US5034922A - Intelligent electrically erasable, programmable read-only memory with improved read latency - Google Patents

Intelligent electrically erasable, programmable read-only memory with improved read latency Download PDF

Info

Publication number
US5034922A
US5034922A US07/135,945 US13594587A US5034922A US 5034922 A US5034922 A US 5034922A US 13594587 A US13594587 A US 13594587A US 5034922 A US5034922 A US 5034922A
Authority
US
United States
Prior art keywords
write
address
read
data
control signal
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.)
Expired - Lifetime
Application number
US07/135,945
Inventor
Bradley G. Burgess
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.)
NXP USA Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Priority to US07/135,945 priority Critical patent/US5034922A/en
Assigned to MOTOROLA, INC., SCHAUMBURG reassignment MOTOROLA, INC., SCHAUMBURG ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: BURGESS, BRADLEY G.
Application granted granted Critical
Publication of US5034922A publication Critical patent/US5034922A/en
Assigned to FREESCALE SEMICONDUCTOR, INC. reassignment FREESCALE SEMICONDUCTOR, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MOTOROLA, INC.
Assigned to CITIBANK, N.A. AS COLLATERAL AGENT reassignment CITIBANK, N.A. AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: FREESCALE ACQUISITION CORPORATION, FREESCALE ACQUISITION HOLDINGS CORP., FREESCALE HOLDINGS (BERMUDA) III, LTD., FREESCALE SEMICONDUCTOR, INC.
Anticipated expiration legal-status Critical
Assigned to FREESCALE SEMICONDUCTOR, INC. reassignment FREESCALE SEMICONDUCTOR, INC. PATENT RELEASE Assignors: CITIBANK, N.A., AS COLLATERAL AGENT
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits

Definitions

  • the present invention relates, in general, to electrically erasable, programmable read-only memories (EEPROMs). More particularly, the invention relates to EEPROMs which include a controller for autonomously executing read and write operations.
  • EEPROMs electrically erasable, programmable read-only memories
  • Gee et al discloses an intelligent EEPROM. During both programming and erasing, the device disclosed by Gee et al iteratively applies pulses of programming voltage to the memory cell or cells being accessed and, between pulses, compares the state of the cells to the desired end state.
  • the microprocessor In a microprocessor-controlled system using EEPROMs according to Gee et al, and as further described hereinbelow, the microprocessor is free to continue the execution of other tasks after having instructed the intelligent EEPROM to write a data value to a particular location. However, if the microprocessor issues a read instruction to the EEPROM while the write cycle is being executed, the memory is unavailable. In other words, the read request must be held pending until the previously issued write request is completed. Since the time required to program an EEPROM cell is very long compared to the speed at which a typical microprocessor operates, such a system may have an unacceptably long worst case read latency; that is, the time required to complete a read operation after the request is first issued.
  • an EEPROM comprising an array of EEPROM cells, read control means for reading one of said cells in response to receipt of a read control signal and a read address and means for writing one of said cells in response to receipt of a write control signal, a write address and data and wherein logic for writing further comprises write control logic for iteratively applying a write pulse to said cell and reading said cell until the cell is in a desired state, the improvement comprising logic for halting said write control logic in response to receipt of said read control signal and read address, for activating said read control logic and for restarting said write control means after said read control logic has completed reading said cell.
  • FIG. 1 is a block diagram illustrating an EEPROM of a particular embodiment of the present invention
  • FIG. 2 is a flow chart illustrating a portion of a method of operating the apparatus of FIG. 1 according to a particular embodiment of the present invention
  • FIG. 3 is a flow chart illustrating a read cycle portion of the flow chart of FIG. 2;
  • FIG. 4 is a flow chart illustrating a write executive portion of the flow chart of FIG. 2;
  • FIG. 5 is a flow chart illustrating an erase cycle portion of the flow chart of FIG. 4.
  • FIG. 6 is a flow chart illustrating a write cycle portion of the flow chart of FIG. 4.
  • assert will be used to avoid confusion when dealing with a mixture of "active high” and “active low” signals.
  • assert and “assertion” are used to indicate that a signal is rendered active, or logically true.
  • Negate and “negation” are used to indicate that a signal is rendered inactive, or logically false.
  • write will be used to refer to various acts involving changing the state of one or more EEPROM cells.
  • Write is used to refer to the act of directing the EEPROM device to store a particular data value or values at a particular location. As is familiar, depending on the previous state of each location and the new data value to be stored there, the state of that particular EEPROM cell may or may not be changed in response to the "write”.
  • Program is used to refer to the act of placing an EEPROM cell in its programmed state, as compared to its erased state.
  • erase likewise, is used to refer to the act of placing an EEPROM cell in its erased state.
  • FIG. 1 illustrates an intelligent EEPROM 10.
  • EEPROM 10 may be a memory-only device or it may be, as is the case in the preferred embodiment, a portion of an integrated circuit microcomputer.
  • Controller 11 receives two power supply inputs: V DD and V PP .
  • V DD is the usual positive power supply voltage which is typically 5 volts
  • V PP is the EEPROM programming voltage which is typically approximately 20 volts.
  • Controller 11 also receives three control signals: READ, WRITE and ENABLE. In the preferred embodiment of an integrated circuit microcomputer, these three control signals are provided by the CPU.
  • the READ and WRITE control signals are commonly provided by a single control line which signifies "read” when it is high and signifies "write” when it is low.
  • Controller 11 also provides a status output.
  • the status output signals when a write request has been completed. Such a status output may be useful to the CPU, for instance.
  • the status output is an optional feature of the preferred embodiment.
  • An address bus and a data bus also provide interconnections between EEPROM 10 and an external controller such as the CPU.
  • the address bus is connected to an address buffer 12, which also receives control inputs from controller 11.
  • the data bus is connected to a data buffer 13, which also receives control inputs from controller 11.
  • Address buffer 12 is coupled, by means of a set of internal address lines 15, to a write address latch 16 and to row decode apparatus 17.
  • Write address latch 16 and row decode apparatus 17 both receive control inputs from controller 11.
  • controller 11 controls address lines 15 to determine whether the address supplied to row decode apparatus 17 is provided by address buffer 12 or by write address latch 16. Further, address lines 15 are connected to a column select apparatus 18 and controller 11 similarly controls the source of the address supplied thereto.
  • Both address buffer 12 and write address latch 16 are connected to a comparator 21, which compares the addresses stored therein and provides an output indicative of whether the two addresses are the same to controller 11.
  • row decode apparatus 17 and column select apparatus 18 are coupled to a memory array 20, which comprises a plurality of EEPROM cells arranged in an array of rows and columns. Both row decode apparatus 17 and column select apparatus 18 receive control inputs from controller 11. In the preferred embodiment, row decode apparatus 17 selects, in response to the address supplied thereto, one of the rows of array 20 and column select apparatus 18 selects eight of the columns thereof, thus accessing the eight cells lying at the intersections of the selected row and columns. Of course, many other memory organizations are possible.
  • Column select apparatus 18 is connected to a plurality of sense amplifiers 22, which also receive control inputs from controller 11.
  • Sense amplifiers 22 are coupled, by means of column select apparatus 18, to the selected columns of array 20 and provide logic-level outputs indicative of whether the cells being accessed are programmed or erased.
  • sense amplifiers 22 are connected to data buffer 13. Also connected to data buffer 13 is a write data latch 23, which also receives control inputs from controller 11. Controller 11 is able to control whether the data supplied to data buffer 13 is provided by sense amplifiers 22 or by write data latch 23 and is also able to control the storing of data from data buffer 13 into write data latch 23.
  • FIG. 2 is a flow chart illustrating the basic control program of controller 11.
  • the flow chart of FIG. 2 is an endless loop which indicates that controller 11 is constantly alert for commands received by means of the READ, WRITE and ENABLE inputs. Controller 11 initially examines the ENABLE input to determine if EEPROM 10 is being accessed. If ENABLE has not been asserted, controller 11 simply continues to wait for its assertion.
  • controller 11 examines READ to determine if it has been asserted. If so, controller 11 performs the read cycle illustrated in FIG. 3, then continues to wait for another assertion of ENABLE. If READ has not been asserted, WRITE is examined to determine if it has been asserted. If not, controller 11 returns to wait for an access of EEPROM 10. If WRITE has been asserted, controller 11 performs the write executive control program illustrated in FIG. 4, then continues to wait for another access.
  • controller 11 is a state machine, although many other implementations are possible. Therefore, the flow chart of FIG. 2, and those of the following figures, are not intended to necessarily imply sequential operations. For example, it is not necessarily true in the case of a state machine controller that the READ input would be examined prior to the examination of the WRITE input. In some cases, of course, sequence is important to the operation of EEPROM 10. These points will be apparent from the discussion below.
  • FIG. 3 illustrates the process by which controller 11 responds to a read request.
  • the address appearing on the external address bus is stored temporarily in address buffer 12.
  • the address buffer contents are compared to the address currently stored in write address latch 16 by means of comparator 21.
  • comparator 21 As will be more readily apparent from the discussion of the write process below, it is possible that the read request being responded to has interrupted an uncompleted write. If this is the case, it is important that the address being accessed by the read request be compared to the address of the interrupted write, to avoid reading an incompletely programmed cell or cells.
  • the addresses in address buffer 12 and write address latch 16 match, then the data currently stored in the data latch 23 is provided to data buffer 13 for output on the data bus. Thus, if a read interrupts a write at the same address, the correct data will be read, just as if the interrupted write had been completed.
  • controller 11 couples address buffer 12 to row decode apparatus 17 and column select apparatus 18 in order to provide the read address thereto. It is assumed that row decode apparatus 17 and column select apparatus 18 then respond by selecting the appropriate row and columns of array 20. Controller 11 next couples sense amplifiers 22 to data buffer 13. This provides data buffer 13 with the logic values determined by sense amplifiers 22 to correspond to the states of the selected cells.
  • controller 11 directs data buffer 13 to drive the data bus with either the data provided by sense amplifiers 22 or by write data latch 23, depending on the earlier comparison of addresses. This terminates the read process.
  • FIG. 4 illustrates the overall write process executed by controller 11 in response to a write request.
  • This flow chart illustrates the process referred to in FIG. 1 as the "write executive".
  • controller 11 enables address buffer 12 and data buffer 13 to temporarily store the address and data values received via therefore the external busses.
  • the address is transferred from address buffer 12 to write address latch 16 and the data is transferred from data buffer 13 to write data latch 23.
  • controller 11 then must provide the address from write address latch 16 to row decode apparatus 17 and to column select apparatus 18 in order to select the cells to be written.
  • an erase cycle as illustrated in FIG. 5 is performed.
  • a write cycle as illustrated in FIG. 6 is performed.
  • EEPROMs commonly erase each cell before writing a new value to it, as illustrated here. It is also known that it is possible to eliminate some unnecessary erasing by performing an exclusive OR operation on the data to be written and the data currently stored in the cell or cells being accessed. Another possible method is to check for zeros in the data currently in either the data to be written or the data currently in the cells. These modifications may be easily made within the context of the present invention.
  • FIG. 5 illustrates the erase cycle performed prior to a write cycle.
  • controller 11 performs an erase operation. This consists, essentially, of applying the programming voltage to the cells being accessed in a predetermined way for a predetermined length of time.
  • a cell is erased by applying V PP to its drain and control gate while coupling its source to ground.
  • the time of each erase pulse is chosen to be some fraction of the total time anticipated to be necessary to erase a typical cell and may be in the range of 1 to 5 milliseconds. Both the details of the programming voltage application and the time for which it applied during each pulse are subject to wide variation with different cell designs and manufacturing techniques.
  • controller 11 examines the READ input to determine if a read request has been made since the write was begun. If so, the read cycle of FIG. 3 is executed. If no read is pending, or after the read cycle has been completed, an erase verify cycle is performed. This entails using sense amplifiers 22 to determine the states of the cells being accessed and determining whether they are erased.
  • the erase verify cycle results in a verification that the cells have been erased, the erase cycle is terminated. If not, another erase pulse is performed and the process is repeated.
  • FIG. 6 illustrates the write cycle of FIG. 4. As is apparent, it is identical to the erase cycle of FIG. 5 in its general flow.
  • the write pulse applied will be slightly different from the erase pulse of FIG. 5.
  • a cell In a typical EEPROM design, a cell is programmed by applying V PP to its drain while grounding its source and control gate. Again, both these details and the time for which the programming voltage is applied will vary greatly.
  • the write pulse is different from the erase pulse in that the cells being accessed are not necessarily treated identically.
  • the data in write data latch 23 must, of course, be used to determine which cells are to be programmed and which are to be left in the erased state. Only those cells which are to be programmed have the programming voltage applied during the write pulse.
  • the write verify step of FIG. 6 is also slightly different from the erase verify step of FIG. 5.
  • the sensed cell states are compared to the data in write data latch 23 in order to determine whether the write has been completed.
  • the combination of the modified read process described with reference to FIG. 3 and the modified write/erase processes described with reference to FIGS. 5 and 6 provide a potential for an EEPROM with a greatly improved worst case read latency.
  • the worst case latency is approximately equal to the time required to perform one erase or write pulse.
  • a total erase/write cycle may require as long as 20 milliseconds, depending on the number of iterations of the erase and write pulses required.
  • a single erase or write pulse may require only 2 or 3 milliseconds.
  • An example of such a modification might be, for instance, the substitution of a non-iterative write/erase control process for the iterative process described. It is possible to design an intelligent, or autonomous, EEPROM which allows a controlling CPU to proceed with other tasks after having issued a write or a read request, just as does the EEPROM described above, but which does not use an iterative process of several write/erase pulses interspersed with verify cycles as does the described embodiment. In fact, such a non-iterative intelligent EEPROM may benefit to an even greater extent from the advantages of the present invention, since a non-iterative write/erase process is typically longer than an iterative process.
  • Another possible modification involves the choice of whether to compare a read address to a previous write address on every read or only on those reads which interrupt writes.
  • the comparison may be executed and responded to on every read, as is implied in FIG. 3, or it may be performed only on those reads which interrupt a write.
  • the latter approach may be advantageous in some circumstances to ensure that the data being read is what is actually in the array.

Abstract

An intelligent electrically erasable, programmable read-only memory achieves improved worst-case read operation latency by allowing for the interruption of write operations by subsequently received read requests. In the preferred embodiment, a state machine controller executes write operations by an iterative process of write pulses and write verify cycles. In addition, cells are erased prior to being written to by a similar iterative process. Both the write operations and the erase operations may be interrupted by read requests received after the write operation has begun execution. To avoid reading incorrect data in the case of a read operation at the same address as an interrupted write operation, a comparator matches read operation addresses with latched write operation addresses and provides the read operation data from a write data latch in the case of a match.

Description

FIELD OF THE INVENTION
The present invention relates, in general, to electrically erasable, programmable read-only memories (EEPROMs). More particularly, the invention relates to EEPROMs which include a controller for autonomously executing read and write operations.
BACKGROUND OF THE INVENTION
U.S. Pat. No. 4,460,982 (hereinafter, Gee et al) discloses an intelligent EEPROM. During both programming and erasing, the device disclosed by Gee et al iteratively applies pulses of programming voltage to the memory cell or cells being accessed and, between pulses, compares the state of the cells to the desired end state.
The advantages of an intelligent EEPROM over a "dumb" device are well known. Among these are the relative ease with which such a device may be integrated with a microprocessor-controlled system. Prior to the Gee et al invention, a microprocessor writing to an EEPROM was required to control the application and timing of the programming voltage to the EEPROM, thus precluding the execution of other tasks during the relatively long program/erase cycles.
In a microprocessor-controlled system using EEPROMs according to Gee et al, and as further described hereinbelow, the microprocessor is free to continue the execution of other tasks after having instructed the intelligent EEPROM to write a data value to a particular location. However, if the microprocessor issues a read instruction to the EEPROM while the write cycle is being executed, the memory is unavailable. In other words, the read request must be held pending until the previously issued write request is completed. Since the time required to program an EEPROM cell is very long compared to the speed at which a typical microprocessor operates, such a system may have an unacceptably long worst case read latency; that is, the time required to complete a read operation after the request is first issued.
SUMMARY OF THE INVENTION
Accordingly, it is an object of the present invention to provide an EEPROM with improved read latency.
It is a further object of the present invention to provide an intelligent EEPROM capable of executing a requested read operation prior to the completion of a previously received write request.
These and other objects and advantages of the present invention are provided by an EEPROM comprising an array of EEPROM cells, read control means for reading one of said cells in response to receipt of a read control signal and a read address and means for writing one of said cells in response to receipt of a write control signal, a write address and data and wherein logic for writing further comprises write control logic for iteratively applying a write pulse to said cell and reading said cell until the cell is in a desired state, the improvement comprising logic for halting said write control logic in response to receipt of said read control signal and read address, for activating said read control logic and for restarting said write control means after said read control logic has completed reading said cell.
These and other objects and advantages of the present invention will be apparent to one skilled in the art from the detailed description below, taken together with the drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram illustrating an EEPROM of a particular embodiment of the present invention;
FIG. 2 is a flow chart illustrating a portion of a method of operating the apparatus of FIG. 1 according to a particular embodiment of the present invention;
FIG. 3 is a flow chart illustrating a read cycle portion of the flow chart of FIG. 2;
FIG. 4 is a flow chart illustrating a write executive portion of the flow chart of FIG. 2;
FIG. 5 is a flow chart illustrating an erase cycle portion of the flow chart of FIG. 4; and
FIG. 6 is a flow chart illustrating a write cycle portion of the flow chart of FIG. 4.
DETAILED DESCRIPTION OF THE INVENTION
The terms "assert", "assertion", "negate" and "negation" will be used to avoid confusion when dealing with a mixture of "active high" and "active low" signals. "Assert" and "assertion" are used to indicate that a signal is rendered active, or logically true. "Negate" and "negation" are used to indicate that a signal is rendered inactive, or logically false.
The terms "write", "program" and "erase", and forms thereof, will be used to refer to various acts involving changing the state of one or more EEPROM cells. "Write" is used to refer to the act of directing the EEPROM device to store a particular data value or values at a particular location. As is familiar, depending on the previous state of each location and the new data value to be stored there, the state of that particular EEPROM cell may or may not be changed in response to the "write". "Program" is used to refer to the act of placing an EEPROM cell in its programmed state, as compared to its erased state. "Erase", likewise, is used to refer to the act of placing an EEPROM cell in its erased state.
FIG. 1 illustrates an intelligent EEPROM 10. As is familiar, EEPROM 10 may be a memory-only device or it may be, as is the case in the preferred embodiment, a portion of an integrated circuit microcomputer. Controller 11 receives two power supply inputs: VDD and VPP. VDD is the usual positive power supply voltage which is typically 5 volts and VPP is the EEPROM programming voltage which is typically approximately 20 volts. Controller 11 also receives three control signals: READ, WRITE and ENABLE. In the preferred embodiment of an integrated circuit microcomputer, these three control signals are provided by the CPU. As is familiar, the READ and WRITE control signals are commonly provided by a single control line which signifies "read" when it is high and signifies "write" when it is low.
Controller 11 also provides a status output. The status output signals when a write request has been completed. Such a status output may be useful to the CPU, for instance. The status output is an optional feature of the preferred embodiment.
An address bus and a data bus also provide interconnections between EEPROM 10 and an external controller such as the CPU. The address bus is connected to an address buffer 12, which also receives control inputs from controller 11. Similarly, the data bus is connected to a data buffer 13, which also receives control inputs from controller 11.
Address buffer 12 is coupled, by means of a set of internal address lines 15, to a write address latch 16 and to row decode apparatus 17. Write address latch 16 and row decode apparatus 17 both receive control inputs from controller 11. In addition, although it is not shown here to preserve clarity, controller 11 controls address lines 15 to determine whether the address supplied to row decode apparatus 17 is provided by address buffer 12 or by write address latch 16. Further, address lines 15 are connected to a column select apparatus 18 and controller 11 similarly controls the source of the address supplied thereto.
Both address buffer 12 and write address latch 16 are connected to a comparator 21, which compares the addresses stored therein and provides an output indicative of whether the two addresses are the same to controller 11.
In the fashion familiar in the art, row decode apparatus 17 and column select apparatus 18 are coupled to a memory array 20, which comprises a plurality of EEPROM cells arranged in an array of rows and columns. Both row decode apparatus 17 and column select apparatus 18 receive control inputs from controller 11. In the preferred embodiment, row decode apparatus 17 selects, in response to the address supplied thereto, one of the rows of array 20 and column select apparatus 18 selects eight of the columns thereof, thus accessing the eight cells lying at the intersections of the selected row and columns. Of course, many other memory organizations are possible.
Column select apparatus 18 is connected to a plurality of sense amplifiers 22, which also receive control inputs from controller 11. Sense amplifiers 22 are coupled, by means of column select apparatus 18, to the selected columns of array 20 and provide logic-level outputs indicative of whether the cells being accessed are programmed or erased. In the preferred embodiment, there would typically be eight sense amplifiers, each providing an indication of whether one of the eight cells being accessed is programmed or erased.
The outputs of sense amplifiers 22 are connected to data buffer 13. Also connected to data buffer 13 is a write data latch 23, which also receives control inputs from controller 11. Controller 11 is able to control whether the data supplied to data buffer 13 is provided by sense amplifiers 22 or by write data latch 23 and is also able to control the storing of data from data buffer 13 into write data latch 23.
FIG. 2 is a flow chart illustrating the basic control program of controller 11. The flow chart of FIG. 2 is an endless loop which indicates that controller 11 is constantly alert for commands received by means of the READ, WRITE and ENABLE inputs. Controller 11 initially examines the ENABLE input to determine if EEPROM 10 is being accessed. If ENABLE has not been asserted, controller 11 simply continues to wait for its assertion.
Once ENABLE has been determined to have been asserted, controller 11 examines READ to determine if it has been asserted. If so, controller 11 performs the read cycle illustrated in FIG. 3, then continues to wait for another assertion of ENABLE. If READ has not been asserted, WRITE is examined to determine if it has been asserted. If not, controller 11 returns to wait for an access of EEPROM 10. If WRITE has been asserted, controller 11 performs the write executive control program illustrated in FIG. 4, then continues to wait for another access.
In the preferred embodiment, controller 11 is a state machine, although many other implementations are possible. Therefore, the flow chart of FIG. 2, and those of the following figures, are not intended to necessarily imply sequential operations. For example, it is not necessarily true in the case of a state machine controller that the READ input would be examined prior to the examination of the WRITE input. In some cases, of course, sequence is important to the operation of EEPROM 10. These points will be apparent from the discussion below.
FIG. 3 illustrates the process by which controller 11 responds to a read request. First, the address appearing on the external address bus is stored temporarily in address buffer 12. Next, the address buffer contents are compared to the address currently stored in write address latch 16 by means of comparator 21. As will be more readily apparent from the discussion of the write process below, it is possible that the read request being responded to has interrupted an uncompleted write. If this is the case, it is important that the address being accessed by the read request be compared to the address of the interrupted write, to avoid reading an incompletely programmed cell or cells. If the addresses in address buffer 12 and write address latch 16 match, then the data currently stored in the data latch 23 is provided to data buffer 13 for output on the data bus. Thus, if a read interrupts a write at the same address, the correct data will be read, just as if the interrupted write had been completed.
If the two addresses do not match, controller 11 couples address buffer 12 to row decode apparatus 17 and column select apparatus 18 in order to provide the read address thereto. It is assumed that row decode apparatus 17 and column select apparatus 18 then respond by selecting the appropriate row and columns of array 20. Controller 11 next couples sense amplifiers 22 to data buffer 13. This provides data buffer 13 with the logic values determined by sense amplifiers 22 to correspond to the states of the selected cells.
Finally, controller 11 directs data buffer 13 to drive the data bus with either the data provided by sense amplifiers 22 or by write data latch 23, depending on the earlier comparison of addresses. This terminates the read process.
FIG. 4 illustrates the overall write process executed by controller 11 in response to a write request. This flow chart illustrates the process referred to in FIG. 1 as the "write executive". First, controller 11 enables address buffer 12 and data buffer 13 to temporarily store the address and data values received via therefore the external busses. Next, the address is transferred from address buffer 12 to write address latch 16 and the data is transferred from data buffer 13 to write data latch 23. Although not explicitly shown here, controller 11 then must provide the address from write address latch 16 to row decode apparatus 17 and to column select apparatus 18 in order to select the cells to be written. Next, an erase cycle as illustrated in FIG. 5 is performed. Finally, a write cycle as illustrated in FIG. 6 is performed.
As is familiar, EEPROMs commonly erase each cell before writing a new value to it, as illustrated here. It is also known that it is possible to eliminate some unnecessary erasing by performing an exclusive OR operation on the data to be written and the data currently stored in the cell or cells being accessed. Another possible method is to check for zeros in the data currently in either the data to be written or the data currently in the cells. These modifications may be easily made within the context of the present invention.
FIG. 5 illustrates the erase cycle performed prior to a write cycle. As is familiar in the art, it is also possible to design controller 11 so that the erase cycle illustrated here is available independently of a write request. First, controller 11 performs an erase operation. This consists, essentially, of applying the programming voltage to the cells being accessed in a predetermined way for a predetermined length of time. In a typical EEPROM design, a cell is erased by applying VPP to its drain and control gate while coupling its source to ground. The time of each erase pulse is chosen to be some fraction of the total time anticipated to be necessary to erase a typical cell and may be in the range of 1 to 5 milliseconds. Both the details of the programming voltage application and the time for which it applied during each pulse are subject to wide variation with different cell designs and manufacturing techniques.
After an erase pulse is applied, controller 11 examines the READ input to determine if a read request has been made since the write was begun. If so, the read cycle of FIG. 3 is executed. If no read is pending, or after the read cycle has been completed, an erase verify cycle is performed. This entails using sense amplifiers 22 to determine the states of the cells being accessed and determining whether they are erased.
If the erase verify cycle results in a verification that the cells have been erased, the erase cycle is terminated. If not, another erase pulse is performed and the process is repeated.
FIG. 6 illustrates the write cycle of FIG. 4. As is apparent, it is identical to the erase cycle of FIG. 5 in its general flow. The write pulse applied will be slightly different from the erase pulse of FIG. 5. In a typical EEPROM design, a cell is programmed by applying VPP to its drain while grounding its source and control gate. Again, both these details and the time for which the programming voltage is applied will vary greatly. In addition, the write pulse is different from the erase pulse in that the cells being accessed are not necessarily treated identically. The data in write data latch 23 must, of course, be used to determine which cells are to be programmed and which are to be left in the erased state. Only those cells which are to be programmed have the programming voltage applied during the write pulse.
The write verify step of FIG. 6 is also slightly different from the erase verify step of FIG. 5. In the case of the write verify, the sensed cell states are compared to the data in write data latch 23 in order to determine whether the write has been completed.
As is apparent to one skilled in the art, the combination of the modified read process described with reference to FIG. 3 and the modified write/erase processes described with reference to FIGS. 5 and 6 provide a potential for an EEPROM with a greatly improved worst case read latency. Instead of a worst case latency approximately equal to the total time required for an erase/write cycle to be completed, the worst case latency is approximately equal to the time required to perform one erase or write pulse. Using the timing examples given in the Gee et al. patent, a total erase/write cycle may require as long as 20 milliseconds, depending on the number of iterations of the erase and write pulses required. A single erase or write pulse, however, may require only 2 or 3 milliseconds.
While the present invention has been shown and described with reference to a particular embodiment thereof, various modifications and changes thereto will be apparent to those skilled in the art and are within the spirit and scope of the present invention.
An example of such a modification might be, for instance, the substitution of a non-iterative write/erase control process for the iterative process described. It is possible to design an intelligent, or autonomous, EEPROM which allows a controlling CPU to proceed with other tasks after having issued a write or a read request, just as does the EEPROM described above, but which does not use an iterative process of several write/erase pulses interspersed with verify cycles as does the described embodiment. In fact, such a non-iterative intelligent EEPROM may benefit to an even greater extent from the advantages of the present invention, since a non-iterative write/erase process is typically longer than an iterative process. Another possible modification involves the choice of whether to compare a read address to a previous write address on every read or only on those reads which interrupt writes. The comparison may be executed and responded to on every read, as is implied in FIG. 3, or it may be performed only on those reads which interrupt a write. The latter approach may be advantageous in some circumstances to ensure that the data being read is what is actually in the array.

Claims (6)

I claim:
1. In an EEPROM comprising an array of EEPROM cells, read means for reading one of said cells in response to receipt of a read control signal and a read address and means for write means for writing at least one of said cells in response to receipt of a write control signal, a write address and data and wherein said write means further comprises write control means for iteratively applying a write pulse to said at least one cell and reading said at least one cell until said at least one cell is in a desired state, the improvement comprising:
means for halting said write control means in response to receipt of said read control signal and read address, for activating said read means and for restarting said write control means after said read means has completed responding to said read control signal and read address;
latch means for storing said write address and said write data;
compare means for comparing said write address to said read address; and
read output means responsive to said compare means to select one of said latch means and said cell as a source of data to be output in response to said read control signal and read address.
2. The EEPROM of claim 1 wherein said write means further comprises erase control means for iteratively applying an erase pulse to said cell and reading said cell until said cell is erased prior to activating said write control means and wherein the improvement further comprises:
means for halting said erase control means in response to receipt of said read control signal and read address, for activating said read means and for restarting said erase control means after said read means has completed responding to said read control signal and read address.
3. The EEPROM of claim 2 wherein the improvement further comprises:
latch means for storing said write address and said write data;
compare means for comparing said write address to said read address; and
read output means responsive to said compare means to select one of said latch means and said cell as a source of data to be output in response to said read control signal and read address.
4. An intelligent EEPROM comprising:
an array of EEPROM cells arranged in a first plurality of rows and a second plurality of columns;
address decode means for selecting one of said rows and at least one of said columns in response to receipt of an address;
address means for receiving an address from an address bus and for providing said address to said address decode means;
sense means coupled to said address decode means for determining a state of at least one of said EEPROM cells located at an intersection of said selected row and column;
data means for providing bidirectional communication with a data bus; and control means for responding to a read control signal by operating said address means to provide a read address to said address decode means and operating said sense means and data means to provide an output to said data buss indicative of said state of said at least one of said EEPROM cells, and for responding to a write control signal by operating said address means to provide a write address to said address decode means and operating said data means to receive write data from said data bus and by changing said state of at least one of said EEPROM cells, if necessary, to correspond to said write data;
wherein said control means further comprises:
write interrupt means for responding to said read control signal while said write control signal is being responded to by halting said response to said write control signal, completing said response to said read control signal and then completing said response to said write control signal;
said address means further comprises first latch means for storing said write address;
said data means further comprises second latch means for storing said write data; and
said control means further comprises: compare means for comparing said read address to said write address; and output select means responsive to said compare means for coupling one of said sense means and said second latch means to said data bus.
5. The intelligent EEPROM of claim 4 wherein said control means is further responsive to said write control signal by operating said address means to provide said write address to said address decode means and by erasing said one of said EEPROM cells prior to changing its state, if necessary, to correspond to said write data, and wherein said control means further comprises:
erase interrupt means responsive to said read control signal while said one of said EEPROM cells is being erased by halting said erasing, completing said response to said read control signal and then completing said erasing.
6. The intelligent EEPROM of claim 5 wherein said address means further comprises first latch means for storing said write address, wherein said data means further comprises second latch means for storing said write data and wherein said control means further comprises:
compare means for comparing said read address to said write address; and
output select means responsive to said compare means for coupling one of said sense means and said second latch means to said data bus.
US07/135,945 1987-12-21 1987-12-21 Intelligent electrically erasable, programmable read-only memory with improved read latency Expired - Lifetime US5034922A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US07/135,945 US5034922A (en) 1987-12-21 1987-12-21 Intelligent electrically erasable, programmable read-only memory with improved read latency

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/135,945 US5034922A (en) 1987-12-21 1987-12-21 Intelligent electrically erasable, programmable read-only memory with improved read latency

Publications (1)

Publication Number Publication Date
US5034922A true US5034922A (en) 1991-07-23

Family

ID=22470500

Family Applications (1)

Application Number Title Priority Date Filing Date
US07/135,945 Expired - Lifetime US5034922A (en) 1987-12-21 1987-12-21 Intelligent electrically erasable, programmable read-only memory with improved read latency

Country Status (1)

Country Link
US (1) US5034922A (en)

Cited By (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993011541A1 (en) * 1991-11-26 1993-06-10 Information Storage Devices, Inc. Programmable non-volatile analog voltage source devices and methods
US5222046A (en) * 1988-02-17 1993-06-22 Intel Corporation Processor controlled command port architecture for flash memory
US5278790A (en) * 1989-05-15 1994-01-11 Casio Computer Co., Ltd. Memory device comprising thin film memory transistors
US5355464A (en) * 1991-02-11 1994-10-11 Intel Corporation Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory
US5377145A (en) * 1991-02-11 1994-12-27 Intel Corporation Circuitry and method for programming and erasing a non-volatile semiconductor memory
US5379379A (en) * 1988-06-30 1995-01-03 Wang Laboratories, Inc. Memory control unit with selective execution of queued read and write requests
US5388071A (en) * 1992-04-28 1995-02-07 Nec Corporation Semiconductor memory device regulable in access time after fabrication thereof
US5412793A (en) * 1991-12-03 1995-05-02 Intel Corporation Method for testing erase characteristics of a flash memory array
US5414829A (en) * 1990-03-29 1995-05-09 Intel Corporation Override timing control circuitry and method for terminating program and erase sequences in a flash memory
US5436913A (en) * 1992-06-02 1995-07-25 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device using successively longer write pulses
US5467309A (en) * 1993-09-06 1995-11-14 Hitachi, Ltd. Semiconductor nonvolatile memory device having reduced switching overhead time on the program mode
US5477495A (en) * 1991-09-24 1995-12-19 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory apparatus
US5513136A (en) * 1993-09-27 1996-04-30 Intel Corporation Nonvolatile memory with blocks and circuitry for selectively protecting the blocks for memory operations
US5537357A (en) * 1994-06-27 1996-07-16 Intel Corporation Method for preconditioning a nonvolatile memory array
US5546561A (en) * 1991-02-11 1996-08-13 Intel Corporation Circuitry and method for selectively protecting the integrity of data stored within a range of addresses within a non-volatile semiconductor memory
US5657467A (en) * 1993-03-18 1997-08-12 Fujitsu Limited Non-volatile semiconductor memory device with instruction issue during busy cycle
US5748546A (en) * 1994-06-02 1998-05-05 Intel Corporation Sensing scheme for flash memory with multilevel cells
US5781476A (en) * 1989-02-06 1998-07-14 Hitachi, Ltd. Nonvolatile semiconductor memory device
US5802343A (en) * 1993-10-26 1998-09-01 Intel Corporation Method of prioritizing subsequently received program and erase commands during a block operation for a nonvolatile semiconductor memory
US5809556A (en) * 1992-05-15 1998-09-15 Toshiba Corporation Data storage system for highly frequent repetitive data writing
US5822244A (en) * 1997-09-24 1998-10-13 Motorola, Inc. Method and apparatus for suspending a program/erase operation in a flash memory
EP0900440A1 (en) * 1996-05-22 1999-03-10 Macronix International Co., Ltd. Flash memory device with multiple checkpoint erase suspend logic
US5892710A (en) * 1994-01-21 1999-04-06 Intel Corporation Method and circuitry for storing discrete amounts of charge in a single memory element
US6085282A (en) * 1997-09-24 2000-07-04 Motorola, Inc. Method and apparatus for distinguishing register reads from memory reads in a flash memory
EP0931289A4 (en) * 1996-09-20 2000-10-04 Intel Corp Nonvolatile writeable memory with program suspend command
US20010026472A1 (en) * 1989-04-13 2001-10-04 Eliyahou Harari Flash EEprom system
US6389500B1 (en) * 1999-05-28 2002-05-14 Agere Systems Guardian Corporation Flash memory
US6453399B2 (en) * 1994-01-20 2002-09-17 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device and computer having a synchronization signal indicating that the memory data output is valid
US20030182497A1 (en) * 2002-03-20 2003-09-25 Yoriharu Takai Information storage apparatus
US20060053247A1 (en) * 2004-09-08 2006-03-09 Hugo Cheung Incremental erasing of flash memory to improve system performance
US20060126393A1 (en) * 2004-12-14 2006-06-15 Yan Li Data recovery methods in multi-state memory after program fail
US20060126394A1 (en) * 2004-12-14 2006-06-15 Yan Li Multi-state memory having data recovery after program fail
US20060221696A1 (en) * 2005-04-01 2006-10-05 Yan Li Method for Non-Volatile Memory with Background Data Latch Caching During Read Operations
US20060221704A1 (en) * 2005-04-01 2006-10-05 Yan Li Use of data latches in cache operations of non-volatile memories
US20060221697A1 (en) * 2005-04-01 2006-10-05 Yan Li Use of data latches in multi-phase programming of non-volatile memories
US20060239080A1 (en) * 2005-04-01 2006-10-26 Yan Li Method for Non-Volatile Memory with Managed Execution of Cached Data
US20070217253A1 (en) * 2006-03-16 2007-09-20 Kim Hye-Jin Non-volatile phase-change memory device and associated program-suspend-read operation
US20080077751A1 (en) * 2006-09-26 2008-03-27 Ite Tech. Inc. Control device for accelerating memory to execute iterant command
US20090125785A1 (en) * 2004-05-13 2009-05-14 Sergey Anatolievich Gorobets Pipelined Data Relocation and Improved Chip Architectures
US20090154221A1 (en) * 2007-12-14 2009-06-18 Samsung Electronics Co., Ltd. Non-Volatile memory device using variable resistance element with an improved write performance
US20110055453A1 (en) * 2009-08-28 2011-03-03 Interruptible Nand Flash Memory Interruptible nand flash memory
US20110072332A1 (en) * 2004-12-21 2011-03-24 Andrew Tomlin Method for Copying Data in Reprogrammable Non-Volatile Memory
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US20140301148A1 (en) * 2013-04-08 2014-10-09 SK Hynix Inc. Semiconductor memory apparatus and operation method using the same
US8964488B2 (en) 2007-12-14 2015-02-24 Samsung Electronics Co., Ltd. Non-volatile memory device using variable resistance element with an improved write performance
US20160078908A1 (en) * 2013-04-08 2016-03-17 SK Hynix Inc. Semiconductor memory apparatus and operation method using the same
US9400745B2 (en) 2013-11-06 2016-07-26 International Business Machines Corporation Physical address management in solid state memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4249250A (en) * 1978-09-29 1981-02-03 National Research Development Corporation Computer storage arrangements with overwrite warning
US4410965A (en) * 1981-09-18 1983-10-18 Ncr Corporation Data decompression apparatus and method
US4460982A (en) * 1982-05-20 1984-07-17 Intel Corporation Intelligent electrically programmable and electrically erasable ROM
US4811294A (en) * 1985-06-21 1989-03-07 Mitsubishi Denki Kabushiki Kaisha Data integrity verifying circuit for electrically erasable and programmable read only memory (EEPROM)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4249250A (en) * 1978-09-29 1981-02-03 National Research Development Corporation Computer storage arrangements with overwrite warning
US4410965A (en) * 1981-09-18 1983-10-18 Ncr Corporation Data decompression apparatus and method
US4460982A (en) * 1982-05-20 1984-07-17 Intel Corporation Intelligent electrically programmable and electrically erasable ROM
US4811294A (en) * 1985-06-21 1989-03-07 Mitsubishi Denki Kabushiki Kaisha Data integrity verifying circuit for electrically erasable and programmable read only memory (EEPROM)

Cited By (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222046A (en) * 1988-02-17 1993-06-22 Intel Corporation Processor controlled command port architecture for flash memory
US5379379A (en) * 1988-06-30 1995-01-03 Wang Laboratories, Inc. Memory control unit with selective execution of queued read and write requests
US5917752A (en) * 1989-02-06 1999-06-29 Hitachi, Ltd. Nonvolatile semiconductor memory device
US20020176282A1 (en) * 1989-02-06 2002-11-28 Koichi Seki Nonvolatile semiconductor memory device
US6259629B1 (en) 1989-02-06 2001-07-10 Hitachi, Ltd. Nonvolatile semiconductor memory device
US5781476A (en) * 1989-02-06 1998-07-14 Hitachi, Ltd. Nonvolatile semiconductor memory device
US6157576A (en) * 1989-02-06 2000-12-05 Hitachi, Ltd. Nonvolatile semiconductor memory device
US6438036B2 (en) 1989-02-06 2002-08-20 Hitachi, Ltd. Nonvolatile semiconductor memory device
US7099199B2 (en) 1989-02-06 2006-08-29 Renesas Technology Corp. Nonvolatile semiconductor memory device
US6016273A (en) * 1989-02-06 2000-01-18 Hitachi, Ltd. Nonvolatile semiconductor memory device
US5991200A (en) * 1989-02-06 1999-11-23 Hitachi, Ltd. Nonvolatile semiconductor memory device
US5949715A (en) * 1989-02-06 1999-09-07 Hitachi, Ltd. Nonvolatile semiconductor memory device
US6747902B2 (en) 1989-02-06 2004-06-08 Renesas Technology Corp. Nonvolatile semiconductor memory apparatus
US6791882B2 (en) 1989-02-06 2004-09-14 Renesas Technology Corp. Nonvolatile semiconductor memory device
US5844842A (en) * 1989-02-06 1998-12-01 Hitachi, Ltd. Nonvolatile semiconductor memory device
US20040202025A1 (en) * 1989-02-06 2004-10-14 Koichi Seki Nonvolatile semiconductor memory device
US7372741B2 (en) 1989-02-06 2008-05-13 Renesas Technology Corp. Nonvolatile memory apparatus having a processor and plural memories one or more of which is a nonvolatile memory having circuitry which performs an erase operation and an erase verify operation when the processor specifies the erase operation mode to the nonvolatile memory
US20040202019A1 (en) * 1989-02-06 2004-10-14 Koichi Seki Nonvolatile semiconductor memory device
US7020028B2 (en) 1989-02-06 2006-03-28 Renesas Technology Corp. Nonvolatile semiconductor memory device
US20060262605A1 (en) * 1989-02-06 2006-11-23 Koichi Seki Nonvolatile semiconductor memory device
US6181600B1 (en) 1989-02-06 2001-01-30 Hitachi, Ltd Nonvolatile semiconductor memory device
US7283397B2 (en) 1989-04-13 2007-10-16 Sandisk Corporation Flash EEprom system capable of selective erasing and parallel programming/verifying memory cell blocks
US20040080988A1 (en) * 1989-04-13 2004-04-29 Sandisk Corporation Flash EEprom system
US7266017B2 (en) 1989-04-13 2007-09-04 Sandisk Corporation Method for selective erasing and parallel programming/verifying of cell blocks in a flash EEprom system
US6414876B1 (en) 1989-04-13 2002-07-02 Sandisk Corporation Flash EEprom system
US6684345B2 (en) 1989-04-13 2004-01-27 Sandisk Corporation Flash EEprom system
US20010026472A1 (en) * 1989-04-13 2001-10-04 Eliyahou Harari Flash EEprom system
US5278790A (en) * 1989-05-15 1994-01-11 Casio Computer Co., Ltd. Memory device comprising thin film memory transistors
US5414829A (en) * 1990-03-29 1995-05-09 Intel Corporation Override timing control circuitry and method for terminating program and erase sequences in a flash memory
US5355464A (en) * 1991-02-11 1994-10-11 Intel Corporation Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory
US5448712A (en) * 1991-02-11 1995-09-05 Intel Corporation Circuitry and method for programming and erasing a non-volatile semiconductor memory
US5513333A (en) * 1991-02-11 1996-04-30 Intel Corporation Circuitry and method for programming and erasing a non-volatile semiconductor memory
US5546561A (en) * 1991-02-11 1996-08-13 Intel Corporation Circuitry and method for selectively protecting the integrity of data stored within a range of addresses within a non-volatile semiconductor memory
US5377145A (en) * 1991-02-11 1994-12-27 Intel Corporation Circuitry and method for programming and erasing a non-volatile semiconductor memory
US5477495A (en) * 1991-09-24 1995-12-19 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory apparatus
WO1993011541A1 (en) * 1991-11-26 1993-06-10 Information Storage Devices, Inc. Programmable non-volatile analog voltage source devices and methods
US5388064A (en) * 1991-11-26 1995-02-07 Information Storage Devices, Inc. Programmable non-volatile analog voltage source devices and methods
US5412793A (en) * 1991-12-03 1995-05-02 Intel Corporation Method for testing erase characteristics of a flash memory array
US5388071A (en) * 1992-04-28 1995-02-07 Nec Corporation Semiconductor memory device regulable in access time after fabrication thereof
US5809556A (en) * 1992-05-15 1998-09-15 Toshiba Corporation Data storage system for highly frequent repetitive data writing
US5436913A (en) * 1992-06-02 1995-07-25 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device using successively longer write pulses
US5657467A (en) * 1993-03-18 1997-08-12 Fujitsu Limited Non-volatile semiconductor memory device with instruction issue during busy cycle
US5467309A (en) * 1993-09-06 1995-11-14 Hitachi, Ltd. Semiconductor nonvolatile memory device having reduced switching overhead time on the program mode
US5513136A (en) * 1993-09-27 1996-04-30 Intel Corporation Nonvolatile memory with blocks and circuitry for selectively protecting the blocks for memory operations
US5802343A (en) * 1993-10-26 1998-09-01 Intel Corporation Method of prioritizing subsequently received program and erase commands during a block operation for a nonvolatile semiconductor memory
US5956742A (en) * 1993-10-26 1999-09-21 Intel Corporation Methods for queuing and absorbing erase commands in a nonvolatile memory device
US5809541A (en) * 1993-10-26 1998-09-15 Intel Corporation Methods for prioritizing erase and program commands in a nonvolatile semiconductor memory device
US6453399B2 (en) * 1994-01-20 2002-09-17 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device and computer having a synchronization signal indicating that the memory data output is valid
US6091618A (en) * 1994-01-21 2000-07-18 Intel Corporation Method and circuitry for storing discrete amounts of charge in a single memory element
US5892710A (en) * 1994-01-21 1999-04-06 Intel Corporation Method and circuitry for storing discrete amounts of charge in a single memory element
US5828616A (en) * 1994-06-02 1998-10-27 Intel Corporation Sensing scheme for flash memory with multilevel cells
US5748546A (en) * 1994-06-02 1998-05-05 Intel Corporation Sensing scheme for flash memory with multilevel cells
US5537357A (en) * 1994-06-27 1996-07-16 Intel Corporation Method for preconditioning a nonvolatile memory array
EP0900440A1 (en) * 1996-05-22 1999-03-10 Macronix International Co., Ltd. Flash memory device with multiple checkpoint erase suspend logic
EP0900440A4 (en) * 1996-05-22 1999-04-07
EP0931289A4 (en) * 1996-09-20 2000-10-04 Intel Corp Nonvolatile writeable memory with program suspend command
US5822244A (en) * 1997-09-24 1998-10-13 Motorola, Inc. Method and apparatus for suspending a program/erase operation in a flash memory
US6085282A (en) * 1997-09-24 2000-07-04 Motorola, Inc. Method and apparatus for distinguishing register reads from memory reads in a flash memory
US6389500B1 (en) * 1999-05-28 2002-05-14 Agere Systems Guardian Corporation Flash memory
US20030182497A1 (en) * 2002-03-20 2003-09-25 Yoriharu Takai Information storage apparatus
US7073015B2 (en) * 2002-03-20 2006-07-04 Kabushiki Kaisha Toshiba Information storage apparatus
US20060212647A1 (en) * 2002-03-20 2006-09-21 Yoriharu Takai Information storage apparatus
US7404030B2 (en) 2002-03-20 2008-07-22 Kabushiki Kaisha Toshiba Method of controlling a non-volatile memory device in which a data erase block is larger than a data write block
US8621323B2 (en) 2004-05-13 2013-12-31 SanDisk Technologies, Inc. Pipelined data relocation and improved chip architectures
US20090125785A1 (en) * 2004-05-13 2009-05-14 Sergey Anatolievich Gorobets Pipelined Data Relocation and Improved Chip Architectures
US9122591B2 (en) 2004-05-13 2015-09-01 Sandisk Technologies Inc. Pipelined data relocation and improved chip architectures
US20060053247A1 (en) * 2004-09-08 2006-03-09 Hugo Cheung Incremental erasing of flash memory to improve system performance
US7420847B2 (en) 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US20060126394A1 (en) * 2004-12-14 2006-06-15 Yan Li Multi-state memory having data recovery after program fail
US7345928B2 (en) 2004-12-14 2008-03-18 Sandisk Corporation Data recovery methods in multi-state memory after program fail
US20060126393A1 (en) * 2004-12-14 2006-06-15 Yan Li Data recovery methods in multi-state memory after program fail
US8914703B2 (en) 2004-12-21 2014-12-16 SanDisk Technologies, Inc. Method for copying data in reprogrammable non-volatile memory
US20110072332A1 (en) * 2004-12-21 2011-03-24 Andrew Tomlin Method for Copying Data in Reprogrammable Non-Volatile Memory
WO2006107654A1 (en) * 2005-04-01 2006-10-12 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US20060233022A1 (en) * 2005-04-01 2006-10-19 Yan Li Non-Volatile Memory with Background Data Latch Caching During Program Operations
US20070097744A1 (en) * 2005-04-01 2007-05-03 Yan Li Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories
US20070002626A1 (en) * 2005-04-01 2007-01-04 Yan Li Non-Volatile Memory with Managed Execution of Cached Data
US7158421B2 (en) 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US20060239080A1 (en) * 2005-04-01 2006-10-26 Yan Li Method for Non-Volatile Memory with Managed Execution of Cached Data
US20060233026A1 (en) * 2005-04-01 2006-10-19 Yan Li Method for Non-Volatile Memory with Background Data Latch Caching During Program Operations
US20060233023A1 (en) * 2005-04-01 2006-10-19 Jason Lin Method for Non-Volatile Memory with Background Data Latch Caching During Erase Operations
US20060233021A1 (en) * 2005-04-01 2006-10-19 Jason Lin Non-Volatile Memory with Background Data Latch Caching During Erase Operations
US7447078B2 (en) 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
US7463521B2 (en) 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
US7480181B2 (en) 2005-04-01 2009-01-20 Sandisk Corporation Non-volatile memory with background data latch caching during read operations
US7486558B2 (en) 2005-04-01 2009-02-03 Sandisk Corporation Non-volatile memory with managed execution of cached data
US7502260B2 (en) 2005-04-01 2009-03-10 Sandisk Corporation Method for non-volatile memory with background data latch caching during program operations
US20090067253A1 (en) * 2005-04-01 2009-03-12 Yan Li Method for Non-Volatile Memory With Background Data Latch Caching During Read Operations
US7505320B2 (en) 2005-04-01 2009-03-17 Sandisk Corporation Non-volatile memory with background data latch caching during program operations
US7508721B2 (en) 2005-04-01 2009-03-24 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US8036041B2 (en) 2005-04-01 2011-10-11 Sandisk Technologies Inc. Method for non-volatile memory with background data latch caching during read operations
US7577037B2 (en) 2005-04-01 2009-08-18 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US20060221697A1 (en) * 2005-04-01 2006-10-05 Yan Li Use of data latches in multi-phase programming of non-volatile memories
US8351269B2 (en) 2005-04-01 2013-01-08 SanDisk Technologies, Inc. Method for non-volatile memory with background data latch caching during read operations
US20060221704A1 (en) * 2005-04-01 2006-10-05 Yan Li Use of data latches in cache operations of non-volatile memories
US20090262578A1 (en) * 2005-04-01 2009-10-22 Yan Li Use of Data Latches in Cache Operations of Non-Volatile Memories
US7609552B2 (en) 2005-04-01 2009-10-27 Sandisk Corporation Non-volatile memory with background data latch caching during erase operations
US7619922B2 (en) 2005-04-01 2009-11-17 Sandisk Corporation Method for non-volatile memory with background data latch caching during erase operations
US7733703B2 (en) 2005-04-01 2010-06-08 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
CN101171641B (en) * 2005-04-01 2012-07-11 桑迪士克股份有限公司 Use of data latches in cache operations of non-volatile memories
US20100226176A1 (en) * 2005-04-01 2010-09-09 Yan Li Method for Non-Volatile Memory With Background Data Latch Caching During Read Operations
KR101106977B1 (en) * 2005-04-01 2012-01-20 쌘디스크 코포레이션 Use of data latches in cache operations of non- volatile memories
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US20060221696A1 (en) * 2005-04-01 2006-10-05 Yan Li Method for Non-Volatile Memory with Background Data Latch Caching During Read Operations
US20060233010A1 (en) * 2005-04-01 2006-10-19 Yan Li Non-Volatile Memory with Background Data Latch Caching During Read Operations
US7936602B2 (en) 2005-04-01 2011-05-03 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US20070217253A1 (en) * 2006-03-16 2007-09-20 Kim Hye-Jin Non-volatile phase-change memory device and associated program-suspend-read operation
KR100816748B1 (en) * 2006-03-16 2008-03-27 삼성전자주식회사 Phase change memory device supporting program suspend/resume mode and program method thereof
US7765367B2 (en) * 2006-09-26 2010-07-27 Ite Tech. Inc. Control device for accelerating memory to execute iterant command
US20080077751A1 (en) * 2006-09-26 2008-03-27 Ite Tech. Inc. Control device for accelerating memory to execute iterant command
US20090154221A1 (en) * 2007-12-14 2009-06-18 Samsung Electronics Co., Ltd. Non-Volatile memory device using variable resistance element with an improved write performance
US8194447B2 (en) 2007-12-14 2012-06-05 Samsung Electronics Co., Ltd. Non-volatile memory device using variable resistance element with an improved write performance
US8964488B2 (en) 2007-12-14 2015-02-24 Samsung Electronics Co., Ltd. Non-volatile memory device using variable resistance element with an improved write performance
US20110055453A1 (en) * 2009-08-28 2011-03-03 Interruptible Nand Flash Memory Interruptible nand flash memory
KR101702158B1 (en) 2009-08-28 2017-02-02 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Interruptible nand flash memory
AU2010292898B2 (en) * 2009-08-28 2014-06-05 Microsoft Technology Licensing, Llc Interruptible nand flash memory
US8850103B2 (en) * 2009-08-28 2014-09-30 Microsoft Corporation Interruptible NAND flash memory
EP2471067A4 (en) * 2009-08-28 2013-08-07 Microsoft Corp Interruptible nand flash memory
KR20120092561A (en) * 2009-08-28 2012-08-21 마이크로소프트 코포레이션 Interruptible nand flash memory
EP2471067A2 (en) * 2009-08-28 2012-07-04 Microsoft Corporation Interruptible nand flash memory
WO2011031398A2 (en) 2009-08-28 2011-03-17 Microsoft Corporation Interruptible nand flash memory
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US20140301148A1 (en) * 2013-04-08 2014-10-09 SK Hynix Inc. Semiconductor memory apparatus and operation method using the same
US20160078908A1 (en) * 2013-04-08 2016-03-17 SK Hynix Inc. Semiconductor memory apparatus and operation method using the same
US9542984B2 (en) * 2013-04-08 2017-01-10 SK Hynix Inc. Semiconductor memory apparatus and operation method using the same
US9196328B2 (en) * 2013-04-08 2015-11-24 SK Hynix Inc. Semiconductor memory apparatus and operation method using the same
US9400745B2 (en) 2013-11-06 2016-07-26 International Business Machines Corporation Physical address management in solid state memory
US9857977B2 (en) 2013-11-06 2018-01-02 International Business Machines Corporation Physical address management in solid state memory
US9996266B2 (en) 2013-11-06 2018-06-12 International Business Machines Corporation Physical address management in solid state memory
US10289304B2 (en) 2013-11-06 2019-05-14 International Business Machines Corporation Physical address management in solid state memory by tracking pending reads therefrom

Similar Documents

Publication Publication Date Title
US5034922A (en) Intelligent electrically erasable, programmable read-only memory with improved read latency
US5519847A (en) Method of pipelining sequential writes in a flash memory
US5369754A (en) Block specific status information in a memory device
US5245572A (en) Floating gate nonvolatile memory with reading while writing capability
US5621687A (en) Programmable erasure and programming time for a flash memory
US5937424A (en) Method and apparatus for suspending the writing of a nonvolatile semiconductor memory with program suspend command
KR100492714B1 (en) Microcomputer
US5687345A (en) Microcomputer having CPU and built-in flash memory that is rewritable under control of the CPU analyzing a command supplied from an external device
JP4317604B2 (en) Data processing system, non-volatile memory, and method for extending write / erase functions in flash memory
US5287469A (en) Electrically erasable and programmable non-volatile memory (EEPROM), wherein write pulses can be interrupted by subsequently received read requests
KR100472741B1 (en) Bank architecture for a non-volatile memory enabling simultaneous reading and writing
US6201739B1 (en) Nonvolatile writeable memory with preemption pin
US5835927A (en) Special test modes for a page buffer shared resource in a memory device
US10140062B1 (en) Automatic resumption of suspended write operation upon completion of higher priority write operation in a memory device
US20040059906A1 (en) System and method for booting by use of a flash memory
JPH06202942A (en) Flash memory circuit and operation method
US5526311A (en) Method and circuitry for enabling and permanently disabling test mode access in a flash memory device
US5940861A (en) Method and apparatus for preempting operations in a nonvolatile memory in order to read code from the nonvolatile memory
US5604880A (en) Computer system with a memory identification scheme
US5768563A (en) System and method for ROM program development
US7136307B2 (en) Write state machine architecture for flash memory internal instructions
US5748939A (en) Memory device with a central control bus and a control access register for translating an access request into an access cycle on the central control bus
US20020083381A1 (en) Special programming mode with external verification
US5379413A (en) User selectable word/byte input architecture for flash EEPROM memory write and erase operations
US20030095439A1 (en) Method and system for minimizing bit stress in a non-volatile memory during erase operations

Legal Events

Date Code Title Description
AS Assignment

Owner name: MOTOROLA, INC., SCHAUMBURG, ILLINOIS, A CORP. OF D

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:BURGESS, BRADLEY G.;REEL/FRAME:004801/0985

Effective date: 19871217

Owner name: MOTOROLA, INC., SCHAUMBURG,ILLINOIS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BURGESS, BRADLEY G.;REEL/FRAME:004801/0985

Effective date: 19871217

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA, INC.;REEL/FRAME:015698/0657

Effective date: 20040404

Owner name: FREESCALE SEMICONDUCTOR, INC.,TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA, INC.;REEL/FRAME:015698/0657

Effective date: 20040404

AS Assignment

Owner name: CITIBANK, N.A. AS COLLATERAL AGENT, NEW YORK

Free format text: SECURITY AGREEMENT;ASSIGNORS:FREESCALE SEMICONDUCTOR, INC.;FREESCALE ACQUISITION CORPORATION;FREESCALE ACQUISITION HOLDINGS CORP.;AND OTHERS;REEL/FRAME:018855/0129

Effective date: 20061201

Owner name: CITIBANK, N.A. AS COLLATERAL AGENT,NEW YORK

Free format text: SECURITY AGREEMENT;ASSIGNORS:FREESCALE SEMICONDUCTOR, INC.;FREESCALE ACQUISITION CORPORATION;FREESCALE ACQUISITION HOLDINGS CORP.;AND OTHERS;REEL/FRAME:018855/0129

Effective date: 20061201

AS Assignment

Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS

Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037354/0225

Effective date: 20151207