(57)【要約】【課題】不揮発性メモリの劣化を抑制すると共により高速にデータを書き込む。【解決手段】ページ利用率Ｒが閾値Ｒｔｈ１未満であるときや書き込みデータが高頻度書換データであるときには書き込みデータをＲｅＲＡＭに記憶させる。そして、ＲｅＲＡＭの空き容量Ｓｅｍｐ２が閾値Ｓｔｈ未満であるとき（ステップＳ１１０）、ＲｅＲＡＭのデータが低頻度書換データであり且つ対象のデータをフラッシュメモリ２２に記憶させたときのページ利用率Ｒが閾値Ｒｔｈ３以上であるときには（ステップＳ１２０，Ｓ１３０）、移動リストに記憶されているＮ個の論理ページアドレスに含まれる論理セクタのデータをＲｅＲＡＭから読み出してフラッシュメモリに書き込む（ステップＳ１４０〜Ｓ１６０）。これにより、フラッシュメモリの劣化を抑制すると共により高速にデータを書き込むことができる。【選択図】図１０
2014059820.tif 000002
【特許請求の範囲】
【請求項１】
複数のセクタからなるページ単位でデータが読み出され該読み出されたデータのうち書き込みデータに対応するセクタが前記書き込みデータで上書きされた後に前記ページ単位でデータが書き込まれる書き込み動作によりデータが書き込まれる不揮発性メモリとして構成された第１メモリと、前記第１メモリより高速にデータの書き込みが可能な不揮発性ランダムアクセスメモリとして構成された第２メモリと、を制御するメモリコントローラであって、
書き込みデータと該書き込みデータの書き込みを要求する書き込み要求信号とが入力されたとき、前記書き込みデータを前記第１メモリに書き込むと所定サイズの記憶領域のうち前記書き込みデータの記憶に利用されるセクタのサイズの割合であるデータ利用率が第１比率以上となるときには前記入力された書き込みデータが前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御し、前記データ利用率が前記第１比率未満となるときには前記入力された書き込みデータが前記第２メモリに記憶されるよう前記第１メモリと前記第２メモリとを制御する書き込み制御部と、
前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが書き込み頻度が低い低頻度書き込みデータであるときには前記低頻度書き込みデータが前記第２メモリから読み出されて前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御するデータ移動制御を実行するデータ移動制御部と、
を備えるメモリコントローラ。
【請求項２】
請求項１記載のメモリコントローラであって、
前記データ移動制御部は、前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであり且つ前記第１メモリに前記低頻度書き込みデータの記憶に利用されるセクタを含む前記所定サイズのデータを書き込むと該所定サイズのデータにおける前記データ利用率が前記第１比率より低い第２比率以上となるときには、前記データ移動制御を実行する
メモリコントローラ。
【請求項３】
請求項２記載のメモリコントローラであって、
データが含まれるページを示すページアドレスと該ページ内のデータの記憶に利用されているセクタを示すセクタアドレスとからなる論理アドレスを用いて前記第１メモリおよび前記第２メモリを管理するアドレス管理部と、
前記データ利用率が前記第１比率以上となったときの書き込みデータの論理アドレスを記憶する高利用率アドレス情報記憶部と、
を備え、
前記データ移動制御部は、前記入力された書き込みデータの論理アドレスが前記高利用率アドレス情報記憶部に所定個数未満記憶されているときに前記入力された書き込みデータが低頻度書き込みデータであると判定する
メモリコントローラ。
【請求項４】
請求項２または３記載のメモリコントローラであって、
前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであり且つ前記低頻度書き込みデータを前記第１メモリに書き込むと前記データ利用率が前記第２比率以上となるときには、前記低頻度書き込みデータを含むページのページアドレスを記憶するページアドレス記憶部
を備え、
前記データ移動制御部は、前記第２メモリの空き容量が前記所定容量未満となったとき、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであり且つ前記低頻度書き込みデータを前記第１メモリに書き込むと前記データ利用率が前記第２比率以上となり且つ前記ページアドレス記憶部に記憶されているページアドレスの数が所定個数以上であるときに、前記ページアドレス記憶部に記憶されているページアドレスに対応する第２メモリのデータについて前記データ移動制御を実行する
メモリコントローラ。
【請求項５】
請求項４記載のメモリコントローラであって、
前記データ移動制御部は、前記第２メモリの空き容量が前記所定容量未満となって、前記所定個数より多い複数のページについて、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであるか否かと前記低頻度書き込みデータを前記第１メモリに書き込むと前記データ利用率が前記第２比率以上となるか否かを判定したとき、前記ページアドレス記憶部に記憶されているページアドレスの数が前記所定個数未満であるときには前記第２比率を減少させ、前記ページアドレス記憶部に記憶されているページアドレスの数が前記所定個数であるときには前記第２比率の値を変更せずに維持し、前記ページアドレス記憶部に記憶されているページアドレスの数が前記所定個数を超えたときには前記第２比率を増加させる
メモリコントローラ。
【請求項６】
請求項２ないし５のいずれか一つの請求項に記載のメモリコントローラであって、
前記書き込み制御部および前記データ移動制御部は、前記各セクタがデータを記憶しているか否かの情報である利用セクタ情報と入力された書き込みデータを記憶する際に利用するセクタとに基づいて前記データ利用率を演算する
メモリコントローラ。
【請求項７】
請求項１ないし６のいずれか一つの請求項に記載のメモリコントローラであって、
前記制御部は、前記入力された書き込みデータを前記第２メモリに記憶させるとき、前記入力された書き込みデータの論理アドレスに対応するデータが既に第１メモリの記憶領域に記憶されているときには、前記第１メモリに記憶されているデータをページ単位で読み出して該読み出したデータのセクタのうち書き込みデータで書き込む対象となるセクタを書き換えた後にページ単位で第２メモリに記憶させる
メモリコントローラ。
【請求項８】
請求項１ないし７のいずれか一つの請求項に記載のメモリコントローラであって、
前記所定サイズの記憶領域は、前記書き込みデータに利用されるセクタを含むページが記憶される領域である
メモリコントローラ。
【請求項９】
請求項１ないし８のいずれか一つの請求項に記載のメモリコントローラであって、
前記第１メモリは、ＮＡＮＤ型フラッシュメモリである、
メモリコントローラ。
【請求項１０】
請求項１ないし９のいずれか一つの請求項に記載のメモリコントローラであって、
前記第２メモリは、抵抗変化型メモリである、
メモリコントローラ。
【請求項１１】
請求項１ないし１０のいずれか一つの請求項に記載のメモリコントローラと、
前記第１メモリと、
前記第２メモリと、
を備えるデータ記憶装置。
【請求項１２】
複数のセクタからなるページ単位でデータが読み出され該読み出されたデータのうち書き込みデータに対応するセクタが前記書き込みデータで上書きされた後に前記ページ単位でデータが書き込まれる書き込み動作によりデータが書き込まれる不揮発性メモリとして構成された第１メモリと、前記第１メモリより高速にデータの書き込みが可能な不揮発性ランダムアクセスメモリとして構成された第２メモリと、を制御するメモリの制御方法であって、
書き込みデータと該書き込みデータの書き込みを要求する書き込み要求信号とが入力されたとき、前記書き込みデータを前記第１メモリに書き込むと所定サイズの記憶領域のうち前記書き込みデータの記憶に利用されるセクタのサイズの割合であるデータ利用率が第１比率以上となるときには前記入力された書き込みデータが前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御し、前記データ利用率が前記第１比率未満となるときには前記入力された書き込みデータが前記第２メモリに記憶されるよう前記第１メモリと前記第２メモリとを制御し、
前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが書き込み頻度が低い低頻度書き込みデータであるときには前記低頻度書き込みデータが前記第２メモリから読み出されて前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御する
メモリの制御方法。
【請求項１３】
請求項１２記載のメモリの制御方法であって、
前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであり且つ前記第１メモリに前記低頻度書き込みデータの記憶に利用されるセクタを含む前記所定サイズのデータを書き込むと該所定サイズのデータにおける前記データ利用率が前記第１比率より低い第２比率以上となるときには、前記データ移動制御を実行する
メモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ，データ記憶装置およびメモリの制御方法に関し、詳しくは、複数のセクタからなるページ単位でデータが読み出され該読み出されたデータのうち書き込みデータに対応するセクタが前記書き込みデータで上書きされた後に前記ページ単位でデータが書き込まれる書き込み動作によりデータが書き込まれる不揮発性メモリとして構成された第１メモリと、前記第１メモリより高速にデータの書き込みが可能な不揮発性ランダムアクセスメモリとして構成された第２メモリと、を制御するメモリコントローラ，こうしたメモリコントローラを備えるデータ記憶装置およびこうした第１メモリと第２メモリとを制御するメモリの制御方法に関する。
【背景技術】
【０００２】
従来、この種のメモリコントローラとしては、キャッシュメモリとして電力の供給が遮断されても記憶しているデータを保持する不揮発性のランダムアクセスメモリでありキャッシュメモリとして機能するＦｅＲＡＭ（Ferroelectric Random Access Memory、強誘電体ランダムアクセスメモリ）またはＨＤＤにＰＣシステムからのデータが記憶されるようＦｅＲＡＭやＨＤＤを制御するものが提案されている（例えば、非特許文献１参照）。このコントローラでは、予期しない電源の遮断に備えてＦｅＲＡＭのデータをＨＤＤに定期的に退避させる必要がないため、ＦｅＲＡＭに記憶させるデータのデータ量を比較的大きくすることができ、キャッシュヒット率の向上を図ることができるとしている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Daisaburo Takashima et al,「A 128Mb ChainFeRAMTM and System Designs for HDD Application and Enhanced HDD Performance」,IEEE Asian Solid-State Circuits Conference, November 16-18, 2009,Taipei,Taiwan
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ホスト装置からのデータを記憶するＳＳＤ（Solid State Drive）として、複数のセクタからなるページ毎に記憶されているデータを一旦読み出して読み出したデータをセクタ単位で書き換えた後にページ単位でデータを書き込む書き込み動作によりデータが書き込まれるＮＡＮＤ型フラッシュメモリなどの不揮発性メモリと、この不揮発性メモリより高速にデータを読み書き可能なＲｅＲＡＭ（Resistance Random Access Memory、抵抗変化型メモリ）などの不揮発性ランダムアクセスメモリと、不揮発性メモリと不揮発性ランダムアクセスメモリとを制御するメモリコントローラとが搭載されたものが提案されている。こうしたＳＳＤでは、不揮発性メモリに対して頻繁に書き込み動作を実行すると不揮発性メモリが劣化するため、不揮発性メモリの劣化を抑制することが重要な課題として認識されている。また、こうしたＳＳＤでは、高速にデータを書き込むことも重要な課題として認識されている。したがって、ＳＳＤでは、不揮発性メモリの劣化を抑制しつつより高速にデータを書き込むことが望ましい。
【０００５】
本発明のメモリコントローラ，データ記憶装置およびメモリの制御方法は、不揮発性メモリの劣化を抑制すると共により高速にデータを書き込むことを主目的とする。
【課題を解決するための手段】
【０００６】
本発明のメモリコントローラ，データ記憶装置およびメモリの制御方法は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明のメモリコントローラは、
複数のセクタからなるページ単位でデータが読み出され該読み出されたデータのうち書き込みデータに対応するセクタが前記書き込みデータで上書きされた後に前記ページ単位でデータが書き込まれる書き込み動作によりデータが書き込まれる不揮発性メモリとして構成された第１メモリと、前記第１メモリより高速にデータの書き込みが可能な不揮発性ランダムアクセスメモリとして構成された第２メモリと、を制御するメモリコントローラであって、
書き込みデータと該書き込みデータの書き込みを要求する書き込み要求信号とが入力されたとき、前記書き込みデータを前記第１メモリに書き込むと所定サイズの記憶領域のうち前記書き込みデータの記憶に利用されるセクタのサイズの割合であるデータ利用率が第１比率以上となるときには前記入力された書き込みデータが前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御し、前記データ利用率が前記第１比率未満となるときには前記入力された書き込みデータが前記第２メモリに記憶されるよう前記第１メモリと前記第２メモリとを制御する書き込み制御部と、
前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが書き込み頻度が低い低頻度書き込みデータであるときには前記低頻度書き込みデータが前記第２メモリから読み出されて前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御するデータ移動制御を実行するデータ移動制御部と、
を備えることを要旨とする。
【０００８】
この本発明のメモリコントローラでは、書き込みデータと該書き込みデータの書き込みを要求する書き込み要求信号とが入力されたとき、書き込みデータを第１メモリに書き込むと所定サイズの記憶領域のうち書き込みデータの記憶に利用されるセクタのサイズの割合であるデータ利用率が第１比率以上となるときには入力された書き込みデータが書き込み動作により第１メモリに書き込まれるよう第１メモリと第２メモリとを制御し、データ利用率が第１比率未満となるときには入力された書き込みデータが第２メモリに記憶されるよう第１メモリと第２メモリとを制御する。第１メモリのデータの書き込み動作では、複数のセクタからなるページ単位でデータが読み出され、読み出されたデータのうち書き込みデータに対応するセクタが書き込みデータで上書きされた後にページ単位でデータが書き込まれるため、データの記憶に利用されていないセクタについても読み出しや書き込みが行なわれる。不揮発性メモリでは書き込み動作を実行すると劣化するため、こうしたデータの記憶に利用されていないセクタについては書き込みが抑制されることが望ましいが、データ利用率が第１比率未満となるときには入力された書き込みデータが第２メモリに記憶されるよう第１メモリと第２メモリとを制御することにより、第１メモリにおけるデータ利用率を第１比率以上にすることができ、データの記憶に利用されていない第１メモリの記憶領域への読み出しや書き込みが抑制される。これにより、第１メモリの劣化を抑制することができる。こうして第２メモリにデータを書き込まれると、第２メモリの空き容量が低下していく。第２メモリは第１メモリより高速にデータの書き込みが可能であるため、第２メモリの空き容量が無くなりデータを第２メモリに書き込みことができなくなるため、データの書き込み速度が低下すると考えられる。また、第２メモリに書き込み頻度が低い低頻度書き込みデータが多いと、さらに、データの書き込み速度が低下すると考えられる。したがって、第２メモリの空き容量が所定容量未満となったとき、第２メモリに記憶されているデータが書き込み頻度が低い低頻度書き込みデータであるときには低頻度書き込みデータが前記第２メモリから読み出されて書き込み動作により第１メモリに書き込まれるよう第１メモリと第２メモリとを制御することにより、第２メモリの空き容量が所定容量未満になることが抑制され、より高速にデータを書き込むことができる。これにより、不揮発性メモリの劣化を抑制すると共により高速にデータを書き込むことができる。ここで、「所定サイズ」には、ページのサイズとして予め定められたサイズや複数ページのサイズ、書き込みデータの論理アドレスに対応するページにおける１セクタのサイズより大きいサイズなどが含まれる。また、「第１メモリ」には、ＮＡＮＤ型フラッシュメモリが含まれ、「第２メモリ」には、抵抗変化型メモリが含まれる。
【０００９】
こうした本発明のメモリコントローラにおいて、データ移動制御部は、前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであり且つ前記第１メモリに前記低頻度書き込みデータの記憶に利用されるセクタを含む前記所定サイズのデータを書き込むと該所定サイズのデータにおける前記データ利用率が前記第１比率より低い第２比率以上となるときには、前記データ移動制御を実行するものとすることもできる。こうすれば、データ利用率が第２比率未満のデータが第１メモリに記憶されることを抑制することができ、第１メモリの劣化を抑制することができる。
【００１０】
第１メモリに低頻度書き込みデータの記憶に利用されるセクタを含む前記所定サイズのデータを書き込むと所定サイズのデータにおけるデータ利用率が第１比率より低い第２比率以上となるときにデータ移動制御を実行する態様の本発明のメモリコントローラにおいて、データが含まれるページを示すページアドレスと該ページ内のデータの記憶に利用されているセクタを示すセクタアドレスとからなる論理アドレスを用いて前記第１メモリおよび前記第２メモリを管理するアドレス管理部と、前記データ利用率が前記第１比率以上となったときの書き込みデータの論理アドレスを記憶する高利用率アドレス情報記憶部と、を備え、前記データ移動制御部は、前記入力された書き込みデータの論理アドレスが前記高利用率アドレス情報記憶部に所定個数未満記憶されているときに前記入力された書き込みデータが低頻度書き込みデータであると判定するものとすることもできる。
【００１１】
また、第１メモリに低頻度書き込みデータの記憶に利用されるセクタを含む前記所定サイズのデータを書き込むと所定サイズのデータにおけるデータ利用率が第１比率より低い第２比率以上となるときにデータ移動制御を実行する態様の本発明のメモリコントローラにおいて、前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであり且つ前記低頻度書き込みデータを前記第１メモリに書き込むと前記データ利用率が前記第２比率以上となるときには、前記低頻度書き込みデータを含むページのページアドレスを記憶するページアドレス記憶部を備え、前記データ移動制御部は、前記第２メモリの空き容量が前記所定容量未満となったとき、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであり且つ前記低頻度書き込みデータを前記第１メモリに書き込むと前記データ利用率が前記第２比率以上となり且つ前記ページアドレス記憶部に記憶されているページアドレスの数が所定個数以上であるときに、前記ページアドレス記憶部に記憶されているページアドレスに対応する第２メモリのデータについて前記データ移動制御を実行するものとすることもできる。こうすれば、頻繁に第２メモリに記憶されているデータが読み出されて第１メモリに書き込まれることを抑制することができる。この場合において、前記データ移動制御部は、前記第２メモリの空き容量が前記所定容量未満となって、前記所定個数より多い複数のページについて、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであるか否かと前記低頻度書き込みデータを前記第１メモリに書き込むと前記データ利用率が前記第２比率以上となるか否かを判定したとき、前記ページアドレス記憶部に記憶されているページアドレスの数が前記所定個数未満であるときには前記第２比率を減少させ、前記ページアドレス記憶部に記憶されているページアドレスの数が前記所定個数であるときには前記第２比率の値を変更せずに維持し、前記ページアドレス記憶部に記憶されているページアドレスの数が前記所定個数を超えたときには前記第２比率を増加させるものとすることもできる。
【００１２】
さらに、第１メモリに低頻度書き込みデータの記憶に利用されるセクタを含む前記所定サイズのデータを書き込むと所定サイズのデータにおけるデータ利用率が第１比率より低い第２比率以上となるときにデータ移動制御を実行する態様の本発明のメモリコントローラにおいて、前記書き込み制御部および前記データ移動制御部は、前記各セクタがデータを記憶しているか否かの情報である利用セクタ情報と入力された書き込みデータを記憶する際に利用するセクタとに基づいて前記データ利用率を演算するものとすることもできる。
【００１３】
また、本発明のメモリコントローラにおいて、前記制御部は、前記入力された書き込みデータを前記第２メモリに記憶させるとき、前記入力された書き込みデータの論理アドレスに対応するデータが既に第１メモリの記憶領域に記憶されているときには、前記第１メモリに記憶されているデータをページ単位で読み出して該読み出したデータのセクタのうち書き込みデータで書き込む対象となるセクタを書き換えた後にページ単位で第２メモリに記憶させるものとすることもできる。
【００１４】
さらに、本発明のメモリコントローラにおいて、前記所定サイズの記憶領域は、前記書き込みデータに利用されるセクタを含むページが記憶される領域であるものとすることもできる。
【００１５】
本発明のデータ記憶装置は、上述したいずれかの態様の本発明のメモリコントローラ、即ち、基本的には、複数のセクタからなるページ単位でデータが読み出され該読み出されたデータのうち書き込みデータに対応するセクタが前記書き込みデータで上書きされた後に前記ページ単位でデータが書き込まれる書き込み動作によりデータが書き込まれる不揮発性メモリとして構成された第１メモリと、前記第１メモリより高速にデータの書き込みが可能な不揮発性ランダムアクセスメモリとして構成された第２メモリと、を制御するメモリコントローラであって、書き込みデータと該書き込みデータの書き込みを要求する書き込み要求信号とが入力されたとき、前記書き込みデータを前記第１メモリに書き込むと所定サイズの記憶領域のうち前記書き込みデータの記憶に利用されるセクタのサイズの割合であるデータ利用率が第１比率以上となるときには前記入力された書き込みデータが前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御し、前記データ利用率が前記第１比率未満となるときには前記入力された書き込みデータが前記第２メモリに記憶されるよう前記第１メモリと前記第２メモリとを制御する書き込み制御部と、前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが書き込み頻度が低い低頻度書き込みデータであるときには前記低頻度書き込みデータが前記第２メモリから読み出されて前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御するデータ移動制御を実行するデータ移動制御部と、を備えるメモリコントローラと、
前記第１メモリと、
前記第２メモリと、
を備えることを要旨とする。
【００１６】
この本発明のデータ記憶装置では、上述したいずれかの態様の本発明のメモリコントローラを備えているから、本発明のメモリコントローラが奏する効果、例えば、不揮発性メモリの劣化を抑制すると共により高速にデータを書き込むことができる効果などと同様の効果を奏する。
【００１７】
本発明のメモリの制御方法は、
複数のセクタからなるページ単位でデータが読み出され該読み出されたデータのうち書き込みデータに対応するセクタが前記書き込みデータで上書きされた後に前記ページ単位でデータが書き込まれる書き込み動作によりデータが書き込まれる不揮発性メモリとして構成された第１メモリと、前記第１メモリより高速にデータの書き込みが可能な不揮発性ランダムアクセスメモリとして構成された第２メモリと、を制御するメモリの制御方法であって、
書き込みデータと該書き込みデータの書き込みを要求する書き込み要求信号とが入力されたとき、前記書き込みデータを前記第１メモリに書き込むと所定サイズの記憶領域のうち前記書き込みデータの記憶に利用されるセクタのサイズの割合であるデータ利用率が第１比率以上となるときには前記入力された書き込みデータが前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御し、前記データ利用率が前記第１比率未満となるときには前記入力された書き込みデータが前記第２メモリに記憶されるよう前記第１メモリと前記第２メモリとを制御し、
前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが書き込み頻度が低い低頻度書き込みデータであるときには前記低頻度書き込みデータが前記第２メモリから読み出されて前記書き込み動作により前記第１メモリに書き込まれるよう前記第１メモリと前記第２メモリとを制御する
ことを要旨とする。
【００１８】
この本発明のメモリの制御方法では、書き込みデータと該書き込みデータの書き込みを要求する書き込み要求信号とが入力されたとき、書き込みデータを第１メモリに書き込むと所定サイズの記憶領域のうち書き込みデータの記憶に利用されるセクタのサイズの割合であるデータ利用率が第１比率以上となるときには入力された書き込みデータが書き込み動作により第１メモリに書き込まれるよう第１メモリと第２メモリとを制御し、データ利用率が第１比率未満となるときには入力された書き込みデータが第２メモリに記憶されるよう第１メモリと第２メモリとを制御する。第１メモリのデータの書き込み動作では、複数のセクタからなるページ単位でデータが読み出され、読み出されたデータのうち書き込みデータに対応するセクタが書き込みデータで上書きされた後にページ単位でデータが書き込まれるため、データの記憶に利用されていないセクタについても読み出しや書き込みが行なわれる。不揮発性メモリでは書き込み動作を実行すると劣化するため、こうしたデータの記憶に利用されていないセクタについては書き込みが抑制されることが望ましいが、データ利用率が第１比率未満となるときには入力された書き込みデータが第２メモリに記憶されるよう第１メモリと第２メモリとを制御することにより、第１メモリにおけるデータ利用率を第１比率以上にすることができ、データの記憶に利用されていない第１メモリの記憶領域への読み出しや書き込みが抑制される。これにより、第１メモリの劣化を抑制することができる。こうして第２メモリにデータを書き込まれると、第２メモリの空き容量が低下していく。第２メモリは第１メモリより高速にデータの書き込みが可能であるため、第２メモリの空き容量が無くなりデータを第２メモリに書き込みことができなくなるため、データの書き込み速度が低下すると考えられる。また、第２メモリに書き込み頻度が低い低頻度書き込みデータが多いと、さらに、データの書き込み速度が低下すると考えられる。したがって、第２メモリの空き容量が所定容量未満となったとき、第２メモリに記憶されているデータが書き込み頻度が低い低頻度書き込みデータであるときには低頻度書き込みデータが前記第２メモリから読み出されて書き込み動作により第１メモリに書き込まれるよう第１メモリと第２メモリとを制御することにより、第２メモリの空き容量が所定容量未満になることが抑制され、より高速にデータを書き込むことができる。これにより、不揮発性メモリの劣化を抑制すると共により高速にデータを書き込むことができる。ここで、「所定サイズ」には、ページのサイズとして予め定められたサイズや複数ページのサイズ、書き込みデータの論理アドレスに対応するページにおける１セクタのサイズより大きいサイズなどが含まれる。また、「第１メモリ」には、ＮＡＮＤ型フラッシュメモリが含まれ、「第２メモリ」には、抵抗変化型メモリが含まれる。
【００１９】
こうした本発明のメモリ制御方法において、前記第２メモリの空き容量が所定容量未満となったとき、前記第２メモリに記憶されているデータが前記低頻度書き込みデータであり且つ前記第１メモリに前記低頻度書き込みデータの記憶に利用されるセクタを含む前記所定サイズのデータを書き込むと該所定サイズのデータにおける前記データ利用率が前記第１比率より低い第２比率以上となるときには、前記データ移動制御を実行するものとすることもできる。こうすれば、データ利用率が第２比率未満のデータが第１メモリに記憶されることを抑制することができ、第１メモリの劣化を抑制することができる。
【図面の簡単な説明】
【００２０】
【図１】ホスト装置１０からのデータを記憶する本発明の実施例としてのＳＳＤ２０の構成の概略を示す説明図である。
【図２】抵抗変化素子４６の構成の一例を示す説明図である。
【図３】メモリコントローラ３０の制御処理回路３２により実行される書き込み要求時処理ルーチンの一例を示すフローチャートである。
【図４】メモリコントローラ３０の制御処理回路３２により実行される書き込み処理ルーチンの一例を示すフローチャートである。
【図５】利用セクタフラグテーブルＵＳＦＴとページ利用率Ｒの一例を示す説明図である。
【図６】利用セクタフラグテーブルＵＳＦＴの生成の様子を示す説明図である。
【図７】他の利用セクタフラグテーブルＵＳＦＴの生成の様子を示す説明図である。
【図８】ページ利用率Ｒが閾値Ｒｔｈ２を超えているときに利用セクタフラグテーブルＵＳＦＴのリセット動作を実行しない場合に生成される利用セクタフラグテーブルＵＳＦＴの一例を示す説明図である。
【図９】ページ利用率Ｒが閾値Ｒｔｈ２を超えているときに利用セクタフラグテーブルＵＳＦＴのリセット動作を実行した場合に生成される利用セクタフラグテーブルＵＳＦＴの一例を示す説明図である。
【図１０】メモリコントローラ３０の制御処理回路３２により実行されるデータ移動制御処理ルーチンの一例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【００２２】
図１は、パーソナルコンピュータなどのホスト装置１０からのデータを記憶する本発明の実施例としてのＳＳＤ（Solid State Drive）２０の構成の概略を示す説明図である。ＳＳＤ２０は、各種アプリケーションプログラムや各種データを記憶する大容量のデータ記憶装置として構成されており、ＮＡＮＤ型フラッシュメモリとして構成されたフラッシュメモリ２２と、抵抗変化ランダムアクセスメモリ（Resistance Random Access Memory ，ＲｅＲＡＭ）として構成されたＲｅＲＡＭ２４と、フラッシュメモリ２２とＲｅＲＡＭ２４とを制御するメモリコントローラ３０と、から構成されている。
【００２３】
フラッシュメモリ２２は、フローティングゲートへの電子注入やフローティングゲートからの電子の引き抜きにより閾値電圧が変化するフラッシュメモリセルを複数有するフラッシュメモリセルアレイ（図示せず）を備えるＮＡＮＤ型フラッシュメモリとして構成されており、フラッシュメモリセルアレイの他にロウデコーダ，カラムデコーダ，センスアンプなど（いずれも図示せず）を備える。フラッシュメモリ２２では、８個のセクタ（実施例では、５１２バイト）からなるページ単位（実施例では、４Ｋバイト）でデータを書き込んだり読み出したりして、１２８ページからなるブロック単位（実施例では、５１２ＫＢバイト）で記憶しているデータを消去する。こうしたフラッシュメモリ２２では、データの書き込みは、フラッシュメモリ２２に記憶されているデータを読み出して、読み出したデータのうち書き込みデータに対応するセクタのデータをセクタ単位で上書きしてデータに書き換えた後、ページ単位で書き換えたデータをフラッシュメモリ２２に書き込む書き込み動作により行なわれる。実施例のフラッシュメモリ２２では、フラッシュメモリ２２にデータを書き込む際の書き込み速度およびフラッシュメモリ２２からデータを読み出す際の読み出し速度が２１２ＭＢ／ｓであるものとした。
【００２４】
ＲｅＲＡＭ２４は、チタン（Ｔｉ）や白金（Ｐｔ）などの金属から形成された上部電極４０とチタン（Ｔｉ）や白金（Ｐｔ）などの金属から形成された下部電極４２とで金属酸化物４４を挟み込んで形成された図２に例示する抵抗変化素子４６と、抵抗変化素子４６に接続されたＭＯＳトランジスタ（図示せず）とから構成されるＲｅＲＡＭセルを複数有するＲｅＲＡＭセルアレイ（図示せず）を備えるＲｅＲＡＭとして構成されており、ＲｅＲＡＭセルアレイの他にロウデコーダ，カラムデコーダ，センスアンプなど（いずれも図示せず）を備える。ＲｅＲＡＭセルは、上部電極４０に印加される電圧Ｖ１が下部電極４２に印加される電圧Ｖ２より高いときにセット（低抵抗化）され、電圧Ｖ１が電圧Ｖ２より低いときにリセット（高抵抗化）されるバイポーラ動作を行なう素子として形成されている。こうしたバイポーラ動作を行なうＲｅＲＡＭセルは、一般に、動作速度が比較的速く消費電力が少ない素子であるため、ＲｅＲＡＭ２４は、動作速度が比較的早く消費電力が少ないメモリとして構成されている。なお、金属酸化物４４としては、チタン酸化物（ＴｉＯｘ）やニッケル酸化物（ＮｉＯｘ），銅酸化物（ＣｕＯｘ），ハフニウム酸化物（ＨｆＯｘ）などの金属酸化物またはこれらの金属酸化物を複数積層された積層構造とするのが望ましいと考えられる。こうしたＲｅＲＡＭ２４では、データの書き込みは、書き込みデータに対応するセクタにデータを書き込むことにより行なわれる。ＲｅＲＡＭ２４は、実施例では、データを書き込む際の書き込み速度およびデータを読む出す際の読み出し速度がフラッシュメモリ２２より高速であり、書き込み速度および読み出し速度が１．２５ＧＢ／ｓであるものとした。
【００２５】
メモリコントローラ３０は、複数の論理素子を有する論理回路として構成された各種制御や演算処理を実行する制御処理回路３２を備えている。制御処理回路３２には、ホスト装置１０から各種制御信号やデータなどが入力されており、基本的には、制御処理回路３２は入力された制御信号に基づいてフラッシュメモリ２２やＲｅＲＡＭ２４にデータが記憶されるようフラッシュメモリ２２やＲｅＲＡＭ２４を制御したり、フラッシュメモリ２２やＲｅＲＡＭ２４からデータが読み出されるようフラッシュメモリ２２やＲｅＲＡＭ２４を制御したり、読み出したデータをホスト装置１０に出力したりする。制御処理回路３２では、こうしたデータの読み出しや書き込みを行なう際にデータを記憶するページを仮想的に示す論理ページアドレスとデータを記憶するセクタを仮想的に示す論理セクタアドレスとからなる論理アドレスと、実際のフラッシュメモリ２２やＲｅＲＡＭ２４の場所を示す物理アドレスとの変換や、ＲｅＲＡＭ２４の空き容量Ｓｅｍｐ２の監視などを行なう。メモリコントローラ３０は、ホスト装置１０と比較的高速に（例えば、１．２５ＧＢ／ｓ程度で）各種制御信号やデータをやりとりするものとした。
【００２６】
次に、こうして構成されたＳＳＤ２０の動作、特に、ホスト装置１０から入力されたデータをフラッシュメモリ２２やＲｅＲＡＭ２４に記憶させる際の動作について説明する。図３は、メモリコントローラ３０の制御処理回路３２により実行される書き込み要求時処理ルーチンの一例を示すフローチャートである。このルーチンは、ホスト装置１０からのデータをフラッシュメモリ２２またはＲｅＲＡＭ２４に書き込むことを要求する書き込み要求信号と書き込みデータと書き込みデータを記憶する場所を示す論理ページアドレスと論理セクタアドレスとからなる論理アドレスが入力されたときに実行される。
【００２７】
書き込み要求信号が入力されると、メモリコントローラ３０の制御処理回路３２は、後述するデータ移動処理（ステップＳ１００）とデータ書き込み処理（ステップＳ３００）とを実行する。説明の便宜上、最初にデータ書き込み処理について説明し、次にデータ移動処理について説明する。
【００２８】
図４は、メモリコントローラ３０の制御処理回路３２により実行される書き込み処理ルーチンの一例を示すフローチャートである。本ルーチンが実行されると、メモリコントローラ３０の制御処理回路３２は、利用セクタフラグテーブルＵＳＦＴを作成し（ステップＳ３１０）、利用セクタフラグテーブルＵＳＦＴに基づいて論理ページアドレス毎にデータの記憶に利用されているセクタの割合であるページ利用率Ｒを演算する（ステップＳ３２０）。
【００２９】
図５は、利用セクタフラグテーブルＵＳＦＴとページ利用率Ｒの一例を示す説明図である。利用セクタフラグテーブルＵＳＦＴは、セクタの数だけフラグが用意されており、データの記憶に利用されていないセクタについてはフラグに値０が設定され、データの記憶に利用されているセクタについてはフラグに値１が設定されている。今、１ページは８個のセクタからなるため、１ページ毎に８個のフラグが設定される。ページ利用率Ｒは、１ページに含まれる値１のフラグの個数を１ページのフラグの個数である値８で除することにより演算されるものとした。したがって、１ページに含まれる値１のフラグの個数が３個であるとき、すなわち、１ページのうち３セクタがデータの記憶に利用されているときのページ利用率Ｒは値０．３７５（＝３／８）になり，１ページに含まれる値１のフラグの個数が６個であるとき、すなわち、１ページのうち６セクタがデータの記憶に利用されているときのページ利用率Ｒは値０．７５（＝６／８）になる。
【００３０】
利用セクタフラグテーブルＵＳＦＴの生成（ステップＳ３１０）は、書き込みデータの記憶に利用されているセクタについてはフラグに値１が設定され他のフラグが値１に設定された書き込みデータセクタフラグテーブルＷＳＦＴと、既に記憶されている利用セクタフラグテーブルＵＳＦＴとの論理和（ＯＲ）を演算することにより行なわれる。例えば、図６に示すように、既に記憶されている利用セクタフラグテーブルＵＳＦＴが”０１１１１１００”で書き込みデータセクタフラグテーブルＷＳＦＴが”１１００００００”のときには”１１１１１１００”の利用セクタフラグテーブルＵＳＦＴが生成される。なお、この場合のページ利用率Ｒは値０．７５となる。
【００３１】
こうしてページ利用率Ｒを演算したら、ページ利用率Ｒが閾値Ｒｔｈ１以上であるか否かを判定すると共に（ステップＳ３３０）、書き込みデータが書き換え頻度が比較的高い高頻度書換データであるか否かを判定する（ステップＳ３４０）。ここで、閾値Ｒｔｈ１は、ＲｅＲＡＭ２４に記憶されているデータのサイズが大きくなるほど小さくなるよう設定されるものとした。また、書き込みデータが高頻度書換データであるか否かの判定は、ページ利用率Ｒが閾値Ｒｔｈ１以上となったとき直近の論理アドレスを２０００個記憶テーブルに記憶しておき、書き込みデータの論理アドレスが記憶テーブル内に所定個数（例えば、１００個）以上あれば書き込みデータが高頻度書換データであると判断するものとした。
【００３２】
ページ利用率Ｒが閾値Ｒｔｈ１以上であって、書き込みデータが高頻度書換データでないときには（ステップＳ３３０，Ｓ３４０）、上述した書き込み動作により書き込みデータがフラッシュメモリ２２に記憶されるようフラッシュメモリ２２を制御する（ステップＳ３５０）。こうした処理により、フラッシュメモリ２２にデータを記憶させることができる。
【００３３】
図６に例示するように、ページ利用率Ｒが閾値Ｒｔｈ１未満であるとき、すなわち、ページ内に利用されていないセクタが比較的多くあるときや（ステップＳ３３０）、ページ利用率Ｒが閾値Ｒｔｈ１以上であっても書き込みデータが高頻度書換データであるときには（ステップＳ３４０）、フラッシュメモリ２２にデータを記憶させるとフラッシュメモリ２２の劣化を促進させると判断して、ＲｅＲＡＭ２４にデータを書き込む書き込み動作を実行する（ステップＳ３６０〜Ｓ３８０）。ページ内に利用されていないセクタが比較的多くあるときにフラッシュメモリ２２にデータを記憶させるとフラッシュメモリ２２の劣化を促進させると判断するのは、フラッシュメモリ２２にデータを書き込もうとすると、本来ならデータの記憶に利用する必要ない記憶領域に書き込み動作が実行されてフラッシュメモリ２２が劣化してしまう場合があるからである。ここで、閾値Ｒｔｈ１をＲｅＲＡＭ２４に記憶されているデータのサイズが大きくなるほど小さくなるよう設定することにより、ＲｅＲＡＭ２４の記憶領域に空き領域が少なくなったときにＲｅＲＡＭ２４に書き込みデータが記憶されることを抑制することができ、比較的小さい記憶容量のＲｅＲＡＭ２４を用いたときでもより適正にＲｅＲＡＭ２４にデータを記憶させることができる。  
【００３４】
ＲｅＲＡＭ２４にデータを書き込む書き込み動作は、まず、書き込みデータの論理アドレスに対応するデータがフラッシュメモリ２２に記憶されているか否かを調べる（ステップＳ３６０）。そして、フラッシュメモリ２２にデータが記憶されているときには、書き込みデータの論理アドレスに対応するアドレスのデータをフラッシュメモリ２２からページ単位で読み出して読み出したデータのうち書き込みデータに対応するデータをセクタ単位で書き込みデータで上書きした結合データを作成し（ステップＳ３７０）、こうした結合データがＲｅＲＡＭ２４に記憶されるようＲｅＲＡＭ２４を制御し（ステップＳ３８０）、フラッシュメモリ２２にデータが記憶されていないときには書き込みデータがＲｅＲＡＭ２４に記憶されるようＲｅＲＡＭ２４を制御する（ステップＳ３８０）。このように、ページ利用率Ｒが閾値Ｒｔｈ１未満であるときや、ページ利用率Ｒが閾値Ｒｔｈ１以上であっても書き込みデータが高頻度書換データであるときには、書き込みデータをＲｅＲＡＭ２４に記憶させることにより、フラッシュメモリ２２の劣化を抑制することができる。また、ＲｅＲＡＭ２４の書き込み速度がフラッシュメモリ２２の書き込み速度より高速であるから、こうしてＲｅＲＡＭ２４に書き込みデータを記憶させることにより書き込み動作をより高速に実行することができる。
【００３５】
こうしてフラッシュメモリ２２またはＲｅＲＡＭ２４に書き込みデータを記憶したら、続いて、ページ利用率Ｒが閾値Ｒｔｈ１より高い値として予め定められた閾値Ｒｔｈ２（例えば、０．８５）を超えているか否かを調べる（ステップＳ３９０）。ページ利用率Ｒが閾値Ｒｔｈ２より高いときには利用セクタフラグテーブルＵＳＦＴのフラグを全て値０に設定するフラグリセット動作を実行して（ステップＳ４００）、ページ利用率Ｒが閾値Ｒｔｈ２以上のときには利用セクタフラグテーブルＵＳＦＴを変更することなく、本ルーチンを終了する。こうしたフラグリセット動作を行なうのは以下の理由に基づく。
【００３６】
例えば、図８に示すように、既に記憶されている利用セクタフラグテーブルＵＳＦＴが”０１１１１１１１”（ページ利用率Ｒは値０．８７５）で書き込みデータセクタフラグテーブルＷＳＦＴが”１１００００００”のとき、”１１１１１１１１”の利用セクタフラグテーブルＵＳＦＴが生成される。このようにページ利用率Ｒが高くなると、データが高頻度書換データでない場合にはこのページのデータは書き込み動作により常にフラッシュメモリ２２に記憶され、フラッシュメモリ２２の劣化が促進される場合がある。ページ利用率Ｒが閾値Ｒｔｈ２より高いときには利用セクタフラグテーブルＵＳＦＴのフラグを全て値０に設定するフラグリセット動作を実行することにより（ステップＳ４００）、図９に例示するように、次にステップＳ３１０の処理が実行されているときに、既に記憶されている利用セクタフラグテーブルＵＳＦＴが”００００００００”（ページ利用率Ｒは値０）となり、書き込みデータセクタフラグテーブルＷＳＦＴが”１１００００００”のときには”１１００００００”の利用セクタフラグテーブルＵＳＦＴが生成され、利用セクタフラグテーブルＵＳＦＴは、ページ利用率Ｒが閾値Ｒｔｈ２より高くなったとき以降にデータの記憶のために利用されているセクタの情報を示すものになる。このときのページ利用率Ｒは値０．２５であるから、ＲｅＲＡＭ２４に書き込まれることになる（ステップＳ３３０，Ｓ３６０〜Ｓ３８０）。こうした処理により、フラッシュメモリ２２へのデータの書き込み動作が抑制されて、フラッシュメモリ２２の劣化を抑制することができる。以上、図３のデータ書き込み処理（ステップＳ３００）について説明した。
【００３７】
こうしてデータ書き込み処理を実行すると、ＲｅＲＡＭ２４にデータ利用率Ｒが閾値Ｒｔｈ１未満の比較的書き込み頻度が低い低頻度書き込みデータが書き込まれて、こうした低頻度書き込みデータでＲｅＲＡＭ２４の空き容量が低下していく場合がある。ＲｅＲＡＭ２４はフラッシュメモリ２２より高速にデータの書き込みが可能であるため、ＲｅＲＡＭ２４の空き容量が無くなると、ＳＳＤ２０の全体でみれば、データの書き込み速度が低下すると考えられる。したがって、こうした不都合を回避するために、図３に例示するように、データ書き込み制御処理（ステップＳ３００）の実行に先立ってデータ移動処理（ステップＳ１００）が実行される。続いて、データ移動処理ルーチンについて説明する。
【００３８】
図１０は、メモリコントローラ３０の制御処理回路３２により実行されるデータ移動処理ルーチンの一例を示すフローチャートである。本ルーチンが実行されると、メモリコントローラ３０の制御処理回路３２は、ＲｅＲＡＭ２４の空き容量Ｓｅｍｐ２を調べる処理を実行する（ステップＳ１１０）。空き容量Ｓｅｍｐ２が閾値Ｓｔｈ（例えば、０．２など）以上であるときには、ＲｅＲＡＭ２４の空き容量が充分であるため、本ルーチンを終了して、図３のデータ書き込み処理（ステップＳ３００）を実行する。
【００３９】
空き容量Ｓｅｍｐ２が閾値Ｓｔｈ未満であるときには（ステップＳ１１０）、ＲｅＲＡＭ２４の空き容量が充分ではないと判断して、続いて、ＲｅＲＡＭ２４のセクタに対して記憶されているデータが書き換え頻度が比較的低い低頻度書換データであるか否かを判定したり（ステップＳ１２０）、ページ利用率Ｒが閾値Ｒｔｈ１より小さい閾値Ｒｔｈ３以上であるか否かを判定する（ステップＳ１３０）。ここで、データが低頻度書換データあるか否か（ステップＳ１２０）は、図４のステップＳ３４０の処理で用いた記憶テーブルにステップＳ１２０の判定対象のデータを示す論理セクタアドレスを含む論理ページアドレスが記憶されていない場合に、データが低頻度書換データであると判定するものとした。
【００４０】
ＲｅＲＡＭ２４のデータが低頻度書換データであり且つ対象のデータをフラッシュメモリ２２に記憶させたときのページ利用率Ｒが閾値Ｒｔｈ３以上であるときには（ステップＳ１２０，１３０）、データが低頻度書換データであるためデータをフラッシュメモリ２２に記憶させてもフラッシュメモリ２２の劣化がさほど進行せず、且つ、ページ利用率Ｒが閾値Ｒｔｈ３以上であるためフラッシュメモリ２２の劣化をさほど進行させることがないと判断して、判定の対象となっているデータをフラッシュメモリ２２に記憶させたときの論理ページアドレスをフラッシュメモリ２２へ移動させるべきデータのアドレスのリストである移動リストに記憶させる（ステップＳ１４０）。
【００４１】
ＲｅＲＡＭ２４のデータが低頻度書換データでなかったり（ステップＳ１２０）、対象のデータをフラッシュメモリ２２に記憶させたときのページ利用率Ｒが閾値Ｒｔｈ３未満であるときには（ステップＳ１３０）、移動リストに論理ページアドレスを記憶させることなく、ＲｅＲＡＭ２４の全てのセクタのデータに対してステップＳ１２０，Ｓ１３０の処理が終了するまで、ＲｅＲＡＭ２４の他のセクタのデータに対して順次ステップＳ１２０，Ｓ１３０の処理を実行する（ステップＳ１７０）。こうした処理より、フラッシュメモリ２２に移動してもフラッシュメモリ２２の劣化がさほど進行しないデータの論理ページアドレスのみを移動リストに記憶させることができる。
【００４２】
判定の対象となっているデータをフラッシュメモリ２２に記憶させたときの論理ページアドレスを移動リストに記憶させたときには（ステップＳ１４０）、続いて、移動リストに記憶されている論理ページアドレスの個数が閾値Ｎ（Ｎは正の整数、例えば１５００個）となったか否かを調べる（ステップＳ１５０）。移動リストに記憶されている論理ページアドレスの個数が閾値Ｎに至っていなければ、ＲｅＲＡＭ２４の全てのセクタのデータに対してステップＳ１２０〜Ｓ１５０の処理が終了するまで、ＲｅＲＡＭ２４の他のセクタのデータに対してステップＳ１２０〜Ｓ１５０の処理を実行し（ステップＳ１７０）、移動リストに記憶されている論理ページアドレスの個数が閾値Ｎに至ったときには、移動リストに記憶されている論理ページアドレスに含まれる論理セクタのデータをＲｅＲＡＭ２４から読み出してフラッシュメモリ１１に書き込む（ステップＳ１６０）。こうした処理により、移動リストに記憶されている論理ページアドレスの個数が閾値Ｎに至ったときには、ＲｅＲＡＭ２４からフラッシュメモリ１１へデータを移動させることができる。
【００４３】
移動リストに記憶されている論理ページアドレスの個数が閾値Ｎに至ったときにＲｅＲＡＭ２４からフラッシュメモリ１１へデータを移動させる理由は以下の通りである。ＲｅＲＡＭ２４は、フラッシュメモリ２２より高速にデータの書き込みが可能であるため、ＲｅＲＡＭ２４の空き容量が低下してデータをＲｅＲＡＭ２４に書き込みことができなくなると、ＳＳＤ２０全体でデータの書き込み速度が低下すると考えられる。また、ＲｅＲＡＭ２４に書き込み頻度が低い低頻度書き込みデータが多いと、さらに、データの書き込み速度が低下すると考えられる。上述した処理により、ＲｅＲＡＭ２４に記憶されているデータのうち書換頻度が低いデータをフラッシュメモリ２２に移動させることにより、ＲｅＲＡＭ２４の空き容量が増え、且つ、ＲｅＲＡＭ２４に記憶されている低頻度書き込みデータを少なくすることができるから、より高速にＳＳＤ２０にデータを書き込むことができる。また、ＲｅＲＡＭ２４のデータが低頻度書換データであり且つ対象のデータをフラッシュメモリ２２に記憶させたときのページ利用率Ｒが閾値Ｒｔｈ３以上であるときでも、移動リストに記憶されている論理ページアドレスの個数が閾値ＮとなるまではＲｅＲＡＭ２４に記憶しているデータをフラッシュメモリ１１に書き込まないから、ＲｅＲＡＭ２４からフラッシュメモリ２２への頻繁なデータを移動を抑制して、ＳＳＤ２０の書き込み速度の低下を抑制することができる。
【００４４】
ＲｅＲＡＭ２４の全てのセクタのデータに対してステップＳ１２０〜Ｓ１５０の処理が終了したときには（ステップＳ１５０，Ｓ１７０）、移動リストに記憶されている論理ページアドレスの個数が閾値Ｎに至っていなくても、移動リストに論理ページアドレスが記憶されていれば、記憶されている論理ページアドレスに含まれる論理セクタのデータをＲｅＲＡＭ２４から読み出してフラッシュメモリ１１に書き込む（ステップＳ１６０）。こうした処理により、移動リストに記憶されている論理ページアドレスの個数が閾値Ｎに至らない場合でもＲｅＲＡＭ２４からフラッシュメモリ１１へデータを移動させることができる。
【００４５】
こうしてＲｅＲＡＭ２４からフラッシュメモリ１１へデータを移動させたら、続いて、目標ページ数（例えば、５００ページ。ステップＳ１５０の処理の移動リストにおける論理ページアドレスの個数の閾値Ｎに対応するページ数）のデータをＲｅＲＡＭ２４からフラッシュメモリ２２に移動したか否かを判定し（ステップＳ１８０）、目標ページ数のデータが移動されていないときには、閾値Ｒｔｈ３が適正な値より高くなっていると判断して閾値Ｒｔｈ３から値０．１を減じた値を閾値Ｒｔｈ３に設定し（ステップＳ１９０）、目標ページ数のデータが移動されていたときには、閾値Ｒｔｈ３が適正な値であるかまたは閾値Ｒｔｈ３が適正な値より低い値となっていると判断して、閾値Ｒｔｈ３に値０．１を加えた値と閾値Ｒｔｈ１のうち小さいほうの値を閾値Ｒｔｈ３に設定して（ステップＳ２００）、本ルーチンを終了する。こうした処理により、閾値Ｒｔｈ３をより適正に設定することができ、次に本ルーチンを実行する際にはより適正な閾値Ｒｔｈ３を用いてステップＳ１３０の処理を実行することができる。
【００４６】
以上説明した実施例のＳＳＤ２０によれば、ページ利用率Ｒが閾値Ｒｔｈ１未満であるときやページ利用率Ｒが閾値Ｒｔｈ１以上であっても書き込みデータが高頻度書換データであるときに、書き込みデータをＲｅＲＡＭ２４に記憶させることにより、フラッシュメモリ２２の劣化を抑制することができる。また、ＲｅＲＡＭ２４の書き込み速度がフラッシュメモリ２２の書き込み速度より高速であるから、こうしてＲｅＲＡＭ２４に書き込みデータを記憶させることにより書き込み動作をより高速にすることができる。また、ＲｅＲＡＭ２４の空き容量Ｓｅｍｐ２が閾値Ｓｔｈ未満であるとき、ＲｅＲＡＭ２４のデータが低頻度書換データであり且つ対象のデータをフラッシュメモリ２２に記憶させたときのページ利用率Ｒが閾値Ｒｔｈ３以上であるときには、判定の対象となっているデータをフラッシュメモリ２２に記憶させたときの論理ページアドレスを移動リストに記憶させ、移動リストに記憶されている論理ページアドレスの個数が閾値Ｎとなったときには、移動リストに記憶されている論理ページアドレスに含まれる論理セクタのデータをＲｅＲＡＭ２４から読み出してフラッシュメモリ１１に書き込む。こうした処理により、より高速にＳＳＤ２０にデータを書き込むことができる。さらに、移動リストに記憶されている論理ページアドレスの個数が閾値ＮとなるまでＲｅＲＡＭ２４に記憶しているデータをフラッシュメモリ２２に書き込まないから、ＲｅＲＡＭ２４からフラッシュメモリ２２への頻繁なデータを移動を抑制して、ＳＳＤ２０の性能の低下を抑制することができる。
【００４７】
実施例のＳＳＤ２０では、移動リストに記憶されている論理ページアドレスの個数が閾値ＮとなるまでＲｅＲＡＭ２４に記憶しているデータをフラッシュメモリ２２に書き込まないものとしたが（ステップＳ１４０〜Ｓ１６０）、ページアドレスを移動リストに記憶させることなく、ＲｅＲＡＭ２４のデータが低頻度書換データであり且つ対象のデータをフラッシュメモリ２２に記憶させたときのページ利用率Ｒが閾値Ｒｔｈ３以上であるときには、常に、対象のデータをフラッシュメモリ２２に記憶させるものとしてもよい。
【００４８】
実施例のＳＳＤ２０では、ステップＳ１８０〜ステップＳ２００の処理で、データ移動があるか否かに応じて閾値Ｒｔｈ３を設定するものとしたが、こうした処理を実行せずに、閾値Ｒｔｈ３を変更されない定数であるものしてもよい。
【００４９】
実施例のＳＳＤ２０では、ＲｅＲＡＭ２４のデータが低頻度書換データであり且つ対象のデータをフラッシュメモリ２２に記憶させたときのページ利用率Ｒが閾値Ｒｔｈ３以上であるときにステップＳ１４０以降の処理を実行するものとしたが、対象のデータをフラッシュメモリ２２に記憶させたときのページ利用率Ｒが閾値Ｒｔｈ３以上あるか否かの判定を実行せずに、ステップＳ１４０以降の処理を実行してもよい。
【００５０】
実施例のＳＳＤ２０では、ページ利用率Ｒが閾値Ｒｔｈ１以上であっても書き込みデータが高頻度書換データであるときには、書き込みデータをＲｅＲＡＭ２４に記憶させるものとしたが（ステップＳ３３０，Ｓ３４０，Ｓ３６０〜Ｓ３８０）、ステップＳ３４０の処理を実行せずにページ利用率Ｒが閾値Ｒｔｈ１以上であるときに書き込みデータを一律にフラッシュメモリ２２に記憶させるものとしてもよい（ステップＳ３３０，Ｓ３５０）。
【００５１】
実施例のＳＳＤ２０では、閾値Ｒｔｈ１をＲｅＲＡＭ２４でデータを記憶している記憶領域のサイズが大きくなるについて小さく設定するものとしたが、閾値Ｒｔｈ１をＲｅＲＡＭ２４でデータを記憶している記憶領域のサイズに拘わらず、同一の値に設定するものとしてもよい。
【００５２】
実施例のＳＳＤ２０では、ページ利用率Ｒが閾値Ｒｔｈ２より高いときには利用セクタフラグテーブルＵＳＦＴのフラグを全て値０に設定するフラグリセット動作を実行するものとしたが（ステップＳ３９０，Ｓ４００）、こうした処理を実行しないものとしてもよい。
【００５３】
実施例のＳＳＤ２０では、ページ利用率Ｒを演算する範囲を１ページとして、１ページに含まれる値１のフラグの個数を１ページのフラグの個数である値８で除することにより演算するものとしたが、ページ利用率Ｒを演算する範囲は１セクタより大きければいかなるサイズにしてもよく、例えば、ページ利用率Ｒを２ページ以上のページの範囲で演算するものとし、演算する範囲に含まれる値１のフラグの個数を演算する範囲におけるフラグの個数で除することにより演算するものとしてもよい。
【００５４】
実施例のＳＳＤ２０では、フラッシュメモリ２２を備えているものとしたが、フラッシュメモリ２２に代えて、複数のセクタからなるページ単位で記憶領域に記憶されているデータを読み出して、読み出したデータをセクタ単位で書き換えた後にページ単位でデータを書き込む書き込み動作によりデータの書き込みが可能な不揮発性メモリとして構成された他のメモリを用いるものとしてもよい。
【００５５】
実施例のＳＳＤ２０では、ＲｅＲＡＭ２４のＲｅＲＡＭセルをバイポーラ動作を行なう素子として形成されているものとしたが、ＲｅＲＡＭセルを抵抗変化素子４６とダイオード（図示せず）とにより構成すると共に、電圧Ｖ１に電圧Ｖ２より高い電圧が印加されたときにセット（低抵抗化）され、電圧Ｖ１に電圧Ｖ２より高くＲｅＲＡＭセルをセットする電圧より低い電圧が印加されたときにリセット（高抵抗化）されるユニポーラ動作を行なう素子として形成するものとしてもよい。こうしたユニポーラ動作を行なうＲｅＲＡＭセルは、一般に、バイポーラ動作を行なうＲｅＲＡＭセルに比して小さいセルサイズで簡単なセル構成で構成するため、ＲｅＲＡＭセルをバイポーラ動作を行なう素子として形成するものに比して、動作が若干遅くなるものの、面積をより小さくすることができる。
【００５６】
実施例のＳＳＤ２０では、ＳＳＤ２０がＲｅＲＡＭ２４を備えているものとしたが、ＲｅＲＡＭ２４に代えて他のフラッシュメモリ２２より高速のデータの書き込みが可能な不揮発性のランダムアクセスメモリ、例えば、二つの電極で強誘電体材料を挟み込んだキャパシタを有する強誘電体ランダムアクセスメモリやトンネル磁気抵抗膜を磁性体膜で挟み込んだ構造のＭＴＪ（Magnet Tunnel Junction）素子を有する磁気抵抗ランダムアクセスメモリや二つの電極で相変化材料を挟み込んだ素子を有する相変化ランダムアクセスメモリなどを備えるものとしてもよい。
【００５７】
実施例では、本発明をＳＳＤに用いる場合を例示したが、データを処理するデータ処理装置であれば如何なるものに用いてもよく、例えば、ＵＳＢメモリなどに用いるものとしても構わない。また、メモリコントローラ３０を一つの装置であるＳＳＤ２０に搭載するものに限定するものではなく、フラッシュメモリ２２，ＲｅＲＡＭ２４，メモリコントローラ３０をそれぞれ異なるの装置に搭載するものとしてもよいし、フラッシュメモリ２２，ＲｅＲＡＭ２４を同一の装置に搭載して、メモリコントローラ３０をフラッシュメモリ２２，２４とを異なる装置に搭載するものとしてもよい。また、こうしたフラッシュメモリ２２，ＲｅＲＡＭ２４を制御するメモリの制御方法の形態としても構わない。
【００５８】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、メモリコントローラについては、図４に例示したデータ書き込み処理ルーチンを実行する制御処理回路３２が「書き込み制御部」に相当し、図１０に例示したデータ移動制処理ルーチンを実行する制御処理回路３２が「データ移動制御部」に相当する。また、データ記憶装置については、メモリコントローラ３０が「メモリコントローラ」に相当し、フラッシュメモリ２２が「第１メモリ」に相当し、ＲｅＲＡＭ２４が「第２メモリ」に相当する。
【００５９】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００６０】
本発明は、メモリコントローラやデータ記憶装置などの製造産業に利用可能である。
【符号の説明】
【００６１】
１０  ホスト装置、２０  ＳＳＤ、２２  フラッシュメモリ、２４  ＲｅＲＡＭ、３０  メモリコントローラ、３２  制御処理回路、４０  上部電極、４２  下部電極、４４  金属酸化物、４６  抵抗変化素子。
【図１】
2014059820.tif 000003
【図２】
2014059820.tif 000004
【図３】
2014059820.tif 000005
【図４】
2014059820.tif 000006
【図５】
2014059820.tif 000007
【図６】
2014059820.tif 000008
【図７】
2014059820.tif 000009
【図８】
2014059820.tif 000010
【図９】
2014059820.tif 000011
【図１０】
2014059820.tif 000012