US6363454B1 - Memory system having flexible architecture and method - Google Patents
Memory system having flexible architecture and method Download PDFInfo
- Publication number
- US6363454B1 US6363454B1 US09/551,650 US55165000A US6363454B1 US 6363454 B1 US6363454 B1 US 6363454B1 US 55165000 A US55165000 A US 55165000A US 6363454 B1 US6363454 B1 US 6363454B1
- Authority
- US
- United States
- Prior art keywords
- memory
- control
- voltage
- control register
- array
- 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 - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims abstract description 490
- 238000000034 method Methods 0.000 title claims description 31
- 230000006870 function Effects 0.000 claims description 70
- 238000012546 transfer Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 4
- 230000004048 modification Effects 0.000 claims 3
- 238000012986 modification Methods 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 45
- 239000000872 buffer Substances 0.000 description 31
- 239000003607 modifier Substances 0.000 description 11
- 230000006386 memory function Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005476 soldering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0669—Configuration or reconfiguration with decentralised address assignment
- G06F12/0676—Configuration or reconfiguration with decentralised address assignment the address being position dependent
Definitions
- the present invention relates generally to semiconductor memory systems and in particular to a memory system having multiple memory devices connected to memory controller by way of a common system bus, with the memory devices storing control parameters provided by the controller and used in carrying out memory operations.
- a typical memory system may include a single memory controller implemented on a single integrated circuit together with one or more memory devices, each of which is implemented on a single integrated circuit, having an array of memory cells.
- the memory controller and memory devices are typically connected by way of a bus so that the controller can issue memory read, program and erase commands to a selected one of the memory devices.
- the storage capacity of such a memory system can be increased by adding additional memory devices to the system.
- Such memory devices are typically implemented to carry out memory operations, including read, program and erase operations in response to read commands accompanied by an address, program commands accompanied by an address and data to be programmed and erase commands.
- the memory devices typically include relatively complex control circuitry. This increased complexity increases the cost of the memory devices.
- control parameters may, for example, be used to precisely control the magnitude of the voltages applied to the memory cells during memory operations thereby optimizing such operations.
- control parameters may be stored using fusible links or using non-volatile memory cells. This approach further adds complexity and costs.
- a memory system of the type having a memory controller and a plurality of memory devices, where the memory devices contain a minimal amount of complex circuitry would be desirable.
- a memory system embodied in a single computer card (PCMCIA or PC card) there is a single controller integrated circuit and several associated memory integrated circuits. Rather than duplicating the control logic in each of the memory circuits, it would be advantageous to locate the control circuits in the controller. Further, a memory capable of storing control parameters without the use of fusible links or non-volatile memory cells would be desirable.
- the present invention provides these and other advantages which will be readily apparent to those skilled in the art upon a reading of the following Detailed Description of the Invention together with the drawings.
- FIG. 1 depicts a simplified conventional memory system which includes a host device 20 , an address decoder 22 and memory devices 24 A and 24 B.
- the host device 22 may be a microprocessor and the memory devices 24 A and 24 B may be separate memory integrated circuits.
- An address bus 26 is used to provide addresses to an address decoder 22 and to the memory devices 24 A and 24 B.
- the address decoder 22 has two outputs connected to enable inputs of the memory devices 24 A and 24 B. Typically, the most significant bit(s) of the address are provided on the bus 26 to the decoder 22 , with the remaining address bits being provided to each of the memory devices.
- the processor 20 When memory is to be accessed, the processor 20 causes the address decoder 22 to decode the most significant bit(s) of the memory address placed on an address bus 26 .
- the decoder 22 will select one of the two memory devices 24 A and 24 B by generating either signal Sel 0 or Sel 1 .
- the selected memory device will respond to the address presented to it on the address bus and the deselected memory device, which is disabled, will not respond.
- a data bus is used to transfer data between the memory devices and the processor 20 , with only the selected device outputting data to the data bus during memory read operations.
- the approach depicted in FIG. 1 is sometimes referred to as radial device selection where each memory device has a separate select input.
- This approach works well when relatively few memory devices are employed and where access speed, particularly random access speed, is important. However, if a large number of memory devices are used so that large amounts of data can be stored, the requirement of separate select lines for each memory device results in large memory boards and a relatively large pin count for the control logic circuitry. Thus, unless access speed is critical and a large number of memory devices are used, the radial device selection approach of FIG. 1 is not ideal.
- FIG. 2 shows an alternative prior art device selection technique, sometimes referred to as serial selection.
- a host device 28 is used which is connected to several memory devices 30 A, 30 B and 30 C by way of a system bus 32 .
- the memory devices 30 A, 30 B and 30 C are usually implemented as separate integrated circuits.
- the system bus 32 includes memory address and memory data and various control signals so that each of the memory devices 30 A, 30 B 30 C receives the same addresses, data and other signals.
- Each memory device is preassigned a unique address so that only one device will be accessed by the host device 28 during a memory operation.
- the memory devices 30 A, 30 B and 30 C are assigned addresses by way of jumper or switch settings represented by elements 34 A, 34 B and 34 C.
- FIG. 2 approach requires that dedicated pins be provided on each of the integrated circuit memory devices 30 A, 30 B and 30 C to receive the jumper wires or switches for assigning the addresses. These pins increase the pin count for the integrated circuits thereby increasing the cost of the packaging for the devices and increasing the likelihood that there will be mechanical problems and manufacturing errors through soldering and the like. These extra pins are also subject to defects and increase the possibility of damage to the integrated circuits as a result of electrostatic discharge.
- a memory system comprising a memory controller and a plurality of memory devices coupled to a common system bus.
- the memory controller is configured to issue memory program instructions, memory read instructions, memory erase instructions together with control parameters over the system bus to the memory devices.
- Each of the memory devices includes an array of non-volatile memory cells having control gate connected to common word lines, drains connected to common bit lines and sources connected to at least one source line.
- the memory devices each further include a memory operation manager configured to receive the control parameters over the system bus and to transfer the control parameters to a plurality of volatile control registers.
- the operation manager is further configured to carry out the memory operations by applying operation voltages to the word, bit and source lines of the array, with at least one of the operation voltages being controlled by the control parameters.
- the control parameters originating from the memory controller to determine the magnitude and duration that the voltages are applied to the array. This feature permits, among other things, the memory operations to be controlled by the external memory controller so that the memory operations can be optimized. Further, the amount of control circuitry contained in each of the memory devices is minimized so as to reduce the manufacturing costs of the memory devices.
- FIG. 1 is a simplified block diagram of a prior art memory system using radial selection techniques.
- FIG. 2 is a simplified block diagram of a prior art memory system using a serial selection technique.
- FIG. 3A is a simplified block diagram of a memory system in accordance with the present invention showing multiple memory devices and a common controller.
- FIG. 3B is a simplified block diagram of a memory system in accordance with another embodiment of the present invention showing multiple memory devices arranged in banks.
- FIG. 4 is a block diagram of the interface circuitry used in the memory devices of the FIG. 3A and 3B memory systems.
- FIG. 5 is a schematic diagram showing details of the interface circuitry of FIG. 4 .
- FIG. 6 is a truth table relating to the select logic of the FIG. 4 and 5 diagrams.
- FIG. 7 is a truth table relating to the command decoder circuitry of the FIG. 4 and 5 diagrams.
- FIG. 8A is a timing diagram showing the relationship for the signals on the Tag Bus, Data Bus and the Strobe signal on the FIG. 3A and 3B block diagrams illustrating the manner in which addresses are assigned to two of the memory devices.
- FIG. 8B is a timing diagram showing the relationship for the signals on the Tag Bus, Data Bus and the Strobe signal on the FIG. 3A and 3B block diagrams illustrating the manner in which the memory devices are selected and deselected.
- FIG. 9 is block diagram showing the organization of the memory flash cell array for each of the FIG. 3 A and FIG. 3B Memory Devices 38 .
- FIG. 10 is a more detailed diagram of the Command Decoder Logic block and of the Register block of the FIG. 4 interface circuitry.
- FIG. 11 is a truth table for the Command Decoder Logic block of the FIG. 4 interface circuitry.
- FIGS. 12A-12N are diagrams representing exemplary interface registers used in carrying out various memory operations.
- FIG. 13 is a flow chart illustrating the sequence for assigning addresses to the memory devices.
- FIG. 14 is a flow chart depicting the sequence for selecting one of the memory devices.
- FIG. 15 is a flow chart depicting the sequence for deselecting one of the memory devices.
- FIG. 16 is a flow chart illustrating the manner in which an exemplary memory read operation is carried out.
- FIG. 17 is a schematic diagram of the sense amplifier and associated circuitry of the individual Memory Devices 38 of FIGS. 3A and 3B.
- FIGS. 18A and 18B are a flow chart illustrating an exemplary Program Operation for the FIG. 3A and 3B memory systems.
- FIG. 19 is a schematic diagram showing additional details of the Program Latch of FIG. 16 .
- FIGS. 20A and 20B are a flow chart illustrating an exemplary Erase Operation for the FIG. 3A and 3B memory systems.
- FIG. 21 is a schematic diagram of one of the control registers used to control operation of the memory device together with associated decoder circuitry.
- FIG. 22 is a schematic diagram of the Byte Address Counter and associated circuitry.
- FIG. 23 is a schematic diagram of the Packet Address Counter and associated circuitry.
- FIGS. 24A and 24B are block diagrams of the charge pump circuits used to provide the various voltages used in carrying out memory read, program, erase and other operations.
- FIG. 25 is a timing diagram illustrating the operation the Memory Device responding to a read command.
- FIG. 26 is a schematic diagram of the Program Data Registers which hold the data to be programmed into the memory and the associated decoder circuitry.
- FIG. 3A is a simplified block diagram of an embodiment of a memory system in accordance with the present invention.
- the exemplary memory system to be described is a mass storage memory system used to emulate the operation of a hard disc drive. It should be noted, however, that the subject invention is suitable for use in a large variety of other applications.
- the memory system includes a Controller 36 and a plurality of memory devices 38 A, 38 B and 38 C.
- the Controller 36 can be implemented using a wide variety of techniques including ASIC (Application Specific Integrated Circuit) technology.
- ASIC Application Specific Integrated Circuit
- the Controller 36 is best understood by describing its functionality, with the particular implementation forming no part of the present invention. Since the Controller can be readily constructed by persons of ordinary skill in the art based upon the following functional description, details regarding a particular implementation will not be provided so as to avoid obscuring the true nature of the present invention in unnecessary detail.
- the memory devices 38 A, 38 B and 38 C are preferably separate integrated circuits utilizing non-volatile memory technology.
- the exemplary embodiment will be described using flash memory technology, that being the preferred memory technology.
- Each Memory Device 38 A, 38 B, and 38 C is capable of storing a substantial amount of data such as forty Megabits. Several memory devices can be added to the memory system to increase the storage capacity.
- Controller 36 communicates with the memory devices 38 A, 38 B and 38 C by way of a Tag Bus 40 , a Data Bus 42 , a Strobe Line 44 and a series of Select Lines 46 A, 46 B and 46 C.
- the Tag Bus 40 functions to transfer commands originating from Controller 36 to one or all of the Memory Devices 38 .
- the Data Bus 42 functions to transfer memory data between the Controller 36 and the Memory Devices 38 and to transfer control information to the Memory Devices 38 which, together with commands on the Tag Bus 40 , is used to perform several memory functions.
- the Tag Bus 40 is five bits wide and the Data Bus 42 is eight bits wide.
- the Strobe Line 44 generally functions to provide a strobe signal originating with the Controller 36 to the Memory Devices 38 so that the Devices can strobe (clock) data present on the Tag Bus 40 and Data Bus 42 .
- the Strobe Signal acts as a master clock which allows data on the two buses to be transferred only when action is to be taken. This approach is preferred over the use of a free running clock interface which tends to consume power and generate noise. As will become apparent, this set of interface lines allows all memory functions to be carried out, with the interface lines being the same regardless of the number of Memory Devices 38 being used.
- the Memory Devices 38 are assigned unique addresses by Controller 36 each time the memory system is powered up or after the system has been reset. This must occur before the memory system is operational as a memory. However, as will be explained in greater detail, it is possible to access and use the Memory Device 38 A, connected directly to Controller 36 by Select Line 46 A, without having assigned addresses for any of the Memory Devices 38 .
- the address assignments occur serially, with the Memory Device 38 A, being assigned the first address, such as address 0001. This address is stored in Device 38 A and will be used to decode addresses present on the Data Bus 42 during normal memory operations. Once Device 38 A has been assigned an address, the next device, Device 38 B is assigned an address, such as address 00010.
- Controller 36 is capable of communicating with all or a selected one of the Memory Devices so that normal memory operations can take place such as memory reading and writing.
- the circuitry for carrying out the sequence for assigning addresses to the Memory Devices 38 will now be described.
- FIG. 4 is a simplified diagram of the interface circuitry present in each of the Memory Devices 38 .
- Device 38 A connected to Select line 46 A coming directly from Controller 36 is depicted, this being the first Memory Device 38 to be assigned an address, the interface circuitry is identical for all of the Devices 38 .
- the Tag Bus 40 is connected to the Memory Device by way of five integrated circuit pads (not depicted) which are electrically connected to five separate Input Buffers represented by block 48 .
- the Input Buffers can be enabled or disabled by a combination of Input Enable (IEN) and Out/In (O/I) signals generated within the Device 38 depending upon various conditions to be described.
- IEN Input Enable
- O/I Out/In
- An Input Buffer 50 is also provided for receiving the Strobe Line 44 by way of an integrated circuit pad (not depicted), with Buffer 50 also being controlled by the internal Input Enable and Out/In signals.
- a further Input Buffer 51 is provided for receiving the Select signal on line 46 A. Buffer 51 is permanently enabled.
- the Data Bus 42 is connected to an I/O Buffer & DL Pass Logic block 52 which represents eight separate bi-directional buffer circuits connected to separate ones of the lines of the Data Bus 42 .
- Block 52 further represents bypass circuitry which can be used to bypass the buffer circuits so that the bit lines of the memory array can be accessed directly for testing purposes.
- Block 52 is controlled by a combination of signal Input Enable (IEN) and Out/In (O/I).
- IEN Input Enable
- O/I Out/In
- the Memory Devices 38 will be outputting data when a Tag 19H is present on the Tag Bus 40 thereby indicating that data is to be read out of the Device. That data will be provided on DL bus 55 containing data read from the memory array.
- a Tag 1 A is on the Tag Bus 40
- the contents of a Control Register are to be read out of the Device. That data will be provided by way of Register Data bus 59 .
- signal Out/In (O/I) is active when either Tag 19 or Tag 1 A are present.
- Buffer 52 When Out/In is active and signal Input Enable (IEN) is active, Buffer 52 functions to output data from the Device (either memory data or control register data) to the Data Bus 42 . When Out/In is inactive and signal Input Enable (IEN) is active, Buffer 52 functions to transfer data on the Data Bus 42 to Input Data bus 54 of the Memory Device 38 . When signal Input Enable (IEN) is inactive, Buffer 52 is disabled and does not transfer data in either direction. Input buffers 48 and 50 are enabled when signal Input Enable (IEN) is active.
- DL Bus 55 functions to forward data to be programmed to the memory array.
- data read from the memory array is placed in the DL Bus 55 and forwarded to the I/O Buffers & DL Pass Logic block 52 by way of Output Multiplexer 57 .
- Multiplexer 57 also receives data from the various registers in Register Block 66 by way of a Register Data bus 59 so that the contents of these registers can be read out.
- Multiplexer 57 is controlled so as to select either the data on the DL Bus 55 or Register bus 59 .
- the data placed on Data Bus 42 by Controller 36 and received by the I/O Buffer and DL Pass Logic block 52 is used in a wide variety of memory operations. Those include memory read, program and erase operations.
- the data received on Data Bus 42 is also used in conjunction with various commands present on the Tag Bus 40 for performing various memory operations, including the initial assignment of addresses to each of the Memory Devices 38 .
- the circuitry associated with decoding commands on the Tag Bus 40 and associated data from the Data Bus 42 on lines 58 is represented by Command Decode Logic block 62 .
- Select Logic block 64 provides a large number of control signals to be subsequently described, including signal Sel Out 0 on line 46 B, by way of a buffer 68 . As noted in connection with FIG. 3A, the signal Sel Out are generated by each of the Memory Devices 38 and forwarded to the adjacent Memory Device 38 during the initial sequence of assigning addresses. In addition, the Select Logic block 64 generates signal Input Enable (IEN) used by Input Buffers 48 and 50 .
- IEN Input Enable
- Register Block 66 provides the addresses used by the memory in read and programming operations.
- Register Block 66 is used to control the various voltages used in memory operations, as will be explained in greater detail.
- FIG. 5 is a more detailed diagram of the select logic circuitry from the interface diagram of FIG. 4 used for, among other things, the initial selection of Memory Device 38 addresses.
- FIG. 6 is a Select Logic Table, a form of truth table, which depicts the various inputs to the FIG. 5 circuitry and the corresponding state of various latches or flip-flops.
- the Tag Bus column of the Select Logic Table shows certain selected Tag Bus 40 inputs that relate to the operation of the select logic circuitry.
- the Tag Bus inputs comprise five bits that are shown using Hexadecimal notation.
- the next column shows the state of the eight bits that are present on the Data Bus 42 , namely bits D 0 -D 7 .
- the next column of the Select Logic table shows the output ⁇ overscore (L) ⁇ ow ⁇ overscore (V) ⁇ cc produced by a Power On Reset circuit 70 .
- Signal ⁇ overscore (L) ⁇ ow ⁇ overscore (V) ⁇ cc is at a low (“0”) state when the primary memory supply voltage Vcc is below a predetermined operating level and is momentarily low when the primary supply Vcc is first turned on.
- the next column is signal Lock Out (LOUT) which is stored in a latch represented by JK flip-flop 72 . As will be explained, signal Lock Out is used for many memory functions including the prevention of the alteration of the Memory Device 38 address stored in an Address ID Latch 78 once an address has been assigned.
- Flip-flop 72 can be said to be in a lockout state when signal Lock Out is active and in a non-lockout state when the signal is inactive.
- signal Dev Sel which is stored in a latch represented by JK flip-flop 74 , functions to permit the associated Memory Device 38 to respond to memory read and write commands originating from the Controller 36 .
- the flip-flop 74 is said to be in a device-selected state and when the signal is inactive, flip-flop 74 is said to be in a device-not-selected state.
- the next column of the Select Logic table shows signal Sleep (or SLP) produced by flip-flop 71 .
- signal Sleep or SLP
- the Memory Device is in a low power state with essentially all circuitry, including the control registers that make up Register Block 66 (FIG. 4 ), being in a reset state except for the Address ID Latch 78 . Since Latch 78 is not reset, it is possible to switch the Memory Device from this sleep mode to an operational mode without the necessity of reassigning addresses.
- the Memory Device 38 is in a reset state when Lock Out latch 72 , Device Select latch 74 , Sleep latch 71 and Address ID latch 78 are reset.
- the various control registers which make up Register Block 66 are reset.
- the reset state is similar to the sleep state except that the Address ID latch 78 is reset so that the Memory Device must go through an initial address assignment after entry into the reset state if the memory is to be used in the serial selection configuration.
- the Memory Device can be caused to enter the reset state in various ways.
- the Power On Reset circuit 70 will issue signal ⁇ overscore (L) ⁇ ow ⁇ overscore (V) ⁇ cc (“0”) thereby causing the appropriate circuitry to be reset.
- Other techniques to cause entry into the reset state such as the use of Tag Commands, will be described later.
- the Memory Devices 38 are switchable between a device-enabled state and a device-disabled state.
- the Memory Device 38 When in the device-enabled state, the Memory Device 38 is capable of carrying out memory operations, such as memory read, erase and program operations.
- Memory Device 38 is in the device-enabled state under two conditions: (1) signal Sel In is active and signal Lock Out is inactive, that is, flip-flop 72 is the non-lockout state and (2) signal Dev Sel is active, that is, flip-flop 74 is in the device-enabled state and signal Lock Out is active, that is, flip-flop 72 is in the lockout state and signal SLP is inactive, that is, flip-flop 71 is in a non-sleep state.
- Condition (1) permits the Memory Device 38 to become operative at power on, when flip-flop 72 is reset, by simply making signal Sel In active. There is no need, for example, to provide the Memory Device with a local address stored in the Address ID Latch 78 . Since Sel In is connected to an external pin, it is possible to fully test a large number of the Memory Devices with a simple test fixture. Further, condition (1) operation makes it possible to configure the Memory Devices 38 in a radial manner such as depicted in FIG. 1 in addition to the serial selection configuration of FIG. 3 A. There is no need to make an initial address assignment.
- Condition 2 is entered, as will be explained, once a local address has been loaded into the Address ID Latch and the Memory Device has been addressed by the Memory Controller 36 by placement of the local address on the Data Bus.
- condition (2) is used primarily for normal operations, as opposed to testing operations.
- Signal Match is generated by a comparator circuit 76 which compares seven bits of address stored in an Address ID Latch 78 with seven bits of address coming from the Input Buffer 52 A connected to Data Bus (D 0 -D 6 ).
- Input Buffer 52 A of FIG. 5 is part of the I/O Buffer and DL Pass Logic 52 of FIG. 4 with 52 A representing only the data input function of Buffer 52 .
- Buffer 52 ( 52 A) will function to input data only if signal Out/In is inactive (not [Tag 19 or Tag 1 A]) and signal Input Enable (IEN) is active.
- signal Out/In is active or signal Input Enable (IEN) is inactive
- circuit 52 is disabled with respect to incoming signals on Data Bus 42 .
- signal Out/In is active and signal IEN active, circuit 52 is enabled to input signals on the Data Bus.
- the Address ID Latch 78 stores the unique address assigned by the Controller 36 to the associated Memory Device 38 . This address is sometimes referred to as a local address.
- FIG. 7 is an Enable & Select Out Logic truth table having input signals ⁇ overscore (L) ⁇ ow ⁇ overscore (V) ⁇ cc ( ⁇ overscore (LVCC) ⁇ ), Lock Out (LOUT), Dev Sel (DSEL) and Sleep (SLP) previously noted in connection with FIG. 6 .
- the outputs include the previously noted signal Input Enable (IEN) which is produced by OR gate 80 of the FIG. 5 circuit diagram.
- Signal Input Enable functions, among other things, to enable the Input Buffers 48 and 50 so that signal Strobe can be received and so that the contents of the Tag bus 40 can be received.
- Buffer 52 A (FIG. 5) associated with the Data Bus will also be enabled provided that signal Out/In is inactive (not [Tag 19 or Tag 1 A]), the Strobe Input and the Data Bus, respectively.
- signal Sel Out is outputted by buffer 68 once the subject Memory Device 38 has completed the initial assignment of addresses. As will be explained, this permits the adjacent Memory Device 38 connected to receive signal Sel Out to be assigned an initial address.
- Signal Decoder Enable (DEN) is produced by logic gate 82 and functions, among other things, to enable a Local Tag Decoder 84 which is used to decode data on the Tag Bus when the subject Memory Device 38 is being addressed for memory read and program operations.
- FIG. 13 is a flow chart showing the address assignment sequence.
- FIG. 8A is a timing diagram illustrating a portion of the sequence for the first two Memory Devices 38 A and 38 B.
- the Power On Reset circuit 70 will cause various elements of the interface circuitry to be initialized, as previously described.
- Signal ⁇ overscore (L) ⁇ ow ⁇ overscore (V) ⁇ cc which is inverted by an inverter 85 , will be at a low level so that the Address ID Latch 78 for all of the Memory Devices 38 will be cleared by way of NOR gate 86 , inverter 83 and NOR gate 99 .
- NOR gate 86 will clear the latch 74 associated with signal Dev Sel and latch 72 associated with signal Lock Out. This is confirmed by the FIG.
- the system be reset using a dedicated reset command. This step, which will be described in greater detail, ensures that the logic circuitry is in the desired initialized state at the beginning of the sequence.
- Controller 36 will continue with the local address assignment sequence, it should be noted that the Memory Device 38 A is now capable of carrying out memory operations, including memory read, program and erase operations.
- This important feature permits the Memory Devices 38 to be connected radially as shown in FIG. 1 and without the necessity of assigning addresses to any of the Devices.
- testing of the Memory Devices 38 is also facilitated by this feature since a large number of Devices 38 can be easily placed in the device-enabled state by simply making the Sel In pin of all of the Devices active.
- this feature permits first Memory Device 38 A connected directly to the Select In 0 signal generated by Controller 36 to be used as a boot memory which contains the code to be used by Controller 36 .
- Such boot memory may be used for, among other things, carrying out the remainder of the address assignment sequence.
- the Memory Devices into a plurality of banks as shown in FIG. 3B, with each bank having a first Memory Device 38 A, 38 AA and 38 AB connected to a separate Sel In line provided by a Controller 36 A.
- Controller 36 then places a seven bit address on Data Bus 42 which will be the address (local address) used by the Controller in the future to access Memory Device 38 A.
- the first Memory Device 38 A address is 00H, as can be seen in the timing diagram of FIG. 8 A.
- the Controller will also place a unique set of five bits of data on the Tag Bus 40 , such data being referred as the ID Select Tag.
- the ID Select Tag is 08H.
- element 160 of the FIG. 13 timing diagram indicates that Controller 36 generates a Strobe pulse on line 44 connected to all of the Memory Devices.
- the timing relationship between the data in the Data Bus and Tag Bus and the Strobe signal is depicted in the FIG. 8A timing diagram.
- Only Memory Device 38 A is capable of responding to the Tag Bus, Data Bus and Strobe signal since only Memory Device 38 A has an active signal Input Enable.
- the seven bits of address data on the Data Bus are loaded into the Address ID Latch 78 (FIG. 5) in parallel. This is accomplished by clocking the Latch 78 with the Strobe signal by way of AND gate 90 which is enabled by the output of an AND gate 96 to be described.
- the ID Select Tag on the Tag Bus, Tag 08H is presented to a Global Tag Decoder 92 which is also clocked by signal Strobe.
- Global Tag Decoder 92 is implemented to decode certain Memory Device select commands including the Tag 08H.
- the function performed by some of the commands is modified by data present on the Data Bus, with such data being coupled to the Global Tag Decoder 92 as can be seen by the connection between Input Buffer 52 A of FIG. 5 .
- Some of these modifier bits can be seen in the FIG. 6 table.
- Tag 08H data on the data bus does not operate to modify the function performed by the tag. Rather, the data on the bus represents the address to be assigned to the Memory Device 38 , as previously noted.
- the Global Tag Decoder 92 decodes the Tag 08H and provides an output on line 94 indicating the ID Select Tag (Tag 08H) has been detected on the Tag Bus 40 .
- a Local Tag Decoder 84 is also provided which is used to decode the other commands associated with memory read and program operations. Unlike the Global Tag Decoder 92 , the Local Tag Decoder 84 is disabled until signal Decoder Enable is active.
- the Tag 08H decode on line 94 is connected to one input of AND gate 96 having an output connected to the J input of Lock Out latch 72 .
- the second input of AND gate 96 receives signal ⁇ overscore (LOUT) ⁇ which is active (“1”) at this point.
- LOUT Lock Out
- Tag 08H functions to set the Lock Out Latch (flip-flop 72 ) so that signal Lock Out (LOUT) goes active. This occurs on the falling edge of the Strobe signal generated in conjunction with Tag 08H.
- the output of AND gate 96 is further connected to AND gate 90 so that the Strobe signal will further function to clock the Address ID Latch 78 so that the address on the Data Bus will be loaded into Latch 78 .
- the active signal Lock Out will enable AND gate 98 so that the signal Sel Out 0 on line 46 B will go active (FIG. 8 A).
- Sel Out 0 is forwarded to adjacent Memory Device 38 B and functions as the Sel In signal for that device.
- a determination is then made as to whether all of the Memory Devices 38 in the system have been assigned an address. This is accomplished by monitoring the state of signal Sel Out N on line 46 D (FIG. 3 A). At this stage of the sequence, signal Sel Out N will be inactive thereby indicating that the last Memory Device 38 C has not yet been assigned an address.
- the assignment sequence will then proceed to element 164 (FIG. 8A) which indicates that Controller 36 will generate a new local address for the next Memory Device 38 B.
- the address is 01 H.
- the sequence will then return to element 158 (FIG. 13 ).
- the local address is placed on the Data Bus 42 and Tag 08H is placed on the Tag Bus 40 .
- Memory Device 38 A will not respond, as previously described, because signal Lock Out will be active thereby disabling AND gate 90 so that the Address ID Latch 78 will not be clocked by signal Strobe.
- the other Memory Devices 38 C will not have an active signal Sel In so that the Input Buffers 48 , 50 and 52 A will be disabled.
- local address 01H will be loaded into Address ID Latch 78 of Device 38 B in the same manner as previously described in connection with Memory Device 38 A. As can be seen in the FIG. 8A timing diagram, this is accomplished by placing Tag 08H on the Tag Bus 40 and the next address to be assigned, address 01H, on the Data Bus 42 . This sequence will continue until all of the Memory Devices have been assigned a unique local address which is stored in the Address ID Latch 78 associated with the Memory Device 38 . Once the last Memory Device, represented by Device 38 C has been assigned an address, Controller 36 will sense signal Sel Out N on line 46 D going active thereby ending the assignment sequence. Controller 36 will then end the sequence by causing signal Sel In 0 to go inactive (element 166 of FIG. 13 ).
- the memory system is ready to be accessed in a serial select methodology.
- a serial select sequence is carried out to enable to particular Memory Device to respond to a series of interface commands. It is no longer possible to access the Memory Devices by way of the Sel In signals due to the active Lock Out condition of all of the Devices.
- One of the Memory Devices 38 is selected will be described in connection with the FIG. 14 flow chart and the timing diagram of FIG. 8 B. It should be noted that multiple Memory Devices 38 can be selected. In that event, the same memory operation will be performed on each selected Memory Device. It should be further noted that once a Memory Device has been selected, the Device will remain selected until the Device is deselected or until the Device is reset, either at power on or by a reset Tag command to be described.
- Controller 36 will cause the Sel In 0 signal on line 46 A to go active as represented by element 168 of the FIG. 14 flow chart. This signal will propagate through all of the Memory Devices 38 of the system since signal Lock Out is active in all of the Devices. As indicated by element 170 , Controller 36 will enter a wait state in order to permit the signal to propagate through the system. An active Sel In signal at each of the Memory Devices 38 will cause signal Input Enable produced by gate 80 to go active so that all of the Input Buffers 48 , 50 and 52 in all of the Memory Devices 38 will be enabled.
- Controller 36 will then, as indicated by element 172 of the FIG. 14 flow chart, place the address of the Memory Device 38 with which the Controller is to communicate on the Data Bus 42 .
- Controller 36 will place Tag 02H on the Tag Bus 40 .
- Tag 02H performs two functions, one of which is to perform a select function by causing signal Dev Sel (DSEL) to be active and the other of which is to perform a deselect function by causing signal Dev Sel (DSEL) to become inactive.
- the particular function performed is defined by a modifier bit placed, D 7 , on the Data Bus 42 as shown in the second column of the FIG. 6 table. Since the select function is to be performed, D 7 is set to “1”.
- the address of the Memory Device 38 to be selected comprises seven bits D 0 -D 6 .
- the bits represent the local address of the Memory Device stored in the Address ID Latch 78 (FIG. 5 ).
- the value 80H is placed on the Data Bus, as indicated by the FIG. 8B timing diagram together with Tag 02H on the Tag Bus 40 .
- Controller 36 will also produce a Strobe signal when the appropriate data are present on the Data and Tag buses, as indicated by element 174 .
- the address on the Data Bus 38 will be received by all of the Memory Devices 38 of the system. The address on the Data Bus will then be compared with the local address stored in the Address ID Latch 78 by way of Comparator 76 . Only one of the Memory Devices 38 , Device 38 A, should have a stored local address 00H which compares with the address on the Data Bus. The Comparator 76 of the Memory Device 38 A will then generate an active signal Match.
- Global Tag Decoder 92 for each of the Memory Devices 38 will detect the presence of Tag 02H on the Tag Bus together with the modifier bit D 7 on the Data Bus. This combination will cause one of the outputs of Decoder 92 on line 93 of each Memory Device 38 to go active.
- the Decoder 92 output, together with signals Match, ⁇ overscore (SLP) ⁇ and signal Lock Out, are connected to respective inputs of four input AND gate 100 . Signals ⁇ overscore (SLP) ⁇ and Lockout will typically be active for all of the Devices. However, since signal Match is active only for Memory Device 38 A, only gate 100 of Device 38 A will cause the J input of Device Select flip-flop 74 of Memory Device 38 A to be high.
- the falling edge of the Strobe Signal will then cause the Device Select flip-flop 74 of Device 38 A to be set, thereby causing Device 38 A to be selected.
- Device 38 A is then in the device-enabled state and will remain in that state until changed by one of the sequences to be subsequently described. This state is depicted in the fifth row of the FIG. 7 table.
- the active signal Device Sel will cause signal Decoder Enable at the output of gate 82 of selected Device 38 A to be active.
- the Local Tag Decoder 84 of Device 38 A, and only Device 38 A, is enabled.
- Local Tag Decoder 84 functions to decode signals on the Tag Bus for carrying out memory operation, including Read, Program and Erase operations.
- Controller 36 will cause signal Sel In 0 on line 46 A to go low or inactive as indicated by element 176 of FIG. 14 .
- This step which is optional, will cause the input buffers for all of the Memory Devices 38 other than Device 38 A to be disabled.
- the deselected Memory Devices 38 will thus not respond to data present on the Data and Tag buses thereby preventing circuitry on the deselected devices from toggling in response to the inputs so as to minimize power consumption.
- Memory Device 38 it is possible to select more than one Memory Device 38 of the system. This is accomplished by repeating the above-described sequence for each Device to be selected, using the address of the target Device in each sequence. Each selected Memory Device 38 will then respond to memory commands, such as write commands, erase commands and read commands in the same manner so that multiple operations will be performed simultaneously on the selected Devices.
- FIG. 8A further illustrates the manner in which a selected Memory Device 38 can be deselected using Tag 02H.
- FIG. 15 is a flow chart illustrating the sequence for deselecting a Memory Device 38 . As indicated by the last row of the table of FIG. 6, Tag 02H with modifier D 7 set to “0” will cause a device to be deselected. Thus, assuming that Device 38 A is to be deselected, Tag 02H will be placed on the Tag Bus and 00H will be placed on the Data Bus.
- Controller 36 first causes signal Sel In 0 to go active in the event it was not already active. This will propagate to each of the Memory Devices 38 , with Controller 36 waiting a predetermined amount of time as indicated by element 180 of the flow chart. This will cause signal Input Enable (IEN) of the Memory Devices 38 to go active. Note that this step can be skipped since signal Input Enable (IEN) will usually be active on all Devices that are in a selected state by virtue of gate 106 . Controller 36 will then place Tag 02H on the Tag Bus and 00H on the Data Bus as shown in the FIG. 8A timing diagram and as indicated by element 182 of the FIG. 15 flow chart.
- IEN Input Enable
- Comparator 76 of Memory Device 38 A will then generate signal Match.
- Global Tag Decoder 92 will detect the presence of Tag 02H on the Tag Bus and will also detect that D 7 on the Data Bus is set to a “0” and thereby produce an active signal on line 91 .
- Controller 36 will then issue a Strobe signal thereby clocking flip-flop 74 on the falling edge so that signal Dev Sel becomes inactive thereby causing Device 38 A to be deselected.
- signal Lock Out is still active so that, among other things, the Address ID Latch 78 containing the assigned address for the Memory Device 38 A cannot be altered.
- the Memory Devices 38 are all set to a reset state by the Power On Reset circuit 70 which generates signal ⁇ overscore (L) ⁇ ow ⁇ overscore (V) ⁇ cc.
- the Power On Reset circuit 70 which generates signal ⁇ overscore (L) ⁇ ow ⁇ overscore (V) ⁇ cc.
- Lock Out flip-flop 72 When the Device 38 is in the reset state, Lock Out flip-flop 72 , Dev Sel flip-flop 74 , Sleep flip-flop 71 of all of the Memory Devices 38 are reset by the output of NOR gate 86 so that the corresponding signals are inactive.
- the Address ID Latches 78 are all reset to zeros by signal ⁇ overscore (L) ⁇ ow ⁇ overscore (V) ⁇ cc by way of NOR gate 86 , inverter 83 and NOR gate 99 .
- Signal Input Enable (IEN) is inactive so that the Input Buffers 48 , 50 and 52 A are in a low power, disabled state.
- the Control Registers are all reset in this mode thereby causing the memory circuitry associated with each Register to assume a disabled state so as to consume no power, as previously noted.
- Tag commands can also be used to reset the Memory Devices 38 .
- a Global Reset command, Tag 01H with modifier bit D 0 set to “1” will reset all Memory Devices 38 irrespective of whether the Device is in a selected state (Dev Sel active). This command is depicted in the first row of the FIG. 6 table.
- the Global Reset command is detected by the Global Tag Decoder 92 of a Memory Device, the signal on line 87 out of Decoder 92 becomes active. This signal is connected to one input of AND gate 103 , with the second input being connected to receive signal Strobe (buffered).
- signal Strobe (buffered).
- Row 2 of the FIG. 6 depicts a Local Reset Command which resets only those Memory Devices where Dev Sel is active.
- the Global Tag Decoder 92 receives signal Dev Sel from flip-flop 74 .
- Dev Sel flip-flop 74 will go high when the Tag Decoder output on line 95 is active by virtue of the connection of line 95 to an input of an OR gate 102 and the connection between the output of OR gate 102 to an input of OR gate 112 .
- signal Strobe (buffered) changes state to active high
- Dev Sel flip-flop 74 will be reset so that signal Dev Sel goes inactive.
- the active signal on line 95 of the Global Tag Decoder 92 is active, the K input of the Sleep flip-flop 71 will be high since the output of OR gate 102 is connected to one input of OR gate 104 .
- signal Strobe (buffered) changes state to active high, Sleep flip-flop 71 will be reset so that signal Sleep (SLP) goes inactive.
- OR gate 102 is connected to the K input of Lock Out flip-flop 72 .
- Flip-flop 71 will therefore be reset when signal Strobe (buffered) changes state thereby making signal Lock Out (LOUT) go inactive.
- the output of OR gate 102 is also connected to one input of AND gate 101 , with the second input of gate 101 receiving signal Strobe (buffered).
- the output of gate 101 is connected to the reset input of Address ID Latch 78 so that Latch 78 will be cleared of any local address.
- the Control Registers are reset when in the Sleep mode and other reset modes, the register contents are all zeros.
- the CMOS memory control circuits controlled by these registers are implemented so that they will entered a disabled state under these conditions so that they will consume essentially no power.
- the Global Tag Decoder 92 output on line 107 will go active.
- Line 107 is connected to one input of OR gate 105 so that the Sleep flip-flop 71 will be set when signal Strobe (buffered) changes state to active high.
- ⁇ overscore (SLP) ⁇ is a “0”
- AND gate 106 is disabled to that signal Input Enable can be made active only by way of the Sel In signal.
- signal ⁇ overscore (SLP) ⁇ will disable AND gates 100 and 110 so that an active signal Match cannot be used to change the state of the Dev Sel flip-flop 74 .
- Line 109 is connected to one of the inputs of NOR gate 105 so that the K input of the Sleep flip-flop 71 will be high.
- FIG. 3A memory system is organized in a serial select configuration.
- FIG. 3B is a block diagram of a memory system arranged in a combination serial and radial select configuration. Three banks of Memory Devices 38 are shown, with each bank having N number of Devices. Although not shown in FIG. 3B, each Memory Device 38 of the system is connected to common Tag Bus 40 and Data Bus 42 and Strobe line 44 . Controller 36 A is configured to provide a separate signal Sel In to each of the banks of Memory Devices 38 . The number of banks of Memory Devices 38 can be increased by configuring Controller 36 A to produce additional independently controlled signal Sel In.
- Controller 36 A carries out the assignment sequence one bank at a time, starting for example, with the first bank connected to line 46 A carrying signal Sel In 0 .
- the signals Sel In connected to the remaining two banks are left inactive when addresses are assigned to the first bank.
- signal Sel In 0 is made inactive and signal Sel In 0 A is made active so that the second bank addresses can be assigned. This process is continued until all of the banks have been assigned addresses. Additional banks of Memory Devices 38 can be accommodated by configuring Controller 36 A to provide additional signals Sel In.
- the Controller 36 has the ability to perform various memory functions on the Memory Device 38 , including memory read and memory program operations.
- the device-enabled state is entered whenever both signals Input Enable, produced by gate 80 (FIG. 5 ), and Decoder Enable, produced by gate 82 , are active.
- the Command Decoder Logic block 62 (FIG. 4 ), which includes the Logic Tag Decoder 84 (FIG. 5) functions primarily to decode certain commands that are placed on the Tag Bus 40 by the Controller 36 .
- Controller 36 provides a very high degree of flexibility so that a wide variety of memory operations can be controlled by Controller 36 so as to, among other things, accommodate different types or versions of Memory Devices 38 . This is accomplished, in part, by utilizing Controller 36 to control the various detailed steps necessary to carry such memory operations as programming, reading and erasing.
- Controller 36 will be described, as previously noted, as a system which emulates the operation of a conventional hard disk drive, with the PCMCIA signals provided to Controller 36 (FIG. 3 A).
- FIG. 9 is a simplified diagram of the organization of an exemplary flash memory array for use on a single one of the Memory Devices 38 .
- the total capacity of the array is 40 Megabits.
- the array has a total of ten Main Blocks, each having a capacity of four Megabits, which are addressed using addresses A 22 -A 19 .
- Each four Megabit Main Block is made up of eight 512 k bit Erase Blocks which are addressed using addresses A 18 -A 16 .
- the Erase Blocks have separate common source line which permit the Erase Blocks to be separately erased.
- each Erase Block consists of 128 Sectors, with each Sector storing 4352 bits. The Sectors are addressed using addresses A 15 -A 9 .
- each Sector consists of 17 Packets, with the Packets being addressed by A 8 -A 5 , A x .
- Address A x is used to decode the 17th packet, with the 17th packet typically containing certain overhead bits such as error correction codes and the like.
- FIG. 10 is a more detailed diagram of the Command Decoder Logic block 62 and the Register block 64 of FIG. 4 .
- the various signals originating from the Command Decoder Logic block 62 that are provided to the various registers than make up the Register block 66 are briefly described in the following Table 1.
- FIG. 11 is a truth table for the Command Decoder Logic showing various selected inputs and selected Decoder Logic outputs.
- the inputs include data placed on the Tag Bus 40 and on the Data Bus 42 , signal Lock Out (latch 72 of FIG. 5 ), signal Sleep 10 (latch 71 of FIG. 5 ), signal Dev Sel (latch 74 of FIG. 5) and Decoder Enable (gate 82 of FIG. 5 ).
- the various registers represented by block 64 are used to carry out a broad array of memory operations.
- the number of such registers used depends upon the number of memory functions that are to be controlled, as will be explained. In a typical system, there may be up to and exceeding a dozen different registers, with each register being capable of storing eight bits of data. In order to maximize the flexibility of the system, it is possible to address each of the registers, to write to the registers and to read back the contents of the registers. In addition, there is the capability of clearing the registers either locally or globally, although some registers do not require this capability. There are some registers that are read only registers that can be used in test modes to read out internal signals.
- Tag Commands In order to carry out the four register operations (address, write, read and clear), there are four commands that are placed on the Tag Bus 40 . These commands are sometimes referred to herein as Tag Commands.
- a first Tag Command (0BH) is used to select a register, with the address of the register being placed on the Data Bus 42 .
- a second Tag Command (0CH) functions to write to a selected register, with the Data Bus 42 containing the data to be written into the register.
- a third Tag Command (1AH) is used to read the contents of a selected register.
- a fourth Tag Command (0FH) which was previously described in connection with the Select Logic circuitry, is used to clear all of the registers that are clearable when the associated modifier bits D 2 -D 7 are set to 001000.
- FIG. 10 there are several Tag Commands in addition to the four commands just described.
- a memory system in accordance with the present invention preferably utilizes an array of registers that are used to control memory functions.
- memory operations such as read operations are carried out by performing one or more individual sub-operations. It is desirable to maximize the number of memory functions that can be controlled by Controller 36 so as to provide as much flexibility as possible.
- FIG. 21 An exemplary Control Register 270 and some of the associated circuitry, including a Register Decoder 272 , is shown in FIG. 21.
- a typical Memory Device 38 may utilize ten or more such registers.
- Each of the registers has a unique five bit address, R 0 -R 4 , which is also sometimes referred to as the name of the register when expressed in Hexadecimal format.
- the registers must be accessed prior to performing operations on the registers. This is accomplished by the issuance of a Tag Command 0BH on the Tag Bus along with the address of the register on the Data Bus (Table 1).
- Tag Command 0BH causes the address R 0 -R 4 present on the Data Bus to be presented to the Register Decoder 272 . Only the Decoder 272 having the corresponding address will respond by becoming enabled.
- FIG. 12A is a diagram representing Register 00H, sometimes referred to as the ID Code register.
- Register 00H has an address 00H (00000000) which is used to select the register.
- Register 00H the ID Code Register, contains eight bits which identify the memory type which can be read out by the user. Register 00H is hard wired and thus cannot be modified.
- Register 01H is the Block Address Register (FIG. 12B) which holds the seven most significant bits of the address (A 22 to A 16 ) to be used in connection with a Memory Device 38 during memory read, program and erase operations.
- the addresses stored in Register 01H are used to address separate ones of the Erase Blocks.
- the Sector Address Register, Register 02H (FIG. 12 C) contains the intermediate addresses (A 15 to A 9 ) to be used in connection with a Memory Device 38 . These addresses identify one of the Sectors of the memory array.
- Register 03H, the Packet Address Register (FIG. 12 D) contains further intermediate addresses (A 8 to A 5 and A x ) which identify one of the Packets of the array.
- Register 04H the Byte Address Register (FIG. 12 E) contains the least significant addresses (A 4 to A 0 ) which identify one of the bytes of the array.
- the four address registers can be accessed directly, without the use of Tag Command 0BH, by using special dedicated Tag Commands.
- dedicated Tag Commands 05H, 04H, 03H, and 09H can be used to load addresses into the Erase Block Register (01H), the Sector Address Register (02H), the Packet Address Register (03H) and the Byte Address Register (04H), respectively, without the necessity of first selecting the address registers.
- the Packet Address Register (FIG. 12D) is designed so that an address loaded into the register can be sequentially incremented so that group of Packets can be sequentially addressed. Controller 36 need only provide an initial address, if the initial address is other than zero.
- the Packet Address Register includes a Bit 7 that enables and disables an increment function, with a “1” enabling the function. When the increment function is enabled, the Packet Address is incremented under circumstances to be described.
- the Packet Address Register can also be incremented independent of the state of Bit 7 using Tag Command 07H as shown in the table of FIG. 11 . As noted in Table 1, when Tag Command 07H is decoded by Local Tag Decoder 84 , the Command Decoder Logic 62 (FIG. 10) will issue signal Packet Address Increment (PAI) which will cause the packet address in the Packet Address Register to increment, provided the increment function is enabled as indicated by Bit 7 of the Packet Address Register.
- PAI Packet Address Increment
- the Byte Address Register (FIG. 12E) is also capable of being incremented using Tag Command 09H depending upon the state of Bit 7 of the Byte Address Register. As can be seen in the table of FIG. 11, this increment function is controlled by the state of modifier bit D 7 on the Data Bus when Tag 09H is issued. When the increment function is enabled, issuance of Tag Command 0DH (FIG. 11) will cause the Command Decode Logic 62 to generate signal Byte Address Increment (BAI) which will increment the address in the Byte Address Register.
- BAI Byte Address Increment
- FIG. 22 is a simplified diagram of the circuitry used for carrying out the Byte address increment function previously noted. Controller 36 will issue Tag Command 09H used for loading the Byte Address and for controlling the increment function. As can be seen from the table of FIG. 11, Controller 36 will also place bits D 4 -D 0 on the Data Bus 42 which represent memory addresses A 4 to A 0 together with bit D 7 set to control the byte increment function. Data bits D 5 -D 6 are don't cares.
- the FIG. 12E Byte Address Register is implemented in the form of a flip-flop 282 and a five bit ripple counter 280 .
- the output of flip-flop 282 is represented by Bit 7 of the Byte Address Counter and the five bit output of counter 280 is represented by Bits 1 - 5 of the Byte Address counter 280 .
- the Byte Address Register (flip-flop 282 and counter 280 ) does not need to be selected by Tag Command 0BH in order to be loaded.
- Tag Command 09H is used to load a five bit Byte Address into counter 280 and is used to control the enable function of the Byte Address Counter.
- the address bits and enable bit is placed on the Data Bus together with the Tag Command 09H.
- Bits D 4 -D 0 from the Data Bus are provided to the inputs of the five bit ripple counter 280 (FIG. 22 ), with the output of counter 280 (Byte Address Counter) being addresses A 0 -A 4 which define a Byte to be read out of the memory.
- An AND gate 281 is provided which will generate a signal Byte Address Load (BA Load) when Tag 09H is detected along with signal Strobe.
- Counter 280 is transparent so that the Byte address D 4 -D 0 loaded into the counter will be used to read a single Byte if the increment function is disabled.
- Bit D 7 on the Data Bus is set to a “1” in the event the Byte increment function is to be enabled.
- This bit is connected to the D input of flip-flop 282 which is initially in a reset state so that the Q output of the flip-flop will be set when gate 281 generates BA Load.
- the Q output, signal Binc En is connected to an input of an AND gate 283 with the other inputs being connected to receive three outputs of Local Tag Decoder 84 (FIG. 5) by way of an OR gate 284 . Those outputs are Tag 0EH, 19H and 0AH.
- the output of gate 283 is, in turn, connected to one input of an OR gate 286 , with the other input connected to receive a further output of the Local Tag Decoder, Tag 0DH. Finally, the output of gate 286 is connected to an input of an AND gate 288 , with the remaining output of gate 288 receiving signal Strobe. The output of gate 288 generates signal BA Increment (BAI) which is connected to the increment input of counter 280 and will cause the counter to increment.
- BAI BA Increment
- Tag 0E causes signal Load Sense Amp Data (LSAD) to be generated so that data read out of the memory will be stored in the Sense Amplifier latches, as will be described.
- LSAD Load Sense Amp Data
- Tag 19H is used to read data and will operate to increment Byte Address Counter 280 when the increment function of the counter is enabled.
- Tag 0AH is used to load the data to be programmed, and will also cause the Byte Address Counter 280 to increment when the increment function is enabled.
- Tag 0DH is a special tag used exclusively to increment the Byte address counter 280 .
- Signal CLRADD is a reset signal used to reset the various components that make up the Byte Address Register (FIG. 12E) and the Packet Address Register (FIG. 12 D).
- Flip-flop 282 is reset by signal CLRADD under various conditions as can be seen from FIG. 22 .
- signal Sleep when signal Sleep is produced, flip-flop 282 will be reset by way of OR gate 290 and NOR gate 292 .
- signals Lockout (LOUT) and Decoder Enable (DEN) are both active, flip-flop 282 will be reset by way of an NOR gate 294 , OR gate 290 and NOR gate 292 .
- FIG. 23 shows circuitry which comprises the Packet Address Register (FIG. 12 D).
- the register includes a Packet Address Counter 298 having inputs connected receive bits D 4 -D 0 from the Data Bus and a flip-flop 300 .
- Tag 03H is used to load the five bits of data which correspond to Packet Address (A 5 -A 8 , A x ) into Counter 298 .
- bit D 7 on the Data Bus is used to control the increment function of Counter 298 .
- Signal Packet Address Load (PA Load) which is used to load Counter 298 , is generated by an AND gate 302 when Tag 03H is detected and signal Strobe is generated.
- PA Load Packet Address Load
- Flip-flop 300 is used to generate a signal Pinc En which is connected to the increment input of the Packet Address Counter 298 . If bit D 7 on the Data Bus is set to a “1” so that the increment function is to be enabled, flip-flop 300 will be set so that signal Packet Address Increment Enable (Pinc En) is active. Signal Pinc En is connected to one input of an AND gate 304 , with signal A 4 being connected to the other input. Signal A 4 is generated by the Byte Address Counter 280 of FIG. 22 . As will be explained, the Packet Address Counter will be incremented when both signal Pinc En is active and when the Byte Address Counter A 4 switches from a “1”to a “0”.
- Tag 07H can be used to cause the Packet Address Counter 298 to increment independent of signal Pinc En.
- Counter 298 will be incremented once by way of AND gate 308 and OR gate 306 .
- flip-flop 300 and Counter 298 are reset by signal CLRADD, the same signal used to reset the Byte Address Counter 280 (FIG. 22) and associated flip-flop 282 .
- each Memory Device 38 includes various sources of voltages used for carrying out these memory operations, as can be seen in FIGS. 24A and 24B.
- a High Current Charge Pump circuit 310 (FIG. 24B) is provided that is capable of generating a positive output voltage in the range of +6 volts.
- a VBL Switch circuit 316 is used to control the magnitude of the Charge Pump Circuit 310 output voltage and to forward the voltage VBL to the Y Decoder circuitry to be applied to the Bit Lines during memory operations.
- trim bits are used to control the magnitude of voltage VBL, with these bits being set by one of the Control Registers to be described.
- the output of the High Current Charge Pump 310 is also connected to a Source Switch circuit 318 having an output to be connected to the Source Line of a selected one of the Erase Blocks during an erase operation.
- Circuit 318 has three trim bits that are used to control the magnitude of the Source Line Erase voltage.
- a Low Current Charge Pump circuit 314 is also provided (FIG. 24C) which is capable of generating a positive voltage in the range of +11 volts.
- a VPX Switch circuit 320 is included having eight trim bits that are used to adjust the magnitude of the voltage VPX derived from charge pump circuit 314 output. As is well known, voltage VPX is forwarded to the X Decoder circuitry and is applied to selected Word Lines depending upon the memory address during memory operations.
- a Negative Charge Pump circuit 322 generates a negative voltage having a range of approximately ⁇ 10 volts. Four trim bits are provided for controlling the magnitude of the negative voltage VN produced by circuit 322 . Negative voltage VN is applied to the Word Lines by way of the X Decoder circuit during memory operations erase operations.
- a Word Line Supply circuit 324 is also included for applying the Word Line voltage to the Word Lines by way of the X Decoder circuitry. Unlike the other circuitry depicted in FIGS. 24A and 24B which is common to the entire Memory Device 38 , the Word Line Supply circuitry 324 is repeated for each of the eighty Erase Blocks of the Memory Device. When the Erase input of the Word Line Supply circuit 324 is active an Erase Block is to be erased, with such Erase Block associated with the Supply circuitry 324 being the selected Erase Block or a deselected Erase Block. If the Erase Block is the selected Block, signal Erase Block will be active, otherwise the signal is inactive.
- Word Line Supply circuit 324 When signals Erase and Erase Block Select are both active, the associated Erase Block is the selected Block. In that event, Word Line Supply circuit 324 will function to connect negative voltage VPN to the X Decoder circuit for application to all of the Word Lines of the selected Erase Block. When signal Erase is active, but signal Erase Block is inactive, an Erase Block other than the Block associated with the Supply circuit 324 is to be erased. In the event, primary supply voltage VCC is provided to the X Decoder circuit of the deselected Block. VCC is also provided to the Decoder when neither the Erase signal nor the Erase Block select are active. Finally, when Erase Block is active, but Erase is inactive, an operation other than an erase operation is to be carried out on the associated Erase Block. In that event, Word Line Supply circuit 324 applies positive voltage VPX to the Word Lines by way of the X Decoder.
- flash memory cells have threshold voltages which vary depending upon whether the cell is in an erased state or a programmed state.
- the threshold voltage is typically defined as the control gate to source voltage across the cell necessary for the cell to conduct one microampere of current for a drain voltage of +1 volt.
- An erased cell has a relatively low threshold voltage (V THE ), +3 volts for example, and a programmed cell has a relatively high threshold voltage (V THP ), +5 volts, for example.
- V THE threshold voltage
- V THP relatively high threshold voltage
- the memory system will operate to ground the source of the cell being read and will apply an appropriate voltage to the control gate by way of the associated Word Line.
- the drain of the cell which is connected to the associated Bit Line, is typically set to a small positive voltage such as +1 volt. If the cell has been programmed, the current through the cell will be relatively small and if the cell is in an erased state the current will be relatively high.
- the cell current is measured using a Sense Amplifier.
- the same Sense Amplifier is also used in other operations related to Read Operations, such as Erase Verify and Program Verify operations.
- a single word is read out consisting of eight bits of data.
- a total of eight Sense Amplifiers are provided.
- FIG. 17 shows a single Sense Amplifier 116 having a pair of differential inputs. One input is connected to a reference voltage which is related to the current flow through a Flash Cell Reference 118 . The other input is connected to a read voltage which is related to the current flow through the associated Bit Line 124 .
- Flash Cell Reference 118 The circuitry associated with Flash Cell Reference 118 is shared by all eight of the Sense Amplifiers 116 .
- Reference 118 has a control gate-source voltage which is determined by a Reference Voltage Generator 120 .
- Generator 120 produces a voltage which is nominally set to the voltage applied to the control gate (Word Line) of the cell being read.
- the Flash Reference Cell will produce a current which will tend to track current of the cells in the memory array with variations in temperature, processing and the like.
- the voltage applied to the Flash Reference Cell can be adjusted by way of four digital trim inputs which provide over sixteen different voltages depending upon the state of the trim bits in a manner similar to Digital-To-Analog Converter.
- the Reference Voltage Generator can thus be used to adjust the margins used in Read Operations and other similar operations such as Program Verify.
- the current flow through the Flash Reference Cell 118 is converted to a voltage by a current to voltage (I/V) converter 122 .
- I/V Converter 122 has two trim inputs that can be used to adjust the magnitude of the voltage applied to the drain of Flash Reference Cell 118 .
- Block 124 represents a selected one of the Bit Lines of the memory array. The particular Bit Line is selected based upon a portion of the address provided to the memory system using decoding circuitry which is not depicted. In Read Operations, the Bit Line 124 is connected to the Sense Amplifier 116 by way of a pair of pass gates or switches 126 and 128 .
- the switches each include a P and an N channel transistor, with the state of the switches being controlled by complementary switching signals.
- Switch 126 is controlled by a signal Bypass Program Latches and switch 128 is controlled by signal Sense Enable.
- the current flow through the selected Bit Line 124 is converted to a voltage by I/V Converter 130 , with the voltage being applied to the non-inverting input of Sense Amplifier 116 .
- I/V Converter 130 also functions to apply a voltage to the selected Bit Line 124 during the read operation. This voltage, which is applied to the drains of the cells in the array connected to the selected Bit Line can be adjusted using the same two trim bits used by I/V converter 122 .
- the voltages applied to the drain of the cell being read and to the drain of the Flash Reference Cell 118 both typically nominally +1 volt, can be precisely adjusted together.
- the voltage indicative of the current of the cell being read, and which is applied to the inverting input of Sense Amplifier 116 will be less than the reference voltage applied to the non-inverting input if the cell is in an erased state. This will cause the output of Sense Amplifier 116 to go high thereby indicating that the cell is a logical “1”. If the cell being read has been programmed, the Sense Amplifier output will remain low indicating that the cell is a logical “0”. The output of the Sense Amplifier 116 is held in a Sense Amplifier Latch 132 for eventual read out through switch 135 controlled by the Read Data Register (RDR) signal (Table 1).
- RDR Read Data Register
- the read data from switch 135 are transferred to the Data Bus 42 by way of lines DL[ 8 ] ( 55 ) of FIG. 4 .
- the Command Decode Logic causes signal Load Sense Amplifier Data (LSAD) to be generated so that the Sense Amplifier Latch 132 will latch the output of the Sense Amplifier 116 .
- LSAD Load Sense Amplifier Data
- switches 126 and 128 are turned off.
- a switch 134 is turned on by a signal Sense Block Bypass thereby bypassing the Sense Amplifier circuitry. This will enable data present on the Data Bus to be applied to the input of a Program Latch 136 . If the data to be programmed is a logical “0”, the target cell in the array is to be programmed. In that event, Program Latch 136 will output +6 volts to the Bit Line 124 , which, together with the voltages applied to the associated Word and Source Lines, will cause the cell to be programmed.
- the Cell In the event the data is a logical “1”, the cell should not be programmed but should be left in the original erase state. Thus, the Program Latch output will be set to near ground potential.
- FIG. 16 is a flow chart depicting an exemplary Read Operation.
- a Sector of the memory will be read out.
- each Sector contains 544 Bytes of data.
- the Controller 36 has already assigned each of the Memory Devices 38 a unique address (effectively A 29 to A 23 ) which is stored in each of the associated Address ID Latches 78 (FIG. 5 ).
- the first step of the Read Operation is the selection of the Memory Device 38 to be read. As previously described, this is accomplished by Controller 36 placing Tag Command 02H of the Tag Bus 40 and certain data on Data Bus 42 (FIG. 6 ).
- Bit D 7 of the data is set to “1” so that a Memory Device is selected rather than deselected.
- Bits D 6 to D 0 are set to correspond to address bits A 29 to A 23 of the target Memory Device. As can be seen from FIG. 6, this will cause the single selected one of the Memory Devices 38 to be selected (Dev Sel is Set).
- Tag Command 0FH is issued and placed on Tag Bus 40 for the purpose of resetting those Registers of the selected Device that are capable of being reset.
- Data is placed the Data Bus at the same time Tag 0FH is issued.
- the data act as modifier bits to define the function that Tag 0FH will perform.
- the data is 08H (00001000), which means that only bit D 3 is set to a “1”.
- FIG. 11 table when only bit D 3 is set, Tag 0FH will function to reset the resettable Registers of the selected Memory Device. This is accomplished by issuance of signal Clear Control Register (CCR) by Command Decode Logic 62 (FIG. 10 ), with signal CCR being connected to the clear input of the Control Registers (FIG. 21 ).
- CCR Clear Control Register
- Register Control A (FIG. 12F) is selected and bit 4 is set so as to enable a memory reference voltage generator which is normally deselected to minimize power consumption.
- the register is first selected by placing Tag 0BH on the Tag Bus, with 05H being placed on the Data Bus so that the Register Control A (05H) is selected.
- Bit 4 of the register is set to a “1” by using Tag Command 0CH which, as indicated by table of FIG. 11, function to load data present on the Data Bus into the selected register. In this case the data on the Data Bus is 10H so that only Bit 4 of Register Control A is set.
- Control Register B (FIG. 12G) is selected using Tag Command 0BH and placing 06H on the Data Bus.
- Control Register B (06H) contains eight trim bits that are applied to VPX Switch 320 used to control the magnitude of the voltage VPX applied to the Word Lines during the memory operation.
- Tag Command 0CH is used to load the eight bits of voltage trim data placed on the Data Bus 40 into Control Register B.
- Control Register C (FIG. 12H) is then selected using Tag Command 0BH.
- This register contains a Bit 7 which is used to enable the Low Current Charge Pump circuit 314 which produces the voltage which, after being trimmed by the VPX Switch circuit 320 , is applied to a selected Word Line during a memory programming and read operations.
- Control Register further contains a Bit 6 which functions to connect high voltage program data to a selected Bit Line during a program operation. Bit 5 of Control Register C enables and disables the VPX Switch circuit 322 which produces voltage VPX.
- Tag Command 0CH is used to set Bit 7 to a “1” so as to enable the Low Current Charge Pump 314 .
- Control Register D (FIG. 12I) is selected and Bits 0 - 3 are set to a selected trim value in order to control the read margin in read operations. These four bits are used to control the magnitude of the output voltage of the Reference Voltage Generator 120 (FIG. 17 ).
- Bit 1 of Control Register D is set to a “1” to enable the Reference Voltage Generator 120 .
- Tag Command 05H is placed on the Tag Bus and the seven address bits A 22 to A 16 identifying the particular Erase Block containing the Sector to be read are placed on the Data Bus.
- Tag Command 05H functions to automatically select the Block Address Register (FIG. 12B) so that the Tag Command 0BH is not needed.
- Tag Command 05H will also cause signal BAL to be generated (Table 1) by the Command Decode Logic 62 .
- Signal BAL will cause the data present on the Data Bus to be loaded into the Block Address Register (FIG. 12 B). Note that it would also be possible to access the Erase Block Address Register for testing purposes and the like by issuing Tag Command 0BH and placing the address of the register (01H) on the Data Bus.
- Controller 36 will issue a Tag Command 04H for loading the Sector Address Register (FIG. 12C) with addresses A 15 to A 9 .
- the address bits are placed on the Data Bus at the same time Tag 04H is placed on the Tag Bus.
- the Tag Command will cause the Command Decoder Logic 62 to issue signal Sector Address Load (SAL) which will cause the Sector Address Register (FIG. 12C) to be loaded with the address bits on the Data Bus.
- SAL Sector Address Load
- the contents of the Packet Address Register (FIG. 12D) and the Byte Address Register (FIG. 12E) will both be initialized by using Tag Commands 03H and 09H, respectively.
- Data 80H will be placed on the Data Bus so that the increment feature (Bit 7 ) will be enabled for both register and so that the initial address bits A 8 to A 0 and A x will be set to all zeros at this stage of the sequence.
- Register Control E is selected. As can be seen in FIG. 12J, when Bit 4 is a “1”, all of the Word Lines of a selected Erase Block are selected. The selected Erase Block is determined by the address just loaded into the address registers. However, all of the Word Lines of the Erase Block will be forced to the same state by Bit 4 , independent of the loaded address. Bit 3 causes all of the Word Lines of the selected Erase Block to be deselected when Bit 3 is a “0”. Bit 2 , when set to a “1”, causes all eight main blocks of the Memory Device to be selected. Bit 1 , when set to a “1”, causes all eight Erase Blocks of the selected Main Block to be selected. Finally, Bit 0 , when set to a “0”, causes all of the Main Blocks to be deselected.
- Register Control E is loaded with 09H so that Bit 3 is set to a “1”thereby enabling all of the Word Lines of the selected Erase Block and so that Bit 0 is set to a “1” so that all Main Blocks are enabled.
- Controller 36 will then issue a Tag Command 0BH to select Register Control F (FIG. 12 K).
- Bit 7 of this register is used to connect and disconnect the DL bus to and from the DZ bus.
- signal Sense Block Bypass is controlled by this bit.
- switch 134 When the signal is active, switch 134 is conductive bypassing the sense amplifier circuitry so that the DL bus is connected directly to the DZ bus in programming operations.
- Bit 1 of Register Control F is used to discharge the Bit Lines of the selected Erase Block when set to a “0” together with the DZ bus.
- Bit 0 of the register is used to float all Bit Lines of the selected Erase Block when set to a “0”.
- 03H is loaded into selected Register Control F using Tag Command 0CH so that Bits 0 and 1 are set to a “1” so that the Bit Lines and DZ bus will be discharged and so that the float function performed by Bit 0 is disabled.
- a second Tag Command 0CH is issued to set Bit 1 to a “0” thereby terminating the discharge function. Note that since Register Control F was already selected, it is not necessary to repeat the select operation using Tag Command 0BH.
- Register Control G (FIG. 12 L).
- Bit 6 of this register is used to generate signal Bypass Program Latches (FIG. 17) which is used to control switch 126 which functions to bypass the program latches 136 so that the sense amplifier circuitry is connected to the Bit Lines 124 so that a read operation can be carried out.
- Bit 4 of the register is used to generate signal Sense Enable which functions to enable the Sense Amplifier 116 and related circuitry including switch 128 which connects the Bit Lines 124 to the input of the Sense Amplifier circuitry.
- 50 H is loaded into Register Control G thereby causing the Program Latches 136 to be bypassed and the sense amplifier circuitry to be enabled.
- Controller 36 will then select Register Control C (FIG. 12 H). Bits 7 and 5 of this register are then set to a “1”. As previously described, when Bit 7 is a “1”, the Low Current Charge Pump circuit 314 (FIG. 24) is enabled. When Bit S is a “1”, the output of the low current charge pump is connected to the X Decoder circuitry so that charge pump voltage will be applied to the selected word line.
- the actual reading of the array is then commenced as indicated by element 192 of FIG. 16 .
- some of the address bits will be applied to an X Decoder which will select a predetermined one of the Word Lines of the memory array.
- the voltage VPX generated by the low current charge pump circuit will be applied to the selected Word Line. It is possible to use a low current pump since the Word Lines draw little current during read operations.
- the remaining address bits will be applied to a Y Decoder which will select the eight Bit Lines associated with the eight bits that make up the word to be read.
- the Bit Line voltage for carrying out read operations is applied by the I/V Converter circuit 130 of FIG. 17 .
- the Source Line of the selected Erase Block is also grounded during the read operation.
- the Sense Amplifiers 116 will then sense the presence or absence of current for those eight cells that make up the first Byte of the Sector being read. Controller 36 will issue Tag Command 19H (FIG. 11) with the associated signal Strobe. The timing diagram of FIG. 25 illustrates this aspect of the read operation. Once Tag Command 19H is detected, signal Out/In becomes active so that I/O Buffer 52 (FIG. 4) will be capable of transferring the data being read out of the memory array from DL Bus 55 to the external Data Bus 42 . At this time, data held in the Sense Amplifier Latch 132 (FIG. 17) will be placed on the Data Bus 42 .
- Signal Strobe together with Tag 19H will also cause signal Load Sense Amplifier Data (LSAD) to go active. As previously described, this signal will cause the read data present on the output of the eight Sense Amplifiers 116 (FIG. 17) to be loaded into the associated Sense Amplifier Latch 132 . Latch 132 is transparent so that the Sense Amplifier 116 outputs will be present on the external Data Bus 42 at this time. Signal Strobe will then go inactive thereby causing LSAD to go inactive thereby latching the read data. At this point, the reading of the next Byte can commence since any changes in the output of the Sense Amplifiers will not affect the state of the Sense Amplifier Latches 132 .
- LSAD Load Sense Amplifier Data
- Controller 36 will then issue a second Tag Command 19H and associated Strobe. This will cause signal BA Increment (FIG. 22) to be generated thereby causing Byte Counter 280 (A 4 to A 0 ) to increment from all zeros to 00001. A determination is then made, as indicated by element 198 of the FIG. 16 flow chart, whether all of Bytes of data have been read out of the first Packet. There are 32 Bytes of data in each Packet, so if the count is less than 31 , the sequence will return to element 196 and the second Byte of data is read out of address 0001.
- the various circuits used in the memory read operation are preferably disabled as indicated by element 202 of the FIG. 16 flow chart. This is accomplished by setting appropriate bits in appropriate Control Registers using various Tag Commands. First, Register Control C (FIG. 12H) is selected using Tag Command 0BH and placing 07H on the Data Bus. Once the register is selected, 80H is written into the register using Tag Command 0CH. This will cause Bit 5 to change from a “1” to a “0” thereby disabling the VPX circuit 320 which applies the output voltage VPX derived from the Low Current Charge Pump 314 to the Word Lines.
- Register Control C (FIG. 12H) is selected using Tag Command 0BH and placing 07H on the Data Bus.
- 80H is written into the register using Tag Command 0CH. This will cause Bit 5 to change from a “1” to a “0” thereby disabling the VPX circuit 320 which applies the output voltage VPX derived from the Low Current Charge Pump 314 to the Word Lines.
- Register Control C While Register Control C remains selected, Bit 7 is set to a “0” thereby disabling the Low Current Charge Pump circuit 314 . A short delay is introduced at this point to allow the charge pump circuit 314 and the Word Line to discharge.
- Register Control G (FIG. 12L) is then selected and Bits 4 and 6 are set to “0” thereby disabling the sense amplifier circuitry and turning off switch 126 which bypasses the Program Latch 136 .
- Register Control D (FIG. 12I) is selected and all Bits are set to “0” thereby disabling the reference generator and the sense trims.
- Register Control F is then selected and Bit 0 is set to “1” thereby disabling the Bit Line float function.
- Bit 1 is set to a “1” so that the Bit Line discharge function is enabled so as to discharge the Bit Lines and the DZ Bus.
- Bit 1 of Register Control F is set back to a “0” thereby terminating the discharge function. That completes the sector read operation.
- FIGS. 18A and 18B are flow charts illustrating an exemplary Sector Program Operation of the FIG. 3A memory system.
- FIG. 19 shows additional details regarding the Program Latch 136 of FIG. 17 used in programming operations.
- Program Latch 136 Prior to describing the Sector Program Operation, Program Latch 136 will be described.
- Latch 136 includes a pair of inverters 138 and 140 connected together with a switch 142 to form a loop. When switch 142 is conductive, inverter are connected to provide positive feedback so that the signal applied to the input of inverter 138 will be latched. Switch 142 is controlled by a signal DLOAD and the inverse of that signal.
- Inverter 138 and 140 are both powered by voltage VBL so that the output of the Program Latch 136 , the output of inverter 138 , will be at that voltage when the Latch input is a “0”.
- voltage VBL is generated on the Memory Device 38 by a High Current Charge Pump circuit 310 which has a nominal output +6 volt s, with the magnitude being adjustable by way of three trim inputs to VBL Switch circuit 316 .
- the output of Latch 136 is connected to the selected Bit Line 124 by way of a pass transistor 144 which can be turned on and off by a signal PGM having a magnitude of +11 volt s when active.
- a cell will be programmed when the associated Bit Line is set to VBL (+6 volt s), the associated Word Line is set to +11 volts and Source Line is grounded.
- Reference Voltage Generator is enabled, as previously described in the Read Sector sequence by selecting Register 05H (FIG. 12F) and setting Bit 4 to a “1”.
- Tag Command 05H is placed on the Tag Bus and the seven address bits A 22 to A 16 identifying the particular Erase Block containing the Sector to be programmed are placed on the Data Bus.
- Tag Command 05H functions to automatically select the Block Address Register (FIG. 12B) so that the Tag Command 02H is not needed.
- Tag Command 05H will also cause signal BAL to be generated (Table 1) by the Command Decode Logic 62 .
- Signal BAL will cause the data present on the Data Bus to be loaded into the Block Address Register (FIG. 12 B).
- Controller 36 will issue a Tag Command 04H for loading the Sector Address Register (FIG.
- Controller 36 will also cause appropriate ones of the circuitry used for programming to set to the desired state. This is accomplished by issuing a sequence of Tag Commands so that the pertinent bits of various ones of the Control Registers are set to a desired state.
- Tag Command 0BH is issued and 06H is placed on the Data Bus to select Register Control B (FIG. 12 G).
- the Word Line trim voltage is set by loading the appropriate eight bits into Register Control B. These trim bits are applied to the VPX Switch circuit 320 (FIG. 24B) so that the Word Line voltage is at the exact desired level.
- the Low Current Charge Pump 314 is enabled by setting Bit 7 of Register Control C (FIG. 12 H).
- Register Control H (FIG. 12M) is selected, with this register containing Bits 3 - 5 that are used to control the magnitude of voltage VBL, the voltage applied to the Bit Lines by the Y Decoder circuit during programming.
- the three trim bits are applied to the VBL Switch circuit 316 .
- the High Current Charge Pump circuit 310 is enabled along with enabling the VBL Switch circuit 316 by setting Bits 1 and 2 to a “1”.
- Register Control F (FIG. 12K) is selected and Bit 2 0 and 1 are set to a “1” thereby disabling the Bit Line float function and causing the Bit Lines and DZ Bus to switch to a discharged state. Bit 1 of the register is then set to a “0” to terminate the discharge function. Register Control F (FIG. 12K) is then selected and Bit 7 is set to a “1” thereby causing signal Sense Block Bypass (FIG. 17) to go active thereby turning on switch 134 and bypassing the sense amplifier circuitry.
- the data to be programmed into the Sector is then loaded into the selected Memory Device 38 , as indicated by element 208 of FIG. 18 A.
- the program data are loaded into thirty-two 8 bit Program Data Registers 400 one byte at a time.
- FIG. 26 shows the Program Data Registers 400 , with each one bit stage of the Register corresponding to the Program Data Latch 136 of FIG. 19 .
- the Program Data Registers are selected by a Program Register Decoder circuit 402 that receives the five bits of Byte Address A 0 -A 4 generated by the Byte Address Counter 280 (FIG. 22 ).
- Tag Command 0AH (FIG. 11) is placed on the Tag Bus 40 and the eight bits of the first Byte of data are placed on the Data Bus 42 .
- Tag Command 0AH will cause signal Write Data Register (WDR) to be produced thereby causing Decoder 402 to produce signal DLOADA which is forwarded to Program Register 0 based upon initial address A 0 -A 4 of 0000. This will cause the first Byte of program data to be loaded into a Program Register 0 .
- the second Byte of program data is placed on the Data Bus 42 together with Tag Command 0AH.
- the programming voltages are then applied to the selected Word Lines and Bit Lines so that the first Byte of data is programmed into the array.
- Register Control C (FIG. 12H) is first selected and Bit 5 is set to a “1” so as to enable VPX Switch circuit 320 (FIG. 24 B). This will cause voltage VPX to be applied to the selected Word Line associated with the cells to be programmed.
- Register Control I (FIG. 12N) is then selected and Bit 2 is set so that VBL Switch circuit 316 will function to connect the High Current Pump 310 output to line VBL.
- Bit 6 is set to a “1” so as to connect the output of the VBL Switch circuit 316 to the Program Latches 136 (FIG. 19) so that the voltage will be applied to the Bit Lines 124 for those Bit Lines associated with a cell to be programmed.
- the sequence enters a short wait state while the programming voltages are applied to the memory array. At this point, 32 Bytes of data are programmed at the same time.
- the Controller places appropriate Tag Commands on the Data Bus and places appropriate data on the data bus to turn off the programming voltage s applied to the Word Lines an d Bit Lines (element 222 of FIG. 18 A).
- Register Control H (FIG. 12M) is selected and Bit 2 is set to a “0” thereby disabling VPX Switch circuit 320 .
- Register Control C (FIG. 12H) is then selected and Bit 6 is set to a “0” thereby disabling VBL Switch circuit 316 so that voltage VBL is no longer applied to the program latches 136 .
- Bit 5 of the register is set to a “0” thereby disconnecting voltage VPX from the Word Lines.
- Controller 36 causes the Bit Lines to be discharged. This is accomplished by selecting Register Control F (FIG. 12K) and setting Bits 0 and 1 to a “1”. This disables the float function (Bit 0 ) and enables the discharge function. Once the discharge is completed, Bit 1 is set back to a “0”.loading appropriate data into one of the Control Registers as indicated by element 224 of FIG. 18 A.
- the first step of the verification is to set the various circuits that perform the verify function to an enabled state.
- the verification sequence is similar to the previously-described read operation, with the voltage applied to the Word Line and the voltage margins used by the Sense Amplifier circuitry being set so that any marginally programmed cells will be detected.
- a Byte of data is read out and loaded into a data buffer followed by 31 further read operations until one Packet or 32 Bytes of data are read, as indicated by element 232 of FIG. 8 B.
- the 32 Bytes of data are transferred to Controller 36 one Byte at a time so that the data read can be compared with the data programmed. This process is repeated until all Packets of the Sector are verified, as indicated by element 234 . Once the verification is completed, circuitry used for programming and verification is turned off and the Word Lines are discharge by grounding (element 236 ). That completes the Sector Program operation.
- FIGS. 20A and 20B are a flow chart illustrating an exemplary Erase Operation for the FIG. 3A memory system.
- cells are erased using a negative gate erase sequence as described more fully in patent application Ser. No. 08/606,215 and filed on Feb. 23, 1996 and entitled SEGMENTED NON-VOLATILE MEMORY ARRAY WITH MULTIPLE SOURCES HAVING IMPROVED SOURCE LINE DECODE CIRCUITRY.
- the contents of such application are hereby fully incorporated into the present application by reference.
- Erasure is accomplished by setting all of the Word Lines of the selected Erase Block to a large negative voltage, such as ⁇ 10 volts.
- the Bit Lines are all left floating (set to a high impedance) and the Source Line of the selected Erase Block is set to a positive voltage, such as +5 volts.
- This set of conditions will cause any excess electrons present on the floating gate of the cells to be removed thereby causing the cells to become erased.
- the voltages are applied for a fixed duration, similar to a voltage pulse. The duration is set so that several of such erase pulses need to be applied in order to complete the Erase Operation.
- Controller 36 will perform an Erase Verification sequence to determine whether all of the cells have been adequately erased.
- the Erase Verification is a type of read operation which functions to confirm that the threshold voltages of all of the cells have been reduced to the desired level.
- Controller 36 first selecting the Memory Device 38 containing the Erase Block to be erased in the manner previously described in connection with the Read and Program operations. Once the Device 38 has been selected, Controller 36 loads the address A 22 to A 16 of the Main Block which contains the Erase Block to be erased into the Block Address Register (FIG. 12B) (element 238 ). This is accomplished when Tag Command 05H (FIG. 11) is issued on the Tag Bus 40 and address A 22 to A 16 are placed on the Data Bus 42 . In addition, Controller 36 causes the Bit Lines of the array to float and causes the Word Lines of the Erase Block to be disabled by setting the appropriate bits in the appropriate Control Registers to the desired state.
- Register Control F (FIG. 12K) is selected and Bit 0 is set to a “0” thereby enabling the Bit Line float function.
- Register Control E (FIG. 12J) is selected and all bits are set to a “0” except for Bit 0 which is set to a “1”. Since Bit 3 is a “0”, all of the Word Line decoders of the selected Erase Block will be disabled.
- Controller 36 setting the appropriate bits in the Control Registers which control such circuitry.
- Register Control B (FIG. 12G) is selected and the appropriate Word Line voltage trim bit values are loaded into the register. Note that the Word Line voltage will be negative, with Bits 0 - 2 of the register functioning to control the magnitude of the negative voltage applied to Word Line of the selected Erase Block by the Word Line Supply Circuit 324 .
- Register Control H (FIG. 12H) is then selected and Bit 1 is set to a “1” thereby enabling the High Current Charge Pump circuit 310 .
- Register Control I (FIG. 12N) is selected and Bit 6 is set to a “1” so as to enable the Negative Charge Pump circuit 322 (FIG. 24 A).
- Bits 2 - 5 of Register Control I are set, with these bits being trim bits coupled to the Source Switch circuit 318 (FIG. 24B) and used to control the magnitude of the positive voltage applied to the Source Line of the Erase Block being erased.
- the Source Switch circuit 318 is enabled by setting Bit 2 to a “1”.
- Bit 1 of Register Control I (FIG. 12N) is used to control signal Erase connected to the Word Line Supply circuit 324 of FIG. 24 A.
- Bit 1 When Bit 1 is a “1”, the signal is enabled so that the negative output voltage VPN provided by Negative Pump circuit 322 is connected to the Word Lines of the selected Erase Block by way of the X Decoder circuits.
- the Word Line Supply circuit 324 functions to connect primary supply voltage VCC to the deselected Blocks.
- Bit 1 is a “0”, thereby indicating that an operation other than an Erase operation is to be carried out.
- the Word Line Supply circuit 324 applies the positive voltage VPX produced by the Low Current Pump circuit 314 to the Word Lines of the selected Erase Block and voltage Vcc to the deselected Block.
- Bit 1 is set to a “1” so that negative voltage VPN will be applied to the Word Lines of the selected Erase Block.
- Register Control C (FIG. 12H) is then selected and Bits 5 and 7 are set to a “1” to enable Low Current Pump circuit 314 and to enable the VPX Switch circuit 320 . These conditions cause the actual erase operation to commence. As represented by element 244 of the FIG. 19A flow chart, the Controller will then wait a pre determined amount of time while the erase voltages are applied. During this wait period, a single erase pulse is effectively applied to the selected Erase Block.
- the duration of the wait period is such that a single erase pulse is insufficient to adequately erase the Erase Block.
- an erase verify sequence is carried out to determine whether the Block has been properly erased.
- the erase verify sequence functions to read the cells of the Erase Block to confirm that all of the cells have been erased and are in a logic “1” state.
- the high voltages applied to the Source and Word Lines of the Erase Block are removed. This is accomplished by selecting Register Control H and setting Bit 1 to a “0” thereby turning off the High Current Charge Pump circuit 310 .
- the Source Line is grounded and the Word Lines are left floating as indicated by element 248 .
- the circuitry which provides the voltage used in the erase verify sequence is then enabled as shown by element 250 of FIG. 20 B.
- the voltages are similar to those used in normal read operations, but are set to values that tend to detect cells that have only been marginally erased.
- Register Control B (FIG. 12G) is selected and the Word Line Trim bits contained in that register are set such that the Word Line voltage used in Erase Verify is about 1 volt less than the value used in a normal read operation.
- the Erase Block is verified by reading one Sector at a time. If the verify sequence indicates that any cells in the first Sector are still in a programmed state (“0” state), element 254 indicates that it will be necessary to apply a further erase pulse to all sectors in the Erase Block. Thus, the read circuitry is disabled and disconnected and the erase circuitry is enabled as indicated by element 256 . determination is then made as to whether the number of erase pulses applied exceeds a predetermined maximum number (element 258 ). If that is the case, it is assumed that the Erase Block cannot be properly erased and the erase sequence will be terminated. Typically, Controller 36 will store an indication that the Erase Block in question is defective and will refrain from further use of such Block. Controller 36 will then disable the high voltage circuitry and other circuitry used in the erase operation as indicated by element 262 thereby concluding the erase operation.
- the sequence will return to element 238 of FIG. 20A and a second erase pulse will be applied to the Erase Block. This sequence will be repeated until the first Sector of the Erase Block passes the erase verify (element 254 ). If the first Sector passes, a determination is made as to whether all of the Sectors of the Erase Block have been verified to have been properly erased (element 264 ). Since only the first Sector has been verified to have been properly erased, the Sector address in the Sector Address Register (FIG. 12C) is then incremented (element 266 ) by loading a new address into the register and a second Sector is erased and verified. This will continue until all 128 Sectors of the Erase Block have been erased and verified. As indicated by element 268 of FIG. 20B, the Erase sequence is concluded when the high voltage and other circuits used in the sequence are turned off.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
A memory system having a single memory controller connected to several memory devices by way of a common bus, with the memory controller configured to issue memory program, memory read and memory erase instructions over the system bus to a selected one of the memory devices. Each memory device has an array of memory cells and several volatile control registers which contain control parameters provided by the memory controller. The control parameters operate to control one or more of the voltages applied to the array in memory read, program and erase operations, including the timing of the application of the voltages and the magnitude of the voltages so that the memory operations can be optimized by the memory controller.
Description
This application is a continuation of U.S. Ser. No. 08/839,034, filed Apr. 23, 1997, now U.S. Pat No. 6,073,204.
1. Field of the Invention
The present invention relates generally to semiconductor memory systems and in particular to a memory system having multiple memory devices connected to memory controller by way of a common system bus, with the memory devices storing control parameters provided by the controller and used in carrying out memory operations.
2. Description of Related Art
Semiconductor memories having increased storage capacity have been developed. A typical memory system may include a single memory controller implemented on a single integrated circuit together with one or more memory devices, each of which is implemented on a single integrated circuit, having an array of memory cells. The memory controller and memory devices are typically connected by way of a bus so that the controller can issue memory read, program and erase commands to a selected one of the memory devices.
The storage capacity of such a memory system can be increased by adding additional memory devices to the system. Such memory devices are typically implemented to carry out memory operations, including read, program and erase operations in response to read commands accompanied by an address, program commands accompanied by an address and data to be programmed and erase commands. In order to carry out such memory operations, the memory devices typically include relatively complex control circuitry. This increased complexity increases the cost of the memory devices.
In addition, some semiconductor memories are designed to store control parameters in one form or another. Such control parameters may, for example, be used to precisely control the magnitude of the voltages applied to the memory cells during memory operations thereby optimizing such operations. Such control parameters may be stored using fusible links or using non-volatile memory cells. This approach further adds complexity and costs.
A memory system of the type having a memory controller and a plurality of memory devices, where the memory devices contain a minimal amount of complex circuitry would be desirable. By way of example, in a memory system embodied in a single computer card (PCMCIA or PC card), there is a single controller integrated circuit and several associated memory integrated circuits. Rather than duplicating the control logic in each of the memory circuits, it would be advantageous to locate the control circuits in the controller. Further, a memory capable of storing control parameters without the use of fusible links or non-volatile memory cells would be desirable. The present invention provides these and other advantages which will be readily apparent to those skilled in the art upon a reading of the following Detailed Description of the Invention together with the drawings.
FIG. 1 depicts a simplified conventional memory system which includes a host device 20, an address decoder 22 and memory devices 24A and 24B. The host device 22 may be a microprocessor and the memory devices 24A and 24B may be separate memory integrated circuits. An address bus 26 is used to provide addresses to an address decoder 22 and to the memory devices 24A and 24B. The address decoder 22 has two outputs connected to enable inputs of the memory devices 24A and 24B. Typically, the most significant bit(s) of the address are provided on the bus 26 to the decoder 22, with the remaining address bits being provided to each of the memory devices.
When memory is to be accessed, the processor 20 causes the address decoder 22 to decode the most significant bit(s) of the memory address placed on an address bus 26. The decoder 22 will select one of the two memory devices 24A and 24B by generating either signal Sel 0 or Sel 1. The selected memory device will respond to the address presented to it on the address bus and the deselected memory device, which is disabled, will not respond. Although not shown, a data bus is used to transfer data between the memory devices and the processor 20, with only the selected device outputting data to the data bus during memory read operations.
The approach depicted in FIG. 1 is sometimes referred to as radial device selection where each memory device has a separate select input. This approach works well when relatively few memory devices are employed and where access speed, particularly random access speed, is important. However, if a large number of memory devices are used so that large amounts of data can be stored, the requirement of separate select lines for each memory device results in large memory boards and a relatively large pin count for the control logic circuitry. Thus, unless access speed is critical and a large number of memory devices are used, the radial device selection approach of FIG. 1 is not ideal.
FIG. 2 shows an alternative prior art device selection technique, sometimes referred to as serial selection. Again, a host device 28 is used which is connected to several memory devices 30A, 30B and 30C by way of a system bus 32. The memory devices 30A, 30B and 30C are usually implemented as separate integrated circuits. The system bus 32 includes memory address and memory data and various control signals so that each of the memory devices 30A, 30 B 30C receives the same addresses, data and other signals. Each memory device is preassigned a unique address so that only one device will be accessed by the host device 28 during a memory operation. Typically, the memory devices 30A, 30B and 30C are assigned addresses by way of jumper or switch settings represented by elements 34A, 34B and 34C.
The FIG. 2 approach requires that dedicated pins be provided on each of the integrated circuit memory devices 30A, 30B and 30C to receive the jumper wires or switches for assigning the addresses. These pins increase the pin count for the integrated circuits thereby increasing the cost of the packaging for the devices and increasing the likelihood that there will be mechanical problems and manufacturing errors through soldering and the like. These extra pins are also subject to defects and increase the possibility of damage to the integrated circuits as a result of electrostatic discharge.
A memory system comprising a memory controller and a plurality of memory devices coupled to a common system bus. The memory controller is configured to issue memory program instructions, memory read instructions, memory erase instructions together with control parameters over the system bus to the memory devices. Each of the memory devices includes an array of non-volatile memory cells having control gate connected to common word lines, drains connected to common bit lines and sources connected to at least one source line.
The memory devices each further include a memory operation manager configured to receive the control parameters over the system bus and to transfer the control parameters to a plurality of volatile control registers. The operation manager is further configured to carry out the memory operations by applying operation voltages to the word, bit and source lines of the array, with at least one of the operation voltages being controlled by the control parameters. In a typical system, the control parameters originating from the memory controller to determine the magnitude and duration that the voltages are applied to the array. This feature permits, among other things, the memory operations to be controlled by the external memory controller so that the memory operations can be optimized. Further, the amount of control circuitry contained in each of the memory devices is minimized so as to reduce the manufacturing costs of the memory devices.
FIG. 1 is a simplified block diagram of a prior art memory system using radial selection techniques.
FIG. 2 is a simplified block diagram of a prior art memory system using a serial selection technique.
FIG. 3A is a simplified block diagram of a memory system in accordance with the present invention showing multiple memory devices and a common controller.
FIG. 3B is a simplified block diagram of a memory system in accordance with another embodiment of the present invention showing multiple memory devices arranged in banks.
FIG. 4 is a block diagram of the interface circuitry used in the memory devices of the FIG. 3A and 3B memory systems.
FIG. 5 is a schematic diagram showing details of the interface circuitry of FIG. 4.
FIG. 6 is a truth table relating to the select logic of the FIG. 4 and 5 diagrams.
FIG. 7 is a truth table relating to the command decoder circuitry of the FIG. 4 and 5 diagrams.
FIG. 8A is a timing diagram showing the relationship for the signals on the Tag Bus, Data Bus and the Strobe signal on the FIG. 3A and 3B block diagrams illustrating the manner in which addresses are assigned to two of the memory devices.
FIG. 8B is a timing diagram showing the relationship for the signals on the Tag Bus, Data Bus and the Strobe signal on the FIG. 3A and 3B block diagrams illustrating the manner in which the memory devices are selected and deselected.
FIG. 9 is block diagram showing the organization of the memory flash cell array for each of the FIG. 3A and FIG. 3B Memory Devices 38.
FIG. 10 is a more detailed diagram of the Command Decoder Logic block and of the Register block of the FIG. 4 interface circuitry.
FIG. 11 is a truth table for the Command Decoder Logic block of the FIG. 4 interface circuitry.
FIGS. 12A-12N are diagrams representing exemplary interface registers used in carrying out various memory operations.
FIG. 13 is a flow chart illustrating the sequence for assigning addresses to the memory devices.
FIG. 14 is a flow chart depicting the sequence for selecting one of the memory devices.
FIG. 15 is a flow chart depicting the sequence for deselecting one of the memory devices.
FIG. 16 is a flow chart illustrating the manner in which an exemplary memory read operation is carried out.
FIG. 17 is a schematic diagram of the sense amplifier and associated circuitry of the individual Memory Devices 38 of FIGS. 3A and 3B.
FIGS. 18A and 18B are a flow chart illustrating an exemplary Program Operation for the FIG. 3A and 3B memory systems.
FIG. 19 is a schematic diagram showing additional details of the Program Latch of FIG. 16.
FIGS. 20A and 20B are a flow chart illustrating an exemplary Erase Operation for the FIG. 3A and 3B memory systems.
FIG. 21 is a schematic diagram of one of the control registers used to control operation of the memory device together with associated decoder circuitry.
FIG. 22 is a schematic diagram of the Byte Address Counter and associated circuitry.
FIG. 23 is a schematic diagram of the Packet Address Counter and associated circuitry.
FIGS. 24A and 24B are block diagrams of the charge pump circuits used to provide the various voltages used in carrying out memory read, program, erase and other operations.
FIG. 25 is a timing diagram illustrating the operation the Memory Device responding to a read command.
FIG. 26 is a schematic diagram of the Program Data Registers which hold the data to be programmed into the memory and the associated decoder circuitry.
Referring again to the drawings, FIG. 3A is a simplified block diagram of an embodiment of a memory system in accordance with the present invention. The exemplary memory system to be described is a mass storage memory system used to emulate the operation of a hard disc drive. It should be noted, however, that the subject invention is suitable for use in a large variety of other applications.
The memory system includes a Controller 36 and a plurality of memory devices 38A, 38B and 38C. The Controller 36 can be implemented using a wide variety of techniques including ASIC (Application Specific Integrated Circuit) technology. The Controller 36 is best understood by describing its functionality, with the particular implementation forming no part of the present invention. Since the Controller can be readily constructed by persons of ordinary skill in the art based upon the following functional description, details regarding a particular implementation will not be provided so as to avoid obscuring the true nature of the present invention in unnecessary detail.
The memory devices 38A, 38B and 38C are preferably separate integrated circuits utilizing non-volatile memory technology. The exemplary embodiment will be described using flash memory technology, that being the preferred memory technology. Each Memory Device 38A, 38B, and 38C is capable of storing a substantial amount of data such as forty Megabits. Several memory devices can be added to the memory system to increase the storage capacity.
In order to reduce the cost of adding memory devices to the system, it is desirable to maximize the amount of memory control functions performed by the Controller 36 and to minimize the number of such functions performed by the Memory Devices 38. Among other things, this approach tends to minimize the use of duplicative control circuitry and further provides increased design flexibility, as will become apparent. Further, the number of pins on the Memory Devices 38 is minimized.
As will be explained in greater detail, the Memory Devices 38 are assigned unique addresses by Controller 36 each time the memory system is powered up or after the system has been reset. This must occur before the memory system is operational as a memory. However, as will be explained in greater detail, it is possible to access and use the Memory Device 38A, connected directly to Controller 36 by Select Line 46A, without having assigned addresses for any of the Memory Devices 38. The address assignments occur serially, with the Memory Device 38A, being assigned the first address, such as address 0001. This address is stored in Device 38A and will be used to decode addresses present on the Data Bus 42 during normal memory operations. Once Device 38A has been assigned an address, the next device, Device 38B is assigned an address, such as address 00010. This process will continue until each of the Memory Devices 38 is assigned a unique address. At that point, Controller 36 is capable of communicating with all or a selected one of the Memory Devices so that normal memory operations can take place such as memory reading and writing. The circuitry for carrying out the sequence for assigning addresses to the Memory Devices 38 will now be described.
FIG. 4 is a simplified diagram of the interface circuitry present in each of the Memory Devices 38. Although Device 38A connected to Select line 46A coming directly from Controller 36 is depicted, this being the first Memory Device 38 to be assigned an address, the interface circuitry is identical for all of the Devices 38. The Tag Bus 40 is connected to the Memory Device by way of five integrated circuit pads (not depicted) which are electrically connected to five separate Input Buffers represented by block 48. The Input Buffers can be enabled or disabled by a combination of Input Enable (IEN) and Out/In (O/I) signals generated within the Device 38 depending upon various conditions to be described. An Input Buffer 50 is also provided for receiving the Strobe Line 44 by way of an integrated circuit pad (not depicted), with Buffer 50 also being controlled by the internal Input Enable and Out/In signals. A further Input Buffer 51 is provided for receiving the Select signal on line 46A. Buffer 51 is permanently enabled.
The Data Bus 42 is connected to an I/O Buffer & DL Pass Logic block 52 which represents eight separate bi-directional buffer circuits connected to separate ones of the lines of the Data Bus 42. Block 52 further represents bypass circuitry which can be used to bypass the buffer circuits so that the bit lines of the memory array can be accessed directly for testing purposes.
As will be explained in greater detail, the data placed on Data Bus 42 by Controller 36 and received by the I/O Buffer and DL Pass Logic block 52 is used in a wide variety of memory operations. Those include memory read, program and erase operations. The data received on Data Bus 42 is also used in conjunction with various commands present on the Tag Bus 40 for performing various memory operations, including the initial assignment of addresses to each of the Memory Devices 38. The circuitry associated with decoding commands on the Tag Bus 40 and associated data from the Data Bus 42 on lines 58 is represented by Command Decode Logic block 62.
Some of the circuitry used for the initial assignment of addresses is accomplished by circuitry represented by Select Logic block 64. Select Logic block 64 provides a large number of control signals to be subsequently described, including signal Sel Out 0 on line 46B, by way of a buffer 68. As noted in connection with FIG. 3A, the signal Sel Out are generated by each of the Memory Devices 38 and forwarded to the adjacent Memory Device 38 during the initial sequence of assigning addresses. In addition, the Select Logic block 64 generates signal Input Enable (IEN) used by Input Buffers 48 and 50.
Most of the memory functions are carried out utilizing an array of registers represented by Register Block 66. Among other things, Register Block 66 provides the addresses used by the memory in read and programming operations. In addition, Register Block 66 is used to control the various voltages used in memory operations, as will be explained in greater detail.
FIG. 5 is a more detailed diagram of the select logic circuitry from the interface diagram of FIG. 4 used for, among other things, the initial selection of Memory Device 38 addresses. FIG. 6 is a Select Logic Table, a form of truth table, which depicts the various inputs to the FIG. 5 circuitry and the corresponding state of various latches or flip-flops. The Tag Bus column of the Select Logic Table shows certain selected Tag Bus 40 inputs that relate to the operation of the select logic circuitry. The Tag Bus inputs comprise five bits that are shown using Hexadecimal notation. The next column shows the state of the eight bits that are present on the Data Bus 42, namely bits D0-D7.
The next column of the Select Logic table shows the output {overscore (L)}ow {overscore (V)}cc produced by a Power On Reset circuit 70. Signal {overscore (L)}ow {overscore (V)}cc is at a low (“0”) state when the primary memory supply voltage Vcc is below a predetermined operating level and is momentarily low when the primary supply Vcc is first turned on. The next column is signal Lock Out (LOUT) which is stored in a latch represented by JK flip-flop 72. As will be explained, signal Lock Out is used for many memory functions including the prevention of the alteration of the Memory Device 38 address stored in an Address ID Latch 78 once an address has been assigned. Flip-flop 72 can be said to be in a lockout state when signal Lock Out is active and in a non-lockout state when the signal is inactive. Continuing, signal Dev Sel, which is stored in a latch represented by JK flip-flop 74, functions to permit the associated Memory Device 38 to respond to memory read and write commands originating from the Controller 36. When signal Dev Sel is active, the flip-flop 74 is said to be in a device-selected state and when the signal is inactive, flip-flop 74 is said to be in a device-not-selected state.
The next column of the Select Logic table shows signal Sleep (or SLP) produced by flip-flop 71. As will be explained in greater detail, when signal Sleep is active, the Memory Device is in a low power state with essentially all circuitry, including the control registers that make up Register Block 66 (FIG. 4), being in a reset state except for the Address ID Latch 78. Since Latch 78 is not reset, it is possible to switch the Memory Device from this sleep mode to an operational mode without the necessity of reassigning addresses.
The Memory Device 38 is in a reset state when Lock Out latch 72, Device Select latch 74, Sleep latch 71 and Address ID latch 78 are reset. In addition, the various control registers which make up Register Block 66 are reset. Thus, the reset state is similar to the sleep state except that the Address ID latch 78 is reset so that the Memory Device must go through an initial address assignment after entry into the reset state if the memory is to be used in the serial selection configuration. As can be seen from the table of FIG. 6, the Memory Device can be caused to enter the reset state in various ways. By way of example, when the Memory Device is powered up, the Power On Reset circuit 70 will issue signal {overscore (L)}ow {overscore (V)}cc (“0”) thereby causing the appropriate circuitry to be reset. Other techniques to cause entry into the reset state, such as the use of Tag Commands, will be described later.
As will also be explained in greater detail, the Memory Devices 38 are switchable between a device-enabled state and a device-disabled state. When in the device-enabled state, the Memory Device 38 is capable of carrying out memory operations, such as memory read, erase and program operations. Memory Device 38 is in the device-enabled state under two conditions: (1) signal Sel In is active and signal Lock Out is inactive, that is, flip-flop 72 is the non-lockout state and (2) signal Dev Sel is active, that is, flip-flop 74 is in the device-enabled state and signal Lock Out is active, that is, flip-flop 72 is in the lockout state and signal SLP is inactive, that is, flip-flop 71 is in a non-sleep state.
Condition (1) permits the Memory Device 38 to become operative at power on, when flip-flop 72 is reset, by simply making signal Sel In active. There is no need, for example, to provide the Memory Device with a local address stored in the Address ID Latch 78. Since Sel In is connected to an external pin, it is possible to fully test a large number of the Memory Devices with a simple test fixture. Further, condition (1) operation makes it possible to configure the Memory Devices 38 in a radial manner such as depicted in FIG. 1 in addition to the serial selection configuration of FIG. 3A. There is no need to make an initial address assignment.
In addition, when using the serial selection configuration of FIG. 3A, it is possible to use the Memory Device 38A connected directly to Controller 36 as a boot memory which can be accessed directly by Controller 36 at power on so that the Controller can read a boot code stored in Device 38A using the Sel In 0 signal. Among other things, that boot code could be used to carry out address assignment sequence upon completion of which permits the Memory Devices to enter Condition (2).
Signal Match is generated by a comparator circuit 76 which compares seven bits of address stored in an Address ID Latch 78 with seven bits of address coming from the Input Buffer 52A connected to Data Bus (D0-D6). It should be noted that Input Buffer 52A of FIG. 5 is part of the I/O Buffer and DL Pass Logic 52 of FIG. 4 with 52A representing only the data input function of Buffer 52. As previously noted, Buffer 52 (52A) will function to input data only if signal Out/In is inactive (not [Tag 19 or Tag 1A]) and signal Input Enable (IEN) is active. When signal Out/In is active or signal Input Enable (IEN) is inactive, circuit 52 is disabled with respect to incoming signals on Data Bus 42. When signal Out/In is active and signal IEN active, circuit 52 is enabled to input signals on the Data Bus.
As will be explained in greater detail, the Address ID Latch 78 stores the unique address assigned by the Controller 36 to the associated Memory Device 38. This address is sometimes referred to as a local address.
FIG. 7 is an Enable & Select Out Logic truth table having input signals {overscore (L)}ow {overscore (V)}cc ({overscore (LVCC)}), Lock Out (LOUT), Dev Sel (DSEL) and Sleep (SLP) previously noted in connection with FIG. 6. The outputs include the previously noted signal Input Enable (IEN) which is produced by OR gate 80 of the FIG. 5 circuit diagram. Signal Input Enable functions, among other things, to enable the Input Buffers 48 and 50 so that signal Strobe can be received and so that the contents of the Tag bus 40 can be received. Buffer 52A (FIG. 5) associated with the Data Bus will also be enabled provided that signal Out/In is inactive (not [Tag 19 or Tag 1A]), the Strobe Input and the Data Bus, respectively.
Continuing, signal Sel Out is outputted by buffer 68 once the subject Memory Device 38 has completed the initial assignment of addresses. As will be explained, this permits the adjacent Memory Device 38 connected to receive signal Sel Out to be assigned an initial address. Signal Decoder Enable (DEN) is produced by logic gate 82 and functions, among other things, to enable a Local Tag Decoder 84 which is used to decode data on the Tag Bus when the subject Memory Device 38 is being addressed for memory read and program operations.
Further details regarding the manner in which the Controller 36 assigns addresses to the multiple Memory Devices 38 will now be described. FIG. 13 is a flow chart showing the address assignment sequence. In addition, FIG. 8A is a timing diagram illustrating a portion of the sequence for the first two Memory Devices 38A and 38B.
At initial power on, the Power On Reset circuit 70 will cause various elements of the interface circuitry to be initialized, as previously described. Signal {overscore (L)}ow {overscore (V)}cc, which is inverted by an inverter 85, will be at a low level so that the Address ID Latch 78 for all of the Memory Devices 38 will be cleared by way of NOR gate 86, inverter 83 and NOR gate 99. In addition, NOR gate 86 will clear the latch 74 associated with signal Dev Sel and latch 72 associated with signal Lock Out. This is confirmed by the FIG. 6 table which shows that the four latches are in the reset state when signal {overscore (L)}ow {overscore (V)}cc is low (“0”), regardless of the state of the remaining input signals. Similarly, the table of FIG. 7 shows the state of signals Input Enable (IEN), Sel Out (SOUT) and Decoder Enable (DEN) when signal {overscore (L)}ow {overscore (V)}cc is active (“0”).
As represented by blocks 152 and 154 of the FIG. 13 flow chart, it is preferable that the system be reset using a dedicated reset command. This step, which will be described in greater detail, ensures that the logic circuitry is in the desired initialized state at the beginning of the sequence.
Just prior to the initiation of the sequence to assign addresses by the Controller 36 (FIG. 3A), signal Sel In 0 on line 46A from the controller is inactive (“0”). This can also be seen in the FIG. 8A timing diagram. As indicated by the table of FIG. 7, the second row indicates the state of all of the Memory Devices 38A, 38B and 38C at this stage of the sequence. All of the Input Enable signals are the same state as Sel In, namely “0”. Thus, as can be seen from FIGS. 4 and S, the Strobe and Tag Bus Input Buffers 48 and 50 are disabled. As shown in FIG. 8A, when Controller 36 initiates the sequence to assign addresses, the Controller causes signal Sel In 0 on line 46A to go active (“1”). This step in the sequence is represented by element 156 of the FIG. 13 flow chart. Signal Sel In 0 will remain active until the address assignment sequence is completed. As can be seen in FIG. 3A, line 46A is connected only to Memory Device 38A and none of the other Memory Devices. Thus, as again indicated by the second row of the table of FIG. 7, signal Sel In to the Memory Devices 38A will cause signal Input Enable to go active (“1”). That is because buffered signal Sel In applied to one input of OR gate 80 which generates signal Input Enable. Thus, the Tag Bus, Strobe Input and I/O Data buffers 48, 52A and 50 of Memory Device 38A, and only that Memory Device, will be enabled. Memory Device 38A is thus in the above-noted device-enabled state.
Although Controller 36 will continue with the local address assignment sequence, it should be noted that the Memory Device 38A is now capable of carrying out memory operations, including memory read, program and erase operations. This important feature permits the Memory Devices 38 to be connected radially as shown in FIG. 1 and without the necessity of assigning addresses to any of the Devices. As previously noted, testing of the Memory Devices 38 is also facilitated by this feature since a large number of Devices 38 can be easily placed in the device-enabled state by simply making the Sel In pin of all of the Devices active. In addition, this feature permits first Memory Device 38A connected directly to the Select In 0 signal generated by Controller 36 to be used as a boot memory which contains the code to be used by Controller 36. Such boot memory may be used for, among other things, carrying out the remainder of the address assignment sequence. As will be explained later in greater detail, it is possible to arrange the Memory Devices into a plurality of banks as shown in FIG. 3B, with each bank having a first Memory Device 38A, 38AA and 38AB connected to a separate Sel In line provided by a Controller 36A. Continuing with the description of the sequence for assigning local addresses, as indicated by element 158 of the FIG. 13 flow chart, once signal Sel In is made active, Controller 36 then places a seven bit address on Data Bus 42 which will be the address (local address) used by the Controller in the future to access Memory Device 38A. Typically, the first Memory Device 38A address is 00H, as can be seen in the timing diagram of FIG. 8A. The Controller will also place a unique set of five bits of data on the Tag Bus 40, such data being referred as the ID Select Tag. In the present example, the ID Select Tag is 08H. The table of FIG. 6, in the fourth row, sets forth some of the features of the ID Select Tag (or simply Tag 08H).
Once the address has been loaded onto the Data Bus 42 and the ID Select Tag 08H has been loaded onto the Tag Bus 40, element 160 of the FIG. 13 timing diagram indicates that Controller 36 generates a Strobe pulse on line 44 connected to all of the Memory Devices. The timing relationship between the data in the Data Bus and Tag Bus and the Strobe signal is depicted in the FIG. 8A timing diagram.
As previously noted, only Memory Device 38A is capable of responding to the Tag Bus, Data Bus and Strobe signal since only Memory Device 38A has an active signal Input Enable. The seven bits of address data on the Data Bus are loaded into the Address ID Latch 78 (FIG. 5) in parallel. This is accomplished by clocking the Latch 78 with the Strobe signal by way of AND gate 90 which is enabled by the output of an AND gate 96 to be described. In addition, the ID Select Tag on the Tag Bus, Tag 08H, is presented to a Global Tag Decoder 92 which is also clocked by signal Strobe.
The Global Tag Decoder 92 decodes the Tag 08H and provides an output on line 94 indicating the ID Select Tag (Tag 08H) has been detected on the Tag Bus 40. As will be described later, a Local Tag Decoder 84 is also provided which is used to decode the other commands associated with memory read and program operations. Unlike the Global Tag Decoder 92, the Local Tag Decoder 84 is disabled until signal Decoder Enable is active.
The Tag 08H decode on line 94 is connected to one input of AND gate 96 having an output connected to the J input of Lock Out latch 72. The second input of AND gate 96 receives signal {overscore (LOUT)} which is active (“1”) at this point. Thus, Tag 08H functions to set the Lock Out Latch (flip-flop 72) so that signal Lock Out (LOUT) goes active. This occurs on the falling edge of the Strobe signal generated in conjunction with Tag 08H. In addition, the output of AND gate 96 is further connected to AND gate 90 so that the Strobe signal will further function to clock the Address ID Latch 78 so that the address on the Data Bus will be loaded into Latch 78. When Lock Out goes active, the output of AND gate 96 goes inactive so that the Strobe signal can no longer clock Address ID Latch 78. Thus, the Latch 78 will not be altered by subsequent Strobe signals so that the ID (local address) stored in the latch is retained. In this state, the contents of the Address ID Latch cannot be altered except by a certain commands to be described later and except by the Power On Reset circuit 70.
In addition, the active signal Lock Out will enable AND gate 98 so that the signal Sel Out 0 on line 46B will go active (FIG. 8A). As can be seen in FIG. 3A, Sel Out 0 is forwarded to adjacent Memory Device 38B and functions as the Sel In signal for that device. As indicated by element 162 of the FIG. 8A timing diagram, a determination is then made as to whether all of the Memory Devices 38 in the system have been assigned an address. This is accomplished by monitoring the state of signal Sel Out N on line 46D (FIG. 3A). At this stage of the sequence, signal Sel Out N will be inactive thereby indicating that the last Memory Device 38C has not yet been assigned an address.
The assignment sequence will then proceed to element 164 (FIG. 8A) which indicates that Controller 36 will generate a new local address for the next Memory Device 38B. In the present example, the address is 01H. The sequence will then return to element 158 (FIG. 13). The local address is placed on the Data Bus 42 and Tag 08H is placed on the Tag Bus 40. Note that only Memory Device 38B will respond. Memory Device 38A will not respond, as previously described, because signal Lock Out will be active thereby disabling AND gate 90 so that the Address ID Latch 78 will not be clocked by signal Strobe. The other Memory Devices 38C will not have an active signal Sel In so that the Input Buffers 48, 50 and 52A will be disabled.
Thus, local address 01H will be loaded into Address ID Latch 78 of Device 38B in the same manner as previously described in connection with Memory Device 38A. As can be seen in the FIG. 8A timing diagram, this is accomplished by placing Tag 08H on the Tag Bus 40 and the next address to be assigned, address 01H, on the Data Bus 42. This sequence will continue until all of the Memory Devices have been assigned a unique local address which is stored in the Address ID Latch 78 associated with the Memory Device 38. Once the last Memory Device, represented by Device 38C has been assigned an address, Controller 36 will sense signal Sel Out N on line 46D going active thereby ending the assignment sequence. Controller 36 will then end the sequence by causing signal Sel In 0 to go inactive (element 166 of FIG. 13).
Once all of the Memory Devices 38A, 38B and 38C have been assigned addresses, the memory system is ready to be accessed in a serial select methodology. By way of example, if Controller 36 is to read or write to a particular Memory Device 38, a serial select sequence is carried out to enable to particular Memory Device to respond to a series of interface commands. It is no longer possible to access the Memory Devices by way of the Sel In signals due to the active Lock Out condition of all of the Devices.
The manner in which one of the Memory Devices 38 is selected will be described in connection with the FIG. 14 flow chart and the timing diagram of FIG. 8B. It should be noted that multiple Memory Devices 38 can be selected. In that event, the same memory operation will be performed on each selected Memory Device. It should be further noted that once a Memory Device has been selected, the Device will remain selected until the Device is deselected or until the Device is reset, either at power on or by a reset Tag command to be described.
In order to select a particular Memory Device 38, Controller 36 will cause the Sel In 0 signal on line 46A to go active as represented by element 168 of the FIG. 14 flow chart. This signal will propagate through all of the Memory Devices 38 of the system since signal Lock Out is active in all of the Devices. As indicated by element 170, Controller 36 will enter a wait state in order to permit the signal to propagate through the system. An active Sel In signal at each of the Memory Devices 38 will cause signal Input Enable produced by gate 80 to go active so that all of the Input Buffers 48, 50 and 52 in all of the Memory Devices 38 will be enabled.
The address of the Memory Device 38 to be selected comprises seven bits D0-D6. The bits represent the local address of the Memory Device stored in the Address ID Latch 78 (FIG. 5). Thus, if Memory Device 38A is to be selected having address 00H, the value 80H is placed on the Data Bus, as indicated by the FIG. 8B timing diagram together with Tag 02H on the Tag Bus 40. Controller 36 will also produce a Strobe signal when the appropriate data are present on the Data and Tag buses, as indicated by element 174.
The address on the Data Bus 38 will be received by all of the Memory Devices 38 of the system. The address on the Data Bus will then be compared with the local address stored in the Address ID Latch 78 by way of Comparator 76. Only one of the Memory Devices 38, Device 38A, should have a stored local address 00H which compares with the address on the Data Bus. The Comparator 76 of the Memory Device 38A will then generate an active signal Match.
The active signal Device Sel will cause signal Decoder Enable at the output of gate 82 of selected Device 38A to be active. Thus, the Local Tag Decoder 84 of Device 38A, and only Device 38A, is enabled. As previously noted, Local Tag Decoder 84 functions to decode signals on the Tag Bus for carrying out memory operation, including Read, Program and Erase operations.
Once signal Dev Sel is active, Controller 36 will cause signal Sel In 0 on line 46A to go low or inactive as indicated by element 176 of FIG. 14. This step, which is optional, will cause the input buffers for all of the Memory Devices 38 other than Device 38A to be disabled. The deselected Memory Devices 38 will thus not respond to data present on the Data and Tag buses thereby preventing circuitry on the deselected devices from toggling in response to the inputs so as to minimize power consumption.
As previously noted, it is possible to select more than one Memory Device 38 of the system. This is accomplished by repeating the above-described sequence for each Device to be selected, using the address of the target Device in each sequence. Each selected Memory Device 38 will then respond to memory commands, such as write commands, erase commands and read commands in the same manner so that multiple operations will be performed simultaneously on the selected Devices.
The timing diagram of FIG. 8A further illustrates the manner in which a selected Memory Device 38 can be deselected using Tag 02H. FIG. 15 is a flow chart illustrating the sequence for deselecting a Memory Device 38. As indicated by the last row of the table of FIG. 6, Tag 02H with modifier D7 set to “0” will cause a device to be deselected. Thus, assuming that Device 38A is to be deselected, Tag 02H will be placed on the Tag Bus and 00H will be placed on the Data Bus.
As indicted by element 178 of the FIG. 15 flow chart, Controller 36 first causes signal Sel In 0 to go active in the event it was not already active. This will propagate to each of the Memory Devices 38, with Controller 36 waiting a predetermined amount of time as indicated by element 180 of the flow chart. This will cause signal Input Enable (IEN) of the Memory Devices 38 to go active. Note that this step can be skipped since signal Input Enable (IEN) will usually be active on all Devices that are in a selected state by virtue of gate 106. Controller 36 will then place Tag 02H on the Tag Bus and 00H on the Data Bus as shown in the FIG. 8A timing diagram and as indicated by element 182 of the FIG. 15 flow chart. Comparator 76 of Memory Device 38A will then generate signal Match. In addition, Global Tag Decoder 92 will detect the presence of Tag 02H on the Tag Bus and will also detect that D7 on the Data Bus is set to a “0” and thereby produce an active signal on line 91. Signal Match and line 91 (Tag 02, D7=0), along with signal {overscore (SLP)} are connected to respective inputs of an AND gate 110, the output of which is connected to the K input of Dev Sel flip-flop 74 by way of an OR gate 112. Controller 36 will then issue a Strobe signal thereby clocking flip-flop 74 on the falling edge so that signal Dev Sel becomes inactive thereby causing Device 38A to be deselected. Note that signal Lock Out is still active so that, among other things, the Address ID Latch 78 containing the assigned address for the Memory Device 38A cannot be altered.
As indicated by the third row of the FIG. 6 table, the Memory Devices 38 are all set to a reset state by the Power On Reset circuit 70 which generates signal {overscore (L)}ow {overscore (V)}cc. When the Device 38 is in the reset state, Lock Out flip-flop 72, Dev Sel flip-flop 74, Sleep flip-flop 71 of all of the Memory Devices 38 are reset by the output of NOR gate 86 so that the corresponding signals are inactive. In addition, the Address ID Latches 78 are all reset to zeros by signal {overscore (L)}ow {overscore (V)}cc by way of NOR gate 86, inverter 83 and NOR gate 99. Assuming that signal Sel In is inactive, Signal Input Enable (IEN) is inactive so that the Input Buffers 48, 50 and 52A are in a low power, disabled state. In addition, the Control Registers are all reset in this mode thereby causing the memory circuitry associated with each Register to assume a disabled state so as to consume no power, as previously noted.
Tag commands can also be used to reset the Memory Devices 38. A Global Reset command, Tag 01H with modifier bit D0 set to “1” will reset all Memory Devices 38 irrespective of whether the Device is in a selected state (Dev Sel active). This command is depicted in the first row of the FIG. 6 table. When the Global Reset command is detected by the Global Tag Decoder 92 of a Memory Device, the signal on line 87 out of Decoder 92 becomes active. This signal is connected to one input of AND gate 103, with the second input being connected to receive signal Strobe (buffered). Thus, when Tag 01H, D0=1 is active and signal Strobe changes state to active high, the output of OR gate 86 will go low. This will cause flip-flops 71 (Sleep), 72 (Lock Out) and 74 (Dev Sel) to be reset by gate 86 and will cause the Address ID Latch 78 to be reset by way of inverter 83 and NOR gate 99. In addition, the output on line 87 of the Global Tag Decoder 92 is connected to one input of a NOR gate 102, with the output of gate 102 being connected to one input of an AND gate 101. The second input of gate 101 receives signal Strobe (buffered), with the output of gate 101 being connected to a second input of NOR gate 99. Thus, when line 87 at the output of Global Tag Decoder 92 becomes active when Tag 01, D0=1, and signal Strobe changes state to active high, the Address ID Latch 78 is cleared by the output of NOR gate 99.
It is also possible to reset only those Memory Devices 38 that are in a selected state (Dev Sel active). Row 2 of the FIG. 6 depicts a Local Reset Command which resets only those Memory Devices where Dev Sel is active. As can be seen in FIG. 5, the Global Tag Decoder 92 receives signal Dev Sel from flip-flop 74. When Controller 36 places Tag 0FH on the Tag Bus and 01H on the Data Bus (D0=1), the Global Tag Decoder 92 output on line 95 will go active for those Memory Devices where Dev Sel is active. The K input of Dev Sel flip-flop 74 will go high when the Tag Decoder output on line 95 is active by virtue of the connection of line 95 to an input of an OR gate 102 and the connection between the output of OR gate 102 to an input of OR gate 112. Thus, when signal Strobe (buffered) changes state to active high, Dev Sel flip-flop 74 will be reset so that signal Dev Sel goes inactive.
Continuing, the active signal on line 95 of the Global Tag Decoder 92 is active, the K input of the Sleep flip-flop 71 will be high since the output of OR gate 102 is connected to one input of OR gate 104. Thus, when signal Strobe (buffered) changes state to active high, Sleep flip-flop 71 will be reset so that signal Sleep (SLP) goes inactive.
Finally, the OR gate 102 is connected to the K input of Lock Out flip-flop 72. Flip-flop 71 will therefore be reset when signal Strobe (buffered) changes state thereby making signal Lock Out (LOUT) go inactive. The output of OR gate 102 is also connected to one input of AND gate 101, with the second input of gate 101 receiving signal Strobe (buffered). The output of gate 101 is connected to the reset input of Address ID Latch 78 so that Latch 78 will be cleared of any local address.
As previously noted, it is possible to command one or more of the Memory Devices 38 to a Sleep mode which is similar to the reset mode except that the Address ID Latch 78 is not cleared. As shown in row five of the FIG. 6 table, Tag 01H, D=1, functions to set all Memory Devices 38 which have previously been assigned an address which is stored in Address ID Latch 78 into the Sleep mode. As shown in row six of the table, Tag 0FH, D=1, Dev Sel, is used to place Memory Devices 38 which are in the selected state (Dev Sel “1”) in the Sleep mode. When the Control Registers are reset when in the Sleep mode and other reset modes, the register contents are all zeros. The CMOS memory control circuits controlled by these registers are implemented so that they will entered a disabled state under these conditions so that they will consume essentially no power.
Assuming that Tag 01H, D1=1, are placed on the Tag and Data buses, respectively, the Global Tag Decoder 92 output on line 107 will go active. Line 107 is connected to one input of OR gate 105 so that the Sleep flip-flop 71 will be set when signal Strobe (buffered) changes state to active high. Among other things, when in the Sleep state ({overscore (SLP)} is a “0”), AND gate 106 is disabled to that signal Input Enable can be made active only by way of the Sel In signal. Further, signal {overscore (SLP)} will disable AND gates 100 and 110 so that an active signal Match cannot be used to change the state of the Dev Sel flip-flop 74.
When Controller 36 issues Tag 0FH, D1=1, the Global Tag Decoder 92 output on line 109 becomes active for every Memory Device 38 which is selected (Dev Sel active). Line 109 is connected to one of the inputs of NOR gate 105 so that the K input of the Sleep flip-flop 71 will be high. Thus, when signal Strobe (buffered) changes state to active high, signal Sleep (SLP) will become active and the Memory Device will enter the Sleep mode.
As can be seen from the table of FIG. 6, Sleep flip-flop 71 can be reset in various ways, including by way of Tag 01H, D0=1 which causes the flip-flop to be reset through the clear input and Tag 01H, D2=1; Tag 0FH, D0=1; Tag 01H, D0=1and Tag 0FH, D2=1, any of which will cause the output of OR gate 104, the output of which is connected to the K input of flip-flop 71, to be active when signal Strobe (buffered) changes state to active high. This will cause signal Sleep to become inactive so that the Memory Device is no longer in the Sleep mode.
The FIG. 3A memory system is organized in a serial select configuration. As previously described, FIG. 3B is a block diagram of a memory system arranged in a combination serial and radial select configuration. Three banks of Memory Devices 38 are shown, with each bank having N number of Devices. Although not shown in FIG. 3B, each Memory Device 38 of the system is connected to common Tag Bus 40 and Data Bus 42 and Strobe line 44. Controller 36A is configured to provide a separate signal Sel In to each of the banks of Memory Devices 38. The number of banks of Memory Devices 38 can be increased by configuring Controller 36A to produce additional independently controlled signal Sel In.
The sequence for assigning addresses to the Memory Devices 38 for the memory system of FIG. 3B is similar to the sequence described in connection with FIG. 3A. Controller 36A carries out the assignment sequence one bank at a time, starting for example, with the first bank connected to line 46A carrying signal Sel In 0. The signals Sel In connected to the remaining two banks are left inactive when addresses are assigned to the first bank. Once the first bank addresses are assigned, signal Sel In 0 is made inactive and signal Sel In 0A is made active so that the second bank addresses can be assigned. This process is continued until all of the banks have been assigned addresses. Additional banks of Memory Devices 38 can be accommodated by configuring Controller 36A to provide additional signals Sel In.
As previously noted, Memory Device 38 is placed in the device-enabled state, the Controller 36 has the ability to perform various memory functions on the Memory Device 38, including memory read and memory program operations. The device-enabled state is entered whenever both signals Input Enable, produced by gate 80 (FIG. 5), and Decoder Enable, produced by gate 82, are active. The Command Decoder Logic block 62 (FIG. 4), which includes the Logic Tag Decoder 84 (FIG. 5) functions primarily to decode certain commands that are placed on the Tag Bus 40 by the Controller 36. As will become further apparent, the subject system provides a very high degree of flexibility so that a wide variety of memory operations can be controlled by Controller 36 so as to, among other things, accommodate different types or versions of Memory Devices 38. This is accomplished, in part, by utilizing Controller 36 to control the various detailed steps necessary to carry such memory operations as programming, reading and erasing. The exemplary system will be described, as previously noted, as a system which emulates the operation of a conventional hard disk drive, with the PCMCIA signals provided to Controller 36 (FIG. 3A).
FIG. 9 is a simplified diagram of the organization of an exemplary flash memory array for use on a single one of the Memory Devices 38. The total capacity of the array is 40 Megabits. The array has a total of ten Main Blocks, each having a capacity of four Megabits, which are addressed using addresses A22-A19. Each four Megabit Main Block is made up of eight 512 k bit Erase Blocks which are addressed using addresses A18-A16. The Erase Blocks have separate common source line which permit the Erase Blocks to be separately erased. Continuing, each Erase Block consists of 128 Sectors, with each Sector storing 4352 bits. The Sectors are addressed using addresses A15-A9. Finally, each Sector consists of 17 Packets, with the Packets being addressed by A8-A5, Ax. Address Ax is used to decode the 17th packet, with the 17th packet typically containing certain overhead bits such as error correction codes and the like.
FIG. 10 is a more detailed diagram of the Command Decoder Logic block 62 and the Register block 64 of FIG. 4. The various signals originating from the Command Decoder Logic block 62 that are provided to the various registers than make up the Register block 66 are briefly described in the following Table 1.
TABLE 1 | |||
Byte Address | Increments the Byte Address | ||
Increment (BAI) | Register (FIG. 12E). | ||
Byte Address | Loads the Byte Address Register | ||
Load (BAL) | (FIG. 12E) with the byte address | ||
present on the Data Bus [D0-D4] | |||
Block Address | Loads the Block Address Register | ||
Load (BLAL) | (FIG. 12B) with the block address | ||
present on the Data Bus [D0-D6] | |||
Packet Address | Increments the Packet Address | ||
Increment (PAI) | Register (FIG. 12D). | ||
Packet Address | Loads the Packet Address Register | ||
Load (PAL) | (FIG. 12D) with the packet | ||
address present on the Data Bus | |||
[D0-D4] | |||
Sector Address | Load the Sector Address Register | ||
Load (SAL) | (FIG. 12C) with the sector | ||
address present on the Data Bus | |||
[D0-D7] | |||
Select Control | Selects a Control Register based | ||
Register (SCR) | upon data on the Data Bus [D0-D4] | ||
Read Control | Causes the contents of a selected | ||
Register (RCR) | Control Register to be outputted | ||
to the Register Data Bus 59 (FIG. | |||
4) | |||
Clear Control | Clears all Control Registers. | ||
Registers (CCR) | |||
Write Control | Loads data from the Data Bus [D0- | ||
Registers (WCR) | D7] to the selected Control | ||
Register by way of bus 58 (FIG. | |||
4) | |||
Read Data | Transfers contents of the | ||
Register (RDR) | selected Data Register to the | ||
Register Data Bus 55 (FIG. 4). | |||
Write Data | Transfers contents of the Data | ||
Register (WDR) | Bus 58 (FIG. 4) onto the selected | ||
Data Register for programming | |||
using the Byte Address. | |||
Load Sense Amp | Load Sense Amplifier Data into | ||
Data (LSAD) | Sense Amp latch 132 (FIG. 17). | ||
Out/In (O/I) | Controls direction of I/ | ||
Buffers | |||
52 when signal Input | |||
Enable (IEN) is active. When O/I | |||
is a “1”, the |
|||
driven and when “0” the Data Bus | |||
inputs data. | |||
Low Power | Indicates the low power state and | ||
(LPWR) | is active when in the Sleep Mode | ||
(Sleep = “1”) and when the Lock | |||
Out not active (L OUT = “0”) | |||
provided Sel In inactive. | |||
FIG. 11 is a truth table for the Command Decoder Logic showing various selected inputs and selected Decoder Logic outputs. The inputs include data placed on the Tag Bus 40 and on the Data Bus 42, signal Lock Out (latch 72 of FIG. 5), signal Sleep 10 (latch 71 of FIG. 5), signal Dev Sel (latch 74 of FIG. 5) and Decoder Enable (gate 82 of FIG. 5).
The various registers represented by block 64 are used to carry out a broad array of memory operations. The number of such registers used depends upon the number of memory functions that are to be controlled, as will be explained. In a typical system, there may be up to and exceeding a dozen different registers, with each register being capable of storing eight bits of data. In order to maximize the flexibility of the system, it is possible to address each of the registers, to write to the registers and to read back the contents of the registers. In addition, there is the capability of clearing the registers either locally or globally, although some registers do not require this capability. There are some registers that are read only registers that can be used in test modes to read out internal signals.
In order to carry out the four register operations (address, write, read and clear), there are four commands that are placed on the Tag Bus 40. These commands are sometimes referred to herein as Tag Commands. A first Tag Command (0BH) is used to select a register, with the address of the register being placed on the Data Bus 42. A second Tag Command (0CH), functions to write to a selected register, with the Data Bus 42 containing the data to be written into the register. A third Tag Command (1AH) is used to read the contents of a selected register. Finally, a fourth Tag Command (0FH), which was previously described in connection with the Select Logic circuitry, is used to clear all of the registers that are clearable when the associated modifier bits D2-D7 are set to 001000. As can be seen in the table of FIG. 10, there are several Tag Commands in addition to the four commands just described.
Registers
As previously noted, a memory system in accordance with the present invention preferably utilizes an array of registers that are used to control memory functions. As will be explained, memory operations such as read operations are carried out by performing one or more individual sub-operations. It is desirable to maximize the number of memory functions that can be controlled by Controller 36 so as to provide as much flexibility as possible.
An exemplary Control Register 270 and some of the associated circuitry, including a Register Decoder 272, is shown in FIG. 21. A typical Memory Device 38 may utilize ten or more such registers. Each of the registers has a unique five bit address, R0-R4, which is also sometimes referred to as the name of the register when expressed in Hexadecimal format.
With certain exceptions, the registers must be accessed prior to performing operations on the registers. This is accomplished by the issuance of a Tag Command 0BH on the Tag Bus along with the address of the register on the Data Bus (Table 1). Tag Command 0BH causes the address R0-R4 present on the Data Bus to be presented to the Register Decoder 272. Only the Decoder 272 having the corresponding address will respond by becoming enabled.
Once a register has been selected in this manner, data can be loaded into or out of the register, as will be explained. In addition, certain registers may be accessed directly without the use of Tag Command 0BH, as will be explained.
Referring to the drawings, FIG. 12A is a diagram representing Register 00H, sometimes referred to as the ID Code register. Register 00H has an address 00H (00000000) which is used to select the register. Register 00H, the ID Code Register, contains eight bits which identify the memory type which can be read out by the user. Register 00H is hard wired and thus cannot be modified.
Note that the four address registers can be accessed directly, without the use of Tag Command 0BH, by using special dedicated Tag Commands. As can be seen by the table of FIG. 11, dedicated Tag Commands 05H, 04H, 03H, and 09H can be used to load addresses into the Erase Block Register (01H), the Sector Address Register (02H), the Packet Address Register (03H) and the Byte Address Register (04H), respectively, without the necessity of first selecting the address registers.
The Packet Address Register (FIG. 12D) is designed so that an address loaded into the register can be sequentially incremented so that group of Packets can be sequentially addressed. Controller 36 need only provide an initial address, if the initial address is other than zero. The Packet Address Register includes a Bit 7 that enables and disables an increment function, with a “1” enabling the function. When the increment function is enabled, the Packet Address is incremented under circumstances to be described. The Packet Address Register can also be incremented independent of the state of Bit 7 using Tag Command 07H as shown in the table of FIG. 11. As noted in Table 1, when Tag Command 07H is decoded by Local Tag Decoder 84, the Command Decoder Logic 62 (FIG. 10) will issue signal Packet Address Increment (PAI) which will cause the packet address in the Packet Address Register to increment, provided the increment function is enabled as indicated by Bit 7 of the Packet Address Register.
The Byte Address Register (FIG. 12E) is also capable of being incremented using Tag Command 09H depending upon the state of Bit 7 of the Byte Address Register. As can be seen in the table of FIG. 11, this increment function is controlled by the state of modifier bit D7 on the Data Bus when Tag 09H is issued. When the increment function is enabled, issuance of Tag Command 0DH (FIG. 11) will cause the Command Decode Logic 62 to generate signal Byte Address Increment (BAI) which will increment the address in the Byte Address Register.
FIG. 22 is a simplified diagram of the circuitry used for carrying out the Byte address increment function previously noted. Controller 36 will issue Tag Command 09H used for loading the Byte Address and for controlling the increment function. As can be seen from the table of FIG. 11, Controller 36 will also place bits D4-D0 on the Data Bus 42 which represent memory addresses A4 to A0 together with bit D7 set to control the byte increment function. Data bits D5-D6 are don't cares.
The FIG. 12E Byte Address Register is implemented in the form of a flip-flop 282 and a five bit ripple counter 280. The output of flip-flop 282 is represented by Bit 7 of the Byte Address Counter and the five bit output of counter 280 is represented by Bits 1-5 of the Byte Address counter 280. As previously noted, the Byte Address Register (flip-flop 282 and counter 280) does not need to be selected by Tag Command 0BH in order to be loaded. As can be seen in the table of FIG. 11, Tag Command 09H is used to load a five bit Byte Address into counter 280 and is used to control the enable function of the Byte Address Counter. The address bits and enable bit is placed on the Data Bus together with the Tag Command 09H.
Bits D4-D0 from the Data Bus are provided to the inputs of the five bit ripple counter 280 (FIG. 22), with the output of counter 280 (Byte Address Counter) being addresses A0-A4 which define a Byte to be read out of the memory. An AND gate 281 is provided which will generate a signal Byte Address Load (BA Load) when Tag 09H is detected along with signal Strobe. Counter 280 is transparent so that the Byte address D4-D0 loaded into the counter will be used to read a single Byte if the increment function is disabled.
Bit D7 on the Data Bus is set to a “1” in the event the Byte increment function is to be enabled. This bit is connected to the D input of flip-flop 282 which is initially in a reset state so that the Q output of the flip-flop will be set when gate 281 generates BA Load. The Q output, signal Binc En, is connected to an input of an AND gate 283 with the other inputs being connected to receive three outputs of Local Tag Decoder 84 (FIG. 5) by way of an OR gate 284. Those outputs are Tag 0EH, 19H and 0AH. The output of gate 283 is, in turn, connected to one input of an OR gate 286, with the other input connected to receive a further output of the Local Tag Decoder, Tag 0DH. Finally, the output of gate 286 is connected to an input of an AND gate 288, with the remaining output of gate 288 receiving signal Strobe. The output of gate 288 generates signal BA Increment (BAI) which is connected to the increment input of counter 280 and will cause the counter to increment.
Assuming that signal Binc En is active, counter 280 will increment when any one of Tags 0EH, 19H and 0AH are received. As can be seen in the Table of FIG. 11, Tag 0E causes signal Load Sense Amp Data (LSAD) to be generated so that data read out of the memory will be stored in the Sense Amplifier latches, as will be described. Once the data is latched, a subsequent Byte can then be read when the Byte Address Counter 280 is incremented. Tag 19H is used to read data and will operate to increment Byte Address Counter 280 when the increment function of the counter is enabled. Finally, Tag 0AH is used to load the data to be programmed, and will also cause the Byte Address Counter 280 to increment when the increment function is enabled.
As can be seen from the inputs to OR gate 286, when Tag 0DH is detected, the Byte Address counter 280 will be incremented independent of the state of the increment enable signal Binc En. The table of FIG. 11 shows Tag 0DH is a special tag used exclusively to increment the Byte address counter 280.
Signal CLRADD is a reset signal used to reset the various components that make up the Byte Address Register (FIG. 12E) and the Packet Address Register (FIG. 12D). Flip-flop 282 is reset by signal CLRADD under various conditions as can be seen from FIG. 22. By way of example, when signal Sleep is produced, flip-flop 282 will be reset by way of OR gate 290 and NOR gate 292. Similarly, when signals Lockout (LOUT) and Decoder Enable (DEN) are both active, flip-flop 282 will be reset by way of an NOR gate 294, OR gate 290 and NOR gate 292. In addition, when Tag 0FH is detected and D4=1 is placed on the Data Bus, flip-flop 282 will be reset by way of AND gate 296 and NOR gate 292.
FIG. 23 shows circuitry which comprises the Packet Address Register (FIG. 12D). The register includes a Packet Address Counter 298 having inputs connected receive bits D4-D0 from the Data Bus and a flip-flop 300. As shown in the table of FIG. 11, Tag 03H is used to load the five bits of data which correspond to Packet Address (A5-A8, Ax) into Counter 298. In addition bit D7 on the Data Bus is used to control the increment function of Counter 298. Signal Packet Address Load (PA Load), which is used to load Counter 298, is generated by an AND gate 302 when Tag 03H is detected and signal Strobe is generated.
Flip-flop 300 is used to generate a signal Pinc En which is connected to the increment input of the Packet Address Counter 298. If bit D7 on the Data Bus is set to a “1” so that the increment function is to be enabled, flip-flop 300 will be set so that signal Packet Address Increment Enable (Pinc En) is active. Signal Pinc En is connected to one input of an AND gate 304, with signal A4 being connected to the other input. Signal A4 is generated by the Byte Address Counter 280 of FIG. 22. As will be explained, the Packet Address Counter will be incremented when both signal Pinc En is active and when the Byte Address Counter A4 switches from a “1”to a “0”.
As can also be seen from the table of FIG. 11, Tag 07H can be used to cause the Packet Address Counter 298 to increment independent of signal Pinc En. When Tag 07H is detected and signal Strobe is produced, it can be seen that Counter 298 will be incremented once by way of AND gate 308 and OR gate 306. Note also that flip-flop 300 and Counter 298 are reset by signal CLRADD, the same signal used to reset the Byte Address Counter 280 (FIG. 22) and associated flip-flop 282.
Additional Control Registers and the functions performed by the Registers will be described as part of the following description of basic memory operations, including memory read, program and erase operations. It should be noted that each Memory Device 38 includes various sources of voltages used for carrying out these memory operations, as can be seen in FIGS. 24A and 24B. In the present example, a High Current Charge Pump circuit 310 (FIG. 24B) is provided that is capable of generating a positive output voltage in the range of +6 volts. A VBL Switch circuit 316 is used to control the magnitude of the Charge Pump Circuit 310 output voltage and to forward the voltage VBL to the Y Decoder circuitry to be applied to the Bit Lines during memory operations. Three trim bits are used to control the magnitude of voltage VBL, with these bits being set by one of the Control Registers to be described. The output of the High Current Charge Pump 310 is also connected to a Source Switch circuit 318 having an output to be connected to the Source Line of a selected one of the Erase Blocks during an erase operation. Circuit 318 has three trim bits that are used to control the magnitude of the Source Line Erase voltage.
A Low Current Charge Pump circuit 314 is also provided (FIG. 24C) which is capable of generating a positive voltage in the range of +11 volts. A VPX Switch circuit 320 is included having eight trim bits that are used to adjust the magnitude of the voltage VPX derived from charge pump circuit 314 output. As is well known, voltage VPX is forwarded to the X Decoder circuitry and is applied to selected Word Lines depending upon the memory address during memory operations. A Negative Charge Pump circuit 322 generates a negative voltage having a range of approximately −10 volts. Four trim bits are provided for controlling the magnitude of the negative voltage VN produced by circuit 322. Negative voltage VN is applied to the Word Lines by way of the X Decoder circuit during memory operations erase operations.
A Word Line Supply circuit 324 is also included for applying the Word Line voltage to the Word Lines by way of the X Decoder circuitry. Unlike the other circuitry depicted in FIGS. 24A and 24B which is common to the entire Memory Device 38, the Word Line Supply circuitry 324 is repeated for each of the eighty Erase Blocks of the Memory Device. When the Erase input of the Word Line Supply circuit 324 is active an Erase Block is to be erased, with such Erase Block associated with the Supply circuitry 324 being the selected Erase Block or a deselected Erase Block. If the Erase Block is the selected Block, signal Erase Block will be active, otherwise the signal is inactive.
When signals Erase and Erase Block Select are both active, the associated Erase Block is the selected Block. In that event, Word Line Supply circuit 324 will function to connect negative voltage VPN to the X Decoder circuit for application to all of the Word Lines of the selected Erase Block. When signal Erase is active, but signal Erase Block is inactive, an Erase Block other than the Block associated with the Supply circuit 324 is to be erased. In the event, primary supply voltage VCC is provided to the X Decoder circuit of the deselected Block. VCC is also provided to the Decoder when neither the Erase signal nor the Erase Block select are active. Finally, when Erase Block is active, but Erase is inactive, an operation other than an erase operation is to be carried out on the associated Erase Block. In that event, Word Line Supply circuit 324 applies positive voltage VPX to the Word Lines by way of the X Decoder.
Read Operations
As is well known, flash memory cells have threshold voltages which vary depending upon whether the cell is in an erased state or a programmed state. The threshold voltage is typically defined as the control gate to source voltage across the cell necessary for the cell to conduct one microampere of current for a drain voltage of +1 volt. An erased cell has a relatively low threshold voltage (VTHE), +3 volts for example, and a programmed cell has a relatively high threshold voltage (VTHP), +5 volts, for example. In a read operation, the memory system will operate to ground the source of the cell being read and will apply an appropriate voltage to the control gate by way of the associated Word Line. The drain of the cell, which is connected to the associated Bit Line, is typically set to a small positive voltage such as +1 volt. If the cell has been programmed, the current through the cell will be relatively small and if the cell is in an erased state the current will be relatively high.
In a Read Operation, the cell current is measured using a Sense Amplifier. The same Sense Amplifier is also used in other operations related to Read Operations, such as Erase Verify and Program Verify operations. In the present example, a single word is read out consisting of eight bits of data. In order to read an entire word in a single operation, a total of eight Sense Amplifiers are provided. FIG. 17 shows a single Sense Amplifier 116 having a pair of differential inputs. One input is connected to a reference voltage which is related to the current flow through a Flash Cell Reference 118. The other input is connected to a read voltage which is related to the current flow through the associated Bit Line 124.
The circuitry associated with Flash Cell Reference 118 is shared by all eight of the Sense Amplifiers 116. Reference 118 has a control gate-source voltage which is determined by a Reference Voltage Generator 120. Generator 120 produces a voltage which is nominally set to the voltage applied to the control gate (Word Line) of the cell being read. Thus, the Flash Reference Cell will produce a current which will tend to track current of the cells in the memory array with variations in temperature, processing and the like. The voltage applied to the Flash Reference Cell can be adjusted by way of four digital trim inputs which provide over sixteen different voltages depending upon the state of the trim bits in a manner similar to Digital-To-Analog Converter. The Reference Voltage Generator can thus be used to adjust the margins used in Read Operations and other similar operations such as Program Verify.
The current flow through the Flash Reference Cell 118 is converted to a voltage by a current to voltage (I/V) converter 122. I/V Converter 122 has two trim inputs that can be used to adjust the magnitude of the voltage applied to the drain of Flash Reference Cell 118. Block 124 represents a selected one of the Bit Lines of the memory array. The particular Bit Line is selected based upon a portion of the address provided to the memory system using decoding circuitry which is not depicted. In Read Operations, the Bit Line 124 is connected to the Sense Amplifier 116 by way of a pair of pass gates or switches 126 and 128. The switches each include a P and an N channel transistor, with the state of the switches being controlled by complementary switching signals. Switch 126 is controlled by a signal Bypass Program Latches and switch 128 is controlled by signal Sense Enable.
The current flow through the selected Bit Line 124, the cell current, is converted to a voltage by I/V Converter 130, with the voltage being applied to the non-inverting input of Sense Amplifier 116. I/V Converter 130 also functions to apply a voltage to the selected Bit Line 124 during the read operation. This voltage, which is applied to the drains of the cells in the array connected to the selected Bit Line can be adjusted using the same two trim bits used by I/V converter 122. Thus, the voltages applied to the drain of the cell being read and to the drain of the Flash Reference Cell 118, both typically nominally +1 volt, can be precisely adjusted together.
In a Read Operation, the voltage indicative of the current of the cell being read, and which is applied to the inverting input of Sense Amplifier 116, will be less than the reference voltage applied to the non-inverting input if the cell is in an erased state. This will cause the output of Sense Amplifier 116 to go high thereby indicating that the cell is a logical “1”. If the cell being read has been programmed, the Sense Amplifier output will remain low indicating that the cell is a logical “0”. The output of the Sense Amplifier 116 is held in a Sense Amplifier Latch 132 for eventual read out through switch 135 controlled by the Read Data Register (RDR) signal (Table 1). The read data from switch 135 are transferred to the Data Bus 42 by way of lines DL[8] (55) of FIG. 4. As noted in Table 1, the Command Decode Logic causes signal Load Sense Amplifier Data (LSAD) to be generated so that the Sense Amplifier Latch 132 will latch the output of the Sense Amplifier 116.
In program operations, switches 126 and 128 are turned off. In addition a switch 134 is turned on by a signal Sense Block Bypass thereby bypassing the Sense Amplifier circuitry. This will enable data present on the Data Bus to be applied to the input of a Program Latch 136. If the data to be programmed is a logical “0”, the target cell in the array is to be programmed. In that event, Program Latch 136 will output +6 volts to the Bit Line 124, which, together with the voltages applied to the associated Word and Source Lines, will cause the cell to be programmed.
In the event the data is a logical “1”, the cell should not be programmed but should be left in the original erase state. Thus, the Program Latch output will be set to near ground potential.
FIG. 16 is a flow chart depicting an exemplary Read Operation. In this operation, a Sector of the memory will be read out. As can be seen from FIG. 9, each Sector contains 544 Bytes of data. It is assumed the Controller 36 has already assigned each of the Memory Devices 38 a unique address (effectively A29 to A23) which is stored in each of the associated Address ID Latches 78 (FIG. 5). The first step of the Read Operation, as indicated by element 186 of FIG. 16, is the selection of the Memory Device 38 to be read. As previously described, this is accomplished by Controller 36 placing Tag Command 02H of the Tag Bus 40 and certain data on Data Bus 42 (FIG. 6). Bit D7 of the data, the modifier bit, is set to “1” so that a Memory Device is selected rather than deselected. Bits D6 to D0 are set to correspond to address bits A29 to A23 of the target Memory Device. As can be seen from FIG. 6, this will cause the single selected one of the Memory Devices 38 to be selected (Dev Sel is Set).
Once a Memory Device 38 is selected, Tag Command 0FH is issued and placed on Tag Bus 40 for the purpose of resetting those Registers of the selected Device that are capable of being reset. Data is placed the Data Bus at the same time Tag 0FH is issued. The data act as modifier bits to define the function that Tag 0FH will perform. The data is 08H (00001000), which means that only bit D3 is set to a “1”. As can be seen in FIG. 11 table, when only bit D3 is set, Tag 0FH will function to reset the resettable Registers of the selected Memory Device. This is accomplished by issuance of signal Clear Control Register (CCR) by Command Decode Logic 62 (FIG. 10), with signal CCR being connected to the clear input of the Control Registers (FIG. 21).
In addition, Register Control A (FIG. 12F) is selected and bit 4 is set so as to enable a memory reference voltage generator which is normally deselected to minimize power consumption. The register is first selected by placing Tag 0BH on the Tag Bus, with 05H being placed on the Data Bus so that the Register Control A (05H) is selected. Next, Bit 4 of the register is set to a “1” by using Tag Command 0CH which, as indicated by table of FIG. 11, function to load data present on the Data Bus into the selected register. In this case the data on the Data Bus is 10H so that only Bit 4 of Register Control A is set.
Next, as indicated by element 188 of FIG. 16, various memory circuits used to control memory read operations are set to a proper state by selecting the appropriate ones of the Control Registers using Tag Command 0BH and by loading appropriate data into the registers for controlling the state of such circuitry in the same manner that the reference voltage generator was enabled earlier in the read sequence. By way of example, Control Register B (FIG. 12G) is selected using Tag Command 0BH and placing 06H on the Data Bus. Control Register B (06H) contains eight trim bits that are applied to VPX Switch 320 used to control the magnitude of the voltage VPX applied to the Word Lines during the memory operation.
Typically, three different Word Line voltage magnitudes are used for memory read, memory program and memory program verify operations. The applied voltage is typically in the range of +6 volts. Thus, once Control Register B has been selected, Tag Command 0CH is used to load the eight bits of voltage trim data placed on the Data Bus 40 into Control Register B.
Continuing, Control Register C (FIG. 12H) is then selected using Tag Command 0BH. This register contains a Bit 7 which is used to enable the Low Current Charge Pump circuit 314 which produces the voltage which, after being trimmed by the VPX Switch circuit 320, is applied to a selected Word Line during a memory programming and read operations. Control Register further contains a Bit 6 which functions to connect high voltage program data to a selected Bit Line during a program operation. Bit 5 of Control Register C enables and disables the VPX Switch circuit 322 which produces voltage VPX.
In order to carry out a memory read operation, Tag Command 0CH is used to set Bit 7 to a “1” so as to enable the Low Current Charge Pump 314. Next, Control Register D (FIG. 12I) is selected and Bits 0-3 are set to a selected trim value in order to control the read margin in read operations. These four bits are used to control the magnitude of the output voltage of the Reference Voltage Generator 120 (FIG. 17). In addition, Bit 1 of Control Register D is set to a “1” to enable the Reference Voltage Generator 120.
Continuing, the address of the first Byte of the first Packet of the Sector be read out of the selected Memory Device is provided to the Device by the Controller 36 as indicated by element 190 of FIG. 16. This is accomplished in two steps. First, Tag Command 05H is placed on the Tag Bus and the seven address bits A22 to A16 identifying the particular Erase Block containing the Sector to be read are placed on the Data Bus. As previously noted, Tag Command 05H functions to automatically select the Block Address Register (FIG. 12B) so that the Tag Command 0BH is not needed. Tag Command 05H will also cause signal BAL to be generated (Table 1) by the Command Decode Logic 62. Signal BAL will cause the data present on the Data Bus to be loaded into the Block Address Register (FIG. 12B). Note that it would also be possible to access the Erase Block Address Register for testing purposes and the like by issuing Tag Command 0BH and placing the address of the register (01H) on the Data Bus.
Next, Controller 36 will issue a Tag Command 04H for loading the Sector Address Register (FIG. 12C) with addresses A15 to A9. The address bits are placed on the Data Bus at the same time Tag 04H is placed on the Tag Bus. The Tag Command will cause the Command Decoder Logic 62 to issue signal Sector Address Load (SAL) which will cause the Sector Address Register (FIG. 12C) to be loaded with the address bits on the Data Bus. The contents of the Packet Address Register (FIG. 12D) and the Byte Address Register (FIG. 12E) will both be initialized by using Tag Commands 03H and 09H, respectively. Data 80H will be placed on the Data Bus so that the increment feature (Bit 7) will be enabled for both register and so that the initial address bits A8 to A0 and Ax will be set to all zeros at this stage of the sequence.
Next, Register Control E is selected. As can be seen in FIG. 12J, when Bit 4 is a “1”, all of the Word Lines of a selected Erase Block are selected. The selected Erase Block is determined by the address just loaded into the address registers. However, all of the Word Lines of the Erase Block will be forced to the same state by Bit 4, independent of the loaded address. Bit 3 causes all of the Word Lines of the selected Erase Block to be deselected when Bit 3 is a “0”. Bit 2, when set to a “1”, causes all eight main blocks of the Memory Device to be selected. Bit 1, when set to a “1”, causes all eight Erase Blocks of the selected Main Block to be selected. Finally, Bit 0, when set to a “0”, causes all of the Main Blocks to be deselected.
In this stage of the Read operation, Register Control E is loaded with 09H so that Bit 3 is set to a “1”thereby enabling all of the Word Lines of the selected Erase Block and so that Bit 0 is set to a “1” so that all Main Blocks are enabled.
Continuing, Controller 36 will then issue a Tag Command 0BH to select Register Control F (FIG. 12K). Bit 7 of this register is used to connect and disconnect the DL bus to and from the DZ bus. Referring to FIG. 17, signal Sense Block Bypass is controlled by this bit. When the signal is active, switch 134 is conductive bypassing the sense amplifier circuitry so that the DL bus is connected directly to the DZ bus in programming operations. In addition, Bit 1 of Register Control F is used to discharge the Bit Lines of the selected Erase Block when set to a “0” together with the DZ bus. Bit 0 of the register is used to float all Bit Lines of the selected Erase Block when set to a “0”. In the present example, 03H is loaded into selected Register Control F using Tag Command 0CH so that Bits 0 and 1 are set to a “1” so that the Bit Lines and DZ bus will be discharged and so that the float function performed by Bit 0 is disabled. Once the Bit Lines and DZ bus have discharged, a second Tag Command 0CH is issued to set Bit 1 to a “0” thereby terminating the discharge function. Note that since Register Control F was already selected, it is not necessary to repeat the select operation using Tag Command 0BH.
The actual reading of the array is then commenced as indicated by element 192 of FIG. 16. As is well known, some of the address bits will be applied to an X Decoder which will select a predetermined one of the Word Lines of the memory array. As will be explained in greater detail in connection with FIG. 24B, the voltage VPX generated by the low current charge pump circuit will be applied to the selected Word Line. It is possible to use a low current pump since the Word Lines draw little current during read operations. The remaining address bits will be applied to a Y Decoder which will select the eight Bit Lines associated with the eight bits that make up the word to be read. As previously noted, the Bit Line voltage for carrying out read operations is applied by the I/V Converter circuit 130 of FIG. 17. The Source Line of the selected Erase Block is also grounded during the read operation.
At this point in the Read Operation, there is a timeout of a few microseconds as indicated by element 194 of the FIG. 16 flow chart so that the various charge pumps and Word Lines have an opportunity to charge up. The appropriate voltages have been applied to the Word Lines, Bit Lines and the Source Line associated with the eight cells to be read.
The Sense Amplifiers 116 will then sense the presence or absence of current for those eight cells that make up the first Byte of the Sector being read. Controller 36 will issue Tag Command 19H (FIG. 11) with the associated signal Strobe. The timing diagram of FIG. 25 illustrates this aspect of the read operation. Once Tag Command 19H is detected, signal Out/In becomes active so that I/O Buffer 52 (FIG. 4) will be capable of transferring the data being read out of the memory array from DL Bus 55 to the external Data Bus 42. At this time, data held in the Sense Amplifier Latch 132 (FIG. 17) will be placed on the Data Bus 42.
Signal Strobe together with Tag 19H will also cause signal Load Sense Amplifier Data (LSAD) to go active. As previously described, this signal will cause the read data present on the output of the eight Sense Amplifiers 116 (FIG. 17) to be loaded into the associated Sense Amplifier Latch 132. Latch 132 is transparent so that the Sense Amplifier 116 outputs will be present on the external Data Bus 42 at this time. Signal Strobe will then go inactive thereby causing LSAD to go inactive thereby latching the read data. At this point, the reading of the next Byte can commence since any changes in the output of the Sense Amplifiers will not affect the state of the Sense Amplifier Latches 132.
This sequence will be repeated until thirty-two Bytes have been read thereby indicating that the first Packet of the Sector has been read. At this point, address A4 of the Byte Address Counter will switch from a “1” to a “0” so that the Packet Address Counter 298 (FIG. 23) will incremented by way of gates 304 and 306. As indicated by element 200, a determination is then made as to whether the final Packet of the Sector has been read. There are seventeen Packets of data per Sector so if the count is less than sixteen, the sequence will return to element 196 and the first Byte of the second Packet will proceed to be read out. This sequence will continue until all seventeen Packets of data, 512 Bytes, have been read out. The seventeen Packets of data comprise a Sector which represents an entire row of the memory array.
Once the Sector has been read out, the various circuits used in the memory read operation, including charge pumps, are preferably disabled as indicated by element 202 of the FIG. 16 flow chart. This is accomplished by setting appropriate bits in appropriate Control Registers using various Tag Commands. First, Register Control C (FIG. 12H) is selected using Tag Command 0BH and placing 07H on the Data Bus. Once the register is selected, 80H is written into the register using Tag Command 0CH. This will cause Bit 5 to change from a “1” to a “0” thereby disabling the VPX circuit 320 which applies the output voltage VPX derived from the Low Current Charge Pump 314 to the Word Lines. Next, while Register Control C remains selected, Bit 7 is set to a “0” thereby disabling the Low Current Charge Pump circuit 314. A short delay is introduced at this point to allow the charge pump circuit 314 and the Word Line to discharge. Register Control G (FIG. 12L) is then selected and Bits 4 and 6 are set to “0” thereby disabling the sense amplifier circuitry and turning off switch 126 which bypasses the Program Latch 136. Next, Register Control D (FIG. 12I) is selected and all Bits are set to “0” thereby disabling the reference generator and the sense trims. Register Control F is then selected and Bit 0 is set to “1” thereby disabling the Bit Line float function. In addition, Bit 1 is set to a “1” so that the Bit Line discharge function is enabled so as to discharge the Bit Lines and the DZ Bus. Finally, Bit 1 of Register Control F is set back to a “0” thereby terminating the discharge function. That completes the sector read operation.
Program Operations
FIGS. 18A and 18B are flow charts illustrating an exemplary Sector Program Operation of the FIG. 3A memory system. FIG. 19 shows additional details regarding the Program Latch 136 of FIG. 17 used in programming operations. Prior to describing the Sector Program Operation, Program Latch 136 will be described. Latch 136 includes a pair of inverters 138 and 140 connected together with a switch 142 to form a loop. When switch 142 is conductive, inverter are connected to provide positive feedback so that the signal applied to the input of inverter 138 will be latched. Switch 142 is controlled by a signal DLOAD and the inverse of that signal.
An exemplary Sector Program Operation will now be described in connection with FIGS. 18A and 18B. Again, it is assumed that all of the Memory Devices 38 of the memory system have been assigned addresses by Controller 36 so that the Address ID Latch 78 (FIG. 5) of all of the Memory Devices will be set with the address of each associated Device. As indicated by element 204 of FIG. 18A, the Memory Device 38 which is to be programmed is first selected by Controller 36 placing Tag Command 02H on the Tag Bus and certain data on Data Bus 42 (FIG. 6). Bit D7 of the data, the modifier bit, is set to “1” so that a Memory Device is selected rather than deselected. Bits D6 to D0 are set to correspond to address bits A29 to A23 of the target Memory Device. As can be seen from FIG. 6, this will cause the single selected one of the Memory Devices 38 to be selected (Dev Sel is Set). Once a Memory Device 38 is selected, Tag Command 0FH is issued and placed on Tag Bus 40 for the purpose of resetting those Registers of the selected Device that are capable of being reset. Data is placed the Data Bus at the same time Tag 0FH is issued. The data act as modifier bits to define the function that Tag 0FH will perform. The data is 08H (00001000), which means that only bit D3 is set to a “1”. As can be seen in FIG. 11, when only bit D3 is set, Tag 0FH will function to reset the resettable Registers of the selected Memory Device. This is accomplished by issuance of signal Clear Control Register (CCR) by Command Decode Logic 62 (FIG. 10).
In addition, the Reference Voltage Generator is enabled, as previously described in the Read Sector sequence by selecting Register 05H (FIG. 12F) and setting Bit 4 to a “1”.
The address of the Sector to be programmed is then provided to the selected Memory Device 38 as indicated by element 206 of FIG. 8A. First, Tag Command 05H is placed on the Tag Bus and the seven address bits A22 to A16 identifying the particular Erase Block containing the Sector to be programmed are placed on the Data Bus. As previously noted, Tag Command 05H functions to automatically select the Block Address Register (FIG. 12B) so that the Tag Command 02H is not needed. Tag Command 05H will also cause signal BAL to be generated (Table 1) by the Command Decode Logic 62. Signal BAL will cause the data present on the Data Bus to be loaded into the Block Address Register (FIG. 12B). Next, Controller 36 will issue a Tag Command 04H for loading the Sector Address Register (FIG. 12C) with addresses A15 to A9. The address bits are placed on the Data Bus at the same time Tag 04H is placed on the Tag Bus. The Tag Command will cause the Command Decoder Logic 62 to issue signal Sector Address Load (SAL) which will cause the Sector Address Register (FIG. 12C) to be loaded with the address bits on the Data Bus. The contents of the Packet Address Register (FIG. 12D) and the Byte Address Register (FIG. 12E) will both be initialized by using Tag Commands 03H and 09H, respectively. Data 80H will be placed on the Data Bus so that the increment feature (Bit 7) will be enabled for the Byte Address Register (FIG. 12E) and so that the initial address bits A8 to A0, Ax will be set to all zeros at this stage of the sequence.
Continuing, Register Control H (FIG. 12M) is selected, with this register containing Bits 3-5 that are used to control the magnitude of voltage VBL, the voltage applied to the Bit Lines by the Y Decoder circuit during programming. As can be seen in FIG. 24B, the three trim bits are applied to the VBL Switch circuit 316. In addition, the High Current Charge Pump circuit 310 is enabled along with enabling the VBL Switch circuit 316 by setting Bits 1 and 2 to a “1”.
Next, Register Control F (FIG. 12K) is selected and Bit 2 0 and 1 are set to a “1” thereby disabling the Bit Line float function and causing the Bit Lines and DZ Bus to switch to a discharged state. Bit 1 of the register is then set to a “0” to terminate the discharge function. Register Control F (FIG. 12K) is then selected and Bit 7 is set to a “1” thereby causing signal Sense Block Bypass (FIG. 17) to go active thereby turning on switch 134 and bypassing the sense amplifier circuitry.
The data to be programmed into the Sector is then loaded into the selected Memory Device 38, as indicated by element 208 of FIG. 18A. The program data are loaded into thirty-two 8 bit Program Data Registers 400 one byte at a time. FIG. 26 shows the Program Data Registers 400, with each one bit stage of the Register corresponding to the Program Data Latch 136 of FIG. 19. The Program Data Registers are selected by a Program Register Decoder circuit 402 that receives the five bits of Byte Address A0-A4 generated by the Byte Address Counter 280 (FIG. 22).
The data for programming a single Packet, 32 Bytes is loaded one Byte at a time. Tag Command 0AH (FIG. 11) is placed on the Tag Bus 40 and the eight bits of the first Byte of data are placed on the Data Bus 42. Among other things, Tag Command 0AH will cause signal Write Data Register (WDR) to be produced thereby causing Decoder 402 to produce signal DLOADA which is forwarded to Program Register 0 based upon initial address A0-A4 of 0000. This will cause the first Byte of program data to be loaded into a Program Register 0. Next, the second Byte of program data is placed on the Data Bus 42 together with Tag Command 0AH. Tag 0AH will cause the Byte Address Counter 280 to increment so that the Program Register Decoder 402 will select Program Data Register 1 to receive the byte of program data. This sequence is repeated until thirty-two Bytes of programming data are loaded into the thirty-two Program Data Registers.
As indicated by element 210, the programming voltages are then applied to the selected Word Lines and Bit Lines so that the first Byte of data is programmed into the array. Register Control C (FIG. 12H) is first selected and Bit 5 is set to a “1” so as to enable VPX Switch circuit 320 (FIG. 24B). This will cause voltage VPX to be applied to the selected Word Line associated with the cells to be programmed. Register Control I (FIG. 12N) is then selected and Bit 2 is set so that VBL Switch circuit 316 will function to connect the High Current Pump 310 output to line VBL. In addition, Bit 6 is set to a “1” so as to connect the output of the VBL Switch circuit 316 to the Program Latches 136 (FIG. 19) so that the voltage will be applied to the Bit Lines 124 for those Bit Lines associated with a cell to be programmed.
As indicated by element 220, the sequence enters a short wait state while the programming voltages are applied to the memory array. At this point, 32 Bytes of data are programmed at the same time.
The Controller then places appropriate Tag Commands on the Data Bus and places appropriate data on the data bus to turn off the programming voltage s applied to the Word Lines an d Bit Lines (element 222 of FIG. 18A). Register Control H (FIG. 12M) is selected and Bit 2 is set to a “0” thereby disabling VPX Switch circuit 320. There is a short wait at this point to permit the Bit Lines to become discharged. Register Control C (FIG. 12H) is then selected and Bit 6 is set to a “0” thereby disabling VBL Switch circuit 316 so that voltage VBL is no longer applied to the program latches 136. Next, Bit 5 of the register is set to a “0” thereby disconnecting voltage VPX from the Word Lines.
In addition, as indicated by element 224 of the FIG. 18A flow chart, Controller 36 causes the Bit Lines to be discharged. This is accomplished by selecting Register Control F (FIG. 12K) and setting Bits 0 and 1 to a “1”. This disables the float function (Bit 0) and enables the discharge function. Once the discharge is completed, Bit 1 is set back to a “0”.loading appropriate data into one of the Control Registers as indicated by element 224 of FIG. 18A.
A determination is then made as to whether the last Packet of data for the Sector has been programmed (element 226 of FIG. 18A). Since only the first Packet has been programmed, the Packet Address Counter (FIG. 23) will be incremented (element 228) by issuance of Tag Command 07H. Tag Command 07H together with signal Strobe will cause AND gate 308 to be enabled thereby incrementing the counter by way of OR gate 306. Once the Packet address has been incremented, the sequence will return to element 208 of the FIG. 18A flow chart. The next Packet of data will be programmed, with the process being repeated until the last Packet of the Sector has been programmed.
Once the Sector has been programmed, it is necessary to enter a verification sequence to confirm proper programming. As indicated by element 230, the first step of the verification is to set the various circuits that perform the verify function to an enabled state. The verification sequence is similar to the previously-described read operation, with the voltage applied to the Word Line and the voltage margins used by the Sense Amplifier circuitry being set so that any marginally programmed cells will be detected. Preferably, a Byte of data is read out and loaded into a data buffer followed by 31 further read operations until one Packet or 32 Bytes of data are read, as indicated by element 232 of FIG. 8B.
The 32 Bytes of data are transferred to Controller 36 one Byte at a time so that the data read can be compared with the data programmed. This process is repeated until all Packets of the Sector are verified, as indicated by element 234. Once the verification is completed, circuitry used for programming and verification is turned off and the Word Lines are discharge by grounding (element 236). That completes the Sector Program operation.
Erase Operation
As previously explained, Erase Operations are performed on all cells located in a particular Erase Block. FIGS. 20A and 20B are a flow chart illustrating an exemplary Erase Operation for the FIG. 3A memory system. In the exemplary memory system, cells are erased using a negative gate erase sequence as described more fully in patent application Ser. No. 08/606,215 and filed on Feb. 23, 1996 and entitled SEGMENTED NON-VOLATILE MEMORY ARRAY WITH MULTIPLE SOURCES HAVING IMPROVED SOURCE LINE DECODE CIRCUITRY. The contents of such application are hereby fully incorporated into the present application by reference. Erasure is accomplished by setting all of the Word Lines of the selected Erase Block to a large negative voltage, such as −10 volts. The Bit Lines are all left floating (set to a high impedance) and the Source Line of the selected Erase Block is set to a positive voltage, such as +5 volts. This set of conditions will cause any excess electrons present on the floating gate of the cells to be removed thereby causing the cells to become erased. As is conventional, the voltages are applied for a fixed duration, similar to a voltage pulse. The duration is set so that several of such erase pulses need to be applied in order to complete the Erase Operation. After each erase pulse has been applied, Controller 36 will perform an Erase Verification sequence to determine whether all of the cells have been adequately erased. The Erase Verification is a type of read operation which functions to confirm that the threshold voltages of all of the cells have been reduced to the desired level.
Referring to FIG. 20A, the first step of the erase sequence is carried out by Controller 36 first selecting the Memory Device 38 containing the Erase Block to be erased in the manner previously described in connection with the Read and Program operations. Once the Device 38 has been selected, Controller 36 loads the address A22 to A16 of the Main Block which contains the Erase Block to be erased into the Block Address Register (FIG. 12B) (element 238). This is accomplished when Tag Command 05H (FIG. 11) is issued on the Tag Bus 40 and address A22 to A16 are placed on the Data Bus 42. In addition, Controller 36 causes the Bit Lines of the array to float and causes the Word Lines of the Erase Block to be disabled by setting the appropriate bits in the appropriate Control Registers to the desired state. First, Register Control F (FIG. 12K) is selected and Bit 0 is set to a “0” thereby enabling the Bit Line float function. Next, Register Control E (FIG. 12J) is selected and all bits are set to a “0” except for Bit 0 which is set to a “1”. Since Bit 3 is a “0”, all of the Word Line decoders of the selected Erase Block will be disabled.
As indicated by element 240, the various circuits used for carrying out the erase operation are enabled by Controller 36 setting the appropriate bits in the Control Registers which control such circuitry. Register Control B (FIG. 12G) is selected and the appropriate Word Line voltage trim bit values are loaded into the register. Note that the Word Line voltage will be negative, with Bits 0-2 of the register functioning to control the magnitude of the negative voltage applied to Word Line of the selected Erase Block by the Word Line Supply Circuit 324. Register Control H (FIG. 12H) is then selected and Bit 1 is set to a “1” thereby enabling the High Current Charge Pump circuit 310.
Continuing, Register Control I (FIG. 12N) is selected and Bit 6 is set to a “1” so as to enable the Negative Charge Pump circuit 322 (FIG. 24A). In addition, Bits 2-5 of Register Control I are set, with these bits being trim bits coupled to the Source Switch circuit 318 (FIG. 24B) and used to control the magnitude of the positive voltage applied to the Source Line of the Erase Block being erased.
The Source Switch circuit 318 is enabled by setting Bit 2 to a “1”.
Register Control C (FIG. 12H) is then selected and Bits 5 and 7 are set to a “1” to enable Low Current Pump circuit 314 and to enable the VPX Switch circuit 320. These conditions cause the actual erase operation to commence. As represented by element 244 of the FIG. 19A flow chart, the Controller will then wait a pre determined amount of time while the erase voltages are applied. During this wait period, a single erase pulse is effectively applied to the selected Erase Block.
The duration of the wait period is such that a single erase pulse is insufficient to adequately erase the Erase Block. However, after application of each erase pulse, an erase verify sequence is carried out to determine whether the Block has been properly erased. The erase verify sequence functions to read the cells of the Erase Block to confirm that all of the cells have been erased and are in a logic “1” state. As indicated by element 246, the high voltages applied to the Source and Word Lines of the Erase Block are removed. This is accomplished by selecting Register Control H and setting Bit 1 to a “0” thereby turning off the High Current Charge Pump circuit 310. Next, the Source Line is grounded and the Word Lines are left floating as indicated by element 248.
The circuitry which provides the voltage used in the erase verify sequence is then enabled as shown by element 250 of FIG. 20B. As is well known, the voltages are similar to those used in normal read operations, but are set to values that tend to detect cells that have only been marginally erased. By way of example, Register Control B (FIG. 12G) is selected and the Word Line Trim bits contained in that register are set such that the Word Line voltage used in Erase Verify is about 1 volt less than the value used in a normal read operation.
As shown by element 252, the Erase Block is verified by reading one Sector at a time. If the verify sequence indicates that any cells in the first Sector are still in a programmed state (“0” state), element 254 indicates that it will be necessary to apply a further erase pulse to all sectors in the Erase Block. Thus, the read circuitry is disabled and disconnected and the erase circuitry is enabled as indicated by element 256. determination is then made as to whether the number of erase pulses applied exceeds a predetermined maximum number (element 258). If that is the case, it is assumed that the Erase Block cannot be properly erased and the erase sequence will be terminated. Typically, Controller 36 will store an indication that the Erase Block in question is defective and will refrain from further use of such Block. Controller 36 will then disable the high voltage circuitry and other circuitry used in the erase operation as indicated by element 262 thereby concluding the erase operation.
In fact, since only a single erase pulse will have been applied to the Erase Block, the sequence will return to element 238 of FIG. 20A and a second erase pulse will be applied to the Erase Block. This sequence will be repeated until the first Sector of the Erase Block passes the erase verify (element 254). If the first Sector passes, a determination is made as to whether all of the Sectors of the Erase Block have been verified to have been properly erased (element 264). Since only the first Sector has been verified to have been properly erased, the Sector address in the Sector Address Register (FIG. 12C) is then incremented (element 266) by loading a new address into the register and a second Sector is erased and verified. This will continue until all 128 Sectors of the Erase Block have been erased and verified. As indicated by element 268 of FIG. 20B, the Erase sequence is concluded when the high voltage and other circuits used in the sequence are turned off.
Thus, a memory system has been disclosed which minimizes the amount of control circuitry which needs to be incorporated into each of the Memory Devices 38 thereby reducing the cost of manufacturing the Devices. Further, by providing the flexibility of externally controlling each step of carrying out the memory operations, it is possible to optimize such operations for Memory Devices having different characteristics. Although a preferred embodiment of the memory system has been disclosed in some detail, it is to be understood that certain changes can be made by those skilled in the art without departing from the spirit and scope of the invention as defined by the appended claims.
Claims (105)
1. A memory device, comprising:
an array of memory cells;
a control register block for storing a plurality of control parameters;
control register modification circuitry operably coupled to the control register block and configured to reset at least some of a number of control registers in the control register block,
addressing circuitry operably coupled to the array; and
memory operation circuity operably coupled to the control register block and to the array, said memory operation circuitry being configured to:
initiate memory program operations on the array when a first group of the control parameters are present in the control register block and terminate the memory program operations when a second group of the control parameters are present in the control register block;
initiate memory read operations on the array when a third group of the control parameters are present in the control register block and terminate that memory read operations when a fourth group of control parameters are present in the control register block; and
initiate an erase operation on the array when a fifth group of control parameters are present in the control register block and terminate the erase operation when a sixth group of control parameters are present in the control register block.
2. The memory device of claim 1 wherein the memory operation voltages have magnitudes controlled by a plurality of the control parameters.
3. A memory system comprising:
a system bus;
a memory controller coupled to the system bus, with said memory controller being configured to issue memory program instructions and memory read instructions over the system bus; and
at least one memory device coupled to the system bus, with the memory device comprising:
an array of memory cells;
a control register block having a plurality of control registers for storing a plurality of control parameters;
control register modification circuitry operably coupled to the control register block and configured to modify the control parameters in response to memory instructions;
addressing circuitry operably coupled to the array; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to:
initiate memory program operations on the array when a first group of the control parameters are present in the control register block and terminate the memory program operations when a second group of the control parameters are present in the control register block;
initiate memory read operations on the array when a third group of the control parameters are present in the control register block and terminate the memory read operations when a fourth group of control parameters are present in the control register block; and
initiate an erase operation on the array when a fifth group of control parameters are present in the control register block and terminate the erase operation when a sixth group of control parameters are present in the control register block.
4. The memory system of claim 3 wherein the control registers have an associated register address and wherein the memory controller is further configured to issue control register select instructions over the system bus, with the control register select instructions including one of the control register addresses and wherein the memory operation manager is further configured to select one of the control registers based upon the control register address received on the system bus.
5. The memory system of claim 4 wherein the system bus includes a tag bus and a data bus and wherein the control register select instructions include a control register select command, wherein the memory controller is configured to transfer the control register select command over the tag bus and the control register address over the data bus, and wherein the operation manager further comprises a command decoder configured to decode commands on the system bus with the command decoder, in response to detection of the control register select command, causing the control register having an address which corresponds to the control register address received on the data bus to be selected.
6. The memory system of claim 5 wherein the memory controller is further configured to issue control register write instructions over the system bus, with the control register write instructions including a control register write command and control register write data and wherein the memory operation manager is further configured to transfer the write data into a selected one of the control registers in response to detection of the control register write command by the command decoder.
7. The memory system of claim 6 wherein the memory controller is configured to issue the control register write command over the tag bus and the control register write data over the data bus.
8. The memory system of claim 7 wherein the control register write data comprises the control parameters.
9. The memory system of claim 8 wherein the memory controller is further configured to issue control register read instructions over the system bus and wherein the memory operation manager is configured to transfer data stored in a selected one of the control registers over the system bus.
10. The memory system of claim 9 wherein the control register read instructions comprises a control register read command which is transferred over the tag bus and wherein the data stored in the selected control register is transferred over the data bus.
11. The memory system of claim 3 wherein the memory device includes memory operation circuitry controlled by the control registers and is configured to switch to a low power consumption state when the control registers are reset.
12. A memory system comprising:
a system bus;
a memory controller coupled to the system bus, with said memory controller being configured to issue memory program instructions and memory read instructions over the system bus; and
at least one memory device coupled to the system bus, with the memory device comprising:
an array of memory cells;
a plurality of volatile control registers which contain control parameters set by the memory instructions provided by the memory controller; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive the memory instructions over the system bus and to carry out memory read and program operations by applying operation voltages to the array, with at least one of the operation voltages being controlled by at least a first one of the control parameters;
wherein the cells include a drain, a source and a control gate and wherein the operation voltages include a read voltage applied to the control gate of at least one of the cells in the memory read operation and wherein the control parameters include at least two control parameter bits which control a magnitude of the read voltage; and
wherein the operations voltage include a first program voltage applied to the drains of at least one of the cells in the memory program operation and wherein the control parameters includes at least two control parameter bits which control a magnitude of the first program voltage.
13. The memory system of claim 12 wherein the operations voltage include a second program voltage applied to the control gates of at least one of the cells in the memory program operation and wherein the control parameters includes at least two control parameter bits which control a magnitude of the second program voltage.
14. The memory system of claim 13 wherein the memory controller is configured to issue memory erase instructions wherein the cells are non-volatile memory cells and the memory operation manager is configured to carry out memory erase operations by applying voltages to the array and wherein the memory operations voltage includes a first erase voltage applied to at least one of the cells during the erase operation and wherein the control parameters includes at least two control parameter bits which control a magnitude of the first erase voltage.
15. The memory system of claim 14 wherein the memory operations voltage includes a second erase voltage applied to at least one of the cells during the erase operation and wherein the control parameters includes at least two control parameter bits which control a magnitude of the second erase voltage.
16. The memory system of claim 14 wherein the first and second erase voltages are applied to the control gate and source of the cell, respectively, during the erase operation.
17. A memory system comprising:
a system bus;
a memory controller coupled to the system bus, with said memory controller being configured to issue memory instruction over the system bus;
at least one memory device coupled to the system bus, with the memory device comprising an array of memory cells; and
a plurality of volatile control registers which contain control parameters which are set by the memory instructions from the memory controller; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to carry out memory program and read operations in response to the control parameters stored in the control registers, with the memory instructions including a program state command which sets a state of the control parameters such that at least one program operation voltage is applied to the array and a program stop command which sets a state of the control parameters such that the program operation voltage is removed from the array;
wherein the memory operations manager is further configured to configure a magnitude of the at least one program voltage in response to the control parameters; and
wherein the cells include a drain, a source and a control gate and wherein the at least one program voltage includes a first program voltage applied to the drain of the at least one cell and a second program voltage applied to the control gate of the at least one cell and wherein at least two of the control parameters determine a magnitude of the first program voltage and at least two of the control parameters determine a magnitude of the second program voltage.
18. The memory system of claim 17 wherein the memory read operations are carried out by application of a read voltage applied to the control gate of at least one of the cells, with the memory instructions including a read start command which causes the read voltage to be applied to the control gate and a read stop command which causes the read voltage to be removed from the control gate.
19. The memory system of claim 18 wherein at least two of the control parameters function to determine a magnitude of the read voltage.
20. The memory system of claim 19 wherein the cells are non-volatile cells and wherein the memory operations manager is configured to carry out memory erase operations on the array by applying at least one erase voltage to the array.
21. The memory system of claim 20 wherein the memory instructions include an erase start command which sets a state of one of the control parameters such that the at least one erase voltage is applied to the array and an erase stop command which sets a state of one of the control parameters such that the at least one erase voltage is removed from the array.
22. The memory system of claim 21 wherein the at least one erase voltage has a magnitude which in controlled by at least two of the control parameters.
23. The memory system of claim 22 wherein the at least one erase voltage includes a first erase voltage applied to the control gate of at least one of the cells and a second erase voltage applied to the source of at least one of the cells and wherein the first and second erase voltages have magnitudes each of which is controlled by at least two of the control parameters.
24. The memory system of claim 23 wherein each control register has an associated register address and wherein the memory controller is further configured to issue control register select instructions over the system bus, with the contort register select instructions including one of the control register addresses and wherein the memory operation manager is further configured to select one of the control registers based upon the control register address received on the system bus and to transfer the control register write data to the selected one of the control registers.
25. The system of claim 24 wherein the system bus includes a tag bus and a data bus and wherein the control register select instructions include a control register select command and wherein the memory controller is configured to transfer the control register select command over the tag bus and the control register address over the data bus and wherein the memory operation manager further comprises a command decoder configured to decode commands on the system bus with the command decoder, in response to detection of the control register select command, causing the control register having an address which corresponds to the control register address received on the data bus to be selected.
26. A memory system comprising:
a system bus which includes a tag bus and a data bus;
a memory controller coupled to the system bus, with said memory controller being configured to issue memory program instructions, memory read instructions, memory erase instructions and control register write instructions over the system bus, with the control register write instructions including control register write data; and
a plurality of memory devices coupled to the system bus and separate from one another and from the memory controller, with each of the memory devices comprising
an array of non-volatile memory cells having control gates connected to common word lines, drains connected to common bit lines and at least one source line;
a plurality of volatile control registers; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive the control register write instructions over the system bus and to transfer the control register write data to the control registers and to carry out memory read, program and erase operations using the control register write data in the control registers, the memory operations manager including voltage control circuitry;
wherein the voltage control circuitry is configured to switch to a low power consumption state when the control register controlling the circuitry is reset;
wherein each control register has an associated register address and wherein the memory controller is further configured to issue control register select instructions over the system bus, with the control register select instructions including one of the control register addresses and wherein the memory operation manager is further con figured to select one of the control registers based upon the control register address received on the system bus and to transfer the control register write data to the selected one of the control registers;
wherein the control register select instructions include a control register select command and wherein the memory controller is configured to transfer the control register select command over the tag bus and the control register address over the data bus and wherein the memory operation manager further comprises a command decoder configured to decode commands of the system bus with the command decoder, in response to detection of the control register select command, causing the control register having an address which corresponds to the control register address received on the data bus to be selected; and
wherein the voltage control circuitry is configured to apply voltages to the word lines, the bit lines and the at least one source line; during the memory program, road and erase operations wherein the voltage control circuitry is controlled by at least one of the control registers.
27. The memory system of claim 26 wherein the memory operation manager further comprises reset circuitry configured to reset at least some of the control registers and wherein the memory controller is further configured to issue control register reset instructions over the system bus, with the memory operation manager causing the reset circuitry to reset at least some of the control registers in response to receipt of the control register reset instructions.
28. A memory system comprising:
a system bus;
a memory controller coupled to the system bus, with said memory controller being configured to issue memory program instructions, memory read instructions, memory erase instructions and control register write instructions over the system bus, with the control register write instructions including control register write data; and
a plurality of memory devices coupled to the system bus and separate from one another and from the memory controller, with each of the memory devices comprising
an array of non-volatile memory cells having control gates connected to common word lines, drains connected to common bit lines and sources connected to at least one source line;
a plurality of volatile control registers; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive the control register write instructions over the system bus and to transfer the control register write data to the control registers and to carry out memory read, program and erase operations using voltage control circuitry configure to apply voltages to the word lines, bit lines and at least one source line, with the control register write data operating to control a magnitude of at least one voltage applied to the array during the memory operations by the voltage control circuitry;
wherein the voltage control circuitry farther comprises a first voltage source configured to provide a first positive voltage relative to a circuit common of the memory device and wherein the control register write data operates to control a magnitude of the first positive voltage and comprises two first source magnitude control parameter bits.
29. The memory system of claim 28 wherein the control register write data that operates to control the magnitude of the first positive voltage comprises three first source magnitude control parameter bits.
30. The memory system of claim 29 wherein the first positive voltage is applied to one of the word lines during the memory read operations.
31. The memory system of claim 29 wherein the first positive voltage is applied to one of the word lines during the memory program operations.
32. The memory system of claim 31 wherein the first voltage source comprises a first charge pump circuit switchable between an operating state and a non-operating state, with the first charge pump circuit consuming reduced power in the non-operating state.
33. The memory system of claim 32 wherein the control register write data includes a first voltage source control parameter bit which operates to switch the first charge pump circuit between the operating and non-operating state.
34. The memory system of claim 32 wherein the voltage control circuitry further comprises a second voltage source configured to provide a first negative voltage relative to the circuit common, with the control register write data operating to control a magnitude of the first negative voltage and comprising two second voltage source magnitude control parameter bits.
35. The memory system of claim 34 wherein the control register write data operating to control the magnitude of the first negative voltage comprises three second voltage source magnitude control parameter bits.
36. The memory system of claim 34 wherein the first negative voltage is applied to one of the word lines during the memory erase operations.
37. The memory system of claim 36 wherein the second voltage source comprises a second charge pump circuit switchable between an operating state and a non-operating state, with the second charge pump circuit consuming reduced power in the non-operating state.
38. The memory system of claim 36 wherein the control register write data includes a second voltage source control parameter bit which operates to switch the second charge pump circuit between the operating and non-operating state.
39. The memory system of claim 34 wherein the voltage control circuitry further comprises first switching circuitry which is configured to switch between a select mode where the first positive voltage is available for application to the word lines and a deselected mode where the first positive voltage is not available for application to the word lines and wherein the control register write data comprises a first voltage source switch control parameter bit which controls the mode of the first switching circuitry.
40. The memory system of claim 39 wherein the voltage control circuitry further comprises second switching circuitry which is configured to switch between a select mode where the first negative voltage is available for application to the word lines and a deselected mode where the first negative voltage is not available for application to the word lines and wherein the control register write data comprises a second voltage source switch control parameter bit which controls the mode of the second switching circuitry.
41. The memory system of claim 37 where the voltage control circuitry further comprises a third voltage source configured to provide a second positive voltage relative to the circuit common of the memory device which is applied to the bit lines during at least one or the memory operations and wherein the control register write data further comprises two third source magnitude control parameter bits which operate to control a magnitude or the second positive voltage.
42. The memory system of claim 41 wherein the control register write data comprises three third source magnitude control parameter bits operating to control the magnitude of the second positive voltage.
43. the memory system of claim 41 wherein the third voltage source comprises a third charge pump circuit switchable between an operating state and a non-operating state, with the third charge pump circuit consuming reduced power in the non-operating state.
44. Then memory system of claim 43 wherein the control register write data comprises a third voltage source control parameter bit which operates to switch the third charge pump circuit between the operating and non-operating state.
45. The memory system of claim 44 wherein the voltage control circuitry further comprises a third switching circuitry which is configured to switch between a select mode where the second positive voltage is available for application to the bit lines and a deselected mode, where, the, second positive voltage is not available for application to the bit lines and a deselected made where the second positive voltage is not available for application to the bit lines and wherein the control register write data comprises a third voltage source switch control parameter bit which controls the mode of the third switching circuitry.
46. The memory system of claim 45 wherein the second positive voltage is applied to the bit line by way of a current to voltage converter circuit.
47. The memory system of claim 46 wherein the voltage control circuitry comprises a fourth voltage source configured to provide a third positive voltage relative to the circuit common of the memory device which is applied to the source line during memory erase operations.
48. The memory system of claim 47 wherein the voltage control circuitry further comprises a fourth switching circuitry which is configured to switch between a select mode where the third positive voltage is available for application to the source line and a deselected mode where the third positive voltage is not available for application to the source line and wherein the control register write data comprises a fourth voltage source switch control parameter bit which controls the mode of the fourth switching circuitry.
49. The memory system of claim 48 wherein the fourth voltage source comprises the third charge pump circuit.
50. The memory system of claim 49 wherein the first charge pump circuit has a large output current drive capability relative to the third charge pump circuit.
51. A memory system comprising:
a system bus;
a memory controller coupled to the system bus, with said memory controller being configured to issue memory program instructions, memory read instructions and control register write instructions over the system bus, with the control register write instructions including control register write data; and
at least one memory device coupled to the system bus, with the memory device comprising:
an array of memory cells;
a plurality of volatile control registers; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive the control register write instructions over the system bus and to transfer the control register write data to the control registers and to carry out memory read and program operations, with the memory operation manager comprising read array circuitry used in the memory read operations, with the read array circuitry comprising a plurality of sense amplifiers each of which includes a first input coupled to the array and a second input to be coupled to a compare voltage, with the control register write data operating to control a magnitude of the compare voltage;
wherein the read array circuitry comprises a reference voltage generator circuit which provides a reference voltage from which the compare voltage is derived and wherein the control register write data operates to control a magnitude of the reference voltage and comprises two reference generator magnitude control parameter bits.
52. The memory system of claim 51 wherein the control register write data that operates to control the magnitude of the reference voltage comprises three reference generator magnitude control parameter bits.
53. The memory system of claim 51 wherein the reference voltage generator circuit is configured to switch between an operating state and a non-operating state, with the reference voltage generator circuit consuming reduced powers in the non-operating state.
54. The memory system of claim 53 wherein the control register write data comprises a reference voltage generator circuit state control parameter bit which operates to switch the reference voltage generator circuit between the operating and non-operating state.
55. The memory system of claim 54 wherein memory cells are non-volatile memory cells which include a drain, a source and a control gate and wherein the read array circuitry comprises a non-volatile memory reference cell having a gate, drain and source and wherein the reference voltage is coupled between the source and gate of the reference cell.
56. The memory system of claim 54 wherein the read circuitry further comprises first current-to-voltage converter circuitry connected between the drain of the reference cell and the second input of the sense amplifiers, with the first current-to-voltage converter circuitry producing the compare voltage.
57. The memory system of claim 56 wherein the first current-to-voltage converter circuitry is switchable between an operating state and a non-operating state, with the first current-to-voltage converter circuitry consuming reduced power in the non-operating state.
58. The memory system of claim 56 wherein the control register write data comprises a first current-to-voltage converter state control parameter bit which operates to switch the first current-to-voltage converter circuitry between the operating and non-operating state.
59. The memory system of claim 58 wherein the fist current-to-voltage converter circuitry is configured to generate a drain-to-source voltage across the reference cell and wherein the control register write data farther comprises two first convertor magnitude control parameters bits which operate to control a magnitude of the drain-to-source voltage.
60. The memory system of claim 59 wherein the read circuitry further comprises second current-to-voltage converter circuitry connected to one of the bit lines, with said second current-to-voltage converter circuitry bring configured to generate a bit line voltage applied to the bit line.
61. The memory system of claim 60 wherein the control register write data further comprise two second converter magnitude control parameter bits which operate to control a magnitude of the bit line voltage generated by the second current-to-voltage converter circuitry.
62. The memory system of claim 61 wherein the second current-to-voltage converter circuitry is further connected to the first input of at least one of the sense amplifiers.
63. The memory system of claim 62 wherein the second current-to-voltage converter circuitry is switchable between an operating state and a non-operating state, with the second current-to-voltage converter circuitry consuming reduced power in the non-operating state.
64. The memory system of claim 63 wherein the control register write data comprises a second current-to-voltage converter state control parameter bit which operates to switch the second current-to-voltage converter circuitry between the operating and non-operating state.
65. The memory system of claim 64 wherein the sense amplifiers are switchable between an operating state and a non-operating state, with the sense amplifiers consuming reduced power in the non-operating state.
66. The memory system of claim 65 wherein the control register write data comprises a sense amplifier control parameter bit which operates to switch the sense amplifiers between the operating and non-operating state.
67. The memory system of claim 66 wherein the two first converter control magnitude parameter bits and the two second converter magnitude control parameter bits comprise a common two converter control parameter bits.
68. The memory system of claim 61 wherein the first and second current-to-voltage converter state control parameters and the sense amplifier state control parameter bits comprise a single sense enable state control parameter bit.
69. A memory system comprising:
a system bus;
a memory controller coupled to the system bus, with said memory controller being configured to issue memory program instructions, memory read instructions and control register write instructions over the system bus, with the control register write instructions including control register write data; and
at least one memory device coupled to the system bus, with the memory device comprising;
an array of memory cells;
a plurality of volatile control registers; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive the control register write instructions over the system bus and to transfer the control register write data to the control registers and to carry out memory read and program operations, with the memory operation manager comprising read array circuitry used in the memory read operations, with the read array circuitry comprising a plurality of sense amplifiers each of which includes a first input coupled to the array and a second input to be coupled to a compare voltage, with the control register write data operating to control a magnitude of the compare voltage;
wherein the memory cells are volatile memory cells and wherein the memory controller is further configured to carry out memory erase instructions and the operation manager is further configured to carry out memory erase operations by applying at least one erase voltage to the array, with the erase voltage having a magnitude controlled by at least two erase magnitude control parameter bits.
70. A memory device for use in a memory system which comprises a memory controller and at least one of the memory devices coupled to the memory controller by way of a system bus, with the memory controller being configured to issue memory program instructions, memory read instructions, and control register write instructions over the system bus, with the control register write instruction including control register write data, said memory device comprising:
an array of memory cells;
a plurality of volatile control registers;
read array circuitry which includes a plurality of sense amplifiers, each of which includes a first input coupled to the array and a second input coupled to a compare voltage, with the control register write data operating to control a magnitude of the compare voltage; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive the control register write instructions over the system bus and to transfer the control register write data to the control registers and to carry out memory read and program operations using voltage control circuitry configured to apply voltages to the array, with the control register write data operating to cause the voltage control circuitry to adjust a magnitude of a first voltage applied to the array during at least the memory read operations;
wherein the sense amplifiers are switchable between an operating state and a non-operating state, with the sense amplifiers consuming reduced power in the non-operating state.
71. The memory device of claim 70 wherein the control register write data further operates to cause the voltage control circuitry to adjust a magnitude of a second voltage applied to the array during the memory program operations.
72. The memory system of claim 71 wherein the control register write data comprises a sense amplifier control parameter bit which operates to switch the sense amplifiers between the operating and non-operating state.
73. The memory device of claim 72 wherein the control register write data which operates to adjust the magnitude of the first voltage comprises three first voltage control parameter bits.
74. The memory device of claim 73 wherein the control register write data which operates to adjust the magnitude of the second voltage comprises three second voltage control parameter bits.
75. A memory device for use in a flash memory system which comprises a memory controller and a plurality of the memory devices coupled to the memory controller by way of a system buts, with the memory controller being configured to issue memory program instructions, memory read instructions, memory erase instructions and control register write instructions over the system bus, with the control register write instruction including control register write data, said memory devices each comprising:
an array of flash memory cells having control gates connected to common word lines, drains connected to common bit lines and sources connected to at least one source line;
a plurality of volatile control registers; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive the control register write instructions over the system bus and to transfer the control register write data to the control registers and to carry out memory read, program and erase operations using voltage control circuitry configured to apply voltages to the word lines, bit lines and at least one source line, with the control register write data operating to cause the voltage control circuitry to adjust a magnitude of a first voltage applied to the word lines during at least the memory read operations and with the operation manager further comprising a read array circuitry which includes a plurality of sense amplifiers, each of which includes a first input coupled to one of the bit lines and a second input coupled to a compare voltage, with the control register write data further operating to control a magnitude of the compare voltage;
wherein the read array circuitry further comprises a reference voltage generator circuit which provides a reference voltage from which the compare voltage is device and wherein the control register write data comprises three reference generator magnitude control parameter bits.
76. The memory device of claim 75 wherein the read array circuitry is switchable between an operating mode and a non-operating mode, with the read array circuitry having reduced power consumption in the non-operating mode and wherein the control register write data comprises at least one read array circuitry state control parameter bit which operates to switch the read array circuitry between the operating and non-operating state.
77. A memory system comprising:
a system bus including a tag bus and a data bus;
a memory controller coupled to the system bus, with said memory controller being configure to issue memory operation instructions over the system bus, with the memory operations including memory read, program and erase operations and with the memory operation instructions including control register write instructions, with the control register write instructions including a control register select commanding transferred over the tag bus together with a control register address transferred over the data bus, a control register write command transferred over the tag bus together with control register write data over the data bus; and
at least one memory device coupled to the system bus, with the memory device comprising:
an array of non-volatile memory cells;
a plurality of volatile control registers, with each of the control registers having an associated one of the control register addresses; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive one of the control register select commands over the tag bus and to receive the control register address over the data bus and to select one of the control registers based upon the received control register address and being further configured to receive one of the control register write commands over the tag bus and the control register write data over the data bus and to transfer the control
register write data to the selected control register and to carry out at least one of
the memory operations utilizing the control register write data in the selected control register;
wherein the control register write instructions further include a plurality of first control register address commands which are transferred over the tag bus together with the control register write data transferred over the data bus and wherein the memory operation manager is further configured to receive one of the first control register address commands and to transfer the control register write data to a selected one of the control registers based upon the first control register address command and independent of any of the control register select commands.
78. The memory system of claim 77 wherein the control register write data comprises a plurality of control parameters and wherein the memory operations manager is configured to carry out the memory operations by applying operation voltages to the array, with at least one of the operation voltages being controlled by the control parameters.
79. The memory system of claim 78 wherein the control register write data includes a memory address and wherein the memory operation manager is configured to carry out a memory operation on the array at an address determined by the memory address in one of the control registers.
80. The memory system of claim 77 wherein the control register write data transferred with the first control register address command comprises a first memory address segment and wherein the memory operation manager is further configured to carry out one of the memory operations at an array address based upon the first memory address segment.
81. The memory system of claim 80 wherein the control register write instructions further includes a plurality of second control register address command which are transferred over the tag bus together with a respective second memory address segment over the data bus and wherein the memory operation manager is further configured to receive one of the second control register address commands and to transfer the second memory address segment to a selected one of the control registers based upon the second control register address command and independent of any of the control register select commands.
82. The memory system of claim 81 wherein the memory operation manager is further configured to carry out one of the memory operations at an array address based upon the first and second memory address segments.
83. A memory system comprising:
a system bus including a tag bus mid a data bus;
a memory controller coupled to the system bus, with said memory controller being configured to issue memory operation instructions over the system bus, with the memory operations including memory read, program and erase operations and with the memory operation instructions including control register write instructions, with the control register write instructions including a plurality of first control register address commands to be transferred over the tag bus together with first control register write data transferred over the data bus; and
at least one memory device coupled to the system bus, the majority devices comprising:
an array of non-volatile memory cells;
a plurality of volatile control registers, with each of the control registers having an associated control register address; and
a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to receive one of the first control register address commands over the tag bus and to receive the first control register write data over the data bus and to select a first one of the control registers based upon the received first control register address command and being further configured to transfer the first control register write data to the selected first control register and to carry out at least one of the memory operations utilizing the first control register write data in the selected control register;
wherein the control register write instructions further comprises a plurality of second control register address command to be transferred over the tag bus together with second control register write data transferred over the data bus and wherein the memory operation manager being configured to receive one of the second control register address commands over the tag bus and to select a second one of the control registers based upon the received second control register address command and to transfer the second control register write data to the selected second one of the control registers, with the memory operations manager being further configured to carry out at least one of the memory operations utilizing the second control register write data in the selected second control register.
84. The memory system of claim 83 wherein the first and second control register write data comprise first and second memory address segments and wherein the memory operations manager is configured to carry out one of the memory operations on the array at an address based upon the first and second address segments.
85. The memory system of claim 84 wherein the control register write instructions include a control register select command to be transferred over the tag bus together with a control register address transferred over the data bus and a control register write command to be transferred over the tag bus together with control register write data over the data bus and wherein the memory operation manager being further configured to receive one of the control register select commands over the tag bits and to select one of the control registers based upon the control register address received over the data bus and to transfer the control register write data received on the data bus to the control register selected based upon the control register address and to carry out at least one of the memory operations based upon the transferred write data.
86. A memory device comprising:
an array of memory cells;
a control register block for storing a plurality of control parameters;
control register modification circuitry operably coupled to the control register block and configured to modify the control parameters in response to memory instructions;
addressing circuitry operably coupled to the array; and
memory operation circuitry operably coupled to the control register block and to the array, said memory operation circuitry being configured to:
initiate memory program operations on the array when a first group of the control parameters are present in the control register block and terminate the memory program operations when a second group of the control parameters are present in the control register block;
initiate memory read operations on the array when a third group of the control parameters are present in the control register block and to terminate the memory read operations when a fourth group of control parameters are present in the control register block; and
initiate all erase operation on the array when a fifth group of control parameters are present in the control register block and terminate the erase operation when a sixth group of control parameters are present in the control register block.
87. The memory device of claim 86 wherein the memory program operations are carried out by applying at least one program voltage to the array and wherein the first group of control parameters includes a plurality of control parameters that control a magnitude of the program voltage.
88. The memory device of claim 86 wherein the memory read operations are carried out by applying at least one read voltage to the array and wherein the third group of control parameters includes a plurality of control parameters that control a magnitude of the read voltage.
89. The memory device of claim 86 wherein the memory erase operations are carried out by applying at least one erase voltage to the array and wherein the fifth group of control parameters includes a plurality of control parameters that control a magnitude of the erase voltage.
90. A method of controlling operation of a memory system which includes a plurality of memory devices together by a common system bus, with each of the memory devices including an array of flash memory cells having control gates connected to common word lines, drains connected to common bit lines and sources connected to at least one source line, a plurality of control registers and a the memory operation manager coupled to the system bus and to the array, said memory operation manager being configured to carry out memory write, program and erase operations on the array, said method comprising the following steps:
selecting one of the memory devices by transferring select information over the system bus;
providing a memory array address to the selected memory device by transferring address information over the system bus;
applying a first word line voltage to a word line of the array of the selected memory device based upon the memory array address by transferring a first word line control parameter over the system bus;
applying a first bit line voltage to at least one bit line of the array of the selected memory device based upon the memory address by transferring a first bit line control parameter over the system bus, with the first bit line control parameter being different from the first word line control parameter;
reading at least one of the cells connected to the word line to which the first word line voltage is applied and connected to the bit line to which the first bit line voltage is applied thereby generating read data;
transferring the read data out of the memory device over the system bus;
removing, subsequent to said step of reading, the first word line voltage from the word line by transferring a second word line control parameter over the system bus; and
removing, subsequent to said step of reading, the first bit line voltage from the bit line by transferring a second bit line control parameter over the system bus.
91. The method of claim 90 further comprising the step of switching the read circuitry of the selected memory device from a non-operating state to an operating state by transferring read enable control parameters over the system bus, with the read enable control parameters being different from the first word line control parameter and the first bit line control parameter.
92. The method of claim 91 wherein the first and second word line control parameters comprise a common word line control bit.
93. The method of claim 92 wherein the first and second bit line control parameters comprise a common bit line control bit.
94. The method of claim 91 wherein the read circuitry has reduced power consumption when in the non-operating state.
95. The method of claim 90 further comprising the step of storing the first word line control parameter and the first bit line control parameter in the selected memory device.
96. The method of claim 95 wherein the step of storing is carried out transferring the first word line control parameter and the first bit line control parameter to at least one volatile control register.
97. The method of claim 90 comprising the further step of adjusting a magnitude of the first word line voltage by transferring three bits of word line voltage magnitude control parameters over the system bus and storing the three bits of word line voltage magnitude control parameters in a volatile storage element of the selected memory device.
98. The method of claim 97 comprising the further step of adjusting a magnitude of the first bit line voltage by transferring three bits of bit line voltage magnitude control parameters over the system bus and storing the three bits of bit line voltage magnitude control parameters in a volatile storage clement of the selected memory device.
99. A method of controlling operation of a memory system which includes a plurality of memory devices together by a common system bus, with each of the memory devices including an array of flash memory cells having control gates connected to common word lines, drains connected to common bit lines and sources connected to at least one source line, a plurality of control registers and a memory operation manager coupled to the system bus, to the array and to the control registers, said memory operation manager being configured to carry out memory write, program and erase operations on the array, said method comprising the following steps:
selecting one of the memory devices by transferring select information over the system bus;
providing a memory array address to the selected memory device by transferring address information over the system bus;
providing memory program data to the selected memory device by transferring program data information over the system bus;
applying a first word line voltage to a word line of the array of the selected memory device based upon the memory array address by transferring a first word line control parameter over the system bus;
applying a first bit line voltage to at least one bit line of the array of the selected memory device based upon the memory address by transferring a first bit line control parameter over the system bus, with the first bit line control parameter being different from the first word line control parameter;
programming at least one of the cells connected to the word line to which the first word line voltage is applied and connected to the bit line to which the first bit line voltage is applied with the program data;
removing, subsequent to said step of programming, the first word line voltage from the word line by transferring a second word line control parameter over the system bus; and
removing, subsequent to said step of programming, the first bit line voltage from the bit line by transferring a second bit line control parameter over the system bus.
100. The method of claim 99 comprising the further step of adjusting a magnitude of the first word line voltage by transferring three bits of word line voltage magnitude control parameters over the system bus and storing the three bits of word line voltage magnitude control parameters in a volatile storage element of the selected memory device.
101. The method of claim 100 comprising the further step of adjusting a magnitude of the first bit line voltage by transferring three bits of bit line voltage magnitude control parameters over the system bus and storing the three bits of bit line voltage magnitude control parameters in a volatile storage element of the selected memory device.
102. A method of controlling operation of memory device which includes an array of memory cells, a volatile control register block and a memory operation manager coupled to the array and to the control register block, said memory operation manager being configured to carry out memory read and program operations, said method comprising the following steps:
forwarding a memory address to the memory device over a system bus;
staring the memory address in the control register block;
forwarding memory program data to the memory device over the system bus;
storing the memory program data in the control register block;
forwarding memory program start instructions over the system bus;
storing a first set of control parameters based upon the program start instruction in control register block;
initiating a program operation of the memory program data by applying a first program voltage to a drain of at least one cell, and a second program voltage to a control gate of at least one cell, and wherein at least two of the control parameters determine the magnitude of the first program voltage, and at least two of the control parameters determine the magnitude of the second program voltage with the application of the first and second program voltages being controlled by the first set of control parameters;
forwarding memory program stop instructions over the system bus;
storing a second set of control parameters based upon the program stop instructions in the control register block; and
terminating the program operation by removing the first and second program voltages from the array, with the removal of the voltages being controlled by the second set of control parameters.
103. The method of claim 102 wherein the first set of control parameters include a plurality of control parameters which determine a magnitude of the programming voltage.
104. The method of claim 103 wherein the programming voltages including a first and a second programming voltages, with the first set of control parameters including a first plurality of control parameters which control a magnitude of the first programming voltage and a second plurality of control parameters which control a magnitude of the second programming voltage.
105. A method of controlling operation of a memory device which includes an array of memory cells, having control gates connected to common word lines, drains connected to common bit lines and sources connected to at least one source line a volatile control register block and a memory operation manager coupled to the array and to the control register block, said memory operation manager being configured to carry out memory read and program operations, said method comprising the following steps:
providing a memory array address to the memory device by transferring address information over the system bus;
applying a fist word line voltage to a word line of the array of the memory device based upon the memory any address by transferring a first word line control parameter over the system bus;
applying a first bit line voltage to at least one bit line of the array of the memory device based upon the memory address by transferring a first bit line control parameter over the system bus, with the first bit line control parameter being different from the first word line control parameter;
reading at least one of the cells connected to the word line to which the first word line voltage is applied and connected to the bit line to which the first bit line voltage is applied thereby generating read data;
transferring the read data out of the memory device over the system bus;
removing, subsequent to said step of reading, the first word line voltage from the word line by transferring a second word line control parameter over the system bus; and
removing, subsequent to said step of reading, the first bit line voltage from the bit line by transferring a second bit line control parameter over the system bus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/551,650 US6363454B1 (en) | 1996-04-23 | 2000-04-18 | Memory system having flexible architecture and method |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL1002924 | 1996-04-23 | ||
NL1002924A NL1002924C2 (en) | 1996-04-23 | 1996-04-23 | Device for deboning an upper leg and lower leg leg of slaughtered poultry. |
US08/839,034 US6073204A (en) | 1997-04-23 | 1997-04-23 | Memory system having flexible architecture and method |
US09/551,650 US6363454B1 (en) | 1996-04-23 | 2000-04-18 | Memory system having flexible architecture and method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/839,034 Continuation US6073204A (en) | 1996-04-23 | 1997-04-23 | Memory system having flexible architecture and method |
Publications (1)
Publication Number | Publication Date |
---|---|
US6363454B1 true US6363454B1 (en) | 2002-03-26 |
Family
ID=25278695
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/839,034 Expired - Lifetime US6073204A (en) | 1996-04-23 | 1997-04-23 | Memory system having flexible architecture and method |
US09/551,650 Expired - Fee Related US6363454B1 (en) | 1996-04-23 | 2000-04-18 | Memory system having flexible architecture and method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/839,034 Expired - Lifetime US6073204A (en) | 1996-04-23 | 1997-04-23 | Memory system having flexible architecture and method |
Country Status (1)
Country | Link |
---|---|
US (2) | US6073204A (en) |
Cited By (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188091A1 (en) * | 2002-03-27 | 2003-10-02 | Wyatt Stewart R. | Exchanging operation parameters between a data storage device and a controller |
US20040170051A1 (en) * | 2003-02-28 | 2004-09-02 | Samsung Electronics Co., Ltd. | Interfacing circuit for reducing current consumption |
US20060015691A1 (en) * | 2004-07-19 | 2006-01-19 | Micron Technology, Inc. | Memory device trims |
US20060117155A1 (en) * | 2004-11-29 | 2006-06-01 | Ware Frederick A | Micro-threaded memory |
US20070253255A1 (en) * | 2006-04-28 | 2007-11-01 | Girolamo Gallo | Memory device, method for sensing a current output from a selected memory cell and sensing circuit |
US20070260841A1 (en) * | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US20080148115A1 (en) * | 2006-12-17 | 2008-06-19 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US20080158958A1 (en) * | 2006-12-17 | 2008-07-03 | Anobit Technologies Ltd. | Memory device with reduced reading |
US20080219050A1 (en) * | 2007-01-24 | 2008-09-11 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US20080263262A1 (en) * | 2007-04-22 | 2008-10-23 | Anobit Technologies Ltd. | Command interface for memory devices |
US20080282106A1 (en) * | 2007-05-12 | 2008-11-13 | Anobit Technologies Ltd | Data storage with incremental redundancy |
US20090024905A1 (en) * | 2006-05-12 | 2009-01-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US20090106485A1 (en) * | 2007-10-19 | 2009-04-23 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US20090103358A1 (en) * | 2006-05-12 | 2009-04-23 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
US20090144484A1 (en) * | 2006-08-02 | 2009-06-04 | Hiroshi Sukegawa | Memory system and memory chip |
US20090158126A1 (en) * | 2007-12-12 | 2009-06-18 | Anobit Technologies Ltd | Efficient interference cancellation in analog memory cell arrays |
US20090168524A1 (en) * | 2007-12-27 | 2009-07-02 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US20090199074A1 (en) * | 2008-02-05 | 2009-08-06 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US20090213653A1 (en) * | 2008-02-21 | 2009-08-27 | Anobit Technologies Ltd | Programming of analog memory cells using a single programming pulse per state transition |
US20090228761A1 (en) * | 2008-03-07 | 2009-09-10 | Anobit Technologies Ltd | Efficient readout from analog memory cells using data compression |
US20090240872A1 (en) * | 2008-03-18 | 2009-09-24 | Anobit Technologies Ltd | Memory device with multiple-accuracy read commands |
US20100091535A1 (en) * | 2007-03-12 | 2010-04-15 | Anobit Technologies Ltd | Adaptive estimation of memory cell read thresholds |
US20100115376A1 (en) * | 2006-12-03 | 2010-05-06 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US20100124088A1 (en) * | 2008-11-16 | 2010-05-20 | Anobit Technologies Ltd | Storage at m bits/cell density in n bits/cell analog memory cell devices, m>n |
US20100157675A1 (en) * | 2007-09-19 | 2010-06-24 | Anobit Technologies Ltd | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US20100157641A1 (en) * | 2006-05-12 | 2010-06-24 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
US20100165689A1 (en) * | 2008-12-31 | 2010-07-01 | Anobit Technologies Ltd | Rejuvenation of analog memory cells |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US20100199150A1 (en) * | 2007-10-19 | 2010-08-05 | Anobit Technologies Ltd | Data Storage In Analog Memory Cell Arrays Having Erase Failures |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US20100220510A1 (en) * | 2007-11-13 | 2010-09-02 | Anobit Technologies Ltd | Optimized Selection of Memory Chips in Multi-Chips Memory Devices |
US20100250836A1 (en) * | 2009-03-25 | 2010-09-30 | Anobit Technologies Ltd | Use of Host System Resources by Memory Controller |
US7821826B2 (en) | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8050086B2 (en) | 2006-05-12 | 2011-11-01 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
US8060806B2 (en) | 2006-08-27 | 2011-11-15 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8908466B2 (en) | 2004-09-30 | 2014-12-09 | Rambus Inc. | Multi-column addressing mode memory system including an integrated circuit memory device |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US9268719B2 (en) | 2011-08-05 | 2016-02-23 | Rambus Inc. | Memory signal buffers and modules supporting variable access granularity |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021459A (en) | 1997-04-23 | 2000-02-01 | Micron Technology, Inc. | Memory system having flexible bus structure and method |
US6260104B1 (en) * | 1998-06-30 | 2001-07-10 | Micron Technology, Inc. | Multiplexing of trim outputs on a trim bus to reduce die size |
JP3922023B2 (en) * | 1999-10-04 | 2007-05-30 | セイコーエプソン株式会社 | Semiconductor integrated circuit, ink cartridge, and ink jet recording apparatus |
US6785764B1 (en) * | 2000-05-11 | 2004-08-31 | Micron Technology, Inc. | Synchronous flash memory with non-volatile mode register |
US6785765B1 (en) * | 2000-06-30 | 2004-08-31 | Micron Technology, Inc. | Status register to improve initialization of a synchronous memory |
US6442076B1 (en) | 2000-06-30 | 2002-08-27 | Micron Technology, Inc. | Flash memory with multiple status reading capability |
US6675255B1 (en) | 2000-06-30 | 2004-01-06 | Micron Technology, Inc. | Device initialize command for a synchronous memory |
US6697907B1 (en) | 2000-06-30 | 2004-02-24 | Micron Technology, Inc. | Hardware initialization of a synchronous memory |
US6304497B1 (en) | 2000-06-30 | 2001-10-16 | Micron Technology, Inc. | Synchronous memory status register |
US7107464B2 (en) * | 2001-07-10 | 2006-09-12 | Telecom Italia S.P.A. | Virtual private network mechanism incorporating security association processor |
JP4076762B2 (en) * | 2001-11-29 | 2008-04-16 | 東京エレクトロン株式会社 | Semiconductor wafer processing equipment |
US6842831B2 (en) * | 2002-04-25 | 2005-01-11 | Intel Corporation | Low latency buffer control system and method |
US6711062B1 (en) | 2002-07-17 | 2004-03-23 | Taiwan Semiconductor Manufacturing Company | Erase method of split gate flash memory reference cells |
CA2479868A1 (en) * | 2003-09-02 | 2005-03-02 | Ronald E. Brick | Light fixture |
US7126874B2 (en) * | 2004-08-31 | 2006-10-24 | Micron Technology, Inc. | Memory system and method for strobing data, command and address signals |
US7436708B2 (en) * | 2006-03-01 | 2008-10-14 | Micron Technology, Inc. | NAND memory device column charging |
US8125835B2 (en) | 2008-09-22 | 2012-02-28 | Cypress Semiconductor Corporation | Memory architecture having two independently controlled voltage pumps |
US9601193B1 (en) | 2015-09-14 | 2017-03-21 | Intel Corporation | Cross point memory control |
KR102458918B1 (en) * | 2016-02-24 | 2022-10-25 | 삼성전자주식회사 | Memory device and Memory system |
US11574691B2 (en) | 2016-02-24 | 2023-02-07 | Samsung Electronics Co., Ltd. | Memory device and memory system |
CN109993275B (en) | 2017-12-29 | 2021-01-29 | 华为技术有限公司 | Signal processing method and device |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5392236A (en) * | 1992-06-30 | 1995-02-21 | Nec Corporation | Semiconductor memory device |
US5509134A (en) | 1993-06-30 | 1996-04-16 | Intel Corporation | Method and apparatus for execution of operations in a flash memory array |
US5517625A (en) * | 1992-10-30 | 1996-05-14 | Fujitsu Limited | System bus control system for multiprocessor system |
US5602987A (en) | 1989-04-13 | 1997-02-11 | Sandisk Corporation | Flash EEprom system |
US5615159A (en) * | 1995-11-28 | 1997-03-25 | Micron Quantum Devices, Inc. | Memory system with non-volatile data storage unit and method of initializing same |
US5619453A (en) | 1995-07-28 | 1997-04-08 | Micron Quantum Devices, Inc. | Memory system having programmable flow control register |
US5627784A (en) | 1995-07-28 | 1997-05-06 | Micron Quantum Devices, Inc. | Memory system having non-volatile data storage structure for memory control parameters and method |
US5675540A (en) | 1996-01-22 | 1997-10-07 | Micron Quantum Devices, Inc. | Non-volatile memory system having internal data verification test mode |
US5687117A (en) | 1996-02-23 | 1997-11-11 | Micron Quantum Devices, Inc. | Segmented non-volatile memory array with multiple sources having improved source line decode circuitry |
US5694366A (en) | 1996-05-01 | 1997-12-02 | Micron Quantum Devices, Inc. | OP amp circuit with variable resistance and memory system including same |
US5729169A (en) | 1996-07-10 | 1998-03-17 | Micron Quantum Devices, Inc. | Controllable one-shot circuit and method for controlling operation of memory circuit using same |
US5757696A (en) | 1994-04-01 | 1998-05-26 | Mitsubishi Denki Kabushiki Kaisha | Fast accessible non-volatile semiconductor memory device |
US5778237A (en) * | 1995-01-10 | 1998-07-07 | Hitachi, Ltd. | Data processor and single-chip microcomputer with changing clock frequency and operating voltage |
US5801985A (en) | 1995-07-28 | 1998-09-01 | Micron Technology, Inc. | Memory system having programmable control parameters |
US5825782A (en) | 1996-01-22 | 1998-10-20 | Micron Technology, Inc. | Non-volatile memory system including apparatus for testing memory elements by writing and verifying data patterns |
US5937423A (en) * | 1996-12-26 | 1999-08-10 | Intel Corporation | Register interface for flash EEPROM memory arrays |
US6026020A (en) * | 1992-03-17 | 2000-02-15 | Hitachi, Ltd. | Data line disturbance free memory block divided flash memory and microcomputer having flash memory therein |
-
1997
- 1997-04-23 US US08/839,034 patent/US6073204A/en not_active Expired - Lifetime
-
2000
- 2000-04-18 US US09/551,650 patent/US6363454B1/en not_active Expired - Fee Related
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602987A (en) | 1989-04-13 | 1997-02-11 | Sandisk Corporation | Flash EEprom system |
US5877986A (en) | 1989-04-13 | 1999-03-02 | Sandisk Corporation | Multi-state Flash EEprom system on a card that includes defective cell substitution |
US6026020A (en) * | 1992-03-17 | 2000-02-15 | Hitachi, Ltd. | Data line disturbance free memory block divided flash memory and microcomputer having flash memory therein |
US5392236A (en) * | 1992-06-30 | 1995-02-21 | Nec Corporation | Semiconductor memory device |
US5517625A (en) * | 1992-10-30 | 1996-05-14 | Fujitsu Limited | System bus control system for multiprocessor system |
US5509134A (en) | 1993-06-30 | 1996-04-16 | Intel Corporation | Method and apparatus for execution of operations in a flash memory array |
US5757696A (en) | 1994-04-01 | 1998-05-26 | Mitsubishi Denki Kabushiki Kaisha | Fast accessible non-volatile semiconductor memory device |
US5778237A (en) * | 1995-01-10 | 1998-07-07 | Hitachi, Ltd. | Data processor and single-chip microcomputer with changing clock frequency and operating voltage |
US5619453A (en) | 1995-07-28 | 1997-04-08 | Micron Quantum Devices, Inc. | Memory system having programmable flow control register |
US5627784A (en) | 1995-07-28 | 1997-05-06 | Micron Quantum Devices, Inc. | Memory system having non-volatile data storage structure for memory control parameters and method |
US5801985A (en) | 1995-07-28 | 1998-09-01 | Micron Technology, Inc. | Memory system having programmable control parameters |
US5615159A (en) * | 1995-11-28 | 1997-03-25 | Micron Quantum Devices, Inc. | Memory system with non-volatile data storage unit and method of initializing same |
US5677885A (en) | 1995-11-28 | 1997-10-14 | Micron Quantum Devices, Inc. | Memory system with non-volatile data storage unit and method of initializing same |
US5825782A (en) | 1996-01-22 | 1998-10-20 | Micron Technology, Inc. | Non-volatile memory system including apparatus for testing memory elements by writing and verifying data patterns |
US5675540A (en) | 1996-01-22 | 1997-10-07 | Micron Quantum Devices, Inc. | Non-volatile memory system having internal data verification test mode |
US5687117A (en) | 1996-02-23 | 1997-11-11 | Micron Quantum Devices, Inc. | Segmented non-volatile memory array with multiple sources having improved source line decode circuitry |
US5694366A (en) | 1996-05-01 | 1997-12-02 | Micron Quantum Devices, Inc. | OP amp circuit with variable resistance and memory system including same |
US5729169A (en) | 1996-07-10 | 1998-03-17 | Micron Quantum Devices, Inc. | Controllable one-shot circuit and method for controlling operation of memory circuit using same |
US5937423A (en) * | 1996-12-26 | 1999-08-10 | Intel Corporation | Register interface for flash EEPROM memory arrays |
Cited By (130)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6851018B2 (en) * | 2002-03-27 | 2005-02-01 | Hewlett-Packard Development Company, L.P. | Exchanging operation parameters between a data storage device and a controller |
US20030188091A1 (en) * | 2002-03-27 | 2003-10-02 | Wyatt Stewart R. | Exchanging operation parameters between a data storage device and a controller |
US7167990B2 (en) * | 2003-02-28 | 2007-01-23 | Samsung Electronics, Co., Ltd. | Interfacing circuit for reducing current consumption |
US20040170051A1 (en) * | 2003-02-28 | 2004-09-02 | Samsung Electronics Co., Ltd. | Interfacing circuit for reducing current consumption |
US7707368B2 (en) | 2004-07-19 | 2010-04-27 | Micron Technology, Inc. | Memory device trims |
US20060015691A1 (en) * | 2004-07-19 | 2006-01-19 | Micron Technology, Inc. | Memory device trims |
US7447847B2 (en) * | 2004-07-19 | 2008-11-04 | Micron Technology, Inc. | Memory device trims |
US20090043975A1 (en) * | 2004-07-19 | 2009-02-12 | Benjamin Louie | Memory device trims |
US8908466B2 (en) | 2004-09-30 | 2014-12-09 | Rambus Inc. | Multi-column addressing mode memory system including an integrated circuit memory device |
US11797227B2 (en) | 2004-11-29 | 2023-10-24 | Rambus Inc. | Memory controller for micro-threaded memory operations |
US20070250677A1 (en) * | 2004-11-29 | 2007-10-25 | Ware Frederick A | Multi-Mode Memory |
US10331379B2 (en) | 2004-11-29 | 2019-06-25 | Rambus Inc. | Memory controller for micro-threaded memory operations |
US20060117155A1 (en) * | 2004-11-29 | 2006-06-01 | Ware Frederick A | Micro-threaded memory |
US9292223B2 (en) | 2004-11-29 | 2016-03-22 | Rambus Inc. | Micro-threaded memory |
US9652176B2 (en) | 2004-11-29 | 2017-05-16 | Rambus Inc. | Memory controller for micro-threaded memory operations |
US8595459B2 (en) | 2004-11-29 | 2013-11-26 | Rambus Inc. | Micro-threaded memory |
US20070253255A1 (en) * | 2006-04-28 | 2007-11-01 | Girolamo Gallo | Memory device, method for sensing a current output from a selected memory cell and sensing circuit |
US9256557B2 (en) | 2006-05-02 | 2016-02-09 | Rambus Inc. | Memory controller for selective rank or subrank access |
US8364926B2 (en) | 2006-05-02 | 2013-01-29 | Rambus Inc. | Memory module with reduced access granularity |
US8028144B2 (en) * | 2006-05-02 | 2011-09-27 | Rambus Inc. | Memory module with reduced access granularity |
US20090157994A1 (en) * | 2006-05-02 | 2009-06-18 | Hampel Craig E | Memory module with reduced access granularity |
US11467986B2 (en) | 2006-05-02 | 2022-10-11 | Rambus Inc. | Memory controller for selective rank or subrank access |
US10795834B2 (en) | 2006-05-02 | 2020-10-06 | Rambus Inc. | Memory controller for selective rank or subrank access |
US20070260841A1 (en) * | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US10191866B2 (en) | 2006-05-02 | 2019-01-29 | Rambus Inc. | Memory controller for selective rank or subrank access |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US7697326B2 (en) | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
US8570804B2 (en) | 2006-05-12 | 2013-10-29 | Apple Inc. | Distortion estimation and cancellation in memory devices |
US20090103358A1 (en) * | 2006-05-12 | 2009-04-23 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
US20090024905A1 (en) * | 2006-05-12 | 2009-01-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8599611B2 (en) | 2006-05-12 | 2013-12-03 | Apple Inc. | Distortion estimation and cancellation in memory devices |
US8050086B2 (en) | 2006-05-12 | 2011-11-01 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
US20100157641A1 (en) * | 2006-05-12 | 2010-06-24 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
US9880767B2 (en) | 2006-08-02 | 2018-01-30 | Toshiba Memory Corporation | Memory system and memory chip |
US20090144484A1 (en) * | 2006-08-02 | 2009-06-04 | Hiroshi Sukegawa | Memory system and memory chip |
US8892917B2 (en) | 2006-08-02 | 2014-11-18 | Kabushiki Kaisha Toshiba | Memory system and memory chip |
US8060806B2 (en) | 2006-08-27 | 2011-11-15 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
USRE46346E1 (en) | 2006-10-30 | 2017-03-21 | Apple Inc. | Reading memory cells using multiple thresholds |
US8145984B2 (en) | 2006-10-30 | 2012-03-27 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7821826B2 (en) | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
US20110225472A1 (en) * | 2006-10-30 | 2011-09-15 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US20100115376A1 (en) * | 2006-12-03 | 2010-05-06 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US20080148115A1 (en) * | 2006-12-17 | 2008-06-19 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7593263B2 (en) | 2006-12-17 | 2009-09-22 | Anobit Technologies Ltd. | Memory device with reduced reading latency |
US20080158958A1 (en) * | 2006-12-17 | 2008-07-03 | Anobit Technologies Ltd. | Memory device with reduced reading |
US7881107B2 (en) | 2007-01-24 | 2011-02-01 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US20100195390A1 (en) * | 2007-01-24 | 2010-08-05 | Anobit Technologies Ltd | Memory device with negative thresholds |
US20080219050A1 (en) * | 2007-01-24 | 2008-09-11 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US8369141B2 (en) | 2007-03-12 | 2013-02-05 | Apple Inc. | Adaptive estimation of memory cell read thresholds |
US20100091535A1 (en) * | 2007-03-12 | 2010-04-15 | Anobit Technologies Ltd | Adaptive estimation of memory cell read thresholds |
US20080263262A1 (en) * | 2007-04-22 | 2008-10-23 | Anobit Technologies Ltd. | Command interface for memory devices |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US20080282106A1 (en) * | 2007-05-12 | 2008-11-13 | Anobit Technologies Ltd | Data storage with incremental redundancy |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US20100157675A1 (en) * | 2007-09-19 | 2010-06-24 | Anobit Technologies Ltd | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US20100199150A1 (en) * | 2007-10-19 | 2010-08-05 | Anobit Technologies Ltd | Data Storage In Analog Memory Cell Arrays Having Erase Failures |
US20090106485A1 (en) * | 2007-10-19 | 2009-04-23 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US20100220510A1 (en) * | 2007-11-13 | 2010-09-02 | Anobit Technologies Ltd | Optimized Selection of Memory Chips in Multi-Chips Memory Devices |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US20090158126A1 (en) * | 2007-12-12 | 2009-06-18 | Anobit Technologies Ltd | Efficient interference cancellation in analog memory cell arrays |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US20090168524A1 (en) * | 2007-12-27 | 2009-07-02 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US20090199074A1 (en) * | 2008-02-05 | 2009-08-06 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US20090213653A1 (en) * | 2008-02-21 | 2009-08-27 | Anobit Technologies Ltd | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US20090228761A1 (en) * | 2008-03-07 | 2009-09-10 | Anobit Technologies Ltd | Efficient readout from analog memory cells using data compression |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US20090240872A1 (en) * | 2008-03-18 | 2009-09-24 | Anobit Technologies Ltd | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8498151B1 (en) | 2008-08-05 | 2013-07-30 | Apple Inc. | Data storage in analog memory cells using modified pass voltages |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US20100124088A1 (en) * | 2008-11-16 | 2010-05-20 | Anobit Technologies Ltd | Storage at m bits/cell density in n bits/cell analog memory cell devices, m>n |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US20100165689A1 (en) * | 2008-12-31 | 2010-07-01 | Anobit Technologies Ltd | Rejuvenation of analog memory cells |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US20100250836A1 (en) * | 2009-03-25 | 2010-09-30 | Anobit Technologies Ltd | Use of Host System Resources by Memory Controller |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US9268719B2 (en) | 2011-08-05 | 2016-02-23 | Rambus Inc. | Memory signal buffers and modules supporting variable access granularity |
US9666250B2 (en) | 2011-08-05 | 2017-05-30 | Rambus Inc. | Memory signal buffers and modules supporting variable access granularity |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Also Published As
Publication number | Publication date |
---|---|
US6073204A (en) | 2000-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6363454B1 (en) | Memory system having flexible architecture and method | |
US9552311B2 (en) | Method for assigning addresses to memory devices | |
US6021459A (en) | Memory system having flexible bus structure and method | |
US5974499A (en) | Memory system having read modify write function and method | |
US6253277B1 (en) | Memory system having flexible addressing and method using tag and data bus communication | |
JP3947781B2 (en) | Program algorithm for low voltage single power flash memory | |
EP1158533B1 (en) | Eeprom array with flash-like core | |
US6272052B1 (en) | Block-erase type semiconductor storage device with independent memory groups having sequential logical addresses | |
US5732017A (en) | Combined program and data nonvolatile memory with concurrent program-read/data write capability | |
US6397314B1 (en) | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | |
US7549013B2 (en) | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | |
US6556504B2 (en) | Nonvolatile semiconductor memory device and data input/output control method thereof | |
US6236593B1 (en) | Method for simultaneously programming plural flash memories having invalid blocks | |
US20020099903A1 (en) | Memory system, method and predecoding circuit operable in different modes for selectively accessing multiple blocks of memory cells for simultaneous writing or erasure | |
US20080022188A1 (en) | Memory card and memory controller | |
JP2000509871A (en) | Bank configuration of nonvolatile memory enabling simultaneous reading and writing | |
US5604880A (en) | Computer system with a memory identification scheme | |
US20030095439A1 (en) | Method and system for minimizing bit stress in a non-volatile memory during erase operations | |
JPH09213064A (en) | Memory write/read method and memory controller | |
JP3711691B2 (en) | Microcontroller | |
JPH11259360A (en) | Semiconductor integrated device and nonvolatile memory writing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20140326 |