JP2006011924A - 再構成可能演算装置および半導体装置 - Google Patents
再構成可能演算装置および半導体装置 Download PDFInfo
- Publication number
- JP2006011924A JP2006011924A JP2004189503A JP2004189503A JP2006011924A JP 2006011924 A JP2006011924 A JP 2006011924A JP 2004189503 A JP2004189503 A JP 2004189503A JP 2004189503 A JP2004189503 A JP 2004189503A JP 2006011924 A JP2006011924 A JP 2006011924A
- Authority
- JP
- Japan
- Prior art keywords
- register
- group
- sequencer
- registers
- arithmetic unit
- 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.)
- Pending
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【課題】 他機能へ影響を与えずに細かな動作制御を行う。
【解決手段】 ALU1の入力ポートには、選択器4、6を介してレジスタ群3、5が接続されており、ALU1に入力するデータは、シーケンサ2に従って選択器4、6が選択したレジスタに保持される。たとえば、あるアプリケーションでレジスタ1(3a、5a)が選択されていて、次のアプリケーションに切り替える場合、前のアプリケーション終了後、シーケンサ2の指示によって選択器4、6が選択するレジスタを切り替える。このとき、前のアプリケーションのデータは、レジスタ1(3a、5a)に残っているので、アプリケーション終了後のデータ吐き出しを行わずに、直ちに次のアプリケーションを開始できる。
【選択図】 図1
【解決手段】 ALU1の入力ポートには、選択器4、6を介してレジスタ群3、5が接続されており、ALU1に入力するデータは、シーケンサ2に従って選択器4、6が選択したレジスタに保持される。たとえば、あるアプリケーションでレジスタ1(3a、5a)が選択されていて、次のアプリケーションに切り替える場合、前のアプリケーション終了後、シーケンサ2の指示によって選択器4、6が選択するレジスタを切り替える。このとき、前のアプリケーションのデータは、レジスタ1(3a、5a)に残っているので、アプリケーション終了後のデータ吐き出しを行わずに、直ちに次のアプリケーションを開始できる。
【選択図】 図1
Description
本発明は再構成可能演算装置および半導体装置に関し、特に複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサを有する再構成可能演算装置および半導体装置に関する。
従来、製品出荷後に発生する仕様変更、機能追加、新サービス追加などに対し、デバイスの作り直しをせずに機能変更を行うことを可能にするため、回路構成情報を入れ替えるだけで対応できる再構成可能演算装置が提供されている。
再構成可能演算装置として、たとえば、IP−Flex社製のDAP/DNA(Digital Application Processor/Distributed Network Architecture(登録商標))や、NEC社製のDRP(Dynamically Reconfigurable Processor)が知られている。
DAP/DNAは、2次元状に配置される複数の演算器複合ユニットを有し、ユニット内の構成と演算器間の接続情報を記述したメモリを複数面備え、このメモリ面を切り替えることにより異なるアルゴリズムを処理する。
DRPは、命令メモリ、命令デコーダおよび演算器を有する演算器ユニットが2次元状に複数配置されており、演算器ユニットの動作を状態遷移管理部で管理する。状態遷移管理部では、状態遷移テーブルを有し、状態遷移テーブルに従って各演算器ユニットの実行する命令メモリのアドレスを指示することにより、任意の命令を選択して実行させる。
このように、再構成可能演算装置は、演算器(ALU;Arithmetic and Logic Unit)が複数配置された演算器群を有しており、演算器群を構成する演算器の動作や演算器間の接続関係は、設定情報に基づき、再構成することができる。各演算器には、入力値を保持するためのレジスタが接続されている。図7は、従来の再構成可能演算装置の演算器とレジスタの構成図である。
従来の再構成可能演算装置に配置される複数のALU901、902は、バス910を介してデータの交換を行って所定の演算処理を行っている。それぞれのALU901、902には、バス910を介して入力する入力値を保持するためのレジスタ903、904、905、906が入力信号に対して固定で設置されている。すなわち、2入力のALU901については、それぞれの入力に対して、レジスタ903とレジスタ904が1ずつ固定で設置されている。同様に、2入力のALU902に対してもレジスタ905、906が設置されている。このように、従来の再構成可能演算装置では、ALUの入力に対して1つのレジスタが固定で設けられていた。
一方、ALUに複数のレジスタを設ける一例として、外部コプロセッサからアクセス可能な複数セットのレジスタファイルがALUに接続される構成を有するRISC(Reduced Instruction Set Computer)プロセッサがある(たとえば、特許文献1参照)。
特表2002−512399号公報(図3)
従来の再構成可能演算装置では、動作させる演算器群の構成を時間軸で切り替えようとした場合、性能が低下するという問題点がある。図8は、従来の再構成可能演算装置における構成の切り替えタイミングを示した図である。アプリケーション1とアプリケーション2では、演算器群は、それぞれの処理内容に合わせて異なる構成が設定される。
従来の再構成可能演算装置は、各ALUに設置されるレジスタが1個に固定されているため、アプリケーション1(921)からアプリケーション2(922)に構成を切り替えようとした場合、アプリケーション1(921)が終了した後、アプリケーション1(921)で生成されたデータの吐き出し(931)を行ってデータをレジスタから出力し、その後アプリケーション2(922)へ切り替えていた。アプリケーション2(922)からアプリケーション1(921)に戻る際にも、同様の処理が行われた後、切り替えられていた。
このように、アプリケーションを切り替える際、データの吐き出しを行う無駄時間が生じ、細かく時分割でアプリケーションを切り替えたいような場合には、性能が低下するという問題がある。さらに、アプリケーション1で実行した結果を保持して、アプリケーション1の2回目で使用したい場合には、データをメモリなどの記憶保持装置に保存する必要があるため、実行性能に多大な影響があった。
また、従来の再構成可能演算装置では、演算器群のデバッグが難しいという問題点がある。デバッグでは、ある任意の時点における演算器の入出力の状態(レジスタの値)を知りたい場合が生じるが、データを取り出すためには、動作を完全に停止するか、停止後の回路状態およびデータはすべて破棄する必要があった。しかしながら、従来の再構成可能演算装置では、レジスタ間を演算器が挟みこんでいる構成であるため、演算器を介してしかレジスタの値を外部へ出力することができなかった。そして、演算器に接続されるレジスタは1個であるため、ある瞬間のレジスタの値を外部に取り出すためには、演算器の命令をすべて一旦NOP(無処理)に変更してデータを順次流す必要があった。この場合、命令変更前の演算途中のデータが流れてしまうため、デバッグ用のデータを取り出した後は、継続して演算を再開することができなかった。
一方、従来のコンテキストスイッチングを行って複数セットのレジスタファイルを切り替える装置では、すべてのレジスタファイルは、一括して同時に切り替えられていた。このため、ALUごと、あるいは1つのALUグループ単位など、細かい単位での切り替えを行うことができなかった。
本発明はこのような点に鑑みてなされたものであり、時分割のアプリケーション切り替えやデバッグなどの際に、他機能へ影響を与えずに細かな動作制御が可能な再構成可能演算装置および半導体装置を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような再構成可能演算装置が提供される。再構成可能演算装置は、演算を行う演算器(図では、ALU)1が複数配置される演算器群と、この演算器群の動作を制御するシーケンサ2とによって、所定のアプリケーションを実行する。
演算器(ALU)1の入力ポート(図の例では2つ)には、選択器4、6を介してレジスタ群3、5が接続する。レジスタ群3は、演算器(ALU)1へデータを出力する前段と、入力ポートとの間のデータ入力経路上に配置され、演算器(ALU)1に入力するデータを保持する複数のレジスタ、レジスタ1(3a)、レジスタ2(3b)およびレジスタ3(3c)を有する。もう一方の入力ポートに接続するレジスタ群5も同様に配置され、レジスタ1(5a)、レジスタ2(5b)およびレジスタ3(5c)を有する。選択器4、6は、レジスタ群3、5と演算器(ALU)1の間に配置され、シーケンサ2が指示するレジスタと演算器(ALU)1を接続する。
このような再構成可能演算装置によれば、あるアプリケーション実行時には、シーケンサ2の指示に従って、レジスタ群3、5の1つのレジスタが選択器4、6によって選択され、演算器(ALU)1は、選択されたレジスタを介して入力するデータを用いて、演算処理を行っている。この状態で、たとえば、アプリケーションを切り替える場合、シーケンサ2が選択器4、6に対して選択レジスタの変更を指示する。選択器4、6は指示に従って、現在使用中のレジスタと演算器(ALU)1との接続を解除し、指示されたレジスタと演算器(ALU)1を接続する。これにより、アプリケーション切り替え前のデータの流れ(以下、データフローとする)で使用するレジスタと、切り替え後のデータフローで使用するレジスタを動的に切り替えられ、切り替え前のデータフローでのデータが保持される。
また、上記課題を解決するために、複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサとを有し、前記シーケンサによって前記演算器群の動作状態を再構成する半導体装置において、前記演算器の入力ポートと前記演算器にデータを入力する前段の間に配置され、前記前段から前記演算器に入力される前記データを保持するレジスタを複数有するレジスタ群と、前記シーケンサからの指示に従って、前記演算器と接続する前記レジスタを前記レジスタ群から選択し、選択された前記レジスタと前記演算器の前記入力ポートとを接続する選択器と、を具備することを特徴とする半導体装置、が提供される。
このような半導体装置では、データを入力する入力ポートは、レジスタ群と選択器を介して前段と接続する。選択器は、シーケンサに従って、レジスタ群を構成する複数のレジスタから1つのレジスタを選択して、演算器の入力ポートと前段の演算器などとの間のデータ経路に配置する。前段の演算器などの出力は、選択されたレジスタに保持されてから演算器に入力する。そして、選択器は、シーケンサによる動作状態の切り替えなどの指示があると、指示に応じて、演算器に接続するレジスタを切り替える。これにより、切り替え前の動作状態におけるデータフローと、切り替え後の動作状態のデータフローとを動的に切り替えることができる。
本発明では、演算器に入力するデータを保持する複数のレジスタを設けておき、シーケンサの指示に従ってレジスタを選択する。これにより、シーケンサの動作状態に応じて、使用するレジスタを動的に切り替えることができる。すなわち、ある動作状態におけるデータフローで使用するレジスタと、動作状態が切り替えた後に使用するレジスタとをシーケンサの動作状態切り替え指示などに応じて動的に切り替える。これにより、前のデータフローにおけるデータを保持することができ、データフローを時間軸上で直ちに変更することができる。また、レジスタ群および選択器は、演算器ごとに操作可能であり、データフロー上の特定のデータパスのみを動的に変更することもでき、変更前のデータパスにおけるデータを保持することができる。このように、他機能へ影響を与えずに細かな動作制御が可能となる。
本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、本発明の実施の形態に適用される発明の概念図である。
図1は、本発明の実施の形態に適用される発明の概念図である。
本発明の実施の形態の再構成可能演算装置は、演算器(以下、ALUとする)が複数、たとえばマトリックス状に配置される演算器群と、演算器群の動作を制御するシーケンサ2を有する。演算器群を構成する1つのALU1に着目するとALU1は、2つの入力ポートがそれぞれ選択器4、6を介してレジスタ群3、5に接続する。
ALU1は、前段から出力されたデータをレジスタ群3、5と、選択器4、6を介して入力し、シーケンサ2に従って、数値演算や論理演算など、所定の演算を行う。データの入力先の前段は、シーケンサ2によって接続される他のALUなどである。
シーケンサ2は、演算器群を構成するALUの動作と、ALUとALUとの接続関係など、任意のアプリケーションを実行するために必要な演算器群の構成を記述した設定情報を複数有し、動作させる設定情報を切り替えることによって演算器群の状態を切り替え、所望のアプリケーションを実現している。また、選択された状態に応じて選択器4、6を制御し、ALU1と接続させるレジスタ群3、5のレジスタを選択する。
レジスタ群3、5は、それぞれ独立して動作可能な複数のレジスタ、レジスタ群3の場合はレジスタ1(3a)、レジスタ2(3b)およびレジスタ3(3c)、レジスタ群5の場合はレジスタ1(5a)、レジスタ2(5b)およびレジスタ3(5c)、を有する。これらのレジスタは、選択器4、6によって1つのレジスタが選択され、ALU1に接続される。選択されたレジスタは、前段とALU1の入力ポートとの間に接続され、前段から出力されたデータ(ALU1の入力データ)を保持するとともに、ALU1へ出力する。このデータは、次の動作タイミングまで保持される。また、レジスタは、接続されるALU1の入力データに応じたデータ長で構成される。すなわち、ALU1に入力されるデータが8ビット長であれば8ビット、16ビット長であれば16ビット、32ビット長であれば32ビットで構成される。なお、レジスタ群を構成するレジスタの数は、任意である。
選択器4、6は、シーケンサ2に従って、接続するレジスタ群3、5から1つのレジスタを選択してALU1に接続する。選択器4は、レジスタ群3に接続し、レジスタ1(3a)、レジスタ2(3b)もしくはレジスタ3(3c)のいずれかをALU1に接続する。選択器6は、レジスタ群5に接続し、レジスタ1(5a)、レジスタ2(5b)もしくはレジスタ3(5c)のいずれかをALU1に接続する。
このような構成の再構成可能演算装置の動作について説明する。
シーケンサ2が有する設定情報には、ALU1の2つの入力ポートに関し、演算器群のどの状態でどのレジスタが選択・接続されるかが登録されている。シーケンサ2は、演算器群の動作の状態制御とともに、選択された状態に応じたレジスタの切り替え制御を行う。以下、演算器群の状態切り替え時におけるレジスタの切り替えについて説明する。
シーケンサ2が有する設定情報には、ALU1の2つの入力ポートに関し、演算器群のどの状態でどのレジスタが選択・接続されるかが登録されている。シーケンサ2は、演算器群の動作の状態制御とともに、選択された状態に応じたレジスタの切り替え制御を行う。以下、演算器群の状態切り替え時におけるレジスタの切り替えについて説明する。
まず、切り替え前の状態として、演算器群が任意のアプリケーションを実行している。このとき、シーケンサ2に従って、選択器4、6が、ALU1に接続するレジスタ群3、5から任意のレジスタを選択し、ALU1に接続する。たとえば、レジスタ群3のレジスタ1(3a)とレジスタ群5のレジスタ1(5a)が選択され、ALU1の前段の出力データ(ALU1の入力データ)がレジスタ1(3a)とレジスタ1(5a)経由でALU1に入力するデータフローが構築される。
シーケンサ2が演算器群の状態切り替えを判断すると、レジスタの切り替え指令も出される。選択器4、6は、シーケンサ2の指示に従って、現在接続中のレジスタの接続を切り離し、指定されたレジスタとALU1とを接続する。たとえば、レジスタ群3のレジスタ2(3b)とレジスタ群5のレジスタ2(5b)が選択され、ALU1の前段の出力データがレジスタ2(3b)とレジスタ2(5b)経由でALU1に入力するという、新しいレジスタを用いたデータフローに切り替わる。このため、前のデータフローの終了を待って、生成されたデータの吐き出しを行う必要がなくなり、アプリケーションの切り替えタイミングでデータフローの切り替えを直ちに行うことができ、性能を低下させることがない。
また、レジスタの切り替えの際には、切り替えられたレジスタ1(3a)とレジスタ1(5a)には、切り替え前のデータフローで入力された最後のデータが残されており、ラッチ機構を設けることによってこの値を保持しておくことができる。また、特別なデータ経路を設けておくことにより、このデータを外部から取り出せるようにしておくこともできる。これにより、データフローを切り替えて所定の処理を行った後、切り替え前の状態に再帰させることができるようになる。また、デバッグなどの際のデータ取出しを容易に行うことが可能となる。さらに、デバッグからの復帰はレジスタの選択を元に戻せばよいので、他の機能に影響を与えることなく、デバッグを行うことができる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図2は、本発明の実施の形態の再構成可能演算装置の全体構成を示すブロック図である。
図2は、本発明の実施の形態の再構成可能演算装置の全体構成を示すブロック図である。
再構成可能演算装置は、複数の演算器が配列された演算器群10と、演算器群10の構成要素である演算器ユニットの動作を制御するシーケンサ20を有する。
演算器群10は、コンフィギュレーションメモリ11、配線&スイッチ12、構成要素であるALU13a、13b、・・・、13c、データ蓄積装置13d、13e、・・・、カウンタ13f、およびウインドウレジスタ部14などを有する。
演算器群10は、コンフィギュレーションメモリ11、配線&スイッチ12、構成要素であるALU13a、13b、・・・、13c、データ蓄積装置13d、13e、・・・、カウンタ13f、およびウインドウレジスタ部14などを有する。
コンフィギュレーションメモリ11は、演算器群を構成する演算器ユニットの実行内容や、演算器ユニット間の配線経路、演算に必要なデータなどの演算器群10の動作を設定する設定情報が格納されている。1つの設定情報は、演算器群10の1つの回路構成の「状態」に対応し、コンフィギュレーションメモリ11には「状態」が複数設定されている。以下、このような「状態」をステートとする。そして、シーケンサ20から指定されたステートで演算器群10を動作させる。各ALUおよび配線&スイッチ12は、コンフィギュレーションメモリ11の設定内容に従って動作する。配線&スイッチ12は、コンフィギュレーションメモリ11の設定内容に従って、演算器ユニット間の接続と接続の切り替えを行う配線部とスイッチ部を備える。ALU13a、13b、・・・、13cは、配線&スイッチ12とウインドウレジスタ部14経由で入力する入力信号に所定の演算を施し、配線&スイッチ12経由で出力する。演算器ユニットには、演算処理の他、データ処理用のデータを蓄積するデータ蓄積装置(メモリやレジスタ)13d、13e、・・・や、カウンタ13fがある。また、外部との間でデータやアドレスを交換するインタフェースやアドレス生成器などもある。ウインドウレジスタ部14は、データを保持する複数のレジスタで構成されるレジスタ群と、レジスタ群のうちの1つのレジスタを選択して演算器に接続する接続器を有し、このウインドウレジスタがALUの入力ポートに対応して配置される。このウインドウレジスタ部14は、コンフィギュレーションメモリ11の設定に応じて全体で、または、1もしくは複数のALUで構成されるグループ単位で、レジスタの切り替えを行う。
なお、図では、ウインドウレジスタ部14は、配線&スイッチ12とALU13a、13b、・・・、13cとの間に配置されているが、ウインドウレジスタ部14は、配線&スイッチ12内、ALU13a、13b、・・・、13c内、もしくは、これらに分割して配置することもできる。また、コンフィギュレーションメモリ11を演算器群10に設けているが、コンフィギュレーションメモリ11は、シーケンサ20内、演算器群10とシーケンサ20の外側に設置してもよいし、これらに分割して設けることもできる。
シーケンサ20は、状態制御部21、状態テーブル22、現状態アドレスレジスタ23およびウインドウ面制御部24を有する。
状態制御部21は、演算器群10から入力する切り替え条件信号に応じて、次に遷移する演算器群10のステートを設定する。なお、切り替え条件信号は、切り替え条件発生の通知と、切り替え条件コードから成る。状態テーブル22は、コンフィギュレーションメモリ11のアドレスと同じアドレスが割り付けられており、個々のエントリには次のエントリへの遷移の振る舞いを表すオペコードと、選択される可能性のあるエントリのアドレスが格納される。現状態アドレスレジスタ23は、現在のステートを示すアドレス(状態テーブル22とコンフィギュレーションメモリ11)が格納される。ウインドウ面制御部24は、状態制御部21が設定するステートに応じて、ウインドウレジスタ部14によって選択されるレジスタを制御する。
状態制御部21は、演算器群10から入力する切り替え条件信号に応じて、次に遷移する演算器群10のステートを設定する。なお、切り替え条件信号は、切り替え条件発生の通知と、切り替え条件コードから成る。状態テーブル22は、コンフィギュレーションメモリ11のアドレスと同じアドレスが割り付けられており、個々のエントリには次のエントリへの遷移の振る舞いを表すオペコードと、選択される可能性のあるエントリのアドレスが格納される。現状態アドレスレジスタ23は、現在のステートを示すアドレス(状態テーブル22とコンフィギュレーションメモリ11)が格納される。ウインドウ面制御部24は、状態制御部21が設定するステートに応じて、ウインドウレジスタ部14によって選択されるレジスタを制御する。
このような再構成可能演算装置では、演算器群10は、シーケンサ20によって指定されたコンフィギュレーションメモリ11の指定アドレスの設定情報に基づくステートで動作を行っている。そして、演算器群10において切り替え条件が成立したことが判定されると、切り替え条件コードとともにシーケンサ20に切り替え条件信号を発生させる。シーケンサ20では、状態制御部21が切り替え条件信号によって起動し、切り替え条件コードと状態テーブル22のエントリとから次に遷移するステートを決定し、そのステートを指示する設定情報が登録されたアドレス(遷移先アドレスとする)を算出し、算出した遷移先アドレスを現状態アドレスレジスタ23と状態テーブル22およびコンフィギュレーションメモリ11に設定する。これにより、コンフィギュレーションメモリ11の指定アドレスが遷移先アドレスに変更され、演算器群10のステートが遷移する。このとき、ウインドウ面制御部24は、状態制御部21の設定するステートに応じて、レジスタの切り替え指令と選択するレジスタを指示する。なお、レジスタの切り替え指令は、必要に応じて、ウインドウレジスタ部14全体、予め設定されたALUのグループごと、もしくは、個別のALUごとに出される。
ここで、コンフィギュレーションメモリ11について説明する。コンフィギュレーションメモリ11には、任意のアプリケーションを実行するための演算器群10のデータフローが、使用するレジスタとともに記述されている。図3は、本発明の実施の形態のコンフィギュレーションメモリの構成の一例を示した図である。
コンフィギュレーションメモリ11には、特定のステートにおける演算器群10の動作を決定するコンフィギュレーションデータが、ステートごとに格納されている。図の例では、ステートごとにコンフィギュレーションデータ111、112、113、114、・・・がエントリされている。この各ステートは、アドレスによって管理されている。
各エントリは、動作モード111a、リコンフィグ回路設計情報111b、ステート1(111c)、ステート2(111d)、ステート3(111e)、ステート4(111f)の領域を有する。動作モード111aは、このステートを識別する情報である。リコンフィグ回路設計情報111bは、この動作モードにおける再構成可能(リコンフィグ)回路の各演算器の動作や演算器間の接続関係を示した設計情報が格納される。なお、設計情報生成時に、特定のデータフローでは特定のレジスタを使用することが、自動的かつ一意的に決定される。そして、ステート1(111c)、ステート2(111d)、ステート3(111e)、ステート4(111f)には、この回路構成の次の状態としての候補が記述される。実際には、コンフィギュレーションメモリのアドレスが直接、または、その値から演算することによってアドレスが直接生成できるデータが記述されている。それぞれの次のステート候補は、ある切り替え条件と対応付けられており、その切り替え条件が成立すると、成立したステートへ遷移する処理が行われる。ステートの遷移処理では、コンフィギュレーションメモリ11に従って、ALUの動作や接続関係とともに、ALUに接続されるレジスタが設定される。なお、次候補として登録するステート数は任意に選択される。
次に、ウインドウレジスタ部14の構成について説明する。図4は、本実施の形態のウインドウレジスタ部の構成の一例を示した図である。図2と同じものには同じ番号を付し、説明は省略する。
ウインドウレジスタ部14は、ALU13a、13bの入力ポートに対応して、複数のレジスタ群と、そのレジスタ群のうちの1つを選択してALUに接続する選択器とが配置されている。図の例では、2つの入力ポートを持つALU13a、ALU13bの入力ポートごと、すなわち、ALU13aの第1の入力ポートには、Window1(141a)、Window2(142a)およびWindow3(143a)のレジスタ群と、選択器144a、ALU13aの第2の入力ポートには、Window1(141b)、Window2(142b)およびWindow3(143b)のレジスタ群と選択器144b、ALU13bの第1の入力ポートには、Window1(141c)、Window2(142c)およびWindow3(143c)のレジスタ群と選択器144c、ALU13bの第2の入力ポートには、Window1(141d)、Window2(142d)およびWindow3(143d)のレジスタ群と、選択器144d、が接続している。
それぞれのレジスタ群を構成するレジスタは、同時に選択されるレジスタで同一面を構成している。たとえば、あるアプリケーションにおいて、Window1(141a)、Window1(141b)、Window1(141c)、Window1(141d)が選択される場合、これらのウインドウを同一面と呼ぶ。同様に、Window2(142a)、Window2(142b)、Window2(142c)およびWindow2(142d)と、Window3(143a)、Window3(143b)、Window3(143c)、Window3(143d)と、が同一面を構成する。なお、同一面を構成する各レジスタ群のWindow面は、任意に選択される。また、同一面のWindow同士は、直列に接続される。以下、この同一面のWindowを直列に接続する経路をダミーパスと呼ぶ。このようにダミーパスを設けることにより、コンフィギュレーションメモリ11に記述されたデータフローによって所定のデータを流すと同時に、予め同一のウインドウ面に設けられたダミーパスによってデータフローに選択されていないレジスタのデータを流すことができる。
次に、ウインドウレジスタを構成する各ウインドウ(Window)の詳細な構成について説明する。図5は、本実施の形態のウインドウの構成の一例を示した図である。図は、ウインドウレジスタを構成する1つのウインドウについて示している。
Window1(141a)は、入力の切り替えを行うスイッチ1411aと、レジスタ1412aとから構成される。スイッチ1411aには、近接するALUに接続するWindow151のレジスタ1512、配線&スイッチ12および自身のレジスタ1412aの出力に接続する3つの信号線が入力する。なお、接続するレジスタ1512と、レジスタ1412aは、同一面に属する。
スイッチ1411aは、Window1(141a)とALU13との接続状況に応じて、スイッチ1411aの接続先を選択する。たとえば、選択器によってWindow1(141a)がALU13に接続され、Window1(141a)がアクティブの状態では、配線&スイッチ12と接続される。これにより、配線&スイッチ12を介して入力されるデータをALU13へ出力するとともに、このデータをレジスタ1412aに保存することができる。このような状態から、Window1(141a)の接続が解除され、非アクティブの状態となると、スイッチ1411aは、自身のレジスタ1412aの出力を接続する。これにより、Window1(141a)がアクティブの状態であった最後に入力されたデータがWindow1(141a)内で保持される。また、Window1(141a)が非アクティブの状態では、直列接続された他のWindowの同一面のレジスタ1512の出力を接続することもできる。直列接続された他のWindowの同一面のレジスタ1512の接続は、たとえば、シーケンサもしくはデバッグを制御するデバッグブロックからデバッグの指示を受けたときなど、特定の条件が成立した場合に行う。これにより、直列接続された非アクティブのWindowが保持するデータをダミーパス経由で外部に出力できる。
なお、上記では、Window1(141a)について説明したが、他のWindow2、Window3も同様の構造を有する。
このような構成のウインドウレジスタの動作について説明する。
このような構成のウインドウレジスタの動作について説明する。
たとえば、アプリケーション1を実行する際には、レジスタWindow1を使用し、アプリケーション2を実行する際にはレジスタWindow2を使用するように、コンフィギュレーションメモリ11に設定しておく。そして、アプリケーション1とアプリケーション2は、所定の条件が成立するごとに、切り替えられて交互に実行される。
最初に、アプリケーション1が実行され、ウインドウレジスタ部14の選択器144a、144b、144c、144dは、それぞれレジスタWindow1(141a、141b、141c、141d)を選択する。こうして、アプリケーション1では、Window1がデータフローに組込まれ、処理が実行される。
アプリケーション1を実行中に、切り替え条件が成立すると、シーケンサ20は、コンフィギュレーションメモリ11のアドレス指定をアプリケーション2に切り替え、演算器群の構成をアプリケーション2に変更する。このとき、コンフィギュレーションメモリ11経由もしくはシーケンサ20からの直接に指示を受け、選択器144a、144b、144c、144dは、レジスタWindow1(141a、141b、141c、141d)の接続を解除し、ALU13a、13bの接続をレジスタWindow2(142a、142b、142c、142d)に切り替える。切り離されたレジスタWindow1(141a、141b、141c、141d)は、レジスタが非アクティブとなったので、自身の出力を入力するラッチモードに遷移し、アプリケーション1の最終のデータを保持する。
続いて、アプリケーション2を実行中に切り替え条件が成立し、アプリケーション1に切り替えられる。このとき、アプリケーション1からアプリケーション2への切り替えとは逆に、レジスタWindow2(142a、142b、142c、142d)の接続が解除され、ALU13a、13bの接続をレジスタWindow1(141a、141b、141c、141d)に切り替える。再びアクティブとなったレジスタWindow1(141a、141b、141c、141d)には、アプリケーション1の最終のデータが保持されており、必要に応じてこれを使用することができる。また、Window2(142a、142b、142c、142d)も、上記と同様に、ラッチモードへ遷移する。このため、再びアプリケーション2に切り替えられた際には、このデータを使用することもできる。
このような切り替え動作をタイミングチャートで説明する。図6は、本実施の形態のウインドウレジスタ切り替えの一例を示したタイミングチャートである。図は、サイクルごとにアプリケーション1(Window1使用)と、アプリケーション2(Window2使用)が繰り返される場合の例を示している。
上記の説明のように、シーケンサは、アプリケーションの切り替え(演算器群の状態切り替え)を行う際に、データを一時保存する処理を行うことなく、アプリケーションの切り替えと同時にレジスタの切り替え指示を行うことができる。図では、1つのシーケンスブロックの処理開始時に、レジスタの切り替えが行われてWindow1(W1)が選択され、直ちにアプリケーション1の処理が行われる。続く、シーケンスブロックの立ち上がりでも同様に、Window2(W2)が選択され、直ちにアプリケーション2の処理が開始される。このように、複数のデータフローを時間軸において畳み込んで高速に実行することが可能となる。
なお、上記の説明では、切り替えるウインドウをWindow1と、Window2として説明したが、それ以上のWindow数であっても同様に、レジスタを切り替えることによりアプリケーションの切り替えを容易に行うことができる。
また、上記の説明では、同一面のWindowをすべて切り替える場合について説明したが、アプリケーションによっては、演算器ごとにいくつかのグループを生成し、グループ単位でウインドウの切り替え制御を行うようにすることもできる。グループは、1つのALUに構成される場合も含む。
さらに、デバッグなどの際には、コンフィギュレーションメモリ11に基づくデータフローとは別に、同一面のWindowを直列に接続したダミーパスを用いてデータを転送することができる。
1 演算器(ALU)
2 シーケンサ
3 レジスタ群
3a レジスタ1
3b レジスタ2
3c レジスタ3
4 選択器
5 レジスタ群
5a レジスタ1
5b レジスタ2
5c レジスタ3
6 選択器
2 シーケンサ
3 レジスタ群
3a レジスタ1
3b レジスタ2
3c レジスタ3
4 選択器
5 レジスタ群
5a レジスタ1
5b レジスタ2
5c レジスタ3
6 選択器
Claims (8)
- 複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサを有する再構成可能演算装置において、
前記演算器の入力ポートと前記演算器にデータを入力する前段の間に配置され、前記前段から前記演算器に入力される前記データを保持するレジスタを複数有するレジスタ群と、
前記シーケンサからの指示に従って、前記演算器と接続する前記レジスタを前記レジスタ群から選択し、選択された前記レジスタと前記演算器の前記入力ポートとを接続する選択器と、
を具備することを特徴とする再構成可能演算装置。 - 任意のアプリケーションを実行するための前記演算器群の状態を記述した設定情報に応じて前記状態ごとの前記レジスタ群において選択される前記レジスタが予め決定され、
前記選択器は、前記シーケンサの設定する前記演算器群の状態の切り替えに応じて前記レジスタの選択を行うことを特徴とする請求項1記載の再構成可能演算装置。 - 前記レジスタ群を構成する複数の前記レジスタは、それぞれ同時に選択される他のすべてのレジスタ群の前記レジスタと関連付けられて同一面を構成しており、
すべての前記選択器は、前記シーケンサからの指示に応じて、前記同一面の前記レジスタを選択することを特徴とする請求項1記載の再構成可能演算装置。 - 前記レジスタ群を構成する複数の前記レジスタは、それぞれ同時に選択される所定のグループに属する他のレジスタ群の前記レジスタと関連付けられて同一面を構成し、
前記グループに属する前記レジスタ群に接続する前記選択器は、前記シーケンサからの指示に応じて、前記同一面の前記レジスタを選択することを特徴とする請求項1記載の再構成可能演算装置。 - 前記レジスタ群を構成する前記レジスタは、前記選択器によって前記演算器に接続されていない状態では、前記レジスタ自身の出力を入力として選択することを特徴とする請求項1記載の再構成可能演算装置。
- 前記レジスタ群を構成する前記レジスタは、近接するレジスタ群の所定の前記レジスタと直列に接続する配線を有しており、
前記レジスタ群を構成するレジスタは、前記選択器によって前記演算器に接続されている状態では前記前段と接続され、前記選択器によって前記演算器に接続されていない状態では前記近接するレジスタ群と直列に接続されることを特徴とする請求項1記載の再構成可能演算装置。 - 前記レジスタ群を構成する前記レジスタは、前記レジスタ群に接続する前記演算器に入力する入力データに応じたデータ長で構成されることを特徴とする請求項1記載の再構成可能演算装置。
- 複数の演算器を含む演算器群と、前記演算器群の動作を制御するシーケンサとを有し、前記シーケンサによって前記演算器群の動作状態を再構成する半導体装置において、
前記演算器の入力ポートと前記演算器にデータを入力する前段の間に配置され、前記前段から前記演算器に入力される前記データを保持するレジスタを複数有するレジスタ群と、
前記シーケンサからの指示に従って、前記演算器と接続する前記レジスタを前記レジスタ群から選択し、選択された前記レジスタと前記演算器の前記入力ポートとを接続する選択器と、
を具備することを特徴とする半導体装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004189503A JP2006011924A (ja) | 2004-06-28 | 2004-06-28 | 再構成可能演算装置および半導体装置 |
US11/019,366 US20050289328A1 (en) | 2004-06-28 | 2004-12-23 | Reconfigurable processor and semiconductor device |
DE602005001900T DE602005001900T2 (de) | 2004-06-28 | 2005-01-13 | Rekonfigurierbarer Prozessor und Halbleiterbaustein |
EP05250139A EP1612693B1 (en) | 2004-06-28 | 2005-01-13 | Reconfigurable processor and semiconductor device |
CNB2005100018294A CN100464323C (zh) | 2004-06-28 | 2005-01-13 | 可重配置处理器和半导体器件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004189503A JP2006011924A (ja) | 2004-06-28 | 2004-06-28 | 再構成可能演算装置および半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006011924A true JP2006011924A (ja) | 2006-01-12 |
Family
ID=34993254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004189503A Pending JP2006011924A (ja) | 2004-06-28 | 2004-06-28 | 再構成可能演算装置および半導体装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050289328A1 (ja) |
EP (1) | EP1612693B1 (ja) |
JP (1) | JP2006011924A (ja) |
CN (1) | CN100464323C (ja) |
DE (1) | DE602005001900T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011154534A (ja) * | 2010-01-27 | 2011-08-11 | Fujitsu Semiconductor Ltd | リコンフィギュラブル回路および半導体集積回路 |
US9552328B2 (en) | 2011-06-30 | 2017-01-24 | Socionext Inc. | Reconfigurable integrated circuit device |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100440192C (zh) * | 2006-12-28 | 2008-12-03 | 北京时代民芯科技有限公司 | 粗粒度可重配置计算结构中算术单元结构 |
CN101320321B (zh) * | 2008-06-27 | 2010-06-02 | 北京大学深圳研究生院 | 一种阵列算术逻辑单元结构 |
WO2010057375A1 (zh) * | 2008-11-19 | 2010-05-27 | 北京大学深圳研究生院 | 一种可配置处理器体系结构和控制方法 |
US9203397B1 (en) * | 2011-12-16 | 2015-12-01 | Altera Corporation | Delaying start of user design execution |
KR102235803B1 (ko) * | 2017-03-31 | 2021-04-06 | 삼성전자주식회사 | 반도체 장치 |
CN111158756B (zh) * | 2019-12-31 | 2021-06-29 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4811413A (en) * | 1987-10-22 | 1989-03-07 | International Business Machines Corp. | System of reconfigurable pipelines of generalized neighborhood function morphic image processors |
US5513366A (en) * | 1994-09-28 | 1996-04-30 | International Business Machines Corporation | Method and system for dynamically reconfiguring a register file in a vector processor |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
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 |
US6092174A (en) * | 1998-06-01 | 2000-07-18 | Context, Inc. | Dynamically reconfigurable distributed integrated circuit processor and method |
AU2001268629A1 (en) * | 2000-06-21 | 2002-01-02 | Derivation Systems, Inc. | Dynamically configurable processor core and method for making the same |
US6883084B1 (en) * | 2001-07-25 | 2005-04-19 | University Of New Mexico | Reconfigurable data path processor |
TW200504592A (en) * | 2003-07-24 | 2005-02-01 | Ind Tech Res Inst | Reconfigurable apparatus with high hardware efficiency |
US7072320B2 (en) * | 2003-11-12 | 2006-07-04 | Morpho Technologies | Apparatus for spreading, scrambling and correlation in a reconfigurable digital signal processor |
US7268786B2 (en) * | 2004-05-14 | 2007-09-11 | Nvidia Corporation | Reconfigurable pipeline for low power programmable processor |
-
2004
- 2004-06-28 JP JP2004189503A patent/JP2006011924A/ja active Pending
- 2004-12-23 US US11/019,366 patent/US20050289328A1/en not_active Abandoned
-
2005
- 2005-01-13 CN CNB2005100018294A patent/CN100464323C/zh not_active Expired - Fee Related
- 2005-01-13 EP EP05250139A patent/EP1612693B1/en not_active Expired - Fee Related
- 2005-01-13 DE DE602005001900T patent/DE602005001900T2/de not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011154534A (ja) * | 2010-01-27 | 2011-08-11 | Fujitsu Semiconductor Ltd | リコンフィギュラブル回路および半導体集積回路 |
US9720879B2 (en) | 2010-01-27 | 2017-08-01 | Cypress Semiconductor Corporation | Reconfigurable circuit having rows of a matrix of registers connected to corresponding ports and a semiconductor integrated circuit |
US9552328B2 (en) | 2011-06-30 | 2017-01-24 | Socionext Inc. | Reconfigurable integrated circuit device |
Also Published As
Publication number | Publication date |
---|---|
US20050289328A1 (en) | 2005-12-29 |
CN1716229A (zh) | 2006-01-04 |
DE602005001900D1 (de) | 2007-09-20 |
DE602005001900T2 (de) | 2007-12-06 |
EP1612693A1 (en) | 2006-01-04 |
EP1612693B1 (en) | 2007-08-08 |
CN100464323C (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6122719A (en) | Method and apparatus for retiming in a network of multiple context processing elements | |
US6457116B1 (en) | Method and apparatus for controlling contexts of multiple context processing elements in a network of multiple context processing elements | |
US6108760A (en) | Method and apparatus for position independent reconfiguration in a network of multiple context processing elements | |
JP3452929B2 (ja) | マルチプロセッサ | |
US6745317B1 (en) | Three level direct communication connections between neighboring multiple context processing elements | |
KR100628448B1 (ko) | 재구성가능 칩 | |
US6288566B1 (en) | Configuration state memory for functional blocks on a reconfigurable chip | |
US6226735B1 (en) | Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements | |
US7350054B2 (en) | Processor having array of processing elements whose individual operations and mutual connections are variable | |
JP4527571B2 (ja) | 再構成可能演算処理装置 | |
JPH09128238A (ja) | Cpuデータ経路における同時入出力動作のための複数レジスタバンクシステム | |
JP2005165961A (ja) | 動的再構成論理回路装置、割込制御方法、及び、半導体集積回路 | |
JP4484756B2 (ja) | リコンフィギュラブル回路および処理装置 | |
JPS63147258A (ja) | マルチノード再構成可能パイプラインコンピュータ | |
EP1612693A1 (en) | Reconfigurable processor and semiconductor device | |
US7734896B2 (en) | Enhanced processor element structure in a reconfigurable integrated circuit device | |
JP2006018453A (ja) | 半導体装置 | |
JP2006236106A (ja) | データ処理装置及びデータ処理方法 | |
JP2006011825A (ja) | 再構成可能演算装置および半導体装置 | |
US8041925B2 (en) | Switch coupled function blocks with additional direct coupling and internal data passing from input to output to facilitate more switched inputs to second block | |
JP2007249843A (ja) | 再構成可能な演算装置 | |
US9081901B2 (en) | Means of control for reconfigurable computers | |
KR20060122520A (ko) | 데이터 경로의 재구성이 가능한 디지털 신호 처리기 | |
RU2519387C2 (ru) | Способ и аппаратура для обеспечения поддержки альтернативных вычислений в реконфигурируемых системах-на-кристалле | |
JP2010087880A (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070424 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090120 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090804 |