KR20230151814A - 정렬된 오류를 정정하는 반도체 칩, 정렬된 오류를 정정하는 반도체 시스템 - Google Patents

정렬된 오류를 정정하는 반도체 칩, 정렬된 오류를 정정하는 반도체 시스템 Download PDF

Info

Publication number
KR20230151814A
KR20230151814A KR1020220051613A KR20220051613A KR20230151814A KR 20230151814 A KR20230151814 A KR 20230151814A KR 1020220051613 A KR1020220051613 A KR 1020220051613A KR 20220051613 A KR20220051613 A KR 20220051613A KR 20230151814 A KR20230151814 A KR 20230151814A
Authority
KR
South Korea
Prior art keywords
bits
errors
data
error correction
column
Prior art date
Application number
KR1020220051613A
Other languages
English (en)
Inventor
김정래
김상효
홍석인
송유석
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020220051613A priority Critical patent/KR20230151814A/ko
Priority to US18/139,440 priority patent/US20230342246A1/en
Publication of KR20230151814A publication Critical patent/KR20230151814A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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/1032Simple parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명의 일 실시예에 따른 정렬된 오류를 정정하는 메모리 칩은 데이터를 획득하고, 기 생성된 오류 정정부호의 생성 행렬과 상기 획득된 데이터를 곱하여 상기 획득된 데이터를 부호화하는 인코더 로직 회로; 상기 부호화된 데이터를 기입하거나, 동작환경에 의해 상기 부호화된 데이터가 변형된 변형 데이터를 독출하는 메모리; 및 상기 변형 데이터를 획득하고, 상기 오류 정정부호의 패리티 검사 행렬을 이용하여 상기 변형 데이터의 단독 오류 및 소정의 비트 수인 제1 값 경계를 넘지 않는 인접 오류만을 정정하는 로직 회로를 포함할 수 있다.

Description

정렬된 오류를 정정하는 반도체 칩, 정렬된 오류를 정정하는 반도체 시스템{SEMICONDUCTOR CHIP OF CORRECTING ALIGNED ERRORAND SEMICONDUCTOR SYSTEM OF CORRECTING ALIGNED ERROR}
본 발명은 정렬된 오류를 정정하는 메모리 칩, 정렬된 오류를 정정하는 메모리 시스템 및 정렬된 오류를 정정하는 반도체 칩에 관한 것이다.
오류 정정 부호는 변형된 전송 데이터의 오류를 정정하여 원본 전송 데이터로 복원할 수 있다. 오류정정 부호는 통신 시스템에서 데이터를 송신 또는 수신하는 과정에서 발생하는 잡음(noise)으로부터 데이터를 보호하기 위해 사용되기도 하고, SRAM(Static Random Access Memory), MRAM(Magnetic Random Access Memory), DRAM(Dynamic Random Access Memory) 등과 같은 메모리 반도체에 저장되어 있던 데이터를 보호하기 위해 사용되기도 한다. 랜덤 액서스 메모리에서 오류정정 부호를 이용하는 경우, 데이터의 보호수준과 면적 부담(Area Overhead), 실행 속도, 에너지 소모 등을 고려하여 여러 오류정정 부호 중에서 선택하여 이용한다.
선형 이진 부호는 패리티 검사 행렬(parity check matrix)에 의해 결정될 수 있다. 따라서, 선형 이진 부호는 패리티 검사 행렬의 성질에 따라 오류 정정 능력이 결정되게 된다. 선형 이진 부호중에서 단일 오류정정 부호는 변형된 전송 데이터에 단일 오류가 존재할 때, 단일 오류를 정정할 수 있다. 단일 오류를 정정하기 위해, 선형 이진 부호의 패리티 검사 행렬의 성질은 첫 번째로, 패리티 검사 행렬의 모든 열(column)이 0이 아니어야 하고, 두 번째로, 패리티 검사 행렬의 모든 열이 독립이어야 한다. 여기서, 모든 열이 독립이라는 것은 모든 열이 서로 다른 값을 갖는 경우를 의미한다.
오류정정 부호의 패리티 비트(parity bit) 수를 늘려 보호수준을 높이는 경우, 면적 부담이 늘거나 부호 및 복호 과정의 지연시간이 증가하는 문제가 발생할 수 있다. 따라서, 메모리 반도체는 면적 부담이 적고, 부호화 및 복호화 복잡도가 낮은 단일 오류정정 부호를 오류정정 부호로서 이용되고 있다. 하지만, 단일 오류정정 부호는 단일 오류만을 정정할 수 있기 때문에 다수의 오류가 발생한 데이터를 복원할 수 없는 문제가 있다.
SEC(Single Error Correction)-DED(Double error detection)-DAEC(double adjacent error correction) 부호는 변형된 데이터에서 오류가 인접해서 나타나는 경우 발생된 인접된 오류까지 정정하는 오류정정 부호이다. 따라서 더욱 강한 오류 정정 효과가 제공된다. 하지만, SEC-DED-DAEC 부호는 변형된 데이터가 두 개의 오류가 인접하지 않고 발생되는 경우에, 오류가 발생되었다는 것을 탐지할 수 있지만 오류를 정정하지는 못한다.
한편 SEC-DED-DAEC 부호는 단일 오류정정 부호보다 패리티 비트 수를 추가로 필요로 하고, 변형된 데이터에서 인접하지 않은 이중 오류 사이에 잘못 수정(miscorrection)할 경우가 존재할 수 있는 문제가 존재한다.
본 발명이 해결하고자 하는 과제는 메모리에서 오류정정 부호의 패리티 비트 수를 늘리지 않고 단일 오류뿐 아니라 니블(nibble) 또는 바이트(byte) 단위로 정렬된 오류를 정정하는 방법 및 장치를 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 정렬된 오류를 정정하는 반도체 칩은 데이터를 획득하고, 기 생성된 오류 정정부호의 생성 행렬과 상기 획득된 데이터를 곱하여 상기 획득된 데이터를 부호화하는 인코더 로직 회로; 상기 부호화된 데이터를 기입하거나, 동작환경에 의해 상기 부호화된 데이터가 변형된 변형 데이터를 독출하는 메모리; 및 상기 변형 데이터를 획득하고, 상기 오류 정정부호의 패리티 검사 행렬을 이용하여 상기 변형 데이터의 단독 오류 및 소정의 비트 수인 제1 경계를 넘지 않는 인접 오류만을 정정하는 로직 회로를 포함한다.
상기 오류 정정부호는 원시 데이터 비트 수는 128 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 8 비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류들을 정정할 수 있다.
상기 오류 정정부호는 원시 데이터 비트 수는 64 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 4 비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류 및 삼중 인접 오류를 정정할 수 있다.
상기 오류 정정부호는 상기 제1 값에 기초하여 복수의 열(column)-거듭제곱 변환방법을 선정하고, 단위 행렬의 크기가 상기 제1 값인 단위 행렬의 각 열과 상기 단위행렬의 인접하는 열의 성분들의 합을 통해 얻어진 가산열을 포함하는 복수의 독립성 판단 열을 생성하고, 각 독립성 판단 열을 상기 복수의 열-거듭제곱 변환방법을 이용하여, 복수의 거듭제곱으로 변환하며, 각 열-거듭제곱 변환방법에 대해 상기 변환된 복수의 거듭제곱이 모두 독립성을 만족하는 최종 변환방법을 결정하고, 상기 결정된 최종 변환방법을 기초로 상기 정렬된 오류 정정 부호의 상기 패리티 검사(parity check) 행렬 및 상기 생성 행렬을 생성함으로써 생성된 것 일 수 있다.
본 발명의 다른 실시예에 따른 정렬된 오류를 정정하는 반도체 시스템은 메모리 셀에 부호화된 데이터를 기입하거나, 상기 메모리 셀로부터 상기 메모리의 동작환경에 의해 상기 부호화된 데이터가 변형된 변형 데이터를 독출하는 메모리 칩; 및 상기 메모리 칩을 제어하는 제어 칩을 포함하되, 상기 제어 칩은, 데이터를 획득하고, 기 생성된 오류 정정부호의 생성 행렬과 상기 획득된 데이터를 곱하여 상기 획득된 데이터를 부호화하며 상기 부호화된 데이터를 상기 메모리 칩에 저장하는 인코더 로직 회로; 및 상기 메모리 칩으로부터 상기 변형 데이터를 획득하고, 상기 오류 정정부호의 패리티 검사 행렬을 이용하여 상기 변형 데이터의 단독 오류 및 소정의 비트 수인 제1 값 경계를 넘지 않는 인접 오류만을 정정하는 로직 회로를 포함한다.
상기 오류 정정부호는 원시 데이터 비트 수는 128 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 8 비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류를 정정할 수 있다.
상기 오류 정정부호는 원시 데이터 비트 수는 64 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 4비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류 및 삼중 인접 오류를 정정할 수 있다.
상기 오류 정정부호는 상기 제1 값에 기초하여 복수의 열(column)-거듭제곱 변환방법을 선정하고, 단위 행렬의 크기가 상기 제1 값인 단위 행렬의 각 열과 상기 단위행렬의 인접하는 열의 성분들의 합을 통해 얻어진 가산열을 포함하는 복수의 독립성 판단 열을 생성하고, 각 독립성 판단 열을 상기 복수의 열-거듭제곱 변환방법을 이용하여, 복수의 거듭제곱으로 변환하며, 각 열-거듭제곱 변환방법에 대해 상기 변환된 복수의 거듭제곱이 모두 독립성을 만족하는 최종 변환방법을 결정하고, 상기 결정된 최종 변환방법을 기초로 상기 오류 정정 부호의 상기 패리티 검사(parity check) 행렬 및 상기 생성 행렬을 생성함으로써 생성된 것일 수 있다.
본 발명의 또 다른 실시예에 따른 정렬된 오류를 정정하는 반도체 칩은 데이터 및 부호화된 데이터가 통신으로 변형된 변형 데이터를 수신하고, 부호화된 데이터 및 복호화된 데이터를 송신하는 송수신부; 기 생성된 오류 정정부호의 생성 행렬과 상기 데이터를 곱하여 상기 데이터를 부호화하여 상기 부호화된 데이터를 생성하는 인코더 로직 회로; 및 상기 오류 정정부호의 패리티 검사 행렬을 이용하여 상기 변형 데이터의 단독 오류 및 소정의 비트 수인 제1 값 경계를 넘지 않는 인접 오류만을 정정하는 로직 회로를 포함한다.
상기 오류 정정부호는 원시 데이터 비트 수는 128 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 8 비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류를 정정할 수 있다.
상기 오류 정정부호는 원시 데이터 비트 수는 64 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 4비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류 및 삼중 인접 오류를 정정할 수 있다.
상기 오류 정정부호는 상기 제1 값에 기초하여 복수의 열(column)-거듭제곱 변환방법을 선정하고, 단위 행렬의 크기가 상기 제1 값인 단위 행렬의 각 열과 상기 단위행렬의 인접하는 열의 성분들의 합을 통해 얻어진 가산열을 포함하는 복수의 독립성 판단 열을 생성하고, 각 독립성 판단 열을 상기 복수의 열-거듭제곱 변환방법을 이용하여, 복수의 거듭제곱으로 변환하며, 각 열-거듭제곱 변환방법에 대해 상기 변환된 복수의 거듭제곱이 모두 독립성을 만족하는 최종 변환방법을 결정하고, 상기 결정된 최종 변환방법을 기초로 상기 오류 정정 부호의 상기 패리티 검사(parity check) 행렬 및 상기 생성 행렬을 생성함으로써 생성된 것일 수 있다.
본 발명의 실시예에 따르면, 랜덤 액서스 메모리에서 오류정정 부호의 패리티 비트 수를 늘리지 않고도, 변형된 데이터의 단일 오류 및 니블 또는 바이트 정렬된 이중 인접 오류도 정정할 수 있다.
또한, 본 발명의 실시예에 따르면, 변형된 데이터에 대해 정정가능한 오류의 수는 증가시키면서도, 이에 패리티 비트의 수를 늘리지 않으므로 면적 부담을 줄일 수 있어 메모리 반도체 설계에 있어, 비용 부담을 줄일 수 있는 효과가 있다.
본 발명의 실시예에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 정렬된 오류를 정정하는 메모리 칩을 설명하기 위한 블록 구성도이다.
도 2는 본 발명의 실시예에 따른 정렬된 오류 정정 부호 생성 장치를 설명하기 위한 블록 구성도이다.
도 3은 본 발명의 실시예에 따른 정렬된 오류 정정 부호를 생성하기 위한 단위 행렬 및 인접행렬이다.
도 4는 본 발명의 실시예에 따른 열-거듭제곱 변환 방법을 나타낸 표이다.
도 5는 본 발명의 실시예에 따른 이중인접 오류 정정 부호와 다른 부호를 비교한 표이다.
도 6은 본 발명의 일 실시예에 따른, 정렬된 오류 정정 부호 생성 장치를 하드웨어적 측면에서 설명하기 위한 블록 구성도이다.
도 7은 본 발명의 실시예에 따른 정렬된 오류 정정 부호 생성 방법의 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 실시예에 따른 정렬된 오류를 정정하는 반도체 칩을 설명하기 위한 블록 구성도이다.
도 1을 참조하면, 실시예에 따라, 정렬된 오류 정정 반도체 칩(100)은 메모리(110), 송수신부(120), 인코더 로직 회로(130) 로직 회로(140)를 포함할 수 있다. 다만, 정렬된 오류 정정 반도체 칩(100)의 구성은 이에 한정되는 것은 아니다. 예를 들어, 실시예에 따라, 정렬된 오류 정정 반도체 칩(100)은 메모리(110), 인코더 로직 회로(130) 및 로직 회로(140)만을 포함할 수 있다. 이 경우, 메모리와 오류 정정을 위한 회로가 같은 반도체 칩에 존재하기 때문에 정렬된 오류 정정 반도체 칩(100)은 데이터를 수신하기 위한 송수신부(120)는 포함하지 않을 수 있다.
이하에서는 정렬된 오류 정정 반도체 칩(100)이 단독 오류 및 정렬된 인접 오류를 정정하는 방법을 설명한다.
본 명세서에서는, 설명의 편의상 정렬된 오류 정정 반도체 칩(100)은 메모리(110)와 인코더 로직 회로(130) 및 로직 회로(140)가 하나의 칩으로 구현되는 경우를 예로 들어 설명하지만, 이에 한정되지 않는다. 즉, 실시예에 따라, 메모리(110) 칩과 별도의 제어 칩을 포함하는 메모리 시스템으로 구현될 수 있으며, 여기서 제어 칩은 인코더 로직 회로(130)와 로직 회로(140)를 포함할 수 있다.
여기서, 메모리(110)는 랜덤 액서스 메모리를 포함할 수 있고, 저장된 정보를 읽어내기도 하고 다른 정보를 저장시킬 수도 있는 메모리로서, 컴퓨터의 주기억장치, 응용 프로그램의 일시적 로딩(loading), 데이터의 일시적 저장 등에 사용될 수 있다. 또한, 랜덤 액서스 메모리는 DRAM, SRAM, MRAM 등을 포함할 수 있다.
메모리(110)에 저장되는 데이터는 0 또는 1을 갖는 이진 데이터일 수 있다. 또한, 메모리(110)는 저장될 데이터를 획득하여, 메모리(110)에 데이터를 쓰거나 읽는 동작을 수행할 수 있다. 이를 위하여, 랜덤 액서스 메모리는 셀 어레이, 코어, 주변회로 등을 포함할 수 있다.
정렬된 오류 정정 반도체 칩(100)은 메모리(110) 내부에 저장된 데이터가 변형되는 경우, 변형된 데이터를 기 생성된 정렬된 오류 정정 부호를 이용하여 복원시킬 수 있다.
이를 위해, 정렬된 오류 정정 부호는 부호화 하기 위한 생성행렬(Generator matrix) 및 패리티 검사 행렬(Parity check matrix)를 포함할 수 있다. 여기서 정렬된 오류 정정 부호를 생성하는 방법은 후술하기로 한다.
또한, 정렬된 오류 정정 반도체 칩(100)은 메모리(110)와는 구분되는 외부 장치로부터 메모리(110)에 저장될 데이터를 획득할 수 있다. 여기서, 외부 장치는 메모리(110)에 저장될 데이터를 전송하는 장치일 수 있다. 예를 들어, 외부 장치는 메모리 콘트롤러를 포함하는 CPU(Central Processing Unit)일 수 있다.
송수신부(120)는 외부 장치와 통신을 수행하며, 외부 장치로 데이터를 송신하거나 외부 장치로부터 데이터를 수신할 수 있다. 여기서, 송수신부(120)가 외부 장치와 통신을 수행하는 방법은 기 공지된 방법이면 어떤 것이든 이용할 수 있다.
여기서, 송수신부(120)에 의해 외부 장치와 데이터를 송신 및 수신하면서, 통신과정에서 데이터가 변형될 수 있으므로, 정렬된 오류 정정 반도체 칩(100)은 변형된 데이터를 정렬된 오류 정정 부호를 이용하여 복원시킬 수 있다.
정렬된 오류 정정 반도체 칩(100)은 후술할 도 2의 정렬된 오류 정정 부호 생성 장치(200)에 의해 기 생성된 정렬된 오류 정정 부호의 생성행렬을 이용하여, 획득된 데이터를 부호화 한 뒤, 메모리(110)에 저장하도록 할 수 있다. 정렬된 오류 정정 반도체 칩(100)은 기 생성된 정렬된 오류 정정 부호를 이용하여, 메모리(110)에 의해 변형된 데이터를 복호화할 수 있다. 이 경우, 정렬된 오류 정정 반도체 칩(100)은 후술할 도 2의 정렬된 오류 정정 부호 생성 장치(200)가 생성한 정렬된 오류 정정 부호를 이용하여 데이터를 부호화 및 복호화하는 과정을 통해, 정렬된 오류 정정 반도체 칩(100) 내부에서 오류를 정정(On-Die ECC)하는 역할을 수행한다.
인코더 로직 회로(130)는 데이터를 획득하고, 기 생성된 정렬된 오류 정정부호의 생성 행렬과 상기 획득된 데이터를 곱하여 상기 획득된 데이터를 부호화할 수 있다. 부호화된 데이터는 메모리(110)에 저장될 수 있고, 메모리(110)의 동작환경에 따라, 상기 부호화된 데이터가 변형될 수 있다.
메모리(110)에 저장된 데이터는 열, 외부 자극 등의 메모리의 동작환경에 의해 변형될 수 있으므로, 정렬된 오류 정정 반도체 칩(100)은 후술할 도 2의 정렬된 오류 정정 부호 생성 장치(200)에 의해 기 생성된 정렬된 오류 정정 부호를 이용하여 저장될 데이터를 부호화 및 복호화하는 과정을 통해 변형된 데이터를 정정하여 원본 데이터로 복원할 수 있다.
여기서, 메모리의 동작환경은 로우 해머링(rowhammering), 공정상 결함 및 높은 온도로 인한 큰 누설 전류 중 적어도 하나를 포함할 수 있다.
여기서, 로우 헤머링은 같은 로우에 대해 반복적으로 접근하여 메모리 비트를 변경할 수 있는 전기적 방해가 일어나면서, 해당 메모리 로우에 인접한 메모리에 영향을 미쳐 0과 1이 뒤바뀌는 비트플립이 발생하는 동작환경을 의미한다. 또한, 공정상 결함은 메모리의 설계 및 제작을 포함하는 공정상에서 결함이 발생하여 저장된 데이터에 대해 비트플립이 발생하는 동작환경을 의미한다. 또한, 높은 온도로 인한 큰 누설 전류는 메모리에 높은 온도로 인해 큰 누설 전류(leakage current)가 발생하여 저장된 데이터에 대해 비트플립이 발생하는 동작환경을 의미한다.
다만, 메모리의 동작환경은 상술한 환경에 한정되는 것은 아니며, 메모리(110)에 저장된 데이터가 변형될 수 있는 기 공지된 환경을 포함한다.
로직 회로(140)는 메모리(110)의 동작환경에 의해 부호화된 데이터가 변형된 변형 데이터를 획득하고, 정렬된 오류 정정부호의 패리티 검사 행렬을 이용하여 상기 변형 데이터의 단독 오류 및 소정의 비트 수인 제1 값 이내의 적어도 하나의 인접 오류를 정정할 수 있다.
이로써, 메모리(110)의 동작환경에 의해 변형된 데이터의 단독 오류 및 특정 배수의 경계를 넘는 인접오류들을 제외한 나머지 인접오류를 정정할 수 있다.
이하에서는, 정렬된 오류 정정 부호 생성 장치(200)가 정렬된 오류 정정 부호를 생성하는 방법에 대해 자세하게 설명한다.
도 2는 본 발명의 실시예에 따른 정렬된 오류 정정 부호 생성 장치를 설명하기 위한 블록 구성도이다.
도 2를 더 참조하면, 정렬된 오류 정정 부호 생성 장치(200)는 송수신부(210), 열-거듭제곱 변환방법 생성부(220), 최종 변환방법 선정부(230) 및 패리티 검사 행렬 결정부(240)를 포함할 수 있다.
송수신부(210)는 기 설정된 패리티 비트의 개수, 정렬된 오류 정정 부호의 길이, 메모리에 저장될 데이터 등을 획득할 수 있다. 송수신부(210)가 기 설정된 패리티 비트의 개수, 정렬된 오류 정정 부호의 길이, 저장될 데이터 등을 획득하는 방법은 유선 또는 무선 통신을 이용하여 수신받을 수도 있다. 송수신부(210)가 데이터 등을 획득하는 방법은 이에 한정되지 않는다.
정렬된 오류 정정 부호 생성 장치(200)가 생성하는 정렬된 오류 정정 부호는 데이터를 부호화 하기 위한 생성행렬과 패리티 검사 행렬을 포함할 수 있다. 여기서 생성행렬 및 패리티 검사 행렬의 크기는 원시 데이터의 크기 k 및 패리티 비트의 수 n-k로 결정된다.
일 실시예에 따라, 단독 오류 뿐 아니라 바이트(byte) 단위로 이중 인접 오류를 정정할 수 있는 정렬된 오류 정정부호의 원시 데이터 비트 수는 128 비트이고, 패리티 비트 수는 8 비트일 수 있다. 또한, 상기 정렬된 오류 정정부호는 8 비트 단위를 경계로 정렬되어 8 비트 경계를 넘는 이중 인접오류를 제외한 이중 인접오류를 정정할 수 있다.
또한, 실시예에 따라, 단독 오류 뿐 아니라 니블(nibble) 단위로 이중 인접 오류 및 삼중 인접 오류를 정정할 수 있는 정렬된 오류 정정부호의 원시 데이터 비트 수는 64 비트이고, 패리티 비트 수는 8 비트일 수 있다. 또한, 상기 정렬된 오류 정정부호는 4 비트 단위를 경계로 정렬되어 4 비트 경계를 넘는 이중 인접오류를 제외한 이중 인접오류를 정정할 수 있다.
이 경우, 정렬된 오류 정정 부호의 생성행렬 G는 와 같은 형태를 가질 수 있다. 여기서, 는 행과 열이 모두 k개인 단위 행렬을 의미하고, 는 오류정정 부호의 성질에 따라 결정된 패리티 행렬을 의미하며, P는 행이 k개이고 열이 n-k개를 가질 수 있다. 생성행렬 G가 결정되면, 데이터를 복호화하는 패리티 검사 행렬 H는 과 같이 결정될 수 있다. 여기서, 는 생성행렬 G에 포함된 P의 전치행렬(Transposed matrix)를 의미하고, 는 행과 열이 모두 n-k개인 단위행렬을 의미한다.
즉, 정렬된 오류 정정 부호 생성 장치(200)에 의해 생성된 정렬된 오류 정정 부호는 길이 k를 갖는 저장될 데이터를 벡터화하여 생성행렬 G와의 곱으로 n의 길이를 갖는 데이터로 부호화할 수 있다. 이어서, n의 길이를 갖는 부호화된 데이터를 벡터화하여 패리티 검사 행렬 H와의 곱한 결과를 신드롬(syndrome)과 비교하여 오류를 정정하고 원래 데이터로 복원할 수 있다.
따라서, 정렬된 오류 정정 부호는 생성행렬 또는 패리티 검사 행렬로 정의될 수 있으므로, 본 명세서에서는 정렬된 오류 정정 부호 생성 장치(200)가 생성하는 정렬된 오류 정정 부호는 정렬된 오류 정정 부호의 패리티 검사 행렬로 설명한다.
일 실시예에 따라, 정렬된 오류 정정 부호 생성 장치(200)가 생성하는 정렬된 오류 정정 부호의 패리티 검사 행렬은 하기의 네 가지 성질을 가지고 있다. 제1 성질은 패리티 검사 행렬의 모든 열은 0이 아닌 성질이고, 제2 성질은 모든 열은 서로 같지 않다는 것이고, 제3 성질은 모든 제1 길이 내의 이중 인접 컬럼의 합은 서로 같지 않은 것이며, 제4 성질은 모든 제1 길이 내의 이중 인접 컬럼의 합과 모든 열은 서로 같지 않아야 한다는 것이다. 모든 성질을 만족하는 경우, 패리티 검사 행렬의 모든 열은 독립성을 만족한다고 정의될 수 있다.
여기서, 제1 길이는 데이터가 부호화된 길이 n을 제1 길이로 나누어 떨어지도록 하게 만드는 길이이다. 예를 들어, 제1 길이는 바이트(byte)의 길이로 8이거나 니블(nibble) 단위 길이로 4일 수 있다.
이하 도 3 내지 도 5에서는, 정렬된 오류 정정 부호 생성 장치(200)가 생성하는 정렬된 오류 정정 부호에 대해, 저장될 원본 데이터의 길이가 128이고, 패리티 비트의 수 및 제1 길이가 8 인 경우를 예를 들어 설명한다.
도 3은 본 발명의 실시예에 따른 정렬된 오류 정정 부호를 생성하기 위한 단위 행렬 및 인접행렬이고, 도 4는 본 발명의 실시예에 따른 열-거듭제곱 변환 방법을 나타낸 표이다.
도 3 및 도 4를 더 참조하면, 열-거듭제곱 변환방법 생성부(220)는 도 3의 (a)의 행과 열의 수가 8인 단위행렬 및 도 3의 (b)의 인접행렬을 이용하여, 정렬된 오류 정정 부호를 결정할 수 있다.
여기서, 열-거듭제곱 변환방법 생성부(220)가 이용하는 인접행렬은 단위행렬의 제1열과 제2열의 합을 제1열로 갖고, 제2열과 제3열의 합을 제2열로 갖는 방법으로 8개의 행과 7개의 열을 갖는다.
이어서, 최종 변환방법 선정부(230)는 열-거듭제곱 변환방법 생성부(220)가 생성한 열-거듭제곱 변환방법 중에서, 단위 행렬 및 인접행렬의 각 열에 대하여, 모든 열이 독립성을 만족하는지 판단하여 최종 변환방법을 선정할 수 있다.
이를 위하여, 일 실시예에 따라, 최종 변환방법 선정부(230)는 기 설정된 패리티 비트 수인 제1 값에 기초하여, 복수의 열(row)-거듭제곱 변환방법을 선정할 수 있다. 이 경우, 최종 변환방법 선정부(230)는 제1 값이 자연수 n인 경우, 갈루아 필드(GF, Galois Field)의 원시 다항식(primitive polynomial)으로 열 벡터를 거듭제곱으로 변환하는 방법을 상기 열-거듭제곱 변환방법으로서 선정할 수 있다. 여기서 원시 다항식은 데이터 전송에서 오류의 검출을 위해 사용되는 2진 계수 다항식(binary polynomial)을 의미한다.
예를 들어, 제1 값이 8인 경우, 열-거듭제곱 변환방법 생성부(220)가 생성하는 의 원시 다항식은 16개가 존재하므로, 열-거듭제곱 변환방법도 16가지 방법이 존재하게 된다. 도 4는 열-거듭제곱 변환방법 생성부(220)가 원시다항식이 0x14D에 해당하는 의 제1 변환 및 원시다항식이 0x165에 해당하는 의 제2 변환에 대한 열-거듭제곱 변환 표를 나타낸다. 도 4의 열-거듭제곱 변환 표를 살펴보면, 열-거듭제곱 변환방법 생성부(220)는 도 4의 단위 행렬 및 인접 행렬의 모든 열 벡터에 대응되는 거듭제곱 형태를 표로서 나타낼 수 있다.
실시예에 따라, 최종 변환방법 선정부(230)는 생성된 복수의 열-거듭제곱 변환방법 중에서, 최종 변환방법을 선정하기 위해, 각 열-거듭제곱 변환방법에 의해 단위 행렬 및 인접 행렬의 모든 열 벡터가 거듭제곱 형태로 변환된 거듭제곱 형태중에서 모든 거듭제곱이 독립성을 만족하는 경우를 최종 변환방법으로 선정할 수 있다.
최종 변환방법 선정부(230)는 거듭제곱 형태가 독립성을 만족하는 지 판단하기 위해, 상기 변환된 복수의 거듭제곱의 지수들을 모듈러(modular) 연산하여 상기 연산된 값들이 모두 서로 다른 값을 갖는 변환 방법을 최종 변환방법으로서 선정할 수 있다.
여기서, 모듈러 연산은 각 거듭제곱의 지수를 제1 값의 두 배보다 하나 작은 자연수인 제2 값으로 나눈 나머지 연산일 수 있다.
예를 들어, 도 4의 제1 변환의 경우, 15개의 모든 열들을 거듭제곱으로 변환하였을 때 각 거듭제곱의 지수는 {0,1,2,3,4,5,6,7,23,24,25,26,27,28,29}의 제1 집합으로 나타낼 수 있다. 제1 집합의 각 원소를 제2 개수인 15로 모듈러 연산하면, 제1 집합의 원소는 {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}로 모두 서로 다른 값을 가지므로 제1 집합을 생성하는 변환방법은 최종 변환방법으로 선정될 수 있다. 제2 변환의 15개의 열들을 거듭제곱으로 변환하였을 때 각 거듭제곱의 지수는 {0,1,2,3,4,5,6,7,233,234,235,236,237,238,239}의 제2 집합으로 나타낼 수 있다. 또한, 제2 집합의 각 원소를 15로 모듈러 연산하면, 제2 집합의 원소는 {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}로 모두 서로 다른 값을 가지므로 제2 집합을 생성하는 변환방법도 최종 변환방법으로 선정될 수 있다.
실시예에 따라, 최종 변환방법 선정부(230)에 의해 최종 변환방법이 선정되면, 패리티 검사 행렬 결정부(240)는 최종 변환방법에 의해 생성된 지수의 집합을 확장하여 패리티 검사 행렬에 포함되는 복수의 집합을 결정함으로써, 패리티 검사 행렬을 결정할 수 있다.
패리티 검사 행렬 결정부(240)가 지수의 집합을 확장하기 위해, 독립성을 만족하는 집합에 대해, 각 원소에 제2 개수의 배수를 더해가면서 복수의 집합을 생성할 수 있다. 여기서, 최종 변환방법 선정부(230)가 생성하는 복수의 집합의 개수는 부호화된 데이터의 길이를 제1 값으로 나눈 몫에서 하나 작은 개수를 생성할 수 있다. 이는 확장된 집합이전에 독립성을 만족하는 집합이 존재하기 때문이다.
또한, 패리티 검사 행렬 결정부(240)는 생성된 복수의 거듭제곱 집합을 상기 선정된 최종 변환방법을 이용하여, 각 집합을 복수의 열 그룹으로 변환하고, 변환된 복수의 열 그룹을 임의로 배열하여 상기 정렬된 오류 정정 부호의 패리티 검사 행렬을 생성할 수 있다.
패리티 검사 행렬 결정부(240)는 제1 값이 자연수 n이고, 상기 복수의 거듭제곱 그룹에 포함되는 거듭제곱의 지수가 값 이상인 경우, 의 모듈러 연산의 결과 값을 거듭제곱의 지수로 결정하여, 상기 복수의 거듭제곱 그룹을 생성할 수 있다.
예를 들어, 최종 변환방법 선정부(230)에 의해 제1 집합 {0,1,2,3,4,5,6,7,23,24,25,26,27,28,29}이 독립성을 만족한다고 판단된 경우, 패리티 검사 행렬 결정부(240)는 제1 집합의 각 원소에 15의 배수를 더하여 복수의 집합을 생성할 수 있다. 여기서, 생성되는 집합의 개수는 부호화된 데이터의 길이가 136을 제1 값인 8로 나눈 값인 17개에서 하나 적은 16개일 수 있다. 즉, 패리티 검사 행렬 결정부(240)는 서로 독립성을 만족하는 17개의 열 집합을 생성할 수 있다. 이 경우, 집합의 각 원소에 15의 배수를 더하면서 인 255가 넘어가는 지수는 255로 모듈러 연산한 결과 값으로 대체된다.
이어서, 패리티 검사 행렬 결정부(240)는 생성된 17개의 열 집합을 임의로 배열하여 패리티 검사 행렬을 결정할 수 있다.
또한, 패리티 검사 행렬 결정부(240)는 생성된 패리티 검사 행렬을 이용하여 생성 행렬을 생성할 수 있다.
도 5는 본 발명의 실시예에 따른 정렬된 오류 정정 부호와 다른 부호를 비교한 표이다.
도 5를 더 참조하면, 본 발명의 실시예에 따른 정렬된 오류 정정 부호 생성 장치(200)가 생성한 SEC-BADAEC부호는 종래의 SEC부호에 대해서 패리티 비트의 수 및 면접 부담은 동일하면서도, 정정 가능한 오류 패턴 수를 비약적으로 증가시킬 수 있다.
또한, 본 발명의 실시예에 따른 정렬된 오류 정정 부호 생성 장치(200)가 생성한 SEC-BADAEC부호는 종래의 SEC-DED-DAEC 부호에 대해서도 정정 가능한 오류 패턴수는 동일하면서도, 면적 부담이 줄어드는 효과가 있다.
도 6은 본 발명의 일 실시예에 따른, 정렬된 오류 정정 부호 생성 장치를 하드웨어적 측면에서 설명하기 위한 블록 구성도이다.
도 6을 더 참조하면, 정렬된 오류 정정 부호 생성 장치(200)는 적어도 하나의 명령을 저장하는 저장장치(261) 및 상기 저장장치(261)의 적어도 하나의 명령을 실행하는 프로세서(262), 송수신 장치(263) 및 입력 인터페이스 장치(264)를 포함할 수 있다.
정렬된 오류 정정 부호 생성 장치(200)에 포함된 각각의 구성 요소들(261, 262, 263, 264, 265)은 데이터 버스(bus, 266)에 의해 연결되어 서로 통신을 수행할 수 있다.
저장장치(261)는 메모리 또는 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나를 포함할 수 있다. 예를 들어, 저장장치(261)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나를 포함할 수 있다.
저장장치(261)는 후술될 프로세서(262)에 의해 실행될 적어도 하나의 명령을 더 포함할 수 있고, 입력 인터페이스 장치(264)에서 사용자로부터 입력된 패리티 비트의 수, 입력 데이터의 길이, 부호화된 데이터의 길이 등을 저장할 수 있다.
프로세서(262)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), MCU(micro controller unit) 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.
프로세서(262)는 앞서 설명한 바와 같이, 저장장치(261)에 저장된 적어도 하나의 프로그램 명령에 의해 열-거듭제곱 변환방법 생성부(220), 최종 변환방법 선정부(230) 및 패리티 검사 행렬 결정부(240)의 기능을 수행할 수 있으며, 이들 각각은 적어도 하나의 모듈의 형태로 메모리에 저장되어 프로세서에 의해 실행될 수 있다.
송수신 장치(263)는 내부 장치 또는 통신으로 연결된 외부 장치로부터 데이터를 수신하거나 송신할 수 있고, 송수신부(210)의 기능을 수행할 수 있다.
입력 인터페이스 장치(264)는 사용자로부터 적어도 하나의 제어 신호 또는 설정 수치를 입력받을 수 있다. 예를 들어, 입력 인터페이스 장치(264)는 패리티 비트의 수, 입력 데이터의 길이, 부호화된 데이터의 길이 등의 사용자 입력을 받을 수 있다
이상에서는, 본 발명의 일 실시예에 따른 정렬된 오류 정정 부호 생성 장치(200)를 설명하였다. 이하에서는 실시예에 따른 상기 정렬된 오류 정정 장치 내 프로세서 동작에 의해 실행되는 정렬된 오류 정정 부호 생성 방법을 설명한다.
도 7은 본 발명의 다른 실시예에 따른 정렬된 오류 정정 부호 생성 방법의 순서도이다.
도 7을 더 참조하면, 먼저, 송수신 장치(263)는 기 설정된 패리티 비트(parity bit)의 비트 수인 제1 값을 획득하고, 프로세서(262)는 획득된 제1 값에 기초하여 복수의 열(column)-거듭제곱 변환방법을 선정할 수 있다(S100).
이어서, 프로세서(262)는 단위 행렬의 크기가 상기 제1 값인 단위 행렬의 각 열과 상기 단위행렬의 인접하는 열의 성분들의 합을 통해 얻어진 가산열을 포함하는 복수의 독립성 판단 열을 생성할 수 있다(S200).
프로세서(262)는 각 독립성 판단 열을 상기 복수의 열-거듭제곱 변환방법을 이용하여, 복수의 거듭제곱으로 변환할 수 있다(S300).
또한, 프로세서(262)는 각 열-거듭제곱 변환방법에 대해 상기 변환된 복수의 거듭제곱이 모두 독립성을 만족하는 최종 변환방법을 결정할 수 있다(S400).
프로세서(262)는 결정된 최종 변환방법을 기초로 정렬된 오류 정정 부호의 패리티 검사(parity check) 행렬을 생성할 수 있다(S500).
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방법으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 정렬된 오류 정정 메모리 칩
200 : 정렬된 오류 정정 부호 생성 장치

Claims (12)

  1. 데이터를 획득하고, 기 생성된 오류 정정부호의 생성 행렬과 상기 획득된 데이터를 곱하여 상기 획득된 데이터를 부호화하는 인코더 로직 회로;
    상기 부호화된 데이터를 기입하거나, 동작환경에 의해 상기 부호화된 데이터가 변형된 변형 데이터를 독출하는 메모리; 및
    상기 변형 데이터를 획득하고, 상기 오류 정정부호의 패리티 검사 행렬을 이용하여 상기 변형 데이터의 단독 오류 및 소정의 비트 수인 제1 값 경계를 넘지 않는 인접 오류만을 정정하는 로직 회로를 포함하는,
    정렬된 오류를 정정하는 반도체 칩.
  2. 제 1 항에 있어서,
    상기 오류 정정부호는
    원시 데이터 비트 수는 128 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 8 비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류들을 정정하는,
    정렬된 오류를 정정하는 반도체 칩.
  3. 제 1 항에 있어서,
    상기 오류 정정부호는
    원시 데이터 비트 수는 64 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 4 비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류 및 삼중 인접 오류를 정정하는,
    정렬된 오류를 정정하는 반도체 칩.
  4. 제 1 항에 있어서,
    상기 오류 정정부호는
    상기 제1 값에 기초하여 복수의 열(column)-거듭제곱 변환방법을 선정하고, 단위 행렬의 크기가 상기 제1 값인 단위 행렬의 각 열과 상기 단위행렬의 인접하는 열의 성분들의 합을 통해 얻어진 가산열을 포함하는 복수의 독립성 판단 열을 생성하고, 각 독립성 판단 열을 상기 복수의 열-거듭제곱 변환방법을 이용하여, 복수의 거듭제곱으로 변환하며, 각 열-거듭제곱 변환방법에 대해 상기 변환된 복수의 거듭제곱이 모두 독립성을 만족하는 최종 변환방법을 결정하고, 상기 결정된 최종 변환방법을 기초로 상기 오류 정정부호의 패리티 검사(parity check) 행렬 및 상기 생성 행렬을 생성함으로써 생성된 것인,
    정렬된 오류를 정정하는 반도체 칩.
  5. 메모리 셀에 부호화된 데이터를 기입하거나, 상기 메모리 셀로부터 상기 메모리의 동작환경에 의해 상기 부호화된 데이터가 변형된 변형 데이터를 독출하는 메모리 칩; 및
    상기 메모리 칩을 제어하는 제어 칩을 포함하되,
    상기 제어 칩은,
    데이터를 획득하고, 기 생성된 오류 정정부호의 생성 행렬과 상기 획득된 데이터를 곱하여 상기 획득된 데이터를 부호화하며 상기 부호화된 데이터를 상기 메모리 칩에 저장하는 인코더 로직 회로; 및
    상기 메모리 칩으로부터 상기 변형 데이터를 획득하고, 상기 오류 정정부호의 패리티 검사 행렬을 이용하여 상기 변형 데이터의 단독 오류 및 소정의 비트 수인 제1 값 경계를 넘지 않는 인접 오류만을 정정하는 로직 회로를 포함하는,
    정렬된 오류를 정정하는 반도체 시스템.
  6. 제 5 항에 있어서,
    상기 오류 정정부호는
    원시 데이터 비트 수는 128 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 8 비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류를 정정하는,
    정렬된 오류를 정정하는 반도체 시스템.
  7. 제 5 항에 있어서,
    상기 오류 정정부호는
    원시 데이터 비트 수는 64 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 4비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류 및 삼중 인접 오류를 정정하는,
    정렬된 오류를 정정하는 반도체 시스템.
  8. 제 5 항에 있어서,
    상기 오류 정정부호는
    상기 제1 값에 기초하여 복수의 열(column)-거듭제곱 변환방법을 선정하고, 단위 행렬의 크기가 상기 제1 값인 단위 행렬의 각 열과 상기 단위행렬의 인접하는 열의 성분들의 합을 통해 얻어진 가산열을 포함하는 복수의 독립성 판단 열을 생성하고, 각 독립성 판단 열을 상기 복수의 열-거듭제곱 변환방법을 이용하여, 복수의 거듭제곱으로 변환하며, 각 열-거듭제곱 변환방법에 대해 상기 변환된 복수의 거듭제곱이 모두 독립성을 만족하는 최종 변환방법을 결정하고, 상기 결정된 최종 변환방법을 기초로 상기 오류 정정 부호의 패리티 검사(parity check) 행렬 및 상기 생성 행렬을 생성함으로써 생성된 것인,
    정렬된 오류를 정정하는 반도체 시스템.
  9. 데이터 및 부호화된 데이터가 통신으로 변형된 변형 데이터를 수신하고, 부호화된 데이터 및 복호화된 데이터를 송신하는 송수신부;
    기 생성된 오류 정정부호의 생성 행렬과 상기 데이터를 곱하여 상기 데이터를 부호화하여 상기 부호화된 데이터를 생성하는 인코더 로직 회로; 및
    상기 오류 정정부호의 패리티 검사 행렬을 이용하여 상기 변형 데이터의 단독 오류 및 소정의 비트 수인 제1 값 경계를 넘지 않는 인접 오류만을 정정하는 로직 회로를 포함하는,
    정렬된 오류를 정정하는 반도체 칩.
  10. 제 9 항에 있어서,
    상기 오류 정정부호는
    원시 데이터 비트 수는 128 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 8 비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류를 정정하는,
    정렬된 오류를 정정하는 반도체 칩.
  11. 제 9 항에 있어서,
    상기 오류 정정부호는
    원시 데이터 비트 수는 64 비트이고, 체크 비트 수는 8 비트이며, 상기 제1 값은 4비트이고, 복수의 단독 오류와 상기 제1 값 이내의 복수의 이중 인접 오류 및 삼중 인접 오류를 정정하는,
    정렬된 오류를 정정하는 반도체 칩.
  12. 제 9 항에 있어서,
    상기 오류 정정부호는
    상기 제1 값에 기초하여 복수의 열(column)-거듭제곱 변환방법을 선정하고, 단위 행렬의 크기가 상기 제1 값인 단위 행렬의 각 열과 상기 단위행렬의 인접하는 열의 성분들의 합을 통해 얻어진 가산열을 포함하는 복수의 독립성 판단 열을 생성하고, 각 독립성 판단 열을 상기 복수의 열-거듭제곱 변환방법을 이용하여, 복수의 거듭제곱으로 변환하며, 각 열-거듭제곱 변환방법에 대해 상기 변환된 복수의 거듭제곱이 모두 독립성을 만족하는 최종 변환방법을 결정하고, 상기 결정된 최종 변환방법을 기초로 상기 오류 정정 부호의 패리티 검사(parity check) 행렬 및 생성 행렬을 생성함으로써 생성된 것인,
    정렬된 오류를 정정하는 반도체 칩.
KR1020220051613A 2022-04-26 2022-04-26 정렬된 오류를 정정하는 반도체 칩, 정렬된 오류를 정정하는 반도체 시스템 KR20230151814A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220051613A KR20230151814A (ko) 2022-04-26 2022-04-26 정렬된 오류를 정정하는 반도체 칩, 정렬된 오류를 정정하는 반도체 시스템
US18/139,440 US20230342246A1 (en) 2022-04-26 2023-04-26 Semiconductor chip for correcting aligned error, semiconductor system for correcting aligned error, and method for correcting aligned error

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220051613A KR20230151814A (ko) 2022-04-26 2022-04-26 정렬된 오류를 정정하는 반도체 칩, 정렬된 오류를 정정하는 반도체 시스템

Publications (1)

Publication Number Publication Date
KR20230151814A true KR20230151814A (ko) 2023-11-02

Family

ID=88415464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220051613A KR20230151814A (ko) 2022-04-26 2022-04-26 정렬된 오류를 정정하는 반도체 칩, 정렬된 오류를 정정하는 반도체 시스템

Country Status (2)

Country Link
US (1) US20230342246A1 (ko)
KR (1) KR20230151814A (ko)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087530A (ja) * 2005-09-22 2007-04-05 Rohm Co Ltd 信号復号方法、信号復号装置および信号記憶システム
JP5794240B2 (ja) * 2013-02-05 2015-10-14 ソニー株式会社 誤り検出訂正装置、誤り検出訂正方法、情報処理装置、および、プログラム
US10802910B2 (en) * 2018-09-17 2020-10-13 Intel Corporation System for identifying and correcting data errors
KR20210078201A (ko) * 2019-12-18 2021-06-28 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템
US11263078B2 (en) * 2019-12-31 2022-03-01 Micron Technology, Inc. Apparatuses, systems, and methods for error correction
KR20210092391A (ko) * 2020-01-16 2021-07-26 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치
US11462292B1 (en) * 2021-04-12 2022-10-04 Samsung Electronics Co., Ltd. Error correction circuit of semiconductor memory device and semiconductor memory device including the same

Also Published As

Publication number Publication date
US20230342246A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
US8954828B2 (en) Memory controller
US7543212B2 (en) Low-density parity-check (LDPC) encoder
JP5913560B2 (ja) 低密度パリティチェック符号を使用する符号化および復号技法
EP2571172A1 (en) Error-correcting code processing method and device
CN108809506B (zh) 一种编码方法及装置
US20160372161A1 (en) Data storage device and operating method thereof
US7028248B2 (en) Multi-cycle symbol level error correction and memory system
US10481971B2 (en) Encoding device, memory controller, communication system, and encoding method
US10291258B2 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
TW201735552A (zh) 在硬決策軟解碼期間決定何時結束位元翻轉演算法的方法
US9960788B2 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
US20180151197A1 (en) Error correction code encoder, encoding method, and memory controller including the encoder
TW202036288A (zh) 減少多位元錯誤校正碼的邏輯的系統與方法
CN101371448B (zh) 快速编码和解码方法及相关设备
US9164831B2 (en) Memory controller, semiconductor storage device, and decoding method
US10289348B2 (en) Tapered variable node memory
US20160350000A1 (en) Data storing in memory arrays
KR20230151814A (ko) 정렬된 오류를 정정하는 반도체 칩, 정렬된 오류를 정정하는 반도체 시스템
US20140317478A1 (en) Configurable and low power encoder for cyclic error correction codes
US20150256204A1 (en) Memory controller, storage device and memory control method
US20150339183A1 (en) Controller, storage device, and control method
CN112687324A (zh) 奇偶校验生成电路、存储器控制器和含该电路的存储模块
CN107592958B (zh) 不同码长下使用一个多比率指数表和一个扩展因子的多比率的ldpc编码和解码
KR102633829B1 (ko) 버스트 에러 정정 코드 생성 방법, 컴퓨터 판독 가능한 기록 매체, 컴퓨터 프로그램 및 장치
US20240305312A1 (en) Coding circuit and memory device including the same