JP4702159B2 - 集積回路装置 - Google Patents

集積回路装置 Download PDF

Info

Publication number
JP4702159B2
JP4702159B2 JP2006119997A JP2006119997A JP4702159B2 JP 4702159 B2 JP4702159 B2 JP 4702159B2 JP 2006119997 A JP2006119997 A JP 2006119997A JP 2006119997 A JP2006119997 A JP 2006119997A JP 4702159 B2 JP4702159 B2 JP 4702159B2
Authority
JP
Japan
Prior art keywords
delay
data
circuit
output
data set
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
JP2006119997A
Other languages
English (en)
Other versions
JP2007293556A (ja
Inventor
広樹 本田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2006119997A priority Critical patent/JP4702159B2/ja
Publication of JP2007293556A publication Critical patent/JP2007293556A/ja
Application granted granted Critical
Publication of JP4702159B2 publication Critical patent/JP4702159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Description

本発明は、複数の演算エレメントを用いてパイプライン方式により演算を行なう回路を構成可能な集積回路装置に関するものである。
特許文献1には、プログラマブルな複数の演算エレメントと、これら複数の演算エレメントの接続を変更可能なプログラマブルな配線とを有する半導体集積装置が開示されている。複数の演算エレメントは、クロックに同期してデータがセットされる入力側のレジスタと出力側のレジスタとを備えており、演算エレメントにデータが入力されてから出力されるまでのレイテンシが規定される。このため、複数の演算エレメントを配線により接続することによりパイプライン化された回路を簡単に構成することができ、スループットの大きな回路および装置を提供できる。
国際公開02/095946号
図1に、ASICなどに実装するための通常に設計された回路図と、特許文献1に記載されているようなプログラマブル演算器アレイに構成するために設計された回路図とを示している。特許文献1に記載されているような、演算エレメント単位で演算に要するレイテンシが規定されているようなパイプライン処理に適した構成を固定周波数型プログラマブル演算器アレイと呼ぶことにする。
図1(a)および(b)に示した回路は、「Y=A+B+C+D」という演算を実現するものであり、図1(a)は通常の回路設計で、加算器91を組み合わせて所望の演算を実現する。図1(b)は、固定周波数プログラマブル演算器アレイ上の設計で、加算器11を内蔵するプロセッシングエレメント(PE)10を組み合わせて所望の演算を実現する。PE10の中には加算器11だけでなく、入力側のレジスタ(フリップフロップ)12および出力側のレジスタ13も内蔵されている。このため、図1(a)と図1(b)は動作タイミングが異なる。図1(a)の回路では、入力信号が変化したクロックサイクル内で所定の遅延時間後に出力信号Yを得るが、図1(b)の回路では、入力信号が変化してから4クロックサイクル後に出力信号Yを得る。
固定周波数プログラマブル演算器アレイ(固定周波数PEアレイ)には、PE10のように、クロック信号(サイクル信号)によりデータをセットあるいはラッチするためのレジスタ(フリップフロップ)があらかじめ埋めこまれているため、何か演算を行うたびに何クロックサイクルかの演算遅延(レイテンシ)が生じる。その一方で、パイプライン動作速度(演算スループット)は保証される。固定周波数PEアレイは、ASICやFPGAなど従来の手法と比べてアプリケーション設計の早い段階でスループットを確定させることができるため、レイテンシよりスループットを重視するような用途に向いている。
さらに、PEアレイの内部でデータが伝播する範囲がサイクル単位で決められるので、データの有効・無効により各演算エレメント10における処理を制御することができる。例えば、図2に示すように、32ビットの演算用のデータに加えて、1ビットまたは2ビット程度のデータの有効性を示す指示データ(トークン)をセットにして伝播することにより、データ駆動型の回路を構成することができる。図2に示した例では、データセット1は、32ビットの演算用のデータ2と、2ビットの指示データ3とを含んでおり、指示データ3の最初のビットはエンドトークン4であり、データ列の最終を示す。指示データ3の次のビットはバリッド・インバリッドトークン(以降ではバリッドトークンあるいはトークン)5であり、演算用データ2の有効無効を示す。
連続的に供給される複数のデータからなるデータストリームをパイプライン方式で処理しようとする場合、そのデータストリームに無効なデータが含まれていても有効な処理結果が得えられることが望ましい。特に、フーリエ変換あるいはラプラス変換などの演算において重ね合わせ演算あるいは畳み込み演算を行なうためのZ変換が含まれている演算において、一部に無効なデータが含まれていても、有効な演算がなされることが望ましい。
本発明の一態様は、演算用のデータと、その演算用のデータの有効無効を示す指示データとを含むデータセットを、複数の演算エレメントにより演算するための回路を構成可能な集積回路装置である。さらに、この集積回路装置は、複数の遅延エレメントを有し、それぞれの遅延エレメントは、データセットを順番に、クロックに同期して遅延させた後に出力するための遅延回路と、遅延回路から出力されるデータセットをクロックに同期してセットするための遅延出力レジスタと、遅延出力レジスタの内容を制御する遅延制御回路とを備え、遅延出力レジスタは、指示データを出力する第1の遅延出力レジスタ部と、演算用のデータを出力する第2の遅延出力レジスタ部とを含み、遅延制御回路は、遅延回路に入力される第1のデータセットの指示データおよび遅延回路を経由して出力される第2のデータセットの指示データが共に有効であれば第1の遅延出力レジスタ部の指示データを有効として更新し、第1のデータセットの指示データおよび第2のデータセットの指示データの一方のみが有効であれば第1の遅延出力レジスタ部の指示データを無効として更新するように制御し、第1の遅延出力レジスタ部にセットされる指示データが有効であるときに限り第2の遅延出力レジスタ部を第2のデータセットの演算用のデータをセットすることにより更新し、第1の遅延出力レジスタ部にセットされる指示データが無効であれば第2の出力遅延レジスタ部を更新せずに直前のデータを保持するように制御する
この遅延エレメントを含む集積回路装置は、遅延制御回路により、遅延エレメントに入力されるデータセットが無効である場合は、次のクロックで遅延回路のデータセットの遅延は進まず、遅延出力レジスタの指示データが無効にセットされる。その後、遅延エレメントに入力されるデータセットが有効になれば、次のクロックで遅延出力レジスタに、予定のクロックだけ遅延された演算用のデータがセットされ、その演算用のデータが有効であることを示す指示データがセットされる。したがって、遅延回路に無効な演算用のデータを格納することなく、有効な演算用のデータのみを予定のクロック(サイクル)だけ遅延し、出力できる。また、演算用のデータの有効無効を示す指示データは、遅延させることなく遅延出力レジスタにセットすることにより、遅延出力レジスタの内容が無効であることを示す。したがって、この遅延エレメントは、入力されるデータセットを遅延させてデータセットがパイプラインを伝播するタイミングを調整するのではなく、入力されるデータセットに対応したデータセットを生成(出力)する機能を果たす。このため、無効なデータが入ったデータストリームに対して、有効なデータに対して、予定の時間だけ遅延したデータを生成することが可能となり、データ処理の信頼性を向上でき、Z変換を含むデータ処理の信頼性を向上できる。
したがって、指示データが無効な場合の演算用のデータの内容を、指示データが無効な場合は演算用のデータは変更されないという、パイプライン用のレジスタの処理に合わせることができる。
原則として、遅延回路には無効な演算用のデータはセットされないが、全てのタイミングにおいてそれが保証されるものではなく、有効な演算用のデータを確実に遅延出力レジスタにセットするためには有効である。特に、データ生成用の遅延回路を、パイプライン処理を実現するためのタイミングを調整するための遅延エレメントとして兼用する場合は、有効である。
このため、遅延制御回路は、遅延出力レジスタにセットされる指示データが無効なときは当該遅延出力レジスタの演算用のデータを変更しない回路を含む。入力されるデータセットの指示データが無効であっても、遅延回路の遅延は停止せず、指示データは、演算用のデータと共に遅延回路により遅延して伝播し、遅延出力レジスタにセットされる。そして、指示データが無効なときは、それ以前の演算用のデータの内容が保持され、この遅延エレメントは、パイプライン用の遅延レジスタとしてとして機能する。
これらの演算エレメントおよび遅延エレメントにより固定的な回路を構成してデータ処理することが可能である。さらに、複数の演算エレメントと、複数の遅延エレメントとを含む、回路をプログラムにより再構成可能な領域を有する集積回路装置を提供できる。この集積回路装置においては、遅延回路は、遅延する時間をプログラムにより変更可能であることが望ましい。
パイプライン処理を行うためにレイテンシを調整することを目的とした遅延エレメントであっても1クロックの遅延であれば、指示データが無効なデータセットが入力されたときに遅延した後に出力される演算用のデータは変化しない。したがって、1クロックだけ遅れてデータセットが出力される遅延エレメントと演算エレメントとを組み合わせ、演算エレメントの出力レジスタに、遅延エレメントへ入力されるデータセットの指示データをセットするための回路を構成することにより、上記と同様にZ変換用の遅延を実現する回路を構成できる。
図面を参照して詳細に説明する。図3に、データ処理装置の一例を示してある。このデータ処理装置21は、回路を再構成可能な領域22を備えたプロセッシングユニット(PU)であり、チップに回路が集積化された集積回路装置である。データ処理装置21は、再構成可能な領域22と、この再構成可能な領域22を再構成する機能を備えたRISCなどの汎用プロセッサ(以降ではプロセッサ)23と、プロセッサ23のプログラム24および再構成用のハードウェア情報25を格納したメモリ26を備えている。この集積回路装置21の再構成可能な回路領域22は、複数のエレメントがアレイまたはマトリクス状に2次元に配置されており、マトリクスと称される構成である。このマトリクス22は、縦横に2次元に配置された複数のプロセッシングエレメント(PE)10と、それらの間に格子状に配置された配線19と、配線19の接続ポイントで縦横の配線19の接続を自由に切り替えることができるスイッチングユニット18とを備えている。
再構成可能な回路領域(マトリクス)22を構成するためのPE10の一例は、ルックアップテーブルなどにより自在に機能を設定可能なものである。この集積回路装置21のマトリクス22には、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、特定の機能あるいは処理に適した内部構成のエレメントが配置されている。ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少し、AC特性および処理速度が向上できる。
マトリクス22は、368個のPE10を備えており、プロセッサ23をプログラム制御することにより、プロセッサ23から、またはメモリ26から、制御バス28を介して、各PE10に対してコンフィグレーションデータが供給される。このコンフィグレーションデータにより、各々のPE10の機能と、配線群19の接続とを制御され、マトリクス22の内部に、種々のデータフロー(データパス)を自由に構成できる。したがって、マトリクス22は、PE10を含む回路構成をプログラム24により変更できる。
集積回路装置21は、マトリクス22と、外部メモリ6などの外界とを接続し、処理対象のデータを入出力するために、入力バッファ8と、出力バッファ9と、アクセス調停ユニットとして機能するバススイッチングユニット(バスインターフェイス、BSU)7とを備えている。バッファ8および9は4つのバッファエレメントをそれぞれ備え、マトリクス22に構成された回路に対して入出力されるデータにトークンを付してデータを管理する機能を備えている。マトリクス22に構成された回路に供給されるデータセット1の例は、図2に示したものであり、32ビットの演算用のデータ2と、2ビットの指示データ3とを含んでいる。指示データ3は、データセット列の終わりを示すエンドトークン4と、データセットの演算用のデータの有効無効を示すバリッド・インバリッドトークン(以降ではバリッドトークンあるいはトークン)5とを含んでいる。
図4は、PE10の一例である。このPEは、算術演算および論理演算に適した構成の演算用のPE(以降ではPEe)30である。PEe30は、機能を変更可能な内部データパス領域31と、その内部データパス領域31の機能を設定する制御ユニット50とを備えている。内部データパス部31は、配線19から所望の入力データを抽出するためのシフト回路SHIFTおよびマスク回路MASKと、入力データdixおよびdiyをクロック信号によりラッチするための入力レジスタ(FF)32と、論理演算ユニットALU33およびLU34と、配線19に出力する出力データdoをクロック信号によりラッチするための出力レジスタ(FF)35とを備えている。LU34は、2つのPEe30を一体の演算ユニットとして利用するための演算ユニットである。
各PEの制御ユニット50は、プロセッサ23から制御バス28を介してコンフィグレーションデータを受信し、内部データパス部31の構成を制御する。したがって、PEe30においては、制御ユニット50により、シフト回路SHIFT、マスク回路MASK、論理演算ユニットALUの状態が設定され、各種の算術演算および論理演算を行うことができる。
また、各々のPEe30は、データをクロック信号でラッチ(セット)するためのレジスタ32および35を備えている。各々のPEe30が、入力、出力あるいは演算中のデータをクロック信号でラッチ(セット)するためのレジスタを少なくとも1つ含むことにより、固定周波数PEアレイを提供できる。そして、PEe30における処理の内容が確定すると、入力されたデータが演算されて出力されるまでのレイテンシおよび/またはPEe30のレジスタ間のレイテンシが確定する。したがって、複数のPEe30を配線19により接続することによりパイプライン化された回路を簡単に構成することができ、スループットの大きな装置1を提供できる。本例のPEe30は、入力データをクロック信号でラッチ(セット)するための入力レジスタ32と、出力データをクロック信号でラッチ(セット)するための出力レジスタ35とを備えているが、いずれか一方のレジスタを含むPEおよびそれらにより構成されるマトリクスに対して、本発明を適用できる。
このように、集積回路装置21は、固定周波数PEアレイを備えた装置の一例であり、パイプライン方式で処理を行う回路を簡単に構成でき、スループットを重視した用途に適したものである。一方、固定周波数PEにより回路設計するためには、PEの演算レイテンシを把握して、パイプライン処理を的確に行うためにタイミング調整用のエレメントを挿入する必要がある。
図5に、本例の集積回路装置21のマトリクス22に配置されたプロセッシングエレメントPE10の異なる例を示している。このPEは遅延されたデータセットを生成する機能と、データセットが出力されるタイミングを調整する機能とを備えている遅延エレメント(以降ではPEd)60である。このPEd60も、遅延用の内部データパス部61と、そのデータパス部61の構成を制御するための制御ユニット50を備えている。内部データパス部61は、データセット1を順番に、クロックに同期して遅延させた後に出力するための遅延回路62と、この遅延回路62を制御する遅延制御回路70と、遅延回路62から出力されるデータセットをラッチ(セット)するための遅延出力レジスタ63とを備えている。この遅延回路62は、1個、2個および4個にグループ化され、シリーズに接続された合計7つの遅延用の34ビットレジスタ63と、それぞれのグループをバイパスさせることができるセレクタ64とを備えている。制御ユニット50に供給されるコンフィグレーションデータにより、セレクタ64を切り換えることにより、遅延回路62は、データセット1を0クロックから7クロックの範囲で遅延して出力できる。したがって、PEd60は、全体としては1クロックから8クロックの範囲で、入力されるデータセット1を遅延して出力することができるプログラマブルな遅延エレメントである。
図6(a)は、以下の式(1)により示す演算を通常回路として設計したものである。また、図6(b)は、同じ演算をマトリクス22に実装するための回路構成である。
Y=A+B+C ・・・(1)
図6(b)では、入力信号AおよびBをPEe30aに入力して足し算し、さらに、その結果と入力信号Cを別のPEe30bに入力して足し算する。PEe30は、演算のための2クロック(サイクル)が費やされる。したがって、それぞれのPEe30aおよび30bの足し算のレイテンシが2クロックであり、PEe30bに入力される入力信号Cは、同期してマトリクスに入力される他の入力信号AおよびBに対してタイミングを調整する必要がある。このために、入力信号CをPEd60により2クロックだけ遅延させ、PEe30bに入力する。図6(b)に示した回路全体のレイテンシは4クロックになり、出力を得るために4クロックを必要とする。しかしながら、1クロック単位でデータがレジスタ(FF)にラッチされ、それらがパイプラインレジスタとなるので、1クロック単位でデータを供給して処理できる。このため、スループットの高い回路構成である。
図7(a)は、以下の式(2)で示される3タップ平均フィルタの演算を通常回路として設計したものである。ただし、足し算した値を三分の一にはしていない。
Y[i]=A[i−1]+A[i]+A[i+1]・・(2)
信号線99aにA[0]、A[1]、A[2]…という具合に次々とデータを投入していくと、データが更新される都度、1つのデータをラッチするレジスタ92aにより接続された信号線99bには、信号線99aより1つ前のデータが現れる。さらに、同様のレジスタ92bにより接続された信号線99cには、信号線99bよりさらに1つ前のデータが現れる。したがって、信号線99aにA[i+1]が投入されているサイクルにおいては、信号線99bはA[i]、信号線99cはA[i−1]となり、これら3つの信号線の値を加算器91により足してやれば所望のY[i]を得られる。データをクロックサイクル単位で入力する回路であれば、レジスタ92aおよび92bは1クロックサイクルの遅延を提供するレジスタ(フリップフロップ)で代用できる。
図7(b)は、式(2)の演算をマトリクス22に実装するための回路の一例である。1クロックずつ遅延したデータを生成するためのレジスタを、PEd60aおよび60bに置き換えている。さらに、レイテンシが2クロックの演算を行うPEe30aの出力とのタイミングを調整するために、データを2クロック遅らせるためのPEd60cを、PEe30aと並列に挿入している。したがって、固定周波数PEアレイであるマトリクス22への変換に際して加算器部分に4段のレジスタが追加されてしまうので、4クロックサイクル分の遅延が追加される。すなわち、入力信号にA[i+1]を投入しているサイクルの出力信号は、Y[i]でなくY[i−4](=A[i−5]+A[i−4]+A[i−3])となる。出力信号のタイミングが変わること自体は、図6に示した回路例と同じである。
図7(c)は、式(2)の演算をマトリクス22に実装するための回路の他の例である。この回路例では、PEd60bとPEd60cとを合体させて、1つのPEdにより3クロックサイクル分の遅延を供給している。
図8は、クロック単位でデータ列DS(A[0]、A[1]、A[2]…)が入力されたときのタイミングチャートであり、図7(b)に示す回路の幾つかの信号線F1〜F6における値の変化を示している。たとえば、信号線F1に値「3」を投入するサイクルにおいて、信号線F2とF3はそれぞれ値「2」と値「1」になっている。したがって、演算式(2)の出力は「6」であり、その計算の様子を長円と矢印で示してある。信号線F1およびF2の値の和である値「5」が2クロックサイクル遅れて信号線F4に現れ、そのとき信号線F5に値「1」が伝播してきているので両者を足した所望の答え「6」がさらに2クロックサイクル後に信号線F6に現れる。この計算過程は、出力のタイミングが異なることを除けば、図7(a)に示す回路例においても同様である。
図9に、無効なデータを含むデータ列DSが入力されたときのタイミングチャートを示している。このデータ列DSでは、値「4」を投入してから値「5」を投入するまでの間に2サイクルの途切れが生じている。例えば、集積回路装置21に対する入力信号が一時的に途切れたり、再開したりするケースにおいて発生する。データ列DSの途切れている間は、でたらめな値(無効な値)が投入されていると想定すると、その間は計算結果も無効である。
無効なデータを含むデータ列DSに対して、無効な値を含む計算結果が出力されることは図7(a)に示した回路においても同様であり、図7(a)に示した回路では、無効な値が含まれていること、あるいは、無効な値がどれであるかを知ることはできない。これに対し、集積回路装置21のマトリクス22に配置されたPE10は、データの有効無効を示すトークン5を含むデータセット1を伝播することにより演算する。例えば、2入力のPEe30においては、演算対象となる双方のデータセットのトークン5が有効であるときに、演算用のデータ2が有効であることを示すトークン5が付いたデータセット1を出力する。また、PEd60は、タイミング調整のためにデータセット1を遅延するときはトークン5も含まれている。
たとえば、図7(b)に示した回路において、信号線F1およびF2の値「4」と「3」を足した結果として信号線F4に2クロックサイクル遅れで値「7」が出力される。その次に、信号線F4に有効な値が出力されるのは、3サイクル後の値「11」である。同様に、信号線F6には、値「9」(7+2)が出力された後、有効な値が出力されるのは、4サイクル途切れた後の値「18」(13+5)である。このように、無効なデータを含むデータ列DSが入力されても、集積回路装置21のマトリクス22に構成された回路は、計算結果の有効無効を区別できる。
しかしながら、図8および図9を比較すると分かるように、信号線F1には値「5」および値「6」が有効なデータとして供給されているにも関わらず、信号線F6には、値「9」と値「18」の間で、値「12」および値「15」が有効な計算結果として得られていない。値「12」および値「15」が有効な計算結果として得られるようになれば、有効な入力信号に対して、得られるべき計算結果を抜かさずに出力することが可能となる。したがって、無効なデータを含むデータ列DSに対して、有効なデータのみを含むデータ列が入力されたのと同様の計算結果を出力できる回路を提供できる。
図10に、1つの対策を施した回路におけるタイミングチャートを示している。この例では、マトリクス22を構成する各PE10において、データセット1をラッチするレジスタは、ラッチするデータセット1のトークン5が無効であるならば、レジスタの演算用のデータ2を更新せずに保持する機能を備えている。また、2入力のPEe30においては一方のデータセット1のトークン5が有効であれば、出力されるデータセット1に、有効なトークン5を付すようにしている。このような対策により、図10に示すように、入力データセット1は2サイクル分だけが無効であるにも関わらず、出力データセット1は4サイクル分が無効になる事態を防止できる。さらに、信号線F6には、値「9」と値「18」の間に、値「13」および値「15」が有効な計算結果として得られる。しかしながら、値「13」は、演算式(2)によれば値「12」のはずであり、有効な値として間違った演算結果が伝播することになる。
図11(a)〜(d)に、演算式(1)を集積回路装置21のマトリクス22に実装するための異なる回路例を示している。これらの回路例は、P遅延モードのPEd60と、Z遅延モードのPEd60とを含んでいる。P遅延モードのPEd60の動作は図10において説明した通りである。Z遅延モードのPEd60は、「Z」の表示と共に、Z遅延させるクロックサイクルをZの右肩に記載している。Z遅延モードのPEd60では、入力されるデータセット1のトークン5が無効であると、その遅延回路62のサイクルを停止し、遅延出力レジスタ65に入力されるデータセット1のトークン5をセットする。したがって、トークン5は、1クロックの遅延で出力される。また、トークン5が有効なデータセット1の入力に対して、そのデータセットから所望の時間だけ遅れた演算用のデータ2を含むデータセット1が1クロックの遅れで出力される。
PEd60では、このようなZ遅延の処理を行うために遅延出力レジスタ65にトークン5および演算用のデータ2を含むデータセット1をラッチする。したがって、Z遅延モードにおいても、1クロックのP遅延が発生し、1クロックのZ遅延モードを実現するために、1クロックのP遅延が付加される。このため、図11に示した各回路においては、回路全体のレイテンシが6クロックまたは5クロックと大きくなるが、1クロック単位でパイプライン処理する回路であることには変わりはない。したがって、これらの回路のスループットに変わりはない。
図11(a)の回路は、入力されるデータ列DSから演算対象のデータを選択するために、Z遅延が1クロックのZ遅延モードのPEd60xおよびPEd60yをシリーズで接続し、エレメント間のタイミングの調整のためにP遅延モードのPEd60a〜dを、タイミング調整の対象のエレメントと並列になるように接続している。図11(b)の回路は、P遅延モードの遅延エレメントを最適化した例であり、回路全体のレイテンシを1クロック改善している。
図11(c)の回路は、入力されるデータ列DSから演算対象のデータを選択するために、Z遅延が1クロックのZ遅延モードのPEd60xと、Z遅延が2クロックのZ遅延モードのPEd60zとを並列に接続し、タイミング調整のためにP遅延モードの2つのPEd60aおよび60bを挿入している。図11(d)の回路は、さらに最適化した例であり、P遅延モードのPEdを1つに集約している。
図12に、クロック単位でデータ列DSが入力されたときのタイミングチャートを示している。このタイミングチャートは、図11(b)に示す回路の幾つかの信号線F1〜F6における値の変化を示している。また、図11(a)から(d)に示す回路においては、2入力のPEe30aおよび30bは、両方のデータセットが有効なときに有効な値を出力する。たとえば、信号線F1に値「4」が投入されると、最初の足し算を行なうPEe30aの入力側には、1クロック遅れて信号線F1´に値「4」、信号線F2に値「3」が現れる。また、次の足し算を行なうPEe30bの入力側には、値「7」が供給されるタイミングで、信号線F5に値「3」の前の値「2」が表れ、PEe30bからはそれらを演算した後に信号線F6に所定の値「9」が出力される。
値「4」に続くデータセット1が無効であると、次のクロックで、P遅延モードのPEd60aの出力である信号線F1´と、Z遅延モードのPEd60xの出力である信号線F2に、無効であることを示すトークン5を含むデータセット1が現れる。PEd60xがP遅延モードであれば、このクロックで、信号線F2には、有効な値「4」が出力される。これに対し、Z遅延モードに設定されていることにより、PEd60xでは、遅延回路62が停止し、トークン5がバイパスして出力されるので、信号線F2には、値「3」の無効なデータセットが出力される。同様に、次のZ遅延モードのPEd60bからは、信号線F2から1クロック遅れたタイミングで値「2」の無効なデータセット1が出力される。
無効なデータセットに続いて値「5」の有効なデータセット1が入力されると、次のクロックで、P遅延モードのPEd60aの出力である信号線F1´に有効な値「5」が表れ、Z遅延モードのPEd60xの出力である信号線F2に有効な値「4」が現れる。Z遅延モードのPEd60xにおいては、トークン5がバイパスして遅延出力レジスタ65にセットされ、遅延回路62が1クロック分動作するので、値「3」の次の値「4」が遅延出力レジスタ65にセットされるからである。したがって、これらの入力に対してPEe30aの出力である信号線F4には有効な値「9」が現れる。
信号線F2の有効な値「4」に対して、Z遅延モードのPEd60yの出力である信号線F3には、次のタイミングで有効な値「3」が現れる。Z遅延モードのPEd60yにおいては、トークン5がバイパスして遅延出力レジスタ65にセットされ、遅延回路62が1クロック分動作するので、値「2」の次の値「3」が遅延出力レジスタ65にセットされるからである。この有効な値「3」はP遅延モードのPEd60bにより1クロック遅れて伝播され、2番目のPEe30bの一方の入力の信号線F5には、他方の入力の信号線F4の有効な値「9」と同期して有効な値「3」が現れる。その結果、PEe30bからはそれらを演算した後に信号線F6に所定の値「12」が出力される。したがって、無効なデータを含むデータ列が入力される状態であっても、演算式(2)にしたがった計算結果を、途中の値が抜けることなく出力できる。
図13に、PEのレイテンシに伴うタイミングのずれを調整するためにデータセットを遅延して出力するモード(P遅延モード)と、データを生成するために遅延して出力するモード(Z遅延モード)における入力データと出力データのタイミングチャートを示している。図13(a)は、2クロックのP遅延モードの入出力であり、データセット1はトークン5も含めて2クロックだけ遅延して出力される。図13(b)は、理想的な2クロックのZ遅延の入出力であり、演算用のデータは2クロックだけ遅延して出力され、トークン5は遅延なしで出力される。図13(c)は、図5に示したPEd60におけるZ遅延モードの入出力であり、遅延出力レジスタ65を介して出力されるので1クロックのP遅延が必ず入る。このため、2クロックのZ遅延を備えたデータを出力しようとすると、演算用のデータは3クロック遅れて出力され、トークン5は1クロック遅れて出力される。
Z遅延モードのPEd60は、A[i]に関する演算を行なうために、A[i]に関連してA[i−1]やA[i−2]などのデータを生成するレジスタとして機能する。したがって、Z遅延モードのPEd60の主な目的は、データストリームのフェーズをずらすことである。したがって、Validトークン5は遅延させず、演算用のデータ2だけを遅延させるのが理想である。そうすれば、たとえば図13(b)のIN信号とOUT信号を別の加算器PEに接続して単純に足すだけで、A[i]+A[i−2]の演算を安全に行うことができる。図13(b)のタイプの遅延は、主としてデジタル信号処理分野におけるいわゆる「z変換」を行うためのものなので、本明細書においてはZディレイ(z変換ディレイ)と呼んでいる。
一方、P遅延モードのPEd60は、入出力の間に一定のレイテンシを備えたPEe30を用いた回路を構成するために追加されるレジスタとして機能する。すなわち、P遅延モードのPEd60は、演算用のPEeに内蔵されていて選択の余地なく追加されてしまうレジスタによって生じてしまう演算タイミングのずれを解消するために追加する、タイミング調整用のレジスタとして機能し、その主な目的はフェーズをずらさないことである。したがって、図13(a)に示すように、演算用のデータ2もValidトークン5もひとまとめにして遅延させればよい。図13(a)のタイプの遅延を、本明細書においては、Pディレイ(パイプラインディレイ)と呼んでいる。
図5に戻って、遅延エレメントPEd60の構成についてさらに詳細に説明する。上述したように、このPEd60は入力されたデータセット1を順番に所望のクロックサイクルだけ遅延して出力可能な遅延回路62と、この遅延回路62から出力されるデータセット1をラッチするための遅延出力レジスタ65と、P遅延モードおよびZ遅延モードに対応するデータセットを遅延出力レジスタ65にセットするための遅延制御回路70とを含む。遅延回路62はプログラマブルであり、PEd60は、遅延量を含めてエレメント全体の動きを決定する制御ユニット50をさらに備えている。遅延制御回路70は、遅延回路62に入力diに現れるデータセット1の指示データ3のトークン5が無効なときは遅延回路62の動作を停止し、入力diのデータセット1のトークン5を遅延出力レジスタ65のトークンとしてセットするための回路71を含む。遅延制御回路70は、さらに、遅延出力レジスタ65にセットされるトークン5が無効なときは当該遅延出力レジスタ65の演算用のデータを変更しない回路に相当する信号線72をさらに含む。また、遅延制御回路70は、入力diのデータセット1のトークン5および遅延回路62から出力されるデータセットのトークン5の論理積(AND)を遅延出力レジスタ65のトークン5としてセットするための回路73をさらに含む。
さらに、遅延制御回路70は、入力diのデータセット1のトークン5を、制御ユニット50からのモード切換信号55によりマスクする回路74を含む。回路74は反転入力付きのORゲートを備えており、モード切換信号55が「1」のときがZ遅延モードであり、入力diのデータセット1のトークン5を、遅延回路62をバイパスして出力する。モード切換信号55が「0」のときがP遅延モードであり、回路74から出力されるトークン5の値が「1」になるようにマスクする。さらに、遅延制御回路70は、指示データ3のエンドトークン4を、Z遅延モードのときに遅延回路62をバイパスして遅延出力レジスタ65にセットするための回路75を備えている。この回路75はセレクタを含んでおり、モード切換信号55が「1」のときは、入力diのデータセット1のエンドトークン4が出力レジスタ65にセットされ、モード切換信号55が「0」のときは、遅延回路62から出力されるデータセット1のエンドトークン4が出力レジスタ65にセットされる。
制御ユニット50は、遅延回路62のセレクタ64を制御するための3ビットのコンフィグレーション情報51を出力する。さらに、制御ユニット50は、PEd60が動作中か否かを表すアクティブ信号54と、上述したモード切換信号55とを出力する。アクティブ信号54は、データセット1の有効無効とは無関係であり、PEd60が動作中は、アクティブ信号54は常に「1」である。アクティブ信号54が「1」のときにアンドゲートを含む回路71において条件が成立すると、遅延回路62にクロックイネーブル信号57が供給される。このクロックイネーブル信号57が「1」のときに、遅延回路62に含まれる複数のレジスタ63は、クロックエッジで値を更新する。また、遅延出力レジスタ65においては、指示データ3をラッチする2ビットのレジスタ65aは、アクティブ信号54が「1」であれば、イネーブル信号58により、常にクロックエッジで値が更新される。遅延出力レジスタ65の、演算用のデータ2をラッチする32ビットのレジスタ65bは、アクティブ信号54が「1」でアンドゲートを含む回路73の条件が成立すれば、信号線72により供給されるイネーブル信号59が「1」となり、クロックエッジで値が更新される。さらに、図5には図示していないが、同期式リセット信号も存在し、PEd60が動作開始直前に、1サイクルだけリセット信号がアサートされ、PE内の全てのレジスタが0にクリアされる。
図5に示したPEd60の動作を説明する。まず、アクティブ信号54の働きに注目する。アクティブ信号54が「0」の場合は、アンドゲートを含む回路71および72の出力は「0」となり、プログラマブルな遅延回路62および遅延出口レジスタ65に供給される全てのクロックイネーブル信号57、58および59が「0」になる。したがって、クロックエッジにおいてPEd60のレジスタは全く更新されない。PEd60は全く動作しない。このため、以降では、アクティブ信号54が「1」の場合に絞ってPEd60の動作を説明する。
モード切換信号55を「1」(Z遅延モード)とし、プログラマブル遅延回路62用のコンフィグレーション情報51を「遅延2」と設定したケースを説明する。図14が、そのケースのPEd60の等価回路である。また、図15に、図14の等価回路の信号線F11〜F18に現れる信号を示している。アクティブ信号54が「1」であるという前堤のもとで、図13(b)のINと同じ入力信号を、図14の信号線F11およびF12(トークン)に投入すると、図15に示すように、各種の中間信号F13〜F16を経て、遅延出力レジスタ65から演算用のデータ2が信号線F17に表れ、トークン信号5が信号線F18に現れる。図15のOUT信号は、図13(c)のOUT信号になり、入力信号に対して「2データ分のZディレイ+1サイクル分のPディレイ」だけ遅延させた信号となる。したがって、図5に示したPEd60は、モード切換信号55をZ遅延モードにセットすると、「0〜7データ分のZディレイ+1サイクル分のPディレイ」として使用できる。一方、モード切換信号55をP遅延モードにセットすると、PEd60は、「1〜8データ分のPディレイ」として使用できる。
図5に示したPEd60において、遅延出力レジスタ65のデータ部分65bのクロックイネーブル信号59と、トークン部分65aのクロックイネーブル信号58とを分けてあることは重要である。データセット1の指示データ3は、アクティブ信号54が「1」であれば必ず更新する。一方、データ2は、遅延出口レジスタ65にセットされるバリッドトークン5の値(トークン信号の次値)が「1」であるときに限り更新する。これは、PEd60の出力のデータセット1を無効にするときは、でたらめな値を出力するのでなく直前の出力データを保持し続ける、という方針を守るために必要なことである。P遅延モードにおいては、入力信号の発信源が上記方針を守っていると想定すれば、PEd自身にこの仕掛けがなくても出力信号が自動的に上記方針を守ることになる。一方、Z遅延モードでは、たとえ入力信号の発信源が上記方針を守っていると想定できたとしても、出力信号で上記方針を守るためにはPEd60にこの仕掛けを設ける必要がある。
図5に示した遅延エレメントPEd60に対して、Z遅延のみをサポートする遅延エレメントを構成することが可能である。その場合は、遅延回路62にトークン信号5を投入する代わりに、3ビットカウンタでトークン信号を伝達し、トークン信号を遅延するための7段2ビットのフリップフロップを省くことが可能である。P遅延と兼用できるようにするためには7段のフリップフロップを設けておくことが望ましい。
図5では、7段のフリップフロップを含む小規模な遅延回路62を採用しているが、RAMをベースとする大規模な遅延回路を備えた遅延エレメントを構成することも可能である。そして、同様の制御回路70により指示データ3と、遅延回路の動作を制御することにより、大規模なZ遅延対応の遅延エレメントを提供できる。ただし、RAMベースの大規模遅延エレメントにおいては、単なるRAMの機能を提供するRAMエレメントと比較すると、制御回路に加えてアドレスカウンタ等も追加することになり、制御回路が占める面積は増える傾向になる。しかしながら、RAMベースのPEは、もともとRAM自体が大きなチップ面積を必要とするので、アドレスカウンタ程度の負担増は相対的に微々たるものである。また、RAMベースPEの場合、Zディレイ専用でよければ、RAM自体をデータ本体のビット幅を演算用のデータのビット幅、例えば32ビットに抑えることが可能である。Zディレイにおいては、遅延回路に蓄えられるValidトークン5は必ず「1」なので、Validトークン5をメモリセルに蓄える必要はなく、Validカウンタを設けて数えるだけで事足りるからである。画像処理の分野で多用するラインバッファは、大規模Zディレイに相当するため、RAMベースの大規模ZディレイPEを設けておくことが有効である。
また、図5に示した遅延エレメント60は、32ビットの演算用のデータ2を含むデータセット1を取り扱うものであるが、16ビット、64ビットの演算用のデータを含むデータセット1を取り扱うためのエレメントを同様の思想で構成することも可能である。また、データセット1の指示データ3は、Validトークン5とEndトークン4をバンドルさせているが、Endトークン4を省くことも可能である。
さらに、P遅延専用の遅延エレメントと、演算エレメントとを組み合わせることによりZ遅延用の回路を構成することが可能である。図16(a)に、その回路の一例を示している。この回路表現(回路イディオム)80は、遅延エレメント81と、セレクタPE85とを含む。遅延エレメント81は、その等価回路を図16(b)に示すように、0〜7クロックの遅延を提供する遅延回路82と、その遅延回路82から出力される遅延出力レジスタ83を含むものであり、全体として1〜8クロックのP遅延を提供可能なものである。セレクタPE85は、演算エレメント30に含まれる機能の1つを用いたものであり、入力データセットをラッチする入力レジスタ86aおよび86bと、セレクタ87と、出力データセットをラッチする出力レジスタ88とを含む。一方の入力レジスタ86aには、遅延エレメント81に入力されるデータセットがセットされ、他方の入力レジスタ86bには、遅延エレメント81から出力されるデータセットがセットされる。セレクタ87は、データセット1のうち、演算用のデータ2については遅延エレメント81により1クロック遅延された方を選び、トークン5については遅延されていない方を選ぶ。
図17に、図16(a)に示した回路80のタイムチャートを示している。入力信号線F21に現れる信号と比較し、出力信号線F23に現れる信号は、トークンは2サイクルずれており、データは3サイクルずれている。すなわち、この回路80は、トークン5もデータ2もずらすPディレイ2つ分と、データだけをずらすZディレイ1つ分が行われることになる。したがって、この回路80は、1クロックのZ遅延と、2クロックのP遅延とを提供する。このイディオムにおいては、遅延エレメント81は「遅延1」と設定する必要があり、回路80は1クロックのZ遅延を提供できるだけである。2クロックのZ遅延が必要な場合は、回路80を直列に2組使用しなければならず、4クロックのP遅延が付随することになる。
図18は、演算式(2)をマトリクス22に実装するための、回路80を含む回路例である。2つの回路80を用い、さらに、回路80に含まれる2クロックのP遅延を、PEe30aの2クロックのレイテンシとのタイミング調整のために利用し、最適化している。
P遅延専用の遅延エレメントと、演算エレメントとを組み合わせることによりZ遅延用の回路を構成する他の方法は、以下のルールにより回路を構成することである。
ルール1:A[i]+A[i−1]などサイクルのずれたデータを使って演算するときは、2サイクル以上のずれは不可。
ルール2:出力信号のトークンは最新データ側(A[i]+A[i−1]の例ならA[i]側)に合わせる。
図19に、演算式(2)を上記のルールにしたがって設計した回路例を示している。図20は、その回路のタイミングチャートである。図19に示した回路は、P遅延を提供する3つの遅延エレメント81と、加算を行なう2つのPEe30aおよび30bにより構成されている。図20に示すように、入力信号線F31にA[i+1]を投入しているサイクルにおいては、信号線F32はA[i]、信号線F33はA[i−1]なので、加算のエレメント30aは1サイクルずれの演算を行う。信号線F35は2サイクル前の加算結果なので、(A[i−2]+A[i−3])であり、トークンはA[i−2]である。一方、信号線F34は入力信号A[i+1]の2サイクル前の値A[i−1]である。よって、加算のエレメント30bは、A[i−1]と(A[i−2]+A[i−3])の加算を行う。ここで右オペランド(A[i−2]+A[i−3])のトークンはA[i−2]に合わせられているので、加算のエレメント30bも1サイクルずれの演算を行うことになり、制約を満たす。加算のエレメント30bの出力信号線F36は、2サイクル前の加算結果(A[i−3]+A[i−4]+A[i−5])、すなわちY[i−4]であり、トークンはA[i−3]のタイミングになる。ちなみに、この回路では、信号線F33とF34は全く同じであるから、信号線F33を加算のエレメント108の左オペランドに接続することにより、遅延エレメント81を1つ削除できる。
図21に、上記ルールにしたがって(A[i]+A[i−2])という演算を行うための回路例を示している。図22は、その回路のタイミングチャートである。この回路では、入力信号線F41にA[i]を投入するサイクルにおいては、マスク用のエレメント30cの出力信号線F42は2サイクル前の値を0でマスクしたもの(A[i−2]&0)であり、信号線F43は3サイクル前の値(A[i−3])である。加算のエレメント30aはこれら1つずれのデータを足すので制約を満たす。加算のエレメント30aの出力信号線F44はさらに2サイクル前の和なので((A[i−4]&0)+A[i−5])であり、トークンはA[i−4]に合わせられている。したがって加算のエレメント30bの入力信号のトークンはA[i−3]とA[i−4]であり、1つずれの制約を満たす。加算のエレメント30bの出力信号線F45はさらに2サイクル前の和なので(A[i−5]+(A[i−6]&0)+A[i−7])であり、すなわちY[i−5]である。
この回路は、(A[i]+(A[i−1]&0)+A[i−2])という計算式に対応する。図23(a)に示すように、図19の3タップフィルタの回路から出発し、図23(b)のように「A[i−1]&0」を行うマスク演算回路を間にはさみ、しかるのちに遅延エレメントの共有や削除を行って最適化する、という手順により図23(c)の回路を構築できる。
以上に説明したように、集積回路装置21は、複数のPE10と、それらPE10の接続を変更できる配線19とを含み、パイプライン処理によりスループットの大きな回路を構成でき、さらに、回路構成を変更可能なマトリクス22を備えている。そして、幾つかの方法により、無効なデータを含むデータストリームに対してZ遅延を正しくハンドリングできる回路を構成できる。特に、複数のPE10の1つのタイプとして図5に示す遅延エレメントPEd60を含むマトリクス22は、1クロックからマルチクロックのZ遅延を簡単に提供できるものである。このため、マトリクス22に、Z遅延あるいはz変換を要する複数のデータが関連する処理回路が構成されたときに、無効なデータが含まれるデータストリームに対して、異常動作せず、無効なデータの影響が有効なデータの計算結果に及ぶことを防止できる。このため、集積回路装置21は、途中でデータが中断したり、無効なデータが含まれるデータストリームの入力に対して、信頼性の高い演算結果を出力でき、さらにスループットも大きい。z変換は、種々のデータ通信により交換されるデータストリームの圧縮解凍などの処理に用いられるものである。したがって、データ通信を含む処理を行う装置に、この集積回路装置21を搭載することにより、信頼性の高い処理結果を高速で得ることができる装置を提供できる。
図1(a)は、4つの値の平均の演算を行なう回路の例、図1(b)は、同じ演算をマトリクスに実装するための回路の例を示す。 データセットの構成を示す。 集積回路装置の概略構成を示す。 演算エレメントの一例の構成を示す。 遅延エレメントの一例の構成を示す。 図6(a)は、3タップフィルタの演算を行なう回路の例、図6(b)は、同じ演算をマトリクスに実装するための回路の例を示す。 図7(a)は、クロックサイクルで入力されるデータ列に対して3タップフィルタの演算を行なう回路の例、図7(b)は、同じ演算をマトリクスに実装するための回路の例、図7(c)は、同じ演算をマトリクスに実装する回路の異なる例。 図7(b)の回路のタイミングチャート。 図7(b)の回路のタイミングチャートであり、中断を含むデータ列が入力された例。 図7(b)の回路のタイミングチャートであり、P遅延のみを適用した例。 図11(a)は、3タップフィルタの演算を、Z遅延を用いてマトリクスに実装するための回路の例であり、図11(b)、(c)および(d)は、同様の回路の異なる例。 図11(b)の回路のタイミングチャートであり、中断を含むデータ列が入力された例。 図13(a)は、P遅延のタイミングチャート、図13(b)は、理想的なZ遅延のタイミングチャート、図13(c)は図5に示す遅延エレメントによるZ遅延のタイミングチャート。 2クロックのZ遅延が設定された遅延エレメントの等価回路。 図14に示す等価回路のタイミングチャート。 図16(a)は、P遅延の遅延エレメントと演算エレメントによりZ遅延を提供する回路例、図16(b)は、P遅延専用の遅延エレメントの等価回路。 図16(a)の回路のタイミングチャート。 図16(a)を用いた3タップフィルタの回路例。 P遅延の遅延エレメントと演算エレメントによりZ遅延を提供し、3タップフィルタを構成した回路の異なる例。 図19の回路のタイミングチャート。 P遅延の遅延エレメントと演算エレメントによりZ遅延を提供した異なる回路の例。 図21の回路のタイミングチャート。 図23(a)〜(c)は、図21に示す回路を設計する過程を示す。
符号の説明
1 データセット、 2 演算用のデータ、
3 指示データ、 4 エンドトークン、 5 バリッドトークン(トークン)
10 処理エレメント
21 集積回路装置(データ処理装置)、 22 マトリクス
30 演算エレメント、60 遅延エレメント

Claims (2)

  1. 演算用のデータと、その演算用のデータの有効無効を示す指示データとを含むデータセットを、複数の演算エレメントにより演算するための回路を構成可能な集積回路装置であって、
    当該集積回路装置は、前記複数の演算エレメントと共に回路を構成可能な複数の遅延エレメントを有し、
    前記複数の遅延エレメントは、それぞれ、
    データセットを順番に、クロックに同期して遅延させた後に出力するための遅延回路と、
    前記遅延回路から出力されるデータセットをクロックに同期してセットするための遅延出力レジスタと、
    前記遅延出力レジスタの内容を制御する遅延制御回路とを備え、
    さらに、前記遅延出力レジスタは、前記指示データを出力する第1の遅延出力レジスタ部と、前記演算用のデータを出力する第2の遅延出力レジスタ部とを含み、
    前記遅延制御回路は、前記遅延回路に入力される第1のデータセットの指示データおよび前記遅延回路を経由して出力される第2のデータセットの指示データが共に有効であれば前記第1の遅延出力レジスタ部の指示データを有効として更新し、前記第1のデータセットの指示データおよび前記第2のデータセットの指示データの一方のみが有効であれば前記第1の遅延出力レジスタ部の指示データを無効として更新するように制御し、
    前記第1の遅延出力レジスタ部にセットされる指示データが有効であるときに限り前記第2の遅延出力レジスタ部を前記第2のデータセットの演算用のデータをセットすることにより更新し、前記第1の遅延出力レジスタ部にセットされる指示データが無効であれば前記第2の出力遅延レジスタ部を更新せずに直前のデータを保持するように制御する、集積回路装置。
  2. 請求項1において、前記複数の演算エレメントと、前記複数の遅延エレメントとを含む、回路をプログラムにより再構成可能な領域を有し、前記遅延回路は、遅延する時間を前記プログラムにより変更可能である、集積回路装置。
JP2006119997A 2006-04-25 2006-04-25 集積回路装置 Active JP4702159B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006119997A JP4702159B2 (ja) 2006-04-25 2006-04-25 集積回路装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006119997A JP4702159B2 (ja) 2006-04-25 2006-04-25 集積回路装置

Publications (2)

Publication Number Publication Date
JP2007293556A JP2007293556A (ja) 2007-11-08
JP4702159B2 true JP4702159B2 (ja) 2011-06-15

Family

ID=38764137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006119997A Active JP4702159B2 (ja) 2006-04-25 2006-04-25 集積回路装置

Country Status (1)

Country Link
JP (1) JP4702159B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5388323B2 (ja) * 2007-11-09 2014-01-15 独立行政法人 宇宙航空研究開発機構 計算機
JP5163306B2 (ja) * 2008-06-19 2013-03-13 富士通セミコンダクター株式会社 動的再構成回路およびデータ送信制御方法
JP5834181B2 (ja) * 2010-01-27 2015-12-16 パナソニックIpマネジメント株式会社 パネル制御装置及びパネル制御システム
CN114223000B (zh) * 2019-08-14 2023-06-06 谷歌有限责任公司 专用集成电路的双模操作

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002095946A1 (fr) * 2001-05-24 2002-11-28 Ip Flex Inc. Dispositif a circuit integre

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002095946A1 (fr) * 2001-05-24 2002-11-28 Ip Flex Inc. Dispositif a circuit integre

Also Published As

Publication number Publication date
JP2007293556A (ja) 2007-11-08

Similar Documents

Publication Publication Date Title
US10417004B2 (en) Pipelined cascaded digital signal processing structures and methods
Teifel et al. Highly pipelined asynchronous FPGAs
US10033387B2 (en) Method apparatus for high-level programs with general control flow
US20050077918A1 (en) Programmable asynchronous pipeline arrays
US11334504B2 (en) Hybrid architecture for signal processing and signal processing accelerator
US7818699B1 (en) Dynamic core pipeline
CN110780843A (zh) 高性能fpga加法
Hoskote et al. A TCP Offload Accelerator for 10 Gb/s Ethernet in 90-nm CMOS
Pontes et al. Hermes-A–an asynchronous NoC router with distributed routing
JP3813127B2 (ja) 3つのゲートのクリティカル・パスを有するワイド加算器
JP4702159B2 (ja) 集積回路装置
Abbas et al. Latency insensitive design styles for FPGAs
Harris et al. Microarchitectural synthesis of VLSI designs with high test concurrency
Palchaudhuri et al. Efficient implementation of scan register insertion on integer arithmetic cores for FPGAs
Palchaudhuri et al. Speed-area optimized VLSI architecture of multi-bit cellular automaton cell based random number generator on FPGA with testable logic support
JP3321926B2 (ja) 自己同期型半導体集積回路装置
US9787290B2 (en) Resource-saving circuit structures for deeply pipelined systolic finite impulse response filters
US10020812B1 (en) Techniques for variable latency redundancy
JP5455249B2 (ja) 多数決回路を使用した半導体集積回路及び多数決方法
US20110179395A1 (en) Distributed Pipeline Synthesis for High Level Electronic Design
Del Barrio et al. Multispeculative additive trees in high-level synthesis
CN117581195A (zh) 可编程线性反馈移位寄存器系统和方法
US8065356B2 (en) Datapipe synchronization device
Casu et al. Adaptive latency insensitive protocols and elastic circuits with early evaluation: A comparative analysis
Warrier et al. Reconfigurable DSP block design for dynamically reconfigurable architecture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090210

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110221

R150 Certificate of patent or registration of utility model

Ref document number: 4702159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250