(57)【特許請求の範囲】
【請求項１】
同時に動作可能な複数の実行ユニットを備える情報処理装置において、同時に解読した複数の命令を前記複数の実行ユニットへ給送するのを制御する構成として、
同時解読中の複数個の命令の中から前記実行ユニットを必要とする命令を検出する必要命令検出手段と、
解読済み命令を一時記憶する命令格納手段と、
前記命令格納手段における有効命令を検出する有効命令検出手段と、
前記有効命令検出手段が検出した有効命令数と空いている前記実行ユニット数との大小関係に応じて、前記必要命令検出手段が検出した前記実行ユニットを必要とする解読中命令の一部を空いている実行ユニットへ給送し、実行ユニットが割り当てられないため給送できなかった解読中命令を前記命令格納手段へ給送して格納させることを行う給送制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
同時に動作可能な複数の実行ユニットを備える情報処理装置において、同時に解読した複数の命令を前記複数の実行ユニットへ給送するのを制御する構成として、
同時解読中の複数個の命令の中から前記実行ユニットを必要とする命令を検出する必要命令検出手段と、
解読済み命令を一時記憶する命令格納手段と、
解読処理する複数個の命令のそれぞれについての処理状況が設定される処理状況テーブルと、
前記処理状況テーブルを参照して同時解読中の複数個の命令のうちでオペランドが参照可能な命令を検出する参照可能命令検出手段と、
前記必要命令検出手段が検出した実行ユニットを必要とする解読中命令のうちで、前記参照可能命令検出手段が検出したオペランドが使用可能な命令を空いている実行ユニットへ給送し、オペランドが参照可能でないため実行ユニットへ給送できなかった命令を前記命令格納手段へ給送して格納させる給送制御手段と
を備えることを特徴とする情報処理装置。
【請求項３】
同時に動作可能な複数の実行ユニットを備える情報処理装置において、同時に解読した複数の命令を前記複数の実行ユニットへ給送するのを制御する構成として、
同時解読中の複数個の命令の中から前記実行ユニットを必要とする命令を検出する必要命令検出手段と、
解読処理する複数個の命令のそれぞれについての処理状況が設定される処理状況テーブルと、
前記処理状況テーブルを参照して同時解読中の複数個の命令のうちでオペランドが参照可能な命令を検出する参照可能命令検出手段と、
解読済み命令を一時記憶する命令格納手段と、
前記必要命令検出手段が検出した実行ユニットを必要とする解読中命令のうちで、前記参照可能命令検出手段が検出したオペランドが参照可能な命令を空いている実行ユニットへ給送し、オペランドが参照可能でないため実行ユニットへ給送できなかった命令を前記命令格納手段へ給送して格納させる給送手段する第１給送制御手段と、
前記第１給送制御手段が解読済み命令を命令格納手段へ給送する際にその解読済み命令のオペランドの参照可否を前記命令格納手段に登録する登録手段と、
前記命令格納手段における解読済み命令のうちでオペランドが参照可能な命令を実行ユニットへ給送する第２給送制御手段と、
前記命令格納手段における解読済み命令のうちで有効かつオペランドが参照可能な命令を検出する命令検出手段と、
前記命令格納手段における解読済み命令のうちで前記命令検出手段が検出した命令数と空いている前記実行ユニット数との大小関係に応じて、命令格納手段における有効かつ参照可能命令の全てを実行ユニットへ給送すること、有効かつ参照可能命令の一部を空いている実行ユニットへ給送することを行う第３給送制御手段と
を備えることを特徴とする情報処理装置。
【請求項４】
請求項１乃至請求項３の何れか１項に記載の情報処理装置において、
前記複数の実行ユニットは、異なった処理を行う複数種類の実行ユニットグループからなり、
前記必要命令検出手段は、実行ユニットを必要とする命令を実行ユニットグループ毎に検出する
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、同時に動作可能な複数の実行ユニットを備え、複数命令の同時解読及び実行を行う情報処理装置に係り、特に同時解読する複数命令の実行ユニットへの給送（以下「ディスパッチ」という）を制御する命令制御方式の改良に関する。
複数命令の同時解読及び実行を行う情報処理装置では、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎ−ｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）方式の計算機を用いるものと、ＣＩＳＣ（Ｃｏｍｐｌｅｘ  Ｉｎ−ｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）方式の計算機を用いるものとがある。
ＣＩＳＣ方式は、互換性や機能の拡張に柔軟に対応すべく複雑な命令セットを備えるもので、進歩の激しいハードウェア技術を柔軟に取り入れることを可能にする。一方、ＲＩＳＣ方式は、プログラムは高級言語で書かれることを前提としこれを効率よく実行することのできるアーキテクチュアとして提案されたものであり、その命令セットはもっとも頻繁に使用される命令だけに限定して実現し、他の機能はこの限定された命令を組合せて実行することで高速処理を実現する。これらの相違は、ＲＩＳＣ方式とＣＩＳＣ方式とで実現される命令処理サイクルがそれぞれ異なることを示している。
【０００２】
【従来の技術】
図１５は、ＲＩＳＣ方式の命令セットを備える情報処理装置の構成例である。ＲＩＳＣ方式の命令セット・アーキテクチュアでは、実行ユニットのオペランドは、通常レジスタ同士であり、メモリアクセスが生ずるのは、ロード／ストア命令に限られる。
【０００３】
したがって、このＲＩＳＣ方式の命令セットを実施する構成は、例えば図１５に示すように、複数の命令レジスタ２００と、命令格納手段２０１と、制御部２０２と、同時に動作可能な複数の実行ユニット２０３とを備え、制御部２０２は図１５に示すように、解読サイクルＤ１とディスパッチサイクルＤ２と命令実行サイクルＥとからなる３つのサイクルのそれぞれにおいて対応する制御動作を行うことになる。
【０００４】
解読サイクルＤ１では、複数の命令レジスタ２００にそれぞれ取り込んだ複数命令を同時に解読する。ディスパッチサイクルＤ２では、解読した命令それぞれを命令格納手段２０１に格納し、また命令格納手段２０１から解読済みの複数命令を取り出し複数の実行ユニット２０３へディスパッチする。命令実行サイクルＥでは、複数の実行ユニットにおいて命令の同時実行が行われる。
【０００５】
次に、図１６は、ＣＩＳＣ方式の命令セットを備える情報処理装置の構成例である。ＣＩＳＣ方式の命令セット・アーキテクチュアでは、実行ユニットのオペランドは、通常レジスタとメモリオペランドであり、メモリアクセスは、一般的な命令で高頻度に現れる。メモリオペランドを求めるためには、アドレス計算及びメモリアクセスが必要となり、レジスタオペランドを求めるよりも多くのクロック数を必要とする。
【０００６】
したがって、このＣＩＳＣ方式の命令セットを実施する構成は、例えば図１６に示すように、複数の命令レジスタ３００と、命令格納手段３０１と、２つの制御部３０２，３０３と、性格が異なる実行ユニット３０４，３０５とを備える。因みに、実行ユニット３０４は、アドレス加算器とキャッシュメモリとで構成され、実行ユニット３０５は、演算器で構成される。
【０００７】
命令処理サイクルは、図１６に示すように、解読サイクルＤ１とディスパッチサイクルＤ２と２つの命令実行サイクルＥ１，Ｅ２とからなり、制御部３０２，３０３は、解読サイクルＤ１とディスパッチサイクルＤ２では同時並行して動作するが、命令実行サイクルＥ１とＥ２では、それぞれ異なる動作を行うことになる。
【０００８】
即ち、命令実行サイクルＥ１では、制御部３０３は、実行ユニット３０４を制御する。具体的には、制御部３０３は、ソースレジスタオペランドをアドレス加算器に与えてアドレス計算を実行させ、その結果でキャッシュメモリをアクセスしてメモリオペランドを取り出す。そして、その後の命令実行サイクルＥ２で制御部３０２は、実行ユニット３０５を制御する。具体的には、制御部３０２は、実行ユニット３０５にソースオペランド（レジスタオペランド）を与え、それと実行ユニット３０４のフェッチデータ（メモリオペランド）との間での演算を実行させる。
【０００９】
【発明が解決しようとする課題】
ＣＩＳＣ方式の命令セットは、拡張性に富むので、有用であるが、以上のように、ＣＩＳＣ方式での命令処理サイクルは、ＲＩＳＣ方式での命令処理サイクルよりも１サイクル多いので、それだけ高速性に欠けることになる。
本発明の目的は、複数命令の同時解読及び実行を行うことにより命令処理を高速に実行する情報処理装置において、ＣＩＳＣ方式の命令セットのように複雑な命令セットを実現する命令処理サイクルを、ＲＩＳＣ方式での命令処理サイクルと同数のサイクル数とすることができる命令制御方式を提供することにある。
【００１０】
【課題を解決するための手段】
図１は、請求項１に記載の発明の原理ブロック図である。
請求項１に記載の発明は、同時に動作可能な複数の実行ユニット１を備える情報処理装置において、同時に解読した複数の命令２を複数の実行ユニット１へ給送するのを制御する構成として、同時解読中の複数個の命令２の中から実行ユニット１を必要とする命令を検出する必要命令検出手段３と、解読済み命令を一時記憶する命令格納手段４と、命令格納手段４における有効命令を検出する有効命令検出手段５と、有効命令検出手段５が検出した有効命令数と空いている実行ユニット数の大小関係に応じて、必要命令検出手段が検出した実行ユニットを必要とする解読中命令の一部を空いている実行ユニット１へ給送し、実行ユニット１が割り当てられないため給送できなかった解読中命令を命令格納手段４へ給送して格納させることを行う給送制御手段６とを備えることを特徴とする。
【００１１】
即ち、請求項１に記載の発明では、解読サイクルにおいて、必要命令検出手段３が、同時解読中の複数個の命令２の中から実行ユニット１を必要とする命令を検出すると共に、有効命令検出手段５が、前回の命令処理サイクルで命令格納手段４に格納した解読済み命令の中で有効な命令を検出する。
そして、給送制御手段６が、空いている必要実行ユニット数と有効命令検出手段５が検出した有効命令数との大小関係を判断し、空いている実行ユニット数よりも有効命令が多いときは、即ち実行ユニット１が空いていないときは、解読中命令の全てを命令格納手段４に給送して格納させる。一方、空いている必要実行ユニット１の数よりも有効命令が少ないときは、即ち実行ユニット１に空きがあるときは、解読中命令の一部を空いている実行ユニット１へ給送し、実行ユニット１が割り当てられないため給送できなかった解読中命令を命令格納手段４へ給送して格納させる。
【００１２】
これにより、解読中命令を、命令格納手段へ給送する同じサイクル（ディスパッチサイクル）において並行して実行ユニットへ給送できるので、複雑な命令セットであっても高速処理が可能となる。
図２は、請求項２に記載の発明の原理ブロック図である。
請求項２に記載の発明は、同時に動作可能な複数の実行ユニット１を備える情報処理装置において、同時に解読した複数の命令２を複数の実行ユニット１へ給送するのを制御する構成として、同時解読中の複数個の命令２の中から実行ユニット１を必要とする命令を検出する必要命令検出手段３と、解読済み命令を一時記憶する命令格納手段４と、解読処理する複数個の命令２のそれぞれについての処理状況が設定される処理状況テーブル７と、処理状況テーブル７を参照して同時解読中の複数個の命令のうちでオペランドが参照可能な命令を検出する参照可能命令検出手段８と、必要命令検出手段３が検出した実行ユニット１を必要とする解読中命令のうちで、参照可能命令検出手段８が検出したオペランドが参照可能な命令を空いている実行ユニット１へ給送し、オペランドが参照可能でないため実行ユニット１へ給送できなかった命令を命令格納手段４へ給送して格納させる給送制御手段９とを備えることを特徴とする。
【００１３】
即ち、請求項２に記載の発明では、解読サイクルにおいて、必要命令検出手段３が、同時解読中の複数個の命令２の中から実行ユニット１を必要とする命令を検出すると共に、参照可能命令検出手段８が、処理状況テーブル７を参照して同時解読中の複数個の命令のうちでオペランドが参照可能な命令を検出すると、給送制御手段９が、必要命令検出手段３が検出した実行ユニット１を必要とする解読中命令のうちで、参照可能命令検出手段８が検出したオペランドが参照可能な命令を空いている実行ユニット１へ給送し、オペランドが参照可能でないため実行ユニット１へ給送できなかった命令を命令格納手段４へ給送して格納させる。
【００１４】
これにより、解読中命令を、命令格納手段へ給送する同じサイクル（ディパッチサイクル）において並行して実行ユニットへ給送できるので、複雑な命令セットであっても高速処理が可能となる。このとき、給送制御を解読中命令のオペランドの参照可否に基づき行うので、格納する解読済み命令の増加による処理の停滞が生ずる可能性を回避できる。
【００１５】
図３は、請求項３に記載の発明の原理ブロック図である。
請求項３に記載の発明は、同時に動作可能な複数の実行ユニット１を備える情報処理装置において、同時に解読した複数の命令２を複数の実行ユニット１へ給送するのを制御する構成として、同時解読中の複数個の命令の中から実行ユニットを必要とする命令を検出する必要命令検出手段３と、解読処理する複数個の命令のそれぞれについての処理状況が設定される処理状況テーブル７と、処理状況テーブル７を参照して同時解読中の複数個の命令のうちでオペランドが参照可能な命令を検出する参照可能命令検出手段８と、解読済み命令を一時記憶する命令格納手段４と、必要命令検出手段３が検出した実行ユニットを必要とする解読中命令のうちで、参照可能命令検出手段８が検出したオペランドが参照可能な命令を空いている実行ユニット１へ給送し、オペランドが参照可能でないため実行ユニットへ給送できなかった命令を命令格納手段４へ給送して格納させる給送手段する第１給送制御手段１０と、第１給送制御手段１０が解読済み命令を命令格納手段４へ給送する際にその解読済み命令のオペランドの参照可否を命令格納手段４に登録する登録手段１１と、命令格納手段４における解読済み命令のうちでオペランドが参照可能な命令を実行ユニットへ給送する第２給送制御手段１２と、命令格納手段４における解読済み命令のうちで有効かつオペランドが参照可能な命令を検出する命令検出手段１３と、命令格納手段１３における解読済み命令のうちで命令検出手段１３が検出した命令数と空いている前記実行ユニット数との大小関係に応じて、命令格納手段４における有効かつ参照可能命令の全てを実行ユニットへ給送すること、有効かつ参照可能命令の一部を空いている実行ユニットへ給送することを行う第３給送制御手段１４とを備えることを特徴とする。
【００１６】
即ち、請求項３に記載の発明では、解読サイクルにおいて、必要命令検出手段３が、同時解読中の複数個の命令２の中から実行ユニット１を必要とする命令を検出すると共に、参照可能命令検出手段８が、処理状況テーブル７を参照して同時解読中の複数個の命令のうちでオペランドが参照可能な命令を検出すると、第１給送制御手段１０が、必要命令検出手段３が検出した実行ユニット１を必要とする解読中命令のうちで、参照可能命令検出手段８が検出したオペランドが参照可能な命令を空いている実行ユニット１へ給送し、オペランドが参照可能でないため実行ユニット１へ給送できなかった命令を命令格納手段４へ給送して格納させる。
【００１７】
その際に、登録手段１１が、第１給送制御手段１０が命令格納手段４へ給送する解読済み命令のオペランドの参照可否を命令格納手段４に登録する。これにより、第２給送制御手段１２が、命令格納手段４における解読済み命令のうちでオペランドが参照可能な命令を実行ユニットへ給送する。
そして、第３給送制御手段１４が、命令検出手段１３が検出した命令数と空いている実行ユニット１の数とに応じて、命令格納手段４における有効かつ参照可能命令の全てを実行ユニットへ給送すること、有効かつ参照可能命令の一部を空いている実行ユニットへ給送することを行う。
【００１８】
これにより、解読中命令を、処理の停滞を招くことなく命令格納手段へ給送する同じサイクル（ディスパッチサイクル）において並行して実行ユニットへ給送できるので、複雑な命令セットであっても高速処理が可能となる。このとき、命令格納手段中の解読済み命令の給送制御をその解読済み命令の有効性とオペランドの参照可否に基づき行うので、給送制御を一層円滑かつ確実に行うことができる。
【００１９】
請求項４に記載の発明は、請求項１乃至請求項３の何れか１項に記載の情報処理装置において、複数の実行ユニット１は、異なった処理を行う複数種類の実行ユニットグループからなり、必要命令検出手段３は、実行ユニットを必要とする命令を実行ユニットグループ毎に検出することを特徴とする。
即ち、請求項４に記載の発明では、異なった処理を行う複数種類の実行ユニットグループについての給送制御を、請求項１乃至請求項３の何れか１項に記載の発明によって実現できる。
【００２０】
これにより、ＣＩＳＣ方式の命令セットが対象とする演算を、｛（解読）のサイクル｝と｛（ディスパッチ）＋（実行）のサイクル｝と｛（実行）のサイクル｝との３つのサイクルで処理でき、複雑な命令セットの高速処理が可能となる。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【００２２】
図４は、請求項１乃至請求項４に対応する実施形態の構成である。この実施形態の命令制御方式は、複数の命令レジスタ４０−１〜４０−ｎと、制御部４１と、格納レジスタ群４２と、複数の実行ユニット４３−１〜４３−ｍとを備える。制御部４１は、ある命令処理サイクルにおいて、複数の命令レジスタ４０−１〜４０−ｎから命令を受け取り、同時に解読すること（解読サイクルＤ１）、一定条件下に、解読した複数の命令を複数の実行ユニット４３−１〜４３−ｍと格納レジスタ群４２とに並行してディスパッチすること、そして、格納レジスタ群４２に格納される解読済みの命令を次の処理サイクルで実行ユニット４３−１〜４３−ｍと格納レジスタ群４２とに並行してディスパッチすること、を各サイクルで繰り返し行う。
【００２３】
即ち、制御部４１は、ＣＩＳＣ方式での命令処理サイクルにおけるディスパッチサイクルＤ２と命令実行サイクルＥ１とを並行して行い、命令実行サイクルＥ２をＲＩＳＣ方式における命令実行サイクルＥと同じタイミングで実行できるように命令のディスパッチを制御する。
これにより、ディスパッチサイクルＤ２において、そのディスパッチと並行してアドレス計算及びメモリアクセスが可能となり（命令実行サイクルＥ１）、その後ＲＩＳＣ方式における命令実行サイクルＥにおいて、レジスタオペランドとメモリオペランドとの演算を実行させ得ることになる（命令実行サイクルＥ２）。
【００２４】
つまり、この実施形態の命令制御方式では、ＣＩＣＳ方式で組まれた命令セットの処理を、ＲＩＳＣ方式で組まれた命令セットの処理と同じサイクル数で実現できることになる。
この実施形態は、「複数の実行ユニットを区別せずに扱う」第１実施形態と、「複数の実行ユニットを性格に応じてグループ化して扱う」第２実施形態とからなる。但し、説明の便宜から、実行ユニット数は、第１実施形態では２とし、第２実施形態では３としてある。また、同時解読命令数は、何れも３である。
【００２５】
〔第１実施形態・・請求項１に対応〕
図５は、第１実施形態の制御部４１の構成例である。この第１実施形態の制御部４１は、デコーダ５１と選択制御回路５２と選択回路５３とで構成される。なお、格納レジスタ群４２は、格納レジスタ群４２ａと表記する。
ＩＷＲ０，ＩＷＲ１，ＩＷＲ２は、それぞれ命令レジスタに設定された命令であるが、それぞれ、デコーダ５１と選択回路５３とに入力する。デコーダ５１は解読中の命令をデコードして実行ユニットを使用するか（つまり必要とするか）を検出し、その情報（実行ユニット必要有無）を選択制御回路５２に与える。
【００２６】
格納レジスタ群４２ａの２つの出力は、一方（格納済み命令の情報）が選択回路５３に与えられ、他方（有効性フラグ）が選択制御回路５２に与えられる。選択回路５３は、４つの入力を選択制御回路５２の出力に従って選択し、２つの実行ユニットＥＵ０，ＥＵ１と格納レジスタ群４２ａとに分配（ディスパッチ）する。
【００２７】
図６は、第１実施形態の格納レジスタ群４２ａの構成例である。図６に示すように、格納レジスタ群４２ａの各レジスタには、解読済みの命令（命令１、命令２・・）が格納されるが、格納の際に、命令のシーケンス番号（ＩＩＤ）と有効性ビット（Ｖａｌｉｄ  ｂｉｔ）が設定される。
有効性ビットは、命令がレジスタに格納されている間は、“１”である（有効）が、実行ユニットへ取り出されると“０”となる。即ち、図６では、命令１〜３が格納中の命令（有効命令）で、命令４が取り出された命令であることを示している。なお、シーケンス番号（ＩＩＤ）は、ここでは、特に関係しないので、説明を省略する。
【００２８】
この実施形態では、格納レジスタ群４２ａの各レジスタにおいて、第０レジスタをＲＥＳ０，第１レジスタをＲＥＳ１，第２レジスタをＲＥＳ２，第３レジスタをＲＥＳ３・・と表記する。また、有効性ビットをＶと表記し、Ｖ＝“１”を「＋」と表記し、Ｖ＝“０”を「−」と表記する。これが、この格納レジスタ群４２ａから選択制御回路５２に対して出力される有効性フラグの内容である。
【００２９】
具体的には、例えば、第０レジスタについての有効性フラグは、「＋ＲＥＳ０・Ｖ，−ＲＥＳ０・Ｖ」であり、第１レジスタについての有効性フラグは、「＋ＲＥＳ１・Ｖ，−ＲＥＳ１・Ｖ」であり、第２レジスタについての有効性フラグは、「＋ＲＥＳ２・Ｖ，−ＲＥＳ２・Ｖ」である。それぞれの場合に、高レベルとなる。
【００３０】
また、格納レジスタ群４２ａの各レジスタから選択回路５３へは、解読済み命令の他に、各解読済み命令の各種情報が与えられる。これは、実行ユニットにおいて命令の演算等に必要となるものである。この実施形態では、その一例として「ＯＰＥＣＯＤＥ」を取り上げる。具体的には、選択回路５３に対しては、例えば、第０レジスタの命令ついては「＋ＲＥＳ０・ＯＰＥＣＯＤＥ」が出力され、第１レジスタの命令については「＋ＲＥＳ１・ＯＰＥＣＯＤＥ」が出力される。
【００３１】
図７は、選択制御回路５２におけるＥＮＴＲＹ信号生成回路例である。このＥＮＴＲＹ信号生成回路は、格納レジスタ群４２ａに格納される有効な命令数を検出する回路である。
この実施形態では、図６に示したように、第０〜第３までの４つのレジスタを対象に考えている。したがって、格納レジスタ群４２ａからの入力（有効性フラグ）は、「＋ＲＥＳ０・Ｖまたは−ＲＥＳ０・Ｖ」、「＋ＲＥＳ１・Ｖまたは−ＲＥＳ１・Ｖ」、「＋ＲＥＳ２・Ｖまたは−ＲＥＳ２・Ｖ」、「＋ＲＥＳ３・Ｖまたは−ＲＥＳ３・Ｖ」の４種である。
【００３２】
ＮＡＮＤ７１には、−ＲＥＳ０・Ｖと−ＲＥＳ１・Ｖと−ＲＥＳ２・Ｖと−ＲＥＳ３・Ｖが入力する。即ち、ＮＡＮＤ７１は、第０〜第３までの４つのレジスタの何れにも有効命令が存在しない場合に出力を低レベルにする。これが、「−０  ＥＮＴＲＹ」の内容である。つまり、ＮＡＮＤ７１では、４つのレジスタの何れか１つにでも有効命令があれば、出力を高レベルにする。これは、図８のＡＮＤ８１の一方の入力となる。
【００３３】
ＡＮＤ７２には、＋ＲＥＳ０・Ｖと−ＲＥＳ１・Ｖと−ＲＥＳ２・Ｖと−ＲＥＳ３・Ｖが入力する。即ち、ＡＮＤ７２は、第０〜第３までの４つのレジスタのうち第０レジスタに有効命令が存在する場合に出力を高レベルにする。これは、ＮＯＲ７６の第１入力となる。ＡＮＤ７３には、−ＲＥＳ０・Ｖと＋ＲＥＳ１・Ｖと−ＲＥＳ２・Ｖと−ＲＥＳ３・Ｖが入力する。即ち、ＡＮＤ７２は、第０〜第３までの４つのレジスタのうち第１レジスタに有効命令が存在する場合に出力を高レベルにする。これは、ＮＯＲ７６の第１入力となる。
【００３４】
ＡＮＤ７４には、−ＲＥＳ０・Ｖと−ＲＥＳ１・Ｖと＋ＲＥＳ２・Ｖと−ＲＥＳ３・Ｖが入力する。即ち、ＡＮＤ７４は、第０〜第３までの４つのレジスタのうち第２レジスタに有効命令が存在する場合に出力を高レベルにする。これは、ＮＯＲ７６の第３入力となる。
ＡＮＤ７５には、−ＲＥＳ０・Ｖと−ＲＥＳ１・Ｖと−ＲＥＳ２・Ｖと＋ＲＥＳ３・Ｖが入力する。即ち、ＡＮＤ７５は、第０〜第３までの４つのレジスタのうち第３レジスタに有効命令が存在する場合に出力を高レベルにする。これは、ＮＯＲ６６の第４入力となる。
【００３５】
そして、これらのＡＮＤ７２，７３，７４，７５では、有効命令が２以上の存在する場合には、出力を低レベルにする。したがって、ＮＯＲ７６では、第０〜第３までの４つのレジスタのうち何れか１つのレジスタに有効命令が存在する場合に出力を低レベルにする。これが、「−１  ＥＮＴＲＹ」の内容である。一方、有効命令が２以上の存在する場合には、ＮＯＲ７６は、出力を高レベルにする。これは、図８のＡＮＤ８１の他方の入力となる。
【００３６】
図８は、選択制御回路５２における選択信号発生回路例である。この選択信号発生回路の出力（選択信号）は、選択回路５３へ出力される。図８において、ＡＮＤ８１は、一方の入力が「−０  ＥＮＴＲＹ」で、他方の入力が「−１  ＥＮＴＲＹ」で、出力がＡＮＤ８４，８７の一方の入力に接続される。インバータ８２は、入力が「−０  ＥＮＴＲＹ」で、出力が、ＡＮＤ８５の一方の入力とＡＮＤ９０の第１入力とＡＮＤ９１の第２入力とに接続される。インバータ８３は、入力が「−１  ＥＮＴＲＹ」で、出力がＡＮＤ８６の一方の入力とＡＮＤ８８，ＡＮＤ９２の第１入力とに接続される。
【００３７】
信号「＋Ｄ０ ＥＸ」「＋Ｄ１ ＥＸ」「−Ｄ０ ＥＸ」は、それぞれデコーダ５１から入力する。これらは、デーコーダ５１が解読中の命令（ＩＷＲ０，ＩＷＲ１）から取得したものである。「＋Ｄ０ ＥＸ」は、ＩＷＲ０の命令が実行ユニットを使用することを示す信号である。「＋Ｄ１ ＥＸ」は、ＩＷＲ１の命令が実行ユニットを使用することを示す信号である。「−Ｄ０ ＥＸ」は、ＩＷＲ０の命令が実行ユニットを使用しないことを示す信号である。これらは、それぞれの場合に高レベルとなる。図８では、デコーダ５１がＩＷＲ０とＩＷＲ１の命令について、実行ユニットを必要とするか否かを検出することを示している。
【００３８】
入力信号「＋Ｄ０  ＥＸ」は、ＡＮＤ８４，８５，８６の他方の入力とＡＮＤ８８の第２入力とＡＮＤ９１の第１入力とに印加される。入力信号「＋Ｄ１  ＥＸ」は、ＡＮＤ７７の他方の入力とＡＮＤ８８，９０，９１の第３入力とＡＮＤ９２の第２入力とに印加される。また、入力信号「−Ｄ０  ＥＸ」は、ＡＮＤ９０の第２入力とＡＮＤ９２の第３入力とに印加される。
【００３９】
次に、ＡＮＤ８４は、信号「＋Ｄ０  ＴＯ  ＲＳ」を出力する。この信号「＋Ｄ０ＴＯ  ＲＳ」は、ＩＷＲ０の命令を格納レジスタ群４２ａへディスパッチさせる選択信号である。ＡＮＤ８５は、信号「＋Ｄ０  ＴＯ  ＥＵ０」を出力する。この信号「＋Ｄ０  ＴＯ  ＥＵ０」は、ＩＷＲ０の命令を実行ユニットＥＵ０へディスパッチさせる選択信号である。
【００４０】
ＡＮＤ８７，８８の出力は、それぞれＯＲ８９の入力に接続される。ＯＲ８９は、信号「＋Ｄ１  ＴＯ  ＲＳ」を出力する。この信号「＋Ｄ１  ＴＯ  ＲＳ」は、ＩＷＲ０の命令を格納レジスタ群４２ａへディスパッチさせる選択信号である。ＡＮＤ９０は、信号「＋Ｄ１  ＴＯ  ＥＵ０」を出力する。この信号「＋Ｄ１  ＴＯＥＵ０」は、ＩＷＲ１の命令を実行ユニットＥＵ０へディスパッチさせる選択信号である。
【００４１】
ＡＮＤ９１，９２の出力は、ＯＲ９３の入力に接続される。ＯＲ９３は、信号「＋Ｄ１  ＴＯ  ＥＵ１」を出力する。この信号「＋Ｄ１  ＴＯ  ＥＵ１」は、ＩＷＲ１の命令を実行ユニットＥＵ１へディスパッチさせる選択信号である。
次に、図９は、選択制御回路５２における実行ユニット選択信号生成回路例である。実行ユニット選択信号生成回路は、格納レジスタ群４２ａの各レジスタからの有効性フラグに基づき実行ユニット選択信号を生成し、選択回路４に出力する。
【００４２】
図９において、信号「＋ＲＥＳ０・Ｖ」は、バッファ９４の入力に印加されると共に、ＡＮＤ９７の一方の入力とＡＮＤ９８の第１入力とに印加される。信号「−ＲＥＳ０・Ｖ」は、ＡＮＤ９５の一方の入力とＡＮＤ９６，９９の第１入力とに印加される。
信号「＋ＲＥＳ１・Ｖ」は、ＡＮＤ９５，９７の他方の入力とＡＮＤ９９の第２入力とに印加される。信号「−ＲＥＳ１・Ｖ」は、ＡＮＤ９６，９８の第２入力に印加される。「＋ＲＥＳ２・Ｖ」は、ＡＮＤ９６，９８，９９の第３入力に印加される。そして、ＡＮＤ９８，９９の出力は、それぞれ、ＯＲ１００の入力に接続される。
【００４３】
バッファ９４は、信号「＋ＳＥＬ・ＲＥＳ０・ＥＵ０」を出力する。この信号「＋ＳＥＬ・ＲＥＳ０・ＥＵ０」は、第０レジスタの有効命令を実行ユニットＥＵ０へディスパッチさせる選択信号である。ＡＮＤ９５は、信号「＋ＳＥＬ・ＲＥＳ１・ＥＵ０」を出力する。信号「＋ＳＥＬ・ＲＥＳ１・ＥＵ０」は、第０レジスタの命令が有効でなく第１レジスタの命令が有効である場合に第１レジスタの有効命令を実行ユニットＥＵ０へディスパッチさせる選択信号である。
【００４４】
ＡＮＤ９６は、信号「＋ＳＥＬ・ＲＥＳ２・ＥＵ０」を出力する。この信号「＋ＳＥＬ・ＲＥＳ２・ＥＵ０」は、第０レジスタと第１レジスタの命令が命令が有効でなく第２レジスタの命令が有効である場合に第２レジスタの有効命令を実行ユニットＥＵ０へディスパッチさせる選択信号である。
ＡＮＤ９７は、信号「＋ＳＥＬ・ＲＥＳ１・ＥＵ１」を出力する。この信号「＋ＳＥＬ・ＲＥＳ１・ＥＵ１」は、第０レジスタの命令と第１レジスタの命令が共に有効である場合に第１レジスタの有効命令を実行ユニットＥＵ１へディスパッチさせる選択信号である。
【００４５】
ＯＲ１００は、信号「＋ＳＥＬ・ＲＥＳ２・ＥＵ１」を出力する。この信号「＋ＳＥＬ・ＲＥＳ２・ＥＵ１」は、第０レジスタの命令と第１レジスタの命令と第２レジスタの命令が共に有効であるとき（ＡＮＤ９８の出力）、または、第０レジスタの命令と第１レジスタの命令が共に有効でなく第２レジスタの命令が有効であるとき（ＡＮＤ９９の出力）、第２レジスタの有効命令を実行ユニットＥＵ１へディスパッチさせる選択信号である。
【００４６】
図１０は、選択回路５３における命令コード選択回路例である。図１０において、選択回路５３では、選択制御回路５２から、選択信号「＋ＳＥＬ・ＲＥＳ０・ＥＵ０」、「＋ＳＥＬ・ＲＥＳ１・ＥＵ０」、「＋ＳＥＬ・ＲＥＳ２・ＥＵ０」、「＋ＳＥＬ・ＲＥＳ１・ＥＵ１」、「＋ＳＥＬ・ＲＥＳ２・ＥＵ１」がそれぞれ入力する。また、格納レジスタ群４２ａから、信号「＋ＲＥＳ０・ＯＰＥＣＯＤＥ」、「＋ＲＥＳ１・ＯＰＥＣＯＤＥ」、「＋ＲＥＳ２・ＯＰＥＣＯＤＥ」がそれぞれ入力する。
【００４７】
そこで、ＡＮＤ１０１は、一方の入力に信号「＋ＳＥＬ・ＲＥＳ０・ＥＵ０」が、他方の入力に信号「＋ＲＥＳ０・ＯＰＥＣＯＤＥ」がそれぞれ入力し、出力をＯＲ１０３の第１入力に与える。ＡＮＤ１０２は、一方の入力に信号「＋ＳＥＬ・ＲＥＳ１・ＥＵ０」が、他方の入力に信号「＋ＲＥＳ１・ＯＰＥＣＯＤＥ」がそれぞれ入力し、出力をＯＲ１０３の第２入力に与える。
【００４８】
ＡＮＤ１０４は、一方の入力に信号「＋ＳＥＬ・ＲＥＳ２・ＥＵ０」が、他方の入力に信号「＋ＲＥＳ２・ＯＰＥＣＯＤＥ」がそれぞれ入力し、出力をＯＲ１０３の第３入力に与える。ＯＲ１０３は、実行ユニットＥＵ０に信号「＋ＥＵ０ ＯＰＥＣＯＤＥ」を出力する。
また、ＡＮＤ１０５は、一方の入力に信号「＋ＳＥＬ・ＲＥＳ１・ＥＵ１」が、他方の入力に信号「＋ＲＥＳ１・ＯＰＥＣＯＤＥ」がそれぞれ入力し、出力をＯＲ１０７の一方の入力に与える。ＡＮＤ１０６は、一方の入力に信号「＋ＳＥＬ・ＲＥＳ２・ＥＵ１」が、他方の入力に信号「＋ＲＥＳ２・ＯＰＥＣＯＤＥ」がそれぞれ入力し、出力をＯＲ１０７の他方の入力に与える。ＯＲ１０７は、実行ユニットＥＵ１に信号「＋ＥＵ１ ＯＰＥＣＯＤＥ」を出力する。
【００４９】
この選択回路５３では、図８で示した選択信号に従ってＩＷＲ０，ＩＷＲ１の情報を実行ユニットＥＵ０，ＥＵ１へディスパッチし、また格納レジスタ群１２へディスパッチし、更に格納レジスタ群１２の命令を実行ユニットＥＵ０，ＥＵ１へディスパッチする。その際に図１０に示す手順で各有効命令の「ＯＰＥＣＯＤＥ」が対応する実行ユニットへディスパッチされる。
【００５０】
以上の構成と請求項１との対応関係は、次のようになっている。実行ユニット１には、実行ユニット４３−１〜４３−ｍ（ＥＵ０、ＥＵ１）が対応する。必要命令検出手段３には、デコーダ５１が対応する。命令格納手段４には、格納レジスタ群４２（４２ａ）が対応する。有効命令検出手段５には、選択制御回路５２が対応する。給送制御手段６には、主として選択制御回路５２が対応する。
【００５１】
以下、図５〜図１０を参照して第１実施形態の動作を説明する。
まず、格納レジスタ群４２ａに解読済み命令が格納されていない状態、即ち、有効命令が存在しない状態では、図７において、「−０・ＥＮＴＲＹ」信号が低レベル、「−１・ＥＮＴＲＹ」信号が高レベルである。その結果図８において、インバータ８２が出力を高レベルにするので、ＡＮＤ８５，９０，９１の入力状態が問題となる。次の（１）（２）（３）の動作となる。
【００５２】
（１）デコーダ５１が、ＩＷＲ０の命令のみが実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ０  ＥＸ」を高レベル、「＋Ｄ１  ＥＸ」を低レベルにしているので、ＡＮＤ８５が出力を高レベルにし、ＡＮＤ９０，９１は出力を低レベルにしている。したがって、選択回路５１は、ＡＮＤ８５の出力「＋Ｄ０  ＴＯ  ＥＵ０」に基づき、ＩＷＲ０の命令を実行ユニットＥＵ０へ送出（ディスパッチ）する。
【００５３】
（２）デコーダ４１が、ＩＷＲ１の命令のみが実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ１  ＥＸ」と「−Ｄ０  ＥＸ」を高レベルにしているので、ＡＮＤ９０が出力を高レベルにし、ＡＮＤ８５，９１は出力を低レベルにしている。したがって、選択回路５１は、ＡＮＤ９０の出力「＋Ｄ１  ＴＯ  ＥＵ０」に基づき、ＩＷＲ１の命令を実行ユニットＥＵ０へディスパッチする。
【００５４】
（３）デコーダ５１が、ＩＷＲ１、ＩＷＲ２の命令が共に実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ０  ＥＸ」と「＋Ｄ１  ＥＸ」を高レベルにしているので、ＡＮＤ８５，９１がそれぞれ出力を高レベルにし、ＡＮＤ９０は出力を低レベルにしている。したがって、選択回路５１は、ＡＮＤ８５の出力「＋Ｄ０  ＴＯ  ＥＵ０」に基づき、ＩＷＲ０の命令を実行ユニットＥＵ０へディスパッチし、同時に、ＯＲ９３の出力「＋Ｄ１  ＴＯ  ＥＵ１」に基づき、ＩＷＲ１の命令を実行ユニットＥＵ１へディスパッチする。
【００５５】
次に、格納レジスタ群４２ａに１つの有効命令が格納されている状態では、図７において、「−０・ＥＮＴＲＹ」信号が高レベル、「−１・ＥＮＴＲＹ」信号が低レベルである。その結果、図８において、インバータ８３が出力を高レベルにするので、ＡＮＤ８６，８８，９２の入力状態が問題となる。次の（４）（５）（６）の動作となる。
【００５６】
（４）デコーダ５１が、ＩＷＲ０の命令のみが実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ０  ＥＸ」を高レベル、「＋Ｄ１  ＥＸ」を低レベルにしているので、ＡＮＤ８６が出力を高レベルにし、ＡＮＤ８８，９２は出力を低レベルにしている。したがって、選択回路５１は、ＡＮＤ８６の出力「＋Ｄ０  ＴＯ  ＥＵ１」に基づき、ＩＷＲ０の命令を実行ユニットＥＵ１へディスパッチする。
【００５７】
（５）デコーダ５１が、ＩＷＲ１の命令のみが実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ１  ＥＸ」と「−Ｄ０  ＥＸ」を高レベルにしているので、ＡＮＤ９２が出力を高レベルにし、ＡＮＤ８６，８８は出力を低レベルにしている。したがって、選択回路５１は、ＯＲ９３の出力「＋Ｄ１  ＴＯ  ＥＵ１」に基づき、ＩＷＲ１の命令を実行ユニットＥＵ１へディスパッチする。
【００５８】
（６）デコーダ５１が、ＩＷＲ１、ＩＷＲ２の命令が共に実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ０  ＥＸ」と「＋Ｄ１  ＥＸ」を高レベルにしているので、ＡＮＤ８６，８８がそれぞれ出力を高レベルにし、ＡＮＤ９２は出力を低レベルにしている。したがって、選択回路５１は、ＡＮＤ８６の出力「＋Ｄ０  ＴＯ  ＥＵ１」に基づき、ＩＷＲ０の命令を実行ユニットＥＵ１へディスパッチし、同時に、ＯＲ８９の出力「＋Ｄ１  ＴＯ  ＲＳ」に基づき、ＩＷＲ１の命令を格納レジスタ群４２ａへディスパッチする。
【００５９】
次に、格納レジスタ群４２ａに２つ以上の有効命令が格納されている状態では、図７において、「−０・ＥＮＴＲＹ」信号と「−１・ＥＮＴＲＹ」信号が共に高レベルである。その結果、図８において、インバータ８１が出力を高レベルにするので、ＡＮＤ８４，８７の入力状態が問題となる。次の（７）（８）（９）の動作となる。
【００６０】
（７）デコーダ５１が、ＩＷＲ０の命令のみが実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ０  ＥＸ」を高レベル、「＋Ｄ１  ＥＸ」を低レベルにしているので、ＡＮＤ８４が出力を高レベルにし、ＡＮＤ８７は出力を低レベルにしている。したがって、選択回路５１は、ＡＮＤ８４の出力「＋Ｄ０  ＴＯ  ＲＳ」に基づき、ＩＷＲ０の命令を格納レジスタ群４２ａへディスパッチする。
【００６１】
（８）デコーダ５１が、ＩＷＲ１の命令のみが実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ１  ＥＸ」を高レベルにしているので、ＡＮＤ８７が出力を高レベルにし、ＡＮＤ８４は出力を低レベルにしている。したがって、選択回路５１は、ＯＲ８９の出力「＋Ｄ１  ＴＯ  ＲＳ」に基づき、ＩＷＲ１の命令を格納レジスタ群４２ａへディスパッチする。
【００６２】
（９）デコーダ５１が、ＩＷＲ１、ＩＷＲ２の命令が共に実行ユニットを必要とすることを検出した場合。この場合には、デコーダ５１は、「＋Ｄ０  ＥＸ」と「＋Ｄ１  ＥＸ」を高レベルにしているので、ＡＮＤ８４，８７がそれぞれ出力を高レベルにしている。したがって、選択回路５１は、ＡＮＤ８４の出力「＋Ｄ０  ＴＯ  ＲＳ」に基づき、ＩＷＲ０の命令を格納レジスタ群４２ａへディスパッチし、同時に、ＯＲ８９の出力「＋Ｄ１  ＴＯ  ＲＳ」に基づき、ＩＷＲ１の命令を格納レジスタ群４２ａへディスパッチする。
【００６３】
この図８に示す選択制御回路は、以上のように動作するが、ディスパッチの内容を整理すると、次のようになる。
（イ）ＩＷＲ０の命令を格納レジスタ群４２ａへディスパッチする信号「＋Ｄ０  ＴＯ  ＲＳ」は、ＩＷＲ０の命令が実行ユニットを使用する場合で、格納レジスタ群４２ａに２以上の有効な命令があるときに発生する。未処理の命令数が実行ユニット数を超えている場合である。
【００６４】
（ロ）ＩＷＲ０の命令を実行ユニットＥＵ０へディスパッチする信号「＋Ｄ０ＴＯ  ＥＵ０」は、ＩＷＲ０の命令が実行ユニットＥＵ０を使用する場合で、格納レジスタ群４２ａに有効な命令がないときに発生する。（イ）とは逆の場合である。
（ハ）ＩＷＲ０の命令を実行ユニットＥＵ１へディスパッチする信号「＋Ｄ０ＴＯ  ＥＵ１」は、ＩＷＲ０の命令が実行ユニットＥＵ１を使用する場合で、格納レジスタ群４２ａに有効な命令が１つあるときに発生する。（ロ）と同様のケースである。
【００６５】
（ニ）ＩＷＲ１の命令を格納レジスタ４２ａへディスパッチする信号「＋Ｄ１ＴＯ  ＲＳ」は、ＩＷＲ１の命令が実行ユニットを使用する場合において、格納レジスタ群４２ａに有効な命令が２つ以上あるとき、または、格納レジスタ群４２ｂに有効な命令が１つあり、かつＩＷＲ０の命令が実行ユニットを使用するときに発生する。
【００６６】
前者は（イ）と同様のケースである。後者は未処理の命令数が実行ユニット数よりも少ないが、空いている１つの実行ユニットを競合する他の命令に割り当てた場合である。
（ホ）ＩＷＲ１の命令を実行ユニットＥＵ０へディスパッチする信号「＋Ｄ１ＴＯ  ＥＵ０」は、ＩＷＲ１の命令が実行ユニットを使用する場合において、格納レジスタ群４２ａに有効な命令がなく、かつＩＷＲ０の命令が実行ユニットを使用しないときに発生する。未処理の命令がなく実行ユニットが空いており、かつ競合する他の命令がない場合である。
【００６７】
（ヘ）ＩＷＲ１の命令を実行ユニットＥＵ１へディスパッチする信号「＋Ｄ１ＴＯ  ＥＵ１」は、ＩＷＲ１の命令が実行ユニットを使用する場合において、格納レジスタ群４２ａに有効な命令がなく、かつＩＷＲ０の命令が実行ユニットを使用するとき、または、格納レジスタ群４２ａに有効な命令が１つあり、しかもＩＷＲ０の命令が実行ユニットを使用しないときに発生する。
【００６８】
前者は、未処理の命令がなく実行ユニットが空いており、競合する他の命令と一緒に実行ユニットの割り当てができる場合である。後者は、未処理の命令があり空いている実行ユニットは少ないが、競合する他の命令がない場合である。
以上のように、格納レジスタ群４２ａに前サイクルでの解読済み命令が格納されていない場合は、解読中命令を直接実行ユニットへディスパッチする一方、格納レジスタ群４２ａに前サイクルでの解読済み命令が格納されている場合には、解読中命令を空いている実行ユニットへディスパッチするとともに、実行ユニットへディスパッチできなかった解読中命令は格納レジスタ群４２ａへディスパッチする。
【００６９】
そして、次の処理サイクルにおいて、選択制御回路５２がこの格納命令を有効フラグの存在から検出して選択回路５３に対し格納レジス群４２ａの各レジスタの内容の取り出しを指示する。そうすると、選択回路５３は、図７に示した選択信号に従って命令を取り出し該当する実行ユニットへディスパッチすることになる。
【００７０】
〔第２実施形態・・請求項２乃至請求項４に対応〕
図１１は、第２実施形態の制御部４１の構成例である。この第２実施形態の制御部は、デコーダ１１１と選択制御回路１１２と更新保留状態テーブル１１３と選択回路１１４とで構成される。なお、格納レジスタ群４２は、格納レジスタ群４２ｂと表記する。
【００７１】
ＩＷＲ０，ＩＷＲ１，ＩＷＲ２は、それぞれ命令レジスタに設定された命令であるが、それぞれデコーダ１１１と選択回路１１４とに入力する。デコーダ１１１の２つの出力は、一方の出力（実行ユニット必要）が選択制御回路１１２に与えられ、他方の出力（参照アドレス）が更新保留状態テーブル１１３に与えられる。
【００７２】
格納レジスタ群４２ｂの２つの出力は、一方の出力（解読済み命令）が選択回路１１４に与えられ、他方の出力（有効性フラグ）が選択制御回路１１２に与えられる。更新保留状態デーブル１１３は、格納レジスタ群４２ｂの各レジスタ毎に更新保留状態を示すフラグ（Ｐ１，Ｐ２）が設定されるテーブルであり、選択制御回路１１２が指定したアドレスの保留状態フラグ（Ｐ１，Ｐ２）を選択制御回路１１２と選択回路１１４に出力する。
【００７３】
なお、更新保留状態とは、当該レジスタの命令について処理中である、ないしは、当該レジスタが使用中であることを意味する。この更新保留状態デーブル１１３から選択制御回路１１２に与える保留状態フラグは、「Ｄ０  ＲＥＡＤＹ」「Ｄ１  ＲＥＡＤＹ」と表記される（図１４）。
選択制御回路１１２は、デコーダ１１１、格納レジスタ群４２ｂ、更新保留状態テーブル１１３の各出力を受けて、選択回路１１４へ選択信号を出力する。選択回路１１４は、５つの入力を選択制御回路１１２の出力に従って選択し、３つの実行ユニットＥＵ０，ＥＵ１，ＥＵ３と格納レジスタ群４２ｂとに分配（ディスパッチ）する。
【００７４】
３つの実行ユニットＥＵ０，ＥＵ１，ＥＵ３は、実行ユニットＥＵ０とＥＵ１が同じ動作を行う実行ユニットグループであり、実行ユニットＥＵ３が別の動作を行う実行ユニットグループである。例えば、実行ユニットＥＵ０とＥＵ１は、オペランドアドレス計算を行い、実行ユニットＥＵ３は、命令アドレス計算を行う等である。
【００７５】
図１２は、第２実施形態の格納レジスタ群４２ｂの構成例である。この第２実施形態では、格納レジスタ群４２ｂには、図６に示した命令、有効性ビットの他に、図１２に示すように、アドレス（ＡＤＲＳ１，ＡＤＲＳ２）、保留状態フラグ（Ｐ１、Ｐ２）、実行ユニットグループ（ＥＵ）が設定される。
【００７６】
アドレス（ＡＤＲＳ１，ＡＤＲＳ２）は、命令を供給（ディスパッチ）する実行ユニットのレジスタをアクセスするためのレジスタアドレスである。保留状態フラグ（Ｐ１、Ｐ２）は、アドレス（ＡＤＲＳ１，ＡＤＲＳ２）で指示されるレジスタが使用可能か否かを示す情報である。実行ユニットのレジスタが使用可能であれば、つまりディスパッチ可能であれば、当該レジスタにディスパッチされる命令のオペランドが参照可能であることを意味する。
【００７７】
この保留状態フラグ（Ｐ１、Ｐ２）は、解読サイクルにおいて、デコーダ１１１の参照アドレスに従って更新保留状態テーブル１１３から読み出され、選択制御回路１１２に上述した「Ｄ０ ＲＥＡＤＹ」「Ｄ１ ＲＥＡＤＹ」として出力される。
また、保留状態フラグ（Ｐ１、Ｐ２）は、ディスパッチサイクルにおいて、デコーダ１１１の参照アドレスに従って更新保留状態テーブル１１３から読み出され、選択回路１１４が選択制御回路１１２の指示に従って格納レジスタ群４２ｂに取り込ませる。これらは、オペランドが参照可能か否かを検出し、登録する操作である。
【００７８】
実行ユニットグループ（ＥＵ）は、格納レジスタ群４２ｂの各レジスタに格納される命令がどの実行ユニットグループを使用するかを示す情報である。
この第２実施形態の格納レジスタ群４２ｂは、例えば、「−ＲＥＳ０・Ｖ」「−ＲＥＳ０・Ｐ１」「−ＲＥＳ０・Ｐ２」「−ＲＥＳ０・ＥＵ」等の信号を選択制御回路１１２へ出力する。
【００７９】
図１３は、選択制御回路１１１におけるＲＥＳ・ＲＥＡＤＹ発生回路例（ａ）及びＲＥＡＤＹ・ＥＵ発生回路例（ｂ）である。
図１３（ａ）において、ＲＥＳ・ＲＥＡＤＹ発生回路は、４入力のＡＮＤ１３１，１３３と４入力のＮＡＮＤ１３２，１３４とを備える。
「＋ＲＥＳ０・Ｖ」は、ＡＮＤ１３１，ＮＡＮＤ１３２，ＡＮＤ１３３，ＮＡＮＤ１３４の第１入力に接続される。「＋ＲＥＳ０・Ｐ１」は、ＡＮＤ１３１，ＮＡＮＤ１３２，ＡＮＤ１３３，ＮＡＮＤ１３４の第２入力に接続される。「＋ＲＥＳ０・Ｐ２」は、ＡＮＤ１３１，ＮＡＮＤ１３２，ＡＮＤ１３３，ＮＡＮＤ１３４の第３入力に接続される。「−ＲＥＳ０・ＥＵ」は、ＡＮＤ１３１，ＮＡＮＤ１３２の第４入力に接続される。「＋ＲＥＳ０・ＥＵ」は、ＡＮＤ１３３，ＮＡＮＤ１３４の第４入力に接続される。
【００８０】
ＡＮＤ１３１は、「＋ＲＥＳ０・ＲＥＡＤＹ  ０／１」を出力する。ＮＡＮＤ１３２は、「−ＲＥＳ０・ＲＥＡＤＹ  ０／１」を出力する。ＡＮＤ１３３は、「＋ＲＥＳ０・ＲＥＡＤＹ  ２」を出力する。ＮＡＮＤ１３４は、「−ＲＥＳ０・ＲＥＡＤＹ  ２」を出力する。
ここに、「＋ＲＥＳ０・Ｖ」は、第０レジスタに格納される命令が有効であることを示している。「＋ＲＥＳ０・Ｐ１」は、保留状態フラグＰ１が保留状態ではない、つまり、第０レジスタのうちＡＤＲＥＳ１で指定されるレジスタが参照可であることを示している。
【００８１】
「＋ＲＥＳ０・Ｐ２」は、保留状態フラグＰ２が保留状態ではない、つまり、第０レジスタのうちＡＤＲＥＳ２で指定されるレジスタが参照可であることを示している。「−ＲＥＳ０・ＥＵ」は、第０レジスタに格納の命令は、実行ユニットＥＵ０，ＥＵ１の何れも不使用であることを示している。また、「＋ＲＥＳ０・ＥＵ」は、第０レジスタに格納の命令は、実行ユニットＥＵ２を使用することを示している。
【００８２】
したがって、「＋ＲＥＳ０・ＲＥＡＤＹ  ０／１」は、第０レジスタのＡＤＲＥＳ１，ＡＤＲＥＳ２で指定されるレジスタが共に参照可能で、かつ実行ユニットＥＵ０，ＥＵ１を使用することを示す。逆に「−ＲＥＳ０・ＲＥＡＤＹ  ０／１」は、第０レジスタのＡＤＲＥＳ１，ＡＤＲＥＳ２で指定されるレジスタが共に参照可能であるが、実行ユニットＥＵ０，ＥＵ１を使用するものがないことを示す。
【００８３】
また、「＋ＲＥＳ０・ＲＥＡＤＹ  ２」は、第０レジスタのＡＤＲＥＳ１，ＡＤＲＥＳ２で指定されるレジスタが共に参照可能で、かつ実行ユニットＥＵ２を使用することを示す。逆に「−ＲＥＳ０・ＲＥＡＤＹ  ２」は、第０レジスタのＡＤＲＥＳ１，ＡＤＲＥＳ２で指定されるレジスタが共に参照可能であるが、実行ユニットＥＵ２を使用するものがないことを示す。
【００８４】
そして、図示省略したが、ＲＥＳ１，ＲＥＳ２，ＲＥＳ３についても同様の回路を用意してある。これにより「−ＲＥＳ０・ＲＥＡＤＹ  ０／１、−ＲＥＳ１・ＲＥＡＤＹ  ０／１、−ＲＥＳ２・ＲＥＡＤＹ  ０／１、−ＲＥＳ３・ＲＥＡＤＹ０／１」、「−ＲＥＳ０・ＲＥＡＤＹ  ２、−ＲＥＳ１・ＲＥＡＤＹ  ２、−ＲＥＳ２・ＲＥＡＤＹ  ２、−ＲＥＳ３・ＲＥＡＤＹ  ２」及び「＋ＲＥＳ０・ＲＥＡＤＹ  ０／１、＋ＲＥＳ１・ＲＥＡＤＹ  ０／１、＋ＲＥＳ２・ＲＥＡＤＹ  ０／１、＋ＲＥＳ３・ＲＥＡＤＹ  ０／１」が得られる。これらは、図１３（ｂ）のＲＥＳ・ＥＵ発生回路に与えられる。
【００８５】
図１３（ｂ）において、ＲＥＳ・ＥＵ発生回路は、４入力のＮＡＮＤ１３５，１３６，ＮＡＮＤ１３７を備える。
ＮＡＮＤ１３５は、「−ＲＥＳ０・ＲＥＡＤＹ ０／１、−ＲＥＳ１・ＲＥＡＤＹ ０／１、−ＲＥＳ２・ＲＥＡＤＹ ０／１、−ＲＥＳ３・ＲＥＡＤＹ ０／１」が入力し、「−０ ＲＥＡＤＹ・ＥＵ ０／１」を出力する。この出力「−０ ＲＥＡＤＹ・ＥＵ ０/１」は、第０〜第３の各レジスタに格納の命令は全て有効であり、ＡＤＲＥＳ１,ＡＤＲＥＳ２で指定されるレジスタが共に参照可能であるが、実行ユニットＥＵ０，ＥＵ１を使用する命令がないことを示す。この出力「−０ＲＥＡＤＹ・ＥＵ ０/１」は、図１４に示す選択制御回路のＡＮＤ１４１の一方の入力とインバータ１４２の入力とに与えられる。
【００８６】
ＮＡＮＤ１３６は、「−ＲＥＳ０・ＲＥＡＤＹ  ２、−ＲＥＳ１・ＲＥＡＤＹ  ２、−ＲＥＳ２・ＲＥＡＤＹ  ２、−ＲＥＳ３・ＲＥＡＤＹ  ２」が入力し、「−０  ＲＥＡＤＹ・ＥＵ２」を出力する。この出力「−０  ＲＥＡＤＹ・ＥＵ２」は、第０〜第３の各レジスタに格納の命令は全て有効であり、ＡＤＲＥＳ１，ＡＤＲＥＳ２で指定されるレジスタが共に参照可能であるが、実行ユニットＥＵ２を使用する命令がないことを示す。この出力「−０  ＲＥＡＤＹ・ＥＵ２」は、図１４に示す選択制御回路のバッファ１４４とインバータ１４５とに与えられる。
【００８７】
ＮＡＮＤ１３７は、「＋ＲＥＳ０・ＲＥＡＤＹ  ０／１、＋ＲＥＳ１・ＲＥＡＤＹ  ０／１、＋ＲＥＳ２・ＲＥＡＤＹ  ０／１、＋ＲＥＳ３・ＲＥＡＤＹ  ０／１」が入力し、「−１  ＲＥＡＤＹ・ＥＵ  ０／１」を出力する。この出力「−１  ＲＥＡＤＹ・ＥＵ  ０／１」は、第０〜第３の各レジスタに格納の命令は全て有効であり、ＡＤＲＥＳ１，ＡＤＲＥＳ２で指定されるレジスタが共に参照可能であり、実行ユニットＥＵ０，ＥＵ１を使用する命令が１つあることを示す。この出力「−１  ＲＥＡＤＹ・ＥＵ  ０／１」は、図１４に示す選択制御回路のＡＮＤ１４１の他方の入力とインバータ１４３の入力とに与えられる。
【００８８】
図１４は、選択制御回路１１２における選択信号発生回路例である。この選択信号発生回路の出力（選択信号）は、選択回路１１４へ出力される。
図１４において、ＡＮＤ１４１では、一方の入力が信号「−０ ＲＥＡＤＹ ＥＵ ０／１」で、他方の入力が信号「＋１ ＲＥＡＤＹ ＥＵ ０／１」で、出力がＡＮＤ１５６，１６３の一方の入力に接続される。インバータ１４２は、入力が信号「−０ ＲＥＡＤＹ ＥＵ ０／１」で、出力がＡＮＤ１５０,１５８の第１入力とＡＮＤ１５９の第２入力に接続される。インバータ１４３は、入力が信号「＋１ ＲＥＡＤＹ ＥＵ ０/１」で、出力がＡＮＤ１５１，１６０の第１入力とＡＮＤ１５４の第２入力に接続される。
【００８９】
ＡＮＤ１４４は、入力が信号「−０ ＲＥＡＤＹ ＥＵ ２」で、出力がＡＮＤ１４７，１５５の一方の入力に接続される。インバータ１４５は、入力が信号「−０ ＲＥＡＤＹ ＥＵ ２」で、出力がＡＮＤ１５２，１６２の第１入力に接続される。
信号「＋Ｄ０ ＥＸ ０／１」「＋Ｄ０ ＥＸ ２」「＋Ｄ１ ＥＸ ０／１」「＋Ｄ１ ＥＸ ２」「−Ｄ０ ＥＸ」「−Ｄ０ ＥＸ ２」は、それぞれデコーダ１１１から入力する。これらは、デコーダ１１１が解読中の命令（ＩＷＲ０，ＩＷＲ１）から取得したものである。また、信号「−Ｄ０ ＲＥＡＤＹ」「−Ｄ１ ＲＥＡＤＹ」は、解読サイクルにおいて、更新保留状態テーブル１１３からデコーダ１１１の参照アドレスに従って読み出され入力する。
【００９０】
信号「＋Ｄ０  ＥＸ  ０／１」は、ＩＷＲ０の命令が実行ユニットＥＵ０，ＥＵ１を使用することを示す信号である。この信号「＋Ｄ０  ＥＸ  ０／１」は、ＡＮＤ１４６の他方の入力とＡＮＤ１４８の一方の入力とＡＮＤ１５０，１５１の第３入力とＡＮＤ１５４，１５９の第１入力とに接続される。
信号「＋Ｄ０  ＥＸ  ２」は、ＩＷＲ０の命令が実行ユニットＥＵ２を使用することを示す信号である。この信号「＋Ｄ０  ＥＸ  ２」は、ＡＮＤ１４７の他方の入力とＡＮＤ１５２の第２入力とに接続される。
【００９１】
信号「−Ｄ０  ＲＥＡＤＹ」は、ＩＷＲ０の命令のレジスタオペランドで参照可能でないことを示す信号である。この信号「−Ｄ０  ＲＥＡＤＹ」は、ＡＮＤ１４８の他方の入力とＡＮＤ１５０，１５１の第２入力とＡＮＤ１５２の第３入力とに接続される。
信号「＋Ｄ１  ＥＸ  ０／１」は、ＩＷＲ１の命令が実行ユニットＥＵ０，ＥＵ１を使用することを示す信号である。この信号「＋Ｄ１  ＥＸ  ０／１」は、ＡＮＤ１５３の他方の入力とＡＮＤ１５４の第３入力とＡＮＤ１５６の一方の入力と１５８，１５９の第４入力とＡＮＤ１６０の第２入力とに接続される。
【００９２】
信号「＋Ｄ１  ＥＸ  ２」は、ＩＷＲ１の命令が実行ユニットＥＵ２を使用することを示す信号である。この信号「＋Ｄ１  ＥＸ  ２」は、ＡＮＤ１５５他方の入力とＡＮＤ１６２の第２入力とに接続される。
信号「−Ｄ１  ＲＥＡＤＹ」は、ＩＷＲ１の命令のレジスタオペランドで参照可能でないことを示す信号である。この信号「−Ｄ１  ＲＥＡＤＹ」は、ＡＮＤ１５６の他方の入力とＡＮＤ１５８の第２入力とＡＮＤ１５９の第３入力とＡＮＤ１６０の第４入力とＡＮＤ１６２の第３入力とに接続される。
【００９３】
信号「−Ｄ０  ＥＸ」は、ＩＷＲ０の命令が実行ユニットを使用しないことを示す信号である。この信号「−Ｄ０  ＥＸ」は、ＡＮＤ１５８の第２入力とＡＮＤ１６０の第３入力とに接続される。
信号「−Ｄ０  ＥＸ  ２」は、ＩＷＲ０の命令が実行ユニットＥＵ２を使用しないことを示す信号である。この信号「−Ｄ０  ＥＸ  ２」は、ＡＮＤ１６２の第４入力に接続される。
【００９４】
次に、ＡＮＤ１４６，１４７，１４８の出力は、それぞれＯＲ１４９の入力に接続される。ＯＲ１４９は、信号「＋Ｄ０  ＴＯ  ＲＳ」を出力する。この信号「＋Ｄ０  ＴＯ  ＲＳ」は、ＩＷＲ０の命令を格納レジスタ群４２ｂへディスパッチさせる選択信号である。
ＡＮＤ１５０は、信号「＋Ｄ０  ＴＯ  ＥＵ０」を出力する。この信号「＋Ｄ０  ＴＯ  ＥＵ０」は、ＩＷＲ０の命令を実行ユニットＥＵ０へディスパッチさせる選択信号である。ＡＮＤ１５１は、信号「＋Ｄ０  ＴＯ  ＥＵ１」を出力する。この信号「＋Ｄ０  ＴＯ  ＥＵ１」は、ＩＷＲ０の命令を実行ユニットＥＵ１へディスパッチさせる選択信号である。ＡＮＤ１５２は、信号「＋Ｄ１  ＴＯ  ＥＵ２」を出力する。この信号「＋Ｄ１  ＴＯ  ＥＵ２」は、ＩＷＲ１の命令を実行ユニットＥＵ２へディスパッチさせる選択信号である。
【００９５】
ＡＮＤ１５３，１５４，１５５，１５６の出力は、それぞれＯＲ１５７の入力に接続される。ＯＲ１５７は、信号「＋Ｄ１  ＴＯ  ＲＳ」を出力する。この信号「＋Ｄ１  ＴＯ  ＲＳ」は、ＩＷＲ１の命令を格納レジスタ群４２ｂへディスパッチさせる選択信号である。
ＡＮＤ１５８は、信号「＋Ｄ１  ＴＯ  ＲＳ」を出力する。この信号「＋Ｄ１  ＴＯ  ＲＳ」は、ＩＷＲ１の命令を格納レジスタ群４２ｂへディスパッチさせる選択信号である。
【００９６】
ＡＮＤ１５９，１６０の出力は、それぞれＯＲ１６１の入力に接続される。ＯＲ１６１は、信号「＋Ｄ１  ＴＯ  ＥＵ１」を出力する。この信号「＋Ｄ１  ＴＯ  ＥＵ１」は、ＩＷＲ０の命令を実行ユニットＥＵ１へディスパッチさせる選択信号である。
ＡＮＤ１６２は、信号「＋Ｄ１  ＴＯ  ＥＵ２」を出力する。この信号「＋Ｄ１ＴＯ  ＥＵ２」は、ＩＷＲ１の命令を実行ユニットＥＵ２へディスパッチさせる選択信号である。
【００９７】
以上の構成と請求項２乃至請求項４との対応関係は、次のようになっている。実行ユニット１には、実行ユニット４３−１〜４３−ｍ（ＥＵ０、ＥＵ１、ＥＵ２）が対応する。必要命令検出手段３には、デコーダ１１１が対応する。命令格納手段４には、格納レジスタ群４２（４２ｂ）が対応する。処理状況テーブル７には、更新保留状態テーブル１１３が対応する。参照可能命令検出手段８には、デコーダ１１１、選択制御回路１１２及び更新保留状態テーブル１１３の全体が対応する。第１給送制御手段１０、登録手段１１、第２給送制御手段１２、命令検出手段１３、第３給送制御手段１２には、主として選択制御回路１１２が対応する。
【００９８】
以下、図１１〜図１４を参照して第２実施形態の動作を説明する。
まず、格納レジスタ群４２ｂに解読済み命令が格納されていない状態、即ち、有効命令が存在しない状態では、図１４において、信号「−０ ＲＥＡＤＹ ＥＵ ０／１」「−１ ＲＥＡＤＹ ＥＵ ０／１」「−０ ＲＥＡＤＹ ＥＵ ２」が共に高レベルである。その結果、図１３においてＡＮＤ１４１とＡＮＤ１４４が共に出力を高レベルにするので、ＡＮＤ１４６,１５３の入力状態、ＡＮＤ１４７，１５５の入力状態が問題となる。次の（１０）（１１）（１２）（１３）の動作となる。
【００９９】
（１０）デコーダ１０１が、ＩＷＲ０の命令のみが実行ユニットＥＵ０，ＥＵ１を必要とすることを検出した場合。
この場合には、デコーダ１１１は、信号「＋Ｄ０  ＥＸ  ０／１」を高レベル、信号「＋Ｄ０  ＥＸ  ２」「＋Ｄ１  ＥＸ  ０／１」「＋Ｄ０  ＥＸ  ２」を低レベルにしている。また、デコーダ１１１の参照アドレスに従い更新保留状態テーブル１１３から入力する信号「−Ｄ０  ＲＥＡＤＹ」は低レベルである。ＡＮＤ１４６の出力がＯＲ１４９に与えられる。したがって、選択回路１１４は、ＯＲ１４９の出力「＋Ｄ０  ＴＯ  ＲＳ」に従ってＩＷＲ０の命令を格納レジスタ群４２ｂへディスパッチする。
【０１００】
（１１）デコーダ１１１が、ＩＷＲ０の命令のみが実行ユニットＥＵ２を必要とすることを検出した場合。
この場合には、デコーダ１１１は、信号「＋Ｄ０  ＥＸ  ２」を高レベル、信号「＋Ｄ０  ＥＸ  ０／１」「＋Ｄ１  ＥＸ  ０／１」「＋Ｄ０  ＥＸ  ２」を低レベルにしている。また、デコーダ１１１の参照アドレスに従い更新保留状態テーブル１１３から入力する信号「−Ｄ０  ＲＥＡＤＹ」は低レベルである。
【０１０１】
したがって、ＡＮＤ１４７の出力がＯＲ１３９に与えられるので、選択回路１１４は、ＯＲ１４９の出力「＋Ｄ０  ＴＯ  ＲＳ」に従ってＩＷＲ０の命令を格納レジスタ群４２ｂへディスパッチする。
（１２）デコーダ１１１が、ＩＷＲ１の命令のみが実行ユニットＥＵ０，ＥＵ１を必要とすることを検出した場合。
【０１０２】
この場合には、デコーダ１１１は、信号「＋Ｄ１  ＥＸ  ０／１」を高レベル、信号「＋Ｄ０  ＥＸ  ２」「＋Ｄ０  ＥＸ  ０／１」「＋Ｄ１  ＥＸ  ２」を低レベルにしている。また、デコーダ１１１の参照アドレスに従い更新保留状態テーブル１１３から入力する信号「−Ｄ１  ＲＥＡＤＹ」は低レベルである。
したがって、ＡＮＤ１５３の出力がＯＲ１５７に与えられるので、選択回路１１４は、ＯＲ１５７の出力「＋Ｄ１  ＴＯ  ＲＳ」に従ってＩＷＲ１の命令を格納レジスタ群４２ｂへディスパッチする。
【０１０３】
（１３）デコーダ１１１が、ＩＷＲ１の命令のみが実行ユニットＥＵ２を必要とすることを検出した場合。この場合には、デコーダ１１１は、信号「＋Ｄ１  ＥＸ  ２」を高レベル、信号「＋Ｄ０  ＥＸ  ２」「＋Ｄ０  ＥＵ  ０／１」「＋Ｄ１  ＥＵ  ０／１」を低レベルにしている。また、デコーダ１１１の参照アドレスに従い更新保留状態テーブル１１３から入力する信号「−Ｄ１  ＲＥＡＤＹ」は低レベルである。
【０１０４】
したがって、ＡＮＤ１５５の出力がＯＲ１５７に与えられるので、選択回路１１４は、ＯＲ１５７の出力「＋Ｄ１  ＴＯ  ＲＳ」に従ってＩＷＲ１の命令を格納レジスタ群４２ｂへディスパッチする。
次に、格納レジスタ群１２ｂに有効命令が格納されている状態では、図１３において、信号「−０  ＲＥＡＤＹ  ＥＵ  ０／１」「−１  ＲＥＡＤＹ  ＥＵ  ０／１」「−０  ＲＥＡＤＹ  ＥＵ  ２」は、次のようになる。
【０１０５】
ａ）低レベルの信号「−０  ＲＥＡＤＹ  ＥＵ  ０／１」は、実行ユニットグループＥＵが実行ユニットＥＵ０，ＥＵ１を使用するものがない場合において、保留状態フラグＰ１，Ｐ２が共にオペランド参照可能であることを示す。この場合には、図１４において、インバータ１４２が出力を高レベルにするので、ＡＮＤ１５０、１５８、１５９の入力状態が問題となる。
【０１０６】
ＡＮＤ１５０の入力信号は、「＋Ｄ０  ＥＸ  ０／１」「−Ｄ０  ＲＥＡＤＹ」である。信号「−Ｄ０  ＲＥＡＤＹ」は、ＩＷＲ０の命令のレジスタオペランドで参照可能であることを示す。選択回路１１４は、ＡＮＤ１５０の出力「＋Ｄ０  ＴＯＥＵ０」に従いＩＷＲ０の命令を実行ユニットＥＵ０へディスパッチする。
ＡＮＤ１５８の入力信号は、デコーダ１１１からの「＋Ｄ１  ＥＸ  ０／１」「−Ｄ０  ＥＸ」、デコーダ１１１の参照アドレスに従い更新保留状態テーブル１１３から入力する「−Ｄ１  ＲＥＡＤＹ」である。
【０１０７】
信号「＋Ｄ１  ＥＸ  ０／１」は、デコーダ１１１が、ＩＷＲ１の命令が実行ユニットＥＵ０、ＥＵ１を必要とすることを検出した場合に入力する。信号「−Ｄ０  ＥＸ」は、デコーダ１１１が、ＩＷＲ０の命令が実行ユニットを使用しないことを検出した場合に入力する。信号「−Ｄ１  ＲＥＡＤＹ」は、ＩＷＲ１の命令のレジスタオペランドで参照可能であることを示す。
【０１０８】
ＡＮＤ１５８は、これら３つの入力信号がこのように条件を満たすとき、「＋Ｄ１  ＴＯ  ＥＵ０」を出力する。選択回路１１４は、ＩＷＲ１の命令を実行ユニットＥＵ０へディスパッチする。
また、ＡＮＤ１５９の入力信号は、デコーダ１１１からの「＋Ｄ０  ＥＸ  ０／１」「＋Ｄ１  ＥＸ  ０／１」「−Ｄ０  ＥＸ」、更新保留状態テーブル１１３からの「−Ｄ１  ＲＥＡＤＹ」である。信号「＋Ｄ０  ＥＸ  ０／１」は、デコーダ１１１が、ＩＷＲ０の命令が実行ユニットＥＵ０、ＥＵ１を必要とすることを検出した場合に入力する。
【０１０９】
ＡＮＤ１５９は、これら４つの信号がこのような条件を満たすとき、ＯＲ１６１を介して「＋Ｄ１  ＴＯ  ＥＵ１」を出力する。選択回路１１４は、ＩＷＲ１の命令を実行ユニットＥＵ１へディスパッチする。ＩＷＲ０の命令は、実行ユニットの割り当てを受けられなかったので、格納レジスタ群４２ｂへディスパッチされることになる。
【０１１０】
ｂ）低レベルの信号「−１  ＲＥＡＤＹ  ＥＵ  ０／１」は、実行ユニットグループＥＵが実行ユニットＥＵ０，ＥＵ１を使用するものが１つある場合において、保留状態フラグＰ１，Ｐ２が共にオペランド参照可能であることを示す。この場合には、図１４において、インバータ１４３が出力を高レベルにするので、ＡＮＤ１５１、１５４、１６０の入力状態が問題となる。
【０１１１】
ＡＮＤ１５１の入力信号は、「＋Ｄ０  ＥＸ  ０／１」「−Ｄ０  ＲＥＡＤＹ」である。信号「−Ｄ０  ＲＥＡＤＹ」は、ＩＷＲ０の命令のレジスタオペランドで参照可能であることを示す。選択回路１１４は、ＡＮＤ１５１の出力「＋Ｄ１  ＴＯ  ＥＵ１」に従いＩＷＲ０の命令を実行ユニットＥＵ１へディスパッチする。
【０１１２】
ＡＮＤ１５４の入力信号は、「＋Ｄ０  ＥＸ  ０／１」「＋Ｄ１  ＥＸ  ０／１」である。ＡＮＤ１５４は、２つの信号がこのような条件を満たすとき、ＯＲ１５７を介して「＋Ｄ１  ＴＯ  ＲＳ」を出力する。選択回路１１４は、ＯＲ１５７の出力に従ってＩＷＲ１の命令を格納レジスタ群４２ｂへディスパッチする。なお、ＩＷＲ０の命令は、割り当てを受けた実行ユニットへディスパッチされる。
【０１１３】
ＡＮＤ１６０の入力信号は、「＋Ｄ１  ＥＸ  ０／１」「−Ｄ１  ＲＥＡＤＹ」「−Ｄ０  ＥＸ」である。信号「−Ｄ１  ＲＥＡＤＹ」は、ＩＷＲ１の命令のレジスタオペランドで参照可能であることを示す。
ＡＮＤ１６０は、これら３つの信号がこのような条件を満たすとき、ＯＲ１６１を介して「＋Ｄ１  ＴＯ  ＥＵ１」を出力する。選択回路１１４は、ＯＲ１６１の出力に従ってＩＷＲＩの命令を実行ユニットＥＵ１へディスパッチする。
【０１１４】
ｃ）低レベルの信号「−０  ＲＥＡＤＹ  ＥＵ  ２」は、実行ユニットグループＥＵが実行ユニットＥＵ２を使用するものがない場合において、保留状態フラグＰ１，Ｐ２が共にオペランド参照可能であることを示す。この場合には、図１４において、インバータ１４５が出力を高レベルにするので、ＡＮＤ１５２、１６２の入力状態が問題となる。
【０１１５】
ＡＮＤ１５２の入力信号は、デコーダ１１１からの「＋Ｄ０  ＥＸ  ２」、更新保留状態テーブル１１３から入力する「−Ｄ０  ＲＥＡＤＹ」である。
信号「＋Ｄ０  ＥＸ  ２」は、デコーダ１１１が、ＩＷＲ１の命令が実行ユニットＥＵ２を必要とすることを検出した場合に入力する。信号「−Ｄ０  ＲＥＡＤＹ」は、ＩＷＲ０の命令のレジスタオペランドで参照可能であることを示す。
【０１１６】
ＡＮＤ１５２は、２つの入力信号がこのように条件を満たすとき、「＋Ｄ０  ＴＯ  ＥＵ２」を出力する。選択回路１１４は、ＡＮＤ１５２の出力に従ってＩＷＲ０の命令を実行ユニットＥＵ２へディスパッチする。
【０１１７】
また、ＡＮＤ１６２の入力信号は、デコーダ１１１からの「＋Ｄ１  ＥＸ  ２」「−Ｄ０  ＥＸ  ２」、更新保留状態テーブル１１３からの「−Ｄ１  ＲＥＡＤＹ」である。信号「＋Ｄ１  ＥＸ  ２」は、デコーダ１１１が、ＩＷＲ１の命令が実行ユニットＥＵ２を必要とすることを検出した場合に入力する。信号「−Ｄ０  ＥＸ２」は、デコーダ１１１が、ＩＷＲ０の命令が実行ユニットＥＵ２を必要としないことを検出した場合に入力する。
【０１１８】
ＡＮＤ１６２は、これら３つの信号がこのような条件を満たすとき、信号「＋Ｄ１  ＴＯ  ＥＵ２」を出力する。選択回路１１４は、ＡＮＤ１６２の出力に従ってＩＷＲ１の命令を実行ユニットＥＵ２へディスパッチする。
そして、ＡＮＤ１５６では、信号「＋Ｄ１  ＥＸ  ０／１」「−Ｄ１  ＲＥＡＤＹ」が入力し、ＯＲ１５７を介して信号「＋Ｄ１  ＴＯ  ＲＳ」を出力する。選択回路１１４は、ＯＲ１５７の出力に従ってＩＷＲ１の命令を格納レジスタ群４２ｂへディスパッチする。実行ユニットの割り当てが受けられなかったのである。
【０１１９】
この図１３に示す選択制御回路は、以上のように動作するが、ディスパッチの内容を整理すると、次のようになる。
（イ）ＩＷＲ０の命令を格納レジスタ１２ｂへディスパッチする信号「＋Ｄ０ＴＯ  ＲＳ」は、次の場合に発生する。
＊１。ＩＷＲ０の命令が実行ユニットＥＵ０，ＥＵ１を使用する場合。
【０１２０】
格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用する命令が２つ以上あるとき、
または、格納レジスタ群４２ｂにおいてオペランドが参照可能でないとき
＊２。ＩＷＲ０の命令が実行ユニットＥＵ２を使用する場合。
格納レジスタ群１２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ２を使用する命令が１つ以上有効であるとき
（ロ）ＩＷＲ０の命令を実行ユニットＥＵ０へディスパッチする信号「＋Ｄ０ＴＯ  ＥＵ０」は、ＩＷＲ０の命令がオペランドを参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用し、格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用する命令が有効でないときに発生する。
【０１２１】
（ハ）ＩＷＲ０の命令を実行ユニットＥＵ１へディスパッチする信号「＋Ｄ０ＴＯ  ＥＵ１」は、ＩＷＲ０の命令がオペランドを参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用し、格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用する命令が１つ有効であるときに発生する。
【０１２２】
（ニ）ＩＷＲ０の命令を実行ユニットＥＵ２へディスパッチする信号「＋Ｄ０ＴＯ  ＥＵ２」は、ＩＷＲ０の命令がオペランドを参照可能で、かつ実行ユニットＥＵ２を使用し、格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ２を使用する命令が有効でないときに発生する。
（ホ）ＩＷＲ１の命令を格納レジスタ４２ｂへディスパッチする信号「＋Ｄ１ＴＯ  ＲＳ」は、次の場合に発生する。
【０１２３】
＊１。ＩＷＲ１の命令が実行ユニットＥＵ０，ＥＵ１を使用する場合。
格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用する命令が２つ以上あるとき、または、格納レジスタ群４２ｂにおいてオペランドが参照可能でないとき、さらに、同時にＩＷＲ０の命令が実行ユニットＥＵ０，ＥＵ１を使用するとき
＊２。ＩＷＲ１の命令が実行ユニットＥＵ２を使用する場合には、格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ２を使用する命令が１つ以上有効であるとき
（ヘ）ＩＷＲ１の命令を実行ユニットＥＵ０へディスパッチする信号「＋Ｄ１ＴＯ  ＥＵ０」は、ＩＷＲ１の命令がオペランドを参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用し、格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用する命令が有効で、かつＩＷＲ０の命令が実行ユニットを使用しないときに発生する。
【０１２４】
（ト）ＩＷＲ１の命令を実行ユニットＥＵ１へディスパッチする信号「＋Ｄ１ＴＯ  ＥＵ１」は、ＩＷＲ１の命令がオペランドを参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用し、格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ０、ＥＵ１を使用する命令が１つ有効で、かつＩＷＲ０の命令が実行ユニットを使用しないときに発生する。
（チ）ＩＷＲ１の命令を実行ユニットＥＵ２へディスパッチする信号「＋Ｄ１ＴＯ  ＥＵ２」は、ＩＷＲ１の命令がオペランドを参照可能で、かつ実行ユニットＥＵ２を使用し、格納レジスタ群４２ｂにおいてオペランドが参照可能で、かつ実行ユニットＥＵ２を使用する命令が有効でないときで、ＩＷＲ０の命令が実行ユニットＥＵ２を使用しないときに発生する。
【０１２５】
この第２実施形態では、端的にＣＩＳＣ方式の命令セットを、ＲＩＳＣ方式の命令セットを処理するサイクルと同じサイクル数で処理できることを示しているが、オペランドを参照してディスパッチを制御するので、単に有効性ビットを確認して制御する第１実施形の方式よりも処理速度の向上を図ることができる。  そこで、請求項２、３に対応する実施形態として、第１実施形態の方式において、この第２実施形態と同様の更新保留状態テーブルを設け、格納レジスタ群４２ａを格納レジスタ群４２ｂのように構成すれば、同様にオペランドを参照してディスパッチを制御でき、この第２実施形態と同様に処理速度の向上が図れる。なお、請求項２、３に対応する実施形態では、実行ユニットの性格については、第１実施形態と同様に特に問わないものとする。
【０１２６】
【発明の効果】
以上説明したように、請求項１に記載の発明は、解読サイクルにおいて、実行ユニットを必要とする解読中命令数と格納されている解読済み命令の有効数を検出し、実行ユニット数が有効命令数よりも多いときは、解読中命令の一部を空いている実行ユニットへ給送し、実行ユニットが割り当てられないため給送できなかった解読中命令を命令格納手段へ給送する。
【０１２７】
即ち、解読中命令を、命令格納手段へ給送する同じサイクル（ディスパッチサイクル）において並行して実行ユニットへ給送できるので、複雑な命令セットであっても高速処理が可能となる。
請求項２に記載の発明は、解読サイクルにおいて、実行ユニットを必要とする解読中命令数とオペランドが参照可能な解読中命令数とを検出し、オペランドが参照可能な命令を空いている実行ユニットへ給送し、オペランドが参照可能でないため実行ユニットへ給送できなかった命令を命令格納手段へ給送して格納させる。
【０１２８】
これにより、解読中命令を、命令格納手段へ給送する同じサイクル（ディスパッチサイクル）において並行して実行ユニットへ給送できるので、複雑な命令セットであっても高速処理が可能となる。このとき、給送制御を命令中命令のオペランドの参照可否に基づき行うので、格納する解読済み命令の増加による処理の停滞が生ずる可能性を回避できる。
【０１２９】
請求項３に記載の発明は、解読サイクルにおいて、実行ユニットを必要とする解読中命令数とオペランドが参照可能な解読中命令数とを検出し、オペランドが参照可能な命令を空いている実行ユニットへ給送し、オペランドが参照可能でないため実行ユニットへ給送できなかった命令を命令格納手段へ給送して格納させると共に、命令格納手段へ給送する解読済み命令のオペランドの参照可否を命令格納手段に登録し、命令格納手段に格納される解読済み命令の給送制御を有効性とオペランド参照可否に基づき行う。
【０１３０】
これにより、解読中命令を、処理の停滞を招くことなく命令格納手段へ給送する同じサイクル（ディスパッチサイクル）において並行して実行ユニットへ給送できるので、複雑な命令セットであっても高速処理が可能となると共に、命令格納手段中の解読済み命令の給送制御をその解読済み命令の有効性とオペランドの参照可否に基づき行うので、給送制御を一層円滑かつ確実に行うことができる。
【０１３１】
請求項４に記載の発明は、異なった処理を行う複数種類の実行ユニットグループについての給送制御を、請求項１乃至請求項３の何れか１項に記載の発明によって実現できる。
これにより、ＣＩＳＣ方式の命令セットが対象とする演算を、｛（解読）のサイクル｝と｛（ディスパッチ）＋（実行）のサイクル｝と｛（実行）のサイクル｝との３つのサイクルで処理でき、複雑な命令セットの高速処理が可能となる。
【図面の簡単な説明】
【図１】請求項１に記載の発明の原理ブロック図である。
【図２】請求項２に記載の発明の原理ブロック図である。
【図３】請求項３に記載の発明の原理ブロック図である。
【図４】請求項１乃至請求項４に対応する実施形態の構成図である。
【図５】第１実施形態の制御部の構成図である。
【図６】第１実施形態の格納レジスタ群の構成図である。
【図７】第１実施形態の選択制御回路（ＥＮＴＲＹ信号生成回路）の構成図である。
【図８】第１実施形態の選択制御回路（給送先選択信号発生回路）の構成図である。
【図９】第１実施形態の選択制御回路（実行ユニット選択信号発生回路）の構成図である。
【図１０】第１実施形態の選択回路（命令コード選択回路）の構成図である。
【図１１】第２実施形態の制御部の構成図である。
【図１２】第２実施形態の格納レジスタ群の構成図である。
【図１３】第２実施形態の選択制御回路の構成図である。（ａ）はＲＥＳ・ＲＥＡＤＹ発生回路例である。（ｂ）ＲＥＡＤＹ・ＥＵ発生回路例である。
【図１４】第２実施形態の選択制御回路（給送先選択信号発生回路）の構成図である。
【図１５】ＲＩＳＣ方式の命令セットを備える情報処理装置の構成例である。
【図１６】ＣＩＳＣ方式の命令セットを備える情報処理装置の構成例である。
【符号の説明】
１  実行ユニット
３  必要命令検出手段
４  命令格納手段
５  有効命令検出手段
６、９  給送制御手段
７  処理状況テーブル
８  参照可能命令検出手段
１０  第１給送制御手段
１１  登録手段
１２  第２給送制御手段
１３  命令検出手段
１４  第３給送制御手段
４１  制御部
４１−１〜４１−ｎ  命令レジスタ
４２、４２ａ、４２ｂ  格納レジスタ群
４３−１〜４３−ｍ  実行ユニット
５１、１１１  デコーダ
５２、１１２  選択制御回路
５３、１１４  選択回路
１１３  更新保留状態テーブル
【図１】
0003566841.tif 000002
【図２】
0003566841.tif 000003
【図３】
0003566841.tif 000004
【図４】
0003566841.tif 000005
【図５】
0003566841.tif 000006
【図６】
0003566841.tif 000007
【図７】
0003566841.tif 000008
【図８】
0003566841.tif 000009
【図９】
0003566841.tif 000010
【図１０】
0003566841.tif 000011
【図１１】
0003566841.tif 000012
【図１２】
0003566841.tif 000013
【図１３】
0003566841.tif 000014
【図１４】
0003566841.tif 000015
【図１５】
0003566841.tif 000016
【図１６】
0003566841.tif 000017