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

データ処理装置

Info

Publication number
JP2810896B2
JP2810896B2 JP1192821A JP19282189A JP2810896B2 JP 2810896 B2 JP2810896 B2 JP 2810896B2 JP 1192821 A JP1192821 A JP 1192821A JP 19282189 A JP19282189 A JP 19282189A JP 2810896 B2 JP2810896 B2 JP 2810896B2
Authority
JP
Japan
Prior art keywords
instruction
pipeline
stream
instructions
data
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 - Fee Related
Application number
JP1192821A
Other languages
English (en)
Other versions
JPH02140831A (ja
Inventor
マーティン ダックスバリー コリン
リチャード イートン ジョン
ヴィヴィアン ローズ フィリップ
Original Assignee
インターナショナル コンピューターズ リミテッド
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 インターナショナル コンピューターズ リミテッド filed Critical インターナショナル コンピューターズ リミテッド
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)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、一連の段階を有し、そこで重複する態様で
順次に命令を実行する種類のデータ処理装置に関するも
のである。このような装置は普通パイプラインド プロ
セッサ(pipelined processor)と称される。
従来技術 このような装置では、処理段階の数を増すことによ
り、順次の命令を実行する協同の程度を高め、従って全
体の実行速度を高めることができる。
しかし、従来のパイプライン構成では、多数のパイプ
ライン段階の調製及び制御が問題を提起していた。
発明の目的 本発明の1つの目的は、多数のパイプライン段階の調
整と制御を容易にするこのようなパイプラインド プロ
セッサの新規な構成を提供することにある。
発明の要旨 本発明によれば、下記のものを具えるデータ処理装置
が提供される。
(a) 各々が複数個のパイプライン段階を具備し、そ
れらが直列に接続されていて一系列の命令をパイプライ
ンド態様(パイプライン的態様)で実行する複数個のパ
イプラインユニット。
(b) 各々が複数個の個別に選択できるレジスタを具
備し、斯くしてパラメータファイルが複数個のスロット
を提供し、その各々が一組のレジスタを具備し、各パラ
メータファイルから取り出した一つのレジスタをとって
その組を作り、各パラメータファイルが一対の前記パイ
プラインユニット間に接続され、それらのユニットの一
方から他方へパラメータを通す複数個のパラメータファ
イルと、 (c) 1個の命令の実行がイニシエイト(開始)され
る時、1個のスロットを各命令に割当て、命令の実行が
成功裡に完了した時そのスロットの割当てを解除する手
段。
本発明に係る一つのデータ処理装置をここに一例とし
て挙げ、以下図面に基づいて説明する。
本発明の実施例の説明 システムの全体的説明 第1図につき説明すると、データ処理装置は下記の一
連のパイプラインユニットを具えている。即ち、 命令スケジューラ10、上側パイプラインユニット11、
高速データスレーブストア12及び下側パイプラインユニ
ット13である。
パイプラインユニット10〜13は下記のパラメータファ
イルにより相互に接続されている。即ち、 命令パラメータファイルIPF、アドレスパラメータフ
ァイルAPF及びオペランドパラメータファイルOPFであ
る。これらは命令パラメータをパイプラインユニット間
で通す。
命令スケジューラ10は、これと関連する高速コードス
レーブ14を有し、命令スケジューラ10によりアクセスす
るための命令のコピーを保持する。
このシステムはまたスレーブストア12,14よりサイズ
は大きいが、アクセス速度が遅い主ストア15と、サイズ
及び速度が主ストアと高速スレーブとの間の中間である
低速スレーブストア16とを含む。高速スレーブ、低速ス
レーブ及び主ストアは3レベルの記憶段層を形成する。
命令スケジューラ10は、ストリームA及びストリーム
Bと称される2個の個別の命令ストリームをスケジユー
ルする2個のスケジューラユニット10A及び10Bを具え
る。ストリームAは、システムの主処理作業負荷に当て
られている。ストリームBは、入出力活動及び他のプロ
セッサとの通信のようなこの主処理作業負荷と独立な事
象を取扱う。2個の独立なストリームを設けるとシステ
ムのハードウェアを一層効率良く使用することができ
る。例えば、後に示すように、一方のストリームが何等
かの理由でお手上げになっても、他方のストリームは処
理を継続でき、従ってハードウェアは休まない。
命令スケジューラユニット10A,10Bの各々は一系列の
命令アドレスを発生し、高速コードスレーブ14からの命
令を検索する。求める命令が高速コードスレーブ14内に
ない場合は、低速スレーブストア16又は主ストア15から
検索する。検索された命令はIPFに書込まれる。各命令
はプログラムカウンタ値PCを伴うが、これもIPF.pcと称
されるIPFの一部に書込まれる。IPFは2つの入力ポート
を持っており、従って命令スケジューラユニット10A,10
Bは同時にIPFに書込める。
各パラメータファイルIPF,APF及びOPF(後述するもう
一つのパラメータファイルTPFも同様)は16個のレジス
タを具え、それ故実行の種々の段階で16個迄の異なる命
令のパラメータを保持できる。特定の1個の命令に関連
するレジスタの組はスロットと称される。即ち、各スロ
ットは各レジスタファイルからとった1個の対応するレ
ジスタを具える。
10個のスロットがストリームAに割当てられ、6個の
スロットがストリームBに割当てられる。
命令が最初に命令スケジューラからIPFに入ると、そ
れは1個のスロットに割当てられる。即ち、これはIPF
内の1個のレジスタと他のパラメータファイルの各々毎
に対応する1個のレジスタとして割当てられる。斯くし
て当該命令は各パイプラインユニットの全ての段階によ
り成功裡に実行される迄このスロットを保ち、その時点
でスロットは解放され、命令スケジューラからのもう一
つの命令に使えるようになる。命令がパイプラインを下
ってゆく時、その命令に与えられたスロット番号も命令
と一緒にパイプラインを下ってゆく。従って、各パイプ
ライン段階で、パラメータファイルの適当なレジスタを
アクセスできる。
上側パイプラインユニット11はIPFからの命令を読
み、それを処理し、当該命令に必要なオペランドのアド
レスを計算する。これは、例えば、ローカルネームベー
スレジスタのような内部レジスタに保たれているベース
アドレスに変位値を加えることを含む。代りに、その
アドレスを命令内に保たれているリテラル値とすること
もできる。オペランド アドレスは当該命令に適当なス
ロット内のAPF内に置く。
高速データスレーブストア12は、空いている時、APF
からのアドレスを読み、必要なオペランドがこのデータ
スレーブ12内にある場合はそれを検索し、又は代りに低
速スレーブ又は主ストアからオペランドを取出すことを
開始する。検索されたオペランドは当該命令に適当なス
ロット内のOPF内に置かれる。加えて、スレーブからの
データは上側パイプラインに戻し、そのユニット内の内
部レジスタの一つを更新するようにしてもよい。
下側パイプラインユニット13はOPFからのオペランド
を読み、命令により規定されているような必要な操作を
それに加える。例えば、これはアキュームレータ レジ
スタの内容にこのオペランドを加えることを含む。
上側パイプライン 第2図は、上側パイプラインユニット11を詳細に示
す。
この上側パイプラインユニットは5個のパイプライン
段階UP0〜UP4を含む。
第1段UP0は、IPFからスロットを選択し、そのスロッ
トで命令の処理を開始するような後述する論理を含む。
正規には、各ストリームの命令は上側パイプラインで
時系列的順序でスタートする。また正規には、ストリー
ムAはストリームBに対して優先権にを与えられてお
り、従ってストリームBの命令はIPF内に利用可能なス
トリームAの命令がない場合に限りスタートする。しか
し、或る環境ではストリームBに優先権が与えられる。
1個の命令がスタートした後、上側パイプラインは一
層早い時期の命令に依存するためその命令が未だ成功裡
に完結できないでいることを検出する可能性がある。こ
の場合、その命令は放棄される。しかし、放棄された命
令に続く命令はルック−アヘッド モード(look−ahea
d mode)と呼ばれる特別なモードでは走行を継続でき
る。その目的はその命令のオペランドを予めフェッチ
し、必要ならば、高速データ スレーブに入れておくた
めである。このようなルック−アヘッドは、それらが如
何なる別の依存性をも発生させない場合に限り許され
る。ルック−アヘッド モードはストリームAとBに対
し独立に開始できる。ストリームAががルーク−アヘッ
ド モードでありストリームBがそうでない場合は、ス
トリームBに優先権が与えられる。依存性が解決され終
ったら、ストリームは正規の非ルック−アヘッド モー
ド(non−look−ahead mode)に戻り、放棄された命令
が上側パイプラインで再スタートさせられる。
UP1はデコーダ20を具える。これは選択されたスロッ
トからの命令をデコードし、UP2に対する制御信号を発
生する。これらの制御信号はパイプライン レジスタ21
に蓄えられる。デコーダ20はまた出力信号を発生する。
これはUP2に送られ、レジスタ23により更にデコードさ
れる。
UP2は一組のレジスタ24を具え、これらがシステムの
命令の組により特定化されたレジスタのローカル コピ
ーを表わす。これらのレジスタの決定版的コピーは実際
には下側パイプラインにある。UP2はまたマルチプレク
シング回路25を含み、これがレジスタ21内の値により制
御されて下記の複数個のソースの一つからレジスタ24に
対する入力データを選択する。
(a)下側パイプラインからの出力データ信号V。
(b)下側パイプラインからの補正されたレジスタ値U
P.CORR。
(c)データスレーブからのデータ信号RD。
UP2またはデコーダ26を具えるが、これは更にレジス
タ23の内容をデコードし、UP3に対する一組の制御信号
を発生する。これらの制御信号はレジスタ27に蓄えられ
る。このデコーダ26はまた関数コードFを生ずるが、こ
れはレジスタ28に蓄えられる。
UP3は、マルチプレクシング回路29を具えるが、これ
はレジスタ27の値による制御の下に一組の演算レジスタ
210の入力データを選択する。この入力データは下記の
ソースから選択される。
(a)パイプラインレジスタ211,212によりUP1内のデコ
ーダ20から得られるリテラル値N。
(b)パイプラインレジスタ213,214及び217によりIPF.
pcから得られるプログラムカウンタ値PC。
(c)レジスタ24。
UP3はレジスタ215も具えるが、これは関数コードFを
UP4に送る。関数コードFはまたUP3からパラメータファ
イルAPF及びOPFにも送られ、そこで適当なスロットに蓄
えられる。これらのパラメータファイルの関数コードを
蓄える部分はAPF.f及びOPF.fと称される。
UP4は演算論理ユニット(ALU)216を具えるが、これ
はレジスタ215内の関数コードFの制御の下にレジスタ2
10の内容に処理を施す。この処理の結果はAPFに送ら
れ、そこで適当なスロットに書込まれる。
先の段階UP5(図示せず)では、UP4で発生させられた
アドレスが構造的妥当性のために検査されることがあ
る。何等かの誤りがあるとこのスロットの後の終了が成
功しない。
データスレーブ 第3図に進むが、この第3図は高速データスレーブ12
の詳細を示したものである。
このデータスレーブは5個のパイプライン段階DS0〜D
S4を具える。
第1段階DS0はこのデータスレーブが次に取扱うスロ
ットをAPFから選択するための優先権論理回路を具え
る。
DS1はデコーダ31を具えるが、これはAPFから選択され
たアドレスをデコードし、32バイトブロック内での必要
なデータ項目の整列を示すバイトシフト値を生ずる。こ
のアドレスとバイトシフト値とはレジスタ31及び32によ
りDS2に送られる。
DS2はコンテンツ−アドレッサブル メモリ(content
s−addressable memory:CAM)33を具えるが、これは現
にデータスレーブ内にあるデータ項目のアドレスを保持
する。CAM33はDS1からオペランドアドレスを受け取り、
それを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か
ら読出し、レジスタ311を介してDS4に送ることができ
る。
DS4はバイト整列回路312に具える。これはデコーダ30
からパイプラインレジスタ32,313及び314を介して受取
られたバイトシフト値により制御される。バイト整列回
路312はレジスタ311に保持されているブロックから必要
なデータ項目を選択し、それをOPFに送る。選択された
データ項目はまたデータ信号RDとして上側及び下側パイ
プラインに供給される。
下側パイプライン 第4図に進むが、これは下側パイプライン13を詳細に
示す。
この下側パイプラインは4個のパイプライン段階LP0
〜LP3を具える。
第1段階LP0は、OPFから次に下側パイプラインが取扱
うスロットを選択するための後述する優先権論理を具え
る。
各ストリーム内では、最も早いものからスタートして
厳密な時系列的順序で命令がスタートする(及び終了す
る)。
下側パイプラインでの命令の実行は、その命令用のオ
ペランドがデータスレーブから得られ、適時に下側パイ
プラインの段階LP2で使用できることが確実になるや否
やスタートできる。斯くして、命令は下側パイプライン
でスタートし、この間にデータ項目は実際にデータスレ
ーブから検索される。限界の場合は、データスレーブか
らのデータ信号をLP1で直接使用し、OPFをバイパスす
る。このため、データスレーブ及び下側パイプラインの
パイプライン段階での操作は重なることがある。これは
重要である。蓋し、このため命令がパイプライン全部を
通り抜ける全通過時間が短かくなるからである。
LP1は制御ストア40を具えるが、そのアドレス入力端
子はOPF.fの選択されたスロットからマルチプレクサ41
を介して関数コードFを受取る。制御ストア40の出力
は、制御コード及び次のアドレス値である。制御コード
はレジスタ42を介してLP2に送られる。次のアドレス値
はLP0内のレジスタ43にフィードバックされ、次いでマ
ルチプレクサ41で選択され、制御ストア40内のもう一つ
の場所をアドレスすることができる。斯くして明らか
に、各関数コード毎に、制御ストア40は下側パイプライ
ン用の一系列の制御コードを生成できる。その系列の制
御コードが終った時、制御ストア40は系列信号の終了を
生じ、これが段階LP0内の優先権論理回路に告げられ、
新しいスロットを選択し、マルチプレクサ41をスイッチ
してOPF.fから次の関数コードを選択し、新しい系列を
イニシエィトする。
LP1はまた一組の演算レジスタ44を具える。データは
下記のソースのいずれかからマルチプレクシング回路45
を介してこれらのレジスタにロードできる。
(a)OPFの現に選択されているスロットに保持されて
いるオペランド。
(b)LP3のレジスタからのデータ (c)データスレーブから(OPFをバイパスして)直接
送られてきたスレーブデータRD マルチプレクサ45は、レジスタ47又はALU46で未だ必
要なレジスタ411に書込まれ終っていないバイパスデー
タをそこからとることもできる。
LP2は演算論理ユニット(ALU)46を具えるが、これは
レジスタ42に保持されている制御コードにより規定され
るように、レジスタ44の内容を処理する。この処理の結
果はレジスタ47及び48を介してLP3に送られる。
LP3は条件論理回路412を具えるが、これはレジスタ48
の出力及び制御ストア40からレジスタ42及び410を介し
て送られてくる制御信号を受取る。この条件論理回路41
2はテストを行ない、飛越し条件(命令により規定され
る)を満足されているか否か、例えば、累算器レジスタ
がゼロであるか否かを判定する。飛越し条件が満足され
ている場合は、回路412はスケジューラ10のための飛越
し信号JCONを発生する。
LP3は終了制御論理回路49を具えるが、これは条件論
理回路412から送られてくる制御信号を受取り、LP2での
実行時に何等かの問題が検出されたか否かを示す。論理
回路49は命令に対応するTPFの信号及び内容を検査し、
この命令が実行時に何等かの問題にぶつかったか否かを
判定する。成功裡に終了したことが検出された場合は、
その命令がどちらのストリームにあるかに依存してこの
回路が2個の信号AFinOK及びBFinOKの一方を生ずる。次
にその命令に割当てられていたスロットを解放し、再使
用にそなえる。
LP3はまた一組のレジスタ411を具えるが、これはシス
テムの命令の組により規定されるレジスタの決定版的コ
ピーを再出現する。これらのレジスタはレジスタ47から
データを受取る。レジスタ411は終了制御論理回路49
が、このスロットが成功裡に完了しつつあることを示す
場合だけレジスタ47からロードされる。こうしてレジス
タ411で定められたように現在のプロセス状態は命令の
実行に際しての任意の誤りにより汚されない。レジスタ
411の出力は補正信号UP.CORRを与え、必要に応じこれが
上側パイプラインにフィードバックしてそこに保持され
ているレジスタのローカルコピーを補正できる。
レジスタ47の出力はまたデータスレーブに信号Wを与
え、上側パイプラインに信号Vを与える。
スロットポインタ 今度は第5図に進むが、パイプラインを流れるA−ス
トリーム命令流は複数個のカウンタ50〜54により制御さ
れる。B−ストリームに対しても類似したカウンタの組
(図示せず)を設ける。
カウンタ50は信号ALdSltを生ずるが、これはIPF内の
次のスロットにスケジューラからのAストリーム命令を
ロードすべきことを示す。カウンタ50はA−ストリーム
命令がIPFにロードされた場合は何時も信号APiLdにより
インクリメントされる。こうしてIPF内のスロットは系
列的に順次の命令に割当てられる。
カウンタ51は信号AUStSltを生ずるが、これは次のA
−ストリームスロットを上側パイプライン内で正規モー
ド(即ち、非ルック−アヘッド モード)でスタートす
べきことを示す。同じように、カウンタ52は信号AULaSt
Sltを生ずるが、これは次のA−ストリームスロットを
上側パイプラインでルック−アヘッド モードでスター
トすべきことを示す。
最初両方のカウンタ51,52の内容は等しい。この状態
は等価ゲート55により検出される。
正規モードでは、ルック−アヘッド信号ALA modeは偽
である。A−ストリーム命令が上側パイプラインでスタ
ートする度毎に、信号UPAStartが真になる。これはAND
ゲート56をイネーブルし、これがカウンタ51をインクリ
メントする。斯くして、正規モードでは、カウンタ51が
IPFの順次のスロットからA−ストリーム命令をセレク
トし、上側パイプラインでこれらの命令の処理をイニシ
エイトする。同時に、ANDゲート57及びORゲート58がイ
ネーブルされ、これがカウンタ52をインクリメントす
る。斯くして、システムが正規モードにとどまる間に、
2個のカウンタ51,52は互に歩調を合わせてインクリメ
ントされる。
ルック−アヘッド モードでは、ALAモードが真で、
それ故ANDゲート56が閉じ、これがカウンタ51がインク
リメントされるのを防ぐ。ルック−アヘッド モードで
新規なA−ストリーム命令がスタートする度毎に、AND
ゲート59がイネーブルされ、これがカウンタ52をインク
リメントする。斯くして、ルック−アヘッド モードで
は、カウンタ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の内容を比較すると信号AUAllStを
生ずるが、これは現在IPF内にあるA−ストリーム命令
が全て今や正規モードでスタートしてしまったことを示
す。同じように、カウンタ50と52の内容を比較すると信
号AULaAllStを生ずるが、これは多分にいくつかはルッ
ク−アヘッドモードである可能性を伴ないつつ現IPF内
にあるA−ストリーム命令が全てスタートし終ったこと
を示す。
カウンタ50及び54の内容を比較すると信号AIpfFullを
生ずるが、これはIPF内のA−ストリームスロットが全
て今一杯であることを示す。これは更にA−ストリーム
命令がIPFにロードされるのを防ぐ。
上側パイプラインスタート制御 第6図ないし第8図は、上側パイプラインで命令をス
タートさせるための制御論理回路を示す。
先ず第6図につき述べると、マルチプレクサ60が信号
ALAモードが偽であるか又は真であるかに従ってAUAllSt
又はAULaAllStのいずれかを選択する。マルチプレクサ6
0の出力の逆は信号AIpfRdyを与え、これはIPF内のA−
ストリーム命令の少なくとも1個が上側パイプラインで
スタートする用意があることを示す。類似の信号BIpfRd
yはB−ストリームにつき生ずる。
信号AIpfRdyはANDゲート61の一方の入力端子に与えら
れる。このANDゲート61は上側パイプラインでA−スト
リーム命令をイニシエイトするための信号UPAStartを生
ずる。ANDゲート61の他方の入力端子は、ORゲート62の
出力を受け取るが、このORゲート62はBIpfRdyの逆と優
先権信号UPBStPrefdの逆を受け取る。
同じようにBIpfRdyがANDゲート63の一方の入力端子に
供給される。これは上側パイプラインでB−ストリーム
命令をイニシエイトするための信号UPBStartを生ずる。
このANDゲート63の他方の入力端子はORゲート64の出力
を受取るが、このORゲート64はUPBStPrefdと、AIpfRdy
の逆を受取る。
斯くして明らかに、UPBStPrefdが偽の場合は、B−ス
トリーム命令に優先してA−ストリーム命令がイニシエ
イトされる。B−ストリーム命令は、AUStSltで示され
るスロット内の命令となる。云い換えれば、依存性のた
め放棄された命令が今や再スタートする。
この命令が再スタートすると、信号UPAStart及びARes
tRdyがANDゲート93をイネーブルし、信号ARastartedを
生じ、これがフリップフロップ90をリセットする。
B−ストリームに対する信号BLAモードを発生するた
めにも類似の論理回路(図示せず)が存在する。
注意すべきことは、依存性が実際に解決され終らない
うちに放棄された命令が再スタートすることがあること
である。例えば、放棄された命令が一層早い命令のスレ
ーブ出力データRDから未だ書込まれ終っていないレジス
タのデータを読むことが必要なため命令が放棄されてい
る場合を考える。この場合、信号ADepWaitは、データス
レーブでアクセスがイニシエイトされ、必要なデータを
検索されるや否や偽となる。従って、早期の命令がデー
タスレーブへアクセスするのと平行してリスタートさせ
られた命令は上側パイプラインで実行をスタートさせ
る。再スタートさせられた命令がデータを読むことを要
求される時迄に、そのデータはデータスレーブからアク
セスされ、実行が正規に進んでいることもある。しか
し、必要なデータがデータスレーブにない場合は、再ス
タートさせられた命令が再び放棄され、ルック−アヘッ
ドモードが再活性化される。
下側パイプラインスタート制御 第10図及び第11図は下側パイプラインLPで命令をスタ
ートさせるための制御論理回路を示す。
第10図につき述べると、下側パイプラインの第1段階
LPOが命令を実行するスタートの用意ができている時、
信号LPipeAvが生ずる。
信号ADsDoneが生じ、(若しあるならば)A−ストリ
ームに対する必要なデータスレーブアクセスが完了し終
っているか又は近々完了する予定であることを示す。こ
の信号は10ビットから成り、各ストリームスロット毎に
1ビットがあてられる。これらの10ビットはマルチプレ
クサ100に与えられ、このマルチプレクサ100がALStSlt
で示したように下側パイプラインでスタートさすべき次
のA−ストリーム命令に対応するビットを選択する。
信号LPipeAvとマルチプレクサ100の出力はANDゲート1
01で組合わされて信号LPAStartPossを生ずるが、これは
下側パイプラインで新規のA−ストリーム命令が今やス
タートできることを示す。
図示したように類似の論理回路が存在し、B−ストリ
ームに対する対応する信号LPBStartPossを生ずる。
信号LPAStartPossはANDゲート102の一方の入力端子に
加えられる。このANDゲート102は下側パイプラインでA
−ストリーム命令をスタートさすべきことを示す信号LP
AStartを生ずる。ANDゲート102の他方の入力端子にはOR
ゲート103の出力が加えられる。ORゲート103の入力端子
はLPBStartPossの逆と、優先権制御信号LPBPriの逆が加
えられる。
同じように、信号LPBStartPossがANDゲート104の一方
の入力端子に加えられ、これが信号LPBStartを生じ、こ
の信号はB−ストリーム命令が下側パイプラインでスタ
ートすべきことを示す。ANDゲート104の他方の入力端子
はORゲート105の出力を受取り、ORゲート105の2個の入
力端子は信号LPBPriとしてPAStartPossの逆とを受取
る。
斯くして、明らかに、LPBriが偽の場合は、可能なら
ば何時でもB−ストリーム命令に優先してA−ストリー
ム命令がスタートされる。LPBPriが真の場合は、B−ス
トリーム命令に優先権が与えられる。
優先権信号LPBPriはUPBPriを生ずるための第8図に示
した回路と類似の論理回路により生ずる。この場合、カ
ウンタは信号LPAStart及びLPBStartにより制御され、予
め設定された値はLSPLimで、これはUSPLimと異なり得
る。
注意すべきことは、信号ADsDone及びBDsDoneは低速ス
レーブ又は主ストアに回らずにデータスレーブが必要な
データ項目を与えうることを知るや否や発生させること
ができることである。プラクティスでは、これらの信号
はデータスレーブがアクセスされつつあるのと同じ時に
発生させられる。これは下側パイプラインの操作はADsD
one又はBDsDoneの発生が同じスロットに対し直接のLPAS
tart又はLPBStartを結果する場合はスレーブストアの操
作と重複しうることを意味する。
今度は第11図に進むか、これは下側パイプラインでイ
ニシエイトすべきスロットを選択する論理回路を示す。
ルック−アヘッド制御論理 前述したように、以前の命令への依存性のため、1個
の命令が未だ完了できないことが検出された場合は、そ
の命令は放棄され、ルック−アヘッドモードがイニシエ
イトされる。
第9図は、ルック−アヘッドモードを制御するための
論理回路を示す。
放棄すべき命令がA−ストリームのものである場合
は、信号AAbnDep及びADepWaitが生ずる。AAbnDepはフリ
ップフロップ90をセットする。このフリップフロップ90
の出力とADepWaitとがANDゲート91をイネーブルし、信
号ALAモードを生ずる。この信号はA−ストリームをル
ック−アヘッドモードに置く。
前述したように、ルック−アヘッドモードでは、カウ
ンタ52(第5図)の制御の下に命令が継続してイニシエ
イトされる。斯くして、放棄された命令以後の命令は継
続してランされ、必要に応じ、オペランドを予め取出
す。しかし、これらの命令は成功裡に終了したり又は下
側パイプラインのレジスタの決定版的コピーを更新する
ことは許されない。
信号ADepWaitは依存性が解決し終ったか又は近々解決
されそうなことが検出された場合は再び偽になる。これ
はANDゲート91をディスエーブルし、ALAモードを偽に
し、同時にANDゲート92をイネーブルし、信号ARestRdy
を生ずる。
ALAモードは今偽であるから、イニシエイトすべき次
のA−ストリーム命令はA−ストリーム命令が準備され
ていない場合だけイニシエイトできる。逆に、UPBStPre
fdが真の場合は、A−ストリーム命令に優先してB−ス
トリーム命令がイニシエイトされる。
第7図につき説明する。マルチプレクサ70はALAモー
ドが偽であるか又は真であるかに従ってAUStSlt又はAUL
aStSltのいずれかを選択する。それ故、このマルチプレ
クサ70の出力は場合次第で正規モード又はルック−アヘ
ッドモードで上側パイプラインでスタートさすべき次の
A−ストリーム命令のスロット番号を示す。B−ストリ
ームに対しても類似のマルチプレクサ71を設ける。
これらのマルチプレクサの出力はANDゲート72,73を介
してORゲート74に送られる。このORゲート74の出力端子
は信号IpfRdSltを与える。この信号はIPFをアドレス
し、上側パイプラインでスタートすべき次の命令を読出
す。
ANDゲート72,73は図示したように信号UPAStart及びUP
BStartにより制御され、必要通りにA−ストリーム又は
B−ストリームに対するスロット番号を選択する。
第8図は上側パイプラインでスタートさせるのにB−
ストリームが優先することを示す信号UPBStPrefdを生ず
る論理回路を示す。
UPBStPrefdはORゲート80から取出されるが、このORゲ
ート80は2個のANDゲート81及び82の出力を受取る。AND
ゲート81は信号ALAモードと、B−ストリームに対する
対応する信号BLAモードの逆とを受取る。ANDゲート82は
信号UPBPriと、ALAモード及びBLAモードを結合する等価
ゲート83の出力とを受取る。
斯くして明らかに、2個のストリームの一方がルック
−アヘッドモードにあり、他方が正規モードにある場合
は、信号UPBStPrefdが正規モードのストリームに優先権
を与える。他方、両ストリームが同じモードにある場合
は、UPBPriが偽であるか又は真であるかに従って、A−
ストリーム又はB−ストリームに優先権が与えられる。
信号UPBPriは次のようにして発生させられる。
カウンタ84は、UPBStartで示されるように、B−スト
リーム命令が上側パイプラインでスタートさせられる時
は何時も予めセットされた値USPlimをロードさせられ
る。このカウンタ84はUPAStartで示されるように、A−
ストリーム命令をスタートさせる時は何時もデクリメン
トされる。カウントがゼロに達すると、ANDゲート85が
イネーブルされ、今度はこれがORゲート87をイネーブル
し、UPBPriを真にする。斯くして明らかに、正規にはA
−ストリームに優先権が与えられるが、如何なる対応す
るB−ストリームがスタートすることを伴なわずに、予
め定められた数のA−ストリーム命令がスタートさせら
れた場合にはB−ストリームに優先権が与えられる。US
Plimの値は2個のストリーム間で所望のバランスがとれ
るような値に予め設定できる。
ORゲート87はまた信号BUrgentを受取るが、これはペ
ンディング中の入出力の活性又は中間プロセッサの通信
が危機的になり、カウンタ84の効果をオーバーライド
(over−riding)する時B−ストリームに優先権を与え
る。
下側パイプラインでスタートすべき次のA−ストリー
ムスロットを示す信号ALStSltが一組のANDゲート110でL
PAStartと共にゲートされる。同じように、BLStSltは一
組のANDゲート111でLPBStartと共にゲートされる。
ANDゲート110及び111の出力は一組のORゲート112で組
合わされ、信号LPOSltを生ずる。この信号は場合次第で
A−ストリーム又はB−ストリーム内で下側パイプライ
ンでスタートすべき次の命令のスロット番号を示す。LP
OSltを用いてパラメータファイルOPFにアクセスし、下
側パイプラインに対する必要な命令とオペランドとを読
出す。
信号LPOSltは当該命令が下側パイプラインの段階LP1
に入る時レジスタ113に蓄わえられ、信号LPlSltを生ず
る。この信号は一組のANDゲート114を介してLPipeAvが
偽の場合は何時もORゲート112にゲートバックされる。
斯くして下側パイプラインが新規の命令を受取れない
(マルチビット命令を実行しているため)場合は、現在
のスロット番号が維持される。
注意すべきことは、各命令毎に、プロセス状態への全
ての変化が状態LP3で成功裡に終了した時同時になされ
ることである。従って、命令は細かく考察でき、フルに
又は全くのいずれかで実行される。これは飛越し及び誤
りの時パイプラインの制御と再生を簡略化する。
【図面の簡単な説明】
第1図は装置の全体図、 第2図は上側パイプラインユニットの詳細図、 第3図は高速データスレーブストアの詳細図、 第4図は下側パイプラインユニットの詳細図、 第5図はパイプラインユニットを流れる命令の流れを制
御するためのスロットポインタのブロック図、 第6図ないし第8図は上側パイプラインで命令をイニシ
エイトするのを制御する制御論理回路のブロック図、 第9図はルック−アヘッドモードの制御論理回路図、 第10図及び第11図は下側パイプラインでの命令のイニシ
エイションを制御する、制御論理回路のブロック図であ
る。 [主要部分の符号の説明] 10……命令スケジューラ 11……上側パイプラインユニット 12……高速データスレーブストア 13……下側パイプラインユニット 14……高速コードスレーブ 15……主ストア 16……低速スレーブストア 20……デコーダ 21……パイプラインレジスタ 23……レジスタ 24……レジスタ 25……マルチプレクシング回路 26……デコーダ 27……レジスタ 28……レジスタ 29……マルチプレクシング回路 30……デコーダ 31,32……レジスタ 33……コンテンツ−アトレッサブルメモリ(CAM) 34……レジスタ 35……バイト整列回路 36……レジスタ 37,38……レジスタ 39……RAM 40……制御ストア 41……マルチプレクサ 42……レジスタ 43……レジスタ 44……演算レジスタ 45……マルチプレクシング回路 46……ALU 47,48……レジスタ 49……終了制御論理回路 50〜54……カウンタ 55……等価ゲート 56……ANDゲート 57……ANDゲート 58……ORゲート 59……ANDゲート 60……マルチプレクサ 61……ANDゲート 62……ORゲート 63……ANDゲート 70……マルチプレクサ 71……マルチプレクサ 72,73……ANDゲート 74……ORゲート 80……ORゲート 81,82……ANDゲート 83……等価ゲート 84……カウンタ 85……ANDゲート 87……ORゲート 90……フリップフロップ 91……ANDゲート 92……ANDゲート 93……ANDゲート 100……マルチプレクサ 101……ANDゲート 102……ANDゲート 103……ORゲート 104……ANDゲート 105……ORゲート 110……ANDゲート 111……ANDゲート 112……ORゲート 113……レジスタ 210……演算レジスタ 211,212……パイプラインレジスタ 213,214,217……パイプラインレジスタ 215……レジスタ 216……ALU 310……マルチプレクサ 311……レジスタ 312……バイト整列回路 313,314……パイプラインレジスタ 410……レジスタ 411……レジスタ 412……条件論理回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フィリップ ヴィヴィアン ローズ イギリス国.エム8 6エルテー マン チェスター,ハイヤー クランプサー ル,ミード ヒル ロード 45 (58)調査した分野(Int.Cl.6,DB名) G06F 9/38

Claims (8)

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

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPH02140831A JPH02140831A (ja) 1990-05-30
JP2810896B2 true 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Families Citing this family (27)

* 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
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
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
EP0650116B1 (en) * 1993-10-21 1998-12-09 Sun Microsystems, Inc. Counterflow pipeline processor
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
US5784028A (en) * 1996-06-27 1998-07-21 Motorola, Inc. Method and apparatus for simplex delivery of signals to obstructed geographical areas
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
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
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
ATE463786T1 (de) * 2004-07-09 2010-04-15 Michael Colin George Chapman Hochleistungsfähiger benutzer-konfigurierbarer prozessor
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2810896B2 (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
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
JP3120152B2 (ja) コンピューターシステム
US4750112A (en) Data processing apparatus and method employing instruction pipelining
KR860001274B1 (ko) 병렬처리용 데이터 처리 시스템
US4587632A (en) Lookahead stack oriented computer
JPH077385B2 (ja) データ処理装置
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
US5905881A (en) Delayed state writes for an instruction processor
US4562538A (en) Microprocessor having decision pointer to process restore position
US5390306A (en) Pipeline processing system and microprocessor using the system
US6732251B2 (en) Register file circuitry
JP2764947B2 (ja) 命令制御方式
JPH07111683B2 (ja) タスク切換機能付プロセッサ
JPH033037A (ja) マイクロプログラム制御方式
JP2755646B2 (ja) データ駆動型データ処理装置
Nordmann Jr ILLIAC III COMPUTER SYSTEM MANUAL: TAXICRINIC PROCESSOR. VOLUME 2. Report No. 475.
JPS6346856B2 (ja)
JPS6112287B2 (ja)
JPH0545983B2 (ja)
JPS63231628A (ja) アドレス演算器
JPH0619709A (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