JP3598321B2 - 異なる周波数で動作するバス間でやりとりされるバッファリングデータ - Google Patents

異なる周波数で動作するバス間でやりとりされるバッファリングデータ Download PDF

Info

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
Application number
JP2000518329A
Other languages
English (en)
Other versions
JP2001521246A (ja
Inventor
スー,サム
チャウ,ヴィ
ター,ダン
Original Assignee
エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション filed Critical エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション
Publication of JP2001521246A publication Critical patent/JP2001521246A/ja
Application granted granted Critical
Publication of JP3598321B2 publication Critical patent/JP3598321B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling 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)

  1. 各々が異なる速度で動作するソースバスとデスティネーションバスの間のデータ転送を管理するための先入れ先出し(FIFO)ブリッジ装置であって、
    可変数N個の個別のメモリバンクへの動的な分割が可能であり、前記メモリバンクの各々が、データ転送動作中に、前記ソースバスからデスティネーションバスへ転送されるデータを格納するメモリ装置と、
    前記メモリ装置を分割するために動作可能であり、また、前記メモリバンクに予め格納されたすべてのデータが読出されるまで、前記メモリバンクへの書込みも禁止する方法で、ステータスフラグをセットするために協同する書込みコントローラおよび読出しコントローラを有するコントローラと、を有する、
    ブリッジ装置。
  2. 前記ブリッジ装置が単一の集積回路である、請求項1に記載のブリッジ装置。
  3. コントローラとメモリ装置を有するFIFOブリッジ装置において、異なる速度で動作するソースバスとデスティネーションバスの間のデータ転送を管理する方法であって、
    前記メモリ装置をデータ転送動作中に転送されるデータを記憶する可変数Nの個別のメモリバンクに動的に分割するステップと、
    前記N個の個別のメモリバンクの第1メモリバンク内にデータを書込むステップと、
    前記第1メモリバンクが一杯である場合に、開始フラグをセットするステップと、
    前記第 1 メモリバンクが一杯である場合に、前記N個の個別のメモリバンクの第2メモリバンク内へデータを書込むステップと、
    前記第1メモリバンクが一杯であるかどうかを判断するために、前記第1メモリバンクの前記開始フラグをチェックするステップと、
    前記開始フラグが一杯にセットされている場合、前記第1メモリバンク内に格納された前記データの読出しを開始するステップと、
    において実行されるコントローラを有する、方法。
  4. 前記読出し開始のステップが、前記第2メモリバンクが一杯になる前に実行される、請求項3に記載の方法。
  5. 前記読出し開始のステップが、前記第2メモリバンクへのデータの書込みと同時に実行される、請求項4に記載の方法。
  6. 前記第1メモリバンクからデータを読出し、前記データの読出しが完了した際に終了ステータスフラグをセットするステップをさらに有する、請求項5に記載の方法。
  7. 前記コントローラが読出しコントローラと書込みコントローラを有し、前記方法が、
    前記第2メモリバンクに最終ワードを書込んだ後に、前記書込みコントローラにより最終ステータスフラグをセットするステップと、
    前記第1メモリバンクを読出した後に、前記読出しコントローラにより前記最終ステータスフラグを検出し、前記第2メモリバンク内のデータを読出すステップと、
    をさらに有する、請求項5に記載の方法。
JP2000518329A 1997-10-27 1998-10-27 異なる周波数で動作するバス間でやりとりされるバッファリングデータ Expired - Fee Related JP3598321B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/957,856 1997-10-27
US08/957,856 US6047339A (en) 1997-10-27 1997-10-27 Buffering data that flows between buses operating at different frequencies
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)

* Cited by examiner, † Cited by third party
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
US7035948B1 (en) * 2001-03-19 2006-04-25 Transdimension, Inc. System and method for USB controllers
US6694389B2 (en) * 2001-03-19 2004-02-17 Sun Microsystems, Inc. Method and apparatus for data flow analysis
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
US7103064B2 (en) * 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
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
US7836211B2 (en) * 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
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
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
US8032659B2 (en) * 2003-01-21 2011-10-04 Nextio Inc. Method and apparatus for a shared I/O network interface controller
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
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
US20050220128A1 (en) * 2004-04-05 2005-10-06 Ammasso, Inc. System and method for work request queuing for intelligent adapter
JP4556484B2 (ja) * 2004-05-18 2010-10-06 ソニー株式会社 データ転送装置
US7579683B1 (en) * 2004-06-29 2009-08-25 National Semiconductor Corporation Memory interface optimized for stacked configurations
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
US7945716B2 (en) * 2007-09-27 2011-05-17 Integrated Device Technology, Inc. Serial buffer supporting virtual queue to physical memory mapping
US20090086750A1 (en) * 2007-09-27 2009-04-02 Integrated Device Technology, Inc. Non-Random Access Rapid I/O Endpoint In A Multi-Processor System
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
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)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 データ格納方法,ベクトルデータバッファ装置およびベクトルデータ処理装置
EP0492025B1 (en) * 1990-12-20 1997-08-06 International Business Machines Corporation High-speed multi-port FIFO buffer circuit
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

Also Published As

Publication number Publication date
KR100337056B1 (ko) 2002-05-16
WO1999022302B1 (en) 1999-07-01
EP1032882B1 (en) 2006-05-31
DE69834739D1 (de) 2006-07-06
DE69834739T2 (de) 2007-05-16
CA2307816C (en) 2002-02-12
EP1032882A4 (en) 2004-03-03
US6047339A (en) 2000-04-04
WO1999022302A1 (en) 1999-05-06
KR20010031430A (ko) 2001-04-16
JP2001521246A (ja) 2001-11-06
CA2307816A1 (en) 1999-05-06
EP1032882A1 (en) 2000-09-06

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) 共有メモリデータ転送装置
EP0832457A1 (en) Split buffer architecture
US20020184453A1 (en) Data bus system including posted reads and writes
KR100288177B1 (ko) 메모리 액세스 제어 회로
JP3803196B2 (ja) 情報処理装置、情報処理方法および記録媒体
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) 数据传输系统及数据传输方法
JP2001154978A (ja) Dmaコントローラ及びその制御方法
JPS59128621A (ja) Dma制御装置
JPS61285566A (ja) 入出力制御装置
JPS62209792A (ja) Fifo回路

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