(57)【要約】【課題】入力データをリコンフィギュラブル回路で確実に処理できるようにする。【解決手段】本集積回路は、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路３と、入力データ制御部４とを備える。そして、入力データ制御部４によって、リコンフィギュラブル回路３の構成に応じてデータが入力されるように入力データが制御される。【選択図】図１
2008090360.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路と、
前記リコンフィギュラブル回路の構成に応じてデータが入力されるように入力データを制御する入力データ制御部とを備えることを特徴とする集積回路。
【請求項２】
前記入力データ制御部が、前記リコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンを供給するデータ入力パターン供給部を備えることを特徴とする請求項１記載の集積回路。
【請求項３】
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記データ入力パターンを格納するランダムアクセスメモリによって構成され、
前記入力データ制御部が、前記ランダムアクセスメモリにアクセスするためのアドレス値を生成するカウンタと、前記ランダムアクセスメモリから読み出される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする請求項２記載の集積回路。
【請求項４】
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記データ入力パターンを発生するパターン発生回路によって構成され、
前記入力データ制御部が、前記パターン発生回路に入力されるアドレス値を生成するカウンタと、前記パターン発生回路から供給される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする請求項２記載の集積回路。
【請求項５】
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記リコンフィギュラブル回路の一部の演算器からなる回路によって構成され、
前記入力データ制御部が、前記データ入力パターン供給部から供給される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする請求項２記載の集積回路。
【請求項６】
前記入力データ制御部が、前記入力データをパラレルに展開するデータ並列回路部を備えることを特徴とする、請求項１〜５のいずれか１項に記載の集積回路。
【請求項７】
前記データ入力パターン供給部が、前記データ入力パターンを構成するバリッド情報を供給するように構成され、
前記入力データ制御部が、前記入力データに前記バリッド情報を付加して前記入力データを整形する入力データ整形部を備えることを特徴とする請求項２〜６のいずれか１項に記載の集積回路。
【請求項８】
再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンを取り出し、
前記データ入力パターンに基づいて前記リコンフィギュラブル回路に入力データを入力することを特徴とするリコンフィギュラブル回路の入力データ制御方法。
【請求項９】
前記入力データをパラレルに展開して、前記リコンフィギュラブル回路に入力することを特徴とする請求項８記載のリコンフィギュラブル回路の入力データ制御方法。
【請求項１０】
前記データ入力パターンとして、バリッド情報によって構成されるデータ入力パターンを取り出し、
前記入力データに前記バリッド情報を付加して前記入力データを整形することを特徴とする請求項８又は９記載のリコンフィギュラブル回路の入力データ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィギュラブル回路を備える集積回路及びリコンフィギュラブル回路の入力データ制御方法に関する。
【背景技術】
【０００２】
従来、リコンフィギュラブル回路の回路構成を、回路が動作状態において動的に変更することで機能を切り替えることができるダイナミックリコンフィギュラブルＬＳＩが提供されている。
リコンフィギュラブルＬＳＩは、複数の演算器をアレイ状に配列し、これらを縦方向及び横方向に延びるバスで接続したリコンフィギュラブル回路を備える。そして、このリコンフィギュラブル回路の回路構成（演算器間のネットワーク）を短い時間（例えば１クロック〜数クロックの時間）で切り替えることができるようになっている。
【０００３】
例えば、リコンフィギュラブルＬＳＩでは、リコンフィギュラブル回路の回路構成を切り替えることによって、あるときは画像処理を行ない、またあるときは音声・通信系の処理を行なうというようなことが可能である。
このようなリコンフィギュラブルＬＳＩでは、機能ごとの専用のハードウェアを設けることなく、一つのハードウェアで多くの機能を実現することができる。つまり、リコンフィギュラブルＬＳＩでは、ＬＳＩを作製する時点で決められてしまう有限のリソースを効率良く利用することで、多くのアプリケーションに対応した最適な回路を実現することが可能となる。
【０００４】
なお、先行技術調査を行なった結果、以下の特許文献１，２が得られた。
【特許文献１】特開２００６−１８５３９号公報
【特許文献２】国際公開第２００２／０９５９４６号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、リコンフィギュラブル回路のリソースが十分足りているような単純な処理を行なう場合は、リコンフィギュラブル回路を所定の回路構成にして処理を行なえば良い。
しかしながら、リコンフィギュラブル回路のリソースが不足してしまうような複雑な処理を行なう場合（例えば入力されるデータ量が多く、スループットが高い場合）、リコンフィギュラブル回路の回路構成をダイナミックに変更する必要がある。この場合、データの入力タイミングを制御しないと、リコンフィギュラブル回路で処理できないおそれがある。
【０００６】
一方、処理内容によっては、リコンフィギュラブル回路を空間的に分割された複数の回路からなる回路構成とし、それぞれの回路によってパラレルに処理を行なえる場合もある。この場合、入力データの構成及び入力タイミングを制御しないと、リコンフィギュラブル回路で処理できないおそれがある。
このような場合、例えばマッピングを工夫するなどして対応することになるが、より効率良くリソースを利用し、より容易にマッピングを行なえるようにすることが望まれている。
【０００７】
ところで、最近、ＡＳＩＣ（Application Specific Integrated Circuit）の中の一部又は複数の機能を、リコンフィギュラブル技術を使って実現しようという動きが出てきている。
一般に、ＡＳＩＣには、以下の特徴がある。
（１）特定の用途向けにハードウェアを構成するため、チップサイズが小さい。
（２）開発費が高いため、大量生産品でないと、開発コストの回収が難しい。
（３）開発期間が長く、また製品寿命も長いため、開発途中又は製品出荷後に機能変更等を余儀なくされる場合のリスクが大きい。
【０００８】
これに対し、リコンフィギュラブルＬＳＩは、ハードウェアに近いパフォーマンスを持ちながら、製品出荷後も機能を変更できるという特徴がある。
そこで、最近、ＡＳＩＣが不得意とする領域をリコンフィギュラブルＬＳＩによってカバーすること、即ち、ＡＳＩＣの中にリコンフィギュラブル・コア（リコンフィギュラブル回路）を入れることが検討されている。
【０００９】
例えば、図１３（Ａ）に示すように、専用ハードウェアＩＰ（Intellectual Property），ランダムロジック，ＲＩＳＣ（Reduced Instruction Set Computer）プロセッサなどを備える従来のＡＳＩＣの一部、即ち、図１３（Ａ）中、実線で囲まれている領域Ａの専用ハードウェアＩＰ及びランダムロジックを、図１３（Ｂ）に示すように、リコンフィギュラブル・コアで実現することが検討されている。なお、これらの図はＬＳＩの回路配置を表しており、専用ハードウェアＩＰ，ランダムロジック，ＲＩＳＣの周囲には、外部回路とのインターフェイスのためのＩＯ領域が設けられている。
【００１０】
このように、ＡＳＩＣの中にリコンフィギュラブル・コアを入れ、リコンフィギュラブル・コアで実現する機能（リコンフィギュラブル・コアの回路構成）を切り替えるようにすることで、製品出荷後も機能変更等が可能となる。
しかしながら、ＡＳＩＣの中にリコンフィギュラブル・コアを入れる場合、リコンフィギュラブル・コアへ入力される信号（データ）は複数の場所（ブロック）から入力されてくることになる［図１３（Ｃ）参照］。この場合、どのブロックから供給されるかによって、入力データのスループットが変わってしまう場合がある。このため、それぞれのブロックから供給される入力データに対応することが非常に難しく、統一された入力データ処理のメカニズムが必要になる。
【００１１】
本発明は、このような課題に鑑み創案されたもので、入力データをリコンフィギュラブル回路で確実に処理できるようにした、集積回路及びリコンフィギュラブル回路の入力データ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
このため、本発明の集積回路は、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路と、入力データ制御部とを備える。そして、入力データ制御部によって、リコンフィギュラブル回路の構成に応じてデータが入力されるように入力データが制御される。
本発明のリコンフィギュラブル回路の入力データ制御方法では、まず、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンが取り出される。そして、このデータ入力パターンに基づいてリコンフィギュラブル回路に入力データが入力される。
【発明の効果】
【００１３】
したがって、本発明の集積回路及びリコンフィギュラブル回路の入力データ制御方法によれば、入力データをリコンフィギュラブル回路で確実に処理できるという利点がある。
【発明を実施するための最良の形態】
【００１４】
以下、図面により、本発明の実施の形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法について説明する。
［第１実施形態］
まず、本発明の第１実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法について、図１〜図８を参照しながら説明する。
【００１５】
本実施形態にかかる集積回路は、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路を備え、アプリケーションプログラムに対応した回路を構成でき、その回路構成をダイナミックに（例えば１クロック〜数クロックの時間で）切り替えることができるダイナミックリコンフィギュラブルＬＳＩ（動的再構成可能型半導体集積回路）である。例えば、ＡＳＩＣの中にリコンフィギュラブル・コア（リコンフィギュラブル回路）を入れたものとして構成される。
【００１６】
特に、本集積回路は、リコンフィギュラブル・コアによって処理できるように、リコンフィギュラブル・コアの前段で、リコンフィギュラブル・コアの回路構成に応じて、リコンフィギュラブル・コアに供給される入力データ（入力データの構成及び／又は入力タイミング）を制御できるようになっている。
ここで、リコンフィギュラブル・コアのリソースが十分足りているような単純な処理を行なう場合は、リコンフィギュラブル・コアを所定の回路構成にして処理（処理１；例えば１データに対して１クロックで処理）を行えば良い。
【００１７】
これに対し、リコンフィギュラブル・コアのリソースが不足してしまうような複雑な処理を行なう場合は、リコンフィギュラブル・コアの回路構成を切り替えて処理（処理２；例えば１データに対して２〜３クロックで処理；時分割処理）を行なう必要がある。
また、リコンフィギュラブル・コアを空間的に分割された複数の回路からなる回路構成とし、それぞれの回路によってパラレルに処理（処理３；例えば２データに対して１クロックで処理）を行なうことができる場合もある。
【００１８】
リコンフィギュラブル・コアによってそれぞれの処理を行なうためには、処理の内容（処理の複雑度）に応じて、リコンフィギュラブル・コアに入力されるデータ及び／又は入力タイミングを制御することが必要になる。
例えば、上記処理１を行なう場合は、クロック１（リコンフィギュラブル・コアの動作クロック）に同期してデータを連続的に入力すれば良い。このため、１クロックにつき１データが入力されるように、入力データを図２（Ａ）の波形１に示すようにすれば良い。
【００１９】
上記処理２を行なう場合は、リソース（回路構成）を切り替える時間に対応する時間間隔（例えば１〜数クロック）をあけてクロック１に同期してデータを入力すれば良い。このため、例えば２クロックにつき１データが入力されるように、入力データを図２（Ｂ）の波形２に示すようにすれば良い。なお、図２（Ｂ）中、網掛けの部分は無効データである。
【００２０】
上記処理３を行なう場合は、リコンフィギュラブル・コアの複数（ここでは２つ）のポートのそれぞれにクロック１に同期してデータを連続的に入力すれば良い。このため、例えばリコンフィギュラブル・コアの２つのポートのそれぞれに１クロックにつき１データが入力されるように、入力データを図２（Ｃ）の波形３に示すようにすれば良い。
このため、本ダイナミックリコンフィギュラブルＬＳＩは、例えば図１に示すように、処理内容（ここでは処理１〜３）に応じて入力データ（ここでは入力１〜３）を切り替える入力データ選択部（入力信号選択部；例えばセレクタ）１と、入力データを一時的に保持するバッファメモリ（バッファ）２と、リコンフィギュラブル・コア（リコンフィギュラブル回路）３と、リコンフィギュラブル・コア３に入力されるデータ（データの構成及び／又は入力タイミング）を制御するための入力データ制御部（入力データ制御回路）４とを備える。
【００２１】
なお、ここでは、処理１に必要な入力データを入力１とし、処理２に必要な入力データを入力２とし、処理３に必要な入力データを入力３としている。入力データはＡＳＩＣの中の一のブロックから全て供給される場合もあるし、複数のブロックから供給される場合もある。
そして、入力データ制御部４が、バッファメモリ２に保持されている入力データを取り出し、この入力データをリコンフィギュラブル・コア３の回路構成に応じた所望の波形にして（即ち、リコンフィギュラブル・コアが処理できる入力データ形式に変換して）、リコンフィギュラブル・コア３に供給（入力）するようになっている。
【００２２】
ここでは、バッファメモリ２は、例えば図１に示すように、表バッファメモリと裏バッファメモリとからなる２面構成になっており、リコンフィギュラブル・コア３の外部から入力されるデータは、一方のバッファメモリに書き込まれ、他方のバッファメモリから読み出されるようになっている。ここでは、一方のバッファメモリへのデータの書き込みが終了し、かつ、他方のバッファメモリからのデータの読み出しが終了すると、バッファメモリの切り替えが行なわれるようになっている。
【００２３】
そして、入力データ制御部４が、後述するようにしてデータ入力パターンを用いて生成したアドレス信号（アドレス値）に基づいて、一方のバッファメモリに保持されている入力データを読み出すようになっている。
入力データ制御部４は、例えば図１に示すように、データ入力パターン供給部５と、データ入力カウンタ６と、条件判定機能付きカウンタ７と、データ並列回路部８と、第１入力データ整形部（第１入力データ整形回路）９と、第２入力データ整形部（第２入力データ整形回路）１０と、セレクタ２５とを備える。
【００２４】
ここで、データ入力カウンタ６は、０から任意の値までカウントアップするカウンタである。このデータ入力カウンタ６によって、データ入力パターン供給部５としてのＲＡＭ５Ａにアクセスするためのアドレス信号（バリッド情報取出用アドレス値；パターン取出用アドレス値）Adr.が生成される。そして、図１に示すように、データ入力カウンタ６のカウント値（アドレス信号；アドレス値）Adr.は、データ入力パターン供給部５としてのＲＡＭ５Ａに供給される。
【００２５】
データ入力パターン供給部５は、リコンフィギュラブル・コア３の回路構成に応じた入力タイミングを規定するデータ入力パターン［入力データを所望の波形［図２（Ａ）〜（Ｃ）の波形１〜３］にするための情報；入力タイミング情報］を供給するものである。ここで、データ入力パターンは、どのような入力タイミングで、バッファメモリ２からデータを読み出し、リコンフィギュラブル・コア３に入力するかを決定するものである。
【００２６】
本実施形態では、図１に示すように、データ入力パターン供給部５は、ランダムアクセスメモリ（ＲＡＭ）５Ａによって構成される。
ここでは、データ入力パターン供給部５としてＲＡＭ５Ａには、アドレス（番地）に対応づけてバリッド情報[Valid]（バリッド信号；バリッドデータ）が格納されている。
ここで、バリッド情報[Valid]は、データが有効であるか無効であるかを示すフラッグ情報（データを供給するかどうかのフラッグ信号）である。ここでは、複数のバリッド情報[Valid]を任意に組み合わせてバリッド情報列（バリッド信号列；バリッドデータ列）とすることでデータ入力パターンを構成している。つまり、データ入力パターン供給部５としてＲＡＭ５Ａに格納されているバリッド情報列は、データ入力パターンを決定するデータである。
【００２７】
例えば、１クロック毎にデータをリコンフィギュラブル・コア３に入力する場合［図２（Ａ）の波形１や図２（Ｃ）の波形３］、ＲＡＭ５Ａの０番地，１番地，・・・，２ｎ番地，２ｎ＋１番地（ｎは正の整数）に順に１，１，・・・，１，１というようにデータを格納しておけば良い。また、２クロック毎にデータをリコンフィギュラブル・コア３に入力する場合［図２（Ｂ）の波形２］には、ＲＡＭ５Ａの０番地，１番地，・・・，２ｎ番地，２ｎ＋１番地に順に１，０，・・・，１，０というようにデータを格納しておけば良い。
【００２８】
なお、データ入力パターン供給部５としてＲＡＭ５Ａに格納されているデータは、外部（例えばＣＰＵ）から制御でき、リコンフィギュラブル・コア３の回路構成に応じて変更できるようになっている。
このような構成は、入力タイミングが複雑な場合や入力タイミングに周期性がない場合に特に適している。
【００２９】
そして、データ入力カウンタ６のカウント値（アドレス値）Adr.がデータ入力パターン供給部５としてのＲＡＭ５Ａに供給されると、ＲＡＭ５Ａは、条件判定機能付きカウンタ７にバリッド信号[Valid]を供給するようになっている。
このように、データ入力カウンタ６のカウント値（アドレス値）Adr.に応じて順にバリッド信号[Valid]が供給されることで、バリッド信号[Valid]によって構成されるデータ入力パターンが条件判定機能付きカウンタ７に供給されることになる。
【００３０】
なお、データ入力カウンタ６及びデータ入力パターン供給部５としてのＲＡＭ５Ａ（これらをまとめてデータ入力パターン供給回路という）によってバリッド信号[Valid]が生成されるため、これらをＶａｌｉｄ生成部（Ｖａｌｉｄ生成回路）ともいう。
条件判定機能付きカウンタ７は、データ入力パターン供給部５としてのＲＡＭ５Ａから供給されるバリッド信号[Valid]が「１」（データが有効であることを示す）の場合にカウントアップするカウンタである。この条件判定機能付きカウンタ７によって、図１に示すように、ＲＡＭ５Ａから読み出されたバリッド信号[Valid]（データ入力パターン）に基づいて、バッファメモリ２から入力データData Outを読み出すためのアドレス信号（入力データ読出用アドレス値）Adr.w/cが生成される。このため、条件判定機能付きカウンタ７を、アドレス生成部ともいう。
【００３１】
データ並列回路部８は、主に入力データを上記波形３のようにするために、図１に示すように、入力データData Outをパラレルに展開して（即ち、入力データの構成を制御して）、入力データData1，Data2として、第１入力データ整形部９及び第２入力データ整形部１０のそれぞれに供給するためのものである。
このデータ並列回路部８は、図３に示すように、条件判定機能付きカウンタ７から供給されるカウント値（アドレス値，アドレス信号）Adr.w/cを、アドレス信号Adr.Inとして、バッファメモリ２に供給するための入力回路部１１と、バッファメモリ２から供給される入力データData Outを、入力データData1，Data2として、第１入力データ整形部９、又は、第１入力データ整形部９及び第２入力データ整形部１０に供給するための出力回路部１２とを備える。
【００３２】
ここでは、データ並列回路部の入力回路部１１は、例えば図３に示すように、入力データを上記波形１又は上記波形２のようにする場合にバッファメモリ２にアクセスするためのアドレス値と、入力データを上記波形３のようにする場合にバッファメモリ２にアクセスするためのアドレス値のいずれかを選択するセレクタ（第１セレクタ）１３と、入力データを上記波形３のようにする場合にバッファメモリ２に供給するアドレス値Adr.Inを生成するアドレス生成回路部１４とを備える。
【００３３】
ここで、アドレス生成回路部１４は、条件判定機能付きカウンタ７から供給されるアドレス信号Adr.w/cを、２倍の周波数のアドレス信号に変換するものである。
このアドレス生成回路部１４は、例えば図３に示すように、バッファメモリ２から供給されるアドレス値Adr.w/cを１ビットだけ左へシフトさせるシフタ１５と、シフタ１５から供給されるアドレス値に「１」を加算する加算器１６と、シフタ１５から供給されるアドレス値と加算器１６から供給されるアドレス値のいずれかを選択するセレクタ（第２セレクタ）１７とを備える。
【００３４】
このように構成されるデータ並列回路部８の入力回路部１１によって、入力データを上記波形１又は上記波形２のようにする場合は、条件判定機能付きカウンタ７から供給されるアドレス値Adr.w/cが、そのまま、アドレス値（アドレス信号）Adr.Inとして、バッファメモリ２に供給されることになる。
一方、入力データを上記波形３のようにする場合は、データ並列回路部８の入力回路部１１によって、条件判定機能付きカウンタ７から供給されるアドレス信号Adr.w/cが２倍の周波数のアドレス信号に変換され、アドレス値（アドレス信号）Adr.Inとして、バッファメモリ２に供給されることになる。
【００３５】
なお、このように、アドレス信号Adr.w/cを、２倍の周波数のアドレス信号Adr.Inに変換する入力回路部１１を備えるようにしているのは、リコンフィギュラブル・コア３の動作クロック（クロック１）に同期して出力回路部１２から入力データData1，Data2が出力されるようにするためである。
一方、データ並列回路部８の出力回路部１２は、例えば図３に示すように、入力データを上記波形１又は上記波形２のようにする場合と入力データを上記波形３のようにする場合とで入力データData1として出力するデータを選択するセレクタ（第３セレクタ）１８と、入力データを上記波形３のようにする場合に第１入力データ整形部９及び第２入力データ整形部１０のそれぞれに供給する入力データData1，Data2を生成するデータ生成回路部１９とを備える。
【００３６】
ここで、データ生成回路部１９は、バッファメモリ２から供給される入力データData Outを、２つの入力データData1，Data2に変換するものである。
このデータ生成回路部１９は、例えば図３に示すように、バッファメモリ２から供給された入力データData Outのうち、第１入力データ整形部９に供給するデータのみを通過させる第１ラッチ２０と、第１ラッチ２０から供給されるデータLatch1をクロック１に同期させるための第１レジスタ［例えばフリップフロップ（ＦＦ）］２１と、バッファメモリ２から供給された入力データData Outのうち、第２入力データ整形部１０に供給するデータのみを通過させる第２ラッチ２２と、第２ラッチ２２から供給されるデータLatch2をクロック１に同期させるための第２レジスタ［例えばフリップフロップ（ＦＦ）］２３とを備える。
【００３７】
このように構成されるデータ並列回路部８の出力回路部１２は、入力データを上記波形１又は上記波形２のようにする場合、バッファメモリ２から供給される入力データData Outを、そのまま第３セレクタ１８を介して、入力データData1として、第１入力データ整形部９に供給することになる。
一方、データ並列回路部８の出力回路部１２は、入力データを上記波形３のようにする場合、バッファメモリ２から供給される入力データData Outを、２つの入力データData1， Data2に変換し、入力データData1は第３セレクタ１８を介して、第１入力データ整形部９及び第２入力データ整形部１０に供給することになる。
【００３８】
なお、データ並列回路部８の構成は、これに限られるものではなく、バッファメモリ２から読み出される入力データをパラレルに展開することができるように構成されていれば良い。
第１入力データ整形部９及び第２入力データ整形部１０は、図１に示すように、バッファメモリ２から読み出され、データ並列回路部８を介して供給される入力データData1， Data2にバリッド情報[Valid]（バリッド信号；バリッドデータ；データが有効であるか無効であるかを示すフラッグ情報）を付加して整形し、入力データData1 w/v， Data2 w/vとして出力するものである。
【００３９】
例えば、図４（Ａ）に示すように、データ並列回路部８を介して供給される入力データData1（又はData2）が１６ビットのデータ幅を持っている場合、第１入力データ整形部９及び第２入力データ整形部１０は、図４（Ｂ）に示すように、この１６ビットのデータに、１ビットの有効・無効を示すフラッグビット（バリッドビット；例えば「１」の場合にデータは有効とし、「０」の場合にデータは無効とする）を付加して、リコンフィギュラブル・コア３に入力データ（入力信号）Data1 w/v（又はData2 w/v）として供給するようになっている。
【００４０】
ここで、例えば図４（Ｃ）の上側に示すような２進数表記の入力データData1（又はData2）の場合、入力データData1（又はData2）の内容は「２５６」であるが、フラッグビット（Valid；ここでは先頭ビット）が「０」になっているため、この入力データData1（又はData2）は無効データとして取り扱われる。
一方、図４（Ｃ）の下側に示すような２進数表記の入力データData1（又はData2）の場合、入力データData1（又はData2）の内容は「−１」（２の補数）であり、バリッドビット（ここでは先頭ビット）が「１」になっているため、この入力データData1（又はData2）は有効データとして取り扱われる。
【００４１】
このように、第１入力データ整形部９及び第２入力データ整形部１０は、入力データData1， Data2にバリッド情報[Valid]を付加し、入力データを有効データと無効データとを含むものとすることで、バリッド情報[Valid]の組み合わせ（バリッド情報列）によって構成されるデータ入力パターンに応じた所望の波形に整形し（即ち、入力タイミングが制御され）、入力データData1 w/v， Data2 w/vとして出力するようにしている。
【００４２】
セレクタ２５は、モード（Mode）が「０」の場合は、固定値「０」を選択し、モードが「１」の場合は、データ入力パターン供給部５としてのＲＡＭ５Ａから供給されたバリッド情報[Valid]を選択するようになっている。ここでは、図２（Ａ），（Ｂ）の波形１，２のようにする場合は、セレクタ２５のモードは「０」に設定され、図２（Ｃ）の波形３のようにする場合は、セレクタ２５のモードは「１」に設定されるようになっている。
【００４３】
ところで、本集積回路の具体的なシステム構成は、例えば図５に示すように、上述の入力データ制御部４、入力データ選択部１、バッファメモリ（入力側のバッファメモリ）２、リコンフィギュラブル・コア３のほかに、例えば、ＣＰＵ（制御部；制御回路）３０、ＲＡＭ（記憶部）３１、出力側のバッファメモリ３２、アドレスバス３３、データバス３４、アドレスデコーディング回路３５などを備えた構成になっている。
【００４４】
以下、本集積回路における入力データの制御方法（本システムの動作手順）について説明する。
まず、本集積回路は、入力データ制御部４による入力データの制御を行なう前に、例えば、以下のような処理を行なう。
ＣＰＵ３０からの命令に基づいて、ＲＡＭ３１に格納されているリコンフィギュラブル・コア３の回路構成を規定するコンフィギュレーションデータが読み出され、これがリコンフィギュラブル・コア３内のメモリに書き込まれる。これに応じて、リコンフィギュラブル・コア３の回路構成が切り替わる。
【００４５】
なお、入力データを上記波形１のようにする必要がある回路構成をコンフィギュレーション１といい、入力データを上記波形２のようにする必要がある回路構成をコンフィギュレーション２といい、入力データを上記波形３のようにする必要がある回路構成をコンフィギュレーション３という。
また、ＣＰＵ３０からの命令に基づいて、ＲＡＭ３１に格納されている所望のデータ入力パターンのデータが読み出され、これがデータ入力パターン供給部５としてのＲＡＭ５Ａに書き込まれる。
【００４６】
例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１又はコンフィギュレーション３にする場合（即ち、入力データを上記波形１又は上記波形３のようにする場合）、データ入力パターン供給部５としてのＲＡＭ５Ａの０番地，１番地，・・・，２ｎ番地，２ｎ＋１番地に順に１，１，・・・，１，１というフラッグ情報（バリッド信号）[Valid]を対応づけたデータ（データ入力パターン）が書き込まれる。
【００４７】
また、例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション２にする場合（即ち、入力データを上記波形２のようにする場合）、データ入力パターン供給部５としてのＲＡＭ５Ａの０番地，１番地，・・・，２ｎ番地，２ｎ＋１番地に順に１，０，・・・，１，０というフラッグ情報（バリッド信号）[Valid]を対応づけたデータ（データ入力パターン）が書き込まれる。
【００４８】
また、ＣＰＵ３０からの命令に基づいて、セレクタ１３，１８，２５のモード（Mode）が設定される。
例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１又はコンフィギュレーション２にする場合（即ち、入力データを上記波形１又は上記波形２のようにする場合）、セレクタ１３，１８，２５のモード（Mode）は「０」に設定される。
【００４９】
また、例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション３にする場合（即ち、入力データを上記波形３のようにする場合）、セレクタ１３，１８，２５のモード（Mode）は「１」に設定される。
また、ＣＰＵ３０からの命令に基づいて、例えばリコンフィギュラブル・コア３の回路構成をコンフィギュレーション３にする場合（即ち、入力データを上記波形３のようにする場合）、第２セレクタ１７，第１ラッチ２０，第２ラッチ２２に制御信号ＭＳＢが供給される。
【００５０】
なお、ＡＳＩＣを構成する他のブロック（回路）に対して制御情報などの設定が必要であれば、その設定も行なわれる。例えば、リコンフィギュラブル・コア３へ入力データを供給する側の回路（ブロック）やリコンフィギュラブル・コア３からの出力データを受け取る側の回路（ブロック）に対して、例えばデータの供給や受け取りのための準備として何らかの設定が必要な場合には、例えばフラッグ信号を送るなどして、そのような設定が行なわれる。
【００５１】
このような処理を行なった後、入力データ制御部４によって、以下のような制御が行なわれる。
まず、ＣＰＵ３０からの命令に基づいて、リコンフィギュラブル・コア３の回路構成に応じた処理（ここでは処理１〜３）に必要な入力データ（ここでは入力１〜３）が、入力データ選択部１によって選択されて、リコンフィギュラブル・コア３の外部の他の回路（例えばＡＳＩＣを構成する他のブロック）から供給され、入力側のバッファメモリ２に書き込まれる。
【００５２】
この場合、ＣＰＵ３０は、リコンフィギュラブル・コア３へ入力データを供給する側の回路（ブロック）に対して、入力データの供給の開始制御及び終了制御を行なう。
このようにして、バッファメモリ２を構成する一方のバッファメモリへの入力データの書き込みが終了し、バッファメモリ２を構成する表裏のバッファメモリの切り替えが行なわれた後、ＣＰＵ３０からの命令に基づいて、制御信号３６がデータ入力カウンタ６に入力され、データ入力カウンタ６はリセットされ、カウントアップを開始する。
【００５３】
ここでは、データ入力カウンタ６は、図６〜図８に示すように、クロック１[clock 1]に同期してカウント値（アドレス信号；バリッド情報取出用アドレス値；パターン取出用アドレス値）Adr.を出力するようになっている。そして、データ入力カウンタ６のアドレス信号Adr.は、データ入力パターン供給部５としてのＲＡＭ５Ａに供給される（図１参照）。
【００５４】
次に、データ入力パターン供給部５としてのＲＡＭ５Ａは、データ入力カウンタ６からのアドレス信号Adr.を受け取ると、このアドレス信号Adr.に基づいて、アドレス（番地）に対応して格納されているバリッド情報[Valid]を、条件判定機能付きカウンタ７と、第１入力データ整形部９及び第２入力データ整形部１０とに供給する（図１参照）。これは、バリッド情報[Valid]によって構成されるデータ入力パターンを供給する（ＲＡＭ５Ａからデータ入力パターンが取り出される）ことを意味する。
【００５５】
例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１又はコンフィギュレーション３にする場合（即ち、入力データを上記波形１又は上記波形３のようにする場合）、データ入力パターン供給部５としてのＲＡＭ５Ａには、０番地，１番地，・・・，２ｎ番地，２ｎ＋１番地に順に１，１，・・・，１，１というバリッド信号[Valid]を対応づけたデータ（データ入力パターン）が書き込まれている。このため、図６又は図８に示すように、データ入力カウンタ６からのアドレス信号Adr.が０から順にカウントアップされていくと、１，１，・・・，１，１というバリッド信号[Valid]が、条件判定機能付きカウンタ７と、第１入力データ整形部９及び第２入力データ整形部１０とに供給されることになる（図１参照）。
【００５６】
また、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション２にする場合（即ち、入力データを上記波形２のようにする場合）、データ入力パターン供給部５としてのＲＡＭ５Ａには、０番地，１番地，・・・，２ｎ番地，２ｎ＋１番地に順に１，０，・・・，１，０というバリッド信号[Valid]を対応づけたデータ（データ入力パターン）が書き込まれている。このため、図７に示すように、データ入力カウンタ６からのアドレス信号Adr.が０から順にカウントアップされていくと、１，０，・・・，１，０というバリッド信号[Valid]が、条件判定機能付きカウンタ７と、第１入力データ整形部９及び第２入力データ整形部１０とに供給されることになる（図１参照）。
【００５７】
次いで、バリッド信号[Valid]を受け取った条件判定機能付きカウンタ７は、バリッド信号[Valid]が「１」（データが有効であることを示す）の場合にカウントアップし（図６〜図８のAdr.w/c参照）、そのカウント値（アドレス値，アドレス信号；入力データ読出用アドレス値）Adr.w/cをデータ並列回路部８に供給する（図１参照）。これは、データ入力パターンに基づいて、バッファメモリ２から入力データを読み出すためのアドレス値を生成することを意味する。
【００５８】
例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１にする場合（即ち、入力データを上記波形１のようにする場合）、条件判定機能付きカウンタ７に１，１，・・・，１，１というバリッド信号[Valid]が供給される。このため、条件判定機能付きカウンタ７はクロック１[clock 1]の１クロック毎にカウントアップされる（図６のValid，Adr.w/c参照）。この条件判定機能付きカウンタ７のカウント値Adr.w/cは、データ並列回路部８の入力回路部１１に供給され、第１セレクタ１３を介して、そのまま、アドレス値（アドレス信号）Adr.Inとして、バッファメモリ２に供給されることになる（図３参照）。
【００５９】
また、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション２にする場合（即ち、入力データを上記波形２のようにする場合）、条件判定機能付きカウンタ７に１，０，・・・，１，０というバリッド信号[Valid]が供給される。このため、条件判定機能付きカウンタ７がクロック１[clock 1]の２クロック毎にカウントアップされる（図７のValid，Adr.w/c参照）。この条件判定機能付きカウンタ７のカウント値Adr.w/cは、データ並列回路部８の入力回路部１１に供給され、第１セレクタ１３を介して、そのまま、アドレス値（アドレス信号）Adr.Inとして、バッファメモリ２に供給されることになる（図３参照）。
【００６０】
また、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション３にする場合（即ち、入力データを上記波形３のようにする場合）、条件判定機能付きカウンタ７に１，１，・・・，１，１というバリッド信号[Valid]が供給される。このため、条件判定機能付きカウンタ７はクロック１[clock 1]の１クロック毎にカウントアップされる（図８のValid，Adr.w/c参照）。この条件判定機能付きカウンタ７のカウント値（バッファメモリの大きさに応じた所望のビット数を持っている）Adr.w/cは、データ並列回路部８の入力回路部１１に供給される（図３参照）。そして、データ並列回路部８の入力回路部１１によって周波数を２倍にする処理がなされた後、アドレス値（アドレス信号）Adr.Inとして、バッファメモリ２に供給されることになる（図３参照）。
【００６１】
ここでは、データ並列回路部８の入力回路部１１によって、以下のような処理が行なわれる。
なお、バッファメモリ２は、入力データを上記波形１又は上記波形２のようにする場合（セレクタ１３，１８，２５のモード（Mode）が「０」に設定される場合）は、クロック１[clock 1]で動作するようになっており、入力データを上記波形３のようにする場合（モードが「１」に設定される場合）は、クロック１[clock 1]の２倍の周波数のクロック２[clock 2]で動作するようになっている。
【００６２】
また、データ並列回路部８は、入力データを上記波形１又は上記波形２のようにする場合（セレクタ１３，１８，２５のモードが「０」に設定される場合）は、クロック１[clock 1]に同期してバッファメモリ２からデータを読み出し、それを、第１入力データ整形部９に供給すようになっており、入力データを上記波形３のようにする場合（モードが「１」に設定される場合）は、クロック１[clock 1]の２倍の周波数のクロック２[clock 2]に同期してバッファメモリ２からデータを読み出し、それを、第１入力データ整形部９及び第２入力データ整形部１０に供給するようになっている。
【００６３】
まず、図３に示すように、条件判定機能付きカウンタから供給されるアドレス信号Adr.w/cは、２つに分岐され、一方はシフタ１５に供給され、他方は第１セレクタ１３に供給される。
次いで、シフタ１５によって、カウント値を１ビットだけ左へシフト（２倍）させる処理がなされる。そして、図３に示すように、シフタ１５で処理されたカウント値は、さらに２つに分岐され、一方は加算器１６に供給され、他方は第２セレクタ１７に供給される。
【００６４】
次に、加算器１６によって、シフタ１５で処理されたカウント値に「１」を加算する処理がなされる。そして、図３に示すように、加算器１６で処理されたカウント値は第２セレクタ１７に供給される。
その後、図３に示すように、第２セレクタ１７によって、制御信号ＭＳＢが「０」の場合は、シフタ１５から供給されるカウント値が選択される一方、制御信号ＭＳＢが「１」の場合は、加算器１６から供給されるカウント値が選択される。そして、選択されたカウント値が第１セレクタ１３に供給される。
【００６５】
ここでは、図８に示すように、制御信号ＭＳＢとして、クロック２[clock 2]の立ち上がりに同期して０，１，０，１・・・というように変化する信号が第２セレクタ１７に供給されるため、シフタ１５から供給されるカウント値と加算器１６から供給されるカウント値とがクロック２[clock 2]に同期して交互に選択されることになる。この結果、クロック１[clock 1]に同期するアドレス信号（条件判定機能付きカウンタのカウント値）Adr.w/cが、クロック１[clock 1]の２倍の周波数のクロック２[clock 2]に同期するアドレス信号（カウント値）Adr.Inに変換されることになる。
【００６６】
そして、図３に示すように、第１セレクタ１３によって、モード（Mode）が「０」の場合は、条件判定機能付きカウンタ７から供給されるカウント値Adr.w/cが選択される一方、モードが「１」の場合は、第２セレクタ１７を介して供給されるカウント値（クロック１[clock 1]の２倍の周波数のクロック２[clock 2]に同期するアドレス信号）が選択され、アドレス値Adr.Inとして出力される。
【００６７】
例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１にする場合（即ち、入力データを上記波形１のようにする場合）、第１セレクタ１３のモードは「０」になるようにしているため、この第１セレクタ１３を介して、条件判定機能付きカウンタ７から供給されるアドレス値Adr.w/cが、そのままアドレス値Adr.Inとして、バッファメモリ２に供給されることになる（図６参照）。
【００６８】
また、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション２にする場合（即ち、入力データを上記波形２のようにする場合）、第１セレクタ１３のモードは「０」になるようにしているため、この第１セレクタ１３を介して、条件判定機能付きカウンタ７から供給されるアドレス値Adr.w/cが、そのままアドレス値Adr.Inとして、バッファメモリ２に供給されることになる（図７参照）。
【００６９】
また、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション３にする場合（即ち、入力データを上記波形３のようにする場合）、第１セレクタ１３のモードは「１」になるようにしているため、この第１セレクタ１３を介して、第２セレクタ１７を介して供給されるカウント値（クロック１[clock 1]の２倍の周波数のクロック２[clock 2]に同期するアドレス信号）がアドレス値Adr.Inとしてバッファメモリ２に供給されることになる（図８参照）。
【００７０】
次に、図３に示すように、データ並列回路部８の入力回路部１１を介して供給されるアドレス値Adr.Inに基づいて、バッファメモリ２からデータ並列回路部８の出力回路部１２へ入力データData Outが供給される。
本実施形態では、データ並列回路部８の出力回路部１２では、以下のような処理が行なわれる。
【００７１】
まず、図３に示すように、バッファメモリ２から供給される入力データ（入力データ信号）Data Outは、２つに分岐され、一方は第３セレクタ１８に供給され、他方はデータ生成回路部１９に供給される。
データ生成回路部１９では、さらに入力データData Outが２つに分岐され、一方は第１ラッチ２０に供給され、他方は第２ラッチ２２に供給される。
【００７２】
ここでは、第１ラッチ２０は、制御信号ＭＳＢが「１」の場合は、供給された入力データData Outを通過させ、「０」の場合はデータを保持するようになっている。一方、第２ラッチ２２は、制御信号ＭＳＢが「０」の場合は、供給された入力データData Outを通過させ、「１」の場合はデータを保持するようになっている。
ここで、制御信号ＭＳＢは、入力データData Outを、入力データData1，Data2に振り分けるための制御信号である。ここでは、図８に示すように、バッファメモリ２からクロック２[clock 2]の立ち上がりに同期して１，０，１，０・・・というように変化する制御信号ＭＳＢが、第１ラッチ２０及び第２ラッチ２２に供給されるようになっている。なお、制御信号ＭＳＢとしては、クロック１[clock 1]の反転信号を用いても良い。
【００７３】
このため、図８に示すように、第３セレクタ１８を介してバッファメモリ２から供給される入力データData Outのうち、奇数番目に供給されるデータ（Ｄ０，Ｄ２，Ｄ４・・・）が、第１ラッチ２０を通過し、偶数番目に供給されるデータ（Ｄ１，Ｄ３，Ｄ５・・・）が、第２ラッチ２２を通過することになる。また、各ラッチ２０，２２は、クロック２[clock 2]に同期して供給される各データを通過させた後、クロック２[clock 2]の１クロック分だけ、そのデータを保持するため、各ラッチ２０，２２から出力されるデータLatch1，Latch2は、図８に示すように、クロック２[clock 2]の半分の周波数（クロック１[clock 1]）になる。
【００７４】
そして、図８に示すように、それぞれのラッチ２０，２２から出力されるデータLatch1，Latch2は、クロック１[clock 1]の立ち下がりに同期して、それぞれ、第１レジスタ２１及び第２レジスタ２３に読み込まれ、第１レジスタ２１に読み込まれたデータは第３セレクタ１８に供給され、第２レジスタ２３に読み込まれたデータは、入力データData2として、第２入力データ整形部１０に供給される（図３参照）。
【００７５】
次に、図３に示すように、第３セレクタ１８によって、モード（Mode）が「０」の場合は、バッファメモリ２から供給される入力データData Outが選択され、モードが「１」の場合は、第１レジスタ２１から供給されるデータが選択され、入力データData1として、第１入力データ整形部９へ供給される。
例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１又はコンフィギュレーション２にする場合（即ち、入力データを上記波形１又は波形２のようにする場合）、第３セレクタ１８のモードは「０」になるようにしているため、この第３セレクタ１８を介して、バッファメモリ２から供給される入力データData Outが、そのまま入力データData1として、第１入力データ整形部９へ供給されることになる（図６又は図７参照）。
【００７６】
一方、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション３にする場合（即ち、入力データを上記波形３のようにする場合）、図３に示すように、第３セレクタ１８のモードは「１」になるようにしているため、上述のような処理がなされたデータが、入力データData1として、第１入力データ整形部９に供給されることになる（図８参照）。
【００７７】
次に、図１に示すように、第１入力データ整形部９，第２入力データ整形部１０によって、入力データData1，Data2にバリッド情報[Valid]が付加されて整形され、入力データData1 w/v，Data2 w/vとして、リコンフィギュラブル・コア３に供給される。
例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１又はコンフィギュレーション２にする場合（即ち、入力データを上記波形１又は波形２のようにする場合）、図１に示すように、第１入力データ整形部９によって、データ並列回路部８から供給された入力データData1に、データ入力パターン供給部５としてのＲＡＭ５Ａから供給されたバリッド情報[Valid]（ここでは条件判定機能付きカウンタ７に供給されるバリッド信号よりも３クロック分遅らせて供給される）が付加される。これにより、入力データData1がリコンフィギュラブル・コア３の回路構成に応じて整形され、入力データData1 w/vとして、リコンフィギュラブル・コア３へ出力される（図６又は図７参照）。
【００７８】
このようにして、図２（Ａ）の波形１又は図２（Ｂ）の波形２に示すようなタイミングでリコンフィギュラブル・コア３にデータが入力されることになる。
ところで、本実施形態では、第２入力データ整形部１０には、図１に示すように、セレクタ２５を介してバリッド情報[Valid]が供給されるようになっている。
そして、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１又はコンフィギュレーション２にする場合（即ち、入力データを上記波形１又は波形２のようにする場合）、セレクタ２５のモードは「０」になるようにしており、モードが「０」の場合は、第２入力データ整形部１０にはセレクタ２５を介してバリッド信号[Valid]として固定値「０」が供給される。
【００７９】
このため、第２入力データ整形部１０によって、データ並列回路部８から供給された入力データData2にバリッド情報[Valid]「０」が付加され（即ち、入力データData2の全てが無効にされ）、入力データData2 w/vとして、リコンフィギュラブル・コア３へ出力される。
一方、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション３にする場合（即ち、入力データを上記波形３のようにする場合）、セレクタ２５のモードは「１」になるようにしており、モードが「１」の場合は、第２入力データ整形部１０にはセレクタ２５を介してデータ入力パターン供給部５としてのＲＡＭ５Ａから供給されたバリッド情報[Valid]が供給される（ここでは条件判定機能付きカウンタに供給されるバリッド信号よりも３クロック分遅らせて供給される）。
【００８０】
このため、図１に示すように、第１入力データ整形部９及び第２入力データ整形部１０によって、データ並列回路部８から供給された入力データData1，Data2に、それぞれ、データ入力パターン供給部５としてのＲＡＭ５Ａから供給されたバリッド情報[Valid]（ここでは条件判定機能付きカウンタに供給されるバリッド信号よりも３クロック分遅らせて供給される）が付加される。これにより、入力データData1，Data2のそれぞれがリコンフィギュラブル・コア３の回路構成に応じて整形され、入力データData1 w/v，Data2 w/vとして（図８参照）、リコンフィギュラブル・コア３に供給される。
【００８１】
このようにして、図２（Ｃ）の波形３に示すようなタイミングでリコンフィギュラブル・コア３にデータが入力されることになる。
その後、リコンフィギュラブル・コア３によって処理され、他の回路（例えばＡＳＩＣを構成する他のブロック）へ出力されるデータは、図５に示すように、一旦、出力側のバッファメモリ３２に保持される。そして、ＣＰＵ３０からの命令に基づいて、この出力側のバッファメモリ３２に保持された出力データが、リコンフィギュラブル・コア３からの出力データを受け取る側の回路に供給（出力）される。
【００８２】
この場合、ＣＰＵ３０は、リコンフィギュラブル・コア３から出力されるデータを受け取る側の回路に対して、出力側のバッファメモリ３２から出力データを受け取るのに必要な制御（開始制御及び終了制御）を行なう。
なお、本実施形態では、入力データ選択部１、入力側のバッファメモリ２、入力データ制御部４、リコンフィギュラブル・コア３、出力側のバッファメモリ３２、ＲＡＭ３１に対する制御をＣＰＵ３０によって行なうようにしているが、これに限られるものではなく、例えば専用のプロセッサなどの制御回路（制御部）によって、これらを制御するようにしても良い。
【００８３】
したがって、本実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法によれば、入力データをリコンフィギュラブル回路３で確実に処理できるという利点がある。
［第２実施形態］
次に、本発明の第２実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法について、図９を参照しながら説明する。
【００８４】
本実施形態にかかる集積回路は、上述の第１実施形態のものに対し、データ入力パターン供給部の構成が異なる。
つまり、本実施形態では、図９に示すように、データ入力パターン供給部５を、データ入力パターン（バリッド情報）を発生するパターン発生回路（バリッド情報発生回路）５Ｂによって構成している。なお、図９では、上述の第１実施形態（図１参照）と同一のものには同一の符号を付している。
【００８５】
このような構成は、例えば、比較的面積コストの大きいＲＡＭを使用したくない場合、データの入力タイミングをシンプルな場合などに適しており、より簡単なロジックのみでデータ入力パターン供給部５を設計することができる。
ここでは、３つのデータ入力パターン、即ち、１データ１クロック、１データ２クロック、１データ４クロックの切り替えが可能なパターン発生回路５Ｂを例に、図９を参照しながら説明する。
【００８６】
本パターン発生回路５Ｂは、図９に示すように、２つのレジスタＲ０，Ｒ１と、５つのＡＮＤ回路４１〜４５と、１つのＯＲ回路４６とを備えるものとして構成される。
ここで、レジスタＲ０，Ｒ１は、外部（例えばＣＰＵ）から制御可能なレジスタである。つまり、レジスタＲ０，Ｒ１の値（データ入力パターンを決定する制御情報）は、外部（例えばＣＰＵ）から制御でき、リコンフィギュラブル・コア３の回路構成に応じて変更できるようになっている。
【００８７】
また、本パターン発生回路５Ｂでは、データ入力カウンタ６から供給されるカウント値（アドレス値，アドレス信号；バリッド情報取出用アドレス値；パターン取出用アドレス値）Adr.のうち、下位２ビットだけを用いるようにしている。
つまり、本パターン発生回路５ＢのAddress[0]で示すアドレスバスにはデータ入力カウンタ６から供給されるアドレス値Adr.の最下位ビットの値が入力されるようになっている。また、Address[1]で示すアドレスバスにはデータ入力カウンタ６から供給されるアドレス値Adr.の最下位から２番目のビットの値が入力されるようになっている。
【００８８】
このように構成されるパターン発生回路５Ｂにおいて、レジスタの値をＲ０＝０，Ｒ１＝０のように設定すると、１クロック毎にデータが供給され、Ｒ０＝１，Ｒ１＝０のように設定すると、２クロック毎にデータが供給され、Ｒ０＝１，Ｒ１＝０のように設定すると、４クロック毎にデータが供給されることになる。
つまり、パターン発生回路５Ｂのレジスタの値をＲ０＝０，Ｒ１＝０のように設定すると、１クロック毎にデータを供給するための入力タイミングを規定するデータ入力パターン（入力タイミング情報）が生成され（即ち、１，１，・・・，１，１というバリッド情報[Valid]が生成され）、これが条件判定機能付きカウンタ７、第１入力データ整形部９及び第２入力データ整形部１０に供給されることになる。これにより、入力データを上記波形１又は上記波形３［図２（Ａ）又は（Ｃ）参照］のようにすることができる。
【００８９】
また、パターン発生回路５Ｂのレジスタの値をＲ０＝１，Ｒ１＝０のように設定すると、２クロック毎にデータを供給するための入力タイミングを規定するデータ入力パターンが生成され（即ち、１，０，・・・，１，０というバリッド情報[Valid]が生成され）、これが条件判定機能付きカウンタ７、第１入力データ整形部９及び第２入力データ整形部１０に供給されることになる。これにより、入力データを上記波形２［図２（Ｂ）参照］のようにすることができる。
【００９０】
また、パターン発生回路５Ｂのレジスタの値をＲ０＝１，Ｒ１＝０のように設定すると、４クロック毎にデータを供給するための入力タイミングを規定するデータ入力パターンが生成され（即ち、１，０，０，０，・・・，１，０，０，０というバリッド情報[Valid]が生成され）、これが条件判定機能付きカウンタ７、第１入力データ整形部９及び第２入力データ整形部１０に供給されることになる。
【００９１】
なお、データ入力カウンタ６及びデータ入力パターン供給部５としてのパターン発生回路５Ｂ（これらをまとめてデータ入力パターン供給回路という）によってバリッド信号[Valid]が生成されるため、これらをＶａｌｉｄ生成部（Ｖａｌｉｄ生成回路）ともいう。
なお、ここでは、レジスタＲ０，Ｒ１を用いてデータ入力パターンを設定するようにしているが、これに限られるものではなく、例えばレジスタの代わりに、別の回路（ブロック）からの制御信号を用いるようにしても良い。
【００９２】
また、その他の構成及び動作は、上述の第１実施形態及びその変形例のものと同じであるため、ここでは説明を省略する。
したがって、本実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法によれば、上述の第１実施形態のものと同様に、入力データをリコンフィギュラブル回路で確実に処理できるという利点がある。
［第３実施形態］
次に、本発明の第３実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法について、図１０（Ａ），（Ｂ）を参照しながら説明する。
【００９３】
本実施形態にかかる集積回路は、上述の第１実施形態及び第２実施形態のものに対し、データ入力パターン供給部の構成が異なる。
つまり、上述の第１実施形態及び第２実施形態では、データ入力パターン供給部５を何らかのハードウェアによって実現しているのに対し、本集積回路では、図１０（Ａ）に示すように、上述の第１実施形態及び第２実施形態のデータ入力パターン供給部５及びデータ入力カウンタ６に相当する構成［即ち、条件判定機能付きカウンタ７に供給されるバリッド情報[Valid]（フラッグ情報；データを供給するかどうかのフラッグ信号）を生成するＶａｌｉｄ生成部］を、リコンフィギュラブル・コア３の一部を用いて実現している。なお、図１０（Ａ）では、上述の第１実施形態（図１参照）と同一のものには同一の符号を付している。
【００９４】
このため、本集積回路は、図１０（Ａ）に示すように、リコンフィギュラブル・コア３の一部の演算器からなる回路を用いてＶａｌｉｄ生成部（フラグ情報生成部，データ入力パターン供給回路）５６を構成し、このＶａｌｉｄ生成部５６によって生成されたバリッド情報[Valid]（データ入力パターン）を入力データ制御部４の条件判定機能付きカウンタ７、第１入力データ整形部９及び第２入力データ整形部１０に供給するようになっている。
【００９５】
本実施形態では、Ｖａｌｉｄ生成部５６は、例えば図１０（Ｂ）に示すように、カウンタ５７と、ＡＮＤ回路５８と、比較器（ＥＱ）５９とを備える回路（Ｖａｌｉｄ生成回路）にしている。なお、Ｖａｌｉｄ生成部５６の構成はこれに限られるものではない。
ここで、ＡＮＤ回路５８は、０から任意の値までカウントアップするカウンタ５７からのカウンタ値と、固定値「１」（０ｘ０００１）をビットアンドし、下位の１ビットのみを抽出して出力するようになっている。
【００９６】
比較器（ＥＱ）５９は、ＡＮＤ回路５８で抽出された値と固定値「０」と比較し、一致する場合（即ち、ＡＮＤ回路５８で抽出された値が「０」の場合）に「１」を出力するようになっている。
このように構成されるＶａｌｉｄ生成部５６では、カウンタ５７のカウント値が偶数の場合にバリッド信号[Valid]として「１」が生成されるため、バリッド信号[Valid]は１，０，・・・，１，０となる。つまり、２クロックにつき１データを供給するための入力タイミングを規定するデータ入力パターン（入力タイミング情報）が生成されることになる。これにより、入力データを、２クロックにつき１データが入力される上記波形２［図２（Ｂ）参照］のようにすることができる。
【００９７】
なお、ここでは、Ｖａｌｉｄ生成部５６を、入力データを波形２［図２（Ｂ）参照］のようにするためのバリッド情報[Valid]を生成する回路として構成しているが、これに限られるものではなく、例えば、入力データを上記波形１又は上記波形３［図２（Ａ）又は（Ｃ）参照］のようにするためのバリッド情報[Valid]を生成する回路として構成することもできる。
【００９８】
この場合、Ｖａｌｉｄ生成部５６を、例えば、２つの入力端子を持つＡＮＤ回路によって構成し、それぞれの入力端子にいずれも固定値「１」が入力されるようにすれば良い。このような構成にすることで、バリッド信号[Valid]として「１」が連続して生成されることになる（即ち、１，１，・・・，１，１というバリッド情報[Valid]になる）。つまり、１クロックにつき１データを供給するための入力タイミングを規定するデータ入力パターン（入力タイミング情報）が生成されることになる。これにより、入力データを上記波形１又は上記波形３［図２（Ａ）又は（Ｃ）参照］のようにすることができる。
【００９９】
なお、その他の構成及び動作は、上述の第１実施形態、第２実施形態及び変形例のものと同じであるため、ここでは説明を省略する。
したがって、本実施形態にかかる集積回路及びリコンフィギュラブル回路の入力データ制御方法によれば、上述の第１実施形態や第２実施形態と同様に、入力データをリコンフィギュラブル回路で確実に処理できるという利点がある。
［その他］
なお、本発明は、上述した各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形することができる。
【０１００】
例えば、入力データ制御部４の構成や動作は、上述の各実施形態のものに限られるものではなく、リコンフィギュラブル・コア（リコンフィギュラブル回路）３の回路構成に応じてデータが入力されるように構成すれば良い。
また、上述の各実施形態では、処理１〜３に応じて、それぞれ、入力データを波形１〜３のようにする場合を例に説明しているが、これに限られるものではなく、リコンフィギュラブル・コア３によって処理できるように、リコンフィギュラブル・コア３の回路構成に応じてデータが入力されるように構成すれば良い。
【０１０１】
例えば、上述の各実施形態では、入力データを波形２のようにする場合と入力データを波形３のようにする場合とを別個に説明しているが、入力データを波形３のようにする場合（リコンフィギュラブル・コア３の２つのポートのそれぞれにデータを入力する場合）に、入力データを波形２のようにするためのデータ入力パターン［リソース（回路構成）を切り替える時間に対応する時間間隔をあけてデータを入力するデータ入力パターン］を適用することもできる。
【０１０２】
また、例えば、上述の各実施形態では、処理３を、２データに対して１クロックで処理するものとし、波形３を、リコンフィギュラブル・コア３の２つのポートのそれぞれに１クロックにつき１データが入力されるような波形とし、データ並列回路部８を、入力データData Outを２つの入力データData1，Data2にするものとし、第１入力データ整形部９及び第２入力データ整形部１０を設ける場合を例に説明しているが、これに限られるものではなく、例えば、処理３を、複数のデータに対して１クロックで処理するものとし、波形３を、リコンフィギュラブル・コアの複数のポートのそれぞれにデータが入力されるような波形とし、データ並列回路部を、入力データData Outを複数の入力データにするものとし、複数の入力データ整形部（入力データ整形回路）を設けるようにしても良い。
【０１０３】
また、上述の各実施形態では、データ並列回路部８を備えるものとして構成しているが、これに限られるものではなく、例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１又はコンフィギュレーション２にする（即ち、入力データを上記波形１又は波形２のようにする）だけで良い場合には、例えば図１１に示すように、データ並列回路部を備えないものとして構成することもできる。この場合、入力データ整形部も１つだけ設ければ良い。
【０１０４】
また、上述の各実施形態では、入力データ整形部を備えるものとして構成しているが、これに限られるものではなく、例えば、リコンフィギュラブル・コア３の回路構成をコンフィギュレーション１又はコンフィギュレーション３にする（即ち、入力データを上記波形１又は波形３のようにする）だけで良い場合には、例えば図１２に示すように、入力データ整形部を備えないものとして構成することもできる。
【０１０５】
また、上述の各実施形態では、本発明を、例えばＡＳＩＣの中にリコンフィギュラブル・コア（リコンフィギュラブル回路）３を入れたものに適用した場合を例に説明しているが、これに限られるものではなく、本発明は、再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路を備える集積回路に広く適用することができる。
以下、上述の各実施形態に関し、更に、付記を開示する。
【０１０６】
（付記１）
再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路と、
前記リコンフィギュラブル回路の構成に応じてデータが入力されるように入力データを制御する入力データ制御部とを備えることを特徴とする集積回路。
（付記２）
前記入力データ制御部が、前記リコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンを供給するデータ入力パターン供給部を備えることを特徴とする付記１記載の集積回路。
【０１０７】
（付記３）
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記データ入力パターンを格納するランダムアクセスメモリによって構成され、
前記入力データ制御部が、前記ランダムアクセスメモリにアクセスするためのアドレス値を生成するカウンタと、前記ランダムアクセスメモリから読み出される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする付記２記載の集積回路。
【０１０８】
（付記４）
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記データ入力パターンを発生するパターン発生回路によって構成され、
前記入力データ制御部が、前記パターン発生回路に入力されるアドレス値を生成するカウンタと、前記パターン発生回路から供給される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする付記２記載の集積回路。
【０１０９】
（付記５）
入力データを一時的に保持するバッファメモリを備え、
前記データ入力パターン供給部が、前記リコンフィギュラブル回路の一部の演算器からなる回路によって構成され、
前記入力データ制御部が、前記データ入力パターン供給部から供給される前記データ入力パターンに基づいて前記バッファメモリから入力データを読み出すためのアドレス値を生成する条件判定機能付きカウンタとを備えることを特徴とする付記２記載の集積回路。
【０１１０】
（付記６）
前記入力データ制御部が、前記入力データをパラレルに展開するデータ並列回路部を備えることを特徴とする付記１〜５のいずれか１項に記載の集積回路。
（付記７）
前記データ入力パターン供給部が、前記データ入力パターンを構成するバリッド情報を供給するように構成され、
前記入力データ制御部が、前記入力データに前記バリッド情報を付加して前記入力データを整形する入力データ整形部を備えることを特徴とする付記１〜６のいずれか１項に記載の集積回路。
【０１１１】
（付記８）
再構成可能に相互に結合される複数の演算器を含むリコンフィギュラブル回路の構成に応じた入力タイミングを規定するデータ入力パターンを取り出し、
前記データ入力パターンに基づいて前記リコンフィギュラブル回路に入力データを入力することを特徴とするリコンフィギュラブル回路の入力データ制御方法。
【０１１２】
（付記９）
前記入力データをバッファメモリに書き込み、
前記データ入力パターンに基づいて前記バッファメモリから前記入力データを読み出すための入力データ読出用アドレス値を生成し、
前記入力データ読出用アドレス値に基づいて前記バッファメモリから前記入力データを読み出して前記リコンフィギュラブル回路に入力することを特徴とする付記８記載のリコンフィギュラブル回路の入力データ制御方法。
【０１１３】
（付記１０）
前記データ入力パターンが格納されているランダムアクセスメモリにアクセスするためのパターン取出用アドレス値を生成し、
前記パターン取出用アドレス値に基づいて前記ランダムアクセスメモリから前記データ入力パターンを取り出すことを特徴とする付記８又は９記載のリコンフィギュラブル回路の入力データ制御方法。
【０１１４】
（付記１１）
前記データ入力パターンを発生するパターン発生回路に入力されるパターン取出用アドレス値を生成し、
前記パターン取出用アドレス値に基づいて前記パターン発生回路から前記データ入力パターンを取り出すことを特徴とする付記８又は９記載のリコンフィギュラブル回路の入力データ制御方法。
【０１１５】
（付記１２）
前記リコンフィギュラブル回路の一部の演算器からなる回路を用いて生成されたデータ入力パターンを取り出すことを特徴とする付記８又は９記載のリコンフィギュラブル回路の入力データ制御方法。
（付記１３）
前記入力データをパラレルに展開して、前記リコンフィギュラブル回路に入力することを特徴とする付記８〜１２のいずれか１項に記載のリコンフィギュラブル回路の入力データ制御方法。
【０１１６】
（付記１４）
前記データ入力パターンとして、バリッド情報によって構成されるデータ入力パターンを取り出し、
前記入力データに前記バリッド情報を付加して前記入力データを整形することを特徴とする付記８〜１３のいずれか１項に記載のリコンフィギュラブル回路の入力データ制御方法。
【図面の簡単な説明】
【０１１７】
【図１】本発明の第１実施形態にかかる集積回路の構成を示す模式図である。
【図２】（Ａ）〜（Ｃ）は、本発明の第１実施形態にかかる集積回路の入力データ制御部によって生成される波形１〜３を示す模式図である。
【図３】本発明の第１実施形態にかかる集積回路のデータ並列回路部の構成を示す模式図である。
【図４】（Ａ）〜（Ｃ）は、本発明の第１実施形態にかかる集積回路に備えられる入力データ整形部における処理を説明するための図である。
【図５】本発明の第１実施形態にかかる集積回路のシステム構成を説明するための模式図である。
【図６】本発明の第１実施形態にかかる集積回路によって入力データを波形１のようにする場合の動作を説明するためのタイムチャートである。
【図７】本発明の第１実施形態にかかる集積回路によって入力データを波形２のようにする場合の動作を説明するためのタイムチャートである。
【図８】本発明の第１実施形態にかかる集積回路によって入力データを波形３のようにする場合の動作を説明するためのタイムチャートである。
【図９】本発明の第２実施形態にかかる集積回路の構成を示す模式図である。
【図１０】（Ａ），（Ｂ）は、本発明の第３実施形態にかかる集積回路の構成を示す模式図である。
【図１１】本発明の各実施形態にかかる集積回路の変形例の構成を示す模式図である。
【図１２】本発明の各実施形態にかかる集積回路の変形例の構成を示す模式図である。
【図１３】（Ａ）は従来のＡＳＩＣの構成例を示す模式図であり、（Ｂ）はＡＳＩＣの一部にリコンフィギュラブル・コアを入れた場合の構成例を示す模式図であり、（Ｃ）はＡＳＩＣの一部にリコンフィギュラブル・コアを入れた場合の課題を説明するための模式図である。
【符号の説明】
【０１１８】
１  入力データ選択部
２  バッファメモリ（入力側のバッファメモリ）
３  リコンフィギュラブル・コア（リコンフィギュラブル回路）
４  入力データ制御部
５  データ入力パターン供給部（Ｖａｌｉｄ生成部）
５Ａ  ＲＡＭ
５Ｂ  パターン発生回路（バリッド情報発生回路）
６  データ入力カウンタ（Ｖａｌｉｄ生成部）
７  条件判定機能付きカウンタ（アドレス生成部）
８  データ並列回路部
９  第１入力データ整形部
１０  第２入力データ整形部
１１  入力回路部
１２  出力回路部
１３  セレクタ（第１セレクタ）
１４  アドレス生成回路部
１５  シフタ
１６  加算器
１７  セレクタ（第２セレクタ）
１８  セレクタ（第３セレクタ）
１９  データ生成回路部
２０  第１ラッチ
２１  第１レジスタ
２２  第２ラッチ
２３  第３レジスタ
２５  セレクタ
３０  ＣＰＵ（制御部）
３１  ＲＡＭ
３２  出力側のバッファメモリ
３３  アドレスバス
３４  データバス
３５  アドレスデコーディング回路
３６  制御信号
４１〜４５  ＡＮＤ回路
４６  ＯＲ回路
５６  Ｖａｌｉｄ生成部
５７  カウンタ
５８  ＡＮＤ回路
５９  比較器
【図１】
2008090360.tif 000003
【図２】
2008090360.tif 000004
【図３】
2008090360.tif 000005
【図４】
2008090360.tif 000006
【図５】
2008090360.tif 000007
【図６】
2008090360.tif 000008
【図７】
2008090360.tif 000009
【図８】
2008090360.tif 000010
【図９】
2008090360.tif 000011
【図１０】
2008090360.tif 000012
【図１１】
2008090360.tif 000013
【図１２】
2008090360.tif 000014
【図１３】
2008090360.tif 000015