(57)【要約】【課題】データをランダマイズしてメモリに書き込む情報処理装置において、メモリに対する消去チェックを行う。【解決手段】ランダマイザ３１１は、演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力する。デランダマイザ３１２は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成する。選択部３１３は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、デランダマイズされた読み出しデータを選択して演算処理装置へ出力する。一方、フラグが消去済みデータを示している場合、選択部３１３は、メモリから読み出された読み出しデータを選択して演算処理装置へ出力する。【選択図】図３
2019215945.tif 000002
【特許請求の範囲】
【請求項１】
演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力するランダマイザと、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成するデランダマイザと、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する選択部と、
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記演算処理装置から書き込み要求を受け取った場合、第１論理値を有するフラグを含む、ランダマイズされた書き込みデータを前記メモリに書き込む制御を行い、前記演算処理装置から消去要求を受け取った場合、第２論理値を有するフラグを含む消去済みデータを前記メモリに書き込む制御を行う制御部をさらに備え、
前記デランダマイザは、前記メモリから読み出された読み出しデータに含まれるフラグが前記第１論理値を有する場合、前記メモリから読み出された読み出しデータをデランダマイズして、前記デランダマイズされた読み出しデータを生成し、
前記選択部は、前記メモリから読み出された読み出しデータに含まれるフラグが前記第１論理値を有する場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記メモリから読み出された読み出しデータに含まれるフラグが前記第２論理値を有する場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力することを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記消去済みデータに含まれるすべての論理値は前記第２論理値であることを特徴とする請求項２記載のメモリ制御装置。
【請求項４】
演算処理装置とメモリとメモリ制御装置とを備える情報処理装置であって、
前記メモリ制御装置は、
前記演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータを前記メモリへ出力するランダマイザと、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成するデランダマイザと、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する選択部とを含むことを特徴とする情報処理装置。
【請求項５】
演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力し、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成し、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する、
ことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置、情報処理装置、及びメモリ制御方法に関する。
【背景技術】
【０００２】
情報処理装置において、ＣＰＵ（Central Processing Unit）がＮＡＮＤ型フラッシュメモリにデータを書き込む場合、ＮＡＮＤ型フラッシュメモリ内のデータを一旦消去してから、新たなデータを書き込む。このとき、ＣＰＵは、信頼性担保のために、消去処理を行った後に、ＮＡＮＤ型フラッシュメモリからデータを読み出し、消去処理が正しく行われているか否かをチェックすることがある。このような消去チェックは、ブランクチェックと呼ばれる。
【０００３】
ＮＡＮＤ型フラッシュメモリでは、消去処理が行われた後の消去済みデータとして、すべてのビット値が論理値“１”を有するブランクデータが用いられることが多い。したがって、ブランクチェックでは、ＮＡＮＤ型フラッシュメモリから読み出された読み出しデータのすべてのビット値が論理値“１”であるか否かがチェックされる。
【０００４】
フラッシュメモリに関して、オートイレーズコマンドに従って記憶内容を消去するフラッシュメモリ制御回路、及び、消去動作と消去ベリファイ動作とを繰り返し行う不揮発性メモリが知られている（例えば、特許文献１及び特許文献２を参照）。フラッシュメモリデバイスに対する消去検証動作の実施方法も知られている（例えば、特許文献３を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２６００７５号公報
【特許文献２】特開２００４−１３４０８５号公報
【特許文献３】特開２００１−１７６２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＮＡＮＤ型フラッシュメモリを記憶装置として実装する情報処理装置には、ＮＡＮＤ型フラッシュメモリに対するデータの書き込みと、ＮＡＮＤ型フラッシュメモリからのデータの読み出しとを制御するために、メモリ制御装置が設けられる。
【０００７】
ＮＡＮＤ型フラッシュメモリにデータを書き込む際、同一のビット値を続けて書き込むとビット反転が起こりやすくなるため、メモリ制御装置は、データをランダマイズしてから書き込むことがある。この場合、メモリ制御装置は、ＮＡＮＤ型フラッシュメモリから読み出したデータをデランダマイズして、元のデータを復元する。
【０００８】
しかしながら、ＮＡＮＤ型フラッシュメモリから読み出したブランクデータをデランダマイズすると、ブランクチェックを行うことが困難になる。
【０００９】
なお、かかる問題は、データを書き込む際にランダマイズを行うＮＡＮＤ型フラッシュメモリに対するブランクチェックに限らず、データを書き込む際にランダマイズを行う他の種別のメモリに対するブランクチェックにおいても生ずるものである。
【００１０】
１つの側面において、本発明は、データをランダマイズしてメモリに書き込む情報処理装置において、メモリに対する消去チェックを行うことを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、メモリ制御装置は、ランダマイザ、デランダマイザ、及び選択部を含む。
【００１２】
ランダマイザは、演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力する。デランダマイザは、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成する。
【００１３】
選択部は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、デランダマイズされた読み出しデータを選択して演算処理装置へ出力する。一方、フラグが消去済みデータを示している場合、選択部は、メモリから読み出された読み出しデータを選択して演算処理装置へ出力する。
【発明の効果】
【００１４】
実施形態によれば、データをランダマイズしてメモリに書き込む情報処理装置において、メモリに対する消去チェックを行うことができる。
【図面の簡単な説明】
【００１５】
【図１】ＮＡＮＤ型フラッシュメモリを含む情報処理装置の構成図である。
【図２】ブランクチェックを示す図である。
【図３】メモリ制御装置の構成図である。
【図４】メモリ制御方法のフローチャートである。
【図５】情報処理装置の構成図である。
【図６】書き込みデータを示す図である。
【図７】ＥＣＣを含む書き込みデータを示す図である。
【図８】書き込み動作及び読み出し動作を示す図である。
【図９】フラグに基づくブランクチェックを示す図である。
【図１０】書き込み動作のフローチャートである。
【図１１】消去動作のフローチャートである。
【図１２】読み出し動作のフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、ＮＡＮＤ型フラッシュメモリを含む情報処理装置の構成例を示している。図１の情報処理装置は、ＣＰＵ１０１、メモリ制御装置１０２、及びＮＡＮＤ型フラッシュメモリ１０３を含む。メモリ制御装置１０２は、コマンド送信部１１１、ランダマイザ１１２、及びデランダマイザ１１３を含む。ランダマイザ１１２は、乱数生成部１２１及び排他的論理和回路（ＸＯＲ）１２２を含み、デランダマイザ１１３は、乱数生成部１３１及びＸＯＲ１３２を含む。
【００１７】
ＮＡＮＤ型フラッシュメモリ１０３にデータを書き込む際、ＣＰＵ１０１は、書き込み要求を示す書き込みコマンドを、コマンド１４１としてメモリ制御装置１０２へ出力するとともに、書き込みデータ１４２をメモリ制御装置１０２へ出力する。コマンド送信部１１１は、書き込みコマンドをＮＡＮＤ型フラッシュメモリ１０３へ出力する。
【００１８】
ランダマイザ１１２の乱数生成部１２１は、書き込みデータ１４２のページ番号と誤り訂正符号（Error-Correction Code，ＥＣＣ）のＥＣＣ番号とから、ＰＲＢＳ（Pseudorandom Binary Sequence）等の疑似乱数を生成する。ＸＯＲ１２２は、書き込みデータ１４２と、乱数生成部１２１が出力する疑似乱数との排他的論理和を求めることで、ランダマイズされた書き込みデータ１４３を生成し、ＮＡＮＤ型フラッシュメモリ１０３へ出力する。
【００１９】
ＮＡＮＤ型フラッシュメモリ１０３からデータを読み出す際、ＣＰＵ１０１は、読み出し要求を示す読み出しコマンドを、コマンド１４１としてメモリ制御装置１０２へ出力する。コマンド送信部１１１は、読み出しコマンドをＮＡＮＤ型フラッシュメモリ１０３へ出力する。
【００２０】
デランダマイザ１１３の乱数生成部１３１は、ＮＡＮＤ型フラッシュメモリ１０３が出力する読み出しデータ１４４のページ番号及びＥＣＣ番号から疑似乱数を生成する。ＸＯＲ１３２は、読み出しデータ１４４と、乱数生成部１３１が出力する疑似乱数との排他的論理和を求めることで、デランダマイズされた読み出しデータ１４５を生成し、ＣＰＵ１０１へ出力する。読み出しデータ１４５は、ランダマイズされる前の書き込みデータ１４２と一致している。
【００２１】
ランダマイザ１１２は、疑似乱数の代わりにＡＥＳ（Advanced Encryption Standard）等の暗号化論理を用いて、書き込みデータ１４２をランダマイズしてもよい。この場合、デランダマイザ１１３は、疑似乱数の代わりに復号論理を用いて、読み出しデータ１４４をデランダマイズする。
【００２２】
図２は、図１の情報処理装置におけるブランクチェックの例を示している。図２（ａ）は、ＮＡＮＤ型フラッシュメモリ１０３内のデータを消去する動作の例を示している。データを消去する際、ＣＰＵ１０１は、消去要求を示す消去コマンドをコマンド１４１としてメモリ制御装置１０２へ出力し、コマンド送信部１１１は、消去コマンドをＮＡＮＤ型フラッシュメモリ１０３へ出力する。これにより、ＮＡＮＤ型フラッシュメモリ１０３内のページ２０１のすべてのビット値が論理値“１”に書き換えられ、ページ２０１のデータはブランクデータに変更される。
【００２３】
図２（ｂ）は、ＮＡＮＤ型フラッシュメモリ１０３からブランクデータを読み出す動作の例を示している。ＮＡＮＤ型フラッシュメモリ１０３からブランクデータを読み出す際、ＣＰＵ１０１は、読み出しコマンドをコマンド１４１としてメモリ制御装置１０２へ出力し、コマンド送信部１１１は、読み出しコマンドをＮＡＮＤ型フラッシュメモリ１０３へ出力する。
【００２４】
デランダマイザ１１３は、ＮＡＮＤ型フラッシュメモリ１０３が出力するブランクデータ２１１をデランダマイズすることで、デランダマイズされたブランクデータ２１２を生成し、ＣＰＵ１０１へ出力する。この場合、デランダマイズされたブランクデータ２１２の一部のビット値が、論理値“１”から論理値“０”に変化している。このため、消去処理が正しく行われているか否かをチェックすることは、極めて困難である。
【００２５】
図３は、実施形態のメモリ制御装置の構成例を示している。図３のメモリ制御装置３０１は、ランダマイザ３１１、デランダマイザ３１２、及び選択部３１３を含む。
【００２６】
図４は、図３のメモリ制御装置３０１におけるメモリ制御方法の例を示すフローチャートである。まず、ランダマイザ３１１は、演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力する（ステップ４０１）。
【００２７】
デランダマイザ３１２は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、デランダマイズされた読み出しデータを生成する（ステップ４０２）。この場合、デランダマイザ３１２は、メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成する。
【００２８】
選択部３１３は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、デランダマイズされた読み出しデータを選択して演算処理装置へ出力する（ステップ４０３）。一方、フラグが消去済みデータを示している場合、選択部３１３は、メモリから読み出された読み出しデータを選択して演算処理装置へ出力する（ステップ４０４）。
【００２９】
図３のメモリ制御装置３０１によれば、データをランダマイズしてメモリに書き込む情報処理装置において、メモリに対する消去チェックを行うことができる。
【００３０】
図５は、図３のメモリ制御装置３０１を含む情報処理装置の構成例を示している。図５の情報処理装置は、パーソナルコンピュータ、タブレット、スマートフォン、サーバ等であり、演算処理装置５０１、メモリ制御装置５０２、及びメモリ５０３を含む。
【００３１】
演算処理装置５０１は、ＣＰＵ、マイクロプロセッサ、デジタルシグナルプロセッサ等のプロセッサである。メモリ５０３は、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ等の不揮発性メモリであり、キャッシュメモリ、ＳＳＤ（Solid State Drive）等の外部記憶装置として設けられる。メモリ５０３は、ＭＲＡＭ（Magnetoresistive Random Access Memory）であってもよい。
【００３２】
メモリ制御装置５０２は、図３のメモリ制御装置３０１に対応し、制御部５１１、ランダマイザ５１２、デランダマイザ５１３、及び選択部５１４を含む。制御部５１１は、コマンド送信部５１５を含む。ランダマイザ５１２、デランダマイザ５１３、及び選択部５１４は、図３のランダマイザ３１１、デランダマイザ３１２、及び選択部３１３にそれぞれ対応する。ランダマイザ５１２及びデランダマイザ５１３として、図１のランダマイザ１１２及びデランダマイザ１１３を用いてもよい。
【００３３】
メモリ５０３は、ページ５２１を記憶する。ページ５２１は、リザーブデータ５２２及びデータ本体５２３を含む。データ本体５２３は、ユーザデータであり、リザーブデータ５２２は、データ本体５２３を管理するための管理情報である。リザーブデータ５２２には、フラグ５２４が含まれている。
【００３４】
フラグ５２４は、例えば、１ビットのビット値であり、ページ５２１のデータが消去済みデータ又はランダマイズされた書き込みデータのいずれであるかを示す。フラグ５２４が論理値“１”を有する場合、フラグ５２４は消去済みデータを示しており、フラグ５２４が論理値“０”を有する場合、フラグ５２４はランダマイズされた書き込みデータを示している。
【００３５】
メモリ５０３にデータを書き込む際、演算処理装置５０１は、書き込み要求を示す書き込みコマンドを、コマンド５３１としてメモリ制御装置５０２へ出力するとともに、書き込みデータ５３２をメモリ制御装置５０２へ出力する。ランダマイザ５１２は、書き込みデータ５３２をランダマイズして、ランダマイズされた書き込みデータ５３３を生成し、書き込みデータ５３３をメモリ５０３へ出力する。
【００３６】
制御部５１１は、演算処理装置５０１から書き込みコマンドを受け取った場合、論理値“０”を有するフラグ５２４を含む、ランダマイズされた書き込みデータ５３３をメモリ５０３に書き込む制御を行う。このとき、コマンド送信部５１５は、書き込みコマンドをメモリ５０３へ出力する。
【００３７】
図６は、書き込みデータ５３２の例を示している。図６の書き込みデータ５３２は、リザーブデータ６０１及びデータ本体６０２を含み、リザーブデータ６０１の先頭には、フラグ６０３が含まれている。例えば、リザーブデータ６０１は、数十バイトの管理情報であり、データ本体６０２は、数Ｋバイト〜数十Ｋバイトのユーザデータである。
【００３８】
ランダマイザ５１２によるランダマイズ処理は、データ本体６０２に対して適用され、リザーブデータ６０１に対しては適用されない。フラグ６０３は、論理値“０”を有し、リザーブデータ６０１は、リザーブデータ５２２としてメモリ５０３に書き込まれる。一方、データ本体６０２は、ランダマイザ５１２によってランダマイズされた後に、データ本体５２３としてメモリ５０３に書き込まれる。
【００３９】
図７は、ＥＣＣを含む書き込みデータ５３２の例を示している。図７の書き込みデータ５３２は、データＤ０〜データＤ３０及びデータＥ０〜データＥ３０を含む。各データＤｉ（ｉ＝０〜３０）は、リザーブデータ及びデータ本体を含み、各データＥｉは、データＤｉに対するＥＣＣを表す。この場合、先頭のデータＤ０にもリザーブデータが含まれており、そのリザーブデータの先頭に、図６のフラグ６０３と同様のフラグが含まれている。ランダマイザ５１２によるランダマイズ処理は、データＤｉに含まれるデータ本体とデータＥｉに対して適用され、リザーブデータに対しては適用されない。
【００４０】
データＤｉ（ｉ＝０〜２９）は５７４バイトのデータであり、データＤ３０は４８８バイトのデータである。データＤ３０には、他のデータＤｉのサイズに合わせるために、１０バイトの無効データと３４バイトの０ｐａｄとが付加されている。一方、データＥｉ（ｉ＝０〜３０）は４２バイトのデータである。
【００４１】
メモリ５０３内のデータを消去する際、演算処理装置５０１は、消去要求を示す消去コマンドを、コマンド５３１としてメモリ制御装置５０２へ出力する。制御部５１１は、演算処理装置５０１から消去コマンドを受け取った場合、論理値“１”を有するフラグ５２４を含む消去済みデータをメモリ５０３に書き込む制御を行う。このとき、コマンド送信部５１５は、消去コマンドをメモリ５０３へ出力する。例えば、消去済みデータとしては、すべてのビット値が論理値“１”を有するブランクデータが用いられる。
【００４２】
メモリ５０３からデータを読み出す際、演算処理装置５０１は、読み出し要求を示す読み出しコマンドを、コマンド５３１としてメモリ制御装置５０２へ出力する。制御部５１１は、演算処理装置５０１から読み出しコマンドを受け取った場合、メモリ５０３からページ５２１のデータを読み出す制御を行う。このとき、コマンド送信部５１５は、読み出しコマンドをメモリ５０３へ出力する。
【００４３】
メモリ５０３は、ページ５２１のデータを読み出しデータ５３４として出力する。デランダマイザ５１３は、読み出しデータ５３４に含まれるフラグ５２４の論理値に応じて、読み出しデータ５３４をデランダマイズするか否かを決定する。
【００４４】
デランダマイザ５１３は、読み出しデータ５３４に含まれるフラグ５２４が論理値“０”を有する場合、読み出しデータ５３４をデランダマイズして、デランダマイズされた読み出しデータ５３５を生成する。このとき、デランダマイザ５１３によるデランダマイズ処理は、データ本体５２３に対して適用され、リザーブデータ５２２に対しては適用されない。一方、読み出しデータ５３４に含まれるフラグ５２４が論理値“１”を有する場合、デランダマイザ５１３は、デランダマイズ処理を行わない。
【００４５】
デランダマイザ５１３は、デランダマイズされた読み出しデータ５３５を、選択部５１４の２つの入力ポートのうち一方の入力ポートへ出力する。読み出しデータ５３４は、デランダマイザ５１３をバイパスして、選択部５１４の他方の入力ポートに入力され、読み出しデータ５３４に含まれるフラグ５２４は、制御信号５３６として選択部５１４に入力される。
【００４６】
選択部５１４は、制御信号５３６が論理値“０”を有する場合、デランダマイズされた読み出しデータ５３５を読み出しデータ５３７として選択し、演算処理装置５０１へ出力する。一方、制御信号５３６が論理値“１”を有する場合、選択部５１４は、読み出しデータ５３４を読み出しデータ５３７として選択し、演算処理装置５０１へ出力する。
【００４７】
このように、メモリ５０３が記憶するページ５２１に、消去済みデータであるか否かを示すフラグ５２４を設けることで、メモリ制御装置５０２は、読み出しデータ５３４にデランダマイザ５１３をバイパスさせるか否かを自動的に制御することができる。メモリ制御装置５０２は、すべてのビット値が論理値“１”を有する消去済みデータを読み出した場合、デランダマイザ５１３をバイパスして、その消去済みデータを演算処理装置５０１へ出力する。これにより、演算処理装置５０１においてブランクチェックを行うことが可能になる。
【００４８】
図８は、図５の情報処理装置における書き込み動作及び読み出し動作の例を示している。図８（ａ）は、メモリ５０３にユーザデータを書き込む動作の例を示している。メモリ５０３にユーザデータを書き込む際、演算処理装置５０１は、書き込みコマンドをコマンド５３１としてメモリ制御装置５０２へ出力するとともに、書き込みデータ８０１をメモリ制御装置５０２へ出力する。書き込みデータ８０１は、リザーブデータ８１１及びデータ本体８１２を含み、リザーブデータ８１１の先頭に含まれているフラグ８１３は、論理値“０”を有する。
【００４９】
ランダマイザ５１２は、書き込みデータ８０１のデータ本体８１２をランダマイズして、ランダマイズされた書き込みデータ８０２を生成し、書き込みデータ８０２をメモリ５０３へ出力する。そして、制御部５１１のコマンド送信部５１５は、書き込みコマンドをメモリ５０３へ出力する。これにより、書き込みデータ８０２に含まれる、リザーブデータ８１１及びランダマイズされたデータ本体８１５が、メモリ５０３内のページ８１４に書き込まれる。
【００５０】
図８（ｂ）は、メモリ５０３からユーザデータを読み出す動作の例を示している。メモリ５０３からユーザデータを読み出す際、演算処理装置５０１は、読み出しコマンドをコマンド５３１としてメモリ制御装置５０２へ出力する。コマンド送信部５１５は、読み出しコマンドをメモリ５０３へ出力し、メモリ５０３は、ページ８１４のデータを読み出しデータ８０３として出力する。
【００５１】
読み出しデータ８０３に含まれるフラグ８１３は論理値“０”を有するため、デランダマイザ５１３は、読み出しデータ８０３のデータ本体８１５をデランダマイズして、デランダマイズされた読み出しデータ８０４を生成し、選択部５１４へ出力する。また、読み出しデータ８０３に含まれるフラグ８１３は、制御信号５３６として選択部５１４に入力される。
【００５２】
選択部５１４は、論理値“０”の制御信号５３６に従って、デランダマイズされた読み出しデータ８０４を読み出しデータ８０５として選択し、演算処理装置５０１へ出力する。これにより、演算処理装置５０１は、書き込みデータ８０１と同じデータを取得することができる。
【００５３】
図９は、図５の情報処理装置によって行われる、フラグに基づくブランクチェックの例を示している。図９（ａ）は、メモリ５０３内のデータを消去する動作の例を示している。メモリ５０３内のデータを消去する際、演算処理装置５０１は、消去コマンドをコマンド５３１としてメモリ制御装置５０２へ出力する。制御部５１１のコマンド送信部５１５は、消去コマンドをメモリ５０３へ出力し、メモリ５０３は、リザーブデータ８１１及びデータ本体８１５のすべてのビット値を論理値“１”に書き換える。これにより、ページ８１４のデータはブランクデータに変更され、フラグ８１３のビット値も論理値“０”から論理値“１”に変更される。
【００５４】
図９（ｂ）は、メモリ５０３からブランクデータを読み出す動作の例を示している。メモリ５０３からブランクデータを読み出す際、演算処理装置５０１は、読み出しコマンドをコマンド５３１としてメモリ制御装置５０２へ出力する。コマンド送信部５１５は、読み出しコマンドをメモリ５０３へ出力し、メモリ５０３は、ページ８１４のブランクデータを読み出しデータ９０１として出力する。
【００５５】
読み出しデータ９０１に含まれるフラグ８１３は論理値“１”を有するため、デランダマイザ５１３は、デランダマイズ処理を行わない。読み出しデータ９０１に含まれるフラグ８１３は、制御信号５３６として選択部５１４に入力される。
【００５６】
選択部５１４は、論理値“１”の制御信号５３６に従って、読み出しデータ９０１を読み出しデータ９０２として選択し、演算処理装置５０１へ出力する。これにより、演算処理装置５０１は、ページ８１４のブランクデータを取得することができるため、消去処理が正しく行われたか否かをチェックすることが可能になる。
【００５７】
図８（ａ）に示したように、メモリ制御装置５０２は、メモリ５０３にユーザデータを書き込む場合、論理値“０”を有するフラグ８１３を含む、ランダマイズされた書き込みデータ８０２をページ８１４に書き込む。また、図９（ａ）に示したように、メモリ制御装置５０２は、メモリ５０３内のデータを消去する場合、論理値“１”を有するフラグ８１３を含むブランクデータをページ８１４に書き込む。
【００５８】
これにより、メモリ制御装置５０２は、メモリ５０３から読み出したデータに含まれるフラグ８１３の論理値に基づいて、読み出されたデータがユーザデータ又はブランクデータのいずれであるかを判定することができる。
【００５９】
さらに、ブランクデータを示すフラグ８１３として、ブランクデータのビット値と同じ論理値“１”を用いることで、メモリ制御装置５０２は、消去コマンドをメモリ５０３へ出力するだけで、ブランクデータを示す論理値をフラグ８１３に設定することができる。
【００６０】
図１０は、図５のメモリ制御装置５０２が行う書き込み動作の例を示すフローチャートである。まず、メモリ制御装置５０２は、演算処理装置５０１から書き込みデータ５３２を受け取る（ステップ１００１）。そして、ランダマイザ５１２は、書き込みデータ５３２のデータ本体をランダマイズして、ランダマイズされた書き込みデータ５３３を生成する（ステップ１００２）。
【００６１】
次に、制御部５１１は、書き込みコマンドをメモリ５０３へ出力し（ステップ１００３）、ランダマイザ５１２は、ランダマイズされた書き込みデータ５３３を、メモリ５０３内のページ５２１に書き込む（ステップ１００４）。ランダマイズされた書き込みデータ５３３は、リザーブデータ５２２とランダマイズされたデータ本体５２３とを含み、リザーブデータ５２２は、論理値“０”を有するフラグ５２４を含む。
【００６２】
図１１は、図５のメモリ制御装置５０２が行う消去動作の例を示すフローチャートである。制御部５１１は、消去コマンドをメモリ５０３へ出力する（ステップ１１０１）。これにより、メモリ５０３内のページ５２１のデータがブランクデータに書き換えられる。
【００６３】
図１２は、図５のメモリ制御装置５０２が行う読み出し動作の例を示すフローチャートである。まず、制御部５１１は、読み出しコマンドをメモリ５０３へ出力し、ページ５２１のデータを読み出しデータ５３４として読み出す（ステップ１２０１）。そして、デランダマイザ５１３は、読み出しデータ５３４に含まれるフラグ５２４をチェックする（ステップ１２０２）。
【００６４】
フラグ５２４が論理値“０”を有する場合（ステップ１２０２，ＮＯ）、デランダマイザ５１３は、読み出しデータ５３４のデータ本体をデランダマイズして、デランダマイズされた読み出しデータ５３５を生成する（ステップ１２０３）。そして、選択部５１４は、論理値“０”の制御信号５３６に従って、デランダマイズされた読み出しデータ５３５を読み出しデータ５３７として選択し、演算処理装置５０１へ出力する（ステップ１２０４）。
【００６５】
一方、フラグ５２４が論理値“１”を有する場合（ステップ１２０２，ＹＥＳ）、選択部５１４は、論理値“１”の制御信号５３６に従って、読み出しデータ５３４を読み出しデータ５３７として選択し、演算処理装置５０１へ出力する（ステップ１２０５）。
【００６６】
図１及び図５の情報処理装置の構成は一例に過ぎず、情報処理装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
【００６７】
情報処理装置は、キーボード、ポインティングデバイス等の入力装置、又は表示装置等の出力装置を含んでいてもよい。さらに、情報処理装置は、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）ドライブ等の媒体駆動装置、又はネットワークインタフェースカード等の通信装置を含んでいてもよい。
【００６８】
消去済みデータとして、すべてのビット値が論理値“０”であるデータが用いられる場合、図５のフラグ５２４として、論理値を入れ替えたフラグを用いることができる。この場合、ランダマイズされた書き込みデータを示すフラグ５２４として論理値“１”が用いられ、消去済みデータを示すフラグ５２４として論理値“０”が用いられる。
【００６９】
図３のメモリ制御装置３０１の構成は一例に過ぎず、メモリ制御装置３０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
【００７０】
図４及び図１０〜図１２のフローチャートは一例に過ぎず、メモリ制御装置３０１又は情報処理装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。
【００７１】
図２及び図９に示したブランクチェックは一例に過ぎず、ブランクチェックの動作は、情報処理装置の構成又は条件に応じて変化する。図８に示した書き込み動作及び読み出し動作は一例に過ぎず、書き込み動作及び読み出し動作は、情報処理装置の構成又は条件に応じて変化する。
【００７２】
図６及び図７に示した書き込みデータは一例に過ぎず、書き込みデータのフォーマットは、情報処理装置の構成又は条件に応じて変化する。
【００７３】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【００７４】
図１乃至図１２を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力するランダマイザと、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成するデランダマイザと、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する選択部と、
を備えることを特徴とするメモリ制御装置。
（付記２）
前記演算処理装置から書き込み要求を受け取った場合、第１論理値を有するフラグを含む、ランダマイズされた書き込みデータを前記メモリに書き込む制御を行い、前記演算処理装置から消去要求を受け取った場合、第２論理値を有するフラグを含む消去済みデータを前記メモリに書き込む制御を行う制御部をさらに備え、
前記デランダマイザは、前記メモリから読み出された読み出しデータに含まれるフラグが前記第１論理値を有する場合、前記メモリから読み出された読み出しデータをデランダマイズして、前記デランダマイズされた読み出しデータを生成し、
前記選択部は、前記メモリから読み出された読み出しデータに含まれるフラグが前記第１論理値を有する場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記メモリから読み出された読み出しデータに含まれるフラグが前記第２論理値を有する場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力することを特徴とする付記１記載のメモリ制御装置。
（付記３）
前記消去済みデータに含まれるすべての論理値は前記第２論理値であることを特徴とする付記２記載のメモリ制御装置。
（付記４）
前記メモリはＮＡＮＤ型フラッシュメモリであることを特徴とする付記１乃至３のいずれか１項に記載のメモリ制御装置。
（付記５）
演算処理装置とメモリとメモリ制御装置とを備える情報処理装置であって、
前記メモリ制御装置は、
前記演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータを前記メモリへ出力するランダマイザと、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成するデランダマイザと、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する選択部とを含むことを特徴とする情報処理装置。
（付記６）
前記メモリ制御装置は、前記演算処理装置から書き込み要求を受け取った場合、第１論理値を有するフラグを含む、ランダマイズされた書き込みデータを前記メモリに書き込む制御を行い、前記演算処理装置から消去要求を受け取った場合、第２論理値を有するフラグを含む消去済みデータを前記メモリに書き込む制御を行う制御部をさらに含み、
前記デランダマイザは、前記メモリから読み出された読み出しデータに含まれるフラグが前記第１論理値を有する場合、前記メモリから読み出された読み出しデータをデランダマイズして、前記デランダマイズされた読み出しデータを生成し、
前記選択部は、前記メモリから読み出された読み出しデータに含まれるフラグが前記第１論理値を有する場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記メモリから読み出された読み出しデータに含まれるフラグが前記第２論理値を有する場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力することを特徴とする付記５記載の情報処理装置。
（付記７）
前記消去済みデータに含まれるすべての論理値は前記第２論理値であることを特徴とする付記６記載の情報処理装置。
（付記８）
前記メモリはＮＡＮＤ型フラッシュメモリであることを特徴とする付記５乃至７のいずれか１項に記載の情報処理装置。
（付記９）
演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力し、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成し、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する、
ことを特徴とするメモリ制御方法。
（付記１０）
前記演算処理装置から書き込み要求を受け取った場合、第１論理値を有するフラグを含む、ランダマイズされた書き込みデータを前記メモリに書き込む制御を行い、
前記演算処理装置から消去要求を受け取った場合、第２論理値を有するフラグを含む消去済みデータを前記メモリに書き込む制御を行い、
前記メモリから読み出された読み出しデータに含まれるフラグが前記第１論理値を有する場合、前記メモリから読み出された読み出しデータをデランダマイズして、前記デランダマイズされた読み出しデータを生成し、
前記メモリから読み出された読み出しデータに含まれるフラグが前記第１論理値を有する場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記メモリから読み出された読み出しデータに含まれるフラグが前記第２論理値を有する場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力することを特徴とする付記９記載のメモリ制御方法。
（付記１１）
前記消去済みデータに含まれるすべての論理値は前記第２論理値であることを特徴とする付記１０記載のメモリ制御方法。
（付記１２）
前記メモリはＮＡＮＤ型フラッシュメモリであることを特徴とする付記９乃至１１のいずれか１項に記載のメモリ制御方法。
【符号の説明】
【００７５】
１０１  ＣＰＵ
１０２、３０１、５０２  メモリ制御装置
１０３  ＮＡＮＤ型フラッシュメモリ
１１１、５１５  コマンド送信部
１１２、３１１、５１２  ランダマイザ
１１３、３１２、５１３  デランダマイザ
１２１、１３１  乱数生成部
１２２、１３２  ＸＯＲ
１４１、５３１  コマンド
１４２、５３２、８０１  書き込みデータ
１４３、５３３、８０２  ランダマイズされた書き込みデータ
１４４、５３４、５３７、８０３、８０５、９０１、９０２  読み出しデータ
１４５、５３５、８０４  デランダマイズされた読み出しデータ
２０１、５２１、８１４  ページ
２１１  ブランクデータ
２１２  デランダマイズされたブランクデータ
３１３、５１４  選択部
５０１  演算処理装置
５０３  メモリ
５１１  制御部
５２２、６０１、８１１  リザーブデータ
５２３、６０２、８１２、８１５  データ本体
５２４、６０３、８１３  フラグ
５３６  制御信号
【図１】
2019215945.tif 000003
【図２】
2019215945.tif 000004
【図３】
2019215945.tif 000005
【図４】
2019215945.tif 000006
【図５】
2019215945.tif 000007
【図６】
2019215945.tif 000008
【図７】
2019215945.tif 000009
【図８】
2019215945.tif 000010
【図９】
2019215945.tif 000011
【図１０】
2019215945.tif 000012
【図１１】
2019215945.tif 000013
【図１２】
2019215945.tif 000014