This application claims priority from Korean Patent Application No. 10-2012-0005326 filed on Jan. 17, 2012 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety.
The present inventive concept relates to a data storage system, a memory controller, and a nonvolatile memory device.
Redundant array of inexpensive disks (RAID) is used mostly by servers that store important data. RAID is a method of redundantly storing the same data in different places. RAID can strike a balance between input and output and improve the overall performance of a server.
Meanwhile, solid state drives (SSDs) are replacing hard disk drives (HDDs). A semiconductor memory used in an SSD may be a NAND flash memory. The reliability of the NAND flash may deteriorate as the number of program/erase (P/E) cycles increases.
Aspects of the present inventive concept provide a data storage system whose reliability can be guaranteed even if a program/erase (P/E) cycle increases.
Aspects of the present inventive concept also provide a memory controller whose reliability can be guaranteed even if the P/E cycle increases.
Aspects of the present inventive concept also provide a nonvolatile memory device whose reliability can be guaranteed even if the P/E cycle increases.
However, aspects of the present inventive concept are not restricted to the ones set forth herein. The above and other aspects of the present inventive concept will become more apparent to one of ordinary skill in the art to which the present inventive concept pertains by referencing the detailed description of the present inventive concept given below.
According to an aspect of the present inventive concept, there is provided a nonvolatile memory device comprising first through m-th word lines arranged sequentially and first through m-th pages connected respectively to the first through m-th word lines; a redundant array of inexpensive disks (RAID) controller generating first RAID parity data using first through (m−1)-th data; and an access controller connected to the RAID controller and capable of accessing the nonvolatile memory device, wherein the access controller programs the first through (m−1)-th data to the first through (m−1)-th pages and programs the first RAID parity data to the m-th page.
According to another aspect of the present inventive concept, there is provided a memory controller comprising: a RAID controller generating first RAID parity data using first through (m−1)-th data; and an access controller connected to the RAID controller and capable of accessing a nonvolatile memory device which comprises first through m-th word lines arranged sequentially and first through m-th pages connected respectively to the first through m-th word lines, wherein the access controller programs the first through (m−1)-th data to the first through (m−1)-th pages and programs the first RAID parity data to the m-th page.
According to another aspect of the present inventive concept, a method comprises: providing a nonvolatile memory device which includes first through m-th word lines arranged sequentially and first through m-th pages connected respectively to the first through m-th word lines; receiving first through (m−1)-th data; generating first RAID parity data for the first through (m−1)-th data; programming the first through (m−1)-th data to a nonvolatile memory device which includes first through m-th word lines arranged sequentially, and first through m-th pages connected respectively to the first through m-th word lines, wherein the first through (m−1)-th data is programmed to the first through (m−1)-th pages; and programming the first RAID parity data to the m-th page.
The above and other aspects and features of the present inventive concept will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings, in which:
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will filly convey the scope of the invention to those skilled in the art. The same reference numbers indicate the same components throughout the specification. In the attached figures, the thickness of layers and regions is exaggerated for clarity.
It will also be understood that when a layer is referred to as being “on” another layer or substrate, it can be directly on the other layer or substrate, or intervening layers may also be present. In contrast, when an element is referred to as being “directly on” another element, there are no intervening elements present.
Spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is turned over, elements described as “below” or “beneath” other elements or features would then be oriented “above” the other elements or features. Thus, the exemplary term “below” can encompass both an orientation of above and below. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly.
The use of the terms “a” and “an” and “the” and similar referents in the context of describing the invention (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It is noted that the use of any and all examples, or exemplary terms provided herein is intended merely to better illuminate the invention and is not a limitation on the scope of the invention unless otherwise specified. Further, unless defined otherwise, all terms defined in generally used dictionaries may not be overly interpreted.
The present invention will be described with reference to perspective views, cross-sectional views, and/or plan views, in which preferred embodiments of the invention are shown. Thus, the profile of an exemplary view may be modified according to manufacturing techniques and/or allowances. That is, the embodiments of the invention are not intended to limit the scope of the present invention but cover all changes and modifications that can be caused due to a change in manufacturing process. Thus, regions shown in the drawings are illustrated in schematic form and the shapes of the regions are presented simply by way of illustration and not as a limitation.
Referring to
A RAID to be described below may have various levels. For example, the RAID may have any one of RAID level 0 (striped set without parity or striping), RAID level 1 (mirrored set without parity or mirroring), RAID level 2 (hamming code parity), RAID level 3 (striped set with dedicated parity, bit interleaved parity, or byte level parity), RAID level 4 (block level parity), RAID level 5 (striped set with distributed parity or interleave parity), RAID level 6 (striped set with dual distributed parity), RAID level 7, RAID level 10 and RAID level 53, or a RAID level (e.g., RAID 0+1, RAID 1+0, RAID 5+0, RAID 5+1, or RAID 0+1+5) obtained by merging at least two of the above RAID levels.
Data storage system 100 may include a memory controller 20 and nonvolatile memory device 30.
In a read operation, the memory controller 20 may transmit data read from nonvolatile memory device 30 to a host 10 in response to a read command output from host 10.
In a programming operation (or a write operation), memory controller 20 may write (or program) data output from the 10 to the nonvolatile memory device 30 in response to a program command (or a write command) output from host 10.
Memory controller 20 may generate RAID parity data based on data output from host 10. For example, memory controller 20 may generate RAID parity data by performing an XOR operation on multiple data received from host 10. In addition, memory controller 20 may store the received data and the RAID parity data in nonvolatile memory device 30 using any one of methods which will be described in detail later with reference to
Referring to
Nonvolatile memory a device 30 includes a plurality of ways WAY1 through WAYi, where i is a natural number. The ways WAY1 through WAYi may be memory banks. Therefore, i ways shown in
Each of the memory blocks BLK1 through BLKn may include first through mth pages P1 through Pm, where m is a natural number. For example, when memory cells used in nonvolatile memory device 30 are single level cells, each of the memory blocks BLK1 through BLKn may include 64 pages. When the memory cells are multilevel cells, each of the memory blocks BLK1 through BLKn may include 128 pages. When the memory cells are triple level cells, each of the memory blocks BLK1 through BLKn may include 192 pages.
The memory cells used in nonvolatile memory device 30 may be configured as a flash memory, an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (MRAM), a spin-transfer torque MRAM, a conductive bridging RAM (CBRAM), a ferroelectric RAM (FeRAM), a phase change RAM(PRAM) also called an ovonic unified memory (OUM), a resistive RAM (RRAM or ReRAM), a nanotube RRAM, a polymer RAM (PoRAM), a nano floating gate memory (NFGM), a holographic memory, a molecular electronics memory device or an insulator resistance change memory.
Referring to
Memory controller 20 may generate first RAID parity data PRT1 using first through (m−1)th data D1 through Dm−1. For example, memory controller 20 may generate the first RAID parity data PRT1 by performing an XOR operation on the first through (m−1)th data D1 through Dm−1. Memory controller 20 may program the first through (m−1)th data to the first through (m−1)th pages P1 through Pm−1and program the first RAID parity data PRT1 to the mth page Pm.
The reason why the first through (m−1)th data D1 through Dm−1and the first RAID parity data PRT1 are stored in pages connected to different word lines, that is, in the first through (m−1)th pages P1 through Pm−1connected to the first through (m−1)th word lines WL1 through WLm−1and the mth page Pm connected to the mth word line WLm, is as follows.
The reliability of a nonvolatile memory cell (e.g., a NAND flash memory cell) may depend on the position thereof in a memory block BLK1 through BLKn. For example, the reliability of a page located in the middle of each memory block BLK1 through BLKn may be lower than that of pages located at other positions. That is, a page connected to a certain word line may have poor characteristics, and this phenomenon may worsen as the number of program/erase (P/E) cycles increases.
If the first through (m−1)th data D1 through Dm−1and the first RAID parity data PRT1 are all stored in a page (e.g., P1) connected to the same word line (e.g., WL1), when characteristics of the first page P1 connected to the first word line WL1 deteriorate noticeably, data recovery is impossible.
However, if the first through (m−1)th data D1 through Dm−1and the first RAID parity data PRT1 are stored in the pages P1 through Pm−1and Pm connected to the different word lines WL1 through WLm−1and WLm as according to embodiments of the present inventive concept, data recovery is easy. For example, even if an error occurs in the first data D1 stored in the first page P1 connected to the first word line WL1, the first data D1 can be recovered using the second through (m−1)th data D2 through Dm−1and the first RAID parity data PRT1 stored in the pages P2 through Pm connected to the other word lines WL2 through WLm. Therefore, even if the number of P/E cycles increases, the reliability of data storage system 100 according to embodiments of the present inventive concept can be guaranteed, which, in turn, increases the life of data storage system 100.
Data storage system 100 may form a solid state drive (SSD).
Alternatively, data storage system 100 may be integrated as one semiconductor device to form a memory card such as a personal computer (PC) card (e.g., personal computer memory card international association (PCMCIA) card), a compact flash (CF) card, a smart media card (SM/SMC), a memory stick, a multimedia card (e.g., MMC, RS-MMC, MMCmicro), an SD card (e.g., SD, miniSD, microSD, SDHC), or a universal flash storage (UFS) device.
As another example, data storage system 100 may be one of various components of electronic devices such as computers, ultra-mobile PCs (UMPCs), workstations, net-books, personal digital assistants (PDAs), portable computers, web tablets, wireless phones, mobile phones, smart phones, e-books, portable multimedia players (PMPs), portable game devices, navigation devices, black boxes, digital cameras, three-dimensional televisions, digital audio recorders, digital audio players, digital picture recorders, digital picture players, digital video recorders, digital video players, devices capable of transmitting/receiving information in wireless environments, one of various electronic devices constituting a home network, one of various electronic devices constituting a computer network, one of various electronic devices constituting a telematics network, a radio frequency identification (RFID) device, or one of various components constituting a computing system.
Data storage system 100 may be mounted in various types of packages. For example, data storage system 100 may be packaged using various methods such as Package on Package (PoP), Ball Grid Arrays (BGAs), Chip Scale Packages (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In-line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flat Pack (TQFP), Small Outline Integrated Circuit (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline Package (TSOP), Thin Quad Flat Pack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), and Wafer-level Processed Stack Package (WSP).
Referring to
For ease of description, a page defined at an intersection of the first word line WL1 and the first memory block BLK1 will be written as P(WL1, BLK1).
A programming operation may be performed in a direction indicated by arrows (that is, from the left to the right of the drawing). That is, pages P(WL1, BLK1) through P(WL1, BLKm) corresponding to the first word line WL1 may be programmed, and then pages P(WL2, BLK1) through P(WL2, BLKm) corresponding to the second word line WL2 may be programmed. In this way, all pages up to and including pages P(WLm−1, BLK1) through P(WLm−1, BLKm) corresponding to the (m−1)th word line WLm−1 are programmed.
Then, first through mth RAID parity data PRT1 through PRTm are programmed respectively into pages P(WLm, BLK1) through P(WLm, BLKm) corresponding to the mth word line WLm. As shown in the drawing, the first through mth RAID parity data PRT1 through PRTm may be programmed in order of PRT2, PRT3, PRT4, PRT5, ˜, PRTm, and PRT1.
For example, referring to arrow A, the first RAID parity data PRT1 may be generated using first through (m−1)th data D1(1) through D1(m−1). For example, the first RAID parity data PRT1 may be generated by performing an XOR operation on the first through (m−1)th data D1(1) through D1(m−1).
Referring to arrow B, the second RAID parity data PRT2 may be generated using first through (m−1)th data D2(1) through D2(m−1). For example, the second RAID parity data PRT2 may be generated by performing an XOR operation on the first through (m−1)th data D2(1) through D2(m−1).
Referring to arrow C, the third RAID parity data PRT3 may be generated using first through (m−1)th data D3(1) through D3(m−1). For example, the third RAID parity data PRT3 may be generated by performing an XOR operation on the first through (m−1)th data D3(1) through D3(m−1).
As described above, in embodiments of the present inventive concept, the m pages P(WLm, BLK1) through P(WLm, BLKm) may be connected to the mth word line WLm, and the first through mth RAID parity data PRT1 through PRTm may respectively be stored in the pages P(WLm, BLK1) through P(WLm, BLKm).
Referring to
Referring to
In
In
Referring to
On the other hand, referring to
Referring to
Main processor 105 may interpret an access command (e.g., a write command, a program command, a read command or an erase command) output from a host and control the operation of each component 107, 109, 110, 140 or 150 based on the interpretation result.
When memory controller 20 does not include buffer controller 109, host interface 107 may perform an interfacing operation between the host and RAID controller 110. On the other hand, when memory controller 20 includes buffer controller 109, then host interface 107 may perform an interfacing operation between the host and buffer controller 109.
When receiving first through (m−1)th data D1(1) through D1(m−1) (see
RAID controller 110 generates first RAID parity data PRT1 using the first through (m−1)th data D1(1) through D1(m−1). For example, RAID controller 110 may generate the first RAID parity data PRT1 by performing an XOR operation on the first through (m−1)th data D1(1) through D1(m−1). However, the present inventive concept is not limited thereto.
Access controller 140 may be connected to RAID controller 110 and access a nonvolatile memory device. When the nonvolatile memory device is configured as a NAND flash memory, access controller 140 may be configured as a NAND flash controller. As described above, access controller 140 may program the first through (m−1)th data D1(1) through D1(m−1) to first through (m−1)th pages P(WL1, BLK1), P(WL2, BLK2), ˜, P(WLm−1, BLKm−1) (see
Buffer memory 150 may store all of the first through (m−1)th data D1(1) through D1(m−1).
Alternatively, buffer memory 150 may store a value of an XOR operation, so that the amount of data stored in buffer memory 150 can be reduced.
For example, if the first through (m−1)th data D1(1) through D1(m−1) are input sequentially, when wth data (1≦w≦m−1, where w is a natural number) is input, buffer memory 150 may store a value produced by an XOR operation performed on the first through wth data D1(1) through D1(w). Specifically, when the second data D1(2) is input, D1(1)⊕D1(2) may be stored in buffer memory 150. When the third data D1(3) is input, D1(1)⊕D1(2)⊕D1(3) may be stored in buffer memory 150. The XOR operation may be performed by RAID controller 110.
In concluding the detailed description, those skilled in the art will appreciate that many variations and modifications can be made to the preferred embodiments without substantially departing from the principles of the present invention. Therefore, the disclosed preferred embodiments of the invention are used in a generic and descriptive sense only and not for purposes of limitation.
Number | Date | Country | Kind |
---|---|---|---|
10-2012-0005326 | Jan 2012 | KR | national |