KR20200133808A - 계층적 디코더를 이용한 오류 정정 - Google Patents
계층적 디코더를 이용한 오류 정정 Download PDFInfo
- Publication number
- KR20200133808A KR20200133808A KR1020207032589A KR20207032589A KR20200133808A KR 20200133808 A KR20200133808 A KR 20200133808A KR 1020207032589 A KR1020207032589 A KR 1020207032589A KR 20207032589 A KR20207032589 A KR 20207032589A KR 20200133808 A KR20200133808 A KR 20200133808A
- Authority
- KR
- South Korea
- Prior art keywords
- decoder
- data
- error correction
- error
- memory device
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/102—Error in check bits
-
- 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
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- 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
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2948—Iterative decoding
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
오류 정정과 관련된 장치 및 방법에는 FD 디코더 및 AD 디코더 사용이 포함될 수 있다. 오류 정정은 메모리 어레이로부터 입력 데이터를 수신하는 단계, 입력 데이터에 대한 오류 검출과 관련된 복수의 작업을 수행하는 단계, 입력 데이터 처리에 기초하여, 출력 데이터, 유효성 검사 플래그 및 복수의 패리티 비트를, 메모리 디바이스에 결합된 제어기에 의해 호스팅되는 제 2 디코더로 제공하는 단계를 포함할 수 있다.
Description
본 발명은 일반적으로 메모리에 관한 것으로, 특히 오류 정정과 관련된 장치 및 방법에 관한 것이다.
메모리 디바이스는 일반적으로 컴퓨터 또는 기타 전자 장치의 내부, 반도체, 집적 회로로 제공된다. 휘발성 및 비휘발성 메모리를 포함하여 다양한 유형의 메모리가 있다. 휘발성 메모리는 데이터를 유지하기 위해 전력을 필요로할 수 있으며 특히 RAM(Random-Access Memory), DRAM(Dynamic Random Access Memory) 및 SDRAM(Synchronization Dynamic Random Access Memory)을 포함한다. 비휘발성 메모리는 전원이 공급되지 않을 때 저장된 데이터를 유지하여 영구 데이터를 제공할 수 있으며, 특히, NAND 플래시 메모리, NOR 플래시 메모리, ROM(read only memory), EEPROM(Electrically Erasable Programmable ROM), EPROM(Erasable Programmable ROM) 및 가변 저항 메모리, 가령, PCRAM(phase change random access memory), RRAM(resistive random access memory), MRAM(magneticoresistive random access memory)을 포함할 수 있다.
메모리는 또한 광범위한 전자 애플리케이션을 위한 휘발성 및 비휘발성 데이터 저장소로 사용된다. 비휘발성 메모리는 예를 들어 개인용 컴퓨터, 휴대용 메모리 스틱, 디지털 카메라, 휴대폰, MP3 플레이어와 같은 휴대용 음악 플레이어, 영화 플레이어 및 기타 전자 장치에 사용될 수 있다. 메모리 셀은 어레이로 배열될 수 있으며, 어레이는 메모리 디바이스에서 사용된다.
다양한 컴퓨팅 시스템은 일련의 명령어(예를 들어, 프로그램, 애플리케이션 등)의 실행과 관련하여 액세스되는 메모리(예를 들어, 메모리 시스템)에 결합되는 처리 리소스를 포함한다. 메모리 시스템은 오류 정정 코드(ECC)를 사용하여 데이터의 오류를 감지하고 정정할 수 있다.
도 1은 본 발명의 다수의 실시예를 구현할 수 있는 메모리 디바이스 및 제어기를 포함하는 메모리 시스템의 블록도이다.
도 2는 본 개시의 다수의 실시예에 따라 오류를 정정할 수 있는 고속 디코딩(FD) 디코더의 블록도이다.
도 3은 본 개시의 다수의 실시예에 따른 FD 디코더 및 정확 디코딩(AD) 디코더를 사용하여 오류를 정정하는 것과 관련된 흐름도를 도시한다.
도 4는 본 개시의 다수의 실시예에 따른 코드워드의 예를 예시한다.
도 2는 본 개시의 다수의 실시예에 따라 오류를 정정할 수 있는 고속 디코딩(FD) 디코더의 블록도이다.
도 3은 본 개시의 다수의 실시예에 따른 FD 디코더 및 정확 디코딩(AD) 디코더를 사용하여 오류를 정정하는 것과 관련된 흐름도를 도시한다.
도 4는 본 개시의 다수의 실시예에 따른 코드워드의 예를 예시한다.
본 개시는 오류 정정과 관련된 장치 및 방법을 포함한다. 예시적인 방법은 메모리 어레이로부터 입력 데이터를 수신하는 단계, 입력 데이터에 대한 오류 검출과 관련된 복수의 작업을 수행하는 단계, 입력 데이터 처리에 기초하여, 출력 데이터, 유효성 검사 플래그 및 복수의 패리티를 메모리 디바이스에 연결된 제어기에 의해 호스팅되는 제 2 디코더에 제공하는 단계를 포함할 수 있다.
본 개시의 다수의 실시예는 메모리 디바이스를 사용하여 저장된 데이터에 대해 오류 정정을 수행하기 위한 개선된 오류 정정 코드(ECC)를 제공할 수 있다. 예를 들어, 일부 이전 ECC에는 메시지를 복구할 수 있도록 메시지에 중복 데이터 또는 패리티 데이터를 추가하는 것이 포함된다. 데이터는 데이터의 전송, 저장 및/또는 불러오기 중에 여러 오류의 지시에 따라 복구될 수 있다.
스토리지는 컴퓨터 시스템에서 성능 병목 현상의 요체였다. 데이터를 저장하여 스토리지로부터 데이터를 불러오는 기능은 컴퓨터 시스템이 계산 및 작업을 수행하는 능력을 제한하는 요소였다.
NAND 기반 스토리지 솔루션이 하드 드라이브 대기시간보다 10 배 이상 향상되었지만 스토리지는 대기시간 지연으로 남아 있다. 신흥 메모리(EM) 기술, 가령, PCM(phase-change memory), MRAM(magnetoresistive random access memory), ReRAM(resistive random-access memory) 및/또는 3D XPoint 메모리는 다른 메모리 기술에 비해 메모리 관련 대기시간을 개선할 수 있다. EM은 나머지 시스템(예: 컴퓨팅 시스템)만큼 빠른 데이터 스토리지를 제공할 수 있다. EM은 컴퓨팅 시스템의 다른 구성 요소의 대기시간과 비슷한 대기시간을 가진 데이터 스토리지를 제공할 수 있다. 스토리지 애플리케이션의 신뢰성 목표에 대처하기 위해, EM은 오류를 정정하고 EM을 호스팅하는 장치의 저-대기시간 성능을 유지할 수 있는 ECC를 활용할 수 있다.
메모리 애플리케이션과 달리 스토리지 애플리케이션이 가변 액세스 대기시간을 허용할 수 있다는 점을 감안할 때, 저-대기시간을 갖는 ECC 디코더를 사용하는 것이 유리할 수 있다. 일부 예에서, 저-대기시간은 복수의 나노초 범위 내의 대기시간을 포함할 수 있다. 다른 예에서, 고-대기시간은 복수 마이크로 초 범위 내의 대기시간일 수 있다.
높은 보정 능력과 저-대기시간을 갖는 ECC 디코더는 ECC 연결 방식 및 계층적 디코더를 사용함으로써 달성될 수 있다. 본 명세서에서 사용되는 바와 같이, 계층적 디코더는 데이터의 오류를 정정하기 위한 다중 디코더의 사용을 설명할 수 있다. 계층적 디코더에는 고속 디코딩(FD) 디코더 및 정확 디코딩(AD) 디코더의 사용이 포함될 수 있다. 일부 예들에서, 계층적 디코딩 방식은 FD 디코더를 이용할 수 있고, 필요할 때 AD 디코더에서 사용되는 더 강력한 ECC에 의존할 수 있다.
FD 디코더에 사용된 ECC는 FD 디코더에 고장을 높은 확률로 플래그할 수 있는 능력이 주어지면 사용될 수 있다. FD 디코더에 사용된 ECC가 플래그를 올리지 않고 실패하면, 정보 블록이 승인되어 잘못된 디코딩 이벤트로 귀결된다. 일부 예들에서, 플래그를 올리지 않는 실패는 FD 디코더에서 매우 낮은 확률로 발생할 수 있다. 고장을 식별하기 위해 FD 디코더에 의해 생성된 플래그는 FD 디코더의 저-대기시간에 불이익을 주지 않도록 매우 짧은 시간에 생성될 수 있다.
다수의 실시예에서, 계층적 코드 아키텍처는 메모리 디바이스에 내장된 FD 디코더와, 스토리지 제어기에 구현된 AD 디코더를 이용한다. 효과적이고 효율적인 솔루션을 갖기 위해 FD 디코더 아키텍처를 도 1과 같이 계층 구조에서 사용하도록 조정할 수 있다.
본 개시 내용의 다음의 상세한 설명에서, 본 개시 내용의 일부를 형성하고 본 개시 내용의 다수의 실시예가 어떻게 실시될 수 있는지를 예시 적으로 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 개시의 실시예를 실시할 수 있도록 충분히 상세하게 설명되며, 다른 실시예가 이용될 수 있고 그 프로세스, 전기적 및/또는 구조적 변경이 이루어질 수 있음을 이해해야 한다. 본 개시의 범위를 벗어나지 않고. 본 명세서에서 사용되는 바와 같이, 지정자 "N"은 그렇게 지정된 특정 특징의 개수가 본 개시의 다수의 실시예에 포함될 수 있음을 나타낸다.
본 명세서에서 사용된 바와 같이, "다수의" 무언가는 그러한 것들 중 하나 이상을 지칭할 수 있다. 예를 들어, 다수의 메모리 디바이스는 하나 이상의 메모리 디바이스를 참조할 수 있다. 어떤 것의 "복수"는 둘 이상을 의미한다. 추가로, 특히 도면에서 참조 번호와 관련하여 본 명세서에서 사용되는 "N"과 같은 지정자는 그렇게 지정된 특정 특징의 개수가 본 개시의 다수의 실시예에 포함될 수 있음을 나타낸다.
본 명세서의 도면은 첫 번째 숫자 또는 숫자들이 도면의 도면 번호에 대응하고 나머지 숫자가 도면의 요소 또는 구성 요소를 식별하는 번호 지정 규칙을 따른다. 상이한 도면들 간의 유사한 요소 또는 구성 요소는 유사한 숫자를 사용하여 식별할 수 있다. 이해되는 바와 같이, 본 명세서의 다양한 실시예에 도시된 요소는 본 개시의 다수의 추가 실시예를 제공하기 위해 추가, 교환 및/또는 제거될 수 있다. 또한, 도면에 제공된 요소의 비율 및 상대적인 규모는 본 발명의 다양한 실시예를 예시하기 위한 것이며 제한적인 의미로 사용되어서는 안된다.
도 1은 본 발명의 다수의 실시예를 구현할 수 있는 메모리 디바이스(104) 및 제어기(102)를 포함하는 메모리 시스템(100)의 블록도이다. 메모리 시스템(100)은 또한 일반적으로 FE 인코더(106)로 지칭되는 복수의 고속 인코딩(FE) 인코더(106-1 및 106-2) 및 정확 인코딩(AE) 인코더(108)를 포함할 수 있다. 메모리 시스템(100)은 또한 일반적으로 FD 디코더(110)로 지칭되는 복수의 FD 디코더(110-1 및 110-2) 및 AD 디코더(112)를 포함할 수 있다. 메모리 시스템(100)은 메모리 어레이(114)를 더 포함할 수 있다.
본 명세서에서 사용된 바와 같이, "장치"(apparatus)는 회로 또는 회로군, 다이 또는 다이들, 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은 다양한 구조들 또는 구조들의 조합을 의미할 수 있지만 이에 제한되지는 않다. 예를 들어, 메모리 시스템(100), 제어기(102), 메모리 디바이스(104), FE 인코더(106), AE 인코더(108), FD 디코더(110), AD 디코더(112) 및 메모리 어레이(114)는 개별적으로 또는 집합적으로 "장치"로 지칭될 수 있다.
이 예에서, 컴퓨팅 시스템은 메모리 시스템(100)에 연결된 제어기(102)에 연결된 호스트를 포함한다. 컴퓨팅 시스템은 기타 시스템들 중에서도, 랩톱 컴퓨터, 개인용 컴퓨터, 디지털 카메라, 디지털 기록 및 재생 장치, 모바일 전화, PDA, 메모리 카드 판독기, 인터페이스 허브, 센서, 사물 인터넷(IoT) 지원 장치일 수 있고, 호스트는 (가령, 제어기(102)를 통해) 메모리 시스템(100)에 액세스할 수 있는 다수의 처리 리소스(예: 하나 이상의 프로세서)를 포함할 수 있다. 호스트는 (예를 들어, 제어기(102)를 통해 메모리 시스템(100)으로부터) 거기에 로드될 수 있는 운영 체제(OS) 및/또는 다양한 애플리케이션의 실행을 담당할 수 있다.
제어기(102)는 호스트로부터 (예를 들어, 각각 로드(load) 및 저장(store) 명령으로 지칭될 수 있는 판독 및 기록 명령의 형태로) 메모리 트랜잭션 요청을 수신할 수 있다. 제어기(102)는, 예를 들어 적절한 프로토콜을 사용하는 버스와 같은 물리적 인터페이스를 포함할 수 있는, 다수의 인터페이스를 통해 호스트와 메모리 시스템(100) 사이에서 명령 및/또는 데이터를 전송할 수 있다. 이러한 프로토콜은 맞춤형 또는 독점적일 수 있고, 또는, 인터페이스가 PCIe(Peripheral Component Interconnect Express), Gen-Z, CCIX 등과 같은 표준화된 프로토콜을 사용할 수 있다. 제어기(102)는 하드웨어, 펌웨어 또는 소프트웨어, 또는 이들의 임의의 조합 형태의 제어 회로군을 포함할 수 있다. 예로서, 제어기(102)는 상태 머신, 시퀀서 및/또는 (인쇄 회로 기판에 결합된 주문형 집적 회로(ASIC)의 형태로 구현될 수 있는) 일부 다른 유형의 제어 회로를 포함할 수 있다. 다수의 실시예에서, 제어기(102)는 (예를 들어, 시스템 온 칩(SOC) 구성으로) 호스트와 함께 배치될 수 있다. 또한, 제어기(102)는 메모리 시스템(100)과 함께 배치될 수 있다.
메모리 시스템(100)은 메모리 셀의 다수의 어레이(예를 들어, 뱅크)와, (예: 어레이에서 데이터를 읽고 어레이에 데이터를 기록하기 위해) 어레이 액세스에 관련된 대응하는 지원 회로(예를 들어, 어드레스 회로, I/O 회로, 제어 회로, 판독/기록 회로, 등)를 각각 포함할 수 있는 다수의 물리적 메모리 "칩"또는 다이를 포함할 수 있다. 예로서, 메모리 시스템(100)은 다수의 DRAM 디바이스, SRAM 디바이스, PCRAM 디바이스, RRAM 디바이스, FeRAM, 상 변화 메모리, 3DXpoint 및/또는 플래시 메모리 디바이스를 포함할 수 있다. 다수의 실시예에서, 메모리 시스템(100)은 컴퓨팅 시스템을 위한 주 메모리로서 기능할 수 있다.
FD 디코더(110)는 FD 코드를 구현할 수 있다. FD 코드는 일정 지속시간 동안 오류를 정정할 수 있다. 지속시간은 복수의 나노초를 포함할 수 있다. FD 코드 및 확장에 의한 FD 디코더(110)는 기껏해야 미리 결정된 양의 오류를 정정할 수 있다. 예를 들어, FD 디코더(110)는 메모리 어레이(114)로부터 검색된 데이터의 주어진 페이지에서 1 개 내지 5 개의 오류를 정정할 수 있다. FD 디코더(110)는 대수 디코딩 방식을 구현할 수 있다. 즉, FD 디코더(110)는 반복적 디코딩과 반대로 대수적 디코딩을 이용할 수 있다. FD 디코더(110)는 조합 로직을 이용하여 대수 디코딩을 구현할 수 있다. 일부 예들에서, FD 디코더들(110)은 저-대기시간을 유지하면서 데이터를 부정확하게 디코딩하는 확률이 10-5 미만이도록 데이터를 디코딩할 수 있다.
AD 디코더(112)는 AD 코드를 구현할 수 있다. AD 코드는 일정 지속시간 동안 오류를 정정할 수 있다. 지속 시간은 복수 마이크로 초를 포함할 수 있다. 미리 결정된 지속시간은 FD 디코더(110)와 AD 디코더(112) 사이를 구별할 수 있다. 예를 들어, FD 디코더(110)는 오류를 정정할 것인지 여부를 결정할 수 있고 및/또는 미리 결정된 지속시간 내에 오류를 정정할 수 있다. AD 디코더(112)는 오류를 정정할 것인지 여부를 결정할 수 있고, 및/또는 미리 결정된 지속시간보다 긴 기간에 오류를 정정할 수 있다.
AD 코드 및 확장에 의해 AD 디코더(112)는 미리 결정된 양보다 많은 오류를 정정할 수 있다. 예를 들어, AD 디코더(112)는 메모리 어레이(114)로부터 검색된 데이터의 주어진 페이지에서 6 개 이상의 오류를 정정할 수 있다. 예를 들어, AD 디코더(112)는 수백 개의 오류를 정정할 수 있다. AD 디코더(112)는 반복적인 프로세스를 구현할 수 있다. 순차 로직을 활용하여 반복 프로세스를 구현할 수 있다.
AD 디코더(112)와, FD 디코더(110)들 중 적어도 하나는 상이한 디바이스 및/또는 장치에 상주할 수 있다. 예를 들어, AD 디코더(112)는 제어기(102)에 상주할 수 있는 반면 FD 디코더(110-2)는 메모리 디바이스(104)에 상주할 수 있다. 일부 실시예에서, 제어기(102)는 마이크로제어기(uC) 일 수 있다.
FD 디코더(110-2)는 유효성 플래그를 이용하여 AD 디코더(112)를 트리거할 수 있다. 즉, AD 디코더(112)는 유효성 플래그의 수신에 응답하여 및/또는 유효성 플래그의 값에 응답하여 데이터의 오류를 정정하기 위해 AD 코드를 구현할지 여부를 결정할 수 있다. FD 디코더(110-2)는 FD 디코더(110-2)가 오류를 정정했는지 또는 메모리 어레이(114)로부터 검색된 데이터의 오류를 정정하지 않았는 지에 기초하여 유효성 플래그를 트리거할 수 있다. 트리거된 유효성 플래그는 FD 디코더(110-2)가 오류가 존재하지 않는다는 오류를 정정했음을 식별하기 위한 미리 결정된 값을 포함하는 다수의 비트를 나타낼 수 있다. 이 트리거된 유효성 플래그는 AD 디코더(112)에 의한 데이터 처리를 금지할 수 있다.
일부 예들에서, 메모리 어레이에 저장된 데이터가 또한 인코딩될 수 있다. 데이터는 FE 인코더(106) 및 AE 인코더(108) 중 하나를 이용하여 인코딩될 수 있다. 예를 들어, 데이터는 동일한 디바이스(예를 들어, 제어기(102))에 상주하는 FE 인코더(106-1) 및 AE 인코더(108)를 이용하여 인코딩될 수 있다. . 데이터는 또한 상이한 디바이스에 상주하는 FE 디코더(106-2) 및 AE 인코더(108)를 이용하여 인코딩될 수 있다. AE 인코더(108)는 제어기(102)에 의해 호스팅될 수 있는 반면 FE 인코더(106-2)는 메모리 디바이스(104)에 의해 호스팅된다.
일부 실시예에서, 데이터 및/또는 패리티 비트는 페이지에서 메모리 어레이(114)로부터 검색될 수 있다. 일부 예에서 페이지는 코드워드를 포함한다. 본 명세서에서 사용되는 바와 같이, 패리티 비트는 데이터에 오류가 있는지 여부를 결정하는 데 사용될 수 있는 비트를 설명한다. 패리티 비트는 또한 오류를 식별하거나 오류를 정정하는 데 사용할 수 있다.
데이터 및/또는 패리티 비트는 FD 디코더(110-2)에 제공될 수 있다. 예를 들어, 제어기(102)는 메모리 어레이(114)로부터 FD 디코더(110-2) 로의 데이터 및/또는 패리티 비트의 전송을 조정할 수 있다. FD 디코더(110-2)는 데이터에 오류가 존재하는지 및/또는 패리티 비트를 이용하여 오류를 정정할 것인지 여부를 결정할 수 있다. FD 디코더(110-2)는 오류가 정정되었는지 또는 오류가 정정되지 않았는 지에 따라 유효성 플래그를 생성할 수 있다.
FD 디코더(110-2)는 데이터, 패리티 비트 및/또는 유효성 플래그를 AD 디코더(112)에 제공할 수 있다. AD 디코더(112)는 유효성 플래그의 값에 기반하여 데이터에 대해 오류 정정 코드(예: AD 코드)를 수행할지 여부를 결정할 수 있다. 예를 들어, AD 디코더(112)는 제 1 값을 포함하는 유효성 플래그를 수신하는 것에 응답하여 데이터의 오류를 정정할 수 있다. AD 디코더(112)는 제 2 값을 포함하는 유효성 플래그를 수신하는 것에 응답하여 오류를 정정하는 것을 억제할 수 있다. FD 디코더(110-2)는 데이터의 다수의 오류를 정정하는 것에 응답하여 활성화된 유효성 플래그를 생성할 수 있다. 활성화된 유효성 플래그는 논리적 "1" 비트가 될 수 있고 비활성화된 유효성 플래그는 논리적 "0" 비트가 될 수 있다. 일부 예들에서, 활성화된 유효성 플래그는 논리적 "0" 비트 일 수 있고 비활성화된 유효성 플래그는 논리적 "1" 비트 일 수 있다.
AD 디코더(112)는 비활성화된 유효성 플래그를 수신하는 것에 응답하여 오류를 정정할 수 있다. 즉, AD 디코더(112)는 비활성화된 유효성 플래그를 수신한 것에 응답하여 수신된 데이터에 오류가 존재하는지 여부를 결정할 수 있다. AD 디코더(112)는 오류가 존재한다는 결정에 응답하여 오류를 정정할 수 있다.
AD 디코더(112)가 패리티 비트를 사용하여 데이터의 오류를 정정하면, AD 디코더(112)는 추가 오류 정정을 위해 정정된 데이터를 FD 디코더(110-1)에 제공할 수 있다. 일부 예들에서, AD 디코더(112)는 FD 디코더(110-1)에 의한 추가 처리없이 요청 장치에 데이터를 제공할 수 있다.
다른 예들에서, AD 디코더(112)는 활성화된 유효성 플래그를 수신하는 것에 응답하여 데이터에 대한 오류 정정을 수행하지 않고 입력 데이터를 출력 데이터로서 제공할 수 있다. 즉, AD 디코더(112)는 FD 디코더(110-2)에 의해 정정된 데이터의 수신에 응답하여 데이터 및/또는 패리티 비트를 FD 디코더(110-1) 및/또는 요청 장치로 전달할 수 있다.
일부 예들에서, AD 디코더(112)는 패리티 비트를 수신하지 않고 FD 디코더(110-2)로부터 데이터 및 유효성 플래그를 수신할 수 있다. AD 디코더(112)는 데이터에 오류가 있는지 여부를 결정할 수 있다. 데이터에 오류가 존재한다는 결정에 응답하여, AD 디코더(112) 및/또는 제어기(102)는 메모리 디바이스(104)로부터 패리티 비트를 요청할 수 있다. 예를 들어, AD 디코더(112)는 판독 재시도 명령을 사용하여 패리티 비트를 요청할 수 있다. AD 디코더(112) 및/또는 제어기(102)는 판독 재시도 명령을 사용하여 메모리 디바이스(104)로부터 패리티 비트를 요청할 수 있다.
AD 디코더(112)는 요청된 패리티 비트를 사용하여 오류를 정정한다. 요청된 패리티 비트는 FD 디코더(110-2)로부터 수신될 수 있고/있거나 FD 디코더(110-2)를 사용하지 않고 수신될 수 있다. 일부 예에서, FD 디코더(110-2)는 하나 이상의 전용 패리티 비트 라인을 사용하여 패리티 비트를 제공할 수 있다.
FD 디코더(110-1)는 AD 디코더(112)로부터 데이터를 수신할 수 있고 데이터의 오류를 정정할 수 있다. 예를 들어, FD 디코더(110-1)는 AD 디코더(112)에 의해 제공된 데이터에 오류가 있는지 여부를 결정할 수 있다. 데이터가 오류를 포함한다는 결정에 응답하여, FD 디코더(110-1)는 오류를 정정할 수 있다.
도 2는 본 개시의 다수의 실시예에 따라 오류를 정정할 수 있는 FD 디코더(210)의 블록도이다. FD 디코더(210)는 신드롬 계산 유닛(227), 오류 정정 유닛(228) 및 오정정 검사기 유닛(229)을 포함할 수 있다.
일부 실시예에서, 신드롬 계산 유닛(227)은 오류 정정 유닛(228) 및/또는 오정정 검사기 유닛(229)과 통신할 수 있다. 오정정 검사기 유닛(229)은 또한 오류 정정 유닛(228)과 통신할 수 있다.
FD 디코더(210)는 메모리 어레이로부터 데이터(220) 및 패리티 비트(226)를 수신할 수 있다. FD 디코더(210)는 신드롬 계산 유닛(227)에서 데이터(220)를 수신할 수 있다. FD 디코더(210)는 전용 패리티 비트 라인을 통해 패리티 비트(226)를 제어기 및/또는 제어기의 장치에 제공할 수 있다.
일부 예들에서, FD 디코더(210)는 데이터가 정정되었는지 또는 데이터가 정정되지 않았는지(예를 들어, 원시 데이터) 여부에 관계없이 패리티 비트(226)를 제공할 수 있다. 다른 예들에서, FD 디코더(210)는 유효 플래그(224)가 비활성화된 경우(예를 들어, 무효성) 데이터를 제공할 수 있다. FD 디코더(210)는 또한 요청시 패리티 비트(226)를 제공할 수 있다. 예를 들어, FD 디코더(210)는 유효성 플래그(224)의 값에 관계없이 요청시 패리티 비트(226)를 제공할 수 있다.
신드롬 계산 유닛(227)은 데이터(220) 및 패리티 비트(226)로부터 신드롬을 생성할 수 있다. 신드롬은 데이터(220)에 오류가 있는지 여부를 판단하는 데 사용할 수 있는 벡터일 수 있다. 예를 들어, 신드롬 계산 유닛(227)은 수신된 하나 이상의 코드워드로부터 신드롬을 생성할 수 있다. 신드롬은 오류 정정 유닛(228) 및/또는 오정정 검사기 유닛(229)에 제공될 수 있다.
오류 정정 유닛(228)은 데이터(220)가 오류를 포함하는지 여부를 결정하기 위해 신드롬을 이용할 수 있다. 오류 정정 유닛(228)은 또한 데이터(220)에 존재하는 오류의 양을 결정하기 위해 신드롬을 사용할 수 있다. 데이터(220)의 오류의 양이 미리 결정된 임계 값 미만이면, 오류 정정 유닛(228)은 오류를 정정할 수 있다. 데이터(220)의 오류 량이 미리 결정된 임계 값보다 큰 경우, 오류 정정 유닛(228)은 오류 정정을 생략할 수 있다. 이와 같이, 오류 정정 유닛(228)은 정정된 데이터 또는 원시 데이터를 생성할 수 있다. 오류 정정 유닛에 의해 제공된 데이터는 데이터(222), 정정된 데이터(222), 및/또는 원시 데이터(222)로서 참조될 수 있다. FD 디코더(210)는 데이터(222)를 제어기 및/또는 제어기에 의해 호스팅되는 AD 디코더에 제공할 수 있다. 일부 예에서, 오류 정정 유닛(228)은 데이터(222)에서 오류가 정정되었는지 여부를 오정정 검사기 유닛(229)에 알릴 수 있도록 오정정 검사기 유닛(229)에 메시지를 제공할 수 있다.
오정정 검사기 유닛(229)은 오류 정정 유닛(228)으로부터 수신한 신드롬 및/는 메시지를 이용하여 데이터(222)의 오류가 정정되었는지 여부를 판단할 수 있다. 데이터(222)의 오류 정정 여부에 기초하여 오류 정정 유닛(228)이 유효성 플래그(224)를 생성할 수 있다. 데이터(222)가 데이터(220)의 오류에 대한 정정을 포함하는 경우 오정정 검사기 유닛(229)은 활성화된 유효성 플래그(224)를 생성할 수 있다. 오정정 검사기 유닛(229)은 데이터(222)가 정정을 포함하지 않는 경우 비활성화된 유효성 플래그(224)를 생성할 수 있다. 오정정 검사기 유닛(229)은 제어기에 의해 호스팅되는 AD 디코더 및/또는 제어기에 유효성 플래그(224)를 제공할 수 있다.
일부 예에서, FD 디코더(210)는 데이터(222)가 정정을 포함하는지 여부에 관계없이 데이터(222), 유효성 플래그(224) 및 패리티 비트(226)를 제어기에 제공할 수 있다. 다른 예에서, FD 디코더(210)는 데이터(222)가 정정을 포함하는지 여부에 관계없이 데이터(222) 및 유효성 플래그(224)를 제어기에 제공할 수 있다. FD 디코더(210)는 데이터(222)가 정정을 포함하지 않는 경우 제어기에 패리티 비트(226)를 제공할 수 있다.
도 3은 본 개시의 다수의 실시예에 따른 FD 디코더 및 AD 디코더를 사용하여 오류를 정정하는 것과 관련된 흐름도(330)를 도시한다. 도 3은 외부 인코더(306), 내부 인코더(308), 메모리 디바이스(304), 내부 디코더(312) 및 외부 디코더(310)를 포함한다. 도 3은 외부 FD 코드를 사용한 직렬 코드 연결을 도시한다.
외부 인코더(306)는 FE 인코더일 수 있고, 내부 인코더(308)는 AE 인코더일 수 있다. 내부 디코더(312)는 AD 디코더일 수 있고 외부 디코더(310)는 FD 디코더일 수 있다. 도시되지는 않았지만, 메모리 디바이스(304)는 FD 디코더를 포함할 수 있다. 내부 디코더(312) 및 외부 디코더(310)는 제어기에 의해 호스팅될 수 있다. 일부 예에서, 외부 인코더(306) 및 내부 인코더(308)는 제어기에 의해 호스팅된다.
메모리 디바이스(304)에 의해 호스팅되는 FD 디코더에 의해 생성된 유효성 플래그 및 데이터는 데이터가 내부 디코더(312) 및/또는 외부 디코더(310)에 제공되는지 여부를 결정하는 데 사용될 수 있다. 예를 들어, 메모리 디바이스(304)에 의해 호스팅된 FD 디코더는 데이터가 정정되지 않음(예를 들어, 원시)을 나타내는 논리 "0"과 같은 미리 결정된 값을 갖는 유효성 플래그를 생성하는 것에 응답하여 원시 데이터를 내부 디코더(312)에 제공할 수 있다. 메모리 디바이스(304)에 의해 호스팅되는 FD 디코더는 데이터가 정정되었음을 나타내는 논리 "1"과 같은 미리 결정된 값을 갖는 유효성 플래그를 생성하는 것에 응답하여 정정된 데이터를 내부 디코더(312)에 제공할 수 있다.
외부 인코더(306)는 고속 코드워드를 생성하기 위해 작은 데이터 청크(예를 들어, 원시 데이터)를 인코딩할 수 있다. 고속 코드워드는 정확한 코드워드를 생성하기 위해 내부 인코더(308)를 사용하여 인코딩될 수 있다. 정확한 코드워드는 정확한 코드라고 지칭될 수 있다. 정확한 코드는 체계적인 코드일 수 있다. 즉, 정확한 코드는 데이터와 패리티 비트를 분리할 수 있다.
디코딩 단계에서, 내부 디코더(312)는 정확한 코드를 디코딩하여 고속 코드워드를 생성할 수 있다. 외부 디코더(310)는 작은 데이터 청크를 생성하기 위해 고속 코드워드를 디코딩할 수 있다. 내부 디코더(312) 이후에 외부 디코더(310)를 이용하는 것은 흐름도(330)를 구현하는 시스템의 오류 정정 용량을 증가시킬 수 있다.
즉, 외부 디코더(310)는 가능한 오류 플로어(error floors)를 제거할 수 있다. 외부 디코더(310)는 내부 디코더(312)에 비해 더 나은 성능을 제공하기 위해 사용될 수 있다. 일부 예들에서, 내부 디코더(312) 및 외부 디코더(310)는 상이한 크기의 데이터 청크에 대해 동작할 수 있다. 예를 들어, 작은 데이터 청크는 제 1 크기가 될 수 있고 정확한 코드워드는 제 2 크기가 될 수 있으며, 여기서 제 2 크기가 제 1 크기보다 크다.
FD 디코더의 복제는 정확한 코드의 체계적인 특성으로 인해 가능해진다. FD 디코더의 복제는 메모리 디바이스(304)에서 FD 디코더의 이용과, 외부 디코더(310)의 이용을 지칭한다. 정확한 코드의 체계적인 특성으로 인해, 내부 디코더(312) 및/또는 외부 디코더(310)가 오류를 정정할 기회를 제공받기 전에 메모리 디바이스(304)의 FD 디코더에 오류 정정 기회가 제공될 수 있다.
도 3의 예는 직렬 코드 연결을 사용하여 보여졌지만, 여기에 설명된 예는 내부 FD 코드를 사용하여 직렬 또는 병렬 연결로 확장될 수 있다.
도 4는 본 개시 내용의 다수의 실시예에 따른 코드워드(440)의 예를 예시한다. 코드워드(440)는 AD 데이터(442) 및 AD 패리티 비트(444)를 포함한다. AD 데이터(442)는 FD 데이터(446) 및 FD 패리티 비트(448)를 포함한다.
메모리 디바이스(예를 들어, 메모리 디바이스(304))에 데이터를 저장하기 전에, 데이터 청크(예를 들어, FD 데이터 청크(446))에 작용하는 외부 인코더(예를 들어, 외부 인코더(306))는 각각의 청크에 대응하는 FD 패리티 비트(448)를 추가함으로써 FD 코드워드에서 FD 데이터(446)의 각각의 청크를 인코딩한다. 즉, FD 데이터(446)의 청크는 FD 데이터(446) 및 FD 패리티 비트(448)를 포함하는 N 개의 FD 코드워드로 순차적으로 인코딩된다.
N개의 FD 코드워드는 내부 인코더(예를 들어, 내부 인코더(308))에 의해 N개의 AD 코드워드로 인코딩된다. 내부 인코더는 N개의 FD 코드워드를 AD 데이터(442)로 처리하며, 여기서 AD 데이터(442)의 각 청크는 N개의 FD 코드워드와 다른 코드워드이다. 내부 인코더는 AD 데이터(442)의 청크 각각에 대해 AD 패리티 비트(444)를 생성한다. AD 패리티 비트(444)는 FD 패리티 비트(448)에 의존한다.
디코딩 단계에서, FD 코드워드는 FD 디코더에 의해 잠정적으로 디코딩된다. FD 코드워드가 올바르게 디코딩되면(예: FD 코드워드에 오류가 없거나 여러 오류가 정정된 경우), 모든 FD 코드워드에 대해 유효성 플래그가 설정되고 AD 디코더가 금지된다. FD 코드워드 중 적어도 하나가 FD 디코더에 의해 정정되지 않고 FD 디코더가 오류의 존재를 감지하면, AD 디코더가 활성화되고 AD 디코더가 FD 코드워드를 처리한다.
일부 실시예에서, FD 디코더는 FD 디코더에서 오류를 정정하는 것과 관련된 대기시간을 감소시키기 위해 메모리에서 구현된다. FD 디코더는 AD 디코더와 통신하여, 디코딩 프로세스를 완료하기 위해 AD 디코더의 참여를 요청할 수 있다. 즉, FD 디코더는 디코딩 프로세스를 시작할 수 있고, FD 디코더는 유효성 플래그를 통해 AD 디코더가 디코딩 프로세스를 완료하도록 요청할 수 있다. 유효성 플래그는 데이터가 정정될 수 있음을 AD 디코더에 경고하거나 AD 디코더를 활성화하는 데 사용할 수 있다.
일부 예들에서, 직렬 연결 방식은 내부 AD 디코더로 복제될 수 있다. FE 인코더와 FD 디코더 모두가 메모리 디바이스에 구현되어 대기시간을 줄일 수 있다. FD 디코더는 FD 디코더가 데이터를 이전에 디코딩했는지 여부(예를 들어, 데이터의 오류를 정정했는지)에 기초하여 AD 디코더가 데이터를 디코딩할 수 있도록하기 위해 AD 디코더에 패리티 비트 및 유효성 플래그를 제공할 수 있다.
특정 실시예가 여기에 예시되고 설명되었지만, 당업자는 동일한 결과를 달성하기 위해 계산된 배열이 도시된 특정 실시예를 대체할 수 있다는 것을 이해할 것이다. 본 개시는 본 개시의 다양한 실시예의 적응 또는 변형을 포함하도록 의도된다. 상기 설명은 제한적인 것이 아니라 예시적인 방식으로 이루어진 것으로 이해되어야 한다. 상기 실시예의 조합 및 본 명세서에 구체적으로 설명되지 않은 다른 실시예는 상기 설명을 검토할 때 당업자에게 명백할 것이다. 본 개시의 다양한 실시예의 범위는 상기 구조 및 방법이 사용되는 다른 애플리케이션을 포함한다. 따라서, 본 개시 내용의 다양한 실시예의 범위는 첨부된 청구 범위를 참조하여, 그러한 청구 범위가 부여되는 등가물의 전체 범위와 함께 결정되어야 한다.
전술한 상세한 설명에서, 다양한 특징은 개시 내용을 간소화하기 위해 단일 실시예에서 함께 그룹화된다. 이 개시 방법은 본 개시의 개시된 실시예가 각 청구항에서 명시적으로 인용된 것보다 더 많은 특징을 사용해야 한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 다음의 청구 범위가 반영하는 바와 같이, 발명의 주제는 하나의 개시된 실시예의 모든 특징보다 적다. 따라서, 다음의 청구 범위는 상세한 설명에 통합되며, 각 청구 범위는 별도의 실시예로서 그 자체로 존재한다.
Claims (23)
- 메모리 디바이스로서,
어레이, 및
제 1 디코더를 포함하되, 상기 제 1 디코더는,
메모리 어레이로부터 입력 데이터를 수신하도록 구성되고;
입력 데이터에 대한 오류 검출과 관련된 복수의 작업을 수행하도록 구성되며, 그리고,
입력 데이터의 처리에 기초하여, 메모리 디바이스에 결합된 제어기에 의해 호스팅되는 제 2 디코더에, 출력 데이터, 유효성 플래그 및 복수의 패리티 비트를 제공하도록 구성되는, 메모리 디바이스. - 제 1 항에 있어서, 상기 제 1 디코더는 상기 입력 데이터가 오류를 포함한다고 결정하도록 더 구성되는, 메모리 디바이스.
- 제 4 항에 있어서, 상기 제 1 디코더는 상기 출력 데이터를 생성하기 위해 상기 오류를 정정하도록 더 구성되는 메모리 디바이스.
- 제 4 항에 있어서, 상기 제 1 디코더는 상기 오류를 정정하지 않는다는 결정에 기초하여 상기 입력 데이터를 상기 출력 데이터로서 전달하도록 더 구성되는, 메모리 디바이스.
- 제 4 항에 있어서, 상기 유효성 플래그는 상기 출력 데이터에서 오류가 정정되었는지 여부를 기술하는, 메모리 디바이스.
- 제 1 항 내지 제 2 항 중 어느 한 항에 있어서, 상기 복수의 패리티 비트는 상기 오류 검출을 수행하기 위해 사용되는, 메모리 디바이스.
- 제 1 항 내지 제 2 항 중 어느 한 항에 있어서, 상기 디코더는 오류 정정 코드 디코더인, 메모리 디바이스.
- 제 1 항 내지 제 2 항 중 어느 한 항에 있어서, 상기 제 2 디코더는 오류-정정 코드 디코더인, 메모리 디바이스.
- 제 1 항에 있어서, 상기 제 1 디코더는 상기 입력 데이터가 오류를 포함하지 않음을 결정하도록 더 구성되는, 메모리 디바이스.
- 제 9 항에 있어서, 상기 제 1 디코더는 상기 입력 데이터가 상기 오류를 포함하지 않는다는 결정에 기초하여 상기 입력 데이터를 상기 출력 데이터로서 제공하도록 더 구성되는, 메모리 디바이스.
- 메모리 디바이스에 결합된 제어기로서,
정확 디코딩(AD) 디코더를 포함하되, 상기 AD 디코더는,
메모리 디바이스에 의해 호스팅되는 제 1 고속 디코딩(FD) 디코더로부터 데이터, 유효성 플래그 및 패리티 비트를 수신하도록 구성되고;
유효성 플래그가 제 1 값이라는 결정에 응답하여, 데이터 및 패리티 비트를 제 2 FD 디코더에 제공하도록 구성되며;
유효성 플래그가 두 번째 값이라는 결정에 응답하여,
패리티 비트를 사용하여 데이터에 대한 오류 정정 작업을 수행하도록 구성되고,
정정된 데이터 및 패리티 비트를 제 2 FD 디코더에 제공하도록 구성되며,
상기 제 2 FD 디코더는 패리티 비트를 사용하여 데이터에 대해 오류 정정을 수행하도록 구성되는, 제어기. - 제 11 항에 있어서, 상기 AD 디코더는 상기 유효성 플래그가 상기 제 1 값을 포함하는 경우 정정된 데이터를 수신하도록 더 구성되는, 제어기.
- 제 11 항에 있어서, 상기 AD 디코더는 상기 유효성 플래그가 상기 제 2 값을 포함하는 경우 원시 데이터를 수신하도록 더 구성되는, 제어기.
- 제 11 항 내지 제 13 항 중 어느 한 항에 있어서, 상기 AD 디코더는 내부 디코더이고 상기 제 2 FD 디코더는 외부 디코더인, 제어기.
- 장치로서,
데이터 및 패리티 비트를 저장하도록 구성된 메모리 어레이; 및
데이터 및 패리티 비트를 수신하도록 구성된 고속 디코딩(FD) 디코더를 포함하되, 상기 FD 디코더는,
데이터 및 패리티 비트로부터 신드롬을 생성하도록 구성된 신드롬 계산 유닛,
오류 정정 유닛, 및
오정정 검사기 유닛을 포함하며,
상기 오류 정정 유닛은 ,
데이터를 정정하기 위한 결정에 기초하여 정정된 데이터를 생성하기 위해 신드롬 및 패리티 비트를 사용하여 데이터에 대해 오류 정정 코드를 수행하ㄷ도록 구성되고, 그리고,
제어기에 의해 호스팅되는 정확 디코딩(AD) 디코더에 데이터 및 정정된 데이터 중 적어도 하나를 제공하도록 구성되며,
상기 오정정 검사기 유닛은,
오류 정정 유닛이 데이터 또는 정정된 데이터를 AD 디코더에 제공하는지 여부에 기초하여 유효성 플래그를 생성하도록 구성되고, 그리고,
AD 디코더에 유효성 플래그를 제공하도록 구성되는, 장치. - 제 15 항에 있어서, 상기 오정정 검사기 유닛은 상기 신드롬 계산 유닛에 의해 제공되는 신드롬에 기초하여 상기 유효성 플래그를 생성하도록 더 구성되는, 장치.
- 제 15 항 내지 제 16 항 중 어느 한 항에 있어서, 상기 오정정 검사기 유닛은 상기 오류 정정 유닛이 상기 데이터 또는 상기 정정된 데이터 중 적어도 하나를 AD 디코더에 제공했는지 여부를 설명하는 메시지를 상기 오류 정정 유닛으로부터 수신하도록 더 구성되는, 장치.
- 제 15 항 내지 제 16 항 중 어느 한 항에 있어서, 상기 FD 디코더는 패리티 비트 라인을 더 포함하는, 장치.
- 고속 디코딩(FD) 디코더를 사용하여 오류 정정 코드를 수행하는 방법으로서,
메모리 디바이스에 의해 호스팅되는 FD 디코더를 사용하여, 페이지 상에서 제 1 오류 정정 코드를 수행할지 여부를 결정하는 단계;
제 1 오류 정정의 수행 결정에 기초하여,
페이지 및 패리티 비트로부터 정정된 페이지를 생성하는 단계; 및
제 1 유효성 플래그를 생성하는 단계;
제 1 유효성 플래그 및 정정된 페이지를 마이크로제어기에 제공하는 단계; 및
제 1 오류 정정 코드를 수행하지 않는다는 결정에 기초하여,
제 2 유효성 플래그를 생성하는 단계;
제 2 유효성 플래그, 페이지 및 패리티 비트를 마이크로제어기에 제공하는 단계를 포함하는, 오류 정정 코드 수행 방법. - 제 19 항에 있어서, 상기 제 2 유효성 플래그를 수신함에 기초하여, 상기 마이크로제어기에 의해 호스팅되는 정확 디코딩(AD) 디코더를 사용하여 상기 패리티 비트를 이용하여 상기 페이지에서 제 2 오류 정정 코드를 수행하는 단계를 더 포함하는, 오류 정정 코드 수행 방법.
- 제 19 항에 있어서, 상기 제 1 유효 플래그를 수신함에 기초하여, 상기 페이지에서 제 2 오류 정정 코드의 수행을 배제하는 단계를 더 포함하는, 오류 정정 코드 수행 방법.
- 제 19 항 내지 제 21 항 중 어느 한 항에 있어서, FD 디코더는 대수 디코딩을 이용하는, 오류 정정 코드 수행 방법.
- 제 19 항 내지 제 21 항 중 어느 한 항에 있어서, 상기 FD 디코더는 조합 로직을 이용하는, 오류 정정 코드 수행 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/958,496 | 2018-04-20 | ||
US15/958,496 US10606694B2 (en) | 2018-04-20 | 2018-04-20 | Error correction using hierarchical decoders |
PCT/US2019/025161 WO2019204017A1 (en) | 2018-04-20 | 2019-04-01 | Error correction using hierarchical decoders |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200133808A true KR20200133808A (ko) | 2020-11-30 |
KR102414202B1 KR102414202B1 (ko) | 2022-06-27 |
Family
ID=68236392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207032589A KR102414202B1 (ko) | 2018-04-20 | 2019-04-01 | 계층적 디코더를 이용한 오류 정정 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10606694B2 (ko) |
JP (1) | JP7157516B2 (ko) |
KR (1) | KR102414202B1 (ko) |
CN (1) | CN111989746B (ko) |
TW (1) | TWI697908B (ko) |
WO (1) | WO2019204017A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023101097A1 (ko) * | 2021-12-03 | 2023-06-08 | 서울대학교산학협력단 | 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220374152A1 (en) * | 2021-05-21 | 2022-11-24 | Samsung Electronics Co., Ltd. | Low latency ssd read architecture with multi-level error correction codes (ecc) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110111108A (ko) * | 2010-04-02 | 2011-10-10 | 삼성전자주식회사 | 반도체 장치 및 이의 복호 방법 |
KR20140108398A (ko) * | 2013-02-26 | 2014-09-11 | 삼성전자주식회사 | 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 |
US20150113311A1 (en) * | 2013-10-18 | 2015-04-23 | Sony Corporation | Storage control apparatus, storage apparatus, information processing system, and storage control method therefor |
US20170163287A1 (en) * | 2012-11-08 | 2017-06-08 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689727A (en) * | 1994-09-08 | 1997-11-18 | Western Digital Corporation | Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution |
US7043679B1 (en) | 2002-06-27 | 2006-05-09 | Advanced Micro Devices, Inc. | Piggybacking of ECC corrections behind loads |
KR100826511B1 (ko) * | 2006-06-27 | 2008-05-02 | 삼성전자주식회사 | 스터핑 바이트를 이용하여 에러정정 능력을 높일 수 있는장치와 방법 |
JP2009271956A (ja) * | 2008-04-30 | 2009-11-19 | Toshiba Corp | データ復号装置,データ再生装置,およびデータ復号方法 |
US8176399B2 (en) | 2008-05-02 | 2012-05-08 | Lsi Corporation | Using short burst error detector in a queue-based system |
JP2010033181A (ja) * | 2008-07-25 | 2010-02-12 | Toshiba Microelectronics Corp | エラー訂正回路、および半導体メモリシステム |
KR20110073932A (ko) * | 2009-12-24 | 2011-06-30 | 주식회사 하이닉스반도체 | Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법 |
CN103155421B (zh) * | 2011-01-14 | 2016-11-09 | 马维尔国际贸易有限公司 | Ldpc多解码器架构 |
US8645789B2 (en) * | 2011-12-22 | 2014-02-04 | Sandisk Technologies Inc. | Multi-phase ECC encoding using algebraic codes |
US8656257B1 (en) * | 2012-01-11 | 2014-02-18 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with concatenated error correction codes |
CN103247347B (zh) * | 2012-02-11 | 2017-07-25 | 三星电子株式会社 | 提供智能存储器架构的方法和系统 |
CN103839594A (zh) * | 2012-11-27 | 2014-06-04 | 建兴电子科技股份有限公司 | 固态储存装置及其联合编解码方法 |
US9164832B2 (en) * | 2013-02-27 | 2015-10-20 | Seagate Technology Llc | ECC management for variable resistance memory cells |
CN105164646B (zh) * | 2013-04-30 | 2019-06-07 | 西部数据技术公司 | 具有早期解码终止检测的解码器 |
US9148176B2 (en) * | 2013-06-24 | 2015-09-29 | Micron Technology, Inc. | Circuits, apparatuses, and methods for correcting data errors |
US9524242B2 (en) | 2014-01-28 | 2016-12-20 | Stmicroelectronics International N.V. | Cache memory system with simultaneous read-write in single cycle |
KR102347418B1 (ko) * | 2015-09-25 | 2022-01-06 | 에스케이하이닉스 주식회사 | 데이터 처리 장치 및 그것의 동작 방법 |
US9912355B2 (en) | 2015-09-25 | 2018-03-06 | Intel Corporation | Distributed concatenated error correction |
US10193576B2 (en) * | 2015-10-30 | 2019-01-29 | Toshiba Memory Corporation | Memory system and memory device |
KR20170068681A (ko) * | 2015-12-09 | 2017-06-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9786362B1 (en) * | 2016-08-26 | 2017-10-10 | Arm Limited | Memory circuit and data processing system |
US10475524B2 (en) * | 2016-09-15 | 2019-11-12 | Apple Inc. | Recovery of data read from memory with unknown polarity |
-
2018
- 2018-04-20 US US15/958,496 patent/US10606694B2/en active Active
-
2019
- 2019-04-01 WO PCT/US2019/025161 patent/WO2019204017A1/en active Application Filing
- 2019-04-01 KR KR1020207032589A patent/KR102414202B1/ko active IP Right Grant
- 2019-04-01 JP JP2020557901A patent/JP7157516B2/ja active Active
- 2019-04-01 CN CN201980026838.9A patent/CN111989746B/zh active Active
- 2019-04-18 TW TW108113525A patent/TWI697908B/zh active
-
2020
- 2020-03-30 US US16/834,198 patent/US11237901B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110111108A (ko) * | 2010-04-02 | 2011-10-10 | 삼성전자주식회사 | 반도체 장치 및 이의 복호 방법 |
US20170163287A1 (en) * | 2012-11-08 | 2017-06-08 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
KR20140108398A (ko) * | 2013-02-26 | 2014-09-11 | 삼성전자주식회사 | 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 |
US20150113311A1 (en) * | 2013-10-18 | 2015-04-23 | Sony Corporation | Storage control apparatus, storage apparatus, information processing system, and storage control method therefor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023101097A1 (ko) * | 2021-12-03 | 2023-06-08 | 서울대학교산학협력단 | 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN111989746A (zh) | 2020-11-24 |
US10606694B2 (en) | 2020-03-31 |
EP3782156A1 (en) | 2021-02-24 |
TWI697908B (zh) | 2020-07-01 |
US11237901B2 (en) | 2022-02-01 |
TW201944426A (zh) | 2019-11-16 |
US20200226020A1 (en) | 2020-07-16 |
KR102414202B1 (ko) | 2022-06-27 |
JP7157516B2 (ja) | 2022-10-20 |
US20190324848A1 (en) | 2019-10-24 |
CN111989746B (zh) | 2024-06-18 |
WO2019204017A1 (en) | 2019-10-24 |
JP2021520555A (ja) | 2021-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9754684B2 (en) | Completely utilizing hamming distance for SECDED based ECC DIMMs | |
US11409601B1 (en) | Memory device protection | |
US11942175B2 (en) | Memory device protection using interleaved multibit symbols | |
US11714704B2 (en) | Modified checksum using a poison data pattern | |
US20230100557A1 (en) | Host-based error correction | |
US11237901B2 (en) | Error correction using hierarchical decoders | |
US11775382B2 (en) | Modified parity data using a poison data unit | |
US11714558B2 (en) | Predictive memory management | |
US11256565B2 (en) | Transaction metadata |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |