JP2005216455A - Nonvolatile semiconductor memory - Google Patents
Nonvolatile semiconductor memory Download PDFInfo
- Publication number
- JP2005216455A JP2005216455A JP2004025601A JP2004025601A JP2005216455A JP 2005216455 A JP2005216455 A JP 2005216455A JP 2004025601 A JP2004025601 A JP 2004025601A JP 2004025601 A JP2004025601 A JP 2004025601A JP 2005216455 A JP2005216455 A JP 2005216455A
- Authority
- JP
- Japan
- Prior art keywords
- data
- written
- arithmetic processing
- new
- writing
- 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
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
Description
本発明は、不揮発性半導体メモリに関し、不揮発性半導体メモリへのデータ書込方法、データ読出方法に係るものである。 The present invention relates to a nonvolatile semiconductor memory, and relates to a data writing method and a data reading method for the nonvolatile semiconductor memory.
書換可能な不揮発性メモリは電源を切断しても内容が消えない、読出速度が速いといった特長を持ち、例えばフラッシュメモリはPCのBIOS格納用メモリやデジタルスチルカメラの画像格納用メモリ、制御用マイコンの命令/データ格納用メモリとして利用されている。 The rewritable non-volatile memory has the features that the contents do not disappear even when the power is turned off, and the reading speed is fast. For example, the flash memory is a BIOS storage memory of a PC, an image storage memory of a digital still camera, and a control microcomputer. It is used as a memory for instruction / data storage.
また、書換可能な不揮発性メモリは、書込回数が例えば10000回等の制限がある。それは各メモリのビット状態を1(ハイレベル)から0(ローレベル)へ変化させる時、または0から1へ変化させる時に、不揮発性メモリの各ビットを構成する素子にストレスがかかるためである。 In addition, the rewritable nonvolatile memory has a limit of, for example, 10,000 times of writing. This is because when the bit state of each memory is changed from 1 (high level) to 0 (low level) or from 0 to 1, stress is applied to the elements constituting each bit of the nonvolatile memory.
フラッシュメモリでは、ワード線を共通にする複数のメモリセルに対して消去(ビットを1の状態にする)を行えるが、一般的な消去は複数のワード線を含むセクタと呼ばれる単位で行われ、特定のメモリセルだけを選択的に消去する事は行わない。一方、書込(ビットの状態を0にする)では特定のメモリセルに対して選択的に行われる。 In a flash memory, erasing (a bit is set to 1) can be performed on a plurality of memory cells sharing a word line, but general erasing is performed in units called sectors including a plurality of word lines. Only specific memory cells are not selectively erased. On the other hand, writing (setting the bit state to 0) is performed selectively for a specific memory cell.
このような消去(セクタ単位でビット状態を1にする)、書込(特定メモリセルのビット状態を0にする)により、各ビットを構成する素子にストレスがかかり、書換回数が多くなると、メモリの信頼性が低下するという問題点があった。 When such erasure (sets the bit state to 1 in sector units) and write (sets the bit state of a specific memory cell to 0), stress is applied to the elements constituting each bit, and the number of rewrites increases. There was a problem that the reliability of the system deteriorated.
そこで従来技術では、全新規書込データの0または1を計数し、0の数<1の数の時はそのまま書込、0の数>1の数のときはデータを反転して書込むことにより、書込(ビット状態を0にする)を少なくしてストレスを減らしている(特許文献1参照)。また、全データ消去を検出した時に特定のアドレスデータを反転して使用することにより同一アドレスにデータを書込む確率を低くしている(特許文献2参照)。
しかしながら上記従来技術では、データの書換えを行う場合に、書込済みのデータと新規書込データの関係を考慮せず、一旦、書き換えるべき全データを消去した後で、新規データを書き込んでいたため、消去及び書込回数の削減程度が小さく、メモリセルへのストレスの軽減の程度も小さいものであった。 However, in the above prior art, when data is rewritten, new data is written after erasing all data to be rewritten without considering the relationship between written data and new written data. However, the degree of reduction in the number of erase and write operations is small, and the degree of reduction in stress on the memory cell is also small.
本発明は、既に書込済みのデータと新規書込データの関係を考慮して、従来技術以上に、確実に消去及び書込回数を削減することによりメモリセルへのストレスを軽減することができる不揮発性半導体メモリを提供することである。 In consideration of the relationship between already written data and new written data, the present invention can reduce stress on the memory cell by reliably reducing the number of times of erasing and writing, as compared with the prior art. A non-volatile semiconductor memory is provided.
本発明の不揮発性半導体メモリは、それぞれ書込状態と消去状態とで異なる1ビットデータを記憶する複数のメモリセルを有するメモリセルアレイを備え、メモリセルアレイを複数ビットのデータを記憶するブロックに分割して、ブロック単位でメモリセルにデータの書込みを行う不揮発性半導体メモリであって、ブロックごとに新規データを記憶させる際、ブロックに記憶されている既存データと新規データとを比較し、ブロックの既存データを構成する複数のメモリセルのうちいずれかのメモリセルを書込状態から消去状態に変更することなく新規データを書込むことが可能であるか否かを判定する新規データ判定処理と、ブロックに記憶されている既存データと新規データに対し所定の演算処理を施して生成される加工データとを比較し、ブロックの既存データを構成する複数のメモリセルのうちいずれかのメモリセルを書込状態から消去状態に変更することなく加工データを書込むことが可能であるか否かを判定する加工データ判定処理と、新規データ判定処理と加工データ判定処理の両方の判定結果が不可能であるときにブロックの既存データを構成する全てのメモリセルを消去状態にするデータ消去処理と、新規データ判定処理と加工データ判定処理のうち新規データ判定処理のみの判定結果が可能であるときはブロックに新規データを書込み、加工データ判定処理のみの判定結果が可能であるときはブロックに加工データを書込み、新規データ判定処理と加工データ判定処理の両方の判定結果が可能であるとき、または消去処理後に、ブロックに新規データまたは加工データを書込むデータ書込処理とを行うことを特徴とする。 A nonvolatile semiconductor memory according to the present invention includes a memory cell array having a plurality of memory cells that store different 1-bit data in a write state and an erase state, and divides the memory cell array into blocks that store a plurality of bits of data. Non-volatile semiconductor memory that writes data to memory cells in units of blocks, and when new data is stored for each block, the existing data stored in the block is compared with the new data, and the existing data in the block A new data determination process for determining whether or not new data can be written without changing any one of a plurality of memory cells constituting data from a write state to an erase state; and a block Compare the existing data stored in the machine and the processed data generated by applying the predetermined calculation processing to the new data Processing data determination for determining whether or not processing data can be written without changing any of the plurality of memory cells constituting the existing data of the block from the writing state to the erasing state Processing, data erasure processing for erasing all memory cells constituting the existing data of the block when new data determination processing and processed data determination processing are both impossible, and new data determination processing When the judgment result of only the new data judgment processing is possible among the machining data judgment processing, new data is written to the block, and when the judgment result of only the processing data judgment processing is possible, the processing data is written to the block and the new data When the judgment results of both the judgment process and the machining data judgment process are possible, or after the erasure process, new data or addition is added to the block. And performing the writing data write processing data.
この構成によれば、データ書換の際、ブロックごとに、既存データと新規データを比較するとともに既存データと加工データを比較して、既存データの消去処理が必要か否かを判定し、ブロックごとに必要な場合にのみ既存データを消去して新規データまたは加工データを書き込むことで、消去および書込回数を削減してメモリセルへのストレスを軽減できる。 According to this configuration, when rewriting data, for each block, the existing data is compared with the new data and the existing data is compared with the processed data to determine whether the existing data needs to be erased. By erasing existing data and writing new data or processed data only when necessary, the number of times of erasing and writing can be reduced to reduce stress on the memory cells.
また、本発明において、新規データ判定処理と加工データ判定処理の両方の判定結果が可能であるときに行うデータ書込処理は、新規データと加工データのうち加工データを書込んだ方がブロック内で消去状態から書込状態に変更されるメモリセルの数が少なくなる場合には加工データを書込み、これ以外の場合には新規データを書込むようにする。 Further, in the present invention, the data writing process performed when the determination result of both the new data determination process and the processed data determination process is possible is that the processed data written in the new data and processed data is within the block. When the number of memory cells to be changed from the erased state to the written state decreases, the processed data is written, and in other cases, new data is written.
このように、新規データと加工データのうちのいずれかを選択して書き込むことでトータルでのメモリセルへの消去および書込回数を削減してメモリセルへのストレスをより軽減できる。 Thus, by selecting and writing either new data or processed data, the total number of erases and writes to the memory cell can be reduced, and the stress on the memory cell can be further reduced.
また、本発明において、消去処理後に行うデータ書込処理は、新規データと加工データのうち加工データを書込んだ方がブロック内の書込状態のメモリセルの数が少なくなる場合には加工データを書込み、これ以外の場合には新規データを書込むようにする。 Further, in the present invention, the data writing process performed after the erasing process is performed when the number of memory cells in the writing state in the block is smaller when the processed data is written out of the new data and the processed data. Is written, otherwise new data is written.
このように、新規データと加工データのうちのいずれかを選択して書き込むことでトータルでのメモリセルへの消去および書込回数を削減してメモリセルへのストレスをより軽減できる。 Thus, by selecting and writing either new data or processed data, the total number of erases and writes to the memory cell can be reduced, and the stress on the memory cell can be further reduced.
また、本発明において、加工データが書込まれたブロックのデータを読み出す際、加工データを生成した際に施された演算処理とは逆の演算処理を施して読み出すようにしている。このようにして読み出すことで、本来書き込まれるべきであった新規データと同じデータを読み出すことができる。 Further, in the present invention, when reading the data of the block in which the machining data is written, the calculation process reverse to the calculation process performed when the machining data is generated is read. By reading in this way, the same data as the new data that should have been originally written can be read.
また、本発明において、加工データを生成する際に施す演算処理を示す演算処理フラグをメモリセルアレイ内に設け、演算処理は新規データの各ビットデータを反転させる処理であり、データ書込処理において、新規データを書込む時には演算処理フラグをリセットし、加工データを書込む時には演算処理フラグをセットするようにし、ブロックのデータを読み出す際、演算処理フラグがリセットされていればデータをそのまま読み出し、演算処理フラグがセットされていればデータを反転して読み出すようにしている。 Further, in the present invention, an arithmetic processing flag indicating an arithmetic processing performed when generating the processed data is provided in the memory cell array, and the arithmetic processing is processing for inverting each bit data of the new data. The calculation flag is reset when writing new data, and the calculation flag is set when writing machining data. When reading block data, if the calculation flag is reset, the data is read as is. If the processing flag is set, the data is inverted and read.
この構成は、新規データから加工データを生成する際の演算処理として各ビットデータを反転させるようにしたものであり、上記発明と同様、メモリセルへの消去および書込回数を削減してメモリセルへのストレスを軽減できる。また、演算内容を示す演算処理フラグを設けているのでこの演算処理フラグに基づいてブロックから本来書き込まれるべきであった新規データと同じデータを読み出すことができる。 In this configuration, each bit data is inverted as a calculation process when generating processed data from new data. As in the above-described invention, the number of times of erasing and writing to the memory cell is reduced to reduce the memory cell. Can reduce stress on In addition, since an operation processing flag indicating the operation content is provided, the same data as the new data that should have been originally written can be read from the block based on the operation processing flag.
また、本発明において、加工データを生成する際に施す演算処理を示す演算処理フラグをメモリセルアレイ内に設け、演算処理は新規データのビット上下並び方向を逆にする処理であり、データ書込処理において、新規データを書込む時には演算処理フラグをリセットし、加工データを書込む時には演算処理フラグをセットするようにし、ブロックのデータを読み出す際、演算処理フラグがリセットされていればデータをそのまま読み出し、演算処理フラグがセットされていればデータをビット上下並び方向を逆にして読み出すようにしている。 Further, in the present invention, an arithmetic processing flag indicating an arithmetic processing performed when generating processed data is provided in the memory cell array, and the arithmetic processing is processing for reversing the bit arrangement direction of new data, and data writing processing When writing new data, reset the arithmetic processing flag, and when processing data is written, set the arithmetic processing flag. When reading the block data, if the arithmetic processing flag is reset, the data is read as it is. If the arithmetic processing flag is set, the data is read with the bits arranged in the up-down direction.
この構成は、新規データから加工データを生成する際の演算処理としてビット上下並び方向を逆にするようにしたものであり、上記発明と同様、メモリセルへの消去および書込回数を削減してメモリセルへのストレスを軽減できる。また、演算内容を示す演算処理フラグを設けているのでこの演算処理フラグに基づいてブロックから本来書き込まれるべきであった新規データと同じデータを読み出すことができる。 This configuration is designed to reverse the bit top-and-bottom alignment direction as an arithmetic process when generating processed data from new data, and, like the above-described invention, reduces the number of times of erasing and writing to memory cells. The stress on the memory cell can be reduced. In addition, since an operation processing flag indicating the operation content is provided, the same data as the new data that should have been originally written can be read from the block based on the operation processing flag.
また、上記の演算処理フラグを複数ビットのメモリセルで構成し、演算処理フラグを構成するメモリセルのうちの書込状態であるメモリセルの個数または消去状態であるメモリセルの個数が奇数であるか偶数であるかによって演算処理フラグがセットされているかリセットされているかを判断するようにすることで、演算処理フラグのフラグ領域の消去回数の削減を図ることができる。 The arithmetic processing flag is composed of a plurality of bits of memory cells, and the number of memory cells in the writing state or the number of memory cells in the erasing state among the memory cells forming the arithmetic processing flag is an odd number. By determining whether or not the arithmetic processing flag is set or reset depending on whether the arithmetic processing flag is an even number, the number of times of erasing the flag area of the arithmetic processing flag can be reduced.
また、本発明において、加工データを生成する際に施す演算処理を示す演算処理フラグをメモリセルアレイ内に設け、演算処理は新規データを所定方向にNビットシフトさせる(Nは1以上の整数)処理であり、データ書込処理において、新規データを書込む時には演算処理フラグをリセットし、加工データを書込む時には演算処理フラグをセットするようにし、ブロックのデータを読み出す際、演算処理フラグがリセットされていればデータをそのまま読み出し、演算処理フラグがセットされていればデータを所定方向とは逆方向にNビットシフトさせて読み出すようにしている。 Further, in the present invention, an arithmetic processing flag indicating an arithmetic processing performed when processing data is generated is provided in the memory cell array, and the arithmetic processing is processing for shifting new data by N bits in a predetermined direction (N is an integer of 1 or more). In the data writing process, the processing flag is reset when new data is written, and the processing flag is set when processing data is written. When the block data is read, the processing flag is reset. If so, the data is read as it is, and if the arithmetic processing flag is set, the data is read by shifting N bits in the direction opposite to the predetermined direction.
この構成は、新規データから加工データを生成する際の演算処理として所定方向にNビットシフトさせるようにしたものであり、上記発明と同様、メモリセルへの消去および書込回数を削減してメモリセルへのストレスを軽減できる。また、演算内容を示す演算処理フラグを設けているのでこの演算処理フラグに基づいてブロックから本来書き込まれるべきであった新規データと同じデータを読み出すことができる。 This configuration is such that N bits are shifted in a predetermined direction as a calculation process when generating processed data from new data, and as in the above invention, the number of times of erasing and writing to memory cells is reduced and the memory is reduced. The stress on the cell can be reduced. In addition, since an operation processing flag indicating the operation content is provided, the same data as the new data that should have been originally written can be read from the block based on the operation processing flag.
また、上記の演算処理フラグを複数ビットで構成することで、加工データ生成の際のシフト移動ビット数の判定有効範囲の拡大を図ることができる。 In addition, by configuring the arithmetic processing flag with a plurality of bits, it is possible to increase the effective determination range of the number of shift movement bits when processing data is generated.
以上のように本発明によれば、既に書込済みのデータと新規書込データの関係を考慮することにより、従来技術よりも確実に消去及び書込回数を減少させ、メモリセルへのストレスを減らし、不揮発性半導体メモリの寿命を伸ばすことが出来る。 As described above, according to the present invention, by considering the relationship between already written data and newly written data, the number of times of erasure and writing can be reduced more reliably than in the prior art, and stress on the memory cell can be reduced. This can reduce the life of the nonvolatile semiconductor memory.
以下、本発明をフラッシュメモリに適用した場合の実施形態について説明する。 Hereinafter, an embodiment when the present invention is applied to a flash memory will be described.
(第1の実施形態)
図1(a)は本発明の第1の実施形態におけるデータ書換えフローの一例であり、図1(b)は図1(a)の書換えフローに従ってデータ書込を行った場合の、信号またはデータ書込プログラム中の変数の変遷を示し、機能をハードウェアで実現した場合は信号線の値となり、プログラムで実現した場合はプログラム中の変数の値となる。
(First embodiment)
FIG. 1A is an example of a data rewrite flow according to the first embodiment of the present invention, and FIG. 1B is a signal or data when data is written according to the rewrite flow of FIG. It shows the transition of variables in the writing program. When the function is realized by hardware, it becomes a value of the signal line, and when realized by the program, it becomes the value of the variable in the program.
図1(b)において、117は書換の回数を示す。118は書換前のあるブロック内のメモリの状態である。今回の説明では簡単のため4ビットのデータとしており、書込済(ビットの状態が0)の部分には下線が引いてある。119は新規書込データそのままのデータであり、下線が引いてある部分はメモリの状態118で書込済(ビットの状態が0)の位置に対応する。120は図1(a)の判定102による判定結果、第1判定である。121は図1(a)の処理104で計数される第1書込ビット数であり、新規書込データそのままのデータ119を書込むものとした場合に、メモリの状態118から消去を行わずに新たに書込(ビット状態を0にする)が行われるビット数である。122は図1(a)の処理103で計数される第2書込ビット数であり、新規書込データそのままのデータ119を書込むものとした場合に、メモリの状態118から消去(全ビットを1にする)を行った後に、新たに書込(ビット状態を0にする)が行われるビット数である。
In FIG. 1B, 117 indicates the number of rewrites.
123は新規書込データの各ビットを反転演算したデータ(新規書込反転データ)であり、下線が引いてある部分は、メモリの状態118で書込済(ビット状態が0)の位置に対応する。124は図1(a)の判定105による判定結果、第2判定である。125は図1(a)の処理107で計数される第3書込ビット数であり、新規書込反転データ123を書込むものとした場合に、メモリの状態118から消去を行わずに新たに書込(ビット状態を0にする)が行われるビット数である。126は図1(a)の処理106で計数される第4書込ビット数であり、新規書込反転データ123を書込むものとした場合に、メモリの状態118から消去(全ビットを1にする)を行った後に、新たに書込(ビット状態を0にする)が行われるビット数である。
123 is data obtained by reversing each bit of the new write data (new write inverted data), and the underlined portion corresponds to the position where the data has been written (bit state is 0) in the
127は実際の書込データであり、図1(a)の処理110、処理111、処理114、処理115のいずれかで書込みを行うデータである。128は実際の書込データ127が反転されているか否かを示す反転フラグである。
図1(a)、図1(b)を用いてデータ書換の流れを説明する。 The flow of data rewriting will be described with reference to FIGS. 1 (a) and 1 (b).
書換回数1回目129において、書換前のメモリの状態118は”1111”である。書換回数1回目129では、新規書込データは”1111”である。
In the
判定102でメモリの状態118の既書込ビット(状態が0のビット)について、新規書込そのままデータ119の対応ビットも書込(ビット状態を0にする)かどうか判定し、OKであれば処理104に進み、NGであれば処理103に進む。書換回数1回目129では、メモリの状態118に既書込ビットが無いため、第1判定はOKとなり処理104に進む。処理104では第1書込ビット数121を数える。第1書込ビット数121は、そのままデータ119の0の数からメモリの状態118の0の数を引き算することにより求められる。書換回数1回目129では0となる。
In
次に、判定105でメモリの状態118の既書込ビットについて、新規書込反転データ123の対応ビットも書込(ビット状態を0にする)かどうか判定し、OKであれば処理107に進み、NGであれば処理106に進む。書換回数1回目129では、メモリの状態118に既書込ビットが無いため、第2判定はOKとなり処理107に進む。処理107では第3書込ビット数を数える。第3書込ビット数125は、反転データ123の0の数からメモリの状態118の0の数を引き算することにより求められる。書換回数1回目129では4となる。
Next, it is determined in
次に、判定108で第1判定120と第2判定124がどちらもNGかを判定し、どちらもNGであれば処理112に進み、そうでなければ判定処理109に進む。書換回数1回目129では、第1判定120も第2判定124もどちらもOKであるので判定109に進む。
Next, in the
判定109では第1書込ビット数121と第3書込ビット数125を比較し、第1書込ビット数121≦第3書込ビット数125の場合は処理111(処理115と同じ処理)に進み、そうでない場合は処理110(処理114と同じ処理)に進む。書換回数1回目129では、第1書込ビット数<第3書込ビット数であるので処理111に進み、新規書込データそのままのデータ119を書込データ127としてメモリセルへの書込を行い、反転フラグ128を1にする。これで書換回数1回目129が終了する。
In the determination 109, the first
このメモリデータを読み出す場合は、反転フラグ128が1なので、メモリの状態”1111”がそのまま読み出される。
When reading this memory data, since the
書換回数2回目130、3回目131、4回目132についても図1(a)のフローに基づいて行われる。なお、書換回数2回目130、3回目131では、判定109で、第1書込ビット数>第3書込ビット数であるので処理110に進み、新規書込反転データ123を書込データ127としてメモリセルへの書込を行い、反転フラグ128を0にする。この反転フラグ128が0のメモリデータを読み出す場合は、メモリの状態が反転されて読み出される。また、書換回数4回目132では、判定109で第1書込ビット数121と第3書込ビット数125の比較が行われるが、書換回数4回目132の場合、第二判定124にてNGだった為、処理107は行われず第3書込ビット数125の計数は行われないので、第3書込ビット数125の初期値として充分に大きな数を設定しておく。この第3書込ビット数125の初期値は、ブロックを構成するビット数より大きな値とする。ここでは4ビットでブロックを構成しているので5以上に設定しておく。よって、書換回数4回目132では、第1書込ビット数<第3書込ビット数となり処理111に進み、新規書込そのままのデータ119を書込データ127としてメモリセルへの書込を行い、反転フラグ128を1にする。
The
次に、書換回数5回目133について説明する。書換回数5回目133において、書換前のメモリ状態118は”1000”である。書換回数5回目133では、新規書換データは”1111”である。
Next, the
判定102でメモリの状態118の既書込ビットについて、新規書込そのままデータ119の対応ビットも書込(ビット状態を0にする)かどうか判定する。書換回数5回目133では、メモリの状態118の下位3ビットが既書込(“0”)であり、そのままデータ119では対応する下位3ビットは”1”であるため、第1判定はNGとなり処理103にすすむ。処理103では第2書込ビット数122を数える。第2書込ビット数122は、そのままデータ119の0の数そのものである。書換回数5回目133では0となる。
In
次に、判定105でメモリの状態118の既書込ビットについて、新規書込反転データ123の対応ビットも書込(ビット状態を0にする)かどうか判定する。書換回数5回目133では、メモリの状態118の下位3ビットが既書込(“0”)であり、反転データ123の対応する下位3ビットでも”0”であるため、第2判定はOKとなり処理107に進む。処理107では第3書込ビット数を数える。第3書込ビット数125は、反転データ123の0の数からメモリの状態118の0の数を引き算することにより求められる。書換回数5回目133では1となる。
Next, in the
次に、判定108で第1判定120と第2判定124がどちらもNGかを判定する。書換回数5回目133では、第1判定120がNGであるが第2判定124がOKであるので判定109に進む。
Next, in the
判定109では第1書込ビット数121と第3書込ビット数125を比較する。書換回数5回目133の場合、第一判定120にてNGだった為、処理104は行われず第1書込ビット数121の計数は行われないので、第1書込ビット数121の初期値として充分に大きな数を設定しておく。この第1書込ビット数121の初期値は、ブロックを構成するビット数より大きな値とする。ここでは4ビットでブロックを構成しているので5以上に設定しておく。よって、書換回数5回目133では、第1書込ビット数>第3書込ビット数となり処理110に進み、新規書込反転データ123を書込データ127としてメモリセルへの書込を行い、反転フラグ128を0にする。これで書換回数5回目133が終了する。
In the determination 109, the first
このメモリデータを読み出す場合は、反転フラグ128が0なので、メモリの状態”0000”が反転され、”1111”が読み出される。
When reading this memory data, since the
次に、書換回数6回目134について説明する。書換回数6回目134において、書換前のメモリ状態118は”0000”である。書換回数6回目134では、新規書換データは”0001”である。
Next, the
判定102でメモリの状態118の既書込ビットについて、新規書込そのままデータ119の対応ビットも書込(ビット状態を0にする)かどうか判定する。書換回数6回目134では、メモリの状態118の全4ビットが既書込(“0”)であり、そのままデータ119では下位1ビットが”1”であるため、第1判定はNGとなり処理103にすすむ。処理103では第2書込ビット数122を数える。第2書込ビット数122は、そのままデータ119の0の数そのものである。書換回数6回目134では3となる。
In
次に、判定105でメモリの状態118の既書込ビットについて、新規書込反転データ123の対応ビットも書込(ビット状態を0にする)かどうか判定する。書換回数6回目134では、メモリの状態118の全4ビットが既書込(“0”)であり、反転データ123では上位3ビットが”1”であるため、第2判定はNGとなり処理106に進む。処理106では第4書込ビット数を数える。第4書込ビット数126は、反転データ123の0の数そのものである。書換回数6回目134では1となる。
Next, in the
次に、判定108で第1判定120と第2判定124がどちらもNGかを判定する。書換回数6回目134では、第1判定120がNG、第2判定124もNGであるので、処理112に進む。
Next, in the
処理112では、メモリ消去を行いメモリの状態118を”1111”にした上で、判定113に進む。
In the process 112, the memory is erased and the
判定113では第2書込ビット数122と第4書込ビット数126を比較し、第2書込ビット数122≦第4書込ビット数126の場合は処理115(処理111と同じ処理)に進み、そうでない場合は処理114(処理110と同じ処理)に進む。書換回数6回目134では、第2書込ビット数>第4書込ビット数であるので処理114に進み、新規書込反転データ123を書込データ127としてメモリセルへの書込を行い、反転フラグ128を0にする。これで書換回数6回目134が終了する。
In the
このメモリデータを読み出す場合は、反転フラグ128が0なので、メモリの状態”1110”が反転され、”0001”が読み出される。
When reading this memory data, since the
以上のように、本発明の第1の実施形態で図1(b)のようなデータ書換を行う場合は、書換回数6回目134で初めてデータ消去が行われ、書込も最小限の必要なメモリセルに限られる。すなわち本実施形態では、既に書込済みのデータと新規書込データの関係を考慮することにより、従来技術よりも確実に消去及び書込回数を減少させ、メモリセルへのストレスを減らし、不揮発性半導体メモリの寿命を伸ばすことが出来る。
As described above, when data rewriting as shown in FIG. 1B is performed in the first embodiment of the present invention, data is erased for the first time at the
(第2の実施形態)
図2(a)は本発明の第2の実施形態におけるデータ書換えフローの一例であり、図2(b)は図2(a)の書換えフローに従ってデータ書込を行った場合の、信号またはデータ書込プログラム中の変数の変遷を示し、機能をハードウェアで実現した場合は信号線の値となり、プログラムで実現した場合はプログラム中の変数の値となる。
(Second Embodiment)
FIG. 2A is an example of a data rewrite flow in the second embodiment of the present invention, and FIG. 2B is a signal or data when data is written according to the rewrite flow of FIG. It shows the transition of variables in the writing program. When the function is realized by hardware, it becomes a value of the signal line, and when realized by the program, it becomes the value of the variable in the program.
図2(b)において、217〜222はそれぞれ図1(b)における117〜122と同様である。223は新規書込データのビット上下並び方向を反転演算したデータ(新規書込上下反転データ)であり、下線が引いてある部分は、メモリの状態218で書込済(ビット状態が0)の位置に対応する。224は図2(a)の判定205による判定結果、第2判定である。225は図2(a)の処理207で計数される第3書込ビット数であり、新規書込上下反転データ223を書込むものとした場合に、メモリの状態218から消去を行わずに新たに書込(ビット状態を0にする)が行われるビット数である。226は図2(a)の処理206で計数される第4書込ビット数であり、新規書込上下反転データ223を書込むものとした場合に、メモリの状態118から消去(全ビットを1にする)を行った後に、新たに書込(ビット状態を0にする)が行われるビット数である。227は実際の書込データであり、図2(a)の処理210、処理211、処理214、処理215のいずれかで書込みを行うデータである。228は実際の書込データ227がビット上下並び方向に反転されているか否かを示す上下反転フラグであり、1の場合は新規書込そのままデータ219が書込データ227として書込まれており、読み出す場合はメモリの状態がそのまま読み出され、0の場合は新規書込上下反転データ223が書込データ227として書込まれており、読み出す場合はメモリの状態をビット上下並び方向に反転して(逆にして)読み出される。
In FIG. 2B,
図2(a)、図2(b)を用いてデータ書換の流れを説明する。 The flow of data rewriting will be described with reference to FIGS. 2 (a) and 2 (b).
この第2の実施形態は、第1の実施形態における新規書込反転データ123および反転フラグ128に代えて、新規書込上下反転データ223および上下反転フラグ228を用いるものであり、これに関する以外は第1の実施形態のデータ書換の流れと同じである。
In the second embodiment, new write upside down
例えば書換回数5回目233について説明する。書換回数5回目233において、書換前のメモリ状態218は”1000”である。書換回数5回目233では、新規書換データは”1110”である。
For example, the
判定202でメモリの状態218の既書込ビットについて、新規書込そのままデータ219の対応ビットも書込(ビット状態を0にする)かどうか判定する。書換回数5回目233では、メモリの状態218の下位3ビットが既書込(“0”)であり、そのままデータ219では下位から2ビット目と3ビット目が”1”であるため、第1判定はNGとなり処理203にすすむ。処理203では第2書込ビット数222を数える。第2書込ビット数222はそのままデータ219の0の数そのものである。書換回数5回目233では1となる。
In
次に、判定205でメモリの状態218の既書込ビットについて、新規書込上下反転データ223の対応ビットも書込(ビット状態を0にする)かどうか判定する。書換回数5回目233では、メモリの状態218の下位3ビットが既書込(“0”)であり、上下反転データ223では下位3ビットが”1”であるため、第2判定はNGとなり処理206に進む。処理206では第4書込ビット数を数える。第4書込ビット数226は、上下反転データ223の0の数そのものである。書換回数5回目233では1となる。
Next, in the
次に、判定208で第1判定220と第2判定224がどちらもNGかを判定する。書換回数5回目233では、第1判定220がNG、第2判定224もNGであるので、処理212に進む。
Next, in the
処理212では、メモリ消去を行いメモリの状態218を”1111”にした上で、判定213に進む。
In
判定213では第2書込ビット数222と第4書込ビット数226を比較する。書換回数5回目233では、第2書込ビット数=第4書込ビット数であるので処理215に進み、新規書込データそのまま219を書込データ227としてメモリセルへの書込を行い、上下反転フラグ228を1にする。これで書換回数5回目233が終了する。
In the
メモリデータを読み出す場合は、上下反転フラグ228が1なので、メモリの状態”1110”がそのまま読み出される。
When reading the memory data, since the upside down
以上のように、本発明の第2の実施形態で図2(b)のようなデータ書換を行う場合は、書換回数5回目233で初めてデータ消去が行われ、書込も最小限の必要なメモリセルに限られる。すなわち本実施形態では、既に書込済みのデータと新規書込データの関係を考慮することにより、従来技術よりも確実に消去及び書込回数を減少させ、メモリセルへのストレスを減らし、不揮発性半導体メモリの寿命を伸ばすことが出来る。
As described above, when data rewriting as shown in FIG. 2B is performed in the second embodiment of the present invention, data erasure is performed for the first time at the
(第3の実施形態)
図3(a)は本発明の第3の実施形態におけるデータ書換えフローの一例であり、図3(b)は図3(a)の書換えフローに従ってデータ書込を行った場合の、信号またはデータ書込プログラム中の変数の変遷を示し、機能をハードウェアで実現した場合は信号線の値となり、プログラムで実現した場合はプログラム中の変数の値となる。
(Third embodiment)
FIG. 3A is an example of a data rewrite flow according to the third embodiment of the present invention, and FIG. 3B is a signal or data when data is written according to the rewrite flow of FIG. It shows the transition of variables in the writing program. When the function is realized by hardware, it becomes a value of the signal line, and when realized by the program, it becomes the value of the variable in the program.
図3(b)において、317〜322はそれぞれ図1(b)における117〜122と同様である。323は新規書込データを所定方向に1ビットシフト移動演算したデータ(新規書込シフト移動データ)であり、下線が引いてある部分は、メモリの状態318で書込済(ビット状態が0)の位置に対応する。324は図3(a)の判定305による判定結果、第2判定である。325は図3(a)の処理307で計数される第3書込ビット数であり、新規書込シフト移動データ323を書込むものとした場合に、メモリの状態318から消去を行わずに新たに書込(ビット状態を0にする)が行われるビット数である。326は図3(a)の処理306で計数される第4書込ビット数であり、新規書込シフト移動データ323を書込むものとした場合に、メモリの状態318から消去(全ビットを1にする)を行った後に、新たに書込(ビット状態を0にする)が行われるビット数である。327は実際の書込データであり、図3(a)の処理310、処理311、処理314、処理315のいずれかで書込みを行うデータである。328は実際の書込データ327が新規書込データを所定方向に1ビットシフト移動したデータであるか否かを示すシフト演算フラグであり、1の場合は新規書込そのままデータ319が書込データ327として書込まれており、読み出す場合はメモリの状態がそのまま読み出され、0の場合は新規書込シフト移動データ323が書込データ327として書込まれており、読み出す場合はメモリの状態が、新規書込みデータ319から新規書込シフト移動データ323を生成する際の1ビットシフト移動とは逆方向に1ビットシフト移動して読み出される。
In FIG.3 (b), 317-322 is respectively the same as 117-122 in FIG.1 (b). 323 is data (new write shift movement data) obtained by shifting the new write data in a predetermined direction by 1 bit, and the underlined portion has been written in the memory state 318 (bit state is 0). Corresponds to the position of.
図3(a)、3(b)を用いてデータ書換の流れを説明する。 The flow of data rewriting will be described using FIGS. 3 (a) and 3 (b).
この第3の実施形態は、第1の実施形態における新規書込反転データ123および反転フラグ128に代えて、新規書込シフト移動データ323およびシフト演算フラグ328を用いるものであり、これに関する以外は第1の実施形態のデータ書換の流れと同じである。
The third embodiment uses new write
例えば書換回数4回目332について説明する。書換回数4回目332において、書換前のメモリ状態318は”0100”である。書換回数4回目332では、新規書換データは”1100”である。
For example, the
判定302でメモリの状態318の既書込ビットについて、新規書込そのままデータ319の対応ビットも書込(ビット状態を0にする)かどうか判定する。書換回数4回目332では、メモリの状態318の下位から1、2、4ビット目が既書込(“0”)であり、そのままデータ319では上位2ビットが”1”であるため、第1判定はNGとなり処理303にすすむ。処理303では第2書込ビット数322を数える。第2書込ビット数322はそのままデータ319の0の数そのものである。書換回数4回目332では2となる。
In
次に、判定305でメモリの状態318の既書込ビットについて、新規書込シフト移動データ323の対応ビットも書込(ビット状態を0にする)かどうか判定する。書換回数4回目332では、メモリの状態318の下位から1、2、4ビット目が既書込(“0”)であり、シフト移動データ323では下位から1ビット目、4ビット目が”1”であるため、判定はNGとなり処理306に進む。処理306では第4書込ビット数を数える。第4書込ビット数326は、シフト移動データ323の0の数そのものである。書換回数4回目332では2となる。
Next, in the
次に、判定308で第1判定320と第2判定324がどちらもNGかを判定する。書換回数4回目332では、第1判定220がNG、第2判定324もNGであるので、処理312に進む。
Next, in the
処理312では、メモリ消去を行いメモリの状態318を”1111”にした上で、判定313に進む。
In
判定313では第2書込ビット数322と第4書込ビット数326を比較する。書換回数4回目332では、第2書込ビット数=第4書込ビット数であるので処理315に進み、新規書込データそのまま319を書込データ327としてメモリセルへの書込を行い、シフト演算フラグ328を1にする。これで書換回数4回目332が終了する。
In
メモリデータを読み出す場合は、シフト演算フラグ328が1なので、メモリの状態”1100”がそのまま読み出される。
When reading the memory data, the
以上のように、本発明の第3の実施形態で図3(b)のようなデータ書換を行う場合は、書換回数4回目332で初めてデータ消去が行われ、書込も最小限の必要なメモリセルに限られる。すなわち本実施形態では、既に書込済みのデータと新規書込データの関係を考慮することにより、従来技術よりも確実に消去及び書込回数を減少させ、メモリセルへのストレスを減らし、不揮発性半導体メモリの寿命を伸ばすことが出来る。
As described above, when data rewriting as shown in FIG. 3B is performed in the third embodiment of the present invention, data is erased for the first time at the
なお、上記第1〜第3の実施形態ではそれぞれ、新規書込そのままデータ以外で実際の書込データとして、01反転データ、ビット上下並び方向反転データ、シフト移動データを用いる場合について個別に説明したが、それぞれの方法を組合せる事により、より書込・消去の回数削減が望めるのは言うまでも無い。また、演算方法は01反転、ビット上下並び方向反転、シフト演算に限定されるものではなく、データを変換・復元出来るならば、どのような演算方法を用いても良い。 In each of the first to third embodiments, the case where 01 inverted data, bit up / down alignment data, and shift movement data are used as actual write data other than data as newly written is individually described. However, it goes without saying that the number of times of writing / erasing can be further reduced by combining the respective methods. Further, the calculation method is not limited to 01 inversion, bit up / down alignment direction shift, and shift calculation, and any calculation method may be used as long as data can be converted and restored.
次に、第1〜第3の実施形態において、フラグを複数ビット構成にした例について説明する。 Next, an example in which the flag has a multi-bit configuration in the first to third embodiments will be described.
図4(a)は、第1、第2の実施形態において、フラグを複数ビット構成にした例を示し、401は反転フラグ・上下反転フラグの複数ビット構成であり、この場合は5ビット構成としている。402は反転フラグ・上下反転フラグを3ビット構成にしたものであり、403は前述の第1、第2の実施形態で説明した場合と同じく反転フラグ・上下反転フラグを1ビットで構成したものである。404は反転フラグ・上下反転フラグで表したいデータの演算内容を表しており、フラグ401、402、403中の0の個数または1の個数が偶数であるか奇数であるかによって判断する。
FIG. 4 (a) shows an example in which the flag has a multi-bit configuration in the first and second embodiments. 401 is a multi-bit configuration of an inversion flag and an up / down inversion flag. In this case, a 5-bit configuration is used. Yes.
図4(a)を用いてデータ書換の際のフラグデータの流れを説明する。 The flow of flag data during data rewriting will be described with reference to FIG.
図4(a)の書換回数2回目407について説明する。
The
書換回数2回目407において書換前のフラグデータのメモリ状態は、5ビット構成フラグ401では”11110”、3ビット構成フラグ402では”110”、1ビット構成フラグ403では”0”である。
In the
書換回数2回目407において新規書込フラグデータは、5ビット構成フラグ401では”11100”、3ビット構成フラグ402では”100”、1ビット構成フラグ403では”1”である。
In the
書換回数2回目407において、5ビット構成フラグ401と3ビット構成フラグ402では、0から1へ変化するビットが存在しない為、データ消去を行わずに書込だけで新規書込フラグデータを表す事が出来るが、1ビット構成フラグ403ではフラグ領域の消去が必要となる。
In the
以上のように、図4(a)のようなフラグデータの書換を行う場合、書換回数2回目では1ビット構成フラグ403では消去が必要なのに対し、5ビット構成フラグ401や3ビット構成フラグ402では消去が不要であることが分かる。このようにフラグを複数ビット持つ事により、フラグ領域の消去回数を削減できる。したがってフラグ構成ビット数を増やす事により、さらに消去回数削減効果が見込まれる。
As described above, when rewriting the flag data as shown in FIG. 4A, the 1-
なお、上記の例では、反転フラグ401、402、403の偶数・奇数にて、データの演算内容を判断しているが、複数ビットから2値を判断出来る方法であればどのような判断方法を用いても良い。 In the above example, the data calculation contents are determined by the even / odd numbers of the inversion flags 401, 402, and 403. However, any determination method can be used as long as the binary can be determined from a plurality of bits. It may be used.
次に、図4(b)は、第3の実施形態において、フラグを複数ビット構成にした例を示し、411はシフト演算フラグの複数ビット構成であり、この場合は3ビット構成としている。412はシフト演算フラグを2ビット構成にしたものであり、413は前述の第3の実施形態で説明した場合と同じくシフト演算フラグを1ビットで構成したものである。414はシフト演算フラグで表したいデータのシフト量を表している。
Next, FIG. 4B shows an example in which the flag has a multi-bit configuration in the third embodiment, and
図4(b)を用いてフラグデータで表せるシフト移動量を説明する。 The shift movement amount that can be represented by the flag data will be described with reference to FIG.
シフト演算フラグが1ビット構成413の場合は、表せるシフト移動量は0ビット415、1ビット416の2パターンである。これをシフト演算フラグを2ビット構成412、3ビット構成411とビット数を増やす事により、414のように表現可能なシフト移動量の範囲拡大が見込まれる。
When the shift calculation flag has a 1-
次に、図5は、本発明を適用したシステムを示し、501はシステム500を制御するCPUである。509はシステム500内のフラッシュメモリで、ブロック0〜mの複数のブロックに分かれており、ブロック毎にデータ領域510とそのデータ領域に書込まれている書込データの演算内容を示す演算内容フラグ(前述の反転フラグ、上下反転フラブまたはシフト演算フラグ)の記憶領域511を持つ。
Next, FIG. 5 shows a system to which the present invention is applied, and
507はフラッシュメモリ509へのデータ入力、508は演算内容フラグ入力、503はアドレス入力、512は既書込データの読出結果、513は演算内容フラグの読出結果である。
507 is a data input to the
504はデータの比較・判定ブロックであり、書込時には新規書込データ502と既書込データ512との比較を行い、消去せずにデータ書込出来る演算結果が存在するかを判定する。さらに複数の演算結果が存在する場合は、より書込ビットが少ないデータを選択する。
書込データ演算ブロック506は、比較・判定ブロック504の判定結果505を受け、新規書込データ502から実際にフラッシュメモリに書込むデータ507と演算内容フラグ508を生成し、フラッシュメモリ509に書込む。
The write
また読出時には読出データ演算ブロック514にて、既書込データ512と同データの演算内容フラグ513からデータ515を生成し、CPU501にフラッシュメモリ509からの読出データとして受け渡す。
At the time of reading, the read
例えば図1(a)の場合において、CPU501は、108,112の処理、及び101から116の制御を行う。比較・判定ブロック504は、102,105,109,113の処理を行う。書込データ演算ブロック506は、103,104,106,107,110,114,111,115の処理を行う。読出データ演算ブロック514は、102,105の既書込ビットの読み出しを行う。図2(a),図3(a)の場合も同様である。
For example, in the case of FIG. 1A, the
本発明は、例えば制御用マイコンの命令を記憶する不揮発性半導体メモリへの新規データ書込によるメモリセルへのストレスを軽減でき、例えば、書換可能な不揮発性メモリに命令/データ/プログラム等を書込むメモリーライタや、及び不揮発性メモリ搭載システムLSIのメモリ書換え時のアルゴリズムに有用である。 The present invention can reduce stress on a memory cell due to new data writing to a nonvolatile semiconductor memory that stores, for example, instructions of a control microcomputer. For example, an instruction / data / program can be written to a rewritable nonvolatile memory. It is useful for the memory writer to be embedded and the algorithm at the time of memory rewriting of the system LSI with nonvolatile memory.
501 CPU
502 書込データ
503 アクセスアドレス
504 データ比較及び判定ブロック
506 書込データ演算ブロック
507 書込データ
508 書込フラグ
509 フラッシュメモリ
510 ブロック単位のメモリデータ領域
511 メモリデータ領域に対応する演算フラグ領域
512 読出データ
513 読出フラグ
514 読出データ演算ブロック
501 CPU
502
Claims (9)
前記ブロックごとに新規データを記憶させる際、
前記ブロックに記憶されている既存データと前記新規データとを比較し、前記ブロックの既存データを構成する複数の前記メモリセルのうちいずれかのメモリセルを書込状態から消去状態に変更することなく前記新規データを書込むことが可能であるか否かを判定する新規データ判定処理と、
前記ブロックに記憶されている既存データと前記新規データに対し所定の演算処理を施して生成される加工データとを比較し、前記ブロックの既存データを構成する複数の前記メモリセルのうちいずれかのメモリセルを書込状態から消去状態に変更することなく前記加工データを書込むことが可能であるか否かを判定する加工データ判定処理と、
前記新規データ判定処理と前記加工データ判定処理の両方の判定結果が不可能であるときに前記ブロックの既存データを構成する全てのメモリセルを消去状態にするデータ消去処理と、
前記新規データ判定処理と前記加工データ判定処理のうち前記新規データ判定処理のみの判定結果が可能であるときは前記ブロックに前記新規データを書込み、前記加工データ判定処理のみの判定結果が可能であるときは前記ブロックに前記加工データを書込み、前記新規データ判定処理と前記加工データ判定処理の両方の判定結果が可能であるとき、または前記消去処理後に、前記ブロックに前記新規データまたは前記加工データを書込むデータ書込処理とを行うことを特徴とする不揮発性半導体メモリ。 A memory cell array having a plurality of memory cells each storing different 1-bit data in a writing state and an erasing state, and dividing the memory cell array into blocks storing a plurality of bits of data; A non-volatile semiconductor memory for writing data to a cell,
When storing new data for each block,
The existing data stored in the block is compared with the new data, and any one of the plurality of memory cells constituting the existing data of the block is not changed from the written state to the erased state. A new data determination process for determining whether the new data can be written;
Comparing the existing data stored in the block and the processed data generated by performing a predetermined arithmetic process on the new data, any one of the plurality of memory cells constituting the existing data of the block A machining data determination process for determining whether or not the machining data can be written without changing the memory cell from the written state to the erased state;
A data erasing process for erasing all memory cells constituting the existing data of the block when determination results of both the new data determining process and the processed data determining process are not possible,
When the determination result of only the new data determination processing is possible among the new data determination processing and the processing data determination processing, the new data is written in the block, and the determination result of only the processing data determination processing is possible. When the processing data is written to the block, the determination result of both the new data determination processing and the processing data determination processing is possible, or after the erasure processing, the new data or the processing data is written to the block. A non-volatile semiconductor memory characterized by performing data writing processing for writing.
前記データ書込処理において、前記新規データを書込む時には前記演算処理フラグをリセットし、前記加工データを書込む時には前記演算処理フラグをセットするようにし、
前記ブロックのデータを読み出す際、前記演算処理フラグがリセットされていればデータをそのまま読み出し、前記演算処理フラグがセットされていればデータを反転して読み出すようにした請求項1、2または3記載の不揮発性半導体メモリ。 An arithmetic processing flag indicating an arithmetic processing performed when generating the processed data is provided in the memory cell array, and the arithmetic processing is processing for inverting each bit data of the new data,
In the data writing process, the arithmetic processing flag is reset when the new data is written, and the arithmetic processing flag is set when the machining data is written,
4. The data of the block is read when the arithmetic processing flag is reset, when the arithmetic processing flag is reset, and when the arithmetic processing flag is set, the data is inverted and read. Non-volatile semiconductor memory.
前記データ書込処理において、前記新規データを書込む時には前記演算処理フラグをリセットし、前記加工データを書込む時には前記演算処理フラグをセットするようにし、
前記ブロックのデータを読み出す際、前記演算処理フラグがリセットされていればデータをそのまま読み出し、前記演算処理フラグがセットされていればデータをビット上下並び方向を逆にして読み出すようにした請求項1、2または3記載の不揮発性半導体メモリ。 An arithmetic processing flag indicating an arithmetic processing to be performed when generating the processed data is provided in the memory cell array, and the arithmetic processing is processing for reversing the bit vertical alignment direction of the new data,
In the data writing process, the arithmetic processing flag is reset when writing the new data, and the arithmetic processing flag is set when writing the machining data.
2. When reading the data of the block, if the arithmetic processing flag is reset, the data is read as it is, and if the arithmetic processing flag is set, the data is read in the reverse bit-up / down direction. 2. The nonvolatile semiconductor memory according to 2 or 3.
前記データ書込処理において、前記新規データを書込む時には前記演算処理フラグをリセットし、前記加工データを書込む時には前記演算処理フラグをセットするようにし、
前記ブロックのデータを読み出す際、前記演算処理フラグがリセットされていればデータをそのまま読み出し、前記演算処理フラグがセットされていればデータを前記所定方向とは逆方向にNビットシフトさせて読み出すようにした請求項1、2または3記載の不揮発性半導体メモリ。 An arithmetic processing flag indicating an arithmetic processing to be performed when generating the processed data is provided in the memory cell array, and the arithmetic processing is processing for shifting the new data by N bits in a predetermined direction (N is an integer of 1 or more). ,
In the data writing process, the arithmetic processing flag is reset when the new data is written, and the arithmetic processing flag is set when the machining data is written,
When reading the data of the block, if the arithmetic processing flag is reset, the data is read as it is, and if the arithmetic processing flag is set, the data is read by shifting N bits in the direction opposite to the predetermined direction. The nonvolatile semiconductor memory according to claim 1, 2 or 3.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004025601A JP2005216455A (en) | 2004-02-02 | 2004-02-02 | Nonvolatile semiconductor memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004025601A JP2005216455A (en) | 2004-02-02 | 2004-02-02 | Nonvolatile semiconductor memory |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005216455A true JP2005216455A (en) | 2005-08-11 |
Family
ID=34907942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004025601A Pending JP2005216455A (en) | 2004-02-02 | 2004-02-02 | Nonvolatile semiconductor memory |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005216455A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100827702B1 (en) | 2006-11-01 | 2008-05-07 | 삼성전자주식회사 | Resistive semiconductor memory device |
JP2008257850A (en) * | 2007-04-04 | 2008-10-23 | Samsung Electronics Co Ltd | Flash memory device and method for driving the same |
JP2009214596A (en) * | 2008-03-07 | 2009-09-24 | Nissan Diesel Motor Co Ltd | Vehicular electronic control unit |
JP2011204304A (en) * | 2010-03-25 | 2011-10-13 | Toshiba Corp | Data memory device, and method of writing the same |
US9076533B2 (en) | 2012-05-30 | 2015-07-07 | Samsung Electronics Co., Ltd. | Method of reprogramming nonvolatile memory comprising marking some cells as blanks |
US9478293B2 (en) | 2014-09-12 | 2016-10-25 | Kabushiki Kaisha Toshiba | Memory system and controller |
FR3039922A1 (en) * | 2015-08-06 | 2017-02-10 | Stmicroelectronics Rousset | METHOD OF WRITING IN A MEMORY OF THE EEPROM TYPE AND CORRESPONDING MEMORY DEVICE |
KR101731033B1 (en) | 2010-07-09 | 2017-04-28 | 에스케이하이닉스 주식회사 | Semiconductor memory device and method of operating the same |
CN115588454A (en) * | 2022-11-24 | 2023-01-10 | 北京紫光青藤微系统有限公司 | Data writing method and device of memory, electronic equipment and storage medium |
-
2004
- 2004-02-02 JP JP2004025601A patent/JP2005216455A/en active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100827702B1 (en) | 2006-11-01 | 2008-05-07 | 삼성전자주식회사 | Resistive semiconductor memory device |
JP2008257850A (en) * | 2007-04-04 | 2008-10-23 | Samsung Electronics Co Ltd | Flash memory device and method for driving the same |
JP2009214596A (en) * | 2008-03-07 | 2009-09-24 | Nissan Diesel Motor Co Ltd | Vehicular electronic control unit |
JP2011204304A (en) * | 2010-03-25 | 2011-10-13 | Toshiba Corp | Data memory device, and method of writing the same |
KR101731033B1 (en) | 2010-07-09 | 2017-04-28 | 에스케이하이닉스 주식회사 | Semiconductor memory device and method of operating the same |
US9076533B2 (en) | 2012-05-30 | 2015-07-07 | Samsung Electronics Co., Ltd. | Method of reprogramming nonvolatile memory comprising marking some cells as blanks |
US9478293B2 (en) | 2014-09-12 | 2016-10-25 | Kabushiki Kaisha Toshiba | Memory system and controller |
FR3039922A1 (en) * | 2015-08-06 | 2017-02-10 | Stmicroelectronics Rousset | METHOD OF WRITING IN A MEMORY OF THE EEPROM TYPE AND CORRESPONDING MEMORY DEVICE |
CN106448730A (en) * | 2015-08-06 | 2017-02-22 | 意法半导体(鲁塞)公司 | Method for Writing in an EEPROM Memory and Corresponding Memory |
US10013208B2 (en) | 2015-08-06 | 2018-07-03 | Stmicroelectronics (Rousset) Sas | Method for writing in an EEPROM memory and corresponding memory |
CN106448730B (en) * | 2015-08-06 | 2019-12-13 | 意法半导体(鲁塞)公司 | Method for writing in an EEPROM memory and corresponding memory |
CN115588454A (en) * | 2022-11-24 | 2023-01-10 | 北京紫光青藤微系统有限公司 | Data writing method and device of memory, electronic equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100885783B1 (en) | Flash memory device and method of operating the same | |
US8024509B2 (en) | Method of managing a multi-bit-cell flash memory | |
KR100888695B1 (en) | Flash memory device for over-sampling read operation and read method thereof | |
US6549457B1 (en) | Using multiple status bits per cell for handling power failures during write operations | |
JP4925301B2 (en) | Semiconductor memory system | |
KR101468099B1 (en) | Program method for non-volatile memory device | |
US7719900B2 (en) | Semiconductor storage device having memory cell for storing data by using difference in threshold voltage | |
US7782667B2 (en) | Method of operating a flash memory device | |
JP5264887B2 (en) | Multi-bit programming apparatus and multi-bit programming method | |
JP2008123330A (en) | Nonvolatile semiconductor storage device | |
JP2009016034A (en) | Flash memory system and its error correction method | |
KR20080053779A (en) | Multi bit flash memory device and program method thereof | |
JP2008502090A (en) | Memory device with user-configurable density / operation performance | |
JP5259138B2 (en) | Storage device | |
JP5028967B2 (en) | Semiconductor memory device and method for controlling semiconductor memory device | |
KR20110065897A (en) | Flash memory device, flash memory system, and method of programming the flash memory device | |
KR100837279B1 (en) | Flash memory device for over-sampling read and interfacing method thereof | |
CN108877863B (en) | Flash memory storage device and operation method thereof | |
JP2005216455A (en) | Nonvolatile semiconductor memory | |
US7719893B2 (en) | Nonvolatile memory and apparatus and method for deciding data validity for the same | |
JP2007157234A (en) | Memory system | |
JP2011204303A (en) | Semiconductor memory device | |
JP2007094921A (en) | Memory card and control method for it | |
JP4235646B2 (en) | Memory controller and flash memory system | |
JP2012009112A (en) | Nonvolatile semiconductor memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060526 |