(57)【要約】  データバスは、プロセス要素と線形メインパイプラインで構成される。各プロセス要素は、Ｍ個のステージが直列に配置された線形パイプラインに結合され、Ｍ個のステージのそれぞれは、データビットシーケンスをバッファリングし、バッファリングされたデータビットシーケンスを最初のバッファ要素から最後のバッファ要素に転送するように構成されたバッファ要素を備える。線形メインパイプラインは、直列に配置されたＮ個のパイプラインステージ要素で構成される。各パイプラインステージ要素は、それぞれの線形パイプラインの最後のバッファ要素に接続され、各パイプラインステージ要素は、バッファされたデータビットシーケンスの１つまたは複数を読み出すように構成され、各パイプラインステージエレメントは、Ｎ個のパイプラインステージエレメントの１つから次のＮ個のパイプラインステージエレメントに読み出しデータビットシーケンスを転送する。【選択図】図１
2021504811.tif 000002
【特許請求の範囲】
【請求項１】
各プロセス要素（ＰＥ）が直列に配置されたＭ個のステージを有する線形パイプライン（１４ａ〜１４ｆ）に接続される、プロセス要素（ＰＥ）であって、前記Ｍ個のステージのそれぞれは、データビットシーケンスをバッファリングし、前記バッファリングされたデータビットシーケンスを最初のバッファ要素（１４−１〜１４−Ｍ）から最後のバッファ要素（１４−１〜１４−Ｍ）に転送するように構成されたバッファ要素（１４−１〜１４−Ｍ）を含むプロセス要素（ＰＥ）と、
直列に配置されたＮ個のパイプラインステージ要素（１２ａ〜１２ｆ）を含む線形メインパイプライン（１２）と、を含み、
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は、それぞれの線形パイプライン（１４ａ〜１４ｆ）の前記最後のバッファ要素（１４−１〜１４−Ｍ）に接続され、前記バッファリングされたデータビットシーケンスを1つ以上読み取り、読みだした前記データビットシーケンスをＮ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの１つから前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの次のパイプラインステージ要素に転送するように構成されている、データバス（１０）。
【請求項２】
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は、順次、前記読み出しを実行するように構成される、請求項１に記載のデータバス（１０）。
【請求項３】
前記パイプラインステージ要素（１２ａ〜１２ｆ）は、前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前のパイプラインステージ要素から別のデータビットシーケンスを転送する前に、それぞれの前記バッファ要素（１４−１〜１４−Ｍ）のうちの最後のバッファ要素からすべてのバッファデータビットシーケンスを読み出すように構成される、および／または
前記パイプラインステージ要素（１２ａ〜１２ｆ）は、それぞれの最後のバッファ要素（１４−１〜１４−Ｍ）から別のデータビットシーケンスを読み出す前に、前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前のパイプラインステージ要素からすべてのデータビットシーケンスを転送するように構成される、請求項２に記載のデータバス（１０）。
【請求項４】
前記線形メインパイプライン（１２）は、連続データストリームが生成されるように、前記読み出されたデータビットシーケンスを転送する、請求項１から請求項３のいずれか１項に記載のデータバス（１０）。
【請求項５】
前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）は非同期パイプライン要素である、および／または、後続の２つのパイプラインステージ要素（１２ａ〜１２ｆ）は、データビットシーケンスの転送を開始するため、および／または、前のパイプラインステージ要素（１２ａ〜１２ｆ）から転送されるデータビットシーケンスを受信する能力を示すために、ハンドシェイク手順を実行するように構成される、請求項１から請求項４のいずれか１項に記載のデータバス（１０）。
【請求項６】
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は、前のパイプラインステージ要素（１２ａ〜１２ｆ）からデータビットシーケンスを受け取るための第１のデータ入力と、前記最後のバッファ要素（１４−１〜１４−Ｍ）からデータビットシーケンスを受け取るための第２のデータ入力とを含む、請求項１から請求項５のいずれか１項に記載のデータバス（１０）。
【請求項７】
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は、前記パイプラインステージ要素（１２ａ〜１２ｆ）のパイプラインコントローラ（６０）によって制御されるラッチ（３５）を備える、請求項６に記載のデータバス（１０）。
【請求項８】
前記ラッチ（３５）は、マルチプレクサを備えるラッチ（３５）である、請求項７に記載のパイプライン。
【請求項９】
前記各ラッチ（３５）は、トランジスタの第１および第２の差動ペアと、ドレイン接点を介して前記トランジスタの差動ペアに結合された２つのフィードバックインバータを備える、および／または
前記最後のバッファ要素（１４−１〜１４−Ｍ）のデータ入力は、前記第１の差動ペアの前記トランジスタのゲートコンタクトに接続され、前記前のパイプラインステージ要素（１２ａ〜１２ｆ）のデータ入力は、前記第２の差動ペアの前記トランジスタのゲートコンタクトに接続され、データ出力は第１および第２の差動ペアのドレイン接点に接続され、制御入力は前記トランジスタのソース接点に接続される、請求項７または請求項８に記載のパイプライン。
【請求項１０】
前記パイプラインステージ要素（１２ａ〜１２ｆ）は非同期で動作する、請求項１から請求項９のいずれか１項に記載のデータバス（１０）。
【請求項１１】
前記各バッファ要素（１４−１〜１４−Ｍ）は、前記前または前記後のラッチ（３５）のラッチに少なくとも接続される、および／またはバッファコントローラ（４０）によって制御される、ラッチ（３５）を備える、請求項１から１０のいずれか１項に記載のデータバス（１０）。
【請求項１２】
前記各ラッチ（３５）は、トランジスタの差動ペアと、ドレイン接点を介して前記トランジスタの差動ペアに結合された２つのフィードバックインバータとを備える、および/または
データ入力はトランジスタのゲート接点に接続され、データ出力はドレイン接点に接続され、制御入力は前記トランジスタのソース接点に接続される、請求項１１に記載のデータバス（１０）。
【請求項１３】
前記各バッファ要素（１４−１〜１４−Ｍ）はバッファコントローラ（４０）を備える、請求項１から請求項１２のいずれか１項に記載のデータバス（１０）。
【請求項１４】
前記２つの後続のバッファコントローラ（４０）が互いに接続されている、請求項１３に記載のデータバス（１０）。
【請求項１５】
前記コントローラは、第１の非対称Ｃ要素（４０−Ｍ１）および第２の非対称Ｃ要素（４０−Ｍ２）を含む、および／または
前記バッファコントローラ（４０）は、２つの正の入力および２つの負の入力を有する第１の非対称Ｃ要素（４０−Ｍ１）と、１つの正の入力および１つの中性入力ならびに反転出力を有する第２の非対称Ｃ要素（４０−Ｍ２）とを含む、請求項１３または請求項１４に記載のデータバス（１０）。
【請求項１６】
前記バッファコントローラ（４０）は、転送されるデータビットシーケンスを示す信号を前のバッファ要素（１４−１〜１４−Ｍ）から受信するための第１の入力と、データビットシーケンスを受信する能力を示す信号を後続のバッファ要素（１４−１〜１４−Ｍ）から受信するための第２の入力とを備える、および/または
前記バッファコントローラ（４０）は、転送されるデータビットシーケンスを受信する能力を示す信号を出力する第１の出力と、データビットシーケンスを転送する要求を示す信号を出力する第２の出力とを備える、請求項１２から請求項１５のいずれか１項に記載のデータバス（１０）。
【請求項１７】
前記バッファコントローラ（４０）は、２つの正の入力および２つの負の入力を有する第１の非対称Ｃ要素（４０−Ｍ１）と、１つの正の入力および１つの中性入力ならびに反転出力を有する第２の非対称Ｃ要素（４０−Ｍ２）を含み、
前記第２の非対称Ｃ要素（４０−Ｍ２）は、その中性入力によって前記第２の出力に、その正の入力によって前記第２の入力に接続され、また
前記第１の非対称Ｃ要素は、その負の入力によって前記第２の非対称Ｃ要素の出力に、その正の入力によって前記第１の入力に接続され、その出力によって前記第２の出力に接続する、請求項１６に記載のデータバス（１０）。
【請求項１８】
前記バッファコントローラ（４０）は、前記第１の非対称Ｃ要素（４０−Ｍ１）の出力と第２の出力との間に配置された遅延要素を備える、請求項１７に記載のデータバス（１０）。
【請求項１９】
前記バッファコントローラ（４０）は、前記第１の非対称Ｃ要素（４０−Ｍ１）の出力と前記第１の出力との間に配置されたインバータ要素を備える、請求項１７または請求項１８に記載のデータバス（１０）。
【請求項２０】
前記各パイプラインステージ要素（１２ａから１２ｆ）はパイプラインコントローラ（６０）を備える、請求項１から請求項１９のいずれか１項に記載のデータバス（１０）。
【請求項２１】
前記パイプラインコントローラー（６０）は、転送されるデータビットシーケンスを示す信号（ｒｅｑ＿Ａ）を、前のパイプラインステージ要素（１２ａ〜１２ｆ）から受信するための第１の入力と、データビットシーケンスを受信する機能を示す信号（ｒｄｙ＿ｉ）を後続のパイプラインステージ要素（１２ａ〜１２ｆ）から受信するための第２の入力と、読み出されるデータビットシーケンスを示す最信号（ｒｅｑ＿Ｂ）を後のバッファ要素（１４−１から１４−Ｍ）から受信するための第３の入力とを含む、および／または
前記パイプラインコントローラ（６０）は、転送されるデータビットシーケンスを受信する能力を示す信号（ｒｄｙ＿Ａ）を出力する第１の出力と、データビットシーケンスを転送する要求を示す信号（ｒｅｑ＿ｏ）を出力する第２の出力とを備え、前記パイプラインコントローラ（６０）は、前記データビットシーケンスを読み出す能力を示す信号（ｒｄｙ＿Ｂ）を出力する第３の出力を備える、請求項２０に記載のデータバス（１０）。
【請求項２２】
前記パイプラインコントローラ（６０）は、第１の非対称Ｃ要素（６０−Ｍ１）および第２の非対称Ｃ要素（６０−Ｍ２）を備える、請求項２０または請求項２１に記載のデータバス（１０）。
【請求項２３】
前記各パイプラインコントローラー（６０）は、２つの正の入力および２つの負の入力を持つ第１非対称Ｃ要素（６０−Ｍ１と）、１つの正の入力および１つの中性入力ならびに反転出力を持つ第２非対称Ｃ要素（６０−Ｍ２）を含み、
前記第２の非対称Ｃ要素（６０−Ｍ２）は、その中性入力によって前記第２の出力に、その正の入力によって前記第２の入力に接続され、
前記第１の非対称Ｃ要素（６０−Ｍ１）は、その負の入力によって前記第２の非対称Ｃ要素（６０−Ｍ２）の出力に、その正の入力によって前記第１の入力および前記第３の入力に接続され、その出力によって前記第２の出力に接続する、請求項２２に記載のデータバス（１０）。
【請求項２４】
前記第１のＣ要素（６０−Ｍ１）は、遅延要素を介して前記第２の出力に接続される、請求項２３に記載のデータバス（１０）。
【請求項２５】
前記パイプラインコントローラ（６０）は、それぞれが反転出力を有し、それぞれの第１および第３の出力に接続されている第３および第４の非対称Ｃ要素を備える、請求項２２、２３または２４に記載のデータバス（１０）。
【請求項２６】
前記前記第３および第４のＣ要素は、アービターを介して前記第１および第３の入力に接続され、前記アービターは、転送されるデータのデータソースとして、前記最後のバッファ要素（１４−１〜１４−Ｍ）または前記前のパイプラインステージ要素（１２ａ〜１２ｆ）を選択するように構成される、請求項２５に記載のデータバス（１０）。
【請求項２７】
前記第１のＣ要素は、アービターを介して前記第１および第３の入力に接続され、前記任意の要素アービターは、転送されるデータのデータソースとして、前記最後のバッファ要素（１４−１〜１４−Ｍ）または前記前のパイプラインステージ要素（１２ａ〜１２ｆ）を選択するように構成される、請求項２１から２６のいずれか１項に記載のデータバス（１０）。
【請求項２８】
前記各パイプライン要素は、前記前または後のラッチの前記ラッチに少なくとも接続される、および／または前記パイプラインコントローラ（６０）によって制御される、ラッチを含み、前記パイプラインコントローラ（６０）は、前記アービターのための入力を有するエンティティを介して前記ラッチに接続されている、請求項２０から請求項２７のいずれか１項に記載のデータバス（１０）。
【請求項２９】
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は複数のデータ入力を含む、請求項１から請求項２８のいずれか１項に記載のデータバス（１０）。
【請求項３０】
前記各プロセス要素（ＰＥ）はデータを生成するように構成される、請求項１から請求項２９のいずれか１項に記載のデータバス（１０）。
【請求項３１】
前記各プロセス要素（ＰＥ）はＩＭＤユニットのプロセス要素（ＰＥ）に接続される、請求項３０に記載のデータバス（１０）。
【請求項３２】
請求項１から請求項３１のいずれか１項に記載のデータバス（１０）を制御するための方法であって、前記方法は、
前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前のパイプラインステージ要素から別のデータビットシーケンスを転送する前に、前記バッファ要素（１４−１〜１４−Ｍ）のそれぞれの最後からすべてのバッファリングされたデータビットシーケンスまたは所定数のデータビットシーケンスを読み出すステップ、および／または
前記それぞれの最後のバッファ要素（１４−１〜１４−Ｍ）から別のデータビットシーケンスを読み出す前に、前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前記前のパイプラインステージ要素からデータビットシーケンスを転送するステップを含む、方法。
【請求項３３】
コンピュータ上で動作するときに、請求項３２に記載の方法を実行するためのプログラムが記憶されているコンピュータ可読デジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データバスおよびその制御方法に関する。好ましい実施形態は、並列ＳＩＭＤデータの圧縮および転送のための高速非同期マルチ入力パイプラインに関する。
【背景技術】
【０００２】
プログラム可能な高度に並列化された信号処理を備えたイメージセンサ（所謂、Ｖｉｓｉｏｎ  Ｓｙｓｔｅｍｓ  ｏｎ  Ｃｈｉｐ）は、センサ自体に直接、計算コストの高いタスクを実行できる。したがって、出力データの量を関連する機能のみに制限することが可能です。したがって、出力データの量を関連する機能のみに制限することが可能である。したがって、出力は必ずしもイメージではないが、たとえば 画像内の特定の特徴の位置と特徴的なプロパティとなる。機能の位置と数は不明であるため、このような機能を読み取ることは大きな課題となる。通常、フィーチャの数、およびその位置と発生時間は不明です。参考文献では、さまざまなセンサが提案されており、これらは特にイベントベースの読み出し用に最適化されており、ほとんどの場合、ピクセルレベルで並列処理を提供する（参考文献［１］、［２］、［４］を参照）。機能ベースの読み出しを容易にするために、読み出しパスは、データの順次スキャンに制限されるのではなく、イベントに反応して伝播できる必要がある。Ｄｏｅｇｅ等が発表したＶｉｓｉｏｎ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＶＳｏＣ）（参考文献［３］を参照）は、従来の同期バスを使用して、単一命令複数データ（ＳＩＭＤ）ユニットから列並列データを読み出している（参考文献［５］を参照）。最大１００ＭＨｚの周波数で動作し、ＳＩＭＤアレイのすべての列、または少なくとも連続した領域のいずれかの順次データ読み出しを可能にしている。ただし、特徴を抽出すると、データ長が変化するスパースデータと連続データストリームが生成される可能性がある。このため、特にＳＩＭＤユニットのプロセッサ要素（ＰＥ）の一部のみが実際にデータを提供している場合は、このようなアプローチが特定のアプリケーションで機能しない。参考文献で提案されている読み出し方式は、連続データストリームまたは空間的にエンコードされたイベントに基づいているが、両方のシナリオに同様に適用できるシステムはない。従来の同期バスや特別なイベントベースの読み出しパスは、このようなシステムには適していない。完全な画像、およびフィーチャ座標のようなスパースデータを転送する必要がある。したがって、改善されたアプローチが必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、効率的な方法で連続データと疎データの両方の転送を可能にするアプローチを提供することである。
【課題を解決するための手段】
【０００４】
目的は、独立請求項の主題によって解決される。
【０００５】
線形メインパイプラインは、直列に配置されたＮ個のパイプラインステージ要素で構成される。各パイプラインステージ要素は、それぞれの線形パイプラインの最後のバッファ要素に接続され、そして、バッファされたデータビットシーケンスの１つを読み出し、読み出したデータビットシーケンスをＮ個のパイプラインステージ要素の１つから次のＮ個のパイプラインステージ要素に転送するように構成されている。
【０００６】
一実施形態は、高速で両方の読み出しモードをサポートする非同期パイプラインに基づく読み出し経路を提供する。本発明は、データバスまたは読み出し経路が２つの異なるエンティティによって形成され得るという原理に基づいている。最初のエンティティは、Ｎ個のステージを持つメインパイプラインを形成する、いわゆるパイプラインステージ要素である。各ステージは、前のパイプラインステージ要素から、またはそれぞれのステージに割り当てられ、パイプラインステージ要素に結合された線形パイプラインからデータを転送するように構成された１つのパイプラインステージ要素を含む。Ｎ個の線形パイプラインがデータバスの２番目のエンティティを形成し、１つの線形パイプラインが１つのパイプラインステージ要素に割り当てられる。好ましい実施形態によれば、パイプラインステージ要素のロジックは、同じ入力から、すなわち前のパイプラインステージ要素から、または、それぞれの入力を介してデータを受信する限り、線形パイプラインから、後続のパイプラインステージ要素にデータを転送する（後続のパイプラインステージ要素がデータを受信する準備ができている場合）。Ｎ個のステージを構成するメインの線形パイプラインに沿って、各パイプラインステージの要素はバッファとして機能する。同様に、線形パイプラインはＮ個のステージのバッファ要素で構成されるため、線形パイプラインに沿って線形パイプラインがバッファとして機能する。この操作方法により、使用されている操作モードでデータソースから独立した連続データフローを生成できるため、連続データとスパースデータを低レイテンシで高速に読み取ることができる。提示された方法は、シリアル化によって、データストリーム内に制御情報を格納せずに任意のデータワード幅を許可するという利点がある。
【０００７】
実施形態によれば、パイプラインステージ要素は、線形パイプラインおよび／または前のパイプラインステージ要素の読み出しを順次実行する。つまり、各パイプラインステージ要素は、Ｎ個のパイプラインステージ要素の前からの別のデータビットシーケンスを転送する前に、それぞれの最後のバッファ要素からすべてのバッファされたデータビットシーケンスを読み出すか、またはその逆であり、それぞれの最後のバッファ要素から別のデータビットシーケンスを読み出す前に、Ｎ個のパイプラインステージ要素の前のすべてのデータビットシーケンスを転送する。このアプローチにより、線形メインパイプラインによって連続的なデータストリームを生成できる。完全を期すために、実施形態によれば、各パイプラインステージ要素は、前のパイプラインステージ要素からデータビットシーケンスを受信するための第１のデータ入力と、最後のバッファ要素からデータビットシーケンスを受信するための第２のデータ入力とを備えている。データフローを制御するために、２つの入力を切り替えるようにパイプラインステージ要素を構成できる。
【０００８】
実施形態によれば、パイプラインステージ要素は、非同期パイプラインステージ要素であり、ここで、後続の２つのパイプラインステージ要素は、データビットシーケンスの転送を開始するため、または前のパイプラインステージ要素から転送されるデータビットシーケンスを受信する機能を示すために、いわゆるハンドシェイク手順を実行するように構成されている。このハンドシェイク手順は、実施形態によれば、パイプラインステージ要素のコントローラによって実行され得る。詳細には、各パイプラインステージ要素は、ラッチと、ラッチおよび特にデータフローを制御するコントローラとによって形成され得る。例えば、ラッチは、ラッチまたはマルチプレクサを含むラッチであり得る。一実施形態によれば、ラッチは、トランジスタの２つの差動ペアおよび２つのフィードバックインバータによって形成され得る。最後のバッファ要素のデータ入力は、第１の差動ペアのトランジスタのゲート接点に接続され、前のパイプラインステージ要素のデータ入力は、第２の差動ペアのトランジスタのゲート接点に接続される。データ出力は、第１および第２の差動ペアのドレイン接点に接続され、制御入力は、トランジスタのソース接点に接続される。ここで、バッファ要素の主な構造は、実施形態によれば、ラッチと、ラッチおよび特にデータフローを制御するためのコントローラとを含むため、非常に類似していることに留意されたい。バッファのラッチは、たとえば、トランジスタの差動ペアと２つのフィードバックインバータのみで構成できるため、複雑さが軽減される。データ入力はトランジスタの接点を得るために接続され、このデータ出力はドレイン接点に接続される。制御入力は、トランジスタのソース接点に接続されている。
【０００９】
実施形態によれば、通常、後続または前のバッファコントローラに接続されるバッファコントローラは、第１の非対称Ｃ要素および第２の非対称Ｃ要素によって実装され得る。この第１の非対称Ｃ要素は、２つの正および２つの負入力を含み得、第２の非対称Ｃ要素は、１つの正および１つのニュートラル入力ならびに反転出力を含み得る。
【００１０】
実施形態によれば、バッファコントローラは、転送されるデータビットシーケンスを示す前のバッファ要素から信号を受信するための第１の入力と、データビットシーケンスを受信する能力を示す後続のバッファ要素から信号を受信するために転送される第２の入力とを備える。バッファコントローラはさらに、転送されるデータビットシーケンスを受信する能力を示す信号を出力する第１の出力と、データビットシーケンスを転送する要求を示す信号を出力する第２の出力とを備える。好ましい実施形態によれば、第２の非対称Ｃ要素は、その中性入力が第２の出力に接続され、その正の入力が第２の入力に接続され、第１の非対称Ｃ要素は、その負の入力が第２の非対称Ｃ要素の出力に接続され、その正の入力が第１の入力に接続され、その出力が第２の出力に接続される。さらなる実施形態によれば、バッファコントローラは、第１の非対称Ｃ要素の出力と第２の出力との間に配置され得る遅延要素を備え得る。さらに、バッファコントローラは、第１の非対称Ｃ要素の出力と第１の出力との間に配置されたインバータ要素を備えることができる。
【００１１】
実施形態によれば、パイプラインコントローラは、第１の非対称Ｃ要素および第２の非対称Ｃ要素によって形成され得る。第１の非対称Ｃ要素は、２つの正および２つの負入力を含むことができ、第２の非対称Ｃ要素は、１つの正、１つの中性入力および反転出力を含む。実施形態によれば、パイプラインコントローラは、転送されるデータビットシーケンスを示す前のパイプラインステージ要素からの信号を受信するための第１の入力と、データビットシーケンスを受信する機能を示す後続のパイプラインステージ要素から信号を受信するための第２入力と、読み出されるデータビットシーケンスを示す最後のバッファ要素から信号を受け取るための第３の入力と、を含む。パイプラインコントローラはさらに、転送されるべきデータビットシーケンスを受信する能力を示す信号を出力する第１の出力と、データビットシーケンスを転送する要求を示す信号を出力する第２の出力と、データビットシーケンスを読み取る能力を示す信号を出力する３番目の出力と、を含む。実施形態によれば、第２の非対称Ｃ要素は、その中性入力が第２の出力に接続され、その正の入力が第２の入力に接続される。最初の非対称Ｃ要素は、負の入力で２番目の非対称Ｃ要素の出力に接続され、正の入力で１番目の入力と３番目の入力に接続される。さらに、その出力は２番目の出力に接続されている。第１および第３の入力への接続は、転送されるデータのステージリソースとして最後のバッファ要素または前のパイプラインステージ要素を選択するように構成されたアービターを使用して行うことができる。さらなる実施形態によれば、パイプラインコントローラは、第１のＣ要素と第２の出力との間に配置された遅延要素を備え得る。別の実施形態によれば、パイプラインコントローラは、第３および第４の非対称Ｃ要素を含み、それぞれが反転出力を有し、それぞれの第１および第３の出力に接続されている。ここで、第３および第４のＣ要素は、上述のアービターを介して第１および第３の入力に接続される。アービターは最後のバッファ要素または前のパイプラインステージ要素をデータソースとして選択する目的を持ち、３番目と４番目のＣ要素は後続のパイプラインステージ要素を示す信号を出力する目的があり、入力の1つからのデータを転送することができ、入力の１つからの情報は信号を介して与えられる。パイプラインステージコントローラに関して、それは、さらなる実施形態によれば、アービターへの入力を有し、ラッチをドリルするように構成されたエンティティを含み得、それにより、第１データ入力または第２データ入力を選択することに留意されたい。
【００１２】
実施形態によれば、ラッチおよびコントローラを有するパイプラインステージ要素の上記の原理は、複数の、すなわち３つより多い入力を編成することができるように強化することができることに留意されたい。
【００１３】
別の実施形態は、データバスを制御する方法を提供する。この方法は、Ｎ個のパイプラインステージ要素の前から別のデータビットシーケンスを転送する前に、バッファ要素のそれぞれの最後からすべてのバッファリングされたデータビットシーケンスまたは所定数のデータビットシーケンスを読み出すステップを含む。そして、それぞれの最後のバッファ要素から別のデータビットシーケンスを読み出す前に、Ｎ個のパイプラインステージ要素の前からのデータビットシーケンスを転送する。この方法は、実施形態によれば、コンピュータプログラムによって実行することができる。
【００１４】
以下、本発明の実施形態は、添付の図面を参照して続いて説明される。
【図面の簡単な説明】
【００１５】
【図１】図１は、基本的な実施形態による読み出し経路の概略構造を示す図である。
【図２】図２は、一実施形態による、スパースデータを伴う読み出し手順を概略的に示す図である。
【図３】図３は、一実施形態によるダブルワード長のスパースデータを伴う読み出し手順を概略的に示す図である。
【図４ａ】図４ａは、一実施形態による、線形パイプラインおよび対応するパイプラインコントローラの概略ブロック図である。
【図４ｂ】図４ｂは、一実施形態による、線形パイプラインおよび対応するパイプラインコントローラの概略を示す図である。
【図５ａ】図５ａは、一実施形態によるデータ経路のラッチ実装を概略的に示す図である。
【図５ｂ】図５ｂは、一実施形態によるデータ経路のラッチ実装を概略的に示す他の図である。
【図６】図６は、一実施形態によるマルチ入力パイプラインの概略ブロック図である。
【図７】図７は、一実施形態による、チャネル保持機能を備えたチャネル選択のためのアービターの概略ブロック図である。
【図８】図８は、一実施形態による２入力パイプラインコントローラの概略図である。
【図９】図９は、実施形態の測定検査チップの概略構成を示す図である。
【図１０】図１０は、測定されたフォワードレイテンシとサイクルタイムを、電源電圧の関数として示す図である。
【図１１】図１１は、供給電圧の関数として測定された消費電力を示す図である。
【図１２】図１２は、異なる非同期パイプラインの比較を示す表である。
【発明を実施するための形態】
【００１６】
Ｉ.はじめに
提案された非同期パイプラインは、高速のスパースデータ読み出しを可能にするだけでなく、連続データの転送も可能にするものと想定されている。
【００１７】
詳細な説明は次のように構成されている。セクションＩＩでは、読み出しパスの構造を示し、特定の読み出しモードについて説明する。ハードウェアの実装については、セクションＩＩＩで詳しく説明する。テストチップの結果が評価され、セクションＩＶの最新技術と比較される。最後に、セクションＶで結論を示す。
【００１８】
以下では、同一または類似の機能を有する要素に同一の参照番号が付与されている。
【００１９】
ＩＩ．読み出し経路の構造
図１は、２つの部分に分割された読み出し経路／データバス１０の主要な構造を示す。読み出し経路１０は、線形メインパイプライン１２を形成するように直列に配置されたＮ個のパイプラインステージ１２ａ、１２ｂ、１２ｃ、１２ｄ、１２ｅおよび１２ｆを含む。線形メインパイプライン１２は、Ｎ個のパイプラインステージを有し、直角に走る。なお、各パイプラインステージ要素にはＰＳ２のマークが付けられており、各パイプラインステージ要素１２ａ〜１２ｈに２つの入力があることを示している。1つは前のパイプラインステージ要素、たとえば１２ａ（パイプラインステージ要素１２ｂを見た場合）、もう１つは参照番号１４ａ〜１４ｆでマークされたいわゆる線形パイプラインである。
【００２０】
読み出し経路１０の他の部分は、メインパイプライン１２に垂直に配置され、それぞれのパイプラインステージ要素１２ａ〜１２ｆに結合されたＮ個の線形パイプライン１４ａ〜１４ｆによって形成される。各線形パイプラインは、参照番号１４−１、１４−２、１４−ＭでマークされたＭステージ／Ｍバッファ要素で構成される。バッファ要素はＰＳ１でマークされている。これは、各バッファ要素が前のバッファ要素の１つの入力、たとえば１４−２（１４−１を参照する場合）を含むためである。
【００２１】
データバス１０は言い換えれば、同じことは、各ステージ１２ａ〜１２ｆがＮ×Ｍ行列または、詳細には、ＮｘＭ＋１行列を形成するようにＮ個のバッファ要素を有する別の線形パイプライン１４ａ〜１４ｆに結合されるときにＮ個のステージを含む線形メインパイプライン１２によって実行される。各バッファ要素１４−１から１４−Ｍは、データをバッファするように構成されたラッチと、線形パイプライン１４ａ〜１４ｆの要素を通るバッファおよびデータフローを制御するためのコントローラとを備え得る。最初のバッファ要素１４−Ｍは、ＰＥによってマークされたプロセス要素からデータビットシーケンスを受け取り、可能であれば、受け取ったデータビットシーケンスを最後のバッファ要素１４−１まで転送する。パイプラインステージ要素１２ａ〜１２ｆは、また、バッファとしてのラッチと、前のパイプラインステージ要素から、または対応する線形パイプライン１４ａ〜１４ｆの最後のバッファ要素１４−１からのバッファおよびデータフローを制御するコントローラとを備えてもよい。各パイプラインステージ要素１２ａ〜１２ｆ、または、特に、それぞれのラッチは、対応する最後のバッファ要素１４−１に結合されるからである。
【００２２】
これで図１の実施形態の構造が説明されたので、機能性を以下で説明する。各ＰＥには、２つの入力（ＰＳ２）を備えた専用パイプラインステージが割り当てられ、ＰＥのローカルデータバッファと以前のＰＳ２の両方からデータを取得できる。データバス幅Ｂはすべての要素で同じである。ＶＳｏＣでは、３つの読み出しモードが考えられる。
【００２３】
各ＰＥはデータを提供する。すべてのデータが順次読み取られる。
２）不明な数のＰＥがデータを提供し、パイプラインがデータを提供しなくなるまで読み取られる。
３）未知の数のＰＥがデータを提供し、それは継続的に読み取られます。ＰＥの様々な処理ステップからのデータストリームが混在する可能性がある。
【００２４】
最初のモードは、完全な画像情報を読み取る場合に使用される。ここで、各プロセス要素１２ａ〜１２ｆは、選択された入力からその時点までのすべてのデータを転送することができ、それ以上のデータビットシーケンスは受信されない。例えば、プロセス要素１２ｅは、線形パイプライン１４ｅのバッファ要素１４−１〜１４−Ｍに格納されているすべてのデータビットシーケンスをステージ要素１２ｆに読み出す。パイプラインステージ要素１２ｆは、シーケンスごとにデータビットシーケンスを受け取り、それを次の要素または出力に転送する。線形パイプライン１４ｅがそれ以上のデータビットシーケンスを持たない場合、パイプラインステージ要素１２ｅの入力は、パイプラインステージ要素１２ｄからデータビットシーケンスを受信するように切り替わる。ここで、パイプラインステージ要素１２ｄを介して受信されたすべてのパイプラインステージ要素は、パイプラインステージ要素１２ｅによってパイプラインステージ要素１２ｆに転送される。ここで、データビットシーケンスは、例えば、前のパイプラインステージ要素１２ｃから、または対応する線形パイプライン１４ｄから、パイプラインステージ要素１２ｄによって受信され得る。
【００２５】
２番目と３番目のモードでは、スパースデータ（疎データ）、例えば検出された特徴の座標がある。これらのモードについては、図２および図３を参照して説明する。
【００２６】
図２は、第２のケースにおける読み出しプロセスを例示的に示している。最初のステップで一部のＰＥから提供されたデータは、それぞれのＰＳ２に転送され（ステップ２）、最後に圧縮される（ステップ３）。パイプラインは、不明な長さの連続したデータストリームを保持するようになる。これは、パイプラインの端にあるインターフェイスを介して読み取ることができる。
【００２７】
パイプラインのビット幅Ｂの倍数のデータワードが出力される場合、簡単な解決策は単にビット幅を増やすことである。ただし、これにより、より多くのストレージ要素が必要になるため、面積とエネルギー消費量が増加する。したがって、ビット幅Ｂは、最小のデータスループット要件が満たされるように選択する必要がある。固定ビット幅Ｂの場合、より大きなワード幅（２Ｂ、３Ｂなど）がシリアル化されてから、パケットとして読み取られる。この目的のために、各PEはローカルバッファに最大Ｍ個の要素を格納する。これらの要素は、読み出しパスへの転送中は隣接したままになる。
【００２８】
図３は、パイプラインビット幅の２倍のワードの圧縮を例示的に示している。最初のステップでは、ＰＥはそれぞれ２つのデータ要素を提供する。２番目のステップでは、データがＰＳ２に転送されます。最後に、３番目のステップで、隣接するデータパケットが圧縮される。
【００２９】
提案されているパイプライン構造は、同期と非同期の両方で実装できる。ただし、特に圧縮と読み取りモード３の場合、非同期実装はいくつかの理由で適している。
【００３０】
・グローバル高速クロック信号（〜１ＧＨｚ）は必要ない。このような信号を低スキューでルーティングするには、大きなバッファツリーとかなりの電力消費が必要である。
・同期実装とは対照的に、データ依存（固有のクロックゲーティング）であるため、平均的なケースではエネルギー要件は低くなる。
・グローバルクロック信号がないため、消費電流は時間の経過とともに継続的に分散される。
最後の２つのポイントは、ＶＳｏＣで発生するため、非常に長いパイプライン長Ｎで特に重要である。
【００３１】
ＩＩＩ．ハードウェアの実装
Ａ.線形パイプライン
図４に関して、バッファ要素１４−Ｍ、１４−Ｍ＋１、１４−Ｍ−１（図１の１４−１、１４−２および１４−Ｍに対応する）の実装について説明する。図４の説明は、各バッファ要素１４−１〜１４−Ｍが、バッファコントローラ４０と、バッファコントローラ４０によって制御される対応するラッチ３５（信号１ｅを参照。）を備えるという仮定に基づいて行われる。Ｍ（Ｍ−１およびＭ＋１）個のステージのラッチ３５は、前のラッチ３５−Ｍ−１（例えば、信号Ｄ）からデータビットシーケンスを受信するために互いに接続される。Ｍ個のステージ（Ｍ−１およびＭ＋１）のバッファコントローラ４０は、２つの信号経路を介して互いに接続されている。１つはプロセスコントローラー４０が前のコントローラからデータ（信号ｒｄｙを参照。）を受信する準備ができていることを示し、もう１つはデータを転送するために次のコントローラを使用することを示す（信号ｒｅｑを参照。）。次に、非同期パイプラインステージの基本構造の機能は、パイプラインコントローラー（ＰＣ）で構成され、関連するデータパスについて説明する。
【００３２】
パイプライン構造は、いくつかのステージの連結によって形成されます。たとえば、３個のステージパイプラインを図４ａに示す。パイプラインを介して転送されたデータは、それぞれのＰＣによって制御されるラッチに保持される。
【００３３】
非同期パイプラインは、クロック信号によるグローバル同期ではなく、連続するパイプラインステージ間のハンドシェイク信号によるローカル同期があるため、際立っている。ハンドシェイク信号の生成と処理は、ＰＣによって実行される。参考文献では、多くの実装が提案されており、ＮｏｗｉｃｋおよびＳｉｎｇｈ（参考文献［７］を参照）が概要を説明している。違いは基本的に、ハンドシェイクプロトコルの選択、タイミング制約の要件、データエンコーディングの選択、および使用されるロジックスタイルである。このペーパーで提案されているパイプラインは、デュアルレールエンコーディングと比較してデータパスの配線とロジックの複雑さが低いため、いわゆるシングルレールバンドルデータの概念に基づいている。読み出しパスのコンテキストでは、スパースデータの高速圧縮が可能になり、パイプラインコントローラの転送遅延を低くする必要がある。ここで、フォワードレイテンシとは、あるステージから次のステージにデータを伝播するために必要な時間を意味する。さらに、パイプライン内のストレージ時間は事前にわからないため、ダイナミックロジックは適用できない。ＳｉｎｇｈおよびＮｏｗｉｃｋ（参考文献［９］を参照）は、フォワードレイテンシが非常に低いが動的ロジックに基づいた実装である大容量（ＨＣ）パイプラインを紹介した。ラッチ３５に使用されるコントローラ４０は、静的ラッチ用に設計されている。2つの入力を持つパイプラインコントローラに拡張する前に、まず線形コントローラを使用してその機能を説明する。
【００３４】
線形パイプライン１４−ｍの動作に使用されるＰＣバッファコントローラ４０は、図４ｂにより示されている。バッファコントローラ４０は、３つのゲート、２つの非対称Ｃ要素４０−Ｍ１および４０−Ｍ２、ならびにインバータ４０−Ｉを含む。Ｃ要素［８］は、非同期回路の一般的なゲートであり、例えば状態エンコーディングの場合、同期実装のフリップフロップに似ている。
【００３５】
さらに、コントローラ４０は、ｒｅｑ信号を後続のバッファ要素の後続のバッファ要素／コントローラに出力するための２つの出力４０−０２と、前のバッファ要素のコントローラにｒｄｙ信号を出力するための４０−０１とを備える。入力として、コントローラ４０は、入力４０−ｉ２および４０−ｉ１を備える。４０−ｉ２は、後続のバッファコントローラからレディ信号ｒｄｙを受信するために使用され、入力４０−ｉ２は、前のバッファ要素のコントローラからｒｅｑ信号を受信するために使用される。
【００３６】
Ｃ要素４０−Ｍ１は、例えば、２つのマイナス入力を含み、４０−Ｍ１がｒｄｙ1＿ｉ信号を使用できるように、１つのマイナス入力が入力４０−ｉ２に結合される。第２のマイナス入力は、Ｃ要素４０−Ｍ２、すなわち、その反転出力に結合される。さらに、Ｃ要素４０−Ｍ１は２つのプラス入力を備え、１つはｒｅｑ＿ｉを受信するために入力４０−ｉ１に結合され、もう１つはインバータ４０−ｉを介してＣ要素４０−Ｍ１の出力に結合される。
【００３７】
第２のＣ要素４０−Ｍ２は、例えば、出力４０−０２を介して出力されるｒｅｑ＿ｏ信号を受信するためにニュートラル入力でｒｄｙ＿ｉ信号を受信するために入力４０−ｉ２に結合されたプラス入力を備える。ここで、ｒｅｑ＿ｏ信号はＣ要素４０−Ｍ１によって出力された信号ですが、要素４０−ｔによって遅延されている。出力４０−０１は、インバータ４０−１を介してＣ要素４０−Ｍ１の出力に結合されているので、ｒｄｙ＿ｏ信号は、Ｃ要素４０−Ｍ１によって出力された信号の反転バージョンである。
【００３８】
さらに、コントローラ４０は、ラッチ（図示せず）を制御する信号を出力するための別の出力を備える。ｌｅ信号は、ｒｄｙ＿ｏ信号に実質的に準拠するが、追加のプロセス要素４０−ｐ、たとえば増幅器によって処理される。以下、コントローラ４０の機能について説明する。
【００３９】
Ｃ要素の出力は、すべての正入力とニュートラル入力が状態１である場合は１であり、すべての負入力とニュートラル入力が状態０である場合は０である。それ以外の場合、出力は変更されない。
【００４０】
要求信号ｒｅｑ＿ｉ（図４ｂ）は新しいデータの到着を示す。状態１は前のパイプラインステージからの新しいデータが到着したことを意味し、状態０は新しいデータが利用できないことを示す。Ｍ−１番目のステージのすべてのデータがｍ番目のステージのラッチで安定するまで、ステージｎの信号ｒｅｑ＿ｉが状態１に変化してはならない。この条件は、データパスに組み合わせロジックがないパイプラインの場合、つまりＦＩＦＯの場合、通常はデフォルトで満たされますが、データパスの遅延が大きいパイプラインの場合、これは、要求信号に追加の遅延要素τを導入することによって実現されます。要求信号ｒｅｑ＿ｏは、ｍ＋１番目のステージに新しいデータの存在を通知する。これは、ｍ番目のステージが新しいデータを吸収したときに設定される。つまり、ｒｅｑ＿ｉが以前に設定されていて、ｒｄｙ＿ｏが状態１にある場合である。信号はＣ要素Ｍ１によって生成される。ｍ番目のステージの要求は、ｒｄｙ＿ｉの立ち下がりエッジでｍ＋１番目のステージによって確認されるまで残る。Ｃ要素Ｍ２は、２つの転送の間でｒｄｙ＿ｉ信号が状態１であることを保証する。つまり、実際に立ち下がりエッジが評価される。確認応答後、要求信号ｒｅｑ＿ｏは再び状態０に変化し、ｍ番目のステージは新しい転送の準備が整う。パイプラインコントローラが正しく動作するためには、いくつかの−幸いにも簡単に満足できる−タイミングの制約を満たす必要がある。最初の制約（式１）は、データパスが制御パスよりも高速であることを保証するためにある。
【００４１】
2021504811.tif 000003
【００４２】
２番目の制約（式２）は、ラッチのゲート入力での最小パルス長を定義する。これにより、ラッチの正しいサンプリングが保証される。
【００４３】
2021504811.tif 000004
【００４４】
3番目の最後の制約（方程式３）は、Ｃ要素Ｍ−２が、ｒｄｙ＿ｉが状態０に戻る前に状態１にあったことを確実に認識できるようにするためのものである。
【００４５】
2021504811.tif 000005
【００４６】
式1は、ラッチの遅延時間が制御パスの遅延時間よりも短くなければならないことを指定している。制御パスには１つのＣ要素に相当する遅延しかないため、この条件は従来のＣ2ＭＯＳラッチでは実現できない。さらに、追加のマルチプレクサを回避するために、２番目の入力によって簡単に拡張可能なラッチ実装を優先する必要がある。図５ａは、１つのデータおよび選択入力を有するそのようなラッチ実装３５を示す。ラッチ３５は、差動ペア３５−ｄ１および３５−ｄ２ならびに２つのフィードバックインバータ３５−ｉ１および３５−ｉ２を備える。
【００４７】
差動ペア３５−ｄ１および３５−ｄ２は、２つのトランジスタ３５−ｄ１および３５−ｄ１を含む。トランジスタ３５−ｄ１および３５−ｄ１のドレイン接点は、並列に配置されているが逆向きの２つのインバータ３５−ｉ１および３５−ｉ２を介して互いに結合されている。2つのインバータは、外部入力が受信されない限り、差動ペア３５−ｄ１／５−ｄ２の安定状態を可能にすることを目的としている。
２つのトランジスタ３５−ｄ１および３５−ｄ２は、そのゲートを介してデータ入力３５−ｄｉ（差動入力）に結合される。差動トランジスタ３５−ｄ１および３５−ｄ２のソース電極は、制御信号ｌｅによって制御されるように構成された別のトランジスタ３５−ｔに結合される。制御信号ｌｅに基づいて、トランジスタ３５−ｔを使用することにより、差動ペア３５−ｄ１/３５−ｄ２が制御され、その結果、入力ペア３５−ｄｉから新しいデータを受け取ることができる。
差動ペア３５−ｄ１/３５−ｄ２によって保存されたデータは、２つのトランジスタ３５−ｄ１および３５−ｄ２のドレイン接点に接続された出力３５−ｄｏ（差動出力）を介して出力できる。ラッチ３５の遅延時間は、インバータの遅延時間に対応し、適切なサイズである場合、少なくとも２つのインバータステージのＣ要素遅延時間よりも速いことに留意されたい。
【００４８】
Ｂ.マルチ入力パイプライン
線形パイプラインコントローラから開始して、連続したパケットを提供するためにＰＥ内で使用されるため、アービトレーションによって拡張される。結果のパイプラインの構造は、図６に示され、３つのパイプラインステージ１２−ｍ−１、１２−ｍ、１２−ｍ＋１を示している。線形パイプライン１２（図１を参照）は、図６によって詳細に示されている。図６は、３つのパイプラインステージ要素を示し、各パイプラインステージ要素は、プロセスコントローラー６０と、制御信号ｌｅ＿ａおよびｌｅ＿ｂを介してプロセスコントローラー６０によって制御されるラッチ５５とを備える。
データを受信またはアップロードするための要件または準備を示す信号ｒｅｑ＿ａおよびｒｄｙ＿ａを交換するために、異なるステージのプロセスコントローラー６０は互いに結合されている。さらに、プロセスコントローラー６０は、線形パイプライン（図示せず）のコントローラに接続されて、信号ｒｄｙ＿ｂおよびｒｅｑ＿ｂを交換して、最後のバッファ要素からデータを読み出す準備または要件を示す。
【００４９】
ラッチ５５は２つの入力を含み、１つは前のパイプライン要素のラッチに結合され、１つは最後のバッファ要素のラッチに結合される。これらの信号パスは、参照番号ｄｉ＿ｂ（バッファ要素から）とｄｉ＿ａ（前のパイプライン要素から）でマークされている。
換言すれば、パイプライン１２は、Ｎ＋１個の入力およびＮ個のステージに対する１つの出力を有するものとして説明することができ、入力は、コントローラ６０に属するアービター（図示せず）を使用して選択される。アービターは、２つの入力のどちらが新しいデータを提供するかに応じて、入力ａ（ｄｉ＿ａ）または入力ｂ（ｄｉ＿ｂ）を選択する目的を持っている。
【００５０】
チャネルの選択は、連続したデータが所定の期間利用できない、つまり連続的な転送が中断されるまで残る。これにより、データワード内の特別な制御情報を評価する必要なく、連続したパケットを実装できる。以下では、ラッチ５５について、図７に関してアービターを、図８に関してコントローラ６０を説明する前に、図５ｂに関して説明する。
【００５１】
ラッチ５５は実質的にラッチ３５に準拠し、ラッチ５５は２つの差動ペア、すなわち、並列に配置され、両方が２つのインバータに結合された差動ペア３５−ｄ１／３５−ｄ２および５５−ｄ１および５５−ｄ２を有する。差動ペア３５−ｄ１／３５−ｄ２および５５−ｄ１／５５−ｄ２のそれぞれのドレインコンタクトを介して３５−ｉ１および３５−ｉ２は、そのドレインコンタクトを介して独自の制御トランジスタ３５−ｔおよび５５−ｔに結合され、２つのトランジスタは、コントローラから制御信号ｌｅ＿ａおよびｌｅ＿ｂを受け取る。制御信号を介して、それぞれの差動ペア３５−ｄ１／３５−ｄ２または５５−ｄ／５５−ｄ２を選択して、それぞれの入力３５−ｄｉまたは差動ペア３５−ｄ１／３５−ｄ２または５５−ｄ１／５５−ｄ２に属している５５−ｄｉからデータを読み出すことができる。両方の差動ペアは、ドレイン接点を介して共通出力３５−ｄｏに結合されている。
【００５２】
図７は、相互排除７０−ｍ（ＭＵＴＥＸ）を実施する要素を備えるアービター７０を示し、これは、競合する要求の場合に、グリッチのない方法で２つのチャネルＡまたはＢのうちの１つを選択する。ＭＵＴＥＸは、ＮＡＮＤ−ＲＳフリップフロップ７０−ｍｆｆと、それに続く準安定フィルター７０−ｍｆで構成され、これは確立された実装であり、これは他の著者によっても頻繁に使用される（参考文献［６］、［１１］を参照）。
入力にある追加のＯＲゲート７０−ｏ１と７０−ｏ２は、実際のチャネル選択を一定時間保持する。ＮＡＮＤゲートとＯＲゲートを１個のステージのＣＭＯＳゲートに組み合わせることができるため、誘発されるスローダウンは重要ではない。ホールドタイムは遅延要素を使用して設定され、パイプラインステージのサイクルタイムよりもいくらか長く選択する必要がある。選択された遅延要素が立下りエッジよりもかなり速く立上りエッジを伝搬しない場合、着信要求信号は遅延要素の出力で表示するには短すぎる可能性がある。これは、一連のインバータを使用して、またはこの動作を示す特別なゲートを設計することによって実現できる。アクティブチャネルが選択されていない限り、アービターの遅延時間は、パイプラインコントローラの転送遅延に直接影響する。ただし、着信要求信号間の時間的な関係が不明であるため、これを回避することはできない。
【００５３】
図８は、２つの入力を有するパイプラインコントローラ６０を示す。パイプラインコントローラ６０は、２つのＣ要素６０−Ｍ１および６０−Ｍ２ならびに２つの追加要素６０−Ｍ３ａおよび６０−Ｍ３ｂを含む。コントローラ６０は、コントローラ６０に隣接するコントローラと通信するための３つの入力および３つの出力を備える。詳細には、コントローラ６０は、転送されるべきデータビットシーケンスを示す前のパイプラインステージ要素から信号ｒｅｑ＿ａを受信するための第１の入力６０−ｉ１と、データビットシーケンスを受信する能力を示す後続のパイプラインステージ要素から信号ｒｄｙ＿ｉを受信するための第２の入力６０−ｉ２と、を含み、読み出されるべきデータビットシーケンスを示す最後のバッファ要素から信号ｒｅｑ＿ｂを受信するための第３の入力６０−ｉ３を備える。コントローラ６０は、前のパイプラインステージ要素から転送されるべきデータビットシーケンスを受信する能力を示す信号ｒｄｙ＿ａｎを出力する第１の出力６０−ｏ１と、
データビットシーケンスを後続のパイプラインステージ要素に転送する要求を示す信号ｒｅｑ＿ｏを出力する第２の出力６０−ｏ２と、を含み、最後のバッファ要素からデータビットシーケンスを読み出す能力を示す信号ｒｄｙ＿ｂを出力する第３の出力６０−ｏ３を備える。さらに、コントローラ６０は、信号ｌｅ＿ａおよびｌｅ＿ｂを対応するラッチ（図５ｂを参照。）に出力する出力を制御することを含む。
【００５４】
したがって、Ｃ要素６０−Ｍ１は、たとえば、２つのマイナス入力と１つのプラス入力で構成される。マイナス入力は、第２の入力６０−ｉ２に結合され、マイナス入力は、Ｃ要素６０−Ｍ２の反転出力に結合される。プラス入力は、結合要素６０−Ｃを使用して、入力６０−ｉ１と出力６０−ｏ１、および入力６０−ｉ３と出力６０−ｏ３の両方に結合される。さらに、結合要素６０−ｃは、信号ｓｅｌ＿ａおよびｓｅｌ＿ｂを出力するアービター出力用の入力を有する。
【００５５】
第２のＣ要素６０−Ｍ２は、例えば、出力６０−ｏ２の第２のｒｅｑ＿ｏを受信するためにニュートラル入力で入力６０−ｉ２の信号ｒｄｙ＿ｉを受信するためのプラス入力を備える。信号ｒｅｑ＿ｏは、遅延要素６０−ｔによって遅延されたときに、第２のＣ要素６０−Ｍ１によって出力された信号に準拠することに留意されたい。
【００５６】
Ｃ要素６０−Ｍ３ａおよび６０−Ｍ３ｂには、アービターの信号ｓｅｌ＿ａまたはアービターのｓｅｌ＿ｂを受信するためのプラス入力がある。さらに、どちらにもＣ要素６０−Ｍ１の出力に結合されたニュートラル入力がある。両方の要素６０−Ｍ３ａと６０−Ｍ３ｂは、信号ｒｄｙ＿ａとｒｄｙ＿ｂを出力する反転出力を備えている。
【００５７】
２つの要素６０−Ｍ３ａおよび６０−Ｍ３ｂにより、要素６０−Ｍ１からレディ信号を出力でき、ここで、ｒｄｙ＿ａとｒｄｙ＿ｂの間の選択は、アービター信号を使用して行うことができる。つまり、アービターの選択に応じて、ｒｄｙ＿ａまたはｒｄｙ＿ｂ信号が出力されることを意味する。同じ信号を使用して、エンティティ６０−ｌを使用してラッチを制御する。エンティティ６０−１は、アービターからｓｅｌ＿ａまたはｓｅｌ＿ｂ信号を受信するゲート６０−ｇへのインバータ６０−ｉを含み得る。その結果、ｓｅｌ＿ａまたはｓｅｌ＿ｂ信号に依存して、ｌｅ＿ａまたはｌｅ＿ｂ信号は、それぞれの制御出力に対して２つのプロセス要素６０−ｐを使用して出力されてもよい。信号ｌｅ＿ａまたはｌｅ＿ｂは、要素６０−Ｍ１によって出力された信号の反転バージョン（６０−ｉで反転）であり、アービターの選択に応じてそれぞれの制御出力に転送される。
【００５８】
以下、コントローラ６０のロジックについて詳細に説明する。
【００５９】
発信要求信号ｒｅｑ＿ｏは、Ｃ要素６０−Ｍ１によって再び生成される。６０−Ｍ１の正の入力での追加ロジックにより、条件（ｒｅｑａ∧ｓｅｌａ∧ｒｄｙａ）∨（ｒｅｑｂ∧ｓｅｌｂ∧ｒｄｙｂ）が満たされた場合にのみ、発信要求が設定される。つまり、アービターがチャネルＡを選択し、ラッチがチャネルＡからのデータパスサンプルデータをラッチした場合にのみ、チャネルＡからの要求が受け入れられる。同様の方法で、チャネルＢにも同じ条件が当てはまる。この制約はＣ要素のＮＭＯＳパスに簡単に統合できるため、図８の原理回路で示唆されているように、実際には追加のゲートは必要ない。信号ｒｅｑ＿ｏをｎ番目のステージで設定した後、線形コントローラの場合と同様に、信号ｒｄｙ＿ｉはｎ＋１番目のステージで０に設定される。続いて、ｎ番目のステージの信号ｒｅｑ＿ｏもリセットされる。ラッチイネーブル信号ｌｅ＿ａまたはｌｅ＿ｂは、「ａｎｄ」関数によって信号ｓｅｌ＿ａまたはｓｅｌ＿ｂとそれぞれ論理的にリンクされる。
【００６０】
信号ｒｄｙ＿ａとｒｄｙ＿ｂも同様の方法で生成される。チャネル選択信号ｓｅｌ＿ａまたはｓｅｌ＿ｂは、ｒｄｙ＿ａまたはｒｄｙ＿ｂのどちらを設定するかを再度決定している。この時点ではＣ要素が使用されている。これは、チャネル切り替え中にレディ信号がその状態を変更してはならないためである。そうしないと、前のパイプラインステージが無効な状態になる可能性がある。
【００６１】
コントローラが正しく動作するには、タイミングの制約も考慮する必要がある。線形コントローラに対して式１〜３で与えられた制約は、同様の方法でマルチ入力パイプラインコントローラに適用され、ｔＭ１＋ｔｉｎｖという用語がｔＭ１に置き換えられている。これは、線形コントローラでは、パイプラインステージが有効なデータを保持していない場合、すべてのラッチが透過的であるという事実によって説明される。ただし、拡張パイプラインコントローラの場合、使用するチャネルがまだ選択されていないため、ラッチは透過的ではない。これが、方程式２および３で与えられた制約を満たすのがやや難しい理由である。これ以上のタイミング制約は必要ない。
【００６２】
Ｃ.初期化
これまでに、２つのパイプラインコントローラと対応するデータパスラッチについて説明した。ただし、パイプラインの初期化の非常に重要な側面はまったくカバーされていない。同期回路と同様に、この目的のためにリセット信号が使用される。すべてのＣ要素を一度にリセットするこの信号は、各Ｃ要素を１つのトランジスタだけで拡張することによって実現できる。ＰＥのデータバッファから出力パスへのデータ転送の制御は、もう１つの重要な側面である。これには、グローバルスタート信号によって制御される追加のＡＮＤゲートを、ＰＥとＰＳ２間の要求信号に追加する必要がある。そうでなければ、ＰＥからのデータ要素は、すぐに読み出しパイプラインに送られる。このようにして、パイプラインを読み出し、同時にＰＥのデータバッファに新しいデータを構築することはできない。非常に長いパイプラインの場合、この信号は、バッファツリーを介して、またはパイプラインのデータフローと反対方向に供給される。これは、非常に長いシフトレジスタでのクロック信号の供給に匹敵する。
【００６３】
ＩＶ．テスト結果と比較
開発された回路コンポーネントは、１８０ｎｍＣＭＯＳテクノロジーのテストチップ上で測定され、参考文献で知られている非同期パイプラインの実装と比較された。提示されたパイプラインコントローラは、１８０ｎｍの低消費電力ＣＭＯＳテクノロジーのテストチップを使用して正しく動作することが実証された。テストチップは、同期信号がデータバスに適用される入力を示す図9に示されている。テストチップには、８ビットのデータパスを備えた１４ステージの非同期パイプライン１０´が含まれている。入力および出力は、同期インターフェイス８０−ｉを介して読み取りまたは書き込むことができる。１４のパイプラインコントローラのうちの２つ（１２＊を参照）は、アービトレーション付きのコントローラに置き換えられた。つまり、パイプラインには合計３つの入力がある。２つの追加入力には、それぞれ１つのバッファステージが装備されている。さらに、定義された数のデータ要素を回転させるために、パイプラインをリング構造として接続できる。ハンドシェイクは、強力なバッファを使用して選択された要求と準備完了信号をボンドパッドに出力することによって監視された。構造の模式図を図９に示す。合計で、４つのテストモードを使用できる。
【００６４】
・テストモード１では、すべてのパイプライン要素が定義された順序で入力され、その後、これらが読み取られる。読み出したデータの調停や正当性を確認できる。
・テストモード2では、データは追加のパイプライン入力にのみ書き込まれる。これにより、圧縮が出力で正しいデータを提供するかどうかを確認できる。テストモード３および４は、パイプラインはリングとして接続される。つまり、一度挿入されたすべてのアイテムがパイプライン内を循環し続ける。このモードでは、パイプラインコントローラのフォワードレイテンシとサイクルタイムを測定できる。フォワードレイテンシは、要素を１つだけ挿入することで決定される。１４のパイプライン要素の場合、それらの速度がすべてほぼ等しいと仮定すると、フォワードレイテンシは、式４に従ってデータアイテムのローテーション時間から発生する。
【００６５】
2021504811.tif 000006
【００６６】
同様に、パイプラインコントローラのサイクルタイムは、１３個の要素をパイプラインに挿入することで決定できる。次に、有効なデータ項目のないパイプラインステージが１つだけ存在する。図１０に、測定された順方向レイテンシと、電源電圧に応じたサイクルタイムを示す。予想通り、コントローラの速度は供給電圧が高いほど速くなる。わずか０．７ボルトの電源電圧でも、一部のテストチップはまだ機能している。また、リング内を１つの要素のみが循環する場合の消費電力を測定した。図１１を参照のこと。
【００６７】
表Ｉは、提示されたパイプラインコントローラの遅延を、参考文献のバリアントと比較して示している。ＨＣパイプラインと比較すると、ここに示されている実装は約半分の速さであり、これは、一方では、データパスでのスタティックロジックの使用によるものであり、他方では、異なるプロセステクノロジーによるものである。さらに、参考文献に記載されている値は、線形パイプラインにのみ適用される。アービターによって引き起こされる遅延のために、提示されたマルチ入力パイプラインは必然的に少し遅くなる。１．８Ｖの公称動作電圧で測定された順方向レイテンシは５２０ｐｓである。これは、同期実装の２ＧＨｚの同等のクロック周波数に相当するが、現在使用されているテクノロジーでは実現できない。同じテスト条件下で、１．１ｎｓのサイクルタイムが測定された。これは、すべてのステージがデータ要素を保持する場合のパイプラインのスループットに対応する。
【００６８】
ＩＶ.概要
この作品は、列平行ＳＩＭＤユニットの平行データをシリアルに出力できるビジョンシステムオンチップの読み出しパスを示している。読み出しパスは非同期パイプラインとして実装されているため、スパースデータの非常に高速な圧縮と連続データストリームの読み出しの両方が可能である。巧妙なアービトレーションにより、追加の制御情報なしで、連続したデータパケット、したがって可変ワード幅を送信することが可能である。提示された回路コンポーネントは、１８０ｎｍＣＭＯＳテクノロジーのテストチップで正常にテストされた。テストチップは、同期信号がデータバスに適用される入力を示す図９に示されている。公称動作電圧で５２０ｐｓのフォワードレイテンシを測定すると、提案された非同期パイプラインは、２ＧＨｚでクロックされる対応する同期実装と同等であることがわかっている。
【００６９】
Ｖ.追加の実施形態
別の実施形態によれば、図１によるデータバスは、プロセス要素ＰＥを有するマトリクス形状のデータソースを形成する。実施形態によれば、連続的に配置されたデータビット（一緒に属するデータ部分）は、連続的なデータストリームとして出力され得る。
ここでは、各パイプライン要素がデータフローを制御し、列のコンテンツ（線形パイプライン）が読み出されてメインパイプラインに転送される。代わりに、パイプラインが転送できる限り多くのデータをバッファリングするように、すべての列を読み出すことができる。これにより、図２で示されているように、不連続なデータストリームが生じる可能性がある。別の実施形態によれば、読み出し手順は、複数のデータビットシーケンス（共通のデータパケットに属する）が一緒に読み出されるように、利用可能なリソースに依存することがある。図３に示すように、この注記は、すべての列がデータを提供するとは限らない場合に特に適している。
【００７０】
別の実施形態によれば、各パイプラインステージ要素は、パイプラインステージ要素の入力間を切り替える目的を果たすランダムを含み得る。その結果、すべての列が優先順位なしで読み出され得る。この原理は、一緒に属する複数のデータビットシーケンスにも使用できます。つまり、２つ以上のシーケンスの読み出し後に入力間の切り替えを実行する場合にも使用できる。
【００７１】
上述のコントローラは、実施形態によれば、データパケットとして処理できるように、一緒に属するデータ部分を決定するように構成され得る。別の実施形態によれば、コントローラは、例えば、列のデータフローの優先順位付けを開始することができる入力を含むことができる。
【００７２】
また、上記の実施形態では、動作モードは非同期動作モードとして説明されているが、同期動作モードも適していることに留意されたい。
【００７３】
上記の実施形態内では、バッファとして使用されるラッチのコンテキストでパイプラインについて説明したが、他のバッファ要素またはメモリセルもバッファ要素およびパイプラインステージ要素に使用できることに留意されたい。好ましくは、マルチプレクサを有するラッチが使用され、パイプラインステージ要素内で使用されるラッチは、通常、２つの入力を含むが、より多くの入力（Ｎ入力）を含むこともできる。この場合、ラッチは通常、Ｎ個の差動ペアで構成される。別の実施形態は、パイプラインコントローラに属する２つまたはＮ個の入力を有する多入力アービターに言及する。アービターはN入力に拡張することもできる。この実施形態では、バッファステージ要素がＮ入力に拡張されるだけでなく、そのコントローラも拡張される。Ｎ個の入力を有するパイプラインの典型的な用途は、チップスタッキングを含むチップの３Ｄ統合を有する、いわゆるマルチチップ実装である。
【００７４】
いくつかの態様が装置の文脈で説明されてきたが、これらの態様も対応する方法の説明を表すことは明らかである。ここで、ブロックまたはデバイスはメソッドステップまたはメソッドステップの機能に対応している。同様に、方法ステップの文脈で説明される態様は、対応する装置の対応するブロックまたはアイテムまたは特徴の説明も表す。方法ステップの一部またはすべては、例えば、マイクロプロセッサ、プログラム可能なコンピュータ、または電子回路などのハードウェア装置によって（または使用して）実行することができる。いくつかの実施形態では、最も重要な方法ステップの１つまたは複数は、そのような装置によって実行され得る。
【００７５】
特定の実施要件に応じて、本発明の実施形態は、ハードウェアまたはソフトウェアで実施することができる。実装は、フロッピーディスク、ＤＶＤ、ブルーレイ、ＣＤ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、またはフラッシュメモリなどのデジタル記憶媒体を使用して実行でき、その上で、それぞれの方法が実行されるように、プログラム可能なコンピュータシステムと連携する（または連携できる）。したがって、デジタル記憶媒体は、コンピュータ可読であり得る。
【００７６】
本発明によるいくつかの実施形態は、本明細書に記載の方法の１つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読み取り可能な制御信号を有するデータキャリアを含む。
【００７７】
一般に、本発明の実施形態は、プログラムコードを有するコンピュータプログラム製品として実装することができる。プログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されるときに方法の１つを実行するように機能する。プログラムコードは、例えば、機械可読キャリアに格納されてもよい。
【００７８】
他の実施形態は、機械可読キャリアに記憶された、本明細書に記載された方法の１つを実行するためのコンピュータプログラムを含む。
【００７９】
言い換えれば、本発明の方法の実施形態は、したがって、コンピュータプログラムがコンピュータ上で実行されるときに、本明細書に記載の方法の１つを実行するためのプログラムコードを有するコンピュータプログラムである。
【００８０】
したがって、本発明の方法のさらなる実施形態は、本明細書に記載の方法の１つを実行するためのコンピュータプログラムを記録したデータキャリア（またはデジタル記憶媒体、またはコンピュータ可読媒体）である。データキャリア、デジタルストレージメディア、または記録されたメディアは、通常、有形および／または非一時的である。
【００８１】
したがって、本発明の方法のさらなる実施形態は、本明細書で説明される方法の１つを実行するためのコンピュータプログラムを表すデータストリームまたは一連の信号である。データストリームまたは信号のシーケンスは、例えば、インターネットなどのデータ通信接続を介して転送されるように構成されてもよい。
【００８２】
さらなる実施形態は、本明細書に記載の方法の１つを実行するように構成または適合された処理手段、例えば、コンピュータまたはプログラム可能な論理デバイスを含む。
【００８３】
さらなる実施形態は、本明細書に記載される方法の１つを実行するためのコンピュータプログラムがインストールされているコンピュータを含む。
【００８４】
本発明によるさらなる実施形態は、本明細書に記載の方法の１つを実行するためのコンピュータプログラムを（例えば、電子的または光学的に）受信機に転送するように構成された装置またはシステムを含む。受信機は、例えば、コンピュータ、モバイルデバイス、メモリデバイスなどであり得る。装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを含み得る。
【００８５】
いくつかの実施形態では、プログラマブルロジックデバイス（例えば、フィールドプログラマブルゲートアレイ）を使用して、本明細書に記載されている方法の機能の一部またはすべてを実行することができる。いくつかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書で説明される方法の１つを実行するために、マイクロプロセッサと協働することができる。一般に、方法は、好ましくは、任意のハードウェア装置によって実行される。
【００８６】
上述の実施形態は、本発明の原理を単に例示するものである。本明細書に記載された構成および詳細の修正および変形は、当業者には明らかであろうことが理解される。したがって、差し迫った特許請求の範囲によってのみ限定され、本明細書の実施形態の説明および説明として提示された特定の詳細によって限定されないことが意図されている。
【００８７】
ＶＩ.参考文献
[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.
【図１】
2021504811.tif 000007
【図２】
2021504811.tif 000008
【図３】
2021504811.tif 000009
【図４ａ】
2021504811.tif 000010
【図４ｂ】
2021504811.tif 000011
【図５ａ】
2021504811.tif 000012
【図５ｂ】
2021504811.tif 000013
【図６】
2021504811.tif 000014
【図７】
2021504811.tif 000015
【図８】
2021504811.tif 000016
【図９】
2021504811.tif 000017
【図１０】
2021504811.tif 000018
【図１１】
2021504811.tif 000019
【図１２】
2021504811.tif 000020
【手続補正書】
【提出日】令和1年10月24日(2019.10.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各プロセス要素（ＰＥ）が直列に配置されたＭ個のステージを有する線形パイプライン（１４ａ〜１４ｆ）に接続される、プロセス要素（ＰＥ）であって、前記Ｍ個のステージのそれぞれは、データビットシーケンスをバッファリングし、前記バッファリングされたデータビットシーケンスを最初のバッファ要素（１４−１〜１４−Ｍ）から最後のバッファ要素（１４−１〜１４−Ｍ）に転送するように構成されたバッファ要素（１４−１〜１４−Ｍ）を含むプロセス要素（ＰＥ）と、
直列に配置されたＮ個のパイプラインステージ要素（１２ａ〜１２ｆ）を含む線形メインパイプライン（１２）と、を含み、
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は、それぞれの線形パイプライン（１４ａ〜１４ｆ）の前記最後のバッファ要素（１４−１〜１４−Ｍ）に接続され、前記バッファリングされたデータビットシーケンスを１つ以上読み取り、読みだした前記データビットシーケンスをＮ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの１つから前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの次のパイプラインステージ要素に転送するように構成され、
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は、順次、前記読み出しを実行するように構成され、
前記パイプラインステージ要素（１２ａ〜１２ｆ）は、前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前のパイプラインステージ要素から別のデータビットシーケンスを転送する前に、それぞれの前記バッファ要素（１４−１〜１４−Ｍ）のうちの最後のバッファ要素からすべてのバッファデータビットシーケンスを読み出して、前記読み出されたビットシーケンスを転送する前記線形メインパイプライン（１２）によって連続的なデータストリームが生成されるように構成される、および／または
前記パイプラインステージ要素（１２ａ〜１２ｆ）は、それぞれの最後のバッファ要素（１４−１〜１４−Ｍ）から別のデータビットシーケンスを読み出す前に、前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前のパイプラインステージ要素からすべてのデータビットシーケンスを転送して、前記読み出されたデータビットシーケンスを転送する前記線形メインパイプライン（１２）によって連続的なデータストリームが生成されるように構成される、データバス（１０）。
【請求項２】
前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）は非同期パイプライン要素である、および／または、後続の２つのパイプラインステージ要素（１２ａ〜１２ｆ）は、データビットシーケンスの転送を開始するため、および／または、前のパイプラインステージ要素（１２ａ〜１２ｆ）から転送されるデータビットシーケンスを受信する能力を示すために、ハンドシェイク手順を実行するように構成される、請求項１に記載のデータバス（１０）。
【請求項３】
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は、前のパイプラインステージ要素（１２ａ〜１２ｆ）からデータビットシーケンスを受け取るための第１のデータ入力と、前記最後のバッファ要素（１４−１〜１４−Ｍ）からデータビットシーケンスを受け取るための第２のデータ入力とを含む、請求項１または請求項２に記載のデータバス（１０）。
【請求項４】
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は、前記パイプラインステージ要素（１２ａ〜１２ｆ）のパイプラインコントローラ（６０）によって制御されるラッチ（３５）を備える、請求項３に記載のデータバス（１０）。
【請求項５】
前記ラッチ（３５）は、マルチプレクサを備えるラッチ（３５）である、請求項４に記載のパイプライン。
【請求項６】
前記各ラッチ（３５）は、トランジスタの第１および第２の差動ペアと、ドレイン接点を介して前記トランジスタの差動ペアに結合された２つのフィードバックインバータを備える、および／または
前記最後のバッファ要素（１４−１〜１４−Ｍ）のデータ入力は、前記第１の差動ペアの前記トランジスタのゲートコンタクトに接続され、前記前のパイプラインステージ要素（１２ａ〜１２ｆ）のデータ入力は、前記第２の差動ペアの前記トランジスタのゲートコンタクトに接続され、データ出力は第１および第２の差動ペアのドレイン接点に接続され、制御入力は前記トランジスタのソース接点に接続される、請求項４または請求項５に記載のパイプライン。
【請求項７】
前記パイプラインステージ要素（１２ａ〜１２ｆ）は非同期で動作する、請求項１から請求項６のいずれか１項に記載のデータバス（１０）。
【請求項８】
前記各バッファ要素（１４−１〜１４−Ｍ）は、前記前または前記後のラッチ（３５）のラッチに少なくとも接続される、および／またはバッファコントローラ（４０）によって制御される、ラッチ（３５）を備える、請求項１から請求項７のいずれか１項に記載のデータバス（１０）。
【請求項９】
前記各ラッチ（３５）は、トランジスタの差動ペアと、ドレイン接点を介して前記トランジスタの差動ペアに結合された２つのフィードバックインバータとを備える、および/または
データ入力はトランジスタのゲート接点に接続され、データ出力はドレイン接点に接続され、制御入力は前記トランジスタのソース接点に接続される、請求項８に記載のデータバス（１０）。
【請求項１０】
前記各バッファ要素（１４−１〜１４−Ｍ）はバッファコントローラ（４０）を備える、請求項１から請求項９のいずれか１項に記載のデータバス（１０）。
【請求項１１】
前記２つの後続のバッファコントローラ（４０）が互いに接続されている、請求項１０に記載のデータバス（１０）。
【請求項１２】
前記コントローラは、第１の非対称Ｃ要素（４０−Ｍ１）および第２の非対称Ｃ要素（４０−Ｍ２）を含む、および／または
前記バッファコントローラ（４０）は、２つの正の入力および２つの負の入力を有する第１の非対称Ｃ要素（４０−Ｍ１）と、１つの正の入力および１つの中性入力ならびに反転出力を有する第２の非対称Ｃ要素（４０−Ｍ２）とを含む、請求項１０または請求項１１に記載のデータバス（１０）。
【請求項１３】
前記バッファコントローラ（４０）は、転送されるデータビットシーケンスを示す信号を前のバッファ要素（１４−１〜１４−Ｍ）から受信するための第１の入力と、データビットシーケンスを受信する能力を示す信号を後続のバッファ要素（１４−１〜１４−Ｍ）から受信するための第２の入力とを備える、および/または
前記バッファコントローラ（４０）は、転送されるデータビットシーケンスを受信する能力を示す信号を出力する第１の出力と、データビットシーケンスを転送する要求を示す信号を出力する第２の出力とを備える、請求項９から請求項１２のいずれか１項に記載のデータバス（１０）。
【請求項１４】
前記バッファコントローラ（４０）は、２つの正の入力および２つの負の入力を有する第１の非対称Ｃ要素（４０−Ｍ１）と、１つの正の入力および１つの中性入力ならびに反転出力を有する第２の非対称Ｃ要素（４０−Ｍ２）を含み、
前記第２の非対称Ｃ要素（４０−Ｍ２）は、その中性入力によって前記第２の出力に、その正の入力によって前記第２の入力に接続され、また
前記第１の非対称Ｃ要素は、その負の入力によって前記第２の非対称Ｃ要素の出力に、その正の入力によって前記第１の入力に接続され、その出力によって前記第２の出力に接続する、請求項１３に記載のデータバス（１０）。
【請求項１５】
前記バッファコントローラ（４０）は、前記第１の非対称Ｃ要素（４０−Ｍ１）の出力と第２の出力との間に配置された遅延要素を備える、請求項１４に記載のデータバス（１０）。
【請求項１６】
前記バッファコントローラ（４０）は、前記第１の非対称Ｃ要素（４０−Ｍ１）の出力と前記第１の出力との間に配置されたインバータ要素を備える、請求項１４または請求項１５に記載のデータバス（１０）。
【請求項１７】
前記各パイプラインステージ要素（１２ａから１２ｆ）はパイプラインコントローラ（６０）を備える、請求項１から請求項１６のいずれか１項に記載のデータバス（１０）。
【請求項１８】
前記パイプラインコントローラー（６０）は、転送されるデータビットシーケンスを示す信号（ｒｅｑ＿Ａ）を、前のパイプラインステージ要素（１２ａ〜１２ｆ）から受信するための第１の入力と、データビットシーケンスを受信する機能を示す信号（ｒｄｙ＿ｉ）を後続のパイプラインステージ要素（１２ａ〜１２ｆ）から受信するための第２の入力と、読み出されるデータビットシーケンスを示す最信号（ｒｅｑ＿Ｂ）を後のバッファ要素（１４−１から１４−Ｍ）から受信するための第３の入力とを含む、および／または
前記パイプラインコントローラ（６０）は、転送されるデータビットシーケンスを受信する能力を示す信号（ｒｄｙ＿Ａ）を出力する第１の出力と、データビットシーケンスを転送する要求を示す信号（ｒｅｑ＿ｏ）を出力する第２の出力とを備え、前記パイプラインコントローラ（６０）は、前記データビットシーケンスを読み出す能力を示す信号（ｒｄｙ＿Ｂ）を出力する第３の出力を備える、請求項１７に記載のデータバス（１０）。
【請求項１９】
前記パイプラインコントローラ（６０）は、第１の非対称Ｃ要素（６０−Ｍ１）および第２の非対称Ｃ要素（６０−Ｍ２）を備える、請求項１７または請求項１８に記載のデータバス（１０）。
【請求項２０】
前記各パイプラインコントローラー（６０）は、２つの正の入力および２つの負の入力を持つ第１非対称Ｃ要素（６０−Ｍ１と）、１つの正の入力および１つの中性入力ならびに反転出力を持つ第２非対称Ｃ要素（６０−Ｍ２）を含み、
前記第２の非対称Ｃ要素（６０−Ｍ２）は、その中性入力によって前記第２の出力に、その正の入力によって前記第２の入力に接続され、
前記第１の非対称Ｃ要素（６０−Ｍ１）は、その負の入力によって前記第２の非対称Ｃ要素（６０−Ｍ２）の出力に、その正の入力によって前記第１の入力および前記第３の入力に接続され、その出力によって前記第２の出力に接続する、請求項１９に記載のデータバス（１０）。
【請求項２１】
前記第１のＣ要素（６０−Ｍ１）は、遅延要素を介して前記第２の出力に接続される、請求項２０に記載のデータバス（１０）。
【請求項２２】
前記パイプラインコントローラ（６０）は、それぞれが反転出力を有し、それぞれの第１および第３の出力に接続されている第３および第４の非対称Ｃ要素を備える、請求項１９、請求項２０または請求項２１に記載のデータバス（１０）。
【請求項２３】
前記第３および第４のＣ要素は、アービターを介して前記第１および第３の入力に接続され、前記アービターは、転送されるデータのデータソースとして、前記最後のバッファ要素（１４−１〜１４−Ｍ）または前記前のパイプラインステージ要素（１２ａ〜１２ｆ）を選択するように構成される、請求項２２に記載のデータバス（１０）。
【請求項２４】
前記第１のＣ要素は、アービターを介して前記第１および第３の入力に接続され、前記アービターは、転送されるデータのデータソースとして、前記最後のバッファ要素（１４−１〜１４−Ｍ）または前記前のパイプラインステージ要素（１２ａ〜１２ｆ）を選択するように構成される、請求項１８から請求項２３のいずれか１項に記載のデータバス（１０）。
【請求項２５】
前記各パイプライン要素は、前記前または後のラッチの前記ラッチに少なくとも接続される、および／または前記パイプラインコントローラ（６０）によって制御される、ラッチを含み、前記パイプラインコントローラ（６０）は、前記アービターのための入力を有するエンティティを介して前記ラッチに接続されている、請求項１７から請求項２４のいずれか１項に記載のデータバス（１０）。
【請求項２６】
前記各パイプラインステージ要素（１２ａ〜１２ｆ）は複数のデータ入力を含む、請求項１から請求項２５のいずれか１項に記載のデータバス（１０）。
【請求項２７】
前記各プロセス要素（ＰＥ）はデータを生成するように構成される、請求項１から請求項２６のいずれか１項に記載のデータバス（１０）。
【請求項２８】
前記各プロセス要素（ＰＥ）はＳＩＭＤユニットのプロセス要素（ＰＥ）に接続される、請求項２７に記載のデータバス（１０）。
【請求項２９】
請求項１から請求項２８のいずれか１項に記載のデータバス（１０）を制御するための方法であって、前記方法は、
前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前のパイプラインステージ要素から別のデータビットシーケンスを転送する前に、前記バッファ要素（１４−１〜１４−Ｍ）のそれぞれの最後からすべてのバッファリングされたデータビットシーケンスまたは所定数のデータビットシーケンスを読み出すステップ、および／または
前記それぞれの最後のバッファ要素（１４−１〜１４−Ｍ）から別のデータビットシーケンスを読み出す前に、前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前記前のパイプラインステージ要素からデータビットシーケンスを転送するステップを含み、
前記読み出すステップは順次実行され、
前記パイプラインステージ要素（１２ａ〜１２ｆ）は、前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前のパイプラインステージ要素から別のデータビットシーケンスを転送する前に、それぞれの前記バッファ要素（１４−１〜１４−Ｍ）のうちの最後のバッファ要素からすべてのバッファデータビットシーケンスを読み出して、前記読み出されたビットシーケンスを転送する前記線形メインパイプライン（１２）によって連続的なデータストリームが生成されるように構成される、および／または
前記パイプラインステージ要素（１２ａ〜１２ｆ）は、それぞれの最後のバッファ要素（１４−１〜１４−Ｍ）から別のデータビットシーケンスを読み出す前に、前記Ｎ個のパイプラインステージ要素（１２ａ〜１２ｆ）のうちの前のパイプラインステージ要素からすべてのデータビットシーケンスを転送して、前記読み出されたデータビットシーケンスを転送する前記線形メインパイプライン（１２）によって連続的なデータストリームが生成されるように構成される、方法。
【請求項３０】
コンピュータ上で動作するときに、請求項２９に記載の方法を実行するためのプログラムが記憶されているコンピュータ可読デジタル記憶媒体。
【国際調査報告】
2021504811.tif 000021
2021504811.tif 000022
2021504811.tif 000023