(57)【特許請求の範囲】
【請求項１】
複数の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置において、
定められた元制御情報列から、動作が不要であることを示す無効制御情報と特定の動作を指定する予め定められた前記無効制御情報とは異なる特定制御情報とを除去した圧縮制御情報列を記憶する第１記憶手段と、
前記元制御情報列から前記圧縮制御情報列を生成する際の除去関係を表す除去情報を記憶する第２記憶手段と、
前記圧縮制御情報列及び前記除去情報に基づいて、各被制御対象に前記制御情報を供給する供給制御手段と、を備え、
前記供給制御手段は、各被制御対象に前記制御情報を供給する各タイミングにおいて、各被制御対象に関し、
前記圧縮制御情報列から前記特定制御情報が除去されていることを、前記除去情報が示している場合は、当該被制御対象に前記特定制御情報を供給する一方、
前記圧縮制御情報列から前記無効制御情報が除去されていることを、前記除去情報が示している場合にも、当該被制御対象に前記特定制御情報を供給し、
前記圧縮制御情報列から前記特定制御情報及び前記無効制御情報が除去されていることを、前記除去情報が示していない場合は、当該被制御対象に前記圧縮制御情報列に含まれる制御情報を供給することを特徴とする制御情報供給装置。
【請求項２】
複数の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置であって、
各被制御対象に前記制御情報を供給する各タイミングにおいて、各被制御対象に関し、当該被制御対象の動作が不要である場合、及び、当該被制御対象が実行すべき動作が特定の動作である場合は、当該被制御対象に前記特定の動作を実行させるための予め定められた、動作が不要であることを示す無効制御情報とは異なる特定制御情報を供給することを特徴とする制御情報供給装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理を行う複数の被制御対象に対してコマンドやアドレス等の制御情報を供給するための制御情報供給装置に関する。
【背景技術】
【０００２】
近年、複数のＡＬＵ（Arithmetic and Logic Unit）を並列動作させる並列処理回路が注目されている。並列処理回路は、例えば、リコンフィギャラブル回路にて実現される。
この種の回路では、並列動作に係る全てのＡＬＵに対して、コマンドを同一のタイミング（同一の時刻）に供給する必要がある。また、各ＡＬＵに供給すべきコマンドは時々刻々と変化する。
【０００３】
ところで、この種の回路においては、全てのＡＬＵが同時に動くケースは比較的少なく、同一のタイミングにおいて一部のＡＬＵのみが動作をしていることが多い。
【０００４】
図１０は、４つのＡＬＵ０〜ＡＬＵ３に対して順次供給されるコマンドを記述したコマンド列を表している。このコマンド列は、ＡＬＵ０、１、２及び３に対して、タイミングｔ１、ｔ２、・・・に、夫々、コマンド“ｄ０、ｄ１、ｄ２、ＸＸ”、“ｄ３、ＸＸ、ｄ４、ＸＸ”、・・・を供給すべきことを規定している。“ＸＸ”はＮＯＰ（no-operation）である。このため、図１０のコマンド列では、例えば、タイミングｔ１においてＡＬＵ３の動作が不要であることを表している。
【０００５】
図１０のようなコマンド列は、コマンドＲＡＭ（Random Access Memory）に格納されることになるが、上記のようなＮＯＰ部分の存在は、コマンドＲＡＭの必要メモリ領域を増大させ、これに伴って回路の消費電力も増大させる。
【０００６】
これを考慮して構成された並列処理型コンピュータが下記特許文献１に開示されている。この並列処理型コンピュータでは、不要なコマンドである“ＸＸ”を全て除いた圧縮データが作成されると共に、コマンドの圧縮状態に関する情報が作成される。この情報は、圧縮されたデータ位置に「０」が割り当てられ、圧縮されていないデータ位置に「１」が割り当てられたインデックスである。そして、このインデックスを用いて圧縮データを伸張し、所望のコマンドを復元するようにしている。図１１に、特許文献１の手法を適用した場合に、図１０のコマンド列に対応して作成される圧縮データ及びインデックスを示す。
【０００７】
【特許文献１】特開平７−１８２１６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記特許文献１に記載されている手法は、コマンドＲＡＭの必要メモリ領域の削減に貢献するものであるが、リコンフィギャラブル回路等の並列処理回路を実装した集積回路において、コマンドＲＡＭの占有面積は大きく、必要メモリ領域の更なる削減が切望されている。
【０００９】
また、並列演算を行う場合に着目して従来の問題点を説明したが、並列データ読み出し処理及び並列データ書き込み処理など、演算以外の処理を並列に行う場合においても、同様の問題は存在する。
【００１０】
そこで本発明は、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減に寄与する制御情報供給装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る第１の制御情報供給装置は、複数の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置において、定められた元制御情報列から、動作が不要であることを示す無効制御情報と特定の動作を指定する予め定められた前記無効制御情報とは異なる特定制御情報とを除去した圧縮制御情報列を記憶する第１記憶手段と、前記元制御情報列から前記圧縮制御情報列を生成する際の除去関係を表す除去情報を記憶する第２記憶手段と、前記圧縮制御情報列及び前記除去情報に基づいて、各被制御対象に前記制御情報を供給する供給制御手段と、を備え、前記供給制御手段は、各被制御対象に前記制御情報を供給する各タイミングにおいて、各被制御対象に関し、前記圧縮制御情報列から前記特定制御情報が除去されていることを、前記除去情報が示している場合は、当該被制御対象に前記特定制御情報を供給する一方、前記圧縮制御情報列から前記無効制御情報が除去されていることを、前記除去情報が示している場合にも、当該被制御対象に前記特定制御情報を供給し、前記圧縮制御情報列から前記特定制御情報及び前記無効制御情報が除去されていることを、前記除去情報が示していない場合は、当該被制御対象に前記圧縮制御情報列に含まれる制御情報を供給することを特徴とする。
【００１２】
或る被制御対象（例えば、ＡＬＵ）に関し、或るタイミングにおいて無効制御情報（例えばＮＯＰ）が定義されている場合は、無効制御情報以外の特定制御情報を該被制御対象に供給しても動作に支障はない。これに着目し、上記のように構成する。これにより、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減が図られる。この結果、例えば、本発明を利用して集積回路を形成した場合は、チップ面積の小型化及び低消費電力化が期待できる。
【００１３】
本発明に係る第２の制御情報供給装置は、複数の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置であって、各被制御対象に前記制御情報を供給する各タイミ
ングにおいて、各被制御対象に関し、当該被制御対象の動作が不要である場合、及び、当該被制御対象が実行すべき動作が特定の動作である場合は、当該被制御対象に前記特定の動作を実行させるための予め定められた、動作が不要であることを示す無効制御情報とは異なる特定制御情報を供給することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減が期待できる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態につき、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付す。
【００２２】
＜＜第１実施形態＞＞
図１は、本発明の第１実施形態に係る並列処理システム１の全体構成ブロック図である。並列処理システム１は、集積回路２と、元プログラム３と、圧縮部４と、を有して構成される。
【００２３】
図２に、集積回路２の内部ブロック図を示す。集積回路２は、並列処理回路１１、コマンドＲＡＭ（Random Access Memory）１２、インデックスＲＡＭ１３、特殊ＲＡＭ１４、セレクタ１５、順序回路１６、カウンタ１７、及び、Ｄ型フリップフロップであるＤＦＦ１８、を有して構成される。
【００２４】
並列処理回路１１は、例えば、論理回路の再構成を可能とする機能を備えたリコンフィギャラブル回路であり、内部に四則演算や論理演算などを行う、被制御対象としてのＡＬＵ（Arithmetic and Logic Unit）を複数個、備えている。以下、説明の具体化のため、並列処理回路１１に含まれる４つのＡＬＵ、即ち、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］及びＡＬＵ［３］に着目する。尚、典型的には例えば、並列処理を行う数１０〜数１００個程度のＡＬＵ（不図示）が、並列処理回路１１に組み込まれる。
【００２５】
４つのＡＬＵ［０］〜ＡＬＵ［３］は、並列処理を行うための並列処理回路１１に組み込まれおり、４つのＡＬＵ［０］〜ＡＬＵ［３］には同時にコマンドが供給される必要がある。ここにおける「同時」とは、並列処理回路１１の動作に支障がない程度の多少の時間的ずれを含む概念である。
【００２６】
セレクタ１５は、集積回路２内の他の部位と協働しつつ、次々と、４つのＡＬＵ［０］〜ＡＬＵ［３］に対して同時に（即ち、並列に）コマンドを制御情報として供給する。ＡＬＵ［０］〜ＡＬＵ［３］は、供給されたコマンドに従った演算処理を行い、演算結果を出力する。ＡＬＵ［０］〜ＡＬＵ［３］の出力値は、後段の回路に供給される、或いは、ＡＬＵ［０］〜ＡＬＵ［３］の入力値としてフィードバックされる。
【００２７】
ＡＬＵ［０］〜ＡＬＵ［３］に本来供給されるべきコマンドを列挙したものの例として、図３の元コマンド列６１を表す。この元コマンド列６１は、図１の元プログラム３内に表現されている。以下、説明の具体化のため、元コマンド列６１の記述内容を例に挙げつつ並列処理システム１の説明を行う。
【００２８】
元コマンド列６１には、順次訪れるタイミングＴ１、Ｔ２、Ｔ３、Ｔ４、・・・においてＡＬＵ［０］〜ＡＬＵ［３］に供給すべきコマンドが記述されている。タイミングＴ１、Ｔ２、Ｔ３、Ｔ４、・・・の順番で時間が進行する。
【００２９】
元コマンド列６１は、
“タイミングＴ１において、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に供給すべきコマンドが、夫々、コマンドＤ０、ＤＵ、Ｄ１、ＸＸであること”、
“タイミングＴ２において、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に供給すべきコマンドが、夫々、コマンドＤ２、ＸＸ、ＤＵ、ＸＸであること”、
“タイミングＴ３において、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に供給すべきコマンドが、夫々、コマンドＸＸ、ＤＵ、ＸＸ、ＸＸであること”、
及び
“タイミングＴ４において、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に供給すべきコマンド、夫々、コマンドＤ３、Ｄ４、Ｄ５、Ｄ６であること”、
を規定している。
【００３０】
コマンドＤ０〜Ｄ６及びＤＵは、ＡＬＵ（ＡＬＵ［０］〜ＡＬＵ［３］の何れか）が実行すべき演算内容を指定するものであり、例えば、それらは、加算に対応するＡＤＤ、減算に対応するＳＵＢ、乗算に対応するＭＵＬ、論理和に対応するＯＲ、論理積に対応するＡＮＤ、などである。
【００３１】
コマンドＸＸは、そのタイミングにおけるＡＬＵの動作が不要であることを示す無効コマンド、即ち、ＮＯＰ（no-operation）である。全てのＡＬＵが同時に動作する必要があるケースは比較的少なく、同一タイミングにおいては、一部のＡＬＵのみが動作することが多い。このため、並列処理を行うためのプログラムには、元コマンド列６１のように、ＮＯＰが多く含まれる。
【００３２】
コマンドＤ０〜Ｄ６の内容は、互いに異なっていても良いし、全部又は一部が同じであってもよい（コマンドの内容は、コマンドの種類と換言することもできる）。但し、コマンドＤ０〜Ｄ６の内容は、全て、コマンドＤＵのそれとは異なる。尚、元コマンド列６１には、複数のコマンドＤＵが出現するが、それらは同じ内容（種類）のコマンドである。また、ＮＯＰ以外のコマンドＤ０〜Ｄ６及びＤＵは、上記無効コマンドと対比して、ＡＬＵの演算動作を指示する有効コマンド（有効制御情報）と呼ぶことができる。
【００３３】
例えば、コマンドＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５及びＤ６は、夫々、ＡＤＤ、ＳＵＢ、ＭＵＬ、ＡＤＤ、ＳＵＢ、ＭＵＬ及びＯＲであり、コマンドＤＵは、ＡＮＤである。この場合、コマンドＤ０とＤ３の内容は同じであり、コマンドＤ１とＤ４の内容は同じであり、コマンドＤ２とＤ５の内容は同じであり、コマンドＤ０とＤ１とＤ２とＤ６の内容は互いに異なる。そして、コマンドＤＵの内容は、コマンドＤ０〜Ｄ６の内容とは異なる。
【００３４】
尚、説明の具体化及び簡略化のため、コマンドＤＵとコマンドＸＸ以外のコマンドとしてコマンドＤ０〜Ｄ６のみを挙げているが、タイミングＴ４より後に出現する他のコマンドの内容（種類）も、コマンドＤＵのそれとは異なる。
【００３５】
圧縮部４は、元コマンド列６１を、圧縮しつつ集積回路２に供給可能なデータ形式に変換するコンパイラとして機能する。圧縮部４は、例えば、圧縮プログラムとして構成されており、その圧縮プログラムと図１の元プログラム３は、ハードディスク等の記録媒体に格納される。そして、圧縮部４（圧縮プログラム）は、該記録媒体の記憶内容を読み出し可能なコンピュータ（不図示）上で動作し、元コマンド列６１を圧縮して図３に示すような圧縮コマンド列６２及びインデックス６３を生成する。
【００３６】
尚、上記のコンピュータは、圧縮部４の機能を実現するための装置（制御情報圧縮装置）として機能し、上記のコンピュータを、本実施形態（及び後述する第２実施形態）に係る並列処理システムの構成要素と捉えることも可能である。また、本実施形態（及び後述する第２実施形態）に係る並列処理システム全体を、１つの装置に搭載することも可能である。また、圧縮部４を、ハードウェアによって構成するようにしても構わない。
【００３７】
元コマンド列６１に含まれるコマンドの内、いずれのコマンドをコマンドＤＵとして取り扱うかは元プログラム３が決定するわけではなく、圧縮部４が、それを決定する。圧縮コマンド列６２及びインデックス６３を生成するに当たって、圧縮部４は、まず、元コマンド列６１に含まれるコマンドの中からコマンドＤＵとなるべきコマンドを決定する。
【００３８】
具体的には例えば、圧縮部４は、元コマンド列６１に含まれる全てのコマンドの内、最も出現頻度が高いコマンド（換言すれば、出現個数が最も大きいコマンド）を、コマンドＤＵとして選定する。但し、この際、ＮＯＰは除外して考える。
【００３９】
例えば、タイミングＴ１〜Ｔ４の間におけるコマンドだけに着目し、コマンドＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５及びＤ６が、夫々、ＡＤＤ、ＳＵＢ、ＭＵＬ、ＡＤＤ、ＳＵＢ、ＭＵＬ及びＯＲであり、且つ、タイミングＴ１及びＴ３にＡＬＵ［１］に供給されるべきコマンドとタイミングＴ２にＡＬＵ［２］に供給されるべきコマンドがＡＮＤであった場合、ＡＮＤの出現個数が「３」で最も大きいため、ＡＮＤがコマンドＤＵとして選定される。ＮＯＰの出現個数は「６」でありＡＮＤのそれよりも大きいが、上述したようにＮＯＰは除外して考える。
【００４０】
後の説明を参照して明らかとなるが、最も出現頻度が高いコマンドをコマンドＤＵとして選定すると、コマンドの圧縮効果が最も大きくなる。但し、２番目（又は３番目又は４番目・・・）に出現頻度が高いコマンドをコマンドＤＵとして選定することも可能である。但し、コマンドの圧縮効果を考慮すると、なるだけ出現頻度が高いコマンドをコマンドＤＵとして選定することが望ましい。
【００４１】
圧縮コマンド列６２は、元コマンド列６１からコマンドＸＸ（ＮＯＰ）とコマンドＤＵとを除去ことによって得られる残余のコマンドを列挙して構成される。本実施形態の例の場合、圧縮コマンド列６２は、コマンドＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５及びＤ６、・・・を、この順番で列挙したコマンド列となる。元コマンド列６１に含まれる、タイミングＴ１〜Ｔ４までの合計１６個のコマンドは、圧縮コマンド列６２において７個のコマンドＤ０〜Ｄ６に圧縮されることになる。
【００４２】
インデックス６３は、元コマンド列６１から圧縮コマンド列６２を生成する際に、元コマンド列６１の、どのＡＬＵに対するどのタイミングのコマンドを除去したのかを表している。つまり、インデックス６３は、元コマンド列６１から圧縮コマンド列６２を生成する際の除去関係を表している。
【００４３】
インデックス６３では、各タイミングについて、ＡＬＵごとに１又は０の値を割り当てている。インデックス６３には、タイミングＴ１に対応するインデックスデータＩＮＤＥＸ［１］、タイミングＴ２に対応するインデックスデータＩＮＤＥＸ［２］、タイミングＴ３に対応するインデックスデータＩＮＤＥＸ［３］、及び、タイミングＴ４に対応するインデックスデータＩＮＤＥＸ［４］、・・・が含まれおり、各インデックスデータは、０又は１の値をとる４つの数値（フラグ）から構成される。インデックスデータＩＮＤＥＸ［ｋ］を、以下、単に、ＩＮＤＥＸ［ｋ］と表記することがある。ｋは、１〜４の範囲内の各整数をとる。
【００４４】
本実施形態の例の場合、図３に示す如く、
ＩＮＤＥＸ［１］には、「１、０、１、０」がこの順番で格納され、
ＩＮＤＥＸ［２］には、「１、０、０、０」がこの順番で格納され、
ＩＮＤＥＸ［３］には、「０、０、０、０」がこの順番で格納され、
ＩＮＤＥＸ［４］には、「１、１、１、１」がこの順番で格納されている。
【００４５】
各ＩＮＤＥＸ［ｋ］に対応して割り当てられる４つの数値（１又は０）は、左から順に、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に対応している。つまり、例えば、タイミングＴ２において、ＡＬＵ［０］には「１」が割り当てられ、ＡＬＵ［１］〜ＡＬＵ［３］には「０」が割り当てられる。
【００４６】
インデックス６３内の、或るタイミングの或るＡＬＵに対応する「１」は、該タイミングにおいて該ＡＬＵに供給すべきコマンドが圧縮コマンド列６２に含まれていることを表している。一方、或るタイミングの或るＡＬＵに対応する「０」は、該タイミングにおいて該ＡＬＵに供給すべきコマンドが、圧縮コマンド列６２に含まれておらず、コマンドＸＸまたはコマンドＤＵであったことを表している。
【００４７】
圧縮部４によって生成された圧縮コマンド列６２及びインデックス６３の内容は、夫々、集積回路２の入力端子（不図示）を介して、コマンドＲＡＭ１２及びインデックスＲＡＭ１３に伝達される。コマンドＲＡＭ１２は圧縮コマンド列６２を記憶し、インデックスＲＡＭ１３はインデックス６３を記憶する。また、圧縮部４によって決定されたコマンドＤＵを表す情報が集積回路２の入力端子（不図示）を介して特殊ＲＡＭ１４に伝達される。特殊ＲＡＭ１４は、コマンドＤＵを記憶する。
【００４８】
そして、セレクタ１５は、コマンドＲＡＭ１２に記憶された圧縮コマンド列６２と、インデックスＲＡＭ１３に記憶されたインデックス６３と、特殊ＲＡＭ１４に記憶されたコマンドＤＵとを参照して、ＡＬＵ［０］〜ＡＬＵ［３］に対してコマンドを出力する。詳細は後述するが、単純に述べると、インデックス６３内の値が「１」の場合はコマンドＲＡＭ１２からのコマンドを、インデックス６３内の値が「０」の場合は特殊ＲＡＭ１４からのコマンドＤＵを出力する。
【００４９】
タイミングＴ１〜Ｔ４において、ＡＬＵ［０］〜ＡＬＵ［３］に実際に供給されるコマンドを表す供給コマンド列６４を図４に示す。
【００５０】
図４に示す如く、実際には、
“タイミングＴ１において、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に、夫々、コマンドＤ０、ＤＵ、Ｄ１、ＤＵが供給され”、
“タイミングＴ２において、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に、夫々、コマンドＤ２、ＤＵ、ＤＵ、ＤＵが供給され”、
“タイミングＴ３において、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に、夫々、コマンドＤＵ、ＤＵ、ＤＵ、ＤＵが供給され”、且つ
“タイミングＴ４において、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に、夫々、コマンドＤ３、Ｄ４、Ｄ５、Ｄ６が供給される”。
【００５１】
供給コマンド列６４は、元コマンド列６１におけるコマンドＸＸをコマンドＤＵに置換したものに等しい。或るＡＬＵに関し、或るタイミングにおいてコマンドＸＸ（即ち、ＮＯＰ）が定義されているということは、該タイミングにおいて該ＡＬＵの動作は不要であり、また、それ故に、該ＡＬＵの出力は何れの回路にも必要とされていないことを意味する。つまり、該タイミングにおいて該ＡＬＵの出力は何れの回路にも利用されない（換言すれば、何れの回路にも接続されない）。従って、そのタイミングにおいてコマンドＤＵを供給し、コマンドＤＵに従った演算をＡＬＵに実行させても、集積回路２（及びそれを含む装置）の全体の動作に問題は生じない。
【００５２】
図３と図１０及び図１１との比較からも明らかなように、上述のようなコマンド圧縮手法及びコマンド供給手法を採用することにより、上記特許文献１に記載の手法と比べて、より高い圧縮率が実現される。この結果、コマンドを格納するために必要なメモリ領域が縮小され、集積回路のチップ面積の小型化及び低消費電力化が図られる。
【００５３】
以下、図２などを参照しつつ、図４に示すようなコマンドの具体的な供給動作について説明する。
【００５４】
インデックスＲＡＭ１３は、データクロックの供給を受け、該データクロックに従ってＩＮＤＥＸ［ｋ］を出力する。具体的には例えば、タイミングＴ１に対応するデータクロックが供給された時点でＩＮＤＥＸ［１］を出力する。同様に、タイミングＴ２に対応するデータクロックが供給された時点でＩＮＤＥＸ［２］を出力し、タイミングＴ３に対応するデータクロックが供給された時点でＩＮＤＥＸ［３］を出力し、タイミングＴ４に対応するデータクロックが供給された時点でＩＮＤＥＸ［４］を出力する。
【００５５】
タイミングＴ１とＴ２との間の間隔、タイミングＴ２とＴ３との間の間隔、タイミングＴ３とＴ４との間の間隔、（及びタイミングＴ４と後述するタイミングＴ５との間の間隔）・・・は、インデックスＲＡＭ１３に供給されるデータクロックの周期に相当する。
【００５６】
順序回路１６は、インデックスＲＡＭ１３から出力されるＩＮＤＥＸ［ｋ］に基づいて、変数ＰＯＩＮＴＥＲを生成してセレクタ１５に供給すると共にカウンタ１７を介してコマンドＲＡＭ１２の出力を制御する。また、順序回路１６は、ＤＦＦ１８の記憶内容及び出力内容を更新するための更新クロックを発生する。
【００５７】
カウンタ１７は、コマンドＲＡＭ１２のアドレスを生成するためのカウンタであり、順序回路１６の制御の下、コマンドＲＡＭ１２から出力されるべきデータ（該データはコマンドを表す）が格納されたアドレスをコマンドＲＡＭ１２に対して指定する。
【００５８】
コマンドＲＡＭ１２は、カウンタ１７から指定されるアドレスに従って、自身の記憶内容である圧縮コマンド列６２内のコマンドを順次出力する。本実施形態では、４つのコマンドが同時に出力され、その４つのコマンドはＤＦＦ１８とセレクタ１５に供給される。尚、説明の便宜上、コマンドがＤＦＦ１８に供給されるなどと表現しているが、本明細書において、コマンドとは、勿論、ＡＬＵにとってのコマンドであり、ＤＦＦ１８などにとってのコマンドではない。従って、ＡＬＵ以外の部位との関係でコマンドと言った場合、それは、ＡＬＵにとってのコマンドを表すデータ、と解釈されるべきである。
【００５９】
ＤＦＦ１８は、コマンドＲＡＭ１２からの４つのコマンド分のデータを、自身のデータ入力端子にて受ける。そして、そのデータ入力端子にて受けたデータを、順序回路１６から出力される更新クロックに従って、記憶保持すると共に自身のデータ出力端子から出力する。ＤＦＦ１８の出力は、セレクタ１５に与えられる。また、特殊ＲＡＭ１４の記憶内容であるコマンドＤＵも、セレクタ１５に供給されている。
【００６０】
セレクタ１５は、合計９つのデータ入力部Ａ［０］〜Ａ［８］と、合計４つのデータ出力部Ｙ［０］〜Ｙ［３］と、を有する。データ入力部Ａ［０］〜Ａ［３］には、ＤＦＦ１８が出力する４つのコマンドが与えられ、データ入力部Ａ［４］〜Ａ［７］には、コマンドＲＡＭ１２が出力する４つのコマンドが与えられ、データ入力部Ａ［８］には、特殊ＲＡＭ１４が出力するコマンドＤＵが与えられる。
【００６１】
そして、セレクタ１５は、各タイミング（例えば、タイミングＴ１）において、インデックスＲＡＭ１３から供給されているＩＮＤＥＸ［ｋ］と順序回路１６から供給されている変数ＰＯＩＮＴＥＲとに基づいて、データ出力部Ｙ［０］〜Ｙ［３］の夫々をデータ入力部Ａ［０］〜Ａ［８］の何れかに接続することにより、データ出力部Ｙ［０］〜Ｙ［３］からコマンドを出力する。データ出力部Ｙ［０］、Ｙ［１］、Ｙ［２］及びＹ［３］から出力されるコマンドは、夫々、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］及びＡＬＵ［３］に供給される。
【００６２】
図５に、セレクタ１５の選択動作を説明するための図を示す。ＩＮＤＥＸ［ｋ］に格納されている４つの数値をＩ０、Ｉ１、Ｉ２及びＩ３と表記し、ＩＮＤＥＸ［ｋ］の格納内容を（Ｉ０，Ｉ１，Ｉ２，Ｉ３）にて表記する。Ｉ０、Ｉ１、Ｉ２及びＩ３は、夫々、ＡＬＵ［０］、ＡＬＵ［１］、ＡＬＵ［２］、ＡＬＵ［３］に対応している。また、３つの変数Ｓ１、Ｓ２及びＳ３を定義し、Ｓ１＝Ｉ０＋Ｉ１、Ｓ２＝Ｉ０＋Ｉ１＋Ｉ２、Ｓ３＝Ｉ０＋Ｉ１＋Ｉ２＋Ｉ３、とおく。
【００６３】
そして、各タイミング（例えば、タイミングＴ１）において、
データ出力部Ｙ［０］は、Ｉ０＝１の場合、データ入力部Ａ［ＰＯＩＮＴＥＲ］に接続される一方、Ｉ０＝０の場合、データ入力部Ａ［８］に接続され、
データ出力部Ｙ［１］は、Ｉ１＝１の場合、データ入力部Ａ［ＰＯＩＮＴＥＲ＋Ｉ０］に接続される一方、Ｉ１＝０の場合、データ入力部Ａ［８］に接続され、
データ出力部Ｙ［２］は、Ｉ２＝１の場合、データ入力部Ａ［ＰＯＩＮＴＥＲ＋Ｓ１］に接続される一方、Ｉ２＝０の場合、データ入力部Ａ［８］に接続され、
データ出力部Ｙ［３］は、Ｉ３＝１の場合、データ入力部Ａ［ＰＯＩＮＴＥＲ＋Ｓ２］に接続される一方、Ｉ３＝０の場合、データ入力部Ａ［８］に接続される。
【００６４】
例えば、変数ＰＯＩＮＴＥＲが０であって、セレクタ１５に供給されるインデックスデータがＩＮＤＥＸ［１］＝（１，０，１，０）の場合を考える。尚、図５は、この場合の接続状態を表している。
この場合、Ｉ０＝１、であるから、データ出力部Ｙ［０］はデータ入力部Ａ［ＰＯＩＮＴＥＲ］、即ち、データ入力部Ａ［０］に接続される。
また、Ｉ１＝０、であるから、データ出力部Ｙ［１］はデータ入力部Ａ［８］に接続される。
また、Ｉ２＝１、であるから、データ出力部Ｙ［２］はデータ入力部Ａ［ＰＯＩＮＴＥＲ＋Ｓ１］、即ち、データ入力部Ａ［１］に接続される。
また、Ｉ３＝０、であるから、データ出力部Ｙ［３］はデータ入力部Ａ［８］に接続される。
【００６５】
或るタイミング（例えばタイミングＴ２）においてセレクタ１５に与えられる変数ＰＯＩＮＴＥＲは、前回のタイミング（例えばタイミングＴ１）においてセレクタ１５に与えられていたインデックスデータＩＮＤＥＸ［ｋ］に対応するＳ３を、前回のタイミングにおける変数ＰＯＩＮＴＥＲに加算した値とされる（数式で表記すれば、ＰＯＩＮＴＥＲ＝ＰＯＩＮＴＥＲ＋Ｓ３）。但し、この加算によって変数ＰＯＩＮＴＥＲが４以上となった場合は、順序回路１６は、変数ＰＯＩＮＴＥＲから４を差し引き、これと同時に、更新クロックを出力してＤＦＦ１８の記憶内容及び出力内容を更新すると共にカウンタ１７を介してコマンドＲＡＭ１２の出力内容を更新する。
【００６６】
各タイミングにおけるコマンドＲＡＭ１２の出力コマンド状況などを参照して、更に具体的に説明する。
【００６７】
図６及び図７は、図２の集積回路２の内部ブロック図と対応させて、コマンドＲＡＭ１２が記憶しているコマンド及び出力するコマンド、ＤＦＦ１８が記憶して出力するコマンド、及び、特殊ＲＡＭ１４が記憶して出力するコマンドを、模式的に表した図である。図６は、タイミングＴ１、Ｔ２、Ｔ３及びＴ４に対応しており、図７は、タイミングＴ４の次のタイミングＴ５或いはそれ以降のタイミングに対応している。
【００６８】
尚、図６又は図７において、コマンドＲＡＭ１２又はＤＦＦ１８が記憶又は出力するコマンドとして記述されているコマンドＤ７〜Ｄ１５は、上述のコマンドＤ０〜Ｄ６と同様のものであり、それらはタイミングＴ５以降にＡＬＵ［０］〜ＡＬＵ［３］の何れかに供給される。
【００６９】
圧縮コマンド列６２は、コマンドＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５、Ｄ６、Ｄ７、Ｄ８、Ｄ９、Ｄ１０、Ｄ１１、Ｄ１２、Ｄ１３、Ｄ１４、Ｄ１５、・・・を、この順番で列挙したコマンド列となっており、コマンドＲＡＭ１２は、このコマンド列を、コマンドＤ０側を上位のアドレス側に割り当てて記憶している。
【００７０】
元コマンド列６１に対応するコマンドの供給の開始に先立って、順序回路１６は、コマンドＲＡＭ１２の最も上位のアドレスに格納されている４つのコマンドＤ０、Ｄ１、Ｄ２及びＤ３をＤＦＦ１８に記憶及び出力させ、更に、コマンドＲＡＭ１２に、その次のアドレスに格納されている４つのコマンドＤ４、Ｄ５、Ｄ６及びＤ７を出力させる。更に、変数ＰＯＩＮＴＥＲに初期値である０を代入する。
【００７１】
この時点及びタイミングＴ０〜Ｔ３において、ＤＦＦ１８が出力するコマンドＤ０、Ｄ１、Ｄ２及びＤ３は、夫々、セレクタ１５のデータ入力部Ａ［０］、Ａ［１］、Ａ［２］及びＡ［３］に供給され、コマンドＲＡＭ１２が出力するコマンドＤ４、Ｄ５、Ｄ６及びＤ７は、夫々、セレクタ１５のデータ入力部Ａ［４］、Ａ［５］、Ａ［６］及びＡ［７］に供給される。また、特殊ＲＡＭ１４が出力するコマンドＤＵは、常にデータ入力部Ａ［８］に供給される。
【００７２】
そして、タイミングＴ１において、セレクタ１５には、ＩＮＤＥＸ［１］＝（１，０，１，０）及びＰＯＩＮＴＥＲ＝０が供給される。この結果、上述の如く、データ出力部Ｙ［０］、Ｙ［１］、Ｙ［２］及びＹ［３］は、夫々、データ入力部Ａ［０］、Ａ［８］、Ａ［１］及びＡ［８］に接続され、図４の供給コマンド列６４に示したコマンドがＡＬＵ［０］〜ＡＬＵ［３］に並列に供給される。
【００７３】
次に、ＩＮＤＥＸ［１］に対応する変数Ｓ３（図５参照）は２であるから、タイミングＴ２においてＰＯＩＮＴＥＲ＝２（前回のＰＯＩＮＴＥＲとＳ３との和）となる。つまり、タイミングＴ２において、セレクタ１５には、ＩＮＤＥＸ［２］＝（１，０，０，０）及びＰＯＩＮＴＥＲ＝２が供給される。この結果、図５を参照して説明したセレクタ１５の選択動作に従って、データ出力部Ｙ［０］、Ｙ［１］、Ｙ［２］及びＹ［３］は、夫々、データ入力部Ａ［２］、Ａ［８］、Ａ［８］及びＡ［８］に接続され、図４の供給コマンド列６４に示したコマンドがＡＬＵ［０］〜ＡＬＵ［３］に並列に供給される。
【００７４】
次に、ＩＮＤＥＸ［２］に対応する変数Ｓ３（図５参照）は１であるから、タイミングＴ３においてＰＯＩＮＴＥＲ＝３となる。つまり、タイミングＴ３において、セレクタ１５には、ＩＮＤＥＸ［３］＝（０，０，０，０）及びＰＯＩＮＴＥＲ＝３が供給される。この結果、図５を参照して説明したセレクタ１５の選択動作に従って、データ出力部Ｙ［０］、Ｙ［１］、Ｙ［２］及びＹ［３］は、夫々、データ入力部Ａ［８］、Ａ［８］、Ａ［８］及びＡ［８］に接続され、図４の供給コマンド列６４に示したコマンドがＡＬＵ［０］〜ＡＬＵ［３］に並列に供給される。
【００７５】
次に、ＩＮＤＥＸ［３］に対応する変数Ｓ３（図５参照）は０であるから、タイミングＴ４においてＰＯＩＮＴＥＲ＝３となる。つまり、タイミングＴ４において、セレクタ１５には、ＩＮＤＥＸ［４］＝（１，１，１，１）及びＰＯＩＮＴＥＲ＝３が供給される。この結果、図５を参照して説明したセレクタ１５の選択動作に従って、データ出力部Ｙ［０］、Ｙ［１］、Ｙ［２］及びＹ［３］は、夫々、データ入力部Ａ［３］、Ａ［４］、Ａ［５］及びＡ［６］に接続され、図４の供給コマンド列６４に示したコマンドがＡＬＵ［０］〜ＡＬＵ［３］に並列に供給される。
【００７６】
次に、ＩＮＤＥＸ［４］に対応する変数Ｓ３（図５参照）は４である。タイミングＴ４における変数ＰＯＩＮＴＥＲの値「３」に「４」を加算した値は４以上であるため、上述したように、その加算後の変数ＰＯＩＮＴＥＲから４が差し引かれる。この結果、タイミングＴ５においてＰＯＩＮＴＥＲ＝３となる。
【００７７】
これと同時に、順序回路１６は、ＤＦＦ１８に更新クロックを出力してＤＦＦ１８の記憶内容及び出力内容をタイミングＴ４のコマンドＲＡＭ１２の出力内容にて更新する。更に、順序回路１６は、コマンドＤ４〜Ｄ７の格納アドレスの次のアドレスに格納されている４つのコマンドＤ８、Ｄ９、Ｄ１０及びＤ１１を、コマンドＲＡＭ１２から出力させる。尚、これらの動作は、タイミングＴ５に対応するコマンドをＡＬＵ［０］〜ＡＬＵ［３］に供給する前に実施される。
【００７８】
この結果、タイミングＴ５において、セレクタ１５にはコマンドＤ４〜Ｄ１１及びＤＵが供給され、上述のようなコマンド供給動作が繰り返し行われる。また、上述の説明からも明らかなように、本実施形態によれば、並列処理回路１１へのコマンド供給が途切れなく行われる。
【００７９】
＜＜第２実施形態＞＞
上述の第１実施形態では、被制御対象としてＡＬＵを取り扱い、その被制御対象の動作を制御するための制御情報としてコマンドを取り扱った。第１実施形態に記載の構成及び手法は、並列に演算処理を行うＡＬＵに対してだけでなく、並列にデータ読み出し又はデータ書き込みを行う記憶手段などに対しても適用可能である。この記憶手段は、例えば、ＲＡＭ及びＲＯＭ（Read Only Memory）などの半導体メモリ、光ディスクなどの記録媒体である。
【００８０】
被制御対象がＲＡＭである場合の実施形態を、第２実施形態として例示する。図８は、第２実施形態に係る集積回路２ａの内部ブロック図である。集積回路２ａは、図２の集積回路２に対応するものである。第２実施形態に係る並列処理システム（不図示）の全体的構成は、集積回路２を集積回路２ａに置換した点で第１実施形態に係る並列処理システム１のそれと相違するが、他の点において両者は同様である。
【００８１】
図２と図８の比較からも分かるように、集積回路２ａは、図２の集積回路２における並列処理回路１１及びコマンドＲＡＭ１２を夫々並列処理回路１１ａ及びアドレスＲＡＭ１２ａに置換した構成となっており、その他の点において、集積回路２及び２ａは同様である。
【００８２】
並列処理回路１１ａは、被制御対象としてのＲＡＭを複数個備えている。具体的には、図８に示す如く、並列処理回路１１ａは、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］及びＲＡＭ［３］を備えている。順次訪れる各タイミングにおいて、４つのＲＡＭ［０］〜ＲＡＭ［３］に対し、同時に（即ち、並列に）アドレスを供給する必要がある。
【００８３】
ＲＡＭ［ｍ］は、供給されたアドレスに従い、そのアドレスに対応する自身のメモリ領域内の記憶データを読み出して出力する、或いは、そのアドレスに対応する自身のメモリ領域内に指示されたデータを書き込む（ｍは、０〜３の範囲内の各整数をとる）。従って、ＲＡＭ［ｍ］に供給されるアドレスは、データ読み出し又はデータ書き込みというＲＡＭ［ｍ］の動作を制御するための制御情報と呼べる。
【００８４】
第２実施形態は、基本的に、第１実施形態における「ＡＬＵ」及び「コマンド」を、「ＲＡＭ」及び「アドレス」に読み替えたものに相当し、第１実施形態にて述べた内容と同様の内容を全て第２実施形態に適用可能である。
【００８５】
即ち、第２実施形態では、例えば、元プログラム３内に、ＲＡＭ［０］〜ＲＡＭ［３］に本来供給されるべきアドレスを列挙した図９のような元アドレス列７１が表されている。元アドレス列７１には、順次訪れるタイミングＴ１、Ｔ２、Ｔ３、Ｔ４、・・・においてＲＡＭ［０］〜ＲＡＭ［３］に供給すべきアドレスが記述されている。
【００８６】
元アドレス列７１は、
“タイミングＴ１において、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］、ＲＡＭ［３］に供給すべきアドレスが、夫々、アドレスＲ０、ＲＵ、Ｒ１、ＸＸであること”、
“タイミングＴ２において、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］、ＲＡＭ［３］に供給すべきアドレスが、夫々、アドレスＲ２、ＸＸ、ＲＵ、ＸＸであること”、
“タイミングＴ３において、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］、ＲＡＭ［３］に供給すべきアドレスが、夫々、アドレスＸＸ、ＲＵ、ＸＸ、ＸＸであること”、
及び
“タイミングＴ４において、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］、ＲＡＭ［３］に供給すべきアドレスが、夫々、アドレスＲ３、Ｒ４、Ｒ５、Ｒ６であること”、
を規定している。
【００８７】
アドレスＲ０〜Ｒ６及びＲＵは、ＲＡＭ（ＲＡＭ［０］〜ＲＡＭ［３］の何れか）に供給されるべきアドレスを指定するものである。アドレスＸＸは、そのタイミングにおけるＲＡＭの動作が不要であることを示す、いわば無効アドレスである。全てのＲＡＭが同時に動作する必要があるケースは比較的少なく、同一タイミングにおいては、一部のＲＡＭのみが動作することが多い。このため、並列処理を行うためのプログラムには、元アドレス列７１のように、無効アドレスに対応するアドレスＸＸが多く含まれる。
【００８８】
アドレスＲ０〜Ｒ６の内容（アドレス値）は、互いに異なっていても良いし、全部又は一部が同じであってもよい。但し、アドレスＲ０〜Ｒ６の内容（アドレス値）は、全て、アドレスＤＵのそれとは異なる。元アドレス列７１に複数個出現するアドレスＲＵは、全て同じ内容（アドレス値）を有する。
【００８９】
第２実施形態において、圧縮部４は、第１実施形態と同様、図９に示す元アドレス列７１を圧縮アドレス列７２及びインデックス７３に変換する。この際、元アドレス列７１に含まれる全てのアドレスの内、最も出現頻度が高いアドレス（換言すれば、出現個数が最も大きいアドレス）を、アドレスＲＵとして選定する。但し、この際、無効アドレス（アドレスＸＸ）は除外して考える。第１実施形態と同様、２番目（或いは、３番目以降）に出現頻度が高いアドレスをアドレスＲＵとして選定することも可能である。
【００９０】
圧縮アドレス列７２は、元アドレス列７１からアドレスＸＸとアドレスＲＵとを除去ことによって得られる残余のアドレスを列挙して構成される。インデックス７３は、元アドレス列７１から圧縮アドレス列７２を生成する際に、元アドレス列７１の、どのＲＡＭに対するどのタイミングのアドレスを除去したのかを表している。即ち、インデックス７３は、元アドレス列７１から圧縮アドレス列７２を生成する際の除去関係を表している。本実施形態の例において、インデックス７３は、結果的に図３のインデックス６３と同じとなっている。
【００９１】
圧縮アドレス列７２は図８のアドレスＲＡＭ１２ａに格納され、インデックス７３は図８のインデックスＲＡＭ１３に格納される。また、選定されたアドレスＲＵは、図８の特殊ＲＡＭ１４に格納される。アドレスＲＡＭ１２ａは、記憶する内容がコマンドでなくアドレスになっただけで、図２のコマンドＲＡＭ１２と同様のものである。
【００９２】
このため、実際には、
“タイミングＴ１において、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］、ＲＡＭ［３］に、夫々、アドレスＲ０、ＲＵ、Ｒ１、ＲＵが供給され”、
“タイミングＴ２において、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］、ＲＡＭ［３］に、夫々、アドレスＲ２、ＲＵ、ＲＵ、ＲＵが供給され”、
“タイミングＴ３において、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］、ＲＡＭ［３］に、夫々、アドレスＲＵ、ＲＵ、ＲＵ、ＲＵが供給され”、且つ
“タイミングＴ４において、ＲＡＭ［０］、ＲＡＭ［１］、ＲＡＭ［２］、ＲＡＭ［３］に、夫々、アドレスＲ３、Ｒ４、Ｒ５、Ｒ６が供給される”。
【００９３】
或るＲＡＭに関し、或るタイミングにおいて無効アドレス（アドレスＸＸ）が定義されているということは、該タイミングにおいて該ＲＡＭの動作は不要であり、また、それ故に、該ＲＡＭの出力は何れの回路にも必要とされていないことを意味する。つまり、該タイミングにおいて該ＲＡＭの出力は何れの回路にも利用されない（換言すれば、何れの回路にも接続されない）。
【００９４】
従って、ＲＡＭ［ｍ］からデータを読み出す場合においては、そのタイミングにおいて該ＲＡＭにアドレスＲＵを供給し、アドレスＲＵに対応するデータを出力させるようにしても集積回路２ａ（及びそれを含む装置）の全体の動作に問題は生じない。また、ＲＡＭ［ｍ］にデータを書き込む制御を実行している場合においても、ＲＡＭ［ｍ］にデータ書き込みを許可するライトイネーブル信号を与えなければ、実際のデータ書き込みは行われない。故に、そのような場合においても、アドレスＲＵを供給するようにしても問題は生じない。
【００９５】
本実施形態のようなアドレス圧縮手法及びアドレス供給手法を採用することにより、高い圧縮率が実現される。この結果、並列処理回路１１ａに供給すべきアドレス情報を格納するために必要なメモリ領域が縮小され、集積回路のチップ面積の小型化及び低消費電力化が図られる。また、並列処理回路１１ａへのアドレス供給が途切れなく行われる。
【００９６】
＜＜変形等＞＞
上述した各実施形態における並列処理システムの機能は、ハードウェアによって、ソフトウェアによって、或いは、それらの組み合わせによって、実現することが可能である。
【００９７】
尚、図２（又は図８）において、コマンドＲＡＭ１２（又はアドレスＲＡＭ１２ａ）、インデックスＲＡＭ１３、特殊ＲＡＭ１４、セレクタ１５、順序回路１６、カウンタ１７及びＤＦＦ１８は、被制御対象としてのＡＬＵ［ｍ］（又はＲＡＭ［ｍ］）に制御情報としてのコマンド（又はアドレス）を供給する制御情報供給装置（制御情報伸張装置）として機能する。
【００９８】
また、この制御情報供給装置（制御情報伸張装置）によって実行される機能を伸張プログラムとして記述し、該伸張プログラムをコンピュータ上で実行することによって、ＡＬＵ［ｍ］（又はＲＡＭ［ｍ］）に、上述してきたコマンド（またはアドレス）を供給するようにしてもよい。
【００９９】
また、第１実施形態において、コマンドＸＸ（無効コマンド；ＮＯＰ）、コマンドＤＵ、元コマンド列６１、圧縮コマンド列６２及びインデックス６３は、夫々、無効制御情報、特定制御情報、元制御情報列、圧縮制御情報列及び除去情報として機能する。特性制御情報としてのコマンドＤＵを受けたＡＬＵ［ｍ］は、特定の動作（特定のコマンドＤＵに従った演算動作）を行う。
【０１００】
また、第２実施形態において、アドレスＸＸ（無効アドレス）、アドレスＲＵ、元アドレス列７１、圧縮アドレス列７２及びインデックス７３は、夫々、無効制御情報、特定制御情報、元制御情報列、圧縮制御情報列及び除去情報として機能する。特性制御情報としてのアドレスＲＵを受けたＲＡＭ［ｍ］は、特定の動作（特定のアドレスＲＵの記憶データを読み出す動作、或いは、該アドレスにデータを書き込む動作）を行う。
【０１０１】
また、第１及び第２実施形態において、供給制御手段は、主として、セレクタ１５及び順序回路１６にて形成される。
【図面の簡単な説明】
【０１０２】
【図１】本発明の第１実施形態に係る並列処理システムの全体構成ブロック図である。
【図２】図１の集積回路の内部ブロック図である。
【図３】図２の各ＡＬＵに本来供給すべきコマンドを表す元コマンド列と、それを基に生成される圧縮コマンド列及びインデックスと、を表す図である。
【図４】図２の各ＡＬＵに実際に供給されるコマンドを表す図である。
【図５】図２のセレクタの選択動作を説明するための図である。
【図６】図２の集積回路の動作を説明するための図である。
【図７】図２の集積回路の動作を説明するための図である。
【図８】本発明の第２実施形態に係る集積回路の内部ブロック図である。
【図９】図８の各ＲＡＭに本来供給すべきアドレスを表す元アドレス列と、それを基に生成される圧縮アドレス列及びインデックスと、を表す図である。
【図１０】従来の並列処理回路に対して供給されるコマンドを表す図である。
【図１１】従来のコマンド圧縮手法を説明するための図である。
【符号の説明】
【０１０３】
１  並列処理システム
２、２ａ  集積回路
３  元プログラム
４  圧縮部
１１、１１ａ  並列処理回路
１２  コマンドＲＡＭ
１３  インデックスＲＡＭ
１４  特殊ＲＡＭ
１２ａ  アドレスＲＡＭ
【図１】
0004646854.tif 000002
【図２】
0004646854.tif 000003
【図３】
0004646854.tif 000004
【図４】
0004646854.tif 000005
【図５】
0004646854.tif 000006
【図６】
0004646854.tif 000007
【図７】
0004646854.tif 000008
【図８】
0004646854.tif 000009
【図９】
0004646854.tif 000010
【図１０】
0004646854.tif 000011
【図１１】
0004646854.tif 000012