[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2005216455A - Nonvolatile semiconductor memory - Google Patents

Nonvolatile semiconductor memory Download PDF

Info

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
Application number
JP2004025601A
Other languages
Japanese (ja)
Inventor
Masataka Fujimoto
将隆 藤本
Ryoji Hiraki
良治 平木
Manabu Tsunoda
学 角田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004025601A priority Critical patent/JP2005216455A/en
Publication of JP2005216455A publication Critical patent/JP2005216455A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Read Only Memory (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a nonvolatile semiconductor memory where stress to a memory cell is reduced by reliably reducing the number of times of erasing and writing more than that in conventional technique in consideration of the relation between already written data and data to be written as new one (new writing data, hereafter). <P>SOLUTION: When rewriting data, the already written data which is written already is compared with the new writing data, and it is judged by each block whether the new writing data can be expressed without erasing the already written data. By erasing the already written data only when erasing is required, the number of times of erasing is reduced. When writing data, data requiring a smaller number of writing bits between new writing inverted data obtained by inverting each bit of the new writing data and the new writing data is written to reduce the number of times of writing to the memory cell. <P>COPYRIGHT: (C)2005,JPO&NCIPI

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参照)。
特開平7−45085号公報 特開2001−56785号公報
Therefore, in the prior art, 0 or 1 of all newly written data is counted, and when the number of 0 <number, the data is written as it is, and when the number of 0> 1, the data is inverted and written. As a result, stress is reduced by reducing writing (bit state is set to 0) (see Patent Document 1). Further, the probability of writing data to the same address is reduced by inverting and using specific address data when all data erasure is detected (see Patent Document 2).
JP 7-45085 A JP 2001-56785 A

しかしながら上記従来技術では、データの書換えを行う場合に、書込済みのデータと新規書込データの関係を考慮せず、一旦、書き換えるべき全データを消去した後で、新規データを書き込んでいたため、消去及び書込回数の削減程度が小さく、メモリセルへのストレスの軽減の程度も小さいものであった。   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. Reference numeral 118 denotes a memory state in a certain block before rewriting. In this explanation, for the sake of simplicity, it is assumed to be 4-bit data, and the written portion (bit state is 0) is underlined. Reference numeral 119 denotes new write data as it is, and the underlined portion corresponds to the position where the data has been written in the memory state 118 (bit state is 0). Reference numeral 120 denotes a determination result obtained by the determination 102 in FIG. 121 is the first write bit number counted in the process 104 of FIG. 1A. When the new write data 119 is written as it is, the memory state 118 is not erased. This is the number of bits to be newly written (set the bit state to 0). 122 is the second write bit number counted in the process 103 in FIG. 1A. When the data 119 is written as the new write data as it is, it is erased from the memory state 118 (all bits are changed). This is the number of bits to be newly written (to set the bit state to 0) after performing (to 1).

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 memory state 118 To do. Reference numeral 124 denotes a determination result obtained by the determination 105 in FIG. 125 is the third write bit number counted in the process 107 of FIG. 1A. When the new write inversion data 123 is to be written, the memory state 118 is newly erased without being erased. This is the number of bits to be written (bit state is set to 0). 126 is the fourth number of write bits counted in the processing 106 of FIG. 1A. When the new write inverted data 123 is written, the memory state 118 is erased (all bits are set to 1). This is the number of bits to be newly written (set the bit state to 0) after performing

127は実際の書込データであり、図1(a)の処理110、処理111、処理114、処理115のいずれかで書込みを行うデータである。128は実際の書込データ127が反転されているか否かを示す反転フラグである。   Reference numeral 127 denotes actual write data, which is data to be written in any one of the process 110, the process 111, the process 114, and the process 115 in FIG. Reference numeral 128 denotes an inversion flag indicating whether or not the actual write data 127 is inverted.

図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 first rewrite 129, the memory state 118 before rewrite is “1111”. In the first rewrite 129, the new write data is “1111”.

判定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 decision 102, it is determined whether or not the corresponding bit of data 119 is written as it is (new bit is written) as to the already written bit (bit whose state is 0) in the memory state 118. If it is NG, the process proceeds to process 103. In the first rewrite 129, since there is no already written bit in the memory state 118, the first determination is OK and the processing proceeds to step 104. In process 104, the first write bit number 121 is counted. The first write bit number 121 is obtained by subtracting the number of zeros in the memory state 118 from the number of zeros in the data 119 as it is. It becomes 0 at the first rewrite 129.

次に、判定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 decision 105 whether or not the corresponding bit of the new write inverted data 123 is also written for the already written bit in the memory state 118 (the bit state is set to 0). If it is NG, the process proceeds to processing 106. In the first rewrite 129, since there is no already written bit in the memory state 118, the second determination is OK and the processing 107 is performed. In process 107, the number of third write bits is counted. The third write bit number 125 is obtained by subtracting the number of zeros in the memory state 118 from the number of zeros in the inverted data 123. It is 4 in the first rewrite 129.

次に、判定108で第1判定120と第2判定124がどちらもNGかを判定し、どちらもNGであれば処理112に進み、そうでなければ判定処理109に進む。書換回数1回目129では、第1判定120も第2判定124もどちらもOKであるので判定109に進む。   Next, in the determination 108, it is determined whether both the first determination 120 and the second determination 124 are NG. If both are NG, the process proceeds to the process 112, and if not, the process proceeds to the determination process 109. In the first 129 rewriting times, since both the first determination 120 and the second determination 124 are OK, the process proceeds to determination 109.

判定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 write bit number 121 and the third write bit number 125 are compared. If the first write bit number 121 ≦ the third write bit number 125, the process 111 (the same process as the process 115) is performed. If not, the process proceeds to process 110 (the same process as process 114). In the first rewrite operation 129, since the first write bit number <the third write bit number, the process proceeds to processing 111, and the new write data as it is is written into the memory cell as the write data 127. The inversion flag 128 is set to 1. This completes the first rewrite 129.

このメモリデータを読み出す場合は、反転フラグ128が1なので、メモリの状態”1111”がそのまま読み出される。   When reading this memory data, since the inversion flag 128 is 1, the memory state “1111” is read as it is.

書換回数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 second rewrite 130, the third 131, and the fourth 132 are also performed based on the flow of FIG. In the second and third rewrite times 130 and 131, the first write bit number> the third write bit number in the determination 109, so the process advances to 110, and the new write inverted data 123 is set as the write data 127. Writing to the memory cell is performed, and the inversion flag 128 is set to zero. When reading the memory data whose inversion flag 128 is 0, the memory state is inverted and read. Further, in the fourth rewrite number 132, the first write bit number 121 and the third write bit number 125 are compared in the determination 109, but in the case of the fourth rewrite number 132, the second determination 124 is NG. Therefore, since the process 107 is not performed and the third write bit number 125 is not counted, a sufficiently large number is set as the initial value of the third write bit number 125. The initial value of the third write bit number 125 is larger than the number of bits constituting the block. Here, since the block is composed of 4 bits, it is set to 5 or more. Therefore, in the fourth rewrite operation 132, the first write bit number is smaller than the third write bit number, and the process proceeds to processing 111, where the new write data 119 is written to the memory cell as the write data 127, The inversion flag 128 is set to 1.

次に、書換回数5回目133について説明する。書換回数5回目133において、書換前のメモリ状態118は”1000”である。書換回数5回目133では、新規書換データは”1111”である。   Next, the fifth rewrite operation 133 will be described. In the fifth rewrite operation 133, the memory state 118 before rewriting is “1000”. In the fifth rewrite operation 133, the new rewrite data is “1111”.

判定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 decision 102, it is determined whether or not the corresponding bit of data 119 is written as it is for the already written bit in memory state 118 (bit state is set to 0). In the fifth rewrite 133, the lower 3 bits of the memory state 118 are already written (“0”), and the corresponding lower 3 bits are “1” in the data 119, so the first determination is NG. Proceed to processing 103. In process 103, the second write bit number 122 is counted. The second write bit number 122 is the number of zeros of the data 119 as it is. It becomes 0 at the fifth rewrite operation 133.

次に、判定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 determination 105, it is determined whether or not the corresponding bit of the new write inverted data 123 is also written (the bit state is set to 0) for the already written bit in the memory state 118. In the fifth rewrite operation 133, the lower 3 bits of the memory state 118 are already written (“0”), and the corresponding lower 3 bits of the inverted data 123 are also “0”, so the second determination is OK. Proceed to step 107. In process 107, the number of third write bits is counted. The third write bit number 125 is obtained by subtracting the number of zeros in the memory state 118 from the number of zeros in the inverted data 123. It is 1 at the fifth rewrite operation 133.

次に、判定108で第1判定120と第2判定124がどちらもNGかを判定する。書換回数5回目133では、第1判定120がNGであるが第2判定124がOKであるので判定109に進む。   Next, in the determination 108, it is determined whether both the first determination 120 and the second determination 124 are NG. In the fifth rewrite operation 133, the first determination 120 is NG, but the second determination 124 is OK.

判定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 write bit number 121 and the third write bit number 125 are compared. In the case of the fifth rewrite 133, since the first determination 120 is NG, the process 104 is not performed and the first write bit number 121 is not counted. Therefore, as the initial value of the first write bit number 121, Set a sufficiently large number. The initial value of the first write bit number 121 is set to a value larger than the number of bits constituting the block. Here, since the block is composed of 4 bits, it is set to 5 or more. Therefore, in the fifth rewrite operation 133, the first write bit number> the third write bit number, the process proceeds to processing 110, and the new write inversion data 123 is written to the memory cell as the write data 127, and the inversion is performed. The flag 128 is set to 0. This completes the fifth rewrite 133.

このメモリデータを読み出す場合は、反転フラグ128が0なので、メモリの状態”0000”が反転され、”1111”が読み出される。   When reading this memory data, since the inversion flag 128 is 0, the memory state “0000” is inverted and “1111” is read.

次に、書換回数6回目134について説明する。書換回数6回目134において、書換前のメモリ状態118は”0000”である。書換回数6回目134では、新規書換データは”0001”である。   Next, the sixth rewrite 134 will be described. In the sixth rewrite operation 134, the memory state 118 before the rewrite is “0000”. In the sixth rewrite 134, the new rewrite data is “0001”.

判定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 decision 102, it is determined whether or not the corresponding bit of data 119 is written as it is for the already written bit in memory state 118 (bit state is set to 0). At the sixth rewrite 134, all 4 bits of the memory state 118 are already written (“0”), and the lower 1 bit is “1” in the data 119, so the first determination is NG and the process 103 Proceed. In process 103, the second write bit number 122 is counted. The second write bit number 122 is the number of zeros of the data 119 as it is. The value is 3 in the sixth rewrite 134.

次に、判定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 determination 105, it is determined whether or not the corresponding bit of the new write inverted data 123 is also written (the bit state is set to 0) for the already written bit in the memory state 118. At the sixth rewrite 134, all 4 bits of the memory state 118 are already written (“0”), and the upper 3 bits are “1” in the inverted data 123, so the second determination is NG and the process 106 Proceed to In process 106, the number of fourth write bits is counted. The fourth write bit number 126 is the number of 0s of the inverted data 123 itself. It is 1 at the sixth rewrite 134.

次に、判定108で第1判定120と第2判定124がどちらもNGかを判定する。書換回数6回目134では、第1判定120がNG、第2判定124もNGであるので、処理112に進む。   Next, in the determination 108, it is determined whether both the first determination 120 and the second determination 124 are NG. In the sixth rewrite 134, the first determination 120 is NG, and the second determination 124 is also NG.

処理112では、メモリ消去を行いメモリの状態118を”1111”にした上で、判定113に進む。   In the process 112, the memory is erased and the memory state 118 is set to "1111", and then the process proceeds to the determination 113.

判定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 determination 113, the second write bit number 122 and the fourth write bit number 126 are compared. If the second write bit number 122 ≦ the fourth write bit number 126, the process 115 (the same process as the process 111) is performed. If not, the process proceeds to process 114 (the same process as process 110). In the sixth rewrite operation 134, since the second write bit number> the fourth write bit number, the process proceeds to step 114, and the new write inversion data 123 is written to the memory cell as the write data 127, and the inversion is performed. The flag 128 is set to 0. This completes the sixth rewrite 134.

このメモリデータを読み出す場合は、反転フラグ128が0なので、メモリの状態”1110”が反転され、”0001”が読み出される。   When reading this memory data, since the inversion flag 128 is 0, the memory state “1110” is inverted and “0001” is read.

以上のように、本発明の第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 sixth rewriting number 134, and writing is also required to be minimal. Limited to memory cells. That is, in the present embodiment, by considering the relationship between already written data and newly written data, the number of times of erasing and writing is reduced more reliably than in the prior art, the stress on the memory cell is reduced, and the nonvolatile memory The lifetime of the semiconductor memory can be extended.

(第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, reference numerals 217 to 222 are the same as 117 to 122 in FIG. 223 is data obtained by reversing the bit arrangement direction of new write data (new write upside down data). The underlined portion is written in the memory state 218 (bit state is 0). Corresponds to the position. Reference numeral 224 denotes a determination result obtained by the determination 205 in FIG. 225 is the third number of write bits counted in the process 207 of FIG. 2A. When the new write up / down inverted data 223 is to be written, it is newly erased without erasing from the memory state 218. Is the number of bits to be written (sets the bit state to 0). 226 is the fourth write bit number counted in the process 206 in FIG. 2A. When the new write up / down inverted data 223 is to be written, the memory state 118 is erased (all bits are set to 1). This is the number of bits to be newly written (set the bit state to 0). Reference numeral 227 denotes actual write data, which is data to be written in any one of the process 210, the process 211, the process 214, and the process 215 in FIG. 228 is an up / down inversion flag indicating whether or not the actual write data 227 is inverted in the bit vertical arrangement direction. In the case of 1, the data 219 is written as the write data 227 as it is newly written, When reading, the state of the memory is read as it is, and when it is 0, the newly written upside down data 223 is written as the write data 227, and when reading, the state of the memory is reversed in the bit up and down direction. Read (in reverse).

図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 data 223 and upside down flag 228 are used in place of the new write inversion data 123 and the inversion flag 128 in the first embodiment. This is the same as the flow of data rewriting in the first embodiment.

例えば書換回数5回目233について説明する。書換回数5回目233において、書換前のメモリ状態218は”1000”である。書換回数5回目233では、新規書換データは”1110”である。   For example, the fifth rewrite operation 233 will be described. In the fifth rewrite 233, the memory state 218 before the rewrite is “1000”. In the fifth rewrite 233, the new rewrite data is “1110”.

判定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 decision 202, it is determined whether or not the corresponding bit of data 219 is written as it is (new bit is written) with respect to the already written bit in memory state 218. In the fifth rewrite 233, the lower 3 bits of the memory state 218 are already written (“0”), and in the data 219, the second and third bits from the lower are “1”. The determination is NG and the process 203 is proceeded. In the process 203, the second write bit number 222 is counted. The second write bit number 222 is the number of zeros of the data 219 as it is. It is 1 at the fifth rewrite 233.

次に、判定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 determination 205, it is determined whether or not the corresponding bit of the newly written upside down data 223 is also written (the bit state is set to 0) for the already written bit in the memory state 218. In the fifth rewrite 233, the lower 3 bits of the memory state 218 are already written (“0”), and the lower 3 bits of the upside down data 223 are “1”, so the second determination is NG. Proceed to 206. In process 206, the number of fourth write bits is counted. The fourth write bit number 226 is the number of zeros of the upside down data 223 itself. It is 1 at the fifth rewrite 233.

次に、判定208で第1判定220と第2判定224がどちらもNGかを判定する。書換回数5回目233では、第1判定220がNG、第2判定224もNGであるので、処理212に進む。   Next, in the determination 208, it is determined whether both the first determination 220 and the second determination 224 are NG. In the fifth rewrite 233, the first determination 220 is NG, and the second determination 224 is also NG.

処理212では、メモリ消去を行いメモリの状態218を”1111”にした上で、判定213に進む。   In process 212, the memory is erased, the memory state 218 is set to “1111”, and the process proceeds to decision 213.

判定213では第2書込ビット数222と第4書込ビット数226を比較する。書換回数5回目233では、第2書込ビット数=第4書込ビット数であるので処理215に進み、新規書込データそのまま219を書込データ227としてメモリセルへの書込を行い、上下反転フラグ228を1にする。これで書換回数5回目233が終了する。   In the determination 213, the second write bit number 222 and the fourth write bit number 226 are compared. In the fifth rewrite operation 233, since the second write bit number = the fourth write bit number, the process proceeds to the process 215, and the new write data 219 is directly written into the memory cell as the write data 227. The inversion flag 228 is set to 1. This completes the fifth rewrite 233.

メモリデータを読み出す場合は、上下反転フラグ228が1なので、メモリの状態”1110”がそのまま読み出される。   When reading the memory data, since the upside down flag 228 is 1, the memory state “1110” is read as it is.

以上のように、本発明の第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 fifth rewriting number 233, and writing is also required to be minimal. Limited to memory cells. That is, in the present embodiment, by considering the relationship between already written data and newly written data, the number of times of erasing and writing is reduced more reliably than in the prior art, the stress on the memory cell is reduced, and the nonvolatile memory The lifetime of the semiconductor memory can be extended.

(第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. Reference numeral 324 denotes a determination result based on the determination 305 in FIG. 325 is the third write bit number counted in the process 307 of FIG. 3A. When the new write shift movement data 323 is to be written, it is newly erased from the memory state 318 without being erased. Is the number of bits to be written (sets the bit state to 0). Reference numeral 326 denotes a fourth write bit number counted in the process 306 of FIG. 3A. When new write shift movement data 323 is to be written, erasure is performed from the memory state 318 (all bits are set to 1). This is the number of bits to be newly written (set the bit state to 0). Reference numeral 327 denotes actual write data, which is data to be written in any one of the process 310, the process 311, the process 314, and the process 315 of FIG. Reference numeral 328 denotes a shift operation flag indicating whether or not the actual write data 327 is data obtained by shifting the new write data by 1 bit in a predetermined direction. 327 is written, and when reading, the state of the memory is read as it is, when it is 0, the new write shift movement data 323 is written as the write data 327, and when reading, the state of the memory is The new write shift movement data 323 is generated from the new write data 319 and read by shifting by 1 bit in the opposite direction to the 1 bit shift movement.

図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 shift movement data 323 and shift operation flag 328 instead of the new write inversion data 123 and inversion flag 128 in the first embodiment. This is the same as the flow of data rewriting in the first embodiment.

例えば書換回数4回目332について説明する。書換回数4回目332において、書換前のメモリ状態318は”0100”である。書換回数4回目332では、新規書換データは”1100”である。   For example, the fourth rewrite 332 will be described. In the fourth rewrite 332, the memory state 318 before the rewrite is “0100”. In the fourth rewrite 332, the new rewrite data is “1100”.

判定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 decision 302, it is determined whether or not the corresponding bit of data 319 is written as it is for the already written bit in the memory state 318 (the bit state is set to 0). In the fourth rewrite 332, the first, second, and fourth bits from the lower state of the memory state 318 are already written (“0”), and the upper two bits are “1” in the data 319 as it is. The determination is NG and the process 303 is proceeded to. In the process 303, the second write bit number 322 is counted. The second write bit number 322 is the number of zeros of the data 319 as it is. It becomes 2 in the fourth rewrite 332.

次に、判定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 determination 305, it is determined whether or not the corresponding bit of the new write shift movement data 323 is also written (the bit state is set to 0) for the already written bit in the memory state 318. In the fourth rewrite 332, the first, second, and fourth bits from the lower order of the memory state 318 are already written (“0”), and in the shift movement data 323, the first and fourth bits from the lower order are “1”. Therefore, the determination is NG, and the process proceeds to process 306. In process 306, the number of fourth write bits is counted. The fourth write bit number 326 is the number of zeros of the shift movement data 323 itself. It becomes 2 in the fourth rewrite 332.

次に、判定308で第1判定320と第2判定324がどちらもNGかを判定する。書換回数4回目332では、第1判定220がNG、第2判定324もNGであるので、処理312に進む。   Next, in the determination 308, it is determined whether both the first determination 320 and the second determination 324 are NG. In the fourth rewrite 332, the first determination 220 is NG and the second determination 324 is also NG.

処理312では、メモリ消去を行いメモリの状態318を”1111”にした上で、判定313に進む。   In process 312, the memory is erased, the memory state 318 is set to “1111”, and the process proceeds to decision 313.

判定313では第2書込ビット数322と第4書込ビット数326を比較する。書換回数4回目332では、第2書込ビット数=第4書込ビット数であるので処理315に進み、新規書込データそのまま319を書込データ327としてメモリセルへの書込を行い、シフト演算フラグ328を1にする。これで書換回数4回目332が終了する。   In decision 313, the second write bit number 322 is compared with the fourth write bit number 326. In the fourth rewrite operation 332, since the second write bit number = the fourth write bit number, the process proceeds to the process 315, and the new write data 319 is directly written into the memory cell as the write data 327 and shifted. The operation flag 328 is set to 1. This completes the fourth rewrite 332.

メモリデータを読み出す場合は、シフト演算フラグ328が1なので、メモリの状態”1100”がそのまま読み出される。   When reading the memory data, the shift operation flag 328 is 1, so the memory state “1100” is read as it is.

以上のように、本発明の第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 fourth rewriting number 332, and writing is also required to be minimal. Limited to memory cells. That is, in the present embodiment, by considering the relationship between already written data and newly written data, the number of times of erasing and writing is reduced more reliably than in the prior art, the stress on the memory cell is reduced, and the nonvolatile memory The lifetime of the semiconductor memory can be extended.

なお、上記第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. Reference numeral 402 is an inversion flag / upper / lower inversion flag having a 3-bit configuration, and 403 is an inversion flag / up / down inversion flag having 1 bit as in the case of the first and second embodiments described above. is there. Reference numeral 404 represents the operation content of data to be represented by an inversion flag / upside-down inversion flag, and the determination is made based on whether the number of 0s or the number of 1s in the flags 401, 402, 403 is even or odd.

図4(a)を用いてデータ書換の際のフラグデータの流れを説明する。   The flow of flag data during data rewriting will be described with reference to FIG.

図4(a)の書換回数2回目407について説明する。   The second rewrite count 407 in FIG. 4A will be described.

書換回数2回目407において書換前のフラグデータのメモリ状態は、5ビット構成フラグ401では”11110”、3ビット構成フラグ402では”110”、1ビット構成フラグ403では”0”である。   In the second rewrite 407, the memory state of the flag data before rewriting is “11110” for the 5-bit configuration flag 401, “110” for the 3-bit configuration flag 402, and “0” for the 1-bit configuration flag 403.

書換回数2回目407において新規書込フラグデータは、5ビット構成フラグ401では”11100”、3ビット構成フラグ402では”100”、1ビット構成フラグ403では”1”である。   In the second rewrite 407, the new write flag data is “11100” for the 5-bit configuration flag 401, “100” for the 3-bit configuration flag 402, and “1” for the 1-bit configuration flag 403.

書換回数2回目407において、5ビット構成フラグ401と3ビット構成フラグ402では、0から1へ変化するビットが存在しない為、データ消去を行わずに書込だけで新規書込フラグデータを表す事が出来るが、1ビット構成フラグ403ではフラグ領域の消去が必要となる。   In the second rewrite 407, the 5-bit configuration flag 401 and the 3-bit configuration flag 402 do not have a bit that changes from 0 to 1, so that new write flag data can be represented only by writing without erasing data. However, the 1-bit configuration flag 403 requires erasing the flag area.

以上のように、図4(a)のようなフラグデータの書換を行う場合、書換回数2回目では1ビット構成フラグ403では消去が必要なのに対し、5ビット構成フラグ401や3ビット構成フラグ402では消去が不要であることが分かる。このようにフラグを複数ビット持つ事により、フラグ領域の消去回数を削減できる。したがってフラグ構成ビット数を増やす事により、さらに消去回数削減効果が見込まれる。   As described above, when rewriting the flag data as shown in FIG. 4A, the 1-bit configuration flag 403 needs to be erased in the second rewrite, whereas the 5-bit configuration flag 401 and the 3-bit configuration flag 402 It can be seen that no erasure is required. By having a plurality of flags as described above, the number of times of erasing the flag area can be reduced. Therefore, an increase in the number of erasures can be expected by increasing the number of flag constituting bits.

なお、上記の例では、反転フラグ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 reference numeral 411 denotes a multi-bit configuration of the shift calculation flag. In this case, the flag has a 3-bit configuration. Reference numeral 412 denotes a shift operation flag having a 2-bit configuration, and reference numeral 413 denotes a shift operation flag having a 1-bit configuration, as described in the third embodiment. Reference numeral 414 represents a shift amount of data desired to be represented by the shift calculation flag.

図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-bit configuration 413, the shift movement amounts that can be expressed are two patterns of 0 bit 415 and 1 bit 416. By increasing the number of bits of the shift operation flag to the 2-bit configuration 412 and the 3-bit configuration 411, the range of the shift movement amount that can be expressed as 414 is expected to be expanded.

次に、図5は、本発明を適用したシステムを示し、501はシステム500を制御するCPUである。509はシステム500内のフラッシュメモリで、ブロック0〜mの複数のブロックに分かれており、ブロック毎にデータ領域510とそのデータ領域に書込まれている書込データの演算内容を示す演算内容フラグ(前述の反転フラグ、上下反転フラブまたはシフト演算フラグ)の記憶領域511を持つ。   Next, FIG. 5 shows a system to which the present invention is applied, and reference numeral 501 denotes a CPU that controls the system 500. Reference numeral 509 denotes a flash memory in the system 500, which is divided into a plurality of blocks of blocks 0 to m, and a calculation content flag indicating the calculation content of the data area 510 and the write data written in the data area for each block. It has a storage area 511 (the above-described inversion flag, upside-down inversion flag or shift calculation flag).

507はフラッシュメモリ509へのデータ入力、508は演算内容フラグ入力、503はアドレス入力、512は既書込データの読出結果、513は演算内容フラグの読出結果である。   507 is a data input to the flash memory 509, 508 is an operation content flag input, 503 is an address input, 512 is a read result of already written data, and 513 is a read result of the operation content flag.

504はデータの比較・判定ブロックであり、書込時には新規書込データ502と既書込データ512との比較を行い、消去せずにデータ書込出来る演算結果が存在するかを判定する。さらに複数の演算結果が存在する場合は、より書込ビットが少ないデータを選択する。   Reference numeral 504 denotes a data comparison / determination block, which compares new write data 502 with already written data 512 at the time of writing, and determines whether there is an operation result in which data can be written without erasing. Further, if there are a plurality of calculation results, data having fewer write bits is selected.

書込データ演算ブロック506は、比較・判定ブロック504の判定結果505を受け、新規書込データ502から実際にフラッシュメモリに書込むデータ507と演算内容フラグ508を生成し、フラッシュメモリ509に書込む。   The write data calculation block 506 receives the determination result 505 of the comparison / determination block 504, generates data 507 and a calculation content flag 508 that are actually written to the flash memory from the new write data 502, and writes them to the flash memory 509. .

また読出時には読出データ演算ブロック514にて、既書込データ512と同データの演算内容フラグ513からデータ515を生成し、CPU501にフラッシュメモリ509からの読出データとして受け渡す。   At the time of reading, the read data calculation block 514 generates data 515 from the calculation content flag 513 of the same data as the already written data 512 and transfers it to the CPU 501 as read data from the flash memory 509.

例えば図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 CPU 501 performs the processing of 108 and 112 and the control of 101 to 116. The comparison / determination block 504 performs processes 102, 105, 109, and 113. The write data operation block 506 performs processes 103, 104, 106, 107, 110, 114, 111, and 115. The read data calculation block 514 reads the already written bits 102 and 105. The same applies to FIGS. 2A and 3A.

本発明は、例えば制御用マイコンの命令を記憶する不揮発性半導体メモリへの新規データ書込によるメモリセルへのストレスを軽減でき、例えば、書換可能な不揮発性メモリに命令/データ/プログラム等を書込むメモリーライタや、及び不揮発性メモリ搭載システム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.

本発明の第1の実施形態におけるデータ書換え時のフローチャートと信号または変数の遷移図Flowchart and signal / variable transition diagram at the time of data rewriting in the first embodiment of the present invention 本発明の第2の実施形態におけるデータ書換え時のフローチャートと信号または変数の遷移図Flowchart and signal or variable transition diagram at the time of data rewriting in the second embodiment of the present invention 本発明の第3の実施形態におけるデータ書換え時のフローチャートと信号または変数の遷移図Flowchart and signal or variable transition diagram at the time of data rewriting in the third embodiment of the present invention 本発明の第1〜第3の実施形態におけるフラグの構成例を示す図The figure which shows the structural example of the flag in the 1st-3rd embodiment of this invention. 本発明を適用したシステムにおけるデータ書込、読出の構成図Configuration diagram of data writing and reading in a system to which the present invention is applied

符号の説明Explanation of symbols

501 CPU
502 書込データ
503 アクセスアドレス
504 データ比較及び判定ブロック
506 書込データ演算ブロック
507 書込データ
508 書込フラグ
509 フラッシュメモリ
510 ブロック単位のメモリデータ領域
511 メモリデータ領域に対応する演算フラグ領域
512 読出データ
513 読出フラグ
514 読出データ演算ブロック
501 CPU
502 Write data 503 Access address 504 Data comparison and determination block 506 Write data operation block 507 Write data 508 Write flag 509 Flash memory 510 Memory data area 511 in block units Operation flag area 512 corresponding to the memory data area Read data 513 Read flag 514 Read data operation block

Claims (9)

それぞれ書込状態と消去状態とで異なる1ビットデータを記憶する複数のメモリセルを有するメモリセルアレイを備え、前記メモリセルアレイを複数ビットのデータを記憶するブロックに分割して、前記ブロック単位で前記メモリセルにデータの書込みを行う不揮発性半導体メモリであって、
前記ブロックごとに新規データを記憶させる際、
前記ブロックに記憶されている既存データと前記新規データとを比較し、前記ブロックの既存データを構成する複数の前記メモリセルのうちいずれかのメモリセルを書込状態から消去状態に変更することなく前記新規データを書込むことが可能であるか否かを判定する新規データ判定処理と、
前記ブロックに記憶されている既存データと前記新規データに対し所定の演算処理を施して生成される加工データとを比較し、前記ブロックの既存データを構成する複数の前記メモリセルのうちいずれかのメモリセルを書込状態から消去状態に変更することなく前記加工データを書込むことが可能であるか否かを判定する加工データ判定処理と、
前記新規データ判定処理と前記加工データ判定処理の両方の判定結果が不可能であるときに前記ブロックの既存データを構成する全てのメモリセルを消去状態にするデータ消去処理と、
前記新規データ判定処理と前記加工データ判定処理のうち前記新規データ判定処理のみの判定結果が可能であるときは前記ブロックに前記新規データを書込み、前記加工データ判定処理のみの判定結果が可能であるときは前記ブロックに前記加工データを書込み、前記新規データ判定処理と前記加工データ判定処理の両方の判定結果が可能であるとき、または前記消去処理後に、前記ブロックに前記新規データまたは前記加工データを書込むデータ書込処理とを行うことを特徴とする不揮発性半導体メモリ。
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記載の不揮発性半導体メモリ。   The data writing process performed when the determination results of both the new data determination process and the processed data determination process are possible is that the block in which the processed data is written out of the new data and the processed data is the block. 2. The nonvolatile memory according to claim 1, wherein the processed data is written when the number of memory cells to be changed from the erased state to the written state is reduced, and the new data is written otherwise. Semiconductor memory. 前記消去処理後に行う前記データ書込処理は、前記新規データと前記加工データのうち前記加工データを書込んだ方が前記ブロック内の書込状態のメモリセルの数が少なくなる場合には前記加工データを書込み、これ以外の場合には前記新規データを書込むようにする請求項1または2記載の不揮発性半導体メモリ。   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. 3. The nonvolatile semiconductor memory according to claim 1, wherein data is written and the new data is written in other cases. 前記加工データが書込まれた前記ブロックのデータを読み出す際、前記加工データを生成した際に施された演算処理とは逆の演算処理を施して読み出すようにした請求項1、2または3記載の不揮発性半導体メモリ。   4. The data of the block in which the processed data is written is read out by performing a calculation process opposite to the calculation process performed when the processed data is generated. Non-volatile semiconductor memory. 前記加工データを生成する際に施す演算処理を示す演算処理フラグを前記メモリセルアレイ内に設け、前記演算処理は前記新規データの各ビットデータを反転させる処理であり、
前記データ書込処理において、前記新規データを書込む時には前記演算処理フラグをリセットし、前記加工データを書込む時には前記演算処理フラグをセットするようにし、
前記ブロックのデータを読み出す際、前記演算処理フラグがリセットされていればデータをそのまま読み出し、前記演算処理フラグがセットされていればデータを反転して読み出すようにした請求項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.
前記演算処理フラグを複数ビットのメモリセルで構成し、前記演算処理フラグを構成する前記メモリセルのうちの書込状態であるメモリセルの個数または消去状態であるメモリセルの個数が奇数であるか偶数であるかによって前記演算処理フラグがセットされているかリセットされているかを判断するようにした請求項5または6記載の不揮発性半導体メモリ。   Whether 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 constituting the arithmetic processing flag is an odd number 7. The non-volatile semiconductor memory according to claim 5, wherein it is determined whether the arithmetic processing flag is set or reset depending on whether it is an even number. 前記加工データを生成する際に施す演算処理を示す演算処理フラグを前記メモリセルアレイ内に設け、前記演算処理は前記新規データを所定方向にNビットシフトさせる(Nは1以上の整数)処理であり、
前記データ書込処理において、前記新規データを書込む時には前記演算処理フラグをリセットし、前記加工データを書込む時には前記演算処理フラグをセットするようにし、
前記ブロックのデータを読み出す際、前記演算処理フラグがリセットされていればデータをそのまま読み出し、前記演算処理フラグがセットされていればデータを前記所定方向とは逆方向に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.
前記演算処理フラグを複数ビットで構成した請求項8記載の不揮発性半導体メモリ。   9. The nonvolatile semiconductor memory according to claim 8, wherein the arithmetic processing flag is composed of a plurality of bits.
JP2004025601A 2004-02-02 2004-02-02 Nonvolatile semiconductor memory Pending JP2005216455A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (12)

* Cited by examiner, † Cited by third party
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