(57)【要約】【課題】キャッシュ内のトラックへの読み取りおよび書き込み要求を処理するために、キャッシュ内のトラックのためのキャッシュ制御ブロック内のトラック・フォーマット・コードを使用するための方法。【解決手段】トラック・フォーマット・テーブルはトラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付ける。トラック・フォーマット・テーブルが、キャッシュ内にステージされたトラックのトラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかに関する判定を行う。トラック・フォーマット・テーブル内のトラック・フォーマット・メタデータのためのトラック・フォーマット・テーブルからのトラック・フォーマット・コードが、ステージされたトラックのトラック・フォーマット・メタデータと一致するかどうかに関する判定を行う。トラック・フォーマット・テーブルが、一致するトラック・フォーマット・メタデータを有するときには、決定されたトラック・フォーマット・コードを含むキャッシュに追加されるトラックのためのキャッシュ制御ブロックを生成する。【選択図】図１
2020528624.tif 000002
【特許請求の範囲】
【請求項１】
ホストから、キャッシュ内にキャッシュされたストレージ内のトラックへの読み取りおよび書き込み要求を管理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、動作を遂行するために実行可能である、内部に組み込まれたコンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体を含み、前記動作が、
トラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付けるトラック・フォーマット・テーブルを維持することであって、前記トラック・フォーマット・メタデータの各々がトラック内のデータのレイアウトを指示する、前記維持することと、
トラックを前記ストレージから前記キャッシュにステージすることと、
前記キャッシュ内にステージされた前記トラックのためのトラック・フォーマット・メタデータを処理することと、
前記トラック・フォーマット・テーブルが、前記キャッシュにステージされた前記トラックの前記トラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかを判定することと、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有することに応じて、前記トラック・フォーマット・テーブルから、前記キャッシュ内にステージされた前記トラックの前記トラック・フォーマット・メタデータと一致する前記トラック・フォーマット・テーブル内の前記トラック・フォーマット・メタデータのためのトラック・フォーマット・コードを決定することと、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有するときには、前記決定されたトラック・フォーマット・コードを含む前記キャッシュに追加される前記トラックのためのキャッシュ制御ブロックを生成することと、
を含むコンピュータ・プログラム製品。
【請求項２】
前記動作が、
前記ホストに接続した第１のチャンネル上で前記ホストからターゲット・トラックへの読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックが前記キャッシュ内にあるかどうかを判定することと、
前記ターゲット・トラックが前記キャッシュ内にあると判定したことに応じて、前記ターゲット・トラックのための前記キャッシュ制御ブロックが前記トラック・フォーマット・テーブルからの有効なトラック・フォーマット・コードを含むかどうかを判定することと、
前記ターゲット・トラックが前記キャッシュ内にないと判定するか、または前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含まないと判定したことに応じて、前記読み取りまたは書き込み要求を失敗させることであって、前記読み取りまたは書き込み要求を前記失敗させることが、前記ホストに、前記ホストに接続した第２のチャンネル上で前記読み取りまたは書き込み要求を前記ターゲット・トラックへ再送信させる、前記失敗させることと、
をさらに含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項３】
前記第１のチャンネルが、前記第２のチャンネルよりも高速な、前記読み取りまたは書き込み要求の処理をもたらす、請求項２に記載のコンピュータ・プログラム製品。
【請求項４】
前記動作が、前記ターゲット・トラックが前記キャッシュ内にないときに前記ターゲット・トラックのための前記読み取りまたは書き込み要求を失敗させた後に、前記ホストに接続した第２のチャンネル上で前記ターゲット・トラックへの前記読み取りまたは書き込み要求を受信することをさらに含み、前記第２のチャンネル上で前記読み取りまたは書き込み要求を受信したことに応じて、前記ターゲット・トラックを前記キャッシュ内に前記ステージすること、前記トラック・フォーマット・メタデータを前記処理すること、前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有するかどうかを前記判定すること、前記トラック・フォーマット・コードを前記決定すること、および前記キャッシュ制御ブロックを前記生成することの前記動作のうちの少なくとも１つが遂行される、請求項２に記載のコンピュータ・プログラム製品。
【請求項５】
前記動作が、
無効なトラック・フォーマット・コードを含む前記キャッシュ制御ブロックを有する前記ターゲット・トラックのために前記ホストに接続した前記第２のチャンネル上で前記ターゲット・トラックへの前記読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックのための前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを有しないときに前記第２のチャンネル上で前記読み取りまたは書き込み要求を受信したことに応じて、
前記第２のチャンネル上で受信された前記読み取りまたは書き込み要求を処理するために、前記ターゲット・トラックのためのトラック・フォーマット・メタデータを読み取ること、ならびに
前記トラック・フォーマット・テーブルが、前記読み取られたトラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかを判定すること、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有することに応じて、前記トラック・フォーマット・テーブルから、前記一致するトラック・フォーマット・メタデータのためのトラック・フォーマット・コードを決定すること、ならびに
前記決定されたトラック・フォーマット・コードを有効なトラック・フォーマット・コードとして前記ターゲット・トラックのための前記キャッシュ制御ブロック内に含めること、
を遂行することと、
をさらに含む、請求項２に記載のコンピュータ・プログラム製品。
【請求項６】
前記トラック・フォーマット・テーブル内の前記トラック・フォーマット・メタデータが、トラック内のレコード数、ブロック・サイズ、前記トラック内のブロック数、前記レコードの各々のデータ長、および単位としてアトミックに読み取られるか、もしくは書き込まれるデータ量を指示する制御インターバル・サイズのうちの少なくとも１つを指示し、前記トラック・フォーマット・コードが、前記トラック・フォーマット・メタデータよりも少数のビットを有し、前記キャッシュ制御ブロックが、前記トラック・フォーマット・メタデータを記憶するために十分な利用可能空間を有しない、請求項１に記載のコンピュータ・プログラム製品。
【請求項７】
前記キャッシュ制御ブロックが、前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを指示する有効フラグを含み、前記有効フラグが、前記トラック・フォーマット・コードを前記キャッシュ制御ブロックに追加する際に有効に設定され、前記動作が、
前記キャッシュ内のトラックを更新するための書き込みを受信することであって、トラック・フォーマット・コードを含む、更新するべき前記トラックのためのキャッシュ制御ブロックが前記キャッシュ内に存在する、前記受信することと、
前記トラックに対する前記更新がトラック・フォーマットを変更するかどうかを判定することと、
前記トラックに対する前記更新が前記トラック・フォーマットを変更すると判定したことに応じて、前記有効フラグを、無効を指示するように設定することと、
をさらに含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項８】
前記動作が、前記トラックに対する前記更新が前記トラック・フォーマットを変更しないと判定したことに応じて、前記キャッシュ制御ブロック内の前記トラック・フォーマット・コードを使用し、前記トラック・フォーマット・テーブルから、前記キャッシュ内の前記トラックを更新するために使用するべき前記トラック・フォーマット・メタデータを決定することをさらに含む、請求項７に記載のコンピュータ・プログラム製品。
【請求項９】
前記キャッシュ制御ブロックが、前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを指示する有効フラグを含み、前記動作が、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有しないことに応じて、前記有効フラグを無効に設定することをさらに含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項１０】
前記キャッシュ制御ブロックが、前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを指示する有効フラグを含み、前記動作が、
有効フラグが、前記キャッシュ制御ブロック内に有効なトラック・フォーマット・コードが存在しないことを指示するように設定される際に、前記トラックが無効にされたこと、前記トラックがフルになっていないこと、前記トラックのフォーマットが不正規であること、および前記トラックのデータ長がキャッシングのためにサポートされていないことのうちの１つを指示する、前記キャッシュ制御ブロック内の無効理由ビットを設定することをさらに含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項１１】
ホストから、キャッシュ内にキャッシュされたストレージ内のトラックへの読み取りおよび書き込み要求を管理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、動作を遂行するために実行可能である、内部に組み込まれたコンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体を含み、前記動作が、
トラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付けるトラック・フォーマット・テーブルを維持することであって、前記トラック・フォーマット・メタデータの各々がトラック内のデータのレイアウトを指示する、前記維持することと、
前記キャッシュ内のトラックのためのキャッシュ制御ブロックを維持することであって、前記キャッシュ制御ブロックのうちの少なくとも１つのキャッシュ制御ブロックが、前記トラックのための前記トラック・フォーマット・メタデータを指示する前記トラック・フォーマット・テーブル内の前記トラック・フォーマット・コードのうちの１つを含む、前記維持することと、
前記ホストから前記キャッシュ内のターゲット・トラックへの読み取りまたは書き込み要求を受信するステップと、
前記ターゲット・トラックのための前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを判定することと、
前記キャッシュ制御ブロックが前記有効なトラック・フォーマット・コードを含むと判定したことに応じて、前記トラック・フォーマット・テーブルから前記有効なトラック・フォーマット・コードのための前記トラック・フォーマット・メタデータを決定することと、
前記決定されたトラック・フォーマット・メタデータを使用し、前記キャッシュ内の前記ターゲット・トラックへの前記読み取りまたは書き込み要求を処理することと、
を含むコンピュータ・プログラム製品。
【請求項１２】
前記受信するステップが、前記ホストに接続した第１のチャンネルおよび第２のチャンネルのうちの一方の上で前記ホストからの読み取りまたは書き込み要求を受信することを含み、前記動作が、
前記読み取りまたは書き込み要求が前記第１のチャンネル上で受信された時に、前記キャッシュ制御ブロックが前記有効なトラック・フォーマット・コードを含まないと判定したことに応じて、前記読み取りまたは書き込み要求を失敗させることをさらに含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記動作が、
前記ターゲット・トラックのための前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含まないと判定したことに応じて、前記ストレージから前記ターゲット・トラックのためのトラック・メタデータを読み取ることと、
前記ターゲット・トラックのための前記読み取られたトラック・メタデータからトラック・フォーマット・メタデータを決定することと、
前記トラック・フォーマット・テーブルが、前記決定されたトラック・フォーマット・メタデータのためのトラック・フォーマット・コードを含むかどうかを判定することと、
前記トラック・フォーマット・テーブルが、前記決定されたトラック・フォーマット・メタデータのためのトラック・フォーマット・コードを含むと判定したことに応じて、前記トラック・フォーマット・テーブルから決定された前記トラック・フォーマット・コードを前記キャッシュ制御ブロック内に含めることと、
をさらに含む、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１４】
ホストから、キャッシュ内にキャッシュされたストレージ内のトラックへの読み取りおよび書き込み要求を管理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、動作を遂行するために実行可能である、内部に組み込まれたコンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体を含み、前記動作が、
トラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付けるトラック・フォーマット・テーブルを維持することであって、前記トラック・フォーマット・メタデータの各々がトラック内のデータのレイアウトを指示する、前記維持することと、
前記ホストに接続した第１のチャンネルおよび第２のチャンネルのうちの一方の上で前記ホストから前記キャッシュ内のターゲット・トラックへの読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックのためのキャッシュ制御ブロックが前記トラック・フォーマット・テーブル内の有効なトラック・フォーマット・コードを含むかどうかを判定することと、
前記読み取りまたは書き込み要求が前記第１のチャンネル上で受信された時に、前記キャッシュ制御ブロックが前記有効なトラック・フォーマット・コードを含まないと判定したことに応じて、前記読み取りまたは書き込み要求を失敗させることと、
前記キャッシュ制御ブロックが前記有効なトラック・フォーマット・コードを含むと判定したことに応じて、前記トラック・フォーマット・テーブルから前記有効なトラック・フォーマット・コードのための前記トラック・フォーマット・メタデータを決定することと、
前記決定されたトラック・フォーマット・メタデータを使用し、前記キャッシュ内の前記ターゲット・トラックへの前記読み取りまたは書き込み要求を処理することと、
を含むコンピュータ・プログラム製品。
【請求項１５】
前記動作が、
前記読み取りまたは書き込み要求が前記第２のチャンネル上で受信された時に、前記ターゲット・トラックのための前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含まないと判定したことに応じて、前記ストレージから前記ターゲット・トラックのためのトラック・メタデータを読み取ることと、
前記ターゲット・トラックのための前記読み取られたトラック・メタデータからトラック・フォーマット・メタデータを決定することと、
前記トラック・フォーマット・テーブルが、前記決定されたトラック・フォーマット・メタデータのためのトラック・フォーマット・コードを含むかどうかを判定することと、
前記トラック・フォーマット・テーブルが、前記決定されたトラック・フォーマット・メタデータのためのトラック・フォーマット・コードを含むと判定したことに応じて、前記トラック・フォーマット・テーブルから決定された前記トラック・フォーマット・コードを前記キャッシュ制御ブロック内に含めることと、
をさらに含む、請求項１４に記載のコンピュータ・プログラム製品。
【請求項１６】
ホストから、ストレージ内のトラックへの読み取りおよび書き込み要求を管理するためのシステムであって、
プロセッサと、
前記ストレージからのトラックをキャッシュするためのキャッシュと、
動作を遂行するために実行可能である、内部に組み込まれたコンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体と、を備え、前記動作が、
トラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付けるトラック・フォーマット・テーブルを維持することであって、前記トラック・フォーマット・メタデータの各々がトラック内のデータのレイアウトを指示する、前記維持することと、
トラックを前記ストレージから前記キャッシュにステージすることと、
前記キャッシュ内にステージされた前記トラックのためのトラック・フォーマット・メタデータを処理することと、
前記トラック・フォーマット・テーブルが、前記キャッシュにステージされた前記トラックの前記トラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかを判定することと、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有することに応じて、前記トラック・フォーマット・テーブルから、前記キャッシュ内にステージされた前記トラックの前記トラック・フォーマット・メタデータと一致する前記トラック・フォーマット・テーブル内の前記トラック・フォーマット・メタデータのためのトラック・フォーマット・コードを決定することと、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有するときには、前記決定されたトラック・フォーマット・コードを含む前記キャッシュに追加される前記トラックのためのキャッシュ制御ブロックを生成することと、
を含むシステム。
【請求項１７】
前記動作が、
前記ホストに接続した第１のチャンネル上で前記ホストからターゲット・トラックへの読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックが前記キャッシュ内にあるかどうかを判定することと、
前記ターゲット・トラックが前記キャッシュ内にあると判定したことに応じて、前記ターゲット・トラックのための前記キャッシュ制御ブロックが前記トラック・フォーマット・テーブルからの有効なトラック・フォーマット・コードを含むかどうかを判定することと、
前記ターゲット・トラックが前記キャッシュ内にないと判定するか、または前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含まないと判定したことに応じて、前記読み取りまたは書き込み要求を失敗させることであって、前記読み取りまたは書き込み要求を前記失敗させることが、前記ホストに、前記ホストに接続した第２のチャンネル上で前記読み取りまたは書き込み要求を前記ターゲット・トラックへ再送信させる、前記失敗させることと、
をさらに含む、請求項１６に記載のシステム。
【請求項１８】
前記第１のチャンネルが、前記第２のチャンネルよりも高速な、前記読み取りまたは書き込み要求の処理をもたらす、請求項１７に記載のシステム。
【請求項１９】
前記動作が、前記ターゲット・トラックが前記キャッシュ内にないときに前記ターゲット・トラックのための前記読み取りまたは書き込み要求を失敗させた後に、前記ホストに接続した第２のチャンネル上で前記ターゲット・トラックへの前記読み取りまたは書き込み要求を受信することをさらに含み、前記第２のチャンネル上で前記読み取りまたは書き込み要求を受信したことに応じて、前記ターゲット・トラックを前記キャッシュ内に前記ステージすること、前記トラック・フォーマット・メタデータを前記処理すること、前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有するかどうかを前記判定すること、前記トラック・フォーマット・コードを前記決定すること、および前記キャッシュ制御ブロックを前記生成することの前記動作のうちの少なくとも１つが遂行される、請求項１７に記載のシステム。
【請求項２０】
前記動作が、
無効なトラック・フォーマット・コードを含む前記キャッシュ制御ブロックを有する前記ターゲット・トラックのための前記読み取りまたは書き込み要求を失敗させた後に、前記ホストに接続された前記第２のチャンネル上で前記ターゲット・トラックへの前記読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックのための前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを有しないときに前記第２のチャンネル上で前記読み取りまたは書き込み要求を受信したことに応じて、
前記第２のチャンネル上で受信された前記読み取りまたは書き込み要求を処理するために、前記ターゲット・トラックのためのトラック・フォーマット・メタデータを読み取ること、ならびに
前記トラック・フォーマット・テーブルが、前記読み取られたトラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかを判定すること、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有することに応じて、前記トラック・フォーマット・テーブルから、前記一致するトラック・フォーマット・メタデータのためのトラック・フォーマット・コードを決定すること、ならびに
前記決定されたトラック・フォーマット・コードを有効なトラック・フォーマット・コードとして前記ターゲット・トラックのための前記キャッシュ制御ブロック内に含めること、
を遂行することと、
をさらに含む、請求項１７に記載のシステム。
【請求項２１】
前記キャッシュ制御ブロックが、前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを指示する有効フラグを含み、前記有効フラグが、前記トラック・フォーマット・コードを前記キャッシュ制御ブロックに追加する際に有効に設定され、前記動作が、
前記キャッシュ内のトラックを更新するための書き込みを受信することであって、トラック・フォーマット・コードを含む、更新するべき前記トラックのためのキャッシュ制御ブロックが前記キャッシュ内に存在する、前記受信することと、
前記トラックに対する前記更新がトラック・フォーマットを変更するかどうかを判定することと、
前記トラックに対する前記更新が前記トラック・フォーマットを変更すると判定したことに応じて、前記有効フラグを、無効を指示するように設定することと、
をさらに含む、請求項１６に記載のシステム。
【請求項２２】
ホストから、キャッシュ内にキャッシュされたストレージ内のトラックへの読み取りおよび書き込み要求を管理するための方法であって、
トラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付けるトラック・フォーマット・テーブルを維持することであって、前記トラック・フォーマット・メタデータの各々がトラック内のデータのレイアウトを指示する、前記維持することと、
トラックを前記ストレージから前記キャッシュにステージすることと、
前記キャッシュ内にステージされた前記トラックのためのトラック・フォーマット・メタデータを処理することと、
前記トラック・フォーマット・テーブルが、前記キャッシュにステージされた前記トラックの前記トラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかを判定することと、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有することに応じて、前記トラック・フォーマット・テーブルから、前記キャッシュ内にステージされた前記トラックの前記トラック・フォーマット・メタデータと一致する前記トラック・フォーマット・テーブル内の前記トラック・フォーマット・メタデータのためのトラック・フォーマット・コードを決定することと、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有するときには、前記決定されたトラック・フォーマット・コードを含む前記キャッシュに追加される前記トラックのためのキャッシュ制御ブロックを生成することと、
を含む方法。
【請求項２３】
前記ホストに接続した第１のチャンネル上で前記ホストからターゲット・トラックへの読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックが前記キャッシュ内にあるかどうかを判定することと、
前記ターゲット・トラックが前記キャッシュ内にあると判定したことに応じて、前記ターゲット・トラックのための前記キャッシュ制御ブロックが前記トラック・フォーマット・テーブルからの有効なトラック・フォーマット・コードを含むかどうかを判定することと、
前記ターゲット・トラックが前記キャッシュ内にないと判定するか、または前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含まないと判定したことに応じて、前記読み取りまたは書き込み要求を失敗させることであって、前記読み取りまたは書き込み要求を前記失敗させることが、前記ホストに、前記ホストに接続した第２のチャンネル上で前記読み取りまたは書き込み要求を前記ターゲット・トラックへ再送信させる、前記失敗させることと、
をさらに含む、請求項２２に記載の方法。
【請求項２４】
前記ターゲット・トラックが前記キャッシュ内にないときに前記ターゲット・トラックのための前記読み取りまたは書き込み要求を失敗させた後に、前記ホストに接続した第２のチャンネル上で前記ターゲット・トラックへの前記読み取りまたは書き込み要求を受信することをさらに含み、前記第２のチャンネル上で前記読み取りまたは書き込み要求を受信したことに応じて、前記ターゲット・トラックを前記キャッシュ内に前記ステージすること、前記トラック・フォーマット・メタデータを前記処理すること、前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有するかどうかを前記判定すること、前記トラック・フォーマット・コードを前記決定すること、および前記キャッシュ制御ブロックを前記生成することの前記動作のうちの少なくとも１つが遂行される、請求項２３に記載の方法。
【請求項２５】
無効なトラック・フォーマット・コードを含む前記キャッシュ制御ブロックを有する前記ターゲット・トラックのための前記読み取りまたは書き込み要求を失敗させた後に、前記ホストに接続された前記第２のチャンネル上で前記ターゲット・トラックへの前記読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックのための前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを有しないときに前記第２のチャンネル上で前記読み取りまたは書き込み要求を受信したことに応じて、
前記第２のチャンネル上で受信された前記読み取りまたは書き込み要求を処理するために、前記ターゲット・トラックのためのトラック・フォーマット・メタデータを読み取ること、ならびに
前記トラック・フォーマット・テーブルが、前記読み取られたトラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかを判定すること、
前記トラック・フォーマット・テーブルが、前記一致するトラック・フォーマット・メタデータを有することに応じて、前記トラック・フォーマット・テーブルから、前記一致するトラック・フォーマット・メタデータのためのトラック・フォーマット・コードを決定すること、ならびに
前記決定されたトラック・フォーマット・コードを有効なトラック・フォーマット・コードとして前記ターゲット・トラックのための前記キャッシュ制御ブロック内に含めること、
を遂行することと、
をさらに含む、請求項２３に記載の方法。
【請求項２６】
前記キャッシュ制御ブロックが、前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを指示する有効フラグを含み、前記有効フラグが、前記トラック・フォーマット・コードを前記キャッシュ制御ブロックに追加する際に有効に設定され、前記動作が、
前記キャッシュ内のトラックを更新するための書き込みを受信することであって、トラック・フォーマット・コードを含む、更新するべき前記トラックのためのキャッシュ制御ブロックが前記キャッシュ内に存在する、前記受信することと、
前記トラックに対する前記更新がトラック・フォーマットを変更するかどうかを判定することと、
前記トラックに対する前記更新が前記トラック・フォーマットを変更すると判定したことに応じて、前記有効フラグを、無効を指示するように設定することと、
をさらに含む、請求項２２に記載の方法。
【請求項２７】
ホストから、キャッシュ内にキャッシュされたストレージ内のトラックへの読み取りおよび書き込み要求を管理するための方法であって、前記方法が、
トラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付けるトラック・フォーマット・テーブルを維持することであって、前記トラック・フォーマット・メタデータの各々がトラック内のデータのレイアウトを指示する、前記維持することと、
前記キャッシュ内のトラックのためのキャッシュ制御ブロックを維持することであって、前記キャッシュ制御ブロックのうちの少なくとも１つのキャッシュ制御ブロックが、前記トラックのための前記トラック・フォーマット・メタデータを指示する前記トラック・フォーマット・テーブル内の前記トラック・フォーマット・コードのうちの１つを含む、前記維持することと、
前記ホストから前記キャッシュ内のターゲット・トラックへの読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックのための前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを判定することと、
前記キャッシュ制御ブロックが前記有効なトラック・フォーマット・コードを含むと判定したことに応じて、前記トラック・フォーマット・テーブルから前記有効なトラック・フォーマット・コードのための前記トラック・フォーマット・メタデータを決定することと、
前記決定されたトラック・フォーマット・メタデータを使用し、前記キャッシュ内の前記ターゲット・トラックへの前記読み取りまたは書き込み要求を処理することと、
を含む方法。
【請求項２８】
ホストから、キャッシュ内にキャッシュされたストレージ内のトラックへの読み取りおよび書き込み要求を管理するためのシステムであって、前記システムが、
プロセッサと、
前記ストレージからのトラックをキャッシュするためのキャッシュと、
動作を遂行するために実行可能である、内部に組み込まれたコンピュータ可読プログラムコードを有するコンピュータ可読記憶媒体と、を備え、前記動作が、
トラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付けるトラック・フォーマット・テーブルを維持することであって、前記トラック・フォーマット・メタデータの各々がトラック内のデータのレイアウトを指示する、前記維持することと、
前記キャッシュ内のトラックのためのキャッシュ制御ブロックを維持することであって、前記キャッシュ制御ブロックのうちの少なくとも１つのキャッシュ制御ブロックが、前記トラックのための前記トラック・フォーマット・メタデータを指示する前記トラック・フォーマット・テーブル内の前記トラック・フォーマット・コードのうちの１つを含む、前記維持することと、
前記ホストから前記キャッシュ内のターゲット・トラックへの読み取りまたは書き込み要求を受信することと、
前記ターゲット・トラックのための前記キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを判定することと、
前記キャッシュ制御ブロックが前記有効なトラック・フォーマット・コードを含むと判定したことに応じて、前記トラック・フォーマット・テーブルから前記有効なトラック・フォーマット・コードのための前記トラック・フォーマット・メタデータを決定することと、
前記決定されたトラック・フォーマット・メタデータを使用し、前記キャッシュ内の前記ターゲット・トラックへの前記読み取りまたは書き込み要求を処理することと、
を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ内のトラックへの読み取りおよび書き込み要求を処理するために、キャッシュ内のトラックのためのキャッシュ制御ブロック内のトラック・フォーマット・コードを使用するためのコンピュータ・プログラム製品、システム、および方法に関する。
【背景技術】
【０００２】
ストレージ環境内では、ホスト・システムが、ネットワーク・アダプタを通じてネットワーク・チャンネルを介して、読み取り／書き込み要求を、接続された記憶システムへ通信し得る。データが記憶システムのキャッシュ内にある、すなわち、読み取りヒットの場合には、このとき、データはホスト・システムへ直ちに返され得る。これは、要求されたデータをホストＩ／Ｏ要求へ返す際の遅延を低減する。しかし、要求されたデータが記憶システムのキャッシュ内にない場合には、このとき、記憶システムが、返すべき要求されたデータをストレージから取り出すことを必要とする間に、大幅な待ち時間が認識され得る。さらに、ホスト読み取り要求を実行するスレッドまたはタスクは、ホスト・システムがさらなるＩ／Ｏ要求を処理することを可能にするために、コンテキスト切り替えを行われ、非アクティブ化されなければならなくなり得る。データが読み取り要求へ返されると、次に、タスクは再アクティブ化されなければならず、読み取り要求のための返されたデータの処理を可能にするために、タスクのためのデータがレジスタおよびプロセッサ・キャッシュに返されなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
当技術分野においては、キャッシュへのホスト読み取り／書き込み要求を処理するための改善された技法が必要とされている。本発明は、ホストから、キャッシュ内のトラックへの読み取りおよび書き込み要求を処理するために、キャッシュ内のトラックのためのキャッシュ制御ブロック内のトラック・フォーマット・コードを使用するためのコンピュータ・プログラム製品、システム、および方法が提供される。
【課題を解決するための手段】
【０００４】
第１の実施形態では、トラック・フォーマット・テーブルがトラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付け、トラック・フォーマット・メタデータの各々はトラック内のデータのレイアウトを指示する。トラックをストレージからキャッシュ内にステージし、キャッシュ内にステージされたトラックのためのトラック・フォーマット・メタデータを処理する。トラック・フォーマット・テーブルが、キャッシュにステージされたトラックのトラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかに関する判定を行う。トラック・フォーマット・テーブルが、一致するトラック・フォーマット・メタデータを有することに応じて、トラック・フォーマット・テーブル内のトラック・フォーマット・メタデータのためのトラック・フォーマット・テーブルからのトラック・フォーマット・コードが、キャッシュ内にステージされたトラックのトラック・フォーマット・メタデータと一致するかどうかに関する判定を行う。トラック・フォーマット・テーブルが、一致するトラック・フォーマット・メタデータを有するときには、決定されたトラック・フォーマット・コードを含むキャッシュに追加されるトラックのためのキャッシュ制御ブロックを生成する。
【０００５】
第１の実施形態によれば、キャッシュ内のトラックを処理する際に、トラック・フォーマット・テーブル内のトラック・フォーマット・コードのためのトラック・フォーマット・メタデータを探索することによってトラック・レイアウトおよびフォーマットを決定するべく使用するためのトラック・フォーマット・コードが、キャッシュ内のトラックのためのキャッシュ制御ブロックに追加される。これは、トラックのためのトラック・メタデータをストレージから読み取り、処理することを必要としない、キャッシュ内のトラックのためのトラック・フォーマット・メタデータへの高速なアクセスをもたらす。トラック・フォーマット・メタデータを決定するためにトラック・メタデータを読み取ることが読み取り／書き込み処理待ち時間のかなりの割合を占めるため、トラック・フォーマット・メタデータへのこの高速なアクセスは、読み取りおよび書き込み要求を処理するための待ち時間を大幅に低減する。
【０００６】
第２の実施形態では、第１の実施形態は、ホストに接続した第１のチャンネル上でホストからターゲット・トラックへの読み取りまたは書き込み要求を受信することを追加的に含み得る。ターゲット・トラックがキャッシュ内にあるかどうかに関する判定を行う。ターゲット・トラックがキャッシュ内にあると判定したことに応じて、ターゲット・トラックのためのキャッシュ制御ブロックがトラック・フォーマット・テーブルからの有効なトラック・フォーマット・コードを含むかどうかに関する判定を行う。ターゲット・トラックがキャッシュ内にないと判定するか、またはキャッシュ制御ブロックが有効なトラック・フォーマット・コードを含まないと判定したことに応じて、読み取りまたは書き込み要求を失敗させる。読み取りまたは書き込み要求を失敗させることは、ホストに、ホストに接続した第２のチャンネル上でターゲット・トラックへの読み取りまたは書き込み要求を再送信させる。
【０００７】
第２の実施形態によれば、要求がバス・インターフェース上で送信され、読み取り／書き込み要求のためのホスト・スレッドが、応答を待っている間に要求上でスピンしている場合など、読み取りまたは書き込み要求が、高速な応答時間を必要とするチャンネル上で受信された場合には、キャッシュ内のトラックのための有効なトラック・フォーマット・コードが存在しない場合には、要求を失敗させる。有効なトラック・フォーマット・コードが存在しない場合には、このとき、トラック・フォーマットを決定するためにトラック・メタデータにアクセスしなければならなくなるため、応答は高速アクセス・チャンネルのための時間必要条件を満足することができなくなる。しかし、有効なトラック・フォーマット・コードが存在する場合には、このとき、キャッシュ制御ブロック内のトラック・フォーマット・コードを使用してトラック・フォーマット・テーブルからトラック・フォーマット・メタデータを決定するための待ち時間はほとんどないことになるため、要求は高速チャンネルのためのタイミング必要条件以内に応答され得る。
【０００８】
第３の実施形態では、第２の実施形態は、第２のチャンネルよりも高速な、読み取りまたは書き込み要求の処理をもたらす第１のチャンネルを追加的に含み得る。
【０００９】
第３の実施形態によれば、トラック・フォーマット・テーブルは、トラックのためのトラック・フォーマット・メタデータを決定するべく使用するためのトラック・フォーマット・コードを提供することによって、高速チャンネルのための高速処理を可能にする。
【００１０】
第４の実施形態では、第２の実施形態は、ターゲット・トラックがキャッシュ内にないときにターゲット・トラックのための読み取りまたは書き込み要求を失敗させた後に、ホストに接続された第２のチャンネル上でターゲット・トラックへの読み取りまたは書き込み要求を受信することを追加的に含み得る。第２のチャンネル上で読み取りまたは書き込み要求を受信したことに応じて、ターゲット・トラックをキャッシュ内にステージすること、トラック・フォーマット・メタデータを処理すること、トラック・フォーマット・テーブルが、一致するトラック・フォーマット・メタデータを有するかどうかを判定すること、トラック・フォーマット・コードを決定すること、およびキャッシュ制御ブロックを生成することの動作のうちの少なくとも１つが遂行される。
【００１１】
第４の実施形態によれば、キャッシュ制御ブロック内にターゲット・トラックのための有効なトラック・フォーマット・コードが存在しないため、高速チャンネル上の要求が失敗させられた場合には、次に、要求はより低速の第２のチャンネル上で再送信される。第２のチャンネル上では要求応答のためにより長い時間が予想されるため、Ｉ／Ｏ要求を管理するホスト・スレッドはコンテキスト切り替えを行ったであろう。このような場合には、要求がより低速のチャンネル上で受信されると、次に、ターゲット・トラックのための有効なトラック・フォーマット・コードが存在しなければ、要求は処理されることになる。これは、ターゲット・トラックをキャッシュ内にステージすること、およびトラック・メタデータを読み取り、トラック・フォーマット・メタデータを決定することのうちの少なくとも１つを必要とすることになる。トラック・フォーマット・メタデータは、トラックに向けた将来の要求のための待ち時間を低減するべくキャッシュ制御ブロック内に含めるためのトラック・フォーマット・コードを決定するために使用され得る。
【００１２】
第５の実施形態では、第２の実施形態は、無効なトラック・フォーマット・コードを含むキャッシュ制御ブロックを有するターゲット・トラックのための読み取りまたは書き込み要求を失敗させた後に、ホストに接続された第２のチャンネル上でターゲット・トラックへの読み取りまたは書き込み要求を受信することを追加的に含み得る。ターゲット・トラックのためのキャッシュ制御ブロックが有効なトラック・フォーマット・コードを有しないとき、第２のチャンネル上で読み取りまたは書き込み要求を受信したことに応じて、ターゲット・トラックが第２のチャンネル上で受信された読み取りまたは書き込み要求を処理するために、トラック・フォーマット・メタデータを読み取る。トラック・フォーマット・テーブルが、読み取られたトラック・フォーマット・メタデータと一致するトラック・フォーマット・メタデータを有するかどうかに関する判定を行う。トラック・フォーマット・テーブルが、一致するトラック・フォーマット・メタデータを有することに応じて、トラック・フォーマット・テーブルから、一致するトラック・フォーマット・メタデータのためのトラック・フォーマット・コードの決定を行う。決定されたトラック・フォーマット・コードを有効なトラック・フォーマット・コードとしてターゲット・トラックのためのキャッシュ制御ブロック内に含める。
【００１３】
第５の実施形態によれば、より高速な第１のチャンネル上における要求を失敗させた後に、ターゲット・トラックのための要求がより低速の第２のチャンネル上で受信されると、次に、トラック・フォーマット・メタデータを読み取り、トラック・フォーマット・コードを決定し、将来の要求のためにトラック・メタデータをストレージから読み取ることを必要とすることなく、トラック・フォーマット・メタデータを直ちに決定することができるように、ターゲット・トラックへの将来の要求のために第２のチャンネル上における読み取り／書き込み要求の高速処理を可能にするためにキャッシュ制御ブロック内に含める。
【００１４】
第６の実施形態では、第１の実施形態は、キャッシュ制御ブロックが、キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかを指示する有効フラグを含むことを追加的に含み得る。有効フラグは、トラック・フォーマット・コードをキャッシュ制御ブロックに追加する際に有効に設定される。トラック・フォーマット・コードを含む、更新するべきトラックのためのキャッシュ制御ブロックがキャッシュ内に存在する時に、キャッシュ内のトラックを更新するための書き込みを受信する。トラックに対する更新がトラック・フォーマットを変更するかどうかに関する判定を行う。トラックに対する更新がトラック・フォーマットを変更すると判定したことに応じて、有効フラグを、無効を指示するように設定する。
【００１５】
第６の実施形態によれば、キャッシュ制御ブロック内のトラック・フォーマット・コードが有効であるかどうかを指示するための有効なトラック・フォーマット・コードが使用される。このフラグは、トラック・フォーマットが書き込み動作によって変更されると、無効に設定される。なぜなら、このような状況では、キャッシュ制御ブロック内のトラック・フォーマット・コードは、更新によって変更された、トラックのトラック・フォーマットをもはや正確に表現しないからである。有効なトラック・フォーマット・コードは、キャッシュ制御ブロックが、読み取りまたは書き込み要求を処理するために使用することができる有効なトラック・フォーマット・コードを含むかどうかについての高速な判定を可能にする情報を提供する。
【００１６】
第７の実施形態では、ホストから、キャッシュ内にキャッシュされたストレージ内のトラックへの読み取りおよび書き込み要求を管理するためのコンピュータ・プログラム製品、システムおよび方法が提供される。トラック・フォーマット・テーブルがトラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付け、トラック・フォーマット・メタデータの各々はトラック内のデータのレイアウトを指示する。キャッシュ内のトラックのためのキャッシュ制御ブロックにおいて、キャッシュ制御ブロックのうちの少なくとも１つのキャッシュ制御ブロックが、トラックのためのトラック・フォーマット・メタデータを指示するトラック・フォーマット・テーブル内のトラック・フォーマット・コードのうちの１つを含む。キャッシュ内でホストからターゲット・トラックへの読み取りまたは書き込み要求を受信する。ターゲット・トラックのためのキャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むかどうかに関する判定を行う。キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むと判定したことに応じて、トラック・フォーマット・テーブルから有効なトラック・フォーマット・コードのためのトラック・フォーマット・メタデータを決定する。決定されたトラック・フォーマット・メタデータを使用し、キャッシュ内のターゲット・トラックへの読み取りまたは書き込み要求を処理する。
【００１７】
第７の実施形態によれば、ターゲット・トラックのためのキャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むときには、次に、トラック・メタデータをストレージから読み取ることを必要とすることなく、ターゲット・トラックのためのトラック・フォーマット・メタデータをトラック・フォーマット・テーブルから直ちに決定することができる。トラック・フォーマット・テーブルのこの使用は、ターゲット・トラックへの読み取りおよび書き込み要求の処理における待ち時間を大幅に低減する。
【００１８】
第８の実施形態では、ホストから、キャッシュ内にキャッシュされたストレージ内のトラックへの読み取りおよび書き込み要求を管理するためのコンピュータ・プログラム製品、システムおよび方法が提供される。トラック・フォーマット・テーブルがトラック・フォーマット・コードをトラック・フォーマット・メタデータに関連付け、トラック・フォーマット・メタデータの各々はトラック内のデータのレイアウトを指示する。ホストに接続した第１のチャンネルおよび第２のチャンネルのうちの一方の上でホストからキャッシュ内のターゲット・トラックへの読み取りまたは書き込み要求を受信する。ターゲット・トラックのためのキャッシュ制御ブロックがトラック・フォーマット・テーブル内の有効なトラック・フォーマット・コードを含むかどうかに関する判定を行う。読み取りまたは書き込み要求が第１のチャンネル上で受信された時に、キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含まないと判定したことに応じて、読み取りまたは書き込み要求を失敗させる。キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含むと判定したことに応じて、トラック・フォーマット・テーブルから有効なトラック・フォーマット・コードのためのトラック・フォーマット・メタデータを決定する。決定されたトラック・フォーマット・メタデータを使用し、キャッシュ内のターゲット・トラックへの読み取りまたは書き込み要求を処理する。
【００１９】
第８の実施形態によれば、読み取り／書き込み要求が、高速処理を必要とするチャンネル上で受信された場合には、次に、ターゲット・トラックのためのキャッシュ制御ブロックがトラック・フォーマット・コードを含まない場合には、トラック・メタデータを読み取ることを必要とすることによって生じる待ち時間が、第１のチャンネル上の要求を要求時間以内に完了させないことになるため、要求を失敗させる。しかし、キャッシュ制御ブロックが有効なトラック・フォーマット・コードを含む場合には、次に、トラック・フォーマット・メタデータをトラック・フォーマット・テーブルから決定することができるときには、第１のチャンネルのための要求時間以内に応答を返すことができるため、第１のチャンネル上における要求を処理することができる。
【００２０】
次に、添付の図面を参照して本発明の諸実施形態を例としてのみ説明する。
【図面の簡単な説明】
【００２１】
【図１】ストレージ環境の一実施形態を示す図である。
【図２】トラック・フォーマット・テーブル項目の一実施形態を示す図である。
【図３】キャッシュ制御ブロックの一実施形態を示す図である。
【図４】キャッシュ内のトラックの最低使用頻度（Least Recently Used、ＬＲＵ）リストの一実施形態を示す図である。
【図５】バス・インターフェースなどの、第１のチャンネル上で受信された読み取り／書き込み要求を処理するための動作の一実施形態を示す図である。
【図６】ネットワークなどの、第２のチャンネル上で受信された読み取り／書き込み要求を処理するための動作の一実施形態を示す図である。
【図７】トラック・メタデータを閉じ、閉じられたトラック・メタデータのキャッシュ内のトラックのためのトラック・フォーマット・コードを決定するための動作の一実施形態を示す図である。
【図８】記載される諸実施形態に用いられるコンピュータ・アーキテクチャの一実施形態を示す図である。
【発明を実施するための形態】
【００２２】
ストレージ環境において、ホスト・システムは、最初に、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（Ｒ）（ＰＣＩｅ（Ｒ））インターフェースなどの、バス・インターフェースなどの、高速チャンネルを介して、読み取り／書き込み要求を、接続された記憶システムへ通信し得る。閾値時間以内に完了することを期待された高速チャンネルを介した読み取り／書き込み要求のために、ホスト・システムは、要求が完了するのを待ちつつ、読み取り／書き込み要求のためのアプリケーション・スレッドをスピン・ループ内に保持する。これによって、スレッドを非アクティブ化し、読み取り／書き込み要求への応答が受信された時の割り込みに応じてスレッドを再アクティブ化する、コンテキスト・スワップに関連付けられたプロセッサ時間が節約される。高速チャンネル上で送信された読み取り／書き込み要求のためのデータがキャッシュ内にない場合には、次に、記憶システムは読み取り／書き込み要求を失敗させ得、ホスト・システムは、ホスト・アダプタを経由してストレージ・エリア・ネットワークを介して同じ読み取り／書き込み要求を通信し得るが、これは、バス、例えば、ＰＣＩｅ（Ｒ）インターフェースを介してＩ／Ｏ要求を処理するよりも低速である。第２のチャンネルを介して読み取り／書き込み要求を通信することは、ホスト・システムが、読み取り／書き込み要求が完了するのを待っている間に、読み取り／書き込み要求に対処するタスクから別のタスクへのコンテキスト切り替えを遂行することを必要とする。コンテキスト切り替えは、タスクを実行しているプロセッサが、全てのレジスタならびにＬ１およびＬ２キャッシュを新しいタスクのためにクリアし、次に、新しいタスクを完了すると、コンテキスト切り替えを行われたタスクを再アクティブ化し、読み取り／書き込み要求が完了するのを待っている間にコンテキスト切り替えを行われたタスクのために状態データをレジスタならびにＬ１およびＬ２キャッシュに返すことを必要とするため、コストがかかる。
【００２３】
特定の読み取り／書き込み動作は、閾値時間以内に完了されることを必要とし、さもなければ、それらは失敗させられる。記憶システムは、トラックへの要求を処理するためにトラック・メタデータにアクセスしなければならないことになる。トラック・メタデータは、トラックへの読み取りおよび書き込みを遂行するために必要であるトラック内のデータのフォーマットおよびレコードのレイアウトに関する情報を提供する。しかし、ストレージからのトラック・メタデータの読み取りは、読み取り／書き込み要求の処理における待ち時間のかなりの部分を含む。説明される諸実施形態は、トラック・フォーマット・コードをキャッシュ内のトラックのためのキャッシュ制御ブロック内に含めることによって、キャッシュ動作待ち時間を低減するキャッシュ技術の改善をもたらす。このトラック・フォーマット・コードは、トラック・メタデータをストレージから読み取ることを必要としない、トラック・フォーマット・テーブルからトラック・フォーマットへの高速アクセスのために使用され得る。トラック・レイアウトを決定するためにトラック・メタデータをストレージ内のメタデータ・トラックから読み取る必要をなくすことによって、説明される諸実施形態は、トラック・フォーマット・コードを共通トラック・フォーマットのためのトラック・フォーマット情報に関連付ける、トラック・フォーマット・テーブルからのトラックのためのトラック・レイアウト情報にアクセスすることによって、閾値時間以内に完了されなければならない第１のチャンネル上における読み取り／書き込み要求が完了される可能性を高める。
【００２４】
説明される諸実施形態によれば、要求が閾値時間以内に完了されることを必要とするチャンネル上におけるターゲット・トラックへの読み取り／書き込み要求は、ターゲット・トラックのためのトラック・フォーマット・コードがターゲット・トラックのためのキャッシュ制御ブロック内にある場合に処理される。トラック・フォーマット・テーブルからのトラック・フォーマット・メタデータにアクセスするためにトラック・フォーマット・コードを使用することは、トラック・フォーマット・メタデータへのアクセスの待ち時間を低減し、読み取り／書き込み要求が時間閾値以内に完了することを可能にする。これは、ホスト・スレッドが、バス・インターフェース上で送信された読み取り／書き込み要求のための読み取り／書き込み要求タスク上でスピンしている時間を許容可能時間閾値以内にとどめる。しかし、ターゲット・トラックのためのキャッシュ制御ブロックが有効なトラック・フォーマット・コードを有しない場合には、次に、トラック・フォーマット・メタデータがストレージから取り出されなければならないとすれば、読み取り／書き込み要求が閾値時間以内に完了することができる見込みがないため、第１のチャンネル上における読み取り／書き込み要求は失敗させられる。第１のチャンネル上における読み取り／書き込み要求を失敗させることは、ホストに、読み取り／書き込み要求を第２のチャンネル上で再び送らせる。第２のチャンネル上における書き込み要求の処理は、読み取り／書き込み要求を処理し、トラック・フォーマット・コードをターゲット・トラックのためのキャッシュ制御ブロックに追加することを可能にするために、トラック・メタデータをストレージから読み込む。
【００２５】
図１は、ホスト１００が、ディスク・エンクロージャ１０６内の記憶デバイス１０４内に構成されたボリューム内のトラックにアクセスするための読み取りおよび書き込み要求を記憶システム１０２へ向けるストレージ環境の一実施形態を示す。ホスト１００は、１つまたは複数のプロセッサ・デバイスのプロセッサ複合体１０８、ならびにプロセッサ複合体１０８によって実行されるオペレーティング・システム１１１を含むメモリ１１０を含む。ホスト・オペレーティング・システム１１１は、記憶デバイス１０４内に構成されたトラックへの読み取りおよび書き込み要求を生成する。ホスト１００は、２つの異なるチャンネル上で読み取りおよび書き込み要求を通信するためのハードウェアを含む。第１のチャンネルは、バス１１２と、プロセッサ複合体１０８、メモリ・システム１１０を含む、バス１１２上の１つまたは複数のデバイスを接続するためのバス・スイッチ１１４と、外部バス・インターフェース・ケーブル１１８を通じてバス・インターフェースを記憶システム１０２へ拡張するためのバス・ホスト・アダプタ１１６とを含む、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（Ｒ）（ＰＣＩｅ（Ｒ））などの、バス・インターフェースである。ＥｘｐＥｔｈｅｒ（Ｒ）技術などを用いた、イーサネット（Ｒ）を通じたＰＣＩｅ（Ｒ）を可能にするための、分散ＰＣＩｅ（Ｒ）スイッチなどの、ＰＣＩｅ（Ｒ）ライザー・ケーブル（extender cable）またはコンポーネントを含む、バス・インターフェースを拡張するための追加のバス・インターフェース技術が利用されてもよい。ホスト１００および記憶システム１０２を接続するための第２のチャンネルは、ホスト１００および記憶システム１０２が追加的に通信する別個のネットワーク１２２に接続した、バス１１２に接続された、ネットワーク・ホスト・アダプタ１２０を使用する。バス・インターフェースを通じた第１のチャンネルは、ネットワーク・ホスト・アダプタ１２０を通じたネットワーク１２２のインターフェースよりも高速なアクセス・チャンネルを含み得る。
【００２６】
記憶システム１０２は、バス１２４ａ、１２４ｂと、バス１２４ａ、１２４ｂ上のエンドポイント・デバイスに接続するためのバス・スイッチ１２６と、第１のチャンネルを介したホスト１００へのバス・インターフェースを介した通信を可能にするべく外部バス・インターフェース・ケーブル１１８に接続するためのバス・ホスト・アダプタ１２８とを含む、バス・インターフェースを含む。記憶システム１０２は、バス・ホスト・アダプタ１２８、記憶デバイス１０４に接続するための１つまたは複数のデバイス・アダプタ１３２、ならびにネットワーク１２２およびホスト・システムに接続するための１つまたは複数のネットワーク・ホスト・アダプタ１３４を有する入力／出力ベイ１３０を含む。
【００２７】
記憶システム１０２は、１つまたは複数のプロセッサ・デバイスのプロセッサ複合体１３６と、接続されたホスト１００によってアクセスされるトラックをキャッシュするためのキャッシュ１４０を有するメモリ１３８とを含む。メモリ１３８はキャッシュ・マネージャ１４２およびストレージ・マネージャ１４４を含む。ストレージ・マネージャ１４４は、ストレージ１０４内のトラックのためのホスト１００および記憶システム１０２におけるプロセスからのアクセス要求を管理する。デバイス１３６、１３８、１２８、１３２、および１３４は、バス・レーン１２４ａ、１２４ｂおよびバス・スイッチ１２６において実施されたバス・インターフェースを介して接続する。
【００２８】
キャッシュ・マネージャ１４２は、アクセスされたトラックを、トラックへの将来の読み取りアクセスのためにキャッシュ１４０内に維持し、アクセスされたトラックが、ストレージ１０４から取り出さなければならない代わりに、より高速なアクセスのキャッシュ１４０から返されることを可能にする。さらに、キャッシュ１４０内のトラックは書き込みによって更新され得る。トラックは、ボリューム、論理デバイス等などの、トラックのより大きな集団の一部である、トラック、論理ブロック・アドレス（Logical Block Address、ＬＢＡ）等などの、ストレージ１０４内に構成される任意のデータ単位を含み得る。
【００２９】
キャッシュ・マネージャ１４２は、キャッシュ１４０内の読み取り（変更されない）および書き込み（変更される）トラックを管理するためのキャッシュ管理情報１４６をメモリ１３８内に維持する。キャッシュ管理情報１４６は、トラック内のデータのレイアウトおよびフォーマットの詳細を提供する共通トラック・フォーマット記述子のためのトラック・フォーマット・コードを有するトラック・フォーマット・テーブル２００、キャッシュ１４０内のトラックのインデックスを制御ブロック・ディレクトリ３００内のキャッシュ制御ブロックに提供するトラック・インデックス１４８、ならびにキャッシュ１４０内のトラックのための最低使用頻度（ＬＲＵ）リスト４００を含み得る。制御ブロック・ディレクトリ３００はキャッシュ制御ブロックを含み、キャッシュ１４０内のトラックごとに、キャッシュ１４０内のトラックに関するメタデータを提供する１つのキャッシュ制御ブロックが存在する。トラック・インデックス１４８はトラックを、キャッシュ１４０内のトラックに関する情報を提供するキャッシュ制御ブロックに関連付ける。キャッシュＬＲＵリスト４００がフルになっているか、または閾値レベルに達したと判定すると、ストレージ１０４からキャッシュ１４０内にステージするべきさらなるトラックのための場所をあけるべく、トラックがＬＲＵリスト４００からデモートされる。
【００３０】
特定の諸実施形態では、記憶デバイス１０４内のトラックにアクセスするために第１および第２のチャンネルを介して記憶システム１０２に接続する複数のホスト１００が存在し得る。このような場合には、記憶システム１０２は、各々の接続されたホスト１００のバス・インターフェース１１８に接続するための少なくとも１つのバス・ホスト・アダプタ１２８、およびホスト１００上のネットワーク・ホスト・アダプタ１２０に接続するための１つまたは複数のネットワーク・ホスト・アダプタ１３４を有するであろう。
【００３１】
一実施形態では、バス・インターフェース１１２、１１４、１１６、１１８、１２４ａ、１２４ｂ、１２６、および１２８は、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（Ｒ）（ＰＣＩｅ（Ｒ））バス・インターフェース技術を含み得る。代替的な諸実施形態では、バス・インターフェース１１２、１１４、１１６、１１８、１２４ａ、１２４ｂ、１２６、および１２８は、ＰＣＩｅ（Ｒ）以外の好適なバス・インターフェース技術を利用し得る。バス・ホスト・アダプタ１１６および１２８は、ＰＣＩｅ（Ｒ）ケーブル１１８に接続するためのインターフェースを提供するＰＣＩｅ（Ｒ）ホスト・アダプタを含み得る。ネットワーク１２２は、ストレージ・エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット等を含み得、ネットワーク・ホスト・アダプタ１２０、１３４は、ホスト１００と記憶システム１０２との間のネットワーク１２２の接続を提供する。
【００３２】
記憶システム１０２は、インターナショナル・ビジネス・マシーンズ・コーポレーション（Ｒ）（ＩＢＭ（Ｒ））ＤＳ８０００（Ｒ）およびＤＳ８８８０記憶システム、あるいは他のベンダからの記憶コントローラおよび記憶システムなどの、記憶システムを含み得る。（ＩＢＭおよびＤＳ８０００は、全世界におけるインターナショナル・ビジネス・マシーンズ・コーポレーション（Ｒ）の商標である）。ホスト・オペレーティング・システム１１１は、インターナショナル・ビジネス・マシーンズ・コーポレーション（Ｒ）（「ＩＢＭ（Ｒ）」）からのＺシステムズ・オペレーティング・システム（Z Systems Operating System、Ｚ／ＯＳ（Ｒ））、または当技術分野において知られている他のオペレーティング・システムなどのオペレーティング・システムを含み得る。（Ｚ／ＯＳは、全世界におけるＩＢＭ（Ｒ）の登録商標である）。
【００３３】
ディスク・エンクロージャ１０６内の記憶デバイス１０４は、磁気ハードディスク・ドライブ、ソリッド・ステート電子機器で構成されたソリッド・ステート記憶デバイス（ＳＳＤ）、ＥＥＰＲＯＭ（電気的消去可能プログラマブル・リード・オンリー・メモリ）、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）ドライブ、ストレージ・クラス・メモリ（storage-class memory、ＳＣＭ）等、相変化メモリ（PhaseChange Memory、ＰＣＭ）、抵抗変化型メモリ（resistive random access memory、ＲＲＡＭ（Ｒ））、スピン・トランスファ・トルク・メモリ（spin transfer torque memory、ＳＴＴ−ＲＡＭ）、導電性ブリッジＲＡＭ（conductive bridging RAM、ＣＢＲＡＭ）、磁気ハードディスク・ドライブ、光ディスク、テープ等などの、異なる種類またはクラスの記憶デバイスを含み得る。記憶空間内のボリュームは、単純ディスク束（Just a Bunch of Disk、ＪＢＯＤ）、直接アクセス記憶装置（Direct Access Storage Device、ＤＡＳＤ）、独立ディスク冗長アレイ（Redundant Array of Independent Disks、ＲＡＩＤ）のアレイ、仮想化デバイス等などの、デバイスのアレイからさらに構成され得る。さらに、ディスク・エンクロージャ１０６内の記憶デバイス１０４は、異なるベンダからの異種の記憶デバイス、および第２の種類の記憶デバイス、例えば、ＳＳＤよりも低速のデータ転送速度を有する、第１の種類の記憶デバイス、例えば、ハードディスク・ドライブなどの、異なる種類の記憶デバイスを含み得る。
【００３４】
図２は、トラック・フォーマット・コード２０２およびトラック・フォーマット・メタデータ２０４を含む、トラック・フォーマット・テーブル２００内のトラック・フォーマット・テーブル項目２００ｉの一実施形態を示す。特定の諸実施形態、カウント・キー・データ（Count Key Data、ＣＫＤ）トラックの諸実施形態では、トラック・フォーマット・メタデータ２０４は、トラック内のレコード数、ブロック・サイズ、トラック内のブロック数、レコードの各々のデータ長、および単位としてアトミックに読み取られるか、もしくは書き込まれるデータ量を指示する制御インターバル・サイズ、制御インターバル内のブロック数、および制御インターバルが２つのトラックに及ぶかどうか、ならびに他の情報を指示するトラック・フォーマット記述子（track format descriptor、ＴＦＤ）を含み得る。トラック・フォーマット・コード２０２は、トラック・フォーマット・テーブル２００内のインデックス項目２００ｉのインデックス値を含み得る。例えば、３２個のトラック・フォーマット・テーブル項目２００ｉが存在する場合には、このとき、トラック・フォーマット・コード２０２は、３２個の項目２００ｉの異なる可能な番号を参照するために５ビットを含み得る。
【００３５】
図３は、限定するものではないが、キャッシュ制御ブロック３００ｉのインデックス値などの、キャッシュ制御ブロック識別子３０２、ストレージ１０４内のトラックのトラックＩＤ３０４、キャッシュ制御ブロック３００ｉが指示されたキャッシュＬＲＵリスト３０６、トラックが指示されたＬＲＵリスト項目３０８、トラックがキャッシュ１４０に追加され、ＬＲＵリスト３０６上に指示された時間を指示するキャッシュ・タイムスタンプ３１０、トラックが変更されたかどうかを指示するダーティ・フラグなどの、キャッシュ１４０内に記憶されたトラックのために通例維持される追加のトラック・メタデータ３１２、キャッシュ制御ブロック３００ｉによって表現されるトラック３０４内のデータのレイアウトを記述するトラック・フォーマット・メタデータ２０４のトラック・フォーマット・コード２０２のうちの１つを含むトラック・フォーマット・コード３１４、トラック・フォーマット・コード３１４が有効であるのか、それとも無効であるのかを指示するトラック・フォーマット・コード有効フラグ３１６、およびトラック・フォーマット・コード有効フラグ３１６において指示されるとおり、トラック・フォーマット・コード有効フラグ３１６のコードが無効である理由を指示する無効理由３１８を含む、キャッシュ１４０内のトラックのうちの１つのためのキャッシュ制御ブロック３００ｉの一実施形態を示す。
【００３６】
図４は、キャッシュ１４０に一番最近追加されたか、またはキャッシュ１４０内で一番最近アクセスされたトラックを識別する最高使用頻度（most recently used、ＭＲＵ）端部４０２、ならびに最低使用頻度（ＬＲＵ）端部４０４であって、ＬＲＵ端部４０４において識別されたトラックが、キャッシュ１４０からデモートするために選択される、最低使用頻度（ＬＲＵ）端部４０４を有するものなどの、ＬＲＵリスト４００ｉの一実施形態を示す。ＭＲＵ端部４０２およびＬＲＵ端部４０４は、そのリスト４００内で指示されたトラックのための、それぞれ、一番最近追加されたトラック、およびキャッシュ１４０内に最も長くあるトラックの、トラックのためのトラック識別子アドレスまたはキャッシュ制御ブロック・インデックスなどの、トラック識別子を指し示す。
【００３７】
図５は、バス・ホスト・アダプタ１２８を経由したＰＣＩｅ（Ｒ）バス・インターフェースなどの、第１の高速チャンネル上で受信されたターゲット・トラックへの読み取り／書き込み要求を処理するために、キャッシュ・マネージャ１４２およびストレージ・マネージャ１４４によって遂行される動作の一実施形態を示す。（ブロック５００において）バス・ホスト・アダプタ１２８において読み取り／書き込み要求を受信すると、（ブロック５０２において）ターゲット・トラックがキャッシュ１４０内にない場合には、次に、ストレージ・マネージャ１４４は、（ブロック５０４において）読み取り／書き込み要求に対する失敗を第１のチャンネルまたはバス・ホスト・アダプタ１２８上でホスト１００へ返す。これにより、ホスト１００は、第２のチャンネルまたはネットワーク・ホスト・アダプタ１２０、１３４上で読み取り／書き込み要求を再試行する。ターゲット・トラックがキャッシュ１４０内にない場合には、次に、ターゲット・トラックおよびトラック・メタデータがキャッシュ１４０内にステージされる必要があり、これは、ホスト・プロセッサが読み取り／書き込み要求のスレッド上でスピンしている、第１のチャンネル上における読み取り／書き込みのための時間閾値を超える可能性が高いため、失敗が返される。（ブロック５０２において）ターゲット・トラックがキャッシュ１４０内にあり、受信された要求が書き込みであり、（ブロック５０８において）書き込みがトラック・フォーマットを変更する場合には、このとき、キャッシュ・マネージャ１４２は（ブロック５１０において）トラック・フォーマット・コード有効フラグ３１６を無効に設定し、（ブロック５１２において）キャッシュ１４０内のトラックがトラック・フォーマット変更として無効にされたとの無効理由３１８を指示する。トラック・メタデータを、トラック・フォーマットの変更に伴って更新するためにストレージ１０４から読み取る必要があるため、次に、ストレージ・マネージャ１４４は（ブロック５０４において）失敗をホスト１００へ返す。
【００３８】
（ブロック５０６において）読み取り／書き込み要求が読み取りである場合、または（ブロック５０８において）要求が、トラック・フォーマットを変更しない書き込みである場合には、次に、キャッシュ・マネージャ１４２は、（ブロック５１４において）トラック・フォーマット・コード有効フラグ３１６が有効に設定されているかどうかを判定する。そうである場合には、次に、キャッシュ・マネージャ１４２は、（ブロック５１６において）キャッシュ制御ブロック３００ｉ内のトラック・フォーマット・コード３１４に対応するトラック・フォーマット・テーブル２００内のトラック・フォーマット・メタデータ２０４を決定する。キャッシュ・マネージャ１４２は、（ブロック５１８において）決定されたトラック・フォーマット・メタデータ２０４内で指示されたトラック・フォーマット・レイアウトを使用し、キャッシュ１４０内のターゲット・トラックへの読み取りまたは書き込み要求を処理する。要求が書き込みである場合には、キャッシュ制御ブロック３００ｉ内のダーティ・フラグ３１２が、トラックが変更されたことを指示するように設定されてもよい。（ブロック５１４において）トラック・フォーマット・コード有効フラグ３１６が無効である、つまり、トラック・フォーマット・コード３１４を通じて利用可能なトラック・フォーマット情報へ高速にアクセスできない場合には、トラック・フォーマット・テーブル２００を使用することができず、トラック・メタデータをストレージ１０４から読み取る必要があり、これにより、第１のチャンネル上における高速な読み取り／書き込みにとって過度に大きな待ち時間が生じることになるため、次に、ストレージ・マネージャ１４４は（ブロック５０４において）失敗をバス・インターフェース上でバス・ホスト・アダプタ１２８へ返す。
【００３９】
図５の動作の実施形態によれば、バス・インターフェースまたは第１のチャンネルを介した高速書き込みの最中には、トラック・フォーマット・メタデータがトラック・フォーマット・テーブル２００を通じて待ち時間を伴わずにアクセスされ得る場合には、トラック・メタデータをストレージ１０４から読み取ることを必要とすることなく、トラック・フォーマット・コード３１４を通じてトラック・メタデータをトラック・フォーマット・テーブル２００から直接取得することができるため、トランザクションを非常に迅速に処理することができるときに、次に、読み取り／書き込み要求は、続行することを可能にされる。しかし、キャッシュ制御ブロック３００ｉが、トラック・フォーマット・メタデータの低待ち時間のアクセスを可能にするための有効なトラック・フォーマット・コード３１４を有しない場合には、トランザクションが高速時間閾値以内に完了しない可能性が高いため、次に、読み取り／書き込み要求は失敗させられる。この決定は、ホスト・プロセッサが、読み取り／書き込み要求が完了するのを待ちながら、読み取り／書き込み要求に対処するスレッド上でスピンしている最中の他のタスクの処理におけるホスト遅延を回避するために重要である。トラック・メタデータにトラック・フォーマット・テーブル２００からアクセスすることができる場合には、このとき、ホスト・プロセッサがスレッドを過度に長い間保持し、このため、他のＩ／Ｏ要求がキューに入れられ、遅延させられるのを回避するために必要とされる時間以内に読み取り／書き込みがバス・インターフェース・チャンネル上で完了することができる可能性が高い。トラック・メタデータにトラック・フォーマット・テーブル２００からアクセスすることができず、ストレージ１０４から読み取る必要がある場合には、このとき、ホスト・プロセッサが読み取り／書き込み要求のためのスレッド上でスピンするための時間閾値以内に読み取り／書き込み要求が完了することになる可能性は低く、失敗が返される。トラック・メタデータをトラック・フォーマット・テーブル２００から取得することができないときに失敗を返すと、読み取り／書き込み要求タスクに応対しているホスト・スレッドは非アクティブ化され、ホスト・プロセッサは他のタスクの処理にコンテキスト切り替えを行ってもよく、次に、読み取り／書き込み要求は、コンテキスト切り替えの間に第２のネットワーク・チャンネル上で再試行される。
【００４０】
図６は、ネットワーク・ホスト・アダプタ１３４上のネットワーク１２２などの、第２のチャンネル上で受信されたターゲット・トラックへの読み取り／書き込み要求を処理するために、キャッシュ・マネージャ１４２およびストレージ・マネージャ１４４によって遂行される動作の一実施形態を示す。（ブロック６００において）読み取り／書き込み要求を受信すると、（ブロック６０２において）ターゲット・トラックがキャッシュ１４０内にない場合には、次に、キャッシュ・マネージャ１４２は（ブロック６０４において）トラックをストレージ１０４からキャッシュ１４０にステージし、（ブロック６０６において）ターゲット・トラックのためのトラック・メタデータをストレージ１０４から読み取り、トラック・フォーマット、例えば、ブロックのサイズ、制御インターバル、トラック上のレコードのレイアウト等を決定する。（ブロック６０８において）読み取り／書き込み要求が書き込みであり、（ブロック６１０において）書き込みがトラック・フォーマットを変更する場合には、次に、キャッシュ・マネージャ１４２は、（ブロック６１２において）トラック・メタデータを、変更されたトラック・フォーマットを指示するように更新し、（ブロック６１４において）トラック・フォーマット・コード有効フラグ３１６を無効に設定する。トラック・メタデータ３１２は、（ブロック６１６において）トラックが変更されたか、またはダーティであることを指示するようにさらに更新される。（ブロック６０８において）要求が読み取りであるか、またはブロック６１６からのものである場合には、キャッシュ・マネージャ１４２は、（ブロック６１８において）トラック・フォーマット・メタデータ内で指示されたトラック・フォーマット・レイアウトを使用し、キャッシュ１４０内のターゲット・トラックへの読み取りまたは書き込み要求を処理する。
【００４１】
（ブロック６０２において）ターゲット・トラックがキャッシュ１４０内にあり、（ブロック６３０において）トラック・フォーマット・コード有効フラグ３１６が有効に設定されている場合には、次に、キャッシュ・マネージャ１４２は、（ブロック６３２において）ターゲット・トラックのためのキャッシュ制御ブロック３００ｉ内のトラック・フォーマット・コード３１４に対応するトラック・フォーマット・テーブル２００内のトラック・フォーマット・メタデータ２０４を決定する。ブロック６３２から、制御はブロック６０８へ進み、読み取り／書き込み要求を処理する。（ブロック６３０において）トラック・フォーマット・コード有効フラグ３１６が無効に設定されている場合には、次に、制御はブロック６０６へ進み、トラックのためのメタデータをストレージ１０４から読み取り、トラック・フォーマット・レイアウトを決定する。
【００４２】
図６の実施形態によれば、読み取り／書き込み要求が、ネットワーク１２２を介するなど、第２のより低速のチャンネル上で受信されると、この場合には、ホスト・オペレーティング・システム１１１が、読み取り／書き込み要求に対処するスレッドのためのコンテキスト切り替えを遂行しており、キャッシュ・マネージャ１４２は、トラック・メタデータをストレージ１０４から読み取り、トラック・レイアウトを決定して要求を処理し得る。この時間の間は、読み取り／書き込み要求が完了を返すまで、読み取り／書き込み要求に対処するホスト・スレッドがコンテキスト切り替えを行われ、アクティブでないため、さらなるホスト要求のホスト処理は遅延されない。
【００４３】
図７は、変更された場合にはトラック・メタデータをストレージ１０４にデステージすることを含む、キャッシュ１４０内のトラックのためのトラック・メタデータを閉じる際にキャッシュ・マネージャ１４２によって遂行される動作の一実施形態を示す。（ブロック７００において）キャッシュ１４０内のトラックのためのトラック・メタデータを閉じると、キャッシュ・マネージャ１４２は（ブロック７０２において）トラック・メタデータを処理し、トラック内のデータのトラック・フォーマットまたはレイアウトを決定する。（ブロック７０４において）決定されたトラック・フォーマットが不正規である場合に起こり得るが、トラック・フォーマット・テーブル２００が、トラック・メタデータから決定されたトラック・フォーマットと一致するトラック・フォーマット・メタデータ２０４を有しない場合には、次に、トラック・フォーマット・コード有効フラグ３１６を（ブロック７０６において）無効に設定し、無効理由３１８を、トラック・フォーマットがサポートされていないことを指示するように設定する。このような状況では、不正規のフォーマットを有するトラックへの読み取り／書き込み要求は、ネットワーク・ホスト・アダプタ１３４を経由して第２のチャンネルを通じて受信されたときにのみ処理される。
【００４４】
（ブロック７０４において）トラック・フォーマット・テーブルが、トラック・メタデータから決定されたトラック・フォーマットと一致するトラック・フォーマット・メタデータ２０４を有する場合には、次に、キャッシュ・マネージャ１４２は、トラック・フォーマット・テーブル２００内の決定されたトラック・フォーマット・メタデータ２０４のためのトラック・フォーマット・コード２０２を決定し、トラック・フォーマット・コード２０２をキャッシュ制御ブロック３００ｉ内のフィールド３１４内に含める。トラック・フォーマット・コード有効フラグ３１６を（ブロック７１６において）有効に設定する。ブロック７０８または７１６から、制御はブロック７１８へ進み、トラック・メタデータを、変更された場合には、メモリ１３８からデステージし、または変更されていない場合には、破棄する。
【００４５】
図７の動作によれば、トラック・フォーマット情報は、キャッシュ制御ブロック３００ｉ内において、トラック・フォーマット・テーブル２００内のトラック・レイアウトを記述するトラック・フォーマット・メタデータ２０４をインデックスするための限られたビット数を有するトラック・フォーマット・コード２０２によって指示され得る。この場合、トラック・メタデータ自体はキャッシュ制御ブロック３００ｉに収まらないであろう。将来の読み取り／書き込みアクセスに対して、有効なトラック・フォーマット・コード３１４が提供されている場合には、次に、キャッシュ・マネージャ１４２はそのコード３１４を使用し、トラック・メタデータをストレージ１０４から読み取り、処理してトラック・フォーマットを決定することを必要とすることなく、トラック・フォーマット・メタデータ２０４をトラック・フォーマット・テーブル２００から低待ち時間で取得し得る。
【００４６】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせとして実施され得る。コンピュータ・プログラム製品は、プロセッサに本発明の諸態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体（または媒体群）を含み得る。
【００４７】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、限定するものではないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上述のものの任意の好適な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下のもの：ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリー・メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、穿孔カード、または命令が記録された溝内の隆起構造などの、機械的に符号化されたデバイス、ならびに上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書で使用するとき、電波または他の自由伝搬する電磁波、導波路または他の伝送媒体を通って伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいは電線を通して伝送される電気信号などの、一過性信号自体であると解釈されるべきでない。
【００４８】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組み合わせを経由して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを含み得る。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースがネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【００４９】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（instruction-set-architecture、ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはＪａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋、もしくは同様のものなどの、オブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは同様のプログラミング言語などの、従来の手続き型プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれた、ソース・コードまたはオブジェクト・コードのいずれかであり得る。コンピュータ可読プログラム命令は完全にユーザのコンピュータ上で実行するか、一部ユーザのコンピュータ上で実行するか、独立型ソフトウェア・パッケージとして実行するか、一部ユーザのコンピュータ上で、且つ一部リモート・コンピュータ上で実行するか、または完全にリモート・コンピュータもしくはサーバ上で実行し得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを通じてユーザのコンピュータに接続され得るか、あるいは外部コンピュータへの接続が（例えば、インターネット・サービス・プロバイダを利用してインターネットを通じて）行われてもよい。実施形態によっては、例えば、プログラマブル論理回路機構、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路機構が、本発明の諸態様を遂行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機構を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
【００５０】
本発明の諸態様は、本明細書において、本発明の諸実施形態に係る方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【００５１】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または機械を作り出すための他のプログラム可能データ処理装置のプロセッサに提供され得、それにより、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令は、フローチャートまたはブロック図あるいはその両方のブロックまたはブロック群において指定された機能／行為を実施するための手段を生み出す。これらのコンピュータ可読プログラム命令はまた、内部に記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックもしくはブロック群内で指定された機能／行為の諸態様を実施する命令を含む製造品を構成するように、コンピュータ、プログラム可能データ処理装置、または他のデバイスあるいはその組み合わせを特定の仕方で機能するように仕向けることができるコンピュータ可読記憶媒体内に記憶され得る。
【００５２】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたはブロック群において指定された機能／行為を実施するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、一連の動作ステップを、コンピュータ、他のプログラム可能装置または他のデバイス上で遂行させ、コンピュータ実施プロセスを作り出し得る。
【００５３】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の可能な諸実装形態のアーキテクチャ、機能性、および動作を示す。この点に関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能（単数または複数）を実施するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。いくつかの代替的実装形態では、ブロック内に記された機能は、図面に記された順序に従わずに生じてもよい。例えば、連続して示された２つのブロックは、実際には、実質的に同時に実行されてもよく、またはブロックは、時として、含まれる機能性に依存して、逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能もしくは行為を遂行するか、あるいは専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
【００５４】
ホスト１００および記憶システム１０２を含む、図１の計算コンポーネントは、図８に示されるコンピュータ・システム８０２などの、１つまたは複数のコンピュータ・システム内に実装され得る。コンピュータ・システム／サーバ８０２は、プログラム・モジュールなどのコンピュータ・システム実行可能命令がコンピュータ・システムによって実行されるという一般的状況で説明されてもよい。概して、プログラム・モジュールは、特定のタスクを遂行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含み得る。コンピュータ・システム／サーバ８０２は、タスクが、通信ネットワークを通じてリンクされたリモート処理デバイスによって遂行される分散クラウド・コンピューティング環境内で実施されてもよい。分散クラウド・コンピューティング環境内において、プログラム・モジュールは、メモリ記憶デバイスを含むローカルおよびリモート・コンピュータ・システム記憶媒体の両方の内部に配置されてもよい。
【００５５】
図８に示されるように、コンピュータ・システム／サーバ８０２は汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ８０２のコンポーネントは、限定するものではないが、１つまたは複数のプロセッサもしくは処理ユニット８０４、システム／メモリ８０６、およびシステム／メモリ８０６を含む様々なシステム・コンポーネントをプロセッサ８０４に結合するバス８０８を含み得る。バス８０８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、ならびに種々のバス・アーキテクチャのうちの任意のものを用いるプロセッサまたはローカル・バスを含む、いくつかの種類のバス構造のうちの任意のもののうちの１つまたは複数を表す。限定ではなく、例として、このようなアーキテクチャとしては、業界標準アーキテクチャ（Industry Standard Architecture、ＩＳＡ）バス、マイクロ・チャンネル・アーキテクチャ（Micro Channel Architecture、ＭＣＡ）バス、拡張ＩＳＡ（Enhanced ISA、ＥＩＳＡ）バス、ビデオ・エレクトロニクス規格協会（Video Electronics Standards Association、ＶＥＳＡ）ローカル・バス、および周辺装置相互接続（Peripheral Component Interconnects、ＰＣＩ）バスが挙げられる。
【００５６】
コンピュータ・システム／サーバ８０２は通例、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ８０２によってアクセス可能である任意の利用可能な媒体であり得、それは、揮発性および不揮発性媒体、着脱式および非着脱式媒体の両方を含む。
【００５７】
システム／メモリ８０６は、ランダム・アクセス・メモリ（ＲＡＭ）８１０またはキャッシュ・メモリ８１２あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ８０２は、他の取り外し可能／非取り外し可能な、揮発性／不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単なる一例として、記憶システム８１３は、非取り外し可能な不揮発性磁気媒体（図示されておらず、通例、「ハード・ドライブ」と呼ばれる）からの読み取り、およびそれへの書き込みのために設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピー・ディスク」）からの読み取り、およびそれへの書き込みのための磁気ディスク・ドライブ、ならびにＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などの取り外し可能な不揮発性光ディスクからの読み取り、およびそれへの書き込みのための光ディスク・ドライブを設けることができる。このような場合には、１つまたは複数のデータ媒体インターフェースによって各々をバス８０８に接続することができる。以下においてさらに図示され、説明されるように、メモリ８０６は、本発明の諸実施形態の機能を実施するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含み得る。
【００５８】
プログラム・モジュール８１６のセット（少なくとも１つ）を有するプログラム／ユーティリティ８１４が、限定ではなく、例として、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ８０６内に記憶されてもよい。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、あるいはこれらの何らかの組み合わせの各々は、ネットワーキング環境の一実装形態を含み得る。コンピュータ８０２のコンポーネントは、本明細書において説明されるとおりの本発明の諸実施形態の機能または方法論あるいはその両方を一般的に実施するプログラム・モジュール８１６として実装され得る。図１のシステムは１つまたは複数のコンピュータ・システム８０２内に実装され得る。それらが複数のコンピュータ・システム８０２内に実装される場合には、このとき、コンピュータ・システムはネットワークを介して通信してもよい。
【００５９】
コンピュータ・システム／サーバ８０２はまた、キーボード、ポインティング・デバイス、ディスプレイ８２０等などの１つまたは複数の外部デバイス８１８、ユーザがコンピュータ・システム／サーバ８０２と対話することを可能にする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ８０２が１つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデム等）、あるいはその組み合わせと通信し得る。このような通信は入力／出力（Ｉ／Ｏ）インターフェース８２２を介して行うことができる。それでもなお、コンピュータ・システム／サーバ８０２は、ネットワーク・アダプタ８２４を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般のワイド・エリア・ネットワーク（ＷＡＮ）、または公衆ネットワーク（例えば、インターネット）、あるいはこの組み合わせなどの１つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ８２４はバス８０８を介してコンピュータ・システム／サーバ８０２の他のコンポーネントと通信する。図示されていないが、他のハードウェアまたはソフトウェア・コンポーネントあるいはこの両方をコンピュータ・システム／サーバ８０２と併せて用いることができるであろうことを理解されたい。例としては、限定するものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システム等が挙げられる。
【００６０】
用語「一実施形態（an embodiment）」、「実施形態（embodiment）」、「諸実施形態（embodiments）」、「実施形態（the embodiment）」、「諸実施形態（the embodiments）」、「１つまたは複数の実施形態（one or more embodiments）」、「いくつかの実施形態（some embodiments）」、および「一実施形態（one embodiment）」は、別途明示的に定めのない限り、「本発明（単数または複数）の１つまたは複数の（ただし、全てではない）実施形態」を意味する。
【００６１】
用語「含む（including）」、「備える（comprising）」、「有する（having）」およびこれらの変形は、別途明示的に定めのない限り、「限定するものではないが、〜を含む（including but not limited to）」を意味する。
【００６２】
項目の列挙された一覧は、別途明示的に定めのない限り、項目のうちのいずれかまたは全てが相互排他的なものであることを含意しない。
【００６３】
用語「ａ」、「ａｎ」および「ｔｈｅ」は、別途明示的に定めのない限り、「１つまたは複数の（one or more）」を意味する。
【００６４】
互いに通信するデバイスは、別途明示的に定めのない限り、互いに連続的に通信する必要はない。加えて、互いに通信するデバイスは、直接、または１つまたは複数の媒介を通して間接的に通信してもよい。
【００６５】
互いに通信するいくつかのコンポーネントを有する実施形態の説明は、全てのこのようなコンポーネントが必要とされることを含意しない。逆に、種々の任意選択的なコンポーネントが、本発明の多種多様の可能な実施形態を例示するために説明される。
【００６６】
単一のデバイスまたは物品が本明細書において説明されるときには、１つを超えるデバイス／物品が（それらが協働するか否かにかかわらず）単一のデバイス／物品の代わりに用いられ得ることが容易に理解されるであろう。同様に、１つを超えるデバイスまたは物品が（それらが協働するか否かにかかわらず）本明細書において説明される場合、単一のデバイス／物品が１つを超えるデバイスまたは物品の代わりに用いられ得るか、あるいは異なる数のデバイス／物品が、示された数のデバイスまたはプログラムの代わりに用いられ得ることが容易に理解されるであろう。デバイスの機能性または特徴あるいはその両方は、このような機能性／特徴を有するように明示的に説明されていない１つまたは複数の他のデバイスによって代替的に具体化されてもよい。それゆえ、本発明の他の諸実施形態はデバイス自体を含まなくてもよい。
【００６７】
本発明の様々な実施形態の上述の説明は例示および説明の目的のために提示された。それは、網羅的であることを意図されておらず、または本発明を、開示された厳密な形に限定することも意図されていない。多くの変更および変形が上述の教示に鑑みて可能である。本発明の範囲は、この詳細な説明によって限定されるのではなく、むしろ、本明細書に添付の請求項によって限定されることが意図されている。上述の明細書、例、およびデータは、本発明の構成物の製造および使用の完全な説明を提供する。本発明の思想および範囲から逸脱することなく本発明の多くの実施形態を作り出すことができるため、本発明は本明細書における請求項に、添付後に存する。
【図１】
2020528624.tif 000003
【図２】
2020528624.tif 000004
【図３】
2020528624.tif 000005
【図４】
2020528624.tif 000006
【図５】
2020528624.tif 000007
【図６】
2020528624.tif 000008
【図７】
2020528624.tif 000009
【図８】
2020528624.tif 000010
【国際調査報告】
2020528624.tif 000011
2020528624.tif 000012