JPH04184534A - プロセッサ - Google Patents
プロセッサInfo
- Publication number
- JPH04184534A JPH04184534A JP2314607A JP31460790A JPH04184534A JP H04184534 A JPH04184534 A JP H04184534A JP 2314607 A JP2314607 A JP 2314607A JP 31460790 A JP31460790 A JP 31460790A JP H04184534 A JPH04184534 A JP H04184534A
- Authority
- JP
- Japan
- Prior art keywords
- register
- storage means
- contents
- registers
- group
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
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)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【I11要】
並列処理のため複数組の演算ユニットを備えたプロセッ
サに関し、 分岐命令実行前に分岐後の命令を並列処理できるように
することを目的とし、 並列処理のため複数組の演算ユニットを備えたプロセッ
サにおいて、複数組のレジスタからなり、組になってい
るレジスタが同一アドレスで指定されるレジスタ群と、
該組のレジスタの過去における選択順を示す選択順記憶
手段を各組について備え、該レジスタに対応した該選択
順記憶手段がレジスタ指定アドレスで指定される選択順
記憶手段群と、該組の各レジスタについてその内容が確
定しているかどうかを示す確定識別記憶手段を各組につ
いて備え、該レジスタに対応した該確定識別記憶手段が
レジスタ指定アドレスで指定される確定識別記憶手段群
と、該レジスタヘデータを書き込む際に、指定アドレス
の該選択順記憶手段の内容に応じて該組のレジスタの一
つを選択し、該選択順記憶手段の内容を更新させるレジ
スタ選択制御手段と、該指定アドレスの該確定識別記憶
手段の内容を、命令実行順序上訳書き込みが結果的に正
しいことが確定したかどうかに応じて書き換える書き込
み確定識別手段とを有し、該選択順記憶手段及び該確定
識別記憶手段の内容に応じて該レジスタの内容を読み出
すように構成する。
サに関し、 分岐命令実行前に分岐後の命令を並列処理できるように
することを目的とし、 並列処理のため複数組の演算ユニットを備えたプロセッ
サにおいて、複数組のレジスタからなり、組になってい
るレジスタが同一アドレスで指定されるレジスタ群と、
該組のレジスタの過去における選択順を示す選択順記憶
手段を各組について備え、該レジスタに対応した該選択
順記憶手段がレジスタ指定アドレスで指定される選択順
記憶手段群と、該組の各レジスタについてその内容が確
定しているかどうかを示す確定識別記憶手段を各組につ
いて備え、該レジスタに対応した該確定識別記憶手段が
レジスタ指定アドレスで指定される確定識別記憶手段群
と、該レジスタヘデータを書き込む際に、指定アドレス
の該選択順記憶手段の内容に応じて該組のレジスタの一
つを選択し、該選択順記憶手段の内容を更新させるレジ
スタ選択制御手段と、該指定アドレスの該確定識別記憶
手段の内容を、命令実行順序上訳書き込みが結果的に正
しいことが確定したかどうかに応じて書き換える書き込
み確定識別手段とを有し、該選択順記憶手段及び該確定
識別記憶手段の内容に応じて該レジスタの内容を読み出
すように構成する。
本発明は、並列処理のため複数組の演算ユニットを備え
たプロセッサに関する。
たプロセッサに関する。
プロセッサの処理速度を向上させる方法の1つとして、
複数組の演算ユニットを備え、並列処理を行う方法があ
る。しかし、シーケンシャルなプログラムに対して並列
処理を行うので、効率良く並列処理を実行することがで
きない。その主な原因は2つある。 1つは、例えば、第1ステツプでレジスタROとレジス
タR1との和をレジスタROに代入し、次の第2ステツ
プでレジスタROとレジスタR2との和をレジスタR2
に代入する場合、第1ステツプの演算結果が確定しない
と第2ステツプを実行することができないので、第1ス
テツプと第2ステツプとを並列処理することができない
ということである。 他の1つは、例えば、上記第1ステツプの次にレジスタ
ROの内容に応じて分岐する場合、分岐前に分岐後の命
令を実行することができず、分岐前後を並列処理するこ
とができないということである。 プログラム中の分岐命令の割合は比較的大きい。 例えば典型的λ
複数組の演算ユニットを備え、並列処理を行う方法があ
る。しかし、シーケンシャルなプログラムに対して並列
処理を行うので、効率良く並列処理を実行することがで
きない。その主な原因は2つある。 1つは、例えば、第1ステツプでレジスタROとレジス
タR1との和をレジスタROに代入し、次の第2ステツ
プでレジスタROとレジスタR2との和をレジスタR2
に代入する場合、第1ステツプの演算結果が確定しない
と第2ステツプを実行することができないので、第1ス
テツプと第2ステツプとを並列処理することができない
ということである。 他の1つは、例えば、上記第1ステツプの次にレジスタ
ROの内容に応じて分岐する場合、分岐前に分岐後の命
令を実行することができず、分岐前後を並列処理するこ
とができないということである。 プログラム中の分岐命令の割合は比較的大きい。 例えば典型的λ
【オペレーティングシステムのプログラ
ムでは約1/3が分岐命令で占められている。 したがで、分岐命令の前後を並列処理することができる
かどうかが、プロセッサの性能に大きく影響する。 【発明が解決しようとする課顯】 本発明の目的は、このような問題点に鑑み、分岐命令実
行前に分岐後の命令を並列処理することが可能なプロセ
ッサを提供することにある。
ムでは約1/3が分岐命令で占められている。 したがで、分岐命令の前後を並列処理することができる
かどうかが、プロセッサの性能に大きく影響する。 【発明が解決しようとする課顯】 本発明の目的は、このような問題点に鑑み、分岐命令実
行前に分岐後の命令を並列処理することが可能なプロセ
ッサを提供することにある。
【課題を解決するための手段及びその作用】第1図は、
本発明に係るプロセッサの原理構成を示す。このプロセ
ッサは、並列処理のだt複数組の演算ユニット1〜1N
を備えている。 2はレジスタ群であり、複数組(L組)のレジスタRO
ls R111…RMi(i=1〜L)からなり、組に
なっているレジスタROi。 R1i、 …RMiが同一アドレスAiで指定される
。 3は選択順記憶手段群であり、第1組のレジスタRD
i、R1i、 …RMiの過去における選択順を示す選
択順記憶手段Siを各組について備え、該レジスタに対
応した選択順記憶手段Siがレジスタ指定アドレスAi
で指定される。この選択順記憶手段S1は例えば(M−
1)進カウンタで構成され、第1組のレジスタが選択さ
れる毎にこのカウンタがインクリメントされてレジスタ
R0i、R1i、…RMiがこの順にサイクリックに指
定される。例えば、M=3でこのカウンタの計数値が2
であれば、過去における選択順は2、■、0.3であり
、レジスタR2iに最新のデータが格納されていること
を示す。 4は確定識別記憶手段群であり、該組の各レジスタR0
i、R1i、 …RMiについてその内容が確定して
いるかどうかを示す確定識別記憶手段Uiを各組につい
て備え、該レジスタに対応した確定識別記憶手段Uiが
レジスタ指定アドレスAiで指定される。 5はレジスタ選択制御手段であり、該レジスタファイル
を書き込む際に、指定アドレスAiの選択順記憶手段S
1の内容に応じて組のレジスタRO1%R1ls …
RMiの一つを選択し、選択順記憶手段Siの内容を更
新させる。選択順記憶手段S】が上記カウンタである場
合には、カウンタをインクリメントすることにより選択
順記憶手段Siの内容を更新させる。 6は書き込み確定識別手段であり、指定アドレスAiの
確定識別記憶手段Uiの内容を、命令実行順序上該書き
込みが結果的に正しいことが確定したかどうかに応じて
書き換える。 上記の如く構成されたプロセッサにおいて、選択順記憶
手段Si及び確定識別記憶手段Uiの内容に応じてレジ
スタの内容が読み出される。 本発明のプロセッサを用いれば、分岐命令実行前に分岐
後の命令を並列処理することが可能となり、プロセッサ
の処理速度が向上する。なお、分岐命令のみならず、割
込み発生や例外処理の発生の際にも、プロセッサの処理
速度が向上する。 上記構成にさらに、次のような書込み予約フラグ群と書
き込み予約識別手段を備えれば、並列処理に伴う同一ア
ドレスのレジスタへの書込みの競合を容易に制御するこ
とができる。 この書込み予約フラグ群は、該レジスタへのデータ書き
込み予約がされているかどうかを示す書込み予約フラグ
を該レジスタの各組について備え、レジスタROis
R11% …RMiに対応した該書込み予約フラグが
レジスタ指定アドレスAiで指定される。 また、書き込み予約識別手段は、該レジスタへデータを
書き込む際に、書き込み命令デコード時に書き込み予約
したことを示し該書き込み終了後に該予約を解除したこ
とを示すように該書込み予約フラグの内容を書き換える
。
本発明に係るプロセッサの原理構成を示す。このプロセ
ッサは、並列処理のだt複数組の演算ユニット1〜1N
を備えている。 2はレジスタ群であり、複数組(L組)のレジスタRO
ls R111…RMi(i=1〜L)からなり、組に
なっているレジスタROi。 R1i、 …RMiが同一アドレスAiで指定される
。 3は選択順記憶手段群であり、第1組のレジスタRD
i、R1i、 …RMiの過去における選択順を示す選
択順記憶手段Siを各組について備え、該レジスタに対
応した選択順記憶手段Siがレジスタ指定アドレスAi
で指定される。この選択順記憶手段S1は例えば(M−
1)進カウンタで構成され、第1組のレジスタが選択さ
れる毎にこのカウンタがインクリメントされてレジスタ
R0i、R1i、…RMiがこの順にサイクリックに指
定される。例えば、M=3でこのカウンタの計数値が2
であれば、過去における選択順は2、■、0.3であり
、レジスタR2iに最新のデータが格納されていること
を示す。 4は確定識別記憶手段群であり、該組の各レジスタR0
i、R1i、 …RMiについてその内容が確定して
いるかどうかを示す確定識別記憶手段Uiを各組につい
て備え、該レジスタに対応した確定識別記憶手段Uiが
レジスタ指定アドレスAiで指定される。 5はレジスタ選択制御手段であり、該レジスタファイル
を書き込む際に、指定アドレスAiの選択順記憶手段S
1の内容に応じて組のレジスタRO1%R1ls …
RMiの一つを選択し、選択順記憶手段Siの内容を更
新させる。選択順記憶手段S】が上記カウンタである場
合には、カウンタをインクリメントすることにより選択
順記憶手段Siの内容を更新させる。 6は書き込み確定識別手段であり、指定アドレスAiの
確定識別記憶手段Uiの内容を、命令実行順序上該書き
込みが結果的に正しいことが確定したかどうかに応じて
書き換える。 上記の如く構成されたプロセッサにおいて、選択順記憶
手段Si及び確定識別記憶手段Uiの内容に応じてレジ
スタの内容が読み出される。 本発明のプロセッサを用いれば、分岐命令実行前に分岐
後の命令を並列処理することが可能となり、プロセッサ
の処理速度が向上する。なお、分岐命令のみならず、割
込み発生や例外処理の発生の際にも、プロセッサの処理
速度が向上する。 上記構成にさらに、次のような書込み予約フラグ群と書
き込み予約識別手段を備えれば、並列処理に伴う同一ア
ドレスのレジスタへの書込みの競合を容易に制御するこ
とができる。 この書込み予約フラグ群は、該レジスタへのデータ書き
込み予約がされているかどうかを示す書込み予約フラグ
を該レジスタの各組について備え、レジスタROis
R11% …RMiに対応した該書込み予約フラグが
レジスタ指定アドレスAiで指定される。 また、書き込み予約識別手段は、該レジスタへデータを
書き込む際に、書き込み命令デコード時に書き込み予約
したことを示し該書き込み終了後に該予約を解除したこ
とを示すように該書込み予約フラグの内容を書き換える
。
【実施例】
以下、図面に基づいて本発明の一実施例を説明する。
第2図は、プロセッサの、レジスタファイルを中心とし
た要部構成を示す。 このプロセッサでは、同一構成の演算ユニット10と1
2とを備え、制御回路14の下で並列処理を行っている
。演算ユニット10.12による演算結果は、その何れ
か一方がセレクタ16で選択されてレジスタファイル1
8へ供給される。 レジスタファイル18は、レジスタ群RAOと、レジス
タ群RAIと、レジスタ選択フラグ群Sと、不確定フラ
グ群Uと、書込み予約フラグ群Wとを備えており、1組
になったこれらの構成要素RO1,R1i、S i、U
i及びWi(i=1〜M)は、アドレスAiにより同時
指定される。また、レジスタROiとレジスタR1iと
は互いに対(組)になっており、プログラム上は、両者
の一方がレジスタRiとして用いられる。すなわち、プ
ログラムでレジスタROi又はレジスタR1iを直接指
定することができず、この指定はハードウェアで行われ
る。 レジスタRiにデータDiを書き込む場合、この指定は
次のようにして行われる。すなわち、ライトイネーブル
信号WEでレジスタ選択フラグSiの内容が反転され、
この反転された内容が読み出されて切換回路22の制御
端子に供給される。 切換回路22は、この内容が“0°のときには、切換回
路22に供給されるライトイネーブル信号WEをライト
イネーブル信号WEDとしてレジスタ群RAOに供給し
、レジスタRO4を選択する。 同様に、切換回路22は、レジスタ選択フラグSiの内
容が“1°のときには、切換回路22に供給されるライ
トイネーブル信号WEをライトイネーブル信号WEIと
してレジスタ群RAIに供給し、レジスタR1iを選択
する。 この書込みの際、不確定フラグUiは制御回路14によ
り、命令実行順上書込みが正当であることが確定してい
なければ1゛にされ、確定した時点で0゛にされる。例
えば、この書込み命令の1つ前の命令の実行が完了して
いなければUi=“1′とされ、この実行が完了した時
点でU1= “0″ とされる。 また、書込み予約フラグW1は制御回路14により、書
込み命令のデコード時に“1゛にされ、この書込み終了
後に°0°される。 レジスタRiの読み出しの際には、レジスタR01及び
Rliの内容がセレクタ24及び26に供給される。セ
レクタ24及び26の選択制御は、レジスタ選択フラグ
81及び不確定フラグU1の内容に応じて制御回路14
により行われる。が0゛の時には、レジスタR1iの内
容がセレクタ24で選択され、かつ、レジスタROiの
内容がセレクタ26で選択されて取り出される。例えば
、セレクタ24の出力が演算ユニット10に供給され、
セレクタ26の出力が演算ユニット12に供給される。 レジスタファイル18のアドレスAiにデータCを書き
込む場合のレジスタ選択フラグS ls不確定フラグU
11書込み予約フラグWlルジスタROi及びレジスタ
R1iの内容の変化を第3図(A)〜(D)に示す。 (A>最初、レジスタROiには値Bが格納され、レジ
スタR1iには値へが格納されている。 Si=’0°であるので、値Bが新データ、値へが旧デ
ータである。Ui= “0”であるので、レジスタ選択
フラグ54で指定されたレジスタRO1の内容Bは命令
実行順上確定している。また、W i = “0“であ
るので、レジスタROiへの書込みが完了している。 (B)書込み命令デコード時に、書込み予約フラグWi
が1°にされて書込み予約される。レジスタ選択フラグ
Siが“1° にされて、レジスタR1iに値Cが書き
込まれる。この書込みが完了すると、書込み予約フラグ
Wiが“0“にされる。また、この書込みが命令実行順
上不確定であることを示すために、不確定フラグUiが
“l。 にされる。 (D)この書込み命令が命令実行順上確定した時点で、
不確定フラグUiが°0°にされる。 次に、分岐命令前後の並列処理を第4図に基づいて説明
する。 プログラム上は、ステップ50でレジスタR1とレジス
タR2の内容を加えてレジスタR3に代入し、ステップ
52でR3〉0であればステップ54へ進み、ステップ
52でR3≦0であればステップ56へ進む。 実際には、例えば、ステップ50を演算ユニット10で
実行する際に、演算ユニット12でステップ54を並列
に実行する。ステップ54の演算結果はレジスタR4に
代入され、このレジスタR4の内容が未確定な新データ
となる。 次に、ステップ52でR3>Oと判定された場合には、
レジスタR4の内容が確定し、セレクタ26から取り出
されたレジスタR4の内容が用いられる。ステップ52
でR3≧0と判定された場合ニハ、セレクタ24から取
り出されたレジスタR4の内容を用い、ステップ56を
実行する。 したがって、ステップ52のような分岐命令があっても
、この分岐命令の後の命令を分岐命令実行前に並列処理
することが可能となり、プロセッサの性能が向上する。 なお、本発明には外にも種々の変形例が含まれる。 例えば、演算ユニットを3組以上備えて、第4図に示す
ステップ50.52及び54を並列処理する構成であっ
てもよい。 また、同一アドレスAiで指定される3つ以上のレジス
タR0i、R1i、…RMiを1組のレジスタとするレ
ジスタ群を備えた構成であってもよい。 また、上記実施例ではレジスタファイルが2ポートリー
ド(セレクタ24.26)・1ポートライト (セレク
タ16)であるが、一般に、演算ユニットをN個用いた
場合には、2Nポートリード・Nポートライトの構成が
理想的である。
た要部構成を示す。 このプロセッサでは、同一構成の演算ユニット10と1
2とを備え、制御回路14の下で並列処理を行っている
。演算ユニット10.12による演算結果は、その何れ
か一方がセレクタ16で選択されてレジスタファイル1
8へ供給される。 レジスタファイル18は、レジスタ群RAOと、レジス
タ群RAIと、レジスタ選択フラグ群Sと、不確定フラ
グ群Uと、書込み予約フラグ群Wとを備えており、1組
になったこれらの構成要素RO1,R1i、S i、U
i及びWi(i=1〜M)は、アドレスAiにより同時
指定される。また、レジスタROiとレジスタR1iと
は互いに対(組)になっており、プログラム上は、両者
の一方がレジスタRiとして用いられる。すなわち、プ
ログラムでレジスタROi又はレジスタR1iを直接指
定することができず、この指定はハードウェアで行われ
る。 レジスタRiにデータDiを書き込む場合、この指定は
次のようにして行われる。すなわち、ライトイネーブル
信号WEでレジスタ選択フラグSiの内容が反転され、
この反転された内容が読み出されて切換回路22の制御
端子に供給される。 切換回路22は、この内容が“0°のときには、切換回
路22に供給されるライトイネーブル信号WEをライト
イネーブル信号WEDとしてレジスタ群RAOに供給し
、レジスタRO4を選択する。 同様に、切換回路22は、レジスタ選択フラグSiの内
容が“1°のときには、切換回路22に供給されるライ
トイネーブル信号WEをライトイネーブル信号WEIと
してレジスタ群RAIに供給し、レジスタR1iを選択
する。 この書込みの際、不確定フラグUiは制御回路14によ
り、命令実行順上書込みが正当であることが確定してい
なければ1゛にされ、確定した時点で0゛にされる。例
えば、この書込み命令の1つ前の命令の実行が完了して
いなければUi=“1′とされ、この実行が完了した時
点でU1= “0″ とされる。 また、書込み予約フラグW1は制御回路14により、書
込み命令のデコード時に“1゛にされ、この書込み終了
後に°0°される。 レジスタRiの読み出しの際には、レジスタR01及び
Rliの内容がセレクタ24及び26に供給される。セ
レクタ24及び26の選択制御は、レジスタ選択フラグ
81及び不確定フラグU1の内容に応じて制御回路14
により行われる。が0゛の時には、レジスタR1iの内
容がセレクタ24で選択され、かつ、レジスタROiの
内容がセレクタ26で選択されて取り出される。例えば
、セレクタ24の出力が演算ユニット10に供給され、
セレクタ26の出力が演算ユニット12に供給される。 レジスタファイル18のアドレスAiにデータCを書き
込む場合のレジスタ選択フラグS ls不確定フラグU
11書込み予約フラグWlルジスタROi及びレジスタ
R1iの内容の変化を第3図(A)〜(D)に示す。 (A>最初、レジスタROiには値Bが格納され、レジ
スタR1iには値へが格納されている。 Si=’0°であるので、値Bが新データ、値へが旧デ
ータである。Ui= “0”であるので、レジスタ選択
フラグ54で指定されたレジスタRO1の内容Bは命令
実行順上確定している。また、W i = “0“であ
るので、レジスタROiへの書込みが完了している。 (B)書込み命令デコード時に、書込み予約フラグWi
が1°にされて書込み予約される。レジスタ選択フラグ
Siが“1° にされて、レジスタR1iに値Cが書き
込まれる。この書込みが完了すると、書込み予約フラグ
Wiが“0“にされる。また、この書込みが命令実行順
上不確定であることを示すために、不確定フラグUiが
“l。 にされる。 (D)この書込み命令が命令実行順上確定した時点で、
不確定フラグUiが°0°にされる。 次に、分岐命令前後の並列処理を第4図に基づいて説明
する。 プログラム上は、ステップ50でレジスタR1とレジス
タR2の内容を加えてレジスタR3に代入し、ステップ
52でR3〉0であればステップ54へ進み、ステップ
52でR3≦0であればステップ56へ進む。 実際には、例えば、ステップ50を演算ユニット10で
実行する際に、演算ユニット12でステップ54を並列
に実行する。ステップ54の演算結果はレジスタR4に
代入され、このレジスタR4の内容が未確定な新データ
となる。 次に、ステップ52でR3>Oと判定された場合には、
レジスタR4の内容が確定し、セレクタ26から取り出
されたレジスタR4の内容が用いられる。ステップ52
でR3≧0と判定された場合ニハ、セレクタ24から取
り出されたレジスタR4の内容を用い、ステップ56を
実行する。 したがって、ステップ52のような分岐命令があっても
、この分岐命令の後の命令を分岐命令実行前に並列処理
することが可能となり、プロセッサの性能が向上する。 なお、本発明には外にも種々の変形例が含まれる。 例えば、演算ユニットを3組以上備えて、第4図に示す
ステップ50.52及び54を並列処理する構成であっ
てもよい。 また、同一アドレスAiで指定される3つ以上のレジス
タR0i、R1i、…RMiを1組のレジスタとするレ
ジスタ群を備えた構成であってもよい。 また、上記実施例ではレジスタファイルが2ポートリー
ド(セレクタ24.26)・1ポートライト (セレク
タ16)であるが、一般に、演算ユニットをN個用いた
場合には、2Nポートリード・Nポートライトの構成が
理想的である。
以上説明した如く、本発明に係るプロセッサを用いれば
、分岐命令実行前に分岐後の命令を並列処理することが
可能となるという優れた効果を奏し、プロセッサの処理
速度向上に寄与するところが大きい。 また、上述の書込み予約フラグ群と書き込み予約識別手
段を備えれば、並列処理に伴う同一アドレスのレジスタ
への書込みの競合を容易に制御することができるという
効果を奏する。
、分岐命令実行前に分岐後の命令を並列処理することが
可能となるという優れた効果を奏し、プロセッサの処理
速度向上に寄与するところが大きい。 また、上述の書込み予約フラグ群と書き込み予約識別手
段を備えれば、並列処理に伴う同一アドレスのレジスタ
への書込みの競合を容易に制御することができるという
効果を奏する。
第1図は本発明に係るプロセッサの原理構成を示すブロ
ック図である。 第2図乃至第4図は本発明の一実施例1こ係り、第2図
はプロセッサの要部構成を示すブロック図、 第3図はレジスタRiにデータCを書き込む場合のレジ
スタ及びフラグの内容変化を示す図、第4図は分岐命令
前後の並列処理を説明するためのフローチャートである
。 図中、 18はレジスタファイル 20はDフリップフロップ Sはレジスタ選択フラグ群 Uは不確定フラグ群 レジスタRi 第3図 説明するためのフローチャート 第4図
ック図である。 第2図乃至第4図は本発明の一実施例1こ係り、第2図
はプロセッサの要部構成を示すブロック図、 第3図はレジスタRiにデータCを書き込む場合のレジ
スタ及びフラグの内容変化を示す図、第4図は分岐命令
前後の並列処理を説明するためのフローチャートである
。 図中、 18はレジスタファイル 20はDフリップフロップ Sはレジスタ選択フラグ群 Uは不確定フラグ群 レジスタRi 第3図 説明するためのフローチャート 第4図
Claims (1)
- 【特許請求の範囲】 1)、並列処理のため複数組の演算ユニット(11〜1
N)を備えたプロセッサにおいて、複数組のレジスタか
らなり、組になっているレジスタ(R0i、R1i、…
RMi)が同一アドレス(Ai)で指定されるレジスタ
群(2)と、 該組のレジスタの過去における選択順を示す選択順記憶
手段(Si)を各組について備え、該レジスタに対応し
た該選択順記憶手段がレジスタ指定アドレス(Ai)で
指定される選択順記憶手段群(3)と、 該組の各レジスタについてその内容が確定しているかど
うかを示す確定識別記憶手段(Ui)を各組について備
え、該レジスタに対応した該確定識別記憶手段がレジス
タ指定アドレス(Ai)で指定される確定識別記憶手段
群(4)と、 該レジスタへデータを書き込む際に、指定アドレス(A
i)の該選択順記憶手段(Si)の内容に応じて該組の
レジスタの一つを選択し、該選択順記憶手段の内容を更
新させるレジスタ選択制御手段(5)と、 該指定アドレス(Ai)の該確定識別記憶手段(Ui)
の内容を、命令実行順序上該書き込みが結果的に正しい
ことが確定したかどうかに応じて書き換える書き込み確
定識別手段(6)とを有し、該選択順記憶手段(Si)
及び該確定識別記憶手段(Ui)の内容に応じて該レジ
スタの内容を読み出すことを特徴とするプロセッサ。 2)、請求項1のプロセッサにさらに、 前記レジスタへのデータ書き込み予約がされているかど
うかを示す書込み予約フラグ(Wi)を前記レジスタの
各組について備え、該レジスタに対応した該書込み予約
フラグがレジスタ指定アドレスで指定される書込み予約
フラグ群(W)と、該レジスタへデータを書き込む際に
、書き込み命令デコード時に書き込み予約したことを示
し該書き込み終了後に該予約を解除したことを示すよう
に該書込み予約フラグの内容を書き換える書き込み予約
識別手段(14)と、 を備えたことを特徴とするプロセッサ。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2314607A JPH04184534A (ja) | 1990-11-20 | 1990-11-20 | プロセッサ |
| EP91310673A EP0487317B1 (en) | 1990-11-20 | 1991-11-20 | Processor and method for parallel processing |
| US07/795,145 US5404551A (en) | 1990-11-20 | 1991-11-20 | Parallel processor which processes instructions, after a branch instruction, in parallel prior to executing the branch instruction and its parallel processing method |
| DE69130414T DE69130414T2 (de) | 1990-11-20 | 1991-11-20 | Prozessor und Verfahren zur parallelen Verarbeitung |
| KR1019910020688A KR960003047B1 (ko) | 1990-11-20 | 1991-11-20 | 분기명령 실행전에 분기후의 명령을 병렬처리하는 병렬처리 장치 및 그의 병렬처리 방법 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2314607A JPH04184534A (ja) | 1990-11-20 | 1990-11-20 | プロセッサ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04184534A true JPH04184534A (ja) | 1992-07-01 |
Family
ID=18055335
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2314607A Pending JPH04184534A (ja) | 1990-11-20 | 1990-11-20 | プロセッサ |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5404551A (ja) |
| EP (1) | EP0487317B1 (ja) |
| JP (1) | JPH04184534A (ja) |
| KR (1) | KR960003047B1 (ja) |
| DE (1) | DE69130414T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6044455A (en) * | 1996-10-25 | 2000-03-28 | Ricoh Company, Ltd. | Central processing unit adapted for pipeline process |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4208459A1 (de) * | 1992-03-17 | 1993-09-23 | Philips Patentverwaltung | Schaltungsanordnung zur verarbeitung von eingabe/ausgabedaten |
| JPH06242948A (ja) * | 1993-02-16 | 1994-09-02 | Fujitsu Ltd | パイプライン処理計算機 |
| JP3311462B2 (ja) * | 1994-02-23 | 2002-08-05 | 富士通株式会社 | コンパイル処理装置 |
| US5765016A (en) * | 1996-09-12 | 1998-06-09 | Advanced Micro Devices, Inc. | Reorder buffer configured to store both speculative and committed register states |
| US6343359B1 (en) * | 1999-05-18 | 2002-01-29 | Ip-First, L.L.C. | Result forwarding cache |
| US7813991B1 (en) | 2000-04-10 | 2010-10-12 | Christopher Keith | Automated trading negotiation protocols |
| US8249975B1 (en) | 2000-04-10 | 2012-08-21 | Stikine Technology, Llc | Automated first look at market events |
| US7774246B1 (en) | 2000-04-10 | 2010-08-10 | Christopher Keith | Automated price setting for paired orders |
| US7908198B1 (en) | 2000-04-10 | 2011-03-15 | Stikine Technology, Llc | Automated preferences for market participants |
| US8775294B1 (en) | 2000-04-10 | 2014-07-08 | Stikine Technology, Llc | Automated linked order processing |
| US7539638B1 (en) | 2000-04-10 | 2009-05-26 | Stikine Technology, Llc | Representation of order in multiple markets |
| US7792733B1 (en) | 2000-04-10 | 2010-09-07 | Christopher Keith | Automated synchronization of orders represented in multiple markets |
| US7472087B2 (en) | 2000-04-10 | 2008-12-30 | Stikine Technology, Llc | Trading program for interacting with market programs on a platform |
| US7882007B2 (en) * | 2000-04-10 | 2011-02-01 | Christopher Keith | Platform for market programs and trading programs |
| US8296215B1 (en) * | 2000-04-10 | 2012-10-23 | Stikine Technology, Llc | Trading system with elfs and umpires |
| US8799138B2 (en) * | 2000-04-10 | 2014-08-05 | Stikine Technology, Llc | Routing control for orders eligible for multiple markets |
| US6821786B2 (en) * | 2002-04-25 | 2004-11-23 | Future Data Inc. | Diagnostic test for elemental imbalances |
| US7580914B2 (en) * | 2003-12-24 | 2009-08-25 | Intel Corporation | Method and apparatus to improve execution of a stored program |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4430706A (en) * | 1980-10-27 | 1984-02-07 | Burroughs Corporation | Branch prediction apparatus and method for a data processing system |
| US4766566A (en) * | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
| US5218712A (en) * | 1987-07-01 | 1993-06-08 | Digital Equipment Corporation | Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption |
| US5155817A (en) * | 1988-04-01 | 1992-10-13 | Kabushiki Kaisha Toshiba | Microprocessor |
| US5006980A (en) * | 1988-07-20 | 1991-04-09 | Digital Equipment Corporation | Pipelined digital CPU with deadlock resolution |
| US5019967A (en) * | 1988-07-20 | 1991-05-28 | Digital Equipment Corporation | Pipeline bubble compression in a computer system |
| US4980819A (en) * | 1988-12-19 | 1990-12-25 | Bull Hn Information Systems Inc. | Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system |
| US5155843A (en) * | 1990-06-29 | 1992-10-13 | Digital Equipment Corporation | Error transition mode for multi-processor system |
| US5237525A (en) * | 1992-06-01 | 1993-08-17 | Motorola, Inc. | In a data processor an SRT divider having a negative divisor sticky detection circuit |
-
1990
- 1990-11-20 JP JP2314607A patent/JPH04184534A/ja active Pending
-
1991
- 1991-11-20 US US07/795,145 patent/US5404551A/en not_active Expired - Fee Related
- 1991-11-20 DE DE69130414T patent/DE69130414T2/de not_active Expired - Fee Related
- 1991-11-20 EP EP91310673A patent/EP0487317B1/en not_active Expired - Lifetime
- 1991-11-20 KR KR1019910020688A patent/KR960003047B1/ko not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6044455A (en) * | 1996-10-25 | 2000-03-28 | Ricoh Company, Ltd. | Central processing unit adapted for pipeline process |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0487317A3 (en) | 1993-08-25 |
| EP0487317A2 (en) | 1992-05-27 |
| DE69130414D1 (de) | 1998-12-03 |
| EP0487317B1 (en) | 1998-10-28 |
| US5404551A (en) | 1995-04-04 |
| DE69130414T2 (de) | 1999-03-18 |
| KR920010475A (ko) | 1992-06-26 |
| KR960003047B1 (ko) | 1996-03-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04184534A (ja) | プロセッサ | |
| US6009509A (en) | Method and system for the temporary designation and utilization of a plurality of physical registers as a stack | |
| NZ236142A (en) | Data processor skips execution of instructions in queue that are tagged as requiring unavailable data | |
| US6338134B1 (en) | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data | |
| CN109416632B (zh) | 用于处理数据的装置和方法 | |
| JP2560988B2 (ja) | 情報処理装置および処理方法 | |
| CN101470599A (zh) | 处理单元 | |
| JPH02227730A (ja) | データ処理システム | |
| JPH03268005A (ja) | プログラマブルコントローラ | |
| JPH0673105B2 (ja) | 命令パイプライン方式のマイクロプロセッサ | |
| JPS6089274A (ja) | ベクトルマスク制御システム | |
| US20030177482A1 (en) | Unbundling, translation and rebundling of instruction bundles in an instruction stream | |
| JPH031231A (ja) | マイクロプログラム制御装置 | |
| JP4160705B2 (ja) | プロセッサ及びプロセッサシステム | |
| CA1264200A (en) | System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes | |
| US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
| JP2552738B2 (ja) | データ処理装置 | |
| US6789185B1 (en) | Instruction control apparatus and method using micro program | |
| JP2000181707A (ja) | 命令制御装置及びその方法 | |
| US5675776A (en) | Data processor using FIFO memories for routing operations to parallel operational units | |
| JPH0754467B2 (ja) | データ処理装置 | |
| US4598361A (en) | Allocator for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes | |
| JP2814683B2 (ja) | 命令処理装置 | |
| JPH0222413B2 (ja) | ||
| JP2000347862A (ja) | 命令入換え回路 |