(57)【要約】本発明は、ｍ個のデータ要素を２つの非同期システム間でバースト転送するための非同期データバッファに関するものである。この非同期データバッファは、データバーストのｍ個のデータ要素を記憶するためのデータメモリー(112)、及びｍ個のデータ要素に対応するｍ個の入力有効ビットを記憶するための有効ビットメモリー(114)を具えている。入力論理制御回路(116)はｍ個の入力有効ビットを生成し、これらの入力有効ビット及びｍ個のデータ要素の記憶を制御する。ｍ個の入力有効ビットの記憶後に、次のデータバーストの入力有効ビットを反転させるための入力制御信号を供給する。従って、ｍ個のデータ要素の各バースト転送後に入力有効ビットが反転され、前のバースト転送のデータ要素はすべて自動的に無効にされる。
2009503640.tif 000002
【特許請求の範囲】
【請求項１】
ｍ個のデータ要素を２つの非同期システム間でバースト転送する方法において、
ａ）データバーストの前記ｍ個のデータ要素の第１データ要素を送信システムから受信するステップと；
ｂ）前記第１データ要素をデータメモリー内の第１アドレス位置に記憶するステップと；
ｃ）第１入力有効ビットを生成して有効ビットメモリー内の第１アドレス位置に記憶するステップと；
ｄ）前記データ要素を記憶するアドレス位置及び前記入力有効ビットを記憶するアドレス位置を増加させるステップと；
ｅ）ｍ番目の前記データ要素及びｍ番目の前記入力有効ビットを記憶するまで、ステップａ）からステップｄ）までを反復するステップと；
ｆ）前記第１アドレス位置にループバックして、前記入力有効ビットを次のデータバースト用に反転させるための入力制御信号を供給するステップと；
ｇ）前記有効ビットメモリー内の前記第１アドレス位置から前記第１入力有効ビットを読み出すステップと；
ｈ）前記第１入力有効ビット及び出力制御信号に基づいて第１出力有効ビットを生成するステップと；
ｉ）前記データメモリーの前記第１アドレス位置から前記第１データ要素を読み出して前記受信システムに供給するステップと；
ｊ）前記入力有効ビットを読み出すアドレス位置及び前記データ要素を読み出すアドレス位置を増加させるステップと；
ｋ）ｍ番目の前記データ要素を読み出して前記受信システムに供給するまで、ステップｇ）からステップｋ）までを反復するステップと；
ｌ）前記第１アドレス位置にループバックして、前記出力制御信号を次のデータバースト用に反転させるステップと
を具えていることを特徴とする非同期システム間のバースト転送方法。
【請求項２】
ステップｇ）からステップｌ）までの少なくとも一部分を、ステップｅ）と同時に実行することを特徴とする請求項１に記載の非同期システム間のバースト転送方法。
【請求項３】
ｍ個のデータ要素を２つの非同期システム間でバースト転送するための非同期データバッファにおいて、
データバーストのｍ個のデータ要素を送信システムから受信するためのデータ入力ポートと；
前記データ入力ポートと通信して、前記ｍ個のデータ要素の各々を所定アドレス位置に記憶するデータメモリーと；
ｍ個の入力有効ビットの各々を、前記データ要素のそれぞれの前記所定アドレス位置に対応する所定アドレス位置に記憶する有効ビットメモリーと；
前記データメモリー及び前記有効ビットメモリーと制御通信して、前記データ要素の前記所定アドレス位置及び前記入力有効ビットの前記所定アドレス位置を決定し、前記ｍ個の入力有効ビットを生成し、次のデータバースト用に前記入力有効ビットを反転させるための入力制御信号を供給する入力制御論理回路と；
前記データメモリー、前記有効ビットメモリー、及び有効ビット出力ポートと通信して、前記ｍ個のデータ要素の読出し及び受信システムへの供給を制御し、前記ｍ個の入力有効ビット及び出力制御信号に基づいて、前記受信システムに供給されるｍ個の出力有効ビットを生成し、前記出力制御信号を次のデータバースト用に反転させる出力制御論理回路と；
前記データメモリーと通信して、前記ｍ個のデータ要素を前記受信システムに供給するためのデータ出力ポートと
を具えていることを特徴とする非同期データバッファ。
【請求項４】
前記有効ビットメモリー、前記データメモリー、及び前記入力制御論理回路と通信し、前記送信システムからのライトイネーブル信号を受信するためのライトイネーブル入力ポートを具えていることを特徴とする請求項３に記載の非同期データバッファ。
【請求項５】
前記入力制御論理回路が、前記ライトイネーブル入力ポート、前記有効ビットメモリー、及び前記データメモリーと通信する入力カウンタを具え、該入力カウンタは、前記ライトイネーブル信号に応じて前記データ要素の前記所定アドレス位置及び前記入力有効ビットの前記所定アドレス位置を決定し、前記入力制御信号を供給することを特徴とする請求項４に記載の非同期データバッファ。
【請求項６】
前記入力制御論理回路が、前記ライトイネーブル入力ポート、前記有効ビットメモリー、及び前記入力カウンタと通信する入力有効ビット発生器を具え、該入力有効ビット発生器は、前記ライトイネーブル信号及び前記入力制御信号に応じて前記ｍ個の入力有効ビットを生成することを特徴とする請求項５に記載の非同期データバッファ。
【請求項７】
前記有効ビットメモリー及び前記出力制御論理回路と通信し、前記出力制御論理回路から受信した第２制御信号に応じて前記ｍ個の入力有効ビットを送信する有効ビット・マルチプレクサを具えていることを特徴とする請求項３〜６のいずれかに記載の非同期データバッファ。
【請求項８】
前記出力制御論理回路と通信し、前記受信システムからのリードイネーブル信号を受信するためのリードイネーブル入力ポートを具えていることを特徴とする請求項３〜７のいずれかに記載の非同期データバッファ。
【請求項９】
前記出力制御論理回路が、前記リードイネーブルポート、前記有効ビット・マルチプレクサ、及びデータ・マルチプレクサと通信する出力カウンタを具え、該出力カウンタは、前記リードイネーブル信号に応じて、前記ｍ個の入力有効ビットの前記所定アドレス位置及び前記ｍ個のデータ要素の前記所定アドレス位置を決定し、前記出力制御信号を供給することを特徴とする請求項８に記載の非同期データバッファ。
【請求項１０】
前記出力制御論理回路が、前記有効ビット・マルチプレクサ、前記出力カウンタ、及び前記有効ビット出力ポートと通信する出力有効ビット発生器を具え、該出力有効ビット発生器は、前記ｍ個の入力有効ビット及び前記出力制御信号に応じて前記ｍ個の出力有効ビットを生成することを特徴とする請求項９に記載の非同期データバッファ。
【請求項１１】
内部にデータを記憶する記憶媒体であって、前記データが、実行時に、ｍ個のデータ要素を２つの非同期システム間でバースト転送するための非同期データバッファの集積回路設計を生成する記憶媒体において、前記データバッファが、
送信システムからのデータバーストのｍ個のデータ要素を受信するためのデータ入力ポートと；
前記データ入力ポートと通信して、前記ｍ個のデータ要素の各々を所定アドレス位置に記憶するデータメモリーと；
ｍ個の入力有効ビットの各々を、前記データ要素のそれぞれの前記所定アドレス位置に対応する所定アドレス位置に記憶する有効ビットメモリーと；
前記データメモリー及び前記有効ビットメモリーと制御通信して、前記データ要素の前記所定アドレス位置及び前記入力有効ビットの前記所定アドレス位置を決定し、前記ｍ個の入力有効ビットを生成し、次のデータバースト用に前記入力有効ビットを反転させるための入力制御信号を供給する入力制御論理回路と；
前記データメモリー、前記有効ビットメモリー、及び有効ビット出力ポートと通信して、前記ｍ個のデータ要素の読出し及び受信システムへの供給を制御し、前記ｍ個の入力有効ビット及び出力制御信号に基づいて、前記受信システムに供給されるｍ個の出力有効ビットを生成し、前記出力制御信号を次のデータバースト用に反転させる出力制御論理回路と；
前記データメモリーと通信して、前記ｍ個のデータ要素を前記受信システムに供給するためのデータ出力ポートと
を具えていることを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、先に出願した米国特許出願第60／702053号（代理人整理番号002086US1）、発明の名称”Efficient Asynchronous Data Buffer Implementation”、2005年7月22日出願に基づいて優先権を主張する。
【０００２】
本発明は一般に２つのシステム間のインタフェース技術に関するものであり、特に、非同期のクロック領域（クロックドメイン）にリンクされた２つのシステム間のデータ転送用のバッファに関するものである。
【背景技術】
【０００３】
単純なコンピュータにおいても、互いに通信し合う多くの異なる構成要素が異なるクロック領域にリンクされ、即ち、これらの構成要素は、異なる周波数を有する異なるクロックに同期している。例えばＣＰＵは、ディスクドライブ（駆動装置）のようなコンピュータの他の構成要素より大幅に高い周波数で動作している。２つの構成要素またはシステムが異なるクロック領域にリンクされている際に、これらの間のデータ通信は同期または非同期のいずれかで実現される。同期データ転送では、２つのシステムのクロックが第３のクロック領域に同期される。しかし、同期データ転送におけるクロック領域の強度なリンクは、高性能通信リンクの設計に制約を与える。非同期データ転送は、クロック領域の強度なリンクをなくすことによってより大きな設計の柔軟性（フレキシビリティ）を提供する。
【０００４】
【特許文献１】米国特許第6516420号明細書
【特許文献２】米国特許出願公開第2003／0074593号明細書
【０００５】
不都合なことに、非同期インタフェースは、データ同期のための特別なレイテンシ、及びデータ転送中のデータ破壊の確率の増加のような欠点も有する。データ破壊は、非同期インタフェース上の準安定性に起因して発生する。最先端の概念は２段同期装置（シンクロナイザ）及び２段階ハンドシェイク法である。しかし、これらの概念は性能と信頼性との間に不所望なトレードオフがあるか、あるいは、システムの複雑性を大幅に増加させる複雑な同期論理回路を使用する。近年の技術はデータ有効ビットを用いて準安定条件のリスクを低減している。米国特許第6516420号明細書では、Audityan他が有効ビットを用いて個々のデータ要素を同期させることを教示し、これらの有効ビットは、データサンプラ（データサンプリング器）を用いて各処理が行われた後にリセットされる。しかし、有効ビットをリセットすることは効率及びデータ・スループット（データ処理量）を大幅に制限する、というのは、有効ビットをリセットして初めてデータバッファ記憶域が利用可能になるからである。Carpenter他が米国特許出願公開第2003／0074593号明細書において教示している、一旦使用した有効ビットのクリーニングを必要とする方法にも同じ問題が生じる。
【０００６】
より効率的でより高いデータ・スループットを有する非同期データバッファを提供することが望まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、レイテンシを大幅に低減することによって、より効率的でより高いデータ・スループットを有する非同期データバッファを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の目的はさらに、有効ビットのリセットまたはクリーニングを必要としない非同期データバッファを提供することにある。
【０００９】
本発明によれば、ｍ個のデータ要素を２つの非同期システム間でバースト転送するための非同期データバッファを提供することにある。この非同期データバッファは、送信システムからのデータバーストのｍ個のデータ要素を受信するためのデータ入力ポート、及びこのデータ入力ポートと通信してこれらｍ個のデータ要素を記憶するデータメモリーを具え、各データ要素は所定アドレス位置に記憶される。有効ビットメモリーには、ｍ個の入力有効ビットが記憶され、各入力有効ビットは、それぞれのデータ要素の所定アドレス位置に対応する所定アドレス位置に記憶される。これらのデータメモリー及び有効ビットメモリーと制御通信する入力制御論理回路はこれらのアドレス位置を決定し、ｍ個の有効ビットを生成し、そして入力有効ビットを次のデータバースト用に反転させるための入力制御信号を供給する。出力制御論理回路は、上記データメモリー、上記有効ビットメモリー、及び有効ビット出力ポートと通信して、上記ｍ個のデータ要素の読出し、及びこれらのデータ要素の受信システムへの供給を制御し、上記ｍ個の入力有効ビット及び出力制御信号に基づいてｍ個の出力有効ビットを生成し、これらｍ個の出力有効ビットは受信システムに供給され、そして、上記データメモリー及び上記有効ビットメモリーと制御通信する制御論理回路を反転させる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の好適な実施例について図面を参照しながら説明する。
【００１１】
本発明は種々の変形及び代案の形態にすることができるが、その詳細を例として図に示して詳細に説明する。しかし、その意図は本発明を以下に説明する特定実施例に限定することにはない。逆に、その意図は、請求項に記載する本発明の範囲内に入るすべての変形、等価なもの、及び代案をカバーすることにある。
【００１２】
本発明による非同期データバッファ及びその動作のより良い理解を提供するために、非同期データバッファの実施例を用いた２つのシステム間の通信を、以下に図１を参照しながら説明する。２つの異なるクロック領域、即ちそれぞれクロック信号clk_A及びclk_Bにリンクされた送信システムＡと受信システムＢとの間のデータ転送中のデータ損失を回避するために、ハンドシェイク・プロトコルを実現する。送信システムＡが受信システムＢにデータを送信し始める前に、受信システムＢはデータ、必ずしもすべてのデータが失われないならば少なくともデータの一部分を受信する用意ができている必要がある。図１に示すように、送信システムＡはハンドシェイク信号hs_Aを送信することによってデータ転送を要求し、そして、受信システムＢがハンドシェイク信号sh_Bを送信システムＡに送信することによってデータを受信する用意ができていることを確認応答（アクノレッジ）するまで待機する。これら２つのシステム間のデータ・スループットを増加させるためにバースト転送を使用し、即ち、個々のデータ要素毎にハンドシェイクを実行する代わりに、データ転送が受信システムＢによって確認応答されると複数のデータ要素を送信する。この場合には、受信システムＢは、ハンドシェイク信号hs_Ｂを送信する際に、ｍ個のｎビットデータ要素を受信する用意ができていることを確認応答する。送信システムＡのクロック領域clk_Aが受信システムＢのクロック領域clk_Bより高い周波数を有する際の、例えばＣＰＵとディスクドライブのような周辺装置との間のデータ転送におけるデータ損失を防止するために、非同期データバッファ１００を送信システムＡと受信システムＢとの間に挿入する。受信システムＢがデータを受信する用意ができていることを確認応答した後に、送信システムＡは、ｍ個のデータ要素の各々についてライトイネーブル（書込み許可）信号WE及び出力dout[n]上のデータ要素を送信することによって、ｍ個のデータ要素をデータバッファ１００に転送して記憶させる。バースト転送当りのデータ要素数ｍの増加に伴うバースト転送のレイテンシの増加を回避するために、送信システムＡと受信システムＢとは同時にデータバッファ１００にアクセスする必要があり、即ち、受信システムＢは、送信システムＡがｍ個のデータ要素をデータバッファ１００のメモリーに完全に書き込むまでデータ要素の読出しを待たない。しかし、異なるクロック領域にリンクされた２つのシステムは同じメモリー上で動作するので、準安定性の問題によりデータ破壊が発生しやすい。この問題は、データ要素がデータバッファのメモリーに記憶される毎に、記憶されたデータ要素が、ハンドシェイク信号ha_A及びhs_Bによって確認応答された現在のｍ個のデータ要素のバースト転送に属することを受信システムＢに示す有効ビットを生成することによって克服される。
【００１３】
図２に、本発明による非同期データバッファ１００の実施例のブロック図を示す。データバッファ１００は、送信システムＡに接続される入力ポート１０２及びライトイネーブル入力ポート１０４、及び受信システムＢに接続されるデータ出力ポート１０６、リードイネーブル（読出し許可）入力ポート１０８、及び有効ビット出力ポート１１０を具えている。図２に縦の点線で示すように、データバッファ１００は２つの部分を具え、即ち：送信システムＡに接続される、従ってクロック領域clk_Aにリンクされる左側のデータ入力部分、及び受信システムＢに接続される、従ってクロック領域clk_Bにリンクされる右側のデータ出力部分を具えている。データ入力ポート１０２はデータメモリー１１２のデータ入力ポートＤに接続され、データメモリー１１２は、各ｎビットのｍ個のデータ要素用の記憶空間、即ちシステムＡとシステムＢとの間のバースト転送に最大あり得るサイズを有するＲＡＭであることが好ましい。ライトイネーブル入力ポート１０４は、データメモリー１１２のライトイネーブル入力ポートWE、有効ビットメモリー１１４のライトイネーブル入力ポートWE、及び入力制御論理回路１１６に接続され、有効ビットメモリー１１４はｍビットのＲＡＭであることが好ましい。入力制御論理回路１１６は、データメモリー１１２のアドレス入力ポートＡ及び有効ビットメモリー１１４のアドレス入力ポートＡに接続されて、これらに論理信号を供給する。
【００１４】
実施例では、入力制御論理回路１１６が、バイナリ（２進）アドレスカウンタのような入力カウンタ１１８及び有効ビット発生器を具え、有効ビット発生器は入力トグル・フリップフロップ１２０と入力ＸＯＲ（排他的論理和）ゲート１１２との組合せである。入力カウンタ１１８は、ライトイネーブル入力ポート１０４に接続されたＥ入力ポート、メモリー１１２及び１１４のそれぞれのアドレス入力ポートＡに接続されたＱ出力ポート、及び入力トグル・フリップフロップ１２０の入力ポートＥに接続されたＣ出力ポートを具えている。入力ＸＯＲゲート１２２は、それぞれライトイネーブル入力ポート１０４及び入力トグル・フリップフロップ１２０のＥ入力ポートに接続された第１及び第２入力ポート、及び有効ビットメモリー１１４のデータ入力ポートＤに接続された出力ポートを具えている。
【００１５】
動作中には、ライトイネーブル信号WEを受信すると、データ要素のメモリー１１２への書込みがこれに続き、カウンタ１１８は第１入力論理信号（の値）を増加させ、この第１入力論理信号をメモリー１１２の入力ポートに送信することによってメモリー１１２内の次の空き位置をアドレス指定する。同時に、入力有効ビット、即ちバイナリ（２進数）０または１が、ＸＯＲゲート１２２において、入力トグル・フリップフロップ１２０から受信した論理信号及びライトイネーブル信号WEに基づいて生成され、そして入力有効ビットは有効ビットメモリー１１４に記憶され、そのアドレス位置は、第１入力論理信号によって制御されるデータ要素のアドレス位置に対応する。ライトイネーブル信号WEが常に同じ、好適にはバイナリ信号０または１であり、入力トグル・フリップフロップ１２０が同じ、好適にはバイナリ信号０または１を生成すれば、第３入力論理信号を入力カウンタ１１８から受信するまで、同じ入力有効ビットが生成される。ｍ個のデータ要素に対応するｍ個のライトイネーブル信号を受信した後に、入力カウンタ１１８はループバックして（一巡して元の値に戻って）、第３入力論理信号を入力トグル・フリップフロップ１２０に送信する。第３入力論理信号の受信時に、入力トグル・フリップフロップ１２０は反転された第２入力論理信号を生成し、この信号はＸＯＲゲート１２２に反転された有効ビットを生成させ、即ち有効ビットをバイナリ０からバイナリ１、またはその逆に変化させる。従って、ｍ個のデータ要素の各バースト転送後に入力有効ビットが自動的に反転され、前のバースト転送のデータ要素をすべて無効にする。
【００１６】
データバッファ１００のデータ出力部分は、有効ビット同期回路１２３、有効ビット・マルチプレクサ（多重器）１２４、出力データ・マルチプレクサ１２５、及び出力制御論理回路１２６を具えている。有効ビット同期回路１２３は、有効ビットメモリー１１４のデータ出力ポートＱ及び有効ビット・マルチプレクサ１２４のデータ入力ポートに接続され、本実施例ではｍ個の並列な２段同期装置synch[1]〜synch[m]、即ち、ｍ個のデータ要素に対応するｍ個の入力有効ビット毎に１つの同期装置を具え、各２段同期装置は直列に接続された２つのフリップフロップ１２３Ａ及び１２３Ｂを具え、第１フリップフロップ１２３Ａは送信システムＡのクロック領域clk_Aにリンクされ、第２フリップフロップ１２３Ｂは受信システムＢのクロック領域clk_Bにリンクされている。動作中には、有効ビット同期回路１２３は入力有効ビットを受信システムＢのクロック領域clk_Bにリンクさせる。有効ビット・マルチプレクサ１２４のデータ入力ポートは有効ビット同期回路１２３に接続され、そのデータ出力ポート及び制御論理入力ポートは出力制御論理回路１２６に接続されている。出力制御論理回路１２６から受信した第１出力論理信号に応じて、有効ビット・マルチプレクサ１２４は入力有効ビットを、ｍ個の同期装置synch[1]〜synch[m]のうちの１つから転送する。出力データ・マルチプレクサ１２５のデータ入力ポートはデータメモリー１１２のデータ出力ポートＱに接続され、出力データ・マルチプレクサ１２５のデータ出力ポートはデータ出力ポート１０６に接続され、その制御論理入力ポートは出力制御論理回路１２６に接続されている。出力論理制御回路１２６から受信した第１出力論理信号に応じて、出力データ・マルチプレクサ１２５は、データメモリー１１２内の対応するアドレス位置からのｍ個のデータ要素のうちの１つを転送する。
【００１７】
本実施例では、出力制御論理回路１２６は入力制御論理回路１１６と同様の構造のものであり、バイナリアドレスカウンタのような出力カウンタ１２８、及び出力トグル・フリップフロップ１３０と出力ＸＯＲゲート１３２との組合せを具えている。出力カウンタ１２８は、リードイネーブル入力ポート１０８に接続されたＥ入力ポート、マルチプレクサ１２４及び１２５のそれぞれの制御論理入力ポートに接続されたＱ出力ポート、及び出力トグル・フリップフロップ１３０のＥ入力ポートに接続されたＣ出力ポートを具えている。出力ＸＯＲゲート１３２は、それぞれ有効ビット・マルチプレクサ１２４のデータ出力ポート及び出力トグル・フリップフロップ１３０のＱ出力ポートに接続された第１及び第２入力ポート、及び有効ビット出力ポート１１０に接続された出力ポートを具えている。
【００１８】
動作中には、リードイネーブル信号REを受信すると、従ってデータ要素をメモリー１１２から読み出す際に、出力カウンタ１２８が第１出力論理信号（の値）を増加させ、この第１出力論理信号をデータ・マルチプレクサ１２５の制御論理入力ポートに送信することによってメモリー１１２内の次の位置をアドレス指定する。同時に、出力有効ビット、即ちバイナリ０または１が、ＸＯＲゲート１３２において、出力トグル・フリップフロップ１３０から受信した第２出力論理信号及び有効ビット・マルチプレクサ１２４から受信した入力有効ビットに基づいて生成され、そして出力有効ビットは有効ビット出力ポート１１０に転送され、入力有効ビットの供給は、有効ビット・マルチプレクサ１２４に供給される第１出力論理信号によって制御される。入力有効ビットがバースト転送のｍ個のデータ要素について同じであり、出力トグル・フリップフロップ１３０が同じ、好適にはバイナリ信号０または１を生成すれば、第３出力論理信号を出力カウンタ１２８から受信するまで、同じ出力有効データが生成される。ｍ個のデータ要素に対応するｍ個のリードイネーブル信号REを受信した後に、出力カウンタ１２８はループバックして、第３出力論理信号を出力トグル・フリップフロップ１３０に送信する。第３出力論理信号の受信時に、出力トグル・フリップフロップ１３０は反転された第２出力論理信号を生成する。反転された入力有効ビット及び反転された出力論理信号を受信して、出力ＸＯＲ１３２は次のバースト転送において同じ出力有効ビットを生成して受信システムＢに供給する。従って、本発明によるデータバッファ１００は、ｍ個のデータ要素の各バースト転送後に、入力有効ビットを内部的かつ自動的に反転させ、前のバースト転送のデータ要素をすべて無効にするが、同じ出力有効ビットを受信システムＢに供給する。
【００１９】
図３に、本発明による非同期データバッファを用いてｍ個のデータ要素をバースト転送する方法の簡略化した流れ図を示す。以下では、本発明の方法を、非同期データバッファの入力部分及び出力部分に関係する２つの部分に分けて説明する。図３の流れ図に示すように、バースト転送の最初のデータ要素がデータメモリーに記憶されたことを示す最初の有効ビットを一旦検出すると、これら２つの部分は同時に実行される。
【００２０】
ボックス１０では、最初のライトイネーブル信号WE、及びバースト転送のｍ個のデータ要素の最初のものを送信システムＡから受信する。そしてボックス１２では、この最初のデータ要素がデータメモリー１１２内の最初のアドレス位置に記憶される。ボックス１１４では、最初のライトイネーブル信号WE及び入力制御信号を用いて、最初の入力有効ビットが生成され、有効ビットメモリー１１４の最初のアドレス位置に記憶される。ボックス１６では、このライトイネーブル信号WEをさらに用いてアドレス位置を増加させる。そしてボックス１８では、ボックス１０〜１６で示す以上のステップを、ｍ番目のライトイネーブル信号WE及びｍ番目のデータ要素を受信するまで繰り返す。ボックス２０では、ｍ番目のデータ要素がデータメモリー１１２内のｍ番目のアドレス位置に記憶される。ボックス２２では、ｍ番目のライトイネーブル信号WE及び入力制御信号を用いてｍ番目の入力有効ビットが生成され、有効ビットメモリー１１４内のｍ番目のアドレス位置に記憶される。最後に、ボックス２４では、ｍ番目のライトイネーブル信号WEを用いて最初のアドレス位置にループバックして（戻って）入力制御信号を反転させ、次のバースト転送用に反転された入力有効ビットを生成する。
【００２１】
ボックス３０では、最初のリードイネーブル信号REを受信システムＢから受信する。そしてボックス３２では、有効ビットメモリー１１４の最初のアドレス位置から最初の入力有効ビットを取り出す。ボックス３４では、このステップに続いて、この最初の入力有効ビット及び出力制御信号を用いて最初の出力有効ビットを生成して受信システムＢに供給する。ボックス３６では、最初の出力有効ビットを確認すると、データメモリー１１２内の最初のアドレス位置から最初のデータ要素を取り出して受信システムＢに供給する。ボックス３８では、最初のリードイネーブル信号REを用いてアドレス位置を増加させる。そしてボックス４０では、ボックス３０〜３８で示す以上のステップを、ｍ番目のリードイネーブル信号REを受信するまで繰り返す。そしてボックス４２では、有効ビットメモリー１１４内のｍ番目のアドレス位置からｍ番目の入力有効ビットを取り出す。ボックス４４では、このステップに続いて、ｍ番目の入力有効ビット及び出力制御信号を用いてｍ番目の出力有効ビットを生成して受信システムＢに供給する。ボックス４６では、ｍ番目の出力有効ビットを確認すると、データメモリー１１２内のｍ番目のアドレス位置からｍ番目のデータ要素を取り出して受信システムＢに供給する。最後に、ボックス４８では、ｍ番目のリードイネーブル信号REを用いて最初のアドレス位置にループバックして出力制御信号を反転させ、次のバースト転送中に、反転された入力有効ビットと共に処理される際と同じ出力有効ビットを生成する。
【００２２】
非同期データバッファ１００は、２つの非同期システム間のバースト転送のデータ要素を、各バースト転送後に反転させた有効ビットで個別に同期させることによって非常に有利になる。従って、非同期データバッファ１００は、有効ビットのクリーニングまたはリセットの必要性をなくすことによってレイテンシを大幅に低減しつつ、準安定問題のリスクを大幅に低減した、送信システム並びに受信システムによる同時アクセスを可能にする。さらに、非同期データバッファ１００は、ゲートカウント数が低く、入力制御論理回路１１６と出力制御論理回路１２６とのほぼ同じ設計である単純な設計によって容易に実現され、設計及び製造コストを大幅に低減する。すべての構成要素が単一の半導体チップ上に集積されることが好ましく、このことは、ほぼ同じ製造ステップを必要とする同一設計の構成要素を入力制御論理回路１１６及び出力制御論理回路１２６に用いることによって促進される。随意的に、非同期データバッファ１００はシステムＡ及びＢの一方と共に単一の半導体チップ上に集積される。例えば、非同期データバッファ１００は、２つの非同期システム間のバースト転送を可能にするシステムバスの実現において非常に有用である。バースト転送についてのシステム要求を知れば、記憶媒体上に記憶された上述した事項に基づくコマンドを実行することによって、コンピュータ上の非同期データバッファ１００を設計することが可能である。
【００２３】
本発明による非同期データバッファ１００の実現を実施例を用いて例示してきたが、こうした実現はこの実施例に限定されないことは明らかである。入力有効ビットの反転を実現し、同じ有効ビットを生成するための多くの可能性が存在する。非同期データバッファ１００の論理回路は、実施例と組み合わせて開示したバイナリ０及び１以外の論理信号を入力及び出力有効ビットとして生成するように容易に構成することができる。随意的に、非同期データバッファ１００の論理回路は、１つのライトイネーブル及び／またはリードイネーブル信号を受信して、例えばクロック信号clk_A及びclk_Bによって制御されるｍ個のデータ要素を連続的に書込み及び／または読出しするように構成することができる。さらに、図２に示す実現は、クロックパルスの立上りエッジによってトリガされるエッジトリガの論理構成要素を具えているが、クロックパルスの立下りエッジを用いることも可能であることは明らかである。
【００２４】
請求項に規定する本発明の範囲を逸脱しない本発明の他の多くの実施例が、当業者にとって明らかである。
【図面の簡単な説明】
【００２５】
【図１】本発明による非同期データバッファを用いた２つの非同期システム間の通信を示す簡略化したブロック図である。
【図２】本発明による非同期データバッファの実施例を示す簡略化したブロック図である。
【図３】本発明による非同期データバッファを用いたデータ転送を示す簡略化した流れ図である。
【図１】
2009503640.tif 000003
【図２】
2009503640.tif 000004
【図３】
2009503640.tif 000005
【国際調査報告】
2009503640.tif 000006
2009503640.tif 000007