(57)【要約】【課題】メモリデバイスの寿命短縮を防止する。【解決手段】ストレージ制御部１０に含まれるメモリ部１２内の１次キャッシュメモリ１２ａは、データストリーム化を行うためのストリーム管理テーブルのデータ構造を格納するストリーム管理バッファ１２ａ１を含む。２次キャッシュメモリ１２ｂには、ＮＡＮＤ型フラッシュメモリが適用される。制御部１１は、データをストリーム単位で書き込むためのストリーム化制御を行う。この場合、制御部１１は、論理アドレスの単位で第１のデータを１次キャッシュメモリ１２ａへ書き込み、１次キャッシュメモリ１２ａに格納されていた第２のデータが第１のデータの書き込みによって押し出された場合、２次キャッシュメモリ１２ｂの記憶領域内で複数の物理アドレスが連続するストリームの単位で、第２のデータを２次キャッシュメモリ１２ｂに書き込む。【選択図】図４
2020115275.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶装置と、
データの更新時に前記データが格納されている記憶領域を無効領域にして、更新後の前記データを空き領域に格納する第２の記憶装置と、
論理アドレスによる第１のデータの書き込み要求の受信時に前記論理アドレスの単位で前記第１のデータを前記第１の記憶装置へ書き込み、前記第１の記憶装置に格納されていた第２のデータが前記第１のデータの書き込みによって追い出し対象になった場合に、
前記第２の記憶装置における消去単位の記憶領域内で複数の物理アドレスが連続する書き込みが実施されるストリーム制御コマンドを発行してストリームの単位で追い出し対象の前記第２のデータを前記第２の記憶装置に書き込む制御部と、
を有する情報処理装置。
【請求項２】
前記第２の記憶装置は、前記ストリームの単位を指定した前記ストリーム制御コマンドに対応するインタフェースを有し、書き換え回数に制限を有する記憶装置である請求項１記載の情報処理装置。
【請求項３】
前記制御部は、前記第２のデータが前記第２の記憶装置に書き込まれている前記ストリームに収まりきらない場合、新規ストリームを生成して前記新規ストリームによって前記第２のデータを前記第２の記憶装置へ書き込む請求項１記載の情報処理装置。
【請求項４】
前記制御部は、前記第２の記憶装置に書き込まれた前記ストリームが最大量に達した場合、前記ストリームの最終アクセス時間が最古の最古ストリームを前記第２の記憶装置から削除し、前記制御部に接続される記憶装置に前記最古ストリームを書き込む請求項１記載の情報処理装置。
【請求項５】
前記第１の記憶装置は、ストリーム管理バッファを含み、前記制御部は、前記ストリーム管理バッファに追い出し対象になった前記第２のデータが一定数溜まった場合に、前記第２のデータを前記第２の記憶装置に書き込む請求項１記載の情報処理装置。
【請求項６】
コンピュータに、
第１の記憶装置と、データの更新時に前記データが格納されている記憶領域を無効領域にして、更新後の前記データを空き領域に格納する第２の記憶装置との制御を行い、
論理アドレスによる第１のデータの書き込み要求の受信時に前記論理アドレスの単位で前記第１のデータを前記第１の記憶装置へ書き込み、前記第１の記憶装置に格納されていた第２のデータが前記第１のデータの書き込みによって追い出し対象になった場合に、
前記第２の記憶装置における消去単位の記憶領域内で複数の物理アドレスが連続する書き込みが実施されるストリーム制御コマンドを発行してストリームの単位で追い出し対象の前記第２のデータを前記第２の記憶装置に書き込む、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
ストレージシステムは、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置と、記憶装置の制御を行うストレージ制御部とを有して、情報処理で扱う大量のデータを記録管理する。ストレージ制御部では、複数段階の異なるキャッシュメモリを搭載することにより、記憶装置へのアクセス数を減少させてＩ／Ｏ処理の高速化を図っている。
【０００３】
一方、記憶装置の接続インタフェースとしては、ＳＣＳＩ（Small Computer System Interface）よりも高速で拡張性の高いＳＡＳ（Serial Attached SCSI）インタフェースの採用が広まっている。
【０００４】
ＳＡＳインタフェースを持つデバイスには、例えば、ＮＡＮＤ（否定論理積）論理回路を格子状に並べて配置したＮＡＮＤ型フラッシュメモリがある。ＳＳＤには主にＮＡＮＤ型フラッシュメモリが搭載されている。
【０００５】
ＮＡＮＤ型フラッシュメモリは、磁気ディスクに比べて高速であり、モータ等の駆動部を要しないため故障率が低く、また低消費電力である等の特徴を有している。
従来のストレージ技術として、一括して無効化されることが期待されるデータの集合であるストリームデータを識別子に関連付けて、複数のストリームデータのそれぞれを識別子により識別して送信するホストと通信を行う技術が提案されている。また、受信データをバッファに保存し、バッファに保存した書込みデータを書込みアドレスの順序に並び替えてストリームデータとして出力する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−８８１３７号公報
【特許文献２】特開２０１８−２２２７５号公報
【特許文献３】特開２０１０−１７６５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のようなＮＡＮＤ型フラッシュメモリを、キャッシュメモリに対して適用することで低消費電力化が促進される。しかし、ＮＡＮＤ型フラッシュメモリは、データの書き込み頻度が高くなるほど劣化が進んで寿命が消費されるという構造上の特性を有している。
【０００８】
このため、ＮＡＮＤ型フラッシュメモリを記憶装置よりも書き込み頻度の高いキャッシュメモリに適用すると、キャッシュメモリの寿命の短縮が顕著に生じるという問題がある。
【０００９】
１つの側面では、本発明は、メモリデバイスの寿命延伸を図った情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、情報処理装置が提供される。情報処理装置は、第１の記憶装置と、データの更新時にデータが格納されている記憶領域を無効領域にして、更新後のデータを空き領域に格納する第２の記憶装置と、論理アドレスによる第１のデータの書き込み要求の受信時に論理アドレスの単位で第１のデータを第１の記憶装置へ書き込み、第１の記憶装置に格納されていた第２のデータが第１のデータの書き込みによって追い出し対象になった場合に、第２の記憶装置における消去単位の記憶領域内で複数の物理アドレスが連続する書き込みが実施されるストリーム制御コマンドを発行してストリームの単位で追い出し対象の第２のデータを第２の記憶装置に書き込む制御部とを有する。
【００１１】
また、上記課題を解決するために、コンピュータに上記情報処理装置と同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１２】
１側面によれば、メモリデバイスの寿命延伸を図ることが可能になる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置の一例を説明するための図である。
【図２】記憶装置の寿命の違いを説明するための図である。
【図３】ＮＡＮＤ型フラッシュメモリの構造の一例を示す図である。
【図４】ストレージシステムの構成の一例を示す図である。
【図５】ストレージ制御部のハードウェア構成の一例を示す図である。
【図６】ＬＢＡによるデータ格納管理の一例を示す図である。
【図７】ストリーム単位によるデータ格納管理の一例を示す図である。
【図８】ストリーム管理テーブルの一例を示す図である。
【図９】１次キャッシュメモリ管理テーブルの一例を示す図である。
【図１０】ストリーム単位でのデータ書き込みの動作の一例を示すフローチャートである。
【図１１】ストリーム単位でのデータ書き込みの動作の一例を示すフローチャートである。
【図１２】データ読み出しの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態について、図１、図２を用いて説明する。図１は情報処理装置の一例を説明するための図である。情報処理装置１は、記憶装置１ａ１、１ａ２および制御部１ｂを備える。
【００１５】
記憶装置１ａ１は、１次記憶装置に使用される。記憶装置１ａ２は、２次記憶装置に使用される。記憶装置１ａ２は、例えば、アクセス回数（例えば書き換え回数）に制限を有するＮＡＮＤ型フラッシュメモリを使用した場合、データの更新時に更新元データが格納されている記憶領域を無効領域にして、更新後のデータを記憶領域とは異なる空き領域に格納する。また、記憶装置１ａ２は、無効領域になった記憶領域のデータを所定タイミングで消去する。
【００１６】
制御部１ｂは、論理アドレスによる第１のデータの書き込み要求の受信時、論理アドレスの単位で第１のデータを記憶装置１ａ１へ書き込む。論理アドレスは、例えば、ＬＢＡ（Logical Block Address）である。
【００１７】
また、記憶装置１ａ１に格納されていた第２のデータが第１のデータの書き込みによって追い出し対象になったとする。この場合、制御部１ｂは、記憶装置１ａ２の消去単位である記憶領域内で複数の物理アドレスが連続するストリームの単位で、追い出し対象の第２のデータを記憶装置１ａ２に書き込む。
【００１８】
図１に示す例を用いて動作について説明する。
〔ステップＳ１〕制御部１ｂは、ホストから論理アドレスが指定されたデータｄ１の書き込み要求を受信する。
【００１９】
〔ステップＳ２〕制御部１ｂは、ホストから指定された論理アドレスの単位でデータｄ１を記憶装置１ａ１へ書き込む。
〔ステップＳ３〕記憶装置１ａ１に格納されていたデータｄ２が、記憶装置１ａ１にデータｄ１が書き込まれることによって記憶装置１ａ１とする。なお、記憶装置１ａ１に格納されているデータのうち、どのようなデータを追い出し対象とするかについては、アクセス種別やアクセス回数、アクセス頻度を管理することで決定することができる。例えば、ＬＲＵ（Least Recently Used）のアルゴリズムを使用することができる（後述）。
【００２０】
〔ステップＳ４〕制御部１ｂは、記憶装置１ａ２の消去単位である記憶領域内において複数の物理アドレスが連続するストリームの単位で、追い出し対象のデータｄ２を記憶装置１ａ２に書き込む。
【００２１】
図２は記憶装置の寿命の違いを説明するための図である。記憶装置１ａ２に対して、論理アドレス単位でデータの書き込み指示をした場合と、ストリーム単位でデータの書き込みを指示した場合とによる記憶装置１ａ２の寿命の違いを示している。なお、記憶装置１ａ２は、記憶領域ｒ１、・・・、ｒ６を有し、１つの記憶領域を消去単位とする。
【００２２】
〔状態Ｓｔ１〕論理アドレス単位によるデータ書き込みの場合、データは論理アドレスに割り当てられた物理アドレスが位置する記憶領域に分散されて書き込まれる。例えば、連続する複数のデータｄ２ａ、ｄ２ｂ、ｄ２ｃを含むデータｄ２が、論理アドレスＬａｄ１、Ｌａｄ２、Ｌａｄ３にそれぞれ書き込まれることになる。また、記憶装置１ａ２の内部制御部において、論理アドレスＬａｄ１は記憶領域ｒ１に割り当て、論理アドレスＬａｄ２は記憶領域ｒ５に割り当て、論理アドレスＬａｄ３は記憶領域ｒ９に割り当てるため、データｄ２ａ、ｄ２ｂ、ｄ２ｃはランダムな位置に配置される。
【００２３】
したがって、データｄ２ａ、ｄ２ｂ、ｄ２ｃは、３つの記憶領域ｒ１、ｒ５、ｒ９に跨って配置されることになる。
〔状態Ｓｔ２〕ストリーム単位によるデータ書き込みの場合、データは連続している物理アドレスが位置している１つの記憶領域にまとめて書き込まれる。記憶装置１ａ２の内部制御部において、例えば、連続するデータｄ２ａ、ｄ２ｂ、ｄ２ｃが、物理アドレスＰａｄ１、Ｐａｄ２、Ｐａｄ３にそれぞれ書き込まれる。また、物理アドレスＰａｄ１、Ｐａｄ２、Ｐａｄ３は、記憶領域ｒ１に連続的（シーケンシャル）に配置されている。
【００２４】
したがって、データｄ２ａ、ｄ２ｂ、ｄ２ｃは、記憶領域ｒ１に連続的に割り当てられた物理アドレスに配置されることになる。物理アドレスＰａｄ１にデータｄ２ａが格納され、物理アドレスＰａｄ２にデータｄ２ｂが格納され、物理アドレスＰａｄ３にデータｄ２ｃが格納される。したがって、連続するデータｄ２ａ、ｄ２ｂ、ｄ２ｃは、１つの記憶領域ｒ１に格納されることになる。
【００２５】
ここで、データｄ２のうち、データｄ２ａ、ｄ２ｂ、ｄ２ｃの更新（書き換え）が行われるとする。記憶装置１ａ２では、上述したように、データの更新時にデータが格納されている記憶領域を空き領域である新たな記憶領域に割り当てを変更して、更新データｄ２を含むデータの書き込み（モディファイライト）が行われる。その後、更新前のデータが格納されていた記憶領域は消去が行われる。
【００２６】
状態Ｓｔ１の場合、データｄ２ａが配置された記憶領域ｒ１の全データは記憶領域ｒ２に割り当て変更され、更新データｄ２ａを含むデータの書き込み（モディファイライト）が行われる。その後、記憶領域ｒ１は消去される。
【００２７】
また、データｄ２ｂが配置された記憶領域ｒ５の全データは記憶領域ｒ６に割り当て変更され、更新データｄ２ｂを含むデータの書き込み（モディファイライト）が行われる。その後、記憶領域ｒ５は消去される。さらに、データｄ２ｃが配置された記憶領域ｒ９は記憶領域ｒ８に割り当て変更され、更新前のデータｄ２ｃを含むデータの書き込み（モディファイライト）が行われる。その後、記憶領域ｒ９は消去される。
【００２８】
一方、状態Ｓｔ２の場合、データｄ２ａ、ｄ２ｂ、ｄ２ｃが配置された記憶領域ｒ１の全データは記憶領域ｒ２に割り当て変更され、更新データｄ２ａ、ｄ２ｂ、ｄ２ｃを含むデータｄ２の書き込み（モディファイライト）が行われる。その後、記憶領域ｒ１は消去される。
【００２９】
上記のようなデータｄ２の更新時、状態Ｓｔ１の場合は、３つの記憶領域ｒ１、ｒ５、ｒ９の消去を要するが、状態Ｓｔ２の場合は、１つの記憶領域ｒ１の消去だけですむことになる。また、消去の動作が行われることで記憶装置１ａ２の寿命が消費される。
【００３０】
したがって、ストリーム単位によるデータ書き込みでは、論理アドレス単位によるデータ書き込みと比べて、記憶装置１ａ２全体の記憶領域の消去回数（もしくは書き換え回数）および消去領域が削減されることになるので、記憶装置１ａ２の寿命を延伸することができる。
【００３１】
上記のように、情報処理装置１は、論理アドレスの指定によるデータの書き込み要求時、記憶装置１ａ１には論理アドレス単位でデータを書き込む。また、記憶装置１ａ１にデータを書き込むことで記憶装置１ａ１に格納されていたデータが追い出し対象になった場合、情報処理装置１は、ＮＡＮＤ型フラッシュメモリが適用された記憶装置１ａ２に対してストリーム単位で追い出し対象のデータを書き込む。これにより、情報処理装置１は、記憶装置１ａ２の寿命を延伸することが可能になる。
【００３２】
［第２の実施の形態］
次に第２の実施の形態について説明する。第２の実施の形態は、図１に示した情報処理装置１の機能をストレージ装置に適用したものである。該ストレージ装置は、ストレージ制御部内に１次キャッシュメモリおよび２次キャッシュメモリを含み、２次キャッシュメモリにはＮＡＮＤ型フラッシュメモリが適用される。また、ストレージ装置内の記憶装置にはＳＳＤが使用されるものとする。
【００３３】
まず、ＮＡＮＤ型フラッシュメモリについて説明する。図３はＮＡＮＤ型フラッシュメモリの構造の一例を示す図である。ＮＡＮＤ型フラッシュメモリ５０は、複数の記憶領域Ｒを有する。記憶領域Ｒは、データが格納される複数のブロック（ＢＬＫ）と、パリティデータが格納される複数のパリティ（Ｐａｒｉｔｙ）とを備える。
【００３４】
１つのブロックは、複数のページ（Ｐａｇｅ）を含む。例えば、ブロックｂ１は、ページ＃０、・・・、＃６３を含み、同様にしてブロックｂ２、・・・、ｂｎはそれぞれ、ページ＃０、・・・、＃６３を含む。また、１つのパリティも複数のページを含み、例えば、パリティｐ１は、ページ＃０、・・・、＃６３を含む。
【００３５】
さらに、１ページは、データが格納される複数のＬＢＡの記憶領域と、エラー修正コードが格納される複数のＥＣＣ（Error Check and Correct）の記憶領域を含む。
例えば、図３中のＬＢＡ５１、５２に対して、読み込みまたは書き込みプロセスの実行中に損傷を受けた可能性のあるデータを修正復元するために使用されるエラー修正コードがＥＣＣ５３に格納される。
【００３６】
ここで、ＮＡＮＤ型フラッシュメモリ５０は、媒体の特性上、データの書き込み／読み出しはページ単位で行われ、データの消去はブロック単位（１ブロックは例えば、９６ＫＢ）で行われる。
【００３７】
また、ＮＡＮＤ型フラッシュメモリ５０は、アクセス回数に制限を有するため、データの更新時に更新元データが格納されている記憶領域を無効領域にして、更新後のデータを記憶領域とは異なる空き領域に格納する。また、ＮＡＮＤ型フラッシュメモリ５０は、無効領域になった記憶領域のデータを所定タイミングで消去する。したがって、消去の動作において、ＮＡＮＤ型フラッシュメモリ５０の残り寿命が消費されることになる。
【００３８】
＜キャッシュメモリにＮＡＮＤ型フラッシュメモリを適用した場合の課題＞
次にキャッシュメモリにＮＡＮＤ型フラッシュメモリ５０を適用した場合の課題について説明する。ストレージ装置に備えられるストレージ制御部内では、キャッシュメモリとして、１次キャッシュメモリおよび２次キャッシュメモリの２段階キャッシュが内蔵されている。
【００３９】
１次キャッシュメモリは、ストレージ制御部内のプロセッサから最も優先的に読み書きが行われるメモリである。１次キャッシュメモリは、２次キャッシュメモリよりも高速動作であるが、２次キャッシュメモリよりも容量は少ない。
【００４０】
一方、２次キャッシュメモリは、１次キャッシュメモリに収まりきらないデータ等の格納に使用される。２次キャッシュメモリは、１次キャッシュメモリより低速であるが、ストレージ制御部内のメインメモリや、ストレージ制御部に接続される記憶装置よりも高速動作である。
【００４１】
ここで、１次キャッシュメモリから２次キャッシュメモリへデータの格納を移動する場合、通常は、ＬＲＵのアルゴリズムにもとづいて行われる。この場合、データの追い出し単位はＬＢＡ単位である（本発明の場合、ＬＲＵ判定時に１次キャッシュメモリに格納される複数のＬＢＡを一括してストリームのデータとしてＬＲＵで管理している）。
【００４２】
ＬＲＵのアルゴリズムでは、１次キャッシュメモリに格納されているデータのうち、最後にアクセスしてからアクセス時間が閾値以上経過してアクセス頻度が少ないと判定されたデータ（１次キャッシュメモリからの追い出し対象データ）が２次キャッシュメモリへ移動して格納される。
【００４３】
また、２次キャッシュメモリの空き容量が閾値以下であり容量不足が生じている場合は、ＬＲＵで選択されたデータのうちでアクセス頻度が高いデータが２次キャッシュメモリに格納される。このとき、２次キャッシュメモリへの格納が不可となったデータは、記憶装置に格納されることになる。
【００４４】
上記のような、１次キャッシュメモリから２次キャッシュメモリへのデータ格納の移動においては、１次キャッシュメモリの格納サイズに合わせて２次キャッシュメモリへデータが格納される。
【００４５】
しかし、２次キャッシュメモリにＮＡＮＤ型フラッシュメモリ５０を使用した場合、ＬＢＡ単位によるデータ書き込みでは、少量（例えば１ＬＢＡ＝５１２ｂｙｔｅ）のデータ書き込みでＮＡＮＤ型フラッシュメモリ５０のブロック（例えば、９６ＫＢ）の消去が行われる領域が生じてしまう。
【００４６】
このため、２次キャッシュメモリへの書き込み回数が増大するほど、２次キャッシュメモリの寿命を顕著に費やしてしまう。また、ストレージ部内の記憶装置にＮＡＮＤ型フラッシュメモリを適用した場合と比較して寿命効率が悪く、例えば、１８２倍悪化する。
【００４７】
一方、２次キャッシュメモリに格納されているデータのうち、ストレージ装置内の記憶装置に格納されている元データが書き換えられた場合、変更後の元データに追従させるため、２次キャッシュメモリ内のデータの書き換えもＬＢＡ単位で行われる。
【００４８】
しかし、２次キャッシュメモリにＮＡＮＤ型フラッシュメモリ５０を使用した場合、上記のような記憶装置に格納されている元データの書き換え対応時においても、２次キャッシュメモリの寿命の短縮が顕著に生じてしまう。本発明はこのような点に鑑みてなされたものであり、メモリデバイスの寿命延伸が可能になる（寿命短縮の防止が可能になる）。
【００４９】
＜ストレージシステム＞
以下、第２の実施の形態について詳しく説明する。図４はストレージシステムの構成の一例を示す図である。ストレージシステム１−１は、ストレージ装置１０ａ、ホスト３および管理端末４を備える。
【００５０】
ストレージ装置１０ａは、ストレージ制御部１０およびストレージ部２を含む。ストレージ制御部１０は、制御部１１、メモリ部１２、ＥＸＰ（エキスパンダ）１３ａ、１３ｂ、チャネル制御部１４およびＩＦ（インタフェース）１５を含む。
【００５１】
ストレージ部２は、記憶装置２０−１、２０−２、・・・、２０−ｎ（総称する場合は記憶装置２０）を含み、記憶装置２０には、ＮＡＮＤ型フラッシュメモリタイプのＳＳＤが用いられるとする。また、ストレージ部２では、記憶装置２０−１、・・・、２０−ｎにＲＡＩＤ（Redundant Array of Inexpensive Disks）が構築される。
【００５２】
メモリ部１２は、１次キャッシュメモリ１２ａおよび２次キャッシュメモリ１２ｂを含む。１次キャッシュメモリ１２ａは図１の記憶装置１ａ１に対応し、２次キャッシュメモリ１２ｂは記憶装置１ａ２に対応する。
【００５３】
１次キャッシュメモリ１２ａは、例えば、ＤＩＭＭ（Dual Inline Memory Module）が使用される。ＤＩＭＭは、複数のＤＲＡＭ（Dynamic Random Access Memory）が基板上に搭載されたメモリモジュールである。
【００５４】
また、１次キャッシュメモリ１２ａの一部記憶領域は、制御部１１においてデータストリーム化を行う際に使用されるストリーム管理テーブル（後述）のデータ構造を格納しておくストリーム管理バッファ１２ａ１として使用される。
【００５５】
２次キャッシュメモリ１２ｂは、ＮＡＮＤ型フラッシュメモリが適用されたメモリデバイスである。なお、メモリ部１２には、図示しない不揮発性メモリ（ＭＲＡＭ：Magnetic Random Access Memory）が含まれ、ユーザデータの他に運用に関わる制御情報等が記憶される。
【００５６】
制御部１１は、アクセス元のホスト３からの指示にもとづき、記憶装置２０にアクセスし、記憶装置２０のＩ／Ｏ制御を行う。また、制御部１１は、図１の制御部１ｂの機能を有し、データをストリーム単位で書き込むためのストリーム化制御を行う。
【００５７】
この場合、制御部１１は、論理アドレスの単位で第１のデータを１次キャッシュメモリ１２ａへ書き込む。このとき、１次キャッシュメモリ１２ａに格納されていた第２のデータが第１のデータの書き込みによって追い出し対象になった場合、制御部１１は、２次キャッシュメモリ１２ｂの記憶領域内で複数の物理アドレスが連続するストリームの単位で第２のデータを２次キャッシュメモリ１２ｂに書き込む。
【００５８】
また、制御部１１は、本実施の形態の場合、記憶装置２０にはＳＳＤが使用されるため、記憶装置２０に対しても、ストリーム単位によるデータ書き込みを行う。
なお、ストリーム単位によるデータ書き込みでは、ストリーム制御コマンド（Stream Control Command）が使用される。ストリーム制御コマンドは、Ｔ−１０（ＳＡＳコマンドの取り決めを行う国際技術機構）によりＳＢＣ（SCSI Block Commands）４のＲｅｖ８で制定されたコマンドである。
【００５９】
ストリーム制御コマンドは、ＳＡＳデバイスに対する書き込み／読み出しをＬＢＡではなくストリーム単位で実施するためのコマンドであり、ＳＡＳインタフェースを持つデバイス（ＮＡＮＤ型フラッシュメモリ等）に対して適用可能である。
【００６０】
ＥＸＰ１３ａ、１３ｂは、ストレージ制御部１０と、ストレージ部２との接続インタフェースを行う拡張デバイスである。なお、ストレージ部２において図示しないＩＯＭ（Input Output Module）が含まれる場合、ＥＸＰ１３ａ、１３ｂとＩＯＭの接続インタフェースには、例えば、ＳＡＳ／ＳＥＳ（SCSI Enclosure Service）が使用される。また、ＩＯＭと記憶装置２０の接続インタフェースには、例えば、ＳＡＳが使用される。
【００６１】
チャネル制御部１４は、ホスト３との接続インタフェース制御を行う。チャネル制御部１４は、例えば、ＣＡ（Channel Adapter）であり、この場合、ホスト３に含まれる図示しないＨＢＡ（Host Bus Adapter）と接続し、ホスト３とのインタフェースを行うアダプタとして機能する。ＩＦ１５は、管理端末４との接続インタフェース制御を行う。
【００６２】
＜ハードウェア構成＞
図５はストレージ制御部のハードウェア構成の一例を示す図である。ストレージ制御部１０は、図４の制御部１１の機能を実現するプロセッサ（コンピュータ）１００を有し、プロセッサ１００によってストレージ制御部１０全体の制御が行われる。
【００６３】
プロセッサ１００には、バス１０３を介して、メモリ１０１および複数の周辺機器が接続されている。プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００６４】
メモリ１０１は、図４のメモリ部１２の機能を実現し、ストレージ制御部１０の主記憶装置として使用される。メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０１には、ユーザデータやプロセッサ１００による処理に要する各種データが格納される。
【００６５】
さらに、メモリ１０１は、ストレージ制御部１０の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ等の半導体記憶装置やＨＤＤ等の磁気記録媒体を含んでもよい。
【００６６】
バス１０３に接続されている周辺機器としては、入出力インタフェース１０２、ネットワークインタフェース１０４およびストレージインタフェース１０５がある。
入出力インタフェース１０２は、図４のＩＦ１５の機能を実現し、プロセッサ１００からの命令にしたがってストレージ制御部１０の状態を表示する表示装置として機能するモニタ（例えば、ＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）等）が接続されている。
【００６７】
また、入出力インタフェース１０２は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ１００に送信する。
さらにまた、入出力インタフェース１０２は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース１０２は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００６８】
また、入出力インタフェース１０２は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１０２との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００６９】
ネットワークインタフェース１０４は、図４のチャネル制御部１４の機能を実現し、ネットワークの通信インタフェース制御を行い、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等を使用することもできる。ネットワークインタフェース１０４で受信されたデータは、メモリ１０１やプロセッサ１００に出力される。
【００７０】
ストレージインタフェース１０５は、図４のＥＸＰ１３ａ、１３ｂの機能を実現し、図４に示したストレージ部２とのインタフェース制御を行う。
以上のようなハードウェア構成によって、ストレージ制御部１０の処理機能を実現することができる。例えば、ストレージ制御部１０は、プロセッサ１００がそれぞれ所定のプログラムを実行することで本発明の制御を行うことができる。
【００７１】
ストレージ制御部１０は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。ストレージ制御部１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００７２】
例えば、ストレージ制御部１０に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【００７３】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００７４】
＜データの格納管理＞
次に通常のＬＢＡにもとづくデータ格納管理と、ストレージ制御部１０によるストリーム単位にもとづくデータ格納管理について、図６、図７を用いて説明する。なお、記憶装置２０へのデータ書き込みを例に挙げて説明する。
【００７５】
図６はＬＢＡによるデータ格納管理の一例を示す図である。記憶装置２０−１、・・・、２０−ｎに対してＲＡＩＤのボリュームＶ０、Ｖ１が生成されている。また、ボリュームＶ０上に記憶領域Ｒ１、・・・、Ｒ１２が含まれるとする。
【００７６】
通常のデータ格納管理では、ＬＢＡを指定したコマンドが用いられて、ボリューム上の論理的なアドレスであるＬＢＡに対してデータが書き込まれる。また、指定されるＬＢＡは、通常、シーケンシャルな配置になっていないため、ＬＢＡによるデータ書き込みでは、ボリュームに対して離散的にデータが格納される。
【００７７】
ここで、ＬＢＡ＃０は記憶領域Ｒ１に位置し、ＬＢＡ＃１は記憶領域Ｒ３に位置し、ＬＢＡ＃２は記憶領域Ｒ６に位置し、ＬＢＡ＃３は記憶領域Ｒ１１に位置し、ＬＢＡ＃Ｎは記憶領域Ｒ８に位置しているとする。
【００７８】
このとき、データｗｔを書き込む場合、ボリュームＶ０上で指定されたＬＢＡ＃０、・・・、ＬＢＡ＃Ｎは記憶領域に対して離散的な配置になっており、ＬＢＡ＃０、・・・、ＬＢＡ＃Ｎはそれぞれ格納管理されることになる。
【００７９】
図７はストリーム単位によるデータ格納管理の一例を示す図である。ストリーム単位によるデータ書き込みでは、ストリーム制御コマンドが用いられて、ストリーム単位にデータが格納管理される。すなわち、データの書き込み単位はストリーム毎になる。なお、１ストリームは、シーケンシャルな複数の物理アドレスで構成され、１ストリームは例えば、９６ＫＢに収まる。
【００８０】
１つのストリームは、例えば、記憶領域Ｒ１の物理アドレスＡｄｄ＃１、・・・、Ａｄｄ＃Ｎの連なりになっており、データｗｔをストリーム単位で書き込む場合、物理アドレスＡｄｄ＃１、・・・、Ａｄｄ＃Ｎのそれぞれにデータｗｔが分割されて格納管理される。
【００８１】
このため、ストリーム単位のデータ書き込みでは、データの格納場所は離散的な配置にならず、一塊のストリームで１つの記憶領域Ｒ１内に格納管理される。
このように、ストレージ制御部１０においては、ＳＡＳインタフェースを有する記憶装置またはキャッシュメモリに対して、ＬＢＡは使用せずにストリーム単位でデータの格納管理を行う。
【００８２】
すなわち、ホストからはＬＢＡ単位でアクセスがくるが、ストレージ制御部１０は、１次キャッシュメモリに対してはＬＢＡ単位でデータ格納管理を行う。また、ストレージ制御部１０は、記憶装置や２次キャッシュメモリへのアクセス単位はストリーム単位に変換制御して、記憶装置や２次キャッシュメモリに対してはストリーム単位でデータ格納管理を行う。
【００８３】
＜ストリーム管理テーブル＞
図８はストリーム管理テーブルの一例を示す図である。ストリーム管理テーブル１２１のデータ構造は、１次キャッシュメモリ１２ａ内のストリーム管理バッファ１２ａ１に格納される。ストリーム管理テーブル１２１は、ストリームＩＤ、空きストリーム容量、データ格納開始位置、データおよび最終アクセス時間の項目を有する。
【００８４】
ストリームＩＤは、ストリームの識別番号である。空きストリーム容量は、１ストリームのうちデータが未格納の容量を示す。例えば、１ストリームサイズが９６ＫＢであり、データ格納済み容量が６２ＫＢとした場合、空きストリーム容量は３４ＫＢになる。
【００８５】
データ格納開始位置は、データを物理アドレスに格納する前に、ホスト３から指定されていたＬＢＡのうち、先頭データのＬＢＡが登録される（データの先頭を示すポインタになる）。
【００８６】
データは、データ格納開始位置に示されるＬＢＡを先頭にして格納されているデータ（ユーザデータ）である。最終アクセス時間は、該当ストリームに対してホスト３から最後にアクセスされたときの時間情報である。
【００８７】
＜１次キャッシュメモリのデータ格納管理＞
図９は１次キャッシュメモリ管理テーブルの一例を示す図である。１次キャッシュメモリ管理テーブル１２２は、１次キャッシュメモリ１２ａ内の記憶領域＃１、・・・、＃Ｎ毎に、書き込み先ＬＢＡ、最終アクセス時間、およびホスト３からのアクセス回数が登録される。なお、１次キャッシュメモリ管理テーブル１２２のデータ構造は、１次キャッシュメモリ１２ａの任意の一部記憶領域に保持される。
【００８８】
＜ストリーム単位でのデータ書き込み動作＞
図１０、図１１はストリーム単位でのデータ書き込みの動作の一例を示すフローチャートである。
【００８９】
〔ステップＳ２１〕制御部１１は、ホスト３から記憶装置２０のボリュームに対するデータ書き込み要求を受信する。
〔ステップＳ２２〕制御部１１は、ホスト３から書き込み要求のあったデータをＬＢＡ単位で１次キャッシュメモリ１２ａに書き込む。
【００９０】
〔ステップＳ２３〕制御部１１は、１次キャッシュメモリ１２ａのデータ格納容量が上限値以上か否かを判定する。データ格納容量が上限値以上の場合、ステップＳ２４へ処理が進む。データ格納容量が上限値未満の場合は終了する。
【００９１】
〔ステップＳ２４〕制御部１１は、１次キャッシュメモリ上にある、ストリームを構成する複数の連続するＬＢＡを一括でＬＲＵ管理しており（従来はＬＢＡ単位が追い出し単位）、１次キャッシュメモリ管理テーブル１２２の登録内容にもとづいて、ホスト３からのアクセス頻度が低いデータを選択する。そして、制御部１１は、選択したデータ（１次キャッシュメモリ１２ａの追い出し対象のデータであり、以下、データＷＴと呼ぶ）の先頭ＬＢＡがストリーム管理テーブル１２１に存在するか否かを判定する。追い出し対象の先頭ＬＢＡがストリーム管理テーブル１２１のデータ格納開始位置に示されるＬＢＡに存在する場合、ステップＳ２４ａへ処理が進み、存在しない場合はステップＳ２５へ処理が進む。
【００９２】
〔ステップＳ２４ａ〕制御部１１は、ストリーム管理テーブル１２１のデータを書き換える。例えば、データＷＴのＬＢＡが０ｘ１１１１であり、ストリーム管理テーブル１２１のデータ格納開始位置に０ｘ１１１１が存在し、そのデータの欄にデータＤが登録されているとする。この場合、制御部１１は、データＤをデータＷＴに書き換えることになる。
【００９３】
〔ステップＳ２５〕制御部１１は、データＷＴがストリーム管理テーブル１２１に登録されているストリームＩＤで示されるストリームに収まるか否かを判定する。データＷＴを格納可能なストリームがない場合はステップＳ２５ａへ処理が進み、データＷＴを格納可能なストリームがある場合はステップＳ２６へ処理が進む。
【００９４】
〔ステップＳ２５ａ〕制御部１１は、ストリーム管理テーブル１２１に新規のストリーム（新規のストリームＩＤ）を生成する。ステップＳ２６へ処理が進む。
〔ステップＳ２６〕制御部１１は、データＷＴをストリーム管理テーブル１２１上の該当ストリーム（データＷＴを格納可能なストリーム）に格納する。
【００９５】
〔ステップＳ２７〕制御部１１は、ストリーム管理テーブル１２１上のストリームＩＤ数（１ボリュームに生成可能なストリーム数）が最大数に達したか否かを判定する。ストリームＩＤ数が最大数に達しない場合はステップＳ２７ａへ処理が進み、最大数に達した場合はステップＳ２８へ処理が進む。
【００９６】
〔ステップＳ２７ａ〕制御部１１は、ストリーム制御コマンドを用いて、データＷＴを２次キャッシュメモリ１２ｂへ書き込む。すなわち、データＷＴはストリーム単位で２次キャッシュメモリ１２ｂに書き込まれる。
【００９７】
〔ステップＳ２８〕制御部１１は、ストリーム管理テーブル１２１の最終アクセス時間の最古のストリームを検出し、検出したストリームをストリーム制御コマンドにて記憶装置２０に書き込む。
【００９８】
〔ステップＳ２９〕制御部１１は、最古のストリームをストリーム管理テーブル１２１から削除する。
このように、ストレージ制御部１０では、１次キャッシュメモリ１２ａにはＬＢＡ単位によるデータ書き込みを行い、ＮＡＮＤ型フラッシュメモリタイプの２次キャッシュメモリ１２ｂにはストリーム単位でデータを書き込む。
【００９９】
２次キャッシュメモリ１２ｂにはストリーム単位でデータが書き込まれているので、データ更新等があった場合、図２で上述したように、２次キャッシュメモリ１２ｂの記憶領域の消去回数および消去領域がＬＢＡ単位での書き込みと比較して削減することになる。したがって、ＮＡＮＤ型フラッシュメモリタイプの２次キャッシュメモリ１２ｂの寿命延伸が可能になる。
【０１００】
＜データ読み出し動作＞
図１２はデータ読み出しの動作の一例を示すフローチャートである。
〔ステップＳ３１〕制御部１１は、ホスト３から記憶装置２０のボリュームに対するデータ読み出し要求を受信する。
【０１０１】
〔ステップＳ３２〕制御部１１は、読み出し要求のあったデータ（以下、データＲＤ）が１次キャッシュメモリ１２ａに存在するか否かを判定する。１次キャッシュメモリに存在する場合はステップＳ３２ａへ処理が進み、存在しない場合はステップＳ３３へ処理が進む。
【０１０２】
〔ステップＳ３２ａ〕制御部１１は、１次キャッシュメモリ１２ａからデータＲＤを読み出す。
〔ステップＳ３３〕制御部１１は、データＲＤが２次キャッシュメモリ１２ｂに存在するか否かを判定する。２次キャッシュメモリ１２ｂに存在する場合はステップＳ３３ａへ処理が進み、存在しない場合はステップＳ３４へ処理が進む。
【０１０３】
〔ステップＳ３３ａ〕制御部１１は、２次キャッシュメモリ１２ｂからデータＲＤを読み出す。
〔ステップＳ３４〕制御部１１は、記憶装置２０からデータＲＤを読み出す。
【０１０４】
〔ステップＳ３５〕制御部１１は、記憶装置２０から読み出したデータＲＤを１次キャッシュメモリ１２ａへ書き込む。
〔ステップＳ３６〕制御部１１は、１次キャッシュメモリ１２ａからの追い出し対象データが存在するか否かを判定する。存在する場合はステップＳ３７へ処理が進み、存在しない場合は処理を終了する（ここでの判定はＬＢＡ単位の判定）。
【０１０５】
〔ステップＳ３７〕制御部１１は、追い出し対象データのホスト３からのアクセス回数が閾値以上か否かを判定する。閾値以上の場合はステップＳ３８へ処理が進み、閾値未満の場合はステップＳ３９へ処理が進む。
【０１０６】
この場合、図１０、図１１で上述した制御と同様にして、ストリーム管理テーブルにもとづいて、ストリーム単位で追い出し処理が行われる。
例えば、制御部１１は、追い出し対象データがストリーム管理テーブル１２１に登録されているストリームＩＤで示されるストリームに収まるか否かを判定する。制御部１１は、追い出し対象データが格納可能なストリームがない場合はストリーム管理テーブル１２１に新規のストリームを生成し、追い出し対象データが格納可能なストリームがある場合はストリーム管理テーブル１２１上の該当ストリームに格納する。
【０１０７】
また、制御部１１は、ストリーム管理テーブル１２１上のストリームＩＤ数が最大数に達したか否かを判定する。制御部１１は、ストリームＩＤ数が最大数に達しない場合はストリーム制御コマンドを用いて、追い出し対象データをストリーム単位で２次キャッシュメモリ１２ｂへ書き込む。
【０１０８】
また、制御部１１は、最大数に達した場合は、ストリーム管理テーブル１２１の最終アクセス時間の最古のストリームを検出し、検出したストリームをストリーム制御コマンドにて記憶装置２０に書き込み、最古のストリームをストリーム管理テーブル１２１から削除する。
【０１０９】
〔ステップＳ３８〕制御部１１は、追い出し対象データを２次キャッシュメモリ１２ｂへ書き込む。
〔ステップＳ３９〕制御部１１は、追い出し対象データを記憶装置２０へストリーム単位で書き込む。
【０１１０】
なお、上記では、ＮＡＮＤ型フラッシュメモリを適用したメモリに対してストリーム単位によるデータ書き込みを行うものとして説明したが、ストリーム制御コマンド対応のＳＡＳインタフェースを有する任意のメモリデバイスに対して、本発明の制御を適用することができ、同様の効果を達成可能である。
【０１１１】
上記で説明した本発明の情報処理装置１およびストレージ装置１０ａの処理機能は、コンピュータによって実現することができる。この場合、情報処理装置１およびストレージ装置１０ａが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１１２】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶部、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶部には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【０１１３】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶部に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶部に格納する。そして、コンピュータは、自己の記憶部からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１１５】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【０１１６】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１１７】
（付記１）  第１の記憶装置と、
データの更新時に前記データが格納されている記憶領域を無効領域にして、更新後の前記データを空き領域に格納する第２の記憶装置と、
論理アドレスによる第１のデータの書き込み要求の受信時に前記論理アドレスの単位で前記第１のデータを前記第１の記憶装置へ書き込み、前記第１の記憶装置に格納されていた第２のデータが前記第１のデータの書き込みによって追い出し対象になった場合に、
前記第２の記憶装置における消去単位の記憶領域内で複数の物理アドレスが連続する書き込みが実施されるストリーム制御コマンドを発行してストリームの単位で追い出し対象の前記第２のデータを前記第２の記憶装置に書き込む制御部と、
を有する情報処理装置。
【０１１８】
（付記２）  前記第２の記憶装置は、前記ストリームの単位を指定した前記ストリーム制御コマンドに対応するインタフェースを有し、書き換え回数に制限を有する記憶装置である付記１記載の情報処理装置。
【０１１９】
（付記３）  前記制御部は、前記第２のデータが前記第２の記憶装置に書き込まれている前記ストリームに収まりきらない場合、新規ストリームを生成して前記新規ストリームによって前記第２のデータを前記第２の記憶装置へ書き込む付記１記載の情報処理装置。
【０１２０】
（付記４）  前記制御部は、前記第２の記憶装置に書き込まれた前記ストリームが最大量に達した場合、前記ストリームの最終アクセス時間が最古の最古ストリームを前記第２の記憶装置から削除し、前記制御部に接続される記憶装置に前記最古ストリームを書き込む付記１記載の情報処理装置。
【０１２１】
（付記５）  前記第１の記憶装置は、ストリーム管理バッファを含み、前記制御部は、前記ストリーム管理バッファに追い出し対象になった前記第２のデータが一定数溜まった場合に、前記第２のデータを前記第２の記憶装置に書き込む付記１記載の情報処理装置。
【０１２２】
（付記６）  コンピュータに、
第１の記憶装置と、データの更新時に前記データが格納されている記憶領域を無効領域にして、更新後の前記データを空き領域に格納する第２の記憶装置との制御を行い、
論理アドレスによる第１のデータの書き込み要求の受信時に前記論理アドレスの単位で前記第１のデータを前記第１の記憶装置へ書き込み、前記第１の記憶装置に格納されていた第２のデータが前記第１のデータの書き込みによって追い出し対象になった場合に、
前記第２の記憶装置における消去単位の記憶領域内で複数の物理アドレスが連続する書き込みが実施されるストリーム制御コマンドを発行してストリームの単位で追い出し対象の前記第２のデータを前記第２の記憶装置に書き込む、
処理を実行させるプログラム。
【０１２３】
（付記７）  記憶装置と、
前記記憶装置のＩ／Ｏ制御を行うストレージ制御部と、
を備え、
前記ストレージ制御部は、
１次キャッシュメモリと、
データの更新時に前記データが格納されている記憶領域を無効領域にして、更新後の前記データを空き領域に格納する２次キャッシュメモリと、
論理アドレスによる第１のデータの書き込み要求の受信時に前記論理アドレスの単位で前記第１のデータを前記１次キャッシュメモリへ書き込み、前記１次キャッシュメモリに格納されていた第２のデータが前記第１のデータの書き込みによって追い出し対象になった場合に、
前記２次キャッシュメモリにおける消去単位の記憶領域内で複数の物理アドレスが連続する書き込みが実施されるストリーム制御コマンドを発行してストリームの単位で追い出し対象の前記第２のデータを前記２次キャッシュメモリに書き込む制御部と、
を有するストレージ装置。
【０１２４】
（付記８）  前記２次キャッシュメモリは、前記ストリームの単位を指定した前記ストリーム制御コマンドに対応するインタフェースを有し、書き換え回数に制限を有する記憶装置である付記７記載のストレージ装置。
【０１２５】
（付記９）  前記制御部は、前記第２のデータが前記２次キャッシュメモリに書き込まれている前記ストリームに収まりきらない場合、新規ストリームを生成して前記新規ストリームによって前記第２のデータを前記２次キャッシュメモリへ書き込む付記７記載のストレージ装置。
【０１２６】
（付記１０）  前記制御部は、前記２次キャッシュメモリに書き込まれた前記ストリームが最大量に達した場合、前記ストリームの最終アクセス時間が最古の最古ストリームを前記２次キャッシュメモリから削除し、前記記憶装置に前記最古ストリームを書き込む付記７記載のストレージ装置。
【０１２７】
（付記１１）  前記１次キャッシュメモリは、ストリーム管理バッファを含み、前記制御部は、前記ストリーム管理バッファに追い出し対象になった前記第２のデータが一定数溜まった場合に、前記第２のデータを前記２次キャッシュメモリに書き込む付記７記載のストレージ装置。
【符号の説明】
【０１２８】
１  情報処理装置
１ａ１、１ａ２  記憶装置
１ｂ  制御部
ｄ１、ｄ２  データ
【図１】
2020115275.tif 000003
【図２】
2020115275.tif 000004
【図３】
2020115275.tif 000005
【図４】
2020115275.tif 000006
【図５】
2020115275.tif 000007
【図６】
2020115275.tif 000008
【図７】
2020115275.tif 000009
【図８】
2020115275.tif 000010
【図９】
2020115275.tif 000011
【図１０】
2020115275.tif 000012
【図１１】
2020115275.tif 000013
【図１２】
2020115275.tif 000014