(57)【特許請求の範囲】
【請求項１】
キュー内のデータの数、又はキューに入れられる予定になっているデータの数と命令が使用するデータの数を比較することによって、命令が実行可能になっているか否かを調べることを特徴とする並列キュープロセッサの高速実行可能命令の判別方法。
【請求項２】
（ａ）調査中命令０の消費データの数とキューテールＱＴｐ−キューヘッドＱＨｐとを比較する第１の比較部と、
（ｂ）調査中命令０の消費データの数と調査中命令１の消費データの数とを加算する第１の加算部と、
（ｃ）前記第１の加算部の出力とキューテールＱＴｐ−キューヘッドＱＨｐとを比較する第２の比較部と、
（ｄ）調査中命令２の消費データの数と前記第１の加算部の出力とを加算する第２の加算部と、
（ｅ）該第２の加算部の出力とキューテールＱＴｐ−キューヘッドＱＨｐとを比較する第３の比較部と、
（ｆ）調査中命令３の消費データの数と前記第２の加算部の出力とを加算する第３の加算部と、
（ｇ）該第３の加算部の出力とキューテールＱＴｐ−キューヘッドＱＨｐとを比較する第４の比較部とを具備し、
（ｈ）前記第ｋの比較部の出力ＡがＡ＜＝０であるならば、命令（ｋ−１）が実行可能であると判定することを特徴とする並列キュープロセッサの高速実行可能命令の判別回路。
【請求項３】
（ａ）調査中命令０の消費データの数とキューヘッダＱＨｐ−１とを加算する第１の加算部と、
（ｂ）調査中命令１の消費データの数と前記第１の加算部の出力とを加算する第２の加算部と、
（ｃ）該第２の加算部の出力とキューテールＱＴｐとを比較する第１の比較部と、
（ｄ）調査中命令２の消費データの数と前記第２の加算部の出力とを加算する第３の加算部と、
（ｅ）該第３の加算部の出力とキューテールＱＴｐとを比較する第２の比較部と、
（ｆ）調査中命令３の消費データの数と前記第３の加算部の出力とを加算する第４の加算部と、
（ｇ）該第４の加算部の出力とキューテールＱＴｐとを比較する第３の比較部とを具備し、
（ｈ）命令０は常に実行可能であると判定し、前記第ｋの比較部の出力ＡがＡ＜０である場合には、命令ｋが実行可能であると判定することを特徴とする並列キュープロセッサの高速実行可能命令の判別回路。
【請求項４】
請求項２記載の並列キュープロセッサの高速実行可能命令の判別回路とキューヘッド計算回路とキューテール計算回路とを１つの共通の回路として構成することを特徴とする並列キュープロセッサの高速実行可能命令の判別回路。
【請求項５】
請求項３記載の並列キュープロセッサの高速実行可能命令の判別回路とキューヘッド計算回路とキューテール計算回路とを１つの共通の回路として構成することを特徴とする並列キュープロセッサの高速実行可能命令の判別回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＦＩＦＯ（先入れ先出し）方式のメモリの一種であるキューをアキュムレータとして使った、実行時に同時に実行可能な命令を抽出する命令レベルの並列プロセッサに関するものである。
【０００２】
【従来の技術】
従来は、実行時に同時に実行可能な命令を探すために、命令が必要とするデータがレジスタの中にあるかどうかを個々に調べていた。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記した従来の方法はすべてのデータをしらみつぶしに調べなければならないため、ハードウェアが複雑になりそれが高速化を妨げ、消費電力量も多くならざるを得なかった。
【０００４】
本発明は、上記状況に鑑みて、実行可能命令の判別機構を簡単化し、高速化、低電力化を図ることができる並列キュープロセッサの高速実行可能命令の判別方法及びその回路を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明は、上記目的を達成するために、
〔１〕並列キュープロセッサの高速実行可能命令の判別方法において、キュー内のデータの数、又はキューに入れられる予定になっているデータの数と命令が使用するデータの数を比較することによって、命令が実行可能になっているか否かを調べることを特徴とする。
【０００６】
〔２〕並列キュープロセッサの高速実行可能命令の判別方法において、調査中命令０の消費データの数とキューテールＱＴｐ−キューヘッドＱＨｐとを比較する第１の比較部と、調査中命令０の消費データの数と調査中命令１の消費データの数とを加算する第１の加算部と、前記第１の加算部の出力とキューテールＱＴｐ−キューヘッドＱＨｐとを比較する第２の比較部と、調査中命令２の消費データの数と前記第１の加算部の出力とを加算する第２の加算部と、この第２の加算部の出力とキューテールＱＴｐ−キューヘッドＱＨｐとを比較する第３の比較部と、調査中命令３の消費データの数と前記第２の加算部の出力とを加算する第３の加算部と、この第３の加算部の出力とキューテールＱＴｐ−キューヘッドＱＨｐとを比較する第４の比較部とを具備し、前記第ｋの比較部の出力ＡがＡ＜＝０であるならば、命令（ｋ−１）が実行可能であると判定することを特徴とする。
【０００７】
〔３〕並列キュープロセッサの高速実行可能命令の判別回路において、調査中命令０の消費データの数とキューヘッダＱＨｐ−１とを加算する第１の加算部と、調査中命令１の消費データの数と前記第１の加算部の出力とを加算する第２の加算部と、この第２の加算部の出力とキューテールＱＴｐとを比較する第１の比較部と、調査中命令２の消費データの数と前記第２の加算部の出力とを加算する第３の加算部と、この第３の加算部の出力とキューテールＱＴｐとを比較する第２の比較部と、調査中命令３の消費データの数と前記第３の加算部の出力とを加算する第４の加算部と、この第４の加算部の出力とキューテールＱＴｐとを比較する第３の比較部とを具備し、命令０は常に実行可能であると判定し、前記第ｋの比較部の出力ＡがＡ＜０である場合には、命令ｋが実行可能であると判定することを特徴とする。
【０００８】
〔４〕並列キュープロセッサの高速実行可能命令の判別回路において、上記〔２〕記載の並列キュープロセッサの高速実行可能命令の判別回路とキューヘッド計算回路とキューテール計算回路とを１つの共通の回路として構成することを特徴とする。
【０００９】
〔５〕並列キュープロセッサの高速実行可能命令の判別回路において、上記〔３〕記載の並列キュープロセッサの高速実行可能命令の判別回路とキューヘッド計算回路とキューテール計算回路とを１つの共通の回路として構成することを特徴とする。
【００１０】
このように、命令が実行可能になっているかを調べるために、個々のデータにあたるのではなく、キュー内のデータの数と命令が必要なデータの数を比べる。または、キューのデータがある領域内に必要なデータがあるかどうかを調べる。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態について図を参照しながら説明する。
【００１２】
まず、本発明の並列キュープロセッサの高速実行可能命令の判別方法の基本原理について説明する。
【００１３】
図１は本発明にかかるデータの流れによって計算方法を示すデータフロープログラムを示す図である。
【００１４】
この図に示すように、メモリにあるデータａ，ｂ，ｃ，ｄがメモリから取り出されて、ｅ＝ａｂ／（ｃ＋ｄ）の計算がなされ、それがメモリに格納されるプログラムとなっている。この図において、ｌｄやｓｔはロードストア命令でメモリからデータを取り出す命令、＊，＋等は計算命令である。
【００１５】
キュー計算法（ＱＣ：Ｑｕｅｕｅ  Ｃｏｍｐｕｔａｔｉｏｎ）では、命令の実行を、図１の破線で示す順序で行う。計算には途中結果を入れるアキュムレータとしてキューを用いる。すなわち、図２に示すように、キューのヘッドからデータを取りだし計算し、その計算結果をキューのテールにいれる。データは消費型のデータであり、一度取り出されるとそのデータは消滅する。このデータのキューへの格納と取り出し順がキュー計算の正しさを補償する。わかりやすくするために、図２にはデータの生産者と消費者が記入されている。すなわち、図１、図２に示すように、キュー計算方法とは、キュー内のデータの順序とキュー（ＦＩＦＯ）方式による入出力とそのデータを使う命令の実行順序を一致させることによって計算を行う計算方法である。
【００１６】
このプログラムをニモニック形式で表すと以下のようになる。
【００１７】
ｌｄ  ａ
ｌｄ  ｂ
ｌｄ  ｃ
ｌｄ  ｄ
ｍｕｌ
ａｄｄ
ｄｉｖ
ｓｔ  ｅ
プログラムは８ステップで終わり、そのときの命令実行に伴うキューの内容は、図３のように変化する。
【００１８】
次に、キューの実現方法について説明する。
【００１９】
キュー内でデータを動かす代わりに、データを動かさずキューそのものを動かす方法を使って、図１の計算を行うと、図４のようになる。この図ではキューヘッドを表すキューヘッドポインタＱＨと、キューのテールを示すキューテールポインタＱＴでキューを実現している。ＱＨ，ＱＴに囲まれている部分がキューであり、ここにはデータが格納されている。図３ではデータがキュー内を移動するが、図４ではポインタによってキューそのものが移動する。図３をデータ移動型キューＤＭＱ（Ｄａｔａ  Ｍｏｖｉｎｇ  Ｑｕｅｕｅ）、図４をキュー移動型キューＱＭＱ（Ｑｕｅｕｅ  Ｍｏｖｉｎｇ  Ｑｕｅｕｅ）と呼ぶことにする。
【００２０】
キュー移動型キューでは、図４からわかるようにキュー部分がレジスタ上を右から左へと移動する。したがって、もしレジスタの左端と右端を結びつけた構成とすると円状のレジスタが得られ、空きになった部分を再度キューとして用いることができる。これを循環型キュー移動型キューＣＱＭＱ（Ｃｙｃｌｉｃ  Ｑｕｅｕｅ  Ｍｏｖｉｎｇ  Ｑｕｅｕｅ）と呼ぶことにする。
【００２１】
次に、並列キューマシーンＰＱＭ（Ｐａｒａｌｌｅｌ  Ｑｕｅｕｅ  Ｍａｃｈｉｎｅ）の概要について説明する。
【００２２】
並列キューマシーンＰＱＭでは、キューへのデータの格納場所は、図２に従うが、データの複数個の同時格納と同時取り出しを許すと、命令の並列実行が可能になる。図１のプログラムでは｛ｌｄ  ａ，ｌｄ  ｂ，ｌｄ  ｃ，ｌｄ  ｄ｝が同時実行可能であり、｛ｍｕｌ，ａｄｄ｝が同時実行可能であり、次に、｛ｄｉｖ｝、｛ｓｔ  ｅ｝がそれぞれ実行される。この時プログラムは４ステップで終わり、キューの内容は図５のようになる。ニモニックで並列実行プログラムを表すと以下のようになる。
【００２３】
｛ｌｄ  ａ，ｌｄ  ｂ，ｌｄ  ｃ，ｌｄ  ｄ｝
｛ｍｕｌ，ａｄｄ｝
｛ｄｉｖ｝
｛ｓｔ  ｅ｝
キューマシンの命令は、実行するときにキューのヘッド（データを取り出すため）とキューのテール（データを入れるため）の情報を必要とする。これらの情報は、キュー計算法がもともとシリアル計算であることから、その命令以前の命令（便宜のため以前命令とよぶ）の実行がすべて終わっていることを前提に手に入れることができる。ところが命令の実行には時間がかかるので、ある命令を実行するときには以前命令にはまだ未完了命令が含まれている。それ故、以前命令が未完了であることを前提にこの情報を手にいれなければならない。すなわち、未完了の以前命令がシリアルに実行されたとする仮定の下でこの情報を計算する必要がある。これをキューヘッド値とキューテール値の計算と呼ぶ。
【００２４】
次に、そのアーキテクチャについて説明する。
【００２５】
図６は本発明にかかる並列キュープロセッサの構造を示す図である。
【００２６】
この図に示すように、命令メモリ１にはプログラムが入っており、データメモリ５には処理するデータが入っている。
【００２７】
フェッチユニット２は命令メモリ１から複数個（１個を含む）の命令を取り出し、命令とキューとの関係をつける。並列実行命令発行ユニット３は、命令を実行するのに必要なデータがキューにあるかどうかをチェックし、必要なデータがある命令（実行可能命令）を実行ユニット４に送る（命令発行）。このとき、実行可能な命令はすべて実行ユニット４に送られる。実行ユニット４は送られてきた命令すべてを並列に実行する。命令実行の結果得られたデータはキュー６に格納される。
【００２８】
次に、本発明の実施例を示す同時実行可能命令の判断方法について説明する。
【００２９】
説明をわかりやすくするために最初に用語を定義する。
【００３０】
キュープロセッサでは命令はキューのヘッド（ＱＨ）からデータを取り出しそれを処理しその結果をキューのテール（ＱＴ）に入れることを原則とするキュー計算原理にそって命令を逐次に実行する。キュー移動型キューのキューヘッド（ＱＨ）とキューテール（ＱＴ）はデータの取り出し挿入によって変化する。すなわちＱＨとＱＴに囲まれた領域がキューとなる。
【００３１】
ライブキューヘッダＬＱＨとは、以前キュー内のデータであってすでに使い終わっているが、将来また使用されるかもしれないデータが入っているキューの限界位置を示す値である。また、ある種のキュー計算方法ではデータは順番ではなく離散的に挿入される。そのもっとも離れた位置を示す値がライブキューテールＬＱＴである。ＬＱＨは自動またはプログラムによって変化させる。
【００３２】
今実行可能かどうかを調べようとしている命令群を実行可調査中命令群（簡単に調査中命令群）と呼び、調査中に実行されつつある命令群を実行中命令群と呼ぶことにする。命令群はＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｃｔｉｏｎ  Ｗａｒｄ）コンピュータのようにバリヤ同期によってステップ的に実行されるとする。
【００３３】
実行中命令群が実行終了時に、キューヘッダなどがどのような値になるかは実行前にわかる。また、調査中命令群のそれぞれの命令の実行を終了したときのキューヘッダ等の値も調査中に計算できる。
【００３４】
今、実行中命令群がすべて実行されたときのライブキューヘッダＬＱＨ、キューヘッダＱＨ、キューテールＱＴ、ライブキューテールＬＱＴの値をＬＱＨｐ，ＱＨｐ，ＱＴｐ，ＬＱＴｐとする。現在実行可能かどうかを調査中の命令をｉとし、それ以前の命令をすべて実行したとしたときのヘッダなどの値をＬＱＨｉ−１，ＱＨｉ−１，ＱＴｉ−１，ＬＱＴｉ−１とする。また、調査中命令群をすべて実行したとしたときのヘッダの値をＬＱＨｓ，ＱＨｓ，ＱＴｓ，ＬＱＴｓとする。
【００３５】
次に、キューヘッド、キューテール値の計算について説明する。
【００３６】
並列キュープロセッサでは命令を同時に実行するが、基本的にはキュー計算原理に沿って逐次に実行されるとしなければならないので、それぞれの命令を実行するに際してその命令用のキューのヘッドとテールの値が必要である。これらの値は、今実行しようとしている命令以前の命令が実行されたと仮定することによって計算できる。
【００３７】
計算は
ＱＨｉ＝ＱＨｐ＋それ以前に実行されると仮定されている命令が使用するデータの総数
＝ＱＨｐ＋Σ♯  ｏｆ  ｃｏｎｓｕｍｅｄ  ｄａｔａ
ＱＴｉ＝ＱＴｐ＋それ以前に実行されると仮定されている命令が生産するデータの総数
＝ＱＴｐ＋Σ♯  ｏｆ  ｐｒｏｄｕｃｅｄ  ｄａｔａ
によってなされる。
【００３８】
計算回路は図７、図８に示すように簡単な回路で構成できる。
【００３９】
次に、本発明の並列実行可能命令の高速判断方法について説明する。
【００４０】
まず、基本原理について述べる。
【００４１】
命令が実行可能かどうかは、その命令が必要とするデータがキュー内にあるかどうかで判断する。並列実行は実行中命令群の実行がすべて終わったと仮定したとき、調査中命令群のデータがキュー内にあれば実行可能と判断する。実行可能と判断された命令は次のステップで同時に実行可能であり、これが並列に実行できる命令群である。
【００４２】
必要なデータがあるかどうかは、そのデータが格納されているべき場所を調べることによって知ることができる（位置法）。また、位置は知らなくてもキュー内のデータ数を調べ、それが必要としているデータ数より多いかどうかで実行可能かどうかを調べることもできる（データ数法）。ただし、この方法ではデータの生産数と消費数の関係が明らかでなければならない。また、必要としているデータの取り出し場所がデータが入っている領域にあるかどうか、すなわち、アクセスしようとしている場所がデータが入っているキューの領域（ＱＨｐ〜ＱＴｐまたはＬＱＨｐ〜ＱＴｐ）であるかどうかによっても実行可能かどうかを知ることができる（領域法）。
【００４３】
そこで、まず、従来の実行可能命令の判断方法である位置法について説明する。
【００４４】
命令が必要とするデータがキュー１０の指定位置にあるかどうかをチェックし、あれば実行可能である。これを調べるためには、図９に示すように、キュー１０の各ワードにデータが入っているかどうかを示すフラグとキュー１０とフェッチした命令間にスイッチマトリックス１１とＡＮＤ回路１２を用意し、このスイッチマトリックス１１のスイッチを閉じることによって実行可能かどうかを判断していた。この場合、フラグやスイッチマトリックス１１のハード量が多くなり、また、多くのＡＮＤ回路１２が必要であった。図では、キューの２と３にデータが入っているが、この情報のＡＮＤをとることによってａｄｄ２，３，６命令が実行可能であるかどうかがわかる。
【００４５】
次に、本発明のデータ数法について説明する。
【００４６】
このデータ数法は、データの数だけによって実行可能命令を判別する方法である。基本的なキュー計算方法では、命令が使うデータはすべてキューに命令の実行順に格納される。命令が実行可能であるかどうかは命令に従う数だけのデータがキューの中にあるかどうかを確かめればわかる。例えば、図９ではキュー１０の中に４個のデータがあるので、ａｄｄ２，３，６（２個のデータが必要）とｍｕｌ４，５，７（２個のデータが必要）は実行可能であるが、ｄｉｖ６，７，８（２個のデータが必要）は実行不可能であることがわかる。ＱＨとＱＴはキュー１０にデータが入っている先頭と次に入れるテールと呼ばれるワードを示すので、これを使って実行可能命令を検出する方法は次のようになる。
【００４７】
この方法による実行可能命令を判別する方法は次のようになる。
【００４８】
１番目の命令の実行可能性＝（ＱＨ−ＱＴ）−（１番目の命令の必要データ数）
２番目の命令の実行可能性＝（ＱＨ−ＱＴ）−（１番目の命令の必要データ数）−（２番目の命令の必要データ数）
３番目の命令の実行可能性＝（ＱＨ−ＱＴ）−（１番目の命令の必要データ数）−（２番目の命令の必要データ数）−（３番目の命令の必要データ数）
この方法では、ＱＨとＱＴの値と命令の必要データ数の情報から、引き算だけで実行可能命令が判別できるので、その実行命令判別回路は図１０のような非常に簡単な構成になる。
【００４９】
図１０において、データはＱＨｐ，ＱＴｐ間につめて入れられ、また、ＱＴｐ，ＬＱＴｐ間には離散的に入れられる。このプログラムは良形でなくてはならないのでＱＴｐ，ＬＱＴｐ間のデータは調査中命令群によって使われることはない（もしＱＴｐ，ＬＱＴｐのワードすべてにデータが入れられるとＬＱＴｐはＱＴｐとなる）。したがって、ＱＴｐ，ＬＱＴｐ間のデータ数によって調査中命令が実行可能かどうかが判別（判断）できる。すなわち、
ＱＴｐ−ＱＨｉ−１＞＝命令が必要とするデータ数
であればその命令は実行可能である。
【００５０】
次に、本発明のキュー領域法について説明する。
【００５１】
この方法はキュー内にデータが隙間なく詰められる場合に使用できる。
【００５２】
命令が必要とするデータの場所は、オペランド（ａｄｄ２，３，６の２，３）で示される。このオペランドがデータの入っている領域を示しているかどうかを調べることによっても、その命令が実行可能かどうかを調べることができる。すなわち、オペランドがＱＨと（ＱＴ−１）の間にあるかどうかを調べることによって実行可能かどうかを判断できる。
【００５３】
例えば、図９ではＱＨ＝２、ＱＴ＝６であるので、
ａｄｄ２，３，４      ２＜＝２，３＜＝５      で実行可能
ｍｕｌ４，５，７      ２＜＝４，５＜＝５      で実行可能
ｄｉｖ６，７，８      ２＜＝６，７＜＝５      で実行不可能
のように実行可能かどうかを調べることができる。
【００５４】
このキュー領域方法では使う情報はＱＨとＱＴとオペランドであり、比較するだけでよいので簡単に実行可能命令判別回路が構成できる。もし、キューにデータが格納されている下限がわかる場合には、ＱＴ−１と比較するだけで構成することができる。
【００５５】
実際の実行命令判別回路は図１１のようになる。キュープログラムでは調査中命令の最初の命令は常に実行可能となっている。
【００５６】
図１１において、一般にＬＱＨｐ，ＱＴｐの間にはデータが隙間なく詰められる。したがって、調査中命令が実行可である条件は、この命令がポイントするキュー番地がこの間にあることである。すなわち、
ＬＱＨｐ＜＝レジスタ番号＜ＱＴｐ
である。
【００５７】
プログラムは、一般にＬＱＨｐ以前（若い番地）にあるデータを参照するようには書かれない。従ってその場合には
レジスタ番号＜ＱＴｐ
によって実行可能命令が判別できる。
【００５８】
この場合も、ＱＨ計算回路と多くの共通点があることが特徴である。
【００５９】
次に、キューヘッド、キューテール値の計算回路と並列実行可能判別回路との合成について説明する。
【００６０】
図１０と図１１の並列実行可能判別回路は図７と図８のキューヘッド、キューテール値の計算回路と非常に似た回路を含んでいることがわかる。
【００６１】
したがって、データ数法、キュー領域法の並列実行可能判別回路は、キューヘッド、キューテール値計算回路を利用して構成できることがわかる。
【００６２】
図１０から明らかなように、この回路は、調査中命令０の消費データの数とＱＴｐ−ＱＨｐとを比較する第１の比較部２１と、調査中命令０の消費データの数と調査中命令１の消費データの数とを加算する第１の加算部２２と、前記第１の加算部２２の出力とＱＴｐ−ＱＨｐとを比較する第２の比較部２３と、調査中命令２の消費データの数と前記第１の加算部２２の出力とを加算する第２の加算部２４と、この第２の加算部２４の出力とＱＴｐ−ＱＨｐとを比較する第３の比較部２５と、調査中命令３の消費データの数と前記第２の加算部２４の出力とを加算する第３の加算部２６と、この第３の加算部２６の出力とＱＴｐ−ＱＨｐとを比較する第４の比較部２７とを具備し、前記各比較部２１，２３，２５又は２７の出力ＡがＡ＜０であるならば、命令が実行可能であると判定することができる。
【００６３】
また、図１１から明らかなように、この回路は、調査中命令０の消費データの数とキューヘッダＱＨｐ−１とを加算する第１の加算部３１と、調査中命令１の消費データの数と前記第１の加算部３１の出力とを加算する第２の加算部３２と、この第２の加算部３２の出力とキューテールＱＴｐとを比較する第１の比較部３３と、調査中命令２の消費データの数と前記第２の加算部３２の出力とを加算する第３の加算部３４と、この第３の加算部３４の出力とキューテールＱＴｐとを比較する第２の比較部３５と、調査中命令３の消費データの数と前記第３の加算部３４の出力とを加算する第４の加算部３６と、この第４の加算部３６の出力とキューテールＱＴｐとを比較する第３の比較部３７とを具備し、前記第１の加算部からの出力値である場合、又は前記各比較部３３，３５又は３７の出力ＡがＡ＜０である場合には、命令が実行可能であると判定することができる。
【００６４】
図７、図８、図１０、図１１に示す回路は、非常に似ているので、１つの回路として構成することができる。これはハードウェアを簡素化するので、キュープロセッサの大きな特徴になりうる。
【００６５】
なお、図７、図８、図１０、図１１の回路は、加算部が直列に接続された構成になっているが、これを高速化のため並列回路で実現することも可能である。
【００６６】
また、本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づいて種々の変形が可能であり、これらを本発明の範囲から排除するものではない。
【００６７】
【発明の効果】
以上、詳細に説明したように、本発明によれば、以下のような効果を奏することができる。
【００６８】
（Ａ）個々のデータを比べるかわりに、データの数を数えるかデータの格納領域との比較を行うだけで、命令が実行可能になっているかを調べることができるので、ハードウェアが簡素化される。
【００６９】
（Ｂ）データ数法を用いた並列キュープロセッサの高速実行可能命令の判別回路を簡単に構成することができる。
【００７０】
（Ｃ）キュー領域法を用いた並列キュープロセッサの高速実行可能命令の判別回路を簡単に構成することができる。
【００７１】
（Ｄ）高速実行可能命令とキューヘッドとキューテールの計算回路を１つの回路で構成することにより、回路構成を簡単化することができる。
【図面の簡単な説明】
【図１】  本発明にかかるデータの流れによった計算方法を示すデータフロープログラムを示す図である。
【図２】  キューの内容を示す図である。
【図３】  命令の実行によるキューの内容の変化（データがキュー内を移動）を示す図である。
【図４】  命令の実行によるキューの内容の変化（ポインタによってキューが移動）を示す図である。
【図５】  命令の並列実行によるキューの内容の変化を示す図である。
【図６】  本発明にかかる並列キュープロセッサの構造を示す図である。
【図７】  ＱＨ計算回路図である。
【図８】  ＱＴ計算回路図である。
【図９】  従来の位置法による実行可能命令の判別回路である。
【図１０】  本発明のデータ数法による実行可能命令の判別回路である。
【図１１】  本発明の領域法による実行可能命令の判別回路である。
【符号の説明】
１    命令メモリ
２    フェッチユニット
３    並列実行命令発行ユニット
４    実行ユニット
５    データメモリ
６，１０    キュー
１１    スイッチマトリックス
１２    ＡＮＤ回路
２１，３３    第１の比較部
２２，３１    第１の加算部
２３，３５    第２の比較部
２４，３２    第２の加算部
２５，３７    第３の比較部
２６，３４    第３の加算部
２７    第４の比較部
３６    第４の加算部
【図１】
0003712674.tif 000002
【図２】
0003712674.tif 000003
【図３】
0003712674.tif 000004
【図４】
0003712674.tif 000005
【図５】
0003712674.tif 000006
【図６】
0003712674.tif 000007
【図７】
0003712674.tif 000008
【図８】
0003712674.tif 000009
【図９】
0003712674.tif 000010
【図１０】
0003712674.tif 000011
【図１１】
0003712674.tif 000012