JPH0762823B2 - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPH0762823B2
JPH0762823B2 JP60108218A JP10821885A JPH0762823B2 JP H0762823 B2 JPH0762823 B2 JP H0762823B2 JP 60108218 A JP60108218 A JP 60108218A JP 10821885 A JP10821885 A JP 10821885A JP H0762823 B2 JPH0762823 B2 JP H0762823B2
Authority
JP
Japan
Prior art keywords
instruction
register
signal
control circuit
type
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
Application number
JP60108218A
Other languages
English (en)
Other versions
JPS61267134A (ja
Inventor
亨 庄内
栄樹 釜田
茂雄 武内
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 JP60108218A priority Critical patent/JPH0762823B2/ja
Priority to US06/865,466 priority patent/US4752873A/en
Publication of JPS61267134A publication Critical patent/JPS61267134A/ja
Publication of JPH0762823B2 publication Critical patent/JPH0762823B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はデイジタルコンピユータに係り、特に複数命令
を並列に処理することで高速化を図るデータ処理装置に
関する。
〔発明の背景〕
複数命令の並列処理によつて高速化を図る汎用コンピユ
ータの例として、IBM360/91がある。これは、IBM Journ
al Jan.1967.“An Efficient Algorithm for Exploitin
g Multiple Arithmetic Units"に詳細に説明されてい
る。上記コンピユータでは、近接する命令間での同一レ
ジスタの繰り返し使用に起因する並列処理阻害要因を除
去するために、共通データバス方式(CDB方式と略記す
る)を採用している。これは、先行命令の演算結果を入
力オペランドとして待つ命令をReservation Station
(以下RSと略記する。命令の待ち行列に相当)に待機さ
せておき、該演算結果が得られ次第共通データバスCDB
を介してRSに設けた入力オペランドレジスタにとり込
み、すべての入力オペランドが確定した命令から演算を
開始する、というものである。このCDB方式では、RS内
には入力オペランドレジスタとして、第1、第2オペラ
ンド用の2本のレジスタを、システムにて処理中の全て
の命令について設ける必要があり、システム内にて処理
中の最大命令数をNとするためには、この数は2N本にな
り、論理規模を増大させる弊害があつた。さらに、複数
の演算器にて同時に演算結果が得られた場合、該演算結
果を必要とする複数の演算器へそれぞれ転送する上で、
CDBがネツクとなる欠点があつた。
〔発明の目的〕
本発明は以上の欠点を解決した上で、近接命令間での同
一レジスタの繰り返し使用に起因する並列処理阻害要因
のない、高度の並列処理の可能なデータを処理装置を提
供することにある。
〔発明の概要〕
本発明においては、演算結果をレジスタbに格納するよ
う指定された命令Aおよび後続の命令で同一のレジスタ
bに演算結果を格納するよう指定された命令Bの処理を
行うにあたつて、命令Aの演算結果をレジスタbおよび
レジスタbと物理的に別のレジスタb′に格納させ、 命令Bの演算結果をレジスタbに格納させると共にレジ
スタbと物理的に別でかつレジスタb′とも物理的に別
のレジスタb″にも格納させる。
命令Aの演算結果を読出す場合には、命令Bおよび命令
Bより前の命令に対してはレジスタb又はb′より読出
させ、命令Bより後ろの命令に対してはレジスタb′よ
り読出させる。
命令Bの演算結果を読出す場合には、レジスタbおよび
b″より読出させる。
こうすることで、命令Bは先行する命令Aの実行を待た
ずに実行を開始できる。
また、命令Bの演算結果はレジスタbにもb″にも格納
させるので、以後の命令が命令Bの演算結果を読出す場
合にはレジスタbからでもb″からでも読出せる。
本発明の構成をとれば、システム内にて同時に処理する
最大命令数をNとするためには、設けるべき物理レジス
タはN本程度でよい。
さらに、複数の演算器にて同時に演算結果が得られた場
合、それらを、それぞれ別の物理レジスタに書き込むよ
う構成し、また各演算器は物理レジスタから独立にデー
タの読み出しを行うことができるように構成するので、
これらの演算結果を必要とする複数の演算器へそれぞれ
同時に転送することが可能である。
〔発明の実施例〕
以下、本発明の一実施例を説明する。
第1図は典型的な命令フオーマツトを示している。すな
わち命令は、演算の内容を示すOP部、第1オペランドが
格納されるレジスタ番号を示すR1部、第2オペランドが
格納されるメモリアドレスを作成するためのインデツク
スレジスタ番号を示すX2部、同じくベースレジスタ番号
を示すB2部、同じくデイスプレイスメントを示すD2部と
からなる。インデクスレジスタ内のデータを(X2)、ベ
ースレジスタ内のデータを(B2)と略記するとすれば、
オペランドアドレスは(X2)+(B2)+D2で求められる。X2=
7,B2=8,D2=100のときのオペランドアドレスは(7)+
(8)+100番地である。なお、これは(GR7)+(GR
8)+100とも書く。
第2図は本発明を用いた並列処理マシンにおいて、並列
処理が行われうる命令列の例を示している。第1の命令
Mは、固定小数点数の乗算を行う命令であり、汎用レジ
スタの2番(以下GR2と略記)内のデータとメモリ上の
(7)+(8)+100番地のデータとの積をGR2に格納す
る。第2の命令STは、汎用レジスタ内のデータをメモリ
上に格納するストア命令であり、GR2内のデータを
(7)+(8)+200番地に格納する。第3の命令L
は、メモリ上のデータを汎用レジスタに格納するロード
命令であり、(7)+(8)+300番地のデータをGR2に
格納する。第4の命令Aは、固定少数点数の加算を行う
命令であり、GR2内のデータと(7)+(8)+400番地
のデータの和をGR2に格納する。第5の命令Lはメモリ
上のデータを汎用レジスタに格納するロード命令であ
り、(2)+(8)+150番地のデータをGR4に格納す
る。ここでインデクスレジスタGR2内のデータには、直
前の命令Aでの結果を用いる。
第3図は、本発明を用いた並列処理マシンにおいて、第
2図で示した命令列を実行した場合の概略のタイムチヤ
ートである。横軸は時間であり、処理の時間的単位であ
るサイクル毎に目盛りを付してあり、左から第1サイク
ル(C1と略記、以下同様)、C2〜C5と呼ぶ。縦軸にはマ
シン内の主要論理として、処理すべき命令を保持する命
令レジスタと、独立に動作可能なn+1個の演算器E0,E
1,…,Enを示している。
C1で命令レジスタにセツトされたM命令は、(7)+
(8)+100番地のデータを読出し、演算器E0に起動を
かけ、E0ではC1からC4まで4サイクルかけて演算を行
い、C4の終了時点で結果をGR2とGR2′に格納する。演算
器に起動をかけると命令レジスタには次に処理する命令
をセツトする。すなわちC2でST命令がセツトされ、直ち
にE1に起動をかける。この場合、ST命令で必要とするGR
2又はGR2′の内容は直前のM命令の結果であるため、M
命令の演算結果がGR2又はGR2′に書き込まれるC4までE1
は待機状態となり、C5においてGR2′を読み出し、メモ
リに格納する。
ここで、GR2ではなくGR2′を読出すのは、ST命令がそれ
を読出す時にはGR2には別の値(ここではL命令による
データ)が書込まれているかもしれないからである。
一方C3においてL命令が命令レジスタにセツトされ
(7)+(8)+300番地のデータを読出しE2に起動を
かける。この時、L命令によつてメモリデータの格納さ
れるべきGR2は先行するM命令による結果の書き込みあ
るいは、ST命令によつて読み出しのいずれも終了してい
ない。しかし、本発明においては、L命令にて格納すべ
きGR2をGR2とも物理的に別でありGR2′とも物理的に別
なレジスタGR2″にも対応させるため、該L命令はC3に
おいて直ちに処理が行われ、GR2およびGR2″への結果の
格納が終了する。L命令はC3においてのみE2を専有し、
C4においてはE2は後続命令の演算の受け付けが可能であ
る。次にC4においてA命令が命令レジスタにセツトされ
ると、(7)+(8)+400番地のデータを読出し、E2
に起動をかける。A命令の演算にあたつて必要なレジス
タの内容は、L命令の結果を格納するために新たに割り
当てられた上記レジスタGR2″より読み出す。またA命
令にて結果を格納すべきGR2に対してGR2″を対応させ
る。A命令はC4から演算を開始し、C5にて終了し結果を
GR2とGR2″に格納する。次にC5においてL命令が命令レ
ジスタにセツトされる。A命令による結果はGR2とGR2″
の両方に格納されている。L命令は(2)+(8)+15
0番地を決定するインデクスレジスタとしてGR2とGR2″
の両方が利用可能であるが、通常、番地の決定は高速に
行う必要があるので、GR2をインデクスレジスタとして
用いる。
以上のようにして、M命令,L命令,A命令の出現にあたつ
て命令のR1部で指定される論理レジスタを物理的に別の
レジスタにも割り当てるようにしていくこと(これを仮
想レジスタ方式と呼ぶ)で、M,STの2命令の処理と、L,
Aの2命令の処理とを複数の演算器において並列に実行
することができる。また、最後のL命令は、命令が指定
するGR2に割当てられた物理レジスタGR2″だけではな
く、GR2をもインデクスレジスタとして用いることがで
きる。
以下、第4〜7図を用いて、本発明を用いた並列処理マ
シンの構成とその動作を説明する。
第4図は全体構成である。
1は命令レジスタであり処理を行う命令を保持する。命
令レジスタに命令をセツトするために必要な命令読み出
し論理は本発明の説明には不要でありまた公知の技術に
より構成可能であるため、図示せず、また説明も省略す
る。命令レジスタ内の命令は命令デコーダ2に送られ解
読が行われる。命令デコーダ2が出力する命令解読情報
のうち本発明の説明に必要なものは以下である。
(1)OP:命令のOP部であり、演算の内容を示してい
る。
(2)W:該命令が汎用レジスタに結果を格納するタイプ
の命令(以下Wタイプ命令と呼ぶ)であることを示す。
(3)IW:Wタイプ命令において、結果を格納するレジス
タ番号を示す。汎用レジスタは16本あり、これらをGR0,
GR1,…,GR15と記す。よつてIWは、0,1,…,15のいずれか
の値をとる。
なお、このIWは、後述する物理レジスタ番号に対して、
論理レジスタ番号とも言う。すなわち、論理レジスタと
は該アーキテクチヤで規定された、プログラムで指定可
能なレジスタを言う。
(4)R:該命令が汎用レジスタの内容を演算数もしくは
被演算数として読み出すタイプの命令(以下Rタイプ命
令と呼ぶ)であることを示す。
(5)IR:Rタイプ命令において、オペランドを読み出す
べきレジスタ番号を示す。IRも論理レジスタ番号であ
り、0,1,…,15のいずれかである。
(6)L:Wタイプ命令のうち、結果の格納すべき物理レ
ジスタを新規に割り当てるタイプの命令(これをLタイ
プ命令と呼ぶ)であることを示す。
(7)X2,B2,D2:それぞれ該命令のインデクス・レジス
タ番号およびベースレジスタ番号およびデイスプレイス
メントである。
(8)DISEND:上記(1)〜(7)の命令解読情報が出
力可能であることを示す。
命令デコーダ2の出力のうちOPは演算器E0〜Enに送られ
る。W,IW,R,IR,Lは仮想レジスタ制御回路3に送られ
る。さらにW,Rは、並列演算制御回路4にも送られ、W,I
Wは論理レジスタ制御回路402にも送られる。X2,B2は論
理レジスタ群400に送られ、D2はアドレス加算器401に送
られる。DISENDはデコード制御回路5へ送られる。
論理レジスタ群400には16本の論理レジスタを設けてい
る。論理レジスタ群からは、X2とB2で示される論理レジ
スタの内容が読出され、それぞれ信号線(X2)と(B2
を介してアドレス加算器401に送出される。
アドレス加算器は、信号線(X2)と(B2)とD2の値を加
え、メモリアドレスMAを作成する。メモリアドレスMAは
メモリに送出されてオペランドが読出されるわけである
が、このことは本発明の説明には必要なく、また公知の
技術にて構成することができるため、図示せず、また説
明も省略する。
仮想レジスタ制御回路3は、論理レジスタ番号IW,IR
を、対応する物理レジスタ番号JW,JRに変換し、また物
理レジスタに対する参照状態を監視して、ある命令が読
み出そうとしている物理レジスタに対する先行命令の結
果の格納が未完了であることを検出した場合(これを、
該命令が先行命令とオペランドコンフリクトを起してい
るという)、これをOC信号として出力する。また仮想レ
ジスタ制御回路3はLタイプ命令の解読にあたつて、新
たに割り当てるべき物理レジスタがない場合これをPBSY
信号として出力する。
並列演算制御回路4は演算器E0〜Enの状態を監視し、以
下に記す信号を生成する。
(1)EBSY:すべての演算器がふさがつていることを示
す。本信号はデコード制御回路5に送られ、デコード完
了信号DSを抑止する。DS信号は命令レジスタ1にセツト
されている命令の解読が終了したことを示す。DS信号は
上述したPBSY信号が出た時も抑止される。またDS信号が
立ち命令の解読が終了すると、次の命令が命令レジスタ
にセツトされる。DS信号は仮想レジスタ制御回路3と並
列演算制御回路4と論理レジスタ制御回路402にも送出
される。
(2)SETi(i=0〜n):解読中の命令の演算を演算
器Eiにて行うべきことを示す。並列演算制御回路4は、
E0〜Enの中から空いている演算器Eiを選択し、DS信号が
立つた時に対応するSETi信号を発行する。この時Eiは、
命令デコーダ2から送られてくる命令のOP部を取り込
む。SETi信号は対応するEiに送出される。
(3)JRi(i=0〜n):演算器Eiにセツトアツプさ
れた命令で必要とする入力オペランドの格納されている
物理レジスタ番号を示す。
JRiは物理レジスタ群6及び仮想レジスタ制御回路3に
送出される。物理レジスタ群6にはm+1本の物理レジ
スタP0〜Pmを設けている。ここで物理レジスタの本数
(m+1)は論理レジスタの本数(16本)を越える本数
が必要であり、命令処理の並列度を上げるためには多い
ほど好ましい。物理レジスタ群6からは、JRiで示され
る物理レジスタの内容が読み出され、信号線DRを介して
演算器Eiに送出される。
(4)演算開始信号BOPi(i=0〜n):演算器Eiにセ
ツトアツプされた命令が必要とする入力オペランドがDR
iより読み出された時、演算を開始してよいことを示すB
OPi信号を発行する。BOPiは、該命令が先行命令とオペ
ランドコンフリクトを起している間、あるいは必要なメ
モリオペランドの読み出しが遅れている場合その到着ま
での間は発行が抑止される。後者の原因でBOPiの発行が
遅れる場合、その制御はオペランド読み出し回路が行う
が、この回路は本発明の説明には必要なく、また公知の
技術にて構成することができるため図示せず、また説明
も省略する。また本実施例の説明においては、このよう
なメモリオペランドの読み出しの遅れはないものと仮定
する。BOPi信号は上記の説明から明らかなように、オペ
ランドコンフリクトがなければSETi信号と同時に、さも
なくばオペランドコンフリクトが解消した時点にて発行
される。
BOPi信号は演算器Ei及び仮想レジスタ制御回路3に送出
される。
EiはBOPiが立つた時に、DRiを介して送出される入力オ
ペランドをとり込み、演算を開始する。
(5)LA:該命令のセツトアツプされた演算器が、E0〜E
nのいずれであるかを示す。本信号は仮想レジスタ制御
回路3と論理レジスタ制御回路402に送出される。
(6)Wi(i=0〜n):Eiにセツトアツプされた命令
がWタイプ命令(上記)であることを示す。本信号は物
理レジスタ群6及び論理レジスタ制御回路402及び仮想
レジスタ制御回路3に送出される。
(7)JWi(i=0〜n):Eiにセツトアツプされた命令
がWタイプの命令である時、結果を格納すべき物理レジ
スタ番号を示す。
本信号は物理レジスタ群6及び仮想レジスタ制御回路3
に送出される。
(8)IWi(i=0〜n):Eiにセツトアツプされた命令
がWタイプの命令である時、結果を格納すべき論理レジ
スタ番号を示す。
本信号は論理レジスタ群400および論理レジスタ制御回
路402に送出される。
演算器Ei(i=0〜n)はそれぞれすべての命令の演算
が実行できるものとし、演算結果DWiを物理レジスタ群
6及び論理レジスタ群400に送出する。Eiは演算の終了
時にこれを示すEOPi信号を物理レジスタ群6、論理レジ
スタ400、仮想レジスタ制御回路3および並列演算制御
回路4に送出する。
物理レジスタ群6は、EOPi信号が発行された時に、Wi信
号が1であれば(すなわちEiにて演算実行のなされた命
令がWタイプ命令であれば)、JWiで示される物理レジ
スタに、演算結果DWiを格納する。
論理レジスタ制御回路402は、各論理レジスタごとに、
そのレジスタに演算結果を格納する命令で最後にデコー
ドされた命令を記憶しておき、各演算器の演算が完了し
た時に、それが最後にデコードされた命令である場合に
その演算結果の論理レジスタへの書込みを起動する。書
込みをする演算器はWL0〜n信号で示される。
論理レジスタ群400は、EOPi信号が発行された時に、WLi
信号が1であれば、IWiで示される論理レジスタに演算
結果DWiを格納する。
次に、デコード制御回路5の内部構成の説明を第8図を
用いて行う。
デコード制御回路には、EBSYとPBSYとDISENDが入力され
ている。デコード制御回路はEBSY信号とPBSY信号とが送
られない時でかつDISEND信号が送られた時にDS信号を出
力する。すなわち、ふさがつていない演算器があり、か
つ、新たに割り当てるべき物理レジスタがあり、かつ、
命令解読情報が出力可能な時に、DS信号は出力される。
次に、仮想レジスタ制御回路3のより詳細な説明を第5
図を用いて行う。500は物理レジスタ状態制御回路であ
りm+1本の物理レジスタP0〜Pm毎に各サイクルにおけ
るその状態を表示する、物理レジスタ状態ビツトを有し
その更新を制御する。各状態ビツトの処理フローは第9A
図、第9B図に示した。物理レジスタ状態ビツトとしては
次の4種がある。
(1)格納未完ビツトW(k)(但しk=0〜m):物
理レジスタPkに演算結果を格納する命令(従つてWタイ
プ命令)がデコードされたが未だその書き込みが終了し
ていない状態。該命令のDS信号が立つと1となり、既に
解読の行われた命令のうちPkに結果を格納すべき最後の
命令について結果の格納が終了した時に0となる。この
ための制御は次の(2)で説明する。
(2)最後格納演算器番号LAW(k)(但しk=0〜
m):物理レジスタPkに演算結果を格納する命令で最後
にデコードされた命令について、該命令がセツトアツプ
される演算器を示す。書き込み物理レジスタ番号JWがk
であるWタイプ命令のDS信号が立つた時、LAW(k)に
並列演算制御回路4から送られてくる演算器番号LAの値
をセツトする。Pkに対する該命令による結果の書き込み
が行われないうちに、さらに後続の、Pkに対する書き込
みを行う命令が解読された場合、LAW(k)の値は、該
後続命令についての演算器番号をセツトする。このよう
にすればLAW(k)には、Pkに書き込みを行う命令のう
ち最後にデコードしたものの演算器番号が残ることにな
る。
一方、演算器Eiにおける演算の終了時にはEOPi信号が立
ち、Wタイプ命令であれば結果がJWi信号で示される物
理レジスタに書き込まれる。このとき、物理レジスタ状
態制御回路において、LAW(JWi)の値が、Eiを示してい
たならば、物理レジスタJWiを変更する最後の命令がEi
で終了したばかりの該命令自身であるがゆえに、W(JW
i)ビツトを0にリセツトし、これによつてJWiに対する
すべての命令の結果の格納が終了したことを表示せしめ
る。またもしLAW(JWi)の値がEiを示していなかつたな
らば、JWiを変更する後続命令が既にデコードされてい
るわけであり、W(JWi)ビツトはそのままとする。こ
こでJWiを変更する該後続命令は、入力オペランドとし
てJWiを読出す必要がある(注1)ため、先行するJWi変
更命令の演算と結果の格納が終了したあとに、その演算
及び結果の格納が行われる。従つて同一の物理レジスタ
に対して結果を格納する複数の命令の演算及び結果の格
納は、必ず命令の概念的順序通りに行われるため、上記
の方法にてLAW(k)、W(k)を更新すれば、W
(k)は、既に解読の行われた命令のうちPkに結果を格
納すべき最後の命令について結果の格納が終了した時に
0となる。
(注1 Wタイプ命令のうち、結果を格納するレジスタ
を入力オペランドとして指定しない命令(例えばロード
命令)は必ずLタイプ命令と指定することとする。従つ
て結果を新規割当てのレジスタでなく、JWiに格納する
上記後続命令は、Lタイプ命令でないので、結果を格納
するレジスタを入力オペランドとしても指定する。) (3)ビジービツトB(k)(但しk=0〜m):物理
レジスタPkがビジー状態であることを示す。Pkがビジー
状態とは、Pkに対する読み出しもしくは結果の格納が未
完了もしくはその可能性があることを言う。
B(k)は、Lタイプ命令のDS信号が立つた時、そのオ
ペランドを格納するために新たに物理レジスタPkが割り
当てられた時にこれをオンとする。新たに割り当てるべ
き物理レジスタ番号は後述する変換表制御回路501からJ
WN信号として500に送られてくる。また、該Pkに対応す
る論理番号をIWとした時、IWに結果を格納するLタイプ
命令が解読され、IWに対して新たに別の物理レジスタPl
が割り当てられている場合(この時、次の(4)で述べ
るA(k)ビツトがオンとなつている)、該Lタイプ命
令より概念的に先行するすべての命令によるPkに対する
読み出し及び結果の格納が終了した時点で、B(k)ビ
ツトをオフとする。
この場合、該Lタイプ命令に先行するすべての命令によ
るPkに対する読み出し及び結果の格納が終了したこと
は、並列演算制御回路4から送られてくる。R0〜n、JR
0〜n、W0〜n、JW0〜nの各信号を用いて判断する。す
なわち、R0〜nのうちオンであるものの読み出し物理レ
ジスタ番号がJRi1、JRi2、…であつたとすると、これら
の中にPkと一致するものがなければPkに対するすべての
先行命令による読み出しが終了していると判断でき、ま
たW0〜nのうちオンであるものの書き込み物理レジスタ
番号がJWi1、JWi2,…であつたとすると、これらの中に
Pkと一致するものがなければすべての先行命令によるPk
に対する結果の格納が終了していると判断できる。
ビジービツトがオフである物理レジスタPkの内容は先行
するすべての命令による参照が終了しているので、ロー
ド命令による新しい物理レジスタ割り当てにあたつて
は、ビジービツトがオフであるものの中から選べばよ
い。
(4)アサインビツトA(k)(但しk=0〜m):物
理レジスタPkがアサイン状態であることを示す。Pkがア
サイン状態とは、Pkがビジー状態であつて、しかも、Pk
に対応する論理番号をIWとした時、IWに対するLタイプ
命令が解読されたことにより、新たに別の物理レジスタ
が割り当てられた状態であることを言う。A(k)は、
物理レジスタPkがビジー状態である時(つまりB(k)
がオン)、(3)で述べたように該Pkに対応する論理番
号をIWとした時、IWに対するLタイプ命令が解読され、
新たに別の物理レジスタが割り当てられた時にこれをオ
ンとする。このためにLタイプ命令が解読される時に
は、それまでIWに対応していた旧物理レジスタ番号がJW
O信号として後述のセレクタ503から500に送られて来、
アサインビツトをオンとすべき物理レジスタを示す。ま
たA(k)はPkがビジー状態でなくなつた時(つまりB
(k)がオフとされた時)にこれをオフとする。
以上の制御のため、物理レジスタ状態制御回路500に
は、デコード制御回路5からDS信号、命令デコーダ2か
らL、W、IW、IR信号、並列演算制御回路4からR0〜
n、JR0〜n、W0〜n、JW0〜n、LA信号、演算器E0〜n
からEOP0〜n信号、そして仮想レジスタ制御回路3の内
部におけるセレクタ504からJW信号、およびセレクタ503
からJWO信号がそれぞれ送られてくる。
変換表502は、論理レジスタ番号0,1,…,14,15に対応す
る物理レジスタ番号を保持するレジスタJWF0,JWF1,…,J
WF14,JWF15から成る。
次に、変換表制御回路501の内部を第10図を用いて説明
する。
変換表制御回路501は、Lタイプ命令が解読された時
に、ビジー状態にない物理レジスタの中から新たに割り
当てるべき物理レジスタを選び、その番号JWNを出力す
る。すなわち、DS信号とL信号がともにオンであつた時
に、ビジービツトB(0)〜B(m)のうちオフである
ものの中から適当な方法に従つて1つ選択し、その番号
をJWNとして出力する。さらに変換表制御回路501は、こ
のJWNの値を、変換表502におけるJWF0〜6のうち該Lタ
イプ命令の書き込み論理レジスタ番号IWに対応するレジ
スタに格納するよう、制御信号508を変換表502の各レジ
スタに送出する。このJWNの格納は、該Lタイプ命令の
デコードサイクルの終了時刻に行われ、従つて格納され
た値は次命令以降のデコードから使うこととなる。また
501は、L信号がオンである時に、B(0)〜B(m)
がすべてオン、すなわち物理レジスタP0〜Pkがすべてビ
ジーであり、新たに割り当てるべき物理レジスタを選択
できない場合は、該L命令の解読を保留せしめるため
に、PBSY信号をオンとし、これをデコード制御回路5に
送出する。この時既に述べたようにデコード制御回路5
は、該Lタイプ命令に対するDS信号の発行をPBSYがオフ
となるまで延期する。
セレクタ503は、解読中の命令の書き込み論理レジスタ
番号IWに対応している物理レジスタ番号JWOを出力す
る。このため503にはIWの他に、JWF0〜15の内容が入力
される。JWOは、Lタイプ命令においては、IWに対して
それまで割り当てられていた番号を示す。
セレクタ504は、L信号がオンの時JWNをオフの時JWOを
セレクトし、これをJW信号として出力する。JW信号は従
つて、Lタイプ命令であるか否かを問わず、すべてのW
タイプ命令に対して、その命令の結果を格納すべき物理
レジスタ番号を示す。
セレクタ505は、Rタイプ命令における読み出し論理レ
ジスタ番号IRに対応する物理レジスタ番号JRを出力す
る。このため、JWF0〜15の内容を入力し、このうちIRで
示されるものをセレクトしてJRとして出力する。
セレクタ506は、Rタイプ命令に対し、該命令が読み出
しを行う番号JRの物理レジスタに対して、最後に書き込
みを行う命令の演算を行う演算器の番号LAWを出力す
る。このため、物理レジスタ状態ビツトのうちLAW
(0)〜LAW(m)を入力し、JRで示されるものをセレ
クトしてLAWとして出力する。
セレクタ507は、オペランドコンフリクトの発生を示すO
C信号を出力する。このため、物理レジスタ状態ビツト
のうちW(0)〜W(m)を入力し、JRで示されるもの
をセレクトしてOCとして出力する。
次に第6図を用いて並列演算制御回路4の詳細な構成と
動作の説明をする。
601は演算器状態制御回路であり、n+1本の演算器E0
〜En毎に各サイクルにおけるその状態を表示する、7種
の演算器状態ビツトを有し、その更新を制御する。第11
図には7種の演算器状態ビツトの制御方法を示した。演
算器状態ビツトとしては以下がある。以下にて、iは0
〜nの代表である。
(1)ビジービツトBi:演算器Eiがビジー状態であるこ
とを示す。Eiがビジー状態とは、解読の終了した命令が
Eiにセツトアツプされてから(SETi信号が発行されてか
ら)、該命令の演算実行が終了するまで(EOPi信号が発
行されるまで)であることを言う。
Biは、SETi信号によつてオンとし、EOPi信号によつてオ
フとする。
(2)読み出し未完ビツトRi:Eiにレジスタを読み出す
必要のある命令がセツトアツプされたが未だ読み出しが
完了していない状態にあることを示す。
Riは、Rタイプの命令(R信号がオン)のセツトアツプ
時(SETi信号がオン)にオンとし、該命令の演算開始時
(BOPi信号がオン)にオフとする。
(3)読み出し物理レジスタ番号JRi:Eiにセツトアツプ
されたRタイプ命令において、読み出すべき物理レジス
タ番号を示す。SETi信号の発行時にJR信号の値をとりこ
み、JRiとする。
(4)格納未完ビツトWi:Eiにレジスタに結果を格納す
る命令がセツトアツプされたが、未だ格納が完了してな
い状態にあることを示す。
Wiは、Wタイプ命令(W信号がオンのセツトアツプ時
(SETi信号がオン)にオンとし、該命令の結果の書き込
みすなわち演算終了時(EOPi信号がオン)にオフとす
る。
(5)格納物理レジスタ番号JWi:Eiにセツトアツプされ
たWタイプ命令において、結果を格納する物理レジスタ
番号を示す。SETi信号の発行時にJW信号の値をとり込
み、JWiとする。
(6)格納論理レジスタ番号IWi:Eiにセツトアツプされ
たWタイプ命令において、結果を格納する論理レジスタ
番号を示す。SETi信号の発行時にIWの値をとり込み、IW
iとする。
(7)最終格納演算器番号LAWi:Eiにセツトアツプされ
たRタイプ命令が読み出す必要のあるレジスタに対し
て、最後に結果の格納を行つた命令の演算を実行した演
算器番号を示す。
SETiで信号発行時にLAW信号の値をとり込み、LAWiとす
る。
602は演算器選択回路であり、第12図のような内部構成
を持つ。演算器選択回路はビジービツトB0〜Bnを監視し
て、すべてオンである場合は前述のEBSY信号をオンと
し、また、命令解読が終了しDS信号が発行された時に
は、ビジーでない演算器の中から1つを選択し、(仮に
Eiとする)その番号iをLA信号として出力し、またSETi
信号を出力する。
603〜605は、各演算器毎に設けられた演算開始制御回路
#0〜#nである。第6図では、E0、E1、Enに対応する
もののみ示している。
第13図は演算開始制御回路#iの処理を流れ図で示した
ものである。
演算開始制御回路#iでは、命令がEiにセツトアツプさ
れた時(すなわちSETi信号がオンの時)仮想レジスタ制
御回路3より送出されるオペランドコンフリクトOC信号
がオフであれば直ちに演算開始信号BOPiを発行し、また
OC信号がオンであれば、演算器E0〜nのうちLAWi信号で
示される演算器のビジービツトを監視し、これがオフと
なつた時刻にBOPi信号を発行する。SETi信号がオンの時
にOC信号がオフであるのは、命令がEiにセツトアツプさ
れた時に先行命令とオペランドコンフリクトを発生して
いないことを示すので、JRiで示される物理レジスタか
ら読み出したオペランドが有効であり、従つてこれを用
いて直ちにEiにて演算が開始されることを意味する。ま
たOCがオンであるのはこの逆に、該命令のEiへのセツト
アツプ時点において先行命令とオペランドコンフリクト
を発生していることを示すので、該命令が必要とするオ
ペランドデータを生成する演算器、すなわちJRiで示さ
れる物理レジスタに最後に演算結果を格納することにな
る命令のセツトアツプされた演算器Ej(この番号jはLA
Wi信号で演算器状態制御回路から送出される)の、格納
未完ビツトWjを監視し、これがオフとなつた時刻にBOPi
信号を発行する。
次に論理レジスタ制御回路402のより詳細な説明を第14
図を用いて行う。1400は論理レジスタ状態記憶回路であ
り、16本の論理レジスタごとにその状態を表示する論理
レジスタ状態ビツトを有し、その更新を行う。論理レジ
スタ状態ビツトとしては次の1種がある。
(1)最終格納演算器番号LAWL(l)(但しl=0〜1
5):論理レジスタに演算結果を格納する命令で最後に
デコードされた命令について、該命令がセツトアツプさ
れる演算器を示す。書き込み論理レジスタ番号IWがlで
あるWタイプ命令のDS信号が立つた時、LAWL(l)に並
列演算制御回路4から送られてくる演算器番号LAの値を
セツトする。その論理レジスタに対する該命令による結
果の書き込みが行われないうちに、さらに後続の、同じ
論理レジスタに対する書き込みを行う命令が解読された
場合、LAWL(l)の値は、該後続命令についての演算器
番号をセツトする。このようにすればLAWL(l)には、
その論理レジスタに書き込みを行う命令のうち最後にデ
コードしたものの演算器番号が残ることになる。
一方、演算器Eiにおける演算の終了時にはEOPi信号が立
ち、Wタイプ命令であれば結果をIWi信号で示される論
理レジスタに書き込もうとする。このとき、論理レジス
タ状態ビツトのうち、論理レジスタ番号iに対応するも
のが演算器Eiを示してあり、かつWタイプ命令であるか
が1401で調べられる。
LAWL(IWi)の値が、Eiを示していたならば、論理レジ
スタIWiを変更する最後の命令がEiで終了したばかりの
該命令自身であるがゆえに、WLi信号を1にする。これ
によつて論理レジスタIWiに対して演算結果の格納を行
わせる。またもしLAWL(IWi)の値がEiを示していなか
つたならば、IWiを変更する後続命令が既にデコードさ
れているわけであり、WLi信号は0とする。この場合、
論理レジスタIWiに演算結果は格納されない。
〔命令列の処理動作の説明〕
第2図で示した5つの命令からなる命令列を、上述の処
理装置にて処理した場合の、より詳細な動作を、第7図
(a),(b)を用いて説明する。第7図(a),
(b)は、横軸が1サイクルを単位とした時間であり、
最初の命令Mが命令レジスタにセツトされる直前のサイ
クルC0から、該4命令の処理がすべて終了し、5番目の
命令の解読が開始されるサイクルC5までを記しており、
また縦軸は、第4,5,6,14図にて説明した、処理装置内部
のレジスタもしくは信号線であり、C0からC5までの、各
時刻におけるそれらの値と、それらの値が、どの命令の
処理に応答しているかを矩形及びその組み合わせの枠で
囲つて示したものである。
C0において、変換表502は、JWF0〜15がそれぞれP0〜15
に対応するようになつているとする。また、従つて、物
理レジスタP0〜15のビジービツトB(0〜15)はオン、
P16〜mのビジービツトB(16〜m)はオフであり、演
算器のビジービツトB0〜nはすべてオフであるとする。
C1にてM命令が命令レジスタに入るとする。以下M命令
に関する動作を説明する。命令デコーダにてC1で解読が
行われ、W,R信号がオンとなり、またIW,IRにはともにGR
2を示す論理レジスタ番号0が入り、X2,B2,D2にはGR7,G
R8,100が入る。(図では、あえてGR2と示した。以下物
理レジスタや論理レジスタ、演算器の番号も同様にP0,G
R0,E0のように示した。) 論理レジスタ群400からは(GR7),(GR8)が読出さ
れ、アドレス加算器401でオペランドアドレス(GR7)+
(GR8)+100が求められる。
仮想レジスタ制御回路3ではIWの値GR2に従いJWF2に格
納されている値P2をセレクタ503,504によつて読み出
し、JW信号上に出力する。同様に、IRの値GR2に従いJWF
2の値P2をセレクタ505によつて読み出しJR信号上に出力
する。説明の簡単化の為、演算器と物理レジスタの数は
十分あるとし、よつてEBSY,PBSY信号は上記命令列の処
理中は常にオンとならず、従つてデコード制御回路5で
は直ちに、DS信号をオンとしてM命令のデコード完了を
宣言する。
セレクタ507では、物理レジスタP2の格納未完ビツトW
(2)を読み出し、これは該M命令にて変更される前の
C1ではオフであるので、OC信号はオフとなる。
DS信号に応答して、演算器選択回路602では、空いてい
る演算器としてE0を選択し、この演算器番号をLA信号上
に、またSET0信号を発行する。
論理レジスタ制御回路402では、C1においてDS信号とW
信号に応答して、IW信号の値(GR2)とLA信号の値(E
0)に基づいてLAWL(2)にE0を記憶する。
演算開始制御回路#0では、C1においてM命令のSET0信
号に付随したOC信号がオフであるので、直ちにBOP0信号
を発行する。
演算器状態制御回路601では、SET0信号に応答してB0,W
0,R0をオンとし、また、JW,IW,JR信号の値P2,GR2,P2をJ
W0,IW0,JR0に記憶する。M命令の演算はC1からC4までか
かり、C4にて終了を意味するEOP0信号が発行される。こ
の間演算器E0のビジービツトB0ならびにW0はオンであ
り、またJW0,IW0の値としてP2,GR2が保持され続ける。
演算終了時に、EOP0信号に同期して結果DW0がJW0(=P
2)で示される物理レジスタに書き込まれる。しかし、L
AWL(2)はE2なので、論理レジスタGR2には結果DW0は
書込まれない。
仮想レジスタ制御回路3においては、C1において、物理
レジスタP2の状態ビツトW(2)をオンとし、またLAW
(2)に、Mのセツトアツプされた演算器を示す番号E0
が入る。これらは、M命令のEOP0信号の発行されるC4ま
で保持される。
M命令のデコード完了信号DSが立つことに応答して、次
のST命令がC2にて命令レジスタにセツトされる。以下ST
命令に関する動作を説明する。C2において命令デコード
2でST命令が解読され、R信号がオンとなり、またIRに
はGR2が入る。仮想レジスタ制御回路3ではIRの値GR2に
従い、JWF2の値P2をセレクタ505によつて読み出し、JR
信号上に出力する。ST命令についてもデコード制御回路
5では直ちにDS信号をオンとしてデコード完了を宣言す
る。C2開始時点におけるW(2)ビツトは、M命令によ
りオンとされているため、0C信号はC2においてオンとな
る。またC2でのDS信号に応答して、演算器選択回路602
では、空いている演算器としてE1を選択し、この番号を
LA信号上に出力し、またSET1信号を発行する。
演算開始制御回路#1では、C2においてSTD命令のSET1
信号に付随した0C信号がオンであるので、BOP1信号の発
行を保留する。
演算器状態制御回路601では、SET1信号に応答してB1,R1
をオンとし、またJR信号の値をJR1に、LAW信号の値E0を
LAW1に記憶する。C3以降ST命令の処理としては、先行す
るM命令の終了を監視する必要がある。すなわちLAW1に
記憶されている演算器番号E0に従い、演算器E0の格納未
完ビツトW0を監視し、これがオフとなるC5においてオペ
ランドコンフリクトが解消したと判断しBOP1信号を発行
する。ST命令の演算ステージは1サイクルで終了し、C5
にて直ちにEOP1信号が発行される。この間演算器E1のビ
ジービツトB1ならびにR1ビツトがオンであり、またJR1,
LAW1の値としてP0,E0が保持され続ける。
ST命令のデコード完了信号DSが立つことに応答して、次
のL命令がC3にて命令レジスタにセツトされる。以下L
命令に関する動作を説明する。C3において命令デコーダ
2で解読が行われ、L,W信号はオンとなり、またIWにはG
R2が値として入り、X2,B2,D2にはGR7,GR8,300が入る。
論理レジスタ群からは(GR7),(GR8)が読出され、ア
ドレス加算器でオペランドアドレス(GR7)+(GR8)+
300が求められる。仮想レジスタ制御回路3では、IWの
値GR2に従いJWF2に格納されている値P2をセレクタ503に
よつて読み出し、JW0信号の値をP2とする。また、変換
表制御回路501においては、DS信号及びL信号がオンで
あるためこれに応答して、ビジービツトB(0)〜B
(m)のうちからオフであるものを探し、該物理レジス
タ番号をJWN信号上に出力する。今はB(16)〜B
(m)がオフであり、このうち最も番号の小さい物理レ
ジスタP16の番号がJWN信号上に出力されるものとする。
セレクタ504では、C3においてLタイプ信号がオンであ
るため、JWN信号の値P16をJW信号上に出力する。L命令
についても、C3にて直ちにDS信号が発行される。このDS
信号に応答して、演算器選択回路602では、空いている
演算器としてE2を選択し、その番号をLA信号上に、また
SET2信号を発行する。L命令はレジスタの読み出しを行
わないのでOC信号はオンとはならない。演算開始制御回
路#では、C3においてL命令のSET2信号に付随したOC信
号がオフであるので直ちにBOP2信号を発行する。
論理レジスタ制御回路402ではC3においてDS信号とW信
号に応答して、IW信号の値(GR2)とLA信号の値(E2)
に基づいてLAWL(2)にE2を記憶する。
演算器状態制御回路601では、SET2信号に応答して、B2,
W2をオンとし、またJW信号の値P16とIW信号の値GR2をJW
2とIW2に記憶する。L命令の演算は1サイクルで終了す
るため、C3にてEOP2信号が発行される。EOP2に同期して
結果DW2がJW2(=P16)で示される物理レジスタ及びIW2
(=GR2)で示される論理レジスタに書込まれる。演算
器E2のビジービツトB2、及びW2はC3においてオンであ
る。
仮想レジスタ制御回路3においては、C3において、JW信
号によつて示される物理レジスタP16の状態ビツトW(1
6)をオンとし、またLAW(16)に、LA信号の値であるL
命令のセツトアツプされた演算器を示す番号E2が入る。
これらは、L命令がC3において直ちにEOP2が発行される
ので、1サイクルの間だけ保持される。また、C3におい
て、JWO信号によつて示される物理レジスタP2のアサイ
ンビツトA(2)をオンとする。さらにC3の終了時点に
おいて、IW信号の値GR2で示されるJWF2に、論理レジス
タGR2に新たに割り当てられた物理レジスタの番号P16を
セツトする。
L命令のデコード完了信号DSが立つことに応答して、次
のA命令がC4にて命令レジスタにセツトされる。以下A
命令に関する動作を説明する。C4において命令デコーダ
2で解読が行われ、W,R信号はオンとなり、またIW,IRに
はGR2が入り、X2,B2,D2にはGR7,GR8,400が入る。
論理レジスタ群からは(GR7),(GR8)が読出され、ア
ドレス加算器でオペランドアドレス(GR7)+(GR8)+
400が求められる。仮想レジスタ制御回路3では、IWの
値GR2に従いJWF2の値P16をセレクタ503及び504により読
み出しJW信号の値とする。また同様にIRの値GR2に従いJ
WF2の値P16をJR信号上に読み出す。A命令についても、
C4にて直ちにDS信号がオンとなる。C4開始時点における
W(16)ビツトはL命令が前のサイクルC3にて結果の書
き込みを終了しているのでオフとなつている。このた
め、OC信号はC4においてはオフである。またC4でのDS信
号に応答して演算器選択回路602では、空いている演算
器としてE2を選択し、この番号をLA信号上に出力し、ま
たSET2信号を発行する。演算開始制御回路#2では、C4
においてA命令のOC信号がオフであるので、直ちにBOP2
信号を発行する。論理レジスタ制御回路402ではC4にお
いてDS信号とW信号に応答して、IW信号の値(GR2)と
しAの値E2に基づいてLAWL(2)にE2を記憶する。演算
器状態制御回路601では、SET2信号に応答して、B2,W2,R
2をオンとし、またJR,JW,IW信号の値P16,P16,GR2を、そ
れぞれJR2,JW2,IW2に記憶する。AD命令の演算には2サ
イクルを要するため、C5サイクルにおいてEOP2信号が発
行される。この間演算器E2における、B2,W2,JW2の値が
保持される。EOP2に同期して結果DW2がJW2(=P16)で
示される物理レジスタとIW2(=GR2)で示される論理レ
ジスタに書込まれる。
仮想レジスタ制御回路3においては、C4において、JW信
号によつて示される物理レジスタP16の状態ビツトW(1
6)をオンとし、またLAW(16)にLA信号の値であるE2を
セツトする。これらの値は、C5においてAD命令のEOP2信
号が発行されるまで保持される。
A命令のデコード完了信号DSに応答して、次のL命令が
C5にて命令レジスタにセツトされる。C5において命令デ
コーダ2で解読が行われ、L,W信号はオンとなり、IWに
はGR4が入り、X2,B2,D2にはGR2,GR8,150が入る。論理レ
ジスタからは(GR2),(GR8)が読出され、アドレス加
算器でオペランドアドレス(GR2)+(GR8)+150が求
められる。
以下、このL命令はC3で命令レジスタに入つたL命令と
同じように処理される。
一方、C5において、ST命令のBOP1信号が発行されると、
物理レジスタP2の参照がすべて終了したこととなるの
で、ビジービツトB(2)及び、アサインビツトA
(2)をオフとする。これによりC5に引き続くサイクル
にて物理レジスタP2は空き状態となる。
以上述べたように上記5命令は処理される。この間、M,
ST命令の処理と、L,A,L命令の処理が並列に行われる。
また、各命令はレジスタ読出しを論理レジスタからでも
物理レジスタからでも行える。
〔発明の効果〕
本発明によれば、並列に処理可能な最大命令数をN、そ
の中でのレジスタ変更命令数をnとしたとき、n本程度
の物理レジスタを設けることで、複数命令でのレジスタ
再使用に起因する並列処理阻害要因を除去できる。CDB
方式では、2N本程度必要であり、大幅な論理規模削減が
可能である。さらに、M個の命令において同時に演算結
果が得られた場合、これらを必要とする命令へそれぞれ
転送するに要する時間は、CDB方式ではMサイクルであ
るが、本方式では1サイクルですみ、高速化が実現でき
る。
また、命令は演算結果を論理レジスタと物理レジスタの
両方に書込むので、後続命令はその結果を両者のうちの
どちらからでも読出せる。
【図面の簡単な説明】
第1図は典型的な命令フオーマツトを示す。 第2図は、本発明で並列処理可能となる命令列の例を示
す。 第3図は、本発明の実施例による、第2図の命令列の処
理ステージの概略を示す。 第4図は、本発明の実施例の全体構成を示す。 第5図は、仮想レジスタ制御回路の詳細構成を示す。 第6図は、並列演算制御回路の詳細構成を示す。 第7図は、第2図の命令処理における、本実施例中の信
号、レジスタ等のタイムチヤートである。 第8図は、デコード制御回路5の内部構成を示す。 第9A図,第9B図は物理レジスタ状態制御回路の処理フロ
ーを示す。 第10図は変換表制御回路501の内部構成を示す。 第11図は、第6図の演算器状態制御回路(601)におけ
る演算器状態ビツトの制御方法を示す。 第12図は、第6図の演算器選択回路(602)の内部構成
を示す。 第13図は、第6図の演算開始制御回路(603)の処理の
流れ図を示す。 第14図は、第4図の論理レジスタ制御回路(402)の内
部構成を示す。 1……命令レジスタ、2……命令デコーダ、3……仮想
レジスタ制御回路、4……並列演算制御回路、5……デ
コード制御回路、6……物理レジスタ群、7……演算
器、400……論理レジスタ群、401……アドレス加算器、
402……論理レジスタ制御回路、500……物理レジスタ状
態制御回路、501……変換表制御回路、502……変換表、
601……演算器状態制御回路、602……演算器選択回路、
1400……論理レジスタ状態記憶回路。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 武内 茂雄 東京都小平市上水本町1479番地 日立超エ ル・エス・アイ・エンジニアリング株式会 社内 (56)参考文献 特開 昭60−129838(JP,A) 特開 昭61−136132(JP,A) 特開 昭57−105078(JP,A) 特開 昭59−14050(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数の命令がそれぞれ要求する演算を並列
    に実行する複数の演算器と、 上記複数の命令にてそれぞれ指定可能な複数の第1種レ
    ジスタと、 上記複数の演算器による演算に使用するデータまたはそ
    れらによる演算の結果得られるデータを保持する複数の
    第2種レジスタと、 上記第1種レジスタのそれぞれに対応すべき上記第2種
    レジスタを指定するものであって、同一の第1種レジス
    タbに処理結果を格納するように指定する第1の命令A
    と後続の第2の命令Bがあらわれたとき、上記第1の命
    令Aに対して第2種レジスタb′を指定し、上記後続の
    第2の命令Bに対して上記第2種レジスタb′とは別の
    第2種レジスタb″を指定する手段と、 上記第1の命令Aと上記後続の第2の命令Bが指定する
    第1種レジスタから読み出されたオペランドに対して処
    理を施し、処理結果を上記第1の命令Aと上記後続の第
    2の命令Bで指定された同一の上記第1種レジスタb
    と、上記指定手段で指定された別々の上記第2種レジス
    タb′、b″のそれぞれに格納する手段と、 上記第1の命令の解読時にはオペランドを上記第1種レ
    ジスタbから読出し、演算時には上記第2種レジスタ
    b′から読出し、上記後続の第2の命令の解読時にはオ
    ペランドを上記第1種レジスタbから読出し、演算時に
    は上記第2種レジスタb″から読出す手段とを 有することを特徴とするデータ処理装置。
JP60108218A 1985-05-22 1985-05-22 デ−タ処理装置 Expired - Lifetime JPH0762823B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP60108218A JPH0762823B2 (ja) 1985-05-22 1985-05-22 デ−タ処理装置
US06/865,466 US4752873A (en) 1985-05-22 1986-05-21 Data processor having a plurality of operating units, logical registers, and physical registers for parallel instructions execution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60108218A JPH0762823B2 (ja) 1985-05-22 1985-05-22 デ−タ処理装置

Publications (2)

Publication Number Publication Date
JPS61267134A JPS61267134A (ja) 1986-11-26
JPH0762823B2 true JPH0762823B2 (ja) 1995-07-05

Family

ID=14479025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60108218A Expired - Lifetime JPH0762823B2 (ja) 1985-05-22 1985-05-22 デ−タ処理装置

Country Status (2)

Country Link
US (1) US4752873A (ja)
JP (1) JPH0762823B2 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5053941A (en) * 1986-08-29 1991-10-01 Sun Microsystems, Inc. Asynchronous micro-machine/interface
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
JPH0810430B2 (ja) * 1986-11-28 1996-01-31 株式会社日立製作所 情報処理装置
US4992938A (en) * 1987-07-01 1991-02-12 International Business Machines Corporation Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers
US4901233A (en) * 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US5134561A (en) * 1987-07-20 1992-07-28 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
JPH01269131A (ja) * 1988-04-20 1989-10-26 Hitachi Ltd 命令先行制御方式
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
JP3132566B2 (ja) * 1989-08-30 2001-02-05 日本電気株式会社 命令先行制御装置
US5203002A (en) * 1989-12-27 1993-04-13 Wetzel Glen F System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle
US5197132A (en) * 1990-06-29 1993-03-23 Digital Equipment Corporation Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5325500A (en) * 1990-12-14 1994-06-28 Xerox Corporation Parallel processing units on a substrate, each including a column of memory
EP0495162A3 (en) * 1991-01-16 1994-05-18 Ibm Storage management
GB9112754D0 (en) * 1991-06-13 1991-07-31 Int Computers Ltd Data processing apparatus
FR2678402A1 (fr) * 1991-06-28 1992-12-31 Philips Electronique Lab Dispositif de traitement d'informations.
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
DE69230554T2 (de) * 1991-07-08 2000-07-06 Seiko Epson Corp Risc-mikroprozessorarchitektur mit schnellem unterbrechungs- und ausnahmemodus
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
DE69231762T2 (de) 1991-07-08 2001-07-26 Seiko Epson Corp Risc-prozessor mit dehnbarer architektur
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
EP0544083A3 (en) * 1991-11-26 1994-09-14 Ibm Interleaved risc-type parallel processor and processing methods
US5822557A (en) * 1991-12-27 1998-10-13 Fujitsu Limited Pipelined data processing device having improved hardware control over an arithmetic operations unit
EP0636256B1 (en) 1992-03-31 1997-06-04 Seiko Epson Corporation Superscalar risc processor instruction scheduling
US5438668A (en) 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
EP0638183B1 (en) 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
KR100248903B1 (ko) * 1992-09-29 2000-03-15 야스카와 히데아키 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US6282629B1 (en) * 1992-11-12 2001-08-28 Compaq Computer Corporation Pipelined processor for performing parallel instruction recording and register assigning
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
EP0682789B1 (en) 1992-12-31 1998-09-09 Seiko Epson Corporation System and method for register renaming
US5604912A (en) * 1992-12-31 1997-02-18 Seiko Epson Corporation System and method for assigning tags to instructions to control instruction execution
US5465373A (en) * 1993-01-08 1995-11-07 International Business Machines Corporation Method and system for single cycle dispatch of multiple instructions in a superscalar processor system
EP0649085B1 (en) 1993-10-18 1998-03-04 Cyrix Corporation Microprocessor pipe control and register translation
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
US6138230A (en) * 1993-10-18 2000-10-24 Via-Cyrix, Inc. Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US6079014A (en) * 1993-12-02 2000-06-20 Intel Corporation Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state
US6393550B1 (en) * 1993-12-30 2002-05-21 Intel Corporation Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
US6101597A (en) * 1993-12-30 2000-08-08 Intel Corporation Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor
US5553256A (en) * 1994-02-28 1996-09-03 Intel Corporation Apparatus for pipeline streamlining where resources are immediate or certainly retired
US5758176A (en) * 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
EP0727736A3 (en) * 1995-02-14 1997-04-16 Hal Computer Systems Inc Method and device for efficient writing of results in registers with changed names
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US5708837A (en) * 1995-06-30 1998-01-13 International Business Machines Corporation Method and apparatus for register renaming in a computer system using a separate arithmetic available queue
US5911057A (en) * 1995-12-19 1999-06-08 Texas Instruments Incorporated Superscalar microprocessor having combined register and memory renaming circuits, systems, and methods
JPH1097423A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ
US7039906B1 (en) 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register
US6834337B1 (en) 2000-09-29 2004-12-21 International Business Machines Corporation System and method for enabling multiple signed independent data elements per register

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
US4136383A (en) * 1974-10-01 1979-01-23 Nippon Telegraph And Telephone Public Corporation Microprogrammed, multipurpose processor having controllable execution speed
US4085450A (en) * 1976-12-29 1978-04-18 Burroughs Corporation Performance invarient execution unit for non-communicative instructions
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
JPS57105078A (en) * 1980-12-23 1982-06-30 Hitachi Ltd Vector processor
JPS58189738A (ja) * 1982-04-30 1983-11-05 Hitachi Ltd デ−タ処理システム
JPS5914050A (ja) * 1982-07-14 1984-01-24 Fujitsu Ltd メモリ制御方式
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4701848A (en) * 1984-11-19 1987-10-20 Clyde, Inc. System for effectively paralleling computer terminal devices

Also Published As

Publication number Publication date
US4752873A (en) 1988-06-21
JPS61267134A (ja) 1986-11-26

Similar Documents

Publication Publication Date Title
JPH0762823B2 (ja) デ−タ処理装置
JPH0658631B2 (ja) デ−タ処理装置
US4344134A (en) Partitionable parallel processor
EP0239081B1 (en) Pipelined data processor capable of decoding and executing plural instructions in parallel
EP0424618A2 (en) Input/output system
JPH0769818B2 (ja) デ−タ処理装置
JP2003196084A (ja) リードモディファイライトユニットを有するシステム
JPH03286332A (ja) デジタルデータ処理装置
JPH0748179B2 (ja) データ処理装置
JPS59106075A (ja) デ−タ処理システム
JPH0345420B2 (ja)
EP0292188B1 (en) Cache system
JP2002229970A (ja) Simd積和演算方法、積和演算回路、および、半導体集積回路装置
US20030009652A1 (en) Data processing system and control method
JPS615357A (ja) デ−タ処理装置
JPS61136132A (ja) 情報処理装置
JP2800488B2 (ja) パイプライン制御方式
JP2812610B2 (ja) パイプライン制御方式
JP2001167084A (ja) ベクトル演算処理装置及びベクトルデータ移送方法
JPS58176751A (ja) 命令語解読ユニツト
JP3525985B2 (ja) 中央演算処理装置
JP2602230B2 (ja) データ処理装置
JPH0218732B2 (ja)
JPH0412491B2 (ja)
JPH0520063A (ja) 集積回路マイクロプロセツサのアドレス計算装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term