JP2750311B2 - データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法 - Google Patents

データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法

Info

Publication number
JP2750311B2
JP2750311B2 JP5096440A JP9644093A JP2750311B2 JP 2750311 B2 JP2750311 B2 JP 2750311B2 JP 5096440 A JP5096440 A JP 5096440A JP 9644093 A JP9644093 A JP 9644093A JP 2750311 B2 JP2750311 B2 JP 2750311B2
Authority
JP
Japan
Prior art keywords
pipeline
control word
data
control
execution
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
JP5096440A
Other languages
English (en)
Other versions
JPH0695872A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0695872A publication Critical patent/JPH0695872A/ja
Application granted granted Critical
Publication of JP2750311B2 publication Critical patent/JP2750311B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理装置内のデ
ータ・オペレーション(以下「オペレーション」と略
記)を制御する複数の命令を順次に処理するための命令
パイプラインに係り、更に詳細に説明すれば、この命令
パイプラインを通して複数の命令を選択的に且つ個別的
に経路指定するための手段に係る。
【0002】データ処理装置内のデータ処理速度を改善
する1つの方法は、各プログラム命令を一の命令パイプ
ラインに与えられる一連の制御ワード又はマイクロ命令
(以下「マイクロ命令」と総称)として構成するととも
に、これらのマイクロ命令又はこれらのマイクロ命令に
従った他のデータが命令パイプライン内の一連のパイプ
ライン段を通して順次に進行する際に、それぞれのオペ
レーションを実行することである。このようにすると、
各パイプライン段に1つずつ存在する複数の命令を、同
時に実行することが可能となる。パイプライン・プロセ
ッサの例は、米国特許第4450525号に記述されて
いる。
【0003】マイクロ命令の構成は、データ処理装置ご
とに異なっていることがあるが、各マイクロ命令は、命
令パイプラインを含むデータ処理装置のハードウェアが
使用するような1組の制御フィールドを含んでいるのが
普通である。各制御フィールドは、1つのパイプライン
段にそのマイクロ命令が存在する場合にのみ有効である
という意味で、当該1つのパイプライン段に対し特別に
関係付けられている。特定のマイクロ命令は、1つ又は
全てのパイプライン段に関係する処の、1つ以上の制御
フィールドを含むことがある。
【0004】
【発明が解決しようとする課題】複数のパイプライン段
は、一のパイプライン入口と一のパイプライン出口との
間に直列に接続されている。従って、各マイクロ命令
は、当該マイクロ命令が関係するパイプライン段の数と
は関係なく、全てのパイプライン段を通して直列に進行
するようになっている。このため、複数のマイクロ命令
が、これに関係しない複数のパイプライン段に存在する
場合、即ちこれらのマイクロ命令自体又は他のデータに
ついて如何なるオペレーションも実行されない場合に
は、相当なマシン・サイクル数が浪費されることにな
る。
【0005】従って、本発明の目的は、各マイクロ命令
がこれに関係しないパイプラインに存在するようなマシ
ン・サイクル数を減少させることにより、使用可能なマ
シン・サイクルを有効に使用しうるように構成された、
命令パイプラインを提供することである。
【0006】本発明の他の目的は、各マイクロ命令が選
択されたパイプライン段内にのみ一時的に存在するよう
に、各マイクロ命令を複数のパイプライン段を通して選
択的に且つ個別的に経路指定するための方法を提供する
ことである。
【0007】本発明の他の目的は、各マイクロ命令内に
マッピング・フィールドを設けることにより、当該マイ
クロ命令が関係するオペレーション、従って当該マイク
ロ命令が関係するパイプライン段を識別することであ
る。
【0008】本発明の他の目的は、複数のマイクロ命令
が命令パイプラインを通して進行する際に、特定のパイ
プライン段へのアクセスを競合している複数のマイクロ
命令間の調停を行うための手段を提供することである。
【0009】
【課題を解決するための手段】前記の目的を達成するた
め、データ処理装置内の複数のオペレーションの実行を
制御するための装置が提供される。本発明に従ったこの
装置は、複数のパイプライン段を有する処の、命令パイ
プラインを含んでいる。各パイプライン段は、データ処
理装置内で実行される複数のオペレーションの1つに専
用化されるようになっている。
【0010】一のパイプライン入口は、命令パイプライ
ンへの複数のマイクロ命令を受け取るためのものであ
る。これらのマイクロ命令は、命令パイプラインを通し
て進行する際に、複数のオペレーションの実行を制御す
る。各マイクロ命令は、少なくとも選択された1つのオ
ペレーションに対応する制御情報と、当該選択されたオ
ペレーションの各々を識別するマッピング情報とを含ん
でいる。
【0011】更に、各マイクロ命令は、これが選択され
たオペレーションに専用化されている特定のパイプライ
ン段に存在する場合に、当該選択されたオペレーション
の実行を制御するようになっている。更に、本発明に従
った装置は、各マイクロ命令が任意のパイプライン段に
おいて当該命令パイプラインに入ったりそこから出たり
することができるように、前記パイプライン入口及び一
のパイプライン出口を各パイプライン段に接続するため
の手段を含んでいる。経路指定手段は、各マイクロ命令
のマッピング情報に応じて、当該マイクロ命令を当該命
令パイプラインを通して選択的に且つ個別的に経路指定
する。
【0012】複数のパイプライン段は、選択されたパイ
プライン段を除く他のパイプライン段を各マイクロ命令
がバイパスするように、直列に接続されるのが好まし
い。各パイプライン段は、マッピング情報に基づいて選
択されるようになっている。即ち、各マイクロ命令が特
定のパイプライン段のオペレーションに対応する制御情
報を含む場合にのみ、当該マイクロ命令は、当該特定の
パイプライン段を通して経路指定されるのである。
【0013】各マイクロ命令は、複数のパイプライン段
に1対1に対応する処の、複数のビット位置から成るマ
ッピング・フィールドを有することができる。所定のビ
ット位置に存在する「1」は、当該マイクロ命令が、当
該ビット位置に対応する特定のパイプライン段に関係す
る制御情報を含んでいる、ことを指示する。従って、こ
のマッピング・フィールドは、当該マイクロ命令に関係
する全てのパイプライン段を識別するとともに、これら
の関係するパイプライン段を通してのみ当該マイクロ命
令を経路指定するためのロード・マップを提供するので
ある。
【0014】その結果、命令パイプライン内で使用可能
なマシン・サイクルを一層有効に使用することが可能と
なる。各マイクロ命令は、物理的に最初のパイプライン
段ではなく、当該マイクロ命令がオペレーションを実行
すべき最初のパイプライン段から命令パイプラインに入
ることができる。同様に、各マイクロ命令は、物理的に
最後のパイプライン段ではなく、当該マイクロ命令を実
行すべき最後のパイプライン段から、命令パイプライン
を出ることができる。
【0015】各マイクロ命令は、その実行中に、幾つか
のパイプライン段をバイパスすることができる。この結
果、最初は命令パイプライン内で他の命令に後続してい
た特定の命令は、その実行のために中間のパイプライン
段を使用しないことを条件として、当該他の命令をバイ
パスすることができる。このようにすると、同じ数のマ
シン・サイクル中に、一層多くのマイクロ命令を実行す
ることができるので、データ処理装置の性能を相当に改
善することができる。
【0016】前述のように、マイクロ命令が幾つかのパ
イプライン段をバイパスすると、特定のパイプライン段
に入ろうとしている複数のマイクロ命令間で潜在的な競
合が生ずることがある。従って、かかる競合を解決する
ために、調停論理が設けられる。かくて、本発明に従っ
た命令パイプラインは、従来技術の命令パイプラインが
必要としないような論理手段を必要とする。しかし、こ
の追加の論理手段は、プロセッサ・チップ上に構成する
ことができるから、性能の向上によって正当化されるも
の以上の効果を与える。
【0017】本発明の他の側面は、複数のパイプライン
段を通して各マイクロ命令を経路指定するための方法に
係る。この方法は、 (1)各マイクロ命令ごとに、当該マイクロ命令を実行
すべき関係するパイプライン段を識別するためのステッ
プと、 (2)前記関係するパイプライン段の識別に応答して、
当該マイクロ命令を当該関係するパイプライン段だけを
含む一の経路に沿って選択的に経路指定するためのステ
ップとを含んでいる。
【0018】更に、この方法は、各マイクロ命令が命令
パイプラインを通して進行する際に、当該マイクロ命令
が後続する次のパイプライン段に入る前に、各パイプラ
イン段に関係する制御情報を削除することにより、当該
マイクロ命令を変更するためのステップを含んでいる。
好ましい実施例では、各パイプライン段は、パイプライ
ン段レジスタとして構成されている。このレジスタは、
複数のマルチビット制御フィールドに対応する複数のラ
ッチ位置を有し、そして当該制御フィールドの各々は、
複数のパイプライン段の1つにそれぞれ対応している。
【0019】この文脈において、後続する各パイプライ
ン段レジスタは、先行するパイプライン段の制御フィー
ルドに対応するラッチ位置を持たないように、構成され
ている。その結果、各マイクロ命令が命令パイプライン
を通して進行する際に、もはや有用でない情報を有効に
削除することができる。このように、後続する各パイプ
ライン段レジスタは、次第に減少する数のラッチ位置を
必要とするに過ぎないから、従来技術の命令パイプライ
ンと比較すると、本発明に従った論理(ハードウェア)
及び物理的空間の要件が減少することになる。
【0020】このように、本発明によれば、各マイクロ
命令は、そのオペレーションを制御すべき特定のパイプ
ライン段にのみ選択的に経路指定されるようになってい
るから、命令パイプラインの効率を著しく向上させるこ
とができるのである。
【0021】
【実施例】図1には、ビット・コード化されたデータに
ついて種々のオペレーションを実行し且つその結果を記
憶するための、データ処理装置16が示されている。こ
のデータ処理装置16は、プロセッサ18、主メモリ2
0、プロセッサ18及び主メモリ20を接続するインタ
フェース22を含んでいる。データ線24はプロセッサ
18をインタフェース22に接続し、データ線26はイ
ンタフェース22を主メモリ20に接続する。
【0022】プロセッサ18は、アセンブリ・レベルの
プログラム命令を順次に実行して、それぞれのオペレー
ション(例えば、格納、加算及び移動等の算術論理演
算)を遂行する。そのため、プロセッサ18は、アセン
ブリ・レベルの各プログラム命令を、ハードウェアを制
御する一層簡単な複数の水平マイクロ命令(以下「マイ
クロ命令」と略記)に分解するための、水平マイクロコ
ードを使用する。
【0023】プロセッサ18は、この水平マイクロコー
ドを保持する制御メモリ28と、制御メモリ出力レジス
タ30を含んでいる。更に、プロセッサ18は、オペレ
ーションを遂行するための演算論理32と、主メモリ2
0とデータを授受するためのI/Oインタフェース34
を含んでいる。
【0024】図2には、演算論理32のハードウェア構
成要素と、これらの構成要素間のデータ流の諸経路が示
されている。主メモリ20からのデータは、I/Oイン
タフェース34及び経路36を介して、種々の宛先に供
給することができる。これらの宛先には、レジスタ44
及び46を通して演算ユニット42に接続されたマルチ
プレクサ38及び40と、プログラム・カウンタ48
と、命令アセンブリ・バッファ50と、1組の汎用レジ
スタ54にその出力を供給する汎用レジスタ・マルチプ
レクサ52が含まれている。また、I/Oインタフェー
ス34は、データを状況レジスタ56及び条件コード
(CC)レジスタ58に供給することができる。
【0025】デコーダ60は、命令アセンブリ・バッフ
ァ50の出力を受け取り、この出力を複数のマイクロ命
令に分解する。これらのマイクロ命令は、命令パイプラ
イン62に供給され、その1つ以上のパイプライン段を
通して順次に進行しつつ、プロセッサ18内で実行され
る複数のオペレーションを制御する。
【0026】命令パイプライン62からの出力は、マル
チプレクサ38及び40と、第1のアドレス・マルチプ
レクサ64と、実効アドレス加算器66に供給すること
ができる。実効アドレス加算器66は、その出力をマル
チプレクサ67を介してレジスタ68に供給し、レジス
タ68からその出力をメモリ・データ・マルチプレクサ
70、I/Oインタフェース34、プログラム・カウン
タ48及び汎用レジスタ・マルチプレクサ52に供給す
ることができる。
【0027】演算ユニット42の出力は、レジスタ72
からメモリ・データ・マルチプレクサ70に、汎用レジ
スタ・マルチプレクサ52に、そして状況レジスタ56
及び条件コード・レジスタ58に供給することができ
る。1組の汎用レジスタ54の出力は、マルチプレクサ
38及び40と、第1及び第2のアドレス・マルチプレ
クサ64及び74と、その出力を減分/増分ユニット7
8に供給するマルチプレクサ76とに使用可能である。
【0028】減分/増分ユニット78は、その出力を第
2のアドレス・マルチプレクサ74及び汎用レジスタ・
マルチプレクサ52に供給することができる。従って、
図2の複数の構成要素間でデータを転送するために、複
数の経路が使用可能である。しかし、実際のデータ転送
は、全ての使用可能な経路に沿って見境なく発生するも
のではなく、後述のようにマイクロ命令によって制御さ
れる。
【0029】図3には、命令パイプライン62を進行す
る各マイクロ命令の流れが示されている。命令パイプラ
イン62は、その4つのパイプライン段として、アドレ
ス生成段80と、オペランド・ロード段82と、実行段
84と、結果格納段86を含んでいる。デコーダ60
は、命令パイプライン62への全てのマイクロ命令のた
めの入口を与える。
【0030】命令パイプライン62から出る全てのデー
タは、命令パイプライン出力の可能な宛先(前出)のう
ち1つ以上の宛先に送られる。参照番号88は、命令パ
イプライン62の出口を示している。但し、この出口8
8は、実際のハードウェア構成要素を表すものではな
い。むしろ、この出口88は、1つ以上のパイプライン
段に沿って該当するオペレーションを遂行するという所
期の目的を達成した後、それぞれのマイクロ命令がもは
や必要とされなくなって、命令パイプライン62から出
るような点を象徴的に示しているに過ぎない。
【0031】全てのマイクロ命令は、命令パイプライン
62を通して、同一の方向に(図3の下側に向かって)
進行する。しかし、このことは、各マイクロ命令が各パ
イプライン段を占有するという意味ではなく、従って全
てのマイクロ命令が順次に進行することを意味するもの
でもない。むしろ、複数のパイプライン段を相互に接続
する複数の相互接続経路90が、1〜4つのパイプライ
ン段の使用可能な組み合わせに基づき、命令パイプライ
ン62を通して15種類の経路を提供するようになって
いる。
【0032】本発明の1つの特徴は、複数のパイプライ
ン段、パイプライン入口及びパイプライン出口を相互接
続することにより、命令パイプライン62を通して種々
の経路を供給することである。一般に、互いに異なるn
個のパイプライン段から成る命令パイプラインについ
て、このような相互接続を行うと、当該命令パイプライ
ンを通して、2n−1個の潜在的な経路を提供すること
ができる。
【0033】各マイクロ命令は、どのパイプライン段か
らでも命令パイプライン62に入ることができ、どのパ
イプライン段からでも命令パイプライン62を出ること
ができ、また命令パイプライン62を通して進行する際
に、1つ以上のパイプライン段をバイパスすることがで
きる。図6を参照して後述するように、各マイクロ命令
内の情報は、命令パイプライン62を通して当該マイク
ロ命令が通過する特定の経路を予め決定する。
【0034】相互接続経路90は、マイクロ命令用の複
数の代替経路を提供するが、これを使用する場合には、
特定のパイプライン段へのアクセスを競合する複数のマ
イクロ命令間の調停を行うことが必要となる。かかる調
停の必要性は、デコーダ60並びに先行するパイプライ
ン段80、82及び84のうち任意のものからマイクロ
命令を受け取るように構成されている処の、結果格納段
86において最も顕著となる。
【0035】図4には、一の調停スキームを実現した調
停論理122と、複数のパイプライン段と、相互接続経
路90が示されている。同図において、各パイプライン
段は、一のパイプライン段レジスタを含んでいる。詳述
すると、命令パイプライン62は、アドレス生成レジス
タ92、オペランド・ロード・レジスタ94、実行レジ
スタ96及び結果格納レジスタ98の、4つのパイプラ
イン段レジスタを含んでいる。各パイプライン段レジス
タは、各マイクロ命令内の個別的な複数のビット又はフ
ィールドに対応する処の、個別的な複数のビット位置及
び複数のマルチビット制御フィールドを有するから、各
マイクロ命令は、命令パイプライン62を通して進行す
る際に、1つ以上のパイプライン段レジスタを一時的に
且つ排他的に占有することができる。
【0036】アドレス生成レジスタ92は、マッピング
・フィールド100と、条件コード・ビット102と、
有効ビット104と、命令従属フィールド106と、4
つの制御フィールド108〜114を含んでいる。制御
フィールド108〜114の各々は、他のパイプライン
段と同様に、各マイクロ命令が命令パイプライン62を
通して進行する際に、特定の型のオペレーションに専用
化されるようになっている。
【0037】例えば、制御フィールド108は、アドレ
ス生成に関係する各マイクロ命令の特定のフィールドの
みを記憶する。もし、特定のマイクロ命令が複数のアド
レス生成フィールドを含んでいれば、制御フィールド1
08内に、複数のかかるフィールドを設けることができ
る。
【0038】同様に、アドレス生成レジスタ92内の残
りのフィールドも、1つの型のフィールドに制限される
ようになっているが、必要に応じて、その型の複数のフ
ィールドを収容するように適応させることができる。残
りのパイプライン段レジスタ94〜98も、アドレス生
成レジスタ92と同様の複数のフィールド及びビット位
置を有しているが、その構成及び機能は、図11を参照
して後述するように互いに異なっている。
【0039】複数のパイプライン段レジスタを相互接続
するための手段は、パイプライン・マルチプレクサ11
6、118及び120を含んでいる。各パイプライン・
マルチプレクサは、互いに隣接する1対のパイプライン
段レジスタの間にそれぞれ設けられている。各パイプラ
イン・マルチプレクサは、デコーダ60及び先行する各
パイプライン段レジスタからの入力を受け取り、その出
力を後続するパイプライン段レジスタに供給したり、
「出口」88によって概略的に示されているように、命
令パイプライン62の外部に直接的に供給する。
【0040】各パイプライン・マルチプレクサは、その
1つの入力だけを次の後続パイプライン段に供給するよ
うに、選択的に切り替えられる。例えば、パイプライン
・マルチプレクサ118は、デコーダ60、アドレス生
成レジスタ92又はオペランド・ロード・レジスタ94
の何れかを、実行レジスタ96に選択的に結合する。
【0041】各パイプライン・マルチプレクサの切替
は、各マイクロ命令内の情報に従って、調停論理122
によって制御されるようになっている。調停論理122
は、その複数の入力を、デコーダ60及び各パイプライ
ン段レジスタから受け取る。調停論理122は、これら
の入力に応じて、複数のパイプライン段レジスタに対
し、ラッチ・データ出力を発生する。また、調停論理1
22は、パイプライン段レジスタ94〜98にロードす
るパイプライン・マルチプレクサ116〜120に対
し、制御信号を供給する。
【0042】調停論理122は、図5の流れ図に従っ
て、複数のパイプライン段レジスタに対する競合を解決
する。
【0043】もし、命令パイプライン62が空であれ
ば、選択されたパイプライン段レジスタに、一のマイク
ロ命令が直ちに供給される。他方、命令パイプライン6
2が空でなければ、入力すべきマイクロ命令が、命令パ
イプライン62に現に存在する処の先行する任意のマイ
クロ命令に対する従属性を有するか否かを決定する。
【0044】言い換えれば、入力すべきマイクロ命令
が、現に実行中の任意のマイクロ命令からの結果に従属
するか否かについて、質問が行われるのである。具体的
には、パイプライン段レジスタ92〜98の各々を検査
して、当該パイプライン段レジスタに現に存在するマイ
クロ命令が、当該パイプライン段レジスタの内容を変更
したか否かを検知するのである。
【0045】例えば、図3のアドレス生成段80(図4
のアドレス生成レジスタ92)から命令パイプライン6
2に入る一のマイクロ命令が、一のアドレスを計算する
ために、1組の汎用レジスタ54の中から特定の汎用レ
ジスタを使用するように予定されているものと仮定す
る。また、実行段84(実行レジスタ96)に現に存在
する処の先行マイクロ命令が、前記特定の汎用レジスタ
へのデータの格納を必要とするものと仮定する。このよ
うな場合には、入力すべきマイクロ命令は、実行レジス
タ96に現に存在する先行マイクロ命令のオペレーショ
ンが完了するまで、アドレス生成レジスタ92にロード
されない。
【0046】先行マイクロ命令のオペレーションが完了
するか、又は前述の従属性が検知されない場合には、選
択されたパイプライン段レジスタを走査して、当該パイ
プライン段レジスタが次のマシン・サイクルの間に使用
可能であるか否か、即ち命令パイプライン62に現に存
在する他の如何なるマイクロ命令も、次のマシン・サイ
クルの間に当該選択されたパイプライン段レジスタに入
力すべきものとしてスケジュールされていないか否かを
決定する。
【0047】この選択されたパイプライン段レジスタが
使用可能であるという指示が得られる場合は、入力すべ
きマイクロ命令をこのパイプライン段に入力する際に、
当該マイクロ命令が、命令パイプライン62に現に存在
する任意の先行マイクロ命令をバイパスするか否かを決
定することが必要となる。他方、この選択されたパイプ
ライン段レジスタが使用可能であるという指示が得られ
ない場合には、入力すべきマイクロ命令は、直ちに適当
なパイプライン段レジスタにロードされる。
【0048】しかし、入力すべきマイクロ命令を適当な
パイプライン段に入力する際に、当該マイクロ命令が、
任意の先行マイクロ命令をバイパスするのであれば、追
加の決定を行うことが必要となる。即ち、このマイクロ
命令が、任意の先行マイクロ命令をバイパスする際に、
かかる先行マイクロ命令が使用した、又はこれから使用
すべき条件を変更するか否かを、決定することが必要と
なる。
【0049】この点を簡述するため、ここで、一のマイ
クロ命令が、図2のレジスタ72からのデータを格納す
るため、結果格納段86(結果格納レジスタ98)にお
いて命令パイプライン62に入ろうとしているものと仮
定する。また、オペランド・ロード段82(オペランド
・ロード・レジスタ94)に現に存在している一の先行
マイクロ命令が、次には実行段84に進行して、レジス
タ72の内容を変更するようなオペレーションを実行す
るものと仮定する。
【0050】このような場合には、入力すべきマイクロ
命令は、この先行マイクロ命令が実行段84においてそ
のオペレーションを完了するまで、結果格納段86にロ
ードされない。言い換えれば、入力すべきマイクロ命令
は、先行マイクロ命令がそのオペレーションを完了する
ことを条件として、結果格納段86にロードされること
になる。
【0051】調停論理122は、例えば、結果格納レジ
スタ98へのアクセスを競合している処の、デコーダ6
0及び先行パイプライン段レジスタからのマイクロ命令
間の衝突を回避するように、これらの競合を解決する。
詳述すると、実行レジスタ96からのマイクロ命令は、
パイプライン・マルチプレクサ120に対する他の入力
よりも有利に取り扱われ、その後はオペランド・ロード
・レジスタ94の出力、アドレス生成レジスタ92の出
力及びデコーダ60の出力が順次に続くようになってい
る、ということである。
【0052】図6に示されているマイクロ命令124
は、パイプライン段レジスタ内の複数のビット位置及び
複数のフィールドに対応する処の、複数のビット及び複
数のフィールドを含んでいる。マイクロ命令124のマ
ッピング・フィールド126は4つのビット位置を含ん
でおり、図6において、これらのビット位置はA、O、
X及びSとそれぞれ表記されている。条件コード・ビッ
ト128は、マッピング・フィールド106と複数の制
御フィールドとの間に設けられている。
【0053】説明の便宜上、図6には、パイプライン段
レジスタ92〜98の各々にそれぞれ関連する処の、単
一の制御フィールドとして、アドレス生成(A)制御フ
ィールド130、オペランド・ロード(O)制御フィー
ルド132、実行(X)制御フィールド134及び結果
格納(S)制御フィールド136が示されている。ま
た、プログラム・カウンタ(PC)フィールド135、
即値アドレス(ImA)フィールド137及び即値デー
タ(ImD)フィールド139も示されている。更に
は、マイクロ命令124は、パイプライン段の有効ビッ
ト138も含んでいる。
【0054】マッピング・フィールド126は、如何な
る型の制御フィールドがマイクロ命令124に存在する
かを指示するという意味で、前述の制御フィールド13
0〜136に関係している。例えば、マッピング・フィ
ールド126内のビット位置「A」に「1」が存在する
と、このマイクロ命令124が少くとも1つのアドレス
生成制御フィールド130を含むことを指示する。従っ
て、このマイクロ命令124は、命令パイプライン62
を通して進行する際に、データのアドレス計算オペレー
ションを制御するように予定されていることになる。
【0055】他の例として、マッピング・フィールド1
26内のビット位置「X」に「0」が存在すると、この
マイクロ命令124が如何なる実行制御フィールド13
4も有していないことを指示する。かくて、このマイク
ロ命令124は、命令パイプライン62を通して進行す
る際に、データについての実行機能を全く制御しないよ
うに予定されていることになる。このため、このマイク
ロ命令124は、実行段84には入らない。
【0056】各マイクロ命令124のマッピング・フィ
ールド126は、命令パイプライン62を通して進行す
る際に当該マイクロ命令が占有する処の特定のパイプラ
イン段を予定することによって、当該マイクロ命令を経
路指定するものである。例えば、マッピング・フィール
ド126内の値「1111」は、当該マイクロ命令が4
つのパイプライン段の全てを直列に通るように経路指定
する。他方、マッピング・フィールド126内の値「1
001」は、当該マイクロ命令がアドレス生成段20及
び結果格納段86のみを通るように経路指定する。
【0057】データについて行われる幾つかの機能は、
4つの型の全てのオペレーションを必要とするが、その
他の多数の機能はそうではない。後者の機能について
は、各マイクロ命令を「使用する」パイプライン段だけ
を通して当該マイクロ命令の選択的な経路指定を行うこ
とにより、命令パイプライン62の効率を実質的に改善
することができる。
【0058】このようにすると、従来技術に比較して一
層少ない数のマシン・サイクルでそれぞれのマイクロ命
令を命令パイプライン62を通して進行させることがで
き、それによって節約されたマシン・サイクルを他のマ
イクロ命令を受け入れるのに使用することができるから
である。この選択的な経路指定を実現するには、マッピ
ング・フィールド126内の諸ビットに対するハードウ
ェア応答だけが必要となるに過ぎないから、処理時間が
実質的に増えることはない。
【0059】図7〜図10には、マイクロ命令124内
の複数の制御フィールド130〜136が図2のハード
ウェアに対しどのように関係するかを容易に理解できる
ように、これらの制御フィールドが一層詳細に示されて
いる。アドレス生成制御フィールド130は、第1及び
第2のアドレス・マルチプレクサ64及び74に関連す
る処の、2つのマルチプレクサ・サブフィールド140
及び142を含んでいる。
【0060】詳述すると、図7のサブフィールド140
の内容は、図2の潜在的な複数のデータ・ソースの中か
ら特定のデータ・ソースを決定するとともに、第1のア
ドレス・マルチプレクサ64に対しゼロを強制するため
の代替的なデータ・ソースを提供する。サブフィールド
140内の5つのビット位置を使用すると、第1のアド
レス・マルチプレクサ64に対する潜在的な32個のデ
ータ・ソースの中から1つのデータ・ソースを選択する
ことができる。
【0061】例えば、サブフィールド140内の値「0
0000」は、全ゼロを第1のアドレス・マルチプレク
サ64に強制し、またサブフィールド140内の値「1
1000」は、1組の汎用レジスタ54のうち1つの汎
用レジスタを選択して、当該選択した汎用レジスタから
のアドレス値を第1のアドレス・マルチプレクサ64に
供給する。同様に、サブフィールド42内の値は、第2
のアドレス・マルチプレクサ74に供給されるデータの
ソースを決定する。
【0062】サブフィールド「W」及び「D」は、第2
のアドレス・マルチプレクサ74に供給されるデータ・
ワードの長さ(ビット数)と、当該マイクロ命令124
の即値アドレス・フィールド137の内容が第2のアド
レス・マルチプレクサ74の入力に加えられるか否かを
それぞれ決定する。
【0063】最後に、メモリ宛先サブフィールド144
内の値は、マルチプレクサ67を制御する。一般に、実
効アドレス加算器66の出力は、結果格納段86から図
1の主メモリ20へのデータの宛先を指定する処の、計
算されたメモリ・アドレスである。また、この出力は、
I/Oインタフェース34を介して経路36に供給され
る処の、データのメモリ・アドレスを決定する。
【0064】しかし、実効アドレス加算器66の出力
は、他の宛先に対し(例えば、ロードのためにプログラ
ム・カウンタ48に対し、汎用レジスタ・マルチプレク
サ52を通して汎用レジスタ54の1つに対し、又はこ
のこのメモリ・アドレスによって識別されるデータをI
/Oインタフェース34を介して主メモリ20に格納す
るためにマルチプレクサ67に対し)供給することがで
きる。
【0065】図8に示されているオペランド・ロード制
御フィールド132のサブフィールド146は、マルチ
プレクサ38に供給されるデータのソースを決定し、サ
ブフィールド148は、マルチプレクサ40に供給され
るデータのソースを決定し、サブフィールド150は、
主メモリ20からI/Oインタフェース34を介して経
路36に送られるデータの宛先を決定する。
【0066】宛先について説明すると、マルチプレクサ
38からのデータの宛先はレジスタ44であり、マルチ
プレクサ40からのデータの宛先はレジスタ46であ
る。サブフィールド150内の値に基づいて、主メモリ
20からのデータは、状況レジスタ56、条件コード・
レジスタ58、又は汎用レジスタ・マルチプレクサ52
を介して汎用レジスタ54の1つに供給することができ
る。演算ユニット42は、レジスタ44及び46から入
力オペランドを受け取る。従って、実行制御フィールド
134については、データ・ソースを決定するためのフ
ィールドは必要ない。
【0067】図9に示されている実行制御フィールド1
34内の機能サブフィールド152は、レジスタ44及
び46から受け取られた入力オペランドについて演算ユ
ニット42が実行すべき1つの機能を、実行可能な複数
の機能の中から選択するための5ビットを含んでいる。
これらの可能な機能には、例えば、両入力オペランドを
加算したり、一方の入力オペランドを他方の入力オペラ
ンドから減算したり、「論理積」、「論理和」又は「排
他的論理和」のような論理機能を実行したり、レジスタ
の内容を予定の量だけシフトしたり、全ゼロを出力する
機能が含まれている。
【0068】図9に示されているデータ型サブフィール
ド154及び長さサブフィールド156は、(1)デー
タが論理値、算術値又は2進化10進数値の何れである
か、(2)当該オペレーションが1バイト、2バイト又
は4バイトの何れについて行われるか、をそれぞれ決定
する。
【0069】宛先サブフィールド158内の値は、演算
ユニット42の出力の宛先を決定する。この出力の可能
な宛先には、汎用レジスタ54の1つ、状況レジスタ5
6、条件コード・レジスタ58及び主メモリ20の保持
用ラッチであるレジスタ72が含まれている。
【0070】図10には、図6の結果格納制御フィール
ド136が詳細に示されている。そのデータ・ソース・
サブフィールド160は、格納データのソース(例え
ば、レジスタ68、レジスタ72又は全ゼロの強制格納
の何れか)を決定する。長さサブフィールド162は、
格納データの長さ(1バイト、2バイト又は4バイト)
を決定する。
【0071】制御フィールド130〜136の各々は、
関係するパイプライン段内にある場合にのみ有効であ
る。例えば、アドレス生成制御フィールド130は、そ
のマイクロ命令124がアドレス生成レジスタ92に存
在する間に、実効アドレスの計算を制御する。しかし、
このマイクロ命令124が他の制御フィールドを含んで
おり、従って後続のパイプライン段レジスタ内に一時的
に存在するとしても、そのアドレス生成制御フィールド
130は、後続のパイプライン段レジスタの何れにおい
ても有用な目的のために使用されないのである。
【0072】従って、後続の各パイプライン段レジスタ
は、命令パイプライン62の先行するパイプライン段で
使用され且つ当該パイプライン段に特有の情報について
は、これを保持するためのビット位置を有さないように
構成されるのである。図11に示されているように、か
かるパイプライン段に特有の情報は、それぞれの制御フ
ィールド(図6の130〜136)だけではなく、マッ
ピング・フィールド(図6の126)も含んでいるが、
このマッピング・フィールド内の各ビット位置は、これ
に関係するパイプライン段の後に削除されることにな
る。即ち、各マイクロ命令が命令パイプライン62を通
して進行する際に、もはやオペレーションを制御するの
に有用ではなくなった複数のビット及び複数のフィール
ドを当該マイクロ命令から削除するように、選択された
ビット位置及びフィールドが、後続のパイプライン段レ
ジスタから除去されるのである。
【0073】図12には、アセンブリ・レベルのプログ
ラム命令によって制御メモリ・アレイ168をアドレス
するようにした、代替的な構成を有する命令パイプライ
ン166が示されている。制御メモリ・アレイ168
は、デコーダ60の代わりに、パイプライン入口を提供
する。命令パイプライン166は、複数のパイプライン
段から成り、図12には、そのうちの3つのパイプライ
ン段170、172及び174(第N段に相当)が示さ
れている。
【0074】マルチプレクサ176及び178は、これ
らのパイプライン段を、パイプライン「出口」180と
相互接続する。デコーダ60を使用する場合と比較する
と、制御メモリ・アレイ168を使用する場合には、処
理速度は低下するが、広範囲の計算機アーキテクチャと
の互換性を維持することが容易になるという意味で、フ
レキシビリティを一層大きくすることができる。
【0075】パイプライン段170は、ビット位置1〜
Nから成るマッピング・フィールド182と、制御フィ
ールド1〜Nと、パイプライン段の有効ビット位置Vを
含んでいる。後続のパイプライン段は、本発明に従った
情報削除の特徴を例示している。特に、最後のパイプラ
イン段174は、単一ビットのマッピング・フィールド
Nと、「フィールドN」と表記された単一の制御フィー
ルドと、パイプライン段の有効ビット位置を有するに過
ぎない。
【0076】右向きの矢印は、制御メモリ・アレイ16
8からその関連するマルチプレクサへ加わる入力を表
し、左向きの矢印は、先行するパイプライン段からこの
マルチプレクサに加わる入力を表す。各マイクロ命令を
命令パイプライン166を通して経路指定する際に、1
つ以上のパイプライン段の全ての組み合わせが使用可能
となる。
【0077】かくて、本発明に従った命令パイプライン
は、当該命令パイプラインに存在すべき各マイクロ命令
について必要となるマシン・サイクルの数を減少させる
ことによって、使用可能なマシン・サイクルを効率的に
使用するように構成されている。
【0078】それぞれのマイクロ命令は、命令パイプラ
インを通して、選択的に経路指定されようになってい
る。言い換えれば、各マイクロ命令は、そのオペレーシ
ョン制御フィールド内の情報に基づいて、選択されたパ
イプライン段にのみ存在するのである。各マイクロ命令
内のマッピング・フィールドは、当該マイクロ命令が命
令パイプラインを通して進行する際に、実行すべき特定
のオペレーションの識別を容易にする。
【0079】最後に、調停論理は、一のパイプライン段
へのアクセスを競合している複数のマイクロ命令間の衝
突を回避するとともに、先行するマイクロ命令と後続す
るマイクロ命令との間に如何なる従属性も存在せず且つ
これらのマイクロ命令の実行順序が逆になってもエラー
が生じない場合にのみ、後続するマイクロ命令が先行す
るマイクロ命令をスキップできることを保証する。
【0080】
【発明の効果】以上のように、本発明によれば、命令パ
イプラインに存在すべき各マイクロ命令について必要と
なるマシン・サイクルの数が減少するので、使用可能な
マシン・サイクルを効率的に使用することができる。
【図面の簡単な説明】
【図1】プロセッサ、主メモリ、プロセッサ及び主メモ
リの間のインタフェースを含んでいる、データ処理装置
の概略図である。
【図2】命令パイプラインを含んでいる、プロセッサの
諸構成要素を示すブロック図である。
【図3】命令パイプライン内のデータ流を示す概略図で
ある。
【図4】調停論理を含んでいる、命令パイプラインの概
略図である。
【図5】調停論理の動作の流れ図である。
【図6】命令パイプライン内で使用するマイクロ命令の
フォーマットを示す図である。
【図7】マイクロ命令の諸フィールドを示す図である。
【図8】マイクロ命令の諸フィールドを示す図である。
【図9】マイクロ命令の諸フィールドを示す図である。
【図10】マイクロ命令の諸フィールドを示す図であ
る。
【図11】各パイプライン段レジスタの概略図である。
【図12】図4のデコーダの代わりに制御メモリ・アレ
イを使用する、代替的な命令パイプラインの概略図であ
る。
【符号の説明】
58 条件コード・レジスタ 60 デコーダ 62 命令パイプライン 80 アドレス生成段 82 オペランド・ロード段 84 実行段 86 結果格納段 88 出口 90 相互接続経路 92 アドレス生成レジスタ 94 オペランド・ロード・レジスタ 96 実行レジスタ 98 結果格納レジスタ 122 調停論理 124 マイクロ命令 130 アドレス生成制御フィールド 132 オペランド・ロード制御フィールド 134 実行制御フィールド 136 結果格納制御フィールド 166 命令パイプライン 168 制御メモリ・アレイ 170 パイプライン段 172 パイプライン段 174 パイプライン段
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ガリイ・パール・マックラナハン アメリカ合衆国55901、ミネソタ州、ロ ッチェスタ、アパート第214、41エス・ ティー・ストリート・エヌ・ダヴリュ ー、936番地 (72)発明者 ミッチェル・レイモンド・トロムブレイ アメリカ合衆国55902、ミネソタ州、ロ ッチェスタ、ミードウ・ラン・ドライ ブ・エス・ダヴリュー、109番地 審査官 丹治 彰 (56)参考文献 特開 昭58−106641(JP,A) 特開 昭57−30042(JP,A) 特開 平4−175928(JP,A)

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 直列に接続された複数のパイプライン段
    を含み、当該パイプライン段の各々が、データ処理装置
    内で実行される複数のデータ・オペレーションのうち1
    つのデータ・オペレーションにそれぞれ専用化されてい
    る、命令パイプラインと、 複数の制御ワードが前記命令パイプラインを通して進行
    する際に、前記複数のデータ・オペレーションの実行を
    制御するように、前記命令パイプラインに入力すべき当
    該複数の制御ワードを受け取るためのパイプライン入口
    とを備え、 各制御ワードは、前記複数のデータ・オペレーションの
    うち少なくとも1つの選択されたデータ・オペレーショ
    ンに専用化されている制御情報と、当該制御情報が専用
    化されている処の選択されたデータ・オペレーションの
    各々を指示するマッピング情報とを含んでおり、 各制御ワードは、前記選択されたオペレーションに専用
    化されている特定のパイプライン段内に当該制御ワード
    が存在する場合に、当該選択されたオペレーションの実
    行を制御するように編成されており、 更に、各制御ワードが前記命令パイプラインを通して進
    行する際に、当該制御ワードが前記複数のパイプライン
    段のうち選択されたパイプライン段だけを占有するよう
    に、前記パイプライン入口及び一のパイプライン出口を
    前記複数のパイプライン段の各々にそれぞれ結合するた
    めの接続手段と、 各制御ワードを、当該制御ワードの前記マッピング情報
    に応じて選択されたパイプライン段だけを介して、前記
    命令パイプラインを通して選択的に且つ個別的に経路指
    定するための制御ワード経路指定手段とを備えたことを
    特徴とする、データ処理装置内のデータ・オペレーショ
    ンの実行を制御する装置。
  2. 【請求項2】 各制御ワードのための前記選択されたパ
    イプライン段が、当該制御ワードの前記マッピング情報
    で識別されたデータ・オペレーションに専用化されてい
    るパイプライン段であることを特徴とする、請求項1記
    載のデータ処理装置内のデータ・オペレーションの実行
    を制御する装置。
  3. 【請求項3】 各制御ワードの前記制御情報が、複数の
    マルチビット・フィールドのうち少なくとも1つのマル
    チビット・フィールドに存在し、当該マルチビット・フ
    ィールドの各々が、前記複数のパイプライン段のうち1
    つのパイプライン段においてのみ有効であることを特徴
    とする、請求項1記載のデータ処理装置内のデータ・オ
    ペレーションの実行を制御する装置。
  4. 【請求項4】 各制御ワードの前記マッピング情報が、
    当該制御ワードのマッピング・フィールドに存在し、当
    該マッピング・フィールドが、前記複数のパイプライン
    段の各々に対応する1つのビット位置をそれぞれ含んで
    いることを特徴とする、請求項1記載のデータ処理装置
    内のデータ・オペレーションの実行を制御する装置。
  5. 【請求項5】 前記複数のパイプライン段のうち同一の
    パイプライン段に入ろうとしている複数の制御ワード間
    の競合を解決するための調停手段を備えたことを特徴と
    する、請求項1記載のデータ処理装置内のデータ・オペ
    レーションの実行を制御する装置。
  6. 【請求項6】 各制御ワードが、当該制御ワードのため
    の前記選択されたパイプライン段内にある場合にのみ有
    効であることを指示するための有効ビットを含んでいる
    ことを特徴とする、請求項1記載のデータ処理装置内の
    データ・オペレーションの実行を制御する装置。
  7. 【請求項7】 各制御ワードが、前記命令パイプライン
    を通して進行する際に、当該制御ワードが前記データ処
    理装置内の条件コード・レジスタの内容を変更するか否
    かを指示するための条件コード・ビットを含んでいるこ
    とを特徴とする、請求項1記載のデータ処理装置内のデ
    ータ・オペレーションの実行を制御する装置。
  8. 【請求項8】 直列に接続された複数のパイプライン段
    を有する命令パイプラインを備え、当該パイプライン段
    の各々がデータ処理装置内で実行される複数のデータ・
    オペレーションのうち1つのデータ・オペレーションに
    それぞれ専用化され、複数の制御ワードが前記命令パイ
    プラインを通して進行する際に、当該複数の制御ワード
    によって前記複数のデータ・オペレーションが制御され
    るようにしたデータ処理装置において、 各制御ワードごとに、前記複数のデータ・オペレーショ
    ンの中から、当該制御ワード内のマッピング情報が指示
    する1つのデータ・オペレーションを当該制御ワード内
    の制御情報によって制御すべき選択されたデータ・オペ
    レーションとして決定するステップと、 各制御ワードが前記命令パイプラインを通して進行する
    際に、当該制御ワード内の前記制御情報によって制御す
    べき前記選択されたデータ・オペレーションに専用化さ
    れている特定のパイプライン段だけを占有するように、
    前記決定するステップに応答して、各制御ワードを前記
    命令パイプラインを通して選択的に且つ個別的に経路指
    定するステップとから成ることを特徴とする、データ処
    理装置内のデータ・オペレーションの実行を制御する方
    法。
  9. 【請求項9】 各制御ワードごとに、当該制御ワードが
    前記命令パイプライン内に既に存在する現に実行中の先
    行する制御ワードの結果に依存するか否かを決定すると
    ともに、もしそうであれば、当該先行する制御ワードの
    実行が完了するまで、当該制御ワードの経路指定を遅延
    させるステップから成ることを特徴とする、請求項8記
    載のデータ処理装置内のデータ・オペレーションの実行
    を制御する方法。
  10. 【請求項10】 各制御ワードごとに、前記経路指定す
    るステップの結果として、当該制御ワードが前記命令パ
    イプライン内に既に存在する現に実行中の制御ワードを
    バイパスすることになるか否かを決定し、 もしそうであれば、当該制御ワードが現に実行中の制御
    ワードをバイパスする場合に、当該制御ワードが現に実
    行中の制御ワードの条件を変更することになるか否かを
    決定し、 もしそうであれば、現に実行中の制御ワードがその実行
    を完了するまで、当該制御ワードの経路指定を遅延させ
    ることにより、前記バイパスを遅延させるか又は禁止す
    るステップから成ることを特徴とする、請求項8記載の
    データ処理装置内のデータ・オペレーションの実行を制
    御する方法。
JP5096440A 1992-05-06 1993-04-01 データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法 Expired - Lifetime JP2750311B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US879651 1992-05-06
US07/879,651 US5471626A (en) 1992-05-06 1992-05-06 Variable stage entry/exit instruction pipeline

Publications (2)

Publication Number Publication Date
JPH0695872A JPH0695872A (ja) 1994-04-08
JP2750311B2 true JP2750311B2 (ja) 1998-05-13

Family

ID=25374593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5096440A Expired - Lifetime JP2750311B2 (ja) 1992-05-06 1993-04-01 データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法

Country Status (3)

Country Link
US (1) US5471626A (ja)
EP (1) EP0569312A3 (ja)
JP (1) JP2750311B2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576749B1 (en) 1992-06-30 1999-06-02 Discovision Associates Data pipeline system
FR2737589B1 (fr) * 1995-07-31 1997-09-12 Suisse Electronique Microtech Systeme d'organisation et procede de sequencement des circuits d'un microprocesseur
JP2798121B2 (ja) * 1995-08-04 1998-09-17 日本電気株式会社 データ処理装置
EP0798633B1 (en) * 1996-03-29 2005-06-08 Matsushita Electric Industrial Co., Ltd. Data processor having a variable number of pipeline stages
US5778248A (en) * 1996-06-17 1998-07-07 Sun Microsystems, Inc. Fast microprocessor stage bypass logic enable
US5930492A (en) * 1997-03-19 1999-07-27 Advanced Micro Devices, Inc. Rapid pipeline control using a control word and a steering word
US5970241A (en) * 1997-11-19 1999-10-19 Texas Instruments Incorporated Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
DE19756591B4 (de) * 1997-12-18 2004-03-04 Sp3D Chip Design Gmbh Vorrichtung zum hierarchischen Verbinden einer Mehrzahl von Funktionseinheiten in einem Prozessor
US6112294A (en) * 1998-07-09 2000-08-29 Advanced Micro Devices, Inc. Concurrent execution of multiple instructions in cyclic counter based logic component operation stages
JP3776644B2 (ja) * 1999-10-05 2006-05-17 富士通株式会社 パイプライン演算装置、情報処理装置およびパイプライン演算装置の演算方法
US6851044B1 (en) * 2000-02-16 2005-02-01 Koninklijke Philips Electronics N.V. System and method for eliminating write backs with buffer for exception processing
US7496734B1 (en) * 2000-04-28 2009-02-24 Stmicroelectronics, Inc. System and method for handling register dependency in a stack-based pipelined processor
EP1199629A1 (en) * 2000-10-17 2002-04-24 STMicroelectronics S.r.l. Processor architecture with variable-stage pipeline
US7844799B2 (en) * 2000-12-23 2010-11-30 International Business Machines Corporation Method and system for pipeline reduction
US6971001B1 (en) * 2001-05-17 2005-11-29 Accenture Global Services Gmbh General and reusable components for defining net-centric application program architectures
US6859873B2 (en) * 2001-06-08 2005-02-22 Infineon Technologies Ag Variable length instruction pipeline
US20030088761A1 (en) * 2001-11-02 2003-05-08 Paver Nigel C. Register context usage indicator
US7200738B2 (en) 2002-04-18 2007-04-03 Micron Technology, Inc. Reducing data hazards in pipelined processors to provide high processor utilization
US7478402B2 (en) * 2004-02-12 2009-01-13 Microsoft Corporation Configurable message pipelines
US7941645B1 (en) * 2004-07-28 2011-05-10 Nvidia Corporation Isochronous pipelined processor with deterministic control
US7444498B2 (en) * 2004-12-17 2008-10-28 International Business Machines Corporation Load lookahead prefetch for microprocessors
US7552318B2 (en) * 2004-12-17 2009-06-23 International Business Machines Corporation Branch lookahead prefetch for microprocessors
US7421567B2 (en) * 2004-12-17 2008-09-02 International Business Machines Corporation Using a modified value GPR to enhance lookahead prefetch
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
JP5001209B2 (ja) * 2007-04-19 2012-08-15 パナソニック株式会社 再構成演算回路
US8868888B2 (en) * 2007-09-06 2014-10-21 Qualcomm Incorporated System and method of executing instructions in a multi-stage data processing pipeline
US7945765B2 (en) * 2008-01-31 2011-05-17 International Business Machines Corporation Method and structure for asynchronous skip-ahead in synchronous pipelines
US8806181B1 (en) * 2008-05-05 2014-08-12 Marvell International Ltd. Dynamic pipeline reconfiguration including changing a number of stages
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
JP2010198128A (ja) * 2009-02-23 2010-09-09 Toshiba Corp プロセッサシステム
US11645083B2 (en) * 2013-08-23 2023-05-09 Texas Instruments Incorporated Processor having adaptive pipeline with latency reduction logic that selectively executes instructions to reduce latency
CN105137962B (zh) * 2015-09-01 2017-08-11 浙江大丰实业股份有限公司 一种舞台设备与表演方案校准装置
US10656951B2 (en) * 2016-10-21 2020-05-19 Advanced Micro Devices, Inc. Pipeline including separate hardware data paths for different instruction types
US11132599B2 (en) * 2017-02-28 2021-09-28 Microsoft Technology Licensing, Llc Multi-function unit for programmable hardware nodes for neural network processing
US11356379B1 (en) * 2018-10-01 2022-06-07 Xilinx, Inc. Channelized rate adaptation
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228497A (en) * 1977-11-17 1980-10-14 Burroughs Corporation Template micromemory structure for a pipelined microprogrammable data processing system
JPS5730042A (en) * 1980-07-30 1982-02-18 Nippon Telegr & Teleph Corp <Ntt> Control system for instruction executing sequence
US4450525A (en) * 1981-12-07 1984-05-22 Ibm Corporation Control unit for a functional processor
JPS58106641A (ja) * 1981-12-18 1983-06-25 Fujitsu Ltd パイプライン命令実行制御方式
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
US4574344A (en) * 1983-09-29 1986-03-04 Tandem Computers Incorporated Entry control store for enhanced CPU pipeline performance
US4722049A (en) * 1985-10-11 1988-01-26 Unisys Corporation Apparatus for out-of-order program execution
US4855947A (en) * 1987-05-27 1989-08-08 Amdahl Corporation Microprogrammable pipeline interlocks based on the validity of pipeline states
US4890221A (en) * 1988-04-01 1989-12-26 Digital Equipment Corporation Apparatus and method for reconstructing a microstack
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
US5099421A (en) * 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing
JPH02302416A (ja) * 1989-05-17 1990-12-14 Showa Denko Kk 熱硬化性樹脂組成物

Also Published As

Publication number Publication date
EP0569312A3 (en) 1994-05-18
JPH0695872A (ja) 1994-04-08
EP0569312A2 (en) 1993-11-10
US5471626A (en) 1995-11-28

Similar Documents

Publication Publication Date Title
JP2750311B2 (ja) データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法
EP0328721B1 (en) Dynamic multiple instruction stream multiple data multiple pipeline floatingpoint unit
US4675806A (en) Data processing unit utilizing data flow ordered execution
JP2846407B2 (ja) 例外処理方法及び例外処理装置
JP2846406B2 (ja) 分岐処理方法及び分岐処理装置
JP2918631B2 (ja) デコーダ
KR0133238B1 (ko) 컴퓨터 프로세싱 시스템 및 인스트럭션 실행방법
US5748934A (en) Operand dependency tracking system and method for a processor that executes instructions out of order and that permits multiple precision data words
US6009509A (en) Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
US5555384A (en) Rescheduling conflicting issued instructions by delaying one conflicting instruction into the same pipeline stage as a third non-conflicting instruction
US6003126A (en) Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
US6701425B1 (en) Memory access address comparison of load and store queques
CZ9602771A3 (cs) Způsob operace systému zpracování
US5907693A (en) Autonomously cycling data processing architecture
KR0122527B1 (ko) 슈퍼스칼라 프로세서 시스템에서 비순차적 명령어의 디스패치 및 실행을 위한 방법 및 시스템
JP2004529405A (ja) 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ
JP2006517322A (ja) パイプライン化ディジタルプロセッサにおけるハザード検出および管理のための方法および装置
US5924128A (en) Pseudo zero cycle address generator and fast memory access
US6769049B1 (en) Memory access in a computer system having parallel execution pipelines
US5918034A (en) Method for decoupling pipeline stages
KR100305487B1 (ko) 특정유형의인스트럭션을동시에처리할수있는방법및데이터프로세싱시스템
EP0496407A2 (en) Parallel pipelined instruction processing system for very long instruction word
US5765017A (en) Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers
US6104731A (en) Method and apparatus for data forwarding in a processor having a dual banked register set
JP3983455B2 (ja) データ駆動型情報処理装置の実行制御装置