JP4646854B2 - 制御情報供給装置 - Google Patents

制御情報供給装置 Download PDF

Info

Publication number
JP4646854B2
JP4646854B2 JP2006145166A JP2006145166A JP4646854B2 JP 4646854 B2 JP4646854 B2 JP 4646854B2 JP 2006145166 A JP2006145166 A JP 2006145166A JP 2006145166 A JP2006145166 A JP 2006145166A JP 4646854 B2 JP4646854 B2 JP 4646854B2
Authority
JP
Japan
Prior art keywords
control information
command
ram
alu
timing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006145166A
Other languages
English (en)
Other versions
JP2007316901A (ja
Inventor
達夫 平松
真 小曽根
和久 飯塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2006145166A priority Critical patent/JP4646854B2/ja
Publication of JP2007316901A publication Critical patent/JP2007316901A/ja
Application granted granted Critical
Publication of JP4646854B2 publication Critical patent/JP4646854B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Description

本発明は、並列処理を行う複数の被制御対象に対してコマンドやアドレス等の制御情報を供給するための制御情報供給装置関する
近年、複数のALU(Arithmetic and Logic Unit)を並列動作させる並列処理回路が注目されている。並列処理回路は、例えば、リコンフィギャラブル回路にて実現される。
この種の回路では、並列動作に係る全てのALUに対して、コマンドを同一のタイミング(同一の時刻)に供給する必要がある。また、各ALUに供給すべきコマンドは時々刻々と変化する。
ところで、この種の回路においては、全てのALUが同時に動くケースは比較的少なく、同一のタイミングにおいて一部のALUのみが動作をしていることが多い。
図10は、4つのALU0〜ALU3に対して順次供給されるコマンドを記述したコマンド列を表している。このコマンド列は、ALU0、1、2及び3に対して、タイミングt1、t2、・・・に、夫々、コマンド“d0、d1、d2、XX”、“d3、XX、d4、XX”、・・・を供給すべきことを規定している。“XX”はNOP(no-operation)である。このため、図10のコマンド列では、例えば、タイミングt1においてALU3の動作が不要であることを表している。
図10のようなコマンド列は、コマンドRAM(Random Access Memory)に格納されることになるが、上記のようなNOP部分の存在は、コマンドRAMの必要メモリ領域を増大させ、これに伴って回路の消費電力も増大させる。
これを考慮して構成された並列処理型コンピュータが下記特許文献1に開示されている。この並列処理型コンピュータでは、不要なコマンドである“XX”を全て除いた圧縮データが作成されると共に、コマンドの圧縮状態に関する情報が作成される。この情報は、圧縮されたデータ位置に「0」が割り当てられ、圧縮されていないデータ位置に「1」が割り当てられたインデックスである。そして、このインデックスを用いて圧縮データを伸張し、所望のコマンドを復元するようにしている。図11に、特許文献1の手法を適用した場合に、図10のコマンド列に対応して作成される圧縮データ及びインデックスを示す。
特開平7−182169号公報
上記特許文献1に記載されている手法は、コマンドRAMの必要メモリ領域の削減に貢献するものであるが、リコンフィギャラブル回路等の並列処理回路を実装した集積回路において、コマンドRAMの占有面積は大きく、必要メモリ領域の更なる削減が切望されている。
また、並列演算を行う場合に着目して従来の問題点を説明したが、並列データ読み出し処理及び並列データ書き込み処理など、演算以外の処理を並列に行う場合においても、同様の問題は存在する。
そこで本発明は、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減に寄与する制御情報供給装置提供することを目的とする
発明に係る第1の制御情報供給装置は、複数の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置において、定められた元制御情報列から、動作が不要であることを示す無効制御情報と特定の動作を指定する予め定められた前記無効制御情報とは異なる特定制御情報とを除去した圧縮制御情報列を記憶する第1記憶手段と、前記元制御情報列から前記圧縮制御情報列を生成する際の除去関係を表す除去情報を記憶する第2記憶手段と、前記圧縮制御情報列及び前記除去情報に基づいて、各被制御対象に前記制御情報を供給する供給制御手段と、を備え、前記供給制御手段は、各被制御対象に前記制御情報を供給する各タイミングにおいて、各被制御対象に関し、前記圧縮制御情報列から前記特定制御情報が除去されていることを、前記除去情報が示している場合は、当該被制御対象に前記特定制御情報を供給する一方、前記圧縮制御情報列から前記無効制御情報が除去されていることを、前記除去情報が示している場合にも、当該被制御対象に前記特定制御情報を供給し、前記圧縮制御情報列から前記特定制御情報及び前記無効制御情報が除去されていることを、前記除去情報が示していない場合は、当該被制御対象に前記圧縮制御情報列に含まれる制御情報を供給することを特徴とする。
或る被制御対象(例えば、ALU)に関し、或るタイミングにおいて無効制御情報(例えばNOP)が定義されている場合は、無効制御情報以外の特定制御情報を該被制御対象に供給しても動作に支障はない。これに着目し、上記のように構成する。これにより、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減が図られる。この結果、例えば、本発明を利用して集積回路を形成した場合は、チップ面積の小型化及び低消費電力化が期待できる。
発明に係る第2の制御情報供給装置は、複数の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置であって、各被制御対象に前記制御情報を供給する各タイミ
ングにおいて、各被制御対象に関し、当該被制御対象の動作が不要である場合、及び、当該被制御対象が実行すべき動作が特定の動作である場合は、当該被制御対象に前記特定の動作を実行させるための予め定められた、動作が不要であることを示す無効制御情報とは異なる特定制御情報を供給することを特徴とする。
本発明によれば、並列処理に係る被制御対象に必要な動作を行わせるために記憶しておくべきデータの量の削減が期待できる。
以下、本発明の実施の形態につき、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付す。
<<第1実施形態>>
図1は、本発明の第1実施形態に係る並列処理システム1の全体構成ブロック図である。並列処理システム1は、集積回路2と、元プログラム3と、圧縮部4と、を有して構成される。
図2に、集積回路2の内部ブロック図を示す。集積回路2は、並列処理回路11、コマンドRAM(Random Access Memory)12、インデックスRAM13、特殊RAM14、セレクタ15、順序回路16、カウンタ17、及び、D型フリップフロップであるDFF18、を有して構成される。
並列処理回路11は、例えば、論理回路の再構成を可能とする機能を備えたリコンフィギャラブル回路であり、内部に四則演算や論理演算などを行う、被制御対象としてのALU(Arithmetic and Logic Unit)を複数個、備えている。以下、説明の具体化のため、並列処理回路11に含まれる4つのALU、即ち、ALU[0]、ALU[1]、ALU[2]及びALU[3]に着目する。尚、典型的には例えば、並列処理を行う数10〜数100個程度のALU(不図示)が、並列処理回路11に組み込まれる。
4つのALU[0]〜ALU[3]は、並列処理を行うための並列処理回路11に組み込まれおり、4つのALU[0]〜ALU[3]には同時にコマンドが供給される必要がある。ここにおける「同時」とは、並列処理回路11の動作に支障がない程度の多少の時間的ずれを含む概念である。
セレクタ15は、集積回路2内の他の部位と協働しつつ、次々と、4つのALU[0]〜ALU[3]に対して同時に(即ち、並列に)コマンドを制御情報として供給する。ALU[0]〜ALU[3]は、供給されたコマンドに従った演算処理を行い、演算結果を出力する。ALU[0]〜ALU[3]の出力値は、後段の回路に供給される、或いは、ALU[0]〜ALU[3]の入力値としてフィードバックされる。
ALU[0]〜ALU[3]に本来供給されるべきコマンドを列挙したものの例として、図3の元コマンド列61を表す。この元コマンド列61は、図1の元プログラム3内に表現されている。以下、説明の具体化のため、元コマンド列61の記述内容を例に挙げつつ並列処理システム1の説明を行う。
元コマンド列61には、順次訪れるタイミングT1、T2、T3、T4、・・・においてALU[0]〜ALU[3]に供給すべきコマンドが記述されている。タイミングT1、T2、T3、T4、・・・の順番で時間が進行する。
元コマンド列61は、
“タイミングT1において、ALU[0]、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンドが、夫々、コマンドD0、DU、D1、XXであること”、
“タイミングT2において、ALU[0]、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンドが、夫々、コマンドD2、XX、DU、XXであること”、
“タイミングT3において、ALU[0]、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンドが、夫々、コマンドXX、DU、XX、XXであること”、
及び
“タイミングT4において、ALU[0]、ALU[1]、ALU[2]、ALU[3]に供給すべきコマンド、夫々、コマンドD3、D4、D5、D6であること”、
を規定している。
コマンドD0〜D6及びDUは、ALU(ALU[0]〜ALU[3]の何れか)が実行すべき演算内容を指定するものであり、例えば、それらは、加算に対応するADD、減算に対応するSUB、乗算に対応するMUL、論理和に対応するOR、論理積に対応するAND、などである。
コマンドXXは、そのタイミングにおけるALUの動作が不要であることを示す無効コマンド、即ち、NOP(no-operation)である。全てのALUが同時に動作する必要があるケースは比較的少なく、同一タイミングにおいては、一部のALUのみが動作することが多い。このため、並列処理を行うためのプログラムには、元コマンド列61のように、NOPが多く含まれる。
コマンドD0〜D6の内容は、互いに異なっていても良いし、全部又は一部が同じであってもよい(コマンドの内容は、コマンドの種類と換言することもできる)。但し、コマンドD0〜D6の内容は、全て、コマンドDUのそれとは異なる。尚、元コマンド列61には、複数のコマンドDUが出現するが、それらは同じ内容(種類)のコマンドである。また、NOP以外のコマンドD0〜D6及びDUは、上記無効コマンドと対比して、ALUの演算動作を指示する有効コマンド(有効制御情報)と呼ぶことができる。
例えば、コマンドD0、D1、D2、D3、D4、D5及びD6は、夫々、ADD、SUB、MUL、ADD、SUB、MUL及びORであり、コマンドDUは、ANDである。この場合、コマンドD0とD3の内容は同じであり、コマンドD1とD4の内容は同じであり、コマンドD2とD5の内容は同じであり、コマンドD0とD1とD2とD6の内容は互いに異なる。そして、コマンドDUの内容は、コマンドD0〜D6の内容とは異なる。
尚、説明の具体化及び簡略化のため、コマンドDUとコマンドXX以外のコマンドとしてコマンドD0〜D6のみを挙げているが、タイミングT4より後に出現する他のコマンドの内容(種類)も、コマンドDUのそれとは異なる。
圧縮部4は、元コマンド列61を、圧縮しつつ集積回路2に供給可能なデータ形式に変換するコンパイラとして機能する。圧縮部4は、例えば、圧縮プログラムとして構成されており、その圧縮プログラムと図1の元プログラム3は、ハードディスク等の記録媒体に格納される。そして、圧縮部4(圧縮プログラム)は、該記録媒体の記憶内容を読み出し可能なコンピュータ(不図示)上で動作し、元コマンド列61を圧縮して図3に示すような圧縮コマンド列62及びインデックス63を生成する。
尚、上記のコンピュータは、圧縮部4の機能を実現するための装置(制御情報圧縮装置)として機能し、上記のコンピュータを、本実施形態(及び後述する第2実施形態)に係る並列処理システムの構成要素と捉えることも可能である。また、本実施形態(及び後述する第2実施形態)に係る並列処理システム全体を、1つの装置に搭載することも可能である。また、圧縮部4を、ハードウェアによって構成するようにしても構わない。
元コマンド列61に含まれるコマンドの内、いずれのコマンドをコマンドDUとして取り扱うかは元プログラム3が決定するわけではなく、圧縮部4が、それを決定する。圧縮コマンド列62及びインデックス63を生成するに当たって、圧縮部4は、まず、元コマンド列61に含まれるコマンドの中からコマンドDUとなるべきコマンドを決定する。
具体的には例えば、圧縮部4は、元コマンド列61に含まれる全てのコマンドの内、最も出現頻度が高いコマンド(換言すれば、出現個数が最も大きいコマンド)を、コマンドDUとして選定する。但し、この際、NOPは除外して考える。
例えば、タイミングT1〜T4の間におけるコマンドだけに着目し、コマンドD0、D1、D2、D3、D4、D5及びD6が、夫々、ADD、SUB、MUL、ADD、SUB、MUL及びORであり、且つ、タイミングT1及びT3にALU[1]に供給されるべきコマンドとタイミングT2にALU[2]に供給されるべきコマンドがANDであった場合、ANDの出現個数が「3」で最も大きいため、ANDがコマンドDUとして選定される。NOPの出現個数は「6」でありANDのそれよりも大きいが、上述したようにNOPは除外して考える。
後の説明を参照して明らかとなるが、最も出現頻度が高いコマンドをコマンドDUとして選定すると、コマンドの圧縮効果が最も大きくなる。但し、2番目(又は3番目又は4番目・・・)に出現頻度が高いコマンドをコマンドDUとして選定することも可能である。但し、コマンドの圧縮効果を考慮すると、なるだけ出現頻度が高いコマンドをコマンドDUとして選定することが望ましい。
圧縮コマンド列62は、元コマンド列61からコマンドXX(NOP)とコマンドDUとを除去ことによって得られる残余のコマンドを列挙して構成される。本実施形態の例の場合、圧縮コマンド列62は、コマンドD0、D1、D2、D3、D4、D5及びD6、・・・を、この順番で列挙したコマンド列となる。元コマンド列61に含まれる、タイミングT1〜T4までの合計16個のコマンドは、圧縮コマンド列62において7個のコマンドD0〜D6に圧縮されることになる。
インデックス63は、元コマンド列61から圧縮コマンド列62を生成する際に、元コマンド列61の、どのALUに対するどのタイミングのコマンドを除去したのかを表している。つまり、インデックス63は、元コマンド列61から圧縮コマンド列62を生成する際の除去関係を表している。
インデックス63では、各タイミングについて、ALUごとに1又は0の値を割り当てている。インデックス63には、タイミングT1に対応するインデックスデータINDEX[1]、タイミングT2に対応するインデックスデータINDEX[2]、タイミングT3に対応するインデックスデータINDEX[3]、及び、タイミングT4に対応するインデックスデータINDEX[4]、・・・が含まれおり、各インデックスデータは、0又は1の値をとる4つの数値(フラグ)から構成される。インデックスデータINDEX[k]を、以下、単に、INDEX[k]と表記することがある。kは、1〜4の範囲内の各整数をとる。
本実施形態の例の場合、図3に示す如く、
INDEX[1]には、「1、0、1、0」がこの順番で格納され、
INDEX[2]には、「1、0、0、0」がこの順番で格納され、
INDEX[3]には、「0、0、0、0」がこの順番で格納され、
INDEX[4]には、「1、1、1、1」がこの順番で格納されている。
各INDEX[k]に対応して割り当てられる4つの数値(1又は0)は、左から順に、ALU[0]、ALU[1]、ALU[2]、ALU[3]に対応している。つまり、例えば、タイミングT2において、ALU[0]には「1」が割り当てられ、ALU[1]〜ALU[3]には「0」が割り当てられる。
インデックス63内の、或るタイミングの或るALUに対応する「1」は、該タイミングにおいて該ALUに供給すべきコマンドが圧縮コマンド列62に含まれていることを表している。一方、或るタイミングの或るALUに対応する「0」は、該タイミングにおいて該ALUに供給すべきコマンドが、圧縮コマンド列62に含まれておらず、コマンドXXまたはコマンドDUであったことを表している。
圧縮部4によって生成された圧縮コマンド列62及びインデックス63の内容は、夫々、集積回路2の入力端子(不図示)を介して、コマンドRAM12及びインデックスRAM13に伝達される。コマンドRAM12は圧縮コマンド列62を記憶し、インデックスRAM13はインデックス63を記憶する。また、圧縮部4によって決定されたコマンドDUを表す情報が集積回路2の入力端子(不図示)を介して特殊RAM14に伝達される。特殊RAM14は、コマンドDUを記憶する。
そして、セレクタ15は、コマンドRAM12に記憶された圧縮コマンド列62と、インデックスRAM13に記憶されたインデックス63と、特殊RAM14に記憶されたコマンドDUとを参照して、ALU[0]〜ALU[3]に対してコマンドを出力する。詳細は後述するが、単純に述べると、インデックス63内の値が「1」の場合はコマンドRAM12からのコマンドを、インデックス63内の値が「0」の場合は特殊RAM14からのコマンドDUを出力する。
タイミングT1〜T4において、ALU[0]〜ALU[3]に実際に供給されるコマンドを表す供給コマンド列64を図4に示す。
図4に示す如く、実際には、
“タイミングT1において、ALU[0]、ALU[1]、ALU[2]、ALU[3]に、夫々、コマンドD0、DU、D1、DUが供給され”、
“タイミングT2において、ALU[0]、ALU[1]、ALU[2]、ALU[3]に、夫々、コマンドD2、DU、DU、DUが供給され”、
“タイミングT3において、ALU[0]、ALU[1]、ALU[2]、ALU[3]に、夫々、コマンドDU、DU、DU、DUが供給され”、且つ
“タイミングT4において、ALU[0]、ALU[1]、ALU[2]、ALU[3]に、夫々、コマンドD3、D4、D5、D6が供給される”。
供給コマンド列64は、元コマンド列61におけるコマンドXXをコマンドDUに置換したものに等しい。或るALUに関し、或るタイミングにおいてコマンドXX(即ち、NOP)が定義されているということは、該タイミングにおいて該ALUの動作は不要であり、また、それ故に、該ALUの出力は何れの回路にも必要とされていないことを意味する。つまり、該タイミングにおいて該ALUの出力は何れの回路にも利用されない(換言すれば、何れの回路にも接続されない)。従って、そのタイミングにおいてコマンドDUを供給し、コマンドDUに従った演算をALUに実行させても、集積回路2(及びそれを含む装置)の全体の動作に問題は生じない。
図3と図10及び図11との比較からも明らかなように、上述のようなコマンド圧縮手法及びコマンド供給手法を採用することにより、上記特許文献1に記載の手法と比べて、より高い圧縮率が実現される。この結果、コマンドを格納するために必要なメモリ領域が縮小され、集積回路のチップ面積の小型化及び低消費電力化が図られる。
以下、図2などを参照しつつ、図4に示すようなコマンドの具体的な供給動作について説明する。
インデックスRAM13は、データクロックの供給を受け、該データクロックに従ってINDEX[k]を出力する。具体的には例えば、タイミングT1に対応するデータクロックが供給された時点でINDEX[1]を出力する。同様に、タイミングT2に対応するデータクロックが供給された時点でINDEX[2]を出力し、タイミングT3に対応するデータクロックが供給された時点でINDEX[3]を出力し、タイミングT4に対応するデータクロックが供給された時点でINDEX[4]を出力する。
タイミングT1とT2との間の間隔、タイミングT2とT3との間の間隔、タイミングT3とT4との間の間隔、(及びタイミングT4と後述するタイミングT5との間の間隔)・・・は、インデックスRAM13に供給されるデータクロックの周期に相当する。
順序回路16は、インデックスRAM13から出力されるINDEX[k]に基づいて、変数POINTERを生成してセレクタ15に供給すると共にカウンタ17を介してコマンドRAM12の出力を制御する。また、順序回路16は、DFF18の記憶内容及び出力内容を更新するための更新クロックを発生する。
カウンタ17は、コマンドRAM12のアドレスを生成するためのカウンタであり、順序回路16の制御の下、コマンドRAM12から出力されるべきデータ(該データはコマンドを表す)が格納されたアドレスをコマンドRAM12に対して指定する。
コマンドRAM12は、カウンタ17から指定されるアドレスに従って、自身の記憶内容である圧縮コマンド列62内のコマンドを順次出力する。本実施形態では、4つのコマンドが同時に出力され、その4つのコマンドはDFF18とセレクタ15に供給される。尚、説明の便宜上、コマンドがDFF18に供給されるなどと表現しているが、本明細書において、コマンドとは、勿論、ALUにとってのコマンドであり、DFF18などにとってのコマンドではない。従って、ALU以外の部位との関係でコマンドと言った場合、それは、ALUにとってのコマンドを表すデータ、と解釈されるべきである。
DFF18は、コマンドRAM12からの4つのコマンド分のデータを、自身のデータ入力端子にて受ける。そして、そのデータ入力端子にて受けたデータを、順序回路16から出力される更新クロックに従って、記憶保持すると共に自身のデータ出力端子から出力する。DFF18の出力は、セレクタ15に与えられる。また、特殊RAM14の記憶内容であるコマンドDUも、セレクタ15に供給されている。
セレクタ15は、合計9つのデータ入力部A[0]〜A[8]と、合計4つのデータ出力部Y[0]〜Y[3]と、を有する。データ入力部A[0]〜A[3]には、DFF18が出力する4つのコマンドが与えられ、データ入力部A[4]〜A[7]には、コマンドRAM12が出力する4つのコマンドが与えられ、データ入力部A[8]には、特殊RAM14が出力するコマンドDUが与えられる。
そして、セレクタ15は、各タイミング(例えば、タイミングT1)において、インデックスRAM13から供給されているINDEX[k]と順序回路16から供給されている変数POINTERとに基づいて、データ出力部Y[0]〜Y[3]の夫々をデータ入力部A[0]〜A[8]の何れかに接続することにより、データ出力部Y[0]〜Y[3]からコマンドを出力する。データ出力部Y[0]、Y[1]、Y[2]及びY[3]から出力されるコマンドは、夫々、ALU[0]、ALU[1]、ALU[2]及びALU[3]に供給される。
図5に、セレクタ15の選択動作を説明するための図を示す。INDEX[k]に格納されている4つの数値をI0、I1、I2及びI3と表記し、INDEX[k]の格納内容を(I0,I1,I2,I3)にて表記する。I0、I1、I2及びI3は、夫々、ALU[0]、ALU[1]、ALU[2]、ALU[3]に対応している。また、3つの変数S1、S2及びS3を定義し、S1=I0+I1、S2=I0+I1+I2、S3=I0+I1+I2+I3、とおく。
そして、各タイミング(例えば、タイミングT1)において、
データ出力部Y[0]は、I0=1の場合、データ入力部A[POINTER]に接続される一方、I0=0の場合、データ入力部A[8]に接続され、
データ出力部Y[1]は、I1=1の場合、データ入力部A[POINTER+I0]に接続される一方、I1=0の場合、データ入力部A[8]に接続され、
データ出力部Y[2]は、I2=1の場合、データ入力部A[POINTER+S1]に接続される一方、I2=0の場合、データ入力部A[8]に接続され、
データ出力部Y[3]は、I3=1の場合、データ入力部A[POINTER+S2]に接続される一方、I3=0の場合、データ入力部A[8]に接続される。
例えば、変数POINTERが0であって、セレクタ15に供給されるインデックスデータがINDEX[1]=(1,0,1,0)の場合を考える。尚、図5は、この場合の接続状態を表している。
この場合、I0=1、であるから、データ出力部Y[0]はデータ入力部A[POINTER]、即ち、データ入力部A[0]に接続される。
また、I1=0、であるから、データ出力部Y[1]はデータ入力部A[8]に接続される。
また、I2=1、であるから、データ出力部Y[2]はデータ入力部A[POINTER+S1]、即ち、データ入力部A[1]に接続される。
また、I3=0、であるから、データ出力部Y[3]はデータ入力部A[8]に接続される。
或るタイミング(例えばタイミングT2)においてセレクタ15に与えられる変数POINTERは、前回のタイミング(例えばタイミングT1)においてセレクタ15に与えられていたインデックスデータINDEX[k]に対応するS3を、前回のタイミングにおける変数POINTERに加算した値とされる(数式で表記すれば、POINTER=POINTER+S3)。但し、この加算によって変数POINTERが4以上となった場合は、順序回路16は、変数POINTERから4を差し引き、これと同時に、更新クロックを出力してDFF18の記憶内容及び出力内容を更新すると共にカウンタ17を介してコマンドRAM12の出力内容を更新する。
各タイミングにおけるコマンドRAM12の出力コマンド状況などを参照して、更に具体的に説明する。
図6及び図7は、図2の集積回路2の内部ブロック図と対応させて、コマンドRAM12が記憶しているコマンド及び出力するコマンド、DFF18が記憶して出力するコマンド、及び、特殊RAM14が記憶して出力するコマンドを、模式的に表した図である。図6は、タイミングT1、T2、T3及びT4に対応しており、図7は、タイミングT4の次のタイミングT5或いはそれ以降のタイミングに対応している。
尚、図6又は図7において、コマンドRAM12又はDFF18が記憶又は出力するコマンドとして記述されているコマンドD7〜D15は、上述のコマンドD0〜D6と同様のものであり、それらはタイミングT5以降にALU[0]〜ALU[3]の何れかに供給される。
圧縮コマンド列62は、コマンドD0、D1、D2、D3、D4、D5、D6、D7、D8、D9、D10、D11、D12、D13、D14、D15、・・・を、この順番で列挙したコマンド列となっており、コマンドRAM12は、このコマンド列を、コマンドD0側を上位のアドレス側に割り当てて記憶している。
元コマンド列61に対応するコマンドの供給の開始に先立って、順序回路16は、コマンドRAM12の最も上位のアドレスに格納されている4つのコマンドD0、D1、D2及びD3をDFF18に記憶及び出力させ、更に、コマンドRAM12に、その次のアドレスに格納されている4つのコマンドD4、D5、D6及びD7を出力させる。更に、変数POINTERに初期値である0を代入する。
この時点及びタイミングT0〜T3において、DFF18が出力するコマンドD0、D1、D2及びD3は、夫々、セレクタ15のデータ入力部A[0]、A[1]、A[2]及びA[3]に供給され、コマンドRAM12が出力するコマンドD4、D5、D6及びD7は、夫々、セレクタ15のデータ入力部A[4]、A[5]、A[6]及びA[7]に供給される。また、特殊RAM14が出力するコマンドDUは、常にデータ入力部A[8]に供給される。
そして、タイミングT1において、セレクタ15には、INDEX[1]=(1,0,1,0)及びPOINTER=0が供給される。この結果、上述の如く、データ出力部Y[0]、Y[1]、Y[2]及びY[3]は、夫々、データ入力部A[0]、A[8]、A[1]及びA[8]に接続され、図4の供給コマンド列64に示したコマンドがALU[0]〜ALU[3]に並列に供給される。
次に、INDEX[1]に対応する変数S3(図5参照)は2であるから、タイミングT2においてPOINTER=2(前回のPOINTERとS3との和)となる。つまり、タイミングT2において、セレクタ15には、INDEX[2]=(1,0,0,0)及びPOINTER=2が供給される。この結果、図5を参照して説明したセレクタ15の選択動作に従って、データ出力部Y[0]、Y[1]、Y[2]及びY[3]は、夫々、データ入力部A[2]、A[8]、A[8]及びA[8]に接続され、図4の供給コマンド列64に示したコマンドがALU[0]〜ALU[3]に並列に供給される。
次に、INDEX[2]に対応する変数S3(図5参照)は1であるから、タイミングT3においてPOINTER=3となる。つまり、タイミングT3において、セレクタ15には、INDEX[3]=(0,0,0,0)及びPOINTER=3が供給される。この結果、図5を参照して説明したセレクタ15の選択動作に従って、データ出力部Y[0]、Y[1]、Y[2]及びY[3]は、夫々、データ入力部A[8]、A[8]、A[8]及びA[8]に接続され、図4の供給コマンド列64に示したコマンドがALU[0]〜ALU[3]に並列に供給される。
次に、INDEX[3]に対応する変数S3(図5参照)は0であるから、タイミングT4においてPOINTER=3となる。つまり、タイミングT4において、セレクタ15には、INDEX[4]=(1,1,1,1)及びPOINTER=3が供給される。この結果、図5を参照して説明したセレクタ15の選択動作に従って、データ出力部Y[0]、Y[1]、Y[2]及びY[3]は、夫々、データ入力部A[3]、A[4]、A[5]及びA[6]に接続され、図4の供給コマンド列64に示したコマンドがALU[0]〜ALU[3]に並列に供給される。
次に、INDEX[4]に対応する変数S3(図5参照)は4である。タイミングT4における変数POINTERの値「3」に「4」を加算した値は4以上であるため、上述したように、その加算後の変数POINTERから4が差し引かれる。この結果、タイミングT5においてPOINTER=3となる。
これと同時に、順序回路16は、DFF18に更新クロックを出力してDFF18の記憶内容及び出力内容をタイミングT4のコマンドRAM12の出力内容にて更新する。更に、順序回路16は、コマンドD4〜D7の格納アドレスの次のアドレスに格納されている4つのコマンドD8、D9、D10及びD11を、コマンドRAM12から出力させる。尚、これらの動作は、タイミングT5に対応するコマンドをALU[0]〜ALU[3]に供給する前に実施される。
この結果、タイミングT5において、セレクタ15にはコマンドD4〜D11及びDUが供給され、上述のようなコマンド供給動作が繰り返し行われる。また、上述の説明からも明らかなように、本実施形態によれば、並列処理回路11へのコマンド供給が途切れなく行われる。
<<第2実施形態>>
上述の第1実施形態では、被制御対象としてALUを取り扱い、その被制御対象の動作を制御するための制御情報としてコマンドを取り扱った。第1実施形態に記載の構成及び手法は、並列に演算処理を行うALUに対してだけでなく、並列にデータ読み出し又はデータ書き込みを行う記憶手段などに対しても適用可能である。この記憶手段は、例えば、RAM及びROM(Read Only Memory)などの半導体メモリ、光ディスクなどの記録媒体である。
被制御対象がRAMである場合の実施形態を、第2実施形態として例示する。図8は、第2実施形態に係る集積回路2aの内部ブロック図である。集積回路2aは、図2の集積回路2に対応するものである。第2実施形態に係る並列処理システム(不図示)の全体的構成は、集積回路2を集積回路2aに置換した点で第1実施形態に係る並列処理システム1のそれと相違するが、他の点において両者は同様である。
図2と図8の比較からも分かるように、集積回路2aは、図2の集積回路2における並列処理回路11及びコマンドRAM12を夫々並列処理回路11a及びアドレスRAM12aに置換した構成となっており、その他の点において、集積回路2及び2aは同様である。
並列処理回路11aは、被制御対象としてのRAMを複数個備えている。具体的には、図8に示す如く、並列処理回路11aは、RAM[0]、RAM[1]、RAM[2]及びRAM[3]を備えている。順次訪れる各タイミングにおいて、4つのRAM[0]〜RAM[3]に対し、同時に(即ち、並列に)アドレスを供給する必要がある。
RAM[m]は、供給されたアドレスに従い、そのアドレスに対応する自身のメモリ領域内の記憶データを読み出して出力する、或いは、そのアドレスに対応する自身のメモリ領域内に指示されたデータを書き込む(mは、0〜3の範囲内の各整数をとる)。従って、RAM[m]に供給されるアドレスは、データ読み出し又はデータ書き込みというRAM[m]の動作を制御するための制御情報と呼べる。
第2実施形態は、基本的に、第1実施形態における「ALU」及び「コマンド」を、「RAM」及び「アドレス」に読み替えたものに相当し、第1実施形態にて述べた内容と同様の内容を全て第2実施形態に適用可能である。
即ち、第2実施形態では、例えば、元プログラム3内に、RAM[0]〜RAM[3]に本来供給されるべきアドレスを列挙した図9のような元アドレス列71が表されている。元アドレス列71には、順次訪れるタイミングT1、T2、T3、T4、・・・においてRAM[0]〜RAM[3]に供給すべきアドレスが記述されている。
元アドレス列71は、
“タイミングT1において、RAM[0]、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスR0、RU、R1、XXであること”、
“タイミングT2において、RAM[0]、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスR2、XX、RU、XXであること”、
“タイミングT3において、RAM[0]、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスXX、RU、XX、XXであること”、
及び
“タイミングT4において、RAM[0]、RAM[1]、RAM[2]、RAM[3]に供給すべきアドレスが、夫々、アドレスR3、R4、R5、R6であること”、
を規定している。
アドレスR0〜R6及びRUは、RAM(RAM[0]〜RAM[3]の何れか)に供給されるべきアドレスを指定するものである。アドレスXXは、そのタイミングにおけるRAMの動作が不要であることを示す、いわば無効アドレスである。全てのRAMが同時に動作する必要があるケースは比較的少なく、同一タイミングにおいては、一部のRAMのみが動作することが多い。このため、並列処理を行うためのプログラムには、元アドレス列71のように、無効アドレスに対応するアドレスXXが多く含まれる。
アドレスR0〜R6の内容(アドレス値)は、互いに異なっていても良いし、全部又は一部が同じであってもよい。但し、アドレスR0〜R6の内容(アドレス値)は、全て、アドレスDUのそれとは異なる。元アドレス列71に複数個出現するアドレスRUは、全て同じ内容(アドレス値)を有する。
第2実施形態において、圧縮部4は、第1実施形態と同様、図9に示す元アドレス列71を圧縮アドレス列72及びインデックス73に変換する。この際、元アドレス列71に含まれる全てのアドレスの内、最も出現頻度が高いアドレス(換言すれば、出現個数が最も大きいアドレス)を、アドレスRUとして選定する。但し、この際、無効アドレス(アドレスXX)は除外して考える。第1実施形態と同様、2番目(或いは、3番目以降)に出現頻度が高いアドレスをアドレスRUとして選定することも可能である。
圧縮アドレス列72は、元アドレス列71からアドレスXXとアドレスRUとを除去ことによって得られる残余のアドレスを列挙して構成される。インデックス73は、元アドレス列71から圧縮アドレス列72を生成する際に、元アドレス列71の、どのRAMに対するどのタイミングのアドレスを除去したのかを表している。即ち、インデックス73は、元アドレス列71から圧縮アドレス列72を生成する際の除去関係を表している。本実施形態の例において、インデックス73は、結果的に図3のインデックス63と同じとなっている。
圧縮アドレス列72は図8のアドレスRAM12aに格納され、インデックス73は図8のインデックスRAM13に格納される。また、選定されたアドレスRUは、図8の特殊RAM14に格納される。アドレスRAM12aは、記憶する内容がコマンドでなくアドレスになっただけで、図2のコマンドRAM12と同様のものである。
このため、実際には、
“タイミングT1において、RAM[0]、RAM[1]、RAM[2]、RAM[3]に、夫々、アドレスR0、RU、R1、RUが供給され”、
“タイミングT2において、RAM[0]、RAM[1]、RAM[2]、RAM[3]に、夫々、アドレスR2、RU、RU、RUが供給され”、
“タイミングT3において、RAM[0]、RAM[1]、RAM[2]、RAM[3]に、夫々、アドレスRU、RU、RU、RUが供給され”、且つ
“タイミングT4において、RAM[0]、RAM[1]、RAM[2]、RAM[3]に、夫々、アドレスR3、R4、R5、R6が供給される”。
或るRAMに関し、或るタイミングにおいて無効アドレス(アドレスXX)が定義されているということは、該タイミングにおいて該RAMの動作は不要であり、また、それ故に、該RAMの出力は何れの回路にも必要とされていないことを意味する。つまり、該タイミングにおいて該RAMの出力は何れの回路にも利用されない(換言すれば、何れの回路にも接続されない)。
従って、RAM[m]からデータを読み出す場合においては、そのタイミングにおいて該RAMにアドレスRUを供給し、アドレスRUに対応するデータを出力させるようにしても集積回路2a(及びそれを含む装置)の全体の動作に問題は生じない。また、RAM[m]にデータを書き込む制御を実行している場合においても、RAM[m]にデータ書き込みを許可するライトイネーブル信号を与えなければ、実際のデータ書き込みは行われない。故に、そのような場合においても、アドレスRUを供給するようにしても問題は生じない。
本実施形態のようなアドレス圧縮手法及びアドレス供給手法を採用することにより、高い圧縮率が実現される。この結果、並列処理回路11aに供給すべきアドレス情報を格納するために必要なメモリ領域が縮小され、集積回路のチップ面積の小型化及び低消費電力化が図られる。また、並列処理回路11aへのアドレス供給が途切れなく行われる。
<<変形等>>
上述した各実施形態における並列処理システムの機能は、ハードウェアによって、ソフトウェアによって、或いは、それらの組み合わせによって、実現することが可能である。
尚、図2(又は図8)において、コマンドRAM12(又はアドレスRAM12a)、インデックスRAM13、特殊RAM14、セレクタ15、順序回路16、カウンタ17及びDFF18は、被制御対象としてのALU[m](又はRAM[m])に制御情報としてのコマンド(又はアドレス)を供給する制御情報供給装置(制御情報伸張装置)として機能する。
また、この制御情報供給装置(制御情報伸張装置)によって実行される機能を伸張プログラムとして記述し、該伸張プログラムをコンピュータ上で実行することによって、ALU[m](又はRAM[m])に、上述してきたコマンド(またはアドレス)を供給するようにしてもよい。
また、第1実施形態において、コマンドXX(無効コマンド;NOP)、コマンドDU、元コマンド列61、圧縮コマンド列62及びインデックス63は、夫々、無効制御情報、特定制御情報、元制御情報列、圧縮制御情報列及び除去情報として機能する。特性制御情報としてのコマンドDUを受けたALU[m]は、特定の動作(特定のコマンドDUに従った演算動作)を行う。
また、第2実施形態において、アドレスXX(無効アドレス)、アドレスRU、元アドレス列71、圧縮アドレス列72及びインデックス73は、夫々、無効制御情報、特定制御情報、元制御情報列、圧縮制御情報列及び除去情報として機能する。特性制御情報としてのアドレスRUを受けたRAM[m]は、特定の動作(特定のアドレスRUの記憶データを読み出す動作、或いは、該アドレスにデータを書き込む動作)を行う。
また、第1及び第2実施形態において、供給制御手段は、主として、セレクタ15及び順序回路16にて形成される。
本発明の第1実施形態に係る並列処理システムの全体構成ブロック図である。 図1の集積回路の内部ブロック図である。 図2の各ALUに本来供給すべきコマンドを表す元コマンド列と、それを基に生成される圧縮コマンド列及びインデックスと、を表す図である。 図2の各ALUに実際に供給されるコマンドを表す図である。 図2のセレクタの選択動作を説明するための図である。 図2の集積回路の動作を説明するための図である。 図2の集積回路の動作を説明するための図である。 本発明の第2実施形態に係る集積回路の内部ブロック図である。 図8の各RAMに本来供給すべきアドレスを表す元アドレス列と、それを基に生成される圧縮アドレス列及びインデックスと、を表す図である。 従来の並列処理回路に対して供給されるコマンドを表す図である。 従来のコマンド圧縮手法を説明するための図である。
符号の説明
1 並列処理システム
2、2a 集積回路
3 元プログラム
4 圧縮部
11、11a 並列処理回路
12 コマンドRAM
13 インデックスRAM
14 特殊RAM
12a アドレスRAM

Claims (2)

  1. 複数の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置において、
    定められた元制御情報列から、動作が不要であることを示す無効制御情報と特定の動作を指定する予め定められた前記無効制御情報とは異なる特定制御情報とを除去した圧縮制御情報列を記憶する第1記憶手段と、
    前記元制御情報列から前記圧縮制御情報列を生成する際の除去関係を表す除去情報を記憶する第2記憶手段と、
    前記圧縮制御情報列及び前記除去情報に基づいて、各被制御対象に前記制御情報を供給する供給制御手段と、を備え、
    前記供給制御手段は、各被制御対象に前記制御情報を供給する各タイミングにおいて、各被制御対象に関し、
    前記圧縮制御情報列から前記特定制御情報が除去されていることを、前記除去情報が示している場合は、当該被制御対象に前記特定制御情報を供給する一方、
    前記圧縮制御情報列から前記無効制御情報が除去されていることを、前記除去情報が示している場合にも、当該被制御対象に前記特定制御情報を供給し、
    前記圧縮制御情報列から前記特定制御情報及び前記無効制御情報が除去されていることを、前記除去情報が示していない場合は、当該被制御対象に前記圧縮制御情報列に含まれる制御情報を供給することを特徴とする制御情報供給装置。
  2. 複数の被制御対象の夫々に前記被制御対象の動作を制御するための制御情報を、並列に且つ次々と、供給する制御情報供給装置であって、
    各被制御対象に前記制御情報を供給する各タイミングにおいて、各被制御対象に関し、当該被制御対象の動作が不要である場合、及び、当該被制御対象が実行すべき動作が特定の動作である場合は、当該被制御対象に前記特定の動作を実行させるための予め定められた、動作が不要であることを示す無効制御情報とは異なる特定制御情報を供給することを特徴とする制御情報供給装置。
JP2006145166A 2006-05-25 2006-05-25 制御情報供給装置 Expired - Fee Related JP4646854B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006145166A JP4646854B2 (ja) 2006-05-25 2006-05-25 制御情報供給装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006145166A JP4646854B2 (ja) 2006-05-25 2006-05-25 制御情報供給装置

Publications (2)

Publication Number Publication Date
JP2007316901A JP2007316901A (ja) 2007-12-06
JP4646854B2 true JP4646854B2 (ja) 2011-03-09

Family

ID=38850711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006145166A Expired - Fee Related JP4646854B2 (ja) 2006-05-25 2006-05-25 制御情報供給装置

Country Status (1)

Country Link
JP (1) JP4646854B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9880770B2 (en) * 2015-09-02 2018-01-30 SK Hynix Inc. Supporting invalidation commands for non-volatile memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000081982A (ja) * 1998-09-04 2000-03-21 Matsushita Electric Ind Co Ltd コンパイラ、プロセッサおよび記録媒体
JP2004062280A (ja) * 2002-07-25 2004-02-26 Hitachi Ltd 半導体集積回路
JP2005251210A (ja) * 2005-03-16 2005-09-15 Matsushita Electric Ind Co Ltd プロセッサおよび記録媒体
JP2006072961A (ja) * 2004-08-04 2006-03-16 Yaskawa Electric Corp 演算処理装置のメモリ回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000081982A (ja) * 1998-09-04 2000-03-21 Matsushita Electric Ind Co Ltd コンパイラ、プロセッサおよび記録媒体
JP2004062280A (ja) * 2002-07-25 2004-02-26 Hitachi Ltd 半導体集積回路
JP2006072961A (ja) * 2004-08-04 2006-03-16 Yaskawa Electric Corp 演算処理装置のメモリ回路
JP2005251210A (ja) * 2005-03-16 2005-09-15 Matsushita Electric Ind Co Ltd プロセッサおよび記録媒体

Also Published As

Publication number Publication date
JP2007316901A (ja) 2007-12-06

Similar Documents

Publication Publication Date Title
CN101236487B (zh) 存储器子系统的多字元储存/读取方法以及其电路
JP4833303B2 (ja) 動作合成ツールにおける配列変換
KR20060004674A (ko) 데이터 프로세싱 장치, 머신 구현형 방법 및 컴퓨터 판독가능 매체
JP4651790B2 (ja) データ処理装置
JP4212676B2 (ja) 情報処理システムおよび情報処理方法
US7916975B2 (en) Image processing apparatus and image processing control method
JP3877002B2 (ja) 情報処理システムおよび情報処理方法
JP4646854B2 (ja) 制御情報供給装置
US7493485B2 (en) Structure of embedded memory unit with loader and system structure and operation method for the embedded memory apparatus
EP0661648B1 (en) Digital signal processing circuit
JP4646853B2 (ja) 制御情報供給装置
KR100475093B1 (ko) 둘 이상의 입력포트를 구비하는 집적 회로 장치 및 시스템
KR102290229B1 (ko) 병렬 처리를 위한 데이터 생성 장치
US9519599B2 (en) Memory location determining device and method for determining locations of compressed data in a memory by using first and second arithmetic operations
JP5205843B2 (ja) 演算処理装置及び演算処理プログラム
JP4479370B2 (ja) プロセッサ
JP2005195835A (ja) 情報処理装置および方法、記録媒体、並びにプログラム
WO2002086652A1 (fr) Processeur
JP2008083873A (ja) デジタル信号処理装置
JP4037941B2 (ja) 制御装置
JPS6236550B2 (ja)
JP2009199112A (ja) 設計装置、設計装置による設計方法、および、設計プログラム
JPH11232111A (ja) 情報処理システム
JP2003122561A (ja) 情報処理装置
JP2001344099A (ja) 情報処理装置及び該装置における情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101022

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101109

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees