JP2009049649A - 集積回路装置 - Google Patents

集積回路装置 Download PDF

Info

Publication number
JP2009049649A
JP2009049649A JP2007213029A JP2007213029A JP2009049649A JP 2009049649 A JP2009049649 A JP 2009049649A JP 2007213029 A JP2007213029 A JP 2007213029A JP 2007213029 A JP2007213029 A JP 2007213029A JP 2009049649 A JP2009049649 A JP 2009049649A
Authority
JP
Japan
Prior art keywords
mapping data
data
application
processing element
mapping
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
JP2007213029A
Other languages
English (en)
Other versions
JP5151311B2 (ja
Inventor
Hisanori Fujisawa
久典 藤沢
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 JP2007213029A priority Critical patent/JP5151311B2/ja
Priority to US12/123,853 priority patent/US7586326B2/en
Publication of JP2009049649A publication Critical patent/JP2009049649A/ja
Application granted granted Critical
Publication of JP5151311B2 publication Critical patent/JP5151311B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17752Structural details of configuration resources for hot reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】再構成可能な演算装置と、演算装置の回路構成を規定するマッピングデータを生成する制御装置を備えた集積回路装置において、あるアプリケーションが動作している途中で、回路の構成を変更し、別のアプリケーションを新たに実装して動作させること。
【解決手段】制御装置は、演算装置に実装中の第1のアプリケーションの第1のマッピングデータと、この第1のマッピングデータを変更し、第1のアプリケーションと第2のアプリケーションの両方を動作させる最終マッピングデータと、を統合した中間状態のマッピングデータを生成する。演算装置の回路構成は、第1のマッピングデータにより規定される構成から、中間状態のマッピングデータにより規定される中間の構成を経て、最終マッピングデータにより規定される構成に移行する。
【選択図】図2

Description

この発明は、集積回路装置に関し、特にリコンフィギャラブル回路を有する集積回路装置に関する。
従来、実装するアプリケーションに応じて演算装置の回路構成を変えることができる粗粒度リコンフィギャラブル回路が提案されている。粗粒度リコンフィギャラブル回路は、種々の命令を実行可能な複数のプロセッシングエレメント(PE)と、プロセッシングエレメント間を接続する内部接続ネットワークと、コンフィギュレーションデータを格納するコンフィギュレーションメモリを備えている。コンフィギュレーションデータは、各プロセッシングエレメントが処理する演算と、内部接続ネットワークの信号経路を規定するデータである。
コンフィギュレーションデータは、リコンフィギャラブル回路にアプリケーションを実装する際に、コンフィギュレーションメモリにロードされる。コンフィギュレーションデータの供給開始タイミングに関して、電源投入時の外部リセット解除信号に応答して、リコンフィギャラブル回路内の少なくとも一部が初期化回路状態に構築され、この初期化回路の動作完了後の内部リセット解除信号に応答して、コンフィギュレーションデータの供給を開始するようにした提案が公知である(例えば、特許文献1参照。)。
複数のアプリケーションが同時に実行される場合、異なるアプリケーションが同じプロセッシングエレメントや同じ信号経路を使用しないように、それぞれのコンフィギュレーションデータを生成する必要がある。これを可能とする技術として、ランタイムマッピング技術が提案されている。ランタイムマッピング技術では、コンフィギュレーションデータは、処理すべきプロセッシングエレメントの配置やプロセッシングエレメント間の物理的な信号経路に依存しない論理的なデータフローグラフで構成される。そして、同時に実装したいアプリケーションが指定されたときに、ハードウェアリソースが重複しないように、プロセッシングエレメントや信号経路の割り当てが決定される(例えば、非特許文献1参照。)。
特開2007−52602号公報(段落[0009]) ロデヴァイク・ティ.・スミス(Lodewijk T. Smit)、外5名、「ランタイム・マッピング・オブ・アプリケーションズ・トゥ・ア・ヘテロジーニアス・リコンフィギャラブル・タイルド・システム・オン・チップ・アーキテクチャ(Run−Time Mapping of Applications to a Heterogeneous Reconfigurable Tiled System on Chip Architecture)」、ザ・2007・アイトリプルイー・インターナショナル・カンファレンス・オブ・フィールド・プログラマブル・テクノロジー(The 2007 IEEE International Conference of Field Programmable Technology)(米国)、2007年、p.421−424
従来の粗粒度リコンフィギャラブル回路において、あるアプリケーションが動作している途中で、別のアプリケーションを新たに実装して動作させる方法として、動作中のアプリケーション(以下、既存アプリケーションとする)のマッピングを変更せずに、新たに動作させるアプリケーション(以下、追加アプリケーションとする)のマッピングを行う方法が考えられる。しかし、この方法では、既存アプリケーションが使用しているハードウェアリソースを除いて、追加アプリケーションのマッピングを行う必要があるため、プロセッシングエレメントや配線リソースが障害となり、追加アプリケーションのマッピングを行うことができないことがあるという問題点がある。
そこで、別の方法として、必要に応じて既存アプリケーションの再マッピングをするとともに、追加アプリケーションのマッピングを行う方法が考えられる。しかし、この方法では、既存アプリケーションのマッピングを不用意に変更すると、処理中のデータが破壊されてしまうという問題点がある。これを回避するには、マッピングを変更する前に、実行中の処理を中断しなければならない。
この発明は、上述した従来技術による問題点を解消するため、あるアプリケーションが動作している途中で、回路の構成を変更することができる集積回路装置を提供することを目的とする。また、この発明は、あるアプリケーションが動作している途中で、別のアプリケーションを新たに実装して動作させることができる集積回路装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明にかかる集積回路装置は、命令を実行可能な複数のプロセッシングエレメントおよびそのプロセッシングエレメント間を接続する内部接続ネットワークを備える演算装置と、アプリケーションのデータフローグラフに基づいて演算装置の各プロセッシングエレメントの処理内容と内部接続ネットワークの信号経路を規定するマッピングデータを生成する制御装置を備える。制御装置は、第1のマッピングデータと第2のマッピングデータとを統合した第3のマッピングデータを生成する。
第1のマッピングデータは、第1のデータフローグラフに基づいて生成された実装中の第1のアプリケーションのマッピングデータである。第2のマッピングデータは、第1のデータフローグラフに基づいて生成された第1のアプリケーションのマッピングデータであるが、第1のマッピングデータとは、演算装置の使用するリソースの一部が異なる。そして、制御装置は、第3のマッピングデータに基づいて演算装置の回路構成を構築した後、第2のマッピングデータに基づいて演算装置の回路構成を構築する。
また、制御装置は、第1のアプリケーションが動作している演算装置に第2のアプリケーションを追加して実装する際に、第2のマッピングデータと第4のマッピングデータとを統合した第5のマッピングデータを生成する。第4のマッピングデータは、第2のアプリケーションの第2のデータフローグラフから生成されるマッピングデータである。第4のマッピングデータと第2のマッピングデータとは、演算装置の異なるリソースを使用する。そして、制御装置は、第3のマッピングデータに基づいて演算装置の回路構成を構築した後、第5のマッピングデータに基づいて演算装置の回路構成を構築する。
この発明によれば、演算装置の回路構成が、動作中の第1の構成から、第1の構成と異なる第2の構成に移行する際に、一旦、第1の構成と第2の構成を統合した中間構成となる第3の構成を経てから、第2の構成に移行する。また、第1のアプリケーションが動作している演算装置に第2のアプリケーションを追加して実装する際に、演算装置の回路構成が、第1のアプリケーションが動作している第1の構成から、第1のアプリケーションと第2のアプリケーションの両方が動作可能な第5の構成に移行する際に、一旦、第1の構成と第2の構成を統合した中間構成となる第3の構成を経てから、第5の構成に移行する。
本発明にかかる集積回路装置によれば、あるアプリケーションが動作している途中で、処理中のデータを破壊することなく、回路の構成を変更することができるという効果を奏する。また、あるアプリケーションが動作している途中で、処理中のデータを破壊することなく、別のアプリケーションを新たに実装して動作させることができるという効果を奏する。さらに、あるアプリケーションが動作している途中で、実行中の処理を中断することなく、別のアプリケーションを新たに実装して動作させることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる集積回路装置の好適な実施の形態を詳細に説明する。なお、以下の説明において、同様の構成には同一の符号を付して、重複する説明を省略する。
(実施の形態1)
図1は、この発明の実施の形態1にかかる集積回路装置の構成を示すブロック図である。図1に示すように、プロセッサ1、コンフィギュレーションメモリ2、演算器アレイ3およびメモリ4は、コンフィギュレーションデータバス5を介して相互に接続されている。また、演算器アレイ3は、コンフィギュレーションメモリ2とデータバス6に接続されている。
演算器アレイ3は、演算装置としての機能を有し、種々の命令を実行可能な複数のプロセッシングエレメントと、プロセッシングエレメント間を接続する内部接続ネットワークを備えている。プロセッサ1は、制御装置としての機能を有し、論理的なデータフローグラフに基づいてマッピングデータを生成する。
また、プロセッサ1は、後述する平衡状態到達時間を算出する。データフローグラフは、演算器アレイ3のプロセッシングエレメントに割り当てられる処理の物理的な配置や、プロセッシングエレメント間の物理的な信号経路に依存しないコンフィギュレーションデータである。特に図示しないが、データフローグラフでは、各ノードはプロセッシングエレメントの処理に対応し、データグラフ間の枝はデータ経路を示す。
マッピングデータは、演算器アレイ3において、処理が割り当てられたプロセッシングエレメントの物理的な配置や物理的な信号経路、およびプロセッシングエレメントの内部データがどのくらいの過去のデータまで依存しているかということを示す履歴依存期間を規定するデータである。コンフィギュレーションメモリ2は、プロセッサ1により生成されたマッピングデータを記憶する。
演算器アレイ3の回路構成、すなわち各プロセッシングエレメントの処理内容と内部接続ネットワークの信号経路は、コンフィギュレーションメモリ2に記憶されているマッピングデータに基づいて決められる。コンフィギュレーションメモリ2から演算器アレイ3へマッピングデータを転送するタイミングは、プロセッサ1により制御される。メモリ4は、実装されるアプリケーションの論理的なデータフローグラフ、および現在動作中のマッピングデータを記憶する。
図2は、この発明の実施の形態1にかかる集積回路装置の処理手順を示すフローチャートである。図2に示すように、あるアプリケーションの動作中に、プロセッサ1が、別のアプリケーションの追加を指示するアプリケーション追加指示を外部から受信すると(ステップS1)、プロセッサ1は、メモリ4に追加アプリケーション情報要求を送信する(ステップS2)。そして、プロセッサ1は、メモリ4から追加アプリケーションのデータフローグラフを読み込む(ステップS3)。
また、プロセッサ1は、メモリ4にマッピング情報要求を送信する(ステップS4)。そして、プロセッサ1は、メモリ4から既存アプリケーションのデータフローグラフおよびマッピング情報を読み込む(ステップS5)。ここで、動作中のアプリケーションは1つよいし、2つ以上でもよい。2つ以上の場合は、複数のアプリケーションからなるアプリケーション群と考えればよい。
次いで、プロセッサ1は、メモリ4から読み込んだ追加アプリケーションのデータフローグラフと、既存アプリケーションのデータフローグラフおよびマッピング情報に基づいてマッピングを実施し、追加アプリケーションを含む最終マッピングデータを生成する(ステップS6)。そして、プロセッサ1は、生成した最終マッピングデータをコンフィギュレーションメモリ2へ送信する。最終マッピングデータは、コンフィギュレーションメモリ2に記憶される(ステップS7)。
次いで、プロセッサ1は、最終マッピングデータと現在動作中のマッピングデータとを統合した中間状態のマッピングデータを生成する(ステップS8)。そして、プロセッサ1は、生成した中間状態のマッピングデータをコンフィギュレーションメモリ2へ送信する。中間状態のマッピングデータは、コンフィギュレーションメモリ2に記憶される(ステップS9)。中間状態のマッピングデータについては、後述する。
次いで、プロセッサ1は、コンフィギュレーションメモリ2にデータ転送命令を送信する(ステップS10)。コンフィギュレーションメモリ2は、そのデータ転送命令を受信すると、記憶している中間状態のマッピングデータを演算器アレイ3に実装する(ステップS11)。また、プロセッサ1は、コンフィギュレーションメモリ2へデータ転送命令を送信すると、状態の整合が取れるまでの時間(平衡状態到達時間)tを算出する(ステップS12)。
この平衡状態到達時間tは、演算器アレイ3に中間状態のマッピングデータが実装される前に動作していたマッピングデータと中間状態のマッピングデータとで同じ機能が割り当てられたプロセッシングエレメントの内部記憶素子の状態が同一になるまでに要する時間のことである。平衡状態到達時間については、後述する。
次いで、プロセッサ1は、演算器アレイ3に中間状態のマッピングデータが実装されてから平衡状態到達時間tが経過したら、コンフィギュレーションメモリ2にデータ転送命令を送信する(ステップS13)。コンフィギュレーションメモリ2は、そのデータ転送命令を受信すると、記憶している最終マッピング情報を演算器アレイ3に実装する(ステップS14)。最終マッピング情報の実装に成功したら、プロセッサ1は、最終マッピングに関するマッピングデータをメモリ4に記憶させ、一連の処理を終了する。
図3は、中間状態のマッピングデータを説明する図である。図3において、符号21はプロセッシングエレメントへの処理の割り当てを移動させる前の状態であり、符号22はプロセッシングエレメントへの処理の割り当てを移動させた後の状態であり、符号23は移動前の状態と移動後の状態を統合した中間状態である。移動前の状態21、移動後の状態22および中間状態23は、それぞれ、前記既存アプリケーションのマッピングデータ、前記最終マッピングデータおよび前記中間状態のマッピングデータにより、プロセッシングエレメントの処理内容と内部接続ネットワークの信号経路が決められた状態である。
プロセッサ1は、移動後の状態22を規定するマッピングデータを生成する際に、プロセッシングエレメントに割り当てられる処理を、移動可能な処理と移動不可能な処理に区別する。移動可能な処理とは、処理が割り当てられたプロセッシングエレメントにおける前記履歴依存期間が有限となる処理であり、移動後の状態22を規定するマッピングデータによるプロセッシングエレメントへの処理の割り当てにおいて、移動前の状態21を規定するマッピングデータにより割り当てられたプロセッシングエレメントとは異なるプロセッシングエレメントへの割り当てが許される処理のことである。例えば、内部にフリップフロップしかなく、ループ回路を形成していない回路構成の場合、履歴依存期間は有限であり、フリップフロップの段数となる。
移動不可能な処理とは、処理が割り当てられたプロセッシングエレメントにおける前記履歴依存期間が無限大(不定)となる処理であり、移動後の状態22を規定するマッピングデータによるプロセッシングエレメントへの処理の割り当てにおいて、移動前の状態21を規定するマッピングデータにより割り当てられたプロセッシングエレメントとは異なるプロセッシングエレメントへの割り当てが禁止される処理のことである。例えば、アルゴリズム等から推定できるような特殊な場合を除いて、レジスタファイルやメモリ素子に対応するプロセッシングエレメントでは、履歴依存期間が無限大となる。また、通常、ループ回路の履歴依存期間も無限大となる。以下、このような移動不可能な処理が割り当てられるプロセッシングエレメントのことを、固定プロセッシングエレメントと呼ぶ。
図4および図5は、それぞれ、移動可能な処理および移動不可能な処理が割り当てられたプロセッシングエレメントの一例を示す図である。図4および図5において、太線は、内部接続ネットワークの信号経路を示す。図4に示すプロセッシングエレメントでは、セレクタ31により演算器32に前段のプロセッシングエレメント(図示せず)から二つの信号が入力し、その二つの入力信号の演算結果をセレクタ33を介して後段のプロセッシングエレメント(図示せず)へ出力する回路構成となっている。この場合には、履歴依存期間が有限となり、移動可能な処理が割り当てられていることになる。
図5に示すプロセッシングエレメントでは、演算器32に前段のプロセッシングエレメント(図示せず)から一つの信号が入力するとともに、演算器32の出力信号がレジスタ34およびセレクタ31を介して演算器32のもう一方の入力信号として入力し、レジスタ34の出力信号をセレクタ33を介して後段のプロセッシングエレメント(図示せず)へ出力する回路構成となっている。この場合には、履歴依存期間が無限大となり、移動不可能な処理が割り当てられていることになる。
図3において、α1、α6およびα10の処理は、移動不可能な処理であり、これらの処理が割り当てられたプロセッシングエレメントが固定プロセッシングエレメントである。前記既存アプリケーションのマッピングデータから前記最終マッピングデータまたは前記中間状態のマッピングデータを生成する際には、次のような制約条件がある。図3に示すように、第1の制約条件として、既存アプリケーションのマッピングデータにより移動不可能な処理(α1、α6およびα10)が割り当てられた固定プロセッシングエレメントについては、最終マッピングデータによっても同じ処理が割り当てられるようにする。つまり、固定プロセッシングエレメントの物理的な位置を変更しない。
第2の制約条件として、移動可能な処理(α2、α3、α4、α5、α7、α8およびα9)のうち、既存アプリケーションのマッピングデータによるプロセッシングエレメントや信号経路の割り当てが最終マッピングデータによる割り当てにおいて変更される処理については、図3において破線の楕円24で囲むように、新たに割り当てられるプロセッシングエレメントや信号経路が既存アプリケーションのマッピングデータによるプロセッシングエレメントや信号経路と競合しないようにする。
つまり、既存アプリケーションのマッピングデータによりある処理が割り当てられたプロセッシングエレメントに、最終マッピングデータによって別の処理を割り当てたり、既存アプリケーションのマッピングデータによりあるデータの転送に使用されるデータ経路を、最終マッピングデータによって別のデータの転送に使用したりしてはいけない。ただし、固定プロセッシングエレメントの入力については、データ経路を変更することができる。
プロセッサ1は、上述した制約条件の下で生成した最終マッピングデータから既存アプリケーションに対する部分(移動後の状態22に対応)のみを抽出し、既存アプリケーションのマッピングデータ(移動前の状態21)と合成して中間状態のマッピングデータ(中間状態23に対応)を生成する。中間状態のマッピングデータは、以下のようにして生成される。プロセッサ1は、プロセッシングエレメントに、移動前の状態21に対応するマッピングデータおよび移動後の状態22に対応するマッピングデータのいずれか一方で割り当てられた処理を割り当てる。これは、上述した制約条件があることによって、これら二つのマッピングデータにおいて、同一のプロセッシングエレメントに異なる処理が割り当てられることがないからである。
また、プロセッサ1は、データ経路については、移動前の状態21に対応するマッピングデータによるデータ経路と移動後の状態22に対応するマッピングデータによるデータ経路の両方とする。これは、固定プロセッシングエレメントの入力を除いて、異なるデータが衝突することがないからである。ただし、移動前の状態21に対応するマッピングデータと移動後の状態22に対応するマッピングデータとで、固定プロセッシングエレメントに対するデータの転送元が異なっている場合がある。
例えば、図3のα10の処理が割り当てられたプロセッシングエレメントが、これに該当する。この場合には、プロセッサ1は、中間状態のマッピングデータにおける固定プロセッシングエレメントに対するデータ入力経路として、移動前の状態21に対応するマッピングデータにおける経路とする。従って、図3において破線の楕円25で囲むように、中間状態のマッピングデータ(中間状態23に対応)においては、移動後の状態22に対応するマッピングデータにおけるα8のプロセッシングエレメントとα10のプロセッシングエレメントの間のデータ経路は、接続されない。このような制約条件の下で、中間状態のマッピングデータが生成される。
図3から明らかなように、中間状態のマッピングデータ(中間状態23に対応)は、既存アプリケーションのマッピングデータ(移動前の状態21)のうち、一部分を複製し、それに新たな部分を差分として付加した回路となる。複製の回路内にフリップフロップ等の記憶素子がある場合、差分となる付加回路では、既存アプリケーションのマッピングデータ(移動前の状態21)による元の回路と記憶素子の内部状態が異なる。
そこで、演算器アレイ3に中間状態のマッピングデータを実装した後、複製の回路と元の回路の状態が同じになるまでの時間として、前記平衡状態到達時間が算出される。平衡状態到達時間は、例えば、リセット直後のように、内部の記憶素子のデータが不定または初期値に設定され、その記憶素子のデータが履歴に依存しない状態からタイミングを算出する。また、平衡状態到達時間のカウントは、そのような条件が満たされるタイミングから開始される。
回路全体の平衡状態到達時間(TA)は、次の(1)式および(2)式から算出される。ただし、τpは、移動後のプロセッシングエレメントpが移動前のプロセッシングエレメントと同一状態に到達する平衡状態到達時間(クロック数)であり、tpは、異なる状態にあるプロセッシングエレメントpに対して同一信号が入力した場合に到達する平衡状態到達時間(クロック数)であり、lp-qは、プロセッシングエレメントpとプロセッシングエレメントqの間の到達時間(クロック数)である。固定プロセッシングエレメントの平衡状態到達時間は0とする。
Figure 2009049649
Figure 2009049649
図6および図7は、回路全体の平衡状態到達時間を説明する図である。図6に示す回路では、プロセッシングエレメント41間の横方向のデータ転送は、フリップフロップ42を経由して行われる。従って、データが横方向に転送される場合と縦方向に転送される場合とでは、遅延が異なるので、マッピングによって回路全体の遅延が異なることなる。そのため、データ経路を考慮して回路全体の平衡状態到達時間を算出する必要がある。
例えば、図7に示すようなデータ経路の場合、C1のプロセッシングエレメントとC4のプロセッシングエレメントの間、およびC4のプロセッシングエレメントとC6のプロセッシングエレメントの間に、それぞれ、フリップフロップ43,44がある。従って、その部分での遅延に、フリップフロップ43,44による遅延として1を加える必要がある。
図7に示す例では、C4のプロセッシングエレメントの平衡状態到達時間は、C1のプロセッシングエレメントからの経路では3(=2+1)であり、C3のプロセッシングエレメントからの経路では4(=2+2)である。従って、C3のプロセッシングエレメントからの経路が律束となる。なお、図6および図7において、塗り潰されたプロセッシングエレメント45は、固定プロセッシングエレメントである。
平衡状態到達時間に上限を設定し、この上限を、中間状態のマッピングデータを生成する際の第3の制約条件としてもよい。すなわち、第3の制約条件によれば、中間状態のマッピングデータの平衡状態到達時間は、この上限値以下となる。この場合、この上記条件を満たすまで、マッピングが再実行される。
また、平衡状態到達時間を算出する際に、中間状態のマッピングデータを実装するタイミングを限定条件として加えてもよい。そうすれば、平衡状態到達時間を短縮することができるので、短時間で最終マッピングデータを実装することができる。例えば、すべてのフリップフロップをリセットした直後に中間状態のマッピングデータを実装する、という条件の場合、リセットによりすべてのフリップフロップが例えば0に初期化されるので、複製の回路と元の回路とで差がない。従って、この場合には、平衡状態到達時間を0とすることができる。
さらに、平衡状態到達時間が0である場合、中間状態のマッピングデータを実装せずに、既存アプリケーションのマッピングデータが実装されている状態から、直接、最終マッピングデータを実装するようにしてもよい。このようにすれば、より短時間で最終マッピングデータを実装することができる。
(実施の形態2)
図8は、この発明の実施の形態2にかかる集積回路装置の構成を示すブロック図である。図8に示すように、実施の形態2では、シーケンサ11とタイミングレジスタ12が追加されており、これらシーケンサ11およびタイミングレジスタ12とプロセッサ1により制御装置としての機能が実現される。これらシーケンサ11およびタイミングレジスタ12は、コンフィギュレーションデータバス5に接続されている。シーケンサ11は、コンフィギュレーションメモリ2、演算器アレイ3およびタイミングレジスタ12に接続されている。
タイミングレジスタ12は、演算器アレイ3により算出された平衡状態到達時間を記憶する。シーケンサ11は、タイミングレジスタ12を監視し、コンフィギュレーションメモリ2から演算器アレイ3へマッピングデータを転送するタイミングを制御する。従って、実施の形態2では、プロセッサ1は、シーケンサ11により実現される機能を除いた処理を行う。その他の構成は、実施の形態1と同じである。
また、実施の形態2では、第1メモリ13に論理的なデータフローグラフが記憶され、第2メモリ14に現在動作中のマッピングデータが記憶され、データフローグラフと現在動作中のマッピングデータが別々に管理される。これら第1メモリ13および第2メモリ14は、コンフィギュレーションデータバス5に接続されている。
図9は、この発明の実施の形態2にかかる集積回路装置の処理手順を示すフローチャートである。図9に示すように、あるアプリケーションの動作中に、プロセッサ1が、別のアプリケーションの追加を指示するアプリケーション追加指示を外部から受信すると(ステップS21)、プロセッサ1は、第1メモリ13に追加アプリケーション情報要求を送信する(ステップS22)。そして、プロセッサ1は、第1メモリ13から追加アプリケーションのデータフローグラフを読み込む(ステップS23)。
また、プロセッサ1は、第1メモリ13および第2メモリ14にマッピング情報要求を送信する(ステップS24)。そして、プロセッサ1は、第1メモリ13および第2メモリ14から既存アプリケーションのデータフローグラフおよびマッピング情報を読み込む(ステップS25)。ここで、既存アプリケーションとして、複数のアプリケーションが動作していてもよい。
次いで、実施の形態1のステップS6からステップS9までと同様に、プロセッサ1は、最終マッピングデータの生成(ステップS26)、最終マッピングデータの送信(ステップS27)、中間状態のマッピングデータの生成(ステップS28)および中間状態のマッピングデータの送信(ステップS29)を順次行う。次いで、プロセッサ1は、状態の整合が取れるまでの時間(平衡状態到達時間)tを算出する(ステップS30)。そして、プロセッサ1は、生成した平衡状態到達時間tをタイミングレジスタ12へ送信する。平衡状態到達時間tは、タイミングレジスタ12に記憶される(ステップS31)。
次いで、プロセッサ1は、シーケンサ11に中間状態のマッピングデータの実行開始を指示する(ステップS32)。シーケンサ11は、その中間マッピング開始指示を受け取ると、コンフィギュレーションメモリ2にデータ転送命令を送信する(ステップS33)。コンフィギュレーションメモリ2は、そのデータ転送命令を受信すると、記憶している中間状態のマッピングデータを演算器アレイ3に実装する(ステップS34)。
同時に、シーケンサ11は、タイミングレジスタ12を監視する(ステップS35)。そして、シーケンサ11は、中間状態のマッピングデータが演算器アレイ3に実装されてから、タイミングレジスタ12に記憶されている平衡状態到達時間tが経過したら、コンフィギュレーションメモリ2にデータ転送命令を送信する(ステップS36)。コンフィギュレーションメモリ2は、そのデータ転送命令を受信すると、記憶している最終マッピング情報を演算器アレイ3に実装する(ステップS37)。最終マッピング情報の実装に成功したら、プロセッサ1は、最終マッピングに関するマッピングデータを第2メモリ14に記憶させ、一連の処理を終了する。
以上説明したように、各実施の形態によれば、演算器アレイ3の回路構成が、既存アプリケーションのマッピングデータを実装した状態から、一旦、中間状態のマッピングデータを実装する状態を経てから、最終マッピングデータを実装する状態に移行する。従って、アプリケーションが動作している途中で、処理中のデータを破壊することなく、演算器アレイ3の回路構成を変更することができる。
また、あるアプリケーションが動作している演算器アレイ3に別のアプリケーションを追加して実装する際に、演算器アレイ3の回路構成が、既存アプリケーションのマッピングデータを実装した状態から、一旦、中間状態のマッピングデータを実装する状態を経てから、最終マッピングデータを実装する状態に移行する。従って、あるアプリケーションが動作している途中で、処理中のデータを破壊することなく、また、実行中の処理を中断することなく、別のアプリケーションを新たに実装して動作させることができる。
以上のように、本発明にかかる集積回路装置は、複数のアプリケーションが実装される演算装置に有用であり、特に、無線通信方式に応じて演算装置の回路構成を変える必要のある移動通信システムに適している。
この発明の実施の形態1にかかる集積回路装置の構成を示すブロック図である。 この発明の実施の形態1にかかる集積回路装置の処理手順を示すフローチャートである。 処理の移動前と移動後のマッピングデータから生成される中間状態のマッピングデータを説明する図である。 移動可能な処理が割り当てられたプロセッシングエレメントの一例を示す図である。 移動不可能な処理が割り当てられたプロセッシングエレメントの一例を示す図である。 回路全体の平衡状態到達時間を説明する図である。 回路全体の平衡状態到達時間を説明する図である。 この発明の実施の形態2にかかる集積回路装置の構成を示すブロック図である。 この発明の実施の形態2にかかる集積回路装置の処理手順を示すフローチャートである。
符号の説明
1 プロセッサ
2 コンフィギュレーションメモリ
3 演算器アレイ
4,13,14 メモリ
11 シーケンサ
12 タイミングレジスタ

Claims (8)

  1. 命令を実行可能な複数のプロセッシングエレメントおよび該プロセッシングエレメント間を接続する内部接続ネットワークを備える演算装置と、
    アプリケーションのデータフローグラフに基づいて前記各プロセッシングエレメントの処理内容と前記内部接続ネットワークの信号経路を規定するマッピングデータを生成する制御装置と、
    を備え、
    前記制御装置は、第1のデータフローグラフに基づいて生成した実装中の第1のアプリケーションの第1のマッピングデータと、前記第1のデータフローグラフに基づいて生成した前記第1のアプリケーションの、前記第1のマッピングデータと異なる第2のマッピングデータと、を統合した第3のマッピングデータを生成し、該第3のマッピングデータに基づいて前記演算装置の回路構成を構築した後、前記第2のマッピングデータに基づいて前記演算装置の回路構成を構築することを特徴とする集積回路装置。
  2. 前記制御装置は、前記第1のアプリケーションが動作している前記演算装置に第2のアプリケーションを追加して実装する際に、前記第1のアプリケーションと前記第2のアプリケーションとの両方が実装できるように生成した、前記第1のアプリケーションの第2のマッピングデータと前記第2のアプリケーションの第4のマッピングデータと、を統合した第5のマッピングデータを生成し、前記第3のマッピングデータに基づいて前記演算装置の回路構成を構築した後、前記第5のマッピングデータに基づいて前記演算装置の回路構成を構築することを特徴とする請求項1に記載の集積回路装置。
  3. 前記制御装置は、前記第2のマッピングデータを生成する際に、前記第1のマッピングデータにより割り当てられたプロセッシングエレメントから別のプロセッシングエレメントへの割り当ての変更が禁止される前記第1のアプリケーションの処理を、前記第1のマッピングデータにより割り当てられたプロセッシングエレメントと同じプロセッシングエレメントに割り当てることを特徴とする請求項2に記載の集積回路装置。
  4. 前記制御装置は、前記第1のマッピングデータと前記第3のマッピングデータで同じ機能が割り当てられたそれぞれのプロセッシングエレメントの内部記憶素子にて、同一の信号が入力された場合に、異なる内部状態が同一の状態になるまでに要する時間を平衡状態到達時間として算出し、前記第3のマッピングデータに基づいて前記演算装置の回路構成を構築した後、少なくとも前記平衡状態到達時間が経過してから、前記第5のマッピングデータに基づいて前記演算装置の回路構成を構築することを特徴とする請求項3に記載の集積回路装置。
  5. 前記制御装置は、処理が割り当てられたプロセッシングエレメントの内部記憶素子のデータ保持期間が不定であり、前記平衡状態到達時間を規定できない処理を、別のプロセッシングエレメントへの割り当ての変更が禁止される処理とすることを特徴とする請求項4に記載の集積回路装置。
  6. 前記制御装置は、各プロセッシングエレメントの内部記憶素子のデータが不定または初期値に設定した状態を開始状態として前記平衡状態到達時間を算出することを特徴とする請求項4に記載の集積回路装置。
  7. 前記制御装置は、前記平衡状態到達時間が0である場合、前記第3のマッピングデータに基づいて前記演算装置の回路構成を構築する処理を省略し、前記第1のマッピングデータに基づいて構築された回路構成から、前記第5のマッピングデータに基づいて構築される回路構成に移行することを特徴とする請求項4に記載の集積回路装置。
  8. 前記制御装置は、前記平衡状態到達時間が予め設定された上限値以下になるように、前記第2のマッピングデータを生成することを特徴とする請求項4に記載の集積回路装置。
JP2007213029A 2007-08-17 2007-08-17 集積回路装置 Expired - Fee Related JP5151311B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007213029A JP5151311B2 (ja) 2007-08-17 2007-08-17 集積回路装置
US12/123,853 US7586326B2 (en) 2007-08-17 2008-05-20 Integrated circuit apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007213029A JP5151311B2 (ja) 2007-08-17 2007-08-17 集積回路装置

Publications (2)

Publication Number Publication Date
JP2009049649A true JP2009049649A (ja) 2009-03-05
JP5151311B2 JP5151311B2 (ja) 2013-02-27

Family

ID=40362468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007213029A Expired - Fee Related JP5151311B2 (ja) 2007-08-17 2007-08-17 集積回路装置

Country Status (2)

Country Link
US (1) US7586326B2 (ja)
JP (1) JP5151311B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4962305B2 (ja) * 2007-12-26 2012-06-27 富士通セミコンダクター株式会社 リコンフィギュラブル回路
KR101802947B1 (ko) 2011-08-31 2017-12-29 삼성전자주식회사 논리 장치 및 논리 장치의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844581A (ja) * 1994-07-29 1996-02-16 Fujitsu Ltd 自己修復機能付き情報処理装置
JP2005157653A (ja) * 2003-11-25 2005-06-16 Ip Flex Kk データ処理装置および処理方法
WO2007060932A1 (ja) * 2005-11-25 2007-05-31 Matsushita Electric Industrial Co., Ltd. 動的再構成論理回路を有するマルチスレッドプロセッサ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594752B1 (en) * 1995-04-17 2003-07-15 Ricoh Company, Ltd. Meta-address architecture for parallel, dynamically reconfigurable computing
US5646545A (en) 1995-08-18 1997-07-08 Xilinx, Inc. Time multiplexed programmable logic device
JP2005122514A (ja) 2003-10-17 2005-05-12 Rikogaku Shinkokai プログラム共通制御のソフトウェア及びハードウェアで成る装置
US7109752B1 (en) * 2004-02-14 2006-09-19 Herman Schmit Configurable circuits, IC's, and systems
US7268586B1 (en) * 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
JP4675714B2 (ja) 2005-08-17 2011-04-27 富士通セミコンダクター株式会社 初期化回路を自動構築するリコンフィグ可能な集積回路装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844581A (ja) * 1994-07-29 1996-02-16 Fujitsu Ltd 自己修復機能付き情報処理装置
JP2005157653A (ja) * 2003-11-25 2005-06-16 Ip Flex Kk データ処理装置および処理方法
WO2007060932A1 (ja) * 2005-11-25 2007-05-31 Matsushita Electric Industrial Co., Ltd. 動的再構成論理回路を有するマルチスレッドプロセッサ

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200600915006; 川合浩之、山口佳樹、安永守利: '書き換え可能性を利用した耐故障性の改善について' 電子情報通信学会技術研究報告 DC2006-22 Vol.106 No.198, 20060725, p55-60, 電子情報通信学会 *
JPN6012029173; 信学技報 DC2006-22 *
JPN6012029173; 川合浩之、山口佳樹、安永守利: '書き換え可能性を利用した耐故障性の改善について' 電子情報通信学会技術研究報告 DC2006-22 Vol.106 No.198, 20060725, p55-60, 電子情報通信学会 *

Also Published As

Publication number Publication date
JP5151311B2 (ja) 2013-02-27
US7586326B2 (en) 2009-09-08
US20090045838A1 (en) 2009-02-19

Similar Documents

Publication Publication Date Title
JP4909588B2 (ja) 情報処理装置及び再構成デバイスの利用方法
CN106200760B (zh) 时钟管理电路、芯片上系统、时钟管理的方法
JP2021504829A (ja) ソフトウェア定義された量子コンピュータ
US11171652B2 (en) Method and apparatus for implementing configurable streaming networks
CN107886166B (zh) 一种执行人工神经网络运算的装置和方法
JP2008040734A (ja) 実行コードの生成方法及びプログラム
EP2778946A2 (en) Hybrid programmable many-core device with on-chip interconnect
JP4566180B2 (ja) 演算処理装置およびクロック制御方法
KR101360191B1 (ko) 코어스 그레인 어레이를 공유하는 방법 및 그 방법을이용한 프로세서
JP2006018514A (ja) 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
EP4128093A1 (en) Machine learning network implemented by statically scheduled instructions
Rashidi et al. Themis: A network bandwidth-aware collective scheduling policy for distributed training of dl models
WO2012132692A1 (ja) 並列処理システム及び並列処理システムの動作方法
JP5151311B2 (ja) 集積回路装置
JP4753895B2 (ja) 遅延調整回路を有するアレイ型プロセッサ
WO2021036421A1 (zh) 多核架构的同步信号产生电路、芯片和同步方法及装置
Soto et al. A self-adaptive hardware architecture with fault tolerance capabilities
Essig et al. On-demand instantiation of co-processors on dynamically reconfigurable FPGAs
Bapty et al. Uniform execution environment for dynamic reconfiguration
KR100734521B1 (ko) 시스템 온 칩을 위한 ip 모듈
JP2018206195A (ja) 演算システム、演算システムの制御方法およびプログラム
Helmstetter et al. A dynamic stream link for efficient data flow control in NoC based heterogeneous MPSoC
JP3091441B2 (ja) データ処理装置
JP2010033336A (ja) 信号処理装置及び信号処理方法
JP5495707B2 (ja) 並列信号処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121119

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees