(57)【特許請求の範囲】
【請求項１】
ホスト装置とデータを記憶する不揮発性の記憶装置として構成された第１記憶装置と該第１記憶装置よりデータの書き込み速度が速い不揮発性ランダムアクセスメモリとして構成された第２記憶装置との間のデータのやりとりを制御する制御装置であって、
前記ホスト装置から前記第１記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには、前記ホスト装置から入力されたデータを順次第２記憶装置用エラー訂正符号に符号化すると共に該符号化したデータが前記第２記憶装置に順次記憶されるよう前記第２記憶装置を制御する第２記憶装置記憶処理手段と、
前記第２記憶装置に記憶されたデータのサイズが所定サイズに至ったときには、前記第２記憶装置に記憶されている前記所定サイズのデータが読み出されるよう前記第２記憶装置を制御する第２記憶装置読み出し処理手段と、
該読み出されたデータに対して前記第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号し、前記復号したデータが前記第１記憶装置に記憶されるよう前記第１記憶装置を制御する第１記憶装置記憶処理手段と、
前記ホスト装置から前記第１記憶装置に記憶されているデータの読み出しを要求する読み出し要求信号が入力されたときには、前記第１記憶装置に記憶されているデータが読み出されるよう前記第１記憶装置を制御すると共に該読み出されたデータを前記ホスト装置に出力する第１記憶装置読み出し処理手段と、
を備え、
前記第１記憶装置記憶処理手段は、前記復号したデータを前記第２記憶装置用エラー訂正符号より訂正可能なエラー数が多い第１記憶装置用エラー訂正符号に符号化すると共に該符号化したデータが前記第１記憶装置に記憶されるよう前記第１記憶装置を制御する手段であり、
前記第１記憶装置読み出し処理手段は、前記読み出されたデータに対して前記第１記憶装置用エラー訂正符号を用いてエラー訂正した後に復号すると共に該復号したデータを前記ホスト装置に出力する手段である
制御装置。
【請求項２】
請求項１記載の制御装置であって、
前記第２記憶装置にデータが書き込まれた回数と前記第２記憶装置に記憶されているデータが消去された回数との和の回数である第２記憶装置書き込み消去回数を計数する第２記憶装置書き込み消去回数計数手段と、
前記第２記憶装置書き込み消去回数が多くなるほど長くなる傾向に前記ホスト装置から入力されたデータを前記第２記憶装置用エラー訂正符号に符号化する際のデータの長さである実行用データ長と前記ホスト装置から入力されたデータを前記第２記憶装置用エラー訂正符号に符号化する際の符号長である実行用符号長とを設定するデータ符号長設定手段と、
を備え、
前記第２記憶装置記憶処理手段は、前記ホスト装置から入力されたデータを前記設定された実行用データ長で前記設定された実行用符号長の前記第２記憶装置用エラー訂正符号に符号化する手段であり、
前記第１記憶装置記憶処理手段は、前記読み出されたデータに対して前記設定された実行用データ長で前記設定された実行用符号長の前記第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号する手段である
制御装置。
【請求項３】
ホスト装置とデータを記憶する不揮発性の記憶装置として構成された第１記憶装置と該第１記憶装置よりデータの書き込み速度が速い不揮発性ランダムアクセスメモリとして構成された第２記憶装置との間のデータのやりとりを制御する制御装置であって、
前記ホスト装置から前記第１記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには、前記ホスト装置から入力されたデータを順次第２記憶装置用エラー訂正符号に符号化すると共に該符号化したデータが前記第２記憶装置に順次記憶されるよう前記第２記憶装置を制御する第２記憶装置記憶処理手段と、
前記第２記憶装置に記憶されたデータのサイズが所定サイズに至ったときには、前記第２記憶装置に記憶されている前記所定サイズのデータが読み出されるよう前記第２記憶装置を制御する第２記憶装置読み出し処理手段と、
該読み出されたデータに対して前記第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号し、前記復号したデータが前記第１記憶装置に記憶されるよう前記第１記憶装置を制御する第１記憶装置記憶処理手段と、
前記第２記憶装置記憶処理手段で前記ホスト装置から入力されたデータを前記第２記憶装置用エラー訂正符号に符号化したり前記第１記憶装置記憶処理手段で該符号化したデータを復号したりする際の前記第２記憶装置記憶処理手段および前記第１記憶装置記憶処理手段における処理時間が短く前記第２記憶装置記憶処理手段および前記第１記憶装置記憶処理手段の消費電力が小さくなるよう、前記ホスト装置から入力されたデータを前記第２記憶装置用エラー訂正符号に符号化する際のデータの長さである実行用データ長と前記ホスト装置から入力されたデータを前記第２記憶装置用エラー訂正符号に符号化する際の符号長である実行用符号長とを設定するデータ符号長設定手段と、
を備え、
前記第２記憶装置記憶処理手段は、前記ホスト装置から入力されたデータを前記設定された実行用データ長で前記設定された実行用符号長の前記第２記憶装置用エラー訂正符号に符号化する手段であり、
前記第１記憶装置記憶処理手段は、前記読み出されたデータに対して前記設定された実行用データ長で前記設定された実行用符号長の前記第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号する手段である
制御装置。
【請求項４】
請求項３記載の制御装置であって、
前記ホスト装置から前記第１記憶装置に記憶されているデータの読み出しを要求する読み出し要求信号が入力されたときには、前記第１記憶装置に記憶されているデータが読み出されるよう前記第１記憶装置を制御すると共に該読み出されたデータを前記ホスト装置に出力する第１記憶装置読み出し処理手段
を備え、
前記第１記憶装置記憶処理手段は、前記復号したデータを前記第２記憶装置用エラー訂正符号より訂正可能なエラー数が多い第１記憶装置用エラー訂正符号に符号化すると共に該符号化したデータが前記第１記憶装置に記憶されるよう前記第１記憶装置を制御する手段であり、
前記第１記憶装置読み出し処理手段は、前記読み出されたデータに対して前記第１記憶装置用エラー訂正符号を用いてエラー訂正した後に復号すると共に該復号したデータを前記ホスト装置に出力する手段である
制御装置。
【請求項５】
請求項１，２，４のいずれか１つの請求項に記載の制御装置であって、
前記第１記憶装置にデータが書き込まれた回数と前記第１記憶装置に記憶されているデータが消去された回数との和の回数である第１記憶装置書き込み消去回数を計数する第１記憶装置書き込み消去回数計数手段と、
前記第１記憶装置書き込み消去回数が多くなるほど長くなる傾向に前記復号したデータを前記第１記憶装置用エラー訂正符号に符号化する際のデータの長さである第１記憶装置実行用データ長と前記復号したデータを前記第１記憶装置用エラー訂正符号に符号化する際の符号長である第１記憶装置実行用符号長とを設定する第１記憶装置データ符号長設定手段と、
を備え、
前記第１記憶装置記憶処理手段は、前記復号したデータを前記設定された第１記憶装置実行用データ長および前記設定された第１記憶装置実行用符号長の前記第１記憶装置用エラー訂正符号に符号化する手段であり、
前記第１記憶装置読み出し処理手段は、前記読み出されたデータに対して前記設定された第１記憶装置実行用データ長および前記設定された第１記憶装置実行用符号長の前記第１記憶装置用エラー訂正符号を用いてエラー訂正した後に復号する手段である
制御装置。
【請求項６】
請求項５記載の制御装置であって、
前記第１記憶装置用エラー訂正符号は、ＢＣＨ符号およびブロック符号および畳込み符号のいずれかである
制御装置。
【請求項７】
請求項１ないし６のいずれか１つの請求項に記載の制御装置であって、
前記第２記憶装置用エラー訂正符号は、ＢＣＨ符号およびブロック符号および畳込み符号のいずれかである
制御装置。
【請求項８】
請求項１ないし７のいずれか１つの請求項に記載の制御装置であって、
前記所定サイズは、１度の書き込み処理で前記第１記憶装置に書き込むデータのサイズとして予め定められたサイズに相当する前記第２記憶装置用エラー訂正符号のサイズである
制御装置。
【請求項９】
データを記憶するデータ記憶装置であって、
請求項１ないし８のいずれか１つの請求項に記載の制御装置と、
前記第１記憶装置としてのフラッシュメモリと、
前記第２記憶装置と、
を備えるデータ記憶装置。
【請求項１０】
データを記憶するデータ記憶装置であって、
請求項３記載の制御装置と、
前記第１記憶装置としてのハードディクスドライブと、
前記第２記憶装置と、
を備えるデータ記憶装置。
【請求項１１】
請求項９または１０記載のデータ記憶装置であって、
前記第２記憶装置は、抵抗変化ランダムアクセスメモリおよび強誘電体ランダムアクセスメモリおよび磁気抵抗ランダムアクセスメモリおよび相変化ランダムアクセスメモリのいずれかである、
データ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置およびデータ記憶装置に関し、詳しくは、ホスト装置とデータを記憶する不揮発性の記憶装置として構成された第１記憶装置と第１記憶装置よりデータを読み書きする際のアクセス速度が速い不揮発性ランダムアクセスメモリとして構成された第２記憶装置との間のデータのやりとりを制御する制御装置およびこうした制御装置を備えるデータ記憶装置に関する。
【背景技術】
【０００２】
従来、この種の制御装置としては、ＰＣシステムからのデータがキャッシュメモリとして電力の供給が遮断されても記憶しているデータを保持する不揮発性のランダムアクセスメモリであるＦｅＲＡＭ（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
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、上述の装置では、ＰＣシステムから比較的高速にデータが入力される一方で入力されたデータをＨＤＤへ書き込む際の書き込み速度が比較的低速であるため、ＰＣシステムからデータが入力されると、一旦ＰＣシステムからのデータの入力の受付を中断し、入力されたデータがＨＤＤに書き込まれるのを待って次のデータの入力の受付を再開する処理が行なわれている。こうした処理では、ＰＣシステムからＨＤＤにデータを書き込む際の書き込み速度がＨＤＤの書き込み速度で律速されてしまうため、データの書き込み速度の高速化を図ることが望まれている。
【０００５】
本発明の制御装置およびデータ記憶装置は、データの書き込み速度の高速化を図ることを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の制御装置およびデータ記憶装置は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の制御装置は、
ホスト装置とデータを記憶する不揮発性の記憶装置として構成された第１記憶装置と該第１記憶装置よりデータの書き込み速度が速い不揮発性ランダムアクセスメモリとして構成された第２記憶装置との間のデータのやりとりを制御する制御装置であって、
前記ホスト装置から前記第１記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには、前記ホスト装置から入力されたデータを順次第２記憶装置用エラー訂正符号に符号化すると共に該符号化したデータが前記第２記憶装置に順次記憶されるよう前記第２記憶装置を制御する第２記憶装置記憶処理手段と、
前記第２記憶装置に記憶されたデータのサイズが所定サイズに至ったときには、前記第２記憶装置に記憶されている前記所定サイズのデータが読み出されるよう前記第２記憶装置を制御する第２記憶装置読み出し処理手段と、
該読み出されたデータに対して前記第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号し、前記復号したデータが前記第１記憶装置に記憶されるよう前記第１記憶装置を制御する第１記憶装置記憶処理手段と、
を備えることを要旨とする。
【０００８】
この本発明の制御装置では、ホスト装置から第１記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには、ホスト装置から入力されたデータを順次第２記憶装置用エラー訂正符号に符号化すると共に符号化したデータが第２記憶装置に順次記憶されるよう第２記憶装置を制御し、第２記憶装置に記憶されたデータのサイズが所定サイズに至ったときには、第２記憶装置に記憶されている所定サイズのデータが読み出されるよう第２記憶装置を制御し、読み出したデータに対して第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号し、復号したデータが第１記憶装置に記憶されるよう第１記憶装置を制御する。第２記憶装置に記憶されたデータのサイズが所定サイズに至るまでホスト装置から順次データを入力することができ、第２記憶装置に記憶されたデータのサイズが所定サイズに至り第２記憶装置に記憶されている所定サイズのデータが読み出された後、ホスト装置から順次データを入力することができるから、ホスト装置からのデータの入力を中断する時間をより短くすることができ、データの書き込み速度の高速化を図ることができる。また、ホスト装置から入力されたデータを順次第２記憶装置用エラー訂正符号に符号化すると共に符号化したデータを第２記憶装置に順次記憶させ、読み出したデータに対して第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号し、復号したデータを第１記憶装置に記憶させるから、より正しいデータを第１記憶装置に記憶させることができる。この結果、より適正にデータの書き込み速度の高速化を図ることができる。
【０００９】
こうした本発明の制御装置において、前記第２記憶装置にデータが書き込まれた回数と前記第２記憶装置に記憶されているデータが消去された回数との和の回数である第２記憶装置書き込み消去回数を計数する第２記憶装置書き込み消去回数計数手段と、前記第２記憶装置書き込み消去回数が多くなるほど長くなる傾向に前記ホスト装置から入力されたデータを前記第２記憶装置用エラー訂正符号に符号化する際のデータの長さである実行用データ長と前記ホスト装置から入力されたデータを前記第２記憶装置用エラー訂正符号に符号化する際の符号長である実行用符号長とを設定するデータ符号長設定手段と、を備え、前記第２記憶装置記憶処理手段は、前記ホスト装置から入力されたデータを前記設定された実行用データ長で前記設定された実行用符号長の前記第２記憶装置用エラー訂正符号に符号化する手段であり、前記第１記憶装置記憶処理手段は、前記読み出されたデータに対して前記設定された実行用データ長で前記設定された実行用符号長の前記第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号する手段であるものとすることもできる。第２記憶装置は不揮発性ランダムアクセスメモリであるため、第２記憶装置書き込み消去回数が多いほど第２記憶装置の劣化が進みデータを書き込む際に正常な書き込みができないために生じるエラーがより多くのビットで生じると考えられるが、第２記憶装置書き込み消去回数が多くなるほど長くなる傾向に実行用データ長と実行用符号長とを設定し、ホスト装置から入力されたデータを設定された実行用データ長で前記設定された実行用符号長の第２記憶装置用エラー訂正符号に符号化し、第２記憶装置から読み出したデータに対して設定された実行用データ長で設定された実行用符号長の第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号することにより、より多くのエラーを訂正することができ、第１記憶装置により正しいデータを記憶させることができる。
【００１０】
また、本発明の制御装置において、前記第２記憶装置用エラー訂正符号は、ＢＣＨ符号およびブロック符号および畳込み符号のいずれかであるものとすることもできる。
【００１１】
さらに、本発明の制御装置において、前記所定サイズは、１度の書き込み処理で前記第１記憶装置に書き込むデータのサイズとして予め定められたサイズに相当する前記第２記憶装置用エラー訂正符号のサイズであるものとすることもできる。
【００１２】
そして、本発明の制御装置において、前記ホスト装置から前記第１記憶装置に記憶されているデータの読み出しを要求する読み出し要求信号が入力されたときには、前記第１記憶装置に記憶されているデータが読み出されるよう前記第１記憶装置を制御すると共に該読み出されたデータを前記ホスト装置に出力する第１記憶装置読み出し処理手段を備え、前記第１記憶装置記憶処理手段は、前記復号したデータを前記第２記憶装置用エラー訂正符号より訂正可能なエラー数が多い第１記憶装置用エラー訂正符号に符号化すると共に該符号化したデータが前記第１記憶装置に記憶されるよう前記第１記憶装置を制御する手段であり、前記第１記憶装置読み出し処理手段は、前記読み出されたデータに対して前記第１記憶装置用エラー訂正符号を用いてエラー訂正した後に復号すると共に該復号したデータを前記ホスト装置に出力する手段であるものとすることもできる。これにより、第１記憶装置に記憶されているデータにエラーが生じた場合に、より確実にエラー訂正をすることができ、ホスト装置により正しいデータを出力することができる。また、一般に、エラー訂正符号（Error Correcting Code)を用いてエラー訂正を行なう際には、訂正可能なエラー数が少ないほどエラー訂正に要する処理時間が短く、また、処理のための消費する消費電力が小さくなる傾向を示す。したがって、第１記憶装置用エラー訂正符号として第２記憶装置用エラー訂正符号より訂正可能なエラー数が多いエラー訂正符号、つまり、第２記憶装置用エラー訂正符号として第１記憶装置用エラー訂正符号より訂正可能なエラー数が少ないエラー訂正符号を用いることにより、第２記憶装置用エラー訂正符号として第１記憶装置用エラー訂正符号と同じ比較的訂正可能なエラー数が多いものを用いる場合に比して第２記憶装置から読み出したデータをエラー訂正する際の処理時間を短くすると共にエラー訂正する際の消費電力を低減させることができる。
【００１３】
第１記憶装置読み出し処理手段を備える態様の本発明の制御装置において、前記第１記憶装置にデータが書き込まれた回数と前記第１記憶装置に記憶されているデータが消去された回数との和の回数である第１記憶装置書き込み消去回数を計数する第１記憶装置書き込み消去回数計数手段と、前記第１記憶装置書き込み消去回数が多くなるほど前記復号したデータを前記第１記憶装置用エラー訂正符号に符号化する際のデータの長さである第１記憶装置実行用データ長と前記復号したデータを前記第１記憶装置用エラー訂正符号に符号化する際の符号長である第１記憶装置実行用符号長とを設定する第１記憶装置データ符号長設定手段と、を備え、前記第１記憶装置記憶処理手段は、前記復号したデータを前記設定された第１記憶装置実行用データ長および前記設定された第１記憶装置実行用符号長の前記第１記憶装置用エラー訂正符号に符号化する手段であり、前記第１記憶装置読み出し処理手段は、前記読み出されたデータに対して前記設定された第１記憶装置実行用データ長および前記設定された第１記憶装置実行用符号長の前記第１記憶装置用エラー訂正符号を用いてエラー訂正した後に復号する手段であるものとすることもできる。第１記憶装置では、第１記憶装置書き込み消去回数が多いほど第１記憶装置の劣化が進みデータを書き込む際に正常な書き込みができないために生じるエラーがより多くのビットで生じる場合があるが、第１記憶装置書き込み消去回数が多くなるほど長くなる傾向に第１記憶装置実行用データ長と第１記憶装置実行用符号長とを設定し、復号したデータを設定された第１記憶装置実行用データ長および設定された第１記憶装置実行用符号長の第１記憶装置用エラー訂正符号に符号化し、読み出したデータに対して設定された第１記憶装置実行用データ長および設定された第１記憶装置実行用符号長の第１記憶装置用エラー訂正符号を用いてエラー訂正した後に復号することにより、第１記憶装置に記憶されているデータを読み出す際により多くのエラーを訂正することができ、より正しいデータをホスト装置に出力することができる。この場合において、前記第１記憶装置用エラー訂正符号は、ＢＣＨ符号およびブロック符号および畳込み符号のいずれかであるものとすることもできる。
【００１４】
本発明の第１のデータ記憶装置は、
データを記憶するデータ記憶装置であって、
上述したいずれかの態様の本発明の制御装置、すなわち、基本的には、ホスト装置とデータを記憶する不揮発性の記憶装置として構成された第１記憶装置と該第１記憶装置よりデータの書き込み速度が速い不揮発性ランダムアクセスメモリとして構成された第２記憶装置との間のデータのやりとりを制御する制御装置であって、前記ホスト装置から前記第１記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには、前記ホスト装置から入力されたデータを順次第２記憶装置用エラー訂正符号に符号化すると共に該符号化したデータが前記第２記憶装置に順次記憶されるよう前記第２記憶装置を制御する第２記憶装置記憶処理手段と、前記第２記憶装置に記憶されたデータのサイズが所定サイズに至ったときには、前記第２記憶装置に記憶されている前記所定サイズのデータが読み出されるよう前記第２記憶装置を制御する第２記憶装置読み出し処理手段と、
該読み出されたデータに対して前記第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号し、前記復号したデータが前記第１記憶装置に記憶されるよう前記第１記憶装置を制御する第１記憶装置記憶処理手段と、を備える制御装置と、
前記第１記憶装置としてのフラッシュメモリと、
前記第２記憶装置と、
を備えることを要旨とする。
【００１５】
この本発明の第１のデータ記憶装置では、上述したいずれかの態様の本発明の制御装置を備えているから、本発明の制御装置が奏する効果、例えば、より適正にホスト装置から第１記憶装置へのデータの書き込み速度の高速化を図ることができる効果などと同様の効果を奏することができる。
【００１６】
本発明の第２のデータ記憶装置は、
データを記憶するデータ記憶装置であって、
上述したいずれかの態様の本発明の制御装置、すなわち、基本的には、ホスト装置とデータを記憶する不揮発性の記憶装置として構成された第１記憶装置と該第１記憶装置よりデータの書き込み速度が速い不揮発性ランダムアクセスメモリとして構成された第２記憶装置との間のデータのやりとりを制御する制御装置であって、前記ホスト装置から前記第１記憶装置へのデータの書き込みを要求する書き込み要求信号が入力されたときには、前記ホスト装置から入力されたデータを順次第２記憶装置用エラー訂正符号に符号化すると共に該符号化したデータが前記第２記憶装置に順次記憶されるよう前記第２記憶装置を制御する第２記憶装置記憶処理手段と、前記第２記憶装置に記憶されたデータのサイズが所定サイズに至ったときには、前記第２記憶装置に記憶されている前記所定サイズのデータが読み出されるよう前記第２記憶装置を制御する第２記憶装置読み出し処理手段と、該読み出されたデータに対して前記第２記憶装置用エラー訂正符号を用いてエラー訂正した後に復号し、前記復号したデータが前記第１記憶装置に記憶されるよう前記第１記憶装置を制御する第１記憶装置記憶処理手段と、を備える制御装置と、
前記第１記憶装置としてのハードディクスドライブと、
前記第２記憶装置と、
を備えることを要旨とする。
【００１７】
この本発明の第２のデータ記憶装置では、上述したいずれかの態様の本発明の制御装置を備えているから、本発明の制御装置が奏する効果、例えば、より適正にホスト装置から第１記憶装置へのデータの書き込み速度の高速化を図ることができる効果などと同様の効果を奏することができる。
【００１８】
こうした本発明の第１または第２のデータ記憶装置において、前記第２記憶装置は、抵抗変化ランダムアクセスメモリおよび強誘電体ランダムアクセスメモリおよび磁気抵抗ランダムアクセスメモリおよび相変化ランダムアクセスメモリのいずれかである、ものとすることもできる。
【図面の簡単な説明】
【００１９】
【図１】パーソナルコンピュータなどのホスト装置１０からのデータを記憶する本発明の実施例としてのＳＳＤ（Solid State Drive）２０の構成の概略を示す説明図である。
【図２】抵抗変化素子４６の構成の概略を示す説明図である。
【図３】ＳＳＤ２０のメモリコントローラ３０により実行されるＲＲＡＭ記憶処理ルーチンの一例を示すフローチャートである。
【図４】ＲＲＡＭ処理ルーチンと並行に実行されるフラッシュメモリ記憶処理ルーチンの一例を示すフローチャートである。
【図５】ＳＳＤ２０のメモリコントローラ３０により実行される読み出し処理ルーチンの一例を示すフローチャートである。
【図６】ＲＲＡＭ２４に記憶されているデータにビットエラーが生じている様子の一例を示す説明図である。
【発明を実施するための形態】
【００２０】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【００２１】
図１は、パーソナルコンピュータなどのホスト装置１０からのデータを記憶する本発明の実施例としてのＳＳＤ（Solid State Drive）２０の構成の概略を示す説明図である。ＳＳＤ２０は、各種アプリケーションプログラムや各種データを記憶する大容量のデータ記憶装置として構成されており、ＮＡＮＤ型フラッシュメモリとして構成されたフラッシュメモリ２２と、抵抗変化ランダムアクセスメモリ（Resistance Random Access Memory，ＲＲＡＭ）として構成されたＲＲＡＭ２４と、フラッシュメモリ２２とＲＲＡＭ２４とを制御する制御装置としてのメモリコントローラ３０と、から構成されている。
【００２２】
フラッシュメモリ２２は、フローティングゲートへの電子注入やフローティングゲートからの電子の引き抜きにより閾値電圧が変化するフラッシュメモリセルを複数有するフラッシュメモリセルアレイ（図示せず）を備えるＮＡＮＤ型フラッシュメモリとして構成されており、フラッシュメモリセルアレイの他にロウデコーダ，カラムデコーダ，センスアンプなど（いずれも図示せず）を備える。フラッシュメモリ２２では、ページ単位（実施例では、８Ｋバイトなど）でデータを書き込んだり読み出したりして、複数ページからなるブロック単位（実施例では、１Ｍバイトなど）で記憶しているデータを消去する。実施例のフラッシュメモリ２２では、フラッシュメモリ２２にデータを書き込む際の書き込み速度およびフラッシュメモリ２２からデータを読み出す際の読み出し速度が２１２ＭＢ／ｓであるものとした。
【００２３】
ＲＲＡＭ２４は、チタン（Ｔｉ）や白金（Ｐｔ）などの金属から形成された上部電極４０とチタン（Ｔｉ）や白金（Ｐｔ）などの金属から形成された下部電極４２とで金属酸化物４４を挟み込んで形成された図２に例示する抵抗変化素子４６と、抵抗変化素子４６に接続されたＭＯＳトランジスタ（図示せず）とから構成されるＲＲＡＭセルを複数有するＲＲＡＭセルアレイ（図示せず）を備えるＲＲＡＭとして構成されており、ＲＲＡＭセルアレイの他にロウデコーダ，カラムデコーダ，センスアンプなど（いずれも図示せず）を備える。ＲＲＡＭセルは、上部電極４０に印加される電圧Ｖ１が下部電極４２に印加される電圧Ｖ２より高いときにセット（低抵抗化）され、電圧Ｖ１が電圧Ｖ２より低いときにリセット（高抵抗化）されるバイポーラ動作を行なう素子として形成されている。こうしたバイポーラ動作を行なうＲＲＡＭセルは、一般に、動作速度が比較的速く消費電力が少ない素子であるため、ＲＲＡＭ２４は、動作速度が比較的早く消費電力が少ないメモリとして構成されている。なお、金属酸化物４４としては、チタン酸化物（ＴｉＯｘ）やニッケル酸化物（ＮｉＯｘ），銅酸化物（ＣｕＯｘ），ハフニウム酸化物（ＨｆＯｘ）などの金属酸化物またはこれらの金属酸化物を複数積層された積層構造とするのが望ましいと考えられる。こうして構成されたＲＲＡＭ２４は、ＲＲＡＭ２４にデータを書き込む際の書き込み速度およびＲＲＡＭ２４からデータを読む出す際の読み出し速度がフラッシュメモリ２２より高速であり、実施例では、書き込み速度および読み出し速度が１．２５ＧＢ／ｓであるものとした。
【００２４】
メモリコントローラ３０は、複数の論理素子を有する論理回路として構成された各種制御や演算処理を実行する制御処理回路３２を備えている。制御処理回路３２には、ホスト装置１０から各種制御信号やデータなどが入力されており、制御処理回路３２は入力された制御信号に基づいてフラッシュメモリ２２やＲＲＡＭ２４にデータが記憶されるようフラッシュメモリ２２やＲＲＡＭ２４を制御したり、フラッシュメモリ２２やＲＲＡＭ２４からデータが読み出されるようフラッシュメモリ２２やＲＲＡＭ２４を制御したり、読み出したデータをホスト装置１０に出力したりする。メモリコントローラ３０は、ホスト装置１０と比較的高速に（例えば、１．２５ＧＢ／ｓ程度で）各種制御信号やデータをやりとりするものとした。
【００２５】
次に、こうして構成されたＳＳＤ２０の動作、特に、ホスト装置１０から入力されたデータをフラッシュメモリ２２に記憶したり、フラッシュメモリ２２に記憶しているデータをホスト装置１０に出力する際の動作について説明する。最初に、ホスト装置１０から入力されたデータをフラッシュメモリ２２に記憶する際の動作について説明する。図３はメモリコントローラ３０の制御処理回路３２により実行されるＲＲＡＭ記憶処理ルーチンの一例を示すフローチャートであり、図４はＲＲＡＭ処理ルーチンと並行に実行されるフラッシュメモリ記憶処理ルーチンの一例を示すフローチャートである。これらの処理ルーチンは、ホスト装置１０からデータをフラッシュメモリ２２に書き込むことを要求する書き込み要求信号が入力されたときに実行される。
【００２６】
最初に、ＲＲＡＭ記憶処理ルーチンについて説明する。ＲＲＡＭ記憶処理ルーチンが実行されると、メモリコントローラ３０は、図３に例示するように、ホスト装置１０から書き込みデータを順次入力する処理を実行する（ステップＳ１００）。そして、ホスト装置１０からデータ長Ｓｄｒ（例えば、２５６ビット、５１２ビット、１Ｋバイトなど）の書き込みデータが入力される度に書き込みデータを符号長Ｓｃｒ（例えば、２Ｋバイト、３Ｋバイト、４Ｋバイトなど）のＢＣＨ（Bose-Chaudfuri-Hocquenghem）符号に符号化して（ステップＳ１１０）、符号化したデータがＲＲＡＭ２４に記憶されるようＲＲＡＭ２４を制御する（ステップＳ１２０）。ここで、データ長Ｓｄｒ，符号長Ｓｃｒは、書き込みデータを符号化したり符号化したデータを復号したりする処理に要する時間が比較的短く、また、書き込みデータを符号化したり復号したりする際にメモリコントローラ３０で消費される電力が比較的小さくなるデータ長や符号長として予め定めた値を用いるものとした。
【００２７】
符号化したデータをＲＲＡＭ２４に記憶したら、続いて、復号したときにフラッシュメモリの１ページ分のデータ（実施例では、８Ｋバイト）に相当する個数のＢＣＨ符号がＲＲＡＭ２４に記憶されるまで（ステップＳ１３０）、ステップＳ１００〜Ｓ１３０の処理を繰り返す。こうした処理により、ホスト装置１０から入力されたデータを順次ＢＣＨ符号に符号化して符号化したデータをＲＲＡＭ２４に記憶させることができる。
【００２８】
そして、復号するとフラッシュメモリ２２の１ページ分のデータとなる個数のＢＣＨ符号がＲＲＡＭ２４に記憶されたときには、ＲＲＡＭ２４に記憶しているフラッシュメモリの１ページ分のデータとなる個数のＢＣＨ符号を読み出して（ステップＳ１４０）、ホスト装置１０から書き込みデータが入力されているか否かを調べる（ステップＳ１５０）。ホスト装置１０から書き込みデータが入力されているときにはステップＳ１００〜Ｓ１４０の処理を繰り返し、ホスト装置１０から書き込みデータが入力されていないときには、本処理ルーチンを終了する。こうした処理により、復号するとフラッシュメモリの１ページ分のデータとなる個数のＢＣＨ符号がＲＲＡＭ２４に記憶される度に、ＲＲＡＭ２４からデータを読み出すことができる。
【００２９】
次に、フラッシュメモリ記憶処理ルーチンについて説明する。フラッシュメモリ記憶処理ルーチンが実行されると、メモリコントローラ３０の制御処理回路３２は、図４に例示するように、上述のステップＳ１４０の処理によりＲＲＡＭ２４からデータが読み出されるのを待ち（ステップＳ２００）、ＲＲＡＭ２４からデータが読み出されたときには、読み出されたデータをデータ長Ｓｄｒで符号長ＳｃｒのＢＣＨ符号を用いてエラー訂正すると共に復号する（ステップＳ２１０）。これにより、ＲＲＡＭ２４に記憶されているデータにエラーが生じているときには、生じたエラーを訂正することができる。
【００３０】
こうしてデータを復号したら、続いて、復号したデータをデータ長Ｓｄｆ（例えば、２６Ｋバイト、２８Ｋバイト、３０Ｋバイトなど）毎に予め定められた符号長Ｓｃｆ（例えば、３０Ｋバイト、３２Ｋバイト、３４Ｋバイトなど）のＢＣＨ符号に符号化する（ステップＳ２２０）。ここで、符号長Ｓｃｆは、符号長ＳｃｒのＢＣＨ符号より訂正可能なエラービット数が多くなるよう予め定めた値を用いるものとした。
【００３１】
こうしてデータを符号化したら、符号化したデータをフラッシュメモリ２２に書き込んで（ステップＳ２３０）、本処理ルーチンを終了する。こうした処理により、データ長Ｓｄｆ，符号長ＳｃｆのＢＣＨ符号に符号化したデータをフラッシュメモリ２２に記憶させることができる。
【００３２】
図３のＲＲＡＭ記憶処理ルーチンと図４のフラッシュメモリ記憶処理ルーチンとを実行することにより、ＲＲＡＭ２４から読み出したデータをＢＣＨ符号に符号化してフラッシュメモリ２２に記憶させながら、ホスト装置１０から入力されたデータを順次ＢＣＨ符号に符号化すると共に符号化したデータがＲＲＡＭ２４に記憶されるようＲＲＡＭ２４を制御することができる。したがって、フラッシュメモリ２２にデータが記憶されるようフラッシュメモリ２２を制御する処理を待たずにホスト装置１０からデータを順次入力することができる。これにより、フラッシュメモリ２２にデータが記憶されるようフラッシュメモリ２２を制御する処理を待ってホスト装置１０からデータを入力するものに比して、高速にホスト装置１０からフラッシュメモリ２２にデータを書き込むことができる。また、ＲＲＡＭ２４に記憶されているデータを読み出す際にデータのエラー訂正を行なうから、より正しいデータをフラッシュメモリ２２に書き込むことができる。より適正にホスト装置１０からフラッシュメモリ２２へのデータの書き込みの高速化を図ることができる。
【００３３】
次に、フラッシュメモリ２２に記憶しているデータをホスト装置１０に出力する際の動作について説明する。図５は、メモリコントローラ３０の制御処理回路３２により実行される読み出し処理ルーチンの一例を示すフローチャートである。このルーチンは、フラッシュメモリ２２に記憶されているデータをホスト装置１０に読み出すことを要求する読み出し要求信号がホスト装置１０から入力されたときに実行される。
【００３４】
データ読み出し処理ルーチンが実行されると、メモリコントローラ３０の制御処理回路３２は、フラッシュメモリ２２から１ページ分のデータに相当するＢＣＨ符号を読み出す処理を実行する（ステップＳ３００）。こうしてデータを読み出したら、読み出したデータをデータ長Ｓｄｆ，符号長ＳｃｆのＢＣＨ符号を用いてエラー訂正すると共に復号し（ステップＳ３１０）、復号したデータをホスト装置１０に出力して（ステップＳ３２０）、本処理ルーチンを終了する。こうした処理により、フラッシュメモリ２２に記憶されているデータにエラーが生じたときには、エラー訂正を行なってホスト装置１０に出力するから、より正しいデータをホスト装置１０に出力することができる。
【００３５】
以上説明した実施例のＳＳＤ２０によれば、ホスト装置１０から書き込み要求信号が入力されたときには、ホスト装置１０から入力された書き込みデータをデータ長Ｓｄｒ，符号長ＳｃｒのＢＣＨ符号に符号化すると共に符号化したデータがＲＲＡＭ２４に記憶されるようＲＲＡＭ２４を制御し、ＲＲＡＭ２４に記憶されているＢＣＨ符号が復号するとフラッシュメモリの１ページ分のデータとなるサイズとなったときには、ＲＲＡＭ２４に記憶されるデータが読み出されるようＲＲＡＭ２４を制御し、読み出したデータをデータ長Ｓｄｒ，符号長ＳｃｒのＢＣＨ符号でエラー訂正すると共に復号して、復号したデータがフラッシュメモリ２２に記憶されるようフラッシュメモリ２２を制御する。こうした制御により、より適正にホスト装置１０からフラッシュメモリ２２へのデータの書き込みの高速化を図ることができる。また、復号したデータをフラッシュメモリ２２に記憶させる際には、復号したデータをデータ長Ｓｄｆ，符号長ＳｃｆのＢＣＨ符号に符号化すると共に符号化したデータがフラッシュメモリ２２に記憶されるようフラッシュメモリ２２を制御し、読み出し要求信号がホスト装置１０から入力されたときにはフラッシュメモリ２２から１ページ分のデータを含むＢＣＨ符号を読み出し、読み出したデータをデータ長Ｓｄｆ，符号長ＳｃｆのＢＣＨ符号でエラー訂正すると共に復号し、復号したデータをホスト装置１０に出力するから、より正しいデータをホスト装置１０に出力することができる。
【００３６】
実施例のＳＳＤ２０では、ステップＳ１１０の処理やステップＳ２２０の処理で、データをＢＣＨ符号に符号化するものとしたが、こうしたエラー訂正を行なうための符号としては、ＢＣＨ符号に限定されるものではなく、リード・ソロモン符号などのブロック符号やＬＤＰＣ符号などの畳込み符号に符号化するものとしてもよい。
【００３７】
実施例のＳＳＤ２０では、ステップＳ１３０，Ｓ１４０の処理で、復号するとフラッシュメモリ２２の１ページ分のデータとなる個数のＢＣＨ符号がＲＲＡＭ２４に記憶されたときにＲＲＡＭ２４に記憶しているＢＣＨ符号を読み出すものとしたが、ＲＲＡＭ２４に記憶しているＢＣＨ符号を読み出す閾値となるデータのサイズとしては、復号するとフラッシュメモリ２２の１ページ分のデータとなる個数のＢＣＨ符号のサイズに限定されるものではなく、例えば、フラッシュメモリ２２の２ページ分のデータとなる個数のＢＣＨ符号のサイズなど如何なるサイズとしても構わない。
【００３８】
実施例のＳＳＤ２０では、ステップＳ１１０の処理で、ホスト装置１０から入力された書き込みデータをデータ長Ｓｄｒ，符号長ＳｃｒのＢＣＨ符号に符号化するものとしたが、ＲＲＡＭ２４はデータを書き込んだ回数とデータを消去した回数との和である書き込み消去回数が多くなるほど劣化が進みＲＲＡＭ２４に記憶されているデータにエラーが生じやすくなるため、ＲＲＡＭ２４の書き込み消去回数を計数し、計数したＲＲＡＭ２４の書き込み消去回数が多いほどデータ長Ｓｄｒおよび符号長Ｓｃｒを長くなるように設定して、設定したデータ長Ｓｄｒ，符号長ＳｃｒのＢＣＨ符号に書き込みデータを符号化するものとしてもよい。こうすれば、より多いエラーを訂正することができる。ここで、データ長Ｓｄｒおよび符号長Ｓｃｒをより長くすると、より多いエラーを訂正することができる理由について説明する。図６は、ＲＲＡＭ２４に記憶されているデータにビットエラーが生じている様子の一例を示す説明図である。図中、「×」印は、エラーが生じているデータの位置を示している。例えば、５１２バイトの書き込みデータに１０４ビットのパリティビットを付加して書き込みデータをデータ長Ｓｄｒが５１２バイト，符号長Ｓｃｒが（５１２バイト＋１０４ビット）のＢＣＨ符号に順次符号化するものとし、最初にＲＲＡＭ２４から読み出したＢＣＨ符号には９ビットのビットエラーが生じて、次にＲＲＡＭ２４からから読み出したＢＣＨ符号に２ビットのビットエラーが生じていて、合計１１ビットのビットエラーが生じているものする。このＢＣＨ符号では、８ビットのビットエラーまで訂正可能であるが、最初に読み出したデータには９ビットのビットエラーが生じているため、符号長ＳｃｒのＢＣＨ符号では、読み出したデータのエラー訂正を行なうことができない。ここで、データ長Ｓｄｒを１Ｋバイト，符号長Ｓｃｒを（１Ｋバイト＋２１０ビット）とし、１Ｋバイトの書き込みデータに２１０ビットのパリティビットを付加して書き込みデータをデータ長Ｓｄｒが１Ｋバイト，符号長Ｓｃｒが（１Ｋバイト＋２１０ビット）のＢＣＨ符号に順次符号化すると、１５ビットまでのエラーを訂正することができるようになるため、図示している１１ビットのエラーの全てを訂正できるようになる。このように、データ長Ｓｄｒおよび符号長Ｓｃｒがより長いＢＣＨ符号に符号化すると、より多いエラーを訂正することができるのである。よって、ＲＲＡＭ２４の書き込み消去回数が多いほど書き込みデータをデータ長Ｓｄｒおよび符号長Ｓｃｒが長いＢＣＨ符号に符号化することにより、より多いエラーを訂正することができる。
【００３９】
実施例のＳＳＤ２０では、ステップＳ３１０の処理で、復号したデータをデータ長Ｓｄｆ，符号長ＳｃｆのＢＣＨ符号に符号化するものとしたが、フラッシュメモリ２２はデータを書き込んだ回数とデータを消去した回数との和である書き込み消去回数が多くなるほど劣化が進みフラッシュメモリ２２に記憶されているデータにエラーが生じやすくなるため、フラッシュメモリ２２の書き込み消去回数を計数し、計数したフラッシュメモリ２２の書き込み消去回数が多いほど書き込みデータをデータ長Ｓｄｆおよび符号長Ｓｃｆがより長いＢＣＨ符号に符号化するものとしてもよい。こうすれば、より多いエラーを訂正することができるようになる。
【００４０】
実施例のＳＳＤ２０では、フラッシュメモリ２２を備えているものとしたが、フラッシュメモリ２２に代えて他の不揮発性の記憶装置、例えば、ハードディスクドライブなどを備えているものとしてもよい。この場合、ハードディスクドライブは書き込み回数が多くてもさほど劣化が進まないことから、図４のフラッシュメモリ記憶処理ルーチンにおいて、ステップＳ２２０，２３０の処理に代えて、復号したデータをＢＣＨ符号に符号化することなく、そのままハードディスクドライブに記憶させるものとしてもよい。
【００４１】
実施例のＳＳＤ２０では、ＲＲＡＭ２４はバイポーラ動作を行なう素子として形成されたＲＲＡＭセルを備えているものとしたが、ＲＲＡＭセルを抵抗変化素子４６とダイオード（図示せず）とにより構成すると共に、電圧Ｖ１に電圧Ｖ２より高い電圧が印加されたときにセット（低抵抗化）され、電圧Ｖ１に電圧Ｖ２より高くＲＲＡＭセルをセットする電圧より低い電圧が印加されたときにリセット（高抵抗化）されるユニポーラ動作を行なう素子として形成するものとしてもよい。こうしたユニポーラ動作を行なうＲＲＡＭセルは、一般に、バイポーラ動作を行なうＲＲＡＭセルに比して小さいセルサイズで簡単なセル構成で構成するため、ＲＲＡＭ２４の面積を小さくすることができ、ＳＳＤ２０の小型化を図ることができる。
【００４２】
実施例のＳＳＤ２０では、ＲＲＡＭ２４を備えているものとしたが、ＲＲＡＭ２４に代えて他の不揮発性ランダムアクセスメモリ、例えば、二つの電極で強誘電体材料を挟み込んだキャパシタを有する強誘電体ランダムアクセスメモリやトンネル磁気抵抗膜を磁性体膜で挟み込んだ構造のＭＴＪ素子を有する磁気抵抗ランダムアクセスメモリや二つの電極で相変化材料を挟み込んだ素子を有する相変化ランダムアクセスメモリなどを備えるものとしてもよい。
【００４３】
実施例のＳＳＤ２０は、パーソナルコンピュータとして構成されたホスト装置１０とデータをやりとりするものとしたが、ホスト装置１０としてはパーソナルコンピュータとして構成されたものに限定されるものではなく、例えば、携帯電話やデジタルスチルカメラなどＳＳＤ２０とデータのやりとりが可能なものであれば如何なるものとしても構わない。
【００４４】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。本発明の制御装置については、実施例では、ホスト装置１０から書き込み要求信号が入力されたときには、ホスト装置１０から入力された書き込みデータをデータ長Ｓｄｒ，符号長ＳｃｒのＢＣＨ符号に符号化すると共に符号化したデータがＲＲＡＭ２４に記憶されるようＲＲＡＭ２４を制御する図３のＲＲＡＭ記憶処理ルーチンのステップＳ１００〜Ｓ１２０の処理を実行するメモリコントローラ３０の制御処理回路３２が「第２記憶装置記憶処理手段」に相当し、ＲＲＡＭ２４に記憶されているＢＣＨ符号に符号化されたデータが復号するとフラッシュメモリの１ページ分のデータとなるサイズとなったときには、ＲＲＡＭ２４に記憶されるデータが読み出されるようＲＲＡＭ２４を制御する図３のＲＲＡＭ記憶処理ルーチンのステップＳ１３０，Ｓ１４０の処理を実行するメモリコントローラ３０の制御処理回路３２が「第２記憶装置読み出し処理手段」に相当し、読み出したデータをデータ長Ｓｄｒ，符号長ＳｃｒのＢＣＨ符号でエラー訂正すると共に復号して、復号したデータがフラッシュメモリ２２に記憶されるようフラッシュメモリ２２を制御する図４のフラッシュメモリ記憶処理ルーチンのステップＳ２１０〜Ｓ２３０の処理を実行するメモリコントローラ３０の制御処理回路３２が「第１記憶装置記憶処理手段」に相当する。また、本発明の第１のデータ記憶装置については、フラッシュメモリ２２が「フラッシュメモリ」に相当し、ＲＲＡＭ２４が「第２記憶装置」に相当する。さらに、本発明の第２のデータ記憶装置については、変形例のハードディスクドライブが「ハードディスクドライブ」に相当し、ＲＲＡＭ２４が「第２記憶装置」に相当する。
【００４５】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００４６】
本発明は、制御装置やデータ記憶装置の製造産業などに利用可能である。
【符号の説明】
【００４７】
１０  ホスト装置、２０  ＳＳＤ、２２  フラッシュメモリ、２４  ＲＲＡＭ、３０  メモリコントローラ、３２  制御処理回路、４０  上部電極、４２  下部電極、４４  金属酸化物、４６  抵抗変化素子。
【図１】
0005569936.tif 000002
【図２】
0005569936.tif 000003
【図３】
0005569936.tif 000004
【図４】
0005569936.tif 000005
【図５】
0005569936.tif 000006
【図６】
0005569936.tif 000007