KR101737569B1 - 디코더와 상기 디코더를 포함하는 장치들 - Google Patents

디코더와 상기 디코더를 포함하는 장치들 Download PDF

Info

Publication number
KR101737569B1
KR101737569B1 KR1020160107834A KR20160107834A KR101737569B1 KR 101737569 B1 KR101737569 B1 KR 101737569B1 KR 1020160107834 A KR1020160107834 A KR 1020160107834A KR 20160107834 A KR20160107834 A KR 20160107834A KR 101737569 B1 KR101737569 B1 KR 101737569B1
Authority
KR
South Korea
Prior art keywords
data
decoder
value
reference value
outputs
Prior art date
Application number
KR1020160107834A
Other languages
English (en)
Other versions
KR20160103963A (ko
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 KR1020160107834A priority Critical patent/KR101737569B1/ko
Publication of KR20160103963A publication Critical patent/KR20160103963A/ko
Application granted granted Critical
Publication of KR101737569B1 publication Critical patent/KR101737569B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

디코더가 개시된다. 상기 디코더는 입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 지시 데이터를 출력하기 위한 제1디코더와, 상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하기 위한 제2디코더를 포함한다.

Description

디코더와 상기 디코더를 포함하는 장치들{DECODER AND APPARATUSES INCLIDING THE DECODER}
본 발명의 개념에 따른 실시 예는 디코더에 관한 것으로, 특히 BER(Bit Error Rate)을 개선할 수 있는 디코더와 상기 디코더를 포함하는 장치들에 관한 것이다.
반복 디코더(iterative decoder)는 디폴트로 지정된 반복 복호 회수 이내에서 입력 데이터에 대한 반복 복호를 수행하고 반복 복호된 데이터를 RS(Reed-Solomon)-ECC 디코더(error correction code decoder)로 전송한다. 상기 RS-ECC 디코더는 상기 반복 디코더에 의하여 반복 복호된 데이터에 대하여 에러 정정을 수행한다.
본 발명이 이루고자 하는 기술적인 과제는 누산기를 이용하여 비트 단위로 반복 복호된 데이터를 추정함과 동시에 에러가 발생한 심벌에 대한 정보를 이용하여 에러를 정정할 수 있는 디코더와 상기 디코더를 포함하는 장치들을 제공하는 것이다.
본 발명의 실시 예에 따른 디코더는 입력 데이터를 반복 복호하고 반복 복호된 데이터를 비트 단위로 누산하고 누산된 값과 복수의 기준 값들 각각을 비교하고 비교 결과에 따라 결정된 결정 데이터와 지시 데이터를 출력하기 위한 제1디코더와, 상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함한다.
실시 예에 따라 상기 제1디코더는 상기 입력 데이터를 반복 복호하여 상기 반복 복호된 데이터를 출력하기 위한 반복 디코더와, 상기 반복 복호된 데이터를 상기 비트 단위로 누산하고 상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 상기 지시 데이터와 함께 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 회로를 포함한다.
상기 제1디코더는 상기 제2디코더로부터 출력된 제어 신호에 응답하여 상기 반복 복호된 데이터를 상기 제2디코더로 전송하거나 또는 상기 결정 회로로 전송하기 위한 스위칭 회로를 더 포함한다.
다른 실시 예에 따라 상기 제1디코더는 상기 반복 복호된 데이터를 출력하기 위한 반복 디코더와, 상기 반복 디코더의 출력단에 접속된 디멀티플세서와, 상기 디멀티플렉서의 제2출력단으로부터 출력된 상기 반복 복호된 데이터를 상기 비트 단위로 누산하여 상기 누산된 값을 출력하기 위한 누산기와, 상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 유닛과, 상기 디멀티플렉서의 제1출력단으로부터 출력되는 상기 반복 복호 데이터 또는 상기 결정 데이터를 상기 제2디코더로 전송하기 위한 멀티플렉서를 포함한다.
상기 결정 유닛은 상기 누산된 값이 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 상기 지시 데이터를 상기 제2디코더로 전송한다.
상기 결정 유닛은 상기 누산된 값이 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 플래그를 더 출력하고, 상기 제1디코더는 상기 플래그에 응답하여 상기 심벌의 위치 정보를 포함하는 상기 지시 데이터를 생성하기 위한 에러 심벌 검출기를 더 포함한다.
상기 반복 디코더는 상기 제2디코더로부터 출력된 제어 신호에 응답하여 제1반복 회수 이내에서 상기 입력 데이터를 반복 복호하거나 또는 상기 제1반복 회수에 추가적인 제2반복 복호 회수 이내에서 상기 입력 데이터를 반복 복호한다.
상기 제1디코더로부터 출력된 상기 반복 복호된 데이터에 정정불가 에러가 존재할 때 상기 제2디코더는 상기 반복 복호된 데이터를 비트 단위로 누산하기 전에 상기 제1디코더의 반복 복호 회수를 증가시키기 위한 제어 신호를 상기 제1디코더로 전송하고, 상기 제1디코더는 상기 제어 신호에 응답하여 증가된 반복 복호 회수만큼 상기 반복 복호 데이터를 비트 단위로 누산한다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 상기 디코더와, 상기 디코더에 의하여 에러 정정된 데이터를 처리하기 위한 프로세서를 포함한다.
본 발명의 실시 예에 따른 하드디스크 드라이브의 동작을 제어하기 위한 컨트롤러는 제1디코더와 제2디코더를 포함한다. 상기 제1디코더는 입력 데이터를 반복 복호하고 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 지시 데이터를 출력한다. 상기 제2디코더는 상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행한다.
상기 컨트롤러는 상기 입력 데이터를 반복 복호하여 상기 반복 복호된 데이터를 출력하기 위한 반복 디코더와, 결정 회로를 포함한다. 상기 결정 회로는 상기 반복 복호된 데이터를 상기 비트 단위로 누산하고, 상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 상기 지시 데이터와 함께 제3데이터를 상기 결정 데이터로서 출력한다.
본 발명의 실시 예에 따른 하드디스크 드라이브는 디스크와, 상기 디스크에 라이트된 아날로그 신호를 리드하기 위한 헤드와, 상기 헤드에 의하여 리드된 아날로그 신호를 증폭하기 위한 전치 증폭기와, 컨트롤러를 포함한다.
상기 컨트롤러는 제1디코더와 제2디코더를 포함한다.
상기 제1디코더는 상기 전치 증폭기호부터 출력된 아날로그 신호에 상응하는 입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 지시 데이터를 출력한다.
상기 제2디코더는 상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행한다.
본 발명의 실시 예에 따른 컴퓨터 시스템은 상기 하드디스크 드라이브와, 상기 하드디스크 드라이브의 제2디코더에 의하여 에러 정정된 데이터를 처리할 수 있는 호스트를 포함한다.
본 발명의 실시 예에 따른 디코더는 리드 동작을 수행하는 도중에 정정불가 에러(uncorrectable error) 발생시 반복 복호 회수를 증가시켜 BER(Bit Error Rate)을 개선할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 디코더의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 디코더의 상세 블록도를 나타낸다.
도 3은 도 2에 도시된 반복 디코더의 출력들과 어큐뮬레이터의 출력들을 나타낸다.
도 4는 도 2에 도시된 결정 유닛의 결정 동작을 설명하기 위한 개념도이다.
도 5는 도 2에 도시된 결정 유닛의 출력 신호들을 나타내는 개념도이다.
도 6은 도 2에 도시된 제1디코더의 동작을 설명하기 위한 플로우차트이다.
도 7은 도 1에 도시된 디코더를 포함하는 데이터 처리 시스템의 블락도를 나타낸다.
도 8은 도 7에 도시된 데이터 처리 시스템을 포함하는 컴퓨터 시스템의 블락도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 디코더의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 디코더(10)는 제1디코더(11)와 제2디코더(60)를 포함한다.
리드 동작 시에 제1디코더(11)는 제어 신호(CTRL)에 응답하여 입력 데이터 (IDATA)를 정해진 반복 복호 회수(예컨대, [N-1]번)보다 증가된 반복 복호 회수, 예컨대 K번만큼 더 반복 복호하고, 증가된 반복 복호 회수만큼 더 반복 복호된 데이터(DATA)를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터(MDATA)와 지시 데이터(SLI)를 제2디코더(60)로 출력한다. 여기서, N과 K는 자연수이다.
제1디코더(11)는 제2디코더(60)로부터 출력된 제어 신호(CTRL)에 응답하여 반복 복호 회수를 증가시킬 수 있다. 제어 신호(CTRL)는 제1디코더(11)에 의하여 정해진 반복 복호 회수만큼 반복 복호된 데이터(DATA=MDATA)에 정정불가 에러가 존재할 때 제2디코더(60)에 의하여 발생할 수 있다.
제2디코더(60)는 지시 데이터(SLI)에 따라 결정 데이터(MDATA)를 포함하는 심벌(symbol)에 대해 심벌 단위로 에러 정정을 수행하고 에러 정정된 데이터 (ECDATA)를 출력한다. 예컨대, 에러 정정된 데이터(ECDATA)는 데이터 프로세서 또는 호스트로 출력될 수 있다.
본 발명의 실시 예에 따른 디코더(10)는 하드디스크 드라이브뿐만 아니라 리드 동작 시에 리드 데이터에 대하여 반복 복호(iterative decoding)를 수행하고 상기 리드 데이터에 포함된 에러를 정정하거나 또는 검출할 수 있는 모든 데이터 처리 시스템에 사용될 수 있다.
도 2는 도 1에 도시된 디코더의 상세 블록도를 나타내고, 도 3은 도 2에 도시된 반복 디코더의 출력들과 누산기의 출력들을 나타내고, 도 4는 도 2에 도시된 결정 유닛의 결정 동작을 설명하기 위한 개념도이고, 도 5는 도 2에 도시된 결정 유닛의 출력 신호들을 나타내는 개념도이고, 도 6은 도 2에 도시된 제1디코더의 동작을 설명하기 위한 플로우차트이다.
우선, 도 2를 참조하면, 제1디코더(11)는 반복 디코더(20), 스위칭 회로 (30), 및 결정 회로(40)를 포함한다.
제2디코더(60)로부터 출력된 제어 신호(CTRL)에 응답하여 반복 디코더(20)는 디폴트로 정해진 반복 복호 회수, 예컨대 [N-1]-번 이내에서 입력 데이터(IDATA)에 대한 반복 복호를 수행하거나 또는 증가된 반복 복호 회수, 예컨대 [N]-번부터 [N+K-1]-번까지 K-번만큼 더 입력 데이터(IDATA)에 대한 반복 복호를 수행할 수 있다. 예컨대, 반복 디코더(20)는 제1레벨, 예컨대 로우 레벨을 갖는 제어 신호 (CTRL)에 응답하여 [N-1]-번 이내에서 입력 데이터(IDATA)에 대한 반복 복호를 수행할 수 있다.
또한, 정정불가 에러 발생 시, 반복 디코더(20)는 제2레벨, 예컨대 하이 레벨을 갖는 제어 신호(CTRL)에 응답하여 [N]-번부터 [N+K-1]-번까지 K-번만큼 더 입력 데이터(IDATA)에 대한 반복 복호를 수행할 수 있다. 예컨대, 제2디코더(60)는 [N-1]-번 이내에서 반복 복호된 데이터(MDATA=DATA)에 정정불가 에러가 존재할 때 하이 레벨을 갖는 제어 신호(CTRL)를 생성할 수 있다.
스위칭 회로(30)는 제1레벨을 갖는 제어 신호(CTRL)에 응답하여 반복 디코더 (20)에 의하여 반복 복호된 데이터(MDATA=DATA)를 제2디코더(60)로 전송한다.
또한, 스위칭 회로(30)는 제2레벨을 갖는 제어 신호(CTRL)에 응답하여 반복 디코더(20)에 의하여 반복 복호된 데이터(DATA)를 결정 회로(40)로 전송하고 결정 회로(40)에 의하여 결정된 결정 데이터(MDATA=PDATA)를 제2디코더(60)로 전송한다.
스위칭 회로(30)는 디멀티플렉서(32)와 멀티플렉서(34)를 포함한다.
디멀티플렉서(32)는 제1레벨을 갖는 제어 신호(CTRL)에 응답하여 반복 디코더(20)에 의하여 반복 복호된 데이터(DATA)를 제1출력단을 통하여 멀티플렉서(34)의 제1입력단으로 전송한다. 또한 디멀티플렉서(32)는 제2레벨을 갖는 제어 신호(CTRL)에 응답하여 반복 디코더(20)에 의하여 반복 복호된 데이터(DATA)를 제2출력단을 통하여 결정 회로 (40)로 전송한다.
멀티플렉서(34)는 제1레벨을 갖는 제어 신호(CTRL)에 응답하여 디멀티플렉서 (32)로부터 출력된 반복 복호된 데이터(DATA)를 선택 데이터(MDATA)로서 제2디코더 (60)로 전송하고, 멀티플렉서(34)는 제2레벨을 갖는 제어 신호(CTRL)에 응답하여 결정 회로(40)에 의하여 결정된 결정 데이터(PDATA)를 선택 데이터(MDATA)로서 제2디코더(60)로 전송한다.
리드 동작 시 정정불가 에러에 의하여 리드 실패(read failure)가 발생하면, 제2디코더(60)는 제2레벨을 갖는 제어 신호(CTRL)를 발생한다(S10). 따라서, 반복 디코더(20)는 K-번만큼 더 입력 데이터(IDATA)에 대한 반복 복호를 수행하고 반복 복호된 데이터(DATA)를 K-번만큼 더 디멀티플렉서(32)를 통하여 결정 회로 (40)로 출력한다(S20).
결정 회로(40)의 누산기(42)는 스위칭 회로(30)를 통하여 입력된 반복 복호된 데이터(DATA)를 비트 단위로 K-번 누산하고 비트 단위로 누산된 값(AOUT)을 결정 유닛(44)으로 출력한다(S30).
도 3에 도시된 바와 같이 [N]번째 반복 복호 회수부터 [N+K-1]번째 반복 복호 회수까지, 즉 총 K번의 반복 복호 회수마다, 반복 디코더(20)가 비트 단위로 데이터 1을 출력할 때 누산된 값(AOUT)은 K이고 반복 디코더(20)가 비트 단위로 데이터 0을 출력할 때 누산된 값(AOUT)은 0이다.
그러나, 총 K번의 반복 복호 회수마다, 반복 디코더(20)가 비트 단위로 데이터 1과 데이터 0을 순서 없이 출력할 때, 누산된 값(AOUT)은 A, B, 또는 C이다. 이때 A, B, 또는 C는 자연수이고 0보다 크고 K번보다 작다.
누산기(42)는 비트 단위로 누산된 값(AOUT)을 결정 유닛(44)으로 출력한다.
결정 유닛(44)은 누산된 값(AOUT)과 복수의 기준 값들(TH1과 TH2) 각각을 비교하여 비교 결과에 따라 결정 데이터(PDATA)를 결정할 수 있다(S40).
도 4에 도시된 바와 같이, 누산된 값(AOUT)이 복수의 기준 값들(TH1과 TH2) 중에서 제1기준 값(TH1, 예컨대 40)보다 작을 때, 결정 유닛(44)은 제1데이터(예컨대, 데이터 0)를 결정 데이터(PDATA)로서 멀티플렉서(34)로 출력할 수 있다(S60).
누산된 값(AOUT)이 제1기준 값(TH1)보다 큰 제2기준 값(TH2, 예컨대 70)보다 클 때, 결정 유닛(44)은 제2데이터(예컨대, 데이터 1)를 결정 데이터(PDATA)로서 멀티플렉서(34)로 출력할 수 있다(S50).
누산된 값(AOUT)이 제1기준 값(TH1)과 제2기준 값(TH2) 사이의 값일 때, 결정 유닛(44)은 지시 데이터(FLAG=SLI)와 함께 제3데이터(예컨대, 디폴트로 정해진 데이터 1 또는 데이터 0)를 결정 데이터(PDATA)로서 멀티플렉서(34)로 출력한다 (S60). 결정 유닛(44)은 제3데이터로서 데이터 0을 출력한다고 가정한다.
결정 데이터(PDATA)는 비트 단위로 멀티플렉서(34)를 통하여 제2디코더(60)로 전송될 수 있다.
도 5에 도시된 바와 같이 각 심벌에 포함된 UD1, UD2, 및 UD3는 결정 유닛(44)에 의하여 제3데이터, 예컨대 데이터 0으로 결정된 결정 데이터(PDATA)를 나타낸다. 결정 유닛(44)은 제3데이터를 결정 데이터(PDATA)로 결정할 때 플래그 (FLAG)를 발생할 수 있다. 실시 예에 따라 플래그(FLAG)는 심벌마다 하나만 발생할 수 있다.
결정 유닛(44)에 의하여 발생된 플래그(FLAG)는 지시 데이터(SLI)로서 제2디코더(60)로 직접 전송될 수 있다. 멀티플렉서(34)는 결정 유닛(44)에 의하여 비트 단위로 결정된 결정 데이터 (PDATA)를 선택 데이터(MDATA)로서 제2디코더(60)로 전송하므로, 제2디코더(60)는 멀티플렉서(34)로부터 출력되는 선택 데이터(MDATA)와 결정 유닛(44)으로부터 출력되는 플래그(FLAG)에 응답하여 어떤 심벌에서 에러가 발생했는지를 판단할 수 있다.
도 5에 도시된 바와 같이, 제2디코더(60)는 m-번째 심벌과 (m+2)-번째 심벌에서 에러가 발생했음을 알 수 있으므로, 제2디코더(60)는 m-번째 심벌과 (m+2)-번째 심벌 각각에 대하여 에러 정정을 수행하고 에러 정정된 데이터(ECDATA)를 출력할 수 있다. 제2디코더(60)는 심벌 단위로 에러 정정을 수행할 수 있다. 제2디코더 (60)로서 RS-ECC 디코더가 사용될 수 있다.
실시 예에 따라, 결정 회로(40)는 에러 심벌 검출기(46)를 더 포함할 수 있다. 에러 심벌 검출기(46)는 결정 유닛(44)으로부터 비트 단위로 출력되는 결정 데이터(PDATA)와 플래그(FLAG)에 응답하여 제3데이터를 포함하는 심벌의 위치 정보를 나타내는 지시 데이터(SLI)를 생성하고 생성된 지시 데이터(SLI)를 제2디코더 (60)로 전송할 수 있다.
따라서, 제2디코더(60)는 지시 데이터(SLI), 즉 에러 심벌의 위치 정보에 따라 제3데이터를 나타내는 결정 데이터(PDATA)를 포함하는 에러 심벌에 대하여 에러 정정을 수행하고 에러 정정된 데이터(ECDATA)를 출력할 수 있다.
상술한 바와 같이, 제2디코더(60)는 비트 단위로 에러의 위치를 판단할 수 있을 뿐만 아니라 심벌 단위로 에러의 위치를 판단할 수 있다. 따라서 제2디코더(60)는 결정 유닛(44)으로부터 출력된 플래그(FLAG) 또는 에러 심벌 검출기(46)로부터 출력되는 지시 데이터(SLI)에 따라 에러 심벌에 대한 에러 정정을 수행할 수 있으므로 에러 정정 능력(error correction capability), 예컨대 BER을 개선할 수 있는 효과가 있다.
도 7은 도 1에 도시된 디코더를 포함하는 데이터 처리 시스템의 블락도를 나타낸다. 도 1부터 도 6을 참조하여 설명된 디코더(10)는 리드 동작 도중에 에러가 발생할 때 리드 리트라이(read retry) 동작을 수행할 수 있는 하드디스크 드라이브에 사용될 수 있다.
도 7을 참조하면, 데이터 처리 시스템으로 사용될 수 있는 하드디스크 드라이브(hard disk drive(HDD); 100)는 복수의 디스크들(110), 복수의 헤드들(112), 헤드 어셈블리(114), 전치 증폭기(pre-amplifier; 116), 메인 컨트롤 유닛(118), 모터 구동 유닛(또는, 서보 제어 유닛; 140), 스핀들 모터(136), 및 보이스 코일 모터(voice coil motor(VCM); 138)를 포함한다.
복수의 디스크들(110) 각각은 호스트로부터 출력된 데이터를 저장할 수 있고 스핀들 모터(36)에 의하여 회전한다. 복수의 디스크들(10) 각각은 자기 기록 매체로 구현될 수 있다.
복수의 헤드들(112) 각각은 복수의 디스크들(110) 중에서 대응하는 하나의 디스크 위(over)에 위치하여 리드(read) 작동 또는 라이트(write) 작동을 수행하고, VCM(138)와 결합된 헤드 어셈블리(114)로부터 복수의 디스크들(110) 쪽으로 신장된 서포트 암들(미도시) 각각에 설치된다.
디스크에 저장된 데이터를 리드할 때, 전치 증폭기(116)는 복수의 헤드들 (112) 중에서 어느 하나의 헤드로부터 출력된 아날로그 신호를 증폭하고 증폭된 아날로그 신호를 리드/라이트 채널 회로(120)로 출력한다.
디스크에 데이터를 라이트할 때, 전치 증폭기(116)는 리드/라이트 채널 회로 (20)로부터 출력된 라이트 신호, 예컨대, 라이트 전류를 복수의 헤드들(112) 중에서 어느 하나의 헤드로 전송한다. 상기 어느 하나의 헤드는 상기 라이트 신호를 복수의 디스크들(110) 중에서 어느 하나의 디스크에 라이트할 수 있다.
리드/라이트 채널 회로(120)는 전치 증폭기(116)에 의하여 증폭된 아날로그 신호를 디지털 신호로 변환하고, 변환된 디지털 신호에 대하여 반복 복호를 수행하고 반복 복호된 데이터를 하드디스크 컨트롤러(122)로 출력한다. 실시 예에 따라 도 1부터 도 6을 참조하여 설명된 제1디코더(11)는 리드/라이트 채널 회로(120)에 구현될 수 있다. 따라서 리드/라이트 채널 회로(120)는 선택 데이터(MDATA)와 지시 데이터(SLI)를 하드디스크 컨트롤러(122)로 출력한다.
CPU(124)의 제어 하에 또는 독립적으로 하드디스크 컨트롤러(hard disk cintroller(HDC); 122)는 리드/라이트 채널 회로(120)로부터 출력된 지시 데이터(SLI)에 따라 심벌 단위로 선택 데이터(MDATA)에 대한 에러 정정을 수행하고 에러 정정된 데이터(ECDATA)를 호스트로 출력할 수 있다. 즉, 도 1부터 도 6을 참조하여 설명한 제2디코더(60)는 HDC(122)의 내부에 구현될 수 있다.
리드/라이트 채널 회로(120)는 HDC(122)로부터 출력된 라이트 데이터를 라이트 신호로 변환하고 변환된 라이트 신호를 전치 증폭기(116)로 출력할 수 있다.
예컨대, 데이터를 디스크(110)에 라이트할 때, HDC(122)는 CPU(124)의 제어 하에 호스트로부터 출력된 라이트 데이터를 에러 정정 코드를 부가하고 상기 에러 정정 코드기 부가된 라이트 데이터를 리드/라이트 채널 회로(120)로 출력한다. 따라서 상기 호스트로부터 출력된 상기 라이트 데이터는 리드/라이트 채널 회로 (120), 전치 증폭기(116), 및 복수의 헤드들(112) 중에서 어느 하나의 헤드를 통해 복수의 디스크들(110) 중에서 어느 하나의 디스크에 라이트될 수 있다.
또한, 복수의 디스크들(110) 중에서 어느 하나의 디스크로부터 데이터를 리드할 때, HDC(122)는 CPU(124)의 제어 하에 리드/라이트 채널 회로(120)에 의하여 반복 복호된 리드 데이터(MDATA)를 수신하고, 수신된 반복 복호된 리드 데이터 (MDATA)에 대하여 심벌 단위로 에러 정정을 수행하고 에러 정정된 데이터(ECDATA)를 호스트로 전송할 수 있다.
메인 컨트롤 유닛(118)의 동작을 제어할 수 있는 CPU(124)는 ROM(126)에 저장된 프로그램 코드, 예컨대 반복 복호 회수를 조절할 수 있는 프로그램 코드를 리드하고, 리드된 프로그램 코드를 RAM(128)에 저장하고, RAM(128)에 저장된 상기 프로그램 코드를 실행시켜 하드디스크 드라이브(100) 또는 HDC(122)의 동작을 제어할 수 있다. 이에 따라, CPU(124)는 반복 복호 회수 설정 방법, HDD(100)의 리드 동작, 또는 HDD(100)의 라이트 동작을 제어할 수 있다.
CPU(124)는 호스트로부터 출력된 리드 명령 또는 라이트 명령을 수신하고, 수신된 명령에 따라 트랙 탐색(track seek) 또는 트랙 추종(track following)을 제어하기 위하여, 스핀들 모터 구동부(132)와 VCM 구동부(134)를 제어할 수 있다.
스핀들 모터 구동부(132)는 HDC(122)로부터 출력된 적어도 하나의 제어 신호에 응답하여 복수의 디스크들(110)의 회전을 제어하는 스핀들 모터(136)의 동작을 제어한다.
VCM구동부(134)는 HDC(122)로부터 출력된 적어도 하나의 제어 신호, 예컨대 복수의 헤드들(112) 각각의 위치를 제어하기 위한 제어 신호에 응답하여 VCM(138)를 구동하기 위한 구동 전류를 발생하고 발생한 구동 전류를 VCM(138)의 보이스 코일로 출력한다.
VCM(138)는 VCM구동부(134)로부터 출력되는 상기 구동 전류의 방향과 레벨에 따라 복수의 헤드들(112) 중에서 사용되는 헤드를 복수의 디스크들(110) 중에서 어느 하나의 디스크에 구현된 트랙 위로 이동시킨다.
실시 예에 따라 메인 컨트롤 유닛(118)의 내부 또는 외부에 구현될 수 있는 버퍼 메모리(130)는 HDD(100)와 호스트 사이에서 주거나 받는 데이터를 일시적으로 저장할 수 있다. 버퍼 메모리(130)는 DRAM과 같은 휘발성 메모리로 구현될 수 있다.
실시 예에 따라, 리드/라이트 채널 회로(120), HDC(122), CPU(124), ROM(126), RAM(128), 및 메모리(130)를 포함하는 메인 컨트롤 유닛(118)은 하나의 칩, 예컨대 SoC(system on chip)으로 구현될 수 있다. 또한, 스핀들 모터 구동부(132)와 VCM구동부(134)를 포함하는 모터 구동 유닛(130)은 하나의 칩, 예컨대 SoC로 구현될 수 있다.
도 8은 도 7에 도시된 데이터 처리 시스템을 포함하는 컴퓨터 시스템의 블락도를 나타낸다.
도 1부터 도 8을 참조하면, 컴퓨터 시스템(200)은 하드디스크 드라이브(100)와 하드디스크 드라이브(100)와 데이터를 주거나 받기 위한 호스트(210)를 포함한다.
하드디스크 드라이브(100)는 디스크(110)에 라이트된 아날로그 신호를 리드하기 위한 헤드(112)와, 헤드(112)에 의하여 리드된 아날로그 신호를 증폭하기 위한 전치 증폭기(116)와, 메인 컨트롤 유닛(118)을 포함한다.
메인 컨트롤 유닛(118)은 전치 증폭기(116)부터 출력된 아날로그 신호에 상응하는 입력 데이터(IDATA)를 반복 복호하고, 반복 복호된 데이터(DATA)를 비트 단위로 누산하고, 누산된 값(AOUT)과 복수의 기준 값들(TH1과 TH2) 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터(PDATA)와 지시 데이터(FLAG 또는 SLI)를 출력하기 위한 제1디코더(11)와 지시 데이터(FLAG 또는 SLI)에 따라 결정 데이터 (PDATA)를 포함하는 심벌에 대해 에러 정정을 수행하기 위한 제2디코더(60)를 포함한다.
호스트(210)는 호스트 CPU(211), 메모리(213), 및 인터페이스(214)를 포함한다. 호스트 CPU(211)는 호스트(210)의 동작을 제어하고, 라이트 동작 시에는 메모리(213)로부터 출력된 데이터를 인터페이스(214)를 통하여 HDD(100)의 메인 컨트롤 유닛(118)에 구현된 호스트 인터페이스(149)로 전송할 수 있다. 인터페이스(214)와 호스트 인터페이스(149)는 SATA인터페이스로 구현될 수 있다. 따라서 인터페이스 (214)와 호스트 인터페이스(149)는 SATA 프로토콜을 이용하여 데이터를 주거나 받을 수 있다.
리드 동작 시에 인터페이스(214)는 호스트 CPU(211)의 제어 하에 HDD(100)의 메인 컨트롤 유닛(118)에 구현된 호스트 인터페이스(149)로부터 전송된 데이터를 메모리(213)에 저장할 수 있다. 호스트 CPU(211)는 메모리(213)에 저장된 데이터를 처리, 예컨대 디스플레이 장치를 이용하여 디스플레이하거나 주변 장치, 예컨대 USB포트에 접속된 프린터를 이용하여 출력할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
11: 제1디코더
20: 반복 디코더
30: 스위칭 회로
40: 결정 회로
42; 누산기
44; 결정 유닛
46; 에러 심벌 검출기
60: 제2디코더
100: 하드디스크 드라이브
116: 전치 증폭기
118: 메인 컨트롤 유닛
200: 컴퓨터 시스템

Claims (9)

  1. 디코더로서,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제 1 디코더는:
    상기 입력 데이터를 반복 복호하여 상기 반복 복호된 데이터를 출력하기 위한 반복 디코더; 및
    상기 반복 복호된 데이터를 비트 단위로 누산하고, 상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 상기 지시 데이터와 함께 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 회로를 포함하며,
    상기 제1데이터는 "1"과 "0"중 어느 하나를, 상기 제2데이터는 상기 "1"과 "0"중 다른 하나를, 상기 제3데이터는 상기 "1" 또는 "0"을 디폴트값으로서 갖는 것을 특징으로 하는 디코더.
  2. 디코더로서,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제 1 디코더는:
    상기 반복 복호된 데이터를 출력하기 위한 반복 디코더;
    상기 반복 디코더의 출력단에 접속된 디멀티플렉서;
    상기 디멀티플렉서의 제2출력단으로부터 출력된 상기 반복 복호된 데이터를 비트 단위로 누산하여 상기 누산된 값을 출력하기 위한 누산기;
    상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 유닛; 및
    상기 디멀티플렉서의 제1출력단으로부터 출력된 상기 반복 복호된 데이터 또는 상기 결정 데이터를 상기 제2디코더로 전송하기 위한 멀티플렉서를 포함하며,
    상기 결정 유닛은 상기 누산된 값이 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때, 상기 지시 데이터를 상기 제2디코더에 전송하는 것을 특징으로 하는 디코더.
  3. 디코더로서,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제 1 디코더는:
    상기 반복 복호된 데이터를 출력하기 위한 반복 디코더;
    상기 반복 디코더의 출력단에 접속된 디멀티플렉서;
    상기 디멀티플렉서의 제2출력단으로부터 출력된 상기 반복 복호된 데이터를 비트 단위로 누산하여 상기 누산된 값을 출력하기 위한 누산기;
    상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 유닛; 및
    상기 디멀티플렉서의 제1출력단으로부터 출력된 상기 반복 복호된 데이터 또는 상기 결정 데이터를 상기 제2디코더로 전송하기 위한 멀티플렉서를 포함하며,
    상기 결정 유닛은 상기 누산된 값이 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때, 플래그를 더 출력하며,
    상기 제 1 디코더는 상기 플래그에 응답하여 상기 심벌의 위치 정보를 포함하는 상기 지시 데이터를 생성하는 에러 심벌 검출기를 더 포함하는 것을 특징으로 하는 디코더.
  4. 디코더로서,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제 1 디코더는:
    상기 반복 복호된 데이터를 출력하기 위한 반복 디코더;
    상기 반복 디코더의 출력단에 접속된 디멀티플렉서;
    상기 디멀티플렉서의 제2출력단으로부터 출력된 상기 반복 복호된 데이터를 비트 단위로 누산하여 상기 누산된 값을 출력하기 위한 누산기;
    상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 유닛; 및
    상기 디멀티플렉서의 제1출력단으로부터 출력된 상기 반복 복호된 데이터 또는 상기 결정 데이터를 상기 제2디코더로 전송하기 위한 멀티플렉서를 포함하며,
    상기 반복 디코더는 상기 제2디코더로부터 출력된 제어 신호에 응답하여 제 1의 반복 복호 회수로 입력 데이터에 대한 반복 복호를 수행하거나 또는 상기 제1의 반복 복호 횟수보다 증가된 반복 복호 회수로 상기 입력 데이터에 대한 반복 복호를 수행하는 것을 특징으로 하는 디코더.
  5. 디코더로서,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제 1 디코더는:
    상기 반복 복호된 데이터를 출력하기 위한 반복 디코더; 및
    상기 반복 복호된 데이터를 비트 단위로 누산하여 상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 누산된 값이 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 누산된 값이 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 유닛를 포함하는 것을 특징으로 하는 디코더.
  6. 디코더로서,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제 1 디코더는:
    상기 반복 복호된 데이터를 출력하기 위한 반복 디코더; 및
    상기 반복 복호된 데이터를 상기 비트 단위로 누산하여 상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 누산된 값이 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 누산된 값이 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 회로를 포함하고,
    상기 제1디코더는 상기 제2디코더로부터 출력된 제어 신호에 응답하여 상기 반복 복호된 데이터를 상기 제2디코더로 또는 상기 결정 회로로 전송하기 위한 스위칭 회로를 더 포함하는 디코더.
  7. 디코더로서,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제 1 디코더는:
    상기 반복 복호된 데이터를 출력하기 위한 반복 디코더;
    상기 반복 디코더의 출력단에 접속된 디멀티플렉서;
    상기 디멀티플렉서의 제2출력단으로부터 출력된 상기 반복 복호된 데이터를 비트 단위로 누산하여 누산된 값을 출력하기 위한 누산기;
    상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 유닛; 및
    상기 디멀티플렉서의 제1출력단으로부터 출력된 상기 반복 복호된 데이터 또는 상기 결정 데이터를 상기 제2디코더로 전송하기 위한 멀티플렉서를 포함하는것을 특징으로 하는 디코더.
  8. 컨트롤러로서,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제 1 디코더는:
    상기 반복 복호된 데이터를 출력하기 위한 반복 디코더;
    상기 반복 디코더의 출력단에 접속된 디멀티플렉서;
    상기 디멀티플렉서의 제2출력단으로부터 출력된 상기 반복 복호된 데이터를 비트 단위로 누산하여 누산된 값을 출력하기 위한 누산기;
    상기 누산된 값이 상기 복수의 기준 값들 중에서 제1기준 값보다 작을 때 제1데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값보다 큰 제2기준 값보다 클 때 제2데이터를 상기 결정 데이터로서 출력하고, 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때 제3데이터를 상기 결정 데이터로서 출력하기 위한 결정 유닛; 및
    상기 디멀티플렉서의 제1출력단으로부터 출력된 상기 반복 복호된 데이터 또는 상기 결정 데이터를 상기 제2디코더로 전송하기 위한 멀티플렉서를 포함하며,
    상기 결정 유닛은 상기 누산된 값이 상기 제1기준 값과 상기 제2기준 값 사이의 값일 때, 상기 지시 데이터를 상기 제2디코더에 전송하는 것을 특징으로 하는 컨트롤러.
  9. 하드디스크 드라이브의 동작을 제어하기 위한 컨트롤러로서,
    상기 컨트롤러는,
    입력 데이터를 반복 복호하고, 반복 복호된 데이터를 비트 단위로 누산하고, 누산된 값과 복수의 기준 값들 각각을 비교하고, 비교 결과에 따라 결정된 결정 데이터와 에러가 발생한 심벌의 위치정보를 나타내는 지시 데이터를 출력하기 위한 제1디코더; 및
    상기 지시 데이터에 따라 상기 결정 데이터를 포함하는 심벌에 대해 에러 정정을 수행하는 제2디코더를 포함하며,
    상기 제1디코더로부터 출력된 반복 복호된 데이터에서 정정불가 에러가 존재하는 경우, 상기 제2디코더는 상기 반복 복호된 데이터가 비트단위로 누산되기전 상기 제1디코더에 의해 수행되는 반복 회수를 증가시키기 위해 제어 신호를 상기 제1디코더에 전송하고,
    상기 제1디코더는 상기 제어 신호에 응답하여 증분에 대응하는 횟수로 상기 반복 복호된 데이터를 비트단위로 누산하는 것을 특징으로 하는 컨트롤러.
KR1020160107834A 2016-08-24 2016-08-24 디코더와 상기 디코더를 포함하는 장치들 KR101737569B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160107834A KR101737569B1 (ko) 2016-08-24 2016-08-24 디코더와 상기 디코더를 포함하는 장치들

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160107834A KR101737569B1 (ko) 2016-08-24 2016-08-24 디코더와 상기 디코더를 포함하는 장치들

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020100018652A Division KR101652452B1 (ko) 2010-03-02 2010-03-02 디코더와 상기 디코더를 포함하는 장치들

Publications (2)

Publication Number Publication Date
KR20160103963A KR20160103963A (ko) 2016-09-02
KR101737569B1 true KR101737569B1 (ko) 2017-05-18

Family

ID=56943108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160107834A KR101737569B1 (ko) 2016-08-24 2016-08-24 디코더와 상기 디코더를 포함하는 장치들

Country Status (1)

Country Link
KR (1) KR101737569B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203435A (ja) 2002-01-09 2003-07-18 Fujitsu Ltd データ再生装置
JP2010009719A (ja) 2008-06-30 2010-01-14 Fujitsu Ltd 復号器及び記録再生装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203435A (ja) 2002-01-09 2003-07-18 Fujitsu Ltd データ再生装置
JP2010009719A (ja) 2008-06-30 2010-01-14 Fujitsu Ltd 復号器及び記録再生装置

Also Published As

Publication number Publication date
KR20160103963A (ko) 2016-09-02

Similar Documents

Publication Publication Date Title
US7644337B2 (en) Error correction device, encoder, decoder, method, and information storage device
US20120212849A1 (en) Systems and Methods for Data Pre-Coding Calibration
JP3514638B2 (ja) 環境変動耐力の高い磁気ディスク装置
US9026572B2 (en) Systems and methods for anti-causal noise predictive filtering in a data channel
JP2012515410A (ja) 蓄積装置テストに関するldpcコードのエラー訂正能力調節
US8051366B2 (en) Data reproducing apparatus and data reproducing method
US8020079B2 (en) Decoder device, decoding method and magnetic disk device
JP2010267346A (ja) ディスクコントローラ、ディスクドライブ装置、及びディスク制御方法
US20070198904A1 (en) Error correction processing apparatus and error correction processing method
JP5415638B2 (ja) バイナリ復号化及び非バイナリ復号化の二重処理のためのシステム及び方法
KR101652452B1 (ko) 디코더와 상기 디코더를 포함하는 장치들
JP2014059942A (ja) 硬判定に基づくitiキャンセレーションのためのシステム及び方法
US9047882B2 (en) Systems and methods for multi-level encoding and decoding
KR101737569B1 (ko) 디코더와 상기 디코더를 포함하는 장치들
US9093083B1 (en) Adaptive read channel system for different noise types
US9633691B2 (en) Storage controller, storage device, and method
KR20120067055A (ko) 디펙 제어방법과 상기 방법을 수행할 수 있는 장치들
KR20110050287A (ko) 리드 리트라이 방법과 상기 방법을 수행할 수 있는 장치들
JP2011181169A5 (ko)
US11757472B1 (en) Coarse interleaving
KR100734294B1 (ko) 결함 영역 검출/복구 방법 및 장치와 이를 이용한 디스크드라이브
JP2009271963A (ja) 復号方法、ハードディスクコントローラ及びハードディスク装置
US8325435B2 (en) Method and apparatus for adjusting number of iterations in iterative decoding procedure
KR20130135045A (ko) Eet 피드백을 포함한 데이터 프로세싱 시스템 및 방법
JP2013016219A (ja) チャネル回路及びシーク方法

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right