JP5163306B2 - 動的再構成回路およびデータ送信制御方法 - Google Patents
動的再構成回路およびデータ送信制御方法 Download PDFInfo
- Publication number
- JP5163306B2 JP5163306B2 JP2008160430A JP2008160430A JP5163306B2 JP 5163306 B2 JP5163306 B2 JP 5163306B2 JP 2008160430 A JP2008160430 A JP 2008160430A JP 2008160430 A JP2008160430 A JP 2008160430A JP 5163306 B2 JP5163306 B2 JP 5163306B2
- Authority
- JP
- Japan
- Prior art keywords
- cluster
- circuit
- data
- context
- output data
- 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
Links
- 238000000034 method Methods 0.000 title claims description 29
- 230000005540 biological transmission Effects 0.000 title claims description 27
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000191940 Staphylococcus Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Logic Circuits (AREA)
Description
まず、本実施の形態にかかるリコンフィグ回路(動的再構成回路)の概要について説明する。図1は、本実施の形態にかかるリコンフィグ回路の内部のクラスタの接続を示す説明図である。図1のように、リコンフィグ回路100は、クロスバースイッチ111によってマトリックスに接続された複数のクラスタ110によって構成されている。
最初に、図1を用いて本実施の形態にかかるリコンフィグ回路100の全体構成について説明する。リコンフィグ回路(動的再構成回路)100は、複数のクラスタ110から構成されている。この各クラスタ110は、コンテキストに応じてPE命令およびPE間接続を動的に変更可能なPE群によって構成されている(詳細な構成については後述する)。そして、リコンフィグ回路100は、上位プログラムと連動して指定されたコンテキストに設定されたPE命令およびPE間接続を実行し、ユーザの消耗する動作を実現することができる。
つぎに、リコンフィグ回路100の内部に配置された各クラスタ110の構成について説明する。図3は、本実施の形態にかかるクラスタの構成を示す回路図である。図3のように、クラスタ110は、シーケンサ310と、コンフィグレーションメモリ320と、PEアレイ330とからなる演算処理用の機能部と、クロスバースイッチ111と、インヒビット信号生成回路340と、インヒビット信号付加回路350と、入力データクリア回路360とからなるデータ転送用の機能部とから構成されている。以下、演算処理用の機能部と、データ転送用の機能部とについてそれぞれ説明する。
クラスタ110の演算処理に関する動作は、上位プログラムからコンテキストの開始指示(信号)がトリガとなって開始される。また、図1にて説明したように、クラスタ110には、クロスバースイッチ111が備えられ、このクロスバースイッチ111を経由して他のクラスタ110への外部出力をおこなうとともに、他のクラスタ110からの外部入力の受け付けもおこなう。
つぎに、PEアレイ330内の制御とシーケンサ310にコンテキストの切り替え指示をおこなうpredicate信号について説明する。predicate信号は、2bitの信号であり、PE332内における比較結果、コンテキスト開始・終了を指示するクラスタ内の制御信号である。predicate信号の接続先も、ネットワーク回路333により動的に変更可能である。
・2’b=「10」:非成立(false)
・2’b=「01」、「00」:無効(invalid)、すなわち意味を持たない。
つぎに、実施の形態にかかるクラスタ110のデータ転送用の機能部について説明する。図3のクラスタ110の構成のうち、クロスバースイッチ111と、インヒビット信号生成回路340、インヒビット信号付加回路350、入力データクリア回路360とは、クラスタ110間のデータ転送を適切におこなうためにあらたに追加された機能部である。なお、クロスバースイッチ111自体は、図17に示したように、従来から搭載されていたが、本実施の形態の場合、データ転送を制御するための機能が拡張させた構成になっている。したがって以下に追加された各回路340〜360とクロスバースイッチ111の拡張機能について説明する。
まず、インヒビット信号生成回路340について説明する。図4は、インヒビット信号生成回路の構成を示す回路図である。インヒビット信号生成回路340には、PEアレイ330からのpredicate信号が入力され、コンフィグレーションメモリ320からのコンフィグレーションデータ(configuration)が入力される。そして、インヒビット信号生成回路340は、predicate信号をトリガに、コンフィグレーションデータに設定された所定の期間の間インヒビット信号を生成する機能を実現する。
つぎに、インヒビット信号付加回路350について説明する。図6は、インヒビット信号付加回路の接続を示すブロック図である。インヒビット信号付加回路350は、インヒビット信号生成回路340からインヒビット信号(inhibit)が入力された場合、このインヒビット信号を指定された出力データ用のデータポートに付加する処理をおこなう。ここで、インヒビット信号を付加するかしないかは、コンフィグレーションデータの設定に依存する。したがって、データポート単位にインヒビット信号を付加するか否かを調整することができる。そのため、コンフィグレーションデータのbit数は、少なくともクラスタ出力のポート数分だけ必要となる。本実施の形態では、図1のように(x)個のポートがあるため、xbitとして説明する。
なお、ここでは、bit位置がポート番号に対応するものとする。
コンフィグレーション [1] −>port1 data
: : :
コンフィグレーション[(x)]−>port(x) data
つぎに、入力データクリア回路360について説明する。上述したように、クラスタ110では、出力データにコンテキスト切り換えを報知するためのインヒビット信号を付加することができる。ここで説明する入力データクリア回路360は、他のクラスタ110からインヒビット信号が付加された出力データが送信されてきた場合に、適切に出力データを処理するための回路である。
タ110への入力データ)のクリア処理をおこなう。当然のことながら、インヒビット信号が付加されていない場合や、付加されていてもコンフィグレーションデータの設定が“0”の場合には、送信されてきた出力データをそのままPEアレイ330に出力する。なお、ここでもコンフィグレーションデータのbit位置は、そのままポート番号に対応するものとする。
コンフィグレーション [1] −> port1 data
: : :
コンフィグレーション[(x)]−> port(x) data
つぎに、クロスバースイッチ111の機能拡張について説明する。本実施の形態の場合、クロスバースイッチ111が、入力されたデータを他のクラスタ110に転送する場合に、データに付加されているインヒビット信号を次のサイクルのデータにも付加するような機能を持つように拡張している。この機能は、他のクラスタ110へのデータ転送の際に、追加で1段のDFFを経由するためである。
つぎに、実施例として、任意のアプリケーションを実行させた場合のリコンフィグ回路100の動作について説明する。図13は、リコンフィグ回路に実装するアプリケーションの一例を示す説明図である。ここでは、図13に示したソースコード1300のようなアプリケーションを実行させた場合の動作を説明する。
コンテキスト−0の終了直前にクラスタ−0内でインヒビット信号を生成し、配列変数A[],B[]にそれぞれ付加する。このときのインヒビット信号の生成期間は、隣接するクラスタ110内のPEの入力までかかるクロックサイクルとなる”2”を設定する。
なお、クラスタ−0からクラスタ−3の転送については、クラスタ−0からクラスタ−3のPEへの入力まで、クラスタ−2を経由するため、必要となるクロックサイクルは、“3”となるが、図10,11にて説明したクロスバースイッチ111の拡張機能によってインヒビット信号の付加期間が1サイクル延びるためそのまま適用される。
コンテキスト−1では、まず、クラスタ−2において、コンテキスト−0の入力データを継続して使用するための設定を施す。具体的には、クラスタ−2内部の入力データクリア回路360によって、インヒビット信号が付加されたport0からの入力されたデータをクリアしないように設定する。この結果、クラスタ−2についてはコンテキスト切り換えを、待ち時間なしで実行することができる(図16参照)。
110 クラスタ
111 クロスバースイッチ
310 シーケンサ
320 コンフィグレーションメモリ
330 PEアレイ
331 信号変換器
332 PE
333 ネットワーク回路
334 カウンタ
340 インヒビット信号生成回路
341 開始信号生成回路
342 3bitカウンタ回路
343 出力回路
350 インヒビット信号付加回路
360 入力データクリア回路
Claims (7)
- 再構成可能なプロセッシングエレメント(以下、「PE」という)の集合からなるクラスタを複数備え、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて前記クラスタの構成を動的に切り換え可能な動的再構成回路であって、
前記各クラスタは、
前記コンテキストの切り換え指示を受け付けると、当該切り換え指示をあらわす報知信号を生成する信号生成回路と、
当該クラスタから他のクラスタへ送信する出力データに前記信号生成回路によって生成された報知信号を付加する信号付加回路と、
前記他のクラスタによって生成された報知信号が付加された出力データが送信されてきた場合に、当該出力データのクリア処理をおこなうデータクリア回路と、
を備えることを特徴とする動的再構成回路。 - 前記各クラスタは、
前記データクリア回路の前段に、前記他のクラスタから送信された出力データの受信を制御するスイッチ回路を備え、
前記スイッチ回路は、前記他のクラスタから送信された出力データが当該クラスタ宛である場合は、当該出力データを前記データクリア回路に出力し、当該クラスタ宛でない場合は、当該出力データを前記他のクラスタ以外の隣接するクラスタに転送することを特徴とする請求項1に記載の動的再構成回路。 - 前記信号生成回路は、前記コンテキストの切り換え指示によって指定されたコンテキストの設定に応じた期間、前記報知信号の生成を継続することを特徴とする請求項1または2に記載の動的再構成回路。
- 前記データクリア回路は、前記コンテキストの切り換え指示によって指定されたコンテキストの設定に応じて、前記クリア処理を無効にすることを特徴とする請求項1〜3のいずれか一つに記載の動的再構成回路。
- 前記各クラスタは、
前記報知信号を出力する専用ポートを備え、
前記信号付加回路は、前記クラスタから他のクラスタへ送信する出力データの出力に併せて前記信号生成回路によって生成された報知信号を前記専用ポートに出力し、
前記データクリア回路は、前記他のクラスタからの出力データとともに、前記専用ポートから前記他のクラスタによって生成された報知信号が送信されてきた場合に、当該出力データのクリア処理をおこなうことを特徴とする請求項2〜4のいずれか一つに記載の動的再構成回路。 - 前記スイッチ回路は、前記他のクラスタから送信された出力データが他のクラスタ宛であり、なおかつ、前記出力データとともに、前記専用ポートから報知信号が送信されてきた場合、当該報知信号の末尾に任意の長さの報知信号を追加可能であることを特徴とする請求項5に記載の動的再構成回路。
- 再構成可能なプロセッシングエレメント(以下、「PE」という)の集合からなるクラスタを複数備え、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて前記クラスタの処理内容を動的に切り換える動的再構成回路において前記クラスタ間のデータ送信を制御するデータ送信制御方法であって、
前記複数のクラスタのうち一のクラスタは、
前記コンテキストの切り換え指示を受け付けると、当該切り換え指示をあらわす報知信号を生成する信号生成工程と、
当該クラスタからの出力データに前記信号生成工程によって生成された報知信号を付加する信号付加工程と、を含み、
前記一のクラスタ以外の他のクラスタは、
前記一のクラスタから前記報知信号が付加された出力データが送信されてきた場合に、当該出力データのクリア処理をおこなうデータクリア工程と、
を含むことを特徴とするデータ送信制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008160430A JP5163306B2 (ja) | 2008-06-19 | 2008-06-19 | 動的再構成回路およびデータ送信制御方法 |
US12/394,863 US8171259B2 (en) | 2008-06-19 | 2009-02-27 | Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008160430A JP5163306B2 (ja) | 2008-06-19 | 2008-06-19 | 動的再構成回路およびデータ送信制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010003058A JP2010003058A (ja) | 2010-01-07 |
JP5163306B2 true JP5163306B2 (ja) | 2013-03-13 |
Family
ID=41432464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008160430A Expired - Fee Related JP5163306B2 (ja) | 2008-06-19 | 2008-06-19 | 動的再構成回路およびデータ送信制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8171259B2 (ja) |
JP (1) | JP5163306B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9153292B2 (en) * | 2013-03-07 | 2015-10-06 | Xilinx, Inc. | Integrated circuit devices having memory and methods of implementing memory in an integrated circuit device |
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 |
CN114168526B (zh) * | 2017-03-14 | 2024-01-12 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
US11095522B2 (en) * | 2019-08-21 | 2021-08-17 | Microsoft Technology Licensing, Llc | Dynamic scaling for data processing streaming system |
CN112926205B (zh) * | 2021-02-24 | 2022-05-13 | 中国核动力研究设计院 | 基于团簇动力学的锆基合金辐照损伤模拟方法及模型*** |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6528810B1 (en) * | 1998-04-02 | 2003-03-04 | Konica Corporation | Image reading apparatus |
US6914691B1 (en) * | 1998-11-27 | 2005-07-05 | Canon Kabushiki Kaisha | Image processing apparatus, data processing method, and storage medium |
JP4547198B2 (ja) | 2004-06-30 | 2010-09-22 | 富士通株式会社 | 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 |
JP4743581B2 (ja) * | 2004-09-17 | 2011-08-10 | 富士ゼロックス株式会社 | データ処理システムおよびその制御方法 |
JP3861898B2 (ja) * | 2004-11-08 | 2006-12-27 | 日本電気株式会社 | データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体 |
JP4527571B2 (ja) * | 2005-03-14 | 2010-08-18 | 富士通株式会社 | 再構成可能演算処理装置 |
JP4702159B2 (ja) * | 2006-04-25 | 2011-06-15 | 富士ゼロックス株式会社 | 集積回路装置 |
JP5099222B2 (ja) * | 2008-05-30 | 2012-12-19 | 富士通株式会社 | 情報処理装置、転送回路及び情報処理装置のエラー制御方法 |
-
2008
- 2008-06-19 JP JP2008160430A patent/JP5163306B2/ja not_active Expired - Fee Related
-
2009
- 2009-02-27 US US12/394,863 patent/US8171259B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8171259B2 (en) | 2012-05-01 |
US20090319762A1 (en) | 2009-12-24 |
JP2010003058A (ja) | 2010-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU740243B2 (en) | Method of self-synchronization of configurable elements of a programmable component | |
JP4911022B2 (ja) | カウンタ制御回路、動的再構成回路およびループ処理制御方法 | |
KR101035646B1 (ko) | 파이프라인 코프로세서 | |
KR100440841B1 (ko) | 마이크로컴퓨터 | |
US6542998B1 (en) | Method of self-synchronization of configurable elements of a programmable module | |
US7249351B1 (en) | System and method for preparing software for execution in a dynamically configurable hardware environment | |
JP5163306B2 (ja) | 動的再構成回路およびデータ送信制御方法 | |
JP2007257549A (ja) | 半導体装置 | |
US6675289B1 (en) | System and method for executing hybridized code on a dynamically configurable hardware environment | |
US20130002292A1 (en) | Reconfigurable integrated circuit device | |
US5890009A (en) | VLIW architecture and method for expanding a parcel | |
JP3756410B2 (ja) | 述語データを提供するシステム | |
JP3790626B2 (ja) | デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置 | |
US8402251B2 (en) | Selecting configuration memory address for execution circuit conditionally based on input address or computation result of preceding execution circuit as address | |
CN105373496A (zh) | 微型计算机 | |
JP5370352B2 (ja) | Simd型プロセッサアレイシステム及びそのデータ転送方法 | |
US8631173B2 (en) | Semiconductor device | |
JP2006018411A (ja) | プロセッサ | |
US20090019268A1 (en) | Processor | |
JP2000231488A (ja) | プロセッサ | |
JP3985829B2 (ja) | プロセッサ | |
JP2011103017A (ja) | マイクロコントローラ | |
JP2503983B2 (ja) | 情報処理装置 | |
JP2007323491A (ja) | ダイレクトメモリアクセス制御装置および制御方法 | |
JP2004362176A (ja) | 集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120828 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120829 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121026 |
|
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: 20121120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121203 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5163306 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: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |