(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-29
(54)【発明の名称】ストレージ・システムにおけるチャネル・サブシステムのための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエスト
(51)【国際特許分類】
G06F 13/12 20060101AFI20240822BHJP
G06F 3/06 20060101ALI20240822BHJP
G06F 13/10 20060101ALI20240822BHJP
【FI】
G06F13/12 320A
G06F3/06 301F
G06F13/10 340A
G06F13/12 320E
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024504206
(86)(22)【出願日】2022-09-05
(85)【翻訳文提出日】2024-01-23
(86)【国際出願番号】 IB2022058318
(87)【国際公開番号】W WO2023037222
(87)【国際公開日】2023-03-16
(32)【優先日】2021-09-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ピーターソン、ベス
(72)【発明者】
【氏名】ドリーバー、パトリシア
(72)【発明者】
【氏名】リーディー、デール
(72)【発明者】
【氏名】パヴェザ、ジョン
(72)【発明者】
【氏名】ハソーン、ロジャー
(72)【発明者】
【氏名】ローテン、ウェイン
(57)【要約】
チャネル・サブシステムを通じたストレージ・サーバを対象としたリクエストを処理するためのコンピュータ・プログラム製品、システム、および方法が提供される。1つの実施形態では、パターン・サーチ・リクエストは、ストレージ・サーバが、ホストからのわずか1つのDCWに応答して、サーチおよび比較作業の全てまたは実質的に全てを行うことを可能にするデバイス・コマンド・ワード(DCW)に組み込まれる。さらに、I/O処理は、全てわずか1つのDCWに応答して、読み取り/書き込みI/O処理のための出発点として、成功した組込み済みパターン・サーチ・リクエストの関心のあるターゲット・レコードを使用するために強化可能である。さらに、方向ルールも緩めることができ、ターゲット・レコードが見つかると、チェーンの最初またはその後のDCWのその後のコマンドの実行時に、上記レコードのいずれかおよび全てのフィールドがアクセスおよび利用可能になる。
【特許請求の範囲】
【請求項1】
ストレージ・システムへのリクエストを処理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令を具体化したコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、動作を引き起こすためにプロセッサによって実行可能であり、前記動作が、
前記ストレージ・システムのためのチャネル・サブシステムにおけるDCW移送モード処理のためのデバイス・コマンド・ワード(DCW)にパターン・サーチ・リクエストをパッケージ化することであって、前記パターン・サーチ・リクエストのパッケージ化が、キー・サーチ・パターン引数を有する組込み済みパターン・サーチ・リクエストを前記DCWが有するように、前記パターン・サーチ・リクエスト用のキー・サーチ・パターン引数を前記デバイス・コマンド・ワードにパッケージ化することを含む、前記パッケージ化すること
を含む、コンピュータ・プログラム製品。
【請求項2】
前記動作が、前記パターン・サーチ・リクエストに加えて、I/O動作を開始するための組込み済み入出力(I/O)動作コマンド、および前記組込み済みパターン・サーチ・リクエストを満たすレコードのプレカウント・フィールドで前記I/O動作をスタートさせることを指示するフラグをパッケージ化することをさらに含み、前記I/O動作コマンドが、前記デバイス・コマンド・ワードに組み込まれた読み取りコマンドおよび書き込みコマンドのうちの少なくとも1つを含む、請求項1に記載のコンピュータ・プログラム製品。
【請求項3】
前記パターン・サーチ・リクエストが、前記DCWのPFX/PFXRパラメータ内に組み込まれ、前記動作が、前記パターン・サーチ・リクエストに加えて、前記DCWに組み込まれた読み取り/書き込みチャネル・コマンド・ワード(CCW)をパッケージ化することをさらに含み、前記DCWのPFX/PFXRパラメータ内のロケート・レコード・エクステンデッド(LRE)パラメータが、前記組込み済みパターン・サーチ・リクエストの実行のためのスタート方向を提供し、前記組込み済みパターン・サーチ・リクエストの成功した処理が、前記組込み済みCCWの読み取り/書き込み動作の実行のためのスタート方向を提供する、請求項1または2に記載のコンピュータ・プログラム製品。
【請求項4】
前記パターン・サーチ・リクエストのパッケージ化が、zハイ・パフォーマンスFICON(zHPF)プロトコルで定義されたように前記DCWのロケート・レコード・エクステンデッド(LRE)フィールドに、前記パターン・サーチ・リクエストおよびキー・サーチ・パターン引数をパッケージ化することを含む、請求項1ないし3のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項5】
前記パターン・サーチ・リクエストのパッケージ化が、前記DCWのフィールドにパターン・サーチ・リクエスト・フラグをパッケージ化することを含み、前記フラグが、サーチ・フィールドおよびサーチ・タイプのうちの少なくとも1つを指示し、前記サーチ・タイプが、等しい、以上、およびより大きいのうちの少なくとも1つを含み、前記フラグが、成功後の方向、単一レコード・サーチおよび複数レコード・サーチのうちの少なくとも1つ、ならびに単一トラック・サーチおよび複数トラック・サーチのうちの少なくとも1つをさらに指示する、請求項1ないし4のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項6】
組込み済みパターン・サーチ・リクエストを有する前記DCWは、DCWのチェーン内にあり、組込み済み読み取りコマンドがなく、かつ組込み済み書き込みコマンドがなく、前記組込み済みパターン・サーチ・リクエストを有する前記DCWは、組込み済み読み取りコマンドおよび組込み済み書き込みコマンドのうちの少なくとも1つを有する前記DCWのチェーンのいずれかのDCWの前にある、請求項1ないし5のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項7】
前記パターン・サーチ・リクエストのパッケージ化が、キー・パターン・サーチ引数およびデータ・パターン・サーチ引数の両方を有する組込み済みパターン・サーチ・リクエストを前記DCWが有するように、前記パターン・サーチ・リクエスト用のデータ・サーチ・パターン引数をパッケージ化することを含む、請求項1ないし6のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項8】
前記パターン・サーチ・リクエストが、DCWのチェーンの最初のPFX/PFXRタイプのDCW内のフィールドに組み込まれる、請求項1ないし7のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項9】
コンピュータ・システムであって、
ストレージ・システムと、
ホストと、
前記ホストおよびストレージ・システムを連結するチャネル・サブシステムと、
前記コンピュータ・システムの少なくとも1つの構成要素のプロセッサと、
前記ストレージ・システムへのリクエストを処理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令を具体化したコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、動作を引き起こすためにプロセッサによって実行可能であり、前記動作が、
前記ストレージ・システムのためのチャネル・サブシステムにおけるDCW移送モード処理のためのデバイス・コマンド・ワード(DCW)にパターン・サーチ・リクエストをパッケージ化することであって、前記パターン・サーチ・リクエストのパッケージ化が、キー・サーチ・パターン引数を有する組込み済みパターン・サーチ・リクエストを前記DCWが有するように、前記パターン・サーチ・リクエスト用のキー・サーチ・パターン引数を前記デバイス・コマンド・ワードにパッケージ化することを含む、前記パッケージ化すること
を含む、前記コンピュータ・プログラム製品と
を備える、コンピュータ・システム。
【請求項10】
前記動作が、前記パターン・サーチ・リクエストに加えて、I/O動作を開始するための組込み済み入出力(I/O)動作コマンド、および前記組込み済みパターン・サーチ・リクエストを満たすレコードのプレカウント・フィールドで前記I/O動作をスタートさせることを指示するフラグをパッケージ化することをさらに含み、前記I/O動作コマンドが、前記デバイス・コマンド・ワードに組み込まれた読み取りコマンドおよび書き込みコマンドのうちの少なくとも1つを含む、請求項9に記載のコンピュータ・システム。
【請求項11】
前記パターン・サーチ・リクエストが、前記DCWのPFX/PFXRパラメータ内に組み込まれ、前記動作が、前記パターン・サーチ・リクエストに加えて、前記DCWに組み込まれた読み取り/書き込みチャネル・コマンド・ワード(CCW)をパッケージ化することをさらに含み、前記DCWのPFX/PFXRパラメータ内のロケート・レコード・エクステンデッド(LRE)パラメータが、前記組込み済みパターン・サーチ・リクエストの実行のためのスタート方向を提供し、前記組込み済みパターン・サーチ・リクエストの成功した処理が、前記組込み済みCCWの読み取り/書き込み動作の実行のためのスタート方向を提供する、請求項9または10に記載のコンピュータ・システム。
【請求項12】
前記パターン・サーチ・リクエストのパッケージ化が、zハイ・パフォーマンスFICON(zHPF)プロトコルで定義されたように前記DCWのロケート・レコード・エクステンデッド(LRE)フィールドに、前記パターン・サーチ・リクエストおよびキー・サーチ・パターン引数をパッケージ化することを含む、請求項9ないし11のいずれか一項に記載のコンピュータ・システム。
【請求項13】
前記パターン・サーチ・リクエストのパッケージ化が、前記DCWのフィールドにパターン・サーチ・リクエスト・フラグをパッケージ化することを含み、前記フラグが、サーチ・フィールドおよびサーチ・タイプのうちの少なくとも1つを指示し、前記サーチ・タイプが、等しい、以上、およびより大きいのうちの少なくとも1つを含み、前記フラグが、成功後の方向、単一レコード・サーチおよび複数レコード・サーチのうちの少なくとも1つ、ならびに単一トラック・サーチおよび複数トラック・サーチのうちの少なくとも1つをさらに指示する、請求項9ないし12のいずれか一項に記載のコンピュータ・システム。
【請求項14】
組込み済みパターン・サーチ・リクエストを有する前記DCWは、DCWのチェーン内にあり、組込み済み読み取りコマンドがなく、かつ組込み済み書き込みコマンドがなく、前記組込み済みパターン・サーチ・リクエストを有する前記DCWは、組込み済み読み取りコマンドおよび組込み済み書き込みコマンドのうちの少なくとも1つを有する前記DCWのチェーンのいずれかのDCWの前にある、請求項9ないし13のいずれか一項に記載のコンピュータ・システム。
【請求項15】
前記パターン・サーチ・リクエストのパッケージ化が、キー・パターン・サーチ引数およびデータ・パターン・サーチ引数の両方を有する組込み済みパターン・サーチ・リクエストを前記DCWが有するように、前記パターン・サーチ・リクエスト用のデータ・サーチ・パターン引数をパッケージ化することを含む、請求項9ないし14のいずれか一項に記載のコンピュータ・システム。
【請求項16】
前記パターン・サーチ・リクエストが、DCWのチェーンの最初のPFX/PFXRタイプのDCW内のフィールドに組み込まれる、請求項9ないし15のいずれか一項に記載のコンピュータ・システム。
【請求項17】
ストレージ・システムのためのチャネル・サブシステムにおけるDCW移送モード処理のためのデバイス・コマンド・ワード(DCW)にパターン・サーチ・リクエストをパッケージ化することであって、前記パターン・サーチ・リクエストのパッケージ化が、キー・サーチ・パターン引数を有する組込み済みパターン・サーチ・リクエストを前記DCWが有するように、前記パターン・サーチ・リクエスト用のキー・サーチ・パターン引数を前記デバイス・コマンド・ワードにパッケージ化することを含む、前記パッケージ化すること
を含む、方法。
【請求項18】
前記パターン・サーチ・リクエストに加えて、I/O動作を開始するための組込み済み入出力(I/O)動作コマンド、および前記組込み済みパターン・サーチ・リクエストを満たすレコードのプレカウント・フィールドで前記I/O動作をスタートさせることを指示するフラグをパッケージ化することをさらに含み、前記I/O動作コマンドが、前記デバイス・コマンド・ワードに組み込まれた読み取りコマンドおよび書き込みコマンドのうちの少なくとも1つを含む、請求項17に記載の方法。
【請求項19】
前記パターン・サーチ・リクエストが、前記DCWのPFX/PFXRパラメータ内に組み込まれ、前記動作が、前記パターン・サーチ・リクエストに加えて、前記DCWに組み込まれた読み取り/書き込みチャネル・コマンド・ワード(CCW)をパッケージ化することをさらに含み、前記DCWのPFX/PFXRパラメータ内のロケート・レコード・エクステンデッド(LRE)パラメータが、前記組込み済みパターン・サーチ・リクエストの実行のためのスタート方向を提供し、前記組込み済みパターン・サーチ・リクエストの成功した処理が、前記組込み済みCCWの読み取り/書き込み動作の実行のためのスタート方向を提供する、請求項17または18に記載の方法。
【請求項20】
前記パターン・サーチ・リクエストのパッケージ化が、zハイ・パフォーマンスFICON(zHPF)プロトコルで定義されたように前記DCWのロケート・レコード・エクステンデッド(LRE)フィールドに、前記パターン・サーチ・リクエストおよびキー・サーチ・パターン引数をパッケージ化することを含む、請求項17ないし19のいずれか一項に記載の方法。
【請求項21】
前記パターン・サーチ・リクエストのパッケージ化が、前記DCWのフィールドにパターン・サーチ・リクエスト・フラグをパッケージ化することを含み、前記フラグが、サーチ・フィールドおよびサーチ・タイプのうちの少なくとも1つを指示し、前記サーチ・タイプが、等しい、以上、およびより大きいのうちの少なくとも1つを含み、前記フラグが、成功後の方向、単一レコード・サーチおよび複数レコード・サーチのうちの少なくとも1つ、ならびに単一トラック・サーチおよび複数トラック・サーチのうちの少なくとも1つをさらに指示する、請求項17ないし20のいずれか一項に記載の方法。
【請求項22】
組込み済みパターン・サーチ・リクエストを有する前記DCWは、DCWのチェーン内にあり、組込み済み読み取りコマンドがなく、かつ組込み済み書き込みコマンドがなく、前記組込み済みパターン・サーチ・リクエストを有する前記DCWは、組込み済み読み取りコマンドおよび組込み済み書き込みコマンドのうちの少なくとも1つを有する前記DCWのチェーンのいずれかのDCWの前にある、請求項17ないし21のいずれか一項に記載の方法。
【請求項23】
前記パターン・サーチ・リクエストのパッケージ化が、キー・サーチ・パターン引数およびデータ・パターン引数の両方を有する組込み済みパターン・サーチ・リクエストを前記DCWが有するように、前記パターン・サーチ・リクエスト用のデータ・サーチ・パターン引数をパッケージ化することを含む、請求項17ないし22のいずれか一項に記載の方法。
【請求項24】
前記パターン・サーチ・リクエストが、DCWのチェーンの最初のPFX/PFXRタイプのDCW内のフィールドに組み込まれる、請求項17ないし23のいずれか一項に記載の方法。
【請求項25】
ストレージ・システムでリクエストを処理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令を具体化したコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、動作を引き起こすためにプロセッサによって実行可能であり、前記動作が、
前記ストレージ・システムのためのチャネル・サブシステムにおけるDCW移送モード処理のためのデバイス・コマンド・ワード(DCW)を受信することであって、前記DCWが、前記デバイス・コマンド・ワード(DCW)内のPFX/PFXRパラメータ内に組み込まれたパターン・サーチ・リクエスト、および前記DCWに組み込まれた読み取り/書き込みチャネル・コマンド・ワード(CCW)を有し、前記パターン・サーチ・リクエストが、組込み済みキー・サーチ・パターン引数を前記デバイス・コマンド・ワードにパッケージ化している、前記受信することと、
前記DCWの前記PFX/PFXRパラメータ内のロケート・レコード・エクステンデッド(LRE)パラメータによって識別されたスタート方向に、前記パターン・サーチ・リクエストによってリクエストされたパターン・サーチを実施することと、
前記組込み済みパターン・サーチ・リクエストの成功した処理によって提供されたスタート方向に、前記組込み済みCCWの読み取りもしくは書き込み動作またはその両方を実行することと
を含む、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、チャネル・サブシステムのための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストを処理するためのコンピュータ・プログラム製品、システム、および方法に関する。
【背景技術】
【0002】
入出力(I/O)動作は、処理環境のメモリと入出力デバイスとの間でデータを転送するために使用される。具体的には、入出力動作を実行することによって、データがメモリから1つまたは複数の入出力デバイスに書き込まれ、データが1つまたは複数の入出力デバイスからメモリに読み込まれる。
【0003】
入出力動作の処理を容易にするために、処理環境の入出力サブシステムが使用される。入出力サブシステムは、処理環境のメイン・メモリおよび入出力デバイスに連結され、メモリと入出力デバイスとの間の情報のフローを指図する。入出力サブシステムの1つの例は、チャネル・サブシステムである。チャネル・サブシステムは、チャネル経路を通信媒体として使用する。各チャネル経路は、ストレージ・サーバ(制御ユニットまたはストレージ・コントローラとしても知られている)に連結されたチャネルを含み、ストレージ・サーバは、これらのI/Oデバイスを制御するために、1つまたは複数の入出力デバイスにさらに連結される。
【0004】
チャネル・サブシステムは、典型的には、チャネル・コマンド・ワードを用いて、入出力デバイスとメモリとの間でデータを転送する。チャネル・コマンド・ワード(CCW:channel command word)は、実行されることになるコマンドを特定し、コマンドが特定のI/O動作を開始するために、CCWは、動作に関連付けられたメモリ・エリア、エリアとの間の転送が完了したときに常に行われることになるアクション、および他のオプションを指定する。したがって、既知のCCWは、関係するデータ・エリアのデータ・アドレスと共に、読み取り、書き込み、または制御などの、チャネル・コマンドを含む。データは、チャネル・サブシステムに渡される。チャネル・サブシステムは、I/Oのステータスを、発行したアプリケーションに伝達して戻す。
【0005】
入出力処理中、チャネル・コマンド・ワードのリストが、チャネルによってメモリから取得される。チャネルは、チャネル・コマンド・ワードのリストからの各コマンドをパースし、チャネルに連結されたストレージ・サーバのプロセッサに、いくつかのコマンドを転送する。ストレージ・サーバは次いで、コマンドを処理する。チャネルは、各コマンドの状態を追跡し、コマンドの次のセットが処理のためにストレージ・サーバにいつ送信されるべきかを制御する。
【0006】
CCWを組み入れた処理環境は、伝統的に、一意のプロトコルを使用して、CCWをストレージ・サーバに移送してきた。カウント・キー・データ(CKD:Count Key Data)などのデータ・フォーマットを対象とする典型的な光ファイバ接続(FICON:Fibre Connection)コマンド・モード・チャネル・プログラムでは、別々に転送された読み取りまたは書き込みコマンドを実行する前に、トラック上の特定のレコード・エリアを位置特定または位置確定するために、サーチ・コマンドのセットのうちの1つが使用される。例えば、CKDフォーマット・データのための拡張カウント・キー・データ(ECKD:Extended Count Key Data)アーキテクチャと共に、デファイン・エクステント(DX:Define Extent)およびロケート・レコード(LR:Locate Record)コマンドのなどのロケート・レコード動作が一般に使用される。
【0007】
既知の光ファイバ接続(「FICON」)(コマンド・モード)書き込みチェーンは、ホスト・サーバが、接続されたストレージ・システムにデータを転送することを可能にするはずの、いくつかのCCWを含む。上述のように、各CCWは、実行されることになるコマンドを含み、制御パラメータを指し示すか、読み取りまたは書き込みを行うことになるデータを含むストレージ・エリアを指し示す。CCWは、ストレージ・エリアを直接指し示してもよく、または、間接アドレッシング(間接アドレス・リスト(IDAL)または変更済み間接アドレス・リスト(MIDAL))のいくつかのフォーマットを使用して、ストレージ・エリアを指し示してもよい。
【0008】
標準FICON書き込みチェーンは、デファイン・エクステント、ロケート・レコード(エクステンデッド)、および書き込みコマンドを含んでもよい。デファイン・エクステントおよびロケート・レコード(エクステンデッド)は、プレフィックス・コマンドにまとめられてもよい。ロケート・レコード・パラメータは、チェーン内の直後に続くことになる動作のドメインを記述する。これらのパラメータは、読み取りまたは書き込みドメイン・タイプ、データ転送用のスタート・アドレス、および、チェーン内のデータ転送コマンドの予想数を定義する。チェーンはまた、書き込みコマンドの初期ドメインが完了した後の追加のロケート・レコード(エクステンデッド)コマンドを含んでもよい。これらの追加のロケート・レコード(エクステンデッド)コマンドは、組込み済みロケート・レコード・コマンドと呼ばれ、チェーン内に追加のドメインが定義されることを可能にする。これらのドメインは、連続でも不連続でもよい。
【0009】
カウント・キー・データ(CKD)ディスク・データ・フォーマットで、データ・フィールドは、ユーザ・データを格納する。しかし、データ・レコードは長さが可変である可能性があるので、各データ・レコードも、レコード識別子(レコードID)を提供する関連付けられたカウント・フィールドを有する。慣例により、このレコードIDは、トラック・アドレスを指定するために使用されることが多い。レコードを識別するために使用され得る文字列(例えばファイル名)などの追加情報を含む、オプションのキー・フィールドも定義される。レコードの識別に加えて、カウント・フィールドは、オプションのキー・フィールドおよびオプションのユーザ・データ・エリアのバイト数を提供する。レコードIDおよびキー・フィールドの両方は、特定の値でハードウェア・サーチが行われることを可能にする。CKDプロトコルと互換性のあるコマンド・モード・チャネル・プログラムでは、ストレージ・サーバは、チャネルからサーチ引数を転送し、ストレージ・デバイスまたはキャッシュからカウントまたはキー・レコード・エリアを読み取り、引数と読み取ったエリアとの論理比較演算を実施してターゲット・レコードを位置特定する。
【0010】
CKDサーチ・コマンドは、典型的には、(チェーン内の前の方のコマンドで定義されたように)特定のトラックからスタートするが、その後、各レコードの特定のフィールドを検査し、これを、典型的には上述のようにチャネルを通じてホストによって提供されたサーチ引数である情報と比較する。ホストは、カウント・フィールド(ID)またはキー・フィールドに対するサーチをリクエストしてもよい。ホストは、例えば、フィールドおよび引数がマッチすること、またはフィールドが引数より大きい値を有することをリクエストしてもよい。ストレージ・サーバによってホストに返されたステータスは、ストレージ・サーバが、リクエストされた比較を満たすレコードを見つけるのに成功したか失敗したかを指示する。ホストは、マッチがあるかどうかを検査し続けることを選んでもよく、または、ホスト・プログラムの目標に応じて停止してもよい。例えば、複数のトラックをレコード毎にチェックし、マッチが見つかる前に、リンク全体を行き来して転送する著しいコマンド信号ハンドシェイク・オーバヘッドに遭遇することがある。マッチが見つかると、ホストは、書き込みコマンドを発行して、成功したサーチ・ターゲットのデータ・フィールドへのデータの書き込みを開始してもよく、または、読み取りコマンドを発行して、成功したサーチ・ターゲットのデータ・フィールドからのデータ読み取りを開始してもよい。
【0011】
CKDプロトコルと互換性のある既知のコマンド・モード・チャネル・プログラムでは、この処理は、非常に非効率的な可能性があるが、これは、1960年代からのアーキテクチャ、および回転ディスク・タイプのストレージ・デバイスに関連付けられた限界に基づく。当初のCKDアーキテクチャは、回転ディスクからレコードを読み取り、キー・フィールドを、ホストによって渡された引数と比較することに基づいていた。ディスクは論理的に回転するので、ストレージ・サーバは事実上、「これはあなたのレコードです」または「これはあなたのレコードではありません」とホストにレポートする。チャネル・プログラムは、ストレージ・サーバには見えないが、1つのレコードのこのテストの結果で何が行われるかを決定する。最も一般的な結果は、分岐して戻り、次のレコードに対して別のサーチ・コマンドを再び送信することによってパターンを再びテストすることだった。チャネル全体のハンドシェイク信号のこのチャタリングには時間がかかり、他のデータ転送を妨げる可能性がある。
【0012】
徐々に、CKDフォーマットのデータを対象としたアーキテクチャに進歩があった。例えば、カウント・キー・データ(CKD)などのデータ・フォーマットを対象とした1つの既知のコマンド・モード・チャネル・プログラムには、ストレージ・サーバが特定のトラックに対してレコード全てをサーチしてもよい「特殊サーチ・キー・モード」を指示可能なFICONサーチ・コマンドのためのメカニズムがある。
【0013】
その回転ディスク起源に関係のある現在のコマンド・モードECKDアーキテクチャのさらなる限界は、レコードの1つのフィールド(キー・フィールドなど)に対して動作が実施されると、ディスク方向は、その後のフィールドにあることが想定されることである。例えば、キー・フィールドに対してサーチが実施された場合、方向は、そのレコードのデータ・フィールドを指し示しているとみなされる。その結果、コマンド・モード・チャネル・サーチ・プログラムは、これらが、その後の(例えば、キー)フィールドに対する成功したサーチ動作に備えて、動作対象の各レコード内のフィールド(カウント・フィールドなど)についての情報を保存するような方式で、書き込まれた。回転ディスク用に確立されたルールに従って、キーのサーチが成功すると、バックアップ動作は、典型的には、カウント・フィールドを読み込むために利用できなかった。その結果、レコードのカウント・フィールドは通常、このレコードのキーが所望の値(例えばサーチ引数)にマッチするかどうかを決定する前に読み取られ、保存される。キーが引数にマッチした場合、保存されたカウント・フィールドは、データを読み取る/書き込むために使用可能であり、マッチしなかった場合、保存されたカウント・フィールドは、典型的には棄てられた。
【0014】
I/Oアーキテクチャに対する最近の改善であるハイ・パフォーマンスFICON(HPF)は、デバイス・コマンド・ワード(DCW:device command word)をストレージ・サーバに伝送するためのファイバ・チャネル・プロトコル(FCP)を特色としている。DCWは、ストレージ・サーバによって実行されることになる複数のコマンドを表すチャネル・コマンド・ワード記述子(CCWD)において用いられてもよい。コマンドは、個々のコマンドの実行に関するステータスがチャネル(またはホスト)によって追跡されないという点で、チャネルとは無関係に実行される。ストレージ・サーバは、複数のコマンドを単一の情報単位(IU:information unit)として受け取り、適切な様式でコマンドを実行する責任がある。個々のコマンドを追跡する責任をチャネルから取り除くことによって、チャネルの性能は著しく強化される。例えば、チャネル(またはホスト)とストレージ・サーバとの間のハンドシェイク信号に関連付けられたオーバヘッドは、著しく低減可能である。
【0015】
一般に、DCWタイプ処理のためにIUにカプセル化され得るコマンドの数は、DCWタイプ処理におけるトランスポート層のサイズが制限されるので、制限される。1つの既知のシステムでは、例えば、層は、DCWデータのうちのおよそ240バイトがIUでストレージ・サーバに伝送されることを可能にする。この例では、240バイトのうちの80バイトが、DCWプレフィックス・パラメータのために確保される。
【0016】
上述のように、典型的な光ファイバ接続(FICON)コマンド・モード・チャネル・プログラムでは、読み取りまたは書き込みコマンドを実行する前に、トラック上の特定のレコード・エリアにストレージ・デバイスを位置特定または位置確定するために、サーチ・コマンドのセットのうちの1つが使用される。デファイン・エクステントおよびロケート・レコード・コマンドなどの、ロケート・レコード動作の限定セットはまた、一般に、DCWを対象とした移送モード・チャネル・プログラムの読み取りおよび書き込みシステム・コマンドと共に使用される。したがって、書き込みシステム・コマンドは、デファイン・エクステントおよびロケート・レコード・コマンドとチェーンにされてもよい。このようにして、単一のレコードがI/Oデバイスに書き込まれたとき、DCWチェーンが、例えば、作成され、ターゲットI/Oデバイスを制御するストレージ・サーバに送信される。DCWチェーンは、デファイン・エクステント、ロケート・レコード、および書き込みコマンド(または読み取りコマンドあるいはその両方)など、この順序で一緒にチェーンにされた、いくつかのDCWを含む。読み取りおよび書き込みシステム・コマンドより前にある、デファイン・エクステントおよびロケート・レコード・コマンドは、プレフィックス・コマンドと呼ばれる。プレフィックス・コマンドは、前に記述されたプレフィックス・パラメータがその後に続く。
【0017】
zハイ・パフォーマンスFICON(zHPF:z High Performance FICON)プロトコルと呼ばれるFICONプロトコルは、移送モード・チャネル・サブシステムで使用するためのコマンド・セットを有する。既知のzHPFコマンド・セットは、既知のデファイン・エクステント/ロケート・レコード・エクステンデッド(DX/LRE:Define Extent/Locate Record Extended)パラメータが、DCWの初期プレフィックス(PFX:Prefix)コマンドに含まれ得るという点で、標準FICONアーキテクチャの挙動を示している。LREパラメータは、FICONアーキテクチャにおけるI/O動作の初期方向に対して、どのトラック、レコード、またはフィールド、あるいはその組合せが使用されるかを指示する。しかし、物理キーで定義されたデータセットに対して実施されるI/O動作は、既知のzHPFシステムには適格でない。したがって、DCWに組み込まれたコマンドは、パターン・サーチを許可しない。その代わりに、ホストは、DCWの読み取りまたは書き込み動作のために使用されるスタート・レコードまたはトラック識別情報を提供する。
【0018】
既知のzHPFチャネル・プログラムは、コマンドおよび制御パラメータを含む移送制御エリア(TCA:Transport Control Area)を含む。各コマンドは、コマンドがデータを転送するために使用される場合、コマンド・コードと、チェーニングおよび他のオプションを指示するためのフラグと、制御データ・カウントと、データ・バイト・カウントとを含む、デバイス・コマンド・ワード(DCW)で表される。コマンドが制御データ(コマンド・パラメータ)をデバイスに転送する場合、制御データは、TCA内のDCWの後に続く。使用されるコマンド・コードは、チャネル・コマンド・ワード(CCW)で使用されるものと同じである。
【0019】
CCWと違って、DCWは、その対応するI/Oバッファを指し示さない。全てのDCWのためのI/Oバッファは、TCAによって指し示され、特定のDCWに関連付けられたI/Oバッファは、前のDCWによって転送されたデータ量に基づく。
【0020】
システムZハイ・パフォーマンスFICON(「zHPF」)(移送モード)書き込みチェーンは、チェーンによって実施される転送動作を記述するために使用される制御データを圧縮する。書き込みDCWは、組込み済みCCWオペコードおよびインテント・カウントを有するPFXコマンドを指定することになる。組込み済みCCWオペコードは、FICON書き込みチェーン内のDX/LRまたはPFXに続く書き込みCCWのために使用される書き込みコマンド・コードと同等であるはずである。さらに、プレフィックスはまた、組込み済みロケート・レコード・カウントおよび組込み済みロケート・レコード・リストを有してもよい。これらの組込み済みロケート・レコード・エントリは、単一のDCW内で追加のドメインが指定されることを可能にする。さらに、組込み済みロケート・レコード・エントリも有し得る、移送モード・チェーン内に追加のロケート・レコード・エクステンデッドDCWがあってもよい。
【発明の概要】
【0021】
ストレージ・システムのためのチャネル・サブシステムにおける移送モード処理のためのデバイス・コマンド・ワード(DCW)にパターン・サーチ・リクエストをパッケージ化するための、コンピュータ・プログラム製品、システム、および方法が提供される。DCWに組み込まれたパターン・サーチ・リクエストを実行することによって、例えば、ストレージ・サーバは、ホストからのわずか1つのDCWに応答して、パターン・サーチのサーチおよび比較作業の全てまたは実質的に全てを行うことができる。その結果、本説明による組込み済みパターン・サーチ・リクエストを提供するために変更されたzHPF互換アーキテクチャなどの移送モード・アーキテクチャでは、パターン・サーチ・コマンドの既知のコマンド・モード処理に正常に関連付けられたチャネル・ハンドシェイキングの全てまたは実質的に全てが、低減または排除されることが可能である。
【0022】
本説明による移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの別の態様では、組込み済みパターン・サーチ・リクエストに応答して動作するパターン・サーチ機能のためのパラメータが、1つの実施形態において、zハイ・パフォーマンスFICON(zHPF)プロトコルで定義されたように、DCWのPFX/PFXRパラメータのロケート・レコード・エクステンデッド(LRE)フィールドに組み込まれてもよい。例えば、パターン・サーチ挙動定義フラグおよび他のパラメータが、zHPFプロトコルと互換性のあるストレージ・システムのためのDCWのチェーンの最初のPFX/PFXR DCW内の既存のフィールドに組み込まれてもよい。このようにして、既存の移送モード・チャネル・プログラムとの互換性が、既知のDCW I/O挙動を未変更または実質的に未変更のままにしつつ、実現されてもよい。
【0023】
1つの実施形態では、パターン・サーチ・リクエストのパッケージ化は、パターン・サーチ・リクエスト用のキー・サーチ・パターン標識および引数をデバイス・コマンド・ワードにパッケージ化することを含む。代替実施形態では、組込み済みキー・サーチ・パターン・パラメータは、可変長キー・パターン・サーチ引数を有する実施形態における、キー・サーチ・パターン引数の長さを定義するためのキー・パターン・サーチ引数長パラメータを含んでもよい。これらのキー・パターン・サーチ・パラメータはまた、1つの実施形態において、例えば、既存の移送モード・チャネル・プログラムとの互換性を達成するために、zHPFプロトコルと互換性のあるストレージ・システムのためのDCWのチェーンの最初のPFX/PFXR DCWなど、既存のロケート・レコード・エクステンデッド(LRE)フィールドに組み込まれてもよい。
【0024】
本説明による移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストのさらに別の態様では、デバイス・コマンド・ワードのパッケージ化は、パターン・サーチ・リクエストをパッケージ化することに加えて、I/O動作を開始するための組込み済み入出力(I/O)動作コマンドと、組込み済みパターン・サーチ・リクエストを満たすレコードのプレカウント・フィールドでI/O動作をスタートさせることを指示するフラグとをパッケージ化することをさらに含んでもよい。1つの実施形態では、I/O動作コマンドは、デバイス・コマンド・ワードに組み込まれた読み取りコマンドおよび書き込みコマンドのうちの少なくとも1つを含む。例えば、組込み済みI/O動作コマンドは、DCWに組み込まれた少なくとも1つのチャネル・コマンド・ワード(CCW)を有してもよい。I/O CCWは、既存の移送モード・チャネル・プログラムとのさらなる互換性を達成するために、実質的に変化しない様式で、I/O CCW用の既知の技術を使用して、DCWに組み込まれてもよい。他の実施形態では、パターン・サーチ・リクエストが組み込まれたDCWは、DCWのチェーン内にあり、同じDCWにI/O CCWなどの組込み済みI/O動作コマンドがない。1つの実施形態では、組込み済みパターン・サーチ・リクエストを有するDCWは、組込み済み読み取りコマンドおよび組込み済み書き込みコマンドのうちの少なくとも1つを有するチェーンのいずれかのDCWの前にある。
【0025】
本説明による移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストのさらに別の態様では、DCWのPFX/PFXRパラメータ内のロケート・レコード・エクステンデッド(LRE)パラメータは、組込み済みパターン・サーチ・リクエストの実行のためのスタート方向を提供する。さらに、組込み済みパターン・サーチ・リクエストの処理が成功すると、組込み済みCCWの読み取り/書き込み動作の実行のためのスタート方向は、パターン・サーチのターゲット・レコードによって提供される。したがって、リクエストされたパターン・サーチが成功裏に完了すると、同じDCWによって開始された既知のPFX/PFXR I/O処理が、成功したパターン・サーチによって提供された方向を使用して、開始可能になる。このようにして、I/O処理の効率が改善され得る。
【0026】
1つの実施形態では、パターン・サーチ・コマンドのパッケージ化は、DCWのフィールドにパターン・サーチ・リクエスト・フラグをパッケージ化することを含み、フラグは、サーチ・フィールドおよびサーチ・タイプのうちの少なくとも1つ、成功後の方向、単一レコード・サーチおよび複数レコード・サーチのうちの少なくとも1つ、ならびに単一トラック・サーチおよび複数トラック・サーチのうちの少なくとも1つを指示し、サーチ・タイプは、等しい、以上、およびより大きいのうちの少なくとも1つを含む。これらのパターン・サーチ挙動パラメータはまた、1つの実施形態において、例えば、既存の移送モード・チャネル・プログラムとの互換性を達成するために、zHPFプロトコルと互換性のあるストレージ・システムのためのDCWのチェーンの最初のPFX/PFXR DCW内などの既存のロケート・レコード・エクステンデッド(LRE)フィールドに組み込まれてもよい。
【0027】
代替実施形態では、別個のサーチ・タイプDCWには、組込み済みパターン・サーチ・リクエストがあるが、組込み済み読み取りコマンドまたは組込み済み書き込みコマンドなどの組込み済みI/Oコマンドがない。1つの実施形態では、別個のサーチ・タイプDCWは、第1の読み取り/書き込みDCWの前の移送制御エリア(TCA)に置かれる。したがって、その後に置かれた読み取り/書き込みDCWには、本実施形態における拡張パターン・サーチ挙動がないはずである。
【0028】
さらに別の実施形態では、パターン・サーチ・リクエストのパッケージ化は、キー・サーチ・パターン引数およびデータ・パターン引数の両方を有する組込み済みパターン・サーチ・リクエストをDCWが有するように、データ・パターン・サーチ標識およびデータ・パターン・サーチ引数をパッケージ化することを含む。特定の用途に応じて他のパターン・サーチ挙動がリクエストされてもよい。このようにして、移送モードDCWに組み込まれたパターン・サーチ・リクエストは、状況に適するように、様々な異なる挙動を示してもよい。
【0029】
本説明による移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの別の態様では、組込み済みパターン・サーチ・リクエストを有するDCWは、ストレージ・システムによって処理される。1つの実施形態では、ストレージ・システムによる処理は、DCWを受信することと、組込み済みキー・サーチ・パターン引数を使用して、組込み済みパターン・サーチ・リクエストによってリクエストされたパターン・サーチを実施することとを含む。
【0030】
本説明による移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストのさらに別の態様では、ストレージ・システムによる処理は、ストレージ・システムのためのチャネル・サブシステムにおけるDCW移送モード処理のためのデバイス・コマンド・ワード(DCW)を受信することを含み、DCWが、デバイス・コマンド・ワード(DCW)内のPFX/PFXRパラメータ内に組み込まれたパターン・サーチ・リクエスト、およびDCWに組み込まれた読み取り/書き込みチャネル・コマンド・ワード(CCW)を有する。1つの実施形態では、パターン・サーチ・リクエストは、組込み済みキー・サーチ・パターン引数をデバイス・コマンド・ワードにパッケージ化している。処理は、DCWのPFX/PFXRパラメータ内のロケート・レコード・エクステンデッド(LRE)パラメータによって識別されたスタート方向に、パターン・サーチ・リクエストによってリクエストされたパターン・サーチを実施することをさらに含む。組込み済みCCWの読み取り/書き込み動作は、組込み済みパターン・サーチ・リクエストの成功した処理によって提供されたスタート方向に実行される。
【図面の簡単な説明】
【0031】
【
図1】ストレージ環境のチャネル・サブシステムのための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの使用を用いたストレージ環境の実施形態の図である。
【
図2】ストレージ環境のチャネル・サブシステムのための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの使用を用いたストレージ環境の別の実施形態の図である。
【
図3】移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストを用いたI/Oリクエストのチェーンの実施形態の図である。
【
図4】移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエスト用のフォーマットの実施形態の図である。
【
図5】組込み済みパターン・サーチ・リクエストを有する受信された移送モード・コマンド・ワードを処理するための動作の実施形態の図である。
【
図6】組込み済みパターン・サーチ・リクエストを有するように移送モード・コマンド・ワードをパッケージ化するための動作の実施形態の図である。
【
図7】コンピュータ環境のチャネル・サブシステムのための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの使用を用いたコンピュータ環境の実施形態の図である。
【発明を実施するための形態】
【0032】
本実施形態の構成要素は、本明細書の図に全体的に記載および例証されるように、多種多様な異なる構成で配置およびデザインされてもよいことが容易に理解されよう。したがって、本実施形態の装置、システム、方法、およびコンピュータ・プログラム製品の実施形態の以下の詳細な説明は、図に提示されたように、特許請求されたような実施形態の範囲を限定することを意図するものではなく、選択された実施形態を表すものに過ぎない。
【0033】
例証される実施形態は、図面を参照することによって最も良く理解され、同様の部品は、全体を通して同様の数字で指定される。以下の説明は、例として意図されるに過ぎず、本明細書で特許請求されるような実施形態に一致したデバイス、システム、およびプロセスの特定の選択された実施形態を単純に示している。
【0034】
本説明によるチャネル・サブシステムのための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストは、コンピュータ技術への著しい改善をもたらす。例えば、ストレージ・サーバが、DCWに組み込まれたパターン・サーチ・リクエストを処理することによって、例えば、ストレージ・サーバは、ホストからのわずか1つのDCWに応答して、サーチおよび比較作業の全てまたは実質的に全てを行うことができる。1つの実施形態では、組込み済みパターン・サーチ・リクエストを有するDCWは、例えばDCWのチェーンの、第1の読み取り/書き込みDCWでもよい。
【0035】
比較すると、個々のコマンドがチャネル・サブシステムのコマンド・モードで伝送される既知の処理では、関心のあるレコードを繰り返し識別しようとするタスクは、ホスト、チャネル・サブシステム、およびストレージ・サーバの間で分散され、サーチが進むにつれて、数多くのハンドシェイク信号が行き来して伝送されることになる。このようなハンドシェイク信号は、そうでなければI/O処理のために使用されていたかもしれないチャネル・サブシステム帯域幅を占有するおそれがあり、システムの全体的な効率を低下させる。
【0036】
さらに、zHPFアーキテクチャ内のI/O処理は、成功した組込み済みパターン・サーチ・リクエストの関心のあるターゲット・レコードを、わずか1つのDCWに全て応答した、読み取り/書き込みI/O処理のための出発点として使用するために、さらに強化可能である。さらに、チェーンの最初またはその後のDCWのその後のコマンドの実行時に、ターゲット・レコードが見つかるとすぐに、レコードのいずれかおよび全てのフィールドがアクセスおよび利用可能になるように、方向ルールもゆるめられることが可能である。
【0037】
1つの実施形態では、zHPF互換アーキテクチャにおける既知のPFX/PFXR DCW処理は、レコードのセットの効率的なパターン・マッチングを可能にするために、キー・パターン・サーチ・オプションを追加するように変更される。上述のように、組込み済みパターン・サーチ・リクエストを提供するように変更されたzHPFアーキテクチャでは、パターン・サーチ・コマンドの既知のコマンド・モード処理に正常に関連付けられたチャネル・ハンドシェイキングの全てまたは実質的に全てが低減されることまたは取り除かれることが可能である。その上、サーチが成功裏に完了すると、既知のPFX/PFXR I/O処理が、成功したパターン・サーチによって提供された方向を使用して開始可能になる。一方、パターン・サーチが不成功になり、パターン・サーチのリクエストされた比較を満たすレコードを、サーチのリクエストされた範囲内で位置特定できなかった場合、DCWチェーンは、適切な意味でユニット・チェックされる(例えば、終結する)ことが可能である。
【0038】
本説明による移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの別の態様では、zHPFプロトコルと互換性のあるストレージ・システムのためのパターン・サーチ機能が、1つの実施形態において、DCWのチェーンの最初のPFX/PFXR DCW内の既存のフィールドに組み込まれてもよい。このようにして、既存の移送モード・チャネル・プログラムとの互換性が、既知のDCW I/O挙動を未変更または実質的に未変更のままにしつつ、実現されてもよい。1つの実施形態では、パターン・サーチ機能のパターン・サーチ挙動は、同じまたはその後のDCWに含まれる任意の読み取りまたは書き込み挙動の前に実行される。その結果、DCWにおけるリクエストされた成功したパターン・サーチによって達成された方向は、同じまたはその後のDCWにおけるリクエストされた読み取りまたは書き込み動作の実行のために利用されてもよい。1つの実施形態では、パターン・サーチの出発点は、LREパラメータのシーク/サーチ・フィールド内で定義されてもよく、DCWのデファイン・エクステント(DX)エクステント範囲によって指定されるように束縛制約されてもよい。
【0039】
本説明によるストレージ・システムのためのチャネル・サブシステムのための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの1つまたは複数の態様を組み入れ、使用する処理環境の1つの例が、
図1を参照しながら説明される。本開示による組込み済みパターン・サーチ・リクエストの態様は、当業者によって認識されるように、例えば、システム、方法、またはコンピュータ製品として具体化されてもよい。したがって、本開示の態様は、ソフトウェア態様(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)と、「モジュール」、「方法」または「システム」と全体的に全て呼ばれるハードウェア態様とを組み合わせた実施形態の形をとってもよい。さらに、本開示の態様は、コントローラ、マイクロコントローラ、またはコンピュータ処理ユニットを含むコンピュータ可読プログラム・コード/命令を具体化した1つまたは複数のコンピュータ可読媒体で具体化されたコンピュータ・プログラム製品の形をとる。
【0040】
この例では、処理環境100は、例えば、メイン・メモリ102、1つまたは複数の中央処理ユニット(CPU)104、ストレージ制御エレメント106、チャネル・サブシステム108、ストレージ・サーバなどの1つまたは複数の制御ユニット110、および、ストレージ・デバイスなどの1つまたは複数の入出力(I/O)デバイス112を含み、これらのそれぞれが下記で説明される。処理環境100の1つまたは複数の構成要素は、例えば、
図2を参照しながら説明されるように、本説明によるストレージ・システムのためのチャネル・サブシステムのための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの1つまたは複数の態様を組み入れ、使用するロジックを含んでもよい。
【0041】
メイン・メモリ102は、入力デバイス112から入力されたデータおよびプログラムを格納する。メイン・メモリ102は直接的にアドレス指定可能であり、中央処理ユニット104およびチャネル・サブシステム108によるデータの高速処理を提供する。
【0042】
中央処理ユニット104は、環境100の制御の中心である。中央処理ユニット104は、命令実行のための配列および処理機能、割込みアクション、タイミング機能、初期プログラム・ローディング、ならびに他の機械関係機能を含む。中央処理ユニット104は、双方向または一方向バスなどの接続114を介して、ストレージ制御エレメント106に連結される。
【0043】
ストレージ制御エレメント106は、バスなどの接続116を介してメイン・メモリ102に、接続114を介して中央処理ユニット104に、および、接続118を介してチャネル・サブシステム108に、連結される。ストレージ制御エレメント106は、例えば、CPU104およびチャネル・サブシステム108によって行われるリクエストのキューイングおよび実行を制御する。
【0044】
チャネル・サブシステム108は、上述のようにストレージ制御エレメント106に、および、シリアル・リンクなどの接続120を介して制御ユニットのそれぞれに、連結される。チャネル・サブシステム108は、入出力デバイス112とメイン・メモリ102との間の情報のフローを指図する。チャネル・サブシステム108は、入出力デバイスと直接的に通信するタスクを中央処理ユニットから取り除き、データ処理が入出力処理と同時に進むのを可能にする。チャネル・サブシステムは、入出力デバイス112との間の情報のフローを管理する際に、1つまたは複数のチャネル経路122を通信リンクとして使用する。入出力処理の一部として、チャネル・サブシステム108はまた、チャネル経路可用性をテストし、利用可能なチャネル経路を選択し、入出力デバイスを用いた動作の実行を開始する、経路管理機能を実施する。
【0045】
各チャネル経路122は、チャネル124(チャネルは、
図1に示されたように、1つの例では、チャネル・サブシステム内に置かれる)、1つまたは複数の制御ユニット110、および1つまたは複数の接続120を含む。別の例では、チャネル経路の一部として、1つまたは複数の動的スイッチを有することも可能である。動的スイッチは、チャネルおよび制御ユニットに連結され、スイッチに接続されたいずれか2つのリンクを物理的に相互接続する能力を提供する。
【0046】
サブチャネル(図示せず)もチャネル・サブシステム108内に置かれる。1つのサブチャネルは、チャネル・サブシステムを通じてプログラムにアクセス可能な入出力デバイス毎に提供され、入出力デバイス毎に専用のものである。サブチャネル(例えば、テーブルなどのデータ構造)は、デバイスの論理的外見をプログラムに提供する。各サブチャネルは、関連付けられた入出力デバイス112に関する情報、およびチャネル・サブシステム108への入出力デバイス112の接続を提供する。サブチャネルはまた、入出力動作に関する情報、および関連付けられた入出力デバイスを伴う他の機能を提供する。サブチャネルは、関連付けられた入出力デバイス112についての情報をチャネル・サブシステム108が中央処理ユニット104に提供する手段であり、中央処理ユニット104は、入出力命令を実行することによってこの情報を手に入れる。
【0047】
チャネル・サブシステム108は、1つまたは複数の制御ユニット110に連結される。各制御ユニット(ストレージ・サーバとも呼ばれる)110は、1つまたは複数の入出力デバイスを動作および制御することと、共通機能の使用を通じて、各入出力またはストレージ・デバイス112の特性を、チャネルによって提供されるリンク・インターフェースに適合させることとを行うためのロジックを提供する。共通機能は、入出力動作の実行と、入出力デバイスおよび制御ユニットのステータスに関する指示と、チャネル経路を介したデータ転送のタイミングの制御と、特定のレベルの入出力デバイス制御とを提供する。
【0048】
各制御ユニット110は、接続126(例えば、バス)を介して1つまたは複数の入出力デバイス112に接続される。入出力デバイス112は、情報を受信するか、メイン・メモリ102または他のメモリあるいはその両方に情報を格納する。入出力デバイスの例は、いくつか挙げると、カード・リーダおよびパンチ、磁気テープ・ユニット、ダイレクト・アクセス・ストレージ・デバイス、ディスプレイ、キーボード、プリンタ、ポインティング・デバイス、テレプロセッシング・デバイス、通信コントローラ、ならびにセンサ・ベースの機器を含む。
【0049】
処理環境の上記の構成要素のうちの1つまたは複数は、「IBM(R)z/Architecture Principles of Operation」、出版番号SA22-7832-04、第5版、2005年9月、1995年10月24日に発行されたCormierら「System For Transferring Data Between I/O Devices And Main Or Expanded Storage Under Dynamic Control Of Independent Indirect Address Words (IDAWS)」という題の米国特許第5,461,721号にさらに記載されている。IBMは、米国ニューヨーク州アーモンクのInternational Business Machines Corporationの登録商標である。本明細書で使用される他の名前が、International Business Machines Corporationまたは他の会社の登録商標、商標、または製品名の場合もある。
【0050】
図2は、ホスト200を有し、1次制御ユニット(
図1)が
図2の1次ストレージ・サーバ202aとして指定され、2次制御ユニットがストレージ・サーバ202bとして指定され、これらがネットワーク204を介して通信する、ミラー・コピーまたは単一コピーのストレージ環境の実施形態を示している。ストレージ・サーバ202a、202bはそれぞれ、プロセッサ206a、206bと、ホスト200からの書き込みリクエストを管理する入出力(I/O)マネージャ210a、210b、およびキャッシュ212a、212bを有するシステム・メモリ208a、208bと、不揮発性ストレージ・デバイス(NVS)214a、214bとを含む。
【0051】
本説明による組込み済みパターン・サーチ・リクエストを用いるストレージ・システムの1つの態様によれば、I/Oマネージャ210a、210bはそれぞれ、チャネル・サブシステム108(
図1)のための移送モード・コマンド・ワードに組み込まれたパターン・サーチ・リクエストを処理するパターン・サーチ機能216a、216bをそれぞれ含む。ソフトウェアがメモリ208a、208bに常駐しているように描写されているが、ストレージ・システムにおけるチャネルのためのデバイス・コマンド・ワードに組み込まれたパターン・サーチ・リクエストを処理するためのパターン・サーチ機能のためのロジックは、様々な技術を使用して実行されてもよい。したがって、パターン・サーチ機能216a、216bは、ハードウェア、ソフトウェア、およびファームウェアのうちの1つまたは複数を用いて単独でまたは組み合わせて実行されてもよい。
【0052】
キャッシュ212a、212b内の書き込みデータは、同じサーバ202a、202bのNVS214a、214bにそれぞれバックアップされてもよい。代替として、1つのストレージ・サーバ202a、202bのキャッシュ212a、212bは、書き込みを他方のストレージ・サーバ202b、202aのNVS214b、214aにそれぞれバックアップしてもよい。
図2に1次ストレージ112aとして指定されたI/Oデバイス112a(
図1)は、1次ストレージ・サーバ202aに連結され、2次ストレージ112bは、2次ストレージ・サーバ202bに連結される。I/Oマネージャ210a、210bは、接続されたストレージ112a、112b内のデータを対象としたホスト200からのI/Oリクエストを管理する。
【0053】
ホスト200は、プロセッサ104(
図1)、システム・メモリ102(
図1)、およびオペレーティング・システム224を含み、オペレーティング・システム224は、並べられた読み取り/書き込みリクエストの読み取り/書き込みリクエスト・チェーンを生成して、ネットワーク204内のホスト200または他のシステムで実行するアプリケーション228からのI/Oリクエストを処理し、I/Oリクエストをホスト200に投入するための、I/Oリクエスト・チェーン・アプリケーション・プログラミング・インターフェース(API:Application Programming Interface)226を含む。本説明の1つの態様では、API226は、ストレージ・システムにおけるチャネルのためのデバイス・コマンド・ワードにパターン・サーチ・リクエストを組み込むためのロジック230を含む。
【0054】
ソフトウェアがメモリ102に常駐しているように描写されているが、ストレージ・システムにおけるチャネルのためのデバイス・コマンド・ワードに組込み済みパターン・サーチ・リクエストのためのロジックを含むAPI226のためのロジックは、様々な技術を使用して実行されてもよい。したがって、API226は、ハードウェア、ソフトウェア、およびファームウェアのうちの1つまたは複数を用いて単独でまたは組み合わせて実行されてもよい。
【0055】
1つの実施形態では、ストレージ・サーバ202a、202bは、2次ストレージ・サーバ202bへのホスト200の書き込みを、2次ストレージ112bへの書き込みにミラーリング/同期するための、コピー・サービス218a、218bを含む。ストレージ・サーバ202aおよび202bは、International Business Machines Corporationの(「IBM」)DS8000(R)ストレージ・システムなどの、接続されたストレージ・デバイスへのアクセスを管理するのに適切なエンタープライズ・ストレージ・サーバを備えてもよい。(DS8000は、世界中の国におけるIBMの登録商標である)。ホスト200のオペレーティング・システム224は、International Business Machines Corporation(「IBM」)からのZシステム・オペレーティング・システム(Z/OS(R))などのオペレーティング・システム、または当技術分野で知られた他のオペレーティング・システムを含んでもよい。(Z/OSは、世界中でIBMの登録商標である)。
【0056】
ネットワーク204は、ストレージ・エリア・ネットワーク(SAN)、ローカル・エリア・ネットワーク(LAN)、イントラネット、インターネット、ワイド・エリア・ネットワーク(WAN)、ピアツーピア・ネットワーク、ワイヤレス・ネットワーク、アービトレート型ループ・ネットワーク等を備えてもよい。本実施形態では、ネットワーク204は、コネクタ118(
図1)、チャネル・サブシステム108(
図1)、ならびに、関連付けられたチャネル経路120(
図1)およびコネクタ120を含む。
【0057】
ストレージ・デバイス112a、112bはそれぞれ、1つまたは複数のストレージ・デバイス、または、単純ディスク束(JBOD)、ダイレクト・アクセス・ストレージ・デバイス(DASD)、独立ディスクの冗長アレイ(RAID)アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ等として構成されたストレージ・デバイスのアレイを備えてもよい。ストレージ112a、112bを備えるストレージ・デバイスは、ハードディスク・ドライブ、(ソリッド・ステート電子機器、EEPROM(電気的消去可能プログラマブル・リード・オンリ・メモリ)、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ(RAM)ドライブ、ストレージ・クラス・メモリ(SCM)等を備える)ソリッド・ステート・ストレージ・デバイス(SSD)、相変化メモリ(PCM)、抵抗変化型メモリ(RRAM)、スピン・トランスファ・トルク・メモリ(STM-RAM)、コンダクティブ・ブリッジングRAM(CBRAM)、磁気ハードディスク・ドライブ、光ディスク、テープ等を備えてもよい。サーバ、ストレージ、アクティブおよび非アクティブ・コピー関係などの要素の特定の数の例が示されているが、任意の数のこれらの構成要素があってもよい。
【0058】
1つの実施形態では、ホスト200のオペレーティング・システム224は、チャネル・サブシステムを含んでもよく、チャネル・サブシステムは、ボリュームが構成されるサーバ202aおよび基礎をなすストレージ112aにアクセスするのに必要な情報を提供するサブチャネルを有する。ストレージ・サーバ202a、202b、I/Oマネージャ210a、210bは、基礎をなすボリュームのソフトウェア表現を提供するユニット制御ブロック(UCB)を含み、UCBによってアドレス指定されたボリュームを含むデバイスにどのようにアクセスするべきかについての情報を有するサブチャネルを指し示してもよい。
【0059】
図3は、本説明による組込み済みパターン・サーチ・リクエスト302を有するI/Oリクエスト・チェーン300の実施形態を示している。チェーン300は、オペレーティング・システム224内で実行するI/Oリクエスト・チェーンAPI226(
図2)、または別の接続されたホスト・システムによって生み出される。本実施形態では、チェーン300は、パターン・サーチ・リクエスト302およびさらに一連の書き込みリクエスト304
1、304
2...304
nの両方を含み、一連の書き込みリクエストは、パターン・サーチ・リクエスト302によってリクエストされた成功したパターン・サーチの方向を使用して、ストレージ112a、112b内の不連続なロケーションにデータを書き込むことを指定してもよい。
【0060】
組込み済みパターン・サーチ・リクエスト302は、1つの実施形態において、DCWのパターン・サーチを行うための、サーチ・キー・オプションを追加する。DCWのパターン・サーチ・オプションは、zHPFアーキテクチャにおける移送モード・チャネルのための、PFX/PFXR DCW処理などの、以前に既知のデバイス・コマンド・ワード処理への変更を表す。追加されたパターン・サーチ・オプションは、本説明の1つの実施形態において、レコードのセットのための効率的なパターン・マッチングを提供する。例えば、本説明によるパターン・サーチをさらに実施するために、zHPFアーキテクチャで以前に採用されたものなどの、移送モード・チャネル処理を変更することによって、コマンド・モード・チャネル処理におけるサーチ・コマンドに以前に関連付けられたチャネル・ハンドシェイキングが低減または取り除かれることが可能になる。次いで、本説明による変更されたzHPF移送モード・チャネル処理でパターン・サーチが成功裏に完了すると、既知のPFX/PFXR処理は、次いで実施可能となるが、パターン・サーチの実行が成功した際に、追加されたパターン・サーチが提供した方向を使用して実施可能となる。追加されたパターン・サーチを満たすことができない場合、チェーンは、必要に応じて、ユニット・チェックされる(例えば、終結される)ことになる。
【0061】
例証の実施形態では、各書き込みリクエスト3041、3042...304nは、ストレージ112a、112b内のロケーションを指示してもよく、識別されたロケーションがストレージである動作タイプは、パターン・サーチ・リクエスト302に応答して実行された成功したサーチによって提供された初期方向に基づく。1つの実施形態では、各書き込みリクエスト3041、3042...304nは、ストレージ・ロケーションの範囲、またはトラックを識別する書き込みリクエスト・グループ、および識別された範囲への一連の書き込みトランザクションを含んでもよく、ストレージ・ロケーションは、パターン・サーチ・リクエスト302によってリクエストされた成功したパターン・サーチによって提供された初期方向に応じて識別される。
【0062】
1つの実装形態では、各書き込みリクエスト304iは、トラックの範囲またはグループを指定するロケート・レコード(LR)ドメイン306i、および、LRドメイン306iにおいて識別されたトラックを対象とした複数の書き込みトランザクション308iを含んでもよく、書き込みトランザクション308iは、これらが書き込まれたトラックの所定の順序、すなわち昇順に従って並べられ、ロケーションは、パターン・サーチ・リクエストの成功した実行によって提供された方向に応じて指定される。書き込みリクエスト・チェーン300内の連続した書き込みリクエスト3041、3042...304nは、トラックの非連続範囲またはセクションへの書き込みトランザクションを有してもよい。各ロケート・レコード・ドメイン306iは、トラックおよびトラック内のレコードを含むロケーションを、パターン・サーチ・リクエストの成功した実行によって提供された方向に応じて指定してもよい。さらに、転送することになるデータ長、および動作タイプが識別されてもよい。さらなる実施形態では、書き込みリクエスト3041、3042...304nの一部または全てが、単一の書き込みトランザクションを有してもよい。
【0063】
本説明の1つの態様では、zHPFプロトコルに適合するものなどの移送モード・チャネルに提供されたパターン・サーチ・リクエスト302は、デバイス・コマンド・ワード内の既存のフィールドを使用してDCWに組み込まれることが可能である。例えば、zHPFプロトコルの最初のPFX/PFXR DCWのフィールドが、同じDCWに含まれる任意の読み取りまたは書き込み挙動の前の指定の挙動を有するパターン・サーチを開始するために、パターン・サーチ・リクエスト302によって利用されてもよい。1つの実施形態では、既存のチャネル・プログラムとの互換性はまた、実質的に変化しない、以前から存在するI/O DCW挙動を利用することによって達成される。このようにして、同じまたはその後のDCWにおける読み取りまたは書き込みの実行の前にパターン・サーチを実施するためのメカニズムが提供される。1つの実施形態では、リクエストされたパターン・サーチは、LREパラメータ内のシーク/サーチ・フィールドによって定義された出発点からスタートし、デファイン・エクステント(DX)エクステント範囲によって束縛制約される。
【0064】
1つの実施形態では、I/OチェーンAPI226(
図2)は、デバイス・コマンド・ワード(DCW)内に書き込みリクエスト304
1、304
2...304nを生成してもよく、組込み済みパターン・サーチ・リクエスト302は、DCWコマンド・ワードの1つまたは複数のプレフィックス・パラメータ内に置かれる。各書き込みリクエスト・グループのロケート・レコード・ドメイン306
iおよび書き込みトランザクション308
iはまた、プレフィックス・パラメータに、またはコマンド・ワードのプレフィックス・パラメータに続くパラメータに、パッケージ化されてもよい。特定の実施形態では、DCWチェーンには、第1のロケート・レコードがあり、その後に、異なるロケーションに対する動作のためのトランケート済みの組込み済みロケート・レコードが続いてもよい。
【0065】
ロケート・レコードの実施形態では、ホスト・オペレーティング・システム224(
図2)は、ストレージ・サーバ202aへの書き込みリクエストの転送を管理するために、書き込みリクエスト304
1、304
2...304
nまたはロケート・レコードをホスト200におけるチャネル・サブシステムに転送する。チャネル・サブシステムは、ストレージ・サーバ202aと通信するタスクをホスト・オペレーティング・システム224から取り除いて、ホスト・オペレーティング・システム224がデータ処理を実施し、チャネル・サブシステムによってハンドリングされる入出力(I/O)処理と同時に実行できるように、ホスト200とストレージ・サーバ202aとの間の読み取りおよび書き込み動作のフローを指図する。チャネル・サブシステムは、チャネル経路を、ホスト200からストレージ・サーバ202aへの通信リンクとして使用および管理する。
【0066】
1つの実施形態では、I/Oリクエスト・チェーン300は、zHPF(移送モード)書き込みまたはチェーン(あるいはその両方)と共に使用されてもよい。さらなる実施形態では、I/Oリクエスト・チェーンは、異なる移送およびコマンド・プロトコルと共に使用されてもよい。
【0067】
FICONの実装形態では、書き込みリクエスト3041、3042...304nまたはロケート・レコード・ドメイン306iは、プレフィックス・コマンドにまとめられてもよく、ロケート・レコード306iパラメータは、チェーン内の直後に続く動作のドメインを記述する。zHPFの実装形態では、プレフィックスは、組み込まれたロケート・レコード・リストを有してもよく、これにより、組み込まれたロケート・レコード306iは、単一のDCW内で追加のドメインが指定されることを可能にする。FICONおよびzHPFの実装形態では、ロケート・レコード・ドメイン306iを含む各書き込みリクエスト3041、3042...304nは、ストレージ・ロケーションにおいて実施するように1つまたは複数の書き込み動作を指定し、ロケート・レコードは、多くの不連続ロケーションのための書き込み動作を指定し得る。各ロケート・レコード306iコマンドは、ロケーション、トラックおよびトラック内のレコードを含むサーチ引数、転送することになるデータ長、ならびに動作タイプを指定する。ロケート・レコード、およびチェーン内の関連付けられた書き込みは順次処理されてもよく、次のロケート・レコード・ドメインが処理される前に、1つのロケート・レコード・ドメインのための書き込み動作全てが完了するか、コミットされなければならない。
【0068】
上述のように、ロケート・レコード動作は、一般に、読み取りおよび書き込みシステム・コマンドと共に使用される。例えば、書き込みシステム・コマンドは、デファイン・エクステントおよびロケート・レコード・コマンドとチェーンにされてもよい。このようにして、単一のレコードがI/Oデバイスに書き込まれたとき、チャネル・サブシステムは、DCWチェーンを作成してI/Oデバイスのストレージ・サーバに送信する。DCWチェーンは、デファイン・エクステント、ロケート・レコード、および書き込みなどであり、この順に一緒にチェーンにされた、いくつかのDCWを含む。
【0069】
読み取りおよび書き込みシステム・コマンドの前にあるデファイン・エクステントおよびロケート・レコード・コマンドは、プレフィックス・コマンドと呼ばれる。プレフィックス・コマンドは、その後に、前に説明されたプレフィックス・パラメータが続く。
【0070】
図4は、パターン・サーチ・リクエスト302の1つの例を示しており、パターン・サーチ・リクエスト302は、例えばzHPFタイプDCWなど、移送モード・チャネル・デバイス・コマンド・ワードに組み込まれてもよい。1つの実施形態では、パターン・サーチ・リクエスト302は、パターン・サーチ・リクエスト・フラグ404用のフィールドを含む様々なフィールドを含む。本実施形態では、パターン・サーチ・リクエスト・フラグ404は、ストレージ・サーバによるパターン・サーチ機能の使用がホストによってリクエストされていることをストレージ・サーバに指示するために使用される、パターン・サーチ機能標識を含む。この例では、サーチ機能標識は、サーチ機能の使用がリクエストされているかどうかを指示するために、1つのビットの状態、すなわち、ロケート・レコード・エクステンデッド、バイト1、補助バイト、ビット6、によって表される。例証の実施形態では、セットされたときのサーチ機能標識は、ストレージ・サーバのサーチ機能によって実施されることになるキー・パターン・サーチが、ホストによってリクエストされていることを指示する。
【0071】
上述のように、本説明による組込み済みパターン・サーチ・リクエストの1つの態様では、パターン・サーチ・リクエスト302は、例えば、zHPFプロトコルの最初のPFX/PFXR DCW内のロケート・レコード・エクステンデッドのフィールドなど、既存のデバイス・コマンド・ワード・フィールドを使用して、DCWに含まれるリクエストされた読み取りまたは書き込み挙動の前にパターン・サーチ挙動を開始することができる。特定の用途に応じて、他のビットおよびフィールドがサーチ機能標識として使用されてもよいことが理解されている。1つの実施形態では、サーチ機能標識は、チェーンの最初のDCWに続くその後のLRE/LRER DCWにセットされないように、DCWのチェーンの第1のDCWにだけセットされるのが好ましい。
【0072】
図5は、ストレージ・サーバ202aのパターン・サーチ機能216a(
図2)の動作の例を示しており、パターン・サーチ機能216aは、チャネル・サブシステムを介してホストによって発行されたパターン・サーチ・リクエスト302(
図4)の受信に応答してパターン・サーチを実行する。本実施形態では、パターン・サーチ機能216aは、ブロック504~540を含む
図5の動作、および
図5の付随の説明を実施するように構成される。しかし、特定の用途に応じて、ストレージ・サーバ202aの他のロジックが動作を実施するように構成されてもよいことが理解されている。
【0073】
下記でより詳細に説明されるように、本説明の1つの態様によれば、サーチ機能216aは、リクエストされたサーチ・リクエスト302を実行する際に、チャネルからの読み取り/書き込みDCWでもよい第1のDCWの一部としてホストからチャネル・サブシステムによって中継されたわずか1つのリクエスト内の、パターン・サーチのサーチおよび比較作業の全てをストレージ・サーバ202aが行うことを可能にする。さらに、zHPFアーキテクチャは、成功したリクエストされたパターン・サーチの関心のあるレコード、すなわちターゲット・レコードを、例えば全てが単一のDCW内にあってもよい読み取りまたは書き込みあるいはその両方の動作のための出発点(方向)として使用するように、さらに最適化可能である。比較すると、以前の既知のストレージ・システムでは、パターン・サーチにおいて関心のあるレコードを繰り返し識別しようとするこのようなサーチおよび比較作業は、コマンド・モードで動作するチャネル・サブシステムを介してホストからストレージ・サーバへの一連の個々のCCWコマンドで実施され、パターン・サーチを達成するためにストレージ・サーバとホストとの間の数多くのハンドシェイク信号を典型的に要求する。
【0074】
移送モードで動作するチャネル経路120(
図1)を介したホスト200(
図2)からのデバイス・コマンド・ワード(DCW)の受信(ブロック504、
図5)に応答して、1次ストレージ・サーバ202a(
図2)のパターン・サーチ機能216a(
図2)は、フラグ・フィールド404(
図4)を含む受信されたDCWのフィールドをパースして(ブロック508)、パターン・サーチ機能標識が、受信されたDCWのフラグ・フィールド404にセットされているかどうかを決定する(ブロック512、
図5)。1つの実施形態では、パターン・サーチ・リクエスト302(
図4)は、受信されたDCWのPFX/PFXRパラメータに組み込まれる。サーチ機能標識がセットされていると決定されたことに応答して、パターン・サーチ機能216aは、リクエストされたパターン・サーチのためのリクエストされた特定のパターン・サーチ挙動を、パターン・サーチ・リクエスト302から識別する(ブロック516、
図5)。1つの実施形態では、パターン・サーチ・リクエスト302は、特定のサーチ挙動を定義するためのフラグ404(
図4)の追加のフラグとして、LREパラメータの拡張パラメータ部分の最初の2バイトを含む。例えば、これらの追加のフラグは、サーチ・フィールドおよびタイプ(すなわち、例えば、等しい、以上、より大きい)、成功後の方向、単一レコード・サーチまたは複数レコード・サーチ、ならびに単一トラック・サーチまたは複数トラック・サーチの指示を含んでもよい。したがって、前のCCW文字列からの既知のパターン・サーチ挙動は、本説明による組込み済みパターン・サーチ・リクエストを有するために変更されたDCWに適合されてもよい。特定の用途に応じて、様々な他のサーチ・フィールド、タイプおよびサーチ挙動が、フラグまたは他の標識を使用して定義されてもよいことが理解されている。
【0075】
例証の実施形態では、キー・パターン・サーチ用のサーチ引数408(
図4)は、パターン・サーチ・リクエスト302のフラグ404の2バイトに続くフィールドのうちの1つに置かれる。したがって、本実施形態では、エクステント・パラメータの長さは、フラグ404用に少なくとも2バイト、および次いで、さらに、キー・パターン・サーチ・リクエスト引数408の長さに及ぶ。
【0076】
特定の用途に応じて、移送モード・チャネルのためのデバイス・コマンド・ワードに組み込まれたパターン・サーチ・リクエストのために、他のフィールドおよびフォーマットが使用されてもよいことが理解されている。例えば、パターン・サーチ・リクエスト302は、下記で説明されるように、カウント・エリア・パターン・サーチまたはデータ・パターン・サーチ用のフィールドなど、他のパターン・サーチ引数用の他のパターン・サーチ標識およびフィールドをオプションとして含んでもよい。
【0077】
キー・パターン・サーチ用のサーチ機能標識がセットされた場合、例えば、ストレージ・サーバ202aのサーチ機能216aは、上記で論じられたキー・パターン・サーチ引数408などの適切なパターン・サーチ引数を識別し(ブロック520、
図5)、サーチ挙動フラグ404、および識別された1つまたは複数のサーチ引数によって指示されるように、パターン・サーチを実行する(ブロック520、
図5)。例証の実施形態では、ストレージ・サーバ202aのサーチ機能216aは、DCWのPFX/PFXRコマンド内のLREパラメータを使用して、出発点、すなわち、リクエストされたパターン・サーチを処理するための初期またはスタート方向である、CKDレコードを最初に決定する。サーチ・スタート・ポイントとして指定されたCKDレコードでスタートすることによって、サーチ機能は、リクエストされたパターン・サーチを実行する(ブロック520、
図5)、すなわち、パターン・サーチ・リクエスト302によって提供されたサーチ引数およびフラグ情報に基づいて関心のあるレコードを見つけようとする。1つの実施形態では、ストレージ・サーバ202aのサーチ機能216aは、同じDCWに組み込まれたいずれかのI/O動作を実行する前に、パターン・サーチ・リクエスト302を処理する。その代わりに、下記で説明されるように、リクエストされたパターン・サーチが、リクエストされたパターン・サーチを満たすターゲット・レコードを見つけるのに成功した場合、ターゲット・レコードのプレカウント・フィールドなどのフィールドが、ストレージまたはキャッシュへのデータの読み取りまたは書き込みのためのスタート方向またはスタートCKDレコードとして使用される。
【0078】
1つの実施形態では、サーチ機能216aがCKDレコードのカウント・エリアに向けられた場合、パターン・サーチは、同じレコードのキー・エリアに対して動作し、そうでない場合、サーチ機能216aは、トラック上の次のユーザ・データ・レコードのカウント・エリアに向けられ、パターン・サーチ・リクエスト302で提供されたパターン・サーチ・キー引数にマッチするキー・バイトを見つけようとするために、このレコードのキー・エリアに対して動作する。カウント・エリアが見つかる前に、エンド・オブ・トラックが検出された場合、サーチ機能216aは次のトラックに進み、カウント・エリア(レコード・ゼロ以外)が見つかるまで、またはエンド・オブ・シリンダ例外で動作が終結するまで、上述のように定義されたサーチ・エクステントでサーチを続けようとする。
【0079】
既知のCKDレコードでは、キー・エリア(KL:key area)の長さは、カウント・エリアのキー長フィールドで定義される。KLがゼロの場合、パターン・サーチは、1つの実施形態において、不成功であるとみなされ(ブロック524、
図5)、1つの実施形態において、サーチ機能216aによるパターン・キー・サーチは、それ以上続けられない。DCWによってリクエストされた不成功のパターン・キー・サーチは、リクエストしたホストに適切なステータス情報をレポートして終了する(ブロック528、
図5)。例えば、1つの実施形態では、Status Not as Requiredを有するCE/DE/UCなどのステータス情報がレポートされる。FICONの実施形態では、ストレージは、ゼロのKLを有するレコードのデータ・フィールドに向けられ、「CE/DE」のステータスがレポートされる。特定の用途に応じて、他のステータス情報が提供されてもよいことが理解されている。
【0080】
リクエスト302のパターン・キー・サーチ引数の長さが、検査されているレコードのKLより短い場合、パターン・キー・サーチ引数408は、検査されているキー・エリアからの等しいバイト数と比較される。そのレコードのKLが、パターン・キー・サーチ引数の長さより短い場合、そのレコードのキー・フィールドは、パターン・キー・サーチ引数からの等しいバイト数と比較される。
【0081】
1つの実施形態では、ホストによって提供されたパターン・サーチ・リクエスト302は、カウント・フィールド(ID)、キー・フィールド、またはデータ・フィールドのうちの1つまたは複数に対するパターン・サーチをリクエストしてもよい。サーチを実施する際、ストレージ・サーバのサーチ機能216aは、リクエスト302からのサーチ引数を転送し、ストレージ・デバイスまたはキャッシュから対応するカウント、キー、またはデータ・フィールドを読み取り、引数と読み取りフィールドとの論理比較演算を実施する。チャネル・サブシステムを介してホストによって提供されたリクエスト302は、例えば、読み取りフィールドと引数とがマッチすること、または読み取りフィールドが引数より大きい値を有することを、リクエストしてもよい。リクエストされたサーチの挙動を支配するように、パターン・サーチ・リクエスト302によって他のサーチ挙動が指定されてもよい。
【0082】
リクエストされたパターン・サーチは、リクエストされたパターンを有するレコードが成功裏に位置特定されるまで、またはサーチが、指定されたサーチ・エクステントの終わりに達して終結するまで、レコード毎にこの様式で続く。本説明によるDCWに組み込まれたパターン・サーチ・リクエストの1つの態様では、レコード毎にパターン・サーチが進むので、ホストとストレージ・サーバとの間のハンドシェイク信号が著しく低減されるか、取り除かれる。
【0083】
リクエストされたパターン・サーチが、指定されたサーチ・エクステント・エリア内で、リクエストされた比較を満たす読み取りフィールドを位置特定できなかった場合(ブロック524)、サーチ機能216aは、リクエストされた比較を満たすレコードをストレージ・サーバが見つけるのに失敗したことを指示するステータス情報を返す(ブロック528、
図5)。一方、ストレージ・サーバ202aのサーチ機能216aによるパターン・サーチの実行が成功したことに続いて、ストレージ・サーバ202aのI/Oマネージャ210aは、比較要件を満たした読み取りフィールドを有するレコードに向けられる(ブロック532、
図5)。サーチ・リクエスト302のサーチ挙動フラグ404は、1つの実施形態において、I/Oマネージャ210aが、レコード(プレカウント/HA)の始めに、またはキー・フィールド(キー)の後に向けられたかどうかを決定するために、サーチ機能216aによって使用される。
【0084】
本説明によるDCWに組み込まれたパターン・サーチ・リクエストの1つの態様では、追加のCCWも、読み取りまたは書き込みCCWなど、同じまたはその後のDCWに組み込まれてよい。したがって、ターゲット・レコードが位置特定され、そのターゲット・レコードによって方向が決定されると、DCWが、組み込まれた読み取りまたは書き込みCCWなどのI/O動作も含むと決定された場合(ブロック536、
図5)、LREパラメータ内の組込み済み読み取り/書き込みCCWは、ターゲット・レコードの方向ポイントに関連付けられたデータ・フィールドでスタートする読み取りまたは書き込みのために実行されてもよい(ブロック538、
図5)。リクエストされたパターン・サーチが成功裏に完了したこと、マッチしたレコードにおける方向、およびその方向からスタートするリクエストされたI/Oの実行が、リクエストしたホストにレポートされてよい(ブロック540、
図5)。パターン・サーチ・リクエスト302が組み込まれたDCWに読み取りまたは書き込みCCWがない場合、リクエストされたパターン・サーチが成功裏に完了したこと、およびマッチしたレコードにおける方向が、リクエストしたホストに同様にレポートされてもよい(ブロック540、
図5)。
【0085】
図6は、移送モードで動作するチャネル・サブシステムを介したストレージ・サーバへの伝送のために、パターン・サーチ・リクエスト302(
図4)をDCWにパッケージ化する、ホスト200のパターン・サーチ・リクエスト組込みロジック230(
図2)の動作の例を示している。本実施形態では、パターン・サーチ・リクエスト組込みロジック230は、ブロック604~624を含む
図6の動作および
図6の付随の説明を実施するように構成される。しかし、特定の用途に応じて、ホスト200またはチャネル・サブシステムの他のロジックが動作を実施するように構成されてもよいことが理解されている。
【0086】
この例では、パターン・サーチ・リクエスト組込みロジック230は、ストレージ・サーバによるパターン・サーチ機能の使用がホストによってリクエストされていることをストレージ・サーバに指示するために、上述のようなパターン・サーチ機能標識などのパターン・サーチ・キー・フラグを、移送モードで動作するチャネル・サブシステムを介したストレージ・サーバへの伝送のためにDCWにパッケージ化する。この例では、サーチ機能標識は、サーチ機能の使用がリクエストされているかどうかを指示するために、1ビットの状態、すなわち上述のように、ロケート・レコード・エクステンデッド、バイト1、補助バイト、ビット6によって表される。例証の実施形態では、セットされたときのビット6のサーチ機能標識は、ストレージ・サーバのサーチ機能によって実施されることになるキー・パターン・サーチがホストによってリクエストされたことを指示する。
【0087】
キー・パターン・サーチのためのサーチ引数408(
図4)が、パターン・キー・サーチのためのパターン・サーチ標識と共にパッケージ化される(ブロック604、
図6)。1つの実施形態では、サーチ引数408は、パターン・サーチ・リクエスト302のフラグ404の2バイトに続くフィールドのうちの1つに置かれる。したがって、本実施形態では、エクステント・パラメータの長さは、上述のように、フラグ404のための少なくとも2バイト、および次いで、さらにキー・パターン・サーチ・リクエスト引数408の長さに及ぶ。
【0088】
1つの実施形態では、キー・サーチ引数408は、パターン・サーチ・リクエスト302内に固定長を有してもよい。他の実施形態では、キー・サーチ引数408の長さは変動してもよい。このような実施形態では、パターン・サーチ・リクエスト302は、
図4に描写されたキー・サーチ・リクエスト引数長412のフィールドで指示されたように、キー・サーチ・リクエスト引数408の長さを定義する、拡張パラメータ内のフィールドをオプションとして含んでもよい。
【0089】
例えば、サーチ機能フラグ404(
図4)の2バイトは、その後に、キー・サーチ・リクエスト引数長412の1バイトが続き、さらにキー・サーチ・リクエスト引数408自体が続いてもよい。このような実施形態のレイアウトは、以下の通りである。
拡張パラメータ長は、以下に等しい長さを有する。
2バイト(フラグ)+1バイト(キー・サーチ引数長を定義する)+キー・サーチ引数自体の長さ(バイト)
1つの例の拡張パラメータは以下の通りでもよい。
フラグ(2バイト):
● サーチ・イコール
● 単一のレコード
● キー・サーチ標識
キー・サーチ引数長0x04
キー・サーチ引数0x00000000
したがって、この例の拡張パラメータ長は、7バイトの長さを有する。特定の用途に応じて、他の長さ、フォーマット、およびフィールドが使用されてもよいことが理解されている。
【0090】
移送モードで動作するチャネル・サブシステムのデバイス・コマンド・ワードに組み込まれたパターン・サーチ・リクエストを用いるストレージ・システムの別の態様では、組込み済みパターン・サーチ・リクエストのアーキテクチャは、例えば、CKDフォーマットのレコードのデータ・フィールドのパターン・サーチなど、キー・フィールドだけでなく同様に他のフィールドのパターン・サーチを提供するために、さらに拡大されてもよい。
【0091】
したがって、パターン・サーチ・リクエスト組込みロジック230(
図2)は、データ・フィールドを対象としたオプションのパターン・サーチ・リクエストを組み込むべきかどうかを決定する(ブロック608、
図6)。組み込む場合、パターン・サーチ・リクエスト組込みロジック230(
図2)は、パターン・データ・サーチのためのパターン・サーチ標識を、DCWのフラグ404にパッケージ化する(ブロック612、
図6)。また、データ・パターン・サーチのためのデータ・サーチ・リクエスト引数長パラメータ416およびデータ・サーチ・リクエスト引数420(
図4)が、この例のパターン・サーチ・リクエスト302にパッケージ化される。1つの実施形態では、データ・サーチ引数長パラメータ416およびデータ・サーチ・リクエスト引数420は、パターン・サーチ・リクエスト302のフラグ404の2バイトに続くフィールドのうちの1つまたは複数に置かれる。したがって、本実施形態では、エクステント・パラメータの長さは、フラグ404用の少なくとも2バイトに及び、さらに、キー・パターン・サーチ・パラメータ412、408、ならびにデータ・パターン・サーチ・パラメータ416および420の長さを拡張する。
【0092】
このような実施形態の1つの例のためのレイアウトは、以下の通りでもよい。
拡張パラメータ長は、以下に等しい長さを有する。
2バイト(フラグ)+1バイト(キー・サーチ引数長を定義する)+1バイト(データ・サーチ引数長を定義する)+キー・サーチ引数自体の長さ(バイト)+データ・サーチ引数自体の長さ(バイト)
この例の拡張パラメータは以下の通りでもよい。
フラグ(2バイト):
● サーチ・イコール
● 単一のレコード
● キー・サーチ標識
● データ・サーチ標識
キー・サーチ引数長0x04
データ・サーチ引数長0x04
キー・サーチ引数0x00000000
データ・サーチ引数0x00000000
したがって、この例の拡張パラメータ長は、12バイトの長さを有する。本実施形態は、様々なキーおよびデータ・パターン・サーチの引数のために異なるサイズを容易にする。キー・フィールドだけがパターン・サーチされることになる実施形態では、データ・サーチ引数パラメータは、拡張パラメータから除外されてもよい。特定の用途に応じて、他の長さ、フォーマット、およびフィールドが使用されてもよいことが理解されている。
【0093】
本説明による組込み済みパターン・サーチ・リクエストの別の態様では、パターン・サーチ・リクエスト組込みロジック230は、リクエストされたパターン・サーチが成功裏に終わったときに実行されることになる1つまたは複数のI/Oリクエストを、移送モードで動作するチャネル・サブシステムを介したストレージ・サーバへの伝送のために同じ(またはその後の)DCWにオプションとしてパッケージ化する。したがって、本実施形態では、パターン・サーチ・リクエスト組込みロジック230は、I/O動作が、組込み済みパターン・サーチ・リクエスト302を含む同じDCWにパッケージ化されるべきか、組込み済みパターン・サーチ・リクエスト302を用いるDCWのチェーンのその後のDCWにパッケージ化されるべきかを決定する(ブロック616、
図6)。その場合、パターン・サーチ・リクエスト組込みロジック230は、
図3と共に上述されたように、CCWの形の1つまたは複数のI/Oコマンドまたはリクエストを組み込む(ブロック620、
図6)。
【0094】
代替として、パターン・サーチ・リクエスト組込みロジック230が、I/O動作が組込み済みパターン・サーチ・リクエスト302を含む同じDCWにパッケージ化されるべきではないと決定した場合(ブロック616、
図6)、パターン・サーチ・リクエスト組込みロジック230は、
図3に関して上述されたようにCCWの形の1つまたは複数のI/Oコマンドまたはリクエストの組込みを迂回する(ブロック620、
図6)。DCWを対象とした既知のアーキテクチャでは、DCWがI/Oコマンド・タイプのCCWを含むことが要件である。しかし、本開示の本代替実施形態では、組込み済みパターン・サーチ・リクエストを有するが、組込み済みCCW読み取りコマンドまたは組込み済みCCW書き込みコマンドなどの組込み済みI/Oコマンドがない、別個のサーチ・タイプDCWが実装可能になる。1つの実施形態では、DCWのチェーンの別個のサーチ・タイプDCWは、チェーンの第1の読み取り/書き込みDCWの前の移送制御エリア(TCA)に置かれる。したがって、チェーンのその後に置かれた読み取り/書き込みDCWは、本実施形態における拡張パターン・サーチ挙動がないはずである。
【0095】
パッケージ化動作が完了すると、ホストは、ホストをストレージ・サーバに連結するチャネル・サブシステムを介してターゲット・ストレージ・デバイスを制御するストレージ・サーバに、完了したDCWまたはDCWのチェーンを発行する(ブロック624、
図6)。これに応答して、ストレージ・サーバは、リクエストされた1つまたは複数のパターン・サーチを実施し、上記で論じられたように、サーチが成功した場合、ターゲット・レコードに関連付けられた方向でスタートする(もしあれば)リクエストされたI/O動作を開始する。
【0096】
DCWに組み込まれたパターン・サーチ・リクエストを処理するストレージ・サーバは、例えば、ホストからのわずか1つのDCWに応答して、パターン・サーチのサーチおよび比較作業の全てまたは実質的に全てを行う能力のストレージ・サーバを提供することが上記からわかる。さらに、チャネル・サブシステムのコマンド・モードで伝送された個々のコマンドの既知の処理に関連付けられた数多くのハンドシェイク信号は、大きく低減されるか、取り除かれることが可能である。このようなパターン・サーチ・リクエストは、既知のプロトコルとの互換性を容易にするためにDCWの既存のフィールドを使用してDCWに組み込まれてもよい。さらに、zHPFアーキテクチャ内のI/O処理は、全てがわずか1つのDCWに応答して、読み取り/書き込みI/O処理のための出発点として、成功した組込み済みパターン・サーチ・リクエストの関心のあるターゲット・レコードを使用するために強化可能である。その上、チェーンの最初またはその後のDCWのその後のコマンドの実行時に、ターゲット・レコードが見つかると、レコードのいずれかおよび全てのフィールドがアクセスおよび利用可能になるように、方向ルールもゆるめられることが可能である。
【0097】
移送モード・デバイス・コマンド・ワードに組み込まれたパターン・サーチ・リクエストの実装形態の例が提供される。
【0098】
例1は、ストレージ・システムへのリクエストを処理するためのコンピュータ・プログラム製品であって、コンピュータ・プログラム製品が、プログラム命令を具体化したコンピュータ可読ストレージ媒体を備え、プログラム命令が、動作を引き起こすためにプロセッサによって実行可能であり、動作が、ストレージ・システムのためのチャネル・サブシステムにおけるDCW移送モード処理のためのデバイス・コマンド・ワード(DCW)にパターン・サーチ・リクエストをパッケージ化することを含み、パターン・サーチ・リクエストのパッケージ化が、キー・サーチ・パターン引数を有する組込み済みパターン・サーチ・リクエストをDCWが有するように、パターン・サーチ・リクエスト用のキー・サーチ・パターン引数をデバイス・コマンド・ワードにパッケージ化することを含む。
【0099】
例2では、例1および3~8の主題は、パターン・サーチ・リクエストに加えて、I/O動作を開始するための組込み済み入出力(I/O)動作コマンド、および組込み済みパターン・サーチ・リクエストを満たすレコードのプレカウント・フィールドでI/O動作をスタートさせることを指示するフラグをパッケージ化することをオプションとして含むことができ、I/O動作コマンドが、デバイス・コマンド・ワードに組み込まれた読み取りコマンドおよび書き込みコマンドのうちの少なくとも1つを含む。
【0100】
例3では、例1~2および4~8の主題は、パターン・サーチ・リクエストが、DCWのPFX/PFXRパラメータ内に組み込まれ、動作が、パターン・サーチ・リクエストに加えて、DCWに組み込まれた読み取り/書き込みチャネル・コマンド・ワード(CCW)をパッケージ化することをさらに含み、DCWのPFX/PFXRパラメータ内のロケート・レコード・エクステンデッド(LRE)パラメータが、組込み済みパターン・サーチ・リクエストの実行のためのスタート方向を提供し、組込み済みパターン・サーチ・リクエストの成功した処理が、組込み済みCCWの読み取り/書き込み動作の実行のためのスタート方向を提供することをオプションとして含むことができる。
【0101】
例4では、例1~3および5~8の主題は、パターン・サーチ・リクエストのパッケージ化が、zハイ・パフォーマンスFICON(zHPF)プロトコルで定義されたように、DCWのロケート・レコード・エクステンデッド(LRE)フィールドに、パターン・サーチ・リクエストおよびキー・サーチ・パターン引数をパッケージ化することを含むことをオプションとして含むことができる。
【0102】
例5では、例1~4および6~8の主題は、パターン・サーチ・リクエストのパッケージ化が、DCWのフィールドにパターン・サーチ・リクエスト・フラグをパッケージ化することを含み、フラグが、サーチ・フィールドおよびサーチ・タイプのうちの少なくとも1つを指示し、サーチ・タイプが、等しい、以上、およびより大きいのうちの少なくとも1つを含み、フラグが、成功後の方向、単一レコード・サーチおよび複数レコード・サーチのうちの少なくとも1つ、ならびに単一トラック・サーチおよび複数トラック・サーチのうちの少なくとも1つをさらに指示することをオプションとして含むことができる。
【0103】
例6では、例1~5および7~8の主題は、組込み済みパターン・サーチ・リクエストを有するDCWが、組込み済み読み取りコマンドおよび組込み済み書き込みコマンドのうちの少なくとも1つを有するDCWのチェーンのいずれかのDCWの前にあるように、組込み済みパターン・サーチ・リクエストを有するDCWが、DCWのチェーン内にあり、組込み済み読み取りコマンドがなく、組込み済み書き込みコマンドがないことをオプションとして含むことができる。
【0104】
例7では、例1~6および8の主題は、パターン・サーチ・リクエストのパッケージ化が、キー・パターン・サーチ引数およびデータ・パターン・サーチ引数の両方を有する組込み済みパターン・サーチ・リクエストをDCWが有するように、パターン・サーチ・リクエスト用のデータ・サーチ・パターン引数をパッケージ化することを含むことをオプションとして含むことができる。
【0105】
例8では、例1~7の主題は、パターン・サーチ・リクエストが、DCWのチェーンの最初のPFX/PFXRタイプのDCW内のフィールドに組み込まれることをオプションとして含むことができる。
【0106】
例9では、例1~8の主題は、DCWを受信することと、組込み済みキー・サーチ・パターン引数を使用して、組込み済みパターン・サーチ・リクエストによってリクエストされたパターン・サーチを実施することとを含む、ストレージ・システムによってDCWを処理することをオプションとして含むことができる。
【0107】
例10は、ストレージ・システムにおいてリクエストを処理するためのコンピュータ・プログラム製品であり、コンピュータ・プログラム製品が、プログラム命令を具体化したコンピュータ可読ストレージ媒体を備え、プログラム命令が、動作を引き起こすためにプロセッサによって実行可能であり、動作が、ストレージ・システムのためのチャネル・サブシステムにおけるDCW移送モード処理のためのデバイス・コマンド・ワード(DCW)を受信することであって、DCWが、デバイス・コマンド・ワード(DCW)内のPFX/PFXRパラメータ内に組み込まれたパターン・サーチ・リクエスト、およびDCWに組み込まれた読み取り/書き込みチャネル・コマンド・ワード(CCW)を有し、パターン・サーチ・リクエストが、組込み済みキー・サーチ・パターン引数をデバイス・コマンド・ワードにパッケージ化している、受信することと、DCWのPFX/PFXRパラメータ内のロケート・レコード・エクステンデッド(LRE)パラメータによって識別されたスタート方向に、パターン・サーチ・リクエストによってリクエストされたパターン・サーチを実施することと、組込み済みパターン・サーチ・リクエストの成功した処理によって提供されたスタート方向に、組込み済みCCWの読み取り/書き込み動作を実行することとを備える。
【0108】
例11は、例1から10に記載のような動作を実施するために、コンピュータ可読ストレージ媒体内のプログラム命令を実行するプロセッサを含むシステムを備える。
【0109】
例12は、例1から10に記載のような動作を実施するための方法を備える。
【0110】
i、k、m、およびnなど、本明細書で使用される参照文字は、要素の可変数の例を表すために本明細書で使用され、これらは、同じまたは異なる値を表すことができ、説明される様々な例において異なるまたは同じ要素と共に使用されるときに同じまたは異なる値を表すことができる。
【0111】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せである。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含んでもよい。
【0112】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および格納可能な有形デバイスであることが可能である。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せでもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令を記録したパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。本明細書で使用されるようなコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、本質的に一過性の信号であると解釈されるべきではない。
【0113】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといったネットワークを介して、外部コンピュータまたは外部ストレージ・デバイスに、ダウンロード可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてもよい。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0114】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Java(R)、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードでもよい。コンピュータ可読プログラム命令は、全面的にユーザのコンピュータ上で、または、部分的にユーザのコンピュータ上で、スタンド・アロンのソフトウェア・パッケージとして、あるいは、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラム可能論理回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化にすることによって、コンピュータ可読プログラム命令を実行してもよい。
【0115】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、ならびに流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行可能であることが理解されよう。
【0116】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するための手段を作り出すべく、機械を生み出すために汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実行する命令を含む製品を、命令を格納したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納されてもよく、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の様式で機能するように指図可能である。
【0117】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するべく、コンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能装置、または他のデバイスで一連の動作ステップを実施するために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされてもよい。
【0118】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図中の各ブロックは、指定の論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表してもよい。いくつかの代替実装形態では、ブロックに記された機能は、図に記された順序とは無関係に行われてもよい。例えば、連続して示された2つのブロックは実際には、実質的に同時に実行されてもよく、またはブロックは、時には、含まれる機能に応じて逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定の機能もしくは行為を行うか、または、専用ハードウェアとコンピュータ命令との組合せを実行する、専用ハードウェア・ベースのシステムによって実行可能であることも指摘されることになる。
【0119】
図1および
図2のコンピュータ構成要素は、CPU104、ストレージ制御エレメント106、チャネル・サブシステム108、制御ユニット110、ホスト200、およびストレージ・サーバ202a、202bを含み、
図7に示されたコンピュータ・システム702などの、1つまたは複数のコンピュータ・システムにおいて実行されてもよい。コンピュータ・システム/サーバ702は、コンピュータ・システムによって実行される、プログラム・モジュールなど、コンピュータ・システム実行可能命令の一般的なコンテキストで説明されてもよい。一般に、プログラム・モジュールは、特定のタスクを実施するか、特定の抽象データ型を実行する、ルーチン、プログラム、オブジェクト、構成要素、ロジック、データ構造などを含んでもよい。コンピュータ・システム/サーバ702は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実施される、分散型クラウド・コンピューティング環境で実践されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモート両方のコンピュータ・システム・ストレージ媒体に置かれてもよい。
【0120】
図7に示されているように、コンピュータ・システム/サーバ702は、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム/サーバ702の構成要素は、1つまたは複数のプロセッサまたは処理ユニット704、システム・メモリ706、および、システム・メモリ706を含む様々なシステム構成要素をプロセッサ704に連結するバス708を含んでもよいがこれらに限定されない。バス708は、バス構造のいくつかのタイプのいずれかのうちの1つまたは複数を表し、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む。例として、また限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロチャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスを含む。
【0121】
コンピュータ・システム/サーバ702は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ702によってアクセス可能な任意の利用可能な媒体でもよく、揮発性媒体および不揮発性媒体の両方、取外し可能媒体および取外し不能媒体の両方を含む。
【0122】
システム・メモリ706は、ランダム・アクセス・メモリ(RAM)710またはキャッシュ・メモリ712あるいはその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ702は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでもよい。例のみとして、ストレージ・システム713は、取外し不能な不揮発性磁気媒体(図示されていないが、典型的には「ハード・ドライブ」と呼ばれる)を読み書きするために提供可能である。図示されていないが、取外し可能な不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)を読み書きするための磁気ディスク・ドライブ、および、CD-ROM、DVD-ROM、または他の光媒体などの取外し可能な不揮発性の光ディスクを読み書きするための光ディスク・ドライブが提供されることが可能である。このような例では、それぞれが、1つまたは複数のデータ媒体インターフェースによってバス708に接続可能になる。下記でさらに描写および説明されるように、メモリ706は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでもよい。
【0123】
プログラム/ユーティリティ714は、プログラム・モジュール716のセット(少なくとも1つ)を有し、例として、また限定ではなく、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ706に格納されてもよい。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそのいくつかの組合せが、ネットワーキング環境の実装形態を含んでもよい。コンピュータ702の構成要素は、本明細書に記載のような本発明の実施形態の機能または方法あるいはその両方を全体的に実行するプログラム・モジュール716として実行されてもよい。
図1のシステムは、1つまたは複数のコンピュータ・システム702において実行されてもよく、これらが複数のコンピュータ・システム702で実行された場合、コンピュータ・システムは、ネットワークを介して通信することができる。
【0124】
コンピュータ・システム/サーバ702はまた、キーボード、ポインティング・デバイス、ディスプレイ724など、1つもしくは複数の外部デバイス718、ユーザがコンピュータ・システム/サーバ702と対話することを可能にする1つもしくは複数のデバイス、または、コンピュータ・システム/サーバ702が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)、あるいはその組合せと通信してもよい。このような通信は、入出力(I/O)インターフェース722を介して発生させることが可能である。さらに、コンピュータ・システム/サーバ702は、ネットワーク・アダプタ720を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せなど、1つまたは複数のネットワークと通信可能である。描写されたように、ネットワーク・アダプタ720は、バス708を介してコンピュータ・システム/サーバ702の他の構成要素と通信する。図示されていないが、他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方が、コンピュータ・システム/サーバ702と共に使用可能であることを理解されたい。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム等を含むがこれらに限定されない。
【0125】
用語「実施形態(an embodiment)」、「実施形態(embodiment)」、「実施形態(embodiments)」、「実施形態(the embodiment)」、「実施形態(the embodiments)」、「1つまたは複数の実施形態」、「いくつかの実施形態」、および「1つの実施形態」は、別途明確に指定されない限り、「本発明の1つまたは複数(全てではない)の実施形態」を意味する。
【0126】
用語「含む(including)」、「備える(comprising)」、「有する(having)」およびその変形形態は、別途明確に指定されない限り、「含むがこれらに限定されない」を意味する。
【0127】
項目の列挙されたリストは、別途明確に指定されない限り、項目のいずれかまたは全てが相互に排他的であることを示唆しない。
【0128】
用語「1つ(a)」、「1つ(an)」、および「前記(the)」は、別途明確に指定されない限り、「1つまたは複数」を意味する。
【0129】
互いに通信しているデバイスは、別途明確に指定されない限り、互いに連続的に通信している必要はない。さらに、互いに通信しているデバイスは、1つまたは複数の中間体を通じて直接的または間接的に通信してもよい。
【0130】
互いに通信しているいくつかの構成要素を用いた実施形態の説明は、このような全ての構成要素が必要であることを示唆しない。反対に、本発明の多種多様な可能な実施形態を示すために、様々なオプションの構成要素が記載されている。
【0131】
単一のデバイスまたは物品が本明細書で説明されるとき、単一のデバイス/物品の代わりに2つ以上のデバイス/物品(これらが協働してもしなくても)が使用されてもよいことが容易に明らかであろう。同様に、2つ以上のデバイスまたは物品が本明細書で説明される場合(これらが協働してもしなくても)、2つ以上のデバイスもしくは物品の代わりに単一のデバイス/物品が使用されてもよいこと、または、示された数のデバイスもしくはプログラムの代わりに異なる数のデバイス/物品が使用されてもよいことが容易に明らかであろう。デバイスの機能または特徴あるいはその両方は、代替として、このような機能/特徴を有するように明示的に記載されていない1つまたは複数の他のデバイスによって具体化されてもよい。したがって、本発明の他の実施形態は、デバイス自体を含む必要はない。
【0132】
本発明の様々な実施形態の前述の説明は、例証および説明のために提示されてきた。網羅的であること、または開示の精密な形に本発明を限定することを意図していない。上記の教示の観点から多くの変更形態および変形形態が可能である。本発明の範囲は、本詳細な説明によってではなく本明細書に添付の特許請求の範囲によって限定されることが意図されている。上記の明細書、例、およびデータは、本発明の構成物の製造および使用の完全な説明を提供する。本発明の思想および範囲から逸脱することなく、本発明の多くの実施形態が実施可能になるので、本発明は、以下に添付の特許請求の範囲にある。
【国際調査報告】