JP4893309B2 - 再構成可能な論理回路を有するデータ処理装置 - Google Patents

再構成可能な論理回路を有するデータ処理装置 Download PDF

Info

Publication number
JP4893309B2
JP4893309B2 JP2006542353A JP2006542353A JP4893309B2 JP 4893309 B2 JP4893309 B2 JP 4893309B2 JP 2006542353 A JP2006542353 A JP 2006542353A JP 2006542353 A JP2006542353 A JP 2006542353A JP 4893309 B2 JP4893309 B2 JP 4893309B2
Authority
JP
Japan
Prior art keywords
cycle
information
circuit
mapping
mapping information
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.)
Active
Application number
JP2006542353A
Other languages
English (en)
Other versions
JPWO2006046711A1 (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 JP2006542353A priority Critical patent/JP4893309B2/ja
Publication of JPWO2006046711A1 publication Critical patent/JPWO2006046711A1/ja
Application granted granted Critical
Publication of JP4893309B2 publication Critical patent/JP4893309B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、再構成可能な論理回路を有するデータ処理装置に関するものである。
回路を再構成できるプログラマブルデバイスとして、FPGA(Field Programmable Gate Array)と称されるデバイスが知られている。特開2000−40745号公報には、FPGAに論理回路の異なる部分を実装する技術の1つとして、論理回路を特徴付ける初期ネットリストを多くのページへと区分し、FPGAにこれらのページの1つの回路を実装することが記載されている。これにより、FPGAの物理的容量よりもはるかに大きな回路の実装を可能にしようとしている。特表2003−518666号公報には、デザインネットリストをスタティックマクロの組と、再構成可能なマクロコンテキストの組に分け、再構成可能なコンテキストの各々をコンパイルして初期デバイスコンテキストを配置配線することが記載されている。
FPGAは動的に再構成可能であるとは言っても、プログラミングするのに少なくとも数10サイクルを要し、その間は有意義な仕事を行えない。したがって、上記のハードウェアのセットを再構成する方法は、再構成する都度、500〜1000サイクル以上、その構成を動かし、纏まった処理を行うことを想定している。つまり、再構成の対象となる回路は、「パリティ有りモード用の処理回路」と「パリティ無しモード用の処理回路」のように、モード毎に場合分けされた、単体の構成として、それなりに意義のある機能モジュールである。アプリケーションが、そのような機能モジュールレベルの再構成の可能性を持たない場合は、上記の従来技術を効果的に適用することは難しい。
本発明においては、サイクルベースで再構成可能なハードウェアに、アプリケーションを実行するための回路を実装するための技術を提供する。このハードウェアは、サイクル毎に回路構成を変えることができる。したがって、上記の従来技術を使って500〜1000サイクル単位で機能モジュールレベルの動的再構成を行えるだけでなく、より細かな単位あるいはサイクルでの動的再構成をも行えるようになり、動的再構成の適用可能範囲が広がる。再構成時間を数10サイクルから1サイクルへと量的に変えることにより、再構成利用形態が機能モジュールレベルから動作ステートレベルへと質的に変わる。このため、そのような再構成可能な論理回路を備えたデータ処理装置の制御に適した制御情報および方法を提供する。
本発明の1つの態様は、クロック単位で進むサイクル毎に再構成可能な論理回路と、ハードウェア制御情報を格納したライブラリとを有するデータ処理装置である。ハードウェア制御情報は、アプリケーションを実行するために1クロックで処理が完結する機能のみをそれぞれ実現するための複数のサイクルベース回路を個々に再構成可能な論理回路にマッピングするための複数のサイクルベースマッピング情報と、そのアプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報とを備えている。さらに、このデータ処理装置は、構成選択情報に基づくサイクル毎の要請により、複数のサイクルベースマッピング情報の少なくともいずれかにより論理回路の少なくとも一部を再構成する制御ユニットを有する。
複数のサイクルベースマッピング情報は、サイクル毎の機能を阻害することなくマージできるサイクルベースマッピング情報がマージされた複合サイクルベースマッピング情報を含むものであっても良い。また、複数のサイクルベースマッピング情報は、各ステートの制御ユニットを論理回路にマッピングするための情報をそれぞれ含んでいても良く、その場合は、各ステートの制御ユニットが論理回路に再構成される。
本発明の他の態様の1つは、クロック単位で進むサイクル毎に再構成可能な論理回路と、ハードウェア制御情報を格納したライブラリとを有するデータ処理装置であって、論理回路の少なくとも一部が構成選択情報に基づくサイクル毎の要請により、複数のサイクルベースマッピング情報の少なくともいずれかにより再構成されるものである。複数のサイクルベースマッピング情報が、各ステートの制御ユニットを論理回路にマッピングするための情報をそれぞれ含んでいる場合は、論理回路の少なくとも一部は、論理回路に再構成された各ステートの制御ユニットの要請により再構成される。
本発明のさらに異なる態様の1つは、クロック単位で進むサイクル毎に再構成可能な論理回路を有するデータ処理装置の制御方法であって、ハードウェア制御情報に基づき再構成可能な論理回路の少なくとも一部を再構成する工程を有し、この再構成する工程が、構成選択情報に基づくサイクル毎の要請により、複数のサイクルベースマッピング情報の少なくともいずれかを選択して論理回路の少なくとも一部を再構成することを含む、制御方法である。複数のサイクルベースマッピング情報が、各ステートの制御ユニットを論理回路にマッピングするための情報をそれぞれ含んでいる場合は、再構成する工程は、論理回路に再構成された各ステートの制御ユニットの要請により、論理回路の少なくとも一部を再構成することを含む。
本発明のさらに異なる態様の1つは、再構成可能な論理回路を制御するためのハードウェア制御情報を生成するための生成システムであって、アプリケーションを実行するためにクロック単位で処理が進むサイクル毎の機能であって1クロックで処理が完結する各ステートの機能のみをそれぞれ実現するための複数のサイクルベース回路の回路情報を生成する機能と、ハードウェア制御情報を生成する機能とを有する生成システムである。
本発明のさらに異なる態様の1つは、本発明における再構成可能な論理回路を制御するための情報を生成する方法であって、アプリケーションを実行するためにクロック単位で処理が進むサイクル毎の機能であって1クロックで処理が完結する各ステートの機能のみをそれぞれ実現するための複数のサイクルベース回路の回路情報を生成する工程と、それらサイクルベース回路を個々に再構成可能な論理回路にマッピングするための複数のサイクルベースマッピング情報、および、アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報を含むハードウェア制御情報を生成する工程とを有する。
固定化された回路を生成する場合、サイクル毎の機能を抽出するとしても、そのサイクル毎の機能をサイクル毎に回路として具現化する必要はない。その代わりに、サイクル毎の機能を実現するために、実空間に固定された論理回路を生成する。例えば、サイクル毎の機能を、信号の伝達に従ってサイクルの範囲を超えて組み合わせてパイプライン化された回路を生成する。あるいは、演算器やレジスタなどの論理素子を共用するためにセレクタを配置して、全サイクル分の全機能を包含する1つの統合回路を生成する。そのような回路設計の結果は、通常、RTL(Register Transfer Level)で表現される。さらに、そのRTLを論理合成してネットリストを生成し、配置配線を行なってハードウェア化する。
これに対し、本発明においては、サイクル毎の機能を、サイクル毎に回路化するクロック単位でサイクルが進むので、上記は、クロック毎の機能を、クロック毎に回路化すると言っても良い。あるアプリケーションを実行するためのサイクル毎の機能をそれぞれ実現するためのサイクルベース回路の情報(以降では「CB回路情報」とも称する)がRTLで記述されるのであれば、サイクル毎にRTLが生成されることになる
複数のサイクルベース回路を再構成可能な論理回路にそれぞれマッピングするための複数のサイクルベースマッピング情報(以降では「CBマッピング情報」とも称する)により、サイクルベースの回路(以降では「CB回路」とも称する)をサイクル単位で再構成可能な論理回路に再構成できる。論理合成ツールを用いるのであれば、サイクル毎のRTLを論理合成ツールでサイクル毎にネットリスト化して、配置配線を行ない、CBマッピング情報を生成する。この過程では、パイプライン化するためにFFを挿入したり、演算器やレジスタなどの論理素子の入力を切り換えてそれらを共用するためのセレクタを配置したり、セレクタ制御信号を生成するという作業は基本的には発生しない。
したがって、再構成可能な論理回路にマッピングされるCB回路の構成は、入力切替用のセレクタなどは基本的に含まず、データパスもそのサイクルで必要な分だけを表すシンプルなものとなり、少ない論理素子で実装することが可能となる。また、論理素子の入力を切り換えて論理を選択するためのセレクタ制御信号は不要となり、代わりに、アプリケーションの実行状態により、CBマッピング情報を選択する構成選択情報により論理が選択される。したがって、本発明により、再構成可能な回路領域を、機能モジュールレベルの利用形態から、動作ステートレベルの利用形態に変更することが可能となる。
複数のサイクルベースマッピング情報の中の、サイクル毎の機能を阻害することなくマージできるサイクルベースマッピング情報を抽出し、それらをマージして複合サイクルベースマッピング情報を生成する工程を設けることが望ましい。これは、サイクル間を伝達される信号に沿ってサイクルを超えて回路を組み合わせるということではなく、CBマッピング情報の種類を減らし、アプリケーションを実行するために必要となるCBマッピング情報の情報量を減らすことを目的とするものである。したがって、マッピングするタイミングとして隣接するCBマッピング情報を選択してマージするのではなく、タイミングは離れていてもCB回路の構成に共通点があるものをマージして、あるサイクルの機能には不要であるが、その機能を阻害しない配線を備えた複合CBマッピング情報を生成したり、CBマッピング情報が少ないものをマージして、独立したCB回路を1つの複合CBマッピング情報により生成したりすることが含まれる。
また、ハードウェア制御情報を生成する工程では、サイクル毎の構成選択情報を生成し、サイクルベースマッピング情報にマージすることが可能である。この場合は、CBマッピング情報によりマッピングされるCB回路にサイクル毎の構成選択情報を生成する構成が含まれるので、再構成可能な論理回路にCB回路をマッピング、あるいは再構成することによりアプリケーションを実行できる。
回路情報を生成する工程では、アプリケーションを実行するためのコントロールデータフローダイアグラムに基づき、複数のサイクルベース回路の情報を生成できる。例えば、C言語などの高級言語によりアプリケーションの仕様が与えられたときに、C言語からCB回路情報を生成し、CBマッピング情報を生成することができる。また、回路情報を生成する工程では、アプリケーションを実行するためのRTLをサイクルベースに分解して、複数のサイクルベース回路情報を生成することも可能である。すでにRTLまで設計が進んだRTL資産を用いて、CB回路情報を生成し、CBマッピング情報を生成することができる。
本発明のハードウェア制御情報は、ROMなどの適当な記録媒体に記録して提供することができる。ハードウェア制御情報は、インターネットなどのコンピュータネットワークを用いて、有線により、あるいは無線により伝達することも可能である。そして、再構成可能な論理回路を有するデータ処理装置によりアプリケーションを実行できる。
ハードウェア制御情報により制御されるデータ処理装置の概略構成を示す。 図1と異なるデータ処理装置の概略構成を示す。 サイクルベースで回路を再構成可能なRC領域のハードウェア構成を示す。 エレメントの配置を示す。 エレメントの構成を示す。 演算コアの構成を示す。 演算コアの動作例を示す。 演算コアの他の動作例を示す。 演算コアで実行可能な論理演算の例を示す。 FPGAあるいはASIC用に、C言語の仕様からハードウェア構成を決定する過程を示すフローチャート。 ASICのマスクパターンやFPGAの構成情報を生成する過程をさらに詳しく示すフローチャート。 ハードウェア制御情報の生成システムの概要を示すブロック図。 ハードウェア制御情報を生成する方法を示すフローチャート。 図14(a)はC言語仕様の一例、図14(b)はCDFGの一例を示す。 サイクル毎の機能を抽出した状態を示す。 図16(a)はASICまたはFPGA用の回路例、図16(b)はFSMの例を示す。 図16(a)および(b)の回路のRTL記述を示す。 図18(a)は、サイクル0の回路、図18(b)はそのRTL記述を示す。 図19(a)は、サイクル1の回路、図19(b)はそのRTL記述を示す。 図20(a)は、サイクル2の回路、図20(b)はそのRTL記述を示す。 選択構成情報を示す。 図22(a)は、サイクル1および2マージした回路、図20(b)はそのRTL記述を示す。 選択構成情報を示す。 データ処理装置の制御方法の概要を示す。 ハードウェア制御情報を生成する、異なる方法を示すフローチャート。 ハードウェア制御情報を生成する、さらに異なる方法を示すフローチャート。 サイクル毎に生成されるRTL記述の異なる例を示す。 RTL記述をマージした例を示す。
発明を実施するための形態
図1に示したデータ処理装置1は、回路を動的に再構成可能な論理回路領域(RC領域、リコンフィギャラブル領域)10と、幾つかのアプリケーションを実行するためのハードウェア制御情報20を格納(記録)したライブラリ2のためのメモリ3とを備えている電子デバイス、例えば、LSI、IC、チップあるいはチップセットである。データ処理装置1は、光デバイスあるいは光電子デバイスなどであっても良い。このデータ処理装置1は、さらに、このライブラリ2からハードウェア制御情報20の所望のサイクルベースマッピング情報(CBマッピング情報)21を取得(フェッチあるいはダウンロード)してRC領域10に、あるいはRC領域10の一部の適当な領域にマッピングしてCB回路19を再構成する制御ユニットであるマッピングユニット(MU)11と、ハードウェアを初期化したり、ハードウェア制御情報20の選択情報22をデコードして所望のCBマッピング情報21を選択したりする高速ローディング制御ユニット(RLC)12とを備えている。さらに、データ処理装置1は、アプリケーションプログラム4が記憶されたRAM5と、ワーク用のメモリ6と、割り込み信号を受信する割り込み制御ユニット(IU)7と、データ処理装置1の各ハードウェア資源にクロック信号を供給するクロック発生源8と、外部メモリに対してデータの入出力を制御するデータ入出力インタフェース9とを備えている。
MU11、RLC12およびIU7は、固定回路によりデータ処理装置に実装あるいは実現することも可能である。このデータ処理装置1においては、MU11、RLC12およびIU7としての機能は、RC領域10にCBマッピング情報21により所望の回路をマッピングあるいは再構成することにより実現している。したがって、ライブラリ2には、このデータ処理装置1の基本的なシステムをサポートする回路を構成するためのハードウェア制御情報29も格納されている。
図2に、異なるデータ処理装置の概略構成を示してある。このデータ処理装置1もサイクル毎に再構成可能な論理回路であるRC領域1と、ハードウェア制御情報20を格納したライブラリ2のためのメモリ3とを有するデータ処理装置である。さらに、本図に示したデータ処理装置1では、MU11およびRLC12としての機能を提供する回路を生成するための情報は、ハードウェア制御情報20の個々のCBマッピング情報21に含まれている。したがって、サイクル毎に、あるいはサイクル毎の要請により、CB回路19としてアプリケーションを実行するための回路と共にRC領域10に再構成される。さらに、選択情報22もサイクルベース化されてCBマッピング情報21に含まれている。したがって、RC領域10の全体が、あるアプリケーションを実行するためにサイクルベースで再構成できる領域となる。複数のアプリケーションを同時実行する際は、複数のアプリケーションを実行するために、異なるCB回路19がRC領域10に再構成される。
また、再構成可能な領域10は、サイクルベースで再構成可能であるが、必ずしもサイクルベースで再構成する必要はない。回路を再構成するために要する電力消費などを考えると、サイクルベースで再構成しないで良い回路は、サイクルベースで再構成しないことが望ましいケースもある。さらに、再構成可能な領域10のハードウェア資源が十分にあり、いったん構成したCB回路19が数クロック先でも使用されることが分かっているのであれば、そのCB回路19を存続させておくことも有効である。したがって、アプリケーションを実行するためにRC領域10に構成される回路は、幾つかのCB回路19に分割することが可能であり、その全てあるいは一部がサイクル毎の要請により再構成される。
図3に、サイクルベースで回路を再構成可能なRC領域10の一例を示してある。このRC領域10は、格子状(アレイ状あるいはマトリクス状)に配列され、各々の論理演算を変更可能な複数のエレメントの集合である回路ブロック(rxe_plane)51と、回路ブロック51を接続する配線52とを備えている。CBマッピング情報21は、回路ブロック51の単位でCB回路19をマッピングするように生成することが望ましい。すなわち、あるサイクルの機能を実現するためのCB回路19が複数の回路ブロック51を消費してマッピングされる場合、回路ブロック51の数に対応した複数のCBマッピング情報21によりCB回路19を構成するようにCBマッピング情報21を生成することが望ましい。これにより1つまたは複数の回路ブロック51を再構成することにより次のサイクルの機能を実現するCB回路19が実現できる場合は、マッピングするためのCBマッピング情報21の情報量を少なくすることができる。また、回路ブロック51の単位で、CBマッピング情報21をマージして情報量を少なくすることができる。
図4に、1つの回路ブロック51の構成を示してある。この回路ブロック51には、16個の論理エレメント53が4×4のアレイ構造をなすように配列されている。各々の論理エレメント53は図面の上下左右の4方向に隣接する論理エレメント53と4ビットのレイア1のバス54により接続されている。さらに、上下左右に隣接する論理エレメント53を越して、その外側に位置する論理エレメント53と接続するレイア2のバス55も用意されている。このため、論理エレメント53の間を、よりフレキシブルに接続することができる。さらに、論理エレメント53を3つ飛び越したレイア3のバスを配置することも可能である。
各々の論理エレメント53は、論理演算エレメントとしての機能と、論理エレメント間の接続切り換えを行う配線スイッチとしての機能を備えている。そして、演算する論理と、配線接続の状態を高速で変更または交換する必要があるので、このRC領域10には、RXE(Rapid eXchange Element)53と称される高速で交換動作が可能なエレメントが配置されている。
図5に、RXE53の構成を示してある。RXE53は、4系統の入力61と、4系統の出力62と、4系統の入力61から任意の入力データを選択する入力インタフェース63と、この入力インタフェース63により選択された入力データφiを論理演算してデータを出力する演算コア65と、4系統の入力61と演算コア65の出力データφoとを任意に選択して4系統の出力62へ接続可能な出力インタフェース64とを備えている。演算コア65は、論理演算を変更可能な構成になっており、論理を変更可能な演算エレメントとしての機能を果たす。また、入力インタフェース63は、4系統の入力61から任意の1ビットを選択するための16対1のセレクタ63sが複数配置された構成となっている。出力インタフェース64は、演算コア65からの出力φoと4系統の入力61のルーティングを兼ねた7対1のセレクタ64sが複数配置された構成となっている。
図6に、演算コア(rxe_core)65の構成を示してある。演算コア65は、論理演算を指示する16ビットのファンクションコードφfを入力とし、入力データφiにより出力データφoを選択するセレクタ66を備えている。演算コア65は、さらに、4ビットの入力データφiをデコードして16ビットのセレクタ66の選択信号を生成するデコーダ67と、4系統の入力61のいずれかのデータ、または、出力データφoをラッチするレジスタ68と、レジスタ68にラッチする信号を選択するためのセレクタ69aおよび69bとを備えている。
図7および図8に、演算コア65の動作を示している。演算コア65はモード信号φmによって動作が変わる。図7のモード0では、演算コア65は、4ビットの入力データφiにより1ビットの出力データφoを生成し、その出力データφoをレジスタ68でラッチして出力する。図7のモード1では、演算コア65は、4ビットの入力データφiにより1ビットの出力データφoを生成し、その出力データφoをレジスタ68でラッチせずに出力する。出力データφoは、16ビットのファンクションコードφfと、入力データφiをデコードした結果による。したがって、図9に纏めて示すように、これらのモード0および1においては、ファンクションコードφfを変えることにより、演算コア65を4入力ANDから4入力コンパレータまで、9種類以上の異なる論理演算素子として使用することができる。
さらに、演算コア65は、セレクタ66とファンクションコードφfの組み合わせに論理演算を行っている。このため、従来のFPGAのようにSRAMなどの記憶素子を用いたルックアップテーブル(LUT)に論理をセットする必要がない。したがって、SRAMに入出力を行うサイクルを省略することができ、ファンクションコードφfを演算コア65に出力したタイミングで瞬時に演算コア65で行う演算を交換することができる。このため、この演算コア65は高速交換演算素子と称されており、ファンクションコードφfをサイクルベースで切り換えて供給することにより、サイクルベースで演算機能を変えることができる。入力インタフェース63および出力インタフェース64の機能もサイクルベースで変更することが可能である。したがって、RXE53の機能および接続をサイクル毎に変えることが可能であり、これらのRXE53により構成されるRC領域10にサイクル毎の異なる回路を構成することができる。
図8に示したモード2からモード4においては、1つの演算コア65が、2ビットの入力信号φiに対して1ビットの出力信号φoを出力する2つの演算素子として機能する。すなわち、内蔵された16対1のセレクタ66が、2つの4対1のセレクタとして動作するようにセットされる。これらのモード2から4においては、演算コア65は、図9に示してあるように、ファンクションコードφfを変えることにより、インバータから2入力EXNORまで、7種類以上の異なる論理演算素子として使用することができる。
さらに、図8に示したモード5からモード7においては、演算コア65を、3ビットの入力信号φiに対して1ビットの出力信号φoを出力する演算素子として使用できる。追加ビットの入力を許せば、内蔵された16対1のセレクタ66を、2つの3対1のセレクタとして動作するようにセットできるので、演算コア65を2つの3ビット入力1ビット出力の演算素子としても利用できる。これらのモード5から7においては、演算コア65は、図9に示してあるように、ファンクションコードφfを変えることにより、3入力ANDからフルアダーまで、5種類以上の異なる論理演算素子として使用することができる。
このRC領域10を構成するRXE53は、セレクタ方式で高速で論理を交換することが可能である。RXE53は、さらに、内部に出力データをラッチするレジスタ68を備えており、出力データをスルーで出力することも、F/Fによりクロックに同期した状態で出力することができる。したがって、デジタル回路で良く使用される組み合わせ回路(デコーダ)と、順序回路(ステートマシン)及び演算回路(データパス)を、ハードウェア制御情報20のCBマッピング情報21により効率よく実装し、実行することができる。
この論理を再構成可能なエレメント(RXE)53は、2次元アレイあるいはマトリクスを構成することを考えている。したがって、2次元に格子状に配置するのに適した4系統の入出力を備えている。しかしながら、エレメント間を接続するネットワークが1次元的であれば、2系統あるいは3系統の入出力で対応することができる。さらには、エレメント間を接続するネットワークが3次元的であれば、5系統以上の入出力を用意することが望ましい。さらに、この演算コア(rxe_core)は、高速で交換動作が可能なようにセレクタ方式を採用しているが、ロジックの交換に複数サイクルかかることを許容できるのであればルックアップテーブル(LUT)を備えた演算コアを採用することも可能である。
図10に、ASICあるいはFPGAの設計手法の一例を示してある。この設計方法110は、C言語91などの動作レベル記述からASICあるいはFPGAに実装する回路93を生成する方法であり、近年、設計規模の増大にともない多用されつつある。この設計方法110は、C言語91などの動作レベル記述から動作合成ツールを通してRTL(Register Transfer Level)によるハードウェア記述92を生成する、ビへイビア合成と称される工程111と、論理合成ツールと配置配線ツールとを通してASICあるいはFPGAに実装する回路93を生成する工程112とを有する。RTL92は、VerilogあるいはVHDLなどのハードウェア記述言語による回路機能の表現であり、ASIC向けないしFPGA向けの論理合成ツールと配置配線ツールとにより、所望のASICマスクパターンないしFPGA構成情報に変換する。この設計方法110は、動作合成と呼ばれることもある。適当なハードウェア資源を備えたコンピュータにより、これらの処理を行うソフトウェア(プログラム)が、ASICあるいはFPGAの設計および開発支援用の動作合成ツールとして提供されている。多くの動作合成ツールは、各処理を行うツール(プログラム)の組み合わせにより構成される。
図11に、ASIC/FPGA向けの動作合成ツールの処理をフローチャートにより示している。ASIC/FPGA向けの動作合成ツールは、ステップ71において、C言語などの動作レベル記述91をまず解析して、コントロールデータフローグラフ(CDFG(Control Data Flow Graph))94を生成する。ステップ72において、スケジューリング、演算器割り当て、およびレジスタ割り当てを行い、サイクル毎の機能を実現するためのデータパス31と、制御ステートマシン32とを生成する。
ステップ81において、それらのデータパス31を組み合わせてパイプライン化したり、なるべく少ないハードウェアリソースで実現できるよう演算器やレジスタを共有化したりする。そのために、演算器およびレジスタの入力側に入力セレクタを挿入したり、タイミングの同期を取るためにFFを挿入したりする作業を行う。制御ステートマシン32は、適当なセレクタ制御信号を出力するように構成され、目的のRTL(ハードウェア記述)92が生成される。さらに、ステップ82において、論理合成ツールによりネットリスト95を生成し、その後、ステップ83において、配置配線ツールによりタイミング収束などを検討して、ASICを製造するためのマスクパターンや、FPGAにマッピングするための構成情報96を生成する。
図12に、サイクルベースで回路を再構成可能な論理回路であるRC領域10を備えたデータ処理装置1を制御するためのハードウェア制御情報20の生成するシステム100の概要を示している。この生成システム100は、HDDなどのストレージデバイス105に入力情報106が入力され、その入力情報106からアプリケーションを実行するためのサイクル毎の機能をそれぞれ実現するための複数のサイクルベース回路の回路情報38を生成する機能101と、ハードウェア制御情報20を生成する機能102とを有する。これらの機能101は、それぞれにおいて生成された情報38および20を、これらの機能間の通信により伝送しても良く、ストレージデバイス105に格納した状態で情報を交換しても良い。ハードウェア制御情報20は、複数のサイクルベース回路をRC領域10にそれぞれマッピングするための複数のサイクルベースマッピング情報(CBマッピング情報)21と、アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報22を含む。生成システム100は、さらに、CBマッピング情報21をマージして複合サイクルベースマッピング情報を含むハードウェア制御情報20を生成する機能103も備えている。
この生成システム100の入力情報106は、対象となるアプリケーションそのものの仕様、たとえばアプリケーションプログラムであっても良く、あるいは、そのアプリケーションを実行するために既に生成されたハードウェア情報であっても良い。入力情報106には、C言語プログラム91などによる高級言語ベースの仕様、CDFG94のようなデータフローベースの仕様、RTL92などの回路情報ベースの仕様などが含まれる。
この生成システム100は、データ処理装置1の設計および開発支援用のツールとして提供される。生成システム100は、コンパイラーあるいは他の設計支援ツールと同様に、適当なハードウェア資源を備えたコンピュータに、生成システム100の機能を実現するためのソフトウェア(プログラム)をインストールすることにより実現される。それぞれの機能101〜103は、各処理を行うツール(プログラム)として、CD−ROMなどの適当な記録媒体に記録して、あるいはコンピュータネットワークを介して提供することも可能である。また、生成システム100はコンピュータネットワークにより接続された複数のサーバからなる分散システムにより実現することも可能である。
図13に、サイクルベースで回路を再構成可能なRC領域10にマッピングするのに適した情報を備えたハードウェア制御情報20の生成方法79をフローチャートにより示してある。このハードウェア制御情報20を生成する方法79は、生成システム100において実行可能な生成方法の一例であり、仕様として入力される情報の種類などにより処理の流れは変わる。
図13に示したフローチャートでは、ステップ71において、C言語などの動作レベル記述91をまず解析して、CDFG94を生成する。ステップ72において、スケジューリング、演算器割り当て、レジスタ割り当て、あるいは統合を行い、サイクル毎の機能を実現するためのデータパス(サイクル毎のデータパス)31と、制御ステートマシン(コントロールFSM)32とを生成する。次のステップ73において、サイクル毎のデータパス31をサイクル毎のRTL33で記述し、サイクル毎の機能を果たすサイクルベース回路(CB回路)の回路情報(CB回路情報)を生成する。このステップ73において、制御ステートマシン32の機能は、サイクルベースの構成を選択する選択情報34に変換される。この例では、CB回路情報33と、選択情報34とを含む情報がサイクルベース回路の回路情報38として次のステップに供給される。
ステップ74において、これらのサイクル毎のRTL33を、個々に、論理合成し、配置・配線を行なって、サイクル毎にRC領域10にマッピングするためのCBマッピング情報21と、そのマッピング情報21をサイクルベースで選択する構成選択情報22と含むハードウェア制御情報を生成する。
さらに、ステップ75において、サイクル毎の回路規模を揃えるために、複数のCBマッピング情報21の中の、サイクル毎の機能を阻害することなくマージできる情報をマージし、複合サイクルベースマッピング情報(複合CBマッピング情報)23を生成する。また、複合CBマッピング情報23を含んだCBマッピング情報21を選択するように構成選択情報22もマージする。このようにして、アプリケーションを実行するための回路を構成するCBマッピング情報21と構成選択情報22とを備えたハードウェア制御情報20が生成される。
CBマッピング情報21の複合化は、RTL33の段階で行なうことも可能であり、複合化したサイクル毎のRTLを論理合成および配置配線して複合CBマッピング情報23を生成することも可能である。この複合化する工程は、CBマッピング情報23によりマッピングされる回路規模を同程度、例えば、上述した回路ブロック(rxe_plane)51の単位に合致した規模にしようとするものである。これにより、ハードウェア制御情報20に含まれるCBマッピング情報21の種類を減らし、アプリケーションを実行するために必要となるハードウェア制御情報20の情報量を減らすことができる。
したがって、CBマッピング情報21を複合化する典型的な工程では、サイクル間を伝達される信号に沿ってサイクルを超えて回路を組み合わせてパイプライン化することはなく、また、演算器およびレジスタを多サイクルにわたり使用するために入力セレクタを設けてマルチ化することもない。逆に、サイクルは離れていてもCB回路のRTL33に共通点があるものをマージして、あるサイクルの機能には不要であるが、その機能を阻害しない配線を備えた複合CBマッピング情報23を生成する。また、CBマッピング情報が少ないもの同士をマージして、rxe_plane51に適したサイズにする、というタイプの複合化も行なう。さらに、同一の演算器およびレジスタを複数のサイクルで共用するように複合化されることもある。入力セレクタにより回路を切り換える代わりに、サイクル毎に配線自体を切り換えることにより同一の演算器が異なる目的で選択されるように複合化することがある。また、演算器あるいはレジスタに対する入出力がそのサイクルの機能には影響を及ぼさないなら、それらの入出力を無視(ドントケア)することにより複合化することがある。
簡単な具体例を用いて、ハードウェア制御情報の生成にさらに説明する。図14(a)にCソースコード91の簡単な具体例を示し、図14(b)に、それを解析した後のCDFG94を示してある。図15に、このCDFG94を、「演算器の遅延時間はクロック周期の半分より大きい」という条件でスケジューリングして、サイクル毎の機能を抽出した結果を示してある。このスケジューリングでは、3つのレジスタR1〜R3に中間結果を保存しつつ、サイクル0からサイクル2まで3サイクルかけて演算する。図15に、CDFG94に加えて、サイクル毎の機能を提供するデータパス31および制御FSM32を示している。
図16(a)に、これらのサイクル毎のデータパス31を、全サイクル分の全機能を包含する1つの統合回路として表現した回路構成92cを示してある。この回路構成92cには、データパスの機能を実現するための演算器およびレジスタに加えて、それらの入力セレクタとその制御信号(セレクト信号)が含まれている。また、図16(b)にFSM32の回路構成を示してある。この回路構成92cは、ASICまたはFPGA向けに生成される回路であり、演算器やレジスタを使い回すために、各演算器92a、92bおよびレジスタR1およびR3の入力側にセレクタ92sが追加されている。これらのセレクタ92sの制御信号は、図16(b)のFSM回路32から出力される。
図17に、図16(a)に示した回路構成92cに対応したRTL記述92を示してある。このような図16(a)の回路構成92cに対応したRTL記述92を生成し、論理合成ツールおよび配置配線ツールに通すことにより、ASICのマスクパターンないしFPGAの構成情報96が生成される。
図18〜図21に、サイクル毎の回路情報33と、それによりマッピングされるCB回路33aとを示してある。これらのサイクル毎の回路情報33と、CB回路33aとは、生成方法79のステップ73において、図14の入力情報に対して生成される例である。図18(a)は、サイクル0のデータパス31に対応するCB回路33aであり、図18(b)は、そのCB回路情報、すなわち、RTL記述33である。図19(a)は、サイクル1のデータパス33に対応する回路構成33aであり、図19(b)は、そのRTL記述33である。図20(a)は、サイクル2のデータパス33に対応する回路構成33aであり、図20(b)は、そのRTL記述33である。さらに、図21に、サイクル単位の機能を選択する情報32を、サイクル単位の構成を選択する情報に変換した構成選択情報34を示してある。この構成選択情報34は、ステート番号に対応する実行すべきCB回路33aを指示するものであり、簡単な情報となる。
図14(a)に示したCソースコード91により与えられた処理は、図15にデータパスとして示したサイクル毎の機能31を、サイクル単位で用いることにより実現できる。したがって、図18(a)、図19(a)および図20(a)に示したサイクル毎の回路33aを、データ処理装置1のRC領域10に再構成することにより実現できる。このため、ステップ74において、それらのサイクル毎の回路33aに対応する、図18(b)、図19(b)および図20(b)に示したRTL記述33を、個々に論理合成ツールおよび配置配線ツールに通すことにより、RC領域10にマッピングする情報(CBマッピング情報)21を生成できる。さらに、サイクル単位で構成を選択する情報34を、CBマッピング情報21を制御する情報22に変換することにより、CBマッピング情報21と、それを制御する情報22とを含むハードウェア制御情報20を生成できる。
これらのCBマッピング情報21により、データ処理装置1のRC領域10に再構成されるCB回路33aは、図18(a)、図19(a)および図20(a)に示したものになる。これらのCB回路33aにおいては、演算器37aおよび37b、さらにはレジスタR1およびR3の入力側にセレクタは配置されていない。したがって、図16に示した回路と比較し、構成が簡略化されており、RC領域10のハードウェア規模が小さくても、あるいはRC領域10の一部を用いて、それぞれのCB回路を実現できる。
図19(a)のサイクル1のCB回路33aは、演算器37aを用いない。図20(a)のサイクル2のCB回路33aは、演算器37bおよびレジスタR2を用いない。一方、図18(a)のサイクル0のCB回路33aでは、1つのサイクルで両方の演算器を使用する。したがって、図14(a)で与えられたCソースコード91の機能を図15のタイミング(性能)で実装するためには、両方の演算器37aおよび37bを1サイクルの間に実現するのに十分な規模の再構成可能なハードウェアをRC領域10に確保する必要がある。サイクル0以外の回路について、両方の演算器37aおよび37bを含む程度の規模までマージしても、RC領域10の面積的なペナルティはない。したがって、サイクル1および2のCB回路33aをマージしてCBマッピング情報21を削減することによりハードウェア制御情報20の情報量を減らすことができる。
サイクルの異なるCB回路33aをマージする代わりに、演算器37aおよび37bの内、それぞれのサイクルで使用しない演算器をサイクル毎に開放することも可能である。演算器の使用が要請されないサイクルでは、演算器を開放してもCB回路の処理速度は低下しない。したがって、1つのアプリケーションを実行するためのハードウェア制御情報20を、他のアプリケーションの処理から開放された演算器を使用するように生成できる。これにより、アプリケーションの実行速度を低下させずに、多種多様なアプリケーションを並列に実行できる。
図22および図23に、ステップ75において、上述したサイクル毎のマッピング情報21をマージする例を示してある。なお、説明を簡単にするために、図23および図24においては、CB回路33aおよびそれらに対応する情報33により、サイクル毎の回路がマージされる様子を示している。しかしながら、RC領域10に個々のサイクル毎の回路33aを構成するために使用されるハードウェア資源は、論理合成および配置配線まで処理しないと厳密には決定できない。したがって、CBマッピング情報21が生成された段階で、複数のCBマッピング情報21をマージできるか否かを決定することが望ましい。この際、回路構成を再度検討する必要があるのであれば、RTLの段階に戻ってマージを行なうことになる。ハードウェア資源に余裕がある場合、ハードウェア資源の消費の見通しがつく場合などは、CB回路情報であるRTL33の段階でマージすることも可能である。
本例においては、図19(a)に示したサイクル1のCB回路33aと、図20(a)に示したサイクル2のCB回路33aとをマージすることが可能である。図22(a)にマージした複合CB回路35aの構成を示し、図22(b)にそのRTL記述35を示してある。マージすることにより、サイクル1および2の機能は、回路35aを続けて2サイクル実行することで得ることができる。そのため、構成選択情報34は、図21から図23に変換される。なお、サイクル0のCB回路33aおよび、そのRTL記述は図18(a)および(b)と同じである。 図22(a)に示すように、図19(a)および図20(a)に示したサイクル1の回路とサイクル2の回路とをマージすることにより、図18(a)に示したサイクル0の回路と回路規模のバランスが取れた両用回路を生成することができる。そして、CBマッピング情報21を1ページ分削減できる。したがって、RC領域10を有効に活用でき、ハードウェア制御情報20の情報量を削減でき、ハードウェアライブラリ2に使用されるメモリ3の量を削減できる。また、RC領域10の構成を切り換える回数を減らすことができるので、構成切り替えのために消費する電力も低減できる。
ステップ75のマージする工程では、サイクル0のCB回路のRTL記述33と、マージされた複合CB回路のRTL記述35を、個々に論理合成ツールおよび配置配線ツールに通すことにより、RC領域10にマッピングする情報(CBマッピング情報)21と複合CBマッピング情報23を生成できる。また、サイクル単位で構成を選択する情報34を、CBマッピング情報21を制御する情報22に変換することができる。そして、これらのCBマッピング情報21および23と、CBマッピング情報を制御する構成選択情報22とにより、RC領域10をサイクル毎に制御するためのハードウェア制御情報20を生成できる。
本例のハードウェア制御情報20によりRC領域10にマッピングあるいは再構成されるサイクルベースの回路33aおよび35aには、演算器37aおよび37b、レジスタR1〜R3を多サイクルにわたって使いまわしするための入力セレクタは設けられていない。ただし、マッピング情報21をマージしてその種類を減らすことを目的とした場合、CB回路33aあるいは複合CB回路35aに入力セレクタを設けることを禁止するものではない。しかしながら、入力セレクタを設けることにより余分なハードウェア資源が消費されるので、基本的には好ましくない。CBマッピング情報21の情報量を削減するためには、セレクタの追加を最小限に抑えながら複数のCB回路をマージすることが有効である。CB回路マージの際にセレクタを追加した場合は、構成選択情報によって、次サイクルで実行すべき回路を選択指示するだけではなく、セレクタのセレクト信号も指示してやる必要がある。
サイクルベースで再構成可能なRC領域10においては、図18(a)〜図21(a)に示すようにサイクル単位で回路を交換することにより、入力セレクタを設けなくても演算器37aおよび37bを多サイクルにわたり使いまわしすることが可能である。さらに、その使いまわしできる範囲は入力セレクタがカバーする限定的な信号の範囲ではなく、基本的には無制限である。そして、本発明のハードウェア制御情報20は、RC領域10のハードウェア資源の無制限の使い回しをサイクル単位で可能とするものである。
複合CBマッピング情報23によりマッピングされた、図22(a)の複合CB回路35aにおいては、2サイクルにわたり回路構成が固定される。そして、サイクル1においては、演算器37aの周りの信号は無視され、サイクル2においては、演算器37bの周りの信号は無視される。したがって、サイクル毎にドントケアの範囲を組み合わせることにより、入力セレクタを設けずに演算器37aおよび37bを複数サイクルにわたり使いまわししている。本例では、2サイクルにわたり回路構成を固定しているが、サイクル0で複合CB回路35aを構成し、サイクル1でCB回路33を構成し、サイクル2で複合CB回路35aを構成するといった使用方法も可能であり、複合CBマッピング情報23は非連続で使用できることが基本である。したがって、複合CBマッピング情報23は、CBマッピング情報23に含まれている多サイクルの回路構成の1サイクル分をサイクル毎に使用しており、入力セレクタを設ける代わりに、サイクル単位で回路を交換することによりハードウェア資源を使いまわししていることに変わりはない。
図24に、RC領域10を有するデータ処理装置1の制御方法の概要を示してある。図24に示すように、ステップ41において、ハードウェア制御情報20から、構成選択情報22に基づき、CBマッピング情報21のいずれかを選択する。ステップ42において、選択されたCBマッピング情報21によりRC領域10の全部あるいは一部を再構成する。これらのプロセス41および42を繰り返すことにより、アプリケーションを実行するために適したハードウェア環境をデータ処理装置1により提供できる。CBマッピング情報21をフェッチしてマッピングするために要するサイクル数が、RC領域10において処理を実行するサイクル数と合致しない場合は、プリフェッチなどの、従来のソフトウェアプログラムの命令シーケンスをフェッチする技術を用いることが可能である。さらに、アプリケーションの命令シーケンスと、CBマッピング情報21とをレイテンシーをずらせて組み合わせたプログラムを生成することにより、ソフトウェアの命令セットと、ハードウェア制御情報とを融合したデータ処理装置の制御記述を提供することも可能である。この場合は、アプリケーションの命令セットが構成選択情報として機能する。このようなハードウェア制御情報20あるいは融合制御記述は、ROMなどの適当な記録媒体に記録して提供することが可能であり、さらに、有線あるいは無線により構成されるインターネットなどのコンピュータネットワークを介して提供することも可能である。
図25に、生成システム100において、既存のRTL記述92から、ハードウェア制御情報20を生成する過程を示してある。生成システム100のサイクルベース回路の情報を生成する機能101は、既存のRTL92からCB回路の情報を生成する機能を備えている。すなわち、このハードウェア制御情報の生成方法78においては、ステップ76において、既存のRTL92のステートマシンを解析して、ステート毎のデータパス31に分解する。例えば、インプットセレクタを消去し、セレクタ制御信号を消去する。これにより、サイクル毎の機能が抽出される。その後は、図13に示した生成方法79と同様に、ステップ73のサイクルベースの回路情報を生成する工程において、サイクル毎のRTL(CB回路情報)33を生成し、ステップ74のハードウェア制御情報を生成する工程において、CBマッピング情報21を生成する。必要であれば、ステップ75において、CBマッピング情報21のマージ可能な部分をマージしてハードウェア制御情報20を生成する。この生成方法78により、既存のFPGAあるいはASIC用に設計および開発されたRTL資産を有効に活用できる。また、既存のRTLに基づく構成のFPGAあるいはASICで動作しているソフトウェアができるようにハードウェア制御情報20を生成し、それによりデータ処理装置1を再構成できる。このため、既存のFPGAあるいはASICで動作するアプリケーションをデータ処理装置1により動作させることが可能となる。
図26に、生成システム100において、分割制御型のハードウェア制御情報20を生成する過程を示している。この生成方法77により生成される分割制御型のハードウェア制御情報20は、構成選択情報22が、それぞれのCBマッピング情報21に含まれており、全体制御用の構成選択情報を持たない。そのため、上述した生成方法78のステップ76または生成方法79のステップ72により、サイクル毎のデータパス31と制御ステートマシン32が生成されると、ステップ73において、サイクル毎のRTL33を生成する際に、制御ステートマシンとしての機能、すなわち、各ステートにおける次ステートを計算する機能をステート毎(サイクル毎)の回路に分割してデータパス回路に付加する。
これにより、図27に示すように、サイクル毎のRTL33として、次サイクルで実行すべき回路の番号などの選択情報を計算する機能を含んだサイクルベース回路の回路情報38が生成される。本例においては、次サイクルで実行すべき回路番号が定数であるが、RTL33に次のサイクルの回路番号を指定する機能を設けることにより、適当な関数により、あるいはステータス情報により、次サイクルでマッピングするCBマッピング情報21を選択する機能を、各々のCBマッピング情報21に付加できる。
構成選択情報22を演算する機能を含めたCB回路の情報33から、ステップ74により、CBマッピング情報21を含むハードウェア制御情報20を生成することができる。図26に示した生成方法77においては、マージするステップ75を先行して行い、サイクル毎のRTL33のマージをトライし、複合化されたサイクル毎のRTL36を生成している。この複合化されたサイクル毎のRTL36も選択情報を含んだサイクルベース回路の回路情報38である。本例であると、図28に示すように、サイクル1とサイクル2のRTL33を、制御情報を含めて複合化し、RTL36を得ることができる。そして、これらのRTL33および36を、ハードウェア制御情報を生成するステップ74で論理合成および配置配線して、RC領域10にマッピングできるCBマッピング情報(複合CBマッピング情報も含めて)21を生成する。このCBマッピング情報21には、上述したように次のサイクルでマッピングするCBマッピング情報21を選択するための制御情報22を生成する回路が含まれている。
本発明において提供されるハードウェア制御情報20は、サイクルベースで再構成可能なハードウェアに、アプリケーションを実行するための回路をサイクルベースで実装するものである。そして、機能モジュールレベルで回路構成を変えるという長期稼動を前提とした設計方法ではなく、動作ステートレベル、すなわち、ステート毎(サイクル毎)に回路構成を変える、あるいは回路構成をサイクル毎に交換することを前提としている。したがって、再構成対象の機能モジュールを吟味するというようなプロセスはなく、サイクルベースの回路情報を先ず生成して、それを実際のアーキテクチャに実装するCBマッピング情報に生成するプロセスが採用されている。このため、再構成可能な回路領域は、基本的にはサイクル毎に構成が交換され、固定された構成を持たない状態で制御され、アプリケーションを実行する。
一方、このハードウェア制御情報20は、数サイクルにわたり再構成可能な回路領域に固定されるマッピング情報が含まれることを許容するものである。ベクトル演算、フーリエ解析のようなパイプライン処理をすることが最も好ましいデータ処理を含むアプリケーションを実行するハードウェア構成としては、パイプラインを構成するハードウェアを数クロックあるいはそれ以上の間、固定することが好ましいからである。これに対し、MPEGデコーダのようなステートマシン系の処理を必要とするアプリケーションを実行するハードウェア構成としては、サイクル毎に回路構成を変えることが望ましい。RISCのようなステートマシンの制御プロセッサと、FFTのようなパイプライン処理用のコプロセッサ機能とを必要とするプロセッサをデータ処理装置1に実装する場合は、RC領域10の一部はサイクル毎に構成が変わり、他の部分は数サイクルあるいはそれ以上、データフローが形成された状態で固定されるという状態が発生しうる。そのような再構成の選択は構成選択情報22のサイクル毎の要請により決まり、再構成の要請が無ければRC領域10の構成は維持される。したがって、ハードウェア制御情報20のCBマッピング情報21は、構成選択情報22によりサイクル毎の要請により、RC領域が再構成され、あるいは、RC領域10の構成が維持されるように制御することも含む。
また、上記においては、半導体集積回路技術をベースにしたLSIに本発明を適用する例を説明しているが、いわゆる回路網を形成するデータ処理装置のすべてに本発明を適用することが可能である。すなわち、電気あるいは電子レベルの回路技術をベースにしたデータ処理装置に限らず、光、生体、分子あるいは原子構造、遺伝子構造などをベースにした回路網を形成する全てのデータ処理装置に対して本発明を適用することができる。

Claims (28)

  1. クロック単位で進むサイクル毎に再構成可能な論理回路と、ハードウェア制御情報を格納したライブラリとを有するデータ処理装置であって、
    前記ハードウェア制御情報は、アプリケーションを実行するために1クロックで処理が完結する各ステートの機能のみをそれぞれ実現する複数のサイクルベース回路を個々に前記論理回路にマッピングするための複数のサイクルベースマッピング情報と、前記アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報とを備えており、さらに、当該データ処理装置は、
    前記構成選択情報に基づくサイクル毎の要請により、前記複数のサイクルベースマッピング情報の少なくともいずれかにより前記論理回路の少なくとも一部を再構成する制御ユニットを有するデータ処理装置。
  2. 請求項1において、前記複数のサイクルベースマッピング情報は、前記サイクル毎の機能を阻害することなくマージできるサイクルベースマッピング情報がマージされた複合サイクルベースマッピング情報を含む、データ処理装置。
  3. 請求項1または2において、前記複数のサイクルベースマッピング情報は、各ステートの前記制御ユニットを前記論理回路にマッピングするための情報をそれぞれ含んでおり、
    前記各ステートの制御ユニットが、前記論理回路に再構成される、データ処理装置。
  4. クロック単位で進むサイクル毎に再構成可能な論理回路と、ハードウェア制御情報を格納したライブラリとを有するデータ処理装置であって、
    前記ハードウェア制御情報は、アプリケーションを実行するために1クロックで処理が完結する各ステートの機能のみをそれぞれ実現する複数のサイクルベース回路を個々に、前記論理回路にマッピングするための複数のサイクルベースマッピング情報と、前記アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報とを備えており、
    前記論理回路の少なくとも一部は、前記構成選択情報に基づくサイクル毎の要請により、前記複数のサイクルベースマッピング情報の少なくともいずれかにより再構成される、データ処理装置。
  5. 請求項4において、前記複数のサイクルベースマッピング情報は、各ステートの前記制御ユニットを前記論理回路にマッピングするための情報をそれぞれ含んでおり、
    前記論理回路の少なくとも一部は、前記論理回路に再構成された前記各ステートの制御ユニットの要請により再構成される、データ処理装置。
  6. クロック単位で進むサイクル毎に再構成可能な論理回路を有するデータ処理装置の制御方法であって、ハードウェア制御情報に基づき前記論理回路の少なくとも一部を再構成する工程を有し、
    前記ハードウェア制御情報は、アプリケーションを実行するために1クロックで処理が完結する各ステートの機能のみをそれぞれ実現する複数のサイクルベース回路を個々に前記論理回路にマッピングするための複数のサイクルベースマッピング情報と、前記アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報とを含み、
    前記再構成する工程は、前記構成選択情報に基づくサイクル毎の要請により、前記複数のサイクルベースマッピング情報のいずれかを選択して前記論理回路の少なくとも一部を再構成することを含む、制御方法。
  7. 請求項6において、前記複数のサイクルベースマッピング情報は、各ステートの前記制御ユニットを前記論理回路にマッピングするための情報をそれぞれ含んでおり、
    前記再構成する工程は、前記論理回路に再構成された前記各ステートの制御ユニットの要請により、前記論理回路の少なくとも一部を再構成することを含む、制御方法
  8. 再構成可能な論理回路を制御するためのハードウェア制御情報を生成するための生成システムであって、
    アプリケーションを実行するためにクロック単位で処理が進むサイクル毎の機能であって1クロックで処理が完結する各ステートの機能のみをそれぞれ実現する複数のサイクルベース回路の回路情報を生成する機能と、
    前記複数のサイクルベース回路を前記論理回路にそれぞれマッピングするための複数のサイクルベースマッピング情報、および、前記アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報を含む前記ハードウェア制御情報を生成する機能とを有する、生成システム。
  9. 請求項8において、さらに、前記複数のサイクルベースマッピング情報の中の、前記サイクル毎の機能を阻害することなくマージできるサイクルベースマッピング情報を抽出して、それらをマージして複合サイクルベースマッピング情報を生成する機能を有する、生成システム。
  10. 請求項8または9において、前記ハードウェア制御情報を生成する機能は、各ステートの前記構成選択情報を生成して前記サイクルベースマッピング情報にマージする、生成システム。
  11. 請求項8ないし10のいずれかにおいて、前記回路情報を生成する機能は、前記アプリケーションを実行するためのコントロールデータフローダイアグラムに基づき、前記複数のサイクルベース回路の情報を生成する、生成システム。
  12. 請求項8ないし10のいずれかにおいて、前記回路情報を生成する機能は、前記アプリケーションを実行するためのRTLをサイクルベースに分解して、前記複数のサイクルベース回路の情報を生成する、生成システム。
  13. 再構成可能な論理回路を制御するためのハードウェア制御情報を生成する方法であって、
    アプリケーションを実行するためにクロック単位で処理が進むサイクル毎の機能であって1クロックで処理が完結する各ステートの機能のみをそれぞれ実現する複数のサイクルベース回路の回路情報を生成する工程と、
    前記複数のサイクルベース回路を前記論理回路にそれぞれマッピングするための複数のサイクルベースマッピング情報、および、前記アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報を含む前記ハードウェア制御情報を生成する工程とを有する、生成する方法。
  14. 請求項13において、さらに、前記複数のサイクルベースマッピング情報の中の、前記サイクル毎の機能を阻害することなくマージできるサイクルベースマッピング情報を抽出して、それらをマージして複合サイクルベースマッピング情報を生成する工程を有する、生成する方法。
  15. 請求項13または14において、前記ハードウェア制御情報を生成する工程では、各ステートの前記構成選択情報を生成し、前記サイクルベースマッピング情報にマージする、生成する方法。
  16. 請求項13ないし15のいずれかにおいて、前記回路情報を生成する工程では、前記アプリケーションを実行するためのコントロールデータフローダイアグラムに基づき、前記複数のサイクルベース回路の情報を生成する、生成する方法。
  17. 請求項13ないし15のいずれかにおいて、前記回路情報を生成する工程では、前記アプリケーションを実行するためのRTLをサイクルベースに分解して、前記複数のサイクルベース回路の情報を生成する、生成する方法。
  18. 再構成可能な論理回路を有するデータ処理装置を制御するためのハードウェア制御情報であって、アプリケーションを実行するためにクロック単位で処理が進むサイクル毎の機能であって1クロックで処理が完結する各ステートの機能のみをそれぞれ実現する複数のサイクルベース回路を個々に前記論理回路にマッピングするための複数のサイクルベースマッピング情報と、前記アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報とを有するハードウェア制御情報が記録されている記録媒体。
  19. 請求項18において、前記複数のサイクルベースマッピング情報は、前記サイクル毎の機能を阻害することなく、複数のサイクルベースマッピング情報がマージされた複合サイクルベースマッピング情報を含んでいる、記録媒体。
  20. 請求項18において、前記構成選択情報は、各ステートの構成選択情報であり、前記サイクルベースマッピング情報にマージされている、記録媒体。
  21. 請求項1ないし3のいずれかにおいて、前記複数のサイクルベース回路はそれぞれインプットセレクタを含まない回路である、データ処理装置。
  22. 請求項4または5において、前記複数のサイクルベース回路はそれぞれインプットセレクタを含まない回路である、データ処理装置。
  23. 請求項6または7において、前記複数のサイクルベース回路はそれぞれインプットセレクタを含まない回路である、制御方法。
  24. 請求項8ないし12のいずれかにおいて、前記複数のサイクルベース回路はそれぞれインプットセレクタを含まない回路である、生成システム。
  25. 請求項12において、前記回路情報を生成する機能は、前記RTLからインプットセレクタおよびセレクタ制御信号を消去することにより、前記RTLをサイクルベースに分解する機能を含む、生成システム。
  26. 請求項13ないし17のいずれかにおいて、前記複数のサイクルベース回路はそれぞれインプットセレクタを含まない回路である、生成する方法。
  27. 請求項17において、前記回路情報を生成する工程は、前記RTLからインプットセレクタおよびセレクタ制御信号を消去することにより、前記RTLをサイクルベースに分解することを含む、生成する方法。
  28. 請求項18ないし20のいずれかにおいて、前記複数のサイクルベース回路はそれぞれインプットセレクタを含まない回路である、記録媒体。
JP2006542353A 2004-10-28 2005-10-28 再構成可能な論理回路を有するデータ処理装置 Active JP4893309B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006542353A JP4893309B2 (ja) 2004-10-28 2005-10-28 再構成可能な論理回路を有するデータ処理装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004313710 2004-10-28
JP2004313710 2004-10-28
JP2006542353A JP4893309B2 (ja) 2004-10-28 2005-10-28 再構成可能な論理回路を有するデータ処理装置
PCT/JP2005/019924 WO2006046711A1 (ja) 2004-10-28 2005-10-28 再構成可能な論理回路を有するデータ処理装置

Publications (2)

Publication Number Publication Date
JPWO2006046711A1 JPWO2006046711A1 (ja) 2008-05-22
JP4893309B2 true JP4893309B2 (ja) 2012-03-07

Family

ID=36227951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006542353A Active JP4893309B2 (ja) 2004-10-28 2005-10-28 再構成可能な論理回路を有するデータ処理装置

Country Status (6)

Country Link
US (3) US7779380B2 (ja)
EP (1) EP1806847B1 (ja)
JP (1) JP4893309B2 (ja)
AT (1) ATE458309T1 (ja)
DE (1) DE602005019448D1 (ja)
WO (1) WO2006046711A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167025B1 (en) 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
ATE458309T1 (de) 2004-10-28 2010-03-15 Ip Flex Inc Datenverarbeitungsgerät mit rekonfigurierbarer logischer schaltung
US7743085B2 (en) * 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7372297B1 (en) * 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
JP5003097B2 (ja) 2006-10-25 2012-08-15 ソニー株式会社 半導体チップ
JP5119902B2 (ja) * 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
WO2009151934A1 (en) * 2008-05-24 2009-12-17 Tabula, Inc. Decision modules
EP2308229A4 (en) * 2008-07-01 2014-08-20 S K Nandy METHOD AND SYSTEM ON A CHIP TO ADAPT RECONFIGURABLE TIME-OF-EXECUTION MATERIAL FOR DECODING VIDEO STREAMS
EP2553815A1 (en) 2010-04-02 2013-02-06 Tabula, Inc. System and method for reducing reconfiguration power usage
US8650514B2 (en) 2010-06-23 2014-02-11 Tabula, Inc. Rescaling
EP2586128B1 (en) 2010-06-23 2019-03-06 Altera Corporation Rescaling
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US8984464B1 (en) 2011-11-21 2015-03-17 Tabula, Inc. Detailed placement with search and repair
US9203397B1 (en) 2011-12-16 2015-12-01 Altera Corporation Delaying start of user design execution
US8789001B1 (en) 2013-02-20 2014-07-22 Tabula, Inc. System and method for using fabric-graph flow to determine resource costs
US9000801B1 (en) 2013-02-27 2015-04-07 Tabula, Inc. Implementation of related clocks
KR20150127608A (ko) 2013-03-01 2015-11-17 아토나프 가부시키가이샤 데이터 처리 장치 및 그 제어 방법
JP6211583B2 (ja) * 2013-03-01 2017-10-11 アクシオンリサーチ株式会社 再構成する情報を生成する装置および方法
US9235669B2 (en) * 2014-02-18 2016-01-12 Codasip S.R.O. Method and an apparatus for automatic processor design and verification
US20160246490A1 (en) * 2015-02-25 2016-08-25 Bank Of America Corporation Customizable Dashboard
US11113091B2 (en) * 2019-03-12 2021-09-07 Arm Limited Apparatus for forwarding a mediated request to processing circuitry in response to a configuration request
WO2023181380A1 (ja) * 2022-03-25 2023-09-28 Chiptip Technology株式会社 情報処理システム、情報処理装置、サーバ装置、プログラム、リコンフィグラブルデバイス、又は方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63308411A (ja) * 1987-03-06 1988-12-15 アルテラ・コーポレーシヨン プログラマブル集積回路デバイス
JPH10173515A (ja) * 1996-12-12 1998-06-26 Pfu Ltd Fpga装置
JPH1117524A (ja) * 1997-06-20 1999-01-22 Fuji Xerox Co Ltd プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法
JP2001014298A (ja) * 1999-07-01 2001-01-19 Nec Corp 合成及びレイアウトのオーバーヘッドが少ないsatソルバー・アーキテクチャーを得るための方法及び装置
JP2004200311A (ja) * 2002-12-17 2004-07-15 Fujitsu Ltd 論理検証装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173434B1 (en) * 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules
US6321366B1 (en) * 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6138266A (en) * 1997-06-16 2000-10-24 Tharas Systems Inc. Functional verification of integrated circuit designs
US6034538A (en) 1998-01-21 2000-03-07 Lucent Technologies Inc. Virtual logic system for reconfigurable hardware
US6466898B1 (en) * 1999-01-12 2002-10-15 Terence Chan Multithreaded, mixed hardware description languages logic simulation on engineering workstations
TW504608B (en) * 1999-08-30 2002-10-01 Ip Flex Inc Program product and data processing device
US6678646B1 (en) 1999-12-14 2004-01-13 Atmel Corporation Method for implementing a physical design for a dynamically reconfigurable logic circuit
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6970957B1 (en) * 2000-04-24 2005-11-29 Microsoft Corporation Dynamically configuring resources for cycle translation in a computer system
US6816826B1 (en) * 2000-10-05 2004-11-09 International Business Machines Corporation Fully exhibiting asynchronous behavior in a logic network simulation
US6691287B2 (en) * 2000-12-14 2004-02-10 Tharas Systems Inc. Functional verification system
US20020133325A1 (en) * 2001-02-09 2002-09-19 Hoare Raymond R. Discrete event simulator
US6598209B1 (en) * 2001-02-28 2003-07-22 Sequence Design, Inc. RTL power analysis using gate-level cell power models
US20020194558A1 (en) * 2001-04-10 2002-12-19 Laung-Terng Wang Method and system to optimize test cost and disable defects for scan and BIST memories
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7076416B2 (en) * 2001-08-20 2006-07-11 Sun Microsystems, Inc. Method and apparatus for evaluating logic states of design nodes for cycle-based simulation
US7257524B2 (en) * 2001-09-19 2007-08-14 Quickturn Design Systems, Inc. Simulation and timing control for hardware accelerated simulation
US7200735B2 (en) * 2002-04-10 2007-04-03 Tensilica, Inc. High-performance hybrid processor with configurable execution units
GB0224023D0 (en) * 2002-10-16 2002-11-27 Roysmith Graeme Reconfigurable integrated circuit
JPWO2004061722A1 (ja) * 2002-12-27 2006-05-18 富士通株式会社 論理シミュレーション装置
DE10302141A1 (de) * 2003-01-21 2004-08-05 Siemens Ag Verfahren zum Konfigurieren eines Array-Prozessors
US6944834B2 (en) * 2003-01-22 2005-09-13 Stmicroelectrontronics, Inc. Method and apparatus for modeling dynamic systems
US20050050482A1 (en) * 2003-08-25 2005-03-03 Keller S. Brandon System and method for determining applicable configuration information for use in analysis of a computer aided design
CN100580621C (zh) * 2003-08-29 2010-01-13 Ip菲力股份有限公司 数据处理装置、控制方法、自动控制装置、终端、生成方法
US7167025B1 (en) * 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
ATE458309T1 (de) 2004-10-28 2010-03-15 Ip Flex Inc Datenverarbeitungsgerät mit rekonfigurierbarer logischer schaltung
US7428721B2 (en) * 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
CN101189797B (zh) * 2005-05-31 2011-07-20 富士施乐株式会社 可重构的装置
US7437690B2 (en) * 2005-10-13 2008-10-14 International Business Machines Corporation Method for predicate-based compositional minimization in a verification environment
US20070219771A1 (en) * 2005-12-01 2007-09-20 Verheyen Henry T Branching and Behavioral Partitioning for a VLIW Processor
JP5003097B2 (ja) * 2006-10-25 2012-08-15 ソニー株式会社 半導体チップ
JP5119902B2 (ja) * 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63308411A (ja) * 1987-03-06 1988-12-15 アルテラ・コーポレーシヨン プログラマブル集積回路デバイス
JPH10173515A (ja) * 1996-12-12 1998-06-26 Pfu Ltd Fpga装置
JPH1117524A (ja) * 1997-06-20 1999-01-22 Fuji Xerox Co Ltd プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法
JP2001014298A (ja) * 1999-07-01 2001-01-19 Nec Corp 合成及びレイアウトのオーバーヘッドが少ないsatソルバー・アーキテクチャーを得るための方法及び装置
JP2004200311A (ja) * 2002-12-17 2004-07-15 Fujitsu Ltd 論理検証装置

Also Published As

Publication number Publication date
US20080141019A1 (en) 2008-06-12
US20110004744A1 (en) 2011-01-06
EP1806847A4 (en) 2008-02-06
EP1806847B1 (en) 2010-02-17
US7779380B2 (en) 2010-08-17
US9135387B2 (en) 2015-09-15
EP1806847A1 (en) 2007-07-11
ATE458309T1 (de) 2010-03-15
US20140096095A1 (en) 2014-04-03
WO2006046711A1 (ja) 2006-05-04
US8713492B2 (en) 2014-04-29
JPWO2006046711A1 (ja) 2008-05-22
DE602005019448D1 (de) 2010-04-01

Similar Documents

Publication Publication Date Title
JP4893309B2 (ja) 再構成可能な論理回路を有するデータ処理装置
Gokhale et al. Reconfigurable computing: Accelerating computation with field-programmable gate arrays
Cardoso et al. Compilation techniques for reconfigurable architectures
Hauck et al. Reconfigurable computing: the theory and practice of FPGA-based computation
JP6059413B2 (ja) 再構成可能命令セル・アレイ
JP5077597B2 (ja) データ処理装置
Hubner et al. A heterogeneous multicore system on chip with run-time reconfigurable virtual FPGA architecture
Koch et al. High-Level-Language Compilation for Reconfigurable Computers.
Guo et al. Pillars: An integrated CGRA design framework
Jain Architecture centric coarse-grained FPGA overlays
Ching et al. Integrated modelling and generation of a reconfigurable network-on-chip
Jain et al. Coarse Grained FPGA Overlay for Rapid Just-In-Time Accelerator Compilation
Van Essen et al. Static versus scheduled interconnect in coarse-grained reconfigurable arrays
Kwadjo et al. Exploring a Layer-based Pre-implemented Flow for Mapping CNN on FPGA
Capalija et al. A coarse-grain fpga overlay for executing data flow graphs
Boppu Code Generation for Tightly Coupled Processor Arrays
Patterson et al. Slotless module-based reconfiguration of embedded FPGAs
Toi et al. High-level synthesis challenges for mapping a complete program on a dynamically reconfigurable processor
Capalija Architecture, Mapping Algorithms and Physical Design of Mesh-of-Functional-Units FPGA Overlays for Pipelined Execution of Data Flow Graphs
Shriram Methodology For Designing High Speed Reconfigurable Custom Computer
Kung Obtaining performance and programmability using reconfigurable hardware for media processing
Grant CAD algorithms and performance of Malibu: an FPGA with time-multiplexed coarse-grained elements
Sau Dataflow based design suite for the development and management of multi-functional reconfigurable systems
Ghariani et al. New Coarse-Grained Configurable Architecture for DSP Applications
DIRECTORATE STRUCTURED APPLICATION-SPECIFIC INTEGRATED CIRCUIT (ASIC) STUDY

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081023

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110801

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111205

R150 Certificate of patent or registration of utility model

Ref document number: 4893309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250