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
- host adapter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 28
- 230000004044 response Effects 0.000 claims abstract description 90
- 239000000872 buffer Substances 0.000 claims abstract description 85
- 238000012546 transfer Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 13
- 230000002093 peripheral effect Effects 0.000 claims description 12
- 239000000835 fiber Substances 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims 13
- 238000001514 detection method Methods 0.000 claims 5
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- VLCQZHSMCYCDJL-UHFFFAOYSA-N tribenuron methyl Chemical compound COC(=O)C1=CC=CC=C1S(=O)(=O)NC(=O)N(C)C1=NC(C)=NC(OC)=N1 VLCQZHSMCYCDJL-UHFFFAOYSA-N 0.000 description 2
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 1
- 102100027490 H2.0-like homeobox protein Human genes 0.000 description 1
- 101001081101 Homo sapiens H2.0-like homeobox protein Proteins 0.000 description 1
- 101150046378 RAM1 gene Proteins 0.000 description 1
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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/126—Program 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
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)要求を処理するときにローカ
ル・プロセッサの処理要求を縮小するホスト・アダプタに関する。
・マイクロプロセッサからの入力/出力(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バス状態を変更するその他のコマンドを含むことができる。
ム)または中央処理装置(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動作をセットア
ップする際にアダプタ・プロセッサのスループットを有意に低下し得る。プロセ
ッサのスループットの低下は、ホスト・アダプタの性能に悪影響を及ぼす。既存
のホスト・マイクロプロセッサはより高速になるように設計されるので、アダプ
タ・プロセッサが要求を転送して処理するのに時間がかかることによるシステム
性能の低下はいっそう顕著になる。
業負荷が高ければ、アダプタ・プロセッサは大量の要求を処理する必要がある。
要求を処理する前に、要求を含むフレームを、保留中の要求を格納するためにホ
スト・アダプタによって使用されるメモリに移動しなければならない。一般的に
、ホスト・システムからホスト・アダプタのメモリ領域へのI/O要求の転送を
促進するために、アダプタ・プロセッサが使用される。一部の構成では、ホスト
・システムは、ホスト・メモリ内の領域を要求待ち行列および応答待ち行列とし
て使用する。要求待ち行列は、ホスト・システムからホスト・アダプタへのI/
O要求の転送を促進するために使用される。応答待ち行列は、ホスト・アダプタ
からホスト・システムへのI/Oコマンド完了状態情報の転送を促進するために
使用される。この構成では、ホスト・メモリ内の待ち行列に出入りするフレーム
を監視し、かつ移動させるために、アダプタ・プロセッサが使用される。多数の
I/O要求が発行され、処理される場合、(アダプタ・プロセッサがデータを移
動させる必要性によって生じる)オーバヘッドは、実際のI/O動作をセットア
ップする際にアダプタ・プロセッサのスループットを有意に低下し得る。プロセ
ッサのスループットの低下は、ホスト・アダプタの性能に悪影響を及ぼす。既存
のホスト・マイクロプロセッサはより高速になるように設計されるので、アダプ
タ・プロセッサが要求を転送して処理するのに時間がかかることによるシステム
性能の低下はいっそう顕著になる。
【0004】
周辺I/O装置がI/O要求を処理する速度は、ホスト・プロセッサ速度の増
加と共に増加する。処理速度が高いほど、ファイバ・チャネル装置などの高速I
/O装置を充分に利用するためにホスト・アダプタがI/O要求を素早く処理す
る必要性が大きくなる。そこで、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コマンド・ブロックを読み出すことができる。
納するためにホスト・アダプタ上のプロセッサによって使用されるバッファに、
および当該バッファから、I/Oコマンド・ブロックおよびI/O状態ブロック
を自動的にロードする方法である。I/Oコマンド・ブロックをアダプタ・バッ
ファにロードするための当該方法は、要求待ち行列を監視して、新しいコマンド
が要求待ち行列に入ったときにそれを決定する。次いで、利用可能なバッファ位
置のリストからバッファ・アドレスが検索される。要求待ち行列からのデータは
、ホスト・システムからアダプタ・バッファの検索されたアドレスによって指定
される位置に転送される。ひとたびデータがバッファに転送されると、バッファ
のアドレスが充填バッファ位置リストに書込まれる。次いでアダプタ・プロセッ
サは、充填リストからのアドレスを使用してバッファからデータを検索すること
によって、I/Oコマンド・ブロックを読み出すことができる。
【0006】
本発明の別の態様は、ホスト・アダプタ・バッファからI/O状態ブロックを
検索するための方法である。当該方法は、I/O状態ブロックを含むアダプタR
AM内の応答バッファのリストを監視する。I/O状態ブロック・バッファ・ア
ドレスは、充填応答バッファのリストから決定される。I/O状態ブロックは次
いで、アダプタRAMからホスト・メモリ内の応答待ち行列に転送される。最後
に、バッファ・アドレスは、バッファを別のI/O状態ブロックに利用可能にす
るために、空きバッファ位置リストに書込まれる。アダプタ・プロセッサは、応
答情報を含む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を含む。
ンピュータ・システム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応答に関連するコマンドおよび状態情
報を格納する。
モリ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との間の通信を提供する。
ネットワーク・バスと呼ぶことができる。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)として構成することができる。
、またはファイバ・チャネル信号を送受信するように構成することができる。ホ
スト・バス・アダプタ116は、ホスト・アダプタ118、読出し専用メモリ(
ROM)136、およびランダム・アクセス・メモリ(RAM)138を含む。
ROM136は、ブート可能コードを格納するフラッシュ・プログラマブルRO
M(PROM)として構成することができる。
【0013】
ホスト・アダプタ118はプロセッサ122、直接メモリ・アクセス(DMA
)コントローラ125、およびSCSIエグセクティブ・プロトコル(SXP)
エンジン128を含む。1つの構成で、プロセッサ122は縮小命令セット・コ
ンピュータ(RISC)プロセッサである。
)コントローラ125、およびSCSIエグセクティブ・プロトコル(SXP)
エンジン128を含む。1つの構成で、プロセッサ122は縮小命令セット・コ
ンピュータ(RISC)プロセッサである。
【0014】
DMAコントローラは通常、アダプタ・プロセッサ122の介在無しにアダプ
タRAMへ、およびアダプタRAMからのデータの転送に使用される、幾つかの
DMAチャネルを制御する。図示した実施形態では、DMAコントローラは、コ
マンドの転送に使用されるコマンドDMAチャネル(図2)、およびデータ転送
に使用されるデータDMAチャネル(図2)を制御する。
タRAMへ、およびアダプタRAMからのデータの転送に使用される、幾つかの
DMAチャネルを制御する。図示した実施形態では、DMAコントローラは、コ
マンドの転送に使用されるコマンドDMAチャネル(図2)、およびデータ転送
に使用されるデータDMAチャネル(図2)を制御する。
【0015】
ROM136は、ブートアップ時にホスト・メモリ106内のソフトウェア・
ドライバまたはアダプタ・ボードROM136のブート可能(フラッシュ)コー
ドによって、RAMにダウンロードされる(すなわち初期化してロードされるか
または構成される)RISCコードまたはファームウェアを格納する。ファーム
ウェアは、ホスト・マイクロプロセッサ104からのI/O要求およびI/Oコ
マンドを処理するため、プロセッサ122によって実行される。SXPエンジン
128は、I/O要求に関連付けられる低レベル・コマンドを処理する。
ドライバまたはアダプタ・ボード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、スキャナ、および
プリンタとすることができる。
デオ・ディスク・ドライブ(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動作およびデータ転送を管理することができる。
しながら説明する。ホスト・マイクロプロセッサ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に送り、またはそこから検索する。
ングすることによって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に結合される。
構成要素を示す。ホスト・アダプタ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へのアクセスを制御するために使用される。
上述した通り、ホスト・システム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のポインタを追跡することが可能になる。
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のポインタを追跡することが可能になる。
08に関連付けられる。アウトバウンド論理204は応答充填リスト308に対
して読出し専用アクセスができる。アウトバウンド論理204は応答空きリスト
306に対して書込みアクセスができる。アウトバウンド論理204はアダプタ
RAM138から情報を読み出すことができる。アウトバウンド論理204はさ
らに、メールボックス・レジスタ208にも関連付けられて、アウトバウンド論
理204が応答待ち行列112のポインタを追跡することが可能になる。
【0023】
アダプタ・プロセッサ122はアダプタ・メモリ138に関連付けられ、要求
バッファ210からI/Oコマンドを読み出し、かつ応答バッファ212に状態
情報を書き込む。アダプタ・プロセッサ122は、要求空きリスト302および
応答充填リスト308に対して書込みアクセスができる。アダプタ・プロセッサ
122は、要求充填リスト304および応答空きリスト306に対しては読出し
専用アクセスができる。
バッファ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
を含む。
領域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バイトを
含む。本発明の代替実施形態では、コマンドおよび状態情報は、循環待ち行列の
代わりに、他の型のデータ構造(例えばスタック)に格納される。
ースであり、そこを通してホスト・マイクロプロセッサ104は、様々なコマン
ドおよびデータを含むI/Oコマンド・ブロック(IOCB)の移送のためにI
/O要求を受け渡す。要求待ち行列110は、先入れ先出し(FIFO)エント
リの循環固定長リストとして編成することが有利である。図示した実施形態では
、要求待ち行列110は128個のエントリを含み、各エントリは64バイトを
含む。本発明の代替実施形態では、コマンドおよび状態情報は、循環待ち行列の
代わりに、他の型のデータ構造(例えばスタック)に格納される。
【0026】
要求待ち行列110および応答待ち行列112は各々、インデックスとして実
現されるインポインタおよびアウトポインタを有する。ホスト・バス・アダプタ
116のファームウェアは、1組のインポインタ変数およびアウトポインタ変数
(図示せず)をアダプタRAM138に格納する。ホスト・メモリ106は1組
のそれ自身のインポインタ変数およびアウトポインタ変数(図示せず)を使用す
る。各インポインタ変数およびアウトポインタ変数は、計算式を使用することに
より、待ち行列110、112のエントリの1つのアドレスに関連付けられるア
ドレスに変換することができる。1つのそのような計算式は、次式によって与え
ることができる。
現されるインポインタおよびアウトポインタを有する。ホスト・バス・アダプタ
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を減算することによって計算することができる。
るかの決定は、入力メールボックス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を
保持することができる。
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に状態情報を転送するた
めに使用される。
クス・レジスタ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構造として実現することが有利である。
内の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に
移る。
テートマシン図を参照しながら説明する。インバウンド論理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要求フレーム
のサイズを含む。
によって指定される最初に利用可能なエントリから始めて、要求待ち行列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に移る。
セージを待つ。「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を処理する前に使用するプロセッサ・サイクルが少なくなり、それ
によりそのスループットが高くなる。
報を周辺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の組を含む。
転送を促進するのに使用される論理記憶要素を示す。上述した通り、記憶要素は
応答待ち行列112、入力メールボックス・レジスタ・セット410(入力メー
ルボックス)、出力メールボックス・レジスタ・セット412(出力メールボッ
クス)、応答空きバッファ・リスト306(応答空きリスト)、応答充填バッフ
ァ・リスト308(応答充填リスト)、I/O応答バッファ212、およびDM
Aバッファ418の組を含む。
【0036】
応答待ち行列112のエントリは、応答待ち行列インポインタ406を制御す
る、ホスト・アダプタ118内のアウトバウンド論理204(図7)によって待
ち行列に登録される。応答待ち行列112のエントリは、応答待ち行列アウトポ
インタ408を制御する、ホスト・マイクロプロセッサ104によって待ち行列
から外される。応答待ち行列112の各エントリは1つのIOSBを保持するこ
とができる。
る、ホスト・アダプタ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によって制御され
る。
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バッファのメモリ位
置を決定する。
・アダプタ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に移る。
図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に提供することが必要なだけである。
間があるかどうかを決定するために検査する。応答待ち行列インポインタの値と
応答待ち行列アウトポインタの値の差を使用して、応答待ち行列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型コンピュータ・
システムがある。
無ければアダプタ・プロセッサ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を持つことができる。
も)、アクセスの型(順次またはランダム・アクセスのどちらでも)、システム
構成の型、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】 処理すべきI/Oコマンド・ブロックを格納するためにホス
ト・アダプタ上のプロセッサによって使用されるコマンド・ブロック・バッファ
内にホスト・システムからのI/Oコマンド・ブロックを自動的にロードする方
法であって、 要求待ち行列を監視して、新しいコマンドが前記要求待ち行列内に入ったとき
にそれを決定し、 前記待ち行列内の前記新しいコマンドのアドレスを決定し、 利用可能なバッファ位置のリストから識別されたバッファ・アドレスを検索し
、 前記新しいコマンド・アドレスからのデータを前記バッファ・アドレスに転送
し、 充填されたバッファ位置のリストに前記バッファ・アドレスを書き込む、こと
を含む方法。 - 【請求項2】 前記要求待ち行列の監視が、前記ホスト・アダプタ上の少な
くとも1つのレジスタを使用して、前記ホスト・システムと前記ホスト・アダプ
タとの間で情報を送ることを含む、請求項1に記載の方法。 - 【請求項3】 前記新しいコマンド・アドレスから前記バッファ・アドレス
へのデータの転送が直接メモリ・アクセス(DMA)転送動作である、請求項1
に記載の方法。 - 【請求項4】 前記ホスト・アダプタがファイバ・チャネル・ホスト・アダ
プタである、請求項1に記載の方法。 - 【請求項5】 前記ホスト・システムおよび前記ホスト・アダプタが周辺装
置相互接続(PCI)バスによって互いに結合される、請求項1に記載の方法。 - 【請求項6】 ホスト・システムからホスト・アダプタへのI/Oコマンド
の処理を加速するための回路であって、 ホスト・アダプタRAMと、 ホスト・メモリ内の要求待ち行列を監視し、I/O要求の検出に応答して信号
を生成する監視ユニットと、 前記監視ユニットに応答するデータ検索ユニットであって、前記データ検出ユ
ニットがI/O要求を含む前記要求待ち行列内の位置から前記ホスト・アダプタ
RAM上のバッファにデータを転送し、バッファ・アドレスが前記ホスト・アダ
プタRAM内の利用可能なリストから読み出され、かつ前記データ検索ユニット
が前記ホスト・アダプタRAM内の充填バッファ・リストに前記バッファ・アド
レスを書き込むように構成されたデータ検索ユニットと、 前記バッファから前記I/Oコマンドを読み出すプロセッサであって、前記バ
ッファ・アドレスが前記充填バッファ・リストから読み出され、前記プロセッサ
が前記I/Oコマンドを処理した後で前記利用可能なバッファ・リストに前記バ
ッファ・アドレスを書き込むように構成されたプロセッサと、を含む回路。 - 【請求項7】 前記監視ユニットが、前記ホスト・システムと前記ホスト・
アダプタとの間で情報を送るために使用される、前記ホスト・アダプタ上の少な
くとも1つのレジスタを含む、請求項6に記載の回路。 - 【請求項8】 前記データ検索ユニットが、直接メモリ・アクセス(DMA
)動作をセットアップすることによって、前記要求待ち行列から前記ホスト・ア
ダプタRAMにデータを転送する、請求項6に記載の回路。 - 【請求項9】 前記ホスト・アダプタがファイバ・チャネル・ホスト・アダ
プタである、請求項6に記載の回路。 - 【請求項10】 前記ホスト・システムおよび前記ホスト・アダプタが周辺
装置相互接続(PCI)バスによって互いに結合される、請求項6に記載の回路
。 - 【請求項11】 前記監視ユニットおよびデータ検索ユニットが前記アダプ
タRAMからの命令を実行する単一プロセッサを含む、請求項6に記載の回路。 - 【請求項12】 ホスト・アダプタからホスト・システムにI/O状態ブロ
ックを自動的に転送する方法であって、 I/O状態ブロックが含まれるアダプタRAM内のバッファを識別する、アダ
プタRAM内の充填バッファ・リストを監視し、 I/O状態ブロックが前記充填バッファ・リストのエントリから格納されるバ
ッファ・アドレスを決定し、 前記アダプタRAMからホスト・メモリ内の応答待ち行列に前記I/O状態ブ
ロックを転送し、 前記バッファ・アドレスをアダプタRAM内の空きバッファ位置リストに書き
込む、ことを含む方法。 - 【請求項13】 ホスト・アダプタからコンピュータ・システムにI/O状
態ブロックを自動的に転送するための回路であって、 前記ホスト・アダプタのRAM内の充填バッファ・リストを監視し、前記充填
バッファ・リストの新しいエントリの検出に応答して信号を生成する監視ユニッ
トと、 前記監視ユニットに応答するデータ検索ユニットであって、前記データ検出ユ
ニットが、前記充填バッファ・リストのエントリによって識別される前記ホスト
・アダプタRAM内のバッファから、前記ホスト・システム内の応答待ち行列に
データを転送し、バッファ・アドレスが前記ホスト・アダプタRAM内の充填リ
ストから読み出され、かつ前記データ検索ユニットが前記ホスト・アダプタRA
M内の空きバッファ・リストに前記バッファ・アドレスを書き込むように構成さ
れたデータ検索ユニットと、 前記バッファに前記I/O状態ブロックを書き込むプロセッサであって、前記
バッファ・アドレスが前記空きバッファ・リストから読み出され、前記プロセッ
サが前記I/O状態ブロックを書き込んだ後で前記充填バッファ・リストに前記
バッファ・アドレスを書き込むように構成されたプロセッサと を含む回路。 - 【請求項14】 ホスト・アダプタのプロセッサを使用することなく転送が
行われるように、ホスト・システムからホスト・アダプタへのI/Oコマンドの
転送を自動化するための回路であって、 前記ホスト・システムのメモリ内の要求待ち行列を監視し、前記要求待ち行列
のI/Oコマンド・ブロックの検出に応答して信号を生成する監視回路と、 前記監視回路に応答するデータ検索回路であって、前記信号に応答して前記ホ
スト・アダプタのバッファに前記I/Oコマンド・ブロックを転送するデータ検
索回路と を含む回路。
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)
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 (180)
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 |
US7154886B2 (en) * | 2002-07-22 | 2006-12-26 | Qlogic Corporation | Method and system for primary blade selection in a multi-module fiber channel switch |
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 |
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 |
US7676611B2 (en) * | 2004-10-01 | 2010-03-09 | Qlogic, Corporation | Method and system for processing out of orders frames |
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 |
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 |
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 |
US7281077B2 (en) * | 2005-04-06 | 2007-10-09 | Qlogic, Corporation | Elastic buffer module for PCI express devices |
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 |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US7651593B2 (en) | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
EP1974296B8 (en) | 2005-12-19 | 2016-09-21 | 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 |
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 | 株式会社日立製作所 | ストレージ装置及びアクセス命令送信方法 |
US8312190B2 (en) * | 2008-03-06 | 2012-11-13 | Integrated Device Technology, Inc. | Protocol translation in a serial buffer |
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 |
US8625621B2 (en) * | 2008-03-06 | 2014-01-07 | Integrated Device Technology, Inc. | Method to support flexible data transport on serial protocols |
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 |
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 |
JP5395797B2 (ja) * | 2008-08-20 | 2014-01-22 | パナソニック株式会社 | 通信装置、及び通信制御方法 |
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 |
US9495382B2 (en) | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US8504517B2 (en) | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
WO2011150391A1 (en) | 2010-05-28 | 2011-12-01 | 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 |
EP2630579B1 (en) | 2010-10-20 | 2015-12-30 | 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 |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US8909982B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
US9727501B2 (en) * | 2011-10-31 | 2017-08-08 | Brocade Communications Systems, Inc. | SAN fabric online path diagnostics |
US8793543B2 (en) | 2011-11-07 | 2014-07-29 | Sandisk Enterprise Ip Llc | Adaptive read comparison signal generation for memory systems |
US9892031B2 (en) * | 2011-11-07 | 2018-02-13 | Sap Se | Lock-free scalable free list |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
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 |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
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 |
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 |
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 |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
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 |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening 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 |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented 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 |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between 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 |
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 |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
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 |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
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 |
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 |
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 |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
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 |
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 |
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 |
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 |
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 |
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 |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
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 |
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 |
US10776013B2 (en) | 2018-04-27 | 2020-09-15 | International Business Machines Corporation | Performing workload balancing of tracks in storage areas assigned to processing units |
GB201808820D0 (en) | 2018-05-30 | 2018-07-11 | Nordic Semiconductor Asa | Direct memory access controller |
DE102020105628A1 (de) | 2019-03-11 | 2020-09-17 | Samsung Electronics Co., Ltd. | Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung |
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 |
US12117944B2 (en) * | 2022-01-27 | 2024-10-15 | 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) |
US12056018B2 (en) | 2022-06-17 | 2024-08-06 | Commvault Systems, Inc. | Systems and methods for enforcing a recovery point objective (RPO) for a production database without generating secondary copies of the production database |
Citations (4)
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)
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 |
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 |
US5983292A (en) | 1997-10-15 | 1999-11-09 | International Business Machines Corporation | Message transport mechanisms and methods |
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 |
-
1999
- 1999-06-09 US US09/328,738 patent/US6564271B2/en not_active Expired - Lifetime
-
2000
- 2000-06-01 AU AU48610/00A patent/AU4861000A/en not_active Abandoned
- 2000-06-01 JP JP2001501993A patent/JP2003501746A/ja active Pending
- 2000-06-01 KR KR1020017015915A patent/KR100701419B1/ko not_active IP Right Cessation
- 2000-06-01 DE DE60043540T patent/DE60043540D1/de not_active Expired - Lifetime
- 2000-06-01 AT AT00930857T patent/ATE452369T1/de not_active IP Right Cessation
- 2000-06-01 CA CA002375612A patent/CA2375612A1/en not_active Abandoned
- 2000-06-01 EP EP00930857A patent/EP1188119B1/en not_active Expired - Lifetime
- 2000-06-01 WO PCT/US2000/040053 patent/WO2000075789A1/en active IP Right Grant
-
2003
- 2003-02-27 US US10/375,643 patent/US6810440B2/en not_active Expired - Lifetime
Patent Citations (4)
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)
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 |
---|---|
DE60043540D1 (de) | 2010-01-28 |
KR20020015047A (ko) | 2002-02-27 |
US6810440B2 (en) | 2004-10-26 |
US20030126322A1 (en) | 2003-07-03 |
US20030056032A1 (en) | 2003-03-20 |
EP1188119B1 (en) | 2009-12-16 |
AU4861000A (en) | 2000-12-28 |
ATE452369T1 (de) | 2010-01-15 |
WO2000075789A1 (en) | 2000-12-14 |
CA2375612A1 (en) | 2000-12-14 |
US6564271B2 (en) | 2003-05-13 |
KR100701419B1 (ko) | 2007-03-30 |
EP1188119A1 (en) | 2002-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 | |
US7761642B2 (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 | |
US6275877B1 (en) | Memory access controller | |
US20050235072A1 (en) | Data storage controller | |
US7380115B2 (en) | Transferring data using direct memory access | |
EP0348654A2 (en) | Method and apparatus for increasing system throughput | |
JPH07504527A (ja) | 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム | |
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データ転送方法 | |
KR20010095103A (ko) | 데이터 블록 전송 방법 및 장치 | |
JP2000244585A (ja) | バスインタフェース回路 | |
JPH0743687B2 (ja) | データ記憶サブシステム | |
WO1992015054A1 (en) | Data transfer between a data storage subsystem and host system | |
JPH02503124A (ja) | 周辺装置コントローラ | |
JP2527066B2 (ja) | 受信待ち行列処理装置 | |
JPH06105425B2 (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 |