説明

キャッシュを搭載した情報装置及びそれを用いた情報処理装置並びにプログラム

【課題】従来の不揮発性メモリはリードキャッシュあるいはライトキャッシュとして使用した場合、その書き換え耐性が低いために、キャッシュとしての効果の持続性が短い、あるいは、そのリード速度あるいはライト速度が遅いために速度向上効果が低い、あるいはまたリード時あるいはライト時の消費電力が大きいために省電力効果が低い、等の問題があった。
【解決手段】リードキャッシュ及びライトキャッシュを、特性の異なる2種類の不揮発性メモリで構成する。例えば、ライトキャッシュに書き換え耐性の高い不揮発性メモリを、リードキャッシュに書き換え耐性の低い不揮発性メモリを割り当て、それらのキャッシュにおけるデータの管理テーブルを書き換え耐性の高い不揮発性メモリに記憶する。あるいはまた、ライトキャッシュにはライト速度が速くリード速度が遅い不揮発性メモリを、リードキャッシュにはリード速度が速く、ライト速度が遅い不揮発性メモリを採用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュを搭載した情報装置及びそれを用いた情報処理装置並びにプログラムに係り、特に、不揮発性メモリをキャッシュとして使用した情報装置及びそれを用いた情報処理装置に関するものである。
【背景技術】
【0002】
従来、キャッシュには揮発性メモリが使用されてきた。しかし、揮発性メモリのキャッシュは、データを保持するために多量の電力を消費するという問題があった。また、電源遮断などによりデータが失われるという問題があった。そのため、電源遮断後一定期間電力を供給するためにバッテリーを搭載したり、キャッシュ上にデータを長く滞留させないようにするなどの工夫が必要であった。
【0003】
不揮発性メモリをキャッシュとして使用すると、省電力化の推進や電源遮断などによるデータロストのリスクの低減が図れるため、不揮発性メモリのキャッシュへの適用が検討され始めている。
【0004】
現在市場に出回っている不揮発性メモリの中でもっとも市場規模が大きいのが、NANDフラッシュメモリである。近年そのビットコストは、Dynamic Random Access Memory (DRAM)を下回る。NANDフラッシュメモリは、書き換え耐性が103〜106と低いため(DRAMでは1016である)、主にSolid State Driveなどのストレージデバイスで使用されている。
【0005】
NANDフラッシュメモのリード・ライト速度は、HDDと比較して速いが、DRAMと比較すると1/103〜4程度遅い(DRAMのランダムリード・ライトの速度が6〜40nsであるのに対し、NAND フラッシュメモリの場合は、ランダムライトが105 nsであり、ランダムリードが104nsである)。また、NANDフラッシュメモリの書き込み時の消費電力はDRAMと同程度である(NANDフラッシュ及びDRAMの1ビットあたりの書き込み時の消費電力は65pJである)。
【0006】
近年Phase Change Random Access Memory (PRAM) 、 Magnestic Random Access Memory(MRAM) 、Ferroelectric Random Access Memory(FeRAM) などの次世代メモリの開発が進んでいる。これらの不揮発性メモリはフラッシュメモリと比較して書き換え耐性が高いのが特徴である。しかし、DRAMと比較した場合、MRAMの書き換え耐性はDRAMと同程度であるものの、PRAMやFeRAMの書き換え耐性は1012であり、DRAMと比較すると劣る。
PRAMやFeRAMは、DRAMと同程度のランダムリード・ライト性能を持つ。またMARMのリード・ライト性能はDRAMのランダムリード・ライト性能よりも高い。
【0007】
PRAM及びMRAMの書き込み時の消費電力はDRAMと同程度である。FeRAMに関してはDRAMの書き込み時の消費電力よりも少ないという特徴を持つ(DRAMが1ビットあたりの書き込み電力が65pJであるのに対し、FeRAM は2pJである)。
【0008】
不揮発性メモリは上記のように、多様な特徴をもつことから、不揮発性メモリをキャッシュとして使用する場合はその使い方を工夫する必要がある。
【0009】
不揮発性メモリをキャッシュとして搭載した磁気ディスク装置の例が、特許文献1に記載されている。この例では、オペレーティングシステムなどの計算機(ホスト)の起動プログラムや使用頻度の高いアプリケーションプログラムを不揮発性メモリに記憶しておくことで、ホストへのデータ転送速度を向上させ、起動時間の短縮を図っている。また、ディスクへのアクセスがない時には、ディスクをスピンダウンし、スピンダウン中はライト要求データを不揮発性メモリに書き込む、あるいはリード要求データを不揮発性メモリから転送することで省電力化を図っている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】US 2007/0162693A1
【発明の概要】
【発明が解決しようとする課題】
【0011】
不揮発性メモリは上記のような特徴をもつことから、不揮発性メモリをキャッシュとして使用する場合はその使い方を工夫する必要がある。
例えば、特許文献1に記載の磁気ディスク装置において、キャッシュにフラッシュメモリのような書き換え耐性の低い不揮発性メモリを使用すると、その使用が進むに従って(キャッシュへのデータの書き込み回数が所定回数に達するために)、キャッシュ部分が使用できなくなり、磁気ディスク装置のデータ転送速度や省電力効果が急激に低下する。
【0012】
また、上記のような磁気ディスク装置では、キャッシュにフラッシュメモリのようなリード・ライト速度の遅い不揮発性メモリを使用すると、連続領域へのアクセスではディスクのリード・ライト速度との差が小さくなり、キャッシュによる速度向上効果が低い。
また、また上記のような磁気ディスク装置では、キャッシュにフラッシュメモリのような、書き込み時の消費電力が大きい不揮発性メモリを使用した場合、フラッシュメモリへのライトデータの書き込み量が多くなると、省電力効果が低下する。
【0013】
本発明が解決しようとする課題の1つは、不揮発性メモリをキャッシュとして使用した場合、その書き換え耐性が低いために、キャッシュの効果の持続性が短いことである。
本発明が解決しようとする他の課題は、不揮発性メモリをキャッシュとして使用した場合、その速度が遅いために速度向上効果が低いことである。
本発明が解決しようとする他の課題は、不揮発性メモリをキャッシュとして使用した場合、そのデータ書き込み時の消費電力が大きいために省電力効果が低下することである。
【0014】
本発明の目的は、キャッシュとしての不揮発性メモリをより効果的に活用することで、データ処理速度の異なる複数の装置間のデータ転送経路に配置される情報装置における書き換え耐性、リード・ライト速度、あるいは消費電力等の各種の課題を解消した情報装置及びそれを用いた情報処理装置を提供することにある。
【課題を解決するための手段】
【0015】
本発明の代表的なものの一例を示すと、次の通りである。本発明の情報装置は、データ処理速度の異なる複数の装置間のデータ転送経路に、リード用のキャッシュメモリ及びライト用のキャッシュメモリを備える情報装置であって、前記ライト用のキャッシュメモリが第1の不揮発性メモリ、前記リード用のキャッシュメモリが前記第1の不揮発性メモリとは特性の異なる第2の不揮発性メモリで構成されていることを特徴とする。
【発明の効果】
【0016】
本発明によれば、リード・ライトキャッシュを、特性の異なる2種類の不揮発性メモリの組み合わせによって構成することにより、キャッシュによる効果をより高め、各種の要求に応える情報装置及びそれを用いた情報処理装置を提供することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の情報装置を磁気ディスク装置に適用した第1の実施例のシステム構成例を示す図である。
【図2A】第1の実施例におけるライトキャッシュのデータを管理するテーブルの構成例を示す図である。
【図2B】第1の実施例におけるリードキャッシュのデータを管理するテーブルの構成例を示す図である。
【図3】第1の実施例の動作の概要を説明する図である。
【図4】第1の実施例における領域ごとにアクセス頻度をカウントする処理の例(フロー)を示す図である。
【図5】第1の実施例におけるリード処理の例(フロー)を示す図である。
【図6】第1の実施例におけるライト処理の例(フロー)を示す図である。
【図7】第1の実施例における揮発性メモリのリードキャッシュにおいて、リードアクセス頻度の高いデータを不揮発性メモリのリードキャッシュに移動する処理の例(フロー)を示す図である。
【図8】第1の実施例における不揮発性メモリのライトキャッシュにおいて、リードアクセス頻度の高いデータを不揮発性メモリのリードキャッシュに移動する処理の例(フロー)を示す図である。
【図9】第1の実施例におけるディスク全領域のアクセス頻度を管理するアクセス頻度管理テーブルの構成例を示す図である。
【図10】第1の実施例における揮発性メモリにコピーした、アクセス頻度管理テーブルを、ディスク上のアクセス頻度管理テーブルに書き戻す処理の例(フロー)を示す図である。
【図11】本発明の情報装置を磁気ディスク装置に適用した第2の実施例のシステム構成例を示す図である。
【図12】第2の実施例の動作の概要を説明する図である。
【図13】本発明の情報装置を磁気ディスク装置に適用した第3の実施例のシステム構成例を示す図である。
【図14】第3の実施例の動作の概要を説明する図である。
【図15】本発明の情報装置を情報処理装置としてのPCに実装した実施例のシステム構成例を示す図である。
【図16】本発明の情報装置をホストとHDDを接続するためのアダプターに実装し、情報処理装置を構成したシステム構成例を示す図である。
【図17】本発明の情報装置を、情報処理装置としてのストレージシステムに実装した実施例のシステム構成例を示す図である。
【発明を実施するための形態】
【0018】
本発明の1つの実施形態によれば、キャッシュを書き換え耐性の異なる2種類の不揮発性メモリで構成し、ライトキャッシュに書き換え耐性の高い不揮発性メモリを、リードキャッシュに書き換え耐性の低い不揮発性メモリを採用し、それらのキャッシュにおけるデータの管理テーブルを書き換え耐性の高い不揮発性メモリに記憶する。また、書き換え耐性の低い不揮発性メモリのリードキャッシュには、リードアクセス頻度の高い領域のデータを抽出して書き込む。これにより、コストや消費電力などの増加を抑えながら、キャッシュによる効果の持続性を高めることができる。
【0019】
また他の実施形態によれば、リード・ライト速度の異なる2種類の不揮発性メモリで構成し、ライトキャッシュには、ライト速度が速くリード速度が遅い不揮発性メモリを、リードキャッシュにはリード速度が速く、ライト速度が遅い不揮発性メモリをそれぞれ採用するようにしている。これにより、コストや消費電力などの増加を抑えながら、キャッシュによるリード・ライト速度の向上効果を高めることができる。
【0020】
また、他の実施形態によれば、リード・ライトキャッシュを消費電力の異なる2種類の不揮発性メモリで構成し、ライトキャッシュにライト時の消費電力の少ない不揮発性メモリを採用するようにしている。これにより、コストの増加や、リード・ライト速度の低下などを抑えながら、キャッシュによる省電力効果を高めることができる。
なお、本願明細書において、「情報装置」とは、処理速度の異なる一対の装置間のデータ転送経路に配置され、「キャッシュメモリ装置」を備えたものを意味する。より具体的には、一対の装置の一方がコンピュータであり、他方が、記憶装置もしくは記憶媒体である。「記憶装置」には、磁気系ストレージ装置、光系ストレージ装置、さらには、記憶媒体にフラッシュメモリを用いたドライブ装置(SSD:Solid State Drive)などが含まれる。また、「記憶媒体」には、磁気ディスク、光ディスク、半導体メモリなどが含まれる。また「キャッシュメモリ装置」は、コントローラ、不揮発性メモリリードキャッシュ、不揮発性メモリライトキャッシュがセットになった装置である。「キャッシュメモリ装置」には、必要に応じて「揮発性メモリのリードキャッシュ」が付加される。なお、キャッシュメモリ装置内のコントローラは、磁気ディスク装置内においては、ハードディスクコントローラ、その他の情報装置及び情報処理装置では、コントローラと表現している。
【0021】
本発明で用いられる「不揮発性メモリ」は、リード/ライト可能なメモリであり、先に挙げたPRAM (又はPCM)、 MRAM、FeRAM、の他に、例えば、ReRAM、 STT-RAM等がある。
【0022】
また、本発明において、「特性の異なるメモリ」とは、物理原理の異なるメモリ技術が採用された別個のメモリを意味する。これら「特性の異なるメモリ」は、「書き換え耐性」、「リード/ライト性能」、「消費電力」のいずれかの特性において、相互に差を生ずる。また、結果として、これら「特性の異なるメモリ」は、コストの面においても差を生ずる。物理原理の異なるメモリ技術を採用した結果コスト面で差を生じるメモリも、本発明における「特性の異なるメモリ」の1つである。一方、採用されている物理原理が同じメモリは、仕様、性能、あるいはコスト等が異なっていても、本発明の「特性の異なるメモリ」には該当しない。
以下、本発明の不揮発性メモリのキャッシュメモリ装置を搭載した情報装置の実施例を図面により、詳細に説明する。
【実施例1】
【0023】
本発明の情報装置を磁気ディスク装置に組み込んで情報処理装置とした第1の実施例を、図1〜図10を参照しながら説明する。なお以下では磁気ディスク装置を対象にして、情報装置の実装例を説明するが、本実施例により情報装置の適用先が磁気ディスク装置に限定されるものではない。
【0024】
図1に、第1の実施例における磁気ディスク装置のシステム構成例を示す。また、図2Aに、ライトキャッシュのデータを管理するテーブルの構成例、図2Bに、リードキャッシュのデータを管理するテーブルの構成例を示す。
磁気ディスク装置101はコマンドやデータをやり取りするインタフェース制御部115を介してホストコンピュータ(または上位装置のコンピュータ、以下、単にホスト)100に接続されており、データ処理速度の異なる磁気ディスク102とホスト100との間のデータ転送経路上に一時的にデータを格納するためのキャッシュメモリ装置を備える。このキャッシュメモリ装置は、不揮発性メモリライトキャッシュ104、不揮発性メモリリードキャッシュ103、及び、ハードディスクコントローラ(以下HDC)105により構成されている。すなわち磁気ディスク装置101は、制御プログラムを実装するプログラムROM118、このプログラムROM118上の制御プログラムを読み込み実行するCPU(制御プロセッサ)120、キャッシュメモリ装置として、ライト要求データを書き込む不揮発性メモリ(第1の不揮発性メモリ)のライトキャッシュ104、リード要求データを書き込む不揮発性メモリ(第2の不揮発性メモリ)のリードキャッシュ103、揮発性のメモリのリードキャッシュ109、ホスト100と、不揮発性メモリのリードキャッシュ103、揮発性メモリのリードキャッシュ109(本実施例ではHDCの内部に揮発性メモリのリードキャッシュを実装しているが、HDCの外部に実装してもよい)、不揮発性メモリのライトキャッシュ104、ホストとディスク102との間のデータ転送を制御するHDC105を備えている。
【0025】
さらに、ディスク駆動手段として、データの読み書きをする際に指定された位置にヘッドを移動するための制御を行うサーボ制御部121、このサーボ制御部の指示に従って、ヘッド(図示略)を移動するボイスコイルモータ(VCM)125、ディスク102の回転を制御するモータドライバ122、ディスク回転用スピンドルモータ(図示略)、ヘッドから読み込んだ磁気信号から指定されたヘッドの信号だけを選択するセレクタ126を備えている。さらに、セレクタ126から送られたアナログデータをディジタルデータに変換する、またはHDC105から送られたディジタルデータをアナログデータに変換する信号処理部124、及び、ディスクフォーマッタ123を備えている。ディスクフォーマッタ123は、リード用ゲートを開閉することにより、信号処理部124より送られたリードデータを揮発性メモリのリードキャッシュ109に転送し、また、ライト用ゲートを開閉することにより、不揮発性メモリのライトキャッシュ104より転送されるライトデータを信号処理部124に転送する。
【0026】
上記キャッシュメモリ装置内のHDC105は、ホスト100から受領したライトデータを不揮発性メモリのライトキャッシュに書き込む、また、ホスト100からリード要求のあったアドレスのデータを、不揮発性メモリのリードキャッシュ103あるいは、揮発性メモリのリードキャッシュ109から読み出す。
【0027】
ライト用の不揮発性メモリと、リード用の不揮発性メモリは、それらの特性が異なっている。すなわち、ライト用の不揮発性メモリ104は書き換え耐性の高い不揮発性メモリ、リード用の不揮発性メモリはライト用の不揮発性メモリ104よりも書き換え耐性の低い不揮発性メモリ103で構成されている。リードキャッシュとライトキャッシュに書き換え耐性の異なる不揮発性メモリを使用するのは、例えば、書き換え耐性の低い不揮発性メモリの方が、コストなどの点において書き換え耐性の高い不揮発性メモリよりも優位であるためである。コストや性能など、情報装置に要求される仕様に応じて、リードキャッシュとライトキャッシュに性質の異なる2種類の不揮発性メモリをそれぞれ割り当てればよい。
【0028】
不揮発性メモリのライトキャッシュ103には、不揮発性メモリ内のライトデータ及び不揮発性メモリのリードデータを管理するための、不揮発性メモリライトデータ管理テーブル107及び不揮発性メモリリードデータ管理テーブル106を備える。不揮発性メモリ内に不揮発性メモリのライトデータ及び不揮発性メモリのリードデータの管理テーブルを配置することにより、電源遮断などによるキャッシュ上データの消失を防ぐことができる。また、書き換え耐性の高いライトキャッシュ上に、不揮発性メモリライトデータ管理テーブル107及び不揮発性メモリリードデータ管理テーブル106を配置することにより、書き換え耐性の低い不揮発性メモリのリードキャッシュの消耗を緩和できる。
【0029】
また、HDC105内の揮発性リードキャッシュ109には、揮発性メモリのリードデータを管理するための揮発性メモリリードデータ管理テーブル110を備える。HDC105内に揮発性メモリを備えることにより、書き換え耐性の低い不揮発性メモリのリードキャッシュ103にリード要求頻度の高いデータを抽出して蓄積することができるため、不揮発性メモリのリードキャッシュの消耗を緩和できる。
【0030】
例えば、不揮発性メモリのリードキャッシュ103には、NANDフラッシュメモリやPRAMを、不揮発性メモリのライトキャッシュ104にはMRAMを割り当てる。また、揮発性メモリ1309にはDRAMを用いる。上記メモリの組み合わせは、一例であり、不揮発性メモリの特性に応じて他の組み合わせを選択してもよいことは言うまでも無い。
【0031】
また、ディスク102には、ディスク上の全データのアクセス頻度を記録するためのアクセス頻度管理テーブル111(図2B参照)を持つ。
【0032】
CPU120は、ローカルメモリ(ROM)118に格納された各種コンピュータプログラムを実行して、ディスク駆動手段やHDC105を制御することにより、ディスクからのデータの読み出し及びディスクへのデータの書き込み、キャッシュへのデータの書き込み及びキャッシュからのデータの読み出しを行い、磁気ディスク装置からのデータの読み出し及び磁気ディスク装置へのデータの書き込みを実現する。すなわち、リード処理においては、ホストからのリード要求に対し、ディスク駆動手段を制御してディスクからリード要求データを読み出すとともに、HDCを制御して読み出したリード要求データを揮発性のキャッシュ110に書き込むとともにホスト100に転送し、ライト処理においては、HDC105を制御して、ホスト100からのライト要求データを不揮発性メモリのライトキャッシュ104に書き込むとともに、書き込んだライトデータを当該ライトキャッシュ104から読み出し、またそのライトデータを、ディスク駆動手段を制御してディスク102に書き込む。
【0033】
次に、図2Aに、不揮発性メモリライトデータ管理テーブル107の構成例を示す。不揮発性メモリライトデータ管理テーブル107は、Tag201、リードアクセス頻度202、ライトアクセス頻度203、データの有効・無効を示すフラグ204から成る。ホストから指定されたデータのアドレスLogical Block Address(LBA)により、すべてのセクタに通し番号が付けられ、その番号によってセクタ位置が指定される。Tag201は、LBAをテーブルエントリの数で割った時の商を示す。このLBAは、テーブルエントリを示すオフセットアドレスを下位ビット、上位アドレスをTag201にして合成することができる(この場合、エントリのデータサイズは、磁気ディスク装置のアクセス単位となるセクタのサイズとなる)。
【0034】
テーブルエントリのメモリ上のアドレスは、データの開始アドレスを示す基底アドレスに、エントリのオフセットアドレスを加算して示すことができる。基底アドレスは、不揮発性のレジスタあるいは書き換え耐性の高い不揮発性メモリに記録しておくこととする(不揮発性の記憶領域に記憶しておくこととする)。
【0035】
図2Bに、不揮発性メモリリードデータ管理テーブル106の構成例を示す。不揮発性メモリリードデータ管理テーブル106は、Tag301、リードアクセス頻度302、データの有効・無効を示すフラグ303から成る。Tag301は、不揮発性メモリライトデータ管理テーブル107のTag201と同じものである。同様に、ホストからのリード要求時のLBAは、テーブルエントリを示すオフセットアドレスを下位ビット、上位アドレスをTag301にして合成することができる。揮発性メモリ上のデータを管理するテーブル110も、図2Bのテーブルと同じ構造をもつ。
【0036】
図3で、第1の実施例の動作の概要を説明する。磁気ディスク装置101は、ハードディスクコントローラ(HDC)105を介してホスト100との間で、図3に示したように、リードデータあるいはライトデータをやりとりする。HDC105は、ライト処理において、ホスト100から受領したライトデータをライトキャッシュ104に転送する。またディスク駆動手段と連携してキャッシュ上のライトデータをディスク102に書き込む。また、リード処理においては、ホスト100からリード要求のあったアドレスのデータを、リードキャッシュ(103、109)から直接読み出すか、あるいはディスク駆動手段と連携して、ディスク102から読み出しリードキャッシュ109に書き込むとともに、そのデータをホストに転送する。また、HDCは、リード処理あるいはライト処理の過程で、キャッシュ上データの管理テーブル106、107、110及びアクセス頻度管理テーブル111へのアクセスを行う。
【0037】
本発明では、リードキャッシュ103及びライトキャッシュ104を特性の異なる2種類の不揮発性メモリで構成し、ライトキャッシュ104には、書き換え耐性の高い不揮発性メモリを、またリードキャッシュ103には速度や部品コストなどを優先させて書き換え耐性の低い不揮発性メモリを割り当てる。この場合、不揮発性メモリのリードキャッシュ103上のデータを管理するテーブル106及び不揮発性メモリのライトキャッシュ上のデータを管理するテーブル107は、書き換え耐性の高いライトキャッシュ104上にワーク領域108を設け、その領域に保存する。キャッシュ上データの管理テーブル106、107を不揮発性メモリに記憶することで、電源遮断時のデータの損失を防ぐことができる。また、キャッシュ上データの管理テーブル106、107を書き換え耐性の高いライトキャッシュ上に配置することで、書き換え耐性の低いリードキャッシュ103の消耗を防ぐことができる。
【0038】
揮発性メモリ109はHDC105内にあるが、この揮発性メモリ109を、HDC105の外部に置いてもよい。揮発性メモリ上のデータは、電源遮断時には、(バッテリーなどによる電力の供給がなければ)、データが失われるが、リードデータに限定されているため、実質上、データ損失にはならない。
【0039】
アクセス頻度(図2Aの202、203、図2Bの302)のカウントは、キャッシュの最小データ単位ごとに行うことも可能であるが設定した単位領域ごとに行うことも可能である。図4に、Tag301を用いて領域単位でリードアクセス頻度302をカウントする処理のフローを示す。この方法は、不揮発性メモリリードキャッシュ103、揮発性メモリリードキャッシュ109、不揮発性メモリライトキャッシュ104のすべてのキャッシュにおいて適用可能である。
【0040】
リード処理において、キャッシュヒットをしたか調べ(ステップ401)キャッシュヒットした場合、キャッシュヒットしたエントリのリードアクセス頻度を1増やす(ステップ402)。この時、キャッシュヒットしたエントリと同じTag301をもつエントリを検索する。キャッシュヒットしたエントリのTag301と同一のTag301をもつエントリがあれば(ステップ403)、該当するすべてのエントリのリードアクセス頻度302を1増やす(ステップ404)。上記のような処理をすることにより、アクセス頻度の高い領域を重みづけすることが可能となる。
【0041】
次に、図5のフローを用いて、リードキャッシュ制御機能を含む、リード処理のシーケンスを説明する。ホストよりリード要求を受領すると、まず初めに不揮発性メモリライトデータ管理テーブル107にアクセスし、ライトキャッシュ104上のデータを検索(ステップ501)する。該当データの有無を調べ(ステップ502)、キャッシュヒットすれば(該当データがキャッシュ104上に存在すれば)、該当データをライトキャッシュ104からホストに転送する(ステップ503)。次に、ライトデータ管理テーブル107において該当データのリードアクセス頻度202を加算する(ステップ504)。
【0042】
ステップ502において、ライトキャッシュ104上にリード要求データが存在しなければ、ライトキャッシュ104上の不揮発性メモリリードデータ管理テーブル106にアクセスし、不揮発性メモリのリードキャッシュ103上のデータを検索する(ステップ505)。
【0043】
該当データの有無を調べ(ステップ506)、キャッシュヒットすれば、該当データを不揮発性メモリのリードキャッシュ103からホストに転送する(ステップ507)。次に、リードデータ管理テーブル106において該当データのリードアクセス頻度302を加算する(ステップ508)。ステップに506において、該当データがそのキャッシュになければ、次に、揮発性メモリ109上の揮発性メモリリードデータ管理テーブル110にアクセスし、揮発性メモリ109のリードキャッシュ上のデータを検索する(ステップ509)。
【0044】
該当データの有無を調べ(ステップ510)、キャッシュヒットすれば、該当データを揮発性メモリのリードキャッシュ109からホストに転送する(ステップ511)。次に揮発性メモリ109のリードデータ管理テーブル110において該当データのリードアクセス頻度302を加算する(ステップ512)。ステップ510において、該当データが揮発性メモリのリードキャッシュ109になければ、ディスク102にアクセスし、該当データを読み出し(ステップ513)、揮発性メモリのリードキャッシュ109に書き込み(ステップ514)、さらにホストに転送する。
【0045】
図5のフローを通して、一連の処理を説明したが、不揮発性メモリリードキャッシュ103と揮発性メモリリードキャッシュ109の検索順は、不揮発性メモリのリードキャッシュ104の方が先であっても、揮発性メモリのリードキャッシュ109の方が先であっても、両方同時であってもかまわない。また不揮発性メモリのライトキャッシュ104、不揮発性あるいは揮発性のリードキャッシュ103、109のデータを同時に検索してもかまわない。最終的に、不揮発性メモリのライトキャッシュ104の検索結果をもっとも優先順位の高いデータとして扱えばよい(ホストに転送すればよい)。
【0046】
なお、図5のフローでは、キャッシュ上データのアクセス頻度を記録するために、キャッシュヒットした場合には、ヒットしたデータのリード頻度を加算するようにした。
【0047】
すべてのキャッシュを検索した結果、キャッシュミスになった場合には、ディスク102にアクセスしデータを読み出すが、読み出したデータは、揮発性メモリ109のキャッシュに書き込み(ステップ514)、不揮発性メモリのリードキャッシュ103には、直接リードデータを書き込まないようにする。このように不揮発性メモリリードキャッシュ103へのリードデータの書き込みを制限することにより、リード処理の遅延(不揮発性メモリのリードキャッシュにおけるライト速度が遅い場合)、或いは不揮発性メモリリードキャッシュの消耗を防ぐことができる。
【0048】
次に、図6のフローを用いて、ライトキャッシュ制御機能を含む、ライト処理のシーケンスを説明する。ライト要求データは、必ず不揮発性メモリのライトキャッシュ104に書き込み、その管理データを不揮発性メモリライトデータ管理テーブル107に登録する(ステップ601)。
【0049】
図6のフローには記述していないが、ライトキャッシュ104にライトデータを書き込んだ時点で、不揮発性メモリライトデータ管理テーブル107のライトアクセス頻度203に1を加算してもよい。
【0050】
次に、不揮発性メモリリードデータ管理テーブル106検索し、不揮発性メモリのリードキャッシュ103に、ライトデータと同一領域(アドレス)のデータがないか検索する(ステップ602)。
【0051】
該当データの有無を調べ(ステップ603)、該当データがあれば不揮発性メモリリードデータ管理テーブル106における該当データの有効・無効ビットを無効に設定する(ステップ604)。ステップ603で、不揮発性メモリのリードキャッシュ103に、ライトデータと同一領域のデータがなければ、揮発性メモリリードデータ管理テーブル110にアクセスし、揮発性メモリのリードキャッシュ109に、ライトデータと同一領域のデータがないか検索する(ステップ605)。該当データの有無を調べ(ステップ606)、該当データがあれば揮発性メモリリードデータ管理テーブルにおける該当データの有効・無効ビットを無効に設定する(ステップ607)。
【0052】
図6のフローでは、不揮発性メモリのキャッシュメモリから最初に処理を行っているが、揮発性メモリから先に処理を行ってもよい。
【0053】
次に、図7のフローを用いて、不揮発性メモリのリードキャッシュ103に、揮発性メモリのキャッシュ109からリードデータを書き込むための処理について説明する。
【0054】
まず初めに揮発性メモリ109のデータ管理テーブル110にアクセスし、リードアクセス頻度302を検索し、アクセス頻度が一定回数以上になったエントリを検索する(ステップ701)。該当エントリの有無を調べ(ステップ702)、該当エントリがあればそのエントリのデータを不揮発性メモリのリードキャッシュに転送する(ステップ703)。
【0055】
次に、揮発性メモリ109からの該当データの転送が完了したか調べる(ステップ704)。この処理は転送が完了するまで繰り返す。転送が完了していれば、不揮発性メモリリードデータ管理テーブル106に、該当データの管理情報を登録するとともに、該当データの有効・無効フラグ303を有効に設定する(ステップ705)。
【0056】
次に、揮発性メモリ109のリードデータ管理テーブル110にアクセスし、転送済みデータの有効・無効フラグの値を無効に設定する(ステップ706)。
【0057】
図7の処理は、揮発性メモリ109のキャッシュにおいて、リードアクセス頻度が所定の回数に達したエントリが生じた時、一定間隔ごと、シャットダウン時などのタイミングで行う。
【0058】
次に、図8のフローを用いて、不揮発性メモリのリードキャッシュ103に、不揮発性メモリのライトキャッシュ104からリード頻度の高いデータを書き込むための処理について説明する。
【0059】
不揮発性メモリのライトキャッシュ104のワーク領域108に記録されている、不揮発性メモリライトデータ管理テーブル107にアクセスし、リードのアクセス頻度202が所定のアクセス頻度より高いエントリがあるかを調べる(ステップ801)。
【0060】
該当エントリを調べ(ステップ802)、該当エントリがなければ処理を終了する。
ステップ802で、該当エントリがあれば、該当エントリのデータを、ディスク102に書き込む(ステップ803)。
【0061】
次に、不揮発性メモリのライトキャッシュ104からディスク102へのデータの転送が完了したか調べ(ステップ804)、転送が完了していなければステップ804を繰り返す。ディスクへのデータ転送が完了したら、転送中のデータが更新されていないか調べる(ステップ805)。該当データが更新されていればステップに801に戻り、転送したデータが更新されていなければ、該当エントリのデータを不揮発性メモリのリードキャッシュ103に書き込み、その管理データを不揮発性メモリリードデータ管理テーブル106に登録する(ステップ806)この時有効・無効フラグは無効に設定する。次に、リードキャッシュに転送したデータが更新されたかを調べ(ステップ807)、更新されていなければ、リードキャッシュに転送済みのデータのエントリの有効・無効フラグを有効に設定する(ステップ808)。次に、不揮発性メモリライトデータ管理テーブル107において、転送済みのエントリの有効・無効フラグを無効に設定し(ステップ809)、ステップ801に戻る。ステップ807で、リードキャッシュ103に転送したデータが更新されていれば、ステップ801に戻る。
【0062】
図8の処理を行うタイミングは、不揮発性メモリのライトキャッシュ104において、リードアクセス頻度202が所定の回数以上となるエントリが発生した時、または、ライトキャッシュ104上の空き領域が一定割合以下になった時、または一定時間間隔ごと、あるいは、シャットダウン時などのタイミングで行う。
【0063】
図8のフローでは、リードアクセス頻度の高いデータを不揮発性メモリのキャッシュに転送したが、リードアクセス頻度の高さに加え、非連続なデータを選択してデータを抽出するようにしてもよい。すなわち、第1の不揮発性メモリ104上のデータのリード頻度をカウントして、この第1の不揮発性メモリ上のリードアクセス頻度の高いデータを抽出し、かつ、それらのデータの中から連続データを取り除いた非連続なデータを第2の不揮発性メモリ103に移動するようにしても良い。これは、ディスク上の連続領域へのアクセスは高速のため、非連続のデータをリードキャッシュにたくさん置いた方が、リードキャッシュの速度向上効果が高くなるためである。
【0064】
図8のフローの処理では、不揮発性メモリのライトキャッシュ104のデータを、不揮発性メモリのリードキャッシュ103に移動する前に、ライトデータをディスク102に書き込んだ(ステップ803)。しかし、これを一旦不揮発性メモリのリードキャッシュ103に書き込んだ後で、ディスク102に書き込んでもよい。しかしその場合は、ライトデータであることがわかるように、識別子を付与しておく必要がある。そのため、その場合は、図2Bの不揮発性メモリリードデータ管理テーブル106の構成に不揮発性メモリからの転送データであることを示すフラグを設ける必要がある。後で不揮発性メモリ上のライトデータをディスクに書き込む状況が生じた際には、このフラグを参照し、ディスクに未書き込みのデータを書き込むことができる。
【0065】
図7及び図8のフローでは、揮発性メモリあるいは不揮発性メモリのキャッシュに存在するデータのリードアクセスの頻度を保持することにより、その頻度に基づいて、キャッシュ間でデータを移動する処理について説明した。
【0066】
以下では、リードあるいはライトのアクセス頻度を、キャッシュ上のデータに限定せずディスク上の全領域を対象にして記録しておくことにより、起動時やシャットダウン時などにディスク上の全領域の中でリードアクセス頻度の特に高い領域のデータを、ディスクから抽出して不揮発性メモリ上のアクセス頻度の低いデータと置き換えたり、あるいはディスク上の全領域の中でライトアクセス頻度の低い領域のデータをライトキャッシュから選択してディスクに書き込むことが可能となる。
【0067】
図9に、ディスク102上の全データのアクセス頻度を記録するためのアクセス頻度管理テーブル111の構成例を示す。アクセス頻度管理テーブル111は、リードアクセス頻度901、ライトアクセス頻度902より成る。ディスク102の全領域を対象に、ディスクのアクセス最小単位である、セクタごとにそのアクセス頻度を調べるとテーブルエントリ数は、ディスクの全セクタ数となる。その場合、アクセス頻度管理テーブル111のサイズが大きくなるため、そのテーブルは、ディスク102領域上に記憶する必要がある。また、アクセス頻度管理テーブル111は、磁気ディスク装置内でのデータの配置の最適化のために使用される管理用のデータであるため、ホストから更新されないディスク上のシステム領域に保存しておく必要がある。アクセス頻度管理テーブルの開始ドレスを示す基底アドレスは、ディスク上あるいは、不揮発性メモリ上に記録しておく。
【0068】
また、アクセス頻度管理テーブル111のサイズを小さくしたい場合は、ディスク上の領域をいくつかの領域に分け、その領域ごとにアクセス頻度をとる方法もある。例えば、図2A、図2Bで示したテーブルのTag201、301に基づいて、ディスクをいくつかの領域に分け、その領域ごとに、アクセス頻度を管理してもよい。すなわち、各データ管理テーブル106、107、110のテーブルエントリの上位アドレスごとに単位領域を設定し、キャッシュデータへのリードあるいはライトのアクセス時は、該当エントリ及び該当エントリと同じ上位アドレスを持つ他のエントリのアクセス頻度のカウント値を増加させるように管理してもよい。
【0069】
アクセス頻度管理テーブル111のサイズがライトキャッシュ104のワーク領域108に十分入る大きさであれば、そのテーブルデータを、ワーク領域に記録しておきアクセスしてもよい。またセクタ単位で頻度テーブルを作成しテーブルのサイズが大きくなった場合には、そのテーブルの一部を、揮発性メモリ109のキャッシュ上にコピーし、アクセス可能にして随時データを更新・参照できるようにしてもよい。常にディスク102領域にアクセスしてアクセス頻度を更新・参照するようにした場合、データの書き込みや参照に時間がかかるためである。
【0070】
この場合、アクセス頻度管理テーブル111の一部が、揮発性メモリ109に記憶されているため、電源遮断時には、揮発性メモリ109にコピーされたそのテーブルデータは失われてしまう。しかしながら、揮発性メモリ109上のアクセス頻度管理テーブルのデータを適当なタイミングで、ディスク上のアクセス頻度管理テーブル111に書き込んでいれば、電源遮断より少し前のアクセス頻度の状況がディスク102上に記録されているため大きな問題にはならない。
【0071】
図10に揮発性メモリ109にコピーした、アクセス頻度管理テーブル(全体テーブルの一部)を、ディスク102上のアクセス頻度管理テーブル111に書き戻す処理のフローを示す。
【0072】
ディスクコントローラ105は、磁気ディスク装置101が省電力モードに入っているかを調べ(ステップ1001)、省電力モードに入っていなければ、リード・ライトアクセス中であるか調べる(ステップ1002)、リード・ライトアクセス中でなければ、アクセスしていない時間が一定時間経過したかを調べる(最後のアクセスからの経過時間は、磁気ディスク装置内のタイマーを使って調べることができる)(ステップ1003)。アクセスしていない時間が一定時間経過していれば、不揮発性メモリにコピーしたアクセス頻度管理テーブルを、ディスク上のシステム領域に記録されている、全体のアクセス頻度管理テーブルに書き戻す(ステップ1004)。
ステップ1003に戻り、アクセスしていない時間が一定時間経過していなければ、一定時間経過するまでステップ1003を繰り返す。
【0073】
ステップ1002に戻り、リード・ライトアクセス中であれば処理を終了する。ステップに1001に戻り、省電力モードであった場合は、処理を終了する。
【0074】
以上の処理により、磁気ディスク装置101がアクティブである状態で、かつ、リード・ライトが行われていない、空き時間を見計らって、揮発性メモリ上のアクセス頻度管理テーブルをディスク上のアクセス頻度管理テーブルに書き戻し、ディスク上のアクセス頻度管理テーブルを、最新状態に変更することが可能である。
【0075】
本実施例によれば、リード・ライトキャッシュを、書き換え耐性の異なる2種類の不揮発性メモリの組み合わせによって構成することにより、コストの増加や消費電力の増加等を抑えながら、効果の持続性の高い情報装置を提供することができる。
【実施例2】
【0076】
本発明の情報装置を磁気ディスク装置に適用した第2の実施例を、図11〜図12を参照しながら説明する。図11に、第2の実施例における磁気ディスク装置のシステム構成例を示す。磁気ディスク装置1100はハードディスクコントローラ(HDC)1105、不揮発性メモリのリードキャッシュ1103、不揮発性メモリのライトキャッシュ1104、HDC1105上の揮発性メモリ1109を有する、キャッシュメモリ装置を備えている。実施例2においては、不揮発性のリードキャッシュ1103に、リード速度が速く、ライト速度の遅い不揮発性メモリを、また、ライトキャッシュ1104には、ライト速度が速く、リード速度の遅い不揮発性メモリを割り当てる。リードキャッシュとライトキャッシュに、リード速度及びライト速度の異なる不揮発性メモリを使用するのは、そのように使い分けた方が、コストなどの点でリーズナブルであるためである。
【0077】
例えば、不揮発性メモリのリードキャッシュ1103にはPRAMを、不揮発性メモリのライトキャッシュ1104にはMRAMを割り当てる。
【0078】
リードキャッシュでは、リード速度に対する要求は高いがライト速度に対する要求は低い。一方、ライトキャッシュでは、ライト速度に対する要求は高いが、リード速度に対する要求は低い。そのため、上記のような使い分け方が可能となる。データ処理速度等の性能やコストなど、キャッシュメモリ装置に要求される仕様に応じて、リードキャッシュとライトキャッシュに、リード速度及びライト速度の異なる2種類の不揮発性メモリを適宜使い分ければよい。
【0079】
リードキャッシュにリード速度が速くライト速度の遅い不揮発性メモリを、ライトキャッシュにライト速度が速くリード速度の遅い不揮発性メモリをそれぞれ割り当てるため、キャッシュ上のデータを管理するテーブルはそれぞれのキャッシュ内に配置する。すなわち、不揮発性メモリのリードキャッシュ1103内のリードデータを管理する不揮発性メモリデータ管理テーブル1106は、不揮発性メモリリードキャッシュのワーク領域1108A内に、不揮発性メモリのライトキャッシュ1104内のライトデータを管理するための不揮発性メモリデータ管理テーブル1107は、不揮発性メモリのライトキャッシュ内のワーク領域1108Bに配置する。不揮発性メモリキャッシュのリード及びライトの速度特性を生かすためには、各テーブルへのリード速度及びライト速度は、不揮発性メモリキャッシュのリード速度及びライト速度と一致しているか、あるいはそれ以上である必要があるためである。
【0080】
実施例1と同様に、HDC1105内に揮発性のリードキャッシュ1109及び揮発性メモリリードデータ管理テーブル1110を設けるかどうかは、ディスクからのデータの読み出し速度と、不揮発性メモリのリードキャッシュへのデータの書き込み速度との差に依存する。すなわち、不揮発性メモリのリードキャッシュの書き込み速度が、ディスクからのデータの読み出し速度よりも遅ければ、HDC内に揮発性のリード用キャッシュを設ける必要がある。上記のような速度差がなければ、必ずしもHDC内に揮発性メモリのリードキャッシュを設ける必要はない。
【0081】
また、ディスク102にはアクセス頻度管理テーブル1111が記録される。不揮発性メモリライトデータ管理テーブル1107、不揮発性メモリリードデータ管理テーブル1106、揮発性メモリリードデータ管理テーブル1110、及びアクセス頻度管理テーブル1111の構成は、それぞれ実施例1で示した構成と同じである。その他の装置構成も、実施例1と同じである。
【0082】
図12で、第2の実施例の動作の概要を説明する。磁気ディスク装置1100はハードディスクコントローラ(HDC)1105を介してホスト100との間で、図12に示したように、リードデータあるいはライトデータをやりとりする。HDC1105は、ライト処理において、ホスト100から受領したライトデータをライトキャッシュに1104転送する。またディスク駆動手段と連携してライトキャッシュ1104上のライトデータをディスク102に書き込む。また、リード処理においては、ホスト100からリード要求のあったアドレスのデータを、不揮発性あるいは揮発性のリードキャッシュ1103、1109から直接読み出すか、あるいはディスク駆動手段と連携して、ディスク102から読み出したリードデータを揮発性のリードキャッシュ1109に書き込むとともに、そのデータをホストに転送する。また、HDC1105は、リード処理あるいはライト処理の過程で、キャッシュ上データの管理テーブル1106、1107、1110及びアクセス頻度管理テーブル1111へのアクセスを行う。
【0083】
実施例2では、不揮発性メモリリードデータ管理テーブル1106を不揮発性メモリリードキャッシュ1103に、不揮発性メモリライトデータ管理テーブル1107は不揮発性メモリライトキャッシュ1104にそれぞれ配置して、不揮発性メモリキャッシュ内のデータを管理している。
上記のような構成にしたのは、不揮発性メモリキャッシュのリード及びライトの速度特性を生かすためには、各テーブルへのリード速度及びライト速度は、不揮発性メモリキャッシュのリード速度及びライト速度と一致しているか、あるいはそれ以上である必要があるためである。
【0084】
本実施例によれば、ライトキャッシュにはライト速度が速くリード速度が遅い不揮発性メモリを、リードキャッシュにはリード速度が速くライト速度が遅い不揮発性メモリをそれぞれ割り当てることで、コストや消費電力などの増加を抑えながら、キャッシュによるリード及びライト速度の向上を図ることができる。
【実施例3】
【0085】
本発明の情報装置を磁気ディスク装置に適用した第3の実施例を、図13〜図14を参照しながら説明する。図13に、第3の実施例における磁気ディスク装置のシステム構成例を示す。磁気ディスク装置1300はハードディスクコントローラ(HDC)1305と、不揮発性メモリのリードキャッシュ1303、不揮発性メモリのライトキャッシュ1304の2種類のキャッシュメモリを有するキャッシュメモリ装置を備えている。
【0086】
本実施例の磁気ディスク装置は、リードキャッシュ及びライトキャッシュを消費電力の異なる2種類の不揮発性メモリで構成し、不揮発性メモリライトキャッシュ1304のデータを管理する不揮発性メモリライトデータ管理テーブル1307及び不揮発性メモリリードキャッシュ1303のデータを管理する不揮発性メモリリードデータ管理テーブル1306を、不揮発性ライトキャッシュと不揮発性リードキャッシュの各ワーク領域1308B,1308Aにそれぞれ記録する。
【0087】
実施例3では、HDC1305内に揮発性メモリのキャッシュメモリを配置しない。リード処理におけるキャッシュ数を低減することでリード処理にかかる消費電力を削減できる。
【0088】
不揮発性メモリライトデータ管理テーブル1307及び不揮発性メモリリードデータ管理テーブル1306の構成は、それぞれ実施例1で示した構成と同じである。その他の装置構成も、実施例1と同じである。
【0089】
本実施例において、例えば、リード・ライトキャッシュはライト時の消費電力の異なる2種類の不揮発性メモリで構成し、ライトキャッシュ1304をライト時の消費電力の少ない不揮発性メモリで構成するか、あるいはリードキャッシュ1303をライト時の消費電力の少ない不揮発性メモリで構成する。
【0090】
ライト時の消費電力の少ない不揮発性メモリとしては、MRAMが挙げられる。上記の例として、HDC1305の制御によってキャッシュに書き込むデータの総量が多くなるキャッシュに、ライト時の消費電力が少ない不揮発性メモリのキャッシュを割り当て、他方のキャッシュにはライト時の消費電力の特性は相対的に劣るものの他の特性に優れた不揮発性メモリを割り当てることが考えられる。このようにすることにより、キャッシュ制御に係わる消費電力の低減を図ることが可能となる。
【0091】
また、リードキャッシュ及びライトキャッシュを、リード時の消費電力の異なる2種類の不揮発性メモリで構成し、リードキャッシュにリード時の消費電力の少ない不揮発性メモリを割り当てるようにしても良い。
【0092】
上記の例としてOSやアプリケーションなどの実行プログラムを記憶する不揮発性メモリのリードキャッシュに、リード時の消費電力の少ない不揮発性メモリのキャッシュを採用する。このようにすることで、ライト頻度よりもリード頻度の高くなる不揮発性メモリの、リードキャッシュの消費電力の低減を図ることが可能となる。
【0093】
図14で、第3の実施例の動作の概要を説明する。磁気ディスク装置1300は、ハードディスクコントローラ(HDC)1305を介してホスト100との間で、図14に示したように、リードデータあるいはライトデータをやりとりする。HDC1305は、ライト処理において、ホスト100から受領したライトデータをライトキャッシュに1304転送する。またディスク駆動手段と連携してライトキャッシュ1304上のライトデータをディスク102に書き込む。また、リード処理においては、ホスト100からリード要求のあったアドレスのデータを、不揮発性のリードキャッシュ1303から直接読み出すか、あるいはディスク駆動手段と連携して、ディスク102から読み出したデータを不揮発性メモリのリードキャッシュ1103に書き込むとともに、そのデータをホストに転送する。また、HDC1305は、リード処理あるいはライト処理の過程で、キャッシュ上データの管理テーブル1306、1307及びアクセス頻度管理テーブル111へのアクセスを行う。
【0094】
実施例3では、不揮発性メモリリードデータ管理テーブル1306を不揮発性メモリリードキャッシュ1303に、不揮発性メモリライトデータ管理テーブル1307を不揮発性メモリライトキャッシュ1304にそれぞれ配置して不揮発性メモリキャッシュ内のデータを制御しているが、これに限定される必要はない。テーブルの配置は、リード・ライトのアクセスに対して、消費電力が最小になるように配置されるべきである。
【0095】
また、実施例3では、消費電力を抑えるため、HDC1305内に揮発性メモリのリードキャッシュを設定せず、ディスク102から読み出したリードデータを、不揮発性メモリのリードキャッシュ1303に直接書き込むようにしている。
【0096】
本実施例によれば、リード・ライトキャッシュをリードあるいはライトの消費電力の特性の異なる2種類の不揮発性メモリで構成することにより、コストの増加や、リード・ライト速度の低下などを抑えながら、キャッシュの処理にかかる消費電力を抑えることができる。
【実施例4】
【0097】
本発明の情報装置をPC(パーソナルコンピュータ)に実装して情報処理装置とした場合のシステム構成例を、図15に示す。
PC1500は、中央演算装置であるCPU1520、メインメモリであるDRAM1523、補助メモリとしてのキャッシュメモリ装置1501、主にCPUとメインメモリ間のデータ転送を制御するノースブリッジ、主にHDDなどの記憶装置とノースブリッジ間のデータ転送を制御するサウスブリッジ等から構成される。CPUとノースブリッジはCPUバス1524で、ノースブリッジとメインメモリはメモリバスで接続されている。またノースブリッジとサウスブリッジはPCIバスや専用バスで接続されている。
本発明の情報装置1501は、例えば専用バスを用いてノースブリッジと接続することができる。
【0098】
本発明のキャッシュメモリ装置1501は、DRAMなどの揮発性メモリから成るリードキャッシュ1503、PRAMなどの不揮発性メモリから成るライトキャッシュ1504、Flash Memoryなどの不揮発性メモリから成るリードキャッシュ1509の3種類のキャッシュメモリ、及びコントローラ1505を含んでいる。キャッシュメモリ装置1501の具体的な構成、作用は、実施例1ないし実施例3のいずれかのキャッシュメモリ装置と同じである。
【0099】
本実施例によれば、リード・ライトキャッシュを、特性の異なる2種類の不揮発性メモリの組み合わせによって構成することにより、コストや消費電力等の増加を抑えながらキャッシュによる効果を高められ、あるいは、キャッシュによる効果を最大限に引き出すことができ低コスト、高データ転送速度、低消費電力等の各種要求に応えるPCを提供することができる。
【実施例5】
【0100】
本発明の情報装置を、ホストとHDDを接続するためのアダプターに実装した場合のシステム構成例を、図16に示す。アダプター1600はキャッシュメモリ装置、及びインタフェース1612、1613を備えている。キャッシュメモリ装置は、DRAMなどの揮発性メモリから成るリードキャッシュ1603、PRAMなどの不揮発性メモリから成るライトキャッシュ1604、Flash Memoryなどの不揮発性メモリから成るリードキャッシュ1609の3種類のキャッシュメモリを含んでいる。キャッシュメモリ装置の具体的な構成、作用は、実施例1ないし実施例3のいずれかのキャッシュメモリ装置と同じである。アダプター1600のインタフェースには、ホスト/HDD間で使用されているインタフェースと同じインタフェースを使用する。
【0101】
本実施例によれば、アダプター1600を介してホスト1610とHDD1602とを接続することにより、キャッシュによる効果をより高めつつ、低コスト、高データ転送速度、低消費電力等の各種要求に応える情報処理装置を提供することができる。
【実施例6】
【0102】
本発明の情報装置を、ストレージシステムに実装して情報処理装置とした場合のシステム構成例を、図17に示す。本実施例のストレージシステム1700は、少なくとも1つのホスト1710と、ストレージコントローラ1716と、複数のHDD1702−1〜1702−nとを備えている。ストレージコントローラ1716は、キャッシュメモリ装置1701と、CPU1720と、DRAM1723と、チャネルアダプター部1712と、ディスクアダプター部1713と、バス等の接続部1724とを備えている。キャッシュメモリ装置1701は、コントローラ1705、揮発性メモリのリードキャッシュ1703、不揮発性メモリのライトキャッシュ1704、不揮発性メモリ1709のリードキャッシュの3種類のキャッシュメモリを含んでいる。一例として、揮発性リードキャッシュ1703にはDRAM、不揮発性メモリのライトキャッシュ1704にはPRAM、不揮発性メモリ1709のリードキャッシュにはフラッシュメモリを用いる。キャッシュメモリ装置1701の具体的な構成、作用は、実施例1ないし実施例3のいずれかのキャッシュメモリ装置と同じである。
【0103】
ホスト1710は、CPUやメモリ等を備えたコンピュータであり、ストレージコントローラ1716によって提供される複数のHDD1702−1〜1702−nの記憶領域を論理的に認識し、この論理記憶領域(論理ボリューム)を利用して、アプリケーションプログラムを実行する。ディスクアダプター部1713は、マイクロコンピュータであり、各HDD1702−1〜1702−nに対するインタフェースとして機能する。
【0104】
本実施例によれば、キャッシュによる効果をより高めつつ、低コスト、高データ転送速度、低消費電力等の各種要求に応えるストレージシステムを提供することができる。
【符号の説明】
【0105】
100…ホスト、101…磁気ディスク装置、102…ディスク、103…不揮発性メモリのリードキャッシュ、104…不揮発性メモリのライトキャッシュ、105…ハードディスクコントローラ、106…不揮発性メモリリードデータ管理テーブル、107…不揮発性メモリライトデータ管理テーブル、108…書き換え耐性の高い不揮発性メモリ上のワーク領域、109…揮発性メモリ、110…揮発性メモリリードデータ管理テーブル、111…アクセス頻度管理テーブル、115…ホストインタフェース、118…ROM、120…CPU、121…サーボ制御部、122…モータドライバ、123…ディスクフォーマッタ、124…信号処理部、125…VCM、126…セレクタ、1100…磁気ディスク装置、1300…磁気ディスク装置、1500…PC、1600…アダプター、1700…ストレージシステム。

【特許請求の範囲】
【請求項1】
データ処理速度の異なる複数の装置間のデータ転送経路に、リード用のキャッシュメモリ及びライト用のキャッシュメモリを備える情報装置であって、
前記ライト用のキャッシュメモリが第1の不揮発性メモリ、前記リード用のキャッシュメモリが前記第1の不揮発性メモリとは特性の異なる第2の不揮発性メモリで構成されている
ことを特徴とするキャッシュを搭載した情報装置。
【請求項2】
請求項1において、
前記第1の不揮発性メモリに書き換え耐性の高い不揮発性メモリ、前記第2の不揮発性メモリが前記第1の不揮発性メモリよりも書き換え耐性の低い不揮発性メモリでそれぞれ構成されている
ことを特徴とするキャッシュを搭載した情報装置。
【請求項3】
請求項2において、
前記第1の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリライトデータ管理テーブル、および、前記第2の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリリードデータ管理テーブルを前記第1の不揮発性メモリに記憶する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項4】
請求項1において、
前記第1の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリライトデータ管理テーブルを該第1の不揮発性メモリに記憶し、
前記第2の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリリードデータ管理テーブルを該第2の不揮発性メモリに記憶する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項5】
請求項1において、
前記ライト用の第1の不揮発性メモリは、ライト速度が速くリード速度が遅く、
前記リード用の第2の不揮発性メモリは、リード速度が速く、ライト速度が遅い特性を有する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項6】
請求項1において、
前記リード用の第2の不揮発性メモリは、ライト時の消費電力が前記ライト用の第1の不揮発性メモリのライト時の消費電力より少ない特性を有することを特徴とするキャッシュを搭載した情報装置。
【請求項7】
請求項1において、
前記リード用の第2の不揮発性メモリは、リード時の消費電力が前記ライト用の第1の不揮発性メモリのリード時の消費電力より少ない特性を有することを特徴とするキャッシュを搭載した情報装置。
【請求項8】
請求項1において、
前記ライト用の第1の不揮発性メモリは、ライト時の消費電力が前記リード用の第2の不揮発性メモリのライト時の消費電力より少ない特性を有する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項9】
請求項3において、
前記各データ管理テーブルは、前記キャッシュデータのリードあるいはライト毎のアクセス頻度を数える項目を有し、
前記アクセス頻度のカウントは、前記キャッシュデータの最小単位あるいは、設定した単位領域ごとに行う
ことを特徴とするキャッシュを搭載した情報装置。
【請求項10】
請求項2において、
前記情報装置は、揮発性メモリを備えており、
前記第2の不揮発性メモリのキャッシュミス時は、リード要求先の記憶装置からリードした、データを前記揮発性メモリに一旦キャッシュしそこから前記リードデータを転送可能とした
ことを特徴とするキャッシュを搭載した情報装置。
【請求項11】
請求項9において、
前記情報装置は、揮発性メモリを備えており、
前記第2の不揮発性メモリのキャッシュミス時は、一旦前記揮発性メモリにデータを記憶し、前記リードアクセス頻度をカウントして該リードアクセス頻度の高いデータを抽出し、前記第2の不揮発性メモリにそれらのデータを移動する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項12】
請求項9において、
前記ライト用の第1の不揮発性メモリ上のデータの前記リードアクセス頻度をカウントし、該第1の不揮発性メモリ上の前記リードアクセス頻度の高いデータを抽出し、それらのデータを前記第2の不揮発性メモリに移動する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項13】
請求項3において、
前記データ処理速度の異なる装置が、コンピュータと記憶装置であり、
前記記憶装置の記憶媒体上の全領域を対象に、リードアクセス頻度の履歴及びライトアクセス頻度の履歴をとり、前記リードアクセス頻度の高い領域のデータを前記不揮発性メモリのリードキャッシュに書き込み、
前記ライトアクセス頻度の低い領域のデータから優先して前記不揮発性メモリのライトキャッシュから前記記憶媒体に書き込む
ことを特徴とするキャッシュを搭載した情報装置。
【請求項14】
請求項13において、
前記記憶装置の記憶媒体上の全領域を対象にした、前記リードアクセス頻度及びライトアクセス頻度の履歴は、前記記憶媒体上のシステム領域に記録する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項15】
請求項3において、
前記第1の不揮発性メモリにデータが書き込まれた場合には、前記第2の不揮発性メモリのリードデータ管理テーブルを検索して、前記ライトデータと同一領域のデータがあるか調べ、該当データがあれば、前記第2の不揮発性メモリのリードデータ管理テーブルにおいて、そのデータを無効にすることを特徴とするキャッシュを搭載した情報装置。
【請求項16】
請求項1において、
前記データ処理速度の異なる複数の装置が、ホストコンピュータと記憶装置であり、前記情報装置は、上記装置間を接続するためのアダプターであって、
該アダプターのインタフェースは、前記ホストコンピュータと前記記憶装置間で使用されているインタフェースと同じインタフェースであることを特徴とするキャッシュを搭載した情報装置。
【請求項17】
少なくとも1つのコンピュータと、記憶装置とを備えた情報処理装置であって、
データ処理速度の異なる前記コンピュータと前記記憶装置間のデータ転送経路に配置された情報装置を備えており、
前記情報装置は、
コントローラ、リード用の不揮発性メモリのキャッシュメモリ及びライト用の不揮発性メモリのキャッシュメモリを備えており、
前記ライト用のキャッシュメモリが第1の不揮発性メモリ、前記リード用のキャッシュメモリが前記第1の不揮発性メモリとは特性の異なる第2の不揮発性メモリで各々構成されている
ことを特徴とする情報処理装置。
【請求項18】
情報装置により、コンピュータと記憶装置とのデータ転送を制御するためのプログラムであって、
前記情報装置は、コントローラ、リード用のキャッシュメモリ、及び、ライト用のキャッシュメモリ、ライトデータ管理テーブル、リードデータ管理テーブルを備えており、
前記ライト用のキャッシュメモリは第1の不揮発性メモリで構成され、前記リード用のキャッシュメモリは前記第1の不揮発性メモリとは特性の異なる第2の不揮発性メモリで構成されており、
上記情報装置を、
リード処理においては、前記コンピュータからのリード要求に対し、前記ライトデータ管理テーブルにアクセスし、前記第1の不揮発性メモリ上のデータを検索し、該当データの有無を調べ、該当データが存在すればこの該当データを該第1の不揮発性メモリから前記コンピュータに転送する手段、
前記第1の不揮発性メモリ上に前記リード要求データが存在しなければ、前記リードデータ管理テーブルにアクセスし、前記第2の不揮発性メモリ上のデータを検索し、該当データの有無を調べ、該当データが存在すればこの該当データを該第2の不揮発性メモリから前記コンピュータに転送する手段、及び
前記第2の不揮発性メモリ上に該当データがない場合、前記記憶装置の記憶媒体から読み出された前記リード要求データを前記コンピュータに転送する手段として機能させ、
ライト処理においては、前記コンピュータからのライト要求データを前記第1の不揮発性メモリに書き込むとともに、該書き込んだライト要求データを前記記憶媒体に書き込むために当該第1の不揮発性メモリから読み出す手段
として機能させるためのプログラム。
【請求項19】
請求項18において、
前記第1の不揮発性メモリに書き換え耐性の高い不揮発性メモリ、前記第2の不揮発性メモリが前記第1の不揮発性メモリよりも書き換え耐性の低い不揮発性メモリでそれぞれ構成されており、
上記情報装置を、
前記ライト用の第1の不揮発性メモリ上のデータに対する、リードのアクセスの頻度をカウントする手段、及び
該第1の不揮発性メモリ上の、前記リードアクセス頻度の高いデータを抽出し、それらのデータを前記第2の不揮発性メモリに移動する手段
として機能させるためのプログラム。
【請求項20】
請求項18において、
前記第1の不揮発性メモリに書き換え耐性の高い不揮発性メモリ、前記第2の不揮発性メモリが前記第1の不揮発性メモリよりも書き換え耐性の低い不揮発性メモリでそれぞれ構成されており、
上記情報装置を、
前記記憶装置の前記記憶媒体上の全領域を対象に、リードアクセス頻度の履歴及びライトアクセス頻度の履歴をとる手段、
前記リードアクセス頻度の高い領域のデータを前記第2の不揮発性メモリに書き込む手段、及び
前記ライトアクセス頻度の低い領域のデータから優先して前記第1の不揮発性メモリから前記記憶媒体に書き込む手段
として機能させるためのプログラム。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2012−48361(P2012−48361A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−188174(P2010−188174)
【出願日】平成22年8月25日(2010.8.25)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】