JP5056644B2 - データ変換装置、データ変換方法及びプログラム - Google Patents

データ変換装置、データ変換方法及びプログラム Download PDF

Info

Publication number
JP5056644B2
JP5056644B2 JP2008187620A JP2008187620A JP5056644B2 JP 5056644 B2 JP5056644 B2 JP 5056644B2 JP 2008187620 A JP2008187620 A JP 2008187620A JP 2008187620 A JP2008187620 A JP 2008187620A JP 5056644 B2 JP5056644 B2 JP 5056644B2
Authority
JP
Japan
Prior art keywords
circuit
flow graph
data flow
data
divisions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008187620A
Other languages
English (en)
Other versions
JP2010026806A (ja
Inventor
準人 樋口
晋一 須藤
司睦 田原
学 松山
隆一 大関
利宏 鈴木
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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008187620A priority Critical patent/JP5056644B2/ja
Priority to US12/503,455 priority patent/US8291360B2/en
Publication of JP2010026806A publication Critical patent/JP2010026806A/ja
Application granted granted Critical
Publication of JP5056644B2 publication Critical patent/JP5056644B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Description

本発明は、データ変換装置、データ変換方法及びプログラムに関し、特に、動的再構成可能な回路に供給する回路構成情報の変換技術に関する。
近年、LSI等の半導体集積回路において、回路構成を動的に再構成し、用途に合わせて適宜切り替えることができる動的再構成可能な回路(以下、リコンフィグ回路)がある(特許文献1等参照)。リコンフィグ回路の実現方法の一つにマルチコンテキスト型がある。
マルチコンテキスト型のリコンフィグ回路は、ある機能を有する回路種(以下、プロセッシングエレメント(PE))を有する。そして、さまざまな種類のプロセッシングエレメントの動作と接続関係を規定した回路構成情報(以下、コンテキスト(面))をLSI上に展開することで布線論理を実現し、コンテキストを時系列で切り替えることでハードウェア資源を仮想化しつつ動作する。
このようにして実現される機能回路は、コンテキストの単位と切替可能なコンテキスト数の制限の中で動作しなくてはならない。しかし、コンテキストを切り替える契機や各コンテキストに割り当てるプロセッシングエレメント数等の設定は性能や仮想化効率へ影響する。
あるコンテキスト上の機能回路が処理するデータは、レジスタファイルや内部メモリ(内部RAM)等の記憶要素へ格納され、コンテキスト間でのデータ移動は記憶要素を介して行われる。したがって、あるコンテキストで実行するのは全体の機能回路のうち意味のある一つのタスクである必要はなく、単一の大きなタスクを時分割多重で実行するのにも用いられる。また、仮想化とは、例えば図18のコンテキスト切替ではContext#0(1800)とContext#1(1801)を交互に再構成しながら実行し、仮想的に図19のような機能回路(あるいはタスク)1900を実現していることをいう。
コンテキスト切替の制御は、各プロセッシングエレメントの動作の指定、プロセッシングエレメントの結線情報、何サイクル実行するかという切替の契機に関する制御あるいはコンテキストの実行終了を検出する機能など多岐に渡る。そのため、リコンフィグ回路は制御機構(以下、シーケンサ)を必要とし、シーケンサによりコンテキストに動的な要素を与えることができる。実行可能なコンテキスト面数はコンフィギュレーションメモリの分だけあり、コンフィギュレーションメモリがn面分の情報を持つとき、切替可能なコンテキスト数は最大n面である。
特開2007−188528号公報 特開2006−4345号公報 特開平10−256383号公報 特開2002−123563号公報
マルチコンテキスト型のリコンフィグ回路では、n時分割多重をすると面積が1/nになる一方で、スループットも1/nになってしまう。しかし、分割前の回路ではすべての演算器が必ずしも常に動作しているとは限らない。したがって、演算器の利用効率を高めれば、性能低下を抑えることが可能である。また、そのような工夫を施すことで、現状のリコンフィグ回路においても効率よくパイプライン化動作を維持できる機構を整えつつある。
近年のリコンフィグ回路は、構成を高速で切り替えられ、かつコンテキスト間のデータの受け渡しのオーバーヘッドがなくなっているため、潜在的にパイプライン動作可能だと考えられる。ただし、どのような工夫を施せばパイプラインを維持したままリコンフィグ回路に最適な制御を与えられるかという方法については定まっておらず、現状ではタスク単位での切り替えやステートマシンの状態割り当てが適用されている。
タスク単位での切り替えは、実現したい機能回路からコンテキストへの分割が比較的容易であるが、ひとつのタスクの処理が終了するまでコンテキストを切り替えられず、連続する複数のタスク間でパイプラインを分断してしまう。ステートマシンの状態遷移に伴う切り替え方法は、C言語を始めとする高級言語による機能記述からの変換と親和性が高く、例えば状態遷移に伴う選択実行をコンテキスト切り替えで実現する方式がある。しかし、複数の状態が同時にパイプライン化動作できず、常に1状態の中でデータが処理される。このような分割方法においては、分割前の機能回路が本来パイプライン動作が可能な場合でも、逐次処理タスクや状態遷移機械へ変換されることが問題であった。
本発明は、分割前のパイプライン動作可能なデータフローグラフに対してパイプライン動作を維持するように分割を施し、マルチコンテキスト型のリコンフィグ回路の性能低下を抑制することを目的とする。
本発明の一観点によれば、動的に再構成可能な回路に係る回路記述からデータフローグラフを生成する第1の生成部と、第1の生成部で生成されたデータフローグラフを分割する分割数を決定する分割数決定部と、動的に再構成可能な回路のリソースを決定された分割数倍分有する仮想回路を作成する仮想回路作成部と、前記回路記述から作成された仮想回路に対するデータフローグラフを生成する第2の生成部と、第2の生成部により生成されたデータフローグラフに従って、仮想回路のリソースの割り当て及び調整を行い、回路構成情報を生成する変換部とを有するデータ変換装置が提供される。第2の生成部により得られたデータフローグラフに従って、仮想回路のリソースの割り当て及び調整を行った結果、動的に再構成可能な回路の制約を満たさない場合には、変換部が分割数を増加させ、分割数決定後の処理を再度行う。
本発明によれば、パイプライン動作が可能なハードウェアに対してパイプラインを分断することなくコンテキスト切替を行うことで性能の低下を抑制することができる。さらには、元のデータフローグラフからコンテキスト切替に適したデータフローグラフへの自動変換装置によってユーザの負担を軽減することができる。
以下、本発明の実施形態を図面に基づいて説明する。
本発明の一実施形態に係るデータ変換装置は、マルチコンテキスト型のリコンフィグ回路に供給する回路構成情報(コンテキスト)に関し、パイプライン化ハードウェアに対しパイプラインを維持したままコンテキスト切替によりハードウェアを仮想化しつつ、性能の低下を抑えるよう分割を施す。ここで、パイプライン化ハードウェアは、しばしばデータフローグラフ(DFG)として表現される。以下では、実現される機能回路とデータフローグラフは同じものとして扱う。
コンテキスト切替でパイプラインを維持するには、煩雑な制御が必要とされる。そのような制御自体は、リコンフィグ回路に設けられたシーケンサによって実現されるものの、従来においては、その手順は開発者が与えなければならず、開発者にとって大きな負担となっている。データフローグラフに対してパイプラインを維持しつつ分割を施す際の要件には、次のようなものがある。
(1)コンテキスト間でプロセッシングエレメントの使いまわしを考える場合には、どのコンテキストでどの回路として振舞うかをスケジュールする必要がある。
(2)物理的なコンテキストに応じて、分割数と切替えサイクルを決めなくてはならない。
(3)調整なしに分割されたデータフローグラフは、そのままでは単一のコンテキストに収まらないこともあり、またそれぞれの使用PEの偏りも生じる。そのため、分割数を変更するか、コンテキスト間での使用プロセッシングエレメント数を平均化するようにデータフローグラフに変更を加える必要がある。
(4)対象とするリコンフィグ回路や周辺アーキテクチャに依存する制御とのタイミング的な整合性を保つようスケジュールする、又はデータフローグラフを変更する必要がある。
(5)前記(1)〜(4)での操作や変更に伴って、データの合流(データ入力やデータ出力に係るタイミング)や依存関係(データの順序等)に不整合が生じないようにデータフローグラフのタイミング調整が必要になる。
上述した要件はリコンフィグ回路の最大面数とコンテキストあたりのプロセッシングエレメント数に依存しているが、仮想化効率と性能はトレードオフの関係であり、どのような方針で(1)〜(5)の要件を満たすようデータフローグラフを調整するかが重要である。
上述したように、現状のコンテキスト切替はタスク単位など大きな単位で切替を行っているため、切替の頻度は数サイクル〜数十サイクルに一度である。多重度はパイプラインのスループットと直接関連するので、本実施形態では、多重度をできるだけ下げて性能の低下を抑えるために、できるだけ少ないサイクルでコンテキストを切り替えるようにする。以下では、パイプライン維持を目的とし、上述した(1)〜(5)の要件を満たすような分割方法を細分化コンテキスト切替とも呼ぶ。また、分割された各コンテキストをサブコンテキストとも呼ぶ。
細分化コンテキスト切替が必要となるのは、リコンフィグ回路において一度に利用できる物理的なコンフィギュレーションに収まらない機能回路を動作させたい場合である。リコンフィグ回路に収まるかどうか、すなわち所望の機能回路をマッピング可能かどうかはリコンフィグ回路向けコンパイラによって判断される。本実施形態では、これらのツールを利用することで分割数を見積もったり分割数を変更したりする。
図1は、本発明の一実施形態に係るデータ変換装置を含むシステム構成例を示す図である。
図1において、本実施形態に係るデータ変換装置10は、例えばパーソナル・コンピュータ、ワークステーション等である。データ変換装置10は、リコンフィグ用コンパイラ及び細分化コンテキスト切替処理に係るプログラムを有し、RTLやC言語を用いて示される回路記述11を基に、リコンフィグ回路30で所望の機能回路を実現するための回路構成情報等を含む実行可能データ12を生成する。
データ変換装置10で生成された実行可能データは、ローダ20を介してリコンフィグ回路30に供給される。リコンフィグ回路30は、コンフィギュレーションメモリ31、シーケンサ32、処理回路33、及び内部メモリ(RAM)/レジスタ34を有する。
ローダ20を介して入力されたコンテキスト(回路構成情報)は、コンフィギュレーションメモリ31に格納される。シーケンサ32は、コンフィギュレーションメモリ31からコンテキスト(回路構成情報)を読み出して処理回路33に供給する。そして、シーケンサ32は、処理回路33から実行終了した旨の通知を受けると、次のコンテキスト(回路構成情報)をコンフィギュレーションメモリ31から読み出して処理回路33に供給する。
処理回路33は、複数のプロセッシングエレメントを有し、シーケンサ32より供給されるコンテキスト(回路構成情報)に応じて、回路構成を動的に再構成する。内部メモリ/レジスタ34は、あるコンテキスト上の機能回路が処理するデータを格納するものであり、コンテキスト間でのデータの移動は内部メモリ/レジスタ34を用いて実現される。
図2は、本実施形態に係るデータ変換装置10のハードウェア構成例を示す図である。
データ変換装置10は、図2に示すように、CPU201と、ROM202と、RAM203と、操作部(CONS)209のコントローラ(CONSC)205と、表示部としてのディスプレイ(DISP)210のディスプレイコントローラ(DCONT)206と、ハードディスク(HD)211及びフレキシブルディスク等の記憶デバイス(STD)212のコントローラ(DCONT)207と、ネットワークインタフェースカード(NIC)208とが、システムバス204を介して互いに通信可能に接続された構成としている。
CPU201は、ROM202又はHD211に記憶されたソフトウェア(プログラム)、又はSTD212より供給されるソフトウェア(プログラム)を実行することで、システムバス204に接続された各構成部を総括的に制御する。すなわち、CPU201は、後述するような処理動作を行うための処理プログラムを、ROM202、HD211、又はSTD212から読み出して実行することで、後述するデータ変換動作を実現するための制御を行う。RAM203は、CPU201の主メモリ又はワークエリア等として機能する。
CONSC205は、CONS209や図示していないポインティングデバイス等からの指示入力を制御する。DISPC206は、DISP210の表示を制御する。DCONT207は、ブートプログラム、種々のアプリケーション、ユーザファイル、ネットワーク管理プログラム、及び後述するデータ変換動作における処理プログラム等を記憶するHD211及びSTD212とのアクセスを制御する。NIC208はネットワーク213上の他の装置と双方向にデータをやりとりする。
図3は、本実施形態におけるデータ変換装置10での処理動作例を示すフローチャートである。図3には、もっとも単純な細分化コンテキスト切替の処理手順を示している。以下、図3に示す各処理手順について説明する。
(論理コンパイル303及び物理コンパイル305)
例えば、C言語やRTL等によるユーザ高位設計記述のデータフローグラフへの変換は、既存のリコンフィグ回路向けコンパイラを利用可能である。
論理コンパイル303は、プロセッシングエレメントの数と配線ネットワークに制限がないと仮定して行うコンパイルであり、ユーザの設計記述301をターゲットとするリコンフィグ回路(ターゲットマシン)302のプロセッシングエレメント情報を用いた論理データフローグラフ304に変換する。したがって、論理データフローグラフ304は、リコンフィグ回路に係るアーキテクチャ依存が少ない、緩い制約でのハードウェア表現である。設計記述に記述ルール上のエラーがなければ論理コンパイル303により論理データフローグラフ304が生成される。
物理コンパイル305は、実際のリコンフィグ回路のプロセッシングエレメントの数や配線ネットワークの制限の上でユーザの設計記述を物理データフローグラフ307に変換する。物理データフローグラフ307は、リコンフィグ回路上での動作を表したハードウェア表現である。以下の処理手順の説明においては、論理コンパイル303及び物理コンパイル305は、公知のリコンフィグ回路向けコンパイラを利用するものとする。
(分割数計算:S1)
論理データフローグラフ304が物理的なコンテキストに収まらない場合には時分割多重化を行うがこのときデータフローグラフをいくつに分割するか、すなわちデータフローグラフを何面に折り畳むかを決めなければならない。例えば、論理データフローグラフ304が物理的なコンテキストの2倍のプロセッシングエレメントの使用を要求する場合には、少なくとも2面以上に折り畳まなくてはならない。設計記述301から後述の物理データフローグラフ305への変換では、回路の配置配線問題を含むため、分割数を多くとると解を得られる可能性が高まる。よって、例えば、分割数の計算は最低必要とされるプロセッシングエレメントのリソース数を満たす数以上になるように係数をかけて算出するか、又はユーザによって分割数を指定する方法をとってもよい。
分割数の計算手順の一例を図4に示す。
まず、CPU201は、ユーザが分割数を指定するか否かを判断する(S21)。その結果、ユーザが分割数を指定する場合には、ユーザ指定の数値を分割数として(S31)、処理を終了する。
一方、ユーザが分割数を指定しない場合には、CPU201は、変数iに1を代入する(S22)。ここで、変数iは、1、2、…、mであり、mはプロセッシングエレメントの種類の総数である。
次に、CPU201は、変数nに1を代入し(S23)、続いて論理データフローグラフ304により要求されているプロセッシングエレメント数Uiが、現実に使用可能な1コンテキストあたりのプロセッシングエレメント数Tiに変数nを乗じた数以上であるか否かを判定する。その結果、プロセッシングエレメント数Uiが、値Ti×n以上の場合には、変数nの値を1インクリメントして(S25)、ステップS24に戻る。一方、プロセッシングエレメント数Uiが、値Ti×nより小さい場合には、値Viとしてそのときの変数nの値を代入する(S26)。
次に、CPU201は、変数iが値mであるか否か、すなわちすべての種類のプロセッシングエレメントについて、値Viを求めたか否かを判断する(S27)。そして、変数iが値mでない場合には、CPU201は、変数iの値を1インクリメントして(S28)、ステップS23に戻り、すべての種類のプロセッシングエレメントについて値Viが求まるまで上述した処理を繰り返す。
CPU201は、変数iが値mである、すなわちすべての種類のプロセッシングエレメントについて値Viを求めたと判断した場合には、値V1〜Vmの中から最大値を求める(S29)。さらに、CPU201は、ステップS29で求めた値に係数kをかけて分割数とし(S30)、処理を終了する。ここで、係数kは、1以上の値であり、プロセッシングエレメントのリソース数に余裕を持たせるために乗じている。なお、係数kをかけることなく、ステップS29で求めた値を分割数としてもよい。
(分割数判定:S2)
分割数計算S1で得られた分割数が、コンテキスト切替可能面数以下であるか(コンテキストをコンフィギュレーションメモリに格納可能であるか)を判定する。その結果、分割数計算S1で得られた分割数がコンテキスト切替可能面数より大きい場合には、物理的に収まらないのでエラー処理S14を行い、処理を終了する。
(ループ周期計算:S3)
論理データフローグラフ304にループバックがある場合には、データフローグラフの合流点とそのときのサブコンテキスト(以下、合流面)を一致させなくてはならない。そのため、分割数とコンテキスト実行サイクルは、パイプラインループの実行周期に依存する。そこで、ループ周期計算では、合流面を一致させるようにサブコンテキストの実行周期を決定する。
なお、周期の決め方は数多く考えられるが、以下に算出方法の例を示す。なお、以下に示す例は、一例であり、これに限定されるものではない。
(1)多重ループが一つのみ、あるいは全てのパイプラインループの周期が同一の場合
(1−a)分割数がパイプラインループの周期の約数の場合
1サイクル毎にコンテキストを切替える。折り畳みサイクル(全てのサブコンテキストを一巡するのに掛かるサイクル数)は分割数と同じとする。例えば、パイプラインループの周期が8サイクルで、分割数が4の場合には、折り畳みサイクルは4となる。
(1−b)分割数がパイプラインループの周期の1より大きい約数よりも少ない場合
パイプラインループの周期の約数のうち最小の数、ただし分割数より大きい数とする。例えば、パイプラインループの周期が8サイクルで、分割数が3の場合には、折り畳みサイクルは4となる。このとき、3サブコンテキスト中どれか1つは2サイクル実行されることになる。このようにサブコンテキスト毎に実行時間を調整する場合もある。
(1−c)分割数がパイプラインループの周期よりも多い場合
パイプラインループの周期を分割数に合わせた上で、1サイクル毎にコンテキストを切替える。例えば、分割数が7の場合には、パイプラインループの周期が6サイクル以下であっても7サイクルになるように調整を施す。
(2)全てのパイプラインループの周期の最大公約数が1より大きい場合
(2−a)分割数が公約数の場合
1サイクル毎にコンテキストを切替える。後は、(1−a)と同様である。
(2−b)分割数が1より大きい公約数よりも少ない場合
分割数より大きなものの中で最小の公約数を折り畳みサイクルとする。後は、(1−a)と同様である。
(2−c)それ以外
一番周期の長いループに他のループの周期を合わせる。後は、(1)の処理を行う。
(3)それ以外
一番周期の長いループに他のループの周期を合わせる。後は、(1)を適用する。
なお、ユーザがパイプラインループの周期を指定することも可能であり、実際にその周期でスケジュール可能な場合には、その周期を調整前のパイプラインループの周期として採用しても良い。例えば、(3)の場合にユーザが分割数の指定とパイプラインループの周期の指定を行うことで、(2−a)又は(2−b)の場合に変更することができ、ある程度パフォーマンスを制御することができる。
(仮想ターゲットマシン(仮想TM)作成:S4)
ターゲットマシンは、ターゲットとするリコンフィグ回路のアーキテクチャ情報のことで、主に動的再構成に必要な情報を含む。仮想ターゲットマシン306はプロセッシングエレメントやその配線(ネットワーク)を細分化コンテキスト切替によって期待される仮想的に大きな空間として定義したターゲットマシンであり、物理的なターゲットマシンと分割数から算出する。単純には、分割数倍の仮想ターゲットマシンが得られる。
仮想ターゲットマシンを作成する場合、仮想化できるプロセッシングエレメントとそうでないプロセッシングエレメントを分けて計算しなくてはならない。例えば、サブコンテキスト間で使いまわすような演算器については仮想化が可能であるが、複数コンテキストに渡って値を維持するレジスタやRAMについては仮想化することはできない。
(物理データフローグラフ変換(物理コンパイル):305)
物理データフローグラフ変換では仮想ターゲットマシン306に対して動作するデータフローグラフを生成する(仮想ターゲットマシン306を用いてコンパイルするとも言う)。物理データフローグラフ変換では、論理データフローグラフ変換と違い、配置配線を行うために、配置配線が完了しない、すなわち解が得られないことがある。その場合には、分割数を増やしてさらに大きな仮想ターゲットマシンを作成して物理コンパイル305を行えば解が得られやすくなる。
(PE動作サイクル割り当て:S5)
プロセッシングエレメント(PE)サイクル割り当ては、プロセッシングエレメントの動作サイクルのスケジューリング、すなわち物理データフローグラフ307の個々のプロセッシングエレメントに対し、どのサブコンテキストで実行されるかを指定するものである。これは先に決定した分割数と切替周期から一意に決定する。
(合流面調整:S6)
動作サイクルが割り当てられた物理データフローグラフを見ると、合流点でサイクルが一致しない、つまりデータの入出力タイミングに不整合が生じることがある。これを調整するために遅延などを挿入し調整する。
(PE調整:S7)
サブコンテキストは、現実のターゲットマシン(実ターゲットマシン)のプロセッシングエレメントのリソースしか使用できないため、PE動作サイクル割り当てS5の結果、プロセッシングエレメントが足りなくなるサブコンテキストが発生する場合がある。これは、使用プロセッシングエレメントがコンテキスト間で偏ってしまった結果である。この場合にも、遅延を挿入することで別のサブコンテキストへプロセッシングエレメントを移動させることができるので、遅延によって調整を行う。
(配線調整及び判定:S8、S9、S13)
上述した調整によって、もとの物理データフローグラフに変更が加えられたこととなるので、それに伴い、配線等の調整も必要となってくる(S8)。合流面調整、PE調整、配線調整によって改めてハードウェア制約を満足しているか判定し(S9)、制約を満たさなかった場合には、仮想ターゲットマシンを大きくとる(分割数を増加させる)(S13)などして再コンパイルする。
(PEリセット動作設定、シーケンサ設定、アセンブラ生成:S10、S11、S12)
PEリセット動作設定では、サブコンテキストで使用していないプロセッシングエレメントは誤動作がないようにリセット状態に設定する。
シーケンサ設定では、上述のように各種調整を施したデータフローグラフとPEリセット設定をシーケンサの制御として設定する。すなわち、ハードウェアが実現するときに、どの部分で情報を書き込むかを設定する。
アセンブラ生成では、シーケンサ設定をリコンフィグ回路用のアセンブラが解釈可能なアセンブリ言語へと変換する。
本実施形態によれば、実ターゲットマシンに対して分割数倍の仮想ターゲットマシンを用いて物理コンパイルを行い、その後、合流面調整、PE調整、配線調整を行うことによって、所望の機能回路構成を実現する場合のプロセッシングエレメント等の使用効率を向上させることができる。また、データ変換装置を用いて、コンテキスト切替に適したデータフローグラフへの変換を自動的に行うことでユーザの負担を軽減することができる。
本実施形態におけるデータ変換の一例を示す。以下では、データフローグラフにループバックがない場合と、ループバックがある場合とについてそれぞれ説明する。
(ループバックを持たない例)
あるリコンフィグ回路が図5に示すプロセッシングエレメント501、502、503、504、505からなる実ターゲットマシン500をひとつのコンテキストとして持つと想定する。図5(A)に示すプロセッシングエレメント501〜505はすべて1サイクルで処理結果を出力するものとし、特にDelayと表記したものは1サイクル遅延させる1入力1出力のプロセッシングエレメントとする。図5(B)に示す実ターゲットマシン500は図5(A)に示す各種プロセッシングエレメント501〜505を一つずつ搭載していることを表している。
ここで、図6に示すプロセッシングエレメント601〜609からなる論理データフローグラフ600をリコンフィグ回路上で動作させることを考える。論理データフローグラフ600の回路規模は、実ターゲットマシン500より大きいので、コンテキスト切替で論理データフローグラフ600を複数コンテキストに分割しなければならない。
論理データフローグラフ600で最も多く使用されているプロセッシングエレメント(PE2)に注目すると、少なくとも実ターゲットマシンの4倍のターゲットマシンが必要となる。そこで、本例では、図7に示すような実ターゲットマシン500の4倍に相当する仮想ターゲットマシン700を想定する。すなわち、分割数は4、コンテキストは4面分使用される。また、物理コンパイルによって図7に示す仮想ターゲットマシン700上で図6のデータフローグラフが実現可能であることが保証されているとする。
次に、PE動作サイクル割り当てを行う。図6に示すデータフローグラフ600で使用されるプロセッシングエレメントは全て1サイクルで演算が終了し、ループバックもないので、このパイプラインハードウェアは毎サイクルデータ入力が可能である。したがって、コンテキスト切替も毎サイクル切り替えることとする。分割数4、切替サイクルが毎サイクルの場合には、PE動作サイクルは図8に示すように割り当てられる。
ただし、コンテキスト番号は0から始まるとする。また、コンテキストの切替制御は、コンテキスト番号0から始めて、コンテキスト番号3まで達したらコンテキスト番号0へ戻るように循環することを前提とする。
動作サイクル周期が決まったら、データフローグラフの先頭から順にどのコンテキストで実行させるか割り当てていく。図7に示した仮想ターゲットマシン700を4つのコンテキストに分けて、図8に示す実行サイクルとコンテキスト番号の通りに割り振ると、図9に示すようになる。
コンテキスト番号0では、実行サイクル1で動作するPE1(901−0)、PE2(902−0)と、実行サイクル5で動作するPE1(607)が置かれるが、コンテキスト番号0ではPE1は一つしか置けないため、実行サイクル5で動作するPE1(607)をコンテキストに収まらないプロセッシングエレメントとする。逆に、PE3(903−0)、PE4(904−0)、Delay(905−0)に関してはコンテキスト番号0では使用されないため、未使用のプロセッシングエレメントとする。
同様に、コンテキスト番号1においても2つのPE2(608、609)が収まらない状態で、PE1(901−1)、PE4(904−1)、Delay(905−1)が未使用である。
次に、合流面について考えると、PE3、PE4のような入力について合流を持つプロセッシングエレメントに注目し、その入力タイミングが揃っているかチェックする。本例ではサイクル間のずれはみられないので調整は不要である。
次に、PE調整を行う。図9に示したコンテキスト番号0では1つのPE1(607)が足りないが、コンテキスト番号1ではPE1(901−1)は未使用となっている。そこで、コンテキスト番号1にコンテキスト番号0のコンテキストに収まらないPE1(607)を移動させることで使用率を上げる(図10)。そのために、図10に示すように、Delay(905−0)を用いてPE調整用遅延を挿入する。それに伴い、後段のプロセッシングエレメントもずれることになるので続けて後段のプロセッシングエレメントに対して調整を施す。本例では、図11に示すように、Delay(905−0)、Delay(905−2)の2箇所の遅延挿入でコンテキストに収まらないプロセッシングエレメントはなくなる。ところが、この調整によって2つの出力out0、out1の出力タイミングがずれるので、さらに出力タイミングを合わせるためにDelay(905−3)を用いた調整遅延を挿入する。
次に、配線調整を行う。図11に示すようにコンテキスト間を接続している配線は配線ネットワークの構成によっては制限があり、先のPE調整同様に配線リソースが不足する場合がある。しかし、これも遅延の挿入によって調整可能であるため、ここでは省略し、配線リソースは足りているものとする。
なお、ここまでの調整では遅延にDelayを用いるが、これが足りなくなり調整ができなくなった場合には分割数を増やして仮想ターゲットマシンを再度作り直せばよい。
以上の調整によって、図12に示すようなプロセッシングエレメント601〜609及び遅延調整のDelay1201〜1203からなるコンテキスト切替可能なデータフローグラフ600Aが得られた。結果的には遅延挿入によって図6に示したデータフローグラフ600を図12に示すデータフローグラフ600Aへ変換したことになる。図12に示すものでは、コンテキスト切替によって4サイクルに一度データを投入することができる。
次に、PEリセット動作設定を行う。図11に示した各未使用のプロセッシングエレメント901−2、901−3、903−0、903−2、904−0、904−1、904−3、905−1については別サイクルで動作していたPEの設定を引き継がないようにリセットをかける設定にしておく。
最後に上述したすべての動作設定をシーケンサに設定するようなアセンブラを生成する。
(ループバックがある例)
プロセッシングエレメントの種類は、上述したループバックがない例と同様とする。以下の例では、実ターゲットマシンを図13(A)に示すように2個のPE1(1301、1302)、1個のPE2(1303)、2個のPE3(1304、1305)、1個のPE4(1306)、3個のDelay(1307、1308、1309)からなる実ターゲットマシン1300とする。なお、Delay(1307、1308、1309)は図の上では重ねて表示してある。
ここで、図14に示すようなプロセッシングエレメント1401〜1409からなる論理データフローグラフ1400を考え、これに細分化コンテキスト切替を施す。使用するプロセッシングエレメント数を実ターゲットマシンと比べると、実ターゲットマシン1300の2倍のプロセッシングエレメントを必要とするので、図13(B)に示す仮想ターゲットマシン1310を用意する。すなわち、分割数は2である。
次に、ループ周期を計算する。図14に示す論理データフローグラフ1400では、ループの周期が5サイクルであるので、このデータフローグラフにデータを入力できるのは5サイクルに1回である。分割数2、ループ周期5サイクルのとき、2面のコンテキストをそれぞれ2サイクルと3サイクルに分けて実行するとループ周期と一致する。すでに図14ではコンテキストの割り振りがなされているが、これはコンテキスト番号0(Context#0)を2サイクル実行、コンテキスト番号1(Context#1)を3サイクル実行する場合の例である。
図14に基づいて、各コンテキストに使用するプロセッシングエレメントを割り振ったものを図15に示す。図15においては、Context#0ではPE2(1510)がコンテキストに収まらないが、Context#1ではPE2(1503−1)があまっている。そこで、Delayを挿入してPE2(1510)をContext#1へ割り振るようにする。ここで、移動させるプロセッシングエレメントは、Delay挿入によって影響を受ける後段のフローを減らすために、出力側のプロセッシングエレメントであるほうが望ましい。
図16は、上述した調整後のデータフローグラフであり、2つのDelay(1507−0、1508−0)が使われている。さらに出力タイミングを合わせるため、図17に示すように出力out1に対して2つのDelay(1509−0、1507−1)を挿入する。PEリセット動作以降の処理はループバックを持たない場合の例と同様であるので、説明は省略する。
なお、上述したデータ変換に係る処理動作は、例えばコンピュータのCPU又はMPU、RAM、ROMなどで構成できるものであり、RAMやROMに記憶されたプログラムが動作することによって実現でき、前記プログラムは本発明の実施形態に含まれる。また、コンピュータが前記機能を果たすように動作させるプログラムを、例えばCD−ROMのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものであり、前記プログラムを記録した記録媒体は本発明の実施形態に含まれる。前記プログラムを記録する記録媒体としては、CD−ROM以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
また、コンピュータがプログラムを実行し処理を行うことにより、前記実施形態の機能が実現されるプログラムプロダクトは、本発明の実施形態に含まれる。前記プログラムプロダクトとしては、前記実施形態の機能を実現するプログラム自体、前記プログラムが読み込まれたコンピュータ、ネットワークを介して通信可能に接続されたコンピュータに前記プログラムを提供可能な送信装置、及び当該送信装置を備えるネットワークシステム等がある。
また、コンピュータが供給されたプログラムを実行することにより前記実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)又は他のアプリケーションソフト等と共同して前記実施形態の機能が実現される場合や、供給されたプログラムの処理の全て又は一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて前記実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、本発明をネットワーク環境で利用するべく、全部又は一部のプログラムが他のコンピュータで実行されるようになっていても良い。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の一実施形態に係るデータ変換装置を含むシステム構成例を示す図である。 本実施形態に係るデータ変換装置のハードウェア構成例を示す図である。 本実施形態におけるデータ変換装置での処理動作例を示すフローチャートである。 本実施形態における分割数の計算手順の一例を示すフローチャートである。 本実施形態における実ターゲットマシンの一例を示す図である。 本実施形態におけるデータ変換の一例を説明するためのデータフローグラフを示す図である。 本実施形態における仮想ターゲットマシンの一例を示す図である。 本実施形態におけるデータ変換の一例を説明するための図である。 本実施形態におけるデータ変換の一例を説明するための図である。 本実施形態におけるデータ変換の一例を説明するための図である。 本実施形態におけるデータ変換の一例を説明するための図である。 本実施形態におけるデータ変換の一例を説明するためのデータフローグラフを示す図である。 本実施形態における実ターゲットマシン及び仮想ターゲットマシンの他の例を示す図である。 本実施形態におけるデータ変換の他の例を説明するためのデータフローグラフを示す図である。 本実施形態におけるデータ変換の他の例を説明するための図である。 本実施形態におけるデータ変換の他の例を説明するための図である。 本実施形態におけるデータ変換の他の例を説明するための図である。 従来のコンテキスト切替を説明するための図である。 図18に示したコンテキスト切替により実現される機能回路を示す図である。
符号の説明
10 データ変換装置
20 ローダ
30 リコンフィグ回路
31 コンフィギュレーションメモリ
32 シーケンサ
33 処理回路
34 内部メモリ/レジスタ
201 CPU
202 ROM
203 RAM
204 システムバス
205 コントローラ(CONSC)
206 ディスプレイコントローラ(DCONT)
207 コントローラ(DCONT)
208 ネットワークインタフェースカード
209 操作部
210 ディスプレイ
211 ハードディスク
212 記憶デバイス
213 外部ネットワーク
301 ユーザ高位設計記述
302 ターゲットマシン(TM)
303 論理コンパイル
304 論理データフローグラフ(DFG)
305 物理コンパイル
306 仮想ターゲットマシン(TM)
307 物理データフローグラフ(DFG)
500 プロセッシングエレメント(PE1〜PE5)からなる実ターゲットマシン
501 プロセッシングエレメント(PE1)
502 プロセッシングエレメント(PE2)
503 プロセッシングエレメント(PE3)
504 プロセッシングエレメント(PE4)
505 プロセッシングエレメント(Delay)
600 論理データフローグラフ(DFG)
700 仮想ターゲットマシン(TM)
910 コンテキストに収まらないプロセッシングエレメント
600A 細分化コンテキスト切替適用後のデータフローグラフ(DFG)
1300 実ターゲットマシン(TM)
1310 仮想ターゲットマシン(TM)
1400 論理データフローグラフ(DFG)
1800 Context #0のコンテキスト
1801 Context #1のコンテキスト
1900 データフローグラフ

Claims (8)

  1. 動的に再構成可能な回路に係る入力される回路記述を回路構成情報に変換するデータ変換装置であって、
    前記回路記述からデータフローグラフを生成する第1の生成部と、
    前記第1の生成部により生成されたデータフローグラフを分割する分割数を決定する分割数決定部と、
    前記動的に再構成可能な回路のリソースを前記分割数決定部により決定された分割数倍分有する仮想回路を作成する仮想回路作成部と、
    前記回路記述から前記仮想回路作成部により作成された仮想回路に対するデータフローグラフを生成する第2の生成部と、
    前記第2の生成部により生成されたデータフローグラフに従って、前記仮想回路のリソースの割り当て及び調整を行い、前記回路構成情報を生成する変換部とを有し、
    前記第2の生成部により得られたデータフローグラフに従って、前記仮想回路のリソースの割り当て及び調整を行った結果、前記動的に再構成可能な回路の制約を満たさない場合には、前記変換部が前記分割数を増加させ、前記分割数決定後の処理を再度行うことを特徴とするデータ変換装置。
  2. 前記変換部が、前記第2の生成部により得られたデータフローグラフに従って行う調整には、前記仮想回路のリソースに対するデータ入出力に係るタイミング調整、使用するリソースの配置調整、及びリソースに係る配線調整の少なくとも1つを含むことを特徴とする請求項1記載のデータ変換装置。
  3. 前記変換部は、前記第2の生成部により得られたデータフローグラフに従って、前記仮想回路のリソースの割り当て及び調整を行った結果、前記動的に再構成可能な回路の制約を満たす場合には前記回路構成情報を生成することを特徴とする請求項1又は2記載のデータ変換装置。
  4. 前記分割数決定部は、前記動的に再構成可能な回路のリソースに応じて、前記分割数を決定することを特徴とする請求項1〜の何れか1項に記載のデータ変換装置。
  5. 前記分割数決定部は、外部から前記分割数の指定を受けた場合には、当該分割数に決定することを特徴とする請求項記載のデータ変換装置。
  6. 前記回路記述から生成したデータフローグラフは、フィードバックループを含むことを特徴とする請求項1〜5の何れか1項に記載のデータ変換装置。
  7. 動的に再構成可能な回路に係る入力される回路記述を回路構成情報に変換するデータ変換装置のデータ変換方法であって、
    前記データ変換装置が有する第1の生成部が、前記回路記述をコンパイルしてデータフローグラフを生成する第1の生成工程と、
    前記データ変換装置が有する分割数決定部が、前記第1の生成工程で生成されたデータフローグラフを分割する分割数を決定する分割数決定工程と、
    前記データ変換装置が有する仮想回路作成部が、前記動的に再構成可能な回路のリソースを前記分割数決定工程で決定された分割数倍分有する仮想回路を作成する仮想回路作成工程と、
    前記データ変換装置が有する第2の生成部が、前記回路記述をコンパイルして前記仮想回路作成工程で作成された仮想回路に対するデータフローグラフを生成する第2の生成工程と、
    前記データ変換装置が有する変換部が、前記第2の生成工程で生成されたデータフローグラフに従って、前記仮想回路のリソースの割り当て及び調整を行い、前記回路構成情報を生成する変換工程とを有し、
    前記第2の生成工程にて得られたデータフローグラフに従って、前記仮想回路のリソースの割り当て及び調整を行った結果、前記動的に再構成可能な回路の制約を満たさない場合には、前記変換部が前記分割数を増加させ、前記分割数決定後の処理を再度行うことを特徴とするデータ変換方法。
  8. 入力される動的に再構成可能な回路に係る回路記述からデータフローグラフを生成する第1の生成ステップと、
    前記第1の生成ステップにて生成されたデータフローグラフを分割する分割数を決定する分割数決定ステップと、
    前記動的に再構成可能な回路のリソースを前記分割数決定ステップにて決定された分割数倍分有する仮想回路を作成する仮想回路作成ステップと、
    前記回路記述から前記仮想回路作成ステップにて作成された仮想回路に対するデータフローグラフを生成する第2の生成ステップと、
    前記第2の生成ステップにて生成されたデータフローグラフに従って、前記仮想回路のリソースの割り当て及び調整を行い、前記動的に再構成可能な回路の回路構成情報を生成する変換ステップとをコンピュータに実行させるとともに、
    前記第2の生成ステップにて得られたデータフローグラフに従って、前記仮想回路のリソースの割り当て及び調整を行った結果、前記動的に再構成可能な回路の制約を満たさない場合には、前記分割数を増加させ、前記分割数決定後の処理を再度実行させるためのプログラム。
JP2008187620A 2008-07-18 2008-07-18 データ変換装置、データ変換方法及びプログラム Expired - Fee Related JP5056644B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008187620A JP5056644B2 (ja) 2008-07-18 2008-07-18 データ変換装置、データ変換方法及びプログラム
US12/503,455 US8291360B2 (en) 2008-07-18 2009-07-15 Data conversion apparatus, method, and computer-readable recording medium storing program for generating circuit configuration information from circuit description

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008187620A JP5056644B2 (ja) 2008-07-18 2008-07-18 データ変換装置、データ変換方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2010026806A JP2010026806A (ja) 2010-02-04
JP5056644B2 true JP5056644B2 (ja) 2012-10-24

Family

ID=41531384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008187620A Expired - Fee Related JP5056644B2 (ja) 2008-07-18 2008-07-18 データ変換装置、データ変換方法及びプログラム

Country Status (2)

Country Link
US (1) US8291360B2 (ja)
JP (1) JP5056644B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555265B2 (en) 2010-05-04 2013-10-08 Google Inc. Parallel processing of data
US9116751B2 (en) * 2011-02-08 2015-08-25 Canon Kabushiki Kaisha Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor
JP5751669B2 (ja) * 2011-07-08 2015-07-22 ルネサスエレクトロニクス株式会社 言語変換処理方法及び言語変換処理プログラム
US10157060B2 (en) 2011-12-29 2018-12-18 Intel Corporation Method, device and system for control signaling in a data path module of a data stream processing engine
US9731456B2 (en) 2013-03-14 2017-08-15 Sabic Global Technologies B.V. Method of manufacturing a functionally graded article
JP5971214B2 (ja) * 2013-08-16 2016-08-17 富士ゼロックス株式会社 データ処理装置及びデータ処理プログラム
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US10042966B2 (en) * 2014-10-31 2018-08-07 Wave Computing, Inc. Computing resource allocation based on flow graph translation
US10402168B2 (en) 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10467183B2 (en) * 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10256383A (ja) 1997-03-12 1998-09-25 Toshiba Corp 半導体装置及びその回路構成方法
JP2002123563A (ja) 2000-10-13 2002-04-26 Nec Corp コンパイル方法および合成装置ならびに記録媒体
JP4029959B2 (ja) * 2001-08-31 2008-01-09 シャープ株式会社 演算器アロケーション設計装置および演算器アロケーション設計方法
JP4204039B2 (ja) * 2003-04-24 2009-01-07 シャープ株式会社 動作合成システム、動作合成方法、制御プログラム、可読記録媒体、論理回路の製造方法および論理回路
JP4275013B2 (ja) 2004-06-21 2009-06-10 三洋電機株式会社 データフローグラフ処理装置、処理装置、リコンフィギュラブル回路。
US7353162B2 (en) * 2005-02-11 2008-04-01 S2C, Inc. Scalable reconfigurable prototyping system and method
US20080092113A1 (en) * 2006-10-12 2008-04-17 Weinstein Randall K System and method for configuring a programmable electronic device to include an execution engine
JP4156010B2 (ja) 2007-03-19 2008-09-24 三洋電機株式会社 処理装置
JP2009157440A (ja) * 2007-12-25 2009-07-16 Toshiba Corp 高位合成装置、高位合成システム、及び高位合成方法

Also Published As

Publication number Publication date
US8291360B2 (en) 2012-10-16
JP2010026806A (ja) 2010-02-04
US20100017761A1 (en) 2010-01-21

Similar Documents

Publication Publication Date Title
JP5056644B2 (ja) データ変換装置、データ変換方法及びプログラム
JP5509107B2 (ja) 再構成可能なプログラマブルロジックデバイスコンピュータシステム
JP2005182654A (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
WO2015026233A1 (en) A computing platform, a reconfigurable hardware device and a method for simultaneously executing processes on dynamically reconfigurable hardware device, such as an fpga, as well as instruction set processors, such as a cpu, and a related computer readable medium.
JP3722351B2 (ja) 高位合成方法およびその実施に使用される記録媒体
Zha et al. Hetero-ViTAL: A virtualization stack for heterogeneous FPGA clusters
US20070028198A1 (en) Method and apparatus for allocating data paths to minimize unnecessary power consumption in functional units
US10671429B2 (en) Circuit assignment within reconfigurable device based on predicted shortest processing completion time
Gokhale et al. Co-synthesis to a hybrid RISC/FPGA architecture
US9740529B1 (en) High throughput synchronous resource-constrained scheduling for model-based design
Planas et al. AMA: Asynchronous management of accelerators for task-based programming models
JP4158458B2 (ja) 情報処理装置、その情報処理方法
US10983947B2 (en) Method and dynamically reconfigurable processor adapted for management of persistence of information across multiple instruction cycles
JP5229716B2 (ja) 動作合成システム、動作合成方法および動作合成用プログラム
Curtis et al. Rapid prototyping on the Georgia Tech digital signal multiprocessor
Kovačević et al. A solution for automatic parallelization of sequential assembly code
Hao et al. Network simplex method based multiple voltage scheduling in power-efficient high-level synthesis
Jaber et al. Reconfigurable and adaptive spark applications
Uddin Microgrid-The microthreaded many-core architecture
Chauhan et al. Reconfiguration of fpga for domain specific applications using embedded system approach
Abi Farraj et al. Reconfigurable and Adaptive Spark Applications
CN117725862A (zh) 基于多层中间表示的芯片硬件综合方法
Bazargan et al. Fast scheduling and placement methods for C to hardware/software compilation
PRANJUL ANALYSIS OF COMPUTE KERNELS AND IMPLEMENTATION ON FPGA OVERLAY ARCHITECTURES
Hermenier Online Management of Jobs in Clusters using Virtual Machines

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120528

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

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

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5056644

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

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

LAPS Cancellation because of no payment of annual fees