(57)【要約】【課題】複数の命令語で構成される超長命令を実行する情報処理装置において、同時実行可能な命令数を低コストで増やすことができるようにすること。【解決手段】メモリからプログラムをフェッチする命令フェッチ部１と、命令デコーダ部２と、組合せ指示フィールドと命令語グループ内の命令の並びに基づいて演算器の組合せを指示する組合せ制御部３と、命令の指示に基づいて演算器へソースオペランドを供給するレジスタファイル部４と、組合せ制御部３の指示に基づいてレジスタファイル部４からのソースオペランド若しくは命令語グループ内の演算器の演算結果を、命令語グループ内の他の演算器のソースオペランドとして供給する入力セレクタ部５及び入力セレクタ部６と、命令の指示に基づく演算を実施し、該演算結果をレジスタファイル部４と、入力セレクタ部５及び入力セレクタ部６へ供給する演算器Ａ〜Ｆと、を備えて構成されている。【選択図】図１
2011145886.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ個の命令語（Ｍは、２以上の整数）から構成される超長命令を実行する情報処理装置であって、
Ｎ個の前記命令語（Ｎは、Ｍ以下の整数）から構成されるＰ個の命令語グループ（Ｐは、Ｍ≧Ｐ×Ｎを満たす整数）を設定すると共に、前記命令語グループ内の前記命令語を組み合わせて実行することを指示するための組合せ指示フィールドを、前記超長命令の命令語内に含むことを特徴とする情報処理装置。
【請求項２】
前記組合せ指示フィールドを、前記超長命令語を構成する、前記命令語グループに属する命令語以外の命令語内に含み、前記組合せ指示フィールドが有効である場合に、前記命令語グループ内の全ての命令語において、Ｎ個の前記命令語が配置されている順番でＱ番目（１≦Ｑ＜Ｎ）に配置された命令語の実行結果を、前記順番でＱ＋１番目に配置された命令語のオペランドの一部とすることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記組合せ指示フィールドを、前記命令語グループ内の命令語毎に含み、前記順番でＱ＋１番目に配置された命令語内の組合せ指示フィールドが有効である場合には、前記順番でＱ番目（１≦Ｑ＜Ｎ）に配置された命令語の実行結果を、前記順番でＱ＋１番目に配置された命令語のオペランドの一部とすることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記順番でＱ番目に配置された命令語の実行結果を専用レジスタに格納し、命令実行の次のサイクルにおいて、前記専用レジスタの値を、Ｑ＋１番目に配置された命令語のオペランドの一部とすることを特徴とする請求項２または請求項３に記載の情報処理装置。
【請求項５】
命令語の組合せ実行により、前記命令語グループ内の前記命令語へのオペランド供給が不要となったレジスタファイルの読み出しポートを、前記命令語グループに含まれない他の命令語へのオペランドの供給に使用し、前記命令語の組合せ実行により、前記命令語グループ内の命令語からの書き込みが不要となった前記レジスタファイルの前記書き込みポートを、前記命令語グループに含まれない他の命令語の演算結果の書き込み先として使用することを特徴とする請求項１〜４のいずれか１項記載の情報処理装置。
【請求項６】
命令語の組合せ実行により、前記命令語グループ内の前記命令語が使用しないオペランドフィールドを、前記命令語グループに含まれない他の命令語のオペランドフィールドとして使用することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記組合せ指示フィールドが、前記命令語グループに含まれない他の命令語のオペコードの一部であることを特徴とする請求項６記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に係り、特に、同時実行可能な命令数を低コストで増やすことができるＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）タイプの情報処理装置に関する。
【背景技術】
【０００２】
近年、ＩＴ技術の進展に伴い、コンピュータが処理するデータ量は増加の一途にある。これらのデータを高速に処理するため、様々なタイプの情報処理装置が提案されている。例えば、ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）タイプの情報処理装置では、複数の命令語（演算、ロードなど）を１つの超長命令（ＶＬＩＷ）にパックし、同時に実行する。プログラムのコンパイル時に、命令間の順序関係やデータ依存関係を解析し、同時実行可能な命令群を抽出している。これにより、複数の命令を同時に実行することができるので、ロード時間等のランタイムに関するオーバーヘッドが縮小されて、速度性能の向上が可能となる。
【０００３】
当然ながら、ＶＬＩＷタイプの情報処理装置（以下、「ＶＬＩＷ情報処理装置」と称する）では、同時実行する命令語の個数を増やすことにより、該情報処理装置の性能を一層向上させることができる。しかし、同時実行する命令語数を増やすには、命令語へのオペランドを供給する汎用レジスタファイルの読み出しポート数を、その分増やす必要がある。近年では、この汎用レジスタファイルのビット数やエントリ数は、他の要因からも、より増加する傾向にあるため、更に読み出しポートを増やすためには、その追加コストが大きくなり、このことが、ＶＬＩＷ情報処理装置の性能を向上させる上での課題となっている。
【０００４】
また、ＶＬＩＷタイプの情報処理装置では、同時実行する命令語毎の処理時間が不均一であるという事実も存在し、このような不利な条件を解決することも課題の１つとなっている。
なお、ＶＬＩＷタイプの情報処理装置では、回路を制御するクロック周期は、最も処理時間の長い命令語に基づいて決定される。このため、処理時間の短い加算やビット積と、処理時間の長い乗算やロードを同時実行するＶＬＩＷタイプの情報処理装置では、乗算やロードの処理時間に基づきクロック周期が決定されている。しかし、これでは、図１５に示すように、処理時間の短い加算やビット積の命令語の処理にとっては、クロック周期が長過ぎるため、無駄な時間が費やされることになる。
【０００５】
このような課題を解決するため、例えば、特許文献１では、命令語として、ＣＩＳＣ（Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）命令の選択が可能なＶＬＩＷ情報処理装置が提案されている。この情報処理装置では、複数の命令語に基づき駆動される複数の演算器を、単一のＣＩＳＣ命令に基づき制御し、ＣＩＳＣ命令を実行する場合には、ＣＩＳＣ命令が指定する演算器の演算結果を、ＣＩＳＣ命令が指定する他の演算器の、オペランドの一部として利用する。例えば、図１６に示すように、命令語ＡがＣＩＳＣ命令である場合には、２つのセレクタを制御することにより、レジスタファイルに対して、新たな読み出しポートを追加することなく、より複雑な命令の実行を可能にしている。また、複数の演算器を組み合わせた実行を可能にして、図１５に示すような、無駄な時間の消費を抑えることができるようにしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００７−５１９０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、公知の情報処理装置では、例えば、前述の特許文献１に開示されているＶＬＩＷ情報処理装置の技術の場合、命令語として、ＣＩＳＣ命令を選択可能なＶＬＩＷ情報処理装置を用いることにより、従来のＶＬＩＷタイプの情報処理装置における課題を解決している。
しかしなから、この特許文献１に開示されているＶＬＩＷ情報処理装置の構成では、以下で述べるような問題点が残されている。
第１の問題点は、演算器の組合せパターンが限定されることである。即ち、特許文献１に開示されているＶＬＩＷ情報処理装置では、演算器の組合せをＣＩＳＣ命令により定義するため、ＣＩＳＣ命令として定義した以外の演算器の組合せを実現することができない。
【０００８】
また、この問題点を解消するため、予め、演算器の多数の組合せをＣＩＳＣ命令として実装しておくことも可能ではあるが、その場合は、演算器の多数の組合せを表現するための大きな命令フィールドが必要となる。例えば、１０種類の演算器を２つ組み合わせるパターン数は９０有り、それを表現するだけでも７ｂｉｔ  のフィールドが必要となる。組み込み分野ではメモリのコストが高く、容量及びアクセスバンド幅とも限られてしまう。このため、命令コードのビット幅が大きく増えることは、特許文献１に開示されているＶＬＩＷ情報処理装置の技術を実施する上で、組み込み分野においての障害となる可能性が有る。
【０００９】
第２の問題点は、レジスタファイルの読み出しポートと書き込みポートの利用効率が低下するといった問題点である。即ち、特許文献１に開示されているＶＬＩＷ情報処理装置の技術では、ＣＩＳＣ命令が指定する演算器Ａの演算結果を、ＣＩＳＣ命令が指定する他の演算器Ｂの、オペランドの一部として利用する。このため、演算器ＢがＣＩＳＣ命令以外の命令で駆動される場合に、演算器Ｂへオペランドを供給していたレジスタファイルの読み出しポートの１つが利用されないことになる。同様に、演算器ＡがＣＩＳＣ命令以外の命令で駆動される場合に、演算器Ａの演算結果を書き戻していたレジスタファイルの書き込みポートの１つが利用されないことになる。
【００１０】
本発明は、上記従来の問題点に鑑みてなされたものであって、複数の命令語から構成される超長命令を実行する情報処理装置で、特に、複数の命令語の組合せを低コストに実現すると共に、命令語の組合せを行う際に、利用されないレジスタファイルの読み出し及び書き込みポートを有効利用することを可能にして、同時実行が可能な命令の数を低コストで増やすことができるようにすると共に、速度性能を向上させることができる情報処理装置を実現することを目的としている。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明に係る情報処理装置は、Ｍ個の命令語（Ｍは、２以上の整数）から構成される超長命令を実行する情報処理装置であって、Ｎ個の命令語（Ｎは、Ｍ以下の整数）から構成されるＰ個の命令語グループ（Ｐは、Ｍ≧Ｐ×Ｎを満たす整数）を設定すると共に、命令語グループ内の命令語を組み合わせて実行することを指示するための組合せ指示フィールドを、超長命令の命令語内に含むことを特徴とする。
【発明の効果】
【００１２】
以上説明したように、本発明の情報処理装置によれば、複数の命令語から構成される命令語グループ毎に、命令語の組合せを指示することにより、命令語の自由な組合せを、低コストに実現し、また、命令語の組合せを行う際に、利用されないレジスタファイルの読み出し及び書き込みポートを有効使用することにより、同時実行可能な命令数を増やすことを低コストで実現することができる効果が有る。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態に係る情報処理装置の全体構成を示す構成図である。
【図２】本発明の第１の実施形態に係る情報処理装置で用いられる命令形式の１例を示す説明図である。
【図３】入力セレクタ部５の構成を示すブロック構成図である。
【図４】図２に例示する命令形式を使用する場合に、組合せ制御部３が、入力セレクタ部５に向けて出力する制御信号の生成ルールを示す説明図である。
【図５】本発明の第１の実施形態に係る情報処理装置において用いられる他の命令形式の１例を示す説明図である。
【図６】図５に例示する他の命令形式を使用する場合に、組合せ制御部３が、セレクタ部５に向けて出力する制御信号の生成ルールを示す説明図である。
【図７】本発明の第２の実施形態に係る情報処理装置の全体構成を示す構成図である。
【図８】図７に示す情報処理装置において用いられる命令語形式の１例を示す説明図である。
【図９】入力セレクタ部５と出力セレクタ７の詳細構成を示すブロック図である。
【図１０】組合せ制御部３が、入力セレクタ部５へ生成する制御信号の生成ルールと、出力セレクタ部７へ生成する制御信号の生成ルールとを示す説明図である。
【図１１】本発明の第３の実施形態に係る情報処理装置が使用する命令語形式の１例を示す説明図である。
【図１２】図１１に示す命令語形式の命令語の命令フィールドの展開方法を示す説明図である。
【図１３】本発明の第４の実施形態に係る情報処理装置が使用する命令語形式の１例を示す説明図である。
【図１４】図１３に示す命令語形式の命令語のオペコードの割り当て方法を示す説明図である。
【図１５】周知の情報処理装置において、命令間での遅延の偏りの１例を示すタイミングチャート図である。
【図１６】周知の情報処理装置において、ＣＩＳＣ命令を実行するＶＬＩＷタイプの情報処理装置の１構成例を示す構成図である。
【発明を実施するための形態】
【００１４】
本発明に係る情報処理装置は、複数の命令語から構成される命令語グループ毎に、命令語の組合せを指示することにより、命令語の自由な組合せを、低コストに実現する。
また、命令語の組合せを行う際に、利用されないレジスタファイルの読み出し及び書き込みポートを有効利用することにより、低コストに、同時実行が可能な命令数を増やすことができるように構成する。
即ち、本発明に係る情報処理装置は、３つの演算器から構成される２つの命令語グループを備えて、組合せ指示フィールドに基づいて各々の命令語グループ内での命令語の組合せを行って実行する。
以下、本発明の情報処理装置の実施形態について、第１の実施形態〜第４の実施形態の順に、図面を参照して詳細に説明する。
【００１５】
〔第１の実施形態〕
図１は、本発明の第１の実施形態に係る情報処理装置の全体構成を示す構成図である。
同図において、本実施形態の情報処理装置は、メモリからプログラムをフェッチする命令フェッチ部１と、フェッチされた命令をデコードする命令デコーダ部２と、組合せ指示フィールドと命令語グループ内の命令の並びに基づいて後述する演算器の組合せを指示する組合せ制御部３と、デコードされた命令の指示に基づいて演算器へソースオペランドを供給するレジスタファイル部４と、組合せ制御部３の指示に基づいてレジスタファイル部４からのソースオペランド若しくは命令語グループ内の演算器の演算結果を、命令語グループ内の他の演算器のソースオペランドとして供給する入力セレクタ部５及び入力セレクタ部６と、入力セレクタ部５及び入力セレクタ部６が供給するソースオペランドに対して、デコードされた命令の指示に基づく演算を実施し、該演算結果をレジスタファイル部４と、入力セレクタ部５及び入力びセレクタ部６へ供給する演算器Ａ〜Ｆと、を備える。
【００１６】
上記の構成では、命令語グループを構成する命令語の数を３つとし、命令語グループの数を２つとしているが、本発明に係る情報処理装置の構成は、必ずしも、このような構成に限るものではない。
また、近年の情報処理装置と同様に、動作周波数の向上を実現するために、複数のパイプラインステージから成る構成であっても構わない。
さらに、図１に示す構成では、命令フェッチ部１から演算器Ａ〜Ｆまでの構成を、一連のサイクルとして図示しているが、これを複数のパイプラインステージに分割した実装としても構わない。
【００１７】
図２は、本発明の第１の実施形態に係る情報処理装置で用いられる命令形式の１例を示す説明図である。
同図に示す命令形式は、３つの命令語からなる２つの命令語グループと、各命令語グループ内の命令語の組合せを指示する組合せ指示フラグ１１とから構成される。各命令語は、実行する演算の種類を指定するオペコード（ｏｐｃ）と、演算の対象データを指定するソースオペランド（ｓｒｃ１，ｓｒｃ２）と、演算結果の保存先を指定するデスティネーション（ｄｓｔ）とから構成される。
なお、図２に例示する命令形式は、２個のソースオペランド（ｓｒｃ１，ｓｒｃ２）  と、１個のデスティネーション（ｄｓｔ）とを有する命令形式としたが、本発明に係る情報処理装置の命令形式は、必ずしもこの例に限るものではない。
ソースオペランドやデスティネーションの数は、０個や３個であっても構わない。また、命令形式に、別のフィールド（即値など）を含めても構わない。さらには、図２の命令形式内における、命令グループと組合せ指示フラグ１１の順序は、必ずしもこの限りではなくても構わない。
【００１８】
以下、本実施形態の情報処理装置が有する各構成要素について説明する。
図１に示す情報処理装置の命令フェッチ部１は、図２に示す命令形式の命令をフェッチする。このフェッチされた命令に含まれる各命令語のオペコード（ｏｐｃ）と、組合せ指示フラグ１１とは、組合せ制御部３に送られ、この組合せ制御部３において入力セレクタ部５及び入力セレクタ部６への制御信号が生成される。
なお、図１に示す構成では、組合せ制御部３に向けた命令語のオペコード（ｏｐｃ）及び組合せ指示フラグ１１の供給を、命令フェッチ部１が行っているが、命令デコード部２が上記と同様の動作を行うように構成しても構わない。
以下、入力セレクタ部５の構成と、組合せ制御部３が生成する入力セレクタ部５への制御信号とについて説明する。
【００１９】
図３は、入力セレクタ部５の構成を示すブロック構成図である。
同図に示すように、入力セレクタ部５は、演算器Ａ〜Ｃの各々の一方のソースオペランドを選択するためのセレクタ（ｍｕｘａ〜ｍｕｘｃ）から構成される。入力セレクタ部５の各セレクタ（ｍｕｘａ〜ｍｕｘｃ）は、レジスタファイル部４から供給されるデータと、各セレクタの出力が接続された演算器とは異なる、他の２つの演算器の演算結果を入力とし、組合せ制御部３からの制御信号（ｃａ  〜ｃｃ）に基づいて入力データの選択を行う。各セレクタは、制御信号が０である場合に、一番左側のデータを選択し、制御信号が１である場合に、真ん中のデータを選択し、制御信号が２である場合に、一番右側のデータを選択する。
なお、入力セレクタ部６の構成も上記と同様である。
【００２０】
また、入力セレクタ部５の各セレクタ（ｍｕｘａ〜ｍｕｘｃ）は、前述の、各セレクタの出力が接続された演算器とは異なる演算器の演算結果を入力とする際に、一旦専用のレジスタに格納した値を用いても構わない。入力セレクタ部５には、図３に示す演算器Ａ〜Ｃの演算結果を格納するレジスタ（図示は省略）をそれぞれに設け、各セレクタ（ｍｕｘａ〜ｍｕｘｃ）は、それらのレジスタからのデータと、レジスタファイル部４から供給されるデータとを入力として、組合せ制御部３からの制御信号（ｃａ〜ｃｃ）に基づいて入力データの選択を行う。
組合せ制御部３は、命令語グループ内の各命令語のオペコード（ｏｐｃ）と、組合せ指示フラグ１１とを基に、図３に示す入力セレクタ部５のセレクタ（ｍｕｘａ〜ｍｕｘｃ）への制御信号（ｃａ〜ｃｃ）を生成する。
【００２１】
図４は、図２に例示する命令形式を使用する場合に、組合せ制御部３が、入力セレクタ部５に向けて出力する制御信号の生成ルールを示す説明図である。
同図に示すように、組合せ指示フラグが非アクティブ（０）である場合には、命令グループ内での命令語の並びに関わらず、セレクタへの制御信号（ｃａ〜ｃｃ）は０，０，０とし、各命令語を独立に実行する。一方、組合せ指示フラグがアクティブ（１）である場合には、命令グループ内での命令語の並びに基づいてセレクタへの制御信号（ｃａ〜ｃｃ）を生成し、図４の「命令語の実行順序」に示す順序で、命令語の組み合わせを行う。但し、「命令語の実行順序」における「Ｘ→Ｙ→Ｚ」の表記は、命令語Ｘの実行結果を命令語Ｙの入力とし、命令語Ｙの実行結果を命令語Ｚの入力とすることを意味する。
なお、入力セレクタ部６への制御信号の生成も上記と同様にして行われる。
【００２２】
図５は、本発明の第１の実施形態に係る情報処理装置において用いられる他の命令形式の１例を示す説明図である。
同図に例示する他の命令形式は、各々３つの命令語から成る２つの命令語グループを備えて構成される。各命令語は、命令語グループ内の直前の命令語との組合せを指示する組合せ指示フラグ１２と、実行する演算の種類を指定するオペコード（ｏｐｃ）と、演算の対象データを指定するソースオペランド（ｓｒｃ１，ｓｒｃ２）と、演算結果の保存先を指定するデスティネーション（ｄｓｔ）とを備えて構成される。
図５に例示する他の命令形式では、２個のソースオペランド（ｓｒｃ１，ｓｒｃ２）  と、１個のデスティネーション（ｄｓｔ）とを有する命令形式の１例を示したが、本発明に係る情報処理装置の命令形式は、必ずしもこのような構成に限るものではなく、例えば、ソースオペランドやデスティネーションの数は、０個や３個であっても構わない。また、命令形式に、別のフィールド（  即値など）  を備える構成としても構わない。さらに、図５に示す命令形式でのオペコード（ｏｐｃ）とソースオペランド（ｓｒｃ１，ｓｒｃ２）とデスティネーション（ｄｓｔ）と組合せ指示フラグ１２の順序は、必ずしもこの限りではなくても構わない。
【００２３】
図１に示す情報処理装置では、前述のとおり、図５に示す他の命令形式の命令を、命令フェッチ部１がフェッチする。また、フェッチされた命令に含まれる各命令語のオペコード（ｏｐｃ）と組合せ指示フラグ１２は、組合せ制御部３に送られ、組合せ制御部３において、入力セレクタ部５及び入力セレクタ部６への制御信号が生成される。図１に示す構成では、組合せ制御部３に向けた、命令語のオペコード（ｏｐｃ）及び組合せ指示フラグ１２の供給を、命令フェッチ部１が行う構成としているが、命令デコード部２が上記と同様の動作をしても構わない。
以下、図５に例示する他の命令形式を使用する場合において、入力セレクタ部５の構成と、組合せ制御部３が生成する入力セレクタ部５への制御信号について説明する。
図５に例示する他の命令形式を使用する場合、図３に示す入力セレクタ部５の構成は、図２に例示する命令形式を使用する場合の構成と同様である。また、各セレクタ（ｍｕｘａ〜ｍｕｘｃ）は、各セレクタの出力が接続された演算器とは異なる、他の２つの演算器の演算結果を入力とする際に、一旦専用のレジスタに格納した値を用いても構わない点も、図２に例示する命令形式を使用する場合と同様である。
但し、図５に例示する他の命令形式を使用する場合、組合せ制御部３は、命令語グループ内の各命令語のオペコード（ｏｐｃ）と、各命令語に付与された組合せ指示フラグ１２とを基にして、図５のセレクタ（ｍｕｘａ〜ｍｕｘｃ）への制御信号（ｃａ〜ｃｃ）を生成する。
【００２４】
図６は、図５に例示する他の命令形式を使用する場合に、組合せ制御部３が、セレクタ部５に向けて出力する制御信号の生成ルールを示す説明図である。
同図において、組合せ指示フラグ（ｘ，ｙ，ｚ）の表記は、命令語グループ内における一番左側の命令語の組合せ指示フラグ１２をｘに、真ん中の組合せ指示フラグ１２をｙに、一番左側の命令語の組合せ指示フラグ１２をｚに記載する。
命令語グループ内の各命令語の組合せ指示フラグ１２の値が全て非アクティブ（０）である場合には、命令グループ内での命令語の並びに関わらず、セレクタへの制御信号（ｃａ〜ｃｃ）は０，０，０とし、各命令を独立に実行する。
また、命令語グループ内で、２番目及び３番目の命令語の組合せ指示フラグ１２の値が非アクティブ（１）である場合には、図４に例示する命令語形式を使用する場合と同様となる。
【００２５】
一方、命令語グループ内で、２番目及び３番目の命令語の組合せ指示フラグ１２の一方の値がアクティブ（１）である場合には、図６に例示するように、命令語の並びに基づいてセレクタへの制御信号（ｃａ〜ｃｃ）を生成し、図６に例示する命令語の実行順序に示す順序で、命令語の組み合わせを行う。但し、図６に例示する命令語の実行順序における「Ｘ→Ｙ、Ｚ」の表記は、命令語Ｘの実行結果を命令語Ｙの入力とし、命令語Ｚは独立に実行することを意味する。
この実施形態によれば、命令語グループ内の命令語を組み合わせて実行する際に、命令語グループ内での命令語の組合せ順序を指示するフィールドを設けることなく、命令語グループ内での命令語の組合せ順序を指示することが可能となるので、命令コードのビット幅が大きくなることを防ぐことができる効果が有る。
【００２６】
〔第２の実施形態〕
本実施形態に係る情報処理装置は、３つの演算器から構成される２つの命令語グループを持ち、組合せ指示フィールドに基づき、それぞれの命令語グループ内の命令語の組合せ実行を行う。また、命令語グループに含まれない他の命令語を２つ実行することができる。
図７は、本発明の第２の実施形態に係る情報処理装置の全体構成を示す構成図である。
ここでは、図１に示す本発明の第１の実施形態に係る情報処理装置の全体構成と同じ構成要素には同一の符号を附し、構成上の説明を省略する。
同図に示すように、本実施形態に係る情報処理装置は、前述の図１に示す情報処理装置の構成に加えて、２つの命令語グループに含まれない２つの他の命令語を実行するための演算器Ｘ，Ｙと、演算器Ａ〜Ｆ及び演算器Ｘ，Ｙからの演算結果を選択し、選択結果をレジスタファイル部４へ供給する出力セレクタ７及び出力セレクタ８と、を備える。
演算器Ｘ，Ｙを増やした反面、レジスタファイル部４からの読み出しポート数及び書き込みポート数の方は増やしていない。
【００２７】
この実施形態では、命令語グループを構成する演算器の個数を３つ、命令語グループの数を２つ、命令語グループに含まれない命令語の数を２つとしているが、本発明は、一般に、必ずしも、このような構成に限定されるものではない。また、近年の情報処理装置と同様に、動作周波数の向上を実現するために、複数のパイプラインステージから成る構成であっても構わない。さらに、図７では、命令フェッチ部１から演算器までを一連のサイクルとする構成を図示しているが、これを複数のパイプラインステージに分割した実装であっても構わない。
【００２８】
図８は、図７に示す情報処理装置において用いられる命令語形式の１例を示す説明図である。
同図に示す命令語形式は、３つの命令語からなる２つの命令語グループと、命令語グループに含まれない２つの命令語（命令語Ｘ，Ｙ）と、各命令語グループ内の命令語の組合せを指示する組合せ指示フラグ１３とから構成される。
また、各命令語は、実行する演算の種類を指定するオペコード（ｏｐｃ）、演算の対象データを指定するソースオペランド（ｓｒｃ１，ｓｒｃ２）、及び演算結果の保存先を指定するデスティネーション（ｄｓｔ）から構成される。
図８では、２個のソースオペランド（ｓｒｃ１，ｓｒｃ２）、１個のデスティネーション（ｄｓｔ）を持つ命令語形式の１例を示したが、本発明は、一般に、必ずしもこのような命令語形式に限定されるものではない。また、ソースオペランドやデスティネーションの数は、０個や３個であっても構わない。
さらに、この命令語形式には、他のフィールド（即値など）を含めても構わない。また、図８に示す命令語形式内における、命令グループ、組合せ指示フラグ、及び命令グループに含まれない２つの命令語の順序については、本発明では、一般に、この限りではない。
【００２９】
図７に示す情報処理装置では、図８に示す命令語形式の命令を命令フェッチ部１がフェッチする。このフェッチされた命令に含まれる各命令語のオペコード（ｏｐｃ）と、組合せ指示フラグ１３とは、組合せ制御部３に送られ、組合せ制御部３において、入力セレクタ部５、入力セレクタ部６、出力セレクタ部７、出力セレクタ部８へ出力する制御信号が生成される。
なお、図７に示す情報処理装置では、組合せ制御部３に向けた、命令語のオペコード（ｏｐｃ）と組合せ指示フラグ１３の供給を、命令フェッチ部１が行っているが、命令デコード部２が上記と同様の動作をしても構わない。
以下では、入力セレクタ部５と出力セレクタ部７の構成と、組合せ制御部３が生成する入力セレクタ部５と出力セレクタ７への制御信号とについて説明する。
【００３０】
図９は、入力セレクタ部５と出力セレクタ７の詳細構成を示すブロック図である。
同図に示す入力セレクタ部５は、前述の図３に示す入力セレクタ部１を拡張した構成である。具体的には、前述の図３に示した入力セレクタ部５に対して、２つの追加セレクタ（ｍｕｘｘ０，ｍｕｘｘ１）を追加している。追加セレクタは、演算器Ａ〜Ｃのセレクタ（ｍｕｘａ〜ｍｕｘｃ）に接続されたソースオペランドを入力とし、組合せ制御部３からの制御信号（ｃｘ０〜ｃｘ１）に基づいて入力データの選択を行う。この追加したセレクタは、制御信号が０である場合に、一番左側のデータを選択し、制御信号が１である場合に、真ん中のデータを選択し、制御信号が２である場合に、一番右側のデータを選択する。
なお、入力セレクタ部６も上記と同様の構成である。
【００３１】
なお、追加したセレクタ（ｍｕｘｘ０，ｍｕｘｘ１）は、演算器Ａ〜Ｃのセレクタ（ｍｕｘａ〜ｍｕｘｃ）に接続されたソースオペランドを入力とする際に、一旦専用のレジスタに格納した値を用いても構わない。図９における、演算器Ａ〜Ｃのセレクタ（ｍｕｘａ〜ｍｕｘｃ）に接続されたソースオペランドを格納するレジスタを、各々に設け、追加セレクタ（ｍｕｘｘ０，ｍｕｘｘ１）は、それらのレジスタからのデータを、組合せ制御部３からの制御信号（ｃｘ０，ｃｘ１）に基づいて入力データの選択を行うものとする。
組合せ制御部３は、命令語グループ内の各命令語のオペコード（ｏｐｃ）と、組合せ指示フラグ１３を基に、図９に示すセレクタ（ｍｕｘａ〜ｍｕｘｃ）への制御信号（ｃａ〜ｃｃ）と、追加したセレクタ（ｍｕｘｘ０，ｍｕｘｘ１）への制御信号（ｃｘ０，ｃｘ１）とを生成する。
【００３２】
図１０は、組合せ制御部３が、入力セレクタ部５へ生成する制御信号の生成ルールと、出力セレクタ部７へ生成する制御信号の生成ルールとを示す説明図である。
組合せ指示フラグ１３の値が非アクティブ（０）である場合には、命令グループ内での命令語の並びに関わらず、セレクタへの制御信号（ｃａ〜ｃｃ）は０，０，０となる。また、追加セレクタへの制御信号（ｃｘ０，ｃｘ１）は「Ｄｏｎ’ｔ  ｃａｒｅ  」となる。一方、組合せ指示フラグ１３の値がアクティブ（１）である場合には、命令グループ内での命令語の並びに基づいてセレクタへの制御信号（ｃａ  〜ｃｃ）を生成し、図１０の命令語の実行順序に示す順序で、命令語の組み合わせを行う。但し、命令語の実行順序における「Ｘ→Ｙ→Ｚ」の表記は、命令語Ｘの実行結果を命令語Ｙの入力とし、命令語Ｙの実行結果を命令語Ｚの入力とすることを意味する。その際、レジスタファイルから演算器Ａ〜Ｃへ供給されるソースオペランドのうち、命令語の組合せにより、演算器Ａ〜Ｃの実行に不要となったソースオペランドを、追加セレクタ（ｍｕｘｘ０，ｍｕｘｘ１）が選択することにより、演算器Ｘへのソースオペランドの供給を実現する。
【００３３】
なお、入力セレクタ部６への制御信号の生成も上記と同様にして行われる。
一方、図９に示す出力セレクタ部７は、演算器Ａ及び演算器Ｂにおいて、それらの演算結果と、演算器Ｘの演算結果とを選択し、レジスタファイル部４へ供給する。組合せ制御部３からの制御信号（ｃｘ２，ｃｘ３）に基づき、入力データの選択を行う。出力セレクタは、制御信号が０である場合に、一番左側のデータを選択し、制御信号が１である場合に、一番右側のデータを選択する。
なお、出力セレクタ部８の構成についても上記と同様の構成とする。
また、図９では、出力セレクタ部７及び出力セレクタ部８の構成として、演算器Ａ及び演算器Ｂにおいて、それらの演算結果と、演算器Ｘの演算結果とを選択する構成としているが、演算器Ｂや演算器Ｃにおいて、それらの演算結果と、演算器Ｘの演算結果を選択するなどの構成にしても構わない。
【００３４】
組合せ指示フラグ１３が非アクティブ（０）である場合には、命令グループ内での命令語の並びに関わらず、出力セレクタへの制御信号（ｃｘ２，ｃｘ３）は０，０となる。一方、組合せ指示フラグ１３がアクティブ（１）である場合には、命令グループ内での命令語の並びに基づいて出力セレクタへの制御信号（ｃｘ２〜ｃｘ３）を生成する。その際に、命令語の組合せにより、演算結果をレジスタファイルへ供給することが不要となった演算器の結果と、演算器Ｘの演算器結果を出力セレクタへの入力とし、演算器Ｘの演算器結果を選択することにより、演算器Ｘの演算結果をレジスタファイルへ供給することを可能とする。
なお、入力セレクタ部６への制御信号の生成も上記と同様である。
【００３５】
この実施形態によれば、命令語グループ内の命令語を組み合わせて実行する際に、命令語グループ内での演算で使用されないレジスタファイルの読み出しポート及び書き込みポートを、命令語グループに含まれない命令語の演算で利用することができる。これにより、新たなレジスタファイルの読み出しポートと書き込みポートを追加することなく、新たな命令語の実行を追加することが可能となる効果が有る。
【００３６】
〔第３の実施形態〕
本発明の第３の実施形態に係る情報処理装置の構成は、本発明の第２の実施形態に係る情報処理装置の構成（図７参照）と同じであり、使用する命令語形式だけが異なるものであるので、以下では、使用する命令語形式を中心に説明する。
図１１は、本発明の第３の実施形態に係る情報処理装置が使用する命令語形式の１例を示す説明図である。
同図に示す命令語形式は、３つの命令語からなる２つの命令語グループと、命令語グループに含まれない２つの命令語（命令語Ｘ，Ｙ）と、各命令語グループ内の命令語の組合せを指示する組合せ指示フラグ１４とから構成される。
命令語グループに含まれる命令語は、実行する演算の種類を指定するオペコード（ｏｐｃ）、演算の対象データを指定するソースオペランド（ｓｒｃ１，ｓｒｃ２）、及び演算結果の保存先を指定するデスティネーション（ｄｓｔ）から構成される。
【００３７】
一方で、上記の命令語グループに含まれない命令語である２つの命令語（命令語Ｘ，Ｙ）は、実行する演算の種類を指定するオペコード（ｏｐｃ）のみから構成される。
図１１に示す命令語は、２個のソースオペランド（ｓｒｃ１，ｓｒｃ２）、１個のデスティネーション（ｄｓｔ）を有する命令語形式の例を示したが、本発明は、必ずしもこれに限るものではない。ソースオペランドやデスティネーションの数は、０個や３個であっても構わない。
また、命令語形式に、別のフィールド（即値など）を含めても構わない。
さらには、図１１に示す命令語形式内における、命令グループ、組合せ指示フラグ、及び命令グループに含まれない２つの命令語の順序は、必ずしも、上記の限りではない。
【００３８】
図１１に示す命令語を使用する情報処理装置における、入力セレクタ部５及び出力セレクタ７の詳細構成は、前述の第２の実施形態に係る情報処理装置（図７）の入力セレクタ部５及び出力セレクタ７の詳細構成（図９参照）と同様である。また、組合せ制御部３が生成する入力セレクタ部５と出力セレクタ７への制御信号の生成方法を示すルールについても、前述の第２の実施形態に係る情報処理装置の制御信号の生成方法を示すルール（図１０）と同様であるため、ここでは、その説明を省略する。
但し、前述の第２の実施形態と同様に、本実施形態では、組合せ指示フラグ１４（図１１）がアクティブ（１）である場合のみ、命令語グループに含まれない命令語（命令語Ｘ，Ｙ）が実行されはするが、その一方で、組合せ指示フラグ１４がアクティブ（１）である場合には、命令語の組合せを行う命令語グループ内の命令語において、利用しない命令フィールドが生じることになる。
【００３９】
以下、図１１に示す命令語形式において、命令語グループ１内の命令語を、命令語Ａ→命令語Ｂ→命令語Ｃと、組み合わせて実行する場合を１例にして、利用しない命令フィールドについて説明する。
図１２は、図１１に示す命令語形式の命令語の命令フィールドの展開方法を示す説明図である。
本実施形態に係る情報処理装置では、図１２に示すように、命令語グループ１内の命令語の命令フィールドの内で、命令語を組み合わせて実行することにより、４つの命令フィールドを利用しないことが分かる。
そこで、これら４つの命令フィールドを、命令語グループに含まれない命令語（命令語Ｘ，Ｙ）の命令フィールドとして利用する。具体的には、命令語グループ１内で、ソースオペランドとして利用しない２つの命令フィールド（ｓｒｃ１−Ｂ，ｓｒｃ１−Ｃ）を、命令語グループ１に含まれない命令語（命令語Ｘ）の２つのソースオペランドを示す命令フィールド（ｓｒｃ１−Ｘ，ｓｒｃ２−Ｘ）として利用する。
【００４０】
また、命令語グループ１内で、デスティネーションとして利用しない２つの命令フィールド（ｄｓｔ−Ａ，ｄｓｔ−Ｂ）の一方を、命令語グループ１に含まれない命令語（命令語Ｘ）のデスティネーションを示す命令フィールド（ｄｓｔ−Ｘ）として利用する。
図１２に示す命令フィールドの展開方法では、ソースオペランドとして利用しない２つの命令フィールド（ｓｒｃ１−Ｂ，ｓｒｃ１，ｃ）を、命令語グループ１に含まれない命令語（命令語Ｘ）の２つのソースオペランドを示す命令フィールド（ｓｒｃ１−Ｘ，ｓｒｃ２−Ｘ）とし、デスティネーションとして利用しない２つの命令フィールド（ｄｓｔ−Ａ，ｄｓｔ−Ｂ）の一方を、命令語グループ１に含まれない命令語（命令語Ｘ）のデスティネーションを示す命令フィールド（ｄｓｔ−Ｘ）として使用しているが、一般に、本発明は、使用しない命令フィールドの使用方法については、この限りではない。
【００４１】
なお、ソースオペランドとして利用しない２つの命令フィールド（ｓｒｃ１−Ｂ，ｓｒｃ１，ｃ）を、命令語グループ１に含まれない命令語（命令語Ｘ）のデスティネーションとしても構わないし、デスティネーションとして利用しない２つの命令フィールド（ｄｓｔ−Ａ，ｄｓｔ−Ｂ）を、命令語グループ１に含まれない命令語（命令語Ｘ）のソースオペランドとしても構わない。
また、命令語グループ１内で、利用しなかった４つの命令フィールドの内、命令語グループ１に含まれない命令語（命令語Ｘ）のソースオペランド及びデスティネーションを示す命令フィールドとして利用しなかった１つの命令フィールドを、命令語Ｘの機能を更に拡張するために利用することも可能である。
さらに、利用しなかった１つの命令フィールドを、命令語Ｘのオペコードを表現するために利用することも可能である。
【００４２】
この実施形態によれば、命令語グループ内の命令語を組み合わせて実行する際に、命令語グループ内の命令語で利用されない命令フィールドを、命令語グループに含まれない命令語を表現するための命令フィールドとして利用することができるので、新たな命令フィールドを追加することなく、新たな命令語の実行を追加することが可能となる効果が有る。
【００４３】
〔第４の実施形態〕
本発明の第４の実施形態に係る情報処理装置の構成は、本発明の第２の実施形態に係る情報処理装置の構成（図７参照）とほぼ同様であり、使用する命令語形式だけが異なるものであるので、以下では、使用する命令語形式の相違点を主体に説明する。
図１３は、本発明の第４の実施形態に係る情報処理装置が使用する命令語形式の１例を示す説明図である。
図１３に示す命令語形式では、命令語グループに含まれない命令語（命令語Ｘ，Ｙ）のオペコードの一部が、命令語グループ内の命令語の組合せを指示する組合せ指示フラグ１５として設けられる。
【００４４】
図１４は、図１３に示す命令語形式の命令語のオペコードの割り当て方法を示す説明図である。
同図では、前述のとおり、オペコード（Ｏｐｃｏｄｅ）の最上位ビット（ＭＳＢ）が、組合せ指示フラグ１５として利用されることが示されている。この命令語グループに含まれる命令語のオペコードには、最上ビットが０となるように命令種類の割り当てを行い、命令語グループに含まれない命令語のオペコードには、最上ビットが１となるように命令種類の割り当てを行う。
前述の第３の実施形態と同様に、命令語グループ内の命令語の組合せを行う場合のみ、命令語グループに含まれない命令語の実行を行うことができる。即ち、命令語の組合せを行うことと、命令語グループに含まれない命令語の実行を行うこととは同時に実現させる必要があるため、それらを表現するフィールドを共通化することができる。より具体的には、組合せ指示フラグ１５と、命令語グループに含まれない命令語の実行を示すフィールドとを共通化できる。
また、ここでは、組合せ指示フラグ１５をオペコードの最上位ビットと共通化しているが、本発明では、一般に、組合せ指示フラグ１５と共通化する対象は最下位ビットであったり、オペコードの中間のビットであっても構わない。
【００４５】
この実施形態によれば、命令語グループ内の命令語を組み合わせて実行する際に、命令語の組合せ指示フラグ１５と、命令語グループに含まれない命令語の実行を示すオペコードのフィールドとを共通化できる。これにより、組合せ指示フラグ用の命令フィールドを追加することなく、新たな命令語の実行を追加することが可能となる効果が有る。
なお、本発明に係る情報処理装置は、前述の各実施形態に限定されることはなく、本発明の技術的範囲に属する限り、他の様々な実施形態を取ることができる。
【００４６】
本発明によれば、複数の命令語から構成される命令語グループ毎に、命令語の組合せを指示することにより、命令語の自由な組合せを、低コストに実現できる。また、命令語の組合せを行う際に、利用されないレジスタファイルの読み出し及び書き込みポートを有効利用することにより、低コストに、同時実行可能な命令数を増やすことが可能となる。
【００４７】
本発明は、ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）タイプの情報処理装置の構築に適用可能であり、特に、同時実行可能な命令数を低コストで増やすことができるＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）タイプの情報処理装置の構築に好適である。
【符号の説明】
【００４８】
１  命令フェッチ部
２  命令デコーダ部
３  組合せ制御部
４  レジスタファイル部
５，６  入力セレクタ部
７，８  出力セレクタ部
１１〜１５  組合せ指示フラグ
Ａ〜Ｆ，Ｘ，Ｙ  演算器
【図１】
2011145886.tif 000003
【図２】
2011145886.tif 000004
【図３】
2011145886.tif 000005
【図４】
2011145886.tif 000006
【図５】
2011145886.tif 000007
【図６】
2011145886.tif 000008
【図７】
2011145886.tif 000009
【図８】
2011145886.tif 000010
【図９】
2011145886.tif 000011
【図１０】
2011145886.tif 000012
【図１１】
2011145886.tif 000013
【図１２】
2011145886.tif 000014
【図１３】
2011145886.tif 000015
【図１４】
2011145886.tif 000016
【図１５】
2011145886.tif 000017
【図１６】
2011145886.tif 000018