(57)【要約】システム相互接続バス515における遅延されたデータ転送を追跡するためのシステム500および技術である。遅延応答は、応答に対応する情報の記憶と、リクエストされたデータ転送の進行の追跡を開始する。バスアダプタ300のようなマスター装置はスプリットトランザクション保管装置220、タイマ230、スプリットトランザクションモニタを含んでいる。マスター装置はコンポーネントを含んでおり、周辺コンポーネント相互接続拡張標準方式により規定されているように、スプリット応答を管理するように設計される。
2005513595.tif 000002
【特許請求の範囲】
【請求項１】
システム相互接続バスでデータを転送するリクエストを送信し、
システム相互接続バスでデータ転送リクエストに対する応答を受信し、その応答はデータ転送リクエストの承認と、後のその時間にデータ転送リクエストに対する応答を約束することを示し、
データ転送リクエストに対応する情報を保存し、
リクエストされたデータ転送の進行を追跡し、
データ転送の進行が予め規定された規準を満たすことに失敗したならば、転送エラーを識別するステップを含んでいる方法。
【請求項２】
前記進行の追跡において、
応答を受信したときにタイマを初期化し、
データの一部を受信したときに、タイマをリセットして、データ転送情報を更新する請求項１記載の方法。
【請求項３】
データ転送情報はアドレス、データカウント、データ転送識別子を含んでいる請求項２記載の方法。
【請求項４】
システム相互接続バスは周辺コンポーネント相互接続拡張バスを具備している請求項３記載の方法。
【請求項５】
さらに、識別された転送エラーに応答してタグ発生を変更する請求項４記載の方法。
【請求項６】
予め規定された規準はデータ転送情報の変更なしにタイマの２つのタイムアウトを含んでいる請求項５記載の方法。
【請求項７】
タグ発生の変更はタグオフセットの更新を含んでいる請求項６記載の方法。
【請求項８】
さらに、システムエラーを識別するために識別された転送エラーを監視する請求項７記載の方法。
【請求項９】
識別された転送エラーの監視は、メモリの一部が一連の転送エラーを発生するときを決定するために、識別された転送エラーの追跡を含んでいる請求項８記載の方法。
【請求項１０】
発生されたデータ転送識別子により識別された多数の同時データ転送をサポートする並列バスでデータを転送するためのリクエストを送信し、
並列バスでデータ転送リクエストに対する応答を受信し、その応答はデータ転送リクエストの承認と、後の時間にデータ転送リクエストに対して応答することの約束とを示し、
データ転送リクエストに対応するアドレスおよびデータカウント情報を保存し、
タイマを初期化し、
データの一部を受信したときに、タイマをリセットし、アドレスおよびデータカウント情報を更新し、
タイマがタイムアウトするとき転送エラーを識別し、
識別された転送エラーに応答してトランザクションに対するデータ転送識別子発生を変更し、
システムエラーを識別するために識別された転送エラーを監視するステップを含んでいるマシンで実行する方法。
【請求項１１】
転送エラーの識別は、タイマのタイムアウトの以前の発生以降に、アドレスおよびデータカウント情報の変化なしにタイマがタイムアウトするとき転送エラーを識別するステップを含んでいる請求項１０記載の方法。
【請求項１２】
データ転送識別子発生の変更はオフセットの更新を含んでいる請求項１１記載の方法。
【請求項１３】
識別された転送エラーの監視は、メモリの一部が一連の転送エラーを発生するときを決定するために、識別された転送エラーを追跡するステップを含んでいる請求項１２記載の方法。
【請求項１４】
並列バスは周辺コンポーネント相互接続拡張標準にしたがっているバスを具備している請求項１３記載の方法。
【請求項１５】
スプリットトランザクションで開始するバスシーケンスのタイムアウト注意を受信し、
シーケンスの完了の遅延により明らかにされる転送エラーを識別し、
識別された転送エラーに応答してシーケンス識別子の発生を変更することを含んでいる動作を装置に実行させる命令を示す情報を実施するマシンの読取り可能な媒体。
【請求項１６】
バスシーケンスは周辺コンポーネント相互接続拡張標準にしたがっている請求項１５記載のマシンの読取り可能な媒体。
【請求項１７】
シーケンスの完了の遅延はシーケンスのハードウェアタイマ追跡進行のタイムアウトを含んでいる請求項１６記載のマシンの読取り可能な媒体。
【請求項１８】
動作はさらに、システムエラーを識別するために、識別された転送エラーを監視することを含んでいる請求項１６記載のマシンの読取り可能な媒体。
【請求項１９】
識別された転送エラーの監視は、メモリの一部が一連の転送エラーを発生するときを決定するために、識別された転送エラーを追跡することを含んでいる請求項１８記載のマシンの読取り可能な媒体。
【請求項２０】
プロセッサと、
プロセッサに結合されたメモリと、
メモリに結合されたバスインターフェースと、
スプリットトランザクションに関する情報を記憶するためにスプリットトランザクション追跡保管装置と、
スプリットトランザクション追跡保管装置のチェックを定期的に初期化するためのタイマと、
スプリットトランザクション追跡保管装置をチェックし、追跡されたスプリットトランザクションに対応するシーケンスの完了の遅延を識別するためのスプリットトランザクションモニタとを具備しているバスアダプタ。
【請求項２１】
スプリットトランザクション追跡保管装置およびタイマはハードウェアを具備している請求項２０記載のバスアダプタ。
【請求項２２】
スプリットトランザクション追跡保管装置およびタイマは用途特定集積回路の論理的コンポーネントを具備し、プロセッサ、メモリ、バスインターフェースは用途特定集積回路により相互に結合されている請求項２１記載のバスアダプタ。
【請求項２３】
スプリットトランザクションモニタはファームウェアを含んでいる請求項２２記載のバスアダプタ。
【請求項２４】
スプリットトランザクションモニタは識別されたエラーに応答してシーケンス識別子の発生を変更する請求項２３記載のバスアダプタ。
【請求項２５】
スプリットトランザクションモニタは応答しないシステムメモリに関するシステムエラーを識別する請求項２４記載のバスアダプタ。
【請求項２６】
バスインターフェースは周辺コンポーネント相互接続拡張標準にしたがっている請求項２５記載のバスアダプタ。
【請求項２７】
システム相互接続バスでデータ転送リクエストに対する遅延されたデータ転送を示している応答を受信する手段と、
データ転送リクエストに対応するデータ転送の進行を追跡する手段と、
データ転送の進行が予め規定された規準を満たすことに失敗した場合に、転送エラーを識別する手段とを具備しているバスアダプタ。
【請求項２８】
予め規定された規準はデータ転送で２つの連続的な遅延を含んでいる請求項２７記載のバスアダプタ。
【請求項２９】
さらに、システムエラーを識別する手段を具備している請求項２７記載のバスアダプタ。
【請求項３０】
さらに、識別された転送エラーに応答してタグ発生を変更する手段を具備している請求項２７記載のバスアダプタ。
【請求項３１】
システム相互接続バスは周辺コンポーネント相互接続拡張バスを具備している請求項２７記載のバスアダプタ。
【請求項３２】
並列バスを含むプログラム可能なマシンと、
記憶区域ネットワークと、
並列バスと記憶区域ネットワークとに結合されたバスアダプタとを具備し、バスアダプタは、プロセッサと、それに結合されたメモリと、メモリおよび並列バスに結合されたバスインターフェースと、並列バスで発生したスプリットトランザクションに関する情報を記憶するためのスプリットトランザクション追跡保管装置と、スプリットトランザクション追跡保管装置のチェックを定期的に開始するためのタイマと、スプリットトランザクション追跡保管装置をチェックし、追跡されたスプリットトランザクションに対応するシーケンスの完了における遅延を識別するためのスプリットトランザクションモニタとを具備しているシステム。
【請求項３３】
バスアダプタはホストバスアダプタカードを具備している請求項３２記載のシステム。
【請求項３４】
スプリットトランザクション追跡保管装置およびタイマは用途特定集積回路の論理的コンポーネントを具備し、プロセッサ、メモリ、バスインターフェースは用途特定集積回路により相互に結合されている請求項３３記載のシステム。
【請求項３５】
スプリットトランザクションモニタは識別されたエラーに応答してシーケンス識別子の発生を変更する請求項３４記載のシステム。
【請求項３６】
スプリットトランザクションモニタは応答しないシステムメモリに関するシステムエラーを識別する請求項３４記載のシステム。
【請求項３７】
バスインターフェースは周辺コンポーネント相互接続拡張バス標準にしたがっている請求項３４記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステム相互バスにおけるデータの受信、例えば並列のシステム相互接続バスにおける多数の同時データ転送からのデータの受信に関する。
【背景技術】
【０００２】
本出願は、2001年12月10日出願の米国特許出願第60/339,238号明細書（発明の名称“PC1-X SPLIT TRANSACTION”）の利点を主張している。
【０００３】
システム相互接続バスはデータがコンピュータシステムの一部から別の部分へ送信されるために通過する１以上のリンクである。バスアーキテクチャはコンピュータシステムの一部から別の部分へデータを送信するために使用されるリンクおよびプロトコルの集合である。典型的にコンピュータシステムのバスアーキテクチャは多数のバス標準を使用し、これはコンピュータシステムの実施に使用される全ての部分を相互接続するための直列および／または並列のバス標準であってもよい。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
システム相互接続バスは多数の同時データ転送を使用してデータを送信することができ、ここではデータ転送はデータ転送識別子を使用して相互に関連する１以上のバストランザクションを表している。このようなシステム相互接続バスもまた並列バスであってもよい。例えばＰＣＩ―Ｘ（周辺コンポーネント相互接続拡張）はデータが多数の同時データ転送を使用して送信されるシステム相互接続バスとして使用するための並列バスアーキテクチャを規定するバス標準方式である。
【０００５】
本発明はシステム相互接続バスにおける遅延されたデータ転送の追跡に関する。
【課題を解決するための手段】
【０００６】
本発明の１特徴によれば、ＰＣＩ―Ｘでのスプリット応答のような遅延応答は応答に対応する情報の記憶と、リクエストされたデータ転送の進行の追跡を開始する。バスアダプタのようなマスター装置はスプリットトランザクション、保管装置、タイマ、スプリットトランザクションモニタを含んでいる。マスター装置はハードウェアとファームウェアコンポーネントの両者を含んでいる。
【０００７】
本発明は以下の利点の１以上を提供する。ここに記載されたシステムおよび技術により、マスター装置はそれが発信している未解決の読取りリクエストの進行を正確に追跡する。マスター装置はＰＣＩ―Ｘのスプリット応答のような遅延応答により明示されているように、そのリクエストに応答する行為を実現するためにターゲット装置に依存する必要はない。さらに、マスター装置は多数のデータ転送エラーから回復し、システムエラーを識別することができ、したがってマスター装置をより頑丈にし、エラーに対して許容性にする。さらに、記載された技術はシステム全体を通して全体的なデータの完全性を与えることができる。
【０００８】
１以上の構成の詳細を添付図面と以下の説明によって説明する。その他の特徴および利点は説明、図面、特許請求の範囲から明白であろう。
【発明を実施するための最良の形態】
【０００９】
種々の図面の同一の参照符号は同一のエレメントを示している。
【００１０】
本発明は、遅延されたデータ転送を使用するシステム相互バス上のデータの受信、例えば故障／損失データ転送を識別するスプリットトランザクションの追跡に関する。
【００１１】
図１Ａおよび１Ｂは、システム相互接続バスによって伝送された遅延されたデータ転送の追跡を示すフローチャートおよび状態図の結合された図面である。システム相互接続バスにおけるデータ転送のリクエストは100で送信される。そのリクエストはマスター装置によってターゲット装置からデータを読取るための読取りリクエストである。結果として、105で遅延されたデータ転送を示す応答が受信される。
【００１２】
遅延応答はターゲット装置がリクエストを承認し、適切にそのリクエストに応答できることを示すが、それは後の時間に行われる。遅延応答は後の時間にリクエストに応答する誓約である。データ転送の遅延はスプリットトランザクションとして考慮されることができる。例えば、ＰＣＩ―Ｘでは、データ転送はシーケンスとして知られている。ＰＣＩ―Ｘのシーケンスはリクエストする人による単一の論理的転送の実行に関連する１以上のデータトランザクションであり、単一のリクエストによって開始する。
【００１３】
遅延応答はＰＣＩ―Ｘではスプリット応答として知られている。スプリット応答はスプリット完了または書込みトランザクションのような、後の時間にリクエストに応答するためターゲット装置による約束を表している。遅延応答はスプリットトランザクションの開始に使用され、これは通常、長い待ち時間を示すターゲットをアクセスするときにバスの効率を改良することを目的としている。リクエストのターゲットはリクエストされたデータの転送が完了されるか、そうでなければ後の時間に応答されることを示すことによってリクエストする人に応答し、したがってリクエストする人はリクエストを再度提示する必要はない。
【００１４】
用語“データ転送”と“データ伝送”はここではリクエストのオブジェクトを説明するために使用されるが、これらの用語は遅延応答の主体である任意のリクエストに応答して送信されたデータを指している。これらの用語はブロックまたはワードメモリ読み取りのリクエストに限定されず、入力／出力（Ｉ／Ｏ）読取り、Ｉ／Ｏ書込み、構造読取り、構造書込み、メモリに対する偽名、中断承認に関するリクエストを通常含んでいる。
【００１５】
遅延応答が受信されるとき、データ転送リクエストに対応している情報は110で保存される。このような情報にはアドレス、データカウント、データ転送識別子情報を含まれることができる。例えば開始アドレス、バイトカウント、シーケンス識別タグはメモリのブロックを読取るためにＰＣＩ―Ｘリクエストに対して保存されることができる。
【００１６】
これに続いて、115で遅延されているデータ転送のタイマを初期化する等によって、このデータ転送のためのデータの伝送が追跡される。アイドル状態120から、２つの事象がさらに追跡動作をトリガーできる。追跡されたデータ転送に対応するデータ部分が受信されるとき、このデータ転送に対応する情報は、アドレスとバイトカウント情報を125で更新すること等によって更新されることができる。さらに追跡されたデータ転送に対応するタイマは130でリセットされることができる。
【００１７】
データ転送の追跡に使用されるタイマのタイムアウトが生じるとき、140で転送エラーが生じたか否かを決定するためのチェックが行われる。転送エラーの識別はデータ転送の進行を予め規定された規準と比較することを含んでいる。例えば、データ転送中で任意の介在する進行がない２以上の連続的なタイムアウトは転送エラーとして指定されることができる。先のタイムアウト以来、十分な進行が生じたならば、追跡されたデータ転送に対応するタイマは145でリセットされる。代わりに、予め規定された規準は単一のタイムアウトが転送エラーを表していることを特定することができ、その場合には、タイムアウト自体が転送エラーの識別を表している。
【００１８】
転送エラーが生じたとき、転送エラーは150で将来参照するために記録されることができる。さらに、データ転送識別子の発生は155でオフセットを更新することによって変更されることができる。この変更はデータ転送識別子を生じ、それはデータ転送に対応し、ある時間期間だけ使用を控えられ、または全体的に使用を排除される。
【００１９】
例えば、ＰＣＩ―Ｘでは、データ転送識別子は５ビットタグであってもよい。５ビットタグは３２（２5）の同時に進行するシーケンスを識別するために使用されることができ、典型的な構成では、５よりも少数の同時に進行するシーケンスは任意の時に同時に使用される。したがって、タグ発生の変形はＰＣＩ―Ｘタグの発生に使用されるタグオフセットの更新を含むことができる。タグオフセットはタグを発生するベース値の役目をする記憶された５ビットの二進数である。このタグオフセットの更新はタグオフセットのシフトまたは紛失したタグ値＋１に等しいタグオフセットの設定を含むことができる。
【００２０】
さらに、転送エラーが生じたとき、システムエラーが160で生じるか否かを決定するためのチェックが行われる。転送エラーの記録は現在の転送エラーが大きいシステムの問題を示す一連の転送エラーに対応するか否かを見るためにチェックされることができる。対応するならば、システムエラーは165で識別され報告されることができる。例えば、同一のメモリ位置が２以上の転送エラーを発生するならば、これは識別され、駆動装置プログラムへ報告される。
【００２１】
システムエラーが生じないならば、または恐らくシステムエラーが生じる可能性があるならば、データをシステム相互接続バスで転送するための新しいリクエストが170で送信される。この新しいリクエストは全ての使用中のデータ転送識別子および損失したデータ転送識別子とは異なる新しく発生されたデータ転送識別子を使用することができる。
【００２２】
さらに、条件的チェックおよび手順は損失されたデータ転送がシステム相互接続バスで後の時間に再度現われる状態を識別し管理するために使用される。例えば、再度現われる損失されたデータはシステムへ破局的なエラーを通報せずに破棄されることができる。バスで、データは正常に転送され完了するが、内部で破棄される。
【００２３】
図２はシステム相互接続バスによって伝送された遅延されたデータ転送の追跡を実行するシステムのコンポーネントと動作の相互動作を示すブロック図である。並列バスおよび／またはＰＣＩ―Ｘバスのようなシステム相互接続バスからのトランザクション205はスプリットトランザクション追跡コンポーネント210により受信される。スプリットトランザクション追跡コンポーネント210は新しい遅延された転送を表すかまたは現在の追跡された遅延された転送の一部であるトランザクションを識別する。
【００２４】
このようなトランザクションが受信されるとき、スプリットトランザクション保管装置220の更新215が実行される。ＰＣＩ―Ｘ構造では、スプリット応答またはスプリット完了（先に記憶されたスプリットトランザクションエントリの前方の進行）はそれぞれ既存のエントリの保管装置への新しいエントリまたは更新を生じる。更新は転送されるデータ量に基づいて新しいアドレスおよびバイトカウント情報のような記憶される新しい情報を決定するために、記憶された情報を受信されたトランザクション中の情報と比較することを含んでいる。
【００２５】
さらに、エラーチェックが含まれることができる。受信されたトランザクションの情報は任意のフィールドが一致しないか否かを決定するために記憶された情報と比較されることができる（例えば一致しないバイトカウントを伴った一致するタグおよび開始アドレスはエラー状態を示している）。エラーが識別されるならば、エラー状態はフラグされることができる。データは転送され続けるが、トランザクションの完全性が問題であるので、データは捨てられる。
【００２６】
スプリットトランザクション保管装置220は、データ転送識別子によりインデックスされる記述子エントリのアレイである。スプリットトランザクション保管装置220のエントリはスプリットトランザクションタイマ230のセット中に対応するタイマを有する。エントリがスプリットトランザクション保管装置220に記憶されまたは更新されるとき、対応するタイマは225でリセットされる。タイマはカウントダウンする固定したまたはプログラム可能な値にリセットされる。これらのタイマの１つがタイムアウトするとき、スプリットトランザクションエージングコンポーネント240は235で通知される。
【００２７】
スプリットトランザクションエージングコンポーネント240はタイムアウト状態を受信し、タイムアウトエントリのコンテキストと、エントリが完了するのをさらに長く待機するか否かを決定する。前述のタイムアウト数に加えて、進行の程度のようなファクタおよびデータ転送のタイプは長く待機するか否かの決定に含まれることができる。エージングコンポーネント240は、進行が合理的な時間量で行われないなどのために、エントリが故障していることを決定したならば、エージングコンポーネント240はエントリを後退するように、保管装置220に245で信号を送る。さらに、エージングコンポーネント240は前述したように、データ転送識別子発生コンポーネント255に、データ転送識別子の発生を変更するように250で信号を送信する。
【００２８】
さらに、スプリットトランザクションエージングコンポーネント240はシステムエラーが生じたか否かの決定および／または後退後に故障エントリを再試行するか否かの決定をするために進行中の遅延されたデータ転送の追跡を続ける。メモリの一部が一連の転送エラーを発生するならば、これはシステムエラーとして識別され、駆動装置のプログラムに報告される。
【００２９】
スプリットトランザクション保管装置220、スプリットトランザクションタイマ230、スプリットトランザクションエージングコンポーネント240、およびデータ転送識別子発生コンポーネント255は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組合わせで構成されることができる。１実施形態ではスプリットトランザクション保管装置220とスプリットトランザクションタイマ230は用途特定集積回路（ＡＳＩＣ）の論理コンポーネントとして構成され、スプリットトランザクションエージングコンポーネント240と、データ転送識別子発生コンポーネント255はファームウェアで構成される。
【００３０】
これらのコンポーネントが構成されているマスター装置は発生されたデータ転送識別子により指定される多数の同時データ転送をサポートするシステム相互接続バスと結合され、そこでリクエストを送信する任意の装置であってもよい。例えばこれらのコンポーネントはバスアダプタ、および他のブリッジ装置への任意の種類のＰＣＩ−Ｘで構成されてもよい。
【００３１】
図３は、１構成にしたがったホストバスアダプタカード300を示すブロック図である。ホストバスアダプタカード300は記憶区域ネットワークへインターフェースを与えるために既存のコンピュータシステムに挿入されるように構成され、ブロックレベルの入力／出力（Ｉ／Ｏ）サービスを提供する。ホストバスアダプタ300はプロセッサ305を含んでおり、これは2200 Mission College Boulevard Santa Clara California 95052-8119に位置するインテル社により提供されるSA-110 StrongARMプロセッサであってもよい。
【００３２】
ホストバスアダプタ300はまた、不揮発性メモリ310と揮発性メモリ315を含んでいる。これらのメモリは前述の動作を実行する命令を記憶するために使用できる。例えば、不揮発性メモリ310プラス命令はスプリットトランザクションエージングコンポーネントとデータ転送識別子発生コンポーネントを実行するファームウェアを表している。
【００３３】
不揮発性メモリ310はフラッシュメモリであってもよい。揮発性メモリ315は、専用の読取りポートと専用の書込みポートとを有するＱＤＲ（Quad Data Rate）のような高速度ＳＲＡＭ（静止ランダムアクセスメモリ）ベースのメモリ装置であってもよい。揮発性メモリ315は送信および受信ペイロードデータの記憶と、ネットワークおよびバスコンテキスト情報とプロセッサデータ（例えばコード、スタック、スクラッチデータ）の記憶に使用されることができる。
【００３４】
ホストバスアダプタ300はまたバスアダプタＡＳＩＣ320を含んでいる。このバスアダプタＡＳＩＣ320はシステム相互接続バスインターフェース325およびネットワークインターフェース330によりプロセッサ305、不揮発性メモリ310、揮発性メモリ315に接続されている。バスアダプタＡＳＩＣ320は種々の回路コンポーネントを使用して構成されることができ、ランダムアクセスメモリ、先入れ先出し（ＦＩＦＯ）メモリのための専用の管理回路を含んでいる多数のＦＩＦＯメモリ、システム相互接続バスインターフェース325へのアクセスを制御するＤＭＡ（直接メモリアクセス）アービトレータ、レジスタバス、ＡＳＩＣ320のアクティビティを調整し、調節する制御装置を含んでいる。
【００３５】
さらに、前述のスプリットトランザクション保管装置とスプリットトランザクションタイマはＡＳＩＣ320中に構成されてもよく、ＡＳＩＣ320はホストバスアダプタ300に接続される種々のコンポーネントとの相互動作を改良するために多数の製造業者の設計をエミュレートするために作られることができる。
【００３６】
システム相互接続バスインターフェース325はＰＣＩ―Ｘバスのような並列バスと接続するように構成されることができる。ネットワークインターフェース330はファイバチャンネルネットワークと接続するように構成されることができる。
【００３７】
図３と共に示され前述されているバスアダプタは、単なる例示として示されている。他のバスアダプタおよび全体的に異なる装置はここで説明するシステムおよび技術を使用できる。
【００３８】
一般的に、バスアダプタはサーバのようなデータ処理システムと記憶装置との間にＩ／Ｏ処理および物理的接続を提供する。記憶装置は種々の直接取付けられた、またはファイバチャンネル、ｉＳＣＳＩ（インターネットプロトコルにおける小型コンピュータシステムインターフェース）、ＶＩ／ＩＰ（インターネットプロトコルにおけるバーチャルインターフェース）、ＦＩＣＯＮ（ファイバ接続）、またはＳＣＳＩ（小型コンピュータシステムインターフェース）のような記憶装置のネットワーク化技術を使用して取り付けられることができる。バスアダプタはＩ／Ｏ処理能力を提供し、これはバスアダプタが取付けられるデータ処理システムの中央プロセッサにおける処理負担を減少させる。
【００３９】
対照的に、ネットワークインターフェースカードは典型的に、パケットシーケンス順序、セグメント化、再アセンブリ、エラー検出および補正、フロー制御を維持するこのような機能を含んでいるプロトコル処理のためシステムの中央プロセッサに大きく依存する。バスアダプタはシステムの中央プロセッサにほとんどまたは全く関与せずに全体的なＩ／Ｏトランザクションを管理する。図３に関連して示され説明されたホストバスアダプタの例では、ホストバスアダプタはプロセッサ、プロトコル制御装置ＡＳＩＣ、データフローを維持するためのバッファメモリを含んでいる。このホストバスアダプタは並列Ｉ／Ｏチャンネル（例えばＰＣＩ−Ｘ）からブロックレベルデータを取り、これをルート可能なプロトコル（例えばファイバチャンネル）にマップする。
【００４０】
図４はシステム相互接続バスによって伝送された遅延されたデータ転送の追跡を示しているフローチャートである。図４で示されている動作はファームウェアで構成されてもよく、前述のハードウェアコンポーネントと共に機能する。遅延されたデータ転送のタイムアウトの注意は400で受信される。この注意の情報により、405で転送エラーが生じたか否かについての決定が行われることができる。その代わりに、タイムアウトの注意自体が前述したように転送エラーの指示と考えられることができる。
【００４１】
転送エラーが生じていないならば、追跡されたデータ転送に対応するタイマは410でリセットされる。転送エラーが生じたならば、転送エラーは識別され、タイムアウトをトリガーするエントリは後退され、転送エラーは415でログされる。その後、データ転送識別子の発生が420で変更される。
【００４２】
システムエラーが425で生じたか否かを決定するためのチェックがその後、行われる。イエスならば、システムエラーは430で識別され報告される。ノーならば、新しいリクエストは435で開始される。
【００４３】
図５は例示的なデータ処理システム500の例を示すブロック図である。データ処理システム500は中央プロセッサ510を含み、これはプログラムを実行し、データ操作を行い、システム500のタスクを制御する。中央プロセッサ510は多数のプロセッサまたは処理装置を含むことができ、単一のチップ（例えばマイクロプロセッサまたはマイクロ制御装置）または１以上の印刷回路版および／または他のプロセッサ間通信リンク（即ち多数のプロセッサシステムを作る２以上のディスクリートなプロセッサ）を使用して多数のチップに収納されることができる。
【００４４】
中央プロセッサ510はシステム相互接続バス515と結合される。システム相互接続バス515はデータがシステム500の部分間で送信される１以上の通路を提供する。システム相互接続バス515は多数の別々のバスを含むことができ、これは並列および／または直列バス、バスインターフェースおよび／またはバスブリッジである。各バスはアドレスバスおよびデータバスを有する。システム相互接続バス515は、ＰＣＩ―Ｘ等のインターリーブされた多数の同時トランザクションを使用してデータ転送を可能にする少なくとも１つのバスアーキテクチャを含んでおり、さらに、任意の他のシステム相互接続バスアーキテクチャ（例えばＰＣＩ、産業標準アーキテクチャ（ＩＳＡ）、拡張されたＩＳＡ（ＥＩＳＡ）、加速されたグラフィックポート（ＡＧＰ）、ユニバーサルシリアルバス（ＵＳＢ）、ＳＣＳＩ、将来のバスアーキテクチャ）を含むことができる。
【００４５】
データ処理システム500はシステム相互接続バス515に結合されているメモリ520を含んでいる。システム500はまた１以上のキャッシュメモリを含むことができる。これらのメモリ装置は検索および実行のために中央プロセッサ510の近くで命令およびデータの記録を可能にする。
【００４６】
メモリ520は不揮発性メモリと揮発性メモリを含むことができる。例えば不揮発性メモリはシステムファームウェアの記憶に使用されることができ、そのシステムファームウェアはデータ処理システム500の初期化と、One Microsoft Way Redmond Washington 98052-6399に位置するマイクロソフト社により提供されるウィンドウズ（Ｒ）ＮＴ4.0エンタプライズ版のようなオペレーティングシステム（ＯＳ）のロードを管理するために使用される。記憶されたデータを維持するために一定の電流を必要とする揮発性メモリはシステム500が一度スタートアップすると命令およびデータを記憶するために使用されることができる。
【００４７】
データ処理システム500は、システム500またはシステム500のコンポーネントを動作させるための命令のようなマシン命令を含んでいるマシンの読取り可能な媒体である媒体535をアクセスする記憶装置530を含むことができる。媒体535は取外し可能であり、システム500がブートアップするときに揮発性メモリにロードされるＯＳ命令およびデータを有するブート媒体を含むことができる。媒体535は読取り専用または読取り／書込み媒体であり、磁気ベース、光ベース、半導体ベースの媒体、またはこれらの組合わせであることができる。記憶装置530と媒体535の例にはハードディスクドライブおよび取外し可能なハードディスクプラッタ、フロッピー（Ｒ）ディスクドライブおよびフロッピー（Ｒ）ディスク、テープドライブおよびテープ、光ディスクドライブおよび光ディスク（例えばレーザディスク、コンパクトディスク、デジタル汎用ディスク）が含まれる。
【００４８】
データ処理システム500はまた、１以上の周辺装置540(1)-540(n)（集合的に装置540）と、１以上の制御装置と、および／またはインターフェース機能を行うためのアダプタとを含むことができる。装置540は前述したように、付加的な記憶装置およびメディア、他の記憶インターフェースおよび記憶装置、アダプタ、入力装置および／または出力装置である。例えば、システム500は表示装置（例えばディスプレイを駆動するコンポーネントを有し、ビデオランダムアクセスメモリ（ＶＲＡＭ）、バッファ、グラフィックエンジンを含んでいるビデオディスプレイアダプタ）を有する表示システムを含むことができる。
【００４９】
システム500はまた、信号554の形態で、ソフトウェアおよびデータがシステム500と外部装置、ネットワークまたは情報ソースとの間で転送されることを可能にする通信インターフェース550を含んでいる。信号554はチャンネル552（例えばワイヤ、ケーブル、光ファイバ、電話線、赤外線（ＩＲ）チャンネル、無線周波数（ＲＦ）チャンネル等）で受信されることができる任意の信号（例えば電子、電磁、光）である。信号554はシステム500またはシステム500のコンポーネントに動作を行わせるための命令を実施できる。
【００５０】
通信インターフェース550は通信ポート、電話機のモデムまたは無線モデムである。通信インターフェース550はネットワークインターフェースカード（例えばイーサネット（Ｒ）ハブと接続されるイーサネット（Ｒ）カード）であり、特定のタイプのネットワーク、プロトコル、チャンネル媒体用に設計され、または多数のネットワーク、プロトコルおよび／またはチャンネル媒体の役目をするように設計されることができる。
【００５１】
さらに、システム500は信号564の形態で、ソフトウェアおよびデータがシステム500と記憶区域ネットワークとの間で転送されることを可能にする記憶ネットワークインターフェース560を含んでいる。信号564はチャンネル562で送信され受信されることができる信号554のような任意の信号である。信号564はシステム500、または記憶ネットワーク560のようなシステム500のコンポーネントに動作を行わせるための命令を実施できる。記憶ネットワークインターフェース560は前述の図３と共に示され説明されているように、ホストバスアダプタであってもよい。
【００５２】
全体として観察するとき、システム500はプログラム可能なマシンである。システム500により表される例示的なマシンにはサーバ（例えばネットワークホスト）のパーソナルコンピュータ、メインフレーム、スーパーコンピュータが含まれる。マシン500は埋設された制御装置、プログラム可能な論理装置（ＰＬＤ）（例えばＰＲＯＭ（プログラム可能な読取り専用メモリ）、ＰＬＡ（プログラム可能な論理アレイ）、ＧＡＬ／ＰＡＬ（一般的なアレイ論理／プログラム可能なアレイ論理））、フィールドプログラム可能なゲートアレイ（ＦＰＧＡ）、ＡＳＩＣ、単一のチップコンピュータ、スマートカード等のような種々の装置を含むことができる。
【００５３】
（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている）マシン命令はマシン500、記憶ネットワークインターフェース560に結合される記憶域ネットワークに記憶され、および／または通信インターフェースでマシン500に伝送されることができる。これらの命令は、実行されるときマシン500が前述の特徴および機能を実行することを可能にする。これらの命令はマシン500の制御装置を表しており、高レベルの手順および／またはオブジェクト指向プログラミング言語、および／またはアセンブリ／マシン言語で実行されることができる。このような言語はコンパイルされた、および／または解釈された言語である。
【００５４】
ここで使用されるように、用語“マシンの読取り可能な媒体”は、任意のコンピュータプログラムプロダクト、装置および／またはマシン命令および／またはデータをマシン500に提供するために使用される装置を指しており、マシンの読取り可能な信号としてマシン命令を受信するマシンの読取り可能な媒体を含んでいる。マシンの読取り可能な媒体の例には媒体535、メモリ520、および／またはＰＬＤ、ＦＰＧＡ、ＡＳＩＣ等が含まれている。用語“マシンの読取り可能な信号”は、マシン命令および／またはデータをマシン500へ提供するために使用される信号554のような任意の信号を指している。
【００５５】
図６は１構成にしたがった遅延されたデータ転送の追跡のための動作環境を示すブロック図である。多数のサーバ600は記憶区域ネットワークと接続される。各サーバ600は先に示し説明した方法で構成されることができる。例えばサーバ600は４つの５５０ＭＨｚのPentium (R) III Xeon（商標名）プロセッサと１ＧＢ（ギガバイト）のＲＡＭを有するインテル（Ｒ）ＡＣ４５０ＮＸシステムであり、またはサーバ600は８つの５５０ＭＨｚのPentium (R) III Xeon（商標名）プロセッサと１ＧＢのＲＡＭを有するインテル（Ｒ）ＯＣＰＲＦ１００システムである。
【００５６】
記憶区域ネットワークは多数の記憶装置610と記憶ネットワーク620を含んでいる、記憶ネットワーク620はデータ記憶装置に専用の高速度ネットワークであってもよい。例えば記憶ネットワーク620はファイバチャンネル仲裁ループまたはファイバチャンネル交換ファブリックのようなファイバチャンネルネットワークである。各記憶装置610はＳＣＳＩ、ＰＣＩ−Ｘ、または他のバスアーキテクチャ、ＪＢＯＤ（単なるディスク束）、ＲＡＩＤ（廉価なディスクの冗長アレイ）の格納装置または他の大容量記憶装置を使用する記憶アレイである。通常、記憶装置610は前述したように、少なくとも１つのマシンの読取り可能な媒体を含んでおり、記憶区域ネットワークはサーバ600の共有された記憶装置610に対するブロックレベルＩ／Ｏアクセスを行う。
【００５７】
サーバ600はネットワーク630に接続され、これはイーサネット（Ｒ）ネットワーク、ＩＰ（インターネットプロトコル）ネットワーク、ＡＴＭ（非同期転送モード）ネットワークのような多数のマシンネットワークを含むことができる。ネットワーク630は私設ネットワーク、バーチャル私設ネットワーク、エンタプライズネットワーク、公共ネットワークおよび／またはインターネットであってもよい。ネットワーク630は多数のクライアント640とサーバ600との間に通信リンクを提供する。
【００５８】
前述のシステムおよび技術の種々の構成はデジタル電子回路、集積回路、特別に設計されたＡＳＩＣ（用途特定集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェアおよび／またはその組合わせで実現されることができる。前述の種々の構成は技術的範囲を限定するものではなく単なる例示として示されている、その他のシステム、アーキテクチャ、示された装置、マシン、システムの変形および再構成も可能である。
【００５９】
その他の実施形態は特許請求の範囲に記載された発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００６０】
【図１Ａ】システム相互接続バスによって伝送された遅延されたデータ転送の追跡を示す結合されたフローチャートおよび状態図。
【図１Ｂ】システム相互接続バスによって伝送された遅延されたデータ転送の追跡を示す結合されたフローチャートおよび状態図。
【図２】システム相互接続バスによって伝送された遅延されたデータ転送の追跡を実行するシステムのコンポーネントおよび動作の相互動作を示すブロック図。
【図３】１構成にしたがったホストバスアダプタを示すブロック図。
【図４】システム相互接続バスによって伝送された遅延されたデータ転送の追跡示しているフローチャート。
【図５】例示的なデータ処理システムを示すブロック図。
【図６】１構成にしたがった遅延されたデータの転送追跡システムの動作環境を示すブロック図。
【図１Ａ】
2005513595.tif 000003
【図１Ｂ】
2005513595.tif 000004
【図２】
2005513595.tif 000005
【図３】
2005513595.tif 000006
【図４】
2005513595.tif 000007
【図５】
2005513595.tif 000008
【図６】
2005513595.tif 000009
【国際調査報告】
2005513595.tif 000010
2005513595.tif 000011