KR20180090414A - System and method for improving the reliability of wear-leveling by recording and monitoring the number of ldpc decoding interations - Google Patents
System and method for improving the reliability of wear-leveling by recording and monitoring the number of ldpc decoding interations Download PDFInfo
- Publication number
- KR20180090414A KR20180090414A KR1020170014952A KR20170014952A KR20180090414A KR 20180090414 A KR20180090414 A KR 20180090414A KR 1020170014952 A KR1020170014952 A KR 1020170014952A KR 20170014952 A KR20170014952 A KR 20170014952A KR 20180090414 A KR20180090414 A KR 20180090414A
- Authority
- KR
- South Korea
- Prior art keywords
- decoding
- wear
- cnt
- block
- recording
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/255—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
본 발명은 웨어-레벨링 신뢰도 향상 시스템 및 방법에 관한 것으로, 더욱 상세하게는 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for improving wear-leveling reliability, and more particularly, to a system and method for improving wear-leveling reliability through recording and monitoring the number of iterations of LDPC decoding.
고체 상태 드라이브(SSD; Solid-State-Drive)는 플래시 메모리 기반 저장장치로서 고속 입출력, 저전력 등의 장점을 가지고 있다. 하지만, 플래시 메모리는 쓰고 지우는 횟수에 한계가 있다는 단점을 가지고 있다. 데이터를 저장하는 기본 단위인 셀(cell)의 플로팅 게이트(floating gate)는 전자를 가두고 내보내는 쓰기 및/또는 지우기 과정을 반복하면 마모가 생겨 결국에는 더 이상 사용할 수 없는 고장 상태에 이른다. 이 때문에 플래시 메모리의 수명은 제한적이다. 플래시 메모리는 다수의 블록으로 구성되어 있고 각 블록은 페이지라는 단위로 구분된다. 쓰기 동작은 페이지 단위로, 지우기 동작은 블록 단위로 수행되는데, 이 때문에 쓰기 또는 지우기 동작이 특정 블록이나 특정 페이지에 집중될 경우 더 빠르게 고장 상태에 이르게 된다. 이를 방지하고 플래시 메모리의 전체적인 수명을 늘이기 위하여 웨어-레벨링(Wear-Leveling)이라는 기술이 SSD에 적용된다. 웨어-레벨링은 블록별로 수행되었던 쓰기 및/또는 지우기 동작 횟수에 관련된 정보를 기록하여 가능한 한 모든 블록을 고르게 사용하도록 동작 횟수를 평준화하는 것이다. 하지만, 복잡한 반도체 제조 공정이 복잡하고 미세하기 때문에 같은 공정을 거쳐 생산된 플래시 메모리라 할지라도 서로 마모 정도가 같을 수는 없다. 또한 사용되는 하나의 플래시 메모리 내에서도 블록 간, 페이지 간 마모 정도가 다를 수 있다. 다시 말하자면, 같은 SSD 내에서도 블록별, 페이지별 최대 쓰기 및/또는 지우기 동작 횟수가 다를 수 있다는 것이다. 따라서, 단순히 쓰기 및/또는 지우기 동작 횟수만을 고려하는 것이 아니라 실제 마모 진행 정도를 파악할 필요가 있다. 즉, 플래시 메모리를 구성하고 있는 블록 또는 페이지별로 마모도를 모니터링하고 상대적으로 마모가 빠르게 진행된 부분의 사용을 제한해야 하는 것이다.Solid-state-drive (SSD) is a flash memory-based storage device with high-speed I / O and low power. However, flash memory has a disadvantage in that it has a limited number of write and erase operations. The floating gate of the cell, which is the basic unit for storing the data, is worn out by repeating the write and / or erase process of putting the electrons in and out, resulting in a failure state which is no longer usable. Because of this, the lifetime of the flash memory is limited. The flash memory is made up of a number of blocks, and each block is divided into units called pages. The write operation is performed on a page basis, and the erase operation is performed on a block basis, which leads to a faster failure state when a write or erase operation is concentrated on a specific block or a specific page. A technique called Wear-Leveling is applied to the SSD to prevent this and to increase the overall life of the flash memory. Wear-leveling is to record information related to the number of write and / or erase operations that have been performed on a block-by-block basis, and to equalize the number of operations so as to use all blocks as evenly as possible. However, since complicated semiconductor manufacturing processes are complicated and minute, even the flash memories produced through the same process can not have the same degree of wear. Also, the degree of abrasion between blocks and between pages may be different within a single flash memory to be used. In other words, the maximum number of write and / or erase operations per block and per page may be different within the same SSD. Therefore, it is necessary to grasp the actual wear progress rather than merely considering the number of write and / or erase operations. That is, it is necessary to monitor the wear rate of each block or page constituting the flash memory, and to restrict the use of the relatively rapidly worn portion.
SSD의 신뢰성을 위하여 오류정정코드(ECC; Error Correction Code)가 필수적으로 사용된다. 오류정정코드는 크게 두 가지 과정으로 나눌 수 있다. 첫 번째, 부호 과정에서는 실제 데이터(메세지)를 메모리에 저장하기 전에 오류정정을 위한 추가 데이터(리던던시)를 생성하고 이 두 가지를 합한 데이터(코드워드)를 메모리에 저장한다. 두 번째, 복호 과정에서는 데이터를 읽을 때 오류가 발생하였을 경우 부호 과정에서 생성한 리던던시를 활용하여 오류를 제거한다. 일반적으로 SSD에 적용되는 오류정정코드는 BCH(Bose, Chaudhri, Hocquenghem) 코드인데 최근에는 더 높은 오류정정률이 증명된 LDPC(Low-Density Parity-Check) 코드의 적용이 고려되고 있다. LDPC 코드는 기존의 오류정정코드와 달리 복호할 코드워드를 확률적인 정보로 변경한 뒤 일련의 과정을 반복한다. 그 일련의 과정은 다음과 같다.Error Correction Code (ECC) is essential for reliability of SSD. The error correction code can be roughly divided into two processes. First, in the signing process, additional data (redundancy) for error correction is generated before the actual data (message) is stored in the memory, and the data (codeword) of the two is stored in the memory. Second, in the decoding process, if an error occurs in reading the data, the error is eliminated by using the redundancy generated in the coding process. In general, error correction codes applied to SSDs are BCH (Bose, Chaudhri, Hocquenghem) codes. In recent years, application of LDPC (Low-Density Parity-Check) codes with a higher error correction rate has been considered. Unlike the conventional error correction code, the LDPC code changes the codeword to be decoded to stochastic information and then repeats a series of processes. The process is as follows.
① 초기화: 복호할 코드워드를 확률 정보로 변경하여 복호 회로의 메모리에 설정① Initialization: Change the codeword to be decoded to probability information and set it in the memory of the decoding circuit
② 체크-노드 업데이트: 해당 LDPC 코드의 패리티-체크 행렬 구성을 바탕으로 확률 정보를 업데이트② Check-node update: update the probability information based on the parity-check matrix configuration of the LDPC code
③ 변수-노드 업데이트: ②에서 업데이트한 정보를 바탕으로 코드워드의 각 비트를 결정③ Variable - Update node: Determine each bit of code word based on the updated information in ②
④ 패리티-체크: 결정된 코드워드가 유효한 코드워드인지(오류가 모두 제거되었는지) 검사④ Parity - Check: Check whether the determined codeword is a valid codeword (all errors are removed)
SSD의 오류 정정을 위한 기존의 BCH 코드와 달리 LDPC 코드는 복호 작업을 시작한 뒤 최초로 한번 ①을 수행한 뒤, 유효한 코드워드가 생성될 때까지 ②, ③ 및 ④를 반복 한다. 위 복호 과정을 반복할 수 있는 횟수는 제한되어 있으며 제한된 수만큼 복호를 반복했음에도 유효한 코드워드를 생성하지 못한다면 복호 실패를 선언하고 복호를 중단한다.Unlike the conventional BCH code for error correction of the SSD, the LDPC code performs the first ① once after starting the decoding operation, and then repeats ②, ③ and ④ until a valid codeword is generated. The number of times that it is possible to repeat the above decoding process is limited. If it is not possible to generate a valid codeword even if decoding is repeated a limited number of times, decoding failure is declared and decoding is stopped.
일반적으로 코드워드에 포함된 오류가 많을수록 복호 반복 횟수가 증가하게 된다. 따라서 LDPC 코드를 SSD에 적용하였을 때 복호 반복 횟수의 증가는 해당 블록 또는 페이지에 오류가 다수 포함되어 있다는 것을 나타내며 마모가 진행되었음을 나타내는 데 근거가 될 수 있다.Generally, the more errors included in a codeword, the greater the number of times the decoding is repeated. Therefore, when the LDPC code is applied to the SSD, the increase in the number of decoding iterations indicates that the corresponding block or page contains a large number of errors, which may be a basis for indicating that the wear has progressed.
SSD의 오류정정코드로써 LDPC 코드를 적용하였을 때, 플래시 메모리의 읽기 동작의 데이터 복호 과정에서 복호 반복 횟수를 얻을 수 있다. LDPC 코드에서 복호 반복 횟수의 의미는 오류를 정정하기 위한 일련의 과정을 모든 오류를 수정할 때까지 몇 번을 반복했는지를 나타낸다. 따라서 읽은 데이터에 오류가 많이 포함되어 있을수록 복호 반복 횟수도 증가한다. 오류의 발생은 플래시 메모리의 마모도와 직접적인 관련이 있다. 그러므로 복호 반복 횟수는 플래시 메모리의 마모도를 예측할 수 있는 근거가 될 수 있다.When the LDPC code is applied as the error correction code of the SSD, the number of decoding iterations can be obtained in the data decoding process of the read operation of the flash memory. The meaning of the number of iterations of decoding in the LDPC code indicates how many times it has been repeated until all the errors are corrected in order to correct the error. Therefore, the more decoding errors are included in the read data, the greater the number of decoding iterations. The occurrence of an error is directly related to the wear of the flash memory. Therefore, the number of decoding iterations can be a basis for predicting the wear of the flash memory.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 쓰기 및 지우기 동작 횟수 뿐만 아니라 LDPC 코드의 복호 반복 횟수에 관련된 정보를 획득하고 이를 통해 각 블록의 실제 마모도를 예측하여 상대적으로 마모가 빠르게 진행된 블록의 사용을 제한하는 유연한 웨어-레벨링을 수행할 수 있는 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템 및 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and it is an object of the present invention to provide a decoding method and a decoding method, Leveling reliability by recording and monitoring the number of iterations of LDPC decoding that can perform flexible wear-leveling that limits the use of relatively rapidly worn blocks.
상기와 같은 목적을 달성하기 위한 본 발명의 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템은, 블록 또는 페이지 단위로 동작하고 LDPC 코드를 이용하여 오류 여부를 확인하는 플래시 메모리 기반 저장 장치에 있어서, 데이터 읽기 동작마다 복호 반복 횟수 정보를 획득하고 이를 블록 단위로 저장하는 복호 반복 횟수 기록부 및 실제로 수행된 쓰기 및 지우기 횟수와 상기 복호 반복 횟수를 바탕으로 마모도를 구하는 마모도 모니터링부를 포함한다.According to an aspect of the present invention, there is provided a wear-leveling reliability improvement system for recording and monitoring the number of iterations of LDPC decoding, comprising: a flash memory based storage device operating in block or page units, A decoding repetition count recording unit for acquiring decoding repetition count information for each data reading operation and storing the decoding repetition count information for each data reading operation and an abrasion monitoring unit for estimating a wear degree based on the actually performed times of writing and erasing and the number of times of decoding.
한편, 본 발명의 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 방법은, 블록 또는 페이지 단위로 동작하고 LDPC 코드를 이용하여 오류 여부를 확인하는 플래시 메모리 기반 저장 장치에 있어서, 데이터 읽기 동작마다 복호 반복 횟수 정보를 획득하고 이를 블록 단위로 저장하는 복호 반복 횟수 기록 단계 및 실제로 수행된 쓰기 및 지우기 횟수와 상기 복호 반복 횟수를 바탕으로 마모도를 구하는 마모도 모니터링 단계를 포함한다.Meanwhile, a method for improving wear-leveling reliability by recording and monitoring the number of LDPC decoding repetition counts of the present invention is a flash memory-based storage device that operates on a block or page basis and verifies whether an error has occurred by using an LDPC code, And a wear rate monitoring step of calculating a wear rate based on the number of times of actually performing the write and erase operations and the number of times of the decoding operations.
상술한 바와 같이, 본 발명에 의한 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템 및 방법은 다음과 같은 효과를 제공한다.As described above, the system and method for improving wear-leveling reliability through recording and monitoring the number of repetitions of LDPC decoding according to the present invention provides the following effects.
본 발명의 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템 및 방법에 따르면 블록 단위의 유연한 웨어-레벨링이 가능하다. 또한, 읽기 과정 속 LDPC 코드의 복호 과정에서 자연스럽게 발생하는 복호 반복 횟수를 활용하기 때문에 오류율 또는 오류 개수를 측정해야 하는 오버헤드를 감수하지 않을 수 있다. 그리고, 복호 반복 횟수를 고려한 웨어-레벨링과 함께 LDPC 코드의 높은 오류정정율까지 고려한다면 SSD의 높은 수명을 기대할 수 있다.According to the system and method for improving wear-leveling reliability by recording and monitoring the number of repetitions of LDPC decoding according to the present invention, it is possible to perform flexible wear-leveling on a block basis. In addition, since the number of decoding iterations naturally occurring in the decoding process of the LDPC code in the reading process is used, the overhead of measuring the error rate or the number of errors can be avoided. In addition to the wear-leveling considering the number of decoding iterations, a high lifetime of the SSD can be expected if the high error correction rate of the LDPC code is considered.
도 1은 본 발명의 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템 및 방법이 적용되는 플래시 메모리의 플래시 변환 계층 전체의 구성을 개략적으로 나타낸 블록도이다.
도 2는 본 발명의 바람직한 실시예에 따른 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템의 구성을 개략적으로 나타낸 블록도이다.
도 3은 본 발명의 바람직한 실시예에 따른 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 방법의 전체 흐름을 개략적으로 나타낸 순서도이다.FIG. 1 is a block diagram schematically showing a configuration of a whole flash conversion layer of a flash memory to which a system for and method for improving wear-leveling reliability by recording and monitoring the number of repetitions of LDPC decoding according to the present invention is applied.
FIG. 2 is a block diagram schematically illustrating a configuration of a wear-leveling reliability improving system through recording and monitoring the number of repetitions of LDPC decoding according to a preferred embodiment of the present invention.
FIG. 3 is a flowchart schematically illustrating the overall flow of a method for improving wear-leveling reliability by recording and monitoring the number of repetitions of LDPC decoding according to a preferred embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
도 1은 본 발명의 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템 및 방법이 적용되는 플래시 메모리의 플래시 변환 계층 전체의 구성을 개략적으로 나타낸 블록도이다.FIG. 1 is a block diagram schematically showing a configuration of a whole flash conversion layer of a flash memory to which a system for and method for improving wear-leveling reliability by recording and monitoring the number of repetitions of LDPC decoding according to the present invention is applied.
이하에서 제시될 본 발명에 의한 웨어-레벨링 신뢰도 향상 시스템 및 방법은 플래시 메모리와 파일 시스템 사이에 위치하면서 매핑, 웨어-레벨링, 가비지 컬렉션, 배드 블록 매니지먼트, 오류정정정코드를 수행하는 구성들로 이루어져, 플래시 메모리를 디스크처럼 사용할 수 있게 해주는 사상 기술을 수행할 뿐만 아니라, 플래시 메모리 섹터들의 최대 쓰기/지우기 횟수가 유한한 결점을 보완하는 역할을 하는 플래시 변환 계층(FTL; Flash Translation Layer)을 바탕으로 하는 경우를 바람직한 실시예로서 제안한다.The system and method for improving wear-leveling reliability according to the present invention, which will be described below, are composed of structures for performing mapping, ware-leveling, garbage collection, bad block management, and error correction code located between a flash memory and a file system, It is based on Flash Translation Layer (FTL), which not only performs mapping technology that enables flash memory to be used like a disk, but also compensates for the finite defects of the maximum write / erase count of flash memory sectors As a preferred embodiment.
또한, 본 명세서에서는 설명의 편의를 위해 본 발명의 바람직한 실시예에 따른 웨어-레벨링 시스템 및 방법이 SSD에 적용되는 것을 예시하나, 해당 기술분야의 통상의 기술자들은 본 발명이 이에 한정되지 않고 그러한 SSD 뿐만 아니라, SSD와 같이 블록 또는 페이지 단위로 동작하는 임의의 다른 플래시 메모리 기반 저장 장치들에 적용 가능하다는 것을 이해할 것이다.In this specification, for convenience of description, the wear-leveling system and method according to a preferred embodiment of the present invention is applied to an SSD, but ordinary skill in the art will recognize that the present invention is not limited thereto, As well as any other flash memory based storage devices operating in block or page units such as SSDs.
이하 본 발명의 바람직한 실시예에 따른 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, a system for improving wear-leveling reliability by recording and monitoring the number of repetitions of LDPC decoding according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.
도 2는 본 발명의 바람직한 실시예에 따른 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템의 구성을 개략적으로 나타낸 블록도이다.FIG. 2 is a block diagram schematically illustrating a configuration of a wear-leveling reliability improving system through recording and monitoring the number of repetitions of LDPC decoding according to a preferred embodiment of the present invention.
도 2에 도시된 바와 같이, 본 발명의 바람직한 실시예에 따른 웨어-레벨링 시스템(100)은 데이터 읽기 동작마다 복호 반복 횟수 정보를 획득하고, 이를 블록 단위로 저장하는 복호 반복 횟수 기록부(110) 및 실제로 수행된 쓰기 및 지우기 횟수와 복호 반복 횟수를 바탕으로 마모도를 구하는 마모도 모니터링부(120)를 포함하여 이루어진다.2, the wear-
플래시 메모리를 구성하는 작은 단위는 셀이며 각 셀의 마모도 즉, 최대 쓰기 및 지우기 동작 횟수는 다를 수 있다. 따라서 이 셀들이 모여 구성되는 페이지별로, 그리고 페이지가 모여 구성되는 블록별로 그 마모 진행의 정도가 다를 수 있다. 보통 웨어-레벨링은 플래시 메모리의 블록 단위로 수행되므로 이에 따라 마모도 감시를 위한 복호 반복 횟수도 블록 단위로 기록될 필요가 있다. 그에 따라, 복호 반복 횟수 기록부(110)는 오류정정코드 확인 구성(도 1)으로부터 데이터 읽기 동작마다의 복호 반복 횟수 정보를 획득하고, 이를 도 2에서와 같은 블록 단위의 복호 반복 횟수 테이블에 저장한다.The small unit constituting the flash memory is a cell, and the wear of each cell, that is, the maximum number of write and erase operations may be different. Therefore, the degree of wear of the cells may vary depending on the pages constituting the cells and the blocks constituted by the pages. Since wear-leveling is usually performed in block units of flash memory, it is necessary to record the number of decoding iterations for wear monitoring in block units. Accordingly, the decoding repeat
복호 반복 횟수에 대한 정보는 플래시 메모리의 읽기 동작에서 얻을 수 있으며, 보통 읽기 동작은 블록이 아닌 페이지 단위로 수행된다. 따라서, 복호 반복 횟수 기록부(110)는 페이지 단위로 얻은 복호 반복 횟수를 블록 단위로 일반화한다. 블록 단위의 복호 반복 횟수 테이블에 기록되는 정보는 블록별 복호 반복 횟수(cnt i )이고 cnt i 를 구하는 식은 다음과 같다:The information on the number of decoding iterations can be obtained in the read operation of the flash memory, and the normal read operation is performed on a page basis instead of the block. Therefore, the decoding repeat
복호 반복 횟수 기록부(110)는 먼저 최초(해당 블록에서 가장 처음의 읽기 동작 전)의 블록 단위 반복 횟수(cnt i ) 값을 기본 값(예를 들어, 1 또는 0)으로 설정한다. 이후 페이지 단위 읽기 동작으로부터 얻은 복호 반복 횟수(cnt ipage )와 이전까지 가지고 있었던 cnt i 를 바탕으로 수학식 1과 같이 cnt i 를 갱신한다. 여기서, a는 해당 블록의 평균 복호 반복 횟수와 해당 페이지의 복호 반복 횟수 가중치를 조절하는 역할을 한다. 예를 들어, 해당 블록에서 쓰기 및 지우기 그리고 읽기 동작이 빈번하게 발생된다면 cnt i 에 의존할 수 있고, 그렇지 않다면 cnt ipage 의 가중치가 높아지게 할 수 있다. 또한, 플래시 메모리에서 블록은 다수의 페이지 단위로 구성되어 있으며 읽기 동작은 쓰기 및 지우기 동작보다 일반적으로 빈번하게 일어난다. 따라서, 페이지의 읽기 동작이 발생할 때마다 cnt i 값을 갱신하는 것은 성능적인 오버헤드를 발생시킬 수 있기 때문에, a 값을 통해 cnt i 값을 갱신하는 주기를 조절하거나 cnt i 값을 갱신하는 특정 페이지를 설정할 필요가 있다.The decoding repeat
그 다음 마모도 모니터링부(120)가 실제로 수행된 쓰기 및 지우기 횟수와 수학식 1에서 계산된 복호 반복 횟수를 바탕으로 블록별 마모도를 구하고, 이를 웨어-레벨링 구성(도 1)에 제공하여 블록 또는 페이지별 쓰기 및 지우기 동작 횟수를 제어하는 유연한 웨어-레벨링을 수행하게 한다. 각 블록의 마모도 수치(age)는 다음 수학식 2와 같이 표현된다.Next, the wear
블록별 마모도를 구하기 위한 상기 수학식 2에서 cnt pe 는 해당 블록의 현재까지 실제로 수행된 쓰기 및 지우기 횟수, cnt i 는 해당 블록의 평균 복호 반복 횟수, 그리고 cnt imax 는 해당 SSD에 적용된 LDPC 코드에서 설정된 최대 복호 반복 횟수를 나타낸다. 여기서, b는 마모도를 구하는 실제 쓰기 및 지우기 횟수와 복호 반복 횟수 사이에서 가중치를 조절하기 위한 변수이다. 예를 들어, b 값이 1일 경우 마모도는 실제 쓰기 및 지우기 횟수에만 의존하게 되고 0일 경우에는 복호 반복 횟수에만 의존하게 된다. 따라서, b 값의 설정은 해당 SSD와 플래시 메모리의 특성 그리고 사용된 기간이나 주변 환경에 따라서 조절될 수 있다. Cnt pe in Equation (2) for obtaining the wear rate per block Cnt i represents the average number of decoding repetitions of the block, and cnt imax represents the maximum number of decoding iterations set in the LDPC code applied to the corresponding SSD. Here, b is a variable for adjusting the weight between the number of actual write and erase times to obtain the wear rate and the number of times of decoding. For example, if the value of b is 1, the degree of wear depends only on the number of actual write and erase operations. If the value of b is 0, it depends on the number of times of decoding. Therefore, the setting of the b value can be adjusted according to the characteristics of the SSD and the flash memory, and the period of use or the surrounding environment.
cnt imax 에 대해 보다 상세하게 살펴보면, cnt imax 는 LDPC 코드 복호 과정에서 상기 발명의 배경이 되는 기술 섹션에서 살펴본 일련의 과정을 반복할 수 있는 최대 횟수를 나타낸다. LDPC 코드에서는 오류율이 높거나 오류의 패턴에 따라서 복호 과정을 무한히 반복하여도 오류를 정정할 수 없는 상태가 나타날 수 있는데 이를 막기 위해서 이러한 최대 복호 반복 횟수가 존재한다. 즉, 복호의 반복이 최대 복호 반복 횟수에 도달하였을 경우에는 복호 실패를 선언하고 복호를 중단하는 것이다.Looking in more detail for the cnt imax, imax cnt represents the maximum number of times to repeat the series of processes discussed in the technical section of the background of the invention in the LDPC code decoding process. In the LDPC code, even if the error rate is high or the decoding process is repeated infinitely according to the pattern of the error, the error can not be corrected. In order to prevent this, there is a maximum number of iterations. That is, when the repetition of decoding reaches the maximum number of decoding iterations, decoding failure is declared and decoding is stopped.
결론적으로 블록별 마모도를 나타내는 age는 블록 간의 마모도를 비교하기 위한 값이며 쓰기 및 지우기 동작이 어느 블록에 수행되어야 할지를 결정하는 데 사용되는 것이며, 블록 자체의 수명(최대 쓰기 및 지우기 횟수)을 판단하는 데 쓰이진 않는다.As a result, the age indicating the wear rate per block is a value for comparing the inter-block wear, and is used to determine which block the write and erase operations should be performed on, and determines the life (maximum write and erase count) It is not used.
그러면, 여기서 상기와 같이 구성된 시스템을 이용한 본 발명의 바람직한 실시예에 따른 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 방법에 대해 설명하기로 한다. 이를 상세히 설명하면 다음과 같다.Hereinafter, a method for improving the wear-leveling reliability by recording and monitoring the number of repetitions of LDPC decoding according to a preferred embodiment of the present invention using the system configured as described above will be described. This will be described in detail as follows.
도 3은 본 발명의 바람직한 실시예에 따른 LDPC 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 방법의 전체 흐름을 개략적으로 나타낸 순서도이다.FIG. 3 is a flowchart schematically illustrating the overall flow of a method for improving wear-leveling reliability by recording and monitoring the number of repetitions of LDPC decoding according to a preferred embodiment of the present invention.
도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 웨어-레벨링 방법에서 본 발명의 웨어-레벨링 신뢰도 향상 시스템(100)은 먼저 데이터 읽기 동작마다 복호 반복 횟수 정보를 획득하고 이를 블록 단위로 저장하는 복호 반복 횟수 기록 단계를 수행한다(단계 S310). 해당 단계에서 복호 반복 횟수를 갱신하는 동작에 대한 상세한 설명은 복호 반복 횟수 기록부(110)에 대하여 위에서 설명된 바와 같다.Referring to FIG. 3, in the wear-leveling method according to the preferred embodiment of the present invention, the wear-leveling
다음으로, 웨어-레벨링 신뢰도 향상 시스템(100)은 실제로 수행된 쓰기 및 지우기 횟수와 단계 S310에서 구해진 복호 반복 횟수를 바탕으로 마모도를 구하는 마모도 모니터링 단계를 수행한다(단계 S320). 해당 단계에서 마모도를 구하는 동작에 대한 상세한 설명은 마모도 모니터링부(120)에 대하여 위에서 설명된 바와 같다.Next, the wear-leveling
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the present invention is not limited to the disclosed exemplary embodiments, but various modifications may be made without departing from the spirit of the invention.
100 : 웨어-레벨링 신뢰도 향상 시스템
110 : 복호 반복 횟수 기록부
120 : 마모도 모니터링부100: Software - Leveling Reliability Enhancement System
110: Number of times of repetition of decoding
120: abrasion monitoring unit
Claims (6)
데이터 읽기 동작마다 복호 반복 횟수 정보를 획득하고 이를 블록 단위로 저장하는 복호 반복 횟수 기록부 및
실제로 수행된 쓰기 및 지우기 횟수와 상기 복호 반복 횟수를 바탕으로 마모도를 구하는 마모도 모니터링부를 포함하는, 웨어-레벨링 신뢰도 향상 시스템.A flash memory-based storage device operating in units of blocks or pages and verifying an error by using an LDPC code,
A decoding repeat number recording section for obtaining decoding repeat number information for each data read operation and storing the decoding repeat number information in units of blocks;
And a wear rate monitoring unit for calculating a wear rate based on the number of times of actually performing the writing and erasing and the number of times of decoding.
상기 복호 반복 횟수 기록부는 하기 식을 통해 페이지 단위의 복호 반복 횟수를 블록 단위의 복호 반복 횟수로 일반화하는, 웨어-레벨링 신뢰도 향상 시스템:
상기 식에서, cnt i 는 블록 단위 복호 반복 횟수이고, cnt ipage 는 페이지 단위 복호 반복 횟수이며, a는 해당 블록의 평균 복호 반복 횟수와 해당 페이지의 복호 반복 횟수 가중치를 조절하는 변수이다.The method according to claim 1,
Wherein the decoding repetition number recording unit generalizes the number of decoding repetitions per page unit to the number of decoding repetitions per block through the following equation:
In the above equation, cnt i is the number of repetitions of block unit decoding, cnt ipage is the number of repetitions of page unit decoding, and a is a variable for adjusting the average decoding repetition count of the block and the decoding repetition count weight of the page.
상기 마모도 모니터링부는 하기 식을 통해 마모도를 구하는, 웨어-레벨링 신뢰도 향상 시스템:
상기 식에서, age는 마모도이고, cnt pe 는 해당 블록의 현재까지 실제로 수행된 쓰기 및 지우기 횟수이고, cnt i 는 해당 블록의 평균 복호 반복 횟수이고, cnt imax 는 해당 저장 장치에 적용된 LDPC 코드에서 설정된 최대 복호 반복 횟수이며, b는 마모도를 구하는 실제 쓰기 및 지우기 횟수와 복호 반복 횟수 사이에서 가중치를 조절하기 위한 변수이다.The method of claim 2,
The wear-level monitoring unit obtains wear-level through the following equation: Wear-leveling reliability improvement system:
In the above equation, age is the degree of wear and cnt pe is Is the current practice to perform the write and erase count up to the corresponding block, cnt i is the average decoding iteration count for the block, cnt imax is the maximum decoding iteration count set in the applied LDPC code in the storage device, b is the actual obtaining the degree of wear Is a variable for adjusting the weight between the number of times of writing and erasing and the number of times of decoding.
데이터 읽기 동작마다 복호 반복 횟수 정보를 획득하고 이를 블록 단위로 저장하는 복호 반복 횟수 기록 단계 및
실제로 수행된 쓰기 및 지우기 횟수와 상기 복호 반복 횟수를 바탕으로 마모도를 구하는 마모도 모니터링 단계를 포함하는, 웨어-레벨링 신뢰도 향상 방법.A flash memory-based storage device operating in units of blocks or pages and verifying an error by using an LDPC code,
A decoding repeat number recording step of obtaining decoding repeat number information for each data read operation and storing the decoding repeat number information in units of blocks;
And a wear degree monitoring step of calculating a wear degree based on the number of actual write and erase operations and the number of repetition of decoding.
상기 복호 반복 횟수 기록 단계는 하기 식을 통해 페이지 단위의 복호 반복 횟수를 블록 단위의 복호 반복 횟수로 일반화하는, 웨어-레벨링 신뢰도 향상 방법:
상기 식에서, cnt i 는 블록 단위 복호 반복 횟수이고, cnt ipage 는 페이지 단위 복호 반복 횟수이며, a는 해당 블록의 평균 복호 반복 횟수와 해당 페이지의 복호 반복 횟수 가중치를 조절하는 변수이다.The method of claim 4,
Wherein the step of recording the number of times of decoding repeats is a step of generalizing the number of decoding iterations in units of pages to the number of iterations of decoding in units of blocks through the following equation:
In the above equation, cnt i is the number of repetitions of block unit decoding, cnt ipage is the number of repetitions of page unit decoding, and a is a variable for adjusting the average decoding repetition count of the block and the decoding repetition count weight of the page.
상기 마모도 모니터링 단계는 하기 식을 통해 마모도를 구하는, 웨어-레벨링 신뢰도 향상 방법:
상기 식에서, age는 마모도이고, cnt pe 는 해당 블록의 현재까지 실제로 수행된 쓰기 및 지우기 횟수이고, cnt i 는 해당 블록의 평균 복호 반복 횟수이고, cnt imax 는 해당 저장 장치에 적용된 LDPC 코드에서 설정된 최대 복호 반복 횟수이며, b는 마모도를 구하는 실제 쓰기 및 지우기 횟수와 복호 반복 횟수 사이에서 가중치를 조절하기 위한 변수이다.The method of claim 5,
Wherein the wear rate monitoring step calculates a wear level through the following equation: Wear-leveling reliability improvement method:
In the above equation, age is the degree of wear and cnt pe is Is the current practice to perform the write and erase count up to the corresponding block, cnt i is the average decoding iteration count for the block, cnt imax is the maximum decoding iteration count set in the applied LDPC code in the storage device, b is the actual obtaining the degree of wear Is a variable for adjusting the weight between the number of times of writing and erasing and the number of times of decoding.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170014952A KR101893064B1 (en) | 2017-02-02 | 2017-02-02 | System and method for improving the reliability of wear-leveling by recording and monitoring the number of ldpc decoding interations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170014952A KR101893064B1 (en) | 2017-02-02 | 2017-02-02 | System and method for improving the reliability of wear-leveling by recording and monitoring the number of ldpc decoding interations |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180090414A true KR20180090414A (en) | 2018-08-13 |
KR101893064B1 KR101893064B1 (en) | 2018-08-30 |
Family
ID=63250690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170014952A KR101893064B1 (en) | 2017-02-02 | 2017-02-02 | System and method for improving the reliability of wear-leveling by recording and monitoring the number of ldpc decoding interations |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101893064B1 (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100974954B1 (en) * | 2008-06-26 | 2010-08-10 | 에스디씨마이크로 주식회사 | Read-time Wear-Leveling Method in Storage System using Flash Memory Device |
KR20110016320A (en) * | 2009-08-11 | 2011-02-17 | 주식회사 유니듀 | A method for managing a flash memory with blocks divided into a plurality of groups |
KR20110139178A (en) * | 2011-11-16 | 2011-12-28 | 한양대학교 산학협력단 | Method for setting number of iterative decoding, apparatus and method for ldpc decoding |
JP2013546039A (en) * | 2010-09-29 | 2013-12-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Decoding in solid state memory devices |
KR101466555B1 (en) | 2010-03-12 | 2014-12-02 | 엘에스아이 코포레이션 | Ldpc erasure decoding for flash memories |
KR101484066B1 (en) | 2013-11-29 | 2015-01-19 | 한국과학기술원 | Ldpc code decoding method |
KR20150024489A (en) | 2013-08-26 | 2015-03-09 | 삼성전자주식회사 | Method for performing LDPC decoding in memory system and LDPC decoder using method thereof |
-
2017
- 2017-02-02 KR KR1020170014952A patent/KR101893064B1/en active IP Right Grant
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100974954B1 (en) * | 2008-06-26 | 2010-08-10 | 에스디씨마이크로 주식회사 | Read-time Wear-Leveling Method in Storage System using Flash Memory Device |
KR20110016320A (en) * | 2009-08-11 | 2011-02-17 | 주식회사 유니듀 | A method for managing a flash memory with blocks divided into a plurality of groups |
KR101466555B1 (en) | 2010-03-12 | 2014-12-02 | 엘에스아이 코포레이션 | Ldpc erasure decoding for flash memories |
JP2013546039A (en) * | 2010-09-29 | 2013-12-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Decoding in solid state memory devices |
US9176814B2 (en) * | 2010-09-29 | 2015-11-03 | International Business Machines Corporation | Decoding in solid state memory devices |
KR20110139178A (en) * | 2011-11-16 | 2011-12-28 | 한양대학교 산학협력단 | Method for setting number of iterative decoding, apparatus and method for ldpc decoding |
KR20150024489A (en) | 2013-08-26 | 2015-03-09 | 삼성전자주식회사 | Method for performing LDPC decoding in memory system and LDPC decoder using method thereof |
KR101484066B1 (en) | 2013-11-29 | 2015-01-19 | 한국과학기술원 | Ldpc code decoding method |
Also Published As
Publication number | Publication date |
---|---|
KR101893064B1 (en) | 2018-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9176814B2 (en) | Decoding in solid state memory devices | |
US9639419B2 (en) | Read voltage level estimating method, memory storage device and memory control circuit unit | |
US20190252035A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US9583217B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US9685242B2 (en) | Memory system | |
US9529666B2 (en) | Decoding method, memory storage device and memory controlling circuit unit | |
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
TWI541820B (en) | Decoding method, memory controlling circuit unit and memory storage device | |
JP2012137994A (en) | Memory system and controlling method thereof | |
US10193569B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US10009045B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
US10447314B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
JP2009271852A (en) | Semiconductor storage device | |
TW201337932A (en) | Method, memory controller and system for reading data stored in flash memory | |
CN105304143B (en) | Coding/decoding method, memorizer control circuit unit and memory storage apparatus | |
US20180046542A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
JP7177338B2 (en) | MEMORY CONTROLLER DEVICE, MEMORY DEVICE HAVING MEMORY CONTROLLER DEVICE, AND MEMORY CONTROL METHOD | |
KR101871682B1 (en) | Method for improving the reliability of wear-leveling by recording and wear-level monitoring the number of ldpc decoding interations in pages | |
KR101893064B1 (en) | System and method for improving the reliability of wear-leveling by recording and monitoring the number of ldpc decoding interations | |
TWI514404B (en) | Method, memory controller and system for reading data stored in flash memory | |
US11373713B1 (en) | Memory control method, memory storage device, and memory control circuit unit | |
US11146295B1 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
TWI571885B (en) | Method, memory controller and system for reading data stored in flash memory | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |