JP3598321B2 - 異なる周波数で動作するバス間でやりとりされるバッファリングデータ - Google Patents
異なる周波数で動作するバス間でやりとりされるバッファリングデータ Download PDFInfo
- Publication number
- JP3598321B2 JP3598321B2 JP2000518329A JP2000518329A JP3598321B2 JP 3598321 B2 JP3598321 B2 JP 3598321B2 JP 2000518329 A JP2000518329 A JP 2000518329A JP 2000518329 A JP2000518329 A JP 2000518329A JP 3598321 B2 JP3598321 B2 JP 3598321B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- controller
- bank
- memory
- read
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Description
【0001】
本発明は、データバッファリングに関するものであり、特に、異なる周波数で動作するバス間でやりとりされるバッファリングデータに関するものである。
【0002】
【従来の技術】
一般的なコンピュータシステムには、そのシステムの様々な構成要素間のデータの流れを利用する多重データバスが含まれる。一般に、データバスは、異なる別の規格に従って動作する違うタイプのものであり、これには例えば、Industry−Standard Architecture (ISA)、Extended Industry−Standard Architecture (EISA)、Peripheral Component Interface (PCI)、Small Computer System Interface (SCSI)規格がある。異なるタイプのデータバスを区別する特徴となるのは動作周波数、または、バスに接続される構成要素間でのバスのデータ転送速度である。典型的なコンピュータシステムにおいて、データは、異なる周波数で動作する別のバスに接続された装置間でごく普通に転送される。例えば、50 MHzで動作するホストバスに接続されたマイクロプロセッサは、しばしば、データを8 MHzで動作するPCIバスに接続された装置へと転送しなければならない。このような動作周波数の相違を吸収するために、コンピュータシステムは、データバス間にバッファリングシステムを備えている必要がある。
【0003】
従来のバッファリングシステムは、先入れ先出し(FIFO)バッファに標準のメモリ装置を使用する。典型的なFIFOバッファは、通常2つのポートを備えている。1つは、第1データ速度で第1バスからデータを受け取り、もう1つは、第2データ速度でデータを第2バスへと転送する。FIFOバッファリング方式は、FIFOバッファからのデータのオーバフローまたはアンダーフローを防止するために、読出しおよび書込みコントローラを注意深く同期をとることが必要である。FIFOバッファリング方式によっては、従来の「ダブル・バッファリング」技術で複数のFIFOバッファを生成するために、複数のメモリ装置を利用するものである。「ダブル・バッファリング」技術は、個別に指定されたバッファ対の一方が、他方のバッファが読出されている間に、これに書込まれたデータを保持する。個別のバッファは定期的に切り換えられる。
【0004】
【発明が解決しようとする課題】
バッファの同期問題に対処するために様々な技術が使用されている。この内の1つは、相互に排他的な方法で動作する1つのバッファに書込み側と読出し側を設けるものである。書込み制御回路が、バッファが一杯になるまでデータをバッファに書込み、次に、データの読出しを開始するために読出し制御回路に信号を送る。読出しが完了すると、読出し制御回路から書込み制御回路に信号を送って、バッファへの書込みを再開する。この処理は、全てのデータが転送されるまで繰り返される。これは、データの完全性を保証する絶対確実な方法であるが、欠点は、バッファの少なくとも片方が任意の所定時間においてアイドル状態にあるため待ち時間が長くなることである。
【0005】
FIFOが空/一杯状態にあるか判断するための別の方法として、FIFOの読出しポインタと書込みポインタを比較するものがある。2つのポインタを比較し、最終動作が書込みコマンドである場合、FIFOは一杯である。2つのポインタを比較し、最終動作が読出しコマンドである場合、FIFOは空である。この方法は、読出しおよび書込み制御回路が両方とも同じクロック速度で実行されている場合に有効である。両側が異なるクロック速度で実行されている場合は、間違った、あるいは不確定な空/一杯状態になる可能性があり、そのためデータが壊れることがある。
【0006】
従って、本発明の発明者は、異なる周波数で動作するバス間でやりとりされるデータをバッファリングする、より優れた方法が必要であると結論付けている。本発明は、この目的を達成するためのシステムおよび方法を提供する。
【0007】
【課題を解決するための手段】
本発明は、異なる速度でデータを転送するバス間のデータのバッファリングで使用する「仮想FIFO」システムである。このシステムは、各々が個別のデータバッファとして動作するべく構成された複数のバンクに分割されたメモリ装置を備えている。このようなメモリの分割は、動的に「実行中」に行うことができる。本発明は、FIFO状態のあいまいさを除去し、その一方で、読出し動作と書込み動作の両方を同時に行うことにより、FIFOの効率を維持するものである。
【0008】
好適な実施例において、メモリ装置は2つのポート(一方は読出し、他方は書込み)を備えた、FIFOとして構成されたランダムアクセス(RAM)装置である。2ポートRAMにより、FIFOの読出し側および書込み側の両方からの、RAMのあらゆる位置への独立した、ランダムアクセスが可能になる。書込みコントローラはRAMへの書込みストローブを生成し、書込みアドレス生成を制御する。読出しコントローラは、読出しアドレス生成を制御する。
【0009】
RAM FIFOによって読出しおよび書込みアクセスが同時に行える一方で、どの特定のバンクについても、2つの動作の内の1つだけが許容されるため、読出しコントローラと書込みコントローラが同じ論理バンクに同時にアクセスすることは絶対にない。これにより、あらゆるオーバフローおよびアンダーフロー状態が防止できる。
【0010】
一実施例では、システムは、各データバッファに対応したステータスフラグを備えており、あるフラグは、データバッファにデータを書込めるかどうかを示し、また、別のフラグは、データバッファからデータを読出せるかどうかを示している。ステータスフラグは、メモリ装置自体内、または別のメモリ構造内に設けることができる。別の実施例では、データバッファの読出し/書込み状態を示すために1つの2進ステータスフラグを使用している。
【0011】
別の実施例では、メモリ装置を複数のデータバッファバンクに分割するコントローラは、さらに、データバッファへのデータの書込みおよびデータバッファからのデータの読出しを管理する。コントローラは、いつデータバッファへデータを書込むか、また読出すかを決定するために、上述のステータスフラグを使用する個別の書込みコントローラと読出しコントローラを備えていてもよい。
【0012】
本発明は、以下の複数の利点を備えている。
・従来のシステムよりも安価な、効率的で効果的なデータバッファリングシステムを構成する複数のデータバッファを生成するために、単一のメモリ装置を使用することができる。
・1つ以上のデータトランザクションを、インターリーブで、あるいは同時に、バッファリングシステムに書込みおよび読出しを行うことができる。
・アンダーフローまたはオーバフローを起こすことなく、また、バスの動作周波数が実質的に一致していなくても、異なる周波数で動作する2つのバス間でデータをバッファするために、単一のメモリ装置を使用することができる。
【0013】
【発明の実施の形態】
図1を参照すると、コンピュータシステム10は、そのコンピュータシステムの構成要素間のデータ転送を容易にするデータバスを少なくとも2つ備えている。これらのデータバスの内の1つであるプライマリバスは、コンピュータの中央処理装置(CPU)14とメインメモリ16に関連するデータ処理を実行するための「ホスト」バスである。ホストバス12は第1周波数(例えば、50 MHz)で動作する。セカンダリバス18は、コンピュータシステム10内のその他の装置20、22に関連する処理を実行する。この処理には、装置20、22間の処理と、複数の装置20、22とCPU 14との間の処理が含まれる。セカンダリバスは任意のタイプのデータバスであってよく(例えば、ISA、EISA、PCI、SCSI)、第2周波数(例えば、8 MHz)で動作する。セカンダリバス18に接続される装置20、22は任意のタイプの装置であってよい。これには、ビデオカードまたはネットワークインターフェースカード(NIC)といった周辺装置と、キーボードまたはプリンタといった入力/出力(I/O)装置とが含まれる。
【0014】
プライマリバス12とセカンダリバス18は、この2つのバス間のトランザクションを管理するブリッジ装置24によって接続されている。ブリッジ装置24は、他方のバスへ転送するために一方のバスから送出されるコマンドを翻訳するトランスレータとして、また、そのコマンドに関連するデータ転送をするバッファリングシステムとして機能する。ブリッジ装置24が採用しているバッファリング方式については後述する。プライマリバスコントローラ26は、CPU14からの競合する要求と、プライマリバス12へアクセスするためのブリッジ装置24とを従来の方法で管理する。
【0015】
同様に、セカンダリバスコントローラ28は、装置20、22からの競合する要求と、セカンダリバス18へアクセスするためのブリッジ装置24とを管理する。
【0016】
次に、図2を参照すると、ブリッジ装置24は「仮想FIFO」バッファリング方式を採用している。「仮想FIFO」バッファリング方式は、1つのFIFOメモリ装置31が、コントローラ32によってN個の個別のメモリ領域(「バンク」)32−1、32−2、…32−Nに分割されている。各バンクがメモリアドレスの連続するブロックを備えていることが好ましい。コントローラ35はバンク32−1、32−2、…32−Nを個別のFIFOバッファとして扱い、これらの各々は、独立した、または他のバンクと共通のデータを格納してもよい。例えば、バンク32−1、32−2、…32−Nを、複数の個別のトランザクションに関連するデータをバッファリングするために別々に使用してもよいし、または、数は少ないがより大規模な処理に関するデータをバッファリングするためにまとめて使用してもよい。バンクのサイズは、1ワードのデータ(例えば2バイト)からメモリ装置31の全記憶容量までの範囲内であってよい。従って、メモリ装置31は、1個のバンクしか含まないこともあり、またはメモリ装置が格納できるのと同じだけの多くのデータワードを含むことができる。いずれのサイズを採るかは、読出しおよび書込みコントローラが監視する必要のあるステータスフラグの数、コントローラの複雑性、FIFOの効率によって決まる。これはつまり、Nが大きくなるに従ってFIFO効率は増すが、ステータスフラグの数とコントローラの複雑性も増すことを意味している。例示した実施例では、コントローラによって生成され保持されるメモリマップ40が、生成されたバンクの数に関係なく、バンク32−1、32−2、…30−Nの境界を定義するメモリアドレスを識別する。
【0017】
書込みコントローラ42は、データのバンク32−1、32−2、32−Nへの書込みを管理し、読出しコントローラ44は、バンクからのデータの読出しを管理する。書込みおよび読出しコントローラ42、44は、例えばステートマシンとして実現することができる。書込みおよび読出しコントローラ42、44は、メモリ装置31内のあるバンクへのデータの書込みと、別のバンクからの読出しとを同時に行うことができる。コントローラ42、44は、装置に、バンクが空の際にそのバンクへの書込みを開始させ、バンクが一杯である場合にのみ、そのバンクからの読出しを開始させることで、バッファ内のデータの完全性を保証している。
【0018】
バンク32−1、32−2、…32−Nの各々は、次に示す少なくとも2つの関連するステータスフラグを備えている。1つは、対応するバンク32−1、32−2、…32−Nが空であり、書込み装置からのデータを受け取ることができることを書込みコントローラ42に示す「終了」フラグ34−1、34−2、…34−Nであり、もう1つは、対応するバンクが一杯であり、読出し装置にデータを供給することができることを読出しコントローラ44が示す「開始」フラグ36−1、36−2、…36−Nである。書込み装置がバンクにデータを書込み始めると、書込みコントローラ42がそのバンクの「終了」フラグをクリアする。バンクが一杯である際に、あるいは、バンクが一杯になる前に、書込み装置がそのデータの転送を終了する際に、書込みコントローラ42がバンクの「開始」フラグをセットする。同様に、読出し装置がバンクからデータの読出しを開始した際に、読出しコントローラ44がバンクの「開始」フラグをクリアし、バンクが空である際に「終了」フラグをセットする。好適な実施例では、データ転送の開始時と「電源投入」時とに、「開始」フラグおよび「終了」フラグの両方がクリアされる。データの完全性を最大にするためには、さらにバンクの「開始」フラグを使用して、その同じバンクの「終了」フラグをクリアする。このようなインタロックハンドシェーク機構により、FIFOの両側からのクロック速度を互いに完全に独立させることが可能になり、また、動作範囲に制限はなくなる。
【0019】
「開始」フラグと「終了」フラグは、次に示すいくつかの位置の内どこに設けても構わない。バンク32−1、32−2、…32−N内、バンク32−1、32−2、…32−N内を除いたメモリ装置内、または例えばレジスタ(レジスタ38は、メモリ装置31に「開始」フラグと「終了」フラグを設けなければ存在しない)のような別のメモリ構造38。あるいは、書込み読出しコントローラ42、44は内部の「開始」フラグと「終了」フラグを保持し、また、各コントローラ42、44は、バッファを一杯または空にしたら、その他のコントローラ44、42に対してメッセージを直接送信することができる。
【0020】
別の実施例では、「開始」と「終了」を示すために1つの2進ステータスフラグが使用される。この場合、書込みコントローラ42は、そのバンクのためのフラグが「終了」に設定されるまでそのバンクに書込むことができない。次に、書込みコントローラ42はそのバンクに書込みをし、書込みが終わると、対応するフラグを「開始」にリセットする。同様に、読出しコントローラ44は、対応するフラグが「開始」にリセットされるまでバンクからの読出しができない。1つのバンクの読出しが完了したら、読出しコントローラ44が対応するフラグを「終了」にリセットする。しかし、この実施例では、あるコントローラがフラグの状態を読出してこの状態に基づいて動作し、別のコントローラがフラグを変更する、「競争」状態を防止するために注意を払う必要がある。
【0021】
データバス12、14のデータ転送速度に関係なく「仮想FIFO」バッファリング方式が適切に機能するようにするために、書込みコントローラ42が、その「開始」フラグの設定を読出しコントローラの内部クロック(図示せず)と同期化させ、また、読出しコントローラ44が、「終了」フラグのその設定を書込みコントローラの内部クロック(図示せず)と同期させる。「開始」フラグと「終了」フラグは、読出しおよび書込みコントローラ42、44が絶対に同時に論理バンクにアクセスしないようにする機構を提供する。これにより、あらゆるオーバフローとアンダーフロー状態が回避される。「仮想FIFO」バッファリング方式は、データバスの動作周波数が大きく相違するにも関わらず、十分なバッファリングを提供する。
【0022】
ブリッジ装置24には、複数のデータバッファバンクを備えた少なくとも1つのメモリ装置31に加え、1つ以上のメモリ装置46を追加してもよい。また、メモリ装置46の各々を上述したように分割してもよい。この場合、ブリッジ装置24内にある全てのメモリ装置を管理するためにメモリコントローラ35を使用することもできるし、または、ブリッジ内の各メモリ装置に個別のメモリコントローラを設けることもできる。メモリ装置31、46の各々を、単一のランダムアクセスメモリ集積回路として実現することができる。あるいは、このようなメモリ装置31、46を、こうした集積回路を備え、単一のアドレス指定可能装置として機能するメモリモジュール(例えば、SIMMまたはDIMM)として実現することもできる。いずれの場合も、メモリ装置31、46は、揮発性または不揮発性メモリを備えることができ、また、任意のRAMタイプ(例えば、DRAM、SRAM、EDO−RAM等)であってよいが、スタティックRAMであることが好ましい。メモリ装置31、46は同じサイズのバンクに分割することができ、バンクは例えば非対称データ転送を使用したアプリケーションにおいて有用である、バンクは異なるサイズにすることもできる。各メモリ装置を1回だけ固定的に分割してもよく、また、バンクを必要に応じて動的に分割してもよい。上述した「開始」および「終了」フラグは、一般にはサイズが1ビットであるが、その他のサイズのフラグ(例えば、ニブル、バイト、ワード等)を使用することもできる。あるいは、上述したように、「開始」と「終了」フラグの対に1ビットを使用してもよい(すなわち、「開始」と「終了」状態を示すために、ハイとローの論理レベルの間で切り換える)。
【0023】
各バンクに、これと関連する、バンクがカレントデータ転送動作の最終バンクであることを示す「最終」フラグを任意で設けることもできる。このような構成において、FIFOにデータが連続的に書込まれる(すなわち、バンク32−1が一杯になるまで書込まれ、次に、バンク32−2、…、32−Nと続き、32−1へと戻る)。同様にデータの読出しも連続的に行われる。
【0024】
バンクが一杯になると、書込みコントローラ42が対応する「開始」フラグをそのバンクにセットする。バンクの最終位置が書込まれると、書込みコントローラ42が次のバンクの「開始」フラグをチェックする。その「開始」フラグがクリアされると(そのバンクは空である)、書込みコントローラ42は書込み動作を継続する。次のバンクの「開始」フラグがクリアされない場合(バンクは空ではない)、書込み動作が一旦停止する。
【0025】
しかし、書込みコントローラ42は次のバンクの「開始」フラグの監視を引き続き行う。「開始」フラグがクリアされると、書込み動作が再開する。データ転送の最終ワードがバンクに書込まれると、書込みコントローラ42がそのバンクの「開始」フラグをセットし(バンクが一杯であってもなくても)、さらにそのバンクの「最終」フラグをセットする。
【0026】
読出しコントローラ44は、「開始」フラグをセットしたバンクから読出しを行う。バンクの読出しが終わると、読出しコントローラ44がそのバンクの「終了」フラグをセットする。この「終了」フラグは、そのバンクが書込み可能であることを示す。バンクの最終位置が読出されると、読出しコントローラ44が次のバンクの「開始」フラグをチェックする。「開始」フラグがセットされている場合(バンクがレディ状態である)、読出しコントローラ44が読出し動作を継続する。「開始」フラグがセットされていない場合(バンクがレディ状態でない)、読出し動作が一旦停止する。しかし、読出しコントローラ44は次のバンクの「開始」フラグの監視を引き続き行う。「開始」フラグがセットされると読出し動作が再開する。カレントバンクが「開始」ステータスフラグと「終了」ステータスフラグの両方を備えている場合、読出しコントローラ44は、これがカレントデータ転送動作の最終バンクであることを認識する。従って、読出しコントローラ44は、読出しポインタと書込みポインタとが一致し、バンクに「終了」フラグをセットするまで、バンクからのデータの読出しを続ける。
【0027】
別の実施例では、各書込み動作のバイト数またはワード数が読出しコントローラ44に通知される。この構成では、「最終」ステータスフラグは必要ない。
【0028】
図3は、本発明の一実施例を示すタイミング図である。このタイミング図は、FIFOメモリ装置31は48行×32ワードの構成を使用した、96ワードのデータ転送を示し、また、この装置は3つのバンクに分割されている。さらに、「開始」ビットと「終了」ビットの間のハンドシェークも示している。この例において、書込みクロックは読出しクロックの倍の速度である。
(W1) バンク1の最終位置への書込みの後、開始1フラグがセットされる。
(W2) バンク2の最終位置への書込みの後、開始2フラグがセットされる。
(W3) バンク3の最終位置への書込みの後、開始3フラグがセットされる。
(W4) 開始1フラグのセットにより、読出しコントローラが読出しを開始する。
(W5) 2回目のバンク1への書込みの後、終了1フラグがリセットされる。
(W6) 2回目のバンク2への書込みの後、終了2フラグがリセットされる。
(W7) 2回目のバンク3への書込みの後、終了3フラグがリセットされる。
(W8) 各バンクの読出しの後、読出しコントローラが次のバンクの開始ビットをチェックする。この場合、読出しを継続するようにセットされる。
(W9) バンク3への書込み終了後、書込みコントローラは開始1フラグがまだセットされている(バンク1が空でない)ことを通知するため、WRENがディセーブルされる(FIFOへの書込みを中止する)。開始1フラグがクリアされた後に、書込み動作が継続する。
(R1) バンク1内の最終位置のデータを読出した後に、開始1フラグをリセットする終了1フラグがセットされる。
(R2) バンク2内の最終位置のデータを読出した後に、開始2フラグをリセットする終了2フラグがセットされる。
(R3) バンク3内の最終位置のデータを読出した後に、開始3フラグをリセットする終了3フラグがセットされる。
(R4) バンク3内の最終位置のデータを読み出した後に、読出しコントローラが、次のバンク(バンク1)の開始ビットがセットされていないことを検出し、読出し動作を停止する。
【0029】
本発明の多くの実施例を説明してきたが、本発明の精神と範囲を逸脱せずに、様々な変更が可能である。例えば、ホストバスに関係したデータトランザクション以外に、本発明を、PCI−to−PCIバストランザクション、またはPCI−to−I/Oバストランザクションのような、その他のタイプのバス間のデータトランザクションに使用することもできる。従って、その他の実施例は後述の特許請求の範囲内にある。
【0030】
【図面の簡単な説明】
【図1】コンピュータシステムにおける各種構成要素を示すブロック図である。
【図2】異なる周波数で動作するデータバス間でやりとりされるデータをバッファするシステムのブロック図である。
【図3】本発明の一実施例のタイミング図である。
Claims (7)
- 各々が異なる速度で動作するソースバスとデスティネーションバスの間のデータ転送を管理するための先入れ先出し(FIFO)ブリッジ装置であって、
可変数N個の個別のメモリバンクへの動的な分割が可能であり、前記メモリバンクの各々が、データ転送動作中に、前記ソースバスからデスティネーションバスへ転送されるデータを格納するメモリ装置と、
前記メモリ装置を分割するために動作可能であり、また、前記メモリバンクに予め格納されたすべてのデータが読出されるまで、前記メモリバンクへの書込みも禁止する方法で、ステータスフラグをセットするために協同する書込みコントローラおよび読出しコントローラを有するコントローラと、を有する、
ブリッジ装置。 - 前記ブリッジ装置が単一の集積回路である、請求項1に記載のブリッジ装置。
- コントローラとメモリ装置を有するFIFOブリッジ装置において、異なる速度で動作するソースバスとデスティネーションバスの間のデータ転送を管理する方法であって、
前記メモリ装置をデータ転送動作中に転送されるデータを記憶する可変数Nの個別のメモリバンクに動的に分割するステップと、
前記N個の個別のメモリバンクの第1メモリバンク内にデータを書込むステップと、
前記第1メモリバンクが一杯である場合に、開始フラグをセットするステップと、
前記第 1 メモリバンクが一杯である場合に、前記N個の個別のメモリバンクの第2メモリバンク内へデータを書込むステップと、
前記第1メモリバンクが一杯であるかどうかを判断するために、前記第1メモリバンクの前記開始フラグをチェックするステップと、
前記開始フラグが一杯にセットされている場合、前記第1メモリバンク内に格納された前記データの読出しを開始するステップと、
において実行されるコントローラを有する、方法。 - 前記読出し開始のステップが、前記第2メモリバンクが一杯になる前に実行される、請求項3に記載の方法。
- 前記読出し開始のステップが、前記第2メモリバンクへのデータの書込みと同時に実行される、請求項4に記載の方法。
- 前記第1メモリバンクからデータを読出し、前記データの読出しが完了した際に終了ステータスフラグをセットするステップをさらに有する、請求項5に記載の方法。
- 前記コントローラが読出しコントローラと書込みコントローラを有し、前記方法が、
前記第2メモリバンクに最終ワードを書込んだ後に、前記書込みコントローラにより最終ステータスフラグをセットするステップと、
前記第1メモリバンクを読出した後に、前記読出しコントローラにより前記最終ステータスフラグを検出し、前記第2メモリバンク内のデータを読出すステップと、
をさらに有する、請求項5に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/957,856 US6047339A (en) | 1997-10-27 | 1997-10-27 | Buffering data that flows between buses operating at different frequencies |
US08/957,856 | 1997-10-27 | ||
PCT/US1998/022807 WO1999022302A1 (en) | 1997-10-27 | 1998-10-27 | Buffering data that flows between buses operating at different frequencies |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001521246A JP2001521246A (ja) | 2001-11-06 |
JP3598321B2 true JP3598321B2 (ja) | 2004-12-08 |
Family
ID=25500244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000518329A Expired - Fee Related JP3598321B2 (ja) | 1997-10-27 | 1998-10-27 | 異なる周波数で動作するバス間でやりとりされるバッファリングデータ |
Country Status (7)
Country | Link |
---|---|
US (1) | US6047339A (ja) |
EP (1) | EP1032882B1 (ja) |
JP (1) | JP3598321B2 (ja) |
KR (1) | KR100337056B1 (ja) |
CA (1) | CA2307816C (ja) |
DE (1) | DE69834739T2 (ja) |
WO (1) | WO1999022302A1 (ja) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363076B1 (en) * | 1998-01-27 | 2002-03-26 | International Business Machines Corporation | Phantom buffer for interfacing between buses of differing speeds |
KR100261149B1 (ko) * | 1998-02-06 | 2000-07-01 | 김영환 | 피씨아이(pci) 이더넷(ethernet) 제어장치 및 제어방법 |
US6154796A (en) * | 1998-09-03 | 2000-11-28 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for storing receiving frame status in a holding register |
US6260098B1 (en) * | 1998-12-17 | 2001-07-10 | International Business Machines Corporation | Shared peripheral controller |
US6460108B1 (en) | 1999-03-31 | 2002-10-01 | Intel Corporation | Low cost data streaming mechanism |
US6230228B1 (en) * | 1999-04-01 | 2001-05-08 | Intel Corporation | Efficient bridge architecture for handling multiple write transactions simultaneously |
CN1282925A (zh) * | 1999-07-12 | 2001-02-07 | 松下电器产业株式会社 | 数据处理装置 |
US6925506B1 (en) * | 2000-09-29 | 2005-08-02 | Cypress Semiconductor Corp. | Architecture for implementing virtual multiqueue fifos |
US6799281B1 (en) * | 2001-01-19 | 2004-09-28 | Winbond Electronics Corp. | DSP system for capturing data at a fixed rate |
US6604175B2 (en) | 2001-03-01 | 2003-08-05 | Sony Corporation | Data cache and method of storing data by assigning each independently cached area in the cache to store data associated with one item type |
US6694389B2 (en) * | 2001-03-19 | 2004-02-17 | Sun Microsystems, Inc. | Method and apparatus for data flow analysis |
US7035948B1 (en) * | 2001-03-19 | 2006-04-25 | Transdimension, Inc. | System and method for USB controllers |
US6904481B1 (en) * | 2001-04-12 | 2005-06-07 | Lsi Logic Corporation | Bus sequence operation with automatic linking from current I/O information to subsequent I/O information |
JP2002342164A (ja) * | 2001-05-22 | 2002-11-29 | Hitachi Ltd | 記憶装置及びデータ処理装置並びに記憶部制御方法 |
US7080169B2 (en) * | 2001-12-11 | 2006-07-18 | Emulex Design & Manufacturing Corporation | Receiving data from interleaved multiple concurrent transactions in a FIFO memory having programmable buffer zones |
US7246202B2 (en) * | 2002-11-11 | 2007-07-17 | Matsushita Electric Industrial Co., Ltd. | Cache controller, cache control method, and computer system |
US6889267B2 (en) * | 2002-11-26 | 2005-05-03 | Intel Corporation | Asynchronous communication protocol using efficient data transfer formats |
US7738496B1 (en) | 2002-12-31 | 2010-06-15 | Cypress Semiconductor Corporation | Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains |
US8346884B2 (en) * | 2003-01-21 | 2013-01-01 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US8102843B2 (en) * | 2003-01-21 | 2012-01-24 | Emulex Design And Manufacturing Corporation | Switching apparatus and method for providing shared I/O within a load-store fabric |
US7953074B2 (en) * | 2003-01-21 | 2011-05-31 | Emulex Design And Manufacturing Corporation | Apparatus and method for port polarity initialization in a shared I/O device |
US8032659B2 (en) * | 2003-01-21 | 2011-10-04 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US7103064B2 (en) * | 2003-01-21 | 2006-09-05 | Nextio Inc. | Method and apparatus for shared I/O in a load/store fabric |
US7836211B2 (en) * | 2003-01-21 | 2010-11-16 | Emulex Design And Manufacturing Corporation | Shared input/output load-store architecture |
US7917658B2 (en) * | 2003-01-21 | 2011-03-29 | Emulex Design And Manufacturing Corporation | Switching apparatus and method for link initialization in a shared I/O environment |
US7461131B2 (en) * | 2003-03-07 | 2008-12-02 | International Business Machines Corporation | Use of virtual targets for preparing and servicing requests for server-free data transfer operations |
US20040255070A1 (en) * | 2003-06-12 | 2004-12-16 | Larson Thane M. | Inter-integrated circuit router for supporting independent transmission rates |
US7934057B1 (en) | 2003-12-24 | 2011-04-26 | Cypress Semiconductor Corporation | Logic for implementing a dual clock domain read access with predictable timing for bi-directional inputs/outputs |
DE102004012516A1 (de) * | 2004-03-15 | 2005-10-13 | Infineon Technologies Ag | Computersystem zur elektronischen Datenverarbeitung |
US7082075B2 (en) * | 2004-03-18 | 2006-07-25 | Micron Technology, Inc. | Memory device and method having banks of different sizes |
US20050220128A1 (en) * | 2004-04-05 | 2005-10-06 | Ammasso, Inc. | System and method for work request queuing for intelligent adapter |
US20050223118A1 (en) * | 2004-04-05 | 2005-10-06 | Ammasso, Inc. | System and method for placement of sharing physical buffer lists in RDMA communication |
US20060067346A1 (en) * | 2004-04-05 | 2006-03-30 | Ammasso, Inc. | System and method for placement of RDMA payload into application memory of a processor system |
JP4556484B2 (ja) * | 2004-05-18 | 2010-10-06 | ソニー株式会社 | データ転送装置 |
US7680966B1 (en) * | 2004-06-29 | 2010-03-16 | National Semiconductor Corporation | Memory interface including generation of timing signals for memory operation |
US7493619B1 (en) * | 2004-08-09 | 2009-02-17 | The Mathworks, Inc. | Methods for transmitting data between tasks of differing priority in a graphical modeling environment |
US7620756B2 (en) * | 2006-08-21 | 2009-11-17 | International Business Machines Corporation | Method and apparatus for updating wide storage array over a narrow bus |
JP5079342B2 (ja) * | 2007-01-22 | 2012-11-21 | ルネサスエレクトロニクス株式会社 | マルチプロセッサ装置 |
US8145809B1 (en) | 2007-03-09 | 2012-03-27 | Cypress Semiconductor Corporation | Busy detection logic for asynchronous communication port |
US7805551B2 (en) * | 2007-09-27 | 2010-09-28 | Integrated Device Technology, Inc. | Multi-function queue to support data offload, protocol translation and pass-through FIFO |
US20090086750A1 (en) * | 2007-09-27 | 2009-04-02 | Integrated Device Technology, Inc. | Non-Random Access Rapid I/O Endpoint In A Multi-Processor System |
US7945716B2 (en) * | 2007-09-27 | 2011-05-17 | Integrated Device Technology, Inc. | Serial buffer supporting virtual queue to physical memory mapping |
US7818470B2 (en) * | 2007-09-27 | 2010-10-19 | Integrated Device Technology, Inc. | Adaptive interrupt on serial rapid input/output (SRIO) endpoint |
WO2009069094A1 (en) * | 2007-11-30 | 2009-06-04 | Nxp B.V. | Method and device for routing data between components |
US8239866B2 (en) * | 2009-04-24 | 2012-08-07 | Microsoft Corporation | Reduction of memory latencies using fine grained parallelism and FIFO data structures |
US8230196B1 (en) | 2009-05-28 | 2012-07-24 | Micron Technology, Inc. | Configurable partitions for non-volatile memory |
US8659973B2 (en) * | 2010-06-18 | 2014-02-25 | Fujitsu Limited | Sequential-write, random-read memory |
US8386682B2 (en) * | 2010-06-30 | 2013-02-26 | Intel Corporation | Method, apparatus and system for maintaining transaction coherecy in a multiple data bus platform |
US9201829B2 (en) * | 2012-09-06 | 2015-12-01 | Apple Inc. | Low power, area-efficient tracking buffer |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4463443A (en) * | 1979-07-24 | 1984-07-31 | The United States Of America As Represented By The Secretary Of The Air Force | Data buffer apparatus between subsystems which operate at differing or varying data rates |
EP0206743A3 (en) * | 1985-06-20 | 1990-04-25 | Texas Instruments Incorporated | Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution |
US5261059A (en) * | 1990-06-29 | 1993-11-09 | Digital Equipment Corporation | Crossbar interface for data communication network |
JP2899986B2 (ja) * | 1990-08-08 | 1999-06-02 | 株式会社日立製作所 | データ格納方法,ベクトルデータバッファ装置およびベクトルデータ処理装置 |
DE69031220T2 (de) * | 1990-12-20 | 1998-02-12 | Ibm | Hochgeschwindigkeitsmultiport-FIFO-Pufferschaltung |
US5426639A (en) * | 1991-11-29 | 1995-06-20 | At&T Corp. | Multiple virtual FIFO arrangement |
US5444853A (en) * | 1992-03-31 | 1995-08-22 | Seiko Epson Corporation | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's |
EP0574598A1 (de) * | 1992-06-13 | 1993-12-22 | International Business Machines Corporation | Datenpufferspeicher |
US5363485A (en) * | 1992-10-01 | 1994-11-08 | Xerox Corporation | Bus interface having single and multiple channel FIFO devices using pending channel information stored in a circular queue for transfer of information therein |
US5592629A (en) * | 1992-12-28 | 1997-01-07 | At&T Global Information Solutions Company | Apparatus and method for matching data rates to transfer data between two asynchronous devices |
US5664122A (en) * | 1993-11-12 | 1997-09-02 | Intel Corporation | Method and apparatus for sequencing buffers for fast transfer of data between buses |
US5761450A (en) * | 1994-02-24 | 1998-06-02 | Intel Corporation | Bus bridge circuit flushing buffer to a bus during one acquire/relinquish cycle by providing empty address indications |
US5812774A (en) * | 1994-03-01 | 1998-09-22 | Cabletron Systems, Inc. | System for transmitting data packet from buffer by reading buffer descriptor from descriptor memory of network adapter without accessing buffer descriptor in shared memory |
KR0123239B1 (ko) * | 1994-07-06 | 1997-11-26 | 김주용 | 선입선출방식(fifo) 메모리 |
US5546347A (en) * | 1994-07-22 | 1996-08-13 | Integrated Device Technology, Inc. | Interleaving architecture and method for a high density FIFO |
US5859988A (en) * | 1995-09-29 | 1999-01-12 | Intel Corporation | Triple-port bus bridge |
US5758166A (en) * | 1996-05-20 | 1998-05-26 | Intel Corporation | Method and apparatus for selectively receiving write data within a write buffer of a host bridge |
US5815677A (en) * | 1996-12-31 | 1998-09-29 | Compaq Computer Corporation | Buffer reservation method for a bus bridge system |
-
1997
- 1997-10-27 US US08/957,856 patent/US6047339A/en not_active Expired - Lifetime
-
1998
- 1998-10-27 CA CA002307816A patent/CA2307816C/en not_active Expired - Fee Related
- 1998-10-27 WO PCT/US1998/022807 patent/WO1999022302A1/en active IP Right Grant
- 1998-10-27 DE DE69834739T patent/DE69834739T2/de not_active Expired - Fee Related
- 1998-10-27 JP JP2000518329A patent/JP3598321B2/ja not_active Expired - Fee Related
- 1998-10-27 EP EP98957392A patent/EP1032882B1/en not_active Expired - Lifetime
- 1998-10-27 KR KR1020007004461A patent/KR100337056B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1032882B1 (en) | 2006-05-31 |
WO1999022302A1 (en) | 1999-05-06 |
US6047339A (en) | 2000-04-04 |
WO1999022302B1 (en) | 1999-07-01 |
EP1032882A1 (en) | 2000-09-06 |
JP2001521246A (ja) | 2001-11-06 |
KR100337056B1 (ko) | 2002-05-16 |
CA2307816A1 (en) | 1999-05-06 |
DE69834739T2 (de) | 2007-05-16 |
DE69834739D1 (de) | 2006-07-06 |
CA2307816C (en) | 2002-02-12 |
EP1032882A4 (en) | 2004-03-03 |
KR20010031430A (ko) | 2001-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3598321B2 (ja) | 異なる周波数で動作するバス間でやりとりされるバッファリングデータ | |
US6341318B1 (en) | DMA data streaming | |
US7171526B2 (en) | Memory controller useable in a data processing system | |
US6434674B1 (en) | Multiport memory architecture with direct data flow | |
JP2004171209A (ja) | 共有メモリデータ転送装置 | |
US20020184453A1 (en) | Data bus system including posted reads and writes | |
JPH1091572A (ja) | データ転送方法及びその方法を用いたデータ転送装置 | |
KR100288177B1 (ko) | 메모리 액세스 제어 회로 | |
JP3803196B2 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
KR100332188B1 (ko) | 커맨드 적재 고대역폭 메모리와 그 메모리 내에서 커맨드를 적재하고 보류중인 동작을 자체 실행하는 방법 | |
US20020116561A1 (en) | System and method for data transmission | |
JP3618249B2 (ja) | データ転送装置 | |
JP3162459B2 (ja) | データ処理装置 | |
JP2000215154A (ja) | Dmaコントロ―ラ | |
JPH0427583B2 (ja) | ||
JP2000003332A (ja) | 双方向バスサイズ変換回路 | |
JPH0450625B2 (ja) | ||
EP0568678B1 (en) | Device for transmission of data | |
JP2734581B2 (ja) | 入出力制御装置の制御方式 | |
JPS63292356A (ja) | Dma制御装置 | |
JPH04333950A (ja) | 情報処理システム | |
CN115878532A (zh) | 数据传输系统及数据传输方法 | |
JPH07253920A (ja) | Fifo ram コントローラ | |
JP2001154978A (ja) | Dmaコントローラ及びその制御方法 | |
JPS59128621A (ja) | Dma制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040406 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040622 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040721 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040722 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040721 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |