JP4782591B2 - リコンフィグラブル回路 - Google Patents

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

Info

Publication number
JP4782591B2
JP4782591B2 JP2006065695A JP2006065695A JP4782591B2 JP 4782591 B2 JP4782591 B2 JP 4782591B2 JP 2006065695 A JP2006065695 A JP 2006065695A JP 2006065695 A JP2006065695 A JP 2006065695A JP 4782591 B2 JP4782591 B2 JP 4782591B2
Authority
JP
Japan
Prior art keywords
input terminal
output terminal
unit group
control signal
network
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
JP2006065695A
Other languages
English (en)
Other versions
JP2007241830A (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 JP2006065695A priority Critical patent/JP4782591B2/ja
Priority to EP06121240A priority patent/EP1832985B1/en
Priority to US11/545,477 priority patent/US8099540B2/en
Priority to CN2006101375611A priority patent/CN101034387B/zh
Publication of JP2007241830A publication Critical patent/JP2007241830A/ja
Application granted granted Critical
Publication of JP4782591B2 publication Critical patent/JP4782591B2/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

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)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、リコンフィグラブル回路に関する。
図8はコンフィグレーション0を設定したリコンフィグラブル回路の構成例を示す図であり、図9はコンフィグレーション1を設定したリコンフィグラブル回路の構成例を示す図である。リコンフィグラブル回路は、ネットワークモジュール801を有する。ネットワークモジュール801は、外部入力データ端子DIのデータを入力し、外部出力データ端子DOからデータを出力する。また、ネットワークモジュール801は、第1のALU(算術論理演算ユニット:Arithmetic and Logic Unit)811、第2のALU812、第3のALU813、第4のALU814、カウンタ815及びRAM816を有する。ALU811〜814は、入力端子a及びbからデータを入力し、演算結果を出力端子oから出力する。カウンタ815は、入力端子a及びbからデータを入力し、カウンタ値を出力端子oから出力する。RAM816は、ライト端子write及びリード端子readに信号を入力し、出力端子oからデータを出力する。
まず、図8のコンフィグレーション0について説明する。外部入力データ端子DIは、第1のALU811の入力端子a及びbに接続される。第1のALU811は、例えば入力端子a及びbのデータの加算を行う。第1のALU811の出力端子oは、第3のALU813の入力端子aに接続される。第3のALU813は、例えば入力端子aのデータの4ビットシフト演算を行う。第3のALU813の出力端子oは、RAM816のライト端子に接続される。RAM816は、例えばライト動作を行う。
次に、図9のコンフィグレーション1について説明する。外部入力データ端子DIは、第4のALU814の入力端子a及びカウンタ815の入力端子aに接続される。カウンタ815の出力端子oは、RAM816のリード端子readに接続される。RAM816は、例えばリード動作を行う。RAM816の出力端子oは、第4のALU814の入力端子bに接続される。第4のALU814は、例えば入力端子a及びbのデータの乗算を行う。第4のALU814の出力端子oは、外部出力データ端子DOに接続される。
図10は、ネットワークモジュール801の構成例を示す図である。ネットワークモジュール801は、4個の第1のスイッチ1001及び4個の第2のスイッチ1002を有し、64ビットの制御信号SELを基にスイッチ1001及び1002を制御する。スイッチ1001及び1002は、それぞれ、4個の入力端子及び4個の出力端子を有し、各出力端子から4個の入力端子に入力されるデータのうちの1つを選択して出力することができる。64ビットの制御信号SELは、8個の8ビットの制御信号からなる。8個のスイッチ1001及び1002は、それぞれ、その8個の8ビットの制御信号を基に制御を行う。第1のスイッチ1001の入力端子は、上記の演算器811〜816及び外部入力データ端子DIに接続される。第1のスイッチ1001の出力端子は、第2のスイッチ1002の入力端子に接続される。第2のスイッチ1002の出力端子は、演算器811〜816の入力端子及び外部出力データ端子DOに接続される。
以上のように、ネットワークモジュール801は、コンフィグレーション設定の制御信号SELに応じて、演算器811〜816の機能を切り替え、その演算器811〜816間の接続を切り替えることができる。
下記の特許文献1には、複数のデータ入力ノードに接続される入力スイッチと、複数のデータ出力ノードに接続される出力スイッチと、前記入力スイッチと前記出力スイッチとの間に演算器及び第1データ保持回路とを有する第1データパスと、前記入力スイッチと前記出力スイッチとの間に第2データ保持回路とを有する第2データパスとを具備し、前記第1データ保持回路は、前記演算器の演算結果データを格納し、前記第2データ保持回路は、前記複数のデータ入力ノードの何れかに入力されたデータを保持することを特徴とする半導体集積回路が記載されている。
下記の特許文献2には、不揮発性メモリ素子を内蔵し、該メモリ素子を書換えることにより機能変更が可能な複数のプロセッサと、この複数のプロセッサ同士をプログラマブルに相互接続するための手段とが、一つの半導体基板に形成された半導体集積回路装置が記載されている。
特開2005−44329号公報 特開平6−274459号公報
ネットワークモジュール801は、各演算器811〜816の出力端子から各演算器811〜816の入力端子まで、どの組み合わせについても自由に接続できることが望ましい。しかし、図10に示すように、制御信号SELのビット数及び回路規模削減のため、配線を共有した構成をとる。このため、場合によってはネットワークモジュール801内で競合が発生し、接続できない組み合わせが存在する。
本発明の目的は、回路規模を削減し、かつ演算器群の出力端子及び入力端子の接続可能な組み合わせ数を増やすことができるリコンフィグラブル回路を提供することである。
本発明の一観点によれば、第1の出力端子及び第2の出力端子を含み、演算を行う演算器群と、第1の入力端子、第2の入力端子及びスイッチを含み、前記演算器群の出力端子及び入力端子間の接続を前記スイッチにより切り換えるネットワーク回路と、前記演算器群及びネットワーク回路の間に接続される第1のセレクタとを有し、前記第1のセレクタは、第1の制御信号が第1の状態のときには前記演算器群の第1の出力端子と前記ネットワーク回路の第1の入力端子とを接続しかつ前記演算器群の第2の出力端子と前記ネットワーク回路の第2の入力端子とを接続し、第1の制御信号が第2の状態のときには前記演算器群の第1の出力端子と前記ネットワーク回路の第2の入力端子とを接続しかつ前記演算器群の第2の出力端子と前記ネットワーク回路の第1の入力端子とを接続し、前記演算器群の入力端子は、前記ネットワーク回路の出力端子に接続されることを特徴とするリコンフィグラブル回路が提供される。
第1のセレクタを設けることにより、回路規模を削減し、かつ演算器群の出力端子及び入力端子の接続可能な組み合わせ数を増やすことができる。
図11は、図10のネットワークモジュール801を簡単化した構成例を示す図である。第1のスイッチ1101及び1102は、図10の第1のスイッチ1001を簡単化したものである。第2のスイッチ1111及び1112は、図10の第2のスイッチ1002を簡単化したものである。
スイッチ1101及び1102は、2個の入力端子及び2個の出力端子を有し、各出力端子からは2個の入力端子のデータのうちのいずれかを選択して出力することができる。スイッチ1111及び1112は、2個の入力端子及び4個の出力端子を有し、各出力端子からは2個の入力端子のデータのうちのいずれかを選択して出力することができる。
スイッチ1101の2個の入力端子は、図8の第3のALU813の出力端子ALU3o及びRAM816の出力端子RAMoに接続される。スイッチ1101の2個の出力端子は、1個がスイッチ1111の入力端子に接続され、他の1個がスイッチ1112の入力端子に接続される。
スイッチ1102の2個の入力端子は、図8の第1のALU811の出力端子ALU1o及び第2のALU812の出力端子ALU2oに接続される。スイッチ1102の2個の出力端子は、1個がスイッチ1111の入力端子に接続され、他の1個がスイッチ1112の入力端子に接続される。
スイッチ1111の4個の出力端子は、図8の第1のALU811の第1の入力端子ALU1a、第1のALU811の第2の入力端子ALU1b、第2のALU812の第1の入力端子ALU2a、及び第2のALU812の第2の入力端子ALU2bに接続される。
スイッチ1112の4個の出力端子は、図8の第3のALU813の第1の入力端子ALU3a、第3のALU813の第2の入力端子ALU3b、RAM816のライト端子RAMwrite、及びRAM816のリード端子RAMreadに接続される。
ここで、ネットワークモジュール801が、出力端子ALU3oと入力端子ALU1aとを接続し、出力端子RAMoと入力端子ALU2aとを接続する場合を考える。出力端子ALU3oは、スイッチ1101及び1111を介して、入力端子ALU1aに接続可能である。出力端子RAMoも、スイッチ1101及び1111を介して、入力端子ALU2aに接続可能である。スイッチ1101及び1111を接続するパスは1個しかないため、端子ALU3o及びALU1a間のパスと端子RAMo及びALU2a間のパスとが、スイッチ1101の出力端子1120で競合してしまう。その結果、端子ALU3o及びALU1a間のパスと端子RAMo及びALU2a間のパスとを両方同時に接続することができない。
図12は、図11の回路に対して、出力端子RAMo及びALU1oを入れ替えた回路を示す図である。ここで、上記と同様に、ネットワークモジュール801が、出力端子ALU3oと入力端子ALU1aとを接続し、出力端子RAMoと入力端子ALU2aとを接続する場合を考える。出力端子ALU3oは、スイッチ1101及び1111を介して、入力端子ALU1aに接続される。出力端子RAMoは、スイッチ1102及び1111を介して、入力端子ALU2aに接続される。スイッチ1101及び1111を接続するパスが1個存在し、スイッチ1102及び1111を接続するパスが1個存在するため、端子ALU3o及びALU1a間のパスと端子RAMo及びALU2a間のパスとを両方同時に接続することができる。
図11の場合には、ネットワークモジュール801内でデータの衝突が起こる可能性がある。これを回避するためには、図12に示すように、ネットワークモジュール801及び演算器間の接続を変更すればよい。しかし、演算器の出力端子は、ハードウエアで固定されているため、その位置を入れ替えることはできない。そこで、本実施形態では、演算器の出力端子RAMo及びALU1oの信号線を入れ替え接続することにより、図12に示すように、ネットワークモジュール801内のデータ衝突を回避させる。
図1は、本発明の実施形態によるリコンフィグラブル回路の構成例を示す図である。このリコンフィグラブル回路は、コンフィグレーションの設定により、図8の回路及び図9の回路に切り替えることができる。
CPU101は、CPUバス102を介して、CPUインタフェース103に接続される。コンフィグレーションRAM104は、ネットワークメモリであり、CPUバス102及びCPUインタフェース103を介してCPU101に接続される。また、コンフィグレーションRAM104は、コンフィグレーション0〜コンフィグレーション63の64面分のネットワーク制御信号情報(コンフィグレーションデータ)を記憶する。1面分のネットワーク制御信号情報は、Nビットである。CPU101は、64面分のネットワーク制御信号情報を予めコンフィグレーションRAM104に書き込むことができる。
CPU101は、例えば図8のコンフィグレーション0を設定する場合には、コンフィグレーション0のアドレスをコンフィグレーションRAM104に出力する。すると、コンフィグレーションRAM104は、Nビットのコンフィグレーション0のネットワーク制御信号情報をネットワーク回路105に出力する。
また、CPU101は、例えば図9のコンフィグレーション1を設定する場合には、コンフィグレーション1のアドレスをコンフィグレーションRAM104に出力する。すると、コンフィグレーションRAM104は、Nビットのコンフィグレーション1のネットワーク制御信号情報をネットワーク回路105に出力する。
以上のように、コンフィグレーションRAM104は、CPU101から入力されるコンフィグレーションのアドレスに応じて、Nビットのネットワーク制御信号情報をネットワーク回路105に出力することで構成を動的に変更することができる。
演算器群は、演算を行うn個の演算器111〜11nからなる。ネットワーク回路105は、n個の演算器111〜11nの出力端子とn個の演算器111〜11nの入力端子との間の接続を制御する(動的に組み換える)。その詳細は、後に図2を参照しながら説明する。セレクタ106は、演算器111〜11nの出力端子とネットワーク回路105の入力端子との間に接続され、演算器111〜11nの出力端子とネットワーク回路105の入力端子との接続を入れ替えることができる。同様に、セレクタ107は、演算器111〜11nの入力端子とネットワーク回路105の出力端子との間に接続され、演算器111〜11nの入力端子とネットワーク回路105の出力端子との接続を入れ替えることができる。これにより、図12に示したように、ネットワーク回路105内のデータ衝突を回避することができる。
図2は、ネットワーク回路105の構成例を示す図である。ネットワーク回路105は、第1のスイッチ201〜208、第2のスイッチ211〜218及び第3のスイッチ221〜228を有する。第1のスイッチ201〜208は、それぞれ、4個の入力端子及び4個の出力端子を有し、各出力端子からは4個の入力端子のデータのうちのいずれかを選択して出力することができる。第2のスイッチ211〜218は、それぞれ、4個の入力端子及び2個の出力端子を有し、各出力端子からは4個の入力端子のデータのうちのいずれかを選択して出力することができる。第3のスイッチ221〜228は、それぞれ、2個の入力端子及び4個の出力端子を有し、各出力端子からは2個の入力端子のデータのうちのいずれかを選択して出力することができる。
ネットワーク回路105は、32個の入力端子in0〜in31及び32個の出力端子out0〜out31を有する。32個の入力端子in0〜in31は、図1のセレクタ106を介して、演算器111〜11nの出力端子に接続される。32個の出力端子out0〜out31は、図1のセレクタ107を介して、演算器111〜11nの入力端子に接続される。
スイッチ201は、4個の入力端子が4個の入力端子in0〜in3に接続され、4個の出力端子がスイッチ211〜214の入力端子に接続される。スイッチ202は、4個の入力端子が4個の入力端子in4〜in7に接続され、4個の出力端子がスイッチ211〜214の入力端子に接続される。スイッチ203は、4個の入力端子が4個の入力端子in8〜in11に接続され、4個の出力端子がスイッチ211〜214の入力端子に接続される。スイッチ204は、4個の入力端子が4個の入力端子in12〜in15に接続され、4個の出力端子がスイッチ211〜214の入力端子に接続される。
スイッチ205は、4個の入力端子が4個の入力端子in16〜in19に接続され、4個の出力端子がスイッチ215〜218の入力端子に接続される。スイッチ206は、4個の入力端子が4個の入力端子in20〜in23に接続され、4個の出力端子がスイッチ215〜218の入力端子に接続される。スイッチ207は、4個の入力端子が4個の入力端子in24〜in27に接続され、4個の出力端子がスイッチ215〜218の入力端子に接続される。スイッチ208は、4個の入力端子が4個の入力端子in28〜in31に接続され、4個の出力端子がスイッチ215〜218の入力端子に接続される。
スイッチ211の2個の出力端子は、スイッチ221及び225の入力端子に接続される。スイッチ212の2個の出力端子は、スイッチ222及び226の入力端子に接続される。スイッチ213の2個の出力端子は、スイッチ223及び227の入力端子に接続される。スイッチ214の2個の出力端子は、スイッチ224及び228の入力端子に接続される。
スイッチ215の2個の出力端子は、スイッチ221及び225の入力端子に接続される。スイッチ216の2個の出力端子は、スイッチ222及び226の入力端子に接続される。スイッチ217の2個の出力端子は、スイッチ223及び227の入力端子に接続される。スイッチ218の2個の出力端子は、スイッチ224及び228の入力端子に接続される。
スイッチ221の4個の出力端子は、出力端子out0〜out3に接続される。スイッチ222の4個の出力端子は、出力端子out4〜out7に接続される。スイッチ223の4個の出力端子は、出力端子out8〜out11に接続される。スイッチ224の4個の出力端子は、出力端子out12〜out15に接続される。スイッチ225の4個の出力端子は、出力端子out16〜out19に接続される。スイッチ226の4個の出力端子は、出力端子out20〜out23に接続される。スイッチ227の4個の出力端子は、出力端子out24〜out27に接続される。スイッチ228の4個の出力端子は、出力端子out28〜out31に接続される。
図3は、スイッチ201の構成例を示す図である。スイッチ201は、セレクタ301〜304を有する。また、スイッチ201は、ネットワーク制御信号SEL1に応じて、入力端子in0〜in3にデータを入力し、出力端子output0〜output3からデータを出力する。8ビットのネットワーク制御信号SEL1は、4個の2ビット信号に分配され、セレクタ301〜304に出力される。
セレクタ301は、ネットワーク制御信号SEL1のうちの2ビットの信号に応じて、4個の入力端子in0〜in3のデータを入力し、そのうちのいずれか1つを選択し、出力端子output0から出力する。セレクタ302は、ネットワーク制御信号SEL1のうちの2ビットの信号に応じて、4個の入力端子in0〜in3のデータを入力し、そのうちのいずれか1つを選択し、出力端子output1から出力する。セレクタ303は、ネットワーク制御信号SEL1のうちの2ビットの信号に応じて、4個の入力端子in0〜in3のデータを入力し、そのうちのいずれか1つを選択し、出力端子output2から出力する。セレクタ304は、ネットワーク制御信号SEL1のうちの2ビットの信号に応じて、4個の入力端子in0〜in3のデータを入力し、そのうちのいずれか1つを選択し、出力端子output3から出力する。他のスイッチ202〜208、211〜218及び221〜228も、スイッチ201と同様の構成を有する。
図4は、図1のリコンフィグラブル回路のより具体的な構成例を示す図である。図4は、図1に対して、レジスタ401を追加したものである。レジスタ401は、フリップフロップであり、CPUバス102及びCPUインタフェース103を介して、CPU101に接続され、Mビットのセレクタ制御信号情報を記憶する。CPU101は、Nビットのセレクタ制御信号情報をレジスタ401に書き込むことができる。セレクタ106は、レジスタ401に記憶されているセレクタ制御信号情報に応じて、演算器111〜11nの出力端子とネットワーク回路105の入力端子との接続を入れ替えることができる。
図5は、図4のリコンフィグラブル回路の動作例を示すフローチャートである。まず、動作開始が指示されると、ステップS501では、CPU101は、ネットワークインタフェース103を介して、コンフィグレーションRAM104にネットワーク制御信号情報を書き込み、レジスタ401にセレクタ制御信号情報を書き込む。この処理は、起動設定処理であり、起動時に1回行われる。セレクタ106は、レジスタ401に記憶されたセレクタ制御信号情報に応じて、演算器111〜11nの出力端子とネットワーク回路105の入力端子との間の接続を行う。同様に、セレクタ107は、演算器111〜11nの入力端子とネットワーク回路105の出力端子との間の接続を行う。
次に、ステップS502では、リコンフィグレーションのコア動作を行う。CPU101は、コンフィグレーション設定のためのアドレスをコンフィグレーションRAM104に出力する。コンフィグレーションRAM104は、そのアドレスに応じて、設定されたコンフィグレーションのネットワーク制御信号情報をネットワーク回路105に出力する。ネットワーク回路105は、そのネットワーク制御信号情報に応じて、図2の入力端子in0〜in31と出力端子out0〜out31との間の接続を行う。例えば、コンフィグレーションRAM104は、CPU101の指示により、コンフィグレーション0〜コンフィグレーションNのネットワーク制御信号情報を順次、ネットワーク回路105に出力する。ネットワーク回路105は、コンフィグレーション0〜コンフィグレーションNの設定に基づく接続を順次行う。これにより、リコンフィグラブル回路は、コンフィグレーション0〜コンフィグレーションNの機能を動的に順次切り替えて動作させることができる。
図6は、図4のリコンフィグラブル回路のより具体的な構成例を示す図である。図6は、図4に対して、レジスタ402を追加したものである。セレクタ106は、16個のスワップセレクタ601〜616を有する。セレクタ107は、16個のスワップセレクタ617〜632を有する。
コンフィグレーションRAM104は、コンフィグレーション0〜コンフィグレーション63の64面分のネットワーク制御信号情報を記憶する。1面分のネットワーク制御信号情報は、1024ビットである。コンフィグレーションRAM104は、CPU101から入力されるコンフィグレーションのアドレスに応じて、1024ビットのネットワーク制御信号情報をネットワーク回路105に出力する。ネットワーク回路105は、128個の入力端子、128個の出力端子及び128個のスイッチを有する。その各スイッチは、図3のように、4個の入力端子及び4個の出力端子を有するスイッチであり、8ビットの制御信号に応じて、4個の入力端子と4個の出力端子の接続を制御する。128個のスイッチは、128×8=1024ビットの制御信号をコンフィグレーションRAM104から入力し、制御される。
レジスタ401は、フリップフロップであり、CPUバス102及びCPUインタフェース103を介して、CPU101に接続され、64ビットのセレクタ制御信号情報を記憶する。CPU101は、64ビットのセレクタ制御信号情報をレジスタ401に書き込むことができる。セレクタ106は、レジスタ401に記憶されている64ビットのセレクタ制御信号情報に応じて、演算器111〜11nの出力端子とネットワーク回路105の入力端子との接続を入れ替えることができる。
レジスタ402は、フリップフロップであり、CPUバス102及びCPUインタフェース103を介して、CPU101に接続され、64ビットのセレクタ制御信号情報を記憶する。CPU101は、64ビットのセレクタ制御信号情報をレジスタ402に書き込むことができる。セレクタ107は、レジスタ402に記憶されている64ビットのセレクタ制御信号情報に応じて、演算器111〜11nの入力端子とネットワーク回路105の出力端子との接続を入れ替えることができる。
図7は、スワップセレクタ601の構成例を示す図である。スワップセレクタ601は、8個の入力端子in0〜in7及び8個の出力端子out0〜out7を有する。入力端子in0〜in7は、演算器111〜11nの出力端子に接続される。出力端子out0〜out7は、ネットワーク回路105の入力端子に接続される。スワップセレクタ601は、4ビットのセレクタ制御信号に応じて、8個の入力端子in0〜in7及び8個の出力端子out0〜out7の接続を入れ替える。
第1のビットのセレクタ制御信号が第1の状態(例えば0)であるときには、入力端子in0及び出力端子out0が接続され、入力端子in4及び出力端子out4が接続される。これに対して、第1のビットのセレクタ制御信号が第2の状態(例えば1)であるときには、入力端子in0及び出力端子out4が接続され、入力端子in4及び出力端子out0が接続される。
第2のビットのセレクタ制御信号が第1の状態(例えば0)であるときには、入力端子in1及び出力端子out1が接続され、入力端子in5及び出力端子out5が接続される。これに対して、第2のビットのセレクタ制御信号が第2の状態(例えば1)であるときには、入力端子in1及び出力端子out5が接続され、入力端子in5及び出力端子out1が接続される。
第3のビットのセレクタ制御信号が第1の状態(例えば0)であるときには、入力端子in2及び出力端子out2が接続され、入力端子in6及び出力端子out6が接続される。これに対して、第3のビットのセレクタ制御信号が第2の状態(例えば1)であるときには、入力端子in2及び出力端子out6が接続され、入力端子in6及び出力端子out2が接続される。
第4のビットのセレクタ制御信号が第1の状態(例えば0)であるときには、入力端子in3及び出力端子out3が接続され、入力端子in7及び出力端子out7が接続される。これに対して、第1のビットのセレクタ制御信号が第2の状態(例えば1)であるときには、入力端子in3及び出力端子out7が接続され、入力端子in7及び出力端子out3が接続される。
以上のように、スワップセレクタ601は、セレクタ制御信号が第1の状態のときには、入力端子in0〜in7及び出力端子out0〜out7の接続を入れ替えずにストレートに接続し、セレクタ制御信号が第2の状態のときには、入力端子in0〜in7及び出力端子out0〜out7の接続を入れ替えてクロスに接続する。
他のスワップセレクタ602〜632も、スワップセレクタ601と同じ構成を有する。セレクタ106は、16個のスワップセレクタ601〜616を有する。各スワップセレクタ601〜616は、4ビットのセレクタ制御信号を基に制御される。したがって、セレクタ106内の16個のスワップセレクタ601〜616は、16×4=64ビットのセレクタ制御信号をレジスタ401から入力し、制御される。同様に、セレクタ107内の16個のスワップセレクタ617〜632は、16×4=64ビットのセレクタ制御信号をレジスタ402から入力し、制御される。
スワップセレクタ601〜632のそれぞれは、8個の入力端子in0〜in7及び8個の出力端子out0〜out7を有する。したがって、16個のスワップセレクタ601〜616を有するセレクタ106は、16×8=128個の入力端子IN及び出力端子を有する。同様に、16個のスワップセレクタ617〜632を有するセレクタ107は、16×8=128個の入力端子及び出力端子OUTを有する。
コンフィグレーションRAM104がネットワーク回路105に出力するネットワーク制御信号情報は1024ビットである。コンフィグレーションRAM104は、64面分のネットワーク制御信号情報を記憶する場合、64kビット程度の容量が必要となる。これに対して、セレクタ106及び107を制御するには、レジスタ401は64個のフリップフロップで構成され、レジスタ402も64個のフリップフロップで構成され、レジスタ401及び402のための2個のCPUインタフェース103を必要とする。セレクタ106及び107を追加した場合でも回路規模は、ネットワーク回路105及びコンフィグレーションRAM104と比較して小さく抑えることができる。
本実施形態によれば、ネットワーク回路105内のデータ競合を回避するために、ハードウエア完成後でもネットワーク回路105と演算器111〜11nの接続を変更するためのセレクタ106及び107を追加する。具体的には、図6に示すように、演算器111〜11nの出力端子とネットワーク回路105の入力端子との間にセレクタ106を設け、演算器111〜11nの入力端子とネットワーク回路105の出力端子との間にセレクタ107を設ける。
セレクタ106及び107のセレクタ制御信号は、コンフィグレーションRAM104からではなく、レジスタ401及び402から入力する。レジスタ401及び402には、CPU101がCPUインタフェース103を介して、セレクタ制御信号情報を書き込む。コンフィグレーションRAM104を使用しないのは、回路規模縮小のためであるとともに、演算器111〜11nとネットワーク回路105の接続設定は、図5に示したように、リコンフィグラブル回路の起動設定時にのみ行うことを想定しているためである。コンフィグレーションRAM104は、動作中に設定を切り替えたい場合に使用するので、(設定ビット数)×(切り替え面数)の容量が必要となる。よって、動作中に設定を切り替える部分を限定し、それ以外の部分はCPU101からの書き込みで起動時に設定することで、回路規模を抑えながらネットワークの接続自由度を向上させることができる。
図11のリコンフィグラブル回路では、演算器の出力端子及び入力端子間の接続を行う際に、ネットワークモジュール801と演算器との接続はハードウエア固定であり、ネットワークのルーティング制約により目的とするネットワーク接続を行うことができない場合が生じる。本実施形態は、この問題を解決するために、ネットワーク回路105と演算器111〜11nとの間の接続を入れ替えるためのセレクタ制御信号情報をレジスタ401及び402に設定することができる。セレクタ106及び107は、そのセレクタ制御信号情報を基に接続を入れ替えることにより、ネットワークの接続自由度を向上させることができる。また、セレクタ106及び107の接続の入れ替え機能は、レジスタ401及び402で設定できるため、コンフィグレーションRAM104を使用した場合に比べて、回路規模を小さく抑えることができる。すなわち、セレクタ106及び107を設けることにより、回路規模を削減し、かつ演算器群の出力端子及び入力端子の接続可能な組み合わせ数を増やすことができる。
本実施形態は、セレクタ106及び107の両方を設ける場合に限定されない。セレクタ107を削除し、セレクタ106のみを設けるようにしてもよい。また、セレクタ106を削除し、セレクタ107のみを設けるようにしてもよい。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態によるリコンフィグラブル回路の構成例を示す図である。 ネットワーク回路の構成例を示す図である。 スイッチの構成例を示す図である。 図1のリコンフィグラブル回路のより具体的な構成例を示す図である。 図4のリコンフィグラブル回路の動作例を示すフローチャートである。 図4のリコンフィグラブル回路のより具体的な構成例を示す図である。 スワップセレクタの構成例を示す図である。 コンフィグレーション0を設定したリコンフィグラブル回路の構成例を示す図である。 コンフィグレーション1を設定したリコンフィグラブル回路の構成例を示す図である。 ネットワークモジュールの構成例を示す図である。 図10のネットワークモジュールを簡単化した構成例を示す図である。 図11の回路に対して、出力端子RAMo及びALU1oを入れ替えた回路を示す図である。
符号の説明
101 CPU
102 CPUバス
103 CPUインタフェース
104 コンフィグレーションRAM
105 ネットワーク回路
106 セレクタ
107 セレクタ
111〜11n 演算器
401 レジスタ
402 レジスタ
601〜632 スワップセレクタ

Claims (9)

  1. 第1の出力端子及び第2の出力端子を含み、演算を行う演算器群と、
    第1の入力端子、第2の入力端子及びスイッチを含み、前記演算器群の出力端子及び入力端子間の接続を前記スイッチにより切り換えるネットワーク回路と、
    前記演算器群及びネットワーク回路の間に接続される第1のセレクタとを有し、
    前記第1のセレクタは、第1の制御信号が第1の状態のときには前記演算器群の第1の出力端子と前記ネットワーク回路の第1の入力端子とを接続しかつ前記演算器群の第2の出力端子と前記ネットワーク回路の第2の入力端子とを接続し、第1の制御信号が第2の状態のときには前記演算器群の第1の出力端子と前記ネットワーク回路の第2の入力端子とを接続しかつ前記演算器群の第2の出力端子と前記ネットワーク回路の第1の入力端子とを接続し、
    前記演算器群の入力端子は、前記ネットワーク回路の出力端子に接続されることを特徴とするリコンフィグラブル回路。
  2. 前記演算器群は、第3の出力端子及び第4の出力端子を有し、
    前記ネットワーク回路は、第3の入力端子及び第4の入力端子を有し、
    前記第1のセレクタは、第2の制御信号が第1の状態のときには前記演算器群の第3の出力端子と前記ネットワーク回路の第3の入力端子とを接続しかつ前記演算器群の第4の出力端子と前記ネットワーク回路の第4の入力端子とを接続し、第2の制御信号が第2の状態のときには前記演算器群の第3の出力端子と前記ネットワーク回路の第4の入力端子とを接続しかつ前記演算器群の第4の出力端子と前記ネットワーク回路の第3の入力端子とを接続することを特徴とする請求項記載のリコンフィグラブル回路。
  3. さらに、ネットワーク制御信号情報を記憶するネットワークメモリと、
    前記第1の制御信号の情報を記憶するレジスタとを有し、
    前記ネットワーク回路は、前記ネットワークメモリに記憶されるネットワーク制御信号情報に応じて前記接続を制御し、
    前記第1のセレクタは、前記レジスタに記憶される第1の制御信号の情報に応じて前記接続を行うことを特徴とする請求項記載のリコンフィグラブル回路。
  4. 第1の入力端子及び第2の入力端子を含み、演算を行う演算器群と、
    第1の出力端子、第2の出力端子及びスイッチを含み、前記演算器群の出力端子及び入力端子間の接続を前記スイッチにより切り換えるネットワーク回路と、
    前記演算器群及びネットワーク回路の間に接続される第1のセレクタとを有し、
    前記第1のセレクタは、第1の制御信号が第1の状態のときには前記演算器群の第1の入力端子と前記ネットワーク回路の第1の出力端子とを接続しかつ前記演算器群の第2の入力端子と前記ネットワーク回路の第2の出力端子とを接続し、第1の制御信号が第2の状態のときには前記演算器群の第1の入力端子と前記ネットワーク回路の第2の出力端子とを接続しかつ前記演算器群の第2の入力端子と前記ネットワーク回路の第1の出力端子とを接続し、
    前記演算器群の出力端子は、前記ネットワーク回路の入力端子に接続されることを特徴とするリコンフィグラブル回路。
  5. 前記演算器群は、第3の入力端子及び第4の入力端子を有し、
    前記ネットワーク回路は、第3の出力端子及び第4の出力端子を有し、
    前記第1のセレクタは、第2の制御信号が第1の状態のときには前記演算器群の第3の入力端子と前記ネットワーク回路の第3の出力端子とを接続しかつ前記演算器群の第4の入力端子と前記ネットワーク回路の第4の出力端子とを接続し、第2の制御信号が第2の状態のときには前記演算器群の第3の入力端子と前記ネットワーク回路の第4の出力端子とを接続しかつ前記演算器群の第4の入力端子と前記ネットワーク回路の第3の出力端子とを接続することを特徴とする請求項記載のリコンフィグラブル回路。
  6. さらに、ネットワーク制御信号情報を記憶するネットワークメモリと、
    前記第1の制御信号の情報を記憶するレジスタとを有し、
    前記ネットワーク回路は、前記ネットワークメモリに記憶されるネットワーク制御信号情報に応じて前記接続を制御し、
    前記第1のセレクタは、前記レジスタに記憶される第1の制御信号の情報に応じて前記接続を行うことを特徴とする請求項記載のリコンフィグラブル回路。
  7. 第1の入力端子、第2の入力端子、第1の出力端子及び第2の出力端子を含み、演算を行う演算器群と、
    第1の入力端子、第2の入力端子、第1の出力端子、第2の出力端子及びスイッチを含み、前記演算器群の出力端子及び入力端子間の接続を前記スイッチにより切り換えるネットワーク回路と、
    前記演算器群及びネットワーク回路の間に接続される第1のセレクタ、
    前記演算器群及びネットワーク回路の間に接続される第2のセレクタとを有し、
    前記第1のセレクタは、第1の制御信号が第1の状態のときには前記演算器群の第1の出力端子と前記ネットワーク回路の第1の入力端子とを接続しかつ前記演算器群の第2の出力端子と前記ネットワーク回路の第2の入力端子とを接続し、第1の制御信号が第2の状態のときには前記演算器群の第1の出力端子と前記ネットワーク回路の第2の入力端子とを接続しかつ前記演算器群の第2の出力端子と前記ネットワーク回路の第1の入力端子とを接続し、
    前記第2のセレクタは、第2の制御信号が第1の状態のときには前記演算器群の第1の入力端子と前記ネットワーク回路の第1の出力端子とを接続しかつ前記演算器群の第2の入力端子と前記ネットワーク回路の第2の出力端子とを接続し、第2の制御信号が第2の状態のときには前記演算器群の第1の入力端子と前記ネットワーク回路の第2の出力端子とを接続しかつ前記演算器群の第2の入力端子と前記ネットワーク回路の第1の出力端子とを接続することを特徴とするリコンフィグラブル回路。
  8. 前記演算器群は、第3の入力端子、第4の入力端子、第3の出力端子及び第4の出力端子を有し、
    前記ネットワーク回路は、第3の入力端子、第4の入力端子、第3の出力端子及び第4の出力端子を有し、
    前記第1のセレクタは、第3の制御信号が第1の状態のときには前記演算器群の第3の出力端子と前記ネットワーク回路の第3の入力端子とを接続しかつ前記演算器群の第4の出力端子と前記ネットワーク回路の第4の入力端子とを接続し、第3の制御信号が第2の状態のときには前記演算器群の第3の出力端子と前記ネットワーク回路の第4の入力端子とを接続しかつ前記演算器群の第4の出力端子と前記ネットワーク回路の第3の入力端子とを接続し、
    前記第2のセレクタは、第4の制御信号が第1の状態のときには前記演算器群の第3の入力端子と前記ネットワーク回路の第3の出力端子とを接続しかつ前記演算器群の第4の入力端子と前記ネットワーク回路の第4の出力端子とを接続し、第4の制御信号が第2の状態のときには前記演算器群の第3の入力端子と前記ネットワーク回路の第4の出力端子とを接続しかつ前記演算器群の第4の入力端子と前記ネットワーク回路の第3の出力端子とを接続することを特徴とする請求項記載のリコンフィグラブル回路。
  9. さらに、ネットワーク制御信号情報を記憶するネットワークメモリと、
    前記第1の制御信号の情報を記憶する第1のレジスタと、
    前記第2の制御信号の情報を記憶する第2のレジスタとを有し、
    前記ネットワーク回路は、前記ネットワークメモリに記憶されるネットワーク制御信号情報に応じて前記接続を制御し、
    前記第1のセレクタは、前記第1のレジスタに記憶される第1の制御信号の情報に応じて前記接続を行い、
    前記第2のセレクタは、前記第2のレジスタに記憶される第2の制御信号の情報に応じて前記接続を行うことを特徴とする請求項記載のリコンフィグラブル回路。
JP2006065695A 2006-03-10 2006-03-10 リコンフィグラブル回路 Expired - Fee Related JP4782591B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006065695A JP4782591B2 (ja) 2006-03-10 2006-03-10 リコンフィグラブル回路
EP06121240A EP1832985B1 (en) 2006-03-10 2006-09-26 Reconfigurable circuit
US11/545,477 US8099540B2 (en) 2006-03-10 2006-10-11 Reconfigurable circuit
CN2006101375611A CN101034387B (zh) 2006-03-10 2006-10-25 可重构电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006065695A JP4782591B2 (ja) 2006-03-10 2006-03-10 リコンフィグラブル回路

Publications (2)

Publication Number Publication Date
JP2007241830A JP2007241830A (ja) 2007-09-20
JP4782591B2 true JP4782591B2 (ja) 2011-09-28

Family

ID=38179882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006065695A Expired - Fee Related JP4782591B2 (ja) 2006-03-10 2006-03-10 リコンフィグラブル回路

Country Status (4)

Country Link
US (1) US8099540B2 (ja)
EP (1) EP1832985B1 (ja)
JP (1) JP4782591B2 (ja)
CN (1) CN101034387B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4962305B2 (ja) * 2007-12-26 2012-06-27 富士通セミコンダクター株式会社 リコンフィギュラブル回路
JP5115307B2 (ja) * 2008-04-25 2013-01-09 富士通セミコンダクター株式会社 半導体集積回路
JP5599987B2 (ja) 2009-06-12 2014-10-01 スパンション エルエルシー 多重化用補助peおよび半導体集積回路
CN102650860A (zh) * 2011-02-25 2012-08-29 西安邮电学院 一种新型数据流dsp中信号处理硬件的控制器结构
US9875808B2 (en) 2013-01-15 2018-01-23 Micron Technology, Inc. Reclaimable semiconductor device package and associated systems and methods
JP6379032B2 (ja) * 2014-12-26 2018-08-22 株式会社メガチップス 乱数生成装置及び乱数生成方法
US10931282B2 (en) 2016-06-16 2021-02-23 Board Of Regents, The University Of Texas System Self-contained reconfigurable personal laboratory

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901268A (en) * 1988-08-19 1990-02-13 General Electric Company Multiple function data processor
JPH06274459A (ja) 1993-03-17 1994-09-30 Hitachi Ltd 半導体集積回路装置
US6265894B1 (en) * 1995-10-13 2001-07-24 Frederic Reblewski Reconfigurable integrated circuit with integrated debugging facilities for use in an emulation system
US5724276A (en) * 1996-06-17 1998-03-03 Xilinx, Inc. Logic block structure optimized for sum generation
KR100222032B1 (ko) * 1996-12-24 1999-10-01 윤종용 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US6745317B1 (en) * 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
US6963890B2 (en) * 2001-05-31 2005-11-08 Koninklijke Philips Electronics N.V. Reconfigurable digital filter having multiple filtering modes
CA2459411C (en) * 2001-09-07 2013-04-02 Ip Flex Inc. Data processing system and control method
US20030055852A1 (en) * 2001-09-19 2003-03-20 Wojko Mathew Francis Reconfigurable arithmetic logic block array for FPGAs
US6476634B1 (en) * 2002-02-01 2002-11-05 Xilinx, Inc. ALU implementation in single PLD logic cell
US7627817B2 (en) * 2003-02-21 2009-12-01 Motionpoint Corporation Analyzing web site for translation
JP4423953B2 (ja) 2003-07-09 2010-03-03 株式会社日立製作所 半導体集積回路
US7149996B1 (en) * 2003-07-11 2006-12-12 Xilinx, Inc. Reconfigurable multi-stage crossbar
TW200504592A (en) * 2003-07-24 2005-02-01 Ind Tech Res Inst Reconfigurable apparatus with high hardware efficiency
JP4603335B2 (ja) * 2003-11-11 2010-12-22 株式会社リコー データ転送システム、画像形成システム及びデータ転送方法
JP4603336B2 (ja) * 2003-11-11 2010-12-22 株式会社リコー データ転送システム、画像形成システム及びデータ転送方法
JP4271558B2 (ja) * 2003-11-19 2009-06-03 株式会社リコー データ転送システム、画像形成システム及びデータ転送用プログラム
JP4300151B2 (ja) * 2004-04-19 2009-07-22 Okiセミコンダクタ株式会社 演算処理装置
JP2006018413A (ja) 2004-06-30 2006-01-19 Fujitsu Ltd プロセッサおよびパイプライン再構成制御方法
US20060004902A1 (en) * 2004-06-30 2006-01-05 Siva Simanapalli Reconfigurable circuit with programmable split adder
JP2006018411A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd プロセッサ
US20060114918A1 (en) 2004-11-09 2006-06-01 Junichi Ikeda Data transfer system, data transfer method, and image apparatus system
US7590676B1 (en) * 2005-09-27 2009-09-15 Altera Corporation Programmable logic device with specialized multiplier blocks

Also Published As

Publication number Publication date
CN101034387A (zh) 2007-09-12
EP1832985A2 (en) 2007-09-12
JP2007241830A (ja) 2007-09-20
US20070230336A1 (en) 2007-10-04
EP1832985B1 (en) 2012-07-04
EP1832985A3 (en) 2008-07-02
US8099540B2 (en) 2012-01-17
CN101034387B (zh) 2011-12-14

Similar Documents

Publication Publication Date Title
JP4782591B2 (ja) リコンフィグラブル回路
KR100628448B1 (ko) 재구성가능 칩
US20200150958A1 (en) Processor and control method for processor
US4884192A (en) Information processor capable of data transfer among plural digital data processing units by using an active transmission line having locally controlled storage of data
CN112395819A (zh) 统一的可编程计算存储器和配置网络
JP4485272B2 (ja) 半導体装置
US7734896B2 (en) Enhanced processor element structure in a reconfigurable integrated circuit device
JP2008537268A (ja) 可変精度相互接続を具えたデータ処理エレメントの配列
JP4451733B2 (ja) 半導体装置
US11016822B1 (en) Cascade streaming between data processing engines in an array
JP2006302132A (ja) 信号処理装置及び再構成可能論理回路装置及び再構成可能順序回路
JP7250953B2 (ja) データ処理装置、及び人工知能チップ
US6175912B1 (en) Accumulator read port arbitration logic
US6675283B1 (en) Hierarchical connection of plurality of functional units with faster neighbor first level and slower distant second level connections
JP2007148622A (ja) インターフェース設定方法
JP4669781B2 (ja) 処理装置
TWI810262B (zh) 用於計算機器的可變位元寬資料格式的單打包和拆包網路及方法
JP2008204356A (ja) リコンフィギャラブル回路
JP2008165537A (ja) 動的再構成可能プロセッサ及び再構成指示方法
JP4758538B2 (ja) データ処理装置および制御方法
JP2008219728A (ja) 再構成可能な演算処理回路
CN117667836A (zh) 一种去中心化多pea架构的cgra可重构处理器
SU328441A1 (ja)
JP6263048B2 (ja) 半導体集積回路
JP2007004424A (ja) バスシステム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080731

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110415

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110420

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

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

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

Free format text: PAYMENT UNTIL: 20140715

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

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

LAPS Cancellation because of no payment of annual fees