JPH103389A - 並列計算機 - Google Patents
並列計算機Info
- Publication number
- JPH103389A JPH103389A JP8154069A JP15406996A JPH103389A JP H103389 A JPH103389 A JP H103389A JP 8154069 A JP8154069 A JP 8154069A JP 15406996 A JP15406996 A JP 15406996A JP H103389 A JPH103389 A JP H103389A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- vliw
- cache
- data
- parallel computer
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 回路規模、及び配線量を大幅に削減すること
ができ、CPUをLSI化する際などにおいて、チップ
サイズの縮小、及び回路遅延を最小化することが可能と
なり、動作クロック周波数を向上させ、消費電力を最小
化するとともに、チップコストを低減できる並列計算機
を提供する。 【解決手段】 VLIW型並列計算機20は、命令メモ
リ21、命令キャッシュ22、命令キャッシュ書き込み
制御部23、命令アドレス制御部24、複数個の命令実
行部25、データスイッチ26、及びレジスタファイル
27を備え、CPU外部に設置された命令メモリ21
と、命令実行部25の間に、命令キャッシュ22を設置
し、これにより、命令メモリ22から、連続して複数の
VLIW要素命令を、逐次命令キャッシュ22に読み込
みVLIW命令を生成すると共に、直前に生成したVL
IW命令との、レジスタ参照依存を検査して、必要な待
ち合わせ情報、及び、実行結果データのバイパスのため
のパスの設定に関する情報を、予め抽出する。 【解決手段】
ができ、CPUをLSI化する際などにおいて、チップ
サイズの縮小、及び回路遅延を最小化することが可能と
なり、動作クロック周波数を向上させ、消費電力を最小
化するとともに、チップコストを低減できる並列計算機
を提供する。 【解決手段】 VLIW型並列計算機20は、命令メモ
リ21、命令キャッシュ22、命令キャッシュ書き込み
制御部23、命令アドレス制御部24、複数個の命令実
行部25、データスイッチ26、及びレジスタファイル
27を備え、CPU外部に設置された命令メモリ21
と、命令実行部25の間に、命令キャッシュ22を設置
し、これにより、命令メモリ22から、連続して複数の
VLIW要素命令を、逐次命令キャッシュ22に読み込
みVLIW命令を生成すると共に、直前に生成したVL
IW命令との、レジスタ参照依存を検査して、必要な待
ち合わせ情報、及び、実行結果データのバイパスのため
のパスの設定に関する情報を、予め抽出する。 【解決手段】
Description
【0001】
【発明の属する技術分野】本発明は、並列計算機に係
り、特に、VLIW型並列計算機(Very Long Instruct
ion Word:超長形式機械命令型並列計算機)における命
令実行制御部の改良に関する。
り、特に、VLIW型並列計算機(Very Long Instruct
ion Word:超長形式機械命令型並列計算機)における命
令実行制御部の改良に関する。
【0002】
【従来の技術】1クロック・サイクル当たり複数の命令
を発行する方法がある。この方法により、命令実行速度
がクロック速度を超えることが可能になる。
を発行する方法がある。この方法により、命令実行速度
がクロック速度を超えることが可能になる。
【0003】VLIW型並列計算機(Very Long Instru
ction Word:超長形式機械命令型並列計算機)は、真に
同時発行可能な命令をまとめて1つの超長形式機械命令
とするところまでコンパイラが責任を持って行うので、
ハードウェアは命令の同時実行可能性に関して何も迷う
必要はない。
ction Word:超長形式機械命令型並列計算機)は、真に
同時発行可能な命令をまとめて1つの超長形式機械命令
とするところまでコンパイラが責任を持って行うので、
ハードウェアは命令の同時実行可能性に関して何も迷う
必要はない。
【0004】例えば、この種の並列計算機として「ヘネ
シー&パターソン コンピュータ・アーキテクチャ −
設計・実現・評価の定量的アプローチ−」(日経BP
社、1992、pp312〜323)に記載されたもの
がある。
シー&パターソン コンピュータ・アーキテクチャ −
設計・実現・評価の定量的アプローチ−」(日経BP
社、1992、pp312〜323)に記載されたもの
がある。
【0005】図9は従来のVLIW型並列計算機の構成
を示す図であり、この図において、VLIW型並列計算
機は、命令メモリ11、実行部12(実行部1〜n)、
データスイッチ13、及びレジスタファイル14から構
成される。
を示す図であり、この図において、VLIW型並列計算
機は、命令メモリ11、実行部12(実行部1〜n)、
データスイッチ13、及びレジスタファイル14から構
成される。
【0006】上記命令メモリ11は、実行部1〜nに対
して毎命令実行サイクルにそれぞれ命令を供給する。こ
のため、命令メモリ11から一度に読み出される命令長
は、各実行部に与える命令長×nとなる。それぞれの実
行部に与える命令長は、通常の一般的な計算機と同様
に、32ビット程度である。
して毎命令実行サイクルにそれぞれ命令を供給する。こ
のため、命令メモリ11から一度に読み出される命令長
は、各実行部に与える命令長×nとなる。それぞれの実
行部に与える命令長は、通常の一般的な計算機と同様
に、32ビット程度である。
【0007】したがって、命令メモリ11から読み出さ
れる命令長は、32×nビットとなり、非常に長くな
る。これが、VLIW型並列計算機と呼ばれる理由であ
る。
れる命令長は、32×nビットとなり、非常に長くな
る。これが、VLIW型並列計算機と呼ばれる理由であ
る。
【0008】各実行部は、命令実行サイクル毎に、命令
メモリ11から供給される命令を実行する。一方、オペ
ランドデータは、データスイッチ13を介して、レジス
タファイル14から入力、又はレジスタファイル14に
出力される。
メモリ11から供給される命令を実行する。一方、オペ
ランドデータは、データスイッチ13を介して、レジス
タファイル14から入力、又はレジスタファイル14に
出力される。
【0009】全ての実行部が、レジスタファイル14内
の任意のレジスタを必ず参照、又はレジスタに書き込み
できるためには、各実行部が2つの入力オペランドに対
して演算を行い、1つの出力オペランドをレジスタに書
き込むことを考えると、2×n入力、n出力の多ポート
レジスタファイルが必要となる。
の任意のレジスタを必ず参照、又はレジスタに書き込み
できるためには、各実行部が2つの入力オペランドに対
して演算を行い、1つの出力オペランドをレジスタに書
き込むことを考えると、2×n入力、n出力の多ポート
レジスタファイルが必要となる。
【0010】同様に、データスイッチ13は、非閉塞で
あるためには、3n×3n(3n入力、3n出力)のク
ロスバスイッチとなる。
あるためには、3n×3n(3n入力、3n出力)のク
ロスバスイッチとなる。
【0011】更に、直前のn個の命令実行結果データを
直後のn個の命令のそれぞれ2つのオペランドデータと
して参照可能とするために、各n個の命令コードをもつ
VLIW命令間のレジスタ参照依存関係を調べ、必要に
応じてデータスイッチを切り替え、レジスタファイル1
4の読み出しデータではなく、実行部からの出力データ
を、再度実行部に供給する機構を備えるものが多い。
直後のn個の命令のそれぞれ2つのオペランドデータと
して参照可能とするために、各n個の命令コードをもつ
VLIW命令間のレジスタ参照依存関係を調べ、必要に
応じてデータスイッチを切り替え、レジスタファイル1
4の読み出しデータではなく、実行部からの出力データ
を、再度実行部に供給する機構を備えるものが多い。
【0012】
【発明が解決しようとする課題】このような従来のVL
IW型並列計算機では、毎命令実行サイクルにそれぞれ
の実行部に対して、別々の命令を与える必要があるた
め、VLIW命令コード(以下、VLIW計算機での一
度に実行される命令コードをVLIW命令、あるいはV
LIW命令コードといい、各実行部で実行される個々の
命令コードを単に命令、あるいは命令コードという。)
が長大になる。このため、CPU内部に命令キャッシュ
を設置し、CPU外部に設置された命令メモリと、命令
実行部との緩衝を行っている。
IW型並列計算機では、毎命令実行サイクルにそれぞれ
の実行部に対して、別々の命令を与える必要があるた
め、VLIW命令コード(以下、VLIW計算機での一
度に実行される命令コードをVLIW命令、あるいはV
LIW命令コードといい、各実行部で実行される個々の
命令コードを単に命令、あるいは命令コードという。)
が長大になる。このため、CPU内部に命令キャッシュ
を設置し、CPU外部に設置された命令メモリと、命令
実行部との緩衝を行っている。
【0013】これにより、命令メモリは通常の計算機と
同様に、1つの命令分の読み出し幅としながらも、命令
キャッシュから1つのVLIW命令にパックされて参照
可能としているものが多い。このようなVLIW計算機
において、各VLIW命令間のデータ参照依存のチェッ
ク、及び参照依存による命令実行の待ち合わせ時間を最
小化するために、データフォワーディング機構(レジス
タファイルを介さず、実行部からの命令実行結果データ
を、次の命令実行のために参照するためのデータバイパ
ス機構)を備えるものが多い。
同様に、1つの命令分の読み出し幅としながらも、命令
キャッシュから1つのVLIW命令にパックされて参照
可能としているものが多い。このようなVLIW計算機
において、各VLIW命令間のデータ参照依存のチェッ
ク、及び参照依存による命令実行の待ち合わせ時間を最
小化するために、データフォワーディング機構(レジス
タファイルを介さず、実行部からの命令実行結果データ
を、次の命令実行のために参照するためのデータバイパ
ス機構)を備えるものが多い。
【0014】しかしながら、VLIW命令間の参照依存
の組み合わせは非常に多く(N2のオーダ)、これをチ
ェックするための回路規模、及び配線量は多大となる。
このため、CPUをLSI化する際などにおいて、チッ
プサイズの増大、及び回路遅延による動作クロック周波
数の低下などの問題を引き起こしている。
の組み合わせは非常に多く(N2のオーダ)、これをチ
ェックするための回路規模、及び配線量は多大となる。
このため、CPUをLSI化する際などにおいて、チッ
プサイズの増大、及び回路遅延による動作クロック周波
数の低下などの問題を引き起こしている。
【0015】本発明は、回路規模、及び配線量を大幅に
削減することができ、CPUをLSI化する際などにお
いて、チップサイズの縮小、及び回路遅延を最小化する
ことが可能となり、動作クロック周波数を向上させ、消
費電力を最小化するとともに、チップコストを低減でき
る並列計算機を提供することを目的とする。
削減することができ、CPUをLSI化する際などにお
いて、チップサイズの縮小、及び回路遅延を最小化する
ことが可能となり、動作クロック周波数を向上させ、消
費電力を最小化するとともに、チップコストを低減でき
る並列計算機を提供することを目的とする。
【0016】
【課題を解決するための手段】本発明に係る並列計算機
は、同時に複数の命令実行部において、それぞれ独立し
た処理を行う並列計算機において、命令メモリ、命令キ
ャッシュ、命令キャッシュ書き込み制御部、命令アドレ
ス制御部、複数個の命令実行部、データスイッチ、及び
レジスタファイルを備え、次に実行すべきVLIW(Ve
ry Long Instruction Word)命令が、命令キャッシュに
存在しない場合には、命令メモリから、VLIW命令の
要素となる命令コードを、クロックサイクル毎に1つず
つ連続して読み出し、命令キャッシュ内の書き込み対象
とされるブロックに逐次書き込むと同時に、命令キャッ
シュ書き込み制御部において、命令コードと、直前に命
令メモリから読み込み生成した、それぞれ複数個の命令
コードで構成される、1つまたは複数のVLIW命令コ
ードとの間の、レジスタ参照依存を検査し、参照依存が
検出されない場合には、レジスタファイルからの読み出
しデータを、命令実行部に供給するための、予め定めら
れた値を、データスイッチ制御情報として、命令キャッ
シュの該当ブロックに書き込み、参照依存が検出された
場合には、次のVLIW命令の実行を抑止するためのウ
エイトサイクル数を抽出し、該ウエイトサイクル数を命
令キャッシュの該当ブロックに書き込むと同時に、直前
に実行されるVLIW命令の実行結果データを、レジス
タファイルを介さず、命令実行部からデータスイッチを
介して、直接、複数の命令実行部の特定の命令実行部へ
供給するための、データスイッチ制御情報を抽出し、該
データスイッチ制御情報を命令キャッシュの該当ブロッ
クに書き込み、その後、命令キャッシュ内に新たに生成
された、該当VLIW命令を読み出し、読み出したVL
IW命令を全ての命令実行部、データスイッチ、及びレ
ジスタファイルヘ、同時に供給して該VLIW命令を実
行し、次に実行すべきVLIW命令が、命令キャッシュ
に存在する場合には、命令キャッシュの該当ブロックか
ら、該実行すべきVLIW命令を読み出し、全ての命令
実行部、データスイッチ、及びレジスタファイルヘ、同
時に供給し、該VLIW命令を実行するように構成す
る。
は、同時に複数の命令実行部において、それぞれ独立し
た処理を行う並列計算機において、命令メモリ、命令キ
ャッシュ、命令キャッシュ書き込み制御部、命令アドレ
ス制御部、複数個の命令実行部、データスイッチ、及び
レジスタファイルを備え、次に実行すべきVLIW(Ve
ry Long Instruction Word)命令が、命令キャッシュに
存在しない場合には、命令メモリから、VLIW命令の
要素となる命令コードを、クロックサイクル毎に1つず
つ連続して読み出し、命令キャッシュ内の書き込み対象
とされるブロックに逐次書き込むと同時に、命令キャッ
シュ書き込み制御部において、命令コードと、直前に命
令メモリから読み込み生成した、それぞれ複数個の命令
コードで構成される、1つまたは複数のVLIW命令コ
ードとの間の、レジスタ参照依存を検査し、参照依存が
検出されない場合には、レジスタファイルからの読み出
しデータを、命令実行部に供給するための、予め定めら
れた値を、データスイッチ制御情報として、命令キャッ
シュの該当ブロックに書き込み、参照依存が検出された
場合には、次のVLIW命令の実行を抑止するためのウ
エイトサイクル数を抽出し、該ウエイトサイクル数を命
令キャッシュの該当ブロックに書き込むと同時に、直前
に実行されるVLIW命令の実行結果データを、レジス
タファイルを介さず、命令実行部からデータスイッチを
介して、直接、複数の命令実行部の特定の命令実行部へ
供給するための、データスイッチ制御情報を抽出し、該
データスイッチ制御情報を命令キャッシュの該当ブロッ
クに書き込み、その後、命令キャッシュ内に新たに生成
された、該当VLIW命令を読み出し、読み出したVL
IW命令を全ての命令実行部、データスイッチ、及びレ
ジスタファイルヘ、同時に供給して該VLIW命令を実
行し、次に実行すべきVLIW命令が、命令キャッシュ
に存在する場合には、命令キャッシュの該当ブロックか
ら、該実行すべきVLIW命令を読み出し、全ての命令
実行部、データスイッチ、及びレジスタファイルヘ、同
時に供給し、該VLIW命令を実行するように構成す
る。
【0017】また、本発明に係る並列計算機は、同時に
複数の命令実行部において、それぞれ独立した処理を行
う並列計算機において、命令メモリ、命令キャッシュ、
命令キャッシュ書き込み制御部、命令アドレス制御部、
複数個の命令実行部、データスイッチ、及びレジスタフ
ァイルを備え、命令メモリから、クロックサイクル毎に
1命令コードを読み出し、命令キャッシュ書き込み制御
部において、直前に読み込んだ、それぞれn(nは任意
の整数)個の命令コードで構成される、1つまたは複数
のVLIW命令コードとの、レジスタ参照依存を検査
し、参照依存が検出された場合には、次のVLIW命令
の実行を抑止するためのウエイトサイクル数を生成する
とともに、データフォワーディングを行うためのスイッ
チ制御情報を生成し、ウエイトサイクル数及びスイッチ
制御情報を、読み込んだ命令コードと同時に命令キャッ
シュの該当ブロックに書き込み、予め、命令キャッシュ
内においてVLIW命令を構成しておき、VLIW命令
実行時には、VLIW命令間のレジスタ参照依存チェッ
クは行わず、命令キャッシュから該当するVLIW命令
コード、ウエイト数、及びスイッチ制御情報を同時に読
み出し、直前に実行されたVLIW命令実行結果を参照
するための、VLIW命令実行待ち合わせ、及びデータ
スイッチの切り替えによるデータフォワーディングを行
うように構成する。
複数の命令実行部において、それぞれ独立した処理を行
う並列計算機において、命令メモリ、命令キャッシュ、
命令キャッシュ書き込み制御部、命令アドレス制御部、
複数個の命令実行部、データスイッチ、及びレジスタフ
ァイルを備え、命令メモリから、クロックサイクル毎に
1命令コードを読み出し、命令キャッシュ書き込み制御
部において、直前に読み込んだ、それぞれn(nは任意
の整数)個の命令コードで構成される、1つまたは複数
のVLIW命令コードとの、レジスタ参照依存を検査
し、参照依存が検出された場合には、次のVLIW命令
の実行を抑止するためのウエイトサイクル数を生成する
とともに、データフォワーディングを行うためのスイッ
チ制御情報を生成し、ウエイトサイクル数及びスイッチ
制御情報を、読み込んだ命令コードと同時に命令キャッ
シュの該当ブロックに書き込み、予め、命令キャッシュ
内においてVLIW命令を構成しておき、VLIW命令
実行時には、VLIW命令間のレジスタ参照依存チェッ
クは行わず、命令キャッシュから該当するVLIW命令
コード、ウエイト数、及びスイッチ制御情報を同時に読
み出し、直前に実行されたVLIW命令実行結果を参照
するための、VLIW命令実行待ち合わせ、及びデータ
スイッチの切り替えによるデータフォワーディングを行
うように構成する。
【0018】また、命令の実行時間は、1クロックサイ
クルであってもよく、命令の実行時間は、複数のクロッ
クサイクルであってもよい。
クルであってもよく、命令の実行時間は、複数のクロッ
クサイクルであってもよい。
【0019】また、並列計算機は、VLIW(Very Lon
g Instruction Word:超長形式機械命令)型並列計算機
であってもよい。
g Instruction Word:超長形式機械命令)型並列計算機
であってもよい。
【0020】
【発明の実施の形態】本発明に係る並列計算機は、VL
IW型並列計算機に適用することができる。
IW型並列計算機に適用することができる。
【0021】図1は本発明の第1の実施形態に係るVL
IW型並列計算機の全体構成を示す図である。
IW型並列計算機の全体構成を示す図である。
【0022】図1において、VLIW型並列計算機20
は、命令メモリ21、命令キャッシュ22、命令キャッ
シュ書き込み制御部23、命令アドレス制御部24、実
行部25(実行部1〜n)、データスイッチ26、及び
レジスタファイル27から構成される。
は、命令メモリ21、命令キャッシュ22、命令キャッ
シュ書き込み制御部23、命令アドレス制御部24、実
行部25(実行部1〜n)、データスイッチ26、及び
レジスタファイル27から構成される。
【0023】上記命令メモリ21は、命令アドレス制御
部24から入力される命令アドレスに従い、クロックサ
イクル毎に1つの命令コード(1つの実行部で実行され
る命令コード)を読み出し、命令キャッシュ22、及び
命令バッファ書き込み制御部23に与える。命令キャッ
シュ22は、タグ部、及びデータ部とで構成されるブロ
ックをm語備える。
部24から入力される命令アドレスに従い、クロックサ
イクル毎に1つの命令コード(1つの実行部で実行され
る命令コード)を読み出し、命令キャッシュ22、及び
命令バッファ書き込み制御部23に与える。命令キャッ
シュ22は、タグ部、及びデータ部とで構成されるブロ
ックをm語備える。
【0024】図2は上記命令キャッシュ22の構成を示
す図である。
す図である。
【0025】図2において、命令キャッシュ22は、タ
グ部がVフラグ、命令アドレス、及びLRUフラグから
構成される。
グ部がVフラグ、命令アドレス、及びLRUフラグから
構成される。
【0026】図2中のVは、Validフラグの意味であ
り、該当ブロックの内容が有効であるか、否かを示す。
命令数は、命令1〜nに格納される各命令のうち、命令
1から数えて、有効である命令数を示す。この命令数で
示される数の命令が、実行部1〜nにおいて並列実行可
能であることを示す。
り、該当ブロックの内容が有効であるか、否かを示す。
命令数は、命令1〜nに格納される各命令のうち、命令
1から数えて、有効である命令数を示す。この命令数で
示される数の命令が、実行部1〜nにおいて並列実行可
能であることを示す。
【0027】図2のハッチング部分に示す命令アドレス
は、該当ブロックの命令1に格納されている命令コード
の、命令メモリ上に配置された命令アドレスを示す。外
部から与えられた命令アドレスに一致する値が本命令ア
ドレス部に格納されている場合には、該当ブロックには
参照すべき命令コードが格納されていることを示す。
は、該当ブロックの命令1に格納されている命令コード
の、命令メモリ上に配置された命令アドレスを示す。外
部から与えられた命令アドレスに一致する値が本命令ア
ドレス部に格納されている場合には、該当ブロックには
参照すべき命令コードが格納されていることを示す。
【0028】LRUは、Least Recentyly Usedフラグの
意味であり、本フラグが0の場合には、該当ブロックに
格納されている命令が最近参照されていないことを示
す。このようなブロックは、新たな命令コード列を命令
バッファに格納する際の、更新対象となる。
意味であり、本フラグが0の場合には、該当ブロックに
格納されている命令が最近参照されていないことを示
す。このようなブロックは、新たな命令コード列を命令
バッファに格納する際の、更新対象となる。
【0029】上記命令アドレス部、及びLRU部は内容
検索型メモリ(連想メモリ)から構成され、該当部分に
格納されている内容と一致する場合に必要データを出力
する構造をもつ。
検索型メモリ(連想メモリ)から構成され、該当部分に
格納されている内容と一致する場合に必要データを出力
する構造をもつ。
【0030】上記命令アドレス部は、入力される命令ア
ドレスの内容と一致するブロックが存在する場合には一
致信号をアサート(論理“1”)し、該当ブロックのV
フラグ、命令数及び命令1〜nの内容を出力する。
ドレスの内容と一致するブロックが存在する場合には一
致信号をアサート(論理“1”)し、該当ブロックのV
フラグ、命令数及び命令1〜nの内容を出力する。
【0031】また、LRU部は、読み出しが行われた場
合に該当ブロックのLRUを1にし、書き込みを行う場
合には、Vフラグが0である一番若い番のブロック番号
を出力する。全てのVフラグが1の場合には、LRUが
0である一番若いブロック番号を出力すると同時に該当
ブロックのVフラグを0にする。全てのVフラグ、及び
全てのLRUが1の場合には一番老い番のブロック、す
なわちmを出力すると同時に該当ブロックのVフラグを
0にする。また、書き込み時(ブロックの更新時)に
は、更新されたブロックのLRUフラグのみ1になり、
他の全てのブロックのLRUフラグは0となる。
合に該当ブロックのLRUを1にし、書き込みを行う場
合には、Vフラグが0である一番若い番のブロック番号
を出力する。全てのVフラグが1の場合には、LRUが
0である一番若いブロック番号を出力すると同時に該当
ブロックのVフラグを0にする。全てのVフラグ、及び
全てのLRUが1の場合には一番老い番のブロック、す
なわちmを出力すると同時に該当ブロックのVフラグを
0にする。また、書き込み時(ブロックの更新時)に
は、更新されたブロックのLRUフラグのみ1になり、
他の全てのブロックのLRUフラグは0となる。
【0032】さらに、上記命令キャッシュ22のデータ
部は、n個の命令格納部で構成され、各命令格納部は、
命令コードを格納する部分、及びスイッチ制御情報を格
納する部分から構成される。
部は、n個の命令格納部で構成され、各命令格納部は、
命令コードを格納する部分、及びスイッチ制御情報を格
納する部分から構成される。
【0033】スイッチ制御情報格納部は、それぞれソー
スオペランド1指定部、及びソースオペランド2指定部
とで構成される。
スオペランド1指定部、及びソースオペランド2指定部
とで構成される。
【0034】図1に戻って、上記命令キャッシュ書き込
み制御部23は、次に実行すべきVLIW命令が命令キ
ャッシュ22に存在しない場合(以下、命令キャッシュ
ミスという。同様に、命令キャッシュミスでない場合を
命令キャッシュヒットという。)命令メモリ21から読
み出した命令コードを順次命令キャッシュ22に格納す
るための制御を行うとともに、直前に命令キャッシュ2
2内で生成された1つ、または複数のVLIW命令との
間のレジスタ参照依存をチェックする。
み制御部23は、次に実行すべきVLIW命令が命令キ
ャッシュ22に存在しない場合(以下、命令キャッシュ
ミスという。同様に、命令キャッシュミスでない場合を
命令キャッシュヒットという。)命令メモリ21から読
み出した命令コードを順次命令キャッシュ22に格納す
るための制御を行うとともに、直前に命令キャッシュ2
2内で生成された1つ、または複数のVLIW命令との
間のレジスタ参照依存をチェックする。
【0035】参照依存が検出された場合には、必要なデ
ータをレジスタファイル27を介さず、データスイッチ
26を介して実行部から直接参照するための、スイッチ
制御情報(スイッチ制御)を出力し、命令キャッシュ2
2の該当ブロックに格納するための機構をもつ。なお、
命令キャッシュ書き込み制御部23の詳細な回路構成に
ついては図4により後述する。
ータをレジスタファイル27を介さず、データスイッチ
26を介して実行部から直接参照するための、スイッチ
制御情報(スイッチ制御)を出力し、命令キャッシュ2
2の該当ブロックに格納するための機構をもつ。なお、
命令キャッシュ書き込み制御部23の詳細な回路構成に
ついては図4により後述する。
【0036】本実施形態では、全ての命令実行は各実行
部において1クロックサイクルで完了するものとする。
部において1クロックサイクルで完了するものとする。
【0037】図3は上記VLIW型並列計算機20によ
り実行される命令コードのフォーマットを示す図であ
る。
り実行される命令コードのフォーマットを示す図であ
る。
【0038】図3において、命令には演算命令と分岐命
令の2種があり、それぞれ別々のフォーマットをもつ。
演算命令は、演算指定、ソース1オペランド、ソース2
オペランド、及びデスティネーションオペランドで構成
される。また、分岐命令は、分岐指定、及び分岐先アド
レスで構成される。
令の2種があり、それぞれ別々のフォーマットをもつ。
演算命令は、演算指定、ソース1オペランド、ソース2
オペランド、及びデスティネーションオペランドで構成
される。また、分岐命令は、分岐指定、及び分岐先アド
レスで構成される。
【0039】演算命令ではソースオペランド1で指定さ
れるレジスタの内容とソースオペランド2で指定される
レジスタの内容に対して、演算指定で指定される演算を
行い、結果をデスティネーションオペランドで指定され
るレジスタに格納する操作を行い、分岐命令では、分岐
指定条件を満足する場合に分岐先アドレスを次に実行す
べき命令アドレスとする操作を行うものである。
れるレジスタの内容とソースオペランド2で指定される
レジスタの内容に対して、演算指定で指定される演算を
行い、結果をデスティネーションオペランドで指定され
るレジスタに格納する操作を行い、分岐命令では、分岐
指定条件を満足する場合に分岐先アドレスを次に実行す
べき命令アドレスとする操作を行うものである。
【0040】図4は上記VLIW型並列計算機20にお
ける命令キャッシュ書き込み制御部23の構成を示す回
路図である。
ける命令キャッシュ書き込み制御部23の構成を示す回
路図である。
【0041】図4において、命令キャッシュ書き込み制
御部23は、命令レジスタ31、シフトレジスタ32
(シフトレジスタ1〜n)、ラッチ33(ラッチ11〜
1n)、比較器34(比較器11〜n2)、バッファ3
5(バッファ11〜n2)、命令カウンタ36、デコー
ダ37、AND回路38(AND回路1)、AND回路
39(AND回路2)、OR回路40(OR回路1)及
びDラッチ41から構成される。
御部23は、命令レジスタ31、シフトレジスタ32
(シフトレジスタ1〜n)、ラッチ33(ラッチ11〜
1n)、比較器34(比較器11〜n2)、バッファ3
5(バッファ11〜n2)、命令カウンタ36、デコー
ダ37、AND回路38(AND回路1)、AND回路
39(AND回路2)、OR回路40(OR回路1)及
びDラッチ41から構成される。
【0042】上記命令レジスタ31は、命令メモリ21
から読み出した命令コードを一時的に保持するためのレ
ジスタである。
から読み出した命令コードを一時的に保持するためのレ
ジスタである。
【0043】上記シフトレジスタ32(シフトレジスタ
1〜n)は、連続して命令メモリ21から読み出される
n個の命令コードの、各デスティネーションオペランド
の内容を順次保存するものであり、n個の命令コードが
命令キャッシュ22に格納されてVLIW命令の生成が
完了するまでの間、その内容を保持する。
1〜n)は、連続して命令メモリ21から読み出される
n個の命令コードの、各デスティネーションオペランド
の内容を順次保存するものであり、n個の命令コードが
命令キャッシュ22に格納されてVLIW命令の生成が
完了するまでの間、その内容を保持する。
【0044】上記ラッチ33(ラッチ1〜n)は、直前
に生成されたVLIW命令を構成する各命令コードのデ
スティネーションオペランドをそれぞれ保持するための
ものであり、新たなVLIW命令が命令キャッシュ22
内に生成されるまで、その内容を保持する。
に生成されたVLIW命令を構成する各命令コードのデ
スティネーションオペランドをそれぞれ保持するための
ものであり、新たなVLIW命令が命令キャッシュ22
内に生成されるまで、その内容を保持する。
【0045】上記比較器34(比較器11〜n2)は、
それぞれ新たに命令レジスタ31に保持された命令コー
ドで参照するソースオペランド1、及びソースオペラン
ド2が、ラッチ1〜nに格納されている直前に生成され
たVLIW命令で指定するn個のデスティネーションオ
ペランドと一致するか否かを検査するものであり、VL
IW命令間の参照依存をチェックする。
それぞれ新たに命令レジスタ31に保持された命令コー
ドで参照するソースオペランド1、及びソースオペラン
ド2が、ラッチ1〜nに格納されている直前に生成され
たVLIW命令で指定するn個のデスティネーションオ
ペランドと一致するか否かを検査するものであり、VL
IW命令間の参照依存をチェックする。
【0046】上記バッファ35(バッファ11〜n2)
は、比較器11〜n2で一致が検出された場合に、それ
ぞれラッチ1〜nに保持されている直前に生成されたV
LIW命令のデスティネーションオペランドを出力する
ものであり、バッファ11、21〜n1出力、及びバッ
ファ12、22〜n2は、それぞれ論理和がとられ、デ
ータフォワード1、データフォワード2として、スイッ
チ制御を行うために命令キャッシュ22の該当ブロック
に格納される。
は、比較器11〜n2で一致が検出された場合に、それ
ぞれラッチ1〜nに保持されている直前に生成されたV
LIW命令のデスティネーションオペランドを出力する
ものであり、バッファ11、21〜n1出力、及びバッ
ファ12、22〜n2は、それぞれ論理和がとられ、デ
ータフォワード1、データフォワード2として、スイッ
チ制御を行うために命令キャッシュ22の該当ブロック
に格納される。
【0047】上記命令カウンタ36は、命令キャッシュ
ミス時に命令メモリ21から命令コードを読み込み、命
令キャッシュ22に格納してVLIW命令を生成する
間、毎クロックサイクル計数を行う。命令カウンタ36
は、VLIW命令構成のための命令コード数を計数する
もので、キャリー出力により新たに初期化(1となる)
される。また、キャリー出力はVフラグをアサート(1
にする)する。
ミス時に命令メモリ21から命令コードを読み込み、命
令キャッシュ22に格納してVLIW命令を生成する
間、毎クロックサイクル計数を行う。命令カウンタ36
は、VLIW命令構成のための命令コード数を計数する
もので、キャリー出力により新たに初期化(1となる)
される。また、キャリー出力はVフラグをアサート(1
にする)する。
【0048】このVフラグが命令キャッシュ22に書き
込まれることで、該当するブロックの内容が有効である
ことを示すことになる。
込まれることで、該当するブロックの内容が有効である
ことを示すことになる。
【0049】命令カウンタ36の計数出力は、デコーダ
37によりデコードされ、それぞれ命令キャッシュ22
の各命令コード、及びスイッチ制御情報の書き込み位置
に対する書き込み許可信号となる。
37によりデコードされ、それぞれ命令キャッシュ22
の各命令コード、及びスイッチ制御情報の書き込み位置
に対する書き込み許可信号となる。
【0050】上記AND回路38(AND回路1)は、
命令キャッシュミス時のみクロックを各部に供給するた
めのゲート回路である。
命令キャッシュミス時のみクロックを各部に供給するた
めのゲート回路である。
【0051】上記Dラッチ41、OR回路40(OR回
路1)、AND回路39(AND回路2)及びフリップ
フロップ42は、全体として命令キャッシュミスが発生
した最初の1クロックサイクルのみアサートされる遷移
検出回路43を構成する。
路1)、AND回路39(AND回路2)及びフリップ
フロップ42は、全体として命令キャッシュミスが発生
した最初の1クロックサイクルのみアサートされる遷移
検出回路43を構成する。
【0052】上記遷移検出回路43は、この出力がウエ
イト信号として、新たに生成されるVLIW命令の実行
を1クロックサイクル抑止するための情報となり、命令
キャッシュ22の該当ブロックに書き込まれる。
イト信号として、新たに生成されるVLIW命令の実行
を1クロックサイクル抑止するための情報となり、命令
キャッシュ22の該当ブロックに書き込まれる。
【0053】このウエイト情報は、命令キャッシュ22
が最初にミスした時点で、その直前に命令キャッシュ2
2から(命令キャッシュヒットして)読み出されたVL
IW命令との、レジスタ参照依存を検査することができ
ないために、データフォワーディングができないので、
強制的にウエイトサイクルを挿入し、直前のVLIW命
令実行結果であっても、レジスタファイルから読み出し
て次に実行されるVLIW命令を実行させるためのもの
である。
が最初にミスした時点で、その直前に命令キャッシュ2
2から(命令キャッシュヒットして)読み出されたVL
IW命令との、レジスタ参照依存を検査することができ
ないために、データフォワーディングができないので、
強制的にウエイトサイクルを挿入し、直前のVLIW命
令実行結果であっても、レジスタファイルから読み出し
て次に実行されるVLIW命令を実行させるためのもの
である。
【0054】図1に示す命令アドレス制御部24は、次
に読み出して実行すべき命令アドレスを生成するもので
あり、図5に回路構成を示す。
に読み出して実行すべき命令アドレスを生成するもので
あり、図5に回路構成を示す。
【0055】図5は上記命令アドレス制御部24の回路
構成図であり、この図において、命令アドレス制御部2
4は命令アドレスカウンタ51から構成される。
構成図であり、この図において、命令アドレス制御部2
4は命令アドレスカウンタ51から構成される。
【0056】命令アドレスカウンタ51は、入力される
分岐信号がアサートされていない状態(ネゲート状態)
では、クロックサイクル毎にnずつ増分させて、VLI
W命令を逐次的に実行する場合の命令アドレスを生成す
る。また、分岐信号がアサートされた状態では、入力さ
れる分岐アドレスをカウンタの初期値として設定し、分
岐先命令アドレスを生成するものである。
分岐信号がアサートされていない状態(ネゲート状態)
では、クロックサイクル毎にnずつ増分させて、VLI
W命令を逐次的に実行する場合の命令アドレスを生成す
る。また、分岐信号がアサートされた状態では、入力さ
れる分岐アドレスをカウンタの初期値として設定し、分
岐先命令アドレスを生成するものである。
【0057】図1に戻って、上記実行部25(実行部1
〜n)は、VLIW命令の実行部であり、1クロックサ
イクルでn個の処理を同時に行う。分岐命令は複数同時
に実行できないため、分岐命令を含むVLIW命令は、
必ず実行部1で実行される命令コードを分岐命令とし、
その他の命令コード(実行部2〜nで実行される)はN
OP(Non OPeration:何も処理を行わない命令)とな
っている。
〜n)は、VLIW命令の実行部であり、1クロックサ
イクルでn個の処理を同時に行う。分岐命令は複数同時
に実行できないため、分岐命令を含むVLIW命令は、
必ず実行部1で実行される命令コードを分岐命令とし、
その他の命令コード(実行部2〜nで実行される)はN
OP(Non OPeration:何も処理を行わない命令)とな
っている。
【0058】上記レジスタファイル27は、演算のため
のソースペランドデータを格納したり、演算結果である
デスティネーションオペランドデータを格納するもので
ある。n個の実行部に対して、同時に、それぞれ独立に
2つのソースオペランドデータを供給し、それぞれ独立
に1つのデスティネーションデータを書き込むことを可
能とするために、2n個の読み出しポー卜とn個の書き
込みポートを備える。
のソースペランドデータを格納したり、演算結果である
デスティネーションオペランドデータを格納するもので
ある。n個の実行部に対して、同時に、それぞれ独立に
2つのソースオペランドデータを供給し、それぞれ独立
に1つのデスティネーションデータを書き込むことを可
能とするために、2n個の読み出しポー卜とn個の書き
込みポートを備える。
【0059】上記データスイッチ26は、実行部1〜n
に対して、同時に2n個のソースオペランドデータを供
給し、レジスタファイル27に対して、同時にn個のデ
スティネーションデータを供給するためのデータスイッ
チで、データフォワーディングを行うための実行部間の
データ参照を可能とする構成となっている。このため、
3n入力×3n出力のクロスバスイッチで構成される。
に対して、同時に2n個のソースオペランドデータを供
給し、レジスタファイル27に対して、同時にn個のデ
スティネーションデータを供給するためのデータスイッ
チで、データフォワーディングを行うための実行部間の
データ参照を可能とする構成となっている。このため、
3n入力×3n出力のクロスバスイッチで構成される。
【0060】以下、上述のように構成されたVLIW型
並列計算機20の動作を説明する。
並列計算機20の動作を説明する。
【0061】図1に示すVLIW型並列計算機20にお
いて、命令アドレス制御部24から出力される命令アド
レスにより、命令メモリ21の読み出しと、命令キャッ
シュ22の索引が同時に行われる。
いて、命令アドレス制御部24から出力される命令アド
レスにより、命令メモリ21の読み出しと、命令キャッ
シュ22の索引が同時に行われる。
【0062】入力される命令アドレスに等しい命令アド
レスを保持しているブロックが、命令キャッシュ22内
に存在し、かつ、そのブロックのVフラグが1である場
合には、命令キャッシュヒットと認識される。この場合
には、命令キャッシュ22の該当ブロックから必要な情
報を読み出す。
レスを保持しているブロックが、命令キャッシュ22内
に存在し、かつ、そのブロックのVフラグが1である場
合には、命令キャッシュヒットと認識される。この場合
には、命令キャッシュ22の該当ブロックから必要な情
報を読み出す。
【0063】必要な情報とは、前記図2の命令キャッシ
ュの構成に示すように、ウエイト情報、及び命令1〜n
である。
ュの構成に示すように、ウエイト情報、及び命令1〜n
である。
【0064】ウエイト情報は、直前に実行されたVLI
W命令と次に実行するVLIW命令間のレジスタ参照依
存が不明の場合、これは、次に実行するVLIW命令
が、命令キャッシュミスにより最初に生成されたVLI
W命令である場合に限られるが、次のVLIW命令の実
行を強制的に1クロックサイクル抑止するもので、直前
の命令実行結果がレジスタファイル27に書き込まれた
後に、次のVLIW命令実行のためのソースオペランド
データの読み出しを開始させるための、同期をとるもの
である。
W命令と次に実行するVLIW命令間のレジスタ参照依
存が不明の場合、これは、次に実行するVLIW命令
が、命令キャッシュミスにより最初に生成されたVLI
W命令である場合に限られるが、次のVLIW命令の実
行を強制的に1クロックサイクル抑止するもので、直前
の命令実行結果がレジスタファイル27に書き込まれた
後に、次のVLIW命令実行のためのソースオペランド
データの読み出しを開始させるための、同期をとるもの
である。
【0065】命令1〜nは、それぞれスイッチ制御情
報、及び命令コードとで構成されている。
報、及び命令コードとで構成されている。
【0066】また、スイッチ制御情報は、SW11〜n
1のソースオペランド1データを実行部に与えるため
に、必要なスイッチ切り替え情報と、SW12〜n2の
ソースオペランド2データを実行部に与えるために、必
要なスイッチ切り替え情報とから構成される。
1のソースオペランド1データを実行部に与えるため
に、必要なスイッチ切り替え情報と、SW12〜n2の
ソースオペランド2データを実行部に与えるために、必
要なスイッチ切り替え情報とから構成される。
【0067】SW11〜n1、及びSW12〜n2の各
スイッチ制御情報は、それぞれSW11,12〜SWn
1,n2のペアで、命令1〜nの各スイッチ制御情報と
して、命令キャッシュ22の該当ブロックに書き込まれ
ている。
スイッチ制御情報は、それぞれSW11,12〜SWn
1,n2のペアで、命令1〜nの各スイッチ制御情報と
して、命令キャッシュ22の該当ブロックに書き込まれ
ている。
【0068】スイッチ制御情報は、命令キャッシュ書き
込み制御部23において、VLIW命令間のレジスタ参
照依存がないと認識された場合には、データフォワーデ
ィングを行う必要がない。このときは、単にレジスタフ
ァイル27からの読み出しデータのデータスイッチ26
への入力位置がスイッチ情報となる。
込み制御部23において、VLIW命令間のレジスタ参
照依存がないと認識された場合には、データフォワーデ
ィングを行う必要がない。このときは、単にレジスタフ
ァイル27からの読み出しデータのデータスイッチ26
への入力位置がスイッチ情報となる。
【0069】すなわち、図1においてデータスイッチの
R11がSW11として、R12がSW12として、以
下同様に、Rn1がSWn1、そして、Rn2がSWn
2として、命令キャッシュ22に書き込まれる。VLI
W命令間のレジスタ参照依存があると認識された場合に
は、命令キャッシュ書き込み制御部23から供給される
データフォワーディングを行うための、スイッチ制御情
報、すなわち、データフォワード1、及びデータフォワ
ード2が命令キャッシュ22の該当ブロックに書き込ま
れる。
R11がSW11として、R12がSW12として、以
下同様に、Rn1がSWn1、そして、Rn2がSWn
2として、命令キャッシュ22に書き込まれる。VLI
W命令間のレジスタ参照依存があると認識された場合に
は、命令キャッシュ書き込み制御部23から供給される
データフォワーディングを行うための、スイッチ制御情
報、すなわち、データフォワード1、及びデータフォワ
ード2が命令キャッシュ22の該当ブロックに書き込ま
れる。
【0070】命令キャッシュ22から読み出される、該
当ブロックのスイッチ制御情報は、全て同時に、データ
スイッチ26に供給される。
当ブロックのスイッチ制御情報は、全て同時に、データ
スイッチ26に供給される。
【0071】また、命令コード1〜nは、それぞれ実行
部1〜nに供給される。命令コード1〜nの各ソースオ
ペランド1、ソースオペランド2(これらはソースオペ
ランドデータとなるレジスタを指定する)、及びデステ
ィネーションオペランド(デスティネーションオペラン
ドデータを格納するレジスタを指定する)は、全て同時
に、レジスタファイル27にも供給される。なお、図1
では、この信号接続は省略されている。
部1〜nに供給される。命令コード1〜nの各ソースオ
ペランド1、ソースオペランド2(これらはソースオペ
ランドデータとなるレジスタを指定する)、及びデステ
ィネーションオペランド(デスティネーションオペラン
ドデータを格納するレジスタを指定する)は、全て同時
に、レジスタファイル27にも供給される。なお、図1
では、この信号接続は省略されている。
【0072】レジスタファイル27では、命令キャッシ
ュ22から供給された命令コード1〜nに含まれる各ソ
ースオペランド1、及びソースオペランド2で指定され
る2n個のソースオペランドデータを、同時に読み出
し、これらの全てをデータスイッチ26に供給する。
ュ22から供給された命令コード1〜nに含まれる各ソ
ースオペランド1、及びソースオペランド2で指定され
る2n個のソースオペランドデータを、同時に読み出
し、これらの全てをデータスイッチ26に供給する。
【0073】データスイッチ26では、命令キャッシュ
22から供給されたスイッチ制御情報に従い、クロスバ
スイッチの制御を行う。例えば、命令コード1のソース
オペランド1がレジスタファイル27のr1を指定して
いて、このレジスタに関する参照依存がない場合には、
データフォワーディングは行われず、データスイッチ2
6に入力されるレジスタファイル27のr1の値、これ
は図1に示すデータスイッチ26のR11に入力される
ため、図1のR11をS11に接続するようにスイッチ
が切り替えられる。
22から供給されたスイッチ制御情報に従い、クロスバ
スイッチの制御を行う。例えば、命令コード1のソース
オペランド1がレジスタファイル27のr1を指定して
いて、このレジスタに関する参照依存がない場合には、
データフォワーディングは行われず、データスイッチ2
6に入力されるレジスタファイル27のr1の値、これ
は図1に示すデータスイッチ26のR11に入力される
ため、図1のR11をS11に接続するようにスイッチ
が切り替えられる。
【0074】また、命令コードnのソースオペランド2
がレジスタファイル27のr2を指定していて、かつ、
このレジスタが直前のVLIW命令の内の命令nの実行
により更新される場合には、データフォワーディングが
行われ、データスイッチ26に入力される命令nの実行
結果、これは図1に示すデータスイッチ26のDnに入
力されるため、図1のDnをSn2に接続するようにス
イッチが切り替えられる。
がレジスタファイル27のr2を指定していて、かつ、
このレジスタが直前のVLIW命令の内の命令nの実行
により更新される場合には、データフォワーディングが
行われ、データスイッチ26に入力される命令nの実行
結果、これは図1に示すデータスイッチ26のDnに入
力されるため、図1のDnをSn2に接続するようにス
イッチが切り替えられる。
【0075】データスイッチ26のS11〜S2nを介
して、実行部1〜nに与えられる、各ソースオペランド
1データ、及びソースオペランド2データは、実行部1
〜nにおいて演算され、結果データであるデスティネー
ションオペランドデータはデータスイッチのD1〜nに
出力される。
して、実行部1〜nに与えられる、各ソースオペランド
1データ、及びソースオペランド2データは、実行部1
〜nにおいて演算され、結果データであるデスティネー
ションオペランドデータはデータスイッチのD1〜nに
出力される。
【0076】データスイッチ26では、D1〜nに入力
されたデスティネーションオペランドデータを、それぞ
れW1〜nに接続させて供給するとともに、スイッチ制
御情報においてデータフォワーディングを指定されたデ
スティネーションオペランドデータを、次に実行するV
LIW命令のためのソースオペランドデータとして、S
11〜2nのうちの所定の出力に接続する。
されたデスティネーションオペランドデータを、それぞ
れW1〜nに接続させて供給するとともに、スイッチ制
御情報においてデータフォワーディングを指定されたデ
スティネーションオペランドデータを、次に実行するV
LIW命令のためのソースオペランドデータとして、S
11〜2nのうちの所定の出力に接続する。
【0077】レジスタファイル27では、データスイッ
チ26のW1〜nから入力されるデスティネーションデ
ータを、命令コード1〜nのデスティネーションオペラ
ンドで指定されるレジスタに、それぞれ書き込む。
チ26のW1〜nから入力されるデスティネーションデ
ータを、命令コード1〜nのデスティネーションオペラ
ンドで指定されるレジスタに、それぞれ書き込む。
【0078】分岐命令がVLIW命令に含まれる場合に
は、同時に複数の分岐命令を実行すること、及び分岐命
令と同時に他の命令を実行すること、のどちらもプログ
ラムの動作上不可能であるので、この場合には、分岐命
令が命令コード1に、命令コード2〜nは全てNOPと
なる。分岐命令は、必ず実行部1で実行される。結果
は、分岐信号がアサートされ、分岐アドレスが出力さ
れ、命令アドレス制御部24に供給される。
は、同時に複数の分岐命令を実行すること、及び分岐命
令と同時に他の命令を実行すること、のどちらもプログ
ラムの動作上不可能であるので、この場合には、分岐命
令が命令コード1に、命令コード2〜nは全てNOPと
なる。分岐命令は、必ず実行部1で実行される。結果
は、分岐信号がアサートされ、分岐アドレスが出力さ
れ、命令アドレス制御部24に供給される。
【0079】図5に示す命令アドレス制御部24におい
て、命令アドレスカウンタ51は、入力される分岐信号
がアサートされていない状態(ネゲート状態)では、ク
ロックサイクル毎にnずつ増分させて、VLIW命令を
逐次的に実行する場合の命令アドレスを生成する。ま
た、分岐信号がアサートされた状態では、入力される分
岐アドレスをカウンタの初期値として設定し、分岐先命
令アドレスを生成する。
て、命令アドレスカウンタ51は、入力される分岐信号
がアサートされていない状態(ネゲート状態)では、ク
ロックサイクル毎にnずつ増分させて、VLIW命令を
逐次的に実行する場合の命令アドレスを生成する。ま
た、分岐信号がアサートされた状態では、入力される分
岐アドレスをカウンタの初期値として設定し、分岐先命
令アドレスを生成する。
【0080】命令キャッシュミス、すなわち、命令キャ
ッシュ22において、入力される命令アドレスと等しい
命令アドレスがタグ部に存在しない場合、あるいは、存
在してもそのブロックのVフラグが0である場合には、
命令メモリ21から新たにn個の命令コードを読み出
し、これらを命令キャッシュ22の、更新先ブロックに
順次書き込んでいくとともに、直前に命令キャッシュ2
2内の別のブロックに生成されたVLIW命令との、レ
ジスタ参照依存をチェックし、参照依存が検出された場
合には、データフォワーディングを行うためのスイッチ
制御情報を生成し、これを命令キャッシュ22の該当ブ
ロックに書き込み、VLIW命令実行時にデータスイッ
チ26にこれを供給し、データスイッチ26にてデータ
フォワーディングを行うためのパスを形成する。
ッシュ22において、入力される命令アドレスと等しい
命令アドレスがタグ部に存在しない場合、あるいは、存
在してもそのブロックのVフラグが0である場合には、
命令メモリ21から新たにn個の命令コードを読み出
し、これらを命令キャッシュ22の、更新先ブロックに
順次書き込んでいくとともに、直前に命令キャッシュ2
2内の別のブロックに生成されたVLIW命令との、レ
ジスタ参照依存をチェックし、参照依存が検出された場
合には、データフォワーディングを行うためのスイッチ
制御情報を生成し、これを命令キャッシュ22の該当ブ
ロックに書き込み、VLIW命令実行時にデータスイッ
チ26にこれを供給し、データスイッチ26にてデータ
フォワーディングを行うためのパスを形成する。
【0081】このように、命令キャッシュミスの際に、
命令メモリ21から読み出した命令コードの、命令キャ
ッシュ22への書き込み、及び、VLIW命令実行時の
オペランドデータ供給のための、スイッチ制御情報の生
成と、これの命令キャッシュ22への書き込みの制御を
行うのが、命令キャッシュ書き込み制御部23である。
命令メモリ21から読み出した命令コードの、命令キャ
ッシュ22への書き込み、及び、VLIW命令実行時の
オペランドデータ供給のための、スイッチ制御情報の生
成と、これの命令キャッシュ22への書き込みの制御を
行うのが、命令キャッシュ書き込み制御部23である。
【0082】以下、図4に示す命令キャッシュ書き込み
制御部23の動作について詳細に説明する。
制御部23の動作について詳細に説明する。
【0083】図4に示す命令キャッシュ書き込み制御部
23において、命令キャッシュミス時に命令アドレスに
より命令メモリ21から読み出した命令コードは、まず
命令レジスタ31に格納される。
23において、命令キャッシュミス時に命令アドレスに
より命令メモリ21から読み出した命令コードは、まず
命令レジスタ31に格納される。
【0084】シフトレジスタ32(シフトレジスタ1〜
n)では、連続して命令メモリ21から読み出されるn
個の命令コードの、各デスティネーションオペランドの
内容を順次シフトインし、1クロックサイクル後にシフ
トアウトしながら、保存するもので、n個の命令コード
が命令キャッシュに格納されてVLIW命令の生成が完
了するまでの間、その内容を保持する。
n)では、連続して命令メモリ21から読み出されるn
個の命令コードの、各デスティネーションオペランドの
内容を順次シフトインし、1クロックサイクル後にシフ
トアウトしながら、保存するもので、n個の命令コード
が命令キャッシュに格納されてVLIW命令の生成が完
了するまでの間、その内容を保持する。
【0085】ラッチ33(ラッチ1〜n)は、直前に生
成されたVLIW命令を構成する各命令コードのデステ
ィネーションオペランドをそれぞれ保持するためのもの
で、新たなVLIW命令が命令キャッシュ22内に生成
されるまで、その内容を保持する。
成されたVLIW命令を構成する各命令コードのデステ
ィネーションオペランドをそれぞれ保持するためのもの
で、新たなVLIW命令が命令キャッシュ22内に生成
されるまで、その内容を保持する。
【0086】すなわち、ラッチ1〜nでは、直前に命令
キャッシュ22内に生成されたVLIW命令コードのn
個のデスティネーションオペランドを、次に新たなVL
IW命令が命令キャッシュ22内で生成されるまでの間
保持する。したがって、命令レジスタ31に保持された
命令コードのソースオペランド1、及びソースオペラン
ド2と、ラッチ1〜nの内容とを、それぞれ比較するこ
とにより、VLIW命令間のレジスタ参照依存をチェッ
クすることができる。この比較は、図4の比較器34
(比較器11〜n2)において行う。
キャッシュ22内に生成されたVLIW命令コードのn
個のデスティネーションオペランドを、次に新たなVL
IW命令が命令キャッシュ22内で生成されるまでの間
保持する。したがって、命令レジスタ31に保持された
命令コードのソースオペランド1、及びソースオペラン
ド2と、ラッチ1〜nの内容とを、それぞれ比較するこ
とにより、VLIW命令間のレジスタ参照依存をチェッ
クすることができる。この比較は、図4の比較器34
(比較器11〜n2)において行う。
【0087】また、バッファ35(バッファ11〜n
2)は、比較器11〜n2で一致が検出された場合に、
それぞれラッチ33(ラッチ1〜n)に保持されている
直前に生成されたVLIW命令のデスティネーションオ
ペランドを出力するものであり、バッファ11,21〜
n1出力、及び、バッファ12,22〜n2は、それぞ
れ論理和がとられ、データフォワード1、データフォワ
ード2として、スイッチ制御を行うために命令キャッシ
ュ22の該当ブロックに格納される。
2)は、比較器11〜n2で一致が検出された場合に、
それぞれラッチ33(ラッチ1〜n)に保持されている
直前に生成されたVLIW命令のデスティネーションオ
ペランドを出力するものであり、バッファ11,21〜
n1出力、及び、バッファ12,22〜n2は、それぞ
れ論理和がとられ、データフォワード1、データフォワ
ード2として、スイッチ制御を行うために命令キャッシ
ュ22の該当ブロックに格納される。
【0088】上記比較器11〜n1及び比較器12〜n
2では、それぞれ多くても1つの比較器においてのみ一
致が検出されるとしている。これは、1つのVLIW命
令において、同時に複数の命令が、それぞれの演算結果
を、同一のレジスタに格納することは有りえないとして
いるからである。
2では、それぞれ多くても1つの比較器においてのみ一
致が検出されるとしている。これは、1つのVLIW命
令において、同時に複数の命令が、それぞれの演算結果
を、同一のレジスタに格納することは有りえないとして
いるからである。
【0089】したがって、1つの命令コードに対して、
データフォワード1、及びデータフォワード2の最大2
つの、データフォワーディングを行うためのスイッチ制
御情報が生成される。
データフォワード1、及びデータフォワード2の最大2
つの、データフォワーディングを行うためのスイッチ制
御情報が生成される。
【0090】また、図4の命令カウンタ36は、VLI
W命令構成のための命令コード数を計数するものであ
り、命令キャッシュミス時に命令メモリ21から命令コ
ードを読み込み、命令キャッシュ22に格納してVLI
W命令を生成する間、毎クロックサイクル計数を行う。
キャリー出力により新たに初期化(1となる)される。
また、キャリー出力はVフラグをアサート(1にする)
する。このVフラグが命令キャッシュ22に書き込まれ
ることで、該当するブロックの書き込みが完了し、その
内容が有効であることを示すことになる。
W命令構成のための命令コード数を計数するものであ
り、命令キャッシュミス時に命令メモリ21から命令コ
ードを読み込み、命令キャッシュ22に格納してVLI
W命令を生成する間、毎クロックサイクル計数を行う。
キャリー出力により新たに初期化(1となる)される。
また、キャリー出力はVフラグをアサート(1にする)
する。このVフラグが命令キャッシュ22に書き込まれ
ることで、該当するブロックの書き込みが完了し、その
内容が有効であることを示すことになる。
【0091】また、命令カウンタ36の計数出力は、デ
コーダ37によりデコードされ、それぞれ命令キャッシ
ュ22の各命令コード、及びスイッチ制御情報の書き込
み位置に対する書き込み許可信号となる。
コーダ37によりデコードされ、それぞれ命令キャッシ
ュ22の各命令コード、及びスイッチ制御情報の書き込
み位置に対する書き込み許可信号となる。
【0092】AND回路38(AND回路1)は、命令
キャッシュミス時のみクロックを各部に供給するための
ゲート回路である。
キャッシュミス時のみクロックを各部に供給するための
ゲート回路である。
【0093】Dラッチ41、OR回路40(OR回路
1)、AND回路39(AND回路2)及びフリップフ
ロップ42は連続しない命令キャッシュミスが発生した
最初の1クロックサイクルのみアサー卜される信号を生
成する遷移検出回路43である。
1)、AND回路39(AND回路2)及びフリップフ
ロップ42は連続しない命令キャッシュミスが発生した
最初の1クロックサイクルのみアサー卜される信号を生
成する遷移検出回路43である。
【0094】命令キャッシュミスにより、新たにVLI
W命令が命令キャッシュ22内に生成されると、命令ア
ドレスの照合が一致し、Vフラグがアサートされること
で、命令キャッシュミスは解除される。
W命令が命令キャッシュ22内に生成されると、命令ア
ドレスの照合が一致し、Vフラグがアサートされること
で、命令キャッシュミスは解除される。
【0095】これにより生成されたばかりのVLIW命
令は命令キャッシュ22から読み出されて、実行部1〜
nに供給される。ところが、この直後のVLIW命令に
ついても、命令キャッシュミスの場合には、1クロック
サイクル後に、また、命令キャッシュ22からミス信号
がアサートされる。つまり、連続して命令キャッシュミ
スの場合には、ミス信号は1クロックサイクルの間だけ
ネゲートされる。
令は命令キャッシュ22から読み出されて、実行部1〜
nに供給される。ところが、この直後のVLIW命令に
ついても、命令キャッシュミスの場合には、1クロック
サイクル後に、また、命令キャッシュ22からミス信号
がアサートされる。つまり、連続して命令キャッシュミ
スの場合には、ミス信号は1クロックサイクルの間だけ
ネゲートされる。
【0096】したがって、ミス信号が2クロックサイク
ル以上ネゲートされていた状態において、新たにミス信
号がアサートされた遷移を検出することで、連続しない
命令キャッシュミスの最初の時点を検出することができ
る。
ル以上ネゲートされていた状態において、新たにミス信
号がアサートされた遷移を検出することで、連続しない
命令キャッシュミスの最初の時点を検出することができ
る。
【0097】遷移検出回路43で生成された、この信号
はウエイト信号として、新たに生成されるVLIW命令
の実行を1クロックサイクル抑止するための情報とな
り、命令キャッシュ22の該当ブロックに書き込まれ
る。
はウエイト信号として、新たに生成されるVLIW命令
の実行を1クロックサイクル抑止するための情報とな
り、命令キャッシュ22の該当ブロックに書き込まれ
る。
【0098】このウエイト情報は、命令キャッシュ22
が最初にミスした時点で、その直前に命令キャッシュ2
2から(命令キャッシュヒットして)読み出されたVL
IW命令との、レジスタ参照依存を検査することができ
ないために、データフォワーディングができないので、
強制的にウエイトサイクルを挿入し、直前のVLIW命
令実行結果であっても、レジスタファイル27から読み
出して次に実行されるVLIW命令を実行させるための
ものである。
が最初にミスした時点で、その直前に命令キャッシュ2
2から(命令キャッシュヒットして)読み出されたVL
IW命令との、レジスタ参照依存を検査することができ
ないために、データフォワーディングができないので、
強制的にウエイトサイクルを挿入し、直前のVLIW命
令実行結果であっても、レジスタファイル27から読み
出して次に実行されるVLIW命令を実行させるための
ものである。
【0099】次に、命令キャッシュ22における書き込
み時の動作を説明する。
み時の動作を説明する。
【0100】図2に示す命令キャッシュ22において、
命令アドレス部、及びLRU部は、共に内容検索型の連
想メモリで構成されている。命令キャッシュ22では、
命令キャッシュミスでない状態では、クロックサイクル
毎入力された命令アドレスに一致するブロックの存在を
検査する。これは、命令バッファの各ブロックの命令ア
ドレス部を検索することで実行される。命令アドレス部
は、内容検索型のメモリで構成され、外部から入力され
た命令アドレスに一致する内容を命令アドレス部に保持
しているブロックを検索する。
命令アドレス部、及びLRU部は、共に内容検索型の連
想メモリで構成されている。命令キャッシュ22では、
命令キャッシュミスでない状態では、クロックサイクル
毎入力された命令アドレスに一致するブロックの存在を
検査する。これは、命令バッファの各ブロックの命令ア
ドレス部を検索することで実行される。命令アドレス部
は、内容検索型のメモリで構成され、外部から入力され
た命令アドレスに一致する内容を命令アドレス部に保持
しているブロックを検索する。
【0101】もし、一致するブロックが存在する場合に
は、ミス信号をネゲートすると共に、当該ブロックのV
フラグ、命令数、及び命令1〜nの内容を出力する。ま
た、同時に当該ブロックのLRUフラグを1にする。一
致するブロックが存在しない場合には、ミス信号はアサ
ートされる。この場合には、命令メモリ21から順次読
み出したn個の命令コードは、順次命令バッファの同一
ブロックに格納される。
は、ミス信号をネゲートすると共に、当該ブロックのV
フラグ、命令数、及び命令1〜nの内容を出力する。ま
た、同時に当該ブロックのLRUフラグを1にする。一
致するブロックが存在しない場合には、ミス信号はアサ
ートされる。この場合には、命令メモリ21から順次読
み出したn個の命令コードは、順次命令バッファの同一
ブロックに格納される。
【0102】このとき、新たにVLIW命令生成のため
の命令コードを格納すべきブロックは、LRUブロック
番号として命令キャッシュのタグ部分から与えられる。
命令キャッシュ22のLRU部分は、内容検索型メモリ
であり、書き込みを行う場合には、Vフラグが0である
一番若い番のブロック番号を出力する。
の命令コードを格納すべきブロックは、LRUブロック
番号として命令キャッシュのタグ部分から与えられる。
命令キャッシュ22のLRU部分は、内容検索型メモリ
であり、書き込みを行う場合には、Vフラグが0である
一番若い番のブロック番号を出力する。
【0103】全てのVフラグが1の場合には、LRUフ
ラグが0である一番若い番のブロック番号を出力すると
同時に当該ブロックのVフラグを0にする。また、全て
のVフラグ、及び全てのLRUフラグが1の場合には一
番老い番のブロック、すなわちmを出力すると同時に当
該ブロックのVフラグを0にする。また、書き込み時
(ブロックの更新時)には、更新されたブロックのLR
Uフラグのみ1になり、他の全てのブロックのLRUフ
ラグは0となる。
ラグが0である一番若い番のブロック番号を出力すると
同時に当該ブロックのVフラグを0にする。また、全て
のVフラグ、及び全てのLRUフラグが1の場合には一
番老い番のブロック、すなわちmを出力すると同時に当
該ブロックのVフラグを0にする。また、書き込み時
(ブロックの更新時)には、更新されたブロックのLR
Uフラグのみ1になり、他の全てのブロックのLRUフ
ラグは0となる。
【0104】この方法により、命令キャッシュ内のブロ
ックを最大効率で利用することが可能となる。
ックを最大効率で利用することが可能となる。
【0105】なお、第1の実施形態で示すLRU部分の
動作方法は、上述した方法に限定されず、既存技術によ
るLRU機構を用いるようにしてもよいことは勿論であ
る。
動作方法は、上述した方法に限定されず、既存技術によ
るLRU機構を用いるようにしてもよいことは勿論であ
る。
【0106】以上説明したように、第1の実施形態に係
るVLIW型並列計算機20は、命令メモリ21、命令
キャッシュ22、命令キャッシュ書き込み制御部23、
命令アドレス制御部24、複数個の命令実行部25、デ
ータスイッチ26、及びレジスタファイル27を備え、
命令メモリ21から、クロックサイクル毎に1命令コー
ドを読み出し、命令キャッシュ書き込み制御部23にお
いて、直前に読み込んだ、それぞれn個の命令コードで
構成される、1つまたは複数のVLIW命令コードと
の、レジスタ参照依存を検査し、参照依存が検出された
場合には、次のVLIW命令の実行を抑止するためのウ
エイトサイクル数を生成するとともに、データフォワー
ディングを行うためのスイッチ制御情報を生成し、ウエ
イトサイクル数及びスイッチ制御情報を、読み込んだ命
令コードと同時に命令キャッシュ22の該当ブロックに
書き込み、予め、命令キャッシュ22内においてVLI
W命令を構成しておき、VLIW命令実行時には、単
に、VLIW命令間のレジスタ参照依存チェックは行わ
ず、命令キャッシュ22から該当するVLIW命令コー
ド、ウエイト数、及びスイッチ制御情報を同時に読み出
し、直前に実行されたVLIW命令実行結果を参照する
ための、VLIW命令実行待ち合わせ、及びデータスイ
ッチ26の切り替えによるデータフォワーディングを行
うように構成しているので、従来例によるVLIW型並
列計算機のように、VLIW命令実行時に、VLIW命
令間のレジスタ参照依存をチェックし、これによる命令
実行の抑止、及び、データフォワーディングのための制
御信号の生成を行う必要はなく、CPUをLSI化する
際などにおいて、チップサイズの縮小、及び回路遅延を
最小化することが可能となる。
るVLIW型並列計算機20は、命令メモリ21、命令
キャッシュ22、命令キャッシュ書き込み制御部23、
命令アドレス制御部24、複数個の命令実行部25、デ
ータスイッチ26、及びレジスタファイル27を備え、
命令メモリ21から、クロックサイクル毎に1命令コー
ドを読み出し、命令キャッシュ書き込み制御部23にお
いて、直前に読み込んだ、それぞれn個の命令コードで
構成される、1つまたは複数のVLIW命令コードと
の、レジスタ参照依存を検査し、参照依存が検出された
場合には、次のVLIW命令の実行を抑止するためのウ
エイトサイクル数を生成するとともに、データフォワー
ディングを行うためのスイッチ制御情報を生成し、ウエ
イトサイクル数及びスイッチ制御情報を、読み込んだ命
令コードと同時に命令キャッシュ22の該当ブロックに
書き込み、予め、命令キャッシュ22内においてVLI
W命令を構成しておき、VLIW命令実行時には、単
に、VLIW命令間のレジスタ参照依存チェックは行わ
ず、命令キャッシュ22から該当するVLIW命令コー
ド、ウエイト数、及びスイッチ制御情報を同時に読み出
し、直前に実行されたVLIW命令実行結果を参照する
ための、VLIW命令実行待ち合わせ、及びデータスイ
ッチ26の切り替えによるデータフォワーディングを行
うように構成しているので、従来例によるVLIW型並
列計算機のように、VLIW命令実行時に、VLIW命
令間のレジスタ参照依存をチェックし、これによる命令
実行の抑止、及び、データフォワーディングのための制
御信号の生成を行う必要はなく、CPUをLSI化する
際などにおいて、チップサイズの縮小、及び回路遅延を
最小化することが可能となる。
【0107】すなわち、従来例によるVLIW型並列計
算機では、毎命令実行サイクルにそれぞれの実行部に対
して、別々の命令を与える必要があるため、VLIW命
令コードが長大になる。このため、CPU内部に命令キ
ャッシュを設置し、CPU外部に設置された命令メモリ
21と、命令実行部との緩衝を行っている。このため、
命令メモリは通常の計算機と同様に、1つの命令分の読
み出し幅としながらも、命令キャッシュから1つのVL
IW命令にパックされて参照可能としているものが多
い。このようなVLIW計算機において、各VLIW命
令間のデータ参照依存のチェック、及び参照依存による
命令実行の待ち合わせ時間を最小化するために、データ
フォワーディング機構を備えるものが多かった。ところ
が、VLIW命令間の参照依存の組み合わせは非常に多
く(同時実行する処理量ををNとすると、N2のオー
ダ)、これをチェックするための回路規模、及び配線量
は多大となる。このため、CPUをLSΙ化する際など
において、チップサイズの増大、及び回路遅延による動
作クロック周波数の低下などの問題を引き起こしてい
た。
算機では、毎命令実行サイクルにそれぞれの実行部に対
して、別々の命令を与える必要があるため、VLIW命
令コードが長大になる。このため、CPU内部に命令キ
ャッシュを設置し、CPU外部に設置された命令メモリ
21と、命令実行部との緩衝を行っている。このため、
命令メモリは通常の計算機と同様に、1つの命令分の読
み出し幅としながらも、命令キャッシュから1つのVL
IW命令にパックされて参照可能としているものが多
い。このようなVLIW計算機において、各VLIW命
令間のデータ参照依存のチェック、及び参照依存による
命令実行の待ち合わせ時間を最小化するために、データ
フォワーディング機構を備えるものが多かった。ところ
が、VLIW命令間の参照依存の組み合わせは非常に多
く(同時実行する処理量ををNとすると、N2のオー
ダ)、これをチェックするための回路規模、及び配線量
は多大となる。このため、CPUをLSΙ化する際など
において、チップサイズの増大、及び回路遅延による動
作クロック周波数の低下などの問題を引き起こしてい
た。
【0108】これに対し、本実施形態に係るVLIW型
並列計算機20では、従来例によるVLIW型並列計算
機のように、VLIW命令実行時に、VLIW命令間の
レジスタ参照依存をチェックし、これによる命令実行の
抑止、及び、データフォワーディングのための制御信号
の生成を行う必要はないので、VLIW命令間のレジス
タ参照依存をチェックするための回路量は、同時実行す
る処理量をNとしても、Nのオーダとなる。したがっ
て、このための回路規模、及び配線量は従来技術による
VLIW型計算機の1/Nのオーダとなる。
並列計算機20では、従来例によるVLIW型並列計算
機のように、VLIW命令実行時に、VLIW命令間の
レジスタ参照依存をチェックし、これによる命令実行の
抑止、及び、データフォワーディングのための制御信号
の生成を行う必要はないので、VLIW命令間のレジス
タ参照依存をチェックするための回路量は、同時実行す
る処理量をNとしても、Nのオーダとなる。したがっ
て、このための回路規模、及び配線量は従来技術による
VLIW型計算機の1/Nのオーダとなる。
【0109】これにより、CPUをLSI化する際など
において、チップサイズの縮小、及び回路遅延を最小化
することが可能となり、動作クロック周波数を向上さ
せ、消費電力を最小化するとともに、チップコストを低
減できる利点がある。特に、処理量Nが大きいときにこ
の効果は顕著となる。
において、チップサイズの縮小、及び回路遅延を最小化
することが可能となり、動作クロック周波数を向上さ
せ、消費電力を最小化するとともに、チップコストを低
減できる利点がある。特に、処理量Nが大きいときにこ
の効果は顕著となる。
【0110】上述した第1の実施形態に係るVLIW型
並列計算機20では、命令実行時間を1クロックサイク
ルとしていたが、命令の実行時間が複数クロックサイク
ルかかる並列計算機にも適用することができる。以下、
第2の実施形態では、命令の実行時間が最大dクロック
サイクルかかる場合のVLIW型並列計算機に適用した
例について述べる。
並列計算機20では、命令実行時間を1クロックサイク
ルとしていたが、命令の実行時間が複数クロックサイク
ルかかる並列計算機にも適用することができる。以下、
第2の実施形態では、命令の実行時間が最大dクロック
サイクルかかる場合のVLIW型並列計算機に適用した
例について述べる。
【0111】図6は本発明の第2の実施形態に係る並列
計算機の全体構成を示す図である。本実施形態に係る並
列計算機の説明にあたり図1に示すVLIW型並列計算
機と同一構成部分には同一符号を付して重複部分の説明
を省略する。
計算機の全体構成を示す図である。本実施形態に係る並
列計算機の説明にあたり図1に示すVLIW型並列計算
機と同一構成部分には同一符号を付して重複部分の説明
を省略する。
【0112】図6において、VLIW型並列計算機60
は、命令メモリ21、命令キャッシュ22、命令キャッ
シュ書き込み制御部61、命令アドレス制御部24、実
行部25(実行部1〜n)、データスイッチ26、及び
レジスタファイル27から構成される。
は、命令メモリ21、命令キャッシュ22、命令キャッ
シュ書き込み制御部61、命令アドレス制御部24、実
行部25(実行部1〜n)、データスイッチ26、及び
レジスタファイル27から構成される。
【0113】命令の実行時間が最大dクロックサイクル
かかる場合のVLIW型並列計算機を対象としていお
り、この点のみが相違点である。すなわち、命令キャッ
シュ制御部からの出力信号に関して、図1に示すVLI
W型並列計算機20との相違は、VLIW型並列計算機
20ではウエイト信号であったものが、本実施形態のV
LIW型並列計算機60ではウエイト数信号となってい
る点が異なる。これは、本実施形態のVLIW型並列計
算機60においては、命令実行時間がdクロックサイク
ルかかることによるものである。この点以外は、全て第
1の実施形態と同じである。
かかる場合のVLIW型並列計算機を対象としていお
り、この点のみが相違点である。すなわち、命令キャッ
シュ制御部からの出力信号に関して、図1に示すVLI
W型並列計算機20との相違は、VLIW型並列計算機
20ではウエイト信号であったものが、本実施形態のV
LIW型並列計算機60ではウエイト数信号となってい
る点が異なる。これは、本実施形態のVLIW型並列計
算機60においては、命令実行時間がdクロックサイク
ルかかることによるものである。この点以外は、全て第
1の実施形態と同じである。
【0114】図7はVLIW型並列計算機60の命令キ
ャッシュの構成を示す図であり、前記図2に示す命令キ
ャッシュとの相違は、図2ではウエイト信号であったも
のが、図7ではウエイト数信号を格納する点である。こ
の点以外は、全て第1の実施形態と同じである。
ャッシュの構成を示す図であり、前記図2に示す命令キ
ャッシュとの相違は、図2ではウエイト信号であったも
のが、図7ではウエイト数信号を格納する点である。こ
の点以外は、全て第1の実施形態と同じである。
【0115】また、VLIW型並列計算機60で実行さ
れるVLIW命令の要素となる命令コードのフォーマッ
トは、前記図3に示す第1の実施形態と同じである。ま
た、VLIW型並列計算機60における命令アドレス制
御部24の構成も、前記図5に示す実施形態1と同じで
ある。
れるVLIW命令の要素となる命令コードのフォーマッ
トは、前記図3に示す第1の実施形態と同じである。ま
た、VLIW型並列計算機60における命令アドレス制
御部24の構成も、前記図5に示す実施形態1と同じで
ある。
【0116】図8は上記VLIW型並列計算機60の命
令キャッシュ書き込み制御部61の構成を示す図であ
り、図4に示すVLIW型並列計算機20の命令キャッ
シュ書き込み制御部23と同一構成部分には同一符号を
付して重複部分の説明を省略する。
令キャッシュ書き込み制御部61の構成を示す図であ
り、図4に示すVLIW型並列計算機20の命令キャッ
シュ書き込み制御部23と同一構成部分には同一符号を
付して重複部分の説明を省略する。
【0117】図8において、命令キャッシュ書き込み制
御部61は、命令レジスタ31、シフトレジスタ32
(シフトレジスタ1〜n)、ラッチ62、比較器63、
バッファ64、OR回路65、セレクタ66(セレクタ
1)、セレクタ67(セレクタ2)、命令カウンタ3
6、デコーダ37、AND回路38(AND回路1)、
AND回路39(AND回路2)、OR回路40(OR
回路1)及びDラッチ41から構成される。
御部61は、命令レジスタ31、シフトレジスタ32
(シフトレジスタ1〜n)、ラッチ62、比較器63、
バッファ64、OR回路65、セレクタ66(セレクタ
1)、セレクタ67(セレクタ2)、命令カウンタ3
6、デコーダ37、AND回路38(AND回路1)、
AND回路39(AND回路2)、OR回路40(OR
回路1)及びDラッチ41から構成される。
【0118】前記図4に示す命令キャッシュ書き込み制
御部23と以下の点が相違する。すなわち、ラッチ62
がラッチ11〜d-1nと(d-1)×n個であること、
比較器63が比較器111〜d-1n2と(d-1)×n
×2個であること、バッファ64がバッファ111〜d
-1n2と(d-1)×n×2個であること、比較器11
1〜1n2、211〜2n2、d-111〜d-1n2の
出力の全ての論理和をとるオアdまでの、d-1個のO
R回路65が追加されたこと、である。
御部23と以下の点が相違する。すなわち、ラッチ62
がラッチ11〜d-1nと(d-1)×n個であること、
比較器63が比較器111〜d-1n2と(d-1)×n
×2個であること、バッファ64がバッファ111〜d
-1n2と(d-1)×n×2個であること、比較器11
1〜1n2、211〜2n2、d-111〜d-1n2の
出力の全ての論理和をとるオアdまでの、d-1個のO
R回路65が追加されたこと、である。
【0119】これらのd-1個のOR回路65の出力
は、それぞれウエイ卜d-1、ウエイトd−2,…,ウ
エイト1信号となる。
は、それぞれウエイ卜d-1、ウエイトd−2,…,ウ
エイト1信号となる。
【0120】また、フリップフロップ42出力は、ウエ
イトd信号となる。更に、バッファ111、121,
…,1n1の出力はワイヤードオアされ、バッファ21
1,221,…,2n1の出力はワイヤードオアされ、
以下同様に、バッファd-111,d-121,…,d-
1n1の出力もワイヤードオアされ、これらのd-1本
の信号がセレクタ1に入力される。
イトd信号となる。更に、バッファ111、121,
…,1n1の出力はワイヤードオアされ、バッファ21
1,221,…,2n1の出力はワイヤードオアされ、
以下同様に、バッファd-111,d-121,…,d-
1n1の出力もワイヤードオアされ、これらのd-1本
の信号がセレクタ1に入力される。
【0121】また、バッファ112,122,…,1n
2の出力はワイヤードオアされ、バッファ212,22
2,…,2n2の出力はワイヤードオアされ、以下同様
に、バッファd-112,d-122,…,d-1n2の
出力もワイヤードオアされ、これらのd-1本の信号が
セレクタ67(セレクタ2)に入力される。
2の出力はワイヤードオアされ、バッファ212,22
2,…,2n2の出力はワイヤードオアされ、以下同様
に、バッファd-112,d-122,…,d-1n2の
出力もワイヤードオアされ、これらのd-1本の信号が
セレクタ67(セレクタ2)に入力される。
【0122】セレクタ66(セレクタ1)及びセレクタ
67(セレクタ2)は、ウエイトd-1〜1までのd-1
本のウエイト信号により出力を選択する回路であり、こ
れらのウエイト信号のうち、アサートされているウエイ
ト数の一番大きなウエイト信号に対応する、ワイヤード
オアされたバッファ出力を選択して、それぞれ、データ
フォワード1信号、及びデータフォワード2信号として
いること、が前記第1の実施形態の命令キャッシュ書き
込み制御部23との相違である。
67(セレクタ2)は、ウエイトd-1〜1までのd-1
本のウエイト信号により出力を選択する回路であり、こ
れらのウエイト信号のうち、アサートされているウエイ
ト数の一番大きなウエイト信号に対応する、ワイヤード
オアされたバッファ出力を選択して、それぞれ、データ
フォワード1信号、及びデータフォワード2信号として
いること、が前記第1の実施形態の命令キャッシュ書き
込み制御部23との相違である。
【0123】これらの相違は、全て本実施形態のVLI
W型並列計算機60では、命令実行時間が最大dクロッ
クサイクルとなることによるもので、VLIW命令間の
レジスタ参照依存チェックを、連続して生成されたd個
のVLIW命令間について行う必要があること、及び、
データ参照の待ち合わせのために最大dクロックサイク
ルまで、次のVLIW命令実行を抑止するためのウエイ
ト数信号を生成するためのものである。これらの相違以
外は、全て前記第1の実施形態の命令キャッシュ書き込
み制御部23と同じであり、その機能、及び動作も同じ
である。
W型並列計算機60では、命令実行時間が最大dクロッ
クサイクルとなることによるもので、VLIW命令間の
レジスタ参照依存チェックを、連続して生成されたd個
のVLIW命令間について行う必要があること、及び、
データ参照の待ち合わせのために最大dクロックサイク
ルまで、次のVLIW命令実行を抑止するためのウエイ
ト数信号を生成するためのものである。これらの相違以
外は、全て前記第1の実施形態の命令キャッシュ書き込
み制御部23と同じであり、その機能、及び動作も同じ
である。
【0124】以下、上述のように構成されたVLIW型
並列計算機60の動作を説明する。
並列計算機60の動作を説明する。
【0125】本実施形態のVLIW型並列計算機60に
おいて、命令キャッシュヒットの場合の動作は、前記第
1の実施形態のVLIW型並列計算機20とほぼ同じで
ある。異なる点は、命令キャッシュ22から読み出され
るウエイト情報が、単なる1クロックサイクルのウエイ
ト指定ではなく、1〜dまでのウエイトサイクル数であ
ることである。これは、本実施形態のVLIW型並列計
算機60では、命令実行時間が最大dクロックサイクル
かかることによるものである。したがって、各実行部
は、入力されるウエイト数に見合うクロックサイクル時
間命令実行を待ち合わせることになる。
おいて、命令キャッシュヒットの場合の動作は、前記第
1の実施形態のVLIW型並列計算機20とほぼ同じで
ある。異なる点は、命令キャッシュ22から読み出され
るウエイト情報が、単なる1クロックサイクルのウエイ
ト指定ではなく、1〜dまでのウエイトサイクル数であ
ることである。これは、本実施形態のVLIW型並列計
算機60では、命令実行時間が最大dクロックサイクル
かかることによるものである。したがって、各実行部
は、入力されるウエイト数に見合うクロックサイクル時
間命令実行を待ち合わせることになる。
【0126】命令キャッシュミスの場合には、命令メモ
リ21から順次命令コードを読み出し、命令キャッシュ
22の該当ブロックに順次書き込みながら、ミスとなっ
たVLIW命令を生成する、という点では、第1の実施
形態の場合と全く同じである。異なるのは、図8の命令
キャッシュ書き込み制御部61の構成に見られるよう
に、VLIW命令間のレジスタ参照依存のチェックが、
新たに生成されようとしているVLIW命令の要素とな
る各命令コードに対して、その直前に命令キャッシュ2
2内に生成された、d-1個のVLIW命令との間で行
われることである。
リ21から順次命令コードを読み出し、命令キャッシュ
22の該当ブロックに順次書き込みながら、ミスとなっ
たVLIW命令を生成する、という点では、第1の実施
形態の場合と全く同じである。異なるのは、図8の命令
キャッシュ書き込み制御部61の構成に見られるよう
に、VLIW命令間のレジスタ参照依存のチェックが、
新たに生成されようとしているVLIW命令の要素とな
る各命令コードに対して、その直前に命令キャッシュ2
2内に生成された、d-1個のVLIW命令との間で行
われることである。
【0127】これは、命令実行に最大dクロックサイク
ルを要するため、直前のd-1個のVLIW命令の実行
結果に対する参照待ち合わせのための、命令実行抑止に
必要なウエイト数情報生成、及び、命令再開直後のデー
タフォーワーディングのための、スイッチ制御情報の生
成のために必要となる。
ルを要するため、直前のd-1個のVLIW命令の実行
結果に対する参照待ち合わせのための、命令実行抑止に
必要なウエイト数情報生成、及び、命令再開直後のデー
タフォーワーディングのための、スイッチ制御情報の生
成のために必要となる。
【0128】図8において、Dラッチ41、OR回路4
0(OR回路1)、AND回路39(AND回路2)及
びフリップフロップ42は連続しない命令キャッシュミ
スが発生した最初の1クロックサイクルのみアサー卜さ
れる信号を生成する遷移検出回路43であることも、前
記第1の実施形態の場合と同様である。
0(OR回路1)、AND回路39(AND回路2)及
びフリップフロップ42は連続しない命令キャッシュミ
スが発生した最初の1クロックサイクルのみアサー卜さ
れる信号を生成する遷移検出回路43であることも、前
記第1の実施形態の場合と同様である。
【0129】但し、この遷移検出回路43で生成された
ウエイト信号は、最大dクロックサイクルかかる、直前
に実行されたd-1個のVLIW命令のどの命令コード
においても、デスティネーションオペランドとして更新
対象としているレジスタを、新たに命令キャッシュ22
内に生成しようとしているVLIW命令の要素である命
令コードが、ソースオペランドとして参照するとして
も、必ずレジスタファイル27が更新された後に、その
データをレジスタファイル27から読み出して参照する
ことを保証するために、dクロックサイクルの命令実行
を抑止をするためのウエイト信号となる。
ウエイト信号は、最大dクロックサイクルかかる、直前
に実行されたd-1個のVLIW命令のどの命令コード
においても、デスティネーションオペランドとして更新
対象としているレジスタを、新たに命令キャッシュ22
内に生成しようとしているVLIW命令の要素である命
令コードが、ソースオペランドとして参照するとして
も、必ずレジスタファイル27が更新された後に、その
データをレジスタファイル27から読み出して参照する
ことを保証するために、dクロックサイクルの命令実行
を抑止をするためのウエイト信号となる。
【0130】これは前記第1の実施形態と同様に、命令
キャッシュ22が最初にミスした時点で、その直前に命
令キャッシュ22から(命令キャッシュヒットして)読
み出されたVLIW命令との、レジスタ参照依存を検査
することができないために、データフォワーディングが
できないので、強制的にウエイトサイクルを挿入し、直
前のVLIW命令実行結果であっても、レジスタファイ
ル27から読み出して次に実行されるVLIW命令を実
行させるためのものである。違いは、VLIW命令実行
に、最大dクロックサイクル必要である点によるもので
ある。データフォワーディングは、必ず最大待ち合わせ
時間必要なデスティネーションオペランドデータに対し
て働くようにスイッチ制御情報が生成される。
キャッシュ22が最初にミスした時点で、その直前に命
令キャッシュ22から(命令キャッシュヒットして)読
み出されたVLIW命令との、レジスタ参照依存を検査
することができないために、データフォワーディングが
できないので、強制的にウエイトサイクルを挿入し、直
前のVLIW命令実行結果であっても、レジスタファイ
ル27から読み出して次に実行されるVLIW命令を実
行させるためのものである。違いは、VLIW命令実行
に、最大dクロックサイクル必要である点によるもので
ある。データフォワーディングは、必ず最大待ち合わせ
時間必要なデスティネーションオペランドデータに対し
て働くようにスイッチ制御情報が生成される。
【0131】つまり、OR回路2〜dにおいて複数のウ
エイト指定信号、すなわちウエイトd-1〜1の複数が
同時にアサートされたとしても、ウエイトd-1〜1の
全ての信号がウエイト数情報として、命令キャッシュ2
2の該当ブロックに書き込まれる。命令キャッシュ22
では、この情報をそのまま実行部に供給するため、結果
として、実行部では、ウエイトd-1〜1の複数がアサ
ートされたとしても、そのうちの最大ウエイト数に等し
いクロックサイクルの命令実行の抑止を行う。このと
き、データフォワード1、及びデータフォワード2の各
スイッチ制御情報の内容は、それぞれ、セレクタ1、及
びセレクタ2において、ウエイト指定が最大のデスティ
ネーションオペランドを選択して出力し、スイッチ制御
情報として命令キャッシュ22の該当ブロックに書き込
む。ウエイト数がdクロックサイクルの場合には、デー
タフォワーディングは行われず、必ずレジスタファイル
27からソースオペランドデータを読み出して参照す
る。
エイト指定信号、すなわちウエイトd-1〜1の複数が
同時にアサートされたとしても、ウエイトd-1〜1の
全ての信号がウエイト数情報として、命令キャッシュ2
2の該当ブロックに書き込まれる。命令キャッシュ22
では、この情報をそのまま実行部に供給するため、結果
として、実行部では、ウエイトd-1〜1の複数がアサ
ートされたとしても、そのうちの最大ウエイト数に等し
いクロックサイクルの命令実行の抑止を行う。このと
き、データフォワード1、及びデータフォワード2の各
スイッチ制御情報の内容は、それぞれ、セレクタ1、及
びセレクタ2において、ウエイト指定が最大のデスティ
ネーションオペランドを選択して出力し、スイッチ制御
情報として命令キャッシュ22の該当ブロックに書き込
む。ウエイト数がdクロックサイクルの場合には、デー
タフォワーディングは行われず、必ずレジスタファイル
27からソースオペランドデータを読み出して参照す
る。
【0132】前記第1の実施形態の命令キャッシュ書き
込み制御部23との相違は、本実施形態のVLIW型並
列計算機60では、命令実行時間が最大dクロックサイ
クルとなることによるもので、VLIW命令間のレジス
タ参照依存チェックを、連続して生成されたd個のVL
IW命令間について行う必要があること、及び、データ
参照の待ち合わせのために最大dクロックサイクルま
で、次のVLIW命令実行を抑止するためのウエイト数
信号を生成するためのものである。これらの相違以外
は、全て実施形態1の命令キャッシュ書き込み制御部と
同じであり、その機能、及び動作も同じである。
込み制御部23との相違は、本実施形態のVLIW型並
列計算機60では、命令実行時間が最大dクロックサイ
クルとなることによるもので、VLIW命令間のレジス
タ参照依存チェックを、連続して生成されたd個のVL
IW命令間について行う必要があること、及び、データ
参照の待ち合わせのために最大dクロックサイクルま
で、次のVLIW命令実行を抑止するためのウエイト数
信号を生成するためのものである。これらの相違以外
は、全て実施形態1の命令キャッシュ書き込み制御部と
同じであり、その機能、及び動作も同じである。
【0133】以上説明したように、第2の実施形態に係
るVLIW型並列計算機60は、命令実行時間が最大d
クロックサイクルとし、VLIW命令間のレジスタ参照
依存チェックを、連続して生成されたd個のVLIW命
令間について行うとともに、データ参照の待ち合わせの
ために最大dクロックサイクルまで、次のVLIW命令
実行を抑止するためのウエイト数信号を生成する機能を
備えて構成しているので、第1の実施形態と同様の効果
を得ることができることに加え、以下のような効果を得
ることができる。
るVLIW型並列計算機60は、命令実行時間が最大d
クロックサイクルとし、VLIW命令間のレジスタ参照
依存チェックを、連続して生成されたd個のVLIW命
令間について行うとともに、データ参照の待ち合わせの
ために最大dクロックサイクルまで、次のVLIW命令
実行を抑止するためのウエイト数信号を生成する機能を
備えて構成しているので、第1の実施形態と同様の効果
を得ることができることに加え、以下のような効果を得
ることができる。
【0134】すなわち、VLIW命令間のレジスタ参照
依存チェックに必要な回路規模は、1つのVLIW命令
の処理量をNとしたとき、従来例によるVLIW型並列
計算機の場合には、N2×dのオーダとなり、第2の実
施形態のVLIW型並列計算機60の場合では、N×d
のオーダとなる。この回路規模が1/Nとなることは、
第1の実施形態の場合と同様である。特に、本実施形態
では、命令実行時間が最大dクロックサイクルまでのV
LIW型並列計算機に対応可能であり、より一般的であ
ることから、第1の実施形態のVLIW型並列計算機2
0に比べ、適用範囲が広いことにある。
依存チェックに必要な回路規模は、1つのVLIW命令
の処理量をNとしたとき、従来例によるVLIW型並列
計算機の場合には、N2×dのオーダとなり、第2の実
施形態のVLIW型並列計算機60の場合では、N×d
のオーダとなる。この回路規模が1/Nとなることは、
第1の実施形態の場合と同様である。特に、本実施形態
では、命令実行時間が最大dクロックサイクルまでのV
LIW型並列計算機に対応可能であり、より一般的であ
ることから、第1の実施形態のVLIW型並列計算機2
0に比べ、適用範囲が広いことにある。
【0135】このように、第1、第2の実施形態に係る
実施形態に係るVLIW型並列計算機20,60は、同
時に複数の命令実行部において、それぞれ独立した処理
を行う、VLIW型並列計算機において、CPU外部に
設置された命令メモリ21と、命令実行部25の間に、
命令キャッシュ22を設置し、これにより、命令メモリ
22から、連続して複数のVLIW要素命令を、逐次命
令キャッシュ22に読み込みVLIW命令を生成すると
共に、直前に生成したVLIW命令との、レジスタ参照
依存を検査して、必要な待ち合わせ情報、及び、実行結
果データのバイパスのためのパスの設定に関する情報
を、予め抽出する機構をもち、従来例によるVLIW型
並列計算機で行われているように、命令実行時に、これ
らを検出、あるいは抽出する必要がないため、回路量の
削減、及び、多大な回路遅延によるCPU動作速度の低
下の回避が可能である。
実施形態に係るVLIW型並列計算機20,60は、同
時に複数の命令実行部において、それぞれ独立した処理
を行う、VLIW型並列計算機において、CPU外部に
設置された命令メモリ21と、命令実行部25の間に、
命令キャッシュ22を設置し、これにより、命令メモリ
22から、連続して複数のVLIW要素命令を、逐次命
令キャッシュ22に読み込みVLIW命令を生成すると
共に、直前に生成したVLIW命令との、レジスタ参照
依存を検査して、必要な待ち合わせ情報、及び、実行結
果データのバイパスのためのパスの設定に関する情報
を、予め抽出する機構をもち、従来例によるVLIW型
並列計算機で行われているように、命令実行時に、これ
らを検出、あるいは抽出する必要がないため、回路量の
削減、及び、多大な回路遅延によるCPU動作速度の低
下の回避が可能である。
【0136】なお、上記各実施形態では、VLIW型並
列計算機への適応例を示したが、命令長が特に制限を与
えるものでもなくかつ、同時に複数の命令実行部におい
て、それぞれ独立した処理を行う並列計算機であれば適
応可能である。また、上記命令供給装置が計算機等に組
み込まれる回路の一部であってもよいことは言うまでも
ない。
列計算機への適応例を示したが、命令長が特に制限を与
えるものでもなくかつ、同時に複数の命令実行部におい
て、それぞれ独立した処理を行う並列計算機であれば適
応可能である。また、上記命令供給装置が計算機等に組
み込まれる回路の一部であってもよいことは言うまでも
ない。
【0137】また、上記各制御部等を構成するバッフ
ァ、レジスタ、論理回路、比較器等の数、種類接続状態
などは上記実施形態に限られないことは言うまでもな
い。
ァ、レジスタ、論理回路、比較器等の数、種類接続状態
などは上記実施形態に限られないことは言うまでもな
い。
【0138】
【発明の効果】本発明に係る並列計算機では、命令メモ
リ、命令キャッシュ、命令キャッシュ書き込み制御部、
命令アドレス制御部、複数個の命令実行部、データスイ
ッチ、及びレジスタファイルを備え、次に実行すべきV
LIW命令が、命令キャッシュに存在しない場合には、
命令メモリから、VLIW命令の要素となる命令コード
を、クロックサイクル毎に1つずつ連続して読み出し、
命令キャッシュ内の書き込み対象とされるブロックに逐
次書き込むと同時に、命令キャッシュ書き込み制御部に
おいて、命令コードと、直前に命令メモリから読み込み
生成した、それぞれ複数個の命令コードで構成される、
1つまたは複数のVLIW命令コードとの間の、レジス
タ参照依存を検査し、参照依存が検出されない場合に
は、レジスタファイルからの読み出しデータを、命令実
行部に供給するための、予め定められた値を、データス
イッチ制御情報として、命令キャッシュの該当ブロック
に書き込み、参照依存が検出された場合には、次のVL
IW命令の実行を抑止するためのウエイトサイクル数を
抽出し、該ウエイトサイクル数を命令キャッシュの該当
ブロックに書き込むと同時に、直前に実行されるVLI
W命令の実行結果データを、レジスタファイルを介さ
ず、命令実行部からデータスイッチを介して、直接、複
数の命令実行部の特定の命令実行部へ供給するための、
データスイッチ制御情報を抽出し、該データスイッチ制
御情報を命令キャッシュの該当ブロックに書き込み、そ
の後、命令キャッシュ内に新たに生成された、該当VL
IW命令を読み出し、読み出したVLIW命令を全ての
命令実行部、データスイッチ、及びレジスタファイル
ヘ、同時に供給して該VLIW命令を実行し、次に実行
すべきVLIW命令が、命令キャッシュに存在する場合
には、命令キャッシュの該当ブロックから、該実行すべ
きVLIW命令を読み出し、全ての命令実行部、データ
スイッチ、及びレジスタファイルヘ、同時に供給し、該
VLIW命令を実行するように構成しているので、回路
規模、及び配線量を大幅に削減することができ、CPU
をLSI化する際などにおいて、チップサイズの縮小、
及び回路遅延を最小化することができる。その結果、動
作クロック周波数を向上させ、消費電力を最小化すると
ともに、チップコストを低減することができる。
リ、命令キャッシュ、命令キャッシュ書き込み制御部、
命令アドレス制御部、複数個の命令実行部、データスイ
ッチ、及びレジスタファイルを備え、次に実行すべきV
LIW命令が、命令キャッシュに存在しない場合には、
命令メモリから、VLIW命令の要素となる命令コード
を、クロックサイクル毎に1つずつ連続して読み出し、
命令キャッシュ内の書き込み対象とされるブロックに逐
次書き込むと同時に、命令キャッシュ書き込み制御部に
おいて、命令コードと、直前に命令メモリから読み込み
生成した、それぞれ複数個の命令コードで構成される、
1つまたは複数のVLIW命令コードとの間の、レジス
タ参照依存を検査し、参照依存が検出されない場合に
は、レジスタファイルからの読み出しデータを、命令実
行部に供給するための、予め定められた値を、データス
イッチ制御情報として、命令キャッシュの該当ブロック
に書き込み、参照依存が検出された場合には、次のVL
IW命令の実行を抑止するためのウエイトサイクル数を
抽出し、該ウエイトサイクル数を命令キャッシュの該当
ブロックに書き込むと同時に、直前に実行されるVLI
W命令の実行結果データを、レジスタファイルを介さ
ず、命令実行部からデータスイッチを介して、直接、複
数の命令実行部の特定の命令実行部へ供給するための、
データスイッチ制御情報を抽出し、該データスイッチ制
御情報を命令キャッシュの該当ブロックに書き込み、そ
の後、命令キャッシュ内に新たに生成された、該当VL
IW命令を読み出し、読み出したVLIW命令を全ての
命令実行部、データスイッチ、及びレジスタファイル
ヘ、同時に供給して該VLIW命令を実行し、次に実行
すべきVLIW命令が、命令キャッシュに存在する場合
には、命令キャッシュの該当ブロックから、該実行すべ
きVLIW命令を読み出し、全ての命令実行部、データ
スイッチ、及びレジスタファイルヘ、同時に供給し、該
VLIW命令を実行するように構成しているので、回路
規模、及び配線量を大幅に削減することができ、CPU
をLSI化する際などにおいて、チップサイズの縮小、
及び回路遅延を最小化することができる。その結果、動
作クロック周波数を向上させ、消費電力を最小化すると
ともに、チップコストを低減することができる。
【図1】本発明を適用した第1の実施形態に係る並列計
算機の全体構成を示す図である。
算機の全体構成を示す図である。
【図2】上記並列計算機の命令キャッシュの構成を示す
図である。
図である。
【図3】上記並列計算機により実行される命令コードの
フォーマットを示す図である。
フォーマットを示す図である。
【図4】上記並列計算機の命令キャッシュ書き込み制御
部の構成を示す回路図である。
部の構成を示す回路図である。
【図5】上記並列計算機の命令アドレス制御部の構成を
示す回路図である。
示す回路図である。
【図6】本発明を適用した第2の実施形態に係る並列計
算機の全体構成を示す図である。
算機の全体構成を示す図である。
【図7】上記並列計算機の命令キャッシュの構成を示す
図である。
図である。
【図8】上記並列計算機の命令キャッシュ書き込み制御
部の構成を示す回路図である。
部の構成を示す回路図である。
【図9】従来のVLIW型並列計算機の全体構成を示す
図である。
図である。
20,60 VLIW型並列計算機、21 命令メモ
リ、22 命令キャッシュ、23,61 命令キャッシ
ュ書き込み制御部、24 命令アドレス制御部、25
実行部(実行部1〜n)、26 データスイッチ、27
レジスタファイル
リ、22 命令キャッシュ、23,61 命令キャッシ
ュ書き込み制御部、24 命令アドレス制御部、25
実行部(実行部1〜n)、26 データスイッチ、27
レジスタファイル
Claims (5)
- 【請求項1】 同時に複数の命令実行部において、それ
ぞれ独立した処理を行う並列計算機において、 命令メモリ、命令キャッシュ、命令キャッシュ書き込み
制御部、命令アドレス制御部、複数個の命令実行部、デ
ータスイッチ、及びレジスタファイルを備え、 次に実行すべきVLIW(Very Long Instruction Wor
d)命令が、前記命令キャッシュに存在しない場合に
は、前記命令メモリから、VLIW命令の要素となる命
令コードを、クロックサイクル毎に1つずつ連続して読
み出し、前記命令キャッシュ内の書き込み対象とされる
ブロックに逐次書き込むと同時に、 前記命令キャッシュ書き込み制御部において、 前記命令コードと、直前に前記命令メモリから読み込み
生成した、それぞれ複数個の命令コードで構成される、
1つまたは複数のVLIW命令コードとの間の、レジス
タ参照依存を検査し、 参照依存が検出されない場合には、前記レジスタファイ
ルからの読み出しデータを、前記命令実行部に供給する
ための、予め定められた値を、データスイッチ制御情報
として、前記命令キャッシュの該当ブロックに書き込
み、 参照依存が検出された場合には、次のVLIW命令の実
行を抑止するためのウエイトサイクル数を抽出し、該ウ
エイトサイクル数を前記命令キャッシュの該当ブロック
に書き込むと同時に、直前に実行されるVLIW命令の
実行結果データを、前記レジスタファイルを介さず、前
記命令実行部から前記データスイッチを介して、直接、
前記複数の命令実行部の特定の命令実行部へ供給するた
めの、データスイッチ制御情報を抽出し、該データスイ
ッチ制御情報を前記命令キャッシュの該当ブロックに書
き込み、 その後、前記命令キャッシュ内に新たに生成された、該
当VLIW命令を読み出し、読み出したVLIW命令を
全ての命令実行部、データスイッチ、及びレジスタファ
イルヘ、同時に供給して該VLIW命令を実行し、 次に実行すべきVLIW命令が、前記命令キャッシュに
存在する場合には、前記命令キャッシュの該当ブロック
から、該実行すべきVLIW命令を読み出し、全ての命
令実行部、データスイッチ、及びレジスタファイルヘ、
同時に供給し、該VLIW命令を実行するように構成し
たことを特徴とする並列計算機。 - 【請求項2】 同時に複数の命令実行部において、それ
ぞれ独立した処理を行う並列計算機において、 命令メモリ、命令キャッシュ、命令キャッシュ書き込み
制御部、命令アドレス制御部、複数個の命令実行部、デ
ータスイッチ、及びレジスタファイルを備え、 前記命令メモリから、クロックサイクル毎に1命令コー
ドを読み出し、 前記命令キャッシュ書き込み制御部において、直前に読
み込んだ、それぞれn(nは任意の整数)個の命令コー
ドで構成される、1つまたは複数のVLIW命令コード
との、レジスタ参照依存を検査し、 参照依存が検出された場合には、次のVLIW命令の実
行を抑止するためのウエイトサイクル数を生成するとと
もに、データフォワーディングを行うためのスイッチ制
御情報を生成し、 前記ウエイトサイクル数及び前記スイッチ制御情報を、
読み込んだ命令コードと同時に命令キャッシュの該当ブ
ロックに書き込み、予め、前記命令キャッシュ内におい
てVLIW命令を構成しておき、 VLIW命令実行時には、VLIW命令間のレジスタ参
照依存チェックは行わず、前記命令キャッシュから該当
するVLIW命令コード、ウエイト数、及びスイッチ制
御情報を同時に読み出し、直前に実行されたVLIW命
令実行結果を参照するための、VLIW命令実行待ち合
わせ、及び前記データスイッチの切り替えによるデータ
フォワーディングを行うように構成したことを特徴とす
る並列計算機。 - 【請求項3】 前記命令の実行時間は、1クロックサイ
クルであることを特徴とする請求項1又は2の何れかに
記載の並列計算機。 - 【請求項4】 前記命令の実行時間は、複数のクロック
サイクルであることを特徴とする請求項1又は2の何れ
かに記載の並列計算機。 - 【請求項5】 前記並列計算機は、VLIW(Very Lon
g Instruction Word:超長形式機械命令)型並列計算機
であることを特徴とする請求項1又は2の何れかに記載
の並列計算機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8154069A JPH103389A (ja) | 1996-06-14 | 1996-06-14 | 並列計算機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8154069A JPH103389A (ja) | 1996-06-14 | 1996-06-14 | 並列計算機 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH103389A true JPH103389A (ja) | 1998-01-06 |
Family
ID=15576221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8154069A Withdrawn JPH103389A (ja) | 1996-06-14 | 1996-06-14 | 並列計算機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH103389A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4818349A (en) * | 1988-02-01 | 1989-04-04 | Amp Incorporated | Selective plating apparatus for zone plating |
US7730284B2 (en) | 2003-03-19 | 2010-06-01 | Koninklijke Philips Electronics N.V. | Pipelined instruction processor with data bypassing and disabling circuit |
JP2014216020A (ja) * | 2013-04-22 | 2014-11-17 | 三星電子株式会社Samsung Electronics Co.,Ltd. | プロセッサのマルチ実行モード支援装置及び方法 |
-
1996
- 1996-06-14 JP JP8154069A patent/JPH103389A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4818349A (en) * | 1988-02-01 | 1989-04-04 | Amp Incorporated | Selective plating apparatus for zone plating |
US7730284B2 (en) | 2003-03-19 | 2010-06-01 | Koninklijke Philips Electronics N.V. | Pipelined instruction processor with data bypassing and disabling circuit |
JP2014216020A (ja) * | 2013-04-22 | 2014-11-17 | 三星電子株式会社Samsung Electronics Co.,Ltd. | プロセッサのマルチ実行モード支援装置及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1307537C (zh) | 在具有限制性存储器模型的***中多存储缓冲器转发的***和方法 | |
JP3542021B2 (ja) | セット予測によりセット連想キャッシュの遅延を少なくする方法及び装置 | |
US8793433B2 (en) | Digital data processing apparatus having multi-level register file | |
US5907860A (en) | System and method of retiring store data from a write buffer | |
US6219773B1 (en) | System and method of retiring misaligned write operands from a write buffer | |
US7730285B1 (en) | Data processing system with partial bypass reorder buffer and combined load/store arithmetic logic unit and processing method thereof | |
US7219185B2 (en) | Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache | |
US6341343B2 (en) | Parallel processing instructions routed through plural differing capacity units of operand address generators coupled to multi-ported memory and ALUs | |
KR100955433B1 (ko) | 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법 | |
US20120042151A1 (en) | Processor having execution core sections operating at different clock rates | |
JP3678443B2 (ja) | スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ | |
US7631149B2 (en) | Systems and methods for providing fixed-latency data access in a memory system having multi-level caches | |
JP2010532063A (ja) | 条件命令を無条件命令および選択命令へと拡張する方法およびシステム | |
KR100346515B1 (ko) | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 | |
US20030182536A1 (en) | Instruction issuing device and instruction issuing method | |
US5615402A (en) | Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch | |
JP3449186B2 (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
US6542988B1 (en) | Sending both a load instruction and retrieved data from a load buffer to an annex prior to forwarding the load data to register file | |
US20050177705A1 (en) | Pop-compare micro instruction for repeat string operations | |
JP3866921B2 (ja) | ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム | |
JPH0769824B2 (ja) | 複数命令同時処理方式 | |
JPH103389A (ja) | 並列計算機 | |
JPH08249178A (ja) | プロセッサのアネックス内において修飾ビットを形成する方法及び装置 | |
EP0912927B1 (en) | A load/store unit with multiple pointers for completing store and load-miss instructions | |
US7996655B2 (en) | Multiport execution target delay queue FIFO array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20030902 |