This U.S. non-provisional patent application claims priority under 35 U.S.C. § 119 to Korean Patent Application No. 10-2007-0001045 filed on Jan. 4, 2007, the subject matter of which is hereby incorporated by reference.
1. Field of the Invention
The present invention relates to a semiconductor memory device. More particularly, the invention relates to a hybrid flash memory device.
2. Description of the Related Art
Flash memory is one type of non-volatile memory capable of retaining stored data when applied power is interrupted. While data access speeds for flash memory are slower than those associated with volatile memory devices such as Dynamic Random Access Memory (DRAM), they are markedly faster than data access speeds for hard disk drives (HDDS). When generally used as a replacement for HHDs, flash memory affords improved power consumption properties and improved durability relative to mechanical impacts. Thus, flash memory is used extensively in applications and various electronic devices running from battery power.
Flash memory is generally capable of having data electrically written to it (i.e., programmed) and erased. Unlike EEPROMs, flash memory may be programmed and erased on a block by block basis. Moreover, flash memory is generally very high capacity and allows data to be stored at lower cost per bit than EEPROMs. Typical applications benefiting from the use of flash memory include digital music players, digital cameras, mobile phones, etc. Flash memory enabled USB drivers (or flash memory cards) are widely used for storing data and for transferring data between computers.
Flash memory typically stores data in an array of memory cells having floating gate transistors. Newer flash memory is capable of storing multiple data bits per memory cell. For convenience of description, a memory cell in a flash memory device storing 1 bit of data is called a single-bit cell (SBC). A memory cell in a flash memory device storing multiple bits of data is called a multi-bit cell (MBC).
In a SBC flash memory device, data stored in each memory cell may be identified using an appropriate read voltage intermediate to the threshold voltage distribution for data having a defined value of “1” and the threshold voltage distribution for data having a defined value of “0”. For example, when the read voltage is applied to a control gate of the memory cell, it is possible to determine whether a data value of 0 or 1 is stored by detecting a corresponding current flow passing through the memory cell.
Voltage margins between the read voltage and the respective threshold voltage distributions in a SBC flash memory device are generally greater than those in a MBC flash memory device. Read errors nonetheless occur in either device type. Therefore, an error detection and/or correction (ECC) scheme may be used to detect and/or correct bit errors. One ECC scheme is disclosed, for example, in U.S. Pat. No. 6,651,212, the subject matter of which is hereby incorporated by reference.
As the number of data bits stored per memory cell increases in a MBC flash memory device, more threshold voltage distributions are used and must be accounted for. As well known in the field of flash memory, there have been certain difficulties associated with leveling up the threshold voltage distributions in a flash memory using MBCs. That is, the threshold voltage of a memory cell ranges within a predetermined voltage. Accordingly, the threshold voltage distributions being used for a particular MBC should to be evenly distributed across this voltage range regardless of the number of data bits being stored by the MBC. However, for a certain number of stored data bits per memory cell, this design goal may cause adjacent threshold voltage distributions to overlap. This outcome becomes a serious impediment to further increases in the number of data bits that a MBC may store. Furthermore, this outcome poses a serious problem to various design factors such as charge loss, read/program operation time periods, device heating, charge coupling during program/read of adjacent memory cells, cell defects, etc.
In sum, as the design and fabrication difficulties associated with MBC flash memory devices expand, the benefits of a competent ECC functionality become increasingly compelling.
Certain embodiments of the invention provide an error control scheme appropriate for a hybrid flash memory device, and/or an error control scheme appropriate for a memory system within a hybrid flash memory device.
In one embodiment, the invention provides a hybrid flash memory device having an Error Control and Correction (ECC) capability, and comprising; a control block responsive to an externally provided command, a data storage block comprising a first data storage region including first flash memory cells and a second data storage region including second flash memory cells, wherein the first and second flash memory cells store a different number of data bits per memory cell, and an error control block comprising a first ECC block implementing a first error control scheme and a second ECC block implementing a second error control scheme, wherein if the command indicates a data access operation directed to data stored in the first data storage region, the control block selects operation of the first ECC block such that the error control block operates in accordance with the first error control scheme, and wherein if the command indicates a data access operation directed to data stored in the second data storage region, the control block selects operation of the second ECC block such that the error control block operates in accordance with the second error control scheme.
In another embodiment, the invention provides a memory system comprising; a memory controller responsive to a command received from a host device to generate a data access operation and comprising an error control block comprising a first ECC block implementing a first error control scheme and a second ECC block implementing a second error control scheme, and a flash memory device comprising a data storage block comprising a first data storage region including first flash memory cells and a second data storage region including second flash memory cells, wherein the first and second flash memory cells store a different number of data bits per memory cell, and wherein if the data access operation is directed to data stored in the first data storage region, the memory controller selects operation of the first ECC block such that the error control block operates in accordance with the first error control scheme, but if the data access operation is directed to data stored in the second data storage region, the memory controller selects operation of the second ECC block such that the error control block operates in accordance with the second error control scheme.
In yet another embodiment, the invention provides a method of controlling errors in a hybrid flash memory device including a first data storage region implemented with first flash memory cells and a second data storage region implemented with second flash memory cells, wherein the first and second flash memory cells store a different number of data bits per memory cell, and the method comprising; determining whether a data access operation is directed to data stored in the first data storage region or data stored in the second data storage region, and upon determining that the data access operation is directed to data stored in the first data storage region, selecting operation of a first ECC block to perform a first error control scheme in relation to data associated with the data access operation, and upon determining that the data access operation is directed to data stored in the second data storage region, selecting operation of a second ECC block to perform a second error control scheme in relation to data associated with the data access operation.
Embodiments of the invention will now be described with reference to the accompanying drawings. The invention may, however, be embodied in many different forms and should not be constructed as being limited to only the illustrated embodiments. Rather, these embodiments are presented as teaching examples.
Referring to
Data storage block 100 includes a region 110 (hereinafter, referred to as a SBC region) including SBCs storing a single data bit per memory cell, and a region 120 (hereinafter, referred to as an MBC region) including MBCs storing multiple data bits per memory cell (i.e., “M-bit data” is stored, wherein M is an integer greater than 1). SBC region 110 may store amongst other data code information or ECC data. MBC region 120 will typically store bulk or payload data.
In certain embodiments of the invention, the flash memory cells provided in the SBC region 110 and MBC region 120 may be flash memory cells including a floating gate transistor. However, it will be apparent to those skilled in the art that the flash memory cells are not limited to only those including a floating gate transistor. For example, the flash memory cells may be implemented using charge trap transistors, etc. Furthermore, the flash memory cells may be PRAM, MRAM, or other types of non-volatile memory cells.
Referring to
In this regard, error control block 200 includes a first ECC block 210 and a second ECC block 220. First ECC block 210 contains circuitry of conventional design capable of performing ECC operations in relation to the ECC data stored in SBC region 110. Second ECC block 220 contains circuitry of conventional design capable of performing ECC operations in relation to the payload data stored in MBC region 120.
That is, first ECC block 210 generates and manipulates ECC data related to data stored in SBC region 110 according to a first error control scheme. First ECC block 210 is thus capable of detecting and correcting errors in the data read from SBC region 110 according to the first error control scheme. Second ECC block 220 generates and manipulates ECC data related to data stored in MBC region 120 according to a second error control scheme. Second ECC block 220 is thus capable of detecting and correcting errors in data read from MBC region 120 according to the second error control scheme.
According to different embodiments of the invention, the first error control scheme may use a Bose, Ray-Chaudhuri, Hocquenghem (BCH) code or a Reed-Solomon (RS) code, such as that disclosed in U.S. Pat. No. 6,651,212. The second error control scheme may use a fractional read method sometimes referred to as soft decision (SD) method. This fractional read method is disclosed, for example, in U.S. Pat. No. 7,023,735, the subject matter of which is hereby incorporated as reference. However, it will be apparent to those skilled in the art that first and second error schemes may be otherwise implemented by existing and/or emerging ECC schemes, such as (e.g.,) those using repetition codes, parity codes, cyclic codes, hamming codes, golay codes, Reed-Muller codes, maximum likelihood, etc.
Control block 300 selects one of first ECC block 210 and second ECC block 220 according to whether a current data access operation is directed to data stored in SBC region 110 or MBC region 120. For example, if the data access operation requests data from SBC region 110, control block 300 selects first ECC block 210 and error control block 200 operates according to the first error control scheme. If a data access operation requested data from MBC region 120, control block 300 selects second ECC block 220 and error control block 200 operates according to the second error control scheme. An access operation request to data stored in either SBC region 110 or MBC region 120 may be determined in accordance with corresponding address information, command information, etc.
In this manner, optimized ECC performance may be obtained in relation to single-bit data or multi-bit data using different ECC schemes.
Referring to
Memory controller 500 controls data access (e.g., program and read) operations directed to flash memory device 400 according to commands received from host device 600. Memory controller 500 includes error control block 510 including a first ECC block 511 and a second ECC block 512. First ECC block 511 and second ECC block 512 respectively correspond to first ECC block 210 and the second ECC block 220 of
For example, when a data access operation requests data stored in (or intended to be stored in) SBC region 410, memory controller 500 selects first ECC block 511, and error control block 510 operates according to the first error control scheme. If a data access operation requests data stored in (or intended to be stored in) MBC region 420, memory controller 500 selects second ECC block 512, and error control block 510 operates according to the second error control scheme.
In the embodiment illustrated in
As before, optimized ECC performance may be obtained for single-bit data and multi-bit data by applying a selected error control scheme.
The flash memory device generally illustrated in
Referring to
In certain embodiments of the invention, option block 810 may be implemented using conventional circuits and techniques such as fuse and bonding options. It will be apparent to those skilled in the art that option circuit 810 may be a programmable, or may be implemented in software. Error control block 800 according to embodiments of the invention may be used to selectively and variously implement a range of error control schemes.
Control block 900 of
Referring to
Memory controller 1100 controls data access operations directed to flash memory device 1000 in relation to a command received from host device 1200. Memory controller 1100 comprises an error control block 1110 which may be substantially identical to error control block 800 described in relation to
For example, memory controller 1100 is able to select either a first ECC block or a second ECC block within error control block 1110 according to whether the data access operation indicated by host device 1200 is directed to data stored in (or intended to be stored in) SBC region 1010 or MBC region 1020.
In this particular embodiment, flash memory device 1000 and memory controller 1100 may be implemented on a flash memory card. Alternately, memory controller 1100 may be installed within a terminal device or computer, and the flash memory device separating provided. In the later case, memory controller 1100 may be connected to flash memory device 1000 via a standardized interface such as ATA, SATA, USB, SCSI, ESDI, ISO, PCI, and IDE using conventionally understood resources.
Referring to
The memory system of
In the embodiment illustrated in
Control block 1500 may be used to select between first ECC block 1410 and second ECC block 1420 according to whether a data access operation is directed to data stored (or intended to be stored) in first MBC region 1310 or second MBC region 1320. For example, if a data access is directed to data stored in MBC region 1310, control block 1500 selects the operation of first ECC block 1410, and error control block 1400 operates according to the first error control scheme. However, if a data access is directed to data stored in second MBC region 1320, control block 1500 selects the operation of second ECC block 1420, and error control block 1400 operates according to the second error control scheme.
Referring to
As described above, optimized ECC performance may be obtained by the use of different ECC schemes in relation to data stored in different portions of a flash memory device, e.g., as between a SBC memory array and a MBC memory array, or between different MBC arrays.
The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the scope of the invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited to only the foregoing detailed description.
Number | Date | Country | Kind |
---|---|---|---|
10-2007-0001045 | Jan 2007 | KR | national |