JP2006031127A - 再構成可能な演算装置 - Google Patents

再構成可能な演算装置 Download PDF

Info

Publication number
JP2006031127A
JP2006031127A JP2004205332A JP2004205332A JP2006031127A JP 2006031127 A JP2006031127 A JP 2006031127A JP 2004205332 A JP2004205332 A JP 2004205332A JP 2004205332 A JP2004205332 A JP 2004205332A JP 2006031127 A JP2006031127 A JP 2006031127A
Authority
JP
Japan
Prior art keywords
processing
reconfigurable
configuration
data
arithmetic
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.)
Granted
Application number
JP2004205332A
Other languages
English (en)
Other versions
JP4594666B2 (ja
Inventor
Yoshihisa Saito
美寿 齋藤
Hisanori Fujisawa
久典 藤沢
Hideki Yoshizawa
英樹 吉沢
Satoru Tanizawa
哲 谷澤
Ichiro Kasama
一郎 笠間
Tetsuo Kono
哲雄 河野
Kazuaki Imafuku
和章 今福
Hiroshi Furukawa
浩 古川
Shiro Uryu
士郎 瓜生
Mitsuharu Wakayoshi
光春 若吉
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004205332A priority Critical patent/JP4594666B2/ja
Priority to EP10176264A priority patent/EP2278496A1/en
Priority to EP04258192A priority patent/EP1632868A3/en
Priority to KR1020050002492A priority patent/KR100740081B1/ko
Priority to TW094106443A priority patent/TWI282924B/zh
Priority to US11/077,561 priority patent/US7774580B2/en
Priority to CNB2005100593385A priority patent/CN100492343C/zh
Publication of JP2006031127A publication Critical patent/JP2006031127A/ja
Application granted granted Critical
Publication of JP4594666B2 publication Critical patent/JP4594666B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Abstract

【課題】 処理要素の配置や処理の制御構造に関わりなく一定の良好な処理効率が得られる再構成可変演算装置を提供する。
【解決手段】 再構成可能演算装置は、所与の第1のコンフィギュレーション・データにより再構成可能で互いに同時動作可能な複数の演算器と、RAMと、演算装置として必要とされる種々の処理要素と、前記の演算器、RAMおよび種々の処理要素を相互に接続し、接続される資源の間のデータ転送を前記資源の位置および種類によらず均一に行うとともに、所与の第2のコンフィギュレーション・データにより再構成可能な資源間ネットワークと、前記第1および第2のコンフィギュレーション・データを格納するコンフィギュレーション・メモリを備える。コンフィギュレーション・データを外部記憶装置からコンフィギュレーション・メモリへロードし、複数の演算手段から得られる情報に基づき、前記第1および第2のコンフィギュレーション・データを適切なシーケンスおよびタイミングで再構成可能な処理資源に供給する。
【選択図】図1

Description

本発明は、動的に構成を変えることにより様々な処理を行うことができる動的再構成可能な演算装置に関する。
従来の再構成可能な演算装置において、複数のタスクを実行させる方法は、二つのタイプに分けられる。一つは、回路を空間的に分割して、それぞれの部分にタスクを割り当てる方法(space parallelism)であり、もう一つはコンフィギュレーションを時分割に切り替えて異なるタスクを実行する方法(time parallelism)である。本発明は、後者のタイプ属し、コンフィギュレーションをクロックに同期して切り換えることにより、複数のタスクの時分割多重処理が可能でかつ動的再構成可能な演算装置に関する。
このような演算装置には、例えば特許文献1に開示されたものがある。図26は、特許文献1のアレイ型プロセッサのプロセッサエレメント(PE)アレイ部の一例を示す図である。図26において、PEアレイ部は、各プロセッサエレメント990の周囲を8つのプログラマブルスイッチエレメント991で取り囲むように、配設した構成である。隣接するプログラマブルスイッチエレメント991同士、および隣接するプロブラマブルスイッチエレメント991とプロセッサエレメント990とがデータバス992により電気的に接続されており、また、プログラマブルスイッチエレメント991およびプロセッサエレメント990に、演算制御バス993が配線してある。一つのプロセッサエレメント990が複数のスイッチエレメント991に接続されていることにより、プロセッサエレメント990のデータ入出力接続の自由度が高められている。
図27は、図26に示した従来のPEアレイにおけるデータ転送の遅延の問題を説明するための図であり、図27Aは、PEアレイの処理に関与する処理要素の動作を示し、27Bは、処理サイクルごとに動作が進行するようすを示す。図27には、PEアレイの左辺からデータを入力しながら、(a+b)+(c-d)+(e+f)の計算をする場合の例を示す。図27Aにおいて、左辺の連続する3つのスイッチエレメントPE1,PE2およびPE3に6つの値a、b、c、d、e、fを2つずつ入力した場合、サイクル1において、入力したスイッチエレメントの右下のプロセッサ要素により加算a+b(=A)、減算c-d(=B)および加算e+f(=C)が行われる。サイクル2において、スイッチエレメントPE4において加算A+B(=D)が行われると同時に、値Cのデータ転送1が行われる。サイクル3において、値Cのデータ転送2が行われ、サイクル4において、スイッチエレメントPE5に0おいて、加算D+C(=E)が行われ、サイクル5および6において、計算結果Eに対してデータ転送3および4が行われることにより、サイクル7において計算結果Eが出力される。
以上から分かるように、サイクル3において処理遅延の原因となるデータ転送2が発生し、サイクル4で処理が完成しているにもかかわらず、サイクル5および6においてさらなる処理遅延の原因となるデータ転送3および4が発生するために、計算結果Eが遅れてサイクル7で出力される。
つまり、特許文献1のように、プロセッサ要素のみならず、プロセッサ要素間のデータ転送に用いるスイッチ要素も配列を成した構造の場合、データ転送に伴って処置遅延が発生する可能性が大きい。
図28は、(a+b)*(c-d)の計算をする場合を例にとり、従来の演算装置では、PEアレイを構成するプロセッサ要素への機能配分が原因となり処理内容により問題が生じる可能性があることを示す図である。図28Aおよび28Bは、問題が発生しない場合のPEアレイの動作および同じ処理に対する処理サイクルごとの動作を示し、図28Cおよび28Dは、問題が発生する場合のPEアレイの動作および同じ処理に対する処理サイクルごとの動作を示す。図28Aおよび28CのPEアレイには、ALU(論理演算ユニット)および乗算器がそれぞれ図示したように配置されているものとする。乗算器とALUは、異種の要素としているが、これは、両者の物理的な構造が全く異なるためである。
図28Aの場合は、(a+b)*(c-d)の計算に対し、ALUと乗算器が都合よく配置されているので、2サイクルで計算を終了し、上述のデータ転送に3サイクル要しているので、6サイクルで全体の処理を終えている。これに対し、図28Cの場合は、ALUおよび乗算器の配置と与えられた計算との整合性が悪く、入力データcおよびdは計算に利用できるエレメントまで移動しなければならないため計算自体に5サイクルを要し、さらに最後に処理を行ったプロセッサ要素が出力スイッチ要素から離れているため、出力のためのデータ転送に4サイクルを要するので、処理全体に結局10サイクルが必要である。
PEアレイのプロセッサ要素の配置は製造段階で決まり、製造後に変更することはできない。したがって、隣接スイッチ要素間でデータ転送するタイプの演算装置において、異種の演算器でPEアレイを構成しようとすると、従来技術では、任意のアルゴリズムに対して整合するように演算器種を予め製造段階で決めることは不可能であるため、アルゴリズムによって処理効率が大幅に変化することになる。
このように、二次元配列されたスイッチ要素を介して演算要素間のデータ転送を行う構造のPEアレイ型の再構成可能演算装置においては、異種の演算要素をPEアレイ含めることはことは難しい。
また、図29は、従来の演算装置においてフィードバック処理を行うようすを示す図である。図29では、
D[0]=1;
for (i=0;i<5;i++){
aa[i]=D[i]+a[i];
B[i]=b[i]+aa[i];
cc[i]=c[i]+d[i];
D[i+1]=B[i]-cc[i];
} ・・・・・・・・・・・・・・・・(処理1)
なる処理を行うものとする。
分かりやすいように、PEアレイを構成するスイッチ要素の縦の列に左から順に0,1,2・・・M(M+1が列数である)と番号を付け、横の行にも上から順に0,1,2・・・N(N+1が行数である)と番号を付けた場合、j列目でk行目のスイッチ要素をS(j、k)とあらわこととする。また、第j列で第k行の処理要素(仮に、PE(j、k)と表す)には、この処理要素の4方に隣接するスイッチ要素S(j、k)、S(j、k−1)、S(j−1、k)およびS(j−1、k−1)からアクセス可能であるとする。
上述の処理1を行う場合、スイッチ要素S(0,0)からデータb[0]を入力し、S(0,1)からデータD[0]、a[0]を入力し、S(0,2)からデータd[0]、c[0]を入力する。すると、図29に示すように、最初のサイクル1において、処理要素PE(0,1)において加算演算aa[0](=D[0]+a[0])を行い、処理要素PE(1,1)において加算処理cc[0](=c[0]+d[0])を行う。次に、サイクル2で、処理要素PE(1,0)において、加算処理B[0](=b[0]+aa[0])を行う。次に、サイクル3において、PE(2,1)において減算処理D[0+1](=B[0]-cc[0])を行うとともに、値B[0]をスイッチ要素S(2,1)からS(3,1)までデータ転送1を行う。サイクル3では、引き続き、値B[0]をスイッチ要素S(3,1)からS(4,1)までデータ転送1を行うとともに、処理要素PE(2,1)の処理結果D[1]をPE(0,1)までフィードバックする。このように、ループ処理をする場合フィードバックサイクルが必要となる。この例では、フィードバックサイクルは1であるが、ループバックするまでの処理段数が多くなると、フィードバックで戻らなければならない距離が大きくなるので、さらに効率劣化の度合いが大きくなる。
このように、やはり二次元配列されたスイッチ要素を介して演算要素間のデータ転送を行う構造のPEアレイ型の再構成可能演算装置においては、処理の効率は処理の制御構造に依存するので、ループ処理によっては効率が劣化するする可能性がある。
演算器の再構成に時間を要することに一つの問題がある。演算器の再構成は処理内容の変更、条件分岐検出時等に発生する。したがって、再構成回数が増えれば増えるほど、この切替時間の積み重ねが、全体の処理性能の劣化をもたらす。
上述の特許文献1の場合には、いくつかの方法が示されているが、図30は、最短の切替時間を実現する例を示す。図30の演算装置は、演算器群と演算器群が再構成される部分であり、演算器群は複数個の演算器ユニット990aを2次元状に配置したものである。各演算器990aは演算器996、演算器に供給する複数個の命令を蓄えておく命令メモリ994、選択された命令を解読する命令デコーダ995を有する。
演算器群を再構成する部分は、状態制御管理部997、状態遷移テーブル998およびセレクタ999から構成される。状態遷移テーブル998は現状態番号により、テーブルを引き、次状態番号と演算器群内の演算器の全てに共通な命令アドレスを選択する。各演算器ユニット990aでは、演算器群の外から受けとった命令アドレスにより、内部の命令メモリから命令を読み出し、命令デコーダ995で命令を解釈し、演算器996に対して処理の種類を指定し、演算器996、は指定された処理を実行する。図30の演算装置の動作タイミングを図31に示す。動作タイミングを図3に示す。図3において、「演算動作」と記されたサイクル期間では、実際には、「命令メモリ読み出し」, 「命令デコード」、本当の「演算処理」という処理がなされる。なお、この図では、現状態番号を命令アドレス発行に使用した場合の図である。前述の特許文献1の「次状態番号を命令アドレス発行に使用した場合」の動作タイミングでは、命令アドレス発行のタイミングそのものの前倒しはできるが、「演算動作」は同じであるため、「命令メモリ読み出し」, 「命令デコード」、本当の「演算処理」の処理が必要となる。そのため、状態遷移テーブルを引いてから実際の演算処理を実行するまでの遅れが問題となる。また、状態テーブルのエントリが次状態番号と命令アドレスの両方を有している。状態遷移テーブルはメモリであり、エントリ量が多いとメモリが大きくなり、面積が増える問題がある。
特開2001−312481
本発明は、以上述べた従来技術の種々の課題を解決するために為されたものである。
本発明は、処理要素の配置や処理の制御構造に関わりなく一定の良好な処理効率が得られる再構成可変演算装置を提供することを目的とする。
本発明は、処理要素に任意の異種の要素を含めることができ迅速な再構成が可能な演算装置を提供することを目的とする。
以上の目的のため、本発明は、再構成可能演算装置を提供する。本発明の再構成可能演算装置は、所与の第1のコンフィギュレーション・データにより再構成可能で互いに同時動作可能な複数の演算手段と、読み書き自在の少なくとも1つの記憶手段と、演算装置として必要とされる種々の処理要素と、前記複数の演算手段および前記記憶手段の任意の出力データを前記複数の演算手段の任意の入力のデータとすることを可能とするとともに、前記複数の演算手段、前記記憶手段および前記の種々の処理要素からなる資源の間のデータ転送を前記資源の位置および種類にほぼ依存することなく均一な転送時間で行うとともに、所与の第2のコンフィギュレーション・データにより再構成可能な資源間相互接続手段と、前記第1および第2のコンフィギュレーション・データを格納する格納手段と、
前記コンフィギュレーション・データを外部記憶装置から前記格納手段へロードする手段と、前記複数の演算手段から得られる情報に基づき、前記第1および第2のコンフィギュレーション・データを適切なシーケンスおよびタイミングで前記の再構成可能な手段に供給する供給手段とを備えたことを特徴とする。
また、本発明は、別の側面では、複数の同時動作可能な演算器と、当該複数の演算器の状態を制御するシーケンサと、前記演算器の状態ごとの設定情報としてのコンフィギュレーション情報を格納するコンフィギュレーションメモリよりなる演算装置を提供する。本発明の演算装置は、前記複数の演算器の任意の演算器の出力が、他の複数の演算器の入力となる接続手段を有することを特徴とする。
本発明によれば、再構成可変演算装置において処理要素の配置や処理の制御構造に関わりなく一定の良好な処理効率が得られる。
また、本発明によれば、処理要素に任意の異種の要素を含めることができ迅速な再構成が可能となる。
以下、本発明の実施形態と添付図面とにより本発明を詳細に説明する。なお、複数の図面に同じ要素を示す場合には同一の参照符号を付ける。
〔実施例〕
図1は、本発明による再構成可能な演算装置の構成を概念的に示す略ブロック図である。図1において、再構成可能な演算装置1は、種々の処理要素が処理要素間ネットワーク40によって相互接続される処理要素(processing element)ネットワーク10を備える。種々の処理要素として、例えば複数(図1の例では4)の演算器20,データメモリ240,データ入力ポート220,データ出力ポート230およびその他種々の処理要素250などが処理要素間ネットワーク40に接続されている。演算器20は言うまでもなく、その他の種々の処理要素250も外部から供給されるコンフィギュレーション・データにより、そのコンフィギュレーション・データに関係付けられた機能を果たすように設定可能である。さらに、処理要素間ネットワーク40も外部から供給されるコンフィギュレーション・データに応じて、処理要素間ネットワーク40に接続されている種々の要素間のデータ転送を可能とする。
なお、図1では、簡単のため演算器20を4つしか示していないが、数十以上あってもよいことは言うまでもない。この点は、他の要素の数または信号数についても同様である。
また、再構成可能な演算装置1は、処理要素ネットワーク10の再構成可能な種々の要素に対するコンフィギュレーション・データCD0〜CD6を格納するコンフィギュレーションメモリ50、外部記憶装置(図示せず)からコンフィギュレーションメモリ50にコンフィギュレーション・データ(CD)をロードするコンフィギュレーション・データロード部(CDロード部)55,処理要素ネットワーク10を構成する再構成可能な種々の要素のうち主に演算器のから送信される条件成立信号CS1,CS2,・・・を受信し、これらの信号に基づいて切替条件信号を生成し出力する切替条件信号生成器60、切替条件信号生成器60からの切替条件信号に基づいてコンフィギュレーションメモリ50の次に読み出すべきアドレスを供給するシーケンサ70からなる。条件成立信号は、詳細に後述するように、例えば演算器20に含まれる各ALU(arithmetic logic unit論理演算ユニット)が比較演算の結果一致した場合に出力する信号であり、少なくともコンフィギュレーションの切替タイミングを示す切替条件信号の生成に用いられる。なお、再構成可能な演算装置1は、状態テーブルロード部57をさらに備え、図示しない外部記憶装置から状態テーブルをシーケンサ70に供給することが望ましい。
<データ転送の均一性を保証する要素間ネットワーク>
図2は、図1の処理要素ネットワーク10の構成を概念的に示す略ブロック図であり、2Aはネットワーク10全体のブロック図であり、2Bは、ネットワーク10を構成するセレクタ41の基本的構成を概念的に示す回路図である。図2Aにおいて、要素間ネットワーク40に接続されている処理要素(図2Aの例では、演算器20,データ出力ポート230,データメモリ240,および種々の処理要素250)の入力端子と要素間ネットワーク40とを接続する場合、要素間ネットワーク40はセレクタ41、41aおよび41b(セレクタを区別する必要がなく、総称する場合は、単にセレクタ41と記す)などを介してデータを出力する。例えば、各演算器20の入力には、総ての演算器20、データ入力ポート220、種々の処理要素250、データメモリ240の出力線を総て入力とするセレクタ41を介して出力される。同様に、要素間ネットワーク40は、種々の処理要素250へはセレクタ41a、データメモリ240へはセレクタ41b、データ出力ポート230へはセレクタ41cを介してデータ出力を行う。
再構成の柔軟性を高めるためには、各セレクタ41の入力には要素間ネットワーク40に接続される総ての処理要素の出力をすべて入力することが理想であるが、処理用素数が多い場合には、これを実現することは困難であるが、例えば、各演算要素20の入力に対応するセレクタ41には、総ての演算要素20とデータメモリの出力は少なくとも入力することが好ましい。その他の処理要素の入力に対するセレクタには、システムの用途および処理要素間の接続の必要性や可能性を考慮して接続する処理要素および出力端子を決定するのが現実的である。
このように、本発明によれば、要素間ネットワーク40の接続される処理要素20,220,230,240および250どうしは、高い自由度で単一のセレクタ41を介して相互に接続される。したがって、スイッチ要素と処理要素を二次元配列したアレイ型の演算装置のように、処理要素の配置場所により要素間のデータ転送速度が変化することはない。何れの要素どうしも同じ転送時間(後述のように、1クロック)でデータ転送が行われる。したがって、異種の処理要素を含めて設計することが可能となり、システムの柔軟性が格段に向上するので、広範な用途が可能である。
図2Bに示すように、各セレクタ41は、単一のセレクタ要素またはセレクタ要素の組合せ(単に、セレクタと称する)490、セレクタ490の出力に接続されたラッチ用フリップフロップ(FF)492、およびセレクタ490に組み込まれるか又は接続されてそのセレクタに接続された入力の何れを出力すべきかを示す情報(コンフィギュレーション・データの一部)を保持する記憶部494から構成される。コンフィギュレーションメモリ50から供給されるコンフィギュレーション・データCD0が要素間ネットワーク40を構成するセレクタ41の記憶部494にロードされ、各セレクタはその記憶部494に記憶された情報に基づいて入力線の1つを出力に接続する。
セレクタ41のラッチ用FF492には、クロック信号CKが供給され、このクロックに同期してセレクタ490の出力値を保持し、出力する。このように、本発明によれば、要素間ネットワーク40を構成するセレクタ41は、同一のクロックCKに同期して出力が確定するので、要素間ネットワーク40を介して接続された処理要素は、同期したデータ転送が行われるので、全体としてパイプラインを形成することになる。
このように、本発明の要素間ネットワークは、要素の位置にかかわらず1クロックでデータ転送を可能とするデータ転送の均一性を保証する。
図3は、図1の処理要素ネットワーク10aの一実施例を示すブロック図である。図3において、処理要素ネットワーク10aは、要素間ネットワーク40aに4つの演算器20、2つの256ワードRAM(random access memory)242,2つの4048ワードRAM243、バレルシフタ(barrel shifter)252,4つのカウンタ254および遅延用FF部256が接続されている。また、処理要素ネットワーク10aには、データ入力線ID0、ID1、ID2,ID3・・・、アドレス入力線IA0、IA1・・・が接続されている。
各演算器20は、a系統入力端子a0、a1およびb系統入力端子b0、b1を備え、さらに入力端子a0およびb0を入力とするセレクタ22、入力端子a1およびb1を入力とするセレクタ21、入力端子a0およびb0を入力とするALUa24,セレクタ21および22の出力を入力とするALUb23、ALUa24およびALUb23の出力を入力とする加算器(ADD)25、ALUb23の出力および加算器25の出力を入力とするセレクタ26、ALUa24の出力および加算器25の出力を入力とするセレクタ27、およびセレクタ26および27の出力を入力とするアキュムレータ(ACC)28を備える。なお、アキュムレータ(ACC)28は、必須の要素ではないので省略可能である。
図4は、図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図である。図4において、セレクタの隅を黒く塗りつぶした長方形は、上述のコンフィギュレーション記憶部494を示す。コンフィギュレーション記憶部494のデータ長は、そのセレクタの入力数に応じて、2入力は1ビット、4入力は2ビット、8入力は3ビット、16入力は4ビット・・・という具合に変化する。なお、総てのセレクタ回路402,404,406,408,410,412,420,430,430a、450,460,47aは、出力段に上述のラッチ用FF492を備える。
図4A〜4Dは演算器PE0(20)の入力a0、a1、b0およびb1に対するセレクタを示す。図4A〜4Dのセレクタ402〜408は、同じ構造である。セレクタ回路402、406は、2(またはそれ以上の)入力セレクタ484,5(またはそれ以上の)入力セレクタ482および14(またはそれ以上の)入力セレクタ480からなる。セレクタ484の入力には、データ入力ID0およびID1が接続され、セレクタ482の入力には、カウンタ0および1の出力、遅延用FF0およびFF1の出力およびバレルシフタ252の出力が接続される。セレクタ480の入力には、セレクタ482および484の出力の他、4つの演算器PE0〜PE3の各々の出力C0およびC1、RAM0〜3の総ての出力が接続される。したがって、演算器PE0の入力a0およびb0には、カウンタ2,3、遅延用FF部256のFF2,FF3、データ入力ID2以降のデータ入力以外の総ての要素の総ての出力を接続することが可能である。なお、図4Cのセレクタ回路406は、セレクタ484にデータ入力ID1の代わりにID3が入力されることを除けば図4Aのセレクタ回路402と同じである。
図4Bにおいて、セレクタ回路404は、セレクタ484への入力がデータ入力ID2およびID3であること、セレクタ482への入力が、カウンタ2および3の出力、ならびに遅延用FF2およびFF3の出力であることを除けば、セレクタ回路402と同じである。したがって、演算器PE0のa1入力には、カウンタ0,1、遅延用FF部256のFF0,FF1、データ入力ID0およびID1以外の総ての要素の総ての出力を接続することが可能である。
図4Dのセレクタ回路408は、セレクタ484への入力がデータ入力ID1およびID3であることを除けば、セレクタ回路404と同じである。したがって、演算器PE0のb1入力には、カウンタ0,1、遅延用FF部256のFF0,FF1、データ入力ID2およびID3以外の総ての要素の総ての出力を接続することが可能である。セレクタ480,482,494の隅に示した中黒のブロックはコンフィギュレーション記憶部である。
図4Eは、RAM0のデータ入力D0のセレクタ回路410は、4(またはそれ以上の)入力セレクタ507および508、および14(またはそれ以上の)入力セレクタ506を備える。セレクタ507の入力には、カウンタ2出力、遅延用FF0およびFF1,およびバレルシフタ252の各出力が接続される。セレクタ508の入力には、データ入力ID0〜ID3が接続される。セレクタ506の入力には、4つの演算器PE0〜PE3の各々の出力C0およびC1、RAM1〜3の出力、およびセレクタ507、508の総ての出力が接続される。
図4Fは、RAM0のアドレス入力のセレクタ回路412の図である。セレクタ回路412の入力には、外部アドレス入力OA0およびOA1を入力とするセレクタ497,カウンタ0および1、遅延用FF2およびFF3、およびバレルシフタ252の出力が接続される。セレクタ496の入力には、演算器PE0およびPE1の出力C0およびRAM1〜RAM3の出力が接続される。
RAM1〜3のデータ入力用セレクタ410a、410ブロック、410cおよびアドレス入力用セレクタ412a、412ブロック、412cに付いても同様であるが、RAM出力の番号、カウンタ出力の番号および遅延用FF出力の番号は循環的に異なる。
図4Gは、データ出力部OD0〜OD3に対するセレクタ420を示す図である。セレクタ回路420は、RAM0〜3の出力を入力とするセレクタ503,遅延用FF0〜3の出力を入力とするセレクタ504、カウンタ2および3の出力を入力とするセレクタ505,演算器PE0〜3の各出力C0およびC1、セレクタ503,504および505の出力を入力とするセレクタ502を含む。出力データID1〜ID3に付いては、カウンタ番号が循環的に変化する。
図4Hは、遅延用FF0入力部のセレクタ回路430を示す。セレクタ回路430は、RAM2および3、カウンタ0および1ならびにバレルシフタ252の出力を入力とするセレクタ511、データ入力ID0〜3を入力とするセレクタ512、外部アドレス入力IA0およびIA1を入力とするセレクタ513、および前記のセレクタ511,512および513の出力の他、演算器PE0およびPE1の各々の出力C0およびC1を入力とするセレクタ510を含む。
図4Iは、遅延用FF1入力部のセレクタ回路430aを示す。セレクタ回路430aは、セレクタ511が521に置き換わったことを除けば、セレクタ430と同じである。セレクタ521の入力には、RAM0および1およびカウンタ2および3の出力が接続されている。遅延用FF2および3に付いても、カウンタの番号が循環的に変わることを除けば同様である。
図4Jは、カウンタ0入力用のセレクタ回路450を示す。図4Jにおいて、セレクタ回路450は、カウンタ0以外のカウンタ1〜3の出力を入力とするセレクタ531,演算器PE0〜3の出力C0を入力とするセレクタ532,遅延用FF0〜3の出力を入力とするセレクタ533、およびセレクタ531,532および533の出力を入力とする530を含む。カウンタ1〜3についても同様であるが、自分自身の出力はセレクタ531に入力しないようにする。
図4Kは、バレルシフタ252入力用のセレクタ回路を示す。セレクタ回路460は、
RAM0〜3の出力を入力とするセレクタ541、外部データ入力ID0〜3を入力とするセレクタ542、ならびにセレクタ541、542および演算器PE0〜3の各々の出力C0およびC1を入力とするセレクタ460を含む。
図4Lは、アドレス出力OA0用のセレクタ回路47aである。セレクタ回路47aは、RAM2,3およびカウンタ0,2の出力を入力とするセレクタ547,遅延用FF0およびFF2の出力を入力とするセレクタ548、ならびにセレクタ547、548の出力および演算器PE0およびPE2の各々の出力C0およびC1を入力とするセレクタ546を含む。その他のアドレス出力OA1〜3用のセレクタ47b、47c、47cも同様であるが、RAM以外の入力は循環的に異なる。
以上は、図3の処理要素ネットワーク10aに使用される要素間ネットワーク40aの実施例である。以上から分かるように、少なくとも演算器20とデータメモリ(RAM0〜3)242との間は入出力が相互に接続され、その他の要素も演算器20およびその他の処理要素と必要に応じて相互に接続されていて、種々の処理要素が含まれているので、柔軟性の高いシステム構成が可能となり、処理の制御構造に関わりなく効率的なパイプライン処理が可能となる。
図5Aは、図1のシーケンサの第1の実施例を概念的に示す略ブロック図である。図5Aにおいて、シーケンサ70は、状態番号を保持する状態番号レジスタ76、所定の遷移先(次の)状態番号を格納する状態テーブル74、切替条件信号生成器60からの切替条件信号が有効になったタイミングで、レジスタ76の示す状態番号により、状態テーブル74の読み出しを行う状態制御部72からなる。現状態番号レジスタ76の出力をシーケンサ70の出力として使用する。本発明によれば、現状態番号をコンフィギュレーションメモリ50のアドレスとすることにより、後述のように処理の効率を高めている。
図6は、状態テーブル74の構成を概念的に示す図である。図6において、状態遷移テーブル74は、可能な状態数nの遷移先状態番号1〜nを格納する遷移先状態番号記憶部742、および現状態番号レジスタ76からの現状態番号をデコードすることにより、現状態番号に関係付けられた遷移先状態番号i(i=1〜n:nは可能な状態数)を指定するアドレスデコーダ740を備える。状態テーブル74は、アドレスデコーダ740により指定された遷移先状態番号i(次の読み出すべきコンフィギュレーションメモリのアドレス(CMAと称する)に等しい)を出力する。
図7は、コンフィギュレーション切替時の動作タイミングを示す図である。図7において、現在のコンフィギュレーションで処理中(ST0)に、条件切替信号にコンフィギュレーション切替を示すパルスが現れると、これに応じて状態制御部72は現状態番号レジスタ76の現状態番号を状態テーブル74に渡す。状態ST1において、状態テーブル74は、受け取った現状態番号を基に遷移先状態番号(=次のCMA)を出力する。状態ST2において、このCMAを用いてコンフィギュレーションメモリ50からコンフィギュレーション・データ(CD)が読み出され、読み出されたCDは、処理要素ネットワーク10の各処理要素のコンフィギュレーション・データ(CD)記憶部に対応部分が分配されて格納され、これと同時に、各処理要素は、新たに格納されたCDに応じた構成へと再構成される。状態ST3において、処理要素ネットワーク10は再構成された状態で処理を開始する。
このように、本発明によれば、状態番号とCMAを一致させたことにより、状態テーブル74が簡素化されるとともに、コンフィギュレーションメモリ読み出しに要する処理ステップを減らすことができ、図31に関連して説明した従来の演算装置に比べて、再構成に要する時間を短縮することができる。さらに、図30の状態遷移テーブルと比較すると、同じ状態数ならば、本発明の図6の遷移状態記憶部742はデータ量が遙かに少ないことが分かる。
また、図5Bは、図1のシーケンサの第2の実施例を概念的に示す略ブロック図である。図5Bのシーケンサ70aは、状態テーブル74の出力と現状態番号レジスタ76の出力とを入力とし何れか一方を出力するスイッチ75を備えた点を除けばシーケンサ70と同じである。スイッチ75を備えたことにより、コンフィギュレーション切替時に、スイッチ75を状態テーブル74の出力(すなわち、遷移先状態番号=次のCMA)を選択する状態に設定することにより、状態テーブル74の遷移先状態番号をいち早く出力することが可能となり、コンフィギュレーション切替時間を短縮することができる。
次に、本発明の特徴を上述の従来技術の課題と対比して説明する。
<データ転送による処理サイクルの遅延の解消>
従来のアレイ型演算装置では、図27に示したようにデータ転送1〜4に伴って遅延が発生する。図8Aは、図27と同じ処理を本発明の再構成可能な演算装置を用いて行う場合のコンフィギュレーションを示す等価回路である。図8Aを含むコンフィギュレーションの等価回路を示す図において、破線は、コンフィギュレーション・データにより要素間ネットワーク40のセレクタ回路(図示せず)が適切に設定された結果生じた演算器間の結線状態を示す。演算器の入力に挿入された網掛けの水平な長方形は上述のフィリップフロップ492を示す。
図8Aにおいて、演算器A,B,Cは、入力信号をa〜fとした場合、加算a+b、減算c−d、および加算e+fを行う要素として再構成されている。演算器Dは、演算器AおよびBの出力を用いてA+Bを計算する加算器として再構成され、演算器Eは、演算器DおよびCの出力を用いてD+Cを計算する加算器として再構成されている。
図8Bは、図8Aのコンフィギュレーションで実行される処理を示すサイクル状態テーブルである。図8Bに示すように、処理サイクル1でA=a+b、B=c−d、およびC=e+fが演算され、サイクル2において、D=A+Bが実行され、サイクル3において、E=D+Cが演算され、サイクル4において演算結果Eが出力される。このように、本発明の再構成可能な演算装置によれば、データ転送に起因する処理サイクルの遅延は、発生しない。ちなみに、図27では、3サイクルの遅延が発生している。
<処理要素の独立性>
従来の異種要素を含むアレイ型演算装置においては、図28に示したように処理要素の配列と処理内容とにより処理効率が影響を受けた。この点について、考察する。図9は、図28で行った演算(a+b)*(c−d)と同じ計算を本発明の再構成可能な演算装置1で行う場合を説明する図である。図9Aは、式(a+b)*(c−d)を計算するために再構成した処理要素ネットワーク10の等価回路である。図9Bは、図9Aの処理を示すサイクル状態テーブルである。処理サイクル1において、演算器(ALU)AおよびBにおいて、加算a+b(=A)および減算c−d(=B)をそれぞれ行い、サイクル2において、右から2番目の乗算器において乗算A*Bを行い、サイクル3において、乗算器の演算結果を出力する。
図9Aから分かるように、本発明の要素間ネットワーク40により乗算器の位置にかかわらず、図9Aと同じトポロジーを形成することが可能である。このように、本発明の再構成可能な演算装置によれば、処理要素の配置にかかわらず同じトポロジーを形成することができるので、異種の処理要素を任意の位置に追加することが可能である。
<フィードバック処理>
従来の異種要素を含むアレイ型演算装置においては、図29に示したようにループを含む繰り返し処理を行う場合、処理効率が影響を受ける場合がある。この点について、考察する。図10は、図29で行った演算と同じ演算(上述の処理1)を本発明の再構成可能な演算装置1で行う場合を説明する図である。図9Aは、処理1を実行するために再構成した処理要素ネットワーク10の等価回路である。図9Bは、図9Aの処理を示すサイクル状態テーブルである。処理サイクル1において、左端の加算器aa[i]および中央の加算器cc[i]により、加算D[0]+a[0](=aa[0])および加算c[0]+d[0](=cc[0])それぞれを行い、サイクル2において、左から2番目の加算器B[i]により加算b[0]+aa[0]を行い、サイクル3において、右から2番目の減算器D[i+1]により、減算B[0]-cc[0]を実行するとともに、加算器B[i]の計算結果を出力して、最初のループを終了する。さらに、サイクル4において、加算器aa[i]および加算器cc[i]により加算D[1]+a[1](=aa[1])および加算c[1]+d[1](=cc[1])それぞれを行い、サイクル5において、加算器B[i]により加算b[1]+aa[1]を行い、サイクル6において、減算器D[i+1]により、減算B[1]-cc[1]を実行するとともに、加算器B[i]の計算結果を出力して、2回目のループを終了するという具合に処理を行う。
図10Bのサイクル状態テーブルから分かるように、本発明の再構成可能な演算装置によればループ処理に伴うフィードバックのためにデータ転送が発生することはない。このように、本発明によれば、ループ処理によって処理効率が劣化する心配はない。
<RISCプロセッサとの比較>
・独立な並列処理
図32Aは、従来の典型的なRISCプロセッサを概念的に示す概略図である。図32において、典型的なRISCプロセッサは、複数の演算器980、演算器980の入出力に接続されたレジスタファイル982、命令メモリ984および命令メモリ984からの命令をデータコードし、演算器980に供給する命令デコーダ986からなる。
図32Bは、図32AのRISCプロセッサにより、次のような処理を並列処理した場合のサイクル状態テーブルである。
for( i=0; i<5; i++){
A[i]=a1[i]+a2[i];….演算(a)
B[i]=b1[i]+b2[i];….演算(b)
C[i]=c1[i]*c2[i];….演算(c)
D[i]=d1[i]*d2[i];….演算(d)
} ・・・・・・・・・・・・・・・・・・(処理2)
すなわち、図32Aの2つの演算器に加算A[i]およびB[i]をさせ、他の2つの演算器に乗算C[i]およびD[i]をさせることにより、処理2を並列処理した場合、サイクル状態テーブルは図32Bのようになる。図32Bにおいて、Fは命令メモリ984から命令を読み出す命令フェッチサイクルを示し、Dは読み出した命令を命令デコーダ986で解読するデコードサイクル、a、b、c、dはそれぞれの演算を実行する実行サイクルを表し、Wは処理結果を書き込むライトサイクルである。RISCプロセッサは、ノイマン型のプロセッサであるから、各演算器980が処理を行うたびに命令をフェッチしデコードするので、各処理に4サイクル必要である。したがって、必要命令数は、4並列x5個=20命令である。
一方、処理2を本発明の再構成可能な演算装置1でおこなう場合を考察する。図11Aは、処理2を実行するために処理要素ネットワーク10を再構成した結果の等価回路であり、図11Bは、図11Aの構成で処理2を実行した場合のサイクル状態テーブルである。本発明による再構成可能な演算装置は、基本的にはノイマン型ではなくデータ駆動型のプロセッサに属するので、処理2のように各演算器20が独立して(他の演算器20の計算結果に影響を受けることなく)同一の処理を繰り返すような場合は、最初に図11Aに示すように必要な再構成を行えば、以降は再構成を行う必要はない。
図11Aにおいて、演算器(a)、(b)、(c)、(d)の各々の2つの入力および1つの出力は総てデータメモリ240に接続され、演算器(a)、(b)が加算に設定され、演算器(c)、(d)が乗算に設定されている。
図11Bにおいて、Rはメモリ240からデータa1[i]、a2[i]、b1[i]、b2[i]、c1[i]、c2[i]、d1[i]、d2[i]を読み出すリードサイクルであり、NはRはメモリ240からデータが要素間ネットワーク40上にあるサイクルであり、a、b、c、dは各演算器20がそれぞれの処理を行うサイクルであり、Wは処理結果をデータメモリ240に書き込むライトサイクルである。処理2のような単純な並列処理は、本発明の再構成可能な演算装置も従来のRISCプロセッサと同じサイクル数で処理を終了することができる。
・独立でない並列処理
処理2では、4つの計算を単に独立して行い、1つの計算に他の計算結果を使用することは行わないので、単純である。次に、1つの計算に他の計算結果を使用する処理例を考察する。
for( i=0; i<5; i++){
A[i]=a1[i]+a2[i];….演算(a')
B[i]=b1[i]+A[i];….演算(b')
C[i]=A1[i]*B[i];….演算(c')
D[i]=d1[i]*C[i];….演算(d')
} ・・・・・・・・・・・・・・・・・・(処理3)
図32Cは、高性能のRISCプロセッサで行われるフォワーディングまたはバイパッシング(計算結果をレジスタファイル982に書き込むと同時に、必要とする演算器にレジスタファイル982を介さずに直に渡すこと)を行いながら、処理3を実行した場合のサイクル状態テーブルである。この場合、必要命令数は4並列x8個であり、処理を完了するのに11サイクルを要する。
また、図32Dは、同じ処理3をフォワーディングせずに実行した場合のサイクル状態テーブルである。この場合、計算結果を他の計算に使用する場合、計算結果は必ずレジスタファイル982を介して必要とする演算器に渡されるので、フォワーディングを行う場合に比較すると効率は落ちる。この場合、必要な命令数は、4並列x11個であり、処理終了までに14サイクルを要する。
図11Cは、処理3を実行するために再構成した処理要素ネットワーク10の等価回路である。演算器(a’)および(b’)は加算に設定され、演算器(c’)および(d’)は乗算に設定されている。演算器(a’)の入力はデータメモリ240に接続されデータa1[i]およびa2[i]を取り込み、演算器(a’)の出力A[i]は演算器(b’)および(c’)の一方の入力に接続され、演算器(b’)の他方の入力はデータメモリ240に接続されてデータb1[i]を取り込み、演算器(b’)の出力B[i]は演算器(c’)の他方の入力に接続され、演算器(c’)の出力C[i]は演算器(d’)の一方の入力に接続され、演算器(d’)の他方の入力と出力はデータメモリ240に接続され、データd1[i]を入力するとともに、計算結果 D[i]をデータメモリ240に書き込む。
図11Dは、図11のコンフィギュレーションにより処理3を実行した場合の処理のようすを示すサイクル状態テーブルである。リードサイクル(R)、ネットワークサイクル(N)およびライトサイクル(W)を含めて1回のループ処理に7クロックを要し、5個のループ処理が1クロックずつ遅れて開始されて並列処理が行われるようすを示す。
本発明のパイプライン処理は処理3を完了までに11クロック要する。これは、図32Cとの比較から分かるように、従来のRISCプロセッサのフォワーディング処理付きの場合と同じ性能であり、フォワーディング処理がないプロセッサと比較すると、高性能となる。
従来のRISCプロセッサは、命令を8(フォワーディングあり)または11(フォワーディングなし)必要とするので、8または11回の命令フェッチ、命令デコードおよび命令の演算器への設定を行うのに対し、本発明では、コンフィギュレーションは1つで済むので、処理開始前に1回のみ再構成をした後、処理完了まで保持するだけでよいので、動作する箇所が少なくて済む、したがって、消費電力の低減が可能である。
処理3の例では、ループ回数が5であるが、例えば1000回の場合、従来の方式では1003回(フォワーディングあり)または1006の命令発行を必要とするが、本発明では、この場合でもコンフィギュレーションは1つで済み、処理開始前に1回再構成すれば、処理完了まで保持するだけでよいので、動作箇所が少なくて済み、消費電力の低減が可能となる。
また、本発明では、演算毎にメモリにデータを書き込むことはせず、要素間ネットワーク40のラッチ用FF492に保持されるので、RISCプロセッサのようにレジスタファイルへのアクセスを減らすことができる。
以上のように、本発明の再構成可能な演算装置は、独立でない並列処理に対してもRISCプロセッサより良好な性能を示す。
<自由度の高い再構成可能性>
図12は、本発明の再構成可能な演算装置1の処理要素ネットワーク10が柔軟性に富んだ構成が可能であることを示す図である。図12において処理A(=処理2)に対するコンフィギュレーションから処理Bに対応したコンフィギュレーションへと容易に再構成することが可能である。処理Bは、上述の処理3の B[i]=b1[i]+A[i]を B[i]=b1[i]―A[i]に変更したものである。このように、本発明によれば、完全に独立した並列処理から相互に依存する並列処理まで高い自由度で再構成可能である。
<スケーラビリティ>
図13は、従来のRISCプロセッサ(13A)と本発明の演算装置1(13B)とのセケーラビリティを比較するための図である。図13AのRISCプロセッサでは、同時動作可能な演算器を増やすごとにレジスタファイルのメモリポートを増やす必要がある。1つ演算器が増えるとリードポートが2つとライトポートが1つ増える。プロセッサにおけるレジスタファイルの占める面積は非常に大きく、ポート数がn倍になるとレジスタファイルの面積はnの二乗のオーダーで増加するので、演算器の数を増やすのは困難である。この問題は、RISCプロセッサが並列処理を行うか、パイプライン処理を行うかに関わらず発生する。
これに対し、本発明の処理要素ネットワーク10では、並列処理の場合、メモリや入出力資源の現実的実装の範囲内で演算器を増やすことが可能である。パイプライン処理の場合、図13Bに示すように、処理の途中結果は要素間ネットワーク40のFF492に保持されるので、処理の途中結果をメモリ240への書き戻し、およびメモリ240からの読み出しを行う必要がなく、パイプラインの段数が深くなっても(すなわち、同時動作の演算器の数が増加しても)、メモリまたはレジスタファイルに必要なポート数が増加しない。したがって、演算器数が増えても、メモリまたはレジスタファイルのポート数を増やす必要がないので、演算器の数を容易に増やすことが可能である。演算器数を増やすことにより、単位時間あたりの処理性能を高めることが可能となる。
〔好ましい実施例〕
図14は、本発明の好ましい実施例による再構成可能な演算装置の処理要素ネットワーク10bの構成を概念的に示す略ブロック図である。図14の処理要素ネットワーク10bは、図3の処理要素ネットワーク10aと殆ど同じなので、相違点のみを説明する。相違点は、図14の処理要素ネットワーク10bが、切替条件信号を生成するためのイネーブル信号ESを得るために、データ入力線ID0〜ID3の各々にデータイネーブル線DE0〜DE3を備え、RAM0〜3へのアドレス入力A0〜A3の各々にアドレスイネーブル信号AE0〜AE3を備え、データイネーブルDE0〜DE3およびアドレスイネーブルAE0〜AE3を入力とするセレクタ62、およびセレクタ62用のコンフィギュレーション・データ記憶部64を備えた点である。
セレクタ62は、コンフィギュレーション・データ記憶部64に記憶されたデータに基づき、データイネーブルDE0〜DE3およびアドレスイネーブルAE0〜AE3の何れか1つを選択してイネーブル信号ESとして出力する。
なお、RAMアドレスイネーブル信号AE0〜AE3の代わりに、RAM読み出しデータのイネーブル信号とRAM書き込みデータのイネーブル信号とを組み合わせて使用してもよい。
図15は、 切替条件信号発生器60の好ましい実施例を示すブロック図である。図15において、各演算器PEi(図14に例では、1=0,1,2,3)において、2つのALUb23およびALUa24は、比較演算時に一致した場合に論理1となる条件成立信号をそれぞれ出力する。図15の例では、PE0からの2つの条件成立信号CS0aおよびCS0bを一括してCS0とし、PE1からの2つの条件成立信号CS1aおよびCS1bを一括してCS1とする。切替条件信号生成器60は、コンフィギュレーションメモリ50からのコンフィギュレーション情報とイネーブル信号ESから切替条件が成立したことを示す切替条件発生信号を生成するループ終了判定部610、および演算器PE0およびPE1からの条件成立信号CS0a、CS0b、CS1aおよびCS1bに基づいてプレ切替条件発生通知信号と切替条件コード信号を出力する切替条件コードを生成する切替条件コード生成ユニット630から構成される。
切替条件コード生成ユニット630は、演算器PE0およびPE1からの条件成立信号CS0a、CS0b、CS1aおよびCS1bを入力として4つの条件成立信号の異なる1つを選択出力するセレクタ632、634,636および638、これらのセレクタ用のコンフィギュレーション・データを格納するCD記憶部640、入力信号が論理1となった場合、所定の2ビットコード00,01,10および11を出力する切替条件コード生成部642、644、646および648、条件成立信号CS0およびCS1に応じて切替条件コード生成部642〜648の出力の1つを切替条件コード信号として出力する優先順位付きセレクタ650、および条件成立信号CS0a、CS0b、CS1aおよびCS1bの論理和を出力する論理和ゲート652からなる。
ループ処理が終了した(ループから抜け出した)ことを検出するループ終了判定部610は、処理要素ネットワーク10bからのイネーブル信号ESを数えるイネーブルカウンタ612,予測されるループ回数を保持する期待ループ回数保持部614、イネーブルカウンタ612と期待ループ回数保持部614の出力を比較する比較器616,比較器616の出力を数えるサイクルカウンタ618,現在処理中の処理がパイプラインから完全に抜け出て終了するまでのクロックサイクルを保持するループ終了オフセット値保持部620、サイクルカウンタ618とループ終了オフセット値保持部620との比較を行う比較器622、比較器622の出力と切替条件コード生成ユニット630からのプレ切替条件発生通知信号とを入力とし何れか一方を出力するセレクタ624、およびセレクタ624の選択を指示するコンフィギュレーション情報を保持するCD保持部626から構成される。
以上のような構成の切替条件信号生成器60の動作を説明する。セレクタ632〜638のCD記憶部640には、セレクタ632、634,636および638が条件成立信号、例えばCS0a、CS0b、CS1aおよびCS1bをそれぞれ選択するようなコンフィギュレーション・データが格納されているものとする。セレクタ632、634,636および638により選択されたそれぞれの信号CS0a、CS0b、CS1aおよびCS1bは複数が同時に論理1となることもあり得る。切替条件コード生成部642、644、646および648は、セレクタ632、634,636および638からの信号が論理1の場合、上述の所定の2ビットコードを出力する。優先順位付きセレクタ650においては、切替条件コード生成部642、644、646および648の出力と他方の入力信号である条件成立信号CS0a、CS0b、CS1aおよびCS1bとが1対1に関係付けられ、さらに切替条件コード生成部642、644、646および648の出力(または条件成立信号CS0a、CS0b、CS1aおよびCS1b)に所定の優先順位が定められているものとする。優先順位付きセレクタ650は、複数の切替条件コード生成部から出力を受信した場合、条件成立信号CS0a、CS0b、CS1aおよびCS1bの論理1であるもののうち予め設定された優先順位の最高の条件成立信号に関係付けられた2ビットコードを切替条件コード信号として出力する。また、条件成立信号CS0a、CS0b、CS1aおよびCS1bを入力とする4入力論理和ゲート652は、条件成立信号CS0a、CS0b、CS1aおよびCS1bのうち1つでも論理1のものがある場合、論理1を出力する。
一方、ループ終了判定部610において、データイネーブルカウンタ612は入力されるイネーブル信号ESの数を数えて出力する。比較器616は、データイネーブルカウンタ612の出力と期待ループ回数保持部614の値とを比較し、一致した場合、一致したことを示す信号を出力する。サイクルカウンタ618は、比較器616から一致したことを示す信号を受信すると、再構成可能な演算装置1の処理サイクル(例えば、クロック)を数え始める。ループ終了オフセット値保持部620には、現在処理中の処理が終了する(すなわち、パイプラインから現在処理中の処理データが出払う)までのクロック数が格納されている。したがって、比較器622は、サイクルカウンタ618の値がループ終了オフセット値保持部620の値と一致したとき一致出力を与えるので、イネーブル信号ESが期待ループ回数と一致した場合、その時処理中の処理が終了したタイミングで一致信号を出力することになる。セレクタ622は、1ビットのCD記憶部626の内容に応じて比較器622の出力または4入力論理和ゲート652の出力の何れかを出力する。
このようにして、切替条件信号生成器60は、コンフィギュレーション切替タイミングを示す切替条件発生信号(セレクタ624の出力)および2ビットの切替条件コード信号を出力する。
なお、優先順位付きセレクタの650は、コンフィギュレーション・メモリ50から供給されるコンフィギュレーション・データまたは別の入力手段により入力される設定データを保持することにより、利用者が優先順位を設定できるようにすることが好ましい。
図16は、図14の処理要素ネットワーク10bおよび図15の切替条件信号発生器60を用いた好ましい実施形態による演算装置の全体的構成とシーケンサの具体例を示す略ブロック図である。図16において、処理要素ネットワーク10、コンフィギュレーションメモリ50、CDロード部55および切替条件信号生成器60は既に述べたとおりである。シーケンサの状態制御部72は、状態制御部72、状態制御部72の出力に関係付けられた遷移先状態番号の候補を出力する状態テーブル78、状態テーブル78が出力する候補を切替条件信号生成器60からの切替条件コード信号に基づいて選択し、次状態番号(=コンフィギュレーションメモリアドレス)として出力するセレクタ79、およびセレクタ79の出力を保持する状態番号レジスタ76からなる。切替条件信号生成器60の切替条件発生信号は状態制御部72とコンフィギュレーションメモリ50に供給される。また、上述のように、再構成可能な演算装置1は、状態テーブルロード部57を備え、図示しない外部記憶装置から状態テーブル78をシーケンサ70または70bの記憶装置にロードする。
図17は、状態テーブル78の実施例を示す図である。図17において、状態テーブル78は、図6で既に述べたアドレスデコーダ740、可能な状態に対応した遷移先状態番号の候補リストからなる状態遷移テーブル742aからなる。図16および17を参照してシーケンサ70bの動作を説明する。
状態制御部72は、現状態番号レジスタ76に保持されている現在の状態番号(=現在のコンフィギュレーションメモリアドレス)を切替条件信号生成器60からの切替条件発生信号に同期して状態テーブル78に出力する。現在の状態番号を受信すると、状態テーブル78のアドレスデコーダ740は、現在の状態番号をデコードすることにより現状態番号に関係付けられた遷移先状態番号の候補リストi(i=1〜n:nは可能な状態数)を指定する。状態遷移テーブル742aは、指定された遷移先状態番号の候補リストiを出力する。図17の例では、候補リストiには、4つの遷移先状態番号候補が含まれる。セレクタ79は、遷移先状態番号の候補リストiを受け取ると、切替条件信号生成器60からの切替条件コード信号に関係付けられた遷移先状態番号を出力する。例えば、遷移先状態番号の候補リストiの先頭から順に切替条件コード信号00,01,10,および11を関係付ける方法がある。この関係付ける方法は種々の方法が考えられる。セレクタ79から出力された次状態番号(次のCMA)は、現状態番号レジスタ76およびコンフィギュレーションメモリ50に供給される。現状態番号レジスタ76は、受信した次状態番号を保持する。コンフィギュレーションメモリ50の次のCMAのコンフィギュレーション・データが切替条件信号生成器60からの切替条件発生信号に同期して読み出され、読み出されたコンフィギュレーション・データは、それぞれの供給先に分配される。このように分配されたコンフィギュレーション・データが各要素に設定されることにより、再構成が実現する。
<次のCMAのプリセット(Presetting the next CMA)>
図18は、状態テーブルの78の先読みを行うシーケンサの実施例を示す略ブロック図である。図18のシーケンサ70cは、現状態番号レジスタ76の出力と切替条件発生信号に基づいてセレクタ79から出力される次状態番号から現在の状態番号(現在のCMA)を出力する状態切替部80を備えた点を除けば図16のシーケンサ70bと同じである。
図19は、図18のシーケンサ70cの動作タイミングを示す処理ステータスチャートである。図19において、状態2(現状態)において、状態切替部80は、現状態番号から遷移先状態番号候補をあらかじめ状態テーブル78から読み出し、切替条件発生信号に応じて、あらかじめ読み出されている遷移先状態番号候補から、次状態番号を選択し、直ちにコンフィギュレーションメモリを読み出すことで、切替動作の高速化を実現する。すなわち、状態2(現状態)において、状態切替タイミング発生前にあらかじめ次状態番号候補3、すなわち次コンフィギュレーションメモリアドレス(CMA)が読み出されているために、状態切替タイミング発生時にすぐに切替コードによりコンフィギュレーションメモリアドレスを選択し、コンフィギュレーションメモリから、次コンフィギュレーション・データを読み出し、演算が実行可能となる。この例では、コンフィギュレーションメモリ読み出しと、演算実行に1チックかかっているように書いてあるが、コンフィギュレーションメモリ読み出しと同一チック内に演算実行を開始しても構わない。また、本発明ではコンフィギュレーションメモリ50に外部記憶装置(図示せず)からコンフィギュレーション情報を取り込むためのコンフィギュレーション情報ロード部55は、シーケンサ内に設けてもよい。
<種々の変形(Various modifications)>
図20は、コンフィギュレーション・レジスタを備えた演算装置の実施例を示す略ブロック図である。図20の再構成可能な演算装置1bは、コンフィギュレーションメモリ50と処理要素ネットワーク10との間にコンフィギュレーションレジスタ82を挿入したこと、および切替条件信号生成器60の切替条件信号を処理要素ネットワーク10にも供給することを除けば、図1の再構成可能な演算装置1と同じである。図21は、図20の再構成可能な演算装置1bにおけるコンフィギュレーション切替動作を示す処理状態チャートである。図21において、上述のように状態2(現状態)ではシーケンサ70から状態番号3(次のCMA)が出力されている。この次のCMAを用いてコンフィギュレーションメモリ50から次のコンフィギュレーション・データを読み出し、コンフィギュレーション・レジスタ82に格納する。したがって、状態2(現状態)において、コンフィギュレーション・レジスタ82には、既に次のコンフィギュレーション・データがロードされている。そして、切替条件信号生成器60からの切替条件信号がアクティブになると、これに応じて、処理要素ネットワーク10の再構成可能な各要素が、コンフィギュレーション・レジスタ82の自分に割り当てられた場所からコンフィギュレーション・データを取り込むことにより、再構成が完了し、実際の処理を行うことができるようになる。このように、コンフィギュレーション・レジスタ82を備えることにより、高速なコンフィギュレーション切替が可能となる。
図22は、コンフィギュレーション・レジスタ82の配置方法の変形例を示す。図22Aは、要素間ネットワーク40を含む種々の処理要素20、250をグループ化し、処理要素のグループ毎にコンフィギュレーション・レジスタ82a1、82a2,...,82aN(Nは、処理要素グループ数)を設けた例である。
図22Bは、要素間ネットワーク40を含めた各処理要素ごとにコンフィギュレーション・レジスタ82b1、82b2,...,82aM(Mは、再構成可能な処理要素の数)を設けた例である。
図23は、コンフィギュレーションメモリ50を分散して配置する実施例を示す。図23Aは、再構成可能な処理要素毎にコンフィギュレーションメモリ50aを備える例である。図32Bは、処理要素ネットワーク10をクラスタ化し、クラスタごとにコンフィギュレーションメモリ50bを備える例である。何れの場合も、各コンフィギュレーションメモリ50aまたは50bごとに、CDロード部55およびシーケンサ70からそれぞれデータ供給を受けることになる。
図24は、図1,2A,3,14,15,22および23において演算器または演算要素が受信したコンフィギュレーション・データの一部または全部をデコードする実施例を示す図である。コンフィギュレーション・データの一部をデコードすることにより状態切替を高速化することが可能となる。
図25は、別の実施形態による処理要素ネットワークの構成例を示す略ブロック図である。図25において、処理要素ネットワーク10cは、8つの演算器(ALU module)20、2つのセレクタ(SEL module)、4つの積和・乗算ユニット(MUL/MAC module)254、複数のカウンタ264,レジスタファイル256,2組の二重化バッファ266、および以上の要素が接続される要素間ネットワーク40cを備える。また、処理要素ネットワーク10cは、2つの2048ワードRAM258および4つの512ワードRAM259を備えるが、演算器20や積和・乗算ユニット254のみならず、図示しないCPUからのアクセスも可能とするため、RAM258およびRAM259の各々には、アービタが接続され、要素間ネットワーク40cおよびセレクタ/アドレスデコーダ262はアービタを介して上記のRAMに接続される。このような構成により、手続き処理得意とするCPU(図示せず)と連携して動作するシステムを構築することが可能となり、手図付き処理とパイプライン処理とを融合した動作が可能となるので、広範な用途に対応することが可能となる。
以上は、本発明の説明のために実施例を掲げたに過ぎない。したがって、本発明の技術思想または原理に沿って上述の実施例に種々の変更、修正または追加を行うことは、当業者には容易である。
図2および4のネットワークの構造からあきらかなように処理要素または資源を相互接続するネットワークはにおいて、各資源同士の接続は接続される資源の各入力に出力が接続されたセレクタ490(とFF492)のみによって実現されるのであり、他の資源の接続に使用されるセレクタが関与しないので、設計途中で要素または資源の追加または削除が容易に行うことができる。
以上の実施例では、演算装置の例をあげたが、本発明の再構成可能な演算装置は集積化していわゆるプロセッサとして実現することが可能である。
(付記1)所与の第1のコンフィギュレーション・データにより再構成可能で互いに同時動作可能な複数の演算手段と、
読み書き自在の少なくとも1つの記憶手段と、
演算装置として必要とされる種々の処理要素と、
前記複数の演算手段および前記記憶手段の任意の出力データを前記複数の演算手段の任意の入力のデータとすることを可能とするとともに、前記複数の演算手段、前記記憶手段および前記の種々の処理要素からなる資源の間のデータ転送を前記資源の位置および種類にほぼ依存することなく均一な転送時間で行うとともに、所与の第2のコンフィギュレーション・データにより再構成可能な資源間相互接続手段と、
前記第1および第2のコンフィギュレーション・データを格納する格納手段と、
前記コンフィギュレーション・データを外部記憶装置から前記格納手段へロードする手段と、
前記複数の演算手段から得られる情報に基づき、前記第1および第2のコンフィギュレーション・データを適切なシーケンスおよびタイミングで前記の再構成可能な手段に供給する供給手段とを備えた
ことを特徴とする再構成可能演算装置。
(付記2)前記の資源間相互接続手段は、前記複数の任意の演算手段の出力データを前記複数の任意の演算手段の入力データとすることを可能とするセレクタ手段を含む
ことを特徴とする付記1記載の再構成可能演算装置。
(付記3)前記の資源間相互接続手段は、前記の接続される資源の入力端子に出力が接続されたセレクタ回路を含み、
各演算手段の入力に出力が接続されたセレクタ回路の入力には、前記複数の演算手段の総ての出力が接続され、
各セレクタ回路は、出力段にフリップフロップを備える
ことを特徴とする付記1記載の再構成可能演算装置。
(付記4)前記供給手段は、
前記複数の演算手段から得られる情報に基づき再構成を行うタイミングを示すタイミング信号を生成するタイミング手段と、
所定数の状態に対応した状態番号を格納するテーブル手段と、
現在の状態番号を保持する保持手段と、
前記現在の状態番号を前記テーブル手段に格納された状態番号の1つに関係付ける手段と
前記タイミング信号に応じて前記の関係付けられた状態番号を出力する出力手段とを含み、
前記状態番号は前記格納手段のアドレスである
ことを特徴とする付記1記載の再構成可能演算装置。
(付記5)前記供給手段は、
前記複数の演算手段の各々に含まれる各比較手段が出力する比較結果が一致であることを示す一致信号に関係付けられた所定のコードを生成する手段と、
前記所定のコードが同時に複数生成された場合、前記複数のコードの1つを選択する手段と、
再構成を行うタイミングを示すタイミング信号を生成するタイミング手段と、
所定数の状態に対応した状態番号リストの各が前記所定のコードに対応した複数の状態番号を含むような前記状態番号リストを格納するテーブル手段と、
現在の状態番号を保持する保持手段と、
前記現在の状態番号を前記テーブル手段に格納された状態番号リストの1つに関係付ける手段と
前記タイミング信号に応じて、前記の関係付けられた状態番号リストから前記の選択されたコードに対応する状態番号を出力する手段とを含み、
前記状態番号は前記格納手段のアドレスである
ことを特徴とする付記1記載の再構成可能演算装置。
(付記6)タイミング手段が、
前記複数の任意の演算手段の任意の比較手段が前記一致信号を出力したタイミングで前記タイミング信号を生成するタイミング信号生成手段からなる
ことを特徴とする付記5記載の再構成可能演算装置。
(付記7)タイミング手段が、
当該再構成可能演算装置で処理すべきループ処理が終了したことを判定する判定手段と、
前記判定手段が終了を示す信号を出力したときに処理中のデータが現在のコンフィギュレーションに使用されている資源から排出されたタイミングで前記タイミング信号を出力する手段を含む
ことを特徴とする付記5記載の再構成可能演算装置。
(付記8)前記判定手段が、
データバスおよびアドレスバスを監視することにより条件の成立を示す信号を条件成立信号する手段と、
期待されるループ回数を保持する手段と、
前記条件成立信号の発生回数が前記ループ回数に一致したかどうかを判断する手段を含む
ことを特徴とする付記7記載の再構成可能演算装置。
(付記9)前記タイミング手段が、
当該再構成可能演算装置で処理すべきループ処理が終了したことを判定する判定手段と、
前記判定手段が終了を示す信号を出力したときに処理中のデータが現在のコンフィギュレーションに使用されている資源から排出されたタイミングで前記タイミング信号を出力するタイミング信号出力手段と、
所与のコンフィギュレーション・データに基づいて、前記タイミング信号生成手段の出力と前記タイミング信号出力手段の出力の一方を選択する手段を含む
ことを特徴とする付記6記載の再構成可能演算装置。
(付記10)前記供給手段は、
前記の関係付けられた状態番号を予め準備し、前記タイミング信号に応じて、前記の関係付けられた状態番号で前記格納手段からコンフィギュレーション・データを読み出す手段とを含む
ことを特徴とする付記4記載の再構成可能演算装置。
(付記11)前記の関係付けられた状態番号で前記格納手段から予め読み出したコンフィギュレーション・データを保持する保持手段と、
前記タイミング信号に応じて、前記保持手段に保持されたコンフィギュレーション・データを前記の再構成可能な手段に分配する手段とをさらに備えた
ことを特徴とする付記4記載の再構成可能演算装置。
(付記12)前記の再構成可能な手段の各に設けられ、前記の再構成可能な手段の各に割り当てられたコンフィギュレーション・データを保持する保持手段と、
前記タイミング信号に応じて、前記保持手段に保持されたコンフィギュレーション・データを前記保持手段に対応する前記の再構成可能な手段に設定する手段とをさらに備えた
ことを特徴とする付記4記載の再構成可能演算装置。
(付記13)前記の再構成可能な手段の各グループに設けられ、前記の再構成可能な手段の前記各グループに割り当てられたコンフィギュレーション・データを保持する保持手段と、
前記タイミング信号に応じて、前記保持手段に保持されたコンフィギュレーション・データを前記保持手段に対応する前記グループの再構成可能な手段に設定する手段とをさらに備えた
ことを特徴とする付記4記載の再構成可能演算装置。
(付記14)前記格納手段が、前記の再構成可能な手段の各に設けられ、
前記のロードする手段が、前記の再構成可能な手段の各に割り当てられたコンフィギュレーション・データを前記の再構成可能な手段の各に設けられた前記格納手段にロードする
ことを特徴とする付記1記載の再構成可能演算装置。
(付記15)前記格納手段が、前記の再構成可能な手段の各グループに設けられ、
前記のロードする手段が、前記の再構成可能な手段の各グループに割り当てられたコンフィギュレーション・データを前記の再構成可能な手段の各グループに設けられた前記格納手段にロードする
ことを特徴とする付記1記載の再構成可能演算装置。
(付記16)前記の再構成可能な手段は、受け取ったコンフィギュレーション・データの少なくとも一部をデコードして用いる
ことを特徴とする付記1記載の再構成可能演算装置。
(付記17)所与の第1のコンフィギュレーション・データにより再構成可能で互いに同時動作可能な複数の演算手段と、
読み書き自在の記憶手段と、
演算装置として必要とされる種々の処理要素と、
前記演算手段、前記記憶手段および前記の種々の処理要素を相互に接続し、接続される資源の間のデータ転送を前記資源の位置および種類によらず均一に行うとともに、所与の第2のコンフィギュレーション・データにより再構成可能な資源間相互接続手段とから構成される演算資源ネットワークを含む
ことを特徴とする再構成可能なパイプラインプロセッサ。
(付記18)付記1乃至16の何れか一項に記載の再構成可能演算装置は集積回路である。
(付記19)付記17記載の再構成可能なパイプラインプロセッサは集積回路である。
本発明による再構成可能な演算装置の構成を概念的に示す略ブロック図である。 図1の処理要素ネットワーク10のアーキテクチャを示す図であり、2Aはネットワーク10の全体的構成を示すブロック図であり、2Bは、ネットワーク10を構成するセレクタ41の基本的構成を概念的に示す回路図である。 図1の処理要素ネットワーク10の一実施形態を示すブロック図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Aは演算器PE0(20)の入力a0に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Bは演算器PE0(20)の入力a1に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Cは演算器PE0(20)の入力b0に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Dは演算器PE0(20)の入力b1に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4EはRAM0(242)のデータ入力部D0およびアドレス入力部A0に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4FはRAM0(242)のデータ入力部D0およびアドレス入力部A0に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Gデータ出力部OD0〜OD3に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Hは遅延用FF群256のFF0およびFF1のデータ入力部に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Iは遅延用FF群256のFF0およびFF1のデータ入力部に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Jはカウンタ0(254)の入力部に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Kはバレルシフタ252の入力部に対するセレクタの構成を示す図である。 図3の処理要素間ネットワーク40aを構成する各種セレクタの実施例を示す図であり、図4Lはアドレス出力部OA0に対するセレクタの構成を示す図である。 図1のシーケンサの第1の実施形態を概念的に示す略ブロック図である。 図1のシーケンサの第2の実施形態を概念的に示す略ブロック図である。 図5Aおよび5Bのシーケンサ70および70aの状態テーブルの一実施例を示す図である。 図5のシーケンサ70または70aを用いた場合の再構成可能演算装置1の再構成から実行に至るまでの動作タイミングを示す図である。 本発明が従来の課題である「データ転送に伴う処理サイクルの遅延」を克服するようすを示す図であり、図8Aはコンフィグレーション例を示す図である。 本発明が従来の課題である「データ転送に伴う処理サイクルの遅延」を克服するようすを示す図であり、図8Bは本コンフィグレーション例における処理サイクルを示すテーブルである。 本発明の演算装置1の異種処理要素を含むコンフィグレーション例を示す等価回路である。 図9Aのコンフィギュレーションに対する処理サイクルテーブルである。 本発明の演算装置1のフィードバックを含むコンフィグレーション例を示す等価回路である。 図10Aのコンフィギュレーションに対する処理サイクルテーブルである。 本発明の演算装置1で並列処理を行うコンフィグレーション例を示す等価回路である。 図11Aのコンフィギュレーションに対する処理サイクルテーブルである。 本発明の演算装置1でパイプライン処理を行うコンフィグレーション例を示す等価回路である。 図11Cのコンフィギュレーションに対する処理サイクルテーブルである。 演算装置1における再構成(reconfiguration)の例を示す図である。 従来のRISC(reduced instruction set computer)プロセッサ(13A)と本発明の演算装置1(13B)とのセケーラビリティを比較するための図である。 従来のRISC(reduced instruction set computer)プロセッサ(13A)と本発明の演算装置1(13B)とのセケーラビリティを比較するための図である。 本発明の好ましい実施形態による演算装置の処理要素ネットワーク10bを概念的に示す略ブロック図である。 図14の切替信号発生器60の実施例を示すブロック図である。 図14の処理要素ネットワーク10bおよび図15の切替信号発生器60を用いた好ましい実施形態による演算装置の全体的構成とシーケンサの具体例を示す略ブロック図である。 図16のシーケンサ70bの状態テーブル78の実施例を示す図である。 状態テーブルの78の先読みを行うシーケンサの実施例を示す略ブロック図である。 図18のシーケンサ70cの動作タイミングを示す処理ステータスチャートである。 コンフィギュレーション・レジスタを備えた演算装置の実施例を示す略ブロック図である。 図20の演算装置1cの動作タイミングを示す処理ステータスチャートである。 コンフィギュレーション・レジスタを備えた演算装置の変形例を示す略ブロック図であり、図22Aは処理要素群ごとに設けた例である。 コンフィギュレーション・レジスタを備えた演算装置の変形例を示す略ブロック図であり、図22Bは各処理要素ごとに設けた例である。 コンフィギュレーション・メモリを処理要素ごとに設けた構成例を示す略ブロック図である。 クラスタ化した処理要素ネットワークのクラスタごとにコンフィギュレーション・メモリを設けた構成例を示す略ブロック図である。 図1,2A,3,14,15,22および23において演算器または演算要素が受信したコンフィギュレーション・データの一部または全部をデコードする実施例を示す図である。 別の実施形態による処理要素ネットワークの構成例を示す略ブロック図である。 特許文献1のアレイ型プロセッサのプロセシングエレメント(PEまたは処理要素)アレイ部の一例を示す図である。 図26に示した従来のPEアレイにおけるデータ転送の遅延の問題を説明するための図であり、図27Aは図26のPEアレイの動作を示す図である。 図26に示した従来のPEアレイにおけるデータ転送の遅延の問題を説明するための図であり、図27Bは処理サイクルごとの動作を示す図である。 PEアレイを構成する処理要素への機能配分が原因となり処理内容により問題が生じる可能性があることを示す図であり、図28Aは問題が発生しない場合の図26のPEアレイの動作および処理サイクルごとの動作を示す図である。 PEアレイを構成する処理要素への機能配分が原因となり処理内容により問題が生じる可能性があることを示す図であり、図28Bは問題が発生しない場合の図26のPEアレイの動作および処理サイクルごとの動作を示す図である。 PEアレイを構成する処理要素への機能配分が原因となり処理内容により問題が生じる可能性があることを示す図であり、図28Cは問題が発生する場合の図26のPEアレイの動作および処理サイクルごとの動作を示す図である。 PEアレイを構成する処理要素への機能配分が原因となり処理内容により問題が生じる可能性があることを示す図であり、図28Dは問題が発生する場合の図26のPEアレイの動作および処理サイクルごとの動作を示す図である。 図26のPEアレイによりフェードバックループを含む処理を行った場合の問題点を説明する図であり、図29AはPEアレイの動作を示す図である。 図26のPEアレイによりフェードバックループを含む処理を行った場合の問題点を説明する図であり、図29Bは処理サイクルごとの動作を示す図である。 従来の再構成可能アレイプロセッサの概略図である。 図30の再構成可能アレイプロセッサの状態遷移時の動作タイミングを示す図である。 典型的なRISC(reduced instruction set computer)プロセッサを概念的に表したブロック図である。 一般的なRISCプロセッサによる並列処理動作を示すステータスフローチャートである。 一般的なRISCプロセッサによるフォワーディング処理を含む処理の流れを示すステータスフローチャートである。 一般的なRISCプロセッサによるフォワーディング処理を含まない処理の流れを示すステータスフローチャートである。
符号の説明
1 再構成可能な演算装置
10 処理要素ネットワーク
20 演算器
40 要素間ネットワーク
41 セレクタ
50 コンフィギュレーションメモリ
55 CDロード部
57 状態テーブルロード部
60 切替条件信号生成器
70 シーケンサ
74 状態テーブル
72 状態制御部
76 現状態番号レジスタ
78 状態テーブル
79 セレクタ
220 データ入力ポート
230 データ出力ポート
240 データメモリ
490 セレクタ回路
492 ラッチ用FF
610 ループ終了判定部
630 切替条件コード生成ユニット

Claims (10)

  1. 所与の第1のコンフィギュレーション・データにより再構成可能で互いに同時動作可能な複数の演算手段と、
    読み書き自在の少なくとも1つの記憶手段と、
    演算装置として必要とされる種々の処理要素と、
    前記複数の演算手段および前記記憶手段の任意の出力データを前記複数の演算手段の任意の入力のデータとすることを可能とするとともに、前記複数の演算手段、前記記憶手段および前記の種々の処理要素からなる資源の間のデータ転送を前記資源の位置および種類にほぼ依存することなく均一な転送時間で行うとともに、所与の第2のコンフィギュレーション・データにより再構成可能な資源間相互接続手段と、
    前記第1および第2のコンフィギュレーション・データを格納する格納手段と、
    前記コンフィギュレーション・データを外部記憶装置から前記格納手段へロードする手段と、
    前記複数の演算手段から得られる情報に基づき、前記第1および第2のコンフィギュレーション・データを適切なシーケンスおよびタイミングで前記の再構成可能な手段に供給する供給手段とを備えた
    ことを特徴とする再構成可能演算装置。
  2. 前記の資源間相互接続手段は、前記複数の任意の演算手段の出力データを前記複数の任意の演算手段の入力データとすることを可能とするセレクタ手段を含む
    ことを特徴とする請求項1記載の再構成可能演算装置。
  3. 前記の資源間相互接続手段は、前記の接続される資源の入力端子に出力が接続されたセレクタ回路を含み、
    各演算手段の入力に出力が接続されたセレクタ回路の入力には、前記複数の演算手段の総ての出力が接続され、
    各セレクタ回路は、出力段にフリップフロップを備える
    ことを特徴とする請求項1記載の再構成可能演算装置。
  4. 前記供給手段は、
    前記複数の演算手段から得られる情報に基づき再構成を行うタイミングを示すタイミング信号を生成するタイミング手段と、
    所定数の状態に対応した状態番号を格納するテーブル手段と、
    現在の状態番号を保持する保持手段と、
    前記現在の状態番号を前記テーブル手段に格納された状態番号の1つに関係付ける手段と
    前記タイミング信号に応じて前記の関係付けられた状態番号を出力する出力手段とを含み、
    前記状態番号は前記格納手段のアドレスである
    ことを特徴とする請求項1記載の再構成可能演算装置。
  5. 前記供給手段は、
    前記複数の演算手段の各々に含まれる各比較手段が出力する比較結果が一致であることを示す一致信号に関係付けられた所定のコードを生成する手段と、
    前記所定のコードが同時に複数生成された場合、前記複数のコードの1つを選択する手段と、
    再構成を行うタイミングを示すタイミング信号を生成するタイミング手段と、
    所定数の状態に対応した状態番号リストの各が前記所定のコードに対応した複数の状態番号を含むような前記状態番号リストを格納するテーブル手段と、
    現在の状態番号を保持する保持手段と、
    前記現在の状態番号を前記テーブル手段に格納された状態番号リストの1つに関係付ける手段と
    前記タイミング信号に応じて、前記の関係付けられた状態番号リストから前記の選択されたコードに対応する状態番号を出力する手段とを含み、
    前記状態番号は前記格納手段のアドレスである
    ことを特徴とする請求項1記載の再構成可能演算装置。
  6. 前記供給手段は、
    前記の関係付けられた状態番号を予め準備し、前記タイミング信号に応じて、前記の関係付けられた状態番号で前記格納手段からコンフィギュレーション・データを読み出す手段とを含む
    ことを特徴とする請求項4記載の再構成可能演算装置。
  7. 前記格納手段が、前記の再構成可能な手段の各グループに設けられ、
    前記のロードする手段が、前記の再構成可能な手段の各グループに割り当てられたコンフィギュレーション・データを前記の再構成可能な手段の各グループに設けられた前記格納手段にロードする
    ことを特徴とする請求項1記載の再構成可能演算装置。
  8. 前記の再構成可能な手段は、受け取ったコンフィギュレーション・データの少なくとも一部をデコードして用いる
    ことを特徴とする請求項1記載の再構成可能演算装置。
  9. 複数の同時動作可能な演算器と、当該複数の演算器の状態を制御するシーケンサと、前記演算器の状態ごとの設定情報としてのコンフィギュレーション情報を格納するコンフィギュレーションメモリよりなる演算装置であって、
    前記複数の演算器の任意の演算器の出力が、他の複数の演算器の入力となる接続手段を有する演算装置。
  10. 前記演算器は、他の複数の演算器の出力の内の一つを選択する選択手段を有することを特徴とする請求項9記載の演算装置。
JP2004205332A 2004-07-12 2004-07-12 再構成可能な演算装置 Expired - Fee Related JP4594666B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2004205332A JP4594666B2 (ja) 2004-07-12 2004-07-12 再構成可能な演算装置
EP10176264A EP2278496A1 (en) 2004-07-12 2004-12-31 Reconfigurable operation apparatus
EP04258192A EP1632868A3 (en) 2004-07-12 2004-12-31 Reconfigurable operation apparatus
KR1020050002492A KR100740081B1 (ko) 2004-07-12 2005-01-11 재구성 가능한 연산 장치
TW094106443A TWI282924B (en) 2004-07-12 2005-03-03 Reconfigurable operation apparatus and reconfigurable pipeline processor
US11/077,561 US7774580B2 (en) 2004-07-12 2005-03-11 Array processor having reconfigurable data transfer capabilities
CNB2005100593385A CN100492343C (zh) 2004-07-12 2005-03-28 可重配置运算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004205332A JP4594666B2 (ja) 2004-07-12 2004-07-12 再構成可能な演算装置

Publications (2)

Publication Number Publication Date
JP2006031127A true JP2006031127A (ja) 2006-02-02
JP4594666B2 JP4594666B2 (ja) 2010-12-08

Family

ID=35508271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004205332A Expired - Fee Related JP4594666B2 (ja) 2004-07-12 2004-07-12 再構成可能な演算装置

Country Status (6)

Country Link
US (1) US7774580B2 (ja)
EP (2) EP2278496A1 (ja)
JP (1) JP4594666B2 (ja)
KR (1) KR100740081B1 (ja)
CN (1) CN100492343C (ja)
TW (1) TWI282924B (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257216A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 回路構成を動的に切り替える並列処理装置
JP2009037333A (ja) * 2007-07-31 2009-02-19 Mitsubishi Electric Corp 動的再構成プロセッサ
JP2009075875A (ja) * 2007-09-20 2009-04-09 Fujitsu Microelectronics Ltd カウンタ回路、動的再構成回路およびループ処理制御方法
JP2009266021A (ja) * 2008-04-25 2009-11-12 Fujitsu Microelectronics Ltd 半導体集積回路
JP2010044731A (ja) * 2007-10-30 2010-02-25 Coreworks Sa ネステッドループおよびプログラミングツールのためのリコンフィギュラブルコプロセッサアーキテクチャテンプレート
US7756505B2 (en) 2004-10-04 2010-07-13 Hitachi, Ltd. Semiconductor integrated circuit and a software radio device
JP2010231645A (ja) * 2009-03-27 2010-10-14 Fujitsu Ltd 演算処理装置
JP2010541088A (ja) * 2007-10-06 2010-12-24 アクシス セミコンダクター インコーポレイテッド リアルタイム信号処理のための方法及び装置
JP2011008519A (ja) * 2009-06-25 2011-01-13 Fujitsu Semiconductor Ltd リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置
JP2011525008A (ja) * 2008-05-29 2011-09-08 アクシス・セミコンダクター・インコーポレーテッド リアルタイムデータ処理のための方法&装置
JP2012515388A (ja) * 2009-01-15 2012-07-05 アルタイル セミコンダクター リミテッド 大命令幅プロセッサにおける処理効率の向上
JP2013206293A (ja) * 2012-03-29 2013-10-07 Fujitsu Semiconductor Ltd リコンフィグ可能な集積回路装置
WO2014103235A1 (ja) * 2012-12-25 2014-07-03 日本電気株式会社 演算装置及び演算方法
JP2015011375A (ja) * 2013-06-26 2015-01-19 スパンション エルエルシー 半導体集積回路および半導体集積回路の動作方法
US9251117B2 (en) 2009-04-03 2016-02-02 Cypress Semiconductor Corporation Reconfigurable circuit with suspension control circuit
JP2018033036A (ja) * 2016-08-25 2018-03-01 富士ゼロックス株式会社 再構成可能論理回路
JP2021064270A (ja) * 2019-10-16 2021-04-22 ルネサスエレクトロニクス株式会社 半導体装置およびその制御方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571303B2 (en) 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
JP2006011825A (ja) * 2004-06-25 2006-01-12 Fujitsu Ltd 再構成可能演算装置および半導体装置
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
KR100821918B1 (ko) * 2005-05-27 2008-04-16 전자부품연구원 데이터 경로의 재구성이 가능한 디지털 신호 처리기
JP4838009B2 (ja) 2006-02-22 2011-12-14 富士通セミコンダクター株式会社 リコンフィグラブル回路
KR100893527B1 (ko) * 2007-02-02 2009-04-17 삼성전자주식회사 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
KR100960148B1 (ko) 2008-05-07 2010-05-27 한국전자통신연구원 데이터 프로세싱 회로
JP5815717B2 (ja) * 2010-10-15 2015-11-17 コーヒレント・ロジックス・インコーポレーテッド マルチプロセッサシステムにおける通信の無効化
JP2013222364A (ja) * 2012-04-18 2013-10-28 Renesas Electronics Corp 信号処理回路
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
WO2017126715A1 (ko) * 2016-01-20 2017-07-27 삼성전자 주식회사 나눗셈 연산을 처리하는 방법, 장치 및 기록매체
GB2553010B (en) * 2017-01-16 2019-03-06 Imagination Tech Ltd Efficient data selection for a processor
CN110728364A (zh) * 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
CN109523019A (zh) * 2018-12-29 2019-03-26 百度在线网络技术(北京)有限公司 加速器、基于fpga的加速系统及控制方法、cnn网络系统
US10698853B1 (en) 2019-01-03 2020-06-30 SambaNova Systems, Inc. Virtualization of a reconfigurable data processor
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02158214A (ja) * 1988-12-12 1990-06-18 Hamamatsu Photonics Kk 論理回路装置
JPH03116225A (ja) * 1989-09-29 1991-05-17 Nec Corp 状態遷移回路
JPH04364525A (ja) * 1991-06-11 1992-12-16 Gijutsu Kenkyu Kumiai Kokusai Fuajii Kogaku Kenkyusho 並列演算装置
JPH1185463A (ja) * 1997-09-01 1999-03-30 Mitsubishi Electric Corp 演算ネットワーク装置
JPH11296345A (ja) * 1998-04-08 1999-10-29 Hitachi Ltd プロセッサ
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ
WO2003009125A1 (fr) * 2001-07-19 2003-01-30 Sony Corporation Dispositif de calcul et dispositif de traitement d'images
WO2004025468A1 (ja) * 2002-09-13 2004-03-25 Hitachi, Ltd. 半導体装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59132070A (ja) * 1983-01-18 1984-07-30 Mitsubishi Electric Corp アレイ演算用デ−タ処理装置
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
JPH06290158A (ja) * 1993-03-31 1994-10-18 Fujitsu Ltd 再構成可能なトーラス・ネットワーク方式
US5583450A (en) 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5915123A (en) 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US7325123B2 (en) * 2001-03-22 2008-01-29 Qst Holdings, Llc Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements
JP3723775B2 (ja) 2002-01-10 2005-12-07 松下電器産業株式会社 データ処理装置
US6920545B2 (en) * 2002-01-17 2005-07-19 Raytheon Company Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster
JP4002151B2 (ja) * 2002-07-31 2007-10-31 富士通株式会社 情報処理装置
US20040025004A1 (en) * 2002-08-02 2004-02-05 Gorday Robert Mark Reconfigurable logic signal processor (RLSP) and method of configuring same
US20060015709A1 (en) 2002-10-24 2006-01-19 Andrea Bragagnini Reconfigurable state machine architecture and related method of execution
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02158214A (ja) * 1988-12-12 1990-06-18 Hamamatsu Photonics Kk 論理回路装置
JPH03116225A (ja) * 1989-09-29 1991-05-17 Nec Corp 状態遷移回路
JPH04364525A (ja) * 1991-06-11 1992-12-16 Gijutsu Kenkyu Kumiai Kokusai Fuajii Kogaku Kenkyusho 並列演算装置
JPH1185463A (ja) * 1997-09-01 1999-03-30 Mitsubishi Electric Corp 演算ネットワーク装置
JPH11296345A (ja) * 1998-04-08 1999-10-29 Hitachi Ltd プロセッサ
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ
WO2003009125A1 (fr) * 2001-07-19 2003-01-30 Sony Corporation Dispositif de calcul et dispositif de traitement d'images
WO2004025468A1 (ja) * 2002-09-13 2004-03-25 Hitachi, Ltd. 半導体装置

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756505B2 (en) 2004-10-04 2010-07-13 Hitachi, Ltd. Semiconductor integrated circuit and a software radio device
JP4646840B2 (ja) * 2006-03-22 2011-03-09 富士通セミコンダクター株式会社 回路構成を動的に切り替える並列処理装置
JP2007257216A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 回路構成を動的に切り替える並列処理装置
JP2009037333A (ja) * 2007-07-31 2009-02-19 Mitsubishi Electric Corp 動的再構成プロセッサ
JP2009075875A (ja) * 2007-09-20 2009-04-09 Fujitsu Microelectronics Ltd カウンタ回路、動的再構成回路およびループ処理制御方法
JP2010541088A (ja) * 2007-10-06 2010-12-24 アクシス セミコンダクター インコーポレイテッド リアルタイム信号処理のための方法及び装置
JP2010044731A (ja) * 2007-10-30 2010-02-25 Coreworks Sa ネステッドループおよびプログラミングツールのためのリコンフィギュラブルコプロセッサアーキテクチャテンプレート
JP2009266021A (ja) * 2008-04-25 2009-11-12 Fujitsu Microelectronics Ltd 半導体集積回路
US8352533B2 (en) 2008-04-25 2013-01-08 Fujitsu Semiconductor Limited Semiconductor integrated circuit in in a carry computation network having a logic blocks which are dynamically reconfigurable
JP2011525008A (ja) * 2008-05-29 2011-09-08 アクシス・セミコンダクター・インコーポレーテッド リアルタイムデータ処理のための方法&装置
JP2012515388A (ja) * 2009-01-15 2012-07-05 アルタイル セミコンダクター リミテッド 大命令幅プロセッサにおける処理効率の向上
JP2010231645A (ja) * 2009-03-27 2010-10-14 Fujitsu Ltd 演算処理装置
US9251117B2 (en) 2009-04-03 2016-02-02 Cypress Semiconductor Corporation Reconfigurable circuit with suspension control circuit
JP2011008519A (ja) * 2009-06-25 2011-01-13 Fujitsu Semiconductor Ltd リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置
JP2013206293A (ja) * 2012-03-29 2013-10-07 Fujitsu Semiconductor Ltd リコンフィグ可能な集積回路装置
WO2014103235A1 (ja) * 2012-12-25 2014-07-03 日本電気株式会社 演算装置及び演算方法
US9507541B2 (en) 2012-12-25 2016-11-29 Nec Corporation Computation device, computation method, and medium
JPWO2014103235A1 (ja) * 2012-12-25 2017-01-12 日本電気株式会社 演算装置及び演算方法
JP2015011375A (ja) * 2013-06-26 2015-01-19 スパンション エルエルシー 半導体集積回路および半導体集積回路の動作方法
JP2018033036A (ja) * 2016-08-25 2018-03-01 富士ゼロックス株式会社 再構成可能論理回路
US10795689B2 (en) 2016-08-25 2020-10-06 Fuji Xerox Co., Ltd. Reconfigurable logical circuit
JP2021064270A (ja) * 2019-10-16 2021-04-22 ルネサスエレクトロニクス株式会社 半導体装置およびその制御方法
JP7346235B2 (ja) 2019-10-16 2023-09-19 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
CN1722130A (zh) 2006-01-18
TWI282924B (en) 2007-06-21
EP1632868A3 (en) 2009-07-22
TW200602893A (en) 2006-01-16
KR20060005292A (ko) 2006-01-17
US20060010306A1 (en) 2006-01-12
US7774580B2 (en) 2010-08-10
EP1632868A2 (en) 2006-03-08
EP2278496A1 (en) 2011-01-26
KR100740081B1 (ko) 2007-07-18
CN100492343C (zh) 2009-05-27
JP4594666B2 (ja) 2010-12-08

Similar Documents

Publication Publication Date Title
JP4594666B2 (ja) 再構成可能な演算装置
US9323716B2 (en) Hierarchical reconfigurable computer architecture
US5081575A (en) Highly parallel computer architecture employing crossbar switch with selectable pipeline delay
US5915123A (en) Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6108760A (en) Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
JP4900717B2 (ja) 再構成可能な装置
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
EP3869352A1 (en) Network-on-chip data processing method and device
EP2116938A1 (en) Operation apparatus and control method
EP1443392A1 (en) Data processing system and control method thereof
JP2004133781A (ja) アレイ型プロセッサ
US11531637B2 (en) Embedding rings on a toroid computer network
US11645225B2 (en) Partitionable networked computer
Tajammul et al. NoC based distributed partitionable memory system for a coarse grain reconfigurable architecture
KR102539571B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
KR102539572B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
JP2004151951A (ja) アレイ型プロセッサ
JP2004133780A (ja) アレイ型プロセッサ
US7788465B2 (en) Processing system including a reconfigurable channel infrastructure comprising a control chain with combination elements for each processing element and a programmable switch between each pair of neighboring processing elements for efficient clustering of processing elements
JP4743581B2 (ja) データ処理システムおよびその制御方法
US20070220236A1 (en) Reconfigurable computing device
KR102539574B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
JPS62500750A (ja) 命令フロ−コンピュ−タ
JP2021064270A (ja) 半導体装置およびその制御方法
CN105531932A (zh) 可重配置指令单元阵列的串行配置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100825

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: 20100914

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: 20100917

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

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4594666

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees