JP3164915B2 - データ処理装置及びそのデータ処理方法 - Google Patents
データ処理装置及びそのデータ処理方法Info
- Publication number
- JP3164915B2 JP3164915B2 JP27666592A JP27666592A JP3164915B2 JP 3164915 B2 JP3164915 B2 JP 3164915B2 JP 27666592 A JP27666592 A JP 27666592A JP 27666592 A JP27666592 A JP 27666592A JP 3164915 B2 JP3164915 B2 JP 3164915B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- instruction
- function
- processing procedure
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
の増大を抑えつつ高機能な処理を実現し、また高機能な
処理を少ないステップ数を以って実現可能なデータ処理
装置並びにデータ処理方法に係り、例えば、マイクロコ
ンピュータのような論理集積回路装置に適用して有効な
技術に関するものである。
置の基本的な構成は程んど同じであり、例えば、キャッ
シュメモリ等に記憶した一連の命令を順番に命令制御部
に読み込み、その命令が何であるかを表わしているオペ
レーションコードと呼ばれるビット領域をデコードして
データに施すべき処理を決定し、更にオペランドと呼ば
れる被演算データを指定する領域をデコードしてデータ
を取り込んで、上述した処理をそのデータに対して行う
ものである。このようなデータ処理装置の一例として
は、Mips(ミップス)社のR4000チップ(日経
エレクトロニクス,1991年10月14日日経PB社
発行,No.496号)、Intel(インテル)社の
i960チップ(日経エレクトロニクス,1990年1
月8日日経PB社発行,No.490号)、及びHP
(ヒューレットパッカード)社のPA−RISCチップ
(日経マイクロデバイス,日経PB社発行の1990年
9月号)などを挙げることができる。
は、比較的簡単な命令セットを以って処理の高速化並び
にハードウェアの簡素化を図ろうとするRISC(Re
duced Instruction Set Com
puter)的アーキテクチャーと、オブジェクト指向
のアーキテクチャのような比較的複雑な命令セットを以
って高機能化を目指すCISC(Complex In
structionSet Computer)的アー
キテクチャに大別できる。現実に提供されている各種デ
ータ処理装置のアーキテクチャがRISCかCISCの
何れであるかというような峻別は実際には難しいが、多
様なアドレッシングモードや、一つの命令で複数の演算
を行う複合命令などをCISC的な命令と考えることが
できる。
ISC的なデータ処理装置において、CISC的なデー
タ処理装置が1命令で提供するような高機能な処理は、
基本的で簡単な処理を実現する命令を複数組み合せて対
処していた。このため、出現頻度は少ないかもしれない
が、そのような処理を能率的に行うことができなかっ
た。このとき、多様なアドレッシングモードや、一つの
命令で複数の演算を行う複合命令など、CISC的な命
令を基本的な命令セットに追加しようとすると、ハード
ウェアがサポートする命令数が増加してしまう。その結
果、命令制御部のデコーダ等のランダムロジックの論理
規模が大きくなり、クリティカルパスの遅延時間の増
大、すなわちLSIチップの性能低下やチップ面積の増
加、開発日程の増大化などを招いてしまっていた。
増大を抑えつつ機能の多様化を実現し、また高機能な処
理を少ないステップ数を以って実現可能なデータ処理装
置並びにそのデータ処理方法を提供することにある。今
発明の別の目的は、ハードウェアの増大を極力抑えて多
様な機能を実現できるデータ処理装置を提供することに
ある。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
込みまたは読み出し時に、そのデータに対して特定の処
理を施す機能を予め所定のレジスタ(機能付きレジス
タ)に割当て、その機能付きレジスタを命令中に指定す
ることにより、そのデータに対して、命令のオペレーシ
ョンコードによって規定される命令の処理と機能付きレ
ジスタの有する特定機能とを組み合わせた多様なデータ
処理を実現するものである。
コードによって規定される命令の処理と機能付きレジス
タの有する特定機能とを組み合わせて多様なデータ処理
を実現できる。このことは、命令セットの命令数を増加
することなしに、換言すれば、オペレーションコードの
ビット数を増大させることなく、データ処理装置による
処理を多様化若しくは多機能化するように作用し、オペ
レーションコードのデコード論理に代表されるような命
令制御部のハードウェアの増大を極力抑えて多様な機能
を実現できる。
の命令中のオペランド指定領域などでの機能付きレジス
タの指定で行われ、且つ、その機能付きレジスタに割当
てれれる固有の機能は当該レジスタに対するデータの書
き込みまたは読み出し時に行われるので、機能拡張に伴
って実行すべき命令数が増えず、このことが、高機能な
処理を少ないステップ数を以って実現するように作用す
る。
付きレジスタ(以下オペレーティングレジスタとも記
す)の定義と機能の一例が示される。同図におけるオペ
レーティングレジスタの一般的定義はC言語的な形態で
示され、オペレーティングレジスタは、(1)に示され
るオペレーティング・リード・データ・レジスタ(Op
erating Read Data Registe
r)Reg〔R〕と、(2)に示されるオペレーティン
グ・ライト・データ・レジスタ(Operating
Write Data Register)Reg
〔W〕に大別される。オペレーティング・リード・デー
タ・レジスタReg〔R〕は、予じめ定義されているR
eg〔R〕固有のオペレーションFr(i)を、i番目
の命令のReg〔R〕で規定される特定のフィールドの
値をパラメータとして、Reg〔R〕の内容に対して行
い、その結果を読み出しデータ(read data)
とするか、再び当該Reg〔R〕に書き戻すかのどちら
か一方か、またはその両方を行う。
スタReg〔W〕は、予じめ定義されているReg
〔W〕固有のオペレーションFw(i)を、i番目の命
令のReg〔W〕で規定される特定のフィールドの値を
パラメータとして、書き込みデータ(write da
ta)に対して行い、当該Reg〔W〕に書き込む。
〔R〕,Reg〔W〕は、図1に示されるようなフォー
マットの命令の中で指定することができる。図に示され
る命令は、オペレーションコード指定フィールドとオペ
ランド並びにその他情報の指定フィールドを有し、オペ
レーションコード指定フィールドには、データ処理装置
のアーキテクチャに従って用意されているオペレーショ
ンコード(LOADやADDといった命令コード)OP
が記述され、オペランド並びにその他情報の指定フィー
ルドには、前記オペレーションコードに従って命令を実
行するために必要なオペランド(演算対象となるもの)
それ自体やその所在、更にはその他制御情報が記述され
る。前記オペレーティングレジスタReg〔R〕,Re
g〔W〕は、命令フォーマット中において前記オペラン
ド並びにその他情報の指定フィールドで指定される。そ
の指定は、例えば、オペレーティングレジスタReg
〔R〕,Reg〔W〕に割当てられた固有のレジスタ番
号で指定することができる。
レーティング・リード・レジスタReg〔R〕を命令中
で指定したとき、当該命令の実行においては、その命令
のオペレーションコードで規定される処理(オペレーシ
ョン)とオペレーティング・リード・データ・レジスタ
Reg〔R〕固有の処理が、当該オペレーティング・リ
ード・データ・レジスタReg〔R〕の保持情報を利用
して行われる。例えば、その命令中で指定されたオペレ
ーティングレジスタReg〔R〕に予め割当てられてい
る固有のオペレーションを、当該レジスタの保持値に対
して行い、その結果を前記オペレーティングレジスタR
eg〔R〕からの読み出しデータとしてオペレーション
コードで指定された処理に引渡す処理を行う。前記オペ
レーションコードで指定された処理に引渡した後、その
引渡した読み出しデータを当該オペレーティングレジス
タReg〔R〕に書き戻す処理を必要に応じて更に行う
ことができる。
ティング・ライト・データ・レジスタReg〔W〕を命
令中で指定したとき、当該命令の実行においては、その
命令のオペレーションコードで規定される処理とオペレ
ーティング・ライト・データ・レジスタReg〔W〕固
有の処理が行われ、その結果が当該オペレーティング・
ライト・データ・レジスタReg〔W〕に格納される。
例えば、その命令中で指定されたオペレーティングレジ
スタReg〔W〕に予め割当てられている固有のオペレ
ーションを、その命令のオペレーションコードによって
当該オペレーティングレジスタReg〔W〕への書き込
みが指定されたデータに対して行い、これを当該オペレ
ーティングレジスタReg〔W〕に書き込む処理を行
う。
スタReg〔R〕と、オペレーティング・ライト・デー
タ・レジスタReg〔W〕に割当てられた夫々固有の処
理は、当該レジスタに対するデータの読み出し又は書込
みに際して行われる。
存の所定オペレーションコードにオペレーティングレジ
スタReg〔R〕,Reg〔W〕の指定を伴うことによ
り、オペレーションコードの種類を増やすことなく同一
オペレーションコードすなわち1命令によって実現可能
な処理を多様化若しくは豊富化でき、命令数並びに命令
制御部の論理規模を増やすことなく高機能的な命令と同
様の処理をサポートできるようになる。見方を変えれ
ば、もともと高機能的な命令を専用のオペレーションコ
ードで用意しているデータ処理装置においては、その機
能を削減することなく命令数並びに命令制御部の論理規
模を減らすことができる。
レーティングレジスタの具体例、並びにそれを用いた処
理の一例をメモリ・レジスタ間のデータの流れに着目し
て概念的に説明する。
義並びにそれを用いた処理例が概念的に示される。ノッ
トレジスタNは、前記オペレーティング・ライト・デー
タ・レジスタReg〔W〕の範疇に含まれ、ノットレジ
スタN(Reg〔N〕)への書き込みデータの各ビット
値を反転させてノットレジスタN(Reg〔N〕)へ書
き込むものである。同図には応用例としてディスティネ
ーションにノット・レジスタNを指定したLOAD命令
として「LAOD disp(b),N」が示されてい
る。この命令は、ディスティネーションにノットレジス
タNを指定することにより、汎用レジスタb{GR
〔b〕}の値(ベースアドレス)に偏値(disp)を
加算したメモリアドレスに格納されているデータをノッ
トレジスタNに書き込むとき、当該ノットレジスタ固有
の機能としてそのデータをビット反転する機能が付加さ
れる。したがって、同図に示される命令「LAOD d
isp(b),N」のように、そのディスティネーション
にノットレジスタNを指定することにより、ノットレジ
スタNへの書き込みデータをノットレジスタNへ書き込
む処理と共にその書き込みデータのビット反転を1命令
(LOAD命令)で実行することができる。
的な定義並びにそれを用いた処理例が概念的に示され
る。インクリメントレジスタIn(Reg〔In〕)
は、前記オペレーティング・リード・データ・レジスタ
Reg〔R〕の範疇に含まれ、インクリメントレジスタ
In(Reg〔In〕)のデータの読み出しが行われる
際に、ある定数だけ、そのデータが示す内容に増加させ
て再びインクリメントレジスタIn(Reg〔In〕)
に書き戻すものである。同図の応用例では、インクリメ
ントレジスタInはLOAD命令のベースアドレス指定
用のレジスタとして使用される。このような応用例にお
いては、一つのデータをメモリからレジスタに書き込み
をする毎にインクリメントレジスタInのベースアドレ
スが自動的に定数ずつ増加されるので、連続するメモリ
領域のデータの読み出し処理を、通常のLOAD命令を
用いて実行できる。
的な定義並びにそれを用いた処理例が概念的に示され
る。モディファイドレジスタM(Reg〔M〕)は、前
記オペレーティング・リード・データ・レジスタReg
〔R〕の範疇に含まれ、i番目の命令の偏値(dis
p)が負ならばモディファイドレジスタM(Reg
〔M〕)が保持する値を読み出しデータ(read d
ata)とし、偏値(disp)が0または正ならばモ
ディファイドレジスタM(Reg〔M〕)の値からから
偏値を引いたものを読み出しデータ(read dat
a)とする。また、読み出しが行われる毎に、モディフ
ァイドレジスタM(Reg〔M〕)の内容に偏値を加算
したデータを再びモディファイドレジスタM(Reg
〔M〕)に書き戻す。このモディファイドレジスタM
(Reg〔M〕)をLOAD命令におけるベースアドレ
ス指定用のレジスタとして使用した応用例が同図に示さ
れる。この例は、偏値(disp)が負の場合であり、
モディファイドレジスタMの定義における読み出しデー
タはモディファイドレジスタMの値であるから、このと
きのメモリアクセスアドレスは、モディファイドレジス
タMの値に偏値(disp)を加算した値(Reg
〔M〕+disp)とされる。応用例における偏値(d
isp)が正の場合の具体例は図示していないが、モデ
ィファイドレジスタMの定義における読み出しデータは
モディファイドレジスタMの値から偏値(disp)を
引いたものとされるから、このときのメモリアクセスア
ドレスは、モディファイドレジスタMの値に等しい値
(Reg〔M〕−disp+disp)になる。これに
より、スタック若しくはFiFo(First−in
First−out)のプッシュ/ポップのためのポス
ト−インクリメント(Post−Increment)
とプリ−デクリメント(Pre−Decrement)
のアドレッシングを、通常のLOAD命令により実現す
ることができるようになる。
スタのC言語的な定義が示される。モディファイドイン
デックスレジスタMi(Reg〔Mi〕)は、図3のイ
ンクリメントレジスタIn(Reg〔In〕)のオペレ
ーションで、定数(Const)の代わりにi番目の命
令で指定されたレジスタReg〔r〕の値を使うもので
ある。図3の応用例にモディファイドインデックスレジ
スタMi(Reg〔Mi〕)を用いる場合、予じめRe
g〔r〕に適当な値を入れておくことにより、任意の値
でベースアドレスの増加が行える。
語的な定義並びにそれを用いた処理例が概念的に示され
る。アライメントレジスタAL(Reg〔AL〕)は、
前記オペレーティング・ライト・データ・レジスタRe
g〔W〕の範疇に含まれ、インデックスで指定されるマ
スクパターンとアライメントレジスタAL(Reg〔A
L〕)への書き込みデータの各ビットごととの論理積を
採るものであり、その論理積の処理をした後のデータを
アライメントレジスタAL(Reg〔AL〕)へ書き込
む。例えば応用例1のようにマスクパターン(AL0)
が上位ハーフワードは全て0、下位ハーフワードが全て
1と定義されているものとすると、LOAD命令のディ
スティネーションとして指定されたアライメントレジス
タAL0には、下位ハーフワードにはメモリの対応する
ビットの値が、上位ハーフワードには全ビット0のデー
タが書き込まれる。このアライメントレジスタAL0は
図6に示される応用例2のように、ディスティネーショ
ンのレジスタtにデータを書き込む際の中間バッファと
して使用することもできる。図6においてその中間バッ
ファはAg0、マスクパターンは(Ag0)として図示
されている。したがって、応用例1,2に示すように、
アライメントレジスタALを書き込みデータのディステ
ィネーション(又は中間バッファ)として指定すること
により、その書き込みデータとマスクパターンとの論理
積の処理とアライメントレジスタAL(レジスタt)へ
の書き込み処理とが1命令(LOAD命令)で実行でき
る。
Borrow)レジスタのC言語的な定義並びにそれを
用いた処理例が概念的に示される。キャリー/ボローレ
ジスタC/B(Reg〔C/B〕)は、前記オペレーテ
ィング・ライト・データ・レジスタReg〔W〕の範疇
に含まれ、キャリー/ボローレジスタC/B(Reg
〔C/B〕)への書き込みデータ(write dat
a)にプログラムステータスワードPSW(Progr
am Statas Word)のキャリーやボローの
状態を表わすビット、すなわちPSW〔C/B〕の値を
加算してキャリー/ボローレジスタC/B(Reg〔C
/B〕)へ書き込むものである。。応用例のように加減
算命令(ADD命令等)のディスティネーションをキャ
リー/ボローレジスタC/Bに指定することにより、1
命令の実行で、二つのレジスタa,bの内容の加減算結
果に、さらに前回の演算で発生したキャリーもしくはボ
ローの値PSW〔C/B〕を加えることができる。
i〕のC言語的な定義並びにそれを用いた処理例が概念
的に示される。シフテッドレジスタni(Reg〔n
i〕)は、前記オペレーティング・リード・データ・レ
ジスタReg〔R〕の範疇に含まれ、シフテッドレジス
タni(Reg〔ni〕)の内容をiビットだけ左側に
シフトし、読み出しデータ(read data)とし
て出力する。同図の応用例では、ADD命令が示されて
いて、この命令を実行すると、シフテッドレジスタn2
から読み出されたデータは2ビット左シフトされた後に
レジスタbの値と加算され、その加算結果のデータがデ
ィスティネーションのレジスタtに書き込まれる。
レジスタを用いたデータ処理装置の一実施例ブロック図
が示される。同図に示されるデータ処理装置は、公知の
半導体集積回路製造技術によってシリコンのような1個
の半導体基板に形成され、命令制御部1、演算部2、命
令キャッシュメモリ3、及びデータキャッシュメモリ4
が代表的に示される。
ら図8で説明した各種機能付きレジスタの集合(以下単
に機能付きレジスタとも記す)である。演算部2におい
て、機能付きレジスタE3の機能実現に専用化された回
路ブロックとして、特に制限されないが、セレクタE
1、加算器E2、及び反転回路E4が新たに設けられ
る。マスク回路E5、セレクタE6、及びプリシフタE
7は、データ処理装置には通常設けられていると共に前
記機能付きレジスタE3の機能実現にも利用される回路
ブロックである。演算部2にはその他に、複数本のレジ
スタから成る汎用レジスタE8、プログラムカウンタ
(PC)E10、算術論理演算器(ALU)E9、及び
前回の演算で発生したキャリー又はボローの値PSW
〔C/B〕等を保持しているプロセッサステータスワー
ドレジスタ(PSW)E11などが設けられている。B
1,B2,B3,B4は演算部2において代表的に示さ
れた内部バスであり、DV0〜DV9はバイパス用ドラ
イバである。また、機能レジスタ内のアライメントレジ
スタは、AL0の他にAL1があり、それぞれのアライ
メントレジスタに対応してマスク回路のマスクパターン
が後述する制御信号S6により制御される。
らフェッチした命令を解読して、代表的に図示された各
種の制御信号S1乃至S17などの制御信号を所定のタ
イミングを以って演算部2などに供給する。命令制御部
1には、オペランドデコーダI1、オペコードデコーダ
I2、ターゲットデコーダI3、及び制御ブロックI
4,I5が含まれる。オペコードデコーダI2は命令に
含まれるオペレーションコードを解読する。命令のその
他のフィールドは、特に制限されないが、オペレーショ
ンコードの種類に従って、オペランドデコーダI1やタ
ーゲットデコーダI3に供給される。オペランドデコー
ダI1は例えば命令のオペランド若しくはソース指定領
域を解読する。この領域に機能付きレジスタとしての前
記オペレーション・リード・データレジスタReg
〔R〕が指定されている場合には当該レジスタの指定が
解読される。ターゲットデコーダI3は例えば命令のデ
ィスティネーション若しくはターゲット指定領域を解読
する。この領域に機能付きレジスタとしての前記オペレ
ーション・ライト・データレジスタReg〔W〕が指定
されている場合には当該レジスタの指定が解読される。
オペランドデコーダI1及びターゲットデコーダI3に
よる解読結果は、汎用レジスタE8や機能付きレジスタ
E3の指定に利用される。また、オペランドデコーダI
1及びターゲットデコーダI3による解読結果は、オペ
コードデコーダの解読結果と共に制御ブロックI4にも
供給されて、セレクタE1,マスク回路E5,プリシフ
タE7の制御並びにキャリー/ボロー制御、そして、バ
イパス用ドライバDV0〜DV9の開閉制御などに利用
される。
E8や機能付きレジスタE3の指定手法について説明す
る。双方のレジスタは共に、命令中におけるオペランド
並びにその他の情報のための指定フィールドで指定され
る。実際に命令中のどの領域すなわち第何ビット目から
第何ビット目迄を利用するかはオペレーションコードの
種類によって予め規定されている。例えば図10に示さ
れるようにLAOD命令が、オペコード(オペレーショ
ンコード)、オペランド、ディスティネーション、偏値
(disp)の各フィールドを有するとき、オペランド
又はディスティネーションの領域でレジスタが指定され
る。例えば汎用レジスタE8と機能付きレジスタE3に
含まれるレジスタが全部で2n個あるときには、nビッ
トの情報によって順番にレジスタ番号を指定することが
できる。また、図10に示されるように、例えば、汎用
レジスタE8が8個の汎用レジスタGEReg1〜GE
Reg8を含み、機能付きレジスタE3が7個の機能付
きレジスタOPReg1〜OPReg7を含むとき、個
々のレジスタには同図に示される4ビットB3,B2,
B1,B0で規定される番号を割り当てることができ
る。このように規定した場合には、レジスタ指定情報B
3〜B0の最上位ビットB3の”0”は汎用レジスタE
8を指定するビットとみなされ、レジスタ指定情報の最
上位ビットB3の”1”は機能付きレジスタE3を指定
するビットとみなされる。したがって、このようにレジ
スタ番号の割り付けを行った場合、命令フォーマット中
のレジスタ指定領域には汎用レジスタを指定するのか或
は機能付きレジスタを指定するのかを指定するビットフ
ィールド(B3)が存在することになる。
ドレスにある命令は、命令キャッシュメモリ3から読み
出され、命令制御部1へ送られる。命令制御部1は命令
中のオペコード及びオペランドなどをデコードし、その
デコード結果にしたがった各種制御信号などで演算部2
の動作を制御する。
れる各種機能付きレジスタに割当てられているオペレー
ションを図9の構成で実行するときの制御形態がパイプ
ライン形式で示される。同図に示されるパイプライン処
理は、命令フェッチ、命令デコード、演算、メモリアク
セス、及びレジスタライト/メモリストアの5段のパイ
プラインステージから構成され、機能付きレジスタを指
定した処理毎に、どのステージでどのような処理が行わ
れるかが示されている。同図において実線矢印はデータ
の流れ、破線矢印はアサートされた制御信号又はアドレ
ス信号の流れを意味する。そして信号に付された符号並
びにブロック内の符号は図9に示される符号に対応して
いる。図2乃至図8で説明した各種機能付きレジスタに
割当てられているオペレーションの一例を図9の構成に
即して説明していく。
ステージにおいて、ターゲットデコーダI3が、デコー
ドしたレジスタ番号がノットレジスタNの場合は、マス
ク回路E5を介して読み出されるデータキャッシュメモ
リ4の読み出しデータ又は内部バスB2(以下書き込み
バスとも記す)に読み出されているデータのビット値
が、レジスタライトメモリストアステージでビット値を
反転させる反転回路E4により、反転させられレジスタ
選択制御信号S7により選択されるノットレジスタNに
書き込まれる〔図11(1),(2)〕。
ステージにおいて、ターゲットデコーダI3が、デコー
ドしたレジスタ番号がアライメントレジスタAL0又は
AL1の場合は、ターゲットデコーダI3のデコード値
により指定されたアライメントレジスタAL0又はAL
1に対応するマスク回路E5のマスクパターンが、上記
デコード値に基づいて、制御ブロックI4から出力され
る制御信号S6により選択される〔図12(11)〕。
そして、レジスタライトメモリストアステージにおい
て、データキャッシュメモリ4の読み出しデータ、内部
バスB4(以下アドレスバスとも記す)に読み出されて
いるデータ又は内部バスB5(以下書き込みバスとも記
す)に読み出されているデータと選択されたマスクパタ
ーンとが、マスク回路E5により論理積がとられ、その
論理積が施されたデータ、すなわち、マスク処理(以下
アライメント処理とも記す)が施されたデータが、レジ
スタ選択制御信号S7により選択されるアライメントレ
ジスタAL0又はAL1に書き込まれる〔図12(1
3)〕。またアライメントレジスタAL0又はAL1を
図6の応用例2のように中間バッファとして用いる場
合、アライメントレジスタAL0又はAL1に書き込ま
れたデータを、さらに他のレジスタ、例えば汎用レジス
タE8内の所定のレジスタ等に内部バスB1(以下ソー
スバスとも記す)・B2等を介して書き込む。
ジスタ番号が機能付きレジスタE3に含まれるレジスタ
であって、そのレジスタが前記シフテッドレジスタ(n
i)ならば、データは、iに対応するビット数だけデー
タを左シフトするように、プリシフタE7が制御信号S
1により制御される。すなわち、図12に示されるよう
に、命令デコードステージにおいてオペランドデコード
が行われて当該シフテッドレジスタniの指定が解読さ
れると、当該ステージにおいてレジスタ選択制御信号S
7により選択される機能付きレジスタE3に含まれるシ
フテッドレジスタniからデータが内部バスB1に読出
される〔図12(14),(15)〕。次の演算ステー
ジでは、オペランドデコードによって得られた制御信号
S1によってプリシフタE7が制御されて、前記読み出
しデータに対するシフト動作が行われる。シフトされた
データの処理は、当該シフテッドレジスタを指定した命
令のオペレーションコードに従って処理される〔図12
(16)〕。図8の応用例の場合だと、シフト処理され
たデータは、算術論理演算器E9に入力される。そして
演算ステージで算術論理演算器E9により、汎用レジス
タE8内のレジスタbに格納されているデータと加算処
理が施されてレジスタライトメモリストアステージで汎
用レジスタE8内のレジスタtに、その加算処理結果の
データが格納される〔図12(16),(17)〕。
コーダI1がデコードしたレジスタ番号が機能付きレジ
スタE3に含まれるインクリメントレジスタInの場
合、レジスタ選択制御信号S7により選択される当該レ
ジスタから読み出されたデータは内部バスB1及びプリ
シフタE7を通って算術論理演算器E9へ送られると同
時に、内部バスB1を通って加算器E2へ送られる〔図
11(3),(5)〕。この加算器E2の他方の入力に
は、オペランドデコーダI1で解読されたインクリメン
トレジスタInの選択制御信号S3によってセレクタE
1で選択された固定値+1が供給され、これによって、
演算ステージで前記インクリメントレジスタInの読み
出し値に1が加算される〔図11(8)〕。そしてレジ
スタライトメモリストアステージで、その格納されたデ
ータが、書き込みバスB5を通じて再びインクリメント
レジスタInへ書き戻される〔図11(9)〕。インク
リメントレジスタInの値が次ステージで使用されると
きは、制御ブロックI4でそれを検出し、バイパス用ド
ライバDV0またはDV1を、制御信号S4またはS5
をアサートすることによりイネーブル状態(開状態)に
して、加算器E2の加算結果のデータをソースバスB1
に直接出力しておく〔図1(10)〕。図3の応用例の
場合、算術論理演算器E9には、インクリメントレジス
タInの読み出しデータの他にプリシフタE7を介し
て、偏値dispが供給されている。算術論理演算器E
9は、これを加算することにより、データキャッシュメ
モリ4のアドレス計算をする〔図11(6)〕。その後
のステージ〔図11(4),(7)〕については、モデ
ィファイドレジスタMの動作説明時に説明する。
ダI1がデコードしたレジスタ番号が機能付きレジスタ
E3に含まれる前記モディファイドレジスタMの場合、
選択制御信号S3がセレクタE1の出力として偏値di
spを選択して加算器E2の片方の入力に偏値disp
を供給し、レジスタ選択制御信号S7により選択される
当該レジスタのデータが内部バスB1を介して加算器E
2の他方の入力に供給される〔図11(3),
(5)〕。演算ステージで加算器E2は、モディファイ
ドレジスタMのデータの値と偏値dispとを加算する
〔図12(8)〕。そして、レジスタライトメモリスト
アステージで、その加算されたデータが、内部バスB5
を通じて再びモディファイドレジスタMへ書き戻される
〔図12(9)〕。次ステージでモディファイドレジス
タMの値が使用されるときは制御ブロックI4でそれを
検出し、バイパス用ドライバDV0またはDV1を、制
御信号S9またはS5によりイネーブル状態にして、加
算器E2の出力値を直接ソースバスB1へ出力しておく
〔図11(10)〕。また、モディファイドレジスタM
から読み出されたデータは、内部バスB1を介してプリ
シフタE7へも送られている。このとき、制御ブロック
I4は当該偏値dispが負であるのか0又は正である
のかを判定し、さらにオペコードデコーダI2の解読結
果に基づいて、オペレーションコードに規定される命令
がLOAD命令か否かを判定する。そして制御ブロック
I4は、当該偏値dispの判定結果と上記命令の判定
結果に基づいて、制御信号S1をプリシフタE7に出力
する。プリシフタE7は、算術論理演算器E9の片方の
入力に、モディファイドレジスタMから読み出されたデ
ータを供給する。さらに、上記命令の判定結果がLOA
D命令の場合、プリシフタE7は、制御信号S1に基づ
いて、偏値dispが正又は0ならば0を負ならば偏値
dispを選択して、算術論理演算器E9の他方の入力
に供給する。尚、オペコードデコーダI2がデコードし
た命令が、LOAD命令で、そしてオペランドデコーダ
I1がデコードしたレジスタ番号がモディファイドレジ
スタM以外の場合、プリ下E7は、制御信号S1に基づ
いて、アドレッシングの種類によってデータを選択し
(インデックスアドレッシング時はソースバスB1のデ
ータを、偏値アドレッシング時は偏値dispを選択し
て)、算術論理演算器E9へ送る。演算ステージで、デ
ータキャッシュメモリ4のアドレスがモディファイドレ
ジスタMから読み出されたデータと偏値disp又は0
とを算術論理演算器E9が加算することにより計算され
る〔図11(6)〕。このアドレス計算は、図4の応用
例を実現することになる。すなわち算術論理演算器E9
の出力の値は、モディファイドレジスタMの読み出され
たデータをM´として示すと、偏値dispが負の時”
M´+disp”で、正又は0の時”M´”であり、応
用例のメモリアクセスアドレスと内容的には同一であ
る。算術論理演算器E9で計算されたアドレスは、アド
レス信号として、アドレスバスB4へ送られ、これによ
り、データキャッシュメモリ4がそのアドレスに格納さ
れているデータを読み出しデータとして、マスク回路E
5へ出力する〔図11(4)〕。レジスタメモリストア
ステージで、マスク回路E5は制御信号S6により制御
され、ターゲットデコーダI3のデコードにより得られ
た書き込み先が汎用レジスタE8やアライメントレジス
タ以外のオペレーティングレジスタの場合、マスク回路
E5は、アライメント処理を実行せずに、上記書き込み
先のレジスタに上記読み出しデータを書き込む。また、
書き込み先がアライメントレジスタAL0ならば、マス
ク回路E5は、そのレジスタAL0に対応したマスクパ
ターンのアライメント処理を上記読み出しデータに対し
て行い、アライメントレジスタAL0若しくはアライメ
ントレジスタAL0を中間バッファとしてその他のレジ
スタへデータを書き込む〔図11(7)〕。
ジスタ番号がモディファイドインデックスレジスタMi
の場合、制御信号S3がセレクタE1の出力としてソー
スバスB1を選択することにより、モディファイドイン
デックスレジスタMiの値のデータと任意のレジスタの
値のデータとの加算が演算ステージにおいて加算器E2
で行われる。以後の動作は、インクリメントレジスタI
nのときと同様である。
タの書き込み先としてターゲットデコーダI3のデコー
ドしたレジスタ番号がキャリー/ボローレジスタC/B
を指定すると、制御ブロックI4がそれを検出して、制
御信号S2により、算術論理演算器E9の最下位ビット
のキャリー入力として前回の演算時のキャリー又はボロ
ーの値PSW〔C/B〕のデータが選択される〔図12
(18)〕。演算ステージで算術論理演算器E9は2つ
のデータとPSW〔C/B〕のデータを加算する〔図1
2(19)〕。その加算結果のデータは、内部バスB2
を通してキャリー/ボローレジスタC/Bへ書き込まれ
る〔図12(20)〕。尚、データの書き込み先がキャ
リー/ボローレジスタC/B以外の場合は、セレクタE
6の出力は0が選ばれる。
される。尚、図13中のS6a〜S6cは、前記制御信
号S6に含まれる制御信号であり、G0a〜G23a,
G1b〜G23b及びG0c〜G23cは、それぞれ制
御信号図S6a〜S6cにより開閉制御されるゲート回
路である。図13に示される例は、レジスタのビット数
が最大32ビットの場合であり、入力に対してマスクせ
ずに出力する態様、入力の上位3バイト(ビット00〜
ビット23)をマスクして出力する態様、入力に上位ハ
ーフワード(ビット00からビット16)をマスクして
出力する態様を有し、各態様は制御信号S6a,S6
b,S6cによって択一的に選択される。すなわち、ビ
ット24〜ビット31は入力から出力に至るスルーの信
号経路を有する。ビット00〜ビット23には、E5a
の領域に示されるように制御信号S6aで開閉制御され
るゲート回路G0a〜G23aを介して入力を選択的に
出力に伝達する信号経路と、E5bの領域に示されるよ
うに制御信号S6bで開閉制御されるゲート回路G0b
〜G23bを介して論理値”0”の信号ビットを選択的
に出力に伝達する信号経路とが設けられる。ビット00
〜ビット23には、E5c−1の領域に示されるように
制御信号S6cで開閉制御されるゲート回路G0c〜G
15cを介して論理値”0”の信号ビットを選択的に出
力に伝達する信号経路及びE5c−2の領域に示される
ように制御信号S6で開閉制御されるゲート回路G16
c〜G23cを介して入力を選択的に伝達する信号経路
が設けられる。前記夫々のゲート回路は、特に制限され
ないが、クロックドインバータのような3ステート出力
回路を含んで構成される。
ジスタAL0及びAL1が指定されない時(通常時)
は、制御信号S6aのみアサートされ、E5aに含まれ
るゲート回路G0a〜G23aがオン状態にされ、入力
信号はそのまま対応するビットへ出力される。ターゲッ
トレジスタとして、下位1バイトのみ“1”であるマス
クパターンを持つアライメントレジスタAL0又はAL
1が選択された時は、制御信号S6bのみがアサートさ
れ、E5bに含まれるゲート回路G0b〜G23bがオ
ン状態にされ、入力信号の下位1バイトが、対応するビ
ットに出力され、その他の上位3バイトには、“0”が
出力される。ターゲットレジスタとして下位ハーフワー
ドのみ“1”であるマスクパターンを持つアライメント
レジスタAL1又はAL0が選択された時は、制御信号
S6cのみがアサートされ、E5c−1及びE5c−2
に含まれるゲート回路G0c〜G23cがオン状態にさ
れ、入力信号の下位ハーフワードが、対応するビットに
出力され、その他の上位ハーフワードには、“0”が出
力される。
のチップ平面が概略的に示される。同図において3は命
令キャッシュメモリ(CC)、4はデータキャッシュメ
モリ(DC)、2は演算部(EU)、1は命令制御部
(IU)、9はメモリ制御用ランダム論理(MU)及び
システムバス制御部(PU)、6は命令用タグキャッシ
ュメモリ(CA)、7はデータ用タグキャッシュメモリ
(DC)、5は命令用アドレス変換バッファ(CT)、
7はデータ用アドレス変換バッファ(DT)、10は入
出力部(I/O)である。
ていないデータ処理装置と本発明に係る機能付きレジス
タをサポートするデータ処理装置の、パイプラインステ
ージで区切った動作フローチャートの一例が示される。
機能付きレジスタをサポートしていない場合には、命令
フェッチサイクルで図9の命令キャッシュメモリ3から
命令をフェッチし、デコードサイクルでフェッチした命
令のオペコードデコードとオペランドデコードを行い、
オペランドデコードによって示されるレジスタの内容を
汎用レジスタから算術論理演算器に送る。演算サイクル
では、オペコードデコードで指示された演算を、フェッ
チしたレジスタの内容に対して算術論理演算器が行う。
指示された演算がLOADもしくはSTORE命令なら
ば、続くメモリアクセスサイクルで、アクセスするメモ
リのアドレスと(STORE時は)書き込むデータをデ
ータキャッシュメモリへ送る。そして、レジスタライト
・メモリストアサイクルで、演算したデータを汎用レジ
スタまたはデータキャッシュメモリへ書き込む。命令が
データのアライメントを指示するものであれば、このサ
イクルでそれを行った後に書き込みを行う。
は、デコードサイクルでデコードしたオペランドが、イ
ンクリメントレジスタIn、モディファイドレジスタ
M、インクリメントモディファイドレジスタMiのと
き、次の演算ステージにてアドレスモディファイ・イン
クリメントを行う。また、デコードしたオペランドがシ
フテッドレジスタniの場合、演算サイクルで、演算・
メモリアドレス計算を行う際に、あらかじめiビットだ
けデータをプリシフトする。
ライメントレジスタAL0又はAL1、ノットレジスタ
Nが指定されたときは、レジスタライト・メモリストア
ステージにてデータのマスクあるいはビット反転を行っ
てからデータ書き込みを行う。また書き込み先のレジス
タがキャリー/ボローレジスタC/Bならば、演算ステ
ージで演算を行う時に、キャリー/ボローの値を算術論
理演算器E9の最下位ビットに入力する。
る。 (1)本実施例に係る機能付きレジスタをサポートする
データ処理装置では、上述した多様なアドレッシングモ
ードや複合命令等を、レジスタに機能を持たせることに
より行う。即ち、命令数を増加させる代わりに機能付の
レジスタを設け、オペコード領域のビット数の増加をオ
ペランド領域とターゲット領域のビット数で吸収する。
これに比べて、機能付きレジスタをサポートしていない
データ処理装置では、アドレッシングの方式を多様化し
たり幾つかの命令を組み合わせた複合命令を追加したり
してCISC的な機能を基本的な命令セットに持たせよ
うとすると、命令数を増加することになり、命令フォー
マット中、オペコードフィールドのビット数が増加して
しまい、オペコードデコーダの論理規模が大きくなり、
命令デコード時間の増加、即ちデータ処理装置の動作周
波数を低下させてしまうことになる。この相違は、図1
6からも明らかなように、本実施例データ処理装置では
機能拡張に際してオペレーションコード領域のビット数
並びにオペコードデコーダの論理規模の増大は全くな
い。これに対して、機能付きレジスタをサポートしない
従来方式ではオペレーションコード領域のビット数並び
にオペコードデコーダの論理規模は著しく増大する。 (2)更に、基本命令としてのオペレーションコードと
オペランド保持領域としての機能付きレジスタとの組み
合わせにより多様な機能を実現できるので、一つの機能
付きレジスタを設ければ複数の命令若しくはオペレーシ
ョンコードと組み合わせて使用できることになり、複数
の機能を実現できる。例えば、ロード・アンドインクリ
メントと、インクリメントと、ストア・アンド・インク
リメントの機能を付加しようとするとき、従来方式で
は、それらに個々に対応した命令若しくはオペレーショ
ンコードを追加することになるが、本発明ではインクリ
メント・レジスタを1個追加するだけで済む。したがっ
て、データ処理装置に追加した機能の数に比べて、追加
すべき機能付きレジスタの数は比較的小数で済み、オペ
ランド領域とターゲット領域のビット数の増加があまり
大きくならない。したがって、機能付きレジスタによっ
てデータ処理装置の機能を拡張しても、命令のオペラン
ドやターゲットの指定領域のビット数、そしてオペラン
ドデコーダ並びにターゲットデコーダの論理規模の増大
を最小限に抑えることができる。 (3)図2から図8までのオペレーティングレジスタを
用いて、PA−Riscで定義される命令と同様な機能
を実現した場合の命令数の削減を本発明者が試算したと
ころ、例えば、全命令セット121命令のうち、前記各
種機能付きレジスタを用いた効果により、26命令を削
減できる。これは元の命令数の21%に相当する。
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。例えば、
機能付きレジスタの種類は図2から図8で説明したもの
に限定されず、その他の機能を実現するようにもでき
る。以上の説明では主として本発明者によってなされた
発明をその背景となった利用分野である汎用レジスタ方
式のデータ処理装置に適用した場合について説明した
が、本発明はそれに限定されるものではなく、アキュム
レータ方式のデータ処理装置などにも適用可能である。
また、専用的な処理に専ら適用されるようなデータ処理
装置の場合にも汎用レジスタを不要にすることができ
る。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
または読み出し時に、そのデータに対して特定の処理を
施す機能を予め所定のレジスタ(機能付きレジスタ)に
割当て、その機能付きレジスタを命令中にで指定するこ
とにより、そのデータに対して、命令のオペレーション
コードによって規定される命令の処理と機能付きレジス
タの有する特定機能とを組み合わせた多様なデータ処理
を実現することができる。換言すれば、命令数の増加を
抑えて、多様なアドレッシングモードや複合命令による
処理と同等の機能を実現できる。 (2)命令のオペレーションコードによって規定される
命令の処理と機能付きレジスタの有する特定機能とを組
み合わせて多様なデータ処理を実現することにより、命
令セットの命令数を増加することなしに、換言すれば、
オペレーションコードのビット数を増大させることな
く、データ処理装置による処理を多様化若しくは多機能
化することができ、オペレーションコードのデコード論
理に代表されるような命令制御部のハードウェアの増大
を極力抑えて多様な機能を実現できる。これにより更
に、命令制御部の命令デコーダ等のランダムロジックの
論理規模が大きくならずに済み、LSIの性能低下も防
止できる。 (3)上記によって実現される多様な機能は一つの命令
中のオペランド指定領域などでの機能付きレジスタの指
定で行われ、且つ、その機能付きレジスタに割当てれれ
る固有の機能は当該レジスタに対するデータの書き込み
または読み出し時に行われるので、機能拡張に伴って実
行すべき命令数が増えず、このことは、高機能な処理を
少ないステップ数を以って実現できることも意味する。 (4)基本命令としてのオペレーションコードとオペラ
ンド保持領域としての機能付きレジスタとの組み合わせ
により多様な機能を実現できるので、一つの機能付きレ
ジスタを設ければ複数の命令若しくはオペレーションコ
ードと組み合わせて使用できることになり、複数の機能
を実現できる。したがって、データ処理装置に追加した
機能の数に比べて、追加すべき機能付きレジスタの数は
比較的小数で済み、オペランド領域とターゲット領域の
ビット数の増加があまり大きくならない。これにより、
機能付きレジスタによってデータ処理装置の機能を拡張
しても、命令のオペランドやターゲットの指定領域のビ
ット数、そしてオペランドデコーダ並びにターゲットデ
コーダの論理規模の増大を最小限に抑えることができ
る。
タの定義と機能の一例説明図である。
タのC言語的な定義並びにそれを用いた処理例を概念的
に示す説明図である。
レジスタのC言語的な定義並びにそれを用いた処理例を
概念的に示す説明図である。
レジスタのC言語的な定義並びにそれを用いた処理例を
概念的に示す説明図である。
インデックスレジスタ並びにアライメントレジスタのC
言語的な定義並びにそれを用いた処理例を概念的に示す
説明図である。
を示す説明図である。
ーレジスタのC言語的な定義並びにそれを用いた処理例
を概念的に示す説明図である。
スタのC言語的な定義並びにそれを用いた処理例を概念
的に示す説明図である。
いたデータ処理装置の一実施例ブロック図である。
式を示す一例説明図である。
構成に即して実行するときの制御方式をパイプライン形
式で示す一例説明図である。
ションを図9の構成に即して実行するときの制御方式を
パイプライン形式で示す一例説明図である。
図である。
と本発明に係るデータ処理装置の、パイプラインステー
ジで区切った一例動作フローチャートである。
を示した説明図である。
Claims (24)
- 【請求項1】 それぞれがオペレーションコード部とデ
ータ部とを含む複数の単一命令を含むところの複数の命
令に応答して、処理手続を実行するデータ処理装置であ
って、 それぞれ互いに異なるところの予め決められた処理手続
が割り当てられた複数の機能レジスタであって、単一命
令のデータ部によって一つの機能レジスタが特定される
複数の機能レジスタと、 単一命令のデータ部に応答して、機能レジスタにアクセ
スするアクセス手段と、 オペレーションコード部とは独立に、機能レジスタへの
ライトデータの書き込みのためのライトアクセス及び機
能レジスタからのリードデータの読み出しのためのリー
ドアクセス内の一つに応答して、機能レジスタから読み
出されるべきリードデータ及び機能レジスタに書き込ま
れるべきライトデータの内の一つに対して、特定された
機能レジスタに割り当てられた予め決められた処理手続
を実行する処理手段と、を含んで成るものであることを
特徴とするデータ処理装置。 - 【請求項2】 上記処理手段は、単一命令のデータ部に
よって特定されたところの機能レジスタに割り当てられ
たところの予め決められた処理手続の実行に加えて、上
記単一命令のオペレーションコード部に従った処理手続
を実行する手段を含んで成るものであることを特徴とす
る請求項1記載のデータ処理装置。 - 【請求項3】 上記処理手段は、上記複数の機能レジス
タの内の一つへのライトアクセス又はリードアクセスに
応答して、その一つの機能レジスタに割り当てられたと
ころの予め決められた処理手続を実行する手段を含んで
なるものであることを特徴とする請求項2記載ののデー
タ処理装置。 - 【請求項4】 上記処理手段は、上記複数の機能レジス
タの内の一つへのライトアクセス又はリードアクセスに
応答して、その一つの機能レジスタに割り当てられたと
ころの予め決められた処理手続を、上記一つの機能レジ
スタに書き込まれるライトデータ又は読み出されるリー
ドデータに対して実行する手段を含んで成るものである
ことを特徴とする請求項1記載のデータ処理装置。 - 【請求項5】 オペレーションコードと、それぞれに予
め決められた処理手続が割り当てられた複数の機能レジ
スタから一つの機能レジスタを特定するデータと、を有
する単一命令に応答して、処理手続を実行するデータ処
理方法であって、 a)上記オペレーションコードとは独立して、上記単一
命令のデータにより特定されたところの機能レジスタに
割り当てられた予め決められている処理手続を、該機能
レジスタに書き込まれるべきライトデータ又は該機能レ
ジスタから読み出されるべきリードデータへ実行する工
程と、 b)上記単一命令のオペレーションコードによって指定
された処理手続を実行する工程と、を含むことを特徴と
するデータ処理方法。 - 【請求項6】 上記a)の工程は、 a1)上記機能レジスタからリードデータを読み出す工
程と、 a2)上記機能レジスタに割り当てられたところの予め
決められている第1処理手続を、上記リードデータに対
して実行する工程と、を含むことを特徴とする請求項5
記載のデータ処理方法。 - 【請求項7】 上記b)の工程は、 b1)上記オペレーションコードによって指定された第
2処理手続を、上記第1処理手続が実行されていないラ
イトデータ又は上記第1処理手続が実行されたリードデ
ータに対して実行する工程を含むことを特徴とする請求
項5記載のデータ処理方法。 - 【請求項8】 上記a)の工程は、 a1)上記機能レジスタに割り当てられた処理手続をラ
イトデータに対して実行する工程と、 a2)ライトデータを上記機能レジスタに書き込む工程
と、を含むことを特徴とする請求項5記載のデータ処理
方法。 - 【請求項9】 上記b)の工程は、 上記機能レジスタに予め決められた処理手続が実行され
た後、データに対して上記オペレーションコードによっ
て指定された処理手続を実行する工程を含むことを特徴
とする請求項6記載のデータ処理方法。 - 【請求項10】 上記b)の工程は、 上記オペレーションコードによって指定された処理手続
を実行した後、データを上記機能レジスタに書き込む工
程を含むことを特徴とする請求項8記載のデータ処理方
法。 - 【請求項11】 命令制御部と、上記命令制御部の制御
に基いてオペレーションコードとデータ部とを有する命
令を実行する実行部と、を有するデータ処理装置であっ
て、 複数の汎用レジスタと、 それぞれに予め決まった処理手続が割り当てられた複数
の機能レジスタとを含み、 上記予め決まった処理手続は、機能レジスタへ書き込ま
れるライトデータ又は機能レジスタから読み出されるリ
ードデータに対して実行され、命令におけるオペレーシ
ョンコードによって指定された処理手続と命令における
データ部により指定された機能レジスタに割り当てられ
ているところの予め決められている処理手続との両方
が、機能レジスタを指定する命令の実行に応答して、実
行されることを特徴とするデータ処理装置。 - 【請求項12】 上記実行部は、機能レジスタの入力に
接続されたインバータを含み、該機能レジスタに割り当
てられたところの予め決められた処理手続は、書き込ま
れるべきライトデータを反転する処理手続であることを
特徴とする請求項11記載のデータ処理装置。 - 【請求項13】 上記実行部は、加算されるべき所定の
値を選択的に出力するセレクターと、機能レジスタの出
力に上記所定の値を加算し、その結果を上記機能レジス
タへ供給する加算器とを含み、 上記機能レジスタに割り当てられたところの予め決めら
れた処理手続は、上記機能レジスタに格納されているデ
ータに上記所定の値を加算し、その結果を上記リードデ
ータとして出力する処理手続であることを特徴とする請
求項11記載のデータ処理装置。 - 【請求項14】 機能レジスタに割り当てられたところ
の予め決められた処理手続は、命令が負であるディスプ
レースメントを示す場合、その命令に従った処理のため
に、上記機能レジスタに格納されているデータからディ
スプレースメントを引いた値をリードデータとして供給
するか、 又は命令がゼロ或いは正であるディスプレースメントを
示す場合、格納されたデータに上記ディスプレースメン
トを加算することにより、機能レジスタに格納されてい
るデータを更新する処理手続であることを特徴とする請
求項11記載のデータ処理装置。 - 【請求項15】 割り当てられたところの処理手続は、
マスクパターンとライトデータとの間で論理積を採り、
ラッチする処理手続であることを特徴とする請求項11
記載のデータ処理装置。 - 【請求項16】 機能レジスタに割り当てられたところ
の予め決められた処理手続は、プログラムステータスワ
ードのキャリー或いはボロー状態を示すビットの値を書
き込まれるべきデータに加算し、それにより得られたデ
ータを上記機能レジスタに書き込む処理手続であること
を特徴とする請求項11記載のデータ処理装置。 - 【請求項17】 機能レジスタに割り当てられたところ
の予め決められた処理手続は、上記機能レジスタに格納
されたデータを所定方向へ所定ビット数シフトすること
を特徴とする請求項11記載のデータ処理装置。 - 【請求項18】 オペレーションコード部と、該オペレ
ーションコード部によって指定された処理手続において
使われるべきレジスタを複数のレジスタから指定する情
報部とを有する命令に従ってデータを処理するためのデ
ータ処理方法であって、 それぞれ予め決まった固有の動作が割り当てられた複数
のレジスタから、命令の情報部によって指定されたとこ
ろのレジスタに割り当てられている固有の動作へ、その
レジスタに格納されているデータを提供する工程と、 上記固有の動作の結果を、上記レジスタからリードデー
タとして、オペレーションコード部により指定された処
理へ供給する工程と、を含むことを特徴とするデータ処
理方法。 - 【請求項19】 上記供給する工程の後に、上記供給さ
れたリードデータを上記レジスタへ書き戻す工程を含む
ことを特徴とする請求項18記載のデータ処理方法。 - 【請求項20】 オペレーションコード部と、該オペレ
ーションコード部によって指定された処理手続において
使われるべきレジスタを複数のレジスタから指定する情
報部と、を有する命令に従ってデータを処理するための
データ処理方法であって、 それぞれ予め決まった固有の動作が割り当てられた複数
のレジスタから、命令の情報部によって指定されたとこ
ろのレジスタへ書き込まれるべきデータを、そのレジス
タに割り当てられている固有の動作へ提供する工程と、 上記固有の動作の結果を、ライトデータとして上記レジ
スタへ書き込む工程と、を含むことを特徴とするデータ
処理方法。 - 【請求項21】 複数のレジスタから固有の動作が割り
当てられたレジスタを選択する情報を上記情報部が含ん
でいることを特徴とする請求項20記載のデータ処理方
法。 - 【請求項22】 複数の処理手続の内の一つを指定する
オペレーションコード部と、該オペレーションコード部
によって指定された処理手続において使われるべきレジ
スタを指定する指定情報部と、を有する命令に従ってデ
ータ処理を実行するデータ処理装置であって、 それぞれ固有の動作が割り当てられた複数の機能レジス
タから、上記指定情報部により指定された機能レジスタ
に格納されているデータの、該機能レジスタに割り当て
られている固有の動作への適用を制御する命令制御部
と、 割り当てられた固有の動作を、格納されているデータに
対して実行し、その結果をリードデータとして上記機能
レジスタからオペレーションコード部によって指定され
た処理手続へ供給する実行部と、を含んで成るものであ
ることを特徴とするデータ処理装置。 - 【請求項23】 上記命令制御部は、上記供給されたリ
ードデータを上記機能レジスタへ書き込むことを特徴と
する請求項22記載のデータ処理装置。 - 【請求項24】 複数の処理手続の内の一つを指定する
オペレーションコード部と、該オペレーションコード部
によって指定された処理手続において使われるべきレジ
スタを指定する指定情報部と、を有する命令に従ってデ
ータ処理を実行するデータ処理装置であって、 それぞれ固有の動作が割り当てられたところの複数の機
能レジスタから、上記指定情報部により指定された機能
レジスタへ書き込まれるべきライトデータの、該機能レ
ジスタに割り当てられている固有の動作への適用を制御
する命令制御部と、 割り当てられた固有の動作を、上記ライトデータに対し
て実行し、その結果を上記機能レジスタへ書き込む実行
部と、を含んで成るものであることを特徴とするデータ
処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27666592A JP3164915B2 (ja) | 1992-09-21 | 1992-09-21 | データ処理装置及びそのデータ処理方法 |
KR1019930018923A KR100278136B1 (ko) | 1992-09-21 | 1993-09-18 | 데이타처리장치 및 데이타처리방법 |
US08/704,362 US5701425A (en) | 1992-09-21 | 1996-08-28 | Data processor with functional register and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27666592A JP3164915B2 (ja) | 1992-09-21 | 1992-09-21 | データ処理装置及びそのデータ処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06103064A JPH06103064A (ja) | 1994-04-15 |
JP3164915B2 true JP3164915B2 (ja) | 2001-05-14 |
Family
ID=17572615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27666592A Expired - Lifetime JP3164915B2 (ja) | 1992-09-21 | 1992-09-21 | データ処理装置及びそのデータ処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5701425A (ja) |
JP (1) | JP3164915B2 (ja) |
KR (1) | KR100278136B1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1091432A (ja) * | 1996-09-13 | 1998-04-10 | Sanyo Electric Co Ltd | プログラム実行方法およびプログラム実行装置 |
JP3541669B2 (ja) * | 1998-03-30 | 2004-07-14 | 松下電器産業株式会社 | 演算処理装置 |
JP4024247B2 (ja) | 2002-09-30 | 2007-12-19 | 株式会社ルネサステクノロジ | 半導体データプロセッサ |
US20100023733A1 (en) * | 2008-04-15 | 2010-01-28 | Vns Portfolio Llc | Microprocessor Extended Instruction Set Precision Mode |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3646522A (en) * | 1969-08-15 | 1972-02-29 | Interdata Inc | General purpose optimized microprogrammed miniprocessor |
US3786436A (en) * | 1973-03-14 | 1974-01-15 | Gte Automatic Electric Lab Inc | Memory expansion arrangement in a central processor |
US3969724A (en) * | 1975-04-04 | 1976-07-13 | The Warner & Swasey Company | Central processing unit for use in a microprocessor |
JPS5242337A (en) * | 1975-09-30 | 1977-04-01 | Toshiba Corp | Data processing unit |
US4128873A (en) * | 1977-09-20 | 1978-12-05 | Burroughs Corporation | Structure for an easily testable single chip calculator/controller |
US4283713A (en) * | 1979-01-15 | 1981-08-11 | Tektronix, Inc. | Waveform acquisition circuit |
-
1992
- 1992-09-21 JP JP27666592A patent/JP3164915B2/ja not_active Expired - Lifetime
-
1993
- 1993-09-18 KR KR1019930018923A patent/KR100278136B1/ko not_active IP Right Cessation
-
1996
- 1996-08-28 US US08/704,362 patent/US5701425A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR940007692A (ko) | 1994-04-27 |
KR100278136B1 (ko) | 2001-01-15 |
JPH06103064A (ja) | 1994-04-15 |
US5701425A (en) | 1997-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
EP0476722B1 (en) | Data processing system | |
JPH03116233A (ja) | データプロセッサの命令処理システム | |
US7181593B2 (en) | Active memory command engine and method | |
US6629234B1 (en) | Speculative generation at address generation stage of previous instruction result stored in forward cache for use by succeeding address dependent instruction | |
KR100465388B1 (ko) | Risc 구조의 8비트 마이크로 제어기 | |
JP2620511B2 (ja) | データ・プロセッサ | |
JPH01214932A (ja) | データ処理装置 | |
US5757685A (en) | Data processing system capable of processing long word data | |
US5771366A (en) | Method and system for interchanging operands during complex instruction execution in a data processing system | |
US5253349A (en) | Decreasing processing time for type 1 dyadic instructions | |
JP3164915B2 (ja) | データ処理装置及びそのデータ処理方法 | |
EP1499956B1 (en) | Method and apparatus for swapping the contents of address registers | |
US6263424B1 (en) | Execution of data dependent arithmetic instructions in multi-pipeline processors | |
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
US5832533A (en) | Method and system for addressing registers in a data processing unit in an indexed addressing mode | |
US5983344A (en) | Combining ALU and memory storage micro instructions by using an address latch to maintain an address calculated by a first micro instruction | |
JPH10124312A (ja) | 中央処理装置 | |
US6233675B1 (en) | Facility to allow fast execution of and, or, and test instructions | |
JP3534987B2 (ja) | 情報処理装置 | |
JPH08272611A (ja) | マイクロプロセッサ | |
JPH03201030A (ja) | プロセッサ | |
US6442673B1 (en) | Update forwarding cache for address mode | |
JP3520372B2 (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20010220 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080302 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090302 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090302 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100302 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 12 |