JPH02140831A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH02140831A
JPH02140831A JP1192821A JP19282189A JPH02140831A JP H02140831 A JPH02140831 A JP H02140831A JP 1192821 A JP1192821 A JP 1192821A JP 19282189 A JP19282189 A JP 19282189A JP H02140831 A JPH02140831 A JP H02140831A
Authority
JP
Japan
Prior art keywords
pipeline
instruction
stream
instructions
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
JP1192821A
Other languages
English (en)
Other versions
JP2810896B2 (ja
Inventor
Colin M Duxbury
コリン マーティン ダックスバリー
John R Eaton
ジョン リチャード イートン
Philip V Rose
フィリップ ヴィヴィアン ローズ
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.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services 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 Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Publication of JPH02140831A publication Critical patent/JPH02140831A/ja
Application granted granted Critical
Publication of JP2810896B2 publication Critical patent/JP2810896B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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 or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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 or 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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 or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • 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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、一連の段階を有し、そこで重複する態様で順
次に命令を実行する種類のデータ処理装置に関するもの
である。このような装置は普通パイブラインド プロセ
ッサ(pipelined processor) と
称される。
従来技術 このような装置では、処理段階の数を増すことにより、
順次の命令を実行する協同の程度を高め、従って全体の
実行速度を高めることができる。
しかし、従来のパイプライン構成では、多数のパイプラ
イン段階の調整及び制御が問題を提起していた。
発明の目的 本発明の1つの目的は、多数のパイプライン段階の調整
と制御を容易にするこのようなパイブラインド プロセ
ッサの新規な構成を提供することにある。
見皿又11 本発明によれば、下記のものを具えるデータ処理装置が
提供される。
(a)  各々が複数個のパイプライン段階を具備し、
それらが直列に接続されていて一系列の命令をパイブラ
インド態様(パイプライン的態様)で実行する複数個の
パイプラインユニット。
(b)  各々が複数個の個別に選択できるレジスタを
具備し、斯くしてパラメータファイルが複数個のスロッ
トを提供し、その各々が一組のレジスタを具備し、各パ
ラメータファイルから取り出した一つのレジスタをとっ
てその組を作り、各パラメータファイルが一対の前記パ
イプラインユニット間に接続され、それらのユニットの
一方から他方へパラメータを通す複数個のパラメータフ
ァイルと、(c) 1個の命令の実行がイニシェイト(
開始)される時、1個のスロットを各命令に割当て、命
令の実行が成功裡に完了した時そのスロットの割当てを
解除する手段。
本発明に係る一つのデータ処理装置をここに一例として
挙げ、以下図面に基づいて説明する6 第1図につき説明すると、データ処理装置は下記の一連
のパイプラインユニットを具えている。即ち。
命令スケジューラ10、上側パイプラインユニット11
.高速データ スレーブストア12及び下側パイプライ
ンユニット13である。
パイプラインユニット10〜13は下記のパラメータフ
ァイルにより相互に接続されている。即ち、 命令パラメータファイルIPF、アドレスパラメータフ
ァイルAPF及びオペランドパラメータファイルOFF
である。これ゛らは命令パラメータをパイプラインユニ
ット間で通す。
命令スケジューラ10は、これと関連する高速コードス
レーブ14を有し、命令スケジューラ10によりアクセ
スするための命令のコピーを保持する。
このシステムはまたスレーブストア12゜14よりサイ
ズは大きいが、アクセス速度が遅い主ストア15と、サ
イズ及び速度が主ストアと高速スレーブとの間の中間で
ある低速スレーブ ストア16とを含む。高速スレーブ
、低速スレーブ及び主ストアは3レベルの記憶階層を形
成する。
命令スケジューラ10は、ストリームA及びストリーム
Bと称される2個の個別の命令ストリームをスケジュー
ルする2個のスケジューラユニットIOA及びIOBを
具える。
ストリームAは、システムの主処理作業負荷に当てられ
ている。ストリームBは、入出力活動及び他のプロセッ
サとの通信のようなこの主処理作業負荷と独立な事象を
取扱う、2個の独立なストリームを設けるとシステムの
ハードウェアを一層効率良く使用することができる0例
えば、後に示すように、一方のストリームが何等かの理
由でお手上げになっても、他方のストリームは処理を継
続でき、従ってハードウェアは休まない。
命令スケジューラユニットIOA、 10Bの各々は一
系列の命令アドレスを発生し、高速コードスレーブ14
から命令を検索する。
求める命令が高速コードスレーブ14内にない場合は、
低速スレーブストア16又は主ストア15から検索する
。検索された命令はIPFに書込まれる。各命令はプロ
グラムカウンタ値PCを伴うが、これもIPF、pcと
称されるIPFの一部に書込まれる。IPFは2つ入力
ポートを持っており、従って命令スケジューラユニット
IOA、IOBは同時にIPFに書込める。
各パラメータファイルIPF、APF及びOPF (後
述するもう一つのパラメータファイルTPFも同様)は
16個のレジスタを具え、それ故実行の種々の段階で1
6個迄の異なる命令のパラメータを保持できる。特定の
1個の命令に関連するレジスタの組はスロットと称され
る。即ち、各スロットは各レジスタファイルからとった
1個の対応するレジスタを具える。
10個のスロットがストリームAに割当てられ、6個の
スロットがストリームBに割当てられる。
命令が最初に命令スケジューラからIPFに入ると、そ
れは1個のスロットに割当てられる。即ち、これはIP
F内の1個のレジスタと他のパラメータファイルの各々
毎に対応する1個のレジスタとして割当てられる。斯く
して当該命令は各パイプラインユニットの全ての段階に
より成功裡に実行される迄このスロットを保ち、その時
点でスロットは解放され、命令スケジューラからのもう
一つの命令に使えるようになる。命令がパイプラインを
下ってゆく時、その命令に与えられたスロット番号も命
令と一緒にパイプラインを下ってゆく。従って、各パイ
プライン段階で、パラメータファイルの適当なレジスタ
をアクセスできる。
上側パイプラインユニット11はIPFからの命令を読
み、それを処理し、当該命令に必要なオペランドのアド
レスを計算する。これは、例えば、ローカルネームベー
ス レジスタのような内部レジスタに保たれているベー
ス アドレスに変位値を加えることを含む。代りに、そ
のアドレスを命令内に保たれているリテラル値とするこ
ともできる。オペランド アドレスは当該命令に適当な
スロット内のAPF内に置く。
高速データ スレーブストア12は、空いている時、A
PFからのアドレスを読み、必要なオペランドがこのデ
ータ スレーブ12内にある場合はそれを検索し、又は
代りに低速スレーブ又は主ストアからオペランドを取出
すことを開始する。検索されたオペランドは当該命令に
適当なスロット内のOFF内に置かれる。加えて、スレ
ーブからのデータは上側パイプラインに戻し、そのユニ
ット内の内部レジスタの一つを更新するようにしてもよ
い。
下側パイプラインユニット13はOFFからのオペラン
ドを読み、命令により規定されているような必要な操作
をそれに加える。例えば、これはアキュームレータ レ
ジスタの内容にこのオペランドを加えることを含む。
−L□□□43≦ケとL乞 第2図は、上側パイプラインユニット11を詳細に示す
この上側パイプラインユニットは5個のパイプライン段
階UFO−UP4を含む。
第1段UFOは、IPFからスロットを選択し、そのス
ロットで命令の処理を開始するような後述する論理を含
む。
正規には、各ストリームの命令は上側パイプラインで時
系列的順序でスタートする。また正規には、ストリーム
AはストリームBに対して優先権を与えられており、従
ってストリームBの命令はIPF内に利用可能なストリ
ームAの命令がない場合に限りスタートする。しかし、
成る環境ではストリームBに優先権が与えられる。
1個の命令がスタートした後、上側パイプラインは一層
早い時期の命令に依存するためその命令が未だ成功裡に
完結できないでいることを検出する可能性がある。この
場合、その命令は放棄される。しかし、放棄された命令
に続く命令はルック−アヘッド モード(look−a
head mode)と呼ばれる特別なモードでは走行
を継続できる。その目的はその命令のオペランドを予め
フェッチし、必要ならば。
高速データ スレーブに入れておくためである。このよ
うなルック−アヘッドは、それらが如何なる別の依存性
をも発生させない場合に限り許される。ルック−アヘッ
ド モードはストリームAとBに対し独立に開始できる
ストリームAがルークーアヘッド モードでありストリ
ームBがそうでない場合は、ストリーム已に優先権が与
えられる。依存性が解決され終ったら、ストリームは正
規の非ルック−アヘッドモード(non−10ok−a
head mode)に戻り、放棄された命令が上側パ
イプラインで再スタートさせられる。
UPIはデコーダ20を具える。これは選択されたスロ
ットからの命令をデコードし、UF4に対する制御信号
を発生する。これらの制御信号はパイプライン レジス
タ21に蓄えられる。デコーダ20はまた出力信号を発
生する。これはUF4に送られ、レジスタ23により更
にデコードされる。
UF4は一組のレジスタ24を具え、これらがシステム
の命令の組により特定化されたレジスタのローカル コ
ピーを表わす。これらのレジスタの決定版的コピーは実
際には下側パイプラインにある。UF4はまたマルチプ
レクシング回路25を含み、これがレジスタ21内の値
により制御されて下記の複数個のソースの一つからレジ
スタ24に対する入力データを選択する。
(a)下側パイプラインからの出力データ信号V。
(b)下側パイプラインからの補正されたレジスタ値U
P、C0RR。
(c)データスレーブからのデータ信号RD。
UF4はまたデコーダ26を具えるが、これは更にレジ
スタ23の内容をデコードし、UF4に対する一組の制
御信号を発生する。
これらの制御信号はレジスタ27に蓄えられる。このデ
コーダ26はまた関数コードFを生ずるが、これはレジ
スタ28に蓄えられる。
UF4は、マルチプレクシング回路29を具えるが、こ
れはレジスタ27の値による制御の下に一組の演算レジ
スタ210の入力データを選択する。この入力データは
下記のソースから選択される。
(a)パイプラインレジスタ211,212によりUP
I内のデコーダ20から得られるリテラル値N。
(b)パイプラインレジスタ213,214及び217
によりIPF、pcから得られるプログラムカウンタ値
PC9 (c)レジスタ24゜ UF4はレジスタ215も具えるが、これは関数コード
FをUF4に送る。関数コードFはまたUF4からパラ
メータファイルAPF及びOFFにも送られ、そこで適
当なスロットに蓄えられる。これらのパラメータファイ
ルの関数コードを蓄える部分はAPF、f及びOFF、
fと称される。
UF4は演算論理ユニット(ALU)216を具えるが
、これはレジスタ215内の関数コードFの制御の下に
レジスタ210の内容に処理を施す。この処理の結果は
APFに送られ、そこで適当なスロットに書込まれる。
先の段階UPS(図示せず)では、UF4で発生させら
れたアドレスが構造的妥当性のために検査されることが
ある。何等かの誤りがあるとこのスロットの後の終了が
成功しない。
データスレーブ 第3図に進むが、この第3図は高速データスレーブ12
の詳細を示したものである。
このデータスレーブは5個のパイプライン段階DSO−
DS4を具える。
第1段階DSOはこのデータスレーブが次に取扱うスロ
ットをAPFから選択するための優先権論理回路を具え
る。
DSLはデコーダ31を具えるが、これはAPFから選
択されたアドレスをデコードし、32バイトブロツク内
での必要なデータ項目の整列を示すバイトシフト値を生
ずる。このアドレスとバイトシフト値とはレジスタ31
及び32によりDS2に送られる。
DS2はコンテンツ−アドレッサブル メモリ (co
ntents−addressable memory
 : CAM)33を具えるが、これは現にデータスレ
ーブ内にあるデータ項目のアドレスを保持する。CAM
33はDSLからオペランドアドレスを受は取り、それ
をCAMに保持されている全てのアドレスと比較する。
整合があれば、CAMは信号VHITを生じ、同時に必
要な項目はデータスレーブのどの32−バイトブロック
内に保持されているかを示すタグ値を出力する。このタ
グ値はレジスタ34を介してDS3に送られる。
必要なデータ項目がデータスレーブにない(VHIT偽
)場合は、この高速データ スレーブは低速スレーブへ
のアクセスをトリガし。
低速スレーブ又は主ストアのいずれかからデータを取出
し、高速データスレーブヘロードする。
DS2はまたバイト整列回路35を具えるが、これは下
側パイプラインからデータ項目Wを受は取り、それをレ
ジスタ32内に保持されているバイトシフト値に従って
整列させる。整列したデータ項目はレジスタ36に蓄え
られる。DS2はまたレジスタ37及び38を具えるが
、これらはそれぞれ主ストア及び低速スレーブから高速
データスレーブに戻ってきたデータ項目を受は取る。
DS3はランダムアクセスメモリ(RAM)39を具え
るが、これはいくつかの個別にアドレスできる32バイ
トのデータブロックを保持する。このRAMはレジスタ
34から送られてくるタグ値によりアドレスされる。デ
ータは任意のレジスタ36,37及び38からマルチプ
レクサ310を介してこのRAM内に書込める。代りに
1ブロツクのデータをRAMから読出し、レジスタ31
1を介してDS4に送ることができる。
DS4はバイト整列回路312を具える。
これはデコーダ30からパイプラインレジスタ32,3
13及び314を介して受取られたバイトシフト値によ
り制御される。バイト整列回路312はレジスタ311
に保持されているブロックから必要なデータ項目を選択
し、それをOFFに送る。選択されたデータ項目はまた
データ信号RDとして上側及び下側パイプラインに供給
される。
上皿バネj之ヱン 第4図に進むが、これは下側パイプライン13を詳細に
示す。
この下側パイプラインは4個のパイプライン段階LPO
−LP3を具える。
第1段階LPOは、OFFから次に下側パイプラインが
取扱うスロットを選択するための後述する優先権論理を
具える。
各ストリーム内では、最も早いものからスタートして厳
密な時系列的順序で命令がスタートする(及び終了する
)。
下側パイプラインでの命令の実行は、その命令用のオペ
ランドがデータスレーブから得られ、適時に下側パイプ
ラインの段階LP2で使用できることが確実になるや否
やスタートできる。斯くして、命令は下側パイプライン
でスタートし、この間にデータ項目は実際にデータスレ
ーブから検索される。限界の場合は、データスレーブか
らのデータ信号をLPIで直接使用し、OFFをバイパ
スする。
このため、データスレーブ及び下側パイプラインのパイ
プライン段階での操作は重なることがある、これは重要
である。蓋し、このため命令がパイプライン全部を通り
抜ける全通過時間が短かくなるからである。
LPIは制御ストア40を具えるが、そのアドレス入力
端子はOFF、f  の選択されたスロットからマルチ
プレクサ41を介して関数コードFを受取る。制御スト
ア40の出力は、制御コード及び次のアドレス値である
制御コードはレジスタ42を介してLP2に送られる。
次のアドレス値はLPO内のレジスタ43にフィードバ
ックされ1次いでマルチプレクサ41で選択され、制御
ストア40内のもう一つの場所をアドレスすることがで
きる。斯くして明らかに、各関数コード毎に、制御スト
ア40は下側パイプライン用の一系列の制御コードを生
成できる。その系列の制御コードが終った時、制御スト
ア40は系列信号の終了を生じ、これが段階LPO内の
優先権論理回路に告げられ、新しいスロットを選択し、
マルチプレクサ41をスイッチしてOFF、fから次の
関数コードを選択し、新しい系列をイニシエイトする。
LPIはまた一組の演算レジスタ44を具える。データ
は下記のソースのいずれかからマルチプレクシング回路
45を介してこれらのレジスタにロードできる。
(a)OFFの現に選択されているスロットに保持され
ているオペランド。
(b)LP3のレジスタからのデータ (c)データスレーブから(OFFをバイパスして)直
接送られてきたスレーブデ ータRD マルチプレクサ45は、レジスタ47又はALU46で
未だ必要なレジスタ411に書込まれ終っていないバイ
パスデータをそこからとることもできる。
LP2は演算論理ユニット(ALU)46を具えるが、
これはレジスタ42に保持されている制御コードにより
規定されるように、レジスタ44の内容を処理する。こ
の処理の結果はレジスタ47及び48を介してLP3に
送られる。
LP3は条件論理回路412を具えるが、これはレジス
タ48の出力及び制御ストア40からレジスタ42及び
410を介して送られてくる制御信号を受取る。この条
件論理回路412はテストを行ない、飛越し条件(命令
により規定される)を満足されているか否か、例えば、
累算器レジスタがゼロであるか否かを判定する。飛越し
条件が満足されている場合は、回路412はスケジュー
ラ10のための飛越し信号JCONを発生する。
LP3は終了制御論理回路49を具えるが、これは条件
論理回路412から送られてくる制御信号を受取り、L
P2での実行時に何等かの問題が検出されたか否かを示
す。論理回路49は命令に対応するTPFの信号及び内
容を検査し、この命令が実行時に何等かの問題にぶつか
ったか否かを判定する。成功裡に終了したことが検出さ
れた場合は、その命令がどちらのストリームにあるかに
依存してこの回路が2個の信号AFinOK及びBFi
nOKの一方を生ずる。次にその命令に割当てられてい
たスロットを解放し、再使用にそなえる。
LP3はまた一組のレジスタ411を具えるが、これは
システムの命令の組により規定されるレジスタの決定版
的コピーを再出現する。これらのレジスタはレジスタ4
7からデータを受取る。レジスタ411は終了制御論理
回路49が、このスロットが成功裡に完了しつつあるこ
とを示す場゛合だけレジスタ47からロードされる。こ
うしてレジスタ411で定められたように現在のプロセ
ス状態は命令の実行に際しての任意の誤りにより汚され
ない。レジスタ411の出力は補正信号UP。
C0RRを与え、必要に応じこれが上側パイプラインに
フィードバックしてそこに保持されているレジスタのロ
ーカルコピーを補正できる。
レジスタ47の出力はまたデータスレーブに信号Wを与
え、上側パイプラインに信号Vを与える。
スロットポインタ 今度は第5図に進むが、パイプラインを流れるA−スト
リーム命令流は複数個のカウンタ50〜54により制御
される。B−ストリームに対しても類似したカウンタの
組(図示せず)を設ける。
カウンタ50は信号ALdSltを生ずるが、これはI
PF内の次のスロットにスケジューラからのA−ストリ
ーム命令をロードすべきことを示す、カウンタ50はA
−ストリーム命令がIPFにロードされた場合は何時も
信号APiLdによりインクリメントされる。こうして
IPF内のスロットは系列的に順次の命令に割当てられ
る。
カウンタ51は信号AUStSltを生ずるが、これは
次のA−ストリームスロットを上側パイプライン内で正
規モード(即ち、非ルック−アヘッド モード)でスタ
ートすべきことを示す、同じように、カウンタ52は信
号AULaStSltを生ずるが、これは次のA−スト
リームスロットを上側パイプラインでルック−アヘッド
 モードでスタートすべきことを示す。
最初両方のカウンタ51,52の内容は等しい。この状
態は等価ゲート55により検出される。
正規モードでは、ルック−アヘッド信号A L A m
odeは偽である。A−ストリーム命令が上側パイプラ
インでスタートする度毎に、信号UPAStartが真
になる。これはANDゲート56をイネーブルし、これ
がカウンタ51をインクリメントする。斯くして、正規
モードでは、カウンタ51がIPFの順次のスロットか
らA−ストリーム命令をセレクトし、上側パイプライン
でこれらの命令の処理をイニシエイトする。同時に、A
NDゲート57及びORゲート58がイネーブルされ、
これがカウンタ52をインクリメントする。斯くして、
システムが正規モードにとどまる間に、2個のカウンタ
51.52は互に歩調を合わせてインクリメントされる
ルック−アヘッド モードでは、ALAモードが真で、
それ故ANDゲート56が閉じ。
これがカウンタ51がインクリメントされるのを防ぐ。
ルック−アヘッド モードで新規なA−ストリーム命令
がスタートする度毎に。
ANDゲート59がイネーブルされ、これがカウンタ5
2をインクリメントする。斯くして、ルック−アヘッド
 モードでは、カウンタ52は計数を続け、IPFから
上側パイプラインでスタートするための順次の命令を選
択する。他方、カウンタ51は放棄された命令のスロッ
ト番号を保つ。
システムが正規モードに戻ると、ALAモードは再び偽
になる。斯くして、新しい命令が上側パイプラインでス
タートする度毎に、ANDゲート56がイネーブルされ
、カウンタ51がインクリメントされる。しかし、両方
のカウンタの内容が等しくない間は、ANDゲート57
が禁止され、カウンタ52がインクリメントされるのを
防ぐ、カウンタ51が偶々カウンタ52に追いつくと、
両方のカウンタが互いに歩調を合わせて再びインクリメ
ントされる。カウンタ51が追いつく前にもう一つのル
ック−アヘッドがイニシエイトされる場合は、既にルッ
ク−アヘッドモードで実行され終った命令が再びそのよ
うになることはない、蓋し、ルック−アヘッドはカウン
タ52の現在の値からスタートするからである。
カウンタ53は信号ALStSltを生ずるが、これは
下側パイプラインで次のA−ストリームスロットをスタ
ートさせるべきことを示す。このカウンタ53はA−ス
トリーム命令が下側パイプラインでスタートさせられる
時は何時も信号LPAStartでインクリメントされ
る。斯くして、命令は系列的に下側パイプラインでスタ
ートさせられる。
カウンタ54は信号AEldSltを生ずるが、これは
最も早いA−ストリームの命令が現に下側パイプライン
に保持されているスロットを示す、命令は厳密に時系列
順序で完了し、従ってこの信号は下側パイプラインで実
行を終了すべき次のA−ストリーム命令を示す。カウン
タ54は信号AFinOKでインクリメントされるが、
この信号は下側パイプラインで1個のA−ストリーム命
令が成功裡に実行を完了したことを示す、これはスロッ
トを解放する。
カウンタ50及び51の内容を比較すると信号AUAl
lStを生ずるが、これは現在IPF内にあるA−スト
リーム命令が全て今や正規モードでスタートしてしまっ
たことを示す、同じように、カウンタ50と52の内容
を比較すると信号AULaAllStを生ずるが、これ
は多分にいくつかはルック−アヘッドモードである可能
性を伴ないつつ現IPF内にあるA−ストリーム命令が
全てスタートし終ったことを示す。
カウンタ50及び54の内容を比較すると信号A I 
p f F u l lを生ずるが、これはIPF内の
A−ストリームスロットが全て今−杯であることを示す
。これは更にA−ストリーム命令がIPFにロードされ
るのを防ぐ。
上側パイプラインスタート制御 第6図ないし第8図は、上側パイプラインで命令をスタ
ートさせるための制御論理回路を示す。
先ず第6図につき述べると、マルチプレクサ60が信号
ALAモードが偽であるか又は真であるかに従ってAU
AllSt又はA U L a A l l S tの
いずれかを選択する。マルチプレクサ60の出力の逆は
信号AIpfRdyを与え、これはIPF内のA−スト
リーム命令の少なくとも1個が上側パイプラインでスタ
ートする用意があることを示す。類似の信号BIpfR
dyはB−ストリームにつき生ずる。
信号AIPfRd:yはANDゲート61の一方の入力
端子に与えられる。このANDゲート61は上側パイプ
ラインでA−ストリーム命令をイニシエイトするための
信号UPAStartを生ずる。このANDゲート61
の他方の入力端子は、ORゲート62の出力を受は取る
が、このORゲート62はBIpfRdyの逆と優先権
信号UPBStPrefdの逆を受は取る。
同じようにBIpfRdyがANDゲート63の一方の
入力端子に供給される。これは上側パイプラインでB−
ストリーム命令をイニシエイトするための信号UPBS
tartを生ずる。このANDゲート63の他方の入力
端子はORゲート64の出力を受取るが、このORゲー
ト64はUPBStPrefdと、AIpfRdyの逆
を受取る。
斯くして明らかに、UPBStPrefdが偽の場合は
、B−ストリーム命令に優先してA−ストリーム命令が
イニシエイトされる。
B−ストリーム命令は、AUStSltで示されるスロ
ット内の命令となる。云い換えれば、依存性のため放棄
された命令が今や再スタートする。
この命令が再スタートすると、信号 U P A S t a r を及びARestRdy
がANDゲート93をイネーブルし、信号A Ra5t
artedを生じ、これがフリップフロップ90をリセ
ットする。
B−ストリームに対する信号BLAモードを発生するた
めにも類似の論理回路(図示せず)が存在する。
注意すべきことは、依存性が実際に解決され終らないう
ちに放棄された命令が再スタートすることがあることで
ある。例えば、放棄された命令が一層早い命令のスレー
ブ出力データRDから未だ書込まれ終っていないレジス
タのデータを読むことが必要なため命令が放棄されてい
る場合を考える。この場合、信号ADepWaitは、
データスレーブでアクセスがイニシエイトされ、必要な
データを検索されるや否や偽となる。従って、早期の命
令がデータスレーブへアクセスするのと平行してリスタ
ートさせられた命令は上側パイプラインで実行をスター
トさせる。再スタートさせられた命令がデータを読むこ
とを要求される層迄に、そのデータはデータスレーブか
らアクセスされ、実行が正規に進んでいろこともある。
しかし、必要なデータがデータスレーブにない場合は、
再スタートさせられた命令が再び放棄され、ルック−ア
ヘッドモードが再活性化される。
下側パイプラインスタート制御 第10図及び第11図は下側パイプラインLPで命令を
スタートさせるための制御論理回路を示す。
第10図につき述べると、下側パイプラインの第1段階
LPOが命令を実行するスタートの用意ができている時
、信号LPipeAvが生ずる。
信号ADsDoneが生じ、(若しあるならば)A−ス
トリームに対する必要なデータスレーブアクセスが完了
し終っているか又は近々完了する予定であることを示す
、この信号は10ビツトから成り、各ストリームスロッ
ト毎に1ビツトがあてられる。これらの10ビツトはマ
ルチプレクサ100に与えられ、このマルチプレクサ1
00がALStSltで示したように下側パイプライン
でスタートさすべき次のA−ストリーム命令に対応する
ビットを選択する。
信号LPipeAvとマルチプレクサ100の出力はA
NDゲート101で組合わされて信号LPAStart
Possを生ず″るが、これは下側パイプラインで新規
のA−ストリーム命令が今やスタートできることを示す
図示したように類似の論理回路が存在し、B−ストリー
ムに対する対応する信号 LPBStartPossを生ずる。
信号LPAStartPo s sはANDゲート10
2の一方の入力端子に加えられる。このANDゲート1
02は下側パイプラインでA−ストリーム命令をスター
トさすべきことを示す信号LPAStartを生ずる。
ANDゲート102の他方の入力端子にはORゲート1
03の出力が加えられる。ORゲート103の入力端子
はLPBStartPossの逆と、優先権制御信号L
PBPriの逆が加えられる。
同じように、信号LPBStartPo s sがAN
Dゲート104の一方の入力端子に加えられ、これが信
号LPBStartを生じ、この信号はB−ストリーム
命令が下側パイプラインでスタートすべきことを示す。
ANDゲート104の他方の入力端子はORゲート10
5の出力を受取り、ORゲート105の2個の入力端子
は信号LPBPriとしPAS tartPos sの
逆とを受取る。
斯くして、明らかに、LPBriが偽の場合は、可能な
らば何時でもB−ストリーム命令に優先してA−ストリ
ーム命令がスタートされる。LPBPriが真の場合は
、B−ストリーム命令に優先権が与えられる。
優先権信号LPBPriはUPBPriを生ずるための
第8図に示した回路と類似の論理回路により生ずる。こ
の場合、カウンタは信号LPAStart及びLPBS
tartにより制御され、予め設定された値はLSPL
imで、これはUSPLimと異なり得る。
注意すべきことは、信号ADsDone及びBDsDo
neは低速スレーブ又は主ストアに回らずにデータスレ
ーブが必要なデータ項目を与えうろことを知るや否や発
生させることができることである。プラクティスでは、
これらの信号はデータスレーブがアクセスされつつある
のと同じ時に発生させられる。これは下側パイプライン
の操作はADsDone又はBDsDoneの発生が同
じスロットに対し直接のL P A S t a r 
を又はLPBStartを結果とする場合はスレーブス
トアの操作と重複しうろことを意味する。
今度は第11図に進むか、これは下側パイプラインでイ
ニシエイトすべきスロットを選択する論理回路を示す。
ルック−アヘッド制御論理 前述したように、以前の命令への依存性のため、1個の
命令が未だ完了できないことが検出された場合は、その
命令は放棄され、ルック−アヘッドモードがイニシエイ
トされる。
第9図は、ルック−アヘッドモードを制御するための論
理回路を示す。
放棄すべき命令がA−ストリームのものである場合は、
信号AAbnDep及びA D e p W a i 
tが生ずる。AAbnDepはフリップフロップ90を
セットする。このフリップフロップ90の出力とADe
pWaitとがANDゲート91をイネーブルし、信号
ALAモードを生ずる。この信号はA−ストリームをル
ック−アヘッドモードに置く。
前述したように、ルック−アヘッドモードでは、カウン
タ52(第5図)の制御の下に命令が継続してイニシエ
イトされる。斯くして、放棄された命令以後の命令は継
続してランされ、必要に応じ、オペランドを予め取出す
、しかし、これらの命令は成功裡に終了したり又は下側
パイプラインのレジスタの決定版的コピーを更新するこ
とは許されない。
信号ADepWaitは依存性が解決し終ったか又は近
々解決されそうなことが検出された場合は再び偽になる
。これはANDゲート91をディスエーブルし、ALA
モードを偽にし、同時にANDゲート92をイネーブル
し、信号ARestRdyを生ずる。
ALAモードは奇偶であるから、イニシエイトすべき次
のA−ストリーム命令はA−ストリーム命令が準備され
ていない場合だけイニシエイトできる。逆に、UPBS
tPrefdが真の場合は、A−ストリーム命令に優先
してB−ストリーム命令がイニシエイトされる。
第7図につき説明する。マルチプレクサ70はALAモ
ードが偽であるか又は真であるかに従ってAUStSl
を又はAULa StS Itのいずれかを選択する。
それ故、このマルチプレクサ70の出力は場合次第で正
規モード又はルック−アヘッドモードで上側パイプライ
ンでスタートさすべき次のA−ストリーム命令のスロッ
ト番号を示す、B−ストリームに対しても類似のマルチ
プレクサ71を設ける。
これらのマルチプレクサの出力はANDゲート72.7
3を介してORゲート74に送られる。このORゲート
74の出力端子は信号工pfRdsltを与える。この
信号はIPFをアドレスし、上側パイプラインでスター
トすべき次の命令を読出す。
ANDゲート72.73は図示したように信号UPAS
tart及びUPBStartにより制御され、必要通
りにA−ストリーム又はB−ストリームに対するスロッ
ト番号を選択する。
第8図は上側パイプラインでスタートさせるのにB−ス
トリームが優先することを示す信号UPBStPref
dを生ずる論理回路を示す。
UPBStPrefdはORゲート80から取出される
が、このORゲート80は2個のANDゲート81及び
82の出力を受取る。
ANDゲート81は信号ALAモードと、B−ストリー
ムに対する対応する信号BLAモードの逆とを受取る。
ANDゲート82は信号UPBPriと、ALAモード
及びBLAモードを結合する等価ゲート83の出力とを
受取る。
斯くして明らかに、2個のストリームの一方がルック−
アヘッドモードにあり、他方が正規モードにある場合は
、信号LIPBStPrefdが正規モードのストリー
ムに優先権を与える。
他方、両ストリームが同じモードにある場合は、UPB
Priが偽であるが又は真であるかに従って、A−スト
リーム又はB−ストリームに優先権が与えられる。
信号UPBPriは次のようにして発生させられる。
カウンタ84は、UPBStartで示されるように、
B−ストリーム命令が上側パイプラインでスタートさせ
られる時は何時も予めセットされた値USPlimをロ
ードさせられる。このカウンタ84はUPAStart
で示されるように、A−ストリーム命令をスタートさせ
る時は何時もデクリメントされる。
カウントがゼロに達すると、ANDゲート85がイネー
ブルされ、今度はこれがORゲート87をイネーブルし
、UPBP r iを真にする。斯くして明らかに、正
規にはA−ストリームに優先権が与えられるが、如何な
る対応するB−ストリームがスタートすることを伴なわ
ずに、予め定められた数のA−ストリーム命令がスター
トさせられた場合にはB−ストリームに優先権が与えら
れる。
USPlimの値は2個のストリーム間で所望のバラン
スがとれるような値に予め設定できる。
ORゲート87はまた信号B U r g e n t
を受取るが、これはベンディング中の入出力の活性又は
中間プロセッサの通信が危機的になり、カウンタ84の
効果をオーバーライド(over−riding)する
時B−ストリームに優先権を与える。
下側パイプラインでスタートすべき次のA−ストリーム
スロットを示す信号ALStSltが一組のANDゲー
ト110でLPAStartと共にゲートされる。同じ
ように、 BLStSltは一組のANDゲート111
でLPBStartと共にゲートされる。
ANDゲート110及び111の出力は一組のORゲー
ト112で組合わされ、信号LPO8l tを生ずる。
この信号は場合次第でA−ストリーム又はB−ストリー
ム内で下側パイプラインでスタートすべき次の命令のス
ロット番号を示す。LP01 l tを用いてパラメー
タファイルOFFにアクセスし、下側パイプラインに対
する必要な命令とオペランドとを読出す。
信号LPO8l tは当該命令が下側パイプラインの段
階LPIに入る時レジスタ113に蓄わえられ、信号L
PISltを生ずる。
この信号は一組のANDゲート114を介してLPip
eAvが偽の場合は何時もORゲート112にゲートバ
ックされる。斯くして下側パイプラインが新規の命令を
受取れない(マルチビット命令を実行しているため)場
合は、現在のスロット番号が維持される。
注意すべきことは、各命令毎に、プロセス状態への全て
の変化が状態LP3で成功裡に終了した時同時になされ
ることである。従って、命令は細かく考察でき、フルに
又は全くのいずれかで実行される。これは飛越し及び誤
りの時パイプラインの制御と再生を簡略化する。
【図面の簡単な説明】
第1図は装置の全体図、 第2図は上側パイプラインユニットの詳細図、 第3図は高速データスレーブストアの詳細図。 第4図は下側パイプラインユニットの詳細図、 第5図はパイプラインユニットを流れる命令の流れを制
御するためのスロットポインタのブロック図、 第6図ないし第8図は上側パイプラインで命令をイニシ
エイトするのを制御する制御論理回路のブロック図、 第9図はルック−アヘッドモードの制御論理回路図、 第10図及び第11図は下側パイプラインでの命令のイ
ニシエイシ目ンを制御する、制御論理回路のブロック図
である。 [主要部分の符号の説明] 命令スケジューラ 上側パイプラインユニット ・・・・・・・・・・・・高速データスレーブストア下
側パイプラインユニット 高速コードスレーブ 主ストア 低速スレーブストア デコーダ パイプラインレジスタ レジスタ レジスタ マルチプレクシング回路 デコーダ レジスタ レジスタ ・・・・・・・・・・・・・・マルチプレクシング回路
デコーダ 32               レジスタ・・・・
・コンテンツ−アドレッサブルメモリ(cAM) レジスタ バイト整列回路 レジスタ ・・・・・・ レジスタ AM 制御ストア マルチプレクサ レジスタ レジスタ 演算レジスタ マルチプレクシング回路 LU レジスタ 終了制御論理回路 カウンタ 等価ゲート ANDゲート ANDゲート ORゲート ANDゲート マルチプレクサ ANDゲート ORゲート ANDゲート マルチプレクサ マルチプレクサ 73・・・・・ ・   ・・ ANDゲートORゲー
ト ・・・・・・・・・・・・・・・・・・・・・・・・・
・ORゲート82            ANDゲー
ト等価ゲート カウンタ ANDゲート ORゲート フリップフロップ ANDゲート ANDゲート ANDゲート マルチプレクサ ANDゲート 1O 211,212・・・・・・・・・・・213.214
,217  ・・・・・・・313.314  ・・・
・・・・・・・・ANDゲート ORゲート ANDゲート ORゲート ANDゲート ANDゲート ORゲート レジスタ 演算レジスタ パイプラインレジスタ パイプラインレジスタ レジスタ LU マルチプレクサ レジスタ バイト整列回路 パイプラインレジスタ レジスタ レジスタ 条件論理回路 Fl(3,9 Fl(3,6゜ Fl(i、 70゜ FlG、 77゜

Claims (1)

  1. 【特許請求の範囲】 1、下記のもの、即ち、 (a)複数個のパイプラインユニットであ って、各パイプラインユニットが複数個のパイプライン
    段階を具え、それらが直列に接続されていて一系列の命
    令をパイプライン的態様で実行する複数個のパイプライ
    ンユニットと、 (b)複数個のパラメータファイルであっ て、各パラメータファイルが複数個の個別に選択できる
    レジスタを具え、それらのパラメータファイルが斯くし
    て複数個のスロットを提供し、各スロットが、各パラメ
    ータファイルから1個をとった一組のレジスタを具え、
    各パラメータファイルが一対の前記パイプラインユニッ
    ト間に接続されてパラメータをそれらのユニットの一方
    から他方へ通す複数個のパラメータファイルと、 (c)各命令の実行が開始される時、1個のスロットを
    その命令に割当て、その命令の実行が成功裡に完了した
    時そのスロットの割 当てを解除する手段とを具えるデータ処理 装置。 2、第1と第2の独立な命令ストリームを 発生する手段を含み、各パイプラインユニットが両方の
    ストリームからの命令を処理することを特徴とする請求
    項1記載のデータ処理装置。 3、各ストリーム内で命令が厳密な時系列 的順序で終了することを特徴とする請求項2記載のデー
    タ処理装置。 4、少なくとも1個のパイプラインユニッ トが、2個のストリームのうちどちらが優先権を有する
    かを示し正規にはそのストリームからの命令を他方のス
    トリームからの命令に優先して選択する優先権手段を具
    えることを特徴とする請求項2又は3記載のデータ処理
    装置。 5、前記優先権手段が正規には第1のスト リームが優先権を有することを示し、更に予め定められ
    た数の第1のストリームからの命令が、第2のストリー
    ムからの如何なる命令も選択されることなく、選択され
    終った後第2のストリームが優先権を有することを示す
    ことを特徴とする請求項4記載のデータ処理装置。 6、各パイプラインユニットが2個のスト リームからの命令を独立に選択し、処理する請求項2記
    載のデータ処理装置。 7、パイプラインユニットが下記のもの、 即ち、 (a)前記系列の命令を生ずるための命令スケジューラ
    と、 (b)命令に対しオペランドアドレスを発 生する上側パイプラインユニットと、 (c)オペランドを検索するためのデータ スレーブストアと、 (d)前記オペランドに処理を実施する下側パイプライ
    ンユニットとを具えることを特 徴とする請求項1乃至6記載のデータ処理 装置。 8、前記パラメータファイルが下記のもの、即ち、 (a)命令をスケジューラから上側パイプラインに渡す
    命令パラメータファイルと、 (b)オペランドアドレスを上側パイプラ インからデータスレーブストアに渡すア ドレスパラメータファイルと、 (c)オペランドをデータスレーブスト アから下側パイプラインに渡すオペランド パラメータファイルとを具えることを特徴 とする請求項7記載のデータ処理装置。 9、オペランドパラメータファイルがま た関数コードを上側パイプラインから下側パイプライン
    へ渡すことを特徴とする請求項8記載のデータ処理装置
    。 10、前記パラメータファイルが、前記パ イプラインユニットにより各命令が完了する時点で検出
    された誤りに関する情報を格納する終了パラメータファ
    イルを具えることを特徴とする請求項1乃至9記載のデ
    ータ処理装置。 11、前記スロットを予め定められた巡回的順序で割当
    てる手段を具えることを特徴とする請求項1乃至10記
    載のデータ処理装置。 12、第1のパイプラインユニットでその処理が成功裡
    に完了したことを示す状態が検出された時、1個の命令
    が第1のパイプラインユニットの最後のパイプライン段
    階に達する前に、前記2個のパイプラインユニットの第
    1のものが第2のもので前記命令を処理するのを開始し
    、従って、前記第1と第2のパイプラインユニットの操
    作が重なり合うことを特徴とする請求項1乃至11記載
    のデータ処理装置。 13、前記第1のパイプラインユニットがデータスレー
    ブストアを具え、前記第2の パイプラインユニットがこのデータスレー ブストアから検索されたオペランドに処理 を施す実行ユニットであり、前記状態がオペランドがデ
    ータスレーブストア内に存在 することであることを特徴とする請求項12記載のデー
    タ処理装置。 14、データ処理装置の処理状態を定める複数個のレジ
    スタを具え、各命令が全てのパイプラインユニットによ
    りその命令の実行が成功裡に完了し終った時のみプロセ
    スの状態を更新できることを特徴とする請求項1乃至 13記載のデータ処理装置。
JP1192821A 1988-07-27 1989-07-27 データ処理装置 Expired - Fee Related JP2810896B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB888817911A GB8817911D0 (en) 1988-07-27 1988-07-27 Data processing apparatus
GB8817911.4 1988-07-27

Publications (2)

Publication Number Publication Date
JPH02140831A true JPH02140831A (ja) 1990-05-30
JP2810896B2 JP2810896B2 (ja) 1998-10-15

Family

ID=10641211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1192821A Expired - Fee Related JP2810896B2 (ja) 1988-07-27 1989-07-27 データ処理装置

Country Status (8)

Country Link
US (1) US5117490A (ja)
EP (1) EP0352935B1 (ja)
JP (1) JP2810896B2 (ja)
AU (1) AU613217B2 (ja)
DE (1) DE68927029T2 (ja)
GB (1) GB8817911D0 (ja)
IE (1) IE74215B1 (ja)
ZA (1) ZA895349B (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280597A (en) * 1990-03-30 1994-01-18 Mitsubishi Denki Kabushiki Kaisha Pipeline processor with self timed data transfer
US5261063A (en) * 1990-12-07 1993-11-09 Ibm Corp. Pipeline apparatus having pipeline mode eecuting instructions from plural programs and parallel mode executing instructions from one of the plural programs
EP0498067A2 (en) * 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine
GB9123271D0 (en) * 1991-11-02 1991-12-18 Int Computers Ltd Data processing system
US6043401A (en) * 1992-05-26 2000-03-28 Bp Amoco Corporation Reactive, low molecular weight, viscous poly(1-olefins) and copoly(1-olefins) and their method of manufacture
US5688887A (en) * 1992-05-26 1997-11-18 Amoco Corporation Reactive, low molecular weight, viscous poly(1-olefins) and copoly(1-olefins) and their method of manufacture
DE69415126T2 (de) * 1993-10-21 1999-07-08 Sun Microsystems Inc., Mountain View, Calif. Gegenflusspipelineprozessor
US5850563A (en) * 1995-09-11 1998-12-15 International Business Machines Corporation Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5694565A (en) * 1995-09-11 1997-12-02 International Business Machines Corporation Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
US5812086A (en) * 1996-06-27 1998-09-22 Motorola, Inc. Method and apparatus for providing duplex communication service in geographical areas where conventional services are obstructed
US5784028A (en) * 1996-06-27 1998-07-21 Motorola, Inc. Method and apparatus for simplex delivery of signals to obstructed geographical areas
US6119203A (en) * 1998-08-03 2000-09-12 Motorola, Inc. Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6542921B1 (en) 1999-07-08 2003-04-01 Intel Corporation Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
US6643770B1 (en) * 1999-09-16 2003-11-04 Intel Corporation Branch misprediction recovery using a side memory
US6889319B1 (en) 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US6496925B1 (en) 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US6357016B1 (en) 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US7051329B1 (en) * 1999-12-28 2006-05-23 Intel Corporation Method and apparatus for managing resources in a multithreaded processor
US7856633B1 (en) 2000-03-24 2010-12-21 Intel Corporation LRU cache replacement for a partitioned set associative cache
GB0019341D0 (en) * 2000-08-08 2000-09-27 Easics Nv System-on-chip solutions
US7017064B2 (en) * 2001-05-09 2006-03-21 Mosaid Technologies, Inc. Calculating apparatus having a plurality of stages
US7363474B2 (en) 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US7127561B2 (en) 2001-12-31 2006-10-24 Intel Corporation Coherency techniques for suspending execution of a thread until a specified memory access occurs
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
US8024735B2 (en) 2002-06-14 2011-09-20 Intel Corporation Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution
EP1615123B1 (en) * 2004-07-09 2010-04-07 Michael Colin George Chapman High performance user configurable coprocessor
WO2007068865A1 (en) * 2005-12-15 2007-06-21 Arm Limited Instruction issue control within a multithreaded processor

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3611307A (en) * 1969-04-03 1971-10-05 Ibm Execution unit shared by plurality of arrays of virtual processors
US3728692A (en) * 1971-08-31 1973-04-17 Ibm Instruction selection in a two-program counter instruction unit
GB1443777A (en) * 1973-07-19 1976-07-28 Int Computers Ltd Data processing apparatus
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
GB1527289A (en) * 1976-08-17 1978-10-04 Int Computers Ltd Data processing systems
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4390946A (en) * 1980-10-20 1983-06-28 Control Data Corporation Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences
JPS57155666A (en) * 1981-03-20 1982-09-25 Fujitsu Ltd Instruction controlling system of vector processor
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
JPS58129550A (ja) * 1982-01-27 1983-08-02 Toshiba Corp 演算制御装置
US4519033A (en) * 1982-08-02 1985-05-21 Motorola, Inc. Control state sequencer
JPS5932045A (ja) * 1982-08-16 1984-02-21 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
JPS60123936A (ja) * 1983-12-07 1985-07-02 Fujitsu Ltd バッフア記憶制御方式
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
JPS63123130A (ja) * 1986-11-12 1988-05-26 Fanuc Ltd パイプライン制御方式
US4811215A (en) * 1986-12-12 1989-03-07 Intergraph Corporation Instruction execution accelerator for a pipelined digital machine with virtual memory
US4893233A (en) * 1988-04-18 1990-01-09 Motorola, Inc. Method and apparatus for dynamically controlling each stage of a multi-stage pipelined data unit
GB8817912D0 (en) * 1988-07-27 1988-09-01 Int Computers Ltd Data processing apparatus

Also Published As

Publication number Publication date
GB8817911D0 (en) 1988-09-01
US5117490A (en) 1992-05-26
DE68927029T2 (de) 1997-04-03
EP0352935B1 (en) 1996-08-28
JP2810896B2 (ja) 1998-10-15
AU3890189A (en) 1990-02-01
DE68927029D1 (de) 1996-10-02
IE74215B1 (en) 1997-07-16
ZA895349B (en) 1990-04-25
IE892255L (en) 1990-01-27
AU613217B2 (en) 1991-07-25
EP0352935A3 (en) 1992-06-10
EP0352935A2 (en) 1990-01-31

Similar Documents

Publication Publication Date Title
JPH02140831A (ja) データ処理装置
US5040107A (en) Pipelined processor with look-ahead mode of operation
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US6219775B1 (en) Massively parallel computer including auxiliary vector processor
JP3120152B2 (ja) コンピューターシステム
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US4507728A (en) Data processing system for parallel processing of different instructions
JPH077385B2 (ja) データ処理装置
JP2539974B2 (ja) 情報処理装置におけるレジスタの読出制御方式
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
JPH02297630A (ja) デイジタル・データ処理システム
JPS59128670A (ja) ベクトル処理装置
JPH0348536B2 (ja)
US5390306A (en) Pipeline processing system and microprocessor using the system
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US6732251B2 (en) Register file circuitry
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
JP3278441B2 (ja) ベクトル処理装置
JP2781779B2 (ja) 分岐制御回路
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPH0486920A (ja) 情報処理装置およびその方法
JPS5896346A (ja) 階層型演算方式
JPH04168526A (ja) ループ制御方式
JPS63245526A (ja) 情報処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees