JP3558119B2 - 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法 - Google Patents

情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法 Download PDF

Info

Publication number
JP3558119B2
JP3558119B2 JP22508799A JP22508799A JP3558119B2 JP 3558119 B2 JP3558119 B2 JP 3558119B2 JP 22508799 A JP22508799 A JP 22508799A JP 22508799 A JP22508799 A JP 22508799A JP 3558119 B2 JP3558119 B2 JP 3558119B2
Authority
JP
Japan
Prior art keywords
circuit
programmable logic
circuits
information
preceding base
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP22508799A
Other languages
English (en)
Other versions
JP2001051826A (ja
Inventor
義雄 西原
紀一 山田
哲一 里永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP22508799A priority Critical patent/JP3558119B2/ja
Publication of JP2001051826A publication Critical patent/JP2001051826A/ja
Application granted granted Critical
Publication of JP3558119B2 publication Critical patent/JP3558119B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、アプリケーションプログラムによる処理の一部分を、回路構成を再構成できるプログラマブル論理回路で処理することが可能である情報処理システムおよびこの情報処理システムに使用するプログラマブル論理回路の回路情報形成方法、さらに、プログラマブル論理回路の再構成方法に関し、特に、回路の再構成時間を短縮する方法に関する。
【0002】
【従来の技術】
デジタル回路装置の分野において、フィールドプログラマブルゲートアレイ(FPGA)やプログラマブルロジックデバイス(PLD)などのプログラマブル論理回路が、特定用途向け集積回路(ASIC)を作成する前の試作デバイスとして、または、数週間から数ヶ月という長い作製期間を要するASICの代替デバイスとして使われてきた。また、最近では、回路構成を変更できるというプログラマブル論理回路の特徴を生かして、回路装置作成後にも、仕様を変更したり回路欠陥を修正するためにプログラマブル論理回路が使われている。
【0003】
さらに、アプリケーションの処理に合わせた処理回路をプログラマブル論理回路上に構成し、この前記アプリケーション専用の処理回路を用いて高速処理を実現するというリコンフィギュラブルコンピューティングに、プログラマブル論理回路が活用され始めている。
【0004】
リコンフィギュラブルコンピューティングでは、アプリケーション処理で必要となる複数の処理回路の回路情報を記憶装置へ事前に格納しておき、必要に応じて、その記憶装置から読み出した回路情報を、プログラマブル論理回路のコンフィギュレーションメモリに書き込むことで、その時点で必要となる回路を生成する。
【0005】
この技術は、必要な回路情報をプログラマブル論理回路の外部に退避しておくという観点から、キャッシュロジック技術と呼ばれたり、回路情報を書き替えることにより、実際のプログラマブル論理回路の回路規模よりも大きな規模の回路を実現できるという観点から、バーチャルロジック技術と呼ばれている。以下の説明では、簡単のため、これらの技術を総称して、キャッシュロジック技術と呼ぶことにする。
【0006】
キャッシュロジック技術は、同じプログラマブル論理回路上に、必要に応じて異なる回路を構成するという時分割駆動技術である。その結果、回路規模の小さなプログラマブル論理回路を用いて、その回路規模以上の回路を実現でき、回路装置の小型化と低コスト化が可能となる。
【0007】
しかしながら、プログラマブル論理回路のコンフィギュレーションメモリに書き込む回路情報の規模によっては、外部記憶装置からプログラマブル論理回路に回路情報を読み込んで、回路の再構成する時間が長くなり、専用のハードウエア処理回路を用いて高速処理を実現するというリコンフィギュラブルコンピューティングの効果を損なうという問題がある。
【0008】
この問題のひとつの解決方法が、マルチコンテキスト技術と呼ばれるデバイス技術である。すなわち、マルチコンテキスト技術においては、プログラマブル論理回路内に複数の回路情報を格納することができるように、複数個のコンフィギュレーションメモリを設け、必要に応じてコンフィギュレーションメモリを切り替えることにより、プログラマブル論理回路装置に回路を再構成することで、回路の再構成時間を大幅に短縮する。
【0009】
このマルチコンテキスト技術の従来例の一つが、FPD’95(Third Canadian Workshop of Field Programmable Devices 1995)で発表された“A First Generation DPGA Implementation”で示されたDPGAである。これを従来例1として、図51を参照しながら説明する。
【0010】
図51は、発表されたDPGAの論理セル構造を示すものである。論理セルは、4組の構成を格納できる4×32ビットのDRAM11、4つの8入力マルチプレクサ12〜15、4入力ルックアップテーブル16、フリップフロップ17、出力を切り替えるセレクタ18で構成される。
【0011】
32ビットのDRAM11の出力のうち、12ビットが4つの8入力マルチプレクサ12〜15の状態を、16ビットが4入力ルックアップテーブル16の状態を、1ビットがセレクタ18の状態を決定し、残り3ビットは保留とされている。4組のDRAM11には、それぞれ異なる回路情報が格納されており、メモリ出力を切り替えることにより、異なる回路を構成することができる。
【0012】
マルチコンテキスト技術は、事前に複数の回路情報をコンフィギュレーションメモリに格納してあるので、回路の再構成時間を短縮することを可能にする。
【0013】
しかしながら、回路情報を格納するために、複数プレーンまたは複数個のコンフィギュレーションメモリがプログラマブル論理回路の内部に必要なため、プログラマブル論理回路の回路規模が大きくなる。回路規模が大きくなると、回路素子の負荷容量が大きくなることにより、回路性能が低下したり、消費電力が大きくなるという問題を引き起こす。また、回路規模が大きくなると、プログラマブル論理回路の製造コストが高くなるという問題も引き起こす。
【0014】
このような欠点を持たない別の解決策が、スケルトン回路技術と呼ばれる回路設計技術である。このスケルトン回路技術においては、プログラマブル論理回路に再構成すべき複数の回路の全てに共通して使用可能な回路部分(これをスケルトン回路と呼ぶ)を、最初に、プログラマブル論理回路に構成しておく。そして、各回路の回路情報は、このスケルトン回路との差分回路の情報により構成するようにする。したがって、このスケルトン回路技術によれば、少ない回路情報で新たな回路を構成することができるので、回路の再構成時間を短縮することができる。
【0015】
スケルトン回路技術の従来例の一つが、FCCM’96の“Assessing Document Relevance with Run−time Reconfigurable Machines”で示されているテキスト検索装置である。これを従来例2として説明する。
【0016】
このテキスト検索装置は、プログラマブル論理回路上において、図52に示すように、プリプロセッサ21と、8個の単語検出回路22A〜22Hと、4個のインクリメンター23A〜23Dと、文字キャラクタ入力バス24と、ストローブライン25と、デストリビューションバス26と、計数出力バス27とで構成される。8個の単語検出回路22A〜22Hは、それぞれ回路情報により指定される単語の検出回路である。
【0017】
この図52においては、8ビットで符号化された文字キャラクタデータがプリプロセッサ21に入力されて、大文字と小文字を区別せずに、AからZまでの文字が1から26までのトークンにマップされ、データバス幅が5ビットに狭められる。数字などの他の文字は、0のトークンにマップされ、文字区切りを表すトークンとして扱われる。
【0018】
5ビットのバス26上を流れるトークンから、単語検出回路22A〜22Hが、それぞれ指定された特定のトークンを検出し、特定のトークンの順列を検出することにより、単語を検索する。検出された単語数はインクリメンター23A〜23Dで数え上げられる。図52に示した例は、4単語からなる2組の単語リストを検出する。
【0019】
この図52では、単語検出回路22A〜22Hを除いたバス24〜27とプリプロセッサ21などの固定回路で、スケルトン回路が構成される。
【0020】
このテキスト検索回路の電源投入時に、スケルトン回路が構成される。引き続いて単語検出回路22A〜22Hが構成される。異なる単語を検出するときは、単語検出回路22A〜22Hのうちの、その単語を構成する単語検出回路のみを再構成し、スケルトン回路部は再利用される。
【0021】
スケルトン回路技術は、マルチコンテキスト技術におけるメモリ領域のような余分な回路領域を必要とせずに、回路情報を減らして回路の再構成時間を短縮することを可能にする。
【0022】
【発明が解決しようとする課題】
前述したように、キャッシュロジック技術を用いて、アプリケーションプログラムによる処理の一部分を、プログラマブル論理回路で構成した回路で処理する情報処理システムでは、回路を再構成する時間が長くなり、ソフトウエア処理に比べて処理速度の速いプログラマブル論理回路によるハードウエア処理が、回路再構成時間を含めた総処理時間で比べると、ソフトウエア処理よりも時間を要することがある。
【0023】
この問題を解決する一つの手段であるマルチコンテキスト技術は、回路の再構成時間を短縮することを可能にするが、複数の回路情報を格納するための余分なメモリ領域が必要なため、プログラマブル論理回路全体の回路規模が大きくなるという欠点がある。
【0024】
また、上記問題を解決する別の解決手段であるスケルトン回路技術は、マルチコンテキスト技術のような、余分な回路領域を必要としないが、再構成される回路間に明白な共通部分が必要であるという制限がある。
【0025】
この発明は、以上の点にかんがみ、マルチコンテキスト技術のように余分な回路領域を必要とせず、かつ、スケルトン回路技術における再構成される回路に対する制限を大幅に緩和して、高速に回路を再構成できるようにすることを目的とする。
【0026】
【課題を解決するための手段】
この発明によるプログラマブル論理回路の再構成方法は、
プログラマブル論理回路に複数個の回路を順次に構成する方法であって、
前記複数個の回路の全てに共通するものとして前記プログラマブル論理回路上に構成可能な共通回路部分と、前記複数個の回路で互いに共通せず、かつ、前記プログラマブル論理回路上で回路構成領域を共有しない非排他的独立回路部分とからなる先行ベース回路を、前記複数個の回路の再構成に先立ち前記プログラマブル論理回路に予め構成する第1の工程と、
前記先行ベース回路の回路情報との差分としてそれぞれ構成される、前記複数の回路のそれぞれの回路情報により、前記先行ベース回路が形成されている前記プログラマブル論理回路を部分的再構成して、前記複数の回路のそれぞれの回路を順次に構成する第2の工程と、
を備えることを特徴とする。
【0027】
【作用】
この発明による先行ベース回路は、上述したスケルトン回路技術の場合の、複数個の回路の共通部からなるスケルトン回路部分だけでなく、複数個の回路で、互いに排他的でなく、かつ、プログラマブル論理回路上で回路構成領域が互いに重ならない非共通部分をも含むものである。
【0028】
したがって、複数の回路のそれぞれを再構成する場合には、先行ベース回路との差分の回路部分であるところの、複数個の回路で回路生成領域が重なるが、互いに排他的な回路部分のみを、再構成すればよい。
【0029】
スケルトン回路技術の場合には、複数個の回路で共通の部分がないとスケルトン回路が生成できないので、その回路技術を用いることができないが、この発明の場合には、スケルトン回路部分だけではなく、複数個の回路で、互いに排他的でなく、かつ、プログラマブル論理回路上で回路構成領域が互いに重ならない非共通部分をも含む先行ベース回路を予めプログラマブル論理回路上に構成しておくものであるため、複数個の回路で共通の部分が必要というような制約がなくなり、どのような回路の場合にも、高速再構成が可能になる。
【0030】
【発明の実施の形態】
以下、この発明による情報処理システム、回路情報形成方法、プログラマブル論理回路の再構成方法の実施の形態を、図を参照しながら説明する。
【0031】
[情報処理システム全体の構成の概要]
この発明による、少なくとも処理の一部分が、回路構成を再構成できるプログラマブル論理回路を保有する処理手段で処理される情報処理システムの実施の形態の主要な概念構成を図3に示す。
【0032】
この例の場合の情報処理システムは、情報処理部100と、記憶部200とからなる。これら情報処理部100と、記憶部200とは、一つの情報処理装置内に構成することもできるし、それぞれ別々の装置として、互いにネットワークを介して接続するようにして構成することもできる。
【0033】
以下に説明する例では、情報処理部100と、記憶部200とは、一つの情報処理装置内に構成されている場合として説明する。
【0034】
情報処理部100においては、アプリケーションプログラム101は、実行しようとする一連の処理を複数個の処理に分割し、分割した処理をCPU102またはプログラマブル論理回路104を保有するハードウエア処理部103で実行する。アプリケーションプログラム101には、CPU102で行う処理は、CPU102の命令コードで記述され、また、ハードウエア処理部103で行う処理は、これが保有するプログラマブル論理回路104に構成する回路名と、その回路を構成要素の一部として構成されたハードウエア処理部103の制御コードで記述されている。
【0035】
ハードウエア処理部103は、処理手段を構成するもので、プログラマブル論理回路104として、この例ではFPGAタイプのプログラマブル論理回路を保有し、このプログラマブル論理回路104に構成された回路を利用して処理を行う。
【0036】
回路情報取得部105は、アプリケーションプログラム101からのハードウエア処理部103のプログラマブル論理回路104に構成する回路の要求を受けて、その回路を構成するための回路情報を記憶部200から取得する。この例の場合、回路情報はヘッダ部とコード部(回路データ部)で構成されている。
【0037】
記憶部200には、アプリケーションプログラム101での処理で必要とされる一連の複数の回路の回路情報が、予め格納されている。記憶部200に格納される、その一連の複数の回路の回路情報は、この実施の形態では、後述するように、できるだけプログラマブル論理回路104での回路の再構成時間が短縮化できるように考慮されたものとされている。
【0038】
そして、回路情報取得部105は、取得した回路情報のコード部の回路データを、ハードウエア処理部103にロードして、そのプログラマブル論理回路104に回路を構成する。さらに、回路情報取得部105は、回路情報のヘッダ部に記述されている入出力ポート情報をアプリケーションプログラム101に提供する。
【0039】
アプリケーションプログラム101は、この回路情報取得部105からの入出力ポート情報に基づいて、ハードウエア処理部103のプログラマブル論理回路104に構成された回路に、データを入出力する。
【0040】
[FPGAタイプのプログラマブル論理回路の説明]
前述したように、この実施の形態においては、プログラマブル論理回路104として、FPGAタイプのプログラマブル論理回路を用いる。このFPGAタイプのプログラマブル論理回路の平面構造を図4に、内部構造のブロック図を図5に示す。
【0041】
このFPGAタイプのプログラマブル論理回路1040は、図5に示すように、回路情報を格納するためのコンフィギュレーションメモリ1041と、回路素子1042とで構成される。回路素子1042は、図4に示すように、マトリクス配列された複数個の論理セル1043と、入出力端子1044と、論理セル1043間や論理セル1043と入出力端子1044との間などを接続するための配線領域1045とで構成される。
【0042】
コンフィギュレーションメモリ1041は、EEPROM、SRAMなどの書き換え可能なメモリ素子で構成されている。回路情報がコンフィギュレーションメモリ1041に格納されると、この回路情報に従って、論理セル1043内の回路構成や、論理セル1043と入出力端子1044を相互に接続する配線領域1045の接続状態が再構成される。コンフィギュレーションメモリ1043の一部分を書き換えることにより、プログラマブル論理回路が動作中であっても、回路を部分的に再構成することができる。
【0043】
プログラマブル論理回路に再構成された回路素子1042に、入出力端子1044を介して、処理すべきデータが入力されて所定の処理が実行され、また、その処理結果が入出力端子1044を介して出力される。
【0044】
[プログラマブル論理回路の回路情報形成方法の実施の形態]
[記憶部200に記憶される回路情報の構造]
図1は、この発明による回路情報形成方法の概念を説明するための図である。また、図2は、この発明による回路情報形成方式で形成された回路情報の例を、従来のスケルトン回路技術の場合の回路情報と比較して説明するための図である。
【0045】
図1および図2に示す例においては、アプリケーションプログラムにより、回路A,B,Cの3つの回路を、順次にプログラマブル論理回路に構成する場合について説明する。この場合、3つの回路A,B,Cは、回路構成上、概念的に図1のような関係にあるものとする。
【0046】
すなわち、図1において、共通回路部分1(図1において斜め格子を付した部分)は、回路A,B,Cにおいて、プログラマブル論理回路に構成した回路部分を共通に使用することができる部分である。この共通回路部分1は、前述のスケルトン回路技術におけるスケルトン回路の部分に相当する。
【0047】
また、図1において網点を付して示した部分2は、プログラマブル論理回路上において、回路A,B,Cで互いに回路領域が重なるが、それぞれ異なる機能回路部分を構成すべき排他的全重なり部分である。
【0048】
また、図1において、塗りつぶしを施していない部分3は、プログラマブル論理回路上において、回路A,B,Cの全てで重なることはないが、いずれかの他の回路と重なり、それぞれ異なる機能回路部分を構成すべき排他的一部重なり部分である。
【0049】
また、図1において、斜線を付した部分4は、それぞれの回路A,B,Cのそれぞれが、他の回路と重なりを持たずにプログラマブル論理回路上に構成される排他的でない非共通部分である。
【0050】
この発明においては、共通回路部分1と、回路A,B,Cのそれぞれについての排他的でない非共通部分4とからなる部分(すなわち、図1において、斜め格子を付した部分と、斜線を付した部分とからなる部分;この回路部分を、この明細書では先行ベース回路と呼ぶことにする)を、複数個の回路A,B,Cを再構成する前に、予めプログラマブル論理回路上に構成すべき先行ベース回路とし、その回路情報を、まず、生成する。すなわち、図2(A)に示すように、先行ベース回路の回路情報5を、まず、生成する。
【0051】
次に、この例の場合には、前述したように、回路A→回路B→回路Cの順序でプログラマブル論理回路上に、3つの回路を構成するので、図2(A)のように、順次に各回路A,B,Cの回路情報6A,6B,6Cを生成するが、これらの各回路A,B,Cの回路情報6A,6B,6Cのそれぞれは、それぞれの回路A,B,Cと、先行ベース回路との差分に相当する回路部分の情報として生成する。
【0052】
この場合の各回路A,B,Cの回路情報6A,6B,6Cは、図1において、塗りつぶしが付されていない排他的一部重なり部分3と、排他的全重なり部分2とからなる回路部分を部分的に再構成するものとなる。すなわち、この例の場合には、回路情報6A,6B,6Cのそれぞれは、回路A、回路B、回路Cのうちの、それぞれ、排他的一部重なり部分3と、排他的全重なり部分2とを部分的に再構成するための回路情報とされる。
【0053】
このように形成された回路情報を用いて、プログラマブル論理回路104に処理に必要な機能回路を再構成すると共に、実際の処理を行なう手順を、図6のフローチャートを用いて説明する。
【0054】
まず、始めに、処理に先立ち、回路情報取得部105は、記憶部200から、先行ベース回路の回路情報5を読み込み、先行ベース回路をプログラマブル論理回路104上に構成しておく(ステップS101)。
【0055】
そして、アプリケーションプログラム101からの回路選択指示を待ち(ステップS102)、回路選択指示があったら、選択された回路を認識し、記憶部200からその選択指示された回路情報を読み出し(ステップS103)、その回路情報によるプログラマブル論理回路104の部分的再構成により、必要な回路がプログラマブル論理回路104上に生成される(ステップS104)。
【0056】
この例の場合には、最初は、回路情報6Aが指定されるので、この回路情報6Aによりプログラマブル論理回路104上に既に構成されている先行ベース回路に加えて、回路Aの生成のために必要な回路部分の部分再構成が行われ、回路Aがプログラマブル論理回路104上に生成される。
【0057】
必要な機能回路がプログラマブル論理回路104上に構成されると、処理が実行される(ステップS105)。そして、アプリケーションプログラムによる全ての処理が終了しているか否か判別し(ステップS106)、終了していなければ、ステップS102に戻り、順次に、必要な機能回路を、その生成のための前述したような回路情報により、先行ベース回路に加えて部分再構成して、プログラマブル論理回路104上に生成する。
【0058】
そして、ステップS106で全ての処理が終了したと判別されたときには、この処理ルーチンを終了する。
【0059】
以上のようにして、先行ベース回路は変更せずに、わずかな回路部分の再構成を行なうだけで、複数個の機能回路をプログラマブル論理回路上に実現することができ、高速のコンフィギュレーションが可能となる。
【0060】
[従来のスケルトン回路技術との比較]
図2(B)は、従来のスケルトン回路技術を用いた場合において、前記3つの回路A,B,Cを、順次に、プログラマブル論理回路に再構成するための回路情報の構造を示すものである。図2(A)のこの発明による回路情報との違いは、最初の回路情報が、先行ベース回路の回路情報の代わりに、スケルトン回路の回路情報であるかということと、各回路A,B,Cの回路情報が、この発明の場合には、先行ベース回路との差分であるのに対して、スケルトン回路技術の場合には、スケルトン回路との差分である点である。
【0061】
スケルトン回路は、図1においては、共通回路部分1に相当する。これに対して、前述したように、先行ベース回路は、図1において、共通回路部分1だけでなく、各回路A,B,Cの排他的でない非共通部分4を含むものである。したがって、この発明による回路情報の形成方法により形成された回路情報により各回路A,B,Cが再構成される場合には、排他的一部重なり部分3と、排他的全重なり部分2とが再構成されるだけとなる。
【0062】
このため、排他的一部重なり部分3と、排他的全重なり部分2とが再構成されるだけでなく、各回路A,B,Cの排他的でない非共通部分4をも再構成しなければ、それぞれの回路A,B,Cを再構成できないスケルトン回路技術の場合よりも、この発明の場合の方が、部分的再構成時間を短縮化することができるものである。
【0063】
前述した従来例によるスケルトン回路技術では、共通回路部分を持った複数の回路から抽出された共通回路部分(スケルトン回路)を構成する回路情報を、まず、最初にコンフィギュレーションメモリに格納する。次に、アプリケーションによる処理に対応する処理回路を実現するために、その回路情報と既に構成されているスケルトン回路との差分に対応する回路のすべてを構成する回路情報を、コンフィギュレーションメモリに追加して格納する。その結果、既に構成されているスケルトン回路と、後から構成した非共通回路を合わせて、アプリケーションによる処理に対応する処理回路が構成される。
【0064】
つぎに、アプリケーションによる別の処理に対応する処理回路を実現するために、その回路情報と既に構成されているスケルトン回路との差分に対応する非共通回路を構成する回路情報を、コンフィギュレーションメモリに追加して格納する。その結果、既に構成されているスケルトン回路と、後から構成した非共通回路を合わせて、アプリケーションによる処理に対応する処理回路が構成される。
【0065】
このとき、先に構成された処理の非共通部分の回路情報は、後から構成された処理の非共通部分の回路情報により、一部もしくは全部が上書きされる。もし、全部が上書きされた場合は、先に構成された処理回路は全て失われる。もし、一部が上書きされた場合は、先に構成された処理回路と後に構成された処理回路の非排他的部分の回路が残る。
【0066】
従来のスケルトン回路技術では、この非排他的部分回路は、回路断片としてプログラマブル論理回路上に放置されている。ふたたびアプリケーションにより先の回路を再構成するときに、非排他的回路部分を含んだ回路情報が上書きされて、同じ回路が再構成される。
【0067】
この発明では、このように他の回路を再構成しても上書きされない非排他的部分回路を先行ベース回路の一部分として構成している。したがって、この発明によれば、再構成される回路情報の情報量が削減されて、再構成時間が短縮されるものである。
【0068】
次に、以上説明したような回路情報形成方法を用いて形成される回路情報を用いて、処理が行われる情報処理システムの実施の形態について説明する。以下に説明する実施の形態は、情報処理システムのプログラマブル論理回路104に、処理に必要な機能処理回路をどのようにして構成するかを示したものであり、機能処理回路としては、四則演算のそれぞれの演算を行なうものを例にする。
【0069】
以下においては、3つの実施の形態について説明するが、便宜上、回路ブロック図と、論理ゲートによる記述を用いて各実施の形態の回路構成を説明する。
【0070】
なお、この発明は、記述した回路構成が、直接、プログラマブル論理回路上に構成されることに限定されない。なぜならば、プログラマブル論理回路は、回路ブロック図と論理ゲートを用いたスケマティック記述や、VHDLなどの言語を用いた回路記述言語記述により表現された回路構成から生成された回路情報を読み込むことで、回路を構成する。構成された回路は、機能的にはスケマティック記述や回路記述言語記述により表現された回路と同じであるが、用いられる回路素子や回路素子間の結線状態は、プログラマブル論理回路のアーキテクチャにより異なる。
【0071】
したがって、以下に説明する実施の形態は、説明に用いた回路ブロック図と論理ゲートにより構成される回路構成に限定されず、同じ機能を有するスケマティック記述や回路記述言語記述へ容易に拡張することができるものである。
【0072】
[第1の実施の形態:演算モード切り替えなしの加減乗算器]
この発明の第1の実施の形態の場合の先行ベース回路を図7に示す。この第1の先行ベース回路は、X入力部30、Y入力部40、Cin入力部50、Pin入力部60の4つの入力部と、S出力部70の一つの出力部と、演算セルから構成される演算回路部80、加減乗算における桁上げを処理するためのCLA(Carry Look Ahead:桁上げ先見方式)付きアダー90から構成される。ここで、Cinは桁上げ信号の初期値、Pinは部分和の初期値である。この図7は、演算ビット数をnとして一般化した場合の先行ベース回路を示したもので、nは偶数である。
【0073】
4つの入力部30、40、50、60の各ビット単位の構成は基本的には同一のものである。ただし、この例の場合には、後述するように、Y入力部40は、減算のための反転処理の部分が他の入力部と異なっている。
【0074】
各入力部のビット単位の構成は、フリップフロップ回路により構成されるレジスタタイプのものと、スイッチ回路により構成されるタイプのものとがあり、用途に応じていずれのタイプのものを用いることもできる。
【0075】
図8は、レジスタタイプの入力部の各ビット単位の構成例を示すもので、これはX入力部30の場合の構成例である。すなわち、各ビット単位の入力部31は、このレジスタタイプの場合には、Dフリップフロップ回路32からなり、そのD入力端子に、入力ビットxi が供給され、Q出力端子から入力部ビット出力xoutiが取り出される。そして、Dフリップフロップ回路32のプリセット端子PRと、クリア端子CLとに与えられるハイレベルHあるいはローレベルLの制御信号により、入力部ビット出力xoutiの値が設定される。
【0076】
すなわち、図8(A)のように、Dフリップフロップ回路32のプリセット端子PRとクリア端子CLとに与えられる制御信号が共にハイレベルHのときには、入力部ビット出力xoutiとしては、入力ビットxi がそのまま得られる。
【0077】
また、図8(B)のように、Dフリップフロップ回路32のプリセット端子PRにはローレベルLの制御信号が供給され、クリア端子CLにはハイレベルHの制御信号が与えられるときには、入力部ビット出力xoutiは、常に「1」となる。
【0078】
さらに、図8(C)のように、Dフリップフロップ回路32のプリセット端子PRにはハイレベルHの制御信号が供給され、クリア端子CLにはローレベルLの制御信号が与えられるときには、入力部ビット出力xoutiは、常に「0」となる。
【0079】
図9は、各ビット単位の入力部31をスイッチタイプのもので構成した場合である。図8のレジスタタイプのものと同様に、図9(A)は、入力部ビット出力xoutiとして、入力ビットxi がそのまま得られるようにする場合、図9(B)は、入力部ビット出力xoutiが常に「1」に設定される場合、図9(C)は、入力部ビット出力xoutiが常に「0」に設定される場合である。
【0080】
このスイッチタイプのものは、回路情報により、図9(A)、(B)、(C)のいずれかのスイッチ回路が形成されることにより、それぞれの状態が設定される。
【0081】
なお、レジスタタイプの構成の場合には、入力値xi ,0,1の全てを保持することができるが、スイッチタイプの場合には、0,1の固定値は保持することができるが、xi などの変数値は保持することができない。
【0082】
先行ベース回路を構成する場合に、各入力部のビット単位の入力部31を、図8(A),(B),(C)または図9(A),(B),(C)のいずれかの状態に設定するが、どの状態に設定するかは、先行ベース回路の次にプログラマブル論理回路上に構成する回路に応じて、その回路用のものに設定すると、各入力部30、40、50、60を構成するための回路情報が不要となるので、再構成時間を短縮化することができる。以下の説明においては、各入力部30、40、50、60は、それぞれレジスタタイプにより構成されているものとして説明する。
【0083】
前述したように、Y入力部40は、減算演算のために、反転制御回路が挿入される。その反転制御回路は、ビット単位の入力部41に設けられるDフリップフロップ回路42の前段と後段のいずれに設けることもできる。図10の例は、Dフリップフロップ回路42の前段に設けられた場合の例である。すなわち、各ビット単位の入力部41のDフリップフロップ回路42の前段には、インバータ44と、マルチプレクサ43とからなる反転制御回路が設けられる。
【0084】
この反転制御回路は、マルチプレクサ43に供給される切り替え制御信号SELにより、切り替え制御されて、入力信号yj をそのままの極性で出力する場合と、入力信号yj を反転した状態で出力する場合とに切り替えられる。図10で、反転出力は、yj にオーバーバーを付して示した。
【0085】
次に、図11に、先行ベース回路の演算回路部80と、CLA付きアダー90と、S出力部70の部分の回路構成を示し、図12に、演算回路部80内の論理セル81の構造を示す。図11は、n=8の場合の演算回路部80の構成を示している。したがって、X入力部30、Y入力部40、Cin入力部50のそれぞれは、x0 〜x7 、y0 〜y7 、cin0 〜cin7 の8ビット分のビット単位入力部を備え、Pin入力部60は、pin0 〜pin15の16ビット分のビット単位入力部を備える。
【0086】
図12に示すように、先行ベース回路の各論理セル81は、アンドゲート811と、全加算器(フルアダーFA)812とを備えると共に、図示のような配線を備える。図12における入力x,y、桁上げ出力c、部分和pのそれぞれに付されている添字であるiは、演算対象の入力xの桁を表わし、また、添字jは、論理セルを通って計算された回数(何回、論理セルを通って当該論理セルに入力されたかに相当)と、演算対象の入力yの桁を表わしている。
【0087】
図12の論理セル81は、入力xi と入力yj との論理積を、アンドゲート811で演算する。そして、このアンドゲート811の論理積演算出力と、当該論理セル81へ入力される桁上げ出力ci (j−1)と、当該論理セル81へ入力される部分和pi (j−1)とを、全加算器812で加算演算する。そして、この全加算器812から、部分和出力pi と、桁上げ出力ci とを得るように構成されている。
【0088】
また、図示は省略するが、S出力部70は、出力バッファレジスタの構成であり、2n個、したがって、図11の例の場合には、16個のDフリップフロップ回路からなるレジスタで構成される。そして、S出力部70は、その下位のs0 〜s(n−1) (図11の例では、s0 〜s7 )として、演算回路部80の各行の出力ビットを受け、また、その上位のsn 〜s(2n−1)(図11の例では、s8 〜s15)として、CLA付きアダー90の出力を受け、外部に出力することが可能である。
【0089】
また、先行ベース回路のCLA付きアダー90は、図14に示すように構成される。この図14も、n=8の場合に対応したものである。このCLA付きアダー90は、演算回路部80の最後の行(y7 の行)のキャリー出力c7 ’〜c14’と、部分和出力s8 ’〜s14’とを計算して、部分和出力s8 〜s15を出力するために用いる。
【0090】
図14に示すように、CLA付きアダー90は、8個のハーフアダー(半加算器)901〜908と、12個のアンドゲート909〜920と、6個のノアゲート921〜926と、6個のインバータ927〜932と、7個のイクスクルーシブオアゲート933〜939とから構成される。
【0091】
ハーフアダー901〜908のそれぞれは、図13に示すように、キャリー出力c(i−1)’と、部分和si ’とをそれぞれ入力とするアンドゲート941およびイクスクルーシブオアゲート942からなる。
【0092】
図14の場合でのCLA付きアダー90は、図14で点線で囲んで示したように、4ビット分を1ブロックとして、その単位でCLAを用いて桁上げ信号を伝搬させ、ブロック内はリップルで桁上げ信号を伝える方式をとっている。ここでは、ハーフアダー901〜908のそれぞれの2つの入力si ’,c(i−1) ’がともに“1”のときは、下の桁からの桁上げ信号c(i−1) の値にかかわらず桁上げ信号ci が発生し、前記2つの入力si ’,c(i−1) ’のどちらかが“1”のときは、下の桁からの桁上げ信号c(i−1) の値で桁上げ信号ci が決定される。この様子を式で表すと、次のようになる。
【0093】
ci =gi +pi ・c(i−1) …(1)
ただし、gi =si ’・c(i−1) ’であり、pi =si ’[exor]c(i−1) である。なお、・は乗算、また、[exor]は、排他的論理和演算を意味している。
【0094】
式(1)において、gi は桁上げ生成信号(generator)と呼ばれ、pi は桁上げ伝搬信号(propagator)と呼ばれるが、機能的にはハーフアダーのキャリーおよび和に全く等しい。
【0095】
これらgi およびpi を用いて、図14における必要な各桁の桁上げ信号c8 〜c14を表すと、図15に示すようなものとなり、全ての桁の桁上げ信号は、自桁の入力値と、それぞれのCLA付きアダー90での最下位の桁上げ信号(ここではc8 ,c11)だけで生成できる。
【0096】
最終的な出力si (この場合s8 〜s15)としては、s8 についてはp8 を出力する。s9 〜s15については、1つ下位の桁から出されたキャリー信号c(i−1) とハーフアダーからの桁上げ伝搬信号pi との排他的論理和を取ることにより出力される。
【0097】
[先行ベース回路から乗算(X×Y)処理回路の再構成の説明]
乗算を行う場合の並列乗算器の論理セル81の内部構成は、図12のままでよい。しかし、先行ベース回路のX入力部30、Y入力部40、Cin入力部50、Pin入力部60、S出力部70は、乗算回路用の回路情報により、図16に示すように設定される。そして、この回路情報による部分再構成により、乗算回路がプログラマブル論理回路104に生成される。なお、この乗算器の場合、Y入力部40の反転制御信号SELは、「0」とされ、非反転となる。
【0098】
この場合、乗算の例として、X(8ビット)×Y(8ビット)の演算を考えると、Xは被乗数、Yは乗数、SはXとYの積となり、図16に示すように、各入力部30、40、50、60および出力部70の値は設定される。
【0099】
すなわち、X入力部30およびY入力部40は、図8(A)に示したように、プリセット端子PRおよびクリア端子CLがそれぞれハイレベルに部分的再構成される。また、Cin入力部50およびPin入力部60は、図8(C)に示したように、プリセット端子PRおよびクリア端子CLがそれぞれハイレベルおよびローレベルに部分的再構成されて、全て初期値0に設定される。さらに、S出力部70は、s0 〜s15の全てを用いるように部分的再構成される。
【0100】
なお、先行ベース回路のX入力部30、Y入力部40、Cin入力部50、Pin入力部60が、それぞれ図8(C)に示すプリセット端子PRおよびクリア端子CLがそれぞれハイレベルおよびローレベルに部分的再構成されて、全て初期値0に設定される状態にされている場合には、この乗算回路用の回路情報としては、Cin入力部50、Pin入力部60の設定情報は必要としない。
【0101】
[先行ベース回路から加算(X+Y)処理回路の再構成の説明]
加算器の論理セルは、図17(A)に示すように、図12に示した先行ベース回路の論理セル81へのX入力部30のビット出力を「1」とし、Pin入力部60の部分和出力を被加算数X(xi ;i=0〜7)入力とし、Y入力部40のビット出力を加算数Y(yj ;j=0〜7)入力とし、Cin入力部50の桁上げ出力の初期値を「0」とすることにより実現できる。すなわち、このとき、形成される加算器の論理セルは、図17(B)に示すものと等価となり、その論理セル81の部分和出力Pi として、Pi =xi +yj が得られ、桁上げ出力Ci として桁上げ信号が得られる。
【0102】
また、先行ベース回路の論理セル81へのX入力部30のビット出力を「0」にし、Cin入力部50のビット出力を「0」にした場合には、その部分和出力Pi =xi となり、また、桁上げ出力Ci =0となる。また、先行ベース回路の論理セル81へのX入力部30のビット出力を「0」、Cin入力部50のビット出力を「0」、さらにPin入力部60のビット出力も「0」とした場合には、その論理セル81の部分和pi および桁上げ出力ci は「0」となる。
【0103】
この加算演算の場合も乗算演算と同様に8ビット+8ビットの演算を考え、演算回路部80を8ビットの加算演算器の構成とする場合、図18において、右端の論理セル81a〜81hのみを図17(B)のような加算器の構成として、その加算器の部分和出力s0 〜s7 を加算出力とすると共に、CLA付きアダー90の最も下位のビットを桁上げ出力s8 として用いるようにすればよい。
【0104】
以上のことから、先行ベース回路から、加算処理回路を再構成するための回路情報は、図19に示すようなものとなる。すなわち、X入力部30は、最下位のビット(x0 に対応)が1で、その上位の7ビットは全て0とされる。また、Cin入力部50の出力ビットは全て0とされる。そして、Pin入力部60の下位の8ビットが8ビットの変数xi となるようにされる。さらに、Pin入力部60の上位の8ビットは、全て0とされる。そして、S出力部70は、下9ビットs0 〜s8 が出力バッファとして用いられるように結線される。なお、この加算処理回路の場合、Y入力部40の反転制御信号SELは、「0」とされ、非反転となる。
【0105】
この加算処理回路は、X入力部30と、Y入力部40との関係を上述の場合と逆とすることによっても実現することができる。すなわち、Pin入力部60の部分和出力を加算数Y(yj ;j=0〜7)入力とし、X入力部30のビット出力を被加算数X(xi ;i=0〜7)入力とし、その他は、上述と同様とすることによっても実現できる。その場合の、回路情報は、図20に示すように、各入力部30、40、50、60およびS出力部70を設定するようなものとすればよい。
【0106】
[先行ベース回路から減算(X−Y)処理回路の再構成の説明]
この減算処理回路は、前述した加算処理回路の第1の例において、Y入力部40の反転制御信号SELを、「1」として、減算数Yを反転したものを、論理セル81に出力するように構成すればよい。
【0107】
すなわち、この減算処理回路の場合も、8ビット×8ビットの演算を考えると、2の補数による減算を行うために、加算処理回路の場合の論理セル81と同じ構造で、yj を反転させ、Cin入力部50の初期値に、00000001を入力すればよい。この場合の回路情報は、図21に示すように、各入力部30、40、50、60および出力部70を設定するようなものとなる。
【0108】
なお、X入力部30を、前述したY入力部40と同様に、反転制御回路を含む構成として、xiを反転させ、Cin入力部50の初期値に、00000001を入力すれば、Y−Xの減算器を実現できる。このときには、回路情報により、図22に示すように、各入力部30、40、50、60およびS出力部70が設定される。
【0109】
[第2の実施の形態:LUT保持で制御線変更による演算モード切り替え付きの加減乗除算]
第1の実施の形態は、乗算、加算、減算の3つの演算を行なうようにする場合に、プログラマブル論理回路を用いて、高速に回路を再構成して演算を実行する場合の例であるが、この第2の実施の形態は、上記の3演算に加えて、除算を行なえるようにした場合である。
【0110】
この第2の実施の形態の場合の先行ベース回路の例を図23に示す。すなわち、この第2の実施の形態においては、先行ベース回路は、第1の実施の形態の場合と同様のX入力部30、Y入力部40、Cin入力部50、Pin入力部60の4つの入力部、S出力部70、演算セルから構成される演算回路部80、加減乗算における桁上げを処理するためのCLA付きアダー90を備えると共に、除算を行うための除算器最終段回路401と、加減乗算か除算かを選択するマルチプレクサ402と、マルチプレクサ402や演算回路部の論理セルを切り替え制御するための制御線403とから構成される。
【0111】
CLA付きアダー90の内部構成は、第1の実施の形態と同じである。また、除算器最終段回路401は、後に説明する。
【0112】
図24に、n=8とした場合の先行ベース回路の演算回路部80と、S出力部70と、CLA付きアダー90と、除算器最終段回路400と、マルチプレクサ500の部分の構成を示す、また、図25に、この第2の実施の形態の場合の演算回路部80の一つの論理セル82の構造を示す。
【0113】
この論理セル82は、第1の実施の形態と同様に、アンドゲート811と全加算器812とを備えると共に、除算演算のための回路Aおよび回路Bと、加減乗算の場合には全加算器812の出力を、除算の場合には、回路A、回路Bの出力を出力するマルチプレクサ830、831とを備える。回路Aは、インバータ821と、3個のアンドゲート822、823、824からなり、回路Bは、インバータ825と、4個のアンドゲート826、827、828、829からなる。
【0114】
マルチプレクサ830および831は、制御線403の値により切り換えられ、制御線403が「0」に設定されたときには、第1の実施の形態と同じ手順により、加算、減算、乗算を行うことができる。また、制御線403の値が「1」に設定された場合には、以下に説明するようにして除算を行う行なうことができる。この除算を行なう手順を、以下に説明する。
【0115】
[除算(X÷Y)処理の説明]
まず、除算のアルゴリズム(引き戻し法)について簡単に述べる。初めに、よく知られている10進数の割り算の手順を例に挙げると、図26に示すような手順となる。
【0116】
これと同じ手順を、2進数で行うと次のようになる。
被除数Xを小数で2m桁、除数Yを小数でm桁(X<Y)、Qを小数でm桁とする。剰余をRとすれば、
X=QY+R
という関係が成り立つ。
【0117】
そして、次のような手順で割り算を実行する。
【0118】
(1)初期部分剰余r0 を、r0 =Xとする。
【0119】
(2)r0 を2倍(左シフト)して、それからYを引き、r1 とする。
【0120】
r1 ≧0→q1 =1
r1 <0→q1 =0
この結果、r1 =2r0 −q1 Yとなる。
【0121】
(3)r1 を2倍して、それからYを引き、r2 とする。
【0122】
r2 ≧0→q2 =1
r2 <0→q2 =0
この結果、r2 =2r1 −q2 Yとなる。
【0123】
(4)以下一般に
2r(i−1) −Y≧0→qi =1
2r(i−1) −Y<0→qi =0
として、ri =2r(i−1) −qi Yとする。
【0124】
すなわち、例をあげて示すと、図27に示すようなものとなる。
【0125】
図28に、プログラマブル論理回路が除算器として構成された場合の演算回路部80の論理セル82の中身の等価回路を示す。除算器の場合、被除数から除数を引くのに全減算器を構成させる必要がある。全減算器は、後述するように、全加算器においてキャリーに関する部分の入力の一つを反転することで実現できる。図28において、bi (j−1)およびbi は、ボローを意味している。
【0126】
また、全加算器におけるキャリーの部分は、全減算器ではボローに相当する。出力のマルチプレクサ830、831の制御入力が「0」の場合はキャリーを出力し、セル82は全加算器として動作する。また、「1」の場合はボローを出力し、セル82は全減算器として動作する。
【0127】
除算器最終段回路401からのフィードバック信号cntが「0」の場合(被除数>除数)、減算の結果が出力され、フィードバック信号cntが「1」の場合(被除数<除数)、論理セル82内で減算は行わずに、入力された被除数がそのまま出力される。図25および図28において、各文字の添え字であるiは桁を表し、jはセルを通って計算された回数と桁を表す。
【0128】
ここで、被除数X、除数Y、商Q、剰余Rのそれぞれは、図29に示すようなものとする。図30に、m=8の場合の除算器アレイを示す。この場合のX入力部30、Y入力部40、Cin入力部50(あるいはボロー入力部)、Pin入力部60、およびS出力部70のそれぞれは、回路情報により、図31に示すように設定される。
【0129】
また、図30において、破線で囲まれた部分は図23と図24で示した除算器最終段回路401の構成である。
【0130】
[第3の実施の形態:結線保持でLUT(ルックアップテーブル)変更による演算モード切り替え付きの加減乗除算]
第2の実施の形態では、制御線403の値を変更することにより、演算モードを切り替えた。この第3の実施の形態では、先行ベース回路の構造は殆ど変更されないが、ルックアップテーブルを書き換えることにより、論理セル内の全加算器部(FA:Full Adder)と全減算器部(FS:Full Subtractor)の切り替えを行なうと共に、除算器最終段回路401からのフィードバック無しの場合(加減乗算)と、フィードバック有り(除算)の場合とを切り換えることにより、加減乗算と除算の演算切替を行なうようにする。
【0131】
図32に、この第3の実施の形態の場合における先行ベース回路の演算回路部の論理セル84の構造を示す。これは、アンドゲート811と、第1のルックアップテーブル841と、第2のルックアップテーブル842とで構成される。第1のルックアップテーブル841は、全加算器部または全減算器部を構成する。また、第2のルックアップテーブル842は、除算器最終段回路401からのフィードバック無しの場合の回路部またはフィードバック有りの場合の回路部を構成する。
【0132】
[加減乗算を行う場合]
この場合、論理セル84内の第1のルックアップテーブル841には、全加算器の構成となるテーブル情報を書き込むとともに、ルックアップテーブル842にはフィードバック無し(NFB)の場合の出力のテーブル情報を書き込む。
【0133】
まず、第1のルックアップテーブル841による全加算器(X+Yを行なう)の構成について説明する。
【0134】
この場合、ルックアップテーブルで構成される全加算器841の入出力の各変数が図33に示すようなものである場合、それぞれの変数は、図32の論理セル84の構成において示した変数とは、それぞれ次のように対応する。すなわち、Xはp(i+1)(j−1)に、Yはyj に、S’はpi j ’に、Cinはci (j−1)に、そしてCout はci に対応する。なお、Cinは下位から桁上げされるキャリー、Cout は桁上げするキャリーの出力である。
【0135】
ルックアップテーブルとしての全加算器841に書き込まれる入力(X,Y,Cin)対出力(S’,Cout )の真理値表のテーブルデータを、図34に示す。この場合の出力S’とCout は、図35に示す式で表される。なお、図35の式で、X,Y,Cinにオーバーバーが付されたものは、X,Y,Cinの反転値を示している。
【0136】
次に、第2のルックアップテーブル842について考えるに、この場合には、この第2のルックアップテーブル842は、フィードバック無しの場合の回路構成となる。第2のルックアップテーブル842の入力は、図32に示したように、cnt,X,S’=pi j ’であり、出力はS(図32ではpi に対応)である。
【0137】
この場合に、第2のルックアップテーブル842に書き込まれる入力(cnt,X,S’)対出力(S)の真理値表のテーブルデータを、図36に示す。この図36から判るように、第2のルックアップテーブル842では、変数cnt,Xの値に関わらず、出力S’の値が出力Sにそのまま伝えられている(S’=S)。
【0138】
以上のようにして、加・減・乗算の演算の場合には、図34と図36の真理値表のテーブルデータが、それぞれ第1および第2のルックアップテーブル841および842に書き込まれる。
【0139】
[除算を行う場合]
除算の場合も加・減・乗算の場合と同様に考える。論理セル84セル内の第1のルックアップテーブル841と第2のルックアップテーブル842には、全減算器と、フィードバック有りの場合のテーブルデータを書き込む。
【0140】
まず、第1のルックアップテーブル841による全減算器部(X−Yを行う)の構成について考える。
【0141】
この場合、ルックアップテーブルで構成される全減算器842の入出力の各変数が図37に示すようなものである場合、それぞれの変数は、図32の論理セル84の構成において示した変数とは、それぞれ次のように対応する。すなわち、Xはp(i+1)(j−1)に、Yはyj に、S’はpi j ’に、Binはci (j−1)に、Bout はci に対応する。なお、ここで、Binは下位から桁上げされるボロー、Bout は桁上げするボローの出力である。
【0142】
ルックアップテーブルとしての全減算器841に書き込まれる入力(X,Y,Bin)対出力(S’,Bout )の真理値表のテーブルデータを、図38に示す。この場合の出力S’とCout は、図39に示す式で表される。
【0143】
この図39の全減算器の場合の式を、図35の全加算器のときの式と比べると、Bout の式の右辺のXが、反転されたXに変換されただけであることが分かる。
【0144】
次に、第2のルックアップテーブル842について考えるに、この場合には、この第2のルックアップテーブル842は、フィードバック有りの回路構成となる。
【0145】
この場合に、第2のルックアップテーブル842に書き込まれる入力(cnt,X,S’)対出力(S)の真理値表のテーブルデータを図40に示す。すなわち、除算演算では、フィードバック信号cntの値により出力がS変わる。
【0146】
フィードバック信号cntが「0」の場合は、全減算器841の演算結果S’を出力Sにそのまま出力する。一方、フィードバック信号cntが「1」の場合は、S’の値に関わらず、Xの値をSにそのまま伝える。
【0147】
以上のようにして、除算の演算の場合には、図38と図40の真理値表のテーブルデータが、それぞれ第1および第2のルックアップテーブル841および842に書き込まれる。
【0148】
こうして、第2の実施の形態の場合には、論理セル84に第1のルックアップテーブル841と第2のルックアップテーブル842とを図32に示すような結線により形成することにより、先行ベース回路を形成し、前記第1および第2のルックアップテーブル841、842のテーブルデータを書き換えることにより、加・減・乗算の演算を行なう処理回路の場合と、除算の演算を行なう処理回路の場合とを、それぞれ再構成することができる。テーブルデータの書換のみで、それぞれの演算処理回路を実現できるので、再構成時間を短縮化することができる。
【0149】
[第4の実施の形態]
以上の実施の形態は、図7や図23に示した先行ベース回路が、プログラマブル論理回路104に形成されて、プログラマブル論理回路104が、加減乗除の演算回路に、順次に切り換え構成される場合として説明したが、プログラマブル論理回路が回路規模が大きい場合には、図7や図23に示した先行ベース回路の複数個を、プログラマブル論理回路上に形成しておくことができる。
【0150】
そして、形成した各先行ベース回路を、加減乗除のいずれの演算回路として用いるか回路情報により設定すると共に、それらの複数個の先行ベース回路同士の接続を、回路情報により設定することにより、種々の処理回路を、先行ベース回路の部分を書き換えることなく、短時間に順次に再構成することができる。
【0151】
この第4の実施の形態は、上述の点を考慮したもので、この第4の実施の形態では、前述したような先行ベース回路の複数個を、先行ベース回路とすることにほぼ等しい。そして、この先行ベース回路を基に、わずかな回路再構成によって複数の演算処理回路を再構成することができる。
【0152】
この第4の実施の形態では、演算処理に先立ち、図41に示す先行ベース回路を、プログラマブル論理回路に構成する。
【0153】
図41の例の先行ベース回路は、前述の実施の形態の場合と同様に、8ビットデータを処理するよう構成されている。図41に示すように、この第4の実施の形態の先行ベース回路としては、上述の第1〜第3の実施の形態で説明したような演算セルを8×8セル使った12個のセルアレイ2000、2001、2002、2003、2004、2005、2006、2007、2008、2009、2010、2011と、入力レジスタ300、301、302、303、304、305、306、307、308、309、310、311および330、331、332と、出力回路410、411、412、413、414、415、416、417、418、419、420、421と、出力レジスタ430、431、432、433、434、435、436、437、438、439、440、441と、部分積の初期値を設定する回路500、501、502、503、504、505、506、507、508、509、510、511とから構成されている。
【0154】
入力レジスタ300、301、302、303および入力レジスタ330、331、332は、それぞれ3段のシフトレジスタで構成されている。セルアレイ2000、2001、2002、2003には、3段の入力レジスタ300、301、302、303の出力がそれぞれ入力されている。
【0155】
また、1段の入力レジスタ304、305、306、307、308、308、309、310、311の出力は、セルアレイ2004、2005、2006、2007、2008、2009、2010、2011の入力に接続されている。
【0156】
また、入力レジスタ330は、セルアレイ2000、2001、2002、2003のそれぞれの他方の入力に共通に接続され、入力レジスタ331はセルアレイ2004、2005、2006、2007のそれぞれの他方の入力に共通に接続され、また、入力レジスタ332はセルアレイ2008、2009、2010、222のそれぞれの他方の入力に共通に接続されている。
【0157】
セルアレイ2000〜2011の出力回路410〜421は、出力レジスタ430〜441の入力に接続されている。
【0158】
部分積の初期値を設定する回路500〜511は、出力レジスタ430〜441の出力をそれぞれ入力するよう配線されており、回路の部分的再構成によって切断または外部設定の選択ができる。
【0159】
(演算処理例1)
図41の先行ベース回路を用いて、わずかな回路再構成のみによって行う演算処理の第1の例として、図46に示す3行3列の式(2)の行列演算を行う場合について説明する。この行列演算は、例えばカラー画像をRGBからYUV色空間に変換する場合などに利用される。
【0160】
この行列演算処理は、前述の第1、第2あるいは第3の実施の形態のいずれかにおける先行ベース回路についての、乗算回路および加算回路への設定(回路情報による部分的再構成)を、図42の先行ベース回路の各セルアレイおよびその周辺の入出力部の再構成を用いることで実現できる。以下の説明においては、第1の実施の形態に基づいた場合として説明する。
【0161】
すなわち、第1の例では、図42の先行ベース回路の各セルアレイおよびその周辺の入出力部を、前述の第1の実施の形態の先行ベース回路を、前述の第1の実施の形態に基づく乗算機能および加算機能に切り替えて用いる。
【0162】
図41の先行ベース回路は、図42に示すように、部分再構成される。すなわち、セルアレイ2000、2001、2002は、乗算器として構成するように、部分積初期値設定回路500、501、502に、
「0000000000000000」
を設定し、キャリー初期値回路(図示せず)に、
「00000000」
を設定する。
【0163】
入力レジスタ300、301、302は、巡回型シフトレジスタとして部分再構成する。また、出力レジスタ430、431、432の出力は、部分積初期値設定回路500、501、502に、それぞれ入力するよう再構成する。
【0164】
図46の行列演算式(2)の係数行列の各項は、あらかじめ、レジスタ300にa11、a12、a13の値が、レジスタ301にa21、a22、a23の値が、レジスタ301にa31、a32、a33の値が、それぞれ格納される。
【0165】
入力データX1、X2、X3は、それぞれ、レジスタ330に一時的に格納される。この時点で、乗算器セルアレイ2000の出力にa11×X1、乗算器2001の出力にa21×X1、乗算器2002の出力にa31×X1、の演算結果がそれぞれ出力される。
【0166】
次にクロックを動作させて、レジスタ内容をシフトする。すなわち、乗算器セルアレイ2000にはa12、セルアレイ2001にはa22、セルアレイ2002にはa32、が入力される。一方、レジスタ330には、X2の内容がシフト動作により出力されて、セルアレイ2000、2001、2002に入力される。
【0167】
出力レジスタ430、431、432には前回の演算結果が保持されており、部分積初期値設定回路500、501、502に入力されているので、今回の乗算結果と加算される。すなわち各セルアレイ2000、2001、2002の出力は、
(a11×X1+a12×X2)、
(a21×X1+a22×X2)、
(a31×X1+a32×X2)
となる。
【0168】
同様にして、次のクロックで、セルアレイ2000にはa13、セルアレイ2001にはa23、セルアレイ2002にはa33、がそれぞれ入力され、一方、レジスタ330にはX3の内容がシフト動作により出力されて、セルアレイ2000、2001、2002に入力される。
【0169】
部分積初期値設定回路500、501、502には前回の演算結果が入力されるので、今回の乗算結果と加算されて、
(a11×X1+a12×X2+a13×X3)、
(a21×X1+a22×X2+a23×X3)、
(a31×X1+a32×X2+a33×X3)
が出力され、式(2)の行列演算が完了する。
【0170】
(演算処理例2)
次に、図41の先行ベース回路を用いて、わずかな回路再構成のみによって行う演算処理の第2の例として、前述の第1の例である行列演算から、図47の式(3)および図48の式(4)に示す画像フィルタの一種であるガウシアン(Gaussian)フィルタ演算を行う場合について説明する。ガウシアンフィルタは、画像のノイズ除去の目的で、画像処理分野で多用されるローパスフィルタの一種である。
【0171】
この第2の例の演算処理は、前述した第1、第2あるいは第3の実施の形態のいずれかにおける先行ベース回路についての、乗算回路および加算回路への設定(回路情報による部分的再構成)を用いることで実現できる。以下の説明においては、第1の実施の形態に基づいた場合として説明する。
【0172】
すなわち、第2の例では、図42の先行ベース回路の各セルアレイおよびその周辺の入出力部を、前述の第1の実施の形態の先行ベース回路を、前述の第1の実施の形態に基づく乗算機能および加算機能に切り替えて用いる。
【0173】
この第2の例では、第1の例で再構成した先行ベース回路に、さらに、図43のように次の部分を再構成する。すなわち、出力レジスタ430の出力は、部分積初期設定回路505にも入力するよう再構成し、出力レジスタ431の出力は、入力レジスタ305にも入力されるよう再構成する。また、出力レジスタ432の出力は、部分積初期設定回路507にも入力するよう再構成し、出力レジスタ433の出力は、入力レジスタ307にも入力されるよう再構成する。さらに、出力レジスタ435の出力は部分積初期設定回路510へ、出力レジスタ437の出力は入力レジスタ310へ、それぞれ入力されるよう再構成する。
【0174】
これらの再構成は、あらかじめ先行ベース回路で設けておいた配線に対して所望の接続になるように、デマルチプレクサ等の回路を再設定する構成データを部分的に書き換えることで実現している。
【0175】
さらに、入力レジスタ300、301、302、303は、通常のシフトレジスタに部分再構成を行い、入力レジスタ330は巡回型シフトレジスタへ、入力レジスタ331、332は保持のみを行うレジスタに、再構成する。
【0176】
入力レジスタ330には、データとして、「00000001」、「00000010」、「00000100」を固定値としてあらかじめ設定し、クロック動作によって巡回させながら、セルアレイ2000、2001、2002、2003に共通に入力させる。
【0177】
入力レジスタ331、332には固定値として、「00000001」が保持されている。ここでは、レジスタに固定値を保持する例を示したが、レジスタではなく、ゲートを用いた論理値出力回路で再構成してもよい。
【0178】
以上のように再構成した回路を用いてガウシアンフィルタ処理を行う動作を説明する。
【0179】
画像データは、入力レジスタ300〜303に保持される。順序は、入力レジスタ300に、Px−1,y−1 ,Px−1,y ,Px,y の順で保持され、入力レジスタ301に、Px−1,y+1 ,Px,y−1 ,0の順で保持され、入力レジスタ302に、Px+1,y−1 ,Px,y+1 ,0の順で保持され、入力レジスタ303に、Px+1,y+1 ,Px+1,y ,0の順で保持される。
【0180】
まず最初に、入力レジスタ330の出力が「00000001」であるので、セルアレイ2000、2001、2002、2003の出力には、入力レジスタ300、301、302,303の値がそのまま出力される。この値は部分積初期設定回路500、501、502、503にそれぞれ入力される。
【0181】
次のクロック動作で、入力レジスタ330の出力は「00000010」となるため、セルアレイ2000、2001、2002、2003の出力は、入力レジスタ300、301、302、303の出力に「2」を乗じた値となり、さらに、部分積初期設定回路500、501、502、503に入力されていた、前回のクロック動作での演算結果と加算されて、出力レジスタ430、431、432、433に出力される。
【0182】
同様にして、次のクロックでは入力レジスタ330の出力が「00000100」となるため、セルアレイ2000、2001、2002、2003の出力は、入力レジスタ300、301、302、303の出力に「4」を乗じた値となって、前回クロックでの演算結果と加算されて、出力レジスタ430、431、432、433に出力される。
【0183】
このようにして、3回のクロック動作で、
出力レジスタ430には、4×Px,y +2×Px−1,y +Px−1,y−1 、
出力レジスタ431には、2×Px,y−1 +Px−1,y+1 、
出力レジスタ432には、2×Px,y+1 +Px+1,y−1 、
出力レジスタ433には、2×Px+1,y +Px+1,y+1 、
が出力される。
【0184】
次に、入力レジスタ331、332は「00000001」なので、セルアレイ2005、2007、2010は加算器として動作するため、前記3つのセルアレイ2005、2007、2010によって、出力レジスタ430、431、432、433の総和が演算処理される。
【0185】
最後の出力レジスタ440の下位4ビットを無視して外部にデータ出力することで、1/16演算を行ったことと同様の処理になり、ガウシアンフィルタ処理が完了する。
【0186】
(演算処理例3)
次に、図41の先行ベース回路を用いて、わずかな回路再構成のみによって行う演算処理の第3の例として、第2の例であるガウシアンフィルタ演算から、図49の式(5)に示す画像フィルタの一種であるラプラシアン(Laplacian)フィルタ演算を行う場合について説明する。ラプラシアンフィルタは、画像の輪郭を検出する目的で、画像処理分野で多用されるハイパスフィルタの一種である。
【0187】
このラプラシアンフィルタ処理は、前述の第1、第2あるいは第3の実施の形態のいずれかにおける先行ベース回路についての乗算回路および加算回路および減算回路への設定(回路情報による部分的再構成)を、図42の先行ベース回路の各セルアレイおよびその周辺の入出力部の再構成を用いることで実現できる。以下の説明においては、第1の実施の形態に基づいた場合として説明する。
【0188】
すなわち、第3の例では、画像フィルタの一種であるLaplacianフィルタ処理を行うために、前述の第1の実施の形態における先行ベース回路を、前述の第1の実施の形態に基づく乗算機能および加算機能および減算機能に切り替えて用いる。
【0189】
この第3の例では、第2の例で再構成した先行ベース回路に、さらに、図44に示すように部分的に再構成する。
【0190】
すなわち、出力レジスタ430の出力は部分積初期設定回路505に入力するように再構成し、出力レジスタ431の出力は入力レジスタ305に入力されるように再構成する。さらに、出力レジスタ435の出力は入力レジスタ309へ入力されるように再構成する。この再構成は、あらかじめ先行ベース回路で設けておいた配線に対して所望の接続になるように、デマルチプレクサ等の回路を再設定する回路構成データを部分的に書き換えることで実現している。
【0191】
さらに、入力レジスタ300、301は通常のシフトレジスタに部分再構成を行う。また、セルアレイ2009で減算を行うように、入力レジスタ309の出力は制御線(図示せず)を制御して、入力信号の反転信号が出力されるように設定し、キャリー初期値設定回路(図示せず)には「00000001」を設定する。
【0192】
入力レジスタ330には、データとして、「00000001」を固定値としてあらかじめ設定し、セルアレイ2000、2001に共通に入力される。
【0193】
入力レジスタ331、332には、固定値として、「00000001」が保持されている。ここではレジスタに固定値を保持する例を示したが、レジスタではなく、ゲートを用いた論理値出力回路で再構成してもよい。
【0194】
以上のように再構成した回路を用いてラプラシアンフィルタ処理を行う動作を説明する。
【0195】
画像データは、入力レジスタ300にPx−1,y 、入力レジスタ301にPx,y+1 が保持され、部分積初期設定回路500にPx,y−1 、部分積初期設定回路501にPx+1,y が保持される。さらに、部分積初期設定回路509にPx,y を2ビット上位にシフトしたものを保持する。
【0196】
まず、最初に入力レジスタ330の出力が「00000001」であるので、セルアレイ2000の出力には、入力レジスタ300と部分積初期値設定回路500の値を加算した結果(Px−1,y +Px,y−1 )が出力され、それが、部分積初期値設定回路505に入力される。同様に、セルアレイ2001の出力には、入力レジスタ301と部分積初期値設定回路501の値を加算した結果(Px,y+1 +Px+1,y )が出力され、それが入力レジスタ305に入力される。
【0197】
次に、入力レジスタ331には「00000001」が設定されているので、セルアレイ2005は加算器として働き、セルアレイ2005の出力には、部分積初期値設定回路505と入力レジスタ305の値が加算された結果(Px−1,y +Px,y−1 +Px,y+1 +Px+1,y )が出力される。
【0198】
次に、セルアレイ2009は減算器として働き、さらに、部分積初期値設定回路509には、Px,y を2ビット上位にシフトした値が設定されているので、セルアレイ2009からは、{4×Px,y −(Px−1,y +Px,y−1 +Px,y+1 +Px+1,y )}の演算結果が出力され、ラプラシアンフィルタ処理が完了する。
【0199】
(演算処理例4)
次に、図41の先行ベース回路を用いて、わずかな回路再構成のみによって行う演算処理の第4の例として、上述の第3の例であるラプラシアンフィルタ演算から、画像の量子化等に用いられる除算処理を行う場合について説明する。この処理は、図42の先行ベース回路の各セルアレイおよびその周辺の入出力部の設定(回路情報による部分再構成)に、前述の第2あるいは第3の実施の形態の先行ベース回路についての除算回路への設定を用いることで実現できる。
【0200】
JPEG画像圧縮アルゴリズムでは、原画像Pu,vを離散コサイン変換(DCT)してDCT係数Su,v を求め、量子化テーブルQu,v によって量子化されたDCT係数を得、ハフマン符号化方式等によって符号化して圧縮画像を生成する。
【0201】
量子化処理部分は、例えば8×8画素の画像ごとに、図50の式(6)に示すような量子化テーブルQu,v を用いるもので、DCT係数の各要素に対応して、Qu,v の値で除算を行う。
【0202】
この第4の例では、第3の例で再構成した先行ベース回路に、さらに、図45に示すように、部分的に再構成する。すなわち、セルアレイ2000、2004、2008が除算器として動作するように、制御線(図示せず)を設定する。入力レジスタ300、330、331、332は、通常のシフトレジスタに部分再構成を行う。
【0203】
入力レジスタ330にはデータとして、「00000001」を固定値としてあらかじめ設定し、セルアレイ2000、2001に共通に入力する。
【0204】
以上のように再構成した回路を用いて量子化処理を行う動作を説明する。なお、説明は8×8画素単位で行うものとする。
【0205】
DCT係数に変換された画像データは、入力レジスタ300にS0,0 、入力レジスタ304にS1,0 、入力レジスタ308にS2,0 、が保持され、入力レジスタ330にQ0,0 、入力レジスタ331にQ1,0 、入力レジスタ332にQ2,0 、が保持される。
【0206】
セルアレイ2000、2004、2008は除算器として構成されているので、出力レジスタ430、434、438には、それぞれ量子化されたDCT係数である、r0,0 、r1,0 、r2,0 、が同時に出力される。
【0207】
次に、入力レジスタ300にS0,1 、入力レジスタ304にS1,1 、入力レジスタ308にS2,1 、が保持され、入力レジスタ330にQ0,1 、入力レジスタ331にQ1,1 、入力レジスタ332にQ2,1 、が保持され、同様に除算が行われて、出力レジスタ430、434、438には、それぞれ量子化されたDCT係数である、r0,1 、r1,1 、r2,1 、が同時に出力される。
【0208】
このようにして、r0,0 〜r0,7 、r1,0 〜r1,7 、r2,0 〜r2,7 が並列に時系列的に出力される。
【0209】
さらに、同じようにして入力レジスタ300にS3,0 〜S3,7 、入力レジスタ304にS4,0 〜S4,7 、入力レジスタ308にS5,0 〜S5,7 、入力レジスタ330にQ3,0 〜Q3,7 、入力レジスタ331にQ4,0 〜Q4,7 、入力レジスタ332にQ5,0 〜Q5,7 、を設定して、出力レジスタ430、434、438にはそれぞれ量子化されたDCT係数、r3,0 〜r3,7 、r4,0 〜r4,7 、r5,0 〜r5,7 が同時に出力される。r6,0 〜r6,7 、r7,0 〜r7,7 、についても同様の処理を行い、8×8画素ブロックの量子化処理が完了する。
【0210】
【発明の効果】
以上説明したように、この発明によれば、従来のマルチコンテキスト技術のように余分な回路領域を必要とせずに、また、従来のスケルトン回路技術のように再構成される回路に明白な共通部分を必要とせずに、より多様な回路構成に対して先行ベース回路を提供することで、回路の再構成時間を短縮し、その結果、回路再構成時間を含めた総処理時間で比べても、ソフトウエア処理に比べて処理時間の短いハードウエア処理を実現できる。
【0211】
その結果、キャッシュロジック技術によるリコンフュギュラブルコンピューティング技術を用いた、高速で小型化された情報処理システムを実現することができる。
【図面の簡単な説明】
【図1】この発明によるプログラマブル論理回路の再構成方法を説明するための図である。
【図2】この発明によるプログラマブル論理回路の再構成方法に用いられる回路情報の説明のための図である。
【図3】この発明による情報処理システムの実施の形態のブロック図である。
【図4】プログラマブル論理回路の構成例を説明するための図である。
【図5】プログラマブル論理回路の構成例を説明するための図である。
【図6】この発明による情報処理システムの実施の形態における処理の流れを示すフローチャートである。
【図7】この発明によるプログラマブル論理回路の再構成方法に用いられる先行ベース回路の一例を示す図である。
【図8】図7の先行ベース回路の一部の回路構成例を示す図である。
【図9】図7の先行ベース回路の一部の他の回路構成例を示す図である。
【図10】図7の先行ベース回路の一部の回路構成例を示す図である。
【図11】図7の先行ベース回路の演算回路部を中心とした具体構成例を説明する図である。
【図12】図7の先行ベース回路の論理セルの構成例を示す図である。
【図13】図7の先行ベース回路に用いるハーフアダーの構成を説明するための図である。
【図14】図7の先行ベース回路のCLA付きアダーの構成例を示す図である。
【図15】第1の実施の形態における乗算処理を説明するための図である。
【図16】第1の実施の形態において、先行ベース回路を部分再構成して乗算演算回路を形成するための回路情報を説明するための図である。
【図17】第1の実施の形態において、先行ベース回路の論理セルを全加算器とすることを説明するための図である。
【図18】第1の実施の形態において、先行ベース回路を部分再構成して加算器として動作させたときの構成例を説明する図である。
【図19】第1の実施の形態において、先行ベース回路を部分再構成して加算回路を形成するための回路情報を説明するための図である。
【図20】第1の実施の形態において、先行ベース回路を部分再構成して加算回路を形成するための回路情報の他の例を説明するための図である。
【図21】第1の実施の形態において、先行ベース回路を部分再構成して減算回路を形成するための回路情報の他の例を説明するための図である。
【図22】第1の実施の形態において、先行ベース回路を部分再構成して減算回路を形成するための回路情報の他の例を説明するための図である。
【図23】この発明の第2の実施の形態における先行ベース回路の構成例を示す図である。
【図24】図23の先行ベース回路の演算回路部を中心とした具体構成例を説明する図である。
【図25】図23の先行ベース回路の論理セルの構成例を示す図である。
【図26】除算演算処理を説明するための図である。
【図27】2進法による除算演算処理を説明するための図である。
【図28】第2の実施の形態における除算処理に対応する演算セルの構成を説明する図である。
【図29】第2の実施の形態における除算処理の説明のために用いる図である。
【図30】第2の実施の形態における除算処理に対応する演算回路部の構成例を説明する図である。
【図31】第2の実施の形態において、除算処理回路を構成する際の回路情報を説明するための図である。
【図32】第3の実施の形態における除算処理に対応する論理セルをの構成例を説明する図である。
【図33】第3の実施の形態における加減算処理を説明するための図である。
【図34】第3の実施の形態における加減算処理を説明するための図である。
【図35】第3の実施の形態における加減算処理を説明するための図である。
【図36】第3の実施の形態における加減算処理を説明するための図である。
【図37】第3の実施の形態における除算処理を説明するための図である。
【図38】第3の実施の形態における除算処理を説明するための図である。
【図39】第3の実施の形態における除算処理を説明するための図である。
【図40】第3の実施の形態における除算処理を説明するための図である。
【図41】第4の実施の形態における先行ベース回路の一例を示す図である。
【図42】第4の実施の形態において、行列演算を行うように再構成された先行ベース回路を説明するための図である。
【図43】第4の実施の形態において、ガウシアンフィルタ処理を行うように再構成された先行ベース回路を説明するための図である。
【図44】第4の実施の形態において、ラプラシアンフィルタ処理を行うように再構成された先行ベース回路を説明するための図である。
【図45】第4の実施の形態において、量子化演算処理を行うように再構成された先行ベース回路を説明するための図である。
【図46】行列演算処理を説明するための図である。
【図47】ガウシアンフィルタ処理を説明するための図である。
【図48】ガウシアンフィルタ処理を説明するための図である。
【図49】ラプラシアンフィルタ処理を説明するための図である。
【図50】量子化演算処理を説明するための図である。
【図51】従来例としてのマルチコンテキスト技術を説明するための図である。
【図52】従来例としてのスケルトン回路技術を説明するための図である。
【符号の説明】
1 共通回路部分(スケルトン回路に相当)
2 排他的全共通部分
3 排他的一部重なり部分
4 排他的でない非共通部分
5 先行ベース回路の回路情報
6A〜6C 先行ベース回路との差分からなる回路情報
101 アプリケーションプログラム
102 CPU
103 ハードウエア処理部
104 プログラマブル論理回路
200 回路情報の記憶部
30 X入力部
40 Y入力部
50 Cin(桁上げ出力の初期値)入力部
60 Pin(部分和出力の初期値)入力部
70 出力部
80 演算回路部
81、82、84 論理セル
90 CLA付きアダー
401 除算器最終段回路
402 マルチプレクサ
403 制御線
841、842 ルックアップテーブル
2000〜2011 演算セルアレイ
300〜311 入力レジスタ
330〜332 入力レジスタ
410〜421 演算結果レジスタ
430〜441 出力レジスタ
500〜511 部分積初期値設定回路

Claims (20)

  1. アプリケーションプログラムによる処理の少なくとも一部分を、回路情報を順次に読み込むことによりプログラマブル論理回路に構成する複数個の回路で処理する情報処理システムにおいて、
    前記複数個の回路の全てに共通するものとして前記プログラマブル論理回路上に構成可能な共通回路部分と、前記複数個の回路で互いに共通せず、かつ、前記プログラマブル論理回路上で回路構成領域を共有しない非排他的独立回路部分とからなる先行ベース回路を、予め、前記プログラマブル論理回路に構成しておき、
    前記先行ベース回路の回路情報との差分として、前記複数の回路の回路情報のそれぞれを形成し、
    前記形成された複数の回路の回路情報のうちの、前記アプリケーションプログラムにより指定された回路情報により、前記プログラマブル論理回路上において部分的に回路を再構成することにより、前記処理に必要な回路を構成するようにする情報処理システム。
  2. プログラマブル論理回路に順次に構成する複数個の回路の回路情報の形成方法であって、
    前記複数個の回路の全てに共通するものとして前記プログラマブル論理回路上に構成可能な共通回路部分と、前記複数個の回路で互いに共通せず、かつ、前記プログラマブル論理回路上で回路構成領域を共有しない非排他的独立回路部分とからなり、前記プログラマブル論理回路に、予め構成するようにするための先行ベース回路の回路情報と、
    前記先行ベース回路の回路情報との差分としてそれぞれ構成される、前記複数の回路のそれぞれの回路を構成するための複数個の回路情報と、
    により、前記複数個の回路の回路情報を形成することを特徴とするプログラマブル論理回路の回路情報形成方法。
  3. 前記先行ベース回路の一部はルックアップテーブルにより回路が構成され、
    前記複数個の回路の回路情報は、前記ルックアップテーブルのテーブルデータを含む
    ことを特徴とする請求項2に記載の回路情報形成方法。
  4. 前記先行ベース回路は、制御線を備え、
    前記複数個の回路の回路情報は、この制御線の信号を切り換える情報を含む
    ことを特徴とする請求項2に記載の回路情報形成方法。
  5. 前記先行ベース回路が形成されているプログラマブル論理回路の部分的再構成により実現される機能回路が、四則演算器のうちの、少なくとも乗算器と、加算器と、減算器である
    ことを特徴とする請求項1に記載の情報処理システム。
  6. 請求項2に記載の回路情報形成方法において、
    前記複数個の回路は、乗算器と、加算器と、減算器である
    ことを特徴とするプログラマブル論理回路の回路情報形成方法。
  7. 請求項3に記載の回路情報形成方法において、
    前記複数個の回路は、乗算器と、加算器と、減算器と、除算器であり、前記ルックアップテーブルのテーブルデータの内容が、前記乗算器、加算器および減算器の場合と、除算器の場合とで変更される
    ことを特徴とするプログラマブル論理回路の回路情報形成方法。
  8. 請求項4に記載の回路情報形成方法において、
    前記複数個の回路は、乗算器と、加算器と、減算器と、除算器であり、前記制御線の信号が、前記乗算器、加算器および減算器の場合と、除算器の場合とで切り換えられる
    ことを特徴とするプログラマブル論理回路の回路情報形成方法。
  9. 請求項6に記載の回路情報形成方法において、
    前記先行ベース回路は、
    4つの入力部と、
    一つの出力部と、
    少なくとも全加算器と論理積ゲートで構成される論理セルをマトリクス状に配置した演算回路部と、
    前記演算回路部と前記出力部との間に設けられる桁上げ処理回路部と、
    で構成され、
    前記複数個の回路の回路情報で部分的に再構成される部分は、少なくとも前記4つの入力部へのデータ入力経路である
    ことを特徴とするプログラマブル論理回路の回路情報形成方法。
  10. 請求項7に記載の回路情報形成方法において、
    前記先行ベース回路は、
    4つの入力部と、
    一つの出力部と、
    少なくとも2個のルックアップテーブルと論理積ゲートで構成される論理セルをマトリクス状に配置した演算回路部と、
    前記演算回路部と前記出力部との間に設けられる桁上げ処理回路部およびフィードバック回路部と、
    で構成され、
    前記複数個の回路の回路情報で部分的に再構成される部分は、少なくとも前記4つの入力部へのデータ入力経路と、前記2個のルックアップテーブルに記憶されるデータである、
    ことを特徴とするプログラマブル論理回路の回路情報形成方法。
  11. 請求項8に記載の回路情報形成方法において、
    前記先行ベース回路は、
    4つの入力部と、
    一つの出力部と、
    演算モードを切り換える制御線と、
    少なくとも全加算器と、論理積ゲートと、前記制御線からの信号で内部接続が切り換えられるマルチプレクサとで構成される論理セルをマトリクス状に配置した演算回路部と、
    前記演算回路部と前記出力部との間に設けられる桁上げ処理回路部およびフィードバック回路部と、
    で構成され、
    前記複数個の回路の回路情報で部分的に再構成される部分は、少なくとも前記4つの入力部へのデータ入力経路と、前記制御線の論理値の値である、
    ことを特徴とするプログラマブル論理回路の回路情報形成方法。
  12. プログラマブル論理回路に複数個の回路を順次に構成する方法であって、
    前記複数個の回路の全てに共通するものとして前記プログラマブル論理回路上に構成可能な共通回路部分と、前記複数個の回路で互いに共通せず、かつ、前記プログラマブル論理回路上で回路構成領域を共有しない非排他的独立回路部分とからなる先行ベース回路を、前記複数個の回路の再構成に先立ち前記プログラマブル論理回路に予め構成する第1の工程と、
    前記先行ベース回路の回路情報との差分としてそれぞれ構成される、前記複数の回路のそれぞれの回路情報により、前記先行ベース回路が形成されている前記プログラマブル論理回路を部分的再構成して、前記複数の回路のそれぞれの回路を順次に構成する第2の工程と、
    を備えることを特徴とするプログラマブル論理回路の再構成方法。
  13. 前記先行ベース回路の一部はルックアップテーブルにより回路が構成され、
    前記複数個の回路の回路情報は、前記ルックアップテーブルのテーブルデータを含む
    ことを特徴とする請求項12に記載のプログラマブル論理回路の再構成方法。
  14. 前記先行ベース回路は、制御線を備え、
    前記複数個の回路の回路情報は、この制御線の信号を切り換える情報を含む
    ことを特徴とする請求項12に記載のプログラマブル論理回路の再構成方法。
  15. 前記先行ベース回路が形成されているプログラマブル論理回路の部分的再構成により実現される前記複数個の回路が、乗算器と、加算器と、減算器である
    ことを特徴とする請求項12に記載のプログラマブル論理回路の再構成方法。
  16. 請求項13に記載のプログラマブル論理回路の再構成方法において、
    前記先行ベース回路が形成されているプログラマブル論理回路の部分的再構成により実現される前記複数個の回路が、乗算器と、加算器と、減算器と、除算器であり、
    前記第2の工程において、前記ルックアップテーブルのテーブルデータの内容が、前記乗算器、加算器および減算器の場合と、除算器の場合とで変更される
    ことを特徴とするプログラマブル論理回路の再構成方法。
  17. 請求項14に記載のプログラマブル論理回路の再構成方法において、
    前記複数個の回路は、乗算器と、加算器と、減算器と、除算器であり、
    前記第2の工程において、前記制御線の信号が、前記乗算器、加算器および減算器の場合と、除算器の場合とで切り換えられる
    ことを特徴とするプログラマブル論理回路の再構成方法。
  18. 請求項15に記載のプログラマブル論理回路の再構成方法において、
    前記先行ベース回路は、
    4つの入力部と、
    一つの出力部と、
    少なくとも全加算器と論理積ゲートで構成される論理セルをマトリクス状に配置した演算回路部と、
    前記演算回路部と前記出力部との間に設けられる桁上げ処理回路部と、
    で構成され、
    前記第2の工程において前記複数個の回路の回路情報で部分的に再構成される部分は、少なくとも前記4つの入力部へのデータ入力経路である
    ことを特徴とするプログラマブル論理回路の再構成方法。
  19. 請求項16に記載のプログラマブル論理回路の再構成方法において、
    前記先行ベース回路は、
    4つの入力部と、
    一つの出力部と、
    少なくとも2個のルックアップテーブルと論理積ゲートで構成される論理セルをマトリクス状に配置した演算回路部と、
    前記演算回路部と前記出力部との間に設けられる桁上げ処理回路部およびフィードバック回路部と、
    で構成され、
    前記第2の工程において前記複数個の回路の回路情報で部分的に再構成される部分は、少なくとも前記4つの入力部へのデータ入力経路と、前記2個のルックアップテーブルに記憶されるデータである、
    ことを特徴とするプログラマブル論理回路の再構成方法。
  20. 請求項17に記載のプログラマブル論理回路の再構成方法において、
    前記先行ベース回路は、
    4つの入力部と、
    一つの出力部と、
    演算モードを切り換える制御線と、
    少なくとも全加算器と、論理積ゲートと、前記制御線からの信号で内部接続が切り換えられるマルチプレクサとで構成される論理セルをマトリクス状に配置した演算回路部と、
    前記演算回路部と前記出力部との間に設けられる桁上げ処理回路部およびフィードバック回路部と、
    で構成され、
    前記第2の工程において前記複数個の回路の回路情報で部分的に再構成される部分は、少なくとも前記4つの入力部へのデータ入力経路と、前記制御線の論理値の値である、
    ことを特徴とするプログラマブル論理回路の再構成方法。
JP22508799A 1999-08-09 1999-08-09 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法 Expired - Fee Related JP3558119B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22508799A JP3558119B2 (ja) 1999-08-09 1999-08-09 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22508799A JP3558119B2 (ja) 1999-08-09 1999-08-09 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法

Publications (2)

Publication Number Publication Date
JP2001051826A JP2001051826A (ja) 2001-02-23
JP3558119B2 true JP3558119B2 (ja) 2004-08-25

Family

ID=16823813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22508799A Expired - Fee Related JP3558119B2 (ja) 1999-08-09 1999-08-09 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法

Country Status (1)

Country Link
JP (1) JP3558119B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116751B2 (en) 2011-02-08 2015-08-25 Canon Kabushiki Kaisha Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5441487B2 (ja) 2009-04-27 2014-03-12 キヤノン株式会社 画像処理装置及びその制御方法
JP2014238617A (ja) * 2013-06-05 2014-12-18 富士通株式会社 データ処理装置、データ処理方法及び情報処理装置
JP2016063490A (ja) 2014-09-19 2016-04-25 株式会社東芝 再構成可能な半導体集積回路および電子機器
JP6750423B2 (ja) * 2016-09-20 2020-09-02 富士ゼロックス株式会社 データ処理装置およびプログラム
JP6705401B2 (ja) 2017-03-13 2020-06-03 富士通株式会社 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP6909128B2 (ja) * 2017-10-30 2021-07-28 日立Astemo株式会社 電子制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116751B2 (en) 2011-02-08 2015-08-25 Canon Kabushiki Kaisha Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor

Also Published As

Publication number Publication date
JP2001051826A (ja) 2001-02-23

Similar Documents

Publication Publication Date Title
US7971172B1 (en) IC that efficiently replicates a function to save logic and routing resources
EP1271474B1 (en) Function block
US20120191967A1 (en) Configurable data processing system and method
US6438569B1 (en) Sums of production datapath
US6154049A (en) Multiplier fabric for use in field programmable gate arrays
US6009451A (en) Method for generating barrel shifter result flags directly from input data
US8463835B1 (en) Circuit for and method of providing a floating-point adder
US8364738B1 (en) Programmable logic device with specialized functional block
Martinez et al. An FPGA-based parallel sorting architecture for the Burrows Wheeler transform
CN114943057A (zh) 基于点积的处理元件
JP3558119B2 (ja) 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法
US8463836B1 (en) Performing mathematical and logical operations in multiple sub-cycles
JP2006518144A (ja) プログラム可能な論理セルのアレイをもつ電子回路
US7818361B1 (en) Method and apparatus for performing two's complement multiplication
US20040252547A1 (en) Concurrent Processing Memory
US7908308B2 (en) Carry-select adder structure and method to generate orthogonal signal levels
US5777916A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the montgomery method
US7765249B1 (en) Use of hybrid interconnect/logic circuits for multiplication
US8041925B2 (en) Switch coupled function blocks with additional direct coupling and internal data passing from input to output to facilitate more switched inputs to second block
US5912904A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
JP2002026721A (ja) 情報処理装置
JP2000503146A (ja) 整数除算回路を有するモジュラ算術演算コプロセッサ
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
JP2001111413A (ja) 情報処理装置
JP5633303B2 (ja) リコンフィグ可能なlsi

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040419

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040511

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080528

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090528

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100528

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100528

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110528

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110528

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120528

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees