PAGE LATCH
BACKGROUND Field of the Invention
The present invention relates to digital memories, and more particularly page latches for digital memories.
Background of the Invention
Byte prograrnrning for EEPROM (Electrically Erasable-Programmable Read-Only Memory) devices is longer than byte programming for EPROM (Erasable-Programmable
Read-Only Memory) or Flash EPROM. In particular, byte programming requires about 5 ms for EEPROM as opposed to about lO s for EPROM or Flash EPROM. The reason is that EEPROM devices typically use Fowler-Nordheim Tunneling mechanism to inject electrons or retrieve electrons to or from the floating gate, while EPROM or Flash EPROM devices typically use the CHE (channel hot electron) mechanism to inject electrons in the floating gate. The CHE mechanism is quite inefficient and typically requires anywhere from 100 μA to 1 mA of programming current for each cell. This is why only one byte at a time is usually programmed in EPROM 's or FLASH EPROM 's devices. On the other hand, the FN (Fowler- Nordheim) tunneling mechanism barely consumes any current, being typically in the nanoamphere range. Because of this, many cells, illustratively a few thousand, can be programmed at the same time in parallel.
Because large number of cells can be programmed in parallel, page latches have been widely used in EEPROM devices to speed up their programming time. An early EEPROM device containing page latches is the type 28C64, which is a 64K EEPROM available from various manufacturers including Catalyst and Xicor. Each page latch is connected to a bitline; typically for a given EEPROM device, there are as many page latches as there are bitlines. For example, a 64K EEPROM (type 28C64) has 32 bytes of page latches, a 256K EEPROM
(type 28C256) has 64 bytes of page latches, and a 1Mb EEPROM (type 28C010) has 128 bytes of page latches. A serial 8Mbit Flash EEPROM type 26F080 available from Nexcom Technology, Inc. of Sunnyvale, California has 536 bytes of page latches.
Page latches typically operate in the following way. The user provides to the memory the column address as well as the data byte followed by WE and CE to load the page latches. After all of the page latches are loaded, the memory device goes into a self-timed programming cycle at the end of which the data in the page latches is transferred to the selected row decoded by the X-Address decoder. The device programming is sped up by a considerable factor. For example, if all 32 bytes are loaded in the page latches, the programming time per byte is cut from an average of 5 ms to 5 ms/32 or 156μs. For an 8 Mbit device having 2048 sectors of 536 bytes each, the average programming time is 5 ms/536 bytes or about 9μs.
A page latch has some features in common with an SRAM cell. For example, both page latches and SRAM cells typically include two inverters connected back-to-back.
However, page latches and SRAM cells have many differences as well. For example, SRAM cells are differential devices, while page latches are single ended. As a differential device, an SRAM cell is able to interact with high capacitance differential bit lines without affecting the value stored therein. However, as a single ended device, a page latch is not able to interact with a high capacitance line without potentially changing the value stored therein While a page latch can be used as temporary storage before transferring data to a selected row of memory, a page latch is not usable as a data buffer.
One-transistor Flash EEPROM devices containing page latches have a further weakness, relative to regular EEPROM devices. Regular EEPROM devices, which contain two transistor memory cells, use a byte-select transistor for every byte, so that every byte is uniquely accessible. Eight page latches are associated with every byte, and an additional page latch is associated with the byte select. If only one byte needs to be modified, the modification can be easily achieved because only that byte will go through the Erase & Write cycle. However, Flash EEPROM devices using one-transistor memory cells have no byte-select transistors. If only one byte needs to be modified, the entire sector is erased (high threshold
voltage Vt) and is subsequently entirely written. Typically, if a "Read-Modify-Write" operation is desired, the entire sector is read and stored in external RAM, the selected byte is modified, and the entire sector is loaded back into the page latches before the self timed Erase- Write Operation is initiated. Unfortunately, this process is time-consuming.
Memory devices containing page latches have a further weakness, which is problematical in some real time applications requiring continuous writes to memory. During programming of a sector in which data is transferred from the page latches to the selected sector, the page latches cannot be accessed until the sector programming is complete. Typically, a self-timed programming cycle takes about 5 ms. In a real time application generating sectors of data more frequently than once every 5 ms, an external memory device must be used to temporarily store the stream of real time data until programming of the present sector is complete.
SUMMARY OF THE INVENTION
In one embodiment, the invention is a memory comprising a plurality of page latches, each of the page latches being loadable and readable through a data node coupled thereto; and a memory array having a plurality of memory cells coupled in groups to respective column lines, the column lines being respectively coupled to the page latches.
In another embodiment, the invention is a method of operating a memory comprising selecting all cells associated with a word line of the memory, and loading data from the selected cells into all page latches of the memory.
BRIEF DESCRIPTION OF THE FIGURES
Figure 1 is a block schematic diagram of a computer system; Figure 2 is a schematic diagram of a page latch circuit; Figure 3 is a timing diagram for the page latch of Figure 2; and
Figure 4 is a schematic diagram of a page latch circuit.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Figure 1 shows an illustrative computer system 100 which includes a computing device such as a microcontroller 110 (other computing devices such as microprocessors, controllers and processors are suitable as well) and a memory device 120. The memory device 120 is illustratively a serial device connected to the serial port of the microcontroller 110, although a parallel memory device connected to the microcontroller 110 by a bus may be used if desired. The memory device 120 includes a page latch load circuit 122, which typically includes a shift register, which provides serial I/O to the microcontroller 110 and transfers I/O a byte at a time in a predetermined order to/from the page latches 124. Page latches 124 is connected over many bit lines to a memory cell array 126. Page latches 124 not only support programming and reading of sectors in the memory cell array 126, but also provide one or more of the following functions: directly accessible to the microcontroller 110 as an SRAM scratch pad, directly loadable from the memory cell array 126 to facilitate single byte "read-modify-write" operations, and loadable during programming operations to support real time applications.
These various embodiments of the page latches 124 are described herein in further detail. Various circuits and methods for the page latch load circuit 122, the memory cell array 126, and other elements of the memory device 120 (emitted for clarity) are described in United States Patent No. 5,414,658, which is entitled "Electrically Erasable Programmable Read-Only Memory Array" and issued May 9, 1995 to Challa et al. ; United States Patent No. 5,410,680, which is entitled "Solid State Memory Device Having Serial Input/Output" and issued April 25, 1995 to Challa et al.; United States Patent No. 5,291,584; and United States Patent No. 5,222,040, which is entitled "Single Transistor EEPROM Memory Cell" and issued June 22, 1993 to Challa. A variety of other circuits and methods for the page latch load circuit 122, the memory cell array 126, and other memory device elements may be suitable as well.
Figure 2 shows a page latch 200 that is writable as well as readable, and is in effect an SRAM and is capable of supporting functions normally supported by SRAMS. One application is as an SRAM scratch pad for systems that need extra SRAM. For example, this is particularly useful for microcontroller systems in which the use of external SRAM is not desired. For example, the type 8051 microcontroller usually has either 128 bytes or 256 bytes
of internal SRAM but this amount of SRAM may not be enough. Hence, page latches such as 200 made internal to an EEPROM provide useful additional functionality to the overall system.
In the page latch 200 of Figure 2, transistor 202 is a column select transistor and transistor 204 is a load transistor. Inverters 208 and 214 are connected back-to-back to implement a volatile memory element 206. Each inverter includes two transistors connected in a conventional manner; for example, inverter 208 includes a /Hype transistor 210 and an n- type transistor 212. The N-wells of the inverters 208 and 214 are tied to VCMSTR2. Transistor 218 is switched by signal WRHV and is used to provide a suitable voltage VC3 for writing to the array or reading from the page latch 200. Transistor 220 provides isolation so that the content of the volatile memory element 206 is not disturbed when read. Transistor 224 is a sense transistor.
The page latch 200 operates as follows. To load the page latch 200 with a "1 " or a "0", COLSEL goes to Vcc and LOAD goes to Vcc. If a "0" state is loaded then node 216 is "1 " and if a "1 " state is loaded then node 216 is "0. " During erase, the word line (not shown) of the addressed sector goes high, and after erase the addressed memory cell connected to the bit line 222 is in a high Vτ state ("1" state). To write to the addressed sector of the memory array involves transferring the contents of all page latches into the selected sector. Illustratively, the various signals applied to the page latch 200 during a write operation are as follows: WRHV is a "1 " state, VC3 is 4V, and the word line of the selected sector (not shown) is minus 11V. If node 216 is at a "1" state, tunneling occurs in the memory cell associated with the page latch 200 and having minus 11V on its gate and 4V on its drain, so that the memory cell goes into a low Vτ (state "0"). If node 216 is at a "0" state, then the bit line 222 floats to "0" so that tunneling does not occur in the memory cell associated with the page latch 200 and the memory cell stays at the high Vτ achieved by the ERASE operation.
The memory cell associated with the page latch 200 is read as follows. Illustratively, the various signals applied to the page latch 200 during a read operation are as follows: WRHV is a "0" state (illustratively zero volts), LOAD is zero volts, SENSE is Vcc, COLSEL is Vcc, the bit line 222 is 1.5 volts, and the word line of the selected sector (not shown) is
about 3V. If the memory cell is in a low Vτ state, then the sense amplifier associated with the page latch 200 and connected to node DL (data line) will detect a "0" and current flows from the sense amplifier into the memory cell. Otherwise, the memory cell is off and the Sense Amp detects a "1 " state.
The page latch 200 is read as follows. Illustratively, the various signals applied to the page latch 200 during a read operation are the same as for reading a memory cell associated with the page latch 200, except that the word lines of the memory array are turned off (zero volts or minus IV, for example), WRHV is Vcc, and VC3 is zero volts. If node 216 is in a "1" state, then the sense amplifier indicates a "0" state by detecting current flowing from the sense amplifier into VC3. If node 216 is in a "0" state, then the sense amplifier indicates a "1" state by detecting no current flowing.
The page latch of Figure 2 also supports a direct transfer of the contents of an addressed sector of a memory array into the page latches of the memory array, which enables a rapid read-modify-write of one byte of the memory array. Illustratively, the sequence and values of the various signals applied to the page latch 200 during a direct-from-memory load operation are illustrated in Figure 3. During period TBUFSTO, both inverters 208 and 214 are powered down by bringing VCMSTR1 and VCMSTR2 from Vcc to zero volts. The row deselect signal DSELROWN (active low) is also raised high in period TBUFSTO. During period TBUFST1, the bitline 222 is biased to about two volts by raising VCMSTR2 to about 2 volts to power up the weak inverter 214. At this time, both LOAD and SENSE are raised high so that a current path is established through transistors 204 and 224 to the bit line 222. If the memory cell associated with the page latch 200 is on, then the bit line 222 is pulled low. Otherwise, the bit line remains at about 2 volts. During period TBUFST2, VCMSTR1 is raised to about 2 volts to power up the stronger inverter 208 and latch the logical value on the bit line 222 into the volatile cell 206. During period TBUFST3, both LOAD and SENSE are lowered to zero volts to decouple the bit line 222 from the volatile cell 206. During period TBUFST4, both VCMSTR1 and VCMSTR2 are raised to Vcc to strongly latch the stored value.
The sequence illustrated in Figure 3 has the further advantage of avoiding power glitches from simultaneously switching a large number of page latches, which could improperly change the state stored in the volatile cell 206. This is achieved by raising VCMSTRl and VCMSTR2 initially to about 2 volts in the sequence shown to latch the proper value into the volatile cell 206, then by raising VCMSTRl and VCMSTR2 to Vcc to strongly latch the stored value.
Figure 4 shows a page latch 400 that is writable as well as readable, and in addition includes a slave stage so that data can be transferred to the page latch 400 or read from the page latch 400 even while prior data is being written into the memory array. The page latch 400 includes the elements of the page latch 200 of Figure 2, but in addition includes elements to implement a slave stage 410 and the ability to read or write from a master stage 402. Transistor 404 controls the transfer of the value stored in the master stage 402 to the slave stage 410. The slave stage 410 includes inverters 412 and 414, which are connected back-to- back to implement a volatile memory element. Transistor 422 is switched by signal RMSTR and is used to provide a suitable voltage, in this case reference or zero volts, for reading from the master stage 402. Transistor 420 provides isolation so that the content of the volatile first stage 402 is not disturbed when read.
In the page latch 400 of Figure 4, the master stage 402 is loaded from the external interface. Just before programming, the contents of the master stage 402 is transfered into the slave stage 410. In the memory, the transfer of all the page latches to all of the slave stages occurs in parallel. The slave stage controls bit line biasing during the prograrnming mode.
The page latch 400 operates as follows. Preferably, the master stages of the page latches of the memory are loaded one byte at a time, from the dataline 226. To load the master stage 402 with a "1 " or a "0", illustratively COLSEL is high (Vcc), SENSE is low (zero volts), read master signal RMSTR is low, load master signal LMSTR is high, load slave signal LSLV is low, and VCMSTR1 and VCMSTR2 are Vcc. If a "0" state is loaded then node 216 is "1 " and if " 1 " state is loaded then node 216 is "0. "
Preferably, the master stages of the page latches of the memory are read one byte at a time using the eight sense amplifiers. To read the master stage 402, illustratively COLSEL is high, RMSTR is high, LMSTR is low, SENSE is low, LSLV is low, and VCMSTR1 and VCMSTR2 are Vcc. If "0" were loaded from the data line 226, node 216 would be a "1" and the sense amplifier connected to the data line 226 would sense "0".
Preferably, the transfer of data from the master stages to the slave stages of the page latches of the memory is done for all of the bytes in the sector at one time, illustratively 536 bytes at a time for an 8 Mbit device. To avoid big i^c glitches that would disturb the master and slave stages of the page latches, power down techniques are used in the master-to-slave transfer operation. To perform a master-to-slave transfer, illustratively the following sequence is used. First, power down the inverters 412 and 414 of the slave stage 410 by lowering VCSLV from Vcc to zero volts. Next, slowly ramp up LSLV and VCSLV toward Vcc. Then, when Vcc is reached, change LSLV to zero volts to isolate the slave stage 410 from the master stage 402 while maintaining VCSLV at Vcc.
Preferably, the slave stages of the page latches of the memory are read one byte at a time using the eight sense amplifiers. To read the slave stage 410, illustratively COLSEL is high, RMSTR is low, LMSTR is low, SENSE is high, LSLV is low, WRHV is high, VC3 is zero volts, and VCSLVι and VCSLV2 are Vcc. If "0" were loaded from the data line 226, node 416 would be "1 " and the sense amplifier connected to the data line 226 would sense "0" .
The page latch 400 of Figure 4 also supports a direct transfer of the contents of an addressed sector of a memory array into the master stages of the page latches of the memory array, which enables a rapid read-modify-write of one byte of the memory array.
The description of the invention set forth herein is illustrative, and does not limit the scope of the invention as set forth in the following claims. Variations and modifications of the embodiments disclosed herein are possible. For example, the particular voltage values set forth herein are illustrative, but do establish relationships that enable or disable Fowler- Nordheim tunneling and reading of the memory cells. Moreover, the sizes of the various
transistors shown in the figures may be any values consistent with the operation of the page latches described herein. Moreover, typically in Flash EEPROM, sector is the same as word line. These and other variations and modifications of the embodiments disclosed herein may be made without departing from the scope and spirit of the invention.