(57)【要約】【課題】無効演算命令の挿入を不要としてキャッシュ利用効率を高め、キャッシュミスヒット時間を短縮し、命令フェッチの高速化を実現するＶＬＩＷプロセッサにおける命令キャッシュ制御システムを提案する。【解決手段】１つのＶＬＩＷ命令中に含まれる複数の演算操作命令を並列実行するＶＬＩＷプロセッサにおける命令キャッシュ制御システムであって、２次キャッシュ４０１から命令キャッシュ４００へＶＬＩＷ命令１１０を格納する際に、無効演算命令を挿入することなく、２次キャッシュ４０１内の命令キャッシュブロックをそのまま命令キャッシュ４００のデータアレイに格納する構成とする。【選択図】　　図４
2004078627.tif 000002
【特許請求の範囲】
【請求項１】
１つのＶＬＩＷ命令中に含まれる複数の演算操作命令を並列実行するＶＬＩＷプロセッサにおける命令キャッシュ制御システムであって、
２次キャッシュから命令キャッシュへ前記ＶＬＩＷ命令を格納する際に、無効演算命令を挿入することなく、前記２次キャッシュ内の命令キャッシュブロックをそのまま前記命令キャッシュのデータアレイに格納する構成とすることを特徴とするＶＬＩＷプロセッサにおける命令キャッシュ制御システム。
【請求項２】
前記ＶＬＩＷ命令を含む前記演算操作命令の数に応じて可変長とし、前記ＶＬＩＷ命令に含まれる前記演算操作命令に、前記ＶＬＩＷ命令間の境界を識別する連続命令ビットを設け、
前記連続命令ビットに基づいて、前記１つのＶＬＩＷ命令に含まれる前記演算操作命令を格納する前記命令キャッシュブロックを識別して、前記命令キャッシュのデータアレイに格納することを特徴とする請求項１に記載のＶＬＩＷプロセッサにおける命令キャッシュ制御システム。
【請求項３】
前記演算操作命令に、命令要求アドレスが指定するＶＬＩＷ命令に含まれる演算操作命令か否かを示す要求有効命令ビットを設け、
前記命令要求アドレスと前記要求有効命令ビットに基づいて、前記命令キャッシュに格納される前記ＶＬＩＷ命令に含まれる演算操作命令を選択する選択手段を備えることを特徴とする請求項２に記載のＶＬＩＷプロセッサにおける命令キャッシュ制御システム。
【請求項４】
前記演算操作命令に、演算実行に使用する機能ユニットの種類を示す演算識別ビットを設け、
前記演算識別ビットに基づいて、前記演算操作命令を、使用する機能ユニットに分配する命令分配回路を備えることを特徴とする請求項２又は請求項３に記載のＶＬＩＷプロセッサにおける命令キャッシュ制御システム。
【請求項５】
前記ＶＬＩＷ命令に含まれる演算操作命令毎に、複数の前記選択手段を備えることを特徴とする請求項３に記載のＶＬＩＷプロセッサにおける命令キャッシュ制御システム。
【請求項６】
１つのＶＬＩＷ命令中に含まれる複数の演算操作命令を並列実行するＶＬＩＷプロセッサにおける命令キャッシュ制御方法であって、
２次キャッシュから命令キャッシュへ前記ＶＬＩＷ命令を格納する際に、無効演算命令を挿入することなく、前記２次キャッシュ内の命令キャッシュブロックをそのまま前記命令キャッシュのデータアレイに格納することを特徴とするＶＬＩＷプロセッサにおける命令キャッシュ制御方法。
【請求項７】
前記ＶＬＩＷ命令を含む前記演算操作命令の数に応じて可変長とし、前記ＶＬＩＷ命令に含まれる前記演算操作命令に、前記ＶＬＩＷ命令間の境界を識別する連続命令ビットを設け、
前記連続命令ビットに基づいて、前記１つのＶＬＩＷ命令に含まれる前記演算操作命令を格納する前記命令キャッシュブロックを識別して、前記命令キャッシュのデータアレイに格納することを特徴とする請求項６に記載のＶＬＩＷプロセッサにおける命令キャッシュ制御方法。
【請求項８】
前記演算操作命令に、命令要求アドレスが指定するＶＬＩＷ命令に含まれる演算操作命令か否かを示す要求有効命令ビットを設け、
前記命令要求アドレスと前記要求有効命令ビットに基づいて、前記命令キャッシュに格納される前記ＶＬＩＷ命令に含まれる演算操作命令を選択することを特徴とする請求項７に記載のＶＬＩＷプロセッサにおける命令キャッシュ制御方法。
【請求項９】
前記演算操作命令に、演算実行に使用する機能ユニットの種類を示す演算識別ビットを設け、
前記演算識別ビットに基づいて、前記演算操作命令を、使用する機能ユニットに分配することを特徴とする請求項７又は請求項８に記載のＶＬＩＷプロセッサにおける命令キャッシュ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＶＬＩＷプロセッサにおける命令キャッシュ制御システムに関し、特に、無効演算命令（ｎｏｐ）の挿入を不要とし、命令フェッチの高速化を実現するＶＬＩＷプロセッサにおける命令キャッシュ制御システム及び命令キャッシュ制御方法に関する。
【０００２】
【従来の技術】
近年、ＬＳＩ製造技術の発展により、多数の機能ユニットを備えるプロセッサを１チップで実現可能となっている。これにともない、プログラム中の命令レベル並列性を利用したマイクロプロセッサの命令発行幅は増加傾向にある。また、命令発行の実行サイクル数を減少させるには、単位時間あたりの命令供給量を増加させることが必要であり、複数の命令を同時に実行することによって性能を向上させることができるＶＬＩＷ（Ｖｅｒｙ　Ｌｏｎｇ　ＩｎｓｔｒｕｃｔｉｏｎＷｏｒｄ）方式プロセッサの多数の命令を高速に機能ユニットに供給する技術は重要となっている。
【０００３】
ＶＬＩＷ方式プロセッサは、１つの命令語中に含まれる複数の演算命令を同じサイクルで実行することによって並列度を高め、プロセッサの性能向上を図っている。しかし、並列に実行できない演算については、１つの命令語にエンコードすることができないため命令語中に無効演算命令（ｎｏｐ）が挿入されてコード効率が悪くなることが知られている。
【０００４】
ＶＬＩＷ方式プロセッサでは、並列実行可能な複数の演算操作命令からなる非常に長い命令を高速にフェッチするために、高ヒット率、高バンド幅の命令キャッシュが不可欠である。一般には、ＶＬＩＷ命令中には、多くの無効演算命令（ｎｏｐ）が含まれているために、無効演算命令（ｎｏｐ）を含んだＶＬＩＷ命令をキャッシュに格納すると、命令キャッシュの使用効率が低下し、命令キャッシュミス率が増加する。実際、従来技術を使用した命令キャッシュにおいては、使用する命令フィールドの半分以上を無効演算命令（ｎｏｐ）占める場合も生じる。
【０００５】
並列に実行できない演算命令について、命令語中に無効演算命令（ｎｏｐ）を挿入することによるコード効率悪化の問題を解決する技術として、例えば特開平１０−２９２１９９号公報に開示された発明があるが、命令キャッシュ制御により無効演算命令（ｎｏｐ）を削減する方法には言及していない。
【０００６】
【発明が解決しようとする課題】
以上述べたように従来においては、１つのＶＬＩＷ命令は、複数の機能ユニットで並列実行される複数の演算操作命令を含んで構成され、並列実行可能な演算操作命令がないフィールドには、無効演算命令（ｎｏｐ）が割り当てられる。無効演算命令（ｎｏｐ）を含んだＶＬＩＷ命令を命令キャッシュに格納すると、命令キャッシュにおける使用効率が低くなり、命令キャッシュのミスヒット率の増加につながり、命令フェッチが高速に行えなくなるという問題があった。
【０００７】
本発明の目的は、命令キャッシュ中に命令を格納する際に、無効演算命令（ｎｏｐ）の挿入を不要としてキャッシュ利用効率を高め、キャッシュミスヒット時間を短縮し、命令フェッチの高速化を実現するＶＬＩＷプロセッサにおける命令キャッシュ制御システム及び命令キャッシュ制御方法を提案することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成する本発明は、１つのＶＬＩＷ命令中に含まれる複数の演算操作命令を並列実行するＶＬＩＷプロセッサにおける命令キャッシュ制御システムであって、２次キャッシュから命令キャッシュへ前記ＶＬＩＷ命令を格納する際に、無効演算命令を挿入することなく、前記２次キャッシュ内の命令キャッシュブロックをそのまま前記命令キャッシュのデータアレイに格納する構成とすることを特徴とする。
【０００９】
請求項２の本発明の命令キャッシュ制御システムは、前記ＶＬＩＷ命令を含む前記演算操作命令の数に応じて可変長とし、前記ＶＬＩＷ命令に含まれる前記演算操作命令に、前記ＶＬＩＷ命令間の境界を識別する連続命令ビットを設け、前記連続命令ビットに基づいて、前記１つのＶＬＩＷ命令に含まれる前記演算操作命令を格納する前記命令キャッシュブロックを識別して、前記命令キャッシュのデータアレイに格納することを特徴とする。
【００１０】
請求項３の本発明の命令キャッシュ制御システムは、前記演算操作命令に、命令要求アドレスが指定するＶＬＩＷ命令に含まれる演算操作命令か否かを示す要求有効命令ビットを設け、前記命令要求アドレスと前記要求有効命令ビットに基づいて、前記命令キャッシュに格納される前記ＶＬＩＷ命令に含まれる演算操作命令を選択する選択手段を備えることを特徴とする。
【００１１】
請求項４の本発明の命令キャッシュ制御システムは、前記演算操作命令に、演算実行に使用する機能ユニットの種類を示す演算識別ビットを設け、前記演算識別ビットに基づいて、前記演算操作命令を、使用する機能ユニットに分配する命令分配手段を備えることを特徴とする。
【００１２】
請求項５の本発明の命令キャッシュ制御システムは、前記ＶＬＩＷ命令に含まれる演算操作命令毎に、複数の前記選択手段を備えることを特徴とする。
【００１３】
請求項６の本発明は、１つのＶＬＩＷ命令中に含まれる複数の演算操作命令を並列実行するＶＬＩＷプロセッサにおける命令キャッシュ制御方法であって、２次キャッシュから命令キャッシュへ前記ＶＬＩＷ命令を格納する際に、無効演算命令を挿入することなく、前記２次キャッシュ内の命令キャッシュブロックをそのまま前記命令キャッシュのデータアレイに格納することを特徴とする。
【００１４】
請求項７の本発明の命令キャッシュ制御方法は、前記ＶＬＩＷ命令を含む前記演算操作命令の数に応じて可変長とし、前記ＶＬＩＷ命令に含まれる前記演算操作命令に、前記ＶＬＩＷ命令間の境界を識別する連続命令ビットを設け、
前記連続命令ビットに基づいて、前記１つのＶＬＩＷ命令に含まれる前記演算操作命令を格納する前記命令キャッシュブロックを識別して、前記命令キャッシュのデータアレイに格納することを特徴とする。
【００１５】
請求項８の本発明の命令キャッシュ制御方法は、前記演算操作命令に、命令要求アドレスが指定するＶＬＩＷ命令に含まれる演算操作命令か否かを示す要求有効命令ビットを設け、前記命令要求アドレスと前記要求有効命令ビットに基づいて、前記命令キャッシュに格納される前記ＶＬＩＷ命令に含まれる演算操作命令を選択することを特徴とする。
【００１６】
請求項９の本発明の命令キャッシュ制御方法は、前記演算操作命令に、演算実行に使用する機能ユニットの種類を示す演算識別ビットを設け、前記演算識別ビットに基づいて、前記演算操作命令を、使用する機能ユニットに分配することを特徴とする。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
図１は、本発明の無効演算命令（ｎｏｐ）を挿入することなく複数命令のフェッチを可能とするキャッシュ制御方式を実現するＶＬＩＷ命令コード形式を示す図である。
【００１９】
ＶＬＩＷ命令１１０は、コンパイラによって抽出された並列実行可能な複数の演算操作から構成される命令である。本発明では、個々の演算操作命令を短命令２１０と呼び、１つ以上の並列実行可能な短命令２１０によって構成される命令をＶＬＩＷ命令１１０とする。
【００２０】
本実施の形態におけるＶＬＩＷプロセッサで実行されるＶＬＩＷ命令１１０の命令幅は可変であり、８Ｂｙｔｅから３２Ｂｙｔｅである。また、ＶＬＩＷ命令１１０に含まれる演算操作命令である短命令２１０の命令幅は８Ｂｙｔｅであり、最大で４つの短命令２１０が、ＶＬＩＷ命令１１０の構成要素となる。
【００２１】
図２は、ＶＬＩＷ命令１１０に含まれる短命令２１０の命令形式を示したものである。
【００２２】
各短命令２１０には、要求有効命令ビット１０１、連続命令ビット１０２、演算識別ビット１０３が含まれる。
【００２３】
要求有効命令ビット１０１は、命令要求アドレスにより指定されたＶＬＩＷ命令１１０中の短命令２１０であるかを判別するためのビットである。要求有効命令ビット１０１＝「１」の時、該当する短命令は、命令要求アドレスにより指定されるＶＬＩＷ命令１１０中の短命令であることを示す。要求有効命令ビット１０１＝「０」の時、命令要求アドレスにより指定されていないＶＬＩＷ命令中の短命令であることを示す。
【００２４】
連続命令ビット１０２は、該当する短命令２１０の後続に、同一のＶＬＩＷ命令１１０中の短命令２１０が存在するか否かを判別するためのビットである。連続命令ビット１０２＝「１」の時、後続に短命令２１０が存在し、連続命令ビット１０２＝「０」の時、同一のＶＬＩＷ命令１１０内には後続の短命令２１０が存在せず、最後の短命令２１０であることを示す。要求有効命令ビット及び連続命令ビットの意味は、上記と反対であってもよい。
【００２５】
演算識別ビット１０３は、短命令２１０に含まれる演算種類を規定するビットであり、演算識別ビット１０３＝「００」の時に整数演算命令、演算識別ビット１０３＝「０１」の時にロード／ストア命令、演算識別ビット１０３＝「１０」の時に分岐命令、演算識別ビット１０３＝「１１」の時に浮動少数点演算命令であることを示している。この演算識別ビット１０３によって、短命令の演算実行に使用する機能ユニットが示される。
【００２６】
図３は、従来における１つの命令語中に含まれる複数の命令を並列実行するＶＬＩＷ（Ｖｅｒｙ　Ｌｏｎｇ　Ｉｎｓｔｒｕｃｔｉｏｎ　Ｗｏｒｄ）アーキテクチャを採用したＶＬＩＷプロセッサの２ウェイセットアソシアティブ（ａｓｓｏｃｉａｔｉｖｅ）構成をとる命令キャッシュ３００の一構成例を示したものである。命令キャッシュのデータアレイにＶＬＩＷ命令を格納した状態を示している。
【００２７】
２次キャッシュ３０１には、無効演算命令（ｎｏｐ）は挿入されていないと仮定し、命令キャッシュ３００上のデータアレイ３１３及び３１５上のブロックサイズとＶＬＩＷ命令長は等しく３２Ｂｙｔｅの固定である。
【００２８】
命令キャッシュ３００のデータアレイ３１３及び３１５上のキャッシュブロックには、各機能ユニット３２０〜３２３に１対１に対応した格納フィールド３０４〜３０７及び３０８〜３１１が存在する。
【００２９】
格納フィールド３０４及び３０８は整数演算命令用フィールド、格納フィールド３０５及び３０９はロード／ストア命令用フィールド、格納フィールド３０６及び３１０は分岐命令用フィールド、格納フィールド３０７及び３１１は浮動小数点命令用フィールドである。
【００３０】
各機能ユニット３２０〜３２３は、同様に機能ユニット３２０が整数演算命令、機能ユニット３２１がロード／ストア命令、機能ユニット３２２が分岐命令、機能ユニット３２３が浮動小数点演算命令をそれぞれ実行する演算ユニットである。
【００３１】
ＶＬＩＷ命令が命令キャッシュ３００に格納される時点でＶＬＩＷ命令に含まれる演算操作命令が、どの演算操作を行う命令かがクロスバ３０２で識別され、その演算と一致する演算操作命令が格納フィールド３０４から３１１に分配され、各フィールドに格納される。この時、ＶＬＩＷ命令中に存在しない演算操作命令の対応する格納フィールドには無効演算命令（ｎｏｐ）が格納される。
【００３２】
命令フェッチ時には、命令キャッシュ３００内の格納フィールド３０４〜３１１から、選択器３１６を通り各機能ユニット３２０〜３２３へ送られる。
【００３３】
図３において、ＶＬＩＷ命令Ａは整数演算命令、ロードストア命令、分岐命令を含むので、整数演算命令Ａ＃０、ロードストア命令Ａ＃１、分岐命令Ａ＃２は、それぞれ該当する機能ユニットに対応する命令キャッシュ上の格納フィールド３０４、３０５、３０６に格納され、浮動小数点演算命令は存在しないため浮動小数点演算命令の格納フィールド３０７には、無効演算命令（ｎｏｐ）が格納される。
【００３４】
また、ＶＬＩＷ命令Ｂは、整数演算命令のみのため格納フィールド３０８にのみ整数演算命令Ｂ＃０が格納され、その他の格納フィールド３０９〜３１１には無効演算命令（ｎｏｐ）が格納される。
【００３５】
図４は、本発明の実施の形態におけるＶＬＩＷプロセッサの２ウェイセットアソシアティブ（ａｓｓｏｃｉａｔｉｖｅ）構成をとる命令キャッシュ制御システムを示すブロック図である。
【００３６】
本実施の形態による命令キャッシュ制御システムは、２次キャッシュ４０１、２ウェイセットアソシアティブ（ａｓｓｏｃｉａｔｉｖｅ）構成をとる命令キャッシュ４００、選択器４１６、短命令を機能ユニット４２０〜４２３に対して分配する命令分配回路４３０を備える。
【００３７】
２次キャッシュ４０１には、図３で説明した従来の構成と同様、無効演算命令（ｎｏｐ）は含まれていない。命令キャッシュ４００上のキャッシュブロックサイズは、ＶＬＩＷ命令１１０の最大長である３２Ｂｙｔｅである。本発明のＶＬＩＷ命令１１０は図１に示したように可変長であり、命令キャッシュミス等により、２次キャッシュ４０１から命令データを転送する際、２次キャッシュ４０１上の命令キャッシュブロックがそのまま格納され、いかなる場合にも無効演算命令（ｎｏｐ）が格納されることはない。
【００３８】
各機能ユニット４２０〜４２３については、機能ユニット４２０が整数演算命令、機能ユニット４２１がロード／ストア命令、機能ユニット４２２が分岐命令、機能ユニット４２３が浮動小数点演算命令をそれぞれ実行する演算ユニットである。
【００３９】
命令キャッシュ４００のデータアレイ４１３及び４１５の各キャッシュブロックの格納フィールド４０４〜４１１は、図３に示した従来の構成と異なり、命令実行に使用する機能ユニット４２０〜４２３に１対１には対応していない。すなわち、図３で述べた従来と違い、ＶＬＩＷ命令１１０内の短命令２１０がデータアレイ４１３及び４１５の何れの格納フィールドに格納されるかは予め決められていない。
【００４０】
例えば、ＶＬＩＷ命令Ａの３つの短命令Ａ＃０、Ａ＃１、Ａ＃２は、同一ブロックの格納フィールド４０４、格納フィールド４０５、格納フィールド４０６に格納され、残りの命令フィールド４０７には無効演算命令（ｎｏｐ）は格納されず、次のＶＬＩＷ命令Ｂが格納されている。
【００４１】
また、ＶＬＩＷ命令Ｆについては、短命令Ｆ＃０、Ｆ＃１、Ｆ＃２がデータアレイ４１３及び４１５のキャッシュブロックを跨った状態で格納フィールド４０７、４０８、４０９に格納されている。ただし、データアレイ４１３及び４１５のキャッシュブロックを跨った状態で格納される場合は、異なるウェイのデータアレイ上の格納フィールドに命令キャッシュブロックが格納される。
【００４２】
命令要求アドレスによる命令キャッシュ検索の結果、ヒットしたＶＬＩＷ命令１１０は、選択器４１６により、ＶＬＩＷ命令１１０の短命令２１０が選択され、命令分配機構４３０において、各短命令２１０上の演算識別ビット１０３に従い各機能ユニット４２０〜４２３へ転送される。なお、命令フェッチの詳細動作は、以降において詳細に説明する。
【００４３】
図５は、本発明における命令要求アドレスのフォーマットを示したものである。ビット０−２が短命令データサイズ５０５を示し、本実施の形態では８Ｂｙｔｅである。ビット３−４は短命令アドレス５０４、ビット５−１５が命令キャッシュブロックアドレス（インデックス）５０３をしめす。本実施の形態の命令キャッシュ４００は、１Ｋエントリを１ウェイとし２ウェイ構成である。ビット１６−３１は、命令キャッシュタグ５０２を表わす。各アドレスビットは、命令キャッシュ４００でのブロック検索及びブロック選択等に使用する。
【００４４】
以下、図６、７、８を参照して本発明の命令キャッシュ制御方式を利用した実施の形態の動作について詳細に説明する。
【００４５】
図６は、図４に示す本実施の形態における２次キャッシュ４０１から２ウェイセットアソシアティブ構成の命令キャッシュ４００へのデータ移行を示す図である。
【００４６】
２次キャッシュ４０１の２次キャッシュブロック６０１は、命令キャッシュ４００のブロックサイズ３２Ｂｙｔｅの４倍、１２８Ｂｙｔｅを有する。命令キャッシュブロック６０２〜６０５は、それぞれ３２Ｂｙｔｅであり、８Ｂｙｔｅの短命令２１０が４つ格納されている。
【００４７】
２次キャッシュ４０１には、無効演算命令（ｎｏｐ）が含まれていないため、各々のＶＬＩＷ命令１１０の命令幅は、各ＶＬＩＷ命令１１０毎に異なり、２次キャッシュ４０１上の命令キャッシュブロックサイズ３２Ｂｙｔｅとは無関係にＶＬＩＷ命令１１０が格納されている。
【００４８】
ここでは、命令キャッシュブロック６０２には、ＶＬＩＷ命令５１０の短命令６２０、６２１が、また命令キャッシュブロック６０３には、ＶＬＩＷ命令５１０の短命令６２１に続く短命令６２２と、ＶＬＩＷ命令５１１の短命令６２３及び６２４とＶＬＩＷ命令５１２の短命令６２５が、命令キャッシュブロック６０４には、ＶＬＩＷ命令５１２の短命令６２５に続く短命令６２６、６２７及び６２８が格納されている。
【００４９】
命令要求アドレス５０１による命令キャッシュ検索の結果、命令キャッシュ４００上でキャッシュブロックに該当するＶＬＩＷ命令が存在しない場合、つまりキャッシュミスの場合、２次キャッシュ４０１上の命令キャッシュブロックと、命令キャッシュ４００上のブロックとの置き換えを行う。命令キャッシュ４００上の置き換えブロックの決定は、ＬＲＵ（ＬｅａｓｔＲｅｃｅｎｔｌｙＵｓｅｄ）に従ってなされる。
【００５０】
命令要求アドレス５０１による命令キャッシュ検索の結果、ＶＬＩＷ命令５１０を含むキャッシュブロックのキャッシュミスが起こると、命令キャッシュ４００上のブロックとの置き換えを行うが、ＶＬＩＷ命令５１０は、各短命令に含まれる連続命令ビット１０２から、２つの命令キャッシュブロックに跨っていることが分かるため、２次キャッシュブロック６０１上の命令キャッシュブロック６０２、及び命令キャッシュブロック６０３の２ブロックを命令キャッシュ４００上のデータアレイ４１３及び４１５にそれぞれ格納する。この時、ＶＬＩＷ命令５１１と５１２もデータアレイ４１５に格納されることになる。
【００５１】
ＶＬＩＷ命令５１０内の短命令６２０は整数演算命令であり、演算識別ビット１０３＝「００」、後続に同一のＶＬＩＷ命令５１０に含まれる短命令６２１が存在するので連続命令ビット１０２＝「１」である。
【００５２】
短命令６２１はロード／ストア命令であり、演算識別ビット１０３＝「０１」であり、後続に同一のＶＬＩＷ命令５１０に含まれる短命令６２２が存在するので連続命令ビット１０２＝「１」である。
【００５３】
短命令６２２は、浮動小数点演算命令であり、演算識別ビット１０３＝「１１」であり、後続に同一のＶＬＩＷ命令５１０に含まれる短命令は存在しないので連続命令ビット１０２＝「０」である。
【００５４】
図７は、命令要求アドレス５０１から、命令キャッシュ４００上のキャッシュブロックを検索し、要求するＶＬＩＷ命令に含まれる短命令がそれそれの命令を実行する機能ユニット４２０〜４２３に命令フェッチされるための構成とその動作を示している。
【００５５】
命令要求アドレス５０１のビット５−１５の命令キャッシュブロックアドレス５０３から、アドレスアレイ４１２と４１４のインデックス７１５及びインデックス７１９の検索が行われる。
【００５６】
また、同時にＶＬＩＷ命令が命令キャッシュブロック間を跨って格納されている場合を考慮し、加算器７３６により命令ブロックアドレス５０３に＋１したキャッシュブロックアドレスについてもインデックス検索を行う。
【００５７】
インデックス検索により該当ブロックが存在すると、アドレスアレイ４１２、またはアドレスアレイ４１４に含まれるキャッシュブロック上のタグ７１７、またはタグ７２１と、命令要求アドレス５０１上の命令キャッシュタグ５０２との一致を比較器７３１、または比較器７３４で判別し、その一致信号とブロック有効ビット７１６、またはブロック有効ビット７２０とを入力とする論理積回路７３０、または論理積回路７３３の出力信号７３２、出力信号７３５が決定する。
【００５８】
そして、出力信号７３２及び７３５と各短命令内の要求有効命令ビット１０１とを入力とする論理積回路７８０〜７８７の出力信号である、選択器４１６を構成するセレクタ７４０〜７４３への選択信号７７０〜７７７が決定する。
【００５９】
インデックス検索により該当したキャッシュブロックは短命令毎に、選択信号７７０〜７７７によりセレクタ７４０〜７４３でウェイ０、ウェイ１のいずれかの短命令が選択され、命令分配機構４３０に送られる。
【００６０】
ＶＬＩＷ命令の短命令毎にセレクタ７４０〜７４３を設けることにより、ＶＬＩＷ命令がキャッシュブロックを跨って格納されている場合にも、同時に短命令を読み出すことが可能となる。各セレクタの選択信号７７０〜７７７の決定規則については、図８を用いて詳細に説明する。
【００６１】
命令分配機構４３０で、ＶＬＩＷ命令内の短命令上の演算識別ビット１０３に基づいて、機能ユニット４２０〜４２３へ分配される。機能ユニット４２０は整数演算用ユニット、機能ユニット４２１はロードストア用ユニット、機能ユニット４２２は分岐命令用ユニット、機能ユニット４２３は浮動小数点演算用ユニットである。
【００６２】
命令要求アドレス５０１が指定するＶＬＩＷ命令が、図６で説明したＶＬＩＷ命令５１０の場合は、命令要求アドレスのブロックアドレス５０３、及び加算器７３６により＋１したインデックスにて、ＶＬＩＷ命令５１０を含むキャッシュブロックを検索する。短命令６２０及び短命令６２１は、ウェイ０側のキャッシュブロック中の後半アドレスの２つの短命令の格納フィールドに格納されているため、セレクタ７４２、及びセレクタ７４３にて選択される。
【００６３】
一方、短命令６２２はウェイ１側のキャッシュブロック中の先頭の格納フィールドに格納されているため、セレクタ７４０により選択される。その後命令分配機構４３０により、各短命令の演算識別ビット１０３により、短命令６２０は整数演算命令用の機能ユニット４２０へ、短命令６２１はロードストア命令用の機能ユニット４２１へ、短命令６２２は浮動小数点演算用の機能ユニット４２３へそれぞれ分配される。
【００６４】
図８は、キャッシュブロック中の短命令選択時に使用するセレクタ７４０〜セレクタ７４３の選択信号７７０〜７７７の決定について、ＶＬＩＷ命令５１０をフェッチする場合を例に図示したものである。
【００６５】
ＶＬＩＷ命令５１０は、命令要求アドレス５０１上の短命令アドレス５０４により指定される短命令６２０を先頭とし、各々の短命令の連続命令ビット１０２により、ＶＬＩＷ命令５１０内の短命令６２０、６２１及び６２２の要求有効命令ビット１０１が「１」となっている。
【００６６】
論理積回路７３０及び論理積回路７３３の出力信号７３２及び出力信号７３５と、それぞれの要求有効命令ビット１０１の論理積７８２、７８３及び７８４から選択信号７７２、７７３及び７７４が決定し、セレクタ７４２、７４３、及び７４０から短命令６２０、６２１及び６２２が選択される。
【００６７】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００６８】
上述した実施の形態においては、命令キャッシュのデータアレイが２ウェイ、すなわち２つ備える構成について説明したが、２ウェイの構成に限定されることはなく、データアレイが１つの場合あるいは２つ以上である場合についても本発明を適用することが可能である。すなわち、１つの命令語中に含まれる複数の命令を、並列実行するＶＬＩＷ（Ｖｅｒｙ　Ｌｏｎｇ　Ｉｎｓｔｒｕｃｔｉｏｎ　Ｗｏｒｄ）アーキテクチャを採用したＶＬＩＷプロセッサにおいて、ｎウェイのセットアソシアティブ構成の命令キャッシュに適用することができる。
【００６９】
【発明の効果】
以上説明したように本発明によれば、ＶＬＩＷプロセッサの命令キャッシュシステムにおいて、ＶＬＩＷ命令の命令幅を可変長とし、ＶＬＩＷ命令に含まれる各短命令に、演算識別ビット、連続命令ビット、要求有効命令ビットを設けることにより、２次キャッシュから命令キャッシュ中に命令を格納する際に、無効演算命令（ｎｏｐ）の挿入を不要とすることにより、キャッシュミスヒットを減らしてキャッシュ利用効率を向上させ、命令フェッチの高速化が実現される。
【図面の簡単な説明】
【図１】本発明におけるＶＬＩＷ命令の形式を示す図である。
【図２】本発明におけるＶＬＩＷ命令内の短命令である演算操作命令の命令形式を示す図である。
【図３】従来のＶＬＩＷプロセッサにおける命令キャッシュシステムの構成例を示すブロック図である。
【図４】本発明の実施の形態における２ウェイセットアソシアティブ構成の命令キャッシュ制御システムの構成を示すブロック図である。
【図５】本発明の実施の形態における命令要求アドレスを示す図である。
【図６】本発明の実施の形態における命令キャッシュの構成及び命令の格納形態を示す図である。
【図７】本発明の実施の形態における命令キャッシュ制御システムの動作を説明する図である。
【図８】本発明の実施の形態におけるセレクタのセレクタ信号の生成規則を説明する図である。
【符号の説明】
１１０　ＶＬＩＷ命令
１０１　要求有効命令ビット
１０２　連続命令ビット
１０３　演算識別ビット
２１０　短命令
４００　命令キャッシュ
４０１　２次キャッシュ
４０４〜４１１　格納フィールド
４１２、４１４　アドレスアレイ
４１３、４１５　データアレイ
４１６　選択器
４３０　命令分配回路
４２０〜４２３　機能ユニット
５０１　命令要求アドレス
７３０、７３３　論理積回路
７４０〜７４３　セレクタ
７８０〜７８７　論理積回路
【図１】
2004078627.tif 000003
【図２】
2004078627.tif 000004
【図３】
2004078627.tif 000005
【図４】
2004078627.tif 000006
【図５】
2004078627.tif 000007
【図６】
2004078627.tif 000008
【図７】
2004078627.tif 000009
【図８】
2004078627.tif 000010