(57)【要約】【課題】不揮発性メモリへの高速アクセス性とキャッシュ構成の柔軟性とを高めたメモリ管理装置を提供する。【解決手段】ストレージ３０ａとＮＶＭ６０とからなるメモリ管理装置１０は、ＮＶＭ６０に直接接続されてストレージ３０ａ及びＮＶＭ６０のＤＭＡ転送を制御するＤＭＡコントローラ４０を備え、ＤＭＡコントローラ４０は、ＤＭＡ転送がＮＶＭ６０及びストレージ３０ａのいずれと行われるかを切り分けるＤＭＡ転送先切り分け機能部４５と、ＮＶＭ６０にストレージ３０ａからキャッシュする情報を転送するディスクキャッシュ初期化機能部４３と、ＮＶＭ６０にキャッシュされた情報を削除するディスクキャッシュ解放機能部４４とを有する。これによりＤＭＡ転送時に転送対象が自動的に切り分けられてＮＶＭ６０への高速アクセスを図り、ＮＶＭ６０の容量を可変にでき、キャッシュ構成の柔軟性を高める。【選択図】図２
2010205035.tif 000002
【特許請求の範囲】
【請求項１】
情報を記憶するストレージと、
前記ストレージの外部において前記ストレージからキャッシュする情報を記憶するためのキャッシュ領域を有する不揮発性メモリと、
前記不揮発性メモリに直接に接続され、前記ストレージ及び前記不揮発性メモリのＤＭＡ転送を制御するＤＭＡコントローラと、
を備え、
前記不揮発性メモリは、前記キャッシュ領域に記憶された情報に関するキャッシュ構成情報を記憶するためのキャッシュ構成情報領域を有し、
前記ＤＭＡコントローラは、
前記不揮発性メモリの前記キャッシュ領域の初期化要求に応じて、前記キャッシュ領域に前記ストレージからキャッシュする情報を転送するキャッシュ初期化手段と、
前記不揮発性メモリの前記キャッシュ領域の解放要求に応じて、前記キャッシュ領域に記憶された情報を前記ストレージに転送した後、前記キャッシュ領域に記憶された情報を削除するキャッシュ解放手段と、
前記不揮発性メモリの前記キャッシュ領域に記憶された情報に関する前記キャッシュ構成情報を記憶するためのキャッシュ構成情報記憶手段と、
前記不揮発性メモリの前記キャッシュ構成情報領域に記憶された前記キャッシュ構成情報と、前記キャッシュ構成情報記憶手段に記憶された前記キャッシュ構成情報とが対応するように管理するキャッシュ領域管理手段と、
ＤＭＡ転送要求に応じて、前記キャッシュ構成情報記憶手段に記憶された前記キャッシュ構成情報に基づき、前記ＤＭＡ転送要求に対応したＤＭＡ転送が、前記不揮発性メモリ及び前記ストレージのいずれと行われるかを切り分けるＤＭＡ転送先切り分け手段と、
を有する、メモリ管理装置。
【請求項２】
前記ストレージは、
前記不揮発性メモリの前記キャッシュ領域の初期化要求を前記ＤＭＡコントローラに送信するキャッシュ初期化要求手段と、
前記不揮発性メモリの前記キャッシュ領域の解放要求を前記ＤＭＡコントローラに送信するキャッシュ解放要求手段と、
を備える、請求項１に記載のメモリ管理装置。
【請求項３】
前記ＤＭＡコントローラの初期化時に、前記ＤＭＡコントローラの前記キャッシュ領域管理手段は、
前記不揮発性メモリの前記キャッシュ構成情報領域に前記キャッシュ構成情報が記憶されているときは、当該キャッシュ構成情報を前記キャッシュ構成情報記憶手段に記憶させ、
前記不揮発性メモリの前記キャッシュ構成情報領域に前記キャッシュ構成情報が記憶されていないときは、前記キャッシュ構成情報記憶手段を初期化するとともに前記キャッシュ構成情報領域を初期化する、請求項１又は２に記載のメモリ管理装置。
【請求項４】
前記ＤＭＡコントローラのキャッシュ初期化手段が、前記不揮発性メモリの前記キャッシュ領域の前記初期化要求に応じて、前記キャッシュ領域に前記ストレージからキャッシュする情報を転送するときに、
前記キャッシュ初期化手段は、
前記初期化要求に応じて、前記キャッシュ領域から前記初期化要求に応じたアドレス範囲を特定し、
前記キャッシュ領域管理手段は、
前記キャッシュ構成情報記憶手段に特定した前記キャッシュ領域の前記アドレス範囲と、前記初期化要求でキャッシュされる情報の前記ストレージにおけるアドレス範囲とを対応付けて前記キャッシュ構成情報記憶手段に前記キャッシュ構成情報として記憶させ、
前記キャッシュ構成情報記憶手段に記憶された前記キャッシュ構成情報を前記不揮発性メモリの前記キャッシュ構成情報領域に記憶させる、請求項１〜３のいずれか１項に記載のメモリ管理装置。
【請求項５】
前記ＤＭＡコントローラの前記ＤＭＡ転送先切り分け手段が、前記ＤＭＡ転送要求に対応したＤＭＡ転送が、前記不揮発性メモリ及び前記ストレージのいずれと行われるかを切り分けるときに、
前記ＤＭＡ転送先切り分け手段は、
前記ＤＭＡ転送要求にかかる情報の前記ストレージにおけるアドレス範囲が、前記キャッシュ構成情報記憶手段に記憶された前記キャッシュ構成情報の前記ストレージにおけるアドレス範囲に含まれるときは、前記ＤＭＡ転送要求に対応したＤＭＡ転送を前記不揮発性メモリと行い、
前記ＤＭＡ転送要求にかかる情報の前記ストレージにおけるアドレス範囲が、前記キャッシュ構成情報記憶手段に記憶された前記キャッシュ構成情報の前記ストレージにおけるアドレス範囲に含まれないときは、前記ＤＭＡ転送要求に対応したＤＭＡ転送を前記ストレージと行う、請求項４に記載のメモリ管理装置。
【請求項６】
前記キャッシュ解放手段が、前記不揮発性メモリの前記キャッシュ領域の解放要求に応じて、前記キャッシュ領域に記憶された情報を前記ストレージに転送した後、前記キャッシュ領域に記憶された情報を削除するときは、
前記キャッシュ領域管理手段は、
前記キャッシュ構成情報記憶手段に前記キャッシュ構成情報として対応付けて記憶された前記キャッシュ領域の前記アドレス範囲と前記ストレージにおけるアドレス範囲とを前記キャッシュ構成情報記憶手段から削除し、
前記不揮発性メモリの前記キャッシュ構成情報領域に前記キャッシュ構成情報として対応付けて記憶された前記キャッシュ領域の前記アドレス範囲と前記ストレージにおけるアドレス範囲とを前記キャッシュ構成情報領域から削除する、請求項４又は５に記載のメモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリにキャッシュを行なうメモリ管理装置に関する。
【背景技術】
【０００２】
従来、ハードディスクドライブ（ＨＤＤ：Hard  Disk  Drive）等のストレージに記憶された情報を、不揮発性メモリ（ＮＶＭ：Non  Volatile  Memory）に一時的に記憶させるキャッシュを行なうメモリ管理装置が提案されている。例えば、特許文献１には、永久記録媒体として磁気ディスクとフラッシュメモリなどの不揮発性メモリとが内蔵されたハイブリッドディスクドライブであって、自身の内蔵された不揮発性メモリを、磁気ディスクが減速される省電力または「待機」モード以外の動作モードで使用するハイブリッドディスクドライブが記載されている。このハイブリッドディスクドライブでは、「実行」モードと呼ばれる第１の追加モードでは、書込みデータの１つまたは複数のブロックが揮発性メモリからデステージされ、磁気ディスクに書き込まれ、それと同時に、書込みデータの１つまたは複数のブロックが、揮発性メモリからデステージされ、内蔵された不揮発性メモリに書き込まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３４０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術のようにストレージ内に不揮発性メモリを組み込み、ストレージ側でディスクキャッシュの制御を行なう技術では、外部のオペレーティングシステム等からストレージ内の不揮発性メモリへアクセスしようとした場合、オペレーティングシステムはストレージ内の不揮発性メモリに記憶された情報も通常の入出力（Ｉ／Ｏ）アクセスにより読み書きするため、不揮発性メモリの特性である高速な小容量アクセスの利点を活かすことができない。
【０００５】
また、上記技術では、ストレージ内に配置する不揮発性メモリの容量が固定であり、ストレージに記憶されているデータの配置やオペレーティングシステムからのアクセスパターンに応じて不揮発性メモリの容量を可変にすることができない。
【０００６】
このため、ストレージとは独立したＵＳＢメモリ等の着脱自在な不揮発性メモリをオペレーティングシステムが管理して、ディスクキャッシュを行なう方式も考えられる。しかし、この方式では、オペレーティングシステムが不揮発性メモリ内に格納されているデータの書き戻しを行なうまでは、ストレージ内のデータの整合性が確保されない。また、この方式ではオペレーティングシステムによる統一的なディスクキャッシュ方式であるため、ストレージの特性に応じた細かいディスクキャッシュ方式を採用することができない。
【０００７】
本発明は、このような実情に考慮してなされたものであり、その目的は、不揮発性メモリへの高速アクセス性とキャッシュ構成の柔軟性とを高めたメモリ管理装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、情報を記憶するストレージと、ストレージの外部においてストレージからキャッシュする情報を記憶するためのキャッシュ領域を有する不揮発性メモリと、不揮発性メモリに直接に接続され、ストレージ及び不揮発性メモリのＤＭＡ（Direct  Memory  Access）転送を制御するＤＭＡコントローラとを備え、不揮発性メモリは、キャッシュ領域に記憶された情報に関するキャッシュ構成情報を記憶するためのキャッシュ構成情報領域を有し、ＤＭＡコントローラは、不揮発性メモリのキャッシュ領域の初期化要求に応じて、キャッシュ領域にストレージからキャッシュする情報を転送するキャッシュ初期化手段と、不揮発性メモリのキャッシュ領域の解放要求に応じて、キャッシュ領域に記憶された情報をストレージに転送した後、キャッシュ領域に記憶された情報を削除するキャッシュ解放手段と、不揮発性メモリのキャッシュ領域に記憶された情報に関するキャッシュ構成情報を記憶するためのキャッシュ構成情報記憶手段と、不揮発性メモリのキャッシュ構成情報領域に記憶されたキャッシュ構成情報と、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報とが対応するように管理するキャッシュ領域管理手段と、ＤＭＡ転送要求に応じて、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報に基づき、ＤＭＡ転送要求に対応したＤＭＡ転送が、不揮発性メモリ及びストレージのいずれと行われるかを切り分けるＤＭＡ転送先切り分け手段とを有するメモリ管理装置である。
【０００９】
この構成によれば、情報を記憶するストレージと、ストレージの外部においてストレージからキャッシュする情報を記憶するためのキャッシュ領域を有する不揮発性メモリとからなる装置において、不揮発性メモリに直接に接続され、ストレージ及び不揮発性メモリのＣＰＵ（Central  Processing  Unit）を介さないＤＭＡ転送を制御するＤＭＡコントローラを備える。また、この構成によれば、ＤＭＡコントローラは、不揮発性メモリのキャッシュ領域に記憶された情報に関するキャッシュ構成情報を記憶するためのキャッシュ構成情報記憶手段と、不揮発性メモリのキャッシュ構成情報領域に記憶されたキャッシュ構成情報と、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報とが対応するように管理するキャッシュ領域管理手段と、ＤＭＡ転送要求に応じて、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報に基づき、ＤＭＡ転送要求に対応したＤＭＡ転送が、不揮発性メモリ及びストレージのいずれと行われるかを切り分けるＤＭＡ転送先切り分け手段とを有する。このため、オペレーティングシステムからの観点では、不揮発性メモリを意識することなく、ＣＰＵを介さないＤＭＡ転送時に転送先あるいは転送元がストレージであるか不揮発性メモリであるかが自動的に切り分けられる。そのため、不揮発性メモリの高速アクセスの利点を享受できる。
【００１０】
また、この構成によれば、ストレージの外部においてストレージからキャッシュする情報を記憶するためのキャッシュ領域を有する不揮発性メモリを備えるため、キャッシュのための不揮発性メモリをストレージの内部に配置する必要がない。さらにこの構成によれば、ＤＭＡコントローラは、不揮発性メモリのキャッシュ領域の初期化要求に応じて、キャッシュ領域にストレージからキャッシュする情報を転送するキャッシュ初期化手段と、不揮発性メモリのキャッシュ領域の解放要求に応じて、キャッシュ領域に記憶された情報をストレージに転送した後、キャッシュ領域に記憶された情報を削除するキャッシュ解放手段とを有しているため、ストレージからの観点では、キャッシュ領域を動的に割当てることができ、ストレージに格納されているデータの配置やオペレーティングシステムからのアクセスパターンに応じて不揮発性メモリの容量を可変にできるため、キャッシュ構成の柔軟性を図ることができる。
【００１１】
この場合、ストレージは、不揮発性メモリのキャッシュ領域の初期化要求をＤＭＡコントローラに送信するキャッシュ初期化要求手段と、不揮発性メモリのキャッシュ領域の解放要求をＤＭＡコントローラに送信するキャッシュ解放要求手段とを備えることが好適である。
【００１２】
この構成によれば、ストレージが、不揮発性メモリのキャッシュ領域の初期化要求をＤＭＡコントローラに送信するキャッシュ初期化要求手段と、不揮発性メモリのキャッシュ領域の解放要求をＤＭＡコントローラに送信するキャッシュ解放要求手段とを備えるため、装置外からの指令等によらず、ストレージ側から不揮発性メモリのキャッシュ領域の初期化要求と解放要求とを行なうことができる。
【００１３】
また、ＤＭＡコントローラの初期化時に、ＤＭＡコントローラのキャッシュ領域管理手段は、不揮発性メモリのキャッシュ構成情報領域にキャッシュ構成情報が記憶されているときは、当該キャッシュ構成情報をキャッシュ構成情報記憶手段に記憶させ、不揮発性メモリのキャッシュ構成情報領域にキャッシュ構成情報が記憶されていないときは、キャッシュ構成情報記憶手段を初期化するとともにキャッシュ構成情報領域を初期化することが好適である。
【００１４】
この構成によれば、ＤＭＡコントローラの初期化時に、ＤＭＡコントローラのキャッシュ領域管理手段は、不揮発性メモリのキャッシュ構成情報領域にキャッシュ構成情報が記憶されているときは、当該キャッシュ構成情報をキャッシュ構成情報記憶手段に記憶させ、不揮発性メモリのキャッシュ構成情報領域にキャッシュ構成情報が記憶されていないときは、キャッシュ構成情報記憶手段を初期化するとともにキャッシュ構成情報領域を初期化するため、ＤＭＡコントローラの初期化時にキャッシュ構成情報記憶手段のキャッシュ構成情報をキャッシュ構成情報領域のキャッシュ構成情報と対応した状態とすることができる。
【００１５】
また、ＤＭＡコントローラのキャッシュ初期化手段が、不揮発性メモリのキャッシュ領域の初期化要求に応じて、キャッシュ領域にストレージからキャッシュする情報を転送するときに、キャッシュ初期化手段は、初期化要求に応じて、キャッシュ領域から初期化要求に応じたアドレス範囲を特定し、キャッシュ領域管理手段は、キャッシュ構成情報記憶手段に特定したキャッシュ領域のアドレス範囲と、初期化要求でキャッシュされる情報のストレージにおけるアドレス範囲とを対応付けてキャッシュ構成情報記憶手段にキャッシュ構成情報として記憶させ、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報を不揮発性メモリのキャッシュ構成情報領域に記憶させることが好適である。
【００１６】
この構成によれば、ＤＭＡコントローラのキャッシュ初期化手段が、不揮発性メモリのキャッシュ領域の初期化要求に応じて、キャッシュ領域を初期化するステージング時に、キャッシュ初期化手段は、初期化要求に応じて、キャッシュ領域から初期化要求に応じたアドレス範囲を特定するため、ステージング時にキャッシュ領域を動的に割当てることができる。また、ステージング時にＤＭＡコントローラのキャッシュ領域管理手段が、キャッシュ構成情報記憶手段に特定したキャッシュ領域のアドレス範囲と、初期化要求でキャッシュされる情報のストレージにおけるアドレス範囲とを対応付けてキャッシュ構成情報記憶手段にキャッシュ構成情報として記憶させ、キャッシュ構成情報記憶手段に記憶された当該キャッシュ構成情報を不揮発性メモリのキャッシュ構成情報領域に記憶させるため、ステージング時に、キャッシュ構成情報記憶手段のキャッシュ構成情報とキャッシュ構成情報領域のキャッシュ構成情報とが対応した状態とすることができる。
【００１７】
また、ＤＭＡコントローラのＤＭＡ転送先切り分け手段が、ＤＭＡ転送要求に対応したＤＭＡ転送が、不揮発性メモリ及びストレージのいずれと行われるかを切り分けるときに、ＤＭＡ転送先切り分け手段は、ＤＭＡ転送要求にかかる情報のストレージにおけるアドレス範囲が、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報のストレージにおけるアドレス範囲に含まれるときは、ＤＭＡ転送要求に対応したＤＭＡ転送を不揮発性メモリと行い、ＤＭＡ転送要求にかかる情報のストレージにおけるアドレス範囲が、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報のストレージにおけるアドレス範囲に含まれないときは、ＤＭＡ転送要求に対応したＤＭＡ転送をストレージと行うことが好適である。
【００１８】
この構成によれば、ＤＭＡコントローラのＤＭＡ転送先切り分け手段が、ＤＭＡ転送要求に対応したＤＭＡ転送が、不揮発性メモリ及びストレージのいずれと行われるかを切り分けるときに、ＤＭＡ転送先切り分け手段は、ＤＭＡ転送要求にかかる情報のストレージにおけるアドレス範囲が、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報のストレージにおけるアドレス範囲に含まれるときは、ＤＭＡ転送要求に対応したＤＭＡ転送を不揮発性メモリと行い、ＤＭＡ転送要求にかかる情報のストレージにおけるアドレス範囲が、キャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報のストレージにおけるアドレス範囲に含まれないときは、ＤＭＡ転送要求に対応したＤＭＡ転送をストレージと行うため、オペレーティングシステムからの観点では、ＤＭＡ転送先切り分け手段がキャッシュ構成情報記憶手段に記憶されたキャッシュ構成情報を参照するだけで、不揮発性メモリを意識することなく、ＤＭＡ転送の転送先あるいは転送元がストレージか不揮発性メモリかが自動的に切り分けられる。
【００１９】
さらに、キャッシュ解放手段が、不揮発性メモリのキャッシュ領域の解放要求に応じて、キャッシュ領域に記憶された情報をストレージに転送した後、キャッシュ領域に記憶された情報を削除するときは、キャッシュ領域管理手段は、キャッシュ構成情報記憶手段にキャッシュ構成情報として対応付けて記憶されたキャッシュ領域のアドレス範囲とストレージにおけるアドレス範囲とをキャッシュ構成情報記憶手段から削除し、不揮発性メモリのキャッシュ構成情報領域にキャッシュ構成情報として対応付けて記憶されたキャッシュ領域のアドレス範囲とストレージにおけるアドレス範囲とをキャッシュ構成情報領域から削除することが好適である。
【００２０】
この構成によれば、キャッシュ解放手段が、不揮発性メモリのキャッシュ領域の解放要求に応じて、キャッシュ領域に記憶された情報をストレージに転送した後、キャッシュ領域に記憶された情報を削除するデステージング時には、キャッシュ領域管理手段は、キャッシュ構成情報記憶手段にキャッシュ構成情報として対応付けて記憶されたキャッシュ領域のアドレス範囲とストレージにおけるアドレス範囲とをキャッシュ構成情報記憶手段から削除し、不揮発性メモリのキャッシュ構成情報領域にキャッシュ構成情報として対応付けて記憶されたキャッシュ領域のアドレス範囲とストレージにおけるアドレス範囲とをキャッシュ構成情報領域から削除するため、デステージング時に、キャッシュ構成情報記憶手段のキャッシュ構成情報をキャッシュ構成情報領域のキャッシュ構成情報と対応した状態とすることができる。
【発明の効果】
【００２１】
本発明のメモリ管理装置によれば、不揮発性メモリへの高速アクセス性とキャッシュ構成の柔軟性とを高めることができる。
【図面の簡単な説明】
【００２２】
【図１】実施形態に係るメモリ管理装置のハードウェアの構成を示すブロック図である。
【図２】実施形態に係るメモリ管理装置の各部の機能を示すブロック図である。
【図３】ＤＭＡコントローラ初期化時の動作を示すフロー図である。
【図４】ディスクキャッシュ使用開始時の動作を示すフロー図である。
【図５】アクセス発生時の動作を示すフロー図である。
【図６】ディスクキャッシュ使用終了時の動作を示すフロー図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について添付図面を参照して説明する。
【００２４】
図１に示すように、本実施形態のメモリ管理装置１０は、ハードウェアの構成として、ＣＰＵ２２、複数のストレージ３０ａ〜３０ｎ、ＤＭＡコントローラ４０、ＤＲＡＭ（Dynamic  Random  Access  Memory）５０及びＮＶＭ６０を備えている。図中の実線矢印はデータ転送を示し、破線矢印は制御要求を示す。
【００２５】
ＣＰＵ２２は、オペレーティングシステム２３により動作し、メモリ管理装置１０の各部の動作を制御するものである。複数のストレージ３０ａ〜３０ｎは、各々ＨＤＤ３５を有し、それぞれ情報を記憶する。ＤＲＡＭ５０は、ＣＰＵ２２からの制御要求に従い、ストレージ３０ａ〜３０ｎあるいはＮＶＭ６０との間でＤＭＡ転送を行なうものである。
【００２６】
ＮＶＭ６０は、ストレージ３０ａ〜３０ｎに記憶された情報の内でキャッシュされたキャッシュ対象６１を記憶するための共用のディスクキャッシュ領域を有する。また、当該ディスクキャッシュ領域に関するディスクキャッシュ構成情報６２を記憶する。具体的には、ＮＶＭ６０は、ＤＲＡＭ５０と同じ基板に併設されたメモリチップである。
【００２７】
ＤＭＡコントローラ４０は、ストレージ３０ａ〜３０ｎ及びＮＶＭ６０に直接接続され、ストレージ３０ａ〜３０ｎ及びＮＶＭ６０のＣＰＵ２２を介さないＤＭＡ転送を制御するためのものである。
【００２８】
図２に示すように、機能ブロックで示す構成として、ストレージ３０ａは、ディスクキャッシュ初期化要求機能部３１とディスクキャッシュ解放要求機能部３２とを有する。ディスクキャッシュ初期化要求機能部（キャッシュ初期化要求手段）３１は、ＮＶＭ６０のディスクキャッシュ領域の初期化要求をＤＭＡコントローラ４０に送信するためのものである。ディスクキャッシュ解放要求機能部（キャッシュ解放要求手段）３２は、ＮＶＭ６０のディスクキャッシュ領域の解放要求をＤＭＡコントローラ４０に送信するためのものである。なお、図２においては、代表的にストレージ３０ａのみを図示するが、上記構成はストレージ３０ｂ〜３０ｎにおいても同様である。また、図中の実線矢印はデータ転送を示し、破線矢印は制御要求を示す。
【００２９】
ＮＶＭ６０は、共用ディスクキャッシュ領域６３とディスクキャッシュ構成情報領域６４とを有している。共用ディスクキャッシュ領域（キャッシュ領域）６３は、ストレージ３０ａ〜３０ｎからキャッシュされた情報であるキャッシュ対象６１を記憶するためのものである。ディスクキャッシュ構成情報領域（キャッシュ構成情報領域）６４は、共用ディスクキャッシュ領域６３に記憶された情報に関するディスクキャッシュ構成情報６２を記憶するためのものである。
【００３０】
ディスクキャッシュ構成情報６２は、具体的には、ストレージ３０ａ〜３０ｎから各々キャッシュされたキャッシュ対象６１の共用ディスクキャッシュ領域６３におけるアドレス範囲と、ストレージ３０ａ〜３０ｎから各々キャッシュされたキャッシュ対象６１のストレージ３０ａ〜３０ｎの各ＨＤＤ３５におけるアドレス範囲とを対応付けたものである。
【００３１】
ＤＭＡコントローラ４０は、ディスクキャッシュ領域管理機能部４１、ディスクキャッシュ構成情報記憶部４２、ディスクキャッシュ初期化機能部４３、ディスクキャッシュ解放機能部４４及びＤＭＡ転送先切り分け機能部４５を有している。
【００３２】
ディスクキャッシュ領域管理機能部（キャッシュ領域管理手段）４１は、ＮＶＭ６０に記憶されたディスクキャッシュ構成情報６１と、ＤＭＡコントローラ４０に記憶されたディスクキャッシュ構成情報４２とが対応するように管理するためのものである。
【００３３】
ディスクキャッシュ構成情報記憶部（キャッシュ構成情報記憶手段）４２は、ＮＶＭ６０のディスクキャッシュ構成情報領域６４のディスクキャッシュ構成情報６２と対応付けられたディスクキャッシュ構成情報４６を記憶するためのものである。したがって、ディスクキャッシュ構成情報記憶部４２に記憶されたディスクキャッシュ構成情報４６も、ストレージ３０ａ〜３０ｎから各々キャッシュされたキャッシュ対象６１の共用ディスクキャッシュ領域６３におけるアドレス範囲と、ストレージ３０ａ〜３０ｎから各々キャッシュされたキャッシュ対象６１のストレージ３０ａ〜３０ｎの各ＨＤＤ３５におけるアドレス範囲とを対応付けたものである。
【００３４】
ディスクキャッシュ初期化機能部（キャッシュ初期化手段）４３は、ＮＶＭ６０の共用ディスクキャッシュ領域６３の初期化要求に応じて、共用ディスクキャッシュ領域６３にストレージ３０ａ〜３０ｎからキャッシュする情報を転送するためのものである。
【００３５】
ディスクキャッシュ解放機能部（キャッシュ解放手段）４４は、ＮＶＭ６０の共用ディスクキャッシュ領域６３の解放要求に応じて、共用ディスクキャッシュ領域６３に記憶された情報をストレージ３０ａ〜３０ｎに転送した後、共用ディスクキャッシュ領域６３に記憶された情報を削除するためのものである。
【００３６】
ＤＭＡ転送先切り分け機能部（ＤＭＡ転送先切り分け手段）４５は、ＤＭＡ転送要求に応じて、ディスクキャッシュ構成情報記憶部４２に記憶されたディスクキャッシュ構成情報４６に基づき、ＤＭＡ転送要求に対応したＤＭＡ転送が、ＮＶＭ６０及びストレージ３０ａ〜３０ｎのいずれと行われるかを切り分けるためのものである。
【００３７】
以下、本実施形態のメモリ管理装置１０の動作について説明する。
【００３８】
（ＤＭＡコントローラ初期化時）
ＤＭＡコントローラ４０の初期化タイミングは、オペレーティングシステム２１の起動時である。例えばメモリ管理装置１０に接続されたストレージ３０ａ〜３０ｎが変更された場合等に対応するため、オペレーティングシステム２１の起動時に、ＤＭＡコントローラ４０とＮＶＭ６０とに記憶されたディスクキャッシュ構成情報４６，６２が実際の装置の構成と対応するように初期化する。
【００３９】
図３に示すように、オペレーティングシステム２１が起動されたとき（Ｓ１１）、ＤＭＡコントローラ４０の初期化がなされる（Ｓ１２）。ディスクキャッシュ領域管理機能部４１は、ＮＶＭ６０内のディスクキャッシュ構成情報領域６４に記憶されたディスクキャッシュ構成情報６２を読み出す（Ｓ１３）。
【００４０】
既にディスクキャッシュ構成情報６２がＮＶＭ６０内のディスクキャッシュ構成情報領域６４に正しく格納されているときは（Ｓ１４）、ディスクキャッシュ領域管理機能部４１は、読み出したディスクキャッシュ構成情報６２をＤＭＡコントローラ４０のディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６にコピーする（Ｓ１５）。ディスクキャッシュ構成情報６２がＮＶＭ６０内のディスクキャッシュ構成情報領域６４に格納されていないときは（Ｓ１４）、ディスクキャッシュ領域管理機能部４１は、ＤＭＡコントローラ４０のディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６を初期化するとともに、ＮＶＭ６０内のディスクキャッシュ構成情報領域６４も初期化する（Ｓ１５）。
【００４１】
（ディスクキャッシュ使用開始時）
ディスクキャッシュ使用開始タイミングはオペレーティングシステム２１の起動又は終了のタイミングとは無関係であり、本実施形態では、ストレージ３０ａ〜３０ｎの内の該当ストレージをしばらく使い続け、データ配置やアクセスパターンの統計が採取された時点を想定する。管理者からのコマンドによりストレージ３０ａ〜３０ｎを初期化する際にキャッシュするディスクアドレスの範囲の指定は、管理者指定の手動で行うことができ、ストレージ３０ａ〜３０ｎにより自動的に行なっても良い。
【００４２】
図４に示すように、ストレージ３０ａ〜３０ｎのディスクキャッシュ初期化要求機能部３１は、ＤＭＡコントローラ４０に対し、キャッシュするキャッシュ対象６１のストレージ３０ａ〜３０ｎのＨＤＤ３５におけるディスクアドレスの範囲を通知する（Ｓ２１）。
【００４３】
ＤＭＡコントローラ４０のディスクキャッシュ初期化機能部４３は、ＮＶＭ６０の共用ディスクキャッシュ領域６３から該当ストレージ３０ａ〜３０ｎのキャッシュ対象６１用の領域を指定し、ディスクキャッシュ領域管理機能部４１は、ＤＭＡコントローラ４０のディスクキャッシュ構成情報記憶部４２に、ＮＶＭ６０の共用ディスクキャッシュ領域６３の当該領域のアドレス範囲と、該当ストレージ３０ａ〜３０ｎのＨＤＤ３５におけるキャッシュ対象６１のアドレス範囲とを対応付けてディスクキャッシュ構成情報４６として記憶させる（Ｓ２２）。
【００４４】
ＤＭＡコントローラ４０のディスクキャッシュ領域管理機能部４１は、ディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６を、ＮＶＭ６０のディスクキャッシュ構成情報領域６４にディスクキャッシュ構成情報６２にコピーする（Ｓ２３）。
【００４５】
ＤＭＡコントローラ４０のディスクキャッシュ初期化機能部４３は、キャッシュ対象６１であるディスクアドレスのストレージ３０ａ〜３０ｎのデータを、ＮＶＭ６０の共用ディスクキャッシュ領域６３の特定済み領域にコピー（ステージング）し、当該ストレージ３０ａ〜３０ｎに対して初期化完了を通知する（Ｓ２４）。
【００４６】
（アクセス発生時）
本実施形態におけるアクセス発生時とは、オペレーティングシステム２１からストレージ３０ａ〜３０ｎに対し、Ｉ／Ｏが発生したタイミングである。図５に示すように、オペレーティングシステム２１からストレージ３０ａ〜３０ｎへのＩ／Ｏが発生したときに（Ｓ３１）、オペレーティングシステム２１は、ＤＲＡＭ５０のメモリアドレスと、該当ストレージ３０ａ〜３０ｎのＨＤＤ３５のディスクアドレスをＤＭＡコントローラ４０に通知し、ＤＭＡ転送要求を行う（Ｓ３２）。このＤＭＡ転送要求は、ＮＶＭ６０を意識しない、ＤＭＡ転送要求である。
【００４７】
ＤＭＡコントローラ４０のＤＭＡ転送先切り分け機能部４５は、ディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報を参照しつつ、該当ストレージ３０ａ〜３０ｎのＨＤＤ３５のディスクアドレスが、キャッシュ対象６１のアドレスか否かを切り分ける（Ｓ３３）。
【００４８】
ＤＭＡコントローラ４０のＤＭＡ転送先切り分け機能部４５は、該当ストレージ３０ａ〜３０ｎのＨＤＤ３５のディスクアドレスがキャッシュ対象６１のアドレス範囲内であるときは（Ｓ３４）、ＤＲＡＭ５０とＮＶＭ６０との間でＤＭＡ転送を行なう（Ｓ３５）。ＤＭＡコントローラ４０のＤＭＡ転送先切り分け機能部４５は、該当ストレージ３０ａ〜３０ｎのＨＤＤ３５のディスクアドレスがキャッシュ対象６１のアドレス範囲内ではないときは（Ｓ３４）、ＤＲＡＭ５０とストレージ３０ａ〜３０ｎとの間でＤＭＡ転送を行なう（Ｓ３６）。
【００４９】
（ディスクキャッシュ使用終了時）
ディスクキャッシュ使用開始タイミングはオペレーティングシステム２１の起動又は終了のタイミングとは無関係であり、本実施形態では、該当ストレージ３０ａ〜３０ｎの使用形態が変更され、データ配置やアクセスパターンが変化した時点を想定している。
【００５０】
図６に示すように、該当ストレージ３０ａ〜３０ｎの使用形態が変更され、データ配置やアクセスパターンが変化し、ディスクキャッシュの使用が終了したとき（Ｓ４１）、該当ストレージ３０ａ〜３０ｎのディスクキャッシュ解放要求機能部３２は、ＤＭＡコントローラ４０に対し、該当ストレージ３０ａ〜３０ｎの全ディスクキャッシュの解放を指示する（Ｓ４２）。
【００５１】
ＤＭＡコントローラ４０のディスクキャッシュ解放機能部４４は、ディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６を参照しつつ、ＮＶＭ６０の共用ディスクキャッシュ領域６３におけるキャッシュ中のキャッシュ対象６１のデータを、該当ストレージ３０ａ〜３０ｎの該当ディスクアドレス領域にコピー（デステージング）する（Ｓ４３）。
【００５２】
ＤＭＡコントローラ４０のディスクキャッシュ解放機能部４４は、ＮＶＭ６０共用ディスクキャッシュ領域６３から該当ストレージ３０ａ〜３０ｎ用の領域を解放し、キャッシュ対象６１のデータを削除する（Ｓ４４）。
【００５３】
ＤＭＡコントローラ４０のディスクキャッシュ領域管理機能部４１は、ディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６から、該当ストレージ３０ａ〜３０ｎ用の領域に関わるストレージ３０ａ〜３０ｎのＨＤＤ３５におけるディスクアドレスを示す情報と、ＮＶＭ６０の共用ディスクキャッシュ領域６３におけるアドレスを示す情報とを削除する（Ｓ４５）。この場合、ＤＭＡコントローラ４０のディスクキャッシュ領域管理機能部４１は、当該キャッシュ対象６１のディスクアドレスを示す情報をディスクキャッシュ構成情報から削除する（Ｓ４６）。
【００５４】
ＤＭＡコントローラ４０のディスクキャッシュ領域管理機能部４１は、ＮＶＭ６０内のディスクキャッシュ構成情報領域６４のディスクキャッシュ構成情報６２に、情報を削除したディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６をコピーし、ストレージ３０ａ〜３０ｎに対して解放の完了を通知する（Ｓ４７）。
【００５５】
本実施形態によれば、情報を記憶するストレージ３０ａ〜３０ｎと、ストレージ３０ａ〜３０ｎの外部においてストレージ３０ａ〜３０ｎからキャッシュする情報を記憶するための共用キャッシュ領域６３を有するＮＶＭ６０とからなるメモリ管理装置１０において、ＮＶＭ６０に直接に接続され、ストレージ３０ａ〜３０ｎ及びＮＶＭ６０のＣＰＵ２２を介さないＤＭＡ転送を制御するＤＭＡコントローラ４０を備える。
【００５６】
ＤＭＡコントローラ４０は、ＮＶＭ６０の共用ディスクキャッシュ領域６３に記憶されたキャッシュ対象６１に関するディスクキャッシュ構成情報４６を記憶するためのキャッシュ構成情報記憶部４２と、ＮＶＭ６０のディスクキャッシュ構成情報領域６４に記憶されたディスクキャッシュ構成情報６２と、ディスクキャッシュ構成情報記憶部４２に記憶されたディスクキャッシュ構成情報４６とが対応するように管理するキャッシュ領域管理機能部４１と、ＤＭＡ転送要求に応じて、ディスクキャッシュ構成情報記憶部４２に記憶されたキャッシュ構成情報４６に基づき、ＤＭＡ転送要求に対応したＤＭＡ転送が、ＮＶＭ６０及びストレージ３０ａ〜３０ｎのいずれと行われるかを切り分けるＤＭＡ転送先切り分け機能部４５とを有する。
【００５７】
このため、オペレーティングシステム２１からの観点では、ＮＶＭ６０を意識することなく、ＣＰＵ２２を介さないＤＭＡ転送時に転送先あるいは転送元がストレージ３０ａ〜３０ｎであるかＮＶＭ６０であるかが自動的に切り分けられる。そのため、ＮＶＭ６０の高速アクセスの利点を享受できる。
【００５８】
また、本実施形態によれば、ストレージ３０ａ〜３０ｎの外部においてストレージ３０ａ〜３０ｎからキャッシュする情報を記憶するための共用ディスクキャッシュ領域６３を有するＮＶＭ６０を備えるため、キャッシュのためのＮＶＭ６０をストレージ３０ａ〜３０ｎの内部に配置する必要がない。
【００５９】
さらに本実施形態によれば、ＤＭＡコントローラ４０は、ＮＶＭ６０の共用ディスクキャッシュ領域６３の初期化要求に応じて、共用ディスクキャッシュ領域６３にストレージ３０ａ〜３０ｎからキャッシュする情報を転送するディスクキャッシュ初期化機能部４３と、ＮＶＭ６０の共用ディスクキャッシュ領域６３の解放要求に応じて、共用ディスクキャッシュ領域６３に記憶された情報をストレージ３０ａ〜３０ｎに転送した後、共用ディスクキャッシュ領域６３に記憶された情報を削除するディスクキャッシュ解放機能部４４とを有しているため、ストレージ３０ａ〜３０ｎからの観点では、共用ディスクキャッシュ領域６３を動的に割当てることができ、ストレージ３０ａ〜３０ｎに格納されているデータの配置やオペレーティングシステム２１からのアクセスパターンに応じてＮＶＭ６０の容量を可変にできるため、キャッシュ構成の柔軟性を図ることができる。
【００６０】
また、本実施形態では、ストレージ３０ａ〜３０ｎが、ＮＶＭ６０の共用ディスクキャッシュ領域６３の初期化要求をＤＭＡコントローラ４０に送信するディスクキャッシュ初期化要求機能部３１と、ＮＶＭ６０の共用ディスクキャッシュ領域６３の解放要求をＤＭＡコントローラ４０に送信するディスクキャッシュ解放要求機能部３２とを備えるため、装置外からの指令等によらず、ストレージ３０ａ〜３０ｎ側からＮＶＭ６０の共用ディスクキャッシュ領域６３の初期化要求と解放要求とを行なうことができる。
【００６１】
すなわち、本実施形態では、ＣＰＵ２２とＮＶＭ６０との間が高速なデータ通信バスにより接続され、ＮＶＭ６０とストレージ３０ａ〜３０ｎのＨＤＤ３５との間が比較的低速なデータ通信バスにより接続され、ＨＤＤ側からの要求に基づいてＮＶＭ６０の共用ディスクキャッシュ領域６３を確保するＤＭＡコントローラ４０を設けられている。そのため、ＣＰＵ２２からはＮＶＭ６０に対して高速なアクセスが可能となり、各ＨＤＤ３５の状況に応じてＮＶＭ６０の共用ディスクキャッシュ領域６３の割り当てが可能となる。
【００６２】
また、本実施形態では、ＤＭＡコントローラ４０の初期化時に、ＤＭＡコントローラ４０のディスクキャッシュ領域管理機能部４１は、ＮＶＭ６０のディスクキャッシュ構成情報領域６４にディスクキャッシュ構成情報６２が記憶されているときは、当該ディスクキャッシュ構成情報６２をディスクキャッシュ構成情報記憶部４２に記憶させ、ＮＶＭ６０のディスクキャッシュ構成情報領域６４にディスクキャッシュ構成情報６２が記憶されていないときは、ディスクキャッシュ構成情報記憶部４２を初期化するとともにディスクキャッシュ構成情報領域６４を初期化するため、ＤＭＡコントローラ４０の初期化時にディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６をディスクキャッシュ構成情報領域６４のディスクキャッシュ構成情報６２と対応した状態とすることができる。
【００６３】
また、本実施形態では、ＤＭＡコントローラ４０のディスクキャッシュ初期化機能部４３が、ＮＶＭ６０の共用ディスクキャッシュ領域６３の初期化要求に応じて、共用ディスクキャッシュ領域６３を初期化するステージング時に、ディスクキャッシュ初期化機能部４３は、初期化要求に応じて、共用ディスクキャッシュ領域６３から初期化要求に応じたアドレス範囲を特定するため、ステージング時に共用ディスクキャッシュ領域６３を動的に割当てることができる。
【００６４】
また、ステージング時にＤＭＡコントローラ４０のディスクキャッシュ領域管理機能部４１が、ディスクキャッシュ構成情報記憶部４２に特定した共用ディスクキャッシュ領域６３のアドレス範囲と、初期化要求でキャッシュされる情報のストレージ３０ａ〜３０ｎにおけるアドレス範囲とを対応付けてディスクキャッシュ構成情報記憶部４２にディスクキャッシュ構成情報４６として記憶させ、ディスクキャッシュ構成情報記憶部４２に記憶された当該ディスクキャッシュ構成情報４６をＮＶＭ６０のディスクキャッシュ構成情報領域６４に記憶させるため、ステージング時に、ディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６とディスクキャッシュ構成情報領域６４のディスクキャッシュ構成情報６２とが対応した状態とすることができる。
【００６５】
さらに、本実施形態では、ＤＭＡコントローラ４０のＤＭＡ転送先切り分け機能部４５が、ＤＭＡ転送要求に対応したＤＭＡ転送が、ＮＶＭ６０及びストレージ３０ａ〜３０ｎのいずれと行われるかを切り分けるときに、ＤＭＡ転送先切り分け機能部４５は、ＤＭＡ転送要求にかかる情報のストレージ３０ａ〜３０ｎにおけるアドレス範囲が、ディスクキャッシュ構成情報記憶部４２に記憶されたディスクキャッシュ構成情報４６のストレージ３０ａ〜３０ｎにおけるアドレス範囲に含まれるときは、ＤＭＡ転送要求に対応したＤＭＡ転送をＮＶＭ６０と行い、ＤＭＡ転送要求にかかる情報のストレージ３０ａ〜３０ｎにおけるアドレス範囲が、ディスクキャッシュ構成情報記憶部４２に記憶されたディスクキャッシュ構成情報４６のストレージ３０ａ〜３０ｎにおけるアドレス範囲に含まれないときは、ＤＭＡ転送要求に対応したＤＭＡ転送をストレージ３０ａ〜３０ｎと行うため、オペレーティングシステム２１からの観点では、ＤＭＡ転送先切り分け機能部４５がディスクキャッシュ構成情報記憶部４２に記憶されたディスクキャッシュ構成情報４６を参照するだけで、ＮＶＭ６０を意識することなく、ＤＭＡ転送の転送先あるいは転送元がストレージ３０ａ〜３０ｎかＮＶＭ６０かが自動的に切り分けられる。
【００６６】
加えて、本実施形態では、ディスクキャッシュ解放機能部４４が、ＮＶＭ６０の共用ディスクキャッシュ領域６３の解放要求に応じて、共用ディスクキャッシュ領域６３に記憶された情報をストレージ３０ａ〜３０ｎに転送した後、共用ディスクキャッシュ領域６３に記憶された情報を削除するデステージング時には、ディスクキャッシュ領域管理機能部４１は、ディスクキャッシュ構成情報記憶部４２にディスクキャッシュ構成情報４６として対応付けて記憶された共用ディスクキャッシュ領域６３のアドレス範囲とストレージ３０ａ〜３０ｎにおけるアドレス範囲とをディスクキャッシュ構成情報記憶部４２から削除し、ＮＶＭ６０のディスクキャッシュ構成情報領域６４にディスクキャッシュ構成情報６２として対応付けて記憶された共用ディスクキャッシュ領域６３のアドレス範囲とストレージ３０ａ〜３０ｎにおけるアドレス範囲とをディスクキャッシュ構成情報領域６４から削除するため、デステージング時に、ディスクキャッシュ構成情報記憶部４２のディスクキャッシュ構成情報４６をディスクキャッシュ構成情報領域６４のディスクキャッシュ構成情報６２と対応した状態とすることができる。
【００６７】
尚、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００６８】
１０…メモリ管理装置、２１…オペレーティングシステム、２２…ＣＰＵ、３０ａ〜３０ｎ…ストレージ、２３…オペレーティングシステム、３１…ディスクキャッシュ初期化要求機能部、３２…ディスクキャッシュ開放要求機能部、３５…ＨＤＤ、４０…ＤＭＡコントローラ、４１…ディスクキャッシュ領域管理機能部、４２…ディスクキャッシュ構成情報記憶部、４３…ディスクキャッシュ初期化機能部、４４…ディスクキャッシュ解放機能部、４５…ＤＭＡ転送先切り分け機能部、４６…ディスクキャッシュ構成情報、５０…ＤＲＡＭ、６０…ＮＶＭ、６１…キャッシュ対象、６２…ディスクキャッシュ構成情報、６３…共用ディスクキャッシュ領域、６４…ディスクキャッシュ構成情報領域。
【図１】
2010205035.tif 000003
【図２】
2010205035.tif 000004
【図３】
2010205035.tif 000005
【図４】
2010205035.tif 000006
【図５】
2010205035.tif 000007
【図６】
2010205035.tif 000008