JP4962305B2 - リコンフィギュラブル回路 - Google Patents

リコンフィギュラブル回路 Download PDF

Info

Publication number
JP4962305B2
JP4962305B2 JP2007334498A JP2007334498A JP4962305B2 JP 4962305 B2 JP4962305 B2 JP 4962305B2 JP 2007334498 A JP2007334498 A JP 2007334498A JP 2007334498 A JP2007334498 A JP 2007334498A JP 4962305 B2 JP4962305 B2 JP 4962305B2
Authority
JP
Japan
Prior art keywords
immediate value
configuration
data
network
processor element
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
JP2007334498A
Other languages
English (en)
Other versions
JP2009157613A (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 JP2007334498A priority Critical patent/JP4962305B2/ja
Priority to US12/335,773 priority patent/US8607029B2/en
Publication of JP2009157613A publication Critical patent/JP2009157613A/ja
Application granted granted Critical
Publication of JP4962305B2 publication Critical patent/JP4962305B2/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
    • 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

Description

本発明は、一般に電子回路に関し、詳しくは動的に再構成可能なリコンフィギュラブル回路に関する。
プロセッサエレメントを用いたリコンフィギュラブル回路(動的再構成可能型回路)は、複数のプロセッサエレメントをアレイ状に配列し、縦横に配置したデータネットワークでこれらプロセッサエレメントを接続した構成となっている。プロセッサエレメントの演算機能及びネットワークを介したプロセッサエレメント間の接続関係を、ソフトウェアにより再構成可能に設定する構成となっている。プロセッサエレメントアレイ部の周辺には、プロセッサエレメントアレイ部に関するコンフィギュレーションデータを格納するコンフィギュレーションメモリや、動的再構成の切替えを制御する制御部等が設けられる。
上記の構成を有するリコンフィギュラブル回路では、再構成可能な構造の基本要素はプロセッサエレメントであり、単一ゲート程度を基本要素とするFPGA(Field Programmable Gate Array)と比較すると、格段に大きな粒度(変更可能な単位の大きさ)になっている。またプロセッサエレメントをアレイ上に並べることにより、並列に演算を実行することが可能となり、複素演算や積和演算等の重い演算処理を高速に実行することができる。
コンフィギュラブル回路のプロセッサエレメントにイミディエート値(プログラム中で指定されている固定の値)を渡す場合、2つの異なる方法がある。第1の方法では、データネットワークに接続されたデータレジスタにイミディエート値を格納しておき、データレジスタからデータネットワークを介してプロセッサエレメントのデータ入力ポートにイミディエート値を供給する。第2の方法では、コンフィギュレーションメモリに格納されたコンフィギュレーションデータの一部としてイミディエート値を定義して設定しておき、コンフィギュレーションメモリからプロセッサエレメントのコンフィギュレーションデータ入力ポートにイミディエート値を供給する。
上記第1の方法では、イミディエート値をプロセッサエレメントに供給するためにデータネットワークを使用する。データネットワークを介して相互接続できるプロセッサエレメント間の接続数には、データネットワークの構成に応じた上限があるが、イミディエート値を渡すためにデータネットワークの一部を使用してしまうと、プロセッサエレメント間の接続数の上限が低下してしまう。即ち、データネットワークのリソース消費により可変接続性能が低下し、プロセッサエレメント間のデータ授受が影響を受ける。場合によっては、必要なデータの受渡しができない可能性がある。
また上記第2の方法では、コンフィギュレーションデータ中の各イミディエート値の定義・設定は、各プロセッサエレメント毎になされる。従って、複数のプロセッサエレメントが同一のイミディエート値を使用する場合であっても、これら複数のプロセッサエレメントの数分、イミディエート値の定義・設定をコンフィギュレーションデータ中で繰り返す必要がある。またコンフィギュレーションデータ中に設定したイミディエート値は固定であり、そのコンフィギュレーションデータに従ってリコンフィギュラブル回路が動作している間はイミディエート値の内容を変更することができない。
特開2005−277673号公報 特開2005−275455号公報 特開2004−221996号公報
以上を鑑みて本発明は、効率的且つ柔軟にイミディエート値をプロセッサエレメントに供給することが可能なリコンフィギュラブル回路を提供することを目的とする。
リコンフィギュラブル回路は、演算データ入力ポートと、コンフィギュレーションデータ入力ポートと、出力ポートとを各々が備えた複数のプロセッサエレメントと、該複数のプロセッサエレメントの該演算データ入力ポートと該出力ポートとに結合されるデータネットワークと、該複数のプロセッサエレメントのうちの少なくとも1つの第1のプロセッサエレメントの該コンフィギュレーションデータ入力ポートにコンフィギュレーション経路を介して結合されるコンフィギュレーションメモリと、前記データネットワークとは独立なネットワークであり、該複数のプロセッサエレメントのうちの少なくとも1つの第2のプロセッサエレメントの該コンフィギュレーションデータ入力ポートに結合されるイミディエート値ネットワークとを含み、該複数のプロセッサエレメントのうちの少なくとも1つの第3のプロセッサエレメントの内部レジスタが、該内部レジスタの格納データを該イミディエート値ネットワークに出力可能なように、該イミディエート値ネットワークに結合されることを特徴とする。
本発明の少なくとも1つの実施例によれば、データネットワークとは独立のイミディエート値ネットワークを用いてイミディエート値の受け渡しを行なうので、データネットワークによりイミディエート値を受け渡す構成と比較して、データネットワークによるプロセッサエレメント間の相互接続能力を向上させることができる。またリコンフィギュラブル回路の動作中であっても、定数等のイミディエート値を書き替えることにより異なる定数演算が可能となり、柔軟な演算処理を実現することができる。またコンフィギュレーションデータの一部としてイミディエート値を定義・設定する構成と比較して、コンフィギュレーションメモリの必要容量を減らすことが可能であり、回路面積を削減することができる。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
図1は、本発明の実施例であるリコンフィギュラブル回路の構成の一例を示す図である。図1のリコンフィギュラブル回路10は、演算データ入力ポート21及び22と、コンフィギュレーションデータ入力ポート23と、出力ポート24とを各々が備えた複数のプロセッサエレメント(PE)11−1乃至11−12と、複数のプロセッサエレメント11−1乃至11−12の演算データ入力ポート21及び22と出力ポート24とに結合されるデータネットワーク12と、複数のプロセッサエレメント11−1乃至11−12のコンフィギュレーションデータ入力ポート23にコンフィギュレーション経路17を介して結合されるコンフィギュレーションメモリ13と、CPUインタフェースモジュール14と、内部CPUインタフェース15とを含む。リコンフィギュラブル回路10のCPUインタフェースモジュール14は、外部CPU16に接続されており、外部CPU16との信号のやり取りを行なう。CPUインタフェースモジュール14がCPUから受け取ったコマンド及びデータは、内部CPUインタフェース15を介してコンフィギュレーションメモリ13及び一部のプロセッサエレメントに供給される。
プロセッサエレメント11−1乃至11−3は、各々が内部レジスタ30を含むデータレジスタエレメントである。またプロセッサエレメント11−4乃至11−6は、各々が内部メモリ31を含むデータメモリエレメントである。内部メモリ31は、アドレス指定により複数のデータを格納可能な記憶装置であるが、データ記憶という機能に着目すれば内部レジスタ30と本質的には同一のレジスタ装置である。以下の説明においては、特に断りがない限り、内部レジスタ30及び内部メモリ31を纏めて内部レジスタと呼ぶ。内部レジスタ30及び31は、内部CPUインタフェース15を介して外部CPU16からレジスタ内容を書き込み・読み出し可能に構成される。
プロセッサエレメント11−7乃至11−12は、各々が演算処理ユニット25を含む演算処理エレメントである。演算処理ユニット25は、コンフィギュレーションデータ入力ポート23に入力されるコンフィギュレーションデータに応じて演算機能が設定され、設定された演算を実行するよう構成される。なお図1の例において、プロセッサエレメント11−1乃至11−12は3行×4列のマトリクス状に配置されるが、プロセッサエレメントの総数や行及び列の数は、例示された数に限定されるものではない。
コンフィギュレーションメモリ13は、リコンフィギュラブル回路10のコンフィギュレーションを設定するためのコンフィギュレーションデータを記憶する。このコンフィギュレーションデータは、外部CPU16から、CPUインタフェースモジュール14及び内部CPUインタフェース15を介して、コンフィギュレーションメモリ13に格納される。コンフィギュレーションデータは、プロセッサエレメントの演算機能を設定するとともに、データネットワーク12を介したプロセッサエレメント11−1乃至11−12間の相互接続、即ちデータネットワーク12の結線状態を設定するよう機能する。本実施例のリコンフィギュラブル回路10では、後述するように、イミディエート値については専用のイミディエート値ネットワークを介して設定される。
図2は、イミディエート値ネットワークを介してイミディエート値を設定する構成の一例を示す図である。図2において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。
図2に示すように、イミディエート値ネットワーク40は、データネットワーク12とは独立なネットワークであり、複数のプロセッサエレメント11−7乃至11−12の1つであるプロセッサエレメント11のコンフィギュレーションデータ入力ポート23に結合される。また少なくとも1つのプロセッサエレメントの内部レジスタ30が、内部レジスタの格納データ(イミディエート値35)をイミディエート値ネットワーク40に出力可能なように、イミディエート値ネットワーク40に結合される。この格納データ(イミディエート値35)は、外部CPU16から内部CPUインタフェース15を介して内部レジスタ30に書き込まれる。従って、コンフィギュレーションメモリ13のコンフィギュレーションデータに従ってリコンフィギュラブル回路10が動作している最中であっても、外部CPU16により内部レジスタ30の内容を書き替えることができる。
図2に示す例では、プロセッサエレメント11のコンフィギュレーションデータ入力ポート23は、コンフィギュレーション経路17とイミディエート値ネットワーク40との両方に結合される。この例のように、コンフィギュレーション経路17とイミディエート値ネットワーク40との両方に結合されるコンフィギュレーションデータ入力ポート23を有するプロセッサエレメント11は、コンフィギュレーションメモリ13からコンフィギュレーション経路17を介して供給されるデータにより演算機能を選択し、イミディエート値ネットワーク40から供給されるデータをイミディエート値として演算に使用する。即ち例えば、コンフィギュレーションデータ入力ポート23が40ビット構成であり、そのうちの32ビットが演算機能設定のためのデータであり、残りの8ビットがイミディエート値を指定するためのデータであるとする。このとき、上記32ビット分がコンフィギュレーション経路17に結合され、8ビット分がイミディエート値ネットワーク40に結合される。例えば、コンフィギュレーション経路17を介したコンフィギュレーションメモリ13からの32ビットが、演算データ入力ポート21からの入力データAとイミディエート値との加算を指定し、イミディエート値ネットワーク40からの8ビットが、“00101101”であるとする。この場合、プロセッサエレメント11は、A+“00101101”を演算して、演算結果を出力ポート24から出力することになる。
プロセッサエレメント11は、演算データ入力ポート21及び22、コンフィギュレーションデータ入力ポート23、出力ポート24、演算処理ユニット25、及びセレクタ26を含む。演算処理ユニット25は、例えば加算、減算、積算等の複数の論理演算を実行可能に構成され、コンフィギュレーションデータに応じてコンフィギュレーションデータ入力ポート23から供給される演算命令に基づいて、何れかの論理演算を選択的に実行する。セレクタ26は、演算データ入力ポート22がデータネットワーク12から受け取る入力データと、コンフィギュレーションデータ入力ポート23がイミディエート値ネットワーク40から受け取るイミディエート値との何れか一方を選択し、選択されたデータを演算処理ユニット25に供給する。演算処理ユニット25は、演算データ入力ポート21から供給されるデータとセレクタ26から供給されるデータとを入力データとして、コンフィギュレーションデータ入力ポート23からの演算命令により指定された演算を実行する。なお図1に示すプロセッサエレメント11−7乃至11−12の各々は、図2に示すプロセッサエレメント11と同様の構成を有してよい。
図3は、イミディエート値ネットワーク40の接続関係の一例を示す図である。図3において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。
図3の例においてイミディエート値ネットワーク40は、複数のプロセッサエレメント11−7乃至11−9(ALU0乃至ALU2)のコンフィギュレーションデータ入力ポート23に結合される。またプロセッサエレメント11−1乃至11−3の内部レジスタ30が、内部レジスタの格納データ(イミディエート値)をイミディエート値ネットワーク40に出力可能なように、イミディエート値ネットワーク40に結合される。
図3に示す例では、プロセッサエレメント11−1の内部レジスタ30がプロセッサエレメント11−7(ALU0)用のイミディエート値を格納し、プロセッサエレメント11−2の内部レジスタ30がプロセッサエレメント11−8(ALU1)用のイミディエート値を格納し、プロセッサエレメント11−3の内部レジスタ30がプロセッサエレメント11−9(ALU2)用のイミディエート値を格納する。これらイミディエート値は、外部CPU16から内部CPUインタフェース15を介して各内部レジスタ30に書き込まれる。従って、コンフィギュレーションメモリ13のコンフィギュレーションデータに従ってリコンフィギュラブル回路10が動作している最中であっても、外部CPU16により内部レジスタ30の内容を書き替えることができる。
イミディエート値ネットワーク40はプロセッサエレメント間の相互接続を可変に構成される。具体的には、コンフィギュレーションメモリ13の格納データによりイミディエート値ネットワーク40の相互接続が設定可能なように構成される。図3に示す例では、プロセッサエレメント11−1の内部レジスタ30をプロセッサエレメント11−7のコンフィギュレーションデータ入力ポート23に結合し、プロセッサエレメント11−2の内部レジスタ30をプロセッサエレメント11−8のコンフィギュレーションデータ入力ポート23に結合し、プロセッサエレメント11−3の内部レジスタ30をプロセッサエレメント11−9のコンフィギュレーションデータ入力ポート23に結合するように、イミディエート値ネットワーク40の結合が設定される。
なおイミディエート値ネットワーク40の結合の設定は、上記の例に限られるものではない。例えば、プロセッサエレメント11−1の内部レジスタ30を、3つのプロセッサエレメント11−7乃至11−9のコンフィギュレーションデータ入力ポート23に結合するように、イミディエート値ネットワーク40の結合を設定してもよい。この場合、3つのプロセッサエレメント11−7乃至11−9が、1つの内部レジスタ30の内容をイミディエート値として共有することになる。
また図3の例では、プロセッサエレメント11−7乃至11−9のコンフィギュレーションデータ入力ポート23は、コンフィギュレーション経路17とイミディエート値ネットワーク40とのうちのイミディエート値ネットワーク40のみに結合される。この例のように、イミディエート値ネットワーク40のみに結合されるコンフィギュレーションデータ入力ポート23を有するプロセッサエレメント11−7乃至11−9は、イミディエート値ネットワーク40から供給される第1のデータにより演算機能を選択し、イミディエート値ネットワーク40から供給される第2のデータをイミディエート値として演算に使用する。即ち例えば、コンフィギュレーションデータ入力ポート23が40ビット構成であり、これら40ビット全てがイミディエート値ネットワーク40に結合されるとして、そのうちの32ビットが演算機能設定のための第1のデータであり、残りの8ビットがイミディエート値を指定するための第2のデータである。32ビットの第1のデータと8ビットの第2のデータとは、1つのプロセッサエレメントの内部レジスタ30に40ビットデータとして格納されてよい。また或いは、32ビットの第1のデータと8ビットの第2のデータとは、それぞれ別のプロセッサエレメントからイミディエート値ネットワーク40を介して1つのコンフィギュレーションデータ入力ポート23に供給されてもよい。コンフィギュレーションデータ入力ポート23に供給される40ビットデータのうち、32ビットが演算データ入力ポート21からの入力データAとイミディエート値との加算を指定し、残りの8ビットが“00101101”であるとする。この場合、プロセッサエレメントは、A+“00101101”を演算して、演算結果を出力ポート24から出力することになる。
図4は、レジスタをファイル化した場合のイミディエート値ネットワーク40の接続関係の一例を示す図である。図4の例においてイミディエート値ネットワーク40は、複数のプロセッサエレメント11−7〜11−9(ALU0乃至ALU2)及び11−11〜11−12(ALU3乃至ALU4)のコンフィギュレーションデータ入力ポート23に結合される。またプロセッサエレメント11−4の内部レジスタ31が、内部レジスタの格納データ(イミディエート値)をイミディエート値ネットワーク40に出力可能なように、イミディエート値ネットワーク40に結合される。
図4に示す例では、プロセッサエレメント11−4の内部レジスタ31において複数のイミディエート値がファイル化されてそれぞれのアドレスに格納されている。この際、内部レジスタ(内部メモリ)31としては図1に示すようにRAM等を用いてよい。内部メモリ31において、第1のアドレスにはプロセッサエレメント11−7(ALU0)用のイミディエート値を格納し、第2のアドレスにはプロセッサエレメント11−8(ALU1)用のイミディエート値を格納し、第3のアドレスにはプロセッサエレメント11−9(ALU2)用のイミディエート値を格納する。これらイミディエート値は、外部CPU16から内部CPUインタフェース15を介して内部メモリ31のそれぞれのアドレスに書き込まれる。従って、コンフィギュレーションメモリ13のコンフィギュレーションデータに従ってリコンフィギュラブル回路10が動作している最中であっても、外部CPU16により内部メモリ31の内容を書き替えることができる。
また図4の構成では、複数のイミディエート値がファイル化されて単一のプロセッサエレメント11−4に納められている。従って、図3の構成のように3つのイミディエート値を定義するために3つのプロセッサエレメントを用いる場合と比較して、イミディエート値格納のためのプロセッサエレメントの数を少なくすることができる。この結果、演算用のプロセッサエレメントの数を増やして演算処理性能を向上させることができる。
イミディエート値ネットワーク40はプロセッサエレメント間の相互接続を可変に構成される。具体的には、コンフィギュレーションメモリ13の格納データによりイミディエート値ネットワーク40の相互接続が設定可能なように構成される。図4に示す例では、内部メモリ31の第1のアドレスのファイルのデータをプロセッサエレメント11−7のコンフィギュレーションデータ入力ポート23に結合し、内部メモリ31の第2のアドレスのファイルのデータをプロセッサエレメント11−8のコンフィギュレーションデータ入力ポート23に結合し、内部メモリ31の第3のアドレスのファイルのデータをプロセッサエレメント11−9のコンフィギュレーションデータ入力ポート23に結合するように、イミディエート値ネットワーク40の結合が設定される。
なおイミディエート値ネットワーク40の結合の設定は、上記の例に限られるものではない。例えば、内部メモリ31の第1のアドレスのファイルのデータを、3つのプロセッサエレメント11−7乃至11−9のコンフィギュレーションデータ入力ポート23に結合するように、イミディエート値ネットワーク40の結合を設定してもよい。この場合、3つのプロセッサエレメント11−7乃至11−9が、内部メモリ31の第1のアドレスのデータをイミディエート値として共有することになる。
また図4の例においても、図3の例と同様に、プロセッサエレメント11−7乃至11−9のコンフィギュレーションデータ入力ポート23は、コンフィギュレーション経路17とイミディエート値ネットワーク40とのうちのイミディエート値ネットワーク40のみに結合される。従って、プロセッサエレメント11−7乃至11−9は、イミディエート値ネットワーク40から供給される第1のデータにより演算機能を選択し、イミディエート値ネットワーク40から供給される第2のデータをイミディエート値として演算に使用する。また図4の例においては、プロセッサエレメント11−11及び11−12のコンフィギュレーションデータ入力ポート23は、コンフィギュレーション経路17と前記イミディエート値ネットワーク40とのうちのコンフィギュレーション経路17のみに結合されてよい。この場合、プロセッサエレメント11−11及び11−12はイミディエート値を用いない演算のみに専用に用いられることになる。また或いはプロセッサエレメント11−11及び11−12のコンフィギュレーションデータ入力ポート23は、図2に示したように、コンフィギュレーション経路17とイミディエート値ネットワーク40との両方に結合されてもよい。
以下に、リコンフィギュラブル回路10による数式演算処理を、具体例を用いて説明する。この例における計算対象の数式演算処理は、Fn、Fn+1、Fn+2、・・・を演算フェーズとして、以下のように定義される。
Fn:Σ1=(A*x)+y+z
Fn+1:Σ2=(B-x)+y+z
Fn+2:Σ3=x+(B*y)+z
Fn+3:Σ4=x+y+(C-z)
Fn+4:Σ5=x+y+(D+z)
Fn+5以降は、Σ1乃至Σ5の計算を繰り返すものとする。ここでA、B、C、及びDは定数であり、プロセッサエレメントにイミディエート値として格納される。x、y、及びzは入力データであり、データネットワーク12から適宜プロセッサエレメントに供給される。単純化するために、上記演算処理に現れる括弧付きの項をそれぞれ以下のように表記する。
(A*x)=α1
(B-x)=α1’
(B*y)=α2
(C-z)=α3
(D+z)=α3’
とする。また更に単純化するために、入力データx、y、及びzに対する加算式を以下のように表記する。
(y+z)=β1
(x+z)=β2
(x+y)=β3
以上の表記を用いると、各演算フェーズでの計算式は以下のように表現される。
Fn=α1+β1
Fn+1=α1’+β1
Fn+2=α2+β2
Fn+3=α3+β3
Fn+4=α3’+β3
図5は、リコンフィギュラブル回路10により上記数式演算処理を実行する際のプロセッサエレメントの割り当てについて説明するための図である。図5において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。
図5の構成において、プロセッサエレメント11−4(DR#0)の内部レジスタ(内部メモリ)31には、α1を演算する命令α1_INST、α1’を演算する命令α1’_INST、α3を演算する命令α3_INST、α3’を演算する命令α3’_INSTが格納される。ここでα1、α1’、α3、α3’は、上記の数式演算処理に現れる表記である。またプロセッサエレメント11−5(DR#1)の内部メモリ31には、イミディエート値として4つの定数A、B、C、及びDが格納される。これらのレジスタ値の格納は、外部CPU16から内部CPUインタフェース15を介してデータ書き込みすることにより行なわれる。
図6は、リコンフィギュラブル回路10により上記数式演算処理を実行する際のデータフローを示す図である。データレジスタDR#1(図5のプロセッサエレメント11−5)から供給される定数A及びBと入力データxとに基づいて、プロセッサエレメントPE3(図5のプロセッサエレメント11−7)が、α1(=A*x)及びα1’(=B−x)を演算により求める。またデータレジスタDR#1から供給される定数Bと入力データyとに基づいて、プロセッサエレメントPE0(図5のプロセッサエレメント11−10)が、α2(=B*y)を演算により求める。また更に、データレジスタDR#1から供給される定数C及びDと入力データzとに基づいて、プロセッサエレメントPE4(図5のプロセッサエレメント11−8)が、α3(=C−z)及びα3’(=D+z)を演算により求める。
プロセッサエレメントPE1(図5のプロセッサエレメント11−11)は、入力データx、y、及びzに基づいて、β1、β2、及びβ3を演算により求める。β1、β2、及びβ3は図6においてβとして示されている。最後に、プロセッサエレメントPE2(図5のプロセッサエレメント11−12)が、プロセッサエレメントPE3からのα1又はα1’、プロセッサエレメントPE0からのα2、プロセッサエレメントPE4からのα3又はα3’の何れか1つのαと、PE1からのβとを加算する。このようにしてプロセッサエレメントPE2は、上記のΣ1乃至Σ5を順次1つずつ出力する。
上記説明した図6に示すデータフローの演算を実行するために、図5の構成において、コンフィギュレーションメモリ13に格納されるコンフィギュレーションデータに、プロセッサエレメント11−10(PE0)にα2を演算させるPE命令と、プロセッサエレメント11−11(PE1)にβを演算させるPE命令と、プロセッサエレメント11−12(PE2)にα+βを演算させるPE命令とを含ませる。このコンフィギュレーションデータは、コンフィギュレーションメモリ13からコンフィギュレーション経路17を介してプロセッサエレメント11−10乃至11−12に供給されるとともに、別の経路を介してイミディエート値ネットワーク40及びデータネットワーク12に供給される。ここで、プロセッサエレメント11−11(PE1)によるβの演算とプロセッサエレメント11−12(PE2)によるα+βの演算とには、イミディエート値は用いられない。従って、プロセッサエレメント11−11(PE1)とプロセッサエレメント11−12(PE2)とは、コンフィギュレーション経路17にのみ結合されてよい。プロセッサエレメント11−10(PE0)によるα2の演算には、イミディエート値Bが用いられる。従って、プロセッサエレメント11−10(PE0)は、コンフィギュレーション経路17だけでなくイミディエート値ネットワーク40にも接続され、プロセッサエレメント11−5から定数Bを受け取るように構成される。
またプロセッサエレメント11−4(DR#0)の内部レジスタ(内部メモリ)31には、α1を演算する命令α1_INST、α1’を演算する命令α1’_INST、α3を演算する命令α3_INST、α3’を演算する命令α3’_INSTが格納される。図6を参照して説明したように、プロセッサエレメント11−7(PE3)がα1及びα1’を演算し、プロセッサエレメント11−8(PE4)がα3及びα3’を演算する。従って、α1の演算が必要な演算フェーズFnとα1’の演算が必要な演算フェーズFn+1とにおいて、プロセッサエレメント11−4(DR#0)はイミディエート値ネットワーク40を介してプロセッサエレメント11−7(PE3)に接続される。プロセッサエレメント11−7(PE3)は、コンフィギュレーションデータ入力ポート23にイミディエート値ネットワーク40から供給される命令α1_INSTに応じてα1を計算し、命令α1’_INSTに応じてα1’を計算する。またα3の演算が必要な演算フェーズFn+3とα3’の演算が必要な演算フェーズFn+4とにおいて、プロセッサエレメント11−4(DR#0)はイミディエート値ネットワーク40を介してプロセッサエレメント11−8(PE4)に接続される。プロセッサエレメント11−8(PE4)は、コンフィギュレーションデータ入力ポート23にイミディエート値ネットワーク40から供給される命令α3_INSTに応じてα3を計算し、命令α3’_INSTに応じてα3’を計算する。
以上のような設定において、適宜各演算フェーズにおいて、コンフィギュレーションメモリ13からコンフィギュレーション経路17を介してプロセッサエレメント11−10乃至11−12にコンフィギュレーションデータを供給するとともに、コンフィギュレーションメモリ13から別の経路を介してイミディエート値ネットワーク40及びデータネットワーク12にコンフィギュレーションデータを供給する。また、データレジスタのコンフィギュレーションデータを、イミディエート値ネットワーク40を介してプロセッサエレメント11−7、11−8、及び11−10に供給する。これにより各プロセッサエレメントの演算機能、各プロセッサエレメント間のデータネットワーク12を介した接続、及び各プロセッサエレメント間のイミディエート値ネットワーク40を介した接続を、各演算フェーズ毎に設定する。以上のようにして、図6に示すデータフローの演算を図5の構成により実現することができる。
図5の構成では、演算フェーズFn乃至Fn+5においてΣ1乃至Σ5の計算をした後、外部CPU16から内部CPUインタフェース15を介して、プロセッサエレメント11−5(DR#1)の定数A、B、C、及びDを書き替えることができる。これにより、同一のコンフィギュレーションデータを再度繰り返し用いながらも、異なる定数を用いた演算を実行することができる。また更に、演算フェーズFn乃至Fn+5においてΣ1乃至Σ5の計算をした後、外部CPU16から内部CPUインタフェース15を介して、プロセッサエレメント11−4(DR#0)の演算命令を書き替えることもできる。これにより、コンフィギュレーションメモリ13の同一のコンフィギュレーションデータを再度繰り返し用いながらも、α1、α1’、α3、及びα3’の項の部分だけ変更した演算を実行することができる。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
本発明の実施例であるリコンフィギュラブル回路の構成の一例を示す図である。 イミディエート値ネットワークを介してイミディエート値を設定する構成の一例を示す図である。 イミディエート値ネットワークの接続関係の一例を示す図である。 レジスタをファイル化した場合のイミディエート値ネットワークの接続関係の一例を示す図である。 リコンフィギュラブル回路により数式演算処理を実行する際のプロセッサエレメントの割り当てについて説明するための図である。 リコンフィギュラブル回路により数式演算処理を実行する際のデータフローを示す図である。
符号の説明
10 リコンフィギュラブル回路
11−1〜11−12 プロセッサエレメント(PE)
12 データネットワーク
13 コンフィギュレーションメモリ
14 CPUインタフェースモジュール
15 内部CPUインタフェース
16 外部CPU
21、22 演算データ入力ポート
23 コンフィギュレーションデータ入力ポート
24 出力ポート
25 演算処理ユニット
26 セレクタ
30 内部レジスタ
31 内部メモリ

Claims (10)

  1. 演算データ入力ポートと、コンフィギュレーションデータ入力ポートと、出力ポートとを各々が備えた複数のプロセッサエレメントと、
    該複数のプロセッサエレメントの該演算データ入力ポートと該出力ポートとに結合されるデータネットワークと、
    該複数のプロセッサエレメントのうちの少なくとも1つの第1のプロセッサエレメントの該コンフィギュレーションデータ入力ポートにコンフィギュレーション経路を介して結合されるコンフィギュレーションメモリと、
    前記データネットワークとは独立なネットワークであり、該複数のプロセッサエレメントのうちの少なくとも1つの第2のプロセッサエレメントの該コンフィギュレーションデータ入力ポートに結合されるイミディエート値ネットワークと
    を含み、該複数のプロセッサエレメントのうちの少なくとも1つの第3のプロセッサエレメントの内部レジスタが、該内部レジスタの格納データを該イミディエート値ネットワークに出力可能なように、該イミディエート値ネットワークに結合されることを特徴とするリコンフィギュラブル回路。
  2. 前記複数のプロセッサエレメントのうちの少なくとも1つの前記第2のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとの両方に結合されることを特徴とする請求項1記載のリコンフィギュラブル回路。
  3. 前記コンフィギュレーション経路と前記イミディエート値ネットワークとの両方に結合される前記コンフィギュレーションデータ入力ポートを有する前記第2のプロセッサエレメントは、前記コンフィギュレーションメモリから該コンフィギュレーション経路を介して供給されるデータにより演算機能を選択し、該イミディエート値ネットワークから供給されるデータをイミディエート値として演算に使用することを特徴とする請求項2記載のリコンフィギュラブル回路。
  4. 前記複数のプロセッサエレメントのうちの少なくとも1つの前記第2のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとのうちの該イミディエート値ネットワークのみに結合されることを特徴とする請求項1記載のリコンフィギュラブル回路。
  5. 前記イミディエート値ネットワークのみに結合される前記コンフィギュレーションデータ入力ポートを有する前記第2のプロセッサエレメントは、該イミディエート値ネットワークから供給される第1のデータにより演算機能を選択し、該イミディエート値ネットワークから供給される第2のデータをイミディエート値として演算に使用することを特徴とする請求項4記載のリコンフィギュラブル回路。
  6. 前記複数のプロセッサエレメントのうちの少なくとも1つの前記第1のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとのうちの該コンフィギュレーション経路のみに結合されることを特徴とする請求項1記載のリコンフィギュラブル回路。
  7. 該コンフィギュレーションデータメモリにはイミディエート値が格納されないことを特徴とする請求項1記載のリコンフィギュラブル回路。
  8. 前記イミディエート値ネットワークはプロセッサエレメント間の相互接続を可変に構成されることを特徴とする請求項1記載のリコンフィギュラブル回路。
  9. 前記コンフィギュレーションメモリの格納データにより前記イミディエート値ネットワークの前記相互接続が設定されることを特徴とする請求項8記載のリコンフィギュラブル回路。
  10. 前記第3のプロセッサエレメントの内部レジスタにおいて複数のイミディエート値がそれぞれ異なるアドレスに格納されていることを特徴とする請求項1記載のリコンフィギュラブル回路。
JP2007334498A 2007-12-26 2007-12-26 リコンフィギュラブル回路 Expired - Fee Related JP4962305B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007334498A JP4962305B2 (ja) 2007-12-26 2007-12-26 リコンフィギュラブル回路
US12/335,773 US8607029B2 (en) 2007-12-26 2008-12-16 Dynamic reconfigurable circuit with a plurality of processing elements, data network, configuration memory, and immediate value network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007334498A JP4962305B2 (ja) 2007-12-26 2007-12-26 リコンフィギュラブル回路

Publications (2)

Publication Number Publication Date
JP2009157613A JP2009157613A (ja) 2009-07-16
JP4962305B2 true JP4962305B2 (ja) 2012-06-27

Family

ID=40800058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007334498A Expired - Fee Related JP4962305B2 (ja) 2007-12-26 2007-12-26 リコンフィギュラブル回路

Country Status (2)

Country Link
US (1) US8607029B2 (ja)
JP (1) JP4962305B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5785357B2 (ja) * 2009-06-25 2015-09-30 スパンション エルエルシー リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置
JP2012032967A (ja) * 2010-07-29 2012-02-16 Tsutomu Inamoto 2値ベクトル及び多項式を用いる計算装置及び計算方法
US10191881B2 (en) * 2016-06-06 2019-01-29 Hewlett Packard Enterprise Development Lp Modifications to a stream processing topology during processing of a data stream
US11119530B1 (en) * 2018-01-11 2021-09-14 Marvell Israel (M.I.S.L) Ltd. Electronic device having relaxed timing constraints for management accesses

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
DE69827589T2 (de) * 1997-12-17 2005-11-03 Elixent Ltd. Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
JP2002091929A (ja) * 2000-09-11 2002-03-29 Matsushita Electric Ind Co Ltd Simd型並列処理装置
US7433909B2 (en) * 2002-06-25 2008-10-07 Nvidia Corporation Processing architecture for a reconfigurable arithmetic node
JP2002305439A (ja) * 2001-04-06 2002-10-18 Sharp Corp プログラマブル論理回路および半導体装置
JP4152319B2 (ja) * 2001-09-07 2008-09-17 アイピーフレックス株式会社 データ処理システムおよびその制御方法
JP3970186B2 (ja) 2003-01-15 2007-09-05 三洋電機株式会社 リコンフィギュラブル回路を備えた集積回路装置および処理装置
JP4357326B2 (ja) 2004-03-22 2009-11-04 三洋電機株式会社 リコンフィギュラブル回路および処理装置
JP4330472B2 (ja) 2004-03-24 2009-09-16 三洋電機株式会社 処理装置
JP4451733B2 (ja) * 2004-06-30 2010-04-14 富士通マイクロエレクトロニクス株式会社 半導体装置
JP4485272B2 (ja) * 2004-06-30 2010-06-16 富士通マイクロエレクトロニクス株式会社 半導体装置
JP4211751B2 (ja) * 2005-03-25 2009-01-21 セイコーエプソン株式会社 集積回路装置
JP4675714B2 (ja) * 2005-08-17 2011-04-27 富士通セミコンダクター株式会社 初期化回路を自動構築するリコンフィグ可能な集積回路装置
JP4782591B2 (ja) * 2006-03-10 2011-09-28 富士通セミコンダクター株式会社 リコンフィグラブル回路
US9564902B2 (en) * 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
JP5151311B2 (ja) * 2007-08-17 2013-02-27 富士通株式会社 集積回路装置

Also Published As

Publication number Publication date
JP2009157613A (ja) 2009-07-16
US8607029B2 (en) 2013-12-10
US20090172352A1 (en) 2009-07-02

Similar Documents

Publication Publication Date Title
US10275390B2 (en) Pipelined configurable processor
JP3573755B2 (ja) 画像処理プロセッサ
US11436143B2 (en) Unified memory organization for neural network processors
JP2023134658A (ja) プロセッサおよびプロセッサの制御方法
JP4485272B2 (ja) 半導体装置
WO2002095946A1 (fr) Dispositif a circuit integre
JP7264897B2 (ja) メモリ装置及びそれを制御するための方法
JP5071707B2 (ja) データ処理装置およびその制御方法
JP4962305B2 (ja) リコンフィギュラブル回路
Kamaleldin et al. Towards a modular RISC-V based many-core architecture for FPGA accelerators
JP2021507385A (ja) プログラム可能積和アレイハードウェア
US20060212613A1 (en) Data processor apparatus
JP4451733B2 (ja) 半導体装置
JP2006302132A (ja) 信号処理装置及び再構成可能論理回路装置及び再構成可能順序回路
Khanzadi et al. A data driven CGRA Overlay Architecture with embedded processors
Denholm et al. A unified approach for managing heterogeneous processing elements on FPGAs
JP7250953B2 (ja) データ処理装置、及び人工知能チップ
JP6553694B2 (ja) プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法
JP4562679B2 (ja) データフローグラフ生成装置
JP2008085864A (ja) 半導体装置
Vanderbauwhede et al. MORA: High-Level FPGA Programming Using a Many-Core Framework
Werger A 64-WAY HYPERCUBE INTERCONNECTED SINGLE INSTRUCTION, MULTIPLE DATA ARCHITECTURE FOR FIELD PROGRAMMABLE GATE ARRAYS
Masera et al. A microprogrammable parallel architecture for DSP
Schaumont et al. Coprocessor Control Shell Design
Paul et al. MAHA Hardware Architecture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100824

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4962305

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees