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

デ−タ処理装置

Info

Publication number
JPH0658631B2
JPH0658631B2 JP58237777A JP23777783A JPH0658631B2 JP H0658631 B2 JPH0658631 B2 JP H0658631B2 JP 58237777 A JP58237777 A JP 58237777A JP 23777783 A JP23777783 A JP 23777783A JP H0658631 B2 JPH0658631 B2 JP H0658631B2
Authority
JP
Japan
Prior art keywords
instruction
register
signal
physical
physical register
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
JP58237777A
Other languages
English (en)
Other versions
JPS60129838A (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 JP58237777A priority Critical patent/JPH0658631B2/ja
Priority to US06/682,839 priority patent/US4736288A/en
Priority to EP84115866A priority patent/EP0150449A3/en
Publication of JPS60129838A publication Critical patent/JPS60129838A/ja
Publication of JPH0658631B2 publication Critical patent/JPH0658631B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はディジタルコンピュータに係り、特に複数命令
を並列に処理することで高速化を図るデータ処理装置に
関する。
〔発明の背景〕
複数命令の並列処理によって高速化を図る汎用コンピュ
ータの例として、IBM360/91がある。これは、
IBM Journal Jan.1967.“An Eficient Algorithm
for Exploiting Multiple Arithmetic Units”に詳細に
説明されている。上記コンピュータでは、近接する命令
間での同一レジスタの繰り返し使用に起因する並列処理
阻害要因と除去するために、共通データバス方式(CD
B方式と略記する)を採用している。これは、先行命令
の演算結果を入力オペランドとして待つ命令をReservat
ion Station(以下RSと略記する。命令の待ち行列に
相当)に待機させておき、該演算結果が得られ次第共通
データバスCDBを介してRSに設けた入力オペランド
レジスタにとり込み、すべての入力オペランドが確定し
た命令から演算を開始する、というものである。このC
DB方式では、RS内には入力オペランドレジスタとし
て、第1、第2オペランド用の2本のレジスタを、全て
の命令について設ける必要があり、システム内にて処理
中の最大命令数をNとするためには、この数は2N本に
なり、論理規模を増大させる弊害があった。さらに、複
数の演算器にて同時に演算結果が得られた場合、該演算
結果を必要とする複数の演算器へそれぞれ転送する上
で、CDBがネックとなる欠点があった。
〔発明の目的〕
本発明は以上の欠点を解決した上で、近接命令間での同
一レジスタの繰り返し使用に起因する並列処理阻害要因
のない、高度の並列処理の可能な、かつ、使用済みのレ
ジスタの解放を早期に行ない得るデータ処理装置を提供
することにある。
〔発明の概要〕
本発明においては、演算結果を先行命令Aと同一のレジ
スタbに格納するよう指定された命令Bの処理を行うに
あたって、命令Bの演算結果を物理的に別のレジスタ
b′に格納し、以後の命令で命令Bの該演算結果を読み
出す場合は、該レジスタb′から読み出すようにするこ
とで、先行する命令Aの実行を待たずして後続の命令B
の実行を可能としている。本発明の構成をとれば、シス
テム内にて同時に処理する最大命令数をNとするため
に、設けるべき物理レジスタはN本程度でよいことにな
る。
さらに、複数の演算器にて同時に演算結果が得られた場
合、それらを、それぞれ別の物理レジスタに書き込むよ
う構成し、また各演算器は物理レジスタから独立にデー
タの読み出しを行うことができるように構成するので、
これらの演算結果を必要とする複数の演算器へそれぞれ
同時に転送することが可能である。
このように、同じ論理レジスタに対して、第1の物理レ
ジスタを割り当てた後、後に異なる第2の物理レジスタ
をこの論理レジスタに割り当てるという処理をいろいろ
の論理レジスタに対して続けた場合、いずれ物理レジス
タが不足するということが生じ得る。従って、いずれか
の時点でこの第1の物理レジスタを解放することが必要
である。そのために、この第1物理レジスタを使用する
命令の実行がいずれ全て完了するのでその時点より後に
出来るだけ速やかに行うことが望ましい。
このため、本発明では、この第1の物理レジスタの解放
時期を以下のようにして、第2物理レジスタを割り当て
られた論理レジスタを指定した命令の実行完了より前に
この解放を行なうようにしている。
ある命令が指定する論理レジスタに第2物理レジスタを
割り当てた時点で、その命令に先行して実行中のレジス
タアクセス命令の中で、第1物理レジスタの解放に使用
できる特定の命令を判別し、その命令によるレジスタの
アクセスの終了を検出し、その終了が検出された時点で
第1物理レジスタを解放するようにしている。
この特定の命令の最も望ましい例は、第1物理レジスタ
をアクセスする命令の内の最後の命令である。
本発明での最も好適な実施例では、この最後の命令を検
出するようになっている。
〔発明の実施例〕
以下、本発明の一実施例を説明する。説明の都合上、日
立製作所のMシリーズアーキテクチャに基づくマシンを
前提とする。
第1図は典型的な命令フォーマットを示している。すな
わち命令は、演算の内容を示すOP部、第1オペランド
が格納されるレジスタ番号を示すR部、第2オペラン
ドが格納されるメモリのアドレスを作成するためのイン
デックスレジスタ番号を示すX部、同じくベースレジ
スタ番号を示すB部、同じくディスプレイスメントを
示すD部とからなる。
第2図は本発明を用いた並列処理マシンにおいて、並列
処理が行われうる命令列の例を示している。第1の命令
MDは、浮動小数点数の乗算を行う命令であり、浮動小
数点レジスタの0番(以下FROと略記)内のデータと
メモリ上のA番地のデータとの積をFROに格納する。
第2の命令STDは、浮動小数点レジスタ内のデータを
メモリ上に格納するストア命令であり、FRO内のデー
タをB番地に格納する。第3の命令LDは、メモリ上の
データを浮動小数点レジスタに格納するロード命令であ
り、C番地のデータをFROに格納する。第4の命令A
Dは、浮動小数点数の加算を行う命令であり、FRO内
のデータとD番地のデータの和をFROに格納する。
第3図は、本発明を用いた並列処理マシンにおいて、第
2図で示した命令列を実行した場合の概略のタイムチャ
ートである。横軸は時間であり、処理の時間的単位であ
るサイクル毎に目盛りを付してあり、左から第1サイク
ル(C1と略記、以下同様)、C2〜C5と呼ぶ。縦軸
にはマシン内の主要論理として、処理すべき命令を保持
する命令レジスタと、独立に動作可能なn+1個の演算
器E0,E1,…,Enを示している。C1で命令レジ
スタにセットされたMD命令は、直ちに演算器E0に起
動をかけ、E0ではC1からC4まで4サイクルかけて
演算を行い、C4の終了時点で結果をFROに格納す
る。演算器に起動をかけると命令レジスタには次に処理
する命令をセットする。すなわちC2でSTD命令がセ
ットされ、直ちにE1に起動をかける。この場合、ST
D命令で必要とするFROの内容は直前のMD命令の結
果であるため、MD命令の演算結果がFROに書き込ま
れるC4までE1は待機状態となり、C5においてFR
Oを読み出し、メモリに格納する。一方C3においてL
D命令が命令レジスタにセットされ直ちにE2に起動を
かける。この時、LD命令によってメモリデータの格納
されるべきFROは先行するMD命令による結果の書き
込みあるいは、STD命令による読み出しのいずれも終
了していない。しかし、本発明においては、LD命令に
て格納すべきFROを物理的に別のレジスタFRO′に
対応し直すため、該LD命令はC3において直ちに処理
が行われ、結果の格納が終了する。LD命令はC3にお
いてのみE2を専有し、C4においてはE2は後続命令
の演算の受け付けが可能である。次にC4においてAD
命令が命令レジスタにセットされると、直ちにE2に起
動をかける。AD命令の演算にあたって必要なレジスタ
の内容は、LD命令の結果を格納するために新たに割り
当てられた上記レジスタFRO′より読み出す。AD命
令はC4から演算を開始し、C5にて終了し結果をFR
O′に格納する。
以上のようにして、LD命令の出現にあたって命令のR
1部で指定される論理レジスタを物理的に別のレジスタ
に割り当てるようにしていくこと(これを仮想レジスタ
方式と呼ぶ)で、MD、STDの2命令の処理と、L
D、ADの2命令の処理とを複数の演算器において並列
に実行することができる。
以下、第4〜7図を用いて、本発明を用いた並列処理マ
シンの構成とその動作を説明する。
第4図は全体構成である。
1は命令レジスタであり処理を行う命令を保持する。命
令レジスタに命令をセットするために必要な命令読み出
し論理は本発明の説明には不要でありまた公知の技術に
より構成可能であるため、図示せず、また説明も省略す
る。命令レジスタ内の命令は命令デコーダ2に送られ解
読が行われる。命令デコーダ2が出力する命令解読情報
のうち本発明の説明に必要なものは以下である。
(1)OP:命令のOP部であり、演算の内容を示してい
る。
(2)W:該命令が浮動小数点レジスタに結果を格納する
タイプの命令(以下Wタイプ命令と呼ぶ)であることを
示す。
(3)IW:Wタイプ命令において、結果を格納するレジ
スタ番号を示す。Mシリーズアーキテクチャにおいて
は、浮動小数点レジスタは4本あり、これらをF0,F
2,F4,F6と記す。よってIWは、0,2,4,6
のいずれかの値をとる。
なお、このIWは、後述する物理レジスタ番号に対し
て、論理レジスタ番号とも言う。すなわち、論理レジス
タとは該アーキテクチャで規定された、プログラムで指
定可能なレジスタを言う。
(4)R:該命令が浮動小数点レジスタの内容を演算数も
しくは被演算数として読み出すタイプの命令(以下Rタ
イプ命令と呼ぶ)であることを示す。
(5)IR:Rタイプ命令において、オペランドを読み出
すべきレジスタ番号を示す。IRも論理レジスタ番号で
あり、0,2,4,6のいずれかである。
(6)L:Wタイプ命令のうち、結果の格納すべき物理レ
ジスタを新規に割り当てるタイプの命令(これをLタイ
プ命令と呼ぶ)であることを示す。
命令デコーダ2の出力のうちOPは演算器E0〜Enに
送られる。W,IW,R,IR,Lは仮想レジスタ制御
回路3に送られる。さらにW,Rは、並列演算制御回路
4にも送られる。
仮想レジスタ制御回路3は、論理レジスタ番号IW,I
Rを、対応する物理レジスタ番号JW,JRに変換し、
また物理レジスタに対する参照状態を監視して、ある命
令が読み出そうとしている物理レジスタに対する先行命
令の結果の格納が未完了であることを検出した場合(こ
れを、該命令が先行命令とオペランドコンフリクトを起
しているという)、これをOC信号として出力する。ま
た仮想レジスタ制御回路3はLタイプ命令の解読にあた
って、新たに割り当てるべき物理レジスタがない場合こ
れをPBSY信号として出力する。
並列演算制御回路4は演算器E0〜Enの状態を監視
し、以下に記す信号を生成する。
(1)EBSY:すべての演算器がふさがっていることを
示す。本信号はデコード制御回路5に送られ、デコード
完了信号DSを抑止する。DS信号は命令レジスタ1に
セットされている命令の解読が終了したことを示す。D
S信号は上述したPBSY信号が出た時も抑止される。
またDS信号が立ち、命令の解読が終了すると、次の命
令が命令レジスタにセットされる。DS信号は仮想レジ
スタ制御回路3と並列演算制御回路4にも送出される。
(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)は論理レジスタの本数(Mシリーズの浮
動小数点レジスタは4本)を越える本数が必要であり、
命令処理の並列度を上げるためには多いほど好ましい。
物理レジスタ群6からは、JRiで示される物理レジス
タの内容が読み出され、信号線DRを介して演算器Ei
に送出される。
(4)演算開始信号BOPi(i=0〜n):演算器Ei
にセットアップされた命令が必要とする入力オペランド
がDRiより読み出された時、演算を開始してよいこと
を示すBOPi信号を発行する。BOPiは、該命令が
先行命令とオペランドコンフリクトを起している間、あ
るいは必要なメモリオペランドの読み出しが遅れている
場合その到着までの間は発行が抑止される。後者の原因
でBOPiの発行が遅れる場合、その制御はオペランド
読み出し回路が行うが、この回路は本発明の説明には必
要なく、また公知の技術にて構成することができるため
図示せず、また説明も省略する。また本実施例の説明に
おいては、このようなメモリオペランドの読み出しの遅
れはないものと仮定する。BOPi信号は上記の説明か
ら明らかなように、オペランドコンフリクトがなければ
SETi信号と同時に、さもなくばオペランドコンフリ
クトが解消した時点にて発行される。
BOPi信号は演算器Ei及び仮想レジスタ制御回路3
に送出される。
EiはBOPiが立った時に、線DRiを介して送出さ
れる入力オペランドをとり込み、演算を開始する。
(5)LA:該命令のセットアップされた演算器が、E0
〜Enのいずれであるかを示す。本信号は仮想レジスタ
制御回路3に送出される。
(6)Wi(i=0〜n):Eiにセットアップされた命
令がWタイプ命令(上記)であることを示す。本信号は
物理レジスタ群6及び仮想レジスタ制御回路3に送出さ
れる。
(7)JWi(i=0〜n):Eiにセットアップされた
命令がWタイプの命令である時、結果を格納すべき物理
レジスタ番号を示す。
本信号は物理レジスタ群6及び仮想レジスタ制御回路3
に送出される。
演算器Ei(i=0〜n)はそれぞれすべての命令の演
算が実行できるものとし、演算結果DWiを物理レジス
タ群6に送出する。Eiは演算の終了時にこれを示すE
OPi信号を物理レジスタ群6、仮想レジスタ制御回路
3および並列演算制御回路4に送出する。
物理レジスタ群6は、EOPi信号が発行された時に、
Wi信号が1であれば(すなわちEiにて演算実行のな
された命令がWタイプ命令であれば)、JWiで示され
る物理レジスタに、演算結果DWiを格納する。
次に、仮想レジスタ制御回路3のより詳細な説明を第5
図を用いて行う。500は物理レジスタ状態制御回路で
ありm+1本の物理レジスタP0〜Pm毎に各サイクル
におけるその状態を表示する、物理レジスタ状態ビット
を有し、その更新を制御する。物理レジスタ状態ビット
としては次の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信号が立った時、L
AW(k)に並列演算制御回路4から送られてくる演算
器番号LAの値をセットする。Pkに対する該命令によ
る結果の書き込みが行われないうちに、さらに後続の、
Pkに対する書き込みを行う命令が解読された場合、L
AW(k)の値は、該後続命令についての演算器番号を
セットする。このようにすればLAW(k)には、Pk
に書き込みを行う命令のうち最後にデコードしたものの
演算器番号が残ることになる。
一方、演算器Eiにおける演算の終了時にはEOPi信
号が立ち、Wタイプ命令であれば結果がJWi信号で示
される物理レジスタに書き込まれる。このとき、物理レ
ジスタ状態制御回路500において、LAW(JWi)
の値が、Eiを示していたならば、物理レジスタJWi
を変更する最後の命令がEiで終了したばかりの該命令
自身であるがゆえに、W(JWi)ビットを0にリセッ
トし、これによってJWiに対するすべての命令の結果
の格納が終了したことを表示せしめる。またもしLAW
(JWi)の値がEiを示していなかったならば、JW
iを変更する後続命令が既にデコードされているわけで
あり、W(JWi)ビットはそのままとする。ここでJ
Wiを変更する該後続命令は、入力オペランドとしてJ
Wiを読み出す必要がある(注1)ため、先行するJW
i変更命令の演算と結果の格納が終了したあとに、その
演算及び結果の格納が行われる。従って同一の物理レジ
スタに対して結果を格納する複数の命令の演算及び結果
の格納は、必ず命令の概念的順序通りに行われるため、
上記の方法にて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、読み出しレジスタ番
号JR0〜n、書き込み未完ビットW0〜n、書き込み
レジスタ番号JW0〜nの各信号を用いて判断する。す
なわち、R0〜nのうちオンであるものの読み出し物理
レジスタ番号がJRi、JRi、…であったとする
と、これらの中にPkと一致するものがなければPkに
対するすべての先行命令による読み出しが終了している
と判断でき、またW0〜nのうちオンであるものの書き
込み物理レジスタ番号がJWi,JWi,…であっ
たとすると、これらの中に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に対応していた旧
物理レジスタ番号がJWO信号として後述のセレクタ5
03から物理レジスタ状態制御回路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,2,4,6に対
応する物理レジスタ番号を保持するレジスタJWF0,
JWF2,JWF4,JWF6から成る。
変換表制御回路501は、Lタイプ命令が解読された時
に、ビジー状態にない物理レジスタの中から新たに割り
当てるべき物理レジスタを選び、その番号JWNを出力
する。すなわち、DS信号とL信号がともにオンであっ
た時に、ビジービットB(0)〜B(m)のうちオフで
あるものの中から適当な方法に従って1つ選択し、その
番号をJWNとして出力する。さらに変換表制御回路5
01は、このJWNの値を、変換表レジスタ群502に
おけるJWF0、2、4、6のうち該Lタイプ命令の書
き込み論理レジスタ番号IWに対応するレジスタに格納
するよう、制御信号508を変換表レジスタ群502の
中のその対応するレジスタに送出する。このJWNの格
納は、該Lタイプ命令のデコードサイクルの終了時刻に
行われ、従って格納された値は次命令以降のデコードか
ら使うこととなる。また変換表制御回路501は、L信
号がオンである時に、B(0)〜B(m)がすべてオ
ン、すなわち物理レジスタP0〜Pkがすべてビジーで
あり、新たに割り当てるべき物理レジスタを選択できな
い場合は、該L命令の解読を保留せしめるため、PBS
Y信号をオンとし、これをデコード制御回路5に送出す
る。ここの時既に述べたようにデコード制御回路5は、
該Lタイプ命令に対するDS信号の発行をPBSYがオ
フとなるまで延期する。
セレクタ503は、解読中の命令の書き込み論理レジス
タ番号IWに対応している物理レジスタ番号JWOを出
力する。このためセレクタ503にはIWの他に、JW
F0、2、4、6の内内容が入力される。JWOは、L
タイプ命令においては、IWに対してそれまで割り当て
られていた物理レジスタの番号を示す。
セレクタ504は、L信号がオンの時JWNを、オフの
時JWOをセレクトし、これをJW信号として出力す
る。JW信号は従って、Lタイプ命令であるか否かを問
わず、すべてのWタイプ命令に対して、その命令の結果
を格納すべき物理レジスタ番号を示す。
セレクタ505は、Rタイプ命令における読み出し論理
レジスタ番号IRに対応する物理レジスタ番号JRを出
力する。このため、JWF0、2、4、6の内容を入力
し、このうちIRで示されるものをセレクトしてJRと
して出力する。
セレクタ506は、Rタイプ命令に対し、該命令が読み
出しを行う番号JRの物理レジスタに対して、最後に書
き込みを行う命令の演算を行う演算器の番号LAWを出
力する。このため、物理レジスタ状態ビットのうちLA
W(0)〜LAW(m)を入力し、JRで示されるものを
セレクトしてLAWとして出力する。
セレクタ507は、オペランドコンフリクトの発生を示
すOC信号を出力する。このため、物理レジスタ状態ビ
ットのうちW(0)〜W(m)を入力し、JRで示され
るものをセレクトしてOCとして出力する。
次に第6図を用いて並列演算制御回路4の詳細な構成と
動作の説明をする。
601は演算器状態制御回路であり、n+1本の演算器
E0〜En毎に各サイクルにおけるその状態を表示す
る、6種の演算器状態ビットを有し、その更新を制御す
る。演算器状態ビットとしては以下がある。以下にて、
iは0〜nの代表である。
(1)ビジービットBi:演算器Eiがビジー状態である
ことを示す。Eiがビジー状態とは、解読の終了した命
令がEiにセットアップされてから(すなわち、SET
i信号が発行されてから)、該命令の演算実行が終了す
るまで(すなわち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)最終格納演算器番号LAWi:Eiにセットアップ
されたRタイプ命令が読み出す必要のあるレジスタに対
して、最後に結果の格納を行った命令の演算を実行した
演算器番号を示す。
SETiで信号発行時にLAW信号の値をとり込み、L
AWiとする。
602は演算器選択回路であり、ビジービットB0〜B
nを監視して、すべてオンである場合は前述のEBSY
信号をオンとし、また、命令解読が終了しDS信号が発
行された時には、ビジーでない演算器の中から1つを選
択し、(仮にEiとする)その番号iをLA信号として
出力し、またSETi信号を出力する。
603〜605は、各演算器毎に設けられた演算開始制
御回路#0〜#nである。第6図では、E0、E1、E
nに対応するもののみを示している。
演算開始制御回路#iでは、命令がEiにセットアップ
された時(すなわちSETi信号がオンの時)仮想レジ
スタ制御回路3より送出されるオペランドコンフリクト
OC信号がオフであれば直ちに演算開始信号BOPiを
発行し、またOC信号がオンであれば、演算器E0〜n
のうちLAWi信号で示される演算器のビジービットを監
視し、これがオフとなった時刻にBOPi信号を発行す
る。SETi信号がオンの時にOC信号がオフであるの
は、命令がEiにセットアップされた時に先行命令とオ
ペランドコンフリクトを発生していないことを示すの
で、JRiで示される物理レジスタから読み出したオペ
ランドが有効であり、従ってこれを用いて直ちにEiに
て演算が開始されることを意味する。またOCがオンで
あるのはこの逆に、該命令のEiへのセットアップ時点
において先行命令とオペランドコンフリクトを発生して
いることを示すので、該命令が必要とするオペランドデ
ータを生成する演算器、すなわちJRiで示される物理
レジスタに最後に演算結果を格納することになる命令の
セットアップされた演算器Ej(この番号jはLAWi
信号で演算器状態制御回路から送出される)の、格納未
完ビットWjを監視し、これがオフとなった時刻にBO
Pi信号を発行する。
(命令列の処理動作の説明) 第2図で示した4つの命令からなる命令列を、上述の処
理装置にて処理した場合の、より詳細な動作を、第7図
(a),(b)を用いて説明する。第7図(a),(b)は、横軸が
1サイクルを単位とした時間であり、最初の命令MDが
命令レジスタにセットされる直前のサイクルC0から、
該4命令の処理がすべて終了するサイクルC5までを記
しており、また縦軸は、第4、5、6図にて説明した、
処理装置内部のレジスタもしくは信号線であり、C0か
らC5までの、各時刻におけるそれらの値と、それらの
値が、どの命令の処理に応答しているかを矩形及びその
組み合わせの枠で囲って示したものである。
C0において、変換表502は、JWF0がP0、JW
F2がP1、JWF4がP2、JWF6がP3に対応す
るようになっているとする。また、従って、物理レジス
タP0〜3のビジービットB(0〜3)はオン、P4〜
mのビジービットB(4〜m)はオフであり、演算器の
ビジービットB0〜nはすべてオフであるとする。
C1にてMD命令が命令レジスタに入るとする。以下M
D命令に関する動作を説明する。命令デコーダにてC1
で解読が行われ、W、R信号がオンとなり、またIW、
IRにはともにF0を示す論理レジスタ番号0が入る。
(図では、あえてF0と示した。以下物理レジスタや演
算器の番号も同様にP0、E0のように示した。) 仮想レジスタ制御回路3ではIWの値F0に従いJWF
0に格納されている値P0をセレクタ503、504に
よって読み出し、JW信号上に出力する。同様に、IR
の値F0に従いJWF0の値P0をセレクタ505によ
って読み出しJR信号上に出力する。説明の簡単化の
為、演算器と物理レジスタの数は十分あるとし、よって
EBSY、PBSY信号は上記命令列の処理中は常にオ
ンとならず、従ってデコード制御回路5では直ちに、D
S信号をオンとしてMD命令のデコード完了を宣言す
る。
セレクタ507では、物理レジスタP0の格納未完ビッ
トW(0)を読み出し、これは該MD命令にて変更され
る前のC1ではオフであるので、OC信号はオフとな
る。
DS信号に応答して、演算器選択回路602では、空い
ている演算器としてE0を選択し、この演算器番号をL
A信号上に、またSET0信号を発行する。
演算開始制御回路#0では、C1においてMD命令のS
ET0信号に付随したOC信号がオフであるので、直ち
にBOP0信号を発行する。
演算器状態制御回路601では、SET0信号に応答し
てB0、W0、R0をオンとし、また、JW、JR信号
の値をP0とし、P0をJW0、JR0に記憶する。M
D命令の演算はC1からC4までかかり、C4にて終了
を意味するEOP0信号が発行される。この間演算器E
0のビジービットB0ならびにW0はオンであり、また
JW0の値としてP0が保持され続ける。演算終了時
に、EOP0信号に同期して結果DW0がJW0(=P
0)で示される物理レジスタに書き込まれる。
仮想レジスタ制御回路3においては、C1において、物
理レジスタP0の状態ビットW(0)をオンとし、また
LAW(0)に、MDのセットアップされた演算器を示
す番号E0が入る。これらは、MD命令のEOP0信号
の発行されるC4まで保持される。
MD命令のデコード完了信号DSが立つことに応答し
て、次のSTD命令がC2にて命令レジスタにセットさ
れる。以下STD命令に関する動作を説明する。C2に
おいて命令デコーダ2でSTD命令が解読され、R信号
がオンとなり、またIRにはF0が入る。仮想レジスタ
制御回路3ではIRの値F0に従い、JWF0の値P0
をセレクタ505によって読み出し、JR信号上に出力
する。STD命令についてもデコード制御回路5では直
ちにDS信号をオンとしてデコード完了を宣言する。C
2開始時点におけるW(0)ビットは、MD命令により
オンとされているため、OC信号はC2においてオンと
なる。またC2でのDC信号に応答して、演算器選択回
路602では、空いている演算器としてE1を選択し、
この番号をLA信号上に出力し、またSET1信号を発
行する。
演算開始制御回路#1では、C2においてSTD命令の
SET1信号に付随した0C信号がオンであるので、B
OP1信号の発行を保留する。
演算器状態制御回路601では、SET1信号に応答し
てB1、R1をオンとし、またJR信号の値をJR1
に、JAW信号の値E0をLAW1に記憶する。C3以
降STD命令の処理としては、先行するMD命令の終了
を監視する必要がある。すなわちLAW1に記憶されて
いる演算器番号E0に従い、演算器E0の格納未完ビッ
トW0を監視し、これがオフとなるC5においてオペラ
ンドコンフリクトが解消したと判断しBOP1信号を発
行する。STD命令の演算ステージは1サイクルで終了
し、C5にて直ちにEOP1信号が発行される。この間
演算器E1のビジービットB1ならびにR1ビットがオ
ンであり、またJR1、LAW1の値としてP0、E0
が保持され続ける。
STD命令のデコード完了信号DSが立つことに応答し
て、次のLD命令がC3にて命令レジスタにセットされ
る。以下LD命令に関する動作を説明する。C3におい
て命令デコーダ2で解読が行われ、L、W信号がオンと
なり、またIWにはF0が値として入る。仮想レジスタ
制御回路3では、IWの値F0に従いJWF0に格納さ
れてい値P0をセレクタ503によって読み出し、JW
0信号の値をP0とする。また、変換表制御回路501
においては、DS信号及びL信号がオンであるためこれ
に応答して、ビジービットB(0)〜B(m)のうちからオフ
であるものを探し、該物理レジスタ番号をJWN信号上
に出力する。今はB(4)〜B(m)がオフであり、このうち
最も番号の小さい物理レジスタP4の番号がJWN信号
上に出力されるものとする。
セレクタ504では、C3においてLタイプ信号がオン
であるため、JWN信号の値P4をJW信号上に出力す
る。LD命令についても、C3にて直ちにDS信号が発
行される。このDS信号に応答して、演算器選択回路6
02では、空いている演算器としてE2を選択し、その
番号をLA信号上に、またSET2信号を発行する。L
D命令はレジスタの読み出しを行わないのでOC信号は
オンとはならない。演算開始制御回路#2では、C3に
おいてLD命令のSET2信号に付随したOC信号がオ
フであるので直ちにBOP2信号を発行する。
演算器状態制御回路601では、SET2信号に応答し
て、B2、W2をオンとし、またJW信号の値P4をJ
W2に記憶する。LD命令の演算は1サイクルで終了す
るため、C3にてEOP2信号が発行される。演算器E
2のビジービットB2、及びW2はC3においてオンで
ある。
仮想レジスタ制御回路3においては、C3において、J
W信号によって示される物理レジスタP4の状態ビット
W(4)をオンとし、またLAW(4)に、LA信号の値であ
るLD命令のセットアップされた演算器を示す番号E2
が入る。これらは、LD命令がC3において直ちにEO
P2が発行されるので、1サイクルの間だけ保持され
る。また、C3において、JWO信号によって示される
物理レジスタP0のアサインビットA(0)をオンとす
る。さらにC3の終了時点において、IW信号の値F0
で示されるJWF0に、物理レジスタF0に新たに割り
当てられた物理レジスタの番号P4をセットする。
LD命令のデコード完了信号DSが立つことに応答し
て、次のAD命令がC4にて命令レジスタにセットされ
る。以下AD命令に関する動作を説明する。C4におい
て命令デコーダ2で解読が行われ、W、R信号がオンと
なり、またIW、IRにはF0が入る。仮想レジスタ制
御回路3では、IWの値F0に従いJWF0の値P4を
セレクタ503及び504により読み出しJW信号の値
とする。また同様にIRの値F0に従いJWF0の値P
4をJR信号上に読み出す。AD命令についても、C4
にて直ちにDS信号がオンとなる。C4開始時点におけ
るW(4)ビットはLD命令が前のサイクルC3にて結果
の書き込みを終了しているのでオフとなっている。この
ため、OC信号はC4においてはオフである。またC4
でのDS信号に応答して演算器選択回路602では、空
いている演算器としてE2を選択し、この番号をLA信
号上に出力し、またSET2信号を発行する。演算開始
制御回路#2では、C4においてAD命令のOC信号が
オフであるので、直ちにBOP2信号を発行する。演算
器状態制御回路601では、SET2信号に応答して、
B2、W2、R2をオンとし、またJR、JW信号の値
P4、P4を、それぞれJR2、JW2に記憶する。A
D命令の演算には2サイクルを要するため、C5サイク
ルにおいてEOP2信号が発行される。この間演算器E
2における、B2,W2,JW2の値が保持される。
仮想レジスタ制御回路3においては、C4において、J
W信号によって示される物理レジスタP4の状態ビット
W(4)をオンとし、またLAW(4)にLA信号の値である
E2をセットする。これらの値は、C5においてAD命
令のEOP2信号が発行されるまで保持される。
最後にC5において、STD命令のBOP1信号が発行
されると、物理レジスタP0の参照がすべて終了したこ
ととなるので、ビジービットB(0)及び、アサインビッ
トA(0)をオフとする。これによりC5に引き続くサイ
クルにて物理レジスタP0は空き状態となる。
以上述べたようにして、結局上記4命令の処理は、C1
〜C5の5サイクルで終了し、この間、MD、STD命
令の処理と、LD、AD命令の処理が並列に行われたこ
とになる。
〔発明の効果〕
本発明によれば、並列に処理可能な最大命令数をN、そ
の中でのレジスタ変更命令数をnとしたとき、n本程度
の物理レジスタを設けることで、複数命令でのレジスタ
再使用に起因する並列処理阻害要因を除去できる。さら
に、同じ論理レジスタに複数の物理レジスタにを割り当
てた場合に生じる使用済み物理レジスタの解放を早期に
行ない得る。
【図面の簡単な説明】
第1図は典型的な命令フォーマットを示す。 第2図は、本発明で並列処理可能となる命令列の例を示
す。 第3図は、本発明の実施例による、第2図の命令列の処
理ステージの概略を示す。 第4図は、本発明の実施例の全体構成を示す。 第5図は、仮想レジスタ制御回路の詳細構成を示す。 第6図は、並列演算制御回路の詳細構成を示す。 第7図は、第2図の命令処理における、本実施例中の信
号、レジスタ等のタイムチャートである。 符号の説明 1……命令レジスタ、2……命令デコーダ、3……仮想
レジスタ制御回路、4……並列演算制御回路、5……デ
コード制御回路、6……物理レジスタ群、7……演算
器、500……物理レジスタ状態制御回路、501……
変換表制御回路、502……変換表、601……演算器
状態制御回路、602……演算器選択回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 武内 茂雄 東京都小平市上水本町1479番地 日立マイ クロコンピユータエンジニアリング株式会 社内 (56)参考文献 特公 昭53−4779(JP,B2)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】複数の命令がそれぞれ要求する演算を並列
    に実行するための複数の演算器と、 それぞれ該複数の演算器による演算に使用するデータま
    たはそれらによる演算の結果得られるデータを保持する
    ための複数の物理レジスタと、 実行すべき複数の命令の内、データの書き込みをすべき
    論理レジスタを指定し、かつ、その論理レジスタに物理
    レジスタを割り当てる必要がある命令に応答して、その
    論理レジスタに対して、該複数の物理レジスタのうち、
    空き状態にある一つの物理レジスタを割り当てる手段
    と、 演算を受けるべきデータを保持する論理レジスタとその
    データに対して実行すべき演算を指定する命令に応答し
    て、上記論理レジスタに対して最近に割り当てられた物
    理レジスタからデータを読み出し、読み出されたデータ
    に対してその命令が指定する演算を、該複数の演算器の
    一つにより実行するように、演算の実行を制御する手段
    と、 既に論理レジスタに割り当てられたいずれかの物理レジ
    スタを解放する手段とを有し、 該解放手段は、 上記割り当て手段により、第1の命令が指定した一つの
    論理レジスタに対して第1の物理レジスタを割り当てた
    後、第1の命令の後続の、上記一つの論理レジスタを指
    定する第2の命令に応答して、その一つの論理レジスタ
    に新に第2の物理レジスタを割り当てたときに、上記第
    1の物理レジスタを2重割り当てされた物理レジスタと
    して他の物理レジスタから区別する手段と、 上記複数の演算器を使用して演算を実行中の複数の命令
    のいずれかによる使用が完了していない一つまたは複数
    の物理レジスタの番号を識別するための信号を出力する
    信号出力手段と、 上記複数の演算器によりすでに演算を実行中の命令の中
    に、上記区別手段により区別された物理レジスタの使用
    を完了していない命令があるか否かを、上記信号出力手
    段により出力される信号に基づいて検出する手段と、 該区分された物理レジスタの使用を完了していない命令
    が該検出手段により検出されなくなったときに、その区
    分された物理レジスタを解放する手段とを有するデータ
    処理装置。
  2. 【請求項2】該信号出力手段は、 各演算器で演算を実行中の命令が使用する物理レジスタ
    番号を出力する番号出力手段と、 各演算器で演算を実行中の命令による、その命令が使用
    する物理レジスタの使用が完了していないことを示す信
    号を出力する手段を有する請求項1記載のデータ処理装
    置。
JP58237777A 1983-12-19 1983-12-19 デ−タ処理装置 Expired - Lifetime JPH0658631B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP58237777A JPH0658631B2 (ja) 1983-12-19 1983-12-19 デ−タ処理装置
US06/682,839 US4736288A (en) 1983-12-19 1984-12-18 Data processing device
EP84115866A EP0150449A3 (en) 1983-12-19 1984-12-19 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58237777A JPH0658631B2 (ja) 1983-12-19 1983-12-19 デ−タ処理装置

Publications (2)

Publication Number Publication Date
JPS60129838A JPS60129838A (ja) 1985-07-11
JPH0658631B2 true JPH0658631B2 (ja) 1994-08-03

Family

ID=17020271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58237777A Expired - Lifetime JPH0658631B2 (ja) 1983-12-19 1983-12-19 デ−タ処理装置

Country Status (3)

Country Link
US (1) US4736288A (ja)
EP (1) EP0150449A3 (ja)
JP (1) JPH0658631B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0810430B2 (ja) * 1986-11-28 1996-01-31 株式会社日立製作所 情報処理装置
US5129092A (en) * 1987-06-01 1992-07-07 Applied Intelligent Systems,Inc. Linear chain of parallel processors and method of using same
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
EP0297265B1 (en) * 1987-07-01 1994-12-14 International Business Machines Corporation An instruction control mechanism for a computer system
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
US5034882A (en) * 1987-11-10 1991-07-23 Echelon Corporation Multiprocessor intelligent cell for a network which provides sensing, bidirectional communications and control
DE3890946B4 (de) * 1987-11-10 2005-03-10 Echelon Systems Los Gatos Intelligente Multiprozessorzelle für ein Netzwerk, das Erfassung bzw. Abtastung, bidirektionelle Kommunikationen und Steuerung ermöglicht
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
WO1990010267A1 (en) * 1989-02-24 1990-09-07 Nexgen Microsystems Distributed pipeline control for a computer
JP2507638B2 (ja) * 1989-12-01 1996-06-12 三菱電機株式会社 デ―タ処理装置
DE69228083T2 (de) * 1991-03-14 1999-05-20 Fujitsu Ltd Verfahren und Vorrichtung zur Steuerung von Pipelineoperationen
JPH04302522A (ja) * 1991-03-29 1992-10-26 Hitachi Ltd 演算回路及びこれを用いた適応フィルタ並びにエコーキャンセラ
JPH06110688A (ja) * 1991-06-13 1994-04-22 Internatl Business Mach Corp <Ibm> 複数の順序外れ命令を並行処理するためのコンピュータ・システム
GB9112754D0 (en) * 1991-06-13 1991-07-31 Int Computers Ltd Data processing apparatus
US5293631A (en) * 1991-08-06 1994-03-08 Hewlett-Packard Company Analysis and optimization of array variables in compiler for instruction level parallel processor
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
US5560025A (en) * 1993-03-31 1996-09-24 Intel Corporation Entry allocation apparatus and method of same
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
US6073231A (en) * 1993-10-18 2000-06-06 Via-Cyrix, Inc. Pipelined processor with microcontrol of register translation hardware
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
US5878245A (en) * 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
DE69434669T2 (de) * 1993-10-29 2006-10-12 Advanced Micro Devices, Inc., Sunnyvale Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
EP0651332B1 (en) * 1993-10-29 2001-07-18 Advanced Micro Devices, Inc. Linearly addressable microprocessor cache
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
DE69427265T2 (de) 1993-10-29 2002-05-02 Advanced Micro Devices Inc Superskalarbefehlsdekoder
US6101597A (en) * 1993-12-30 2000-08-08 Intel Corporation Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor
US6393550B1 (en) * 1993-12-30 2002-05-21 Intel Corporation Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
GB2287108B (en) * 1994-02-28 1998-05-13 Intel Corp Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US5553256A (en) * 1994-02-28 1996-09-03 Intel Corporation Apparatus for pipeline streamlining where resources are immediate or certainly retired
US5590352A (en) * 1994-04-26 1996-12-31 Advanced Micro Devices, Inc. Dependency checking and forwarding of variable width operands
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US5649225A (en) * 1994-06-01 1997-07-15 Advanced Micro Devices, Inc. Resynchronization of a superscalar processor
US5696955A (en) * 1994-06-01 1997-12-09 Advanced Micro Devices, Inc. Floating point stack and exchange instruction
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
US5557734A (en) * 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
EP0698884A1 (en) * 1994-08-24 1996-02-28 Advanced Micro Devices, Inc. Memory array for microprocessor cache
US5721695A (en) * 1994-10-17 1998-02-24 Advanced Micro Devices, Inc. Simulation by emulating level sensitive latches with edge trigger latches
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof
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
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5802338A (en) * 1996-10-01 1998-09-01 International Business Machines Corporation Method of self-parallelizing and self-parallelizing multiprocessor using the method
US20020144091A1 (en) * 2001-04-03 2002-10-03 Larry Widigen Method and apparatus for dynamic register management in a processor
CN100590592C (zh) * 2005-01-13 2010-02-17 Nxp股份有限公司 处理器及其指令发布方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3537074A (en) * 1967-12-20 1970-10-27 Burroughs Corp Parallel operating array computer
US3787673A (en) * 1972-04-28 1974-01-22 Texas Instruments Inc Pipelined high speed arithmetic unit
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
US3962706A (en) * 1974-03-29 1976-06-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
US4136383A (en) * 1974-10-01 1979-01-23 Nippon Telegraph And Telephone Public Corporation Microprogrammed, multipurpose processor having controllable execution speed
JPS5194734A (en) * 1975-02-19 1976-08-19 Tajushorisochino enzanseigyohoshiki
US4085450A (en) * 1976-12-29 1978-04-18 Burroughs Corporation Performance invarient execution unit for non-communicative instructions
FR2457521B1 (fr) * 1979-05-23 1985-12-27 Thomson Csf Systeme multiprocesseur de traitement de signal
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
US4532589A (en) * 1981-12-02 1985-07-30 Hitachi, Ltd. Digital data processor with two operation units
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
JPS59154564A (ja) * 1983-02-24 1984-09-03 Hitachi 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

Also Published As

Publication number Publication date
US4736288A (en) 1988-04-05
EP0150449A2 (en) 1985-08-07
EP0150449A3 (en) 1987-09-23
JPS60129838A (ja) 1985-07-11

Similar Documents

Publication Publication Date Title
JPH0658631B2 (ja) デ−タ処理装置
JPH0762823B2 (ja) デ−タ処理装置
EP0449661B1 (en) Computer for Simultaneously executing plural instructions
JPH0769818B2 (ja) デ−タ処理装置
JPH0766329B2 (ja) 情報処理装置
JPH1185512A (ja) 命令圧縮格納および命令復元機能を有するデータ処理装置
JP2003196084A (ja) リードモディファイライトユニットを有するシステム
EP0144249B1 (en) Buffer storage system
JPH0743648B2 (ja) 情報処理装置
JPS59106075A (ja) デ−タ処理システム
EP0292188B1 (en) Cache system
US5276853A (en) Cache system
JPS58137047A (ja) コンピユ−タの省略命令制御装置
JP2800488B2 (ja) パイプライン制御方式
US5694584A (en) Information processing system capable of quickly processing a parameter and a command necessary for drawing processing
JP2762441B2 (ja) コプロセッサ
JP2002268876A (ja) パイプライン処理方法、及び情報処理装置
JP2602230B2 (ja) データ処理装置
JPH07319753A (ja) バスサイクルのマルチプレクス方式
JPH10240525A (ja) 情報処理装置
JP2001184339A (ja) ベクトル演算装置
JPH01295366A (ja) ベクトル処理装置
JPH0412858B2 (ja)
JPS62147545A (ja) 情報処理装置における転送命令処理方式
JPS62147530A (ja) マイクロプログラム制御方式

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term