JPH06103064A - データ処理装置及びそのデータ処理方法 - Google Patents

データ処理装置及びそのデータ処理方法

Info

Publication number
JPH06103064A
JPH06103064A JP4276665A JP27666592A JPH06103064A JP H06103064 A JPH06103064 A JP H06103064A JP 4276665 A JP4276665 A JP 4276665A JP 27666592 A JP27666592 A JP 27666592A JP H06103064 A JPH06103064 A JP H06103064A
Authority
JP
Japan
Prior art keywords
register
instruction
data
value
data processing
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.)
Granted
Application number
JP4276665A
Other languages
English (en)
Other versions
JP3164915B2 (ja
Inventor
Shigeru Nakahara
茂 中原
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 Ltd
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Priority to JP27666592A priority Critical patent/JP3164915B2/ja
Priority to KR1019930018923A priority patent/KR100278136B1/ko
Publication of JPH06103064A publication Critical patent/JPH06103064A/ja
Priority to US08/704,362 priority patent/US5701425A/en
Application granted granted Critical
Publication of JP3164915B2 publication Critical patent/JP3164915B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing 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)

Abstract

(57)【要約】 【目的】 オペレーションコードのビット数や命令制御
部の論理規模の増大を抑えつつ機能を多様に拡張できる
データ処理装置を提供することにある。 【構成】 レジスタに対するデータの書き込みまたは読
み出し時に、そのデータに対して特定の処理を施す機能
を予め所定のレジスタ(機能付きレジスタ)Reg
〔R〕,Reg〔W〕に割当て、その機能付きレジスタ
を命令中にで指定することにより、そのデータに対し
て、命令のオペレーションコードによって規定される命
令の処理と機能付きレジスタの有する特定機能とを組み
合わせた多様なデータ処理を実現するものである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オペレーションコード
の増大を抑えつつ高機能な処理を実現し、また高機能な
処理を少ないステップ数を以って実現可能なデータ処理
装置並びにデータ処理方法に係り、例えば、マイクロコ
ンピュータのような論理集積回路装置に適用して有効な
技術に関するものである。
【0002】
【従来の技術】フォン・イノマン型などのデータ処理装
置の基本的な構成は程んど同じであり、例えば、キャッ
シュメモリ等に記憶した一連の命令を順番に命令制御部
に読み込み、その命令が何であるかを表わしているオペ
レーションコードと呼ばれるビット領域をデコードして
データに施すべき処理を決定し、更にオペランドと呼ば
れる被演算データを指定する領域をデコードしてデータ
を取り込んで、上述した処理をそのデータに対して行う
ものである。このようなデータ処理装置の一例として
は、Mips(ミップス)社のR4000チップ(日経
エレクトロニクス,1991年10月14日日経PB社
発行,No.496号)、Intel(インテル)社の
i960チップ(日経エレクトロニクス,1990年1
月8日日経PB社発行,No.490号)、及びHP
(ヒューレットパッカード)社のPA−RISCチップ
(日経マイクロデバイス,日経PB社発行の1990年
9月号)などを挙げることができる。
【0003】また、データ処理装置のアーキテクチャー
は、比較的簡単な命令セットを以って処理の高速化並び
にハードウェアの簡素化を図ろうとするRISC(Re
duced Instruction Set Com
puter)的アーキテクチャーと、オブジェクト指向
のアーキテクチャのような比較的複雑な命令セットを以
って高機能化を目指すCISC(Complex In
structionSet Computer)的アー
キテクチャに大別できる。現実に提供されている各種デ
ータ処理装置のアーキテクチャがRISCかCISCの
何れであるかというような峻別は実際には難しいが、多
様なアドレッシングモードや、一つの命令で複数の演算
を行う複合命令などをCISC的な命令と考えることが
できる。
【0004】
【発明が解決しようとする課題】しかしながら、前記R
ISC的なデータ処理装置において、CISC的なデー
タ処理装置が1命令で提供するような高機能な処理は、
基本的で簡単な処理を実現する命令を複数組み合せて対
処していた。このため、出現頻度は少ないかもしれない
が、そのような処理を能率的に行うことができなかっ
た。このとき、多様なアドレッシングモードや、一つの
命令で複数の演算を行う複合命令など、CISC的な命
令を基本的な命令セットに追加しようとすると、ハード
ウェアがサポートする命令数が増加してしまう。その結
果、命令制御部のデコーダ等のランダムロジックの論理
規模が大きくなり、クリティカルパスの遅延時間の増
大、すなわちLSIチップの性能低下やチップ面積の増
加、開発日程の増大化などを招いてしまっていた。
【0005】本発明の目的は、オペレーションコードの
増大を抑えつつ機能の多様化を実現し、また高機能な処
理を少ないステップ数を以って実現可能なデータ処理装
置並びにそのデータ処理方法を提供することにある。今
発明の別の目的は、ハードウェアの増大を極力抑えて多
様な機能を実現できるデータ処理装置を提供することに
ある。
【0006】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0007】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0008】すなわち、レジスタに対するデータの書き
込みまたは読み出し時に、そのデータに対して特定の処
理を施す機能を予め所定のレジスタ(機能付きレジス
タ)に割当て、その機能付きレジスタを命令中に指定す
ることにより、そのデータに対して、命令のオペレーシ
ョンコードによって規定される命令の処理と機能付きレ
ジスタの有する特定機能とを組み合わせた多様なデータ
処理を実現するものである。
【0009】
【作用】上記した手段によれば、命令のオペレーション
コードによって規定される命令の処理と機能付きレジス
タの有する特定機能とを組み合わせて多様なデータ処理
を実現できる。このことは、命令セットの命令数を増加
することなしに、換言すれば、オペレーションコードの
ビット数を増大させることなく、データ処理装置による
処理を多様化若しくは多機能化するように作用し、オペ
レーションコードのデコード論理に代表されるような命
令制御部のハードウェアの増大を極力抑えて多様な機能
を実現できる。
【0010】上記によって実現される多様な機能は一つ
の命令中のオペランド指定領域などでの機能付きレジス
タの指定で行われ、且つ、その機能付きレジスタに割当
てれれる固有の機能は当該レジスタに対するデータの書
き込みまたは読み出し時に行われるので、機能拡張に伴
って実行すべき命令数が増えず、このことが、高機能な
処理を少ないステップ数を以って実現するように作用す
る。
【0011】
【実施例】図1には本発明に係るデータ処理装置の機能
付きレジスタ(以下オペレーティングレジスタとも記
す)の定義と機能の一例が示される。同図におけるオペ
レーティングレジスタの一般的定義は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〕に書き戻すかのどちら
か一方か、またはその両方を行う。
【0012】オペレーティング・ライト・データ・レジ
スタReg〔W〕は、予じめ定義されているReg
〔W〕固有のオペレーションFw(i)を、i番目の命
令のReg〔W〕で規定される特定のフィールドの値を
パラメータとして、書き込みデータ(write da
ta)に対して行い、当該Reg〔W〕に書き込む。
【0013】前記オペレーティングレジスタReg
〔R〕,Reg〔W〕は、図1に示されるようなフォー
マットの命令の中で指定することができる。図に示され
る命令は、オペレーションコード指定フィールドとオペ
ランド並びにその他情報の指定フィールドを有し、オペ
レーションコード指定フィールドには、データ処理装置
のアーキテクチャに従って用意されているオペレーショ
ンコード(LOADやADDといった命令コード)OP
が記述され、オペランド並びにその他情報の指定フィー
ルドには、前記オペレーションコードに従って命令を実
行するために必要なオペランド(演算対象となるもの)
それ自体やその所在、更にはその他制御情報が記述され
る。前記オペレーティングレジスタReg〔R〕,Re
g〔W〕は、命令フォーマット中において前記オペラン
ド並びにその他情報の指定フィールドで指定される。そ
の指定は、例えば、オペレーティングレジスタReg
〔R〕,Reg〔W〕に割当てられた固有のレジスタ番
号で指定することができる。
【0014】このように固有の機能が割当てられたオペ
レーティング・リード・レジスタReg〔R〕を命令中
で指定したとき、当該命令の実行においては、その命令
のオペレーションコードで規定される処理(オペレーシ
ョン)とオペレーティング・リード・データ・レジスタ
Reg〔R〕固有の処理が、当該オペレーティング・リ
ード・データ・レジスタReg〔R〕の保持情報を利用
して行われる。例えば、その命令中で指定されたオペレ
ーティングレジスタReg〔R〕に予め割当てられてい
る固有のオペレーションを、当該レジスタの保持値に対
して行い、その結果を前記オペレーティングレジスタR
eg〔R〕からの読み出しデータとしてオペレーション
コードで指定された処理に引渡す処理を行う。前記オペ
レーションコードで指定された処理に引渡した後、その
引渡した読み出しデータを当該オペレーティングレジス
タReg〔R〕に書き戻す処理を必要に応じて更に行う
ことができる。
【0015】また、固有の機能が割当てられたオペレー
ティング・ライト・データ・レジスタReg〔W〕を命
令中で指定したとき、当該命令の実行においては、その
命令のオペレーションコードで規定される処理とオペレ
ーティング・ライト・データ・レジスタReg〔W〕固
有の処理が行われ、その結果が当該オペレーティング・
ライト・データ・レジスタReg〔W〕に格納される。
例えば、その命令中で指定されたオペレーティングレジ
スタReg〔W〕に予め割当てられている固有のオペレ
ーションを、その命令のオペレーションコードによって
当該オペレーティングレジスタReg〔W〕への書き込
みが指定されたデータに対して行い、これを当該オペレ
ーティングレジスタReg〔W〕に書き込む処理を行
う。
【0016】オペレーティング・リード・データ・レジ
スタReg〔R〕と、オペレーティング・ライト・デー
タ・レジスタReg〔W〕に割当てられた夫々固有の処
理は、当該レジスタに対するデータの読み出し又は書込
みに際して行われる。
【0017】この原理的な説明から明らかなように、既
存の所定オペレーションコードにオペレーティングレジ
スタReg〔R〕,Reg〔W〕の指定を伴うことによ
り、オペレーションコードの種類を増やすことなく同一
オペレーションコードすなわち1命令によって実現可能
な処理を多様化若しくは豊富化でき、命令数並びに命令
制御部の論理規模を増やすことなく高機能的な命令と同
様の処理をサポートできるようになる。見方を変えれ
ば、もともと高機能的な命令を専用のオペレーションコ
ードで用意しているデータ処理装置においては、その機
能を削減することなく命令数並びに命令制御部の論理規
模を減らすことができる。
【0018】次に図2から図8を参照しながら前記オペ
レーティングレジスタの具体例、並びにそれを用いた処
理の一例をメモリ・レジスタ間のデータの流れに着目し
て概念的に説明する。
【0019】図2にはノット・レジスタのC言語的な定
義並びにそれを用いた処理例が概念的に示される。ノッ
トレジスタ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命令)で実行することができる。
【0020】図3にはインクリメントレジスタのC言語
的な定義並びにそれを用いた処理例が概念的に示され
る。インクリメントレジスタIn(Reg〔In〕)
は、前記オペレーティング・リード・データ・レジスタ
Reg〔R〕の範疇に含まれ、インクリメントレジスタ
In(Reg〔In〕)のデータの読み出しが行われる
際に、ある定数だけ、そのデータが示す内容に増加させ
て再びインクリメントレジスタIn(Reg〔In〕)
に書き戻すものである。同図の応用例では、インクリメ
ントレジスタInはLOAD命令のベースアドレス指定
用のレジスタとして使用される。このような応用例にお
いては、一つのデータをメモリからレジスタに書き込み
をする毎にインクリメントレジスタInのベースアドレ
スが自動的に定数ずつ増加されるので、連続するメモリ
領域のデータの読み出し処理を、通常のLOAD命令を
用いて実行できる。
【0021】図4にはモディファイドレジスタのC言語
的な定義並びにそれを用いた処理例が概念的に示され
る。モディファイドレジスタ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命令により実現す
ることができるようになる。
【0022】図5にはモディファイドインデックスレジ
スタのC言語的な定義が示される。モディファイドイン
デックスレジスタMi(Reg〔Mi〕)は、図3のイ
ンクリメントレジスタIn(Reg〔In〕)のオペレ
ーションで、定数(Const)の代わりにi番目の命
令で指定されたレジスタReg〔r〕の値を使うもので
ある。図3の応用例にモディファイドインデックスレジ
スタMi(Reg〔Mi〕)を用いる場合、予じめRe
g〔r〕に適当な値を入れておくことにより、任意の値
でベースアドレスの増加が行える。
【0023】図5には更にアライメントレジスタのC言
語的な定義並びにそれを用いた処理例が概念的に示され
る。アライメントレジスタ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命令)で実行でき
る。
【0024】図7にはキャリー/ボロー(Carry/
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〕を加えることができる。
【0025】図8にはシフテッドレジスタReg〔n
i〕のC言語的な定義並びにそれを用いた処理例が概念
的に示される。シフテッドレジスタni(Reg〔n
i〕)は、前記オペレーティング・リード・データ・レ
ジスタReg〔R〕の範疇に含まれ、シフテッドレジス
タni(Reg〔ni〕)の内容をiビットだけ左側に
シフトし、読み出しデータ(read data)とし
て出力する。同図の応用例では、ADD命令が示されて
いて、この命令を実行すると、シフテッドレジスタn2
から読み出されたデータは2ビット左シフトされた後に
レジスタbの値と加算され、その加算結果のデータがデ
ィスティネーションのレジスタtに書き込まれる。
【0026】図9には図2から図8で説明した機能付き
レジスタを用いたデータ処理装置の一実施例ブロック図
が示される。同図に示されるデータ処理装置は、公知の
半導体集積回路製造技術によってシリコンのような1個
の半導体基板に形成され、命令制御部1、演算部2、命
令キャッシュメモリ3、及びデータキャッシュメモリ4
が代表的に示される。
【0027】同図の演算部2に示されるE3は、図2か
ら図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により制御される。
【0028】命令制御部1は命令キャッシュメモリ3か
らフェッチした命令を解読して、代表的に図示された各
種の制御信号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の開閉制御などに利用
される。
【0029】ここで図10を参照しながら汎用レジスタ
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)が存在することになる。
【0030】プログラムカウンタE10で指定されたア
ドレスにある命令は、命令キャッシュメモリ3から読み
出され、命令制御部1へ送られる。命令制御部1は命令
中のオペコード及びオペランドなどをデコードし、その
デコード結果にしたがった各種制御信号などで演算部2
の動作を制御する。
【0031】図11及び図12には図2から図8に示さ
れる各種機能付きレジスタに割当てられているオペレー
ションを図9の構成で実行するときの制御形態がパイプ
ライン形式で示される。同図に示されるパイプライン処
理は、命令フェッチ、命令デコード、演算、メモリアク
セス、及びレジスタライト/メモリストアの5段のパイ
プラインステージから構成され、機能付きレジスタを指
定した処理毎に、どのステージでどのような処理が行わ
れるかが示されている。同図において実線矢印はデータ
の流れ、破線矢印はアサートされた制御信号又はアドレ
ス信号の流れを意味する。そして信号に付された符号並
びにブロック内の符号は図9に示される符号に対応して
いる。図2乃至図8で説明した各種機能付きレジスタに
割当てられているオペレーションの一例を図9の構成に
即して説明していく。
【0032】LOAD命令等の実行時に、命令デコード
ステージにおいて、ターゲットデコーダI3が、デコー
ドしたレジスタ番号がノットレジスタNの場合は、マス
ク回路E5を介して読み出されるデータキャッシュメモ
リ4の読み出しデータ又は内部バスB2(以下書き込み
バスとも記す)に読み出されているデータのビット値
が、レジスタライトメモリストアステージでビット値を
反転させる反転回路E4により、反転させられレジスタ
選択制御信号S7により選択されるノットレジスタNに
書き込まれる〔図11(1),(2)〕。
【0033】LOAD命令等の実行時に、命令デコード
ステージにおいて、ターゲットデコーダ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等を介して書き込む。
【0034】オペランドデコーダI1がデコードしたレ
ジスタ番号が機能付きレジスタ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)〕。
【0035】また命令デコードステージでオペランドデ
コーダ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の動作説明時に説明する。
【0036】命令デコードステージでオペランドデコー
ダ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)〕。
【0037】オペランドデコーダI1がデコードしたレ
ジスタ番号がモディファイドインデックスレジスタMi
の場合、制御信号S3がセレクタE1の出力としてソー
スバスB1を選択することにより、モディファイドイン
デックスレジスタMiの値のデータと任意のレジスタの
値のデータとの加算が演算ステージにおいて加算器E2
で行われる。以後の動作は、インクリメントレジスタI
nのときと同様である。
【0038】命令デコードステージで算術演算時のデー
タの書き込み先としてターゲットデコーダ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が選ばれる。
【0039】図13には前記マスク回路E5の一例が示
される。尚、図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ステート出力
回路を含んで構成される。
【0040】ターゲットレジスタとしてアライメントレ
ジスタ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”が出
力される。
【0041】図14には図9に示されるデータ処理装置
のチップ平面が概略的に示される。同図において3は命
令キャッシュメモリ(CC)、4はデータキャッシュメ
モリ(DC)、2は演算部(EU)、1は命令制御部
(IU)、9はメモリ制御用ランダム論理(MU)及び
システムバス制御部(PU)、6は命令用タグキャッシ
ュメモリ(CA)、7はデータ用タグキャッシュメモリ
(DC)、5は命令用アドレス変換バッファ(CT)、
7はデータ用アドレス変換バッファ(DT)、10は入
出力部(I/O)である。
【0042】図15には機能付きレジスタをサポートし
ていないデータ処理装置と本発明に係る機能付きレジス
タをサポートするデータ処理装置の、パイプラインステ
ージで区切った動作フローチャートの一例が示される。
機能付きレジスタをサポートしていない場合には、命令
フェッチサイクルで図9の命令キャッシュメモリ3から
命令をフェッチし、デコードサイクルでフェッチした命
令のオペコードデコードとオペランドデコードを行い、
オペランドデコードによって示されるレジスタの内容を
汎用レジスタから算術論理演算器に送る。演算サイクル
では、オペコードデコードで指示された演算を、フェッ
チしたレジスタの内容に対して算術論理演算器が行う。
指示された演算がLOADもしくはSTORE命令なら
ば、続くメモリアクセスサイクルで、アクセスするメモ
リのアドレスと(STORE時は)書き込むデータをデ
ータキャッシュメモリへ送る。そして、レジスタライト
・メモリストアサイクルで、演算したデータを汎用レジ
スタまたはデータキャッシュメモリへ書き込む。命令が
データのアライメントを指示するものであれば、このサ
イクルでそれを行った後に書き込みを行う。
【0043】機能付きレジスタをサポートする場合に
は、デコードサイクルでデコードしたオペランドが、イ
ンクリメントレジスタIn、モディファイドレジスタ
M、インクリメントモディファイドレジスタMiのと
き、次の演算ステージにてアドレスモディファイ・イン
クリメントを行う。また、デコードしたオペランドがシ
フテッドレジスタniの場合、演算サイクルで、演算・
メモリアドレス計算を行う際に、あらかじめiビットだ
けデータをプリシフトする。
【0044】データの書き込み先のレジスタとして、ア
ライメントレジスタAL0又はAL1、ノットレジスタ
Nが指定されたときは、レジスタライト・メモリストア
ステージにてデータのマスクあるいはビット反転を行っ
てからデータ書き込みを行う。また書き込み先のレジス
タがキャリー/ボローレジスタC/Bならば、演算ステ
ージで演算を行う時に、キャリー/ボローの値を算術論
理演算器E9の最下位ビットに入力する。
【0045】上記実施例によれば以下の作用効果があ
る。 (1)本実施例に係る機能付きレジスタをサポートする
データ処理装置では、上述した多様なアドレッシングモ
ードや複合命令等を、レジスタに機能を持たせることに
より行う。即ち、命令数を増加させる代わりに機能付の
レジスタを設け、オペコード領域のビット数の増加をオ
ペランド領域とターゲット領域のビット数で吸収する。
これに比べて、機能付きレジスタをサポートしていない
データ処理装置では、アドレッシングの方式を多様化し
たり幾つかの命令を組み合わせた複合命令を追加したり
してCISC的な機能を基本的な命令セットに持たせよ
うとすると、命令数を増加することになり、命令フォー
マット中、オペコードフィールドのビット数が増加して
しまい、オペコードデコーダの論理規模が大きくなり、
命令デコード時間の増加、即ちデータ処理装置の動作周
波数を低下させてしまうことになる。この相違は、図1
6からも明らかなように、本実施例データ処理装置では
機能拡張に際してオペレーションコード領域のビット数
並びにオペコードデコーダの論理規模の増大は全くな
い。これに対して、機能付きレジスタをサポートしない
従来方式ではオペレーションコード領域のビット数並び
にオペコードデコーダの論理規模は著しく増大する。 (2)更に、基本命令としてのオペレーションコードと
オペランド保持領域としての機能付きレジスタとの組み
合わせにより多様な機能を実現できるので、一つの機能
付きレジスタを設ければ複数の命令若しくはオペレーシ
ョンコードと組み合わせて使用できることになり、複数
の機能を実現できる。例えば、ロード・アンドインクリ
メントと、インクリメントと、ストア・アンド・インク
リメントの機能を付加しようとするとき、従来方式で
は、それらに個々に対応した命令若しくはオペレーショ
ンコードを追加することになるが、本発明ではインクリ
メント・レジスタを1個追加するだけで済む。したがっ
て、データ処理装置に追加した機能の数に比べて、追加
すべき機能付きレジスタの数は比較的小数で済み、オペ
ランド領域とターゲット領域のビット数の増加があまり
大きくならない。したがって、機能付きレジスタによっ
てデータ処理装置の機能を拡張しても、命令のオペラン
ドやターゲットの指定領域のビット数、そしてオペラン
ドデコーダ並びにターゲットデコーダの論理規模の増大
を最小限に抑えることができる。 (3)図2から図8までのオペレーティングレジスタを
用いて、PA−Riscで定義される命令と同様な機能
を実現した場合の命令数の削減を本発明者が試算したと
ころ、例えば、全命令セット121命令のうち、前記各
種機能付きレジスタを用いた効果により、26命令を削
減できる。これは元の命令数の21%に相当する。
【0046】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。例えば、
機能付きレジスタの種類は図2から図8で説明したもの
に限定されず、その他の機能を実現するようにもでき
る。以上の説明では主として本発明者によってなされた
発明をその背景となった利用分野である汎用レジスタ方
式のデータ処理装置に適用した場合について説明した
が、本発明はそれに限定されるものではなく、アキュム
レータ方式のデータ処理装置などにも適用可能である。
また、専用的な処理に専ら適用されるようなデータ処理
装置の場合にも汎用レジスタを不要にすることができ
る。
【0047】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0048】(1)レジスタに対するデータの書き込み
または読み出し時に、そのデータに対して特定の処理を
施す機能を予め所定のレジスタ(機能付きレジスタ)に
割当て、その機能付きレジスタを命令中にで指定するこ
とにより、そのデータに対して、命令のオペレーション
コードによって規定される命令の処理と機能付きレジス
タの有する特定機能とを組み合わせた多様なデータ処理
を実現することができる。換言すれば、命令数の増加を
抑えて、多様なアドレッシングモードや複合命令による
処理と同等の機能を実現できる。 (2)命令のオペレーションコードによって規定される
命令の処理と機能付きレジスタの有する特定機能とを組
み合わせて多様なデータ処理を実現することにより、命
令セットの命令数を増加することなしに、換言すれば、
オペレーションコードのビット数を増大させることな
く、データ処理装置による処理を多様化若しくは多機能
化することができ、オペレーションコードのデコード論
理に代表されるような命令制御部のハードウェアの増大
を極力抑えて多様な機能を実現できる。これにより更
に、命令制御部の命令デコーダ等のランダムロジックの
論理規模が大きくならずに済み、LSIの性能低下も防
止できる。 (3)上記によって実現される多様な機能は一つの命令
中のオペランド指定領域などでの機能付きレジスタの指
定で行われ、且つ、その機能付きレジスタに割当てれれ
る固有の機能は当該レジスタに対するデータの書き込み
または読み出し時に行われるので、機能拡張に伴って実
行すべき命令数が増えず、このことは、高機能な処理を
少ないステップ数を以って実現できることも意味する。 (4)基本命令としてのオペレーションコードとオペラ
ンド保持領域としての機能付きレジスタとの組み合わせ
により多様な機能を実現できるので、一つの機能付きレ
ジスタを設ければ複数の命令若しくはオペレーションコ
ードと組み合わせて使用できることになり、複数の機能
を実現できる。したがって、データ処理装置に追加した
機能の数に比べて、追加すべき機能付きレジスタの数は
比較的小数で済み、オペランド領域とターゲット領域の
ビット数の増加があまり大きくならない。これにより、
機能付きレジスタによってデータ処理装置の機能を拡張
しても、命令のオペランドやターゲットの指定領域のビ
ット数、そしてオペランドデコーダ並びにターゲットデ
コーダの論理規模の増大を最小限に抑えることができ
る。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置の機能付きレジス
タの定義と機能の一例説明図である。
【図2】機能付きレジスタの一例であるノット・レジス
タのC言語的な定義並びにそれを用いた処理例を概念的
に示す説明図である。
【図3】機能付きレジスタの一例であるインクリメント
レジスタのC言語的な定義並びにそれを用いた処理例を
概念的に示す説明図である。
【図4】機能付きレジスタの一例であるモディファイド
レジスタのC言語的な定義並びにそれを用いた処理例を
概念的に示す説明図である。
【図5】機能付きレジスタの一例であるモディファイド
インデックスレジスタ並びにアライメントレジスタのC
言語的な定義並びにそれを用いた処理例を概念的に示す
説明図である。
【図6】前記アライメントレジスタを用いた別の処理例
を示す説明図である。
【図7】機能付きレジスタの一例であるキャリー/ボロ
ーレジスタのC言語的な定義並びにそれを用いた処理例
を概念的に示す説明図である。
【図8】機能付きレジスタの一例であるシフテッドレジ
スタのC言語的な定義並びにそれを用いた処理例を概念
的に示す説明図である。
【図9】図2から図8で説明した機能付きレジスタを用
いたデータ処理装置の一実施例ブロック図である。
【図10】機能付きレジスタ及び汎用レジスタの指定方
式を示す一例説明図である。
【図11】機能付きレジスタのオペレーションを図9の
構成に即して実行するときの制御方式をパイプライン形
式で示す一例説明図である。
【図12】図11とは別の機能付きレジスタのオペレー
ションを図9の構成に即して実行するときの制御方式を
パイプライン形式で示す一例説明図である。
【図13】マスク回路の一例回路図である。
【図14】図9に示されるデータ処理装置のチップ平面
図である。
【図15】機能付きレジスタを有しないデータ処理装置
と本発明に係るデータ処理装置の、パイプラインステー
ジで区切った一例動作フローチャートである。
【図16】命令のフォーマットとハードウェアとの関係
を示した説明図である。
【符号の説明】
N ノットレジスタ In インクリメントレジスタ M モディファイドレジスタ Mi モディファイドインデックスレジスタ AL0 アライメントレジスタ Ag0 アライメントレジスタ(中間バッファ) C/B キャリー/ボローレジスタ ni シフテッドレジスタ 1 命令制御部 I1 オペランドデコーダ I2 オペコードデコーダ I3 ターゲットデコーダ I4、I5 その他の制御ブロック 2 演算部 E1 セレクタ E2 加算器 E3 機能付きレジスタ E4 反転回路 E5 マスク回路 E6 セレクタ E7 プリシフタ E8 汎用レジスタ E9 算術論理演算器 E10 プログラムカウンタ B3〜B0 レジスタ指定情報 B3 汎用レジスタ/機能付きレジスタ指定ビット

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 命令制御部の制御に基づいて命令を実行
    部で実行するデータ処理装置において、前記実行部に単
    数若しくは複数の機能付きレジスタを設けたものであっ
    て、 前記機能付きレジスタは、命令中でその利用が指定さ
    れ、それを指定する命令のオペレーションコードで指示
    される処理によって当該機能付きレジスタから読出さた
    情報或は書き込まれるべき情報に対して、当該オペレー
    ションコードで指定される処理とは別の特定の処理を付
    加する機能が予め割当てられたレジスタであることを特
    徴とするデータ処理装置。
  2. 【請求項2】 前記機能付きレジスタは、これに書き込
    むべきデータの各ビット値を反転して保持するノットレ
    ジスタであり、当該ノットレジスタの入力には反転回路
    が接続されて成るものである請求項1記載のデータ処理
    装置。
  3. 【請求項3】 前記機能付きレジスタは、それが保持す
    る値の読み出しが指定されることによって、当該読み出
    しデータに所定の定数を加算した値を再度保持するイン
    クリメントレジスタであり、前記加算すべき定数を選択
    して出力する選択回路と、選択回路の出力と前記インク
    リメントレジスタの出力を加算して当該インクリメント
    レジスタの入力に供給する加算器とを備えて成るもので
    ある請求項1記載のデータ処理装置。
  4. 【請求項4】 前記機能付きレジスタは、これを指定す
    る命令の偏値が負ならば保持値をリードデータとして前
    記命令による処理に引渡し、また、偏値が0または正な
    らば保持値から偏値を引いたものをリードデータとして
    前記命令による処理に引渡し、且つ、リードデータを引
    渡した後に当該保持値に前記偏値を加算した値を次の保
    持値として更新するモディファイドレジスタである請求
    項1記載のデータ処理装置。
  5. 【請求項5】 前記機能付きレジスタは、書き込みデー
    タに対してマスクパターンとの論理積が採られたものを
    保持するアライメントレジスタである請求項1記載のデ
    ータ処理装置。
  6. 【請求項6】 機能付きレジスタは、書き込むべきデー
    タにプログラムステータスワードのキャリー又はボロー
    の状態を表わすビットの値を加算したものを保持するキ
    ャリー/ボローレジスタである請求項1記載のデータ処
    理装置。
  7. 【請求項7】 前記機能付きレジスタは、保持値の値を
    所定ビットだけ所定方向にシフトさせた値を、そのリー
    ドデータとして命令の処理の引渡すシフテッドレジスタ
    である請求項1記載のデータ処理装置。
  8. 【請求項8】 命令の記述に従って処理を行うデータ処
    理方法において、 前記命令の記述は、オペレーションコードと、オペレー
    ションコードで指定された処理に利用すべきレジスタの
    指定情報とを含み、 その命令中で指定されたレジスタに予め割当てられてい
    る固有のオペレーションを、当該レジスタの保持値に対
    して行い、その結果を前記レジスタからの読み出しデー
    タとしてオペレーションコードで指定された処理に引渡
    す処理を行うことを特徴とするデータ処理方法。
  9. 【請求項9】 前記オペレーションコードで指定された
    処理に引渡した後、その引渡したリードデータを当該レ
    ジスタに書き戻す処理を更に含む請求項8記載のデータ
    処理方法。
  10. 【請求項10】 命令の記述にしたがって処理を行うデ
    ータ処理方法において、 前記命令の記述は、オペレーションコードと、オペレー
    ションコードで指定された処理に利用すべきレジスタの
    指定情報とを含み、 その命令中で指定されたレジスタに予め割当てられてい
    る固有のオペレーションを、その命令のオペレーション
    コードによって当該レジスタへの書き込みが指定された
    データに対して行い、これを当該レジスタに書き込む処
    理を行うことを特徴とするデータ処理方法。
  11. 【請求項11】 前記命令は、予め固有のオペレーショ
    ンが割当てられている前記レジスタとそれ以外の汎用レ
    ジスタとを区別可能なビットフィールドを前記レジスタ
    指定情報のためのフィールドに有するものである請求項
    9又は10記載のデータ処理方法。
JP27666592A 1992-09-21 1992-09-21 データ処理装置及びそのデータ処理方法 Expired - Lifetime JP3164915B2 (ja)

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 true JPH06103064A (ja) 1994-04-15
JP3164915B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980024623A (ko) * 1996-09-13 1998-07-06 다까노 야스아끼 프로그램 실행 방법 및 프로그램 실행 장치
US7356649B2 (en) 2002-09-30 2008-04-08 Renesas Technology Corp. Semiconductor data processor

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3541669B2 (ja) * 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
US20100023733A1 (en) * 2008-04-15 2010-01-28 Vns Portfolio Llc Microprocessor Extended Instruction Set Precision Mode

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980024623A (ko) * 1996-09-13 1998-07-06 다까노 야스아끼 프로그램 실행 방법 및 프로그램 실행 장치
US7356649B2 (en) 2002-09-30 2008-04-08 Renesas Technology Corp. Semiconductor data processor

Also Published As

Publication number Publication date
JP3164915B2 (ja) 2001-05-14
KR100278136B1 (ko) 2001-01-15
KR940007692A (ko) 1994-04-27
US5701425A (en) 1997-12-23

Similar Documents

Publication Publication Date Title
US7203827B2 (en) Link and fall-through address formation using a program counter portion selected by a specific branch address bit
EP0476722B1 (en) Data processing system
US5381360A (en) Modulo arithmetic addressing circuit
US4539635A (en) Pipelined digital processor arranged for conditional operation
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US6687808B2 (en) Data processor using indirect register addressing
JPH01214932A (ja) データ処理装置
US6026486A (en) General purpose processor having a variable bitwidth
US5771366A (en) Method and system for interchanging operands during complex instruction execution in a data processing system
US5590359A (en) Method and apparatus for generating a status word in a pipelined processor
US6115730A (en) Reloadable floating point unit
JP4110137B2 (ja) アドレスレジスタの内容をスワップするための方法および装置
US6263424B1 (en) Execution of data dependent arithmetic instructions in multi-pipeline processors
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JP3164915B2 (ja) データ処理装置及びそのデータ処理方法
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
EP0936540A2 (en) Information processing apparatus having a CPU and an auxiliary arithmetic unit
JP3490005B2 (ja) 命令制御装置及びその方法
US6260136B1 (en) Substitute register for use in a high speed data processor
JPH10124312A (ja) 中央処理装置
JPS60178580A (ja) 命令制御方式
JPH04104350A (ja) マイクロプロセッサ
JPH03201030A (ja) プロセッサ
JP3532026B2 (ja) 演算装置
JP2763450B2 (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