The present invention relates generally to performing read and write operations on non-volatile memory (NVM) arrays, such as electrically erasable, programmable read only memory (EEPROM) arrays, and particularly to methods for performing such read and write operations with address scrambling.
Non-volatile memory (NVM) arrays, such as but not limited to, electrically erasable, programmable read only memory (EEPROM) arrays, are utilized for storage of data. Typically, the data stored therein may be changed, either by programming or erasing multiple times over the lifetime of the array. In NVM arrays, each cell may be individually programmed. In EEPROM arrays, each cell may be individually erased, as opposed to erasable, programmable read only memory (EPROM or FLASH arrays, wherein groups of cells, instead of individual cells, may be erased.
Reference is now made to
Each memory cell may be connected to one word line and at least one bit line. Depending on the array architecture, another terminal of the memory cell may be connected to another bit line as shown in
Programming a bit of a memory cell increases the threshold voltage Vt thereof. Programming typically comprises application of a positive voltage to the word line and drain line connected to the bit to be programmed, with the source grounded. Reading the bit typically comprises application of a much lower positive voltage to the word line than that used for writing, and a positive voltage to the drain, with the source grounded. Erasing the cell decreases the threshold voltage Vt. Erasing typically comprises application of a negative voltage to the word line and a positive voltage to the drain line, with the source floating.
Program-word-line voltages are generally applied only to the word line to which the bit to be programmed is connected. All other word lines in the array are typically grounded in order to avoid various problems, such as but not limited to, unwanted programming of bits on other word lines and unwanted disturbs to other bits in the array. Accordingly, a single write operation may be used to program a byte of data by programming the data into bits that are connected to a common word line.
A user wishing to write data to a NVM array may typically write the data to a cache memory, such as but not limited to, a static random access memory (SRAM). The cache memory routes or “addresses” the data to the appropriate bits in the NVM array. As mentioned above, a single write operation may program a byte of data to bits connected to a common word line. Therefore, in an efficient write operation, a byte address would comprise both the left-side bits 18 and the right-side bits 19 of the cells on a common word line, as indicated by reference numeral 20 in
Unlike a write (i.e., program) operation, in a read operation it may be possible to use more than one word line at a time. This may be possible due to the lower word line voltages used in a read operation, which may be sufficiently low so as not to cause unwanted disturbs or programming of other bits in the array. There is an incentive to use more than one word line at a time, because it would speed up the read operation. In order to read bits on multiple word lines at the same, the bits should be connected to common bit lines. Accordingly, the left-side bits 18 of a given cell would belong to a different byte address than the right-side bits 19 of the same cell, as indicated by reference numeral 22 in
In light of the foregoing explanation, in an effort to speed up the reading operation, a conflict may exist in the byte addresses of an NVM array. In the write operation, the byte address may comprise both the left-side bits 18 and the right-side bits 19 of the cells on a common word line. However, in the read operation, the byte address may comprise only the left-side bits 18 over multiple word lines (or the right-side bits 19 over multiple word lines). This poses a problem in addressing the bytes for both write and read operations.
The present invention seeks to provide solutions to the abovementioned conflict between write and read operations in an NVM array. The invention may be carried out with any kind of NVM cell and array, such as but not limited to, nitride read-only memory (NROM) cells and arrays. The invention may be implemented in a variety of applications, such as but not limited to, mass storage or code flash applications, for example.
In accordance with a preferred embodiment of the present invention, data may be stored, such as in terms of bytes of data, in a cache memory, such as but not limited to, a static random access memory (SRAM). The bytes of data may be divided into chunks of data. Each byte may have a particular word line address for writing to the array. Writing from the cache memory to the array may comprise scrambling the word line addresses of the chunks of data such that one chunk is written to a first word line address and another chunk is written to a different word line address. In this manner, it may be possible to store the bits associated with an entire byte along a common bit line. Reading from the array may then comprise reading the bits of the byte along common bit lines, thereby descrambling the chunks back to their original bytes.
There is thus provided in accordance with an embodiment of the invention a method for operating a memory cell array, the method comprising assigning word lines of a memory cell array as addresses for writing sets of data thereto from a cache memory, and scrambling addresses of the sets of data by writing a first chunk of the particular set of data from the cache memory to a first word line of the array, and writing a second chunk of the particular set of data from the cache memory to a second word line of the array, the first chunk comprising a first subset of the particular set of data and the second chunk comprising a second subset of the particular set of data.
In accordance with an embodiment of the invention the method further comprises reading the particular set of data from the array by serially reading the first chunk from the first word line and reading the second chunk from the second word line. The data may comprise at least one byte that comprises at least two chunks of at least four bits.
Further in accordance with an embodiment of the invention the method comprises assigning the addresses to bits A1, . . . An in the cache memory, wherein An is the most significant bit (MSB), and assigning A0, the least significant bit (LSB), to a bit of information, called “chunk select”, adapted to determine which chunk of the bits is to be read or written. The sets of data may be written to the cache memory while not writing to the chunk select. The first and second word lines may comprise adjacent or non-adjacent word lines.
Still further in accordance with an embodiment of the invention the method comprises reading the particular set of data from the array by switching the chunk select from the LSB to bit A1 and assigning the LSB to the first word line, reading the first chunk from the first word line, switching the chunk select from bit A1 to the LSB and assigning bit A1 to the second word line, and reading the second chunk from the second word line.
In accordance with an embodiment of the invention the method further comprises internally writing from the memory cell array back to the cache memory by descrambling the scrambling of the addresses of the sets of data.
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
Reference is now made to
One sector 26 of the array may be defined by four columns of dual bit cells, a total of 8 bits or 1 byte for each word line 14 of the sector 26 (although the invention is not limited to these values). The sector 26 may comprise any number of word lines 14. In the illustrated embodiment, the sector 26 comprises 128 word lines (WL 0, WL 1, WL 2, . . . WL 127), which amounts to one page (=128 bytes). However, it is emphasized that the invention is not limited to these values.
In accordance with an embodiment of the present invention, one or more sense amplifiers 30 may be used to read bits of the array. For example, in the illustrated embodiment, there are shown four sense amplifiers SA0, SA1, SA2 and SA3, wherein each sense amplifier 30 may be used to read two bits of a byte. Accordingly, since each byte of data comprises 8 bits, reading a byte may require two read operations performed serially on groups of 4 bits, these groups being herein referred to as chunks. It is appreciated, however, that the invention is not limited to bytes nor to chunks of 4 bits, and other amounts of bits may be used to carry out the invention.
Reference is now made to
SRAM 32 may comprise bits A0, A1, . . . An, wherein A0 is the least significant bit (LSB) and An is the most significant bit (MSB). The word line addresses (“w1 addr”) may comprise n bits A1, . . . An, whereas the LSB (A0) may be dedicated to storing a bit of information referred to as “chunk select address bit” or simply “chunk select”, which may be used to determine which chunk of bits is to be read or written at each step of the process, as is explained further hereinbelow. During writing of data to SRAM 32, as indicated by reference arrow 34, the chunk select address bit (LSB) may be ignored.
As mentioned before, each byte may comprise two chunks of 4 bits. For example, byte 0 may comprise “chunk A byte 0” and “chunk B byte 0” and byte 1 may comprise “chunk A byte 1” and “chunk B byte 1”.
Data may then be written from SRAM 32 to the array by scrambling the addresses of the chunks of bits of two different bytes, such as two neighboring bytes. For example, as indicated by arrows 40, chunk A byte 0 and chunk A byte 1 may be written to first word line WL A0. As indicated by arrows 42, chunk B byte 0 and chunk B byte 1 may be written to second word line WL A1 in the array. In this example, the chunks have been written to adjacent word lines, but the invention is not limited to writing to adjacent word lines, and the chunks may be written to non-adjacent word lines. It is noted that while the bytes are read from SRAM 32, only the word line addresses may be active.
The chunk select address may control the address scrambling. For example, the chunk select address may be activated to generate “write data” bytes, wherein:
Write data byte 0={chunk A byte 0, chunk A byte 1}
Write data byte 1={chunk B byte 0, chunk B byte 1}
The rest of the bytes may be accordingly written from SRAM 32 to the array.
Internally writing from the array to SRAM 32 may be performed by descrambling the abovementioned address scrambling.
Read operations may be performed in a chunk level granularity (e.g., 4 bits per chunk). For two read operations that follow one after the other, the LSB address may toggle between the chunk select and the least significant bit of the write address, as is now explained.
During the first user read cycle, chunk A of byte 0 may be read by switching the “chunk select” and “WL A0” addresses, as indicated by arrow 47, such that “WL A0” is the LSB address and the “chunk select” is the A1 address, as indicated by arrow 44. After reading the first 4 bits (i.e., chunk A) of byte 0, the next 4 bits (i.e., chunk B) of byte 0 may be read by incrementing the word line to the WL A1 address and switching the chunk select to the LSB address, as indicated by arrow 46. The alternate switching between the chunk select and the incremental word line addresses may continue until all the bytes are read from the array.
It is noted that accessing the word line address in a chip is generally significantly slower than accessing bit line addresses. Accordingly, inserting the word line address before the bit select address may provide additional clock time for switching between word lines, thereby improving the speed of the read access.
It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described herein above. Rather the scope of the invention is defined by the claims that follow:
Number | Name | Date | Kind |
---|---|---|---|
3895360 | Cricchi et al. | Jul 1975 | A |
4388705 | Sheppard | Jun 1983 | A |
4389705 | Sheppard | Jun 1983 | A |
4527257 | Cricchi | Jul 1985 | A |
4667217 | Janning | May 1987 | A |
4725984 | Ip et al. | Feb 1988 | A |
4761764 | Watanabe | Aug 1988 | A |
5027321 | Park | Jun 1991 | A |
5042009 | Kazerounian et al. | Aug 1991 | A |
5142496 | Van Buskirk | Aug 1992 | A |
5241497 | Komarek | Aug 1993 | A |
5276646 | Kim et al. | Jan 1994 | A |
5289412 | Frary et al. | Feb 1994 | A |
5293563 | Ohta | Mar 1994 | A |
5295108 | Higa | Mar 1994 | A |
5305262 | Yoneda | Apr 1994 | A |
5335198 | Van Buskirk et al. | Aug 1994 | A |
5345425 | Shikatani | Sep 1994 | A |
5349221 | Shimoji | Sep 1994 | A |
5359554 | Odake et al. | Oct 1994 | A |
5361343 | Kosomocky et al. | Nov 1994 | A |
5381374 | Shiraishi et al. | Jan 1995 | A |
5418743 | Tomioka et al. | May 1995 | A |
5422844 | Wolstenholme et al. | Jun 1995 | A |
5424978 | Wada et al. | Jun 1995 | A |
5434825 | Harari | Jul 1995 | A |
5440505 | Fazio et al. | Aug 1995 | A |
5450341 | Sawada et al. | Sep 1995 | A |
5450354 | Sawada et al. | Sep 1995 | A |
5477499 | Van Buskirk et al. | Dec 1995 | A |
5508968 | Collins et al. | Apr 1996 | A |
5521870 | Ishikawa | May 1996 | A |
5523972 | Rashid et al. | Jun 1996 | A |
5530803 | Chang et al. | Jun 1996 | A |
5537358 | Fong | Jul 1996 | A |
5544116 | Chao et al. | Aug 1996 | A |
5563823 | Yiu et al. | Oct 1996 | A |
5568085 | Eitan et al. | Oct 1996 | A |
5583808 | Brahmbhatt | Dec 1996 | A |
5623438 | Guritz et al. | Apr 1997 | A |
5627790 | Golla et al. | May 1997 | A |
5644531 | Kuo et al. | Jul 1997 | A |
5657332 | Auclair et al. | Aug 1997 | A |
5677869 | Fazio et al. | Oct 1997 | A |
5689459 | Chang et al. | Nov 1997 | A |
5694356 | Wong et al. | Dec 1997 | A |
5712815 | Bill et al. | Jan 1998 | A |
5717632 | Richart et al. | Feb 1998 | A |
5748534 | Dunlap et al. | May 1998 | A |
5751637 | Chen et al. | May 1998 | A |
5754475 | Bill et al. | May 1998 | A |
5768193 | Lee et al. | Jun 1998 | A |
5771197 | Kim | Jun 1998 | A |
5784314 | Sali et al. | Jul 1998 | A |
5787036 | Okazawa | Jul 1998 | A |
5805500 | Campardo et al. | Sep 1998 | A |
5812449 | Song | Sep 1998 | A |
5812456 | Hull et al. | Sep 1998 | A |
5812457 | Arase | Sep 1998 | A |
5828601 | Hollmer et al. | Oct 1998 | A |
5841700 | Chang | Nov 1998 | A |
5841715 | Farmwald et al. | Nov 1998 | A |
5847441 | Cutter et al. | Dec 1998 | A |
5870334 | Hemink et al. | Feb 1999 | A |
5870335 | Khan et al. | Feb 1999 | A |
5886927 | Takeuchi | Mar 1999 | A |
5892710 | Fazio et al. | Apr 1999 | A |
5926409 | Engh et al. | Jul 1999 | A |
5936888 | Sugawara | Aug 1999 | A |
5940332 | Artieri | Aug 1999 | A |
5946258 | Evertt et al. | Aug 1999 | A |
5949714 | Hemink et al. | Sep 1999 | A |
5949728 | Liu et al. | Sep 1999 | A |
5969993 | Takeshima | Oct 1999 | A |
5982666 | Campardo | Nov 1999 | A |
5986940 | Atsumi et al. | Nov 1999 | A |
5991202 | Derhacobian et al. | Nov 1999 | A |
5999444 | Fujiwara et al. | Dec 1999 | A |
6011725 | Eitan | Jan 2000 | A |
6034896 | Ranaweera et al. | Mar 2000 | A |
6044022 | Nachumovsky | Mar 2000 | A |
6064591 | Takeuchi et al. | May 2000 | A |
6075724 | Li et al. | Jun 2000 | A |
6084794 | Lu et al. | Jul 2000 | A |
6091640 | Kawahara et al. | Jul 2000 | A |
6097639 | Choi et al. | Aug 2000 | A |
6108240 | Lavi et al. | Aug 2000 | A |
6118692 | Bamks | Sep 2000 | A |
6128226 | Eitan et al. | Oct 2000 | A |
6134156 | Eitan | Oct 2000 | A |
6147904 | Liron | Nov 2000 | A |
6157570 | Nachumovsky | Dec 2000 | A |
6169691 | Pasotti et al. | Jan 2001 | B1 |
6181605 | Hollmer et al. | Jan 2001 | B1 |
6185143 | Perner et al. | Feb 2001 | B1 |
6192445 | Rezvani | Feb 2001 | B1 |
6201737 | Hollmer et al. | Mar 2001 | B1 |
6205056 | Pan et al. | Mar 2001 | B1 |
6215148 | Eitan | Apr 2001 | B1 |
6219746 | Vogley | Apr 2001 | B1 |
6222762 | Guterman et al. | Apr 2001 | B1 |
6233180 | Eitan et al. | May 2001 | B1 |
6240032 | Fukumoto | May 2001 | B1 |
6240040 | Akaogi et al. | May 2001 | B1 |
6252799 | Liu et al. | Jun 2001 | B1 |
6282133 | Nakagawa et al. | Aug 2001 | B1 |
6285589 | Kajitani | Sep 2001 | B1 |
6292394 | Cohen et al. | Sep 2001 | B1 |
6304485 | Harari et al. | Oct 2001 | B1 |
6307807 | Sakui et al. | Oct 2001 | B1 |
6320786 | Chang et al. | Nov 2001 | B1 |
6331950 | Kuo et al. | Dec 2001 | B1 |
6351415 | Kushnarenko | Feb 2002 | B1 |
6353554 | Banks | Mar 2002 | B1 |
6396741 | Bloom et al. | May 2002 | B1 |
6438031 | Fastow | Aug 2002 | B1 |
6442074 | Hamilton et al. | Aug 2002 | B1 |
6469929 | Kushnarenko et al. | Oct 2002 | B1 |
6469935 | Hayashi | Oct 2002 | B2 |
6477085 | Kuo | Nov 2002 | B1 |
6490204 | Bloom et al. | Dec 2002 | B2 |
6496414 | Kasa et al. | Dec 2002 | B2 |
6510082 | Le et al. | Jan 2003 | B1 |
6519182 | Derhacobian et al. | Feb 2003 | B1 |
6522585 | Pasternak | Feb 2003 | B2 |
6525969 | Kurihara et al. | Feb 2003 | B1 |
6529412 | Chen et al. | Mar 2003 | B1 |
6535434 | Maayan et al. | Mar 2003 | B2 |
6552387 | Eitan | Apr 2003 | B1 |
6567303 | Hamilton et al. | May 2003 | B1 |
6567312 | Torii et al. | May 2003 | B1 |
6574139 | Kurihara | Jun 2003 | B2 |
6584017 | Maayan et al. | Jun 2003 | B2 |
6590811 | Hamilton et al. | Jul 2003 | B1 |
6594181 | Yamada | Jul 2003 | B1 |
6618290 | Wang et al. | Sep 2003 | B1 |
6636440 | Maayan et al. | Oct 2003 | B2 |
6639837 | Takano et al. | Oct 2003 | B2 |
6639844 | Liu et al. | Oct 2003 | B1 |
6639849 | Takahashi et al. | Oct 2003 | B2 |
6643177 | Le et al. | Nov 2003 | B1 |
6643178 | Kurihara | Nov 2003 | B2 |
6650568 | Iijima | Nov 2003 | B2 |
6665769 | Cohen et al. | Dec 2003 | B2 |
6690602 | Le et al. | Feb 2004 | B1 |
6724663 | Roohparvar et al. | Apr 2004 | B2 |
6775759 | Janzen | Aug 2004 | B2 |
6836441 | Park | Dec 2004 | B2 |
20020004878 | Norman | Jan 2002 | A1 |
20020034097 | Banks | Mar 2002 | A1 |
20020071313 | Takano et al. | Jun 2002 | A1 |
20020132436 | Eliyahu et al. | Sep 2002 | A1 |
20020191465 | Maayan et al. | Dec 2002 | A1 |
20030021155 | Yachareni et al. | Jan 2003 | A1 |
20030072192 | Bloom et al. | Apr 2003 | A1 |
20030117841 | Yamashita | Jun 2003 | A1 |
20030117861 | Maayan | Jun 2003 | A1 |
20030131186 | Buhr | Jul 2003 | A1 |
20030142544 | Maayan et al. | Jul 2003 | A1 |
20030156456 | Shappir et al. | Aug 2003 | A1 |
20030208663 | Van Buskirk et al. | Nov 2003 | A1 |
20030214844 | Iijima | Nov 2003 | A1 |
20040008541 | Maayan et al. | Jan 2004 | A1 |
20040012993 | Kurihara | Jan 2004 | A1 |
20040013000 | Torii | Jan 2004 | A1 |
Number | Date | Country |
---|---|---|
1 071 096 | Jan 2001 | EP |
WO 0184552 | Nov 2001 | EP |
1 164 597 | Dec 2001 | EP |
0 656 628 | Apr 2003 | EP |
WO 03063167 | Jul 2003 | EP |
WO 03088260 | Oct 2003 | EP |
07193151 | Jul 1995 | JP |
408106791 | Apr 1996 | JP |
408297988 | Nov 1996 | JP |
09162314 | Jun 1997 | JP |
08-258215 | Apr 1998 | JP |
10 334676 | Dec 1998 | JP |
02002216488 | Aug 2002 | JP |
WO 0046808 | Aug 2000 | WO |
WO 03036651 | May 2003 | WO |
WO03063168 | Jul 2003 | WO |
WO 03088259 | Oct 2003 | WO |
WO03088261 | Oct 2003 | WO |
Number | Date | Country | |
---|---|---|---|
20040153620 A1 | Aug 2004 | US |