KR102423489B1 - 최소 앨리어싱 에러 정정 코드 제공 방법 및 시스템 - Google Patents
최소 앨리어싱 에러 정정 코드 제공 방법 및 시스템 Download PDFInfo
- Publication number
- KR102423489B1 KR102423489B1 KR1020200155665A KR20200155665A KR102423489B1 KR 102423489 B1 KR102423489 B1 KR 102423489B1 KR 1020200155665 A KR1020200155665 A KR 1020200155665A KR 20200155665 A KR20200155665 A KR 20200155665A KR 102423489 B1 KR102423489 B1 KR 102423489B1
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- error correction
- submatrix
- column
- code
- Prior art date
Links
Images
Classifications
-
- 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/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- 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/1032—Simple parity
-
- 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
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/098—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
-
- 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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1168—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
-
- 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
최소 앨리어싱 에러 정정 코드 제공 방법 및 시스템이 제공된다. 디바이스에 적용하는 데이터 길이 k에 대한 패리티 체크 행렬 H를 구성하여 단일 오류 정정(SEC)코드를 구성함에 있어, 서로 다른 0이 아닌 이진 열행렬을 패리티 체크 행렬에 배치함에 있어 전체 비트가 아닌 일부 비트를 확인하여 SEC 코드가 유효하고도 앨리어싱이 최소한 발생할 수 있도록 설계함으로써 정보의 파손을 방지하고 DRAM 등 SEC를 적용하는 디바이스의 신뢰성을 향상시킬 수 있도록 한다.
Description
본 발명은 최소 앨리어싱 에러 정정 코드 제공 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 DRAM(Dynamic Random Access Memory) 등 SEC를 적용하는 디바이스의 신뢰성을 향상시키기 위한 단일 오류 정정(Single Error Correction; SEC) 코드를 설계함에 있어서 앨리어싱이 최소한으로 발생하게 하기 위한 시스템 및 이를 제공하는 방법에 관한 것이다.
반도체 메모리 장치 등을 통한 정보 전송 또는 저장함에 있어서 데이터는 이진 데이터 워드 형태로 인코딩 되어 전송 또는 저장될 수 있는데, 이러한 경우 데이터 에러가 포함되어 데이터 손상이 발생할 수 있기 때문에, 데이터 손상을 완화하기 위해 오류의 감지 또는 정정이 필요한데, SEC 코드는 잘못된 수정으로 인해 3비트 오류로 앨리어싱 될 수 있다.
이처럼 앨리어싱의 발생을 최소화하면서 이진 SEC를 설계할 수 있는 방법에 대한 필요성이 대두되었다.
전술한 문제점을 해결하기 위하여 본 발명이 이루고자 하는 과제는, DRAM(Dynamic Random Access Memory) 디바이스에 SEC를 적용함에 있어, 검사 비트 수가 증가함에 따라 무작위로 선택한 코드에는 압도적으로 높은 확률의 앨리어싱이 발생하기 때문에, 연산 수를 감소시키면서 최소한의 앨리어싱이 발생하는 단일 에러 정정 코드를 찾음으로써 SEC를 적용하는 디바이스의 신뢰성을 향상시키는 데 있다.
본 발명의 해결 과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 과제들은 아래의 기재로부터 당업자가 명확하게 이해될 수 있을 것이다.
전술한 기술적 과제를 해결하기 위한 수단으로서, 본 발명의 실시예에 따르면, 최소 앨리어싱 에러 정정 코드(Error Correction Code; 이하 ECC) 제공 방법은, (A) 인코더 회로는 길이 k를 갖는 메시지 워드를 수신하여 k 데이터 비트를 포함하는 r*k 데이터부분행렬 M 및 r 체크 비트를 포함하는 r*r 체크부분행렬 C를 포함하는 r*n 패리티 체크 행렬 H을 갖는 코드 워드를 생성하는 인코딩 단계; 및 (B) 디코더 회로는 상기 코드 워드를 수신하고, 상기 코드 워드 및 상기 패리티 체크 행렬 H를 이용하여 생성한 신드롬에 기초하여 상기 코드 워드에 포함된 에러 비트들의 적어도 일부를 정정하는 정정회로를 포함하는 ECC를 구현하는 디코딩 단계;를 포함하되, 상기 r, k, n은 1 이상의 자연수이며, n=k+r이고, 을 만족한다.
상기 ECC는, 단일 오류 정정(Single Error Correction; 이하 SEC)를 포함하며, 상기 패리티 체크 행렬 H는, 모든 열벡터가 각각 0이 아닌 서로 다른 이진 값을 갖는다.
상기 (A)단계는, (A1) 상기 인코더 회로는, r 크기의 0이 아닌 이진 행벡터 v를 특정하는 단계; (A2) 상기 인코더 회로는, r 크기의 0이 아닌 이진 열벡터 중 상기 행벡터 v를 곱한 결과값이 0인 열벡터를 제1열벡터, 상기 결과값이 0이 아닌 열벡터를 제2열벡터로 구분하는 단계; (A3) 상기 인코더 회로는, 상기 데이터부분행렬 M이 상기 제1열벡터 중 1개 및 상기 제2열벡터 중 k-1개를 포함하도록 구성하는 단계; 및 (A4) 상기 인코더 회로는, 상기 체크부분행렬 C이 상기 제1열벡터 중 r-1개, 상기 제2열벡터 중 1개를 포함하도록 구성하는 단계;를 포함한다.
상기 체크부분행렬 C는, 가역적인 행렬이다.
상기 체크부분행렬 C는, 단위 행렬이다.
한편, 본 발명의 다른 실시예에 따르면, 최소 앨리어싱 에러 정정 코드(Error Correction Code; 이하 ECC) 제공 시스템은, 길이 k를 갖는 메시지 워드를 수신하여 k 데이터 비트를 포함하는 r*k 데이터부분행렬 M 및 r 체크 비트를 포함하는 r*r 체크부분행렬 C를 포함하는 r*n 패리티 체크 행렬 H을 갖는 코드 워드를 생성하는 인코더 회로; 및 상기 코드 워드를 수신하고, 상기 코드 워드 및 상기 패리티 체크 행렬 H를 이용하여 생성한 신드롬에 기초하여 상기 코드 워드에 포함된 에러 비트들의 적어도 일부를 정정하는 정정회로를 포함하는 ECC를 구현하는 디코더 회로;를 포함하되, 상기 r, k, n은 1 이상의 자연수이며, n=k+r이고, 을 만족한다.
상기 ECC는, 단일 오류 정정(Single Error Correction; 이하 SEC)를 포함하며, 상기 패리티 체크 행렬 H는, 모든 열벡터가 각각 0이 아닌 서로 다른 이진 값을 갖는 것이다.
상기 인코더 회로는, r 크기의 0이 아닌 이진 행벡터 v를 특정하고, r 크기의 0이 아닌 이진 열벡터 중 상기 행벡터 v를 곱한 결과값이 0인 열벡터를 제1열벡터, 상기 결과값이 0이 아닌 열벡터를 제2열벡터로 구분한 후, 상기 데이터부분행렬 M이 상기 제1열벡터 중 1개 및 상기 제2열벡터 중 k-1개를 포함하도록 구성하고, 상기 체크부분행렬 C이 상기 제1열벡터 중 r-1개, 상기 제2열벡터 중 1개를 포함하도록 구성한다.
상기 체크부분행렬 C는, 가역적인 행렬이다.
상기 체크부분행렬 C는, 단위 행렬이다.
본 발명에 따르면,
DRAM(Dynamic Random Access Memory) 디바이스에 SEC를 적용함에 있어, 검사 비트 검사 비트 수가 증가함에 따라 무작위로 선택한 코드에는 압도적으로 높은 확률의 앨리어싱이 발생하기 때문에, 연산 수를 감소시키면서 최소한의 앨리어싱이 발생하는 단일 에러 정정 코드를 찾음으로써 SEC를 적용하는 디바이스의 신뢰성을 향상시킬 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 SEC로 보호되는 코드 워드에서 3비트 에러 앨리어싱이 발생하는 경우의 예시도,
도 2는 패리티 체크 행렬로 특정된 SEC 코드의 예시도,
도 3은 본 발명의 실시예에 의한 최소 앨리어싱 에러 정정 코드 제공 방법의 순서도,
도 4는 도 1의 (A)단계의 순서도,
도 5는 앨리어싱의 발생 분포도,
도 6은 본 발명의 실시예에 의한 최소 앨리어싱 에러 정정 코드 제공 시스템의 구성도이다.
도 2는 패리티 체크 행렬로 특정된 SEC 코드의 예시도,
도 3은 본 발명의 실시예에 의한 최소 앨리어싱 에러 정정 코드 제공 방법의 순서도,
도 4는 도 1의 (A)단계의 순서도,
도 5는 앨리어싱의 발생 분포도,
도 6은 본 발명의 실시예에 의한 최소 앨리어싱 에러 정정 코드 제공 시스템의 구성도이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시 예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려 여기서 소개되는 실시 예들은 개시된 내용이 철저하고 완전해질 수 있도록, 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서 제1, 제2 등의 용어가 구성요소들을 기술하기 위해서 사용된 경우, 이들 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안 된다. 이들 용어들은 단지 어느 구성요소를 다른 구성요소와 구별시키기 위해서 사용되었을 뿐이다. 여기에 설명되고 예시되는 실시 예들은 그것의 상보적인 실시 예들도 포함한다.
또한, 어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다.
또한 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
또한, 본 명세서에 기재된 'OO부', 'OO기', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, '일', '하나' 및 '그' 등의 관사는 본 발명을 기술하는 문맥에 있어서 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
아래의 특정 실시 예들을 기술하는 데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용이 없어도 사용될 수 있다는 것을 인지할 수 있다.
어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
이하, 본 발명에서 실시하고자 하는 구체적인 기술 내용에 대해 첨부도면을 참조하여 상세하게 설명하기로 한다.
도 1은 SEC로 보호되는 코드 워드에서 3비트 에러 앨리어싱이 발생하는 경우의 예시도이다.
도 1을 참조하면, 앨리어싱의 현상을 설명할 수 있다.
DRAM 칩 외부에서 사용되는 오류 정정 코드(Error Correction Code; ECC)를 외부 ECC라 하면, 이는 일반적으로 ECC 강도 범위에서 최소한 단일 오류 수정 및 이중 오류 감지(SECDED)를 사용한다.
다만 본 발명의 실시예에서 주로 제시하는 InDRAM ECC의 경우 작은 저장 공간 및 영역 오버 헤드로 인해 단일 오류 수정(SEC) 코드가 주로 사용되며, ECC는 검사 비트라는 중복 정보를 생성하여 오류로부터 데이터를 보호하고, 강력한 ECC는 더 많은 검사 비트를 한다.
현대의 DRAM 장치는 DRAM 뱅크의 배선 제한으로 인해 8 비트 폭의 내부 서브 어레이로 설계 되었기 때문에 검사 비트는 일반적으로 8의 배수이며, 8개의 체크 비트를 사용하는 SEC 코드는 128비트 단위로 메모리 데이터를 보호 할 수 있으므로 6.25 %의 스토리지 오버헤드가 필요하다.
반대로 SECDED 코드는 8 개의 체크 비트를 사용하여 64 비트 메모리 데이터를 보호(12.5 % 오버 헤드) 할 수 있다.
In-DRAM ECC는 각 DRAM 칩에 구현되어야 하므로 SEC 코드는 검사 비트에 대한 저장 영역 및 오버헤드가 적기 때문에 선호된다.
그러나 SEC 보호 데이터의 경우 2 비트 오류는 잘못된 수정으로 인해 3 비트 오류로 불리하게 앨리어싱 될 수 있다.
SEC 코드의 코드 워드는 적어도 3의 해밍 거리를 갖도록 보장된다.
이처럼 실시예에서는 In-DRAM에 적용 가능한 SEC를 기술하고 있으나, 본 발명의 실시예에 의한 방법 및 시스템은 적용범위가 DRAM에만 국한되지 않고 SEC를 적용하는 디바이스에서 사용될 수 있음을 미리 밝힌다.
도 1을 참조하면, 해밍 거리가 3 인 코드 워드 v1 및 v2를 가정하면, v1에 두 개의 오류가 수신되어 w2가되고 w2와 v2 사이의 해밍 거리가 1이면 SEC 디코더는 수신된 단어 w2를 v2로 잘못 해석하게 되며, 이러한 현상을 앨리어싱이라 한다.
이를 통해 DRAM 칩의 오류 비트 수가 2 개에서 3 개로 증가하므로, 앨리어싱은 DRAM 칩 외부의 시스템에 노출 될 때 시스템에서 발견되는 오류의 수를 증가시킬 가능성이 있기 때문에 데이터 손상으로 이어질 수 있다.
도 2는 패리티 체크 행렬로 특정된 SEC 코드의 예시도이다.
랭크 r의 r* n 패리티 체크 행렬 H는 H를 사용하는 SEC 및 H에 의해 결정된 코드에 대한 신드롬 디코딩과 관련하여 모든 단일 비트 오류를 수정할 수 있는 경우 SEC이 가능하다.
상기 H는 H가 0이 아닌 별개의 열벡터로 구성된 경우에만 SEC 가능하다.
H = [M | C]는 (n, k) 이진 코드에 대한 패리티 검사 행렬이며, 여기서 M은 r*k 행렬이고 C는 r*r 행렬이다. H에 의해 결정된 코드는 C가 가역적인 행렬(invertible)일 때에만 유효하다.
여기서 가역적인 행렬이란, 역행렬을 가지며, 그 역행렬과 곱한 결과가 단위 행렬인 행렬을 의미한다.
따라서, 본 발명의 실시예에서 SEC 코드의 패리티 검사 행렬 H = [M | C]는 가역적이며 0이 아닌 열벡터로 구성된 부분행렬 C를 포함하여야 한다.
대부분의 응용 프로그램에서는 부분 행렬 C가 단위 행렬이 되도록 패리티 검사 행렬을 선택한다.
도 2를 참조하면 (a)의 (15,11) 코드는 H가 0이 아닌 모든 4비트 열로 구성된 완전한 해밍 코드이다.
여기서 부분행렬 M은 순서에 관계 없이 가중치 2 이상의 열로 구성되며, 부분 행렬 C는 가중치 1의 열벡터를 사용하는 단위 행렬이다.
이 코드는 11비트 메시지를 보호하며, 이러한 메시지 길이를 2의 제곱으로 하기 위해서 단축된 해밍 코드를 사용할 수 있다.
도 2를 참조하면 (b)의 패리티 검사 행렬 (12, 8) 코드에 의해 지정된 SEC 코드의 예는 (a)의 M에서 3 개의 열을 제거하여 패리티 검사 행렬을 얻은 코드이다.
완전한 해밍 코드와 단축 된 해밍 코드는 모두 SEC가 가능하고 체계적(systematic)이다. 모든 열벡터가 0이 아닌 고유한 부분이고 부분 행렬 C가 단위 행렬이므로 가역적이기 때문이다.
그러나 모든 SEC 코드가 해밍 코드인 것은 아니며, 도 2에서 (c)의 코드는 단위 행렬이 아니지만 가역적인 C를 가지고 있어, SEC 코드이며, 체계적이다.
SEC 설계에서 해밍 코드를 사용하는 것이 일반적이지만, 최소한의 앨리어싱 코드 검색을 위해 본 발명에서는 논-해밍 코드도 고려한다.
r*n 크기의 패리티 검사 행렬 H는,
본 발명에서는 상기 패리티 검사 행렬 H를 통해 최소한의 앨리어싱이 발생할 수 있도록 하는 단일 에러 정정 코드를 제공하는 시스템 및 방법이 제시된다.
상기 시스템 및 방법에 대해 이하에서 설명한다.
1) ()가 M의 열벡터 중 하나 ()와 같으면 신드롬은 m번째 위치에서 단일 비트 오류로 잘못 해석된다. 따라서 이중 비트 오류는 메시지의 i 번째, j 번째 및 m 번째 위치에서 3중 비트 오류로 앨리어싱 된다.
2) ()가 C의의 열벡터 중 하나와 같으면 체크 비트에 추가 오류가 생성된다. 그러나 메모리 읽기에서 메시지 비트 만 검색되므로 체크 비트에 대한 이러한 추가 오류는 DRAM 칩 외부에 노출되지 않는다.
따라서, i 번째 위치와 j 번째 위치에 두 개의 오류가 있을 때 , 또는 이 성립하는 M의 열벡터 이 있는 경우에만 앨리어싱이 발생하며, M에서 가져온 세 개의 구분된 벡터 세트 {, , }을 H의 앨리어싱 트리플로 호출한다.
H의 앨리어싱 트리플의 수는 앨리어싱이 발생할 확률을 결정한다.
도 3은 본 발명의 실시예에 의한 최소 앨리어싱 에러 정정 코드 제공 방법의 순서도이다.
도 3을 참조하면, 본 발명의 실시예에 의한 최소 앨리어싱 에러 정정 코드 제공 방법은, (A) 패리티 체크 행렬 H를 갖는 코드 워드를 생성하는 인코딩 단계(S100), (B) 신드롬에 기초하여 정정회로를 포함하는 ECC를 구현하는 단계(S200)를 포함한다.
여기서 (A)단계(S100)는, 인코더 회로는 길이 k를 갖는 메시지 워드를 수신하여 k 데이터 비트를 포함하는 r*k 데이터부분행렬 M 및 r 체크 비트를 포함하는 r*r 체크부분행렬 C를 포함하는 r*n 패리티 체크 행렬 H을 갖는 코드 워드를 생성한다.
또한 여기서 (B)단계(S200)는, 디코더 회로는 상기 코드 워드를 수신하고, 상기 코드 워드 및 상기 패리티 체크 행렬 H를 이용하여 생성한 신드롬에 기초하여 상기 코드 워드에 포함된 에러 비트들의 적어도 일부를 정정하는 정정회로를 포함하는 ECC를 구현한다.
여기서 ECC는, 단일 오류 정정(Single Error Correction; 이하 SEC)를 포함하며, 상기 패리티 체크 행렬 H는, 모든 열벡터가 각각 0이 아닌 서로 다른 이진 값을 갖는 것으로 한정할 수 있다.
도 4는 도 1의 (A)단계의 순서도이다.
도 4를 참조하면 (A)단계(S100)는, (A1) r 크기의 non-zero 이진 행벡터 v를 특정하는 단계(S110), (A2) r 크기의 non-zero 이진 열벡터 중 제1열벡터 및 제2열벡터로 구분하는 단계(S120), (A3) 데이터부분행렬 H를 구성하는 단계(S130), (A4) 체크부분행렬 C를 구성하는 단계(S140)를 포함한다.
여기서 (A1)단계(S110)는, 상기 인코더 회로는, r 크기의 0이 아닌 이진 행벡터 v를 특정한다.
여기서 (A2)단계(S120)는, 상기 인코더 회로는, r 크기의 0이 아닌 이진 열벡터 중 상기 행벡터 v를 곱한 결과값이 0인 열벡터를 제1열벡터, 상기 결과값이 0이 아닌 열벡터를 제2열벡터로 구분한다.
여기서 (A3)단계(S130)는, 상기 인코더 회로는, 상기 데이터부분행렬 M이 상기 제1열벡터 중 1개 및 상기 제2열벡터 중 k-1개를 포함하도록 구성한다.
여기서 (A4)단계(S140)는, 상기 인코더 회로는, 상기 체크부분행렬 C이 상기 제1열벡터 중 r-1개, 상기 제2열벡터 중 1개를 포함하도록 구성한다.
이에 대해 자세히 설명하면 다음과 같다.
크기가 인 차원 r의 F2 벡터 공간 V를 생각하면, l개의 독립 벡터 세트는 선형 조합의 l차원 부분 공간을 생성하여 개의 요소를 생성한다. 반면에 (r -l) 차원 부분 공간은 l개의 독립 벡터 에 의해 주어진 l개 방정식 의 해 집합으로 결정된다.
또한 0이 아닌 고유한 벡터 v를 선택하여 모든 (r-1) 부분 공간이 이러한 방식으로 결정할 수 있다.
v가 고정되면, x 등의 벡터를 단순히 짝수(even) 또는 홀수(odd)로 부를 수 있다.
짝수 벡터들은 짝수 벡터가 되고, 두 개의 홀수 벡터를 더하면 짝수 벡터가 되며, 짝수 벡터와 홀수 벡터를 더하면 홀수 벡터가 된다.
상기 (A1)단계(S110)에서 특정하는 행벡터 v는 여기서의 0이 아닌 벡터로서 데이터부분행렬 M과 체크부분행렬 C의 열벡터가 v-even인지, v-odd인지 구별하기 위한 벡터이다.
이제 이고, M은 r*k 행렬이라는 점에서, 최소한의 앨리어싱을 가진 H를 찾기 위한 가장 명백한 방법은 M의 열벡터인 에서 모든 홀수 벡터를 가지고 있으면 세 개의 다른 열벡터 중 어느 것도 더하여 0이 되지 않는다.
다만 이러한 경우 C는 짝수 벡터로만 만들어질 수밖에 없어 가역적이지 않다.
이것이 최소한의 앨리어싱 코드를 만드는 방법이다.
이는 다음과 같이 증명될 수 있다.
0이 아닌 짝수 벡터 w, 에 대하여, v를 v+w로 일대일 매핑시키면, 이 매핑은 홀수 벡터의 하위 집합 인 O에 대한 차수 2의 순열(permutation)이며, 또는 오히려 O에 대한 그룹 작업으로 볼 수 있다.
그러면 O는 또는 동등하게 이 되도록 {v, v'} 궤도들의 집합으로 분할될 수 있다. 따라서 짝수 벡터 w는 O와 함께 {w, v, v'} 형식의 정확히 개의 앨리어싱 트리플을 구성한다.
은 짝수 벡터이고 은 M에서 제외 된 홀수 벡터라 하면, 가능한 앨리어싱 트리플에는 적어도 하나의 짝수 벡터가 포함되어야 한다. (앨리어싱 트리플은 {odd, odd, even} 또는 {even, even, even} 형식이다.)
M의 앨리어싱 트리플의 수가 관련되는 한 M의 벡터 순서는 무관하다.
R을 M에 포함되지 않은 벡터의 행렬이라고 가정하면 행렬 C의 모든 벡터가 R에 포함되고 R은 0(제로벡터)도 포함한다.
벡터의 순서는 상대적이지 않으므로 집합으로 간주하면 M과 R을 V의 분할로 간주 할 수 있으며 0 ∈ R 및 |M| = |R| = k이다.
전자의 경우, R의 벡터는 정확히 (r-1) 차원의 부분 공간을 포함한다.
본 발명의 실시예에서 rank(R) = r이면 M은 유효다고 하며, 그렇지 않으면 M을 유효하지 않다고 할 수 있다.
rank(R) = r이면 항상 R의 벡터에서 역행렬 C를 구성 할 수 있으므로 적절한 패리티 검사 행렬 H를 가질 수 있기 때문이다.
이를 증명하면, M이 유효하지 않은 경우 R의 벡터는 정확히 (r-1)개의 부분 공간을 포함하고 집합으로서, M은 R의 보수 이며, 따라서 R의 벡터가 v-even이고 M의 벡터가 v-odd 인 벡터 v가 존재하며, M에 포함된 두 벡터의 합은 R에 속한다.
M에 앨리어싱이 없다고 가정하면, R은 덧셈으로 닫히므로 R은 부분 공간을 포함하며, 이는 크기 때문에 (r-1)-부분 공간임을 의미한다.
M의 벡터 u에 대해 다음 식이 성립한다.
R = {u + v | v ∈ M}
따라서 w1, w2 ∈ R에 대해 w1 = u + v1 및 w2 = u + v2이 성립하는 v1, v2 ∈ M이 있으므로, 따라서 w1 + w2 = v1 + v2 ∈ R이 성립한다.
v-even의 수는 v에 따라 달라질 수 있으며,에서 l은 M에 포함된 짝수 벡터의 개수일 때, 짝수 또는 홀수 벡터가 결정되는 v를 특정하지 않고, 가 성립하는 v의 존재를 찾으면 앨리어싱의 하한을 찾을 수 있으며, 이러한 0이 아닌 벡터 v의 존재가 보장되므로, 하한은 이며, 따라서 이 된다.
을 만족하는 0이 아닌 v가 존재는, 0이 아닌 모든 v에 대한 짝수 벡터의 평균 수가 보다 약간 작다는 것에서 그러면 모든 v에 대해 를 가질 수 없으며, 따라서 평균은 이상이 된다는 점에서 증명된다.
이라 할 때,
이므로,
이다.
이므로,
이 성립한다.
따라서 전체 v의 평균값은
이다. 여기서
예를 들어, n=4인 경우, 4-벡터를 정수 i로 나타낼 수 있다(0≤i≤15).
일 때,
이다.
O = {1, 2, 4, 7, 8, 11, 13, 14},
E = {3, 5, 6, 9, 10, 12, 15}.
여기서,
M = [1, 2, 4, 7, 8, 11, 13, 5]이라 가정한다.
처음 7 개의 벡터는 홀수 벡터이고 마지막 벡터 5는 유일한 짝수 벡터이다. 3 개의 앨리어싱 트리플 {1, 4, 5}, {2, 7, 5} 및 {8, 13, 5}가 있다.
O' = {8, 9, 10, 11, 12, 13, 14, 15},
E' = {1, 2, 3, 4, 5, 6, 7}.
또한 이러한 경우, M에는 5개의 짝수 벡터(1, 2, 4, 5, 7)와 3개의 홀수 벡터(8, 11, 13)가 있다.
물론, 앨리어싱 트리플의 수는 벡터를 짝수 또는 홀수로 간주하는 방식에 따라 변하지 않으며 여전히 3 개이다.
3, 5, 4, 4, 5, 3, 4, 5, 4, 4, 3, 3, 4, 4, 1
상기 (A2)단계(S120)에서는, 크기가 r인 열벡터 중 행벡터 v를 곱한 값이 0인 열벡터를 제1열벡터로, 0이 아닌 열벡터를 제2열벡터로 구분하였는데, 여기서 제1열벡터는 상기의 v-even인 벡터, 제2열벡터는 상기의 v-odd인 벡터를 가리키는 것으로 본다.
따라서 상기 (A3)단계(S130)에서는, 데이터부분행렬 M은 1개의 v-even 벡터와 k-1개의 v-odd 벡터로 이루어지도록 구성한다.
또한 상기 (A4)단계(S140)에서는, 체크부분행렬C는 r-1개의 v-even 벡터와 1개의 v-odd 벡터로 이루어지도록 구성한다.
이러한 체크부분 행렬은 가역적인 행렬로, 역행렬이 존재하는 형태로 구성하며, 그 중 단위 행렬로 C를 구성하는 경우에는 이러한 H행렬은 해밍코드에 해당하게 된다.
[표 1]은 r=4, 5, 6, 7, 8에 대한 실험적 평균 앨리어싱 수와 본 발명의 실시예에 의한 최소 앨리어싱 수를 나타낸다.
도 5는 앨리어싱의 발생 분포도이다.
도 5를 참조하면, 무작위로 선택된 백만 개의 패리티 검사 매트릭스에서 앨리어싱 수의 분포를 보여준다.
[표 1] 및 도 5에 나타난 바와 같이 SEC를 H의 열벡터들이 모두 0이 아니고 중복되지 않으며, 체크부분행렬 C가 역행렬이 존재하도록 설계하는 규칙대로만 설계할 경우 평균값의 분포도가 r이 커질수록 매우 높아지는 것을 알 수 있다.
따라서 본 발명의 실시예에 의할 때 최소 앨리어싱(minimal aliasings)이 발생하도록 SEC를 설계할 수 있다.
도 6은 본 발명의 실시예에 의한 최소 앨리어싱 에러 정정 코드 제공 시스템의 구성도이다.
도 6을 참조하면, 본 발명의 실시예에 의한 최소 앨리어싱 에러 정정 코드 제공 시스템은 r*n 패리티 체크 행렬 H을 갖는 코드 워드를 생성하는 인코더 회로(100), 신드롬에 기초하여 정정회로를 포함하는 ECC를 구현하는 디코더 회로(200)를 포함한다.
여기서 ECC는, 단일 오류 정정(Single Error Correction; 이하 SEC)를 포함하며, 상기 패리티 체크 행렬 H는, 모든 열벡터가 각각 0이 아닌 서로 다른 이진 값을 갖는 것이다.
여기서 인코더 회로(100)는, r 크기의 0이 아닌 이진 행벡터 v를 특정하고, r 크기의 0이 아닌 이진 열벡터 중 상기 행벡터 v를 곱한 결과값이 0인 열벡터를 제1열벡터, 상기 결과값이 0이 아닌 열벡터를 제2열벡터로 구분한 후, 상기 데이터부분행렬 M이 상기 제1열벡터 중 1개 및 상기 제2열벡터 중 k-1개를 포함하도록 구성하고, 상기 체크부분행렬 C이 상기 제1열벡터 중 r-1개, 상기 제2열벡터 중 1개를 포함하도록 구성한다.
이와 같이 데이터부분행렬 M과 체크부분행렬 C를 포함하는 패리티 체크 행렬 H를 생성한다.
여기서 인코더 회로(100)의 최소 앨리어싱을 갖는 패리티 체크 행렬을 구성하는 방법은 상기 방법발명의 설명으로 기재한 바와 동일하다.
여기서도 체크부분행렬 C는 가역적인 행렬이고, 그 중에서 단위 행렬인 경우에는 패리티 체크 행렬 H가 해밍코드로 성립한다.
100 : 인코더 회로
200 : 디코더 회로
200 : 디코더 회로
Claims (10)
- 최소 앨리어싱 에러 정정 코드(Error Correction Code; 이하 ECC) 제공 방법에 있어서,
(A) 인코더 회로는 길이 k를 갖는 메시지 워드를 수신하여 k 데이터 비트를 포함하는 r*k 데이터부분행렬 M 및 r 체크 비트를 포함하는 r*r 체크부분행렬 C를 포함하는 r*n 패리티 체크 행렬 H을 갖는 코드 워드를 생성하는 인코딩 단계; 및
(B) 디코더 회로는 상기 코드 워드를 수신하고, 상기 코드 워드 및 상기 패리티 체크 행렬 H를 이용하여 생성한 신드롬에 기초하여 상기 코드 워드에 포함된 에러 비트들의 적어도 일부를 정정하는 정정회로를 포함하는 ECC를 구현하는 디코딩 단계;
를 포함하되,
상기 r, k, n은 1 이상의 자연수이며, n=k+r이고, 을 만족하고,
상기 (A)단계는,
(A1) 상기 인코더 회로는, r 크기의 0이 아닌 이진 행벡터 v를 특정하는 단계;
(A2) 상기 인코더 회로는, r 크기의 0이 아닌 이진 열벡터 중 상기 행벡터 v를 곱한 결과값이 0인 열벡터를 제1열벡터, 상기 결과값이 0이 아닌 열벡터를 제2열벡터로 구분하는 단계;
(A3) 상기 인코더 회로는, 상기 데이터부분행렬 M이 상기 제1열벡터 중 1개 및 상기 제2열벡터 중 k-1개를 포함하도록 구성하는 단계; 및
(A4) 상기 인코더 회로는, 상기 체크부분행렬 C이 상기 제1열벡터 중 r-1개, 상기 제2열벡터 중 1개를 포함하도록 구성하는 단계;
를 포함하는 것을 특징으로 하는 최소 앨리어싱 에러 정정 코드 제공 방법. - 제1항에 있어서,
상기 ECC는,
단일 오류 정정(Single Error Correction; 이하 SEC)를 포함하며,
상기 패리티 체크 행렬 H는,
모든 열벡터가 각각 0이 아닌 서로 다른 이진 값을 갖는 것
을 특징으로 하는 최소 앨리어싱 에러 정정 코드 제공 방법. - 삭제
- 제1항에 있어서,
상기 체크부분행렬 C는,
가역적인 행렬인 것
을 특징으로 하는 최소 앨리어싱 에러 정정 코드 제공 방법. - 제1항에 있어서,
상기 체크부분행렬 C는,
단위 행렬인 것
을 특징으로 하는 최소 앨리어싱 에러 정정 코드 제공 방법. - 최소 앨리어싱 에러 정정 코드(Error Correction Code; 이하 ECC) 제공 시스템에 있어서,
길이 k를 갖는 메시지 워드를 수신하여 k 데이터 비트를 포함하는 r*k 데이터부분행렬 M 및 r 체크 비트를 포함하는 r*r 체크부분행렬 C를 포함하는 r*n 패리티 체크 행렬 H을 갖는 코드 워드를 생성하는 인코더 회로; 및
상기 코드 워드를 수신하고, 상기 코드 워드 및 상기 패리티 체크 행렬 H를 이용하여 생성한 신드롬에 기초하여 상기 코드 워드에 포함된 에러 비트들의 적어도 일부를 정정하는 정정회로를 포함하는 ECC를 구현하는 디코더 회로;
를 포함하되,
상기 r, k, n은 1 이상의 자연수이며, n=k+r이고, 을 만족하고,
상기 인코더 회로는,
r 크기의 0이 아닌 이진 행벡터 v를 특정하고, r 크기의 0이 아닌 이진 열벡터 중 상기 행벡터 v를 곱한 결과값이 0인 열벡터를 제1열벡터, 상기 결과값이 0이 아닌 열벡터를 제2열벡터로 구분한 후, 상기 데이터부분행렬 M이 상기 제1열벡터 중 1개 및 상기 제2열벡터 중 k-1개를 포함하도록 구성하고, 상기 체크부분행렬 C이 상기 제1열벡터 중 r-1개, 상기 제2열벡터 중 1개를 포함하도록 구성하는 것을 특징으로 하는 최소 앨리어싱 에러 정정 코드 제공 시스템. - 제6항에 있어서,
상기 ECC는,
단일 오류 정정(Single Error Correction; 이하 SEC)를 포함하며,
상기 패리티 체크 행렬 H는,
모든 열벡터가 각각 0이 아닌 서로 다른 이진 값을 갖는 것
을 특징으로 하는 최소 앨리어싱 에러 정정 코드 제공 시스템. - 삭제
- 제6항에 있어서,
상기 체크부분행렬 C는,
가역적인 행렬인 것
을 특징으로 하는 최소 앨리어싱 에러 정정 코드 제공 시스템. - 제6항에 있어서,
상기 체크부분행렬 C는,
단위 행렬인 것
을 특징으로 하는 최소 앨리어싱 에러 정정 코드 제공 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200155665A KR102423489B1 (ko) | 2020-11-19 | 2020-11-19 | 최소 앨리어싱 에러 정정 코드 제공 방법 및 시스템 |
US17/524,803 US11700017B2 (en) | 2020-11-19 | 2021-11-12 | Method and system for providing minimal aliasing error correction code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200155665A KR102423489B1 (ko) | 2020-11-19 | 2020-11-19 | 최소 앨리어싱 에러 정정 코드 제공 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220068661A KR20220068661A (ko) | 2022-05-26 |
KR102423489B1 true KR102423489B1 (ko) | 2022-07-21 |
Family
ID=81586915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200155665A KR102423489B1 (ko) | 2020-11-19 | 2020-11-19 | 최소 앨리어싱 에러 정정 코드 제공 방법 및 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11700017B2 (ko) |
KR (1) | KR102423489B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140245096A1 (en) | 2013-02-28 | 2014-08-28 | Ravi H. Motwani | Single-bit error correction |
US20180203761A1 (en) | 2017-01-19 | 2018-07-19 | Intel Corporation | Targeted aliasing single error correction (sec) code |
US20200210284A1 (en) * | 2018-12-28 | 2020-07-02 | Intel Corporation | Minimal aliasing bit-error correction code |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10382069B2 (en) * | 2015-08-11 | 2019-08-13 | Apple Inc. | Data encoding by efficient inversion of a parity-check sub-matrix |
KR102258140B1 (ko) * | 2017-07-06 | 2021-05-28 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
KR20200099438A (ko) * | 2019-02-14 | 2020-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 |
-
2020
- 2020-11-19 KR KR1020200155665A patent/KR102423489B1/ko active IP Right Grant
-
2021
- 2021-11-12 US US17/524,803 patent/US11700017B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140245096A1 (en) | 2013-02-28 | 2014-08-28 | Ravi H. Motwani | Single-bit error correction |
US20180203761A1 (en) | 2017-01-19 | 2018-07-19 | Intel Corporation | Targeted aliasing single error correction (sec) code |
US20200210284A1 (en) * | 2018-12-28 | 2020-07-02 | Intel Corporation | Minimal aliasing bit-error correction code |
Also Published As
Publication number | Publication date |
---|---|
US11700017B2 (en) | 2023-07-11 |
US20220158656A1 (en) | 2022-05-19 |
KR20220068661A (ko) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6662333B1 (en) | Shared error correction for memory design | |
Tshagharyan et al. | Experimental study on Hamming and Hsiao codes in the context of embedded applications | |
US6981196B2 (en) | Data storage method for use in a magnetoresistive solid-state storage device | |
US20180167088A1 (en) | Error-Correcting Code Method and System with Hybrid Block Product Codes | |
US9696923B2 (en) | Reliability-aware memory partitioning mechanisms for future memory technologies | |
US20220368354A1 (en) | Two-level error correcting code with sharing of check-bits | |
US20170017545A1 (en) | Error correction device, semiconductor storage device, and error correction method | |
Pae et al. | Minimal aliasing single-error-correction codes for dram reliability improvement | |
JP2506936B2 (ja) | メモリの誤り検査方式 | |
US11601137B2 (en) | ECC memory chip encoder and decoder | |
KR102423489B1 (ko) | 최소 앨리어싱 에러 정정 코드 제공 방법 및 시스템 | |
US10970166B2 (en) | Memory system and method of controlling non-volatile memory | |
KR20210132784A (ko) | 메모리 장치 및 메모리 장치로부터 데이터를 읽는 방법 | |
US11949428B2 (en) | Iterative error correction in memory systems | |
US11024402B2 (en) | Memory system and operation method thereof | |
US11309918B2 (en) | Memory system | |
US10951238B1 (en) | Memory system and method for controlling non-volatile memory | |
US20160269046A1 (en) | Memory controller, memory system, and decoding method | |
KR101304570B1 (ko) | 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치 | |
US8756473B1 (en) | Solid state device coding architecture for chipkill and endurance improvement | |
Sim et al. | Design of Two Interleaved Error Detection and Corrections Using Hsiao Code and CRC | |
US20150121170A1 (en) | Storing Data by an ECC Memory | |
US10191807B2 (en) | Memory systems and operation method thereof | |
US10268547B2 (en) | Memory protection device and method | |
JPS5878241A (ja) | 符号化デ−タの誤り検出訂正方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |