JP3170599B2 - プログラマブルlsiおよびその演算方法 - Google Patents

プログラマブルlsiおよびその演算方法

Info

Publication number
JP3170599B2
JP3170599B2 JP02779797A JP2779797A JP3170599B2 JP 3170599 B2 JP3170599 B2 JP 3170599B2 JP 02779797 A JP02779797 A JP 02779797A JP 2779797 A JP2779797 A JP 2779797A JP 3170599 B2 JP3170599 B2 JP 3170599B2
Authority
JP
Japan
Prior art keywords
arithmetic
programmable
circuit
programmable lsi
units
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP02779797A
Other languages
English (en)
Other versions
JPH09294069A (ja
Inventor
哲也 樋口
正宏 村川
Original Assignee
経済産業省産業技術総合研究所長
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 経済産業省産業技術総合研究所長 filed Critical 経済産業省産業技術総合研究所長
Priority to JP02779797A priority Critical patent/JP3170599B2/ja
Publication of JPH09294069A publication Critical patent/JPH09294069A/ja
Application granted granted Critical
Publication of JP3170599B2 publication Critical patent/JP3170599B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は演算式をプログラマ
ブル(プログラム可能)なプログラマブルLSI(大規
模集積回路)およびその演算方法に関する。
【0002】
【従来の技術】従来この種LSIとしてはFPGA(F
ield ProgrammableGate Arr
ay)がよく知られている。FPGAはプログラム可能
な複数の論理ユニットとこれらユニットを選択的に接続
するクロスバースイッチから構成されている。論理ユニ
ットはアンド(AND)、オア(OR)等の論理演算を
行う。
【0003】なお、四則演算などを行う回路としてはC
PU(Central Processing Uni
t)、DSP(Digital Signal Pro
cessor)もしくは演算式に従って加減算器を組み
合わせ専用的に固定接続したLSIが知られている。
【0004】
【発明が解決しようとする課題】上記従来例の中でFP
GAは論理演算がよく行なわれ、数値演算は難しい。一
方、CPUやDSPは数値演算は可能であるものの、数
値演算を規定した演算式はプログラムで規定されるの
で、演算式を変更するためにはプログラム全体を書き換
えるという手間が必要となる。また、加減算等の演算器
を組み合わせたLSIは演算式の変更ができない、すな
わち、プログラマブルではないという欠点を有する。
【0005】そこで、本発明の目的は、上述の欠点に鑑
みて、数値演算式をプログラムするのに好適なプログラ
マブルLSIおよびその演算方法を提供することにあ
る。
【0006】
【課題を解決するための手段】このような目的を達成す
るために、請求項1の発明は演算内容が異なる複数の演
算回路をそれぞれが有し、演算の実行に供する演算回路
を指定する信号及び演算に使用するデータをプログラマ
ブルLSI外部から入力し、演算に使用するデータを入
力し、演算結果を出力する複数の演算ユニットと、前記
複数の演算ユニットを複数列或いは複数層構成に配列す
るように遺伝的アルゴリズムの手法を使用して定めた演
算式に従って相互に接続するための接続手段とを具えた
ことを特徴とする。
【0007】請求項2の発明は、請求項1に記載のプロ
グラマブルLSIにおいて、前記接続手段はクロスバー
スイッチであることを特徴とする。
【0008】
【0009】
【0010】請求項の発明は、請求項1に記載のプロ
グラマブルLSIにおいて、前記演算ユニットは外部か
ら与えられる演算の内容を指示する命令を記憶しておく
メモリを有し、該メモリに記憶された命令の指示する演
算の内容に対応して、前記複数の演算回路を選択するこ
とを特徴とする。
【0011】請求項の発明は、請求項に記載のプロ
グラマブルLSIにおいて、前記メモリは複数の前記命
令を記憶するための複数の記憶領域を有し、当該複数の
記憶領域から順次に前記命令を読み出し、当該読み出し
た命令に応じて選択された演算回路により演算を行うこ
とを特徴とする。
【0012】請求項の発明は、請求項1に記載のプロ
グラマブルLSIにおいて、前記接続手段は前記複数の
演算ユニットをマトリクス形態で接続可能とすることを
特徴とする。
【0013】請求項の発明は、請求項1に記載のプロ
グラマブルLSIにおいて、前記複数の演算ユニットを
ツリー構造で接続可能とすることを特徴とする。
【0014】請求項の発明は、請求項に記載のプロ
グラマブルLSIにおいて、前記接続手段は前記ツリー
構造の階層数を可変設定することにより前記複数の演算
ユニットを選択的に接続することを特徴とする。
【0015】請求項の発明は、請求項に記載のプロ
グラマブルLSIにおいて、前記接続手段は前記ツリー
構造の各階層上に位置し、上または下の階層で隣接する
特定の演算ユニットからの演算結果を選択する選択回路
を有し、該選択回路により演算結果を選択することによ
り前記ツリー構造の階層数を可変設定することを特徴と
する。
【0016】請求項の発明は、演算内容が異なる複数
の演算回路をそれぞれが有し、演算の実行に供する演算
回路を指定する信号及び演算に使用するデータをプログ
ラマブルLSI外部から入力し、演算に使用するデータ
を入力し、演算結果を出力する複数の演算ユニットと、
前記複数の演算ユニットを複数列或いは複数層構成に配
列するように遺伝的アルゴリズムの手法を使用して定め
た演算式に従って相互に接続するための接続回路とをL
SI化し、前記複数の演算ユニットで実行させる演算回
路および前記クロスバースイッチにより接続する演算ユ
ニットを前記演算式に従って指示することを特徴とす
る。
【0017】請求項10の発明は、請求項に記載のプ
ログラマブルLSIの演算方法において、最上流の前記
演算ユニットに与える初期データを順次に変更すること
により予め定めた演算式の解を取得することを特徴とす
る。
【0018】
【0019】請求項11の発明は、請求項に記載のプ
ログラマブルLSIの演算方法において、前記演算ユニ
ットのそれぞれは演算中および演算終了を示すフラグ情
報を演算状態に応じてセットし、該演算ユニットに接続
する下流側の演算ユニットは前記フラグに基づき接続の
上流側の演算結果を読み取ることを特徴とする。
【0020】請求項12の発明は、請求項に記載のプ
ログラマブルLSIの演算方法において、前記複数の演
算回ユニットの各々は演算の内容を指示する命令を記憶
しておくメモリを有し、該メモリに記憶された命令の指
示する演算の内容に対応して、前記複数の演算回路を選
択することを特徴とする。
【0021】請求項13の発明は、請求項に記載のプ
ログラマブルLSIの演算方法において、前記メモリは
複数の前記命令を記憶するための複数の記憶領域を有
し、当該複数の記憶領域から順次に前記命令を読み出
し、選択された演算器により演算を行うことを特徴とす
る。
【0022】請求項14の発明は、請求項に記載のプ
ログラマブルLSIの演算方法において、前記接続回路
は前記複数の演算ユニットをマトリクス形態で接続可能
とすることを特徴とする。
【0023】請求項15の発明は、請求項に記載のプ
ログラマブルLSIの演算方法において、前記複数の演
算ユニットをツリー構造で接続可能とすることを特徴と
する。
【0024】請求項16の発明は、請求項15に記載の
プログラマブルLSIの演算方法において、前記接続回
路は前記ツリー構造の階層数を可変設定することにより
前記複数の演算回路を選択的に接続することを特徴とす
る。
【0025】請求項17の発明は、請求項16に記載の
プログラマブルLSIの演算方法において、前記接続手
段は前記ツリー構造の各階層上に位置し、上または下の
階層で隣接する特定の演算回路からの演算結果を選択す
る選択回路を有し、該選択回路により演算結果を選択す
ることにより前記ツリー構造の階層数を可変設定するこ
とを特徴とする。
【0026】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を詳細に説明する。図1は本実施の形態のLS
I化する回路の基本構成を示す。図1において1〜15
は関数ユニット(PFU)である。各関数ユニット(本
発明の演算ユニット)は同一のものを使用できる。関数
ユニットの各々は演算内容が異なる複数の演算回路を有
している。四則演算回路等などは、メモリで構成するこ
とができる。メモリ内には加算用、減算用、乗算用、減
算用、SINの演算用、COSの演算用等約10種類の
関数テーブルが格納されている。
【0027】加算用の関数テーブルはたとえば5+1の
場合、数値5、1により定まるメモリ領域に加算結果の
数値6が格納されている。したがって、使用したい関数
テーブルを指定するデータと、演算対象のデータ(上記
加算の場合、数値5、1)をメモリのアドレス線に入力
すると、そのアドレスで指定されたメモリ領域から演算
の結果がメモリのデータ線に出力される。上記各PFU
は上述の演算テーブルの他、定数テーブルをも格納して
おり、定数のみの出力が可能である。また、AND、O
R等の論理演算テーブルやIF THEN形式の論理演
算を実行する演算回路をも有している。これらのメモ
リ、演算器は外部から指示されるデジタル信号によりマ
ルチプレクサ等の切替器により実行に供する演算回路が
選択される。なお、本実施の形態ではメモリを使用する
演算回路を例としたがその他の形態の演算回路を使用し
てもよいこと勿論である。
【0028】各PFUはクロスバースイッチ(図中○印
で図示)により選択的に相互接続される。なお●で示し
た箇所は接続を表し、たとえば、第1列目(1stCo
lumn)に位置するPFU2は入力データxとyに接
続され、これらのデータを入力することを示している。
第2列目(2ndColumn)のPFU6は第1列目
のPFU2と接続し、PFU2の演算出力を入力するこ
とを示している。
【0029】したがって、ユーザは各PFUに実行させ
る演算の種類を不図示のディップスイッチや他の指示装
置を用いて指定し、クロスバースイッチを操作すること
で任意の演算式を設定することができる。ちなみに図1
の接続例で設定された演算式は
【0030】
【数1】 IF (cos(X+Y)>sin(X*Z′))then Z′−Y else(X+Y)/Y を示す。この式はcos(X+Y)の値がsin(X*
Z′)の値よりも大きいときにはZ′−Yの値を演算結
果とし、そうでない場合には(X+Y)/Yの値を演算
結果とすることを意味する。
【0031】このような演算式を従来の演算器の組み合
わせで示した例を図2に示す。従来では、図2に示す回
路をLSI化すると、演算式をを変更することは容易で
はないが本実施の形態では、自由に演算式を組み替える
ことができる点に注意されたい。
【0032】このようにプログラムされた演算式を実行
する時間は次のとおりとなる。sin計算に5ユニット
タイム、cos計算に5ユニットタイム、減算に1ユニ
ットタイム、if then計算に2ユニットタイム、
乗算に2ユニットタイム、除算に3ユニットタイム要す
るとすると、各PFUで行われる演算のタイミングと、
全体の演算に要する時間は図3に示すようになる。図3
に示すように本実施の形態では演算式を構成する部分演
算を並列的に実行できるので、CPUのようにシリアル
的に部分演算を実行していく演算装置よりも本実施の形
態の方が処理速度が速い。
【0033】次にプログラマブルLSIの具体的な構成
例を図9を使用して説明する。
【0034】図9においてPFUブロック100は15
組みのPFUを有するチップである。PFUコントロー
ラ200およびシステムコントローラ300がPFUブ
ロック100と対で用意される。 システムコントロー
ラ300は外部からチップセレクト信号(CS信号と略
記する)、リード信号(RD信号と略記する)またはラ
イト信号(WR信号と略記する)およびシステムアドレ
ス信号を入力し、CS信号により選択されたPFUブロ
ック100に対してRD信号またはWR信号を供給す
る。RD信号はPFUブロック内のPFUインストラク
ションメモリやPFU内の後述のレジスタのアドレスを
指定する信号であり、RD信号の発生時にSystem
addr信号によりアドレスが指定されたインストラ
クションメモリ(各PFU内に設置)の記憶領域(複
数)や上記レジスタから、データが読み出され、Sys
tem Data信号線に出力される。読み出されるデ
ータは通常は、他のチップ(PFUブロック)に引き渡
すデータである。
【0035】逆にWD信号の発生時にはSystem
Addr信号によりアドレスが指定されたインストラク
ションメモリの記憶領域や上記レジスタに対して、実行
プログラム命令や演算データ(オペランド)が書き込ま
れる。インストラクションメモリ116は各PFUにつ
いての実行プログラム命令をおよびデータを記憶する。
実行プログラム命令には、演算命令、制御命令、即値命
令の3種の命令がある。演算命令は本実施の形態では加
減乗除など8種の演算を行うための関数が定義されてい
る。
【0036】制御命令は特定のレジスタに対する演算デ
ータや演算結果の入出力の指示や、小数点位置の指定、
分岐条件の指定等を行う。即値命令は演算すべきデータ
である。
【0037】IN0〜IN7はPFUブロック100で
処理すべき8組の入力データである。
【0038】PFUコントローラ100はSytem
data信号により転送される情報を解析して後述の信
号を作成し、PFUブロック100内のPFUに対して
供給する。この供給信号について説明する。
【0039】func信号は各PFUが演算実行可能な
8つの関数のうちのどの関数を選択するかを示す信号
で、各PFUに対してfunc信号が送られる。たとえ
ば、図16(e)に示すような3つのPFUが接続され
ている状態で、左側のPFUに対するfunc信号の内
容を書き換えることによりそのPFUは加算から乗算に
演算実行する関数を変更する。変更結果が図16(f)
になる。
【0040】PFU go信号は全PFUに対して動作
開始を指示する信号である。
【0041】PFU sel信号は動作を許可する信号
で各PFUに対して供給され、この信号がセットされて
いないPFUは動作することができない。
【0042】mux信号はPFUブロック100内の複
数のPFUの接続構成を指示する信号である。この信号
により複数のPFUの信号線の接続/否接続が制御され
て、たとえば、図15の(a)、(b)、(c)、
(d)のような各種のツリーの接続構造が構築される。
【0043】PFU done信号は各PFUから送ら
れる実行終了信号である。
【0044】CLK enable信号はCLK(基準
クロック信号)から作成された動作タイミング信号であ
り、この信号に同期してPFUが動作する。
【0045】PFUブロック100内のPFUに関する
主要構成を図10に示す。図10において、PFU0、
PFU1のそれぞれの演算結果をPFU8に入力し、P
FU2,PFU3のそれぞれの演算結果をPFU9に入
力するというようにして、図10の形態では4層の階層
(ツリー)でPFUが接続されている。さらに図16に
おいて左端の各階層の隣接の特定のPFU(PFU0,
PFU8,PFU12,PFU14)の演算結果を取り
出すことができる。この取り出した演算結果中からマル
チプレクサ(MPXと略記、セレクタとも呼ばれる)1
01により所望のものを取り出す。この実施の形態では
2つのPFUの間の信号線を接続/断を行うスイッチが
ない点に注目されたい。
【0046】どのPFUの演算結果をMPX101が取
り出すかは上述のmux信号により指示される。たとえ
ば、図15の(a)のようなツリー構造で演算を行いた
い場合には、MPX101においてPFU14の演算結
果を選択して出力すればよい。図15の(b)のような
ツリー構造で演算を行いたい場合にはPFU12の演算
結果を選択する。図15(c)のようなツリー構造の場
合にはPFU8の演算結果を選択し、図15(d)のツ
リー構造の場合にはPFU0の演算結果を選択する。
【0047】このような接続構成とすることで、スイッ
チ群が不要となり、、回路構成が簡素化される。また、
複数のPFUで所定の演算式を組む場合にも各PFUと
そのPFUに割り当てる関数との対応関係を把握するこ
とが容易という利点がある。
【0048】上述のPFUの構成の一例を図11に示
し、内部構成を示す。
【0049】PFUは主にデータ入力用のFIFOバッ
ファ110、レジスタ群111、乗算器(MPU)11
4、論理演算ユニット(ALU)115およびPFUイ
ンストラクションメモリ116から構成される。上述の
Sytem addr 信号によるアドレス指定により
System data信号の内容が外部から書き込ま
れる。プログラムカウンタ用のレジスタPCを介してア
ドレス制御回路(Next Address Cont
rol)からのアドレス指定により、インストラクショ
ンメモリ116に格納された命令が順次に読み出され、
デコーダ117により命令の内容が解析される。この解
析結果により、MPU114,ALU115およびレジ
スタ群111が制御され、選択された関数による演算が
行われる。
【0050】アドレススタックはサブルーチン(分岐命
令)が与えられたときに戻りアドレスを記憶しておくた
めの記憶回路であり、スタックポインタ(SP)の指示
するアドレスの戻りアドレスがアドレススタックから読
み出される。上述したようにPFUは8種の関数の演算
が可能なので、選択された関数の種類によりMPY11
4、ALU115またはMPY114およびALU11
5の双方が選択される。
【0051】この演算に関連して、外部入力用のFIF
O110およびレジスタ群111の中の所定のレジスタ
から演算に使用するデータがバスA−BUS,B−BU
S,C−BUSを介してMPY114およびALU11
5に転送される。また、MPY114の演算結果をAL
U115に入力することも可能である。上述のレジスタ
やFIFOからのデータ入力のためにセレクタ群11
2、113が使用される。
【0052】この例ではMPY114は入力R,Sを持
ち、演算結果はレジスタMに格納され、Mout→M0
〜M2の経路でレジスタM0〜M2にMPY14の演算
結果を格納することが可能である。ALU115は入力
U,Vを持ち、演算結果はレジスタAに格納され、レジ
スタAout→A0〜A2の経路でレジスタA0〜A2
にALU15の演算結果を格納することが可能である。
これらの演算結果を出力する時にシフタが小数点位置の
調整に使用される。レジスタM,レジスタAおよびMP
Y14,ALU15は共に外部リセット信号あるいはア
ドレス制御回路からの信号によりレジスタMrs、Ar
sを介してリセットされる。
【0053】レジスタX,Yは外部入力のデータを格納
し、レジスタc0〜c8は定数を格納する。本実施の形
態では前の実施形態で説明した染色体データを格納す
る。レジスタimには即値を格納する。
【0054】これらの構成部はCLK enable信
号から作成されたイネーブル信号(ENの表記を有する
信号、たとえば、EN0、ENX等)により動作可能と
なる。
【0055】上述の回路の入出力関連の動作説明を図1
2、図13、図14を参照して説明する。図12は外部
から情報入力するときの信号発生タイミングを示す。図
13は演算結果を出力する場合の信号発生タイミングを
示す。図14はPFUの処理開始と停止を行う場合の信
号発生タイミングを示す。
【0056】図12において、時刻T1でのインストラ
クションメモリ116から読み出された命令が入力命令
のとき(レジスタIRの格納命令が入力)、ENX信号
によりレジスタX側のFIFOに情報が入力され、時刻
T3でENY信号によりレジスタY側のFIFOに情報
が入力される。時刻T2でのEmptyX信号の発生、
時刻T4でのEmptyY信号およびENI信号の発生
に応じて2つのFIFO110からレジスタX,Yに入
力情報に転送される。
【0057】一方、図13に示すようにインストラクシ
ョンメモリ116から出力命令が読み出されると(レジ
スタIRの格納命令が出力)、CLK enable信
号に同期してEN0信号が発生し、レジスタMoutま
たはレジスタAoutから演算結果が出力される。
【0058】動作開始にあったっては図14に示すよう
にPFU go信号の発生に応じてプログラムカウンタ
用レジスタPCの値が順次にインクメントされて、イン
ストラクションメモリ116から順次にプログラム命令
が読み出される。PFU go信号の消去に応じてFI
FO reset信号が発生され、FIFO110がリ
セットされる。また、他の回路も動作を停止する。
【0059】演算に関連する動作タイミングは従来の演
算回路と同様であるので、詳細な説明を要しないであろ
う。
【0060】以上、説明したように上述の実施形態では
複数のPFUをツリー構造で接続し、その階層を可変設
定可能とすることによりマトリクス形態のPFUの接続
構造に比べて、接続構成をより簡素化できる。
【0061】なお、図10に示した例ではPFUを15
組み有するPFUブロックの例を示したがこの例に限定
することなく、PFUは所望の組み数とすることができ
る。上述の実施の形態の他に次の例を実現できる。
【0062】1)本実施の形態では演算式をプログラム
し、演算式に代入する入力データを与えることで演算式
の演算結果を取得する例であるが、入力データと演算結
果のデータの組を繰り返し与えることで、演算式を学習
により変更させることがでできる。
【0063】このようにして好適な演算式を求める際に
遺伝的アルゴリズム(Genetic Algorit
hm)の手法を使用することができる。このアルゴリズ
ムは本願発明者によりすでに提案されて発表されている
が(「進化するハードウェア」 1995年BIT(1
0月号))この提案内容を簡単に紹介しておく。
【0064】各演算ユニット内の選択された演算回路の
種類と演算ユニット間の接続関係を解とし、この解の候
補を、染色体(0、1の2進ビット列)として表現し、
これを複数個用意して初期集団とする。また、これらの
解の候補を個体と呼ぶ。たとえば、図4に示す曲線上の
黒丸の一つを図5に見られるような0と1の2進ビット
列として表現し、これを複数個(図5では4個)用意す
る。
【0065】解の良さを定義する評価関数を定義し、そ
の値を適応度とする。解く問題ごとに最適な評価関数を
用意する。
【0066】適応度の高い個体同士を集団の中から選択
する。その選択の方法として一般的なのは比例配分によ
る方法で集団中の適応度の総和において、各個体の占め
る割合に応じて各個体が選ばれる。図5、図6に割合を
示す。
【0067】交差(データの一部が図7に示すように交
互に移動したもの)や突然変異(データの一部が他のも
のに変化したもの)を上記選択した2つの個体に適用し
てさらによい個体を作り出す。このようにして作り出さ
れた解の中で評価関数により定まる適用度の低い解は淘
汰して解の集団数を一定に保ちつつ、適用度が高くて満
足する解が得られるまで上記個体の選択、個体の作り換
えを繰り返す。
【0068】この結果、プログラマブルLSIにおいて
設定される演算式が自動的に変更され、最終に好適な演
算式が得られる。このプログラマブルLSIの用途とし
てはパターン認識に加えてたとえば、暗号解読や、デー
タの統計の解析、通信におけるデータ圧縮、ATM(交
換機)の制御に使用できる。
【0069】2)通常、加算や乗算など演算の種類応じ
て演算時間が異なる。そこで、図1の各PFUでは演算
状態を示すフラグ情報を用意して下流側のPFUに演算
状態を知らせるとよい。より具体的には、ビット1で演
算終了を表し、ビット0で演算中を表すフラグを上流側
のPFUは演算開始時および終了時に設定する。このフ
ラグ情報をフリップフロップやラッチ回路に設定する。
下流側のPFUでは図8に示すような処理手順でこのフ
ラグ情報を監視し(図8のステップS1→S2のループ
処理)、フラグ情報が計算終了を示したときに上流側の
PFUからその演算結果を入力する(ステップS3)。
また、自己より下流側のPFUのために自己のフラグ情
報を0に設定する。指示された種類の演算を実行して演
算結果が得られると下流側のPFUへ演算結果を引き渡
すための出力用バッファに計算結果をセットして、自己
のフラグ情報1にセットする(ステップS4→S5)。
このような処理を各PFUが行うことにより非同期でデ
ータを転送することが可能となる。
【0070】
【発明の効果】以上、説明したように請求項1、2、
の発明では、演算ユニットの中の演算回路を遺伝的アル
ゴリズムの手法を使用して定めた演算式に従って種類指
定し、接続手段(クロスバースイッチ)により接続して
いくことで、好適な数値演算式を選択してプログラムし
て行くことができる。
【0071】
【0072】請求項3、12の発明では、各演算ユニッ
トはメモリを有することにより、外部から異なる命令を
を受け付けることができ、実行する演算内容を固定化せ
ず、変更することができる。
【0073】請求項4、13の発明では、メモリが複数
の記憶領域を有することにより、異なる演算内容を指示
する命令を一括してメモリに記憶して、順次に異なる演
算を行うことができるので、他種、多様の演算式を実行
することができ、演算式がプログラマブルとなる。
【0074】請求項5,14の発明では、演算ユニット
の接続形態をマトリクス形態とすることで、ありとあら
ゆる演算を実行することができる。
【0075】請求項6〜8、15〜17の発明では、演
算ユニットの接続形態をツリー構造とすることで、マト
リクス形態よりも少ない演算ユニットで演算を実行する
ことができる。また、ツリー構造の階層数を可変するこ
とにより、異なる演算式に対応することができる。ま
た、各階層の特定の演算回路の演算結果を選択すること
で、信号線の接続/断を行うスイッチを特に設ける必要
はなく、LSI内部の回路構成を簡素化することがで
き、もって、システム全体の小型化に寄与することがで
きる。
【0076】請求項12の発明では、演算式の各演算の
種類およびその接続を規定する初期データを順次に変更
することで、演算式の解すなわち、好適な演算式を取得
することができる。これによりプログラマブルLSIで
ニューラルネットワークや、統計分析回路を構成するこ
とができ、パターン認識やデータ解析等を実行すること
ができる。
【0077】
【0078】請求項11の発明では、演算ユニット間の
データ転送を非同期で行うことができる。
【図面の簡単な説明】
【図1】本発明実施の形態の回路構成を示す構成図であ
る。
【図2】演算式に従った演算回路の接続例を示すブロッ
ク図である。
【図3】演算処理タイミングを示す説明図である。
【図4】遺伝的アルゴリズムを説明するための説明図で
ある。
【図5】遺伝的アルゴリズムを説明するための説明図で
ある。
【図6】遺伝的アルゴリズムを説明するための説明図で
ある。
【図7】遺伝的アルゴリズムを説明するための説明図で
ある。
【図8】PFU間のデータ通信処理内容を示すフローチ
ャートである。
【図9】他の実施の形態のシステム構成を示すブロック
図である。
【図10】PFUの接続構成を示すブロック図である。
【図11】PFUの内部構成を示すブロック図である。
【図12】入力の信号発生タイミングを示すタイミング
チャートである。
【図13】出力の信号発生タイミングを示すタイミング
チャートである。
【図14】動作開始および停止の信号発生タイミングを
示すタイミングチャートである。
【図15】PFUの接続パターン例を示す説明図であ
る。
【図16】PFUの演算内容の切り換えを示す説明図で
ある。
【符号の説明】
1〜15 関数ユニット 100 PFUブロック 110 FIFO(バッファ) 111 レジスタ群 112,113 セレクタ 114 乗算器(MPU) 115 論理演算ユニット(ALU) 116 インストラクションメモリ 117 デコーダ 200 PFUコントローラ 300 システムコントローラ

Claims (17)

    (57)【特許請求の範囲】
  1. 【請求項1】 演算内容が異なる複数の演算回路をそれ
    ぞれが有し、演算の実行に供する前記演算回路を指定す
    る信号及び演算に使用するデータを入力し、演算結果を
    出力する複数の演算ユニットと、 前記複数の演算ユニットを複数列或いは複数層構成に配
    列するように該複数の演算ユニットを接続するための接
    続手段と、 を具えるプログラマブルLSIであって、 前記複数の演算回路の中には数値演算を行う回路を含ん
    で、遺伝的アルゴリズムの手法を使用して定めた演算式
    に従って、前記プログラマブルLSI外部から前記複数
    の演算ユニットで実行させる演算回路および前記接続手
    段により接続する演算ユニットを選択し、 第1列或いは第1層の演算ユニットの前記演算に使用す
    るデータは、前記プログラマブルLSI外部から与えら
    れると共に、最終列或いは最終層の演算ユニットから前
    記プログラマブルLSI外部に演算結果を出力する こと
    を特徴とするプログラマブルLSI。
  2. 【請求項2】 請求項1に記載のプログラマブルLSI
    において、前記接続手段はクロスバースイッチであるこ
    とを特徴とするプログラマブルLSI。
  3. 【請求項3】 請求項1に記載のプログラマブルLSI
    において、前記演算ユニットは外部から与えられる演
    容を指示する命令を記憶しておくメモリを有し、該メ
    モリに記憶された命令の指示する演算内容に対応して、
    前記複数の演算回路の内の一つが選択されることを特徴
    とするプログラマブルLSI。
  4. 【請求項4】 請求項3に記載のプログラマブルLSI
    において、前記メモリは複数の前記命令を記憶するため
    の複数の記憶領域を有し、当該複数の記憶領域から順次
    に前記命令を読み出し、当該読み出した命令に応じて選
    択された演算回路演算を行うことを特徴とするプログ
    ラマブルLSI。
  5. 【請求項5】 請求項1に記載のプログラマブルLSI
    において、前記接続手段は前記複数の演算ユニットをマ
    トリクス形態で接続可能とすることを特徴とするプログ
    ラマブルLSI。
  6. 【請求項6】 請求項1に記載のプログラマブルLSI
    において、前記接続 手段は前記複数の演算ユニットをツ
    リー構造で接続可能とすることを特徴とするプログラマ
    ブルLSI。
  7. 【請求項7】 請求項に記載のプログラマブルLSI
    において、前記接続手段は前記ツリー構造の階層数を可
    変設定することにより前記複数の演算ユニットを選択的
    に接続することを特徴とするプログラマブルLSI。
  8. 【請求項8】 請求項に記載のプログラマブルLSI
    において、前記接続手段は前記ツリー構造の各階層上に
    位置し、上または下の階層で隣接する特定の演算ユニッ
    トからの演算結果を選択する選択回路を有し、該選択回
    路が演算結果を選択することにより前記ツリー構造の階
    層数を可変設定することを特徴とするプログラマブルL
    SI。
  9. 【請求項9】 演算内容が異なる複数の演算回路をそれ
    ぞれが有しかつ該複数の演算回路の中には数値演算を行
    う回路を含んで、演算の実行に供する前記演算回路を指
    定する信号及び演算に使用するデータを入力し、演算結
    果を出力する複数の演算ユニットと、前記複数の演算ユ
    ニットを遺伝的アルゴリズムの手法を使用して定めた演
    算式に従って複数列或いは複数層構成に配列するように
    接続するための接続回路とをプログラマブルLSI化
    し、 前記複数の演算ユニットで実行させる演算回路および前
    記接続回路により接続する演算ユニットを前記演算式に
    従ってプログラマブルLSI外部から選択し第1列或いは第1層の演算ユニットの前記演算に使用す
    るデータは、前記プログラマブルLSI外部から与えら
    れると共に、最終列或いは最終層の演算ユニットから前
    記プログラマブルLSI外部に演算結果を出力する こと
    を特徴とするプログラマブルLSIの演算方法。
  10. 【請求項10】 請求項に記載のプログラマブルLS
    Iの演算方法において前記演算ユニットに与える演算回
    路の選択データを順次に変更することにより前記演算式
    の内容を順次に変更することを特徴とするプログラマブ
    ルLSIの演算方法。
  11. 【請求項11】 請求項に記載のプログラマブルLS
    Iの演算方法において、前記複数の演算ユニットの各々
    は演算中および演算終了を示すフラグ情報を演算状態に
    応じてセットし、該演算ユニットに接続する下流側の演
    算ユニットは前記フラグに基づき接続の上流側の演算結
    果を取り込むことを特徴とするプログラマブルLSIの
    演算方法。
  12. 【請求項12】 請求項に記載のプログラマブルLS
    Iの演算方法において、前記複数の演算ユニットの各々
    は演算内容を指示する命令を記憶しておくメモリを有
    し、該メモリに記憶された命令の指示する演算内容に対
    応して、前記複数の演算回路の内の一つが選択される
    とを特徴とするプログラマブルLSIの演算方法。
  13. 【請求項13】 請求項12に記載のプログラマブルL
    SIの演算方法において、前記メモリは、複数の前記命
    令を記憶するための複数の記憶領域を有し、当該複数の
    記憶領域から順次に前記命令を読み出して演算回路を選
    択し、選択された演算回路が演算を行うことを特徴とす
    るプログラマブルLSIの演算方法。
  14. 【請求項14】 請求項に記載のプログラマブルLS
    Iの演算方法において、前記接続回路は前記複数の演算
    ユニットをマトリクス形態で接続可能とすることを特徴
    とするプログラマブルLSIの演算方法。
  15. 【請求項15】 請求項に記載のプログラマブルLS
    Iの演算方法において、前記接続回路は前記複数の演算
    ユニットをツリー構造で接続可能とすることを特徴とす
    るプログラマブルLSIの演算方法。
  16. 【請求項16】 請求項15に記載のプログラマブルL
    SIの演算方法において、前記接続回路は、前記ツリー
    構造の階層数を可変設定することにより前記複数の演算
    回路を選択的に接続することを特徴とするプログラマブ
    ルLSIの演算方法。
  17. 【請求項17】 請求項16に記載のプログラマブルL
    SIにおいて、前記接続回路は前記ツリー構造の各階層
    上に位置し、上または下の階層で隣接する特定の演算回
    路からの演算結果を選択する選択回路を有し、該選択回
    演算結果を選択することにより前記ツリー構造の階
    層数を可変設定することを特徴とするプログラマブルL
    SIの演算方法。
JP02779797A 1996-03-01 1997-02-12 プログラマブルlsiおよびその演算方法 Expired - Lifetime JP3170599B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02779797A JP3170599B2 (ja) 1996-03-01 1997-02-12 プログラマブルlsiおよびその演算方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-45223 1996-03-01
JP4522396 1996-03-01
JP02779797A JP3170599B2 (ja) 1996-03-01 1997-02-12 プログラマブルlsiおよびその演算方法

Publications (2)

Publication Number Publication Date
JPH09294069A JPH09294069A (ja) 1997-11-11
JP3170599B2 true JP3170599B2 (ja) 2001-05-28

Family

ID=26365775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02779797A Expired - Lifetime JP3170599B2 (ja) 1996-03-01 1997-02-12 プログラマブルlsiおよびその演算方法

Country Status (1)

Country Link
JP (1) JP3170599B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
JP2000156627A (ja) 1998-09-18 2000-06-06 Agency Of Ind Science & Technol 電子回路およびその調整方法
US6449628B1 (en) * 1999-05-07 2002-09-10 Morphics Technology, Inc. Apparatus and method for programmable datapath arithmetic arrays
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
WO2003009125A1 (fr) * 2001-07-19 2003-01-30 Sony Corporation Dispositif de calcul et dispositif de traitement d'images
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7376811B2 (en) 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
JP3934493B2 (ja) 2002-06-28 2007-06-20 富士通株式会社 集積回路及びシステム開発方法
DE10255768B3 (de) 2002-11-28 2004-06-24 Infineon Technologies Ag Anordnung von konfigurierbaren Logik Blöcken
JP4104538B2 (ja) 2003-12-22 2008-06-18 三洋電機株式会社 リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP4553615B2 (ja) * 2004-03-22 2010-09-29 三洋電機株式会社 処理装置
JP4553614B2 (ja) * 2004-03-22 2010-09-29 三洋電機株式会社 処理装置
JP2006053687A (ja) * 2004-08-10 2006-02-23 Sony Corp 演算装置
JP4958224B2 (ja) * 2007-06-29 2012-06-20 日本電信電話株式会社 処理回路
JP5196905B2 (ja) * 2007-08-03 2013-05-15 三菱電機株式会社 動的再構成可能演算装置および半導体装置
JP5241268B2 (ja) * 2008-02-26 2013-07-17 三菱電機株式会社 動的再構成可能演算装置および半導体装置
CN113222126B (zh) * 2020-01-21 2022-01-28 上海商汤智能科技有限公司 数据处理装置、人工智能芯片

Also Published As

Publication number Publication date
JPH09294069A (ja) 1997-11-11

Similar Documents

Publication Publication Date Title
JP3170599B2 (ja) プログラマブルlsiおよびその演算方法
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
JPS585847A (ja) 命令ブランチ機構
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JPS6217252B2 (ja)
JP3954171B2 (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
KR100331565B1 (ko) 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치
JPH0412503B2 (ja)
JPH06274528A (ja) ベクトル演算処理装置
US4598358A (en) Pipelined digital signal processor using a common data and control bus
JPH04503720A (ja) デジタル信号処理装置のフレキシブル制御装置及び方法
JPS6137654B2 (ja)
JP2003241960A (ja) プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法
US7370179B2 (en) Microprocessor
US20020156992A1 (en) Information processing device and computer system
JPH1063647A (ja) 行列演算装置
JP2654451B2 (ja) データ出力方法
JP4125475B2 (ja) Rtl生成システム、rtl生成方法、rtl生成プログラム及び半導体装置の製造方法
JPH06103064A (ja) データ処理装置及びそのデータ処理方法
CA1155232A (en) Pipelined digital signal processor using a common data and control bus
JP3088956B2 (ja) 演算装置
JP2555124B2 (ja) 画像処理装置
JP3270337B2 (ja) プログラム制御プロセッサおよびマシン語プログラム出力方法
JPH11143710A (ja) 処理対象値入力装置及びプログラム変換装置

Legal Events

Date Code Title Description
S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term