JP2006018514A - 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 - Google Patents

演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 Download PDF

Info

Publication number
JP2006018514A
JP2006018514A JP2004194797A JP2004194797A JP2006018514A JP 2006018514 A JP2006018514 A JP 2006018514A JP 2004194797 A JP2004194797 A JP 2004194797A JP 2004194797 A JP2004194797 A JP 2004194797A JP 2006018514 A JP2006018514 A JP 2006018514A
Authority
JP
Japan
Prior art keywords
data
data buffer
configuration
buffer
memory
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
JP2004194797A
Other languages
English (en)
Other versions
JP4547198B2 (ja
Inventor
Yoshihisa Saito
美寿 齋藤
Hisanori Fujisawa
久典 藤沢
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 JP2004194797A priority Critical patent/JP4547198B2/ja
Priority to EP04256436A priority patent/EP1615143B1/en
Priority to EP09167857A priority patent/EP2116938B1/en
Priority to DE602004030778T priority patent/DE602004030778D1/de
Priority to US10/973,094 priority patent/US7822888B2/en
Priority to KR1020040087205A priority patent/KR100711082B1/ko
Priority to CNB2004100866157A priority patent/CN100399317C/zh
Publication of JP2006018514A publication Critical patent/JP2006018514A/ja
Application granted granted Critical
Publication of JP4547198B2 publication Critical patent/JP4547198B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Logic Circuits (AREA)
  • Programmable Controllers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 簡易な構成で柔軟性の高い複数クラスタよりなる再構成演算装置を提供することを目的とする。
【解決手段】 同時動作可能な演算器群180と、演算器群の状態を制御するシーケンサ110と、演算器群のコンフィギュレーション情報を格納するコンフィギュレーションメモリ120とよりなり、演算器群に対してデータを入力する際にデータバッファを介するパスと介さないパスとを設け、パスの選択及びデータバッファの動作を制御するデータバッファ制御部を設け、その動作制御の内容がコンフィギュレーション情報によって設定される構成である。
【選択図】 図1

Description

本発明は演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体に係り、特に動的にその構成を変更することで様々な処理を行なわせることが可能な所謂再構成可能(リコンフィギュラブル)演算装置、同演算装置の制御方法、同制御方法をコンピュータに実行させるためのプログラム及び同プログラムを格納したコンピュータ読取り可能記録媒体に関する。
例えば特許文献1には、演算器を複数配置し、その演算器間の接続を切り替えることで処理アルゴリズムの変更を可能とした再構成可能な演算器群を有する演算装置が開示されている。当該演算装置は状態管理部と2次元アレイ状に電気的に接続された複数プロセッサエレメントとを有する。又これをタイルと呼び、このタイルを複数設けた構成が特許文献2に開示されている。タイルを複数設けた構成の場合のタイル間のデータ転送は、相隣接するタイル間に転送仲介回路を配置し、これを経由することで実施している。(特許文献2,図7、図8、図9等参照)。
この転送仲介回路は双方向トライステートバッファ回路であり、この場合のバッファ回路は増幅器を意味している。そして、そのオン/オフは、タイルとは別に設けられた中央管理部により制御され、或いは場合によっては隣接するタイル内のどちらかの状態管理部により制御される。この転送仲介回路は1対の相隣接するタイル間に複数存在するが、そのうちの一のタイル内のデータ線と他のタイル内のデータ線がこの転送仲介回路によりどのように接続されるかについては同特許文献には特に明示されていない。
すなわち、一のタイル内のあるデータ線に対し他のタイル内のどのデータ線が接続されるかが明示されておらず、一のタイル内のあるデータ線に対し、当該転送仲介回路を経由して他のタイル内での固定的に決まったデータ線に接続されているものと推測される。このことは、同文献にて、タイル間での接続方法のおいてあるデータ線間は直結させ、他のデータ線間は当該転送仲介回路を経由させる構成が可能とされている点から類推される。
また、このような転送仲介回路の代わりに、相隣接するタイル間にタイル間共有リソースを設ける例も、同特許文献に開示されている(図18参照)。しかしながらこの例については、データの一時保存回路を設ける場合もあることが言及されているものの更に具体的な記述が無いため、実際にどのような構成で実現されるかの詳細については不明である。また、同特許文献には転送仲介回路と共有リソースとの両者を設ける例も示されている(図21参照)。
又、特許文献3には、複数のプロセッサエレメントを有する演算装置が開示されている。この技術ではプロセッサエレメント間の通信に必ず交替バッファ(即ち、ダブルバッファ)を設け、これを介してデータの転送を行う構成とされている(図6参照)。この交替バッファが必要である理由を以下に示す。通常、複数の独立したプロセッサ(プログラムカウンタが共有されないもの)における処理につき、それらの間に全く依存関係が無くしかも全く同じ処理を行わない限り、たとえ開始タイミングを一致させたとしてもその進行タイミングは一般的に一致することはない。このような動作の関係を以下「非同期動作」と称する。そのため、プロセッサエレメント内の一の演算プロセッサによるデータの処理の進行タイミングと、これとデータをやり取りするプロセッサエレメント内の他の演算プロセッサのデータの処理の進行タイミングとは必ずしも同期しない(非同期動作)。このため、上記交替バッファの一面(一メモリ)に一のプロセッサから書き込んでいる間、他のプロセッサは当該交替バッファの他の面から読み出す構成とすることで演算プロセッサ間の非同期動作を支障なく実現することが可能となる。
特開2001−312481号公報 特開2004−133781号公報 特開平5−108586号公報
複数の演算器間の接続を切り替えることで処理アルゴリズムを変更可能な構成の再構成可能演算装置を更に多数設けた場合の問題として、その多数の演算装置間のデータの転送の自由度の問題が考えられる。即ち、例えばあるパイプライン的なアルゴリズムを複数の再構成可能演算装置の協働動作によって実現する場合、そのデータの受け渡しはクロックサイクルレベルで一致させる必要がある。例えば、1乃至k段のパイプライン処理を再構成可能演算装置Aで行い、k+1乃至n段(ここでn>k)の処理を再構成可能演算装置Bで行う場合を考える。この場合上記交替バッファ等を間に挟まずに連続して処理を行う必要がある。それは、交替バッファを入れるとその動作時間分動作タイミングがずれてしまうからである。即ち、例えば処理の後半でn+1段の処理を更に演算装置Aで行うようなフィードバック的な処理がある場合、上記タイミングのずれにより、アルゴリズム上破綻を来すおそれがある。
次に、複数の再構成可能演算装置に、互いに依存関係はあるが異なるアルゴリズムを夫々実行させる場合について考える。例えばIEEE802.11aにおけるPHYレイヤでの受信処理を行った場合、その一部の例として、「キャリア周波数誤差補正」後に「FFT」を行う動作を考える。この場合これらの処理は連続するが、データを処理する単位が異なるため、パイプライン的にクロックサイクルレベルで同期させて動作させることは難しい。すなわち、工数をかけて設計すれば出来ないことはないが、通常はもっと簡単に解決する方法があるため、そちらの方法を選択することになる。
その簡単に解決する方法とは、一方の「キャリア周波数誤差補正」処理後のデータを、書き込みたい順にダブルバッファの一面(一メモリ)に入れておき、他方の「FFT」処理は、FFTしやすい順にダブルバッファの他の面(他のメモリ)から読み出して処理を行うという方法である。これは特許文献3に開示された方法である。
しかしながら、複数の再構成可能演算装置を使用して所定のアプリケーションの処理を行なう場合、クロックレベルで同期させて処理させなければ破綻してしまうような処理と、逆に上記の如くダブルバッファを再構成可能演算装置間に介在させた上でそれら再構成可能演算装置間で処理を分離すべき場合とが混在する場合がある。例えば「キャリア周波数補正」処理を再構成可能演算装置Aにて、「FFT」の1乃至k段の処理を再構成可能演算装置Bにて,「FFT」処理のk+1乃至nの処理を再構成可能演算装置Cにて行うような場合を考える。これは即ち「FFT」処理を全て一の再構成可能演算装置内で処理させることが出来ない場合であり、この場合、ダブルバッファを介してデータを受け渡す方式と、クロックレベルで同期してデータを受け渡す方式とが混在することになる。
多数の再構成可能演算装置に任意のアプリケーション処理を実行させるためには、各再構成可能演算装置のいずれもがこのどちらの方式のデータ受け渡し処理にも対応可能な構成としておくことが望ましい。
特許文献3の開示技術の場合、ダブルバッファを介したデータ転送の場合のみ可能な構成であり、このような場合、再構成可能演算装置間のデータ転送を含む処理においては処理のアルゴリズムが破綻する可能性がある。
また、特許文献2の開示技術の場合のようにタイル間でのデータの結線がデータ転送介在回路による場合に限られてしまうと、ダブルバッファを介した方が望ましい場合に対応させることが出来ない。又、同文献に開示されている如く、共有リソースとデータ転送介在回路との両方を設ける場合、同文献中に「例えばデータ一時記憶回路」を設ける旨の記載はあるものの、その具体的構成に対する記述が無く、又、この共有リソースの機能はせいぜいタイル間のデータ通信用であり、外部とのデータ転送に用いる構成ではない。
又,通常任意のアプリケーションのデータ転送にダブルバッファを用いる場合、個々のアプリケーションによって必要とされるダブルバッファの容量は異なる。したがって任意のアプリケーションに対応させるためにはその容量を大きくする必要がある。そのため、仮に特許文献2の開示技術の構成において、例えばデータ一時記憶回路にダブルバッファを設けることを想定した場合、当該ダブルバッファはデータ転送介在回路毎に設けることになり、その占有面積が問題になることが予測される。このように各データ転送介在回路に設けるデータバッファは必ずしも全数が利用されるとは限らないが、再構成可能演算装置の適用の柔軟性を考えた場合全数設けることが望ましい。その結果、相隣接する再構成可能演算装置間の夫々に設けられたデータ転送介在回路のデータバッファの中には、全く利用されないデータバッファが存在し得、過剰な冗長性の問題が生じ得る。
まず上記第一の課題の解決、即ち、実施するアプリケーションによって、再構成可能演算装置間のデータ転送の方式としてデータバッファを介して行なう場合と介さずに行なう場合との両方に柔軟に対応可能な構成の実現を図る点につき、図1に示すように、シーケンサ110と演算器群180とコンフィギュレーションメモリ120とで構成される再構成可能演算装置100において、他の再構成可能演算装置或いは外部とのデータ転送に関してデータバッファを使う場合とデータバッファを使わない場合とのいずれもが選択可能な構成とする。ここで、そのいずれの場合を適用するかは、当該再構成可能演算装置が処理するアプリケーションにより異なる。このように、どのようなアプリケーションに対しても柔軟に対応可能な構成を提供するため、その制御はアプリケーション処理情報であるコンフィギュレーションメモリ120内の情報により設定可能とする。尚ここで、コンフィギュレーションメモリ120内情報のうち実際に適用する情報を選択するための適用情報切替処理の内容はシーケンサ110によって設定される。
この構成により、特許文献3の開示技術の構成においては実現不可と考えられるデータバッファを使わないで行なうデータ転送と、これを使って行なうデータ転送との切替が、適用するコンフィギュレーション毎に任意に切替可能となる。
また特許文献2にはデータバッファとしての具体的構成が記載されておらず、又、あくまでタイル間に存在する共有リソースが示されているのに対し、上記本発明構成によれば、当該再構成可能演算装置に対してデータが外部から入力される場合であれば、データ転送元相手が他の再構成可能演算装置の場合だけではなく、それ以外の外部からのデータ転送の場合に対しても柔軟に対応可能となる。
次に上記第二の課題の解決、即ち、設けるデータバッファの容量を効率的に使用可能な構成の実現を図る点につき、夫々がシーケンサ110と演算器群180とコンフィギュレーションメモリ120とで構成される複数の再構成可能演算装置間、あるいは外部と再構成可能演算装置間のデータ転送に関し、処理する個々のアプリケーションの特性に応じて効率良くデータ転送を実施するため、ダブルバッファ等、データを一時的に格納して転送可能な構成を有するデータバッファモジュールを再構成可能演算装置とは別に同じ階層に設ける。そして、そのデータバッファモジュールは、使用するときのみスイッチにより再構成可能演算装置の入力、出力に接続することが可能であり、又、データバッファモジュールは、いくつかの再構成可能演算装置によって共有可能なものとすることが望ましい。
ただしここで、このダブルバッファを共有する複数の再構成可能演算装置の合計入力数及び合計出力数に対し、これに対応するダブルバッファの出力数及び入力数のほうが夫々少ない場合を想定するに、同時に共有可能な再構成可能演算装置の全てによる共有は不可となるものの、再構成可能演算装置のデータ転送において常にダブルバッファを使用するわけではなく、使用効率を最適化することを考慮した場合ダブルバッファの入出力個数を徒に増加させることは必ずしも望ましいとは限らない。したがって、このように、適宜ダブルバッファの入出力個数を減ずることが望ましい場合もある。
また、ダブルバッファを共有可能とすることで所要データバッファの総数を減らせるため、各データバッファ当たりの容量を大きくすることによる占有面積増の問題も解決可能である。
図2に上記本発明の構成による複数の再構成可能演算装置間のデータ転送の方式を示す。尚、シーケンサ110と演算器群180とコンフィギュレーションメモリ120とで一単位として構成される再構成可能演算装置を以下「クラスタ」と称する。又、図2中、データバッファモジュール(以下、「データバッファクラスタ」と称する)200等を用い、複数のデータを一時的に格納した後に適宜ここから読み出すことによるデータ転送方式を、「非同期データ転送」方式と称する。
このような構成を採用することにより、本発明によれば、上記第1及び第2の課題、即ち、処理すべきアプリケーションの個々の内容に応じて柔軟に「バッファを介するパス」と「介さないパス」とを選択可能にすることが可能となると共に、データバッファの容量を効率的に利用可能な構成の実現が可能となる。
図3に本発明の第1実施例による演算装置の構成を示す。図に示す如く、同実施例による演算装置は、複数のクラスタ100−1、100−2、100−3、...(以下総称して単に「クラスタ100」と称する場合もある)が図中の矢印にて示す経路で互いに電気的に接続された構成を有する。各クラスタ100は、上記の如く、多数の再構成可能演算器を含む演算器群180(図4参照)、これら演算器群の状態を設定することで演算器群の構成を柔軟に変更して様々な演算処理の実行を可能にするためのコンフィギュレーション情報を格納するコンフィギュレーションメモリ120及びコンフィギュレーションメモリ120内のコンフィギュレーション情報のうち、実際に演算器群180に対して適用する情報を選択指示するシーケンサ110を含む。
本実施例では、クラスタ100間のネットワークは各クラスタ内に設けたクロスバースイッチ190(以下単にクロスバー190と称する)を介して行う。又更に、クロスバーにより、クラスタ100とクラスタ100との間、クラスタ100とデータ転送バッファ135との間、クラスタ100と同演算装置(クラスタ100の集合)の外部との間、或いはデータ転送バッファ135と外部との間のデータ転送を行う。
図3では演算器群180内にデータバッファモジュール135を設け、これが上記コンフィギュレーション情報によって「データバッファを使用するモード」と「データバッファを使用しないモード」とに切替可能とされている。
図4は各クラスタ100の内部構成を示す。クラスタ100は、この実施例ではクロスバー190を有しており、クラスタ100間のネットワーク構成が異なる場合には、このクロスバー190はそのネットワーク構成に応じたインターフェースとして機能することになる。また、クロスバー190の入出力としては、この図では左右方向からイン/アウトが夫々1本ずつ、内部からのイン/アウトが夫々1本ずつのみが示されているが、これは図示の簡略化のためであり、実際には、イン/アウトは、互いに独立した4本づつが設けられている。しかしながらその本数は4本に限られるものではなく、1本づつでもよいし、他の任意の複数本ずつでもいい。
当該クロスバー190はデータ線だけでなく、クラスタから出力されるアドレス線、あるいは外部から入力されるアドレス線の接続をも行なう。この実施例では使用時に配線を適宜データ線又はアドレス線に割り当てる構成とされているが、元々別々にデータ専用線、アドレス専用線を用意しても構わない。
図5に、図4中のデータバッファ部135の詳細を示す。図5(a)は内部構成図を示し、同図(b)はデータバッファ部135に入力されるコンフィギュレーション情報を示す。図5(a)中、データバッフ部135はデータバッファ制御部131とダブルバッファ130とよりなり、データバッファ制御部131は、各比較器131−2,制御部131−1,入力サイズレジスタ131−3,ダブルバッファを構成する各メモリ130−A,130−Bのそれぞれに対応するデータ入力数カウンタ1,2(131−4)、出力サイズレジスタ131−5,ダブルバッファを構成する各メモリ130−A,130−Bのそれぞれに対応するデータ出力数カウンタ1,2(131−6)、バッファ使用有無レジスタ131−7及び自動送出モード選択レジスタ131−8を含む。
上記各比較器131−2は、入力レジスタ131−3に格納された値とデータ入力数カウンタ1又はデータ入力数カウンタ2の計数値とを夫々比較する比較器と、出力レジスタ131−5に格納された値とデータ出力数カウンタ1又はデータ出力数カウンタ2の計数値とを夫々比較する比較器を含む。
又、データバッファ130は、ダブルバッファを構成するメモリ130−A,130−Bの他に、これらに関するデータ入出力を切替制御する切替スイッチ131−S1,131−S2,131−S3,131−S4が含まれる。
コンフィギュレーションメモリ120から図5(b)に示される構成を有するコンフィギュレーション情報が供給されると、その項目毎に、「バッファ使用有無」項目はバッファ使用有無レジスタ131−7に、「自動送出」項目は自動送出選択レジスタ131−8に、「入力サイズ」項目は入力サイズレジスタ131−3に、「出力サイズ」項目は出力サイズレジスタ131−5に夫々書き込まれ、これを基に、制御部131−1は以下に述べる如くの判定処理を行なう。即ち、このコンフィギュレーション情報により、処理するアプリケーションに応じて、異なる動作モードが選択設定される。
同情報中の「バッファ使用」項目が有効である場合、図5(a)のダブルバッファを構成する二つのメモリ130−A,130−B経由で、外部から、クラスタ100内部にデータが取り込まれる。「バッファ使用」項目が無効である場合、ダブルバッファを介さず、直接外部からクラスタ100内にデータが入力される。
以下、ダブルバッファ130−A,130−Bを使用する場合の動作について説明する。この場合、図5(b)のコンフィギュレーション情報中の「自動送出」項目の設定により、「自動送出モード」の有無が判定される。自動送出モードが有効な場合、該当する比較器131−2にて、コンフィギュレーション情報の「入力サイズ」項目により設定される入力サイズ情報と、データが外部から入力される側のメモリ(ここでは例えばメモリ1(130−A)とする)へのデータ入力数とを比較する。その結果実際のデータ入力数と指定された入力サイズとが一致した場合、制御部131−1は、切替スイッチ130−S1乃至S4を適宜動作させてダブルバッファの面(即ち、データ入出力を行なうメモリ130―A,130−B)を切り替え、メモリ1(130−A)から当該クラスタ内部に、それまでに同メモリに対して入力され格納されたデータを入力順に読出し出力する。このとき、メモリ2(130−B)に対してクラスタ100外部からの書き込みが可能な状態となる(この動作については、更に図23乃至25と共に後述する)。このときデータは出力サイズレジスタ131−5に書かれたデータ数だけ読出されて出力される。即ち、データがメモリ1から出力されると、それに応じてデータ出力数カウンタ1(131−6)がインクリメントされ、その計数値が比較器131−2によって出力サイズレジスタ131−5の値と比較され、一致したらメモリ1からの出力が停止される。
ここで、入力データ数は、指定された出力データサイズと等しいか或いはそれより大きい必要がある。しかしながら、ここではメモリに書き込まれたデータの先頭からデータを出力する構成としているが、この構成に限られず、出力パターンを設定するモードを追加することにより、アドレス1つ飛び、2つ飛び等、任意の出力形態を設定することも又可能である。
コンフィギュレーション情報として設定された「自動送出モード」が無効である場合、コンフィギュレーション情報により設定された「入力サイズ」情報と、データが外部から入力される側のメモリ(ここでは例えばメモリ1とする)へのデータ入力数を比較器131−2により比較し、データ入力数と指定入力サイズが一致した際、制御部131−1により、ダブルバッファ131−A,131−Bの面を切り替える(即ち、外部から書き込むメモリと、格納されたデータを読み出し内部へ取り込むメモリとを切り替える)。そしてこの場合制御部131−1は、当該クラスタ100内部に対し、所定の「バッファ内データ出力可能信号」を出力する。クラスタ内部ではこれを、メモリアクセス用のカウンタ(アドレス生成部145)で受け取り、データバッファ部135に対して読出コマンドを発行する。このとき、当該読出コマンドに含まれるメモリアドレスはクラスタ内のアドレス生成部145又は演算器150にて生成されるか、或いは当該クラスタ100内のデータメモリ140のエントリが使用され、これがデータバッファ部135に供給される。
このモードによれば、クラスタ内に、コンフィギュレーション情報によって設定された演算処理アルゴリズムの内容に応じて任意のアドレス順でデータバッファ部135からデータを取り込むことが可能となる。データは出力サイズレジスタ131−5に設定された指定データ数分が出力された段階で、上記「バッファ内データ出力可能信号」の出力を停止する。これにより、クラスタ内部からデータバッファ135に対するメモリアクセスが停止される。尚、このような方式に限られず、以下の方法を適用することも可能である。即ちクラスタ内部では取り込むデータ数を認識し(即ち、上記指定出力サイズと同じ情報を持ち)、読出コマンドを出す側で何回コマンドを出力したかをカウントし、その計数値によって読出コマンド出力を停止する。このような構成とすることにより、データバッファ135からのデータの取り込みの停止を、データを受ける側で任意に制御する方法も適用可能である。この場合、上記の如く、「バッファ内データ出力可能信号」の出力の停止を確認した後に取り込みを停止するという動作は不要となる。
また、ここで外部からクラスタ100内部へ取り込まれる入力情報が「アドレス」である場合、通常ダブルバッファ130は用いずに直接クラスタ内部に入力されることが想定される。このように入力情報の種別に応じてデータバッファ部135を経由するか否かを変更する必要があるが、このような選択は、コンフィギュレーション情報の設定により任意に指定可能である。
尚、上述の第1実施例において、各クラスタ100内のクロスバー190の動作設定は、該当するクラスタ100内のコンフィギュレーションメモリのコンフィギュレーション情報による設定に限られず、以下に説明する第3実施例における図6に示す如くグローバルシーケンサ又はCPU等によって設定されたレジスタ値によってなされる構成とすることも又可能である。
次に、本発明の第2実施例について説明する。図6は本発明の第2実施例による、多数(この例の場合9個)のクラスタ100よりなる演算装置の構成を示す。本実施例が上述の第1実施例と異なる点は、当該演算装置を構成する複数のクラスタ間相互等の電気的接続用のネットワークが、電気的配線198と配線交差部のスイッチ195とクラスタ入力部のスイッチ199とで構成されている点である。なおこの場合、クラスタ入力のスイッチ199の代わりに、クラスタ出力データ部にスイッチを設けてもよい。
図7は、上記スイッチ部195,199を構成する各スイッチエレメントの構成例を示す。同図に示す如く、各スイッチエレメント195,199は、実際の接続のオン・オフを行なう半導体スイッチ回路197と、これを制御するラッチ回路196とよりなる。ラッチ回路196に対してはコンフィギュレーションメモリ120からコンフィギュレーション情報としてのコンフィギュレーションビットが供給されて保持される。この保持されたコンフィギュレーションビットにより各スイッチエレメントの導通/非導通が制御され、その結果、図6中、配線198の交差部195又はクラスタ入力部199にて、任意の配線間の接続或いは任意の配線からのデータ取り込みの有無を設定可能となる。
これらスイッチ195,199の実際の設定は、クラスタ外部のグローバルシーケンサ、またはCPU等によって設定されるレジスタ値によって実施される。上記の如くスイッチ部の設定はラッチ回路196で保持され、ラッチ回路196へのデータ書き込みは、予め当該スイッチ回路195,199に隣接したメモリに複数のコンフィギュレーション情報を蓄えておき、上記グローバルシーケンサまたはCPUが所定の切替タイミングと切替るコンフィギュレーション情報の識別番号を出力することで実施される。これらの信号によって、上記スイッチに隣接したメモリに格納されたコンフィギュレーション情報のうちから該当するものが読出されてラッチ回路196に供給され、所望の接続切替が実行される。
第2実施例では、各クラスタ100内にはクロスバー190は不要となる。図8は、第2実施例の演算装置を構成する各クラスタ100の内部構成を示す。この場合データ又はアドレスの2系統の入力に対し、2つのデータバッファ部135が設けられる。これらのうちの各データバッファ部135の構成は第1実施例の場合と同様である。
図9は、本発明の第3実施例による、複数のクラスタよりなる再構成可能演算装置の構成を示す。同実施例が上述の第1,第2実施例と異なる点は、各クラスタ100内にあったデータバッファ部135を独立させ、データバッファクラスタ200とし、他の演算器群によるクラスタ100と同レベルに設けた点である。このようにデータバッファを他のクラスタと同レベルのクラスタ形態とすることにより、データバッファの制御も他のクラスタの制御の範疇で実施可能なため、制御アルゴリズムの単純化が可能となる。
上述の第1,第2実施例では全てのクラスタ100の各々にデータバッファ部135を設ける構成であった。この場合、任意のアプリケーションに対応しようとした場合、いずれのアプリケーションに対する処理に対して不足がないようにするため、それらのバッファ容量を大きくする必要があった。又入力系統が複数系統ある場合、それらの何れに対しても不足がないように備えようとすると、夫々の入力系統に対してデータバッファ部を設ける必要がある。但しこの場合、第1,第2実施例においても、そのうちの一部の系統のみに対してデータバッファ部を設けることも可能である。即ち入力系統数より少ない数のデータバッファ部を各クラスタ100に設け、その容量を実際に必要な系統に対して振り分ける構成とすることも可能である。このように、クラスタ100毎にデータバッファ部135を設けた場合、各データバッファ部135のバッファ容量が大きくなる傾向があるが、この問題を解決するため、第3実施例では、データバッファ部135を各クラスタ毎には設けず、一つのクラスタとして独立させる構成とした。このことにより、データバッファが有するバッファ容量を効率的に利用可能とすることが可能となる。この場合のアルゴリズムのマッピングの態様は、例えば上述の図2に示す如くのものとなる。即ち、クラスタ間同期転送の場合には該当するクラスタ間で直接データ転送を行ない、非同期転送の場合にはデータバッファクラスタ200経由のデータ転送が行なわれる。
このデータバッファクラスタ200は、データバッファ(281、図10参照)及びこのデータバッファの動作を制御するデータバッファ制御部(282)を含むデータバッファ部280と、データバッファの動作制御に関する設定情報(コンフィギュレーション情報)を格納するコンフィギュレーションメモリ220と、コンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサ210とを含む。
図10は、上記データバッファ部280(280−1,280−2)の構成を示す。データバッファ部を設けるための専用のクラスタ(単に「データバッファクラスタ」と称する)200は上記の如く、他の演算器群を収容するクラスタ100同様、データバッファ部280の状態の設定を行なうコンフィギュレーション情報を格納したコンフィギュレーションメモリ220,同メモリ220のコンフィギュレーション情報のうちから実際にデータバッファ部に対して適用する情報を指定するシーケンサ210,当該データバッファクラスタ200の内部とその外部との情報のやり取りを制御するクロスバー290を含む。
データバッファクラスタ200も他の演算器群収容クラスタ100と同レベルに設けられているため、上記の如く、クロスバー290と、シーケンサ210とコンフィギュレーションメモリ220を有し、この場合のコンフィギュレーションメモリ220のエントリはデータバッファ制御部282(データバッファ部280内)の設定のための情報と、クロスバー290の設定情報とが含まれることとなる。
この例ではデータ入力2系統、アドレス+読出コマンド入力2系統及びデータ出力2系統が設けられている。データバッファに対する読出コマンドは高々2ビットであるため、この場合最上位ビットとその下のビットとを使用し、アドレスと共にコマンドも送っている。また、この例の場合他のクラスタから送られてくるコンフィギュレーション切替条件信号はデータ入力線の上位に2ビットを付加し、これを使用している。
更にデータ出力線には「バッファ内データ出力可能信号」のための信号線を付加している。すなわち、図9,図10に示すクロスバー290はデータとアドレスだけではなく、コンフィギュレーション切替条件信号、データバッファへのアクセスコマンド及びバッファ内データ出力可能信号の伝送も行なっている。ここでデータ入力用のコンフィギュレーション切替信号とデータ出力用のバッファ内データ出力可能信号は、クラスタ外部では同じビットを共有している。これは、信号の受け取り側で、どちらの信号であるかを判断可能なためである。尚、ここでは省面積のためにこのような共用を実施しているが、別ビットを利用しても構わない。
尚、上記バッファ内データ出力可能信号とは、図5と共に説明した「バッファ内データ出力可能信号」と同機能を有する信号であり、データバッファ内に格納されたデータを取り込むクラスタ100に対し、メモリアクセスの開始、終了を指示する信号である。又、コンフィギュレーション切替条件信号とは、個々のアプリケーションの処理に係る他のクラスタ100における演算処理の過程において所定の条件合致時に発生される信号であり、当該データバッファクラスタ200の状態設定又は動作設定に関する所定の切替条件を与える信号である。
この例では制御用の3種の信号、即ちコンフィギュレーション切替条件信号、バッファ内データ出力可能信号及びアドレス+読出コマンド信号につき、データ用のクロスバー290をそのまま利用して転送しているが、この方式に限られず、別系統のネットワーク構成の適用も又可能である。
図11は、第3実施例におけるデータバッファ部280の詳細な構成を示す。この例では図5の場合と異なり、バッファ使用の有無に関するモードが無い。これは、当該データバッファクラスタ200が使用される場合には常に図5の第1実施例における「バッファ使用」モードとなるからである。その関係から、図5(a)の構成に含まれている、バイパス用スイッチ130−S3に該当するスイッチは省略されている。それ以外の基本的な動作は図5と共に説明した第1実施例の場合と同様である。
尚、図11(a)に示す各構成要素、即ち、制御部282−1,入力サイズレジスタ282−3,ダブルバッファを構成する各メモリ281−A,281−Bのそれぞれに対応するデータ入力数カウンタ1,2(282−4)、出力サイズレジスタ282−5,ダブルバッファを構成する各メモリ281−A,281−Bのそれぞれに対応するデータ出力数カウンタ1,2(282−6)及び自動送出モード選択レジスタ282−8は、夫々、図5(a)に示される制御部131−1,入力サイズレジスタ131−3,ダブルバッファを構成する各メモリ130−A,130−Bのそれぞれに対応するデータ入力数カウンタ1,2(131−4)、出力サイズレジスタ131−5,ダブルバッファを構成する各メモリ130−A,130−Bのそれぞれに対応するデータ出力数カウンタ1,2(131−6)及び自動送出モード選択レジスタ131−8に対応し、同様の機能を有するため、その説明を省略する。又、切替スイッチ281−S1,281−S2,281−S4は、夫々、図5(a)中の130−S1,130−S2,130−S4に夫々対応する。
尚この例では、自動送出モードが無効である場合、他クラスタ100からのデータバッファ読出しの開始は以下の通りになされる。即ち、「バッファ内データ出力可能信号」の立ち上がりを受け取った他のクラスタ100は、当該データバッファクラスタ200に対して「アドレス+読出コマンド」を発行する。この部分は、クラスタ内にデータバッファ部がある上記の実施例の場合と同じである。しかしながらこの実施例の場合、読出コマンドは当該他のクラスタ100側のアドレス生成部で生成されて発行される。そして当該他のクラスタ100では、メモリアクセス用のカウンタ値と、コンフィギュレーション情報により設定される所要データ数が書き込まれるレジスタ(出力サイズレジスタ283−5に相当するレジスタ)の値とを比較し、一致した段階でデータバッファクラスタ200に対する読出コマンドの発行を停止する。他の部分は図5(a)の場合と同様であるので、その説明を省略する。
図11(b)に示されるコンフィギュレーション情報は、本実施例の場合データバッファ部(280−1,280−2)が二つあるため、それらに対応した二組のコンフィギュレーション情報を含む。即ち、各データバッファ部毎に「自動送出モード有無」の設定フィールド、「入力データサイズ」情報フィールド、「出力データサイズ」情報フィールドを夫々有する。上記の如く、第1実施例の場合に設けられていた「バッファ使用の有無」の設定フィールドは不要であるため、省略されている。
また、この例ではデータバッファクラスタ200を他の複数クラスタ100の中央部分に設けてあるが、この構成とは異なり、逆にデータバッファクラスタ200を他の演算器群衆用クラスタ100の周辺部分に配置することも可能である。その場合、当該データバッファクラスタ200のデータバッファを外部メモリからのデータフェッチ用バッファとしても使用可能となる。その例は、後程第5実施例として説明する。
図12は、本発明の第4実施例による再構成可能演算装置の構成を示す。この例も上記第2の課題を解決するのに有効な構成である。ただし、図6の例同様、クラスタ間データ転送用のネットワークがクロスバーではなく、配線198とスイッチ195,199で構成されている。そしてこの例も図9の例同様、データバッファ部135を各演算器群収容クラスタ100内部ではなく、それらのクラスタ100と同じレベルにデータバッファクラスタ200を設けることで、そこに収容する構成を有する。この実施例におけるデータバッファクラスタ200の構成は、クロスバー290を含まない点を除いて上述の第3実施例の場合と同様であり、その説明を省略する。
図13は、本発明の第5実施例による再構成可能演算装置の構成を示す。この例では、演算器群収容クラスタ100、データバッファクラスタ200のほかに、外部メモリアクセス機能付きデータバッファクラスタ300を設けてある。図14は、この外部メモリアクセス機能付きデータバッファクラスタ300の内部構成を示す。このクラスタは通常のデータバッファクラスタ200として動作可能であるだけでなく、外部メモリへの読出アドレス生成及びこれに応じた外部メモリからのデータ受け取りが可能な構成を有する。したがって、図14に示す外部メモリアクセス機能付きデータバッファクラスタ300は、図10に示す通常のデータバッファクラスタ200と同様の構成を有する。図中、対応する構成要素には同一の符号を付し、その説明を省略する。但し、後述の如く、データバッファ制御部282の構成が、通常のデータバッファレジスタのものと異なり、所定の機能が追加されている。
図15に第5実施例の場合の各データバッファ部を示す。図中、図11(a)に示す構成と対応する構成要素には同一の符号を付し、その説明を省略する。図13の構成と異なるのは、データバッファ制御部282中に、外部メモリアクセス選択レジスタ282−9、ソースアドレスレジスタ282−10、アドレス計算部282−11及びフェッチサイズ計算部282−12が追加されている点である。外部メモリアクセス選択レジスタ282−9は制御用レジスタとして機能し、外部メモリにアクセスする否かを設定するためのレジスタである。ソースアドレスレジスタ282−10には、アクセスする外部メモリの、メモリ空間上での先頭アドレスが書き込まれる。このソースアドレスはメモリ空間上のアドレスなので、外部メモリだけでなく、メモリ空間にマップされている他の情報、例えば図13に示される複数のクラスタ100,200,300で構成された再構成可能演算装置の外部に存在する内部RAM等に対してもアクセス可能である。
又、フェッチサイズ計算部282−12は、入力サイズレジスタ282−3に設定されたサイズでは外部に対してアクセスできない場合、そのサイズをアクセスできるサイズに変更するためのレジスタである。例えば、入力サイズレジスタに設定されたサイズが64Bであるのに対して外部には16B単位でしかアクセスできない場合、16Bのリクエストとして発行することを可能にする(詳細後述)。アドレス計算部282−11では、最初のアドレスはソースアドレスレジスタ282−10のアドレスを出力し、その後このアドレスに対し、2回目は+16B、3回目は+32B、4回目は+48Bと、順次アドレスをインクリメントして出力する。また、逆にソースアドレスレジスタ282−10の値が示すデータの境界が中途半端な場合にも、その調整を行うことが可能である。例えば、外部に対するアクセスの最小単位が8Bであるにもかかわらずソースアドレスが8B境界に合致しない場合、これを8B境界にアラインした後に、アライン後のアドレスを出力する。
図16は、この場合の、データバッファ部毎のコンフィギュレーション情報を示す。第3実施例の場合に対し、上記外部メモリアクセス選択レジスタ282−9及びソースアドレスレジスタ282−10に対して書き込むべき情報を設定する「外部アクセス」設定フィールド、「ソースアドレス」設定フィールドが追加されている。
図17は、上記各々が演算器群を収容したクラスタ100、データバッファクラスタ200或いは外部メモリアクセス機能付きデータバッファクラスタ300よりなり互いが電気的に接続される複数のクラスタ500をCPU600によって制御する際の態様について説明するための図である。図18は、図17に示す複数のクラスタをグループ分けしてクラスタグループとする際のグループ構成例を示す。
各クラスタはマスタクラスタ又はスレーブクラスタとして機能させることが可能である。例えば、その割り当ては、CPU600等のプロセッサが有する所定のリストによって実施可能である。CPU600はマスタクラスタに対して起動をかけると共に、終了指示も与える。又、マスタクラスタからプログラム終了の割り込みが割り込み調停部700に対してなされると、割り込み調停部700はCPU600に対して割り込み信号を発生する。
各クラスタはマスタクラスタを先頭にしてクラスタグループを構成し、各クラスタグループ内で処理を行なう。クラスタグループ間のデータ転送は、例えば上記データバッファ部を介してなされる。
又、クラスタブループは任意のクラスタで構成可能であり、上記リストによって設定可能である。図19は、このリストの例を示す。この例は、ソフトウェアのリスト構造を使用した例である。ここでは各々マスタクラスタをヘッドノードとしたスレーブクラスタリスト(クラスタグループリスト)として構成されている。
図20は、上記の如くの複数クラスタによる再構成可能演算装置の動作フローを示す。先ず、CPU600側では、ステップS1にて、各クラスタのシーケンサの所定の状態テーブルに対し、処理タスクを設定する。ステップS2にてCPUが各マスタクラスタに起動を指示すると、ステップS11にてクラスタ500側では各クラスタが動作を開始する。そしてステップS12にて上記リストにて指定された各クラスタグループが動作を開始する。
CPU側ではステップS3にて、クラスタがフリーランモードにあるか否かを判定する。その結果がYesの場合、ステップS4にてクラスタに対して演算終了指示を行なう。No(通常モード)であればステップS5にて、クラスタ側から終了通知の割り込みが供給されるまで待つ。
クラスタ側では、フリーランモードの場合、ステップS13にて、クラスタグループによる演算処理を行なう。又、通常モードの場合、ステップS14にてクラスタグループによる演算処理を行ない、終了時にステップS15にてCPU側に対して終了通知を発行する。
図21は、上記クロスバー190、290に対するコンフィギュレーション情報の生成動作を示す。図中、ステップS22では複数クラスタ間のデータ転送に係るデータフローグラフを生成し、ステップS23ではこれを時間方向に分割し、ステップS24ではこのように時間方向に分割したものを更に空間方向に分割し、ステップS25では更に空間方向に再分割してクラスタ単位のデータ転送を抽出し、ステップS26ではクラスタ間に跨るデータ転送を抽出し、ステップS27では、これらの抽出情報を基に、クロスバーコンフィギュレーション情報をクラスタ毎に生成する。このような処理は、所定のアプリケーションプログラムにより、コンピュータによる演算処理で実施可能である。
図22は、上記クラスタグループ内での演算処理動作フロー及びクロスバーを含む演算器群に関するコンフィギュレーション変更処理動作フローを示す。ここでは、クラスタグループが合計3クラスタ、即ち一台のマスタクラスタと2台のスレーブクラスタとで構成されている。同図中、ステップS31では、スレーブクラスタが処理開始可能か否かを判定する。Yesの場合、ステップS32にてマスタクラスタ内のデータ処理が開始される。ステップS33ではその結果マスタクラスタ内のデータ処理が実行され、ステップS34にてこれが終了すると、ステップS35にて、次のステージの処理のために、マスタクラスタ内シーケンサにより、マスタクラスタ内のクロスバー190及び演算器群180のコンフィギュレーションの変更がなされたのち、ステップS31に戻る。
第1のスレーブクラスタではステップS41にて処理開始待ちを行ない、ステップS42にて、マスタクラスタ又は他のスレーブクラスタ(第2のスレーブクラスタ)からの所定のデータ入力駆動により処理を開始する。ステップS43にて当該処理を実行し、ステップS44にて、マスタクラスタ或いは他のスレーブクラスタからの最終データ入力により、当該クラスタの処理を終了する。ステップS45では、次のステージの処理のために、当該スレーブクラスタ内シーケンサにより、当該スレーブクラスタ内のクロスバー190及び演算器群180のコンフィギュレーションの変更がなされる。
第2のスレーブクラスタではステップS51にて処理開始待ちを行ない、ステップS52にて、マスタクラスタ又は他のスレーブクラスタ(即ち第1のスレーブクラスタ)からの所定のデータ入力駆動により処理を開始する。ステップS53にて当該処理を実行し、ステップS54にて、マスタクラスタ或いは他のスレーブクラスタからの最終データ入力により、当該クラスタの処理を終了する。ステップS55では、次のステージの処理のために、当該スレーブクラスタ内シーケンサにより、当該スレーブクラスタ内のクロスバー190及び演算器群180のコンフィギュレーションの変更がなされる。
ここではデータがマスタクラスタ、第1のスレーブクラスタ、第2のスレーブクラスタの順に流れる場合を示したが、これに限られず、その態様はコンフィギュレーション情報の設定により任意に変更可能であり、その結果データがマスタクラスタ、第2のスレーブクラスタ、第1のスレーブクラスタの順に流れるように設定することも可能であり、又、データがマスタクラスタ、第1のスレーブクラスタ、第2のスレーブクラスタ、更にマスタクラスタの順に流れる場合、即ち最終的にスレーブクラスタからマスタクラスタに最終データが戻るように設定することも又可能である。更に、クラスタ間をデータが往復するような、より複雑なデータの流れの設定も自由である。
図23は、クラスタ100内にデータバッファ部135がある場合(例えば第1実施例)のデータバッファ部135の制御フローを示す。図中、ステップS61にて「バッファ使用」モードか否かを判定し、Noの場合ステップS62にて、クラスタ内部のバッファをバイパスするスイッチをオンとする。他方Yesの場合、ステップS63にてクラスタ内部のスイッチの切替によりデータバッファを通るパスを設定する。ステップS64にて、データ入力の有無を判定し、Yesの場合ステップS65で、ダブルバッファのうちの一のメモリに対して書き込みを開始し、ステップS66にて書き込みポインタをインクリメントし、ステップS67にてデータ入力数カウンタの値を1インクリメントし、ステップS68にて入力サイズレジスタ値とデータ入力数カウンタ値とを比較し、一致すればステップS69にてデータバッファに対する入力スイッチを他のメモリ側に切り替える。
ステップS70にてデータバッファからの出力が一のメモリからとなるように切り替え、ステップS71にて「自動送出モード」か否かを判定する。他方、ステップS72では他のメモリの書き込みポインタをリセットし、ステップS73では他のメモリ用データ入力数カウンタをリセットする。、ステップS71の結果がYesの場合図24のフローに移行し、Noの場合図25のフローに移行する。
ステップS74ではデータ入力の有無を判定し、Yesの場合ステップS75にてダブルバッファのうちの他のメモリに対して書き込みを開始し、ステップS76にてその書き込みポインタをインクリメントし、ステップS77にてそのデータ入力数カウンタの値を1インクリメントし、ステップS78にて入力サイズレジスタ値とデータ入力数カウンタ値とを比較し、一致すればステップS79にてデータバッファに対する入力スイッチを一のメモリ側に切り替える。
ステップS80にてデータバッファからの出力が他のメモリからとなるように切り替え、ステップS81にて「自動送出モード」か否かを判定する。他方、ステップS82では一のメモリに対する書き込みポインタをリセットし、ステップS83では一のメモリ用データ入力数カウンタをリセットする。、ステップS71の結果がYesの場合図24のフローに移行し、Noの場合図25のフローに移行する。
ステップS71のYes又はステップS81のYesの場合、図24のステップS91に移り、ステップS70又はS80にてそこから出力されるように切り替わっているメモリからクラスタ内にデータの送出を開始する。即ち、ステップS92にて当該メモリの出力用ポインタの示すアドレスからデータを読出し、ステップS93にてポインタをインクリメントし、ステップS94にてデータ出力数カウンタをインクリメントし、ステップS95にて出力データサイズレジスタ値とデータ出力数カウンタ値とを比較する。その結果Yesの場合、ポインタをリセットし(ステップS96)、データ出力数カウンタをリセットする(ステップS97)。
他方、ステップS71のNo、又はステップS81のNoの場合、図25のステップS101に移り、バッファ内データ出力可能信号をアサートし、ステップS102にてこの信号をクラスタ内部が受信し、ステップS103にてクラスタ内部から読出コマンドとメモリアドレスとが該当するメモリ、即ち、ステップS70又はS80にてそこから出力されるように切り替わっているメモリに対して発行される。ステップS104では当該メモリはクラスタ内に対してデータを出力し、ステップS105では所要データ読出し完了か否かを判定し、完了するまでステップS103乃至S105のループを繰り返す。
図26は、データバッファ部をデータバッファクラスタとして独立して設けた実施例、即ち、第3,第4及び第5実施例におけるデータバッファクラスタの制御フローを示す。尚、データバッファ部の動作は、「バッファ使用モード」が無効の場合のバイパススイッチによる動作を除いて図23乃至図25の場合と同様であり、その説明を省略する。
図26(a)は、データバッファクラスタを含む場合の各クラスタの属性、グループ分けの例、及びマスタクラスタからデータバッファクラスタに対してコンフィギュレーション切替条件信号を送る場合を示す。
図26(b)において、ステップS111にてマスタクラスタ1で切替条件信号が発生すると、ステップS112にてマスタクラスタ1からデータバッファクラスタ0に対してこの切替条件信号が転送され、ステップS113にてマスタクラスタ1内のシーケンサにより、マスタクラスタ1のコンフィギュレーションが変更される。他方、ステップS114では、マスタクラスタ1からの切替条件信号を受信したデータバッファクラスタ0は、ステップS115にて、当該クラスタ内のシーケンサにより、データバッファクラスタ0のコンフィギュレーションが変更される。
なおここで、マスタクラスタ1からデータバッファクラスタ0へのコンフィギュレーション切替条件信号の送出はクロスバー経由で行なわれる。マスタクラスタ1内の切替条件信号がデータバッファクラスタ0へ転送され、その結果、マスタクラスタ1とデータバッファクラスタ0とは、シーケンサ内の状態テーブルの情報が一致することになる。このように、同じ切替条件信号を使用して各クラスタ内のコンフィギュレーションを互いに同期させて切り替えることが可能となる。
図27は、データバッファ部をデータバッファクラスタの形態で独立させ、更に、外部メモリ空間からのデータフェッチ機能を設けた実施例、即ち、第5実施例におけるデータバッファクラスタの制御フローを示す。尚、データバッファクラスタにおけるコンフィギュレーション切替動作は図26の場合と同様であり、その説明を省略する。又、クラスタ間のデータ転送に係るデータバッファ部の動作は、「バッファ使用モード」が無効の場合のバイパススイッチによる動作を除いて図23乃至図25の場合と同様であり、その説明を省略する。
ステップS121にて外部アクセスモードか否かを判定し、Noの場合、図23のステップS64に移行する。Yesの場合、ステップS123にて、入力サイズ設定情報から、外部に対するフェッチサイズを計算する。ステップS124では入力サイズ設定情報からデータフェッチ回数(k)を計算する。ステップS125では、リクエスト回数=0に初期化する。
ステップS126では、ソースアドレスレジスタに書き込まれたアドレスがデータフェッチ境界か否かを判定し、NoならステップS132にて、外部メモリアドレスとして、ソースアドレス値をデータフェッチサイズにアラインしたものを設定し直す。他方、Yesの場合、ステップS127にて外部アドレスとしてソースアドレス値そのものを設定し、ステップS128にて外部メモリアドレスと読出リクエストとを外部に対し出力する。
ステップS129にてリクエスト回数をインクリメントし、ステップS130にて、読出リクエスト回数値が、データフェッチ回数(k)を超えたか否かを判定する。その結果Noなら、ステップS131にて、外部メモリアドレスを、現在の値に対してデータフェッチサイズを加えたものに増加し、ステップS128に戻る。
ステップS130の結果がYesとなった場合、データフェッチを終了する。このようにして外部メモリからフェッチしたデータは当該データクラスタバッファのデータバッファに入力される。その後、他のクラスタから読出コマンドが発行され、フェッチされたデータが当該他のクラスタに取り込まれることになる。このうち外部からデータがデータバッファへ入力される処理以降の処理は図23のステップS64以降と同様であるため、その説明を省略する。
本発明は以下の付記に記載の構成を含む。
(付記1)
複数の同時動作可能な演算器と、
当該複数の演算器の状態を制御するシーケンサと、
演算器の状態毎の設定情報としてのコンフィギュレーション情報を格納するコンフィギュレーションメモリとよりなる演算装置であって、
演算器に対してデータを入力する際に、データバッファを介すパスと、介さないパスとを設け、
前記二つのパスの選択及びデータバッファの動作を制御するデータバッファ制御部を設けてなり、
データバッファ制御部によるパスの選択及びデータバッファの動作制御の内容は、コンフィギュレーションメモリに格納されたコンフィギュレーション情報によって設定される構成とされてなる演算装置。
(付記2)
更に、所定の記憶装置を含む付記1に記載の演算装置。
(付記3)
更に、演算器間の電気的接続を切り替えるネットワークよりなる付記1又は2に記載の演算装置。
(付記4)
シーケンサは、コンフィギュレーションメモリに格納されたコンフィギュレーション情報のアドレスを指定する情報を格納した状態テーブルと、コンフィギュレーションメモリに対して状態テーブルから出力するアドレスを読み出す状態制御部とよりなる付記1乃至3の内の何れか一項に記載の演算装置。
(付記5)
更に外部からコンフィギュレーション情報を取り込む手段を有する付記1乃至4の内の何れか一項に記載の演算装置。
(付記6)
前記データバッファ制御部によるデータバッファの動作制御の内容は、動作モード及び動作パラメータによって制御される構成とされてなる付記1乃至5の内の何れか一項に記載の演算装置。
(付記7)
前記データバッファ制御部による制御内容は、シーケンサにより、状態毎に切替可能な構成とされてなる付記1乃至6のうちの何れか一項に記載の演算装置。
(付記8)
データバッファ制御部を制御するためのコンフィギュレーション情報として、データバッファの使用の有無を設定する情報を設けてなる付記1乃至7のうちの何れか一項に記載の演算装置。
(付記9)
前記データバッファはダブルバッファの構成を有し、
データバッファを制御するコンフィギュレーション情報にてデータバッファを構成する各メモリ当たりの書き込みデータサイズを指定し、
外部からの入力データサイズが当該指定の書き込みデータサイズと一致した場合に、ダブルバッファのメモリを切り替え、それまで外部から書き込まれていたメモリから内部にデータを取り込む構成とされてなる付記1乃至8のうちの何れか一項に記載の演算装置。
(付記10)
前記入力が完了したデータバッファのメモリから入力されたデータを自動的に演算器又は記憶装置に対して取り込む構成とされ、
その取り込むデータ数は、コンフィギュレーション情報にて指定されたデータサイズ分とされてなる付記9に記載の演算装置。
(付記11)
データバッファへの入力が完了した際に演算器に対してデータ出力可能信号を出力し、演算器からデータバッファに対して、読出アドレスと読出コマンドとを発行することにより、データ取り込みを制御可能な構成とされてなる付記9に記載の演算装置。
(付記12)
前記入力が完了したデータバッファのメモリから入力されたデータを自動的に演算器又は記憶装置に対して取り込む構成とし、その取り込むデータ数は、コンフィギュレーション情報にて指定されたデータサイズ分とするモードと、データバッファへの入力が完了した際に演算器に対してデータ出力可能信号を出力し、演算器からデータバッファに対して、読出アドレスと読出コマンドとを発行することにより、データ取り込みを制御可能とするモードとのモード切替が、コンフィギュレーション情報の設定によりなされる構成とされてなる付記9に記載の演算装置。
(付記13)
前記演算装置の構成を有するモジュールを複数含み、各モジュール間のデータ転送はデータバッファ制御部にて制御されるデータバッファを介して実施され、各モジュールに含まれるコンフィギュレーションメモリ内のコンフィギュレーション情報にて制御され、データバッファ使用の有無が設定され留構成の付記1乃至12の内の何れか一項に記載の演算装置。
(付記14)
各モジュールはクロスバーを有し、モジュール間のデータ転送が当該クロスバーにより実現され、各モジュールの入出力データが当該クロスバーに接続されると共に、隣接する他構成モジュール間のデータ転送をも実施可能な構成とされてなり、クロスバーの設定情報は、該当モジュール内のコンフィギュレーションメモリ内の情報により実施され、、その設定の切替が当該モジュール内のシーケンサにより制御される構成とされてなる付記13に記載の演算装置。
(付記15)
各モジュールの入力および出力が、モジュール間接続配線にスイッチを設けて切り替え可能に実施され、
当該スイッチの設定は、コンフィギュレーションメモリに設定された情報が当該モジュールの外部に設けた制御部あるいはCPUにより、別途設定されたコンフィギュレーション選択情報に応じて選択され、当該設定情報がスイッチ内の一時記憶回路に書き込まれることにより、その接続が切り替え可能な構成とされてなる付記13に記載の演算装置。
(付記16)
データバッファと、
当該データバッファの動作を制御するデータバッファ制御部と、
当該データバッファの動作制御に関する設定情報を格納するコンフィギュレーションメモリと、
当該コンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサとより構成されることを特徴とするデータバッファ装置。
(付記17)
複数の同時動作可能な演算器、演算器の状態毎の設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することで演算器の状態を制御するシーケンサよりなる演算器モジュールと、
データバッファ、データバッファの動作を制御するデータバッファ制御部、データバッファの動作制御に関する設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサよりなるデータバッファモジュールとよりなり、
前記演算器モジュールと前記データバッファモジュールとを各々一以上設けてなる演算装置。
(付記18)
前記データバッファモジュール内のデータバッファ制御部は、ダブルバッファ構成を有するデータバッファを有し、データバッファ制御部を制御するためのコンフィギュレーション情報として、データバッファの一メモリ当たりに書き込むデータサイズ、そのデータバッファから外部に出力するデータサイズを設け、
ダブルバッファへの外部から入力されるデータサイズが、コンフィギュレーション情報に記載された情報である入力データサイズと一致した際に、当該ダブルバッファのメモリを切り替え、それまで外部から書き込んでいたメモリから外部にデータを出力する構成とされてなる付記17に記載の演算装置。
(付記19)
前記データバッファモジュールのデータバッファ制御部では、データバッファの入力が完了したメモリからデータを自動的に演算器モジュールに対して送り込む機能を有してなり、その出力データ数は、当該データバッファ制御部を有するモジュール内のコンフィギュレーションメモリ内のコンフィギュレーション情報として設定された出力データサイズで設定された分だけとされてなる付記17に記載の演算装置。
(付記20)
データバッファモジュールのデータバッファ制御部では、データバッファへの入力が完了した際に演算器モジュールに対してデータ出力可能信号を出力し、データ出力可能信号を受け取った演算器モジュールから当該データバッファモジュールに対して読出しアドレスと読出しコマンドとを発行することにより、データ取り込みを制御可能な構成とされてなる付記17に記載の演算装置。
(付記21)
データバッファモジュールのデータバッファ制御部では、前記入力が完了したデータバッファのメモリから入力されたデータを自動的に演算器モジュールに送出する構成とされ、その送出するデータ数は、コンフィギュレーション情報にて指定されたデータサイズ分とされるモードと、データバッファへの入力が完了した際に演算器モジュールに対してデータ出力可能信号を出力し、演算器モジュールからデータバッファモジュールに対して、読出アドレスと読出コマンドとを発行することにより、データ取り込みを制御可能とするモードとのモード切替が、コンフィギュレーション情報の設定により可能な構成とされてなる付記17に記載の演算装置。
(付記22)
データバッファモジュールが、外部メモリ空間からデータを取り込む機能を有してなり、データバッファとそのデータバッファの動作を制御するデータバッファ制御部を有し、データバッファの動作の設定情報を格納するコンフィギュレーションメモリを有し、シーケンサにより、データバッファの構成が各状態毎に切り替え可能とされてなり、コンフィギュレーション情報としてアクセス先の外部メモリ空間内のアドレス情報及び取り込むデータサイズを設け、その情報により外部に対して読出アドレスと読出リクエストとを発行する機能を有する構成とされてなる付記17に記載の演算装置。
(付記23)
データバッファモジュールは、外部メモリ空間からデータを取り込む機能を有してなり、データバッファとそのデータバッファの動作を制御するデータバッファ制御部を有し、データバッファの動作の設定情報を格納するコンフィギュレーションメモリを有し、シーケンサにより、データバッファの構成が各状態毎に切り替え可能とされてなり、コンフィギュレーション情報として、アクセス先の外部メモリ空間内のアドレス情報及び取り込むデータサイズとを設け、その情報により外部に対して読出アドレスと読出リクエストとを発行する機能を有する構成とされてなり、
コンフィギュレーション情報により、外部からデータを取り込むモードと、内部の他のモジュールからデータを転送するモードとを切り替え可能とされてなる付記17乃至21のうちの何れか一項に記載の演算装置。
(付記24)
データバッファモジュールは、外部アクセス可能なデータサイズと読み出すデータサイズとが異なるとき、外部に出力するアドレスを計算するアドレス計算部と、外部に出力するデータフェッチサイズを調整するデータフェッチサイズ計算部とを有する構成とされてなる付記23に記載の演算装置。
(付記25)
複数の同時動作可能な演算器と、当該複数の演算器の状態を制御するシーケンサと、演算器の状態毎の設定情報としてのコンフィギュレーション情報を格納するコンフィギュレーションメモリとよりなる演算装置の制御方法であって、
演算器に対してデータを入力する際に、所定のデータバッファを介するパスと、介さないパスとを設ける段階と
前記二つのパスの選択及びデータバッファの動作を制御する段階と、
前記パスの選択及びデータバッファの動作制御の内容を、コンフィギュレーションメモリに格納されたコンフィギュレーション情報によって設定する段階とよりなる演算装置の制御方法。
(付記26)
更にコンフィギュレーション情報にてデータバッファの使用の有無を設定する段階よりなる付記25に記載の演算装置の制御方法。
(付記27)
更にコンフィギュレーション情報にてダブルバッファの構成を有するデータバッファを構成する各メモリ当たりの書き込みデータサイズを指定する段階と、
外部からの入力データサイズが当該指定の書き込みデータサイズと一致した場合に、ダブルバッファのメモリを切り替え、それまで外部から書き込んでいたメモリから内部にデータを取り込む段階とよりなる付記25又は26に記載の演算装置の制御方法。
(付記28)
更に前記入力が完了したデータバッファのメモリから入力されたデータを自動的に演算器又は記憶装置に対して取り込む段階と、
その取り込むデータ数を、コンフィギュレーション情報にて指定されたデータサイズ分とする段階とよりなる付記27に記載の演算装置の制御方法。
(付記29)
データバッファへの入力が完了した際に演算器に対してデータ出力可能信号を出力し、演算器からデータバッファに対して、読出アドレスと読出しコマンドとを発行することにより、データ取り込みを制御する段階よりなる付記27に記載の演算装置の制御方法。
(付記30)
前記入力が完了したデータバッファのメモリから入力されたデータを自動的に演算器又は記憶装置に対して取り込む構成とされ、その取り込むデータ数は、コンフィギュレーション情報にて指定されたデータサイズ分とされるモードと、データバッファへの入力が完了した際に演算器に対してデータ出力可能信号を出力し、演算器からデータバッファに対して、読出アドレスと読出コマンドとを発行することにより、データ取り込みを制御可能とするモードとのモード切替を、コンフィギュレーション情報の設定により行なう段階よりなる付記27に記載の演算装置の制御方法。
(付記31)
前記演算装置の構成を有するモジュールを複数含む演算装置の制御方法であって、
各モジュール間のデータ転送をデータバッファを介して実施する段階と、
各モジュールに含まれるコンフィギュレーションメモリ内のコンフィギュレーション情報にて当該データ転送の制御内容を設定する段階とより、
前記データ転送制御内容を設定する段階では、データバッファの使用の有無を設定可能とされてなる付記27乃至30のうちの何れか一項に記載の演算装置の制御方法。
(付記32)
複数の同時動作可能な演算器、演算器の状態毎の設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することで演算器の状態を制御するシーケンサよりなる演算器モジュールと、データバッファ、データバッファの動作を制御するデータバッファ制御部、データバッファの動作制御に関する設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサよりなるデータバッファモジュールとよりなり、前記演算器モジュールと前記データバッファモジュールとを各々一以上設けてなる演算装置の制御方法であって、
コンフィギュレーション情報にて前記データバッファモジュール内のデータバッファ制御部が有するダブルバッファ構成を有するデータバッファの一メモリ当たりに書き込むデータサイズ及びデータバッファから外部に出力するデータサイズとを設定する段階と、
ダブルバッファへの外部からの入力データサイズが、コンフィギュレーション情報に記載された情報である入力データサイズと一致した際に、当該ダブルバッファのメモリを切り替え、それまで外部から書き込んでいたメモリから外部にデータを出力する段階とよりなる演算装置の制御方法。
(付記33)
ダブルバッファ構成を有するデータバッファの入力が完了したメモリからデータを自動的に演算器モジュールに対して送り込む段階と、
その際の出力データ数を、当該データバッファ制御部を有するモジュール内のコンフィギュレーションメモリ内のコンフィギュレーション情報として設定された出力データサイズで設定された分だけとする段階とよりなる付記31に記載の演算装置の制御方法。
(付記34)
データバッファモジュールのデータバッファ制御部では、データバッファへの入力が完了した際に演算器モジュールに対してデータ出力可能信号を出力し、データ出力可能信号を受け取った演算器モジュールから当該データバッファモジュールに対して読出アドレスと読出コマンドとを発行することにより、データ取り込みを制御可能な構成とされてなる付記32に記載の演算装置の制御方法。
(付記35)
前記入力が完了したデータバッファのメモリから入力されたデータを自動的に演算器モジュールに送出する構成とされ、その送出するデータ数は、コンフィギュレーション情報にて指定されたデータサイズ分とされるモードと、データバッファへの入力が完了した際に演算器モジュールに対してデータ出力可能信号を出力し、演算器モジュールからデータバッファモジュールに対して、読出アドレスと読出コマンドとを発行することにより、データ取り込みを制御可能とするモードとのモード切替を、コンフィギュレーション情報の設定により行なう段階よりなる付記32に記載の演算装置の制御方法。
(付記36)
データバッファモジュールが外部メモリ空間からデータを取り込む機能を有し、
データバッファの状態とそのデータバッファの動作とを制御する段階と、
データバッファの動作の設定情報を格納するコンフィギュレーションメモリのコンフィギュレーション情報として、アクセス先の外部メモリ空間内のアドレス情報及び取り込むデータサイズとを設定する段階と、
その情報により外部に対して読出アドレスと読出リクエストとを発行する段階とよりなる付記32乃至36のうちの何れか一項に記載の演算装置の制御方法。
(付記37)
データバッファモジュールにて、外部アクセス可能なデータサイズと読み出すデータサイズとが異なるとき、外部に出力するアドレスを計算する段階と、
外部に出力するデータフェッチサイズを調整する段階とよりなる付記36に記載の演算装置の制御方法。
(付記38)
複数の同時動作可能な演算器と、当該複数の演算器の状態を制御するシーケンサと、演算器の状態毎の設定情報としてのコンフィギュレーション情報を格納するコンフィギュレーションメモリとよりなる演算装置をコンピュータにて制御するためのプログラムであって、
演算器に対してデータを入力する際に、所定のデータバッファを介するパスと、介さないパスとを設ける段階と
前記二つのパスの選択及びデータバッファの動作を制御する段階と、
前記パスの選択及びデータバッファの動作制御の内容を、コンフィギュレーションメモリに格納されたコンフィギュレーション情報によって設定する段階とをコンピュータに実行させるための命令よりなるプログラム。
(付記39)
複数の同時動作可能な演算器、演算器の状態毎の設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することで演算器の状態を制御するシーケンサよりなる演算器モジュールと、データバッファ、データバッファの動作を制御するデータバッファ制御部、データバッファの動作制御に関する設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサよりなるデータバッファモジュールとよりなり、前記演算器モジュールと前記データバッファモジュールとを各々一以上設けてなる演算装置をコンピュータにて制御するためのプログラムであって、
コンフィギュレーション情報にて前記データバッファモジュール内のデータバッファ制御部が有するダブルバッファ構成を有するデータバッファの一メモリ当たりに書き込むデータサイズ及びデータバッファから外部に出力するデータサイズとを設定する段階と、
ダブルバッファへの外部からの入力データサイズが、コンフィギュレーション情報に記載された情報である入力データサイズと一致した際に、当該ダブルバッファのメモリを切り替え、それまで外部から書き込んでいたメモリから外部にデータを出力する段階とをコンピュータに実行させるための命令よりなるプログラム。
(付記40)
付記38又は39に記載のプログラムが格納されたコンピュータ読取り可能記録媒体。
本発明の実施の形態による再構成可能演算装置(クラスタ)のブロック図である。 本発明の実施の形態によるクラスタ間データ転送方法の説明図である。 本発明の第1実施例による複数クラスタ構成演算装置のブロック図である。 図3に示す実施例における各クラスタの内部構成を示すブロック図である。 図3に示す実施例におけるデータバッファ部の内部構成を示すブロック図及びデータバッファ部に入力されるコンフィギュレーション情報の説明図である。 本発明の第2実施例による複数クラスタ構成演算装置のブロック図である。 図6に示す実施例におけるスイッチの構成について説明するための図である。 図6に示す実施例における各クラスタの内部構成を示すブロック図である。 本発明の第3実施例による複数クラスタ構成演算装置のブロック図である。 図9に示す実施例におけるデータバッファクラスタの内部構成を示すブロック図である。 図9に示す実施例におけるデータバッファ部の内部構成を示すブロック図及びデータバッファ部に入力されるコンフィギュレーション情報の説明図である。 本発明の第4実施例による複数クラスタ構成演算装置のブロック図である。 本発明の第5実施例による複数クラスタ構成演算装置のブロック図である。 図13に示す実施例におけるデータバッファクラスタの内部構成を示すブロック図である。 本発明の第3実施例におけるデータバッファ部の内部構成を示すブロック図である。 図15に示すデータバッファ部に入力されるコンフィギュレーション情報の説明図である。 本発明の実施の形態による複数クラスタのCPUによる制御方法を説明するための図である。 図17の方法におけるクラスタグループの構成例を示す図である。 クラスタブループを設定するクラスタリストの例を示す図である。 本発明の実施の形態による複数クラスタのCPUによる制御動作のフローチャートである。 本発明の実施の形態によるクロスバー設定情報の生成方法を示すフローチャートである。 本発明の実施の形態によるクラスタグループ内の演算処理動作及びクロスバーを含む演算器群のコンフィギュレーション変更処理動作のフローチャートである。 本発明の実施の形態による、クラスタ内にデータバッファ部がある場合のデータバッファ部の制御動作のフローチャート(その1)である。 本発明の実施の形態による、クラスタ内にデータバッファ部がある場合のデータバッファ部の制御動作のフローチャート(その2)である。 本発明の実施の形態による、クラスタ内にデータバッファ部がある場合のデータバッファ部の制御動作のフローチャート(その3)である。 本発明の実施の形態による、データバッファクラスタが独立して設けられた場合のデータバッファ部の制御動作のフローチャートである。 本発明の実施の形態による、データバッファクラスタが独立して設けられ且つ外部メモリ空間からのデータフェッチ機能を設けた場合のデータバッファ部の制御動作のフローチャートである。
符号の説明
100 再構成可能演算装置(クラスタ)
110、210 シーケンサ
120、220 コンフィギュレーションメモリ
130 データバッファ(ダブルバッファ)
135、280 データバッファ部
131 データバッファ制御部
150 演算器
180 演算器群
190,290 クロスバー
195,199 スイッチ
200 データバッファクラスタ
300 外部メモリフェッチ機能付きデータバッファクラスタ

Claims (10)

  1. 複数の同時動作可能な演算器と、
    当該複数の演算器の状態を制御するシーケンサと、
    演算器の状態毎の設定情報としてのコンフィギュレーション情報を格納するコンフィギュレーションメモリとよりなる演算装置であって、
    演算器に対してデータを入力する際に、データバッファを介するパスと、介さないパスとを設け、
    前記二つのパスの選択及びデータバッファの動作を制御するデータバッファ制御部を設けてなり、
    データバッファ制御部によるパスの選択及びデータバッファの動作制御の内容はコンフィギュレーション情報によって設定される構成とされてなる演算装置。
  2. 前記演算装置の構成を有するモジュールを複数含み、 各モジュールはクロスバーを有し、モジュール間のデータ転送が当該クロスバー間のデータ転送で実施され、各モジュールの入出力データが当該クロスバーに接続されると共に、隣接する他構成モジュール間のデータ転送をも実施可能な構成とされてなり、クロスバーの設定情報は、該当モジュール内のコンフィギュレーションメモリ内の情報により実施され、、その設定の切替が当該モジュール内のシーケンサにより制御される構成とされてなる請求項1に記載の演算装置。
  3. 前記演算装置の構成を有するモジュールを複数含み、各モジュール間のデータ転送は前記データバッファ制御部にて制御されるデータバッファを介して実施され、各モジュールに含まれるコンフィギュレーションメモリ内のコンフィギュレーション情報にて制御され、データバッファ使用の有無が設定可能とされてなる請求項1に記載の演算装置。
  4. データバッファと、
    当該データバッファの動作を制御するデータバッファ制御部と、
    当該データバッファの動作制御に関する設定情報を格納するコンフィギュレーションメモリと、
    当該コンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサとより構成されることを特徴とするデータバッファ装置。
  5. 複数の同時動作可能な演算器、演算器の状態毎の設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することで演算器の状態を制御するシーケンサよりなる演算器モジュールと、
    データバッファ、データバッファの動作を制御するデータバッファ制御部、データバッファの動作制御に関する設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサよりなるデータバッファモジュールとよりなり、
    前記演算器モジュールと前記データバッファモジュールとを、各々一以上設けてなる演算装置。
  6. 複数の同時動作可能な演算器と、当該複数の演算器の状態を制御するシーケンサと、演算器の状態毎の設定情報としてのコンフィギュレーション情報を格納するコンフィギュレーションメモリとよりなる演算装置の制御方法であって、
    演算器に対してデータを入力する際に、データバッファを介するパスと、介さないパスとを設ける段階と
    前記二つのパスの選択及びデータバッファの動作を制御する段階と、
    前記パスの選択及びデータバッファの動作制御の内容を、コンフィギュレーションメモリに格納されたコンフィギュレーション情報によって設定する段階とよりなる演算装置の制御方法。
  7. 複数の同時動作可能な演算器、演算器の状態毎の設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することで演算器の状態を制御するシーケンサよりなる演算器モジュールと、データバッファ、データバッファの動作を制御するデータバッファ制御部、データバッファの動作制御に関する設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサよりなるデータバッファモジュールとよりなり、前記演算器モジュールと前記データバッファモジュールとを各々一以上設けてなる演算装置の制御方法であって、
    コンフィギュレーション情報にて前記データバッファモジュール内のデータバッファ制御部が有するダブルバッファ構成のデータバッファの一メモリ当たりに書き込むデータサイズ及びデータバッファから出力するデータサイズを設定する段階と、
    ダブルバッファへの外部からの入力データサイズが、コンフィギュレーション情報に記載された情報である入力データサイズと一致した際に、当該ダブルバッファのメモリを切り替え、それまで外部から書き込んでいたメモリからデータを出力する段階とよりなる演算装置の制御方法。
  8. 複数の同時動作可能な演算器と、当該複数の演算器の状態を制御するシーケンサと、演算器の状態毎の設定情報としてのコンフィギュレーション情報を格納するコンフィギュレーションメモリとよりなる演算装置をコンピュータにて制御するためのプログラムであって、
    演算器に対してデータを入力する際に、所定のデータバッファを介するパスと、介さないパスとを設ける段階と
    前記二つのパスの選択及びデータバッファの動作を制御する段階と、
    前記パスの選択及びデータバッファの動作制御の内容を、コンフィギュレーションメモリに格納されたコンフィギュレーション情報によって設定する段階とをコンピュータに実行させるための命令よりなるプログラム。
  9. 複数の同時動作可能な演算器、演算器の状態毎の設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することで演算器の状態を制御するシーケンサよりなる演算器モジュールと、データバッファ、データバッファの動作を制御するデータバッファ制御部、データバッファの動作制御に関する設定情報を格納するコンフィギュレーションメモリ及びコンフィギュレーションメモリに格納された情報を指定することによりデータバッファ制御部の状態を切替制御するシーケンサよりなるデータバッファモジュールとよりなり、前記演算器モジュールと前記データバッファモジュールとを各々一以上設けてなる演算装置をコンピュータにて制御するためのプログラムであって、
    コンフィギュレーション情報にて前記データバッファモジュール内のデータバッファ制御部が有するダブルバッファ構成のデータバッファの一メモリ当たりに書き込むデータサイズ及びデータバッファから出力するデータサイズを設定する段階と、
    ダブルバッファへの外部からの入力データサイズが、コンフィギュレーション情報に記載された情報である入力データサイズと一致した際に、当該ダブルバッファのメモリを切り替え、それまで外部から書き込んでいたメモリからデータを出力する段階とをコンピュータに実行させるための命令よりなるプログラム。
  10. 請求項8又は9に記載のプログラムが格納されたコンピュータ読取り可能記録媒体。
JP2004194797A 2004-06-30 2004-06-30 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 Expired - Fee Related JP4547198B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2004194797A JP4547198B2 (ja) 2004-06-30 2004-06-30 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
EP09167857A EP2116938B1 (en) 2004-06-30 2004-10-19 Operation apparatus and control method
DE602004030778T DE602004030778D1 (de) 2004-06-30 2004-10-19 Operationsgerät und Kontrollverfahren
EP04256436A EP1615143B1 (en) 2004-06-30 2004-10-19 Operation apparatus and control method
US10/973,094 US7822888B2 (en) 2004-06-30 2004-10-26 Data buffer control which controls selection of path and operation of data buffer, based on stored configuration information
KR1020040087205A KR100711082B1 (ko) 2004-06-30 2004-10-29 연산 장치, 연산 장치의 제어 방법 및 컴퓨터로 판독가능한 기록 매체
CNB2004100866157A CN100399317C (zh) 2004-06-30 2004-10-29 操作装置及操作装置控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004194797A JP4547198B2 (ja) 2004-06-30 2004-06-30 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体

Publications (2)

Publication Number Publication Date
JP2006018514A true JP2006018514A (ja) 2006-01-19
JP4547198B2 JP4547198B2 (ja) 2010-09-22

Family

ID=35134686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004194797A Expired - Fee Related JP4547198B2 (ja) 2004-06-30 2004-06-30 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体

Country Status (6)

Country Link
US (1) US7822888B2 (ja)
EP (2) EP1615143B1 (ja)
JP (1) JP4547198B2 (ja)
KR (1) KR100711082B1 (ja)
CN (1) CN100399317C (ja)
DE (1) DE602004030778D1 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302132A (ja) * 2005-04-22 2006-11-02 Yaskawa Electric Corp 信号処理装置及び再構成可能論理回路装置及び再構成可能順序回路
JP2008090360A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd 集積回路及びリコンフィギュラブル回路の入力データ制御方法
JP2009020797A (ja) * 2007-07-13 2009-01-29 Hitachi Ltd 並列計算機システム
JP2009140514A (ja) * 2009-01-26 2009-06-25 Toshiba Corp 半導体装置
WO2009081593A1 (ja) * 2007-12-26 2009-07-02 Softbank Mobile Corp. 通信端末、通信方法および通信プログラム
JP2009541853A (ja) * 2006-06-21 2009-11-26 エレメント シーエックスアイ,エルエルシー フォールト・トレランスを有する集積回路アーキテクチャ
JP2010026599A (ja) * 2008-07-15 2010-02-04 Fujitsu Microelectronics Ltd 設計プログラム、設計装置、および設計方法
US8171259B2 (en) 2008-06-19 2012-05-01 Fujitsu Semiconductor Limited Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal
WO2013102970A1 (ja) * 2012-01-04 2013-07-11 日本電気株式会社 データ処理装置、及びデータ処理方法
US8631173B2 (en) 2007-03-28 2014-01-14 Kabushiki Kaisha Toshiba Semiconductor device
US9552328B2 (en) 2011-06-30 2017-01-24 Socionext Inc. Reconfigurable integrated circuit device
JP2019109892A (ja) * 2017-12-19 2019-07-04 三星電子株式会社Samsung Electronics Co.,Ltd. 計算のためのシステムと方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
EP2188894B1 (en) * 2007-09-13 2017-10-18 Friedrich-Alexander-Universität Erlangen-Nürnberg Logic chip, logic system and method for designing a logic chip
EP2172927A1 (en) * 2008-10-02 2010-04-07 Telefonaktiebolaget LM Ericsson (PUBL) Method and computer program for operation of a multi-buffer graphics memory refresh, multi-buffer graphics memory arrangement and communication apparatus
KR20100085564A (ko) * 2009-01-21 2010-07-29 삼성전자주식회사 데이터 처리 시스템과 데이터 처리 방법
JP5287975B2 (ja) * 2009-03-09 2013-09-11 富士通株式会社 情報処理装置
US9098383B1 (en) * 2009-09-23 2015-08-04 Nvidia Corporation Consolidated crossbar that supports a multitude of traffic types
US8688901B2 (en) * 2009-12-08 2014-04-01 Intel Corporation Reconfigurable load-reduced memory buffer
WO2012124117A1 (ja) * 2011-03-17 2012-09-20 富士通株式会社 タイミングエラー除去方法、設計支援装置、及びプログラム
US8416113B1 (en) * 2012-04-06 2013-04-09 Cypress Semiconductor Corporation Integrated circuit device with programmable blocks and analog circuit control
US9658793B2 (en) * 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
US10217859B2 (en) * 2016-10-12 2019-02-26 Fuji Electric Co., Ltd. Semiconductor device
JP2018064026A (ja) * 2016-10-12 2018-04-19 富士電機株式会社 半導体装置
CN109245908B (zh) * 2017-07-10 2022-04-26 北京京东尚科信息技术有限公司 一种主从集群切换的方法和装置
US11495195B2 (en) * 2020-07-31 2022-11-08 Alphascale Technologies, Inc. Apparatus and method for data transfer in display images unto LED panels
TWI762274B (zh) * 2021-04-19 2022-04-21 群聯電子股份有限公司 電路參數調整系統、方法及主機系統
CN113206683A (zh) * 2021-04-27 2021-08-03 群联电子股份有限公司 电路参数调整系统、方法及主机系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265981A (ja) * 1992-03-17 1993-10-15 Fujitsu Ltd 初期プログラムロード方式
JPH07282025A (ja) * 1994-04-05 1995-10-27 Internatl Business Mach Corp <Ibm> クロック回路
JPH07319830A (ja) * 1994-05-20 1995-12-08 Matsushita Electric Ind Co Ltd データ転送方法およびデータ転送装置並びにコンパイル方法
US5699530A (en) * 1995-10-03 1997-12-16 Intel Corporation Circular RAM-based first-in/first-out buffer employing interleaved storage locations and cross pointers
US5828475A (en) * 1995-10-25 1998-10-27 Mcdata Corporation Bypass switching and messaging mechanism for providing intermix data transfer for a fiber optic switch using a bypass bus and buffer
JP2000148695A (ja) * 1998-11-09 2000-05-30 Mitsubishi Electric Corp 幾何学処理プロセッサ、浮動小数点べき乗計算装置およびデータの出力制御装置
WO2000051005A1 (fr) * 1999-02-23 2000-08-31 Hitachi, Ltd. Circuit integre et dispositif de traitement d'informations
US6275975B1 (en) * 1997-01-16 2001-08-14 Advanced Micro Devices, Inc. Scalable mesh architecture with reconfigurable paths for an on-chip data transfer network incorporating a network configuration manager
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ
JP2003196226A (ja) * 2001-12-07 2003-07-11 Hitachi Ltd コンピュータ・システム・コンポーネント
JP2003345512A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ディスク制御装置
WO2004017223A2 (en) * 2002-08-16 2004-02-26 Carnegie Mellon University Programmable pipeline fabric utilizing partially global configuration buses

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3532481A1 (de) * 1985-09-12 1987-03-19 Philips Patentverwaltung Datenverarbeitungsanordnung
EP0314227A3 (en) * 1987-10-30 1991-03-20 Koninklijke Philips Electronics N.V. Wideband single-ended voltage-to current converter and gain-control circuit
FR2623349A1 (fr) * 1987-11-18 1989-05-19 Alcatel Thomson Faisceaux Dispositif de retard d'au moins un train de donnees binaires a haut debit
US5179662A (en) * 1989-08-31 1993-01-12 International Business Machines Corporation Optimized i/o buffers having the ability to increase or decrease in size to meet system requirements
US5261064A (en) * 1989-10-03 1993-11-09 Advanced Micro Devices, Inc. Burst access memory
DE68925696D1 (de) * 1989-12-22 1996-03-28 Ibm Elastischer konfigurierbarer Pufferspeicher zum Puffern von asynchronen Daten
JPH04260254A (ja) * 1991-02-15 1992-09-16 Fujitsu Ltd Hdlc非同期モードのディジタルデータ転送方式
IL100127A0 (en) * 1991-03-11 1992-08-18 Future Domain Corp Scsi controller
JPH05108586A (ja) 1991-10-18 1993-04-30 Hitachi Ltd 並列演算機構及び並列演算方法
IL99946A (en) * 1991-11-03 1995-12-31 Or Gil Computerized Medical Sy Apparatus for determination of auditory threshold to intelligible speech
US5617549A (en) * 1992-10-06 1997-04-01 Hewlett-Packard Co System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
JPH0981508A (ja) * 1995-08-31 1997-03-28 Internatl Business Mach Corp <Ibm> 通信方法及び装置
WO1999066392A1 (en) * 1998-06-17 1999-12-23 Nokia Networks Oy An interface apparatus for connecting devices operating at different clock rates, and a method of operating the interface
JP3987783B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
JP2004194797A (ja) 2002-12-17 2004-07-15 Dainippon Printing Co Ltd 電子レンジ加熱用容器

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265981A (ja) * 1992-03-17 1993-10-15 Fujitsu Ltd 初期プログラムロード方式
JPH07282025A (ja) * 1994-04-05 1995-10-27 Internatl Business Mach Corp <Ibm> クロック回路
JPH07319830A (ja) * 1994-05-20 1995-12-08 Matsushita Electric Ind Co Ltd データ転送方法およびデータ転送装置並びにコンパイル方法
US5699530A (en) * 1995-10-03 1997-12-16 Intel Corporation Circular RAM-based first-in/first-out buffer employing interleaved storage locations and cross pointers
US5828475A (en) * 1995-10-25 1998-10-27 Mcdata Corporation Bypass switching and messaging mechanism for providing intermix data transfer for a fiber optic switch using a bypass bus and buffer
US6275975B1 (en) * 1997-01-16 2001-08-14 Advanced Micro Devices, Inc. Scalable mesh architecture with reconfigurable paths for an on-chip data transfer network incorporating a network configuration manager
JP2000148695A (ja) * 1998-11-09 2000-05-30 Mitsubishi Electric Corp 幾何学処理プロセッサ、浮動小数点べき乗計算装置およびデータの出力制御装置
WO2000051005A1 (fr) * 1999-02-23 2000-08-31 Hitachi, Ltd. Circuit integre et dispositif de traitement d'informations
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ
JP2003196226A (ja) * 2001-12-07 2003-07-11 Hitachi Ltd コンピュータ・システム・コンポーネント
JP2003345512A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ディスク制御装置
WO2004017223A2 (en) * 2002-08-16 2004-02-26 Carnegie Mellon University Programmable pipeline fabric utilizing partially global configuration buses

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302132A (ja) * 2005-04-22 2006-11-02 Yaskawa Electric Corp 信号処理装置及び再構成可能論理回路装置及び再構成可能順序回路
JP2009541853A (ja) * 2006-06-21 2009-11-26 エレメント シーエックスアイ,エルエルシー フォールト・トレランスを有する集積回路アーキテクチャ
US8451022B2 (en) 2006-09-29 2013-05-28 Fujitsu Semiconductor Limited Integrated circuit and input data controlling method for reconfigurable circuit
JP2008090360A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd 集積回路及びリコンフィギュラブル回路の入力データ制御方法
US8631173B2 (en) 2007-03-28 2014-01-14 Kabushiki Kaisha Toshiba Semiconductor device
JP2009020797A (ja) * 2007-07-13 2009-01-29 Hitachi Ltd 並列計算機システム
JP4676463B2 (ja) * 2007-07-13 2011-04-27 株式会社日立製作所 並列計算機システム
WO2009081593A1 (ja) * 2007-12-26 2009-07-02 Softbank Mobile Corp. 通信端末、通信方法および通信プログラム
US8171259B2 (en) 2008-06-19 2012-05-01 Fujitsu Semiconductor Limited Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal
JP2010026599A (ja) * 2008-07-15 2010-02-04 Fujitsu Microelectronics Ltd 設計プログラム、設計装置、および設計方法
US8234613B2 (en) 2008-07-15 2012-07-31 Fujitsu Semiconductor Limited Program, design apparatus, and design method for dynamic reconfigurable circuit
JP4703735B2 (ja) * 2009-01-26 2011-06-15 株式会社東芝 コンパイラ、コード生成方法、コード生成プログラム
JP2009140514A (ja) * 2009-01-26 2009-06-25 Toshiba Corp 半導体装置
US9552328B2 (en) 2011-06-30 2017-01-24 Socionext Inc. Reconfigurable integrated circuit device
WO2013102970A1 (ja) * 2012-01-04 2013-07-11 日本電気株式会社 データ処理装置、及びデータ処理方法
JP2019109892A (ja) * 2017-12-19 2019-07-04 三星電子株式会社Samsung Electronics Co.,Ltd. 計算のためのシステムと方法
JP7268996B2 (ja) 2017-12-19 2023-05-08 三星電子株式会社 計算のためのシステムと方法
US11645224B2 (en) 2017-12-19 2023-05-09 Samsung Electronics Co., Ltd. Neural processing accelerator
US11995027B2 (en) 2017-12-19 2024-05-28 Samsung Electronics Co., Ltd. Neural processing accelerator

Also Published As

Publication number Publication date
DE602004030778D1 (de) 2011-02-10
CN100399317C (zh) 2008-07-02
EP2116938A1 (en) 2009-11-11
EP2116938B1 (en) 2012-03-21
EP1615143A3 (en) 2008-01-23
EP1615143B1 (en) 2010-12-29
US20060004940A1 (en) 2006-01-05
KR20060001799A (ko) 2006-01-06
JP4547198B2 (ja) 2010-09-22
US7822888B2 (en) 2010-10-26
EP1615143A2 (en) 2006-01-11
KR100711082B1 (ko) 2007-04-27
CN1716227A (zh) 2006-01-04

Similar Documents

Publication Publication Date Title
JP4547198B2 (ja) 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
US8737392B1 (en) Configuring routing in mesh networks
US9384165B1 (en) Configuring routing in mesh networks
US8058899B2 (en) Logic cell array and bus system
US8151088B1 (en) Configuring routing in mesh networks
JP2021166032A (ja) ネットワークオンチップによるデータ処理方法及び装置
KR102539571B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
JPWO2003023602A1 (ja) データ処理システムおよびその制御方法
JP2007164793A (ja) データ処理システムの中に分散された分配型ダイレクトメモリアクセス手段
CN108874730B (zh) 一种数据处理器及数据处理方法
TWI825853B (zh) 可重組態資料處理器的缺陷修復電路
KR102539572B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
WO2002003592A2 (en) System and method for executing hybridized code on a dynamically configurable hardware environment
US8190856B2 (en) Data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
JP2001117858A (ja) データ処理装置
KR102539573B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
KR102539574B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
US20190065428A9 (en) Array Processor Having a Segmented Bus System
US8320150B2 (en) Structure and method for backing up and restitution of data
US11409540B1 (en) Routing circuits for defect repair for a reconfigurable data processor
US11556494B1 (en) Defect repair for a reconfigurable data processor for homogeneous subarrays
JP2012199767A (ja) 電子回路システム
JP2010033336A (ja) 信号処理装置及び信号処理方法
JP2007272358A (ja) 情報処理装置
JPH04263354A (ja) 分散処理計算機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090605

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

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

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

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4547198

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees