(57)【要約】      （修正有）【課題】冗長キャッシュデータのエラスティックキャッシングのための装置を提供する。【解決手段】装置は、複数のバッファ及び回路を有する。回路は、（ｉ）ストレージボリュームに書き込みデータを格納するために、ホストから書き込み要求を受信し、（ｉｉ）書き込み要求に関連した冗長構成に基づいて、バッファに複数のエクステントを割り当て、（ｉｉｉ）複数のエクステントに書き込みデータを格納するように構成され、（ａ）複数のエクステントのそれぞれは、バッファの異なる１つに配置され、（ｂ）複数のエクステントは、書き込み要求に応じてダイナミックに相互リンクされる。【選択図】図１
2013156977.tif 000002
【特許請求の範囲】
【請求項１】
冗長キャッシュデータのエラスティックキャッシングのための装置であって、
複数のバッファと、
（ｉ）ストレージボリュームに書き込みデータを格納するために、ホストから書き込み要求を受信し、（ｉｉ）前記書き込み要求に関連した冗長構成に基づいて、前記バッファに複数のエクステントを割り当て、（ｉｉｉ）前記複数のエクステントに前記書き込みデータを格納するように構成される回路と、
を備え、
（ａ）前記複数のエクステントのそれぞれは、前記バッファの異なる１つに配置され、（ｂ）前記複数のエクステントは、前記書き込み要求に応じてダイナミックに相互リンクされることを特徴とする装置。
【請求項２】
前記回路は、前記書き込みデータを前記バッファから前記ストレージボリュームに複製することに応じて、前記複数のエクステントの少なくとも１つをアンリンクするように更に構成されることを特徴とする請求項１に記載の装置。
【請求項３】
前記複数のエクステントは、前記複数のエクステントのそれぞれに対応するパラメータのそれぞれを変更することによって、ダイナミックにリンクされることを特徴とする請求項１又は２に記載の装置。
【請求項４】
前記パラメータのそれぞれは、前記複数のエクステントの別のエクステントを指示するように変更されることを特徴とする請求項３に記載の装置。
【請求項５】
前記回路は、前記ホストから受信された別の要求に関連した非冗長構成に基づいて、１つ以上のエクステントを割り当てるように更に構成されることを特徴とする請求項１から４の何れか一項に記載の装置。
【請求項６】
（ｉ）前記回路は、前記ホストから受信された別の書き込み要求に関連した別の冗長構成に基づいて、別の複数のエクステントを割り当てるように更に構成され、（ｉｉ）前記別の冗長構成は、前記冗長構成と異なることを特徴とする請求項１から５の何れか一項に記載の装置。
【請求項７】
前記冗長構成は、独立したディスクの冗長アレイと共に用いられる構成を備えることを特徴とする請求項１から６の何れか一項に記載の装置。
【請求項８】
前記装置は、１つ以上の集積回路として実現されることを特徴とする請求項１から７の何れか一項に記載の装置。
【請求項９】
冗長キャッシュデータのエラスティックキャッシングのための方法であって、
（Ａ）ストレージボリュームに書き込みデータを格納するために、書き込み要求をホストから装置に受信するステップと、
（Ｂ）前記書き込み要求に関連した冗長構成に基づいて、複数のバッファに複数のエクステントを割り当てるステップと、
（Ｃ）前記複数のエクステントに前記書き込みデータを格納するステップと、
を備え、
（ｉ）前記複数のエクステントのそれぞれは、前記バッファの異なる１つに配置され、（ｉｉ）前記複数のエクステントは、前記書き込み要求に応じてダイナミックに相互リンクされることを特徴とする方法。
【請求項１０】
前記書き込みデータを前記バッファから前記ストレージボリュームに複製することに応じて、前記複数のエクステントの少なくとも１つをアンリンクするステップを更に備えることを特徴とする請求項９に記載の方法。
【請求項１１】
前記複数のエクステントは、前記複数のエクステントのそれぞれに対応するパラメータのそれぞれを変更することによって、ダイナミックにリンクされることを特徴とする請求項９又は１０に記載の方法。
【請求項１２】
前記パラメータのそれぞれは、前記複数のエクステントの別のエクステントを指示するように変更されることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ホストから受信された別の要求に関連した非冗長構成に基づいて、１つ以上のエクステントを割り当てるステップを更に備えることを特徴とする請求項９から１２の何れか一項に記載の方法。
【請求項１４】
前記ホストから受信された別の書き込み要求に関連した別の冗長構成に基づいて、別の複数のエクステントを割り当てるステップを更に備え、前記別の冗長構成は、前記冗長構成と異なることを特徴とする請求項９から１３の何れか一項に記載の方法。
【請求項１５】
前記冗長構成は、独立したディスクの冗長アレイと共に用いられる構成を備えることを特徴とする請求項９から１４の何れか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ストレージデバイスキャッシングに係り、特に、冗長キャッシュデータのエラスティックキャッシュを実現するための方法及び／又は装置に関する。
【背景技術】
【０００２】
従来のストレージシステムでは、システムとアプリケーションの全体的なパフォーマンスは、頻繁にアクセスされるデータをキャッシュすることによって向上する。多くのアプリケーションでは、キャッシュがライトバックモードを用いる場合、作業負荷は利益を得ると共にパフォーマンスは向上する。ライトバックモードで保持されたキャッシュデータは、冗長性の提供によってデータ損失から時々保護される。冗長性は、キャッシュコントローラの２つのフラッシュモジュールに対して共通して実現される。両方のフラッシュモジュールは永続的にミラーリングを用いて対にされ、１つのフラッシュモジュールにキャッシュデータを保持するために利用可能なスペースを効果的に低減する。いくつかのホストデータのみが冗長性から利益を得ると仮定すれば、非能率的な利用はフラッシュモジュールの利用可能なスペースで生じさせられる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
冗長キャッシュデータのエラスティックキャッシュを実現することが望まれる。
【課題を解決するための手段】
【０００４】
本発明は、冗長キャッシュデータのエラスティックキャッシングのための装置に関する。装置は、複数のバッファ及び回路を有する。回路は、（ｉ）ストレージボリュームに書き込みデータを格納するためにホストから書き込み要求を受信し、（ｉｉ）書き込み要求に関連する冗長構成に基づいてバッファに複数のエクステントを割り当て、（ｉｉｉ）複数のエクステントに書き込みデータを格納して、（ａ）複数のエクステントのそれぞれがバッファの異なる１つに位置され、 （ｂ）複数のエクステントが書き込み要求に応じてダイナミックに相互リンクされるように構成される。
【０００５】
本発明の目的、特徴、及び利点は、（ｉ）追加の効果的なキャッシュスペースを提供し、（ｉｉ）一般の技術と比較して規定の量のキャッシュメディアのために優れたキャッシュ保証範囲を提供し、（ｉｉｉ）既存のエクステント構成を用い、（ｉｖ）既存のマネジメントインフラストラクチャを用い、（ｖ）キャッシュ冗長性のための様々なＲＡＩＤレベルを実現し、（ｖｉ）一般の技術と比較して規定の量のホスト入力／出力動作のためのバッファ書き込みの数を低減し、（ｖｉｉ）規定のホスト入力／出力動作のためのフラッシュメモリバッファの耐用年数を向上させ、及び／又は（ｖｉｉｉ）キャッシュデータのための大規模なバッファとしてのソリッドステートドライバを実現する、冗長キャッシュデータのエラスティックキャッシュを実現するための方法及び／又は装置を提供することを含む。
【０００６】
これら及び他の本発明の目的、特徴、及び利点は、以下の明細書、添付された特許請求の範囲、及び図面から明らかになる。
【図面の簡単な説明】
【０００７】
【図１】システムの実施の形態の一例のブロック図である。
【図２】本発明の好適な実施の形態によるシステムにおけるキャッシュ回路の実施の形態の一例のブロック図である。
【図３】エクステントの構成の一例の図である。
【図４】キャッシュデータの一例の図である。
【図５】エクステントのグループのいくつかの一例の図である。
【図６】エラスティックミラーキャッシュを有するキャッシュ構成の一例の図である。
【図７】書き込み要求を処理するための方法の一例の流れ図である。
【図８】読み取り要求を処理するための方法の一例の流れ図である。
【図９】エクステントを割り当てるための方法の一例の流れ図である。
【図１０】エクステントを解放するための方法の一例の流れ図である。
【図１１】キャッシュ回路に不正な書き込みをエラスティックにミラーリングすることによって得られるスペースを図示するグラフの図である。
【発明を実施するための形態】
【０００８】
本発明のいくつかの実施の形態は、キャッシュスペースの書き込み部分に冗長性を提供するために利用可能なキャッシュスペースをエラスティックに用いる。エラスティック方式は、一般に、読み取りデータ及び／又は非保護（例えば、非冗長）の書き込みデータをバッファするためにキャッシュスペースの全ての利用可能な部分を増加させるインテリジェントなマネジメント技術によって実現される。更に、エラスティックアプローチは、アグリゲーション（例えば、いくつかのデータは、ストレージとキャッシュが複数のノード（サーバ）に亘って共有される場合のように、エクステントベース毎に別々のフィジカルデバイス上にミラーリングされミラーリングされたエクステントの一部のそれぞれは、別々のノードに存在する。）及びポリシー選択（例えば、いくつかのストレージディスクは、保護（又は冗長）キャッシュデータを利用し、いくつかは、選択されたポリシーに基づいてキャッシュデータを保護しない。）等の他の利益を与えるためにモデル化される。
【０００９】
図１を参照すると、システム９０の実施の形態の一例のブロック図が示される。システム（又は装置）９０は、一般に、ブロック（又は回路）９２、ブロック（又は回路）９４、ネットワーク（又はバス）９６、ネットワーク（又はバス）９７、及びブロック（又は回路）１００を備える。回路９４は、一般に、複数のブロック（又は回路）９８ａ〜９８ｎを備える。回路１００は、一般に、ブロック（又は回路）１０２及びブロック（又は回路）１０４を備える。回路９２〜１０４は、ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、又は他の実装として実現されるモジュール及び／又はブロックを表す。
【００１０】
双方向性の信号（例えば、ＤＨ）は、ネットワーク９６を通じて回路９２と回路１００との間で交換される。信号ＤＨは、回路９２と回路１００との間で、データ（例えば、読み取りデータ及び／又は書き込みデータ）、要求、及びステータス情報を通信するために用いられる。双方向性の信号（例えば、ＤＢ）は、回路１０２と回路１０４との間で交換される。信号ＤＢは、回路１０２と回路１０４との間で、キャッシュデータ及びメタデータを伝達する。双方向性の信号（例えば、ＤＳ）は、ネットワーク９７を通じて回路９４と回路１００との間で交換される。信号ＤＳは、回路１００と回路９４との間で、データ及び関連するコマンド（例えば、読み取りコマンド、書き込みコマンド、及び設定コマンド）を転送する。
【００１１】
回路９２は、１つ以上のホスト回路（又はサーバ）及び／又は１つ以上のソフトウェアアプリケーションを実現する。回路９２は、一般に、信号ＤＨ及びＤＳで、回路１００及びネットワーク９６を通じて回路９４の間でデータを読み取り及び／又は書き込みするために使用可能である。回路９２は、信号ＤＨで、回路１００に対応アドレス情報（例えば、論理的ブロックアドレス（ＬＢＡ））と共に要求（例えば、読み取り要求及び書き込み要求）を送信するためにも使用可能である。更に、回路９２は、信号ＤＨで、回路１００にコマンド（例えば、プリフェッチ、フラッシュ、設定等）を送信するために使用可能である。信号ＤＨは、回路１００から回路９２にステータス情報（例えば、キャッシュヒット、キャッシュミス等）を伝達するように回路１００によって制御される。
【００１２】
回路９４は、１つ以上のストレージボリュームを実現する。回路９４は、一般に、書き込みコマンドに応じて回路１００から受信されたデータを信号ＤＳを通じて格納するために使用可能である。回路９４は、読み取りコマンドに応じて回路１００にデータを信号ＤＳを通じて送信するために使用可能である。ストレージボリュームは、論理ボリューム、仮想ボリューム、及び／又は物理ボリュームとして実現される。回路９４は、ストレージエリアネットワーク（ＳＡＮ）、ネットワーク接続ストレージ（ＮＡＳ）、及び／又はディスクアレイサブシステム（ＤＡＳ）アーキテクチャの一部である。
【００１３】
ネットワーク９６は、１つ以上のデジタル通信ネットワーク及び／又はバスを実現する。ネットワーク９６は、一般に、回路９２と回路１００との間の通信を提供するために使用可能である。ネットワーク９６の実装は、限定されるものではないが、インターネット、イーサネット（登録商標）、ファイバ光ネットワーク、無線ネットワーク、有線ネットワーク、高周波通信ネットワーク、及び／又はバックプレーンバスの１つ以上を含む。
【００１４】
ネットワーク９７は、１つ以上のデジタル通信ネットワーク及び／又はバスを実現する。ネットワーク９７は、一般に、回路９４と回路１００との間の通信を提供するために使用可能である。ネットワーク９７の実装は、限定されるものではないが、インターネット、イーサネット（登録商標）、ファイバ光ネットワーク、無線ネットワーク、有線ネットワーク、高周波通信ネットワーク、及び／又はバックプレーンバスの１つ以上を含む。
【００１５】
回路９８ａ〜９８ｎのそれぞれは、マスストレージドライブを実現する。いくつかの実施の形態では、回路９８ａ〜９８ｎのそれぞれは、ハードディスクドライブ（例えば、ＨＤＤ）を実現する。回路９８ａ〜９８ｎは、一般に、回路１００の間でデータを信号ＤＳを通じて格納及び送信するために使用可能である。回路９８ａ〜９８ｎは、１つ以上のストレージボリュームとして配置及び作動される。いくつかの実施の形態では、回路９８ａ〜９８ｎは、１つ以上の冗長で独立したディスク（例えば、ＲＡＩＤ）構成として編成及び作動される。ＲＡＩＤ構成は、限定されるものではないが、ＲＡＩＤ０、ＲＡＩＤ１、ＲＡＩＤ２、ＲＡＩＤ３、ＲＡＩＤ４、ＲＡＩＤ５、ＲＡＩＤ６、ＲＡＩＤ７、ＲＡＩＤ１０、ＲＡＩＤ５３、及び／又はＲＡＩＤ０＋１構成を含む。他のレベルのＲＡＩＤ構成は、特定用途の基準を満たすために実現される。更に、複数の異なるＲＡＩＤ構成は、回路９８ａ〜９８ｎによって同時に表される。
【００１６】
回路１００は、キャッシュ回路を実現する。回路１００は、一般に、回路９２と回路９４との間で交換されるデータをキャッシュするために使用可能である。キャッシングは、回路９２から回路９４に転送される書き込みデータのためのライトバック（又はライトビハインド）ポリシーを実現する。不正な書き込みデータは、複数のメディアの間に亘る冗長構成を用いて回路１００によってバッファされる。冗長構成及びスプレッディングは、１つのメディアの故障が故障したメディアの書き込みデータの一部又は全てにアクセス不能及び／又は消失を引き起こした後に保持される不正な書き込みデータにアクセスするように構成される。回路１００は、回路９２、回路９４、又は中間点に位置するキャッシュを実現する。いくつかの実施の形態では、回路１００は１つ以上の集積回路として実現される。
【００１７】
回路１０２は、複数のバッファ回路を実現する。回路１０２は、回路９２と回路９４との間で転送されるキャッシュ（又はバッファ）データを格納するために使用可能である。回路１０２は、キャッシュデータに関連するメタデータを格納するためにも使用可能である。キャッシュデータは、エクステントに配列される。エクステントのそれぞれは、特定のデータファイル又はソフトウェアプログラムのために予約されたストレージスペースの連続的なブロックを表す。メタデータは、一般に、エクステントを管理するために用いられる情報を備える。いくつかの実施の形態では、回路１０２は、回路１００に対して完全に内部（示されたように）、回路１００に対して完全に外部、回路１００に対して部分的に内部及び外部に実現されるか、又は複数のノード（又はサーバ）に亘って集合される。
【００１８】
回路１０４は、コントローラデバイスを実現する。回路１０４は、回路９４に書き込みデータを格納するために回路９２から書き込み要求を受信し、書き込み要求に関連する冗長構成に基づいて回路１０２の複数のバッファに複数のエクステントを割り当て、複数のエクステントに書き込みデータを格納するために使用可能である。複数のエクステントのエクステントのそれぞれは、一般に、異なるバッファに配置される。複数のエクステントは、書き込み要求に応じてダイナミックに相互リンクされる。回路１０４は、バッファから回路９４に書き込みデータを複製することに応じて複数のエクステントの少なくとも１つをアンリンクするためにも使用可能である。いくつかの実施の形態では、回路１０４は、１つ以上の集積回路として実現される。
【００１９】
図２を参照すると、回路１００の実施の形態の一例のブロック図が本発明の好適な実施の形態に従って示される。回路１０２は、一般に、複数のブロック（又は回路）１０６ａ〜１０６ｎを備える。回路１０４は、一般に、ブロック（又はモジュール）１０８、ブロック（又はモジュール）１１０、及びブロック（又はモジュール）１１２を備える。回路１０６ａ〜１０６ｎは、ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、又は他の実装として実現されるモジュール及び／又はブロックを表す。モジュール１０８〜１１２は、回路１０４を制御するために実行されるファームウェア（又はソフトウェア、プログラム命令、又はコード）として実現される。
【００２０】
信号ＤＨは、回路１０４によってインタフェース１１４を通じて送信及び受信される。信号ＤＳは、回路１０４によってインタフェース１１６を通じて送信及び受信される。信号ＤＢは、複数の信号（例えば、ＤＢａ〜ＤＢｎ）として実現される。信号ＤＢａ〜ＤＢｎのそれぞれは、一般に、回路１０４のインタフェース１１８ａ〜１１８ｎと回路１０６ａ〜１０６ｎの対応するインタフェース１２０ａ〜１２０ｎとの間の通信を確立する。
【００２１】
回路１０６ａ〜１０６ｎのそれぞれは、バッファ回路を実現する。回路１０６ａ〜１０６ｎのそれぞれは、キャッシュデータ及び関連するメタデータを格納するために使用可能である。いくつかの実施の形態では、回路１０６ａ〜１０６ｎのそれぞれは、ソリッドステートドライブ（例えば、ＳＳＤ）として実現される。ソリッドステートドライブの一般のサイズは、１から２テラバイトに及ぶ。他の実施の形態では、回路１０６ａ〜１０６ｎのそれぞれは、フラッシュドライブとして実現される。フラッシュメモリの一般のサイズは、１から３２ギガバイトに及ぶ。更に別の実施の形態では、回路１０６ａ〜１０６ｎのそれぞれは、ダブルデータレート（例えば、ＤＤＲ）メモリ回路として実現される。ＤＤＲメモリの一般のサイズは、１から６４ギガバイトに及ぶ。他のサイズは、特定用途の基準を満たすために実現される。回路１０２の複数の回路１０６ａ〜１０６ｎは、回路９４の回路９８ａ〜９８ｎより多いか、同じか、又は少ない。
【００２２】
モジュール１０８は、エクステントコントローラを実現する。モジュール１０８は、回路９２から受信されたサービス要求（例えば、読み取り要求及び／又は書き込み要求）に対して回路１０２に１つ以上のエクステントを割り当て及び解放するために使用可能である。モジュール１０８は、グループ化されたスペース（例えば、読み取りスペース及び／又は書き込みスペース）を作成するために回路１０２のエクステントのそれぞれに関連するメタデータのパラメータを変化させるためにも使用可能である。グループ化は、冗長で保護された構成のキャッシュデータを適応する、より大規模なメモリスペース（又はスーパーエクステント）を形成するためにエクステントを相互リンクすることによって達成される。グループ化されたスペースへのエクステントの割り当て（又はリンク）は、一般に、グループの次のエクステントを指示するために関連するエクステントのパラメータのそれぞれを変更することを含む。指示は、１つ以上の最初のエクステントから１つ以上の最後のエクステントまでのチェーンにおいて継続する。最後のエクステントのパラメータは、リンクを閉じるために最初のエクステントへ指示する。また、モジュール１０８は、エクステント及び／又はより小さなグループ化されたスペースのそれぞれの後にグループ化されたスペースをディゾルブするためにメタデータのパラメータを変更する。キャッシュデータが非冗長構成でバッファされる状況では、モジュール１０８は、エクステントがバッファキャッシュデータに現在用いられていることを示すために、割り当てられた（又はヌル）値に対して１つ以上のエクステントのパラメータを変更する。エクステントがもはやバッファキャッシュデータに用いられていないとき、モジュール１０８は、解放された（又は未使用の）値に関連するパラメータを変更する。
【００２３】
モジュール１１０は、キャッシュコントローラを実現する。モジュール１１０は、スタンダードキャッシュ動作及びスタンダードキャッシュポリシーを実行するために使用可能である。キャッシュ動作は、一般に、限定されるものではないが、回路１０２にデータを書き込むこと、回路１０２からキャッシュ（又はバッファ）データを読み取ること、回路１０２にメタデータを書き込むこと、回路１０２からメタデータを読み取ること、キャッシュデータのタグを探索すること、マッチするタグが発見されたときにキャッシュヒットを示すこと、マッチしないタグが発見されたときにキャッシュミスを示すこと、回路１０２の不正な書き込みデータを追跡すること、回路９４に不正な書き込みデータをフラッシュ（例えば、複製）すること、有効及び無効のキャッシュラインを追跡すること、有効及び無効のキャッシュワードを追跡すること等を含む。モジュール１１０は、キャッシュデータの保持及び移転に関する１つ以上のキャッシュポリシーを実現するためにも使用可能である。キャッシュポリシーは、限定されるものではないが、不正な書き込みデータのためのライトバックモード、いくつかのタイプの書き込みデータのためのライトスルーモード、いくつかのタイプの書き込みデータの冗長（又は保護）バッファ、他のタイプの書き込みデータの非冗長（又は非保護）バッファ、不正な書き込みデータのための１つ以上のフラッシュポリシー、回路１０２内のスペースをクリアするための１つ以上のリムーバルポリシー等を含む。
【００２４】
モジュール１１２は、ＲＡＩＤコントローラを実現する。モジュール１１２は、一般に、回路１０２にバッファされ、データに割り当てられたＲＡＩＤポリシーに基づいて様々なＲＡＩＤ構成の回路９４に格納されたデータを編成（又は配置若しくはフォーマット）するために使用可能である。
【００２５】
書き込みデータが保護されるべき回路９２から受信されたとき、モジュール１１２は、ＲＡＩＤ構成の間で規定の構成に書き込みデータを再配置する。再配置された書き込みデータは、書き込みデータのサイズ（例えば、書き込みデータによってどのくらいのエクステント境界を横断するか）、及び書き込み要求に対応するＲＡＩＤ構成（例えば、ＲＡＩＤ０、ＲＡＩＤ３、ＲＡＩＤ５等）に基づいて回路１０６ａ〜１０６ｎの２つ以上に続いて格納される。データ保護の他の形式は、特定用途の基準を満たすために実現される。
【００２６】
保護されたキャッシュデータが回路１０２から回路９２に送信されたとき、モジュール１１２は、エラーがあるかデータをチェックし、エラーがある場合にはエラーを修正するために使用可能である。また、データがストライプされている場合、モジュール１１２は、要求されたデータが回路９２に送信される前に、対応するブロックの後にスタイプを収集する。
【００２７】
回路１０２から回路９４へのＲＡＩＤの保護された書き込みデータの転送は、ＲＡＩＤ構成にデータを保持する間に実行される。例えば、データがミラーリングするＲＡＩＤ１構成にある場合、データは、信号ＤＢ及びＤＳを通じて２つの回路１０６ａ〜１０６ｎ（例えば、１０６ａ及び１０６ｂ）から対応する２つの回路９８ａ〜９８ｎ（例えば、９８ｆ及び９８ｇ）に転送される。別の一例で、データが２つのストライプエクステントによるパリティエクステントを利用するＲＡＩＤ３構成にある場合、データは、ネットワーク９７を通じて３つの回路１０６ａ〜１０６ｎ（例えば、１０６ａ、１０６ｂ、及び１０６ｃ）から対応する３つの回路９８ａ〜９８ｎ（例えば、９８ｄ、９８ｇ、及び９８ｋ）に転送される。
【００２８】
回路９４から回路１０２へのいくつかのＲＡＩＤ保護された格納データ（例えば、読み取りデータ）の転送は、回路９４からモジュール１１２へのＲＡＩＤ構成、及びモジュール１１２から回路１０２への非冗長構成で実行される。例えば、ＲＡＩＤ３構成で格納されたデータは、回路９４からモジュール１１２に３つのパラレル転送（例えば、２つのエクステント及び１つのパリティエクステント）として複製される。通常、モジュール１１２は、エラーチェックとエラー訂正を実行し、回路１０２に格納データの１つの非冗長な複製を転送する。
【００２９】
図３を参照すると、エクステント１４０の構成の一例の図が示される。回路１０２のキャッシュデータ及び回路９４の格納データは、エクステント（又はウィドウ）の形式で編成される。エクステントのそれぞれは、一般に、データを割り当て、解放し、追跡し、管理するために１つのユニットとして扱われる、連続するデータブロックの集合を表す。エクステント１４０の一例は、一般に、データの複数のライン１４２ａ〜１４２ｎを備える。ライン１４２ａ〜１４２ｎのそれぞれは、複数のデータブロック１４４ａ〜１４４ｎを備える。データブロック１４４ａ〜１４４ｎのそれぞれは、一般に、複数のバイト、ワード、又はデータの他のユニットを備える。更に、データブロック１４４ａ〜１４４ｎのそれぞれは、対応する論理的ブロックアドレス（例えば、ＬＢＡ  Ａ〜ＬＢＡ  Ｎ）を有する。エクステントの他の構成は、特定用途の基準を満たすために実現される。
【００３０】
図４を参照すると、キャッシュデータの一例の図が示される。その一例は、冗長性のためのＲＡＩＤ１構成を示す。簡単のために、２つの回路１０６ａ〜１０６ｎ（例えば、１０６ａ〜１０６ｂ）のみが示される。回路１０６ａ〜１０６ｂのそれぞれは、１つ以上のエクステント及び対応するメタデータとして編成される。いくつかのエクステント（例えば、ＷＲＩＴＥエクステント）は、回路９４にコミットされていない不正な書き込みデータを伝送する。他のエクステント（例えば、ＲＥＡＤエクステント）は、いくつかの基礎的なキャッシュ基準に基づいて回路９４からキャッシュデータを伝送する。不正な書き込みデータを伝送する書き込みエクステントは、回路１０６ａ又は１０６ｂが失敗した場合に、冗長性保護を用いてバッファされる。キャッシュ読み取りを伝送する他の全てのエクステントは、回路１０６ａ又は１０６ｂの故障で失われたキャッシュデータが、故障の後に回路９４から動作中の回路１０６ａ又は１０６ｂに再び占められるので、冗長性保護なしでバッファされる。
【００３１】
図５を参照すると、回路１０２内のエクステントのグループのいくつかの例の図が示される。図示された一例では、回路１０２は、回路１０６ａ〜１０６ｄを含む。より少ないかより多くの回路１０６ａ〜１０６ｎが、特定用途の基準を満たすために実現される。示されるように、エクステントの複数のグループ、複数のタイプのグループ（例えば、ＲＡＩＤ１、ＲＡＩＤ３、ＲＡＩＤ４、ＲＡＩＤ５、ＲＡＩＤ１０、ＲＡＩＤ０＋１等）、及び／又は複数のグループでないエクステント（例えば、ＲＥＡＤ及びＷＲＩＴＥエクステント）は、回路１０２に同時に存在する。
【００３２】
エクステント及び対応するメタデータのそれぞれは、既存の方法（又は技術）を用いて管理される。特に、エクステントのそれぞれは、エクステントの追跡及び識別のために固有のエクステント識別番号を用いる。ホスト入力／出力要求毎に、ホスト要求を処理するべく適切なエクステントを捜し出すために、ＬＢＡがエクステントにマッピングされる。冗長な保護に用いられた別のエクステントの識別番号を追跡するために、パラメータ（又はフィールド）が、エクステントのそれぞれのメタデータに加えられる。
【００３３】
１つのエクステント内の書き込みデータが回路１００によって回路９２から受信されたとき、２つ以上のエクステントがグループに割り当てられる。対応するパラメータは、ループで互いを指示（又はリンク）するためにアップデートされる。１つのグループのエクステントのそれぞれが異なる回路１０６ａ〜１０６ｎに配置されるように、グループにエクステントの割り当てが配列される。
【００３４】
いくつかの実施の形態では、書き込みデータが複数のエクステントに亘り、及び／又はエクステント境界を横断する場合には、２つ以上のエクステントのセットは大規模なエクステントとして扱われる。２つ以上の大規模なエクステントは、グループに割り当てられ、対応するパラメータは、ループで互いを指示するためにアップデートされる。大規模なエクステントのセットのそれぞれは、異なる回路１０６ａ〜１０６ｎに配置される。例えば、ＲＡＩＤ１グループ１５０は、一般に、回路１０６ｂの２つのエクステントの１セット、及び回路１０６ｃの２つのエクステントの別のセットを備える。回路１０６ｂの２つのエクステントのパラメータのそれぞれは、回路１０６ｃの対応するエクステントを指示する。同様に、回路１０６ｃの２つのエクステントのパラメータのそれぞれは、回路１０６ｂの対応するエクステントを指示する。
【００３５】
他の実施の形態では、書き込みデータが複数のエクステントに亘り、及び／又はエクステント境界を横断する場合には、隣接するエクステントは、異なる回路１０６ａ〜１０６ｎに配置され、冗長構成毎にリンクされる。例えば、ＲＡＩＤ３グループ１５２のデータは、回路１０６ｂにバッファされた最初のエクステント回路１０６ｃにバッファされた次のエクステント、及び回路１０６ｄにバッファされたパリティエクステントを有する。
【００３６】
キャッシュポリシーに基づいて、いくつかの書き込みデータは非冗長構成１５４で回路１０２にバッファされる。そのような非保護の書き込みデータは、回路１０２の故障によるデータの損失の場合には、回路９２によって代替可能である。非保護の書き込みデータは、データの損失の可能性を提供する低い重要性も有する。
【００３７】
読み取りミスのために実行されたキャッシュ充填動作のそれぞれのために、１つ以上のエクステントの１セットは、回路１０２に占める位置及びデータ量に依存して、１つ以上の回路１０６ａ〜１０６ｎに割り当てられる。割り当てられたセットのパラメータのそれぞれは、対応するエクステントが非冗長構成で割り当てられていることを示す値（例えば、ヌル値又は割り当てられた値）に変更（又はプログラム）される。
【００３８】
エクステントのグループにおける不正な書き込みデータが回路９４にフラッシュされた後、グループのエクステントは、スペースを更に割り当てに利用可能にするために解放される。エクステントは、グループから解放されたエクステントをアンリンクするために隣接するエクステントのパラメータをアップデートすることによって解放される。解放されたエクステントは、書き込みデータを保護するために用いられる冗長構成によって決定される。例えば、両方のミラーリングされたエクステントが書き込みデータの全てを含むので、ＲＡＩＤ１構成を有するエクステントのグループは、ミラーリングされたエクステントのどちらかを解放する。ＲＡＩＤ３構成を有するエクステントのグループは、パリティデータをバッファするために割り当てられたエクステントをアンリンクする。実データをバッファする残存するエクステントは、グループに保存される。
【００３９】
回路１０６ａ〜１０６ｎが故障したとき、スタンダードリカバリ技術が、残存するエクステントからホスト要求の処理のために用いられる。例えば、故障した回路１０６ａ〜１０６ｎ（例えば、回路１０６ａ）のブロックを失ったＲＡＩＤ５構成を有するエクステント１５６のグループは、失ったブロックを復元するために残存する回路１０６ａ〜１０６ｎ（例えば、１０６ｂ及び１０６ｄ）に残存するブロック及びパリティブロックを用いる。復元されたブロックは、読み取り／書き込み要求に応じるために続いて用いられる。
【００４０】
図６を参照すると、エラスティックにミラーリングされたキャッシュを持ったキャッシュ構成１６０の一例の図が示される。その一例は、一般に、２つの回路１０６ａ〜１０６ｎ（例えば、１０６ａ及び１０６ｂ）を用いて、ミラーリングされた構成を示す。エクステント１及びエクステント１０の両方は、共通の冗長な書き込みスペース１６２に割り当てられる。割り当ては、（ｉ）エクステント１０の識別番号を指示するためにエクステント１に関連したパラメータ、及び（ｉｉ）エクステント１の識別番号を指示するためにエクステント１０に関連したパラメータの変更によって達成される。回路１０６ａにバッファされたエクステント４は、関連するパラメータをヌル（又は割り当てた）値に変更することによって、読み取りスペース１６４に割り当てられる。回路１０６ｂにバッファされた別のエクステント８は、関連するパラメータをヌル（又は割り当てた）値にアップデートすることによって、別の読み取りスペース１６６に割り当てられる。他のエクステント（例えば、参照番号１６８のエクステント１２）は、データによって場所を占められていないので、対応するパラメータは解放された（又は用いられていない）値に設定される。回路１０６ａ（例えば、エクステント１〜６）に位置するエクステントのためのメタデータは、メタデータスペース１７０にバッファされる。回路１０６ｂ（例えば、エクステント７〜１２）に位置するエクステントのためのメタデータは、メタデータスペース１７２にバッファされる。
【００４１】
図７を参照すると、書き込み要求を処理する方法１８０の一例の流れ図が示される。方法（又は処理）１８０は、回路１００で実現される。方法１８０は、一般に、ステップ（又は状態）１８２、ステップ（又は状態）１８４、ステップ（又は状態）１８６、ステップ（又は状態）１８８、ステップ（又は状態）１９０、及びステップ（又は状態）１９２を備える。ステップ１８２〜１９２は、ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、又は他の実装として実現されるモジュール及び／又はブロックを表す。
【００４２】
ステップ１８２では、回路１０４は、信号ＤＨを通じて回路９２から書き込み要求を受信する。書き込みデータのための適切なエクステントが既に回路１０２にあるか否かを判断するために、回路１０２にバッファされたキャッシュデータの探索は、回路１０４（例えば、モジュール１１０）によってステップ１８４で実行される。適切なエクステントが回路１０２（例えば、キャッシュミス）で利用可能でない場合、ステップ１８６で書き込み要求を処理するために、回路１０４（例えば、モジュール１０８）は、回路１０６ａ〜１０６ｎに回路１０２の未使用のエクステントを割り当てる。
【００４３】
エクステントのグループが書き込み要求を処理するために利用可能ならば、モジュール１１０は、ステップ１８８で回路９４から書き込みエクステントに対応する格納データを複製する。回路９４から受信された格納データが既に保護された構成（又はフォーマット）でない場合、回路１０４（例えば、モジュール１１２）は、ステップ１８８の一部として、保護された構成にデータを配列する。データは、続いてモジュール１１０によってステップ１８８で適切な回路１０６ａ〜１０６ｎにバッファされる。ステップ１９０では、モジュール１１０及び１１２は、保護された構成毎に回路９２から受信された書き込みデータを編成し、回路１０２に書き込みデータを格納する。書き込みデータが回路９４（例えば、ライトバックポリシー）にまだ複製されていないので、モジュール１１０は、新しく不正なものとして書き込みデータをマークするために対応するメタデータをアップデートする。
【００４４】
書き込みデータが回路１０２（例えば、キャッシュヒット）で発見された場合、モジュール１０８は、キャッシュヒットで生じた１つ以上の既存のエクステントに追加のエクステントを割り当ててリンクする。その後、エクステントのグループは、あたかもキャッシュミスが生じたかのように、ステップ１８８と同一の方法で回路９４から占められる。新しい書き込みデータは、モジュール１１０によってステップ１９０で回路１０６ａ〜１０６ｎに加えられる。
【００４５】
図８を参照すると、読み取り要求を処理する方法２００の一例の流れ図が示される。方法（又は処理）２００は、回路１００で実現される。方法２００は、一般に、状態（又はステップ）２０２、状態（又はステップ）２０４、状態（又はステップ）２０６、状態（又はステップ）２０８、及び状態（又はステップ）２１０を備える。ステップ２０２〜２１０は、ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、又は他の実装として実現されるモジュール及び／又はブロックを表す。
【００４６】
ステップ２０２では、回路１０４は、信号ＤＨを通じて回路９２から読み取り要求を受信する。回路１０２にバッファされたキャッシュデータの探索は、回路１０４（例えば、モジュール１１０）によってステップ２０４で実行される。その探索は、読み取りデータのための適切なエクステントが既に回路１０２にあるか否かを判断する。適切なエクステントが回路１０２（例えば、キャッシュミス）で利用可能でない場合、回路１０４（例えば、モジュール１０８）は、ステップ２０６で読み取り要求を処理するために回路１０６ａ〜１０６ｎに１つ以上の未使用のエクステントを割り当てる。
【００４７】
割り当てられたエクステントが読み取り要求を処理するために利用可能ならば、モジュール１１０は、ステップ２０８で回路９４から読み取られたエクステントに対応する格納データを複製する。受信されたデータは、続いてモジュール１１０によってステップ２０８で適切な回路１０６ａ〜１０６ｎにバッファされる。ステップ２１０では、モジュール１１０は、要求された読み取りデータの複製をエクステントから回路９２に転送する。読み取りデータがステップ２０４（例えば、キャッシュヒット）で回路１０２に発見された場合において、回路１０４が要求された読み取りデータを回路９２に転送する場合、方法２００はステップ２１０を継続する。
【００４８】
図９を参照すると、エクステントを割り当てるための方法２２０の一例の流れ図が示される。方法（又は処理）２２０は、回路１００で実現される。方法２２０は、一般に、ステップ（又は状態）２２２、ステップ（又は状態）２２４、ステップ（又は状態）２２６、ステップ（又は状態）２２８、ステップ（又は状態）２３０、ステップ（又は状態）２３２、ステップ（又は状態）２３４、及びステップ（又は状態）２３６を備える。ステップ２２２〜２３６は、ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、又は他の実装として実現されるモジュール及び／又はブロックを表す。
【００４９】
ステップ２２２では、回路（例えば、モジュール１０８）は、要求を処理するために割り当てられるべき複数のエクステントを決定する。複数のエクステントは、バッファされたデータ量、及びデータに用いられる構成（例えば、冗長保護又は非冗長）のタイプに基づく。ステップ２２４で構成のタイプが非冗長と決定された場合、方法２２０は、ステップ２２６を継続する。回路１０４（例えば、モジュール１０８）は、回路９２から受信された読み取り要求に関連した非冗長構成に基づいて１つ以上のエクステントを割り当てる。割り当ては、一般に、ステップ２２６でエクステントの対応するパラメータを解放された値から割り当てられた（又はヌル）値に変更することを含む。１つ以上の生じたエクステント（例えば、図６のエクステント１６４）は、一般に、回路９４からデータで占められるための準備ができている。
【００５０】
ステップ２２４で構成のタイプが冗長と決定された場合、方法２２０は、ステップ２２８を継続する。ステップ２２８〜２３６の間、複数のエクステントは、複数のエクステントの別のエクステントを指示するために複数のエクステントのそれぞれに対応するパラメータのそれぞれを変更することによって、ダイナミックに相互リンクされる。ステップ２２８では、モジュール１０８は、カウンタを初期化する（例えば、Ｎ＝１）。ステップ２３０では、最初に割り当てられたエクステントの対応するパラメータは、次に割り当てられたエクステントを指示するためにアップデート（又は変更）される。カウンタは、モジュール１０８によってステップ２３２でアップデートされる。より多くのエクステントのためのチェックはステップ２３４で実行される。より多くのエクステントがグループにリンクされたならば、モジュール１０８は、続いてステップ２３０でエクステントを指示するために次のエクステントのパラメータをアップデートする。エクステントの全てがグループに加えられるまで、ステップ２３０〜２３４を廻るループは継続する。ステップ２３６では、モジュール１０８は、最初のエクステントに指示すべき最後のエクステントのパラメータのアップデートによってリンクを閉じる。エクステント（例えば、図６のグループ１６２）のもたらすグループは、データで占められるための準備ができている。
【００５１】
図１０を参照すると、エクステントを解放するための方法２４０の一例の流れ図が示される。方法（又は処理）２４０は、回路１００で実現される。方法２２０は、一般に、ステップ（又は状態）２４２、ステップ（又は状態）２４４、ステップ（又は状態）２４６、及びステップ（又は状態）２４８を備える。ステップ２４２〜２４８は、ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、又は他の実装として実現されるモジュール及び／又はブロックを表す。
【００５２】
ステップ２４２では、回路１０４（例えば、モジュール１１０）は、不正な書き込みデータを回路１０２から回路９４にフラッシュする。いくつかの状況では、書き込みデータは回路１０２から回路１０４に読み取られ、エラーが修正され、オリジナル形式がレストアされ、ＲＡＩＤ構成に配置され、及び回路１０４から回路９４に転送される。他の状況では、不正な書き込みデータは、回路１０６ａ〜１０６ｎのそれぞれから対応する回路９８ａ〜９８ｎにそのまま複製される。例えば、エクステントが２つ以上のデータブロック及び１つのパリティブロックとして編成される場合、データブロック及びパリティブロックのそれぞれは、信号ＤＢ及びＤＳを通じて適切な回路１０６ａ〜１０６ｎから対応する回路９８ａ〜９８ｎにそのまま複製される。
【００５３】
回路１０４（例えば、モジュール１０８）は、ステップ２４４でエクステントのどれがエクステントの正当なフラッシュされたグループ（just-flushed group）からアンリンクされ解放されたか否かを判断する。例えば、書き込みデータがミラーリング（例えば、ＲＡＩＤ１構成）によって保護される場合、両方のエクステントが書き込みデータの全てを含むので、何れかのエクステントは、アンリンクされ解放される。別の一例では、書き込みデータがＲＡＩＤ４形式で保護される場合、パリティデータをバッファするエクステントは、アンリンクされ解放される。ステップ２４６では、モジュール１０８は、選択されたエクステントをバイパスするために隣接するエクステントの対応するパラメータを変更することによって、選択されたエクステントをアンリンクする。ステップ２４８では、モジュール１０８は、選択されたエクステントのパラメータを解放された値に変更する。
【００５４】
図１１を参照すると、回路１０２に不正な書き込みをエラスティックにミラーリングすることによって得られるスペースを図示するグラフ２６０の図が示される。垂直軸に沿ったスペース利益は、一般に、ミラーリングしないデータをバッファするために利用可能になるエクステントの合計の割合を示す。グラフ２６０で図示されるように、より少ないエクステントがデータの書き込み部分を表すとき、スペース利益は増加する。エクステントの全てが不正な書き込みデータを保護するためにミラーリングされるとき（例えば、１００％）、０パーセントスペースセービングが実現される。エクステントのより低い割合がミラーリングされたデータをバッファするために用いられるとき、スペース利益はダイナミック（又はエラスティック）に増加する。エクステントのどれもミラーリングされたデータをバッファするために用いられないとき（例えば、０％）、ミラーリングされたデータを保持するために通常用いられる回路１０６ａ〜１０６ｎの５０％は、代わりに非不正な書き込みデータ及び／又は読み取りデータを保持するために利用可能である。
【００５５】
回路１００にバッファされたデータの読み取り／書き込みミックスに依存して、追加のキャッシュスペースは、エクステントのエラスティックなグループ化及び非グループ化によって解放される。空きキャッシュスペースにおける動的変化は、一般に、キャッシングメディア（例えば、回路１０６ａ〜１０６ｎ）の規定の投資額のために優れたキャッシュ保証範囲を提供する。従って、拡大する頻繁にアクセスされたデータを持ったサーバ（例えば、回路９２）は、追加の利用可能なキャッシュスペースの利点を得る。
【００５６】
本発明のいくつかの実施の形態は、一般に、キャッシュデバイスで通常発見される大部分のエクステント及びメタデータマネジメントインフラストラクチャを利用する。エラスティックにエクステントを割り当てて解放するための追加のパラメータは、既存のインフラストラクチャに加えて構築する。エクステントのグループを作成し、修正し、かつ消失させるための技術は、ミラーリング保護（例えば、ＲＡＩＤ１レベル）から他のＲＡＩＤレベルに保護を拡張する。更に、この技術は、一般に、冗長性が不正なデータに限定されるので、規定の量のホスト入力／出力データのための回路１０２への書き込みの数を低減する。回路１０６ａ〜１０６ｎがフラッシュメモリで実現される場合には、書き込みの数の低減は、規定のホスト入力／出力動作のためのフラッシュメディアの耐用年数を向上させる。
【００５７】
図１〜１１によって実行される機能は、従来のメインプロセッサ、デジタルコンピュータ、マイクロプロセッサ、マイクロコントローラ、ＲＩＳＣ（縮小命令型コンピュータ）プロセッサ、ＣＩＳＣ（複雑命令セットコンピュータ）プロセッサ、ＳＩＭＤ（単一命令多重データ）プロセッサ、信号プロセッサ、中央演算処理装置（ＣＰＵ）、算術論理演算装置（ＡＬＵ）、ビデオデジタル信号プロセッサ（ＶＤＳＰ）、及び／又は関連する技術分野における当業者に明らかであるように本明細書の教示に従ってプログラムされた同様の計算機の１つ以上を用いて実現される。適切なソフトウェア、ファームウェア、符号化、ルーチン、命令、オペコード、マイクロコード、及び／又はプログラムモジュールもまた関連する技術分野における当業者に明らかであるように本明細書の教示に基づいて熟練したプログラマによって容易に準備される。ソフトウェアは、一般に、機械実装のプロセッサの１つ以上によって１つの媒体又は複数の媒体から実行される。
【００５８】
本発明は、更にＡＳＩＣ（特定用途向け集積回路）、プラットホームＡＳＩＣ、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、ＰＬＤ（プログラマブルロジックデバイス）、ＣＰＬＤ（コンプレックスプログラマブルロジックデバイス）、シーゲート、ＲＦＩＣ（高周波集積回路）、ＡＳＳＰ（特定用途専用標準品）、１つ以上のモノリシック集積回路、１つ以上のチップ又はダイに配置されたフリップチップモジュール及び／又はマルチチップモジュールによって、又はここで説明されるように従来の構成回路の適切なネットワークを相互に接続することによって実現され、それらの修正は、技術分野における当業者に容易に明らかである。
【００５９】
本発明は、また本発明による１つ以上の処理又は方法を行うように機械をプログラムするために用いられる命令を含むコンピュータ製品である記憶媒体又は媒体及び／又は送信媒体又は媒体を含む。コンピュータ製品に包含される命令の機械による実行は、回路素子を取り巻く動作に加えて、入力データを記憶媒体で１つ以上のファイル、及び／又はオーディオ及び／又はビジュアルな描写のようなフィジカルオブジェクト又は実体の典型である１つ以上の出力信号に変換する。記憶媒体は、限定されるものではないが、フロッピー（登録商標）ディスク、ハードドライブ、磁気ディスク、光ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、及び光磁気ディスクを含む如何なるタイプのディスク、及びＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）、ＥＰＲＯＭ（電気的プログラム可能リードオンリメモリ）、ＥＥＰＲＯＭ（電気的消去可能リードオンリメモリ）、ＵＶＰＲＯＭ（紫外線消去可能リードオンリメモリ）、フラッシュメモリ、磁気カード、光カードのような回路、及び／又は電子命令の格納のために適切な如何なるタイプの媒体を含む。
【００６０】
本発明のエレメントは、１つ以上のデバイス、ユニット、コンポーネント、システム、機械及び／又は装置の一部又は全てを構成する。デバイスは、限定されるものではないが、サーバ、ワークステーション、記憶アレイコントローラ、記憶システム、パーソナルコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、パームコンピュータ、携帯情報端末、携帯電子デバイス、バッテリ駆動デバイス、セットトップボックス、エンコーダ、デコーダ、トランスコーダ、コンプレッサ、デコンプレッサ、プリプロセッサ、ポストプロセッサ、トランスミッタ、レシーバ、トランシーバ、サイファ回路、携帯電話、デジタルカメラ、ポジショニング及び／又はナビゲーションシステム、医療機器、ヘッドアップ表示装置、ワイヤレスデバイス、オーディオ録音、記憶及び／又は再生装置、ビデオ録画、記憶及び／又は再生装置、ゲームプラットホーム、周辺装置及び／又はマルチチップモジュールを含む。関連する技術分野における当業者は、特定用途の基準を満たす他のタイプのデバイスで、本発明のエレメントが実現されることを理解する。ここに用いられるように、用語「同時」は、いくらかの共通の時間を共有するイベントを説明することを意味しているが、この用語は、同一の時点で開始し、同一の時点で終了し、又は同一の継続時間を有するイベントに限定されることを意味しない。
【００６１】
本発明は、特にその好適な実施の形態に関して表され説明されたが、本発明の範囲から逸脱することなく、形式と細部の様々な変更なし得るであろうことが当業者によって理解されるであろう。
【図１】
2013156977.tif 000003
【図２】
2013156977.tif 000004
【図３】
2013156977.tif 000005
【図４】
2013156977.tif 000006
【図５】
2013156977.tif 000007
【図６】
2013156977.tif 000008
【図７】
2013156977.tif 000009
【図８】
2013156977.tif 000010
【図９】
2013156977.tif 000011
【図１０】
2013156977.tif 000012
【図１１】
2013156977.tif 000013
【外国語明細書】
2013156977000001.pdf