WO2010076966A2 - 메모리 컨트롤러 및 메모리 관리 방법 - Google Patents
메모리 컨트롤러 및 메모리 관리 방법 Download PDFInfo
- Publication number
- WO2010076966A2 WO2010076966A2 PCT/KR2009/006426 KR2009006426W WO2010076966A2 WO 2010076966 A2 WO2010076966 A2 WO 2010076966A2 KR 2009006426 W KR2009006426 W KR 2009006426W WO 2010076966 A2 WO2010076966 A2 WO 2010076966A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ecc
- data
- memory
- code
- ecc code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Definitions
- a memory controller and a memory management method are disclosed.
- ECC Error Correction Code
- Storage devices for storing data may include magnetic disks and semiconductor memories. Since storage devices have different physical characteristics by type, a management method corresponding to the physical characteristics is required.
- Magnetic disks have been widely used as a conventional storage device. Magnetic disks, on average, feature read and write times of a few milliseconds per kilobyte. In addition, the magnetic disk has a characteristic that the read and write time is different because the time that the arm arrives varies depending on the physical location where the data is stored.
- non-volatile memory which consumes less power and consumes less power than the magnetic disk, is rapidly replacing magnetic disk. This is possible because of the large capacity of the nonvolatile memory.
- a nonvolatile memory is a semiconductor memory device capable of electrically reading, writing, and erasing and maintaining stored data even without a power supply. In addition to writing, the process of storing data for nonvolatile memory devices is also called programming.
- Flash memory is a representative example of non-volatile memory, which is smaller in size, smaller in power consumption, and faster in reading compared to a conventional hard disk drive (HDD). There is this. Recently, a solid state disk (SSD) has been proposed to replace an HDD by using a large flash memory.
- SSD solid state disk
- flash memory examples include NAND flash memory and NOR flash memory.
- the NAND method and the NOR method may be distinguished by a configuration and an operation method of a cell array.
- Flash memory consists of an array of multiple memory cells, where one memory cell can store one or more data bits.
- One memory cell includes a control gate and a floating gate, and an insulator is inserted between the control gate and the floating gate, and an insulator is inserted between the floating gate and the substrate. .
- Such a nonvolatile memory is managed by a predetermined controller.
- the performance of the entire nonvolatile memory may be determined according to the performance of the controller.
- ECC error correction code
- the ECC generates an ECC information for generating error correction code (ECC) information for the data based on a predetermined, required confidence level according to the type of data.
- ECC error correction code
- the memory management method may include error correction code (ECC) information on the data based on a predetermined, required confidence level according to the type of data. Generating, calculating an ECC code for the data based on the ECC information, and recording the ECC code in a memory based on the ECC information.
- ECC error correction code
- Efficient memory management is possible by disclosing a memory controller and a memory management method using various error correction code (ECC) techniques in consideration of the reliability required according to the type of data to be recorded in the memory.
- ECC error correction code
- FIG. 1 is a conceptual diagram illustrating an operation of a memory controller according to an embodiment of the present invention.
- FIG. 2 is a flowchart illustrating an operation process of a memory controller according to an exemplary embodiment of the present invention.
- FIG. 3 is a flowchart illustrating an operating process of a memory controller according to another exemplary embodiment of the present invention.
- FIG. 4 is a diagram illustrating a structure of a memory controller according to an embodiment of the present invention.
- FIG. 5 is a flowchart illustrating a memory management method according to an embodiment of the present invention.
- FIG. 1 is a conceptual diagram illustrating an operation of a memory controller according to an embodiment of the present invention.
- a file system 110 a file system 110
- a memory controller 120 a memory controller 120
- a memory 130 a memory 130
- the memory 130 may be a non-volatile memory.
- programming of the nonvolatile memory 130 may be performed in units of pages, and erase may be performed in units of blocks.
- the block may include a plurality of pages.
- the memory controller 120 managing the nonvolatile memory 130 provides a logical address to an external host or processor, and provides a physical address to the nonvolatile memory 130. physical address).
- the memory controller 120 may manage the nonvolatile memory 110 using a physical address and convert the physical address into a logical address.
- the layer in which the physical address and logical address translation is performed may be referred to as a flash translation layer (FTL).
- FTL flash translation layer
- the memory controller 120 may use an error correction code (ECC) to ensure the reliability of the data recorded in the memory 110.
- ECC error correction code
- the ECC information when ECC information reads data recorded in the memory 110, the ECC information detects an error such that the data is read differently from the data at the time when the data is recorded in the memory 110, and detects wrong data. Can be used to correct to the correct data.
- the ECC information may be recorded in a specific area of the memory 110. In general, the ECC information may be recorded in a spare area of the memory 110.
- the memory controller 120 may secure reliability of data recorded in the memory 110 by using such ECC information.
- ECC information In general, in order to secure data reliability using ECC information, various factors, such as an ECC algorithm, an ECC application target, an ECC code size, or an ECC recording position, must be considered.
- a conventional memory controller specifies the elements according to a mapping algorithm of a memory controller, a purpose of use, characteristics of a memory, and the like, and then uniformly assigns the elements to data to be written to the memory. Was applied.
- the conventional memory controller specifies the aforementioned elements such as the ECC algorithm, the application target of the ECC, the size of the ECC code, the recording position of the ECC, and the like, and applies them to the memory regardless of the type of data to be recorded in the memory.
- meta Metal For data that requires high reliability, such as data, proper reliability may not be guaranteed.
- the memory controller 120 may enable efficient memory 130 management by dynamically applying an ECC technique according to the type of data to be recorded in the memory 130.
- the memory controller 120 when the memory controller 120 receives a write request of predetermined data from the file system 110, the memory controller 120 is based on a required confidence level, which is predetermined according to the type of the data. To generate ECC information for the data.
- the memory controller 120 may calculate the ECC code for the data based on the ECC information and then record the ECC code in the memory 130.
- the file system 110 when the file system 110 requests the memory controller 120 to write the data, the file system 110 may transmit the required confidence level information for the data.
- the ECC information may include information on the ECC algorithm, the size of the ECC code, the application target of the ECC or the recording position of the ECC.
- the memory controller 120 may select the ECC algorithm, the size of the ECC code, the application target of the ECC, or the recording position of the ECC in consideration of the required confidence level selected according to the type of data. You can decide.
- the required confidence level may be selected according to the type of data and then recorded in the address mapping table 121.
- the memory controller 120 may determine the required confidence level by referring to the address mapping table 121.
- the memory controller 120 may identify the request trust level according to the type of data and generate appropriate ECC information accordingly.
- the address mapping table 121 refers to a table in which logical addresses and physical addresses are mapped to each other.
- the memory controller 120 when the memory controller 120 receives a read request of the data from the file system 110, the memory controller 120 reads the data from the memory 130 while reading the data from the memory 130. On the basis of this, the ECC code recorded in the memory 130 can be read.
- the memory controller 120 may determine the request trust level selected for the data with reference to the address mapping table and then read the ECC code based on the request trust level. have.
- the memory controller 120 may calculate a second ECC code for the read data based on the ECC information.
- the memory controller 120 compares the read ECC code with the second ECC code based on the ECC information and detects whether the read data has an error, and if the error is detected, detects the error. I can correct it.
- the request confidence level of the first data is a first request confidence level
- the request trust level of the second data is a second request confidence level
- the first request confidence level exceeds the second request confidence level
- reference numeral 131 is a diagram illustrating a page of the memory 130.
- the page 131 may include a plurality of sectors, and each sector may include a data area and a spare area in which data is to be stored. It can be divided into.
- the memory controller 120 may calculate a first ECC code with respect to the first data based on the entire page on which the first data is to be written.
- the memory controller 120 may then write the first ECC code to the last sector of the page.
- the memory controller 120 calculates the first ECC code based on the entire page 131 on which the first data is to be written, and then pages the first ECC code.
- the last sector 132 of 131 can be recorded.
- the memory controller 120 may calculate a second ECC code for each sector in which the second data is to be written, with respect to the second data.
- the memory controller 120 may write the second ECC code in the redundant area of the memory 130.
- the memory controller 120 calculates the second ECC code for each sector of the page 131 on which the second data is to be written, and then stores the second ECC code as a surplus region. (133).
- the memory controller 120 calculates an ECC code for the data based on an entire page when data requiring a relatively high confidence level is recorded in the memory 130.
- the space utilization of the memory 130 is increased, but high reliability of the data can be ensured.
- the memory controller 120 may calculate an ECC code for the data for each sector and then store the memory ( By writing the ECC code in the redundant area of 130, the level of confidence guaranteed for the data is lowered slightly, but the gain in terms of space utilization and speed of the memory 130 can be obtained.
- the memory controller 120 When the memory controller 120 receives the read request of the first data from the file system 110, the memory controller 120 reads the first ECC code from the last sector 132 of the page 131 on which the first data is written.
- the memory controller 120 calculates a third ECC code for the read first data based on the entire page 131 and compares the first ECC code with the third ECC code to read the read data. It is possible to detect and correct an error on the first data.
- the memory controller 120 When the memory controller 120 receives the read request of the second data from the file system 110, the memory controller 120 reads the second ECC code from the redundant area 133 of the memory 130.
- the memory controller 120 calculates a fourth ECC code for the read second data for each sector, and then compares the second ECC code with the fourth ECC code to the read second data. Can detect and correct errors.
- the data to be written to the memory 130 is metadata of the memory controller 120, if the information is lost, all the data written to the memory 130 may not be trusted. Need to be.
- the required trust level of the metadata may be selected higher than the required confidence level of the user data. have.
- the memory controller 120 since the memory controller 120 may distinguish the meta data from the user data, the memory controller 120 does not need to consider a separate method for distinguishing the required trust level selected according to the type of data.
- the memory controller 120 may be designed such that the metadata is written only to a specific location of the memory 130. For this reason, in order to distinguish the required trust level selected according to the type of data, a process of adding a specific field to the address mapping table 121 may be omitted.
- FIG. 2 is a flowchart illustrating an operation process of a memory controller according to an exemplary embodiment of the present invention.
- the memory controller 120 receives a data write request from the file system 110.
- the memory controller 120 determines whether the data requested for writing from the file system 110 is metadata of the memory controller 120.
- step S220 If it is determined in step S220 that the data requested to be written from the file system 110 is the metadata of the memory controller 120, the memory controller 120 determines in step S230 that the metadata is to be recorded. Compute a first ECC code for the metadata based on the whole.
- step S240 the memory controller 120 writes the first ECC code to a predetermined sector of the page.
- the predetermined sector may be the last sector of the page.
- step S220 when it is determined in step S220 that the data is user data rather than the metadata, the memory controller 120 performs a second operation on the user data for each sector in which the user data is to be recorded in step S250. Compute ECC code.
- step S260 the memory controller 120 writes the second ECC code in the redundant area of the memory 130.
- the memory controller 120 may provide an ECC code for the metadata based on an entire page. By writing the ECC code in the last sector of the page after the operation, the space utilization rate of the memory 130 may be increased, but high reliability may be guaranteed for the metadata.
- the memory controller 120 calculates the ECC code for the user data for each sector when user data requiring a relatively low level of confidence is recorded in the memory 130.
- the level of confidence guaranteed for the user data is somewhat lowered, but the gain in terms of space utilization and speed of the memory 130 can be obtained.
- FIG. 3 is a flowchart illustrating an operating process of a memory controller according to another exemplary embodiment of the present invention.
- the memory controller 120 receives a data read request from the file system 110.
- the memory controller 120 determines whether data read from the file system 110 is metadata of the memory controller 120.
- step S320 If it is determined in step S320 that the data requested to be read from the file system 110 is metadata of the memory controller 120, the memory controller 120 determines that the page on which the metadata is written in step S330. The first ECC code is read from the last sector of.
- the memory controller 120 calculates a third ECC code for metadata read from the memory 130 based on the entire page.
- an error of the read metadata is detected and corrected by comparing the read first ECC code with the third ECC code.
- step S320 If it is determined in step S320 that the data is user data rather than the metadata, the memory controller 120 reads the second ECC code from the excess area of the memory 130 in step S360. .
- step S370 the memory controller 120 calculates a fourth ECC code for the user data read from the memory 130 for each sector.
- an error of the user data is detected and corrected by comparing the read second ECC code with the fourth ECC code.
- FIG. 4 is a diagram illustrating a structure of a memory controller according to an embodiment of the present invention.
- FIG. 4 a file system 410, a memory controller 420, and a memory 430 are shown.
- the memory controller 420 may include an ECC generator 421, an ECC calculator 422, and an ECC recorder 423.
- the ECC generation unit 421 When the file system 410 requests to write data, the ECC generation unit 421 generates ECC information for the data based on a required trust level selected according to the type of the data.
- the required confidence level may be selected according to the type of data and then recorded in the address mapping table.
- the ECC generation unit 421 may generate the ECC information after determining the requested trust level with reference to the address mapping table.
- the ECC calculator 422 calculates an ECC code for the data based on the ECC information.
- the ECC recording unit 423 records the ECC code in the memory 430 based on the ECC information.
- the memory controller 420 may further include an ECC reader (not shown), a second ECC calculator (not shown), and an error detector (not shown).
- the ECC reading unit reads the ECC code from the memory 430 based on the ECC information when the data is read from the memory 430 due to a data read request received from the file system 410.
- the second ECC calculator calculates a second ECC code for the read data based on the ECC information.
- the error detector detects an error of the read data by comparing the read ECC code with the second ECC code based on the ECC information, and corrects the error if an error is detected.
- the ECC calculator 422 calculates a first ECC code for the data based on the entire page on which the data is to be recorded.
- a second ECC code for the data may be calculated for each sector in which the data is to be recorded.
- the ECC recording unit 423 may record the first ECC code in a predetermined sector of the page, and record the second ECC code in a redundant area of the memory 430. have.
- the predetermined sector may be the last sector of the page.
- the ECC reader when the memory controller 420 reads the data selected as the first required confidence level from the memory 430, the ECC reader reads from the selected sector of the page.
- the first ECC code may be read.
- the second ECC calculator may calculate a third ECC code for the read data based on the entire page.
- the error detector may compare the read first ECC code with the third ECC code to detect whether the read data has an error and correct the error if an error is detected.
- the ECC reading unit may include the surplus of the memory 430.
- the second ECC code can be read from the region.
- the second ECC calculator may calculate a fourth ECC code for the read data for each sector.
- the error detector may compare the read second ECC code with the fourth ECC code to detect whether the read data has an error and correct the error if an error is detected.
- the requested trust level of the metadata is selected as the first requested trust level
- the request of the user data is requested.
- the confidence level may be selected as the second required confidence level.
- the ECC calculator 422 calculates a first ECC code for the metadata based on the entire page on which the metadata is to be recorded.
- a second ECC code for the user data can be calculated for each sector in which the user data is to be recorded.
- the ECC recording unit 423 may record the first ECC code in a predetermined sector of the page, and record the second ECC code in a redundant area of the memory.
- the predetermined sector may be the last sector of the page.
- the ECC reader when the memory controller 420 reads the metadata from the memory 430, the ECC reader reads the first ECC code from a predetermined sector of the page. Can be.
- the second ECC calculator may calculate a third ECC code for the read metadata based on the entire page.
- the error detector may compare the read first ECC code with the third ECC code to detect whether the read metadata has an error, and if the error is detected, correct the error.
- the ECC reader when the memory controller 420 reads the user data from the memory 430, the ECC reader reads the second ECC code from the redundant area of the memory 430. You can read it.
- the second ECC calculator may calculate a fourth ECC code for the read user data for each sector.
- the error detector may compare the read second ECC code with the fourth ECC code to detect whether the read user data is an error and correct the error if an error is detected.
- FIG. 5 is a flowchart illustrating a memory management method according to an embodiment of the present invention.
- step S510 when the file system requests writing of data, ECC information on the data is generated based on a required confidence level selected according to the type of data.
- the required confidence level may be selected according to the type of data and then recorded in the address mapping table.
- the ECC information may be generated after determining the required trust level with reference to the address mapping table.
- an ECC code for the data is calculated based on the ECC information generated in operation S510.
- step S530 the ECC code calculated in step S520 is recorded in a memory based on the ECC information.
- the memory management method in the memory management method according to the present invention, after step S530, when the data is read from the memory due to a data read request received from a file system, the memory management method is based on the ECC information.
- the method may further include reading the ECC code from the memory.
- the memory management method may further include calculating a second ECC code for the read data based on the ECC information.
- the memory management method compares the read ECC code and the second ECC code based on the ECC information to detect whether the read data is an error, the error is detected
- the method may further include correcting the error.
- the requested trust level of the metadata is selected as the first requested trust level
- the requested trust level of the user data is May be selected as the second required confidence level
- step S520 when the data is metadata, the first ECC code for the metadata is calculated based on the entire page on which the metadata is to be recorded, and the data When is user data, a second ECC code for the user data can be calculated for each sector in which the user data is to be recorded.
- the first ECC code may be recorded in a predetermined sector of the page, and the second ECC code may be recorded in an excess area of the memory.
- the predetermined sector may be the last sector of the page.
- the step of reading the first ECC code from a predetermined sector of the page It may further include.
- the memory management method may further include calculating a third ECC code for the read metadata based on the entire page.
- the memory management method compares the read first ECC code with the third ECC code and detects whether the read metadata has an error, and when the error is detected, The method may further include correcting the error.
- the memory management method according to an embodiment of the present invention after the step (S530), when the user data is read from the memory, the step of reading the second ECC code from the redundant area of the memory It may further include.
- the memory management method may further include calculating a fourth ECC code for the read user data for each sector.
- the memory management method compares the read second ECC code with the fourth ECC code and detects an error of the read user data, and if an error is detected, The method may further include correcting the error.
- the memory management method according to an exemplary embodiment of the present invention has been described above with reference to FIG. 5.
- the memory management method according to an embodiment of the present invention may correspond to the configuration of the memory controller described with reference to FIGS. 1 to 4, a detailed description thereof will be omitted.
- the memory management method according to the present invention may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
- program instructions include machine code, such as produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.
- the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
Claims (14)
- 데이터의 종류에 따라 선정된(predetermined), 요구(required) 신뢰 수준에 기초하여 상기 데이터에 대한 오류 정정 코드(Error Correction Code: ECC) 정보를 생성하는 ECC 생성부;상기 ECC 정보에 기초하여 상기 데이터에 대한 ECC 코드를 연산하는 ECC 연산부; 및상기 ECC 정보에 기초하여 상기 ECC 코드를 메모리에 기록하는 ECC 기록부를 포함하는 것을 특징으로 하는 메모리 컨트롤러.
- 제1항에 있어서,상기 요구 신뢰 수준은상기 데이터의 종류에 따라 선정된 후 어드레스 매핑 테이블(address mapping table)에 기록되고,상기 ECC 생성부는상기 어드레스 매핑 테이블을 참조하여 상기 요구 신뢰 수준을 판단한 후 상기 ECC 정보를 생성하는 것을 특징으로 하는 메모리 컨트롤러.
- 제1항에 있어서,상기 메모리로부터 상기 데이터가 독출(read)되는 경우, 상기 ECC 정보에 기초하여 상기 메모리로부터 상기 ECC 코드를 독출하는 ECC 독출부;상기 ECC 정보에 기초하여 상기 독출된 데이터에 대한 제2 ECC 코드를 연산하는 제2 ECC 연산부; 및상기 ECC 정보를 기초로 상기 독출된 ECC 코드와 상기 제2 ECC 코드를 비교하여 상기 독출된 데이터의 에러여부를 감지하고, 에러가 감지되는 경우, 상기 에러를 정정하는 에러 감지부를 더 포함하는 것을 특징으로 하는 메모리 컨트롤러.
- 제1항에 있어서,상기 ECC 연산부는상기 데이터의 요구 신뢰 수준이 제1 요구 신뢰 수준인 경우, 상기 데이터가 기록될 페이지(page) 전체를 기준으로 상기 데이터에 대한 제1 ECC 코드를 연산하고,상기 데이터의 요구 신뢰 수준이 제2 요구 신뢰 수준인 경우, 상기 데이터가 기록될 각 섹터(sector)마다 상기 데이터에 대한 제2 ECC 코드를 연산하며,상기 제1 요구 신뢰 수준은 상기 제2 요구 신뢰 수준을 초과하는 것임을 특징으로 하는 메모리 컨트롤러.
- 제4항에 있어서,상기 ECC 기록부는상기 제1 ECC 코드를 상기 페이지의 선정된 섹터에 기록하고,상기 제2 ECC 코드를 상기 메모리의 잉여(spare) 영역에 기록하는 것을 특징으로 하는 메모리 컨트롤러.
- 제1항에 있어서,상기 데이터가 메타(meta) 데이터인 경우, 상기 메타 데이터의 요구 신뢰 수준은 제1 요구 신뢰 수준으로 선정되고,상기 데이터가 유저(user) 데이터인 경우, 상기 유저 데이터의 요구 신뢰 수준은 제2 요구 신뢰 수준으로 선정되며,상기 제1 요구 신뢰 수준은 상기 제2 요구 신뢰 수준을 초과하는 것임을 특징으로 하는 메모리 컨트롤러.
- 제1항에 있어서,상기 ECC 연산부는상기 데이터가 메타(meta) 데이터인 경우, 상기 메타 데이터가 기록될 페이지(page) 전체를 기준으로 상기 메타 데이터에 대한 제1 ECC 코드를 연산하고,상기 데이터가 유저(user) 데이터인 경우, 상기 유저 데이터가 기록될 각 섹터(sector)마다 상기 유저 데이터에 대한 제2 ECC 코드를 연산하는 것을 특징으로 하는 메모리 컨트롤러.
- 제7항에 있어서,상기 ECC 기록부는상기 제1 ECC 코드를 상기 페이지의 선정된 섹터에 기록하고,상기 제2 ECC 코드를 상기 메모리의 잉여(spare) 영역에 기록하는 것을 특징으로 하는 메모리 컨트롤러.
- 데이터의 종류에 따라 선정된(predetermined), 요구(required) 신뢰 수준에 기초하여 상기 데이터에 대한 오류 정정 코드(Error Correction Code: ECC) 정보를 생성하는 단계;상기 ECC 정보에 기초하여 상기 데이터에 대한 ECC 코드를 연산하는 단계; 및상기 ECC 정보에 기초하여 상기 ECC 코드를 메모리에 기록하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
- 제9항에 있어서,상기 요구 신뢰 수준은상기 데이터의 종류에 따라 선정된 후 어드레스 매핑 테이블(address mapping table)에 기록되고,상기 ECC 정보를 생성하는 단계는상기 어드레스 매핑 테이블을 참조하여 상기 요구 신뢰 수준을 판단한 후 상기 ECC 정보를 생성하는 것을 특징으로 하는 메모리 관리 방법.
- 제9항에 있어서,상기 메모리로부터 상기 데이터가 독출(read)되는 경우, 상기 ECC 정보에 기초하여 상기 메모리로부터 상기 ECC 코드를 독출하는 단계;상기 ECC 정보에 기초하여 상기 독출된 데이터에 대한 제2 ECC 코드를 연산하는 단계; 및상기 ECC 정보를 기초로 상기 ECC 코드와 상기 제2 ECC 코드를 비교하여 상기 독출된 데이터의 에러여부를 감지하고, 에러가 감지되는 경우, 상기 에러를 정정하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
- 제9항에 있어서,상기 ECC 코드를 연산하는 단계는상기 데이터가 메타(meta) 데이터인 경우, 상기 메타 데이터가 기록될 페이지(page) 전체를 기준으로 상기 메타 데이터에 대한 제1 ECC 코드를 연산하고,상기 데이터가 유저(user) 데이터인 경우, 상기 유저 데이터가 기록될 각 섹터(sector)마다 상기 유저 데이터에 대한 제2 ECC 코드를 연산하는 것을 특징으로 하는 메모리 관리 방법.
- 제12항에 있어서,상기 메모리에 기록하는 단계는상기 제1 ECC 코드를 상기 페이지의 선정된 섹터에 기록하고,상기 제2 ECC 코드를 상기 메모리의 잉여(spare) 영역에 기록하는 것을 특징으로 하는 메모리 관리 방법.
- 제9항 내지 제13항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011544355A JP2012514266A (ja) | 2008-12-30 | 2009-11-03 | メモリコントローラおよびメモリ管理方法 |
US13/142,605 US8738987B2 (en) | 2008-12-30 | 2009-11-03 | Memory controller and memory management method |
CN2009801534658A CN102272855A (zh) | 2008-12-30 | 2009-11-03 | 存储器控制器及存储器管理方法 |
EP09836287A EP2383750A4 (en) | 2008-12-30 | 2009-11-03 | MEMORY CONTROLLER AND MEMORY MANAGEMENT PROCESS |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080136866A KR101042197B1 (ko) | 2008-12-30 | 2008-12-30 | 메모리 컨트롤러 및 메모리 관리 방법 |
KR10-2008-0136866 | 2008-12-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2010076966A2 true WO2010076966A2 (ko) | 2010-07-08 |
WO2010076966A3 WO2010076966A3 (ko) | 2010-08-19 |
Family
ID=42310300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2009/006426 WO2010076966A2 (ko) | 2008-12-30 | 2009-11-03 | 메모리 컨트롤러 및 메모리 관리 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8738987B2 (ko) |
EP (1) | EP2383750A4 (ko) |
JP (1) | JP2012514266A (ko) |
KR (1) | KR101042197B1 (ko) |
CN (1) | CN102272855A (ko) |
WO (1) | WO2010076966A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436406A (zh) * | 2010-09-15 | 2012-05-02 | 株式会社东芝 | 半导体装置及其数据存取方法 |
CN104008773A (zh) * | 2013-02-27 | 2014-08-27 | 希捷科技有限公司 | 用于可变电阻存储器单元的ecc管理 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5217570B2 (ja) * | 2008-03-31 | 2013-06-19 | 日本電気株式会社 | メモリ装置及びメモリ制御方法 |
US8301980B2 (en) * | 2009-09-28 | 2012-10-30 | Nvidia Corporation | Error detection and correction for external DRAM |
US8190974B2 (en) * | 2009-09-28 | 2012-05-29 | Nvidia Corporation | Error detection and correction for external DRAM |
JP2013101455A (ja) * | 2011-11-08 | 2013-05-23 | Sony Corp | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
CN103197985B (zh) * | 2011-11-08 | 2018-07-13 | 索尼公司 | 存储控制装置 |
JP6092673B2 (ja) * | 2013-03-21 | 2017-03-08 | スタンレー電気株式会社 | メモリ制御装置、メモリ制御方法 |
CN104182292A (zh) * | 2013-05-21 | 2014-12-03 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN104346234B (zh) * | 2013-08-09 | 2017-09-26 | 华为技术有限公司 | 一种内存访问的方法、设备及系统 |
JP6107625B2 (ja) * | 2013-12-02 | 2017-04-05 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
US9954557B2 (en) * | 2014-04-30 | 2018-04-24 | Microsoft Technology Licensing, Llc | Variable width error correction |
US20160055058A1 (en) * | 2014-08-19 | 2016-02-25 | Hongzhong Zheng | Memory system architecture |
US10002043B2 (en) * | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
US10282100B2 (en) | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
US10437479B2 (en) * | 2014-08-19 | 2019-10-08 | Samsung Electronics Co., Ltd. | Unified addressing and hierarchical heterogeneous storage and memory |
US10002044B2 (en) * | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
US9594623B2 (en) * | 2015-03-24 | 2017-03-14 | Nxp Usa, Inc. | System on chip and method of updating program code on a system on chip |
US9916091B2 (en) | 2015-07-13 | 2018-03-13 | Samsung Electronics Co., Ltd. | Memory system architecture |
KR20180051706A (ko) | 2016-11-07 | 2018-05-17 | 삼성전자주식회사 | 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 |
US10261876B2 (en) * | 2016-11-08 | 2019-04-16 | Micron Technology, Inc. | Memory management |
FR3077655A1 (fr) * | 2018-02-05 | 2019-08-09 | Proton World International N.V. | Gestion d'une memoire non volatile |
KR102398540B1 (ko) * | 2018-02-19 | 2022-05-17 | 에스케이하이닉스 주식회사 | 메모리 장치, 반도체 장치 및 반도체 시스템 |
JP7177338B2 (ja) * | 2018-09-06 | 2022-11-24 | 富士通株式会社 | メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法 |
US11132253B2 (en) | 2018-12-06 | 2021-09-28 | Micron Technology, Inc. | Direct-input redundancy scheme with dedicated error correction code circuit |
KR20230019573A (ko) | 2021-08-02 | 2023-02-09 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6396779A (ja) * | 1986-10-09 | 1988-04-27 | Canon Inc | デ−タ記録方式 |
JP3178909B2 (ja) | 1992-01-10 | 2001-06-25 | 株式会社東芝 | 半導体メモリ装置 |
JPH07319776A (ja) * | 1994-05-27 | 1995-12-08 | Sony Corp | 情報の保管方法 |
US6017146A (en) * | 1995-05-31 | 2000-01-25 | Sanyo Electric Co., Ltd. | Error correction device |
US6804799B2 (en) * | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
US6904540B2 (en) * | 2001-10-29 | 2005-06-07 | Hewlett-Packard Development Company, L.P. | Targeted data protection |
EP1843358B1 (en) * | 2002-10-02 | 2010-06-16 | Panasonic Corporation | Control method of a non-volatile memory apparatus |
JP4073799B2 (ja) | 2003-02-07 | 2008-04-09 | 株式会社ルネサステクノロジ | メモリシステム |
JP3940713B2 (ja) * | 2003-09-01 | 2007-07-04 | 株式会社東芝 | 半導体装置 |
US7210077B2 (en) * | 2004-01-29 | 2007-04-24 | Hewlett-Packard Development Company, L.P. | System and method for configuring a solid-state storage device with error correction coding |
JP4953648B2 (ja) | 2006-02-03 | 2012-06-13 | パナソニック株式会社 | 不揮発性記憶装置およびメモリコントローラ |
JP2007257791A (ja) * | 2006-03-24 | 2007-10-04 | Fujitsu Ltd | 半導体記憶装置 |
US7739576B2 (en) * | 2006-08-31 | 2010-06-15 | Micron Technology, Inc. | Variable strength ECC |
US7900118B2 (en) | 2007-02-12 | 2011-03-01 | Phison Electronics Corp. | Flash memory system and method for controlling the same |
JP5057796B2 (ja) * | 2007-02-14 | 2012-10-24 | 株式会社東芝 | 半導体メモリ情報蓄積装置とその不良部位対処方法 |
-
2008
- 2008-12-30 KR KR1020080136866A patent/KR101042197B1/ko not_active IP Right Cessation
-
2009
- 2009-11-03 EP EP09836287A patent/EP2383750A4/en not_active Withdrawn
- 2009-11-03 CN CN2009801534658A patent/CN102272855A/zh active Pending
- 2009-11-03 JP JP2011544355A patent/JP2012514266A/ja active Pending
- 2009-11-03 US US13/142,605 patent/US8738987B2/en active Active
- 2009-11-03 WO PCT/KR2009/006426 patent/WO2010076966A2/ko active Application Filing
Non-Patent Citations (2)
Title |
---|
None |
See also references of EP2383750A4 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436406A (zh) * | 2010-09-15 | 2012-05-02 | 株式会社东芝 | 半导体装置及其数据存取方法 |
CN104008773A (zh) * | 2013-02-27 | 2014-08-27 | 希捷科技有限公司 | 用于可变电阻存储器单元的ecc管理 |
Also Published As
Publication number | Publication date |
---|---|
US8738987B2 (en) | 2014-05-27 |
CN102272855A (zh) | 2011-12-07 |
KR20100078568A (ko) | 2010-07-08 |
WO2010076966A3 (ko) | 2010-08-19 |
KR101042197B1 (ko) | 2011-06-20 |
EP2383750A4 (en) | 2012-07-04 |
JP2012514266A (ja) | 2012-06-21 |
US20110271164A1 (en) | 2011-11-03 |
EP2383750A2 (en) | 2011-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2010076966A2 (ko) | 메모리 컨트롤러 및 메모리 관리 방법 | |
US8484409B2 (en) | Nonvolatile memory controller with logical defective cluster table | |
US10255192B2 (en) | Data storage device and data maintenance method thereof | |
WO2010107176A2 (ko) | 디램 버퍼 관리 장치 및 방법 | |
US9438426B2 (en) | Key-value data storage device with hybrid architecture | |
US9075740B2 (en) | Memory system | |
KR101176702B1 (ko) | 판독 실패 관리 방법 및 시스템 | |
US20110185108A1 (en) | Memory system | |
JP2008009635A (ja) | ストレージシステム及びそのデータ保護方法 | |
TWI545572B (zh) | 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置 | |
WO2014012325A1 (zh) | 一种NAND Flash存储芯片的校验方法及装置 | |
JP2011118469A (ja) | メモリ管理装置およびメモリ管理方法 | |
WO2009139567A2 (en) | Memory device and memory programming method | |
WO2012013049A1 (zh) | 一种假容量存储器的检测方法及系统 | |
US10042575B2 (en) | Memory system including a battery powered buffer with a storage capacity of that buffer dependent on the voltage level of the battery | |
JP2012168927A (ja) | データリテンション動作を実行する使用者装置、データ格納装置、及びそれのデータリテンション方法 | |
JP5300496B2 (ja) | 半導体記憶装置、ホスト機器及び半導体記憶システム | |
WO2015005635A1 (ko) | 메모리 시스템 및 메모리의 데이터 처리 방법 | |
US8819332B2 (en) | Nonvolatile storage device performing periodic error correction during successive page copy operations | |
KR100955157B1 (ko) | 메모리 장치 및 메모리 장치의 관리 방법 | |
WO2010107173A1 (ko) | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 | |
WO2019144918A1 (zh) | 非易失存储设备的掉电时间估计方法和装置 | |
US20210257024A1 (en) | Storage control device, storage device, and storage control method | |
JP4068594B2 (ja) | フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法 | |
KR100736093B1 (ko) | Nand 플래시 제어 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200980153465.8 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09836287 Country of ref document: EP Kind code of ref document: A2 |
|
ENP | Entry into the national phase |
Ref document number: 2011544355 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13142605 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2009836287 Country of ref document: EP |