JP5501074B2 - リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法 - Google Patents

リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法 Download PDF

Info

Publication number
JP5501074B2
JP5501074B2 JP2010085470A JP2010085470A JP5501074B2 JP 5501074 B2 JP5501074 B2 JP 5501074B2 JP 2010085470 A JP2010085470 A JP 2010085470A JP 2010085470 A JP2010085470 A JP 2010085470A JP 5501074 B2 JP5501074 B2 JP 5501074B2
Authority
JP
Japan
Prior art keywords
data
unit
calculation
valid
output
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
JP2010085470A
Other languages
English (en)
Other versions
JP2011217279A (ja
Inventor
喬 花井
清光 加藤
孝彦 久保田
純治 佐保田
一郎 笠間
京治 佐藤
晋一 須藤
Original Assignee
スパンション エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by スパンション エルエルシー filed Critical スパンション エルエルシー
Priority to JP2010085470A priority Critical patent/JP5501074B2/ja
Priority to US13/073,691 priority patent/US20110246747A1/en
Publication of JP2011217279A publication Critical patent/JP2011217279A/ja
Application granted granted Critical
Publication of JP5501074B2 publication Critical patent/JP5501074B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Logic Circuits (AREA)
  • Microcomputers (AREA)

Description

本願開示は、一般に電子回路に関し、詳しくは動的に再構成可能なリコンフィギュラブル回路に関する。
ダイナミックリコンフィギャラブル回路(以下、リコンフィギュラブル回路と呼ぶ)は、各種演算機能を有する複数の演算器を含むデータ演算部と、演算器間の接続を行なうネットワークであるデータ選択部とを含む。外部から設定したコンフィギュレーションデータに基づいて、データ演算部の各演算器の演算命令とデータ選択部が規定する演算器間の接続とを再構成可能に設定する。リコンフィギュラブル回路を動作させながら、コンフィギュレーションデータを書き換えることにより、演算命令と演算器間の接続とを動的に変更することが可能である。これにより、演算器を時間軸方向に分割して共用し、回路全体のハードウェア規模を削減することが可能となる。またリコンフィギュラブル回路は、パイプライン演算を行うことが可能であり、連続したデータを高速に処理することができる。
演算機能を実現する演算器は、その演算内容に応じて、演算の実行にかかるレイテンシが変化する。一般に、単純な演算であれば演算終了までの演算サイクル数が比較的短く、複雑な演算であれば演算終了までの演算サイクル数が比較的長くなる。このような演算レイテンシの違いや演算順序等に起因して、ある演算器が前段の例えば2つの演算器からの演算結果を受けて演算を行なう場合、これら2つの演算器の演算結果が同時に利用可能になるとは限らない。このような場合、演算タイミングを合わせるために、早いほうの演算結果のデータ経路にディレイを挿入することが一般的に行なわれる。また各種演算機能を組み合わせて所望の演算内容を実現する際に、その全体の演算が終了したことを外部に通知するために、終了する迄の実行サイクル数をカウントする機能等が設けられる。
上記のディレイを実現するディレイ回路においては、回路構成の自由度を確保するためには、その遅延段数を所望のサイクル数に設定可能であることが好ましい。このようなディレイ回路を設けることは、データ演算部の回路規模の増大という問題をひきおこす。また実装するディレイの個数が増えれば、データ演算部とデータ選択部との両方において回路規模が増大し、更に、データ選択部を経由するパスの動作速度が低下することになる。また上記の終了迄の実行サイクル数をカウントする機能を設けるためには、演算の最大実行回数分の演算サイクル数のメモリや演算実行サイクル数をカウントするカウンタが必要になり、回路規模が増大するという問題をひきおこす。これらの回路規模の増大は、演算機能の組み合わせ可能数や演算機能の種類の数が増えるほど、即ち、実現したい汎用性が高くなるほど、大きくなるという問題がある。
特開2004−118713号公報 特開2008−92190号公報 特開2007−94847号公報 特開2009−75875号公報
以上を鑑みると、単純な回路構成により演算実行のレイテンシを吸収できるリコンフィギュラブル回路が望まれる。
リコンフィギュラブル回路は、複数のデータが全て同時に有効状態になると前記複数のデータに対して演算を実行し、前記複数のデータが全て同時に有効状態である間、前記演算により得られた演算結果を示す有効状態のデータを出力し続ける演算器を、複数個含むデータ演算部と、前記演算器間を再構成可能に接続するデータ選択部と、一連の演算を実行するように前記データ選択部により接続された一連の演算器に入力されるデータを入力データして保持するデータ入力部とを含み、前記データの有効及び無効状態は該データに対として付随する有効及び無効を示す信号により示され、前記一連の演算を実行する間は前記データ入力部から前記データ演算部に供給されている前記入力データを有効状態の同一データに固定しておくことを特徴とする。
また、複数のデータが全て同時に有効状態になると前記複数のデータに対して演算を実行し、前記複数のデータが全て同時に有効状態である間、前記演算により得られた演算結果を示す有効状態のデータを出力し続ける演算器を複数個含むデータ演算部と、前記演算器間を再構成可能に接続するデータ選択部と、一連の演算を実行するように前記データ選択部により接続された一連の演算器に入力されるデータを入力データして保持するデータ入力部とを含むリコンフィギュラブル回路において、リコンフィギュラブル回路の駆動方法は、前記一連の演算を実行する間は前記データ入力部から前記データ演算部に供給されている前記入力データを有効状態の同一データに固定しておく段階を含むことを特徴とする。
本願開示の少なくとも1つの実施例によれば、リコンフィギュラブル回路において、一連の演算が実行される間、データ入力部からのデータ供給を、当該データを示す信号が活性化されている状態(即ちデータ供給状態)に維持する。これにより、データ入力部からのデータ供給に基づいて演算を実行する各演算機能ユニットにおいて、有効状態の演算結果を出力したままの状態を維持することができる。従って、複数のデータを入力とする各演算機能ユニットでは、複数のデータの何れも消えてしまうことなく有効状態に維持されるので、全てのデータが同時に有効状態となるのを待ってから演算を開始すればよい。従って、タイミングを合わせるためのディレイ回路が不要となる。
リコンフィギュラブル回路の構成の一例を示す図である。 演算機能ユニットの動作を説明するための図である。 レジスタユニットの構成の一例を示す図である。 図1に示すカウンタの構成の一例を示す図である。 図1のリコンフィギュラブル回路の動作の一例を示すタイムチャートである。 リコンフィギュラブル回路の構成の一例を示す図である。 レジスタユニットの構成の一例を示す図である。 演算終了判定部の構成の一例を示す図である。 図6のリコンフィギュラブル回路の動作の一例を示すタイムチャートである。 各演算機能ユニットに入力データ保持機能を持たせた場合のリコンフィギュラブル回路の動作の一例を示すタイムチャートである。
まずリコンフィギュラブル回路の一般的な構成について説明する。図1は、リコンフィギュラブル回路の構成の一例を示す図である。図1のリコンフィギュラブル回路は、制御部10、セレクタ回路部11、データ入出力部12、データ選択部13、及びデータ演算部14を含む。制御部10は、外部インタフェース機能20と制御機能21とを含み、システムバス200に接続される。制御機能21は、リコンフィギュラブル回路全体の動作を制御するための機能であり、コンフィギュレーションメモリ21A及びシーケンサ21B等を含む。データ演算部14は、複数の演算機能ユニット23−1乃至23−7、複数のディレイユニット24−1乃至24−4、及びカウンタ25を含む。演算機能ユニットの数及びディレイユニットの数は一例であり、この例に限定されない。データ選択部13はネットワーク回路22を含み、このネットワーク回路22により、データ演算部14の演算機能ユニット23−1乃至23−7、ディレイユニット24−1乃至24−4、及びカウンタ25間を再構成可能に接続する。データ入出力部12は、複数のレジスタユニット26−1乃至26−8を含む。レジスタユニット26−1乃至26−8の数は一例であり、この例に限定されない。またセレクタ回路部11はセレクタ27を含む。
複数の演算機能ユニット23−1乃至23−7の各々が実行する演算は、コンフィギュレーションデータ中の演算命令により指定される。また複数の演算機能ユニット23−1乃至23−7間の接続形態は、コンフィギュレーションデータ中の接続データにより指定される。これらのコンフィギュレーションデータはコンフィギュレーションメモリ21Aに格納されている。シーケンサ21Bは、コンフィギュレーションメモリ21Aに格納される複数のコンフィギュレーションデータの内で、データ選択部13及びデータ演算部14の現在の実行形態を指定するコンフィギュレーションデータを選択する。シーケンサ21Bにより指定されたコンフィギュレーションデータがデータ選択部13及びデータ演算部14に供給され、そのコンフィギュレーションデータに従った演算実行形態でデータ選択部13及びデータ演算部14が動作する。シーケンサ21Bは、順次新たなコンフィギュレーションデータを指定してデータ選択部13及びデータ演算部14に供給することで、データ選択部13及びデータ演算部14の演算実行形態(コンテキスト)を順次更新していくことができる。
図2は、演算機能ユニットの動作を説明するための図である。図2(a)には、1つの演算機能ユニットの入出力信号を示す。図2(a)に示すように、演算機能ユニットの入力信号は、2つの演算データ入力Data_in0及びData_in1と、2つのValid信号入力Valid0及びValid1とを含む。Valid信号入力Valid0及びValid1はそれぞれ演算データ入力Data_in0及びData_in1に対応して設けられ、演算データ入力Data_in0及びData_in1の有効期間を示す信号である。例えば、Valid信号入力が“0”のとき、対応する演算データ入力が無効であることを示し、Valid信号入力が“1”のとき、対応する演算データ入力が有効であることを示す。演算機能ユニットの出力信号は、演算データ出力Data_out及びValid信号出力Valid_outを含む。例えば、Valid信号出力が“0”のとき、演算データ出力が無効であることを示し、Valid信号出力が“1”のとき、演算データ出力が有効であることを示す。また演算機能ユニットは、クロック信号Clockを受け取り、このクロック信号Clockに同期して動作する。
図2(b)には、演算機能ユニットの入出力信号の変化の一例を示す。演算機能ユニットは、クロック信号Clockの立ち上がりエッジにおいてValid信号入力Valid0及びValid1が共にデータ有効を示す値“1”である場合、そのときの演算データ入力Data_in0及びData_in1に対する演算を実行する。演算機能ユニットは、出力信号を演算結果で更新することにより、演算データ出力Data_outを出力すると共に、Valid信号出力Valid_outを“1”に設定する。図2(b)に示す例において、演算機能ユニットの演算データ出力Data_outは、最初に、立ち上がりエッジT1に応答して、入力データa1及びb1に対する演算結果calc(a1,b1)で更新される。演算データ出力Data_outは、次に、立ち上がりエッジT3に応答して、入力データa5及びb5に対する演算結果calc(a5,b5)で更新される。演算データ出力Data_outは、更に、立ち上がりエッジT4に応答して、入力データa6及びb6に対する演算結果calc(a6,b6)で更新される。演算機能ユニットの演算データ出力Data_outは、次の演算データ出力で更新されるまで、現在の値を保持する。なお図2(b)において、演算データ出力Data_outは、演算開始をトリガするクロック信号Clockの立ち上がりエッジから、演算に必要なレイテンシ後に更新される。このレイテンシの長さは、演算の種類によって異なる。一般に、単純な演算であれば演算終了までの演算サイクル数が比較的短く、複雑な演算であれば演算終了までの演算サイクル数が比較的長くなる。
Valid信号出力Valid_outは、クロック信号Clockの立ち上がりエッジにおいてValid信号入力Valid0及びValid1のうち少なくとも一方が無効を示す値“0”であると、無効を示す値“0”になる。図2(b)に示す例において、演算機能ユニットのValid信号出力Valid_outは、立ち上がりエッジT2に応答して、有効を示す値“1”から無効を示す値“0”に変化する。同様に、Valid信号出力Valid_outは、立ち上がりエッジT5に応答して、有効を示す値“1”から無効を示す値“0”に変化する。なお図2(b)に示すように、クロック信号Clockの立ち上がりエッジからValid信号出力が“0”へ変化するまでの時間は、上記の演算に必要なレイテンシの長さに等しくてよい。
なお演算機能ユニットの演算データ出力及びValid信号出力は、クロック信号Clockに同期して変化するように構成してもよい。例えば、立ち上がりエッジT3に応答して演算機能ユニットが演算を行なうと、その次の立ち上がりエッジT4において、演算データ出力Data_outが当該演算結果に更新され且つValid信号出力Valid_outが“1”となってよい。このとき、立ち上がりエッジT4でValid信号入力Valid0及びValid1のうち少なくとも一方が無効を示す値“0”であるとすると、Valid信号出力Valid_outは、その次の立ち上がりエッジT5で“1”から“0”に変化してよい。この例では、演算のレイテンシは1クロックサイクルであるが、演算のレイテンシは1クロックサイクルに限られず、それ以上のクロックサイクル数であってもよい。例えば、ある立ち上がりエッジに応答して演算機能ユニットが演算を行なうと、nサイクル後の立ち上がりエッジにおいて、演算データ出力Data_outが当該演算結果に更新され且つValid信号出力Valid_outが“1”となってよい。このとき、1サイクル後の立ち上がりエッジでValid信号入力Valid0及びValid1のうち少なくとも一方が無効値“0”であれば、Valid信号出力Valid_outは、n+1サイクル後の立ち上がりエッジで“1”から“0”に変化してよい。
図3は、レジスタユニットの構成の一例を示す図である。図3には、レジスタユニット26−1の構成を一例として示し、各レジスタユニット26−1乃至26−8は同一の構成でよい。レジスタユニット26−1は、セレクタ31−1乃至31−4、データメモリ32、AND回路33、及びフリップフロップ34を含む。
図1に示す制御部10から、外部信号又は内部信号の何れかを選択するための選択制御信号が、セレクタ31−1乃至31−4に供給される。この選択制御信号が“0”のとき、セレクタ31−1乃至31−4は内部からの信号を選択する。また選択制御信号が“1”のとき、セレクタ31−1乃至31−4は外部からの信号を選択する。外部からの信号は、外部入力データ(書き込み対象のデータ)、外部アドレス(書き込み又は読み出しアドレス)、及び外部書き込みイネーブルを含む。選択制御信号が外部信号選択“1”のとき、外部書き込みイネーブルをアサート状態にすることで、外部から供給される書き込みデータをデータメモリ32の指定した書き込みアドレスに書き込む。また選択制御信号が外部信号選択“1”のとき、外部書き込みイネーブルをネゲート状態にすることで、データメモリ32の指定した読み出しアドレスからデータを外部出力データとして読み出す。
内部からの信号は、例えばデータ選択部13の演算出力ポート(図1に示すPort10乃Port17)からセレクタ回路部11を介して供給される信号であり、データ、アドレス、データValid、及びアドレスValidを含む。データValid及びアドレスValidは、それぞれデータ及びアドレスの有効又は無効を示すValid信号である。選択制御信号が内部信号選択“0”のとき、データValid及びアドレスValidを有効値にすることで、内部から供給される書き込みデータをデータメモリ32の指定した書き込みアドレスに書き込む。また選択制御信号が内部信号選択“0”のとき、データValidを無効値にして且つアドレスValidを有効値にすることで、データメモリ32の指定した読み出しアドレスからデータを読み出す。このとき、AND回路33の出力が“1”となることによりフリップフロップ34に“1”がセットされ、レジスタユニット26−1の出力するデータValidが有効値を示す値“1”となる。
図4は、図1に示すカウンタ25の構成の一例を示す図である。カウンタ25は、カウンタ回路41、コンパレータ42、コンパレータ43、及びフリップフロップ44を含む。カウンタ回路41には、現在のコンフィギュレーションデータ(コンテキスト)に基づくリコンフィギュラブル回路の演算開始を指示する開始指示信号Start_triggerを受け取る。カウンタ回路41は、開始指示信号Start_triggerのアサートに応答して、クロック信号のパルスのカウントを開始し、カウント値を出力する。コンパレータ42は、カウンタ回路41の出力カウント値と制御部10から供給される演算全体のレイテンシを示す演算サイクル数とを比較して、両者が一致すると出力をアサートする。このコンパレータ42の出力が、演算終了判定信号Predicateとして制御部10に供給される。コンパレータ43は、カウンタ回路41の出力カウント値と制御部10から供給される演算入力データ長とを比較する。このコンパレータ43は、出力カウント値が演算入力データ長以下の時、その出力を“1”にすることにより、フリップフロップ44に“1”を設定する。カウンタ25は、カウンタ回路41の出力カウント値をデータとして出力すると共に、フリップフロップ44の格納値をデータValidとして出力する。このカウンタ25の出力データは、リコンフィギュラブル回路がパイプライン処理する一連の入力データをデータ入出力部12のレジスタユニットから読み出すためのアドレスとして使用される。
図5は、図1のリコンフィギュラブル回路の動作の一例を示すタイムチャートである。この動作例は、3つの入力データが連続してパイプライン処理される動作を示すものである。またこの動作例では、図1の演算入力ポートPort2及びPort3のデータを演算機能ユニット23−2により演算し、その演算結果と演算入力ポートPort1のデータとを演算機能ユニット23−5により演算する。そして、演算機能ユニット23−5の演算結果を演算出力ポートPort17から出力する。また更に、演算入力ポートPort1及びPort2のデータを演算機能ユニット23−1により演算し、その演算結果と上記の演算機能ユニット23−2の演算結果とを演算機能ユニット23−4により演算する。そして、演算機能ユニット23−4の演算結果を演算出力ポートPort14から出力する。これら各ポートと各演算機能ユニットとについて、データ信号及びValid信号が図5に示されている。
まず制御部10が、所望のコンフィギュレーションにデータ選択部13及びデータ演算部14を設定し、データ入出力部12に処理対象の入力データを書き込んでおく。その後、制御部10が、図3に示すデータ入出力部12の選択制御信号を、内部信号選択を示す値に設定しておく。以上の設定が終了すると、図5(a)に示すように、制御部10の制御機能21が、開始指示信号Start_triggerをHIGHにアサートする。これに応答し、(b)に示すように、図4で説明したカウンタ25が、演算出力ポートPort10を介して、アドレス信号a0乃至a2とValid信号とを出力する。図1に示すデータ入出力部12の所望のレジスタユニットに、これらのアドレス信号a0乃至a2が供給され、アドレス信号が示すアドレスからデータが読み出される。図5の動作例では、(c)に示す演算入力ポートPort2、(d)に示す演算入力ポートPort3、(f)に示す演算入力ポートPort1から、それぞれ3つのデータが各クロックサイクルで連続して読み出される。
(c)に示す演算入力ポートPort2のデータi20乃至i22及び(d)に示す演算入力ポートPort3のデータi30乃至i32が、演算機能ユニット23−2により演算される。その演算結果c20乃至c22は、(e)に示されるように、入力データに対して、演算機能ユニット23−2のレイテンシである2サイクル分遅れて出力される。この演算結果c20乃至c22のタイミングに合わせるために、(f)に示す演算入力ポートPort1のデータi10乃至i12がディレイユニット24−1に入力され、(g)に示すように、2サイクル分遅らされる。(e)に示す演算結果c20乃至c22と(g)に示す入力データi10乃至i12とが、演算機能ユニット23−5により演算される。その演算結果c50乃至c52は、(h)に示されるように、演算機能ユニット23−5のレイテンシである1サイクル分更に遅れて出力される。この演算結果c50乃至c52が、(i)に示されるように、演算出力ポートPort17から出力される。
また更に、(f)に示す演算入力ポートPort1のデータi10乃至i12及び(c)に示す演算入力ポートPort2のデータi20乃至i22が、演算機能ユニット23−1により演算される。その演算結果c10乃至c12は、(j)に示されるように、入力データに対して、演算機能ユニット23−1のレイテンシである1サイクル分遅れて出力される。(e)に示す演算結果c20乃至c22のタイミングに合わせるために、(j)に示す演算結果c10乃至c12がディレイユニット24−2に入力され、(k)に示すように、更に1サイクル分遅らされる。(e)に示す演算結果c20乃至c22と(k)に示す演算結果c10乃至c12とが、演算機能ユニット23−4により演算される。その演算結果c40乃至c42は、(l)に示されるように、演算機能ユニット23−4のレイテンシである1サイクル分更に遅れて出力される。この演算結果c40乃至c42が、(m)に示されるように、演算出力ポートPort14から出力される。
(h)に示す演算終了判定信号Predicateは、制御部10から供給されるデータ演算全体のレイテンシを示す値に基づいて図4に示すカウンタ25が生成する信号であり、演算結果が演算出力ポートから出力される期間HIGHにアサートされてよい。この例の場合、演算結果c50乃至c52が(i)に示されるように演算出力ポートPort17から出力され、演算結果c40乃至c42が(m)に示されるように演算出力ポートPort14から出力される。演算終了判定信号Predicateは、これら演算結果が出力されている間において、値“1”に設定されている。
演算終了判定信号Predicateのアサートに応答して、制御部10は、データ入出力部12への選択制御信号を、外部信号選択を示す値に設定する。更に制御部10は、外部書き込みイネーブルをネゲート状態にすると共に読み出しアドレスを供給することで、データ入出力部12のデータメモリ32からデータを読み出す。
以上説明した構成では、前述のように、ディレイユニット24−1乃至24−4の遅延段数を所望のサイクル数に設定可能であることが好ましい。そのようなディレイユニットを設けることは、データ演算部の回路規模の増大という問題をひきおこす。また実装するディレイの個数が増えれば、データ入出力部12とデータ選択部13との両方において回路規模が増大し、更に、データ選択部13を経由するパスの動作速度が低下することになる。またカウンタ25を設けることは、回路規模が増大するという問題をひきおこす。これらの回路規模の増大は、演算機能の組み合わせ可能数や演算機能の種類の数が増えるほど、即ち、実現したい汎用性が高くなるほど、大きくなるという問題がある。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。図6は、リコンフィギュラブル回路の構成の一例を示す図である。図6において、図1と同一の構成要素は同一の番号で参照し、その説明は適宜省略する。
図6のリコンフィギュラブル回路は、制御部60、データ入出力部62、データ選択部13、及びデータ演算部64を含む。制御部60は、外部インタフェース機能20と制御機能61とを含み、システムバス200に接続される。制御機能61は、リコンフィギュラブル回路全体の動作を制御するための機能であり、コンフィギュレーションメモリ21A及びシーケンサ21B等を含む。図1のリコンフィギュラブル回路は、一連のデータに対してパイプライン演算を実行するが、図6のリコンフィギュラブル回路は、1つのデータに対する演算が終了するまでは次のデータに対する演算を開始しない。その意味で、システムバス200に接続されるCPU(図示せず)から見たときに、図6のリコンフィギュラブル回路はコプロセッサ的な役割を果たすことになる。
データ演算部64は、複数の演算機能ユニット71−1乃至71−8を含む。演算機能ユニットの数は一例であり、この例に限定されない。データ選択部13のネットワーク回路22により、データ演算部64の演算機能ユニット71−1乃至71−8間を再構成可能に接続する。データ入出力部62は、複数のレジスタユニット70−1乃至70−8及び演算終了判定部72を含む。レジスタユニット70−1乃至70−8の数は一例であり、この例に限定されるものではない。データ選択部13は、演算終了判定部72に接続される演算出力ポートPort10乃至Port17を含む。一連の演算により得られる1つ又は複数の演算結果の有効及び無効を示す信号を、これら演算出力ポートPort10乃至Port17のうちの1つ又は複数を介して演算終了判定部72に供給する。また演算出力ポートPort10乃至Port17の出力データo0乃至o7はそれぞれ、レジスタユニット70−1乃至70−8に供給される。
複数の演算機能ユニット71−1乃至71−8の各々が実行する演算は、コンフィギュレーションデータ中の演算命令により指定される。また複数の演算機能ユニット71−1乃至71−8間の接続形態は、コンフィギュレーションデータ中の接続データにより指定される。これらのコンフィギュレーションデータはコンフィギュレーションメモリ21Aに格納されている。シーケンサ21Bは、コンフィギュレーションメモリ21Aに格納される複数のコンフィギュレーションデータの内で、データ選択部13及びデータ演算部64の現在の実行形態を指定するコンフィギュレーションデータを選択する。シーケンサ21Bにより指定されたコンフィギュレーションデータがデータ選択部13及びデータ演算部64に供給され、そのコンフィギュレーションデータに従った演算実行形態でデータ選択部13及びデータ演算部64が動作する。シーケンサ21Bは、順次新たなコンフィギュレーションデータを指定してデータ選択部13及びデータ演算部64に供給することで、データ選択部13及びデータ演算部64の演算実行形態(コンテキスト)を順次更新していくことができる。
演算機能ユニットは、図2で説明した動作を実行する。演算機能ユニットは、複数(図2の例では2つ)の入力演算データが全て同時に有効状態になると、複数の入力演算データに対して演算を実行する。演算機能ユニットは、複数の入力演算データが全て同時に有効状態である間、上記演算により得られた演算結果を示す有効状態のデータを出力し続ける。また、演算データの有効及び無効状態は、演算データに対として付随する有効及び無効を示すValid信号により示される。演算機能ユニットは、クロック信号Clockの立ち上がりエッジにおいてValid信号入力Valid0及びValid1が共にデータ有効を示す値“1”である場合、そのときの演算データ入力Data_in0及びData_in1に対する演算を実行する。演算機能ユニットは、出力信号を演算結果で更新することにより、演算データ出力Data_outを出力すると共に、Valid信号出力Valid_outを“1”に設定する。演算機能ユニットの演算データ出力Data_outは、次の演算データ出力で更新されるまで、現在の値を保持する。Valid信号出力Valid_outは、クロック信号Clockの立ち上がりエッジにおいてValid信号入力Valid0及びValid1のうち少なくとも一方が無効を示す値“0”であると、無効を示す値“0”になる。
演算のレイテンシは、演算種類(演算命令)に応じたクロックサイクルであってよく、1クロックサイクルに限られず、それ以上のクロックサイクル数であってよい。例えば、ある立ち上がりエッジに応答して演算機能ユニットが演算を行なうと、nサイクル後の立ち上がりエッジにおいて、演算データ出力Data_outが当該演算結果に更新され且つValid信号出力Valid_outが“1”となってよい。このとき、1サイクル後の立ち上がりエッジでValid信号入力Valid0及びValid1のうち少なくとも一方が無効値“0”であれば、Valid信号出力Valid_outは、n+1サイクル後の立ち上がりエッジで“1”から“0”に変化してよい。なおValid信号のレイテンシは、演算結果を出力するまでのレイテンシと同一である。そのようなValid信号のレイテンシは、演算に必要なレイテンシと同じ数の段数のシフトレジスタを用いることにより実現できる。
図7は、レジスタユニットの構成の一例を示す図である。図7には、レジスタユニット70−1の構成を一例として示し、各レジスタユニット70−1乃至70−8は同一の構成でよい。レジスタユニット70−1は、セレクタ81−1乃至81−3、データメモリ82、OR回路83、フリップフロップ84、及び立ち上がり検出回路85を含む。
図6に示す制御部60から、外部信号又は内部信号の何れかを選択するための選択制御信号が、セレクタ81−1乃至81−3に供給される。この選択制御信号が“0”のとき、セレクタ81−1乃至81−3は内部からの信号を選択する。また選択制御信号が“1”のとき、セレクタ81−1乃至81−3は外部からの信号を選択する。なおセレクタ81−3については、外部からの信号は“1”固定となっている。外部からの信号は、外部入力データ(書き込み対象のデータ)及び外部書き込みイネーブルを含む。なお外部アドレス(書き込み又は読み出しアドレス)は、データメモリ82に制御部60から直接に供給される。選択制御信号が外部信号選択“1”のとき、外部書き込みイネーブルをアサート状態にすることで、外部から供給される書き込みデータをデータメモリ82の指定した書き込みアドレスに書き込む。また選択制御信号が外部信号選択“1”のとき、外部書き込みイネーブルをネゲート状態にすることで、データメモリ82の指定した読み出しアドレスからデータを外部出力データとして読み出す。
内部からの信号は、データ選択部13の演算出力ポートPort10乃Port17から供給される信号o0乃至o7であり、信号o0乃至o7の各々は、データ信号及びデータValid信号を含む。データValidは、データの有効又は無効を示すValid信号である。選択制御信号が内部信号選択“0”のとき、一連の演算の実行結果として得られる演算結果データが、データメモリ82の指定した書き込みアドレスに書き込まれる。具体的には、演算結果データのValid信号が“1”に変化すると、立ち上がり検出回路85が1サイクルのHIGHパルスを生成する。このHIGHパルスがデータメモリ82に書き込みイネーブル信号WEとして供給され、演算結果データが書き込みデータWDとしてデータメモリ82に書き込まれる。また選択制御信号が内部信号選択“0”のとき、開始指示信号Start_triggerをアサートすることで、このアサートされた信号がデータメモリ82にイネーブル信号ENとして供給される。このとき、書き込みイネーブル信号WEはネゲートされており、データメモリ82の指定した読み出しアドレスからデータが読み出される。また開始指示信号Start_triggerに応じてフリップフロップ84が“1”にセットされ、出力データのデータValidが有効を示す値“1”になる。即ち開始指示信号Start_triggerのアサートに応答して、データ入出力部62は、データ演算部64への有効状態のデータ供給を開始する。なおこのフリップフロップ84は、後述するように、演算終了判定部72から供給される演算終了判定信号Predicateのアサートに応答して“0”にリセットされる。即ち、演算終了判定信号Predicateのアサートに応答して、データ入出力部62からデータ演算部64への有効状態のデータ供給を終了する。
レジスタユニット70−1のデータメモリ82は、読み出しデータをそのまま出力状態に保持するように動作する。即ち、指定アドレスからのデータ読み出し動作を実行すると、読み出しデータRDがデータメモリ82から出力され、そのまま出力されたままの状態に維持される。データ入出力部62は、一連の演算を実行するようにデータ選択部13により接続された一連の演算機能ユニットに入力されるデータを、入力データしてデータメモリ82に保持している。そして、この一連の演算を実行する間は、上記のようにデータメモリ82からのデータ出力状態を維持することにより、データ入出力部62からデータ演算部64に供給されている入力データを有効状態の同一データに固定しておく。即ち、図5に示す場合のように、データ入出力部62から各サイクル毎に異なるデータ値が供給されパイプライン動作をするのではなく、一連の演算を実行している複数のサイクルに渡りデータ入出力部62からは同一のデータ値が供給され続ける。
図8は、演算終了判定部72の構成の一例を示す図である。前述のように、データ入出力部62の演算出力ポートPort10乃至Port17が演算終了判定部72に接続されている。具体的には、これら演算出力ポートPort10乃至Port17の出力データo0乃至o7のそれぞれのValid信号であるo0.Valid乃至o7.Validが、演算終了判定部72に供給される。演算終了判定部72は、以下に説明するようにして、一連の演算により得られる1つ又は複数の演算結果が全て同時に有効になると演算終了判定信号Predicateをアサートする。
演算終了判定部72は、セレクタ91−1乃至91−8、AND回路82、及び立ち上がり検出回路93を含む。セレクタ91−1乃至91−8への選択制御信号は、制御部60から供給される。この選択制御信号により、Valid信号o0.Valid乃至o7.Validを、セレクタ91−1乃至91−8を介してAND回路82に供給するか否かを制御する。具体的には、選択制御信号“1”を供給されるセレクタは、Valid信号を選択してAND回路82に供給する。また選択制御信号“0”を供給されるセレクタは、固定値“1”を選択してAND回路82に供給する。AND回路82は、選択されたValid信号が全て“1”になる場合、その出力を“1”とする。AND回路82の出力が“0”から“1”に変化すると、その立ち上がりを立ち上がり検出回路93が検出することにより、1サイクルのHIGHパルスを生成する。この1サイクルのHIGHパルスが、演算終了判定信号Predicateのアサート状態に相当する。演算終了判定信号Predicateは、制御部60及びデータ入出力部62に供給される。このようにして演算終了判定部72では、セレクタを選択制御信号により制御することで、複数の出力ポートのうちで有効及び無効を示す信号が同時に有効になるか否かを判断する対象の出力ポートを設定することができる。
図9は、図6のリコンフィギュラブル回路の動作の一例を示すタイムチャートである。この動作例では、図6の演算入力ポートPort2及びPort3のデータを演算機能ユニット71−2により演算し、その演算結果と演算入力ポートPort1のデータとを演算機能ユニット71−5により演算する。そして、演算機能ユニット71−5の演算結果を演算出力ポートPort17から出力する。また更に、演算入力ポートPort1及びPort2のデータを演算機能ユニット71−1により演算し、その演算結果と上記の演算機能ユニット71−2の演算結果とを演算機能ユニット71−4により演算する。そして、演算機能ユニット71−4の演算結果を演算出力ポートPort14から出力する。これら各ポートと各演算機能ユニットとについて、データ信号及びValid信号が図9に示されている。
まず制御部60が、所望のコンフィギュレーションにデータ選択部13及びデータ演算部64を設定し、データ入出力部62に処理対象の入力データを書き込んでおく。その後、制御部60が、図7で説明したデータ入出力部62の選択制御信号を、内部信号選択を示す値に設定しておく。以上の設定が終了すると、図9(b)に示すように、制御部60の制御機能61が、開始指示信号Start_triggerをHIGHにアサートする。図7において説明したように、開始指示信号Start_triggerのアサートに応答して、データ入出力部62の指定アドレスから有効状態のデータが出力される。図9の動作例では、(c)に示す演算入力ポートPort2、(d)に示す演算入力ポートPort3、(f)に示す演算入力ポートPort1から、それぞれ1つのデータが複数のクロックサイクルに渡り固定した同一のデータ値として出力される。
(c)に示す演算入力ポートPort2のデータi21及び(d)に示す演算入力ポートPort3のデータi31が、演算機能ユニット71−2により演算される。その演算結果c21は、(e)に示されるように、入力データに対して、演算機能ユニット71−2のレイテンシである2サイクル分遅れて出力される。この(e)に示す演算結果c21のValid信号と(f)に示す演算入力ポートPort1のデータi11のValid信号とのAND論理値が、(g)に示される。この(g)に示すAND論理値が“1”になると、(e)に示す演算結果c21と(f)に示す入力データi11とが、演算機能ユニット71−5により演算される。その演算結果c51は、(h)に示されるように、演算機能ユニット71−5のレイテンシである1サイクル分更に遅れて出力される。この演算結果c51が、(i)に示されるように、演算出力ポートPort17から出力される。この演算出力ポートPort17からの出力値は、(j)に示されるように、レジスタユニット70−7に書き込まれる。
また更に、(f)に示す演算入力ポートPort1のデータi11及び(c)に示す演算入力ポートPort2のデータi21が、演算機能ユニット71−1により演算される。その演算結果c11は、(k)に示されるように、入力データに対して、演算機能ユニット71−1のレイテンシである1サイクル分遅れて出力される。この(k)に示す演算結果c11のValid信号と(e)に示す演算結果c21のValid信号とのAND論理値が、(l)に示される。この(g)に示すAND論理値が“1”になると、(e)に示す演算結果c21と(k)に示す演算結果c11とが、演算機能ユニット71−4により演算される。その演算結果c41は、(m)に示されるように、演算機能ユニット71−4のレイテンシである1サイクル分更に遅れて出力される。この演算結果c41が、(n)に示されるように、演算出力ポートPort14から出力される。この演算出力ポートPort14からの出力値は、(o)に示されるように、レジスタユニット70−4に書き込まれる。
(p)に示す演算終了判定信号Predicateは、前述のように、一連の演算により得られる1つ又は複数の演算結果(図9の例ではPort14の出力及びPort17の出力)が全て同時に有効になると、演算終了判定部72によりアサートされる。具体的には、(i)に示す演算出力ポートPort17のValid信号と(n)に示す演算出力ポートPort14のValid信号とのAND論理値について立ち上がりを検出し、立ち上がり検出タイミングにおいて1クロックサイクルのHIGHパルスを生成する。この1クロックサイクルのHIGHパルスが演算終了判定信号Predicateとなる。
演算終了判定信号Predicateのアサートに応答して、データ入出力部62は、データ演算部64への有効状態のデータ供給を終了する。即ち、図9の例において、(c)、(d)、及び(f)にそれぞれ示す演算入力ポートPort2、Port3、及びPort1において、演算終了判定信号Predicateのアサートに応答してValid信号が“1”から“0”に変化している。またこのValid信号の変化に応答して、(e)、(h)、(k)、及び(m)に示す演算結果においても、次のクロックサイクルでValid信号が“1”から“0”に変化している。
制御部60は、演算終了判定信号Predicateのアサートに応答して、次の一連の演算を開始するために、データ入出力部62に供給する読み出しアドレスを次のアドレスに更新する。そして制御部60は、(b)に示すように、開始指示信号Start_triggerをHIGHにアサートする。これにより、上述の一連の演算と同一の演算が次のデータに対して実行される。なおこの際、コンテキスト更新をすることで、前回とは異なる新たな一連の演算を実行してもよい。また制御部60は、(j)に示すレジスタユニット70−7からの読み出しデータc51及び(o)に示すレジスタユニット70−4からの読み出しデータc41を、一連の演算の演算結果として読み込む。
上述のように、図6に示すリコンフィギュラブル回路では、一連の演算が実行される間、データ入出力部12からのデータ供給を、当該データを示す信号が活性化されている状態(即ちデータ供給状態)に維持する。これにより、データ入出力部12からのデータ供給に基づいて演算を実行する各演算機能ユニットにおいて、有効状態の演算結果を出力したままの状態を維持することができる。従って、複数のデータを入力とする各演算機能ユニットでは、複数のデータの何れも消えてしまうことなく有効状態に維持されるので、全てのデータが同時に有効状態となるのを待ってから演算を開始すればよい。従って、図1のリコンフィギュラブル回路の場合と異なり、タイミングを合わせるためのディレイ回路が不要となる。また演算終了までのレイテンシの見積もり、当該レイテンシ値を保持するレジスタ、図4に示すカウンタ回路等が不要になる。その代りに、セレクタとAND回路等により構成される単純な構成の演算終了判定部72により、演算終了判定をすることができる。これにより、図6のリコンフィギュラブル回路は、図1のリコンフィギュラブル回路と比較して、回路規模を削減することができる。
なお、図6のリコンフィギュラブル回路の構成において、データ入出力部62からデータ演算部64に供給されるデータを、一連の演算を実行する間維持するのではなく、例えば有効状態を1サイクルだけ維持してその後無効状態とするよう構成してもよい。この場合、複数のデータを入力とする各演算機能ユニットでは、複数の入力データ間で有効状態にタイミングが一致しない場合が発生し、全てのデータが同時に有効状態となるのを待つことはできない。従って、演算機能ユニット71−1乃至71−8の機能を変更し、入力部分にラッチを設け、入力データのValid信号が有効状態を示す値に応答して当該入力データをラッチに格納する構成としてよい。
図10は、各演算機能ユニットに入力データ保持機能を持たせた場合のリコンフィギュラブル回路の動作の一例を示すタイムチャートである。この動作例は、図9と同様の演算内容を実行する例である。まず図10(b)に示すように、制御部60の制御機能61が、開始指示信号Start_triggerをHIGHにアサートする。開始指示信号Start_triggerのアサートに応答して、データ入出力部62の指定アドレスから有効状態のデータが出力される。図10の動作例では、(c)に示す演算入力ポートPort2、(d)に示す演算入力ポートPort3、及び(f)に示す演算入力ポートPort1から出力されるデータが、1クロックサイクルの間だけ有効状態に維持される。
(c)に示す演算入力ポートPort2のデータi21及び(d)に示す演算入力ポートPort3のデータi31が、演算機能ユニット71−2により演算される。その演算結果c21は、(e)に示されるように、入力データに対して、演算機能ユニット71−2のレイテンシである2サイクル分遅れて出力される。例えば(g)に示す演算機能ユニット71−5は、この(e)に示す演算結果c21と(f)に示す演算入力ポートPort1のデータi11とに対して演算を実行する。このとき(g)に示されるように、入力ラッチにおいて、演算結果c21とデータi11とをそれぞれラッチしてから演算することにより、演算結果c51を生成する。その演算結果c51は、(g)に示されるように、演算機能ユニット71−5のレイテンシである1サイクル分更に遅れて出力される。なお演算機能ユニット71−5において、演算結果c21のラッチ動作は演算結果c21のValid信号の“1”に応答して直ちに行なわれ、データi11のラッチ動作はデータi11のValid信号の“1”に応答して直ちに行なわれる。
上述の構成では、演算機能ユニットは、複数のデータをそれぞれ有効状態になったものから順次ラッチし、複数のデータが全てラッチされると複数のデータに対する演算を実行し、演算により得られた演算結果を示す有効状態のデータを出力する。また演算終了判定部においては、入力されるValid信号o0.Valid乃至o7.Validをラッチして保持する構成とし、一連の演算により得られる1つ又は複数の演算結果が全て有効になると演算終了判定信号をアサートしてよい。このような構成としても、図1のリコンフィギュラブル回路の場合と異なり、タイミングを合わせるためのディレイ回路が不要となる。しかしながら、各演算機能ユニット71−1乃至71−8の入力部にデータビット数分のラッチ回路を設けることになり、回路削減の効果は図6の構成ほど高くはない。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
なお本願発明は以下の内容を含むものである。
(付記1)
複数のデータが全て有効状態になると前記複数のデータに対して演算を実行し、前記複数のデータが全て有効状態である間、前記演算により得られた演算結果を示す有効状態のデータを出力し続ける演算器を、複数個含むデータ演算部と、
前記演算器間を再構成可能に接続するデータ選択部と、
一連の演算を実行するように前記データ選択部により接続された一連の演算器に入力されるデータを入力データして保持するデータ入力部と
を含み、前記データの有効及び無効状態は該データに対として付随する有効及び無効を示す信号により示され、前記一連の演算を実行する間は前記データ入力部から前記データ演算部に供給されている前記入力データを有効状態の同一データに固定しておくことを特徴とするリコンフィギュラブル回路。
(付記2)
前記一連の演算により得られる1つ又は複数の演算結果が全て同時に有効になると演算終了判定信号をアサートする演算終了判定回路を更に含むことを特徴とする付記1記載のリコンフィギュラブル回路。
(付記3)
前記演算終了判定信号のアサートに応答して、前記データ入力部から前記データ演算部への有効状態のデータ供給を終了することを特徴とする付記2記載のリコンフィギュラブル回路。
(付記4)
前記データ選択部は前記演算終了判定回路に接続される複数の出力ポートを含み、前記一連の演算により得られる前記1つ又は複数の演算結果の有効及び無効を示す信号を前記複数の出力ポートのうちの1つ又は複数を介して前記演算終了判定回路に供給し、前記演算終了判定回路は、前記複数の出力ポートのうちで前記有効及び無効を示す信号が同時に有効になるか否かを判断する対象の出力ポートを設定可能であることを特徴とする付記2又は3記載のリコンフィギュラブル回路。
(付記5)
前記一連の演算の開始を指示する開始指示信号を前記データ入力部に対してアサートする制御部を更に含み、前記データ入力部は、前記開始指示信号のアサートに応答して前記データ演算部への有効状態のデータ供給を開始することを特徴とする付記1乃至4何れか一項記載のリコンフィギュラブル回路。
(付記6)
複数のデータが全て有効状態になると前記複数のデータに対して演算を実行し、前記複数のデータが全て有効状態である間、前記演算により得られた演算結果を示す有効状態のデータを出力し続ける演算器を複数個含むデータ演算部と、前記演算器間を再構成可能に接続するデータ選択部と、一連の演算を実行するように前記データ選択部により接続された一連の演算器に入力されるデータを入力データして保持するデータ入力部とを含むリコンフィギュラブル回路において、
前記一連の演算を実行する間は前記データ入力部から前記データ演算部に供給されている前記入力データを有効状態の同一データに固定しておく段階を含むことを特徴とするリコンフィギュラブル回路の駆動方法。
(付記7)
前記一連の演算により得られる1つ又は複数の演算結果が全て同時に有効になると演算終了判定信号をアサートする段階を更に含むことを特徴とする付記6記載のリコンフィギュラブル回路の駆動方法。
(付記8)
前記演算終了判定信号のアサートに応答して、前記データ入力部から前記データ演算部への有効状態のデータ供給を終了する段階を更に含むことを特徴とする付記7記載のリコンフィギュラブル回路の駆動方法。
(付記9)
前記一連の演算により得られる前記1つ又は複数の演算結果の有効及び無効を示す信号を前記データ選択部の複数の出力ポートのうちの1つ又は複数を介して供給し、前記複数の出力ポートのうちで前記有効及び無効を示す信号が同時に有効になるか否かを判断する対象の出力ポートを設定する段階を更に含むことを特徴とする付記7又は8記載のリコンフィギュラブル回路の駆動方法。
(付記10)
前記一連の演算の開始を指示する開始指示信号のアサートに応答して、前記データ入力部に前記データ演算部への有効状態のデータ供給を開始させる段階を更に含むことを特徴とする付記6乃至10何れか一項記載のリコンフィギュラブル回路の駆動方法。
(付記11)
複数のデータをそれぞれ有効状態になったものから順次ラッチし、前記複数のデータが全てラッチされると前記複数のデータに対する演算を実行し、前記演算により得られた演算結果を示す有効状態のデータを出力する演算器を、複数個含むデータ演算部と、
前記演算器間を再構成可能に接続するデータ選択部と、
一連の演算を実行するように前記データ選択部により接続された一連の演算器に入力されるデータを入力データして保持するデータ入力部と
を含み、前記データの有効及び無効状態は該データに対として付随する有効及び無効を示す信号により示されることを特徴とするリコンフィギュラブル回路。
(付記12)
前記一連の演算により得られる1つ又は複数の演算結果が全て有効になると演算終了判定信号をアサートする演算終了判定回路を更に含むことを特徴とする付記11記載のリコンフィギュラブル回路。
13 データ選択部
20 外部インタフェース機能
21A コンフィギュレーションメモリ
21B シーケンサ
22 ネットワーク回路
60 制御部
61 制御機能
62 データ入出力部
64 データ演算部
70−1乃至70−8 レジスタユニット
71−1乃至71−8 演算機能ユニット
72 演算終了判定部
200 システムバス

Claims (10)

  1. 複数個の演算器を含むデータ演算部であって、前記複数個の演算器は、クロック信号の立ち上がりエッジにおいて、複数のデータが全て有効状態になると前記複数のデータに対して演算を実行し、前記複数個の演算器は、前記複数のデータが全て有効状態である間、前記演算により得られた演算結果を示す有効状態のデータを出力し続ける、データ演算部と、
    前記演算器間を再構成可能に接続するデータ選択部と、
    一連の演算を実行するように前記データ選択部により接続された一連の演算器に入力されるデータを入力データして保持するデータ入力部と
    を含み、前記データの有効及び無効状態は該データに対として付随する有効及び無効を示す信号により示され、前記一連の演算を実行する間は前記データ入力部から前記データ演算部に供給されている前記入力データを有効状態の同一データに固定しておくことを特徴とするリコンフィギュラブル回路。
  2. 前記一連の演算により得られる1つ又は複数の演算結果が全て同時に有効になると演算終了判定信号をアサートする演算終了判定回路を更に含むことを特徴とする請求項1記載のリコンフィギュラブル回路。
  3. 前記演算終了判定信号のアサートに応答して、前記データ入力部から前記データ演算部への有効状態のデータ供給を終了することを特徴とする請求項2記載のリコンフィギュラブル回路。
  4. 前記データ選択部は前記演算終了判定回路に接続される複数の出力ポートを含み、前記一連の演算により得られる前記1つ又は複数の演算結果の有効及び無効を示す信号を前記複数の出力ポートのうちの1つ又は複数を介して前記演算終了判定回路に供給し、前記演算終了判定回路は、前記複数の出力ポートのうちで前記有効及び無効を示す信号が同時に有効になるか否かを判断する対象の出力ポートを設定可能であることを特徴とする請求項2又は3記載のリコンフィギュラブル回路。
  5. 前記一連の演算の開始を指示する開始指示信号を前記データ入力部に対してアサートする制御部を更に含み、前記データ入力部は、前記開始指示信号のアサートに応答して前記データ演算部への有効状態のデータ供給を開始することを特徴とする請求項1乃至4何れか一項記載のリコンフィギュラブル回路。
  6. リコンフィギュラブル回路の駆動方法であって、前記リコンフィギュラブル回路は、
    複数個の演算器を含むデータ演算部であって、前記複数個の演算器は、クロック信号の立ち上がりエッジにおいて、複数のデータが全て有効状態になると前記複数のデータに対して演算を実行し、前記複数個の演算器は、前記複数のデータが全て有効状態である間、前記演算により得られた演算結果を示す有効状態のデータを出力し続ける、データ演算部と
    記演算器間を再構成可能に接続するデータ選択部と
    連の演算を実行するように前記データ選択部により接続された一連の演算器に入力されるデータを入力データして保持するデータ入力部とを含み、
    前記方法は、前記一連の演算を実行する間は前記データ入力部から前記データ演算部に供給されている前記入力データを有効状態の同一データに固定しておく段階を含む
    ことを特徴とするリコンフィギュラブル回路の駆動方法。
  7. 前記一連の演算により得られる1つ又は複数の演算結果が全て同時に有効になると演算終了判定信号をアサートする段階を更に含むことを特徴とする請求項6記載のリコンフィギュラブル回路の駆動方法。
  8. 前記演算終了判定信号のアサートに応答して、前記データ入力部から前記データ演算部への有効状態のデータ供給を終了する段階を更に含むことを特徴とする請求項7記載のリコンフィギュラブル回路の駆動方法。
  9. 前記一連の演算により得られる前記1つ又は複数の演算結果の有効及び無効を示す信号を前記データ選択部の複数の出力ポートのうちの1つ又は複数を介して供給し、前記複数の出力ポートのうちで前記有効及び無効を示す信号が同時に有効になるか否かを判断する対象の出力ポートを設定する段階を更に含むことを特徴とする請求項7又は8記載のリコンフィギュラブル回路の駆動方法。
  10. 前記一連の演算の開始を指示する開始指示信号のアサートに応答して、前記データ入力部に前記データ演算部への有効状態のデータ供給を開始させる段階を更に含むことを特徴とする請求項6乃至10何れか一項記載のリコンフィギュラブル回路の駆動方法。
JP2010085470A 2010-04-01 2010-04-01 リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法 Active JP5501074B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010085470A JP5501074B2 (ja) 2010-04-01 2010-04-01 リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法
US13/073,691 US20110246747A1 (en) 2010-04-01 2011-03-28 Reconfigurable circuit using valid signals and method of operating reconfigurable circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010085470A JP5501074B2 (ja) 2010-04-01 2010-04-01 リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法

Publications (2)

Publication Number Publication Date
JP2011217279A JP2011217279A (ja) 2011-10-27
JP5501074B2 true JP5501074B2 (ja) 2014-05-21

Family

ID=44710992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010085470A Active JP5501074B2 (ja) 2010-04-01 2010-04-01 リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法

Country Status (2)

Country Link
US (1) US20110246747A1 (ja)
JP (1) JP5501074B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734126B1 (en) * 2016-10-10 2017-08-15 International Business Machines Corporation Post-silicon configurable instruction behavior based on input operands

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4866194B2 (ja) * 2006-09-29 2012-02-01 富士通セミコンダクター株式会社 集積回路及びリコンフィギュラブル回路の入力データ制御方法
JP5251171B2 (ja) * 2008-03-06 2013-07-31 富士通セミコンダクター株式会社 論理回路装置
US7937563B2 (en) * 2008-05-27 2011-05-03 Advanced Micro Devices, Inc. Voltage droop mitigation through instruction issue throttling

Also Published As

Publication number Publication date
US20110246747A1 (en) 2011-10-06
JP2011217279A (ja) 2011-10-27

Similar Documents

Publication Publication Date Title
JP5431003B2 (ja) リコンフィギュラブル回路及びリコンフィギュラブル回路システム
CN107886166B (zh) 一种执行人工神经网络运算的装置和方法
CN112099762B (zh) 快速实现sm2密码算法的协处理系统及方法
JP2007257549A (ja) 半導体装置
JP2000330785A (ja) 実時間プロセッサおよび命令実行方法
JP2005018626A (ja) 並列処理システムの生成方法
US9552328B2 (en) Reconfigurable integrated circuit device
US20060277425A1 (en) System and method for power saving in pipelined microprocessors
JP2024512541A (ja) シングルポートからの共有マルチポートメモリ
JP5501074B2 (ja) リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法
CN112486907A (zh) 可重构处理器上多层循环任务的硬件实现方法
JP5163306B2 (ja) 動的再構成回路およびデータ送信制御方法
US11379242B2 (en) Methods and apparatus for using load and store addresses to resolve memory dependencies
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
JPH09212360A (ja) データ処理装置
US8074053B2 (en) Dynamic instruction and data updating architecture
JP7384374B2 (ja) 中央演算処理装置
US20240053970A1 (en) Processor and compiler
JP2001014161A (ja) プログラマブルコントローラ
JP2006215611A (ja) 演算装置
JP5701930B2 (ja) 半導体装置
JP2747353B2 (ja) アドレス発生装置
US9904647B2 (en) Data flow circuits for intervention in data communication
JP3446603B2 (ja) 情報処理装置及びパイプライン処理方法
JP2002268876A (ja) パイプライン処理方法、及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121228

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140311

R150 Certificate of patent or registration of utility model

Ref document number: 5501074

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250