リコンフィギュラブル回路及びリコンフィギュラブル回路システム
【課題】内部動作が停止した場合に外部バッファと適切にデータのやり取りが可能なリコンフィギュラブル回路を提供する。
【解決手段】リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、リコンフィギュラブル演算器アレイの動作の再開時に格納されたデータをリコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。
【解決手段】リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、リコンフィギュラブル演算器アレイの動作の再開時に格納されたデータをリコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本願開示は、一般に論理回路に関し、詳しくは演算論理が再構成可能なリコンフィギュラブル回路に関する。
【背景技術】
【0002】
ダイナミックリコンフィギャラブル回路(以下、リコンフィギュラブル回路と呼ぶ)は、複数の演算器とネットワーク回路とを含み、ネットワーク回路による演算器間の接続と演算命令を、コンフィギュレーションデータに基づいて再構成可能に設定することができる。リコンフィギュラブル回路では、その動作中において、内部の演算器命令及び演算器間の接続の変更(即ちコンテキスト切り替え)を行なうことができる。これにより、内部の演算器を時間軸方向に分割して共用し、回路全体のハードウェア規模を削減することが可能となる。またリコンフィギュラブル回路は、パイプライン演算を行うことが可能であり、連続したデータを高速に処理する用途に適している。
【0003】
外部バッファメモリをリコンフィギュラブル回路に接続することで、リコンフィギュラブル回路の演算結果の格納及びリコンフィギュラブル回路へのデータ入力を、1クロック単位で連続に実行することができる。このような外部バッファを設けた場合、リコンフィギュラブル回路が内部演算動作を停止したときのデータのやり取りが問題となる。リコンフィギュラブル回路ではコンテキスト切り替え時等に内部演算動作を停止させる場合があるが、その場合、内部のフリップフロップも動作が停止しておりデータ格納動作を行なうことができない。従って、リコンフィギュラブル回路で内部演算動作が停止した時に外部バッファからのデータ読み出しが行なわれると、本来読み込まれるべきデータ(入力データ)が読み込まれないことになる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−31127号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上を鑑みると、リコンフィギュラブル回路の内部動作が停止した場合に外部バッファと適切にデータのやり取りが可能なリコンフィギュラブル回路が望まれる。
【課題を解決するための手段】
【0006】
リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。
【0007】
リコンフィギュラブル回路システムは、リコンフィギュラブル回路と、前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファとを含み、前記リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。
【0008】
リコンフィギュラブル回路の制御方法は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイの動作を停止し、前記リコンフィギュラブル演算器アレイの動作の停止と同時に前記リコンフィギュラブル演算器アレイから外部リソースへのデータ読み出し要求を無効化し、前記リコンフィギュラブル演算器アレイの動作の停止後に前記外部リソースから供給される読み出しデータを、前記外部リソースの読み出しレイテンシ分の数、バッファに格納し、前記リコンフィギュラブル演算器アレイの動作を再開するとともに前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給する各段階を含むことを特徴とする。
【発明の効果】
【0009】
本願開示の少なくとも1つの実施例によれば、リコンフィギュラブル演算器アレイの動作停止中に外部から供給されるデータをバッファ回路に一時的に格納し、動作再開後にバッファ回路の格納データをリコンフィギュラブル演算器アレイに供給する。これによりリコンフィギュラブル回路は、その内部動作が停止した場合に、外部バッファと適切にデータのやり取りを行なうことができる。
【図面の簡単な説明】
【0010】
【図1】リコンフィギュラブル回路システムの構成の一例を示す図である。
【図2】リコンフィギュラブル演算器アレイの構成の一例を示す図である。
【図3】外部バッファへの読み出しアクセス時の動作を示す図である。
【図4】外部バッファへの書き込みアクセスの時の動作を示す図である。
【図5】コンテキストの切り替えに伴う動作停止について説明するための図である。
【図6】リコンフィギュラブル演算器アレイが動作停止したときの外部バッファからのデータ読み出しの問題点を説明するための図である。
【図7】バッファ回路の構成の一例を示す図である。
【図8】要求制御回路の構成の一例を示す図である。
【図9】停止制御回路の構成の一例を示す図である。
【図10】リコンフィギュラブル演算器アレイが動作停止したときに要求制御回路及びバッファ回路により外部バッファと適切に連携する様子を示す図である。
【図11】図10との対比としてバッファ回路及び要求制御回路が設けられていない構成においてデータ読み出しを適切に行なうための動作を示す図である。
【図12】リコンフィギュラブル回路システムの構成の変形例を示す図である。
【図13】イネーブル生成器の構成の一例を示す図である。
【図14】カウンタの構成の一例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0012】
図1は、リコンフィギュラブル回路システムの構成の一例を示す図である。図1のリコンフィギュラブル回路システムは、リコンフィギュラブル回路10及び外部バッファ11を含む。リコンフィギュラブル回路10は、アドレスを指定するアドレスデータと書込みデータとを外部バッファ11に供給することで、外部バッファ11の指定アドレスに書込みデータを書き込む。またリコンフィギュラブル回路10は、アドレスを指定するアドレスデータを外部バッファ11に供給することで、外部バッファ11の指定アドレスからデータを読み出す。外部バッファ11は、リコンフィギュラブル回路10の外部に設けられるデータ記憶機能を有するリソースであって、DRAM等のメモリ装置であってよい。外部バッファ11の仕様については後程詳細に説明する。
【0013】
リコンフィギュラブル回路10は、リコンフィギュラブル演算器アレイ12、停止制御回路13、バッファ回路14、要求制御回路15、要求制御回路16、シーケンサ17、及びコンフィギュレーションメモリ18を含む。リコンフィギュラブル演算器アレイ12は、複数の演算器とこれら演算器間を再構成可能に接続するネットワーク回路とを含む。複数の演算器の各々が実行する演算はコンフィギュレーションデータ中の演算命令により指定され、複数の演算器間の接続形態はコンフィギュレーションデータ中の接続データにより指定される。これらのコンフィギュレーションデータはコンフィギュレーションメモリ18に格納されている。シーケンサ17は、コンフィギュレーションメモリ18に格納される複数のコンフィギュレーションデータの内で、リコンフィギュラブル演算器アレイ12の現在の実行形態を指定するコンフィギュレーションデータを選択する。シーケンサ17により指定されたコンフィギュレーションデータがリコンフィギュラブル演算器アレイ12に供給され、そのコンフィギュレーションデータに従った演算実行形態でリコンフィギュラブル演算器アレイ12が動作する。シーケンサ17は、順次新たなコンフィギュレーションデータを指定してリコンフィギュラブル演算器アレイ12に供給することで、リコンフィギュラブル演算器アレイ12の演算実行形態(コンテキスト)を順次更新していくことができる。
【0014】
停止制御回路13は、リコンフィギュラブル演算器アレイ12の動作の実行及び停止を制御する。リコンフィギュラブル回路10内部で生成された停止要求であるシーケンサ17からの内部停止要求in−stallが停止制御回路13に供給される。またリコンフィギュラブル回路10外部で生成された停止要求である外部バッファ11からの外部停止要求ext−stallが停止制御回路13に供給される。停止制御回路13は、内部停止要求in−stall又は外部停止要求ext−stallの何れかにより停止を要求されると、停止信号stallを送出する。停止信号stallは、リコンフィギュラブル演算器アレイ12、バッファ回路14、要求制御回路15、及び要求制御回路16に供給される。
【0015】
図2は、リコンフィギュラブル演算器アレイ12の構成の一例を示す図である。図2のリコンフィギュラブル演算器アレイ12は、複数n個の演算器(プロセッサエレメントPE)20−1乃至20−nとネットワーク回路22とを含む。ネットワーク回路22は、複数の演算器20−1乃至20−n間を再構成可能に接続する。複数の演算器20−1乃至20−nの各々が実行する演算はコンフィギュレーションデータ中の演算命令により指定され、ネットワーク回路22が実現する複数の演算器間の接続形態はコンフィギュレーションデータ中の接続データにより指定される。各演算器20−1乃至20−nにより実現されるカウンタ、加減算器、乗算器等を組み合わせることで、任意の演算処理を行うことができる。またリコンフィギュラブル演算器アレイ12の内部の演算を複数段のパイプライン構成として実現し、データ演算を1クロック単位で連続に行うことが可能である。
【0016】
各演算器20−1乃至20−nは内部にフリップフロップ21を含む。なお図示の都合上、各演算器について1つのフリップフロップ21を示すが、実際には各演算器には複数のフリップフロップ21が含まれる。各フリップフロップ21のイネーブル端子enには、停止制御回路13が出力する停止信号stallが印加される。従って、この停止信号stallがアサートされると、各フリップフロップ21のデータ格納動作(データ更新動作)は停止される。これにより演算器20−1乃至20−nの内部に演算途中のデータを保持したままで、リコンフィギュラブル演算器アレイ12の演算を停止することができる。その後、停止信号stallをネゲート(デアサート)すれば、リコンフィギュラブル演算器アレイ12の演算動作を、停止した状態から再開することができる。
【0017】
図3は、外部バッファへの読み出しアクセス時の動作を示す図である。また図4は、外部バッファへの書き込みアクセスの時の動作を示す図である。以下に、図3及び図4を用いて、図1の外部バッファ11の動作について詳細に説明する。
【0018】
外部バッファ11への入力は、アドレスADD、アドレス有効フラグADDV、書き込みデータWD、及び書き込みデータ有効フラグWDVを含む。外部バッファ11からの出力は、読み出しデータRDと、読み出しデータ有効フラグRDVとを含む。各データ有効フラグは、対応するデータが有効か無効かを示す値を有する。例えばアドレスデータ有効フラグADDVは、有効値又は無効値であり得るアドレスADDが実際に有効値であるか無効値であるのかを示す値を有する。図3及び図4に示す例において各データ有効フラグは、値1のときに対応するデータが有効であることを示し、値0のときに対応するデータが無効であることを示す。例えば図3において、A0乃至A3は有効なアドレス値であるが、A4は無効なアドレス値である。
【0019】
外部バッファ11は、アドレスデータ有効フラグADDVがアドレス無効を示すとき、即ちADDV=0のとき、nop動作となる。即ち外部バッファ11は何も動作を実行しない。またアドレス有効(ADDV=1)で且つ書き込みデータ無効(WDV=0)のとき、外部バッファ11は読み出し動作を実行する。図3の例では、書き込みデータ有効フラグWDVは常時0に設定されているので、アドレスデータ有効フラグADDVがアドレス有効を示す全てのサイクルで、読み出し動作が実行される。図3の最下段に示す四角で囲った「R」は、対応するサイクルで読み出し動作が実行されることを示している。なお最上段にクロック信号CLKが示されており、1クロックサイクルで1つの読み出し動作又は書き込み動作が実行される。
【0020】
アドレス有効(ADDV=1)で且つ書き込みデータ有効(WDV=1)のとき、外部バッファ11は書き込み動作を実行する。図4の例では、アドレスA0,A2,A4乃至A12の各サイクルにおいて、アドレス有効(ADDV=1)で且つ書き込みデータ有効(WDV=1)であるので、書き込み動作が実行される。図4の最下段に示す四角で囲った「W」は対応するサイクルで書き込み動作が実行されることを示す。また四角で囲った「R」は対応するサイクルで読み出し動作が実行されることを示す。
【0021】
なお外部バッファ11は、読み出しアクセスを要求した場合、所定の読み出しレイテンシの後に読み出しデータを出力する。図3及び図4の例では、読み出しレイテンシは5クロックサイクルとなっている。即ち、例えば図3のアドレスA0の読み出しアクセス要求に対して、その読み出しデータR0は5クロックサイクル後に出力されている。
【0022】
図5は、コンテキストの切り替えに伴う動作停止について説明するための図である。前述のように、リコンフィギュラブル回路は動作中にコンテキスト切り替えを実行することにより、実行する演算動作を変更することができる。このコンテキスト切り替え時の待ち時間を無くすために、リコンフィギュラブル演算器アレイ12はコンフィギュレーションメモリ18からのコンフィギュレーションデータの先読みを行なうことができる。図5に示す例では、リコンフィギュラブル演算器アレイ12がコンテキストAで動作している状態において、コンテキストBに相当するコンフィギュレーションデータが先読み(preload)されている。タイミングT1で、リコンフィギュラブル演算器アレイ12の動作の基になるコンフィギュレーションデータがコンテキストAのものからコンテキストBのものに切り替えられ、これによりコンテキスト切り替えが行なわれる。この後、リコンフィギュラブル演算器アレイ12がコンテキストBで動作している状態において、コンテキストCに相当するコンフィギュレーションデータが先読み(preload)されている。
【0023】
タイミングT2では、コンテキスト切り替えの分岐が発生する。この分岐では、リコンフィギュラブル演算器アレイ12内部での演算結果に応じて、次に実行するコンテキストが決定される。この例では、コンテキストCに相当するコンフィギュレーションデータが先読みされているが、実際に次に実行するコンテキストがコンテキストDであることが分岐により確定する。従って、タイミングT2からクロック信号CLKのnサイクルかけて、コンテキストDをコンフィギュレーションメモリ18から読み込む。このようなコンテキスト読み直し(先読みコンテキストの書き替え)の間は、リコンフィギュラブル演算器アレイ12の動作を停止する必要がある。リコンフィギュラブル演算器アレイ12は、コンテキスト読み直しが必要であることを検出すると、図1に示すように停止要求をシーケンサ17に送る。これに応答して、シーケンサ17が内部停止要求in−stallを停止制御回路13に供給し、停止制御回路13が停止信号stallを発生する。この停止信号stallにより、リコンフィギュラブル演算器アレイ12の動作はT2からnサイクルの間動作を停止する(図示のSTALL)。その後、コンテキストDに相当するコンフィギュレーションデータが先読みされると、タイミングT3で、リコンフィギュラブル演算器アレイ12の動作の基になるコンフィギュレーションデータがコンテキストBのものからコンテキストDのものに切り替えられる。これによりコンテキストBからコンテキストDへの切り替えが行なわれる。
【0024】
図6は、リコンフィギュラブル演算器アレイが動作停止したときの外部バッファからのデータ読み出しの問題点を説明するための図である。図6に示す動作は、リコンフィギュラブル演算器アレイが外部バッファを読み出し中に動作停止が発生し、そのまま読み出し要求が継続した場合についてのものである。前述のようにリコンフィギュラブル演算器アレイの内部のフリップフロップの更新動作を停止してリコンフィギュラブル演算器アレイの演算動作を停止させると、停止時の状態がそのまま継続することになる。従って、何らかの工夫をしない限りは、図6に示す例のように読み出し要求が継続してしまうことになる。
【0025】
図6の(a)にはクロック信号CLKが示される。(c)に示すように、タイミングT1からT2の間においてリコンフィギュラブル演算器アレイは読み出し要求を行なっており、(b)に示すように、5サイクルのレイテンシをおいて外部バッファが読み出しデータ供給動作を行なっている。この読み出しデータ供給動作により供給されるデータが、図6の(d)に示すリコンフィギュラブル回路入力データDATA1となる。(c)に示すようにタイミングT2でリコンフィギュラブル演算器アレイは動作停止するが、そのまま読み出し要求は継続される。この動作停止中の読み出し要求に対応して、(d)に示すように、5サイクル遅れでDATA3が入力データとして外部バッファからリコンフィギュラブル回路に供給される。このとき、タイミングT2からT3の間においてリコンフィギュラブル演算器アレイは動作を停止しているので、何らかの工夫をしない限りは、その間の入力データが失われることになる。DATA3はリコンフィギュラブル演算器アレイが読み出しを意図したデータではないので失われても問題ないが、DATA1は失われてはならないデータである。また同様に、リコンフィギュラブル演算器アレイがタイミングT4からT5にかけて動作停止すると、読み出しデータDATA4のうちでタイミングT4からT5の間に供給されている部分が失われてしまう。
【0026】
以上のような、不都合を解消するために、図1に示すリコンフィギュラブル回路10ではバッファ回路14、要求制御回路15、及び要求制御回路16が設けられている。バッファ回路14は、リコンフィギュラブル演算器アレイ12の動作の停止時に外部バッファ11から供給されるデータを一時的に格納する。またバッファ回路14は、リコンフィギュラブル演算器アレイ12の動作の再開時に、格納されたデータをリコンフィギュラブル演算器アレイ12に供給する。要求制御回路15は、リコンフィギュラブル演算器アレイ12の動作の停止時に、リコンフィギュラブル演算器アレイ12から外部への書き込みデータ供給を無効化するアクセス要求無効化回路として機能する。また要求制御回路16は、リコンフィギュラブル演算器アレイ12の動作の停止時に、リコンフィギュラブル演算器アレイ12から外部へのアドレス供給を無効化するアクセス要求無効化回路として機能する。
【0027】
図7は、バッファ回路14の構成の一例を示す図である。バッファ回路14は、カウンタ31、イネーブル生成器32、タップ付きシフトレジスタ33、OR回路34、セレクタ35、格納個数指示レジスタ36、及びインバータ39を含む。タップ付きシフトレジスタ33は、シフトレジスタの任意のフリップフロップの格納値を選択的に出力可能としたものであり、縦続接続されたフリップフロップ37−1乃至37−n及びセレクタ38を含む。なお図示の都合上、フリップフロップ37−1乃至37−nは1ビットに対応する一列のみを示すが、実際には入力データがa+1ビットであれば、a+1列のフリップフロップ列が設けられることになる。なお図示の例の場合、バッファ回路14への入力データは、有効値又は無効値であるaビットのデータdinと、有効値又は無効値であるデータdinが有効値であるか無効値であるかを示す1ビットの有効指示データ(フラグ)vinとからなる。これらa+1ビットの入力データの各ビットに対して一列のフリップフロップが設けられ、全体でa+1列のフリップフロップ列が設けられる。バッファ回路14の出力データは、同様に、有効値又は無効値であるaビットのデータdoutと、有効値又は無効値であるデータdoutが有効値であるか無効値であるかを示す1ビットの有効指示データ(フラグ)voutとからなる。
【0028】
バッファ回路14は、第1の動作モードでは、外部バッファ11から供給され一時的に格納された格納後のデータをリコンフィギュラブル演算器アレイ12に供給する。またバッファ回路14は、第2の動作モードでは、外部バッファ11から供給されるデータを一時的な格納動作を介することなくリコンフィギュラブル演算器アレイ12に供給する。シフトレジスタ33に未読み出しの格納データが存在するときには第1の動作モードとなり、シフトレジスタ33に未読み出しの格納データが存在しないときには第2の動作モードになる。第1の動作モードと第2の動作モードとの切り替えは、シフトレジスタ33に格納される未読み出しのデータの個数をカウントするカウンタ31の出力カウント値が0であるか1以上であるかに応じてセレクタ35を制御することにより行なわれる。カウンタ31の出力カウント値が0のときに、セレクタ35は、外部バッファ11からの供給データを選択してリコンフィギュラブル演算器アレイ12に供給する。カウンタ31の出力カウント値が1以上のときに、セレクタ35は、シフトレジスタ33の出力を選択してリコンフィギュラブル演算器アレイ12に供給する。
【0029】
シフトレジスタ33は、リコンフィギュラブル演算器アレイ12の動作が停止した時点から格納個数指示レジスタ36の格納値が示す個数分のデータを格納する。格納個数指示レジスタ36には、外部バッファ11のレイテンシをクロックサイクル数で表した値が格納されている。格納個数指示レジスタ36の格納値は、イネーブル生成器32に供給される。
【0030】
図13は、イネーブル生成器の構成の一例を示す図である。イネーブル生成器32は、縦続接続されたフリップフロップ71−1乃至71−n及びセレクタ72を含む。セレクタ72は、格納個数指示レジスタ36の格納値stageが示す位置にあるフリップフロップ71−1乃至71−nのデータを選択し、ストールフラグ信号stall_flagとして出力する。イネーブル生成器32は、停止信号stallを格納個数指示レジスタ36の格納値stageが示す個数分のサイクルだけ遅延させてから、ストールフラグ信号stall_flagとして出力するよう機能する。従ってイネーブル生成器32の出力するストールフラグ信号stall_flagは、リコンフィギュラブル演算器アレイ12の動作が停止した時点(即ち停止信号stallがアサートされた時点)から上記の個数分のサイクルの間はネゲート状態にある。即ち、この期間、ストールフラグ信号stall_flagの論理反転であるカウントイネーブル信号はアサート状態となっている。例えばレイテンシが5クロックサイクルの場合、格納個数指示レジスタ36には5が格納される。この場合、リコンフィギュラブル演算器アレイ12の動作が停止した時点から5クロックサイクルの間、カウントイネーブル信号がアサート状態となる。従ってこの例では、シフトレジスタ33は、リコンフィギュラブル演算器アレイ12の動作が停止した時点から数えて5個のデータ(5クロックサイクル分のデータ)を格納し、それ以降のデータを格納しない。
【0031】
シフトレジスタ33は、フリップフロップ37−1乃至37−nに格納されるデータのうちでカウンタ31のカウント値により選択したデータをリコンフィギュラブル演算器アレイ12に出力する。例えばカウンタ31のカウント値が4の場合、セレクタ38により4番目のフリップフロップ37−4の格納データを選択して、セレクタ35に供給する。これにより、4番目のフリップフロップ37−4の格納データがリコンフィギュラブル演算器アレイ12に供給されることになる。
【0032】
図14は、カウンタ31の構成の一例を示す図である。カウンタ31は、1増加回路81、1減少回路82、セレクタ83、セレクタ84、フリップフロップ85、及びAND回路86及び87を含む。AND回路86及び87の各々は、一方の入力が負論理であり他方の入力が正論理となっている。カウンタ31は、リコンフィギュラブル演算器アレイ12の動作が停止している期間にシフトレジスタ33がシフト動作する場合は、カウント値をクロックCLKに応じてカウントアップする。即ち、停止信号stallがアサートされており且つストールフラグ信号stall_flagがネゲートされている場合、カウンタ31は、カウント値をクロックCLKのパルスに同期してカウントアップする。
【0033】
またカウンタ31は、リコンフィギュラブル演算器アレイ12の動作が停止している期間にシフトレジスタ33がシフト動作しない場合は、カウント値を現在値に維持する。即ち、停止信号stallがアサートされており且つストールフラグ信号stall_flagもアサートされている場合、カウンタ31は、カウントアップもカウントダウンもすることなく、カウント値を変化させずに現在値に維持する。
【0034】
またカウンタ31は、リコンフィギュラブル演算器アレイ12が動作している期間にシフトレジスタ33がシフト動作しない場合は、カウント値をクロックCLKに応じてカウントダウンする。即ち、停止信号stallがネゲート(デアサート)されており且つストールフラグ信号stall_flagがアサートされている場合、カウンタ31は、カウント値をクロックCLKのパルスに同期してカウントダウンする。
【0035】
図8は、要求制御回路15の構成の一例を示す図である。要求制御回路16も図8の構成と同一の構成を有する。要求制御回路15(又は16)は、2入力のうちの一方が負論理入力であるAND回路41、フリップフロップ42、及びフリップフロップ43を含む。要求制御回路15(又は16)の入力データは、有効値又は無効値であるaビットのデータdinと、有効値又は無効値であるデータdinが有効値であるか無効値であるかを示す1ビットの有効指示データ(フラグ)vinとからなる。また要求制御回路15(又は16)の出力データは、有効値又は無効値であるaビットのデータdoutと、有効値又は無効値であるデータdoutが有効値であるか無効値であるかを示す1ビットの有効指示データ(フラグ)voutとからなる。要求制御回路15の場合、入出力データは書き込みデータであり、要求制御回路16の場合、入出力データはアドレスデータである。
【0036】
フリップフロップ42は、有効フラグを除いた入出力データdin/doutの各ビットに対して1個ずつ設けられる。この例の場合、入出力データがaビットであるので、a個のフリップフロップ42が設けられる。入力データdinは、有効指示データvinがアサート状態(有効を示す状態)のときにクロックCLKに同期してフリップフロップ42に格納され、出力データdoutとして出力される。有効指示データvinがネゲート状態(無効を示す状態)のときには、入力データdinはフリップフロップ42に格納されず、出力データdoutとして現れない。
【0037】
停止信号stallがネゲート状態(0)で動作有効を示す時、入力有効指示データvinはクロックCLKに同期してフリップフロップ43に格納され、出力有効指示データデータvoutとして出力される。停止信号stallがアサート状態(1)で動作停止を示す時には、AND回路41の出力は0となる。この場合、クロックCLKに同期してフリップフロップ43には0が格納され、出力有効指示データvoutとして0(無効を示す値)が出力される。
【0038】
図9は、停止制御回路13の構成の一例を示す図である。図9に示す停止制御回路13は、OR回路45を含む。OR回路45の入力には、内部停止要求in−stall、第1の外部停止要求ext−stall1、第2の外部停止要求ext−stall2等の複数の要因に基づく停止要求信号が印加される。ここで内部停止要求in−stallはシーケンサ17から供給される。また例えば第1の外部停止要求ext−stall1は、図1に示す外部停止要求ext−stallに相当する。第2の外部停止要求ext−stall2に相当する信号は図1には示されていないが、図9に示す停止制御回路13は、任意の数の外部からの停止要求に対して対応可能となっている。入力される停止要求信号のうちの1つでもアサート状態(1)になると、停止要求信号がアサート状態(1)となる。
【0039】
図10は、リコンフィギュラブル演算器アレイが動作停止したときに要求制御回路及びバッファ回路により外部バッファと適切に連携する様子を示す図である。図10に示す動作は、図1に示すリコンフィギュラブル演算器アレイ12が外部バッファ11を読み出し中に、何らかの動作停止要求が発生した場合についての各部分の動作である。停止制御回路13の停止信号stallのアサートに応答して、リコンフィギュラブル演算器アレイ12の動作が停止し、また要求制御回路16が有効指示信号voutをネゲート状態とする。従って、リコンフィギュラブル演算器アレイ12の演算動作の停止時以降においては、外部バッファ11に対する読み出し要求は行なわれない。
【0040】
図10の(a)にはクロック信号CLKが示される。(c)に示すように、タイミングT1からT2の間においてリコンフィギュラブル演算器アレイ12は読み出し要求を行なっており、(b)に示すように、5サイクルのレイテンシをおいて外部バッファが読み出しデータ供給動作を行なっている。この読み出しデータ供給動作により供給されるデータが、図10の(d)に示すリコンフィギュラブル回路入力データDATA1となる。(c)に示すようにタイミングT2でリコンフィギュラブル演算器アレイ12は動作停止し、外部バッファ11に対する読み出し要求は停止される。但し、タイミングT2前の読み出し要求に対応して、(d)に示すように、T2から5サイクルの間はDATA1が入力データとして外部バッファ11からリコンフィギュラブル回路10に供給される。バッファ回路14は、この5サイクル分の入力データDATA1をバッファデータ51として格納する。このときカウンタ31のカウント値は5までカウントアップされる。
【0041】
(c)に示すようにリコンフィギュラブル演算器アレイ12はタイミングT3で演算動作を再開する。これに伴い要求制御回路16が有効指示信号voutをアサート状態とし、外部バッファ11に対する読み出し要求を再開する。バッファ回路14においては、前述のように、カウンタ31の出力カウント値が1以上のときに、セレクタ35は、シフトレジスタ33の出力を選択してリコンフィギュラブル演算器アレイ12に供給する。従って、タイミングT3から5サイクルの間は、シフトレジスタ33に格納されるバッファデータDATA1が入力データ52としてリコンフィギュラブル演算器アレイ12に順次供給される。この5サイクルの間にバッファ回路14のカウンタ31はカウントダウンし、カウント値が0になる。カウンタ31の出力カウント値が0になると、セレクタ35は、外部バッファ11からの供給データを選択してリコンフィギュラブル演算器アレイ12に供給する。従ってタイミングT3での読み出し要求再開に応答してT3から6サイクル目に外部バッファ11から読み出される読み出しデータDATA2は、バッファ回路14を介してリコンフィギュラブル演算器アレイ12に供給されることになる。このバッファ回路14の動作により、外部バッファ11から読み出されるデータが失われることなく、リコンフィギュラブル演算器アレイ12に連続して供給される。
【0042】
また更に、(c)に示すようにタイミングT4でリコンフィギュラブル演算器アレイ12は動作停止し、外部バッファ11に対する読み出し要求は停止される。タイミングT4前の読み出し要求に対応して、(d)に示すように、T4から5サイクルの間はDATA2が入力データとして外部バッファ11からリコンフィギュラブル回路10に供給される。バッファ回路14は、この5サイクル分の入力データDATA1をバッファデータ53及び55として格納する。但し、(c)に示すようにリコンフィギュラブル演算器アレイ12はタイミングT5で演算動作を再開している。このT5での演算動作再開は、T4での演算動作停止から5サイクル以内の4サイクル目に生じているので、この時点でバッファ回路14には4サイクル分の入力データDATA2がバッファデータ53として格納されている。T5での演算動作再開時のバッファ回路14のカウンタ31のカウント値は4である。従って、タイミングT5から4サイクルの間は、T5の時点でシフトレジスタ33に既に格納されている4サイクル分のバッファデータ53が入力データ54としてリコンフィギュラブル演算器アレイ12に順次供給される。T5の直後のサイクルでは、シフトレジスタ33からのデータ読み出しとシフト動作とが並行して起こり、T4から5サイクル目の入力データがバッファデータ55としてバッファ回路14に格納される。このときバッファ回路14のカウンタ31のカウント値は4に維持される。その後、T5から2サイクル目乃至5サイクル目において、カウント値は4から0までカウントダウンする。T5から5サイクル目において、T5の直後のサイクルでバッファ回路14に格納されたバッファデータ55が入力データ56としてリコンフィギュラブル演算器アレイ12に供給される。カウンタ31の出力カウント値が0になると、セレクタ35は、外部バッファ11からの供給データを選択してリコンフィギュラブル演算器アレイ12に供給する。従ってタイミングT5での読み出し要求再開に応答してT5から6サイクル目に外部バッファ11から読み出される読み出しデータDATA3は、バッファ回路14を介してリコンフィギュラブル演算器アレイ12に供給されることになる。このバッファ回路14の動作により、外部バッファ11から読み出されるデータが失われることなく、リコンフィギュラブル演算器アレイ12に連続して供給される。
【0043】
図10に示す動作は、停止要求の要因が内部停止要求in−stallの場合であっても外部停止要求ext−stallの場合であっても、何れも同じ動作となる。外部バッファ11から外部停止要求ext−stallが発生する原因としては、例えば、外部バッファ11でのデータ格納が完了してない段階で外部バッファ11に読み出し要求をした等がある。
【0044】
図11は、図10との対比としてバッファ回路及び要求制御回路が設けられていない構成においてデータ読み出しを適切に行なうための動作を示す図である。図10の場合と同様に、タイミングT2で何らかの停止要求が発生するが、直ちにリコンフィギュラブル演算器アレイが動作停止すると、図6で説明したように読み出しデータの入力に失敗してしまう。これを避けるために、図11に示す動作例では、停止要求が発生してからレイテンシ分の5サイクル待って、タイミングT2’でリコンフィギュラブル演算器アレイの動作を停止している。但し、停止要求が発生したタイミングT2で外部バッファに対する読み出し要求を停止しており、外部バッファからのデータ読み出しはタイミングT2’までに完了する。従ってタイミングT2’からT3’までリコンフィギュラブル演算器アレイの動作を停止しても、読み出しデータが失われることはない。この図11に示すように、リコンフィギュラブル演算器アレイの実際の動作停止を遅らせながら先に読み出し要求を停止させ、データ読み出しを適切に行なうように動作制御することも可能ではある。しかしながら図11に示す動作の場合、図10の動作と比較して、リコンフィギュラブル演算器アレイの実際の動作停止をT2からT2’まで遅らせることにより、動作再開のタイミングも遅れることになる。従って、動作停止する度にリコンフィギュラブル回路の動作が余分に遅れていくことになり、処理性能が低下してしまう。図1に示す構成ではバッファ回路14及び要求制御回路15及び16を設けることにより、リコンフィギュラブル演算器アレイ12の動作停止を遅らせることなく、高い処理性能を実現することができる。
【0045】
図12は、リコンフィギュラブル回路システムの構成の変形例を示す図である。図12において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。図12のリコンフィギュラブル回路システムは、リコンフィギュラブル回路10A、外部バッファ11、及び外部バッファ61を含む。外部バッファ11は読み出しレイテンシが例えば5クロックサイクルであり、外部バッファ61は読み出しレイテンシが例えば8クロックサイクルである。
【0046】
リコンフィギュラブル回路10Aは、図1に示すリコンフィギュラブル回路10の構成に加え更に、バッファ回路64、要求制御回路65、及び要求制御回路66を含む。バッファ回路64、要求制御回路65、及び要求制御回路66はそれぞれ、バッファ回路14、要求制御回路15、及び要求制御回路16と同一の構成でよい。バッファ回路14、要求制御回路15、及び要求制御回路16が外部バッファ11に対する読み出し・書き込み制御を行なうのと同様にして、バッファ回路64、要求制御回路65、及び要求制御回路66が外部バッファ61に対する読み出し・書き込み制御を行なう。
【0047】
停止要求の要因が何であるかに関わらず一旦停止信号stallがアサートされると、その後の外部バッファ11に対する制御と外部バッファ61に対する制御は同様であり、互いに独立に実行される。外部バッファ11に対しては、そのレイテンシが5サイクルであることに応じて、バッファ回路14には5サイクル分の読み出しデータがバッファされる。また外部バッファ61に対しては、そのレイテンシが8サイクルであることに応じて、バッファ回路64には8サイクル分の読み出しデータがバッファされる。外部バッファ11及び61の各々に対する読み出しデータのバッファリング及びリコンフィギュラブル演算器アレイ12へのデータ供給動作は、格納データ数が5と8とで異なるだけであり、図10に示したのと同様の動作が両方のバッファに対して実行される。
【0048】
このようにしてリコンフィギュラブル回路10に対して複数の外部バッファが接続されている場合であっても、リコンフィギュラブル演算器アレイ12の演算動作停止時にそれぞれの外部バッファに対して適切に読み出し動作を行なうことができる。なお図12の例では外部バッファの数が2である場合について示してあるが、外部バッファの数は2に限られるものではなく、任意の数の外部バッファが設けられてよい。
【0049】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【0050】
なお本発明は、以下の内容を含むものである。
(付記1)
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路。
(付記2)
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第1の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第2の動作モードとを備えることを特徴とする付記1記載のリコンフィギュラブル回路。
(付記3)
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする付記1又は2記載のリコンフィギュラブル回路。
(付記4)
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする付記3記載のリコンフィギュラブル回路。
(付記5)
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする付記4記載のリコンフィギュラブル回路。
(付記6)
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする付記5記載のリコンフィギュラブル回路。
(付記7)
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも1つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする付記1乃至6のいずれか一項記載のリコンフィギュラブル回路。
(付記8)
前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に第1の外部リソースから供給される第1のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第1のデータを前記リコンフィギュラブル演算器アレイに供給する第1のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に第2の外部リソースから供給される第2のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第2のデータを前記リコンフィギュラブル演算器アレイに供給する第2のバッファ回路と
を含むことを特徴とする付記1乃至7のいずれか一項記載のリコンフィギュラブル回路。
(付記9)
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする付記1乃至8のいずれか一項記載のリコンフィギュラブル回路。
(付記10)
リコンフィギュラブル回路と、
前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファと、
を含み、前記リコンフィギュラブル回路は、
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路システム。
(付記11)
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第1の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第2の動作モードとを備えることを特徴とする付記10記載のリコンフィギュラブル回路システム。
(付記12)
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする付記10又は11記載のリコンフィギュラブル回路システム。
(付記13)
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする付記12記載のリコンフィギュラブル回路システム。
(付記14)
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする付記13記載のリコンフィギュラブル回路システム。
(付記15)
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする付記14記載のリコンフィギュラブル回路システム。
(付記16)
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも1つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする付記10乃至15のいずれか一項記載のリコンフィギュラブル回路システム。
(付記17)
前記外部バッファを第1の外部バッファとして、前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう第2の外部バッファを更に含み、前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記第1の外部バッファから供給される第1のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第1のデータを前記リコンフィギュラブル演算器アレイに供給する第1のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記第2の外部バッファから供給される第2のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第2のデータを前記リコンフィギュラブル演算器アレイに供給する第2のバッファ回路と
を含むことを特徴とする付記10乃至16のいずれか一項記載のリコンフィギュラブル回路システム。
(付記18)
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする付記10乃至17のいずれか一項記載のリコンフィギュラブル回路システム。
(付記19)
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイの動作を停止し、
前記リコンフィギュラブル演算器アレイの動作の停止と同時に前記リコンフィギュラブル演算器アレイから外部リソースへのデータ読み出し要求を無効化し、
前記リコンフィギュラブル演算器アレイの動作の停止後に前記外部リソースから供給される読み出しデータを、前記外部リソースの読み出しレイテンシ分の数、バッファに格納し、
前記リコンフィギュラブル演算器アレイの動作を再開するとともに前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給する
各段階を含むことを特徴とするリコンフィギュラブル回路の制御方法。
【符号の説明】
【0051】
10 リコンフィギュラブル回路
11 外部バッファ
12 リコンフィギュラブル演算器アレイ
13 停止制御回路
14 バッファ回路
15 要求制御回路
16 要求制御回路
17 シーケンサ
18 コンフィギュレーションメモリ
【技術分野】
【0001】
本願開示は、一般に論理回路に関し、詳しくは演算論理が再構成可能なリコンフィギュラブル回路に関する。
【背景技術】
【0002】
ダイナミックリコンフィギャラブル回路(以下、リコンフィギュラブル回路と呼ぶ)は、複数の演算器とネットワーク回路とを含み、ネットワーク回路による演算器間の接続と演算命令を、コンフィギュレーションデータに基づいて再構成可能に設定することができる。リコンフィギュラブル回路では、その動作中において、内部の演算器命令及び演算器間の接続の変更(即ちコンテキスト切り替え)を行なうことができる。これにより、内部の演算器を時間軸方向に分割して共用し、回路全体のハードウェア規模を削減することが可能となる。またリコンフィギュラブル回路は、パイプライン演算を行うことが可能であり、連続したデータを高速に処理する用途に適している。
【0003】
外部バッファメモリをリコンフィギュラブル回路に接続することで、リコンフィギュラブル回路の演算結果の格納及びリコンフィギュラブル回路へのデータ入力を、1クロック単位で連続に実行することができる。このような外部バッファを設けた場合、リコンフィギュラブル回路が内部演算動作を停止したときのデータのやり取りが問題となる。リコンフィギュラブル回路ではコンテキスト切り替え時等に内部演算動作を停止させる場合があるが、その場合、内部のフリップフロップも動作が停止しておりデータ格納動作を行なうことができない。従って、リコンフィギュラブル回路で内部演算動作が停止した時に外部バッファからのデータ読み出しが行なわれると、本来読み込まれるべきデータ(入力データ)が読み込まれないことになる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−31127号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上を鑑みると、リコンフィギュラブル回路の内部動作が停止した場合に外部バッファと適切にデータのやり取りが可能なリコンフィギュラブル回路が望まれる。
【課題を解決するための手段】
【0006】
リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。
【0007】
リコンフィギュラブル回路システムは、リコンフィギュラブル回路と、前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファとを含み、前記リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。
【0008】
リコンフィギュラブル回路の制御方法は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイの動作を停止し、前記リコンフィギュラブル演算器アレイの動作の停止と同時に前記リコンフィギュラブル演算器アレイから外部リソースへのデータ読み出し要求を無効化し、前記リコンフィギュラブル演算器アレイの動作の停止後に前記外部リソースから供給される読み出しデータを、前記外部リソースの読み出しレイテンシ分の数、バッファに格納し、前記リコンフィギュラブル演算器アレイの動作を再開するとともに前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給する各段階を含むことを特徴とする。
【発明の効果】
【0009】
本願開示の少なくとも1つの実施例によれば、リコンフィギュラブル演算器アレイの動作停止中に外部から供給されるデータをバッファ回路に一時的に格納し、動作再開後にバッファ回路の格納データをリコンフィギュラブル演算器アレイに供給する。これによりリコンフィギュラブル回路は、その内部動作が停止した場合に、外部バッファと適切にデータのやり取りを行なうことができる。
【図面の簡単な説明】
【0010】
【図1】リコンフィギュラブル回路システムの構成の一例を示す図である。
【図2】リコンフィギュラブル演算器アレイの構成の一例を示す図である。
【図3】外部バッファへの読み出しアクセス時の動作を示す図である。
【図4】外部バッファへの書き込みアクセスの時の動作を示す図である。
【図5】コンテキストの切り替えに伴う動作停止について説明するための図である。
【図6】リコンフィギュラブル演算器アレイが動作停止したときの外部バッファからのデータ読み出しの問題点を説明するための図である。
【図7】バッファ回路の構成の一例を示す図である。
【図8】要求制御回路の構成の一例を示す図である。
【図9】停止制御回路の構成の一例を示す図である。
【図10】リコンフィギュラブル演算器アレイが動作停止したときに要求制御回路及びバッファ回路により外部バッファと適切に連携する様子を示す図である。
【図11】図10との対比としてバッファ回路及び要求制御回路が設けられていない構成においてデータ読み出しを適切に行なうための動作を示す図である。
【図12】リコンフィギュラブル回路システムの構成の変形例を示す図である。
【図13】イネーブル生成器の構成の一例を示す図である。
【図14】カウンタの構成の一例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0012】
図1は、リコンフィギュラブル回路システムの構成の一例を示す図である。図1のリコンフィギュラブル回路システムは、リコンフィギュラブル回路10及び外部バッファ11を含む。リコンフィギュラブル回路10は、アドレスを指定するアドレスデータと書込みデータとを外部バッファ11に供給することで、外部バッファ11の指定アドレスに書込みデータを書き込む。またリコンフィギュラブル回路10は、アドレスを指定するアドレスデータを外部バッファ11に供給することで、外部バッファ11の指定アドレスからデータを読み出す。外部バッファ11は、リコンフィギュラブル回路10の外部に設けられるデータ記憶機能を有するリソースであって、DRAM等のメモリ装置であってよい。外部バッファ11の仕様については後程詳細に説明する。
【0013】
リコンフィギュラブル回路10は、リコンフィギュラブル演算器アレイ12、停止制御回路13、バッファ回路14、要求制御回路15、要求制御回路16、シーケンサ17、及びコンフィギュレーションメモリ18を含む。リコンフィギュラブル演算器アレイ12は、複数の演算器とこれら演算器間を再構成可能に接続するネットワーク回路とを含む。複数の演算器の各々が実行する演算はコンフィギュレーションデータ中の演算命令により指定され、複数の演算器間の接続形態はコンフィギュレーションデータ中の接続データにより指定される。これらのコンフィギュレーションデータはコンフィギュレーションメモリ18に格納されている。シーケンサ17は、コンフィギュレーションメモリ18に格納される複数のコンフィギュレーションデータの内で、リコンフィギュラブル演算器アレイ12の現在の実行形態を指定するコンフィギュレーションデータを選択する。シーケンサ17により指定されたコンフィギュレーションデータがリコンフィギュラブル演算器アレイ12に供給され、そのコンフィギュレーションデータに従った演算実行形態でリコンフィギュラブル演算器アレイ12が動作する。シーケンサ17は、順次新たなコンフィギュレーションデータを指定してリコンフィギュラブル演算器アレイ12に供給することで、リコンフィギュラブル演算器アレイ12の演算実行形態(コンテキスト)を順次更新していくことができる。
【0014】
停止制御回路13は、リコンフィギュラブル演算器アレイ12の動作の実行及び停止を制御する。リコンフィギュラブル回路10内部で生成された停止要求であるシーケンサ17からの内部停止要求in−stallが停止制御回路13に供給される。またリコンフィギュラブル回路10外部で生成された停止要求である外部バッファ11からの外部停止要求ext−stallが停止制御回路13に供給される。停止制御回路13は、内部停止要求in−stall又は外部停止要求ext−stallの何れかにより停止を要求されると、停止信号stallを送出する。停止信号stallは、リコンフィギュラブル演算器アレイ12、バッファ回路14、要求制御回路15、及び要求制御回路16に供給される。
【0015】
図2は、リコンフィギュラブル演算器アレイ12の構成の一例を示す図である。図2のリコンフィギュラブル演算器アレイ12は、複数n個の演算器(プロセッサエレメントPE)20−1乃至20−nとネットワーク回路22とを含む。ネットワーク回路22は、複数の演算器20−1乃至20−n間を再構成可能に接続する。複数の演算器20−1乃至20−nの各々が実行する演算はコンフィギュレーションデータ中の演算命令により指定され、ネットワーク回路22が実現する複数の演算器間の接続形態はコンフィギュレーションデータ中の接続データにより指定される。各演算器20−1乃至20−nにより実現されるカウンタ、加減算器、乗算器等を組み合わせることで、任意の演算処理を行うことができる。またリコンフィギュラブル演算器アレイ12の内部の演算を複数段のパイプライン構成として実現し、データ演算を1クロック単位で連続に行うことが可能である。
【0016】
各演算器20−1乃至20−nは内部にフリップフロップ21を含む。なお図示の都合上、各演算器について1つのフリップフロップ21を示すが、実際には各演算器には複数のフリップフロップ21が含まれる。各フリップフロップ21のイネーブル端子enには、停止制御回路13が出力する停止信号stallが印加される。従って、この停止信号stallがアサートされると、各フリップフロップ21のデータ格納動作(データ更新動作)は停止される。これにより演算器20−1乃至20−nの内部に演算途中のデータを保持したままで、リコンフィギュラブル演算器アレイ12の演算を停止することができる。その後、停止信号stallをネゲート(デアサート)すれば、リコンフィギュラブル演算器アレイ12の演算動作を、停止した状態から再開することができる。
【0017】
図3は、外部バッファへの読み出しアクセス時の動作を示す図である。また図4は、外部バッファへの書き込みアクセスの時の動作を示す図である。以下に、図3及び図4を用いて、図1の外部バッファ11の動作について詳細に説明する。
【0018】
外部バッファ11への入力は、アドレスADD、アドレス有効フラグADDV、書き込みデータWD、及び書き込みデータ有効フラグWDVを含む。外部バッファ11からの出力は、読み出しデータRDと、読み出しデータ有効フラグRDVとを含む。各データ有効フラグは、対応するデータが有効か無効かを示す値を有する。例えばアドレスデータ有効フラグADDVは、有効値又は無効値であり得るアドレスADDが実際に有効値であるか無効値であるのかを示す値を有する。図3及び図4に示す例において各データ有効フラグは、値1のときに対応するデータが有効であることを示し、値0のときに対応するデータが無効であることを示す。例えば図3において、A0乃至A3は有効なアドレス値であるが、A4は無効なアドレス値である。
【0019】
外部バッファ11は、アドレスデータ有効フラグADDVがアドレス無効を示すとき、即ちADDV=0のとき、nop動作となる。即ち外部バッファ11は何も動作を実行しない。またアドレス有効(ADDV=1)で且つ書き込みデータ無効(WDV=0)のとき、外部バッファ11は読み出し動作を実行する。図3の例では、書き込みデータ有効フラグWDVは常時0に設定されているので、アドレスデータ有効フラグADDVがアドレス有効を示す全てのサイクルで、読み出し動作が実行される。図3の最下段に示す四角で囲った「R」は、対応するサイクルで読み出し動作が実行されることを示している。なお最上段にクロック信号CLKが示されており、1クロックサイクルで1つの読み出し動作又は書き込み動作が実行される。
【0020】
アドレス有効(ADDV=1)で且つ書き込みデータ有効(WDV=1)のとき、外部バッファ11は書き込み動作を実行する。図4の例では、アドレスA0,A2,A4乃至A12の各サイクルにおいて、アドレス有効(ADDV=1)で且つ書き込みデータ有効(WDV=1)であるので、書き込み動作が実行される。図4の最下段に示す四角で囲った「W」は対応するサイクルで書き込み動作が実行されることを示す。また四角で囲った「R」は対応するサイクルで読み出し動作が実行されることを示す。
【0021】
なお外部バッファ11は、読み出しアクセスを要求した場合、所定の読み出しレイテンシの後に読み出しデータを出力する。図3及び図4の例では、読み出しレイテンシは5クロックサイクルとなっている。即ち、例えば図3のアドレスA0の読み出しアクセス要求に対して、その読み出しデータR0は5クロックサイクル後に出力されている。
【0022】
図5は、コンテキストの切り替えに伴う動作停止について説明するための図である。前述のように、リコンフィギュラブル回路は動作中にコンテキスト切り替えを実行することにより、実行する演算動作を変更することができる。このコンテキスト切り替え時の待ち時間を無くすために、リコンフィギュラブル演算器アレイ12はコンフィギュレーションメモリ18からのコンフィギュレーションデータの先読みを行なうことができる。図5に示す例では、リコンフィギュラブル演算器アレイ12がコンテキストAで動作している状態において、コンテキストBに相当するコンフィギュレーションデータが先読み(preload)されている。タイミングT1で、リコンフィギュラブル演算器アレイ12の動作の基になるコンフィギュレーションデータがコンテキストAのものからコンテキストBのものに切り替えられ、これによりコンテキスト切り替えが行なわれる。この後、リコンフィギュラブル演算器アレイ12がコンテキストBで動作している状態において、コンテキストCに相当するコンフィギュレーションデータが先読み(preload)されている。
【0023】
タイミングT2では、コンテキスト切り替えの分岐が発生する。この分岐では、リコンフィギュラブル演算器アレイ12内部での演算結果に応じて、次に実行するコンテキストが決定される。この例では、コンテキストCに相当するコンフィギュレーションデータが先読みされているが、実際に次に実行するコンテキストがコンテキストDであることが分岐により確定する。従って、タイミングT2からクロック信号CLKのnサイクルかけて、コンテキストDをコンフィギュレーションメモリ18から読み込む。このようなコンテキスト読み直し(先読みコンテキストの書き替え)の間は、リコンフィギュラブル演算器アレイ12の動作を停止する必要がある。リコンフィギュラブル演算器アレイ12は、コンテキスト読み直しが必要であることを検出すると、図1に示すように停止要求をシーケンサ17に送る。これに応答して、シーケンサ17が内部停止要求in−stallを停止制御回路13に供給し、停止制御回路13が停止信号stallを発生する。この停止信号stallにより、リコンフィギュラブル演算器アレイ12の動作はT2からnサイクルの間動作を停止する(図示のSTALL)。その後、コンテキストDに相当するコンフィギュレーションデータが先読みされると、タイミングT3で、リコンフィギュラブル演算器アレイ12の動作の基になるコンフィギュレーションデータがコンテキストBのものからコンテキストDのものに切り替えられる。これによりコンテキストBからコンテキストDへの切り替えが行なわれる。
【0024】
図6は、リコンフィギュラブル演算器アレイが動作停止したときの外部バッファからのデータ読み出しの問題点を説明するための図である。図6に示す動作は、リコンフィギュラブル演算器アレイが外部バッファを読み出し中に動作停止が発生し、そのまま読み出し要求が継続した場合についてのものである。前述のようにリコンフィギュラブル演算器アレイの内部のフリップフロップの更新動作を停止してリコンフィギュラブル演算器アレイの演算動作を停止させると、停止時の状態がそのまま継続することになる。従って、何らかの工夫をしない限りは、図6に示す例のように読み出し要求が継続してしまうことになる。
【0025】
図6の(a)にはクロック信号CLKが示される。(c)に示すように、タイミングT1からT2の間においてリコンフィギュラブル演算器アレイは読み出し要求を行なっており、(b)に示すように、5サイクルのレイテンシをおいて外部バッファが読み出しデータ供給動作を行なっている。この読み出しデータ供給動作により供給されるデータが、図6の(d)に示すリコンフィギュラブル回路入力データDATA1となる。(c)に示すようにタイミングT2でリコンフィギュラブル演算器アレイは動作停止するが、そのまま読み出し要求は継続される。この動作停止中の読み出し要求に対応して、(d)に示すように、5サイクル遅れでDATA3が入力データとして外部バッファからリコンフィギュラブル回路に供給される。このとき、タイミングT2からT3の間においてリコンフィギュラブル演算器アレイは動作を停止しているので、何らかの工夫をしない限りは、その間の入力データが失われることになる。DATA3はリコンフィギュラブル演算器アレイが読み出しを意図したデータではないので失われても問題ないが、DATA1は失われてはならないデータである。また同様に、リコンフィギュラブル演算器アレイがタイミングT4からT5にかけて動作停止すると、読み出しデータDATA4のうちでタイミングT4からT5の間に供給されている部分が失われてしまう。
【0026】
以上のような、不都合を解消するために、図1に示すリコンフィギュラブル回路10ではバッファ回路14、要求制御回路15、及び要求制御回路16が設けられている。バッファ回路14は、リコンフィギュラブル演算器アレイ12の動作の停止時に外部バッファ11から供給されるデータを一時的に格納する。またバッファ回路14は、リコンフィギュラブル演算器アレイ12の動作の再開時に、格納されたデータをリコンフィギュラブル演算器アレイ12に供給する。要求制御回路15は、リコンフィギュラブル演算器アレイ12の動作の停止時に、リコンフィギュラブル演算器アレイ12から外部への書き込みデータ供給を無効化するアクセス要求無効化回路として機能する。また要求制御回路16は、リコンフィギュラブル演算器アレイ12の動作の停止時に、リコンフィギュラブル演算器アレイ12から外部へのアドレス供給を無効化するアクセス要求無効化回路として機能する。
【0027】
図7は、バッファ回路14の構成の一例を示す図である。バッファ回路14は、カウンタ31、イネーブル生成器32、タップ付きシフトレジスタ33、OR回路34、セレクタ35、格納個数指示レジスタ36、及びインバータ39を含む。タップ付きシフトレジスタ33は、シフトレジスタの任意のフリップフロップの格納値を選択的に出力可能としたものであり、縦続接続されたフリップフロップ37−1乃至37−n及びセレクタ38を含む。なお図示の都合上、フリップフロップ37−1乃至37−nは1ビットに対応する一列のみを示すが、実際には入力データがa+1ビットであれば、a+1列のフリップフロップ列が設けられることになる。なお図示の例の場合、バッファ回路14への入力データは、有効値又は無効値であるaビットのデータdinと、有効値又は無効値であるデータdinが有効値であるか無効値であるかを示す1ビットの有効指示データ(フラグ)vinとからなる。これらa+1ビットの入力データの各ビットに対して一列のフリップフロップが設けられ、全体でa+1列のフリップフロップ列が設けられる。バッファ回路14の出力データは、同様に、有効値又は無効値であるaビットのデータdoutと、有効値又は無効値であるデータdoutが有効値であるか無効値であるかを示す1ビットの有効指示データ(フラグ)voutとからなる。
【0028】
バッファ回路14は、第1の動作モードでは、外部バッファ11から供給され一時的に格納された格納後のデータをリコンフィギュラブル演算器アレイ12に供給する。またバッファ回路14は、第2の動作モードでは、外部バッファ11から供給されるデータを一時的な格納動作を介することなくリコンフィギュラブル演算器アレイ12に供給する。シフトレジスタ33に未読み出しの格納データが存在するときには第1の動作モードとなり、シフトレジスタ33に未読み出しの格納データが存在しないときには第2の動作モードになる。第1の動作モードと第2の動作モードとの切り替えは、シフトレジスタ33に格納される未読み出しのデータの個数をカウントするカウンタ31の出力カウント値が0であるか1以上であるかに応じてセレクタ35を制御することにより行なわれる。カウンタ31の出力カウント値が0のときに、セレクタ35は、外部バッファ11からの供給データを選択してリコンフィギュラブル演算器アレイ12に供給する。カウンタ31の出力カウント値が1以上のときに、セレクタ35は、シフトレジスタ33の出力を選択してリコンフィギュラブル演算器アレイ12に供給する。
【0029】
シフトレジスタ33は、リコンフィギュラブル演算器アレイ12の動作が停止した時点から格納個数指示レジスタ36の格納値が示す個数分のデータを格納する。格納個数指示レジスタ36には、外部バッファ11のレイテンシをクロックサイクル数で表した値が格納されている。格納個数指示レジスタ36の格納値は、イネーブル生成器32に供給される。
【0030】
図13は、イネーブル生成器の構成の一例を示す図である。イネーブル生成器32は、縦続接続されたフリップフロップ71−1乃至71−n及びセレクタ72を含む。セレクタ72は、格納個数指示レジスタ36の格納値stageが示す位置にあるフリップフロップ71−1乃至71−nのデータを選択し、ストールフラグ信号stall_flagとして出力する。イネーブル生成器32は、停止信号stallを格納個数指示レジスタ36の格納値stageが示す個数分のサイクルだけ遅延させてから、ストールフラグ信号stall_flagとして出力するよう機能する。従ってイネーブル生成器32の出力するストールフラグ信号stall_flagは、リコンフィギュラブル演算器アレイ12の動作が停止した時点(即ち停止信号stallがアサートされた時点)から上記の個数分のサイクルの間はネゲート状態にある。即ち、この期間、ストールフラグ信号stall_flagの論理反転であるカウントイネーブル信号はアサート状態となっている。例えばレイテンシが5クロックサイクルの場合、格納個数指示レジスタ36には5が格納される。この場合、リコンフィギュラブル演算器アレイ12の動作が停止した時点から5クロックサイクルの間、カウントイネーブル信号がアサート状態となる。従ってこの例では、シフトレジスタ33は、リコンフィギュラブル演算器アレイ12の動作が停止した時点から数えて5個のデータ(5クロックサイクル分のデータ)を格納し、それ以降のデータを格納しない。
【0031】
シフトレジスタ33は、フリップフロップ37−1乃至37−nに格納されるデータのうちでカウンタ31のカウント値により選択したデータをリコンフィギュラブル演算器アレイ12に出力する。例えばカウンタ31のカウント値が4の場合、セレクタ38により4番目のフリップフロップ37−4の格納データを選択して、セレクタ35に供給する。これにより、4番目のフリップフロップ37−4の格納データがリコンフィギュラブル演算器アレイ12に供給されることになる。
【0032】
図14は、カウンタ31の構成の一例を示す図である。カウンタ31は、1増加回路81、1減少回路82、セレクタ83、セレクタ84、フリップフロップ85、及びAND回路86及び87を含む。AND回路86及び87の各々は、一方の入力が負論理であり他方の入力が正論理となっている。カウンタ31は、リコンフィギュラブル演算器アレイ12の動作が停止している期間にシフトレジスタ33がシフト動作する場合は、カウント値をクロックCLKに応じてカウントアップする。即ち、停止信号stallがアサートされており且つストールフラグ信号stall_flagがネゲートされている場合、カウンタ31は、カウント値をクロックCLKのパルスに同期してカウントアップする。
【0033】
またカウンタ31は、リコンフィギュラブル演算器アレイ12の動作が停止している期間にシフトレジスタ33がシフト動作しない場合は、カウント値を現在値に維持する。即ち、停止信号stallがアサートされており且つストールフラグ信号stall_flagもアサートされている場合、カウンタ31は、カウントアップもカウントダウンもすることなく、カウント値を変化させずに現在値に維持する。
【0034】
またカウンタ31は、リコンフィギュラブル演算器アレイ12が動作している期間にシフトレジスタ33がシフト動作しない場合は、カウント値をクロックCLKに応じてカウントダウンする。即ち、停止信号stallがネゲート(デアサート)されており且つストールフラグ信号stall_flagがアサートされている場合、カウンタ31は、カウント値をクロックCLKのパルスに同期してカウントダウンする。
【0035】
図8は、要求制御回路15の構成の一例を示す図である。要求制御回路16も図8の構成と同一の構成を有する。要求制御回路15(又は16)は、2入力のうちの一方が負論理入力であるAND回路41、フリップフロップ42、及びフリップフロップ43を含む。要求制御回路15(又は16)の入力データは、有効値又は無効値であるaビットのデータdinと、有効値又は無効値であるデータdinが有効値であるか無効値であるかを示す1ビットの有効指示データ(フラグ)vinとからなる。また要求制御回路15(又は16)の出力データは、有効値又は無効値であるaビットのデータdoutと、有効値又は無効値であるデータdoutが有効値であるか無効値であるかを示す1ビットの有効指示データ(フラグ)voutとからなる。要求制御回路15の場合、入出力データは書き込みデータであり、要求制御回路16の場合、入出力データはアドレスデータである。
【0036】
フリップフロップ42は、有効フラグを除いた入出力データdin/doutの各ビットに対して1個ずつ設けられる。この例の場合、入出力データがaビットであるので、a個のフリップフロップ42が設けられる。入力データdinは、有効指示データvinがアサート状態(有効を示す状態)のときにクロックCLKに同期してフリップフロップ42に格納され、出力データdoutとして出力される。有効指示データvinがネゲート状態(無効を示す状態)のときには、入力データdinはフリップフロップ42に格納されず、出力データdoutとして現れない。
【0037】
停止信号stallがネゲート状態(0)で動作有効を示す時、入力有効指示データvinはクロックCLKに同期してフリップフロップ43に格納され、出力有効指示データデータvoutとして出力される。停止信号stallがアサート状態(1)で動作停止を示す時には、AND回路41の出力は0となる。この場合、クロックCLKに同期してフリップフロップ43には0が格納され、出力有効指示データvoutとして0(無効を示す値)が出力される。
【0038】
図9は、停止制御回路13の構成の一例を示す図である。図9に示す停止制御回路13は、OR回路45を含む。OR回路45の入力には、内部停止要求in−stall、第1の外部停止要求ext−stall1、第2の外部停止要求ext−stall2等の複数の要因に基づく停止要求信号が印加される。ここで内部停止要求in−stallはシーケンサ17から供給される。また例えば第1の外部停止要求ext−stall1は、図1に示す外部停止要求ext−stallに相当する。第2の外部停止要求ext−stall2に相当する信号は図1には示されていないが、図9に示す停止制御回路13は、任意の数の外部からの停止要求に対して対応可能となっている。入力される停止要求信号のうちの1つでもアサート状態(1)になると、停止要求信号がアサート状態(1)となる。
【0039】
図10は、リコンフィギュラブル演算器アレイが動作停止したときに要求制御回路及びバッファ回路により外部バッファと適切に連携する様子を示す図である。図10に示す動作は、図1に示すリコンフィギュラブル演算器アレイ12が外部バッファ11を読み出し中に、何らかの動作停止要求が発生した場合についての各部分の動作である。停止制御回路13の停止信号stallのアサートに応答して、リコンフィギュラブル演算器アレイ12の動作が停止し、また要求制御回路16が有効指示信号voutをネゲート状態とする。従って、リコンフィギュラブル演算器アレイ12の演算動作の停止時以降においては、外部バッファ11に対する読み出し要求は行なわれない。
【0040】
図10の(a)にはクロック信号CLKが示される。(c)に示すように、タイミングT1からT2の間においてリコンフィギュラブル演算器アレイ12は読み出し要求を行なっており、(b)に示すように、5サイクルのレイテンシをおいて外部バッファが読み出しデータ供給動作を行なっている。この読み出しデータ供給動作により供給されるデータが、図10の(d)に示すリコンフィギュラブル回路入力データDATA1となる。(c)に示すようにタイミングT2でリコンフィギュラブル演算器アレイ12は動作停止し、外部バッファ11に対する読み出し要求は停止される。但し、タイミングT2前の読み出し要求に対応して、(d)に示すように、T2から5サイクルの間はDATA1が入力データとして外部バッファ11からリコンフィギュラブル回路10に供給される。バッファ回路14は、この5サイクル分の入力データDATA1をバッファデータ51として格納する。このときカウンタ31のカウント値は5までカウントアップされる。
【0041】
(c)に示すようにリコンフィギュラブル演算器アレイ12はタイミングT3で演算動作を再開する。これに伴い要求制御回路16が有効指示信号voutをアサート状態とし、外部バッファ11に対する読み出し要求を再開する。バッファ回路14においては、前述のように、カウンタ31の出力カウント値が1以上のときに、セレクタ35は、シフトレジスタ33の出力を選択してリコンフィギュラブル演算器アレイ12に供給する。従って、タイミングT3から5サイクルの間は、シフトレジスタ33に格納されるバッファデータDATA1が入力データ52としてリコンフィギュラブル演算器アレイ12に順次供給される。この5サイクルの間にバッファ回路14のカウンタ31はカウントダウンし、カウント値が0になる。カウンタ31の出力カウント値が0になると、セレクタ35は、外部バッファ11からの供給データを選択してリコンフィギュラブル演算器アレイ12に供給する。従ってタイミングT3での読み出し要求再開に応答してT3から6サイクル目に外部バッファ11から読み出される読み出しデータDATA2は、バッファ回路14を介してリコンフィギュラブル演算器アレイ12に供給されることになる。このバッファ回路14の動作により、外部バッファ11から読み出されるデータが失われることなく、リコンフィギュラブル演算器アレイ12に連続して供給される。
【0042】
また更に、(c)に示すようにタイミングT4でリコンフィギュラブル演算器アレイ12は動作停止し、外部バッファ11に対する読み出し要求は停止される。タイミングT4前の読み出し要求に対応して、(d)に示すように、T4から5サイクルの間はDATA2が入力データとして外部バッファ11からリコンフィギュラブル回路10に供給される。バッファ回路14は、この5サイクル分の入力データDATA1をバッファデータ53及び55として格納する。但し、(c)に示すようにリコンフィギュラブル演算器アレイ12はタイミングT5で演算動作を再開している。このT5での演算動作再開は、T4での演算動作停止から5サイクル以内の4サイクル目に生じているので、この時点でバッファ回路14には4サイクル分の入力データDATA2がバッファデータ53として格納されている。T5での演算動作再開時のバッファ回路14のカウンタ31のカウント値は4である。従って、タイミングT5から4サイクルの間は、T5の時点でシフトレジスタ33に既に格納されている4サイクル分のバッファデータ53が入力データ54としてリコンフィギュラブル演算器アレイ12に順次供給される。T5の直後のサイクルでは、シフトレジスタ33からのデータ読み出しとシフト動作とが並行して起こり、T4から5サイクル目の入力データがバッファデータ55としてバッファ回路14に格納される。このときバッファ回路14のカウンタ31のカウント値は4に維持される。その後、T5から2サイクル目乃至5サイクル目において、カウント値は4から0までカウントダウンする。T5から5サイクル目において、T5の直後のサイクルでバッファ回路14に格納されたバッファデータ55が入力データ56としてリコンフィギュラブル演算器アレイ12に供給される。カウンタ31の出力カウント値が0になると、セレクタ35は、外部バッファ11からの供給データを選択してリコンフィギュラブル演算器アレイ12に供給する。従ってタイミングT5での読み出し要求再開に応答してT5から6サイクル目に外部バッファ11から読み出される読み出しデータDATA3は、バッファ回路14を介してリコンフィギュラブル演算器アレイ12に供給されることになる。このバッファ回路14の動作により、外部バッファ11から読み出されるデータが失われることなく、リコンフィギュラブル演算器アレイ12に連続して供給される。
【0043】
図10に示す動作は、停止要求の要因が内部停止要求in−stallの場合であっても外部停止要求ext−stallの場合であっても、何れも同じ動作となる。外部バッファ11から外部停止要求ext−stallが発生する原因としては、例えば、外部バッファ11でのデータ格納が完了してない段階で外部バッファ11に読み出し要求をした等がある。
【0044】
図11は、図10との対比としてバッファ回路及び要求制御回路が設けられていない構成においてデータ読み出しを適切に行なうための動作を示す図である。図10の場合と同様に、タイミングT2で何らかの停止要求が発生するが、直ちにリコンフィギュラブル演算器アレイが動作停止すると、図6で説明したように読み出しデータの入力に失敗してしまう。これを避けるために、図11に示す動作例では、停止要求が発生してからレイテンシ分の5サイクル待って、タイミングT2’でリコンフィギュラブル演算器アレイの動作を停止している。但し、停止要求が発生したタイミングT2で外部バッファに対する読み出し要求を停止しており、外部バッファからのデータ読み出しはタイミングT2’までに完了する。従ってタイミングT2’からT3’までリコンフィギュラブル演算器アレイの動作を停止しても、読み出しデータが失われることはない。この図11に示すように、リコンフィギュラブル演算器アレイの実際の動作停止を遅らせながら先に読み出し要求を停止させ、データ読み出しを適切に行なうように動作制御することも可能ではある。しかしながら図11に示す動作の場合、図10の動作と比較して、リコンフィギュラブル演算器アレイの実際の動作停止をT2からT2’まで遅らせることにより、動作再開のタイミングも遅れることになる。従って、動作停止する度にリコンフィギュラブル回路の動作が余分に遅れていくことになり、処理性能が低下してしまう。図1に示す構成ではバッファ回路14及び要求制御回路15及び16を設けることにより、リコンフィギュラブル演算器アレイ12の動作停止を遅らせることなく、高い処理性能を実現することができる。
【0045】
図12は、リコンフィギュラブル回路システムの構成の変形例を示す図である。図12において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。図12のリコンフィギュラブル回路システムは、リコンフィギュラブル回路10A、外部バッファ11、及び外部バッファ61を含む。外部バッファ11は読み出しレイテンシが例えば5クロックサイクルであり、外部バッファ61は読み出しレイテンシが例えば8クロックサイクルである。
【0046】
リコンフィギュラブル回路10Aは、図1に示すリコンフィギュラブル回路10の構成に加え更に、バッファ回路64、要求制御回路65、及び要求制御回路66を含む。バッファ回路64、要求制御回路65、及び要求制御回路66はそれぞれ、バッファ回路14、要求制御回路15、及び要求制御回路16と同一の構成でよい。バッファ回路14、要求制御回路15、及び要求制御回路16が外部バッファ11に対する読み出し・書き込み制御を行なうのと同様にして、バッファ回路64、要求制御回路65、及び要求制御回路66が外部バッファ61に対する読み出し・書き込み制御を行なう。
【0047】
停止要求の要因が何であるかに関わらず一旦停止信号stallがアサートされると、その後の外部バッファ11に対する制御と外部バッファ61に対する制御は同様であり、互いに独立に実行される。外部バッファ11に対しては、そのレイテンシが5サイクルであることに応じて、バッファ回路14には5サイクル分の読み出しデータがバッファされる。また外部バッファ61に対しては、そのレイテンシが8サイクルであることに応じて、バッファ回路64には8サイクル分の読み出しデータがバッファされる。外部バッファ11及び61の各々に対する読み出しデータのバッファリング及びリコンフィギュラブル演算器アレイ12へのデータ供給動作は、格納データ数が5と8とで異なるだけであり、図10に示したのと同様の動作が両方のバッファに対して実行される。
【0048】
このようにしてリコンフィギュラブル回路10に対して複数の外部バッファが接続されている場合であっても、リコンフィギュラブル演算器アレイ12の演算動作停止時にそれぞれの外部バッファに対して適切に読み出し動作を行なうことができる。なお図12の例では外部バッファの数が2である場合について示してあるが、外部バッファの数は2に限られるものではなく、任意の数の外部バッファが設けられてよい。
【0049】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【0050】
なお本発明は、以下の内容を含むものである。
(付記1)
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路。
(付記2)
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第1の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第2の動作モードとを備えることを特徴とする付記1記載のリコンフィギュラブル回路。
(付記3)
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする付記1又は2記載のリコンフィギュラブル回路。
(付記4)
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする付記3記載のリコンフィギュラブル回路。
(付記5)
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする付記4記載のリコンフィギュラブル回路。
(付記6)
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする付記5記載のリコンフィギュラブル回路。
(付記7)
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも1つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする付記1乃至6のいずれか一項記載のリコンフィギュラブル回路。
(付記8)
前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に第1の外部リソースから供給される第1のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第1のデータを前記リコンフィギュラブル演算器アレイに供給する第1のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に第2の外部リソースから供給される第2のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第2のデータを前記リコンフィギュラブル演算器アレイに供給する第2のバッファ回路と
を含むことを特徴とする付記1乃至7のいずれか一項記載のリコンフィギュラブル回路。
(付記9)
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする付記1乃至8のいずれか一項記載のリコンフィギュラブル回路。
(付記10)
リコンフィギュラブル回路と、
前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファと、
を含み、前記リコンフィギュラブル回路は、
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路システム。
(付記11)
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第1の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第2の動作モードとを備えることを特徴とする付記10記載のリコンフィギュラブル回路システム。
(付記12)
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする付記10又は11記載のリコンフィギュラブル回路システム。
(付記13)
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする付記12記載のリコンフィギュラブル回路システム。
(付記14)
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする付記13記載のリコンフィギュラブル回路システム。
(付記15)
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする付記14記載のリコンフィギュラブル回路システム。
(付記16)
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも1つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする付記10乃至15のいずれか一項記載のリコンフィギュラブル回路システム。
(付記17)
前記外部バッファを第1の外部バッファとして、前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう第2の外部バッファを更に含み、前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記第1の外部バッファから供給される第1のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第1のデータを前記リコンフィギュラブル演算器アレイに供給する第1のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記第2の外部バッファから供給される第2のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第2のデータを前記リコンフィギュラブル演算器アレイに供給する第2のバッファ回路と
を含むことを特徴とする付記10乃至16のいずれか一項記載のリコンフィギュラブル回路システム。
(付記18)
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする付記10乃至17のいずれか一項記載のリコンフィギュラブル回路システム。
(付記19)
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイの動作を停止し、
前記リコンフィギュラブル演算器アレイの動作の停止と同時に前記リコンフィギュラブル演算器アレイから外部リソースへのデータ読み出し要求を無効化し、
前記リコンフィギュラブル演算器アレイの動作の停止後に前記外部リソースから供給される読み出しデータを、前記外部リソースの読み出しレイテンシ分の数、バッファに格納し、
前記リコンフィギュラブル演算器アレイの動作を再開するとともに前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給する
各段階を含むことを特徴とするリコンフィギュラブル回路の制御方法。
【符号の説明】
【0051】
10 リコンフィギュラブル回路
11 外部バッファ
12 リコンフィギュラブル演算器アレイ
13 停止制御回路
14 バッファ回路
15 要求制御回路
16 要求制御回路
17 シーケンサ
18 コンフィギュレーションメモリ
【特許請求の範囲】
【請求項1】
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路。
【請求項2】
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第1の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第2の動作モードとを備えることを特徴とする請求項1記載のリコンフィギュラブル回路。
【請求項3】
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする請求項1又は2記載のリコンフィギュラブル回路。
【請求項4】
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする請求項3記載のリコンフィギュラブル回路。
【請求項5】
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする請求項4記載のリコンフィギュラブル回路。
【請求項6】
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする請求項5記載のリコンフィギュラブル回路。
【請求項7】
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも1つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする請求項1乃至6のいずれか一項記載のリコンフィギュラブル回路。
【請求項8】
前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に第1の外部リソースから供給される第1のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第1のデータを前記リコンフィギュラブル演算器アレイに供給する第1のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に第2の外部リソースから供給される第2のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第2のデータを前記リコンフィギュラブル演算器アレイに供給する第2のバッファ回路と
を含むことを特徴とする請求項1乃至7のいずれか一項記載のリコンフィギュラブル回路。
【請求項9】
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする請求項1乃至8のいずれか一項記載のリコンフィギュラブル回路。
【請求項10】
リコンフィギュラブル回路と、
前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファと、
を含み、前記リコンフィギュラブル回路は、
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路システム。
【請求項1】
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路。
【請求項2】
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第1の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第2の動作モードとを備えることを特徴とする請求項1記載のリコンフィギュラブル回路。
【請求項3】
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする請求項1又は2記載のリコンフィギュラブル回路。
【請求項4】
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする請求項3記載のリコンフィギュラブル回路。
【請求項5】
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする請求項4記載のリコンフィギュラブル回路。
【請求項6】
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする請求項5記載のリコンフィギュラブル回路。
【請求項7】
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも1つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする請求項1乃至6のいずれか一項記載のリコンフィギュラブル回路。
【請求項8】
前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に第1の外部リソースから供給される第1のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第1のデータを前記リコンフィギュラブル演算器アレイに供給する第1のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に第2の外部リソースから供給される第2のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第2のデータを前記リコンフィギュラブル演算器アレイに供給する第2のバッファ回路と
を含むことを特徴とする請求項1乃至7のいずれか一項記載のリコンフィギュラブル回路。
【請求項9】
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする請求項1乃至8のいずれか一項記載のリコンフィギュラブル回路。
【請求項10】
リコンフィギュラブル回路と、
前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファと、
を含み、前記リコンフィギュラブル回路は、
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2010−244238(P2010−244238A)
【公開日】平成22年10月28日(2010.10.28)
【国際特許分類】
【出願番号】特願2009−91017(P2009−91017)
【出願日】平成21年4月3日(2009.4.3)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
【公開日】平成22年10月28日(2010.10.28)
【国際特許分類】
【出願日】平成21年4月3日(2009.4.3)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]