Address scramble

Information

  • Patent Grant
  • 6967896
  • Patent Number
    6,967,896
  • Date Filed
    Thursday, January 30, 2003
    21 years ago
  • Date Issued
    Tuesday, November 22, 2005
    19 years ago
Abstract
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.
Description
FIELD OF THE INVENTION

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.


BACKGROUND OF THE INVENTION

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 FIG. 1, which illustrates a typical NVM array 10. The NVM array 10 may typically comprise rows and columns of memory cells 12 connected to word lines 14 (rows of the array) and bit lines 16 (columns). The memory cells 12 may store one or more bits (e.g., single bit cells or dual bit cells). The description follows for dual bit cells having a left-side bit 18 and a right-side bit 19 in the sense of FIG. 1.


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 FIG. 1, in which case one of the bit lines is called the drain line and the other is the source line. Other connections are also possible in other array architectures, such as connecting to a common source ground. Reading, programming (also referred to as writing) or erasing bits of cells requires application of certain voltages to the word line and bit lines.


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 FIG. 1.


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 FIG. 1.


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.


SUMMARY OF THE INVENTION

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.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:



FIG. 1 is a simplified illustration of a non-volatile memory (NVM) array;



FIG. 2 is a simplified illustration of an array architecture for a NVM array, in accordance with an embodiment of the present invention; and



FIG. 3 is a simplified illustration of write and read operations using address scrambling in the architecture of FIG. 2, in accordance with an embodiment of the present invention.





DETAILED DESCRIPTION OF THE PRESENT INVENTION

Reference is now made to FIG. 2, which illustrates an array architecture for a NVM array, in accordance with an embodiment of the present invention. As in FIG. 1, the NVM array may comprise dual bit memory cells 12 connected to word lines 14 and bit lines 16. Each dual bit cell 12 may comprise a left-side bit and a right-side bit. It is emphasized that the invention is not limited to this architecture.


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 FIG. 3, which illustrates write and read operations using address scrambling in the architecture of FIG. 2, in accordance with an embodiment of the present invention. A user may write data to a cache memory 32, such as but not limited to, a static random access memory (SRAM), herein referred to as SRAM 32. SRAM 32 addresses the data to the appropriate bits in the NVM array. The data is preferably written to the SRAM 32 in a byte granularity.


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:

Claims
  • 1. 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; andscrambling addresses of said sets of data by writing a first chunk of said particular set of data from said cache memory to a first word line of said array, and writing a second chunk of said particular set of data from said cache memory to a second word line of said array, said first chunk comprising a first subset of said particular set of data and said second chunk comprising a second subset of said particular set of data.
  • 2. The method according to claim 1, further comprising reading said particular set of data from said array by serially reading said first chunk from said first word line and reading said second chunk from said second word line.
  • 3. The method according to claim 1, wherein said data comprises at least one byte that comprises at least two chunks of at least four bits.
  • 4. The method according to claim 1, wherein assigning comprises assigning said addresses to bits A1, . . . An in said 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 said bits is to be read or written.
  • 5. The method according to claim 4, further comprising writing said sets of data to said cache memory while not writing to said chunk select.
  • 6. The method according to claim 1, wherein said first and second word lines comprise adjacent word lines.
  • 7. The method according to claim 1, wherein said first and second word lines comprise non-adjacent word lines.
  • 8. The method according to claim 5, further comprising reading said particular set of data from said array by switching said chunk select from the LSB to bit A1 and assigning the LSB to said first word line, reading said first chunk from said first word line, switching said chunk select from bit A1 to the LSB and assigning bit A1 to said second word line, and reading said second chunk from said second word line.
  • 9. The method according to claim 1, further comprising internally writing from said memory cell array back to said cache memory by descrambling said scrambling of the addresses of said sets of data.
US Referenced Citations (165)
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
Foreign Referenced Citations (18)
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
Related Publications (1)
Number Date Country
20040153620 A1 Aug 2004 US