JP7228590B2 - データバス - Google Patents

データバス Download PDF

Info

Publication number
JP7228590B2
JP7228590B2 JP2020528291A JP2020528291A JP7228590B2 JP 7228590 B2 JP7228590 B2 JP 7228590B2 JP 2020528291 A JP2020528291 A JP 2020528291A JP 2020528291 A JP2020528291 A JP 2020528291A JP 7228590 B2 JP7228590 B2 JP 7228590B2
Authority
JP
Japan
Prior art keywords
data
pipeline
pipeline stage
buffer
elements
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
JP2020528291A
Other languages
English (en)
Other versions
JP2021504811A (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 フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ
Publication of JP2021504811A publication Critical patent/JP2021504811A/ja
Application granted granted Critical
Publication of JP7228590B2 publication Critical patent/JP7228590B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4252Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a handshaking protocol
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/08Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • 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/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Information Transfer Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Ceramic Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)

Description

本発明の実施形態は、データバスおよびその制御方法に関する。好ましい実施形態は、並列SIMDデータの圧縮および転送のための高速非同期マルチ入力パイプラインに関する。
プログラム可能な高度に並列化された信号処理を備えたイメージセンサ(所謂、Vision Systems on Chip)は、センサ自体に直接、計算コストの高いタスクを実行できる。したがって、出力データの量を関連する機能のみに制限することが可能です。したがって、出力データの量を関連する機能のみに制限することが可能である。したがって、出力は必ずしもイメージではないが、たとえば 画像内の特定の特徴の位置と特徴的なプロパティとなる。機能の位置と数は不明であるため、このような機能を読み取ることは大きな課題となる。通常、フィーチャの数、およびその位置と発生時間は不明です。参考文献では、さまざまなセンサが提案されており、これらは特にイベントベースの読み出し用に最適化されており、ほとんどの場合、ピクセルレベルで並列処理を提供する(参考文献[1]、[2]、[4]を参照)。機能ベースの読み出しを容易にするために、読み出しパスは、データの順次スキャンに制限されるのではなく、イベントに反応して伝播できる必要がある。Doege等が発表したVision System on Chip(VSoC)(参考文献[3]を参照)は、従来の同期バスを使用して、単一命令複数データ(SIMD)ユニットから列並列データを読み出している(参考文献[5]を参照)。最大100MHzの周波数で動作し、SIMDアレイのすべての列、または少なくとも連続した領域のいずれかの順次データ読み出しを可能にしている。ただし、特徴を抽出すると、データ長が変化するスパースデータと連続データストリームが生成される可能性がある。このため、特にSIMDユニットのプロセッサ要素(PE)の一部のみが実際にデータを提供している場合は、このようなアプローチが特定のアプリケーションで機能しない。参考文献で提案されている読み出し方式は、連続データストリームまたは空間的にエンコードされたイベントに基づいているが、両方のシナリオに同様に適用できるシステムはない。従来の同期バスや特別なイベントベースの読み出しパスは、このようなシステムには適していない。完全な画像、およびフィーチャ座標のようなスパースデータを転送する必要がある。したがって、改善されたアプローチが必要である。
本発明の目的は、効率的な方法で連続データと疎データの両方の転送を可能にするアプローチを提供することである。
目的は、独立請求項の主題によって解決される。
線形メインパイプラインは、直列に配置されたN個のパイプラインステージ要素で構成される。各パイプラインステージ要素は、それぞれの線形パイプラインの最後のバッファ要素に接続され、そして、バッファされたデータビットシーケンスの1つを読み出し、読み出したデータビットシーケンスをN個のパイプラインステージ要素の1つから次のN個のパイプラインステージ要素に転送するように構成されている。
一実施形態は、高速で両方の読み出しモードをサポートする非同期パイプラインに基づく読み出し経路を提供する。本発明は、データバスまたは読み出し経路が2つの異なるエンティティによって形成され得るという原理に基づいている。最初のエンティティは、N個のステージを持つメインパイプラインを形成する、いわゆるパイプラインステージ要素である。各ステージは、前のパイプラインステージ要素から、またはそれぞれのステージに割り当てられ、パイプラインステージ要素に結合された線形パイプラインからデータを転送するように構成された1つのパイプラインステージ要素を含む。N個の線形パイプラインがデータバスの2番目のエンティティを形成し、1つの線形パイプラインが1つのパイプラインステージ要素に割り当てられる。好ましい実施形態によれば、パイプラインステージ要素のロジックは、同じ入力から、すなわち前のパイプラインステージ要素から、または、それぞれの入力を介してデータを受信する限り、線形パイプラインから、後続のパイプラインステージ要素にデータを転送する(後続のパイプラインステージ要素がデータを受信する準備ができている場合)。N個のステージを構成するメインの線形パイプラインに沿って、各パイプラインステージの要素はバッファとして機能する。同様に、線形パイプラインはN個のステージのバッファ要素で構成されるため、線形パイプラインに沿って線形パイプラインがバッファとして機能する。この操作方法により、使用されている操作モードでデータソースから独立した連続データフローを生成できるため、連続データとスパースデータを低レイテンシで高速に読み取ることができる。提示された方法は、シリアル化によって、データストリーム内に制御情報を格納せずに任意のデータワード幅を許可するという利点がある。
実施形態によれば、パイプラインステージ要素は、線形パイプラインおよび/または前のパイプラインステージ要素の読み出しを順次実行する。つまり、各パイプラインステージ要素は、N個のパイプラインステージ要素の前からの別のデータビットシーケンスを転送する前に、それぞれの最後のバッファ要素からすべてのバッファされたデータビットシーケンスを読み出すか、またはその逆であり、それぞれの最後のバッファ要素から別のデータビットシーケンスを読み出す前に、N個のパイプラインステージ要素の前のすべてのデータビットシーケンスを転送する。このアプローチにより、線形メインパイプラインによって連続的なデータストリームを生成できる。完全を期すために、実施形態によれば、各パイプラインステージ要素は、前のパイプラインステージ要素からデータビットシーケンスを受信するための第1のデータ入力と、最後のバッファ要素からデータビットシーケンスを受信するための第2のデータ入力とを備えている。データフローを制御するために、2つの入力を切り替えるようにパイプラインステージ要素を構成できる。
実施形態によれば、パイプラインステージ要素は、非同期パイプラインステージ要素であり、ここで、後続の2つのパイプラインステージ要素は、データビットシーケンスの転送を開始するため、または前のパイプラインステージ要素から転送されるデータビットシーケンスを受信する機能を示すために、いわゆるハンドシェイク手順を実行するように構成されている。このハンドシェイク手順は、実施形態によれば、パイプラインステージ要素のコントローラによって実行され得る。詳細には、各パイプラインステージ要素は、ラッチと、ラッチおよび特にデータフローを制御するコントローラとによって形成され得る。例えば、ラッチは、ラッチまたはマルチプレクサを含むラッチであり得る。一実施形態によれば、ラッチは、トランジスタの2つの差動ペアおよび2つのフィードバックインバータによって形成され得る。最後のバッファ要素のデータ入力は、第1の差動ペアのトランジスタのゲート接点に接続され、前のパイプラインステージ要素のデータ入力は、第2の差動ペアのトランジスタのゲート接点に接続される。データ出力は、第1および第2の差動ペアのドレイン接点に接続され、制御入力は、トランジスタのソース接点に接続される。ここで、バッファ要素の主な構造は、実施形態によれば、ラッチと、ラッチおよび特にデータフローを制御するためのコントローラとを含むため、非常に類似していることに留意されたい。バッファのラッチは、たとえば、トランジスタの差動ペアと2つのフィードバックインバータのみで構成できるため、複雑さが軽減される。データ入力はトランジスタの接点を得るために接続され、このデータ出力はドレイン接点に接続される。制御入力は、トランジスタのソース接点に接続されている。
実施形態によれば、通常、後続または前のバッファコントローラに接続されるバッファコントローラは、第1の非対称C要素および第2の非対称C要素によって実装され得る。この第1の非対称C要素は、2つの正および2つの負入力を含み得、第2の非対称C要素は、1つの正および1つのニュートラル入力ならびに反転出力を含み得る。
実施形態によれば、バッファコントローラは、転送されるデータビットシーケンスを示す前のバッファ要素から信号を受信するための第1の入力と、データビットシーケンスを受信する能力を示す後続のバッファ要素から信号を受信するために転送される第2の入力とを備える。バッファコントローラはさらに、転送されるデータビットシーケンスを受信する能力を示す信号を出力する第1の出力と、データビットシーケンスを転送する要求を示す信号を出力する第2の出力とを備える。好ましい実施形態によれば、第2の非対称C要素は、その中性入力が第2の出力に接続され、その正の入力が第2の入力に接続され、第1の非対称C要素は、その負の入力が第2の非対称C要素の出力に接続され、その正の入力が第1の入力に接続され、その出力が第2の出力に接続される。さらなる実施形態によれば、バッファコントローラは、第1の非対称C要素の出力と第2の出力との間に配置され得る遅延要素を備え得る。さらに、バッファコントローラは、第1の非対称C要素の出力と第1の出力との間に配置されたインバータ要素を備えることができる。
実施形態によれば、パイプラインコントローラは、第1の非対称C要素および第2の非対称C要素によって形成され得る。第1の非対称C要素は、2つの正および2つの負入力を含むことができ、第2の非対称C要素は、1つの正、1つの中性入力および反転出力を含む。実施形態によれば、パイプラインコントローラは、転送されるデータビットシーケンスを示す前のパイプラインステージ要素からの信号を受信するための第1の入力と、データビットシーケンスを受信する機能を示す後続のパイプラインステージ要素から信号を受信するための第2入力と、読み出されるデータビットシーケンスを示す最後のバッファ要素から信号を受け取るための第3の入力と、を含む。パイプラインコントローラはさらに、転送されるべきデータビットシーケンスを受信する能力を示す信号を出力する第1の出力と、データビットシーケンスを転送する要求を示す信号を出力する第2の出力と、データビットシーケンスを読み取る能力を示す信号を出力する3番目の出力と、を含む。実施形態によれば、第2の非対称C要素は、その中性入力が第2の出力に接続され、その正の入力が第2の入力に接続される。最初の非対称C要素は、負の入力で2番目の非対称C要素の出力に接続され、正の入力で1番目の入力と3番目の入力に接続される。さらに、その出力は2番目の出力に接続されている。第1および第3の入力への接続は、転送されるデータのステージリソースとして最後のバッファ要素または前のパイプラインステージ要素を選択するように構成されたアービターを使用して行うことができる。さらなる実施形態によれば、パイプラインコントローラは、第1のC要素と第2の出力との間に配置された遅延要素を備え得る。別の実施形態によれば、パイプラインコントローラは、第3および第4の非対称C要素を含み、それぞれが反転出力を有し、それぞれの第1および第3の出力に接続されている。ここで、第3および第4のC要素は、上述のアービターを介して第1および第3の入力に接続される。アービターは最後のバッファ要素または前のパイプラインステージ要素をデータソースとして選択する目的を持ち、3番目と4番目のC要素は後続のパイプラインステージ要素を示す信号を出力する目的があり、入力の1つからのデータを転送することができ、入力の1つからの情報は信号を介して与えられる。パイプラインステージコントローラに関して、それは、さらなる実施形態によれば、アービターへの入力を有し、ラッチをドリルするように構成されたエンティティを含み得、それにより、第1データ入力または第2データ入力を選択することに留意されたい。
実施形態によれば、ラッチおよびコントローラを有するパイプラインステージ要素の上記の原理は、複数の、すなわち3つより多い入力を編成することができるように強化することができることに留意されたい。
別の実施形態は、データバスを制御する方法を提供する。この方法は、N個のパイプラインステージ要素の前から別のデータビットシーケンスを転送する前に、バッファ要素のそれぞれの最後からすべてのバッファリングされたデータビットシーケンスまたは所定数のデータビットシーケンスを読み出すステップを含む。そして、それぞれの最後のバッファ要素から別のデータビットシーケンスを読み出す前に、N個のパイプラインステージ要素の前からのデータビットシーケンスを転送する。この方法は、実施形態によれば、コンピュータプログラムによって実行することができる。
以下、本発明の実施形態は、添付の図面を参照して続いて説明される。
図1は、基本的な実施形態による読み出し経路の概略構造を示す図である。 図2は、一実施形態による、スパースデータを伴う読み出し手順を概略的に示す図である。 図3は、一実施形態によるダブルワード長のスパースデータを伴う読み出し手順を概略的に示す図である。 図4aは、一実施形態による、線形パイプラインおよび対応するパイプラインコントローラの概略ブロック図である。 図4bは、一実施形態による、線形パイプラインおよび対応するパイプラインコントローラの概略を示す図である。 図5aは、一実施形態によるデータ経路のラッチ実装を概略的に示す図である。 図5bは、一実施形態によるデータ経路のラッチ実装を概略的に示す他の図である。 図6は、一実施形態によるマルチ入力パイプラインの概略ブロック図である。 図7は、一実施形態による、チャネル保持機能を備えたチャネル選択のためのアービターの概略ブロック図である。 図8は、一実施形態による2入力パイプラインコントローラの概略図である。 図9は、実施形態の測定検査チップの概略構成を示す図である。 図10は、測定されたフォワードレイテンシとサイクルタイムを、電源電圧の関数として示す図である。 図11は、供給電圧の関数として測定された消費電力を示す図である。 図12は、異なる非同期パイプラインの比較を示す表である。
I.はじめに
提案された非同期パイプラインは、高速のスパースデータ読み出しを可能にするだけでなく、連続データの転送も可能にするものと想定されている。
詳細な説明は次のように構成されている。セクションIIでは、読み出しパスの構造を示し、特定の読み出しモードについて説明する。ハードウェアの実装については、セクションIIIで詳しく説明する。テストチップの結果が評価され、セクションIVの最新技術と比較される。最後に、セクションVで結論を示す。
以下では、同一または類似の機能を有する要素に同一の参照番号が付与されている。
II.読み出し経路の構造
図1は、2つの部分に分割された読み出し経路/データバス10の主要な構造を示す。読み出し経路10は、線形メインパイプライン12を形成するように直列に配置されたN個のパイプラインステージ12a、12b、12c、12d、12eおよび12fを含む。線形メインパイプライン12は、N個のパイプラインステージを有し、直角に走る。なお、各パイプラインステージ要素にはPS2のマークが付けられており、各パイプラインステージ要素12a~12hに2つの入力があることを示している。1つは前のパイプラインステージ要素、たとえば12a(パイプラインステージ要素12bを見た場合)、もう1つは参照番号14a~14fでマークされたいわゆる線形パイプラインである。
読み出し経路10の他の部分は、メインパイプライン12に垂直に配置され、それぞれのパイプラインステージ要素12a~12fに結合されたN個の線形パイプライン14a~14fによって形成される。各線形パイプラインは、参照番号14-1、14-2、14-MでマークされたMステージ/Mバッファ要素で構成される。バッファ要素はPS1でマークされている。これは、各バッファ要素が前のバッファ要素の1つの入力、たとえば14-2(14-1を参照する場合)を含むためである。
データバス10は言い換えれば、同じことは、各ステージ12a~12fがN×M行列または、詳細には、NxM+1行列を形成するようにN個のバッファ要素を有する別の線形パイプライン14a~14fに結合されるときにN個のステージを含む線形メインパイプライン12によって実行される。各バッファ要素14-1から14-Mは、データをバッファするように構成されたラッチと、線形パイプライン14a~14fの要素を通るバッファおよびデータフローを制御するためのコントローラとを備え得る。最初のバッファ要素14-Mは、PEによってマークされたプロセス要素からデータビットシーケンスを受け取り、可能であれば、受け取ったデータビットシーケンスを最後のバッファ要素14-1まで転送する。パイプラインステージ要素12a~12fは、また、バッファとしてのラッチと、前のパイプラインステージ要素から、または対応する線形パイプライン14a~14fの最後のバッファ要素14-1からのバッファおよびデータフローを制御するコントローラとを備えてもよい。各パイプラインステージ要素12a~12f、または、特に、それぞれのラッチは、対応する最後のバッファ要素14-1に結合されるからである。
これで図1の実施形態の構造が説明されたので、機能性を以下で説明する。各PEには、2つの入力(PS2)を備えた専用パイプラインステージが割り当てられ、PEのローカルデータバッファと以前のPS2の両方からデータを取得できる。データバス幅Bはすべての要素で同じである。VSoCでは、3つの読み出しモードが考えられる。
各PEはデータを提供する。すべてのデータが順次読み取られる。
2)不明な数のPEがデータを提供し、パイプラインがデータを提供しなくなるまで読み取られる。
3)未知の数のPEがデータを提供し、それは継続的に読み取られます。PEの様々な処理ステップからのデータストリームが混在する可能性がある。
最初のモードは、完全な画像情報を読み取る場合に使用される。ここで、各プロセス要素12a~12fは、選択された入力からその時点までのすべてのデータを転送することができ、それ以上のデータビットシーケンスは受信されない。例えば、プロセス要素12eは、線形パイプライン14eのバッファ要素14-1~14-Mに格納されているすべてのデータビットシーケンスをステージ要素12fに読み出す。パイプラインステージ要素12fは、シーケンスごとにデータビットシーケンスを受け取り、それを次の要素または出力に転送する。線形パイプライン14eがそれ以上のデータビットシーケンスを持たない場合、パイプラインステージ要素12eの入力は、パイプラインステージ要素12dからデータビットシーケンスを受信するように切り替わる。ここで、パイプラインステージ要素12dを介して受信されたすべてのパイプラインステージ要素は、パイプラインステージ要素12eによってパイプラインステージ要素12fに転送される。ここで、データビットシーケンスは、例えば、前のパイプラインステージ要素12cから、または対応する線形パイプライン14dから、パイプラインステージ要素12dによって受信され得る。
2番目と3番目のモードでは、スパースデータ(疎データ)、例えば検出された特徴の座標がある。これらのモードについては、図2および図3を参照して説明する。
図2は、第2のケースにおける読み出しプロセスを例示的に示している。最初のステップで一部のPEから提供されたデータは、それぞれのPS2に転送され(ステップ2)、最後に圧縮される(ステップ3)。パイプラインは、不明な長さの連続したデータストリームを保持するようになる。これは、パイプラインの端にあるインターフェイスを介して読み取ることができる。
パイプラインのビット幅Bの倍数のデータワードが出力される場合、簡単な解決策は単にビット幅を増やすことである。ただし、これにより、より多くのストレージ要素が必要になるため、面積とエネルギー消費量が増加する。したがって、ビット幅Bは、最小のデータスループット要件が満たされるように選択する必要がある。固定ビット幅Bの場合、より大きなワード幅(2B、3Bなど)がシリアル化されてから、パケットとして読み取られる。この目的のために、各PEはローカルバッファに最大M個の要素を格納する。これらの要素は、読み出しパスへの転送中は隣接したままになる。
図3は、パイプラインビット幅の2倍のワードの圧縮を例示的に示している。最初のステップでは、PEはそれぞれ2つのデータ要素を提供する。2番目のステップでは、データがPS2に転送されます。最後に、3番目のステップで、隣接するデータパケットが圧縮される。
提案されているパイプライン構造は、同期と非同期の両方で実装できる。ただし、特に圧縮と読み取りモード3の場合、非同期実装はいくつかの理由で適している。
・グローバル高速クロック信号(~1GHz)は必要ない。このような信号を低スキューでルーティングするには、大きなバッファツリーとかなりの電力消費が必要である。
・同期実装とは対照的に、データ依存(固有のクロックゲーティング)であるため、平均的なケースではエネルギー要件は低くなる。
・グローバルクロック信号がないため、消費電流は時間の経過とともに継続的に分散される。
最後の2つのポイントは、VSoCで発生するため、非常に長いパイプライン長Nで特に重要である。
III.ハードウェアの実装
A.線形パイプライン
図4に関して、バッファ要素14-M、14-M+1、14-M-1(図1の14-1、14-2および14-Mに対応する)の実装について説明する。図4の説明は、各バッファ要素14-1~14-Mが、バッファコントローラ40と、バッファコントローラ40によって制御される対応するラッチ35(信号1eを参照。)を備えるという仮定に基づいて行われる。M(M-1およびM+1)個のステージのラッチ35は、前のラッチ35-M-1(例えば、信号D)からデータビットシーケンスを受信するために互いに接続される。M個のステージ(M-1およびM+1)のバッファコントローラ40は、2つの信号経路を介して互いに接続されている。1つはプロセスコントローラー40が前のコントローラからデータ(信号rdyを参照。)を受信する準備ができていることを示し、もう1つはデータを転送するために次のコントローラを使用することを示す(信号reqを参照。)。次に、非同期パイプラインステージの基本構造の機能は、パイプラインコントローラー(PC)で構成され、関連するデータパスについて説明する。
パイプライン構造は、いくつかのステージの連結によって形成されます。たとえば、3個のステージパイプラインを図4aに示す。パイプラインを介して転送されたデータは、それぞれのPCによって制御されるラッチに保持される。
非同期パイプラインは、クロック信号によるグローバル同期ではなく、連続するパイプラインステージ間のハンドシェイク信号によるローカル同期があるため、際立っている。ハンドシェイク信号の生成と処理は、PCによって実行される。参考文献では、多くの実装が提案されており、NowickおよびSingh(参考文献[7]を参照)が概要を説明している。違いは基本的に、ハンドシェイクプロトコルの選択、タイミング制約の要件、データエンコーディングの選択、および使用されるロジックスタイルである。このペーパーで提案されているパイプラインは、デュアルレールエンコーディングと比較してデータパスの配線とロジックの複雑さが低いため、いわゆるシングルレールバンドルデータの概念に基づいている。読み出しパスのコンテキストでは、スパースデータの高速圧縮が可能になり、パイプラインコントローラの転送遅延を低くする必要がある。ここで、フォワードレイテンシとは、あるステージから次のステージにデータを伝播するために必要な時間を意味する。さらに、パイプライン内のストレージ時間は事前にわからないため、ダイナミックロジックは適用できない。SinghおよびNowick(参考文献[9]を参照)は、フォワードレイテンシが非常に低いが動的ロジックに基づいた実装である大容量(HC)パイプラインを紹介した。ラッチ35に使用されるコントローラ40は、静的ラッチ用に設計されている。2つの入力を持つパイプラインコントローラに拡張する前に、まず線形コントローラを使用してその機能を説明する。
線形パイプライン14-mの動作に使用されるPCバッファコントローラ40は、図4bにより示されている。バッファコントローラ40は、3つのゲート、2つの非対称C要素40-M1および40-M2、ならびにインバータ40-Iを含む。C要素[8]は、非同期回路の一般的なゲートであり、例えば状態エンコーディングの場合、同期実装のフリップフロップに似ている。
さらに、コントローラ40は、req信号を後続のバッファ要素の後続のバッファ要素/コントローラに出力するための2つの出力40-02と、前のバッファ要素のコントローラにrdy信号を出力するための40-01とを備える。入力として、コントローラ40は、入力40-i2および40-i1を備える。40-i2は、後続のバッファコントローラからレディ信号rdyを受信するために使用され、入力40-i2は、前のバッファ要素のコントローラからreq信号を受信するために使用される。
C要素40-M1は、例えば、2つのマイナス入力を含み、40-M1がrdy1_i信号を使用できるように、1つのマイナス入力が入力40-i2に結合される。第2のマイナス入力は、C要素40-M2、すなわち、その反転出力に結合される。さらに、C要素40-M1は2つのプラス入力を備え、1つはreq_iを受信するために入力40-i1に結合され、もう1つはインバータ40-iを介してC要素40-M1の出力に結合される。
第2のC要素40-M2は、例えば、出力40-02を介して出力されるreq_o信号を受信するためにニュートラル入力でrdy_i信号を受信するために入力40-i2に結合されたプラス入力を備える。ここで、req_o信号はC要素40-M1によって出力された信号ですが、要素40-tによって遅延されている。出力40-01は、インバータ40-1を介してC要素40-M1の出力に結合されているので、rdy_o信号は、C要素40-M1によって出力された信号の反転バージョンである。
さらに、コントローラ40は、ラッチ(図示せず)を制御する信号を出力するための別の出力を備える。le信号は、rdy_o信号に実質的に準拠するが、追加のプロセス要素40-p、たとえば増幅器によって処理される。以下、コントローラ40の機能について説明する。
C要素の出力は、すべての正入力とニュートラル入力が状態1である場合は1であり、すべての負入力とニュートラル入力が状態0である場合は0である。それ以外の場合、出力は変更されない。
要求信号req_i(図4b)は新しいデータの到着を示す。状態1は前のパイプラインステージからの新しいデータが到着したことを意味し、状態0は新しいデータが利用できないことを示す。M-1番目のステージのすべてのデータがm番目のステージのラッチで安定するまで、ステージnの信号req_iが状態1に変化してはならない。この条件は、データパスに組み合わせロジックがないパイプラインの場合、つまりFIFOの場合、通常はデフォルトで満たされますが、データパスの遅延が大きいパイプラインの場合、これは、要求信号に追加の遅延要素τを導入することによって実現されます。要求信号req_oは、m+1番目のステージに新しいデータの存在を通知する。これは、m番目のステージが新しいデータを吸収したときに設定される。つまり、req_iが以前に設定されていて、rdy_oが状態1にある場合である。信号はC要素M1によって生成される。m番目のステージの要求は、rdy_iの立ち下がりエッジでm+1番目のステージによって確認されるまで残る。C要素M2は、2つの転送の間でrdy_i信号が状態1であることを保証する。つまり、実際に立ち下がりエッジが評価される。確認応答後、要求信号req_oは再び状態0に変化し、m番目のステージは新しい転送の準備が整う。パイプラインコントローラが正しく動作するためには、いくつかの-幸いにも簡単に満足できる-タイミングの制約を満たす必要がある。最初の制約(式1)は、データパスが制御パスよりも高速であることを保証するためにある。
Figure 0007228590000001
2番目の制約(式2)は、ラッチのゲート入力での最小パルス長を定義する。これにより、ラッチの正しいサンプリングが保証される。
Figure 0007228590000002
3番目の最後の制約(方程式3)は、C要素M-2が、rdy_iが状態0に戻る前に状態1にあったことを確実に認識できるようにするためのものである。
Figure 0007228590000003
式1は、ラッチの遅延時間が制御パスの遅延時間よりも短くなければならないことを指定している。制御パスには1つのC要素に相当する遅延しかないため、この条件は従来のC2MOSラッチでは実現できない。さらに、追加のマルチプレクサを回避するために、2番目の入力によって簡単に拡張可能なラッチ実装を優先する必要がある。図5aは、1つのデータおよび選択入力を有するそのようなラッチ実装35を示す。ラッチ35は、差動ペア35-d1および35-d2ならびに2つのフィードバックインバータ35-i1および35-i2を備える。
差動ペア35-d1および35-d2は、2つのトランジスタ35-d1および35-d1を含む。トランジスタ35-d1および35-d1のドレイン接点は、並列に配置されているが逆向きの2つのインバータ35-i1および35-i2を介して互いに結合されている。2つのインバータは、外部入力が受信されない限り、差動ペア35-d1/5-d2の安定状態を可能にすることを目的としている。
2つのトランジスタ35-d1および35-d2は、そのゲートを介してデータ入力35-di(差動入力)に結合される。差動トランジスタ35-d1および35-d2のソース電極は、制御信号leによって制御されるように構成された別のトランジスタ35-tに結合される。制御信号leに基づいて、トランジスタ35-tを使用することにより、差動ペア35-d1/35-d2が制御され、その結果、入力ペア35-diから新しいデータを受け取ることができる。
差動ペア35-d1/35-d2によって保存されたデータは、2つのトランジスタ35-d1および35-d2のドレイン接点に接続された出力35-do(差動出力)を介して出力できる。ラッチ35の遅延時間は、インバータの遅延時間に対応し、適切なサイズである場合、少なくとも2つのインバータステージのC要素遅延時間よりも速いことに留意されたい。
B.マルチ入力パイプライン
線形パイプラインコントローラから開始して、連続したパケットを提供するためにPE内で使用されるため、アービトレーションによって拡張される。結果のパイプラインの構造は、図6に示され、3つのパイプラインステージ12-m-1、12-m、12-m+1を示している。線形パイプライン12(図1を参照)は、図6によって詳細に示されている。図6は、3つのパイプラインステージ要素を示し、各パイプラインステージ要素は、プロセスコントローラー60と、制御信号le_aおよびle_bを介してプロセスコントローラー60によって制御されるラッチ55とを備える。
データを受信またはアップロードするための要件または準備を示す信号req_aおよびrdy_aを交換するために、異なるステージのプロセスコントローラー60は互いに結合されている。さらに、プロセスコントローラー60は、線形パイプライン(図示せず)のコントローラに接続されて、信号rdy_bおよびreq_bを交換して、最後のバッファ要素からデータを読み出す準備または要件を示す。
ラッチ55は2つの入力を含み、1つは前のパイプライン要素のラッチに結合され、1つは最後のバッファ要素のラッチに結合される。これらの信号パスは、参照番号di_b(バッファ要素から)とdi_a(前のパイプライン要素から)でマークされている。
換言すれば、パイプライン12は、N+1個の入力およびN個のステージに対する1つの出力を有するものとして説明することができ、入力は、コントローラ60に属するアービター(図示せず)を使用して選択される。アービターは、2つの入力のどちらが新しいデータを提供するかに応じて、入力a(di_a)または入力b(di_b)を選択する目的を持っている。
チャネルの選択は、連続したデータが所定の期間利用できない、つまり連続的な転送が中断されるまで残る。これにより、データワード内の特別な制御情報を評価する必要なく、連続したパケットを実装できる。以下では、ラッチ55について、図7に関してアービターを、図8に関してコントローラ60を説明する前に、図5bに関して説明する。
ラッチ55は実質的にラッチ35に準拠し、ラッチ55は2つの差動ペア、すなわち、並列に配置され、両方が2つのインバータに結合された差動ペア35-d1/35-d2および55-d1および55-d2を有する。差動ペア35-d1/35-d2および55-d1/55-d2のそれぞれのドレインコンタクトを介して35-i1および35-i2は、そのドレインコンタクトを介して独自の制御トランジスタ35-tおよび55-tに結合され、2つのトランジスタは、コントローラから制御信号le_aおよびle_bを受け取る。制御信号を介して、それぞれの差動ペア35-d1/35-d2または55-d/55-d2を選択して、それぞれの入力35-diまたは差動ペア35-d1/35-d2または55-d1/55-d2に属している55-diからデータを読み出すことができる。両方の差動ペアは、ドレイン接点を介して共通出力35-doに結合されている。
図7は、相互排除70-m(MUTEX)を実施する要素を備えるアービター70を示し、これは、競合する要求の場合に、グリッチのない方法で2つのチャネルAまたはBのうちの1つを選択する。MUTEXは、NAND-RSフリップフロップ70-mffと、それに続く準安定フィルター70-mfで構成され、これは確立された実装であり、これは他の著者によっても頻繁に使用される(参考文献[6]、[11]を参照)。
入力にある追加のORゲート70-o1と70-o2は、実際のチャネル選択を一定時間保持する。NANDゲートとORゲートを1個のステージのCMOSゲートに組み合わせることができるため、誘発されるスローダウンは重要ではない。ホールドタイムは遅延要素を使用して設定され、パイプラインステージのサイクルタイムよりもいくらか長く選択する必要がある。選択された遅延要素が立下りエッジよりもかなり速く立上りエッジを伝搬しない場合、着信要求信号は遅延要素の出力で表示するには短すぎる可能性がある。これは、一連のインバータを使用して、またはこの動作を示す特別なゲートを設計することによって実現できる。アクティブチャネルが選択されていない限り、アービターの遅延時間は、パイプラインコントローラの転送遅延に直接影響する。ただし、着信要求信号間の時間的な関係が不明であるため、これを回避することはできない。
図8は、2つの入力を有するパイプラインコントローラ60を示す。パイプラインコントローラ60は、2つのC要素60-M1および60-M2ならびに2つの追加要素60-M3aおよび60-M3bを含む。コントローラ60は、コントローラ60に隣接するコントローラと通信するための3つの入力および3つの出力を備える。詳細には、コントローラ60は、転送されるべきデータビットシーケンスを示す前のパイプラインステージ要素から信号req_aを受信するための第1の入力60-i1と、データビットシーケンスを受信する能力を示す後続のパイプラインステージ要素から信号rdy_iを受信するための第2の入力60-i2と、を含み、読み出されるべきデータビットシーケンスを示す最後のバッファ要素から信号req_bを受信するための第3の入力60-i3を備える。コントローラ60は、前のパイプラインステージ要素から転送されるべきデータビットシーケンスを受信する能力を示す信号rdy_anを出力する第1の出力60-o1と、
データビットシーケンスを後続のパイプラインステージ要素に転送する要求を示す信号req_oを出力する第2の出力60-o2と、を含み、最後のバッファ要素からデータビットシーケンスを読み出す能力を示す信号rdy_bを出力する第3の出力60-o3を備える。さらに、コントローラ60は、信号le_aおよびle_bを対応するラッチ(図5bを参照。)に出力する出力を制御することを含む。
したがって、C要素60-M1は、たとえば、2つのマイナス入力と1つのプラス入力で構成される。マイナス入力は、第2の入力60-i2に結合され、マイナス入力は、C要素60-M2の反転出力に結合される。プラス入力は、結合要素60-Cを使用して、入力60-i1と出力60-o1、および入力60-i3と出力60-o3の両方に結合される。さらに、結合要素60-cは、信号sel_aおよびsel_bを出力するアービター出力用の入力を有する。
第2のC要素60-M2は、例えば、出力60-o2の第2のreq_oを受信するためにニュートラル入力で入力60-i2の信号rdy_iを受信するためのプラス入力を備える。信号req_oは、遅延要素60-tによって遅延されたときに、第2のC要素60-M1によって出力された信号に準拠することに留意されたい。
C要素60-M3aおよび60-M3bには、アービターの信号sel_aまたはアービターのsel_bを受信するためのプラス入力がある。さらに、どちらにもC要素60-M1の出力に結合されたニュートラル入力がある。両方の要素60-M3aと60-M3bは、信号rdy_aとrdy_bを出力する反転出力を備えている。
2つの要素60-M3aおよび60-M3bにより、要素60-M1からレディ信号を出力でき、ここで、rdy_aとrdy_bの間の選択は、アービター信号を使用して行うことができる。つまり、アービターの選択に応じて、rdy_aまたはrdy_b信号が出力されることを意味する。同じ信号を使用して、エンティティ60-lを使用してラッチを制御する。エンティティ60-1は、アービターからsel_aまたはsel_b信号を受信するゲート60-gへのインバータ60-iを含み得る。その結果、sel_aまたはsel_b信号に依存して、le_aまたはle_b信号は、それぞれの制御出力に対して2つのプロセス要素60-pを使用して出力されてもよい。信号le_aまたはle_bは、要素60-M1によって出力された信号の反転バージョン(60-iで反転)であり、アービターの選択に応じてそれぞれの制御出力に転送される。
以下、コントローラ60のロジックについて詳細に説明する。
発信要求信号req_oは、C要素60-M1によって再び生成される。60-M1の正の入力での追加ロジックにより、条件(reqa∧sela∧rdya)∨(reqb∧selb∧rdyb)が満たされた場合にのみ、発信要求が設定される。つまり、アービターがチャネルAを選択し、ラッチがチャネルAからのデータパスサンプルデータをラッチした場合にのみ、チャネルAからの要求が受け入れられる。同様の方法で、チャネルBにも同じ条件が当てはまる。この制約はC要素のNMOSパスに簡単に統合できるため、図8の原理回路で示唆されているように、実際には追加のゲートは必要ない。信号req_oをn番目のステージで設定した後、線形コントローラの場合と同様に、信号rdy_iはn+1番目のステージで0に設定される。続いて、n番目のステージの信号req_oもリセットされる。ラッチイネーブル信号le_aまたはle_bは、「and」関数によって信号sel_aまたはsel_bとそれぞれ論理的にリンクされる。
信号rdy_aとrdy_bも同様の方法で生成される。チャネル選択信号sel_aまたはsel_bは、rdy_aまたはrdy_bのどちらを設定するかを再度決定している。この時点ではC要素が使用されている。これは、チャネル切り替え中にレディ信号がその状態を変更してはならないためである。そうしないと、前のパイプラインステージが無効な状態になる可能性がある。
コントローラが正しく動作するには、タイミングの制約も考慮する必要がある。線形コントローラに対して式1~3で与えられた制約は、同様の方法でマルチ入力パイプラインコントローラに適用され、tM1+tinvという用語がtM1に置き換えられている。これは、線形コントローラでは、パイプラインステージが有効なデータを保持していない場合、すべてのラッチが透過的であるという事実によって説明される。ただし、拡張パイプラインコントローラの場合、使用するチャネルがまだ選択されていないため、ラッチは透過的ではない。これが、方程式2および3で与えられた制約を満たすのがやや難しい理由である。これ以上のタイミング制約は必要ない。
C.初期化
これまでに、2つのパイプラインコントローラと対応するデータパスラッチについて説明した。ただし、パイプラインの初期化の非常に重要な側面はまったくカバーされていない。同期回路と同様に、この目的のためにリセット信号が使用される。すべてのC要素を一度にリセットするこの信号は、各C要素を1つのトランジスタだけで拡張することによって実現できる。PEのデータバッファから出力パスへのデータ転送の制御は、もう1つの重要な側面である。これには、グローバルスタート信号によって制御される追加のANDゲートを、PEとPS2間の要求信号に追加する必要がある。そうでなければ、PEからのデータ要素は、すぐに読み出しパイプラインに送られる。このようにして、パイプラインを読み出し、同時にPEのデータバッファに新しいデータを構築することはできない。非常に長いパイプラインの場合、この信号は、バッファツリーを介して、またはパイプラインのデータフローと反対方向に供給される。これは、非常に長いシフトレジスタでのクロック信号の供給に匹敵する。
IV.テスト結果と比較
開発された回路コンポーネントは、180nmCMOSテクノロジーのテストチップ上で測定され、参考文献で知られている非同期パイプラインの実装と比較された。提示されたパイプラインコントローラは、180nmの低消費電力CMOSテクノロジーのテストチップを使用して正しく動作することが実証された。テストチップは、同期信号がデータバスに適用される入力を示す図9に示されている。テストチップには、8ビットのデータパスを備えた14ステージの非同期パイプライン10´が含まれている。入力および出力は、同期インターフェイス80-iを介して読み取りまたは書き込むことができる。14のパイプラインコントローラのうちの2つ(12*を参照)は、アービトレーション付きのコントローラに置き換えられた。つまり、パイプラインには合計3つの入力がある。2つの追加入力には、それぞれ1つのバッファステージが装備されている。さらに、定義された数のデータ要素を回転させるために、パイプラインをリング構造として接続できる。ハンドシェイクは、強力なバッファを使用して選択された要求と準備完了信号をボンドパッドに出力することによって監視された。構造の模式図を図9に示す。合計で、4つのテストモードを使用できる。
・テストモード1では、すべてのパイプライン要素が定義された順序で入力され、その後、これらが読み取られる。読み出したデータの調停や正当性を確認できる。
・テストモード2では、データは追加のパイプライン入力にのみ書き込まれる。これにより、圧縮が出力で正しいデータを提供するかどうかを確認できる。テストモード3および4は、パイプラインはリングとして接続される。つまり、一度挿入されたすべてのアイテムがパイプライン内を循環し続ける。このモードでは、パイプラインコントローラのフォワードレイテンシとサイクルタイムを測定できる。フォワードレイテンシは、要素を1つだけ挿入することで決定される。14のパイプライン要素の場合、それらの速度がすべてほぼ等しいと仮定すると、フォワードレイテンシは、式4に従ってデータアイテムのローテーション時間から発生する。
Figure 0007228590000004
同様に、パイプラインコントローラのサイクルタイムは、13個の要素をパイプラインに挿入することで決定できる。次に、有効なデータ項目のないパイプラインステージが1つだけ存在する。図10に、測定された順方向レイテンシと、電源電圧に応じたサイクルタイムを示す。予想通り、コントローラの速度は供給電圧が高いほど速くなる。わずか0.7ボルトの電源電圧でも、一部のテストチップはまだ機能している。また、リング内を1つの要素のみが循環する場合の消費電力を測定した。図11を参照のこと。
表Iは、提示されたパイプラインコントローラの遅延を、参考文献のバリアントと比較して示している。HCパイプラインと比較すると、ここに示されている実装は約半分の速さであり、これは、一方では、データパスでのスタティックロジックの使用によるものであり、他方では、異なるプロセステクノロジーによるものである。さらに、参考文献に記載されている値は、線形パイプラインにのみ適用される。アービターによって引き起こされる遅延のために、提示されたマルチ入力パイプラインは必然的に少し遅くなる。1.8Vの公称動作電圧で測定された順方向レイテンシは520psである。これは、同期実装の2GHzの同等のクロック周波数に相当するが、現在使用されているテクノロジーでは実現できない。同じテスト条件下で、1.1nsのサイクルタイムが測定された。これは、すべてのステージがデータ要素を保持する場合のパイプラインのスループットに対応する。
IV.概要
この作品は、列平行SIMDユニットの平行データをシリアルに出力できるビジョンシステムオンチップの読み出しパスを示している。読み出しパスは非同期パイプラインとして実装されているため、スパースデータの非常に高速な圧縮と連続データストリームの読み出しの両方が可能である。巧妙なアービトレーションにより、追加の制御情報なしで、連続したデータパケット、したがって可変ワード幅を送信することが可能である。提示された回路コンポーネントは、180nmCMOSテクノロジーのテストチップで正常にテストされた。テストチップは、同期信号がデータバスに適用される入力を示す図9に示されている。公称動作電圧で520psのフォワードレイテンシを測定すると、提案された非同期パイプラインは、2GHzでクロックされる対応する同期実装と同等であることがわかっている。
V.追加の実施形態
別の実施形態によれば、図1によるデータバスは、プロセス要素PEを有するマトリクス形状のデータソースを形成する。実施形態によれば、連続的に配置されたデータビット(一緒に属するデータ部分)は、連続的なデータストリームとして出力され得る。
ここでは、各パイプライン要素がデータフローを制御し、列のコンテンツ(線形パイプライン)が読み出されてメインパイプラインに転送される。代わりに、パイプラインが転送できる限り多くのデータをバッファリングするように、すべての列を読み出すことができる。これにより、図2で示されているように、不連続なデータストリームが生じる可能性がある。別の実施形態によれば、読み出し手順は、複数のデータビットシーケンス(共通のデータパケットに属する)が一緒に読み出されるように、利用可能なリソースに依存することがある。図3に示すように、この注記は、すべての列がデータを提供するとは限らない場合に特に適している。
別の実施形態によれば、各パイプラインステージ要素は、パイプラインステージ要素の入力間を切り替える目的を果たすランダムを含み得る。その結果、すべての列が優先順位なしで読み出され得る。この原理は、一緒に属する複数のデータビットシーケンスにも使用できます。つまり、2つ以上のシーケンスの読み出し後に入力間の切り替えを実行する場合にも使用できる。
上述のコントローラは、実施形態によれば、データパケットとして処理できるように、一緒に属するデータ部分を決定するように構成され得る。別の実施形態によれば、コントローラは、例えば、列のデータフローの優先順位付けを開始することができる入力を含むことができる。
また、上記の実施形態では、動作モードは非同期動作モードとして説明されているが、同期動作モードも適していることに留意されたい。
上記の実施形態内では、バッファとして使用されるラッチのコンテキストでパイプラインについて説明したが、他のバッファ要素またはメモリセルもバッファ要素およびパイプラインステージ要素に使用できることに留意されたい。好ましくは、マルチプレクサを有するラッチが使用され、パイプラインステージ要素内で使用されるラッチは、通常、2つの入力を含むが、より多くの入力(N入力)を含むこともできる。この場合、ラッチは通常、N個の差動ペアで構成される。別の実施形態は、パイプラインコントローラに属する2つまたはN個の入力を有する多入力アービターに言及する。アービターはN入力に拡張することもできる。この実施形態では、バッファステージ要素がN入力に拡張されるだけでなく、そのコントローラも拡張される。N個の入力を有するパイプラインの典型的な用途は、チップスタッキングを含むチップの3D統合を有する、いわゆるマルチチップ実装である。
いくつかの態様が装置の文脈で説明されてきたが、これらの態様も対応する方法の説明を表すことは明らかである。ここで、ブロックまたはデバイスはメソッドステップまたはメソッドステップの機能に対応している。同様に、方法ステップの文脈で説明される態様は、対応する装置の対応するブロックまたはアイテムまたは特徴の説明も表す。方法ステップの一部またはすべては、例えば、マイクロプロセッサ、プログラム可能なコンピュータ、または電子回路などのハードウェア装置によって(または使用して)実行することができる。いくつかの実施形態では、最も重要な方法ステップの1つまたは複数は、そのような装置によって実行され得る。
特定の実施要件に応じて、本発明の実施形態は、ハードウェアまたはソフトウェアで実施することができる。実装は、フロッピーディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROM、またはフラッシュメモリなどのデジタル記憶媒体を使用して実行でき、その上で、それぞれの方法が実行されるように、プログラム可能なコンピュータシステムと連携する(または連携できる)。したがって、デジタル記憶媒体は、コンピュータ可読であり得る。
本発明によるいくつかの実施形態は、本明細書に記載の方法の1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読み取り可能な制御信号を有するデータキャリアを含む。
一般に、本発明の実施形態は、プログラムコードを有するコンピュータプログラム製品として実装することができる。プログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されるときに方法の1つを実行するように機能する。プログラムコードは、例えば、機械可読キャリアに格納されてもよい。
他の実施形態は、機械可読キャリアに記憶された、本明細書に記載された方法の1つを実行するためのコンピュータプログラムを含む。
言い換えれば、本発明の方法の実施形態は、したがって、コンピュータプログラムがコンピュータ上で実行されるときに、本明細書に記載の方法の1つを実行するためのプログラムコードを有するコンピュータプログラムである。
したがって、本発明の方法のさらなる実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを記録したデータキャリア(またはデジタル記憶媒体、またはコンピュータ可読媒体)である。データキャリア、デジタルストレージメディア、または記録されたメディアは、通常、有形および/または非一時的である。
したがって、本発明の方法のさらなる実施形態は、本明細書で説明される方法の1つを実行するためのコンピュータプログラムを表すデータストリームまたは一連の信号である。データストリームまたは信号のシーケンスは、例えば、インターネットなどのデータ通信接続を介して転送されるように構成されてもよい。
さらなる実施形態は、本明細書に記載の方法の1つを実行するように構成または適合された処理手段、例えば、コンピュータまたはプログラム可能な論理デバイスを含む。
さらなる実施形態は、本明細書に記載される方法の1つを実行するためのコンピュータプログラムがインストールされているコンピュータを含む。
本発明によるさらなる実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを(例えば、電子的または光学的に)受信機に転送するように構成された装置またはシステムを含む。受信機は、例えば、コンピュータ、モバイルデバイス、メモリデバイスなどであり得る。装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを含み得る。
いくつかの実施形態では、プログラマブルロジックデバイス(例えば、フィールドプログラマブルゲートアレイ)を使用して、本明細書に記載されている方法の機能の一部またはすべてを実行することができる。いくつかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書で説明される方法の1つを実行するために、マイクロプロセッサと協働することができる。一般に、方法は、好ましくは、任意のハードウェア装置によって実行される。
上述の実施形態は、本発明の原理を単に例示するものである。本明細書に記載された構成および詳細の修正および変形は、当業者には明らかであろうことが理解される。したがって、差し迫った特許請求の範囲によってのみ限定され、本明細書の実施形態の説明および説明として提示された特定の詳細によって限定されないことが意図されている。
VI.参考文献
[1] Raphael Berner, Christian Brandli, Minhao Yang, S-C Liu, and Tobi Delbruck. A 240x180 120db 10mw 12us-latency sparse output vision sensor for mobile applications. In IEEE International Image Sensor Workshop, number EPFL-CONF-200451, pages 41-44, 2013.
[2] Gaozhan Cai, Bart Dierickx, Bert Luyssaert, Nick Witvrouwen, and Gerlinde Ruttens. Imaging sparse events at high speed. In IEEE International Image Sensor Workshop, 2015.
[3] Jens Doge, Christoph Hoppe, Peter Reichel, and Nico Peter. A 1 megapixel hdr image sensor soc with highly parallel mixed-signal processing. In IEEE International Image Sensor Workshop, 2015.
[4] A Dupret, B Dupont, M Vasiliu, B Dierickx, and A Defernez. Cmos image sensor architecture for high-speed sparse image content readout. In IEEE International Image Sensor Workshop, pages 26-28, 2009.
[5] Michael J Flynn. Very high-speed computing systems. Proceedings of the IEEE, 54(12):1901-1909, 1966.
[6] Yu Liu, Xuguang Guan, Yang Yang, and Yintang Yang. An asynchronous low latency ordered arbiter for network on chips. In 2010 Sixth International Conference on Natural Computation, volume 2, pages 962-966. IEEE, 2010.
[7] Steven M Nowick and Montek Singh. High-performance asynchronous pipelines: an overview. IEEE Design & Test of Computers, 28(5):8-22, 2011.
[8] Montek Singh and Steven M Nowick. High-throughput asynchronous pipelines for fine-grain dynamic datapaths. In Advanced Research in Asynchronous Circuits and Systems, 2000.(ASYNC 2000) Proceedings. Sixth International Symposium on, pages 198-209. IEEE, 2000.
[9] Montek Singh and Steven M Nowick. The design of high-performance dynamic asynchronous pipelines: high-capacity style. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 15(11):1270-1283, 2007.
[10] Montek Singh and Steven M Nowick. The design of high-performance dynamic asynchronous pipelines: lookahead style. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 15(11):1256-1269, 2007.
[11] J Sparso. Asynchronous circuit design - a tutorial. Chapters 1-8 in Principles of asynchronous circuit design-A systems Perspective', pages 1-152, 2006.

Claims (27)

  1. 各プロセス要素(PE)が直列に配置されたM個のステージを有する線形パイプライン(14a~14f)に接続される、プロセス要素(PE)であって、前記M個のステージのそれぞれはバッファ要素(14―1~14―M)を備え、前記バッファ要素(14―1~14―M)はデータビットシーケンスをバッファリングし、バッファリングされた前記データビットシーケンスを前記バッファ要素のうちの最初のバッファ要素(14―)から前記バッファ要素のうちの最後のバッファ要素(14―1)に転送するように構成される、プロセス要素(PE)と、
    直列に配置されたN個のパイプラインステージ要素(12a~12f)を含む線形メインパイプライン(12)と、を含む、データス(10)であって、
    前記各パイプラインステージ要素(12a~12f)は、それぞれの線形パイプライン(14a~14f)の前記最後のバッファ要素(14―1)に接続され、前記バッファリングされたデータビットシーケンスを1つ以上読み取り、読みだしたデータビットシーケンスをN個のパイプラインステージ要素(12a~12f)のうちの1つから前記N個のパイプラインステージ要素(12a~12f)のうちの次のパイプラインステージ要素に転送するように構成され、
    前記各パイプラインステージ要素(12a~12f)は、順次、前記読み取りを実行するように構成され、
    前記パイプラインステージ要素(12a~12f)は、前記N個のパイプラインステージ要素(12a~12f)のうちの前のパイプラインステージ要素から別のデータビットシーケンスを転送する前に、それぞれの最後のバッファ要素からすべてのバッファデータビットシーケンスを読み出して、前記読み出されたビットシーケンスを転送する前記線形メインパイプライン(12)によって連続的なデータストリームが生成されるように構成される、および/または
    前記パイプラインステージ要素(12a~12f)は、それぞれの最後のバッファ要素(14―1)から別のデータビットシーケンスを読み出す前に、前記N個のパイプラインステージ要素(12a~12f)のうちの前のパイプラインステージ要素からすべてのデータビットシーケンスを転送して、前記読み出されたデータビットシーケンスを転送する前記線形メインパイプライン(12)によって連続的なデータストリームが生成されるように構成される、データバス(10)。
  2. 前記N個のパイプラインステージ要素(12a~12f)は非同期パイプライン要素である、および/または、後続の2つのパイプラインステージ要素(12a~12f)は、データビットシーケンスの転送を開始するため、および/または、前のパイプラインステージ要素(12a~12f)から転送されるデータビットシーケンスを受信する能力を示すために、ハンドシェイク手順を実行するように構成される、請求項1に記載のデータバス(10)。
  3. 前記各パイプラインステージ要素(12a~12f)は、前のパイプラインステージ要素(12a~12f)からデータビットシーケンスを受け取るための第1のデータ入力と、前記最後のバッファ要素(14―1)からデータビットシーケンスを受け取るための第2のデータ入力とを含む、請求項1または請求項2に記載のデータバス(10)。
  4. 前記各パイプラインステージ要素(12a~12f)は、前記パイプラインステージ要素(12a~12f)のパイプラインコントローラ(60)によって制御されるラッチを備える、請求項3に記載のデータバス(10)。
  5. 前記ラッチは、マルチプレクサを備えるラッチである、請求項4に記載のデータバス(10)。
  6. 前記各ラッチは、トランジスタの第1および第2の差動ペアと、ドレイン接点を介して前記トランジスタの差動ペアに結合された2つのフィードバックインバータを備える、および/または
    前記最後のバッファ要素(14―1)からのデータ入力は前記第1の差動ペアの前記トランジスタのゲートコンタクトに接続され、前記前のパイプラインステージ要素(12a~12f)からのデータ入力は前記第2の差動ペアの前記トランジスタのゲートコンタクトに接続され、データ出力は第1および第2の差動ペアのドレイン接点に接続され、制御入力は前記トランジスタのソース接点に接続される、請求項4または請求項5に記載のデータバス(10)。
  7. 前記パイプラインステージ要素(12a~12f)は非同期で動作する、請求項1~請求項6のいずれか1項に記載のデータバス(10)。
  8. 前記各バッファ要素(14―1~14―M)は、前のバッファ要素が有するラッチまたは後のバッファ要素が有するラッチに少なくとも接続される、および/またはバッファコントローラ(40)によって制御される、ラッチを備える、請求項1~請求項7のいずれか1項に記載のデータバス(10)。
  9. 前記各ラッチ(35)は、トランジスタの差動ペアと、ドレイン接点を介して前記トランジスタの差動ペアに結合された2つのフィードバックインバータとを備える、および/または
    データ入力はトランジスタのゲート接点に接続され、データ出力はドレイン接点に接続され、制御入力は前記トランジスタのソース接点に接続される、請求項8に記載のデータバス(10)。
  10. 前記各バッファ要素(14―1~14―M)はバッファコントローラ(40)を備える、請求項1~請求項9のいずれか1項に記載のデータバス(10)。
  11. 隣接する2つのバッファ要素それぞれ有するバッファコントローラ(40)互いに接続されている、請求項10に記載のデータバス(10)。
  12. 前記バッファコントローラ(40)は、転送されるべきデータビットシーケンスが存在することを示す信号を前のバッファ要素(14―1~14―M)から受信するための第1の入力と、データビットシーケンスを受信する能力を示す信号を後続のバッファ要素(14―1~14―M)から受信するための第2の入力とを備える、および/または
    前記バッファコントローラ(40)は、転送されるデータビットシーケンスを受信する能力を示す信号を出力する第1の出力と、データビットシーケンスを転送する要求を示す信号を出力する第2の出力とを備える、請求項9~請求項11のいずれか1項に記載のデータバス(10)。
  13. 前記バッファコントローラ(40)は、前記第1の非対称C要素(40―M1)の出力と第2の出力との間に配置された遅延要素を備える、請求項12に記載のデータバス(10)。
  14. 前記バッファコントローラ(40)は、前記第1の非対称C要素(40―M1)の出力と前記第1の出力との間に配置されたインバータ要素を備える、請求項12または請求項13に記載のデータバス(10)。
  15. 前記各パイプラインステージ要素(12a~12f)はパイプラインコントローラ(60)を備える、請求項1~請求項14のいずれか1項に記載のデータバス(10)。
  16. 前記パイプラインコントローラー(60)は、転送されるべきデータビットシーケンスが存在することを示す信号(req_A)を、前のパイプラインステージ要素(12a~12f)から受信するための第1の入力と、データビットシーケンスを受信する機能を示す信号(rdy_i)を後続のパイプラインステージ要素(12a~12f)から受信するための第2の入力と、読み出されるべきデータビットシーケンスを含む信号(req_B)を前記最後のバッファ要素(14―1)から受信するための第3の入力とを含む、および/または
    前記パイプラインコントローラ(60)は、転送されるデータビットシーケンスを受信する能力を示す信号(rdy_A)を出力する第1の出力と、データビットシーケンスを転送する要求を示す信号(req_o)を出力する第2の出力とを備え、前記パイプラインコントローラ(60)は、前記データビットシーケンスを受信する能力を示す信号(rdy_B)を出力する第3の出力を備える、請求項15に記載のデータバス(10)。
  17. 前記パイプラインコントローラ(60)は、第1の非対称C要素(60―M1)および第2の非対称C要素(60―M2)を備える、請求項15または請求項16に記載のデータバス(10)。
  18. 前記第1の非対称C要素(60―M1)は、遅延要素を介して前記第2の出力に接続される、請求項17に記載のデータバス(10)。
  19. 前記パイプラインコントローラ(60)は、それぞれが反転出力を有し、それぞれの第1および第3の出力に接続されている第3および第4の非対称C要素を備える、請求項16、請求項17または請求項18に記載のデータバス(10)。
  20. 前記前記第3および第4のC要素は、アービターを介して第1の入力および第3の入力に接続され、前記アービターは、転送されるデータのデータソースとして、前記最後のバッファ要素(14―1)または前記前のパイプラインステージ要素(12a~12f)を選択するように構成される、請求項19に記載のデータバス(10)。
  21. 前記第1の非対称C要素は、アービターを介して第1の入力および第3の入力に接続され、前記アービターは、転送されるデータのデータソースとして、前記最後のバッファ要素(14―1)または前記前のパイプラインステージ要素(12a~12f)を選択するように構成される、請求項17に記載のデータバス(10)。
  22. 前記各パイプラインステージ要素は、パイプラインコントローラ(60)と、当該パイプラインコントローラ(60)によって制御されるラッチ(55)とを有し、各パイプラインステージ要素が有する前記ラッチ(55)は、隣接する他のパイプラインステージ要素が有するラッチ(55)と接続され、前記パイプラインコントローラ(60)による前記ラッチ(55)に対する前記制御は、前記アービターからの信号に基づいて行われる、請求項1~請求項21のいずれか1項に記載のデータバス(10)。
  23. 前記各パイプラインステージ要素(12a~12f)は複数のデータ入力を含む、請求項1~請求項22のいずれか1項に記載のデータバス(10)。
  24. 前記各プロセス要素(PE)はデータを生成するように構成される、請求項1~請求項23のいずれか1項に記載のデータバス(10)。
  25. 前記各プロセス要素(PE)はSIMDユニットのプロセス要素(PE)に接続される、請求項24に記載のデータバス(10)。
  26. 請求項1~請求項25のいずれか1項に記載のデータバス(10)を制御するための方法であって、前記方法は、
    前記N個のパイプラインステージ要素(12a~12f)のうちの前のパイプラインステージ要素から別のデータビットシーケンスを転送する前に、前記最後のバッファ要素(14―1)からすべてのバッファリングされたデータビットシーケンスまたは所定数のデータビットシーケンスを読み出すステップ、および/または
    前記最後のバッファ要素(14-1)から別のデータビットシーケンスを読み出す前に、前記N個のパイプラインステージ要素(12a~12f)のうちの前記前のパイプラインステージ要素からデータビットシーケンスを転送するステップを含み、
    前記読み出すステップは順次実行され、
    前記パイプラインステージ要素(12a~12f)は、前記N個のパイプラインステージ要素(12a~12f)のうちの前のパイプラインステージ要素から別のデータビットシーケンスを転送する前に、前記最後のバッファ要素(14―1)からすべてのバッファデータビットシーケンスを読み出して、前記読み出されたビットシーケンスを転送する前記線形メインパイプライン(12)によって連続的なデータストリームが生成されるように構成される、および/または
    前記パイプラインステージ要素(12a~12f)は、前記最後のバッファ要素(14―1)から別のデータビットシーケンスを読み出す前に、前記N個のパイプラインステージ要素(12a~12f)のうちの前のパイプラインステージ要素からすべてのデータビットシーケンスを転送して、前記読み出されたデータビットシーケンスを転送する前記線形メインパイプライン(12)によって連続的なデータストリームが生成されるように構成される、方法。
  27. コンピュータ上で動作するときに、請求項26に記載の方法を実行するためのプログラムが記憶されているコンピュータ可読デジタル記憶媒体。

JP2020528291A 2017-11-24 2017-12-06 データバス Active JP7228590B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17203607 2017-11-24
EP17203607.1 2017-11-24
PCT/EP2017/081743 WO2019101350A1 (en) 2017-11-24 2017-12-06 Data bus with multi-input pipeline

Publications (2)

Publication Number Publication Date
JP2021504811A JP2021504811A (ja) 2021-02-15
JP7228590B2 true JP7228590B2 (ja) 2023-02-24

Family

ID=60654635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020528291A Active JP7228590B2 (ja) 2017-11-24 2017-12-06 データバス

Country Status (5)

Country Link
US (1) US11294687B2 (ja)
EP (1) EP3714370B1 (ja)
JP (1) JP7228590B2 (ja)
KR (1) KR102460281B1 (ja)
WO (1) WO2019101350A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3714370B1 (en) 2017-11-24 2022-01-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Data bus with multi-input pipeline
CN114978104A (zh) * 2021-02-18 2022-08-30 北京京东方光电科技有限公司 数据互斥滤波电路及数据互斥滤波方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758139A (en) * 1993-10-21 1998-05-26 Sun Microsystems, Inc. Control chains for controlling data flow in interlocked data path circuits
US6085316A (en) * 1998-07-28 2000-07-04 Sun Microsystems, Inc. Layered counterflow pipeline processor with anticipatory control
US6556494B2 (en) * 2001-03-14 2003-04-29 Micron Technology, Inc. High frequency range four bit prefetch output data path
US6751129B1 (en) * 2002-05-21 2004-06-15 Sandisk Corporation Efficient read, write methods for multi-state memory
US6856270B1 (en) * 2004-01-29 2005-02-15 International Business Machines Corporation Pipeline array
CN101258463A (zh) * 2005-09-05 2008-09-03 Nxp股份有限公司 异步脉动流水线
WO2009060260A1 (en) * 2007-11-06 2009-05-14 Koninklijke Philips Electronics, N.V. Data processing arrangement, pipeline stage and method
US8949650B2 (en) * 2009-07-21 2015-02-03 Tadao Nakamura Processor embedded memory structure with lower energy consumption and high speed without memory bottleneck
TR201209797T2 (tr) * 2009-12-22 2013-01-21 Fehm� Bazlama�Ci C�Neyt Hızlı IP arama için sistolik dizilim mimarisi.
EP3714370B1 (en) 2017-11-24 2022-01-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Data bus with multi-input pipeline

Also Published As

Publication number Publication date
KR20200090874A (ko) 2020-07-29
JP2021504811A (ja) 2021-02-15
US20200348942A1 (en) 2020-11-05
US11294687B2 (en) 2022-04-05
EP3714370A1 (en) 2020-09-30
WO2019101350A1 (en) 2019-05-31
EP3714370B1 (en) 2022-01-12
KR102460281B1 (ko) 2022-10-31

Similar Documents

Publication Publication Date Title
Sjogren et al. Interfacing synchronous and asynchronous modules within a high-speed pipeline
US6128678A (en) FIFO using asynchronous logic to interface between clocked logic circuits
JP4384819B2 (ja) 弾性インターフェース装置およびそのための方法
JP4091941B2 (ja) クロック同期回路
JP6293322B2 (ja) 時間分割多重化された多重ポートメモリ
US6973078B2 (en) Method and apparatus for implementing low latency crossbar switches with integrated storage signals
JP7228590B2 (ja) データバス
US5535343A (en) Method and apparatus for generating write signals
CN118227527A (zh) Sdram控制器子系统的源同步分区
US9710012B2 (en) Timing optimized implementation of algorithm to reduce switching rate on high throughput wide buses
WO2023279341A1 (zh) 用于设计异步电路的方法和电子设备
Ono et al. A modular synchronizing FIFO for NoCs
US6640277B1 (en) Input staging logic for latching source synchronous data
JP2937326B2 (ja) 論理回路のテスト容易化回路
Simatic et al. New asynchronous protocols for enhancing area and throughput in bundled-data pipelines
US20150127865A1 (en) Method and apparatus use with interrupts
Hoppe et al. A High Speed Asynchronous Multi Input Pipeline for Compaction and Transfer of Parallel SIMD Data
US20180300263A1 (en) Interface from null convention logic to synchronous memory
US8254187B2 (en) Data transfer apparatus, and method, and semiconductor circuit
Swaminathan et al. Design and verification of an efficient WISHBONE-based network interface for network on chip
US6282149B1 (en) Circuit and method for synchronized data banking
Rodolfo et al. Quasi Delay Insensitive FIFOs: Design Choices Exploration and Comparison
Xiao et al. Low latency high throughout circular asynchronous FIFO
Hasan et al. All digital skew tolerant synchronous interfacing methods for high-performance point-to-point communications in deep sub-micron SoCs
Chaturvedi et al. Design of Asynchronous Circular FIFO Buffer for Asynchronous Network on Chips

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20200722

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221007

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20221007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20221007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221027

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20221121

C092 Termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C092

Effective date: 20221122

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20221122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230213

R150 Certificate of patent or registration of utility model

Ref document number: 7228590

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150