JP2005512227A - Fifoメモリにおけるインターリーブされた多数の同時トランザクションからのデータの受信 - Google Patents

Fifoメモリにおけるインターリーブされた多数の同時トランザクションからのデータの受信 Download PDF

Info

Publication number
JP2005512227A
JP2005512227A JP2003551672A JP2003551672A JP2005512227A JP 2005512227 A JP2005512227 A JP 2005512227A JP 2003551672 A JP2003551672 A JP 2003551672A JP 2003551672 A JP2003551672 A JP 2003551672A JP 2005512227 A JP2005512227 A JP 2005512227A
Authority
JP
Japan
Prior art keywords
data
memory
fifo
bus
circuit
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
Application number
JP2003551672A
Other languages
English (en)
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 JP2005512227A publication Critical patent/JP2005512227A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/14Merging, i.e. combining at least two sets of record carriers each arranged in the same ordered sequence to produce a single set having the same ordered sequence
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C21/00Digital stores in which the information circulates continuously
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/066User-programmable number or size of buffers, i.e. number of separate buffers or their size can be allocated freely

Abstract

FIFOメモリ100はデータがFIFOメモリに記憶される前に、データ転送リクエストを受信する。インターリーブされた多数の同時のトランザクションとしてFIFOメモリに転送される多数の同時的なデータ転送はFIFOメモリにより行われることができる(即ち分配されたバーストで送信する異なるソース間での多重化)。進行中のデータ転送に関連される転送の長さ130、132、134の要求はFIFOメモリ中の全ての利用可能なスペースと共に追跡される。プログラム可能なバッファゾーンも付加的なオーバーフロー保護および/またはFIFOの深さのダイナミックな寸法付けを可能にするためにFIFOメモリに含まれることができる。

Description

本発明は、先入れ先出し(FIFO)メモリの設計、例えばインターリーブされた多数の同時のトランザクションからバスによってデータを受信するように設計されたFIFOに関するシステムおよび技術に関する。
本出願は2001年12月11日出願の米国特許出願第60/339,643号明細書(発明の名称“PCI/X TRANSMIT FIFO”)の優先順位の利点を主張している。
FIFOメモリの設計の分野では、FIFOのオーバーフローとデータの結果的な損失の潜在性は重要な設計における考察事項である。1つの伝統的な方法はデータがFIFOメモリに書込まれるよりも高速度でデータが常にFIFOメモリから読み出されるようにFIFOメモリが配置されるシステムおよび/または装置を設計する方法である。
他の通常の方法とは、FIFOメモリの現在の状態に関する情報を出力するためFIFOメモリへ回路を付加することが含まれている。この情報はデータのFIFOメモリへの書込みおよびそこからの読取りを組織化する外部コンポーネントによって使用されることができる。このようなFIFO状態出力の典型的な例はフルフラグ、エンプティフラグ、ほぼフルフラグ、ほぼエンプティフラグを含んでいる。さらに幾つかのFIFOメモリはほぼフルフラグおよび/またはほぼエンプティフラグをプログラム可能にする回路を含んでいる。
本発明はオーバーフローの保護を有するFIFOメモリを提供する。
本発明の1特徴によれば、FIFOメモリはデータがFIFOメモリに記憶される前に、データ転送リクエストを受信する。データ転送リクエストは、FIFOメモリがデータに適合するのに十分なスペースを有するか否かの決定を可能にするため、開始されるデータ転送のサイズを特定する。データ転送が一度開始されると、その転送のためのFIFOメモリ中のスペースは既に転送リクエストにより確保されることができる。データは非同期的にFIFOメモリへ書込まれ、そこから読み出されることができる。
インターリーブされた多数の同時トランザクションとしてFIFOメモリに転送される多数の同時的なデータ転送はFIFOメモリにより行われることができる(即ち分配されたバーストで送信する異なるソース間での多重化)。進行中のデータ転送に関連される転送の長さの要求はFIFOメモリの全体的な利用可能なスペースと共に追跡される。プログラム可能なバッファゾーンも付加的なオーバーフロー保護および/またはFIFOの深さのダイナミックな寸法付けを可能にするためにFIFOメモリに含まれることができる。
1以上の以下の利点も与えられる。ここに記載されたシステムおよび技術は多数のデータ転送のインターリーブされた多数の同時トランザクションからデータを受信するために単一のFIFOメモリの使用を可能にし、FIFOのオーバーフローを阻止しながら別々のFIFOメモリで可能であるよりも効率的に大きなメモリの深さを提供する。さらに、説明したシステムおよび技術はFIFOの深さをダイナミックに寸法付けする能力と、FIFOメモリを共有可能にし、種々の書込みおよび読取速度の組合わせに同調されることができるFIFOを提供する。
1以上の構成の詳細を添付図面を参照にして以下説明する。その他の特性および利点は明細書の説明および図面と、特許請求の範囲から明白であろう。
これらおよび他の特徴を添付図面を参照して詳細に説明する。
種々の図面において同一の参照符号は同一の素子を示している。
ここで説明したシステムおよび技術はインターリーブされた多数の同時的なトランザクションからデータを受信するFIFOメモリに関する。以下の説明はしばしばPCI−X(周辺コンポーネント相互接続拡張)バスでデータを受信するコンテキストでFIFOメモリを説明するが、他のコンテキストにも適用されることができる。
図1は多数のデータ転送の転送長リクエストを受信し、データ転送を許可するFIFOメモリ100を示すブロック図である。FIFOメモリ100はFIFO制御回路110とFIFOメモリ回路150を含んでいる。FIFO制御回路110はFIFOメモリ回路150における非同期的な読取および書込み動作を可能にするアドレス論理装置を含んでいる。
アドレス論理装置は書込みアドレス112と読取アドレス114をFIFOメモリ回路150に供給する。さらに、FIFO制御回路110はメモリ回路150の利用可能なスペースを追跡するための差回路を含んでいる。この差回路はFIFOメモリ回路150の利用可能なスペースまたは使用されたスペースを示す値を保持するレジスタのような記憶位置を含むことができる。差回路はまた出力ライン120にFULLフラグを、出力ライン122にNOT_EMPTYフラグを発生して出力する論理装置を含むことができる。
FIFOメモリ100はインターリーブされた多数の同時的なトランザクションからデータを受取ることができる。これらのトランザクションは多数の特別なデータ転送に対応し、これは異なるデータ速度で行われてもよい。トランザクションはデータ転送Aに対応する第1のトランザクション、第2のデータ転送に対応する第2のトランザクション、第1のデータ転送に対応する第3のトランザクション、第2のデータ転送に対応する第4のトランザクションを送信することによるような、それらのデータ転送への対応に関してインターリーブされることができる。例えば、PCI−Xでは、シーケンスとして知られている多数のデータ転送は同時的にバスで開始され、受信される。PCI−Xのシーケンスはリクエスタによる単一の論理転送の実行に関連する1以上のデータトランザクションであり、これらのトランザクションは33、66、100、133Mhz(メガヘルツ)で動作するようにプログラムされることができる。したがって1000バイトのデータのリクエストは全て一度に、または可変の時間に可変サイズの小さいバーストとして転送されることができる。
FIFOメモリ100はFIFOのオーバーフローを阻止しながら、これらのタイプのインターリーブされた多数の同時的なトランザクションからデータを受取ることができる。FIFO制御回路110は2以上の転送長入力ライン130、132、134を含んでいる。これらの転送長入力ラインはデータ転送が開始される前にデータ転送全体に対するFIFOスペースの確保を可能にする。準備出力ライン136はメモリスペースリクエストの合計がFIFOメモリ100の利用可能なスペースを超えないときに断定(assert)されることができる。
例えばリクエストラインA130は1000バイトのデータ転送のリクエストを受信できる。このリクエストAはFIFO制御回路110に記憶されることができ、差回路はこのリクエストを現在の利用可能なスペースおよび任意の先に確保されたスペースと比較する。転送データ量(1000バイト)+任意の先に確保されたデータ量が利用可能なFIFOスペース以下であるならば、リクエストは許可され、準備出力ラインが断定され、それによってデータ転送の開始を可能にする。
リクエストAに対応するデータがFIFOメモリ回路150に書込まれるとき、リクエストAに対して記憶された転送データ量はデクリメントされ、FIFOメモリ100中に確保されたスペース量の減少を示す。第2の転送リクエストがリクエストラインB132で受信されるとき、差回路は同じ論理動作を行い、ここでリクエストAに対して記憶された転送データ量は比較で使用される先に確保されたデータ量の一部分である。
したがって、読取および書込みサイクルでは、FIFO制御回路110はFIFOメモリ回路150の利用可能なスペースと、進行中のデータ転送に関連する転送長の要求との追跡を続ける。さらに、2よりも多数のリクエストラインが構成されることができ、対応する多数の同時的なトランザクションにより2よりも多数の進行中のデータ転送を可能にする。
FIFO制御回路110はプログラム可能である。1構成では、FIFO制御回路110は厳密な先着順サービスルールに基づいてリクエスタに応答するようにプログラム可能であるか、あるいはFIFO制御回路110は現在の利用可能なスペースを超過しない第1のリクエストが最初にサービスされる変更された先着順ルールを使用するようにプログラムされることができる。スキップされるリクエスタはレジスタブロック中で追跡を維持されることができ、これはFIFOメモリ100の内部または外部のいずれであってもよい。
FIFOメモリ100はビッグエンディアン/リトルエンディアンおよびバイトレーンスワッピングの制御を含んでもよい。FIFOメモリ100はパリティエラーを注入し、強制的にFIFOオーバーフロー状態にする試験特性を含んでいる。FIFOメモリ100は付加的なオーバーフロー保護を与えるために、その入力および出力でそれぞれ圧縮/圧縮解除論理装置を含んでいてもよい。
FIFOメモリ100はFIFOリソースに対するデータ転送リクエストを受取り、その後データ転送が開始されるべきであるか否かを示すため準備フラグを出力することによりオーバーフロー防止を可能にする。これはデータがインターリーブされた多数の同時的なトランザクションで伝送されるバスによってデータを受信するときに有効である。例えば、PCI―Xでは、多数の同時的なトランザクションからのデータはバーストモードでFIFOメモリに書込まれることができ、ここでは待機状態の挿入は可能にされず、任意の1つの転送の正確な長さは知られていない。このタイプの状態では、多量のデータを有する多数のトランザクションは迅速に連続して到着できる。これはこれらの多数のトランザクションのバーストサイクルが適応されなければFIFOオーバーフローを生じさせる。準備出力ライン136はFIFOメモリ100の非同期的な読取および書込み期間中にデータ転送リクエストで単に十分に長いホールドオフを可能にする。
FIFO制御回路110はまたプログラム可能なバッファゾーンサイズを受信するために使用されるバッファ入力ライン138を含むことができる。プログラム可能なバッファゾーンサイズは保留されているFIFOメモリ100の量を特定する。バッファゾーンサイズはFIFOメモリ100のレジスタセットに記憶されることができる。バッファゾーンサイズは準備出力を発生するために差回路により実行される論理動作に含まれることができ、バッファゾーンがFULL およびNOT_EMPTY出力で示されるべきであるか否かに基づいて、先に確保された量の一部としてまたは利用可能ではないスペースとして含まれることができる。
バッファゾーンサイズは正または負の値にプログラムされることができる。正のバッファゾーンサイズは付加的なオーバーフロー防止を与えるために使用されることができる。これはリクエストラインで受信された転送データ量がFIFOメモリに記憶されるデータ量に正確に対応しないときに有効である。例えば、特定のデータが属すトランザクションを識別するタグはさらに以下説明するように、FIFOメモリのデータ位置に記憶されることができる。
バッファゾーンサイズはより大きいデータ量がFIFOメモリ100に書込まれることを可能にするために負の値にプログラムされることができる。負のバッファゾーンはFIFOメモリ100に実際に利用可能であるよりも有効なFIFOメモリ回路のスペースを報告させる。したがってFIFOメモリ100は実際にFIFOメモリの容量を拡張せずにより大きくより多くのデータ転送に適合するようにプログラムされることができる。
バッファゾーンサイズは外部ファームウェアにアクセス可能なレジスタセットに記憶されることができる。このレジスタセットのビットパターンはバッファゾーンサイズの大きな変化を可能にするためにプログラムされることができる(即ち8ビットレジスタは256(28)の値の固定したセットを表すように限定されていない)。FIFOメモリ100からの読取は種々のクロック周波数で行うようにされることができる。したがって幾つかの構成では、読取と書込み速度の差はFIFOのオーバーフローに対する保護に使用されることができる。このような場合、負のバッファゾーンは上限を強化しながら論理的にFIFOの深さを増加するようにプログラムされることができ、したがってFIFOメモリがオーバーフロー保護において同時的な制御を共有することを可能にする。
FIFOメモリ回路150はデュアルポートランダムアクセスメモリ(RAM)またはレジスタファイルを使用して構成されることができる。FIFOメモリ回路150はデータ入力ライン152、書込みエネーブル入力ライン154、書込みクロック入力156を含んでいる。FIFOメモリ回路150はまた読取クロック入力160とデータ出力ライン162を含んでいる。FIFOメモリ回路150は制御ビットとデータビットの記憶位置を含むことができる。
さらに、FIFOメモリ100の入力および出力は直列および/または並列の入力/出力である。例えばバッファ入力ライン138は8ビットの並列入力であり、各転送長入力ライン130、132、134は直列の入力ラインである。
図2は、図1のFIFOメモリで使用されることができるメモリ回路構造を示すブロック図である。デュアルポートRAM200は制御ビット210とデータビット250とを含んでいる、制御ビット210はデータビット250中に記憶されたデータが対応するデータ転送を識別するタグ(例えば5ビットPCI−Xタグ)を記憶するために使用されることができる。
代わりに、制御ビット210はタグの記憶に使用されるデータビット250を識別するために使用されることができる。例えば、制御ビット212はデータビット252がデータタグを含んでいることを示している。この方法では、異なる転送のためのデータはそれらが受信されるときにメモリに記憶されることができ、大きいタグ値(例えば24ビットのタグ)は多数の制御ビットを必要とせずに記憶されることができる。例えば制御ビット212はトランザクションのデータの開始を識別し、データビット252はデータ転送Aに属するとしてこのトランザクションを識別する。制御ビット214はこのトランザクションのデータの終了を識別する。制御ビット216は別のトランザクションのデータの開始を識別し、データビット256はデータ転送Bに属するとしてこのトランザクションを識別する。制御ビット218はさらに別のトランザクションのデータの開始を識別し、データビット258はデータ転送Aに属するとしてこのトランザクションを識別する。
データタグがこの方法でFIFOメモリに記憶されるとき、正のバッファゾーンサイズはFIFOのオーバーフローを防止するために使用されることができる。例えばPCI−Xでは各トランザクションはそれが属すシーケンスを識別するタグを含んでいる。単一のシーケンスは1または多数のトランザクションからなる。正のバッファゾーンは各シーケンスに関連する可変数のタグの記憶を考える余地を生成する。
デュアルポートRAM200は1280×80であってもよい。制御ビット210は16ビット幅であり、データビット250は64ビット幅である。制御ビットはパリティビット(例えばデータの各バイトに対して1つの8パリティビット)、有効なビット(例えば有効なデータバイトを特定する3つの有効なビット)、デリミッタビット(例えばデータビットがタグ、データ、またはブロックのデータの最後のワードおよび恐らく他の情報を含むか否かを特定する4つのデリミッタビット)を含むことができる。制御ビットはまたオーバーフロー状態ビットを含むことができ、これはフルフラグセットでデータを書込むときに設定される。この状態では、エラー回復はトリガーされることができ、オーバーフロー状態ビットはエラー回復中に使用されることができる。
図3Aは、多数のデータ転送の転送長リクエストを受信し、データ転送を許可するFIFOメモリで行われる動作を示しているフローチャートおよび状態図を組合わせた図である。FIFOメモリはアイドル状態300を有する。この状態300からリクエストが転送長入力ラインで断定されるとき、現在の転送リクエストは305で受信される。現在の転送リクエストはデータ転送長リクエストを示している。例えば、リクエストされた転送長を示す値はFIFOメモリ中にラッチされることができる。
その後、リクエストの現在の転送量は310でFIFOスペースの先に確保された量と比較される。前述したように、先に確保された量は、1以上の既存のデータ転送のための確保量と、バッファゾーンで規定された量との両者を含むことができる。次に、転送量+確保された量(承認された転送リクエスト+任意のバッファスペース(正または負))がFIFOメモリで利用可能なスペース以下である場合のみ、準備フラグの表明により現在のリクエストのデータ検索が開始される。
データがFIFOメモリに書込まれるとき、受信されたデータに対応する確保されたFIFOスペースは320でデクリメントされる。例えばFIFOメモリに書込まれるデータに対応するラッチイン転送長値はFIFOメモリでその記憶位置でデクリメントされる。またデータがFIFOメモリに書込まれるとき、利用可能なFIFOスペースは325でデクリメントされる。データがFIFOメモリスペースから読取られるとき、利用可能なFIFOスペースは330でインクリメントされる。
図3Bは、プログラム可能なバッファゾーンを有するFIFOメモリを構成するステップを示すフローチャートである。インターリーブされた多数の同時的なトランザクションの1以上のデータ書込み速度は350で識別される。これはこのようなデータが記憶される規定された位置をアクセスし、このようなデータをリクエストし、および/またはこのようなデータを別のソースから受信することを含むことができる。例えば、PCI−Xでは、可能なデータ書込み速度はPCI−X標準により規定される。これらの書込み速度またはこれらの速度のサブセットはファームウェアおよび/またはソフトウェアに記憶されることができる。
次に、1以上のデータ読取速度は355でプログラム可能なバッファゾーンを有するFIFOメモリから読取られるデータに対して識別される。FIFOメモリは種々のクロック周波数で動作するようにされることのできるクロックドメインを含んだシステムの一部である。さらに、FIFOメモリは多数のプロセッサにより読取られることができる。
最後に、識別された1以上のデータ書込み速度と1以上のデータ読取速度に基づいて、バッファゾーンサイズは360で設定される。このプロセスはFIFOの深さのダイナミックな寸法付けを可能にし、FIFOメモリを共有可能にする。FIFOメモリのプログラム可能なバッファゾーンは正または負の値として特定されることができるので、FIFOメモリは異なる読取および書込み速度の種々の組み合わせで動作するように効率的に同調されることができる。
図4のAは、バスアダプタ400を示すブロック図である。バスアダプタはシステム相互接続バスインターフェース407と記憶接続417を使用してシステム相互接続バスと記憶装置の間にインターフェースを与える。バスアダプタ400は以下さらに説明するように、ネットワークサーバのようなコンピュータシステムを記憶エリアネットワークに接続するために使用されることができる。バスアダプタ400は前述の機能を含んでいるバスデータ送信FIFO405を含んでいる。したがって、システム相互接続バスはインターリーブされた多数の同時的なトランザクションを使用してデータ転送を行うPCI−Xバスである。
バスアダプタ400はバスデータ送信FIFO405と結合される送信プロセッサを含んでいる管理回路(図示せず)を含むことができる。この管理回路はバスデータ送信FIFO405のアクティビティを調節し、バスデータ送信FIFO405と残りのバスアダプタ400との間にインターフェースを設け、システム相互接続バスインターフェース407からデータに作用する他の論理ブロックへのデータの転送を可能にする。例えば、送信プロセッサは命令をバスデータ送信FIFO405へラッチインするために使用されることができ、データの長さをバスデータ送信FIFO405へ識別し、それによってシステム相互接続バスを使用してローカルメモリ410のソースメモリアドレスと目的地アドレスを得る。この管理回路の機能もFIFO405へ一体化されることができる。
バスデータ送信FIFO405がデータ転送リクエストを処理するのに十分なスペースを有することを決定したとき、バスデータ送信FIFO405はDMA(直接メモリアクセス)アービトレータ440からのデータ転送をリクエストし、これはシステム相互接続バスインターフェース407へのアクセスを制御する。DMAアービトレータ440がシステム相互接続バスインターフェース407をFIFO405へ提供するとき、データはFIFO405へ書込まれる。
データはFIFO405からメモリ410へ読出される。メモリ410から、データはペイロード送信FIFO415へ書込まれ、(例えばネットワークインターフェースを使用して送信されたデータパケットとして)FIFO415から記憶接続417へ読出される。記憶接続417はファイバチャンネル記憶エリアネットワークのような記憶エリアネットワークへ接続されるネットワークインターフェースの一部である。
データは次に、記憶接続417にわたってペイロード受信FIFO430へ受信され、メモリ410へ転送される。このデータはその後、バスデータ受信FIFO432へ書込まれ、FIFO432からシステム相互接続バスインターフェース407へ読出される。
バスアダプタ400は集積回路として半導体基板に形成されることができ、バスアダプタ400とレジスタバス422のアクティビティを調節し、組織化するための制御装置420のような種々の他のコンポーネントを含むことができる。さらに、バスアダプタ400は大きいシステムの一部である。
図4のBは1構成にしたがったホストバスアダプタカード450を示しているブロック図である。ホストバスアダプタカード450はインターフェースを記憶エリアネットワークへ与えるために既存のコンピュータシステムへ挿入されるように構成され、ブロックレベルの入力/出力(I/O)サービスを提供する。ホストバスアダプタ450は2200 Mission College Boulevard Santa Clara California 95052-8119に存在するインテル社により提供されるSA-110 StrongARMプロセッサであるプロセッサ455を含んでいる。
ホストバスアダプタ450はまた不揮発性メモリ460と揮発性メモリ465を含んでいる。これらのメモリは前述の方法を実行するための命令を記憶するために使用されることができる。不揮発性メモリ460はフラッシュメモリでよい。揮発性メモリ465は専用の読取ポートと専用の書込みポートを有するQDR(カッドデータ速度)SRAMのような高速度SRAM(スタチックランダムアクセスメモリ)−ベースのメモリ装置である。揮発性メモリ465は送信および受信ペイロードデータと、記憶ネットワークおよびバスコンテキスト情報とプロセッサデータ(例えばコード、スタック、スクラッチデータ)を記憶するために使用されることができる。
ホストバスアダプタ450はまたバスアダプタの用途特定集積回路(ASIC)470も含んでいる。このバスアダプタASIC470はプロセッサ455、不揮発性メモリ460、揮発性メモリ465をバスインターフェース475およびネットワークインターフェース480に接続する。バスアダプタASIC470は前述の図4のAを参照して示し説明した回路コンポーネントを含んでいる種々の回路コンポーネントを使用して構成されることができ、ホストバスアダプタ450へ接続される種々のコンポーネントとの相互動作能力を改良するために多数の製造業者の設計をエミュレートするように作られることができる。
バスインターフェース475はPCI−Xバスと接続するように構成されることができる。ネットワークインターフェース480はファイバチャンネルネットワークと接続するように構成されることができる。
図4のAとBを参照にして先に示し説明したバスアダプタは実施形態として与えられている。他のバスアダプタおよび全体的に異なる装置はここで説明されているシステムおよび技術を使用できる。通常、バスアダプタはI/O処理およびサーバのようなデータ処理システムと記憶装置との間の物理的な接続性を提供する。記憶装置は種々の直接取付けられたまたはファイバチャンネル、iSCSI(インターネットプロトコルによる小型コンピュータシステムインターフェース)、VI/IP(インターネットプロトコルによる仮想インターフェース)FICON(ファイバ接続)またはSCSI(小型コンピュータシステムインターフェース)を含んでいる記憶ネットワーク化技術を使用して取付けられることができる。バスアダプタはI/O処理能力を提供し、これはバスアダプタが取付けられるデータ処理システムの中央プロセッサの処理ロードを減少する。
対照的に、ネットワークインターフェースカードは典型的にパケットシーケンス順序の維持、セグメント化およびリアセンブリ、エラー検出および補正、およびフロー制御のような機能を含んでいるプロトコル処理においてシステムの中央プロセッサに大きく依存している。バスアダプタはシステムの中央プロセッサにほとんどまたは全く関与せずにI/Oトランザクション全体を管理する。前述の図4のBで示し説明したホストバスアダプタの例では、ホストバスアダプタはデータフローを維持するためにプロセッサ、プロトコル制御装置ASIC、バッファメモリを含んでいる。このホストバスアダプタはブロックレベルのデータを並列のI/Oチャンネル(例えばPCI−X)から取り、それをルート可能なプロトコル(例えばファイバチャンネル)へマップする。
図5はデータ処理システムの1例500を示すブロック図である。データ処理システム500は中央プロセッサ510を含んでおり、この中央プロセッサ510はプログラムを実行し、データ操作を行い、システム500のタスクを制御する。中央プロセッサ510は多数のプロセッサまたは処理装置を含むことができ、単一のチップ(例えばマイクロプロセッサまたはマイクロ制御装置)、または1以上の印刷回路板および/または他のプロセッサ間通信リンク(即ち多数のプロセッサシステムを作る2以上のディスクリートなプロセッサ)を使用して多数のチップに収納されることができる。
中央プロセッサ510はシステム相互接続バス515と結合されている。システム相互接続バス515はシステム500の部分間をデータが送信される1以上の通路を提供する。システム相互接続バス515は多数の別々のバスを含むことができ、これは並列および/または直列バス、バスインターフェースおよび/またはバスブリッジであることができる。各バスはアドレスバスおよびデータバスを有することができる。システム相互接続バス515は内部コンポーネントを中央プロセッサ510およびメモリに接続するための内部バス、拡張ボードおよび/または周辺装置を中央プロセッサ510へ接続するための拡張バスを含むことができる。システム相互接続バス515はPCI−Xのようなインターリーブされた多数の同時的なトランザクションを使用してデータの転送を可能にする少なくとも1つのバスアーキテクチャを含んでおり、さらに任意の他の既知のバスアーキテクチャ(例えばPCI、産業標準アーキテクチャ(ISA)、拡張されたISA(EISA)、加速されたグラフィックポート(AGP)、ユニバーサルシリアルバス(USB)、SCSI、将来のバスアーキテクチャ)を含んでいてもよい。
データ処理システム500は、システム相互接続バス515と結合されているメモリ520を含んでいる。システム500はまた1以上のキャッシュメモリを含むことができる。これらのメモリ装置は検索および実行のため中央プロセッサ510の近くに命令およびデータを記憶することを可能にする。
メモリ520は不揮発性メモリおよび揮発性メモリを含むことができる。例えば不揮発性メモリはシステムファームウェアの記憶に使用されることができ、これはデータ処理システム500の初期化と、One Microsoft Way Redmond Washington 98052-6399に位置するマイクロソフト社により提供されるウィンドウズ(R)NT 4.0エンタプライズエディションのようなオペレーティングシステム(OS)のロードを処理するために使用されることができる。記憶されたデータを維持するために定常状態の電流を必要とする揮発性メモリはシステム500が一度スタートアップすると命令およびデータを記憶するために使用されることができる。
データ処理システム500はシステム500またはシステム500のコンポーネントに動作を実行させるための命令のようなマシン命令を含んでいるマシンの読取可能な媒体である媒体535をアクセスするための記憶装置530を含むことができる。媒体535は取外し可能であり、システム500がブートアップするとき揮発性メモリにロードされるOS命令およびデータを有するブート媒体を含むことができる。媒体535は読取専用または読取/書込み媒体であることができ、磁気ベース、光ベース、半導体ベースの媒体、またはこれらの組合わせである。記憶装置530と媒体535の例には取外し可能であるハードディスクドライブおよびハードディスクプラッタ、フロッピー(R)ディスクドライブおよびフロッピー(R)ディスク、テープドライブおよびテープ、光ディスクドライブおよび光ディスク(例えばレーザディスク、コンパクトディスク、デジタル汎用ディスク)が含まれている。
データ処理システム500はまた1以上の周辺装置540(1)-540(n)(集合的に装置540)と、インターフェース機能を行う1以上の制御装置および/またはアダプタを含むことができる。装置540は前述したような付加的な記憶装置および媒体、他の記憶インターフェースおよび記憶装置、アダプタ、入力装置および/または出力装置である。例えば、システム500はディスプレイ装置を有するディスプレイシステム(例えば、ビデオランダムアクセスメモリ(VRAM)、バッファ、グラフィックエンジンを含んでいるディスプレイを駆動するためのコンポーネントを有するビデオディスプレイアダプタ)を含むことができる。
システム500はまた通信インターフェース550を含んでおり、信号554の形態で、システム500と外部装置、ネットワークまたは情報ソース間でソフトウェアおよびデータが転送されることを可能にする。信号554はチャンネル552(例えばワイヤ、ケーブル、光ファイバ、電話線、赤外線(IR)チャンネル、無線周波数(RF)チャンネル等)で受信されることのできる任意の信号(例えば電子、電磁、光)である。信号554はシステム500またはシステム500のコンポーネントに動作を実行させる命令を具体化できる。
通信インターフェース550は通信ポート、電話機モデムまたは無線モデムである。通信インターフェース550はネットワークインターフェースカード(例えばイーサネット(R)ハブと接続されるイーサネット(R)カード)であり、特定のタイプのネットワーク、プロトコル、チャンネル媒体用に設計され、または多数のネットワーク、プロトコルおよび/またはチャンネル媒体の機能を行うように設計されることができる。
さらに、システム500は記憶ネットワークインターフェース560を含んでおり、信号564の形態で、ソフトウェアおよびデータがシステム500と記憶エリアネットワーク間で転送されることを可能にする。信号564はチャンネル562で送信され受信されることのできる信号554のような任意の信号である。信号564はシステム500または、記憶ネットワークインターフェース560のようなシステム500のコンポーネントに動作を実行させる命令を実施できる。記憶ネットワークインターフェース560は前述の図4のBと共に示され説明されているようなホストバスアダプタであることができる。
全体として観察するとき、システム500はプログラム可能なマシンである。システム500により表される例示的なマシンはサーバ(例えばネットワークホスト)、パーソナルコンピュータ、メインフレーム、スーパーコンピュータを含んでいる。マシン500は埋設された制御装置、プログラム可能な論理装置(PLD)(例えばPROM(プログラム可能な読取専用メモリ)、PLA(プログラム可能な論理アレイ)、GAL/PAL(一般的なアレイ論理/プログラム可能なアレイ論理))、フィールドプログラム可能なゲートアレイ(FPGA)、ASIC、単一チップのコンピュータ、スマートカード等を含むことができる。
(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)マシン命令はマシン500、記憶ネットワークインターフェース560に記憶され、および/または通信インターフェースによってマシン500に転送される。これらの命令は実行されるとき、マシン500が前述の特徴および機能を実行することを可能にする。これらの命令はマシン500の制御装置を表し、高レベルの手順および/またはオブジェクト指向プログラミング言語および/またはアセンブリ/マシン言語で実行されることができる。このような言語はコンパイルおよび/または解釈された言語である。
ここで使用されるとき、用語“マシンの読取可能な媒体”は任意のコンピュータプログラムプロダクト、マシン命令および/またはデータをマシン500に提供するために使用される装置および/またはデバイスを指しており、マシンの読取可能な信号としてマシン命令を受信するマシンの読取可能な媒体を含んでいる。マシンの読取可能な媒体の例は媒体535等、メモリ520、および/またはPLD、FPGA、ASIC等を含んでいる。用語“マシンの読取可能な信号”はマシン命令および/またはデータをマシン500に提供することに使用される信号554のような任意の信号を指している。
図6は、1構成にしたがったFIFOメモリの動作環境を示すブロック図である。多数のサーバ600は記憶エリアネットワークと接続される。各サーバ600は先に示され説明された方法で構成されることができる。例えばサーバ600は4つの550MHzのPentium(R)III Xeon(商標名)プロセッサと1GB(ギガバイト)RAMを有するインテル(R)AC450NXシステムであるか、またはサーバ600は8つの550MHzのPentium(R)III Xeon(商標名)プロセッサと1GBのRAMを有するインテル(R)OCPRF100システムである。
記憶エリアネットワークは多数の記憶装置610と記憶ネットワーク620を含んでいる。記憶ネットワーク620はデータ記憶に専用の高速度ネットワークである。例えば記憶ネットワーク620はファイバチャンネル仲裁ループまたはファイバチャンネル交換ファブリックのようなファイバチャンネルネットワークである。各記憶装置610はSCSI、PCI−Xまたは他のバスアーキテクチャ、JBOD(単なるディスクの束)、RAID(廉価なディスクの冗長アレイ)格納装置、また他の大容量記憶装置を使用する記憶アレイである。一般に、記憶装置610は前述したように少なくとも1つのマシンの読取可能な媒体を含んでおり、記憶エリアネットワークはサーバ600の共有された記憶装置610に対するブロックレベルのI/Oアクセスを提供する。
サーバ600はネットワーク630と接続され、これはイーサネット(R)ネットワーク、IP(インターネットプロトコル)ネットワーク、ATM(非同期転送モード)ネットワークのような多数のマシンネットワークを含むことができる。ネットワーク630は私設ネットワーク、仮想私設ネットワーク、企業ネットワーク、公共ネットワークおよび/またはインターネットである。ネットワーク630は多数のクライアント640とサーバ600の間に通信ネットワークを提供する。
ここで説明したシステムおよび技術の種々の構成は、デジタル電子回路、集積回路、特別に設計されたASIC(用途特定集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはその組合わせで実現されることができる。前述の種々の構成は例示として与えられているだけで、技術的範囲を限定するものではない。他のシステム、アーキテクチャ、示されている装置、マシン、システムの変更および/または再構成も可能である。
他の実施形態は特許請求の範囲内に含まれる。
多数のデータ転送の転送長リクエストを受信し、データ転送を許可するFIFOメモリを示すブロック図。 図1のFIFOメモリ中で使用されることができるメモリ回路構造を示すブロック図。 多数のデータ転送の転送長リクエストを受信し、データ転送を許可するFIFOメモリで行われる動作を示すフローチャートおよび状態図を組合わせた図。 プログラム可能なバッファゾーンを有するFIFOメモリを構成するステップを示すフローチャート。 バスアダプタを示すブロック図および1構成にしたがったホストバスアダプタカードを示すブロック図。 1実施例のデータ処理システムを示すブロック図。 1構成にしたがったFIFOメモリの動作環境を示すブロック図。

Claims (35)

  1. 先入れ先出し(FIFO)メモリにデータを記憶するために現在の転送リクエストを受信し、データはバスを使用して検索され、現在の転送リクエストは、FIFOメモリに記憶されるデータの転送量を特定し、
    先に確保されたデータ量と結合する転送データ量が利用可能なFIFOスペースと予め定められた関係を有する場合のみ、データの検索およびFIFOメモリへの記憶を開始するステップを含んでいる方法。
  2. 先に確保された量は、先の転送リクエストに対応する確保されたFIFOスペースを含み、さらに方法は、
    先の転送リクエストに対応するデータが受信され、FIFOメモリに記憶されるとき、確保されたFIFOスペースをデクリメントし、
    データがFIFOメモリに書込まれるとき、利用可能なFIFOスペースをデクリメントし、
    データがFIFOメモリから読み出されるとき、利用可能なFIFOスペースをインクリメントするステップを含んでいる請求項1記載の方法。
  3. FIFOメモリは先の転送リクエストに対応する記憶されたデータを現在の転送リクエストに対応する記憶されたデータから弁別するためにタグを記憶する請求項2記載の方法。
  4. 先に確保された量はさらにプログラム可能なFIFOバッファゾーンを含んでいる請求項3記載の方法。
  5. プログラム可能なFIFOバッファゾーンはFIFOメモリの共有のために負の値にプログラムされ、予め定められた関係は転送データ量+先に確保されたデータ量が利用可能なFIFOスペース以下である関係である請求項4記載の方法。
  6. バスはシステム相互接続バスを含んでいる請求項4記載の方法。
  7. システム相互接続バスは周辺コンポーネント相互接続拡張バスを含んでいる請求項6記載の方法。
  8. インターリーブされた多数の同時的なトランザクションから受信され、プログラム可能なバッファゾーンを有するFIFOメモリ中へ書込まれるデータの1以上の書込み速度を識別し、
    FIFOメモリから読取られるデータに対する1以上のデータ読取速度を識別し、
    識別された1以上のデータ書込み速度と1以上のデータ読取速度とに基づいて、FIFOメモリのプログラム可能なバッファゾーンのバッファゾーンサイズを設定するステップを含んでいる方法。
  9. 1以上のデータ書込み速度の識別は、システム相互接続バスで受信されるデータの1以上のデータ書込み速度を識別することを含んでいる請求項8記載の方法。
  10. バッファゾーンサイズの設定はバッファゾーンサイズを負の数に設定することを含んでいる請求項9記載の方法。
  11. 1以上のデータ読取速度の識別は、2以上のデータ読取速度の識別を含んでいる請求項10記載の方法。
  12. システム相互接続バスは周辺コンポーネント相互接続拡張バスを含んでいる請求項11記載の方法。
  13. 1以上のデータ書込み速度の識別と、1以上のデータ読取速度の識別とはデフォルト速度の識別を含んでいる請求項12記載の方法。
  14. 先入れ先出しメモリにおいて、
    メモリ回路と、
    このメモリ回路に結合され、メモリ回路の利用可能なスペースを追跡するための差回路と、多数のデータ転送のためのメモリスペースリクエストを受信する転送長入力ラインと、メモリスペースリクエストの合計が利用可能なスペースを超えるか否かを示すための準備出力ラインとを含んでいる制御回路とを具備している先入れ先出しメモリ。
  15. メモリ回路は制御ビットおよびデータビットを含んでいる請求項14記載のメモリ。
  16. 制御回路はさらに、バッファゾーンサイズを受信するため1以上のバッファ入力ラインを含み、準備出力ラインはメモリスペースリクエストとバッファゾーンサイズの合計が利用可能なスペースを超えるか否かを指示する請求項15記載のメモリ。
  17. さらに、データ圧縮回路とデータ圧縮解除回路とを具備している請求項16記載のメモリ。
  18. 制御回路はさらに、受信されたバッファゾーンサイズを保持するためのレジスタセットを含んでおり、このレジスタセットはバッファゾーンサイズの大きな変更を指定するためプログラム可能なビットパターンを含んでいる請求項16記載のメモリ。
  19. メモリ回路はデュアルポートランダムアクセスメモリを具備している請求項16記載のメモリ。
  20. FIFOメモリにデータを記憶するために現在の転送リクエストを受信し、データはバスを使用して検索され、現在の転送リクエストは、FIFOメモリに記憶されるデータの転送量を特定するように構成されている手段と、
    転送データ量+先に確保されたデータ量が利用可能なFIFOスペース以下である場合のみ、FIFOメモリのデータの検索および記憶を開始する手段を具備している回路。
  21. さらに、先の転送リクエストに対応する記憶されたデータを現在の転送リクエストに対応する記憶されたデータから弁別するためにタグを記憶する手段を具備している請求項20記載の回路。
  22. さらに、FIFOバッファゾーンをプログラミングする手段を具備している請求項21記載の回路。
  23. さらに、データ圧縮回路とデータ圧縮解除回路とを具備している請求項22記載のメモリ。
  24. プロセッサと、
    プロセッサに結合されているアダプタメモリと、
    先入れ先出しメモリを通ってアダプタメモリと結合され、多数の同時的なデータ転送をサポートするバスインターフェースと、
    アダプタメモリに結合されている記憶接続と、
    バスインターフェースおよびアダプタメモリと結合され、メモリ回路の利用可能なスペースを追跡するための差回路と、多数のデータ転送のためのメモリスペースリクエストを受信する転送長入力ラインと、バッファゾーンサイズを受信するための1以上のバッファ入力ラインと、メモリスペースリクエストとバッファゾーンサイズとの合計が利用可能なスペースを超えるか否かを指示するための準備出力ラインとを含んでいる制御回路とを具備する先入れ先出しメモリと、
    先入れ先出しメモリと結合され、メモリスペースリクエストを転送長入力ラインに提供し、多数のデータ転送の開始を調節する管理回路とを具備しているバスアダプタ。
  25. メモリ回路はメモリ回路中に記憶されたデータトランザクションを識別するタグを記憶するため制御ビットおよびデータビットを含んでいる請求項24記載のバスアダプタ。
  26. バスインターフェースは周辺コンポーネント相互接続拡張バス標準方式に適合している請求項25記載のバスアダプタ。
  27. 記憶接続はファイバチャンネル標準方式に適合しているネットワークインターフェースを備えている請求項26記載のバスアダプタ。
  28. 管理回路は先入れ先出しメモリによりスキップされているメモリスペースリクエストを記憶するためレジスタブロックを具備している請求項27記載のバスアダプタ。
  29. 先入れ先出しメモリはさらにデータ圧縮回路およびデータ圧縮解除回路を具備している請求項28記載のバスアダプタ。
  30. インターリーブされる多数の同時的なトランザクションをサポートするシステム相互接続バスを含んでいるプログラム可能なマシンと、
    記憶エリアネットワークと、
    システム相互接続バスおよび記憶エリアネットワークと結合されているバスアダプタとを具備し、
    前記バスアダプタは、プロセッサと、プロセッサに結合されたアダプタメモリと、バスインターフェースと、制御回路とを具備し、
    前記バスインターフェースはシステム相互接続バスに結合され、メモリ回路を含む先入れ先出しメモリを介してアダプタメモリと結合されており、
    前記制御回路はメモリ回路の利用可能なスペースを追跡するための差回路と、多数のデータ転送のためのメモリスペースリクエストを受信する転送長入力ラインと、メモリスペースリクエストの合計が利用可能なスペースを超えるか否かを指示するための準備出力ラインとを具備しているシステム。
  31. メモリ回路はメモリ回路に記憶されたデータトランザクションを識別するタグを記憶するため制御ビットおよびデータビットを含んでいる請求項30記載のシステム。
  32. 制御回路はさらに、バッファゾーンサイズを受信するための1以上のバッファ入力ラインを含んでおり、準備出力ラインはメモリスペースリクエストとバッファゾーンサイズの合計が利用可能なスペースを超えるか否かを指示する請求項31記載のシステム。
  33. 制御回路はさらに、受信されたバッファゾーンサイズを保持するためのレジスタセットを含んでおり、そのレジスタセットはバッファゾーンサイズの大きな変更を指示するためのプログラム可能なビットパターンを含んでいる請求項32記載のシステム。
  34. システム相互接続バスは周辺コンポーネント相互接続拡張バスを具備している請求項32記載のシステム。
  35. 記憶エリアネットワークはファイバチャンネルネットワークおよび複数の大容量装置を具備している請求項32記載のシステム。
JP2003551672A 2001-12-11 2002-05-09 Fifoメモリにおけるインターリーブされた多数の同時トランザクションからのデータの受信 Pending JP2005512227A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US33964301P 2001-12-11 2001-12-11
US10/120,733 US7080169B2 (en) 2001-12-11 2002-04-10 Receiving data from interleaved multiple concurrent transactions in a FIFO memory having programmable buffer zones
PCT/US2002/014815 WO2003050684A1 (en) 2001-12-11 2002-05-09 Receiving data from interleaved multiple concurrent transactions in a fifo memory

Publications (1)

Publication Number Publication Date
JP2005512227A true JP2005512227A (ja) 2005-04-28

Family

ID=26818705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003551672A Pending JP2005512227A (ja) 2001-12-11 2002-05-09 Fifoメモリにおけるインターリーブされた多数の同時トランザクションからのデータの受信

Country Status (6)

Country Link
US (1) US7080169B2 (ja)
EP (1) EP1463996A1 (ja)
JP (1) JP2005512227A (ja)
KR (1) KR100954904B1 (ja)
CA (1) CA2468232A1 (ja)
WO (1) WO2003050684A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785284B1 (en) * 2000-08-10 2004-08-31 Infineon Technologies North America Corp. Interleavement for transport of frames and cells
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value
US6874054B2 (en) * 2002-12-19 2005-03-29 Emulex Design & Manufacturing Corporation Direct memory access controller system with message-based programming
US7380080B2 (en) * 2004-05-17 2008-05-27 Hewlett-Packard Development Company, L.P. Calculating unneeded data storage credits for a data transmission to a pair of storage devices
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
EP1929403B1 (en) * 2005-09-20 2012-07-25 Freescale Semiconductor, Inc. A device having a low latency single port memory unit and a method for writing multiple data segments to a single port memory unit
US8384753B1 (en) 2006-12-15 2013-02-26 At&T Intellectual Property I, L. P. Managing multiple data sources
US8683126B2 (en) * 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
KR101496340B1 (ko) 2008-10-31 2015-03-04 삼성전자주식회사 프로세서 및 메모리 제어 방법
US9489326B1 (en) 2009-03-09 2016-11-08 Cypress Semiconductor Corporation Multi-port integrated circuit devices and methods
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US8543838B1 (en) * 2009-12-23 2013-09-24 Marvell International Ltd. Cryptographic module with secure processor
US8942248B1 (en) * 2010-04-19 2015-01-27 Altera Corporation Shared control logic for multiple queues
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US9274793B2 (en) 2011-03-25 2016-03-01 Soft Machines, Inc. Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
KR101620676B1 (ko) * 2011-03-25 2016-05-23 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
US9083550B2 (en) 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
KR101994672B1 (ko) 2012-12-04 2019-07-01 삼성전자 주식회사 저장 장치 및 저장 장치의 동작 방법
KR102083390B1 (ko) 2013-03-15 2020-03-02 인텔 코포레이션 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법
US9384257B2 (en) 2013-06-24 2016-07-05 International Business Machines Corporation Providing multiple concurrent transactions on a single database schema using a single concurrent transaction database infrastructure
US20150324136A1 (en) * 2014-05-07 2015-11-12 Lsi Corporation Storage system having fifo storage and reserved storage
US9798685B1 (en) 2016-09-22 2017-10-24 International Business Machines Corporation Multi-source data pass through using an elastic FIFO and a completion queue
KR102521298B1 (ko) 2018-02-14 2023-04-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
TWI697003B (zh) * 2018-10-15 2020-06-21 大陸商合肥沛睿微電子股份有限公司 記憶體裝置與控制方法
US10838868B2 (en) 2019-03-07 2020-11-17 International Business Machines Corporation Programmable data delivery by load and store agents on a processing chip interfacing with on-chip memory components and directing data to external memory components
CN110472411B (zh) * 2019-08-20 2021-05-07 杭州和利时自动化有限公司 一种内存溢出处理方法、装置、设备及可读存储介质
US11687246B2 (en) * 2020-09-29 2023-06-27 Western Digital Technologies, Inc. Elastic buffer based asymmetric pipeline FIFO process

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161466A (ja) * 1997-11-27 1999-06-18 Ricoh Co Ltd データ転送制御装置
JPH11175312A (ja) * 1997-12-08 1999-07-02 Ricoh Co Ltd データ転送制御装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703340A (en) * 1986-05-02 1987-10-27 Rca Corporation Frequency division multiplexed analog to digital converter
US5121479A (en) * 1988-01-27 1992-06-09 Storage Technology Corporation Early start mode data transfer apparatus
US5504899A (en) 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5450546A (en) * 1992-01-31 1995-09-12 Adaptec, Inc. Intelligent hardware for automatically controlling buffer memory storage space in a disk drive
US5388238A (en) * 1992-07-24 1995-02-07 At&T Corp. System and method for monitoring the validity of circulating pointers in a FIFO memory
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5513126A (en) 1993-10-04 1996-04-30 Xerox Corporation Network having selectively accessible recipient prioritized communication channel profiles
US5975383A (en) * 1993-10-07 1999-11-02 E-Z Bowz, L.L.C. Bow making apparatus
US5561823A (en) * 1994-03-14 1996-10-01 Conner Peripherals, Inc. Monitor system for determining the available capacity of a READ buffer and a WRITE buffer in a disk drive system
JPH08298643A (ja) * 1995-04-25 1996-11-12 Sony Corp 符号化方法および符号化装置、復号化方法および復号化装置、記録媒体、伝送方法、並びに符号化復号化システム
US5761444A (en) 1995-09-05 1998-06-02 Intel Corporation Method and apparatus for dynamically deferring transactions
US6029226A (en) * 1996-09-30 2000-02-22 Lsi Logic Corporation Method and apparatus having automated write data transfer with optional skip by processing two write commands as a single write command
US5974516A (en) * 1996-10-18 1999-10-26 Samsung Electronics Co., Ltd. Byte-writable two-dimensional FIFO buffer having storage locations with fields indicating storage location availability and data ordering
US5860119A (en) * 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US5870567A (en) 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus
US6047339A (en) * 1997-10-27 2000-04-04 Emulex Corporation Buffering data that flows between buses operating at different frequencies
KR100270715B1 (ko) * 1997-10-29 2000-11-01 강병호 카운터를 이용한 데이터 전송 장치
US6044368A (en) 1998-04-30 2000-03-28 Genesys Telecommunications Laboratories, Inc. Method and apparatus for multiple agent commitment tracking and notification
US6263410B1 (en) 1998-09-15 2001-07-17 Industrial Technology Research Institute Apparatus and method for asynchronous dual port FIFO
US6101575A (en) * 1998-10-20 2000-08-08 Hewlett-Packard Company Tape drive data buffering
US6397287B1 (en) * 1999-01-27 2002-05-28 3Com Corporation Method and apparatus for dynamic bus request and burst-length control
US6470463B1 (en) * 1999-03-29 2002-10-22 Inventec Corporation Method and apparatus for testing integrity of data transfer of a hardware
JP2001005724A (ja) * 1999-06-11 2001-01-12 Internatl Business Mach Corp <Ibm> ライト・キャッシュ転送の制御方法およびディスク装置
US6360300B1 (en) * 1999-08-31 2002-03-19 International Business Machines Corporation System and method for storing compressed and uncompressed data on a hard disk drive
US6690523B1 (en) * 2001-04-30 2004-02-10 Western Digital Technologies, Inc. Disk drive for updating operating zone parameters with adapted zone parameters calibrated in the field

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161466A (ja) * 1997-11-27 1999-06-18 Ricoh Co Ltd データ転送制御装置
JPH11175312A (ja) * 1997-12-08 1999-07-02 Ricoh Co Ltd データ転送制御装置

Also Published As

Publication number Publication date
KR100954904B1 (ko) 2010-04-27
CA2468232A1 (en) 2003-06-19
US7080169B2 (en) 2006-07-18
WO2003050684A1 (en) 2003-06-19
US20030110364A1 (en) 2003-06-12
EP1463996A1 (en) 2004-10-06
KR20040080436A (ko) 2004-09-18

Similar Documents

Publication Publication Date Title
JP2005512227A (ja) Fifoメモリにおけるインターリーブされた多数の同時トランザクションからのデータの受信
US7069350B2 (en) Data transfer control system, electronic instrument, and data transfer control method
US6425021B1 (en) System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts
EP1896965B1 (en) Dma descriptor queue read and cache write pointer arrangement
US7805543B2 (en) Hardware oriented host-side native command queuing tag management
US5870627A (en) System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue
US5752076A (en) Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
US6901451B1 (en) PCI bridge over network
US7069373B2 (en) USB endpoint controller flexible memory management
JP4902101B2 (ja) システム相互接続バスにおける遅延データ転送の追跡
US20020184453A1 (en) Data bus system including posted reads and writes
US5625800A (en) SCB array external to a host adapter integrated circuit
US7177913B2 (en) Method, system, and program for adding operations identifying data packets to structures based on priority levels of the data packets
US7409486B2 (en) Storage system, and storage control method
US7127530B2 (en) Command issuing apparatus for high-speed serial interface
US20050198425A1 (en) Combined optical storage and flash card reader using single ide or sata port and method thereof
US6453366B1 (en) Method and apparatus for direct memory access (DMA) with dataflow blocking for users
US5881250A (en) Host adapter system including an integrated PCI buffer controller and XOR function circuit
JPH1040215A (ja) Pciバス・システム
US20060277326A1 (en) Data transfer system and method
US5991861A (en) Method of enabling and disabling a data function in an integrated circuit
US20030009532A1 (en) Multiprocessor system having a shared main memory
US6401151B1 (en) Method for configuring bus architecture through software control
Coile et al. The ATA over Ethernet Protocol
KR100950356B1 (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080422

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080717

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081022

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090924

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091119

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100326

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110511

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110516

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110622

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110627