(57)【特許請求の範囲】
【請求項１】
データ処理速度の異なる複数の装置間のデータ転送経路に、リード用のキャッシュメモリ及びライト用のキャッシュメモリと、前記リード／ライトを制御するためのデータ管理テーブルとを備える情報装置であって、
前記ライト用のキャッシュメモリが第１の不揮発性メモリで構成され、
前記リード用のキャッシュメモリが前記第１の不揮発性メモリとは物理原理が異なり、リード／ライト性能若しくは消費電力の何れかの特性において相互に差を生ずる、第２の不揮発性メモリで構成されており、
前記データ管理テーブルは、前記第１の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリライトデータ管理テーブルと、前記第２の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリリードデータ管理テーブルとを備え、
前記不揮発性メモリライトデータ管理テーブルを前記第１の不揮発性メモリに記憶し、
前記不揮発性メモリリードデータ管理テーブルを前記第２の不揮発性メモリに記憶する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項２】
請求項1において、
前記ライト用の第１の不揮発性メモリは、ライト速度が速くリード速度が遅く、
前記リード用の第２の不揮発性メモリは、リード速度が速く、ライト速度が遅い特性を有する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項３】
請求項1において、
前記リード用の第２の不揮発性メモリは、ライト時の消費電力が前記ライト用の第１の不揮発性メモリのライト時の消費電力より少ない特性を有する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項４】
請求項1において、
前記リード用の第２の不揮発性メモリは、リード時の消費電力が前記ライト用の第１の不揮発性メモリのリード時の消費電力より少ない特性を有する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項５】
請求項1において、
前記ライト用の第１の不揮発性メモリは、ライト時の消費電力が前記リード用の第２の不揮発性メモリのライト時の消費電力より少ない特性を有する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項６】
データ処理速度の異なる複数の装置間のデータ転送経路に、リード用のキャッシュメモリ及びライト用のキャッシュメモリ備える情報装置であって、
前記ライト用のキャッシュメモリが第１の不揮発性メモリで構成され、
前記リード用のキャッシュメモリが前記第１の不揮発性メモリとは物理原理が異なり、リード／ライト性能若しくは消費電力の何れかの特性において相互に差を生ずる、第２の不揮発性メモリで構成されており、
前記データ処理速度の異なる複数の装置が、ホストコンピュータと記憶装置であり、上記装置間を接続するためのアダプターであって、
該アダプターのインタフェースは、前記ホストコンピュータと前記記憶装置間で使用されているインタフェースと同じインタフェースであり、
前記第１の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリライトデータ管理テーブルを該第１の不揮発性メモリに記憶し、
前記第２の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリリードデータ管理テーブルを該第２の不揮発性メモリに記憶する
ことを特徴とするキャッシュを搭載した情報装置。
【請求項７】
情報装置により、コンピュータと記憶装置とのデータ転送を制御するためのプログラムを記録したコンピュータ読み取り可能な記憶媒体であって、
前記情報装置は、コントローラ、リード用のキャッシュメモリ、及び、ライト用のキャッシュメモリ、ライトデータ管理テーブル、リードデータ管理テーブルを備えており、
前記ライト用のキャッシュメモリが第１の不揮発性メモリで構成され、
前記リード用のキャッシュメモリが前記第１の不揮発性メモリとは物理原理が異なり、リード／ライト性能若しくは消費電力の何れかの特性において相互に差を生ずる、第２の不揮発性メモリで構成されており、
上記情報装置を、
リード処理においては、前記コンピュータからのリード要求に対し、前記第１の不揮発性メモリに記憶された前記ライトデータ管理テーブルにアクセスし、前記第１の不揮発性メモリ上のデータを検索し、該当データの有無を調べ、該当データが存在すればこの該当データを該第１の不揮発性メモリから前記コンピュータに転送する手段、
前記第１の不揮発性メモリ上に前記リード要求データが存在しなければ、前記第２の不揮発性メモリに記憶された前記リードデータ管理テーブルにアクセスし、前記第２の不揮発性メモリ上のデータを検索し、該当データの有無を調べ、該当データが存在すればこの該当データを該第２の不揮発性メモリから前記コンピュータに転送する手段、及び
前記第２の不揮発性メモリ上に該当データがない場合、前記記憶装置の記憶媒体から読み出された前記リード要求データを前記コンピュータに転送する手段として機能させ、
ライト処理においては、前記コンピュータからのライト要求データを前記第１の不揮発性メモリに書き込むとともに、該書き込んだライト要求データを前記記憶媒体に書き込むために当該第１の不揮発性メモリから読み出す手段
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュを搭載した情報装置及びそれを用いた情報処理装置並びにプログラムに係り、特に、不揮発性メモリをキャッシュとして使用した情報装置及びそれを用いた情報処理装置に関するものである。
【背景技術】
【０００２】
従来、キャッシュには揮発性メモリが使用されてきた。しかし、揮発性メモリのキャッシュは、データを保持するために多量の電力を消費するという問題があった。また、電源遮断などによりデータが失われるという問題があった。そのため、電源遮断後一定期間電力を供給するためにバッテリーを搭載したり、キャッシュ上にデータを長く滞留させないようにするなどの工夫が必要であった。
【０００３】
不揮発性メモリをキャッシュとして使用すると、省電力化の推進や電源遮断などによるデータロストのリスクの低減が図れるため、不揮発性メモリのキャッシュへの適用が検討され始めている。
【０００４】
現在市場に出回っている不揮発性メモリの中でもっとも市場規模が大きいのが、NANDフラッシュメモリである。近年そのビットコストは、Dynamic Random Access Memory （DRAM）を下回る。NANDフラッシュメモリは、書き換え耐性が103〜106と低いため（DRAMでは1016である）、主にSolid State Driveなどのストレージデバイスで使用されている。
【０００５】
NANDフラッシュメモのリード・ライト速度は、HDDと比較して速いが、DRAMと比較すると1/103〜4程度遅い（DRAMのランダムリード・ライトの速度が6〜40nsであるのに対し、NAND フラッシュメモリの場合は、ランダムライトが105 nsであり、ランダムリードが104nsである）。また、NANDフラッシュメモリの書き込み時の消費電力はDRAMと同程度である（NANDフラッシュ及びDRAMの１ビットあたりの書き込み時の消費電力は65pJである）。
【０００６】
近年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のランダムリード・ライト性能よりも高い。
【０００７】
PRAM及びMRAMの書き込み時の消費電力はDRAMと同程度である。FeRAMに関してはDRAMの書き込み時の消費電力よりも少ないという特徴を持つ（DRAMが１ビットあたりの書き込み電力が65pJであるのに対し、FeRAM は2pJである）。
【０００８】
不揮発性メモリは上記のように、多様な特徴をもつことから、不揮発性メモリをキャッシュとして使用する場合はその使い方を工夫する必要がある。
【０００９】
不揮発性メモリをキャッシュとして搭載した磁気ディスク装置の例が、特許文献１に記載されている。この例では、オペレーティングシステムなどの計算機（ホスト）の起動プログラムや使用頻度の高いアプリケーションプログラムを不揮発性メモリに記憶しておくことで、ホストへのデータ転送速度を向上させ、起動時間の短縮を図っている。また、ディスクへのアクセスがない時には、ディスクをスピンダウンし、スピンダウン中はライト要求データを不揮発性メモリに書き込む、あるいはリード要求データを不揮発性メモリから転送することで省電力化を図っている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】US ２００７/０１６２６９３A1
【発明の概要】
【発明が解決しようとする課題】
【００１１】
不揮発性メモリは上記のような特徴をもつことから、不揮発性メモリをキャッシュとして使用する場合はその使い方を工夫する必要がある。  
例えば、特許文献１に記載の磁気ディスク装置において、キャッシュにフラッシュメモリのような書き換え耐性の低い不揮発性メモリを使用すると、その使用が進むに従って（キャッシュへのデータの書き込み回数が所定回数に達するために）、キャッシュ部分が使用できなくなり、磁気ディスク装置のデータ転送速度や省電力効果が急激に低下する。
【００１２】
また、上記のような磁気ディスク装置では、キャッシュにフラッシュメモリのようなリード・ライト速度の遅い不揮発性メモリを使用すると、連続領域へのアクセスではディスクのリード・ライト速度との差が小さくなり、キャッシュによる速度向上効果が低い。  
また、また上記のような磁気ディスク装置では、キャッシュにフラッシュメモリのような、書き込み時の消費電力が大きい不揮発性メモリを使用した場合、フラッシュメモリへのライトデータの書き込み量が多くなると、省電力効果が低下する。
【００１３】
本発明が解決しようとする課題の１つは、不揮発性メモリをキャッシュとして使用した場合、その書き換え耐性が低いために、キャッシュの効果の持続性が短いことである。  
本発明が解決しようとする他の課題は、不揮発性メモリをキャッシュとして使用した場合、その速度が遅いために速度向上効果が低いことである。  
本発明が解決しようとする他の課題は、不揮発性メモリをキャッシュとして使用した場合、そのデータ書き込み時の消費電力が大きいために省電力効果が低下することである。
【００１４】
本発明の目的は、キャッシュとしての不揮発性メモリをより効果的に活用することで、データ処理速度の異なる複数の装置間のデータ転送経路に配置される情報装置における書き換え耐性、リード・ライト速度、あるいは消費電力等の各種の課題を解消した情報装置及びそれを用いた情報処理装置を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の代表的な構成を示すと次の通りである。本発明の情報装置は、データ処理速度の異なる複数の装置間のデータ転送経路に、リード用のキャッシュメモリ及びライト用のキャッシュメモリと、前記リード／ライトを制御するためのデータ管理テーブルとを備える情報装置であって、前記ライト用のキャッシュメモリが第１の不揮発性メモリで構成され、前記リード用のキャッシュメモリが前記第１の不揮発性メモリとは物理原理が異なり、リード／ライト性能若しくは消費電力の何れかの特性において相互に差を生ずる、第２の不揮発性メモリで構成されており、前記データ管理テーブルは、前記第１の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリライトデータ管理テーブルと、前記第２の不揮発性メモリ上のキャッシュデータを管理する不揮発性メモリリードデータ管理テーブルとを備え、前記不揮発性メモリライトデータ管理テーブルを前記第１の不揮発性メモリに記憶し、前記不揮発性メモリリードデータ管理テーブルを前記第２の不揮発性メモリに記憶することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、リード・ライトキャッシュを、特性の異なる２種類の不揮発性メモリの組み合わせによって構成することにより、キャッシュによる効果をより高め、各種の要求に応える情報装置及びそれを用いた情報処理装置を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の情報装置を磁気ディスク装置に適用した第１の実施例のシステム構成例を示す図である。
【図２Ａ】第１の実施例におけるライトキャッシュのデータを管理するテーブルの構成例を示す図である。
【図２Ｂ】第１の実施例におけるリードキャッシュのデータを管理するテーブルの構成例を示す図である。
【図３】第１の実施例の動作の概要を説明する図である。
【図４】第１の実施例における領域ごとにアクセス頻度をカウントする処理の例（フロー）を示す図である。
【図５】第１の実施例におけるリード処理の例（フロー）を示す図である。
【図６】第１の実施例におけるライト処理の例（フロー）を示す図である。
【図７】第１の実施例における揮発性メモリのリードキャッシュにおいて、リードアクセス頻度の高いデータを不揮発性メモリのリードキャッシュに移動する処理の例（フロー）を示す図である。
【図８】第１の実施例における不揮発性メモリのライトキャッシュにおいて、リードアクセス頻度の高いデータを不揮発性メモリのリードキャッシュに移動する処理の例（フロー）を示す図である。
【図９】第１の実施例におけるディスク全領域のアクセス頻度を管理するアクセス頻度管理テーブルの構成例を示す図である。
【図１０】第１の実施例における揮発性メモリにコピーした、アクセス頻度管理テーブルを、ディスク上のアクセス頻度管理テーブルに書き戻す処理の例（フロー）を示す図である。
【図１１】本発明の情報装置を磁気ディスク装置に適用した第２の実施例のシステム構成例を示す図である。
【図１２】第２の実施例の動作の概要を説明する図である。
【図１３】本発明の情報装置を磁気ディスク装置に適用した第３の実施例のシステム構成例を示す図である。
【図１４】第３の実施例の動作の概要を説明する図である。
【図１５】本発明の情報装置を情報処理装置としてのPCに実装した実施例のシステム構成例を示す図である。
【図１６】本発明の情報装置をホストとHDDを接続するためのアダプターに実装し、情報処理装置を構成したシステム構成例を示す図である。
【図１７】本発明の情報装置を、情報処理装置としてのストレージシステムに実装した実施例のシステム構成例を示す図である。
【発明を実施するための形態】
【００１８】
本発明の１つの実施形態によれば、キャッシュを書き換え耐性の異なる２種類の不揮発性メモリで構成し、ライトキャッシュに書き換え耐性の高い不揮発性メモリを、リードキャッシュに書き換え耐性の低い不揮発性メモリを採用し、それらのキャッシュにおけるデータの管理テーブルを書き換え耐性の高い不揮発性メモリに記憶する。また、書き換え耐性の低い不揮発性メモリのリードキャッシュには、リードアクセス頻度の高い領域のデータを抽出して書き込む。これにより、コストや消費電力などの増加を抑えながら、キャッシュによる効果の持続性を高めることができる。
【００１９】
また他の実施形態によれば、リード・ライト速度の異なる２種類の不揮発性メモリで構成し、ライトキャッシュには、ライト速度が速くリード速度が遅い不揮発性メモリを、リードキャッシュにはリード速度が速く、ライト速度が遅い不揮発性メモリをそれぞれ採用するようにしている。これにより、コストや消費電力などの増加を抑えながら、キャッシュによるリード・ライト速度の向上効果を高めることができる。
【００２０】
また、他の実施形態によれば、リード・ライトキャッシュを消費電力の異なる２種類の不揮発性メモリで構成し、ライトキャッシュにライト時の消費電力の少ない不揮発性メモリを採用するようにしている。これにより、コストの増加や、リード・ライト速度の低下などを抑えながら、キャッシュによる省電力効果を高めることができる。 
なお、本願明細書において、「情報装置」とは、処理速度の異なる一対の装置間のデータ転送経路に配置され、「キャッシュメモリ装置」を備えたものを意味する。より具体的には、一対の装置の一方がコンピュータであり、他方が、記憶装置もしくは記憶媒体である。「記憶装置」には、磁気系ストレージ装置、光系ストレージ装置、さらには、記憶媒体にフラッシュメモリを用いたドライブ装置（ＳＳＤ：Solid State Drive）などが含まれる。また、「記憶媒体」には、磁気ディスク、光ディスク、半導体メモリなどが含まれる。また「キャッシュメモリ装置」は、コントローラ、不揮発性メモリリードキャッシュ、不揮発性メモリライトキャッシュがセットになった装置である。「キャッシュメモリ装置」には、必要に応じて「揮発性メモリのリードキャッシュ」が付加される。なお、キャッシュメモリ装置内のコントローラは、磁気ディスク装置内においては、ハードディスクコントローラ、その他の情報装置及び情報処理装置では、コントローラと表現している。
【００２１】
本発明で用いられる「不揮発性メモリ」は、リード／ライト可能なメモリであり、先に挙げたPRAM （又はPCM）、 MRAM、FeRAM、の他に、例えば、ReRAM、 STT-RAM等がある。
【００２２】
また、本発明において、「特性の異なるメモリ」とは、物理原理の異なるメモリ技術が採用された別個のメモリを意味する。これら「特性の異なるメモリ」は、「書き換え耐性」、「リード／ライト性能」、「消費電力」のいずれかの特性において、相互に差を生ずる。また、結果として、これら「特性の異なるメモリ」は、コストの面においても差を生ずる。物理原理の異なるメモリ技術を採用した結果コスト面で差を生じるメモリも、本発明における「特性の異なるメモリ」の１つである。一方、採用されている物理原理が同じメモリは、仕様、性能、あるいはコスト等が異なっていても、本発明の「特性の異なるメモリ」には該当しない。  
以下、本発明の不揮発性メモリのキャッシュメモリ装置を搭載した情報装置の実施例を図面により、詳細に説明する。
【実施例１】
【００２３】
本発明の情報装置を磁気ディスク装置に組み込んで情報処理装置とした第１の実施例を、図１〜図１０を参照しながら説明する。なお以下では磁気ディスク装置を対象にして、情報装置の実装例を説明するが、本実施例により情報装置の適用先が磁気ディスク装置に限定されるものではない。
【００２４】
図１に、第１の実施例における磁気ディスク装置のシステム構成例を示す。また、図２Ａに、ライトキャッシュのデータを管理するテーブルの構成例、図２Ｂに、リードキャッシュのデータを管理するテーブルの構成例を示す。  
磁気ディスク装置１０１はコマンドやデータをやり取りするインタフェース制御部１１５を介してホストコンピュータ（または上位装置のコンピュータ、以下、単にホスト）１００に接続されており、データ処理速度の異なる磁気ディスク１０２とホスト１００との間のデータ転送経路上に一時的にデータを格納するためのキャッシュメモリ装置を備える。このキャッシュメモリ装置は、不揮発性メモリライトキャッシュ１０４、不揮発性メモリリードキャッシュ１０３、及び、ハードディスクコントローラ（以下HDC）１０５により構成されている。すなわち磁気ディスク装置１０１は、制御プログラムを実装するプログラムROM１１８、このプログラムROM１１８上の制御プログラムを読み込み実行するCPU（制御プロセッサ）１２０、キャッシュメモリ装置として、ライト要求データを書き込む不揮発性メモリ（第１の不揮発性メモリ）のライトキャッシュ１０４、リード要求データを書き込む不揮発性メモリ（第２の不揮発性メモリ）のリードキャッシュ１０３、揮発性のメモリのリードキャッシュ１０９、ホスト１００と、不揮発性メモリのリードキャッシュ１０３、揮発性メモリのリードキャッシュ１０９（本実施例ではHDCの内部に揮発性メモリのリードキャッシュを実装しているが、HDCの外部に実装してもよい）、不揮発性メモリのライトキャッシュ１０４、ホストとディスク１０２との間のデータ転送を制御するHDC１０５を備えている。
【００２５】
さらに、ディスク駆動手段として、データの読み書きをする際に指定された位置にヘッドを移動するための制御を行うサーボ制御部１２１、このサーボ制御部の指示に従って、ヘッド（図示略）を移動するボイスコイルモータ（VCM）１２５、ディスク１０２の回転を制御するモータドライバ１２２、ディスク回転用スピンドルモータ（図示略）、ヘッドから読み込んだ磁気信号から指定されたヘッドの信号だけを選択するセレクタ１２６を備えている。さらに、セレクタ１２６から送られたアナログデータをディジタルデータに変換する、またはHDC１０５から送られたディジタルデータをアナログデータに変換する信号処理部１２４、及び、ディスクフォーマッタ１２３を備えている。ディスクフォーマッタ１２３は、リード用ゲートを開閉することにより、信号処理部１２４より送られたリードデータを揮発性メモリのリードキャッシュ１０９に転送し、また、ライト用ゲートを開閉することにより、不揮発性メモリのライトキャッシュ１０４より転送されるライトデータを信号処理部１２４に転送する。
【００２６】
上記キャッシュメモリ装置内のHDC１０５は、ホスト１００から受領したライトデータを不揮発性メモリのライトキャッシュに書き込む、また、ホスト１００からリード要求のあったアドレスのデータを、不揮発性メモリのリードキャッシュ１０３あるいは、揮発性メモリのリードキャッシュ１０９から読み出す。
【００２７】
ライト用の不揮発性メモリと、リード用の不揮発性メモリは、それらの特性が異なっている。すなわち、ライト用の不揮発性メモリ１０４は書き換え耐性の高い不揮発性メモリ、リード用の不揮発性メモリはライト用の不揮発性メモリ１０４よりも書き換え耐性の低い不揮発性メモリ１０３で構成されている。リードキャッシュとライトキャッシュに書き換え耐性の異なる不揮発性メモリを使用するのは、例えば、書き換え耐性の低い不揮発性メモリの方が、コストなどの点において書き換え耐性の高い不揮発性メモリよりも優位であるためである。コストや性能など、情報装置に要求される仕様に応じて、リードキャッシュとライトキャッシュに性質の異なる２種類の不揮発性メモリをそれぞれ割り当てればよい。
【００２８】
不揮発性メモリのライトキャッシュ１０３には、不揮発性メモリ内のライトデータ及び不揮発性メモリのリードデータを管理するための、不揮発性メモリライトデータ管理テーブル１０７及び不揮発性メモリリードデータ管理テーブル１０６を備える。不揮発性メモリ内に不揮発性メモリのライトデータ及び不揮発性メモリのリードデータの管理テーブルを配置することにより、電源遮断などによるキャッシュ上データの消失を防ぐことができる。また、書き換え耐性の高いライトキャッシュ上に、不揮発性メモリライトデータ管理テーブル１０７及び不揮発性メモリリードデータ管理テーブル１０６を配置することにより、書き換え耐性の低い不揮発性メモリのリードキャッシュの消耗を緩和できる。
【００２９】
また、HDC１０５内の揮発性リードキャッシュ１０９には、揮発性メモリのリードデータを管理するための揮発性メモリリードデータ管理テーブル１１０を備える。HDC１０５内に揮発性メモリを備えることにより、書き換え耐性の低い不揮発性メモリのリードキャッシュ１０３にリード要求頻度の高いデータを抽出して蓄積することができるため、不揮発性メモリのリードキャッシュの消耗を緩和できる。
【００３０】
例えば、不揮発性メモリのリードキャッシュ１０３には、NANDフラッシュメモリやPRAMを、不揮発性メモリのライトキャッシュ１０４にはMRAMを割り当てる。また、揮発性メモリ１０９にはDRAMを用いる。上記メモリの組み合わせは、一例であり、不揮発性メモリの特性に応じて他の組み合わせを選択してもよいことは言うまでも無い。
【００３１】
また、ディスク１０２には、ディスク上の全データのアクセス頻度を記録するためのアクセス頻度管理テーブル１１１（図２Ｂ参照）を持つ。
【００３２】
CPU１２０は、ローカルメモリ（ROM）１１８に格納された各種コンピュータプログラムを実行して、ディスク駆動手段やHDC１０５を制御することにより、ディスクからのデータの読み出し及びディスクへのデータの書き込み、キャッシュへのデータの書き込み及びキャッシュからのデータの読み出しを行い、磁気ディスク装置からのデータの読み出し及び磁気ディスク装置へのデータの書き込みを実現する。すなわち、リード処理においては、ホストからのリード要求に対し、ディスク駆動手段を制御してディスクからリード要求データを読み出すとともに、HDCを制御して読み出したリード要求データを揮発性のキャッシュ１１０に書き込むとともにホスト１００に転送し、ライト処理においては、HDC１０５を制御して、ホスト１００からのライト要求データを不揮発性メモリのライトキャッシュ１０４に書き込むとともに、書き込んだライトデータを当該ライトキャッシュ１０４から読み出し、またそのライトデータを、ディスク駆動手段を制御してディスク１０２に書き込む。
【００３３】
次に、図２Ａに、不揮発性メモリライトデータ管理テーブル１０７の構成例を示す。不揮発性メモリライトデータ管理テーブル１０７は、Tag２０１、リードアクセス頻度２０２、ライトアクセス頻度２０３、データの有効・無効を示すフラグ２０４から成る。ホストから指定されたデータのアドレスLogical Block Address（LBA）により、すべてのセクタに通し番号が付けられ、その番号によってセクタ位置が指定される。Tag２０１は、LBAをテーブルエントリの数で割った時の商を示す。このLBAは、テーブルエントリを示すオフセットアドレスを下位ビット、上位アドレスをTag２０１にして合成することができる（この場合、エントリのデータサイズは、磁気ディスク装置のアクセス単位となるセクタのサイズとなる）。
【００３４】
テーブルエントリのメモリ上のアドレスは、データの開始アドレスを示す基底アドレスに、エントリのオフセットアドレスを加算して示すことができる。基底アドレスは、不揮発性のレジスタあるいは書き換え耐性の高い不揮発性メモリに記録しておくこととする（不揮発性の記憶領域に記憶しておくこととする）。
【００３５】
図２Ｂに、不揮発性メモリリードデータ管理テーブル１０６の構成例を示す。不揮発性メモリリードデータ管理テーブル１０６は、Tag３０１、リードアクセス頻度３０２、データの有効・無効を示すフラグ３０３から成る。Tag３０１は、不揮発性メモリライトデータ管理テーブル１０７のTag２０１と同じものである。同様に、ホストからのリード要求時のLBAは、テーブルエントリを示すオフセットアドレスを下位ビット、上位アドレスをTag３０１にして合成することができる。揮発性メモリ上のデータを管理するテーブル１１０も、図２Ｂのテーブルと同じ構造をもつ。
【００３６】
図３で、第１の実施例の動作の概要を説明する。磁気ディスク装置１０１は、ハードディスクコントローラ（HDC）１０５を介してホスト１００との間で、図３に示したように、リードデータあるいはライトデータをやりとりする。HDC１０５は、ライト処理において、ホスト１００から受領したライトデータをライトキャッシュ１０４に転送する。またディスク駆動手段と連携してキャッシュ上のライトデータをディスク１０２に書き込む。また、リード処理においては、ホスト１００からリード要求のあったアドレスのデータを、リードキャッシュ（１０３、１０９）から直接読み出すか、あるいはディスク駆動手段と連携して、ディスク１０２から読み出しリードキャッシュ１０９に書き込むとともに、そのデータをホストに転送する。また、HDCは、リード処理あるいはライト処理の過程で、キャッシュ上データの管理テーブル１０６、１０７、１１０及びアクセス頻度管理テーブル１１１へのアクセスを行う。
【００３７】
本発明では、リードキャッシュ１０３及びライトキャッシュ１０４を特性の異なる２種類の不揮発性メモリで構成し、ライトキャッシュ１０４には、書き換え耐性の高い不揮発性メモリを、またリードキャッシュ１０３には速度や部品コストなどを優先させて書き換え耐性の低い不揮発性メモリを割り当てる。この場合、不揮発性メモリのリードキャッシュ１０３上のデータを管理するテーブル１０６及び不揮発性メモリのライトキャッシュ上のデータを管理するテーブル１０７は、書き換え耐性の高いライトキャッシュ１０４上にワーク領域１０８を設け、その領域に保存する。キャッシュ上データの管理テーブル１０６、１０７を不揮発性メモリに記憶することで、電源遮断時のデータの損失を防ぐことができる。また、キャッシュ上データの管理テーブル１０６、１０７を書き換え耐性の高いライトキャッシュ上に配置することで、書き換え耐性の低いリードキャッシュ１０３の消耗を防ぐことができる。
【００３８】
揮発性メモリ１０９はHDC１０５内にあるが、この揮発性メモリ１０９を、HDC１０５の外部に置いてもよい。揮発性メモリ上のデータは、電源遮断時には、（バッテリーなどによる電力の供給がなければ）、データが失われるが、リードデータに限定されているため、実質上、データ損失にはならない。
【００３９】
アクセス頻度（図２Ａの２０２、２０３、図２Ｂの３０２）のカウントは、キャッシュの最小データ単位ごとに行うことも可能であるが設定した単位領域ごとに行うことも可能である。図４に、Tag３０１を用いて領域単位でリードアクセス頻度３０２をカウントする処理のフローを示す。この方法は、不揮発性メモリリードキャッシュ１０３、揮発性メモリリードキャッシュ１０９、不揮発性メモリライトキャッシュ１０４のすべてのキャッシュにおいて適用可能である。
【００４０】
リード処理において、キャッシュヒットをしたか調べ（ステップ４０１）キャッシュヒットした場合、キャッシュヒットしたエントリのリードアクセス頻度を１増やす（ステップ４０２）。この時、キャッシュヒットしたエントリと同じTag３０１をもつエントリを検索する。キャッシュヒットしたエントリのTag３０１と同一のTag３０１をもつエントリがあれば（ステップ４０３）、該当するすべてのエントリのリードアクセス頻度３０２を１増やす（ステップ４０４）。上記のような処理をすることにより、アクセス頻度の高い領域を重みづけすることが可能となる。
【００４１】
次に、図５のフローを用いて、リードキャッシュ制御機能を含む、リード処理のシーケンスを説明する。ホストよりリード要求を受領すると、まず初めに不揮発性メモリライトデータ管理テーブル１０７にアクセスし、ライトキャッシュ１０４上のデータを検索（ステップ５０１）する。該当データの有無を調べ（ステップ５０２）、キャッシュヒットすれば（該当データがキャッシュ１０４上に存在すれば）、該当データをライトキャッシュ１０４からホストに転送する（ステップ５０３）。次に、ライトデータ管理テーブル１０７において該当データのリードアクセス頻度２０２を加算する（ステップ５０４）。
【００４２】
ステップ５０２において、ライトキャッシュ１０４上にリード要求データが存在しなければ、ライトキャッシュ１０４上の不揮発性メモリリードデータ管理テーブル１０６にアクセスし、不揮発性メモリのリードキャッシュ１０３上のデータを検索する（ステップ５０５）。
【００４３】
該当データの有無を調べ（ステップ５０６）、キャッシュヒットすれば、該当データを不揮発性メモリのリードキャッシュ１０３からホストに転送する（ステップ５０７）。次に、リードデータ管理テーブル１０６において該当データのリードアクセス頻度３０２を加算する（ステップ５０８）。ステップに５０６において、該当データがそのキャッシュになければ、次に、揮発性メモリ１０９上の揮発性メモリリードデータ管理テーブル１１０にアクセスし、揮発性メモリ１０９のリードキャッシュ上のデータを検索する（ステップ５０９）。
【００４４】
該当データの有無を調べ（ステップ５１０）、キャッシュヒットすれば、該当データを揮発性メモリのリードキャッシュ１０９からホストに転送する（ステップ５１１）。次に揮発性メモリ１０９のリードデータ管理テーブル１１０において該当データのリードアクセス頻度３０２を加算する（ステップ５１２）。ステップ５１０において、該当データが揮発性メモリのリードキャッシュ１０９になければ、ディスク１０２にアクセスし、該当データを読み出し（ステップ５１３）、揮発性メモリのリードキャッシュ１０９に書き込み（ステップ５１４）、さらにホストに転送する。
【００４５】
図５のフローを通して、一連の処理を説明したが、不揮発性メモリリードキャッシュ１０３と揮発性メモリリードキャッシュ１０９の検索順は、不揮発性メモリのリードキャッシュ１０４の方が先であっても、揮発性メモリのリードキャッシュ１０９の方が先であっても、両方同時であってもかまわない。また不揮発性メモリのライトキャッシュ１０４、不揮発性あるいは揮発性のリードキャッシュ１０３、１０９のデータを同時に検索してもかまわない。最終的に、不揮発性メモリのライトキャッシュ１０４の検索結果をもっとも優先順位の高いデータとして扱えばよい（ホストに転送すればよい）。
【００４６】
なお、図５のフローでは、キャッシュ上データのアクセス頻度を記録するために、キャッシュヒットした場合には、ヒットしたデータのリード頻度を加算するようにした。
【００４７】
すべてのキャッシュを検索した結果、キャッシュミスになった場合には、ディスク１０２にアクセスしデータを読み出すが、読み出したデータは、揮発性メモリ１０９のキャッシュに書き込み（ステップ５１４）、不揮発性メモリのリードキャッシュ１０３には、直接リードデータを書き込まないようにする。このように不揮発性メモリリードキャッシュ１０３へのリードデータの書き込みを制限することにより、リード処理の遅延（不揮発性メモリのリードキャッシュにおけるライト速度が遅い場合）、或いは不揮発性メモリリードキャッシュの消耗を防ぐことができる。
【００４８】
次に、図６のフローを用いて、ライトキャッシュ制御機能を含む、ライト処理のシーケンスを説明する。ライト要求データは、必ず不揮発性メモリのライトキャッシュ１０４に書き込み、その管理データを不揮発性メモリライトデータ管理テーブル１０７に登録する（ステップ６０１）。
【００４９】
図６のフローには記述していないが、ライトキャッシュ１０４にライトデータを書き込んだ時点で、不揮発性メモリライトデータ管理テーブル１０７のライトアクセス頻度２０３に１を加算してもよい。
【００５０】
次に、不揮発性メモリリードデータ管理テーブル１０６検索し、不揮発性メモリのリードキャッシュ１０３に、ライトデータと同一領域（アドレス）のデータがないか検索する（ステップ６０２）。
【００５１】
該当データの有無を調べ（ステップ６０３）、該当データがあれば不揮発性メモリリードデータ管理テーブル１０６における該当データの有効・無効ビットを無効に設定する（ステップ６０４）。ステップ６０３で、不揮発性メモリのリードキャッシュ１０３に、ライトデータと同一領域のデータがなければ、揮発性メモリリードデータ管理テーブル１１０にアクセスし、揮発性メモリのリードキャッシュ１０９に、ライトデータと同一領域のデータがないか検索する（ステップ６０５）。該当データの有無を調べ（ステップ６０６）、該当データがあれば揮発性メモリリードデータ管理テーブルにおける該当データの有効・無効ビットを無効に設定する（ステップ６０７）。
【００５２】
図６のフローでは、不揮発性メモリのキャッシュメモリから最初に処理を行っているが、揮発性メモリから先に処理を行ってもよい。
【００５３】
次に、図７のフローを用いて、不揮発性メモリのリードキャッシュ１０３に、揮発性メモリのキャッシュ１０９からリードデータを書き込むための処理について説明する。
【００５４】
まず初めに揮発性メモリ１０９のデータ管理テーブル１１０にアクセスし、リードアクセス頻度３０２を検索し、アクセス頻度が一定回数以上になったエントリを検索する（ステップ７０１）。該当エントリの有無を調べ（ステップ７０２）、該当エントリがあればそのエントリのデータを不揮発性メモリのリードキャッシュに転送する（ステップ７０３）。
【００５５】
次に、揮発性メモリ１０９からの該当データの転送が完了したか調べる（ステップ７０４）。この処理は転送が完了するまで繰り返す。転送が完了していれば、不揮発性メモリリードデータ管理テーブル１０６に、該当データの管理情報を登録するとともに、該当データの有効・無効フラグ３０３を有効に設定する（ステップ７０５）。
【００５６】
次に、揮発性メモリ１０９のリードデータ管理テーブル１１０にアクセスし、転送済みデータの有効・無効フラグの値を無効に設定する（ステップ７０６）。
【００５７】
図７の処理は、揮発性メモリ１０９のキャッシュにおいて、リードアクセス頻度が所定の回数に達したエントリが生じた時、一定間隔ごと、シャットダウン時などのタイミングで行う。
【００５８】
次に、図８のフローを用いて、不揮発性メモリのリードキャッシュ１０３に、不揮発性メモリのライトキャッシュ１０４からリード頻度の高いデータを書き込むための処理について説明する。
【００５９】
不揮発性メモリのライトキャッシュ１０４のワーク領域１０８に記録されている、不揮発性メモリライトデータ管理テーブル１０７にアクセスし、リードのアクセス頻度２０２が所定のアクセス頻度より高いエントリがあるかを調べる（ステップ８０１）。
【００６０】
該当エントリを調べ（ステップ８０２）、該当エントリがなければ処理を終了する。  
ステップ８０２で、該当エントリがあれば、該当エントリのデータを、ディスク１０２に書き込む（ステップ８０３）。
【００６１】
次に、不揮発性メモリのライトキャッシュ１０４からディスク１０２へのデータの転送が完了したか調べ（ステップ８０４）、転送が完了していなければステップ８０４を繰り返す。ディスクへのデータ転送が完了したら、転送中のデータが更新されていないか調べる（ステップ８０５）。該当データが更新されていればステップに８０１に戻り、転送したデータが更新されていなければ、該当エントリのデータを不揮発性メモリのリードキャッシュ１０３に書き込み、その管理データを不揮発性メモリリードデータ管理テーブル１０６に登録する（ステップ８０６）この時有効・無効フラグは無効に設定する。次に、リードキャッシュに転送したデータが更新されたかを調べ（ステップ８０７）、更新されていなければ、リードキャッシュに転送済みのデータのエントリの有効・無効フラグを有効に設定する（ステップ８０８）。次に、不揮発性メモリライトデータ管理テーブル１０７において、転送済みのエントリの有効・無効フラグを無効に設定し（ステップ８０９）、ステップ８０１に戻る。ステップ８０７で、リードキャッシュ１０３に転送したデータが更新されていれば、ステップ８０１に戻る。
【００６２】
図８の処理を行うタイミングは、不揮発性メモリのライトキャッシュ１０４において、リードアクセス頻度２０２が所定の回数以上となるエントリが発生した時、または、ライトキャッシュ１０４上の空き領域が一定割合以下になった時、または一定時間間隔ごと、あるいは、シャットダウン時などのタイミングで行う。
【００６３】
図８のフローでは、リードアクセス頻度の高いデータを不揮発性メモリのキャッシュに転送したが、リードアクセス頻度の高さに加え、非連続なデータを選択してデータを抽出するようにしてもよい。すなわち、第１の不揮発性メモリ１０４上のデータのリード頻度をカウントして、この第１の不揮発性メモリ上のリードアクセス頻度の高いデータを抽出し、かつ、それらのデータの中から連続データを取り除いた非連続なデータを第２の不揮発性メモリ１０３に移動するようにしても良い。これは、ディスク上の連続領域へのアクセスは高速のため、非連続のデータをリードキャッシュにたくさん置いた方が、リードキャッシュの速度向上効果が高くなるためである。
【００６４】
図８のフローの処理では、不揮発性メモリのライトキャッシュ１０４のデータを、不揮発性メモリのリードキャッシュ１０３に移動する前に、ライトデータをディスク１０２に書き込んだ（ステップ８０３）。しかし、これを一旦不揮発性メモリのリードキャッシュ１０３に書き込んだ後で、ディスク１０２に書き込んでもよい。しかしその場合は、ライトデータであることがわかるように、識別子を付与しておく必要がある。そのため、その場合は、図２Ｂの不揮発性メモリリードデータ管理テーブル１０６の構成に不揮発性メモリからの転送データであることを示すフラグを設ける必要がある。後で不揮発性メモリ上のライトデータをディスクに書き込む状況が生じた際には、このフラグを参照し、ディスクに未書き込みのデータを書き込むことができる。
【００６５】
図７及び図８のフローでは、揮発性メモリあるいは不揮発性メモリのキャッシュに存在するデータのリードアクセスの頻度を保持することにより、その頻度に基づいて、キャッシュ間でデータを移動する処理について説明した。
【００６６】
以下では、リードあるいはライトのアクセス頻度を、キャッシュ上のデータに限定せずディスク上の全領域を対象にして記録しておくことにより、起動時やシャットダウン時などにディスク上の全領域の中でリードアクセス頻度の特に高い領域のデータを、ディスクから抽出して不揮発性メモリ上のアクセス頻度の低いデータと置き換えたり、あるいはディスク上の全領域の中でライトアクセス頻度の低い領域のデータをライトキャッシュから選択してディスクに書き込むことが可能となる。
【００６７】
図９に、ディスク１０２上の全データのアクセス頻度を記録するためのアクセス頻度管理テーブル１１１の構成例を示す。アクセス頻度管理テーブル１１１は、リードアクセス頻度９０１、ライトアクセス頻度９０２より成る。ディスク１０２の全領域を対象に、ディスクのアクセス最小単位である、セクタごとにそのアクセス頻度を調べるとテーブルエントリ数は、ディスクの全セクタ数となる。その場合、アクセス頻度管理テーブル１１１のサイズが大きくなるため、そのテーブルは、ディスク１０２領域上に記憶する必要がある。また、アクセス頻度管理テーブル１１１は、磁気ディスク装置内でのデータの配置の最適化のために使用される管理用のデータであるため、ホストから更新されないディスク上のシステム領域に保存しておく必要がある。アクセス頻度管理テーブルの開始ドレスを示す基底アドレスは、ディスク上あるいは、不揮発性メモリ上に記録しておく。
【００６８】
また、アクセス頻度管理テーブル１１１のサイズを小さくしたい場合は、ディスク上の領域をいくつかの領域に分け、その領域ごとにアクセス頻度をとる方法もある。例えば、図２Ａ、図２Ｂで示したテーブルのTag２０１、３０１に基づいて、ディスクをいくつかの領域に分け、その領域ごとに、アクセス頻度を管理してもよい。すなわち、各データ管理テーブル１０６、１０７、１１０のテーブルエントリの上位アドレスごとに単位領域を設定し、キャッシュデータへのリードあるいはライトのアクセス時は、該当エントリ及び該当エントリと同じ上位アドレスを持つ他のエントリのアクセス頻度のカウント値を増加させるように管理してもよい。
【００６９】
アクセス頻度管理テーブル１１１のサイズがライトキャッシュ１０４のワーク領域１０８に十分入る大きさであれば、そのテーブルデータを、ワーク領域に記録しておきアクセスしてもよい。またセクタ単位で頻度テーブルを作成しテーブルのサイズが大きくなった場合には、そのテーブルの一部を、揮発性メモリ１０９のキャッシュ上にコピーし、アクセス可能にして随時データを更新・参照できるようにしてもよい。常にディスク１０２領域にアクセスしてアクセス頻度を更新・参照するようにした場合、データの書き込みや参照に時間がかかるためである。
【００７０】
この場合、アクセス頻度管理テーブル１１１の一部が、揮発性メモリ１０９に記憶されているため、電源遮断時には、揮発性メモリ１０９にコピーされたそのテーブルデータは失われてしまう。しかしながら、揮発性メモリ１０９上のアクセス頻度管理テーブルのデータを適当なタイミングで、ディスク上のアクセス頻度管理テーブル１１１に書き込んでいれば、電源遮断より少し前のアクセス頻度の状況がディスク１０２上に記録されているため大きな問題にはならない。
【００７１】
図１０に揮発性メモリ１０９にコピーした、アクセス頻度管理テーブル（全体テーブルの一部）を、ディスク１０２上のアクセス頻度管理テーブル１１１に書き戻す処理のフローを示す。
【００７２】
ディスクコントローラ１０５は、磁気ディスク装置１０１が省電力モードに入っているかを調べ（ステップ１００１）、省電力モードに入っていなければ、リード・ライトアクセス中であるか調べる（ステップ１００２）、リード・ライトアクセス中でなければ、アクセスしていない時間が一定時間経過したかを調べる（最後のアクセスからの経過時間は、磁気ディスク装置内のタイマーを使って調べることができる）（ステップ１００３）。アクセスしていない時間が一定時間経過していれば、不揮発性メモリにコピーしたアクセス頻度管理テーブルを、ディスク上のシステム領域に記録されている、全体のアクセス頻度管理テーブルに書き戻す（ステップ１００４）。  
ステップ１００３に戻り、アクセスしていない時間が一定時間経過していなければ、一定時間経過するまでステップ１００３を繰り返す。
【００７３】
ステップ１００２に戻り、リード・ライトアクセス中であれば処理を終了する。ステップに１００１に戻り、省電力モードであった場合は、処理を終了する。
【００７４】
以上の処理により、磁気ディスク装置１０１がアクティブである状態で、かつ、リード・ライトが行われていない、空き時間を見計らって、揮発性メモリ上のアクセス頻度管理テーブルをディスク上のアクセス頻度管理テーブルに書き戻し、ディスク上のアクセス頻度管理テーブルを、最新状態に変更することが可能である。
【００７５】
本実施例によれば、リード・ライトキャッシュを、書き換え耐性の異なる２種類の不揮発性メモリの組み合わせによって構成することにより、コストの増加や消費電力の増加等を抑えながら、効果の持続性の高い情報装置を提供することができる。
【実施例２】
【００７６】
本発明の情報装置を磁気ディスク装置に適用した第２の実施例を、図１１〜図１２を参照しながら説明する。図１１に、第２の実施例における磁気ディスク装置のシステム構成例を示す。磁気ディスク装置１１００はハードディスクコントローラ（HDC）１１０５、不揮発性メモリのリードキャッシュ１１０３、不揮発性メモリのライトキャッシュ１１０４、HDC１１０５上の揮発性メモリ１１０９を有する、キャッシュメモリ装置を備えている。実施例２においては、不揮発性のリードキャッシュ１１０３に、リード速度が速く、ライト速度の遅い不揮発性メモリを、また、ライトキャッシュ１１０４には、ライト速度が速く、リード速度の遅い不揮発性メモリを割り当てる。リードキャッシュとライトキャッシュに、リード速度及びライト速度の異なる不揮発性メモリを使用するのは、そのように使い分けた方が、コストなどの点でリーズナブルであるためである。
【００７７】
例えば、不揮発性メモリのリードキャッシュ１１０３にはPRAMを、不揮発性メモリのライトキャッシュ１１０４にはMRAMを割り当てる。
【００７８】
リードキャッシュでは、リード速度に対する要求は高いがライト速度に対する要求は低い。一方、ライトキャッシュでは、ライト速度に対する要求は高いが、リード速度に対する要求は低い。そのため、上記のような使い分け方が可能となる。データ処理速度等の性能やコストなど、キャッシュメモリ装置に要求される仕様に応じて、リードキャッシュとライトキャッシュに、リード速度及びライト速度の異なる２種類の不揮発性メモリを適宜使い分ければよい。
【００７９】
リードキャッシュにリード速度が速くライト速度の遅い不揮発性メモリを、ライトキャッシュにライト速度が速くリード速度の遅い不揮発性メモリをそれぞれ割り当てるため、キャッシュ上のデータを管理するテーブルはそれぞれのキャッシュ内に配置する。すなわち、不揮発性メモリのリードキャッシュ１１０３内のリードデータを管理する不揮発性メモリデータ管理テーブル１１０６は、不揮発性メモリリードキャッシュのワーク領域１１０８Ａ内に、不揮発性メモリのライトキャッシュ１１０４内のライトデータを管理するための不揮発性メモリデータ管理テーブル１１０７は、不揮発性メモリのライトキャッシュ内のワーク領域１１０８Ｂに配置する。不揮発性メモリキャッシュのリード及びライトの速度特性を生かすためには、各テーブルへのリード速度及びライト速度は、不揮発性メモリキャッシュのリード速度及びライト速度と一致しているか、あるいはそれ以上である必要があるためである。
【００８０】
実施例１と同様に、HDC１１０５内に揮発性のリードキャッシュ１１０９及び揮発性メモリリードデータ管理テーブル１１１０を設けるかどうかは、ディスクからのデータの読み出し速度と、不揮発性メモリのリードキャッシュへのデータの書き込み速度との差に依存する。すなわち、不揮発性メモリのリードキャッシュの書き込み速度が、ディスクからのデータの読み出し速度よりも遅ければ、HDC内に揮発性のリード用キャッシュを設ける必要がある。上記のような速度差がなければ、必ずしもHDC内に揮発性メモリのリードキャッシュを設ける必要はない。
【００８１】
また、ディスク１０２にはアクセス頻度管理テーブル１１１１が記録される。不揮発性メモリライトデータ管理テーブル１１０７、不揮発性メモリリードデータ管理テーブル１１０６、揮発性メモリリードデータ管理テーブル１１１０、及びアクセス頻度管理テーブル１１１１の構成は、それぞれ実施例１で示した構成と同じである。その他の装置構成も、実施例１と同じである。
【００８２】
図１２で、第２の実施例の動作の概要を説明する。磁気ディスク装置１１００はハードディスクコントローラ（HDC）１１０５を介してホスト１００との間で、図１２に示したように、リードデータあるいはライトデータをやりとりする。HDC１１０５は、ライト処理において、ホスト１００から受領したライトデータをライトキャッシュに１１０４転送する。またディスク駆動手段と連携してライトキャッシュ１１０４上のライトデータをディスク１０２に書き込む。また、リード処理においては、ホスト１００からリード要求のあったアドレスのデータを、不揮発性あるいは揮発性のリードキャッシュ１１０３、１１０９から直接読み出すか、あるいはディスク駆動手段と連携して、ディスク１０２から読み出したリードデータを揮発性のリードキャッシュ１１０９に書き込むとともに、そのデータをホストに転送する。また、HDC１１０５は、リード処理あるいはライト処理の過程で、キャッシュ上データの管理テーブル１１０６、１１０７、１１１０及びアクセス頻度管理テーブル１１１１へのアクセスを行う。
【００８３】
実施例２では、不揮発性メモリリードデータ管理テーブル１１０６を不揮発性メモリリードキャッシュ１１０３に、不揮発性メモリライトデータ管理テーブル１１０７は不揮発性メモリライトキャッシュ１１０４にそれぞれ配置して、不揮発性メモリキャッシュ内のデータを管理している。  
上記のような構成にしたのは、不揮発性メモリキャッシュのリード及びライトの速度特性を生かすためには、各テーブルへのリード速度及びライト速度は、不揮発性メモリキャッシュのリード速度及びライト速度と一致しているか、あるいはそれ以上である必要があるためである。
【００８４】
本実施例によれば、ライトキャッシュにはライト速度が速くリード速度が遅い不揮発性メモリを、リードキャッシュにはリード速度が速くライト速度が遅い不揮発性メモリをそれぞれ割り当てることで、コストや消費電力などの増加を抑えながら、キャッシュによるリード及びライト速度の向上を図ることができる。
【実施例３】
【００８５】
本発明の情報装置を磁気ディスク装置に適用した第３の実施例を、図１３〜図１４を参照しながら説明する。図１３に、第３の実施例における磁気ディスク装置のシステム構成例を示す。磁気ディスク装置１３００はハードディスクコントローラ（HDC）１３０５と、不揮発性メモリのリードキャッシュ１３０３、不揮発性メモリのライトキャッシュ１３０４の２種類のキャッシュメモリを有するキャッシュメモリ装置を備えている。
【００８６】
本実施例の磁気ディスク装置は、リードキャッシュ及びライトキャッシュを消費電力の異なる２種類の不揮発性メモリで構成し、不揮発性メモリライトキャッシュ１３０４のデータを管理する不揮発性メモリライトデータ管理テーブル１３０７及び不揮発性メモリリードキャッシュ１３０３のデータを管理する不揮発性メモリリードデータ管理テーブル１３０６を、不揮発性ライトキャッシュと不揮発性リードキャッシュの各ワーク領域１３０８B，１３０８Aにそれぞれ記録する。
【００８７】
実施例３では、HDC１３０５内に揮発性メモリのキャッシュメモリを配置しない。リード処理におけるキャッシュ数を低減することでリード処理にかかる消費電力を削減できる。
【００８８】
不揮発性メモリライトデータ管理テーブル１３０７及び不揮発性メモリリードデータ管理テーブル１３０６の構成は、それぞれ実施例１で示した構成と同じである。その他の装置構成も、実施例１と同じである。
【００８９】
本実施例において、例えば、リード・ライトキャッシュはライト時の消費電力の異なる２種類の不揮発性メモリで構成し、ライトキャッシュ１３０４をライト時の消費電力の少ない不揮発性メモリで構成するか、あるいはリードキャッシュ１３０３をライト時の消費電力の少ない不揮発性メモリで構成する。
【００９０】
ライト時の消費電力の少ない不揮発性メモリとしては、MRAMが挙げられる。上記の例として、HDC１３０５の制御によってキャッシュに書き込むデータの総量が多くなるキャッシュに、ライト時の消費電力が少ない不揮発性メモリのキャッシュを割り当て、他方のキャッシュにはライト時の消費電力の特性は相対的に劣るものの他の特性に優れた不揮発性メモリを割り当てることが考えられる。このようにすることにより、キャッシュ制御に係わる消費電力の低減を図ることが可能となる。
【００９１】
また、リードキャッシュ及びライトキャッシュを、リード時の消費電力の異なる２種類の不揮発性メモリで構成し、リードキャッシュにリード時の消費電力の少ない不揮発性メモリを割り当てるようにしても良い。
【００９２】
上記の例としてOSやアプリケーションなどの実行プログラムを記憶する不揮発性メモリのリードキャッシュに、リード時の消費電力の少ない不揮発性メモリのキャッシュを採用する。このようにすることで、ライト頻度よりもリード頻度の高くなる不揮発性メモリの、リードキャッシュの消費電力の低減を図ることが可能となる。
【００９３】
図１４で、第３の実施例の動作の概要を説明する。磁気ディスク装置１３００は、ハードディスクコントローラ（HDC）１３０５を介してホスト１００との間で、図１４に示したように、リードデータあるいはライトデータをやりとりする。HDC１３０５は、ライト処理において、ホスト１００から受領したライトデータをライトキャッシュに１３０４転送する。またディスク駆動手段と連携してライトキャッシュ１３０４上のライトデータをディスク１０２に書き込む。また、リード処理においては、ホスト１００からリード要求のあったアドレスのデータを、不揮発性のリードキャッシュ１３０３から直接読み出すか、あるいはディスク駆動手段と連携して、ディスク１０２から読み出したデータを不揮発性メモリのリードキャッシュ１１０３に書き込むとともに、そのデータをホストに転送する。また、HDC１３０５は、リード処理あるいはライト処理の過程で、キャッシュ上データの管理テーブル１３０６、１３０７及びアクセス頻度管理テーブル１１１へのアクセスを行う。
【００９４】
実施例３では、不揮発性メモリリードデータ管理テーブル１３０６を不揮発性メモリリードキャッシュ１３０３に、不揮発性メモリライトデータ管理テーブル１３０７を不揮発性メモリライトキャッシュ１３０４にそれぞれ配置して不揮発性メモリキャッシュ内のデータを制御しているが、これに限定される必要はない。テーブルの配置は、リード・ライトのアクセスに対して、消費電力が最小になるように配置されるべきである。
【００９５】
また、実施例３では、消費電力を抑えるため、HDC１３０５内に揮発性メモリのリードキャッシュを設定せず、ディスク１０２から読み出したリードデータを、不揮発性メモリのリードキャッシュ１３０３に直接書き込むようにしている。
【００９６】
本実施例によれば、リード・ライトキャッシュをリードあるいはライトの消費電力の特性の異なる２種類の不揮発性メモリで構成することにより、コストの増加や、リード・ライト速度の低下などを抑えながら、キャッシュの処理にかかる消費電力を抑えることができる。
【実施例４】
【００９７】
本発明の情報装置をPC（パーソナルコンピュータ）に実装して情報処理装置とした場合のシステム構成例を、図１５に示す。  
PC１５００は、中央演算装置であるCPU１５２０、メインメモリであるDRAM１５２３、補助メモリとしてのキャッシュメモリ装置１５０１、主にCPUとメインメモリ間のデータ転送を制御するノースブリッジ、主にHDDなどの記憶装置とノースブリッジ間のデータ転送を制御するサウスブリッジ等から構成される。CPUとノースブリッジはCPUバス１５２４で、ノースブリッジとメインメモリはメモリバスで接続されている。またノースブリッジとサウスブリッジはPCIバスや専用バスで接続されている。  
本発明の情報装置１５０１は、例えば専用バスを用いてノースブリッジと接続することができる。
【００９８】
本発明のキャッシュメモリ装置１５０１は、DRAMなどの揮発性メモリから成るリードキャッシュ１５０３、PRAMなどの不揮発性メモリから成るライトキャッシュ１５０４、Flash  Memoryなどの不揮発性メモリから成るリードキャッシュ１５０９の３種類のキャッシュメモリ、及びコントローラ１５０５を含んでいる。キャッシュメモリ装置１５０１の具体的な構成、作用は、実施例１ないし実施例３のいずれかのキャッシュメモリ装置と同じである。
【００９９】
本実施例によれば、リード・ライトキャッシュを、特性の異なる２種類の不揮発性メモリの組み合わせによって構成することにより、コストや消費電力等の増加を抑えながらキャッシュによる効果を高められ、あるいは、キャッシュによる効果を最大限に引き出すことができ低コスト、高データ転送速度、低消費電力等の各種要求に応えるPCを提供することができる。
【実施例５】
【０１００】
本発明の情報装置を、ホストとHDDを接続するためのアダプターに実装した場合のシステム構成例を、図１６に示す。アダプター１６００はキャッシュメモリ装置、及びインタフェース１６１２、１６１３を備えている。キャッシュメモリ装置は、DRAMなどの揮発性メモリから成るリードキャッシュ１６０３、PRAMなどの不揮発性メモリから成るライトキャッシュ１６０４、Flash Memoryなどの不揮発性メモリから成るリードキャッシュ１６０９の３種類のキャッシュメモリを含んでいる。キャッシュメモリ装置の具体的な構成、作用は、実施例１ないし実施例３のいずれかのキャッシュメモリ装置と同じである。アダプター１６００のインタフェースには、ホスト／HDD間で使用されているインタフェースと同じインタフェースを使用する。
【０１０１】
本実施例によれば、アダプター１６００を介してホスト１６１０とHDD１６０２とを接続することにより、キャッシュによる効果をより高めつつ、低コスト、高データ転送速度、低消費電力等の各種要求に応える情報処理装置を提供することができる。
【実施例６】
【０１０２】
本発明の情報装置を、ストレージシステムに実装して情報処理装置とした場合のシステム構成例を、図１７に示す。本実施例のストレージシステム１７００は、少なくとも１つのホスト１７１０と、ストレージコントローラ１７１６と、複数のHDD１７０２−１〜１７０２−ｎとを備えている。ストレージコントローラ１７１６は、キャッシュメモリ装置１７０１と、CPU１７２０と、DRAM１７２３と、チャネルアダプター部１７１２と、ディスクアダプター部１７１３と、バス等の接続部１７２４とを備えている。キャッシュメモリ装置１７０１は、コントローラ１７０５、揮発性メモリのリードキャッシュ１７０３、不揮発性メモリのライトキャッシュ１７０４、不揮発性メモリ１７０９のリードキャッシュの３種類のキャッシュメモリを含んでいる。一例として、揮発性リードキャッシュ１７０３にはDRAM、不揮発性メモリのライトキャッシュ１７０４にはPRAM、不揮発性メモリ１７０９のリードキャッシュにはフラッシュメモリを用いる。キャッシュメモリ装置１７０１の具体的な構成、作用は、実施例１ないし実施例３のいずれかのキャッシュメモリ装置と同じである。
【０１０３】
ホスト１７１０は、CPUやメモリ等を備えたコンピュータであり、ストレージコントローラ１７１６によって提供される複数のHDD１７０２−１〜１７０２−ｎの記憶領域を論理的に認識し、この論理記憶領域（論理ボリューム）を利用して、アプリケーションプログラムを実行する。ディスクアダプター部１７１３は、マイクロコンピュータであり、各HDD１７０２−１〜１７０２−ｎに対するインタフェースとして機能する。
【０１０４】
本実施例によれば、キャッシュによる効果をより高めつつ、低コスト、高データ転送速度、低消費電力等の各種要求に応えるストレージシステムを提供することができる。
【符号の説明】
【０１０５】
１００…ホスト、１０１…磁気ディスク装置、１０２…ディスク、１０３…不揮発性メモリのリードキャッシュ、１０４…不揮発性メモリのライトキャッシュ、１０５…ハードディスクコントローラ、１０６…不揮発性メモリリードデータ管理テーブル、１０７…不揮発性メモリライトデータ管理テーブル、１０８…書き換え耐性の高い不揮発性メモリ上のワーク領域、１０９…揮発性メモリ、１１０…揮発性メモリリードデータ管理テーブル、１１１…アクセス頻度管理テーブル、１１５…ホストインタフェース、１１８…ROM、１２０…CPU、１２１…サーボ制御部、１２２…モータドライバ、１２３…ディスクフォーマッタ、１２４…信号処理部、１２５…VCM、１２６…セレクタ、１１００…磁気ディスク装置、１３００…磁気ディスク装置、１５００…PC、１６００…アダプター、１７００…ストレージシステム。
【図１】
0005520747.tif 000002
【図２Ａ】
0005520747.tif 000003
【図２Ｂ】
0005520747.tif 000004
【図３】
0005520747.tif 000005
【図４】
0005520747.tif 000006
【図５】
0005520747.tif 000007
【図６】
0005520747.tif 000008
【図７】
0005520747.tif 000009
【図８】
0005520747.tif 000010
【図９】
0005520747.tif 000011
【図１０】
0005520747.tif 000012
【図１１】
0005520747.tif 000013
【図１２】
0005520747.tif 000014
【図１３】
0005520747.tif 000015
【図１４】
0005520747.tif 000016
【図１５】
0005520747.tif 000017
【図１６】
0005520747.tif 000018
【図１７】
0005520747.tif 000019