JP2005044329A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2005044329A
JP2005044329A JP2003408411A JP2003408411A JP2005044329A JP 2005044329 A JP2005044329 A JP 2005044329A JP 2003408411 A JP2003408411 A JP 2003408411A JP 2003408411 A JP2003408411 A JP 2003408411A JP 2005044329 A JP2005044329 A JP 2005044329A
Authority
JP
Japan
Prior art keywords
data
input
output
circuit
cell
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.)
Granted
Application number
JP2003408411A
Other languages
English (en)
Other versions
JP4423953B2 (ja
Inventor
Hiroshi Tanaka
博志 田中
Yohei Akita
庸平 秋田
Tetsuro Motomura
哲朗 本村
Fumio Arakawa
文男 荒川
Masanobu Tsunoda
賢伸 津野田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003408411A priority Critical patent/JP4423953B2/ja
Priority to EP04254007A priority patent/EP1496618A3/en
Priority to KR1020040052885A priority patent/KR20050007151A/ko
Priority to CNB2004100635241A priority patent/CN100352165C/zh
Priority to US10/886,616 priority patent/US7568084B2/en
Publication of JP2005044329A publication Critical patent/JP2005044329A/ja
Priority to US12/505,128 priority patent/US20090282213A1/en
Application granted granted Critical
Publication of JP4423953B2 publication Critical patent/JP4423953B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17752Structural details of configuration resources for hot reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】動的にコンフィグレーション情報が変更可能なLSIにおいて、コンフィグレーション情報によらず動作周波数を一定にでき、かつ、セル内の演算器を有効に活用可能な、基本セルを提供する。
【解決手段】複数のデータ入力ノードに接続される入力スイッチISWと、複数のデータ出力ノードに接続される出力スイッチOSWと、入力スイッチISWと出力スイッチOSWとの間に演算器ALU及び演算結果用フリップ・フロップCFF0とを有する第1データパスと、入力スイッチISWと出力スイッOSWチとの間に配線用フリップ・フロップを有する第2データパスとを具備し、演算結果用フリップ・フロップCFFは、演算器ALUの演算結果データを格納し、配線用フリップ・フロップは、前記複数のデータ入力ノードの何れかに入力されたデータを保持するように構成する。
【選択図】図2

Description

本発明は、半導体集積回路に関し、特に動的にコンフィグレーション情報が変更可能なLSIおよび二次元アレイに関し、アレイを構成する基本セルの構造に関する。
近年、情報処理機器の普及と高性能化に伴い、様々なアプリケーションが登場しており、これらアプリケーションはソフトウェアで記述されCPUで実行される形態が主流となっている。ところが、アプリケーションの中には現在汎用的に用いられているプロセッサよりも高度な演算処理能力を要求するものもあり、プロセッサに対して、より一層の処理能力の向上が要求されている。現在、半導体製造技術の進歩によりLSIで実現できる回路規模が拡大しており、大きな回路を有効利用したLSIが求められている。
汎用性を保ちつつ、大きな回路を有効利用して処理能力を向上させているLSIとして、FPGAに代表されるような、ハードウェアをどのように構成するかを指定したコンフィグレーション情報を変更することで動作を変えるLSIが、特許文献1に開示されている。かかる先行技術では論理セルと、配線領域とを含んでセル・アレイを構成する。各セルは配線領域内で、隣接するセルへ接続する配線や、離れた場所のセルに接続する長距離配線で接続されており、各配線は配線領域内のスイッチにより接続するか否かが選択できるように構成される。こうした構成を持つLSIではセルの動作や、配線のスイッチのオン、オフを決めるコンフィグレーション情報を変更することで異なる処理を行うことができる。また、実行する処理に応じてコンフィグレーション情報を変更することで汎用プロセッサよりも専用ハードウェアに近い構成となるため高速に処理を行うことが可能である。
また、近年、特許文献2に示されるようなリコンフィギュアブルLSIと呼ばれる技術が注目されてきている。上述のFPGAは、NANDやNOR回路等の論理ゲートをアレイ状に配置し、その接続配線を切り換えるのに対し、リコンフィギュアブルLSIでは、論理ゲートでなく演算ユニットをアレイ状に配置し、コンフィグレーション情報により演算ユニットの機能及び各演算ユニット間の配線を切り換える技術である。
国際公開94/10754号パンフレット
米国特許公開公報2001/35772号公報
しかしながら、従来の方法では、配線領域内で、隣接するセルへ接続する隣接配線や、離れた場所のセルに接続する長距離配線を用いてセル間を接続する。また、各セル間のデータ入力タイミングを合わせるためのフリップ・フロップ等は、論理ゲートを構成する領域と異なる場所に設けられることが多い。従って、コンフィグレーション情報によって、各セル間、又は、データの転送タイミングを調整するフリップ・フロップに接続するための配線の長さが変わることになる。このことは、コンフィグレーション情報によって、1クロック・サイクルでデータが転送されるべき配線長が変わることを意味する。言い換えれば、LSIの最大動作周波数は、1クロック・サイクルで転送しなければならない配線の長さに関連するため、コンフィグレーション情報によりLSIの最大動作周波数が異なることになる。このような状況においては、コンフィグレーション情報を変更するたびにLSIの動作周波数を変更しなくてはならなくなってしまう。現実には、動作周波数を逐次変更することは困難であるため、低い方の動作周波数に合わせて回路を動作させることが多い。即ち、従来の方法ではコンフィグレーション情報により各セル間、又は、フリップ・フロップまでの配線の長さが変更されるためチップの最大動作周波数を向上させることが困難になるという問題があることに本発明者は気が付いた。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば以下の通りである。
複数のデータ入力ノードに接続される入力スイッチと、複数のデータ出力ノードに接続される出力スイッチと、前記入力スイッチと前記出力スイッチとの間に演算器及び第1データ保持回路とを有する第1データパスと、前記入力スイッチと前記出力スイッチとの間に第2データ保持回路とを有する第2データパスとを具備し、前記第1データ保持回路は、前記演算器の演算結果データを格納し、前記第2データ保持回路は、前記複数のデータ入力ノードの何れかに入力されたデータを保持するように構成する。
更に、望ましくは、前記半導体集積回路は、前記入力スイッチにおける前記複数のデータ入力ノードと前記第1データパス及び前記第2データパスとの接続関係を設定するための第1入力スイッチ選択情報、前記出力スイッチにおける前記複数のデータ出力ノードと前記第1データパス及び前記第2データパスとの接続関係を設定するための第1出力スイッチ選択情報及び前記演算器の機能を設定するための第1演算機能情報を保持する第1メモリを更に具備する。
更に望ましくは、前記演算器は、第1演算回路と、前記第1演算回路と異なる種類の演算を行う第2演算回路とを有し、前記第1演算機能情報に従って、前記第1演算回路を用いて演算を行うか前記第2演算回路を用いて演算を行うかが決定される。
上記の第1データ保存回路と第2データ保存回路は、データ転送を行うために、基本セル一個の通過に1クロックを要する。この改善手段として、セル通過時に、保存回路を介さずに、スルーでセル内を通過するパスを設ける方法も提示する。
高速に動作可能な半導体集積回路を実現することができる。
以下、本発明による代表的な実施例を図面に従って詳細に説明する。なお、以下においては、同じ参照番号、記号は同じものもしくは類似のものを表わすものとする。また、特に制限されないが、実施例の各ブロックを構成する回路素子は、公知のCMOS(相補型MOSトランジスタ)やバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。
図1は、システムLSIの一つの回路モジュールを示すものであり、本願発明を適用した回路ブロックを示す実施例である。特に制限されないが、この回路モジュールは、動的にコンフィグレーション情報が変更可能な回路を示したものであり、図1に示される各ブロックは、1個の半導体基板上に形成される。
IP1001は、基本セル100を一単位として8行8列で構成されるセル・アレイと、コンフィグレーション・コントローラCCNTと、ローカル・メモリMEM0およびMEM1と、メモリ・コントローラMCNT0およびMCNT1と、IPコントローラIPCNTを含んで構成される。また、コンフィグレーション・コントローラCCNTとメモリ・コントローラMECNTと、IPコントローラIPCNTはオンチップ・バスOCBに接続される。オンチップ・バスOCBは、データバスとアドレスバスとを含み、図示しない他の回路モジュールと共通に接続される。
コンフィグレーション・コントローラCCNTは、コンフィグレーション情報の各基本セル100への転送を制御する。メモリ・コントローラMCNTは、IPコントローラIPCNTからの命令を受けて、外部メモリとローカル・メモリMEM間のデータの送受信と、ローカル・メモリMEMからセル・アレイへのデータの供給と、セル・アレイから出力されるデータのローカル・メモリMEMへの保存を行う。IPコントローラは与えられたプログラムを実行し、コンフィグレーション・コントローラCCNTの制御と、メモリ・コントローラMCNTの制御を行う。ローカル・メモリMEM0,MEM1を設けることにより、セル・アレイ部分のコンフィグレーション情報を変更しながらさまざまな処理を行う際に、外部メモリとの転送を減らし、セル・アレイ部分を高速に動作させ易くなる。また、メモリ・コントローラMCTN0,MCTN1やコンフィグレーション・コントローラCCNTは、図示しない他の制御回路、例えば中央処理装置(CPU)から直接命令を受けて動作することも可能である。しかし、IPコントローラIPCNTを設け、IPコントローラIPCNTにメモリ・コントローラMCTN0,MCTN1やコンフィグレーション・コントローラCCNTの制御を行わせることにより、CPU等の他の制御回路の負担を軽減することができる。また、IPコントローラIPCNTに処理を受け渡した後、CPU等の他の制御回路は、並列して他の処理をすることが可能となり、システムLSI全体としての処理性能の向上を図ることができる。
1. 第一の実施の形態
以下では、第一の実施の形態として、データ転送のために、基本セル内の保存回路である配線フリップ・フロップを利用する方法を述べる。
図2は、図1における基本セル100の実施の1形態を示すブロック図である。基本セル100は、入力スイッチISWと、出力スイッチOSWと、演算器ALUと、演算結果格納用フリップ・フロップCFFと、配線用フリップ・フロップRFFと、コンフィグレーション・メモリCMと、クロック信号入力線CLKと、リセット信号入力線RSTと、隣接セルからデータが入力される複数のデータ入力ノードの夫々に接続される入力線101と、隣接セルへデータを出力する複数のデータ出力ノードの夫々に接続される出力線102と、コンフィグレーション情報選択信号線CSと、コンフィグレーション情報変更用データ入力線DTと、セル選択線SXおよびSYと、コンフィグレーション情報変更用アドレス入力線ADとを含んで構成される。また、入力されたデータは、演算器ALU及び演算結果用フリップ・フロップCFFを含む第1のデータパス又は配線用フリップ・フロップRFFを含む第2のデータパスを介して伝達される。隣接セルからの入力線101、および、隣接セルへの出力線102は1本が8ビットの束で、隣接する上下左右のセルに各2本ずつ接続される。コンフィグレーション情報選択信号線CS、コンフィグレーション情報変更用データ入力線DT、セル選択線SXおよびSY、コンフィグレーション情報変更用アドレス入力線ADは、それぞれコンフィグレーション・コントローラCCNTから出力される。
なお、図2の構成では演算器ALU1つ、演算結果格納用フリップ・フロップCFF2つ、配線フリップ・フロップRFF2つで構成されているが、これらの数はここで示した数に限定されない。また、隣接セルからの入力線101と、隣接セルへの出力線102は上下左右のセルへ8ビットの束で各2本ずつとしているが、これらの線は1本あたりのビット数、隣接セルへ接続する本数共にここで示した数に限定されない。
入力スイッチISWの入力は、隣接セルからの入力線101と、自セル内の演算結果格納用フリップ・フロップCFFからの出力線と、自セル内の配線フリップ・フロップRFFからの出力線が接続され、出力は演算器ALUおよび配線フリップ・フロップRFFの入力線に接続される。入力スイッチISWは、動作時には、複数の入力ノードのうちコンフィグレーション・メモリCMで指定された入力を選択して、演算器ALU又は配線用フリップ・フロップRFF0、RFF1に出力する。
出力スイッチOSWの入力は演算結果格納フリップ・フロップCFFと配線フリップ・フロップRFFの出力が接続され、出力は隣接セルへの出力線102に接続される。出力スイッチOSWは、動作時にはコンフィグレーション・メモリCMで指定された入力を選択して出力線102に出力する。演算器ALUは、入力されたデータに対して、コンフィグレーション・メモリCMで指定された演算を実行し出力する。
配線フリップ・フロップRFFおよび演算結果格納用フリップ・フロップCFFは、セルに入力されるクロック信号CLKに従って(同期して)動作し、リセット信号RSTによりリセットされる。リセット信号RSTは、チップの起動時と、新しいコンフィグレーションに切り換えられた時にも入力されることがある。
コンフィグレーション・メモリCMは、セル外部よりセルの動作を指定するコンフィグレーション情報を受けとり、内部の記憶素子に記憶する。ここで、コンフィグレーション・メモリCMに保持されるコンフィグレーション情報として、特に制限されないが、演算器ALUの機能情報、入力スイッチISW及び出力スイッチOSWの選択情報、演算器ALUにおいて使用される定数等がある。さらに、コンフィグレーション選択信号CSの指定により、内部に記憶されたコンフィグレーション情報を切り替え、入力スイッチISWと、出力スイッチOSWと、演算器ALUの動作を指定する。
このように構成されたセルでは、データは隣接セル入力線101から入力され、配線フリップ・フロップRCCまたは演算結果格納用フリップ・フロップCFFを一回通り、出力スイッチOSWを介して隣接セル出力線102から出力される場合、その伝達には1クロック・サイクルかかる。言い換えれば、クロック信号がロウレベルからハイレベルに変化した後、更にロウレベルからハイレベルに変化するまでを1クロック・サイクルとすると、配線用フリップ・フロップRFF及び演算結果格納用フリップ・フロップCFFは、基本セル100に処理すべきデータが入力され後、クロック信号CLKがロウレベルからハイレベルに変化した際に、データを取り込み、1クロック・サイクルの間、夫々のフリップ・フロップに入力されたデータを保持・出力する。これに対して、配線フリップ・フロップRFFまたは演算結果格納用フリップ・フロップCFFの出力を入力スイッチISWにフィードバックし、再度、配線フリップ・フロップRFFまたは演算結果格納用フリップ・フロップCFFを介して出力スイッチOSWを介して隣接セル出力線102に出力する場合は2クロック・サイクルとなる。即ち、配線フリップ・フロップRFFの数がN個あり、これらを全て利用した場合にはNクロック・サイクル後にセルから出力することができる。この機能を利用することにより、長距離配線がなく、かつ、クロックに同期したセルを用いていても、異なる経路から来た信号の同期をとり、パイプラインで処理することが可能である。
図3は、図2に示される基本セル100の各回路ブロックの配置の一例(フロアプラン例)を示した図である。まず、入力スイッチISW、出力スイッチOSWは、中央に配置される。また、特に制限されないが、入力スイッチISW、出力スイッチOSWの周りに配線用フリップ・フロップRFF及び演算結果格納用フリップ・フロップCFFを配置し、その周りに演算器ALU及びコンフィグレーション・メモリCMを配置している。このように入力スイッチISW、出力スイッチOSWを中央に配置することにより、上下左右のセルと自分自身を接続する夫々の入力線101、出力線102の長さをほぼ等しくすることができ、データ信号のスキューを低減することが可能となり、更に
高速動作が可能となる。なお、配線用フリップ・フロップRFF、演算結果格納用フリップ・フロップCFF、演算器ALU及びコンフィグレーション・メモリCMの位置関係は、本実施例に限定されない。例えば、配線用フリップ・フロップRFF及び演算結果格納用フリップ・フロップCFFを外側に配置し、演算器ALU及びコンフィグレーション・メモリCMを内側に配置しても良い。
図4は、図2の基本セル100中の演算器ALUの構成を示すブロック図である。演算器ALUは加減算回路ADD_SUBと、乗算回路MULTと、否定論理積回路NANDと、排他的論理和回路XORと、マルチプレクサMUXと、定数出力回路CONSTの異なる種類の演算を行う複数の演算回路を含む。更に、出力選択スイッチAOSWと、演算機能設定線200と出力スイッチAOSW設定線201を含む。本実施例では以上に挙げた機能を含むがこれらの機能に限定されることはなく、機能を変更および削除したり、別の機能を持つ回路を追加したりしてもよい。また、定数出力回路CONSTが0を出力するように設定し、隣接セルからの入力と定数出力回路CONSTの値を加算するように設定することで隣接セルからの入力データをそのまま出力することも可能である。このような入力データをそのまま出力する動作は乗算器MULTやマルチプレクサMUXを用いても実現できる。
演算器ALUへの入力は加減算回路ADD_SUBと、乗算回路MULTと、否定論理積回路NANDと、排他的論理和回路XORと、マルチプレクサMUXの入力に接続される。コンフィグレーション・メモリCMからの入力は演算機能設定線200と、出力選択スイッチAOSW設定線201を含む。
加減算回路ADD_SUBと、乗算回路MULTと、否定論理積回路NANDと、排他的論理和回路XORと、マルチプレクサMUXと、定数出力回路CONSTは、コンフィグレーション・メモリCMから出力される演算機能設定線200の指定に従って各動作を行う。例えば加減算回路ADD_SUBでは加算と減算のどちらを実行するかの選択や、符号ありの演算か符合なしの演算かを指定することができる。
出力選択スイッチAOSWは加減算回路ADD_SUBと、乗算回路MULTと、否定論理積回路NANDと、排他的論理和回路XORと、マルチプレクサMUXと、定数出力回路CONSTの出力を受け、コンフィグレーション・メモリCMから出力される出力選択スイッチAOSW設定線201に指定された入力を出力する。図5は、出力選択スイッチAOSWの一例を示した図である。本実施例では6つの入力から1つの出力を選択する6対1のセレクタを2つ含んでいる。出力選択スイッチAOSWの構造は入力と出力の数にあわせて構成され、6対1のセレクタ2つに限定されることはない。
この構成により、演算器ALUはコンフィグレーション・メモリCMからの指定にしたがって、複数の演算結果データのうちから2つを選択して出力できる。
図6は、図2の基本セル100中の入力スイッチISWの構成を示すである。図6に示した入力スイッチISWの構造では、配線フリップ・フロップRFFからの入力301と、演算結果格納フリップ・フロップCFFからの入力302と、隣接セルからの入力101を含む12本の入力から、4本を選択して出力することができる。本実施例の入力スイッチISWは12本の入力と4本の出力を備えるため、図7に示すような12個の入力から1つを選択する12対1のセレクタSW12_i(iは0、1、2、3)を4つ含む。セレクタSW12_iは、コンフィグレーション・メモリCMから出力される入力スイッチ設定信号303により出力するデータを指定される。
図8、図9は、図2の基本セル中の入力スイッチISWの図6、図7とは別の構成例である。本構成ではスイッチの面積を減らすために図9に示されるような6対1のスイッチSW6_i(iは0、1、2、3)を4つ用いる構成としている。各セレクタSW6_iは選択信号303により出力するデータを指定される。図2の基本セル100では各隣接セルからの入力101、及び配線フリップ・フロップRFF、演算結果格納用フリップ・フロップCFF共に2本ずつとなっているため、各入力を2つのグループに分ける構成をとる。すなわち、配線フリップ・フロップRFF0からの入力を401、配線フリップ・フロップRFF1からの入力を404に接続し、演算結果格納フリップ・フロップCFF0からの入力を403、演算結果格納フリップ・フロップCFF1からの入力を406に接続し、隣接セルからの入力101の第1グループを402、隣接セルからの入力101の第2グループを405に接続する。セレクタSW6_iは、コンフィグレーション・メモリCMから出力される入力スイッチ設定信号303により出力するデータを指定される。入力数が本実施例よりさらに多い場合でも同様にして入力を複数グループ化することで入力スイッチISWのサイズを小型化できる。
図10は図2の基本セル100中の出力スイッチOSWの構成を示すブロック図である。出力スイッチOSWは、配線フリップ・フロップRFFからの入力501と、演算結果格納フリップ・フロップCFFからの入力502を任意の出力配線に接続させることができる。実施例の出力スイッチOSWは4入力、8出力となっているため、図11に示されるような4つの入力から1つを選択する4対1のセレクタSW4_i(iは0〜7)を8個含んで構成される。また、セレクタSW4_iは、コンフィグレーション・メモリCMから出力される出力スイッチOSW設定信号503により出力するデータを指定される。
図12は、図2の基本セル100中のコンフィグレーション・メモリCMの構成を示すブロック図である。コンフィグレーション・メモリCMは、コンフィグレーション・セレクタCSELと、コンフィグレーション記憶素子MEMDと、アドレス・デコーダADDECと、コンフィグレーション選択信号線CSと、セル選択信号線SXおよびSYと、アドレス信号線ADと、データ信号線DTと、コンフィグレーション出力線601を含んで構成される。コンフィグレーション情報選択信号線CS、コンフィグレーション情報変更用データ入力線DT、セル選択線SXおよびSY、コンフィグレーション情報変更用アドレス入力線ADは、それぞれコンフィグレーション・コントローラCCNTから入力される。
コンフィグレーション・セレクタCSELは、コンフィグレーション選択信号線CSの指定に従い、コンフィグレーション記憶素子MEMD0およびMEMD1のうち、選択された方の値を出力する。コンフィグレーション・セレクタCSELの出力は、入力スイッチISW設定信号、出力スイッチOSW設定信号、演算器ALU設定信号を含む。なお、図12のコンフィグレーション記憶素子MEMDは、2つ示されているが、2つに限定されない。
また、コンフィグレーション選択信号線CSで選択されているコンフィグレーション記憶素子MEMDは、書き換えることができないように構成するとよい。このような構成を採用すると、2つのコンフィグレーション記憶素子MEMDを備えているため、片方が選択されて処理を実行している間に、もう一方を書き換えることができる。コンフィグレーション記憶素子MEMDの書き換えは、コンフィグレーション選択信号線CSで選択されておらず、かつセル選択信号SXおよびSYで自セルが選択されている状況で、アドレス線ADより得られるMEMD内のアドレスをアドレス・デコーダADDECによりデコードし、そのアドレスに対応したコンフィグレーション記憶素子MEMDのデータをデータ線DTより入力されるデータに更新する。MEMD内の格納場所、即ちMEMD内の複数の記憶素子のうちデータを書き込む記憶素子をアドレスで指定することによりデータ線DTより広いビット幅のコンフィグレーション記憶素子MEMDを書き換えることが可能である。
本実施例では、コンフィグレーション記憶素子MEMDにはラッチを用い、データ信号線DT以外のMEMDへの入力をラッチ制御信号としてデータ信号線DTの値をラッチする。コンフィグレーション記憶素子MEMDには、フリップ・フロップやSRAMなどの揮発メモリ、または、フラッシュ・メモリやMRAMなどの不揮発メモリを用いることもできる。不揮発メモリを使用することにより電源を遮断した後、再度、起動した場合でもコンフィグレーション情報を保持することができ、電源立ち上げ時にコンフィグレーション情報の設定を行わずに済む。
以上のように基本セル100を構成することにより、従来設けられていた配線領域が不要になる。従って、セル・アレイを構成する基本セル100の数を変更する場合であっても、配線領域におけるスイッチの構成の変更をする必要がなく設計が容易になる。即ち、DA等を使用して設計を行う際には、予め基本セル100の構成を一つのモジュールとして登録しておき、必要な数の基本セル100をアレイ状に並べることで容易に設計することができる。
図13は、本発明による基本セル100をアレイ状に接続した場合の、セル間のデータ転送用配線の接続を示すブロック図である。図13では、基本セル100を4行4列の2次元アレイ状に配置し、基本セル100の上下左右の隣接セルを入力、出力各2本の隣接配線で接続している。したがって、離れた場所のセルにデータを転送する場合には間にあるセルを伝ってデータを送る。例えばセルC00からセルC02に送る場合はC01を経由してデータを送ることができる。
基本セル100内をデータが通過するには、基本セル100内の配線フリップ・フロップRFF、または演算結果格納フリップ・フロップCFFのどちらかを通過するため、転送経路内にある各セルのフリップ・フロップ間の配線長はコンフィグレーション情報によらず、常に1セル分、すなわち1クロック・サイクルとなる。その結果、コンフィグレーション情報の変更以外では、コンフィグレーション情報にセル・アレイの動作周波数が依存することがなく、常に1セル分の遅延のみを考慮した高い周波数で動作させることが可能である。また、離れた場所にあるセル間を接続する長距離配線がないため、セル・アレイを含むデバイスの動作周波数の向上が容易になる利点もある。
図14は、本発明による基本セル100をアレイ状に接続した場合のセル・アレイ全体のコンフィグレーション用の配線を示した図である。図14では、基本セル100を4行4列の2次元アレイ状に配置し、コンフィグレーション・コントローラCCNTからの配線として、コンフィグレーション選択信号CSと、データ信号DT0からDT3と、アドレス信号AD0からAD3と、セル・アレイの列選択信号SX0からSX3と、セル・アレイの行選択信号SY0からSY3が各セルに接続されている。
コンフィグレーション選択信号CSは、全てのセルに接続され、各セルのコンフィグレーション・メモリCMに格納されているコンフィグレーション情報を指定する。データ信号DTと、アドレス信号ADと、セル・アレイの列選択信号線SXはセル・アレイの列ごとに配置され、同じ列の各セルに接続される。またセル・アレイの行選択信号線SYはセル・アレイの行ごとに配置され、同じ行の各セルに接続される。
次に、コンフィグレーション・コントローラCCNTが各セルのコンフィグレーション・メモリCMを更新する場合の手順を説明する。第1に、コンフィグレーション・コントローラCCNTはセル・アレイの列選択信号SXと、セル・アレイの行選択信号SYでコンフィグレーション情報を変更するセルを選択する。第2に、アドレス信号ADでセル内のコンフィグレーション記憶素子MEMDのアドレスを指定する。第3に、データ信号DTよりデータを送信し、コンフィグレーション情報をコンフィグレーション記憶素子MEMDに書き込む。
コンフィグレーション・コントローラの機能は、コンフィグレーション情報を外部のメモリからロードする機能と、各セルのコンフィグレーション・メモリCMを書き換える機能と、コンフィグレーション選択信号CSを変更して実行するコンフィグレーション情報を変更する機能を含む。
本構成ではコンフィグレーション選択信号線CSは全セルに同じ線が繋がっているが、別の構成として、例えばコンフィグレーション選択信号CSを複数のエリア、例えば4セルずつのエリアごとに分割して発行し、セル・アレイのうち一部のセルのみコンフィグレーション情報を変更することもできる。
図15は、図2に示した基本セルを4行4列のアレイ状に並べ、これに対して信号処理などでよく用いられる高速フーリエ変換の一部を実行するためのコンフィグレーション情報を示した図である。図15を用いて4行4列のセル・アレイの動作を説明する。なお、図15の基本セル100内に書かれたブロック内の記号(+、−、×C0、×C1)は、セルの演算器ALUが実行する機能を表し、直線及び矢印はデータの流れを表す。また、セル内の直線上に示されている黒丸900は、配線フリップ・フロップRFFまたは演算結果格納フリップ・フロップCFFを表しており、データの転送に1クロック・サイクル消費することを示している。
図15に示されたコンフィグレーション情報は下式で表されるb0からb3の値を求めるためのものである。
b0=(a0+a1)+(a2+a3),
b1=(a0−a1)×C0+(a2−a3)×C1,
b2=(a0+a1)−(a2+a3),
b4=(a0−a1)×C0−(a2−a3)×C1,
これらの式において、a0からa3は入力データ、b0からb3は出力データ、C0およびC1はフーリエ変換のための定数で予め決まっている。
入力データa0からa3はセル・アレイの左側から同時に入力される。また、乗算に用いられるC0とC1の値はセルへのコンフィグレーション情報で与える。演算(a0+a1)と(a0−a1)と(a2+a3)と(a2−a3)の実行が左から2列目の各セルに割り当てられている。2列目のセルへの入力は同じデータが2箇所ずつ使われているため、1列目のセルを利用して、2列目のセルにデータを分配する。1行2列目のセルへの入力に着目すると、a1は1行1列目と2行1列目のセルを通過しているため、2クロック・サイクル要する。これに対しa0は1行1列目のみ通過するため、最短1クロック・サイクルで1行2列目のセルに到達しa1のデータと同期が取れない。そこで、配線フリップ・フロップ2つを利用して2クロック・サイクルで1行2列目のセルに到達に到達するようにしている。2列目の他のセルへの入力も同様にしてクロック・サイクルの同期を取る。
3列目のセルでは2行3列目と、4行3列目で乗算を実行する。このとき1行3列目と、3行3列目は出力結果の出力するタイミングを全て同じにするため、何も計算を行っていない。
4列目のセルではこれまでに計算した結果を入力とし加算または減算を行う。4列目のセルへの入力も2列目のセルへの入力と同様にクロック・サイクルの調整が必要となる。例えば、1行4列目のセルに注目してみると、3行3列目からの入力は3クロック・サイクルかかるため、1行3列目からの入力は隣接する1行2列目のセルの配線フリップ・フロップと自セルの配線フリップ・フロップを利用して同期を調整している。他のセルについても同様にしてクロック・サイクルの同期を行っている。最後に4列目のセルからはb0からb3までの4つのデータが同時に出力される。
以上、説明したようにコンフィグレーション情報を決めると、a0からa3を入力し、b0からb3が出力されるまでに要するクロック・サイクル、すなわちレイテンシは7サイクルとなる。
ここで、図16を用いて図15に示したコンフィグレーション情報を用いてパイプライン処理を実行する場合について説明する。図15のコンフィグレーション情報におけるパイプラインのステージは7ステージで構成される。ステージ1st1およびステージ2st2は1列目のセルでのデータ転送を行う。ステージ3st3は2列目のセルによる加算または減算を実行する。ステージ4st4では3列目のセルによる乗算を実行する。ステージ5st5およびst6ではステージ3st3の出力を4列目のセルへ転送する。ステージ7st7は加算または減算を実行して出力する。
ここで、時刻t0の入力a0と、a1と、a2と、a3をData0とし、同様に時刻t1の入力Data1、時刻t2の入力Data2、時刻t3の入力Data3とする。このとき時刻t0の入力Data0は0から7のステージを通過し時刻t7、すなわち7クロック・サイクル後に出力される。各ステージは並列に動作するためパイプラインとして動作させることが可能で、時刻t1の入力Data1の結果は時刻t8に出力され、以降の出力も同様にして、前の入力による出力の1クロック・サイクル後に出力される。すなわち、1クロック・サイクルあたり1回の出力が行われることになり、非常に高い性能を得ることが可能である。
また、図15のコンフィグレーション情報においては2列目のセルと、3列目の2行目及び4行目のセルと、4列目のセルは演算と配線とを両方行っており、演算器ALUを有効に利用できているといえる。さらに、セル内の配線フリップ・フロップRFFの数を調節することで、演算器ALUをより有効に活用するように構成することもできる。
図17は、図1に示した基本セルを4行4列のアレイ状に並べ、これに対して信号処理などでよく用いられるフィルタリング処理を実行するためのコンフィグレーション情報を示した図である。図17を用いて4行4列のセル・アレイの動作を説明する。なお、図15と同様に、図17の基本セル100内に書かれたブロック内の記号(×C0、×C1、×C2、×C3)は、セルの演算器ALUが実行する機能を表し、直線及び矢印はデータの流れを表す。また、セル内の直線上に示されている黒丸900は配線フリップ・フロップRFFまたは演算結果格納フリップ・フロップCFFを表している。
図17に示されたコンフィグレーション情報は下式で表される値を求めるためのものである。
f[t]=e[t]×C0+e[t−1]×C1+e[t−2]×C2+e[t−3]×C3
上記の式において、f[t]は時刻tにおけるフィルタの出力、e[t]は時刻tにおけるフィルタへの入力、C0からC3はフィルタ定数である。
本コンフィグレーション情報によれば、1行目のセルでデータの右側のセルへの転送と乗算を実行し、2列目、及び3列目のセルを用いて加算を行う。このコンフィグレーション情報により設定されたセル・アレイに対し1行1列目のセルより入力eを毎時刻入力することで、9クロック・サイクル以降は毎サイクル、フィルタ出力fを3行4列目のセルより得ることができる。
本発明の基本セルによるセル・アレイを含む回路では、図15の高速フーリエ変換のコンフィグレーション情報と、図17のフィルタリングのコンフィグレーション情報を切り換えることで、同じセル・アレイ回路で異なる処理を実行することができる。実行できる内容はここで示した2つの例に限定されず、コンフィグレーション情報を変更することでさまざまな処理を行うことが可能である。
次に、図18,19を用いて、図2に示した基本セル100の詳細な回路構成を示す。図18は、図2における基本セル内で、セレクタのデータ入力元やデータ出力先が明確となるようにした図である。
図2における入力スイッチISWは、左部入力セレクタLin-sel,上部入力セレクタUin-sel,右部入力セレクタRin-sel,下部入力セレクタDin-sel,帰還入力セレクタS-sel、配線フリップ・フロップ入力セレクタR0sel,R1sel、演算器入力セレクタAi0sel, Ai1selを統合したモジュールである。また、出力スイッチOSWは、左部出力セレクタLo1-sel,Lo2-sel、上部出力セレクタUo1-sel,Uo2-sel,右部出力セレクタRo1-sel,Ro2-sel,下部出力セレクタDo1-sel,Do2-selを統合したモジュールである。図2における入力線101は、図18における入力線701,704,706,734,735に対応し、図2における出力線102は、図18における出力線702,703,705,732,733に対応する。その他、同一の符号を付しているものは、同じものを示している。
ここで、図2における入力スイッチISWは、隣接セルから入力されたデータ又は内部で自己ループされたデータの何れのデータを入力とするかを選択するLin-sel, Uin-sel, Rin-sel, Din-sel, S-selを含む第1のセレクタ回路群と、第1のセレクタ回路により選択されたデータをRFF0, RFF1、又は ALUの何れに入力するかを選択するR0sel, R1sel, Ai0sel, Ai1selを含む第2のセレクタ回路群とに分けることができる。また、出力スイッチOSWを構成するLo1-sel, Lo2-sel, Uo1-sel, Uo2-sel, Ro1-sel, Ro2-sel, Do1-sel, Do2-selは、配線フリップ・フロップRFF0,RFF1と、演算結果用フリップ・フロップCFF0,CFF1に保持されているデータを隣接する基本セルの何れに出力するかを選択する。この選択は、セルの端子数(入力線数、出力線数)の削減のために行い、隣接セルの各方向ごとに行う。例えば、Ro1-selとRo2-selは、右方向の隣接セルへのデータを選択する回路であり、同様に、Lo1-sel, Lo2-sel, Uo1-sel, Uo2-sel, Do1-sel, Do2-selは、夫々、左、上、下方向へのデータを選択する。
別の表現をすれば、図18に示されるセレクタは、Lin-sel,R0selなどのデータ入力側と、Lo1-selなどのデータ出力側に分かれ、データ入力側の各セレクタは、隣接セルから入力されたデータ又は内部で自己ループされたデータを入力し、RFF0,RFF1、又は、ALUに入力するデータを選択する。また、入力側のセレクタ回路は、Lin-selなどの隣接セルの各転送元ごとにデータを選択する回路と、R01-selなどのセル内の記憶回路からデータを選択する回路に分かれる。更に、データ出力側は、配線フリップ・フロップRFF0,RFF1と、演算器用フリップ・フロップCFF0,CFF1から出力される4種類のデータから、2種類のデータを選択し、隣接する基本セルに出力する。
次に、図19を用いて、左部入力セレクタLin-sel、及び、配線フリップフロップセレクタR0sel、右部出力セレクタRo1-sel, Ro2-selを例にとり、データ入力側とデータ出力側のセレクタの構成と機能を詳細に述べる。
まず、データ入力側のセレクタ回路をLin-sel、及びR0selを例にして説明する。右部入力セレクタLin-selは、セレクタLin-RFF0-sel,Lin-RFF1-sel,Lin-A0-sel,Lin-A1-selの4つのセレクタからなり、各々、入力線Lin-R/ADとLin-R/A01から入力されたデータを配線フリップ・フロップRFF0,RFF1の夫々の入力、及び、演算器ALUの2つの入力オペランドの4つのうち何れに転送するかを選択する。
例えば、セレクタLin-RFF0-selは、740のセレクタ回路と741のOR回路から構成されており、セレクタ回路740は、コンフィグレーション・メモリCMからの制御信号742と743に従い、Lin-R/A0とLin-R/A01から配線フリップ・フロップRFF0へのデータを選択する。Lin-R/A0を選択するときには、制御信号742は1、制御信号743は0となる。Lin-R/A1を選択するときには、制御信号742は0、制御信号743は1となる。どちらの信号も選択されないときには、制御信号742,743共0となる。OR回路741は、RFF0へデータが転送されたことを示す制御信号である。Lin-R/A0又はLin-R/A1のいずれかの入力信号が選択され、配線フリップ・フリップRFF0へのデータを転送したときは、1となり、選択されないときには0となる。同様に、Lin-RFF1-selは、Lin-R/A0とLin-R/A01からRFF1へ入力するデータを選択する。また、Lin-Ai0-selは、Lin-R/A0とLin-R/A01からALUの第1の入力オペランドへ入力するデータを選択し、Lin-Ai1-selは、Lin-R/A0とLin-R/A01からALUの第2の入力オペランドへ入力するデータを選択する。
配線フリップフロップセレクタR0selは、隣接セルの各方向と自己ループにおけるセレクタであるLin-sel、Uin-sel、S-sel、Rin-sel、Din-selから、配線フリップ・フロップRFF0への転送データと制御信号(Lin-selでは744と745)を受けて、RFF0へ入力されるデータを選択する。制御信号713は、各方向からの制御信号のOR回路であり、RFF0へのデータ更新のイネーブル信号で、RFF0へのデータ転送があるときには1、ないときには0となる。なお、707, 709, 710, 711は、S-sel、Uin-sel、Din-sel、Rin-selからの出力信号に対応し、夫々、転送データと制御信号を含む。
次に、データ出力側のセレクタ回路をRo1-sel, Ro2-selを用いて説明する。Ro1-selとR02-selのセットで、”RFF0,RFF1の出力の一方及びCFF0,CFF1の出力の一方”、”RFF0,RFF1の出力の両方”、”CFF0,CFF1の出力の両方”のいずれかの組み合わせを選択する。なお、配線フリップフロップRFF0, RFF1は対照であり、一つだけ選択するときには、いずれを選んでも構わない。従って、RFF0を選択するものとすれば、出力線Ro-R/A0, Ro-R/A01から出力されるデータの組合せは、(RFF0,CFF0),(RFF0,CFF1),(RFF0,RFF1),(CFF0,CFF1)の4つとなる。言い換えれば、出力の組合せは、(RFF0,CFF0)、(RFF0,CFF1)、(RFF1,CFF0)、(RFF1,CFF1)、(RFF0,RFF1)、(CFF0,CFF1)の6つになるが、RFF0とRFF1の機能はデータ保持で同じであるため、(RFF1,CFF0)、(RFF1,CFF1)の組合せの場合は、RFF1に入力されるデータをRFF0に割り当てるようにすることができる。従って、(RFF1,CFF0)、(RFF1,CFF1)の組合せは、(RFF0,CFF0)、(RFF0,CFF1)の組合せに置換でき、削除することが可能となり、セレクタRo1-selを小さくすることが可能となる。具体的には、セレクタRo1-selは、これらの組合せの左の項である{RFF0,CFF0}の何れか一方のデータをRo-R/A0から出力データとして出力するように選択し、セレクタRo2-selは、右の項である{RFF1,CFF0,CFF1}の何れか一つのデータをRo-R/A01から出力データとして出力するようにを選択する。
最後に、入力線及び出力線について説明する。Lin-R/A0は、左の隣接セルのRo-R/A0と接続されることを示し、左の隣接セルに含まれる配線フリップ・フロップ又は演算結果用フリップ・フロップに保持されるデータが入力される。なお、Lin-R/A01は、同様に左の隣接セルのRo-R/A01と接続される。また、Ro-R/A0は、右の隣接セルのLin-R/A0に接続され、右の隣接セルに対してデータを出力し、Ro-R/A01は、右の隣接セルのLin-R/A01に接続され、RFF1、CFF0、CFF1に保持されるデータのいずれかを右の隣接セルに出力することになる。
図20、21は、図2における基本セル100の構成の他の実施例である。図20は、図2における基本セル100の他の実施例を示す概念図である。図2と相違する点は、出力スイッチOSWを削除し、入力スイッチISW側に、16本の入力の中から配線フリップ・フロップRFF0,RFF1又は演算器ALUに入力するデータを選択するように構成したことにある。即ち、基本セル一つを見てみると、出力側スイッチOSWが削除され、出力側スイッチが有していた機能が入力側スイッチISWに取り込まれたということができる。図21は、図20の基本セルにおける入力セレクタのデータ入力元やデータ出力先が明確となるようにした図である。上述したように本実施例では、出力側のセレクタが削除されており、上下左右の基本セルへ配線フリップ・フロップRFF0,RFF1、演算結果格納用フリップ・フロップCFF0,CFF1の各出力がそのまま出力されている。従って、端子数が増加している。
2. 第2の実施の形態
以下では、第2の実施の形態を説明する。第2の実施の形態は、主に、第1の実施の形態と比較して、セル通過時にフリップ・フロップ(保存回路)を介さず、セル内を通過するためのスルーパスを設けたことに特徴がある。
図22に、従来技術、第1の実施の形態、および第2の実施の形態の違いを示す概念図を示す。図22において、Op.は演算を、DTr.はデータ転送を示す。また、この図では、ALU1からALU5までの5つ演算回路が一列に並んでおり、ALU1で演算を行い、ALU5までデータを転送し、ALU5で転送されたデータを用いた演算を行う場合を想定する。従って、数字が大きくなるほどALU1に対して遠くに位置することを示している。ここで、従来技術では、第1の実施の形態で示すようなフリップ・フロップを各演算回路に有していないため、ALU1での演算及びALU5までのデータ転送を1サイクルで行う必要がある。それに対し、第1の実施の形態は、各セル内で少なくても1クロック・サイクル分フリップ・フロップに保持されるため、ALU1での演算後、ALU2から4までのデータ転送に3サイクル必要である。そこで、第2の実施の形態では、後に詳述するが、転送のみを行う場合と演算を行う場合では転送のみを行う場合の方が必要とする時間が短いことに着目し、基本セル内にフリップ・フロップを介さないスルーパスを設け、ALU2から4までのデータ転送を1サイクルで行うことを可能としている。このように上述の3つの技術を比較すると、従来技術では、演算及び転送を行うために必要な時間よりクロックの1サイクルを短くすることは出来ないのに対し、第1の実施の形態では、クロックの1サイクルを少なくとも演算に要する時間のみとすることが可能となる。従って、従来技術と比較して動作周波数を向上させることができる。更に、第2の実施の形態では、第1の実施の形態と同じ周波数でより遠くの演算器まで転送することが可能となる。従って、第2の実施の形態は、遠方までデータ転送を実現できるため、第1の実施の形態に比べ、レイテンシの削減、データ転送専用のセルの不要化、さらには、ダイナミックラッチの個数の削減による電力削減が可能となる。
次に、第2の実施の形態であるスルーパスを設けたセルの基本構成を図23に示す。
図23に示す基本セルでは、図19に対し、スルーパス用の入力端子Lin-Th0、Lin-TH1と、出力端子Ro-Th0、Ro-TH1及びスルーパスセレクタTH0sel, TH1selを設けた。なお、TH1selは図が煩雑になるため、ここでは省略している。ここで、Lin-Th0から入力されたデータが転送されるパスは、スルーパスを継続するためTH0selを経由するパスと、スルーパスを終了し、セレクタR0selを通ってRFF0にデータ保存されるパスがある。スルーパスを終了するパスとして、演算器ALUの入力へのパスを設けず、配線フリップ・フロップのみに設けることにより、データ転送と演算が1サイクル内に共存されることを避けている。これにより、動作周波数を落とすことを防止できる。
配線フリップ・フロップRFF0,RFF1、又は、演算結果用フリップ・フロップCFF0,CFF1からスルーパスへ移行する時も、セレクタTH0sel, TH1selを用いる。即ち、前段の隣接セルでフリップ・フロップ回路に保存されたデータ、または当該セルで保存され、自己ループされたデータは、上記のセレクタTH0sel,TH1selを通してスルーパスへ移行する。
セレクタTH0selは、Lin-TH0、及び各セレクタLin-sel, Uin-sel, Rin-sel, Din-sel, S-selから入力されたデータの何れか一つを選択し、出力端子Ro-TH0に転送する。このようにフリップ・フロップを通さないパスを設けることにより、第1の実施の形態と比較して、1クロック・サイクルで隣接しない基本セルまでデータ転送することが可能となる。なお、図では省略したが、セレクタTh1selも同様に機能する。
図23のセルに従い、図15の高速フーリエ変換の一部をマッピングした例が図24である。800の(1)は、自己ループを用いて一回だけセル内でループしたことを示す。また、(2)と付されている場所が、スルーパスを用いたパスである。図15に比べ、レイテンシ、セル数、および電力削減に有効なダイナミックなラッチ数のいずれも激減している。レインテンシは7サイクルから4サイクルに、転送用のセル削減により、セル数は16個から12個に、ダイナミックなラッチ回数は40回から20回に削減できている。最初に述べたように、上記の効果が、周波数を落とすことなく達成できる点が、従来技術に比べた優位点である。
しかし、スルーパスを導入すると、入出力端子数とセレクタが増加し、配線制約が厳しくなる。図25は、この制約を緩和するために、まず、同じデータ転送である配線フリップ・フロップとスルーパスは、各々一つずつのパスとした。これにより、図23に対してセレクタTH1sel, R1sel, Ro1-sel, Lo1-sel, Uo1-sel, Do1-sel及び配線フリップフロップRFF1を削除することが可能となる。さらに、第1の方向(ここでは上方向)へのデータの転送(演算結果の転送も含む)は、スルーパスのみとする。これにより、図23における上部出力セレクタUo1-sel,Uo2-selと、下部入力セレクタDin-selを削除することが可能となる。通常、論理は1方向(例えば上から下、または左から右)に流れ、逆方向へのデータ転送は、フィードバックループなど演算をスルーして複数のセルにまたがるパスが多いという経験則に従って、決めた制約である。即ち、図1に示すように基本セルをマトリクス状に配置し、各基本セルの夫々に所定の演算を割り当てた場合、データは1方向に流れ、反対方向に流れる場合は、所定の演算を割り当てられた基本セルを飛ばして転送されることが多いため、データの流れと逆方向は、スルーパスのみとし、その他のセレクタを削除することが可能である。また、図25に含まれるセレクタの夫々は、図23に示される各セレクタと比較して入力信号数が減少するため、図23に示されるセレクタより小さくなることは言うまでもない。従って、論理演算をマッピングする上での制約が増すが、回路規模を小さくすることができる。但、この制約も上述の経験則に従って定めた制約のため、例えば、高速フーリエ変換の一部をマッピングした場合は、図24に示したマッピング図と同じとなり、上述の制約とは関係なしに回路規模を小さくすることが可能となる。
図25から図30は、図23の論理規模と端子数の削減をさらに推し進めた実施例である。
図25は、第1の方向(図23における上方向)だけでなく、第2の方向(ここでは下方向)へのデータ転送もスルーパスのみとした例である。論理は、一般的には、上から下、左から右へ流れるが、左から右が大半のパスで、上から下へは、一連の計算の流れを一つのモジュールとするときに、モジュール間のデータの受け渡しに使われるという経験則に基づく。このように構成することにより、図24と比較してセルの対照性が良くなり、コンパイラ・マッパー・DAなどの開発環境の作りやすくなる。マッパーとは、各基本セルの機能(ALUの機能)やデータのパスを構成するためのコンフィグレーション情報を作成する一種のDAである。更に、図25では、図24から上方向の入力側セレクタUin-sel2と、下方向の出力側セレクタDo1-selとDo2-sel2が削減でき、配線制約が小さくなる。また、このように構成することで、マッピングする上での自由度が小さくなるが、上述の通り、基本的に左から右に論理が流れる高速フーリエ変換においては、図25と同じマッピングとなる。
図27は、図26と比較して、更に、第3の方向(ここでは、左方向)のデータ転送をスルーパスのみに限定したセルである。本特許は、図1のブロック図を前提としており、左右対照のデータの流れを利用することが望ましいが、使い方によっては、左から右方向のデータの流れを優先することもできる。このため、図25で上方向に制約を設けたのと同じ理由で、左方向へはスルーパスのみという制約を設けた。
このように左方向へはスルーパスのみとしても、特に、高速フーリエ変換のマッピングは変わらないため、フィルタリング処理である図17を元にマッピングを行った。その結果を図28に示す。セル数以外は、高速フーリエ変換と同じ効果が得られるが、左方向制約による影響はない。
図29は、左方向へのデータ転送を全て撤廃した例である。全て撤廃することにより、従って、データは左から右方向に流れるので、縦方向にみると複数の演算器が並列に動作することになる。従って、並列演算器間のスルーパスのみを導入した回路となる。このセルを用いると、フィルタリングのマッピング結果は、図30となる。左方向への転送ができないため、最も時間的に遅れる(図28では、最も右側の+)は、最も右側に配置する。

3.適用するシステム機器の構成
図31は、本発明による動的にコンフィグレーション情報が変更可能なセル・アレイ回路を含むIP1001を内蔵するチップ1100を用いてソフトウェア無線端末を構成する場合のブロック図である。
チップ1100はプロセッサCPUと、オンチップ・メモリOCMと、ダイレクト・メモリアクセス・コントローラDMACと、バス・コントローラBSCと、動的にコンフィグレーション情報が変更可能なIP1001と、チップ外部のインターフェースIFと、プロセッサ・バスI−BUSと、周辺バスP−BUSを含んで構成される。チップ外部にはフラッシュ・ロムFROMと、SDRAMと、外部バスO−BUSと、アンテナ1101と、アンテナ用インターフェースRFIFと、アナログ・ローパスフィルタLPFと、アナログ・デジタル変換器A/Dと、デジタル・アナログ変換機D/Aが含まれており、フラッシュ・ロムFROMとSDRAMは外部バスO−BUSに接続され、アナログ・デジタル変換器A/Dと、デジタル・アナログ変換機D/Aはチップ1100の外部インターフェースIFに接続されている。
本構成ではプロセッサCPUとIP1001のプログラムはフラッシュ・ロムFROMまたはSDRAMに格納される。IP1001はソフトウェア無線のベースバンドの処理を実行し、結果をオンチップ・メモリOCMに格納する。プロセッサCPUはオンチップ・メモリOCMに格納されているIP1001で変換されたデータを用いてアプリケーションを実行する。
アンテナ1101より得られた電波はアンテナ用インターフェースRFIFより入力され、アナログ・ローパスフィルタLPFで処理された後、アナログ・デジタル変換器A/Dでデジタルデータ化されて外部インターフェースIFよりチップ1100に取りこまれる。チップ外部のインターフェースIFに入力されたデータはダイナミック・メモリアクセス・コントローラDMACによりIP1001に転送される。
IP1001は予めプロセッサCPUにより指定されたコンフィグレーションと制御用プログラムをフラッシュ・ロムFROMまたはSDRAMよりロードしてベースバンド処理を実行する。ベースバンド処理が施されたデータはダイナミック・メモリアクセス・コントローラDMACによりオンチップ・メモリOCMに定期的に転送される。プロセッサは定期的にオンチップ・メモリOCMを参照してプリケーションを実行する。
本構成を取るソフトウェア無線機ではIP1001にロードするコンフィグレーション情報および制御プログラムを変更することで異なる無線方式に対応できるため、方式ごとの専用回路を搭載する必要がない。その結果、チップの面積を縮小することが可能である。また、コンフィグレーション情報を更新することで新たな無線方式に対応したり、処理方式を改善したりすることが可能である。さらに、無線通信を行わない場合にはプロセッサCPUで実行するアプリケーション用のコンフィグレーション情報を用いて、アクセラレータとして用いることも可能である。
また、図30に示されるようなシステムLSIを設計する場合、図1に示される構成をIPとして予め準備しておくことにより、設計が容易となる。
以上、説明した本発明の構成により、セル間の配線は全て隣接配線となり、配線長が一定となるためコンフィグレーション情報に周波数が依存しなくなる。その結果、コンフィグレーション情報を変更した場合においても周波数を変更する必要がなくなる。さらに、配線フリップ・フロップを含まないセル・アレイで隣接配線のみを用いるコンフィグレーション情報を利用する場合に比べて、演算器の利用効率が高くできるため、少ないセル数で所望の機能を実現できる。本発明の基本セルを用いた2次元セル・アレイでアプリケーションを実行する場合には、演算のみでなく通信もパイプライン化されるためレイテンシは遅くなるが、高いスループットを維持することができるため、データが大量に流れるアプリケーションを高速に処理することが可能となる。
本発明は、半導体集積回路、特に、動的に再構成可能なLSIに利用して有用なものである。
本発明の一つの実施形態である半導体集積回路のブロック図である。 本発明の基本セルの構成例を示すブロック図である。 図2における基本セルの各ブロックの配置例の一つを示す図である。 基本セルの構成要素である演算器ALUの構成例を示すブロック図である。 図4における出力選択スイッチの一つの構成例を示す図である。 基本セルの構成要素である入力スイッチの構成例を示す図である。 図6における入力スイッチの構成例を示す図である。 基本セルの構成要素である入力スイッチの第2の構成を示す図である。 図8における入力スイッチの構成例を示す図である。 基本セルの構成要素である出力スイッチの構成例を示す図である。 図10における出力スイッチの構成例を示す図である。 基本セルの構成要素であるコンフィグレーション・メモリの構成例を示す図である。 本発明の基本セルを2次元アレイ状に並べて用いた場合のセル間配線の例を示す図である。 本発明の基本セルを2次元アレイ状に並べて用いた場合のコンフィグレーション情報変更用配線の構成例を示す図である。 本発明の基本セルを4行4列の2次元アレイ状に並べ、高速フーリエ変換の処理の一部を実行する場合のコンフィグレーション情報を図示したものである。 図15に示したコンフィグレーション情報で回路を構成しパイプライン処理を実行した場合の動作を示す図である。 本発明による基本セルを4行4列の2次元アレイ状に並べ、フィルタリング処理を実行する場合のコンフィグレーション情報を図示したものである。 本発明による基本セルをセレクタの構成のセル内配置を中心に示した図である。 本発明による基本セル内のセレクタの論理構成図である。 図2における基本セルの他の実施例のブロック図である。 図20における基本セルのセル内配置を中心に示した図である。 本発明による第一の実施の形態、第二の実施の形態、従来技術を比較した概念図を示す図である。 本発明による第二の実施の形態で、スルーパスを導入した基本セルを示す図である。 図23の基本セルを用いて、高速フーリエ変換をマッピングした図である。 図23の基本セルからスルーパスの端子数を削減し、UP方向のデータ転送をスルーパスのみに限定した図である。 図25の基本セルからDown方向のデータ転送をスルーパスに限定した図である。 図26の基本セルから、Left方向のデータ転送をスルーパスに限定した図である。 図27の基本セルを用いて、フィルタリング処理をマッピングした図である。 図27の基本セルから、Left方向のデータ転送を全廃した図である。 図29の基本セルを用いて、フィルタリング処理をマッピングした図である。 図1の半導体集積回路を含むチップを使用したソフトウェア無線端末の構成図である。
符号の説明
100…基本セル、101…隣接セルからの入力線、102…隣接セルへの出力線、200…演算機能設定線、201…出力選択スイッチAOSW設定線、301…配線フリップ・フロップRFFからの入力、302…演算結果格納フリップ・フロップCFFからの入力、303…入力スイッチ設定信号、401…配線フリップ・フロップRFF0からの入力、404…配線フリップ・フロップRFF1からの入力、403…演算結果格納フリップ・フロップCFF0からの入力、406…演算結果格納フリップ・フロップCFF1からの入力、402…隣接セルからの入力101の第1グループ、405…隣接セルからの入力101の第2グループ、501…配線フリップ・フロップRFFからの入力、502…演算結果格納フリップ・フロップCFFからの入力、503…出力スイッチOSW設定信号、601…コンフィグレーション出力線、900…配線フリップ・フロップRFFまたは演算結果格納フリップ・フロップCFF、1001…基本セル100を利用したセル・アレイを含むIP、1100…IP1001を内蔵するチップ、1101…アンテナ。

Claims (22)

  1. 複数のデータ入力ノードに接続される入力スイッチと、
    複数のデータ出力ノードに接続される出力スイッチと、
    前記入力スイッチと前記出力スイッチとの間に演算器及び第1データ保持回路とを有する第1データパスと、
    前記入力スイッチと前記出力スイッチとの間に第2データ保持回路とを有する第2データパスとを具備し、
    前記第1データ保持回路は、前記演算器の演算結果データを格納し、前記第2データ保持回路は、前記複数のデータ入力ノードの何れかに入力されたデータを保持することを特徴とする半導体集積回路。
  2. 請求項1において、
    前記半導体集積回路は、前記入力スイッチにおける前記複数のデータ入力ノードと前記第1データパス及び前記第2データパスとの接続関係を設定するための第1入力スイッチ選択情報、前記出力スイッチにおける前記複数のデータ出力ノードと前記第1データパス及び前記第2データパスとの接続関係を設定するための第1出力スイッチ選択情報及び前記演算器の機能を設定するための第1演算機能情報を保持する第1メモリを更に具備することを特徴とする半導体集積回路。
  3. 請求項2において、
    前記演算器は、第1演算回路と、前記第1演算回路と異なる種類の演算を行う第2演算回路とを有し、前記第1演算機能情報に従って、前記第1演算回路を用いて演算を行うか前記第2演算回路を用いて演算を行うかが決定されることを特徴とする半導体集積回路。
  4. 請求項2において、
    前記半導体集積回路は、前記入力スイッチにおける前記複数のデータ入力ノードと前記第1データパス及び前記第2データパスとの接続関係を設定するための第2入力スイッチ選択情報、前記出力スイッチにおける前記複数のデータ出力ノードと前記第1データパス及び前記第2データパスとの接続関係を設定するための第2出力スイッチ選択情報及び前記演算器の機能を設定するための第2演算機能情報を保持するための第2メモリを更に具備し、前記第1メモリに保持される情報と前記第2メモリに保持される情報の何れか一方を選択して演算処理を行うことを特徴とする半導体集積回路。
  5. 請求項4において、
    前記半導体集積回路は、前記第1メモリに保持される情報に従って演算処理を行っている際に、前記第2メモリへの前記第2入力スイッチ選択情報、前記第2出力スイッチ選択情報及び前記第2演算機能情報の書込みが可能であり、前記第2メモリに保持される情報に従って演算処理を行っている際に、前記第1メモリへの前記第1入力スイッチ選択情報、前記第1出力スイッチ選択情報及び前記第1演算機能情報の書込みが可能であることを特徴とする半導体集積回路。
  6. 請求項2において、
    前記第1メモリは、複数ビットの記憶素子を有し、
    前記複数ビットの記憶素子の夫々は、アドレスにより指定可能とされることを特徴とする半導集積回路。
  7. 請求項1において、
    前記半導体集積回路は、複数の基本セルがアレイ状に配置されるセル・アレイを更に具備し、
    前記複数の基本セルの夫々は、前記入力スイッチ、前記出力スイッチ、前記第1データパス及び前記第2データパスを含むことを特徴とする半導体集積回路。
  8. 請求項7において、
    前記複数の基本セルの夫々は、前記入力スイッチにおける前記複数のデータ入力ノードと前記第1データパス及び前記第2データパスとの接続関係を設定するための第1入力スイッチ選択情報、前記出力スイッチにおける前記複数のデータ出力ノードと前記第1データパス及び前記第2データパスとの接続関係を設定するための第1出力スイッチ選択情報及び前記演算器の機能を設定するための第1演算機能情報を保持するためのメモリを更に含むことを特徴とする半導体集積回路。
  9. 請求項8において、
    前記半導体集積回路は、前記複数の基本セルの夫々に含まれる前記メモリに前記第1入力スイッチ選択情報、前記第1出力スイッチ選択情報及び前記第1演算機能情報の書込みを制御するためのコントローラを更に具備することを特徴とする半導体集積回路。
  10. 請求項9において、
    前記半導体集積回路は、処理すべきデータを格納するデータメモリを更に具備し、前記セル・アレイは、前記データメモリに格納されたデータが入力されることを更に具備することを特徴とする半導体集積回路。
  11. 第1基本セル、第2基本セル及び第3基本セルを含む複数の基本セルがアレイ状に配置されるセル・アレイを具備する半導体集積回路であって、
    前記複数の基本セルの夫々は、第1データパスと第2データパスとを有し、
    前記第2基本セルは、前記第1基本セルと前記第3基本セルの間に配置され、
    前記第1データパスは、演算回路を含み、前記演算回路は、入力されたデータに対して所定の演算を行った演算結果データを出力し、
    前記第2データパスは、入力されたデータを出力し、
    前記半導体集積回路は、前記第1基本セルにおいて入力されたデータを演算し、その演算結果データを用いて前記第3基本セルにおいて演算を行う場合に、前記第1基本セルが出力する前記演算結果データを前記第2基本セルを介して前記第3基本セルに伝達し、
    前記複数の基本セルの夫々に含まれる前記第1データパスと前記第2データパスは、並列して動作可能であることを特徴とする半導体集積回路。
  12. 請求項11において、
    前記半導体集積回路は、前記第1基本セルが出力する前記演算結果データを前記第2基本セルを介して前記第3基本セルに伝達する場合に、前記演算結果データは、前記第2基本セルにおいて少なくとも1クロック・サイクル保持されることを特徴とする半導体集積回路。
  13. 請求項12において、
    前記複数の基本セルの夫々は、入力されたデータを用いて演算を行う場合に、1クロック・サイクルで演算結果データを出力することを特徴とする半導体集積回路。
  14. 請求項11において、
    前記第1データパスは、前記演算結果データを1クロック・サイクル保持するための第1データ保持回路を更に有し、
    前記第2データパスは、入力されたデータを1クロック・サイクル保持するための第2データ保持回路を更に有することを特徴とする半導体集積回路。
  15. 請求項11において、
    前記第1データパスに含まれる演算回路は、異なる種類の演算を行うことが可能であることを特徴とする半導体集積回路。
  16. 複数の基本セルをアレイ状に配置したセル・アレイを具備する半導体集積回路であって、
    前記複数の基本セルの夫々は、入力されたデータを演算処理し、その演算結果データを出力する第1データパスと、入力されたデータを出力する第2データパスとを有し、
    前記複数の基本セルの夫々は、前記第1データパスを介して出力する場合であっても前記第2データパスを介して入力されたデータを出力する場合であっても、データが入力された後、1クロック・サイクル経過後に前記演算結果データ又は入力されたデータを出力することを特徴とする半導体集積回路装置。
  17. 請求項16において、
    前記第1データパスは、前記演算結果データを保持するための第1データ保持回路を更に有し、前記第2データパスは、入力されたデータを保持するための第2データ保持回路を有し、前記第1データ保持回路及び前記第2データ保持回路は、前記複数の基本セルのうち対応する基本セルにデータが入力された後、1クロック・サイクル経過後に保持したデータを出力することを特徴とする半導体集積回路。
  18. 請求項16において、
    前記第1データパスは、演算回路を有し、
    前記演算回路は、異なる種類の演算が可能な構成であることを特徴とする半導体集積回路。
  19. 請求項18において、
    前記演算回路は、第1演算回路と前記第1演算回路と異なる演算を行う第2演算回路を含み、前記第1演算回路と前記第2演算回路を切り換えることにより異なる種類の演算を行うことを特徴とする半導体集積回路。
  20. 請求項19において、
    前記複数の基本セルの夫々は、前記演算回路が行う演算の種類を設定するための情報を保持するメモリを更に有することを特徴とする半導体集積回路。
  21. 複数のデータ入力ノードに接続される入力スイッチと、
    複数のデータ出力ノードに接続される出力スイッチと、
    前記入力スイッチと前記出力スイッチとの間に演算器及び第1データ保持回路とを有する第1データパスと、
    前記入力スイッチと前記出力スイッチとの間に第2データ保持回路とを有する第2データパスと、
    前記入力スイッチと前記出力スイッチとの間に保持回路を持たない第3データパスとを具備し、
    前記第1データ保持回路は、前記演算器の演算結果データを格納し、前記第2データ保持回路は、前記複数のデータ入力ノードの何れかに入力されたデータを保持し、前記第3データパスは、前記複数のデータ入力ノードの何れかに入力されたデータを転送することを特徴とする半導体集積回路。
  22. 請求項21において、
    前記半導体集積回路は、複数の基本セルがアレイ状に配置されるセル・アレイを更に具備し、
    前記複数の基本セルの夫々は、前記入力スイッチ、前記出力スイッチ、前記第1データパス、前記第2データパス、及び前記第3データパスを含むことを特徴とする半導体集積回路。
JP2003408411A 2003-07-09 2003-12-08 半導体集積回路 Expired - Fee Related JP4423953B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2003408411A JP4423953B2 (ja) 2003-07-09 2003-12-08 半導体集積回路
EP04254007A EP1496618A3 (en) 2003-07-09 2004-07-02 Semiconductor integrated unit
KR1020040052885A KR20050007151A (ko) 2003-07-09 2004-07-08 반도체 집적 회로
CNB2004100635241A CN100352165C (zh) 2003-07-09 2004-07-09 半导体集成电路
US10/886,616 US7568084B2 (en) 2003-07-09 2004-07-09 Semiconductor integrated circuit including multiple basic cells formed in arrays
US12/505,128 US20090282213A1 (en) 2003-07-09 2009-07-17 Semiconductor integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003194013 2003-07-09
JP2003408411A JP4423953B2 (ja) 2003-07-09 2003-12-08 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2005044329A true JP2005044329A (ja) 2005-02-17
JP4423953B2 JP4423953B2 (ja) 2010-03-03

Family

ID=33455611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003408411A Expired - Fee Related JP4423953B2 (ja) 2003-07-09 2003-12-08 半導体集積回路

Country Status (5)

Country Link
US (2) US7568084B2 (ja)
EP (1) EP1496618A3 (ja)
JP (1) JP4423953B2 (ja)
KR (1) KR20050007151A (ja)
CN (1) CN100352165C (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006038473A1 (ja) * 2004-10-06 2006-04-13 Honda Motor Co., Ltd. プラントの制御装置
JP2007041781A (ja) * 2005-08-02 2007-02-15 Fujitsu Ltd リコンフィグ可能な集積回路装置
JP2007094847A (ja) * 2005-09-29 2007-04-12 Fujitsu Ltd リコンフィグ可能な集積回路装置
JP2007304886A (ja) * 2006-05-11 2007-11-22 Fuji Xerox Co Ltd データ処理装置及びそのプログラム
JP2008015772A (ja) * 2006-07-05 2008-01-24 Nec Electronics Corp 半導体集積回路
JP2011129141A (ja) * 2011-01-17 2011-06-30 Renesas Electronics Corp 半導体集積回路
US8099540B2 (en) 2006-03-10 2012-01-17 Fujitsu Semiconductor Limited Reconfigurable circuit
JP2013512492A (ja) * 2009-11-30 2013-04-11 コミサリアト ア レネルジー アトミクー エ オ エネルジーズ アルタナティヴズ 加算/減算ハードウェア演算器、プロセッサおよびこのような演算器を備える移動通信端末
JP2013512491A (ja) * 2009-11-30 2013-04-11 コミサリアト ア レネルジー アトミクー エ オ エネルジーズ アルタナティヴズ Fft/ifftを実行するバタフライ演算器を有するデジタルデータ処理プロセッサおよび移動通信端末
JP2016513363A (ja) * 2013-02-08 2016-05-12 ザ トラスティーズ オブ プリンストン ユニヴァーシティ ファイングレイン構造の動的に再構成可能なfpgaアーキテクチャ
JP2018530040A (ja) * 2015-07-31 2018-10-11 呉 国盛WU, Guosheng 自己適応型チップ及び配置方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7471116B2 (en) * 2005-12-08 2008-12-30 Alcatel-Lucent Usa Inc. Dynamic constant folding of a circuit
US7934075B2 (en) * 2006-02-16 2011-04-26 Vns Portfolio Llc Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
JP2009048532A (ja) * 2007-08-22 2009-03-05 Nec Electronics Corp マイクロプロセッサ
JP6653126B2 (ja) * 2015-04-28 2020-02-26 太陽誘電株式会社 再構成可能な半導体装置
US10963265B2 (en) 2017-04-21 2021-03-30 Micron Technology, Inc. Apparatus and method to switch configurable logic units

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62180456A (ja) 1986-02-03 1987-08-07 Nippon Telegr & Teleph Corp <Ntt> 並列計算機の信号バイパス方式
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
DE58908974D1 (de) * 1989-11-21 1995-03-16 Itt Ind Gmbh Deutsche Datengesteuerter Arrayprozessor.
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US6294928B1 (en) * 1996-04-05 2001-09-25 Altera Corporation Programmable logic device with highly routable interconnect
US6043676A (en) * 1994-11-04 2000-03-28 Altera Corporation Wide exclusive or and wide-input and for PLDS
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
EP0858168A1 (en) * 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor array
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
US6020756A (en) * 1998-03-03 2000-02-01 Xilinx, Inc. Multiplexer enhanced configurable logic block
JP3123977B2 (ja) * 1998-06-04 2001-01-15 日本電気株式会社 プログラマブル機能ブロック
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
JP3613396B2 (ja) * 2001-06-25 2005-01-26 日本電気株式会社 機能ブロック
US6883084B1 (en) * 2001-07-25 2005-04-19 University Of New Mexico Reconfigurable data path processor

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006038473A1 (ja) * 2004-10-06 2006-04-13 Honda Motor Co., Ltd. プラントの制御装置
JP2007041781A (ja) * 2005-08-02 2007-02-15 Fujitsu Ltd リコンフィグ可能な集積回路装置
JP4536618B2 (ja) * 2005-08-02 2010-09-01 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
JP2007094847A (ja) * 2005-09-29 2007-04-12 Fujitsu Ltd リコンフィグ可能な集積回路装置
US7734896B2 (en) 2005-09-29 2010-06-08 Fujitsu Microelectronics Limited Enhanced processor element structure in a reconfigurable integrated circuit device
JP4619252B2 (ja) * 2005-09-29 2011-01-26 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
US8099540B2 (en) 2006-03-10 2012-01-17 Fujitsu Semiconductor Limited Reconfigurable circuit
JP2007304886A (ja) * 2006-05-11 2007-11-22 Fuji Xerox Co Ltd データ処理装置及びそのプログラム
JP2008015772A (ja) * 2006-07-05 2008-01-24 Nec Electronics Corp 半導体集積回路
US8041925B2 (en) 2006-07-05 2011-10-18 Renesas Electronics Corporation Switch coupled function blocks with additional direct coupling and internal data passing from input to output to facilitate more switched inputs to second block
JP2013512491A (ja) * 2009-11-30 2013-04-11 コミサリアト ア レネルジー アトミクー エ オ エネルジーズ アルタナティヴズ Fft/ifftを実行するバタフライ演算器を有するデジタルデータ処理プロセッサおよび移動通信端末
JP2013512492A (ja) * 2009-11-30 2013-04-11 コミサリアト ア レネルジー アトミクー エ オ エネルジーズ アルタナティヴズ 加算/減算ハードウェア演算器、プロセッサおよびこのような演算器を備える移動通信端末
JP2011129141A (ja) * 2011-01-17 2011-06-30 Renesas Electronics Corp 半導体集積回路
JP2016513363A (ja) * 2013-02-08 2016-05-12 ザ トラスティーズ オブ プリンストン ユニヴァーシティ ファイングレイン構造の動的に再構成可能なfpgaアーキテクチャ
JP2018530040A (ja) * 2015-07-31 2018-10-11 呉 国盛WU, Guosheng 自己適応型チップ及び配置方法
US10693466B2 (en) 2015-07-31 2020-06-23 Guosheng Wu Self-adaptive chip and configuration method

Also Published As

Publication number Publication date
US20090282213A1 (en) 2009-11-12
EP1496618A3 (en) 2005-10-05
US7568084B2 (en) 2009-07-28
US20050015572A1 (en) 2005-01-20
CN1578147A (zh) 2005-02-09
KR20050007151A (ko) 2005-01-17
JP4423953B2 (ja) 2010-03-03
CN100352165C (zh) 2007-11-28
EP1496618A2 (en) 2005-01-12

Similar Documents

Publication Publication Date Title
JP4423953B2 (ja) 半導体集積回路
US9503095B2 (en) Space-multiplexing DRAM-based reconfigurable logic
JP4104538B2 (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
US8138788B2 (en) Reconfigurable device
US7479802B2 (en) Programmable logic integrated circuit for digital algorithmic functions
KR100952760B1 (ko) 집적 회로 장치
US7987339B2 (en) Processing system with interspersed processors and dynamic pathway creation
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
US20060259529A1 (en) Array of Data Processing Elements with Variable Precision Interconnect
US7352205B2 (en) Reconfigurable switching device parallel calculation of any particular algorithms
JP2006018453A (ja) 半導体装置
JP2022054412A (ja) マイクロセクタインフラストラクチャに基づくロジックファブリック
JP4468452B2 (ja) グローバルセルオートマトンを組み込むためのリコンフィギュアラブルなアーキテクチャをもつコンピュータ装置
JP2006302132A (ja) 信号処理装置及び再構成可能論理回路装置及び再構成可能順序回路
JP2004200311A (ja) 論理検証装置
JP4562679B2 (ja) データフローグラフ生成装置
US20060242213A1 (en) Variable Precision Processor
JP2005276854A (ja) 処理装置
JP4330472B2 (ja) 処理装置
JP4562678B2 (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置
Boutros et al. Field-Programmable Gate Array Architecture
JP4748944B2 (ja) 処理装置
JP4553614B2 (ja) 処理装置
JP2008219728A (ja) 再構成可能な演算処理回路
JP2006065785A (ja) 処理装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081120

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

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

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees