JP2002540526A - I/o完了報告を組み合わせるホスト・アダプタおよびそれを使用する方法 - Google Patents
I/o完了報告を組み合わせるホスト・アダプタおよびそれを使用する方法Info
- Publication number
- JP2002540526A JP2002540526A JP2000608268A JP2000608268A JP2002540526A JP 2002540526 A JP2002540526 A JP 2002540526A JP 2000608268 A JP2000608268 A JP 2000608268A JP 2000608268 A JP2000608268 A JP 2000608268A JP 2002540526 A JP2002540526 A JP 2002540526A
- Authority
- JP
- Japan
- Prior art keywords
- requests
- host
- completed
- request
- host microprocessor
- 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
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/14—Handling requests for interconnection or transfer
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Input From Keyboards Or The Like (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
Abstract
Description
スト・アダプタからホスト・マイクロプロセッサに発生された入力/出力(I/
O)完了割り込み(インタラプト、interrupt )の数を減少するホスト・アダプ
タに関する。
ステム)または中央処理ユニット(CPU)が、I/OリクエストをI/Oコン
トローラないしアダプタに送信することによって、ディスク・ドライブのような
多数の周辺I/Oデバイスから情報を検索する。I/Oコントローラが周辺I/
Oデバイスとして予定されているI/Oリクエストを処理する。ほとんどのI/
Oコントローラは、ホスト・マイクロプロセッサからの多数I/Oリクエストを
同時に処理する。I/Oコントローラは各I/Oリクエストに関連する数個の低
レベル命令を処理する。例えば、小型コンピュータ・システム・インターフェー
ス(SCSI)バスに添着されたI/Oデバイスに対して、単一I/Oリクエス
トがSCSIバスのために仲裁する命令、ターゲットI/Oデバイスを選択する
命令、データの転送をリクエストする命令、SCSIバスからのI/Oデバイス
との断続および再接続する命令、およびSCSIバス状態を変更する他の命令を
含んでいてよい。
または低レベル命令の一つを完了した後、I/Oコントローラがハードウエア・
割り込みを介してホスト・マイクロプロセッサに通知する。割り込みがホスト・
マイクロプロセッサをして、I/Oリクエストが完了され、また、I/Oリクエ
ストが正確に実行されたかどうか決定せしめる。ホスト・マイクロプロセッサは
、I/Oコントローラからの割り込みをサービスするために他の操作を一時中断
しなければならない。さらに、ホスト・マイクロプロセッサが各割り込みをサー
ビスするとき、ホスト・マイクロプロセッサはオーバーヘッドまたは負担(burde
n)をこうむる。オーバーヘッドはホスト・マイクロプロセッサに出入りする割り
込みによって生ぜしめられる。
わち、I/Oの処理量が高ければ、ホスト・マイクロプロセッサが対応する多数
の割り込みを受信し、割り込みに関連する相当量のオーバーヘッドとなる。マル
チ−ユーザないしマルチータスク・コンピュータ・システムにおいて、このオー
バーヘッドはホスト・マイクロプロセッサ時間と他のアプリケーションを処理す
るのに利用可能なリソース(例えば、パワー)の大きさを縮小する。これがシス
テムの性能のスローダウンを引き起こす。既存のホスト・マイクロプロセッサが
より高速になるように設計されるにつれて、ホスト・サービス・割り込みのため
のシステム性能中のスローダウンがより顕著になる。
トを処理中の周辺I/Oデバイスの速度も改善された。この速くなった速度が、
ホスト・マイクロプロセッサに対するI/O完了割り込みの頻度を増す。
ョンには、より大きい処理パワーを必要とする。従って、I/Oリクエストと応
答を達成するために使用される処理パワーのためにより大きい需要がある。
用し、またホスト・マイクロプロセッサに対する割り込みの回数を相当減少する
ホスト・アダプタに関する。特に、このアダプタは1秒当りのI/O完了報告(
IOPS)と割り込みとの比を相当増加させる。
ことによって、ホスト・アダプタが首尾よく完了されるI/Oリクエストのため
の割り込みのサービスを受けるオーバーヘッドを減少する。これが処理時間(「
I/Oバウンド」時間)と、アダプタからの割り込みの処理でホスト・マイクロ
プロセッサによって消費されるパワーを低減し、ユーザ・アプリケーションを処
理するホスト・マイクロプロセッサに対する時間とパワーをより多く生成する。
本発明の一実施例において、割り込みをサービスするホスト・マイクロプロセッ
サ(CPU利用)によって消費される時間および/またはリソース(例えば、パ
ワー)量は20%減少する。
量に適合することである。ホスト・マイクロプロセッサが忙しくなればなるほど
、ますます多くのI/O完了報告が単一割り込みを伴うアダプタによって戻され
る。より詳しく説明すると、I/Oリクエスト処理量が多くなればなるほど、1
秒当りのI/O完了報告と割り込みとの率(IOPS)がますます高くなる。例
えば、一実施例において、処理量が比較的低ければ、例えば5〜10のI/Oリ
クエストが一度に発生されると、3〜5のI/O完了報告が単一割り込みでホス
ト・マイクロプロセッサに対して報告される。処理量が比較的高ければ、例えば
30〜60のリクエストが一度に発生されると、30までの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リクエストのタイプ、およびキユーされたI/Oまたはキューされて
いないI/Oリクエストのいずれでにも関係なくシステム性能が改善される。
/Oリクエストを処理する方法に関し、ホスト・コンピュータのホスト・マイク
ロプロセッサがI/OリクエストをI/Oコントローラに発送し、ホスト・コン
ピュータと複数の周辺I/Oデバイス間のデータの伝送を開始する。発送I/O
リクエストを処理する方法が、(a)発送I/Oリクエストを周辺I/Oデバイ
スとホスト・コンピュータのメモリ間でデータを伝送することによって処理する
工程と;(b)工程(a)と同時に、少なくとも多数の未報告完了I/Oリクエ
ストと多数の未決I/Oリクエストに基づいて、ホスト・マイクロプロセッサに
割り込みするかどうかを決定する工程と;(c)工程(b)でホスト・マイクロ
プロセッサが割り込みされたことが決定されたときに、ホスト・マイクロプロセ
ッサに割り込みし、またホスト・マイクロプロセッサに未報告完了I/Oリクエ
ストを報告する工程と;(d)I/Oコントローラの現在の動作に基づく工程(
c)においてホスト・マイクロプロセッサに報告された未報告完了I/Oリクエ
ストの数を変更する工程とを含んでいる。
Oリクエストの数を比較することからなる。一つの構成において、この方法は未
報告完了I/Oリクエストの数が未決I/Oリクエストの数よりも大きいかまた
は同数であるときにホスト・マイクロプロセッサに割り込みする工程からなる。
定する工程(b)がさらに各周辺I/Oデバイスに対応する未決I/Oリクエス
トの数にさらに基づいている。一つの構成において、この方法は周辺I/Oデバ
イスの一つに対する未決I/Oリクエストの数がゼロに達した場合、ホスト・マ
イクロプロセッサに割り込みする工程からなる。別の構成において、この方法は
周辺I/Oデバイスの一つに対する未決I/Oリクエストの数が予め定められた
プログラム可能な数に達した場合、ホスト・マイクロプロセッサに割り込みする
工程からなる。一つの構成において、各周辺I/Oデバイスが割り込みをホスト
・マイクロプロセッサにトリガするそれぞれプログラム可能な数の未決I/Oリ
クエストを有している。
、周辺I/Oデバイスのための未決I/Oリクエストの数がゼロに到達すれば、
ホスト・マイクロプロセッサを割り込みする前に、所定時間待機する工程を含ん
でいる。選択された所定時間周期が、ホスト・マイクロプロセッサが割り込みさ
れる前に、一つまたはそれ以上の他の周辺I/Oデバイスがそれぞれの未決I/
Oリクエストを完了するという可能性を実質的に増加させる。別の構成において
、所定時間周期が約5マイクロ秒と約8ミリ秒の間である。別の構成においては
、所定時間周期が約25マイクロ秒と約1,000マイクロ秒の間である。別の
構成においては、それぞれの所定時間周期が各周辺I/Oデバイスのために選択
される。一つの構成において、所定時間周期がプログラム可能である。
関し、そのホスト・コンピュータのホスト・マイクロプロセッサが入力/出力(
I/O)リクエストをI/Oコントローラに発送し、ホスト・コンピュータと複
数の周辺I/Oデバイス間でデータを伝送し、またI/Oコントローラがホスト
・マイクロプロセッサを割り込みし完了I/Oリクエストを報告する。I/Oコ
ントローラが:ホスト・マイクロプロセッサから残留I/Oリクエストの総数を
カウントするように構成された第1カウンタと;I/Oデバイスによって完了さ
れた未報告I/Oリクエストの総数をカウントするように形成された第2カウン
タとからなる。I/Oコントローラが第1カウンタ内の数と第2カウンタ内の数
を比較する。第2カウンタ内の数が第1カウンタ内の数よりも大きいか、または
これに等しいときに、前記I/Oコントローラがホスト・マイクロプロセッサを
割り込みし、I/Oデバイスによって完了された全ての未報告I/Oリクエスト
を報告する。
スの一つにつき残留I/Oリクエストの数をカウントするように構成された複数
のI/Oデバイス・カウンタと、所定時間周期を伴うタイマーからなる。このタ
イマーは、複数のI/Oデバイスの一つが最後のI/Oリクエストを完了させた
とき、すなわち、I/Oデバイス・カウンタが1から0への過渡期にあるときに
、タイミングを開始するように形成されいる。タイマーが所定時間周期に達した
ときに、I/Oコントローラがホスト・マイクロプロセッサを割り込みし、I/
Oデバイスによって完了された全ての未報告I/Oリクエストを報告する。一つ
の構成において、全てのカウンタがI/Oコントローラに関連するランダム・ア
クセス・メモリ内に記憶され、更新される変数である。
スト・マイクロプロセッサに報告されるタイミングを制御するI/Oコントロー
ラ内の方法に関する。ホスト・コンピュータのホスト・マイクロプロセッサが入
力/出力(I/O)リクエストをI/Oコントローラに発送し、ホスト・コンピ
ュータと複数の周辺I/Oデバイス間でデータを伝送する。またI/Oコントロ
ーラがホスト・マイクロプロセッサを割り込みし、完了I/Oリクエストを報告
する。この方法は、少なくとも(i)未報告完了I/Oリクエストの数と、(i
i)複数の未決I/Oリクエストの周辺I/Oデバイスの数をモニターする工程
と;このモニター工程に基づいて、完了I/Oリクエストに報告するために、ホ
スト・マイクロプロセッサを割り込みするかどうかを決定する工程と;ホスト・
マイクロプロセッサを割り込みする工程と;割り込み毎にホスト・マイクロプロ
セッサへ完了I/Oリクエストの可変数を報告する工程とからなる。
ロプロセッサを割り込みするかどうかを決定する工程が、未報告完了I/Oリク
エストの数と複数の未決I/Oリクエストの周辺I/Oデバイスの数と比較する
工程を含んでいる。一つの構成において、この方法は、未報告完了I/Oリクエ
ストの数が、未決I/Oリクエストの周辺I/Oデバイスの数より大きいか、ま
たはこれに等しいときに、ホスト・マイクロプロセッサを割り込みする工程を含
んでいる。
ホスト・マイクロプロセッサへの割り込みの数を相当減じるホスト・アダプタに
関する。
適応特性のために、コンピュータ・システム10の別の実施例が、図1に示すも
のとは異なるシステム構成をとることもある。加わうるに、別の実施例は高い、
または低いI/Oリクエスト処理量、シーケンスまたはランダムI/Oアクセス
、異なる数量のI/Oデバイス、およびキューされたまたはキューされていない
I/Oを備えることもできる。
ス35、ホスト・アダプタ・ボード40、第2バス70、および多数の周辺I/
Oデバイス80〜86からなる。当業者は、ホスト・システム15、ホスト・ア
ダプタ・ボード40、第1バス35、および第2バス70に対する種々の名前お
よび構成を理解することができるであろう。例えば、ホスト・システム15は中
央処理ユニット(CPU)、メイン・マイクロプロセッサ、メイン・プロセッサ
、主処理ユニットまたは単にホストと呼ぶこともある。
ッサ20とメモリ25からなる。メモリ25はソフトウエア・ドライバー30、
割り込み・ハンドラ32、リクエスト・キュー26、レスポンス・キュー27、
リクエスト・キュー・インポインタ変数350、リクエスト・キュー・アウトポ
インタ変数352、レスポンス・キュー・インポインタ変数354、およびレス
ポンス・キュー・アウトポインタ変数356からなる。ソフトウエア・ドライバ
ー30と割り込み・ハンドラ32は、メモリ25からホスト・マイクロプロセッ
サ20によって実行される。一つの構成において、ソフトウエア・ドライバー3
0は主要アプリケーション、ファイル・システム・マネージャ、周辺I/Oデバ
イス80〜86のための少なくとも一つのデバイス・ドライバーとホスト・アダ
プタ・ドライバー(図示省略)からなる。
くとも一部が、ホスト・マイクロプロセッサ20とホスト・アダプタ・ボード4
0間で共通メモリとなる。リクエスト・キュー26とレスポンス・キュー27が
、I/OリクエストとI/Oレスポンスに関連する命令と状態情報を記憶する。
トワーク・バスと呼ばれることもある。一つの構成において、第1バス35は周
辺要素相互接続(PCI)バスである。一つの構成において、第2バス70は小
型コンピュータ標準インターフェース(SCSI)バスである。第2バス70は
いずれのタイプのSCSIバスでもよい。例えば、一つの構成において、SCS
Iバスは15ターゲットまでをサポートする単一ポート・バスである。各ターゲ
ットは1から32の論理ユニット(LUNs)をサポートできる。従って、単一
ポートSCSIバスは15から480(15×32=480)の周辺I/Oデバ
イス80〜86をサポートできる。別の構成において、SCSIバスはデュアル
−ポート・バスで、31までのターゲットをサポートする。別の構成において、
第2バス70は高速、超ワイドSCSIバスである。別の構成において、第2バ
ス70はファイバー・チャネルである。一つの構成において、ファイバー・チャ
ネルはSCSI命令フォーマットまたはSCSIパケット・フォーマットを使用
するか、またはこれに追従するように形成されている。
信を提供する。第2バス70はホスト・アダプタ・ボード40とI/Oデバイス
80〜86間の通信を提供する。
Oコントローラ、I/Oコントローラ回路、I/Oコントローラ・システム、I
/Oプロセッサ、I/Oサブ−プロセッサ、通信アダプタまたは単にホスト・ア
ダプタと呼ばれることもある。ホスト・アダプタ・ボード40は差動アダプタ・
ボード、SCSI単端アダプタ・ボードまたはファイバー・チャネル・アダプタ
・ボードの構成をとってもよい。一実施例において、ホスト・アダプタ・ボード
40はホスト・アダプタ45、リード−オンリ・メモリ(ROM)60およびラ
ンダム−アクセス・メモリ(RAM)65からなる。一つの構成において、RO
Mはブータブル・コード61を記憶するフラッシュ・プログラマブルROM(P
ROM)である。
ターフェース・レジスタ52およびSCSI実行プロトコル(SXP)エンジン
55からなる。一つの構成において、マイクロプロセッサ50は縮小命令セット
・コンピュータ(RISC)である。
アップ時間にブータブル(フラッシュ)コード61によってダウンロードされた
(すなわち、初期化され、かつ、負荷されるかまたは形成された)RISCコー
ドまたはファームウエア62を記憶する。ファームウエア62はホスト・アダプ
タ45によって実行され、ホスト・マイクロプロセッサ20からのI/Oリクエ
ストと命令を処理する。SXPエンジン55がI/Oリクエストに関する低レベ
ル命令を処理するとともに、マイクロプロセッサ50に対して、他の到来I/O
リクエストを処理することのような他の操作の実行を許可する。
ビデオ・ディスク・ドライブ(VDD)、デジタル・ビデオ・ディスク(DVD
)、安い/独立のディスクの冗長アレイ(RAID)、CD−ROM、スキャナ
、プリンタ等である。図示の目的で、7個の周辺I/Oデバイス80〜86を図
1に示している。しかし、コンピュータ・システム10は、7個未満または7個
を超えるI/Oデバイス80〜86で構成してもよい。I/Oデバイスのいずれ
の数および/または組み合わせも本発明において使用してもよい。
明する。ホスト・マイクロプロセッサ20および/またはソフトウエア・ドライ
バー30が、リクエスト・キュー26内で周辺I/Oデバイス80〜86として
用いられる予定であるI/Oリクエストを記憶する。アダプタ45および/また
はファームウエア62がPCIバス35を介してリクエスト・キュー26からI
/Oリクエストを検索する。一つの構成において、ホスト・アダプタ45がダイ
レクト・アクセス・メモリ(DMA)を介してホスト・メモリ25からI/Oリ
クエストを読み取る。アダプタ45は、ホスト・マイクロプロセッサ20からの
介在なしに多数のI/O操作とデータ転送の管理をすることができる。
を周辺I/Oデバイス80〜86に伝送し、リクエストされたデータを検索ない
し記憶する。ホスト・アダプタ45はリクエストされたデータをダイレクト・メ
モリ・アクセス(DMA)を介してホスト・メモリ25に送り、またこれから受
け、あるいはこれを検索する。以下に説明する適応方法によれば、I/Oリクエ
ストの数または率が完了したとき、またはI/Oデバイス80〜86が処理する
さらなる命令がなくなった後、ある時間周期が終了したときに、アダプタ45が
割り込みをホスト・マイクロプロセッサ20に対して発生する。
レスポンス・キュー27の構造は図2A〜2Bに示したリクエスト・キュー26
の構造と実質的に同じであるが、レスポンス・キュー27がI/O状態ブロック
(IOSB)を含むように形成され、一方リクエスト・キュー26がI/O命令
ブロック(IOCB)を含むように形成されている点で異なる。一つの構成にお
いて、リクエスト・キュー26とレスポンス・キュー27は、64バイトの先入
れ先出し(FIFO)エントリーの円形固定長さリストとして編成されている。
一つの構成において、各キュー26、27内に128のエントリーがある。本発
明の他の実施例において、命令および状況情報が、円形キューの代わりにデータ
構造(例えば、スタック)の他のタイプで記憶される。
有している。メモリ25が、一連のインポインタとアウトポインタ変数350〜
356(図1)を記憶し、ホスト・アダプタ・ボード40のファームウエア62
が、RAM65内に記憶された一連のそれ自体のインポインタとアウトポインタ
変数360〜366(図4)を使用する。メモリ25(図1)に記憶された各イ
ンポインタとアウトポインタ変数350〜356は、キュー26、27の一つの
128エントリーの一つのアドレスに関連するアドレスに変換することができる
。
ル(いっぱい)であるか、空きであるか、または部分的につまっているかを決定
する。キュー26、27のインポインタがそのキュー26、27のアウトポイン
タよりも一つ少ないとき(円形キューのラップアラウンド状態を考慮して)、キ
ュー26、27はフルである。図2Aはフルリクエスト・キュー26の1つの形
態を図示している。 フル・キュー26、27はキュー26、27の総合長さ未
満の1エントリーを含んでいる。インポインタ87とアウトポインタ88が等し
いとき、キュー26、27は空きである。図2Bは空きリクエスト・キュー26
の一つの構成を示す。特定キュー26、27内の空き(利用可能)キュー・エン
トリーの数が、アウトポインターからインポインターを減算することによって(
回り込み(wrap-around) 状態を考慮して)計算される。
ウエア62)に対するインターフェースであり、これを介してホスト・マイクロ
プロセッサ20が、種々の命令とデータからなるI/O命令ブロック(IOCB
)の伝送のためのI/Oリクエストを通過させる。リクエスト・キュー26のエ
ントリーが、リクエスト・キュー・インポインタ88を制御するホスト・マイク
ロプロセッサ20によってのみキューされる。リクエスト・キュー26のエント
リーは、リクエスト・キュー・アウトポインタ88を制御するホスト・アダプタ
45(および/またはファームウエア62)によってのみデキュー(de-queued)
される。
フェースであり、これを介してホスト・アダプタ45(および/またはファーム
ウエア62)が、SCSI状況とI/Oリクエストに関する他の状況情報からな
るI/O状況ブロック(IOSB)の伝送のためにI/Oレスポンスを通過させ
る。レスポンス・キュー27のエントリーは、レスポンス・キュー・インポイン
タ(図示省略)を制御するアダプタ45(および/またはファームウエア62)
によってのみキューされる。レスポンス・キュー27のエントリーは、レスポン
ス・キュー・アウトポインタ(図示省略)を制御するホスト・マイクロプロセッ
サ20によってのみデキューされる。
OCBは、そのホスト・アダプタ・プロセッサ50がホスト・メモリ25から検
索し、実行する命令とデータを含んでいる。種々のタイプのIOCBがあってよ
い。一つの構成において、リクエスト・キュー26は少なくとも二つのIOCB
エントリ・タイプを有している。すなわち、COMMAND とEXTENDE
D COMMANDである。図3AはCOMMAND エントリー・タイプ10
0の一つの構成を示し、また図3BはEXTENDED COMMANDエント
リー・タイプ120の一つの構成を示す。リクエスト・キュー26も、CONT
INUATION, MARKERおよびSCAN OPERATION(図示
省略)のような他のエントリー・タイプを有している。
定I/Oデバイス80〜86への伝送をリクエストする。図3Aにおいて、CO
MMNAD エントリー・タイプ100は少なくとも7個のデータ構造、すなわ
ち、エントリー・タイプ102;ハンドル104;ターゲット106;制御フラ
グ108;SCSI命令ディスクリプタ・ブロック(CDB)118;一つまた
はそれ以上のデータ・セグメント・アドレス110、114;および一つまたは
それ以上のデータ・セグメント長さ112、116からなる。
タイプ100対EXTENDED COMMANDのようなある他のエントリー
・タイプとしてエントリーを識別する。一つの構成において、COMMAND
エントリーのためのエントリー・タイプ番号は「01H」である。ハンドル10
4は、完了処理業務の部分としてソフトウェア・ドライバ30 (図1)によって
使用される識別子であり、特定ハンドル104と結びついたIOCBが完了した
とマイクロプロセッサ20にしらせる。1つの構成として、ハンドル104は1
6ビット長である。別の構成において、ハンドル104は32ビット長である。
ターゲット106は、I/O命令を受信する特定ターゲットないしI/Oデバイ
ス80〜86を識別する。一つの構成において、ターゲット106はブリッジ・
コントローラ(図示省略)またはI/Oデバイス80〜86のSCSI IDで
ある。
るかをファームウエア62に指示する。SCSI CDB118は、COMMA
ND 位相(phase) 中にターゲットまたはI/Oデバイス80〜86に送られる
CDBバイトを含んでいる。データ・セグメント・アドレス(一つまたは複数)
110、114は、特定読取りまたは書込みI/Oリクエストに関連するメモリ
25内に記憶されたデータ・セグメントの開始アドレスである。データ・セグメ
ント長112、116が特定読取りまたは書込みI/Oリクエストに関連するメ
モリ25内に記憶されたデータ・セグメント・アドレスへ、またはこれから伝送
されたデータ・バイトの数を特定する。
を特定I/Oデバイス80〜86に発する。一つの構成において、EXTEND
ED COMMANDエントリー・タイプ120は、COMMAND エントリ
ー・タイプ100と同様に、エントリー・タイプ122、ハンドル124、ター
ゲット126、制御フラグ128、およびSCSI CDB130を含んでいる
。一つの構成において、EXTENDED COMMANDエントリのためのエ
ントリー・タイプ番号は「05H」である。
OSBは、ホスト・マイクロプロセッサ20に対して、I/Oリクエストが完了
され、またI/Oリクエストが成功したか否かを伝える状況情報を含んでいる。
異なるタイプのIOSBもある。一つの構成において、レスポンス・キュー27
は少なくとも三つのIOSBエントリー・タイプ、すなわち、STATUS、
16ビットのハンドルを伴うSUCCESSFUL STATUS および32
ビットのハンドルを伴うSUCCESSFUL STATUS を有している。
図3CはSTATUSエントリー・タイプ140の一つの構成を示す。図6Aは
16ビットのハンドルを伴うSUCCESSFUL STATUS エントリー
・タイプ370の一つの構成を示す。図6Bは32ビットのハンドルを伴うSU
CCESSFUL STATUS エントリー・タイプ380の一つの構成を示
す。レスポンス・キュー27は、EXTENDED STATUS (図示省略
)のような他のエントリー・タイプを有することもある。
リー100またはEXTENDED COMMANDエントリー120の完了を
報告し、またI/Oリクエストが成功したか否かも報告する。SUCCESSF
UL STATUS エントリー・タイプ370、380は、成功した多数IO
CBのハンドルを報告する。各COMMAND エントリー100は、レスポン
ス・キュー27内で対応するSTATUSエントリー140または SUCCE
SSFUL STATUSエントリー370、380になり、命令完了がホスト
・マイクロプロセッサ20に通知される。COMMAND エントリー100ま
たはEXTENDED COMMANDエントリー120のハンドル104は、
レスポンス・キュー27内の対応するSTATUSエントリー140または S
UCCESSFUL STATUS370、380内でそのままで戻される。
エントリー・タイプ100のように、エントリー・タイプ142とハンドル1
44を含んでいる。一つの構成において、STATUSエントリー140のエン
トリー・タイプ番号は「03H」である。STATUSエントリー・タイプ14
0は、さらに二つの他のデータ構造、すなわち、完了状況フィールド146とリ
クエスト・データ・フィールド152を含んでいる。完了状況フィールド146
は、発生した転送エラー、および、もし発生した場合のエラーの種類(descripti
on) を報告する。リクエスト・データ・フィールド152は特定I/Oデバイス
80〜86からホスト・マイクロプロセッサ20によってリクエストされた任意
のデータを含んでいる。
370は、エントリー・タイプ372、ハンドル・カウント374、および首尾
よく完了した特定IOCBに対応する多数の16ビットのハンドルを含んでいる
。一つの構成において、16ビットのハンドルを伴うSUCCESSFUL S
TATUS エントリー・タイプ370のためのエントリ・タイプ番号は「22
H」である。図6Bにおいて、SUCCESSFUL STATUS エントリ
ー・タイプ380は、エントリー・タイプ382、ハンドル・カウント384、
および首尾よく完了した特定IOCBに対応する多数の32ビットのハンドルを
含んでいる。一つの構成において、32ビットのハンドルを伴うSUCCESS
FUL STATUS エントリー380のためのエントリ・タイプ番号は「2
1H」である。一つの構成において、SUCCESSFUL STATUS エ
ントリー・タイプ370、380内のハンドルの順番は、各IOCBが首尾よく
完了されたときの順番と同じである。
システム10の一実施例により使用される。コンピュータ・システム10の他の
実施例は、ここで説明した(COMMAND 100, EXTENDED C
OMMAND 120, STATUS 140, SUCCESSFUL S
TATUS 370,380)タイプ以外の異なるエントリー・タイプまたは異
なるデータ・構造を備えた同じエントリー・タイプを使用することもできる。
スタ180〜187、190〜197の二つのセット160、165の一つの構
成を示す。アダプタ45はさらに図4に示したようなタイマー245からなる。
一つの構成において、インターフェース・レジスタ52はさらにホスト命令/制
御レジスタ170およびPCI制御レジスタ175からなる。
SCコードまたはファームウエア62によって使用される一連の変数を示す。こ
れらの変数にはTOTAL_REMAIN 220, TOTAL_COMPL
ETE 225, DEV_1_COUNT 230, DEV_2_COUN
T 231, DEV_3_COUNT 232 等が含まれている。三つのD
EV_n_COUNT 変数230、231、232のみを図示の目的で図4に
示すが、好ましい構成においては、各周辺I/Oデバイス80〜86のために少
なくとも一つのDEV_n_COUNT 変数がある。別の実施例において、変
数TOTAL_REMAIN, TOTAL_COMPLETE, DEV_1
_COUNT,DEV_2_COUNT, DEV_3_COUNT等は、アダ
プタ45内のインターフェース・レジスタ52にあるレジスタである。
は、ホスト・マイクロプロセッサ20とアダプタ・プロセッサ50にアクセスで
きる物理的ハードウエア・レジスタである。一つの構成において、各メールボッ
クス・レジスタ180〜187、190〜197は16ビット長である。メール
ボックス・レジスタ180〜187の第1セット160は、到来メールボックス
・レジスタからなり、ホスト・マイクロプロセッサ20によって書込可能であり
、またアダプタ・ファームウエア62(図1)によって読取可能である。到来メ
ールボックス・レジスタ180〜187は、ホスト・マイクロプロセッサ20か
らアダプタ・プロセッサ50および/またはファームウエア62への情報を転送
するのに使用される。
ックス・レジスタであり、アダプタ・ファームウエア62によって書込可能であ
り、またホスト・マイクロプロセッサ20によって読取可能である。送出メール
ボックス・レジスタ190〜197は、アダプタ・プロセッサ50および/また
はファームウエア62からホスト・マイクロプロセッサ20への状況情報を転送
するのに使用される。
タ4はリクエスト・キュー26に関連するポインタを含み、またレジスタ5がレ
スポンス・キュー27に関連するポインタを含んでいる。到来メールボックス・
レジスタ・セット160のレジスタ4は、レジスタ・キュー26(図1〜2B)
のためのインポインタ87を含み、ホスト・マイクロプロセッサ20によって書
込可能であり、またアダプタ・プロセッサ50(またはファームウエア62)に
よって読取可能である。送出メールボックス・レジスタ・セット165のレジス
タ4は、リクエスト・キュー26のためのアウトポインタ88を含み、アダプタ
・プロセッサ50(またはファームウエア62)によって書込可能であり、また
ホスト・マイクロプロセッサ20によって読取可能である。
キュー27(図1)のアウトポインタを含み、ホスト・マイクロプロセッサ20
によって書込可能であり、またアダプタ・プロセッサ50(またはファームウエ
ア62)によって読取可能である。送出メールボックス・レジスタ・セット16
5のレジスタ5は、レスポンス・キュー27のインポインタを含み、アダプタ・
プロセッサ50(またはファームウエア62)によって書込可能であり、またホ
スト・マイクロプロセッサ20によって読取可能である。
3、6〜7は、ホスト・マイクロプロセッサ20からアダプタ・プロセッサ50
(またはファームウエア62)への命令情報を含んでいる。送出メールボックス
・レジスタ・セット165のレジスタ1〜3、6〜7は、アダプタ・ファームウ
エア62からホスト・マイクロプロセッサ20へのI/O状況情報を含むように
形成されている。
〜3、6〜7は、レスポンス・キュー27(図1)中のSTATUS エントリ
ー140(図3C)の一つまたはそれ以上のハンドル、またはホスト・メモリ2
5のリクエスト・キュー26(図2A、図2B)中の首尾よく完了されたCOM
MAND エントリー100(図3A)またはEXTENDED COMMAN
Dエントリー120(図3B)のハンドルを含んでいてよい。一構成において、
送出メールボックス・レジスタ・セット165のレジスタ1〜3、6〜7中のハ
ンドルの順は、各IOCBが首尾よく完了されたときによって決定される。
ジスタ0は、ユニーク・コードを含み、アダプタ・ファームウエア62によって
、ホスト・マイクロプロセッサに送られた割り込みに関する事象をホスト・マイ
クロプロセッサ20に通知する。一つの構成において、送出メールボックス・レ
ジスタ・セット165のメールボックス・レジスタ0が、どのタイプの情報が5
個の利用可能な送出メールボックス・レジスタ1〜3、6〜7にあることを指示
するためにリザーブされる。好ましい構成において、送出メールボックス・レジ
スタ・セット165のメールボックス0が、レスポンス・キュー27内のIOS
B(または、リクエスト・キュー26内の首尾よく完了されたIOSB)に対す
るハンドル、および、例えば16ビットもしくは32ビットのIOSB(または
IOCB)ハンドルの大きさを現在含んでいる送出メールボックス・レジスタ1
〜3、6〜7の数のホスト・マイクロプロセッサ20に通知する。
3x」を含み、「803x」は、利用可能な送出メールボックス・レジスタ1〜
3、6〜7内の16ビットIOSBまたは首尾よく完了されたIOCBハンドル
の「x」番号があることを意味している。「802x」は利用可能な送出メール
ボックス・レジスタ1〜2、6〜7内の32ビットIOSBまたは首尾よく完了
されたIOCBハンドルの「x」番号があることを意味している。従って、送出
メールボックス・レジスタ・セット165のメールボックス0は5個の利用可能
な送出メールボックス・レジスタ1〜3および6〜7内の5個までの16ビット
のハンドルまたは二つまでの32ビットのハンドルを説明する情報を含んでいる
。
ックス・レジスタ180〜187、190〜197を図1〜4を参照して説明す
る。ホスト・マイクロプロセッサ20が、一つまたはそれ以上のIOSB(図3
A、図3BのCOMMANDまたはEXTENDED COMMANDエントリ
・タイプ100、120)を次にリクエスト・キュー26の利用可能なエントリ
ーに負荷し(図2A、図2B)、リクエスト・キュー・インポインタ変数350
(図1)によって指示された第1利用可能エントリーで始動する。ホスト・マイ
クロプロセッサ20が、リクエスト・キュー・インポインタ変数350を、リク
エスト・キュー26にロード(負荷)された新しいエントリーの数だけ増加する
。増加されたリクエスト・キュー・インポインタ変数350が、リクエスト・キ
ュー26内で次の利用可能エントリーのアドレスになる。
ポインタ変数350の新しい値を、到来メールボックス・レジスタ・セット16
0(図4)のメールボックス・レジスタ4 184に書き込む。ホスト・アダプ
タ・ボード40(図1)のファームウエア62が、到来メールボックス・セット
160のメールボックス・レジスタ4をポールし、メールボックス・レジスタ4
内の値とRAM65に記憶されたリクエスト・キュー・インポインタ変数360
とを比較する。到来メールボックス・セット160のメールボックス・レジスタ
4内の値がRAM65に記憶された内部リクエスト・キュー・インポインタ変数
360と異なるときは、ホスト・マイクロプロセッサ20が一つまたはそれ以上
の新しいエントリーをリクエスト・キュー26に付加することをファームウエア
62が認識する。ファームウエア62がRAM65内に記憶されたリクエスト・
キュー・インポインタ変数360を、到来メールボックス・レジスタ・セット1
60のメールボックス・レジスタ4に記憶された新しい値に等しくなるように変
更する。
たはそれ以上のIOCBを処理する用意があるとき、ホスト・アダプタ・ファー
ムウエア62が、RAM65(図4)内に記憶されたリクエスト・キュー・アウ
トポインタ変数362によって設計されたエントリーで開始するリクエスト・キ
ュー26からIOCBを検索(および/または一時的にセーブ)する。次に、フ
ァームウエア62が、リクエスト・キュー・アウトポインタ変数362を、検索
されたIOCBの数だけ増加する。ファームウエア62が増加リクエスト・キュ
ー・アウトポインタ変数362を、送出メールボックス・レジスタ・セット16
5のメールボックス・レジスタ4 194に書き込む。次に、ホスト・マイクロ
プロセッサ20が、送出メールボックス・レジスタ・セット165のメールボッ
クス・レジスタ4を読み取り、リクエスト・キュー26のアウトポインタ88の
位置を決定する。
、周辺I/Oデバイス80〜86への、またこれからのリクエスト情報を書込ま
たは検索によってリクエスト・キュー26からIOCBを処理する。好ましい実
施例において、読取I/Oリクエスト中、ホスト・アダプタ45が検索データを
仕向けられたI/Oデバイス80〜86から、COMMAND エントリー(図
3A、3B)のデータ・セグメント・アドレス110、114によって設計され
たメモリ25(図1)内の位置に直接転送を始める。
レジスタ・セット165またはレスポンス・キュー27内で)、また検索データ
が処理されるべく用意されたとき(メモリ25内で)、ホスト・アダプタ45が
ホスト・マイクロプロセッサ20に報告する。アダプタ45に対して完了I/O
リクエストを報告する三つの方法がある。すなわち、(1)首尾よく完了したI
OCBのハンドルを送出メールボックス・レジスタ1〜3、6〜7 191〜1
93、196〜197(図4)に配置すること;(2)STATUSエントリー
・タイプ140(図3C)を発生し、これをレスポンス・キュー27に転送、お
よび/または、STATUSエントリー140のハンドルを送出メールボックス
・レジスタ1〜3、6〜7 191〜193、196〜197内に配置すること
;(3)SUCCESSFUL STATUS エントリー・タイプ370、3
80を発生し、これらをレスポンス・キュー27(図1)に転送することによる
。
セッサ20に、ホスト・マイクロプロセッサ20に対して単一の割り込みで、ま
たはハンドラ32(図1)に対して割り込みで報告することが可能である。単一
割り込みでホスト・マイクロプロセッサ20に対して多数の完了I/Oリクエス
トを報告する方法は、「高速ポスティング」と呼ばれる。高速ポスティングない
しポスティングは、STATUSまたはSUCCESSFUL STATUS
エントリー・タイプ140、370、380を発生および転送せずに、首尾よく
完了したIOCBの一つまたはそれ以上のハンドルを送出メールボックス・レジ
スタ1〜3、6〜7、191〜193、196〜197(図4)に配置すること
でもある。
タ・ファームウエア62にとって、首尾よく完了したIOCBのハンドルを送出
メールボックス・レジスタ1〜3、6〜7、191〜193、196〜197(
図4)に配置することである。完了I/Oリクエストがどの読取操作にも含まれ
ておれば、ホスト・マイクロプロセッサ20は、I/Oデバイス80〜86から
検索されたデータを処理し、メモリ25内に記憶することができる。ホスト・マ
イクロプロセッサ20は、送出メールボックス・レジスタ・セット165のメー
ルボックス0を読取り、首尾よく完了したIOCBのハンドルと、例えば16ビ
ットまたは32ビットのIOCBハンドルのサイズを含む送出メールボックス・
レジスタ1〜3、6〜7の番号を決定することである。
タ・ファームウエア62にとって、RAM65内でSTATUSエントリー・タ
イプ140(図3C)を発生し、STATUSエントリー・タイプ140を、ダ
イレクト・メモリ・アクセス(DMA)を介してレスポンス・キュー27に転送
することである。特に、ファームウエア62はSTATUSエントリー・タイプ
140を、レスポンス・キュー27(図1)内の一つのまたはそれ以上の利用可
能なエントリーに転送し、RAM65に記憶されたレスポンス・キュー・インポ
インタ変数364によって指定されたエントリーで開始することである。STA
TUSエントリー・タイプ140はファームウエア62をして不成功完了I/O
リクエストだけでなく、成功完了I/Oリクエストの報告も許可する。
ファームウエア62が、レスポンス・キュー27に転送されたSTATUSエン
トリー・タイプ140の数だけレスポンス・キュー・インポインタ変数364を
増加させる。次に、ファームエウア62が増加されたレスポンス・キュー・イン
ポインタ変数364の値を、ホスト・マイクロプロセッサ20で読み取るために
、送出メールボックス・レジスタ・セット165のメールボックス・レジスタ5
195に書き込む。一つの構成において、ファームウエア62がSTATUS
エントリー・タイプ140のハンドル144を、ホスト・マイクロプロセッサ2
0で読み取るために、利用可能な送出メールボックス・レジスタ1〜3、6〜7
、191〜193、196〜197(図4)も配置する。
タ・ファームウエア62にとって、RAM65内でSUCCESSFUL ST
ATUS エントリー・タイプ370、380を発生し、これら370、380
を、DMAを介してレスポンス・キュー27(図1)に転送することである。上
述したように、各SUCCESSFUL STATUS エントリー・タイプ3
70、380(図6Aおよび6B)は、いくつかの首尾よく完了したI/Oリク
エストに対するハンドルを含んでいる。次に、ファームウエア62が、レスポン
ス・キュー27に転送されたSUCCESSFUL STATUS エントリー
・タイプ370、380の数だけレスポンス・キュー・インポインタ変数364
を増加させる。次に、ファームウエア62が、増加されたレスポンス・キュー・
インポインタ変数364の値を、ホスト・マイクロプロセッサ20で読み取るた
めに、送出メールボックス・レジスタ・セット165のメールボックス・レジス
タ5 195に書き込むことである。
ATUSまたはSUCCESSFULエントリー・タイプ140、370、38
0を発生する代わりに、送出メールボックス・レジスタ・セット165を介して
の報告、およびこれらエントリー・タイプ140、370、380をレスポンス
・キュー27への転送がより速くなる。一方で、送出メールボックス・レジスタ
1〜3、6〜7を介して報告された首尾よくI/Oリクエストの数が、利用可能
なレジスタ1〜3、6〜7の数を制限することになり、図4に示した構成では5
である。
OCBの報告はホスト・マイクロプロセッサ20に通知されず、そのI/Oリク
エストは成功しない。しかし、好ましい実施例において、I/Oリクエストを想
定するホスト・マイクロプロセッサ20および/またはソフトウエア・ドライバ
30は、ホスト・アダプタ45が所定時間周期内で首尾よいI/O完了に復帰し
なければ、成功しない。次に、ソフトウエア・ドライバ30がエラー回復プロシ
ージャを開始するか、またはI/Oリクエストを再送する。
か、または送出メールボックス・レジスタ1〜3、6〜7、191〜193、1
96〜197のいずれかを使用して、数(5を超えるか、またはこれに等しい)
と、完了I/Oリクエストの状況(成功/不成功)に依存して、完了I/Oリク
エストに報告する。
したホスト・マイクロプロセッサ20または割り込み・ハンドラ32に通知する
二つの方法がある。好ましい実施例において、ホスト・アダプタ45がハードウ
エア・割り込みを発生させるとともに、完了I/Oリクエストを報告することに
よってホスト・マイクロプロセッサ20に注意を喚起させる。別の方法として、
ホスト・マイクロプロセッサ20が、第1バス35に関連した状況レジスタ(図
示省略)内でビットをポールする。ホスト・マイクロプロセッサ20に対して割
り込みを発生する方法を次に説明する。
、ホスト・マイクロプロセッサ20が送出メールボックス・レジスタ・セット1
65のレジスタ0を読取り、アダプタ・ファームウエア62によって使用される
上述の三つの方法の一つを決定する。メールボックス・レジスタ0 190に記
憶が可能なユニーク・コードまたはシーケンスが、三つの上述方法の各一つを指
定するのに使用される。
・セット165(図4)のレジスタ0が、どれだけの成功(首尾よい)完了IO
CBハンドルが送出メールボックス・レジスタ・セット165のメールボックス
・レジスタ1〜3、6〜7にあるか、ホスト・マイクロプロセッサ20に通知す
る。それから、ホスト・マイクロプロセッサ20は、送出メールボックス・レジ
スタ・セット165のメールボックス・レジスタ1〜3、6〜7を読み取り、I
OCBが首尾よく完了されることを決定する。
ロセッサ20が送出メールボックス・レジスタ・セット165(図4)のメール
ボックス・レジスタ5を読取り、レスポンス・キュー・インポインタを決定する
。ホスト・マイクロプロセッサ20が、送出メールボックス・レジスタ5で見つ
けた値を、メモリ25(図1)に記憶されたレスポンス・キュー・インポインタ
変数356に書き込む。次に、ホスト・マイクロプロセッサ20が、メモリ25
内に記憶されたレスポンス・キュー・アウトポインタ変数356で開始し、送出
メールボックス・レジスタ・セット165のメールボックス・レジスタ5内のレ
スポンス・キュー・インポインタ値まで、レスポンス・キュー27(図1)内の
IOSBエントリーを読み取る。ホスト・マイクロプロセッサ20が、レスポン
ス・キュー27内のIOSBを処理し、処理されたIOSBの数だけレスポンス
・キュー・アウトポインタ変数356を増加させ、増加したレスポンス・キュー
・アウトポインタ変数356の値を、到来メールボックス・レジスタ・セット1
60(図4)のメールボックス・レジスタ5 185に書き込む。
MPLETE 225, DEV_1_COUNT 230, DEV_2_C
OUNT 231およびDEV_3_COUNT 232 等が決定され、ファ
ームウエア62によって更新される。DEV_1_COUNT 230, DE
V_2_COUNT 231およびDEV_3_COUNT 232 が、I/
Oデバイス1 80(図1)、I/Oデバイス2 81およびI/Oデバイス3
82のための変数をそれぞれカウントする。各I/Oデバイス80〜86のた
めの少なくとも一つの変数(図示省略)がある。例えば、15 I/Oデバイス
があれば、少なくとも15のカウント変数がある。
未だ処理されていない総I/Oリクエストの数をカウントする。TOTAL_C
OMPLETE変数225が、I/Oデバイス80〜86によって完了されてい
るが、ホスト・マイクロプロセッサ20に未だ報告されていない総I/Oリクエ
ストの数をカウントする。
イス80によって完了されていない残りのI/Oリクエストの数をカウントする
。DEV_2_COUNT およびDEV_3_COUNT変数 231、23
2が、受信されたが、それぞれ第2および第3I/Oデバイス81、82によっ
て完了されていない残りのI/Oリクエストの数をカウントする。同様に、DE
V_n_COUNT 変数が、受信されているが、それぞれ4番から7番のI/
Oデバイス83〜86によって完了されていない残りのI/Oリクエストの数を
カウントする。
了報告を組み合わせて、ホスト・マイクロプロセッサ20への割り込みの回数を
減じる方法の一実施例を示す。一構成において、図5の方法はRISCコードの
一部またはファームウエア62である。
/続行工程300において、ホスト・システム15(図1)のソフトウエア・ド
ライバ30が、アダプタ・プロセッサ50を初期化し、RISCコードまたはフ
ァームウエア62を負荷する。初期化後、アダプタ45がホスト・マイクロプロ
セッサ20からの到来I/Oリクエストを処理するように用意される。
プロセッサ20によってリクエスト・キュー26内に配備された全ての新しいI
/Oリクエストまたは命令(IOCB)のために一つだけTOTAL_REMA
IN変数220を増加(インクリメント)する。TOTAL_REMAINが、
残されているI/O命令の数のカウントを、I/Oデバイス80〜86にって処
理し続ける。ファームウエア62もまた、アダプタ45とI/Oデバイス80〜
86によって処理されたI/Oリクエストの数だけTOTAL_REMAIN変
数220を減少(デクリメント)する。
によって完了されているが、未だホスト・マイクロプロセッサ20に報告されて
いない全I/Oリクエストのために一つだけTOTAL_COMPLETE変数
225を増加させる。決定工程315において、ファームウエア62が、未報告
I/O完了(TOTAL_COMPLETE 225)の数が残りのI/Oリク
エスト(TOTAL_REMAIN 220)より大きいかまたはこれに等しい
かどうかを決定する。これは「ファースト・トリガ」と呼ばれる。なぜなら、T
OTAL_COMPLETE 225がTOTAL_REMAIN 220より
も大きいか、またはこれに等しければ、ファームウエア62が割り込みをホスト
・マイクロプロセッサ20に発生するとともに、処理工程340内の全ての完了
未報告I/Oリクエストを報告するからである。次に、ファームウエア62が処
理工程300に戻り、TOTAL_REMAIN 220およびTOTAL_C
OMPLETE 225がそれに応じて増加および減少を続行する。
よりも少なければ、ファームウエア62が、タイマー245(図4)が決定工程
320で始動するかどうかを決定する。タイマー245が始動すれば、ファーム
ウエア62が、タイマー245が決定工程325内で終了したかどうかを決定す
る。これは「第2トリガ」と呼ばれる。なぜなら、タイマー245が終了すると
、ファームウエア62が割り込みをホスト・マイクロプロセッサ20に発生し、
処理工程340で全I/Oデバイス80〜86のために全ての完了された、しか
し未報告のI/Oリクエストを報告するからである。ファームウエア62は、ま
たTOTAL_COMPLETE変数225を0にクリアする。次に、ファーム
ウエア62が処理工程300に戻り、これに応じてTOTAL_REMAIN
220とTOTAL_COMPLETE 225の増加と減少を続行する。タイ
マー245が終了していなければ、次に、ファームウエア62が処理工程300
に戻り、これに応じてTOTAL_REMAINとTOTAL_COMPLET
Eの増加と減少を続行する。
ムウェア62が、残された(未完了の)I/Oデバイス、または任意の個々のI
/Oデバイス80〜86で処理されるべく残された命令の数が1から0に減少す
るかどうかを決める。特にファームウエア62が、変数DEV_1COUNT
230, DEV_2_COUNT 231 等のいずれかが1から0の過渡期
にあるかどうかを決定する。DEV_n_COUNT がI/Oデバイス80〜
86の一つのためにゼロに等しいとき、そのI/Oデバイス80〜86は、処理
するさらなる命令がない。変数DEV_1_COUNT 230, DEV_2
_COUNT 231等の一つが1から0への過渡期にあれば、ファームウエア
62が処理工程335でタイマー245をスタートさせる。次に、ファームウエ
ア62が処理工程300に戻り、これに応じて、TOTAL_REMAIN 2
20およびTOTAL_COMPLETE 225の増加と減少を続行する。
のどれも1から0への過渡期になければ、次にファームウエア62が処理工程3
00に戻り、これに応じて、TOTAL_REMAIN 220およびTOTA
L_COMPLETE 225の増加と減少を続行する。
止状態にあり、また延長周期の間、処理(例えば、DEV_1_COUNT=0
)されるI/O命令がなければ、スタートされない。タイマー245は、I/O
デバイス80〜86で処理されるべく残されたI/O命令の数が1から0への過
渡期(例えば、DEV_1_COUNT が1から0に変化するとき)にあれば
、始動する。
分が完了されたとき(TOTAL_COMPLETE 225がTOTAL_R
EMAIN 220より大きいかまたはこれに等しいとき)、アダプタ45とフ
ァームウエア62が、全て完了されているが、未報告I/Oリクエストを報告し
、ホスト・マイクロプロセッサ20に割り込みする。これが、アダプタ45とI
/Oデバイス80〜86がなおも処理すべきI/Oリクエストの相当数(全I/
Oリクエストの半分)を有していることが確信され、一方ホスト・マイクロプロ
セッサ20が報告I/O(全I/Oリクエストの半分)を処理する。
PLETE 225)の数と、残りのI/Oリクエスト(TOTAL_REMA
IN 220)の数の異なる比率を使用して、ホスト・マイクロプロセッサ20
に対する割り込みをトリガするとともに、全完了されているが未報告のI/Oリ
クエストを報告する。例えば、一実施例において、アダプタ45はTOTAL_
REMAIN 220に対するTOTAL_COMPLETE 225の3/2
の比率を使用する。TOTAL_COMPLETE 225がTOTAL_RE
MAIN 220よりも少なくとも3から2だけ数が多いとき、アダプタ45が
ホスト・マイクロプロセッサ20を割り込みし、全て完了されているが未報告の
I/Oリクエストをホスト・システム15に報告する。他の比率、2対1、3対
1、4対1、4対3、1対2、1対3、1対4、2対3、3対4も本発明により
実行することができる。
の特定比率が、ホスト・マイクロプロセッサ20のI/Oリクエスト処理量(高
い処理量または低い処理量のいずれか)、アクセスのタイプ(シーケンス・アク
セスまたはランダム・アクセスのいずれか)、システム10の構成または要素の
タイプ、I/Oデバイス80〜86の数、およびI/Oリクエストのタイプのよ
うな種々の要素に依存して製造者またはエンドユーザによって調節することがで
きる。
トが、タイマー245を始動せしめる特定I/Oデバイス80〜86によってな
おも受信され、処理される。例えば、I/Oデバイス1 80のために処理され
るように残された残りのI/Oリクエストの数が1から0への過渡期になれば(
DEV_1_COUNT 230 が1から0にデクリメント)、ファームウエ
ア62がこの1から0への過渡期を認識し、図5の処理工程335に示したよう
に、タイマー245を始動(I/Oデバイス1 80が1から0の過渡期を作る
第1I/Oデバイス80〜86であれば)する。I/Oデバイス1 80が新し
いI/Oリクエストを受信すれば、この新しいI/Oリクエストを処理すること
になる。一度、I/Oデバイス1 80が新しいI/Oリクエストを完了すると
、別の1から0への過渡期がDEV_1_COUNT 230 によって形成さ
れるが、タイマー245は再び始動しない。
処理を終了し、例えば、DEV_2_COUNT 231 が1から0の過渡期
を形成すれば、タイマー245は再び始動しない。全てのそのI/Oリクエスト
を終了する第1I/Oデバイス80〜86が、一般的に、ホスト・システム15
に報告されるべきその完了I/OリクエストのためにI/Oデバイス80〜86
を最も長く待機することになる。一度、タイマー245が始動すると、時間経過
するか、または第1トリガ(TOTAL_COMPLETE 225がTOTA
L_REMAIN 220より大きいか、またはこれと同じである)が、アダプ
タ45をしてホスト・マイクロプロセッサ20を割り込みせしめるとともに、全
ての完了されているが、未報告I/Oリクエストを報告するまでリセット(クリ
ア)されない。
に残されたI/Oリクエストの数が1から0への過渡期を形成しておらず、また
第1トリガ(TOTAL_COMPLETE 225 がTOTAL_REMA
IN 220より大きいか等しければ)が、アダプタ45をしてホスト・マイク
ロプロセッサ20を割り込みせしめるとともにI/O完了を報告することを続行
すれば、タイマー245が延長された時間周期で始動されないことが可能である
。換言すれば、ファームウエア62は、延長時間周期で図5の処理工程335を
実行しない。処理量が高く(I/Oリクエストの大きい数)、また各I/Oデバ
イス80〜86がホスト・マイクロプロセッサ20によって頻繁に利用されると
き、その状況は一般的に発生する。
特にI/Oデバイス80〜86の構成および要素によって変わる。タイマー24
5の持続時間は、I/Oデバイス80〜86の一つのレスポンス時間、全てのI
/Oデバイス80〜86の中から最も長いレスポンス、しばしば使用されるI/
Oデバイス80〜86のレスポンス時間、またはI/Oデバイス80〜86の全
てのレスポンス時間の平均よって設定することができる。他の要素はタイマー2
45の持続時間の設定を考慮することができる。
秒の間の値に設定される。別の実施例において、タイマー245の持続時間は約
25マイクロ秒と約1000マイクロ秒の間の値に設定される。別の実施例にお
いて、タイマー245の持続時間は、約600マイクロ秒と約1000マイクロ
秒の間の値に設定される。
値に設定される。これはI/Oデバイス80〜86のための一般的なレスポンス
時間が約50マイクロ秒だからである。タイマー245の持続時間が短かすぎれ
ば、一つのI/Oデバイス80〜86がゼロI/Oリクエストに到達した直後に
、別のI/Oデバイス80〜86がゼロI/Oリクエストに到達した直後に別の
割り込みに追従して、アダプタ・ファームウエア62がタイマー245をリセッ
トし、割り込みをホスト・マイクロプロセッサ20に発生する。タイマー245
の持続時間が短くなればなるほど、I/O完了が一つの割り込み当りのホスト・
マイクロプロセッサ20への報告がますます少なくなる。短い時間周期でホスト
・マイクロプロセッサ20に反復して割り込みすることはホスト・アダプタ45
にとって能率が悪い。
した後、所定時間周期でI/O完了の報告を遅延することによって、一つまたは
それ以上の付加的なI/Oデバイス80〜86も所定時間周期中にI/Oリクエ
ストのそのセットを完了することになる。二つまたはそれ以上のセットのI/O
完了を単一の割り込みと一緒に報告することは、二つまたはそれ以上のセットの
完了を二つのまたはそれ以上の別々の割り込みと別々に報告するよりも有利であ
る。ホスト・マイクロプロセッサ20は、二つまたはそれ以上の割り込みの代わ
りにホスト・アダプタ45から一つの割り込みをサービスしなければならないだ
けである。
を全て完了する。ファームウエア62がタイマー245を開始させる。次に、I
/Oデバイス4 83がそのI/Oリクエストを50マイクロ秒後に完了し、ま
た次にI/Oデバイス2 81がそのI/Oリクエストを50マイクロ秒後に完
了する。タイマー245が75マイクロ秒の持続時間を有しておれば、アダプタ
45は一つの割り込みをホスト・マイクロプロセッサ20に発生し、I/Oデバ
イス1 80とI/Oデバイス4 83の全てのI/O完了を報告する。アダプ
タ45が第2割り込みを発生し、I/Oデバイス2 81のI/O完了を報告す
る。タイマー245の持続時間が、例えば125マイクロ秒と長ければ、アダプ
タ45は単一の割り込みをホスト・マイクロプロセッサ20に発生し、I/Oデ
バイス1 80、I/Oデバイス4 83およびI/Oデバイス2 81のI/
O完了を報告する。
ストが送られる前に、ホスト・マイクロプロセッサ20がI/Oデバイス80〜
86からのI/O完了を待機し、一つまたはそれ以上のI/Oデバイス80〜8
6が遊び、一方でホスト・マイクロプロセッサ20からのより多くのI/Oリク
エストを待機する。従って、好ましい実施例において、タイマー245の持続時
間は、短い時間周期での多数の割り込みを回避するのに十分長く、また延長され
た遊び時間を回避するのに十分短い。
がタイマー245によってトリガされることに依存して変化する。頻繁に使用さ
れるI/Oデバイス80〜86は、比較的短いタイマー持続時間を有している。
あまり頻繁に使用されないI/Oデバイスは比較的長いタイマー持続時間を有し
ている。別の実施例において、タイマー245の持続時間は、一つまたはそれ以
上のI/Oデバイス80〜86に対してゼロである。この実施例において、ゼロ
に等しいタイマー持続時間を有しているI/Oデバイス80〜86は、全てのそ
のI/Oリクエストを終了し、ファームウエア62が直ちに割り込みをホスト・
マイクロプロセッサ20に発生し、全て完了した、しかし未報告I/Oリクエス
トを報告する。
のI/Oデバイス80〜86のためのI/Oリクエストの数も所定数、例えば3
以下に落ちているとき、タイマー245が始動する。
できる。一実施例において、エンドユーザはタイマー245の持続時間をセット
することができる。別の実施例において、システム・デザイナー(ホスト・コン
ピュータ製造者またはアダプタ製造者)またはプログラマーがタイマー245の
持続時間を設定することができる。
のI/Oリクエスト処理量に適応する。I/Oリクエスト処理量が高くなればな
るほど、割り込み当り毎秒のI/O完了報告(IOPS)の比率または数がます
ます多くなる。例えば、処理量が比較的低ければ、例えばほんの5対10のI/
Oリクエストが一度に発生されれば、ほんの3対6の完了I/Oリクエストが、
一つの割り込みでホスト・マイクロプロセッサ20に報告される。処理量が比較
的高ければ、例えば30対60のI/Oリクエストが一度に発生されれば、15
対30の完了I/Oリクエストが、一つの割り込みでホスト・マイクロプロセッ
サ20に報告される。従って、ホスト・マイクロプロセッサ20が忙しくなれば
なるほど、各割り込み当りのアダプタ45によって戻されるI/O完了報告がま
すます多くなる。これは重要な利点である。なぜなら、ホスト・マイクロプロセ
ッサ20が忙しくなればなるほど、ホスト・マイクロプロセッサ20が、割り込
みおよび割り込みに関連するオーバーヘッドをサービスする時間とリソースに余
裕がなくなるからである。
ス80〜86がなおも稼働中に、そのI/Oリクエスト全てが完了された特定I
/Oデバイス80〜86の遊び時間(待ち時間)を短縮する。
OUNT=0) の全てを終了し、一方で他のI/Oデバイス81〜86がなお
も完了させるべきいくつかのI/Oリクエストを有している。TOTAL_RE
MAIN 220が実質的にTOTAL_COMPLETE 225よりも大き
ければ、アダプタ45は、相当の時間の間、完了されているが未報告のI/Oリ
クエストを報告しない。一つまたはそれ以上の前回I/Oリクエストが完了され
、報告されるまで、新しいリクエストを一つまたはそれ以上のI/Oデバイス8
0〜86、例えば、I/Oデバイス1 80に送らないホスト・マイクロプロセ
ッサ20によって稼働する、あるソフトウエア・アプリケーションまたはサブル
ーチンがある。これが遅延を惹起し、またシステムの性能を制限する。これはI
/Oデバイス1 80に対して比能率であり、延長された時間周期中で遊びが残
り、一方で他のI/Oデバイス81〜86が処理されるべきいくつかのI/Oリ
クエストを有するとともに、実際にそれらのI/Oリクエストを処理する。
してI/Oデバイスの遊び時間を減らそうとし、ホスト・マイクロプロセッサ2
0に対して割り込みを発生せしめるとともに、全て完了しているが、未報告のI
/Oリクエストをホスト・システム15に報告する。これが第1トリガ(TOT
AL_REMAINとTOTAL_COMPLETEとを比較した総I/O完了
閾値)をバイパスする。ホスト・マイクロプロセッサ20が完了I/Oリクエス
トを処理した後、ホスト・マイクロプロセッサ20が、処理されるべき遊びI/
Oデバイス1 80のための一つまたはそれ以上の新しいI/Oリクエストを送
ることができる。従って、タイマー245(第2トリガ)がI/O完了閾値カウ
ンタ、TOTAL_COMPLETE(第1トリガ)を、いずれ任意の時間でそ
のI/Oリクエストの全てを終了する第1I/Oデバイス80〜86の遊び時間
を短縮することによって補完する。
発生するための二つのトリガ(工程(ブロック)315と工程320〜335)
がある。別の方法として、本発明の他の実施例は二つのトリガの一つのみを使用
する。二つのトリガか、またはそのバリエーションのいずれかが、他と独立して
使用され、ホスト・マイクロプロセッサ20をいつ割り込みするべきかを決定す
る。例えば、一実施例において、アダプタ45が工程300〜315および34
0に示した方法を実行するだけである。本実施例において、決定工程315でT
OTAL_COMPLETE 225がTOTAL_REMAIN 220より
も大きくないか、またはこれに等しければ、ファームウエア62が、始動/続行
工程300に戻る。
た性能が、上述した二つのトリガを組み合わせて使用したときに達成される。付
加的なトリガが、上述した一つの、または両方のトリガと組み合わせて使用する
ことができる。例えば、別のトリガが変数REMAIN 220を使用せずに、
ホスト・マイクロプロセッサ20の処理量を決定することができる。二つまたは
それ以上のI/Oデバイス80〜86のためのI/Oリクエストの数が、ゼロで
はないある所定数以下に落ちると、別のトリガが割り込みをホスト・マイクロプ
ロセッサ20に発生する。
施例を示し、I/Oリクエスト完了報告と組み合わせてホスト・マイクロプロセ
ッサ20への割り込みの数を減じる。一つの構成において、図7の方法はRIS
Cコードまたはファームウエア62の一部である。
て、始動/続行工程400に示した操作、処理工程405および処理工程410
は、図5の始動/続行工程300に示した操作、処理工程305および処理工程
310を参照して示した操作と実質的に同じである。しかし、図7において、T
OTAL_REMAIN変数220は、処理工程405内で最初に(リクエスト
・キュー26内で受信された各新しいI/Oリクエストのために)増加される。
TOTAL_REMAIN変数220が増加された後、変数TOTAL_REM
AIN変数220が(アダプタ45によって完了された各I/Oリクエストのた
めに)減少され、また、変数TOTAL_COMPLETEが、処理工程410
に示したように(アダプタ45によって各々完了されているが、未報告のI/O
リクエストのために)増加される。
イス80〜86のための残りのI/Oリクエストの数が1から0に減じられた(
すなわち、いずれのDEV_n_COUNT 変数230〜232が1から0の
過渡期を形成している)かどうかを決定する。いずれの個々のI/Oデバイス8
0〜86のための残りのI/Oリクエストの数が1から0に減少したときに、処
理工程420に示したようにファームウェア62がプロセッサ50内の始動タイ
マー・フラグを設定する。これに応答して、プロセッサ50がタイマー245(
図4)を始動する。次に、ファームウエア62が、決定工程425に示したよう
に、TOTAL_COMPLETE変数225をTOTAL_REMAIN変数
220と比較する。決定工程415において、いずれの個々のI/Oデバイス8
0〜86のための残りのI/Oリクエストの数が1から0に減少しなければ、フ
ァームウエア62が、決定工程425に示したように、TOTAL_COMPL
ETE変数225をTOTAL_REMAIN変数220と比較する。
AL_REMAIN変数220より大きいか、またはこれと同じであれば、ファ
ームウエア62が割り込みをホスト・マイクロプロセッサ20に発生させるとと
もに、処理工程430に示したように、全て完了しているが、未報告のI/Oリ
クエストを報告する。処理工程430において、ファームウエア62がTOTA
L_COMPLETE変数225も0にクリアし、また始動タイマー・フラグを
クリアする。決定工程435において、ファームウエア62が、タイマー245
が始動したかどうかを決定する。決定工程425においてTOTAL_COMP
LETE変数225がTOTAL_REMAIN変数220より小さければ、フ
ァームウエア62が直接決定工程435に進行し、処理工程430をバイパスし
てタイマー245が始動したかどうかを決定する。
エア62が、処理工程400〜410に示したように、TOTAL_REMAI
N変数220の増加、減少を続行し、またTOTAL_COMPLETE変数2
25をこれに応じて増加する。タイマーが始動しておれば、ファームウエア62
が、タイマー245が決定工程440で時間が経過しているかどうかを決定する
。タイマー245が時間経過していなければ、ファームウエア62が処理工程4
00〜410に戻り、これに応じてTOTAL_REMAIN変数220の増加
と減少を、またTOTAL_COMPLETE変数225の増加を続行する。タ
イマー245が時間経過しておれば、ファームウエア62が、処理工程445に
示したように、割り込みをホスト・マイクロプロセッサ20に発生するとともに
、全て完了しているが、未報告のI/Oリクエストを報告する。処理工程445
において、ファームウエア62がTOTAL_COMPLETE変数225を0
にクリアし、また始動タイマー・フラグをクリアする。次に、ファームウエア6
2が処理工程400〜410に戻り、TOTAL_REMAIN変数220の増
大と減少を続行し、またこれに応じてTOTAL_COMPLETE変数225
を増加する。
施例を示し、I/Oリクエスト完了報告と組み合わせてホスト・マイクロプロセ
ッサ20の割り込みの数を減じる。図1〜7を参照して上述した実施例は、シー
ケンスI/Oアクセスを使用するホスト・コンピューティング・システム15に
理想的に適している。図8を参照して以下に説明する実施例は、ランダムI/O
アクセスを使用するホスト・コンピュータ・システム15に理想的に適している
。シーケンスI/OアクセスおよびランダムI/Oアクセスは、当業者によって
理解できる。
ること以外は図7に示した方法と実質的に同じである。特に、図8の決定工程4
85において、ファームウエア62(図1)は、未報告I/O完了(TOTAL
_REMAIN 220)の数が目下「稼働中」I/Oデバイス80〜86の数
に等しいかどうかを決定する。「稼働中」I/Oデバイス80〜86が、少なく
とも一つの未決(未完了)I/Oリクエストを有しているI/Oデバイス80〜
86である。I/Oデバイス80〜86がその最終I/Oリクエストを完了した
とき、I/Oデバイス80〜86が、本発明の実施例の目的のためにもはや稼働
中であると考えられず、また稼働I/Oデバイス80〜86の数が1だけ少なく
なる。他方で、アダプタ45が、前回不稼働I/Oデバイス80〜86のために
意図された新しい(未決)I/Oリクエストを受信し、稼働I/Oデバイス80
〜86の数が1だけ増える。従って、稼働I/Oデバイス80〜86の数は、一
つまたはそれ以上のI/Oデバイス80〜86がそれらの最終未決I/Oリクエ
ストを完了するか、または第1(未決)I/Oリクエストを受信するように増大
または減少する動的変数である。
有している、すなわち、DEV_1_COUNT 230, DEV_2_CO
UNT 231およびDEV_3_COUNT 232 が0に等しくなければ
、これで目下稼働中I/Oデバイス80〜82の数が3である。最初の三つのI
/Oデバイス80〜82が本実施例の目的で稼働あるが、いずれの番号ないし順
のI/Oデバイス80〜86も任意の時間で稼働される。図8の決定工程485
において、ホスト・プロセッサ20に対して割り込みをトリガする「閾」値(ま
た全て完了されたI/Oリクエストを報告)が目下3である。TOTAL_CO
MPLETE 225が1に等しければ、TOTAL_COMPLETE 22
5は、3である閾値(目下稼働中のI/Oデバイス80〜82の数)に未だ等し
くない。
のI/Oデバイス80〜86の数に依存して増加または減少する。稼働中のI/
Oのデバイス80〜82がその割り当てられたI/Oリクエストを完成すると、
TOTAL_COMPLETE 225が増加し、また閾値(目下稼働中のI/
Oデバイス80〜82の数)が減少する。前回不稼働のI/Oデバイス83〜8
6が稼働し、稼働I/Oデバイスの数および閾値が増加する。TOTAL_CO
MPLETE 225が、図8の方法が決定工程485に進行したとき、目下稼
働中のI/Oデバイスの数に等しければ、ファームウエア62が割り込みをホス
ト・マイクロプロセッサ20に発生して、処理工程490で全て完成しているが
未報告のI/Oリクエストを報告する。
上述した方法のタイマー操作と実質的に同じである。
に対してホスト・マイクロプロセッサ20の処理量に順応させることを許可する
。ホスト・マイクロプロセッサ20が、高いI/O処理量を有しており、またい
くつかのI/Oデバイス80〜86が稼働であれば、割り込みをトリガする閾値
も高くなる。高い閾値が毎秒の割り込み(IPS)の数を減らし、また割り込み
毎の報告I/O完成の数を増大する。ホストが低いI/O処理量を有しており、
またI/Oデバイス80〜86の低い数が稼働であれば、割り込みをトリガする
閾値も低くなる。
割り込みをトリガするこれらの閾値が、ホスト・マイクロプロセッサ20のI/
Oリクエスト処理量に順応する。ホスト・マイクロプロセッサ20が忙しくなれ
ばなるほど、I/O完成報告が、単一割り込みを伴うアダプタ45による帰還が
ますます多くなる。特に、I/Oリクエスト処理量が多くなればなるほど、1秒
当りのI/O完成報告(IOPS)対割り込みの比がますます大きくなる。
なければ、例えば5〜10のみのI/Oリクエストが一度に発生されれば、3〜
5のI/O完成報告が単一割り込みでホスト・マイクロプロセッサ20に報告さ
れる。処理量が比較的高ければ、例えば、50〜100のI/Oリクエストが一
度に発生されると、25〜50のI/O完成報告が単一割り込みでホスト・マイ
クロプロセッサ20に報告される。これが重要な利点を提供する。なぜなら、ホ
スト・マイクロプロセッサ20が忙しくなればなるほど、ホスト・マイクロプロ
セッサ20が、割り込みおよび割り込みに関連するオーバヘッドをサービスする
時間とリソースに余裕が少なくなるからである。
処理量または低い処理量いずれも)、アクセスのタイプ(シーケンス・アクセス
またはランダム・アクセスのいずれも)、システム構成のタイプ、I/Oデバイ
スの数、およびI/Oリクエストのタイプ、キューされたまたはキューされてい
ないI/Oリクエストのいずれにも関係なく実行できる。
正例も本発明の範囲を逸脱することなく可能なことは当業者にとって理解できる
。従って、これは添付の請求の範囲の範囲内で理解することができ、本発明は特
別に説明しなくても、実行することができる。
Oデバイスおよびホスト・アダプタ・ボードからなるコンピュータ・システムを
示す図
成を示す図、FIG.2Bは、図1のホスト・システム内の空きリクエスト・キ
ューの一構成を示す図
リー・タイプの一構成を示す図
ントリー・タイプの一構成を示す図
功状況エントリー・タイプの一構成を示す図
メールボックス・レジスタと変数の一構成を示す図
成報告を組み合わせ、ホスト・システムへの割り込みの数を減じる方法の一実施
例を示す図
・ハンドルを伴う成功状況エントリー・タイプの一構成を示す図
・ハンドルを伴う成功状況エントリー・タイプの一構成を示す図
成報告を組み合わせ、ホスト・システムへの割り込みの数を減じる方法の他の実
施例を示す図
成報告を組み合わせ、ホスト・システムへの割り込みの数を減じる方法の他の実
施例を示す図
Claims (19)
- 【請求項1】 ホスト・コンピュータのホスト・マイクロプロセッサが入力
/出力(I/O)リクエストをI/Oコントローラに発送し、ホスト・コンピュ
ータと複数の周辺I/Oデバイス間でデータの伝送を開始するコンピュータ・シ
ステムにおいて、発送I/Oリクエストを処理する方法であって、 (a)発送I/Oリクエストを周辺I/Oデバイスとホスト・コンピュータの
メモリ間でデータを伝送することによって処理する工程と、 (b)工程(a)と同時に、少なくとも未報告完了I/Oリクエストの数と未
決I/Oリクエストの数に基づいて、ホスト・マイクロプロセッサにインターラ
プトするかどうかを決定する工程と、 (c)工程(b)でホスト・マイクロプロセッサが割り込みされたことが決定
されたときに、ホスト・マイクロプロセッサに割り込みし、またホスト・マイク
ロプロセッサに未報告完了I/Oリクエストを報告する工程と、 (d)I/Oコントローラの現在の処理量に基づく工程(c)においてホスト
・マイクロプロセッサに報告された未報告完了I/Oリクエストの数を変更する
工程と、を含む発送I/Oリクエストを処理する方法。 - 【請求項2】 工程(b)が未報告完了I/Oリクエストの数と未決I/O
リクエストの数を比較することからなる請求項1に記載の方法。 - 【請求項3】 該方法は未報告完了I/Oリクエストの数が、未決I/Oリ
クエストの数よりも大きいかまたは同数であるときにホスト・マイクロプロセッ
サに割り込みする工程からなる請求項2に記載の方法。 - 【請求項4】 ホスト・マイクロプロセッサに割り込みするかどうかを決定
する工程(b)が、さらに各周辺I/Oデバイスに対応する未決I/Oリクエス
トの数にさらに基づいている請求項1に記載の方法。 - 【請求項5】 該方法は、周辺I/Oデバイスの一つに対する未決I/Oリ
クエストの数がゼロに達した場合、ホスト・マイクロプロセッサに割り込みする
工程からなる請求項4に記載の方法。 - 【請求項6】 該方法は、周辺I/Oデバイスの一つに対する未決I/Oリ
クエストの数が予め定められたプログラム可能な数に達した場合、ホスト・マイ
クロプロセッサに割り込みする工程からなる請求項4に記載の方法。 - 【請求項7】 各周辺I/Oデバイスが割り込みをホスト・マイクロプロセ
ッサにトリガするそれぞれプログラム可能な数の未決リクエストを有している請
求項6に記載の方法。 - 【請求項8】 ホスト・マイクロプロセッサに割り込みする工程は、周辺I
/Oデバイスのための未決I/Oリクエストの数がゼロに到達するならば、ホス
ト・マイクロプロセッサを割り込みする前に、所定時間待機する工程を含んでお
り、選択された所定時間周期が、ホスト・マイクロプロセッサが割り込みされる
前に、一つまたはそれ以上の他の周辺I/Oデバイスがそれぞれの未決I/Oリ
クエストを完了するという可能性を実質的に増加させる請求項5に記載の方法。 - 【請求項9】 所定時間周期が約5マイクロ秒と約8ミリ秒の間である請求
項8に記載の方法。 - 【請求項10】 所定時間周期が約25マイクロ秒と約1,000マイクロ
秒の間である請求項8に記載の方法。 - 【請求項11】 それぞれの所定時間周期が各周辺I/Oデバイスのために
選択される請求項8に記載の方法。 - 【請求項12】 所定時間周期がプログラム可能である請求項8に記載の方
法。 - 【請求項13】 ホスト・コンピュータのホスト・マイクロプロセッサが入
力/出力(I/O)リクエストをI/Oコントローラに発送し、ホスト・コンピ
ュータと複数の周辺I/Oデバイス間でデータの伝送を開始し、またI/Oコン
トローラが完了I/Oリクエストをレポートするために、ホスト・マイクロプロ
セッサを割り込みするコンピュータ・システムにおいて、 少なくとも(i)未報告完了I/Oリクエストの数と、(ii)未決I/Oリ
クエストの総数と、(iii)複数の各周辺I/Oデバイスに対応する未決I/
Oリクエストの数とをモニターする工程と、 前記モニター工程に基づいて、ホスト・マイクロプロセッサを割り込みして完
了I/Oリクエストを報告するかどうかを決定する工程と、 割り込み毎にホスト・マイクロプロセッサへ完了I/Oリクエストの可変数を
報告する工程と、からなるI/Oコントローラ内で完了I/Oリクエストがホス
ト・マイクロプロセッサに報告されるタイミングを制御するI/Oコントローラ
内の方法。 - 【請求項14】 ホスト・コンピュータのホスト・マイクロプロセッサが入
力/出力(I/O)リクエストをI/Oコントローラに発送し、ホスト・コンピ
ュータと複数の周辺I/Oデバイス間でデータの伝送を開始し、またI/Oコン
トローラがホスト・マイクロプロセッサを割り込みし完了I/Oリクエストを報
告するコンピュータ・システムにおいて、 ホスト・マイクロプロセッサから残留I/Oリクエストの総数をカウントする
ように構成された第1カウンタと、 I/Oデバイスによって完了された未報告I/Oリクエストの総数をカウント
し、前記I/Oコントローラが第1カウンタ内の数と第2カウンタ内の数を比較
し、第2カウンタ内の数が第1カウンタ内の数よりも大きいかまたはこれに等し
いときに、前記I/Oコントローラがホスト・マイクロプロセッサを割り込みし
、I/Oデバイスによって完了される全ての未報告I/Oリクエストを報告する
ように構成された第2カウンタと、からなるI/Oコントローラ。 - 【請求項15】 各カウンタがI/Oデバイスの一つにつき残留I/Oリク
エストの数をカウントするように構成された複数のI/Oデバイス・カウンタと
、 複数のI/Oデバイス・カウンタの一つが1から0への過渡期にあるとき、タ
イミングを開始するように形成された所定時間周期を伴うタイマーであって、タ
イマーの所定時間周期が経過したときに、前記I/Oコントローラがホスト・マ
イクロプロセッサを割り込みし、I/Oデバイスによって完了される全ての未報
告I/Oリクエストを報告するタイマーと、をさらに含む請求項14に記載のI
/Oコントローラ。 - 【請求項16】 全てのカウンタがI/Oコントローラに関連するランダム
・アクセス・メモリ内に記憶され、更新される変数である請求項14に記載のI
/Oコントローラ。 - 【請求項17】 ホスト・コンピュータのホスト・マイクロプロセッサが入
力/出力(I/O)リクエストをI/Oコントローラに発送し、ホスト・コンピ
ュータと複数の周辺I/Oデバイス間でデータの伝送を開始し、またI/Oコン
トローラがホスト・マイクロプロセッサを割り込みし完了I/Oリクエストをレ
ポートするコンピュータ・システムにおいて、 少なくとも(i)未報告完了I/Oリクエストの数と、(ii)複数の未決I
/Oリクエストの周辺I/Oデバイスの数とをモニターする工程と、 前記モニター工程に基づいて、完了I/Oリクエストに報告するために、ホス
ト・マイクロプロセッサを割り込みするかどうかを決定する工程と、 ホスト・マイクロプロセッサを割り込みする工程と、 割り込み毎にホスト・マイクロプロセッサへの完了I/Oリクエストの可変数
を報告する工程と、からなる完了I/Oリクエストがホスト・マイクロプロセッ
サに報告されるタイミングを制御するI/Oコントローラ内の方法。 - 【請求項18】 完了I/Oリクエストに報告するために、ホスト・マイク
ロプロセッサを割り込みするかどうかを決定する工程が、未報告完了I/Oリク
エストの数と複数の未決I/Oリクエストの周辺I/Oリクエストの数とを比較
する工程を含む請求項17に記載の方法。 - 【請求項19】 未報告完了I/Oリクエストの数が、複数の未決I/Oリ
クエストの周辺I/Oデバイスの数に等しいときに、ホスト・マイクロプロセッ
サを割り込みする工程を含む請求項18に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/282,341 | 1999-03-31 | ||
US09/282,341 US6434630B1 (en) | 1999-03-31 | 1999-03-31 | Host adapter for combining I/O completion reports and method of using the same |
PCT/US2000/008443 WO2000058843A1 (en) | 1999-03-31 | 2000-03-29 | A host adapter for combining i/o completion reports and method of using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002540526A true JP2002540526A (ja) | 2002-11-26 |
Family
ID=23081068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000608268A Pending JP2002540526A (ja) | 1999-03-31 | 2000-03-29 | I/o完了報告を組み合わせるホスト・アダプタおよびそれを使用する方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6434630B1 (ja) |
EP (1) | EP1163595B1 (ja) |
JP (1) | JP2002540526A (ja) |
KR (1) | KR100677538B1 (ja) |
AT (1) | ATE373844T1 (ja) |
AU (1) | AU4327800A (ja) |
CA (1) | CA2367890C (ja) |
DE (1) | DE60036465T2 (ja) |
WO (1) | WO2000058843A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009015783A (ja) * | 2007-07-09 | 2009-01-22 | Toshiba Corp | インタフェースコントローラ |
JP7453167B2 (ja) | 2020-03-11 | 2024-03-19 | 三星電子株式会社 | 構成可能なコマンド応答トリガーを有するストレージ装置及びそのトリガー方法 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564271B2 (en) * | 1999-06-09 | 2003-05-13 | Qlogic Corporation | Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter |
US6792477B1 (en) * | 2000-05-18 | 2004-09-14 | Microsoft Corporation | Discovering printers and shares |
US6779054B2 (en) * | 2001-10-05 | 2004-08-17 | Intel Corporation | Method and apparatus for operating a network controller |
US20030086485A1 (en) * | 2001-11-08 | 2003-05-08 | John Lin | Master to multi-slave asynchronous transmit fifo |
US6829660B2 (en) * | 2001-12-12 | 2004-12-07 | Emulex Design & Manufacturing Corporation | Supercharge message exchanger |
JP4212811B2 (ja) * | 2002-01-10 | 2009-01-21 | 富士通株式会社 | 情報処理システム、インタフェース装置、情報処理装置、情報記憶装置 |
US20030189945A1 (en) * | 2002-04-05 | 2003-10-09 | Connor Patrick L. | Selective completion indication of controller events |
US7397768B1 (en) | 2002-09-11 | 2008-07-08 | Qlogic, Corporation | Zone management in a multi-module fibre channel switch |
FI20021867A (fi) * | 2002-10-18 | 2004-04-19 | Nokia Corp | Menetelmä kortin toimintatilan muuttamiseksi, järjestelmä, kortti ja laite |
WO2004046926A1 (ja) * | 2002-11-21 | 2004-06-03 | Fujitsu Limited | イベント通知方法、デバイス及びプロセッサシステム |
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 |
US20050071688A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Hardware CPU utilization meter for a microprocessor |
US7219263B1 (en) | 2003-10-29 | 2007-05-15 | Qlogic, Corporation | Method and system for minimizing memory corruption |
US7930377B2 (en) | 2004-04-23 | 2011-04-19 | Qlogic, Corporation | Method and system for using boot servers in networks |
US7669190B2 (en) | 2004-05-18 | 2010-02-23 | Qlogic, Corporation | Method and system for efficiently recording processor events in host bus adapters |
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 |
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 |
US7853960B1 (en) * | 2005-02-25 | 2010-12-14 | Vmware, Inc. | Efficient virtualization of input/output completions for a virtual device |
US7281077B2 (en) * | 2005-04-06 | 2007-10-09 | Qlogic, Corporation | Elastic buffer module for PCI express devices |
US7231480B2 (en) * | 2005-04-06 | 2007-06-12 | Qlogic, Corporation | Method and system for receiver detection in PCI-Express devices |
JP2007012021A (ja) * | 2005-06-01 | 2007-01-18 | Sony Corp | 情報処理装置および情報処理方法、並びにプログラム |
US7461195B1 (en) | 2006-03-17 | 2008-12-02 | Qlogic, Corporation | Method and system for dynamically adjusting data transfer rates in PCI-express devices |
US7743195B2 (en) * | 2006-12-27 | 2010-06-22 | Intel Corporation | Interrupt mailbox in host 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 |
US8458730B2 (en) * | 2008-02-05 | 2013-06-04 | International Business Machines Corporation | Multi-level driver configuration |
CN102077181B (zh) * | 2008-04-28 | 2014-07-02 | 惠普开发有限公司 | 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统 |
US20100005199A1 (en) * | 2008-07-07 | 2010-01-07 | Texas Instruments Incorporated | Direct memory access (dma) data transfers with reduced overhead |
US20110153891A1 (en) * | 2008-08-20 | 2011-06-23 | Akihiro Ebina | Communication apparatus and communication control method |
US7853726B2 (en) * | 2008-10-06 | 2010-12-14 | International Business Machines Corporation | FCP command-data matching for write operations |
FR2952937B1 (fr) | 2009-11-20 | 2013-02-08 | Chaire Europeenne De Chimie Now Pour Un Developpement Durable | Nouvelles resines de type phenoplastes obtenues a partir de composes phenoliques et de durcisseurs macromoleculaire portant des fonctions aldehydes |
US8719843B2 (en) * | 2011-07-27 | 2014-05-06 | Intel Corporation | Virtualizable and forward-compatible hardware-software interface |
US8856479B2 (en) * | 2012-04-20 | 2014-10-07 | International Business Machines Corporation | Implementing storage adapter performance optimization with hardware operations completion coalescence |
US9727494B1 (en) * | 2012-10-11 | 2017-08-08 | Qlogic, Corporation | Method and system for communication between a computing device and a peripheral device |
US9298652B2 (en) * | 2013-03-15 | 2016-03-29 | Microsoft Technology Licensing, Llc | Moderated completion signaling |
KR102649324B1 (ko) * | 2016-05-19 | 2024-03-20 | 삼성전자주식회사 | 적응 인터럽트 제어를 수행하는 컴퓨터 시스템 및 그것의 인터럽트 제어 방법 |
US10776289B2 (en) | 2018-09-21 | 2020-09-15 | Microsoft Technology Licensing, Llc | I/O completion polling for low latency storage device |
US10740258B2 (en) * | 2018-10-23 | 2020-08-11 | Microsoft Technology Licensing, Llc | Timer-based I/O completion polling for low latency storage device |
US20230120600A1 (en) * | 2021-10-20 | 2023-04-20 | Western Digital Technologies, Inc. | Data Storage Devices, Systems, and Related Methods for Grouping Commands of Doorbell Transactions from Host Devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0315941A (ja) * | 1989-06-14 | 1991-01-24 | Hitachi Ltd | 半導体集積回路 |
JPH0844652A (ja) * | 1994-07-26 | 1996-02-16 | Hitachi Ltd | 計算機システムおよび入出力命令の発行方法 |
JPH10105502A (ja) * | 1996-09-26 | 1998-04-24 | Nec Corp | 周辺機器制御装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4268906A (en) | 1978-12-22 | 1981-05-19 | International Business Machines Corporation | Data processor input/output controller |
US5129064A (en) | 1988-02-01 | 1992-07-07 | International Business Machines Corporation | System and method for simulating the I/O of a processing system |
DE69328320T2 (de) | 1992-01-09 | 2000-11-30 | Cabletron Systems Inc | Vorrichtung und Verfahren zur Datenübertragung zu und von einem Wirtrechnersystem |
US5761427A (en) | 1994-12-28 | 1998-06-02 | Digital Equipment Corporation | Method and apparatus for updating host memory in an adapter to minimize host CPU overhead in servicing an interrupt |
US5689713A (en) | 1995-03-31 | 1997-11-18 | Sun Microsystems, Inc. | Method and apparatus for interrupt communication in a packet-switched computer system |
US5671365A (en) * | 1995-10-20 | 1997-09-23 | Symbios Logic Inc. | I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events |
US5892969A (en) | 1996-03-15 | 1999-04-06 | Adaptec, Inc. | Method for concurrently executing a configured string of concurrent I/O command blocks within a chain to perform a raid 5 I/O operation |
US5881296A (en) | 1996-10-02 | 1999-03-09 | Intel Corporation | Method for improved interrupt processing in a computer system |
US6055603A (en) * | 1997-09-18 | 2000-04-25 | Emc Corporation | Method and apparatus for performing pre-request operations in a cached disk array storage system |
US6085277A (en) * | 1997-10-15 | 2000-07-04 | International Business Machines Corporation | Interrupt and message batching apparatus and method |
US6138176A (en) * | 1997-11-14 | 2000-10-24 | 3Ware | Disk array controller with automated processor which routes I/O data according to addresses and commands received from disk drive controllers |
US6006340A (en) * | 1998-03-27 | 1999-12-21 | Phoenix Technologies Ltd. | Communication interface between two finite state machines operating at different clock domains |
-
1999
- 1999-03-31 US US09/282,341 patent/US6434630B1/en not_active Expired - Lifetime
-
2000
- 2000-03-29 JP JP2000608268A patent/JP2002540526A/ja active Pending
- 2000-03-29 CA CA002367890A patent/CA2367890C/en not_active Expired - Fee Related
- 2000-03-29 KR KR1020017012672A patent/KR100677538B1/ko not_active IP Right Cessation
- 2000-03-29 DE DE60036465T patent/DE60036465T2/de not_active Expired - Lifetime
- 2000-03-29 EP EP00923098A patent/EP1163595B1/en not_active Expired - Lifetime
- 2000-03-29 AU AU43278/00A patent/AU4327800A/en not_active Abandoned
- 2000-03-29 AT AT00923098T patent/ATE373844T1/de not_active IP Right Cessation
- 2000-03-29 WO PCT/US2000/008443 patent/WO2000058843A1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0315941A (ja) * | 1989-06-14 | 1991-01-24 | Hitachi Ltd | 半導体集積回路 |
JPH0844652A (ja) * | 1994-07-26 | 1996-02-16 | Hitachi Ltd | 計算機システムおよび入出力命令の発行方法 |
JPH10105502A (ja) * | 1996-09-26 | 1998-04-24 | Nec Corp | 周辺機器制御装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009015783A (ja) * | 2007-07-09 | 2009-01-22 | Toshiba Corp | インタフェースコントローラ |
JP7453167B2 (ja) | 2020-03-11 | 2024-03-19 | 三星電子株式会社 | 構成可能なコマンド応答トリガーを有するストレージ装置及びそのトリガー方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2367890C (en) | 2007-05-29 |
DE60036465T2 (de) | 2008-06-12 |
US6434630B1 (en) | 2002-08-13 |
WO2000058843A1 (en) | 2000-10-05 |
ATE373844T1 (de) | 2007-10-15 |
DE60036465D1 (de) | 2007-10-31 |
AU4327800A (en) | 2000-10-16 |
KR100677538B1 (ko) | 2007-02-01 |
EP1163595A1 (en) | 2001-12-19 |
CA2367890A1 (en) | 2000-10-05 |
EP1163595B1 (en) | 2007-09-19 |
KR20010104732A (ko) | 2001-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002540526A (ja) | I/o完了報告を組み合わせるホスト・アダプタおよびそれを使用する方法 | |
US6272499B1 (en) | Linked lists of transfer descriptors scheduled at intervals | |
JP5159900B2 (ja) | 予約デバイスのアクセス競合を低減するコンピュータ・プログラム、装置、及び方法 | |
EP1856610B1 (en) | Transmit completion event batching | |
EP1856623B1 (en) | Including descriptor queue empty events in completion events | |
US6421760B1 (en) | Disk array controller, and components thereof, for use with ATA disk drives | |
US7035948B1 (en) | System and method for USB controllers | |
US8521934B1 (en) | Multi-port context-based host controller | |
US20080091868A1 (en) | Method and System for Delayed Completion Coalescing | |
US20050235072A1 (en) | Data storage controller | |
US20020116565A1 (en) | USB host controller and interface with batched data transfer | |
US8302109B2 (en) | Synchronization optimized queuing system | |
US6477610B1 (en) | Reordering responses on a data bus based on size of response | |
US8606992B2 (en) | Dynamically switching command types to a mass storage drive | |
US20080155154A1 (en) | Method and System for Coalescing Task Completions | |
JP2001524707A (ja) | コントローラの機能性を高めるためのファームウェアの使用 | |
US6842797B1 (en) | USB adapter for burst mode communications | |
US7130932B1 (en) | Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device | |
EP2383659B1 (en) | Queue depth management for communication between host and peripheral device | |
US5911152A (en) | Computer system and method for storing data in a buffer which crosses page boundaries utilizing beginning and ending buffer pointers | |
US7415559B1 (en) | Data processing systems and method for processing work items in such systems | |
WO2023093805A1 (zh) | 存储控制方法、存储控制器、存储芯片、网卡、可读介质 | |
WO2007074343A2 (en) | Processing received data | |
JP2002500454A (ja) | バッファ付きuartにおけるデータ損失の回避 | |
JP4089506B2 (ja) | ファイル共有システム及びサーバー並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070117 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091210 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100507 |