JP2007257216A - 回路構成を動的に切り替える並列処理装置 - Google Patents

回路構成を動的に切り替える並列処理装置 Download PDF

Info

Publication number
JP2007257216A
JP2007257216A JP2006079684A JP2006079684A JP2007257216A JP 2007257216 A JP2007257216 A JP 2007257216A JP 2006079684 A JP2006079684 A JP 2006079684A JP 2006079684 A JP2006079684 A JP 2006079684A JP 2007257216 A JP2007257216 A JP 2007257216A
Authority
JP
Japan
Prior art keywords
data
selector
switching
arithmetic
circuit
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
JP2006079684A
Other languages
English (en)
Other versions
JP4646840B2 (ja
Inventor
Hiroshi Furukawa
浩 古川
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38606240&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2007257216(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006079684A priority Critical patent/JP4646840B2/ja
Priority to US11/494,477 priority patent/US7512873B2/en
Publication of JP2007257216A publication Critical patent/JP2007257216A/ja
Application granted granted Critical
Publication of JP4646840B2 publication Critical patent/JP4646840B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】より高速の並列処理をより小さな容量の記憶媒体で実現する、回路構成を動的に切り替える並列処理技術を提供する。
【解決手段】回路構成を動的に切り替える並列処理装置は、複数の演算器と、前記複数の演算器の間を接続するネットワークと、前記複数の演算器に応じて前記ネットワーク内に複数設けられ、前記演算器からの出力を制御するセレクタと、前記演算器による演算に使用されるデータを格納する前記演算器にそれぞれ接続された第1のローカルメモリと、前記セレクタによる接続の制御に使用されるデータを格納する前記セレクタにそれぞれ接続された第2のローカルメモリとを備える。
【選択図】図1

Description

本発明は、回路構成を動的に切り替える並列処理装置に関する。
リコンフィギャラブル回路は、複数の演算器(プロセッサエレメント、PE(Processor Element)ともいう)及び遅延調整を実行する回路(ネットワーク)を含み、半導体(
例えば、LSI)に実装される。この回路は、演算器のそれぞれを接続し、並列処理を実行する。また、この回路は、回路を一括で制御するコンフィギュレーションデータによって、その回路構成、すなわち、それぞれの演算器が実行する演算の種類と演算器間の接続とを設定する。この回路は、このコンフィギュレーションデータを格納するコンフィギュレーションメモリを備える。この回路は、回路の再構成を要するとき、要求される回路を指定するコンフィギュレーションデータをコンフィギュレーションメモリからロードする。この回路は、ロードされたデータに基づいて、複数の演算器が実行するそれぞれの演算の種類及び演算器間の接続を設定する。また、この回路は、コンフィギュレーションメモリからロードされたデータに基づいて回路を再構成することにより、動的に回路構成を切り替える。ここで、「動的に回路構成を切り替える」とは、回路による演算対象のデータの処理中に、回路を再構成することである。
本発明に係る先行技術文献としては、次に示すものがある。
特開平1−320564号公報 特開平5−324694号公報
図20は、従来技術によるリコンフィギャラブル回路1の構成例を示している。このリコンフィギャラブル回路1は、複数のPE2と、コンフィギュレーションメモリ3と、複数のPE2及びコンフィギュレーションメモリ3を接続するネットワーク4とを有している。
リコンフィギャラブル回路1は、回路を動作させる際、コンフィギュレーションメモリ3に格納されたコンフィギュレーションデータを使用する。リコンフィギャラブル回路1は、このデータに基づいて、複数のPE2が実行するそれぞれの演算の種類及びネットワーク4内を接続するセレクタによる接続を構成する。
リコンフィギャラブル回路1は、回路の動作中、コンフィギュレーションメモリ3に格納されたコンフィギュレーションデータを使用する。リコンフィギャラブル回路1は、このデータに基づいて、複数のPE2が実行するそれぞれの演算の種類及びネットワーク4内の接続を指示するセレクタによる接続を動的に切り替える。図20で示されたような従来技術によるリコンフィギャラブル回路には、以下に示す4つの問題がある。
第1に、リコンフィギャラブル回路1は、回路の動作のために、複数のPE2が実行するそれぞれの演算の種類とネットワーク4内を接続するセレクタによる接続とを構成する。したがって、リコンフィギャラブル回路1は、回路の動作のために、回路全体の構成を指定するコンフィギュレーションデータを、予めコンフィギュレーションメモリ3からPE2及びネットワーク4内のセレクタにロードする。リコンフィギャラブル回路1は、ロードされたデータに基づいて、回路全体に対して、複数のPE2が実行するそれぞれの演算の種類とネットワーク4内を接続するセレクタによる接続とを設定する。このため、リ
コンフィギャラブル回路1は、回路構成に時間を要するといった問題があった。
第2に、リコンフィギャラブル回路1において、一つのPE2が実行する演算の種類(例えば、算術演算)を切り替える場合を説明する。また、この場合は、リコンフィギャラブル回路1において、ネットワーク4内を接続するセレクタによる接続の設定を切り替える場合も含む。これらの切替においても、リコンフィギャラブル回路1は、回路構成の切替を実行する度に、コンフィギュレーションメモリ3から回路全体の構成を指定するコンフィギュレーションデータをロードする。リコンフィギャラブル回路1は、ロードされたデータに基づいて、PE2が実行する演算の種類やネットワーク4内を接続するセレクタによる接続の設定を再構成する。リコンフィギャラブル回路1は、このような手順で回路を再構成するので、回路の再構成のために時間を要する。また、リコンフィギャラブル回路1は、回路を再構成する時間、演算対象のデータを処理できないといった問題があった。
図21は、リコンフィギャラブル回路1が、複数のPE2のうちの一つが実行する演算の種類を切り替える動作を示している。切替前のPE2(PE2A)は加算(ADD)を実行する。また、切替後のPE2(PE2B)は減算(SUB)を実行する。リコンフィギャラブル回路1は、複数のPE2のうちの一つが実行する演算の種類を(例えば、ADDからSUBに)切り替える場合にも、コンフィギュレーションメモリ3から回路全体の構成を指定するコンフィギュレーションデータをロードする。リコンフィギャラブル回路1は、ロードされたデータに基づいて、PE2が実行する演算の種類やネットワーク4内を接続するセレクタによる接続を再構成する。
図22では、リコンフィギャラブル回路1の構成が、この回路によるデータの処理の途中で一度切り替えられた後、再びデータを処理する動作を示すパイプラインが示されている。リコンフィギャラブル回路1は、この回路構成を切り替えるために、コンフィギュレーションメモリ3に格納された回路全体を指定するコンフィギュレーションデータをロードし、回路を再構成する。したがって、図22に示すように、この回路の再構成(リコンフィグ)の間、リコンフィギャラブル回路1は、演算対象のデータを処理しない。このため、この回路の再構成の間、リコンフィギャラブル回路1にデータを処理しないクロックが発生する。特に、パイプラインが構成された回路では、パイプラインの各ステージが並列動作をするまでに、ステージの数に相当するサイクルを要する。したがって、回路全体を再構成したのでは、パイプラインの効率(各ステージが並列動作する期間の割合)が低下する。
第3に、回路全体を指定するコンフィギュレーションデータは、コンフィギュレーションメモリ3に格納されている。このコンフィギュレーションデータは比較的データサイズが大きい。したがって、演算対象のデータの処理において、リコンフィギャラブル回路1が複数の回路構成を要するとき、コンフィギュレーションメモリ3は非常に大きな記憶容量を持つ必要があるといった問題があった。また、コンフィギュレーションメモリ3が大きな記憶容量を持ち、サイズが大きなデータを格納すると、リコンフィギャラブル回路1は、格納されたデータにアクセスするために時間を要するといった問題があった。
第3の問題と類似の問題として、リコンフィギャラブル回路1が、この回路を実装しているLSIの外部メモリ(図示せず)からコンフィギュレーションメモリ3にコンフィギュレーションデータをロードする場合を考える。この場合、一つ一つの回路構成に使用されるコンフィギュレーションデータのデータサイズが比較的大きいので、データのロードに非常に長い時間を要するといった問題があった。
例えば、リコンフィギャラブル回路1を実装しているLSIが、32ビット単位でアク
セス可能な外部メモリ(図示せず)及び32ビット単位でアクセス可能な内部メモリ(コンフィギュレーションメモリ3)を使用している状況を考える。この状況で、LSIの外部メモリから全部で1000ビットの大きさのデータをロードする場合を考える。この場合、リコンフィギャラブル回路1は、コンフィギュレーションメモリ3に対して、1サイクル(クロック)で32ビットの大きさのデータを書き込むと仮定する。したがって、リコンフィギャラブル回路1は、データの書き込みが終了するまでに、少なくとも1000/32サイクル、すなわち、およそ32サイクルの書き込み時間を要する。
本願は上記のような従来技術の問題点に鑑みてなされたものである。すなわち、本発明の目的は、より高速の並列処理をより小さな容量の記憶媒体で実現する、回路構成を動的に切り替える並列処理装置を提供することである。
上記課題を解決するために、本発明は以下の構成を採用した。
(1)すなわち、本発明による回路構成を動的に切り替える並列処理装置は、複数の演算器と、前記複数の演算器の間を接続するネットワークと、前記複数の演算器に応じて前記ネットワーク内に複数設けられ、前記演算器と前記ネットワークとを接続するか否かを制御するセレクタと、前記演算器による演算に使用されるデータと演算を指定するデータとを格納する前記演算器にそれぞれ接続された第1のローカルメモリと、前記セレクタによる接続を指定するデータを格納する前記セレクタにそれぞれ接続された第2のローカルメモリとを備える。
この構成によると、この並列処理装置は、複数の演算器と、複数の演算器の間を接続するネットワークと、複数の演算器に応じてネットワーク内に複数設けられ、演算器と前記ネットワークとを接続するか否かを制御するセレクタと、演算器による演算に使用されるデータと演算を指定するデータとを格納する演算器にそれぞれ接続された第1のローカルメモリと、セレクタによる接続を指定するデータを格納するセレクタにそれぞれ接続された第2のローカルメモリとを備える。このことにより、この回路構成を動的に切り替える並列処理装置は、第1のローカルメモリ及び第2のローカルメモリに格納されたデータに基づいた演算処理を実行できる。
(2)また、本発明による回路構成を動的に切り替える並列処理装置は、複数の演算器と、前記複数の演算器の間を接続するネットワークと、前記複数の演算器に応じて前記ネットワーク内に複数備えられ、前記演算器からの出力を前記ネットワークに出力するか否かを制御するセレクタと、前記演算器による演算に使用されるデータと演算を指定するデータとを格納し、並列処理が可能な所定の処理の実行に使用される所定の数の前記演算器ごとに接続された第3のローカルメモリと、前記セレクタによる接続を指定するデータを格納し、前記所定の数の前記演算器に関する接続情報を格納した第4のローカルメモリとを備えてもよい。
この構成によると、この並列処理装置は、複数の演算器と、複数の演算器の間を接続するネットワークと、複数の演算器に応じてネットワーク内に複数備えられ、演算器からの出力をネットワークに出力するか否かを制御するセレクタと、演算器による演算に使用されるデータと演算を指定するデータとを格納し、並列処理が可能な所定の処理の実行に使用される所定の数の演算器ごとに接続された第3のローカルメモリと、セレクタによる接続を指定するデータを格納し、所定の数の前記演算器に関する接続情報を格納した第4のローカルメモリとを備える。このことにより、この回路構成を動的に切り替える並列処理装置は、第3のローカルメモリ及び第4のローカルメモリに格納されたデータに基づいた演算処理を実行できる。
(3)また、本発明による回路構成を動的に切り替える並列処理装置に係る演算器は、自演算器及び他の演算器で実行される演算を第1のローカルメモリに格納されたデータに基づいて切り替えてもよい。
この構成によると、この演算器は、自演算器及び他の演算器で実行される演算を第1のローカルメモリに格納されたデータに基づいて切り替える。このことにより、この演算器は、第1のローカルメモリに格納されたデータに基づいて、自律的に回路構成を切り替えることができる。
(4)また、本発明による回路構成を動的に切り替える並列処理装置に係るセレクタは、自セレクタの接続状態を第2のローカルメモリに格納されたデータに基づいて切り替えてもよい。
この構成によると、このセレクタは、自セレクタの接続状態を第2のローカルメモリに格納されたデータに基づいて切り替える。このことにより、このセレクタは、第2のローカルメモリに格納されたデータに基づいて、自律的に回路構成を切り替えることができる。
(5)また、本発明による回路構成を動的に切り替える並列処理装置は、複数の演算器に接続され、演算器のそれぞれに対して、実行すべき演算の切替を指示する演算制御装置を更に備えてもよい。
この構成によると、この並列処理装置は、実行すべき演算の切替を指示する演算制御装置によって、複数の演算器に接続された演算器のそれぞれに対して、実行すべき演算の切替を指示することができる。
(6)また、本発明による回路構成を動的に切り替える並列処理装置は、複数のセレクタに接続され、前記セレクタのそれぞれに対して接続の切替を指示する接続制御装置を更に備えてもよい。
この構成によると、この並列処理装置は、セレクタのそれぞれに対して接続の切替を指示する接続制御装置によって、セレクタのそれぞれの切替を指示することができる。
(7)また、本発明による回路構成を動的に切り替える並列処理装置に係る演算器において、演算器のそれぞれに対して実行する演算の切替は、演算制御装置に格納され、第1の演算器と前記第1の演算器の演算が終了したときに演算を切り替えるべき第2の演算器及びその切替タイミングを保持したテーブルに基づいて実行してもよい。
この構成によると、この並列処理装置は、演算器のそれぞれに対して実行する演算の切替を、前記演算制御装置に格納され、第1の演算器と前記第1の演算器の演算が終了したときに演算を切り替えるべき第2の演算器及びその切替タイミングを保持したテーブルに基づいて実行する。このことにより、この並列処理装置は、切り替えるべき演算器とその切替タイミングとを使用して、演算器の切替を実行できる。
(8)また、本発明による回路構成を動的に切り替える並列処理装置に係るセレクタにおいて、セレクタのそれぞれに対する接続の切替は、接続制御装置に格納され、第1のセレクタと第1のセレクタの接続が終了したときに接続を切り替えるべき第2のセレクタ及びその切替タイミングを保持したテーブルに基づいて実行してもよい。
この構成によると、この並列処理装置は、セレクタのそれぞれに対する接続の切替を、接続制御装置に格納され、第1のセレクタと第1のセレクタの接続が終了したときに接続を切り替えるべき第2のセレクタ及びその切替タイミングを保持したテーブルに基づいて実行できる。
(9)また、本発明による回路構成を動的に切り替える並列処理装置は、一つの演算器を通じて、一つの演算器に接続された第1のローカルメモリを書き換える一方、一つのセレクタを通じて、一つのセレクタに接続された第2のローカルメモリを書き換えてもよい。
この構成によると、この並列処理装置は、一つの演算器を通じて、一つの演算器に接続された第1のローカルメモリを書き換える一方、一つのセレクタを通じて、一つのセレクタに接続された第2のローカルメモリを書き換える。このことにより、この並列処理装置は、個々のローカルメモリを書き換えることができる。
(10)また、本発明による回路構成を動的に切り替える並列処理装置に係る演算制御装置は、それぞれの演算器の演算が終了したときに次に実行すべき演算をそれぞれの演算器に設定する切替タイミングを格納する手段と、切替タイミングの前に、次に実行すべき演算を設定するデータを該当する演算器に、データの入力が抑止されたディスエーブル状態で設定するとともに、切替タイミングにおいて該当する演算器に対して切替データの入力が抑止されたディスエーブル状態を解除してイネーブル状態にする切替手段とを備えてもよい。
この構成によると、この演算制御装置は、それぞれの演算器の演算が終了したときに次に実行すべき演算をそれぞれの演算器に設定する切替タイミングを格納し、切替タイミングの前に、次に実行すべき演算を設定するデータを該当する演算器に、データの入力が抑止されたディスエーブル状態で設定するとともに、切替タイミングにおいて該当する演算器に対して切替データの入力が抑止されたディスエーブル状態を解除してイネーブル状態にすることができる。
また、本発明は、上記の回路構成を動的に切り替える並列処理装置において、上記の処理を実行する並列処理方法であってもよい。
本発明によれば、より高速の並列処理をより小さな容量の記憶媒体で実現する、回路構成を動作中に切り替える並列処理技術を提供することができる。
以下、図面を参照して、本発明の実施形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
《実施形態》
以下、本発明の実施形態の並列処理装置を図1−図17の図面に基づいて説明する。図1は、本発明によるリコンフィギャラブル回路の構成例を示している。このリコンフィギャラブル回路5(本発明の「回路構成を動的に切り替える並列処理装置」に相当)は、複数のPE6(本発明の「演算器」に相当)と、PE6のそれぞれに接続されたコンフィギュレーションメモリ7(本発明の「第1のローカルメモリ」に相当)と、複数のPE6間を接続するネットワーク8と、ネットワーク8に接続された複数のコンフィギュレーションメモリ9(本発明の「第2のローカルメモリ」に相当)とを有している。ここで、PE6とコンフィギュレーションメモリ7とコンフィギュレーションメモリ9とは、それぞれ
、一対一で対応する関係にある。
PE6は、コンフィギュレーションメモリ7に格納されたコンフィギュレーションデータ及び命令に基いて演算を実行する。その場合、PE6は、コンフィギュレーションメモリ7に格納されたデータを処理する。
さらに、PE6は、この回路の外部からのデータを処理してもよい。PE6は、算術演算、論理演算、カウンタ、データの読み出し、又は遅延調整を実行する。また、PE6は、算術演算、論理演算、カウンタ、又はデータの読み出しを実行する一方で、遅延調整を実行してもよい。
PE6が実行する演算の種類が切り替えられる際、PE6は、クロックの立ち上がりで、ライトイネーブル(Write Enable)信号を受信する。ライトイネーブル信号は、PE6が次に実行する演算の種類に演算の種類を切り替える通知に使用される信号である。PE6は、ライトイネーブル信号を受信すると、クロックの立ち上がりで、実行する演算の種類を切り替える。PE6は、実行する演算を切り替えた後、コンフィギュレーションメモリ7に格納されたデータを処理する。PE6は、実行する演算の種類を切り替えた後、プログラムカウンタの値を一つ増やす。PE6は、PE6による演算が終了する際、終了信号を発信してもよい。
また、PE6は、コンフィギュレーションメモリ7に格納されたデータ及び命令に基いて、自律的に自PE6を切り替えてもよい。PE6は、コンフィギュレーションメモリ7に格納されたデータ及び命令に基いて、他のPE6に実行する演算の種類を切り替える切替指示を送信してもよい。また、PE6は、全PE6を制御する制御装置(図6Aを用いて後述するシーケンスコントロール部12)からの指令によって、コンフィギュレーションメモリ7を書き換えてもよい。この場合、PE6は、シーケンスコントロール部12(図6A参照)からのライトイネーブル信号の受信をきっかけにして、実行する演算の種類を切り替える。
コンフィギュレーションメモリ7は、PE6が処理する演算対象のデータを格納する。さらに、コンフィギュレーションメモリ7は、PE6が実行する演算が終了するタイミングの情報を格納してもよい。また、コンフィギュレーションメモリ7は、PE6が自PE6又は他のPE6に対して切替を指示するためのデータ及び命令を格納してもよい。コンフィギュレーションメモリ7は、リコンフィギャラブル回路5の外に接続された装置(図示せず)からの指示によって書き換えられてもよい。
図2は、ネットワーク8の構成をより詳細に示している。図2に示すように、ネットワーク8の内部にセレクタ10(本発明の「セレクタ」に相当)及びセレクタ10に接続されたコンフィギュレーションメモリ11が備えられている。図2では、セレクタ10は、PE6に対して二つずつ接続されている。図2は、ネットワーク8の構成をより詳細に示すため、図1で示されたコンフィギュレーションメモリ9を2つのセレクタ10に備えられたコンフィギュレーションメモリ11として、二つに分けて示している。
セレクタ10は、内部に複数のスイッチを有している。リコンフィギャラブル回路5の場合、PE6が24個ある。したがって、セレクタ10内のスイッチは、全PE6からの出力を調整するとすると、24個のスイッチを有する。図2では、セレクタ10には、それぞれ、6つの通信回線からの信号が入力されている。したがって、図2に示すセレクタ10は、内部に6つのスイッチを有している。セレクタ10は、セレクタ10内部の複数のスイッチのうちの一つをオンにし、その他のスイッチはオフにする。セレクタ10内の信号は、スイッチがオンと指定された通信回線から入力される。セレクタ10は、複数の
入力信号の一つを選択し、所定の出力先へ出力する。セレクタ10による信号の出力先の調整をセレクタ10による接続ともいう。したがって、セレクタ10による接続の切替とは、セレクタ10内のスイッチの切替である。スイッチの切替は、クロックの立ち上がりで実行される。セレクタ10は、スイッチの切替後、データ通信を実行する。
セレクタ10は、コンフィギュレーションメモリ11に格納されたデータ、又は、データ及び命令に基づいて、PE6に対して、信号の出力を制御する。セレクタ10は、コンフィギュレーションメモリ11に格納されたデータ及び命令に基いて、自セレクタ10又は他セレクタ10による接続を切り替えてもよい。セレクタ10は、PE6から指令によって、セレクタ10に接続されたコンフィギュレーションメモリ11に格納されたデータを書き換えてもよい。また、セレクタ10は、セレクタ10の全てを一括で制御する制御装置(図6Aを用いて後述するシーケンスコントロール部12)からの指令によって、コンフィギュレーションメモリ11を書き換えてもよい。
コンフィギュレーションメモリ11は、セレクタ10を経由して、書き換えられてもよい。コンフィギュレーションメモリ11は、PE6からの指令によって、書き換えられてもよい。コンフィギュレーションメモリ11は、リコンフィギャラブル回路5の外に接続された装置(図示せず)からの指示によって書き換えられてもよい。
次に、図3に基づいて、PE6が実行する演算の種類及びセレクタ10による接続の切替について説明する。PE6内のフリップフロップ回路103−1〜103−n、PE6内の制御装置104、及び、セレクタ10内のフリップフロップ回路100−1〜100−nは、同じタイミングのクロック(CLK)によって同期がとられている。
フリップフロップ回路100は、コンフィギュレーションメモリ9からのデータを格納する。フリップフロップ回路100は、格納したデータをセレクタ回路のセレクト信号として選択素子101に入力する。
選択素子101は、フリップフロップ回路100−1〜100−nを備える命令保持装置108から出力されたデータに基づいて、データの入力先を決定する。PE6に出力されるデータは、選択素子101の選択によって調整される。
命令保持装置102には、コンフィギュレーションメモリ7に格納された指令データ107が入力される。命令保持装置102は、フリップフロップ回路103−1〜103−nに入力されたデータを格納する。
フリップフロップ回路103−1〜103−nは入力されたデータを格納する。フリップフロップ回路103−1〜103−nは、入力されたデータ(演算指令)を演算装置106に出力する。
制御装置104は、セレクタ10からPE6が実行する演算の種類の切替の指令を受けると、遅延制御装置105を通じて演算装置に実行を指示する。制御装置104は、遅延制御装置105を通じて、データの送受信の指示を実行する。制御装置104には、クロック(CLK)のタイミングが通知されている。制御装置104は、通知されたクロックのタイミングに合わせてデータを制御する。
遅延制御装置105は、制御装置104からの指令を所定の遅延時間遅延させて、演算装置106に伝達する。遅延制御装置105がリコンフィギャラブル回路5内でそれぞれ動作することによって、リコンフィギャラブル回路5内の遅延制御が実行される。また、リコンフィギャラブル回路5内の遅延制御のために、演算装置106が、遅延制御装置1
05による遅延制御に加えて、遅延制御を実行してもよい。
コンフィギュレーションメモリ7に格納された指令データ107は、PE6が実行する演算の種類を切替える指令を含むデータである。演算対象データは選択素子101により選択されたデータである。
図3に基づいて、セレクタ10による接続の切替を説明する。セレクタ10は、セレクタ10による接続の切替の指示を受信する(図3にて矢印201で図示)と、コンフィギュレーションメモリ9から、次の接続に関するデータを読み出す(図3にてConfigとして図示)。セレクタ10は、読み出されたデータに基づいて、接続を切り替える。このようにして、セレクタ10による接続は切り替えられる。この切替は、クロックの立ち上がりで実行される。制御装置104によるデータ送受信の指示は、遅延制御装置105を通る。このため、セレクタ10によってネットワークの接続が切り替えられた後、遅延制御装置105による遅延時間遅延して、データの送受信が実行される。
演算装置106は、遅延制御装置105から演算実行の指令を受ける。演算装置106は、この演算実行の指令に基づいて演算を実行する。 演算装置106は、フリップフロップ回路103−1〜103−nに入力されたデータ(演算指令)に基づいて、演算対象データを演算処理する。
図3に基づいて、PE6が実行する演算の種類の切替を説明する。PE6は、実行する演算の種類の切替の指示を受信する(図3に矢印200で図示)と、コンフィギュレーションメモリ7に格納された指令データ107から、実行中の演算の種類の次の演算の種類を指定するデータを読み出す。論理回路109は演算切替指示(ライトイネーブル信号)が入力された際、次に実行する演算の種類を指定するデータ(Config)を命令保持装置102に出力する。命令保持装置102は、入力された次に実行する演算の種類を指定するデータで、命令保持装置102に保持された命令を書き換える。このようにして、PE6は、コンフィギュレーションメモリ7から読み出されたデータに基づいて、実行する演算の種類をディスエーブル状態で切り替える。PE6が実行する演算の種類を切り替えた後、PE6は、ディスエーブル状態を解除してイネーブル状態にする。その後のクロック(CLK)の立ち上がりエッジでコンフィギュレーションメモリ7のデータがフリップフロップ回路103−1〜103−nに書き込まれる。PE6は、その後、遅延制御装置105によって遅延制御された演算処理対象のデータを演算処理する。
このように、演算切替指示200は、次に実行する演算に切り替えることを示す。このため、演算切替指示200は、例えば、切替指示を示す「1」という1ビットの情報でよい。一方、様々な演算の種類を指定する情報は、多くの情報量を必要とする。PE6は、1ビットで示された演算切替指示を受信した後、PE6に接続されたコンフィギュレーションメモリ7から演算の種類を指定する指令データ107をロードする。このことにより、リコンフィギャラブル回路5は、演算の種類を指定する多くの情報量をネットワーク8を通じてロードするよりも、PE6が実行する演算の切替に要する時間を短縮する。また、リコンフィギャラブル回路5は、セレクタ10の接続の切替についても同様に、1ビットで示された接続切替指示201に応じて、コンフィギュレーションメモリ9から接続の切替の情報をセレクタ10にロードすることにより、セレクタ10による接続の切替の時間を短縮する。
以下では、まず、PE6、セレクタ10、または、PE6及びセレクタ10による自律的な制御について説明する。次に、PE6の全体の動作、セレクタ10の全体の動作、又は、PE6の全体の動作及びセレクタ10の全体の動作を一括で制御するシーケンスコントロール部によるリコンフィギャラブル回路5の制御について説明する。
[プロセッサエレメント、セレクタ、又は、プロセッサエレメント及びセレクタによる回路の自律的な制御について]
以下に、図2−図4,図5A,及び,図5Bに基づいて、PE6、セレクタ10、または、PE6及びセレクタ10によるリコンフィギャラブル回路5の自律的な制御について説明する。
<プロセッサエレメントが実行する演算の切替例>
図4に基づいて、リコンフィギャラブル回路5が、複数のPE6のうちの一つが実行する演算を加算(ADDとして表示)から減算(SUBとして表示)に切り替える例を説明する。従来技術によるリコンフィギャラブル回路の構成の切替については、図21に基づいて説明している。図に示された例では、PE6は、PE6に接続されたコンフィギュレーションメモリ7に格納されたデータ及び命令に基づいて、自律的に自PE6又は他PE6が実行する演算を切り替える。
ここで、「自律的」とは、自PE6又は他のPE6が実行する演算の種類をPE6によって切り替えることである。また、この「自律的」には、自セレクタ10又は他のセレクタ10による接続をセレクタ10よって切り替えることを含んでもよい。また、この「自律的」には、PE6がセレクタ10を切り替えることを含んでもよい。
図4に示される例では、PE6が、所定のクロックの間、コンフィギュレーションメモリ7に格納されたデータ及び命令に基づいて、加算を実行した後、実行する演算を減算に切り替える。PE6は、演算の切替後、減算の演算を実行する。PE6は、PE6に接続されたコンフィギュレーションメモリ7に格納され、実行する演算の種類を指定するデータに基づいて切替を実行する。したがって、コンフィギュレーションメモリ7は比較的小さなメモリで良いので、PE6は、高速でコンフィギュレーションメモリ7にアクセスし、データをロードする。したがって、PE6は、クロックの立ち上がりで実行する演算を切り替えることができる。このため、PE6は、演算対象のデータを1クロック無駄にすることなく処理できる。
図4に示すように、一つのPE6が実行する演算を加算から減算に切り替える場合を説明する。PE6が加算と減算との2種類の構成を持つとする。この場合、コンフィギュレーションデータに含まれ、PE6が実行する演算の種類を指定するデータは、1ビットで表現することができる。すなわち、加算を0として表すとすると、減算を1として表すことができる。
このようなデータを使用する際に必要となるデータの大きさを、従来技術によるリコンフィギャラブル回路1と本実施形態によるリコンフィギャラブル回路5とで比較する。まず、従来技術のリコンフィギャラブル回路1において、コンフィギュレーションメモリ3に格納され、回路の切替前のPE2に指定されるデータは、加算と減算とを1ビットで表すとすると、プロセッサエレメントが24個あるために、24ビットで表される。また、回路の切替後、PE2が実行する演算の種類の指定に必要なデータも、同様に、24ビットで表される。したがって、コンフィギュレーションメモリ3に格納され、PE2が実行する演算の種類の指定に使用されるデータの大きさとして、48ビットが必要である。このようにして、従来のリコンフィギャラブル回路1の場合、演算の種類を切り替えるべきPE2の数と無関係に各PE2を切り替えるためのデータが入力されていた。
次に、本実施形態のリコンフィギャラブル回路5において、PE6が実行する演算の種類の切り替えに必要なビットの大きさを説明する。コンフィギュレーションデータに含まれ、PE6が実行する演算の種類を指定するデータは、PE6のそれぞれに接続されたコ
ンフィギュレーションメモリ7にそれぞれ格納される。加算と減算とは1ビットで表現できるので、PE6は、コンフィギュレーションメモリ7に格納された1ビット単位のデータに基づいてPE6が実行する演算の種類を切り替えることができる。
リコンフィギャラブル回路5は24個のPE6を有している。リコンフィギャラブル回路5は、24ビットの大きさのデータで、回路の切替前にPE6が実行する演算の種類を指定できる。図4に示す場合には、切り替えが必要なPE6は一つである。したがって、1ビットの大きさのデータで、PE6が実行する演算の種類を切り替えることができる。このように、リコンフィギャラブル回路5において、切り替えに必要なデータの大きさは切り替えるPE6の数に応じて決まる。切り替えるPE6の最大数が24であるので、リコンフィギャラブル回路5が回路の切替に必要とするデータの大きさは、従来技術によるリコンフィギャラブル回路1において必要とされるデータの大きさよりも小さい。
このように、リコンフィギャラブル回路5は、従来技術によるリコンフィギャラブル回路に比べて、小さいサイズのデータで、同等の並列処理を実施できる。したがって、リコンフィギャラブル回路5は、従来のリコンフィギャラブル回路と比較して、小さな容量のメモリの実装で、同等の並列処理を実施できる。
<ネットワーク内の接続の切替例>
図2に基づいて、リコンフィギャラブル回路5がネットワーク8内の接続を切り替える際の回路の動作例を示す。セレクタ10は、セレクタ10に接続されたコンフィギュレーションメモリ11に格納されたデータ及び命令に基づいて、セレクタ10による接続を切り替える。例として、PE6CがPE6Dに対して、PE6Cの演算結果を含む信号をネットワーク8を介して送信している場合を考える。更に、リコンフィギャラブル回路5が、PE6CからPE6Dへの信号の送信をPC6CからPE6Eへの信号の送信に、信号の出力先を切り替える場合を考える。この場合、PE6Cからの信号を、セレクタ10Aがコンフィギュレーションメモリ11Aに格納されたデータ及び命令に基づいて、PE6Dに送信しないよう制御する。また、PE6Cからの信号を、セレクタ10Bが、コンフィギュレーションメモリ11Bに格納されたデータ及び命令に基づいて、PE6Dに送信しないよう制御する。
一方で、PE6Cからの信号を、セレクタ10Cが、コンフィギュレーションメモリ11Cに格納されたデータ及び命令に基づいて、PE6Eに送信するよう制御する。また、PE6Cからの信号を、セレクタ10Dが、コンフィギュレーションメモリ11Dに格納されたデータ及び命令に基づいて、PE6Eに送信するよう制御する。
このように、PE6Cからの信号を、セレクタ10A〜10Dがコンフィギュレーションメモリ11A〜11Dに格納されたデータ及び命令に基づいて、それぞれ制御することにより、ネットワーク8内の接続が切り替えられる。セレクタ10が、セレクタ10に接続されたコンフィギュレーションメモリ11に格納されたデータに基づいて切替を実行する。したがって、セレクタ10は、セレクタ10に接続されたコンフィギュレーションメモリ11にアクセスするので、高速にデータにアクセスできる。したがって、セレクタ10は、クロックの立ち上がりで、このような接続の切り替えを実行できる。
また、リコンフィギャラブル回路5は、従来技術のように、回路全体の構成を指定するコンフィギュレーションデータによってネットワーク8を再構成しない。このため、リコンフィギャラブル回路5は、従来技術によるリコンフィギャラブル回路1と比較すると、データをロードして回路を再構成する時間を短縮できる。
セレクタ10の内部に6個のスイッチがあるとすると、一つ一つのスイッチを指定する
ために、6ビットの大きさのデータが必要である。リコンフィギャラブル回路5は、48個のセレクタ10を備えている。したがって、回路の切替前に回路の接続を指定するためのデータとして、288ビットの大きさのデータが必要である。切り替えるべきセレクタ数と無関係に各セレクタのデータを設定する必要があった。
セレクタ10の一つが接続を切り替えることを考える。本実施形態のリコンフィギャラブル回路5では、セレクタの一つの接続を指定するデータがあればよいので、6ビット単位の大きさのデータでセレクタ10による接続を切り替えることができる。このように、リコンフィギャラブル回路5において、接続の切替に必要なデータの大きさは、セレクタ10の内部の演算を切り替えるべきスイッチの数に応じて決まる。セレクタ10の内部に6個のスイッチがあるとすると、従来技術によるリコンフィギャラブル回路1で必要とされるデータの大きさは288ビット単位なので、リコンフィギャラブル回路5が必要とするデータの大きさよりも小さい。
このように、リコンフィギャラブル回路5は、従来技術によるリコンフィギャラブル回路に比べて、小さいサイズのデータで、同等の並列処理を実施できる。したがって、リコンフィギャラブル回路5は、従来のリコンフィギャラブル回路と比較して、小さな容量のメモリの実装で、同等の並列処理を実施できる。
<プロセッサエレメントが実行する演算及びネットワーク内の接続の切替例>
図5A及び図5Bは、リコンフィギャラブル回路5が有する複数のPE6のうちの一つが他のPE6のうちの一つに演算の切り替えを指示する動作を示している。図5Aでは、PE6FがPE6Gに切替指示を出す動作が回路構成図を用いて示されている。
図5Bでは、PE6Gが実行する演算の種類の切替動作が、クロック、ライトイネーブル信号、PE6Gのコンフィギュレーション、及び、PE6Gのコンフィギュレーションで使用されるデータを用いて示されている。
まず、図5Aでは、PE6Fが、PE6Gが実行する演算の種類の切替に際して、PE6Gが実行する演算の種類の次の種類を指定するライトイネーブル信号をPE6Gに送信し、切替を指示する動作が示されている。PE6Fが送信したライトイネーブル信号は、ネットワーク8を通じて、PE6Gに送られる。PE6Gは、ライトイネーブル信号を受信すると、論理回路109を通じて、クロックの立ち上がりの部分で、PE6Gが実行する演算の種類を切り替える。このようにして、PE6Gが実行する演算の種類が切り替えられる。PE6Gは、切り替えられた演算の種類によって、演算対象のデータを処理する。
このように、PE6Fは、PE6Gに実行する演算の種類の切替の指示を送信する。そして、PE6Gは、送信された指示に基づいて、実行する演算の種類の切り替えを実行する。したがって、この指示の通信に時間を要するので、この回路は1クロック後から動作を再開する。
図5Bでは、切替前のPE6Gの構成(実行する演算の種類)がConfig0、切替後のP
E6Gの構成がConfig1として示されている。また、図5Bでは、Config0の回路構成で使用される(処理される)データがD0-0、D0-1、及びD0-2として、Config1の回路構成で使
用されるデータがD1-0、D1-1、D1-2、…、として示されている。これらのデータは、コンフィギュレーションメモリ7又はネットワーク8からPE6Gに入力されるデータである。
また、PE6の一つがセレクタ10の一つに対して、セレクタ10による接続の切替を
指示してもよい。
[全プロセッサエレメント、全セレクタ、又は、全プロセッサエレメント及び全セレクタを制御するシーケンスコントロール部による制御について]
図2−図4,図5A及び図5Bでは、プロセッサエレメント6、セレクタ10、又は、プロセッサエレメント6及びセレクタ10によるリコンフィギャラブル回路5の自律的な制御について説明した。以下では、図6A,図6B,図7−図17に基づいて、全プロセッサエレメント6、全セレクタ10、又は、全プロセッサエレメント6及び全セレクタ10を一括で制御するシーケンスコントロール部12がさらに付加された場合のシーケンスコントロール部12の動作について説明する。
図6Aでは、リコンフィギャラブル回路5に全PE6及び全セレクタ10を一括で制御するシーケンスコントロール部12がさらに含まれている場合が示されている。シーケンスコントロール部12は、全PE6及び全セレクタ10に直接的に接続されている(図示せず)。シーケンスコントロール部12は、PE6、セレクタ10、又は、PE6及びセレクタ10に対して回路構成の切替を指示する。図6Aでは、シーケンスコントロール部12が、PE6Hに対して、実行する演算の種類を切り替える動作が示されている。
図6Bでは、シーケンスコントロール部12によるPE6Hが実行する演算の種類の切替動作が、クロック、ライトイネーブル信号、PE6Hのコンフィギュレーション、及び、PE6Hのコンフィギュレーションで使用されるデータを用いて示されている。
<プロセッサエレメントが実行する演算の切替例>
図6Aでは、シーケンスコントロール部12(本発明の「演算制御装置」に相当)がPE6Hに演算の種類の切替を指示する動作が示されている。シーケンスコントロール部12は、PE6Hが実行する演算の種類の切替に際して、PE6Hに対してライトイネーブル(Write Enable)信号を送信することによって切替を指示する。
シーケンスコントロール部12には、回路構成の切り替えのタイミング、切替を実行するPE6、及び、切替を実行するセレクタ10の情報等が指定されている。シーケンスコントロール部12は、これらの指定を格納するハードディスク等の記憶媒体(図示せず)を備えている。この指定は、ユーザによって入力されたプログラム等による指令をシーケンスコントロール部12を実装するLSIに含まれる回路等がプログラム解析等することによって実行される。
シーケンスコントロール部12は、このLSI内部で使用されているクロックに基づく切替タイミングよりも先に、PE6Hによる演算の切替の指示をライトイネーブル信号の送信によって実行する。このように、シーケンスコントロール部12が切替タイミングよりも先に切替指示を送信することにより、シーケンスコントロール部12とリコンフィギャラブル回路5との間の通信にかかる時間を抑えることができる。
また、PE6Hは、実行する演算の種類をクロックの立ち上がりで切り替える。PE6Hは、実行する演算の種類を切り替えた後、所定の遅延時間遅れて、演算対象のデータを処理する。PE6Hは、演算対象のデータを処理後、プログラムカウンタの値を一つ増やす。このようにして、PE6Hは、演算対象のデータを1クロック無駄にすることなく処理できる。
図6Bでは、切替前のPE6Hの構成(実行する演算の種類)がConfig2、切り替え後
のPE6Hの構成がConfig3として示されている。また、図6Bでは、Config2の構成で使用される(処理される)データがD0-0、D0-1、及びD0-2として、Config3の構成で使用さ
れるデータがD1-0、D1-1、D1-2、…、として示されている。これらのデータは、コンフィギュレーションメモリ7又はネットワーク8からPE6Hに入力されるデータである。
図7は、図6Aで示されたシーケンスコントロール部12によって、リコンフィギャラブル回路5の構成が切り替えられる(リコンフィグされる)際のパイプラインを示している。シーケンスコントロール部12は、PE6のそれぞれを1クロック無駄にせずに切り替える。したがって、図7で示すように、シーケンスコントロール部12が1クロック無駄にせずにリコンフィギャラブル回路5の構成を切り替える。したがって、図7に示すように、このパイプラインでは、演算対象のデータを処理しないクロックが発生しない。
また、図6Aで示されたシーケンスコントロール部12(本発明の「接続制御装置」に相当)が、セレクタ10に対して、セレクタ10による接続の切替を指示することにより、ネットワーク8内の接続(セレクタ10による接続)を切替えることができる。この場合についても、上記で説明されたPE6が実行する演算の種類の切替の場合と同様に、演算対象のデータの処理に、1クロックも無駄にせずにネットワーク8内の接続(セレクタ10による接続)を切り替えることができる。
<プロセッサエレメントが実行する演算及びネットワーク内の接続の切替例>
次に、図8−図13に基づいて、シーケンスコントロール部12が、PE6が実行する演算の種類及びセレクタ10による接続を切り替えるよう指示する動作を説明する。
図8は、シーケンスコントロール部12が、PE6Iに実行する演算の種類の切替を指示する(301)一方、ネットワーク8内の接続の切替(セレクタ10による接続の切替)を指示する(300)動作を示している。シーケンスコントロール部12は、全PE6(すなわち、図8では、24個のPE6)及び全セレクタ10(すなわち、図8では、図2に基づいて、48個のセレクタ10)に直接的に接続されている(図示せず)。
シーケンスコントロール部12は、PE6に対して、PE6が実行する演算の種類の切替を指示する一方、セレクタ10に対して、セレクタ10による接続の切替を指示する。シーケンスコントロール部12は、これらの指定を格納するハードディスク等の記憶媒体(図示せず)を備えている。シーケンスコントロール部12には、演算の種類の切り替えのタイミング、切替を実行するPE6、及び切替を実行するセレクタ10の情報等が指定されている。この指定は、シーケンスコントロール部12を実装するLSIで実行される解析プログラム(例えば、コンパイラ)等がユーザによって入力されたプログラム等を解析することによって実行される。
シーケンスコントロール部12は、このLSI内部で使用されているクロックに基づく切替タイミングよりも先にPE6Iによる演算の切り替えを指示する一方で、コンフィギュレーションメモリ9に接続されたセレクタ10による接続の切替をライトイネーブル信号によって指示する。セレクタ10は、ライトイネーブル信号が入力されると、セレクタ10に接続されたコンフィギュレーションメモリ9から、セレクタ10による次の接続のデータ(Config)をロードする。セレクタ10は、ロードされたデータに基づいて、接続を切り替える。
このように、シーケンスコントロール部12が切替タイミングよりも先に切替指示を送信することにより、シーケンスコントロール部12とリコンフィギャラブル回路5との間の通信にかかる時間を抑えることができる。
また、PE6Iは、実行する演算の種類をクロックの立ち上がりで切り替える。PE6Iは、実行する演算の種類をシーケンスコントロール部12からのライトイネーブル信号
に応じて切り替えた後、所定の遅延時間遅れて、演算対象のデータを処理する。PE6Iは、演算対象のデータを処理後、プログラムカウンタの値を一つ増やす。このようにして、PE6Iは、演算対象のデータを1クロック無駄にすることなく処理できる。PE6Iは、実行する演算を終了すると、終了信号をシーケンスコントロール部12に送信する(302)。
セレクタ10は、接続の切替の指示を受信すると、クロックの立ち上がりで、接続を切替える。セレクタ10は、接続の切替後、データ通信を実行する。したがって、セレクタ10は、1クロックの無駄もなく、接続の切替を実行できる。
リコンフィギャラブル回路5は、このように、切り替えられたPE6及び切り替えられたセレクタ10に基づいて、動作する。このようにして、リコンフィギャラブル回路5は、PE6が実行する演算の種類、及び、セレクタ10による接続を切り替える。以下、図9−12に基づいて、シーケンスコントロール部12が実行する処理をより詳しく説明する。
まず、複数のPE6に対してそれぞれ固有の記号を付け、複数のPE6をそれぞれ区別する。例として、図8に示されたPE6の一番上の段のPE6を左から順に、「PE1」、「PE2」、…、「PE6」とする。図8に示されたPE6の二番目に上の段のPE6を左から順に、「PE7」、「PE8」、…、「PE12」とする。このようにして、複数のPE6のそれぞれを区別する。また、「PE1」に対して信号を出力する二つのセレクタ10を「NW1」とする。「PE2」に対して信号を出力する二つのセレクタ10を「NW2」とする。このように、PE6に信号を出力する二つのセレクタ10を、「NW1」、「NW2」、「NW3」、…、のように記号付けして、セレクタ10を区別する。
図9は、シーケンスコントロール部12がリコンフィギャラブル回路5に切替を指示する例を示している。この例では、「PE0」による演算が終了した際、「PE0」からシーケンスコントロール部12に、「PE0」による演算が終了したことを示す終了信号が送信される(S1)。シーケンスコントロール部12には、「PE0」が演算を終了することが予め指定されている。したがって、シーケンスコントロール部12は、「PE0」からの終了信号を受信する前に、「PE1」及び「NW1」に対して、切替を指示する信号を送信する。このことにより、切替は1クロックの無駄もなく実行される。「PE1」は、シーケンスコントロール部12から「PE1」の切替を指示する信号を受信すると、その信号に含まれる命令に基づいて、「PE1」を切り替える。「NW1」は、シーケンスコントロール部12から「NW1」の切替を指示する信号を受信すると、その信号に含まれる指示に基づいて、「NW1」を切り替える。
次に、「PE1」による演算が終了した際、「PE1」からシーケンスコントロール部12に、「PE1」による終了信号が送信される(S2)。シーケンスコントロール部12には、「PE1」が演算を終了することが予め指定されている。したがって、シーケンスコントロール部12は、「PE1」からの終了信号を受信する前に、「PE1」及び「NW1」に対して、切替を指示する信号を送信する。このことにより、切替は1クロックの無駄もなく実行される。「PE1」は、シーケンスコントロール部12から「PE3」の切替を指示する信号を受信すると、その信号に含まれる命令に基づいて、「PE3」を切り替える。「NW3」は、シーケンスコントロール部12から「NW3」の切替を指示する信号を受信すると、その信号に含まれる指示に基づいて、「NW3」を切り替える。
このようにして、シーケンスコントロール部12は、ステップS1〜S5までの処理を指示する。そして、シーケンスコントロール部12よる指示によって、「PE1」〜「PE4」は実行する演算を、「NW1」〜「NW4」は接続をそれぞれ切り替える。
図10には、図9に示されたシーケンスコントロール部12による処理の実行に使用されるシーケンステーブル13の例が示されている。シーケンスコントロール部12は、シーケンステーブル13をシーケンスコントロール部12に格納している。シーケンスコントロール部12は、シーケンステーブル13に基づいて、PE6が実行する演算及びネットワーク8内の接続の切替を指示する。シーケンステーブル13には、「PE0」による演算が終了する前に、「PE1」及び「NW1」を切り替えるよう指令が示されている。シーケンステーブル13には、「PE1」による演算が終了する前に、「PE3」及び「NW3」を切り替えるよう指令が示されている。シーケンステーブル13には、「PE2」による演算が終了する前に、「PE4」及び「NW4」を切り替えるよう指令が示されている。シーケンステーブル13には、「PE3」による演算が終了する前に、「PE2」及び「NW2」を切り替えるよう指令が示されている。このシーケンステーブル13により、シーケンスコントロール部12は、図9で示された処理を実行する。
また、シーケンスコントロール部12は、PE6が実行する演算の種類の切替のみを指示するシーケンステーブルを格納してもよい。また、シーケンスコントロール部12は、セレクタ10による接続のみを指示するシーケンステーブルを格納してもよい。
図23は、「PE0」〜「PEn」において、PE6が演算の終了までに実行する演算の回数とPC値の値との関係を示す切替タイミング指示テーブル36の例である。切替指示テーブル36は、シーケンスコントロール部12に格納されている。
切替タイミング指示テーブル36では、例えば、PE0は、PC値が0の場合、演算を5回実行することが示されている。切替タイミング指示テーブル36では、例えば、PE0は、PC値が1の場合、演算を1回実行することが示されている。
このように、シーケンスコントロール部12は、切替タイミング指示テーブル36から、PE6のそれぞれが実行する演算の回数を知ることができる。このため、シーケンスコントロール部12は、それぞれのPE6が演算の実行を終了する前に、実行する演算の種類の切替指示を準備し、実行できる。このようにシーケンスコントロール部12が動作するので、PE6は、PE6が実行する演算の種類の切替指示を通信による遅延なく受信できる。したがって、リコンフィギャラブル回路5は、切替に要する時間を短縮できる。
図11は、図9で示されたシーケンスコントロール部12による指示に対するPE6による処理とPE6による終了信号の送信とクロック(CLK)との関係を示している。ここで、図11では、PE6が実行する演算の種類を示す指標として、プログラムカウンタの値(PC値)が示されている。図11では、PC値は、複数のPE6のそれぞれに対して、最初、0の値が与えられている。そして、PC値は、PE6が実行する演算の種類が切り替えられるたびに、値が1ずつ増えるよう設定されている。図11は、クロックに応じて連続的にPE6のPC値が変化する例である。
図11では、図9で示された処理ステップとの対応を示すために、ステップS1〜S5までの記号が図中に付加されている。また、図11には、シーケンスコントロール部12による処理の順番を示すための矢印が付加されている。シーケンスコントロール部12は、この矢印が示す順にPE6の切替を指示する。
図11に示されるように、「PE0」は、「PE0」による演算が終了すると、PC値を一つ増やすと共に、シーケンスコントロール部12に終了信号を送信する。PC値は、PE6が実行する演算の種類の切替を示すために使用される。シーケンスコントロール部12は、「PE0」からの終了信号を受信する前に、シーケンステーブル13に基づいて
、「PE1」に演算の切り替え指示を送る。「PE1」は、演算の切り替え指示に基づいて演算を切り替える。「PE1」は、「PE1」による演算が終了すると、PC値を一つ増やすと共に、シーケンスコントロール部12に終了信号を送信する。このようにして、ステップS1〜S5までの処理が、シーケンスコントロール部12によって指示される。
図12は、「PE0」〜「PEn」までのn+1個のPE6がある場合の切替テーブルの例を示している。図10で示されたシーケンステーブル13は、シーケンスコントロール部12が一つのPE6が実行する演算及びPE6に接続するネットワーク8内の接続の切替を指示するためのテーブルである。
図12で示される切替テーブル14は、シーケンスコントロール部12が、所定のPE6が演算を終了する前に、複数のPE6に対して切り替え指示を出すために使用される。シーケンスコントロール部12は、シーケンスコントロール部12に切替テーブル14を格納している。例えば、シーケンスコントロール部12は、切替テーブル14に基づいて、「PE0」による演算が終了する前に、「PE1」、「PE5」、「PE7」、及び「PE15」に対して実行する演算を切り替えるよう指示する。また、シーケンスコントロール部12は、切替テーブル14に基づいて、「PE1」による演算が終了する前に、「PE3」、「PE4」、「PE9」、及び「PE20」による演算を切り替えるよう指示する。このようにして、シーケンスコントロール部12は、複数のPE6のうちの一つの演算が終了する前に、他の4つのPE6に対して切り替えを指示する。このようにして、シーケンスコントロール部12は、一つのPE6による演算の終了に際して、複数の演算の切替を実行させることができる。
図13は、PE6において、PC値を保持する回路を示すブロック図である。また、図13は、PE6が保持するPC値をシーケンスコントロール部12に送信するシステムをも示している。このブロック図では、複数のAND回路15、AND回路15に接続された複数の加算器(ADD)16、加算器16に接続されたバススイッチ17、バススイッチ17内で動作してバススイッチ17からの出力を調整するセレクタ18、バススイッチ17に接続され、入力された値を保持するフリップフロップ回路19、及びフリップフロップ回路19に接続された出力ポート20が示されている。出力ポート20は、シーケンスコントロール部12に接続される(図示せず)。また、このブロック図では、1つのAND回路15と2つの加算器16とが、一つのPE6に備えられている。
AND回路15には、終了信号が入力されたことを示す信号として1を示す信号、又は、終了信号が入力されていないことを示す信号として0を示す信号が入力される。また、AND回路15には、PE6が動作していることを示す信号として1を示す信号、又は、PE6が動作をしていないことを示す信号として0を示す信号が入力される。
AND回路15から出力された信号は、加算器16に入力される。加算器16は、入力された信号が示す数値と加算器16が保持している数値とを加算し、加算された数値を示す信号をバススイッチ17に送信する。
バススイッチ17は、セレクタ18を通じて、「PE0」〜「PEn」からの入力信号を「PE0」〜「PEn」に応じた出力ポートに送信するよう信号を処理してから出力する。フリップフロップ回路19は、バススイッチ17からの信号を保持し、保持している信号を出力ポート20に出力する。このようにして、出力ポート20には、「PE0」〜「PEn」までのPC値がそれぞれ入力される。出力ポート20は、入力された信号をシーケンスコントロール部12に出力する。このようにして、「PE0」〜「PEn」によって出力されたPC値は、シーケンスコントロール部12に入力される。
<演算の実行例>
次に、図14−図17に基づいて、リコンフィギャラブル回路5による演算の実行例を説明する。この処理では、例として、リコンフィギャラブル回路5は、3×3のピクセル、すなわち、9ピクセルからなる画像の平均の色を示す数値を計算する。リコンフィギャラブル回路5は、それらのピクセルの色を示す値に画像フィルタ係数をそれぞれ重み付けし、重み付けされた値の合計値を出力する。この合計値がこの画像の色の平均の色を示す。
図14に示される行列Xの各行列要素は、それぞれのピクセルの色を示す数値であり、例えば、0〜255までの値のうちの一つを持つ。このデータを画像データとする。図14では、行列要素として、x00,x10,x20,x01,x11,x21,x02,x12,x22が示されている。リコンフィギャラブル回路5は、例えば、行列要素x00を、画像の左上のピクセルの画像データとして、ラインバッファに格納する。また、リコンフィギャラブル回路5は、例えば、x02を、画像の左下のピクセルの画像データとして、ラインバッファに格納する。このようにして、リコンフィギャラブル回路5は、ラインバッファに画像データを格納する。
図15は、画像フィルタ係数を示している。図15では、画像フィルタとして、a00,a10,a20,a01,a11,a21,a02,a12,a22が示されている。リコンフィギャラブル回路5は、例えば、画像フィルタa00を、3×3の画像の左上のピクセルに対する画像フィルタとして、コンフィギュレーションメモリ7に格納する。また、リコンフィギャラブル回路5は、例えば、画像フィルタa02を、3×3の画像の左下のピクセルに対する画像フィルタとして、コンフィギュレーションメモリ7に格納する。
図16は、PE6による読み出し制御対象の画像フィルタ係数のデータ構成例を示している。演算対象のデータの処理の際、PE6は、コンフィギュレーションメモリ7に格納されたデータを読み出す。この読み出し制御を実行するPE6を「RAM」として表す。この処理では、読み出し制御を実行するPE6を「RAM0」〜「RAM2」とする3つのPE6が使用される。
また、「RAM0」に接続されたコンフィギュレーションメモリ7には、画像フィルタ係数a00,a01,a02が格納されている。「RAM0」は、コンフィギュレーションメモリ7に格納された画像フィルター係数をa00,a01,a02の順で読み出す。「RAM1」に接続されたコンフィギュレーションメモリ7には、画像フィルタ係数a10,a11,a12が格納されている。「RAM1」は、コンフィギュレーションメモリ7に格納された画像フィルター係数をa10,a11,a12の順で読み出す。「RAM2」に接続されたコンフィギュレーションメモリ7には、画像フィルタ係数a20,a21,a22が格納されている。「RAM2」は、コンフィギュレーションメモリ7に格納された画像フィルター係数をa20,a21,a22の順で読み出す。
この演算の実行例では、リコンフィギャラブル回路5は、次の式(1)を計算する。
Figure 2007257216
図17は、リコンフィギャラブル回路5が式(1)を計算する際の演算実行例を示している。まず、この演算の指令がCNT(カウンタ)22に入力される。CNT22は、「
RAM0」を示すRAM23A、「RAM1」を示すRAM23B、「RAM2」を示すRAM23Cのそれぞれに対して演算の実行を指令する。RAM23Aは、コンフィギュレーションメモリ7から画像フィルタ係数a00を読み出す。RAM23Aは、読み出された画像フィルタ係数a00をMAC24Aに送信する。RAM23Bは、コンフィギュレーションメモリ7から画像フィルタ係数a10を読み出す。RAM23Bは、読み出された画像フィルタ係数a10をMAC24Bに送信する。RAM23Cは、コンフィギュレーションメモリ7から画像フィルタ係数a20を読み出す。RAM23Cは、読み出された画像フィルタ係数a20をMAC24Cに送信する。
一方、MAC24Aには、リコンフィギャラブル回路5の外からの画像データx00が入力される。MAC24Bには、リコンフィギャラブル回路5の外からの画像データx10が入力される。MAC24Cには、リコンフィギャラブル回路5の外からの画像データx20が入力される。
MAC24Aは、入力された画像データx00と画像フィルタ係数a00とを乗算し、乗算された結果を含む信号をADD25Aに送信する。すなわち、x00×a00の計算結果を含む信号がADD25Aに送信される。MAC24Bは、入力された画像データx10と画像フィルタ係数a10とを乗算し、乗算された結果を含む信号をADD25Aに送信する。すなわち、x10×a10の計算結果を含む信号がADD25Aに送信される。MAC24Cは、入力された画像データx20と画像フィルタ係数a20とを乗算し、乗算された結果を含む信号をADD25Bに送信する。すなわち、x20×a20の計算結果がADD25Bに送信される。
ADD25Aは、MAC24Aから受信されたMAC24Aによる演算結果とMAC24Bから受信されたMAC24Bによる演算結果とを加算し、加算された結果を含む信号をADD25Bに送信する。すなわち、x00×a00+x10×a10の計算結果を含む信号がADD25Bに送信される。ADD25Bは、ADD25Aから受信されたADD25Aによる演算結果とMAC24Cから受信されたMAC24Cによる演算結果とを加算する。すなわち、x00×a00+x10×a10+x20×a20の計算が実行される。
このようにして、リコンフィギャラブル回路5は、式(1)に含まれるx00×a00+x10×a10+x20×a20の計算を実行する。リコンフィギャラブル回路5が、以上の処理を繰り返すことにより、式(1)の計算が実行される。
<変形例1>
図18は、本発明の実施形態のリコンフィギャラブル回路の第1の変形例を示している。リコンフィギャラブル回路26は、回路26A〜26D及び回路26A〜26Dを接続するネットワーク29を有している。回路26Aは、複数のPE27A、複数のPE27Aの全てに接続されたコンフィギュレーションメモリ28A、及び、複数のPE27Aに接続されたネットワーク29内のコンフィギュレーションメモリ30Aを有している。回路26Bは、複数のPE27B、複数のPE27Bの全てに接続されたコンフィギュレーションメモリ28B、及び、複数のPE27Bに接続されたネットワーク29内のコンフィギュレーションメモリ30Bを有している。回路26Cは、複数のPE27C、複数のPE27Cの全てに接続されたコンフィギュレーションメモリ28C、及び、複数のPE27Cに接続されたネットワーク29内のコンフィギュレーションメモリ30Cを有している。回路26Dは、複数のPE27D、複数のPE27Dの全てに接続されたコンフィギュレーションメモリ28D、及び、複数のPE27Dに接続されたネットワーク29内のコンフィギュレーションメモリ30Dを有している。
回路26A〜26Dは、それぞれが1つのパイプラインとして示される処理結果を出力する。例えば、回路26Aは、図18の右の図のA1という処理結果を出力する。また、回路26Aは、回路の再構成の結果、A0という処理結果を出力する。回路26Bは、図18の右の図のB1という処理結果を出力する。また、回路26Bは、回路の再構成の結果、B0という処理結果を出力する。回路26Cは、図18の右の図のC1という処理結果を出力する。回路26Cは、回路の再構成の結果、C0という処理結果を出力する。回路26Dは、図18の右の図のD1という処理結果を出力する。回路26Dは、回路の再構成の結果、D0という処理結果を出力する。
演算を実行するパイプライン(演算制御フロー)の段数が予めわかっている場合、リコンフィギャラブル回路26は、パイプラインのステージ単位で回路構成を持つことで、コンフィギュレーションメモリ28A〜28D,30A〜30Dを有効に使用できる。すなわち、PE27A〜27Dは、本実施形態と同様に、高速でコンフィギュレーションメモリ28A〜28D,30A〜30Dとアクセスできる。また、PE27A〜27Dが実行する演算及びネットワーク29内の接続に関しても、本実施形態と同様に、高速で切り替えることができる。また、PE27A〜27Dやネットワーク9内の接続の自律的な制御に関しても有効である。
また、本実施形態のように、PE27A〜27Dが実施する演算及びネットワーク9内の接続を制御するシーケンスコントロール部(図示せず)がさらに付加された場合を考える。この場合、シーケンスコントロール部は、本実施形態のように、PE27A〜27D及びネットワーク9内の接続を1クロックの無駄もなく切り替える。
このように、回路26A〜26Dは、コンフィギュレーションメモリ28A〜28D,30A〜30Dの中に、まとめて回路構成のデータを持てる。したがって、回路26A〜26Dは、コンフィギュレーション28A〜28D,30A〜30Dに共通する制御項目をまとめることができる。このため、リコンフィギャラブル回路26は、リコンフィギャラブル回路5と比べて、リソースを節約できる。
<変形例2>
図19は、本発明の実施形態のリコンフィギャラブル回路の第2の変形例を示している。リコンフィギャラブル回路31は、複数のPE32、PE32に接続されたPE32に関するコンフィギュレーションメモリ33、PE32に接続されたネットワーク34に関するコンフィギュレーションメモリ35、及び、それらを接続するネットワーク34を有している。
リコンフィギャラブル回路31は、本実施形態で示されたリコンフィギャラブル回路5と、ネットワーク34の接続に関するコンフィギュレーションメモリ35がPE32に接続されている点が異なっている。
PE32に応じたネットワーク34内のセレクタは、該PE32に接続されたコンフィギュレーションメモリ35に格納された命令及びデータに基づいて、該PE32への信号の出力を制御する。このようにして、本実施形態のように、ネットワークの接続に関するコンフィギュレーションメモリ35がネットワーク34内に接続されず、PE32に接続されてもよい。
このように、ネットワーク34に関するコンフィギュレーションメモリ35がPE32に接続されている場合でも、PE32が実行する演算の自律的な切替、ネットワーク34内の接続の自律的な切替、及び、シーケンスコントロール部による制御により、本実施形態で示された効果と同様の効果を得ることができる。
本発明の実施形態のリコンフィギャラブル回路の基本構成図である。 本発明の実施形態に係るネットワークの基本構成図である。 本発明の実施形態に係るプロセッサエレメント及びセレクタの基本構成図である。 プロセッサエレメントが実行する演算の第1の切替例を示す図である。 プロセッサエレメントが実行する演算の第2の切替例を示す第1の図である。 プロセッサエレメントが実行する演算の第2の切替例を示す第2の図である。 プロセッサエレメントが実行する演算の第3の切替例を示す第1の図である。 プロセッサエレメントが実行する演算の第3の切替例を示す第2の図である。 本実施形態によるリコンフィギャラブル回路の実施によって示されるパイプラインの例を示す図である。 プロセッサエレメントが実行する演算及びネットワーク内の接続の切替例を示す図である。 シーケンスコントロール部が実行する処理例を示す図である。 シーケンステーブルの例を示す図である。 PC値が増える動作を示す図である。 切替テーブルの例を示す図である。 PC値をシーケンスコントロール部に送信するシステムを示す基本構成図である。 ラインバッファの例を示す図である。 画像フィルタ係数の例を示す図である。 コンフィギュレーションメモリに格納された画像フィルタ係数の例を示す図である。 リコンフィギャラブル回路による演算の実行例を示す図である。 本実施形態の第1の変形例のリコンフィギャラブル回路を示す図である。 本実施形態の第2の変形例のリコンフィギャラブル回路を示す図である。 従来技術のリコンフィギャラブル回路を示す図である。 従来技術によるプロセッサエレメントが実行する演算の切替例を示す図である。 従来技術によるリコンフィギャラブル回路の実施によって示されるパイプラインの例を示す図である。 切替タイミング指示テーブルの例を示す図である。
符号の説明
1 従来技術によるリコンフィギャラブル回路
2 プロセッサエレメント(PE)
3 コンフィギュレーションメモリ
4 ネットワーク
5 本実施形態によるリコンフィギャラブル回路
6 プロセッサエレメント(PE)
7 コンフィギュレーションメモリ
8 ネットワーク
9 ネットワークに関するコンフィギュレーションメモリ
10,10A〜10D セレクタ
11,11A〜11D ネットワークに関するコンフィギュレーションメモリ
12 シーケンスコントロール部(SC UNIT)
13 シーケンステーブル
14 切り替えテーブル
15 AND回路
16 加算器(ADD)
17 バススイッチ
18 セレクタ
19 フリップフロップ回路
20 出力ポート
21A〜21C テーブル
22 コントロール(CNT)
23A〜23C RAM
24A〜24C MAC
25A,25B ADD
26 リコンフィギャラブル回路
26A〜26D 回路
27A〜27D プロセッサエレメント(PE)
28A〜28D コンフィギュレーションメモリ
29 ネットワーク
30A〜30D コンフィギュレーションメモリ
31 リコンフィギャラブル回路
32 プロセッサエレメント(PE)
33 プロセッサエレメントに関するコンフィギュレーションメモリ
34 ネットワーク
35 ネットワークに関するコンフィギュレーションメモリ
36 切替タイミング指示テーブル
100−1〜100−n フリップフロップ回路
101 選択素子
102 命令保持装置
103−1〜103−n フリップフロップ回路
104 制御装置
105 遅延制御装置
106 演算装置
107 指令データ
108 命令保持装置
109 論理回路
200 矢印
201 矢印
300 矢印
301 矢印
302 矢印

Claims (10)

  1. 複数の演算器と、
    前記複数の演算器の間を接続するネットワークと、
    前記複数の演算器に応じて前記ネットワーク内に複数設けられ、前記演算器と前記ネットワークとを接続するか否かを制御するセレクタと、
    前記演算器による演算に使用されるデータと演算を指定するデータとを格納する前記演算器にそれぞれ接続された第1のローカルメモリと、
    前記セレクタによる接続を指定するデータを格納する前記セレクタにそれぞれ接続された第2のローカルメモリと
    を備える回路構成を動的に切り替える並列処理装置。
  2. 複数の演算器と、
    前記複数の演算器の間を接続するネットワークと、
    前記複数の演算器に応じて前記ネットワーク内に複数備えられ、前記演算器からの出力を前記ネットワークに出力するか否かを制御するセレクタと、
    前記演算器による演算に使用されるデータと演算を指定するデータとを格納し、並列処理が可能な所定の処理の実行に使用される所定の数の前記演算器ごとに接続された第3のローカルメモリと、
    前記セレクタによる接続を指定するデータを格納し、前記所定の数の前記演算器に関する接続情報を格納した第4のローカルメモリと
    を備える回路構成を動的に切り替える並列処理装置。
  3. 前記演算器は、自演算器及び他の演算器で実行される演算を前記第1のローカルメモリに格納されたデータに基づいて切り替える請求項1に記載の回路構成を動的に切り替える並列処理装置。
  4. 前記セレクタは、自セレクタの接続状態を前記第2のローカルメモリに格納されたデータに基づいて切り替える請求項1又は3に記載の回路構成を動的に切り替える並列処理装置。
  5. 前記複数の演算器に接続され、前記演算器のそれぞれに対して、実行すべき演算の切替を指示する演算制御装置を更に備える請求項1又は2に記載の回路構成を動的に切り替える並列処理装置。
  6. 前記複数のセレクタに接続され、前記セレクタのそれぞれに対して接続の切替を指示する接続制御装置を更に備える請求項1,2又は5に記載の回路構成を動的に切り替える並列処理装置。
  7. 前記演算器のそれぞれに対して実行する演算の切替は、前記演算制御装置に格納され、第1の演算器と前記第1の演算器の演算が終了したときに演算を切り替えるべき第2の演算器及びその切替タイミングを保持したテーブルに基づいて実行する請求項5に記載の回路構成を動的に切り替える並列処理装置。
  8. 前記セレクタのそれぞれに対する接続の切替は、前記接続制御装置に格納され、第1のセレクタと前記第1のセレクタの接続が終了したときに接続を切り替えるべき第2のセレクタ及びその切替タイミングを保持したテーブルに基づいて実行する請求項6に記載の回路構成を動的に切り替える並列処理装置。
  9. 一つの前記演算器を通じて、前記一つの前記演算器に接続された前記第1のローカルメ
    モリを書き換える一方、一つの前記セレクタを通じて、前記一つの前記セレクタに接続された前記第2のローカルメモリを書き換える請求項1〜8のいずれかに記載の回路構成を動的に切り替える並列処理装置。
  10. 前記演算制御装置は、前記それぞれの演算器の演算が終了したときに次に実行すべき演算をそれぞれの演算器に設定する切替タイミングを格納する手段と、
    前記切替タイミングの前に、前記次に実行すべき演算を設定するデータを該当する演算器に、前記データの入力が抑止されたディスエーブル状態で設定するとともに、
    前記切替タイミングにおいて前記該当する演算器に対して前記切替データの入力が抑止されたディスエーブル状態を解除してイネーブル状態にする切替手段とを備える請求項5〜9のいずれかに記載の回路構成を動的に切り替える並列処理装置。
JP2006079684A 2006-03-22 2006-03-22 回路構成を動的に切り替える並列処理装置 Active JP4646840B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006079684A JP4646840B2 (ja) 2006-03-22 2006-03-22 回路構成を動的に切り替える並列処理装置
US11/494,477 US7512873B2 (en) 2006-03-22 2006-07-28 Parallel processing apparatus dynamically switching over circuit configuration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006079684A JP4646840B2 (ja) 2006-03-22 2006-03-22 回路構成を動的に切り替える並列処理装置

Publications (2)

Publication Number Publication Date
JP2007257216A true JP2007257216A (ja) 2007-10-04
JP4646840B2 JP4646840B2 (ja) 2011-03-09

Family

ID=38606240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006079684A Active JP4646840B2 (ja) 2006-03-22 2006-03-22 回路構成を動的に切り替える並列処理装置

Country Status (2)

Country Link
US (1) US7512873B2 (ja)
JP (1) JP4646840B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257549A (ja) * 2006-03-24 2007-10-04 Toshiba Corp 半導体装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140217989A1 (en) * 2011-09-02 2014-08-07 Nec Corporation Battery control system, battery controller, battery control method, and recording medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145838A (ja) * 2002-10-25 2004-05-20 Sony Corp 画像処理装置
JP2006018413A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd プロセッサおよびパイプライン再構成制御方法
JP2006031127A (ja) * 2004-07-12 2006-02-02 Fujitsu Ltd 再構成可能な演算装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4943912A (en) * 1987-10-13 1990-07-24 Hitachi, Ltd. Parallel processor system having control processor and array control apparatus for selectively activating different processors
JPH01320564A (ja) 1988-06-23 1989-12-26 Hitachi Ltd 並列処理装置
JPH0254383A (ja) * 1988-08-18 1990-02-23 Mitsubishi Electric Corp アレイプロセッサ
JPH05324694A (ja) 1992-05-19 1993-12-07 Tomochika Fujioka 再構成可能並列プロセッサ
US6597956B1 (en) * 1999-08-23 2003-07-22 Terraspring, Inc. Method and apparatus for controlling an extensible computing system
US6438737B1 (en) * 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US20060064553A9 (en) * 2001-03-02 2006-03-23 Eric Giernalczyk Data processing apparatus and system and method for controlling memory access

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145838A (ja) * 2002-10-25 2004-05-20 Sony Corp 画像処理装置
JP2006018413A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd プロセッサおよびパイプライン再構成制御方法
JP2006031127A (ja) * 2004-07-12 2006-02-02 Fujitsu Ltd 再構成可能な演算装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257549A (ja) * 2006-03-24 2007-10-04 Toshiba Corp 半導体装置

Also Published As

Publication number Publication date
JP4646840B2 (ja) 2011-03-09
US7512873B2 (en) 2009-03-31
US20070245178A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
CN109102065B (zh) 一种基于PSoC的卷积神经网络加速器
US8526422B2 (en) Network on chip with partitions
US20190286974A1 (en) Processing circuit and neural network computation method thereof
US11403519B2 (en) Machine learning network implemented by statically scheduled instructions, with system-on-chip
US8365111B2 (en) Data driven logic simulation
JP2003524969A5 (ja)
US20190057060A1 (en) Reconfigurable fabric data routing
WO2022134729A1 (zh) 一种基于risc-v的人工智能推理方法和系统
US20180212894A1 (en) Fork transfer of data between multiple agents within a reconfigurable fabric
US11782760B2 (en) Time-multiplexed use of reconfigurable hardware
US20100088489A1 (en) data transfer network and control apparatus for a system with an array of processing elements each either self-or common controlled
JP4646840B2 (ja) 回路構成を動的に切り替える並列処理装置
US20210326189A1 (en) Synchronization of processing elements that execute statically scheduled instructions in a machine learning accelerator
JP4962305B2 (ja) リコンフィギュラブル回路
JP2008090455A (ja) マルチプロセッサ信号処理装置
Göhringer et al. Adaptive multi-client network-on-chip memory
US20110185152A1 (en) Reconfigurable circuit and semiconductor integrated circuit
WO2021212045A1 (en) Synchronization of processing elements and software managed memory hierarchy in a machine learning accelerator
JP7250953B2 (ja) データ処理装置、及び人工知能チップ
KR102609481B1 (ko) 레이턴시 프로세싱 유닛
JP5708634B2 (ja) Simdプロセッサ
US20230334374A1 (en) Allocating computations of a machine learning network in a machine learning accelerator
US20230195478A1 (en) Access To Intermediate Values In A Dataflow Computation
WO2020211654A1 (zh) 一种基于行缓冲Linebuffer的并行计算方法及计算设备
JP2010033336A (ja) 信号処理装置及び信号処理方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100531

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101207

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

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4646840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250