"非標準入力/出力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バスはPCIeバスである、請求項1に記載のシステム。前記要求の前記フォーマットはI/O拡張フォーマットである、請求項1または請求項2に記載のシステム。前記I/Oアダプタは、少なくとも一つのI/O拡張アダプタと少なくとも一つのPCIeアダプタとを含む、請求項1~請求項3のいずれか一項に記載のシステム。前記変換された要求は、前記I/Oアダプタおよび前記要求元によってサポートされていないフォーマットである、請求項1~請求項4のいずれか一項に記載のシステム。前記要求がデータを格納する要求であることを判定するための手段と、前記判定するのに応じて、前記要求元についての情報を前記I/Oハブに格納するための手段であって、前記情報は、前記要求元アドレス、および前記オペレーションコードを含み、前記オペレーションコードは遂行対象のオペレーションを識別する、前記格納するための手段と、をさらに含む、請求項1に記載のシステム。前記応答が前記I/Oバス上でサポートされていないと判定するのに応じて新規要求を生成するための手段と、前記要求が完了されたことを前記新規要求のヘッダ内に表示している前記応答を、前記I/Oバスを介して送信するための手段と、をさらに含む、請求項1~請求項6のいずれか一項に記載のシステム。標準化された入力/出力I/Oアーキテクチャ内に、非標準I/Oアダプタを実装する方法であって、前記方法は、複数のI/Oアダプタからの要求をI/Oハブにおいて受信するステップであって、各要求は、ターゲット受信先のアドレスとオペレーションコードとを包含する、前記受信するステップと、要求元のI/Oアダプタアドレスを、それらの対応するターゲット受信先アドレスおよびオペレーションコードとともに格納するステップと、前記要求を前記ターゲット受信先に送信するステップと、応答先アドレスの応答先から応答を受信するステップであって、前記応答は要求が完了されたことを示し、前記応答はターゲット受信先のアドレスおよび応答先オペレーションコードを包含する、前記受信するステップと、前記応答が、I/Oバスによってサポートされているフォーマット以外のフォーマットであることを判定するステップと、前記応答を、前記I/Oバスによってサポートされている前記フォーマットに変換するステップと、前記応答先アドレスにマッチする対応ターゲット受信先アドレス、および前記応答先オペレーションコードにマッチする対応オペレーションコードを有する、格納済みのI/Oアダプタアドレスを検索するステップと、前記変換された応答を前記格納済みのI/Oアダプタアドレスに送信するステップと、を含む方法。前記I/OバスはPCIeバスである、請求項8に記載の方法。前記要求の前記フォーマットはI/O拡張フォーマットである、請求項8または請求項9に記載の方法。前記I/Oアダプタは、少なくとも一つのI/O拡張アダプタと少なくとも一つのPCIeアダプタとを含む、請求項8~請求項10のいずれか一項に記載の方法。前記変換された要求は、前記I/Oアダプタおよび前記要求元によってサポートされていないフォーマットである、請求項8~請求項11のいずれか一項に記載の方法。前記要求がデータを格納する要求であることを判定するステップと、前記判定するのに応じて、前記要求元についての情報を前記I/Oハブに格納するステップであって、前記情報は、前記要求元アドレス、および前記オペレーションコードを含み、前記オペレーションコードは遂行対象のオペレーションを識別する、前記格納するステップと、をさらに含む、請求項8~請求項12のいずれか一項に記載の方法。前記応答が前記I/Oバス上でサポートされていないと判定するのに応じて新規要求を生成するステップと、前記要求が完了されたことを前記新規要求のヘッダ内に表示している前記応答を、前記I/Oバスを介して送信するステップと、をさらに含む、請求項8~請求項13のいずれか一項に記載の方法。コンピュータシステム中にロードされ、その中で実行されたとき、前記コンピュータに、請求項8~請求項14のいずれかに記載の方法の全ステップを遂行させる、コンピュータ可読媒体に格納されたコンピュータプログラムコード、を含むコンピュータプログラム。PCIeの使用上の一つの欠点は、PCIeバスに接続された全てのI/Oアダプタは、PCIe規格中に定められたパラメータ内で作動する必要があることであるすなわち、それらはPCIe準拠のI/Oアダプタである。PCIe規格は、要求および完了、並びにパケットのパッケージングおよびアドレッシングに対し厳重な制約を設定している。例えばIBMIBM社の登録商標のSystemzIBM社の登録商標アーキテクチャなど、一部のシステムアーキテクチャでは、PCIe規格でサポートされていないトランザクションを使って、I/Oアダプタとホストシステムとの間でPCIeバスを介した通信をサポートできるようにすることが必要になっている。一例は、例えば、技術的問題もしくは費用またはその両方に起因してPCIe規格に変換することが困難なことのあるレガシーシステムおよびアプリケーションを、一般的にサポートしている非PCIe準拠アダプタ例、I/O拡張アダプタを使って通信する能力である。しかして、PCIeは、その意図する目的であるPCIe準拠アダプタとの通信に適してはいるが、レガシーシステムをサポートするため、PCIeが非PCIe準拠アダプタと通信できるようその能力を拡張する必要性はいまだに残っている。第一態様において、本発明は、標準化された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バスはPCIeバスである。望ましくは、要求のフォーマットはI/O拡張フォーマットである。望ましくは、上記I/Oアダプタは、少なくとも一つのI/O拡張アダプタと少なくとも一つのPCIeアダプタとを含む。望ましくは、変換された要求は、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アダプタアドレスの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アダプタアドレスを検索するステップと、変換された応答をその格納済みのI/Oアダプタアドレスに送信するステップと、をさらに含む。ある実装において、コンピュータによって実行されたとき、標準化されたI/Oアーキテクチャ内に非標準のI/Oアダプタを実装する命令を格納する不揮発性のストレージ媒体を含む、コンピュータプログラム製品が提供され、本コンピュータプログラム製品は方法を実装しており、この方法は、複数のI/Oアダプタからの要求をI/Oハブにおいて受信するステップであって、各要求は、ターゲット受信先のアドレスとオペレーションコードとを包含する、該受信するステップと、要求元のI/Oアダプタアドレスを、それらの対応するターゲット受信先アドレスおよび応答先オペレーションコードとともに格納するステップと、要求をターゲット受信先に送信するステップと、を含む。この方法は、応答アドレスの応答先から応答を受信するステップであって、応答は要求が完了されたことを示し、該応答はターゲット受信先のアドレスと応答先オペレーションコードとを包含する、該受信するステップと、応答が、I/Oバスによってサポートされているフォーマット以外のフォーマットであることを判定するステップと、応答を、I/Oバスによってサポートされているフォーマットに変換するステップと、応答先アドレスにマッチする対応ターゲット受信先アドレスおよび応答先オペレーションコードにマッチする対応オペレーションコードを有する、格納済みのI/Oアダプタアドレスを検索するステップと、変換された応答をその格納済みのI/Oアダプタアドレスに送信するステップと、をさらに含む。単なる例示を目的として、添付の図面を参照しながら、以下に本発明の好適な実施形態を説明する。本発明のある例示的な実施形態は、PCIeバスおよびPCIeスイッチインフラストラクチャの変更を必要とせずに、PCIeアーキテクチャ内での入力/出力I/O拡張要求および応答の処理法を提供する。図1は、本発明の例示的な実施形態によって実装可能なコンピュータシステム100を示す。ある実施形態において、コンピュータシステム100は、インターナショナルビジネスマシーンズコーポレーションIBMIBM社の登録商標が提供しているSystemzIBM社の登録商標サーバである。SystemzIBM社の登録商標は、IBMIBM社の登録商標が提供しているz/ArchitectureIBM社の登録商標に基づいている。z/ArchitectureIBM社の登録商標についての詳細は、IBMIBM社の登録商標出版番号第SA22-7832-07号、2009年2月発行のz/ArchitectureIBM社の登録商標PrinciplesofOperation,z/ArchitectureIBM社の登録商標オペレーションの原理と題された文献に説明されている。ある例示的な実施形態において、コンピュータシステム100は、メモリコントローラ106を介してシステムメモリ104に連結された一つ以上の中央処理装置CPU:centralprocessingunit102を含む。システムメモリ104は、CPU102、PCIeアダプタ110、またはI/O拡張アダプタ111総称してI/Oアダプタとして知られるが、システムメモリ104にアクセスするのに使われたアドレスを含む、メモリ要求読み取りまたは書き込みを発行したときにアクセスを受ける。このメモリ要求に含まれるアドレスは、通常、システムメモリ104にアクセスするため直接には使えず、従って、これを、システムメモリ104にアクセスするため直接使えるアドレスに変換する必要がある。ある実施形態において、アドレスは、アドレス変換メカニズムATM:addresstranslationmechanism108を介して変換される。ある実施形態では、ATM108は、例えば動的アドレス変換DAT:dynamicaddresstranslationを使って、仮想アドレスから実アドレスまたは絶対アドレスに変換する。変換済みアドレスを含むメモリ要求は、メモリコントローラ106によって受信される。ある実施形態において、メモリコントローラ106は、システムメモリ104内の整合性を維持し、以下に限らないが、総称してI/Oアダプタとして知られるCPU102、PCIeアダプタ110、およびI/O拡張アダプタ111を含めた、ハードウェアおよびソフトウェアコンポーネントからのシステムメモリ104へのアクセス要求の間を調停する。ある例示的な実施形態において、PCIeアダプタ110は一つ以上のPCIeI/O機能を遂行し、I/O拡張アダプタ111はPCIe互換性がなく、一つ以上の非PCIeI/O機能を遂行する。CPU102、PCIeアダプタ110またはI/O拡張アダプタ111の一つから送信されたメモリ要求すなわち、下りメモリ要求は、まず、I/Oハブ112例、PCIeハブに送られ、該ハブは、PCIeバス126本明細書ではI/Oバスとも表すに接続されている。次いで、メモリ要求は、PCIeバス126から、一つ以上のPCIeスイッチ114を介して、別のPCIeアダプタ110の一つまたは別のI/O拡張アダプタ111の一つに送信される。PCIeバス126およびPCIeスイッチ114は、当該技術分野で既知の標準的PCIeフォーマットで通信する。ある例示的な実施形態において、I/Oハブ112は、一つ以上の状態マシン、およびI/O拡張オペレーションを解釈し、ホストシステム124とI/O拡張アダプタ111との間で双方向に伝送するための、I/O拡張ロジック122を含む。ホストシステム124は、I/O拡張アダプタ111にはサポートされているが、PCIeバス126とPCIeスイッチ114とには互換性がないすなわちサポートされていないフォーマットで、要求をI/O拡張アダプタ111に送信する。I/O拡張ロジック122は、ホストシステム124から、ホストバス120経由で要求および応答を受信し、それらをPCIeバス126にサポートされているフォーマットに変換する。図1に示されるように、I/O拡張ロジック122は、別個のロジックブロックとして示されている、下り拡張ロジック128および上り拡張ロジック130の両方を含むが、これらのブロック内のロジックの一部または全部をオーバーラップさせることもできる。また、図1に示されたI/Oハブ112は、PCIeスイッチ114の一つから要求および完了を受信するルートコンプレックスrootcomplex116も含む。メモリ要求は、変換が必要であり得るI/Oアドレスを含み、しかして、I/Oハブ112は、そのアドレスを、アドレス変換および保護ユニットATPユニット:addresstranslationandprotectionユニット118に提示する。ATPユニット118は、必要に応じ、I/Oアドレスをシステムメモリ104へのアクセスに直接使用可能なアドレスに変換するために使われる。PCIeアダプタ110またはI/O拡張アダプタ111の一つから発信され、アドレス変換済みのアドレス、または変換が必要ない場合は初期のアドレスを含む、上りメモリ要求は、例えば、ホストバス120を介して、メモリコントローラ106に提供される。メモリコントローラ106は、アービトレーションを行い、該アドレスを備えたメモリ要求を、システムメモリ104にとって適切な時間に、システムメモリ104に転送する。ある例示的な実施形態において、PCIeアダプタ110の一つによって、I/O拡張アダプタ111の一つによって、またはホストシステム124によって、メモリ要求が発信される。ある例示的な実施形態には、ポステッドposted要求および非ポステッド要求の2種類のメモリ要求がある。非ポステッド要求例えば、メモリ読み取りは、要求されたデータと関連メモリ要求の処理結果の状態に関する情報とを包含する、完了と呼ばれる応答を返信する。このさらなる詳細については後記で説明する。ポステッドトランザクション例えば、メモリ書き込みは、データがペイロードであり、ポステッドトランザクションは完了パケットを返信しないことを除けば、非ポステッドトランザクションと同様である。従って、ポステッドトランザクションの過程で生じたいかなるエラーも要求元には分からないことになる。ポステッド要求および非ポステッド要求の両方は、それらのヘッダに包含されたアドレス情報に基づいて、PCIeインフラストラクチャを流通する。このさらなる詳細については後記で説明する。PCIは、PCIeアダプタ110からルートコンプレックス116へのメモリ読み取り要求およびポステッドメモリ書き込み要求だけを定義しているが、SystemzIBM社の登録商標は、PCI仕様に定義されていないいくつかのより高度な機能の要求を用いている。これらの要求は全て、プロトコルおよびビット操作をロックするために使われる、さまざまな種類のアトミックな要求である。一つの要求は、TestandSet検査および設定と呼ばれる。この要求は、メモリ読み取りのように動作し、ロックバイトおよびメモリアドレスを含む。8バイト整列のターゲットアドレスの第一バイトがゼロの場合、ロックバイトは、この第一バイト中に書き込まれる。この実装では、ターゲットデータは256バイトまでであり、要求元に返信される。第二の要求は、TestandStore検査および格納と呼ばれる。この要求は、このインプリメンテーションでは256バイトまでのペイロードを有し、メモリ書き込みのように動作する。これは、ペイロードの第一バイトがロックバイトとして使われている点で、メモリ書き込み要求とは異なっている。ターゲットアドレスの第一バイトがゼロの場合、ペイロードはターゲットアドレス中に書き込まれる。ターゲットアドレスの第一バイトがゼロでない場合、ペイロードはターゲットアドレス中に書き込まれず、第一ターゲットバイトがゼロでなかったことを表す応答が生成される。他の3つの要求は、メモリ中のビットを操作するもので、一つは割り込みも生じさせる。この3つの全てはメモリ書き込み要求のように動作し、3つ全てが、どのターゲットビットがセットまたはリセットされるべきかを示すマスクを含む。このインプリメンテーションにおいて、マスクは8バイトである。SetBitビットのセット要求は、マスクによって示されたビットをメモリ中のターゲットにセットする。ResetBitビットのリセット要求は、マスクによって示されたビットをターゲットメモリにリセットする。割り込み要求を伴うSetBitは、最初にマスクに示されたビットをメモリ中のターゲットにセットし、次いで、ホスト処理装置への割り込みを生じさせる。ここで図2aおよび2bに転じ、標準的なPCIe要求および完了のヘッダについて説明する。典型的なPCIeメモリ要求はヘッダを含み、要求が書き込みの場合は、ペイロードデータも含む。読み取り要求に対する典型的PCIeメモリ完了は、ヘッダおよびペイロードデータを含む。標準的PCIe要求ヘッダ200は複数のフィールドを含む。図2aの実施形態に示すように、標準的な64ビットアドレスPCIe要求のヘッダ200の最初の4バイト202は、Rで表された8つの予備ビットと、アドレス長32または64ビットのいずれかおよびパケットが要求かまたは完了かを表すフォーマットフィールドFmtと、トラフィッククラスフィールドTCと、トランザクションレイヤパケットダイジェストTDと、ポイズンビットEPと、属性Attrと、アドレス型ATと、4バイトインクリメントでの長さと、を含み、PCIe要求ヘッダは、さらに、一緒にトランザクションIDを構成する要求元IDフィールド204およびタグフィールド210と、最終および第一ダブルワードバイトイネーブル最終DWBEおよび第一DWBEと、を含む。要求元IDフィールド204は、応答が提供される場合に、要求の発信元を識別し、応答を該要求元に送るため、コンピュータシステム100のルーティングメカニズムが使用する情報を含む。アドレスフィールド206および208は、高位ビットのセット206および低位ビットのセット208を含む。アドレスフィールド206および208は両方合わさって、下りトランザクションのため、要求が向けられるPCIeアダプタ110またはI/O拡張アダプタ111のアドレス、あるいは、上りトランザクションのためのシステムメモリ104のシステムメモリアドレスのうちのいずれかを示す。完了パケットは、一般に、ヘッダおよびペイロード図示せずセグメントを含む。図2bは、標準的なPCIe完了のヘッダ250を示す。PCIe完了ヘッダ250の最初のバイト群252は、Rで表された9つの予備ビットと、アドレス長32または64ビットのいずれかおよびパケットが要求かまたは完了かを表すフォーマットフィールドFmtと、トラフィッククラスフィールドTCと、トランザクションレイヤパケットダイジェストTDと、ポイズンビットEPと、属性Attrと、4バイトインクリメントでの長さと、を含み、PCIe完了ヘッダは、さらに、完了先ID254と、完了ステータス258と、修正バイトカウント260BCMと、バイトカウント262と、要求のトランザクションIDを構成する要求元IDフィールド256およびタグフィールド264と、ペイロードデータの開始点を示す低位アドレス268と、を含む。完了先IDフィールド254は、完了を遂行したPCIeアダプタ110、またはI/O拡張アダプタ111、またはホストの識別である。PCIe完了ヘッダ250の要求元ID256およびタグ264は、メモリ完了をそれらが対応するメモリ要求にマッチさせるため、PCIe要求ヘッダ200の要求元ID204およびタグ210を包含する。要求元ID256は、完了情報をメモリ要求の発信元に返送するために使われる。また、PCIe完了ヘッダ250は、要求が成功裏に完了したのか、もしくは、アダプタPCIeアダプタ110またはI/O拡張アダプタ111あるいはホストが要求を処理した過程でエラーが生じたのかどうかを示すための完了ステータスフィールド258も含む。ここで図3に転じて、I/O拡張オペレーションを解釈し、ホストバス120からPCIeバス126に伝送するための、図1に示された下り拡張ロジック128I/O拡張ロジック122の部分の例示的な実施形態を説明する。I/O拡張オペレーションは、複数のメモリ要求本明細書では下り要求ともいうおよび複数の応答本明細書では下り応答ともいうを含む。ホストバス120は、ホストシステム124を図1のI/Oハブ112に接続し、要求および応答を、ホストシステム124から、PCIeアダプタ110およびI/O拡張アダプタ111に向かわせるための伝送サービスを提供する。I/O拡張アダプタ111は、PCIeバス126が使うPCIe標準フォーマットとは互換性のないすなわちサポートされていない通信フォーマットで動作し、従い、I/O拡張アダプタ111内で、PCIeバス126との通信を可能にするために変換ロジック132が実行される。変換ロジック132は、I/O拡張アダプタ111内で、要求および応答を、PCIeバス126が解釈できるフォーマットに変換すなわち、再フォーマットする。ある例示的な実施形態において、変換ロジック132は、I/O拡張アダプタ111中の論理回路で実行される。別の実施形態では、変換ロジック132は、I/O拡張アダプタ111とPCIeバス126とに通信可能に連結された一つ以上の特殊ハードウェア回路上で実行される。さらに別の実施形態においては、変換ロジック132は、I/O拡張アダプタ111内でソフトウェアとして実行される。下り要求および下り応答は、両方共にホストシステム124によって発信されるオペレーションであるが、これらのオペレーションの各々を処理するために、下り拡張ロジック128の中の各種の処理フローが使われる。ある例示的な実施形態において、下り要求がホストバス120の上に置かれる。下り要求がホストバス120の上に置かれた後、図1のI/Oバス112が、その下り要求を回収し、それを下り拡張ロジック128に渡す。下り拡張ロジック128は、メモリ要求中に包含される情報に基づいて、ルーティングおよび変換サービスを提供する。下りI/O拡張ベクトル304を使って、該下り要求が、図1のI/O拡張アダプタ111の一つに送信されるのかどうかが判定される。下りI/O拡張ベクトル304は、下り要求のヘッダから情報を読み出し、ビット選択ロジック306を使って下り要求の送り先を判定する。キャッシュ禁止CI:cacheinhibitedロード/ストアコントローラ308は、ホストシステム124が、応答が必要なことを示している場合、ターゲットI/O拡張アダプタ111を表すホストアドレスの部分、およびオペレーションコードなど下り要求に関する情報を格納する。ある例示的な実施形態において、図1のI/O拡張アダプタ111の一つに宛てられた下り要求が、マルチプレクサ312によってPCIe互換性の下り要求に変換される。さらなる実施形態において、CIロード/ストアコントローラ308は、I/Oハブ112からPCIeバス126に送信されるメモリ要求のヘッダ中にオペコードをセットし、このデータは、ブロック310で上り応答を処理するために使われる。このさらなる詳細については、図4を参照しながら後記で説明する。ある例示的な実施形態において、I/O拡張アダプタ111の一つからの要求を完了するのに応じて、ホストシステム124から下り応答が発信される。この下り応答は、ホストバス120上に置かれ、I/Oハブ112により回収されて下り拡張ロジック128に渡される。図3に示されているDMA完了テーブル320は、応答を待っている全要求に対する記録を包含する。ある例示的な実施形態では、DMA完了テーブル320中の記録は、更新され、ホストシステム124からI/O拡張アダプタ111への下り応答を転送するために必要な情報が含められる。応答アドレステーブルRAT:responseaddresstable318は、下り応答のルーティングの情報を検索するために使われる。I/O拡張アダプタ111からホストバス120に送信された要求本明細書では上り要求ともいうが処理される際、これらに対するアドレス情報が格納される。このさらなる詳細については後記で説明する。上り処理ロジックは、ブロック316の適切な処理ステップにおいて、アドレスデータをRAT318に送信する。このさらなる詳細については後記で図4を参照しながら説明する。制御ロジック322は、オペレーションコード本明細書ではオペコードともいうを下り応答に加え、これは下り応答を処理するため、I/O拡張アダプタ111によって使用される。ある例示的な実施形態において、下り拡張ロジック128は、I/Oハブ中のハードウェア回路の中に実装される。ただし、当然のことながら、別の実施形態では当該技術分野で周知のように、下り拡張ロジックを、ハブ内のソフトウェアとして、あるいはハードウェアと該ハブまたは他の論理回路上で実行されるソフトウェアとの組み合わせとして、実行することもできる。ここで図4に転じ、図1に示された、I/O拡張オペレーションを解釈してPCIeバス126からホストバス120に伝送するための上り拡張ロジック130I/O拡張ロジック122の部分の例示的な実施形態について説明する。これらのI/O拡張オペレーションは、複数の要求本明細書では上り要求ともいうおよび複数の応答本明細書では上り完了ともいうを含む。上り要求および上り完了の両方は、I/O拡張アダプタ111の一つ以上によって発信される。上りI/O拡張ベクトル422を使って、上り要求がI/O拡張アダプタ111の一つから送信されているかどうかが判定される。上りI/O拡張ベクトル422は、上り要求のヘッダから情報を読み取り、ビット選択ロジック424を使って、上り要求の発信元を判定する。上り要求の発信元が判定されたならば、そのアドレスルーティング情報は、そのデータをブロック416のRAT318に移送して、図3のRAT318に格納する。マルチプレクサ412を使って、上り要求の、図2aのPCIe要求ヘッダ200から要求元IDフィールド204が抽出される。要求元IDフィールド204のバス番号がRAT318に渡される。バス番号、デバイス番号、および機能番号を含む要求元IDフィールド204が、マルチプレクサ412から、要求元ID内容アドレス可能メモリRIDCAM:requesterIDcontentaddressablememory414に渡される。RIDCAM414は、デバイステーブル402中にインデックスを入力する。デバイステーブル402を使って、要求元IDフィールド204に基づき、図1のI/O拡張アダプタ111内における特定の機能の仮想アドレスが判定される。デバイステーブル402から抽出されたデータは、マルチプレクサ410によって修正され、マルチプレクサ410のアウトプットは、要求を送信する対象のホストシステム124の正確なアドレスおよび区画を判定するために、ゾーン再配置テーブル404によって使用される。パケットのオペレーションコードは制御ロジック418によって処理され、適切なI/O拡張オペレーションコードに変換された後、ホストバス120に送信される。ある例示的な実施形態において、上り完了は前述のように処理されるが、ただし、制御ロジック418は、前述の下り要求が処理されたときブロック420のCIロード/ストアコントローラ308から送信されてきたデータを使って、上り完了を下り要求とマッチさせる。ここで図5に転じて、上りI/O拡張ポステッド書き込み応答のルーティング処理フローにおける例示的な実施形態の詳細なブロック図について以降に説明する。前述のように、PCIe規格は、ポステッド書き込み要求に対する応答をサポートしておらず、従い、ポステッド書き込み応答をI/O拡張アダプタ111に送るには、追加的な処理が必要となる。ある例示的な実施形態において、上りI/O拡張ポステッド書き込み応答のルーティング処理フローが、図1のI/Oハブ112のI/O拡張ロジック122中で実行され、下り要求または下りトランザクションに対するI/O拡張応答が、図2aのPCIe要求ヘッダ200のフォーマットに変換される。ブロック502で、図1のI/O拡張アダプタ111の一つが、図6に示された変換済みPCIe要求ヘッダ600などのフォーマットで、図1のホストシステム124の一つ本明細書ではターゲット受信先ともいうにおいて実行されオペレーションに対する要求を発信する。このPCIe要求ヘッダ202の最初の4バイトは変わらないままで、図2aに関して前述したのと同じ仕方で機能する。図6に示されるように、図2aの要求元IDフィールド204は、2つの新規フィールド、要求IDバス番号フィールド602とゾーンIDフィールド604とに置き換えられている。要求IDバス番号フィールド602は、ホストシステム124で受信された要求の送信元I/O拡張アダプタ111を識別する。ゾーンIDフィールド604は、ホストシステム124の論理区画図示せずを示すために使用され、I/O拡張ロジック122によって、当該要求がシステムメモリ104のどの領域に対するものであるかを示すために使われる。各論理区画LPAR:LogicalPartition図示せずは、ゾーン図示せずと呼ばれる、システムメモリ104での個別領域を有する。図2aのアドレスフィールド206の高位ビットは、I/O拡張ロジック122に対して、この要求がポステッドメモリ書き込み要求としてこれもI/O拡張アダプタ111から送信されてくるアトミックなオペレーションまたは検査/格納オペレーションとは対照的に、DMA書き込みオペレーションであることを示すためのフィールドと、システムメモリへの無許可アクセスに対する保護のため使われる鍵フィールド608とに置き換えられている。アドレスフィールド206の高位ビットを含め、残りのセグメントは、変わらないままである。アドレスフィールド208の低位ビットは変わらないままであり、予備ビット216も同様である。具体的な変更について説明しているが、当然のことながら、別の実施形態において、前述の機能を保ちながら、この要求ヘッダ中の他のフィールドまたは値を変更または追加が可能である。ここでブロック504に戻ると、要求はI/Oハブ112で受信され、I/O拡張ロジック122によって処理される。要求は検査され、それが、I/O拡張アダプタ111の一つからの要求か、PCIeアダプタ110の一つからの要求かの判定がされる。要求がPCIeアダプタ110の一つからのものである場合、ブロック520で、I/Oハブ112は、要求を図1のホストバス120に転送する。そうではなく、要求がI/O拡張アダプタ111の一つからのものである場合、要求IDバス番号フィールド602が、RAT318中へのインデックスとして使われる。RAT318は、I/O拡張アダプタ111に返すPCIe応答を生成するため使われることになるPCIeアドレスの一部を包含する。各要求IDに対しRAT318中に一つのエントリがある。RAT318は、256エントリまで収容し、これは可能な全ての要求IDを収容できることになる。各RATエントリは、図7のPCIeアドレス706の一部を含む。この部分は、スロット番号708およびサブスロット番号710を含む。RAT318中の各エントリは、I/O拡張アダプタ111がオンライン化されたときに、ファームウェア図示せずによって初期化される。ブロック506で、ゾーンIDフィールド604および書き込みタグフィールド210がPCI要求から抽出され、これらのフィールドは、ホストシステム124への要求を形成するために用いられる。ブロック508で、RAT318から抽出されたルーティング情報は、図3のDMA完了テーブル320中に格納される。ブロック510で、要求は図1のホストバス120に送信され、該バスはそれをホストシステム124に送信し、I/O拡張ロジック122は、I/O拡張アダプタ111から返信されることになる応答を待つ。ブロック512で、I/Oハブ112は、要求の完了ステータスを表す応答をホストシステム124から受信する。I/O拡張ロジック122は、応答を処理し、マッチしている要求への応答であることを判定するために、ホスト応答の中のタグを、DMA完了テーブル320に格納された待機中のルーティング情報とマッチさせる。応答が、PCIeアダプタ110からのメモリ読み取り要求に対するものである場合、ホストシステム124からの応答はPCI要求となる。応答が、PCIeアダプタ110からのメモリ書き込み要求に対するものである場合、ホストシステム124からの応答は投棄される。応答が、I/O拡張アダプタ111からのメモリ読み取り要求に対するものである場合、ホストシステム124からの応答は、PCI定義の完了となるが、ただし、完了先ID図示せず中のフィールドが、ホストシステム124からの応答コードに置き換えられる。応答が、I/O拡張アダプタ111からのポステッドメモリ書き込み要求に対するものである場合、ホストシステム124からの応答は、ポステッドメモリ書き込み要求に変換される。この場合、ブロック514で、DMA完了テーブル320中に格納されたルーティング情報が、I/O拡張の送り先情報検索のため使われる。ホストシステム124からの応答コードフィールド714、およびオペレーションコードフィールド704は、このパケットが、ポステッドメモリ書き込み要求からの応答であることを示す。スロット番号およびサブスロット番号を含む送り先情報は、図7に示された変換済みPCI要求ヘッダ700などの変換済みPCIe要求ヘッダ中に組み込まれる。PCIe要求ヘッダ202の最初の4バイトは、変わらないままで、図2aに関して前述したのと同じ仕方で機能する。図7に示されるように、図2aの要求元IDフィールド204は、2つの新規フィールド、要求IDバス番号フィールド702とオペレーションコードフィールド704とに置き換えられている。要求IDバス番号フィールド702は、ホストルートコンプレックス図示せずのバス番号である。オペレーションコードフィールド704は、I/O拡張アダプタ111によって発行されている要求の種類を示すために使用され、ホストシステム124の一つによって、それが遂行すべきオペレーションを示すために使われる。図2aのアドレスフィールド206の高位ビットは、どのI/O拡張アダプタに応答を送信するのかを示すため、上記のブロック514で、RAT318から読み出されたスロット番号フィールド708とサブスロット番号フィールド710とに置き換えられている。アドレスフィールド206の高位ビットを含め、残りのセグメントは、変わらないままである。アドレスフィールド208の低位ビットは使われずゼロにセットされている。応答コードフィールド714は、ホストシステム124からの応答に沿った応答コードにセットされ、要求されたオペレーションのステータスを表すために使われる。この応答コードは、良好ステータスコードと、無効アドレスおよび一般エラーなど、いくつかの不具合ステータスコードとを含む。タグフィールド710は、要求に従ってセットされ、応答を要求とマッチさせるために使われる。追加フィラーフィールド718は、一切のペイロードを整列256バイト境界内に保つため、ゼロにセットされる。図2aの予備ビット216は変わらないままである。具体的な変更内容について説明しているが、当然のことながら、別の実施形態において、前述の機能を保ちながら、この要求ヘッダ中の他のフィールドまたは値を変更または追加することもあり得る。ここで、図5のブロック518に戻ると、PCIe要求ヘッダがI/O拡張ロジック122によって変更されたならば、その要求は、PCIe要求ヘッダ600に記されたI/O拡張アダプタ111に送信される。技術的効果および利益には、PCIe準拠アダプタとともにPCIeアーキテクチャに実装される、非PCIe準拠のI/Oアダプタが、PCIeバスおよびPCIeスイッチメカニズムの修正を要することなく使用可能になることが含まれる。本明細書で使用する用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形あるa、an、および該theは、文脈上明確に別途に示されていなければ、複数形も同じように含むことが意図されている。さらに、当然のことながら、本明細書で用いられる含むcompriseもしくは含んでいるcomprisingまたはその両方は、述べられた機能、完全体、ステップ、オペレーション、エレメント、またはコンポーネント、あるいはこれらの複数の存在を特定するが、一つ以上の他の機能、完全体、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在あるいは追加を排除するものではない。添付の請求項中のミーンズプラスファンクションまたはステッププラスファンクションの要素全ての、対応する構造、材料、動作および均等物は、具体的に請求された他の請求要素と組み合わせて機能を遂行するための、一切の構造、材料または動作を包含することが意図されている。本発明の記述は、例示および説明の目的で提示されたもので、網羅的であることも、または本発明を開示した形態に限定することも意図されていない。当業者には、本発明の範囲および精神から逸脱することのない多くの修改および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな修改を加えたさまざまな実施形態に関して、本発明を理解できるように選択し説明されたものである。当業者には明らかなように、本発明の態様は、システム、方法、またはコンピュータプログラム製品として具現することができる。従って、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態ファームウエア、常駐ソフトウェア、マイクロコードなどを含む、あるいは、一般に本明細書では全て回路、モジュール、またはシステムと呼ばれることもある、ソフトウェアおよびハードウェア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の態様は、コンピュータ可読プログラムコードが具現化されている一つ以上のコンピュータ可読媒体群において具現されたコンピュータプログラム製品の形を取ることもできる。一つ以上のコンピュータ可読媒体群の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、以下に限らないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、装置、またはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のさらに具体的な例非包括的リストには、一つ以上の配線を有する電気接続、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM:randomaccessmemory、読み取り専用メモリROM:read-onlymemory、消去可能プログラム可能読み取り専用メモリEPROMerasableprogrammableread-onlymemoryまたはフラッシュメモリ、光ファイバ、携帯型コンパクトディスク読み取り専用メモリCD-ROM:compactdiscread-onlymemory、光記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体とすることができる。コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部としてコンピュータ可読プログラムコードが具現化された、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気、光学、またはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではないが、命令実行システム、装置、もしくはデバイスによってまたはこれらに関連させて使用するためのプログラムを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。コンピュータ可読媒体中に具現されたプログラムコードは、以下に限らないが、無線、有線、光ファイバケーブル、RFなど、またはこれらの任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。本発明の態様のオペレーションを実行するためのコンピュータプログラムコードは、JavaR、SmalltalkR、Cなどのオブジェクト指向プログラミング言語、および、Cプログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合せで記述することができる。このプログラムコードは、スタンドアロンソフトウェアパッケージとしてユーザのコンピュータで全体的に実行することも、ユーザのコンピュータで部分的に実行することも、またはユーザのコンピュータで部分的に、且つ遠隔コンピュータで部分的に実行することも、または遠隔のコンピュータもしくはサーバで全体的に実行することもできる。後者のシナリオでは、ローカルエリアネットワークLAN:localareanetworkまたは広域ネットワークWAN:wideareanetworkを含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することができ、あるいは例えばインターネットサービスプロバイダを使いインターネットを介し外部のコンピュータへの接続を行うことができる。本発明の実施形態による方法、装置システムおよびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明の態様を上記で説明している。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合せは、コンピュータプログラム命令によって実装可能である。これらのコンピュータプログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実施するための手段を生成するようにすることができる。また、これらのコンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令できるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能/処理を実装する命令群を包含する製造品を生成するようにすることができる。さらに、コンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、これらコンピュータ、他のプログラム可能装置、または他のデバイス上で一連のオペレーションステップを実行させてコンピュータに実装されるプロセスを生成し、これらコンピュータまたは他のプログラム可能装置で実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実装するためのプロセスを提供するようにすることもできる。前述のように、諸実施形態は、コンピュータ実装の処理およびそれらの処理を実行する装置の形で具現することができる。例示的な諸実施形態において、本発明は、一つ以上のネットワークエレメントによって実行される、コンピュータプログラムコード中に具現される。諸実施形態は、製造品として、有形の媒体中に具現された命令群を包含するコンピュータプログラムコードロジックを備えた、コンピュータ可用媒体によるコンピュータプログラム製品を含む。コンピュータ可用媒体に対する例示的な製造品は、フレキシブルディスケット、CD-ROM、ハードドライブ、ユニバーサルシリアルバスUSB:universalserialbusフラッシュドライブ、または他の任意のコンピュータ可読ストレージ媒体を含み、コンピュータプログラムコードロジックがコンピュータにロードされ実行されたとき、該コンピュータは本発明を実行するための装置となる。諸実施形態は、コンピュータプログラムコードロジックを含み、本コンピュータプログラムコードロジックは、例えば、ストレージ媒体に格納されても、コンピュータにロードされもしくはコンピュータにより実行されてもまたはその両方が行われても、あるいは、電気配線もしくはケーブルを通じ、光ファイバを通し、または電磁放射を介するなど何らかの送信媒体を介して伝送されても、本コンピュータプログラムコードロジックがコンピュータにロードされ実行されたとき、そのコンピュータは本発明を実行するための装置になる。汎用マイクロプロセッサに実装された場合、本コンピュータプログラムコードロジックのセグメントは、該マイクロプロセッサを、特定の論理回路を生成するように構成する。図中のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、所定の論理機能群を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図に記載された順序を外れて行われることがあり得ることに留意すべきである。例えば、連続して示された2つのブロックが、実際にはほぼ同時に実行されることがあり、関与する機能によっては、時には、これらブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロックの組み合わせは、特定の機能または処理を実施する、専用ハードウェアベースのシステム、または専用ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。"