JPH04238537A - 並列パイプライン命令処理装置 - Google Patents

並列パイプライン命令処理装置

Info

Publication number
JPH04238537A
JPH04238537A JP3006284A JP628491A JPH04238537A JP H04238537 A JPH04238537 A JP H04238537A JP 3006284 A JP3006284 A JP 3006284A JP 628491 A JP628491 A JP 628491A JP H04238537 A JPH04238537 A JP H04238537A
Authority
JP
Japan
Prior art keywords
instruction
operand
processing
address
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3006284A
Other languages
English (en)
Other versions
JP2874351B2 (ja
Inventor
Tomohisa Arai
智久 新井
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP3006284A priority Critical patent/JP2874351B2/ja
Priority to KR1019920000926A priority patent/KR950012118B1/ko
Priority to EP19920101103 priority patent/EP0496407A3/en
Publication of JPH04238537A publication Critical patent/JPH04238537A/ja
Application granted granted Critical
Publication of JP2874351B2 publication Critical patent/JP2874351B2/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
    • 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
    • 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/3824Operand accessing
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

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】
【従来の技術】・VLIW型並列計算機VLIW(Ve
ry  Long  Instruction  Wo
rd)方式は、図6に示すように、比較的長い命令45
を多数のフィールドに分割し、これら各フィールドで多
数の演算器41〜44およびレジスタ・ファイル相互結
合網40,メモリ等を独立して制御することにより並列
処理を実現するものである。
【0003】このVLIW方式では、演算の並列性がコ
ンパイル時に抽出され、このコンパイラが並列演算可能
なものを1つの命令に合成する。これら並列演算器の数
に近い並列度が得られる場合に、高速処理が達成できる
。しかし、並列度が低い場合には、命令フィールドに空
きができて命令のビット使用効率が低下する。どの程度
命令フィールドを埋めることができるかはコンパイラの
能力およびソース・プログラムに依存する。
【0004】このVLIW方式では、プログラムの並列
性の抽出を行うコンパイル時に実行するため、データの
依存関係の検出等の複雑な処理を行なう必要がない。し
たがって、ハードウェア構成が簡単にできる。また、こ
のVLIW方式は、水平型マイクロ命令方式から派生し
た考え方に基づいており、機能レベルの低い演算器によ
るきめ細かな並列処理(低レベル並列処理)に適してい
る。
【0005】・命令パイプライン処理 計算機システムにおける機会命令の実行過程は、命令フ
ェッチ(読出し:IFという)、命令デコード(解読:
IDという)、オペランド・アドレス生成(OAという
)、オペランド・フェッチ(ODという)、演算実行(
EXという)、結果の書き戻し(WBという)を逐次的
に進めることによってなされる。命令パイプライン方式
は、この命令・実行の各ステージがオーバラップして実
行され、各実行ステージの実行時間が同一でそれがマシ
ン・サイクルに等しいとき、命令パイプライン方式は最
大の性能を発揮し、演算結果は1マシン・サイクル毎に
得られることになる。
【0006】この命令パイプラインの流れを乱す要因と
しては、 ・先行命令の演算結果を後続命令が必要とする場合・先
行命令が後続命令のオペランド・アドレスを決定する場
合 ・分岐が行こる場合 ・メモリ・アクセスの競合 ・先行命令が後続命令の内容を書き換える場合・割り込
み/例外が発生した場合 ・命令が複雑で演算実行に複数マシン・サイクル必要と
する場合などがある。
【0007】これらの命令パイプラインを乱す要因を最
小限に抑えるために種々の工夫がなされている。例えば
、条件分岐によるパイプラインの乱れを抑える工夫とし
て、プログラム・ループが格納できるような大きな命令
バッファを使用するループ・バッファ方式、条件成立お
よび条件不成立両方の場合の命令系列を処理する複数命
令流方式,分岐命令の履歴情報から分岐を予測する分岐
予測方式などが知られている。
【0008】最近の高性能マイクロプロセッサの分野で
は、機会命令セットを簡素化し高速処理を達成しようと
いうRISC(Reduced  Instructi
onSet  Computer)のアプローチが注目
されている。このRISCのアプローチは、高級言語プ
ログラムのトレース結果の解析と、スーパーコンピュー
タCray−1のハード・ワイヤード論理の成功から生
まれたもので、・レジスタ−レジスタ間演算を基本とす
る簡素な命令セット ・パイプラインの重視 ・1マシン・サイクル実行 ・最新コンパイラ技術の適用などを特徴とする。
【0009】レジスタ−レジスタ演算を基本とする命令
セットは、オペランド・アドレス生成(OA)を不要に
した。また、シンプルな命令セットは命令デコードを簡
単にし、命令デコード(ID)をオペランド・フェッチ
(OF)ステージに含めることが可能となり、また操作
の簡素化により実行(EX)時間の短縮化が図られ、連
続する命令間でのデータ依存性に起因するパイプライン
の乱れをなくすショートパス(SP)制御が追加された
。さらに、各ステージにおける処理のバランスを考慮し
、 ・命令フェッチ&オペランド・フェッチ(IF/OF)
・命令実行&ショートパス(EX/SP)・ライト・バ
ッグ(WB)の3ステージで構成される命令パイプライ
ンが開発されており、図7のように示される。
【0010】この命令パイプラインでは、命令1が分岐
命令の場合、その実行ステージ(EX)が終了した次の
サイクルで初めて、命令2のフェッチが可能となる。し
たがって、命令1の実行中にフェッチした命令は無効化
する必要があり、図8に示されるように命令パイプライ
ンに1マシン・サイクルの空きが生じて性能が低下する
【0011】この性能の低下を最小限に抑えるために、
遅延分岐機構が利用されている。これは、分岐命令はそ
の発行から1マシン・サイクル遅れて実行される遅延型
命令であるとみなし、コンパイラによる命令スケジュー
リングにより分岐命令直後の命令スロットを有効な命令
で埋めることにより、図9に示されるように、パイプラ
インの乱れを無くし性能を維持しようとするものである
。分岐命令直後の命令スロットに有効な命令を埋め込む
ことができなかった場合には、その命令スロットにはN
OP命令を埋め込む必要があり、この場合にはもちろん
性能の低下がある。また、どの程度の遅延命令スロット
を有効な命令で埋めることができるかはコンパイラの性
能に依存するが、最新のコンパイラ技術を用いた場合、
遅延命令スロットの約80〜90パーセントを有効に利
用することが可能となっている。
【0012】
【発明が解決しようとする課題】上述したVLIW方式
と命令パイプライン方式を組み合わせ並列パイプライン
命令処理装置を構成する場合で、例えば、命令パイプラ
イン方式の命令処理装置を4つ並列に並べ、4つのフィ
ールドを持つVLIW型の命令を実行する並列パイプラ
イン命令処理装置を考えてみる。
【0013】この並列パイプライン命令処理装置の命令
パイプラインは、上述したRISCマイクロプロセッサ
の命令パイプラインと同じ1マシン・サイクルの分岐遅
延を持っているとすると、この並列パイプライン命令処
理装置は1スロットの遅延命令スロットを持つことにな
るが、1命令が4つの命令フィールドから構成されてい
るため、実効的に4命令分の遅延命令スロットが生じる
ことになる。さらに、分岐命令を含む命令自身が持つ3
つの命令フィールドも、命令の依存関係を考慮すると遅
延命令スロットと同じ扱いをする必要がある。従って、
この4並列パイプライン命令処理装置は、7個の遅延命
令スロットを持つ直列パイプライン命令処理装置と等価
であることを考えることができる。
【0014】このような数多くの空き命令スロットに有
効な命令を埋め込んで活用する命令スケジューリングは
きわめて難しく、ほとんどの部分にNOP命令を埋め込
まなければならなくなる。前述のように1つの空き命令
スロットの利用率でさえ80〜90パーセントであり、
7個の空き命令スロットを有効利用することは至難の技
である。従って、分岐遅延が1マシン・サイクルである
従来のパイプライン構成をとった並列パイプライン命令
処理装置では、分岐命令の実行によりその処理性能が著
しく低下するという欠点がある。
【0015】本発明の目的は、分岐命令パイプラインを
分岐命令以外の命令パイプラインと異なったパイプライ
ン構造とすることにより、分岐遅延の生じない分岐を実
現し、VLIW型の並列処理と命令パイプライン方式に
よる処理の高速化を図ることのできる処理装置を提供す
ることにある。
【0016】
【課題を解決するための手段】本発明の構成は、n個(
nは1以上の自然数)の命令の並列の並びからなる命令
列を有しこれら命令列を記憶する第一の記憶手段と、こ
の第一の記憶手段から所定命令列を読出す命令列読出手
段と、この読出手段から読出した命令列中のn個の命令
に対応してこれら命令が指定する命令を処理するn個の
命令処理手段と、これら命令処理手段が使用するオペラ
ンドを記憶し、これら命令処理手段から独立してリード
/ライト可能な第二の記憶手段とを備えてn個の命令を
並列に処理する並列パイプライン命令処理装置において
、前記各命令処理手段は、前記命令が指定する命令の実
行に必要な入力オペランドを前記第二の記憶手段から読
出す入力オペランド読出手段と、このオペランド読出手
段から読出した入力をオペランドを使用して命令を実行
する命令実行手段と、この命令実行手段の命令実行の結
果得られた結果オペランドを入力オペランドとして必要
とする1マシン・サイクル後の命令列中の命令を実行す
る前記命令実行手段に該結果オペランドを直接供給する
ショートパス手段と、前記結果オペランドを前記第二の
記憶手段に書戻す結果オペランド書込手段とを備え、ま
ず前記命令列の読出しと前記入力オペランドの読出しを
行い、次に前記命令処理と前記ショートパスの発生を実
行し、次に前記結果オペランドの書き込みを行うパイプ
ライン命令処理により分岐命令以外の命令を実行し、一
方、前記命令処理手段中の1個の命令処理手段は、前記
命令が指定する入力オペランドを前記第二の記憶手段か
ら読出す入力オペランド読出手段と、実行命令列に続く
命令列のアドレスを生成する次アドレス生成手段と、分
岐先命令列のアドレスを生成する分岐アドレス生成手段
と、前記次アドレス生成手段により生成された次アドレ
スを入力オペランドとして必要とする1マシン・サイク
ル後の命令列中の命令を実行する命令実行手段にその次
アドレスを直接供給するショートパス手段と、前記次ア
ドレスを前記第二の記憶手段に書戻す結果オペランド書
込み手段とを備え、前記次命令列の読出しおよび前記次
アドレスの生成を並列して行い、次に前記入力オペラン
ドの読出しおよび前記分岐アドレスの生成を並列して行
い、次に前記ショートパスを発生させ、次に前記結果オ
ペランドの書込みを行うパイプライン命令処理により分
岐命令を実行することを特徴とする。
【0017】
【実施例】図1は本発明の一実施例であり、4つの命令
(n=4)から構成されるVLIW型の並列命令列によ
り4つの命令を並列に実効する並列パイプライン命令処
理装置の構成を示したブロック図である。
【0018】本実施例は、命令列メモリ11と、命令列
フェッチ手段12と、8つの読出しポートと4つの書込
みポートを備えたデータ・レジスタ13と、オペランド
・フェッチ手段14〜17と、分岐先の命令列のアドレ
スを生成する分岐アドレス生成手段18と、命令処理を
実行する処理手段19〜21,26と、分岐命令を実効
する分岐手段27と、オペランド書戻手段22〜25と
、処理結果を1マシン・サイクル後の命令が使用する場
合に処理結果をオペランド・フェッチ手段に直接転送す
るショートパス手段28と、分岐しない場合に実行する
連続する命令列のアドレスを生成する連続アドレス生成
手段29と、フェッチする命令列のアドレスを保持する
プログラム・カウンタ30とから構成される。
【0019】また、これらの接続は命令列をフェッチす
るための命令列バス101と、アドレス・バス102と
、フェッチした命令を転送する命令バス103〜106
と、命令の実行に必要な入力オペランドのフェッチに使
用するそれぞれ2本のレジスタ・リード・バス107〜
110と、フェッチした入力オペランドを転送するソー
ス・オペランド・バス111と、フェッチした入力オペ
ランドを転送する2本のソース・オペランド・バス11
2〜1414,133と、命令実行結果を転送するデス
ティネーション・オペランド・バス115〜118と、
オペランドの書込みに使用するレジスタ・ライト・バス
119〜122と、ショートパス・オペランドを転送す
るショートパス・バス123〜126と、ショートパス
の情報をショートパス手段に伝えるショートパス制御信
号127〜130と、分岐条件オペランドを分岐手段2
7に供給する分岐条件オペランド・バス131と、分岐
先アドレスを分岐手段27に供給する分岐アドレス・バ
ス132と、分岐手段27により決定された次に実行す
る命令列のアドレスをプログラム・カウンタ30に転送
する次アドレス・バス134と、連続アドレスを分岐手
段27に供給する連続アドレス・バス135で行われる
【0020】図2は図1の構成の並列パイプライン命令
処理装置の命令列を示すフォーマット図である。この場
合、命令列は4つの部分からなり、それぞれフィールド
1〜4と呼び分岐命令はフィールド4にのみ置かれる。
【0021】図3は本実施例のパイプラインの構造を示
すタイミング図であり、図中の略号の意味は次のとおり
である。
【0022】IFが命令列フェッチ、OFがオペランド
・フェッチ、EXが命令実行、SPがショートパス、W
Bがライト・バック、CAが連続アドレス生成、BAが
分岐アドレス生成である。
【0023】また、図4は条件分岐命令を含むプログラ
ム・シーケンスの一例のシーケンス図、図5は本実施例
の命令パイプラインの動作を示すタイミング図で、図4
のプログラム・シーケンスを実行する場合のパイプライ
ン動作を示している。
【0024】次に、図1,図2を用いて命令列が実行さ
れる場合の動作を説明する。命令列フェッチ手段12は
、プログラム・カウンタ30が保持し、アドレス・バス
102で指定されるアドレスの命令列を、命令列メモリ
11から命令列バス101を介してフェッチし、図2に
示したフィールド1〜4に置かれた各命令を、それぞれ
の命令バス103〜106を介してオペランド・フェッ
チ手段14〜17および分岐アドレス生成手段18にそ
れぞれ転送する。同時に連続アドレス生成手段29はア
ドレス・バス102で供給されるアドレスから連続する
命令列のアドレスを生成し、連続アドレス・バス135
に出力する。
【0025】次に、オペランド・フェッチ手段14〜1
7は転送された各命令をデコードし、各命令で使用する
オペランドを各々レジスタ・リード・バス107〜11
0を介してデータ・レジスタ13からフェッチする。オ
ペランド・フェッチ手段14〜17は、フェッチしたオ
ペランドをそれぞれソース・オペランド・バス112〜
114および133を介してそれぞれ命令実行手段19
〜21および26に転送する。また同時にオペランド・
フェッチ手段17はフェッチしたオペランドのひとつソ
ース・オペランド・バス11を介して分岐アドレス生成
手段18に供給する。分岐アドレス生成手段18は命令
バス106から供給される命令とアドレス・バス102
から供給されるアドレスから分岐アドレスを生成し、同
時に命令をデコードして、レジスタ間接分岐命令の場合
はソース・オペランド・バス111から供給されるオペ
ラントを、それ以外の分岐命令の場合には先に生成した
分岐アドレスを、分岐アドレス・バス132に出力する
【0026】次に、処理手段19〜21および26は、
ソース・オペランド・バス112〜114および133
を介して供給されたオペランドを使用して各命令をそれ
ぞれ実行し、それぞれの実行結果をデスティネーション
・オペランド・バス116〜118および115を介し
てオペランド書き戻し手段23〜25および22へ転送
する。ただし、命令4が分岐命令の場合は処理手段26
は命令の実行は行なわず、また実行結果のデスティネー
ション・オペランド・バス115への出力も行なわない
【0027】この場合は、フェッチ手段17から分岐条
件オペランド・バス131を介して供給される分岐条件
オペランドに応じて、分岐手段27が、分岐不成立の場
合は連続アドレス・バス135から供給される連続アド
レスを、分岐成立の場合は分岐アドレス・バス132か
ら供給される分岐アドレスを、次アドレス・バス134
を介してプログラム・カウンタ30に供給する。この時
、分岐命令がブランチ・アンド・リンク命令(分岐する
と同時に連続アドレスをレジスタに書き込む命令、サブ
ルーチンのコール等に使用される)であったならば、分
岐手段27は分岐アドレスをプログラム・カウンタ30
に供給すると同時に、連続アドレスをデスティネーショ
ン・オペランド・バス115を介してオペランド書き戻
し手段22に転送する。
【0028】次に、オペランド書き戻し手段23〜25
および22は、各結果オペランドを各命令が指定するレ
ジスタにレジスタ・ライト・バス119〜122を介し
てそれぞれ書き戻す。
【0029】ところで、直前のマシン・サイクルで実行
した命令の実行結果が命令の入力オペランドとして使用
される場合はショートパス手段28によるショートパス
手段制御が行なわれる。ここではフィールド3に置かれ
た命令(2)が直前に実行されたフィールド1に置かれ
た命令(1)の処理結果を使用する場合を例として説明
する。
【0030】命令バス105を介して命令(2)を受け
取ったオペランド・フェッチ手段16は、入力オペラン
ドのひとつが直前に実行された命令(1)の結果である
ことを検出するとショートパス制御信号129を出力す
る。ショートパス手段28はショートパス制御信号12
9からの情報をもとに、デスティネーション・オペラン
ド・バス116上の結果オペランドをショートパス・バ
ス125に転送する。オペランド・フェッチ手段16は
入力オペランドのひとつ(ショートパスが発生している
オペランド)をレジスタ・リード・バス108の代わり
にショートパス・バス125よりフェッチして、ソース
・オペランド・バス114に出力する。ショートパス発
生時は以上のような手順で命令が処理される。
【0031】以上説明した処理のタイミングを、図3を
用いて説明する。この図は、一つの命令列が実行さえれ
際の処理の流れを示し、1〜3ライン目の処理が命令(
1)〜命令(3)の処理に対応する。一番下の2ライン
に渡る処理が、命令(4)の処理に対応する。命令列フ
ェッチ手段12が命令列をフェッチするタイミングがI
Fに対応し、同様にオペランド・フェッチ手段14〜1
7によるレジスタからのオペランドのフェッチがOFに
、処理手順19〜21および26による命令実行がEX
に、ショートパス手段28によるショートパス制御がS
Pに、オペランド書戻手段23〜25および22による
オペランドの書き込みがWBに対応する。また、連続ア
ドレス生成手段29による連続アドレスの生成、分岐ア
ドレス生成手段18による分岐アドレスの生成のタイミ
ングが、それぞれCA,BAに対応する。
【0032】次に、本実施例の並列パイプライン命令処
理装置が、図4に示したプログラム・シーケンスを処理
する場合を考えてみる。このシーケンスは、命令列2が
条件分岐命令を含んでおり、条件成立によりシーケンス
が命令列2から命令列Aへ分岐する。
【0033】次に図5により図4のシーケンスが実行さ
れる場合のパイプラインの動作を説明する。命令列2の
処理において、フィールド4を処理するパイプラインは
命令列のフェッチと並行して連続アドレスの生成を、オ
ペランド・フェッチと並行して分岐先アドレスの生成を
実行しており、フェッチしたオペランドの内容を使用し
てt2サイクルの終了時に、次アドレスを決定してプロ
グラム・カウンタ3を更新することができる。つまり、
t3サイクルから命令列Aの処理を開始することができ
る。
【0034】従って、分岐を含む命令列の実行時にも、
パイプラインに空きが生じることはなく、最適化コンパ
イラが命令スケジューリングにより埋めなければならな
い命令の空きスロットを従来のものに比べて少なくする
ことができ、効率の高い並列パイプライン命令処理装置
を実現することができる。
【0035】例えば、1マシン・サイクルの分岐遅延を
持つ従来装置で、最大性能を発揮させるためには最適化
コンパイラが命令スケジューリングにより命令5〜命令
7の3つの命令スロット、さらに続く遅延命令列中の4
つ命令スロット、合計7つの命令スロットに有効な命令
を埋め込む必要がある。これに対し、本実施例の並列パ
イプライン命令処理装置では、命令列2中の命令5〜命
令7の3つの命令スロットを有効な命令で埋めればよい
【0036】
【発明の効果】以上説明したように本発明の並列パイプ
ライン命令処理装置は、分岐命令を持つ命令列による命
令の空きスロットの発生がないために、簡単なハードウ
ェアとコンパイル時の並列命令スケジューリングにより
並列処理を実現するVLIW型並列処理と、命令パイプ
ライン方式による高速処理とを組み合わせた、効率の高
い並列パイプライン命令処理装置を実現することができ
るという効果があり、またコンパイラが埋めなければな
らない空き命令スロットを少なくできるため、並列命令
スケジューリングが容易になるという効果もある。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図。
【図2】図1の並列パイプライン命令処理装置の命令フ
ォーマット図。
【図3】図1のパイプライン構造を説明するタイミング
図。
【図4】図1における条件分岐命令を含むプログラム・
シーケンス図。
【図5】図4の命令を実行した場合の命令パイプライン
動作を示すタイミング図。
【図6】従来のVLIW方式の並列計算機の構成を示す
ブロック図。
【図7】従来の直列命令処理装置の命令パイプライン動
作を示すタイミング図。
【図8】従来のパイプラインにおける分岐発生時の動作
を示すタイミング図。
【図9】従来のパイプラインにおける遅延分岐命令の動
作を示すタイミング図。
【符号の説明】
11    命令列メモリ 12    命令列フェッチ手段 13    データ・レジスタ 14〜17    オペランド・フェッチ手段18  
  分岐アドレス生成手段 19〜21,26    処理手段 22〜25    オペランド・ライト手段27   
 分岐手段 28    ショートパス手段 29    連続アドレス生成手段 30    プログラム・カウンタ 40    レジスタ・ファイル結合網41〜44  
  演算器 45    命令 101    命令列バス 102    アドレス・バス 103〜106    命令バス 107〜110    レジスタ・リード・バス111
    ソース・オペランド・バス112〜114,1
33    ソース・オペランド・バス115〜118
    デスティネーション・オペランド・バス 119〜122    レジスタ・ライト・バス123
〜126    ショートパス・バス127〜130 
   ショートパス制御信号131    分岐条件オ
ペランド・バス132    分岐アドレス・バス 134    次アドレス・バス 135    連続アドレス・バス

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  n個(nは1以上の自然数)の命令の
    並列の並びからなる命令列を有しこれら命令列を記憶す
    る第一の記憶手段と、この第一の記憶手段から所定命令
    列を読出す命令列読出手段と、この読出手段から読出し
    た命令列中のn個の命令に対応してこれら命令が指定す
    る命令を処理するn個の命令処理手段と、これら命令処
    理手段が使用するオペランドを記憶し、これら命令処理
    手段から独立してリード/ライト可能な第二の記憶手段
    とを備えてn個の命令を並列に処理する並列パイプライ
    ン命令処理装置において、前記各命令処理手段は、前記
    命令が指定する命令の実行に必要な入力オペランドを前
    記第二の記憶手段から読出す入力オペランド読出手段と
    、このオペランド読出手段から読出した入力をオペラン
    ドを使用して命令を実行する命令実行手段と、この命令
    実行手段の命令実行の結果得られた結果オペランドを入
    力オペランドとして必要とする1マシン・サイクル後の
    命令列中の命令を実行する前記命令実行手段に該結果オ
    ペランドを直接供給するショートパス手段と、前記結果
    オペランドを前記第二の記憶手段に書戻す結果オペラン
    ド書込手段とを備え、まず前記命令列の読出しと前記入
    力オペランドの読出しを行い、次に前記命令処理と前記
    ショートパスの発生を実行し、次に前記結果オペランド
    の書き込みを行うパイプライン命令処理により分岐命令
    以外の命令を実行し、一方、前記命令処理手段中の1個
    の命令処理手段は、前記命令が指定する入力オペランド
    を前記第二の記憶手段から読出す入力オペランド読出手
    段と、実行命令列に続く命令列のアドレスを生成する次
    アドレス生成手段と、分岐先命令列のアドレスを生成す
    る分岐アドレス生成手段と、前記次アドレス生成手段に
    より生成された次アドレスを入力オペランドとして必要
    とする1マシン・サイクル後の命令列中の命令を実行す
    る命令実行手段にその次アドレスを直接供給するショー
    トパス手段と、前記次アドレスを前記第二の記憶手段に
    書戻す結果オペランド書込み手段とを備え、前記次命令
    列の読出しおよび前記次アドレスの生成を並列して行い
    、次に前記入力オペランドの読出しおよび前記分岐アド
    レスの生成を並列して行い、次に前記ショートパスを発
    生させ、次に前記結果オペランドの書込みを行うパイプ
    ライン命令処理により分岐命令を実行することを特徴と
    する並列パイプライン命令処理装置。
JP3006284A 1991-01-23 1991-01-23 並列パイプライン命令処理装置 Expired - Fee Related JP2874351B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP3006284A JP2874351B2 (ja) 1991-01-23 1991-01-23 並列パイプライン命令処理装置
KR1019920000926A KR950012118B1 (ko) 1991-01-23 1992-01-23 병렬 파이프라인 명령 처리 장치
EP19920101103 EP0496407A3 (en) 1991-01-23 1992-01-23 Parallel pipelined instruction processing system for very long instruction word

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3006284A JP2874351B2 (ja) 1991-01-23 1991-01-23 並列パイプライン命令処理装置

Publications (2)

Publication Number Publication Date
JPH04238537A true JPH04238537A (ja) 1992-08-26
JP2874351B2 JP2874351B2 (ja) 1999-03-24

Family

ID=11634096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3006284A Expired - Fee Related JP2874351B2 (ja) 1991-01-23 1991-01-23 並列パイプライン命令処理装置

Country Status (3)

Country Link
EP (1) EP0496407A3 (ja)
JP (1) JP2874351B2 (ja)
KR (1) KR950012118B1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100260859B1 (ko) * 1995-03-23 2000-07-01 포만 제프리 엘. 초장 명령어 워드 프로그램의 오브젝트-코드 호환가능 표현
JP2000330790A (ja) * 1999-05-03 2000-11-30 Stmicroelectronics Sa コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
JP2000353091A (ja) * 1999-05-03 2000-12-19 Stmicroelectronics Sa コンピュータシステムにおける命令実行方法およびコンピュータシステム
KR100411402B1 (ko) * 1995-01-26 2004-03-20 선 마이크로시스템즈 인코퍼레이티드 파이프라인방식의프로세서에서잘못예측된분기로부터의복원방법및장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG44642A1 (en) * 1994-01-10 1997-12-19 Dow Chemical Co A massively multiplexed superscalar harvard architecture computer
US5933651A (en) * 1995-09-29 1999-08-03 Matsushita Electric Works, Ltd. Programmable controller
US6112299A (en) * 1997-12-31 2000-08-29 International Business Machines Corporation Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
JP3475860B2 (ja) 1999-06-24 2003-12-10 日本電気株式会社 演算処理装置
US9417880B2 (en) * 2013-03-15 2016-08-16 Intel Corporation Instruction for performing an overload check

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100411402B1 (ko) * 1995-01-26 2004-03-20 선 마이크로시스템즈 인코퍼레이티드 파이프라인방식의프로세서에서잘못예측된분기로부터의복원방법및장치
KR100260859B1 (ko) * 1995-03-23 2000-07-01 포만 제프리 엘. 초장 명령어 워드 프로그램의 오브젝트-코드 호환가능 표현
JP2000330790A (ja) * 1999-05-03 2000-11-30 Stmicroelectronics Sa コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
JP2000353091A (ja) * 1999-05-03 2000-12-19 Stmicroelectronics Sa コンピュータシステムにおける命令実行方法およびコンピュータシステム

Also Published As

Publication number Publication date
KR950012118B1 (ko) 1995-10-14
JP2874351B2 (ja) 1999-03-24
EP0496407A2 (en) 1992-07-29
EP0496407A3 (en) 1993-04-28
KR920015194A (ko) 1992-08-26

Similar Documents

Publication Publication Date Title
US8161266B2 (en) Replicating opcode to other lanes and modifying argument register to others in vector portion for parallel operation
EP1050808B1 (en) Computer instruction scheduling
US5692169A (en) Method and system for deferring exceptions generated during speculative execution
KR100309566B1 (ko) 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
JP3881763B2 (ja) データ処理装置
JP3151444B2 (ja) ロード命令を処理する方法及びスーパースカラ・プロセッサ
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
JPH09311786A (ja) データ処理装置
US6260189B1 (en) Compiler-controlled dynamic instruction dispatch in pipelined processors
JP2002333978A (ja) Vliw型プロセッサ
JP2002536738A (ja) 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム
TWI764966B (zh) 用於控制矢量記憶體存取之資料處理裝置及方法
JP3449186B2 (ja) パイプラインバイパス機能を有するデータ処理装置
JP2874351B2 (ja) 並列パイプライン命令処理装置
US6910123B1 (en) Processor with conditional instruction execution based upon state of corresponding annul bit of annul code
JPH1185513A (ja) プロセッサ
TWI770079B (zh) 向量產生指令
JPH096614A (ja) データ処理装置
US7111152B1 (en) Computer system that operates in VLIW and superscalar modes and has selectable dependency control
EP1208424B1 (en) Apparatus and method for reducing register write traffic in processors with exception routines
JP3182591B2 (ja) マイクロプロセッサ
JP2861234B2 (ja) 命令処理装置
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
JP3743155B2 (ja) パイプライン制御型計算機

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981215

LAPS Cancellation because of no payment of annual fees