JP2003501746A - ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置 - Google Patents

ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置

Info

Publication number
JP2003501746A
JP2003501746A JP2001501993A JP2001501993A JP2003501746A JP 2003501746 A JP2003501746 A JP 2003501746A JP 2001501993 A JP2001501993 A JP 2001501993A JP 2001501993 A JP2001501993 A JP 2001501993A JP 2003501746 A JP2003501746 A JP 2003501746A
Authority
JP
Japan
Prior art keywords
host
buffer
adapter
list
address
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
JP2001501993A
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 JP2003501746A publication Critical patent/JP2003501746A/ja
Pending legal-status Critical Current

Links

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
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor

Abstract

(57)【要約】 【課題】 アダプタ・プロセッサ上の負荷を低減させ、ホスト・アダプタとホスト・システムとの間のI/O要求および応答の転送を促進すること。 【解決手段】 I/Oシステム内の入力/出力(I/O)ホスト・アダプタ(116)は、ホスト・システム(102)から複数のディスク・ドライブまたは他のI/O装置(132〜134)へのI/O要求を処理する。ホスト・アダプタ(116)は、ホスト・メモリ(106)内の要求待ち行列(110)からホスト・アダプタのメモリ(138)内の要求バッファ(210)へI/O要求(コマンド・ブロック)を自動的に転送する回路(202)を含む。ホスト・アダプタはまた、ホスト・アダプタのメモリ(138)内の応答バッファ(212)からホスト・システムのメモリ(102)の応答待ち行列(112)へI/O応答(状態ブロック)を自動的に転送する回路(204)をも含む。これらの転送タスクを自動化することによって、ホスト・アダプタ(116)のプロセッサ(112)に掛かる処理負荷が軽減される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
(技術分野) 本発明は一般的にコンピュータ・システムに関する。特に、本発明は、ホスト
・マイクロプロセッサからの入力/出力(I/O)要求を処理するときにローカ
ル・プロセッサの処理要求を縮小するホスト・アダプタに関する。
【0002】
【従来の技術】
(背景技術) コンピュータ・システムでは、ホスト・マイクロプロセッサ(ホスト・システ
ム)または中央処理装置(CPU)が、ホスト・アダプタにI/O要求を送るこ
とによって、ディスク・ドライブなどの周辺I/O装置から情報を検索する。ホ
スト・アダプタは、周辺I/O装置に向けられたI/O要求を処理する。一般的
に、ホスト・アダプタは1つ以上のI/O装置が利用可能である。さらに、大抵
のホスト・アダプタは、ホスト・マイクロプロセッサから複数のI/O装置への
複数のI/O要求を同時に処理することができる。ホスト・アダプタは、各I/
O要求に関連付けられた幾つかの低レベル・コマンドを処理するプロセッサを含
む。例えば、小型コンピュータ・システム・インタフェース(SCSI)バスに
接続されたI/O装置の場合、単一のI/O要求は、SCSIバスを調停するコ
マンド、ターゲットI/O装置を選択するコマンド、データ転送を要求するコマ
ンド、I/O装置をSCSIバスから切断しかつ再接続するコマンド、およびS
CSIバス状態を変更するその他のコマンドを含むことができる。
【0003】 ホスト・マイクロプロセッサが多数のI/O要求を送ると、すなわちI/O作
業負荷が高ければ、アダプタ・プロセッサは大量の要求を処理する必要がある。
要求を処理する前に、要求を含むフレームを、保留中の要求を格納するためにホ
スト・アダプタによって使用されるメモリに移動しなければならない。一般的に
、ホスト・システムからホスト・アダプタのメモリ領域へのI/O要求の転送を
促進するために、アダプタ・プロセッサが使用される。一部の構成では、ホスト
・システムは、ホスト・メモリ内の領域を要求待ち行列および応答待ち行列とし
て使用する。要求待ち行列は、ホスト・システムからホスト・アダプタへのI/
O要求の転送を促進するために使用される。応答待ち行列は、ホスト・アダプタ
からホスト・システムへのI/Oコマンド完了状態情報の転送を促進するために
使用される。この構成では、ホスト・メモリ内の待ち行列に出入りするフレーム
を監視し、かつ移動させるために、アダプタ・プロセッサが使用される。多数の
I/O要求が発行され、処理される場合、(アダプタ・プロセッサがデータを移
動させる必要性によって生じる)オーバヘッドは、実際のI/O動作をセットア
ップする際にアダプタ・プロセッサのスループットを有意に低下し得る。プロセ
ッサのスループットの低下は、ホスト・アダプタの性能に悪影響を及ぼす。既存
のホスト・マイクロプロセッサはより高速になるように設計されるので、アダプ
タ・プロセッサが要求を転送して処理するのに時間がかかることによるシステム
性能の低下はいっそう顕著になる。
【0004】 周辺I/O装置がI/O要求を処理する速度は、ホスト・プロセッサ速度の増
加と共に増加する。処理速度が高いほど、ファイバ・チャネル装置などの高速I
/O装置を充分に利用するためにホスト・アダプタがI/O要求を素早く処理す
る必要性が大きくなる。そこで、I/O要求および応答を処理するために使用さ
れる処理力に対する大きな要望があった。したがって、アダプタ・プロセッサ上
の負荷を低減させ、ホスト・アダプタとホスト・システムとの間のI/O要求お
よび応答の転送を促進する方法が必要である。
【0005】
【課題を解決するための手段】
(発明の開示) 本発明の一態様は、I/Oコマンド・ブロックおよびI/O状態ブロックを格
納するためにホスト・アダプタ上のプロセッサによって使用されるバッファに、
および当該バッファから、I/Oコマンド・ブロックおよびI/O状態ブロック
を自動的にロードする方法である。I/Oコマンド・ブロックをアダプタ・バッ
ファにロードするための当該方法は、要求待ち行列を監視して、新しいコマンド
が要求待ち行列に入ったときにそれを決定する。次いで、利用可能なバッファ位
置のリストからバッファ・アドレスが検索される。要求待ち行列からのデータは
、ホスト・システムからアダプタ・バッファの検索されたアドレスによって指定
される位置に転送される。ひとたびデータがバッファに転送されると、バッファ
のアドレスが充填バッファ位置リストに書込まれる。次いでアダプタ・プロセッ
サは、充填リストからのアドレスを使用してバッファからデータを検索すること
によって、I/Oコマンド・ブロックを読み出すことができる。
【0006】 本発明の別の態様は、ホスト・アダプタ・バッファからI/O状態ブロックを
検索するための方法である。当該方法は、I/O状態ブロックを含むアダプタR
AM内の応答バッファのリストを監視する。I/O状態ブロック・バッファ・ア
ドレスは、充填応答バッファのリストから決定される。I/O状態ブロックは次
いで、アダプタRAMからホスト・メモリ内の応答待ち行列に転送される。最後
に、バッファ・アドレスは、バッファを別のI/O状態ブロックに利用可能にす
るために、空きバッファ位置リストに書込まれる。アダプタ・プロセッサは、応
答情報を含むI/O状態ブロックを、空きリストのエントリによって識別される
バッファに書き込む。
【0007】 本発明の上記の特徴およびその他の特徴について、今からホスト・バス・アダ
プタの好適な実施形態の図面を参照しながら説明する。図面では、同じ構成要素
は同じ参照番号を持つ。図示する実施形態は、本発明を限定するものではなく、
例証することを意図している。
【0008】
【発明の実施の形態】
(好適な実施形態の詳細な説明) 好適な実施形態の理解を助長するため、ホスト・バス・アダプタを含むコンピ
ュータ・システムの一般アーキテクチャおよび動作を最初に説明する。次いで、
好適な実施形態の特定のアーキテクチャおよび動作について、ホスト・バス・ア
ダプタの一般的アーキテクチャおよび動作に関連して説明する。
【0009】 図1は、本発明の一実施形態によるコンピュータ・システム100を示す。コ
ンピュータ・システム100はホスト計算機システム102、第1バス114、
ホスト・バス・アダプタ116、第2バス130、および多数の周辺I/O装置
132〜134を含む。
【0010】 当該ホスト・システム102は、ホスト・マイクロプロセッサ104およびメ
モリ106を含む。要求待ち行列110および応答待ち行列112など、メモリ
106の少なくとも一部は、ホスト・マイクロプロセッサ104とホスト・バス
・アダプタ116との間の共用メモリである。要求待ち行列110および応答待
ち行列112は、I/O要求およびI/O応答に関連するコマンドおよび状態情
報を格納する。
【0011】 第1および第2バス114、130は、システム・バス、I/Oバス、または
ネットワーク・バスと呼ぶことができる。1つの構成で、第1バス114は、p
eripheral component interconnect(PCI
)バスであり、第2バス130はファイバ・チャネルである。ファイバ・チャネ
ルは小型コンピュータ標準インタフェース(SCSI)コマンド・フォーマット
に従って構成することができる。第2バス130はまた他の種類のSCSIバス
とすることもできる。第1バス114は、ホスト・システム102とホスト・バ
ス・アダプタ116との間の通信を提供する。第2バス130は、ホスト・バス
・アダプタ116とI/O装置132〜134との間の通信を提供する。
【0012】 ホスト・バス・アダプタ116は、差分信号、SCSIシングル・エンド信号
、またはファイバ・チャネル信号を送受信するように構成することができる。ホ
スト・バス・アダプタ116は、ホスト・アダプタ118、読出し専用メモリ(
ROM)136、およびランダム・アクセス・メモリ(RAM)138を含む。
ROM136は、ブート可能コードを格納するフラッシュ・プログラマブルRO
M(PROM)として構成することができる。
【0013】 ホスト・アダプタ118はプロセッサ122、直接メモリ・アクセス(DMA
)コントローラ125、およびSCSIエグセクティブ・プロトコル(SXP)
エンジン128を含む。1つの構成で、プロセッサ122は縮小命令セット・コ
ンピュータ(RISC)プロセッサである。
【0014】 DMAコントローラは通常、アダプタ・プロセッサ122の介在無しにアダプ
タRAMへ、およびアダプタRAMからのデータの転送に使用される、幾つかの
DMAチャネルを制御する。図示した実施形態では、DMAコントローラは、コ
マンドの転送に使用されるコマンドDMAチャネル(図2)、およびデータ転送
に使用されるデータDMAチャネル(図2)を制御する。
【0015】 ROM136は、ブートアップ時にホスト・メモリ106内のソフトウェア・
ドライバまたはアダプタ・ボードROM136のブート可能(フラッシュ)コー
ドによって、RAMにダウンロードされる(すなわち初期化してロードされるか
または構成される)RISCコードまたはファームウェアを格納する。ファーム
ウェアは、ホスト・マイクロプロセッサ104からのI/O要求およびI/Oコ
マンドを処理するため、プロセッサ122によって実行される。SXPエンジン
128は、I/O要求に関連付けられる低レベル・コマンドを処理する。
【0016】 周辺I/O装置132〜134はテープ・ドライブ、ディスク・ドライブ、ビ
デオ・ディスク・ドライブ(VDD)、デジタル・ビデオ・ディスク(DVD)
、Redundunt Arrays of Inexpensive/Ind
ependent Disks(RAID)、CD−ROM、スキャナ、および
プリンタとすることができる。
【0017】 コンピュータ・システム100の一般的使用および動作について、図1を参照
しながら説明する。ホスト・マイクロプロセッサ104は、周辺I/O装置13
2〜134に意図されたI/O要求を要求待ち行列110に格納する。ホスト・
アダプタ118は、PCIバス114を介して、要求待ち行列110からI/O
要求を検索する。1つの構成では、ホスト・アダプタ118は、直接メモリ・ア
クセス(DMA)を介して、ホスト・メモリ106からI/O要求を読み出す。
ホスト・アダプタ118は、ホスト・マイクロプロセッサ104からの介在無し
に、複数のI/O動作およびデータ転送を管理することができる。
【0018】 プロセッサ122はI/O要求を解析し、SXPエンジン128をプログラミ
ングすることによってI/O動作をセットアップする。次いでI/O要求は、S
CSIバス130を介してコマンドを周辺I/O装置132〜134に送ること
によって実行され、要求されたデータが検索または格納される。1つの構成では
、ホスト・アダプタ118はDMA動作を介して、要求されたデータをホスト・
メモリ106に送り、またはそこから検索する。
【0019】 図2は、ホスト・アダプタ118のI/Oコマンド転送自動化部分に関連する
構成要素を示す。ホスト・アダプタ118は、1対のDMAチャネル124、1
26を介して第1バス114に結合される。コマンドDMAチャネル124は、
I/Oコマンド情報をホスト・メモリ108に、およびそこから転送するために
使用される。コマンドDMAチャネル124は、アービタ206によって制御さ
れる経路を介して、インバウンド論理回路202(インバウンド論理)およびア
ウトバウンド論理回路204(アウトバウンド論理)に結合される。アービタ2
06は、インバウンド論理202およびアウトバウンド論理204の両方がコマ
ンドDMAチャネル124およびデータDMAチャネル126に対し実質的に均
等なアクセスを持つことを保証する。インバウンド論理202およびアウトバウ
ンド論理204はアダプタRAM138に結合される。インバウンド論理202
およびアウトバウンド論理204はまた、アダプタ・レジスタ・セット120内
のメールボックス・レジスタ208にも結合される。アダプタ・プロセッサ12
2は、アダプタRAM138およびアダプタ・レジスタ・セット120に結合さ
れる。アダプタ・プロセッサ122はさらに、論理ユニットに関連付けられた充
填リストまたは空きリスト内のポインタ値を更新するために、インバウンド論理
202およびアウトバウンド論理204に結合される。
【0020】 図3は、I/Oコマンド処理構成要素間の論理相互接続を示す。図1に関して
上述した通り、ホスト・システム102は、要求待ち行列110および応答待ち
行列112を含むメモリ106を含む。ホスト・システム102は、データの転
送を促進するため、およびホスト・バス・アダプタ116を含む周辺装置と通信
するために、バス114に関連付けられる。コマンドDMAチャネル124は、
メモリ106に、およびそこからデータを転送するために、第1バス114に関
連付けられる。アービタ206は、コマンドDMAチャネル124とインバウン
ド論理202およびアウトバウンド論理204ユニットとの間に設けられる。上
で略述した通り、アービタ206は、論理ユニット202、204のいずれかが
コマンドDMAチャネルの使用を独占するのを防止するように、コマンドDMA
チャネル124へのアクセスを制御するために使用される。アービタ206は、
当該技術分野で周知のラウンド・ロビン調停方式を使用することによって、イン
バウンド論理202およびアウトバウンド論理204の両方に均等なアクセス権
を付与する。さらに、アービトレータは、両方のチャネルもバスに対する制御が
不均衡にならないように、データDMAチャネル126およびコマンドDMAチ
ャネル124による第1バス114へのアクセスを制御するために使用される。
【0021】 インバウンド論理202は、要求空きリスト302および要求充填リスト30
4に関連付けられる。インバウンド論理202は要求充填リスト304に対して
書込みアクセスができる。インバウンド論理202は、要求空きリスト302に
対して読出し専用アクセスができる。インバウンド論理202は、アダプタRA
M138に情報を書き込むことができる。インバウンド論理202はさらにメー
ルボックス・レジスタ208に関連付けられて、インバウンド論理202が要求
待ち行列110のポインタを追跡することが可能になる。
【0022】 アウトバウンド論理204は、応答空きリスト306および応答充填リスト3
08に関連付けられる。アウトバウンド論理204は応答充填リスト308に対
して読出し専用アクセスができる。アウトバウンド論理204は応答空きリスト
306に対して書込みアクセスができる。アウトバウンド論理204はアダプタ
RAM138から情報を読み出すことができる。アウトバウンド論理204はさ
らに、メールボックス・レジスタ208にも関連付けられて、アウトバウンド論
理204が応答待ち行列112のポインタを追跡することが可能になる。
【0023】 アダプタ・プロセッサ122はアダプタ・メモリ138に関連付けられ、要求
バッファ210からI/Oコマンドを読み出し、かつ応答バッファ212に状態
情報を書き込む。アダプタ・プロセッサ122は、要求空きリスト302および
応答充填リスト308に対して書込みアクセスができる。アダプタ・プロセッサ
122は、要求充填リスト304および応答空きリスト306に対しては読出し
専用アクセスができる。
【0024】 図4は、要求待ち行列110からアダプタRAM138のI/O要求バッファ
領域210へのI/O要求の自動転送を促進するのに使用される論理記憶要素の
さらなる詳細を示す。記憶要素は、要求待ち行列110、入力メールボックス(
IMB)レジスタ・セット410(入力メールボックス)、出力メールボックス
(OMB)レジスタ・セット412(出力メールボックス)、要求空きバッファ
・リスト302(要求空きリスト)、要求充填バッファ・リスト304(要求充
填リスト)、I/O要求バッファ210、およびDMAバッファ待ち行列418
を含む。
【0025】 上述した通り、要求待ち行列110はホスト・アダプタ118へのインタフェ
ースであり、そこを通してホスト・マイクロプロセッサ104は、様々なコマン
ドおよびデータを含むI/Oコマンド・ブロック(IOCB)の移送のためにI
/O要求を受け渡す。要求待ち行列110は、先入れ先出し(FIFO)エント
リの循環固定長リストとして編成することが有利である。図示した実施形態では
、要求待ち行列110は128個のエントリを含み、各エントリは64バイトを
含む。本発明の代替実施形態では、コマンドおよび状態情報は、循環待ち行列の
代わりに、他の型のデータ構造(例えばスタック)に格納される。
【0026】 要求待ち行列110および応答待ち行列112は各々、インデックスとして実
現されるインポインタおよびアウトポインタを有する。ホスト・バス・アダプタ
116のファームウェアは、1組のインポインタ変数およびアウトポインタ変数
(図示せず)をアダプタRAM138に格納する。ホスト・メモリ106は1組
のそれ自身のインポインタ変数およびアウトポインタ変数(図示せず)を使用す
る。各インポインタ変数およびアウトポインタ変数は、計算式を使用することに
より、待ち行列110、112のエントリの1つのアドレスに関連付けられるア
ドレスに変換することができる。1つのそのような計算式は、次式によって与え
ることができる。
【0027】 アドレス=基準アドレス+(フレーム・サイズ×ポインタ・インデックス値) 要求待ち行列110が満杯であるか、空であるか、それとも部分的に一杯であ
るかの決定は、入力メールボックス410内の要求待ち行列インポインタ(RE
Q_IN_POINTER)402、および出力メールボックス412内の要求
待ち行列アウトポインタ(REQ_OUT_POINTER)404を参照する
ことによって、行なうことができる。要求待ち行列インポインタ402は、要求
待ち行列110の最後のエントリの後の1つのエントリを指す。要求待ち行列ア
ウトポインタ404は、要求待ち行列110の最初のエントリを指す。要求待ち
行列インポインタ402が要求待ち行列アウトポインタ404より1つ少ない場
合(循環待ち行列のラップアラウンド状態を考慮に入れて)、要求待ち行列11
0は満杯である。満杯の要求待ち行列110は、待ち行列の全長より少ない1つ
のエントリを含む。要求待ち行列インポインタ402および要求待ち行列アウト
ポインタ404が等しい場合、要求待ち行列は空である。要求待ち行列110内
の空の(利用可能な)待ち行列エントリの数は、(ラップアラウンド状態を考慮
に入れて)要求待ち行列アウトポインタ404から要求待ち行列インポインタ4
02を減算することによって計算することができる。
【0028】 要求待ち行列110のエントリは、入力メールボックス・レジスタ・セット4
10内の要求待ち行列インポインタ402を制御するホスト・マイクロプロセッ
サ104によって待ち行列に登録される。要求待ち行列110のエントリは、出
力メールボックス・レジスタ・セット412内の要求待ち行列アウトポインタ4
08を制御するホスト・アダプタ118内のインバウンド論理(図5)によって
、待ち行列から外される。要求待ち行列110の各エントリは1つのIOCBを
保持することができる。
【0029】 図4は、図1のインタフェース・レジスタ120の一部である内部メールボッ
クス・レジスタ120を示す。各メールボックス・レジスタは長さ16ビットで
あることが好ましい。着信メールボックス・レジスタ410は、ホスト・マイク
ロプロセッサ104によって書き込むことができ、かつホスト・アダプタ118
によって読み出すことができる。着信メールボックス・レジスタ410は、ホス
ト・マイクロプロセッサ104からホスト・アダプタ118に情報を転送するた
めに使用される。発信メールボックス・レジスタ412は、ホスト・アダプタ1
18によって書き込むことができ、かつホスト・マイクロプロセッサ104によ
って読み出すことができる。発信メールボックス・レジスタ412は、ホスト・
アダプタ118からホスト・マイクロプロセッサ104に状態情報を転送するた
めに使用される。
【0030】 要求空きリスト302および要求充填リスト304は、アダプタRAM138
内のI/Oバッファ210を追跡するために使用される。要求空きリスト302
および要求充填リスト304は、FIFOデータ構造として実現することが有利
である。要求空きリスト302は、プロセッサ122がI/O要求フレームのた
めに空間を割り当てた、RAM138内の要求バッファ210に対するインデッ
クスを含む。I/Oバッファ210の基準アドレスは、インバウンド論理202
によって読出し可能なレジスタ(図示せず)に格納される。インバウンド論理2
02は基準アドレスを使用して、要求空きリスト302のエントリおよび要求充
填リスト304のエントリによって指定されたI/Oバッファのメモリ・アドレ
スを決定する。1組のDMAバッファ418は、保留中のDMA要求を格納する
ために、コマンドDMAチャネル124によって使用される。DMAバッファ4
18はFIFO構造として実現することが有利である。
【0031】 インバウンド論理202の動作について、図1〜図4を参照し、かつ図5のス
テートマシン図を参照しながら説明する。インバウンド論理202は初期設定状
態502から始まり、アダプタ・プロセッサ122が要求空きリスト302をセ
ットアップしてI/Oバッファの少なくとも1つのインデックスが利用できるよ
うになるのを待つ。ひとたびアダプタ・プロセッサ122が要求空きリスト30
2をロードすると、インバウンド論理202はメールボックス検査状態504に
移る。
【0032】 次いでホスト・マイクロプロセッサ104は、要求待ち行列インポインタ変数
によって指定される最初に利用可能なエントリから始めて、要求待ち行列110
で次に利用可能なエントリに、1つまたはそれ以上のIOCBをロードする。ホ
スト・マイクロプロセッサ104は要求待ち行列インポインタ変数のそのコピー
を、要求待ち行列110にロードされた新しいエントリの数だけ増分する。増分
された要求待ち行列インポインタ変数は、要求待ち行列110内で次に利用可能
なエントリのアドレスになる。ホスト・マイクロプロセッサ104は次いで、増
分された要求待ち行列インポインタ変数の新しい値を、着信メールボックス・レ
ジスタ・セット410のメールボックス・レジスタ3の要求待ち行列インポイン
タ402に書き込む。インバウンド論理202は、着信メールボックス・セット
410のメールボックス・レジスタ3をポーリングする。要求インポインタ40
2が要求アウトポインタ404に等しく、要求待ち行列が空であることを示す限
り、インバウンド論理202はメールボックス検査状態504に留まる。ホスト
が新しい要求を要求待ち行列に書き込んだ後のように、ひとたび要求インポイン
タ402が要求アウトポインタ404と等しくなくなると、インバウンド論理2
02はバッファ読出し状態506に移る。インバウンド論理202は、要求待ち
行列110からIOCBを検索し(かつ一時的に保存し)始める。最初に、イン
バウンド論理202は要求空きリスト302からインデックスを読み出して、新
しいIOCBを格納するためにアダプタRAM138の空間を利用できるかどう
かを確認しようとする。空間を利用できることを示す有効な値が要求空きリスト
302から読み出されると、インバウンド論理202はDMAセットアップ状態
508に移る。インバウンド論理202は、要求充填リスト305でエントリが
利用可能であり、ひとたびバッファ領域410に転送されたときにIOCBのア
ドレスを提供するために利用可能な空間もあるかどうかを決定するために検査を
行なう。要求充填リスト304が一杯である限り、インバウンド論理202はD
MAセットアップ段階508で待機する。要求充填リスト304の空間が利用可
能である場合、インバウンド論理202はDMA開始状態510に移る。インバ
ウンド論理202は、DMAバッファ418にコマンドを書き込むことによって
、DMA動作を開始する。コマンドは、ソースとして要求アウトポインタ404
から決定されたホスト・アドレスを含み、かつサイズとしてI/O要求フレーム
のサイズを含む。
【0033】 インバウンド論理202は、コマンドDMA120からの「DMA完了」メッ
セージを待つ。「DMA完了」がコマンドDMAチャネル124から通信される
と、インバウンド論理202はDMA状態512へ移行する。インバウンド論理
202はDMA状態レジスタ(図示せず)からDMA状態を読み出す。エラーが
発生すると、インバウンド論理202は再試行状態518に移り、プロセッサ1
22に通知する。インバウンド論理202は、エラー状態のことをプロセッサ1
22に通知した後、再びDMA開始状態510に移る。代替的に、エラーがコマ
ンドDMAチャネル124によって通信されなかった場合、インバウンド論理2
02はデータ移動状態514に移る。次いでアダプタ・プロセッサ122は、要
求待ち行列アウトポインタ変数を増分し、この値を発信メールボックス・レジス
タ・セット412のメールボックス・レジスタ3に書き込む。次いでホスト・マ
イクロプロセッサ104は、発信メールボックス・レジスタ・セット412のメ
ールボックス・レジスタ3を読み出して、要求待ち行列アウトポインタのそのコ
ピーを更新することができる。インバウンド論理202はさらに、DMAチャネ
ルFIFO(図示せず)からのデータを、前に要求空きリスト302から読み出
されたエントリから決定された要求バッファ210に移す。転送が完了すると、
インバウンド論理202は充填リスト書込み状態516に移る。次いでインバウ
ンド論理202は、IOCBの位置を示すために、要求空きリスト302から読
み出された値を要求充填リスト304に書き込み、再びメールボックス検査状態
504に移る。
【0034】 ホスト・アダプタ118は、第2バス130にアクセスし、かつ要求された情
報を周辺I/O装置132〜134に、またはそこから書き込みまたは検索する
ことによって、IOCBを処理する。好適な実施形態では、読出しI/O要求中
に、ホスト・アダプタ118は、指定されたI/O装置132〜134から検索
されたデータをメモリ106(図1)内の位置へ直接転送し始める。上記の説明
から理解できるように、プロセッサ122は、IOCBを読み出すことができる
ようになる前にホスト・システムからホスト・アダプタRAMへのIOCBの転
送をセットアップしなければならない代わりに、アダプタIOCBバッファ領域
からIOCBを読み出すことが必要なだけである。本発明の方法では、プロセッ
サがIOCBを処理する前に使用するプロセッサ・サイクルが少なくなり、それ
によりそのスループットが高くなる。
【0035】 図6は、アダプタRAM138から応答待ち行列112へのI/O応答の自動
転送を促進するのに使用される論理記憶要素を示す。上述した通り、記憶要素は
応答待ち行列112、入力メールボックス・レジスタ・セット410(入力メー
ルボックス)、出力メールボックス・レジスタ・セット412(出力メールボッ
クス)、応答空きバッファ・リスト306(応答空きリスト)、応答充填バッフ
ァ・リスト308(応答充填リスト)、I/O応答バッファ212、およびDM
Aバッファ418の組を含む。
【0036】 応答待ち行列112のエントリは、応答待ち行列インポインタ406を制御す
る、ホスト・アダプタ118内のアウトバウンド論理204(図7)によって待
ち行列に登録される。応答待ち行列112のエントリは、応答待ち行列アウトポ
インタ408を制御する、ホスト・マイクロプロセッサ104によって待ち行列
から外される。応答待ち行列112の各エントリは1つのIOSBを保持するこ
とができる。
【0037】 応答待ち行列112の構造は、応答待ち行列112がI/O状態ブロック(I
OSB)を含むように構成されるのに対して、要求待ち行列110がIOCBを
含むように構成されることを除いては、要求待ち行列110の構造と実質的に類
似している。応答待ち行列112は、ホスト・マイクロプロセッサ104へのイ
ンタフェースであり、そこを通してホスト・アダプタ118は、SCSI状態お
よびI/O要求に関するその他の状態情報を含むIOSBの移送のためにI/O
応答を受け渡す。IOSBは、I/O要求が完了したことをホスト・マイクロプ
ロセッサ104に通知し、かつI/O要求が成功したか否かについてもマイクロ
プロセッサ104に通知する状態情報を含む。I/Oコマンド完了情報を処理し
かつ検索する準備ができると、ホスト・アダプタ118は、応答待ち行列112
にエントリを書き込むことによって、ホスト・マイクロプロセッサ104に報告
する。完了したI/O要求が読出し動作を含んでいた場合、ホスト・マイクロプ
ロセッサ104は次いで、I/O装置132〜134から検索されたデータを処
理して、メモリ106内に格納することができる。応答待ち行列インポインタ4
06は、応答が応答待ち行列112に書き込まれる毎に増分されるように、アウ
トバウンド論理204によって制御される。応答待ち行列アウトポインタ408
は、応答が待ち行列112から読み出される毎に応答待ち行列アウトポインタ4
08が増分されるように、ホスト・マイクロプロセッサ104によって制御され
る。
【0038】 応答空きリスト306および応答充填リスト308は、応答が含まれるホスト
・アダプタRAM138内のI/Oバッファを追跡するために使用される。応答
空きリスト302および応答充填リスト304は、FIFOデータ構造として実
現することが有利である。応答空きリスト306は、プロセッサ122がI/O
応答のための空間を割り当てたRAM138内の応答バッファ212に対するイ
ンデックスを含む。I/O応答バッファ212の基準アドレスは、アウトバウン
ド論理204によって読出し可能なレジスタ(図示せず)に格納される。アウト
バウンド論理204は基準アドレスを使用して、応答空きリスト306および応
答充填リスト308内のエントリによって指定されるI/Oバッファのメモリ位
置を決定する。
【0039】 アウトバウンド論理204の動作について、図1〜図3、図6を参照し、かつ
図7のステートマシン図を参照しながら説明する。アウトバウンド論理204は
初期設定状態702から始動し、そこでアダプタ・プロセッサ122が応答空き
リスト306を初期化して、I/Oバッファ212の少なくとも1つのインデッ
クスが利用できるようになるのを待つ。ひとたび応答空きリスト306がロード
されると、アウトバウンド論理204は充填リスト検査状態704に移る。アダ
プタ・プロセッサ122は1つまたはそれ以上のIOSBを、応答空きリスト3
06における次のエントリによって指定されるRAM138の位置にロードする
。アダプタ・プロセッサ122は次いでバッファのインデックスを応答充填リス
ト308に書き込む。アウトバウンド論理204は、有効なエントリがあるか応
答充填リスト308を検査する。有効なエントリが読み出されると、それは応答
がバッファにロードされていることをアウトバウンド論理に示し、アウトバウン
ド論理204はDMAセットアップ状態706に移る。
【0040】 アウトバウンド論理204は、応答待ち行列112に別のエントリのための空
間があるかどうかを決定するために検査する。応答待ち行列インポインタの値と
応答待ち行列アウトポインタの値の差を使用して、応答待ち行列112内にどれ
だけの空間があるかを決定する。応答待ち行列112に充分な空間がある場合、
アウトバウンド論理204はデータ移動状態708に進む。次いで、応答充填リ
スト308内のエントリによって指定された位置からのデータが、DMAチャネ
ルFIFO(図示せず)に移される。データがDMAチャネルFIFOでレディ
状態になると、アウトバウンド論理204はDMA開始状態710に移る。次い
で、ターゲットとして応答待ち行列インポインタから確認されたアドレス、およ
びサイズとして応答エントリ・サイズを提供することによって、DMA動作が開
始される。次いでアウトバウンド論理204は、DMA読出し状態712に移る
。DMA状態によってDMAエラーが通信されると、アウトバウンド論理204
は再試行状態716に移る。アウトバウンド論理204は、プロセッサ122に
エラー状態を通知した後、再びDMA開始状態710に移る。代替的に、コマン
ドDMAチャネル124によってエラーが通信されなかった場合、アウトバウン
ド論理204は空きリスト書込み状態714に移る。次いでアウトバウンド論理
204は、応答充填リスト308から読み出されたインデックスを応答空きリス
ト306に書き込み、バッファを再びプロセッサ122に利用可能にする。次い
でアウトバウンド論理204は、応答待ち行列インポインタを増分し、増分され
た応答待ち行列インポインタの値を、ホスト・マイクロプロセッサ104が読出
すように発信メールボックス・レジスタ・セット412内のメールボックス・レ
ジスタ4に書き込む。次いでアウトバウンド論理204は充填リスト検査状態7
04に移り、そこで応答充填リスト308を監視する。ホスト・マイクロプロセ
ッサ104は次いで、応答待ち行列112のエントリを読み出し、応答待ち行列
アウトポインタ変数のそのコピーを増分する。一度応答待ち行列アウトポインタ
変数および応答待ち行列インポインタ変数が等しくなると、ホスト・マイクロプ
ロセッサ104は、応答待ち行列112内の全ての応答の読み出しを終了する。
したがって、アダプタ・プロセッサ112は、アダプタRAM138からホスト
・メモリ106へのIOSBの転送を実際にセットアップする必要が無く、応答
空きリスト306から検索されたアドレスにIOSBを書き込み、次いでそのア
ドレスを応答充填リスト308に提供することが必要なだけである。
【0041】 以上の説明から、インバウンドおよびアウトバウンド論理ユニットが、それが
無ければアダプタ・プロセッサ122に任される幾つかの機能を実行することを
、理解することができる。アダプタ・プロセッサ122はIOCBまたはIOS
Bの転送をセットアップする必要がない。IOCBは自動的にアダプタRAM1
38にロードされ、アダプタ・プロセッサ122はI/O要求をより高い速度で
データDMAチャネルに送ることが可能になる。IOSBは自動的にアダプタR
AM138からオフロードされ、アダプタ・プロセッサ122は応答をより高い
速度で処理することが可能になる。特に、I/O装置の速度の増加により、アダ
プタ・プロセッサ122からセットアップ作業の一部が解放されることから、シ
ステムの性能を有意に改善することができる。I/O処理速度のこの改善から利
益を得られるシステムの例として、インターネット・サーバ、RAIDサーバ、
データベース・フロント・エンド、およびその他の高度I/O型コンピュータ・
システムがある。
【0042】 本発明は、I/O要求作業負荷(高い作業負荷または低い作業負荷のどちらで
も)、アクセスの型(順次またはランダム・アクセスのどちらでも)、システム
構成の型、I/O装置の数、および待機または非待機I/O要求のどちらであろ
うとI/O要求の型に関係なく、実施することができる。代替実施形態は、高い
または低いI/O要求作業負荷、順次またはランダムI/Oアクセス、異なる数
のI/O装置、および待機または非待機I/Oを持つことができる。
【0043】 本発明を特定の好適な実施形態に関して説明したが、当業者には明らかな他の
実施形態も本発明の範囲内に入る。したがって、本発明の範囲は、請求の範囲に
よって定義するつもりである。
【図面の簡単な説明】
【図1】 ホスト計算機システム、多数の周辺I/O装置、およびホスト・バス・アダプタ
を含むコンピュータ・システムを示す図
【図2】 ホスト・バス・アダプタのI/Oコマンド処理部分を示す図
【図3】 図2のホスト・バス・アダプタのI/Oコマンド処理部分の要素の論理接続を示
す図
【図4】 I/O要求インバウンド動作に関連付けられた記憶要素間の論理関係を示す図
【図5】 本発明のインバウンド論理回路の動作の状態図
【図6】 I/O応答インバウンド動作に関連付けられた記憶要素間の論理関係を示す図
【図7】 本発明のインバウンド論理回路の動作状態図を示す図
【手続補正書】
【提出日】平成13年12月12日(2001.12.12)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】追加
【補正の内容】
【図5】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AG,AL,AM,AT, AU,AZ,BA,BB,BG,BR,BY,CA,C H,CN,CR,CU,CZ,DE,DK,DM,DZ ,EE,ES,FI,GB,GD,GE,GH,GM, HR,HU,ID,IL,IN,IS,JP,KE,K G,KP,KR,KZ,LC,LK,LR,LS,LT ,LU,LV,MA,MD,MG,MK,MN,MW, MX,NO,NZ,PL,PT,RO,RU,SD,S E,SG,SI,SK,SL,TJ,TM,TR,TT ,TZ,UA,UG,UZ,VN,YU,ZA,ZW (72)発明者 シィッピィ、チャンドル、エム. アメリカ合衆国 カリフォルニア州 92620、アービン、クリスタマン イース ト 28 Fターム(参考) 5B014 EB03 FA04 FB02 FB04 GA02 GA06 GC06 GC07 GD05 GD12 GD22 GE05 HB24 5B061 BA03 DD01 DD09 DD12 5B077 AA18 AA23 BA02 BB02 BB07 DD02 DD05 DD22 MM03

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 処理すべきI/Oコマンド・ブロックを格納するためにホス
    ト・アダプタ上のプロセッサによって使用されるコマンド・ブロック・バッファ
    内にホスト・システムからのI/Oコマンド・ブロックを自動的にロードする方
    法であって、 要求待ち行列を監視して、新しいコマンドが前記要求待ち行列内に入ったとき
    にそれを決定し、 前記待ち行列内の前記新しいコマンドのアドレスを決定し、 利用可能なバッファ位置のリストから識別されたバッファ・アドレスを検索し
    、 前記新しいコマンド・アドレスからのデータを前記バッファ・アドレスに転送
    し、 充填されたバッファ位置のリストに前記バッファ・アドレスを書き込む、こと
    を含む方法。
  2. 【請求項2】 前記要求待ち行列の監視が、前記ホスト・アダプタ上の少な
    くとも1つのレジスタを使用して、前記ホスト・システムと前記ホスト・アダプ
    タとの間で情報を送ることを含む、請求項1に記載の方法。
  3. 【請求項3】 前記新しいコマンド・アドレスから前記バッファ・アドレス
    へのデータの転送が直接メモリ・アクセス(DMA)転送動作である、請求項1
    に記載の方法。
  4. 【請求項4】 前記ホスト・アダプタがファイバ・チャネル・ホスト・アダ
    プタである、請求項1に記載の方法。
  5. 【請求項5】 前記ホスト・システムおよび前記ホスト・アダプタが周辺装
    置相互接続(PCI)バスによって互いに結合される、請求項1に記載の方法。
  6. 【請求項6】 ホスト・システムからホスト・アダプタへのI/Oコマンド
    の処理を加速するための回路であって、 ホスト・アダプタRAMと、 ホスト・メモリ内の要求待ち行列を監視し、I/O要求の検出に応答して信号
    を生成する監視ユニットと、 前記監視ユニットに応答するデータ検索ユニットであって、前記データ検出ユ
    ニットがI/O要求を含む前記要求待ち行列内の位置から前記ホスト・アダプタ
    RAM上のバッファにデータを転送し、バッファ・アドレスが前記ホスト・アダ
    プタRAM内の利用可能なリストから読み出され、かつ前記データ検索ユニット
    が前記ホスト・アダプタRAM内の充填バッファ・リストに前記バッファ・アド
    レスを書き込むように構成されたデータ検索ユニットと、 前記バッファから前記I/Oコマンドを読み出すプロセッサであって、前記バ
    ッファ・アドレスが前記充填バッファ・リストから読み出され、前記プロセッサ
    が前記I/Oコマンドを処理した後で前記利用可能なバッファ・リストに前記バ
    ッファ・アドレスを書き込むように構成されたプロセッサと、を含む回路。
  7. 【請求項7】 前記監視ユニットが、前記ホスト・システムと前記ホスト・
    アダプタとの間で情報を送るために使用される、前記ホスト・アダプタ上の少な
    くとも1つのレジスタを含む、請求項6に記載の回路。
  8. 【請求項8】 前記データ検索ユニットが、直接メモリ・アクセス(DMA
    )動作をセットアップすることによって、前記要求待ち行列から前記ホスト・ア
    ダプタRAMにデータを転送する、請求項6に記載の回路。
  9. 【請求項9】 前記ホスト・アダプタがファイバ・チャネル・ホスト・アダ
    プタである、請求項6に記載の回路。
  10. 【請求項10】 前記ホスト・システムおよび前記ホスト・アダプタが周辺
    装置相互接続(PCI)バスによって互いに結合される、請求項6に記載の回路
  11. 【請求項11】 前記監視ユニットおよびデータ検索ユニットが前記アダプ
    タRAMからの命令を実行する単一プロセッサを含む、請求項6に記載の回路。
  12. 【請求項12】 ホスト・アダプタからホスト・システムにI/O状態ブロ
    ックを自動的に転送する方法であって、 I/O状態ブロックが含まれるアダプタRAM内のバッファを識別する、アダ
    プタRAM内の充填バッファ・リストを監視し、 I/O状態ブロックが前記充填バッファ・リストのエントリから格納されるバ
    ッファ・アドレスを決定し、 前記アダプタRAMからホスト・メモリ内の応答待ち行列に前記I/O状態ブ
    ロックを転送し、 前記バッファ・アドレスをアダプタRAM内の空きバッファ位置リストに書き
    込む、ことを含む方法。
  13. 【請求項13】 ホスト・アダプタからコンピュータ・システムにI/O状
    態ブロックを自動的に転送するための回路であって、 前記ホスト・アダプタのRAM内の充填バッファ・リストを監視し、前記充填
    バッファ・リストの新しいエントリの検出に応答して信号を生成する監視ユニッ
    トと、 前記監視ユニットに応答するデータ検索ユニットであって、前記データ検出ユ
    ニットが、前記充填バッファ・リストのエントリによって識別される前記ホスト
    ・アダプタRAM内のバッファから、前記ホスト・システム内の応答待ち行列に
    データを転送し、バッファ・アドレスが前記ホスト・アダプタRAM内の充填リ
    ストから読み出され、かつ前記データ検索ユニットが前記ホスト・アダプタRA
    M内の空きバッファ・リストに前記バッファ・アドレスを書き込むように構成さ
    れたデータ検索ユニットと、 前記バッファに前記I/O状態ブロックを書き込むプロセッサであって、前記
    バッファ・アドレスが前記空きバッファ・リストから読み出され、前記プロセッ
    サが前記I/O状態ブロックを書き込んだ後で前記充填バッファ・リストに前記
    バッファ・アドレスを書き込むように構成されたプロセッサと を含む回路。
  14. 【請求項14】 ホスト・アダプタのプロセッサを使用することなく転送が
    行われるように、ホスト・システムからホスト・アダプタへのI/Oコマンドの
    転送を自動化するための回路であって、 前記ホスト・システムのメモリ内の要求待ち行列を監視し、前記要求待ち行列
    のI/Oコマンド・ブロックの検出に応答して信号を生成する監視回路と、 前記監視回路に応答するデータ検索回路であって、前記信号に応答して前記ホ
    スト・アダプタのバッファに前記I/Oコマンド・ブロックを転送するデータ検
    索回路と を含む回路。
JP2001501993A 1999-06-09 2000-06-01 ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置 Pending JP2003501746A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/328,738 1999-06-09
US09/328,738 US6564271B2 (en) 1999-06-09 1999-06-09 Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
PCT/US2000/040053 WO2000075789A1 (en) 1999-06-09 2000-06-01 A method and apparatus for automatically transferring i/o blocks between a host system and a host adapter

Publications (1)

Publication Number Publication Date
JP2003501746A true JP2003501746A (ja) 2003-01-14

Family

ID=23282217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001501993A Pending JP2003501746A (ja) 1999-06-09 2000-06-01 ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置

Country Status (9)

Country Link
US (2) US6564271B2 (ja)
EP (1) EP1188119B1 (ja)
JP (1) JP2003501746A (ja)
KR (1) KR100701419B1 (ja)
AT (1) ATE452369T1 (ja)
AU (1) AU4861000A (ja)
CA (1) CA2375612A1 (ja)
DE (1) DE60043540D1 (ja)
WO (1) WO2000075789A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181579A (ja) * 2008-01-31 2009-08-13 Seiko Epson Corp 機能を呼び出す方法、サブシステムおよびシステム
JP2013235464A (ja) * 2012-05-10 2013-11-21 Hitachi Ltd 計算機及び計算機における入出力制御方法

Families Citing this family (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2816786B1 (fr) * 2000-11-14 2003-09-12 Schneider Automation S A Dispositif d'adaptation programmable pour protocoles de communication
US6973524B1 (en) * 2000-12-14 2005-12-06 Lsi Logic Corporation Interface for bus independent core
ATE468562T1 (de) * 2000-12-15 2010-06-15 Ibm Virtualisierung von e/a-adapterressourcen
US7363389B2 (en) * 2001-03-29 2008-04-22 Intel Corporation Apparatus and method for enhanced channel adapter performance through implementation of a completion queue engine and address translation engine
US6732194B1 (en) * 2001-06-27 2004-05-04 Emc Corporation Method and apparatus for multi-sequential data operations
JP2003030018A (ja) * 2001-07-13 2003-01-31 Sony Corp データ通信装置および方法、データ通信システム、情報処理装置および方法、記録媒体、並びにプログラム
US6904497B1 (en) * 2001-09-21 2005-06-07 Adaptec, Inc. Method and apparatus for extending storage functionality at the bios level
US6643735B2 (en) * 2001-12-03 2003-11-04 International Business Machines Corporation Integrated RAID system with the capability of selecting between software and hardware RAID
US6829660B2 (en) * 2001-12-12 2004-12-07 Emulex Design & Manufacturing Corporation Supercharge message exchanger
US6789133B1 (en) * 2001-12-28 2004-09-07 Unisys Corporation System and method for facilitating use of commodity I/O components in a legacy hardware system
US7171509B2 (en) * 2002-01-09 2007-01-30 International Business Machines Corporation Method and apparatus for host messaging unit for Peripheral Component Interconnect busmaster devices
US7346135B1 (en) 2002-02-13 2008-03-18 Marvell International, Ltd. Compensation for residual frequency offset, phase noise and sampling phase offset in wireless networks
US7230929B2 (en) * 2002-07-22 2007-06-12 Qlogic, Corporation Method and system for dynamically assigning domain identification in a multi-module fibre channel switch
US7154886B2 (en) * 2002-07-22 2006-12-26 Qlogic Corporation Method and system for primary blade selection in a multi-module fiber channel switch
US7130933B2 (en) * 2002-07-24 2006-10-31 Intel Corporation Method, system, and program for handling input/output commands
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US6941408B2 (en) * 2002-09-30 2005-09-06 Lsi Logic Corporation Bus interface system with two separate data transfer interfaces
US7263153B2 (en) * 2002-10-09 2007-08-28 Marvell International, Ltd. Clock offset compensator
US7319705B1 (en) 2002-10-22 2008-01-15 Marvell International Ltd. Programmable pre-emphasis circuit for serial ATA
US7007122B2 (en) * 2002-11-27 2006-02-28 Lsi Logic Corporation Method for pre-emptive arbitration
US7246192B1 (en) 2003-01-10 2007-07-17 Marvell International Ltd. Serial/parallel ATA controller and converter
US7024499B2 (en) * 2003-01-21 2006-04-04 Red Hat, Inc. Cache only queue option for cache controller
US7526598B2 (en) * 2003-03-03 2009-04-28 Sandisk Il, Ltd. Efficient flash memory device driver
US6976100B2 (en) * 2003-04-25 2005-12-13 International Business Machines Corporation Autonomic I/O adapter response performance optimization using polling
US7085859B2 (en) * 2003-05-14 2006-08-01 International Business Machines Corporation Method, apparatus and program storage device for automatically presenting status from a host bus adapter until an error is detected
US20040255068A1 (en) * 2003-06-13 2004-12-16 Yuan-Ting Wu Method and apparatus for control of another device through an ide bus
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7234101B1 (en) 2003-08-27 2007-06-19 Qlogic, Corporation Method and system for providing data integrity in storage systems
US8930583B1 (en) 2003-09-18 2015-01-06 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for controlling data transfer in a serial-ATA system
US7219263B1 (en) 2003-10-29 2007-05-15 Qlogic, Corporation Method and system for minimizing memory corruption
US7647355B2 (en) * 2003-10-30 2010-01-12 International Business Machines Corporation Method and apparatus for increasing efficiency of data storage in a file system
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US20050240727A1 (en) * 2004-04-23 2005-10-27 Shishir Shah Method and system for managing storage area networks
US20080301328A1 (en) * 2004-04-27 2008-12-04 Russ Craig F Method and system for improved communication between central processing units and input/output processors
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US7958292B2 (en) 2004-06-23 2011-06-07 Marvell World Trade Ltd. Disk drive system on chip with integrated buffer memory and support for host memory access
US20060015659A1 (en) * 2004-07-19 2006-01-19 Krantz Leon A System and method for transferring data using storage controllers
US9201599B2 (en) 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
US7380030B2 (en) * 2004-10-01 2008-05-27 Qlogic, Corp. Method and system for using an in-line credit extender with a host bus adapter
US7676611B2 (en) * 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US7398335B2 (en) * 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters
US7164425B2 (en) * 2004-12-21 2007-01-16 Qlogic Corporation Method and system for high speed network application
US7392437B2 (en) * 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US8510491B1 (en) * 2005-04-05 2013-08-13 Oracle America, Inc. Method and apparatus for efficient interrupt event notification for a scalable input/output device
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7676605B1 (en) * 2005-04-06 2010-03-09 Teradici Corporation Methods and apparatus for bridging a bus controller
US7231480B2 (en) * 2005-04-06 2007-06-12 Qlogic, Corporation Method and system for receiver detection in PCI-Express devices
US7908335B1 (en) * 2005-04-06 2011-03-15 Teradici Corporation Methods and apparatus for bridging a USB connection
JP2007011659A (ja) * 2005-06-30 2007-01-18 Toshiba Corp インターフェース装置、ディスクドライブ及びインターフェース制御方法
US7577773B1 (en) * 2005-09-09 2009-08-18 Qlogic, Corporation Method and system for DMA optimization
US20070118664A1 (en) * 2005-10-24 2007-05-24 International Business Machines Corporation Mail dispatch system
US20090265485A1 (en) * 2005-11-30 2009-10-22 Broadcom Corporation Ring-based cache coherent bus
US7568060B2 (en) * 2005-12-15 2009-07-28 International Business Machines Corporation Method and system for interfacing components of a computing system with a pair of unidirectional, point-to-point buses
EP1974296B8 (en) 2005-12-19 2016-09-21 Commvault Systems, Inc. Systems and methods for performing data replication
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US8655850B2 (en) 2005-12-19 2014-02-18 Commvault Systems, Inc. Systems and methods for resynchronizing information
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7461195B1 (en) 2006-03-17 2008-12-02 Qlogic, Corporation Method and system for dynamically adjusting data transfer rates in PCI-express devices
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US8095745B1 (en) * 2006-08-07 2012-01-10 Marvell International Ltd. Non-sequential transfer of data from a memory
US7716397B2 (en) * 2007-07-03 2010-05-11 Lsi Corporation Methods and systems for interprocessor message exchange between devices using only write bus transactions
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
JP5102917B2 (ja) * 2008-02-22 2012-12-19 株式会社日立製作所 ストレージ装置及びアクセス命令送信方法
US8312241B2 (en) * 2008-03-06 2012-11-13 Integrated Device Technology, Inc. Serial buffer to support request packets with out of order response packets
US20090228733A1 (en) * 2008-03-06 2009-09-10 Integrated Device Technology, Inc. Power Management On sRIO Endpoint
US20090225775A1 (en) * 2008-03-06 2009-09-10 Integrated Device Technology, Inc. Serial Buffer To Support Reliable Connection Between Rapid I/O End-Point And FPGA Lite-Weight Protocols
US8213448B2 (en) * 2008-03-06 2012-07-03 Integrated Device Technology, Inc. Method to support lossless real time data sampling and processing on rapid I/O end-point
US8312190B2 (en) * 2008-03-06 2012-11-13 Integrated Device Technology, Inc. Protocol translation in a serial buffer
US8625621B2 (en) * 2008-03-06 2014-01-07 Integrated Device Technology, Inc. Method to support flexible data transport on serial protocols
WO2010021120A1 (ja) * 2008-08-20 2010-02-25 パナソニック株式会社 通信装置、及び通信制御方法
US20100064072A1 (en) * 2008-09-09 2010-03-11 Emulex Design & Manufacturing Corporation Dynamically Adjustable Arbitration Scheme
US20100106874A1 (en) * 2008-10-28 2010-04-29 Charles Dominguez Packet Filter Optimization For Network Interfaces
US9880954B2 (en) * 2008-12-01 2018-01-30 Micron Technology, Inc. Method and apparatus for providing data access
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8589347B2 (en) 2010-05-28 2013-11-19 Commvault Systems, Inc. Systems and methods for performing data replication
US8250252B1 (en) 2010-06-29 2012-08-21 Qlogic, Corporation System and methods for using a DMA module for a plurality of virtual machines
US8868804B2 (en) 2010-10-20 2014-10-21 Marvell World Trade Ltd. Unified I/O adapter
US9088594B2 (en) * 2011-02-07 2015-07-21 International Business Machines Corporation Providing to a parser and processors in a network processor access to an external coprocessor
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US9727501B2 (en) * 2011-10-31 2017-08-08 Brocade Communications Systems, Inc. SAN fabric online path diagnostics
US9892031B2 (en) * 2011-11-07 2018-02-13 Sap Se Lock-free scalable free list
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
JP5941273B2 (ja) * 2011-12-02 2016-06-29 キヤノン株式会社 情報処理装置、及びその制御方法
US8904067B2 (en) * 2012-03-13 2014-12-02 Microsoft Corporation Adaptive multi-threaded buffer
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9727494B1 (en) * 2012-10-11 2017-08-08 Qlogic, Corporation Method and system for communication between a computing device and a peripheral device
US8677044B1 (en) * 2012-10-25 2014-03-18 Qlogic, Corporation Method and system for communication using multiple DMA channels
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
KR102395190B1 (ko) 2017-07-31 2022-05-06 삼성전자주식회사 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법
US11151037B2 (en) 2018-04-12 2021-10-19 International Business Machines Corporation Using track locks and stride group locks to manage cache operations
US10606776B2 (en) 2018-04-16 2020-03-31 International Business Machines Corporation Adding dummy requests to a submission queue to manage processing queued requests according to priorities of the queued requests
US10776013B2 (en) 2018-04-27 2020-09-15 International Business Machines Corporation Performing workload balancing of tracks in storage areas assigned to processing units
US10831597B2 (en) 2018-04-27 2020-11-10 International Business Machines Corporation Receiving, at a secondary storage controller, information on modified data from a primary storage controller to use to calculate parity data
US10884849B2 (en) 2018-04-27 2021-01-05 International Business Machines Corporation Mirroring information on modified data from a primary storage controller to a secondary storage controller for the secondary storage controller to use to calculate parity data
GB201808820D0 (en) 2018-05-30 2018-07-11 Nordic Semiconductor Asa Direct memory access controller
CN111679785A (zh) 2019-03-11 2020-09-18 三星电子株式会社 用于处理操作的存储器装置及其操作方法、数据处理系统
DE102020106357A1 (de) * 2019-03-11 2020-09-17 Samsung Electronics Co., Ltd. Speichereinrichtung und verfahren mit anweisungsringspeicherwarteschlange
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
US11868282B1 (en) * 2021-03-22 2024-01-09 Marvell Asia Pte Ltd Network device using cache techniques to process control signals
US20230236994A1 (en) * 2022-01-27 2023-07-27 Samsung Electronics Co., Ltd. Systems, methods, and devices for queue management with a coherent interface
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926927A (ja) * 1995-07-10 1997-01-28 Canon Inc デバイス制御装置及び方法
JPH09160861A (ja) * 1995-12-13 1997-06-20 Internatl Business Mach Corp <Ibm> ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム
JPH1185661A (ja) * 1997-09-05 1999-03-30 Hitachi Ltd 2次記憶装置およびハードディスク装置の制御方法
WO1999052253A1 (en) * 1998-04-03 1999-10-14 Lsi Logic Corporation Method and apparatus for transferring data from first protocol to a second protocol

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4783739A (en) 1979-11-05 1988-11-08 Geophysical Service Inc. Input/output command processor
US4333143A (en) 1979-11-19 1982-06-01 Texas Instruments Input process sequence controller
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
US4549263A (en) 1983-02-14 1985-10-22 Texas Instruments Incorporated Device interface controller for input/output controller
US4783730A (en) 1986-09-19 1988-11-08 Datapoint Corporation Input/output control technique utilizing multilevel memory structure for processor and I/O communication
US5276807A (en) 1987-04-13 1994-01-04 Emulex Corporation Bus interface synchronization circuitry for reducing time between successive data transmission in a system using an asynchronous handshaking
US4803622A (en) 1987-05-07 1989-02-07 Intel Corporation Programmable I/O sequencer for use in an I/O processor
US5212795A (en) 1988-10-11 1993-05-18 California Institute Of Technology Programmable DMA controller
US5321816A (en) 1989-10-10 1994-06-14 Unisys Corporation Local-remote apparatus with specialized image storage modules
US5249279A (en) * 1989-11-03 1993-09-28 Compaq Computer Corporation Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands
US5347638A (en) 1991-04-15 1994-09-13 Seagate Technology, Inc. Method and apparatus for reloading microinstruction code to a SCSI sequencer
US5371861A (en) 1992-09-15 1994-12-06 International Business Machines Corp. Personal computer with small computer system interface (SCSI) data flow storage controller capable of storing and processing multiple command descriptions ("threads")
US5448702A (en) 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
US5734924A (en) 1993-08-27 1998-03-31 Advanced System Products, Inc. System for host accessing local memory by asserting address signal corresponding to host adapter and data signal indicating address of location in local memory
US6049802A (en) * 1994-06-27 2000-04-11 Lockheed Martin Corporation System and method for generating a linked list in a computer memory
US5828903A (en) 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
US5758187A (en) 1996-03-15 1998-05-26 Adaptec, Inc. Method for enhancing performance of a RAID 1 read operation using a pair of I/O command blocks in a chain structure
US6233244B1 (en) * 1997-02-14 2001-05-15 Advanced Micro Devices, Inc. Method and apparatus for reclaiming buffers
US6115761A (en) * 1997-05-30 2000-09-05 Lsi Logic Corporation First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment
US5905905A (en) 1997-08-05 1999-05-18 Adaptec, Inc. System for copying IOBS from FIFO into I/O adapter, writing data completed IOB, and invalidating completed IOB in FIFO for reuse of FIFO
US5983292A (en) 1997-10-15 1999-11-09 International Business Machines Corporation Message transport mechanisms and methods
US6078970A (en) * 1997-10-15 2000-06-20 International Business Machines Corporation System for determining adapter interrupt status where interrupt is sent to host after operating status stored in register is shadowed to host memory
US6269413B1 (en) * 1998-10-30 2001-07-31 Hewlett Packard Company System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections
US6463032B1 (en) * 1999-01-27 2002-10-08 Advanced Micro Devices, Inc. Network switching system having overflow bypass in internal rules checker
US6546010B1 (en) * 1999-02-04 2003-04-08 Advanced Micro Devices, Inc. Bandwidth efficiency in cascaded scheme
US6434630B1 (en) * 1999-03-31 2002-08-13 Qlogic Corporation Host adapter for combining I/O completion reports and method of using the same
US6504846B1 (en) * 1999-05-21 2003-01-07 Advanced Micro Devices, Inc. Method and apparatus for reclaiming buffers using a single buffer bit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926927A (ja) * 1995-07-10 1997-01-28 Canon Inc デバイス制御装置及び方法
JPH09160861A (ja) * 1995-12-13 1997-06-20 Internatl Business Mach Corp <Ibm> ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム
JPH1185661A (ja) * 1997-09-05 1999-03-30 Hitachi Ltd 2次記憶装置およびハードディスク装置の制御方法
WO1999052253A1 (en) * 1998-04-03 1999-10-14 Lsi Logic Corporation Method and apparatus for transferring data from first protocol to a second protocol

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181579A (ja) * 2008-01-31 2009-08-13 Seiko Epson Corp 機能を呼び出す方法、サブシステムおよびシステム
JP2013235464A (ja) * 2012-05-10 2013-11-21 Hitachi Ltd 計算機及び計算機における入出力制御方法

Also Published As

Publication number Publication date
EP1188119B1 (en) 2009-12-16
US20030126322A1 (en) 2003-07-03
WO2000075789A1 (en) 2000-12-14
US6564271B2 (en) 2003-05-13
KR20020015047A (ko) 2002-02-27
US6810440B2 (en) 2004-10-26
EP1188119A1 (en) 2002-03-20
CA2375612A1 (en) 2000-12-14
KR100701419B1 (ko) 2007-03-30
AU4861000A (en) 2000-12-28
ATE452369T1 (de) 2010-01-15
DE60043540D1 (de) 2010-01-28
US20030056032A1 (en) 2003-03-20

Similar Documents

Publication Publication Date Title
JP2003501746A (ja) ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置
US5664145A (en) Apparatus and method for transferring data in a data storage subsystems wherein a multi-sector data transfer order is executed while a subsequent order is issued
KR100207887B1 (ko) 데이타 프로세싱 시스템 및 방법
US5968143A (en) Information handling system for transfer of command blocks to a local processing side without local processor intervention
EP0760135B1 (en) Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
US6275877B1 (en) Memory access controller
EP2126705B1 (en) Serial advanced technology attachment (sata) and serial attached small computer system interface (scsi) (sas) bridging
US5940866A (en) Information handling system having a local address queue for local storage of command blocks transferred from a host processing side
US20050235072A1 (en) Data storage controller
US7380115B2 (en) Transferring data using direct memory access
JPH07504527A (ja) 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム
CA2573156A1 (en) Apparatus and method for supporting memory management in an offload of network protocol processing
US5555390A (en) Data storage method and subsystem including a device controller for respecifying an amended start address
US7962676B2 (en) Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords
JP3266470B2 (ja) 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム
US5613141A (en) Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
US6502154B1 (en) Bus bridging method and apparatus including use of read size indicators
JPH0661074B2 (ja) アクセス制御装置、バスの遊休時間を最小化する方法、dma制御装置、及びdmaデータ転送方法
JPH11149455A (ja) メモリディスク共有方法及びその実施装置
JP2000244585A (ja) バスインタフェース回路
WO1992015058A1 (en) Data storage subsystem
WO1992015054A1 (en) Data transfer between a data storage subsystem and host system
JPH06105425B2 (ja) データ記憶サブシステムとホスト・データ処理システム間のデータ転送方法
JPH02268357A (ja) データ転送バッファ制御方式
JPH065521B2 (ja) メツセージ・バツフア・システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100420