JPH01156824A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH01156824A
JPH01156824A JP62314063A JP31406387A JPH01156824A JP H01156824 A JPH01156824 A JP H01156824A JP 62314063 A JP62314063 A JP 62314063A JP 31406387 A JP31406387 A JP 31406387A JP H01156824 A JPH01156824 A JP H01156824A
Authority
JP
Japan
Prior art keywords
register
instruction
data
bit field
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP62314063A
Other languages
English (en)
Inventor
Takeshi Sakamura
健 坂村
Ikuya Kawasaki
川崎 郁也
Atsushi Hasegawa
淳 長谷川
Kazuhiko Iwasaki
一彦 岩崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Priority to JP62314063A priority Critical patent/JPH01156824A/ja
Publication of JPH01156824A publication Critical patent/JPH01156824A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野〕 この発明は、データ処理技術さらにはプログラム制御方
式のシステムにおける命令体系に適用して特に有効な技
術に関し、例えばビットフィールドと呼ばれるデータの
取り扱いに関する命令を有するマイクロプロセッサに利
用して有効な技術に関する。
〔従来の技術〕
従来、マイクロプロセッサには、加算、減算、乗算、除
算、比較などの算術演算命令の他、論理積(AND)%
論理和(OR)、排他的論理和(XOR)など種々の論
理演算命令が備えられている。例えば(株)日立製作所
、1982年9月発行、 「日立マイクロコンビ、−タ
、SEMICON−DUCTERDA’I’A  Bo
oK、8/16ビツトマイクロコンビ、−タJ p91
4〜I)919.p945〜p952等に記載されてい
る。
〔発明が解決しようとする問題点〕
従来のマイクロプロセッサにおける命令体系では、演算
の種類は命令(オペレーションコード)で指定するよう
にされていた。つまり、谷演算ごとに命令が用意されて
おシ、演算の種類はプログラム上において固定されてし
まい、データのように変更することはできなかった。従
って、プログラムが几OM(リード・オンリ・メモリ)
FP3に格納された場合、演算を変更することは不可能
であった0 例えば、=ンピュータ・グラフィックのような分野にお
いては、ビットフィールド内のデータに対し論理演算を
施して、いわゆる塗りつぶしやすかしなどの描画処理を
行なわせる場合、画面を見ながら演算の種類をダイナミ
ックに決定することができればプログラムの開発が容易
となる。
しかるに、演算の種類によって命令が決っている従来の
マイクロプロセッサでは、演算処理の内容を変えるには
プログラムの中の演算命令を書き換えなくてはならず、
プログラムに柔軟性がないという不都合があった。
また、ある命令の実行によって得られた結果に基づいて
次の命令又は演算の種類を決定するためには、プログラ
ム上、次に実行する可能性のある命令又は演算を羅列し
ておかなけれはならない。
すなわち、上記ある命令の実行によりて得られた結果に
基づいて上記羅列された命令等の1つを選択する様なプ
ログラムを作成しなけれはならない。
従ってプログラムの柔軟性がないだけでなく、命令を選
択する等の処jl!!を必要とするから、一連の命令を
実行する際の高速動作が制限されてしまう。
この発明の目的は、マイクルコンピュータ・システムに
おけるプログ2ムに柔軟性を持たせ、例えばグラフィッ
ク処理用のプログラムの開発が容易に行なえるような演
算命令に関する命令形式を提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴に
ついては、本明細書の記述および添附図面から明らかに
なるであろう。
〔問題を解決するための手段〕
本願において開示される発明のうち代表的なものの概要
を説明すれば、下記のとおシである。
すなわち、演算の種類をオペランドの一つとして与える
、つまり演算(広義)という共通のオペレージ冒ンコー
ドの入ったオペレージ冒ン指定部の外又は中に、演算の
糖類を指定するオペランド情報を付加した命令によって
所望の演算を実行させるようにするものである。
〔作用〕
上記した手段によれば、ある命令の実行結果に基づいて
、演算の種類を指定するオペランドの内容を設定してお
き、次の命令で上記オペランドの内容に従って演算でき
るから、プログラムの中で演算の種類をダイナミックに
変えることができる。
従ってプログラムに柔軟性を持たせ、・例えばグラフィ
ック処理用のプログラムの開発が容易に行なえるように
するという上記目的を達成することができる。
以下、本発明を一例として、ビットフィールドと呼ばれ
るメモリ内の任意のビットから任意のビットまでのデー
タの取り扱いに関する命令(以下ビットフィールド命令
と称する)に適用した場合の一実施例を説明する。
〔実施例〕
ビットフィールド命令は、第1図及び第2図に示すよう
にベースアドレスBAとこのベースアドレスからのオフ
セットOffおよびフィールド長さ(ビット数)を示す
フィールド幅WDの3つの値をオペランドとして与える
ことによりメモリ内の所望のフィールドを指定し、その
フィールドのデータに対してアンド(AND)やオア(
OkL)などの論理演算処理を行なうものである。なお
、このようなビットフィールド命令は、例えばモトロー
ラ社製M068020のようなマイクロプロセッサで既
に用意されている。このビットフィールド命令は、オペ
レージ冒ンコードの後のオペランドによってベースアド
レスBAやオフセットoffおよびフィールド幅WDが
与えられていた。
この実施例では演算の穐類もオペランドで指定するもの
である。オペランドによる演算の指定の具体的な方法と
して、例えば第9図(5)の実施例では、レジスタ番号
を有するレジスタ直後アドレッシング方式を用いた。す
なわち、予め所定のレジスタR8内に演算の種類を示す
コードを入れておき、オペランドにはそのコードの入っ
たレジスタ番号とアドレッシングモードを入れておくも
のである。第9図但)の実施例では、オペレージ冒ンコ
ード内に、レジスタkL5の内容に基づいて演算の種類
を定める旨の情報が付加されている。第9図、(5)又
は、第9図(ロ)に示す命令を実行する場合には、演算
の種類を示すコードは、予めMOVE命令等によりメモ
リ内からデータとして読み出して所定のレジスタR5に
入れておく。
また、同41にペースアドレスBA、オ7セ、トQff
及びフィールド幅WDもそれぞれ所定のレジスタ内に入
っている値を使って命令を実行するようにされている。
第9図(5)又は第9図(B)に示す命令は、例えば、
ビットフィールド命令でアク、するビットフィールド(
ソース側)のデータと他のビットフィールド(テスティ
ネーシ冒ン側)のデータとの論理をとってそれをデステ
ィネーシ曹ン側のビットフィールドへ入れるというビッ
トフィールド間演算命令である。この命令を実行するた
めには、ソース側のビットフィールドを特定するペース
アドレスRAS、オフセットQffs及びフィールド幅
WDsiそれぞれ入れるレジスタと、デスティネーシ璽
ン側ピットフィールドを特定するベースアドレスBAd
、オフセットQffd及びフィールド幅WDdlそれぞ
れ入れるレジスタと、演算の種類を特定するコードを入
れるレジスタとが必要である。ただし、上記のような2
つのビットフィールドの論理をとる命令ではフィールド
幅WDは必然的に同一であるので、レジスタは共用させ
ることができる。
第1表には、上記ビットフィールド間演算命令において
便用されるレジスタとその中に格納されるデータとの関
係の一例が示されている。
同図における符号BAはベースアドレス、Qffはオフ
セットを示す。
また、第2表には、上記レジスタR5によって指定され
る演算の種類の一覧表が示されている。
第2表 同表において、’l’rueで示される演算はデステイ
ネーシ四ン側ビットフィールドの全ビットを′″1″に
する操作を、Falseで示される演算はデスティネー
シ璽ン側ビットフィールドの全ビットを0′″にする操
作を意味する。また、N0l−1)estで示される演
算はデスティネーシ嘗ン側ビットフィールド内の全ビッ
トのデータを反転して元のビットフィールドに入れる操
作を、Destで示される演算はデスティネーション側
ビットフィールド内のデータをその1ま元のビットフィ
ールドに戻す操作を、NOlで示される演算はソース側
ビットフィールド内の全ビットのデータを反転してデス
ティネーシ冒ン側ビットフィールドに入れる操作を、そ
して、5rcで示される演算はソース側ビットフィール
ド内のデータをデスティネーシ璽ン側ビットフィールド
に入れる操作を意味する。
さらに、ANDで示される演算は、ソース側とデスティ
ネーシ璽ン側のビットフィールド内のデータの論理積を
とってデスティネーシ璽ン側のビットフィールドに入れ
る操作を、Qrで示される演算は、ソース側とデスティ
ネーシ1ン側のビットフィールド内のデータの論理和を
とりてデスティネーシ冒ン側のビットフィールドに入れ
る操作を、Xorで示される演算は、ソース側とデステ
ィネーシ璽ン側のビットフィールド内のデータの排他的
論理和をとってテスティ不−シ璽ン側のビットフィール
ドに入れる操作を、No tAndで示される演算は、
テスティネーシ璽ン側のビットフィールド内のデータの
反転値とソース側と、トフィールド内データとの論理積
をとってデスティネーシ■ン側のビットフィールドに入
れる操作を、pJo tQrで示される演算は、テステ
ィネーシ。
ン側のビットフィールド内のデータの反転値とソース側
ビットフィールド内データとの論理和をとってデスティ
ネーシ璽ン側のビットフィールドに入れる操作を、An
dNotで示される演算は、デスティネーシ冒ン側のビ
ットフィールド内のデータとソース側ビットフィールド
内データの反転値との論理積をとってデスティネーシ曹
ン側のビットフィールドに入れる操作i、QrNotで
示される演算線、デスティネーシ嘗ン側のビットフィー
ルド内のデータとソース側・ビットフィールド内データ
の反転値との論理和をとってデスティネーシ璽ン側のビ
ットフィールドに入れる操作を、NotAndNotで
示される演算は、デスティネーション側のビットフィー
ルド内のデータの反転値とソース側ビットフィールド内
のデータ反転値との論理積をとりてデスティネーシ璽ン
側のビットフィールドに入れる操作を、NotOrNo
tで示される演算は、デスティネーシ曹ン側のビットフ
ィールド内のデータの反転値とソース側ピットフィール
ド内データの反転値との論理和をとってデスティネーシ
璽ン側のビットフィールドに入れる操作を、N01XO
fで示される演算は、デスティネーシ冒ン側のビットフ
ィールド内のデータの反転値とソース側ビットフィール
ド内データとの排他的論理和をとってデスティネーシ冒
ン側のビットフィールドに入れる操作をそれぞれ意味す
る。
上記各種演算は例えばレジスタR5の下位4ビツトによ
って識別させることができる。
上記のようなビットフィールド間演算命令を使用すると
、演算の種゛類がオペランドの一つとして与えられるた
め、メモリ内のデータを変更するかメモリからロードす
るデータを変えるだけでプログラム実行中に演算の種類
をダイナミックに変更することができる。ただし、この
実施例のビットフィールド間演算命令を実行する前に、
予めオペランドとして与えられるベースアドレスやオフ
セットおよび演算の種類を示すコードを所定のレジスタ
(R0〜Rs)に入れておいてやる必要がある。
第3表に、上記ビットフィールド間演算命令(BVMA
Pと略す)を使用したグラフィック表示用のプログラム
の一例が示されている。
第3表 LOOP   MOVE  (RIO)+、ROM0V
E  (R11)+、R11 M0VE  (R12)+、R2 MOVE  (R13)+、R3 MOVE  (R14)+、R4 MOVE  (R15)十、I(5 B、VMAP SUB  LINE、−1 BNE   LOOP 上記プログラムは、ラインごとにポストインクリメント
よってレジスタRO〜R5の内容を変えなからHVMA
Pで示されるビットフィールド間演算命令を繰返し実行
することを処理の内容としている。 例えばMOVE(
R1O)+、ROは、レジスタROの内容を更新してレ
ジスタROに格納する命令である。また80B LIN
E、−1は、総ライン数から1を引く命令である。
従りて、上記プログラムにおいてレジスタR5に格納さ
れる演算種類を例えば−回ごとに変えながら繰返し実行
してやれば、表示画面上において一行ごとに演算内容の
異なるビットフィールド処理を行なった結果が画像とし
て表示されるようになる。
上記プログラムでは、ラインごとにレジスタ几5の内容
を変えることにより演算の種類を変更しているが、本発
明はこの実施例に限足されるものではない。例えば上記
プログラムの前に実行されるプログラムによって得られ
た結果をレジスタR5に格納しておき、レジスタR5の
内容を更新せずに上記プログラム実行中行することもで
きる。これにより、プログラム実行中に演算のaI類を
ダイナミックに変更することができる。
第7図にはビットフィールド間演算命令BVMAPのフ
ローチャートが示されている。ステップS1において、
レジスタRO、R1及びR2の内容を用いてソース側ビ
ットフィールドがフェッチされる。ステップS2におい
てレジスタR2,R3及びR4の内容を用いてデスティ
ネーシ璽ン側ビットフィールドがフェッチされる。ステ
ップS3において、レジスタ凡5の内容を用いて演算が
実行される。ステップS4において終了条件を判定し、
終了条件が一致すれば命令を終了し、不一致ならば上記
ステップ1に戻る。1度に7エツチできるデータのピッ
ト数はマイクロプロセッサのデータバス長によって定ま
る。従って、ビットフィールドの全てt−7エツチし、
これに基づいて演算を行うためには上記ステップ81〜
S3を複数回繰シ返すことが必要な場合がある。
なお、上記実施例では、ビットフィールド命令として2
つのビットフィールドのデータ同士の操作に°関する命
令を例に挙げて説明したが、グラフィック処理に適した
ビットフィールド命令としては、その他に例えばベース
アドレスとオフセット及びフィールド幅で指ボされたビ
ットフィールドに対して任意のレジスタのビットパター
ンヲ繰返し格納させるような命令が考えられる。この命
令を使用すると画面上の任意の領域を任意のパターン(
模様を構成する基本図形)で埋めて行くような一釉のm
Dつぶし処理が容易に行なえるようになる。
・ 第3図には、上記実施例のビットフィールド命令を
有する命令体系によって動作するマイクロプロセッサの
ハードウェア構成の一例が示されている。
この実施例のマイクロプロセッサは、マイク四プログラ
ム制御方式の制御部を備えている。すなわち、マイクロ
プロセッサを構成するLSIチップ1内には、マイクロ
プログラムが格納されたマイクロROM(リード・オン
リ・メモリ)2が設けられている。マイクロROM2は
、マイクロアドレス発生回路5によってアクセスされ、
マイクロプログラムを構成するマイクロ命令を順次出力
する。
マイクロアドレス発生回路5は、命令レジスタ3にフェ
ッチされたマイクロ命令のコードを、命令デコーダ4で
デコードした信号が供給される。
マイクロアドレス発生回路5はこの信号に基づいて対応
するマイクロアドレスを形成し、マイクロROM2に供
給する。これによって、そのマイクロ命令を実行する一
連のマイクロ命令群の最初の命令が読み出される。この
マイクロ命令コードによって、各種レジスタやデータバ
ッファ、演算論理ユニット等からなる実行ユニット6等
に対する制御信号が形成される。この実行ユニット6内
に上記実施例で使用された汎用レジスタRO〜R15が
含まれている。
マクロ命令に対応する一連のマイクロ命令群のうち2番
目以降のマイクロ命令の読出しは、直前に読み出された
マイクロ命令のネクストアドレスフィールドのコードが
マイクロROM2に供給されることより、直前のマイク
ロ命令内のネクストアドレスとマイクロアドレス発生回
路5からのアドレスとに基づいて行われる。このように
して、一連のマイクロ命令が読み出されて形成された制
御信号によって実行ユニット6が制御され、マクロ命令
が実行される。
この実施例では、特に制限されないが、バッファ記憶方
式が採用されており、マイクロプロセッサLSI内にキ
ャッシュメモリ7が設けられ、外部メモリ8内でのデー
タのうちアクセス頻度の高いプログラムデータがキャッ
シュメモリ7内に登録される。これによって、プログラ
ムの取込みが高速化される。
なお、上記実施例では、−例としてグラフィック処理に
通したビットフィールド命令に適用したものについて説
明したが、それ以外の演算命令に適用することができる
また、上記実施例では、オペランドで指定する演算のa
!類がアンド(AN D )やオア(OR)などの論理
演算に限定されているが、其術演舅を行なう命令につい
ても同様にオペレーションコードを同一にし、かつ演算
のa[g14をオペランドで指定するようにしてもよい
第4図は、第3図に示す実行ユニット6の内部ブロック
図を示している。
第4図の実行ユニットにおいて、回路符号CBSで示さ
れているのは、オフセット値やフィールド幅等の拡張デ
ータt2ツテする友めのレジスタ、DUfLはメモリヘ
スドアするデータを2ツテするためのデータ・アウトプ
ット・レジスタ、DIRはメモリから読み出されたデー
タを2ツチするデータ・インプット・レジスタ、ALN
は入出力されるデータを整列させるアライナで、このア
ライナALNはデータI10インタフェース(図示省略
)を介して外部のデータバスに接続される。
また、回路符号B8Fで示されるのは、32ビツトずつ
同時に入力された64ビツトデータから任意の32ビツ
トを抽出するためのバレルシ7りで、このバレルシフタ
BSFは、0のような定数を直接入力できるように構成
されている。BCNTはバレルシフタBSFに対して抽
出する位置を指定するバレルシフタ・カウンタ、B8F
OHバレルシフタBSFの出力をラッチするレジスタで
ある。また、FBはデータを入力させることにょシ上位
27ビツトをマスクして出方する等の働きをするファン
クシ冒ン・プロッ/、FBOa7アンクシ璽ン・ブロッ
クFBの出力をラッチするレジスタである。
さらに、回路符号AUで示されるのは実効アドレスを計
算するためのアドレス演算ユニットで、このアドレス演
算ユニツ)AUは、0のような定数を直接入力できるよ
うに構成されている。AUOはこのアドレス演算ユニツ
)AUの出力をラッチするレジスタ、8F’Tはアドレ
ス演算ユニットAUで演算される前のデータのシフトを
行なうシフタ、AOTは演算結果の入っている上記レジ
スタAUOO値を後述のテンポ2リレジスタDTEO〜
DTE3へ移す際に一時的に保持するラッチ回路、AU
Rは同じくレジスタAUOのアドレス値を外部へ出力す
る際に一時的に保持するアドレス・アウトプット・レジ
スタで、このレジスタAO′kLはアドレスI10イン
タフェース(図示省略)を介して外部のアドレスバスに
接続される。
一方、回路符号ALUで示されているのは、加算、減算
等基本的な算術演算や論理演算を行なう演算論理ユニッ
)、ALtJOは演算論理ユニットALUでの演算結果
を2ツテするレジスタ、また、DTEO〜DTE3で示
されるのは、テンポラリ値を2ツチする外部から見えな
い(ユーザーに開放されていない)レジスタ群、R,、
R1,・・・・・・R1,はユーザに開放されている汎
用レジスタ群であり、上記各種レジスタやラッチ回路、
演算器等は、4fi%OパxECB 、HA、BB、B
Cf介して相互に接続され、マイクロROMからなる制
御部より供給される制御イサ号によって、シーケンシャ
ルに動作され、対応するマクロ命令が実行される。
本発明によれば上記演算論理ユニットALU等は汎用レ
ジスタの内容、例えはレジスタ比5の内容によりて制御
可能とされる。
第5図は、第4図に示す演算論理ユニッ)ALU等及び
これらを制御するためのレジスタR5との関係を示して
いる。
汎用レジスタ比5の内容は、特に限定されないが一担他
のレジスタINPRにストアされ、このレジスタINP
Rから制御信号11〜15が出力される。レジスタI 
N F几は第4図において省略されているが、上記テン
ポラリレジスタi) ’1’ E O等と同種のレジス
タとされ、実行ユニット内に設けられる。制御信号工1
は、BBババス上データ又はオールゼロ(0)のデータ
の一方を選択するための信号である。制御信号工2は、
インバータ回路INVの動作を制御する信号であシ、入
力信号を反転して出力するか、反転せずに出力するかの
選択をする信号である。制御信号工3は演算崗理ユニッ
)ALUの演算機能の選択をする信号である。
演算論理:”−=y トALUは、!li&(AND)
、論理和(0几)又は排他的論理和(xon)等の演算
機MQを有しておシ、いずれかの機能が制御信号I3に
よって選択されることになる。制御信号15はレジスタ
ALUOに2ツチされたデータをBC,<スに送出する
か又は演1m埋二二、)ALUの入力側に帰還するかの
選択を行う信号である。
制御信号工4は、上記入力側に帰還されたデータ又はオ
ールセロ(0)の−万を選択する穴めの信号である。制
御信号11によって選択されたデータはインバータ回路
INVを介して演算論理ユニットALUの一方の入力デ
ータとされ、制御信号■4によって選択されたデータは
演算−塩ユニットALUの他方の入力データとされる。
この演算*理ユニツ)ALUの動作は2段階に分けられ
る。例第   4   表 第   5   表 えば、前記第2表に記載した各演算を行う場合において
、第1段階の動作状態が第6図(5)に示され、第2段
階の動作状態が第6図郵)に示されている。
上記第4表は、上記第6図(5)に示す動作状態をさら
に詳細に説明するための表であり、第5表は上記第6図
の)に示す動作状態をさらに詳癲に説明するための表で
ある。例えば第2表に示す第1番目の演算l→dest
を実行する場合には、まず、第6図(5)において、第
4表の第1番目に記載された制御が行なわれる。すなわ
ち、制御信号11によってオールゼロ(0)が選択され
、これがインバータ回路INDで反転されずに演Xa理
ユニツ)ALUの一方の入力データとされる。また演算
論理ユニツ)ALUの他方の入力データはオールゼロ(
0)とされる。この演算論理ユニッ)ALUの演算機能
は、制御信号工3によって論理和(0凡)とされるから
、その演算結果はオールゼロ(0)とされる。次に第6
図(ロ)において、第5表の第1査目に記載された制御
が行なわれる。すなわち制御信号、I 1によってオー
ルゼロ(0)が選択され、これがインバータ回路INV
で反転され、オールワン・(1)にされて演算論理ユニ
、)ALUの一方の入力データとされる。また演算論理
ユニツ)ALUの他方の入力データは上記演算結果(オ
ールゼロ)とされる。演算論理ユニツ)ALUの演算機
能は、制御(*−1’+I3によって論理和(OR)と
されるから、その演算結果はオールワン(1)とされる
。このデータをデスティネーシ曹ン側ビットフィールド
にストアすることによって、上記演算1→aestの兼
行が終了する。
また、第10番目の演算dest、 AND、s r 
c−+aestを実行する場合には、まず、第6図(5
)において、第4表の第10番目に記載された制御が行
なわれる。すなわち、制御信号工1によって、BB上の
データ(この場合ソース側ビットフィールドの値)sr
cが選択され、これがインバータ回路INDで反転され
ずに演算論理ユニ、 )ALUの一方の入力データとさ
れる。また演其陶埋ユニットALUの他方の入力データ
はオールゼロ(0)とされる。
この演算論理二ニツ)ALUの演算機能は、制御信号工
3によって論理和(0几)とされるから、その演算結果
はソース側ビットフィールドの値(src)とされる。
次に第6図(B)において、第5表の第10番目に記載
された制御が行なわれる。
すなわち制御信号工1によりてBBBUS上のデータ(
この場合デスティネーシ四ン側ビットフィールドの値)
destが選択され、これがインバータ回路INVで反
転され(dest)演算@理ユニットALUの一方の入
力データとされる。また演算論理ユニッ)ALUの他方
の入力データは上記演算結果(src)とされる。演算
論理ユニ、トALUの演算機能は、制御信号■3によっ
て論理積(AND)とされるから、その演算結果はde
at、AND、arc  とされる。コノデータヲデス
ティネーシ冒ン側ビットフィールドにストアするコトに
よって、上記演算dest、AND、src→aest
の実行が終了する。
上記実施例では、レジスタ几5の内容によって、演算論
理ユニツ)ALU等が直接制御されているが、本発明の
適用に際して上記実施例に限定されるものではない。す
なわち汎用レジスタR5の内容によって演X論理ユニy
)ALU等が間接的に制御されるものでおってもよい。
例えば、レジスタR5の内容を第3図に示す命令デコー
ダ4等に供給することにより、マイクロ几OM2から上
記制御信号工1〜■5等を得ることもできる。ブた上記
実施例では、制御信号工1はBBババス上データを選択
するか否かの選択信号とされているが、とれに限定され
ない。例えば、BBババス上データを供給するための供
給源等を、この制御信号工1で制御することもできる。
なお、BBパス上への、ソース側ビットフィールドの値
src又はデスティネーシ曹ン側ビットフィールドの値
d e s tの送出は、バレルシフタBSFの出力ラ
ッチレジスタB8FOからなされる。
第8図は、第7図に示すフローチャートにおけるステッ
プS1をさらに詳細に説明するための実行手順が示され
ている。ステップ81は、ステップ801から812に
よって構成される。なお、第4図に示す汎用レジスタ群
几0〜R1,の中で、符号几a、几by R” e R
Yが付記されているレジスタはそれぞれソース・ベース
アドレス、テスティネーシ璽ン・アドレス、オフセラト
イ直・アドレス及びビットフィールド幅を入れるために
使用されているレジスタであることを示している。こR
a 、Rb 、RX 、Ryas汎用レジスし几。〜R
Isの任意のレジスタ番号をそれぞれの使用目的のため
に指定して使用することができる。
第1のステップ801では、レジスタRx内の値すなわ
ちオフセット値の入っている位置を示すアドレスがバス
BAまたはBBを介して、また定数入力機能によって0
がアドレス演算ユニットAUにそれぞれ入力され、その
加算結果がレジスタAUOに格納される〇 第2のステップ802では、ステップ801でレジスタ
AUOに格納されたアドレス値(オフセット値アドレス
)がレジスタAOR,へ転送されるとともに、I10イ
ンタフェースに対して外部データバス上のデータをフェ
ッチするようにリクエスト指令が与えられる。これによ
って、レジスタRx内のアドレス値がI10インタフェ
ースを介して外部アドレスバス上に出力され、外部のメ
モリがアクセスされてその内容がデータバス上に出力さ
れる。そして、メモリから読み出されたデータすなわち
オフセット値QffがI10インタフェースによシフエ
ッチされる。
第3のステップ803では、110インタフエースよシ
出力される信号に基づいてフェッチしたデータが確定し
ているか確認される。これによって、データはデータ・
インプット・レジスタDIRK取!0込まれる。これと
ともに、ステップ803では、レジスタRaの値すなわ
ちソース・ペースアドレスBADがバスBAまたはBB
を介して、また定数入力機能によりて0が、アドレス演
算ユニッ)Allにそれぞれ入力され、その加算結果が
レジスタAUOに格納される。
それから、第4のステップ804で、上記レジスタAU
OO値(ソース・ペースアドレス)がレジスタAORへ
転送され、更にバスBCを介してテンポラリレジスタD
TEOに転送される。
なお、他の処理との関係でアドレス演算ユニツ)AUの
演算結果がレジスタAUOからAORへ転送されるとき
、自動的にレジスタAOTにも転送されるようにされて
いる。ここでは、レジスタAOTへの転送は特別の意味
も持っていない。これと並行して、アドレス演算ユニツ
)AUには、定数入力機能によル0が入力されるととも
に、バスBBを介してデータ・インプット・レジスタD
IRの内′4(オフセット値)が符号拡張されて入力さ
れ、演算結果がレジスタAUOに格納される。
さらに、レジスタR7からファンクシ冒ンブロックFB
に対して保持値すなわちビットフィールド幅WBがバス
BAを介して供給され、7アンクシ、ンブロックFBで
下位5ビツトを除く上位27ビツトがマスクされ、結果
がレジスタFBOに格納される。ビットフィールド幅の
下位5ビツトのみ抽出することは、数学的に表現すると
ビットフィールド幅を数「32」で割った余まりを求め
ることと同義である。以下、このビットフィールド幅の
下位5ビツトを端数WD・と記す。ここで端数WD・を
求めるのは、後のステップ809でのバウンダリ渡りの
判定に使用するためである。
次に、ステップ806でレジスタ人UOO値すなわちオ
フセット値OffをバスBCを介してテンポラリレジス
タDTElへ転送する。これととモニ、アドレス演算ユ
ニットAUに対してレジスタAUOの値(オフセット値
)とテンポラリレジスタDTEoの値すなわちソース・
ペースアドレスBADをシフタS F ’f’で上位側
へ3ビツトシフトした値とが供給され、その加算結果が
レジスタALIOに格納される。ソース・ペースアドレ
スBADを上位側へ3ビツトシフトするのは、メモリ空
間をバイト単位で区切って指示できるようにされたペー
スアドレスBADを、ビット単位でメモリ空間内での位
置を指示できるように拡張するためである。従って、こ
のときレジスタAUOに入っているのは、求めるビット
フィールドのアドレス0番地からのビット数で表した距
離である。この距離をLと記す。
第6のステップ806では、上記レジスタAUOO値す
なわちペースアドレスを上位側へ3ビツトシフトした値
にオフセット値Qffを加えたものを、レジスタAOT
に転送する。一方、アドレス演算ユニットAUには、バ
スBAを介してテンポラリレジスタDTEOからソース
・ペースアドレスBADが入力され、またバスBBを介
してテンポラリレジスタDTE1から転送されたオフセ
ット値OffをシフタS F Tで下位側へ3ビツトシ
フトした値が入力されて加算され、その加算結果の下位
2ビツトをマスクした値がレジスタALIOに格納され
る。これとともに、レジスタFBO内の値WD*すなわ
ちビットフィールド幅の下位5ビツトがバスBCを介し
てテンポラリレジスタDTE3に転送される。
上記の場合、アドレス演算二ニア ) A Uによって
、ペースアドレスに、オフセット値を下位側へ3ビツト
だけシフトした値を加算しているのは、対象となるビッ
トフィールドの先頭に最も近いバイト単位の実行アドレ
スを求めるためである。また、アドレス演算ユニ、トA
Uでの加算結果の下位2ビツトをマスクしているのは、
対象となるビットフィールド全体もしくはその先頭部分
を含む32ビツトのワードのアドレスを得るためである
第7のステップ807では、上記のようにして得られ九
しジスタADO内のワードアドレスがアドレス・アウト
プット・レジスタAORに転送されてI10インタフェ
ースを介して外部へ出力されるとともに、工10インタ
フェースに対しては外部データバス上のデータの7エツ
チft要求する指令がなされる。これによって、求める
ビットフィールドの先頭部分を含むワードのメモリから
の7エツチが開始される。これと並行して、レジスタA
UOに保持されているアドレスがバスBCを介してテン
ポラリレジスタDTE2に転送される。
lft−177ンクシ璽ンブロツクl″Bには、ステッ
プS05で得られたビットフィールドのアドレス0から
のビット位置を示す値りが、レジスタAOTからバスB
Aを介して供給され、その結果がレジスタFBOに格納
される。これによって、ステップ806で得られた求め
るビットフィールドの先頭部分を含むワードアドレス(
オフセットが31以下のときはペースアドレスと一致す
る)からのビットフィールドの先頭位置Qff中(これ
も一つのオフセット値でアシ、以下2次オフセットと称
する)がレジスタFBOに保持されることになる。
続いて、ステップ808では、上記レジスタにBO内の
値Qff*(2次オフセット)がバスBCを介してテン
ポ2リレジスタD ’l’ E 2に転送すれる。これ
とともに、演J!論理ユニットALUに対して、バスB
AおよびBBt−介して、テンポラリレジスタDTEa
内の値WD串(ビットフィールド幅の下位5ビツト)と
レジスタF B O内の値Qff中が供給されて加算さ
れ、その結果がレジスタALUOK格納される。これと
ともに、レジスタCBSに対し、制御部の側から定数1
33」が設定される。「33」なる数は1ワードのビッ
ト数「32」に「1」を加えた数である。また、I10
インタフェースからの信号に基づいてフェツチしたデー
タすなわち求めるとットフイールドの内容が確足してい
るか確認する。データが確認している場合、そのデータ
はデータ・インプットレジスタDIRに取り込まれてい
ることになる。
次のステップ809でh、I10インタフェースによシ
フエッチされた値がデータ・インプット・レジスタDI
RからバスBCを介してテンポ2リレジスタDTE2に
転送される。これと並行して、演算論理ユニットALU
ではレジスタALUOの値(Off拳+WD*)からレ
ジスタCBSの値「33」の減算が行なわれ、その結果
がレジスタAL[JOに格納される。ここで、この減算
結果が「正」ならばビットフィールドが2つのワードに
またがっていることを意味し、「負」ならば1ワード内
に納まっていることを意味する。
また、ステップ809では、次のステップにおいてバレ
ルシフタ138Fで行なわれるビットシフト処理のシフ
ト方向とシフト量の指示を行なう。
具体的にはバレルシ7り・カウンタB CN ’i’に
対して右方向シフトの指示が与えられるとともに、バス
BAを介してレジスタF B O内(D i Of f
 傘が、シフト量としてバレルシ7り・カウンタBCN
Tに供給される。
そして、ステップ810において、バレルシ7りBSF
に対してテンポラリレジスタDTE2O値すなわちメモ
リから7エツチされたビットフィールドの内容がバスB
Bを介して供給されるとともに、足載人力機能によって
0が入力されてバレルシフト・カウンタBCNTの指示
に従ったシフトが実行され、その結果がレジスタ88F
Oに格納される。これによって、32ビツトのレジスタ
BSFO内には、第8図に示すように7エツチされ九ビ
ットフィールドの内容が左端に寄った状態つまシレジス
タの上位ビット側から順に詰まった状態で格納される。
これと並列して、 ステップ810では、次のステップ
においてバレルシ7り88Fで行なわれるシフト動作の
方向指示と、シフト量の指定が行なわれる。すなわち、
バレルシフタ・カウンタBCNTに対し、右方向シフト
の指示が与えられ、かつイ(δBAt−介してテンポラ
リレジスタDTEa内のビットフィールドl1WD中が
シフト量として供給される。
そして、ステップ811では、バレルシフタBSFに対
して、レジスタ88 F Oの値と「0」が入力され、
指定された方向とシフト量に従ったシフト動作が実行さ
れ、結果がレジスタBF30に格納される。レジスタB
 S F O内に入っていたビットフィールドの内容が
フィールド@WD串]分だけ右シフトされると、32ビ
ツトのレジスタBS)0内には第11図に示すように7
エツテされたビットフィールドの内容が右端に寄った状
態すなわちレジスタの下位側から順に詰まった所望の状
態で格納されるようになる。
このようにして、得られたビットフィールドの内容が、
次のステップS12において、レジスタBSFOからバ
スB(4−介して汎用レジスタの一つ凡すに格納される
さらに、ステップ809において、Qff申とWD申と
の和と足載「33」との減算結果が「正」となりて、ビ
ットフィールドがバウンダリ渡シヲしていると判定され
た場合には、ステップ812から再びステップ80Bに
戻って上記手順を繰り返すことにより、複数のワードに
またがっているビットフィールドのすべての内容が読み
出される。
第′10図に、上記マイクロフローにおけるオフセット
値Offおよびビットフィールド幅WDと2次才7セツ
)Qff牟および端数WD*との関係を図示しておく。
なお、第8図のマイクロ70−に従った制限なしビット
フィールド命令の実行手順では、バウンダリ渡フの判定
を、2次オフセットQff串とビットフィールドの端数
WD串との和のから数「33」を引いた結果が「正」か
「負」かで行なりている。
本来、バウンダリ渡りの判定は1次オフセットOffと
ビットフィールド@WDとから判定すべきであシ、その
ようなマイクロクローを記述することも可能である。た
だし、1次オフセットOffにビットフィールド4WD
を加えてそれをベースアドレスBADかも32ビツトず
つ区切っていくことでバウンダリ渡ルが生じているか否
か判定し九場合と、実施例のように2次オフセットQf
f傘にビットフィールドの端数WD拳を加え、それが数
「32」を超えたか否かでバウンダリ渡シの判定を行な
った場合とで全く同じ結果が得られることは、第7図か
らも明らかである。
以上本発明者によってなされた発明を実施例に基づき具
体的に説明したが、本発明は上記実施例に限定されるも
のではなく、その要旨を逸脱しない範囲で種々変更可能
であることはいうまでもない。例えは上記実施例ではビ
ットフィールドのベースアドレスやオフセット、フィー
ルド幅及び演算の種類をオペランドで与えるようにして
いるが、オペランドの代わりに実効アドレス部で与える
ようにしてもよい。
また、オペランドで演算の種類を指足するようにした本
発明に係る演算命令は、従来の固定された演算の代わシ
に設けてもよいが、併用して設けるようにしてもよい。
以上の説明では主として本発明者によってなされた発明
をその背景となった利用分野であるマイクロプロセッサ
の命令形式に適用した場合について説明したが、この発
明はそれに限定されるものでなく、計算機やミニコン等
プログラム制御方式のデータ処理システム一般の命令形
式に利用することができる。
〔発明の効果〕
本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれは下記のとおりである
すなわち、プログラムに柔軟性を持たせ、例えばグラフ
ィック処理用のプログラムの開発が容易に行なえるよう
になる。
【図面の簡単な説明】
第1図及び第2図は本発明の通用の対象となりたビット
フィールド間演算命令におけるビットフィールドの構成
例を示す説明図、 第3図は本発明に係るビットフィールド命令を実行する
マイクロプロセッサの構成例を示すブロック図、 第4図は、第3図に示す実行ユニットの内部構成を示す
ブロック図、 第5図、第6回置及び第6図(B)は第4図に示す演算
論理ユニットAUU。 第7図は本発明が適用されたビットフィールド間演算命
令の実行シーケンスを示す70−チャート、 第8図は第7図におけるステップS1をさらに詳細に説
明するための実行シーケンス、第9図(5)、(B)は
この発明が適用される命令のフォーマットの実施例、 第10図及び第11図は、第8図に示す実行シーケンス
中の動作の説明図である。 DOR・・・データ・アウトプット・レジスタ、DIR
・・・データ・インプット・レジスタ、ALN・・・ア
ライナ、BaF・・・バレルシフタ、BCNT・・・バ
レルシフタ・カウンタ、FB・・・ファンクシ璽ンブロ
ック、AU・・・アドレス演算ユニット、SFT・・・
シフタ、AUO・・・ラッチ回路、AO凡・・・アドレ
ス・アウトプット・レジスタ、ALU・・・演算論理名
 31V1 男5r¥J ヵ61冒(A)7う6γ 第 71ヨ 司1続有11正書(方式)

Claims (1)

  1. 【特許請求の範囲】 1、命令解読手段と、 命令実行手段と、 情報保持手段とを含み、 第1の命令の実行によって得られた情報を上記情報保持
    手段に格納する第1のステップと、第2の命令の実行の
    際上記情報に基づいて上記命令実行手段が制御される第
    2のステップを含むことを特徴とするマイクロプロセッ
    サ。 2、上記命令実行手段は論理演算ユニットを含み、上記
    情報に基づいて、上記論理演算ユニットの演算機能が制
    御されることを特徴とする特許請求の範囲第1項記載の
    マイクロプロセッサ。 3、上記情報保持手段は汎用レジスタであることを特徴
    とする特許請求の範囲第2項記載のマイクロプロセッサ
    。 4、命令解読手段と、 命令実行手段とを含み、 上記命令解読手段によって解読される命令のオペコード
    内には、書替え可能な情報保持手段に記憶された情報に
    基づいて上記命令実行手段の少なくとも一部の制御を実
    行させる情報を含むことを特徴とするマイクロプロセッ
    サ。 5、上記情報が記憶される上記情報保持手段内の番地を
    指定するための番地情報は、上記オペコード内に含まれ
    ていることを特徴とする特許請求の範囲第4項記載のマ
    イクロプロセッサ。 6、上記情報が記憶される上記情報保持手段内の番地を
    指定するための番地情報は、オペランド領域に含まれて
    いることを特徴とする特許請求の範囲第4項記載のマイ
    クロプロセッサ。 7、上記書替え可能な情報保持手段とは、マイクロプロ
    セッサ内のレジスタであることを特徴とする特許請求の
    範囲第4項記載のマイクロプロセッサ。 8、上記命令実行手段は論理演算ユニットを含み、上記
    レジスタの内容に基づいて上記論理演算ユニットの演算
    機能が制御されることを特徴とする特許請求の範囲第7
    項記載のマイクロプロセッサ。 9、上記レジスタの内容に基づいて上記論理演算ユニッ
    トの演算の種類が選択されることを特徴とする特許請求
    の範囲第8項記載のマイクロプロセッサ。 10、上記命令解読手段によって解読される命令は、メ
    モリ内の任意のビットから任意のビットまでの領域のデ
    ータの取り扱いに関する命令であることを特徴とする特
    許請求の範囲第9項記載のマイクロプロセッサ。
JP62314063A 1987-12-14 1987-12-14 マイクロプロセッサ Pending JPH01156824A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62314063A JPH01156824A (ja) 1987-12-14 1987-12-14 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62314063A JPH01156824A (ja) 1987-12-14 1987-12-14 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH01156824A true JPH01156824A (ja) 1989-06-20

Family

ID=18048780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62314063A Pending JPH01156824A (ja) 1987-12-14 1987-12-14 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH01156824A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105385A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> 効率的な画素処理のためにプログラム・コードを変換するためのシステムおよび方法
WO2001016710A1 (en) * 1999-08-30 2001-03-08 Ip Flex Inc. Data processor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5247646A (en) * 1975-10-15 1977-04-15 Toshiba Corp Command control method
JPS60181837A (ja) * 1984-02-29 1985-09-17 Fujitsu Ltd エクスキユ−ト命令処理方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5247646A (en) * 1975-10-15 1977-04-15 Toshiba Corp Command control method
JPS60181837A (ja) * 1984-02-29 1985-09-17 Fujitsu Ltd エクスキユ−ト命令処理方式

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105385A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> 効率的な画素処理のためにプログラム・コードを変換するためのシステムおよび方法
WO2001016710A1 (en) * 1999-08-30 2001-03-08 Ip Flex Inc. Data processor
WO2001016717A1 (en) * 1999-08-30 2001-03-08 Ip Flex Inc. Control unit and recorded medium
US6826674B1 (en) 1999-08-30 2004-11-30 Ip Flex, Inc. Program product and data processor
US6904514B1 (en) 1999-08-30 2005-06-07 Ipflex Inc. Data processor
AU782238B2 (en) * 1999-08-30 2005-07-14 Ip Flex Inc. Control program product and data processing system
CN1301459C (zh) * 1999-08-30 2007-02-21 Ip菲力股份有限公司 数据处理系统及其控制方法

Similar Documents

Publication Publication Date Title
JPH0135366B2 (ja)
JPH03218523A (ja) データプロセッサ
JPH10187661A (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
JPS6014338A (ja) 計算機システムにおける分岐機構
JPH04260927A (ja) データ処理装置
JPS58182754A (ja) 演算処理装置
JPH04260929A (ja) データ処理装置
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
JP2690406B2 (ja) プロセッサおよびデータ処理システム
US4691282A (en) 16-bit microprocessor system
JPH034936B2 (ja)
KR950012089B1 (ko) 마이크로프로세서
JP2520882B2 (ja) デ−タ処理装置およびデ−タ処理方法
US7631166B1 (en) Processing instruction without operand by inferring related operation and operand address from previous instruction for extended precision computation
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置
US20020083293A1 (en) Register file circuitry
JPH0222413B2 (ja)
JPS63136168A (ja) ベクトル計算機
JPH04260928A (ja) データ処理装置
JP2824484B2 (ja) パイプライン処理計算機
JP3539914B2 (ja) マイクロコンピュータ
JPH0833821B2 (ja) データ処理装置
JPS63293638A (ja) データ処理装置
JP2878250B2 (ja) データ処理装置