JP2010079686A - データ処理装置、メモリ制御回路およびメモリ制御方法 - Google Patents
データ処理装置、メモリ制御回路およびメモリ制御方法 Download PDFInfo
- Publication number
- JP2010079686A JP2010079686A JP2008248560A JP2008248560A JP2010079686A JP 2010079686 A JP2010079686 A JP 2010079686A JP 2008248560 A JP2008248560 A JP 2008248560A JP 2008248560 A JP2008248560 A JP 2008248560A JP 2010079686 A JP2010079686 A JP 2010079686A
- Authority
- JP
- Japan
- Prior art keywords
- write
- value
- memory
- additional bit
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】既にデータが書き込まれたメモリ領域に誤ってデータを書き込むことを防止するデータ処理装置、メモリ制御回路、メモリ制御方法を提供する。
【解決手段】データ処理装置(10)は、メモリ(16)と、付加ビット生成部(31)と、書き込み状態判定部(32)とを具備する。付加ビット生成部(31)は、メモリ(16)の指定されたアドレスに書き込む書き込み期待値に基づいて、書き込み期待値に付加する付加ビットを生成する。この付加ビットと書き込み期待値とは、書き込みデータとしてメモリ(16)に供給されてアドレスのメモリセルに格納される。書き込み状態判定部(32)は、指定されたアドレスのメモリセルが保持する格納データを読み出して、書き込み状態を判定する。このメモリ(16)は、不揮発性メモリであるフラッシュメモリであることが好ましい。
【選択図】図3
【解決手段】データ処理装置(10)は、メモリ(16)と、付加ビット生成部(31)と、書き込み状態判定部(32)とを具備する。付加ビット生成部(31)は、メモリ(16)の指定されたアドレスに書き込む書き込み期待値に基づいて、書き込み期待値に付加する付加ビットを生成する。この付加ビットと書き込み期待値とは、書き込みデータとしてメモリ(16)に供給されてアドレスのメモリセルに格納される。書き込み状態判定部(32)は、指定されたアドレスのメモリセルが保持する格納データを読み出して、書き込み状態を判定する。このメモリ(16)は、不揮発性メモリであるフラッシュメモリであることが好ましい。
【選択図】図3
Description
本発明は、データ処理装置、データ処理装置に内蔵されるメモリのメモリ制御回路およびメモリ制御方法に関する。
近年、フラッシュメモリ等の不揮発性メモリを搭載するデータ処理装置が多くなってきている。フラッシュメモリは、装置に実装した後にプログラム書き換えが可能である。そのため、フラッシュメモリを搭載した装置は、仕様変更や不具合発生時のソフトウェア変更等に柔軟に対応することができる。また、同じハードウェアを使ったソフトウェア変更による機種展開が容易になる。
また、1チップにマイクロコンピュータとフラッシュメモリとを搭載した集積回路の場合、ユーザプログラムによる内蔵フラッシュメモリの書き換えが可能であるため、内蔵フラッシュメモリをあたかもEEPROM(electrically erasable and programmable read only memory)のように使用するEEPROMエミュレーションを実現することができる。この機能を活用することにより、外部にEEPROMを接続すること無く、データの保持、書き換えができるため、装置のコストダウンと省スペース化、機能向上を図ることができる。
このように、メモリを備え、ソフトウェアにより動作するデータ処理装置は、ハードウェア故障やプログラムミス等により意図しないアドレスのメモリセルにデータを書き込んでしまうことがある。そのメモリセルに既にデータが書き込まれていた場合、メモリに保持する内容が書き換わるため、システムに重大な影響を与えることになる。
誤書き込みを防止する方法は、例えば、特開2004−062978号公報、特開2004−039127号公報等に開示される。これらの方法では、ブロック単位に書き込み禁止等を示すフラグが、フラッシュメモリ内の専用のセクタに設定される。設定されたフラグに基づいて、書き換えが発生しないようにハードウェアによるプロテクトをかけるのが一般的である。したがって、データの書き込み先のアドレスが、書き込み禁止になっているブロックに含まれると、書き込みコマンドがキャンセルされる。この方法では、意図しない書き込み先が書き込みを許可されたブロックに含まれていれば、書き込みが行われる。例えば、書き込みアドレスを歩進しながら順にデータを書き込む場合に、何らかの要因でメモリの書き込みアドレスが歩進されない状況になると、書き込みを終了したメモリセルに次のデータを上書きしてしまうことになる。
また、WO01/061503号公報には、実行不可能なデータの変更を行おうとした場合に起こる書き込みエラーの発生を防ぐ方法が開示されている。しかし、この方法では、書き込み対象データと書き込みアドレスの元のデータとの組み合わせによって、書き込める場合と書き込めない場合があり、意図しないアドレスのメモリセルに対するデータの書き込みを防止することはできない。
本発明は、既にデータが書き込まれたメモリ領域に誤ってデータを書き込むことを防止するデータ処理装置、メモリ制御回路、メモリ制御方法を提供する。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の観点では、データ処理装置(10)は、メモリ(16)と、付加ビット生成部(31)と、書き込み状態判定部(32)とを具備する。付加ビット生成部(31)は、メモリ(16)の指定されたアドレスに書き込む書き込み期待値に基づいて、書き込み期待値に付加する付加ビットを生成する。この付加ビットと書き込み期待値とは、書き込みデータとしてメモリ(16)に供給されてアドレスのメモリセルに格納される。書き込み状態判定部(32)は、指定されたアドレスのメモリセルが保持する格納データを読み出して、書き込み状態を判定する。このメモリ(16)は、不揮発性メモリであるフラッシュメモリであることが好ましい。
本発明の他の観点では、メモリ制御回路(14)は、付加ビット生成部(31)と、書き込み状態判定部(32)とを具備する。付加ビット生成部(31)は、
メモリの指定されたアドレスに書き込む書き込み期待値に基づいて、書き込み期待値に付加する付加ビットを生成する。生成された付加ビットと書き込み期待値とは、書き込みデータとしてメモリ(16)に供給されてアドレスのメモリセルに格納される。書き込み状態判定部(32)は、指定されたアドレスのメモリセルが保持する格納データを読み出して、書き込み状態を判定する。
メモリの指定されたアドレスに書き込む書き込み期待値に基づいて、書き込み期待値に付加する付加ビットを生成する。生成された付加ビットと書き込み期待値とは、書き込みデータとしてメモリ(16)に供給されてアドレスのメモリセルに格納される。書き込み状態判定部(32)は、指定されたアドレスのメモリセルが保持する格納データを読み出して、書き込み状態を判定する。
また、本発明の他の観点では、メモリ制御方法は、初期設定するステップと、生成するステップと、格納するステップと、判定するステップとを具備する。初期設定するステップでは、メモリ(16)に含まれる全てのメモリセルは、消去状態を示す第1値に初期設定される。生成するステップでは、メモリ(16)の指定されたアドレスに書き込む書き込み期待値に基づいて、書き込み期待値に付加される付加ビットが生成される。格納するステップでは、書き込み期待値と付加ビットとがメモリ(16)に供給されて指定されるアドレスのメモリセルに格納される。判定するステップでは、格納するステップに先立ち、指定されるアドレスのメモリセルが保持する格納データが読み出されて書き込み状態が判定される。
本発明によれば、既にデータが書き込まれたメモリ領域に誤ってデータを書き込むことを防止するデータ処理装置、メモリ制御回路、メモリ制御方法を提供することができる。
図1は、本発明の実施の形態に係るデータ処理装置の構成を示すブロック図である。データ処理装置10は、CPU(Central Processing Unit)11、入出力部(I/O)12、フラッシュ制御部14、フラッシュメモリ16、RAM(Random Access Memory)17を備える。CPU11は、フラッシュメモリ16に格納されるプログラムコードを実行する。また、CPU11は、フラッシュ制御部14を起動してフラッシュメモリ16にデータを書き込む。入出力部12は、外部からデータを取り込み、処理されたデータを外部へ出力する。フラッシュ制御部14は、フラッシュメモリ16へのデータの書き込み及び読み出しを制御する。RAM17は、一時データ等を格納するワーク領域として使用される。
CPU11、入出力部12、フラッシュ制御部14、RAM17は、バスを介してデータを授受する。なお、CPU11は、例えば32ビット単位でフラッシュメモリ16への書き込みデータを指定する。フラッシュメモリ16は、そのデータ幅より広い例えば33ビットのビット幅を有する。即ち、フラッシュ制御部14は、例えば33ビットのビット幅を書き込み単位としてフラッシュメモリ16にデータを書き込み、そのビット幅でフラッシュメモリ16からデータを読み出す。また、フラッシュメモリ16には、頻繁に書き換わるようなデータは格納されない。即ち、フラッシュメモリ16は、プログラムコードのような上書きされないデータを格納する。
ここでは、誤書き込みを防止するメモリとして不揮発性メモリであるフラッシュメモリ16を例示するが、EEPROMやその他のメモリであってもよい。また、フラッシュメモリには、消去状態において、メモリセルの出力電圧が高いものと低いものとがある。ここでは、データが消去されると、出力電圧が高くなるフラッシュメモリの場合を例示する。したがって、このフラッシュメモリ16は、消去状態のメモリセルは“1”、書き込み状態のメモリセルは“0”を示すものとして説明する。即ち、“1”を示す消去状態のメモリセルに“0”を示すデータが書き込まれて書き込み状態“0”のメモリセルに変わる。書き込み状態“0”のメモリセルに“1”を示すデータを書き込もうとしても状態は変わらない。メモリセルを消去状態“1”にするには、消去動作によりブロック単位に全てのビットを消去状態にする必要がある。
フラッシュ制御部14は、図2に示されるように、アドレスポインタ21、書き込みデータバッファ22、書き込み結果モニタレジスタ23、書き込み制御部25を備える。ここでは、フラッシュ制御部14の書き込み動作を説明するため、読み出し動作及び消去動作に関連する部分の図示及び説明は省略される。
アドレスポインタ21は、CPU11から指示されるフラッシュメモリ16の書き込みアドレスを保持し、フラッシュメモリ16に供給する。書き込みデータバッファ22は、CPU11から指示されるフラッシュメモリ16に書き込む書き込み期待値を保持し、書き込み制御部25に供給する。書き込み結果モニタレジスタ23は、書き込み制御部25から出力されるベリファイ判定結果と、書き込み判定結果とをCPU11からモニタできるように保持する。書き込み制御部25は、書き込みデータバッファ22から供給される書き込み期待値に基づいて、付加ビットを付与した書き込みデータをフラッシュメモリ16に供給する。また、書き込み制御部25は、フラッシュメモリ16からベリファイデータを取り込み、アドレスポインタ21で示されるアドレスにデータが書き込めたか否かを示すベリファイ判定結果及びそのアドレスが書き込み済みであるか否かを示す書き込み判定結果を書き込み結果モニタレジスタ23に供給する。アドレスポインタ21、書き込みデータバッファ22、書き込み結果モニタレジスタ23、書き込み制御部25の動作は、フラッシュ制御部14の図示されないシーケンサによって制御される。
書き込み制御部25は、図3に示されるように、付加ビット生成部31、書き込み状態判定部32、データコンパレータ35を備える。書き込みデータバッファ22から供給される書き込み期待値は、ビット0からビットn−1までのnビットのデータである。書き込み期待値は、書き込みデータのビット0からビットn−1としてフラッシュメモリ16に供給されるとともに、データコンパレータ35及び付加ビット生成部31に供給される。付加ビット生成部31は、書き込み期待値に基づいて、書き込みデータのビットnを生成し、フラッシュメモリ16及びデータコンパレータ35に供給する。したがって、フラッシュメモリ16には、n+1ビットの書き込みデータが供給される。
フラッシュメモリ16は、n+1ビットのデータを一度に書き込むことができるビット幅を有する。フラッシュメモリ16にデータを書き込む場合、書き込み後にフラッシュメモリ16から読み出し、書き込み期待値と一致しているかを判定する。この動作をベリファイと呼ぶ。フラッシュメモリ16から読み出されたデータであるベリファイデータは、ビット0からビットnまでのn+1ビットのデータである。
n+1ビットのベリファイデータは、データコンパレータ35に入力され、書き込み期待値と比較される。ベリファイデータと書き込み期待値とが一致していれば、書き込み動作は完了する。不一致であれば、再度書き込みを所定の回数まで繰り返すことがフラッシュメモリでは一般的である。ここでは、説明を簡単にするため、再書き込みは行わず、不一致であれば、書き込み失敗としてエラー処理を行うことにする。
本発明では、データの書き込み前にこのベリファイ動作を利用して、書き込みアドレスで示されるメモリセルが書き込み状態であるか判定する。即ち、データ書き込みの指示があると、書き込み制御部25は、まず書き込み前のベリファイを行って、フラッシュメモリ16から書き込みアドレスで示されるメモリセルから格納されているデータを読み出す。書き込み状態判定部32は、読み出されたベリファイデータに書き込み状態“0”になっているビットを検出すると、書き込み済みを示す書き込み判定結果を出力し、全てのビットが消去状態“1”であれば、書き込み可能(未書き込み)を示す書き込み判定結果を出力する。
書き込み判定結果が書き込み済みを示す場合、書き込み済みのメモリセルに新たなデータを上書きする指示が出されたということである。書き込み期待値の全てのビットが“1”である場合、付加ビットがないと、消去状態と同じデータであり、区別がつかない。本発明では、書き込み期待値の全てのビットが“1”で消去状態と同じであっても、付加ビットを書き込み状態することにより、区別することができる。即ち、読み出したデータの書き込み期待値に対応するビットが全て消去状態であっても、付加ビットが書き込み状態であれば、そのアドレスには全てのビットが“1”であるデータが格納されていることを示す。付加ビットも含めて全てのビットが消去状態のときにそのアドレスは消去状態であることを示す。
付加ビット生成部31は、図4に示されるように、NAND回路41であってもよい。NAND回路41は、書き込み期待値の全てのビットが“1”の場合に付加ビットnとして“0”を出力する。書き込み期待値のいずれかのビットが“0”の場合、NAND回路41は、付加ビットnとして“1”を出力する。したがって、どのような書き込み期待値の場合にも、書き込みデータn+1ビットのうちの少なくとも1ビットが書き込み状態を示す“0”となる。
書き込み状態判定部32は、図4に示されるように、NAND回路42であってもよい。フラッシュメモリ16から読み出されたベリファイデータのn+1ビットのうちの少なくとも1ビットが書き込み状態の“0”を示すと、NAND回路42は、書き込み済みを示す“1”を書き込み判定結果として出力する。ベリファイデータの全てのビットが消去状態“1”である場合、NAND回路42は、未書き込みを示す“0”を書き込み判定結果として出力する。
また、付加ビット生成部31は、図5Aに示されるように、書き込み前のベリファイであるか否かを示す書き込みフラグに基づいて出力値を変えるようにした付加ビット生成部311であってもよい。付加ビット生成部311は、図5Bに示されるように、NAND回路44によって実現可能である。書き込みフラグは、“1”の場合にデータの書き込み動作または書き込み後のベリファイ動作を示し、“0”の場合に書き込み前のベリファイ動作を示す。書き込みフラグが“1”であれば、書き込み期待値の全てのビットが“1”の場合にNAND回路44は、“0”を出力し、書き込み状態を示すように書き込みデータの付加ビットnをフラッシュメモリ16に供給する。また、書き込み後のベリファイ時には、NAND回路44の出力は、データコンパレータ25に供給されて書き込み状態であるか否かの判定に使われる。書き込みフラグが“0”であれば、NAND回路44は、書き込み期待値の如何に関わらず“1”をデータコンパレータ25に出力する。したがって、NAND回路44の出力は、ベリファイデータの付加ビットnが消去状態であるか否かの判定に使われる。
このように、書き込み前のベリファイと、書き込み時或いは書き込み後のベリファイとで付加ビット生成部311の出力を変えることにより、データコンパレータ35は、書き込み状態判定部32を兼用することができる。即ち、書き込み前のベリファイ時に、書き込みバッファ22に全てのビットが消去状態を示すデータが設定される。データコンパレータ35は、書き込み状態判定部32として、設定されたアドレスのメモリセルが既に書き込み期待値を設定された(データを格納している)メモリセルであるか否かを判定する。書き込み後のベリファイでは、書き込みデータバッファ22には書き込み期待値が格納される。データコンパレータ35は、書き込み期待値および付加ビットがメモリセルに書き込むことができたか否かを判定する。データコンパレータ35が書き込み状態判定部32の代わりに動作することにより、書き込み状態判定部32を別に設ける必要がなくなる。
また、図6に示されるように、付加ビットを利用して書き込み期待値に冗長性を持たせ、より信頼性を高めることもできる。ここでは、書き込み期待値に複数ビットの誤り訂正符号を付与して書き込みデータを生成する。書き込み期待値の全てのビットが“1”であっても、複数の付加ビットのいくつかのビットが“0”であれば、上述のように、該当アドレスに全てのビットが“1”であるデータを格納しているのか、消去状態であってデータを書き込みされていないのかを判定することができる。誤り訂正符号の場合、フラッシュメモリ16からの読み出しの際に、誤り検出及び訂正処理を行うが、ここでは説明を省略する。また、複数の付加ビットではなく、パリティビットを1ビット付与してもよい。その場合、偶数パリティであれば、書き込み期待値の全てのビットが“1”であっても、パリティビットが“0”となって書き込み状態を判定することができる。なお、書き込み期待値は、一般に2nビットのビット幅を有し、8ビット、16ビットあるいは32ビットのビット幅であることが多い。
次に、図7を参照して、フラッシュ制御部14の動作を説明する。
フラッシュメモリ16にデータを書き込む場合、まず、そのデータの書き込み先、即ち書き込み対象アドレスがアドレスポインタ21に設定される(ステップS10)。アドレスポインタ21は、書き込みアドレスをフラッシュメモリ16に供給する。
書き込み前のベリファイを行うための所定の値が書き込みデータバッファ22に設定される(ステップS12)。図4、図6に示されるように、書き込み状態の判定のためにデータコンパレータ35が使われない場合、設定される値は限定されない。図5Aに示されるように、データコンパレータ35が書き込み状態を判定する場合、書き込みデータバッファ22に設定される値は、フラッシュメモリ16の消去状態を示す値でなければならない。ここでは、消去状態のとき、メモリセルは“1”を示すため、付加ビットを含めて全てのビットが“1”であるデータが設定される。
次に、書き込み前のベリファイを行うため、フラッシュメモリ16からベリファイデータが書き込み状態判定部32、データコンパレータ35に読み出される(ステップS14)。書き込み状態判定部32は、ベリファイデータの全てのビットが“1”であるか否かによって書き込み状態を判定する。
ベリファイデータのいずれかのビットが“0”である場合、書き込み判定部32は、そのアドレスには既に書き込み済みで、何らかの値を保持していると判定し(ステップS16−YES)、書き込み判定結果として“書き込み済み”を出力する(ステップS20)。書き込み制御部25が出力する書き込み判定結果は、書き込み結果モニタレジスタ23を介してCPU11に通知される。書き込み済み領域にデータを書き込む動作が指示されたということは、ハードウェアの故障或いはソフトウェアのバグが疑われるため、CPU11は例外処理を行うことが好ましい。
ベリファイデータの全てのビットが“1”であれば、書き込み判定部32は、そのアドレスにはデータが未書き込みであると判定し、書き込み判定結果として“書き込み可”を出力する(ステップS16−NO)。
指定のアドレスのメモリセルが書き込み可であることが確認できると、書き込みデータバッファ22に書き込み期待値が設定される(ステップS22)。付加ビット生成部31は、書き込み期待値に基づいて付加ビットデータを生成し、書き込みデータがフラッシュメモリ16へ供給される。書き込み期待値の全てのビットが“1”の場合、付加ビットデータが“0”を示すビットを含む。その後、アドレスポインタ21によって指定されるメモリセルに書き込みデータが書き込まれる(ステップS24)。
書き込みが終了すると、フラッシュメモリ16からデータを読み出し、書き込みデータがきちんと書き込まれたか確認する書き込み後のベリファイが行われる(ステップS26)。データコンパレータ35は、書き込み期待値及び付加ビットとベリファイデータとを比較し、ベリファイ判定結果を出力する。書き込み期待値及び付加ビットとベリファイデータとの一致が確認されると(ステップS30−YES)、書き込み制御部25は、書き込み動作を終了する。書き込み期待値及び付加ビットとベリファイデータとが一致しない場合(ステップS30−NO)、書き込み制御部25は、ベリファイ判定結果として書き込み失敗を出力し、書き込み動作を終了する。なお、フラッシュメモリへのデータ書き込みは、数度のリトライが行われることが多いが、ここでは省略する。
上述では、書き込み期待値に基づいて付加ビットデータの値を決定したが、付加ビットを単に書き込みを示すビットとしてもよい。即ち、書き込み期待値に関わらず付加ビットを“0”として書き込み動作を行ってもよい。但し、付加ビットに対応するメモリセルは、データ書き込みよって毎回書き込み状態になることに注意する必要がある。また、誤り訂正符号等の冗長ビットを含むデータを書き込み期待値として、書き込み済みを示す付加ビットを付与するように構成されてもよい。誤り訂正符号等の方式に左右されずに書き込み済みを検出することができる。
上述の書き込み制御は、ソフトウェアにより実現してもよい。また、本発明は、フラッシュメモリ等の不揮発性メモリに適用することが好ましいが、不揮発性メモリに限定されることはない。データの上書きを禁止するRAMに適用することも可能である。その場合、メモリを初期設定するために、上書きを禁止する機能を一時停止する機構を備えることが好ましい。
このように、本発明によれば、メモリに書き込まれているデータが如何なる値であっても書き込み済みか否かを判定することができ、書き込み済みのデータに他のデータが上書きされることを防止することができる。
10 データ処理装置
11 CPU
12 入出力部
14 フラッシュ制御部
16 フラッシュメモリ
17 RAM
21 アドレスポインタ
22 書き込みデータバッファ
23 書き込み結果モニタレジスタ
25 書き込み制御部
31 付加ビット生成部
32 書き込み状態判定部
35 データコンパレータ
41、42、44 NAND回路
311 付加ビット生成部
312 ECC生成部
11 CPU
12 入出力部
14 フラッシュ制御部
16 フラッシュメモリ
17 RAM
21 アドレスポインタ
22 書き込みデータバッファ
23 書き込み結果モニタレジスタ
25 書き込み制御部
31 付加ビット生成部
32 書き込み状態判定部
35 データコンパレータ
41、42、44 NAND回路
311 付加ビット生成部
312 ECC生成部
Claims (22)
- メモリと、
前記メモリの指定されたアドレスに書き込む書き込み期待値に基づいて、前記書き込み期待値に付加する付加ビットを生成する付加ビット生成部と、前記付加ビットと前記書き込み期待値とは書き込みデータとして前記メモリに供給されて前記アドレスのメモリセルに格納され、
前記アドレスの前記メモリセルが保持する格納データを読み出して、書き込み状態を判定する書き込み状態判定部と
を具備する
データ処理装置。 - 全ての前記メモリセルは、初期設定時に消去状態を示す第1値に設定され、前記第1値または前記第1値を反転した書き込み状態を示す第2値を保持し、
前記書き込み状態判定部は、前記格納データに含まれるいずれかのビットが前記第2値を示すとき、書き込み済みと判定する
請求項1に記載のデータ処理装置。 - 前記書き込み状態判定部は、前記書き込みデータを前記アドレスの前記メモリセルに格納する前に前記書き込み状態を判定し、書き込み済みのとき前記書き込みデータの格納を中止する
請求項2に記載のデータ処理装置。 - 前記付加ビット生成部は、前記書き込み期待値の全てのビットの値が前記第1値である場合に、前記第2値を含む前記付加ビットを生成する
請求項2または請求項3に記載のデータ処理装置。 - 前記付加ビット生成部は、全ての前記書き込み期待値に対応して前記第2値を含む前記付加ビットを生成する
請求項2または請求項3に記載のデータ処理装置。 - 前記付加ビット生成部は、前記書き込み期待値に対する誤り検出符号を示す値を含む前記付加ビットを生成する
請求項2または請求項3に記載のデータ処理装置。 - 前記付加ビット生成部は、誤り訂正符号を含む前記書き込み期待値の全てのビットの値が前記第1値である場合に、前記第2値を含む前記付加ビットを生成する
請求項2または請求項3に記載のデータ処理装置。 - 前記メモリは、前記書き込み期待値のビット幅に前記付加ビットのビット幅を加えたビット幅を備えるフラッシュメモリである
請求項1から請求項7のいずれかに記載のデータ処理装置。 - メモリの指定されたアドレスに書き込む書き込み期待値に基づいて、前記書き込み期待値に付加する付加ビットを生成する付加ビット生成部と、前記付加ビットと前記書き込み期待値とは書き込みデータとして前記メモリに供給されて前記アドレスのメモリセルに格納され、
前記アドレスの前記メモリセルが保持する格納データを読み出して、書き込み状態を判定する書き込み状態判定部と
を具備する
メモリ制御回路。 - 全ての前記メモリセルは、初期設定時に消去状態を示す第1値に設定され、前記第1値または前記第1値を反転した書き込み状態を示す第2値を保持し、
前記書き込み状態判定部は、前記格納データが前記第2値のビットを含むとき、書き込み済みと判定する
請求項9に記載のメモリ制御回路。 - 前記書き込み状態判定部は、前記書き込みデータを前記アドレスの前記メモリセルに格納する前に前記書き込み状態を判定し、書き込み済みのとき前記書き込みデータの格納を中止する
請求項10に記載のメモリ制御回路。 - 前記付加ビット生成部は、前記書き込み期待値の全てのビットの値が前記第1値である場合に、前記第2値を含む前記付加ビットを生成する
請求項10または請求項11に記載のメモリ制御回路。 - 前記付加ビット生成部は、全ての前記書き込み期待値に対応して前記第2値を含む前記付加ビットを生成する
請求項10または請求項11に記載のメモリ制御回路。 - 前記付加ビット生成部は、前記書き込み期待値に対する誤り検出符号を示す値を含む前記付加ビットを生成する
請求項10または請求項11に記載のメモリ制御回路。 - 前記付加ビット生成部は、誤り訂正符号を含む前記書き込み期待値の全てのビットの値が前記第1値である場合に、前記第2値を含む前記付加ビットを生成する
請求項10または請求項11に記載のメモリ制御回路。 - メモリに含まれる全てのメモリセルに消去状態を示す第1値を初期設定するステップと、
前記メモリの指定されたアドレスに書き込む書き込み期待値に基づいて、前記書き込み期待値に付加する付加ビットを生成するステップと、
前記書き込み期待値と前記付加ビットとを前記メモリに供給して前記アドレスのメモリセルに格納するステップと、
前記格納するステップに先立ち前記アドレスの前記メモリセルが保持する格納データを読み出して書き込み状態を判定するステップと
を具備する
メモリ制御方法。 - 前記判定するステップは、前記格納データに含まれるいずれかのビットが前記第1値を反転した書き込み状態を示す第2値を示すとき、書き込み済みと判定するステップを備える
請求項16に記載のメモリ制御方法。 - 前記判定するステップにおいて、書き込み済みと判定された場合、前記格納するステップは、前記アドレスのメモリセルに格納することなく前記書き込み期待値と前記付加ビットとを前記メモリに供給するステップを含む
請求項17に記載のメモリ制御方法。 - 前記生成するステップは、前記書き込み期待値の全てのビットの値が前記第1値である場合に、前記第2値を含む前記付加ビットを生成するステップを含む
請求項17または請求項18に記載のメモリ制御方法。 - 前記生成するステップは、全ての前記書き込み期待値に対応して前記第2値を含む前記付加ビットを生成するステップを含む
請求項17または請求項18に記載のメモリ制御方法。 - 前記生成するステップは、前記書き込み期待値に対する誤り検出符号を示す値を含む前記付加ビットを生成するステップを含む
請求項17または請求項18に記載のメモリ制御方法。 - 前記付加ビット生成部は、誤り訂正符号を含む前記書き込み期待値の全てのビットの値が前記第1値である場合に、前記第2値を含む前記付加ビットを生成するステップを含む
請求項17または請求項18に記載のメモリ制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008248560A JP2010079686A (ja) | 2008-09-26 | 2008-09-26 | データ処理装置、メモリ制御回路およびメモリ制御方法 |
US12/585,493 US20100083073A1 (en) | 2008-09-26 | 2009-09-16 | Data processing apparatus, memory controlling circuit, and memory controlling method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008248560A JP2010079686A (ja) | 2008-09-26 | 2008-09-26 | データ処理装置、メモリ制御回路およびメモリ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010079686A true JP2010079686A (ja) | 2010-04-08 |
Family
ID=42058942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008248560A Withdrawn JP2010079686A (ja) | 2008-09-26 | 2008-09-26 | データ処理装置、メモリ制御回路およびメモリ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100083073A1 (ja) |
JP (1) | JP2010079686A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010137628A1 (ja) | 2009-05-26 | 2010-12-02 | 旭化成ケミカルズ株式会社 | 内燃機関の窒素酸化物削減方法、並びにその装置 |
JP2013033717A (ja) * | 2011-04-22 | 2013-02-14 | Rohm Co Ltd | Ledランプ |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5815212B2 (ja) * | 2010-04-19 | 2015-11-17 | スパンション エルエルシー | データ書き込み方法およびシステム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3699535A (en) * | 1971-02-01 | 1972-10-17 | Raytheon Co | Memory look-ahead connection arrangement for writing into an unoccupied address and prevention of reading out from an empty address |
GB2251324B (en) * | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
JP3408552B2 (ja) * | 1991-02-11 | 2003-05-19 | インテル・コーポレーション | 不揮発性半導体メモリをプログラム及び消去する回路とその方法 |
US5692164A (en) * | 1994-03-23 | 1997-11-25 | Intel Corporation | Method and apparatus for generating four phase non-over lapping clock pulses for a charge pump |
JP3875153B2 (ja) * | 2002-07-04 | 2007-01-31 | Necエレクトロニクス株式会社 | 不揮発性半導体記憶装置およびその書き換え禁止制御方法 |
JP4852315B2 (ja) * | 2006-02-03 | 2012-01-11 | 株式会社日立製作所 | データ信頼性向上方法及びその方法を用いた情報処理装置 |
US8032816B2 (en) * | 2007-06-01 | 2011-10-04 | International Business Machines Corporation | Apparatus and method for distinguishing temporary and permanent errors in memory modules |
-
2008
- 2008-09-26 JP JP2008248560A patent/JP2010079686A/ja not_active Withdrawn
-
2009
- 2009-09-16 US US12/585,493 patent/US20100083073A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010137628A1 (ja) | 2009-05-26 | 2010-12-02 | 旭化成ケミカルズ株式会社 | 内燃機関の窒素酸化物削減方法、並びにその装置 |
JP2013033717A (ja) * | 2011-04-22 | 2013-02-14 | Rohm Co Ltd | Ledランプ |
US9488355B2 (en) | 2011-04-22 | 2016-11-08 | Rohm Co., Ltd. | LED lamp |
Also Published As
Publication number | Publication date |
---|---|
US20100083073A1 (en) | 2010-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7813187B2 (en) | Multi-bit flash memory device and program method thereof | |
TWI522804B (zh) | 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法 | |
US7450436B2 (en) | Device recoverable purge for flash storage device | |
JP5162763B2 (ja) | メモリアクセスシステム | |
JP5780174B2 (ja) | 不良ビットエラーを処理するシステムおよび方法 | |
JP6080180B2 (ja) | 不揮発性メモリでのマーカプログラミング | |
US9721665B2 (en) | Data writing method and system | |
US7657795B2 (en) | Method and apparatus for writing to a target memory page of a memory | |
JP2010079686A (ja) | データ処理装置、メモリ制御回路およびメモリ制御方法 | |
US20100077131A1 (en) | Updating control information in non-volatile memory to control selection of content | |
WO2001061503A1 (en) | Nonvolatile memory | |
JP4452158B2 (ja) | 不揮発性メモリシステム | |
US20070088905A1 (en) | System and method for purging a flash storage device | |
US20070101049A1 (en) | Redundant purge for flash storage device | |
US20050068842A1 (en) | Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory | |
JP2005056144A (ja) | フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム | |
KR20060023427A (ko) | 카피백 프로그램 동작 중에 에러를 검출하는 낸드 플래시메모리 장치 및 에러 검출 방법 | |
JP4848126B2 (ja) | マイクロコンピュータ、マイクロコンピュータにおける不揮発性メモリのデータ保護方法 | |
US20070101048A1 (en) | Verified purge for flash storage device | |
JP6448254B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
JP5885638B2 (ja) | 半導体記憶装置 | |
JP2006079528A (ja) | データ書込み装置 | |
KR20060023428A (ko) | 낸드 플래시 메모리 장치 및 그것의 카피백 프로그램 방법 | |
JP2004094342A (ja) | プリンタにおけるフラッシュメモリの判定方法、この方法をコンピュータに実行させるプログラム、このプログラムを記録した記録媒体、フラッシュメモリを備えるプリンタ | |
Prouty | NAND Flash Reliability and Performance The Software Effect |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110414 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20120528 |