JPH1124889A - 先入れ先出しデータ・バッファリング・システム - Google Patents
先入れ先出しデータ・バッファリング・システムInfo
- Publication number
- JPH1124889A JPH1124889A JP10035954A JP3595498A JPH1124889A JP H1124889 A JPH1124889 A JP H1124889A JP 10035954 A JP10035954 A JP 10035954A JP 3595498 A JP3595498 A JP 3595498A JP H1124889 A JPH1124889 A JP H1124889A
- Authority
- JP
- Japan
- Prior art keywords
- data
- buffer
- write
- flag register
- counter block
- 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.)
- Pending
Links
- 230000003139 buffering effect Effects 0.000 title abstract description 8
- 239000000872 buffer Substances 0.000 claims abstract description 77
- 238000012546 transfer Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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/10—Methods 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 each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
- G06F5/12—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
- G06F5/14—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/12—Indexing scheme relating to groups G06F5/12 - G06F5/14
- G06F2205/126—Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
(57)【要約】
【課題】 データ損失とスプリアスなデータ送信を最小
にすることによって、信頼性の高いシステムを提供する
こと。特に、従来のデータ・バッファリングFIFO方
式を改良すること。 【解決手段】 データを、少なくとも1つの関連するバ
ッファ・ポインタを有する先入れ先出しデータ・バッフ
ァの中に及びその中から外へ転送するシステムであっ
て、コンパレータ回路(13)と、ポインタ位置をトラ
ッキングする複数のカウンタ・ブロック(22)と、相
対的なバッファ容量を指示する複数のフラグ・レジスタ
(12)とを備え、コンパレータ回路は、カウンタ・ブ
ロックとフラグ・レジスタとを評価し、バッファがデー
タを受け取る又は送出する能力を判断する。
にすることによって、信頼性の高いシステムを提供する
こと。特に、従来のデータ・バッファリングFIFO方
式を改良すること。 【解決手段】 データを、少なくとも1つの関連するバ
ッファ・ポインタを有する先入れ先出しデータ・バッフ
ァの中に及びその中から外へ転送するシステムであっ
て、コンパレータ回路(13)と、ポインタ位置をトラ
ッキングする複数のカウンタ・ブロック(22)と、相
対的なバッファ容量を指示する複数のフラグ・レジスタ
(12)とを備え、コンパレータ回路は、カウンタ・ブ
ロックとフラグ・レジスタとを評価し、バッファがデー
タを受け取る又は送出する能力を判断する。
Description
【0001】
【発明の属する技術分野】本発明は、一般には、電子回
路に関し、更に詳しくは、先入れ先出し(FIFO)ヒ
エラルキを用いて、2つのクロック領域の間の信号のデ
ータ・バッファリングに関する。
路に関し、更に詳しくは、先入れ先出し(FIFO)ヒ
エラルキを用いて、2つのクロック領域の間の信号のデ
ータ・バッファリングに関する。
【0002】
【従来の技術】コンピュータ・ネットワークなどの多く
のデータ処理及び通信デバイスでは、異なる周波数で動
作している構成要素の間での通信が必要となる。そのよ
うな非同期式の通信に伴う問題の1つとして、データ書
き込み要素とデータ読み出し要素との間のデータ通信
が、データの損失やスプリアス転送を防止するために注
意深く制御されなければならない、という問題がある。
データ書き込み要素が、データを、データ読み出し要素
が受け取ることができるのよりも高速で送出する場合に
は、情報が失われる可能性がある。また、データ受信要
素がデータ書き込み要素よりも速く受け取る場合には、
同じデータが2回受信される可能性がある。
のデータ処理及び通信デバイスでは、異なる周波数で動
作している構成要素の間での通信が必要となる。そのよ
うな非同期式の通信に伴う問題の1つとして、データ書
き込み要素とデータ読み出し要素との間のデータ通信
が、データの損失やスプリアス転送を防止するために注
意深く制御されなければならない、という問題がある。
データ書き込み要素が、データを、データ読み出し要素
が受け取ることができるのよりも高速で送出する場合に
は、情報が失われる可能性がある。また、データ受信要
素がデータ書き込み要素よりも速く受け取る場合には、
同じデータが2回受信される可能性がある。
【0003】そのような要素の間では、先入れ先出し
(FIFO)バッファが、通常は用いられる。FIFO
の動作の間に、第1の素子がデータをFIFOバッファ
に書き込み、第2の素子はそのFIFOバッファから読
み出す。それぞれの素子は、自分自身のクロック周波数
に従って、読み出し又は書き込みを行う。異なる周波数
を有する2つの異なる素子が読み出し及び書き込み動作
タイミングを制御するので、バッファは、非同期の態様
で動作され、読み出し及び書き込み動作の間の時間の分
離は、非常に短いことがあり得る。
(FIFO)バッファが、通常は用いられる。FIFO
の動作の間に、第1の素子がデータをFIFOバッファ
に書き込み、第2の素子はそのFIFOバッファから読
み出す。それぞれの素子は、自分自身のクロック周波数
に従って、読み出し又は書き込みを行う。異なる周波数
を有する2つの異なる素子が読み出し及び書き込み動作
タイミングを制御するので、バッファは、非同期の態様
で動作され、読み出し及び書き込み動作の間の時間の分
離は、非常に短いことがあり得る。
【0004】
【発明が解決しようとする課題】データをバッファする
場合の問題は、バッファのサイズが有限であることであ
る。データ書き込み要素が一定の時間周期の間にデータ
読み出し要素よりも高速に動作すると、バッファは、オ
ーバフローしてしまうので、データ損失を生じさせる。
データ読み出し要素の方が高速に動作する場合には、バ
ッファは空になり、データ読み出し要素は無効なデータ
を受け取ることがあり得る。
場合の問題は、バッファのサイズが有限であることであ
る。データ書き込み要素が一定の時間周期の間にデータ
読み出し要素よりも高速に動作すると、バッファは、オ
ーバフローしてしまうので、データ損失を生じさせる。
データ読み出し要素の方が高速に動作する場合には、バ
ッファは空になり、データ読み出し要素は無効なデータ
を受け取ることがあり得る。
【0005】データ・バッファの充填状態を規制しデー
タ損失及びスプリアス送出の問題を補償することは困難
である。従って、非同期システムに共通するエラーを最
小にするように、FIFOバッファの充填状態をモニタ
及び維持する必要性がある。
タ損失及びスプリアス送出の問題を補償することは困難
である。従って、非同期システムに共通するエラーを最
小にするように、FIFOバッファの充填状態をモニタ
及び維持する必要性がある。
【0006】従って、本発明の目的は、データ損失及び
スプリアス・データ送出を最小にすることにより、非同
期レートでデータを送出する信頼できるシステムを提供
することである。
スプリアス・データ送出を最小にすることにより、非同
期レートでデータを送出する信頼できるシステムを提供
することである。
【0007】本発明の別の目的は、安定しているシステ
ムと信頼できる充填状態フラグとを提供することによっ
て、伝統的なデータ・バッファFIFO方式を改良する
ことである。
ムと信頼できる充填状態フラグとを提供することによっ
て、伝統的なデータ・バッファFIFO方式を改良する
ことである。
【0008】
【課題を解決するための手段】本発明によると、少なく
とも1つの関連するバッファ・ポインタを有する先入れ
先出しデータ・バッファの中へ及びこのデータ・バッフ
ァの中から外へデータを転送するシステムが与えられ
る。バッファ・ポインタは、典型的には、読み出しバッ
ファ・ポインタと、書き込みバッファ・ポインタとを有
している。
とも1つの関連するバッファ・ポインタを有する先入れ
先出しデータ・バッファの中へ及びこのデータ・バッフ
ァの中から外へデータを転送するシステムが与えられ
る。バッファ・ポインタは、典型的には、読み出しバッ
ファ・ポインタと、書き込みバッファ・ポインタとを有
している。
【0009】このシステムは、コンパレータ回路と、複
数のカウンタ・ブロックと、複数のフラグ・レジスタと
を含む。カウンタ・ブロックとフラグ・レジスタとは、
システム・クロックに接続され、タイミング情報及び容
量指示とコンパレータに与える。
数のカウンタ・ブロックと、複数のフラグ・レジスタと
を含む。カウンタ・ブロックとフラグ・レジスタとは、
システム・クロックに接続され、タイミング情報及び容
量指示とコンパレータに与える。
【0010】カウンタ・ブロックは、複数の読み出しカ
ウンタ・ブロックと複数の書き込みカウンタ・ブロック
とを含む。読み出しカウンタ・ブロックは、読み出しク
ロック、ほとんど空(almost empty)のフラグ・レジス
タ、及び空(empty)のフラグ・レジスタと相互作用す
る。書き込みカウンタ・ブロックは、書き込みクロッ
ク、ほとんど満たされた(almost full)フラグ・レジ
スタ、及び満たされた(full)フラグ・レジスタと相互
作用する。
ウンタ・ブロックと複数の書き込みカウンタ・ブロック
とを含む。読み出しカウンタ・ブロックは、読み出しク
ロック、ほとんど空(almost empty)のフラグ・レジス
タ、及び空(empty)のフラグ・レジスタと相互作用す
る。書き込みカウンタ・ブロックは、書き込みクロッ
ク、ほとんど満たされた(almost full)フラグ・レジ
スタ、及び満たされた(full)フラグ・レジスタと相互
作用する。
【0011】コンパレータ回路は、複数のカウンタ・ブ
ロックを連続的にモニタし、それによって、ポインタ位
置をトラッキングする。フラグ・レジスタは、相対的な
バッファ容量を指示し、システムに、バッファが適切な
条件においてほとんど満たされている又はほとんど空で
あるという早期の指示を提供する。
ロックを連続的にモニタし、それによって、ポインタ位
置をトラッキングする。フラグ・レジスタは、相対的な
バッファ容量を指示し、システムに、バッファが適切な
条件においてほとんど満たされている又はほとんど空で
あるという早期の指示を提供する。
【0012】コンパレータ回路は、読み出し及び書き込
みカウンタ・ブロックを連続的に評価し、バッファがデ
ータを受け入れる又は送出する能力を判断する。
みカウンタ・ブロックを連続的に評価し、バッファがデ
ータを受け入れる又は送出する能力を判断する。
【0013】フラグ・レジスタは、それぞれが、各状態
の変化に対してただ1つの桁を変更するグレイ・カウン
タから構成される。
の変化に対してただ1つの桁を変更するグレイ・カウン
タから構成される。
【0014】カウンタ・ブロックは、適切なバッファ・
ポインタをトラッキングする1つの一次(primary)カ
ウンタ・ブロックと、バッファ・ポインタから所定の回
数だけオフセットしたデータをトラッキングする少なく
とも1つの二次(secondary)カウンタ・ブロックとを
含む。動作の間に好適実施例では、一次カウンタ・ブロ
ックは、適切なポインタをトラッキングし、他方で、二
次カウンタ・ブロックは、1クロック・サイクルとポイ
ンタに先行する2クロック・サイクルとをトラッキング
する2つのカウンタ・ブロックを含む。例えば、書き込
みカウンタ・ブロックは、ポインタをトラッキングする
一次書き込みカウンタ・ブロックと、一方が書き込みポ
インタ・プラス1フレームをトラッキングし他方が書き
込みポインタ・プラス2フレームとトラッキングする2
つの二次カウンタ・ブロックとを含む。本発明の技術的
範囲に留まりながら、より多くの又はより少数のカウン
タ・ブロックを用いることもできる。
ポインタをトラッキングする1つの一次(primary)カ
ウンタ・ブロックと、バッファ・ポインタから所定の回
数だけオフセットしたデータをトラッキングする少なく
とも1つの二次(secondary)カウンタ・ブロックとを
含む。動作の間に好適実施例では、一次カウンタ・ブロ
ックは、適切なポインタをトラッキングし、他方で、二
次カウンタ・ブロックは、1クロック・サイクルとポイ
ンタに先行する2クロック・サイクルとをトラッキング
する2つのカウンタ・ブロックを含む。例えば、書き込
みカウンタ・ブロックは、ポインタをトラッキングする
一次書き込みカウンタ・ブロックと、一方が書き込みポ
インタ・プラス1フレームをトラッキングし他方が書き
込みポインタ・プラス2フレームとトラッキングする2
つの二次カウンタ・ブロックとを含む。本発明の技術的
範囲に留まりながら、より多くの又はより少数のカウン
タ・ブロックを用いることもできる。
【0015】動作の間に、コンパレータは、イネーブル
要求(リクエスト)、すなわち、読み出しイネーブル要
求又は書き込みイネーブル要求を受け取り、バッファの
状態を評価してその要求に応える(honor)、すなわ
ち、通過させる(pass along)かどうかを決定しなけれ
ばならない。コンパレータは、次に、カウンタ・ブロッ
クとフラグ・レジスタとを連続的にモニタし、バッファ
の状態を判断する。書き込みイネーブル要求を受け取る
と直ちに、コンパレータは、書き込みカウンタ・ブロッ
クと満たされた及びほとんど満たされたフラグ・レジス
タをモニタし、バッファが満たされているか又はほとん
ど満たされているかを判断する。満たされた又はほとん
ど満たされたフラグが設定されていない場合には、コン
パレータは、書き込みイネーブルを生じ、3つの書き込
みカウンタ・ブロック位置をインクリメントする。バッ
ファが満たされており満たされたデータ・レジスタが設
定されている場合には、コンパレータは、要求を拒否す
る。ほとんど満たされたフラグが設定されている場合に
は、システムは、書き込み要求を生じ、カウンタを1つ
だけインクリメントする。
要求(リクエスト)、すなわち、読み出しイネーブル要
求又は書き込みイネーブル要求を受け取り、バッファの
状態を評価してその要求に応える(honor)、すなわ
ち、通過させる(pass along)かどうかを決定しなけれ
ばならない。コンパレータは、次に、カウンタ・ブロッ
クとフラグ・レジスタとを連続的にモニタし、バッファ
の状態を判断する。書き込みイネーブル要求を受け取る
と直ちに、コンパレータは、書き込みカウンタ・ブロッ
クと満たされた及びほとんど満たされたフラグ・レジス
タをモニタし、バッファが満たされているか又はほとん
ど満たされているかを判断する。満たされた又はほとん
ど満たされたフラグが設定されていない場合には、コン
パレータは、書き込みイネーブルを生じ、3つの書き込
みカウンタ・ブロック位置をインクリメントする。バッ
ファが満たされており満たされたデータ・レジスタが設
定されている場合には、コンパレータは、要求を拒否す
る。ほとんど満たされたフラグが設定されている場合に
は、システムは、書き込み要求を生じ、カウンタを1つ
だけインクリメントする。
【0016】コンパレータは、読み出し及び書き込みカ
ウンタ・ブロックの相対位置とバッファ容量とを同時に
モニタしている。バッファ・サイズ(B)が二次書き込
みカウンタ・ブロック(W+2)よりも大きい又はそれ
と等しい場合には、「ほとんど満たされた」フラグ・レ
ジスタが設定される。バッファ・サイズBが一次書き込
みカウンタ・ブロック(W)と等しい場合には、「ほと
んど満たされた」フラグが設定され、そして、「満たさ
れた」フラグが設定される。満たされたフラグを設定す
る際には、指示されるように、書き込みイネーブル要求
がブロックされる。同様の構成が、読み出しカウンタ・
ブロックに対しても生じる。コンパレータは、充填状態
を連続してモニタし、バッファがもはや満たされておら
ずほとんど満たされているときには、満たされたフラグ
・レジスタを除去するすなわちローに設定する。空の指
示に対しても同様である。従って、コンパレータは、読
み出し及び書き込み要求、読み出し及び書き込みカウン
タ・ブロック、及びフラグ・レジスタと必然的に一定し
て相互作用してモニタし、適切なときに読み出し及び書
き込み要求を適切に生じる。
ウンタ・ブロックの相対位置とバッファ容量とを同時に
モニタしている。バッファ・サイズ(B)が二次書き込
みカウンタ・ブロック(W+2)よりも大きい又はそれ
と等しい場合には、「ほとんど満たされた」フラグ・レ
ジスタが設定される。バッファ・サイズBが一次書き込
みカウンタ・ブロック(W)と等しい場合には、「ほと
んど満たされた」フラグが設定され、そして、「満たさ
れた」フラグが設定される。満たされたフラグを設定す
る際には、指示されるように、書き込みイネーブル要求
がブロックされる。同様の構成が、読み出しカウンタ・
ブロックに対しても生じる。コンパレータは、充填状態
を連続してモニタし、バッファがもはや満たされておら
ずほとんど満たされているときには、満たされたフラグ
・レジスタを除去するすなわちローに設定する。空の指
示に対しても同様である。従って、コンパレータは、読
み出し及び書き込み要求、読み出し及び書き込みカウン
タ・ブロック、及びフラグ・レジスタと必然的に一定し
て相互作用してモニタし、適切なときに読み出し及び書
き込み要求を適切に生じる。
【0017】カウンタ・ブロックは、高度に均衡してお
り、コンパレータに対する短いセットアップ時間を保証
する。フラグ・レジスタは、データ転送の対して最小の
時間ウィンドウを保証するフリップフロップを介して同
期される。
り、コンパレータに対する短いセットアップ時間を保証
する。フラグ・レジスタは、データ転送の対して最小の
時間ウィンドウを保証するフリップフロップを介して同
期される。
【0018】本発明のこれ以外の目的、特徴、及び効果
は、以下の詳細な説明と添付の図面とを考察することか
ら、更に明らかになろう。
は、以下の詳細な説明と添付の図面とを考察することか
ら、更に明らかになろう。
【0019】
【発明の実施の形態】図1は、本発明によるFIFOバ
ッファリング構成を図解している。データ書き込み要素
10すなわち送出側デバイスは、データを第1のデータ
・レートで書き込む。データ読み出し要素11すなわち
受け取り側デバイスは、第2のデータ・レートでデータ
を読み出す。データ書き込み要素10とデータ読み出し
要素11とが異なるレートで動作することは要求されな
いが、この出願で開示される発明は、非同期動作、すな
わち、第1のデータ・レートと第2のデータ・レートと
が異なる場合に、特に適している。
ッファリング構成を図解している。データ書き込み要素
10すなわち送出側デバイスは、データを第1のデータ
・レートで書き込む。データ読み出し要素11すなわち
受け取り側デバイスは、第2のデータ・レートでデータ
を読み出す。データ書き込み要素10とデータ読み出し
要素11とが異なるレートで動作することは要求されな
いが、この出願で開示される発明は、非同期動作、すな
わち、第1のデータ・レートと第2のデータ・レートと
が異なる場合に、特に適している。
【0020】レジスタ12は、データ書き込み要素10
とデータ読み出し要素11との間でデータをバッファす
る。コンパレータ13は、書き込みイネーブル(we)
及び読み出しイネーブル(re)の指示を、以下で述べ
るように、適切な条件の下で、送出する。
とデータ読み出し要素11との間でデータをバッファす
る。コンパレータ13は、書き込みイネーブル(we)
及び読み出しイネーブル(re)の指示を、以下で述べ
るように、適切な条件の下で、送出する。
【0021】バッファ・レジスタ12は、複数のフリッ
プフロップ、又は、ランダム・アクセス・メモリ(RA
M)、データ・レジスタ、又はそれ以外のデータ受信及
び送信デバイス又はアルゴリズムを含む。
プフロップ、又は、ランダム・アクセス・メモリ(RA
M)、データ・レジスタ、又はそれ以外のデータ受信及
び送信デバイス又はアルゴリズムを含む。
【0022】コンパレータ13は、他のシステム機能及
び位置から、読み出しイネーブル及び書き込みイネーブ
ル指示を受け取る。読み出しイネーブル要求又は書き込
みイネーブル要求を受け取ると直ぐに、コンパレータ1
3は、フラグ・レジスタとクロック位置との列を評価し
て、読み出し又は書き込み機能が生じるべきかどうかを
判断する。読み出しイネーブル又は書き込みイネーブル
要求は、所定の数のシステム・クロック・サイクル、シ
ステム読み出し素子、又はシステム書き込み素子を限定
的ではなく含む種々のソースから集まる。
び位置から、読み出しイネーブル及び書き込みイネーブ
ル指示を受け取る。読み出しイネーブル要求又は書き込
みイネーブル要求を受け取ると直ぐに、コンパレータ1
3は、フラグ・レジスタとクロック位置との列を評価し
て、読み出し又は書き込み機能が生じるべきかどうかを
判断する。読み出しイネーブル又は書き込みイネーブル
要求は、所定の数のシステム・クロック・サイクル、シ
ステム読み出し素子、又はシステム書き込み素子を限定
的ではなく含む種々のソースから集まる。
【0023】好適実施例では、コンパレータ13は、4
つのフラグ・レジスタ、すなわち、ほとんど満たされた
フラグ・レジスタ14、満たされたフラグ・レジスタ1
5、空のフラグ・レジスタ16、及びほとんど空のフラ
グ・レジスタ17をモニタする。第1の読み出しカウン
タ・ブロック21、第2の読み出しカウンタ・ブロック
22、及び第3の読み出しカウンタ・ブロック23だけ
でなく、第1の書き込みカウンタ・ブロック18、第2
の書き込みカウンタ・ブロック19、及び第3の書き込
みカウンタ・ブロック20が、コンパレータ13と4つ
のフラグ・レジスタ14、15、16及び17との両方
と相互作用する。理解し得るように、より多くの又はよ
り少数のカウンタ・ブロックを、本発明の技術的範囲を
逸脱せずに、用いることが可能である。3つのデータ・
ブロックから成る2つの組が、変動するクロック速度を
有するシステムと、コンピュータやそれ以外の電子デバ
イスにおいて用いられる種々のサイズのバッファとに対
して、適切なバッファリング性能を与えると判断されて
いる。
つのフラグ・レジスタ、すなわち、ほとんど満たされた
フラグ・レジスタ14、満たされたフラグ・レジスタ1
5、空のフラグ・レジスタ16、及びほとんど空のフラ
グ・レジスタ17をモニタする。第1の読み出しカウン
タ・ブロック21、第2の読み出しカウンタ・ブロック
22、及び第3の読み出しカウンタ・ブロック23だけ
でなく、第1の書き込みカウンタ・ブロック18、第2
の書き込みカウンタ・ブロック19、及び第3の書き込
みカウンタ・ブロック20が、コンパレータ13と4つ
のフラグ・レジスタ14、15、16及び17との両方
と相互作用する。理解し得るように、より多くの又はよ
り少数のカウンタ・ブロックを、本発明の技術的範囲を
逸脱せずに、用いることが可能である。3つのデータ・
ブロックから成る2つの組が、変動するクロック速度を
有するシステムと、コンピュータやそれ以外の電子デバ
イスにおいて用いられる種々のサイズのバッファとに対
して、適切なバッファリング性能を与えると判断されて
いる。
【0024】第1の書き込みカウンタ・ブロック18
は、一次書き込みカウンタ・ブロックとも称されるが、
次の書き込みプロセスが生じるであろう場合にカウント
し、従って、簡単のためにWとして指定されている書き
込みポインタの実際の位置をカウントする。この判断
は、図1に図解されているように、書き込みクロック2
4と共に実行される。次の書き込みカウンタ・ブロック
は、1単位のオフセットを有し、従って、第2の書き込
みカウンタ・ブロック19は、常に、1書き込みクロッ
ク・サイクルを、すなわち、第1の書き込みカウンタ・
ブロック18の1桁先をカウントする。第2の書き込み
カウンタ・ブロックは、従って、書き込みポインタ・プ
ラス1(W+1)の位置を維持する。第3の書き込みカ
ウンタ・ブロックは、常に、2桁先をカウントし、従っ
て、書き込みポインタ・プラス2桁(W+2)の位置を
維持する。第2及び第3の書き込みカウンタ・ブロック
は、二次書き込みカウンタ・ブロックである。
は、一次書き込みカウンタ・ブロックとも称されるが、
次の書き込みプロセスが生じるであろう場合にカウント
し、従って、簡単のためにWとして指定されている書き
込みポインタの実際の位置をカウントする。この判断
は、図1に図解されているように、書き込みクロック2
4と共に実行される。次の書き込みカウンタ・ブロック
は、1単位のオフセットを有し、従って、第2の書き込
みカウンタ・ブロック19は、常に、1書き込みクロッ
ク・サイクルを、すなわち、第1の書き込みカウンタ・
ブロック18の1桁先をカウントする。第2の書き込み
カウンタ・ブロックは、従って、書き込みポインタ・プ
ラス1(W+1)の位置を維持する。第3の書き込みカ
ウンタ・ブロックは、常に、2桁先をカウントし、従っ
て、書き込みポインタ・プラス2桁(W+2)の位置を
維持する。第2及び第3の書き込みカウンタ・ブロック
は、二次書き込みカウンタ・ブロックである。
【0025】読み出しカウンタ・ブロックは、ほぼ同じ
態様で動作し、第1の読み出しカウンタ・ブロック21
は、すなわち、一次読み出しカウンタ・ブロックは、読
み出しポインタRの実際の位置をカウント又はトラッキ
ングする。読み出しカウンタ・ブロックは、読み出しク
ロック25と共に動作する。第2の読み出しカウンタ・
ブロック22は、1つの読み出しクロック・サイクル・
オフセットを維持し、第1の読み出しカウンタ・ブロッ
クの1桁先、すなわち(R+1)をカウントする。第3
の読み出しカウンタ・ブロック23は、常に、2つの位
置だけ先をカウントし、従って、読み出しポインタ・プ
ラス2、すなわち(R+2)の位置を維持する。第2及
び第3の読み出しカウンタ・ブロック22及び23は、
二次読み出しカウンタ・ブロックである。
態様で動作し、第1の読み出しカウンタ・ブロック21
は、すなわち、一次読み出しカウンタ・ブロックは、読
み出しポインタRの実際の位置をカウント又はトラッキ
ングする。読み出しカウンタ・ブロックは、読み出しク
ロック25と共に動作する。第2の読み出しカウンタ・
ブロック22は、1つの読み出しクロック・サイクル・
オフセットを維持し、第1の読み出しカウンタ・ブロッ
クの1桁先、すなわち(R+1)をカウントする。第3
の読み出しカウンタ・ブロック23は、常に、2つの位
置だけ先をカウントし、従って、読み出しポインタ・プ
ラス2、すなわち(R+2)の位置を維持する。第2及
び第3の読み出しカウンタ・ブロック22及び23は、
二次読み出しカウンタ・ブロックである。
【0026】動作の間には、コンパレータ13が、書き
込みポインタ・プラス2(W+2)に等しい第3の書き
込みカウンタ・ブロック20をモニタし、同時にまた、
バッファの最大容量すなわちBをモニタする。コンパレ
ータ13がバッファ容量Bが書き込みポインタ・プラス
2よりも大きい又はそれに等しい位置にある、すなわ
ち、BがW+2以上であると判断する場合には、ほとん
ど満たされたフラグ・レジスタ14が、FIFOはほと
んど満たされていることを指示するように設定される。
コンパレータ13がバッファ容量位置と書き込みポイン
タ位置とが等しい、すなわち、BとWとが等しいと判断
し、ほとんど満たされたフラグ・レジスタ14が設定さ
れている場合には、満たされたフラグ・レジスタ15
は、FIFOは満たされており、ほとんど満たされたフ
ラグ・レジスタ14は偽(フォールス)に設定されてい
ることを指示するように設定される。満たされたフラグ
・レジスタを設定する際にほとんど満たされたフラグ・
レジスタ14をリセットするのはオプショナルである
が、その理由は、満たされたフラグ・レジスタがもはや
真(トゥルー)ではない、すなわち、読み出しポインタ
位置と書き込みポインタ位置とがもはや等しくなくなる
と、満たされたフラグ・レジスタ15は偽に設定され、
ほとんど満たされたフラグ・レジスタは真に設定される
からである。満たされたフラグ・レジスタ15を設定す
る際には、すべての書き込みイネーブル要求がブロック
される、すなわち、コンパレータ13は、書き込みイネ
ーブル要求に応答しない。この手順は、以下で、例を用
いて、更に詳細に説明される。
込みポインタ・プラス2(W+2)に等しい第3の書き
込みカウンタ・ブロック20をモニタし、同時にまた、
バッファの最大容量すなわちBをモニタする。コンパレ
ータ13がバッファ容量Bが書き込みポインタ・プラス
2よりも大きい又はそれに等しい位置にある、すなわ
ち、BがW+2以上であると判断する場合には、ほとん
ど満たされたフラグ・レジスタ14が、FIFOはほと
んど満たされていることを指示するように設定される。
コンパレータ13がバッファ容量位置と書き込みポイン
タ位置とが等しい、すなわち、BとWとが等しいと判断
し、ほとんど満たされたフラグ・レジスタ14が設定さ
れている場合には、満たされたフラグ・レジスタ15
は、FIFOは満たされており、ほとんど満たされたフ
ラグ・レジスタ14は偽(フォールス)に設定されてい
ることを指示するように設定される。満たされたフラグ
・レジスタを設定する際にほとんど満たされたフラグ・
レジスタ14をリセットするのはオプショナルである
が、その理由は、満たされたフラグ・レジスタがもはや
真(トゥルー)ではない、すなわち、読み出しポインタ
位置と書き込みポインタ位置とがもはや等しくなくなる
と、満たされたフラグ・レジスタ15は偽に設定され、
ほとんど満たされたフラグ・レジスタは真に設定される
からである。満たされたフラグ・レジスタ15を設定す
る際には、すべての書き込みイネーブル要求がブロック
される、すなわち、コンパレータ13は、書き込みイネ
ーブル要求に応答しない。この手順は、以下で、例を用
いて、更に詳細に説明される。
【0027】逆に、コンパレータ13は、読み出しポイ
ンタ・プラス2(R+2)に等しい第3の読み出しカウ
ンタ・ブロック23をモニタし、他方で、第1の書き込
みカウンタ・ブロック21、すなわち、書き込みポイン
タの位置Wを同時にモニタする。書き込みポインタが読
み出しポインタ・プラス2以下に位置している、すなわ
ち、WがR+2以下であるとコンパレータ13が判断す
る場合には、ほとんど空のフラグ・レジスタ17は、F
IFOバッファ・レジスタ12はほとんど空であること
を指示するように設定される。読み出しポインタ位置と
書き込みコンピュータ位置とが等しいとコンピュータ1
3が判断し、ほとんど空のフラグ・レジスタ17が設定
されている場合には、空のフラグ・レジスタ16は、F
IFOはこれ以上のデータを含まないことを指示するよ
うに設定される。空のフラグ・レジスタ16を設定する
際には、すべての読み出しイネーブル要求はブロックさ
れる、すなわち、コンパレータ13は、読み出しイネー
ブル要求に応答しない。やはり、書き込み側の満たされ
た設定により、空のフラグ・レジスタ16を設定する際
には、ほとんど空のフラグ・レジスタ17は、好ましく
は、ローに設定され、しかし、オプションとしては、ハ
イに留まっていてもかまわない。FIFOバッファ・レ
ジスタ12はもはや空ではないとコンパレータ13がい
ったん判断すると、空のフラグ・レジスタ16は偽に設
定され、ほとんど空のフラグ・レジスタ17は真に設定
される。
ンタ・プラス2(R+2)に等しい第3の読み出しカウ
ンタ・ブロック23をモニタし、他方で、第1の書き込
みカウンタ・ブロック21、すなわち、書き込みポイン
タの位置Wを同時にモニタする。書き込みポインタが読
み出しポインタ・プラス2以下に位置している、すなわ
ち、WがR+2以下であるとコンパレータ13が判断す
る場合には、ほとんど空のフラグ・レジスタ17は、F
IFOバッファ・レジスタ12はほとんど空であること
を指示するように設定される。読み出しポインタ位置と
書き込みコンピュータ位置とが等しいとコンピュータ1
3が判断し、ほとんど空のフラグ・レジスタ17が設定
されている場合には、空のフラグ・レジスタ16は、F
IFOはこれ以上のデータを含まないことを指示するよ
うに設定される。空のフラグ・レジスタ16を設定する
際には、すべての読み出しイネーブル要求はブロックさ
れる、すなわち、コンパレータ13は、読み出しイネー
ブル要求に応答しない。やはり、書き込み側の満たされ
た設定により、空のフラグ・レジスタ16を設定する際
には、ほとんど空のフラグ・レジスタ17は、好ましく
は、ローに設定され、しかし、オプションとしては、ハ
イに留まっていてもかまわない。FIFOバッファ・レ
ジスタ12はもはや空ではないとコンパレータ13がい
ったん判断すると、空のフラグ・レジスタ16は偽に設
定され、ほとんど空のフラグ・レジスタ17は真に設定
される。
【0028】従って、読み出しイネーブル要求を受け取
っているコンパレータ13は、図1の右側にある要素、
すなわち、第1の読み出しカウンタ・ブロック21、第
2の読み出しカウンタ・ブロック22、第3の読み出し
カウンタ・ブロック23、ほとんど空のフラグ・レジス
タ17、及び空のフラグ・レジスタ16を変更すること
ができるだけである。書き込みイネーブル要求は、コン
パレータ13が、図1の左側の要素、すなわち、第1の
書き込みカウンタ・ブロック18、第2の書き込みカウ
ンタ・ブロック19、第3の書き込みカウンタ・ブロッ
ク20、ほとんど満たされたフラグ・レジスタ14、及
び満たされたフラグ・レジスタ15を変更することを要
求する。コンパレータ13は、すべての要素をモニタし
なければならないが、受け取った特定の要求に基づくも
のだけを変更する。
っているコンパレータ13は、図1の右側にある要素、
すなわち、第1の読み出しカウンタ・ブロック21、第
2の読み出しカウンタ・ブロック22、第3の読み出し
カウンタ・ブロック23、ほとんど空のフラグ・レジス
タ17、及び空のフラグ・レジスタ16を変更すること
ができるだけである。書き込みイネーブル要求は、コン
パレータ13が、図1の左側の要素、すなわち、第1の
書き込みカウンタ・ブロック18、第2の書き込みカウ
ンタ・ブロック19、第3の書き込みカウンタ・ブロッ
ク20、ほとんど満たされたフラグ・レジスタ14、及
び満たされたフラグ・レジスタ15を変更することを要
求する。コンパレータ13は、すべての要素をモニタし
なければならないが、受け取った特定の要求に基づくも
のだけを変更する。
【0029】イネーブル要求を受け取る及び付与する際
には、コンパレータ13は、レジスタ12に対して、読
み出しイネーブル又は書き込みイネーブルのどちらかが
生じなければならないことを指示し、その適切なイネー
ブルに対するカウンタ・ブロックのそれぞれが、インク
リメントされる。例えば、書き込みイネーブルが要求さ
れ、コンパレータ13が、フラグ・レジスタ14、1
5、16及び17の現在の状態を評価して、書き込みイ
ネーブルが適切であると判断すると、書き込みイネーブ
ルがコンパレータ13からレジスタ12に指示され、書
き込みフラグ・カウンタ・ブロック18、19及び20
が、1だけインクリメントされる。そのような場合に
は、第1の書き込みカウンタ・ブロック18は、位置
W’=W+1を、第2の書き込みカウンタ・ブロック1
9は、位置W’+1=W+2を、第3の書き込みカウン
タ・ブロック20は、位置W’+2=W+3を維持す
る。従って、それぞれのカウンタ・ブロックは、1つの
ポインタ位置だけインクリメントされ、同じことが、読
み出しイネーブルの指示を受け取る及び送出する際に、
読み出しカウンタ・ブロックに対して生じる。
には、コンパレータ13は、レジスタ12に対して、読
み出しイネーブル又は書き込みイネーブルのどちらかが
生じなければならないことを指示し、その適切なイネー
ブルに対するカウンタ・ブロックのそれぞれが、インク
リメントされる。例えば、書き込みイネーブルが要求さ
れ、コンパレータ13が、フラグ・レジスタ14、1
5、16及び17の現在の状態を評価して、書き込みイ
ネーブルが適切であると判断すると、書き込みイネーブ
ルがコンパレータ13からレジスタ12に指示され、書
き込みフラグ・カウンタ・ブロック18、19及び20
が、1だけインクリメントされる。そのような場合に
は、第1の書き込みカウンタ・ブロック18は、位置
W’=W+1を、第2の書き込みカウンタ・ブロック1
9は、位置W’+1=W+2を、第3の書き込みカウン
タ・ブロック20は、位置W’+2=W+3を維持す
る。従って、それぞれのカウンタ・ブロックは、1つの
ポインタ位置だけインクリメントされ、同じことが、読
み出しイネーブルの指示を受け取る及び送出する際に、
読み出しカウンタ・ブロックに対して生じる。
【0030】システムは、FIFOレジスタに対して通
常要求されるアドレス指定(アドレシング)を維持しな
ければならず、例えば、コンパレータ13によって送出
される書き込みイネーブル指示は、レジスタにおいて適
切なアドレス指定がなされた位置から外へデータを書き
込みように動作しなければならない。
常要求されるアドレス指定(アドレシング)を維持しな
ければならず、例えば、コンパレータ13によって送出
される書き込みイネーブル指示は、レジスタにおいて適
切なアドレス指定がなされた位置から外へデータを書き
込みように動作しなければならない。
【0031】この複数フラグ・レジスタ構成は、結果的
に、若干のタイミング変動を最小化させる、すなわち、
読み出し及び書き込み信号が非常に短い時間スパンによ
って分離されている場合には、この開示されている構成
によれば、コンパレータ13が、読み出し及び書き込み
ポインタの現在の状態と近傍(proximity)とを知るこ
とによって、読み出しイネーブル、書き込みイネーブ
ル、及びFIFOのレジスタ活動を、モニタし判断する
手段が与えられる。
に、若干のタイミング変動を最小化させる、すなわち、
読み出し及び書き込み信号が非常に短い時間スパンによ
って分離されている場合には、この開示されている構成
によれば、コンパレータ13が、読み出し及び書き込み
ポインタの現在の状態と近傍(proximity)とを知るこ
とによって、読み出しイネーブル、書き込みイネーブ
ル、及びFIFOのレジスタ活動を、モニタし判断する
手段が与えられる。
【0032】また、このフラグ・レジスタ構成を用いる
ことにより、コンパレータ13は、加算を実行するのに
要求される時間を節約することができるが、これは、非
同期FIFO設計に典型的に要求されることである。加
算実行の際に節約される時間は、読み出しイネーブル又
は書き込みイネーブル信号に対するFIFOの活動と作
用とを適切にモニタするのに用いられる。
ことにより、コンパレータ13は、加算を実行するのに
要求される時間を節約することができるが、これは、非
同期FIFO設計に典型的に要求されることである。加
算実行の際に節約される時間は、読み出しイネーブル又
は書き込みイネーブル信号に対するFIFOの活動と作
用とを適切にモニタするのに用いられる。
【0033】満たされた及び空のフラグ・レジスタ15
及び16だけでなく、これらのほとんど満たされた及び
ほとんど空のレジスタ14及び17も、コンパレータ1
3の不確実性を内在的に最小化してスプリアスな読み出
しイネーブル及び書き込みイネーブル要求を防止するグ
レイ・カウンタであり、結果的に、すべての時間的に有
効なイネーブル要求を満足させる。これらのグレイ・カ
ウンタは、1つの桁に対して1ビットの変更を与える、
すなわち、データのそれぞれのインクリメントに対し
て、ただ1つのバイナリ・ディジットがフリップする。
グレイ・カウンタは、一般的に、当業者には公知であ
り、コンパレータ13において用いられている回路に対
して、より短い修正時間(安定時間、settling time)
を与える。結果として、コンパレータ13は、その回路
においてより少数のピンをトグルし、究極的には、より
少数のスパイクによって安定することができる。このフ
ラグ・レジスタは、コンパレータ13のセットアップに
対して最小の時間を提供し、非常に信頼性の高いフラグ
動作構成を与える。
及び16だけでなく、これらのほとんど満たされた及び
ほとんど空のレジスタ14及び17も、コンパレータ1
3の不確実性を内在的に最小化してスプリアスな読み出
しイネーブル及び書き込みイネーブル要求を防止するグ
レイ・カウンタであり、結果的に、すべての時間的に有
効なイネーブル要求を満足させる。これらのグレイ・カ
ウンタは、1つの桁に対して1ビットの変更を与える、
すなわち、データのそれぞれのインクリメントに対し
て、ただ1つのバイナリ・ディジットがフリップする。
グレイ・カウンタは、一般的に、当業者には公知であ
り、コンパレータ13において用いられている回路に対
して、より短い修正時間(安定時間、settling time)
を与える。結果として、コンパレータ13は、その回路
においてより少数のピンをトグルし、究極的には、より
少数のスパイクによって安定することができる。このフ
ラグ・レジスタは、コンパレータ13のセットアップに
対して最小の時間を提供し、非常に信頼性の高いフラグ
動作構成を与える。
【0034】コンパレータ13に対する短いセットアッ
プ時間を更に確実にするために、カウンタへの読み出し
クロック及び書き込みクロック線は、非常に均衡がとれ
ていなければならない、すなわち、最小のスキューを有
していなければならない。
プ時間を更に確実にするために、カウンタへの読み出し
クロック及び書き込みクロック線は、非常に均衡がとれ
ていなければならない、すなわち、最小のスキューを有
していなければならない。
【0035】理解され得るように、コンパレータ13に
よって実行されるタスクのいくつかは、並列に動作し、
図2に図解されている。図2から、コンパレータ13
は、読み出しイネーブル評価ステップ30において、読
み出しイネーブル要求をモニタする。読み出しイネーブ
ル要求を受け取ると、コンパレータ13は、すべての読
み出しカウンタ・ブロックと、読み出しカウンタ・ブロ
ック・モニタ・ステップ31における関連するフラグ・
レジスタとの状態を評価又はモニタする。コンパレータ
13は、次に、バッファ・レジスタ12の中にステップ
32において読み出し要求を満足させるのに充分なデー
タが存在するかどうかを判断する。バッファ・レジスタ
12の中に充分なデータが存在する場合には、コンパレ
ータ13は、読み出し要求は正当化されることを指示
し、ステップ34において、読み出しカウンタ・ブロッ
クをインクリメントする。ステップ32において充分な
データが存在しないと判断される場合には、コンパレー
タ13は、ステップ35において読み出し要求を拒絶し
て先に進み、ステップ30において、更なる読み出し/
書き込みイネーブル要求をモニタする。
よって実行されるタスクのいくつかは、並列に動作し、
図2に図解されている。図2から、コンパレータ13
は、読み出しイネーブル評価ステップ30において、読
み出しイネーブル要求をモニタする。読み出しイネーブ
ル要求を受け取ると、コンパレータ13は、すべての読
み出しカウンタ・ブロックと、読み出しカウンタ・ブロ
ック・モニタ・ステップ31における関連するフラグ・
レジスタとの状態を評価又はモニタする。コンパレータ
13は、次に、バッファ・レジスタ12の中にステップ
32において読み出し要求を満足させるのに充分なデー
タが存在するかどうかを判断する。バッファ・レジスタ
12の中に充分なデータが存在する場合には、コンパレ
ータ13は、読み出し要求は正当化されることを指示
し、ステップ34において、読み出しカウンタ・ブロッ
クをインクリメントする。ステップ32において充分な
データが存在しないと判断される場合には、コンパレー
タ13は、ステップ35において読み出し要求を拒絶し
て先に進み、ステップ30において、更なる読み出し/
書き込みイネーブル要求をモニタする。
【0036】図2に示されているように、同様のコンパ
レータの手順が、書き込み要求に関しても同時に生じ
る。コンパレータ13は、ステップ30において、書き
込みイネーブル要求を、連続的にモニタする。書き込み
イネーブル要求を受け取ると、コンパレータ13は、書
き込みカウンタ・ブロック及び書き込みフラグ・レジス
タ、すなわち、満たされた及びほとんど満たされたフラ
グ・レジスタの状態を、書き込みカウンタ・ブロック/
書き込みフラグ・レジスタ・モニタ・ステップ36にお
いて、評価する。コンパレータ13は、データ書き込み
評価ステップ37において、書き込みイネーブル要求を
満足するのに充分なバッファ空間が存在するかどうかを
評価する。充分な空間がバッファ・レジスタ12に存在
し、すべてのフラグ・レジスタが書き込みは許容され得
ることを指示する場合には、コンパレータ13は、ステ
ップ39において、書き込みイネーブルを発する。コン
パレータ13は、次に、ステップ40において、書き込
みカウンタをインクリメントする。充分な空間がステッ
プ37において存在しない場合には、コンパレータ13
は、書き込み要求否定ステップ38において書き込み要
求を拒絶し、ステップ30に進んで、書き込み要求をモ
ニタする。
レータの手順が、書き込み要求に関しても同時に生じ
る。コンパレータ13は、ステップ30において、書き
込みイネーブル要求を、連続的にモニタする。書き込み
イネーブル要求を受け取ると、コンパレータ13は、書
き込みカウンタ・ブロック及び書き込みフラグ・レジス
タ、すなわち、満たされた及びほとんど満たされたフラ
グ・レジスタの状態を、書き込みカウンタ・ブロック/
書き込みフラグ・レジスタ・モニタ・ステップ36にお
いて、評価する。コンパレータ13は、データ書き込み
評価ステップ37において、書き込みイネーブル要求を
満足するのに充分なバッファ空間が存在するかどうかを
評価する。充分な空間がバッファ・レジスタ12に存在
し、すべてのフラグ・レジスタが書き込みは許容され得
ることを指示する場合には、コンパレータ13は、ステ
ップ39において、書き込みイネーブルを発する。コン
パレータ13は、次に、ステップ40において、書き込
みカウンタをインクリメントする。充分な空間がステッ
プ37において存在しない場合には、コンパレータ13
は、書き込み要求否定ステップ38において書き込み要
求を拒絶し、ステップ30に進んで、書き込み要求をモ
ニタする。
【0037】バッファリング・システムの動作は、次の
ように生じる。バッファは当初は空であり、読み出しポ
インタと書き込みポインタとが現在の位置にあることを
指示し、空のフラグ・レジスタがハイに設定される。読
み出し要求を受け取ると、コンパレータ13は、フラグ
とカウンタ・ブロックとをモニタして、読み出し要求が
イネーブルされ得るかを判断する。コンパレータ13
は、空のフラグが設定されており、データが入手不可能
であることを示していることを判断すると、要求を否定
する。次の書き込み指示を受け取ると、コンパレータ1
3は、ブロックとフラグとの現在の状態を再び評価す
る。満たされた及びほとんど満たされたフラグの両方が
設定されておらず、従って、書き込み要求が付与され、
それぞれの書き込みブロックは、1フレームだけインク
リメントされ、W’=W+1、(W+1)’=W+2、
(W+2)’=W+3と設定する。空のフラグ・レジス
タは、ローに設定されており、ほとんど空のフラグ・レ
ジスタは、ハイに設定されている。別の書き込み指示
が、再び、書き込みブロックを前進させ、システムは、
次に、読み出しフラグと書き込みフラグとをモニタす
る。第2の書き込みイネーブル要求を受け取る際には、
読み出しポインタRの値と書き込みプラス2(W+2)
のポインタとは、等しい。ほとんど空のフラグ・レジス
タは、この2つが等しくなると、この場合にはハイから
ローに、状態を変化させる。ほとんど空及びほとんど満
たされたフラグ・レジスタをモニタして変化させる好適
な方法は、イネーブル要求をモニタすることであり、イ
ネーブルが付与され適切な書き込み又は読み出しカウン
タ・ブロックがインクリメントするときには、読み出し
及び書き込みポインタの比較が生じて、レジスタがほと
んど満たされた状態又はほとんど空の状態に変化した
か、又は、RがW+2に等しくなったか、又は、WがR
+2に等しくなったかを判断する。この条件が生じる
と、ほとんど満たされた又はほとんど空のフラグ・レジ
スタが、ハイに設定される。
ように生じる。バッファは当初は空であり、読み出しポ
インタと書き込みポインタとが現在の位置にあることを
指示し、空のフラグ・レジスタがハイに設定される。読
み出し要求を受け取ると、コンパレータ13は、フラグ
とカウンタ・ブロックとをモニタして、読み出し要求が
イネーブルされ得るかを判断する。コンパレータ13
は、空のフラグが設定されており、データが入手不可能
であることを示していることを判断すると、要求を否定
する。次の書き込み指示を受け取ると、コンパレータ1
3は、ブロックとフラグとの現在の状態を再び評価す
る。満たされた及びほとんど満たされたフラグの両方が
設定されておらず、従って、書き込み要求が付与され、
それぞれの書き込みブロックは、1フレームだけインク
リメントされ、W’=W+1、(W+1)’=W+2、
(W+2)’=W+3と設定する。空のフラグ・レジス
タは、ローに設定されており、ほとんど空のフラグ・レ
ジスタは、ハイに設定されている。別の書き込み指示
が、再び、書き込みブロックを前進させ、システムは、
次に、読み出しフラグと書き込みフラグとをモニタす
る。第2の書き込みイネーブル要求を受け取る際には、
読み出しポインタRの値と書き込みプラス2(W+2)
のポインタとは、等しい。ほとんど空のフラグ・レジス
タは、この2つが等しくなると、この場合にはハイから
ローに、状態を変化させる。ほとんど空及びほとんど満
たされたフラグ・レジスタをモニタして変化させる好適
な方法は、イネーブル要求をモニタすることであり、イ
ネーブルが付与され適切な書き込み又は読み出しカウン
タ・ブロックがインクリメントするときには、読み出し
及び書き込みポインタの比較が生じて、レジスタがほと
んど満たされた状態又はほとんど空の状態に変化した
か、又は、RがW+2に等しくなったか、又は、WがR
+2に等しくなったかを判断する。この条件が生じる
と、ほとんど満たされた又はほとんど空のフラグ・レジ
スタが、ハイに設定される。
【0038】この例の目的のために、「ほとんど空」の
フラグは、コンパレータによって送出された最後の書き
込みイネーブルの結果として、偽に設定されてきてい
る。コンパレータ13が読み出しイネーブル要求を受け
取ると、コンパレータ13は、フラグ・レジスタを評価
するが、フラグ・レジスタは、条件のどれもが真ではな
いことを指示し、読み出し要求を生じる。読み出し要求
が生じることが、読み出しカウンタ・ブロックをトリガ
して1だけインクリメントさせ、ほとんど空のフラグ・
レジスタが設定されるべきかどうかを決定するために、
比較が行われる。この場合には、入手可能なデータが、
1だけ減少し、ポインタが1だけ減少し、従って、読み
出しカウンタが書き込みカウンタ・プラス2以下である
かどうかを判断する比較は真となる。動作は継続し、通
常の条件下では、いくつかの書き込み要求が生じて、満
たされた、ほとんど満たされた、空の、ほとんど空の指
示のどれも与えられない。
フラグは、コンパレータによって送出された最後の書き
込みイネーブルの結果として、偽に設定されてきてい
る。コンパレータ13が読み出しイネーブル要求を受け
取ると、コンパレータ13は、フラグ・レジスタを評価
するが、フラグ・レジスタは、条件のどれもが真ではな
いことを指示し、読み出し要求を生じる。読み出し要求
が生じることが、読み出しカウンタ・ブロックをトリガ
して1だけインクリメントさせ、ほとんど空のフラグ・
レジスタが設定されるべきかどうかを決定するために、
比較が行われる。この場合には、入手可能なデータが、
1だけ減少し、ポインタが1だけ減少し、従って、読み
出しカウンタが書き込みカウンタ・プラス2以下である
かどうかを判断する比較は真となる。動作は継続し、通
常の条件下では、いくつかの書き込み要求が生じて、満
たされた、ほとんど満たされた、空の、ほとんど空の指
示のどれも与えられない。
【0039】バッファの条件は、バッファを充填しそれ
に関する指示を送出するのに重要である。バッファは、
どれも、有限の大きさであり、すなわち、特定の量のデ
ータだけが、バッファが満たされる前に、又は、この状
況では、ほとんど満たされる前に、バッファに書き込ま
れ得る。ここでは、バッファは、ただ2だけ多いデータ
書き込みイネーブル・コマンドを提供することができる
ときには、ほとんど満たされていると考えられる。従っ
て、バッファ・モニタリング構成の読み出し側をモニタ
するのではなく、コンパレータ13は、書き込み要求を
モニタして書き込みポインタをバッファの最大の大きさ
と比較しなければならない。コンパレータが受け取った
書き込みイネーブル要求がコンパレータにポインタは最
大のバッファ空間すなわちBから2書き込み要求の状態
であるとの情報を与えるときには、ほとんど満たされた
レジスタはハイに設定され、書き込みカウンタ・ブロッ
クはインクリメントされる。別の書き込みイネーブルを
受け取ると、コンパレータは、ほとんど満たされたイン
ジケータが設定されているのを見出して、カウンタ・ブ
ロックを1だけインクリメントする。次の書き込みイネ
ーブルがバッファを満たし、ポインタ位置の間の比較に
よって、書き込みイネーブルが許容され、ほとんど満た
されたフラグ・レジスタをローに変化させ、満たされた
フラグ・レジスタをハイに変化させる。それ以後の読み
出しイネーブル要求は応えられるが、書き込み要求は否
定される。上述のように、コンパレータは、バッファ容
量とバッファの中のデータとをトラッキングし、すなわ
ち、W、W+1、W+2をBと比較する。
に関する指示を送出するのに重要である。バッファは、
どれも、有限の大きさであり、すなわち、特定の量のデ
ータだけが、バッファが満たされる前に、又は、この状
況では、ほとんど満たされる前に、バッファに書き込ま
れ得る。ここでは、バッファは、ただ2だけ多いデータ
書き込みイネーブル・コマンドを提供することができる
ときには、ほとんど満たされていると考えられる。従っ
て、バッファ・モニタリング構成の読み出し側をモニタ
するのではなく、コンパレータ13は、書き込み要求を
モニタして書き込みポインタをバッファの最大の大きさ
と比較しなければならない。コンパレータが受け取った
書き込みイネーブル要求がコンパレータにポインタは最
大のバッファ空間すなわちBから2書き込み要求の状態
であるとの情報を与えるときには、ほとんど満たされた
レジスタはハイに設定され、書き込みカウンタ・ブロッ
クはインクリメントされる。別の書き込みイネーブルを
受け取ると、コンパレータは、ほとんど満たされたイン
ジケータが設定されているのを見出して、カウンタ・ブ
ロックを1だけインクリメントする。次の書き込みイネ
ーブルがバッファを満たし、ポインタ位置の間の比較に
よって、書き込みイネーブルが許容され、ほとんど満た
されたフラグ・レジスタをローに変化させ、満たされた
フラグ・レジスタをハイに変化させる。それ以後の読み
出しイネーブル要求は応えられるが、書き込み要求は否
定される。上述のように、コンパレータは、バッファ容
量とバッファの中のデータとをトラッキングし、すなわ
ち、W、W+1、W+2をBと比較する。
【0040】4つのフラグ・レジスタは、メタ安定性が
生じることができる最小の時間ウィンドウを保証するフ
リップフロップを介して、同期がとられる。それぞれの
フラグ・レジスタのフリップフロップは、アクティブな
クロック・エッジをモニタすることによって動作して、
クロック・エッジの周囲のウィンドウを提供し、そのウ
ィンドウの間にデータが変更されないことを保証し、結
果的に出力が安定することを保証する。ウィンドウの幅
は、フリップフロップ・トランジスタのレイアウトに依
存して変動し、ウィンドウ幅が最小化されると最大の安
定性が与えられる。従って、フリップフロップのための
回路は、システム設計が先行するクロック・エッジ(前
縁部)における不必要なデータ変化を排除する充分な時
間ウィンドウ動作を与え、他方で、同時に、重要なフラ
グ・レジスタの動作周期を制限しない。
生じることができる最小の時間ウィンドウを保証するフ
リップフロップを介して、同期がとられる。それぞれの
フラグ・レジスタのフリップフロップは、アクティブな
クロック・エッジをモニタすることによって動作して、
クロック・エッジの周囲のウィンドウを提供し、そのウ
ィンドウの間にデータが変更されないことを保証し、結
果的に出力が安定することを保証する。ウィンドウの幅
は、フリップフロップ・トランジスタのレイアウトに依
存して変動し、ウィンドウ幅が最小化されると最大の安
定性が与えられる。従って、フリップフロップのための
回路は、システム設計が先行するクロック・エッジ(前
縁部)における不必要なデータ変化を排除する充分な時
間ウィンドウ動作を与え、他方で、同時に、重要なフラ
グ・レジスタの動作周期を制限しない。
【0041】本発明の重要な側面は、上述の実例から判
断されるように、フラグ・レジスタのためのグレイ・カ
ウンタの使用であり、フリップフロップをチューニング
してタイミング使用を最大にすることは、コンパレータ
がバッファの現在の状態を評価してそれに従って作用す
る能力を強化する。この明細書で開示されている構成を
通じて、データを転送し現在の条件を評価して状態を変
更するのには最小の時間だけが要求されるので、高速の
データ転送のために、非同期クロック動作、非同期デー
タ要求、及び非同期データ転送を統御する最大の能力が
達成される。本発明は、従って、安定的な転送条件の下
で、クロック領域の間の高速なデータ転送及びFIFO
動作を提供する。
断されるように、フラグ・レジスタのためのグレイ・カ
ウンタの使用であり、フリップフロップをチューニング
してタイミング使用を最大にすることは、コンパレータ
がバッファの現在の状態を評価してそれに従って作用す
る能力を強化する。この明細書で開示されている構成を
通じて、データを転送し現在の条件を評価して状態を変
更するのには最小の時間だけが要求されるので、高速の
データ転送のために、非同期クロック動作、非同期デー
タ要求、及び非同期データ転送を統御する最大の能力が
達成される。本発明は、従って、安定的な転送条件の下
で、クロック領域の間の高速なデータ転送及びFIFO
動作を提供する。
【0042】本発明を以上で特定の実施例との関係で説
明したが、更なる修正が可能であることを理解すべきで
ある。この出願は、本発明の原理に一般的に従う本発明
のあらゆる改変、使用又は適合を含むことを意図してい
る。
明したが、更なる修正が可能であることを理解すべきで
ある。この出願は、本発明の原理に一般的に従う本発明
のあらゆる改変、使用又は適合を含むことを意図してい
る。
【図1】本発明によるFIFOデータ・バッファリング
構成を図解している。
構成を図解している。
【図2】本発明と共に用いられるコンパレータの動作の
流れ図である。
流れ図である。
Claims (24)
- 【請求項1】 データを、少なくとも1つの関連するバ
ッファ・ポインタを有する先入れ先出しデータ・バッフ
ァの中に及びその中から外へ転送するシステムであっ
て、 コンパレータ回路と、 ポインタ位置をトラッキングする複数のカウンタ・ブロ
ックと、 相対的なバッファ容量を指示する複数のフラグ・レジス
タと、 を備えており、前記コンパレータ回路は、前記カウンタ
・ブロックと前記フラグ・レジスタとを評価して、前記
バッファがデータを受け取る又は送出する能力を判断す
ることを特徴とするシステム。 - 【請求項2】 請求項1記載のシステムにおいて、前記
データ・バッファは、2つの非同期デバイスの間でデー
タを転送するように動作することを特徴とするシステ
ム。 - 【請求項3】 請求項1記載のシステムにおいて、前記
複数のフラグ・レジスタは、絶対的な容量レジスタと、
二次的な容量レジスタとを備えていることを特徴とする
システム。 - 【請求項4】 請求項3記載のシステムにおいて、前記
複数のフラグ・レジスタは、 満たされたフラグ・レジスタと、 ほとんど満たされたフラグ・レジスタと、 ほとんど空のフラグ・レジスタと、 空のフラグ・レジスタと、 を備えていることを特徴とするシステム。 - 【請求項5】 請求項1記載のシステムにおいて、前記
フラグ・レジスタは、複数のグレイ・カウンタを備えて
いることを特徴とするシステム。 - 【請求項6】 請求項1記載のシステムにおいて、前記
カウンタ・ブロックは、 複数の読み出しカウンタ・ブロックと、 複数の書き込みカウンタ・ブロックと、 を備えていることを特徴とするシステム。 - 【請求項7】 請求項6記載のシステムにおいて、前記
読み出しカウンタ・ブロックは、 バッファ読み出しポインタをトラッキングする1つの一
次カウンタ・ブロックと、 前記バッファ読み出しポインタから所定の回数だけオフ
セットしたデータをトラッキングする少なくとも1つの
二次カウンタ・ブロックと、 を備えていることを特徴とするシステム。 - 【請求項8】 請求項7記載のシステムにおいて、前記
書き込みカウンタ・ブロックは、 バッファ書き込みポインタをトラッキングする1つの一
次カウンタ・ブロックと、 前記バッファ書き込みポインタから所定の回数だけオフ
セットしたデータをトラッキングする少なくとも1つの
二次カウンタ・ブロックと、 を備えていることを特徴とするシステム。 - 【請求項9】 請求項1記載のシステムにおいて、 前記カウンタ・ブロックと前記フラグ・レジスタとに接
続されたクロックを更に備えていることを特徴とするシ
ステム。 - 【請求項10】 データ転送要求を評価しデータ・バッ
ファを介して2つのデバイスの間でデータを転送する方
法であって、 複数のカウンタ・ブロックを同時にモニタしながら、デ
ータ・バッファ充填状態を示す複数のフラグ・レジスタ
をモニタするステップと、 前記フラグ・レジスタと前記カウンタ・ブロックとが転
送するデータが入手可能であることを示すときには、前
記データ転送要求を通過させるステップと、 を含むことを特徴とする方法。 - 【請求項11】 請求項10記載の方法において、前記
モニタするステップは、更に、少なくとも1つのポイン
タを用いて、前記カウンタ・ブロックによる前記バッフ
ァ充填状態をトラッキングするステップを含むことを特
徴とする方法。 - 【請求項12】 請求項10記載の方法において、前記
データ・バッファ充填状態は、絶対的な及び二次的に絶
対的な充填指示を含むことを特徴とする方法。 - 【請求項13】 請求項12記載の方法において、前記
バッファが現在のポインタ位置よりも所定の回数だけ先
に絶対的な充填容量に到達することを前記カウンタ・ブ
ロックが示すときに、二次的に絶対的な充填インジケー
タを設定するステップを更に含むことを特徴とする方
法。 - 【請求項14】 請求項13記載の方法において、 絶対的な充填容量は空を含み、 二次的に絶対的な充填容量は、ほとんど空を含むことを
特徴とする方法。 - 【請求項15】 請求項11記載の方法において、 前記モニタするステップの間にイネーブル要求を受け取
るステップを更に含むことを特徴とする方法。 - 【請求項16】 データを、少なくとも1つの関連する
ポインタを有する先入れ先出しデータ・バッファを用い
て2つのデバイスの間でデータを転送するシステムであ
って、 バッファ容量状態を指示する複数のフラグ・レジスタ
と、 ポインタ位置をシーケンシャルにトラッキングする複数
のカウンタ・ブロックと、 前記カウンタ・ブロックと前記フラグ・レジスタとから
の情報を比較し、所定の条件下でのデータ転送指示を提
供するコンパレータ回路と、 を備えていることを特徴とするシステム。 - 【請求項17】 請求項16記載のシステムにおいて、
前記フラグ・レジスタは、グレイ・カウンタを備えてい
ることを特徴とするシステム。 - 【請求項18】 請求項16記載システムにおいて、前
記フラグ・レジスタは、満たされたフラグ・レジスタと
空のフラグ・レジスタとを備えていることを特徴とする
システム。 - 【請求項19】 請求項18記載のシステムにおいて、
前記データ転送は、書き込み命令を含み、前記所定の条
件は、ハイに設定されていない前記満たされたフラグ・
レジスタを含むことを特徴とするシステム。 - 【請求項20】 請求項18記載のシステムにおいて、
前記データ転送は、読み出し命令を含み、前記所定の条
件は、ハイに設定されていない前記空のフラグ・レジス
タを含むことを特徴とするシステム。 - 【請求項21】 請求項16記載のシステムにおいて、
前記データ・ブロックは、 前記ポインタをトラッキングする1つのブロックを含
み、 残りのブロックは、前記ポインタに対して所定の時間周
期においてトラッキングをすることを特徴とするシステ
ム。 - 【請求項22】 請求項16記載のシステムにおいて、 前記カウンタ・ブロックと前記フラグ・レジスタとに接
続されたクロックを更に備えていることを特徴とするシ
ステム。 - 【請求項23】 請求項22記載のシステムにおいて、 前記カウンタ・ブロックは、読み出しカウンタ・ブロッ
クを含み、 前記フラグ・レジスタは、空のフラグ・レジスタとほと
んど空のフラグ・レジスタとを含み、 前記クロックは読み出しクロックを含むことを特徴とす
るシステム。 - 【請求項24】 請求項16記載のシステムにおいて、
前記データ・バッファは、2つの非同期デバイスの間で
データを転送するように動作することを特徴とするシス
テム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/801,630 US6101329A (en) | 1997-02-18 | 1997-02-18 | System for comparing counter blocks and flag registers to determine whether FIFO buffer can send or receive data |
US801630 | 2007-05-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1124889A true JPH1124889A (ja) | 1999-01-29 |
Family
ID=25181641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10035954A Pending JPH1124889A (ja) | 1997-02-18 | 1998-02-18 | 先入れ先出しデータ・バッファリング・システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6101329A (ja) |
EP (1) | EP0859311A1 (ja) |
JP (1) | JPH1124889A (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69940104D1 (de) * | 1998-03-18 | 2009-01-29 | Oce Tech Bv | Verfahren und system zur verwaltung von druckdaten |
JPH11273243A (ja) * | 1998-03-20 | 1999-10-08 | Toshiba Corp | ディスク装置及び同装置に適用されるライトバッファ制御方法 |
JP3447586B2 (ja) * | 1998-10-22 | 2003-09-16 | Necエレクトロニクス株式会社 | クロック同期化方法及びその装置 |
US6396894B2 (en) * | 2000-02-01 | 2002-05-28 | Broadcom Corporation | Overflow detector for FIFO |
US6745265B1 (en) * | 2000-03-21 | 2004-06-01 | Agere Systems Inc. | Method and apparatus for generating status flags in a memory device |
US6687255B1 (en) * | 2000-03-21 | 2004-02-03 | Lsi Logic Corporation | Data communication circuit having FIFO buffer with frame-in-FIFO generator |
JP2001290700A (ja) * | 2000-04-07 | 2001-10-19 | Mitsubishi Electric Corp | 出力fifoデータ転送制御装置 |
US6857043B1 (en) * | 2000-04-28 | 2005-02-15 | Altera Corporation | Shift register implementations of first-in/first-out memories utilizing a double increment gray code counter |
US6977897B1 (en) * | 2000-05-08 | 2005-12-20 | Crossroads Systems, Inc. | System and method for jitter compensation in data transfers |
JP3803246B2 (ja) * | 2000-12-05 | 2006-08-02 | 松下電器産業株式会社 | 非同期fifo回路 |
US7366270B2 (en) * | 2000-12-20 | 2008-04-29 | Primarion, Inc. | PLL/DLL dual loop data synchronization utilizing a granular FIFO fill level indicator |
WO2002058317A2 (en) * | 2000-12-20 | 2002-07-25 | Primarion, Inc. | Pll/dll dual loop data synchronization |
GB2371641B (en) | 2001-01-27 | 2004-10-06 | Mitel Semiconductor Ltd | Direct memory access controller for circular buffers |
EP1229437B1 (en) * | 2001-02-06 | 2007-06-20 | Nortel Networks S.A. | Multirate circular buffer and method of operating the same |
US20040019715A1 (en) * | 2001-02-06 | 2004-01-29 | Raphael Apfeldorfer | Multirate circular buffer and method of operating the same |
US6486704B1 (en) * | 2001-06-19 | 2002-11-26 | Texas Instruments Incorporated | Programmable burst FIFO |
US6696854B2 (en) * | 2001-09-17 | 2004-02-24 | Broadcom Corporation | Methods and circuitry for implementing first-in first-out structure |
GB2387932B (en) * | 2002-04-26 | 2005-06-22 | Motorola Inc | Apparatus and method for scheduling tasks in a communications network |
US7042813B2 (en) * | 2002-05-13 | 2006-05-09 | Texas Instruments Incorporated | Shock protection for compressed audio on a CD player |
US7099972B2 (en) * | 2002-07-03 | 2006-08-29 | Sun Microsystems, Inc. | Preemptive round robin arbiter |
JP4383068B2 (ja) * | 2003-02-20 | 2009-12-16 | パナソニック株式会社 | ファクシミリ装置及び複合機 |
US7546400B2 (en) * | 2004-02-13 | 2009-06-09 | International Business Machines Corporation | Data packet buffering system with automatic threshold optimization |
DE102004014968B4 (de) * | 2004-03-26 | 2008-09-11 | Qimonda Ag | Integrierte Schaltung mit einem Parallel-Seriell-Umsetzer und Verfahren |
US7911475B2 (en) * | 2004-10-18 | 2011-03-22 | Genesis Microchip Inc. | Virtual extended display information data (EDID) in a flat panel controller |
US7911473B2 (en) * | 2004-10-18 | 2011-03-22 | Genesis Microchip Inc. | Method for acquiring extended display identification data (EDID) in a powered down EDID compliant display controller |
US7484112B2 (en) | 2004-10-18 | 2009-01-27 | Genesis Microchip Inc. | Power management in a display controller |
US7995043B2 (en) * | 2004-10-18 | 2011-08-09 | Tamiras Per Pte. Ltd., Llc | Arbitration for acquisition of extended display identification data (EDID) |
US7477244B2 (en) * | 2004-10-18 | 2009-01-13 | Genesis Microchip Inc. | Automatic activity detection in a display controller |
US7839409B2 (en) * | 2004-10-18 | 2010-11-23 | Ali Noorbakhsh | Acquisition of extended display identification data (EDID) using inter-IC (I2C) protocol |
US7694097B2 (en) * | 2004-11-15 | 2010-04-06 | International Business Machines Corporation | System and method for managing an electronic storage volume |
KR100837268B1 (ko) * | 2005-02-03 | 2008-06-11 | 삼성전자주식회사 | 메모리 카드에서의 파워다운모드 제어장치 및 방법 |
US7454538B2 (en) * | 2005-05-11 | 2008-11-18 | Qualcomm Incorporated | Latency insensitive FIFO signaling protocol |
EP1773043A1 (en) * | 2005-10-06 | 2007-04-11 | Dibcom | Method and system for storing data packets |
US7966435B2 (en) * | 2007-01-11 | 2011-06-21 | International Business Machines Corporation | Integrated circuit design structure for an asychronous data interface |
US8131967B2 (en) * | 2007-01-11 | 2012-03-06 | International Business Machines Corporation | Asynchronous data interface |
DE602008004500D1 (en) * | 2007-05-16 | 2011-02-24 | Nxp Bv | Fifo-puffer |
GB2497525A (en) | 2011-12-12 | 2013-06-19 | St Microelectronics Ltd | Controlling shared memory data flow |
EP2937807B1 (en) * | 2012-12-21 | 2018-01-31 | Nippon Telegraph and Telephone Corporation | Monitoring device and monitoring method |
US9389906B2 (en) * | 2013-12-23 | 2016-07-12 | Intel Corporation | Latency agnostic transaction buffer for request-grant protocols |
CN112965689B (zh) * | 2021-02-26 | 2023-05-09 | 西安微电子技术研究所 | 一种基于源同步的分布式异步fifo数据交互方法及fifo结构 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2459476B2 (de) * | 1974-12-16 | 1977-01-20 | Gesellschaft für Mathematik und Datenverarbeitung mbH, 5300 Bonn | Schaltungsanordnung fuer nichtzyklische datenpermutationen |
US4085438A (en) * | 1976-11-11 | 1978-04-18 | Copes-Vulcan Inc. | Digital sootblower control systems and methods therefor |
US4175287A (en) * | 1978-01-23 | 1979-11-20 | Rockwell International Corporation | Elastic store slip control circuit apparatus and method for preventing overlapping sequential read and write operations |
EP0206743A3 (en) * | 1985-06-20 | 1990-04-25 | Texas Instruments Incorporated | Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution |
JP2563451B2 (ja) * | 1988-03-10 | 1996-12-11 | 松下電器産業株式会社 | 論理シミュレーション方法と論理シミュレーション装置 |
US5084841A (en) * | 1989-08-14 | 1992-01-28 | Texas Instruments Incorporated | Programmable status flag generator FIFO using gray code |
US5249271A (en) * | 1990-06-04 | 1993-09-28 | Emulex Corporation | Buffer memory data flow controller |
JPH0827705B2 (ja) * | 1990-07-25 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アダプタ |
JP2703417B2 (ja) * | 1991-04-05 | 1998-01-26 | 富士通株式会社 | 受信バッファ |
US5384744A (en) * | 1992-11-23 | 1995-01-24 | Paradigm Technology, Inc. | Look ahead flag for FIFO |
US5448606A (en) * | 1993-06-30 | 1995-09-05 | The United States Of America As Represented By The Secratary Of The Navy | Gray code counter |
US5513224A (en) * | 1993-09-16 | 1996-04-30 | Codex, Corp. | Fill level indicator for self-timed fifo |
US5365485A (en) * | 1993-11-22 | 1994-11-15 | Texas Instruments Incorporated | Fifo with fast retransmit mode |
US5687316A (en) * | 1994-07-29 | 1997-11-11 | International Business Machines Corporation | Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data |
US5712992A (en) * | 1995-12-06 | 1998-01-27 | Cypress Semiconductor Corporation | State machine design for generating empty and full flags in an asynchronous FIFO |
US5802052A (en) * | 1996-06-26 | 1998-09-01 | Level One Communication, Inc. | Scalable high performance switch element for a shared memory packet or ATM cell switch fabric |
-
1997
- 1997-02-18 US US08/801,630 patent/US6101329A/en not_active Expired - Lifetime
- 1997-11-20 EP EP97309362A patent/EP0859311A1/en not_active Withdrawn
-
1998
- 1998-02-18 JP JP10035954A patent/JPH1124889A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US6101329A (en) | 2000-08-08 |
EP0859311A1 (en) | 1998-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1124889A (ja) | 先入れ先出しデータ・バッファリング・システム | |
US5579530A (en) | Method and apparatus for dynamically allocating access time to a resource shared between a peripheral bus and a host bus by dynamically controlling the size of burst data transfers on the peripheral bus | |
KR0145321B1 (ko) | 2방향 데이타 전송장치 | |
US6192428B1 (en) | Method/apparatus for dynamically changing FIFO draining priority through asynchronous or isochronous DMA engines in response to packet type and predetermined high watermark being reached | |
US6151651A (en) | Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system | |
US7434081B2 (en) | System and method for read synchronization of memory modules | |
US6157989A (en) | Dynamic bus arbitration priority and task switching based on shared memory fullness in a multi-processor system | |
US7461286B2 (en) | System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding | |
US6493773B1 (en) | Data validity measure for efficient implementation of first-in-first-out memories for multi-processor systems | |
US5919254A (en) | Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system | |
US6148357A (en) | Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes | |
US5592629A (en) | Apparatus and method for matching data rates to transfer data between two asynchronous devices | |
US7783817B2 (en) | Method and apparatus for conditional broadcast of barrier operations | |
US6845414B2 (en) | Apparatus and method of asynchronous FIFO control | |
KR100291409B1 (ko) | 컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치 | |
US4604685A (en) | Two stage selection based on time of arrival and predetermined priority in a bus priority resolver | |
US5894567A (en) | Mechanism for enabling multi-bit counter values to reliably cross between clocking domains | |
EP0343989A2 (en) | Data processing systems with delayed cache write | |
US5745731A (en) | Dual channel FIFO circuit with a single ported SRAM | |
US6336179B1 (en) | Dynamic scheduling mechanism for an asynchronous/isochronous integrated circuit interconnect bus | |
US7822905B2 (en) | Bridges capable of controlling data flushing and methods for flushing data | |
EP0437712A2 (en) | Tandem cache memory | |
EP0378422B1 (en) | Look ahead bus transfer request | |
JP2000047977A (ja) | 双方向バス制御方式 | |
US6377650B1 (en) | Counter register monitor and update circuit for dual-clock system |