JPH103425A - 命令供給装置 - Google Patents

命令供給装置

Info

Publication number
JPH103425A
JPH103425A JP8154035A JP15403596A JPH103425A JP H103425 A JPH103425 A JP H103425A JP 8154035 A JP8154035 A JP 8154035A JP 15403596 A JP15403596 A JP 15403596A JP H103425 A JPH103425 A JP H103425A
Authority
JP
Japan
Prior art keywords
instruction
parallel
buffer
executed
instructions
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.)
Withdrawn
Application number
JP8154035A
Other languages
English (en)
Inventor
Atsushi Kawai
淳 河井
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP8154035A priority Critical patent/JPH103425A/ja
Publication of JPH103425A publication Critical patent/JPH103425A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 NOPコード挿入等の、プログラムの逐次実
行部分に対する修正を不要にすることができ、プログラ
ムを理想的な効率で実行可能でき、さらにプログラムサ
イズの削減ができる命令供給装置を提供する。 【解決手段】 命令供給装置30を備えるVLIW型並
列計算機20は、命令メモリ21、命令アドレス制御部
22及び実行部23(実行部1〜n)で構成される並列
計算機20に加え、命令バッファ24、命令バッファ読
み出し制御部25、命令バッファ書き込み制御部26、
命令セレクタ27(命令セレクタ1〜n)、NOP(定
数生成)28及びインバータ(反転器)29から構成さ
れる命令供給装置30を備え、例えば必要とする命令コ
ード列が、命令バッファ24に格納されていない場合に
は、逐次的な命令実行を行いながら、最も最近使用され
ていないブロックに対して、新たに並列実行可能な最大
数の命令列を格納するようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、並列計算機におけ
る命令供給装置に係り、詳細には、VLIW型並列計算
機(Very Long Instruction Word:超長形式機械命令型
並列計算機)における命令供給装置に関する。
【0002】
【従来の技術】1クロック・サイクル当たり複数の命令
を発行する方法がある。この方法により、命令実行速度
がクロック速度を超えることが可能になる。
【0003】VLIW型並列計算機(Very Long Instru
ction Word:超長形式機械命令型並列計算機)は、真に
同時発行可能な命令をまとめて1つの超長形式機械命令
とするところまでコンパイラが責任を持って行うので、
ハードウェアは命令の同時実行可能性に関して何も迷う
必要はない。
【0004】例えば、この種の並列計算機として「ヘネ
シー&パターソン コンピュータ・アーキテクチャ −
設計・実現・評価の定量的アプローチ−」(日経BP
社、1992、pp312〜323)に記載されたもの
がある。
【0005】図7は従来のVLIW型並列計算機の構成
を示す図であり、この図において、VLIW型並列計算
機は、命令メモリ11、実行部12(実行部1〜n)、
及びデータメモリ13から構成される。
【0006】上記命令メモリ11は、実行部1〜nに対
して毎命令実行サイクルにそれぞれ命令を供給する。こ
のため、命令メモリ11から一度に読み出される命令長
は、各命令実行部12に与える命令長×nとなる。それ
ぞれの実行部に与える命令長は、通常の一般的な計算機
と同様に32ビット程度である。
【0007】したがって、命令メモリ11から読み出さ
れる命令長は、32×nビットとなり、非常に長くな
る。これが、VLIW型並列計算機と呼ばれる理由であ
る。各実行部は、命令実行サイクル毎に、命令メモリ1
1から供給される命令を実行する。データメモリ13
は、全ての実行部から同時にアクセス可能な構成をと
り、どの実行部からもメモリ参照ができる構成となって
いる。
【0008】
【発明が解決しようとする課題】このような従来のVL
IW型並列計算機では、毎命令実行サイクルにそれぞれ
の実行部が別々の命令を実行するため、複雑な制御を伴
うプログラム部分を実行させることが可能となる利点が
ある。
【0009】しかしながら、全ての実行部が命令実行を
行うため、本質的に逐次処理と並列処理とを、任意の組
み合わせで内在する通常のプログラム実行においては、
逐次実行を行うプログラム部分、あるいは、VLIW型
並列計算機に備わっているn個の実行部全てを同時に使
用して処理を行う程には並列処理性が高くないプログラ
ム部分の実行に対しては、並列実行により進めることに
よる不具合が生じる。
【0010】このため、命令実行を行わない実行部に対
する命令コードとして、NOΡコード(何も実行しない
ことを指示する命令コード)を挿入する必要が生じてい
る。このことが、プログラム全体を構成する命令コード
量の増大を引き起こしている。更に、上記プログラムの
修正は個々の並列計算機の構成に依存するため、修正さ
れたプログラムは特定の計算機においてのみ、実行可
能、あるいは最大性能を発揮するという問題点があっ
た。
【0011】本発明は、NOPコード挿入等の、プログ
ラムの逐次実行部分に対する修正を不要にすることがで
き、プログラムを理想的な効率で実行可能でき、さらに
プログラムサイズの削減ができる命令供給装置を提供す
ることを目的とする。
【0012】
【課題を解決するための手段】本発明に係る命令供給装
置は、命令メモリ、命令アドレス制御部、及び複数の命
令実行部を備えた並列計算機に命令を供給する命令供給
装置であって、命令バッファ、命令バッファ読み出し制
御部、命令バッファ書き込み制御部、複数個の命令セレ
クタ及びNOP(定数生成回路)を備え、命令バッファ
に参照すべき命令コードが格納されていない場合には、
単一の実行部において命令メモリから読み出される命令
を逐次実行すると同時に、命令バッファに設置される、
命令実行部の数に等しい数の命令コードまでを格納可能
な、単一、あるいは複数個の命令ブロックのうちの、空
ブロック、あるいは最も最近参照されていないブロック
に格納し、以下、順次命令実行と並行して、同時実行可
能な命令コードを検査しながら、最多で、命令実行部の
数に等しい数の命令コードの、並列実行可能な命令を格
納し、命令バッファに参照すべき命令コードが格納され
ている場合には、命令バッファは命令アドレスにより検
索され、該命令アドレスに一致するブロックが存在する
こと、及び該ブロックの内容が有効であることを確認し
た後、最多で、命令実行部の数に等しい数の命令コー
ド、及び並列実行可能な命令数を、同時に読み出し、並
列に命令実行可能な数の命令実行部には、読み出した命
令コードを供給し、並列に命令実行を行わせるととも
に、並列実行不可能な命令実行部に対しては命令実行不
可であることを示すNOPコードを自動的に供給する機
能を有し、逐次実行型の計算機において実行されるプロ
グラムを入力し、該入力したプログラムの中から並列実
行可能な命令コード列を抽出し、命令バッファに格納
し、該命令コード列が繰り返し実行される場合には、2
回目以降は、該命令バッファより並列実行可能な最大数
の命令コードを供給し、並列実行させるように構成す
る。
【0013】また、並列計算機は、同時に複数の命令実
行部において、それぞれ独立した処理を行う並列計算機
であってもよく、並列計算機は、VLIW(Very Long
Instruction Word:超長形式機械命令)型並列計算機で
あってもよい。
【0014】
【発明の実施の形態】本発明に係る命令供給装置は、並
列計算機における命令供給装置に適用することができ
る。
【0015】図1は本発明の実施形態に係る命令供給装
置を備えるVLIW型並列計算機の全体構成を示す図で
ある。
【0016】図1において、命令供給装置を備えるVL
IW型並列計算機は、命令メモリ21、命令アドレス制
御部22及び実行部23(実行部1〜n)で構成される
並列計算機20に加え、命令バッファ24、命令バッフ
ァ読み出し制御部25、命令バッファ書き込み制御部2
6、命令セレクタ27(命令セレクタ1〜n)、NOP
(定数生成回路)28及びインバータ(反転器)29か
ら構成される命令供給装置30を備えている。
【0017】図2は上記命令バッファ24の構成を示す
図である。
【0018】図2において、命令バッファ24は、ブロ
ック1〜mまでのm個のブロックから構成される。個々
のブロックは、V、命令数、命令アドレス部、LRU、
及び命令1〜nの各フィールドで構成される。
【0019】図2中のVは、Validフラグの意味であ
り、該当ブロックの内容が有効であるか、否かを示す。
命令数は、命令1〜nに格納される各命令のうち、命令
1から数えて、有効である命令数を示す。この命令数で
示される数の命令が、実行部1〜nにおいて並列実行可
能であることを示す。
【0020】図2のハッチング部分に示す命令アドレス
は、該当ブロックの命令1に格納されている命令コード
の、命令メモリ上に配置された命令アドレスを示す。外
部から与えられた命令アドレスに一致する値が本命令ア
ドレス格納部に格納されている場合には、該当ブロック
には参照すべき命令コードが格納されていることを示
す。
【0021】LRUは、Least Recentyly Usedフラグの
意味であり、本フラグが0の場合には、該当ブロックに
格納されている命令が最近参照されていないことを示
す。このようなブロックは、新たな命令コード列を命令
バッファに格納する際の、更新対象となる。
【0022】上記命令アドレス格納部、及びLRU部は
内容検索型メモリから構成され、該当部分に格納されて
いる内容と一致する場合に必要データを出力する構造を
もつ。
【0023】上記命令アドレス格納部は、入力される命
令アドレスの内容と一致するブロックが存在する場合に
は一致信号をアサート(論理“1”)し、該当ブロック
のVフラグ、命令数及び命令1〜nの内容を出力する。
【0024】また、LRU部は、読み出しが行われた場
合に該当ブロックのLRUを1にし、書き込みを行う場
合には、Vフラグが0である一番若い番のブロック番号
を出力する。全てのVフラグが1の場合には、LRUが
0である一番若いブロック番号を出力すると同時に該当
ブロックのVフラグを0にする。全てのVフラグ、及び
全てのLRUが1の場合には一番老い番のブロック、す
なわちmを出力すると同時に該当ブロックのVフラグを
0にする。また、書き込み時(ブロックの更新時)に
は、更新されたブロックのLRUフラグのみ1になり、
他の全てのブロックのLRUフラグは0となる。
【0025】図3は上記並列計算機20により実行され
る命令コードのフォーマットを示す図である。
【0026】図3において、命令には演算命令と分岐命
令の2種があり、それぞれ別々のフォーマットをもつ。
演算命令は、演算指定、ソース1オペランド、ソース2
オペランド、及びデスティネーションオペランドで構成
される。また、分岐命令は、分岐指定、及び分岐先アド
レスで構成される。
【0027】図4は上記並列計算機20における命令バ
ッファ書き込み制御部26の構成を示す回路図である。
【0028】図4において、命令バッファ書き込み制御
部26は、命令レジスタ31、分岐コード(定数生成)
32、比較器33(比較器1)、命令数カウンタ34、
「1」定数生成部35、AND回路36(AND1)、
ANDcount(レジスタ)37、AND回路38(AN
D2〜n)、イネーブル入力付きフリップフロップ39
(FF1〜n)、オペランドキューレジスタ40(オペ
ランドキュー1〜n−1)、比較器41(比較器S11
〜S1n−1)、比較器42(比較器S21〜S2n−
1)、OR回路43(ORall)、及びインバータ44
から構成される。
【0029】図5は上記並列計算機20における命令バ
ッファ読み出し制御部25の構成を示す回路図である。
【0030】図5において、命令バッファ読み出し制御
部25は、ΑND回路51(ΑNDv)、ΑND回路5
2(AND1〜n)、及びデコーダ53から構成され
る。
【0031】上記デコーダ53は、入力される値に対し
て、その値に等しい数の出力信号をアサートする(論理
“1”にする)もので、例えば、入力値が3の場合に
は、n本の出力信号のうち1〜3までの3本のみをアサ
ートする。
【0032】図6は上記並列計算機20における命令ア
ドレス制御部22の構成を示す回路図である。
【0033】図6において、命令アドレス制御部22
は、命令アドレスカウンタ61のみで構成される。
【0034】以下、上述のように構成された命令供給装
置30を備えた並列計算機20の動作を説明する。
【0035】図1に示す命令供給装置30を備えた並列
計算機20において、命令バッファ24を参照しながら
命令実行を行う動作を示す。
【0036】プログラム実行を開始する以前の状態にお
いて、命令バッファ24は初期化されているものとす
る。すなわち、命令バッファ24の全ブロックのVフラ
グは0となっている。
【0037】この状態では、命令コードは命令バッファ
24からではなく、命令メモリ21から供給され、実行
部1において逐次実行される。命令実行と並行して、命
令バッファ24内のブロック1の命令1の部分から命令
nに向かって順次命令コードが書き込まれる。
【0038】ブロックの先頭に格納される命令、すなわ
ち命令1に書き込まれる命令に対しては、その命令アド
レスも命令アドレス格納部(図2)に格納される。
【0039】命令バッファ書き込み制御部26では、命
令バッファ24に格納した命令列に対して、新たに書き
込まれる命令が並列実行可能か否かの検査を行う。並列
実行できない命令とは、同一ブロック内に既に格納され
ている命令の実行結果をソースオペランド1、あるいは
ソースオペランド2とする命令、分岐命令直後の命令、
及びn個を超える命令、すなわち命令バッファ24の1
ブロック分(n命令)を超える命令である。
【0040】命令バッファ書き込み制御部26では、上
記並列実行不可能な命令コードを検出した時点で、この
命令コードの格納を抑止する。
【0041】これと同時に、それまで同一ブロックに格
納した命令数を命令数部分に格納し、LRU、及びVフ
ラグに1を書き込む。更に、命令バッファ24の該当ブ
ロック、すなわちブロック1を除く全てのブロックのL
RUを0にする。
【0042】ここまでの操作で、命令バッファ24の1
つのブロックの書き込みが完了する。並列実行不可能と
判断された命令は、次のブロック、つまりブロック2の
先頭に格納される命令として、以降命令ブロック1の書
き込みと同様に処理される。
【0043】上記動作を繰り返しながら、ブロック1か
ら順次ブロックmまで、それぞれ並列実行可能な命令列
が、それぞれのブロックに格納されていく。
【0044】図4の命令バッファ書き込み制御部26の
構成図において、命令バッファ書き込み制御部26で
は、命令メモリ21から読み出された命令コードを一旦
命令レジスタ31に格納する。命令レジスタ31に格納
された命令コードのうち、動作指定部(演算命令の場合
には演算指定、分岐命令の場合には分岐指定に当たる)
の内容を検査する。
【0045】この内容が分岐命令を示す値の場合には、
分岐コード(定数生成)32、及び比較器1において検
査された結果、分岐信号がアサートされる。
【0046】この結果、OR回路43(ORall)の出
力であるF(Finish)信号がアサートされる。F信号
は、図2の命令バッファ24において、該当ブロックの
Vフラグを1にするとともに、命令バッファ書き込み制
御部26から与えられる命令数を書き込む。更に、該当
ブロックのLRUフラグを1とし、他の全てのブロック
のLRUフラグを0にする。なお、該当ブロックの命令
アドレス部の内容は、命令1に最初の命令コードが格納
された時点に書き込まれた命令アドレスを保持する。
【0047】同様に、命令レジスタ31に格納された命
令コードのソース1オペランドの内容、及びソース2オ
ペランドの内容が、既に命令バッファ24に格納されて
いる同一ブロック内の並列実行可能な命令列のデスティ
ネーションオベランドの内容と比較される。すなわち、
同時に実行する命令間でのデータの参照による競合を検
査する。これを実行するためにオペランドキュー40
(オペランドキュー1〜n)、比較器41(比較器S1
1〜S1n)、比較器42(比較器S21〜S2n)が
用いられる。
【0048】上記検査の結果、1つでも競合が生じるこ
とが判明した場合には、OR回路43(ORall)出
力、すなわちF信号がアサートされる。
【0049】以下、分岐命令を検出した場合と同様に、
該当ブロックの書き込み完了処理が行われる。
【0050】また、この検査対象とする命令コード列の
範囲を指定するために、AND回路38(AND2〜
n)、及びフリップフロップ39(FF1〜n)が用い
られる。
【0051】命令コードがブロックに格納される度に、
上記FF1〜nの1出力がFF1からFFnの方向に伝
搬する。すなわち、FF1〜nはシフトレジスタを構成
している。比較器41(比較器S11〜S1n)、及び
比較器42(比較器S21〜S2n)のうち、FF1〜
nから1を入力する比較器において一致検査が行われ
る。
【0052】AND回路38(AND2〜n)は、FF
1〜nの内容をそれぞれシフトする場合と、F信号のア
サートによりFF1〜nの内容を全てリセット、すなわ
ち0にする場合の論理をとるために用いられる。
【0053】FF1〜nの否定出力は、書き込み許可信
号1〜nとして、命令バッファ24に供給される。これ
らの信号の立ち上がり時点で、命令レジスタ31に格納
された命令コードが命令バッファ24の該当命令コード
格納部分(命令1〜m)に書き込まれる。また、書き込
み許可信号1の立ち上がり時点で、命令アドレス制御部
22から入力される命令アドレスが命令バッファ24の
該当ブロックの命令アドレス格納部(図2)に書き込ま
れる。
【0054】図4の命令バッファ書き込み制御部26に
示す命令数カウンタ34、「1」定数生成部35、AN
D回路36(AND1)及びANDcount(レジスタ)
37は、該当ブロックに書き込まれた命令数、すなわち
並列実行可能な命令数を計数するものである。
【0055】ANDcount37の出力である命令数は、
F信号の立ち上がり時点で、命令バッファ24の命令数
部分に書き込まれる。
【0056】図1及び図2に戻って、命令アドレスは、
命令メモリ21だけでなく、命令バッファ24にも入力
される。命令バッファ24では、入力された命令アドレ
スに一致するブロックの存在を検査する。これは、命令
バッファ24の各ブロックの命令アドレス格納部を検索
することで実行される。命令アドレス格納部は、内容検
索型のメモリで構成され、外部から入力された命令アド
レスに一致する内容を命令アドレス格納部に保持してい
るブロックを検索する。
【0057】もし、一致するブロックが存在する場合に
は、hitフラグをアサートするとともに、該当ブロッ
クのVフラグ、命令数、及び命令1〜nの内容を出力す
る。また、同時に該当ブロックのLRUフラグを1にす
る。一致するブロックが存在しない場合には、hitフ
ラグはアサートされない。この場合には、命令メモリ2
1から読み出された命令コードが命令セレクタ1にて選
択され、実行部1にて実行される。これと同時に該命令
コードは命令バッファ24に格納される。このとき、新
たな並列動作可能な命令列を格納すべきブロックは、L
RUブロック番号として命令バッファ24のタグ部分か
ら与えられる。命令バッファ24のLRU部分は、内容
検索型メモリで、書き込みを行う場合には、Vフラグが
0である一番若いブロック番号を出力する。
【0058】全てのVフラグが1の場合には、LRUフ
ラグが0である一番若いブロック番号を出力すると同時
に該当ブロックのVフラグを0にする。全てのVフラ
グ、及び全てのLRUフラグが1の場合には一番老いブ
ロック、すなわちmを出力すると同時に該当ブロックの
Vフラグを0にする。
【0059】また、書き込み時(ブロックの更新時)に
は、更新されたブロックのLRUフラグのみ1になり、
他の全てのブロックのLRUフラグは0となる。
【0060】この方法により、命令バッファ24内のブ
ロックを最大効率で利用することが可能となる。
【0061】なお、本実施形態で示すLRU部分の動作
方法については、既存技術によるLRU機構を用いるよ
うにしてもよいことは言うまでもない。
【0062】図5に示す命令バッファ読み出し制御部2
5では、命令バッファ24のタグ部から読み出したVフ
ラグ、hitフラグ、及び命令数とから、命令選択信号
1〜nを生成する。
【0063】ΑND回路51(ΑNDv)にてVフラグ
とhitフラグの両方が1の場合に、命令バッファ24
がヒットしたと判定され、ΑND回路52(AND1〜
n)の一方の入力をアサートする。命令数はデコーダ5
3に入力される。
【0064】デコーダ53は、入力される値に対して、
その値に等しい数の出力信号をアサートする(論理
“1”にする)もので、例えば、入力値が3の場合に
は、n本の出力信号のうち1〜3までの3本のみをアサ
ートする。したがって、命令数分の1出力がΑND1か
ら数えて、それぞれのもう一方の入力をアサートする。
その結果、ΑND1〜nの出力のうち、ヒットした命令
バッファ24の該当ブロックに格納される命令数分の命
令選択信号が、命令選択信号1から数えてアサートされ
る。
【0065】命令選択信号1〜nは、図1に示す並列計
算機20において、命令セレクタ1〜nにそれぞれ入力
される。命令セレクタ1〜nでは、命令選択信号がアサ
ートされている場合には、命令バッファ24から読み出
した命令1〜nを選択し、実行部1〜nに供給する。命
令バッファ24がヒットしていながら、命令選択信号が
アサートされていない命令セレクタでは、NOP(Non
OPeration:何ら処理を行わない命令)に相当する命令
コードが、接続される実行部に与えられる。NOΡが与
えられた実行部では、命令実行を行わない。
【0066】また、命令バッファ24がヒットしなかっ
た場合には、命令選択信号1〜nは全てネゲートされる
(論理“0”となる)。このとき、命令セレクタ1では
命令メモリ21から読み出された命令コードが選択さ
れ、実行部に与えられる。命令セレクタ2〜nではNO
Ρが選択され、実行部2〜nに与えられる。
【0067】この場合には、並列計算機20は、命令メ
モリ21から読み出した1命令のみを実行部1で実行す
る。すなわち、逐次実行を行う。
【0068】図6に示すように、命令アドレス制御部2
2は、命令アドレスカウンタ61のみで構成される。図
1に示す並列計算機20の実行部1からnまでの唯一の
実行部において分岐命令が実行される。
【0069】実行結果は、分岐命令結果1〜nとして命
令アドレス制御部22に出力される。分岐命令結果に
は、分岐信号、及び分岐アドレスが含まれる。命令アド
レスカウンタ61では、分岐信号がネゲートされている
状態(論理“0”の状態)では、クロック毎に計数を行
い、シーケンシャルな命令アドレスを出力する。
【0070】分岐信号がアサートされた場合には、分岐
アドレスを初期値として、新たに書き込む。これによ
り、分岐アドレスを命令アドレスとして、命令メモリ2
1、及び命令バッファ24に出力する。
【0071】以上説明したように、本実施形態に係る命
令供給装置30を備えるVLIW型並列計算機20は、
命令メモリ21、命令アドレス制御部22及び実行部2
3(実行部1〜n)で構成される並列計算機20に加
え、命令バッファ24、命令バッファ読み出し制御部2
5、命令バッファ書き込み制御部26、命令セレクタ2
7(命令セレクタ1〜n)、NOP(定数生成)28及
びインバータ(反転器)29から構成される命令供給装
置30を備え、命令バッファ24に命令コードが格納さ
れていない状態では、実行部1において命令メモリ21
から読み出される命令を逐次実行すると共に、命令バッ
ファ24内の最大n個の並列実行可能な命令を格納する
ことができるブロックに格納し、命令バッファ24は命
令アドレスにより検索され、その命令アドレスに一致す
るブロックを読み出すことができた場合には、与えられ
た命令アドレスから始まり連続する最大n個までの並列
実行可能な命令列を読み出し、実行部1〜nに与えるこ
とで、命令の並列実行を行わせるとともに、必要とする
命令コード列が、命令バッファ24に格納されていない
場合には、逐次的な命令実行を行いながら、最も最近使
用されていないブロックに対して、新たに並列実行可能
な最大数の命令列を格納するようにしているので、通常
の逐次実行型の計算機において実行されるプログラムを
与え、この中から並列実行可能な命令列を抽出し、命令
バッファ24に格納し、この命令列が繰り返し実行され
る場合には、2回目以降は並列実行することができる。
【0072】したがって、本実施形態に係る命令供給装
置30を備える並列計算機20では、計算機内部でプロ
グラム内の並列実行可能部分と逐次実行部分を判別して
いるため、従来例によるVLIW型並列計算機において
問題とされている、NOPコード挿入等の、プログラム
の逐次実行部分に対する修正は一切必要なくなる。この
ため、プログラムはどの計算機においても実行可能であ
り、また、そのプログラムを本命令供給装置30を備え
る並列計算機20において実行する場合には、ほぼ理想
的な効率で実行可能となる。
【0073】特に、ループ処理を多用する通常のプログ
ラムの実行に有効である。また、逐次型計算機を対象と
するプログラムをそのまま並列実行するため、従来例に
よるVLIW型並列計算機で問題となっている、並列処
理のためにプログラムサイズが大きくなることは全くな
いという利点がある。
【0074】また、本実施形態に係る命令供給装置30
は、通常の命令実行部を複数備える並列計算機に、容易
に設置することができ、一般的なプログラムの実行にお
いて、そのプログラムに内在する並列実行可能な最大数
の命令で構成されるプログラム部分を自動抽出し、並列
実行することが可能である。
【0075】なお、上記実施形態では、VLIW型並列
計算機への適応例を示したが、命令長が特に制限を与え
るものでもなくかつ、同時に複数の命令実行部におい
て、それぞれ独立した処理を行う並列計算機であれば適
応可能である。また、上記命令供給装置が計算機等に組
み込まれる回路の一部であってもよいことは言うまでも
ない。
【0076】さらに、上記各制御部等を構成するバッフ
ァ、レジスタ、比較器等の数、種類接続状態などは上記
実施形態に限られないことは言うまでもない。
【0077】
【発明の効果】本発明に係る命令供給装置では、命令メ
モリ、命令アドレス制御部、及び複数の命令実行部を備
えた並列計算機に命令を供給する命令供給装置であっ
て、命令バッファ、命令バッファ読み出し制御部、命令
バッファ書き込み制御部、複数個の命令セレクタ及びN
OPを備え、命令バッファに参照すべき命令コードが格
納されていない場合には、単一の実行部において命令メ
モリから読み出される命令を逐次実行すると同時に、命
令バッファに設置される、命令実行部の数に等しい数の
命令コードまでを格納可能な、単一、あるいは複数個の
命令ブロックのうちの、空ブロック、あるいは最も最近
参照されていないブロックに格納し、以下、順次命令実
行と並行して、同時実行可能な命令コードを検査しなが
ら、最多で、命令実行部の数に等しい数の命令コード
の、並列実行可能な命令を格納し、命令バッファに参照
すべき命令コードが格納されている場合には、命令バッ
ファは命令アドレスにより検索され、該命令アドレスに
一致するブロックが存在すること、及び該ブロックの内
容が有効であることを確認した後、最多で、命令実行部
の数に等しい数の命令コード、及び並列実行可能な命令
数を、同時に読み出し、並列に命令実行可能な数の命令
実行部には、読み出した命令コードを供給し、並列に命
令実行を行わせるとともに、並列実行不可能な命令実行
部に対しては命令実行不可であることを示すNOPコー
ドを自動的に供給する機能を有し、逐次実行型の計算機
において実行されるプログラムを入力し、該入力したプ
ログラムの中から並列実行可能な命令コード列を抽出
し、命令バッファに格納し、該命令コード列が繰り返し
実行される場合には、2回目以降は、該命令バッファよ
り並列実行可能な最大数の命令コードを供給し、並列実
行させるように構成しているので、NOPコード挿入等
の、プログラムの逐次実行部分に対する修正を不要にす
ることができ、プログラムを理想的な効率で実行可能で
き、さらにプログラムサイズの削減ができる。
【図面の簡単な説明】
【図1】本発明を適用した実施形態に係る命令供給装置
を備えるVLIW型並列計算機の全体構成を示す図であ
る。
【図2】上記命令供給装置の命令バッファの構成を示す
図である。
【図3】上記命令供給装置の並列計算機により実行され
る命令コードのフォーマットを示す図である。
【図4】上記命令供給装置の命令バッファ書き込み制御
部の構成を示す回路図である。
【図5】上記命令供給装置の命令バッファ読み出し制御
部の構成を示す回路図である。
【図6】上記命令供給装置の命令アドレス制御部の構成
を示す回路図である。
【図7】従来の命令供給装置を備えるVLIW型並列計
算機の全体構成を示す図である。
【符号の説明】
20 並列計算機、21 命令メモリ、22 命令アド
レス制御部、23 実行部(実行部1〜n)、24 命
令バッファ、25 命令バッファ読み出し制御部、26
命令バッファ書き込み制御部、27 命令セレクタ
(命令セレクタ1〜n)、28 NOP(定数生成回
路)、29 インバータ(反転器)、30命令供給装置

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 命令メモリ、命令アドレス制御部、及び
    複数の命令実行部を備えた並列計算機に命令を供給する
    命令供給装置であって、 命令バッファ、命令バッファ読み出し制御部、命令バッ
    ファ書き込み制御部、複数個の命令セレクタ及びNOP
    (定数生成回路)を備え、 前記命令バッファに参照すべき命令コードが格納されて
    いない場合には、単一の実行部において前記命令メモリ
    から読み出される命令を逐次実行すると同時に、前記命
    令バッファに設置される、前記命令実行部の数に等しい
    数の命令コードまでを格納可能な、単一、あるいは複数
    個の命令ブロックのうちの、空ブロック、あるいは最も
    最近参照されていないブロックに格納し、 以下、順次命令実行と並行して、同時実行可能な命令コ
    ードを検査しながら、最多で、前記命令実行部の数に等
    しい数の命令コードの、並列実行可能な命令を格納し、 前記命令バッファに参照すべき命令コードが格納されて
    いる場合には、前記命令バッファは命令アドレスにより
    検索され、該命令アドレスに一致するブロックが存在す
    ること、及び該ブロックの内容が有効であることを確認
    した後、最多で、命令実行部の数に等しい数の命令コー
    ド、及び並列実行可能な命令数を、同時に読み出し、並
    列に命令実行可能な数の命令実行部には、読み出した命
    令コードを供給し、並列に命令実行を行わせるととも
    に、並列実行不可能な命令実行部に対しては命令実行不
    可であることを示すNOPコードを自動的に供給する機
    能を有し、 逐次実行型の計算機において実行されるプログラムを入
    力し、該入力したプログラムの中から並列実行可能な命
    令コード列を抽出し、前記命令バッファに格納し、該命
    令コード列が繰り返し実行される場合には、2回目以降
    は、該命令バッファより並列実行可能な最大数の命令コ
    ードを供給し、並列実行させるように構成したことを特
    徴とする命令供給装置。
  2. 【請求項2】 前記並列計算機は、同時に複数の命令実
    行部において、それぞれ独立した処理を行う並列計算機
    であることを特徴とする請求項1記載の命令供給装置。
  3. 【請求項3】 前記並列計算機は、VLIW(Very Lon
    g Instruction Word:超長形式機械命令)型並列計算機
    であることを特徴とする請求項1記載の命令供給装置。
JP8154035A 1996-06-14 1996-06-14 命令供給装置 Withdrawn JPH103425A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8154035A JPH103425A (ja) 1996-06-14 1996-06-14 命令供給装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8154035A JPH103425A (ja) 1996-06-14 1996-06-14 命令供給装置

Publications (1)

Publication Number Publication Date
JPH103425A true JPH103425A (ja) 1998-01-06

Family

ID=15575495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8154035A Withdrawn JPH103425A (ja) 1996-06-14 1996-06-14 命令供給装置

Country Status (1)

Country Link
JP (1) JPH103425A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675290B1 (en) 1999-06-29 2004-01-06 Kabushiki Kaisha Toshiba Processor for improving instruction utilization using multiple parallel processors and computer system equipped with the processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675290B1 (en) 1999-06-29 2004-01-06 Kabushiki Kaisha Toshiba Processor for improving instruction utilization using multiple parallel processors and computer system equipped with the processor
US7096344B2 (en) 1999-06-29 2006-08-22 Kabushiki Kaisha Toshiba Processor for improving instruction utilization using multiple parallel processors and computer system equipped with the processor
US7343475B2 (en) 1999-06-29 2008-03-11 Kabushiki Kaisha Toshiba Supplying halt signal to data processing unit from integer unit upon single unit format instruction in system capable of executing double unit format instruction

Similar Documents

Publication Publication Date Title
JP3093629B2 (ja) 命令シーケンスを実行するための方法および装置
JP3841131B2 (ja) 浮動小数点演算システム
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
KR100292300B1 (ko) 레지스터재명명시스템및방법
CN100530080C (zh) 用于在一***中进行多存储缓冲器转发的***
KR100955433B1 (ko) 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법
US5903749A (en) Method and apparatus for implementing check instructions that allow for the reuse of memory conflict information if no memory conflict occurs
US20140101415A1 (en) Reducing data hazards in pipelined processors to provide high processor utilization
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JP2010532063A (ja) 条件命令を無条件命令および選択命令へと拡張する方法およびシステム
JPH0778738B2 (ja) ディジタル・コンピュータ・システム
US20140047218A1 (en) Multi-stage register renaming using dependency removal
US20110302394A1 (en) System and method for processing regular expressions using simd and parallel streams
JP2000112758A (ja) 投機的実行中に発生する例外を遅延させるシステム及び方法
US6393546B1 (en) Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values
CN101194228A (zh) 微处理器中的有效子程序返回
KR20010085584A (ko) 저장 어드레스 생성과 범용 종속 벡터에 관한 적재 블록을위한 메커니즘
KR20010053623A (ko) 명령들의 철회시 물리적인 레지스터들을 선택적으로자유롭게 사용하도록 구성된 프로세서
KR900010587A (ko) 생산라인의 고성능 명령어 실행방법 및 장치
JP4254954B2 (ja) データ処理装置
JPH103425A (ja) 命令供給装置
JP3490005B2 (ja) 命令制御装置及びその方法
TWI238352B (en) Register move operations
JP2886838B2 (ja) スーパースカラパイプライン式データ処理装置の可変長命令の並列デコーディング装置及び方法
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030902