(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、前記指標値が、前記所定のデータ保持期間に達したことを示す所定の閾値に達した場合に、前記データ記憶領域に対して、既に記憶されているデータの再書き込みを実行する
請求項1に記載のメモリドライブ装置。
書き換え可能な不揮発性メモリを有し、前記不揮発性メモリで構成され、情報処理に用いるデータを記憶可能なデータ記憶領域と、前記不揮発性メモリで構成され、所定のテストデータを記憶するテスト記憶領域とを備えるメモリドライブ装置の制御方法であって、
制御部が、
前記所定のテストデータが予め記憶された前記テスト記憶領域に対する記憶不良の割合を示す指標値に基づいて、所定のデータ保持期間に達したことを判定し、
前記所定のデータ保持期間に達した場合であって、前記指標値の変化量が、前記所定のデータ保持期間に達したことを示す所定の閾値以上になった場合に、前記データ記憶領域に対して、既に記憶されているデータの再書き込みを実行する
制御方法。
【発明を実施するための形態】
【0017】
以下、本発明の一実施形態によるメモリドライブ装置、情報処理装置、及び制御方法について、図面を参照して説明する。
【0018】
[第1の実施形態]
図1は、第1の実施形態による情報処理装置100及びSSD40の主要なハードウェア構成の一例を示す図である。
図1に示すように、情報処理装置100は、例えば、ノートブック型パーソナルコンピュータであり、CPU11と、メインメモリ12と、ビデオサブシステム13と、表示部14と、チップセット21と、BIOSメモリ22と、エンベデッドコントローラ31と、入力部32と、電源回路33と、SSD40とを備える。
【0019】
CPU(Central Processing Unit)11は、プログラム制御により種々の演算処理を実行し、情報処理装置100全体を制御している。
【0020】
メインメモリ12は、CPU11の実行プログラムの読み込み領域として、又は、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。メインメモリ12は、例えば、複数個のDRAM(Dynamic Random Access Memory)チップで構成される。この実行プログラムには、OS(オペレーティングシステム)、周辺機器類をハードウェア操作するための各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム等が含まれる。
【0021】
ビデオサブシステム13は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含んでいる。このビデオコントローラは、CPU11からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むとともに、ビデオメモリからこの描画情報を読み出して、表示部14に描画データ(表示データ)として出力する。
【0022】
表示部14は、例えば、液晶ディスプレイであり、ビデオサブシステム13から出力された描画データ(表示データ)に基づく表示画面を表示する。
【0023】
チップセット21は、USB(Universal Serial Bus)、シリアルATA(AT Attachment)、SPI(Serial Peripheral Interface)バス、PCI(Peripheral Component Interconnect)バス、PCI−Expressバス、及びLPC(Low Pin Count)バスなどのコントローラを備えており複数のデバイスが接続される。
図1では、デバイスの例示として、BIOSメモリ22と、SSD40とが、チップセット21に接続されている。
【0024】
BIOS(Basic Input Output System)メモリ22は、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)やフラッシュROM(フラッシュメモリ)などの電気的に書き換え可能な不揮発性メモリで構成される。BIOSメモリ22は、BIOS、及びエンベデッドコントローラ31などを制御するためのシステムファームウェアなどを記憶する。
【0025】
SSD(Solid State Drive)40(メモリドライブ装置の一例)は、書き換え可能な不揮発性メモリを有するメモリドライブ装置であり、OS、各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム、及び各種データを記憶する。情報処理装置100は、SSD40が記憶するデータを利用して各種情報処理を実行する。SSD40は、例えば、シリアルATAや、PCI−Expressバスにより、チップセット21に接続されている。
また、SSD40は、複数のフラッシュメモリ41と、メモリコントローラ42とを備える。
【0026】
フラッシュメモリ41は、例えば、NANDフラッシュメモリであり、書き換え可能な不揮発性メモリの一例である。フラッシュメモリ41は、メモリーセルのフローティングゲートに電子を注入又は引き抜くことで、メモリセルにデータの書き込み(“0”)又はデータの消去(“1”)を行っている。フラッシュメモリ41では、メモリセルに記憶されたデータは、時間の経過とともに、フローティングゲートの電子が移動するため、データ化けが発生することがある。フラッシュメモリ41において、このような時間の経過によりデータ化けが生じる特性をリテンション特性といい、このデータ保持期間をリテンション期間という。また、このリテンション期間は、温度が高い程、短くなる傾向がある。
【0027】
メモリコントローラ42は、例えば、不図示のCPU、ROM、RAMなどを含むプロセッサであり、SSD40を統括的に制御する。メモリコントローラ42は、例えば、チップセット21との間のホストインタフェース(ホストI/F)の制御処理、フラッシュメモリ41との間のメモリインタフェース(メモリI/F)の制御処理、フラッシュメモリ41のデータ管理処理などの処理を実行する。
【0028】
エンベデッドコントローラ31は、情報処理装置100のシステム状態に関わらず、各種デバイス(周辺装置やセンサ等)を監視し制御するワンチップマイコン(One-Chip Microcomputer)である。また、エンベデッドコントローラ31は、電源回路33を制御する電源管理機能を有している。なお、エンベデッドコントローラ31は、不図示のCPU、ROM、RAMなどで構成されるとともに、複数チャネルのA/D入力端子、D/A出力端子、タイマ、及びデジタル入出力端子を備えている。エンベデッドコントローラ31には、それらの入出力端子を介して、例えば、入力部32、及び電源回路33などが接続されており、エンベデッドコントローラ31は、これらの動作を制御する。
【0029】
入力部32は、例えば、キーボード、ポインティング・デバイス、タッチパッドなどの入力デバイスである。
【0030】
電源回路33は、例えば、DC/DCコンバータ、充放電ユニット、AC/DCアダプタなどを含んでおり、外部電源から、又はバッテリから供給される直流電圧を、情報処理装置100を動作させるために必要な複数の電圧に変換する。また、電源回路33は、エンベデッドコントローラ31からの制御に基づいて、情報処理装置100の各部に電力を供給する。
【0031】
次に、
図2を参照して、本実施形態によるSSD40の機能構成について説明する。
図2は、本実施形態によるSSD40の機能構成の一例を示すブロック図である。
【0032】
図2に示すように、SSD40は、データ記憶部50と、制御部60とを備える。
データ記憶部50は、例えば、上述した複数のフラッシュメモリ41により構成される記憶部であり、例えば、データ記憶領域51と、ECC(Error Correction Code)記憶領域52と、テスト記憶領域53とを備える。
【0033】
データ記憶領域51は、フラッシュメモリ41で構成され、情報処理に用いるデータを記憶可能な記憶領域である。データ記憶領域51は、例えば、OS、各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム、及び各種データなどを記憶する。
【0034】
ECC記憶領域52は、フラッシュメモリ41で構成され、データ記憶領域51及びテスト記憶領域53が記憶するデータの誤りを訂正する誤り訂正符号(ECC)を記憶する記憶領域である。ECC記憶領域52には、例えば、データ記憶領域51又はテスト記憶領域53にデータが記憶される(書き込まれる)際に、当該データに対応する誤り訂正符号(ECC)が記憶される。
【0035】
テスト記憶領域53は、フラッシュメモリ41で構成され、所定のテストデータを記憶する。テスト記憶領域53は、データ書き込みから所定の期間を示す所定のデータ保持期間に達したか否かを判定するためのテストデータを記憶する。テスト記憶領域53には、例えば、情報処理装置100が出荷する際に、テストデータが記憶される。また、テスト記憶領域53には、例えば、情報処理装置100の出荷後に、OSを再インストールする際に、テストデータを再記憶(再書き込み)されてもよい。
【0036】
制御部60は、上述したメモリコントローラ42により実現される機能部であり、SSD40の各種処理を実行する。制御部60は、ホストI/F処理部61と、メモリI/F処理部62と、データ管理部63と、ECC処理部64と、テスト処理部65とを備える。
【0037】
ホストI/F処理部61は、チップセット21とSSD40との間のインタフェースを制御する。ホストI/F処理部61は、例えば、シリアルATAや、PCI−Expressバスなどのインタフェースを制御し、チップセット21からのデータ書き込み及び読み出し等のコマンドを受け付ける。また、ホストI/F処理部61は、データ記憶部50から読み出したデータなどの出力情報を、シリアルATAや、PCI−Expressバスなどのインタフェースによりチップセット21に出力する。
【0038】
メモリI/F処理部62は、制御部60(メモリコントローラ42)とデータ記憶部50(複数のフラッシュメモリ41)との間のインタフェースを制御する。メモリI/F処理部62は、フラッシュメモリ41への、例えば、消去、書き込み、及び読み出しコマンドを出力し、フラッシュメモリ41を制御する。
【0039】
データ管理部63は、情報処理装置100から制御に用いるSSDの論理アドレスと、データ記憶部50(フラッシュメモリ41)の物理アドレスとの対応を管理するとともに、データ記憶部50が記憶するデータを管理する。データ管理部63は、ホストI/F処理部61が受信したチップセット21からの各種コマンドに基づいて、各種処理を実行する。
【0040】
データ管理部63は、例えば、ホストI/F処理部61が受信したデータアクセス(書き込み又は読み出し)コマンドの論理アドレスをデータ記憶部50(フラッシュメモリ41)の物理アドレスに変換するとともに、メモリI/F処理部62を介して、データ記憶部50(フラッシュメモリ41)にコマンドを出力する。また、データ管理部63は、メモリI/F処理部62により取得したデータ記憶部50(フラッシュメモリ41)のデータ(例えば、読み出しデータ、等)を、論理アドレス上のデータとして、ホストI/F処理部61を介して、チップセット21に出力する。
【0041】
なお、データ管理部63は、ECC機能が有効である場合には、データ記憶部50から読み出したデータと、当該読み出したデータに対応するECC記憶領域52のECCを取得し、誤り訂正処理を行ってから、当該読み出したデータを、ホストI/F処理部61を介して、チップセット21に出力する。
【0042】
ECC処理部64(訂正処理部の一例)は、ECC(誤り訂正符号)に基づいて、データ記憶部50から読み出したデータの誤りを訂正する。ECC処理部64は、例えば、読み出したデータと、当該読み出したデータに対応するECCとに基づいて、データ化け(ビット化け)が発生しているか否かを判定し、データ化け(ビット化け)が発生している場合に、ECCを用いて、誤り訂正処理を実行して、データ化けを訂正する。
【0043】
テスト処理部65は、テスト記憶領域53に対する記憶不良の割合を示す指標値に基づいて、所定のデータ保持期間に達したことを判定し、所定のデータ保持期間に達した場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。ここで、指標値は、例えば、テスト記憶領域53のテストデータを読み出す際のビット誤り率(以下、BER(Bit Error Rate)という)であり、テスト処理部65は、テスト記憶領域53のBERを算出し、算出したBERに基づいて、所定のデータ保持期間に達したことを判定する。
【0044】
例えば、テスト処理部65は、BERが所定の閾値R1に達したか否か(BERが所定の閾値R1以上になったか否か)を判定する。なお、所定の閾値R1は、所定のデータ保持期間に達したことを示す値であり、例えば、フラッシュメモリ41におけるリテンション特性(時間の経過とデータ化けとの関係特性)に基づいて、ECC処理部64による誤り訂正処理で、テスト記憶領域53のデータが誤り訂正可能な範囲で設定されている。
【0045】
また、テスト処理部65は、例えば、情報処理装置100が起動したタイミング、又は、シャットダウンしたタイミングに、BERが所定の閾値R1に達したか否かBERが所定の閾値R1以上になったか否か)を判定する。テスト処理部65は、BERが所定の閾値R1達した場合(BERが所定の閾値R1以上になった場合)に、メモリI/F処理部62を介して、不図示のRAMで構成されたバッファ記憶部に、データ記憶領域51に既に記憶されているデータを退避して、当該データを再書き込み(再記憶)させる。
【0046】
なお、テスト処理部65は、既に記憶されているデータの再書き込みを実行する際に、テスト記憶領域53に対して、データの再書き込みを実行するようにしてもよい。すなわち、テスト処理部65は、所定のデータ保持期間に達した場合に、データ記憶領域51及びテスト記憶領域53に対して、既に記憶されているデータの再書き込みを実行するようにしてもよい。
【0047】
次に、図面を参照して、本実施形態によるSSD40の動作について説明する。
図3は、本実施形態によるSSD40の動作の一例を示すフローチャートである。ここでは、SSD40が、リテンションによるデータ化けを予防する処理について説明する。
【0048】
図3に示すように、SSD40の制御部60は、まず、テスト記憶領域53のBERを算出する(ステップS101)。制御部60のテスト処理部65は、メモリI/F処理部62を介して、テスト記憶領域53のテストデータを読み出し、BERを算出する。
【0049】
次に、テスト処理部65は、BERが所定の閾値R1以上であるか否かを判定する(ステップS102)。ここで、所定の閾値R1は、所定のデータ保持期間に達したことを示す値である。すなわち、テスト処理部65は、BERに基づいて、所定のデータ保持期間に達した否かを判定する。テスト処理部65は、BERが所定の閾値R1以上である場合(ステップS102:YES)に、処理をステップS103に進める。また、テスト処理部65は、BERが所定の閾値R1未満である場合(ステップS102:NO)に、処理を終了する。
【0050】
ステップS103において、テスト処理部65は、データ記憶領域51のデータを再書き込みを実行する。テスト処理部65は、メモリI/F処理部62を介して、データ記憶領域51に既に記憶されているデータを読み出し退避し、当該データを再書き込み(再記憶)させる。なお、テスト処理部65は、データ記憶領域51及びテスト記憶領域53に対して、既に記憶されているデータの再書き込みを実行するようにしてもよい。ステップS103の処理後に、テスト処理部65は、処理を終了する。
【0051】
なお、テスト処理部65は、
図3に示す処理を、例えば、情報処理装置100が起動したタイミング、又は、シャットダウンしたタイミングなどに実行する。また、テスト処理部65は、
図3に示す処理を、バックグラウンド処理として、情報処理装置100からSSD40にアクセス(書き込み、又は読み出し)が実行されていない期間に実行するようにしてもよい。
【0052】
以上説明したように、本実施形態によるSSD40(メモリドライブ装置)は、書き換え可能なフラッシュメモリ41(不揮発性メモリ)を有するメモリドライブ装置であって、データ記憶領域51と、テスト記憶領域53と、制御部60とを備える。データ記憶領域51は、フラッシュメモリ41で構成され、情報処理に用いるデータを記憶可能な領域である。テスト記憶領域53は、フラッシュメモリ41で構成され、所定のテストデータを記憶する。制御部60は、所定のテストデータが予め記憶されたテスト記憶領域53に対する記憶不良の割合を示す指標値に基づいて、所定のデータ保持期間に達したことを判定し、所定のデータ保持期間に達した場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。
【0053】
これにより、本実施形態によるSSD40は、テスト記憶領域53の所定のテストデータが所定のデータ保持期間に達した場合に、データ記憶領域51に対して再書き込みを行うため、フラッシュメモリ41のリテンション特性によるデータ化けを低減して、信頼性を向上させることができる。
【0054】
また、本実施形態では、制御部60は、指標値が、所定のデータ保持期間に達したことを示す所定の閾値R1に達した場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。例えば、指標値には、テスト記憶領域53のテストデータを読み出す際のビット誤り率(例えば、BER:Bit Error Rate)が含まれる。制御部60は、ビット誤り率(BER)に基づいて、所定のデータ保持期間に達したことを判定する。すなわち、制御部60は、ビット誤り率(BER)が所定の閾値R1に達した場合(所定の閾値R1以上になった場合)に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。
【0055】
これにより、本実施形態によるSSD40は、例えば、情報処理装置100の起動していない期間や温度変化が生じたことが把握できない場合であっても、ビット誤り率(BER)を利用することで、リテンションによるデータ化けの可能性を正確に判定することができる。よって、本実施形態によるSSD40は、フラッシュメモリ41のリテンション特性によるデータ化けをより適切に低減することができる。
【0056】
また、本実施形態では、制御部60は、所定のデータ保持期間に達した場合に、データ記憶領域51及びテスト記憶領域53に対して、既に記憶されているデータの再書き込みを実行するようにしてもよい。
【0057】
これにより、本実施形態によるSSD40は、データ記憶領域51だけでなく、テスト記憶領域53のリテンションの影響もリセットできるので、例えば、ビット誤り率(BER)などの指標値により、次回以降も所定のデータ保持期間をより正確に判定することができる。
【0058】
また、本実施形態では、制御部60は、バックグラウンド処理として、情報処理装置100からSSD40にアクセス(書き込み、又は読み出し)が実行されていない期間に、所定のデータ保持期間に達したことを判定するようにしてもよい。そして、制御部60は、さらに、バックグラウンド処理として、所定のデータ保持期間に達した場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行するようにしてもおい。
【0059】
これにより、本実施形態によるSSD40は、情報処理装置100による情報処理への影響を低減しつつ、フラッシュメモリ41のリテンション特性によるデータ化けを低減し、信頼性を向上させることができる。
【0060】
また、本実施形態による情報処理装置100は、上述したSSD40を備え、SSD40が記憶するデータを利用して情報処理を実行する。
これにより、本実施形態による情報処理装置100は、上述したSSD40と同様の効果を奏し、フラッシュメモリ41のリテンション特性によるデータ化けを低減して、信頼性を向上させることができる。
【0061】
また、本実施形態による制御方法は、書き換え可能なフラッシュメモリ41を有し、フラッシュメモリ41で構成され、情報処理に用いるデータを記憶可能なデータ記憶領域51と、フラッシュメモリ41で構成され、所定のテストデータを記憶するテスト記憶領域53とを備えるSSD40の制御方法である。制御方法では、制御部60が、所定のテストデータが予め記憶されたテスト記憶領域53に対する記憶不良の割合を示す指標値に基づいて、所定のデータ保持期間に達したことを判定し、所定のデータ保持期間に達した場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。
【0062】
これにより、本実施形態による制御方法は、上述したSSD40及び情報処理装置100と同様の効果を奏し、フラッシュメモリ41のリテンション特性によるデータ化けを低減して、信頼性を向上させることができる。
【0063】
[第2の実施形態]
次に、図面を参照して、第2の実施形態によるSSD40aについて説明する。
第2の実施形態では、所定のデータ保持期間に達したことを、指標値(BER)の変化量により判定する変形例について説明する。
【0064】
図4は、本実施形態によるSSD40aの機能構成の一例を示すブロック図である。
図4に示すように、SSD40a(メモリドライブ装置の子比例)は、データ記憶部50aと、制御部60aとを備える。
【0065】
なお、この図において、
図2と同一の構成には同一の符号を付与して、その説明を省略する。また、本実施形態によるSSD40a及び情報処理装置100のハード構成は、
図1に示す第1の実施形態と同様であるため、ここではその説明を省略する。
【0066】
データ記憶部50aは、上述した複数のフラッシュメモリ41により構成される記憶部であり、例えば、データ記憶領域51と、ECC記憶領域52と、テスト記憶領域53と、BER記憶領域54とを備える。
【0067】
BER記憶領域54は、フラッシュメモリ41により構成され、テスト記憶領域53びBERの初期値を記憶する。なお、BERの初期値は、テスト処理部65aによって、データ記憶領域51にデータの再書き込みが実行された場合に更新される。
【0068】
制御部60aは、上述したメモリコントローラ42により実現される機能部であり、SSD40aの各種処理を実行する。制御部60aは、ホストI/F処理部61と、メモリI/F処理部62と、データ管理部63と、ECC処理部64と、テスト処理部65aとを備える。
【0069】
テスト処理部65aは、指標値(BER)の変化量が、所定のデータ保持期間に達したことを示す所定の閾値ΔR1以上になった場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。
【0070】
例えば、テスト処理部65aは、テスト記憶領域53のBERを算出するとともに、BER記憶領域54のBERの初期値を取得する。テスト処理部65aは、算出したBERのBERの初期値からの変化量が、所定の閾値ΔR1以上になった場合に、所定のデータ保持期間に達したと判定する。ここで、所定の閾値ΔR1は、例えば、フラッシュメモリ41におけるリテンション特性(時間の経過とデータ化けとの関係特性)に基づいて、ECC処理部64による誤り訂正処理で、テスト記憶領域53のデータが誤り訂正可能な範囲の期間に対応するBERの変化量として設定される。
【0071】
また、テスト処理部65aは、指標値(BER)の変化量が、所定の閾値ΔR1以上になった場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行するとともに、BER記憶領域54が記憶するBERの初期値を、算出した現在のBERの値に更新する。
【0072】
なお、本実施形態におけるテスト処理部65aの処理は、上述した指標値(BER)の変化量による所定のデータ保持期間に達したことを判定する処理に変更になっている点が異なる。他の処理は、第1の実施形態のテスト処理部65と同様である。
【0073】
次に、
図5を参照して、本実施形態によるSSD40aの動作について説明する。
図5は、本実施形態によるSSD40aの動作の一例を示すフローチャートである。ここでは、SSD40aが、リテンションによるデータ化けを予防する処理について説明する。
【0074】
図5に示すように、SSD40aの制御部60aは、まず、テスト記憶領域53のBERを算出する(ステップS201)。制御部60aのテスト処理部65aは、メモリI/F処理部62を介して、テスト記憶領域53のテストデータを読み出し、BERを算出する。
【0075】
次に、テスト処理部65aは、BER記憶領域54からBERの初期値(過去のBERの値)を取得する(ステップS202)。テスト処理部65aは、メモリI/F処理部62を介して、BER記憶領域54が記憶するBERの初期値を取得する。
【0076】
次に、テスト処理部65aは、BERの変化量が所定の閾値ΔR1以上であるか否かを判定する(ステップS203)。ここで、所定の閾値ΔR1は、所定のデータ保持期間に達したことを示す値である。テスト処理部65aは、算出したBERと、BERの初期値との差分によりBERの変化量を算出し、BERの変化量が所定の閾値ΔR1以上であるか否かを判定する。テスト処理部65aは、BERの変化量が所定の閾値ΔR1以上である場合(ステップS203:YES)に、処理をステップS204に進める。また、テスト処理部65aは、BERの変化量が所定の閾値ΔR1未満である場合(ステップS203:NO)に、処理を終了する。
【0077】
ステップS204において、テスト処理部65aは、データ記憶領域51のデータを再書き込みを実行する。テスト処理部65aは、上述した
図3のステップS103と同様の処理を実行する。
【0078】
次に、テスト処理部65aは、BER記憶領域54にBERを記憶させる(ステップS205)。すなわち、テスト処理部65aは、BER記憶領域54が記憶するBERの初期値を、算出した現在のBERの値に更新する。ステップS205の処理後に、テスト処理部65aは、処理を終了する。
【0079】
なお、テスト処理部65aは、
図5に示す処理を、例えば、情報処理装置100が起動したタイミング、又は、シャットダウンしたタイミングなどに実行する。また、テスト処理部65aは、
図5に示す処理を、バックグラウンド処理として、情報処理装置100からSSD40aにアクセス(書き込み、又は読み出し)が実行されていない期間に実行するようにしてもよい。
【0080】
また、テスト処理部65aは、第1の実施形態と同様に、所定のデータ保持期間に達した場合に、データ記憶領域51及びテスト記憶領域53に対して、既に記憶されているデータの再書き込みを実行するようにしてもよい。
【0081】
以上説明したように、本実施形態では、制御部60a(テスト処理部65a)は、テスト記憶領域53に対する記憶不良の割合を示す指標値の変化量(例えば、BERの変化量)が、所定のデータ保持期間に達したことを示す所定の閾値ΔR1以上になった場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。
【0082】
これにより、本実施形態によるSSD40a(メモリドライブ装置)及び情報処理装置100は、上述した第1の実施形態と同様の効果を奏し、フラッシュメモリ41のリテンション特性によるデータ化けを低減して、信頼性を向上させることができる。
【0083】
[第3の実施形態]
次に、図面を参照して、第3の実施形態によるSSD40bについて説明する。
第3の実施形態では、所定のデータ保持期間に達したことを、指標値の代わりに、フラッシュメモリ41の印加電圧値に基づいて、所定のデータ保持期間に達したことを判定する変形例について説明する。
【0084】
図6は、本実施形態によるSSD40bの機能構成の一例を示すブロック図である。
図6に示すように、SSD40b(メモリドライブ装置の子比例)は、データ記憶部50と、制御部60bとを備える。
【0085】
なお、この図において、
図2と同一の構成には同一の符号を付与して、その説明を省略する。また、本実施形態によるSSD40b及び情報処理装置100のハード構成は、
図1に示す第1の実施形態と同様であるため、ここではその説明を省略する。
【0086】
制御部60bは、上述したメモリコントローラ42により実現される機能部であり、SSD40bの各種処理を実行する。制御部60bは、ホストI/F処理部61と、メモリI/F処理部62と、データ管理部63と、ECC処理部64と、テスト処理部65bとを備える。
【0087】
テスト処理部65bは、テスト記憶領域53のテストデータを正常に読み出すことが可能な印加電圧値(指標値の一例)に基づいて、所定のデータ保持期間に達したことを判定する。ここで、印加電圧値は、フラッシュメモリ41のデータを読み出す際に、メモリセルに印加する電圧であり、例えば、ソースードレイン間電圧や、ゲート印加電圧などが含まれる。
【0088】
ところで、メモリセルの書き込みの深さを示すセルスレッシュホールド電圧(以下、セルVT電圧という)は、時間の経過とともに変化する。セルVT電圧が変化した場合であっても、セルVT電圧に応じて、データ読み出し時のソースードレイン間電圧やゲート印加電圧を変更することで、正常に読み出しできる場合がある。本実施形態では、テスト処理部65bは、セルVT電圧の変化に対応する印加電圧値(セル印加電圧値)に基づいて、所定のデータ保持期間に達したことを判定する。
【0089】
テスト処理部65bは、セルVT電圧の変化に応じて、テスト記憶領域53の読み出し可能なセル印加電圧(印加電圧値)を検出し、当該セル印加電圧が、所定のデータ保持期間に達したことを示す所定の閾値V1に達したか否かを判定する。ここで、所定の閾値V1は、例えば、フラッシュメモリ41におけるリテンション特性(時間の経過とデータ化けとの関係特性)に基づいて、ECC処理部64による誤り訂正処理で、テスト記憶領域53のデータが誤り訂正可能な範囲の期間に対応するセル印加電圧値が設定される。
テスト処理部65bは、所定のデータ保持期間に達したと判定した場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。
【0090】
なお、テスト処理部65bは、第1の実施形態と同様に、既に記憶されているデータの再書き込みを実行する際に、テスト記憶領域53に対して、データの再書き込みを実行するようにしてもよい。
【0091】
次に、
図7を参照して、本実施形態によるSSD40bの動作について説明する。
図7は、本実施形態によるSSD40bの動作の一例を示すフローチャートである。ここでは、SSD40bが、リテンションによるデータ化けを予防する処理について説明する。
【0092】
図7に示すように、SSD40bの制御部60bは、まず、テスト記憶領域53の読み出し可能なセル印加電圧を検出する(ステップS301)。制御部60bのテスト処理部65bは、メモリI/F処理部62を介して、セル印加電圧を変更して、テスト記憶領域53のテストデータを読み出し、読み出し可能なセル印加電圧の限界値を算出する。
【0093】
次に、テスト処理部65bは、セル印加電圧が所定の閾値V1に達したか否かを判定する(ステップS302)。ここで、所定の閾値V1は、所定のデータ保持期間に達したことを示す値である。すなわち、テスト処理部65bは、セル印加電圧に基づいて、所定のデータ保持期間に達した否かを判定する。テスト処理部65bは、セル印加電圧が所定の閾値V1に達した場合(ステップS302:YES)に、処理をステップS303に進める。また、テスト処理部65bは、セル印加電圧が所定に達していない場合(ステップS302:NO)に、処理を終了する。
【0094】
ステップS303において、テスト処理部65bは、データ記憶領域51のデータを再書き込みを実行する。テスト処理部65bは、上述した
図3のステップS103と同様の処理を実行する。
【0095】
なお、テスト処理部65bは、
図7に示す処理を、例えば、情報処理装置100が起動したタイミング、又は、シャットダウンしたタイミングなどに実行する。また、テスト処理部65は、
図7に示す処理を、バックグラウンド処理として、情報処理装置100からSSD40bにアクセス(書き込み、又は読み出し)が実行されていない期間に実行するようにしてもよい。
【0096】
以上説明したように、本実施形態では、テスト記憶領域53に対する記憶不良の割合を示す指標値には、テスト記憶領域53のテストデータを正常に読み出すことが可能な印加電圧値(セル印加電圧)が含まれる。制御部60b(テスト処理部65b)は、印加電圧値セル印加電圧)に基づいて、所定のデータ保持期間に達したことを判定する。
【0097】
これにより、本実施形態によるSSD40b(メモリドライブ装置)及び情報処理装置100は、上述した第1の実施形態と同様の効果を奏し、フラッシュメモリ41のリテンション特性によるデータ化けを低減して、信頼性を向上させることができる。
【0098】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態において、情報処理装置100は、ノートブック型パーソナルコンピュータである例を説明したが、これに限定されるものではなく、例えば、デスクトップ型パーソナルコンピュータやタブレット端末装置などの他の情報処理装置であってもよい。
【0099】
また、上記の実施形態において、テスト記憶領域53に対する記憶不良の割合を示す指標値として、BER又はセル印加電圧を用いる例を説明したが、これに限定されるものではなく、他の指標値を用いるようにしてもよい。また、上記の実施形態において、指標値として、例えば、BERとセル印加電圧とを組み合わせて用いるようにしてもよい。
【0100】
また、上記の各実施形態において、制御部60(60a、60b)(テスト処理部65(65a、65b))による処理は、SSD40(40a、40b)の内部処理として実行する例を説明したが、これに限定されるものではなく、テスト処理部65(65a、65b)の処理の一部を情報処理装置100が実行するようにしてもよい。
【0101】
また、上記の各実施形態において、テスト処理部65(65a、65b)は、所定のデータ保持期間に達したことの判定処理と、データ記憶領域51に対して再書き込みを行う再書き込み処理とが、連続して実行する例を説明したが、これに限定されるものではなく、判定処理と、再書き込み処理とを切り離して実行してもよい。テスト処理部65(65a、65b)は、例えば、SSD40(40a、40b)のバックグラウンドメディアスキャンをトリガにして、再書き込み処理を実行するようにしてもよい。
【0102】
また、テスト処理部65(65a、65b)は、再書き込み処理において、データ記憶領域51のデータの書き込まれているフラッシュメモリ41のブロック(又はページ)に対して実行するようにしてもよい。また、テスト処理部65(65a、65b)は、再書き込み処理において、例えば、データ記憶領域51のうちのECC機能により救済されているBERの高いブロック(又はページ)を検出し、検出したBERなどの高いブロック(又はページ)に対して再書き込み処理を実行するようにしてもよい。
【0103】
また、上記の各実施形態において、SSD40(40a、40b)は、メモリコントローラ42により実現される機能部として、ECC処理部64を備える例を説明したが、これに限定されるものではなく、例えば、フラッシュメモリ41が、ECC処理部64を備えるようにしてもよい。
【0104】
また、上記の第3の実施形態において、第1の実施形態に対して、BERの代わりにセル印加電圧を用いる例を説明したが、第2の実施形態に対して、同様に、セル印加電圧を用いるようにしてもよい。この場合、テスト処理部65bは、セル印加電圧の変化量が、所定のデータ保持期間に達したことを示す所定の閾値ΔV1以上になった場合に、データ記憶領域51に対して、既に記憶されているデータの再書き込みを実行する。
【0105】
なお、上述したSSD40(40a、40b)、及び情報処理装置100が備える各構成は、内部に、コンピュータシステムを有している。そして、上述したSSD40(40a、40b)、及び情報処理装置100が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したSSD40(40a、40b)、及び情報処理装置100が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。
【0106】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にSSD40(40a、40b)、及び情報処理装置100が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0107】
また、上述した機能の一部又は全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【解決手段】メモリドライブ装置は、書き換え可能な不揮発性メモリを有するメモリドライブ装置であって、前記不揮発性メモリで構成され、情報処理に用いるデータを記憶可能なデータ記憶領域と、前記不揮発性メモリで構成され、所定のテストデータを記憶するテスト記憶領域と、予め前記所定のテストデータが記憶された前記テスト記憶領域に対する記憶不良の割合を示す指標値に基づいて、所定のデータ保持期間に達したことを判定し、前記所定のデータ保持期間に達した場合に、前記データ記憶領域に対して、既に記憶されているデータの再書き込みを実行する制御部とを備える。