JP2004220377A - Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it - Google Patents

Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it Download PDF

Info

Publication number
JP2004220377A
JP2004220377A JP2003007652A JP2003007652A JP2004220377A JP 2004220377 A JP2004220377 A JP 2004220377A JP 2003007652 A JP2003007652 A JP 2003007652A JP 2003007652 A JP2003007652 A JP 2003007652A JP 2004220377 A JP2004220377 A JP 2004220377A
Authority
JP
Japan
Prior art keywords
reconfigurable circuit
circuit
multiplication
logic circuits
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003007652A
Other languages
Japanese (ja)
Inventor
Makoto Okada
誠 岡田
Tatsuo Hiramatsu
達夫 平松
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2003007652A priority Critical patent/JP2004220377A/en
Publication of JP2004220377A publication Critical patent/JP2004220377A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Advance Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce a circuit area of a reconfigurable circuit, and to smooth processing speed. <P>SOLUTION: This reconfigurable circuit comprises an ALU array, and is not mounted with a multiplier. A multiplication is replaced with a shift operation, and a data flow graph is produced. A shift number is fixed, and mounting of a large circuit such as a barrel shifter is avoided. The multiplication notated by the shift operation is expressed by the data flow graph, and a corresponding operation and its flow are loaded to the reconfigurable circuit. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明は、集積回路技術に関し、特にリコンフィギュラブル回路、およびそれを利用可能な集積回路装置とデータ変換装置に関する。
【0002】
【従来の技術】
最近、携帯電話、GPS、VICSなど、無線通信が広く普及し、無線機の種類も増えている。これらの無線機またはその機能をすべてハードウエアで実装すると、コストや実装面積が嵩む。そこで、ハードウエアとしては汎用的な能力を有する回路を搭載しておき、それにロードするソフトウエアを切り替えることで多様な機能を実現する「ソフトウエア無線機」という考え方がある。
【0003】
ソフトウエア無線機を実現する回路として、FPGA(Field Programmable Gate Array)やDSP(Digital Signal Processor)がある。特許文献1には、FPGAを動的に再構成することで、回路構成の再利用を図る方法が提案されている。動的変更が可能なタイプの回路を以下リコンフィギュラブル回路ともいう。
【0004】
【特許文献1】
特開平10−256383号公報 (全文、第1−4図)
【0005】
【発明が解決しようとする課題】
FPGAをベースとすれば、論理回路の真理値表を格納するためのルックアップテーブル(LUT)を使っていろいろな論理を実現できるが、一般には論理素子の単位が小さく、所期の機能の実現に多くのLUTと配線リソースが必要となる。その結果、通常のLSIと比べると、一般に実装面積が大きく、コスト高になる。また、回路を書き換えるためのプログラム時間がある程度長く、リアルタイムの機能切替に適さないことが多い。
【0006】
本発明はこうした現状に鑑みてなされたものであり、その目的は、コスト面、書換速度面などにおいて有利なリコンフィギュラブル回路とそれを用いた集積回路装置を提供することにある。
【0007】
【課題を解決するための手段】
本発明のある態様は、リコンフィギュラブル回路に関する。この回路は、それぞれが複数の算術論理機能を選択的に実行可能なALUその他の論理回路のアレイと、それら論理回路の間の接続関係を保持する接続部とを備え、論理回路のいずれかに、乗算器に替えてビットシフタを実装したものである。このため、乗算器に必要な回路部分を削減でき、また処理時間を削減できる。乗算自体はビットシフト演算で代替する。接続部は、論理回路の出力を他の論理回路の入力に接続するためのスイッチおよび接続用結線を有してもよく、その場合、設定により特定の接続関係にある結線を有効にすることができる。
【0008】
この構成において、ビットシフタによるシフト数を固定としてもよい。バレルシフタのように、シフト数を可変にすると、回路規模が大きくなるので、その事態を回避する趣旨である。
【0009】
さらに、論理回路のいずれかに、減算器を実装してもよい。その場合、乗算をビットシフトだけでなく、減算器も利用して実現でき、所望の機能の実現に要する回路規模を低減しうる。
【0010】
また、所望の乗算をミニマル表現したうえでこの乗算に相当する演算を、前述のビットシフタを用いることによりアレイ内に構成してもよい。ミニマル表現であるから、当然それを実現する回路規模、具体的には、必要な論理回路の数を減らすことができる。
【0011】
本発明の別の態様は、集積回路装置に関する。この装置は、それぞれが複数の算術論理機能を選択的に実行可能な論理回路のアレイと、それら論理回路の間の接続関係を保持する接続部とを備えたリコンフィギュラブル回路と、このリコンフィギュラブル回路における各論理回路の機能と論理回路間の入出力の接続関係を設定するための設定データを記憶する記憶部と、この記憶部から設定データを読み込み、リコンフィギュラブル回路にロードする設定部とを含み、リコンフィギュラブル回路において、論理回路のいずれかに、乗算器に替えてビットシフタを実装したものである。この構成により、前述のリコンフィギュラブル回路に関するメリットを集積回路装置全体で享有でき、当該装置のコストダウンや回路規模の削減が実現する。
【0012】
なお、前述の設定データは、実行すべき乗算のデータフローを表すグラフを乗算に替えてビットシフトを用いる表現に対応するデータであってもよい。この場合、乗算をビットシフトで実現できる。
【0013】
本発明のさらに別の態様は、リコンフィギュラブル回路に所期の処理を実行せしめる設定データを生成する装置であって、リコンフィギュラブル回路において実行すべき乗算を、乗算を含まず、かつビットシフトを含む形式に変換するコンパイル部を備える。このデータ変換装置は、リコンフィギュラブル回路が搭載される装置にオンボードで搭載されてもよいし、逆に、リコンフィギュラブル回路にロードすべき設定データをオフボードで生成するものであってもよい。なお、コンパイル部は、ミニマル表現となるよう設定データを生成してもよい。このデータ変換装置は、生成した設定データをリコンフィギュラブル回路へロードする設定部またはその制御部を備えてもよい。
【0014】
以上いずれの場合も、論理回路のアレイは、横方向に並べられた論理回路の列が縦方向に複数段組み合わされた配列であり、横方向の論理回路間の接続用結線はなく、各段の論理回路列の出力と直後の段の論理回路列の入力との間に接続用結線が設けられた構造であってもよい。
【0015】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。
【0016】
【発明の実施の形態】
実施の形態は、ALU(Arithmetic Logic Unit)アレイを基本素子とするリコンフィギュラブル回路に関する。このタイプの回路は、ひとつのALUがひとつの論理単位を構成し、この論理単位が複数の算術演算を選択的に実行できるため、回路構成が簡単であり、後述のデータフローグラフを直接的にマッピング可能なため、コンフィグレーションにかかる時間も節約できる。マッピングとは、リコンフィギュラブル回路で実行すべきプログラムの命令セットと、それを実現するためにリコンフィギュラブル回路内で必要な接続データセットをALUアレイにロードして設定することをいう。
【0017】
実施の形態に特徴的なのは、ALUに内蔵すべき算術演算回路の中から、あえて乗算器を外し、乗算をシフト演算で代用せしめたことにある。一般に、ALUにおいて乗算器の占める面積は非常に大きく、すべてのALUに乗算器を内蔵するとすれば、リコンフィギュラブル回路全体の面積が非常に大きくなり、コスト面と機能面で有利ではない。また、プログラムをロードしたとき、利用されない乗算器が多数存在するであろうから、回路利用効率面でも改善の余地がある。さらに、乗算は処理時間が長く、乗算器を経由するパスによって処理が律速され、回路の全体設計が難しくなる。処理負荷を平滑化する意味でも、シフト演算は有利である。ただし、シフト演算でも、バレルシフタのように可変長のビット対応であれば、やはり回路規模が大きくなりがちである。したがって、実施の形態では、シフト数を1または2に限る。
【0018】
乗算をシフトで代用できるためには、乗数または被乗数の少なくとも一方が定数でなければならない。そこで実施の形態では、そのような乗算を後述のコンパイル部で検出し、これを乗算器のないALUへ割り当てるものとする。変数どおしの乗算は乗算器のあるALUへ割り当てればよく、適宜、2種類のALUを組み合わせればよい。以下、乗算器のないALUとそれに対するプログラムのロードを中心に述べる。
【0019】
図1は、実施の形態に係る集積回路装置10および外部制御装置24の構成図である。外部制御装置24は、集積回路装置10の回路構成を設定するためのデータを作成して、集積回路装置10に供給するものであり、とくにコンパイル部20、またはそれを含む外部制御装置24全体は、設定データを作成するデータ変換装置として把握することができる。
【0020】
集積回路装置10は、リコンフィギュラブル回路12と、リコンフィギュラブル回路12を再構成するための設定データ17を格納する設定データ記憶部16と、リコンフィギュラブル回路12に設定データ17をロードする設定部14とを含む。外部制御装置24は、制御部18と、コンパイル部20と、プログラム記憶部22とを含む。
【0021】
外部制御装置24のプログラム記憶部22は、集積回路装置10が実行すべき各種のプログラム19を保持する。コンパイル部20はプログラム記憶部22に格納されたプログラム19をコンパイルして、データフローグラフ21に変換してプログラム記憶部22に格納する。データフローグラフ21は、後述のように、入力変数および定数の演算の流れをグラフ構造で示したものである。
【0022】
データフローグラフ21は、リコンフィギュラブル回路12の回路構成にマッピングするための設定データ17に変換され、制御部18を介して、集積回路装置10の設定部14に供給され、設定データ記憶部16に格納される。設定データ記憶部16には、処理すべき演算のデータフローグラフ21に対応して複数の設定データ17があらかじめ格納される。設定部14は、設定データ記憶部16から適宜設定データ17を読み出し、リコンフィギュラブル回路12にロードすることで、リコンフィギュラブル回路12を再構成する。再構成されたリコンフィギュラブル回路12は、ロードされた設定データ17にもとづいた演算を行う。
【0023】
図2は、リコンフィギュラブル回路12の構成図である。リコンフィギュラブル回路12は、設定データをロードするためのデータ入力部40と、複数のALUの列が複数段にわたって配列されたALUアレイ42を含み、アレイの各段に設けられた接続スイッチ44と接続結線30によって、前段のALU列の出力と後段のALU列の入力が設定により任意に接続可能となっている。接続スイッチ44によって接続結線30が選択されるが、以降、「接続結線30による設定」とも略記する。各ALUは、上述のごとく、少なくとも加算器、減算器、シフタを内蔵しているが、乗算器は有さない。シフタは1ビットまたは2ビットシフトに限定した構成とし、回路規模を縮小している。
【0024】
同図のように、横方向にはY個、縦方向にはX個のALUが配置されており、第1段のALU11、ALU12、・・・、ALU1Yには、入力変数や定数が入力され、設定により所定の演算がなされる。演算結果の出力は、第1段の接続結線30に設定された接続にしたがって、第2段のALU21、ALU22、・・・、ALU2Yに入力される。第1段の接続結線30は、第1段のALU配列の出力と第2段のALU配列の入力の間の任意の接続関係を実現できるように結線が構成されており、設定により特定の結線が有効となる。以下、第(X−1)段の接続結線30まで、同様の構成であり、最終段である第X段のALU列は演算の最終結果を出力する。なお、各ALUは、後述のmov演算を実行するために、入力をそのまま出力するパス(図示せず)を有する。
【0025】
データフローグラフ21をリコンフィギュラブル回路12にマッピングするための設定データ17には、各ALUの演算を選択する情報、ALU列間の接続結線を選択する情報、第1段のALU列に入力される変数と定数の値が含まれる。
【0026】
いま、以下の実行対象プログラムを考える。

Figure 2004220377
図3は上記プログラムに対応するデータフローグラフを示す。図中、定数、変数および演算子は丸で囲まれ、mulは乗算、addは加算を示す。これをそのままリコンフィギュラブル回路12へマッピングすると、図4の状態になる。しかし、本実施の形態では乗算器がないため、乗算をシフタで実現する。
【0027】
x=2×a、y=5×bは、それぞれビットシフトを用いると、
x=a<<1、y=b+(b<<2)
と表記できる。ここで、「<<」は左ビットシフトである。図5はこの表記に対応するデータフローグラフ、図6は図5をもとにマッピングされたリコンフィギュラブル回路12を示す。同図において、movは前述のNOP演算である。データフローグラフから実際に回路をマッピングする方法は以下のとおりである。
【0028】
1.データフローグラフの入力端に存在する変数および定数はデータ入力部40へアサインする。
2.データフローグラフで入力端から数えてi番目の→の先にある演算は、第i+1段目のALUにアサインする。
3.2.の例外として、ある演算に到達する複数のパスにおける→の数がi、jのごとく違う場合、多いほうに合わせる。いま、i<jのとき、当該演算を第j+1段目にアサインする。
4.3.のとき、段数を合わせるために、iの側のパスに、NOPに相当するmov演算を(j−i)個挿入する。
【0029】
このように、本実施の形態では、まず定数×変数の形の乗算をビットシフトと加算へ変換し、これをデータフローグラフへ変換してリコンフィギュラブル回路12へマッピングする。これにより、乗算器が存在しなくても処理時間の短いシフタで乗算が実行できる。以下、データフローグラフから回路をマッピングする方法は同様なので、以降、データフローグラフだけで説明をする。
【0030】
つぎに、以下のプログラムの実行を考える。
Figure 2004220377
8×a=a<<3であるから、これをデータフローグラフに表すと図7となる。しかし、3ビットシフトは本実施の形態ではひとつのALUでは実行できないため、図7のデータフローグラフを図8のごとく変換し、2ビット以下のシフト演算へ分解する。この配慮により、ALUに実装すべき命令数が減る意味でも回路規模の縮小効果がある。
【0031】
つづいて、以下のプログラムの実行を考える。
Figure 2004220377
10×a=(a<<1)+(a<<1<<2)であり、そのデータフローグラフは図9となる。ここで、太線で囲んだふたつの演算50は、入力aに対して同じ回数だけ左シフトを行うことを示しているので、図10のようにマージし、処理を簡素化する。
【0032】
つづいて、以下のプログラムの実行を考える。
Figure 2004220377
15×a=(a<<3)+(a<<2)+(a<<1)+aであり、そのデータフローグラフは図11となる。しかしここで、二進数表現をしたときに最もゼロが多くなる、いわゆるミニマル表現をすると、15は以下のようになる。
15=(1111)=(1000N1)
ただし、「N1」は−1を表す。したがって、上記プログラムをビットシフトで示すと、以下のとおりである。
15×a=(a<<4)−a
図12はこの式に対応するデータフローグラフであり、subは減算を示す。このように、ミニマル表現と必要に応じて減算器を利用することにより、処理をさらに簡素化することができ、利用すべきALUを減らすことができる。
【0033】
図13は、以上の処理を一般化し、定数×変数の乗算をシフタによるミニマル表現の処理へ変換する手順を示す。処理は4つの段階に大別され、図13は主に第1段階の処理を示す。
【0034】
[第1段階] 乗算→1ビットシフタ変換
乗算ノードを1ビットシフタ、加算および符号逆転ノードへ変換する。符号逆転ノードは一時的に使用するが、第4段階で減算ノードへ変換される。一般に整数はA=s・Σ k−1・2と表される。ただし、s=1または−1、a=0のたは1である。ここでは、初期値としてA≠0とする。以下の手順において、とくに指示がなければ直下のステップへ進む。図13では、StepをSと略記している。
【0035】
Step1 以下の変数に初期値を設定する。
c←0、cnt←0、n←0、flag←0、ノード配列:NL←空
cは処理中利用するキャリービット、cntはカウンタ、NLはノードに演算を割り当てるための配列、nはNLへのポインタ、flagは状態フラグである。
【0036】
Step2 A=0かつc=0ならば、処理を終了する。
Step3 a=cならば、Step11へ進む。
Step4 cnt≠0ならばStep6へ進む。
Step5 NL[n]に入力が変数のmovノードを作成する。また、n←n+1としてStep7へ進む。
【0037】
Step6 NL[n]〜NL[n+cnt−1]にcnt個の連続した1ビットシフタノードを作成する。NL[n]の入力は変数、それ以外のノードの入力は、前のシフタノードの出力とする。また、n←n+cntとする。
Step7 a=0かつS=−1、または、a≠0かつS=1ならば、NL[n]に符号逆転ノードを作成し、n←n+1とする。
Step8 flag=0ならばflag←1とし、Step10へ進む。
Step9 NL[n]に、NL[nold−1]の出力とNL[n−1]の出力を入力とする加算ノードを作成する。また、n←n+1とする。
【0038】
Step10 nold←nとする。
Step11 a+a+c≧2ならばc←1とし、そうでなければ、c←0とする。
Step12 a←a、a←a、・・・、aN−1←a、a←0とし、cnt←cnt+1とする。
Step13 Step2へ戻る。
【0039】
[第2段階] 同入力、同命令ノードのマージ
n個のノード配列NLに対して、入力が同じ値でかつ、命令が同じノードが2つ以上あれば、1つにまとめる。
【0040】
[第3段階] ビットシフタのマージ
連続する1ビットシフタを固定長nビットシフタ(n≧2)へまとめる。
【0041】
[第4段階] 減算ノードへのマージ
符号逆転ノードから加算ノードへ接続する処理を減算ノードへまとめる。加算式を式(1)のように表す。
【0042】
output = input1 + input2 (1)
i)加算ノードへの入力のうちの1つが符号逆転ノードの場合
input1 = −input1’
ここで、式(1)は
Figure 2004220377
式(2)より、減算ノードへ変換を行う。
ii)加算ノードへの入力が共に符号逆転ノードの場合
input1 = −input1’
input2 = −input2’
ここで、式(1)は
Figure 2004220377
式(3)より、加算ノードと符号逆転ノードへ変換を行う。
【0043】
以下に、上記の手順による乗算からシフタへの変換の実例を示す。ここでは、a×23を想定する。23は2進数表現で(10111)である。以下、煩瑣を避け、nの値に応じた配列NLの状態を示すに留める。
【0044】
[第1段階] 乗算→1ビットシフタ変換
n=0でスタートし、movノードが作成される(S5)。図14はNL[0]を示す。この後、nがインクリメントされる。
n←1の後、符号逆転(neg)ノードが作成される(S7)。図15はNL[1]が追加された状態を示す。この後、
n←2、flag←1、Nold←2、c←1、A←(1011)、cnt←1
となり、シフタノードが作成される(S6)。つぎのループで、
n←3、c←1、A←(101)、cnt←2
となり、同様にシフタノードが作成される(S6)。さらにつぎのループで、
n←4、c←1、A←(10)、cnt←3
となり、同様にシフタノードが作成される(S6)。シフタは1ビットシフタである。この時点で配列は図16の状態になる。
【0045】
n←5とされた後、符号逆転(neg)ノードが作成される(S7)。この時点で、配列は図17の状態になる。
n←6の後、addノードが作成される(S9)。配列は図18になる。
n←7の後、Nold←7、c←1、A←(1)、cnt←4となり、シフタノードが作成される(S6)。
n←8の後、c←1、A←(0)、cnt←5となり、シフタノードが作成される(S6)。以下、n=9,10,11でも同様にシフタノードが作成される(S6)。これで配列は図19の状態になる。
【0046】
n←12の後、addノードが作成される(S9)。これで配列は図20の状態になる。この後、n←13、Nold←13、c←0、A←(0)、cnt←6となり、処理を終える。
【0047】
[第2段階] 同入力、同命令ノードのマージ
図20において、NL[2]とNL[7]、すなわち、n=2と7の行が同入力で同命令である。この状態を検出し、マージすると、図21となる。さらに図21においてNL[3]とNL[8]が同入力で同命令であるのでマージすると図22が得られる。同様に繰り返しマージすると図23の状態が得られる。以上のマージ処理もコンパイル部20でなされる。
【0048】
[第3段階] ビットシフタのマージ
図23より、連続する1ビットシフタを検出し、2ビットシフタへ置き換える。但し、シフタ2は2ビットシフタを表す。この結果、図24の状態になる。
【0049】
[第4段階] 減算ノードへのマージ
図24において、NL[6]=NL[1]+NL[5] =−NL[0]−NL[4]=−(NL[0]+NL[4])であるから、add命令→neg命令へ変換すると図25の状態となる。ここでは、neg命令のあるn=1と5の行、すなわちNL[1]とNL[5]を消去するために、これらを入力とする行、すなわちNL[6]を検出し、つづいてNL[1]とNL[5]をそれぞれそれらの入力へさかのぼり、neg命令を消す。
【0050】
この後、まだneg命令がNL[7]にあるため、それを入力とするNL[12]を検出し、NL[7]を同様に入力へたどってNL[6]で表す。すなわち、NL[12]=NL[7]+NL[10]=−NL[6]+NL[10]=NL[10]−NL[6]であるから、neg命令は結果として減算(sub)命令に変換でき、図26の状態になる。以上で処理を完了し、結果として、a×23は図27に示すデータフローグラフとなる。あとは、このデータフローグラフを回路へマッピングすればよい。
【0051】
以上述べたリコンフィギュラブル回路12では、基本セルとして高性能の演算能力のあるALUを用いることができ、その際コンフィグレーションは1クロックの設定動作で可能であり、設定データ17のロードにより、瞬時に回路を再構成することができる。
【0052】
本実施の形態では、ALUは乗算器を持たないとしたが、当然、乗算器を備えたALUと混在させてリコンフィギュラブル回路12を構成してもよい。その場合、変数×変数タイプの乗算は乗算器で実行し、定数×変数タイプの乗算をシフト演算で実行すればよい。
【0053】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0054】
【発明の効果】
本発明によれば、性能面で改善されたリコンフィギュラブル回路とそれを搭載する集積回路装置、およびリコンフィギュラブル回路にデータを設定するためのデータ変換装置を提供できる。
【図面の簡単な説明】
【図1】実施の形態に係る集積回路装置および外部制御装置の構成図である。
【図2】図1のリコンフィギュラブル回路の構成図である。
【図3】あるプログラムの処理を表したデータフローグラフを示す図である。
【図4】図3のデータフローグラフに対応してマッピングされたリコンフィギュラブル回路の構成図である。
【図5】別のプログラムの処理を表したデータフローグラフを示す図である。
【図6】図5のデータフローグラフに対応してマッピングされたリコンフィギュラブル回路の構成図である。
【図7】さらに別のプログラムの処理を表したデータフローグラフを示す図である。
【図8】図7のデータフローグラフを一部書き換えたデータフローグラフを示す図である。
【図9】さらに別のプログラムの処理を表したデータフローグラフを示す図である。
【図10】図9のデータフローグラフの重複処理を統合して得られるデータフローグラフを示す図である。
【図11】さらに別のプログラムの処理を表したデータフローグラフを示す図である。
【図12】図11のデータフローグラフをミニマル表現に変更して得られるデータフローグラフを示す図である。
【図13】データフローグラフをミニマル表現に変換するための処理を示すフローチャートである。
【図14】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図15】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図16】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図17】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図18】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図19】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図20】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図21】図20において、同入力、同命令ノードをマージして得られる配列を示す図である。
【図22】図21において、同入力、同命令ノードをマージして得られる配列を示す図である。
【図23】図22において、同入力、同命令ノードをマージして得られる配列を示す図である。
【図24】図23において、ビットシフタのマージをマージして得られる配列を示す図である。
【図25】図24において、negノードを消去する途上の配列を示す図である。
【図26】図25において、negノードを消去した結果得られた配列を示す図である。
【図27】a×23をミニマル表現するデータフローグラフを示す図である。
【符号の説明】
10 集積回路装置、 12 リコンフィギュラブル回路、 14 設定部、16 設定データ記憶部、 17 設定データ、 18 制御部、 19 プログラム、 20 コンパイル部、 21 データフローグラフ、 22 プログラム記憶部、24 外部制御装置、30 接続結線、 40 データ入力部、42 ALUアレイ、 44 接続スイッチ。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an integrated circuit technology, and particularly to a reconfigurable circuit, and an integrated circuit device and a data conversion device that can use the same.
[0002]
[Prior art]
Recently, wireless communications such as mobile phones, GPS, and VICS have become widespread, and the types of wireless devices have been increasing. If all of these radios or their functions are implemented by hardware, the cost and the mounting area increase. Therefore, there is a concept of a "software radio" in which a circuit having general-purpose capability is mounted as hardware, and various functions are realized by switching software to be loaded on the circuit.
[0003]
As a circuit for realizing the software defined radio, there are an FPGA (Field Programmable Gate Array) and a DSP (Digital Signal Processor). Patent Document 1 proposes a method for reusing a circuit configuration by dynamically reconfiguring an FPGA. A type of circuit that can be dynamically changed is also referred to as a reconfigurable circuit.
[0004]
[Patent Document 1]
Japanese Patent Application Laid-Open No. H10-256383 (Full text, Fig. 1-4)
[0005]
[Problems to be solved by the invention]
Various logic can be realized by using a look-up table (LUT) for storing a truth table of a logic circuit based on an FPGA. However, in general, a unit of a logic element is small, and a desired function is realized. Requires many LUTs and wiring resources. As a result, as compared with a normal LSI, the mounting area is generally large and the cost is high. Also, the program time for rewriting the circuit is long to some extent, and is often not suitable for real-time function switching.
[0006]
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a reconfigurable circuit which is advantageous in terms of cost, rewriting speed, and the like, and an integrated circuit device using the same.
[0007]
[Means for Solving the Problems]
One embodiment of the present invention relates to a reconfigurable circuit. This circuit comprises an array of ALUs and other logic circuits, each of which can selectively execute a plurality of arithmetic logic functions, and a connection unit that holds a connection relationship between the logic circuits, and includes one of the logic circuits. , A bit shifter is mounted in place of the multiplier. For this reason, the circuit part required for the multiplier can be reduced, and the processing time can be reduced. The multiplication itself is replaced by a bit shift operation. The connection unit may have a switch and a connection for connecting an output of the logic circuit to an input of another logic circuit, and in that case, it is possible to enable a connection having a specific connection relationship by setting. it can.
[0008]
In this configuration, the number of shifts by the bit shifter may be fixed. If the number of shifts is made variable like a barrel shifter, the circuit scale becomes large.
[0009]
Further, a subtractor may be implemented in any of the logic circuits. In this case, the multiplication can be realized by using not only the bit shift but also the subtractor, and the circuit scale required for realizing the desired function can be reduced.
[0010]
Further, a desired multiplication may be expressed in a minimal manner, and an operation corresponding to the multiplication may be configured in the array by using the above-described bit shifter. Since it is a minimal expression, it is of course possible to reduce the circuit scale for realizing it, specifically, the number of necessary logic circuits.
[0011]
Another embodiment of the present invention relates to an integrated circuit device. The apparatus includes a reconfigurable circuit including an array of logic circuits each capable of selectively executing a plurality of arithmetic logic functions, and a connection unit for maintaining a connection relationship between the logic circuits, and a reconfigurable circuit. Storage unit for storing setting data for setting the function of each logic circuit in the reconfigurable circuit and the input / output connection relationship between the logic circuits, and a setting unit for reading the configuration data from the storage unit and loading the reconfigurable circuit In the reconfigurable circuit, a bit shifter is mounted instead of the multiplier in any of the logic circuits. With this configuration, the advantage of the above-described reconfigurable circuit can be enjoyed in the entire integrated circuit device, and the cost and circuit size of the device can be reduced.
[0012]
Note that the setting data described above may be data corresponding to an expression using a bit shift instead of a graph representing a data flow of a multiplication to be performed. In this case, the multiplication can be realized by a bit shift.
[0013]
Still another aspect of the present invention is an apparatus for generating setting data for causing a reconfigurable circuit to execute a desired process, wherein the multiplication to be performed in the reconfigurable circuit does not include the multiplication, and performs bit shifting. And a compiling unit for converting to a format including. This data conversion device may be mounted on-board in a device in which a reconfigurable circuit is mounted, or conversely, may generate off-board setting data to be loaded into the reconfigurable circuit. Good. Note that the compiling unit may generate the setting data so as to have a minimal expression. This data converter may include a setting unit or a control unit for loading the generated setting data into the reconfigurable circuit.
[0014]
In any of the above cases, the array of logic circuits is an array in which a plurality of rows of logic circuits arranged in the horizontal direction are combined in the vertical direction, and there is no connection for connection between the logic circuits in the horizontal direction. May be provided with a connection for connection between the output of the logic circuit row of (1) and the input of the logic circuit row of the next stage.
[0015]
In addition, any combination of the above-described components, and the expression of the present invention expressed as a method, an apparatus, a system, or a computer program are also effective as embodiments of the present invention.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
The embodiment relates to a reconfigurable circuit having an ALU (Arithmetic Logic Unit) array as a basic element. In this type of circuit, one ALU constitutes one logical unit, and the logical unit can selectively execute a plurality of arithmetic operations. Configuration time is saved because mapping is possible. Mapping refers to loading and setting an instruction set of a program to be executed by the reconfigurable circuit and a connection data set required in the reconfigurable circuit to implement the instruction set in the ALU array.
[0017]
A characteristic of the embodiment is that the multiplier is intentionally removed from the arithmetic operation circuit to be built in the ALU, and the multiplication is replaced by a shift operation. Generally, the area occupied by the multiplier in the ALU is very large, and if the multiplier is built in every ALU, the area of the entire reconfigurable circuit becomes very large, which is not advantageous in terms of cost and function. Also, when a program is loaded, there will be many multipliers that are not used, so there is room for improvement in terms of circuit utilization efficiency. Further, the multiplication takes a long processing time, the processing is rate-limited by a path passing through the multiplier, and the overall circuit design becomes difficult. The shift operation is also advantageous in terms of smoothing the processing load. However, even in the shift operation, if a variable length bit is used as in a barrel shifter, the circuit scale tends to be large. Therefore, in the embodiment, the number of shifts is limited to one or two.
[0018]
To be able to substitute multiplication with shift, at least one of the multiplier or the multiplicand must be a constant. Therefore, in the embodiment, it is assumed that such a multiplication is detected by a compiling unit described later and is assigned to an ALU without a multiplier. Multiplication by variables may be assigned to an ALU having a multiplier, and two types of ALUs may be appropriately combined. Hereinafter, an ALU without a multiplier and a program load for the ALU will be mainly described.
[0019]
FIG. 1 is a configuration diagram of an integrated circuit device 10 and an external control device 24 according to the embodiment. The external control device 24 creates data for setting the circuit configuration of the integrated circuit device 10 and supplies the data to the integrated circuit device 10. In particular, the compiling unit 20 or the entire external control device 24 including the compiling unit 20 , Can be understood as a data conversion device that creates setting data.
[0020]
The integrated circuit device 10 includes a reconfigurable circuit 12, a setting data storage unit 16 for storing setting data 17 for reconfiguring the reconfigurable circuit 12, and a setting for loading the setting data 17 into the reconfigurable circuit 12. Unit 14. The external control device 24 includes a control unit 18, a compiling unit 20, and a program storage unit 22.
[0021]
The program storage unit 22 of the external control device 24 holds various programs 19 to be executed by the integrated circuit device 10. The compiling unit 20 compiles the program 19 stored in the program storage unit 22, converts it into a data flow graph 21, and stores it in the program storage unit 22. As will be described later, the data flow graph 21 shows the flow of calculation of input variables and constants in a graph structure.
[0022]
The data flow graph 21 is converted into setting data 17 for mapping to the circuit configuration of the reconfigurable circuit 12, supplied to the setting unit 14 of the integrated circuit device 10 via the control unit 18, and stored in the setting data storage unit 16. Is stored in A plurality of setting data 17 are stored in the setting data storage unit 16 in advance corresponding to the data flow graph 21 of the operation to be processed. The setting section 14 reconfigures the reconfigurable circuit 12 by reading the setting data 17 from the setting data storage section 16 as appropriate and loading the setting data 17 into the reconfigurable circuit 12. The reconfigured reconfigurable circuit 12 performs an operation based on the loaded setting data 17.
[0023]
FIG. 2 is a configuration diagram of the reconfigurable circuit 12. The reconfigurable circuit 12 includes a data input unit 40 for loading setting data, an ALU array 42 in which a plurality of ALU columns are arranged in a plurality of stages, and a connection switch 44 provided in each stage of the array. By the connection connection 30, the output of the preceding ALU row and the input of the following ALU row can be arbitrarily connected by setting. Although the connection connection 30 is selected by the connection switch 44, hereinafter, it is abbreviated as "setting by the connection connection 30". As described above, each ALU includes at least an adder, a subtractor, and a shifter, but does not include a multiplier. The shifter has a configuration limited to one-bit or two-bit shift, thereby reducing the circuit scale.
[0024]
As shown in the figure, Y ALUs are arranged in the horizontal direction and X ALUs are arranged in the vertical direction, and input variables and constants are input to the first stage ALU11, ALU12, ..., ALU1Y. , A predetermined calculation is performed by the setting. The output of the calculation result is input to the second-stage ALU 21, ALU22,..., ALU2Y according to the connection set in the first-stage connection connection 30. The first-stage connection connection 30 is configured such that an arbitrary connection relationship between an output of the first-stage ALU array and an input of the second-stage ALU array can be realized, and a specific connection is determined by setting. Becomes effective. Hereinafter, the configuration is the same up to the connection connection 30 of the (X-1) th stage, and the ALU column of the Xth stage which is the final stage outputs the final result of the operation. Each ALU has a path (not shown) for directly outputting an input in order to execute a mov operation described later.
[0025]
The setting data 17 for mapping the data flow graph 21 to the reconfigurable circuit 12 includes information for selecting the operation of each ALU, information for selecting the connection connection between the ALU columns, and input to the first-stage ALU column. Variables and constant values.
[0026]
Now, consider the following program to be executed.
Figure 2004220377
FIG. 3 shows a data flow graph corresponding to the above program. In the figure, constants, variables and operators are circled, mul indicates multiplication, and add indicates addition. If this is directly mapped to the reconfigurable circuit 12, the state shown in FIG. 4 is obtained. However, in the present embodiment, since there is no multiplier, multiplication is realized by a shifter.
[0027]
x = 2 × a and y = 5 × b are obtained by using a bit shift.
x = a << 1, y = b + (b << 2)
Can be written as Here, “<<” is a left bit shift. FIG. 5 shows a data flow graph corresponding to this notation, and FIG. 6 shows a reconfigurable circuit 12 mapped based on FIG. In the figure, mov is the NOP operation described above. The method of actually mapping the circuit from the data flow graph is as follows.
[0028]
1. Variables and constants existing at the input end of the data flow graph are assigned to the data input unit 40.
2. In the data flow graph, the operation preceding the i-th → from the input end is assigned to the (i + 1) -th stage ALU.
3.2. As an exception to the above, when the numbers of → in a plurality of paths reaching a certain operation are different, such as i and j, the number is set to the larger one. Now, when i <j, the operation is assigned to the (j + 1) th stage.
4.3. In order to match the number of stages, (ji) mov operations equivalent to NOP are inserted into the path on the side of i.
[0029]
As described above, in the present embodiment, multiplication in the form of a constant × variable is first converted into a bit shift and an addition, which is converted into a data flow graph and mapped to the reconfigurable circuit 12. As a result, multiplication can be performed by a shifter with a short processing time even if no multiplier is present. Hereinafter, since the method of mapping a circuit from the data flow graph is the same, the following description will be made only with the data flow graph.
[0030]
Next, consider the execution of the following program.
Figure 2004220377
Since 8 × a = a << 3, FIG. 7 shows this in a data flow graph. However, since the 3-bit shift cannot be executed by one ALU in the present embodiment, the data flow graph of FIG. 7 is converted as shown in FIG. 8 and decomposed into a shift operation of 2 bits or less. This consideration has the effect of reducing the circuit scale in the sense that the number of instructions to be implemented in the ALU is reduced.
[0031]
Next, consider the execution of the following program.
Figure 2004220377
10 × a = (a << 1) + (a << 1 << 2), and the data flow graph is as shown in FIG. Here, the two operations 50 surrounded by a bold line indicate that the left shift is performed the same number of times with respect to the input “a”. Therefore, the merge is performed as shown in FIG. 10 to simplify the processing.
[0032]
Next, consider the execution of the following program.
Figure 2004220377
15 × a = (a << 3) + (a << 2) + (a << 1) + a, and the data flow graph is shown in FIG. However, here, when a so-called minimal expression in which the number of zeros is the largest when expressed in a binary number, 15 is as follows.
15 = (1111)2= (1000N1)2
However, "N1" represents -1. Therefore, the above program is represented by the following bit shift.
15 × a = (a << 4) −a
FIG. 12 is a data flow graph corresponding to this equation, where sub indicates subtraction. As described above, by using the minimal expression and the subtractor as necessary, the processing can be further simplified, and the ALU to be used can be reduced.
[0033]
FIG. 13 shows a procedure for generalizing the above processing and converting multiplication of a constant × variable into processing of a minimal expression by a shifter. The processing is roughly divided into four stages, and FIG. 13 mainly shows the first stage processing.
[0034]
[First stage] Multiplication → 1-bit shifter conversion
Convert the multiplication node to a 1-bit shifter, addition and sign reversal node. The sign inversion node is used temporarily, but is converted to a subtraction node in the fourth stage. In general, the integer is A = sΣN k-1ak・ 2kIt is expressed as Where s = 1 or -1, akThe value of = 0 is 1. Here, it is assumed that A ≠ 0 as an initial value. In the following procedure, the process proceeds to the step immediately below unless otherwise specified. In FIG. 13, Step is abbreviated as S.
[0035]
Set initial values to the variables below Step1.
c ← 0, cnt ← 0, n ← 0, flag ← 0, node array: NL ← empty
c is a carry bit used during processing, cnt is a counter, NL is an array for assigning operations to nodes, n is a pointer to NL, and flag is a status flag.
[0036]
Step 2 If A = 0 and c = 0, the process ends.
Step3 a0If = c, the process proceeds to Step 11.
Step4 If cnt ≠ 0, proceed to Step6.
Step 5 Create a mov node whose input is a variable in NL [n]. Further, the process proceeds to Step 7 with n ← n + 1.
[0037]
Step 6 cnt consecutive 1-bit shifter nodes are created in NL [n] to NL [n + cnt-1]. The input of NL [n] is a variable, and the input of the other nodes is the output of the previous shifter node. It is assumed that n ← n + cnt.
Step7 a1= 0 and S = -1 or a1If ≠ 0 and S = 1, a sign inversion node is created in NL [n], and n ← n + 1.
Step 8 If flag = 0, set flag ← 1 and proceed to Step 10.
In Step 9 NL [n], NL [nold-1] and an output of NL [n-1] as inputs. It is assumed that n ← n + 1.
[0038]
Step10 nold← n.
Step11 a0+ A1If + c ≧ 2, c ← 1; otherwise, c ← 0.
Step12 a0← a1, A1← a2, ..., aN-1← aN, AN← 0 and cnt ← cnt + 1.
Return to Step13 Step2.
[0039]
[2nd stage] Merge of same input and same instruction node
If two or more nodes have the same input value and the same instruction for n node arrays NL, they are combined into one.
[0040]
[Third stage] Merging bit shifters
Continuous 1-bit shifters are combined into fixed-length n-bit shifters (n ≧ 2).
[0041]
[Phase 4] Merge into subtraction node
The process of connecting the sign inversion node to the addition node is summarized in the subtraction node. The addition equation is represented as in equation (1).
[0042]
output = input1 + input2 (1)
i) When one of the inputs to the addition node is a sign reversal node
input1 = -input1 '
Here, equation (1) is
Figure 2004220377
According to equation (2), conversion to a subtraction node is performed.
ii) When both inputs to the addition node are sign inversion nodes
input1 = -input1 '
input2 = -input2 '
Here, equation (1) is
Figure 2004220377
From Expression (3), conversion is performed to an addition node and a sign inversion node.
[0043]
The following is an example of the conversion from multiplication to shifter by the above procedure. Here, a × 23 is assumed. 23 is a binary number (10111)2It is. Hereinafter, the state of the array NL according to the value of n will be described only for simplicity.
[0044]
[First stage] Multiplication → 1-bit shifter conversion
Starting with n = 0, a mov node is created (S5). FIG. 14 shows NL [0]. Thereafter, n is incremented.
After n ← 1, a sign reversal (neg) node is created (S7). FIG. 15 shows a state in which NL [1] has been added. After this,
n ← 2, flag ← 1, Nold← 2, c ← 1, A ← (1011)2, Cnt ← 1
And a shifter node is created (S6). In the next loop,
n ← 3, c ← 1, A ← (101)2, Cnt ← 2
And a shifter node is similarly created (S6). In the next loop,
n ← 4, c ← 1, A ← (10)2, Cnt ← 3
And a shifter node is similarly created (S6). The shifter is a one-bit shifter. At this point, the array is in the state of FIG.
[0045]
After n ← 5, a sign reversal (neg) node is created (S7). At this point, the array is in the state of FIG.
After n ← 6, an add node is created (S9). The arrangement is shown in FIG.
After n ← 7, Nold← 7, c ← 1, A ← (1)2, Cnt ← 4, and a shifter node is created (S6).
After n ← 8, c ← 1, A ← (0)2, Cnt ← 5, and a shifter node is created (S6). Hereinafter, a shifter node is similarly created for n = 9, 10, and 11 (S6). The arrangement is now in the state of FIG.
[0046]
After n ← 12, an add node is created (S9). The arrangement is now in the state of FIG. After this, n ← 13, Nold← 13, c ← 0, A ← (0)2, Cnt ← 6, and the process ends.
[0047]
[2nd stage] Merge of same input and same instruction node
In FIG. 20, NL [2] and NL [7], that is, the rows of n = 2 and 7 have the same input and the same instruction. FIG. 21 is obtained by detecting and merging this state. Further, in FIG. 21, since NL [3] and NL [8] are the same input and the same instruction, merging results in FIG. Similarly, by repeatedly merging, the state shown in FIG. 23 is obtained. The above merging process is also performed by the compiling unit 20.
[0048]
[Third stage] Merging bit shifters
From FIG. 23, continuous 1-bit shifters are detected and replaced with 2-bit shifters. Here, the shifter 2 represents a 2-bit shifter. As a result, the state shown in FIG. 24 is obtained.
[0049]
[Phase 4] Merge into subtraction node
In FIG. 24, since NL [6] = NL [1] + NL [5] =-NL [0] -NL [4] =-(NL [0] + NL [4]), the order is changed from the add instruction to the neg instruction. After conversion, the state shown in FIG. 25 is obtained. Here, in order to erase the rows of n = 1 and 5 where the neg instruction is present, ie, NL [1] and NL [5], the rows that receive them, ie, NL [6] are detected, and then NL is detected. [1] and NL [5] are traced back to their inputs, and the neg instruction is erased.
[0050]
Thereafter, since the neg instruction is still in NL [7], NL [12] that receives the neg instruction is detected, and NL [7] is similarly traced to the input and represented by NL [6]. That is, since NL [12] = NL [7] + NL [10] =-NL [6] + NL [10] = NL [10] -NL [6], the neg instruction becomes a subtraction (sub) instruction as a result. Conversion is possible, and the state shown in FIG. 26 is obtained. The processing is completed as described above. As a result, a × 23 becomes a data flow graph shown in FIG. Then, the data flow graph may be mapped to the circuit.
[0051]
In the reconfigurable circuit 12 described above, an ALU having a high-performance computing capability can be used as a basic cell. At that time, the configuration can be performed by one clock setting operation. The circuit can be reconfigured.
[0052]
In the present embodiment, the ALU does not have a multiplier, but the reconfigurable circuit 12 may be configured by mixing with an ALU having a multiplier. In this case, the variable × variable type multiplication may be performed by a multiplier, and the constant × variable type multiplication may be performed by a shift operation.
[0053]
The present invention has been described based on the embodiments. It should be understood by those skilled in the art that the embodiments are exemplifications, and that various modifications can be made to the combination of each component and each processing process, and that such modifications are also within the scope of the present invention. .
[0054]
【The invention's effect】
According to the present invention, it is possible to provide a reconfigurable circuit with improved performance, an integrated circuit device equipped with the reconfigurable circuit, and a data conversion device for setting data in the reconfigurable circuit.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an integrated circuit device and an external control device according to an embodiment.
FIG. 2 is a configuration diagram of the reconfigurable circuit of FIG. 1;
FIG. 3 is a diagram showing a data flow graph representing a process of a certain program.
FIG. 4 is a configuration diagram of a reconfigurable circuit mapped according to the data flow graph of FIG. 3;
FIG. 5 is a diagram showing a data flow graph representing the processing of another program.
6 is a configuration diagram of a reconfigurable circuit mapped according to the data flow graph of FIG. 5;
FIG. 7 is a diagram showing a data flow graph representing the processing of yet another program.
FIG. 8 is a diagram showing a data flow graph obtained by partially rewriting the data flow graph of FIG. 7;
FIG. 9 is a diagram showing a data flow graph representing the processing of yet another program.
FIG. 10 is a diagram showing a data flow graph obtained by integrating overlapping processes of the data flow graph of FIG. 9;
FIG. 11 is a diagram showing a data flow graph representing the processing of yet another program.
12 is a diagram showing a data flow graph obtained by changing the data flow graph of FIG. 11 to a minimal expression.
FIG. 13 is a flowchart showing a process for converting a data flow graph into a minimal expression.
FIG. 14 is a diagram showing a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 15 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 16 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
17 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 18 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
19 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 20 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 21 is a diagram showing an array obtained by merging the same input and the same instruction node in FIG. 20;
FIG. 22 is a diagram showing an array obtained by merging the same input and the same instruction node in FIG. 21;
FIG. 23 is a diagram showing an array obtained by merging the same input and the same instruction node in FIG. 22;
FIG. 24 is a diagram showing an array obtained by merging bit shifters in FIG. 23;
FIG. 25 is a diagram showing an array in the process of erasing a neg node in FIG. 24;
FIG. 26 is a diagram showing an array obtained as a result of deleting a neg node in FIG.
FIG. 27 is a diagram showing a data flow graph that minimally expresses a × 23.
[Explanation of symbols]
Reference Signs List 10 integrated circuit device, 12 reconfigurable circuit, 14 setting unit, 16 setting data storage unit, 17 setting data, 18 control unit, 19 program, 20 compiling unit, 21 data flow graph, 22 program storage unit, 24 external control device , 30 connection wiring, 40 data input section, 42 ALU array, 44 connection switch.

Claims (7)

それぞれが複数の算術論理機能を選択的に実行可能な論理回路のアレイと、
前記論理回路の間の接続関係を保持する接続部と、
を備え、前記論理回路のいずれかに、乗算器に替えてビットシフタを実装したことを特徴とするリコンフィギュラブル回路。
An array of logic circuits, each of which can selectively perform a plurality of arithmetic logic functions;
A connection unit that holds a connection relationship between the logic circuits,
Wherein a bit shifter is mounted in place of the multiplier in any of the logic circuits.
前記ビットシフタによるシフト数を固定として構成したことを特徴とする請求項1に記載のリコンフィギュラブル回路。2. The reconfigurable circuit according to claim 1, wherein the number of shifts by said bit shifter is fixed. 前記論理回路のいずれかに、減算器を実装したことを特徴とする請求項1または2に記載のリコンフィギュラブル回路。The reconfigurable circuit according to claim 1, wherein a subtractor is mounted on one of the logic circuits. 所望の乗算をミニマル表現したうえでこの乗算に相当する演算を前記ビットシフタを用いることにより前記アレイ内に構成したことを特徴とする請求項1から3のいずれかに記載のリコンフィギュラブル回路。4. The reconfigurable circuit according to claim 1, wherein a desired multiplication is minimally expressed, and an operation corresponding to the multiplication is configured in the array by using the bit shifter. それぞれが複数の算術論理機能を選択的に実行可能な論理回路のアレイと、前記論理回路の間の接続関係を保持する接続部とを備えたリコンフィギュラブル回路と、
前記リコンフィギュラブル回路における各論理回路の機能と論理回路間の入出力の接続関係を設定するための設定データを記憶する記憶部と、
前記記憶部から前記設定データを読み込み、前記リコンフィギュラブル回路にロードする設定部とを含み、
前記リコンフィギュラブル回路において、前記論理回路のいずれかに、乗算器に替えてビットシフタを実装したことを特徴とする集積回路装置。
An array of logic circuits each capable of selectively executing a plurality of arithmetic logic functions, and a reconfigurable circuit including a connection unit that holds a connection relationship between the logic circuits,
A storage unit that stores setting data for setting a function of each logic circuit in the reconfigurable circuit and an input / output connection relationship between the logic circuits,
A setting unit that reads the setting data from the storage unit and loads the setting data into the reconfigurable circuit,
In the reconfigurable circuit, a bit shifter is mounted instead of a multiplier in any one of the logic circuits.
前記設定データは、実行すべき乗算のデータフローを表すグラフを、乗算に替えてビットシフトを用いる表現に対応するデータであることを特徴とする請求項5に記載の集積回路装置。6. The integrated circuit device according to claim 5, wherein the setting data is data corresponding to an expression using a bit shift instead of multiplication in a graph representing a data flow of multiplication to be performed. リコンフィギュラブル回路に所期の処理を実行せしめる設定データを生成する装置であって、
前記リコンフィギュラブル回路において実行すべき乗算を、乗算を含まず、かつビットシフトを含む形式に変換するコンパイル部を備えることを特徴とするデータ変換装置。
An apparatus for generating setting data for causing a reconfigurable circuit to execute a desired process,
A data conversion device, comprising: a compiling unit that converts multiplication to be performed in the reconfigurable circuit into a format that does not include multiplication and includes bit shift.
JP2003007652A 2003-01-15 2003-01-15 Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it Pending JP2004220377A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003007652A JP2004220377A (en) 2003-01-15 2003-01-15 Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003007652A JP2004220377A (en) 2003-01-15 2003-01-15 Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it

Publications (1)

Publication Number Publication Date
JP2004220377A true JP2004220377A (en) 2004-08-05

Family

ID=32897683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003007652A Pending JP2004220377A (en) 2003-01-15 2003-01-15 Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it

Country Status (1)

Country Link
JP (1) JP2004220377A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099720A (en) * 2004-08-30 2006-04-13 Sanyo Electric Co Ltd Data flow graph processing method
JP2007241694A (en) * 2006-03-09 2007-09-20 Sanyo Electric Co Ltd Arithmetic mapping method to reconfigurable circuit, reconfigurable circuit and data flow graph
JP2007316824A (en) * 2006-05-24 2007-12-06 Sanyo Electric Co Ltd Variable function achievement device and method
JP2010044731A (en) * 2007-10-30 2010-02-25 Coreworks Sa Reconfigurable coprocessor architecture template for nested loop and programming tool
US7941794B2 (en) 2004-08-30 2011-05-10 Sanyo Electric Co., Ltd. Data flow graph processing method and processing apparatus provided with reconfigurable circuit

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099720A (en) * 2004-08-30 2006-04-13 Sanyo Electric Co Ltd Data flow graph processing method
JP4535912B2 (en) * 2004-08-30 2010-09-01 三洋電機株式会社 Data flow graph generator
US7941794B2 (en) 2004-08-30 2011-05-10 Sanyo Electric Co., Ltd. Data flow graph processing method and processing apparatus provided with reconfigurable circuit
JP2007241694A (en) * 2006-03-09 2007-09-20 Sanyo Electric Co Ltd Arithmetic mapping method to reconfigurable circuit, reconfigurable circuit and data flow graph
JP4597075B2 (en) * 2006-03-09 2010-12-15 三洋電機株式会社 Operation mapping method to reconfigurable circuit, reconfigurable circuit, and data flow graph
JP2007316824A (en) * 2006-05-24 2007-12-06 Sanyo Electric Co Ltd Variable function achievement device and method
JP2010044731A (en) * 2007-10-30 2010-02-25 Coreworks Sa Reconfigurable coprocessor architecture template for nested loop and programming tool

Similar Documents

Publication Publication Date Title
US20210028921A1 (en) Method of Operation for a Configurable Number Theoretic Transform (NTT) Butterfly Circuit For Homomorphic Encryption
JP3719509B2 (en) Serial arithmetic pipeline, arithmetic unit, arithmetic logic arithmetic circuit, and arithmetic method using serial arithmetic pipeline
Thomsen et al. Reversible arithmetic logic unit for quantum arithmetic
JP2004220377A (en) Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it
JP3003467B2 (en) Arithmetic unit
JP4255475B2 (en) Data-driven information processing device
JP4011007B2 (en) Integrated circuit device and processing device having reconfigurable circuit
JP5225115B2 (en) NAF converter
US7047271B2 (en) DSP execution unit for efficient alternate modes for processing multiple data sizes
JP4413052B2 (en) Data flow graph processing apparatus and processing apparatus
Valls et al. Fast FPGA-based pipelined digit-serial/parallel multipliers
JP5606516B2 (en) NAF converter
JPH1063500A (en) Signal processor
JP4954019B2 (en) Arithmetic unit
US6470369B1 (en) Euclid mutual division arithmetic circuit and processing circuit
JP4330472B2 (en) Processing equipment
US10310815B1 (en) Parallel decimal multiplication hardware with a 3X generator
JP2010134713A (en) Arithmetic processing apparatus and conversion device
WO2019019196A1 (en) Digital signal processing method and device and programmable logic device
Wanhammar et al. Implementation of Digital Filters
Cardarilli et al. A reconfigurable functional unit for modular operations
JP3702475B2 (en) Automatic circuit generator
KR100900790B1 (en) Method and Apparatus for arithmetic of configurable processor
JP4562678B2 (en) Data flow graph reconstruction device, setting data generation device for reconfigurable circuit, and processing device
JP2000347834A (en) Arithmetic circuit by sw number system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071016

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080331

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080513

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080711