(57)【要約】【課題】メンバーディスクの性能を高め、消費電力を減少させること。【解決手段】キャッシュおよびディスク管理方法が提供される。キャッシュおよびディスク管理方法は、キャッシュに格納された全ての有効なデータの一部である特定データに対して削除命令を複数のメンバーディスクに送信する。結局、全ての有効なデータまたは特定データがキャッシュにのみ存在し、複数のメンバーディスクでは削除される。したがって、複数のメンバーディスクはより多い空間を確保し、内部的なコピーオーバーヘッドを軽減させることができ、特に、ソリッドステートディスクは優れる性能を達成することができる。【選択図】図３
2012523642.tif 000002
【特許請求の範囲】
【請求項１】
ホストからの対象データに対する読み出し要請に応答してキャッシュで前記対象データを検索するステップと、
前記検索結果に応じて前記キャッシュに複数のメンバーディスクから前記対象データをキャッシングするステップと、
前記対象データのキャッシングに応じて前記複数のメンバーディスクに前記対象データの削除命令を送信するステップと、
を含むことを特徴とするキャッシュおよびディスク管理方法。
【請求項２】
前記削除命令を送信するステップは、前記複数のメンバーディスクに前記キャッシュに格納された全ての有効なデータに対する削除命令を送信する第１削除ポリシー、または前記有効なデータのうち一部に対する削除命令を送信する第２削除ポリシーに応じて前記削除命令を送信するステップであることを特徴とする請求項１に記載のキャッシュおよびディスク管理方法。
【請求項３】
前記削除命令が送信されたか否かを考慮して前記キャッシングされた対象データの状態を設定するステップをさらに含むことを特徴とする請求項１に記載のキャッシュおよびディスク管理方法。
【請求項４】
前記キャッシングされた対象データは、パリティグループの新しいメンバーとして用いられることを特徴とする請求項１に記載のキャッシュおよびディスク管理方法。
【請求項５】
前記キャッシュで前記対象データが検索された場合、前記ホストに前記検索された対象データを送信するステップをさらに含むことを特徴とする請求項１に記載のキャッシュおよびディスク管理方法。
【請求項６】
前記複数のメンバーディスクはソリッドステートディスクであり、前記キャッシュはライトバックキャッシュであることを特徴とする請求項１に記載のキャッシュおよびディスク管理方法。
【請求項７】
前記キャッシュで前記対象データを検索するステップは、ダイレクトマッピング、フルアソシエイティブマッピング、またはセットフルアソシエイティブマッピングのいずれか１つを用いて前記キャッシュで前記対象データを検索するステップであることを特徴とする請求項１に記載のキャッシュおよびディスク管理方法。
【請求項８】
前記キャッシングされた対象データの状態は、前記削除命令が送信されたか否か、または前記キャッシングされた対象データが前記複数のメンバーディスクからキャッシングされたか否かを指示することを特徴とする請求項３に記載のキャッシュおよびディスク管理方法。
【請求項９】
ホストの対象データに対する書き込み要請に応答してキャッシュに前記対象データをキャッシングするステップと、
前記対象データのキャッシングに応じて前記複数のメンバーディスクに前記対象データの削除命令を送信するステップと、
を含むことを特徴とするキャッシュおよびディスク管理方法。
【請求項１０】
前記キャッシュに前記対象データをキャッシングするステップは、前記キャッシュに予め前記対象データが格納されていない場合、前記キャッシュでリプレースメントが発生することなく前記対象データをキャッシングするステップであり、
前記削除命令を送信するステップは、前記対象データをキャッシングした後に前記削除命令を送信するステップであることを特徴とする請求項９に記載のキャッシュおよびディスク管理方法。
【請求項１１】
前記削除命令が送信されたか否かを考慮して前記キャッシングされた対象データの状態を設定するステップをさらに含むことを特徴とする請求項９に記載のキャッシュおよびディスク管理方法。
【請求項１２】
前記キャッシュに前記対象データをキャッシングするステップは、前記キャッシュに予め前記対象データが格納されている場合に前記予め格納された対象データをアップデートするステップを含み、
前記削除命令を送信するステップは、前記複数のメンバーディスクに前記対象データが格納されている場合に前記削除命令を送信するステップであることを特徴とする請求項９に記載のキャッシュおよびディスク管理方法。
【請求項１３】
前記対象データをキャッシングするステップは、前記キャッシュに予め前記対象データが格納されず、前記キャッシュでリプレースメントが発生する場合、前記対象データをキャッシングする前に前記リプレースメントによるビクティムデータを前記複数のメンバーディスクにライトバックするステップを含むことを特徴とする請求項９に記載のキャッシュおよびディスク管理方法。
【請求項１４】
前記対象データをキャッシングするステップは、前記キャッシュに予め前記対象データが格納されていない場合、前記キャッシュでリプレースメントが発生する場合、前記複数のメンバーディスクに前記リプレースメントによるビクティムデータが格納されているか否かに応じて前記対象データをキャッシングする前に前記ビクティムデータを前記複数のメンバーディスクにライトバックするステップを含むことを特徴とする請求項９に記載のキャッシュおよびディスク管理方法。
【請求項１５】
前記対象データをキャッシングするステップは、前記対象データに基づいてアップデートされるパリティをキャッシングするステップを含むことを特徴とする請求項９に記載のキャッシュおよびディスク管理方法。
【請求項１６】
前記削除命令を送信するステップは、前記複数のメンバーディスクに前記パリティに対する削除命令を送信するステップを含むことを特徴とする請求項１５に記載のキャッシュおよびディスク管理方法。
【請求項１７】
前記対象データをキャッシングするステップは、
前記対象データに基づいてアップデートされるパリティをキャッシングするステップと、
前記対象データおよび前記パリティをキャッシングする前に前記リプレースメントによるビクティムデータおよび前記ビクティムデータに対応するビクティムパリティを前記複数のメンバーディスクにライトバックするステップと、
を含むことを特徴とする請求項１３に記載のキャッシュおよびディスク管理方法。
【請求項１８】
前記キャッシングされた対象データおよびパリティを前記キャッシュにディスクにミラーリングするステップをさらに含むことを特徴とする請求項１５に記載のキャッシュおよびディスク管理方法。
【請求項１９】
コンピュータに、請求項１ないし請求項１８のいずれか１項の方法の各ステップを実行させるためのプログラムが記録された、前記コンピュータで読み出し可能な記録媒体。
【請求項２０】
ホストの対象データに対する読み出し要請に応答してキャッシュで前記対象データを検索する検索部と、
前記検索結果に応じて前記キャッシュに複数のメンバーディスクから前記対象データをキャッシングするキャッシング部と、
前記対象データのキャッシングに応じて前記複数のメンバーディスクに前記対象データの削除命令を送信する削除命令送信部と、
を備えることを特徴とするコントローラ。
【請求項２１】
前記キャッシング部は、前記対象データに対する書き込み要請に応答して前記キャッシュに前記対象データをキャッシングすることを特徴とする請求項２０に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はキャッシュおよびディスクを管理する方法に関し、特に、キャッシュおよびディスクに共通して格納されたデータの処理技術に関する。
【背景技術】
【０００２】
近年、ソリッドステートディスク（solid state disk：ＳＳＤ）に関する関心が増加している。ソリッドステートディスクはハードディスクドライブ（hard disk drive）ではなく、フラッシュメモリ、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などを用いる。
【０００３】
したがって、ソリッドステートディスクは、ハードディスクドライブのために用いられるモータのような機械的な駆動装置を要求しないため、熱と騒音をほぼ発生させることなく動作することができる。それだけではなく、ソリッドステートディスクは外部の衝撃に強く、ハードディスクドライブに比べて高いデータ送信率を達成する。
【０００４】
一般に、ソリッドステートディスクは、ハードディスクとは異なり、空いている空間が増加するほど優れた性能を有し、その消費電力を減らし得る。また、ソリッドステートディスクに不要なデータが多く存在することは、内部的なコピーオーバーヘッドの増加、消費電力の増加を引き起こす場合があるため、不要なデータを適切に削除することが求められる。
【０００５】
また、ソリッドステートディスクにデータを書き込んだり、ソリッドステートディスクからデータを読み出す速度を高めたりするためにキャッシュが用いられる。すなわち、キャッシュは、頻繁に要請されるデータを格納しておくことによってアクセス速度を向上させる。ただし、特定のデータがキャッシュに格納される場合、一般的にキャッシュに格納された特定のデータは重複的にソリッドステートディスクにて格納される問題がある。このようなソリッドステートディスクに格納された特定のデータは不要なデータである。
【０００６】
したがって、キャッシュおよびソリッドステートディスクの関係を適切に考慮してデータを損失することなく、ソリッドステートディスクに存在する不要なデータを削除することのできる技術が求められる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の一実施形態に係るキャッシュおよびディスク管理方法、コントローラは、キャッシュおよびメンバーディスクで重複するデータに対してメンバーディスクに削除命令を送信することによって、メンバーディスクの性能を高め、消費電力を減少させることを目的とする。
【０００８】
また、本発明の一実施形態に係るキャッシュおよびディスク管理方法、コントローラは、キャッシュに格納されているデータの状態を適切に設定することによって、効率よくキャッシュおよびディスクを管理することを目的とする。
【０００９】
また、本発明の一実施形態に係るキャッシュおよびディスク管理方法およびコントローラは、データを適切にアップデートしたりライトバックしたりするだけではなく、キャッシュに格納されたデータの状態を適切に設定することによって、データの損失を防止することを目的とする。
【００１０】
また、本発明の一実施形態に係るキャッシュおよびディスク管理方法およびコントローラは、ミラーリング方式などが適用されるライトバックキャッシュを用いることによって、データの損失による危険を減らすことを目的とする。
【００１１】
また、本発明の一実施形態に係るキャッシュおよびディスク管理方法およびコントローラは、パリティが要求される環境において適用され得るソリューションを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一実施形態に係るキャッシュおよびディスク管理方法は、ホストの対象データに対する読み出し要請に応答してキャッシュで前記対象データを検索するステップと、前記検索結果に応じて前記キャッシュに複数のメンバーディスクから前記対象データをキャッシングするステップと、前記対象データのキャッシングに応じて前記複数のメンバーディスクに前記対象データの削除命令を送信するステップとを含む。ここで、前記複数のメンバーディスクはソリッドステートディスクであり、前記キャッシュはライトバックキャッシュであってもよい。
【００１３】
また、前記削除命令を送信するステップは、前記複数のメンバーディスクに前記キャッシュに格納された全ての有効なデータに対する削除命令を送信する第１削除ポリシー、または前記有効なデータのうち一部に対する削除命令を送信する第２削除ポリシーに応じて前記削除命令を送信するステップであってもよい。
【００１４】
ここで、前記キャッシングされた対象データは、パリティグループの新しいメンバーとして用いられてもよい。
【００１５】
ここで、前記キャッシュで前記対象データを検索するステップは、ダイレクトマッピング、フルアソシエイティブマッピング、またはセットフルアソシエイティブマッピングのいずれか１つを用いて前記キャッシュで前記対象データを検索するステップであってもよい。
【００１６】
本発明の一実施形態に係るキャッシュおよびディスク管理方法は、前記削除命令が送信されたか否かを考慮して前記キャッシングされた対象データの状態を設定するステップをさらに含んでもよい。ここで、前記キャッシングされた対象データの状態は、前記削除命令が送信されたか否か、または前記キャッシングされた対象データが前記複数のメンバーディスクからキャッシングされたか否かを指示する。
【００１７】
本発明の一実施形態に係るキャッシュおよびメンバーディスクを管理する方法は、前記キャッシュで前記対象データが検索された場合、前記ホストに前記検索された対象データを送信するステップをさらに含んでもよい。
【００１８】
また本発明の他の実施形態に係るキャッシュおよびディスク管理方法は、ホストの対象データに対する書き込み要請に応答してキャッシュに前記対象データをキャッシングするステップと、前記対象データのキャッシングに応じて前記複数のメンバーディスクに前記対象データの削除命令を送信するステップとを含む。
【００１９】
ここで、前記キャッシュに前記対象データをキャッシングするステップは、前記キャッシュに予め前記対象データが格納されていない場合、前記キャッシュでリプレースメントが発生することなく前記対象データをキャッシングするステップであってもよい。一方、前記対象データをキャッシングするステップは、前記キャッシュに予め前記対象データが格納されず、前記キャッシュでリプレースメントが発生する場合、前記対象データをキャッシングする前に前記リプレースメントによるビクティム（victim;犠牲）データを前記複数のメンバーディスクにライトバックするステップであってもよい。
【００２０】
また、前記キャッシュに前記対象データをキャッシングするステップは、前記キャッシュに予め前記対象データが格納されている場合に前記予め格納された対象データをアップデートするステップを含み、前記削除命令を送信するステップは、前記複数のメンバーディスクに前記対象データが格納されている場合に前記削除命令を送信するステップであってもよい。
【００２１】
特に、前記対象データをキャッシングするステップは、前記対象データに基づいてアップデートされるパリティをキャッシングするステップを含み、前記削除命令を送信するステップは、前記複数のメンバーディスクに前記パリティに対する削除命令を送信するステップであってもよい。
【００２２】
本発明の他の実施形態に係るキャッシュおよびディスク管理方法は、前記削除命令が送信されたか否かを考慮して前記キャッシングされた対象データの状態を設定するステップおよび前記キャッシングされた対象データおよびパリティを前記キャッシュにディスクにミラーリングミラーリングするステップをさらに含んでもよい。
【発明の効果】
【００２３】
本発明の一実施形態に係るキャッシュおよびディスク管理方法およびコントローラは、キャッシュおよびメンバーディスクで重複するデータに対してメンバーディスクに削除命令を送信することによって、メンバーディスクの性能が高められ、消費電力を減少させることができる。
【００２４】
また、本発明の一実施形態に係るキャッシュおよびディスク管理方法およびコントローラは、キャッシュに格納されているデータの状態を適切に設定することによって、効率よくキャッシュおよびディスクを管理することができる。
【００２５】
また、本発明の一実施形態に係るキャッシュおよびディスク管理方法およびコントローラは、データを適切にアップデートしたりライトバックしたりするだけではなく、キャッシュに格納されたデータの状態を適切に設定することによって、データの損失を防止することができる。
【００２６】
また、本発明の一実施形態に係るキャッシュおよびディスク管理方法およびコントローラは、ミラーリング方式などが適用されるライトバックキャッシュを用いることによって、データの損失による危険を減らすことができる。
【００２７】
また、本発明の一実施形態に係るキャッシュおよびディスク管理方法およびコントローラは、パリティが要求される環境でもよく適用されることができるソリューションを提供することができる。
【図面の簡単な説明】
【００２８】
【図１】関連技術に係るコントローラ、キャッシュ、および複数のメンバーディスクを示す図である。
【図２】本発明の一実施形態によってメンバーディスクに削除命令が送信されるケースの一例を示す図である。
【図３】本発明の第１削除ポリシーが適用される場合、データ状態の間の関係を示した状態フローチャートである。
【図４】キャッシュでリプレースメントが発生する場合に本発明の動作例を示す図である。
【図５】パリティを格納するメンバーディスクが存在する場合に本発明の動作例を示す図である。
【図６】本発明の第２削除ポリシーが適用される場合にデータ状態の間の関係を示した状態フローチャートである。
【図７】本発明の一実施形態に係るミラーリング方式を用いるキャッシュを示す図である。
【図８】本発明の一実施形態に係るコントローラを示すブロック図である。
【発明を実施するための形態】
【００２９】
以下、本発明に係る好適な実施形態を添付する図面を参照しながら詳説する。
【００３０】
図１は、関連技術に係るコントローラ、キャッシュ、および複数のメンバーディスクを示す図である。
【００３１】
図１を参照すると、ストレージシステムは、コントローラ１１０、複数のメンバーディスク１２０、およびキャッシュ１３０を含む。
【００３２】
一般に、アクセス速度を高めるために頻繁に要請されるデータはキャッシュ１３０に格納される。例えば、頻繁に読み出し要請されるデータは予めキャッシュ１３０に格納され、キャッシュ１３０に予め格納されたデータのうち現在の読み出し要請されたデータが存在する場合、複数のメンバーディスク１２０へのアクセスなしでキャッシュ１３０からホストに直接的に現在の読み出し要請されたデータが送信される。
【００３３】
ここで、キャッシュ１３０に予め格納されたデータは複数のメンバーディスク１２０に重複的に格納されていることが分かる。このとき、複数のメンバーディスク１２０に重複的に格納されたデータはアクセスされないため、不要なデータである場合がある。特に、複数のメンバーディスク１２０がソリッドステートディスクである場合、不要なデータは内部的コピーオーバーヘッドおよび消費電力を増加させてもよい。したがって、不要なデータを複数のメンバーディスク１２０から適切に削除する必要がある。
【００３４】
図２は、本発明の一実施形態によってメンバーディスクに削除命令が送信されるケースの一例を示す図である。
【００３５】
図２を参照すると、メンバーディスク（１）２２１にはデータＡ１、Ｂ１、Ｃ１が格納され、メンバーディスク（２）２２２にはデータＡ２、Ｂ２、Ｃ２が格納されている。そして、キャッシュ２１０にはメンバーディスク（１）２２１のデータＡ１およびメンバーディスク（２）２２２のデータＢ２が格納されている。
【００３６】
ホストからデータＡ１に対する読み出し要請が受信される場合、コントローラは、メンバーディスク（１）２２１にアクセスすることなく、キャッシュ２１０に予め格納されたデータＡ１を読み出してホストに返還する。同様に、ホストからデータＢ２に対する読み出し要請が受信される場合、コントローラはメンバーディスク（２）２２２にアクセスすることなく、キャッシュ２１０に予め格納されたデータＢ２を読み出してホストに返還する。したがって、メンバーディスク（１）２２１に格納されたデータＡ１およびメンバーディスク（２）２２２に格納されたデータＢ２は不要である。
【００３７】
このとき、本発明の一実施形態によると、キャッシュ２１０にデータＡ１、Ｂ２がキャッシングされる場合、メンバーディスク（１）２２１およびメンバーディスク（２）２２２に削除命令が送信される。すなわち、キャッシュ２１０にデータＡ１、Ｂ２がキャッシングされる場合、メンバーディスク（１）２２１に格納されたデータＡ１およびメンバーディスク（２）２２２に格納されたデータＢ２は削除されるため、メンバーディスク（１）２２１およびメンバーディスク（２）２２２の残っている空間（free space）は増加する。ここで、削除命令は、本発明が属する技術分野において用いられる「ＴＲＩＭ」命令であってもよい。参考に、本発明に係るキャッシュはライトバックキャッシュとして、バッテリを有するＤＲＡＭ（battery backup ＤＲＡＭ）または不揮発性（Non volatile）メモリであってもよい。
【００３８】
下記は本発明の多様な実施形態を具体的に説明する。
【００３９】
図３は、本発明の第１削除ポリシーが適用される場合、データ状態の間の関係を示した状態フローチャートである。
【００４０】
図３を参照すると、第１削除ポリシーが適用される場合、本発明の一実施形態に係るデータの状態は３種類のタイプ（invalid、exclusive、modified）のいずれか１つに決定される。ここで、状態の３種類タイプは削除命令が送信されたか否か、またはホストの書き込み要請に応じてアップデートされたか否かなどに応じて互いに区別される。
【００４１】
また、第１削除ポリシーは第２削除ポリシーと対比されることによって、第１削除ポリシーによると、キャッシュに格納された全ての有効なデータがメンバーディスクから削除される一方、第２削除ポリシーによると、キャッシュに格納された有効なデータのうち特定タイプの状態を有するデータのみが削除される。第１削除ポリシーによる実現を「fully exclusive implementation」とし、第２削除ポリシーに係る実現を「partially exclusive implementation」と呼ぶことにする。
【００４２】
第１削除ポリシーによると、重複するデータを削除することによって獲得する有利な点などを極大化する一方、削除命令によるトラフィックが増加する問題がある。一方、第２削除ポリシーによると、第１削除ポリシーに比べて少ない量の空いている空間を確保し、削除命令によるトラフィックを減らすことができる。
【００４３】
（１）fully exclusive implementationで「read miss」が発生する場合
ホストから対象データに対する読み出し要請が発生した場合、コントローラはキャッシュで対象データを検索する。このとき、コントローラは、ダイレクトマッピング（direct mapping）、フルアソシエイティブマッピング（fully associative mapping）またはセットフルアソシエイティブマッピング（set-associative mapping）のいずれか１つを用いてキャッシュで対象データを検索する。
【００４４】
対象データが予めキャッシュに格納されていない場合、「read miss」が発生する。「read miss」の発生とは、有効なデータがキャッシュに格納されていないことを意味し、このときの対象データの状態は「invalid」のように表現される。
【００４５】
「read miss」が発生した場合、コントローラは適切なメンバーディスクで読み出し要請を送信し、メンバーディスクは読み出し要請に応答して対象データを返還する。このような対象データはホストに送信される。このとき、コントローラはメンバーディスクから返還された対象データをキャッシュに格納する。そして、第１削除ポリシーによると、キャッシュに格納された全ての有効なデータはメンバーディスクから削除されるため、コントローラは対象データに対する削除命令をメンバーディスクに送信する。また、キャッシュに格納された対象データの状態は「exclusive」のように設定され、ここで、対象データの状態が「exclusive」であることは「read miss」が発生した場合、第１削除ポリシーに応じてメンバーディスクから対象データが削除されたことを指示する。
【００４６】
（２）fully exclusive implementationで「read hit」が発生する場合
キャッシュにホストによって読み出し要請された対象データが予め格納されている場合、「read hit」が発生する。このとき、コントローラはキャッシュから対象データを抽出してホストに提供する。また、キャッシュに格納されたデータの状態は変わらない。図３に記載の「modified」の状態については下記で説明する。
【００４７】
（３）  fully exclusive implementationで「write miss」が発生する場合
【００４８】
（３−１）リプレースメントが要求されない場合
ホストによって書き込み要請された対象データがキャッシュに予め格納されていない場合、「write miss」が発生する。有効な対象データがキャッシュに格納されていないため、対象データの現在の状態は「invalid」であると予測される。
【００４９】
「write miss」が発生した場合、対象データはキャッシュに用いられる。そして、対象データのキャッシングに応じて、コントローラはメンバーディスクに対象データの削除命令を送信する。このとき、キャッシングされた対象データの状態は「invalid」から「modified」に変更される。「modified」の状態とは有効なデータの状態を指示し、ホストの書き込み要請に応じてキャッシュにアップデートされたデータの状態を意味する。もちろん、上記にて説明したように、「read hit」が発生する場合、キャッシュに格納されたデータの「modified」の状態はそのまま維持される。
【００５０】
（３−２）リプレースメントが要求される場合
「write miss」が発生した場合、対象データがキャッシュに用いられるためキャッシュでリプレースメントが発生することがある。例えば、キャッシュが充填された場合、対象データをキャッシュに用いるためにはビクティム(victim)データを含むビクティムラインが選択される。
【００５１】
ビクティムラインの状態が「invalid」である場合、（３−１）で説明したリプレースメントが要求されない場合の動作が行われる。
【００５２】
ただし、ビクティムラインの状態が「exclusive」である場合、ビクティムデータはキャッシュにのみ格納され、メンバーディスクには格納されない。したがって、このような場合、データの損失を防止するためにコントローラはビクティムデータをメンバーディスクにライトバックする。そして、コントローラは、キャッシュのビクティムラインに対象データを用いて削除命令をメンバーディスクに送信する。
【００５３】
これに類似して、ビクティムラインの状態が「modified」である場合にも、ビクティムデータはキャッシュにのみ格納され、メンバーディスクには格納されないため、コントローラはビクティムデータをメンバーディスクにライトバックする。そして、コントローラは、ビクティムラインの状態が「exclusive」である場合のように、キャッシュのビクティムラインに対象データを用いて削除命令をメンバーディスクに送信する。
【００５４】
また、新しく用いられた対象データの状態は「modified」のように設定される。
【００５５】
（４）  fully exclusive implementationで「write hit」が発生する場合
キャッシュに予め対象データが格納されて「write hit」が発生した場合、キャッシュに予め格納された対象データの状態は「exclusive」または「modified」である。このとき、コントローラは、キャッシュに予め格納された対象データをアップデートし、アップデートされた対象データの状態を「modified」に設定する。また、対象データの状態が「exclusive」または「modified」であるため、削除命令の送信は要求されない。
【００５６】
図４は、キャッシュでリプレースメントが発生する場合に本発明の動作例を示す図である。
【００５７】
図４を参照すると、キャッシュ４１０の全てのラインにはデータＸ、Ｙ、Ｚが満たされている。ホストがデータＡに対する書き込み要請を送信した場合、「write miss」が発生する。
【００５８】
このとき、データＡはキャッシュ４１０に用いられる。ただし、キャッシュ４１０は充填されているため、キャッシュ４１０のラインのいずれか１つがビクティムラインとして選択される。ここでは、データＺの格納されたラインがビクティムラインとして選択されたと仮定する。
【００５９】
コントローラは、ビクティムデータＺをメンバーディスク（１）４２１にライトバックする。そして、データＡはキャッシュ４１０に用いられ、メンバーディスク（２）４２２に格納されたデータＡに対する削除命令がメンバーディスク（２）４２２に送信される。
【００６０】
図５は、パリティを格納するメンバーディスクが存在する場合に本発明の動作例を示す図である。
【００６１】
図５を参照して説明する前に、本発明はパリティを有するストレージシステムにも適用され得る。
【００６２】
「read miss」が発生した場合、キャッシュに対象データが格納されることについて前述した。このとき、ストレージシステムがパリティを有する場合に、キャッシングされた対象データはパリティグループの一部として用いられる。すなわち、キャッシングされた対象データは、パリティディスクのパリティの代わりに使えない（failed）ディスクを補償するために用いてもよい。
【００６３】
リプレースメントすることなく「write miss」が発生した場合、対象データはメンバーディスクに新しく用いられる。メンバーディスクに対象データが新しく用いられたため、以前のパリティもアップデートしなければならない。このとき、コントローラはメンバーディスクから対象データだけではなく、パリティディスクから以前のパリティを読み出し、対象データに対応する新しいパリティを算出する。そして、コントローラは、キャッシュに新しいパリティおよび対象データを用いた後、パリティディスクおよびメンバーディスクに削除命令を送信する。キャッシュに用いられた新しいパリティおよび対象データの状態は「ｍｏｄｉｆｉｅｄ」に変更される。
【００６４】
パリティを有するストレージシステムにおいて、リプレースメントと共に「write miss」が発生した場合、前述した過程と同じ過程が行われる。ただし、ビクティムデータまたはビクティムパリティをライトバックする過程が追加的に行われる。
【００６５】
また、パリティを有するストレージシステムにおいて、リプレースメントと共に「write hit」が発生した場合、対象データの現在の状態が「invalid」であれば、「read miss」が発生した場合と同じ動作が行われる。ただし、対象データの現在の状態が「exclusive」であるか、「modified」であれば、多少異なる動作が行われる。より具体的には、パリティがキャッシュにあれば、パリティディスクから新しくパリティを読み出す必要がなく新しいパリティが算出される。そして、対象データおよび新しいパリティはキャッシュにアップデートされる。ただし、パリティをメンバーディスクから読み出す必要があれば、コントローラはパリティを読み出した後削除命令を送信する。
【００６６】
図５を参照すると、メンバーディスク（１）５２１には本来のデータＡが格納されており、パリティディスクのメンバーディスク（２）５２２には本来のパリティＰ１が格納されている。このとき、ホストのデータＢに対する書き込み要請に応答して「write miss」が発生した場合、本来のデータＡがデータＢに変更されることによって、本来のパリティＰ１は新しいパリティＰ２に変更しなければならない。
【００６７】
コントローラは、アップデートされたデータＢおよび新しいパリティＰ２をキャッシュに格納し、メンバーディスク（１）５２１およびメンバーディスク（２）５２２に削除命令を送信する。
【００６８】
図６は、本発明の第２削除ポリシーが適用される場合にデータ状態の間の関係を示した状態フローチャートである。
【００６９】
図６を参照すると、第２削除ポリシーが適用される場合、本発明の一実施形態に係るデータの状態は３種類のタイプ（invalid、valid、modified）のいずれか１つに決定される。ここで、状態の３種類のタイプは削除命令が送信されたか否か、またはホストの書き込み要請に応じてアップデートされたか否かなどに応じて区別される。前述したように、第２削除ポリシーによると、キャッシュに格納された有効なデータのうち特定タイプの状態を有するデータだけが削除される。
【００７０】
（５）partially exclusive implementationで「read miss」が発生する場合
「read miss」が発生した場合、コントローラは適切なメンバーディスクに読み出し要請を送信し、メンバーディスクは読み出し要請に応答して対象データを返還する。このような対象データはホストに送信される。このとき、コントローラは、メンバーディスクから返還された対象データをキャッシュに格納し、キャッシングされた対象データの状態を「ｖａｌｉｄ」に設定する。第２削除ポリシーによると、キャッシュに格納された全ての有効なデータはメンバーディスクから削除されることなく、特定タイプである「exclusive」状態のデータのみをメンバーディスクから削除される。したがって、キャッシングされた対象データに対する削除命令はメンバーディスクに送信されない。
【００７１】
（６）partially exclusive implementationで「read hit」が発生する場合
コントローラはキャッシュから対象データを抽出してホストに提供する。また、キャッシュに格納されたデータの状態は変わらない。
【００７２】
（７）partially exclusive implementationで「write miss」が発生する場合
【００７３】
（７−１）リプレースメントが要求されない場合
「write miss」が発生した場合、対象データはキャッシュに用いられる。そして、対象データのキャッシングに応じて、コントローラはメンバーディスクに対象データの削除命令を送信する。そして、キャッシングされた対象データの状態は「modified」に設定される。
【００７４】
（７−２）リプレースメントが要求される場合
ビクティムデータを含むビクティムラインが選択される。ビクティムラインの状態が「valid」である場合、コントローラはビクティムデータを新しいデータに上書きする。そして、コントローラは削除命令をメンバーディスクに送信する。そして、コントローラは、キャッシュのビクティムラインに対象データを用いて削除命令をメンバーディスクに送信する。また、新しく用いられた対象データの状態は「modified」に設定される。
【００７５】
また、ビクティムラインの状態が「modified」である場合、コントローラはビクティムデータをメンバーディスクにライトバックし、ビクティムデータを新しいデータに上書きする。
【００７６】
（８）  partially exclusive implementationで「write hit」が発生する場合
キャッシングされた対象データの状態が「valid」である場合、コントローラはキャッシングされた対象データをアップデートし、削除命令をメンバーディスクに送信する。ただし、キャッシングされた対象データの状態が「modified」である場合、メンバーディスクには対象データが存在しないため、キャッシングされた対象データはアップデートされる一方削除命令は送信されない。そして、アップデートされた対象データの状態は「modified」に設定される。
【００７７】
partially exclusive implementationに適用される本発明の動作原理はパリティを有するストレージシステムにも同一に適用してもよい。すなわち、「read miss」が発生する場合、および「read hit」が発生する場合には前述した動作がそのまま行われる。
【００７８】
ただし、リプレースメントすることなく「write miss」が発生した場合、以前のパリティもアップデートされなければならないため、コントローラは対象データに対応する新しいパリティを算出する。そして、コントローラはキャッシュに新しいパリティおよび対象データを用いた後、パリティディスクおよびメンバーディスクに削除命令を送信する。キャッシュに用いられた新しいパリティおよび対象データの状態は「modified」に変更される。
【００７９】
また、パリティを有するストレージシステムにおいて、リプレースメントと共に「write miss」が発生した場合、リプレースメントなしに「write miss」が発生した場合、行われる過程と同じ過程が行われる。ただし、次の過程が追加的に行われる。すなわち、必要な場合、対象データおよび新しいパリティのためのビクティムラインを選択してもよい。それだけではなく、ビクティムデータまたはビクティムパリティの状態が「valid」である場合、コントローラは対象データまたは新しいパリティをビクティムラインに上書きした後、対象データまたは新しいパリティの状態を「modified」に変更する。また、ビクティムデータまたはビクティムパリティの状態が「modified」である場合、コントローラはビクティムデータまたはビクティムパリティをライトバックした後、対象データまたは新しいパリティをキャッシュに用いる。
【００８０】
図７は、本発明の一実施形態に係るミラーリング方式を用いるキャッシュを示す図である。
【００８１】
図７に示す例示を説明する前に、fully exclusive implementationで、キャッシュコンテンツの余剰分（redundancy）を有することはキャッシュの損傷によるリスクを減らすために効果的である。特に、キャッシュはデータおよびパリティを含んでもよいため、キャッシュの損傷によるリスクを減らすことは重要な問題である。
【００８２】
キャッシュの損傷によるリスクを減らすために、キャッシュそのものをミラーリングする方法も良いアイディアである。すなわち、キャッシュそのものを他のキャッシュまたは特定のメンバーディスクにミラーリングすることを考慮してもよい。
【００８３】
図７を参照すると、全体キャッシュ７１０は、オリジナルキャッシュ７１１およびミラーリングされたキャッシュ７１２に分類されてもよい。このとき、オリジナルキャッシュ７１１およびミラーリングされたキャッシュ７１２は、別のユニットに離れて設けられてもよい。オリジナルキャッシュ７１１の損傷にもかかわらずミラーリングされたキャッシュ７１２が存在する場合、データの損失を防止することができる。
【００８４】
図７に示すものとは異なって、キャッシュはメンバーディスクにもミラーリングされることは当然のことである。
【００８５】
図８は、本発明の一実施形態に係るコントローラを示すブロック図である。
【００８６】
図８を参照すると、本発明の一実施形態に係るコントローラは、検索部、キャッシング部、削除命令送信部を備える。
【００８７】
検索部は、ホストの対象データに対する読み出し要請または書き込み要請に応答してキャッシュで対象データを検索する。
【００８８】
また、キャッシング部は、検索結果に応じてキャッシュに複数のメンバーディスクから対象データをキャッシングする。
【００８９】
また、削除命令送信部は、対象データのキャッシングに応じて複数のメンバーディスクに対象データの削除命令を送信する。このとき、削除命令送信部は、複数のメンバーディスクにキャッシュに格納された全ての有効なデータに対する削除命令を送信する第１削除ポリシーまたは有効なデータのうち一部に対する削除命令を送信する第２削除ポリシーに応じて削除命令を送信してもよい。
【００９０】
また、図８には示していないが、コントローラは、削除命令が送信されたか否かを考慮してキャッシングされた対象データの状態を設定する状態設定部をさらに備えてもよい。
【００９１】
図８に示されたコントローラについて、図１ないし図７を参照して説明した内容がそのまま適用され得るため、その詳説は省略する。
【００９２】
本発明に係るコントローラの動作方法は、ハードウェア、ソフトウェア、ハードウェア、およびソフトウェアの組み合わせにより実現可能である。このとき、本発明に係るコントローラの動作方法を行うためのソフトウェアは、 多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうちの１つまたはその組み合わせを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例としては、コンパイラによって生成されるような機械語コード（machine code）だけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コード（higher level code）を含む。上述したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアのレイヤで動作するように構成されてもよい。
【００９３】
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【００９４】
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
【図１】
2012523642.tif 000003
【図２】
2012523642.tif 000004
【図３】
2012523642.tif 000005
【図４】
2012523642.tif 000006
【図５】
2012523642.tif 000007
【図６】
2012523642.tif 000008
【図７】
2012523642.tif 000009
【図８】
2012523642.tif 000010
【国際調査報告】
2012523642.tif 000011
2012523642.tif 000012
2012523642.tif 000013
2012523642.tif 000014