KR20090028507A - 비휘발성 메모리 에러 보정 시스템 및 방법 - Google Patents

비휘발성 메모리 에러 보정 시스템 및 방법 Download PDF

Info

Publication number
KR20090028507A
KR20090028507A KR1020087027702A KR20087027702A KR20090028507A KR 20090028507 A KR20090028507 A KR 20090028507A KR 1020087027702 A KR1020087027702 A KR 1020087027702A KR 20087027702 A KR20087027702 A KR 20087027702A KR 20090028507 A KR20090028507 A KR 20090028507A
Authority
KR
South Korea
Prior art keywords
data
payload
metadata
error correction
ecc
Prior art date
Application number
KR1020087027702A
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 시그마텔, 인크.
Publication of KR20090028507A publication Critical patent/KR20090028507A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Abstract

비휘발성 메모리는 제 1 페이로드 데이터 영역에 연관된 제 1 리던던시 메모리 및 제 1 페이로드 데이터를 갖는다. 제 1 리던던트 메모리 영역은 제 1 부분, 제 2 부분, 및 제 3 부분을 갖는다. 제 1 부분은 제 1 페이로드 데이터 영역에 연관된 제 1 페이로드 에러 보정 코드(ECC) 데이터를 갖는다. 제 2 부분은 제 1 페이고드 데이터 영역과 연관된 제 1 메타 데이터를 포함한다. 제 3 부분은 제 1 메타데이터에 연관된 제 1 메타데이터 ECC 데이터를 포함한다.
Figure P1020087027702
비휘발성 메모리, 페이로드 데이터 영역, 리던던시 메모리, 페이로드 데이터, 에러 보정 코드 데이터, 메타데이터

Description

비휘발성 메모리 에러 보정 시스템 및 방법{NON-VOLATILE MEMORY ERROR CORRECTION SYSTEM AND METHOD}
본 발명은 일반적으로 메모리 시스템들에 관한 것으로, 특히 에러 보정을 갖는 비휘발성 메모리 시스템들에 관한 것이다.
셀룰러 폰들, 디지털 뮤직 플레이어, 썸 드라이브들(thumb drives) 및 다른 휴대용 디바이스들과 같은 가전 디바이스들(consumer electronic devices)은 압축된 디지털 오디오 및 비디오 데이터를 디코딩하기 위한 알고리즘 및 사용자 인터페이스를 디스플레이하기 위한 알고리즘과 같은 더욱더 복잡한 알고리즘들을 실행한다. 이들 알고리즘들이 복잡성이 증가함에 따라, 이러한 알고리즘을 저장하기 위한 메모리의 사이즈 또한 증가한다.
제조사들이 점점 NAND 플래시 및 NOR 플래시 메모리 디바이스들을 포함하는 플래시 메모리 디바이스들과 같은 비휘발성 메모리 디바이스들에 착수하고 있다. 전형적으로, 비휘발성 메모리 디바이스들은 메모리 페이지들(memory pages) 및 메모리 블록들과 같은 로직 유닛에 데이터를 저장한다. 종종, 데이터는 특정 페이지에 기록되고 그 페이지 내의 위치로부터 판독될 수 있다. 일반적으로, 블록은 삭제될 수 있는 데이터의 가장 작은 유닛이다.
전형적인 플래시 메모리 디바이스에서, 각 페이지는 페이로드 데이터 영역(payload data area) 및 때때로 오버헤드 영역 또는 메타데이터 영역(metadata area)으로 불리는 리던던트 메모리 영역(redundant memory area)을 갖는다. 페이지의 리던던트 메모리 영역은 페이지에 관련된 정보, 페이지 내의 데이터에 관한 정보, 및 페이지에 대한 에러 보정 절차와 연관된 데이터를 저장한다.
플래시 메모리와 같은 비휘발성 메모리 디바이스들에 데이터를 액세스 및 저장하는 것은 전형적으로 가상 어드레싱(virtual addressing)을 사용한다. 비휘발성 메모리 디바이스들은 용도에 따라 사용할 수 있고, 그러한 것으로서, 고체 상태 비휘발성 메모리 디바이스 내의 섹터들은 에러가 없는 데이터를 저장하기 위해 용량을 잃을 수 있다. 불량 섹터들의 분류(cataloging) 및 섹터 맵들(sector maps)의 생성은 전형적으로 데이터 섹터를 판독하고 특정 코드 값들에 대해 상기 시스템 데이터를 체크함으로써 수행된다. 일반적으로, 데이터 섹터의 데이터와 연관된 에러 보정 코드(ECC)는 데이터의 잡음을 보정하는데 이용하기 위해 리던던트 데이터 영역에 포함된다. 예를 들어, 데이터가 메모리에 기록될 때, ECC는 기록될 데이터에 기초하여 계산되고, ECC는 (예를 들어, 리던던트 메모리 영역의) 데이터와 함께 메모리에 저장된다. 데이터가 액세스될 때, 액세스된 데이터로부터 새로운 ECC가 계산되고 계산된 ECC는 상기 데이터와 함께 저장된 상기 ECC와 비교된다. 계산된 ECC와 저장된 ECC 사이에 차이가 있으면, 데이터는 오류가 있을 수 있고 섹터는 불량일 수 있다. 많은 예들에서, ECC들은 후속 메모리 시스템들 또는 프로세서들로의 전송 전에 데이터를 보정하기 위해 이용될 수 있다.
ECC 방법들이 메모리 에러들을 해결하지만, 비휘발성 메모리에서 ECC 데이터의 판독 및 오류가 있는 데이터에 에러 보정을 수행하는 프로세스는 시간 소비적인 프로세스이다. 이에 따라, 비휘발성 메모리를 위한 개선된 에러 보정 시스템 및 방법이 필요하다.
일 실시예에서, 비휘발성 메모리는 제 1 페이로드 데이터 영역 및 제 1 페이로드 데이터 영역과 연관된 제 1 리던던트 메모리 영역을 갖는다. 제 1 리던던트 메모리 영역은 제 1 부분, 제 2 부분, 및 제 3 부분을 갖는다. 제 1 부분은 제 1 페이로드 데이터 영역과 연관된 제 1 페이로드 에러 보정 코드(ECC) 데이터를 포함한다. 제 2 부분은 제 1 페이로드 데이터 영역과 연관된 제 1 메타데이터를 포함한다. 제 3 부분은 제 1 메타데이터와 연관된 제 1 메타데이터 ECC 데이터를 포함한다.
다른 실시예에서, 시스템은 비휘발성 메모리 및 에러 보정 모듈을 갖는다. 비휘발성 메모리는 페이로드 데이터 영역과 연관된 페이로드 에러 보정 코드(ECC) 데이터 및 페이로드 데이터 영역과 연관된 메타데이터 ECC 데이터를 갖는다. 에러 보정 모듈은 메타데이터 ECC 데이터 수신에 응답하여 에러 보정을 수행하는 로직을 포함한다.
다른 실시예에서, 데이터 페이로드와 관련된 데이터 보호 코드(data protection code)가 생성된다. 데이터 보호 코드에 관련된 메타데이터 보호 코드가 생성된다. 데이터 페이로드는 비휘발성 메모리의 페이로드 데이터 영역에 저장되고 데이터 보호 코드 및 메타데이터 보호 코드는 상기 비휘발성 메모리의 리던던트 데이터 영역에 저장된다.
본 발명은 첨부된 도면들을 참조함으로써 더 잘 이해될 것이고, 본원의 특징 및 장점들이 당업자에게 명백하다.
도 1은 프로세싱 시스템의 특정한 예시적인 실시예의 일부의 블록도.
도 2는 도 1의 시스템과 같은, 프로세싱 시스템에 이용하기 위한 분할된 비휘발성 메모리의 블록도.
도 3은 도 2의 비휘발성 메모리의 리던던트 메모리 영역부의 선택된 콘텐트들을 예시하는 개괄적인 도면.
도 4는 도 1의 시스템과 같은, 프로세싱 시스템에 이용하기 위한 에러 보정 모듈의 특정 실시예의 블록도.
도 5는 도 1의 시스템과 같은, 프로세싱 시스템에 이용하기 위한 범용 메모리 인터페이스 모듈 및 에러 보정 모듈의 특정 실시예의 블록도.
도 6은 비휘발성 메모리에 데이터를 기록하는 방법의 흐름도.
도 7은 비휘발성 메모리로부터 데이터를 판독하는 방법의 흐름도.
상이한 도면들에서 동일한 참조 번호들의 이용은 유사하거나 동일한 아이템들을 나타낸다.
도 1은 특정 예시적인 프로세싱 시스템(100)의 일부의 블록도이다. 시스 템(100)은 중앙 처리 유닛(CPU; 112), 비휘발성 메모리(104), 범용 메모리 인터페이스(GPMI; 106), 에러 검출/보정 모듈(108), 및 캐시 또는 랜덤 액세스 메모리(RAM; 110)와 같은 휘발성 메모리를 포함한다. 에러 보정된 데이터(112) 및 비휘발성 메모리(104)로부터 전달된 데이터(114)는 RAM(110)에 저장될 수 있다. CPU(102), 비휘발성 메모리(104), GPMI(106), 에러 검출/보정 모듈(108), 및 RAM(110)은 통신 버스(116)를 통해 통신할 수 있게 결합된다.
일반적으로, CPU(102)는 소프트웨어 프로그램들과 같은 컴퓨터 판독가능 명령들을 프로세스한다. 동작 동안, CPU(102)는 특정 데이터에 대한 액세스를 요청하기 위해 RAM(110) 및 비휘발성 메모리(104)로 메모리 액세스 요청들을 생성한다. GPMI(106)는 메모리 액세스 요청들을 수신하고, 요청된 페이로드 데이터를 검색하고, 페이로드 데이터 및 연관된 에러 검출 코드 및 에러 보정 코드(ECC) 데이터를 에러 검출/보정 모듈(108)에 제공할 수 있다. 에러 검출/보정 모듈(108)은 페이로드 데이터 내의 에러들의 위치들 및 값들을 식별하기 위해 페이로드 데이터를 프로세스할 수 있다. 에러 검출/보정 모듈(108)은 식별된 위치들 및 값들에 기초하여 에러들을 보정할 수 있고 에러 보정된 데이터(112)를 RAM(110)에 저장할 수 있다. 구현에 따라, GPMI(106)는 요청된 데이터를 RAM(110)에 저장을 위해 버스(116)를 통해 전달할 수 있다. 에러 검출/보정 모듈(108)은 에러 검출 및 GPMI(106)에 의해 제공된 ECC 데이터에 기초하여 프로세싱하기 위해 RAM(110)으로부터 전달된 데이터(114)를 로딩할 수 있다.
일반적으로, 비휘발성 메모리(104)는 데이터 페이로드 영역 및 리던던트 데 이터 영역으로 분할될 수 있다. 페이로드 데이터는 데이터 페이로드 영역에 저장될 수 있고, 페이로드 데이터와 연관된 에러 검출 및 에러 보정 데이터는 리던던트 데이터 영역에 저장될 수 있다. 부가적으로, 에러 검출 및 에러 보정 데이터에 관련된 메타데이터 에러 보정 데이터는 리던던트 데이터 영역에 저장될 수 있거나 특정한 구현에 따라, 메타데이터 리던던트 데이터 영역에 저장될 수 있다.
도 2는 도 1의 프로세싱 시스템과 같은 프로세싱 시스템과 사용하기 위한 분할 비휘발성 메모리(104)를 도시한다. 비휘발성 메모리(104)는 페이로드 데이터 영역(204)과 리던던트 데이터 영역(206)으로 분할된다. 페이로드 데이터 영역(204)은 대표적 페이로드 영역들(208, 210, 212, 214)을 포함한다. 특정 실시예에서, 페이로드 영역들(208-214)의 각각은 페이로드 데이터의 512 바이트들까지 포함할 수 있다.
리던던트 데이터 영역(206)은 개별 페이로드 영역들(208, 210, 212, 214) 각각과 연관되는 리던던트 데이터를 포함한다. 도시된 것과 같은 리던던트 데이터 영역(206)은 패리티 영역들(216, 220, 224, 228, 232)과 신드롬 영역들(218, 222, 226, 230)을 포함한다. 특정 실시예에서, 패리티 영역들(216, 220, 224, 228, 232) 각각과 신드롬 영역들(218, 222, 226, 230) 각각은 페이로드 영역들(208, 210, 212, 214) 중 하나의 페이로드 데이터에 관련된 정보의 12 바이트들까지 포함한다.
예를 들어, 페이로드 영역(208)은 페이로드 데이터의 512 바이트들을 포함한다. 패리티 영역(216)과 신드롬 영역(218) 각각은 패리티 데이터의 12 바이트들과 신드롬 데이터의 12 바이트들을 각각 포함한다. 패리티 데이터의 12 바이트들과 신드롬 데이터의 12 바이트들은 페이로드 영역(208)의 페이로드 데이터의 512 바이트들과 연관된다. 특정 실시예에서, 패리티 영역들(216, 220, 224, 228, 232) 각각은 정렬 패딩의 3 개의 추가 바이트들로 8 개의 9-비트 심볼들을 포함한다. 심볼 영역들(218, 222, 226, 230, 234) 각각은 정렬 패딩의 3 개의 추가 바이트들로 8 개의 9-비트 심볼들을 포함한다.
일반적으로, 패리티 영역(232)에 저장된 메타데이터 패리티 데이터 그리고 신드롬 데이터(234)에 저장된 계산된 메타데이터 신드롬 데이터는 패리티 영역들(216, 220, 224, 228)의 패리티 데이터 그리고 신드롬 영역들(218, 222, 226, 230)의 신드롬 데이터와 각각 연관된다. 추가로, 리던던트 데이터 영역(206)은 보조 저장소(236)의 20 바이트들을 포함한다. 메타데이터 패리티 데이터와 메타데이터 신드롬 데이터는 패리티 영역들(216, 220, 224, 228)과 신드롬 영역들(218, 222, 226, 230)에 저장된 데이터의 패리티 데이터와 신드롬 데이터를 나타낸다. 일 실시예에서, 패리티 데이터와 신드롬 데이터는 페이로드 데이터의 메타데이터를 나타낸다. 패리티 영역(232)과 신드롬 영역(234)에 저장된 데이터는 메타데이터의 메타데이터를 나타낸다.
일반적으로, 도 2의 비휘발성 메모리(104)의 분할들과 페이로드 영역들(204, 206)은 대표적 2K 페이지에 대한 시스템 메모리 풋프린트를 나타낸다. 에러 검출/보정 모듈(108)의 신드롬 생성 모듈(도 4에 도시됨)로부터 데이터는 신드롬 영역(234)과 보조 저장소(236)에 저장된 정보의 32 비트들을 포함한다.
대안적인 실시예에서, 분할들과 페이로드 영역들은 4K 페이지 크기에 대해 조절될 수 있다. 예를 들어, 데이터 페이로드 영역(204)은 8 개의 페이로드 영역들을 포함하도록 확장될 수 있고, 이들 각각은 약 512 바이트들의 정보를 갖는다. 리던던트 데이터 영역(206)의 패리티 영역들(216, 220, 224, 228)의 각각 그리고 신드롬 영역들(218, 222, 226, 230)의 각각은 패리티 데이터의 20 바이트들과 신드롬 데이터의 20 바이트들을 저장하도록 유사하게 확장될 수 있다. 이 경우, 패리티 데이터 영역(232)과 신드롬 데이터 영역(234)은 패리티 영역들(216, 220, 224, 228)과 신드롬 영역들(218, 222, 226, 230)과 연관된 패러티와 신드롬 데이터의 12 바이트들을 포함할 수 있지만, 보조 데이터 영역(236)의 보조 데이터는 증가될 수 있다. 한 경우, 보조 데이터는 약 정보의 68 바이트들로 증가된다. 페이로드 패러티/신드롬 영역들은 그러므로 정렬 패딩(alignment padding)의 2 개의 바이트들로 16 개의 9-비트 심볼들로 구성될 수 있고, 보조 패러티/신드롬 영역(236)은 정렬 패딩의 3 바이트들로 8 개의 9-비트 심볼들로 구성될 수 있다. 다른 실시예에서, 메타데이터 ECC 데이터는 분리된 데이터 영역에 저장될 수 있다.
다른 실시예에서, 리던던트 데이터 영역(206)과 페이로드 데이터 영역(204)은 분산될 수 있다. 이 경우, 패리티 영역들(216, 220, 224, 228)과 신드롬 영역들(218, 222, 226, 230)은 비연속적 메모리 어드레스 위치들에 있을 수 있다. 예를 들면, 페이로드 데이터 영역(204)의 페이로드 데이터는 리던던트 데이터 영역들(206)의 리던던트 데이터 파티션들과 산재될 수 있는, 다양한 메모리 어드레스들에서 개별 페이로드 분할들에 저장될 수 있다. 예를 들면, 페이로드 영역(208), 연관된 패리티 영역(216), 및 신드롬 영역(218)은 비휘발성 메모리(104) 내의 인접 메모리 분할들에 저장될 수 있다.
일반적으로, 패러티와 신드롬 데이터는 페이로드 데이터 내의 데이터 에러들을 검출하여 보정하기 위해 에러 검출/보정 모듈(108)에 의해 사용될 수 있는 정보를 제공한다. 더욱이, 패러티/신드롬 데이터가 에러들을 포함하면, 메타데이터 ECC 데이터는 그런 에러들을 검출하여 보정하기 위해 에러 검출/보정 모듈(108)에 의해 사용될 수 있다.
도 3은 비휘발성 메모리(104)의 리던던트 메모리 영역(206)의 일부의 선택된 컨텐트를 도시한다. 일반적으로, 리던던트 메모리 영역(206)은, 도 2에 도시된 것처럼, 페이로드 패리티 데이터와 페이로드 신드롬 데이터를 포함할 수 있는, 에러 보정 데이터(302)를 포함한다. 추가로, 리던던트 메모리 영역(206)은, 메타데이터 패리티 데이터와 메타데이터 신드롬 데이터를 포함할 수 있는, 에러 보정 코드(ECC) 데이터(304)를 포함한다. 추가로, 리던던트 메모리 영역(206)은 논리 어드레스 정보(306), 데이터 블록 상태 정보(308), 주기적 리던던시 검사(cyclic redundancy check; CRC) 데이터(310), 및 메타데이터와 연관된 다른 데이터(312)를 포함할 수 있다.
일반적으로, 페이로드 데이터는 비휘발성 메모리의 페이로드 데이터 영역에 저장되고, 페이로드 데이터와 연관된 리던던트 데이터는 비휘발성 메모리의 리던던트 데이터 영역에 저장된다. 리던던시 데이터는 제 1 페이로드 데이터 영역과 연관된 제 1 페이로드 에러 보정 코드(ECC) 데이터, 및 제 1 페이로드 데이터 영역과 연관된 제 1 메타데이터를 포함한다. 제 1 메타데이터와 연관된 메타데이터 ECC 데이터는 또한 리던던트 데이터 영역에 저장될 수 있다. 메타데이터 ECC 데이터는 메모리로부터 페이로드 데이터를 검색할 필요가 없이, 검색되어 리던던트 데이터에서 에러들을 보정하기 위해 사용될 수 있다. 제 1 메타데이터는 주기적 리던던시 검사(CRC) 데이터, 또는 다른 유형들의 에러 검출 데이터를 포함할 수 있다. 대안적으로, 제 1 메타데이터는, 페이로드 데이터와 연관된 메타데이터 또는 페이로드 데이터의 에러를 보정하기 위해 에러 보정 모듈에 의해 사용될 수 있는, 에러 신드롬을 포함할 수 있다.
도 4는, 도 1의 시스템(100)과 같이, 프로세싱 시스템과 사용하기 위해 에러 검출/보정 모듈(108)의 특정 실시예의 블록도이다. 에러 검출/보정 모듈(108)은 신드롬 생성 모듈(402), 에러 방정식 해결기 및 평가기(406), 에러 보정 유닛(407), 그리고 AHB 버스 마스터 중개자 및 제어기(408)를 포함한다. AHB 버스 마스터 중개자 및 제어기(408)는 신드롬 검색 및 에러 보정에 대한 액세스 요청들에 대해 가중된 계층적 중개를 수행한다.
일반적으로, AHB 버스 마스터 중개기 및 제어기(408)는 시스템(100)의 다른 모듈들 및 구성성분들과 통신하기 위해 버스(116)에 에러 검출/보정 모듈(108)을 결합시킨다. 일반적으로, AHB 버스 마스터 중개기 및 제어기(408)는 버스트(burst) 동작들, 고정된 우선순위 중개 등을 수행하여 데이터 트랜잭션들에 대한 높은 대역폭과 낮은 지연을 제공한다. 더욱이, AHB 버스 마스터 중개기 및 제어기(408)는 NAND 인터페이스(GPMI(106))로부터 스톨들(stalls)을 제한한다.
일반적으로, 신드롬 생성 모듈(402)은 범용 메모리 인터페이스(general purpose memory interface;GPMI;106)를 통해 비휘발성 메모리(104)로부터 데이터 블록들을 수신한다. 데이터 블록들은 고정된 양의 페이로드 데이터와 연관된 고정된 양의 페이로드 데이터와 패리티 데이터를 포함할 수 있다. 신드롬 생성 모듈(402)은 또한 데이터 블록과 연관된 제어 정보를 수신할 수 있다. 신드롬 생성 모듈(402)은 페이로드 및 패리티 데이터로부터 신드롬 데이터를 계산한다. 신드롬 생성 모듈(402)은 버스 마스터 중개기 및 제어기(408)로 페이로드 데이터, 패리티 데이터, 및 계산된 신드롬들을 제공한다.
버스 마스터 중개기 및 제어기(408)는 페이로드 데이터, 패리티 데이터, 계산된 신드롬 정보, 및 제어 정보를 수신하기 위해 비동기 선입선출(first in first out;FIFO)을 포함할 수 있다. 더욱이, 버스 마스터 중개기(408)는, FIFO 레지스터가 채워진 때, 신드롬 생성 모듈(402)로 흐름 제어 신호를 제공할 수 있다.
대안적으로, 버스 마스터 중개기 및 제어기(408) 및 에러 방정식 해결기 및 평가기(406)가 에러 프로세싱을 위해 이용가능할 때까지, 신드롬 생성 모듈(402)은, 도 1의 RAM(110)과 같이, 시스템 메모리 또는 다른 메모리 위치에 페이로드 데이터, 패리티 데이터, 신드롬 정보, 및 제어 정보를 저장할 수 있다.
에러 방정식 해결기(error equation solver) 및 평가기(evaluator)(406)는 버스 마스터 중개기(bus master arbiter) 및 제어기(408)로부터 페이로드 데이터(payload data)의 신드롬들(syndromes)(410)을 수신한다. 에러 방정식 해결기 및 평가기(406)는 신드롬들(410)을 처리하여 심볼 인덱스(symbol index)(412) 및 심볼 마스크(414)를 생성한다. 심볼 인덱스(412)는 하나 이상의 에러들을 포함하는 심볼들을 식별하고, 심볼 마스크(414)는 에러를 보정하도록 보완되어야(complemented) 하는 심볼내의 특정 비트들을 나타낸다. 에러 방정식 해결기 및 평가기(406)는 버스 마스터 중개기 및 제어기(408)가 다음 세트의 신드롬들(410)을 제공할 수 있도록, 프로세싱이 완료될 때 버스 마스터 중개기 및 제어기(408)를 통지한다. 에러 방정식 해결기 및 평가기(406)는 에러 인덱스들(412) 및 마스크들(414)의 쌍들을 에러 보정 유닛(error correction unit)(407)에 제공하는데, 에러 보정 유닛은 버스 마스터 중개기 및 제어기(408)를 통해서 특정 비트 에러들을 보완한다. 에러 방정식 해결기 및 평가기(406)는 또한 얼마나 많은 보정들이 요구가 되는지를 나타내는 표시와 페이로드 데이터는 버스 마스터 중개기 및 제어기(408)에 교정이 불가능하다는 표시를 제공할 수 있다.
일반적으로, 신드롬 생성 모듈(syndrome generation module)(402)이 에러들을 포함하는 것으로서 데이터의 블록을 마킹(marking)한다면, 버스 마스터 중개기 및 제어기(408)는 키 방정식 해결기(key equation solver)를 통해서 에러 보정을 스케줄링(scheduling)한다. 따라서, 신드롬 생성 모듈(402)은 데이터의 블록들 상에서 에러 검출을 수행하고, 에러 보정 프로세스는 단지 에러들이 감지될 때, 에러 방정식 해결기 및 평가기(406)에 의해서 수행된다.
버스 마스터 중개기 및 제어기(408)는 에러 인덱스 및 에러 마스크를 이용하여 메모리 블록 내의 데이터 비트들을 보완하도록 적응될 수 있다. 보정된 데이터는 시스템 메모리, 캐시 메모리(cache memory) 또는 RAM 메모리와 같은 일시적인 메모리, 비휘발성 메모리(104)와 같은 비휘발성 메모리, 및/또는 이들의 임의의 조합에 저장될 수 있다.
일반적으로, 에러 방정식 해결기 및 평가기(406)는 데이터의 보정가능한 블록에 대해 에러 인덱스(412) 및 에러 마스크(414)를 제공할 수 있고, 데이터의 한 블록은 n-심볼들과 2t-패리티 심볼들(n-symbols minus 2t-parity symbols)의 차를 포함한다. n-심볼들은 심볼들(예를 들면, 도 2의 페이로드 데이터 영역들에서 512 심볼들과 같은)에서 블록 크기(size)를 나타내고, 심볼(t)는 교정가능한 에러들의 수를 나타낸다. 일 실시예에서, 512 바이트 블록내의 보정가능한 에러들의 수는 4 에러들일 수 있다. 다른 실시예에서, 512 바이트 블록내의 보정가능한 에러들의 수는 8 에러들일 수 있다. 이용된 에러 보정 결과들에 따라, 더 많은 또는 더 적은 수의 에러들이 보정될 수 있다.
신드롬 생성 모듈(402)은 2t 신드롬들을 계산한다. 에러 방정식 해결기 및 평가기(406)는 2t 알려지지 않은 변수들로 한 세트의 2t 선형 방정식들을 생성한다. 에러 방정식 해결기 및 평가기(406)는 유클리드의 호제법(Euclidean algorithm)을 이용하여 상기 세트의 방정식들을 해석하는데, 이는 2*t차(예를 들면, x8 또는 x16)의 특별한 다항식을 2t 신드롬들로부터 형성된 신드롬 다항식으로 나눈다. 일단 나눗셈의 결과가 보정가능한 에러들 (t)의 수보다 적거나 또는 같은 나머지의 차수이면, 에러 방정식 해결기 및 평가기(406)는 알고리즘을 종료하고 에러 인덱스(412) 및 에러 마스크(414)를 결정하기 위해 에러 평가기 다항식(error evaluator polynomial) 및 에러 로케이터 다항식(error locator polynomial)을 생성한다.
도 5는 도 1의 시스템(100)과 같은 프로세싱 시스템으로 이용을 위해 에러 보정 모듈 및 범용 메모리 인터페이스(general purpose memory interface; GPMI) 모듈을 가지는 에러 보정 시스템(500)의 일 실시예의 블록도이다. 시스템(500)은 범용 메모리 인터페이스(GPMI) 병렬 입력/출력(502), 신드롬 생성기(402), 에러 보정 모듈(108), 버스 마스터 중개기 및 제어기(408), 범용 메모리 인터페이스 및 계수기들(504), 비동기식 선입선출(first input first output; FIFO) 레지스터(506), 및 버스(bus)(116)을 포함한다. GPMI 병렬 입력/출력(502)은 통신적으로 GPMI 및 계수기들(504)들에 결합되고 신드롬 생성기(402)에 결합된다. 부가적으로, GPMI 병렬 입력/출력(502)은 비휘발성 메모리(104)에 결합될 수 있다.
신드롬 생성기(402)는 비동기식 FIFO 레지스터(506)와 결합되고, GPMI 및 계수기들(504)에 결합된다. 비동기식 FIFO 레지스터(506)는 또한 GPMI 및 계수기들(504)과 연결되고 버스 마스터 중개기 및 제어기(408)와 연결된다. GPMI 및 계수기들(504)은 버스 마스터 중개기 및 제어기(408)와 연결되고 에러 보정 모듈(108)과 연결된다.
에러 보정 모듈(108)은 키 방정식 해결기(key equation solver; KES) 인터페이스(512), 키 방정식 해결기(514), 체인 검색 및 포니 평가기(Chein search and Forney evaluator)(516), 변환기를 어드레스(address)하기 위한 심볼(518), 하나 이상의 레지스터들(520), 및 에러 보정 모듈(522)을 포함한다. KES 인터페이 스(512)는 버스 마스터 중개기 및 제어기(408)와 결합되고, 키 방정식 해결기(514)과 결합되며, 에러 보정 모듈(522)과 결합된다. 체인 검색 및 포니 평가기(516)는 변환기를 어드레스하기 위한 심볼(518)과 연결되고, 이는 하나 이상의 레지스터들(520) 및 에러 보정 모듈(522)과 연결될 수 있다. 에러 보정 모듈(522)은 버스 마스터 중개기 및 제어기(408)와 연결된다.
버스 마스터 중개기 및 제어기(408)는 버스 마스터 인터페이스(508), 중개기 및 제어기(510)를 포함한다. 버스 마스터 인터페이스(508)는 버스(bus)(116)와 연결되고, 중개기 및 제어기(510)는 GPMI 및 계수기들(504)에 연결되고, 비동기식 FIFO(506)에 연결되고, KES 인터페이스(512)에 연결되며, 에러 보정 모듈(522)과 연결된다.
일반적으로, GPMI 병렬 입력/출력(502)은 GPMI 및 계수기들(504)에 어드레스 정보(address information)를 제공한다. 신드롬 생성 모듈(402)은 GPMI 및 계수기들(504)에 블록 번호를 제공한다. 부가적으로, 신드롬 생성 모듈(402)은 계산된 신드롬 데이터, 패리티 데이터, 및 제어 정보와 함께 비동기식 FIFO(506)에 페이로드 데이터 블록들을 제공한다. 판독 동작들시에, 페이로드 데이터 블록들은 신드롬 생성 모듈(402)에 의해서 처리되고 비동기식 FIFO(506)에 전달된다(passed). 일 특정 구현에서, 마지막 쓰기 동작을 제외하고, 신드롬 생성 모듈(402)의 출력 워드(output word)는 32 비트들의 데이터(페이로드, 패리티, 또는 신드롬 비트들 중 어느 하나를 의미함) 및 4 플래그(flag) 비트들로 구성된다. 페이로드 데이터 블록의 마지막 출력 워드는 어떤 조건들이 프로세싱 시간을 줄일 수 있는 블록들 내에서 검출될 수 있는지를 식별하는 상태 워드(status word)일 수 있다. 예를 들면, 신드롬 생성 모듈(402)이 에러를 검출하지 않는다면, 에러 보정은 회피될 수 있다(avoided). 비동기식 FIFO(506)는 흐름 제어 신호(flow control signal)를 신드롬 생성 모듈(402)에 제공하여 데이터 블록들 및 신드롬 정보의 전달을 제어할 수 있다. 데이터 블록, 연관된 패리티, 및 신드롬들 정보는 비동기식 FIFO(506)에 기록될 수 있다.
게다가, GPMI 및 계수기들(504)로부터 전달되고, 신드롬 생성 모듈(402)로부터 버스 마스터 중개기 및 제어기(408)로 전달되는 모드 비트(mode bit), 메모리 어드레스들(memory addresses), 채널 수 등과 같은 다수의 제어 신호들이 존재한다. 전형적으로, 제어 정보는 페이로드 데이터 블록의 시작(beginning)에 포함될 수 있다.
비동기식 FIFO(506)는 데이터, 신드롬 정보, 패리티 데이터, 및 제어 정보를 GPMI 및 계수기들(504)에 제공한다. 일반적으로, 제어 정보는 새로운 데이터 블록의 제 1 워드(word), 데이터 블록 전달의 시작과 끝, 및 상태 워드 플래그를 나타내는 비트 플래그들(bit flags)을 포함할 수 있다. 비동기식 FIFO(506)의 제어 로직(control logic)은 FIFO가 새로운 데이터에 대해 충분하지 못한 공간을 가질 때마다, FIFO의 상태를 모니터링(monitoring)하고 전체적인 조건(full condition)을 신드롬 생성 모듈(402)에 보고(report)할 수 있다.
GPMI 및 계수기들(504)은 데이터 및 신드롬 정보를 KES 인터페이스(512)에 전달한다. KES 인터페이스(512)는 에러 검출을 위해서 계산된 신드롬 데이터를 키 방정식 해결기(514)에 제공한다. 데이터의 블록이 에러가 없는 것으로 마킹(marking)된다면, GPMI 및 계수기들(504)은 KES 인터페이스(512)를 경유하여, 중개기 및 제어기(510)에 데이터의 블록을 전달할 수 있다. 키 방정식 해결기(514)는 체인 검색 및 포니 평가기 유닛(516)에 에러 검출 정보를 제공한다.
일단 키 방정식 해결기(514)가 에러 검출을 완료하면, KES 인터페이스(512)는 에러 검출 모듈(522)에 블록 정보를 제공한다. 체인 검색 및 포니 평가기(CF) 유닛(516)은 데이터 블록에 대한 에러 마스크들 및 에러 인덱스들을 계산하고 그들을 에러 검출 유닛(522)에 제공한다. 변환기를 어드레스하기 위한 심볼(518)은 심볼 인덱스를 시스템 워드-정렬된 어드레스(system word-aligned address)로 변환하고 심볼 마스크를 워드-정렬된 마스크(word-aligned mask)로 변환한다.
에러 검출 모듈(512)은 워드 판독-수정-기록(read-modity-write) 동작을 수행하여 에러 보정을 완료한다. 시스템의 동작 모드에 따라, 판독-기록-수정(read-write-modify) 보정들의 수는 다양할 수 있다. 예를 들면, 8-비트 모드에 대해서 16 판독-수정-기록 보정들까지일 수 있고, 4-비트 모드에 대해서 8 판독-수정-기록 보정들까지 일 수 있다.
일반적인 판독 동작에 집중된 상기 논의에서, 에러 보정은 다수의 방식으로 적용될 수 있다는 것을 주의해야 한다. 예를 들면, 페이로드 데이터에 대한 변경들은 또한 메타데이터에 대한 변경들 및 비휘발성 메모리의 리던던트 데이터(redundant data)에 저장된 메타데이터 ECC 데이터에 대한 변경들을 요구할 수 있다. 페이로드 데이터에서 검출된 에러들은 메타데이터를 이용하여 보정될 수 있 다. 메타데이터에서 에러들은 메타데이터 ECC 데이터를 이용하여 보정될 수 있다. 복구 프로세스는 페이로드 데이터, (패리티 데이터와 같은) 페이로드 에러 검출 데이터, 메타데이터, 메타데이터 ECC 데이터 등에 적용될 수 있다. 메타데이터, 패리티 데이터, 메타데이터 에러 보정 코드(ECC) 데이터, 및 페이로드 데이터에 개별적으로 저장함으로써, 에러 보정 모듈(108)은 데이터 에러들을 효율적으로 보정하기 위해 하나 이상의 데이터 요소들을 액세스할 수 있다.
도 6은 비휘발성 메모리에 데이터를 기록하는 방법의 흐름도이다. 메모리 기록 동작은 비휘발성 메모리에 데이터의 불록을 기록하는 것으로 개시된다(블록 602). 데이터 블록에 대한 패리티 데이터 및 신드롬 데이터가 계산된다(블록 604). 메타데이터 에러 보정 코드(ECC) 데이터는 패리티 데이터 및 신드롬 데이터에 대해 계산된다(블록 606). 데이터의 블록은 비휘발성 메모리의 페이로드 데이터에 기록된다(블록 608). 패리티 데이터, 신드롬 데이터, 및 메타데이터 ECC 데이터는 비휘발성 메모리의 리던던트 데이터 영역에 기록된다(블록 610).
일반적으로, 각각의 기록 동작은 에러 보정 모듈이 페이로드 데이터에 기초하여 신드롬 데이터를 생성하고 신드롬 데이터에 기초하여 메타데이터 ECC 데이터를 생성하게 한다. 에러 보정 프로세스 동안, 메타데이터 ECC 데이터는 에러 보정 모듈에 의해 신드롬 데이터를 보정하기 위해 이용될 수 있고, 신드롬 데이터는 페이로드 데이터를 보정하기 위해 이용될 수 있다. 이들 에러 보정 프로세스들은 서로로부터 순차적으로 또는 독립적으로 수행될 수 있다.
도 7은 비활성 메모리로부터 페이로드 데이터를 판독하는 방법의 순서도이 다. 메모리 판독 동작은 비휘발성 메모리로부터 페이로드 데이터를 판독하는 것을 개시한다(블록 702). 페이로드 데이터는 신드롬 생성 모듈에 의해 수신된다(블록 704). 신드롬 생성 모듈은 페이로드 데이터에 관련된 복수의 신드롬들을 계산한다(블록 706). 신드롬 생성 모듈은 계산된 신드롬들을 에러 계산기에 제공한다(블록 708). 에러 보정기의 키 방정식 해결기(key equation solver)는 신드롬들로부터 페이로드 데이터 에러를 계산한다(블록 710). 에러 계산기의 체인 검색 및 포니 계산기는 페이로드 데이터 에러에 기초하여 에러 마스크들 및 에러 인덱스들을 생성한다(블록 712). 에러 계산기의 에러 보정 모듈은 에러 마스크들 및 에러 인덱스들에 기초하여 데이터 블록 내에 비트들을 보상한다(블록 714).
일반적으로, 비휘발성 메모리로부터 페이로드 데이터의 판독은 도 7에 관련하여 기술된 바와 같이 진행할 수 있다. 대안으로, 에러가 비휘발성 메모리의 리던던트 데이터 영역내에 저장된 페이로드 메타데이터 또는 페이로드 패리티 데이터에서 검출되는 경우, 에러 보정 모듈은 페이로드 메타데이터에 연관된 메타데이터 에러 보정 코드(ECC) 데이터를 검색한다. 이후, 메타데이터 ECC 데이터는 페이로드 메타데이터에 관련된 (블록 706에서와 같은) 상기의 복수의 신드롬들을 계산하기 위해 이용된다. 키 방정식 해결기는 신드롬들로부터 페이로드 메타데이터 에러를 계산한다 체인 검색 및 포니 계산기는 페이로드 메타데이터 에러에 기초하여 에러 마스크들 및 에러 인덱스들을 생성한다. 에러 보정 모듈은 에러 마스크들 및 에러 인덱스들에 기초하여 페이로드 메타데이터내 비트들을 보상한다. 그러므로, 페이로드 데이터의 메타데이터는 페이로드 데이터에 또 로딩하지 않고 리던던트 데 이터 영역에 저장된 메타데이터 ECC 데이터로부터 복구될 수 있어, 시간 및 계산 리소스들을 절약한다.
비휘발성 메모리의 리던던트 데이터 영역에 메타데이터 및 에러 검출 데이터를 저장하고 리던던트 데이터 영역 내 개별적으로 메타데이터 및 에러 검출 데이터에 연관된 메타데이터 에러 보정 코드(ECC) 데이터를 저장함으로써, 에러 보정 모듈내 로직은 페이로드 데이터를 또한 로딩해야 할 필요없이 페이로드 데이터의 메타데이터내 및 페이로드 데이터에 비트 에러들을 보정할 수 있다.
메타데이터 ECC 데이터는 페이로드 데이터의 메타데이터와 연관된 신드롬을 포함할 수 있다. 비휘발성 메모리는 메타데이터 ECC 데이터뿐만 아니라 페이로드 ECC 데이터를 포함할 수 있다. 데이터 페이로드 내 각각의 데이터 페이로드는 리던던트 데이터 영역내 대응하는 패리티 데이터 영역 및 신드롬 데이터 영역을 가질 수 있다. 각각의 대응하는 패리티 데이터 영역 및 신드롬 데이터 영역 쌍은 리던던트 데이터 영역내 저장된 대응하는 메타데이터 ECC 데이터를 포함할 수 있다. 따라서, 제 1 데이터 페이로드는 리던던트 데이터 영역에 저장된 제 1 패리티 데이터 및 제 1 메타데이터를 가질 수 있다. 제 1 패리티 데이터 및 제 1 메타데이터는 대응하는 제 1 메타데이터 ECC 데이터를 가질 수 있다. 제 2 데이터 페이로드는 리던던트 데이터 영역에 저장된 제 2 패리티 데이터 및 제 2 메타데이터를 가질 수 있다. 일 실시예에서, 제 1 메타데이터 ECC 데이터는 제 1 및 제 2 패리티 데이터에 대한 메타데이터 ECC 데이터 및 제 1 및 제 2 메타데이터를 포함한다. 제 2 실시예에서, 제 2 메타데이터 ECC 데이터는 제 2 패리티 데이터 및 제 2 메타데 이터에 대한 메타데이터 ECC 데이터를 포함한다.
상술된 주요 사항은 예시적으로 고려되고 제한되는 것은 아니며, 첨부된 청구항들은 본 발명의 정신 및 범위내에 있는 모든 이러한 변경들, 개선들, 및 다른 실시예들을 포함하도록 의도된다. 따라서, 법에 의해 허락되는 최대 범위에 대하여, 본 발명의 범위는 후속하는 청구항들 및 그들의 균등물들의 최대 넓은 허용가능한 해석에 의해 결정되는 것이다.

Claims (23)

  1. 비휘발성 메모리에 있어서,
    제 1 페이로드 데이터 영역;
    상기 제 1 페이로드 데이터 영역에 연관된 제 1 리던던트 메모리 영역을 포함하고,
    상기 제 1 리던던트 메모리 영역은:
    상기 제 1 페이로드 데이터 영역에 연관된 제 1 페이로드 에러 보정 코드(ECC) 데이터를 포함하는 제 1 부분;
    상기 제 1 페이로드 데이터 영역에 연관된 제 1 메타데이터를 포함하는 제 2 부분; 및
    상기 제 1 메타데이터에 연관된 제 1 메타데이터 ECC 데이터를 포함하는 제 3 부분을 포함하는, 비휘발성 메모리.
  2. 제 1 항에 있어서,
    제 2 페이로드 데이터 영역을 더 포함하고,
    상기 제 1 메타데이터는 상기 제 1 페이로드 데이터 영역 및 상기 제 2 페이로드 데이터 영역에 연관되는, 비휘발성 메모리.
  3. 제 2 항에 있어서,
    상기 제 1 리던던트 메모리 영역은 상기 제 2 페이로드 데이터 영역에 연관된 제 2 페이로드 에러 보정 코드(ECC) 데이터를 포함하는, 비휘발성 메모리.
  4. 제 1 항에 있어서,
    상기 제 1 페이로드 에러 보정 코드(ECC) 데이터는 패리티 데이터 및 신드롬 데이터를 포함하는, 비휘발성 메모리.
  5. 제 1 항에 있어서,
    상기 제 1 페이로드 데이터 영역은 512 바이트의 메모리 공간을 포함하는, 비휘발성 메모리.
  6. 제 1 항에 있어서,
    상기 제 1 메타데이터는 주기적 리던던시 검사(CRC) 데이터를 포함하는, 비휘발성 메모리.
  7. 제 1 항에 있어서,
    상기 제 1 메타데이터는 블록 상태 데이터를 포함하는, 비휘발성 메모리.
  8. 제 1 항에 있어서,
    상기 제 1 메타데이터는 상기 제 1 페이로드 데이터 영역에 연관된 논리적 어드레스 데이터를 포함하는, 비휘발성 메모리.
  9. 제 1 항에 있어서,
    제 2 페이로드 영역;
    상기 제 2 페이로드 데이터 영역에 연관된 제 2 리던던트 메모리 영역을 더 포함하고,
    상기 제 2 리던던트 메모리 영역은:
    상기 제 2 페이로드 영역에 연관된 제 2 페이로드 에러 보정 코드(ECC) 데이터를 갖는 제 1 부분;
    상기 제 2 페이로드 영역에 연관된 제 2 메타데이터를 갖는 제 2 부분; 및
    상기 제 2 메타데이터에 연관된 제 2 메타데이터 ECC 데이터를 포함하는 제 3 부분을 포함하는, 비휘발성 메모리.
  10. 시스템에 있어서:
    페이로드 데이터 영역에 연관된 페이로드 에러 보정 코드(ECC) 데이터 및 상기 페이로드 데이터 영역에 연관된 메타데이터 ECC 데이터를 포함하는 비활성 메모리; 및
    상기 메타데이터 ECC 데이터의 수신에 응답하여 에러 보정을 수행하기 위한 로직을 포함하는 에러 보정 모듈을 포함하는, 시스템.
  11. 제 10 항에 있어서,
    상기 메타데이터 ECC 데이터는 에러 신드롬(error syndrome)을 포함하고,
    상기 에러 보정 모듈은 상기 에러 신드롬을 생성하기 위한 신드롬 생성 모듈을 포함하는, 시스템.
  12. 제 10 항에 있어서,
    상기 에러 보정 모듈은 상기 비휘발성 메모리로부터 액세스된 메타데이터의 에러를 보정하기 위해 상기 에러 신드롬에 기초하여 에러 보정 정보를 생성하기 위해 키 생성 모듈을 포함하는, 시스템.
  13. 제 12 항에 있어서,
    상기 에러 보정 정보는 에러 인덱스 및 에러 마스크를 포함하는, 시스템.
  14. 제 10 항에 있어서,
    상기 비휘발성 메모리는 페이로드 ECC 데이터 및 메타데이터 ECC 데이터를 포함하고, 각각은 제 2 페이로드 데이터 영역에 연관되는, 시스템.
  15. 제 12 항에 있어서,
    상기 에러 보정 모듈은 상기 메타데이터에 리드-솔로몬 에러 보정(Reed-Solomon error correction)을 수행하는, 시스템.
  16. 데이터 페이로드에 관련된 데이터 보호 코드를 생성하는 단계;
    상기 데이터 보호 코드에 관련된 메타데이터 보호 코드를 생성하는 단계; 및
    비휘발성 메모리의 페이로드 데이터 영역에 상기 데이터 페이로드를 저장하고 상기 비휘발성 메모리의 리던던트 데이터 영역에 상기 데이터 보호 코드 및 상기 메타데이터 보호 코드를 저장하는 단계를 포함하는, 방법.
  17. 제 16 항에 있어서,
    상기 데이터 보호 코드는 에러 검출 데이터 및 에러 보정 데이터를 포함하는, 방법.
  18. 제 17 항에 있어서,
    상기 에러 검출 데이터는 패리티 데이터를 포함하는, 방법.
  19. 제 16 항에 있어서,
    상기 데이터 보호 코드는 주기적 리던던시 검사(CRC) 데이터 및 에러 보정 코드(ECC) 데이터를 포함하는, 방법.
  20. 제 16 항에 있어서,
    상기 메타데이터 보호 코드는 상기 데이터 보호 코드에 관련된 에러 보정 코 드(ECC) 데이터를 포함하는, 방법.
  21. 제 16 항에 있어서,
    상기 데이터 보호 코드를 생성하는 단계는, 상기 데이터 페이로드에 대하여 적어도 하나의 패리티 데이터 및 에러 보정 코드(ECC) 데이터를 계산하는 단계를 포함하는, 방법.
  22. 제 16 항에 있어서,
    상기 메타데이터 보호 코드를 생성하는 단계는 메타데이터 에러 보정 코드(ECC) 데이터를 계산하는 단계를 포함하는, 방법.
  23. 시스템에 있어서:
    비휘발성 메모리에 액세스하는 에러 보정 모듈을 포함하고,
    상기 에러 보정 모듈은 상기 비휘발성 메모리로부터 검색가능한 데이터의 블록에 연관된 복수의 신드롬들을 생성하기 위한 로직을 포함하고, 상기 데이터의 블록내 비트 에러들을 보상하기 위한 로직을 더 포함하고, 상기 비휘발성 메모리로부터 검색된 메타데이터에서 비트 에러들을 보정하기 위해 메타데이터 에러 보정 코드(ECC) 데이터를 이용하기 위한 로직을 포함하는, 시스템.
KR1020087027702A 2006-05-18 2007-03-14 비휘발성 메모리 에러 보정 시스템 및 방법 KR20090028507A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/436,937 2006-05-18
US11/436,937 US20070268905A1 (en) 2006-05-18 2006-05-18 Non-volatile memory error correction system and method

Publications (1)

Publication Number Publication Date
KR20090028507A true KR20090028507A (ko) 2009-03-18

Family

ID=38711911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087027702A KR20090028507A (ko) 2006-05-18 2007-03-14 비휘발성 메모리 에러 보정 시스템 및 방법

Country Status (4)

Country Link
US (1) US20070268905A1 (ko)
KR (1) KR20090028507A (ko)
CN (1) CN101473308A (ko)
WO (1) WO2007136447A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694873B2 (en) 2011-05-02 2014-04-08 Samsung Electronics Co., Ltd. Memory system and error correction method

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122322B2 (en) * 2007-07-31 2012-02-21 Seagate Technology Llc System and method of storing reliability data
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8185706B2 (en) * 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
US8495454B2 (en) * 2008-07-14 2013-07-23 Marvell World Trade Ltd. Methods, apparatuses, systems, and architectures for quickly and reliably encoding and/or decoding system data
JP5363460B2 (ja) * 2008-07-30 2013-12-11 パナソニック株式会社 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム
US8255774B2 (en) 2009-02-17 2012-08-28 Seagate Technology Data storage system with non-volatile memory for error correction
US9063886B2 (en) * 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
US8726126B2 (en) 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
WO2012037032A2 (en) * 2010-09-15 2012-03-22 Sandisk Technologies Inc. System and method of distributive ecc processing
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8892981B2 (en) 2010-09-30 2014-11-18 Apple Inc. Data recovery using outer codewords stored in volatile memory
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8954647B2 (en) 2011-01-28 2015-02-10 Apple Inc. Systems and methods for redundantly storing metadata for non-volatile memory
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) * 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US20120324148A1 (en) * 2011-06-19 2012-12-20 Paul Roger Stonelake System and method of protecting metadata from nand flash failures
JP5770026B2 (ja) 2011-06-20 2015-08-26 ルネサスエレクトロニクス株式会社 半導体装置
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN103389920B (zh) * 2012-05-09 2016-06-15 深圳市腾讯计算机系统有限公司 一种磁盘坏块的自检测方法和装置
US8954809B2 (en) * 2012-07-25 2015-02-10 Texas Instruments Incorporated Method for generating descriptive trace gaps
US8938656B2 (en) 2012-09-14 2015-01-20 Sandisk Technologies Inc. Data storage device with intermediate ECC stage
US8996951B2 (en) 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
CN103092727B (zh) * 2013-01-18 2015-08-26 大唐移动通信设备有限公司 Flash存储介质上的数据纠错方法和装置
US9069695B2 (en) 2013-03-14 2015-06-30 Apple Inc. Correction of block errors for a system having non-volatile memory
US9075960B2 (en) * 2013-03-15 2015-07-07 Now Technologies (Ip) Limited Digital media content management apparatus and method
JP5657079B1 (ja) 2013-10-24 2015-01-21 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN103594120B (zh) * 2013-10-31 2018-08-21 西安紫光国芯半导体有限公司 以读代写的存储器纠错方法
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
US9317357B2 (en) * 2014-03-20 2016-04-19 International Business Machines Corporation Management of microcode errors in a storage operation
JP6318769B2 (ja) * 2014-03-28 2018-05-09 富士通株式会社 ストレージ制御装置、制御プログラム、および制御方法
US20150281743A1 (en) * 2014-04-01 2015-10-01 Silicon Image, Inc. Orthogonal Data Organization for Error Detection and Correction in Serial Video Interfaces
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9612952B2 (en) 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
TWI512750B (zh) * 2014-07-30 2015-12-11 Phison Electronics Corp 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
US9495255B2 (en) * 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
CN105335299B (zh) * 2014-08-12 2018-10-02 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
US9558066B2 (en) * 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
CN105808151B (zh) * 2014-12-29 2019-09-27 华为技术有限公司 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
TWI566096B (zh) * 2015-09-11 2017-01-11 慧榮科技股份有限公司 資料儲存系統與其相關方法
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
CN112181866B (zh) * 2020-08-27 2024-03-26 航天东方红卫星有限公司 一种基于卫星在轨有效载荷数据处理的数据传输分系统
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11409608B2 (en) * 2020-12-29 2022-08-09 Advanced Micro Devices, Inc. Providing host-based error detection capabilities in a remote execution device
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11892983B2 (en) 2021-04-29 2024-02-06 EMC IP Holding Company LLC Methods and systems for seamless tiering in a distributed storage system
US11740822B2 (en) * 2021-04-29 2023-08-29 EMC IP Holding Company LLC Methods and systems for error detection and correction in a distributed storage system
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
CN115297071B (zh) * 2022-07-15 2023-10-27 中国航空无线电电子研究所 一种arinc664交换机交换引擎对seu和mbu容错设计方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4584686A (en) * 1983-12-22 1986-04-22 Optical Storage International Reed-Solomon error correction apparatus
US6119262A (en) * 1997-08-19 2000-09-12 Chuen-Shen Bernard Shung Method and apparatus for solving key equation polynomials in decoding error correction codes
US5956743A (en) * 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US6636901B2 (en) * 1998-01-30 2003-10-21 Object Technology Licensing Corp. Object-oriented resource lock and entry register
JP3975245B2 (ja) * 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
US7398451B2 (en) * 2001-08-09 2008-07-08 Adaptive Networks, Inc. Error correction process and mechanism
US6920581B2 (en) * 2002-01-02 2005-07-19 Intel Corporation Method and apparatus for functional redundancy check mode recovery
TW567411B (en) * 2002-09-09 2003-12-21 Hon Hai Prec Ind Co Ltd The method and apparatus of CRC code allocation in flash ROM
US20040078747A1 (en) * 2002-10-21 2004-04-22 Miller David H. Generalized forney algorithm circuit
US7203828B2 (en) * 2002-11-29 2007-04-10 Sigmatel, Inc. Use of NAND flash for hidden memory blocks to store an operating system program
US20040153902A1 (en) * 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US6912610B2 (en) * 2003-03-28 2005-06-28 Emulex Design & Manufacturing Corporation Hardware assisted firmware task scheduling and management
US20070083697A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694873B2 (en) 2011-05-02 2014-04-08 Samsung Electronics Co., Ltd. Memory system and error correction method
US9197247B2 (en) 2011-05-02 2015-11-24 Samsung Electronics Co., Ltd. Memory system and error correction method

Also Published As

Publication number Publication date
WO2007136447A3 (en) 2008-11-20
CN101473308A (zh) 2009-07-01
WO2007136447A2 (en) 2007-11-29
US20070268905A1 (en) 2007-11-22

Similar Documents

Publication Publication Date Title
KR20090028507A (ko) 비휘발성 메모리 에러 보정 시스템 및 방법
US7844880B2 (en) Error correction for flash memory
US8010875B2 (en) Error correcting code with chip kill capability and power saving enhancement
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US6973613B2 (en) Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US7761779B2 (en) Access control apparatus, access control system, processor, access control method, memory access control apparatus, memory access control system, and memory access control method
US8468416B2 (en) Combined group ECC protection and subgroup parity protection
US7900118B2 (en) Flash memory system and method for controlling the same
US7761780B2 (en) Method, apparatus, and system for protecting memory
US7231585B2 (en) Error correction for flash memory
US20080282128A1 (en) Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US7188296B1 (en) ECC for component failures using Galois fields
US7587658B1 (en) ECC encoding for uncorrectable errors
US20100241932A1 (en) Error detector/corrector, memory controller, and semiconductor memory device
US20140006904A1 (en) Encoding information in error correcting codes
US20040225944A1 (en) Systems and methods for processing an error correction code word for storage in memory components
US20230236931A1 (en) Instant write scheme with delayed parity/raid
US20150318871A1 (en) Error correction with secondary memory
US11726665B1 (en) Memory extension with error correction
CN111221746B (zh) 数据储存系统与其相关方法
US20220206901A1 (en) Providing host-based error detection capabilities in a remote execution device
JP6342013B2 (ja) 不揮発性メモリ・アレイを含むデータ・ストレージ・システムを動作させるための方法、システム及びコンピュータ・プログラム
US8365055B2 (en) High performance cache directory error correction code
US9400715B1 (en) System and method for interconnecting storage elements
JP2006323434A (ja) データ処理装置及びそのメモリ訂正方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid