KR101530859B1 - 오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치 - Google Patents

오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치 Download PDF

Info

Publication number
KR101530859B1
KR101530859B1 KR1020140037921A KR20140037921A KR101530859B1 KR 101530859 B1 KR101530859 B1 KR 101530859B1 KR 1020140037921 A KR1020140037921 A KR 1020140037921A KR 20140037921 A KR20140037921 A KR 20140037921A KR 101530859 B1 KR101530859 B1 KR 101530859B1
Authority
KR
South Korea
Prior art keywords
codeword
storage space
bit
defect
specific information
Prior art date
Application number
KR1020140037921A
Other languages
English (en)
Inventor
신동준
김성래
임진수
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020140037921A priority Critical patent/KR101530859B1/ko
Application granted granted Critical
Publication of KR101530859B1 publication Critical patent/KR101530859B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10305Improvement or modification of read or write signals signal quality assessment
    • G11B20/10361Improvement or modification of read or write signals signal quality assessment digital demodulation process
    • G11B20/1037Improvement or modification of read or write signals signal quality assessment digital demodulation process based on hard decisions, e.g. by evaluating bit error rates before or after ECC decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

오류 정정 부호의 부호화, 복호화 장치 그를 이용한 저장 장치가 제공된다. 본 발명의 오류 정정 부호의 복호화 장치는, 부호어가 저장될 저장 공간의 결함 블록 개수와 위치에 근거하여, 부호화할 정보 비트로부터 상기 결함 블록 개수만큼 특정 정보 비트를 선택하고, 상기 선택된 특정 정보 비트를 미리 알고 있는 비트로 대체하여 제 1 부호어를 생성하는 부호어 생성부 및 상기 생성된 제 1 부호어에서 상기 대체된 미리 알고 있는 비트를 절단한(shortening) 나머지 부호어인 제 2 부호어를 상기 저장 공간에 저장하는 부호어 기록부를 포함하되, 상기 부호어 기록부는 상기 저장 공간에서 상기 결함 블록을 제외한 나머지 공간에 상기 제 2 부호어를 저장하는 것을 특징으로 한다.

Description

오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치{APPARATUS FOR ENCODING AND DECODING ERROR CORRECTION CODE AND STORAGE DEVICE USING THE SAME}
본 발명은 오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치에 관한 것으로, 더욱 상세하게는 저장 장치의 결함 블록(defect block)을 이용한 오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치에 관한 것이다.
HDD, SD 카드, Blue-ray, Flash memory, SSD 등과 같은 데이터 저장 장치는 음성 통화나 실시간 스트리밍 서비스와는 다르게 저장된 데이터에 높은 신뢰도(Bit error rate(BER)= 10^{-15}이하)를 보장할 수 있어야 하며, 최근에는 각종 저장 장치의 높은 신뢰도를 보장하기 위해서 고성능의 오류 정정 부호나 다양한 신호 처리 기술이 사용되고 있다.
한편, 저장 장치는 블록(block) 단위로 저장 공간을 활용하는데, 결함(defect)이 있는 블록(이하, '결함 블록'이라 칭함)이 발생하면 해당 결함 블록은 데이터 저장에 사용되지 않을 뿐만 아니라 어떤 쓰기/읽기 동작에서도 이용되지 않는다.
이러한 결함 블록의 관리는 저장 장치의 종류와 제작사에 따라 다르며, 경우에 따라서는 저장 장치의 파일 시스템 처리 단위인 블록의 크기에 맞추어 결함 블록을 포함한 특정 블록을 모두 '결함 블록'으로 표시 및 처리하고, 해당 결함 블록은 사용하지 않는 방법을 택하기도 한다.
그러나 이러한 방법은 결함 블록에 데이터가 저장되어 오류가 발생할 수 있는 가능성을 차단하는 효과는 있지만, 쓰기/읽기 연산의 지속적인 사용에 따라 결함 블록이 발생하는 빈도가 많아지기 때문에 저장 장치의 효율성을 크게 떨어뜨리는 문제가 있다.
뿐만 아니라, 사용 가능한 저장 공간까지 데이터 저장 기능을 차단시킴으로써 저장 공간 사용의 비효율성을 초래한다.
결국, 현재까지 저장 장치의 결함 블록은 데이터 저장에 아무런 도움이 되지 못한다고 판단하여 데이터 저장과 관련된 모든 연산 및 동작에서 배제시켜 왔으며, 저장 장치의 높은 신뢰도를 보장하기 위한 오류 정정 부호에 결함 블록의 위치 정보와 값을 사용하여 오류 정정 능력의 성능을 유지하거나 향상 시키려는 노력은 아직까지 시도되고 있지 않은 실정이다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로, 데이터 저장에 아무런 도움이 되지 못한다고 판단되어 왔던 저장 장치의 결함 블록에 대한 정보를 이용하여, 오류 정정 능력의 성능을 향상시킬 수 있는 방안을 제공하고자 한다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 오류 정정 부호의 부호화 장치는, 부호어가 저장될 저장 공간의 결함 블록 개수와 위치에 근거하여, 부호화할 정보 비트로부터 상기 결함 블록 개수만큼 특정 정보 비트를 선택하고, 상기 선택된 특정 정보 비트를 미리 알고 있는 비트로 대체하여 제 1 부호어를 생성하는 부호어 생성부 및 상기 생성된 제 1 부호어에서 상기 대체된 미리 알고 있는 비트를 절단한(shortening) 나머지 부호어인 제 2 부호어를 상기 저장 공간에 저장하는 부호어 기록부를 포함하되, 상기 부호어 기록부는 상기 저장 공간에서 상기 결함 블록을 제외한 나머지 공간에 상기 제 2 부호어를 저장하는 것을 특징으로 한다.
본 발명의 일 측면에서, 상기 부호어 생성부는 상기 결함 블록의 개수만큼 임의로 상기 특정 정보 비트를 선택하거나, 상기 부호화할 정보 비트의 각 위치에 상기 결함 블록의 개수만큼 절단 기법을 수행하면서 상기 절단 기법의 수행 후 최소 거리(minimum distance)인 ds가 최대가 되는 위치를 가지는 상기 특정 정보 비트를 선택하거나, 비트 선택 알고리즘을 이용하여 상기 결함 블록의 개수만큼 상기 특정 정보 비트를 선택하는 것을 특징으로 한다.
또한, 본 발명의 일 측면에서, 상기 미리 알고 있는 비트는 0 또는 1 인 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 오류 정정 부호의 복호화 장치는, 부호어가 저장된 저장 공간의 결함 블록 개수와 위치에 근거하여, 상기 저장 공간에서 상기 결함 블록을 제외한 나머지 공간에 저장된 부호어를 독출하는 부호어 독출부 및 상기 부호어 생성 시 미리 알고 있는 비트로 대체된 특정 정보 비트의 위치와 상기 미리 알고 있는 비트에 대응하는 값을 이용하여 상기 독출된 부호어에 대한 복호화를 수행하는 부호어 복호화부를 포함하되, 상기 특정 정보 비트의 개수는 상기 결함 블록의 개수만큼 선택되는 것을 특징으로 한다.
본 발명의 일 측면에서, 상기 부호어 복호화부는, 경 판정 복호화(Hard Decision Decoding) 수행 시 상기 미리 알고 있는 비트와 동일한 값을 사용하여 상기 복호화를 수행하는 것을 특징으로 한다.
또한, 본 발명의 일 측면에서, 상기 부호어 복호화부는 연 판정 복호화(Soft Decision Decoding)를 수행 시, 상기 미리 알고 있는 비트에 대응하는 대수 근사율(Log Likelihood Ratio: LLR) 값을 이용하여 상기 복호화를 수행하는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 저장 장치는, 부호어가 저장되는 저장 공간의 결함 블록 개수와 위치에 대한 정보를 제공하는 결함 블록 관리부 및 상기 결함 블록 개수와 위치에 근거하여 부호화할 정보 비트로부터 상기 결함 블록 개수만큼 특정 정보 비트를 선택하고, 상기 선택된 특정 정보 비트를 미리 알고 있는 비트로 대체하여 제 1 부호어를 생성하며, 상기 생성된 제 1 부호어에서 상기 대체된 미리 알고 있는 비트를 절단한 나머지 부호어인 제 2 부호어를 상기 저장 공간에서 상기 결함 블록을 제외한 나머지 공간에 저장하거나, 상기 결함 블록 개수와 위치에 근거하여 상기 제 2 부호어를 상기 저장 공간으로부터 독출하고, 상기 선택된 특정 정보 비트의 위치와 상기 미리 알고 있는 비트에 대응하는 값을 이용하여 상기 독출된 제 2 부호어에 대한 복호화를 수행하는 오류 정정 부호 제어부를 포함하는 것을 특징으로 한다.
본 발명의 일 측면에서, 상기 결함 블록 관리부는 상기 저장 공간의 블록 번호 및 각 블록의 결함 부분에 대한 정보를 룩-업 테이블(Look-Up Table)을 이용하여 관리하는 것을 특징으로 한다.
본 발명의 일 실시예에 따르면, 종래의 저장 장치에서 결함 블록을 운용하는 방법에 비해서 저장 공간의 효율성을 크게 높일 수 있다.
또한, 시간에 따라 결함 블록의 위치가 변경되는 여러 형태의 결함 블록에도 용이하게 적용할 수 있다.
또한, 최소 거리 복호 원리를 사용하는 대수 부호의 경우 오류 정정 능력의 손실 없이 변형된 오류 정정 부호를 사용할 수 있다.
또한, Turbo 부호, LDPC 부호, Polar 부호의 경우 오류 정정 능력을 향상시켜 성능 개선을 얻을 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 저장 장치의 결함 블록을 이용한 오류 정정 부호의 부호화 및 복호화 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 ECC 제어부의 구성을 도시한 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 ECC 제어부의 구성을 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 ECC 제어부의 쓰기 연산 과정을 도시한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 ECC 제어부의 읽기 연산 과정을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 저장소의 저장 공간을 도시한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 저장소의 저장 공간을 도시한 도면이다.
이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다.
또한 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 구비할 수 있다는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.
참고로, 본 발명은 저장 장치에만 국한되는 것이 아니라 PC, 스마트 폰, 태블릿 PC 등 저장 장치를 이용하는 이동 통신 관련 장치에서도 사용할 수 있으며, 이하, 저장 장치에 본 발명의 오류 정정 부호의 부호화, 복호화 방법 및 장치가 적용되는 경우를 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 저장 장치의 결함 블록을 이용한 오류 정정 부호의 부호화 및 복호화 시스템의 구성을 도시한 도면이다.
본 발명의 일 실시예에 따른 저장 장치의 결함 블록을 이용한 오류 정정 부호의 부호화 및 복호화 시스템(100)은 오류 정정 부호(Error Correcting Code;ECC) 제어부(이하, 'ECC 제어부'라 칭함)(110), 결함 블록 관리부(120) 및 저장소(130)를 포함할 수 있다.
각 구성 요소를 설명하면, ECC 제어부(110)는 부호화 및 복호화를 수행할 수 있으며, 저장소(130)의 저장 공간에 부호어를 저장하는 쓰기(Write) 연산에서 부호어가 저장될 저장소(130)의 저장 공간을 확인 및 확보할 수 있다
여기서 '저장 공간에 대한 확인'은 결함 블록 관리부(120)로부터 결함 블록의 개수 및 위치 중 하나 이상을 포함하는 결함 블록에 대한 정보를 제공받아, 저장 공간의 결함 블록 존재 여부를 확인하는 것일 수 있으며, '결함 블록'은 결함 부분을 포함한 저장 공간을 의미할 수 있다.
ECC 제어부(110)는 저장 공간에 결함 블록이 존재하지 않은 경우, 오류 정정 부호의 생성 방법에 의하여 부호어를 생성한 후 저장 공간에 저장할 수 있다.
만일, 저장 공간에 결함 블록이 존재하는 경우, ECC 제어부(110)는 부호화할 정보 비트 중 결함 블록의 개수 s만큼 또는 결함 블록의 개수에서 취한 적절한 개수만큼 특정 정보 비트를 선택하고, 선택된 특정 정보 비트를 미리 알고 있는 비트인 0 또는 1로 대체한 후 부호어를 생성할 수 있다.
이후, ECC 제어부(110)는 생성된 n 비트의 부호어 중 미리 알고 있는 비트인 0 또는 1로 대체된 부분을 제외한 나머지 부분(n-s)을 저장 공간에 저장하되, 저장 공간에서 결함 블록을 제외한 나머지 공간에 저장할 수 있다.
참고로, 생성된 n 비트의 부호어 중 미리 알고 있는 비트인 0 또는 1로 대체된 부분을 제외한 나머지 부분(n-s)을 저장 공간에 저장하는 것을 부호 절단(shortening) 방법이라고 한다.
또한, ECC 제어부(110)는 저장 공간에 저장된 부호어를 독출하여 복호화하는 읽기(Read) 연산에서, 독출 대상인 부호어가 저장된 저장소(130)의 저장 공간을 확인 및 확보할 수 있다.
참고로, 저장소(130) 내에 부호어가 저장될(미래 시점) 저장 공간과, 해당 부호어가 저장된(과거 시점) 저장 공간은 서로 동일한 저장 공간이므로 이들을 '저장 공간'으로 통칭하도록 한다.
여기서 '저장 공간에 대한 확인'은 결함 블록 관리부(120)로부터 저장 공간의 결함 블록에 대한 정보를 제공받아, 부호어가 저장된 저장 공간의 결함 블록 존재 여부를 확인하는 것일 수 있다.
ECC 제어부(110)는 저장 공간에 결함 블록이 존재하지 않은 경우, 부호어를 저장 공간으로부터 독출하여 오류 정정 부호의 복호화를 수행할 수 있다.
만일, 부호어가 저장된 저장 공간에 결함 블록이 존재하는 경우, ECC 제어부(110)는 해당 저장 공간에서 결함 블록을 제외한 나머지 공간에 저장되어 있는 부호어를 독출할 수 있다.
이때, ECC 제어부(110)는 독출된 부호어가 쓰기 연산 과정에서 해당 저장 공간에 존재하는 결함 블록의 개수만큼 특정 정보 비트가 선택되고, 선택된 특정 정보 비트가 미리 알고 있는 비트인 0 또는 1로 대체되어 생성된 것을 미리 알고 있는 상태이다.
따라서, ECC 제어부(110)는 쓰기 연산 시 부호 절단에 사용되었던 0 또는 1의 정보 비트 위치에 부호어의 복호화를 위해서 적절한 값을 사용할 수 있다.
예를 들어 경 판정 복호화(hard decision decoding)의 경우, 상기 0 또는 1로 대체된 특정 정보 비트 위치에 해당 값과 동일한 값을 사용하여 복호화를 수행할 수 있다.
또한, 연 판정 복호화(soft decision decoding)의 경우, 상기 0 또는 1로 대체된 특정 정보 비트 위치에 해당 값에 대응하는 매우 큰 신뢰도 값을 사용하여 복호화를 수행할 수 있다.
즉, LLR(log-likelihood ratio) 또는 수신 값(received value)을 사용하는 복호화의 경우, 특정 정보 비트를 대체한 미리 알고 있는 비트 값이 0일 때에는 매우 큰 양의 실수 값을 사용하여 부호어에 대한 복호화를 수행하고, 특정 정보 비트를 대체한 미리 알고 있는 비트 값이 1일 때에는 매우 작은 음의 실수 값을 사용하여 부호어에 대한 복호화를 수행할 수 있다.
정리하면, 종래의 저장 장치에 존재하는 결함 블록은 데이터 저장에 아무런 도움이 되지 못한다고 판단하여 데이터 저장과 관련된 모든 연산 및 동작에서 배제시켜 왔으나, 본 발명은 전술한 바와 같이 결함 블록의 개수와 위치 정보를 이용하여 오류 정정 부호의 부호어 생성 및 복호화에 활용함으로써 저장 공간의 효율성을 높일 수 있고, 오류 정정 부호의 성능을 향상시켜 높은 신뢰도의 저장 장치를 만드는데 기여할 수 있다.
한편, 결함 블록 관리부(120)는 저장소(130)의 저장 공간에서 발생하는 결함 블록의 개수와 위치 정보를 파악하고 관리할 수 있으며, ECC 제어부(110)에서 부호어 생성 및 쓰기 연산을 수행 시, 부호어가 저장될 저장 공간에 존재하는 결함 블록의 개수와 위치 정보를 ECC 제어부(110)로 제공할 수 있다.
또한, 결함 블록 관리부(120)는 ECC 제어부(110)에서 부호어의 읽기 연산 및 부호어 복호화 수행 시, 부호어가 저장된 저장 공간에 존재하는 결함 블록의 개수와 위치 정보를 ECC 제어부(110)로 제공할 수 있다.
이를 위해, 결함 블록 관리부(120)는 저장 공간의 결함을 룩-업 테이블(Look-Up Table)로 관리할 수 있다.
즉, 저장 공간의 블록 번호와 해당 블록의 결함 부분을 '(word line 번호, bit line 번호)'와 같은 '(m, n)' 형태로 구성하여 룩-업 테이블로 관리할 수 있다.
따라서, 결함 블록 관리부(120)는 쓰기/읽기 연산의 지속적인 사용에 따라 저장소(130)에 결함 블록이 발생하고 그 위치가 변경되는 경우, 이를 체크하여 상기 룩-업 테이블을 갱신할 수 있다.
한편, 저장소(130)는 블록 단위의 저장 공간을 포함할 수 있으며, ECC 제어부(110)에서 생성된 부호어를 저장할 수 있다.
도 2는 본 발명의 일 실시예에 따른 ECC 제어부의 구성을 도시한 블록도이다.
본 발명의 일 실시예에 따른 ECC 제어부(110)는 부호어를 생성하고 생성된 부호어를 저장소(130)의 저장 공간에 저장하기 위한 구성이다.
이를 위해 ECC 제어부(110)는 결함 블록 정보 수신부(111a), 부호어 생성부(112a), 부호어 기록부(113a)를 포함할 수 있다.
각 구성 요소를 설명하면, 결함 블록 정보 수신부(111a)는 결함 블록 관리부(120)로부터 부호어가 저장될 저장 공간에 존재하는 결함 블록의 개수와 위치 정보를 제공받을 수 있다.
한편, 부호어 생성부(112a)는 결함 블록 정보 수신부(111a)가 제공 받은 결함 블록의 개수와 위치 정보에 근거하여 결함 블록의 개수를 파악하고, 결함 블록의 개수만큼 특정 정보 비트를 선택할 수 있다.
이때 특정 정보 비트를 선택하는 일 예로서, 부호어 생성부(112a)는 결함 블록의 개수만큼 정보 비트에서 임의로 선택하거나(Random Selection 방법), 다양한 위치에 절단 기법을 수행하면서 절단 기법 수행 후 최소 거리(minimum distance) ds가 최대가 되는 정보 비트 위치를 선택(ds 최대화 방법)할 수 있다.
이후 부호어 생성부(112a)는 상기 Random Selection 방법 또는 ds 최대화 방법을 사용하여 결함 블록의 개수만큼 특정 정보 비트를 선택하고, 선택된 정보 비트를 미리 알고 있는 비트인 0 또는 1로 대체하여 부호어를 생성할 수 있다.
정보 비트를 선택하는 다른 예로서, 부호어 생성부(112a)는 Turbo 부호, LDPC 부호, Polar 부호 등 오류 마루 방지를 위한 비트 선택 알고리즘을 이용할 수 있다.
설계된 오류 정정 부호의 정보 비트 위치 별 오류의 수가 모의 실험을 통해서 파악되면, 부호어 생성부(112a)는 정보 오류의 개수가 가장 큰 정보 비트 위치를 결함 블록의 개수만큼 선택하고, 선택된 정보 비트를 미리 알고 있는 비트인 0 또는 1로 대체하여 부호어를 생성할 수 있다.
한편, 부호어 기록부(113a)는 부호어 생성부(112a)에 의해 생성된 n 비트의 부호어에서 결함 블록의 개수 s 만큼 선택된 특정 정보 비트를 제외한 나머지, 즉, n-s개의 부호어 심볼을 저장 공간에 저장하는 부호 절단을 수행하되, 결함 블록 정보 수신부(111a)가 제공 받은 결함 블록의 개수와 위치 정보에 근거하여, 부호어가 저장될 저장 공간에서 결함 블록을 제외한 나머지 공간에 저장할 수 있다.
도 3은 본 발명의 일 실시예에 따른 ECC 제어부의 구성을 도시한 블록도이다.
본 발명의 다른 실시예에 따른 ECC 제어부(110)는 저장 공간에 저장된 부호어를 독출하여 복화화하기 위한 구성이다.
이를 위해 ECC 제어부(110)는 결함 블록 정보 수신부(111b), 부호어 독출부(112b), 부호어 복호화부(113b)를 포함할 수 있다.
각 구성 요소를 설명하면, 결함 블록 정보 수신부(111b)는 결함 블록 관리부(120)로부터 부호어가 저장된 저장 공간에 존재하는 결함 블록의 개수와 위치 정보를 제공받을 수 있다.
한편, 부호어 독출부(112b)는 부호어가 저장된 저장 공간으로부터 부호어를 독출하되, 결함 블록이 존재하지 않은 경우, 독출된 부호어에 대하여 오류 정정 부호의 복호화를 수행하고, 만일 결함 블록이 존재하는 경우, 저장 공간에서 결함 블록을 제외한 나머지 공간에 저장되어 있는 부호어를 독출할 수 있다.
한편, 부호어 복호화부(113b)는 부호어 독출부(112b)로부터 독출된 부호어를 복호화 시, 쓰기 연산에서 사용하였던 오류 정정 부호의 종류에 따라서 부호 절단에 사용된 특정 정보 비트의 위치에 적절한 값을 사용할 수 있다.
참고로, ECC 제어부(110)는 쓰기 연산 과정에서 결함 블록의 개수만큼 선택된 특정 정보 비트의 위치와, 선택된 특정 정보 비트를 미리 알고 있는 비트인 0 또는 1로 대체하여 부호어가 생성된 사실을 알고 있는 상태이다.
따라서, 부호어 복호화부(113b)는 부호어 복호화 시 경 판정 복호화(Hard Decision Decoding)를 수행하는 경우, 상기 특정 정보 비트를 대체한 미리 알고 있는 비트 값과 동일한 값(0 또는 1)을 사용하여 복호화를 수행할 수 있다.
만일, 부호어 복호화 시 연 판정 복호화(Soft Decision Decoding)를 수행하는 경우, 상기 특정 정보 비트를 대체한 미리 알고 있는 비트 값에 대응하는 매우 큰 신뢰도 값을 사용하여 복호화를 수행할 수 있다.
즉, LLR(log-likelihood ratio) 혹은 수신 값(received value)을 사용하는 연 판정 복호화에서, 특정 정보 비트를 대체한 값이 0인 경우 매우 큰 양의 실수 값(∞)을 사용하여 복호화를 수행하고, 특정 정보 비트를 대체한 값이 1인 경우, 매우 작은 음의 실수 값(-∞)을 사용하여 복호화를 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 ECC 제어부의 쓰기 연산 과정을 도시한 흐름도이다.
먼저, ECC 제어부(110)는 생성될 부호어를 저장할 저장 공간을 확인 및 확보한다(S401).
S401 후, ECC 제어부(110)는 결함 블록 관리부(120)로부터 수신된 해당 저장 공간의 결함 블록의 개수 및 위치에 대한 정보에 근거하여 저장 공간의 결함 블록 개수를 파악한다(S402).
S402 결과, 저장 공간 내에 결함 블록이 존재하지 않으면, ECC 제어부(110)는 오류 정정 부호의 부호어 생성 방법에 의하여 부호어를 생성한다(S403).
S403 후, ECC 제어부(110)는 생성된 부호어를 저장소(130)의 저장 공간에 저장한다(S404).
만일 S402 결과, 저장 공간 내에 결함 블록이 존재하면, ECC 제어부(110)는 정보 비트 선택 방법을 사용하여 결함 블록의 개수만큼 특정 정보 비트를 선택한다(S405).
여기서 특정 정보 비트를 선택하는 방법은, Random Selection 방법 또는 ds 최대화 방법을 사용할 수 있으며, 그 외에도 Turbo 부호, LDPC 부호, Polar 부호 등 오류 마루 방지를 위한 비트 선택 알고리즘을 사용할 수 있다.
정보 비트 선택 방법에 대한 설명은 전술한바 있으므로, 더 상세한 설명은 생략하도록 한다.
S405 후, ECC 제어부(110)는 선택된 특정 정보 비트를 미리 알고 있는 비트인 0 혹은 1로 대체하여 부호어를 생성한다(S406).
S406 후, ECC 제어부(110)는 생성된 부호어를 저장소(130)의 저장 공간에 저장한다(S407).
이때, ECC 제어부(110)는 생성된 부호어 중 S405에서 미리 알고 있는 비트로 대체된 정보 비트를 제외한 나머지 비트를 저장 공간에 저장하되, 저장 공간에서 결함 블록을 제외한 나머지 공간에 저장할 수 있다.
도 5는 본 발명의 일 실시예에 따른 ECC 제어부의 읽기 연산 과정을 도시한 흐름도이다.
먼저, ECC 제어부(110)는 독출 대상인 부호어가 저장된 저장 공간을 확인 및 확보한다(S501).
S501 후, ECC 제어부(110)는 결함 블록 관리부(120)로부터 수신된 해당 저장 공간의 결함 블록의 개수 및 위치에 대한 정보에 근거하여 저장 공간의 결함 블록 개수를 파악한다(S502).
S502 결과, 저장 공간 내에 결함 블록이 존재하지 않으면, ECC 제어부(110)는 해당 저장 공간으로부터 부호어를 독출한다(S503).
S503 후, ECC 제어부(110)는 독출된 부호어에 대한 복호화를 수행한다(S504).
만일 S502 결과, 저장 공간 내에 결함 블록이 존재하면, ECC 제어부(110)는 부호어가 저장된 저장 공간에서 결함 블록을 제외한 나머지 저장 공간에 저장된 부호어를 독출한다(S505).
S505 후, ECC 제어부(110)는 쓰기 연산에서 사용하였던 오류 정정 부호의 종류에 따라서 부호 절단에 사용된 특정 정보 비트의 위치에 적절한 값을 사용하여 복호화를 수행한다(S506).
즉, 경 판정 복호화(Hard Decision Decoding)를 수행하는 경우, 특정 정보 비트를 대체한 값과 동일한 값(0 또는 1)을 사용하여 부호어에 대한 복호화를 수행할 수 있다.
또한, 연 판정 복호화(Soft Decision Decoding)를 수행하는 경우, 상기 특정 정보 비트를 대체한 값이 0인 경우 매우 큰 양의 실수 값(∞)을 사용하여 복호화를 수행하고, 상기 특정 정보 비트를 대체한 값이 1인 경우, 매우 작은 음의 실수 값(-∞)을 사용하여 복호화를 수행할 수 있다.
도 6은 본 발명의 일 실시예에 따른 저장소의 저장 공간을 도시한 도면이다.
도 6은 ECC 제어부(110)가 부호어를 생성하여 저장소(130)의 저장 공간에 부호어를 저장하기 위한 것이다.
도 6에 도시된 바와 같이, ECC 제어부(110)는 생성될 부호어를 저장할 10 비트의 저장 공간(600)을 확보 및 확인할 수 있으며, 결함 블록 관리부(120)로부터 결함 블록의 개수와 위치 정보를 제공받아 해당 저장 공간에 결함 블록(610, 620)이 2개 존재한다는 사실을 파악할 수 있다.
ECC 제어부(110)는 10 비트의 정보 비트 중 결함 블록(610, 620)의 개수 2 만큼의 특정 정보 비트를 선택하고, 선택된 특정 정보 비트를 미리 알고 있는 비트인 0 또는 1로 대체하여 부호어를 생성할 수 있다(도 6에서는 미리 알고 있는 비트로서 0을 사용하였다).
이때, ECC 제어부(110)는 Random Selection 방법 또는 ds 최대화 방법을 사용하여 결함 블록의 개수 2 만큼 특정 정보 비트를 선택하거나, Turbo 부호, LDPC 부호, Polar 부호 등 오류 마루 방지를 위한 비트 선택 알고리즘을 이용하여 결함 블록의 개수 2 만큼 특정 정보 비트를 선택할 수 있다.
이후 ECC 제어부(110)는 생성된 10 비트의 부호어에서 미리 알고 있는 비트로 대체된 부분을 제외한 나머지, 즉, 8개의 부호어 심볼을 저장 공간(700)에서 결함 블록(610, 620)을 제외한 나머지 저장 공간에 저장할 수 있다.
참고로, 도 6에서는 설명의 편의 상 결함 블록이 서로 인접한 것으로 설명하였으나, 쓰기/읽기 연산의 지속적인 사용에 따라 결함 블록의 위치는 다양하게 변경될 수 있다.
도 7은 본 발명의 다른 실시예에 따른 저장소의 저장 공간을 도시한 도면이다.
도 7은 ECC 제어부(110)가 도 6에서 저장된 부호어를 독출하여 복호화를 수행하기 위한 것이다.
도 7에 도시된 바와 같이, ECC 제어부(110)는 독출 대상인 부호어가 저장된 저장 공간(700)을 확보 및 확인할 수 있으며, 결함 블록 관리부(120)로부터 결함 블록의 개수와 위치 정보를 제공받아 해당 저장 공간에 결함 블록(710, 720)이 2개 존재한다는 사실을 파악할 수 있다.
ECC 제어부(110)는 저장 공간(700)에서 결함 블록(710, 720)을 제외한 나머지 저장 공간에 저장되어 있는 부호어를 독출할 수 있다.
여기서, ECC 제어부(110)는 쓰기 연산 과정에서 결함 블록(710, 720)의 개수 만큼 선택된 특정 정보 비트의 위치와, 상기 선택된 특정 정보 비트를 미리 알고 있는 비트인 0 또는 1로 대체하여 부호어가 생성된 사실을 알고 있는 상태이다.
따라서, 독출된 부호어를 복호화 시, ECC 제어부(110)는 쓰기 연산에서 사용하였던 오류 정정 부호의 종류에 따라서 쓰기 연산에서 부호 절단에 사용되었던 특정 정보 비트의 위치에 적절한 값을 사용할 수 있다.
즉, 경 판정 복호화(Hard Decision Decoding)를 수행하는 경우, ECC 제어부(110)는 상기 특정 정보 비트를 대체한 값(미리 알고 있는 비트)과 동일한 값(0 또는 1)을 사용하여 부호어에 대한 복호화를 수행할 수 있다.
만일, 연 판정 복호화(Soft Decision Decoding)를 수행하는 경우, ECC 제어부(110)는 상기 특정 정보 비트를 대체한 값이 0인 경우 매우 큰 양의 실수 값(∞)을 사용하여 복호화를 수행하고, 상기 특정 정보 비트를 대체한 값이 1인 경우, 매우 작은 음의 실수 값(-∞)을 사용하여 복호화를 수행할 수 있다.
전술한 바와 같이, 본 발명은 저장 장치의 결함 블록의 정보를 오류 정정 부호와 함께 사용하여 저장 장치의 저장 효율성을 높일 수 있고, 결함 블록의 위치가 변경되는 환경에서도 하나의 오류 정정 부호를 이용하여 다양한 파라미터를 가지는 오류 정정 부호로 변형시켜 사용할 수 있을 뿐만 아니라 높은 신뢰도를 가지는 저장 장치를 지원할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 : 오류 정정 부호의 부호화 및 복호화 시스템
110 : ECC 제어부
111a : 결함 블록 정보 수신부
112a : 부호어 생성부
113a : 부호어 기록부
111b : 결함 블록 정보 수신부
112b : 부호어 독출부
113b : 부호어 복호화부
120 : 결함 블록 관리부
130 : 저장소

Claims (8)

  1. 부호어가 저장될 저장 공간의 결함 블록 개수와 위치에 근거하여, 부호화할 정보 비트로부터 상기 결함 블록 개수만큼 특정 정보 비트를 선택하고, 상기 선택된 특정 정보 비트를 미리 알고 있는 비트로 대체하여 제 1 부호어를 생성하는 부호어 생성부; 및
    상기 생성된 제 1 부호어에서 상기 대체된 미리 알고 있는 비트를 절단한(shortening) 나머지 부호어인 제 2 부호어를 상기 저장 공간에 저장하는 부호어 기록부
    를 포함하되,
    상기 부호어 기록부는 상기 결함 블록을 회피하여 상기 제 2 부호어를 상기 저장공간에 저장하는 것을 특징으로 하는 오류 정정 부호의 부호화 장치.
  2. 제 1 항에 있어서,
    상기 부호어 생성부는,
    상기 결함 블록의 개수만큼 임의로 상기 특정 정보 비트를 선택하거나,
    상기 부호화할 정보 비트의 각 위치에 상기 결함 블록의 개수만큼 절단 기법을 수행하면서 상기 절단 기법의 수행 후 최소 거리(minimum distance)인 ds가 최대가 되는 위치를 가지는 상기 특정 정보 비트를 선택하거나,
    비트 선택 알고리즘을 이용하여 상기 결함 블록의 개수만큼 상기 특정 정보 비트를 선택하는 것을 특징으로 하는 오류 정정 부호의 부호화 장치.
  3. 제 1 항에 있어서,
    상기 미리 알고 있는 비트는 0 또는 1 인 것을 특징으로 하는 오류 정정 부호의 부호화 장치.
  4. 부호어가 저장된 저장 공간의 결함 블록 개수와 위치에 근거하여, 상기 저장 공간에서 상기 결함 블록을 회피하여 저장된 부호어를 독출하는 부호어 독출부; 및
    상기 부호어 생성 시 미리 알고 있는 비트로 대체된 특정 정보 비트의 위치와 상기 미리 알고 있는 비트에 대응하는 값을 이용하여 상기 독출된 부호어에 대한 복호화를 수행하는 부호어 복호화부
    를 포함하되,
    상기 특정 정보 비트의 개수는 상기 결함 블록의 개수만큼 선택되는 것을 특징으로 하는 오류 정정 부호의 복호화 장치.
  5. 제 4 항에 있어서,
    상기 부호어 복호화부는,
    경 판정 복호화(Hard Decision Decoding) 수행 시 상기 미리 알고 있는 비트와 동일한 값을 사용하여 상기 복호화를 수행하는 것을 특징으로 하는 오류 정정 부호의 복호화 장치.
  6. 제 4 항에 있어서,
    상기 부호어 복호화부는,
    연 판정 복호화(Soft Decision Decoding)를 수행 시, 상기 미리 알고 있는 비트에 대응하는 대수 근사율(Log Likelihood Ratio: LLR) 값을 이용하여 상기 복호화를 수행하는 것을 특징으로 하는 오류 정정 부호의 복호화 장치.
  7. 저장 장치에 있어서,
    부호어가 저장되는 저장 공간의 결함 블록 개수와 위치에 대한 정보를 제공하는 결함 블록 관리부; 및
    상기 결함 블록 개수와 위치에 근거하여 부호화할 정보 비트로부터 상기 결함 블록 개수만큼 특정 정보 비트를 선택하고, 상기 선택된 특정 정보 비트를 미리 알고 있는 비트로 대체하여 제 1 부호어를 생성하며, 상기 생성된 제 1 부호어에서 상기 대체된 미리 알고 있는 비트를 절단한 나머지 부호어인 제 2 부호어를 상기 저장 공간에서 상기 결함 블록을 회피하여 저장하거나,
    상기 결함 블록 개수와 위치에 근거하여 상기 제 2 부호어를 상기 저장 공간으로부터 독출하고, 상기 선택된 특정 정보 비트의 위치와 상기 미리 알고 있는 비트에 대응하는 값을 이용하여 상기 독출된 제 2 부호어에 대한 복호화를 수행하는 오류 정정 부호 제어부
    를 포함하는 것을 특징으로 하는 저장 장치.
  8. 제 7 항에 있어서,
    상기 결함 블록 관리부는,
    상기 저장 공간의 블록 번호 및 각 블록의 결함 부분에 대한 정보를 룩-업 테이블(Look-Up Table)을 이용하여 관리하는 것을 특징으로 하는 저장 장치.
KR1020140037921A 2014-03-31 2014-03-31 오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치 KR101530859B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140037921A KR101530859B1 (ko) 2014-03-31 2014-03-31 오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140037921A KR101530859B1 (ko) 2014-03-31 2014-03-31 오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치

Publications (1)

Publication Number Publication Date
KR101530859B1 true KR101530859B1 (ko) 2015-06-23

Family

ID=53519616

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140037921A KR101530859B1 (ko) 2014-03-31 2014-03-31 오류 정정 부호의 부호화, 복호화 장치 및 그를 이용한 저장 장치

Country Status (1)

Country Link
KR (1) KR101530859B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060036354A (ko) * 2004-10-25 2006-04-28 삼성전자주식회사 정보 저장 매체, 대체정보 관리 방법, 기록/재생 장치 및호스트 장치
KR20060069499A (ko) * 2004-07-20 2006-06-21 가부시끼가이샤 도시바 정보 기억 매체, 정보 기록 방법 및 정보 재생 방법
KR20130012550A (ko) * 2011-07-25 2013-02-04 한양대학교 산학협력단 Ldpc 부호화 및 복호화 방법 및 그 방법을 사용하는 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060069499A (ko) * 2004-07-20 2006-06-21 가부시끼가이샤 도시바 정보 기억 매체, 정보 기록 방법 및 정보 재생 방법
KR20060036354A (ko) * 2004-10-25 2006-04-28 삼성전자주식회사 정보 저장 매체, 대체정보 관리 방법, 기록/재생 장치 및호스트 장치
KR20130012550A (ko) * 2011-07-25 2013-02-04 한양대학교 산학협력단 Ldpc 부호화 및 복호화 방법 및 그 방법을 사용하는 장치

Similar Documents

Publication Publication Date Title
TWI594583B (zh) 硬決定輸入之一般化低密度同位檢查軟解碼
US8812939B2 (en) Soft decoding systems and methods for flash based memory systems
US8769374B2 (en) Multi-write endurance and error control coding of non-volatile memories
JP5698260B2 (ja) メモリ装置における制御データの誤り訂正システムおよび方法
CN107370560B (zh) 一种极化码的编码和速率匹配方法、装置及设备
US9577675B1 (en) System and method for encoding user data with low-density parity-check codes with flexible redundant parity check matrix structures
KR101625273B1 (ko) 더 짧은 블록 길이를 이용하여 더 긴 선형 블록 코드워드를 생성 및 디코딩하기 위한 장치, 시스템 및 방법
US20120254686A1 (en) Non-volatile semiconductor memory devices and error correction methods
US9128859B1 (en) Method and apparatus for dynamically selecting an error correction code for encoding and decoding data in a communication system
JP6960877B2 (ja) メモリシステム
US9348692B2 (en) Flash memory apparatus, memory controller and method for controlling flash memory
US10090865B2 (en) Performance optimization in soft decoding of error correcting codes
US9059746B2 (en) Data sharing method, transmitter, receiver and data sharing system
CN105991230B (zh) 存储器控制模块与方法以及纠错码编/解码电路与方法
US10205469B2 (en) Low latency soft decoder architecture for generalized product codes
US20200321984A1 (en) Polar encoding and decoding method, sending device, and receiving device
US8832525B2 (en) Memory controller with low density parity check code decoding capability and relevant memory controlling method
JP2019125910A (ja) メモリシステム
US10193579B2 (en) Storage control device, storage system, and storage control method
US8797668B1 (en) Systems and methods for penalty based multi-variant encoding
US9304851B2 (en) Decoding with log likelihood ratios stored in a controller
CN110299182A (zh) 采用连氏错误校正码设计的存储器存储装置及其编码方法
US9032276B2 (en) Method and system for generation of a tie-breaking metric in a low-density parity check data encoding system
US10326477B2 (en) Techniques for miscorrection detection for constituent codewords in product codes
JP2008011078A (ja) 情報符号化装置、情報復号装置、情報符号化方法、および情報復号方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee