JP2019215945A - メモリ制御装置、情報処理装置、及びメモリ制御方法 - Google Patents

メモリ制御装置、情報処理装置、及びメモリ制御方法 Download PDF

Info

Publication number
JP2019215945A
JP2019215945A JP2018113253A JP2018113253A JP2019215945A JP 2019215945 A JP2019215945 A JP 2019215945A JP 2018113253 A JP2018113253 A JP 2018113253A JP 2018113253 A JP2018113253 A JP 2018113253A JP 2019215945 A JP2019215945 A JP 2019215945A
Authority
JP
Japan
Prior art keywords
data
memory
read
randomized
read data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018113253A
Other languages
English (en)
Inventor
将嘉 松村
Masayoshi Matsumura
将嘉 松村
浩志 中山
Hiroshi Nakayama
浩志 中山
孝夫 松井
Takao Matsui
孝夫 松井
崇史 山本
Takashi Yamamoto
崇史 山本
由佳 細川
Yuka Hosokawa
由佳 細川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018113253A priority Critical patent/JP2019215945A/ja
Priority to US16/438,727 priority patent/US10777287B2/en
Publication of JP2019215945A publication Critical patent/JP2019215945A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/3445Circuits or methods to verify correct erasure of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits

Abstract

【課題】データをランダマイズしてメモリに書き込む情報処理装置において、メモリに対する消去チェックを行う。【解決手段】ランダマイザ311は、演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力する。デランダマイザ312は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成する。選択部313は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、デランダマイズされた読み出しデータを選択して演算処理装置へ出力する。一方、フラグが消去済みデータを示している場合、選択部313は、メモリから読み出された読み出しデータを選択して演算処理装置へ出力する。【選択図】図3

Description

本発明は、メモリ制御装置、情報処理装置、及びメモリ制御方法に関する。
情報処理装置において、CPU(Central Processing Unit)がNAND型フラッシュメモリにデータを書き込む場合、NAND型フラッシュメモリ内のデータを一旦消去してから、新たなデータを書き込む。このとき、CPUは、信頼性担保のために、消去処理を行った後に、NAND型フラッシュメモリからデータを読み出し、消去処理が正しく行われているか否かをチェックすることがある。このような消去チェックは、ブランクチェックと呼ばれる。
NAND型フラッシュメモリでは、消去処理が行われた後の消去済みデータとして、すべてのビット値が論理値“1”を有するブランクデータが用いられることが多い。したがって、ブランクチェックでは、NAND型フラッシュメモリから読み出された読み出しデータのすべてのビット値が論理値“1”であるか否かがチェックされる。
フラッシュメモリに関して、オートイレーズコマンドに従って記憶内容を消去するフラッシュメモリ制御回路、及び、消去動作と消去ベリファイ動作とを繰り返し行う不揮発性メモリが知られている(例えば、特許文献1及び特許文献2を参照)。フラッシュメモリデバイスに対する消去検証動作の実施方法も知られている(例えば、特許文献3を参照)。
特開平11−260075号公報 特開2004−134085号公報 特開2001−176276号公報
NAND型フラッシュメモリを記憶装置として実装する情報処理装置には、NAND型フラッシュメモリに対するデータの書き込みと、NAND型フラッシュメモリからのデータの読み出しとを制御するために、メモリ制御装置が設けられる。
NAND型フラッシュメモリにデータを書き込む際、同一のビット値を続けて書き込むとビット反転が起こりやすくなるため、メモリ制御装置は、データをランダマイズしてから書き込むことがある。この場合、メモリ制御装置は、NAND型フラッシュメモリから読み出したデータをデランダマイズして、元のデータを復元する。
しかしながら、NAND型フラッシュメモリから読み出したブランクデータをデランダマイズすると、ブランクチェックを行うことが困難になる。
なお、かかる問題は、データを書き込む際にランダマイズを行うNAND型フラッシュメモリに対するブランクチェックに限らず、データを書き込む際にランダマイズを行う他の種別のメモリに対するブランクチェックにおいても生ずるものである。
1つの側面において、本発明は、データをランダマイズしてメモリに書き込む情報処理装置において、メモリに対する消去チェックを行うことを目的とする。
1つの案では、メモリ制御装置は、ランダマイザ、デランダマイザ、及び選択部を含む。
ランダマイザは、演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力する。デランダマイザは、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成する。
選択部は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、デランダマイズされた読み出しデータを選択して演算処理装置へ出力する。一方、フラグが消去済みデータを示している場合、選択部は、メモリから読み出された読み出しデータを選択して演算処理装置へ出力する。
実施形態によれば、データをランダマイズしてメモリに書き込む情報処理装置において、メモリに対する消去チェックを行うことができる。
NAND型フラッシュメモリを含む情報処理装置の構成図である。 ブランクチェックを示す図である。 メモリ制御装置の構成図である。 メモリ制御方法のフローチャートである。 情報処理装置の構成図である。 書き込みデータを示す図である。 ECCを含む書き込みデータを示す図である。 書き込み動作及び読み出し動作を示す図である。 フラグに基づくブランクチェックを示す図である。 書き込み動作のフローチャートである。 消去動作のフローチャートである。 読み出し動作のフローチャートである。
以下、図面を参照しながら、実施形態を詳細に説明する。
図1は、NAND型フラッシュメモリを含む情報処理装置の構成例を示している。図1の情報処理装置は、CPU101、メモリ制御装置102、及びNAND型フラッシュメモリ103を含む。メモリ制御装置102は、コマンド送信部111、ランダマイザ112、及びデランダマイザ113を含む。ランダマイザ112は、乱数生成部121及び排他的論理和回路(XOR)122を含み、デランダマイザ113は、乱数生成部131及びXOR132を含む。
NAND型フラッシュメモリ103にデータを書き込む際、CPU101は、書き込み要求を示す書き込みコマンドを、コマンド141としてメモリ制御装置102へ出力するとともに、書き込みデータ142をメモリ制御装置102へ出力する。コマンド送信部111は、書き込みコマンドをNAND型フラッシュメモリ103へ出力する。
ランダマイザ112の乱数生成部121は、書き込みデータ142のページ番号と誤り訂正符号(Error-Correction Code,ECC)のECC番号とから、PRBS(Pseudorandom Binary Sequence)等の疑似乱数を生成する。XOR122は、書き込みデータ142と、乱数生成部121が出力する疑似乱数との排他的論理和を求めることで、ランダマイズされた書き込みデータ143を生成し、NAND型フラッシュメモリ103へ出力する。
NAND型フラッシュメモリ103からデータを読み出す際、CPU101は、読み出し要求を示す読み出しコマンドを、コマンド141としてメモリ制御装置102へ出力する。コマンド送信部111は、読み出しコマンドをNAND型フラッシュメモリ103へ出力する。
デランダマイザ113の乱数生成部131は、NAND型フラッシュメモリ103が出力する読み出しデータ144のページ番号及びECC番号から疑似乱数を生成する。XOR132は、読み出しデータ144と、乱数生成部131が出力する疑似乱数との排他的論理和を求めることで、デランダマイズされた読み出しデータ145を生成し、CPU101へ出力する。読み出しデータ145は、ランダマイズされる前の書き込みデータ142と一致している。
ランダマイザ112は、疑似乱数の代わりにAES(Advanced Encryption Standard)等の暗号化論理を用いて、書き込みデータ142をランダマイズしてもよい。この場合、デランダマイザ113は、疑似乱数の代わりに復号論理を用いて、読み出しデータ144をデランダマイズする。
図2は、図1の情報処理装置におけるブランクチェックの例を示している。図2(a)は、NAND型フラッシュメモリ103内のデータを消去する動作の例を示している。データを消去する際、CPU101は、消去要求を示す消去コマンドをコマンド141としてメモリ制御装置102へ出力し、コマンド送信部111は、消去コマンドをNAND型フラッシュメモリ103へ出力する。これにより、NAND型フラッシュメモリ103内のページ201のすべてのビット値が論理値“1”に書き換えられ、ページ201のデータはブランクデータに変更される。
図2(b)は、NAND型フラッシュメモリ103からブランクデータを読み出す動作の例を示している。NAND型フラッシュメモリ103からブランクデータを読み出す際、CPU101は、読み出しコマンドをコマンド141としてメモリ制御装置102へ出力し、コマンド送信部111は、読み出しコマンドをNAND型フラッシュメモリ103へ出力する。
デランダマイザ113は、NAND型フラッシュメモリ103が出力するブランクデータ211をデランダマイズすることで、デランダマイズされたブランクデータ212を生成し、CPU101へ出力する。この場合、デランダマイズされたブランクデータ212の一部のビット値が、論理値“1”から論理値“0”に変化している。このため、消去処理が正しく行われているか否かをチェックすることは、極めて困難である。
図3は、実施形態のメモリ制御装置の構成例を示している。図3のメモリ制御装置301は、ランダマイザ311、デランダマイザ312、及び選択部313を含む。
図4は、図3のメモリ制御装置301におけるメモリ制御方法の例を示すフローチャートである。まず、ランダマイザ311は、演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力する(ステップ401)。
デランダマイザ312は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、デランダマイズされた読み出しデータを生成する(ステップ402)。この場合、デランダマイザ312は、メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成する。
選択部313は、メモリから読み出された読み出しデータに含まれるフラグが、ランダマイズされた書き込みデータを示している場合、デランダマイズされた読み出しデータを選択して演算処理装置へ出力する(ステップ403)。一方、フラグが消去済みデータを示している場合、選択部313は、メモリから読み出された読み出しデータを選択して演算処理装置へ出力する(ステップ404)。
図3のメモリ制御装置301によれば、データをランダマイズしてメモリに書き込む情報処理装置において、メモリに対する消去チェックを行うことができる。
図5は、図3のメモリ制御装置301を含む情報処理装置の構成例を示している。図5の情報処理装置は、パーソナルコンピュータ、タブレット、スマートフォン、サーバ等であり、演算処理装置501、メモリ制御装置502、及びメモリ503を含む。
演算処理装置501は、CPU、マイクロプロセッサ、デジタルシグナルプロセッサ等のプロセッサである。メモリ503は、NAND型フラッシュメモリ、NOR型フラッシュメモリ等の不揮発性メモリであり、キャッシュメモリ、SSD(Solid State Drive)等の外部記憶装置として設けられる。メモリ503は、MRAM(Magnetoresistive Random Access Memory)であってもよい。
メモリ制御装置502は、図3のメモリ制御装置301に対応し、制御部511、ランダマイザ512、デランダマイザ513、及び選択部514を含む。制御部511は、コマンド送信部515を含む。ランダマイザ512、デランダマイザ513、及び選択部514は、図3のランダマイザ311、デランダマイザ312、及び選択部313にそれぞれ対応する。ランダマイザ512及びデランダマイザ513として、図1のランダマイザ112及びデランダマイザ113を用いてもよい。
メモリ503は、ページ521を記憶する。ページ521は、リザーブデータ522及びデータ本体523を含む。データ本体523は、ユーザデータであり、リザーブデータ522は、データ本体523を管理するための管理情報である。リザーブデータ522には、フラグ524が含まれている。
フラグ524は、例えば、1ビットのビット値であり、ページ521のデータが消去済みデータ又はランダマイズされた書き込みデータのいずれであるかを示す。フラグ524が論理値“1”を有する場合、フラグ524は消去済みデータを示しており、フラグ524が論理値“0”を有する場合、フラグ524はランダマイズされた書き込みデータを示している。
メモリ503にデータを書き込む際、演算処理装置501は、書き込み要求を示す書き込みコマンドを、コマンド531としてメモリ制御装置502へ出力するとともに、書き込みデータ532をメモリ制御装置502へ出力する。ランダマイザ512は、書き込みデータ532をランダマイズして、ランダマイズされた書き込みデータ533を生成し、書き込みデータ533をメモリ503へ出力する。
制御部511は、演算処理装置501から書き込みコマンドを受け取った場合、論理値“0”を有するフラグ524を含む、ランダマイズされた書き込みデータ533をメモリ503に書き込む制御を行う。このとき、コマンド送信部515は、書き込みコマンドをメモリ503へ出力する。
図6は、書き込みデータ532の例を示している。図6の書き込みデータ532は、リザーブデータ601及びデータ本体602を含み、リザーブデータ601の先頭には、フラグ603が含まれている。例えば、リザーブデータ601は、数十バイトの管理情報であり、データ本体602は、数Kバイト〜数十Kバイトのユーザデータである。
ランダマイザ512によるランダマイズ処理は、データ本体602に対して適用され、リザーブデータ601に対しては適用されない。フラグ603は、論理値“0”を有し、リザーブデータ601は、リザーブデータ522としてメモリ503に書き込まれる。一方、データ本体602は、ランダマイザ512によってランダマイズされた後に、データ本体523としてメモリ503に書き込まれる。
図7は、ECCを含む書き込みデータ532の例を示している。図7の書き込みデータ532は、データD0〜データD30及びデータE0〜データE30を含む。各データDi(i=0〜30)は、リザーブデータ及びデータ本体を含み、各データEiは、データDiに対するECCを表す。この場合、先頭のデータD0にもリザーブデータが含まれており、そのリザーブデータの先頭に、図6のフラグ603と同様のフラグが含まれている。ランダマイザ512によるランダマイズ処理は、データDiに含まれるデータ本体とデータEiに対して適用され、リザーブデータに対しては適用されない。
データDi(i=0〜29)は574バイトのデータであり、データD30は488バイトのデータである。データD30には、他のデータDiのサイズに合わせるために、10バイトの無効データと34バイトの0padとが付加されている。一方、データEi(i=0〜30)は42バイトのデータである。
メモリ503内のデータを消去する際、演算処理装置501は、消去要求を示す消去コマンドを、コマンド531としてメモリ制御装置502へ出力する。制御部511は、演算処理装置501から消去コマンドを受け取った場合、論理値“1”を有するフラグ524を含む消去済みデータをメモリ503に書き込む制御を行う。このとき、コマンド送信部515は、消去コマンドをメモリ503へ出力する。例えば、消去済みデータとしては、すべてのビット値が論理値“1”を有するブランクデータが用いられる。
メモリ503からデータを読み出す際、演算処理装置501は、読み出し要求を示す読み出しコマンドを、コマンド531としてメモリ制御装置502へ出力する。制御部511は、演算処理装置501から読み出しコマンドを受け取った場合、メモリ503からページ521のデータを読み出す制御を行う。このとき、コマンド送信部515は、読み出しコマンドをメモリ503へ出力する。
メモリ503は、ページ521のデータを読み出しデータ534として出力する。デランダマイザ513は、読み出しデータ534に含まれるフラグ524の論理値に応じて、読み出しデータ534をデランダマイズするか否かを決定する。
デランダマイザ513は、読み出しデータ534に含まれるフラグ524が論理値“0”を有する場合、読み出しデータ534をデランダマイズして、デランダマイズされた読み出しデータ535を生成する。このとき、デランダマイザ513によるデランダマイズ処理は、データ本体523に対して適用され、リザーブデータ522に対しては適用されない。一方、読み出しデータ534に含まれるフラグ524が論理値“1”を有する場合、デランダマイザ513は、デランダマイズ処理を行わない。
デランダマイザ513は、デランダマイズされた読み出しデータ535を、選択部514の2つの入力ポートのうち一方の入力ポートへ出力する。読み出しデータ534は、デランダマイザ513をバイパスして、選択部514の他方の入力ポートに入力され、読み出しデータ534に含まれるフラグ524は、制御信号536として選択部514に入力される。
選択部514は、制御信号536が論理値“0”を有する場合、デランダマイズされた読み出しデータ535を読み出しデータ537として選択し、演算処理装置501へ出力する。一方、制御信号536が論理値“1”を有する場合、選択部514は、読み出しデータ534を読み出しデータ537として選択し、演算処理装置501へ出力する。
このように、メモリ503が記憶するページ521に、消去済みデータであるか否かを示すフラグ524を設けることで、メモリ制御装置502は、読み出しデータ534にデランダマイザ513をバイパスさせるか否かを自動的に制御することができる。メモリ制御装置502は、すべてのビット値が論理値“1”を有する消去済みデータを読み出した場合、デランダマイザ513をバイパスして、その消去済みデータを演算処理装置501へ出力する。これにより、演算処理装置501においてブランクチェックを行うことが可能になる。
図8は、図5の情報処理装置における書き込み動作及び読み出し動作の例を示している。図8(a)は、メモリ503にユーザデータを書き込む動作の例を示している。メモリ503にユーザデータを書き込む際、演算処理装置501は、書き込みコマンドをコマンド531としてメモリ制御装置502へ出力するとともに、書き込みデータ801をメモリ制御装置502へ出力する。書き込みデータ801は、リザーブデータ811及びデータ本体812を含み、リザーブデータ811の先頭に含まれているフラグ813は、論理値“0”を有する。
ランダマイザ512は、書き込みデータ801のデータ本体812をランダマイズして、ランダマイズされた書き込みデータ802を生成し、書き込みデータ802をメモリ503へ出力する。そして、制御部511のコマンド送信部515は、書き込みコマンドをメモリ503へ出力する。これにより、書き込みデータ802に含まれる、リザーブデータ811及びランダマイズされたデータ本体815が、メモリ503内のページ814に書き込まれる。
図8(b)は、メモリ503からユーザデータを読み出す動作の例を示している。メモリ503からユーザデータを読み出す際、演算処理装置501は、読み出しコマンドをコマンド531としてメモリ制御装置502へ出力する。コマンド送信部515は、読み出しコマンドをメモリ503へ出力し、メモリ503は、ページ814のデータを読み出しデータ803として出力する。
読み出しデータ803に含まれるフラグ813は論理値“0”を有するため、デランダマイザ513は、読み出しデータ803のデータ本体815をデランダマイズして、デランダマイズされた読み出しデータ804を生成し、選択部514へ出力する。また、読み出しデータ803に含まれるフラグ813は、制御信号536として選択部514に入力される。
選択部514は、論理値“0”の制御信号536に従って、デランダマイズされた読み出しデータ804を読み出しデータ805として選択し、演算処理装置501へ出力する。これにより、演算処理装置501は、書き込みデータ801と同じデータを取得することができる。
図9は、図5の情報処理装置によって行われる、フラグに基づくブランクチェックの例を示している。図9(a)は、メモリ503内のデータを消去する動作の例を示している。メモリ503内のデータを消去する際、演算処理装置501は、消去コマンドをコマンド531としてメモリ制御装置502へ出力する。制御部511のコマンド送信部515は、消去コマンドをメモリ503へ出力し、メモリ503は、リザーブデータ811及びデータ本体815のすべてのビット値を論理値“1”に書き換える。これにより、ページ814のデータはブランクデータに変更され、フラグ813のビット値も論理値“0”から論理値“1”に変更される。
図9(b)は、メモリ503からブランクデータを読み出す動作の例を示している。メモリ503からブランクデータを読み出す際、演算処理装置501は、読み出しコマンドをコマンド531としてメモリ制御装置502へ出力する。コマンド送信部515は、読み出しコマンドをメモリ503へ出力し、メモリ503は、ページ814のブランクデータを読み出しデータ901として出力する。
読み出しデータ901に含まれるフラグ813は論理値“1”を有するため、デランダマイザ513は、デランダマイズ処理を行わない。読み出しデータ901に含まれるフラグ813は、制御信号536として選択部514に入力される。
選択部514は、論理値“1”の制御信号536に従って、読み出しデータ901を読み出しデータ902として選択し、演算処理装置501へ出力する。これにより、演算処理装置501は、ページ814のブランクデータを取得することができるため、消去処理が正しく行われたか否かをチェックすることが可能になる。
図8(a)に示したように、メモリ制御装置502は、メモリ503にユーザデータを書き込む場合、論理値“0”を有するフラグ813を含む、ランダマイズされた書き込みデータ802をページ814に書き込む。また、図9(a)に示したように、メモリ制御装置502は、メモリ503内のデータを消去する場合、論理値“1”を有するフラグ813を含むブランクデータをページ814に書き込む。
これにより、メモリ制御装置502は、メモリ503から読み出したデータに含まれるフラグ813の論理値に基づいて、読み出されたデータがユーザデータ又はブランクデータのいずれであるかを判定することができる。
さらに、ブランクデータを示すフラグ813として、ブランクデータのビット値と同じ論理値“1”を用いることで、メモリ制御装置502は、消去コマンドをメモリ503へ出力するだけで、ブランクデータを示す論理値をフラグ813に設定することができる。
図10は、図5のメモリ制御装置502が行う書き込み動作の例を示すフローチャートである。まず、メモリ制御装置502は、演算処理装置501から書き込みデータ532を受け取る(ステップ1001)。そして、ランダマイザ512は、書き込みデータ532のデータ本体をランダマイズして、ランダマイズされた書き込みデータ533を生成する(ステップ1002)。
次に、制御部511は、書き込みコマンドをメモリ503へ出力し(ステップ1003)、ランダマイザ512は、ランダマイズされた書き込みデータ533を、メモリ503内のページ521に書き込む(ステップ1004)。ランダマイズされた書き込みデータ533は、リザーブデータ522とランダマイズされたデータ本体523とを含み、リザーブデータ522は、論理値“0”を有するフラグ524を含む。
図11は、図5のメモリ制御装置502が行う消去動作の例を示すフローチャートである。制御部511は、消去コマンドをメモリ503へ出力する(ステップ1101)。これにより、メモリ503内のページ521のデータがブランクデータに書き換えられる。
図12は、図5のメモリ制御装置502が行う読み出し動作の例を示すフローチャートである。まず、制御部511は、読み出しコマンドをメモリ503へ出力し、ページ521のデータを読み出しデータ534として読み出す(ステップ1201)。そして、デランダマイザ513は、読み出しデータ534に含まれるフラグ524をチェックする(ステップ1202)。
フラグ524が論理値“0”を有する場合(ステップ1202,NO)、デランダマイザ513は、読み出しデータ534のデータ本体をデランダマイズして、デランダマイズされた読み出しデータ535を生成する(ステップ1203)。そして、選択部514は、論理値“0”の制御信号536に従って、デランダマイズされた読み出しデータ535を読み出しデータ537として選択し、演算処理装置501へ出力する(ステップ1204)。
一方、フラグ524が論理値“1”を有する場合(ステップ1202,YES)、選択部514は、論理値“1”の制御信号536に従って、読み出しデータ534を読み出しデータ537として選択し、演算処理装置501へ出力する(ステップ1205)。
図1及び図5の情報処理装置の構成は一例に過ぎず、情報処理装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
情報処理装置は、キーボード、ポインティングデバイス等の入力装置、又は表示装置等の出力装置を含んでいてもよい。さらに、情報処理装置は、CD−ROM(Compact Disk Read Only Memory)ドライブ等の媒体駆動装置、又はネットワークインタフェースカード等の通信装置を含んでいてもよい。
消去済みデータとして、すべてのビット値が論理値“0”であるデータが用いられる場合、図5のフラグ524として、論理値を入れ替えたフラグを用いることができる。この場合、ランダマイズされた書き込みデータを示すフラグ524として論理値“1”が用いられ、消去済みデータを示すフラグ524として論理値“0”が用いられる。
図3のメモリ制御装置301の構成は一例に過ぎず、メモリ制御装置301の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
図4及び図10〜図12のフローチャートは一例に過ぎず、メモリ制御装置301又は情報処理装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。
図2及び図9に示したブランクチェックは一例に過ぎず、ブランクチェックの動作は、情報処理装置の構成又は条件に応じて変化する。図8に示した書き込み動作及び読み出し動作は一例に過ぎず、書き込み動作及び読み出し動作は、情報処理装置の構成又は条件に応じて変化する。
図6及び図7に示した書き込みデータは一例に過ぎず、書き込みデータのフォーマットは、情報処理装置の構成又は条件に応じて変化する。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図12を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力するランダマイザと、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成するデランダマイザと、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する選択部と、
を備えることを特徴とするメモリ制御装置。
(付記2)
前記演算処理装置から書き込み要求を受け取った場合、第1論理値を有するフラグを含む、ランダマイズされた書き込みデータを前記メモリに書き込む制御を行い、前記演算処理装置から消去要求を受け取った場合、第2論理値を有するフラグを含む消去済みデータを前記メモリに書き込む制御を行う制御部をさらに備え、
前記デランダマイザは、前記メモリから読み出された読み出しデータに含まれるフラグが前記第1論理値を有する場合、前記メモリから読み出された読み出しデータをデランダマイズして、前記デランダマイズされた読み出しデータを生成し、
前記選択部は、前記メモリから読み出された読み出しデータに含まれるフラグが前記第1論理値を有する場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記メモリから読み出された読み出しデータに含まれるフラグが前記第2論理値を有する場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力することを特徴とする付記1記載のメモリ制御装置。
(付記3)
前記消去済みデータに含まれるすべての論理値は前記第2論理値であることを特徴とする付記2記載のメモリ制御装置。
(付記4)
前記メモリはNAND型フラッシュメモリであることを特徴とする付記1乃至3のいずれか1項に記載のメモリ制御装置。
(付記5)
演算処理装置とメモリとメモリ制御装置とを備える情報処理装置であって、
前記メモリ制御装置は、
前記演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータを前記メモリへ出力するランダマイザと、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成するデランダマイザと、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する選択部とを含むことを特徴とする情報処理装置。
(付記6)
前記メモリ制御装置は、前記演算処理装置から書き込み要求を受け取った場合、第1論理値を有するフラグを含む、ランダマイズされた書き込みデータを前記メモリに書き込む制御を行い、前記演算処理装置から消去要求を受け取った場合、第2論理値を有するフラグを含む消去済みデータを前記メモリに書き込む制御を行う制御部をさらに含み、
前記デランダマイザは、前記メモリから読み出された読み出しデータに含まれるフラグが前記第1論理値を有する場合、前記メモリから読み出された読み出しデータをデランダマイズして、前記デランダマイズされた読み出しデータを生成し、
前記選択部は、前記メモリから読み出された読み出しデータに含まれるフラグが前記第1論理値を有する場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記メモリから読み出された読み出しデータに含まれるフラグが前記第2論理値を有する場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力することを特徴とする付記5記載の情報処理装置。
(付記7)
前記消去済みデータに含まれるすべての論理値は前記第2論理値であることを特徴とする付記6記載の情報処理装置。
(付記8)
前記メモリはNAND型フラッシュメモリであることを特徴とする付記5乃至7のいずれか1項に記載の情報処理装置。
(付記9)
演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力し、
前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成し、
前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する、
ことを特徴とするメモリ制御方法。
(付記10)
前記演算処理装置から書き込み要求を受け取った場合、第1論理値を有するフラグを含む、ランダマイズされた書き込みデータを前記メモリに書き込む制御を行い、
前記演算処理装置から消去要求を受け取った場合、第2論理値を有するフラグを含む消去済みデータを前記メモリに書き込む制御を行い、
前記メモリから読み出された読み出しデータに含まれるフラグが前記第1論理値を有する場合、前記メモリから読み出された読み出しデータをデランダマイズして、前記デランダマイズされた読み出しデータを生成し、
前記メモリから読み出された読み出しデータに含まれるフラグが前記第1論理値を有する場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記メモリから読み出された読み出しデータに含まれるフラグが前記第2論理値を有する場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力することを特徴とする付記9記載のメモリ制御方法。
(付記11)
前記消去済みデータに含まれるすべての論理値は前記第2論理値であることを特徴とする付記10記載のメモリ制御方法。
(付記12)
前記メモリはNAND型フラッシュメモリであることを特徴とする付記9乃至11のいずれか1項に記載のメモリ制御方法。
101 CPU
102、301、502 メモリ制御装置
103 NAND型フラッシュメモリ
111、515 コマンド送信部
112、311、512 ランダマイザ
113、312、513 デランダマイザ
121、131 乱数生成部
122、132 XOR
141、531 コマンド
142、532、801 書き込みデータ
143、533、802 ランダマイズされた書き込みデータ
144、534、537、803、805、901、902 読み出しデータ
145、535、804 デランダマイズされた読み出しデータ
201、521、814 ページ
211 ブランクデータ
212 デランダマイズされたブランクデータ
313、514 選択部
501 演算処理装置
503 メモリ
511 制御部
522、601、811 リザーブデータ
523、602、812、815 データ本体
524、603、813 フラグ
536 制御信号

Claims (5)

  1. 演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力するランダマイザと、
    前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成するデランダマイザと、
    前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する選択部と、
    を備えることを特徴とするメモリ制御装置。
  2. 前記演算処理装置から書き込み要求を受け取った場合、第1論理値を有するフラグを含む、ランダマイズされた書き込みデータを前記メモリに書き込む制御を行い、前記演算処理装置から消去要求を受け取った場合、第2論理値を有するフラグを含む消去済みデータを前記メモリに書き込む制御を行う制御部をさらに備え、
    前記デランダマイザは、前記メモリから読み出された読み出しデータに含まれるフラグが前記第1論理値を有する場合、前記メモリから読み出された読み出しデータをデランダマイズして、前記デランダマイズされた読み出しデータを生成し、
    前記選択部は、前記メモリから読み出された読み出しデータに含まれるフラグが前記第1論理値を有する場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記メモリから読み出された読み出しデータに含まれるフラグが前記第2論理値を有する場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力することを特徴とする請求項1記載のメモリ制御装置。
  3. 前記消去済みデータに含まれるすべての論理値は前記第2論理値であることを特徴とする請求項2記載のメモリ制御装置。
  4. 演算処理装置とメモリとメモリ制御装置とを備える情報処理装置であって、
    前記メモリ制御装置は、
    前記演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータを前記メモリへ出力するランダマイザと、
    前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成するデランダマイザと、
    前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する選択部とを含むことを特徴とする情報処理装置。
  5. 演算処理装置から出力される書き込みデータをランダマイズして、ランダマイズされた書き込みデータをメモリへ出力し、
    前記メモリから読み出された読み出しデータに含まれるフラグが前記ランダマイズされた書き込みデータを示している場合、前記メモリから読み出された読み出しデータをデランダマイズして、デランダマイズされた読み出しデータを生成し、
    前記フラグが前記ランダマイズされた書き込みデータを示している場合、前記デランダマイズされた読み出しデータを選択して前記演算処理装置へ出力し、前記フラグが消去済みデータを示している場合、前記メモリから読み出された読み出しデータを選択して前記演算処理装置へ出力する、
    ことを特徴とするメモリ制御方法。
JP2018113253A 2018-06-14 2018-06-14 メモリ制御装置、情報処理装置、及びメモリ制御方法 Pending JP2019215945A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018113253A JP2019215945A (ja) 2018-06-14 2018-06-14 メモリ制御装置、情報処理装置、及びメモリ制御方法
US16/438,727 US10777287B2 (en) 2018-06-14 2019-06-12 Memory control apparatus, information processing apparatus, and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018113253A JP2019215945A (ja) 2018-06-14 2018-06-14 メモリ制御装置、情報処理装置、及びメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2019215945A true JP2019215945A (ja) 2019-12-19

Family

ID=68840297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018113253A Pending JP2019215945A (ja) 2018-06-14 2018-06-14 メモリ制御装置、情報処理装置、及びメモリ制御方法

Country Status (2)

Country Link
US (1) US10777287B2 (ja)
JP (1) JP2019215945A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100229001A1 (en) * 2009-03-04 2010-09-09 Samsung Electronics Co., Ltd. Nonvolatile memory device and operating method
US20100229007A1 (en) * 2009-03-04 2010-09-09 Junghoon Park Nonvolatile Memory Device and Operating Method Thereof
US20100275094A1 (en) * 2009-04-28 2010-10-28 Panasonic Corporation Nonvolatile memory device and nonvolatile memory controller
US20160284411A1 (en) * 2015-03-27 2016-09-29 Winbond Electronics Corp. Semiconductor memory apparatus and data processing method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11260075A (ja) 1998-01-08 1999-09-24 Mitsubishi Electric Corp フラッシュメモリ内蔵マイクロコンピュータおよびデータ書換方法
US6304486B1 (en) 1999-12-20 2001-10-16 Fujitsu Limited Sensing time control device and method
JP3722372B2 (ja) 2004-02-05 2005-11-30 株式会社ルネサステクノロジ システムと不揮発性メモリを有する装置
KR101818445B1 (ko) * 2011-07-08 2018-01-16 삼성전자주식회사 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들
US10402109B2 (en) * 2015-09-08 2019-09-03 OverNest, Inc. Systems and methods for storing data blocks using a set of generated logical memory identifiers
US9927990B2 (en) * 2015-09-10 2018-03-27 Toshiba Memory Corporation Memory system, memory controller and memory control method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100229001A1 (en) * 2009-03-04 2010-09-09 Samsung Electronics Co., Ltd. Nonvolatile memory device and operating method
US20100229007A1 (en) * 2009-03-04 2010-09-09 Junghoon Park Nonvolatile Memory Device and Operating Method Thereof
US20100275094A1 (en) * 2009-04-28 2010-10-28 Panasonic Corporation Nonvolatile memory device and nonvolatile memory controller
JP2010277584A (ja) * 2009-04-28 2010-12-09 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
US20160284411A1 (en) * 2015-03-27 2016-09-29 Winbond Electronics Corp. Semiconductor memory apparatus and data processing method
JP2016184450A (ja) * 2015-03-27 2016-10-20 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置

Also Published As

Publication number Publication date
US10777287B2 (en) 2020-09-15
US20190385686A1 (en) 2019-12-19

Similar Documents

Publication Publication Date Title
JP5662037B2 (ja) 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング
US10218503B2 (en) Encryption key storage and modification in a data storage device
US9058296B2 (en) Data processing method, memory storage device and memory control circuit unit
US8996933B2 (en) Memory management method, controller, and storage system
US9343162B2 (en) Protection against side-channel attacks on non-volatile memory
US8504898B2 (en) Storage apparatus, controller and data accessing method thereof
US8831229B2 (en) Key transport method, memory controller and memory storage apparatus
US20130080787A1 (en) Memory storage apparatus, memory controller and password verification method
US10664414B2 (en) Controller and advanced method for deleting data
US20130212368A1 (en) Data protecting method, memory controller and memory storage device
CN111131130B (zh) 密钥管理方法及系统
WO2013176849A1 (en) System and method to scramble data
US8898807B2 (en) Data protecting method, mobile communication device, and memory storage device
TW201633314A (zh) 記憶體控制電路單元、記憶體儲存裝置及資料存取方法
US11651707B2 (en) Method and apparatus for encrypting and decrypting user data
KR101311963B1 (ko) 파워 어택으로부터 안전하게 데이터를 쓰고 읽을 수 있는반도체 메모리 장치 및 그 방법
US20190377693A1 (en) Method to generate pattern data over garbage data when encryption parameters are changed
KR20190045121A (ko) 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치
KR20170093370A (ko) 데이터 저장 장치
JP2019215945A (ja) メモリ制御装置、情報処理装置、及びメモリ制御方法
JP6103958B2 (ja) 半導体記憶装置
US11928077B2 (en) Data processing circuit, data storage device including the same, and operating method thereof
TW202001564A (zh) 用以存取資料的方法以及相關電路
JP2022144469A (ja) メモリシステム
JP2020027473A (ja) データ処理装置及びデータ処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220119

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20220119

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221115