JPH10143365A - 並列処理装置及びその命令発行方式 - Google Patents

並列処理装置及びその命令発行方式

Info

Publication number
JPH10143365A
JPH10143365A JP8305045A JP30504596A JPH10143365A JP H10143365 A JPH10143365 A JP H10143365A JP 8305045 A JP8305045 A JP 8305045A JP 30504596 A JP30504596 A JP 30504596A JP H10143365 A JPH10143365 A JP H10143365A
Authority
JP
Japan
Prior art keywords
data
instruction
processing
holding
address
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
Application number
JP8305045A
Other languages
English (en)
Inventor
Takashi Yoshida
尊 吉田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP8305045A priority Critical patent/JPH10143365A/ja
Priority to US08/970,802 priority patent/US6260135B1/en
Publication of JPH10143365A publication Critical patent/JPH10143365A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags

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)

Abstract

(57)【要約】 【課題】 命令発行装置の回路規模を大幅に縮小すると
共に処理速度の高速化を可能にする並列処理装置を提供
する。 【解決手段】 複数の処理装置に対し命令とソースデー
タとを投入する命令発行装置と、前記ソースデータを保
持するデータ保持装置と、必要なデータの状態を保持す
るデータ状態保持装置とを備え、前記処理装置の処理結
果データを、前記ソースデータとして前記データ保持装
置へ送ると同時にデータフォワード装置を介して前記命
令発行装置へ送る並列処理装置において、前記データ状
態保持装置は、前記データ保持装置のアドレス情報と共
に、処理結果データがどの処理装置より出力されるのか
を示すデータ出力装置情報を保持する構成にし、前記命
令発行装置は、前記データ出力装置情報を参照して、前
記データフォワード装置を介して送られてくるデータを
前記ソースデータとして取り込む構成にした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データフォワーデ
ィング手法が使用されたマイクロプロセッサ等の並列処
理装置、及びその命令発行方式に関する。
【0002】
【従来の技術】近年のマイクロプロセッサは、処理効率
向上のためにパイプラインの段数を深くし、パイプライ
ンの命令投入ピッチを上げることで、動作周波数を上げ
ている。これは、命令投入ピッチを向上させる一方、命
令投入から処理結果が出力され、後続命令が同処理結果
を使用できるようになるまでの時間、すなわちレイテン
シの増大を招いている。そのため、データ依存性の問題
から後続命令が発行できず、処理効率が低下する。
【0003】この処理効率低下を出来るだけ減少させ
る、すなわちレイテンシの縮小のため、データフォワー
ディングの手法が使用されている。これは、データ保持
装置に処理結果を書き戻すと同時に、同処理結果を、後
続命令が発行される処理装置に送る手法であり、データ
保持装置への書き込み/再読み出しの時間を省略するこ
とで、レイテンシを小さくする手法である。
【0004】データ依存関係の判断は、データの状態を
保持したデータ状態保持装置を付加することにより行
う。代表的な例では、スコアボーディングと呼ばれる手
法が有名である。すなわち、スコアボードと呼ばれるレ
ジスタに、現在処理中であるデータが書き戻されるデー
タ保持装置のアドレスを保持し、後続命令が必要とする
データのアドレスがスコアボードに保持されているアド
レスと一致した場合、データ依存関係があるとして、同
後続命令は処理中の同データが出力されるまで命令発行
を待たされる。
【0005】一方、高性能マイクロプロセッサには、ス
ーパースカラ等の並列処理技術が取り入れられ、複数の
命令を同時発行、同時実行してIPC(命令/クロッ
ク)の効率を上げている。更には、旧来は命令ストリー
ムの順序通りに命令を発行していたイン・オーダ(In
−order)命令発行方式から、命令ストリームの順
序に関係なく、データ依存性の問題がなければ命令を発
行して処理効率を上げるアウト・オブ・オーダ(Out
−of−order)命令発行方式が高性能プロセッサ
の主流となっている。
【0006】すなわち、上記パイプラインの説明におい
て、データ依存関係で発行待ちしている後続命令1があ
る場合、イン・オーダ命令発行方式の場合は更にその後
続の命令2も発行待ちすることになるが、アウト・オブ
・オーダ命令発行方式の場合では、命令2にデータ依存
関係の問題がないときは命令1を追い越して命令発行を
行うことが出来る。
【0007】アウト・オブ・オーダ命令発行方式の場合
は、命令ストリームの順序に関係なく命令を発行するた
め、命令ストリームでは本来後の命令が先に処理終了を
してしまう場合が発生する。これは、イン・オーダ命令
発行の場合でも、処理に必要な時間が異なる複数の処理
装置を用いる場合でも発生する。例えば、パイプ段数1
段の加算器とパイプライン段数3の乗算器を持つ場合で
ある。処理終了の順序が命令ストリームと異なる場合、
データ保持装置への書き込み順序などが問題となる。特
に例外割り込みが発生した場合、プロセッサの処理状態
復帰が難しくなる。そのため、複数の処理装置から出力
された処理結果を命令ストリームの順番に戻してデータ
保持装置に書き込むためのリオーダバッファを用いる手
法が一般的となっている。当然ながら、このリオーダバ
ッファに保持されている処理結果も次命令に使用できる
ように、リオーダバッファからデータフォワーディング
を行っている。
【0008】このような各種手法を用いた従来のプロセ
ッサの概略ブロック図を図9に示す。
【0009】同図中の命令キャッシュ100は命令を格
納し、本例では、その命令を実行する処理装置は3台
(処理装置110,111,112)と仮定して並列処
理を行うものとする。
【0010】命令キャッシュ100より読み出された命
令は、一旦ラッチ100Aに保持された後、その命令の
各ソースレジスタ番号がレジスタファイル104、スコ
アボード105、及びリオーダバッファ106へ送られ
る。レジスタファイル104及びスコアーボード105
は、上述のデータ保持装置及びデータ状態保持装置にそ
れぞれ相当する。
【0011】上述したように、レジスタファイル104
は処理装置110〜112の処理結果を書き戻すための
レジスタであり、スコアボード105はレジスタファイ
ル104のアドレス情報を格納する。また、リオーダバ
ッファ106は、各処理装置110〜112から出力さ
れた処理結果を命令ストリームの順番に戻してレジスタ
ファイル104に書き込む。
【0012】レジスタファイル104及びリオーダバッ
ファ106内にある該当レジスタ番号のデータが有効で
あるときは、同データが命令発行装置107に送られ
る。命令発行装置107は、3つの処理装置110〜1
12へ命令及びソースデータを発行するもので、命令発
行の方式をアウト・オブ・オーダ命令発行方式としてい
る。
【0013】レジスタファイル104及びリオーダバッ
ファ106から送られたデータは命令発行装置107の
発行待ち命令保持部(後述の図10に示す)に保持され
る。この発行待ち命令保持部のデータフィールドにおい
て、有効フラグが立っている場合は、これに対応するデ
ータフィールドの値が有効であり、同フラグが立ってい
ない場合は、データフォワーディングパス108から送
られてくるアドレス及びデータを監視することになる。
【0014】各処理装置110〜112は、命令発行装
置107より送られる複数の命令を同時に取り込み実行
し、その処理結果であるデータとその書き戻しアドレス
をリオーダバッファ106に送ると共に、データフォワ
ーディングパス108を介して命令発行装置107の発
行待ち命令保持部へ送る。
【0015】
【発明が解決しようとする課題】しかしながら、上記従
来のプロセッサでは、アウト・オブ・オーダ命令発行方
式を実現する場合において同時発行命令数を多くしてい
ったとき、特に命令発行装置107の負荷が増大すると
いう問題があった。
【0016】この点を図10を用いて具体的に説明す
る。図10は、図9に示した命令発行装置107内の発
行待ち命令保持部の構成を示すブロック図である。
【0017】この命令発行装置107の発行待ち命令保
持部は、現在保持している各発行待ち命令の各ソースデ
ータに対し、少なくとも処理装置の個数分の比較器を持
っている。上記従来例では、図8に示すように、3台の
処理装置110〜112に対応して3つの比較器20
1,202,203を持ち、この3つの比較器を用い
て、データフォワーディングパス108から送られてく
る各アドレスと、フィールドに保持されているソースレ
ジスタ番号とを各々比較する。その比較結果から選択信
号生成回路204で生成された選択信号S204によ
り、データフォワーディングパス108からのデータを
セレクタ205で選択すると共に、ORゲート206の
イネーブル出力ENにより命令有効フラグViを立ると
いう構成になっている。そのため、比較回路が増え、更
にデータを選択するまでのパスが長くなるので、遅延時
間が大きくなる。
【0018】すなわち、従来の命令発行装置107で
は、比較器201,202,203により、各処理装置
110〜112が出力する処理結果を書き戻すアドレス
と、発行待ちしている命令が必要とするソースデータの
アドレスとを比較し、一致したならば、一致した処理装
置からの出力をデータフォワーディングパス108を介
して発行待ちの命令のソースデータとして取り込み、処
理装置へ命令を投入する。実際にはフォワード元は処理
装置の数だけではなく、リオーダバッファ106からも
あり、さらには、リオーダバッファ106の回路規模縮
小のため、各処理装置の後段に、ダミーのパイプライン
を付加している場合が多く、その数は多大となる。
【0019】例えばデータ保持装置が32ワードのレジ
スタファイルであるとしても、1つの比較につき5bi
tの比較器が必要となる。近年では、更に処理効率を増
すため、レジスタリネーミングの手法(発行待ちしなく
とも済むようにアドレスを変更する)が取り入れられて
いるが、同手法を用いた場合、必要となる比較器のビッ
ト数は更に多くなり、命令発行装置の負荷は更に大きく
なる。そのため、回路規模及び処理速度の増大を招いて
しまう。
【0020】本発明は、上述の如き従来の問題点を解決
するためになされたもので、その目的は、命令発行装置
の回路規模を大幅に縮小すると共に処理速度の高速化を
可能にする並列処理装置を提供することである。また、
その他の目的は、処理速度の高速化を可能にした並列処
理装置の命令発行方式を提供することである。
【0021】
【課題を解決するための手段】上記目的を達成するため
に、第1の発明である並列処理装置の特徴は、並列処理
を行うべく命令を実行する複数の処理装置と、前記複数
の処理装置に対し命令と該命令の実行に必要となるソー
スデータとを投入する命令発行装置と、前記ソースデー
タを保持するデータ保持装置と、前記命令発行装置が命
令を発行するために必要なデータの状態を保持するデー
タ状態保持装置とを備え、前記処理装置の処理結果デー
タを、前記ソースデータとして前記データ保持装置へ送
ると同時にデータフォワード装置を介して前記命令発行
装置へ送る並列処理装置において、前記データ状態保持
装置は、前記処理装置の処理結果データが書き戻される
前記データ保持装置のアドレス情報と共に、前記処理結
果データがどの処理装置より出力されるのかを示すデー
タ出力装置情報を保持する構成にし、前記命令発行装置
は、前記データ出力装置情報を参照して、前記データフ
ォワード装置を介して送られてくるデータを前記ソース
データとして取り込む構成にしたことにある。
【0022】この第1の発明によれば、例えば、命令キ
ャッシュより読み出された命令から、必要とされるソー
スデータが格納されているデータ保持装置のソースアド
レスがデータ保持装置及びデータ状態保持装置へ送ら
れ、処理結果データを書き戻すデータ保持装置のアドレ
スとなる書き戻しアドレスが命令発行装置及びデータ状
態保持装置へ送られ、命令コードは命令発行装置に送ら
れる。データ状態保持装置にあるデータ状態情報を検索
してデータ保持装置に目的のソースデータがある場合、
同データは命令発行装置に送られる。目的のソースデー
タが処理中のデータである場合、データ出力装置情報及
びソースアドレスが命令発行装置に送られる。命令発行
装置は上記命令コード、書き戻しアドレス、及び必要と
するデータがあった場合は同データを、なかった場合は
データ出力装置情報及びソースアドレスを命令保持装置
に保持する。データ状態保持装置は、書き戻しアドレス
のデータの状態を、現在処理中であることを示す状態に
する。発行待ち命令に必要とするデータが揃っていない
場合、命令発行装置は、データ出力装置情報を参照し
て、前記データフォワード装置を介して送られてくるデ
ータを前記ソースデータとして取り込む。
【0023】第2の発明である並列処理装置の特徴は、
並列処理を行うべく命令を実行する複数の処理装置と、
前記複数の処理装置に対し命令と該命令の実行に必要と
なるソースデータとを投入する命令発行装置と、前記ソ
ースデータを保持するデータ保持装置と、前記命令発行
装置が命令を発行するために必要なデータの状態を保持
するデータ状態保持装置とを備え、前記処理装置の処理
結果データを、前記ソースデータとして前記データ保持
装置へ送ると同時にデータフォワード装置を介して前記
命令発行装置に送る並列処理装置において、前記データ
状態保持装置は、前記処理装置の処理結果データが書き
戻される前記データ保持装置のアドレス情報と共に、前
記処理結果データがどの処理装置により出力されるのか
を示すデータ出力装置情報を保持する構成にし、前記命
令発行装置は、前記データフォワード装置から送られて
くる前記複数の処理装置の処理結果データを前記データ
出力装置情報により選択するデータ選択手段と、前記デ
ータフォワード装置から送られてくる前記複数の処理装
置の処理結果データが書き戻される前記データ保持装置
のアドレスを前記データ出力装置情報により選択するア
ドレス選択手段と、前記アドレス選択手段により選択さ
れたアドレスと、必要とするソースデータのアドレスと
を比較するアドレス比較手段とを備え、前記アドレス選
択手段により一致をみたアドレスに対応する処理結果デ
ータをソースデータとして取り込むように構成したこと
にある。
【0024】この第2の発明によれば、発行待ち命令に
必要とするデータが揃っていない場合、命令保持装置に
保持されたデータ出力装置情報が選択信号としてアドレ
ス選択手段及びデータ選択手段に送られる。データフォ
ワード装置により送られてくる複数のアドレス情報か
ら、アドレス選択手段により選択されたアドレス情報
は、命令保持装置に保持されているソースアドレスと比
較手段により比較される。同比較手段によりアドレスの
一致が確認されると、データ選択手段により選択された
データがソースデータとして命令保持装置に格納され
る。
【0025】第3の発明である並列処理装置の特徴は、
上記第1の発明または第2の発明において、前記命令発
行装置を、保持している命令とソースデータを前記処理
装置に発行するときに、どの処理装置に発行したかを示
す情報を前記データ出力装置情報として前記データ状態
保持装置へ送るように構成したことにある。
【0026】この第3の発明によれば、命令発行装置に
おいて、必要とするデータが全て揃い、且つ同命令を発
行する処理装置が決定した場合、同命令は処理装置に発
行され且つそのデータ出力装置情報はデータ状態保持装
置へ送られ、同命令の書き戻しアドレスに対応するデー
タ出力装置情報を書き換える。
【0027】第4の発明である並列処理装置の命令発行
方式の特徴は、並列処理を行うべく命令を実行する複数
の処理装置と、前記複数の処理装置に対し命令と該命令
の実行に必要となるソースデータとを投入する命令発行
装置と、前記ソースデータを保持するデータ保持装置
と、前記命令発行装置が命令を発行するために必要なデ
ータの状態を保持するデータ状態保持装置とを備え、前
記処理装置の処理結果データを、前記ソースデータとし
て前記データ保持装置へ送ると同時にデータフォワード
装置を介して前記命令発行装置に送る並列処理装置にお
いて、前記処理装置の処理結果データが書き戻される前
記データ保持装置のアドレス情報と共に、前記処理結果
データがどの処理装置により出力されるのかを示すデー
タ出力装置情報を前記データ状態保持装置に予め保持し
ておき、前記命令発行装置は、前記データ出力装置情報
を参照して、前記データフォワード装置を介して送られ
てくる処理結果データを前記ソースデータとして取り込
むようにしたことにある。
【0028】この第4の発明によれば、上記第1の発明
と同様の作用を奏する。
【0029】第5の発明である並列処理装置の命令発行
方式の特徴は、上記第4の発明において、前記命令発行
装置は、前記データフォワード装置から送られてくる前
記複数の処理装置の処理結果データが書き戻される前記
データ保持装置のアドレスの中から、前記データ出力装
置情報により所定のアドレスを選択し、その選択された
アドレスと、必要とするソースデータのアドレスとを比
較し、その比較結果が一致をみたアドレスに対応する処
理結果データをソースデータとして取り込むことにあ
る。
【0030】この第5の発明によれば、上記第2の発明
と同様の作用を奏する。
【0031】第6の発明である並列処理装置の命令発行
方式の特徴は、上記第4または第5の発明において、前
記命令発行装置は、保持している命令とソースデータを
前記処理装置に発行するときに、どの処理装置に発行し
たかを示す情報を前記データ出力装置情報として前記デ
ータ状態保持装置へ送ることにある。
【0032】この第6の発明によれば、上記第3の発明
と同様の作用を奏する。
【0033】
【発明の実施の形態】以下、本発明の実施形態を図面に
基づいて説明する。図1は、本発明の実施形態に係る命
令発行装置に設けられた発行待ち命令保持部の構成を示
すブロック図である。図2は、図1に示した命令発行装
置を搭載したプロセッサの構成を示すブロック図であ
る。
【0034】本実施形態のプロセッサは、命令発行の方
式をアウト・オブ・オーダ命令発行方式とし、同時命令
発行数を2とし、さらにこの命令を実行する処理装置の
数を3と仮定する並列処理を行うものとする。また、問
題簡略化のため、前述したレジスタリネーミングの手法
は使用しない。なお、データキャッシュは3台の処理装
置10,11,12に含まれるものとする。
【0035】本実施形態のプロセッサは、図2に示すよ
うに、命令を格納する命令キャッシュ21と、その命令
キャッシュ21より読み出された命令を一時保持するラ
ッチ22とを備え、そのラッチ22の出力側には、レジ
スタファイル(データ保持装置)23と、スコアボード
(データ状態保持装置)24と、リオーダバッファ25
と、命令発行装置26とが接続されている。
【0036】命令キャッシュ21より読み出される1つ
の命令は、命令コード、ソース(0)レジスタ番号、ソ
ース(1)レジスタ番号、及び書き戻しレジスタ番号か
らなり、ソース(0)レジスタ番号及びソース(1)レ
ジスタ番号は、当該命令実行に必要なデータのアドレス
であり、書き戻しレジスタ番号は、当該命令を実行する
処理装置10〜12の処理結果であるデータを書き戻す
ためのアドレスである。読み出される命令数は、単数あ
るいは複数でも構わない。通常、スーパースカラアーキ
テクチャの場合は複数の命令を同時に読み出すようにな
っている。
【0037】レジスタファイル23は、処理装置10〜
12の処理結果を書き戻すためのレジスタであり、スコ
アボード24は、レジスタファイル23のアドレス情報
と共に、本発明の特徴を成すデータ出力装置番号(デー
タ出力装置情報)を保持する。ここで、データ出力装置
番号は、前記処理結果であるデータがどの処理装置から
出力されるのかを示す情報である。リオーダバッファ2
5は、各処理装置10〜12から出力された処理結果を
命令ストリームの順番に戻してレジスタファイル23に
書き込む機能を有する。
【0038】命令発行装置26は、3台の処理装置10
〜12へ命令及びソースデータを発行するもので、後述
するような発行待ち命令保持部27と命令発行調停部2
8を備えている。
【0039】また、各処理装置10〜12は、命令発行
装置26より送られる命令を取り込み実行し、その処理
結果はリオーダバッファ25に送られると共に、データ
フォワーディングパス29を介して命令発行装置26の
発行待ち命令保持部27へ送られる。
【0040】図3は、1命令分の入出力ポートを示した
スコアボード24の構成を示す図である。
【0041】このスコアボード24には、レジスタファ
イル23のアドレス情報として、1命令毎に、ソース
(0)レジスタ番号とソース(1)レジスタ番号と書き
戻しレジスタ番号をそれぞれ保持するフィールドが設け
られている。さらに、これらの各フィールドには、該当
レジスタ番号に対応して、そのデータが処理装置10〜
12内で現在処理中であるか否かを示すビジィフラグ
(図中ではVで表示)とデータ出力装置番号とが保持さ
れているようになっている。
【0042】そして、1命令毎に、前記のソース(0)
レジスタ番号とソース(1)レジスタ番号と書き戻しレ
ジスタ番号とをそれぞれ入力する入力ポートIP1,I
P2,IP3が設けられ、さらに、前記フィールドに保
持されているソース(0)レジスタ番号、ソース(0)
レジスタ番号、及び書き戻しレジスタ番号をリセットす
るためのリセット信号RST入力用の入力ポートIP4
と、書き戻しレジスタ番号とデータ出力装置番号をそれ
ぞれセットするための入力ポートIP5,IP6とが設
けられている。ここで、入力ポートIP1,IP2,I
P3は命令キャッシュ21の出力側に接続され、入力ポ
ートIP4,IP5,IP6は命令発行装置26の出力
側に接続されている。
【0043】また、スコアボード24の出力ポートOP
1,OP2から命令発行装置26へ、ソース(0)レジ
スタ番号及びソース(1)レジスタ番号にそれぞれ対応
したソースデータ有効信号VDS(0),VDS(1)
が出力され、さらに、出力ポートOP3,OP4からそ
れぞれソース(0)及びソース(1)用のデータ出力装
置番号が命令発行装置26へ出力される。また、出力ポ
ートOP5からは、ライト/ライトコンフリクトがある
ときに、命令読み出し停止を指示するストール信号ST
Lが命令キャッシュ21へ出力されるようになってい
る。
【0044】なお、図3には1命令分の入出力ポートを
示したが、実際には、入力ポートIP1〜IP3と出力
ポートOP1〜OP4は命令発行装置26への投入命令
数分だけ設けられ、入力ポートIP4〜IP6は命令発
行装置26での同時発行命令数だけ設けられている。
【0045】次に、命令発行装置26内の発行待ち命令
保持部27の構成を図1を用いて説明する。
【0046】同図に示す発行待ち命令保持部27は、ソ
ース1つ分の保持手段31と、これに対応したアドレス
選択回路32、データ選択回路33、アドレス比較器3
4、及び最終OR回路35からなるブロック構成を示し
ている。
【0047】発行待ち命令保持部27には、発行待ちの
命令1つに対し、同命令有効フラグVi、命令コード、
ソース(0)、ソース(1)、及び書き戻しレジスタ番
号が保持されるフィールド41がある。さらに、各ソー
ス(0),(1)のフィールドには保持手段31がそれ
ぞれ設けられ、例えばソース(0)の保持手段31は、
当該ソースのソース有効フラグVs(0)と、ソース
(0)レジスタ番号と、ソース(0)データと、データ
出力装置番号とが保持されている。ソース有効フラグV
s(0または1)は、スコアボード24から送られるソ
ースデータ有効信号VDS(0)(またはVDS
(1))の値が保持され、同フラグが立っている場合は
ソースデータのフィールドの値が有効であることを示
す。
【0048】また、アドレス選択回路32とデータ選択
回路33は、前記保持手段31中のデータ出力装置番号
をセレクト信号として機能する。アドレス選択回路32
及びデータ選択回路33の入力には、各処理装置10〜
12からデータフォワーディングパス29を通してそれ
ぞれ送られてきた処理結果であるデータとその書き戻し
レジスタ番号とが供給されるようになっている。
【0049】そして、アドレス選択回路32の選択結果
と保持手段31のソースレジスタ番号との一致、不一致
がアドレス比較器34で比較される。その比較結果が、
前記ソース有効フラグVs(0または1)のイネーブル
信号ENを生成する最終OR回路35の入力となり、比
較結果が一致である場合はソース有効フラグVs(0ま
たは1)を立て、データ選択回路33によって選択され
ているデータをソースデータとしてそのフィールドに保
持する。
【0050】図4は、命令発行装置26内に設けられた
命令発行調停部28の構成を示すブロック図である。
【0051】この命令発行調停部28は、例えば、同時
発行可能判定数を3とし、同時発行可能命令数を2とし
た構成であり、命令側の発行準備が整ったかどうかを調
べる発行準備調査回路51と、発行する命令をどの処理
装置に割当てるかを決定する命令割当て回路52とから
構成されている。
【0052】発行準備調査回路51は、上記発行待ち命
令保持部27で発行待ちになっている命令のうち、例え
ば3つの命令(0),(1),(2)を同時に監視し、
それら各命令(0),(1),(2)において、必要と
するソースデータが全て揃ったかどうかで発行準備が整
ったか否かを調べる。そのため、回路としては、図1に
示した命令自体の有効フラグViと、ソース(0)の有
効フラグVs(0)と、ソース(1)の有効フラグVs
(1)との論理積を行うことになる。すなわち、同時に
発行可能判定を行う命令数を3とした場合、これに対応
して3つのANDゲート51a,51b,51cで構成
する。このANDゲート51a,51b,51cから
は、各命令の発行準備が整ったかを示すレディ信号RD
Y(0),RDY(1),RDY(2)が出力される。
【0053】なお、同時に発行可能判定を行う命令数を
3以上に増やしても構わない。これは、ANDゲート数
を増やし、これに命令割当て回路52の論理を対応させ
ることで可能となる。
【0054】命令割当て回路52には、前記発行準備調
査回路51のANDゲート51a〜51cから出力され
る前記レディ信号RDY(0)〜RDY(2)と、各命
令(0),(1),(2)が必要とするリソースタイプ
(乗算や加減算)RSP(0),RSP(1),RSP
(2)と、各処理装置10〜12から発せられる命令受
け付けが可能かどうかを示すリソースビジィ信号RSB
(0),RSB(1),RSB(2)が供給される。
【0055】命令割当て回路52は、これらの入力信号
に基づき、後述するアルゴリズム(図6〜図8)に従っ
て、命令選択信号SL(0),SL(1),SL(2)
と、スコアボード24に書き込むためのデータ出力装置
番号とその書き込みレジスタ番号からなるRNI
(0),RNI(1)信号とを出力する。
【0056】図5は、命令発行装置26と処理装置10
〜12の接続関係を示す図である。
【0057】命令発行装置26と処理装置10〜12と
の間には、セレクタ61,62,63が設けられてい
る。このセレクタ61〜63は、発行待ち命令保持部2
7中の命令のうち発行準備が整った3つの命令をそれぞ
れ入力とし、前記命令選択信号SL(0),SL
(1),SL(2)により、そのうちの1つを選択して
処理装置10〜12へ出力するようになっている。
【0058】次に、上記構成のプロセッサの処理の流れ
を説明する。
【0059】命令キャッシュ21より命令が読み出され
ると、その命令の各ソースレジスタ番号は、レジスタフ
ァイル23、スコアボード24及びリオーダバッファ2
5へ送られる。
【0060】まず、入力された1命令分に関してスコア
ボード24の動作を説明する。スコアボード24にソー
ス(0)レジスタ番号及びソース(1)レジスタ番号が
入力されると、該当レジスタ番号のデータのビジィフラ
グVがチェックされる。このフラグVが立っているとき
にはデータは処理装置内で現在処理中であることを示
し、ソース(0)レジスタ番号の場合では、ソース
(0)レジスタ番号に対応したソースデータ有効信号V
DS(0)を無効状態にし、ソース(0)レジスタ番号
に書き込まれるべきデータを出力する処理装置の番号で
あるデータ出力装置番号を出力する。また、ソース
(1)レジスタ番号に関しても同様の処理を行う。
【0061】同時にスコアボード24には、書き戻しレ
ジスタ番号も送られ、該当レジスタ番号のビジィフラグ
Vを調べ、フラグVが立っていれば、ライト/ライトコ
ンフリクトがあるとして、ストール信号STLを出力す
る。ビジィフラグVが立っていなければ、これを立て
る。このライト/ライトコンフリクトの判定、ビジィフ
ラグVを立てるタイミングはアーキテクチャにより様々
考えられるが、本例では、初めて命令がスコアボード2
4にアクセスするこのタイミングで立てるものとする。
【0062】ソースデータ有効信号VDS(0)が有効
である場合、レジスタファイル23及びリオーダバッフ
ァ25内にある該当レジスタ番号のデータが有効なもの
とされ、同データが命令発行装置26へ送られる。その
際、リオーダバッファ25にデータがあった場合は、そ
ちらの方が最新の有効データとして、レジスタファイル
23のデータよりも優先される。
【0063】上記のスコアボード24、レジスタファイ
ル23及びリオーダバッファ25から送られた信号及び
データは、命令発行装置26の発行待ち命令保持部27
に保持される。この発行待ち命令保持部27のソース
(0),ソース(1)のフィールドにおいて、それぞれ
ソース有効フラグVs(0),Vs(1)が立っている
場合は、これに対応するデータフィールドの値が有効で
あり、同フラグVs(0),Vs(1)が立っていない
場合は、データフォワーディングパス29から送られて
くるアドレス及びデータを監視することになる。
【0064】本実施形態では、処理装置の数を3と仮定
しているため、データフォワーディングパス29から送
られてくるアドレス及びデータの数はそれぞれ3個であ
る。図1に示す通り、データ出力装置番号に従い、各々
3つの内から1つのアドレス及びデータをセレクタ3
2,33によりそれぞれ選択する。選択されたアドレス
は、発行待ち命令保持部27に保持されているソース
(0)レジスタ番号と比較器34により比較され、一致
した場合はソース有効フラグVs(0)を立て、同時に
選択されているデータをソース(0)データとして保持
する。同様の処理をソース(1)に対しても行い、この
ように本実施形態では1命令に対しソースが2つあるの
で、各々同様の処理を行う。
【0065】ソース(0)及びソース(1)のデータが
両方有効となると、命令発行調停部28の発行準備調査
回路51により、命令発行の準備が整ったと判定され、
その後、命令割当て回路52によって発行する命令をど
の処理装置に割り当てるかが以下のアルゴリズムで決定
される。
【0066】次に、命令発行調停部28のアルゴリズム
を図6,図7,図8のフローチャートを参照しつつ説明
する。なお、図6,図7,図8は連続したフローチャー
トであり、図6と図7は接続子K1で接続され、同様に
図7と図8とは接続子K2で、図8と図6とは接続子K
3で接続されている。
【0067】本実施形態では、同時発行可能判定数は3
とし、同時発行可能命令数は2とする。命令(0)、命
令(1)及び命令(2)では、命令ストリームにおいて
先に実行されるべき命令の順に命令(0)、命令(1)
及び命令(2)となっているものとする。すなわち、命
令(0)と命令(1)では命令(0)を優先的に処理
し、命令(1)と命令(2)では命令(1)を優先的に
処理する。また、便宜的にデータ出力装置番号は、処理
装置10の場合を0、処理装置11の場合1、処理装置
12の場合を2とする。
【0068】図6において、命令発行調停部28では、
まず命令(0)が発行可能かどうかを調べる。図4に示
すレディ信号RDY(0)が有効の場合は(ステップS
11)、命令(0)は発行可能として、同命令(0)の
リソースタイプを各処理装置10〜12のタイプと比較
する(ステップS12,S13,S14)。
【0069】例えば、処理装置10と処理装置11をA
LUとし、処理装置12を乗算器とした場合において、
命令(0)が乗算命令のときは、処理装置12が発行先
対象として選択され、処理装置12がビジィでなければ
発行先として選択される(ステップS15)。処理装置
12への命令選択信号SL(2)は命令(0)を選択す
ることを示す“0”となり、スコアボード24に書き込
むためのデータ出力装置番号を2とし、その書き込みレ
ジスタ番号と共にRNI(0)に同情報をセットする
(ステップS16)。もし、処理装置12がビジィの場
合、命令(0)はウェイトとなり、発行待ちとなる(ス
テップS17)。
【0070】また、処理装置10が発行先として選択さ
れた場合は(ステップS18)、処理装置10への命令
選択信号SL(0)は命令(0)を選択することを示す
“0”となり、スコアボード24に書き込むためのデー
タ出力装置番号を0とし、その書き込みレジスタ番号と
共にRNI(0)に同情報をセットする(ステップS1
9)。もし、処理装置10がビジィの場合、処理装置1
1を調べる。
【0071】処理装置11が発行先として選択された場
合は(ステップS20)、処理装置11への命令選択信
号SL(1)が命令(0)を選択することを示す“0”
となり、スコアボード24に書き込むためのデータ出力
装置番号を1とし、その書き込みレジスタ番号と共にR
NI(0)に同情報をセットする(ステップS21)。
もし、処理装置11がビジィの場合、前述した処理装置
12を調べることになる。
【0072】図7において、次に命令(1)に対する処
理を行う。命令(1)が発行可能であれば(ステップS
31)、命令(1)のリソースタイプにより、命令を発
行する処理装置を選択する(ステップS32,S33,
S34)。該当する処理装置10,11及び12が全て
ビジィ(ステップS35,S36,S37)、あるいは
同処理装置が既に命令(0)の命令発行対象となってい
る場合、つまり既に命令選択信号SL(0),SL
(1),SL(2)が“0”にセットされている場合は
(ステップS38,S39,S40)、命令(1)はウ
ェイトされる(ステップS41)。
【0073】例えば命令(0)が乗算命令、命令(1)
も乗算命令で、命令(0)により乗算器である処理装置
12が使われる場合は発行待ちとなる。命令(0)がA
LU命令であり、命令(1)がALU命令であれば、命
令(0)が既に処理装置10に割り付けられているが、
命令(1)は処理装置11でも処理可能であるため、空
いている処理装置11に割り付けられ、同時発行可能と
なる。
【0074】発行先の処理装置が決定すると、同様に処
理装置への命令選択信号を決定すると共に(ステップS
42,S43,S44)、スコアボード24へ書き戻す
データ出力装置番号を決定する。命令(0)が発行され
る場合(ステップS45,S46,S47)には、スコ
アボード24へ書き戻すデータ出力装置番号及びその書
き込みレジスタ番号はRNI(1)にセットされ(ステ
ップS48,S49,S50)、命令(0)が発行され
ない場合、RNI(0)にセットされる(ステップS5
1,S52,S53)。
【0075】図8に示す命令(2)では、命令(1)が
命令(0)に対して受けた制約に加え、命令(0)、命
令(1)が両方発行されるかどうかにより、命令(2)
が発行可能の場合でも発行できないという制約が加えら
れる。もし命令(0)、命令(1)どちらか一方、ある
いは双方とも発行不可能であり且つ命令(2)が発行可
能であるときのみ命令を発行する。
【0076】すなわち、図8において、ステップS61
〜ステップS71までは、上記図7の命令(1)に関す
るステップS31〜ステップS41までと同様の処理を
行う。ステップS68で命令選択信号SL(0)がセッ
トされないと判定されたときには、ステップS72へ進
んで命令(0)が発行されるか否かを判定する。その判
定結果がいずれの場合も、命令(1)が発行されるか否
かを判定する(ステップS73,S74)。ステップS
73で命令(1)が発行されないと判定されたときに
は、スコアボード24に書き込むためのデータ出力装置
番号を0とし、その書き込みレジスタ番号と共にRNI
(0)に同情報をセットする(ステップS75)。ま
た、ステップS73で命令(1)に発行されると判定さ
れたとき、またはステップS74で命令(1)に発行さ
れないと判定されたときは、データ出力装置番号を0と
し、その書き込みレジスタ番号と共にRNI(1)に同
情報をセットする(ステップS76)。ステップS7
5,S76の処理後は、処理装置10への命令選択信号
SL(0)が命令(2)を選択することを示す“2”と
する(ステップS77)。もし、ステップS74で命令
(1)に発行されると判定されたときは、命令(2)は
発行待ちとなる(ステップS71)。
【0077】ステップS69で命令選択信号SL(1)
がセットされないと判定されたときには、ステップS7
8〜ステップS80において、前記ステップS72〜ス
テップS74と同様の処理を行い、ステップS81,S
82でスコアボード24に書き込むためのデータ出力装
置番号を1とし、その書き込みレジスタ番号と共にRN
I(0),RNI(1)に同情報をセットする。そし
て、ステップS81,S82の処理後は、処理装置11
への命令選択信号SL(1)が命令(2)を選択するこ
とを示す“2”とする(ステップS83)。もし、ステ
ップS80で命令(1)に発行されると判定されたとき
は、命令(2)は発行待ちとなる(ステップS71)。
【0078】また、ステップS70で命令選択信号SL
(2)がセットされないと判定されたときには、ステッ
プS84〜ステップS86において、前記ステップS7
2〜ステップS74と同様の処理を行い、ステップS8
7,S88でスコアボード24に書き込むためのデータ
出力装置番号を2とし、その書き込みレジスタ番号と共
にRNI(0),RNI(1)に同情報をセットする。
そして、ステップS87,S88の処理後は、処理装置
12への命令選択信号SL(2)が命令(2)を選択す
ることを示す“2”とする(ステップS89)。もし、
ステップS86で命令(1)に発行されると判定された
ときは、命令(2)は発行待ちとなる(ステップS7
1)。
【0079】上記のようにデータ出力装置番号のスコア
ボード24への書き戻しのパスも、命令(0)、命令
(1)の発行可能状態によって変化する。もっとも、同
モデルの仮定では、命令(2)が発行可能な場合、常に
RNI(1)を使用しても問題はない。しかし、例えば
同時命令発行数4、命令発行可能判定数8といった場合
では、上述の図6,図7及び図8に示すアルゴリズムを
拡張してゆけばよい。
【0080】同時命令発行数及び命令発行可能判定数
は、処理するプログラムの並列度、処理装置の数などの
制約により変化する。命令を発行すると、空いたフィー
ルドを詰める。すなわち、例えば命令(0)のみ発行し
た場合、命令(1)の内容を命令(0)のフィールド
に、命令(2)の内容を命令(1)のフィールドに、そ
して命令(2)のフィールドに新たな命令を読み込む。
これにより、命令発行装置26内での、命令の優先順位
を保つ。
【0081】命令発行と同時に、スコアボード24に、
RNI(0)、及びRNI(1)により送られてきた書
き込みレジスタ番号に対応するデータ出力装置番号をセ
ットする。後続命令で、同レジスタ番号のデータをソー
スデータとして使用する場合、同データ出力装置番号を
受け取り、命令発行装置26に送られる。
【0082】各処理装置10〜12は、命令発行装置2
6より送られる選択信号SL(0),SL(1),SL
(2)に従い、命令を取り込み実行する。処理結果であ
るデータは書き戻しレジスタ番号と共にデータフォワー
ディングパス29へ送られる。後続命令で同データを必
要とする命令は、同データを出力する処理装置を監視し
ており、書き戻しレジスタ番号により必要なデータであ
ることを判定し、データを取り込む。
【0083】本実施形態は次のような利点を有してい
る。
【0084】本実施形態(図1)と従来の発行待ち命令
保持部(図10)とを比較しても判るように、本実施形
態では、発行待ち命令保持部にデータ出力装置番号を保
持する部分とアドレス選択回路32が増加する一方で、
図10に見られる選択信号生成回路がなくせ、アドレス
比較器及びイネーブル信号生成用の最終OR回路の数が
格段に減少している。また、図からも分かる通り、イネ
ーブル信号生成までの回路が簡略化されているため、同
信号生成までの時間も短く、データを選択するまでの時
間も短かくなる。
【0085】
【発明の効果】以上詳細に説明したように、第1の発明
である並列処理装置によれば、例えばアウト・オブ・オ
ーダ命令発行のための命令発行装置の比較器数を減ら
し、データ待ちの判定回路規模を大幅に縮小できると共
に、回路の高速化を行うことが可能になる。これによ
り、同時発行命令数をより多くした場合の命令発行装置
の負荷を軽減することがと可能になり、マイクロプロセ
ッサにおける並列処理性能が向上する。
【0086】第2の発明である並列処理装置によれば、
上記第1の発明と同様の効果を簡単な構成で実現するこ
とができる。
【0087】第3の発明である並列処理装置によれば、
上記第1または第2の発明を簡易且つ的確に実現するこ
とができる。
【0088】第4の発明である並列処理装置の命令発行
方式によれば、上記第1の発明と同様の効果を奏するこ
とができる。
【0089】第5の発明である並列処理装置の命令発行
方式によれば、上記第4の発明を簡易且つ的確に実現す
ることができる。
【0090】第6の発明である並列処理装置の命令発行
方式によれば、上記第4または第5の発明を簡易且つ的
確に実現することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る命令発行装置に設けら
れた発行待ち命令保持部の構成を示すブロック図であ
る。
【図2】図1に示した命令発行装置を搭載したプロセッ
サの構成を示すブロック図である。
【図3】1命令分の入出力ポートを示したスコアボード
24の構成を示す図である。
【図4】命令発行装置26内に設けられた命令発行調停
部28の構成を示すブロック図である。
【図5】命令発行装置26と処理装置10〜12の接続
関係を示す図である。
【図6】命令発行調停部28のアルゴリズムを示すフロ
ーチャートである。
【図7】図6の続きの図である。
【図8】図6及び図7の続きの図である。
【図9】従来のプロセッサの概略ブロック図である。
【図10】図9に示した命令発行装置107内の発行待
ち命令保持部の構成を示すブロック図である。
【符号の説明】
10,11,12 処理装置 21 命令キャッシュ 22 ラッチ 23 レジスタファイル(データ保持装置) 24 スコアボード(データ状態保持装置) 25 リオーダバッファ 26 命令発行装置 27 発行待ち命令保持部 28 命令発行調停部 31 保持手段 32 アドレス選択回路 33 データ選択回路 34 アドレス比較器

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 並列処理を行うべく命令を実行する複数
    の処理装置と、前記複数の処理装置に対し命令と該命令
    の実行に必要となるソースデータとを投入する命令発行
    装置と、前記ソースデータを保持するデータ保持装置
    と、前記命令発行装置が命令を発行するために必要なデ
    ータの状態を保持するデータ状態保持装置とを備え、前
    記処理装置の処理結果データを、前記ソースデータとし
    て前記データ保持装置へ送ると同時にデータフォワード
    装置を介して前記命令発行装置へ送る並列処理装置にお
    いて、 前記データ状態保持装置は、前記処理装置の処理結果デ
    ータが書き戻される前記データ保持装置のアドレス情報
    と共に、前記処理結果データがどの処理装置より出力さ
    れるのかを示すデータ出力装置情報を保持する構成に
    し、 前記命令発行装置は、前記データ出力装置情報を参照し
    て、前記データフォワード装置を介して送られてくるデ
    ータを前記ソースデータとして取り込む構成にしたこと
    を特徴とする並列処理装置。
  2. 【請求項2】 並列処理を行うべく命令を実行する複数
    の処理装置と、前記複数の処理装置に対し命令と該命令
    の実行に必要となるソースデータとを投入する命令発行
    装置と、前記ソースデータを保持するデータ保持装置
    と、前記命令発行装置が命令を発行するために必要なデ
    ータの状態を保持するデータ状態保持装置とを備え、前
    記処理装置の処理結果データを、前記ソースデータとし
    て前記データ保持装置へ送ると同時にデータフォワード
    装置を介して前記命令発行装置に送る並列処理装置にお
    いて、 前記データ状態保持装置は、前記処理装置の処理結果デ
    ータが書き戻される前記データ保持装置のアドレス情報
    と共に、前記処理結果データがどの処理装置により出力
    されるのかを示すデータ出力装置情報を保持する構成に
    し、 前記命令発行装置は、 前記データフォワード装置から送られてくる前記複数の
    処理装置の処理結果データを前記データ出力装置情報に
    より選択するデータ選択手段と、 前記データフォワード装置から送られてくる前記複数の
    処理装置の処理結果データが書き戻される前記データ保
    持装置のアドレスを前記データ出力装置情報により選択
    するアドレス選択手段と、 前記アドレス選択手段により選択されたアドレスと、必
    要とするソースデータのアドレスとを比較するアドレス
    比較手段とを備え、 前記アドレス選択手段により一致をみたアドレスに対応
    する処理結果データをソースデータとして取り込むよう
    に構成したことを特徴とする並列処理装置。
  3. 【請求項3】 前記命令発行装置は、保持している命令
    とソースデータを前記処理装置に発行するときに、どの
    処理装置に発行したかを示す情報を前記データ出力装置
    情報として前記データ状態保持装置へ送るように構成し
    たことを特徴とする請求項1または請求項2記載の並列
    処理装置。
  4. 【請求項4】 並列処理を行うべく命令を実行する複数
    の処理装置と、前記複数の処理装置に対し命令と該命令
    の実行に必要となるソースデータとを投入する命令発行
    装置と、前記ソースデータを保持するデータ保持装置
    と、前記命令発行装置が命令を発行するために必要なデ
    ータの状態を保持するデータ状態保持装置とを備え、前
    記処理装置の処理結果データを、前記ソースデータとし
    て前記データ保持装置へ送ると同時にデータフォワード
    装置を介して前記命令発行装置に送る並列処理装置にお
    いて、 前記処理装置の処理結果データが書き戻される前記デー
    タ保持装置のアドレス情報と共に、前記処理結果データ
    がどの処理装置により出力されるのかを示すデータ出力
    装置情報を前記データ状態保持装置に予め保持してお
    き、 前記命令発行装置は、前記データ出力装置情報を参照し
    て、前記データフォワード装置を介して送られてくる処
    理結果データを前記ソースデータとして取り込むように
    したことを特徴とする並列処理装置の命令発行方式。
  5. 【請求項5】 前記命令発行装置は、前記データフォワ
    ード装置から送られてくる前記複数の処理装置の処理結
    果データが書き戻される前記データ保持装置のアドレス
    の中から、前記データ出力装置情報により所定のアドレ
    スを選択し、 その選択されたアドレスと、必要とするソースデータの
    アドレスとを比較し、 その比較結果が一致をみたアドレスに対応する処理結果
    データをソースデータとして取り込むことを特徴とする
    請求項4記載の並列処理装置の命令発行方式。
  6. 【請求項6】 前記命令発行装置は、保持している命令
    とソースデータを前記処理装置に発行するときに、どの
    処理装置に発行したかを示す情報を前記データ出力装置
    情報として前記データ状態保持装置へ送ることを特徴と
    する請求項4または請求項5記載の並列処理装置の命令
    発行方式。
JP8305045A 1996-11-15 1996-11-15 並列処理装置及びその命令発行方式 Pending JPH10143365A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8305045A JPH10143365A (ja) 1996-11-15 1996-11-15 並列処理装置及びその命令発行方式
US08/970,802 US6260135B1 (en) 1996-11-15 1997-11-14 Parallel processing unit and instruction issuing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8305045A JPH10143365A (ja) 1996-11-15 1996-11-15 並列処理装置及びその命令発行方式

Publications (1)

Publication Number Publication Date
JPH10143365A true JPH10143365A (ja) 1998-05-29

Family

ID=17940455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8305045A Pending JPH10143365A (ja) 1996-11-15 1996-11-15 並列処理装置及びその命令発行方式

Country Status (2)

Country Link
US (1) US6260135B1 (ja)
JP (1) JPH10143365A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015518995A (ja) * 2012-06-05 2015-07-06 クアルコム,インコーポレイテッド レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
ATE467171T1 (de) 1998-08-24 2010-05-15 Microunity Systems Eng System mit breiter operandenarchitektur und verfahren
JP2003186938A (ja) * 2001-12-19 2003-07-04 Canon Inc スコアボードを用いた検証方法
US7711928B2 (en) * 2004-03-31 2010-05-04 Oracle America, Inc. Method and structure for explicit software control using scoreboard status information
US20090133022A1 (en) * 2007-11-15 2009-05-21 Karim Faraydon O Multiprocessing apparatus, system and method
US9740494B2 (en) * 2011-04-29 2017-08-22 Arizona Board Of Regents For And On Behalf Of Arizona State University Low complexity out-of-order issue logic using static circuits
US9645819B2 (en) * 2012-06-15 2017-05-09 Intel Corporation Method and apparatus for reducing area and complexity of instruction wakeup logic in a multi-strand out-of-order processor
US9164771B2 (en) * 2012-06-29 2015-10-20 Avaya Inc. Method for thread reduction in a multi-thread packet processor
WO2015123848A1 (zh) * 2014-02-20 2015-08-27 清华大学 可重构处理器及可重构处理器的条件执行方法
CN103853526B (zh) * 2014-02-20 2017-02-15 清华大学 可重构处理器及可重构处理器的条件执行方法
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5699537A (en) * 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015518995A (ja) * 2012-06-05 2015-07-06 クアルコム,インコーポレイテッド レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体
US9858077B2 (en) 2012-06-05 2018-01-02 Qualcomm Incorporated Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media

Also Published As

Publication number Publication date
US6260135B1 (en) 2001-07-10

Similar Documents

Publication Publication Date Title
JP2539974B2 (ja) 情報処理装置におけるレジスタの読出制御方式
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US5293500A (en) Parallel processing method and apparatus
US6269440B1 (en) Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously
US6128721A (en) Temporary pipeline register file for a superpipelined superscalar processor
JP2000330790A (ja) コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
WO1985000453A1 (en) Data processing system
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
JP2000503151A (ja) データの依存性に従って処理エレメントを動的に接続するように構成されたマイクロプセッサ
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
US7418575B2 (en) Long instruction word processing with instruction extensions
JPH10143365A (ja) 並列処理装置及びその命令発行方式
US5226166A (en) Parallel operation processor with second command unit
CN100437472C (zh) 流水线异步指令处理器电路
US5778208A (en) Flexible pipeline for interlock removal
US20080215859A1 (en) Computer with high-speed context switching
JP7124608B2 (ja) 計算機および計算方法
JPH0743648B2 (ja) 情報処理装置
US7401328B2 (en) Software-implemented grouping techniques for use in a superscalar data processing system
JP2000353091A (ja) コンピュータシステムにおける命令実行方法およびコンピュータシステム
JP2001051845A (ja) アウトオブオーダー実行方式
KR100322150B1 (ko) 부동 소수점 상태 및 제어 레지스터 인스트럭션을 단일 사이클
US7406590B2 (en) Methods and apparatus for early loop bottom detection in digital signal processors
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
JP5185478B2 (ja) パイプライン処理方法並びにその方法を利用するパイプライン処理装置