JP4446437B2 - データ処理装置およびその制御方法 - Google Patents

データ処理装置およびその制御方法 Download PDF

Info

Publication number
JP4446437B2
JP4446437B2 JP2004080657A JP2004080657A JP4446437B2 JP 4446437 B2 JP4446437 B2 JP 4446437B2 JP 2004080657 A JP2004080657 A JP 2004080657A JP 2004080657 A JP2004080657 A JP 2004080657A JP 4446437 B2 JP4446437 B2 JP 4446437B2
Authority
JP
Japan
Prior art keywords
data
processing
processing system
input
loop
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 - Lifetime
Application number
JP2004080657A
Other languages
English (en)
Other versions
JP2005267382A (ja
Inventor
昭文 渡辺
Original Assignee
アイピーフレックス株式会社
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 アイピーフレックス株式会社 filed Critical アイピーフレックス株式会社
Priority to JP2004080657A priority Critical patent/JP4446437B2/ja
Publication of JP2005267382A publication Critical patent/JP2005267382A/ja
Application granted granted Critical
Publication of JP4446437B2 publication Critical patent/JP4446437B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)

Description

本発明は、同期型のデータフロー方式のデータ処理装置およびその制御方法に関するものである。
国際公開02/095946号には、一定の算術演算および/または論理演算機能を備えた複数種類のエレメントをマトリクス状に配置し、このマトリクス内に縦横に配置された配線群の接続を切り替える技術が開示されている。このようなマトリクスを備えた半導体集積装置は、複数のエレメントによりフレキシブルにデータフロー(データパス)を再構成できる。
国際公開02/095946号
さらに、マトリクスを構成する各々のエレメントは、演算用のデータパスに入力されるデータをラッチするフリップフロップと、出力されるデータをラッチするフリップフロップを備えており、各々のエレメントで消費されるクロック(サイクル)が、エレメントの種類あるいはエレメントに設定されたコンフィグレーション情報により一義的に決定される。したがって、マトリクス内に、これらのエレメントが接続することにより構成されるデータフローは、基本的にはデータ駆動型であるが、クロックあるいはサイクルに同期した同期型でもあり、各々のエレメントで消費される待ち時間、すなわち、レイテンシーが明確になる構成である。このため、データフロー型とパイプライン型との長所を兼ね備えており、通常、プログラムカウンタを仮定して時間軸方向で定義されるアルゴリズムを、空間方向に展開して実装することが容易である。さらに、アルゴリズムを空間方向に展開することにより、空間方向の並列性を加味することも容易であり、再構成可能な上記のマトリクスを利用することにより多種多様な処理を高速で実行することができる。
また、ある纏まりのある処理を行うデータフローが複数のエレメントの接続により構成され、さらに、各々のエレメントのレイテンシーが明確になるので、データフローの制御も容易となる。ある処理を繰り返して行った後の値を出力するループプロセスを実装する場合は、ループ周回のそれぞれのデータに依存性がなければ、ループプロセスを展開してパイプライン的な処理を行うことにより、エレメントの稼動効率を極限まで向上できる。
また、ループ周回ごとに計算される値が、次のループで参照されるようなループプロセスにおいては、ループプロセスを含む処理を実行する処理システムを構成する複数のエレメントの内、ループプロセスを実行する複数のエレメントを特定し、それらのエレメントを稼動状態にして、処理システムの他のエレメントは止めることにより、ループプロセスを実行することができる。そして、各々のエレメントでは、エレメント単位で、他のエレメントとは独立して処理を実行できるので、サイクル毎に処理システムを停止させなくても、最大ではループプロセスの一回の処理にかかるレイテンシーのサイクル数、少なくともループプロセスを構成するエレメント数は、処理システムによりパイプライン的に進めることができる。さらに、ループプロセスの終了条件がデータによって異なる不定回数ループプロセスにおいても、少なくともエレメント単位で、出力されたデータに代わり新しいデータをループプロセスに投入することができる。
図12に、上記の状態を簡単に示してある。大きな枠91はエレメントを示し、内部が斜線の小さな枠92は、前処理90の出力でループ処理前(入力データ)および処理中データ(セット)であり、小さな枠93は処理済データ(セット)(出力データ)である。図12(a)に示すように、最初に投入されたデータ(セット)92がループ95を1周するまでは、ループ中の計算をする各演算器91の中にデータ(セット)は入っていないので、順次新たなデータセット92を投入することができる。図12(b)に示すように、最初のデータ92が1周すると、もう新たなデータを投入してはいけない。図12(c)に示すように、データ(セット)は、複数のエレメント91で構成されたループプロセス95を何回か周回して変更され、変更された値が参照されたり、データ(セット)の変更に使用される。ある回数、ループプロセス95を回って終了条件を満たすと結果(出力データ)として取り出される。このような制御方式を採用すると、データ駆動方式のデータフローマシンのように、サイクル毎に停止する場合に比較し、ループプロセス95を、それを構成するエレメント91に空きがあるだけ先行してデータを順次入れてパイプライン的に使用できるので、全体のデータセットを処理する上では、ループ95のレイテンシー分の1に処理時間が短縮される。
また、図13に示すように、不定回数ループであっても、データが出力されたエレメント91に、入力データ92を投入することにより、ループプロセス95をパイプライン的に利用することができる。
しかしながら、実装しようとするアルゴリズムが、不定回数ループ95で得られた結果と、そのループの上の階層のプロセスで得られた結果とを利用した演算を行うものであると、ループをパイプライン的に使用することができない。図14に示すように、ループの出力93を使用するエレメント96が、他のプロセス97の出力94も使用するものであると、エレメント96で他のプロセス97の出力94を使用するために出力94を流さずホールドしておく必要があり、上の階層のプロセスを止めるには、前処理のプロセス90も止める必要がある。例えば、ループが2重以上になり、最下層の不定回数ループで得られた結果を上の階層のループで利用するアルゴリズムになると、もはやパイプライン処理は不可能になる。上の階層で参照する変数はデータを流さずにホールドし、不定回数ループが終わるのを待っている必要があるからである。
そこで、本発明においては、ループが不定回数ループであり、その結果を他のプロセスの結果と共に使用するようなアルゴリズムに対しても、ループを構成するエレメントをパイプライン的に使用し、処理速度を向上できるデータ処理装置およびその制御方法を提供することを目的としている。さらに、ループプロセスを空間的に実装することにより、そのループプロセスを含むプロセス全体の処理速度を向上することができるデータ処理装置および制御方法を提供することを目的としている。
本発明においては、第1のデータが入力されてから第1の待ち時間を要する第1の処理を少なくとも一回は繰り返した後に、更新された第1のデータを出力する第1の処理システムと、第1の処理システムの前処理を行う第2の処理システムであって、第1のデータと、第1の処理システムでは処理を要しない第2のデータとを同期して出力する第2の処理システムと、第1の処理システムの後処理を行う第3の処理システムであって、第2の処理システムから出力される第2のデータと、更新された第1のデータとを含む入力データによる処理を行う第3の処理システムと第2のデータを記憶し、第2のデータが入力されてから第1の待ち時間毎に第2のデータを繰り返して出力し、更新された第1のデータと第2のデータとを同期して第3の処理システムへ供給する保持システムとを有するデータ処理装置を提供する。このデータ処理装置の制御方法は、第1の処理システムにより、第1のデータが入力されてから第1の待ち時間を要する第1の処理を少なくとも一回は繰り返した後に、更新された第1のデータを出力する第1の工程と、第1の処理システムの前処理を行う第2の処理システムであって、第1のデータと、第1の処理システムでは処理を要しない第2のデータとを同期して出力する第2の処理システムから出力される第2のデータを保持システムに記憶し、第2のデータが保持システムに入力されてから第1の待ち時間毎に第2のデータを繰り返して出力し、第2のデータと第1のデータとを含む入力データによる処理を行う第3の処理システムの入力に更新された第1のデータと第2のデータとを同期して供給する第2の工程とを有する。本明細書において、第1および第2のデータは、複数のアイテムを備えたデータセットも含むものである。
第1の処理システムが、第2の処理システムおよび第3の処理システムにより少なくとも一部が実行される上位プロセスに含まれるループプロセスを実行する場合、第2の処理システムからループプロセスの出力である第1のデータと同期して第3の処理システムの入力に供給され、第2のデータは、保持システムに記憶され、第1の待ち時間毎に第3の処理システムの入力へ供給される。第1の処理が不定回数ループであっても、第1のデータが出力されるのは第1の待ち時間毎であり、保持システムにより第2のデータが第1の待ち時間毎に整うので、第1の処理システムから第1のデータが出力されれば、第3の処理システムにおける入力データは揃い、第3の処理システムにおける処理が開始される。すなわち、保持システムにより、第2のデータを第1の待ち時間の間は流さずにホールドし、さらに、第1のデータと同期して第3の処理システムに供給できる。このため、第2のデータをホールドするために第2の処理システムを停止する必要はなく、第1の待ち時間に相当する処理を先行でき、第2の処理システムもパイプライン的に利用できる。したがって、不定回数ループを含む処理であっても、その処理時間の、不定回数ループである第1の処理の第1の待ち時間に対応するサイクル(レイテンシー)に相当する分が短縮される。不定回数ループの平均的な周回数などにより変化するが、平均の周回数が少なければ不定回数ループの処理時間は、そのレイテンシー分の1に近い程度に短縮される。
保持システムは、第3の処理システムへ第1のデータと同期して供給される第2のデータの順番を識別する情報を第2のデータと共に供給することが望ましい。本発明のデータ処理装置においては、第2の処理システムの出力である第2のデータは保持システムに保持されているので、第1の処理システムから不定回数ループの結果が出力されれば、第1または第2の処理に入力されたデータの順番とは関係なく第3の処理システムに供給される。平均値を計算するなどの、データの順番とは無関係な処理である場合は問題ない。しかしながら、第3の処理システムにおいては、入力された順番と、出力された順番が一致しているか、少なくとも入力された順番が判明することが要求されることもある。その場合は、順番を識別する情報を付加することにより解決できる。
本発明のデータ処理装置は、第1の処理の待ち時間(第1の処理のレイテンシー)が一定であれば全てのシステムに適応できる。各々の種類のエレメントが予め決められた複数のサイクルを消費する複数のエレメントを有するデータ処理装置においては、第1の処理のレイテンシーが一定である第1のデータ処理システムは、それら複数のエレメントの組み合わせにより構成できる。第2および第3の処理システムも同様のエレメントにより構成することが可能である。したがって、本発明は、エレメント間の接続を変えたり、エレメント自体の処理内容を変えることにより、処理内容を再構成可能なデータ処理装置に適用できる。エレメントの処理内容を変えたときに、処理内容によってエレメントで消費されるサイクルが一義的に決まれば、本発明を提供することが可能である。
保持システムの一例は、第2のデータに含まれる複数の個別データをシリアルに記憶するRAMである。この保持システムは構成が簡単であるが、複数の個別データを保持システムに入出力するために数サイクルをそれぞれ要する。したがって、第1の待ち時間は、RAMにデータセットを入出力する時間よりも長い必要がある。
保持システムは、第2のデータに含まれる複数の個別データをパラレルに記憶するRAMであっても良い。第1の待ち時間が短い第1の処理を実行するデータ処理装置に対しても本発明を適用できる。保持システムが、2ポートRAM、または2バンクのRAMエレメントを備えている場合は、第2のデータの入出力を最短で1サイクルで実行できる。このため、さらに待ち時間の短い第1の処理を実行するデータ処理装置に対して本発明を適用できる。
また、保持システムは、複数種類のエレメントの内、エレメントの間の待ち時間の調整行う遅延エレメントを利用して構成することも可能である。
さらに、本発明のデータ処理装置においては、第1の待ち時間だけ、第2の処理システムの処理を進めることができる。したがって、第2の待ち時間を消費する複数の処理をシーケンシャルに接続して第1の処理を構成することにより、第1の待ち時間を延長することが可能となり、データ処理装置の処理速度をさらに向上できる。
第1の待ち時間を要する第1の処理を少なくとも一回は繰り返した後に第1のデータを出力する第1の処理システムと、第2の処理システムから出力される第2のデータと第1のデータとを含む入力データによる処理を行う第3の処理システムとを有するデータ処理装置において、第3の処理システムに対し第1のデータと同期して供給される第2のデータを記憶し、第2のデータを第1の待ち時間毎に第3の処理システムへ供給する保持システムを設ける。保持システムにより、第2の処理システムをホールドしなくても第2のデータを保持し、第1のデータと同期して第3の処理システムに供給できるので、第2の処理システムにおける処理を進行することが可能となる。したがって、第1の処理が不定回数のループ処理であっても、第1の待ち時間を要する第1の処理をデータ毎に繰り返すのではなく、パイプライン的にループ処理を進めることが可能となり、第1の処理に要するサイクル(レイテンシー)分だけ、データ処理装置の処理速度を改善できる。
例えば、第1の処理が2048サイクルかかる最下層ループであり、平均的に3周し、このループ以外の部分で100サイクルの処理時間を要する多重ループ処理を対象に考える。4096組のデータセットを多重ループで処理する場合、外側のループ、すなわち第2の処理でデータをホールドし、最下層ループの結果を待っていなければならない場合は、全処理を終了するのに要する時間は以下のようになる。
4096×(100+2048×3) = 25575424 (サイクル)・・(1)
これに対し、本発明のデータ処理装置であれば、2048組のデータセットは、第1の処理である最下層ループにおいてパイプライン的にほぼ同時に処理される。本発明のデータ処理装置で、全処理を終了するのに要する時間は以下のようになる。
2×(100+2048×3+2047)= 16582 (サイクル)・・(2)
なお、計算を簡単にするために2048組のデータセットの処理完了を待って、次の2048組のデータセットを投入するとした。また、処理時間の比は以下の通りである。
25575424 / 16582 = 1542.4 ・・(3)
したがって、このケースでは、本発明により、1500分の1に処理時間を圧縮することが可能となる。
図1に、複数種類のエレメントが配置されたマトリクスを備えたデータ処理装置の概要を示してある。このデータ処理装置20は、再構成可能なプロセッサ(RP、Reconfigurable Processor)であり、プログラムなどによって与えられる命令セットに基づきエラー処理を含めた汎用的な処理を行う汎用な構成の基本プロセッサ21と、マトリクス状に配置された演算あるいは論理エレメントにより特定のデータ処理に適合したデータフローあるいは擬似データフローがバリアブルに形成されたマトリクスユニット50と、このマトリクスユニット50からの割り込み処理を制御する割り込み制御部22と、マトリクスユニット50に作動用のクロック信号を供給するクロック発生部28と、このRP20で提供可能な演算回路のフレキシビリティーをさらに向上するためのFPGA部27と、外部に対するデータの入出力を制御するバス制御部29とを備えている。基本プロセッサ21とマトリクスユニット50は、これらの間でデータを交換可能なデータバス24aと、基本プロセッサ21からマトリクスユニット50の構成および動作を制御するための命令バス24bとにより接続されている。また、マトリクスユニット50から割り込み制御部22に信号線25を介して割り込み信号が供給され、マトリクスユニット50における処理が終了したり、処理中にエラーが発生したときはマトリクスユニット50の状態を基本プロセッサ21にフィードバックできるようになっている。
マトリクスユニット50とFPGA27との間もデータバス26により接続されており、マトリクスユニット50からFPGA27にデータを供給して処理を行い、その結果をマトリクスユニット50に返せるようになっている。さらに、マトリクスユニット50は、ロードバス23aおよびストアバス23bによってバス制御ユニット29と接続されており、RP20の外部のデータバスとの間でデータを交換できるようになっている。
図2にマトリクスユニット50の概要を示してある。マトリクスユニット50は、複数の算術および/または論理演算を行う論理要素(論理ブロックまたは論理ユニット、以降ではエレメント)がマトリクス状に配置されたマトリクス領域51と、そのマトリクス領域51に対してデータを供給する入力バッファ52と、マトリクス領域51から出力されるデータを格納する出力バッファ53を備えている。これら入力バッファ52および出力バッファ53は、それぞれ4つの小容量の入力メモリにより構成されており、アクセス調停ユニット54を介して入出力バス23aおよび23bに接続される。
マトリクス領域51が、データパスあるいはデータフローを再構成可能な並列処理システムの中心となる集積回路区画であり、複数種類の演算ユニットであるエレメント55が縦方向に4つのラインを構成するようにアレイ状あるいはマトリクス状に配置されている。このマトリクス領域51は、これらのエレメント55の間に配置された、横方向に延びた行配線群57と、縦方向に延びた列配線群58とを備えている。列配線群58は、列方向に並んだ演算ユニット55の左右に分かれて配置された配線群58xおよび58yが1対になっている。行配線群57および列配線群58との交点にはスイッチングユニット59が配置されており、行配線群57の任意のチャンネルを、列配線群58の任意のチャンネルに切り替えて接続できるようになっている。各々のスイッチングユニット59は、設定を記憶するコンフィグレイションRAMを備えており、プロセッサ部21から供給されるデータによりコンフィグレイションRAMの内容を書き換えることにより、行配線群57と列配線群58の接続を動的に任意に制御できる。このため、このマトリクス領域51においては、複数のエレメント55の全部あるいは一部が配線群57および58により接続されて形成されるデータフローの構成を任意に動的に変更することができる。
各エレメント55は、1組の列配線群58xおよび58yのそれぞれから入力データを選択するための1組のセレクタ54と、選択された入力データに特定の算術および/または論理演算処理を施し、出力データとして行配線群57に出力する内部データパス部56を備えている。そして、本例のマトリクス領域51には、各行毎に異なる処理を行うための内部データパス部56を備えた種類の異なるエレメント55が並んで配置されている。これらのエレメント(PE、Processing Element)55は、ルックアップテーブルなどにより自在に機能を設定可能なものであっても良い。本例では、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、ある程度の機能グループに分けて、それぞれの処理に適した内部構成のエレメントを配置することによりマトリクス領域51のスペース効率を向上している。また、ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少するのでAC特性および処理速度も向上できるといったメリットを得ている。
例えば、第1行目に配列されたエレメント55は、入力バッファ52からのデータを受信する処理に適したデータパス部(LD)56iを備えている。第2行目に配置されたエレメント55aは、入力バッファ52に外部デバイスからデータを書き込むためのエレメントであり、ブロックロードするためのアドレスを発生するのに適した内部データパスを具備するデータパス部(BLA)56aを備えている。マトリクス51を構成する全てのエレメント55は、内部データパスの構成あるいは初期値などがある程度変更できるようになっており、その設定は各々のエレメント55のコンフィグレイションRAMに基本プロセッサ21から制御信号24bにより指示される。
第3行目に配置されたエレメント55bは、入力RAMの各々より所望のデータをマトリクス領域51へロードする入力読み出しアドレスを発生するデータパス部(LDA)56bを備えている。第4行目および第5行目に配列されたエレメント55cは、算術演算および論理演算に適したデータパス部(SMA)56cを備えている。このデータパス部56cは、たとえば、シフト回路、マスク回路、論理演算ユニットALUおよびALUで処理する演算をセットするコンフィグレイションRAMを備えている。したがって、プロセッサ21が書き込んだ命令により、マトリクス領域51へ入力されたデータを加算あるいは減算したり、比較したり、論理和あるいは論理積を取ったりすることができ、その結果がエレメント55の出力信号として出力される。
その下の行に配列されたエレメント55dは、データが伝送されるタイミングを遅延する処理に適したデータパス部(DEL)56dを備えている。その下の行に配列されたエレメント55eは、データの一時的な記憶領域となるRAMを含むデータパス部(RAM)56eを備えている。さらに異なるエレメント55fとしては、マトリクス領域51の外部に用意されたFPGA27とのインターフェイス用のデータパス部56fを備えたエレメントも用意されており、データをいったんFPGA27に供給して処理した後、再びマトリクス領域51に戻して処理を継続することができる。
これらの再構成可能な集積回路区画51のさらに下方には、ストア用のアドレスを発生するのに適したデータパス部56gおよび56hをそれぞれ備えたエレメント55gおよび55hが配置されている。これらは、出力バッファ53を介して外部デバイスにデータを出力するための制御を行う。そして、最下段には、ストア用にデータを出力するのに適したデータパス部(ST)56sを備えたエレメント55が配列されている。したがって、マトリクス領域51を用いて、エレメント55の接続を動的に変更することにより、様々なデータフローライクな処理経路あるいは処理システムをフレキシブルに構成でき、様々な処理を行うことができる。
図3は、算術演算および論理演算に適したエレメント55cの概略構成を示してある。なお、入力を選択するセレクタ54は省略している。内部データパス部56cは、シフト回路SHIFT、マスク回路MASK、論理演算ユニットALUを備えている。また、RISC21からコンフィグレイション情報を受け取る設定部60を備えており、シフト回路SHIFT、マスク回路MASK、論理演算ユニットALUの設定を変更することができる。したがって、バス58から入力された入力データdixおよびdiyを加算あるいは減算したり、比較したり、論理和あるいは論理積を演算することができ、その結果が出力信号doとして配線(バス)57に出力することができる。
さらに、内部データパス部56cには、入力データをラッチする入力側のフリップフロップ48および出力データをラッチする出力側のフリップフロップ49が設けられており、入力データが加工されて出力される待ち時間(レイテンシー)はクロック単位で制御されている。したがって、各種類のエレメント55は、クロック発生部28から供給されるクロック信号に同期して稼動し、エレメントの種類により、または、エレメントで実行する処理が決まった段階で入力データを処理して出力するために消費されるサイクル数が明確になり、設計者は遅延情報として予め知ることができる。RP20において並列に動作する要素のエレメント55のレイテンシーが明確に決まるので、エレメント55を用いた並列処理の設計が容易である。また、エレメント55の入出力のタイミングが決まるので、プログラム上は時間的な流れで記述されているアルゴリズムを、エレメント55を用いて空間方向に展開することも容易となる。このため、従来、汎用のCPUを繰り返し稼動することにより実行していたアルゴリズムをサイクル同期のパイプラインとしても動作するデータフロー(擬似データフロー)として実現し、実行することが可能となり、実行速度を向上することができる。
図4は、データが伝送されるタイミングを遅延する処理に適したエレメント55dの概略構成を示してある。このデータパス部(DEL)56dは、複数のセレクタとフリップフロップの組み合わせで構成された遅延回路47と、入力側のフリップフロップ48と、出力側のフリップフロップ49と、回路を選択するセレクタ42とを備えている。遅延回路47は、制御部60にRISC21から設定されたコンフィグレイション情報により制御され、本例では0〜5クロックの遅延をセットできる。したがって、入力毎に1〜7クロックの遅延を制御できる。さらに、コンフィグレイション情報により、2つの入力系統(X系統およびY系統)を直列に接続することが可能であり、2倍の遅延時間を制御できる。また、これらのデータと共にキャリー信号用の行配線群および列配線群で導かれるキャリー信号cixおよびciyも同様のデータパスにより遅延して出力される。
遅延用のデータパス部を備えた演算ユニットであるエレメント55dを用意することにより、各種のデータパス部における信号の遅延を任意に調整できる。したがって、算術演算や論理演算用のエレメントやその他のエレメントを組み合わせてデータフローを形成したときの遅延時間の差を調整するために、各エレメントに遅延調整用のフリップフロップおよびセレクタを設ける必要がない。このため、各々のエレメントの構成が簡易になり、エレメントの汎用性を向上できる共に、エレメントが占有する面積を最小限に留めることができる。また、上述したように、各エレメントはレイテンシーがクロック単位で制御されているので、レイテンシーの差は、遅延用のエレメント55dの機能により埋めることは容易であり、エレメントを組み合わせて行う演算のパイプラインのタイミングを保障できる。
この遅延用のエレメント55dは、縦配線群58で供給されるデータを横配線群57に移行する機能も果たし、遅延用のエレメントであるからといって遅延だけに利用されることはなく、演算用のデータフローを設計する上での利用方法はフレキシブルである。
図5に、SRAM65を備えたエレメント55eの概略構成を示してある。入力データdixをアドレス、入力データdiyをデータとして使用することができ、データとアドレスが同時に与えられた場合は書き込み、アドレスのみが与えられた場合は読み出しを行うことができる。SRAM65として複数のバンク形式のRAMや2ポートRAMを搭載することも可能であり、制御部60にRISC21によりセットされるコンフィグレイション情報により制御することができる。このエレメント55eは、エレメントにより構成されたデータフロー中を流れるデータを一時的に記憶するために用いることができる。SRAM65が8ビットであっても、4つのエレメント55eを行方向に並べて配置することにより、8ビットの4つのRAMとしても、16ビットの2つのRAMとしても、さらに、32ビットの1つのRAMとしても利用できる。
さらに、SRAM65をルックアップテーブル用に利用することも可能である。したがって、このエレメント55eは、バイトあるいはワード単位の入力データに対して任意の関数による出力データを得るためのルックアップテーブルとして使用できる。コサイン変換処理やCRC計算をマトリクス領域51で実現する場合に有用である。
図6に、割り算を行う演算プログラムの一部を示してある。このプログラム70は、変数rareru、koho、divisor、waruおよびQを入力として、変数QおよびRを出力するプログラムである。そして、プログラム70は、最下層のループプロセスであるブロックAと、その上の階層のループプロセスであるブロックBとを備えており、2重ループを構成し、ブロックAでは、変数waruおよびkohoが不定回数だけ更新を受け、それをブロックBで使用し、変数Qおよびrareruを変化させている。このため、変数rareru、koho、divisor、waruおよびQという入力データセットが複数ある場合には、変数Qおよびrareruを保持しておく必要があるため、ブロックAではパイプライン処理はできず、データセットを1つずつ処理していかなくてはならない。
図7に、図6に示したプログラム70のアルゴリズムを実行する処理システム(データパス、擬似データフロー、以降ではデータフローと呼ぶ)75を、本例のデータ処理装置20のマトリクス部50の7つのSMAエレメント55c(SMA1からSMA7)とRAMエレメント55eにより構成(マッピング)した例を示してある。プログラム70のアルゴリズムをマトリクス部50に実際にマッピングする際は、複数の変数を1つのSMA55cで処理したり、独立した処理を実行する複数のSMA55cを並列に接続したりすることは可能である。しかしながら、簡単のために、ここではSMA55cをシリアルに接続してデータフローを構成した例を示してある。
データフロー75は、第1の処理システムに相当するブロックAの処理を行うデータフロー76と、その前処理を行い、第2の処理システムに相当するデータフロー78と、後処理を行い、第3の処理システムに相当するデータフロー79と、データフロー76と並列に構成され、保持システムに相当するRAM55eによるデータフロー77とを備えている。データフロー75では、データフロー76において、不定回数ループが周回している間、後処理のデータフロー79において使用するために保持しなければいけないデータを前処理のデータフロー78を構成するエレメントではなく、RAM55eに置き、後処理のデータフロー79において必要なときにロードすることで、不定回数ループを含む多重ループのパイプライン処理を可能にしている。
図8は、保持システムとして動作するデータフロー76を1つのRAMエレメント55eにより構成した例を示してある。この場合、前処理のデータフロー78から出力されたデータの内、保持したい2つの変数QおよびrareruがSRAM65にシーケンシャルに保持される。そして、ループ処理を行うデータフロー76から更新された変数waruおよびkohoが出力されるタイミング、すなわち、データフロー76を一回だけ通過する待ち時間後にRAMエレメント55eから後処理のデータフロー79に供給される。図7に示したケースでは、変数waruおよびkohoがデータフロー76を通過する待ち時間は、データフロー76を構成する各々のエレメントSMA3〜SMA5のレイテンシーの和であり、各々のエレメントSMA3〜SAM5のレイテンシーは予め明確になっている。したがって、RAMエレメント55eでは、制御部60にコンフィグレイション情報をセットし、RAM65に記憶したデータを適当なレイテンシーの後に出力するようにアドレスを管理するアドレス発生機構61として動作させることができる。
前処理のデータフロー78から出力され、ループ処理のデータフロー76では更新されず、後処理のデータフロー79で利用されるデータがある場合、データフロー76の処理が不定回数ループであると、何回目のループでデータフロー76から更新されたデータ(第1のデータあるいはデータセット)が出力されるかは不明である。したがって、ループから更新されたデータが出力されたときに後処理のデータフロー79で処理が進行するようにするには後処理のデータフロー79の入力、すなわち、エレメントSMA6の入力にループ処理では更新されないが、後処理では使用されるデータ(更新が不要なデータ、第2のデータあるいはデータセット)を用意しておかなければならない。したがって、データフロー77が設けられてないデータフローでは、前処理のデータフロー78を止めて、後処理のデータフロー79の入力に更新が不要なデータをセットしておく必要がある。したがって、ループのデータフロー76にも更新の対象となるデータが入力されることはなく、ループのデータフロー76ではパイプライン的な処理は行われない。
これに対し、本例のデータフロー75では、保持システムとして動作するデータフロー77をループ処理のデータフロー76と並列に用意し、保持システムでループ処理では更新の不要なデータを保持し、データフロー76のレイテンシー分だけ遅延させて、後処理のデータフロー79の入力に供給している。このため、前処理のデータフロー78を止めて更新の不要なデータを保持する必要はなくなり、前処理のデータフロー78を進めることが可能となる。したがって、ループのデータフロー76に更新の対象となるデータを入力できるので、ループのデータフロー76ではパイプライン的に処理を進めることが可能となり、データフロー75の処理時間を短縮することができる。
ループのデータフロー76と並列に用意される保持システムが単純なFIFOとして機能するものであっても、FIFOのレイテンシーがデータフロー76のレイテンシーに一致するまでFIFOに更新の不要なデータを保持できる。このため、データフロー76が固定回数ループの処理を行う場合は、ループのデータフロー76をパイプライン的に使用できる。しかしながら、不定回数ループにおいては、データが更新されるまでの周回数は不定なので、複数のデータあるいはデータセットがデータフロー76に順番に入力された場合、ループから更新されたデータが出力される順番が同じになることは保証されない。したがって、保持システムがFIFOの場合は、ループから出力される順番が保証されるようなキャッシュを設けたり、先行するデータが出力されるまで後続のデータは更新の必要の有無に関わらずループ処理を継続するようなパスにする必要があり、余分なハードウェアリソースを消費したり、余分な設計時間を消費し、アルゴリズムをデータフローとしてデータ処理装置に実装することが難しくなる。
これに対し、本例の保持システム77では、前処理のデータフロー78から出力された更新不要なデータをSRAM65で保持し、ループ処理のデータフロー76のレイテンシー分だけ遅延して出力する処理を繰り返す。すなわち、上位のループ処理を行うデータフロー75では、ループのデータフロー76において、第1の待ち時間を要する第1の処理を少なくとも一回は繰り返した後に更新されたデータを出力する第1の工程を行い、保持システムのデータフロー77においては、後処理のデータフロー79に対し、更新されたデータと同期して供給される更新不要なデータを保持し、更新不要なデータをデータフロー76のレイテンシー毎に後処理のデータフロー79の入力に供給する第2の工程を行うように制御される。その結果、ループ処理のデータフロー76から更新されたデータが出力されたタイミングで、その更新されたデータと共に後処理のデータフロー79で利用される更新不要なデータは常に用意されることになり、ループ処理のデータフロー76に入力された順番に、更新されたデータが出力されなくても後処理のデータフロー79では処理が進行する。したがって、ループ処理のデータフロー76のパイプラインに空きが発生すれば、その空きに前処理のデータフロー78からデータを入力することが可能となり、データの入出力に要するサイクルを除けば、ループ処理のデータフロー76をほぼ完全にパイプライン化して処理を実行することができ、処理速度を向上できる。
ループのデータフロー76にデータが入力された順番と、更新されたデータが出力される順番とが保証されなくても、更新されたデータに対応して後処理のデータフロー79で使用される更新不要なデータが保持システム77から与えられることは保証されるので、後続のデータフロー79の処理では、ループに入力された順番にデータが出力されないことは基本的にはディメリットにならない。簡単な例では、平均値などの統計的な計算ではデータの順番は基本的に問題にされない。また、パケットのルーティングのような処理においても、パケットが到来する順番がパケットの伝送経路によりパケットが出力された順番とは限らないので、データフロー75で順番が入れ替わることは問題にならない。
データを伸長したり、圧縮したりする処理では、ビットの順番が問題になる処理があり、そのような処理を実行する場合は、入出力の順番が保証されることが望ましい。その場合は、RAMエレメント55eのRAM65に、更新不要なデータと共に、そのデータがRAM65に入力された順番Sを記憶し、後処理のデータフロー79に対し、その順番を識別する情報Sを更新不要なデータQおよびrareruと共に供給することにより、後続の適当なタイミングの処理でデータの順番を整えたり、順番Sにより処理を制御することができる。
保持システム77でホールドする1セットのデータ数をLとし、Nセットの更新不要なデータを保持する場合を考える。RAMエレメント55eでは、RAM65に対するデータの読み書きにそれぞれ1サイクルを要するとする。RAMエレメント55eでは、前処理のデータフロー78から出力された更新不要なL個のデータを記憶し、ループのデータフロー76から更新されたデータが出力されるタイミングでL個のデータが後処理のデータフロー79の先頭のエレメントSMA6の入力に一斉に配置されている必要がある。したがって、RAMエレメント55eにおけるデータの入出力に1セット当たり2Lのサイクルを消費するので、ループのデータフロー76は2Lサイクル毎のパイプラインとして制御することができる。このため、ループのデータフロー76にパイプラインとして流せるデータセットの数N(整数)は、以下のようになる。
N≦(最下層ループ76のレイテンシー)/2L・・・(4)
図9は、保持システム77を複数のRAMエレメント55eにより構成した例を示してある。RAMエレメント55eの数を保持システム77で保持する1セットのデータ数Lにすることにより、複数の要ホールドデータをパラレルに入出力することができ、データの入出力に消費されるサイクル数を減らすことができる。このため、ループのデータフロー76にパイプラインとして流せるデータセットの数N(整数)は、以下のようになる。
N=(最下層ループ76のレイテンシー)/2・・・(5)
1つのRAM65に複数の要ホールドデータを格納すると、シーケンシャルにしかデータが読めないために、後処理のデータフロー79の入力にデータを同期して供給しようとすると、ループのデータフロー76をパイプラインとして制御するときに、少なくともデータ数Lに相当するインターバルを挟まなければいけない。これに対し、図9に示すように、保持システム77でデータの種類毎にRAM65を用意することにより、2サイクル毎のパイプラインとして、ループのデータフロー76にデータを流すことが可能となる。
図10は、保持システム77を1つのデータ当たり2バンクのRAM65aおよび65bを備えた複数のRAMエレメント55eにより構成した例を示してある。1データ当たり2バンクのRAM65aおよび65bを割り当て、切換スイッチ66で制御することにより、データの入力と出力を独立して実行できる。このため、入出力に消費されるサイクルは1サイクルに短縮され、1サイクル毎に、ループのデータフロー76にパイプラインとしてデータを流せる。したがって、データフロー76に流せるデータセットの数N(整数)は、以下のようになる。
N=(最下層ループ76のレイテンシー)・・・(6)
2バンクシステムの代わりに、デュアルポートのRAMを備えたRAMエレメントであっても、ループ処理のデータフロー76のレイテンシーの数だけパイプラインにデータを流すことができる。また、複数のRAMエレメント55eを組み合わせることにより、実質的に2バンクのRAMとして機能させる構成を採用することも可能である。
上述した保持システム77は、RAM上にホールドすべき更新不要なデータを置き、読み出しアドレスを最下層ループ76と同じ周期で繰り返し発生させることで、後処理のデータフロー79の入力データセットに必要なホールドデータを、ループ出力である更新されたデータと同期して供給するようにしている。更新不要なデータを所定のレイテンシーだけ遅らせて出力するという機能は、図4に示した遅延用のエレメント55dが備えている機能である。したがって、遅延用のエレメント55dの遅延量をループ処理のデータフロー76のレイテンシーと一致するようにコンフィグレイション情報を与えることにより、遅延用のエレメント55dを用いても保持システム77を構成することが可能である。すなわち、上述したRAMエレメント55eの各記憶要素が遅延のための各フリップフロップに置き換わったと考えることができる。
RAMエレメント55eを用いた保持システムと、遅延エレメント55dを用いた保持システムには一長一短がある。上記の効果の欄で説明したように、ループ処理のレイテンシーが大きい方が処理速度の向上に大きく寄与するが、その場合、遅延用のエレメント55dを使用しようとすると、遅延用のエレメント55dの汎用性が少なくなる。たとえば、ループ処理のレイテンシーが4096サイクルあり、1つの遅延用のエレメントに4096個のフリップフロップを格納し、4096サイクルの遅延を設定できるようにすることは可能であるが、そのような遅延用のエレメントは他の目的で使用するにはフリップフロップの資源に無駄が多い。遅延用のエレメント55dを複数連結して遅延量を確保することも可能であるが、そのために自由に使える配線リソースを使用してしまうことは、再構成可能なマトリクス部50のフレキシビリティーを損ねることになる。
一方、マトリクス部50に用意されたRAMエレメント55eの個数に対して、保持システム77としてホールドするデータの数が多く、ループのデータフロー76のレイテンシーが小さく、パイプライン処理をするために保持するデータセットの数Nを大きくしなくてもよい場合は、汎用性のある遅延量の遅延用のエレメント55dにより保持システム77を構成できる。したがって、保持システムとしてホールドすべきデータの数、マトリクス部55に保持システム77を構成するために利用できるリソースの量、ループ処理のレイテンシーなどの条件により、RAMエレメント55eを用いたり、遅延用のエレメント55dを用いたり、さらには、それらを適宜組み合わせて保持システム77を構成することが望ましい。
このように、本発明によれば、最下層ループが不定回数ループであっても、それをパイプライン処理することにより、処理時間を短縮できる。すなわち、パイプライン処理による処理時間の短縮は、最下層ループのレイテンシー(サイクル数)に依存している。このため、最下層ループのレイテンシーがあまりにも少ないと、パイプラインによる恩恵をあまり受けることができない。最下層ループのレイテンシーが少ないということは、ループで処理する時間が少なく、全体の処理が早く終わり、全体の処理が終わってから次々データを投入していければそれほど時間的なロスは生じないとも考えられる。しかしながら、最下層ループでの周回数が最初から平均的に10回以上とか100回以上とか予想がつく場合は、新しいデータセットの投入を延々と待ち続けなければいけないにも関わらず、パイプライン処理が少ししか行なえないという事態が発生する。
図11に示したプログラム71は、図6に示したプログラム70と同じ処理を行うものであるが、プログラム70では最下層ループを構成していたブロックAの処理を3つシーケンシャルに接続して最下層ループのブロックCを構成している。平均的なループ回数が判明している場合は、ループの複数回を1回のループ周回で行うようにすることにより、無駄な処理を挟まずに、最下層ループのレイテンシーを増やすことが可能となる。プログラム70の最下層ループを構成するブロックAの処理のレイテンシーが6サイクルだったとすれば、プログラム71の最下層ループを構成するブロックCのレイテンシーは18サイクルになる。したがって、パイプラインで処理することができるデータセットの数Nを3倍に増やすことができ、前処理のデータフローが停止する時間を短縮することにより処理時間を短縮することができる。
プログラム71をマトリクス部50にマッピングするにあたっては注意が必要である。ブロックCでは、ブロックAの処理を繰り返すためにループから途中で抜ける処理を用意してあり、ブロックCを実現するループのデータフロー76の途中から外に流れるデータは直に後処理のデータフロー79に供給することはできない。保持システム77から供給される更新不要なデータとの同期を取るために、遅延用のエレメント55dを挟んで一定周期で後処理のデータフロー79に供給する必要がある。
なお、上記では、エレメントがマトリクス状に配置された再構成可能な領域を備えたデータ処理装置に基づいて本発明を説明しているが、本発明はループ処理を行う処理システムのレイテンシーが明確で、フィックスされていれば再構成可能なデータ処理装置以外であっても適用することが可能である。また、本発明の対象となるデータ処理装置は、LSIあるいはASICといった電子を情報伝達媒体とする半導体集積回路装置に限らず、光を情報伝達媒体とする光あるいは光・電子回路にも適用できる。さらに、再構成可能な構成は上記に限定されることはなく、再構成されたデータフローにおけるデータ処理が同期的に行われるデータ処理装置であれば、本発明を適用することが可能である。
再構成可能なマトリクス部を備えたデータ処理装置の概要を示す図である。 複数のエレメントが2次元に配置されたマトリクス部の概要を示す図である。 演算用のエレメントの構成例を示す図である。 遅延用のエレメントの構成例を示す図である。 RAMエレメントの構成例を示す図である。 本発明を説明するためのプログラムの一例である。 図6に示すプログラムのアルゴリズムをマトリクス部にマッピングした一例を示す図である。 1つのRAMに複数のデータをシーケンシャルに記憶する保持システムを示す図である。 1つのRAMに1種類のデータを記憶する保持システムを示す図である。 2バンクのRAMを用いた保持システムを示す図である。 最下層のループのレイテンシーを伸張したプログラムを示す図である。 ループ処理をパイプライン的に制御する例を示す図であり、図12(a)はループ処理にデータを入れる様子を示し、図12(b)はループ処理を行う様子を示し、図12(c)はループ処理からデータを出力する様子を示している。 不定回数ループをパイプライン的に制御する例を示す図である。 不定回数ループが最下層ループであるときに、パイプライン的に制御できないことを示す図である。
符号の説明
20 データ処理装置
50 マトリクスユニット,51 マトリクス領域
55 エレメント
76 ループ処理を行うデータフロー(第1の処理システム)
77 データを保持するデータフロー(保持システム)
78 前処理を行うデータフロー(第2の処理システム)
79 後処理を行うデータフロー(第3の処理システム)

Claims (13)

  1. 第1のデータが入力されてから第1の待ち時間を要する第1の処理を少なくとも一回は繰り返した後に、更新された第1のデータを出力する第1の処理システムと、
    前記第1の処理システムの前処理を行う第2の処理システムであって、前記第1のデータと、前記第1の処理システムでは処理を要しない第2のデータとを同期して出力する第2の処理システムと、
    前記第1の処理システムの後処理を行う第3の処理システムであって、前記第2の処理システムから出力される前記第2のデータと前記更新された第1のデータとを含む入力データによる処理を行う第3の処理システムと、
    前記第2のデータを記憶し、前記第2のデータが入力されてから前記第1の待ち時間毎に前記第2のデータを繰り返して出力し、前記更新された第1のデータと前記第2のデータとを同期して前記第3の処理システムへ供給する保持システムとを有するデータ処理装置。
  2. 請求項1において、前記第1の処理システムは、前記第2の処理システムおよび前記第3の処理システムにより少なくとも一部が実行される上位プロセスに含まれるループプロセスを実行する、データ処理装置。
  3. 請求項1または2において、前記保持システムは、前記第3の処理システムへ前記更新された第1のデータと同期して供給される前記第2のデータの順番を識別する情報を前記第2のデータと共に供給する、データ処理装置。
  4. 請求項1ないし3のいずれかにおいて、各種のエレメントが予め決められた複数のサイクルを消費する複数のエレメントを有し、少なくとも前記第1の処理システムは前記複数のエレメントの組み合わせを備えている、データ処理装置。
  5. 請求項1ないし4のいずれかにおいて、前記保持システムは、前記第2のデータに含まれる複数の個別データをシリアルに記憶するRAMである、データ処理装置。
  6. 請求項1ないし5のいずれかにおいて、前記保持システムは、前記第2のデータに含まれる複数の個別データをパラレルに記憶するRAMである、データ処理装置。
  7. 請求項1ないし6のいずれかにおいて、前記保持システムは、2ポートRAM、または2バンクのRAMエレメントを備えている、データ処理装置。
  8. 請求項1ないし7のいずれかにおいて、当該データ処理装置は、エレメント間の待ち時間の調整を行う遅延エレメントを含み、
    前記保持システムは、前記遅延エレメントを備えている、データ処理装置。
  9. 請求項1ないし8のいずれかにおいて、前記第1の処理は、第2の待ち時間を消費する複数の処理がシーケンシャルに接続されたものであり、前記第1の待ち時間は前記第2の待ち時間の整数倍である、データ処理装置。
  10. 第1の処理システムにより、第1のデータが入力されてから第1の待ち時間を要する第1の処理を少なくとも一回は繰り返した後に、更新された第1のデータを出力する第1の工程と、
    前記第1の処理システムの前処理を行う第2の処理システムであって、前記第1のデータと、前記第1の処理システムでは処理を要しない第2のデータとを同期して出力する第2の処理システムから出力される前記第2のデータを保持システムに記憶し、前記第2のデータが前記保持システムに入力されてから前記第1の待ち時間毎に前記第2のデータを繰り返して出力し、前記第2のデータと前記第1のデータとを含む入力データによる処理を行う第3の処理システムの入力に前記更新された第1のデータと前記第2のデータとを同期して供給する第2の工程とを有するデータ処理装置の制御方法。
  11. 請求項10において、前記第1の工程では、前記第2の処理システムおよび前記第3の処理システムにより少なくとも一部が実行される上位プロセスに含まれるループプロセスを実行する、データ処理装置の制御方法。
  12. 請求項10または11において、前記第2の工程では、前記第3の処理システムへ前記更新された第1のデータと同期して供給される前記第2のデータの順番を識別する情報を前記第2のデータと共に供給する、データ処理装置の制御方法。
  13. 請求項10ないし12のいずれかにおいて、前記第1の工程では、第2の待ち時間を消費する複数の処理をシーケンシャルに実行し、前記第1の待ち時間は前記第2の待ち時間の整数倍である、データ処理装置の制御方法。
JP2004080657A 2004-03-19 2004-03-19 データ処理装置およびその制御方法 Expired - Lifetime JP4446437B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004080657A JP4446437B2 (ja) 2004-03-19 2004-03-19 データ処理装置およびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004080657A JP4446437B2 (ja) 2004-03-19 2004-03-19 データ処理装置およびその制御方法

Publications (2)

Publication Number Publication Date
JP2005267382A JP2005267382A (ja) 2005-09-29
JP4446437B2 true JP4446437B2 (ja) 2010-04-07

Family

ID=35091854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004080657A Expired - Lifetime JP4446437B2 (ja) 2004-03-19 2004-03-19 データ処理装置およびその制御方法

Country Status (1)

Country Link
JP (1) JP4446437B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4647533B2 (ja) * 2005-11-28 2011-03-09 富士通セミコンダクター株式会社 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム
US20110047353A1 (en) * 2008-01-31 2011-02-24 Fuji Xerox Co., Ltd. Reconfigurable device
JP5589479B2 (ja) * 2010-03-25 2014-09-17 富士ゼロックス株式会社 データ処理装置
KR101578421B1 (ko) 2014-06-02 2015-12-18 대한민국 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법

Also Published As

Publication number Publication date
JP2005267382A (ja) 2005-09-29

Similar Documents

Publication Publication Date Title
US11188497B2 (en) Configuration unload of a reconfigurable data processor
KR20210116444A (ko) 재구성가능한 데이터 프로세서의 구성 로드
US20050283743A1 (en) Method for generating hardware information
JP4900717B2 (ja) 再構成可能な装置
US6023742A (en) Reconfigurable computing architecture for providing pipelined data paths
US6288566B1 (en) Configuration state memory for functional blocks on a reconfigurable chip
US20060242617A1 (en) Automatic generation of streaming processor architectures
JP2006031127A (ja) 再構成可能な演算装置
US10768899B2 (en) Matrix normal/transpose read and a reconfigurable data processor including same
JPWO2002095946A1 (ja) 集積回路装置
US11580056B2 (en) Control barrier network for reconfigurable data processors
WO2022173821A1 (en) Instrumentation profiling for reconfigurable processors
Rashidi et al. Enabling compute-communication overlap in distributed deep learning training platforms
JP2005018626A (ja) 並列処理システムの生成方法
Tajammul et al. NoC based distributed partitionable memory system for a coarse grain reconfigurable architecture
Shami et al. Address generation scheme for a coarse grain reconfigurable architecture
US20080320276A1 (en) Digital Computing Device with Parallel Processing
JP4446437B2 (ja) データ処理装置およびその制御方法
US7509479B2 (en) Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit
US9075768B2 (en) Hierarchical multi-core processor and method of programming for efficient data processing
JP2006018412A (ja) アドレス生成器および演算回路
Khanzadi et al. A data driven CGRA Overlay Architecture with embedded processors
JP5599987B2 (ja) 多重化用補助peおよび半導体集積回路
JPH10214221A (ja) 制御装置及びメモリシステム
US11940940B2 (en) External exchange connectivity

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091112

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

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

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4446437

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140129

Year of fee payment: 4

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term