The present invention relates generally to memory devices and in particular the present invention relates to non-volatile memory devices.
Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), static RAM (SRAM), synchronous dynamic RAM (SDRAM), and flash memory.
Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for flash memory include personal computers, personal digital assistants (PDAs), digital cameras, and cellular telephones. Program code and system data such as a basic input/output system (BIOS) are typically stored in flash memory devices for use in personal computer systems.
The memory controllers of flash memory devices typically use large blocks of embedded static RAM to store physical to/from translation tables that map between logical and physical address spaces. These tables can be used for accessing redundant memory columns when a logical address is received that would access a physical address of a defective memory column. As the density of the flash memory array is increased, the size of the embedded SRAM also has to increase as well. This requires an increase in the valuable real estate required for the static RAM that reduces the amount of room available for the flash memory array and its support circuitry.
One way around this problem is to use parts of the flash memory array to store these tables. However, not only does this reduce the amount of memory available to the end user for data storage, performance of the memory device suffers as well. Since programming/reading flash memory requires more time than SRAM, the time required for the controller to store and retrieve table data from a flash memory array is considerably longer than with SRAM.
For the reasons stated above, and for other reasons stated below that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art to decrease the amount of integrated circuit real estate required for address translation without affecting system performance.
In the following detailed description of the invention, reference is made to the accompanying drawings that form a part hereof and in which is shown, by way of illustration, specific embodiments in which the invention may be practiced. In the drawings, like numerals describe substantially similar components throughout the several views. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims and equivalents thereof.
In one embodiment, the non-volatile memory device is a NAND flash memory. Alternate embodiments can use other types of flash memory such as NOR or AND. Alternate embodiments can also use other types of non-volatile memory devices.
Only portions of the non-volatile memory device 100 that are relevant to the present description are shown in
The non-volatile memory device 100 is comprised of a memory array 103 that communicates with a memory controller 105 over a bus 110. The memory controller 105 can send program, read, and erase commands over the bus 110 to the memory array 103. For example, the controller 105 can use the bus 110 to control program voltages, read voltages, and erase voltages that are applied to the word lines and bit lines of the memory array 103 during their respective operations. The controller 110 can communicate with the memory array 103 using either digital signals or analog signals.
The memory controller 105 communicates with external controllers, such as microprocessors, over a control bus 115. The control bus 115 can be a standard NAND controller interface such as SATA, SecureDigital (SD) format, and MultiMediaCard (MMC) format. Other memory interfaces can also be used.
The memory controller 105 is also coupled to an external memory device 107 in which the address mapping tables for the address translation method are stored. The external memory device 107, in one embodiment, is a DRAM. Alternate embodiments can use other forms of memory for storing the address mapping tables. The memory device 107 communicates with additional controllers or other devices over a standard memory interface 113 using such formats as a double data rate (DDR) format, a double data rate 2 (DDR2) format, or a low-power synchronous DRAM (LPDRAM) format. Alternate embodiments can use other bus formats for communicating with the memory device. The external memory device can store other data in addition to the address mapping/translation tables such as buffering data from a host processor (DMAing the data from host through the controller to the DRAM), defect management tables for the memory device, as well as system information such as FAT tables.
The memory controller 105 and the external memory device 107 communicate over a serial bus 106. This can be a high speed (e.g., 1 Gb/s) serial bus 106. This bus 106 is used to transfer address translation information (e.g., address mapping tables) back and forth between the external memory device 107 and the non-volatile memory controller 105.
Once the memory controller has the logical address, it retrieves the corresponding physical address from the external memory device 203. The physical address is retrieved over the serial bus that couples the memory controller to the external memory device. In one embodiment, the memory controller accesses an address translation table stored in the external memory device. The translation table is comprised of the logical addresses or logical address range assigned to the non-volatile memory device with the corresponding physical addresses or physical address range. Thus, the memory controller finds the physical address in the table that corresponds to the received/generated logical address.
The physical memory address that was retrieved from the external memory over the dedicated serial bus is then used in the desired operation 205. For example, if a read command with a logical address was received, the memory controller uses the retrieved physical memory address to perform the read operation.
The address translation table in the external memory device can also contain the physical addresses of redundant memory columns for the non-volatile memory device. For example, when a memory column of the non-volatile memory array is determined to be defective, it is replaced with a redundant column in another part of the memory array or in a redundant memory array. The address translation table is then updated with the old logical address and new corresponding physical address of the redundant column. This allows all future accesses to the defective column to be forwarded to the new redundant column.
The memory device 100 includes an array 103 of non-volatile memory cells. The memory array 103 is arranged in banks of word line rows and bit line columns. In one embodiment, the columns of the memory array 103 are comprised of series strings of memory cells. As is well known in the art, the connections of the cells to the bit lines determines whether the array is a NAND architecture, an AND architecture, or a NOR architecture.
Address buffer circuitry 340 is provided to latch address signals provided through the I/O circuitry 360. Address signals are received and decoded by a row decoder 344 and a column decoder 346 to access the memory array 330. It will be appreciated by those skilled in the art, with the benefit of the present description, that the number of address input connections depends on the density and architecture of the memory array 103. That is, the number of addresses increases with both increased memory cell counts and increased bank and block counts.
The memory device 100 reads data in the memory array 103 by sensing voltage or current changes in the memory array columns using sense amplifier circuitry 350. The sense amplifier circuitry 350, in one embodiment, is coupled to read and latch a row of data from the memory array 103. Data input and output buffer circuitry 360 is included for bidirectional data communication as well as address communication over a plurality of data connections 362 with the controller 310. Write circuitry 355 is provided to write data to the memory array.
A memory controller 105 decodes signals provided on control connections 115 from the processor 310. These signals are used to control the operations on the memory array 103, including data read, data write (program), and erase operations. The memory controller circuitry 105 may be a state machine, a sequencer, or some other type of controller to generate the memory control signals.
The flash memory device illustrated in
In summary, in an embodiment of the present invention, an external memory device is coupled to a non-volatile memory controller over a dedicated serial bus. The memory controller can then perform address mapping operations with address translation information/data obtained from the external memory device using logical memory addresses. This can be accomplished without using valuable real estate on the non-volatile memory device or memory controller for static memory to store the address translation data. Additionally, the greater speed of a DRAM as the external memory as compared to using portions of the non-volatile memory mean an increase in memory system performance.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement that is calculated to achieve the same purpose may be substituted for the specific embodiments shown. Many adaptations of the invention will be apparent to those of ordinary skill in the art. Accordingly, this application is intended to cover any adaptations or variations of the invention. It is manifestly intended that this invention be limited only by the following claims and equivalents thereof.