(57)【要約】【課題】小さな回路規模で、ＶＬＩＷプロセッサの演算器の有効利用を図る。【解決手段】ＶＬＩＷプロセッサ１００において、ディスパッチャ１３０は、所定の条件であるブースト条件が満たされたときに、命令レジスタ１１０に格納された命令と、ブースト命令レジスタ１５０に格納された命令とを並列に演算器群１４０に発行する。命令レジスタ１１０は、フェッチされた命令を格納するレジスタである。ブースト命令レジスタ１５０は、フェッチされた命令以外の命令であるブースト命令を格納する。【選択図】図１
2014081846.tif 000002
【特許請求の範囲】
【請求項１】
一度に最大Ｍ個（Ｍ≧２）の命令をフェッチ可能なＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）プロセッサであって、
フェッチされた命令を格納する命令レジスタと、
Ｎ個（Ｎ＞Ｍ）個の演算器と、
フェッチされた命令以外の命令であるブースト命令をＳ個（１≦Ｓ≦「Ｎ−Ｍ」）格納可能なブースト命令レジスタと、
前記Ｎ個の演算器に対して命令発行を行うディスパッチャを備え、
前記ディスパッチャは、
所定の条件となるブースト条件が満たされたときに、前記命令レジスタに格納された各命令に並列して、前記ブースト命令レジスタに格納された各前記ブースト命令を発行するブースト発行を行う、
ＶＬＩＷプロセッサ。
【請求項２】
前記ブースト命令が格納されたメモリアドレスを含み、前記メモリアドレスに格納されたデータをロードして前記ブースト命令レジスタに格納することを指示するブースト設定命令に対応し、
前記ブースト命令レジスタに格納された各前記ブースト命令は、前記ブースト設定命令の実行によりロードされた前記データである、
請求項１に記載のＶＬＩＷプロセッサ。
【請求項３】
所定のアドレスとなるブーストアドレスを格納するレジスタであるブーストアドレスレジスタと、
ＰＣ値（ＰＣ：プログラムカウンタ）と、前記ブーストアドレスレジスタに格納された前記ブーストアドレスとを比較する比較器をさらに有し、
前記ブースト命令は、前記ブーストアドレスをさらに含み、
前記ブーストアドレスレジスタに格納された前記ブーストアドレスは、前記ブースト命令の実行により前記ブーストアドレスレジスタに格納されたものであり、
前記ブースト条件は、前記比較器による比較結果が一致を示すことである、
請求項２に記載のＶＬＩＷプロセッサ。
【請求項４】
前記比較器は、前記ＰＣ値と、前記ブーストアドレスレジスタに格納された前記ブーストアドレスとに対して、下位側の一部のみを比較する、
請求項３に記載のＶＬＩＷプロセッサ。
【請求項５】
前記ブースト発行の実行を指示するブースト実行命令に対応し、
前記ブースト条件は、前記命令レジスタに格納された命令のうちに、前記ブースト実行命令が含まれることである、
請求項１または２に記載のＶＬＩＷプロセッサ。
【請求項６】
前記ブースト発行を実行するか否かを示すブーストフラグをさらに有し、
前記ブースト条件は、前記フラグが前記ブースト発行の実行を示すことである、
請求項１または２に記載のＶＬＩＷプロセッサ。
【請求項７】
前記ブーストフラグの設定値を含むフラグ設定命令に対応し、
前記ブーストフラグの値が、前記フラグ設定命令の実行により設定される、
請求項６に記載のＶＬＩＷプロセッサ。
【請求項８】
所定の回数となるブースト回数Ｋ（Ｋ≧１）を格納するレジスタであるブースト回数レジスタをさらに有し、
前記ディスパッチャは、
前記ブースト条件が満たされたときに、連続してＫ回の前記ブースト発行を行う、
請求項１または２に記載のＶＬＩＷプロセッサ。
【請求項９】
Ｐ個（Ｐ≧１）の前記ブースト命令を格納しており、該Ｐ個のブースト命令の少なくとも一部を、前記ブースト命令レジスタに格納される前記ブースト命令として前記ブースト命令レジスタに出力することにより前記ブースト命令レジスタの設定を行うブースト命令バッファをさらに備える、
請求項１に記載のＶＬＩＷプロセッサ。
【請求項１０】
前記ブースト命令が格納されたメモリアドレスを含み、前記メモリアドレスに格納されたデータをロードして前記ブースト命令バッファに格納することを指示するブースト設定命令に対応し、
前記ブースト命令バッファに格納された各前記ブースト命令は、前記ブースト設定命令の実行によりロードされた前記データである、
請求項９に記載のＶＬＩＷプロセッサ。
【請求項１１】
前記ブースト命令バッファから前記ブースト命令レジスタへ前記ブースト命令を出力するパターンを示すパターンデータを格納するパターンレジスタをさらに有し、
前記ブースト命令バッファは、前記パターンレジスタに格納された前記パターンデータが示すパターンに従って前記ブースト命令の出力を行い、
前記パターンは、
前記ブースト命令レジスタへの前記ブースト命令の出力回数と、夫々の回における前記ブースト命令の組合せのうちの少なくとも１つを含む、
請求項９または１０に記載のＶＬＩＷプロセッサ。
【請求項１２】
前記パターンデータを含むパターン設定命令に対応し、
前記パターンレジスタに格納された前記パターンデータは、前記パターン設定命令の実行により格納される、
請求項１１に記載のＶＬＩＷプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ例えばＶＬＩＷプロセッサ（ＶＬＩＷ：Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）に関する。
【背景技術】
【０００２】
プロセッサに関する技術は、数多く提案されている。
例えば、特許文献１には、フェッチした命令を命令バッファに格納しておき、命令バッファに格納された命令を順次デコードして実行するプロセッサにおいて、ループ処理の実行中に、フェッチアドレスが、該ループ処理に含まれる終端命令のアドレスより後のアドレスである場合に、フェッチを停止する技術が提案されている。この技術により、ループ処理中の無駄なフェッチを抑制できるとされている。
【０００３】
また、特許文献２には、は、ＶＬＩＷプロセッサではないプロセッサ（「非ＶＬＩＷプロセッサ」という）に対して、フェッチされた命令を複数格納可能な命令バッファを追加し、命令バッファから複数の命令を並行に発行可能とすることで、非ＶＬＩＷプロセッサにＶＬＩＷ動作をさせる技術が開示されている。この技術によれば、１度のフェッチで１つの命令しかフェッチしないため、フェッチ幅（１度にフェッチする命令の個数）や命令バス幅は非ＶＬＩＷプロセッサと同様でよい。そのため、小さな回路規模でＶＬＩＷ処理が実行できるとされている。
【０００４】
ＶＬＩＷプロセッサは、複数の演算器を備え、１度のフェッチで複数の命令を同時にフェッチでき、ディスパッチャと呼ばれる機能ブロックにより該複数の命令を並列に上記複数の演算器に発行する。ＶＬＩＷプロセッサそのものについても、様々な視点からの技術が提案されている。
【０００５】
例えば、特許文献３には、将来実行される命令列の先読みをキャッシュに行わせることにより、キャッシュミスによる性能低下を軽減する技術が開示されている。
【０００６】
。
ＶＬＩＷ命令は、データの依存関係や演算器の構成の制約から、例えば、４並列ＶＬＩＷプロセッサ用のＶＬＩＷ命令であっても、常に４命令の同時フェッチ及び同時実行を行えるわけではなく、１つのＶＬＩＷ命令に含まれる２割から５割の命令は何も実行しないノー・オペレーション命令（ｎｏｐ命令）となっているのが一般的である。
【０００７】
また、ＶＬＩＷプロセッサの特性から、プロセッサ内の各演算器は、ＶＬＩＷ命令の各命令フィールドに対応している。例えば４並列ＶＬＩＷプロセッサの場合、ＶＬＩＷ命令は、＃１〜＃４の４つの命令フィールドが含まれる。例えば命令フィールド＃１に整数型乗算命令を配置して当該命令を実行しようとすると、同じ命令フィールド＃１に対応して設けられている他の演算器、例えば整数型加算器や、浮動小数点型乗算器等は使用することができない。このような場合、他の演算器を使用する命令は、後続のクラスタに配置しなければならない。
【０００８】
特許文献４には、フェッチされたＶＬＩＷ命令の中の、実行を遅延させるべき命令（遅延対象命令）を保持する遅延対象命令保持手段を命令フィール毎に設け、遅延させるべきサイクル数が経過したときに、ＶＬＩＷ命令に含まれるｎｏｐ命令のスロットに該遅延対象命令を実行する技術が開示されている。この技術によれば、ノー・オペレーション命令や演算器を有効に利用できるとされている。
【０００９】
ＶＬＩＷプロセッサにおいて、通常、演算器の数がフェッチ幅より多く、ディスパッチャは、上記複数の命令に応じた演算器を夫々選択して命令発行を行う。
【００１０】
データの依存関係などにもよるが、並列に実行可能な命令数は、フェッチ幅より多くなる場合がある。このような場合において、フェッチ幅に制限され、フェッチ幅分の命令しか実行できず、演算器を有効に利用することができない。
【００１１】
特許文献５には、ループ処理に際して、１回目のループの実行に関しては、通常のＶＬＩＷプロセッサと同様に、ＶＬＩＷ命令をフェッチしてディスパッチャにより発行する。加えて、１回目のループの実行中に、各命令を命令バッファに蓄積しておき、２回目以降の各ループを実行する際には、フェッチ、及びディスパッチャによる命令発行をせずに、命令バッファから命令を発行する。
【００１２】
この技術は、特許文献１に開示された技術と着目点が異なるが、構成が相似している。該技術によれば、２回目以降の各ループの実行時に、並列に実行できる命令数がフェッチ幅に制限されないため、演算器を有効に利用することができるとされている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１０−１５２９８号公報
【特許文献２】特開平０７−１１０７６９号公報
【特許文献３】特開２００８−２１７８２５号公報
【特許文献４】特開平９−５４６９３号公報
【特許文献５】特開２００３−１０８３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかし、特許文献５に開示された技術は、１ループ分の全ての命令を格納する必要があるため、フェッチした命令を格納する命令レジスタ以外に、命令バッファが必要である。
【００１５】
また、この技術は、そもそもフェッチ幅の制限を解消するためになされているため、１ループに含まれる命令数が多いほど演算器の有効利用の効果を発揮する。必然的に、命令バッファは、巨大になってしまう。
【００１６】
また、１つ目のループの実行完了後にしか機能しないため、プログラム全体の処理時間の短縮量が限定的である。
【００１７】
なお、並列に実行可能な命令数が常にフェッチ幅より多いわけではないため、並列に実行できる命令数を増やすためにフェッチ幅を増やすのでは、命令バス幅、命令レジスタのサイズ増大を招き、コストパフォーマンスが良くない。
【００１８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１９】
一実施の形態によるＶＬＩＷプロセッサは、フェッチされた命令を格納する命令レジスタと、フェッチされた命令以外の命令であるブースト命令を格納するブースト命令レジスタと、フェッチ幅を超える数の演算器と、ディスパッチャを備える。
【００２０】
前記ディスパッチャは、所定の条件となるブースト条件が満たされたときに、前記命令レジスタに格納された各命令に並列して、前記ブースト命令レジスタに格納された各前記ブースト命令を発行する。
【００２１】
なお、上記実施の形態のＶＬＩＷプロセッサを方法や、装置、システムなどに置き換えて表現したもの、該ＶＬＩＷプロセッサにより命令発行の処理をコンピュータに実行せしめるプログラムなども、本発明の態様としては有効である。
【発明の効果】
【００２２】
一実施の形態のＶＬＩＷプロセッサによれば、小さな回路規模で、演算器を有効に利用し、処理性能の向上を図ることができる。
【図面の簡単な説明】
【００２３】
【図１】第１の実施の形態にかかるＶＬＩＷプロセッサを示す図である。
【図２】第２の実施の形態にかかるＶＬＩＷプロセッサを示す図である。
【図３】図２に示すＶＬＩＷプロセッサに用いられるブースト設定命令のフォーマット例を示す図である。
【図４】メモリに格納された命令とデータの例を示す図である。
【図５】ブースト設定命令の具体例を説明するための図である。
【図６】ブースト発行により発行される命令の例を説明するための図である。
【図７】プログラムの例を示す図である。
【図８】通常のＶＬＩＷプロセッサによる図７に示すプログラムの実行態様の一例を説明するための図である。
【図９】図２に示すＶＬＩＷプロセッサによる図７に示すプログラムの実行態様の一例を説明するための図である。
【図１０】通常のＶＬＩＷプロセッサによる図７に示すプログラムの実行態様の別の例を説明するための図である。
【図１１】図２に示すＶＬＩＷプロセッサによる図７に示すプログラムの実行態様の別の例を説明するための図である。
【図１２】第４の実施の形態にかかるＶＬＩＷプロセッサに用いられるブースト設定命令のフォーマット例を示す図である。
【図１３】第５の実施の形態にかかるＶＬＩＷプロセッサを示す図である。
【図１４】図１３に示すＶＬＩＷプロセッサに用いられるフラグ設定命令のフォーマット例を示す図である。
【図１５】第６の実施の形態にかかるＶＬＩＷプロセッサを示す図である。
【図１６】図１５に示すＶＬＩＷプロセッサに用いられるブースト回数設定命令のフォーマット例を示す図である。
【図１７】図１５に示すＶＬＩＷプロセッサに用いられ、ブースト回数設定命令が含まれるブースト設定命令のフォーマット例を示す図である。
【図１８】第７の実施の形態にかかるＶＬＩＷプロセッサを示す図である。
【図１９】図１８に示すＶＬＩＷプロセッサに用いられるパターン設定命令のフォーマット例を示す図である。
【図２０】ブーストパターンの一例を示す図である。
【図２１】図１８に示すＶＬＩＷプロセッサに用いられるパターン設定命令の別のフォーマット例を示す図である。
【発明を実施するための形態】
【００２４】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００２５】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００２６】
＜第１の実施の形態＞
図１は、第１の実施の形態にかかるＶＬＩＷプロセッサ１００を示す。ＶＬＩＷプロセッサ１００は、命令レジスタ１１０、デコーダ１２０、ディスパッチャ１３０、演算器群１４０を備える。
【００２７】
命令レジスタ１１０は、図示しないメモリや命令キャッシュからフェッチされたＶＬＩＷ命令に含まれる各命令を格納する。
【００２８】
ＶＬＩＷプロセッサ１００のフェッチ幅がＭであるとすると、命令レジスタ１１０は、Ｍ個の命令に対応する容量を有する。フェッチ幅とは、１度にフェッチできる命令の最大数、すなわちＶＬＩＷ命令に含まれる命令の総数の最大値を意味する。
なお、演算器群１４０に含まれる演算器の数Ｎは、Ｍより大きい。
【００２９】
デコーダ１２０は、命令レジスタ１１０に格納された各命令をデコードしてディスパッチャ１３０に出力する。
【００３０】
ディスパッチャ１３０は、デコーダ１２０からの各命令に基づいて、演算器群１４０から該当する各演算器を選択し、選択した各演算器に対して、夫々に対応する命令を発行する。なお、各命令は、並列に発行される。
【００３１】
演算器群１４０内の選択された各演算器は、ディスパッチャ１３０から発行された命令を夫々実行する。
【００３２】
ここで、本実施の形態のＶＬＩＷプロセッサ１００と通常のＶＬＩＷプロセッサとの主な相異点を説明する。
【００３３】
ＶＬＩＷプロセッサ１００は、Ｓ個（（１≦Ｓ≦「Ｎ−Ｍ」））のブースト命令を格納可能なブースト命令レジスタ１５０と、ブースト命令レジスタ１５０に格納されたブースト命令をデコードしてディスパッチャ１３０に供するブーストデコーダ１５２をさらに備える。ブースト命令は、フェッチされたＶＬＩＷ命令に含まれる命令ではなく、他の手法によりブースト命令レジスタ１５０に格納される命令である。ブースト命令をブースト命令レジスタ１５０に格納する手法に関しては、後述する。
【００３４】
また、ディスパッチャ１３０は、通常のＶＬＩＷプロセッサに設けられたディスパッチャと同様の命令発行機能に加え、ブースト発行機能を有する。
【００３５】
通常のＶＬＩＷプロセッサに設けられたディスパッチャの命令発行機能とは、デコーダ１２０がデコードして得た各命令を演算器群１４０に並列に発行する機能を意味する。
【００３６】
ブースト発行機能とは、デコーダ１２０からの各命令に加え、ブーストデコーダ１５２からの各命令を演算器群１４０に並列に発行する機能を意味する。
【００３７】
ディスパッチャ１３０は、所定の条件（以下「ブースト条件」という）が満たされたときにブースト発行を行い、他のときは通常の命令発行を行う。
【００３８】
ブースト条件の詳細及び設定手法などは、様々考えられ、後に詳細に説明するが、ここで、ＶＬＩＷプロセッサ１００の利用形態に関して、一例を挙げる。
【００３９】
プログラムにおける多重ループの最も内側に位置する最内ループ（Ｉｎｎｅｒｍｏｓｔ  Ｌｏｏｐ）は、通常、非常に短いループでありながら、実行頻度が最も高いループである。この最内ループが実行される時間の総和は、プログラムの実行時間に対して大きな割合を占める。
【００４０】
そのため、最内ループの１度の実行時間を少しでも短縮できれば、最内ループが実行される時間の総和乃至プログラムの実行時間を大幅に短縮できる。
【００４１】
そこで、最内ループの実行中に、ブースト命令レジスタ１５０に格納されたブースト命令を利用してブースト発行を行うことにより、フェッチ幅より多い命令を並列に演算器群１４０に発行することができる。その結果、最内ループの１度の実行時間を短縮することができ、必然的にプログラムの実行時間も大幅に短縮できる。
【００４２】
なお、最内ループの実行中において、各回の命令発行もブースト発行である必要が無い。例えば、フェッチ幅より多い命令を並列に実行できる場合に備えて予め一部の命令をブースト命令としてブースト命令レジスタ１５０に格納しておき、その場合になったときにブースト発行をすることが考えられる。
【００４３】
最内ループの命令数が元々少なく、また、データの依存関係などの制約から、フェッチ幅より多い命令を並列に実行できる場合は限られている。そのため、ブースト命令レジスタ１５０に格納するブースト命令の数も少ない。例えば、フェッチ幅が４である場合には、ブースト命令レジスタ１５０に格納するブースト命令の数は、通常、１、２程度で足りる。
【００４４】
また、ブースト発行は、必ずしもフェッチ幅より多い命令を並列に実行できる場合に行われるとは限らない。例えば、他の命令に並列して実行される回数の多い命令をブースト命令レジスタ１５０に格納しておき、該当する他の命令がフェッチされた場合にブースト発行を行うことも考えられる。
【００４５】
この場合においても、少ない数のブースト命令のみをブースト命令レジスタ１５０に格納するだけで、最内ループの１度の実行時間を短縮できる。
【００４６】
つまり、本実施の形態のＶＬＩＷプロセッサ１００は、ブースト命令レジスタ１５０に予め格納されたブースト命令を用いて、必要なときに、すなわちブースト条件が満たされたときにブースト発行を行うことにより、演算器を有効に利用し、プログラムの実行時間を短縮できる。
【００４７】
また、ブースト命令レジスタ１５０に格納されたブースト命令の数が少なくても有効であるため、ブースト命令レジスタ１５０のサイズも小さくてよい。その結果、演算器を有効に利用するために起因する回路規模の増大を抑制することができる。
【００４８】
ブースト命令レジスタ１５０へのブースト命令の格納手法や、ブースト条件と設定手法、判定手法などについて、以下のいくつかの実施の形態を用いてより具体的に説明する。
【００４９】
＜第２の実施の形態＞
図２は、第２の実施の形態にかかるＶＬＩＷプロセッサ２００を示す。ＶＬＩＷプロセッサ２００は、命令レジスタ２１０、デコーダ２２０、ディスパッチャ２３０、演算器群２４０、ブースト命令レジスタ２５０、ブーストデコーダ２５２、プログラムカウンタ（ＰＣ）２６０、比較器２７０、ブーストアドレスレジスタ２８０を備える。
【００５０】
命令レジスタ２１０は、図示しないメモリや命令キャッシュからフェッチされたＶＬＩＷ命令に含まれる各命令を格納する。
【００５１】
デコーダ２２０は、命令レジスタ２１０に格納された各命令をデコードしてディスパッチャ１３０に出力する。
【００５２】
本実施の形態において、デコーダ２２０は、ブースト設定命令に対応しており、ブースト設定命令をデコード可能である。
【００５３】
ブースト設定命令は、ブースト命令を示すデータをロードしてブースト命令レジスタ２５０に格納すると共に、ブーストアドレスレジスタ２８０に対してブーストアドレスを設定することを指示する命令である。ブーストアドレスについては、後述する。
【００５４】
図４は、ブースト命令のフォーマット例を示す。
図示のように、ブースト設定命令は、該命令の種類を示すコード（種類コード）と、ブースト命令アドレスと、ブーストアドレスを含む。
【００５５】
図３の例では、ブースト設定命令の種類コードが「０ＸＣ０」となっている。
ブースト命令アドレスは、ブースト命令レジスタ２５０に格納するブースト命令を示すデータのメモリアドレスである。
【００５６】
ブーストアドレスは、ブーストアドレスレジスタ２８０に格納するアドレスであり、後に実行される命令のメモリアドレスである。
【００５７】
つまり、ブースト設定命令は、メモリ上のブースト命令アドレスに格納されたデータをロードしてブースト命令としてブースト命令レジスタ２５０に格納し、ブーストアドレスをブーストアドレスレジスタ２８０に格納することを指示するものである。なお、１つのブースト設定命令の実行によりロードされるブースト命令の数は、ＶＬＩＷプロセッサ２００の仕様として固定値に設定されるようにしてもよく、ブースト設定命令の中にさらにブースト命令の数を指定するフィールドを設け、ブースト命令の度に設定されるようにしてもよい。また、ブースト命令アドレスを設定する命令とブーストアドレスを設定する命令を別の命令に分けても良い。
【００５８】
ブーストデコーダ２５２は、ブースト命令レジスタ２５０に格納された命令（ブースト命令）をデコードしてディスパッチャ２３０に供する。
【００５９】
ディスパッチャ２３０は、ＶＬＩＷプロセッサ１００におけるディスパッチャ１３０と同様に、通常のＶＬＩＷプロセッサにおけるディスパッチャが行う命令発行以外に、ブースト発行もできる。具体的には、ディスパッチャ２３０は、通常の命令発行時には、デコーダ２２０からの各命令を並列に発行し、ブースト発行時には、デコーダ２２０からの命令と、ブーストデコーダ２５２からの命令とを並列に発行する。
【００６０】
ディスパッチャ２３０は、比較器２７０からの比較結果に応じて、通常の命令発行とブースト発行のどちらを行うかを決定する。
【００６１】
比較器２７０は、ＰＣ２６０の値と、ブーストアドレスレジスタ２８０に格納されたブーストアドレスとを比較し、比較結果をディスパッチャ２３０に出力する。
【００６２】
ＰＣ２６０は、プロセッサに通常備えられるプログラムカウンタであり、プログラムの実行に伴って更新される。
【００６３】
ディスパッチャ２３０は、具体的には、比較器２７０による比較結果が「不一致」を示すときには通常の命令発行を行い、比較器２７０による比較結果が「一致」を示すときにはブースト発行を行う。
【００６４】
演算器群２４０は、ディスパッチャ２３０から並列に発行された各命令を並列に実行する。なお、ディスパッチャ２３０が発行した命令の中に、ブースト設定命令が含まれている場合には、演算器群２４０から、ブースト命令レジスタ２５０にブースト命令ＢＳＴＩＮＳが送信され、ブーストアドレスレジスタ２８０にブーストアドレスＢＳＴＡＤＤが出力される。
【００６５】
つまり、本実施の形態ＶＬＩＷプロセッサ２００において、ブースト条件は、ＰＣ２６０の値がブーストアドレスレジスタ２８０に格納されたブーストアドレスになったことである。ＰＣ２６０の値がブーストアドレスレジスタ２８０に格納されたブーストアドレスになったときに、ディスパッチャ２３０は、ブースト発行を行う。
【００６６】
ＶＬＩＷプロセッサ２００によるプログラムの実行例の前に、メモリに格納された命令とデータの例、及びブースト設定命令の例などを説明する。
【００６７】
図４に示すように、メモリは、命令を格納する命令領域と、データを格納するデータ領域を備える。図示の例では、命令領域において、メモリアドレス０ｘ０４０にａ、ｂ、ｃ、ｄの４つの命令が格納されており、メモリアドレス０ｘ０４８に、ｅ、ｆ、ｇ、ｈの４つの命令が格納されている。
【００６８】
また、データ領域において、メモリアドレス０ｘ８００にｍ、ｎ、ｏ、ｐの４つのデータが格納されており、メモリアドレス０ｘ８０８に、ｑ、ｒ、ｓ、ｔの４つのデータが格納されている。これらのデータは、夫々、メモリアドレスを示すものである。
【００６９】
図５は、ブースト設定命令の２つの例を示している。例１は、０ｘ８００に格納されたデータをロードしてブースト命令レジスタ２５０に格納し、メモリアドレス０ｘ０４０をブーストアドレスレジスタ２８０に格納することを指示する命令である。
【００７０】
すなわち、例１では、０ｘ８００は、ブースト命令アドレスであり、０ｘ０４０は、ブーストアドレスである。
【００７１】
図５における例２は、０ｘ８０４に格納されたデータをロードしてブースト命令レジスタ２５０に格納し、メモリアドレス０ｘ０４８をブーストアドレスレジスタ２８０に格納することを指示する命令である。
【００７２】
なお、例として、１つのブースト設定命令の実行によりロードされるブースト命令の数が２に固定されているとする。
【００７３】
そのため、例１のブースト命令の実行により、ブースト命令レジスタ２５０には命令ｍと命令ｎが格納され、ブーストアドレスレジスタ２８０にはブーストアドレス０ｘ０４０が格納される。
【００７４】
また、例２のブースト設定命令の実行により、ブースト命令レジスタ２５０には命令０と命令ｐが格納され、ブーストアドレスレジスタ２８０にはブーストアドレス０ｘ０４８が格納される。
【００７５】
その結果、図６に示すように、例１のブースト設定命令が実行された後に、ＰＣ２６０の値がブーストアドレス０ｘ０４０になったとき、ディスパッチャ２３０は、ブースト発行を実行し、０ｘ０４０に格納された命令ａ、ｂ、ｃ、ｄと共に、ブースト命令となる命令ｍ、ｎを並列にして発行する。
【００７６】
また、例２のブースト設定命令が実行された後に、ＰＣ２６０の値がブーストアドレス０ｘ０４８になったとき、ディスパッチャ２３０は、ブースト発行を実行し、０ｘ０４８に格納された命令ｅ、ｆ、ｇ、ｈと共に、ブースト命令となる命令ｏ、ｐを並列にして発行する。
【００７７】
通常のＶＬＩＷプロセッサと比較しながら、ＶＬＩＷプロセッサ２００による具体的なプログラムの実行例を説明する。
【００７８】
図７には、Ｃ言語により書かれたプログラムの一部を示す。図示の内容は、例えば多重ループの最内ループに該当する。
【００７９】
図８を参照して、通常のＶＬＩＷプロセッサによる図７に示すプログラムの実行態様の一例を説明する。例として、該プロセッサは、４並列ＶＬＩＷプロセッサであり、フェッチ幅と命令発行幅（並列に発行できる命令数の最大値）が４であるとする。
【００８０】
図８において、「ｕｎｉｔ」の欄は、演算器を示す。例えば、「ＭＥＭ」、「ＡＬＵ＿Ａ」、「ＡＬＵ＿Ｂ」、「ＭＵＬＴ」、「ＳＨＩＦＴ」は、夫々、メモリアクセス演算器、１６ビット加減算器その１、１６ビット加減算器その２、乗算器、シフト演算器である。
【００８１】
また、「ＬＤ」、「ＳＴ」、「ＡＤＤ」、「ＳＥＬ」、「ＳＵＢ」、「ＣＭＰ」、「ＭＵＬ」、「ＳＦＴ」は、夫々、ロード命令、ストア命令、加算命令、条件判定命令、引き算命令、シフト命令を示す。また、「ｌｄ」、「ｓｔ」、「ａｄｄ」、「ｓｅｌ」、「ｓｕｂ」、「ｃｍｐ」、「ｍｕｌ」、「ｓｆｔ」は、夫々、ロード処理、ストア処理、加算処理、条件判定処理、引き算処理、シフト処理を示す。
【００８２】
図８の左部は、各処理間におけるデータの受け渡しを示すデータフローである。また、命令のフェッチと実行の順番は、上から下に向かう順である。なお、横一列に並んだ各命令は、同時にフェッチされ、並列に実行される。
【００８３】
例えば、１サイクル目において、演算器「ＭＥＭ」に対する命令「ＬＤ」のみが発行される。そのため、該サイクルにおいて、処理「ｌｄ」のみが実行される。
【００８４】
一方、３サイクル目において、演算器「ＭＥＭ」、「ＡＬＵ＿Ａ」、「ＡＬＵ＿Ｂ」、「ＭＵＬＴ」、に対して、命令「ＬＤ」、「ＡＤＤ」、「ＳＵＢ」、「ＭＵＬ」が夫々発行される。そのため、該サイクルにおいて、４つの処理「ｌｄ」、「ａｄｄ」、「ｓｕｂ」、「ｍｕｌ」が並列に実行される。
【００８５】
図８から分かるように、このＶＬＩＷプロセッサによれば、図７に示すプログラムを１回実行するために、７サイクルがかかる。
【００８６】
図９を参照して、ＶＬＩＷプロセッサ２００による図７に示すプログラムの実行態様の一例を説明する。ＶＬＩＷプロセッサ２００も、４並列ＶＬＩＷプロセッサであり、フェッチ幅が４である。
【００８７】
また、ＶＬＩＷプロセッサ２００において、ブースト命令レジスタ２５０に格納されるブースト命令の数が１であるとする。そのため、ブースト発行時に最大５個の命令を発行することができ、命令発行幅は、５となる。
【００８８】
ブースト設定命令によりブースト命令レジスタ２５０に既にシフト命令「ＳＦＴ」が格納されたとする。
【００８９】
図９に示すように、この場合、各命令間のデータの受授関係は図８と同様であるが、命令のフェッチ順や実行順が変わっている。また、３サイクル目において、ブースト発行により、演算器「ＭＥＭ」、「ＡＬＵ＿Ａ」、「ＡＬＵ＿Ｂ」、「ＭＵＬＴ」、「ＳＨＩＦＴ」に対して、命令「ＬＤ」、「ＡＤＤ」、「ＳＵＢ」、「ＭＵＬ」、「ＳＦＴ」が夫々発行される。そのため、該サイクルにおいて、５つの処理「ｌｄ」、「ａｄｄ」、「ｓｕｂ」、「ｍｕｌ」、「ｓｆｔ」が並列に実行される。
【００９０】
図９から分かるように、ＶＬＩＷプロセッサ２００によれば、図７に示すプログラムを１回実行するために、６サイクルがかかる。
【００９１】
通常のＶＬＩＷプロセッサと比べ、ＶＬＩＷプロセッサ２００は１サイクルのみを削減しているが、図７に示すプログラムがループの一部である場合には、ループの回数分だけのサイクル数の削減になる。前述したように、特に多重ループの最内ループは、実行頻度が高いため、最内ループの可能な場所にブースト発行を実行すれば、プログラム全体の処理時間を大幅に短縮することができる。
【００９２】
図１０を参照して、通常のＶＬＩＷプロセッサによる図７に示すプログラムの実行態様の別の一例を説明する。該プロセッサは、２並列ＶＬＩＷプロセッサであり、フェッチ幅と命令発行幅が２である。
【００９３】
図１０から分かるように、このＶＬＩＷプロセッサによれば、図７に示すプログラムを１回実行するために、９サイクルがかかる。
【００９４】
図９を参照して、ＶＬＩＷプロセッサ２００による図７に示すプログラムの実行態様の別の一例を説明する。ＶＬＩＷプロセッサ２００も、２並列ＶＬＩＷプロセッサであり、フェッチ幅が２である。
【００９５】
また、ＶＬＩＷプロセッサ２００において、ブースト命令レジスタ２５０に格納されるブースト命令の数が１であるとする。そのため、ブースト発行時に最大３個の命令を発行することができ、命令発行幅は、３となる。
【００９６】
ブースト設定命令によりブースト命令レジスタ２５０に既にシフト命令「ＳＦＴ」が格納されたとする。
【００９７】
図１１から分かるように、ＶＬＩＷプロセッサ２００によれば、図７に示すプログラムを１回実行するために、７サイクルのみかかっており、図７に示すプログラムの１回の実行につき、通常のＶＬＩＷプロセッサより２サイクル分削減できる。
【００９８】
なお、本実施の形態のＶＬＩＷプロセッサ２００では、ブースト設定命令によりブースト命令とブーストアドレスレの設定がなされている。例えば組込システムなど、ブースト命令とブーストアドレスが固定でもよい場合には、ブースト命令レジスタ２５０とブーストアドレスレジスタ２８０の代わりにＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などにブースト命令とブースト命令アドレスを予め格納しておくようにしてもよい。
【００９９】
また、分かりやすいようにするために、ブーストアドレスレジスタ２８０に対して１つのみブーストアドレスを設定する態様を例として説明したが、複数のブーストアドレスをブーストアドレスレジスタ２８０に対して設定するようにしてもよい。
【０１００】
この場合、比較器２７０は、ブーストアドレスレジスタ２８０に格納された各ブーストアドレスについて、ＰＣ２６０の値との比較を行い、いずれか１つのブーストアドレスがＰＣ２６０の値と同一であるときに、「一致」を示す比較結果をディスパッチャ２３０に出力する。
【０１０１】
こうすることにより、プログラムの異なる複数の箇所でブースト発行を実行することができる。
【０１０２】
＜第３の実施の形態＞
図２に示すＶＬＩＷプロセッサ２００に対して、比較器２７０が、ＰＣ２６０の値と、ブーストアドレスレジスタ２８０に格納されたブースト命令アドレスの下位側の一部のみを比較するようにすることが好ましい。
【０１０３】
例えば、メモリアドレスが３２ビットである場合に、ＰＣ２６０の値とブーストアドレスの下位１６ビット同士を比較する。
【０１０４】
こうすることにより、比較器２７０のビット幅を減らすことができ、比較器２７０の回路規模、ひいてはＶＬＩＷプロセッサの回路規模をより小さくすることができる。
【０１０５】
＜第４の実施の形態＞
ＶＬＩＷプロセッサ２００は、ＰＣ２６０の値とブーストアドレスの比較の結果が「一致」を示すことをブースト条件にしている。ブースト条件は、他のものを用いてもよい。
【０１０６】
例えば、ブースト発行の実行を指示するブースト実行命令を利用し、命令レジスタ２１０に格納された命令のうちに、ブースト実行命令が含まれることをブースト条件とすることが考えられる。
【０１０７】
この場合におけるブースト設定命令のフォーマット例を図１２に示す。図示のように、この場合、ブースト設定命令には、ブーストアドレスが含まれない。
【０１０８】
つまり、比較器２７０とブーストアドレスレジスタ２８０も設ける必要も無い。従って、回路規模を一層小さくすることができる。
【０１０９】
＜第５の実施の形態＞
図１３は、第５の実施の形態にかかるＶＬＩＷプロセッサ３００を示す。ＶＬＩＷプロセッサ３００について、ＶＬＩＷプロセッサ２００と異なる点のみを説明する。
【０１１０】
ＶＬＩＷプロセッサ３００は、ＶＬＩＷプロセッサ２００に設けられている比較器２７０とブーストアドレスレジスタ２８０が設けられておらず、ＶＬＩＷプロセッサ２００に無いブーストフラグ３４０が設けられている。
【０１１１】
図１３において、例として、ブーストフラグ３４０が単独に設けられているが、例えばブースト命令レジスタ２５０の一部として設けるようにしてもよい。
【０１１２】
ＶＬＩＷプロセッサ３００のデコーダ３２０は、ブースト設定命令に加え、さらに、フラグ設定命令に対応する。なお、ＶＬＩＷプロセッサ３００においても、ブースト設定命令は、ブースト命令アドレスを含まず、例えば図１２に示すフォーマットを有する。
【０１１３】
図１４は、フラグ設定命令のフォーマット例を示す。図示のように、フラグ設定命令は、「フラグ設定命令である」ことを示す種類コードと、０または１となるフラグ値が含まれている。フラグ設定命令の実行により、ブーストフラグ３４０の値は、該フラグ設定命令に含まれるフラグ値になる。
【０１１４】
ディスパッチャ３３０は、命令発行するときに、ブーストフラグ３４０を参照し、ブーストフラグ３４０が「０」であれば、通常の命令発行を行い、ブーストフラグ３４０が「１」であれば、ブースト発行を行う。
【０１１５】
本実施の形態のＶＬＩＷプロセッサ３００によれば、ブースト条件として「ブーストフラグ３４０＝１」を用い、小さな回路規模で演算器の有効利用ができる点において、上述した各実行の形態と同様である。また、比較器２７０やブーストアドレスレジスタ２８０を設ける必要がなく、フラグ３４０が１ビットで足りるため、ＶＬＩＷプロセッサ２００よりＶＬＩＷプロセッサの回路規模を一層削減することができる。
【０１１６】
＜第６の実施の形態＞
図１５は、第６の実施の形態にかかるＶＬＩＷプロセッサ４００を示す。ＶＬＩＷプロセッサ４００について、ＶＬＩＷプロセッサ３００と異なる点のみを説明する。
【０１１７】
ＶＬＩＷプロセッサ４００は、ＶＬＩＷプロセッサ３００と比べ、ブースト回数レジスタ４４０がさらに設けられている。
【０１１８】
ＶＬＩＷプロセッサ４００のデコーダ４２０は、ブースト設定命令とフラグ設定命令に加え、さらに、ブースト回数設定命令に対応する。
【０１１９】
図１６は、ブースト回数設定命令のフォーマット例を示す。図示のように、ブースト回数設定命令は、「ブースト回数設定命令である」ことを示す種類コードと、ブースト回数Ｋが含まれている。ブースト回数設定命令の実行により、ブースト回数レジスタ４４０は、ブースト回数Ｋに設定される。
【０１２０】
ディスパッチャ４３０は、ブースト条件が満たされたとき、ここではブーストフラグ３４０が「１」であるときに、ブースト回数レジスタ４４０を参照し、１回目のブースト発行を行うと共に、後続の連続する「Ｋ−１」の命令発行時も、ブースト発行を行う。
【０１２１】
ＶＬＩＷプロセッサ４００は、ＶＬＩＷプロセッサ３００と同様の効果を得ることができる。また、１回のブースト回数設定により、複数回のブースト発行を行うことができるため、プログラムの構成次第では、演算器をより有効に利用することができる。
【０１２２】
なお、ＶＬＩＷプロセッサ４００は、ブースト回数Ｋを利用してディスパッチャ４３０にブースト発行を連続して複数回行わせる技術を、ブースト条件としてブーストフラグの値を用いるＶＬＩＷプロセッサ３００に適用したものである。該技術は、上述した各実行の形態のように他のブースト条件を用いるＶＬＩＷプロセッサに適用してもよい。
【０１２３】
また、上述した説明において、ブースト回数設定命令を単独な命令とした場合を説明したが、ブーストフラグ設定命令を他の命令例えばブースト設定命令に含ませるようにしてもよい。
【０１２４】
図１７は、この場合のブースト設定命令のフォーマット例を示す。図示のように、このブースト設定命令は、「ブースト命令とブースト回数を設定する命令である」ことを示す種類コードと、ブースト命令のアドレスと、ブースト回数Ｋが含まれている。この命令の実行により、ブースト命令レジスタ２５０にブースト命令が格納されると共に、ブースト回数レジスタ４４０にブースト回数Ｋが設定される。
【０１２５】
図１７に示すブースト設定命令を用いることにより、ブースト命令の設定と、ブースト回数の設定を１つの命令で実行することができるため、これらの設定にかかる処理時間を短縮することができる。
【０１２６】
＜第７の実施の形態＞
図１８は、第７の実施の形態にかかるＶＬＩＷプロセッサ５００を示す。ＶＬＩＷプロセッサ５００について、ＶＬＩＷプロセッサ３００と異なる点のみを説明する。
【０１２７】
ＶＬＩＷプロセッサ５００は、ＶＬＩＷプロセッサ３００と比べ、ブースト命令バッファ５４０とパターンレジスタ５５０がさらに設けられている。
【０１２８】
ＶＬＩＷプロセッサ５００のデコーダ５２０は、ブースト設定命令とフラグ設定命令に加え、さらに、パターン設定命令に対応する。
【０１２９】
図１９は、パターン設定命令のフォーマット例を示す。図示のように、パターン設定命令は、「パターン設定命令である」ことを示す種類コードと、ブーストパターンを示すデータ（パターンデータ）が含まれている。パターン設定命令の実行により、パターンデータは、パターンレジスタ５５０に格納される。
【０１３０】
本実施の形態において、ブースト設定命令は、ブースト命令をロードしてブースト命令レジスタ２５０に格納することの代わりに、ブースト命令をロードしてブースト命令バッファ５４０に格納することを指示するものである。ブースト命令レジスタ２５０に格納されるブースト命令は、ブースト命令バッファ５４０から出力される。
【０１３１】
ブースト命令バッファ５４０は、Ｐ（Ｐ≧１）個のブースト命令を格納できる容量を有する。なお、ブースト命令バッファ５４０が格納できるブースト命令の数Ｐは、ブースト命令レジスタ２５０に格納できるブースト命令の数Ｓ以上である。
【０１３２】
ブースト命令バッファ５４０は、パターンレジスタ５５０に格納されたパターンデータが示すブーストパターンに従ってブースト命令レジスタ２５０にブースト命令を出力することにより、ブースト命令レジスタ２５０を設定する。ブースト命令バッファ５４０は、出力した回数をカウントするカウンタ５４２を備える。
【０１３３】
なお、本実施の形態において、ブーストフラグ３４０の値がブースト命令バッファ５４０にも出力され、ブースト命令バッファ５４０が１回目の出力を開始するきっかけは、ブーストフラグ３４０が「１」になったことである。
【０１３４】
ブーストパターンは、ブースト命令バッファ５４０からブースト命令の出力回数と、夫々の回におけるブースト命令の組合せのうちの少なくとも１つを含む。本実施の形態においては、ブーストパターンは、上記両方を含む。
【０１３５】
図２０は、ブーストパターンの一例を示す。図中丸は、対応するブースト命令がブースト命令バッファ５４０から出力する対象であることを意味する。なお、ブースト命令バッファ５４０には、３つのブースト命令が格納されており、ブースト命令レジスタ２５０は、３つのブースト命令を格納可能であるとする。
【０１３６】
図２０に示すように、該ブーストパターンでは、「ブースト命令１＋ブースト命令２」を１回出力し、その後、「ブースト命令１＋ブースト命令２＋ブースト命令３」を３回出力する。さらにその後、「ブースト命令３」を１回出力する。
【０１３７】
パターンレジスタ５５０に上記ブーストパターンを示すデータが格納されている場合に、ブースト命令バッファ５４０は、ブーストフラグ３４０が１になると、「ブースト命令１＋ブースト命令２」をブースト命令レジスタ２５０に出力する。これにより、カウンタ５４２のカウント値が１になる。
【０１３８】
カウンタ５４２のカウント値が４になるまで、ブースト命令バッファ５４０は、３回の出力をし、各回においては、「ブースト命令１＋ブースト命令２＋ブースト命令３」を出力する。
【０１３９】
カウンタ５４２のカウント値が４になると、ブースト命令バッファ５４０は、「ブースト命令３」を出力する。
【０１４０】
ＶＬＩＷプロセッサ５００は、ＶＬＩＷプロセッサ３００と同様の効果を得ることができる。また、ブースト命令を直接ブースト命令レジスタ２５０に格納する代わりに、ブースト命令バッファ５４０によりブースト命令レジスタ２５０に出力することにより、ブースト発行時に使用されるブースト命令の組合せパターンが複雑な場合においても、簡単に制御可能である。
【０１４１】
なお、ＶＬＩＷプロセッサ５００は、ブースト命令バッファ５４０がブーストパターンに従ってブースト命令レジスタ２５０にブースト命令を設定する技術を、ブースト条件としてブーストフラグの値を用いるＶＬＩＷプロセッサ３００に適用したものである。該技術は、上述した各実行の形態のように他のブースト条件を用いるＶＬＩＷプロセッサに適用してもよい。
【０１４２】
また、上述した説明において、ＶＬＩＷプロセッサ５００は、パターンデータを含むパターン設定命令によりパターンデータをパターンレジスタ５５０に格納するようになっているが、例えば、ブーストパターンが大変複雑でパターンデータのサイズが大きい場合には、パターンデータをメモリに格納しておき、メモリからパターンデータをロードしてパターンレジスタ５５０に格納するようにしてもよい。
【０１４３】
図２１は、この場合におけるパターン設定命令のフォーマット例を示す。図示のように、このパターン設定命令は、「ブーストパターンを設定する命令である」ことを示す種類コードと、パターンデータのメモリアドレスが含まれている。この命令の実行により、パターンデータは、メモリからロードされ、パターンレジスタ５５０に格納される。
【０１４４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１４５】
例えば、上述した各実施の形態において、命令レジスタに格納された命令と、ブースト命令レジスタに格納された命令は、別々のデコーダによりデコードされるようになっている。例えば、命令レジスタに格納された命令をデコードするデコーダが、ブースト命令レジスタに格納された命令のデコーダ（ブーストデコーダ）を兼ねるようにしてもよい。また、ブーストデコーダをディスパッチャに内蔵するようにしてもよい。
【符号の説明】
【０１４６】
１００  ＶＬＩＷプロセッサ
１１０  命令レジスタ
１２０  デコーダ
１３０  ディスパッチャ
１４０  演算器群
１５０  ブースト命令レジスタ
１５２  ブーストデコーダ
２００  ＶＬＩＷプロセッサ
２１０  命令レジスタ
２２０  デコーダ
２３０  ディスパッチャ
２４０  演算器群
２５０  ブースト命令レジスタ
２５２  ブーストデコーダ
２６０  プログラムカウンタ（ＰＣ）
２７０  比較器
２８０  ブーストアドレスレジスタ
３００  ＶＬＩＷプロセッサ
３２０  デコーダ
３３０  ディスパッチャ
３４０  ブーストフラグ
４００  ＶＬＩＷプロセッサ
４２０  デコーダ
４３０  ディスパッチャ
４４０  ブースト回数レジスタ
５００  ＶＬＩＷプロセッサ
５２０  デコーダ
５４０  ブースト命令バッファ
５４２  カウンタ
５５０  パターンレジスタ
ＢＳＴＡＤＤ  ブーストアドレス
ＢＳＴＩＮＳ  ブースト命令
Ｋ  ブースト回数
【図１】
2014081846.tif 000003
【図２】
2014081846.tif 000004
【図３】
2014081846.tif 000005
【図４】
2014081846.tif 000006
【図５】
2014081846.tif 000007
【図６】
2014081846.tif 000008
【図７】
2014081846.tif 000009
【図８】
2014081846.tif 000010
【図９】
2014081846.tif 000011
【図１０】
2014081846.tif 000012
【図１１】
2014081846.tif 000013
【図１２】
2014081846.tif 000014
【図１３】
2014081846.tif 000015
【図１４】
2014081846.tif 000016
【図１５】
2014081846.tif 000017
【図１６】
2014081846.tif 000018
【図１７】
2014081846.tif 000019
【図１８】
2014081846.tif 000020
【図１９】
2014081846.tif 000021
【図２０】
2014081846.tif 000022
【図２１】
2014081846.tif 000023