(57)【要約】【課題】不揮発性メモリからキャッシュメモリへの書込回数を削減する。【解決手段】記憶装置１０は、不揮発性メモリ３０とキャッシュメモリ２０とメモリコントローラ１２とを有する。不揮発性メモリ３０は、分割データと格納場所を管理する論理／物理アドレス変換テーブル３２を記録している。キャッシュメモリ２０は、データキャッシュ２１と、論理／物理アドレス変換テーブル３２の一部を保持する論理／物理アドレス変換テーブルキャッシュ２２を記録している。メモリコントローラ１２は、外部からデータの読み出し要求を受けたとき、データキャッシュ２１上に空きエントリが無かったならば、データキャッシュ２１上の分割データのうち、論理／物理アドレス変換テーブル３２のエントリが、論理／物理アドレス変換テーブルキャッシュ２２に有るものを優先的に不揮発性メモリ３０に退避して空きエントリを作成し、データを読み出す。【選択図】図１
2013097416.tif 000002
【特許請求の範囲】
【請求項１】
所定の書き込み単位であるページおよび前記所定の書き込み単位よりも大きいデータ消去単位であるブロックによりデータの読み書きが行えるとともに、前記ページのサイズを単位とした分割データおよび当該分割データの格納場所を管理する複数のエントリを有する論理／物理アドレス変換テーブルを備える不揮発性メモリと、
データの読み出しおよびデータの書き込みが行えるとともに、前記論理／物理アドレス変換テーブルの一部を一時的に記録する論理／物理アドレス変換テーブルキャッシュ、および、前記分割データを一時的に記録するデータキャッシュを有するキャッシュメモリと、
前記不揮発性メモリおよび前記キャッシュメモリそれぞれに対する読出処理および書込処理を行うメモリコントローラとを有する記憶装置であって、
前記メモリコントローラは、
外部からデータの読み出し要求を受け付け、
前記データキャッシュ上に前記読み出し要求データに対応するエントリが無く、かつ、前記データキャッシュ上に空きエントリが無かったならば、前記データキャッシュ上の分割データのうち、対応する前記論理／物理アドレス変換テーブルのエントリが前記論理／物理アドレス変換テーブルキャッシュ上に有るものを優先的に前記不揮発性メモリに退避して前記データキャッシュに空きエントリを作成し、当該空きエントリに当該読み出し要求データを読み出す処理部を備える、
ことを特徴とする記憶装置。
【請求項２】
前記メモリコントローラは、外部からのデータの書き込み要求を受けたとき、前記データキャッシュ上に当該書き込み要求データに対応するエントリが無く、かつ、前記データキャッシュ上に空きエントリが無かったならば、前記データキャッシュ上の分割データのうち、対応する前記論理／物理アドレス変換テーブルのエントリが前記論理／物理アドレス変換テーブルキャッシュ上に有るものを優先的に前記不揮発性メモリに退避して前記データキャッシュに空きエントリを作成し、当該空きエントリに当該書き込み要求データを書き込む、
ことを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記論理／物理アドレス変換テーブルキャッシュは、前記不揮発性メモリの前記所定の書き込み単位である複数の分割変換テーブルに分割されており、
前記キャッシュメモリは、前記分割変換テーブルが前記論理／物理アドレス変換テーブルキャッシュに存在するか否かを管理する分割変換テーブル管理情報を有し、
前記メモリコントローラは、前記データキャッシュ上の分割データに対応する前記論理／物理アドレス変換テーブルのエントリが前記論理／物理アドレス変換テーブルキャッシュに有るか否かを、前記分割変換テーブル管理情報に基いて判断する、
ことを特徴とする請求項１または請求項２に記載の記憶装置。
【請求項４】
前記メモリコントローラは、選択方式設定レジスタを有し、当該データキャッシュから退避する分割データを選択するとき、前記選択方式設定レジスタの値に基いて、前記データキャッシュ上の分割データのうち、対応する前記論理／物理アドレス変換テーブルのエントリが前記論理／物理アドレス変換テーブルキャッシュ上に有るものを優先的に前記不揮発性メモリに退避するか否かを切り替える、
ことを特徴とする請求項１ないし請求項３のいずれか１項に記載の記憶装置。
【請求項５】
前記キャッシュメモリは更に、テーブルキャッシュ管理情報を有し、
前記テーブルキャッシュ管理情報は、前記分割変換テーブルが前記論理／物理アドレス変換テーブルに記憶されている情報と同一か否かを示す第１の更新フラグを含み、
前記メモリコントローラは、前記第１の更新フラグに基き、前記論理／物理アドレス変換テーブルに記憶されている情報と同一である分割変換テーブルが有ったならば、当該分割変換テーブルを破棄することにより、前記論理／物理アドレス変換テーブルキャッシュに空きエントリを作成する、
ことを特徴とする請求項３または請求項４に記載の記憶装置。
【請求項６】
前記キャッシュメモリは更に、データキャッシュ管理情報を有し、
前記データキャッシュ管理情報は、前記データキャッシュ上の分割データが前記不揮発性メモリに記憶されている分割データと同一か否かを示す第２の更新フラグを含み、
前記メモリコントローラは、前記第２の更新フラグに基き、前記不揮発性メモリに記憶されている分割データと同一である前記データキャッシュ内の分割データが有ったならば、当該分割データを破棄することにより、前記データキャッシュに空きエントリを作成する、
ことを特徴とする請求項１ないし請求項５のいずれか１項に記載の記憶装置。
【請求項７】
前記キャッシュメモリは、不揮発性ＲＡＭ（Random Access Memory）である、
ことを特徴とする請求項１ないし請求項６のいずれか１項に記載の記憶装置。
【請求項８】
所定の書き込み単位であるページおよび前記所定の書き込み単位よりも大きいデータ消去単位であるブロックによりデータの読み書きが行えるとともに、前記ページのサイズを単位とした分割データおよび当該分割データの格納場所を管理する複数のエントリを有する論理／物理アドレス変換テーブルを備える不揮発性メモリと、
データの読み出しおよびデータの書き込みが行えるとともに、前記論理／物理アドレス変換テーブルの一部を一時的に記録する論理／物理アドレス変換テーブルキャッシュ、および、前記分割データを一時的に記録するデータキャッシュを有するキャッシュメモリと、
前記不揮発性メモリおよび前記キャッシュメモリそれぞれに対する読出処理および書込処理を行うメモリコントローラとを有する記憶装置を搭載した計算機であって、
前記メモリコントローラは、
外部からデータの読み出し要求を受け付け、
前記データキャッシュ上に前記読み出し要求データに対応するエントリが無く、かつ、前記データキャッシュ上に空きエントリが無かったならば、前記データキャッシュ上の分割データのうち、対応する前記論理／物理アドレス変換テーブルのエントリが前記論理／物理アドレス変換テーブルキャッシュ上に有るものを優先的に前記不揮発性メモリに退避して前記データキャッシュに空きエントリを作成し、当該空きエントリに当該読み出し要求データを読み出す処理部を備える、
ことを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを搭載可能な記憶装置および計算機に関する。
【背景技術】
【０００２】
従来では、計算機に代表される情報機器の補助記憶装置として、磁気ディスク記憶装置が多く用いられている。磁気ディスク記憶装置は、セクタと呼ばれる記憶単位ごとに、データの読み出しおよび書き込みを行っている。
【０００３】
近年、前記の磁気ディスク記憶装置に代わり、半導体メモリを記憶媒体とする記憶装置が増えてきている。その中でも、電気的に消去可能かつ再書き込み可能な不揮発性メモリ（EEPROM:Electrically Erasable Programmable Read Only Memory）の一種であるフラッシュメモリを用いた記憶装置が主流となってきている。
【０００４】
このフラッシュメモリは、磁気ディスクと比較して読み出し速度および書き込み速度に優れる代わりに、４個の使用上の制限が存在する。第１の制限は、データの読み出しおよび書き込み単位（一般にページと呼ばれる）と消去単位（一般にブロックと呼ばれ、複数のページから構成される）が決まっており、データの消去単位は、データの読み出しおよび書き込み単位よりもサイズが大きいことである。第２の制限は、データを上書きする際、１度データを消去した後に書き込みを行わなければならないことである。第３の制限は、ブロック内のあるページにデータを書き込む場合、連続したページ番号順に書き込まなければならないことである。第４の制限は、ブロックごとに消去回数の上限が決まっていることである。
【０００５】
特許文献１には、このフラッシュメモリを用いた記憶装置の発明が記載されている。特許文献１では、ユーザの要求に柔軟なメモリシステムを搭載した記憶装置を実現するために、「本発明の半導体記憶装置は、ＮＡＮＤフラッシュと、ユーザデータが保持され、外部からアクセス可能なユーザ領域と、ＮＡＮＤフラッシュのシステム情報が保持され、ユーザ領域と互いに排他的な領域であるシステム領域と、ユーザ領域およびシステム領域を備えたＤＲＡＭと、ＮＡＮＤフラッシュにアクセスするためのＮＡＮＤ−ＣＴＬと、ＤＲＡＭにアクセスするためのＤＲＡＭ−ＣＴＬと、ＮＡＮＤ−ＣＴＬがシステム領域にアクセスするためにＮＡＮＤ−ＣＴＬとＤＲＡＭ−ＣＴＬとの間に設けられた内部バスと、ＮＡＮＤ−ＣＴＬ、ＤＲＡＭ−ＣＴＬ、および内部バスを備えたメモリコントローラを有する。」と記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０７０４７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の発明では、ホストＣＰＵから与えられた論理アドレスとフラッシュメモリの物理アドレスを対応させる論理／物理アドレス変換テーブルをフラッシュメモリの冗長領域に格納し、その一部をＤＲＡＭ上のシステム領域に保持している。しかし、特許文献１に記載の発明は、データを読み書きする際、データに対応する論理／物理アドレス変換テーブルがＤＲＡＭ上のシステム領域に保持されていないならば、フラッシュメモリとＤＲＡＭの間で論理／物理アドレス変換テーブルの読み出しおよび書き込みを行う必要がある。そのため、特許文献１に記載の発明は、データのみを読み書きする場合に比べて処理速度が低下し、フラッシュメモリの消去回数が損なわれる虞がある。
そこで、本発明は、キャッシュメモリのデータ退避処理に伴う、論理／物理アドレス変換テーブルの書込回数を削減することを課題とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、以下のように構成した。
すなわち、本発明の請求項１に記載の発明では、所定の書き込み単位であるページおよび前記所定の書き込み単位よりも大きいデータ消去単位であるブロックによりデータの読み書きが行えるとともに、前記ページのサイズを単位とした分割データおよび当該分割データの格納場所を管理する複数のエントリを有する論理／物理アドレス変換テーブルを備える不揮発性メモリと、データの読み出しおよびデータの書き込みが行えるとともに、前記論理／物理アドレス変換テーブルの一部を一時的に記録する論理／物理アドレス変換テーブルキャッシュ、および、前記分割データを一時的に記録するデータキャッシュを有するキャッシュメモリと、前記不揮発性メモリおよび前記キャッシュメモリそれぞれに対する読出処理および書込処理を行うメモリコントローラとを有する記憶装置であって、前記メモリコントローラは、外部からデータの読み出し要求を受け付け、前記データキャッシュ上に前記読み出し要求データに対応するエントリが無く、かつ、前記データキャッシュ上に空きエントリが無かったならば、前記データキャッシュ上の分割データのうち、対応する前記論理／物理アドレス変換テーブルのエントリが前記論理／物理アドレス変換テーブルキャッシュ上に有るものを優先的に前記不揮発性メモリに退避して前記データキャッシュに空きエントリを作成し、当該空きエントリに当該読み出し要求データを読み出す処理部を備える、ことを特徴とする記憶装置とした。
その他の手段については、発明を実施するための形態のなかで説明する。
【発明の効果】
【０００９】
本発明によれば、キャッシュメモリのデータ退避処理に伴う、論理／物理アドレス変換テーブルの書込回数を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に於ける計算機を示す概略の構成図である。
【図２】第１の実施形態に於ける不揮発性メモリを示す概略の構成図である。
【図３】第１の実施形態に於けるデータキャッシュ管理情報を示す概略の構成図である。
【図４】第１の実施形態に於ける論理／物理アドレス変換テーブルを示す概略の構成図である。
【図５】第１の実施形態に於けるテーブルキャッシュ管理情報を示す概略の構成図である。
【図６】第１の実施形態に於ける分割変換テーブル管理情報を示す概略の構成図である。
【図７】第１の実施形態に於けるデータ読出処理を示すフローチャートである。
【図８】第１の実施形態に於ける不揮発性メモリへのデータ退避処理を示すフローチャートである。
【図９】第１の実施形態に於ける退避対象データの選択処理を示すフローチャートである。
【図１０】第１の実施形態に於ける不揮発性メモリからのデータ読出処理を示すフローチャートである。
【図１１】第１の実施形態に於ける分割変換テーブルの選択／退避処理を示すフローチャートである。
【図１２】第１の実施形態に於ける論理／物理アドレス変換テーブルのエントリ更新処理を示すフローチャートである。
【図１３】第１の実施形態に於けるデータ書込処理を示すフローチャートである。
【図１４】第１の実施形態に於ける電源ＯＦＦ時の処理を示すフローチャートである。
【図１５】第１の実施形態に於けるデータキャッシュ管理情報とテーブルキャッシュ管理情報の例を示す図である。
【図１６】第１の実施形態に於ける分割変換テーブルの例を示す図である。
【図１７】第２の実施形態に於ける計算機を示す概略の構成図である。
【図１８】第２の実施形態に於ける退避対象データの選択処理を示すフローチャートである。
【図１９】第３の実施形態に於けるデータキャッシュ管理情報を示す概略の構成図である。
【図２０】第３の実施形態に於けるテーブルキャッシュ管理情報を示す概略の構成図である。
【図２１】第３の実施形態に於ける不揮発性メモリへのデータ退避処理を示すフローチャートである。
【図２２】第３の実施形態に於ける分割変換テーブルの選択／退避処理を示すフローチャートである。
【図２３】第３の実施形態に於ける電源ＯＦＦ時の処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以降、本発明を実施するための形態を、図を参照して詳細に説明する。
【００１２】
（第１の実施形態の構成）
図１は、第１の実施形態に於ける計算機を示す概略の構成図である。
計算機１００は、記憶装置１０と、命令処理装置４０と、主記憶メモリ５０と、入出力制御装置６０と、ネットワーク制御装置７０と、表示装置８０と、データバス９０とを備えている。記憶装置１０と、命令処理装置４０と、主記憶メモリ５０と、入出力制御装置６０と、ネットワーク制御装置７０と、表示装置８０とは、相互にデータバス９０を介して接続されている。
【００１３】
命令処理装置４０は、記憶装置１０または／および主記憶メモリ５０に格納されている命令に基いてデータを処理し、入出力制御装置６０と、ネットワーク制御装置７０と、表示装置８０とを制御するものである。
記憶装置１０と主記憶メモリ５０は、命令処理装置４０からの処理に従い、データの書き込みと、書き込んだデータの読み出しとを行うものである。
【００１４】
入出力制御装置６０は、命令処理装置４０がデータバス９０を介して外部機器（不図示）とのデータの入出力を制御する装置である。入出力制御装置６０を介してデータを入出力する外部機器は、例えば、キーボード、マウス、外付けの記憶装置１０などである。
ネットワーク制御装置７０は、命令処理装置４０がデータバス９０を介してネットワーク（不図示）とのデータの入出力を制御する装置である。
表示装置８０は、命令処理装置４０の制御によってデータの表示を行う装置である。
【００１５】
記憶装置１０は、Ｉ／Ｆ（インターフェース）制御部１１と、メモリコントローラ１２と、キャッシュメモリ２０と、１つ以上の不揮発性メモリ３０とを有している。
Ｉ／Ｆ制御部１１は、命令処理装置４０とメモリコントローラ１２との間に於けるデータの入出力制御を行う。
【００１６】
メモリコントローラ１２は、キャッシュメモリ２０と、不揮発性メモリ３０とを制御するものである。メモリコントローラ１２は、データキャッシュ制御部１３と不揮発性メモリ制御部１５とを有している。
【００１７】
データキャッシュ制御部１３は、命令処理装置４０からの命令に従い、データキャッシュ管理情報１４を用いて、データキャッシュ２１のデータ入出力を制御する。データキャッシュ制御部１３は更に、不揮発性メモリ制御部１５を制御して、データキャッシュ２１と不揮発性メモリ３０の間でデータの読み書きを行い、データキャッシュ２１から不揮発性メモリ３０へ退避するデータを選択する。
【００１８】
データキャッシュ管理情報１４は、データキャッシュ制御部１３がデータキャッシュ２１のデータ入出力制御を行う際に、データキャッシュ２１内の空き領域（空きエントリ）や格納されているデータの論理アドレスなどの情報を提供する。第１の実施形態のデータキャッシュ管理情報１４は、データキャッシュ制御部１３の内部に保存されている。しかし、これに限られず、データキャッシュ管理情報１４は、キャッシュメモリ２０内部に保存されていてもよい。
データキャッシュ管理情報１４は、後記する図３にて詳細に説明する。
【００１９】
不揮発性メモリ制御部１５は、データキャッシュ制御部１３からの指示によって、不揮発性メモリ３０内のデータの読み出しおよび書き込みを行う。また、不揮発性メモリ制御部１５は、前記読出処理と前記書込処理に付随して、キャッシュメモリ２０内の論理／物理アドレス変換テーブルキャッシュ２２の更新処理、または／および、不揮発性メモリ３０とキャッシュメモリ２０の間で、論理／物理アドレス変換テーブル３２の一部を読み書きする処理を行う。
【００２０】
不揮発性メモリ３０は、データ３１、および、論理／物理アドレス変換テーブル３２を格納している。第１の実施形態の不揮発性メモリ３０は、所定の書き込み単位と、書き込み単位より大きい消去単位とを有し、データを書き換える場合には、書き込みの前に消去動作を必要とする。不揮発性メモリ３０は、後記する図２にて詳細に説明する。
データ３１は、この不揮発性メモリ３０が記憶するデータ本体である。
論理／物理アドレス変換テーブル３２は、データおよび各データの格納場所を管理する複数のエントリを有しており、後記する図４にて詳細に説明する。
【００２１】
キャッシュメモリ２０には、データキャッシュ２１と論理／物理アドレス変換テーブルキャッシュ２２、テーブルキャッシュ管理情報２３、分割変換テーブル管理情報２４を格納する。データキャッシュ２１は、命令処理装置４０から読み出し／書き込みを指示されたデータを一時的に保持（記録）するものである。論理／物理アドレス変換テーブルキャッシュ２２は、不揮発性メモリ３０に保存している論理／物理アドレス変換テーブル３２の一部を一時的に保持（記録）するものである。
テーブルキャッシュ管理情報２３は、後記する図５にて詳細に説明する。
分割変換テーブル管理情報２４は、後記する図６にて詳細に説明する。
【００２２】
このキャッシュメモリ２０は、ＭＲＡＭ（Magnetic RAM）のような不揮発性のメモリであっても、ＳＲＡＭ（Static RAM）やＤＲＡＭ（Dynamic RAM）のような揮発性メモリであってもよい。ただし、不揮発性のメモリを用いる場合には、データ書き換えの際に消去動作を必要としない不揮発性のメモリである必要がある。また、このキャッシュメモリ２０はメモリコントローラ１２の内部にあってもよい。
【００２３】
図２は、第１の実施形態に於ける不揮発性メモリを示す概略の構成図である。
不揮発性メモリ３０（図１）は１つ以上の消去単位から構成され、この消去単位をブロック３０Ｂと呼ぶ。このブロック３０Ｂは１つ以上の書き込み単位から構成され、これをページ３０Ｐと呼ぶ。このページ３０Ｐをさらに細かくしたものをセクタ３０Ｓと呼ぶ。記憶装置１０に対するデータの読み出しおよび書き込みの最小単位は、このセクタ３０Ｓの単位である。第１の実施形態の不揮発性メモリ３０は、ブロック数がＬブロック、１ブロック当たりのページ数がＭページ、１ページあたりのセクタ数がＮセクタである。
【００２４】
不揮発性メモリ３０（図１）内の論理／物理アドレス変換テーブル３２（図４）およびデータ３１（図１）は、ページ３０Ｐのサイズを単位に分割して格納されることになる。以降、このページ３０Ｐのサイズを単位に分割された論理／物理アドレス変換テーブル３２（図１）を、分割変換テーブル３２ｐ（図４）と呼ぶ。この分割変換テーブル３２ｐは、後記する図４で詳細に説明する。以降、ページ３０Ｐのサイズを単位に分割されたデータ３１を、分割データと呼ぶ。本実施形態の分割変換テーブル３２ｐ（図４）と分割データとは、それぞれページ３０Ｐのサイズを単位に、当該サイズの整数倍に分割して格納されている。
分割データと分割変換テーブル３２ｐ（図４）とは、物理ブロック番号と物理ページ番号の組み合わせである物理アドレスに基いて、不揮発性メモリ３０（図１）の読出処理と書込処理とが行われる。
【００２５】
図３は、第１の実施形態に於けるデータキャッシュ管理情報を示す概略の構成図である。
データキャッシュ制御部１３（図１）は、データキャッシュ２１（図１）を分割データごとに分けて管理し、各分割データにデータキャッシュエントリ番号１４ａを割り当てている。データキャッシュ制御部１３（図１）は、各データキャッシュエントリ番号１４ａに対し、論理ページアドレス１４ｂと、有効セクタフラグ１４ｃとを保持している。データキャッシュ管理情報１４は、データキャッシュエントリ番号１４ａと、論理ページアドレス１４ｂと、有効セクタフラグ１４ｃとを有している。
【００２６】
データキャッシュエントリ番号１４ａは、データキャッシュ２１（図１）を分割データに分けて管理するための番号であり、本実施形態ではＣｄ個のエントリを有している。
【００２７】
論理ページアドレス１４ｂは、命令処理装置４０（図１）が指定した分割データの論理アドレスを、セクタ３０Ｓ（図２）単位からページ３０Ｐ（図２）単位に変換したものである。当該変換は、１ページあたりのセクタ数Ｎ（図２）から、セクタ数Ｎを示す下位のビット数Ｎを計算し、命令処理装置４０（図１）が指定した論理アドレスの下位Ｎビットを切り捨てることで行われる。例えば、セクタ数Ｎ＝１６とすると、下位４ビットがセクタ数Ｎを示す。このとき、命令処理装置４０（図１）が指定した論理アドレスの下位４ビットを切り捨てた値が、論理ページアドレス１４ｂとなる。
【００２８】
有効セクタフラグ１４ｃは、該当するデータキャッシュエントリ番号１４ａに格納されている分割データをセクタ３０Ｓ（図２）単位で見た場合に、どのセクタ部分が有効であるかを示す情報である。有効であるセクタは１で示される。無効であるセクタは０で示される。
データキャッシュ管理情報１４は更に、分割データにアクセスされた時刻を示すアクセス時刻欄（不図示）を有している。このアクセス時刻欄により、いずれの分割データが、もっとも古くにアクセスされたかを判断可能である。
【００２９】
図４は、第１の実施形態に於ける論理／物理アドレス変換テーブルを示す概略の構成図である。
論理／物理アドレス変換テーブル３２は、論理ページアドレス３２ｂに対応する分割データの格納先の物理アドレス３２ｃｄを管理するテーブルである。論理／物理アドレス変換テーブル３２は、テーブル管理番号３２ａと、論理ページアドレス３２ｂと、物理アドレス３２ｃｄとを有している。物理アドレス３２ｃｄは、物理ブロック番号３２ｃと物理ページ番号３２ｄの組み合わせによって表わされる。
【００３０】
テーブル管理番号３２ａは、論理／物理アドレス変換テーブル３２をページ３０Ｐのサイズに分けて管理するための番号であり、本実施形態ではＴ個の分割変換テーブル３２ｐ−０〜３２ｐ−（Ｔ−１）を管理する番号が格納されている。
【００３１】
論理ページアドレス３２ｂは、命令処理装置４０（図１）が指定した論理アドレスをデータキャッシュ管理情報１４（図３）に於ける論理ページアドレス１４ｂ（図３）と同様の方法で変換したものである。論理ページアドレス３２ｂには、当該エントリに係る分割データの論理ページのアドレスを示す情報が格納されている。
物理アドレス３２ｃｄには、当該エントリに係る分割データの物理アドレスを示す情報が格納されている。
【００３２】
テーブル管理番号３２ａが同一のエントリ、かつ、図の右側に括弧で示した部分は、分割変換テーブル３２ｐ−０〜３２ｐ−（Ｔ−１）である。以下、それぞれの分割変換テーブル３２ｐ−０〜３２ｐ−（Ｔ−１）を区別しない場合には、単に、分割変換テーブル３２ｐという。分割変換テーブル３２ｐのサイズは、ページ３０Ｐ（図２）のサイズと同一である。論理／物理アドレス変換テーブル３２は、分割変換テーブル３２ｐの単位で退避処理と読出処理とが行われる。
テーブル管理番号３２ａは、論理／物理アドレス変換テーブル３２を分割変換テーブル３２ｐごとに区切って管理するための番号である。例えば、論理／物理アドレス変換テーブル３２の１行分の情報量は４バイトであり、ページ３０Ｐ（図２）に格納できる情報量が４キロバイトとする。このとき、ページ３０Ｐ（図２）には、論理／物理アドレス変換テーブル３２の１０２４エントリ分の情報が格納できる。この場合には、論理ページアドレス３２ｂが０〜１０２３の部分を１つの分割変換テーブル３２ｐ−０とし、この分割変換テーブル３２ｐにテーブル管理番号３２ａとして０を割り振る。同様に、論理ページアドレス３２ｂが１０２４〜２０４７の部分を１つの分割変換テーブル３２ｐ−１とし、この分割変換テーブル３２ｐにテーブル管理番号３２ａとして１を割り振る。このように、不揮発性メモリ３０（図１）および論理／物理アドレス変換テーブルキャッシュ２２（図１）に於ける論理／物理アドレス変換テーブル３２の管理は、ページ３０Ｐ（図２）単位に分割した分割変換テーブル３２ｐと、各分割変換テーブル３２ｐに割り振ったテーブル管理番号３２ａによって行う。
【００３３】
図４に示す論理／物理アドレス変換テーブル３２では、論理ページアドレス３２ｂが昇順で並んでいる。しかし実際に論理／物理アドレス変換テーブル３２は、分割変換テーブル３２ｐごとに保存されるため、このようなきれいな並びとは限らない。同様に、論理／物理アドレス変換テーブルキャッシュ２２（図１）は、論理／物理アドレス変換テーブル３２と論理／物理アドレス変換テーブルキャッシュ２２（図１）との間でテーブル情報の入れ替えが発生する。そのため、論理／物理アドレス変換テーブルキャッシュ２２（図１）の論理ページアドレス３２ｂは、このようなきれいな並びとは限らない。
【００３４】
図５は、第１の実施形態に於けるテーブルキャッシュ管理情報を示す概略の構成図である。
テーブルキャッシュ管理情報２３は、テーブルキャッシュエントリ番号２３ａと、有効フラグ２３ｂと、テーブル管理番号２３ｃとを備えている。
テーブルキャッシュエントリ番号２３ａには、テーブルキャッシュ管理情報２３の各エントリを識別するエントリ番号が格納されている。テーブルキャッシュ管理情報２３のエントリ数はＣｔ個である。テーブルキャッシュエントリ番号２３ａは、後記するテーブルキャッシュエントリ番号２４ｄと同一の意味を有する情報が格納されている。
有効フラグ２３ｂには、当該エントリに対応する分割変換テーブル３２ｐ（図４）が有効であるか否かを示す情報が格納されている。この値が１のとき、当該エントリに対応する分割変換テーブル３２ｐ（図４）は有効である。この値が０のとき、当該エントリに対応する分割変換テーブル３２ｐ（図４）は無効（空き）である。
テーブル管理番号２３ｃは、当該エントリに対応する分割変換テーブル３２ｐ（図４）に割り振られたテーブル管理番号３２ａと同一の情報が格納されている。
テーブルキャッシュ管理情報２３は更に、分割変換テーブル３２ｐ（図４）にアクセスされた時刻を示すアクセス時刻欄（不図示）を有している。このアクセス時刻欄を参照することにより、もっとも古くにアクセスされた分割変換テーブル３２ｐ（図４）を判断可能である。
【００３５】
図６は、第１の実施形態に於ける分割変換テーブル管理情報を示す概略の構成図である。
分割変換テーブル管理情報２４は、各分割変換テーブル３２ｐ（図４）をテーブル管理番号２４ａによって管理している。分割変換テーブル管理情報２４は、各テーブル管理番号２４ａに対し、保存フラグ２４ｂ、キャッシュ有無フラグ２４ｃ、テーブルキャッシュエントリ番号２４ｄ、物理アドレス２４ｅｆの情報を保持している。更に物理アドレス２４ｅｆは、物理ブロック番号２４ｅの情報と物理ページ番号２４ｆの情報とを有している。本実施形態のテーブル管理番号２４ａは、０から（Ｔ−１）までの値を取り得ることが示されている。
【００３６】
保存フラグ２４ｂは、対象の分割変換テーブル３２ｐ（図４）が不揮発性メモリ３０（図１）内に保存されているか否かを示す情報である。対象の分割変換テーブル３２ｐ（図４）が既に不揮発性メモリ３０（図１）内に保存されている場合には１が格納され、保存されていない場合には０が格納される。
【００３７】
キャッシュ有無フラグ２４ｃは、対象の分割変換テーブル３２ｐ（図４）が、論理／物理アドレス変換テーブルキャッシュ２２（図１）に保持されているか否かを示す情報である。キャッシュ有無フラグ２４ｃは、当該テーブル管理番号２４ａが示す分割変換テーブル３２ｐ（図１）が論理／物理アドレス変換テーブルキャッシュ２２（図１）に保持されている場合は１が格納され、論理／物理アドレス変換テーブルキャッシュ２２（図１）に保持されていない場合には０が格納される。このキャッシュ有無フラグ２４ｃにより、論理／物理アドレス変換テーブルキャッシュ２２（図１）内部の情報を検索しなくても、対象の分割変換テーブル３２ｐ（図４）が論理／物理アドレス変換テーブルキャッシュ２２（図１）に存在するか否かを、高速に判断することができる。
テーブルキャッシュエントリ番号２４ｄは、対象の分割変換テーブル３２ｐ（図４）の論理／物理アドレス変換テーブルキャッシュ２２（図１）上での保存先を示す情報である。テーブルキャッシュエントリ番号２４ｄに基いて、テーブルキャッシュ管理情報２３のテーブルキャッシュエントリ番号２３ａ（図５）を検索することにより、有効フラグ２３ｂ（図５）とテーブル管理番号２３ｃ（図５）とを参照することができる。
【００３８】
物理アドレス２４ｅｆである物理ブロック番号２４ｅと物理ページ番号２４ｆとは、分割変換テーブル３２ｐ（図４）の不揮発性メモリ３０（図１）上での保存先を示す情報である。
【００３９】
（第１の実施形態の動作）
（データ読出処理）
図７は、第１の実施形態に於けるデータ読出処理を示すフローチャートである。
命令処理装置４０（図１）から記憶装置１０（図１）にデータ読み出し要求が入力されると、記憶装置１０（図１）は、データ読出処理を開始する。
データ読出処理を開始すると、ステップＳ１０に於いて、記憶装置１０のメモリコントローラ１２（図１）は、Ｉ／Ｆ制御部１１（図１）を介して、読出セクタの論理アドレスとセクタサイズを受け付ける。
【００４０】
ステップＳ１１に於いて、記憶装置１０のメモリコントローラ１２（図１）は、受け付けた論理アドレスを論理ページアドレスに変換して、データキャッシュ管理情報１４の論理ページアドレス１４ｂ（図３）を検索する。
【００４１】
ステップＳ１２に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４（図３）内に、変換した論理ページアドレスに該当する論理ページアドレス１４ｂ（図３）を有するエントリが有るか否かを判断する。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ１３の処理を行い、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ１６の処理を行う。
【００４２】
ステップＳ１３に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４（図３）に基き、データキャッシュ２１（図１）の中に空きエントリがあるか否かを判断する。すなわち、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図３）がすべて０であったならば、データキャッシュ２１（図１）内の当該有効セクタフラグ１４ｃ（図３）に係るエントリが空いていると判断する。
記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ１７の処理を行い、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ１４の処理を行う。
【００４３】
ステップＳ１４に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）から不揮発性メモリ３０（図１）へのデータ退避処理を行う。ステップＳ１４のデータ退避処理は、後記する図８で詳細に説明する。
【００４４】
ステップＳ１５に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）のデータ退避部分を空きエントリに設定し、ステップＳ１７の処理を行う。
【００４５】
ステップＳ１６に於いて、記憶装置１０のメモリコントローラ１２（図１）は、ステップＳ１２で抽出した該当エントリの読出セクタ部分の有効セクタフラグ１４ｃ（図３）が１であるか否かを判断する。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ１７の処理を行い、当該判断条件が成立すると判断したならば（Ｙｅｓ）、該当エントリに係るデータを読出セクタとしてステップＳ１８の処理を行う。
【００４６】
ステップＳ１７に於いて、記憶装置１０のメモリコントローラ１２（図１）は、不揮発性メモリ３０（図１）からデータキャッシュ２１（図１）への、該当エントリまたは空きエントリへのデータ読出処理を行う。ステップＳ１７のデータ読出処理は、後記する図１０で詳細に説明する。
ステップＳ１８に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）から命令処理装置４０（図１）に読出セクタを転送し、図７の処理を終了する。
以上がデータ読み出し時の処理である。
【００４７】
図８は、第１の実施形態に於ける不揮発性メモリへのデータ退避処理を示すフローチャートである。
ステップＳ２０に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象データの選択処理を行う。ステップＳ２０の退避対象データの選択処理は、後記する図９で詳細に説明する。
【００４８】
ステップＳ２１に於いて、記憶装置１０のメモリコントローラ１２（図１）は、選択した退避対象データに対応するデータキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図３）が全て１であるか否かを確認する。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ２４の処理を行い、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ２２の処理を行う。
【００４９】
ステップＳ２２に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象データに係る不揮発性メモリ３０（図１）からデータキャッシュ２１（図１）へのデータ読出処理を行う。この読出処理は、データキャッシュ２１（図１）と不揮発性メモリ３０（図１）とが整合していないデータキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図３）が０のセクタに、不揮発性メモリ３０のデータ３１（図１）に格納されている該当部分のセクタデータを読み出し、全ての有効セクタフラグ１４ｃ（図３）を１にするために行う。ステップＳ２２の不揮発性メモリ３０（図１）からデータキャッシュ２１（図１）へのデータ読出処理は、後記する図１０で詳細に説明する。
【００５０】
ステップＳ２３に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）上の退避対象データのデータキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図３）が０の部分に、データ読出処理で取得したデータを書き込む。この処理により、データキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図３）は全て１となる。
ステップＳ２４に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象データを、不揮発性メモリ３０（図１）の空きページ３０Ｐ（図２）に書き込む。
【００５１】
ステップＳ２５に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象データに対応するデータキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図３）を全て０に設定し、退避対象データが格納されていた部分を空きエントリに設定する。
【００５２】
ステップＳ２６に於いて、記憶装置１０のメモリコントローラ１２（図１）は、当該退避対象データに対応する論理／物理アドレス変換テーブル３２（図４）のエントリ更新処理を行う。ステップＳ２６の論理／物理アドレス変換テーブル３２（図４）のエントリ更新処理は、後記する図１２で詳細に説明する。記憶装置１０のメモリコントローラ１２（図１）は、ステップＳ２６の処理が終了すると、図８の処理を終了する。
【００５３】
図９は、第１の実施形態に於ける退避対象データの選択処理を示すフローチャートである。
処理を開始すると、ステップＳ３１に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）上の分割データであって、対応する論理／物理アドレス変換テーブル３２（図４）のエントリが論理／物理アドレス変換テーブルキャッシュ２２（図１）に在るものを全て抽出する。
すなわち、記憶装置１０のメモリコントローラ１２（図１）は、分割データの論理ページアドレスで論理／物理アドレス変換テーブルキャッシュ２２（図１）の論理ページアドレス３２ｂ（図４）を検索して、対応するテーブル管理番号３２ａ（図４）を取得し、取得したテーブル管理番号３２ａで分割変換テーブル管理情報２４のテーブル管理番号２４ａ（図６）を検索して、対応するキャッシュ有無フラグ２４ｃ（図６）が１であるか否かを判断して抽出する。
【００５４】
ステップＳ３２に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象の分割データの抽出個数を判断する。記憶装置１０のメモリコントローラ１２（図１）は、抽出個数が０のとき、ステップＳ３３の処理を行い、抽出個数が１のとき、ステップＳ３４の処理を行い、抽出個数が２以上のとき、ステップＳ３５の処理を行う。
【００５５】
ステップＳ３３に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）上の分割データのデータキャッシュ管理情報１４のアクセス時刻欄（不図示）によって、アクセスされた時間が最も古い分割データを退避対象として選択する。
ステップＳ３４に於いて、記憶装置１０のメモリコントローラ１２（図１）は、抽出した分割データを退避対象に決定する。
【００５６】
ステップＳ３５に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象の分割データの候補が複数見つかった場合には、抽出した分割データのデータキャッシュ管理情報１４のアクセス時刻欄（不図示）によって、アクセスされた時間が最も古い分割データを退避対象として選択する。
【００５７】
すなわち、記憶装置１０のメモリコントローラ１２（図１）は、外部からデータの読み出し要求を受けたとき、データキャッシュ２１を管理するデータキャッシュ管理情報１４に読み出し要求データに該当するエントリが無く、かつ、データキャッシュ管理情報１４に空きエントリが無かったならば、データキャッシュ２１上のデータのうち、対応する論理／物理アドレス変換テーブル３２のエントリが、論理／物理アドレス変換テーブルキャッシュ２２に有るものを優先的に不揮発性メモリ３０に退避して空きエントリを作成している。
【００５８】
第１の実施形態の記憶装置１０のメモリコントローラ１２（図１）は、ステップＳ３５に於いて、既存のＬＲＵ（Least Recently Used）アルゴリズムに基き、抽出した分割データのうち、アクセスされた時間が最も古い分割データに係るエントリを退避対象に決定している。しかし、これに限られず、記憶装置１０のメモリコントローラ１２（図１）は、既存の他のエントリ選択アルゴリズム、例えばＦＩＦＯ（First In First Out）などによって退避対象の分割データを決定してもよい。
【００５９】
図１０は、第１の実施形態に於ける不揮発性メモリからのデータ読出処理を示すフローチャートである。
ステップＳ４０に於いて、記憶装置１０のメモリコントローラ１２（図１）は、読出対象データの論理ページアドレスから、テーブル管理番号を算出する。
すなわち、記憶装置１０のメモリコントローラ１２（図１）は、読出対象データ（分割データ）の論理ページアドレスで論理／物理アドレス変換テーブルキャッシュ２２（図１）の論理ページアドレス３２ｂ（図４）を検索して、対応するテーブル管理番号３２ａ（図４）を取得する。
【００６０】
ステップＳ４１に於いて、記憶装置１０のメモリコントローラ１２（図１）は、テーブル管理番号３２ａ（図４）で分割変換テーブル管理情報２４のテーブル管理番号２４ａ（図６）を検索し、対応するキャッシュ有無フラグ２４ｃ（図６）が１であるか否かを判断する。キャッシュ有無フラグ２４ｃ（図６）が１ならば、対応する分割変換テーブル３２ｐ（図４）が論理／物理アドレス変換テーブルキャッシュ２２（図１）内にあることを示している。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ４６の処理を行い、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ４２の処理を行う。
【００６１】
ステップＳ４２に於いて、記憶装置１０のメモリコントローラ１２（図１）は、テーブルキャッシュ管理情報２３の有効フラグ２３ｂ（図５）が「０」のエントリが有るか否かを判断することにより、論理／物理アドレス変換テーブルキャッシュ２２（図１）に空きエントリが有るか否かを判断する。
すなわち、記憶装置１０のメモリコントローラ１２（図１）は、読出対象データに対応するテーブルキャッシュ管理情報２３の有効フラグ２３ｂ（図５）に基き、無効となっているテーブルキャッシュエントリ番号２３ａ（図５）があるか否かを判断する。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ４５の処理を行い、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ４３の処理を行う。
ステップＳ４３に於いて、記憶装置１０のメモリコントローラ１２（図１）は、分割変換テーブル３２ｐ（図４）の選択／退避処理を行う。ステップＳ４３の分割変換テーブル３２ｐ（図４）の選択／退避処理は、後記する図１１で詳細に説明する。
【００６２】
ステップＳ４４に於いて、記憶装置１０のメモリコントローラ１２（図１）は、論理／物理アドレス変換テーブルキャッシュ２２（図１）上に於ける退避した分割変換テーブル３２ｐ（図４）の部分を、論理／物理アドレス変換テーブル３２（図４）の空きエントリに設定する。
すなわち、記憶装置１０のメモリコントローラ１２（図１）は、退避部分に対応する分割変換テーブル管理情報２４の保存フラグ２４ｂ（図６）を１に書き換え、キャッシュ有無フラグ２４ｃ（図６）を０に書き換え、退避部分に対応する分割変換テーブル管理情報２４のテーブルキャッシュエントリ番号２４ｄ（図６）で、テーブルキャッシュ管理情報２３のテーブルキャッシュエントリ番号２３ａ（図５）を検索し、対応する有効フラグ２３ｂ（図５）を０に書き換える。ステップＳ４４の処理により、分割変換テーブル３２ｐ（図４）を格納していたテーブルキャッシュ管理情報２３のテーブルキャッシュエントリ番号２３ａ（図５）の領域は、空きエントリに設定される。
【００６３】
ステップＳ４５に於いて、記憶装置１０のメモリコントローラ１２（図１）は、論理／物理アドレス変換テーブル３２（図４）の空きエントリに、読出対象データのエントリを含む分割変換テーブル３２ｐ（図４）を、不揮発性メモリ３０（図１）から読出して格納する。この空きエントリは、ステップＳ４２で検索した空きエントリ、または、ステップＳ４４で設定した空きエントリである。
【００６４】
読出対象データのエントリを含む分割変換テーブル３２ｐ（図４）を空きエントリに格納した後、記憶装置１０のメモリコントローラ１２（図１）は、読出対象データを格納したエントリに対応するテーブルキャッシュ管理情報２３の有効フラグ２３ｂ（図５）を１に書き換え、テーブル管理番号２３ｃ（図５）を分割変換テーブル３２ｐのテーブル管理番号３２ａ（図４）で更新する。また、記憶装置１０のメモリコントローラ１２（図１）は、読み出した分割変換テーブル３２ｐのテーブル管理番号３２ａ（図４）で分割変換テーブル管理情報２４のテーブル管理番号２４ａ（図６）を検索し、対応するキャッシュ有無フラグ２４ｃ（図６）を１に変更する。同様に、記憶装置１０のメモリコントローラ１２（図１）は、分割変換テーブル管理情報２４のテーブルキャッシュエントリ番号２４ｄ（図６）を、テーブルキャッシュ管理情報２３のテーブルキャッシュエントリ番号２３ａ（図５）で更新する。
【００６５】
ステップＳ４６に於いて、記憶装置１０のメモリコントローラ１２（図１）は、読出対象データの論理ページアドレスで、論理／物理アドレス変換テーブルキャッシュ２２（図１）内の分割変換テーブル３２ｐの論理ページアドレス３２ｂを検索し、対応する物理アドレス３２ｃｄを取得する。更に、記憶装置１０のデータキャッシュ制御部１３は、取得した物理アドレス３２ｃｄによって、不揮発性メモリ３０から分割データを読み出し、データキャッシュ２１に格納する。その後、図１０の処理を終了する。
【００６６】
ステップＳ４６で分割データをデータキャッシュ２１に格納する際、ステップＳ１２の判断がＹｅｓであり、読出対象データの論理ページアドレスに対応するデータキャッシュ管理情報１４のデータキャッシュエントリ番号１４ａ（図３）があると判断した場合には、そのエントリ部分に分割データを格納する。ただし、格納先エントリの有効セクタフラグ１４ｃが１の部分には新しい分割データが入っている。そのため、この部分には読出対象データを格納せず、有効セクタフラグ１４ｃが０の領域にのみ読出対象データを格納する。
【００６７】
ステップＳ１２の判断がＮｏであり、読出対象データの論理ページアドレスに対応するデータキャッシュ管理情報１４のデータキャッシュエントリ番号１４ａ（図３）が存在しなかった場合には、ステップＳ１３もしくはステップＳ１５で設定した空きエントリに読出対象データを格納する。
【００６８】
図１１は、第１の実施形態に於ける分割変換テーブルの選択／退避処理を示すフローチャートである。
処理を開始すると、ステップＳ５２に於いて、記憶装置１０のメモリコントローラ１２（図１）は、論理／物理アドレス変換テーブルキャッシュ２２（図１）上の分割変換テーブル３２ｐ（図４）のうち、アクセスされた時間が最も古いものを、退避対象の分割変換テーブル３２ｐ（図４）に選択する。更に、記憶装置１０のメモリコントローラ１２（図１）は、退避対象である分割変換テーブル３２ｐに係るテーブル管理番号３２ａ（図４）で、分割変換テーブル管理情報２４のテーブル管理番号２４ａ（図６）を検索し、対応するテーブルキャッシュエントリ番号２４ｄを取得する。しかし、これに限られず、記憶装置１０のメモリコントローラ１２（図１）は、他のエントリ選択アルゴリズム、例えばＦＩＦＯなどを用いて、退避対象エントリを決定してもよい。
【００６９】
ステップＳ５３に於いて、記憶装置１０のメモリコントローラ１２（図１）は、選択した分割変換テーブル３２ｐ（図４）を、不揮発性メモリ３０（図１）に書き込み（退避し）、当該書込先アドレスを分割変換テーブル管理情報２４の物理アドレス２４ｅｆ（図６）に設定し、図１１の処理を終了する。
【００７０】
図１２は、第１の実施形態に於ける論理／物理アドレス変換テーブルのエントリ更新処理を示すフローチャートである。
ステップＳ６０に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象データの論理ページアドレス３２ｂ（図４）から対応するテーブル管理番号３２ａ（図４）を取得し、取得したテーブル管理番号３２ａに対応する分割変換テーブル管理情報２４のテーブル管理番号２４ａ（図６）を検索する。
【００７１】
ステップＳ６１に於いて、記憶装置１０のメモリコントローラ１２（図１）は、検索したテーブル管理番号２４ａ（図６）に対応するキャッシュ有無フラグ２４ｃ（図６）が１であるか否かを判定する。すなわち、記憶装置１０のメモリコントローラ１２（図１）は、退避対象データのエントリを含む分割変換テーブル３２ｐ（図４）が、論理／物理アドレス変換テーブルキャッシュ２２（図１）に有るか否かを判定する。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ６２の処理を行い、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ６８の処理を行う。
【００７２】
ステップＳ６２に於いて、記憶装置１０のメモリコントローラ１２（図１）は、テーブルキャッシュ管理情報２３の有効フラグ２３ｂ（図５）が０のエントリが有るか否かを判断する。すなわち、記憶装置１０のメモリコントローラ１２（図１）は、論理／物理アドレス変換テーブルキャッシュ２２（図１）に空きエントリが有るか否かを判断する。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ６３の処理を行い、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ６５の処理を行う。
ステップＳ６３に於いて、記憶装置１０のメモリコントローラ１２（図１）は、分割変換テーブル３２ｐ（図４）の選択／退避処理（図１１）を行う。
【００７３】
ステップＳ６４に於いて、記憶装置１０のメモリコントローラ１２（図１）は、論理／物理アドレス変換テーブルキャッシュ２２（図１）上に於ける退避した分割変換テーブル３２ｐ（図４）の部分を、論理／物理アドレス変換テーブル３２（図４）の空きエントリに設定する。
【００７４】
ステップＳ６５に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象データに対応する分割変換テーブル３２ｐ（図４）に係る保存フラグ２４ｂ（図６）が１であるか否かを判断する。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ６６の処理を行い、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ６７の処理を行う。
【００７５】
ステップＳ６６に於いて、記憶装置１０のメモリコントローラ１２（図１）は、論理／物理アドレス変換テーブルキャッシュ２２（図１）の空きエントリに、新しい分割変換テーブル３２ｐ（図４）を作成する。
すなわち、記憶装置１０のメモリコントローラ１２（図１）は、退避した分割データの論理ページアドレスで、分割変換テーブル３２ｐ（図４）の論理ページアドレス３２ｂを検索し、対応する物理アドレス３２ｃｄに、退避した分割データの書込先アドレスを設定する。新しい分割変換テーブル３２ｐ（図４）の作成後、記憶装置１０のメモリコントローラ１２（図１）は、ステップＳ６２またはステップＳ６４で設定した空きエントリのテーブルキャッシュエントリ番号２３ａ（図５）を検索し、対応する有効フラグ２３ｂ（図５）を１に書き換えると共にテーブル管理番号２３ｃ（図５）を更新する。記憶装置１０のメモリコントローラ１２（図１）は、作成した分割変換テーブル３２ｐに対応するテーブル管理番号３２ａで、分割変換テーブル管理情報２４のテーブル管理番号２４ａ（図６）を検索し、対応するキャッシュ有無フラグ２４ｃ（図６）を１に変更し、テーブルキャッシュエントリ番号２４ｄ（図６）を、テーブルキャッシュエントリ番号２３ａ（図５）の値に設定する。ステップＳ６６の処理を終了すると、記憶装置１０のメモリコントローラ１２（図１）は、図１２の処理を終了する。
【００７６】
ステップＳ６７に於いて、記憶装置１０のメモリコントローラ１２（図１）は、論理／物理アドレス変換テーブル３２（図４）の空きエントリに、不揮発性メモリ３０（図１）から退避対象データのエントリを含む分割変換テーブル３２ｐ（図４）を読み出す。
ステップＳ６８に於いて、記憶装置１０のメモリコントローラ１２（図１）は、退避対象データのエントリを更新し、図１２の処理を終了する。
【００７７】
（データ書込処理）
図１３は、第１の実施形態に於けるデータ書込処理を示すフローチャートである。
命令処理装置４０（図１）より記憶装置１０（図１）にデータ書き込み要求が入力されると、記憶装置１０（図１）は、データ書込処理を開始する。
データ書込処理を開始すると、ステップＳ７０に於いて、記憶装置１０のメモリコントローラ１２（図１）は、命令処理装置４０（図１）よりＩ／Ｆ制御部１１（図１）を介して、書込セクタの論理アドレスとセクタサイズと、書込要求データとを受け付ける。
【００７８】
ステップＳ７１に於いて、記憶装置１０のメモリコントローラ１２（図１）は、書込セクタの論理アドレスを論理ページアドレスに変換して、データキャッシュ管理情報１４の論理ページアドレス１４ｂ（図３）を検索する。
【００７９】
ステップＳ７２に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４（図３）内に、書込セクタの論理ページアドレスに該当する論理ページアドレス１４ｂ（図３）を有するエントリが有るか否かを判断する。記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ７３の処理を行い、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ７６の処理を行う。
【００８０】
ステップＳ７３に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４（図３）に基き、データキャッシュ２１（図１）に空きエントリが有るか否かを判断する。すなわち、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図３）が全て０であったならば、データキャッシュ２１（図１）内の当該有効セクタフラグ１４ｃ（図３）に係るエントリが空いていると判断する。
記憶装置１０のメモリコントローラ１２（図１）は、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ７４の処理を行い、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ７６の処理を行う。
【００８１】
ステップＳ７４に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）から不揮発性メモリ３０（図１）へのデータ退避処理を行う。ステップＳ７４のデータ退避処理（図８）は、ステップＳ１４のデータ退避処理と同様である。
ステップＳ７５に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）のデータ退避部分を空きエントリに設定し、ステップＳ７６の処理を行う。
【００８２】
ステップＳ７６に於いて、記憶装置１０のメモリコントローラ１２（図１）は、命令処理装置４０（図１）から受け付けた書込要求データを、データキャッシュ２１（図１）の該当エントリまたは空きエントリに格納する。書込要求データの格納後、記憶装置１０のメモリコントローラ１２（図１）は、書込要求データに対応する有効セクタフラグ１４ｃ（図３）のうち、書き込んだ領域に対応する部分を１に変更する。例えば、記憶装置１０のメモリコントローラ１２（図１）は、１ページ分のデータを格納したならば、有効セクタフラグ１４ｃ（図３）をすべて１に変更し、１セクタのみデータを格納したならば、有効セクタフラグ１４ｃ（図３）の格納したセクタ部分の１ビットのみを１に変更する。
【００８３】
ステップＳ７７に於いて、記憶装置１０のメモリコントローラ１２（図１）は、Ｉ／Ｆ制御部１１（図１）を介して、命令処理装置４０（図１）に、データ書き込み完了の応答を報告し、図１３の処理を終了する。
【００８４】
（電源ＯＦＦ時の処理）
図１４は、第１の実施形態に於ける電源ＯＦＦ時の処理を示すフローチャートである。
例えば記憶装置１０（図１）の電源スイッチをＯＦＦすることによって、電源ＯＦＦ時の処理が開始する。当該処理は、電源ＯＦＦによってキャッシュメモリ２０（図１）上のデータが失われるため、不揮発性メモリ３０（図１）内にデータを退避して保護することを目的としている。
【００８５】
電源ＯＦＦ時の処理を開始すると、ステップＳ８０に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１上の有効な分割データのうち、対応するデータ更新フラグ１４ｄが１であるものを、すべて不揮発性メモリ３０に書き込む（退避する）。
すなわち、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図３）がすべて０ではないエントリに対応する分割データを、不揮発性メモリ３０（図１）に書き込む（退避する）。
【００８６】
ステップＳ８１に於いて、記憶装置１０のメモリコントローラ１２（図１）は、論理／物理アドレス変換テーブルキャッシュ２２（図１）に格納されているすべての分割変換テーブル３２ｐ（図４）を、不揮発性メモリ３０（図１）に書き込む（退避する）。ステップＳ８１の処理が終了すると、記憶装置１０のデータキャッシュ制御部１３は、図１４の処理を終了する。
【００８７】
（具体例）
次に、具体例を用いて、第１の実施形態の動作を説明する。この具体例では、データキャッシュ２１（図１）のエントリ数を３、論理／物理アドレス変換テーブルキャッシュ２２（図１）のエントリ数を２としている。更に、不揮発性メモリ３０（図１）の１ページあたりのセクタ数を８としている。
【００８８】
図１５は、第１の実施形態に於けるデータキャッシュ管理情報とテーブルキャッシュ管理情報の例を示す図である。
図１５（ａ−１）は、具体例の初期状態に於けるデータキャッシュ管理情報１４を示している。図１５（ａ−２）は、具体例の初期状態に於けるテーブルキャッシュ管理情報２３を示している。
データキャッシュ２１（図１）には、論理ページアドレス１４ｂが「Ｄ０」，「Ａ１」，「Ｃ０」である分割データ（エントリ）が、それぞれ格納されている。
【００８９】
論理／物理アドレス変換テーブルキャッシュ２２（図１）には、テーブル管理番号２３ｃが「Ａ」の分割変換テーブル３２ｐと、テーブル管理番号２３ｃが「Ｂ」の分割変換テーブル３２ｐとが格納されている。
【００９０】
初期状態であるステップＳ７０（図１３）に於いて、書き込み要求と共に、命令処理装置４０（図１）から論理ページアドレスが「Ｂ１」であるデータが８セクタ分入力された場合を例とする。データキャッシュ管理情報１４には、論理ページアドレス１４ｂが「Ｂ１」であるエントリが無く、かつ、空きエントリも無い。
【００９１】
ステップＳ７２（図１３）に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４には、論理ページアドレス１４ｂが「Ｂ１」であるエントリが無いことによりＮｏと判断し、ステップＳ７３（図１３）の処理を行う。
【００９２】
ステップＳ７３（図１３）に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ管理情報１４には、空きエントリが無いことによりＮｏと判断し、ステップＳ７４（図１３）の処理を行う。
【００９３】
ステップＳ７４（図１３）に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）から不揮発性メモリ３０（図１）へのデータ退避処理（図８）を呼び出し、データキャッシュエントリ番号１４ａ＝１のエントリに対応するデータキャッシュ２１（図１）の分割データの部分を、不揮発性メモリ３０（図１）の空きページに書き込む（退避する）。
ステップＳ７５（図１３）に於いて、記憶装置１０のメモリコントローラ１２（図１）は、データキャッシュ２１（図１）の退避部分を空きエントリに設定する。
【００９４】
図１５（ｂ−１）は、ステップＳ７５（図１３）に於けるデータキャッシュ管理情報１４を示している。図１５（ｂ−２）は、ステップＳ７５（図１３）に於けるテーブルキャッシュ管理情報２３を示している。
【００９５】
不揮発性メモリ３０へのデータ退避処理（図８）によって、データキャッシ管理情報１４には、データキャッシュエントリ番号１４ａ＝１のエントリが空いている。ここに、命令処理装置４０（図１）から送られた書込データを格納する。
【００９６】
図１５（ｃ−１）は、ステップＳ７７（図１３）の処理後のデータキャッシュ管理情報１４を示している。図１５（ｃ−２）は、ステップＳ７７（図１３）の処理後のテーブルキャッシュ管理情報２３を示している。
【００９７】
図１６は、第１の実施形態に於ける分割変換テーブルの例を示す図である。
図１６（ａ）は、具体例の初期状態に於けるテーブル管理番号３２ａが「Ａ」の分割変換テーブル３２ｐの内容を示したものである。
ここで、テーブル管理番号Ａの分割変換テーブル３２ｐは、論理ページアドレス「Ａ０」から論理ページアドレス「Ａ１０２３」までの論理／物理アドレス変換テーブル３２の情報を有している。
【００９８】
図１６（ｂ）は、具体例の更新後に於けるテーブル管理番号３２ａが「Ａ」の分割変換テーブル３２ｐの内容を示したものである。論理ページアドレス３２ｂが「Ａ１」であるデータの物理アドレス３２ｃｄが更新されている。
【００９９】
既存のエントリ選択アルゴリズムを用い、論理ページアドレスＤ０のエントリを退避対象エントリにした場合を考える。書込対象データの論理ページアドレスに対応する分割変換テーブル３２ｐは、論理／物理アドレス変換テーブルキャッシュ２２（図１）には存在せず、論理／物理アドレス変換テーブルキャッシュ２２（図１）に空きエントリは存在しない。そのため、不揮発性メモリ３０（図１）への分割変換テーブル３２ｐ（図１６）の書き込み（退避）が発生する。その結果、不揮発性メモリ３０（図１）の消去回数を消耗することになる。
第１の実施形態の記憶装置１０（図１）によれば、このような不揮発性メモリ３０（図１）の消去回数の消耗を防止することができる。
【０１００】
（第１の実施形態の効果）
以上説明した第１の実施形態では、次の（Ａ）のような効果がある。
【０１０１】
（Ａ）  記憶装置１０は、データキャッシュ２１上の分割データを退避する際、退避する当該分割データに係る論理／物理アドレス変換テーブル３２のエントリが、論理／物理アドレス変換テーブルキャッシュ２２に格納されているものを優先的に退避している。これにより、論理／物理アドレス変換テーブルキャッシュ２２の退避処理（書込）と読出処理の回数を減らし、外部装置によるデータの読み込みとデータの書き込みを高速化し、不揮発性メモリ３０の消去回数の消耗を防止して寿命を延ばすことができる。
【０１０２】
（第２の実施形態の構成）
図１７は、第２の実施形態に於ける計算機を示す概略の構成図である。第１の実施形態の計算機１００（図１）と同一の要素には同一の符号を付与している。
【０１０３】
第２の実施形態の記憶装置１０Ａは、第１の実施形態の記憶装置１０のメモリコントローラ１２（図１）とは異なるメモリコントローラ１２Ａを有している他は、第１の実施形態の記憶装置１０（図１）と同様に構成されている。
【０１０４】
第２の実施形態のメモリコントローラ１２Ａは、第１の実施形態のメモリコントローラ１２（図１）と同様の構成に加えて更に、選択方式設定レジスタ１６を有している。
選択方式設定レジスタ１６は、不揮発性メモリ３０への退避対象データを選択する際に、その選択アルゴリズムを切り替えるものである。
【０１０５】
選択方式設定レジスタ１６の値は、製造時にのみ設定が可能なようにしてもよく、任意に外部から変更できるようにしてもよい。外部からの変更方法としては、例えば命令処理装置４０から変更指示を与えてもよく、記憶装置１０に搭載しているスイッチによって切り替えるようにしてもよい。
【０１０６】
第２の実施形態に於いて選択方式設定レジスタ１６は、メモリコントローラ１２の内部に設けられたレジスタである。しかし、これに限られず、選択方式設定レジスタ１６は、メモリコントローラ１２の外部であってもよく、更に、スイッチやピンなどであってもよい。
【０１０７】
（第２の実施形態の動作）
第２の実施形態のデータ読出処理は、第１の実施形態のデータ読出処理（図７）と同様である。
第２の実施形態の不揮発性メモリ３０（図１７）へのデータ退避処理は、第１の実施形態の不揮発性メモリ３０（図１）へのデータ退避処理（図８）と同様である。
【０１０８】
図１８は、第２の実施形態に於ける退避対象データの選択処理を示すフローチャートである。第１の実施形態の退避対象データの選択処理（図９）と同一の要素には同一の符号を付与している。
【０１０９】
退避対象データの選択処理を開始すると、記憶装置１０Ａのメモリコントローラ１２Ａ（図１７）は、選択方式設定レジスタ１６（図１７）が１であるか否かを判断する。記憶装置１０Ａのメモリコントローラ１２Ａ（図１７）は、当該判断条件が成立すると判断したならば（Ｙｅｓ）、ステップＳ３３の処理を行い、当該判断条件が成立しないと判断したならば（Ｎｏ）、ステップＳ３１の処理を行う。
ステップＳ３１〜Ｓ３５の処理は、第１の実施形態の退避対象データの選択処理（図９）と同一である。
この第２の実施形態に於ける退避対象データの選択処理により、記憶装置１０Ａのメモリコントローラ１２Ａ（図１７）は、選択方式設定レジスタ１６（図１７）の設定により、データキャッシュ２１（図１７）上の分割データを、第１の実施形態のアルゴリズムを用いるか否かを選択し、従来のＬＲＵアルゴリズムなどを用いて退避させることが可能となる。
【０１１０】
第２の実施形態の不揮発性メモリ３０（図１７）からのデータ読出処理は、第１の実施形態の不揮発性メモリ３０（図１）からのデータ読出処理（図１０）と同様である。
第２の実施形態の分割変換テーブル３２ｐ（図４）の選択／退避処理は、第１の実施形態の分割変換テーブル３２ｐ（図４）の選択／退避処理（図１１）と同様である。
第２の実施形態の論理／物理アドレス変換テーブル３２（図４）のエントリ更新処理は、第１の実施形態の論理／物理アドレス変換テーブル３２（図４）のエントリ更新処理（図１２）と同様である。
第２の実施形態のデータ書込処理は、第１の実施形態のデータ書込処理（図１３）と同様である。
第２の実施形態の電源ＯＦＦ時の処理は、第１の実施形態の電源ＯＦＦ時の処理（図１４）と同様である。
【０１１１】
（第２の実施形態の効果）
以上説明した第２の実施形態では、次の（Ｂ）のような効果がある。
【０１１２】
（Ｂ）  記憶装置１０Ａのメモリコントローラ１２Ａ（図１７）は、選択方式設定レジスタ１６（図１７）の設定値に基いて、第１の実施形態のアルゴリズムを用いるか否かを選択することができる。
【０１１３】
（第３の実施形態の構成）
第３の実施形態の記憶装置１０Ｂ（不図示）は、第１の実施形態の記憶装置１０のデータキャッシュ管理情報１４（図１）とは異なるデータキャッシュ管理情報１４Ｂ（図１９）を有し、第１の実施形態の記憶装置１０のテーブルキャッシュ管理情報２３（図１）とは異なるテーブルキャッシュ管理情報２３Ｂ（図２０）を有している他は、第１の実施形態の記憶装置１０（図１）と同様に構成されている。
【０１１４】
図１９は、第３の実施形態に於けるデータキャッシュ管理情報を示す概略の構成図である。
第３の実施形態のデータキャッシュ管理情報１４Ｂは、第１の実施形態のデータキャッシュ管理情報１４（図３）と同様の構成に加えて更に、データ更新フラグ１４ｄを有している。
【０１１５】
データ更新フラグ１４ｄは、データキャッシュ２１（図１）の対応する分割データが更新され、不揮発性メモリ３０の格納内容と相違したか否かを示す情報である。データ更新フラグ１４ｄは、対応する分割データが更新されているならば１が格納され、対応する分割データが更新されていないならば０が格納されている。
図２０は、第３の実施形態に於けるテーブルキャッシュ管理情報を示す概略の構成図である。
【０１１６】
第３の実施形態のテーブルキャッシュ管理情報２３Ｂは、第１の実施形態のテーブルキャッシュ管理情報２３（図５）と同様の構成に加えて更に、テーブル更新フラグ２３ｄを有している。
【０１１７】
テーブル更新フラグ２３ｄは、当該テーブル更新フラグ２３ｄに対応する分割変換テーブル３２ｐ（図４）が更新され、不揮発性メモリ３０の格納内容と相違したか否かを示す情報である。テーブル更新フラグ２３ｄは、対応する分割変換テーブル３２ｐ（図４）が更新されているならば１が格納され、対応する分割変換テーブル３２ｐ（図４）が更新されていないならば０が格納されている。
【０１１８】
（第３の実施形態の動作）
第３の実施形態のデータ読出処理は、第１の実施形態のデータ読出処理（図７）と同様である。
【０１１９】
図２１は、第３の実施形態に於ける不揮発性メモリへのデータ退避処理を示すフローチャートである。第１の実施形態の不揮発性メモリ３０へのデータ退避処理（図８）と同一の要素には同一の符号を付与している。
【０１２０】
不揮発性メモリ３０へのデータ退避処理を開始すると、ステップＳ９０に於いて、記憶装置１０Ｂのメモリコントローラ１２は、データキャッシュ２１上の分割データのうち、データ更新フラグ１４ｄ（図１９）が０であるものを退避対象として、全て抽出する。
【０１２１】
ステップＳ９１に於いて、記憶装置１０Ｂのメモリコントローラ１２は、退避対象の分割データの抽出個数を判断する。記憶装置１０Ｂのメモリコントローラ１２は、抽出個数が０のとき、ステップＳ２０の処理を行い、抽出個数が１のとき、ステップＳ９２の処理を行い、抽出個数が２以上のとき、ステップＳ９３の処理を行う。
【０１２２】
ステップＳ２０〜Ｓ２６の処理は、図８に示すステップＳ２０〜Ｓ２６の処理と同様である。ステップＳ２６の処理が終了すると、記憶装置１０Ｂのメモリコントローラ１２は、図２１の処理を終了する。
ステップＳ９２に於いて、記憶装置１０Ｂのメモリコントローラ１２は、抽出された分割データを選択し、ステップＳ９４の処理を行う。
ステップＳ９３に於いて、記憶装置１０Ｂのメモリコントローラ１２は、抽出された分割データのうち、アクセスされた時間が最も古いものを選択する。
【０１２３】
ステップＳ９４に於いて、記憶装置１０Ｂのメモリコントローラ１２は、選択された分割データの有効セクタフラグ１４ｃ（図１９）を全て０に設定し、図２１の処理を終了する。
【０１２４】
図２２は、第３の実施形態に於ける分割変換テーブルの選択／退避処理を示すフローチャートである。第１の実施形態の分割変換テーブル３２ｐの選択／退避処理（図９）と同一の要素には同一の符号を付与している。
【０１２５】
分割変換テーブル３２ｐの選択／退避処理を開始すると、ステップＳ５０に於いて、記憶装置１０のデータキャッシュ制御部１３は、論理／物理アドレス変換テーブルキャッシュ２２上の分割変換テーブル３２ｐのうち、対応するテーブル更新フラグ２３ｄ（図２０）が０であるものを全て抽出する。
【０１２６】
ステップＳ５１に於いて、記憶装置１０のデータキャッシュ制御部１３は、分割変換テーブル３２ｐの抽出個数を判断する。記憶装置１０のデータキャッシュ制御部１３は、抽出個数が０のとき、ステップＳ５２の処理を行い、抽出個数が１のとき、ステップＳ５３の処理を行い、抽出個数が２以上のとき、ステップＳ５３の処理を行う。
【０１２７】
ステップＳ５２〜Ｓ５３の処理は、図９に示すステップＳ５２〜Ｓ５３の処理と同様である。ステップＳ５３の処理が終了すると、記憶装置１０のデータキャッシュ制御部１３は、図２２の処理を終了する。
【０１２８】
ステップＳ５４に於いて、記憶装置１０のデータキャッシュ制御部１３は、抽出された分割変換テーブル３２ｐを、退避対象の分割変換テーブル３２ｐとして選択し、図２２の処理を終了する。
【０１２９】
ステップＳ５５に於いて、記憶装置１０のデータキャッシュ制御部１３は、抽出された分割変換テーブル３２ｐのうち、アクセスされた時間が最も古いものを、退避対象の分割変換テーブル３２ｐとして選択し、図２２の処理を終了する。記憶装置１０のメモリコントローラ１２（図１）は、テーブルキャッシュ管理情報２３のアクセス時刻欄（不図示）によって、分割変換テーブル３２ｐのアクセス時間を判断する。
【０１３０】
第２の実施形態の不揮発性メモリ３０からのデータ読出処理は、第１の実施形態の不揮発性メモリ３０（図１）からのデータ読出処理（図１０）と同様である。
第２の実施形態の分割変換テーブル３２ｐの選択／退避処理は、第１の実施形態の分割変換テーブル３２ｐ（図４）の選択／退避処理（図１１）と同様である。
第２の実施形態の論理／物理アドレス変換テーブル３２のエントリ更新処理は、第１の実施形態の論理／物理アドレス変換テーブル３２（図４）のエントリ更新処理（図１２）と同様である。
第２の実施形態のデータ書込処理は、第１の実施形態のデータ書込処理（図１３）と同様である。
【０１３１】
図２３は、第３の実施形態に於ける電源ＯＦＦ時の処理を示すフローチャートである。第１の実施形態の電源ＯＦＦ時の処理（図１４）と同一の要素には同一の符号を付与している。
【０１３２】
電源ＯＦＦ時の処理を開始すると、ステップＳ８０Ａに於いて、記憶装置１０Ｂのメモリコントローラ１２は、データキャッシュ２１上の有効な分割データのうち、対応するデータ更新フラグ１４ｄ（図１９）が１であるものを、すべて不揮発性メモリ３０に書き込む（退避する）。
すなわち、記憶装置１０Ｂのメモリコントローラ１２は、データキャッシュ管理情報１４の有効セクタフラグ１４ｃ（図２０）がすべて０ではないエントリに対応する分割データのうち、対応するデータ更新フラグ１４ｄ（図２０）が１であるものを、不揮発性メモリ３０に書き込む（退避する）。
【０１３３】
ステップＳ８１Ａに於いて、記憶装置１０Ｂのメモリコントローラ１２は、論理／物理アドレス変換テーブルキャッシュ２２に格納されている分割変換テーブル３２ｐのうち、テーブルキャッシュ管理情報２３のテーブル更新フラグ２３ｄ（図２０）が１となっている分割変換テーブル３２ｐのみを書き込んでいる（退避している）。ステップＳ８１Ａの処理が終了すると、記憶装置１０Ｂのメモリコントローラ１２は、図２３の処理を終了する。
【０１３４】
（第３の実施形態の効果）
以上説明した第３の実施形態では、次の（Ｃ）〜（Ｆ）のような効果がある。
【０１３５】
（Ｃ）  記憶装置１０Ｂのメモリコントローラ１２は、データキャッシュ２１に空きエントリを作成する際、データ更新フラグ１４ｄに基き、更新されていない分割データを優先的に選択して、選択したエントリに係る分割データを破棄し、これを空きエントリとしている。これにより、不揮発性メモリ３０への退避処理（書込処理）をすることなく、データキャッシュ２１の空きエントリを高速に作成することができると共に、不揮発性メモリ３０の書込回数を減らして寿命を長くすることができる。
【０１３６】
（Ｄ）  記憶装置１０Ｂのメモリコントローラ１２は、論理／物理アドレス変換テーブルキャッシュ２２に空きエントリを作成する際、テーブル更新フラグ２３ｄに基き、更新されていない分割変換テーブル３２ｐを優先的に選択して、選択したエントリに係る分割変換テーブル３２ｐを破棄し、これを空きエントリとしている。これにより、不揮発性メモリ３０への退避処理（書込処理）をすることなく、論理／物理アドレス変換テーブルキャッシュ２２の空きエントリを高速に作成することができると共に、不揮発性メモリ３０の書込回数を減らして寿命を長くすることができる。
【０１３７】
（Ｅ）  記憶装置１０Ｂのメモリコントローラ１２は、電源ＯＦＦの際、データ更新フラグ１４ｄに基き、更新された分割データのみを退避している。これにより、データキャッシュ２１を高速に退避することができると共に、不揮発性メモリ３０の書込回数を減らして寿命を長くすることができる。
【０１３８】
（Ｆ）  記憶装置１０Ｂのメモリコントローラ１２は、電源ＯＦＦの際、テーブル更新フラグ２３ｄに基き、更新された分割変換テーブル３２ｐのみを退避している。これにより、論理／物理アドレス変換テーブルキャッシュ２２を高速に退避することができると共に、不揮発性メモリ３０の書込回数を減らして寿命を長くすることができる。
【０１３９】
（変形例）
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。この利用形態や変形例としては、例えば、次の（ａ）〜（ｄ）のようなものがある。
【０１４０】
（ａ）  第１〜第３の実施形態に於けるキャッシュメモリ２０は、例えばバッテリーバックアップした不揮発性ＲＡＭとして構成してもよい。これにより、電源ＯＦＦ時の処理が不要となる。
【０１４１】
（ｂ）  第１〜第３の実施形態に於ける各構成、機能、処理部、処理手段などは、それらの一部または全部を、例えば集積回路などのハードウェアで実現してもよい。
【０１４２】
（ｃ）  第１〜第３の実施形態に於ける各構成、機能、処理部、処理手段などは、それらの一部または全部を、例えば、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによるソフトウェアで実現してもよい。
【０１４３】
（ｄ）  第１〜第３の実施形態に於けるデータキャッシュ管理情報１４、テーブルキャッシュ管理情報２３、分割変換テーブル管理情報２４などは、別の項目を有する管理情報で実現してもよい。
【符号の説明】
【０１４４】
１０，１０Ａ，１０Ｂ  記憶装置
１１  Ｉ／Ｆ制御部
１２，１２Ａ  メモリコントローラ（処理部）
１３  データキャッシュ制御部
１４，１４Ｂ  データキャッシュ管理情報
１５  不揮発性メモリ制御部
１６  選択方式設定レジスタ
２０  キャッシュメモリ
２０Ｃ  不揮発性ＲＡＭ
２１  データキャッシュ
２２  論理／物理アドレス変換テーブルキャッシュ
２２Ａ  論理／物理アドレス変換テーブルキャッシュ
２３  テーブルキャッシュ管理情報
２４  分割変換テーブル管理情報
２３Ｂ  テーブルキャッシュ管理情報
３０  不揮発性メモリ
３１  データ
３２  論理／物理アドレス変換テーブル
４０  命令処理装置
１００  計算機
【図１】
2013097416.tif 000003
【図２】
2013097416.tif 000004
【図３】
2013097416.tif 000005
【図４】
2013097416.tif 000006
【図５】
2013097416.tif 000007
【図６】
2013097416.tif 000008
【図７】
2013097416.tif 000009
【図８】
2013097416.tif 000010
【図９】
2013097416.tif 000011
【図１０】
2013097416.tif 000012
【図１１】
2013097416.tif 000013
【図１２】
2013097416.tif 000014
【図１３】
2013097416.tif 000015
【図１４】
2013097416.tif 000016
【図１５】
2013097416.tif 000017
【図１６】
2013097416.tif 000018
【図１７】
2013097416.tif 000019
【図１８】
2013097416.tif 000020
【図１９】
2013097416.tif 000021
【図２０】
2013097416.tif 000022
【図２１】
2013097416.tif 000023
【図２２】
2013097416.tif 000024
【図２３】
2013097416.tif 000025