KR20230083689A - 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치 - Google Patents

온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치 Download PDF

Info

Publication number
KR20230083689A
KR20230083689A KR1020210171922A KR20210171922A KR20230083689A KR 20230083689 A KR20230083689 A KR 20230083689A KR 1020210171922 A KR1020210171922 A KR 1020210171922A KR 20210171922 A KR20210171922 A KR 20210171922A KR 20230083689 A KR20230083689 A KR 20230083689A
Authority
KR
South Korea
Prior art keywords
error correction
error
unit
data
syndrome
Prior art date
Application number
KR1020210171922A
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 KR1020210171922A priority Critical patent/KR20230083689A/ko
Priority to PCT/KR2021/019871 priority patent/WO2023101097A1/ko
Publication of KR20230083689A publication Critical patent/KR20230083689A/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/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 오류 정정과 오류 감지를 동적으로 전환하며 오류 정정과 오류 검출을 상황에 따라 취사 선택 가능한 메모리 장치이다. 이러한 본 발명은 메모리제어부에서 입력되는 데이터비트에서 패리티비트를 생성하여 메모리 셀어레이에 데이터비트와 패리티비트를 포함하는 코드워드를 쓰는 패리티생성부를 포함하는 오류정정코드부호기 및 메모리 셀어레이에 쓰여진 데이터비트와 패리티비트를 포함하는 코드워드를 읽어온 후, 연산하여 신드롬데이터를 생성하는 신드롬생성부와, 신드롬생성부를 통해 생성된 신드롬데이터를 복호화 하여 오류 비트의 위치를 나타내는 오류위치비트를 생성하는 신드롬복호화부와, 메모리 셀어레이에서 데이터비트와 신드롬복호화부에서 생성된 오류위치비트를 수신하면 데이터비트와 오류위치비트의 위치 별 각 비트를 비교 연산하여 정정비트데이터를 생성하는 오류정정부와, 신드롬생성부에서 출력된 신드롬데이터를 수신한 후, 논리합 연산하며 연산 값으로 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’을 출력하는 오류검출부와, 디지털 신호 ‘0’과 디지털 신호 ‘1’을 포함하여, 메모리제어부에서 제어되며 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 출력하는 PIM인에이블부와, 메모리 셀어레이를 통해 데이터비트를 수신하고, 오류정정부를 통해 정정비트데이터를 수신하고, PIM인에이블부에서 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 수신하여, PIM인에이블부에서 디지털 신호 ‘0’이 수신되면 오류정정부에서 출력되는 정정비트데이터를 출력하고, PIM인에이블부에서 디지털 신호 ‘1’이 수신되면 데이터비트를 출력하는 PIM인에이블스위치부가 구비된 오류정정코드복호기를 포함한다.

Description

온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치{Memory device capable of dynamically switching between error correction code and error detection code in on-die Error Correction Code}
본 발명은 디램(DRAM: Dynamic Random Access Memory)을 포함하는 메모리의 데이터 신뢰도를 높이는 오류정정코드(ECC: Error Correction Code)와 관련된 기술이다.
반도체에는 메모리 반도체와 시스템 반도체 두 종류가 있다. 메모리 반도체는 정보를 저장하는 용도로 사용되는 반도체이고, 시스템 반도체는 데이터를 해석, 계산, 처리하는 반도체이다.
기존의 메모리 반도체와 시스템 반도체는 따로 떨어져 있어, 둘 사이에 정보가 오가는 과정에서 병목 현상이 발생되는 문제가 발생되고 있다. 이러한 문제는 최근에 급격하게 성장하는 빅데이터 처리 산업 및 인공지능과 관련된 산업 성장에 걸림돌이 되고 있다.
이러한 문제를 해결할 수 있는 방안으로 프로세싱 인 메모리(Processing-in-Memory)기술이 제시되었다. 프로세싱 인 메모리 기술(Processing-in-Memory)은 기존에 메모리 근처 혹은 내부에서 프로세서에서 수행하던 연산들을 수행하여 프로세서와 메모리 간 데이터 전송을 줄여 프로세서와 메모리 간 병목현상을 해결할 수 있다. 그리고 프로세싱 인 메모리 기술은 메모리 내부의 큰 대역폭(Bandwidth)을 활용해 연산을 수행하며 향상된 연산 성능을 발휘한다. 또한, 연산기와 메모리 간 데이터 전송 거리를 줄여 에너지 소비량을 줄이는 특징을 나타낸다.
이에 따라, 프로세싱 인 메모리 기술 즉, PIM(Processing-In-Memory)기술에 대한 연구 개발이 활발하게 진행되고 있다.
그러나, 현재까지 PIM(Processing-In-Memory)기술에서 발생하는 문제 일례로, 메모리 근처에서 연산을 수행하기 때문에 프로세서 쪽에서 수행하던 기존의 데이터의 오류 검출 및 정정이 PIM 기술에 적용되지 못하는 문제가 있었다. 특히, PIM 기술에 메모리 칩 내부에서 수행하는 온-다이 오류 정정 코드(On-die ECC)를 적용할 수 있으나, 적용된 온-다이 오류 정정코드는 프로세서 쪽에서 수행하던 오류 정정 코드보다 오류 정정 능력이 낮은 문제를 나타내고 있다.
대한민국 공개특허 제10-2021-0142213호(공개일자: 2020.12.22)
본 발명은 메모리 칩 내부에서 연산하는 PIM(Processing-In-memory)기술에서 여러 비트의 오류 검출을 하지 못해 많은 비트의 오류를 처리하는데 있어, 온-다이 오류 정정 코드의 오류 정정 능력이 높지 못한 문제를 해결하고자 한다.
본 발명의 기술적 과제는 이상에서 언급한 과제들로 제한되지 않으며 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치는 메모리제어부에서 입력되는 데이터비트에서 패리티비트를 생성하여 메모리 셀어레이에 데이터비트와 패리티비트를 포함하는 코드워드를 쓰는 패리티생성부를 포함하는 오류정정코드부호기 및 메모리 셀어레이에 쓰여진 데이터비트와 패리티비트를 포함하는 코드워드를 읽어온 후, 연산하여 신드롬데이터를 생성하는 신드롬생성부와, 신드롬생성부를 통해 생성된 신드롬데이터를 복호화 하여 오류 비트의 위치를 나타내는 오류위치비트를 생성하는 신드롬복호화부와, 메모리 셀어레이에서 데이터비트와 신드롬복호화부에서 생성된 오류위치비트를 수신하면, 데이터비트와 오류위치비트의 위치 별 각 비트를 비교 연산하여 정정비트데이터를 생성하는 오류정정부와, 신드롬생성부에서 출력된 신드롬데이터를 수신한 후, 논리합 연산하며 연산 값으로 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’을 출력하는 오류검출부와, 디지털 신호 ‘0’과 디지털 신호 ‘1’을 포함하여, 메모리제어부에서 제어되며 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 출력하는 PIM인에이블부와, 메모리 셀어레이를 통해 데이터비트를 수신하고, 오류정정부를 통해 정정비트데이터를 수신하고, PIM인에이블부에서 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 수신하여, PIM인에이블부에서 디지털 신호 ‘0’이 수신되면 오류정정부에서 출력되는 정정비트데이터를 출력하고, PIM인에이블부에서 디지털 신호 ‘1’이 수신되면 데이터비트를 출력하는 PIM인에이블스위치부가 구비된 오류정정코드복호기를 포함한다.
여기서, 신드롬생성부는 메모리가 읽기 동작을 수행할 때, 메모리 셀에레이로부터 코드워드를 수신할 수 있다. 그리고 신드롬생성부는 복수 개의 배타적 논리합 게이트를 포함하여 코드워드의 데이터비트를 읽어 새로운 패리트비트를 연산하는 제1패리티모듈과, 복수 개의 배타적 논리합 게이트를 포함하여 메모리 셀어레이를 통해 수신된 패리티비트와 제1패리티모듈에서 출력되는 패리트비트를 수신하여 배타적 논리합 연산을 실행하는 제2패리티모듈을 포함할 수 있다. 이때, 제1패리티모듈과 제2패리티모듈은 동일한 개수의 배타적 논리합 게이트(XOR Gate)를 포함할 수 있다.
그리고, 신드롬복호화부는 입력측에 입력되는 신드롬데이터를 10진수로 복호화 한 후, 복호화된 10진수의 값에 대응하는 위치에 있는 출력단에 디지털 신호 ‘1’을 출력하고, 나머지 위치에 있는 출력단에는 디지털 신호 ‘0’을 출력할 수 있다. 그리고 오류정정부는 제1입력단이 코드워드를 수신하고, 제2입력단이 신드롬복호화부에서 출력된 디지털 신호를 수신하여, 배타적 논리합 연산을 실행하는 배타적 논리합 게이트를 포함할 수 있다. 그리고 오류검출부는 신드롬생성부에서 입력되는 신드롬데이터 가운데, 어느 하나의 디지털 신호 ‘1’이 입력되면 오류신호를 출력하는, 논리합 게이트를 포함할 수 있다.
본 발명은 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적으로 전환할 수 있게 하여 메모리 칩 내부에서 연산하는 PIM(Processing-In-memory)기술에서 여러 비트의 오류 검출에 대한 높은 신뢰성을 확보할 수 있도록 한다. 그리고 오류 데이터를 간소화된 경로로 검출하여, 검출된 오류 비트가 추후 정정되도록 하며 오류 정정 코드에 대한 지연시간(latency)을 줄일 수 있도록 한다.
또한, 본 발명은 기존의 온-다이 ECC엔진에 PIM인에이블부 및 PIM인에이블스위치부만이 추가된 구조로 형성되어 기존의 온-다이 ECC엔진의 재활용성을 높일 수 있도록 한다.
도 1은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 구조도이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에서 사용되는 코드워드(Codeword)를 나타낸 도면이다.
도 6 내지 도 14는 도 3의 데이터비트가 2진법으로 표현된 상태와 2진법으로 표현된 상태에 따라 제1패리티모듈에 어떠한 데이터비트를 수신하는지를 나타낸 도면이다.
도 15는 도 7의 신드롬생성부의 작동 상태를 나타낸 도면이다.
도 16 내지 도 18은 도 3의 제1패리티모듈의 각 XOR게이트(#1~#8)가 어떠한 데이터비트를 수신하는지를 나타낸 도면이다.
도 19 및 도 20은 도 3의 신드롬생성부의 작동 상태를 나타낸 도면이다.
도 21 및 도 22는 도 3의 신드롬복호화부의 작동 상태를 나타낸 도면이다.
도 23은 도 3의 오류검출부의 작동 상태를 나타낸 도면이다.
도 24 및 도 25는 도 3의 PIM인에이블스위치부의 작동 상태를 나타낸 도면이다.
본 발명의 이점 및 특징 그리고 그것들을 달성하기 위한 방법들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 이에, 발명을 실시하기 위한 구체적인 내용에 기재된 내용은 여러 실시예들 가운데 하나의 실시 예만이 기재되었다. 개시된 실시예는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위함이다.
본 발명에 대한 정의는 오로지 청구항에 의해 정의된다. 명세서 전체에 걸쳐 동일 참조부호는 동일 구성요소를 지칭한다.
본 발명은 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에 관한 것이다.
이하, 도 1 내지 도 25를 참조하여, 본 발명의 일 실시예에 의한 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에 대해 설명한다.
다만, 본 발명의 일 실시예에 의한 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에 대해 설명이 간결하고 명확해질 수 있도록 도 1 및 도 2를 참조하여 본 발명에 대해 개괄적으로 설명한다. 이후, 설명된 내용과 도 3을 참조하여 본 발명에 대한 구성요소를 설명한다. 그리고 도 4 내지 도 25를 바탕으로 본 발명에 대한 구성요소들의 작동에 대해 구체적으로 설명한다.
도 1은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 흐름도이고, 도 2는 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치의 구조도이다.
본 발명은 메모리 셀 어레이와 on-die ECC Engine을 포함하여 오류 정정과 오류 검출을 동적으로 전환할 수 있도록 하는 메모리 장치(1)이다.
본 발명은 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적으로 전환할 수 있어 메모리 칩 내부에서 연산하는 PIM(Processing-In-memory)기술에서 데이터에 대한 신뢰성을 높일 수 있다. 또한, 본 발명은 오류 검출로 전환했을 때 간소화된 경로로 오류 데이터가 검출되도록 하고, 검출된 오류데이터가 추후 정정되도록 함으로써, 메모리 장치 내에서 신속하게 오류 처리를 처리할 수 있도록 한다.
이러한 메모리 장치(1)는 메모리제어부(A)와 인터페이싱 하며 메모리제어부(A)에서 전송하는 신호에 따라 작동이 전반적으로 제어될 수 있다. 이때, 메모리제어부(A)는 명령 및 주소를 인가하며 메모리 장치의 전반적인 작동을 제어하며 메모리 장치가 데이터를 읽을 수 있도록 하거나 쓸 수 있도록 한다. 즉, 메모리제어부(A)는 메모리 장치가 메모리 셀 어레이(E)에서 데이터를 ‘Read’ 하거나 메모리 셀 어레이(E)에 데이터를 ‘Write’ 할 수 있도록 한다. 또한, 메모리제어부(A)는 메모리제어부와 메모리(DRAM)사이의 인터페이스에서 RFU (Reserved for future use) 명령어를 통해 PIM인에이블부(250)를 제어하거나 메모리의 모드 레지스터 (mode register)에 PIM인에이블의 정보를 저장하여 PIM인에이블모듈(250)이 해당 모드 레지스터로부터 PIM인에이블의 정보를 읽을 수 있도록 제어할 수 있다. 이때, 메모리제어부(A)는 이와 같이 PIM인에이블부(250)를 제어하여 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’ 이 출력되도록 한다. 이때, 출력된 디지털 신호는 PIM인에이블스위치부(260)에 인가된다.
본 발명은 도 2에 도시된 바와 같이, 메모리제어부(A)에 의해 메모리에서 Write를 수행할 시 on-die ECC Engine 즉, 오류정정코드부호기(10)가 동작하면서 코드워드(D-1)를 생성하고, 생성된 코드워드(D-1)가 메모리 셀 어레이(E)에 작성되도록 하고, 메모리제어부(A)에 의해 메모리에서 Read를 수행할 시 오류정정코드복호기(20)가 동작하면서 메모리 셀 어레이(E)에 작성된 코드워드(D-2)를 읽어 온 후, 데이터비트를 통해 생성한 패리티비트와 읽은 패리티비트를 비교하며 연산하면서 코드워드에 발생된 오류를 검출할 수 있다. 그리고 검출된 오류를 정정할 수도 있다.
이와 같은 본 발명의 메모리 장치(1)는 기존의 DRAM 디바이스에서 개량된 DRAM 디바이스가 될 수 있다. 일례로, 본 발명의 메모리 장치(1)는 DDR5 SDRAM(Double Data Rate Fifth Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory) 디바이스가 될 수 있다.
이와 같은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)는 메모리 셀 어레이(E), 오류정정코드부호기(10), 오류정정코드복호기(20) 등을 구성요소로 포함한다. 이때, 메모리 셀 어레이(E)는 기존의 온-다이 ECC엔진과 함께 사용되는 저장 장치가 될 수 있으며 본 발명은 기존의 온-다이 ECC엔진에 오류정정코드복호기(20)에 포함되는 PIM인에이블부(250) 및 PIM인에이블스위치부(260)만이 추가된 구조로 형성될 수 있다. 이와 같이, PIM인에이블부(250) 및 PIM인에이블스위치부(260)만이 추가된 구조적 특징에 기반하여 본 발명은 기존의 온-다이 ECC엔진의 재활용성을 높일 수 있다.
이하, 앞서 설명한 도 2와 도 3을 참조하여 본 발명을 구성하는 구성요소에 대해 구체적으로 설명한다.
도 3은 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)의 구조도이다.
메모리 셀 어레이(E)는 오류정정코드부호기(10)에 의해 생성된 데이터비트(Data bit)와 패리티비트(Parity bit)를 저장하고, 오류정정코드복호기(20)가 오류정정코드부호기(10)에 의해 저장 또는 쓰여진 데이터비트(Data bit)와 패리티비트(Parity bit)를 읽어 올 수 있도록 한다. 즉, 메모리 셀 어레이(E)는 데이터비트(Data bit)와 패리티비트(Parity bit)가 입력 및 출력 가능한 장치가 된다.
오류정정코드부호기(10, Error Correction Code encoder)는 도 2에 도시된 바와 같이, 메모리제어부(A)에서 입력되는 데이터비트(B-1)로부터 패리티비트(C)를 생성하여 메모리 셀어레이(E, Cell Array)에 코드워드(D-1)를 작성한다. 이와 같은 오류정정코드부호기(10)는 패리티생성부(110)를 포함하여 메모리제어부(A)에서 수신한 데이터 비트를 기반으로 이 데이터 비트에 상응하는 패리티비트(C)를 생성할 수 있다. 이때, 패리트비트(C)는 P1, P2, P3, P4, P5, P6, P7, P8이 될 수 있으며 이러한 패리트비트(C)는 모두 디지털 신호 ‘0’또는 ‘1’이 될 수 있다.
오류정정코드복호기(20)는 메모리 셀 어레이(E)에 쓰여진 코드워드(D-2)를 읽어와 사용자들이 읽고 쓰는 데이터에 대한 오류 즉, 코드워드의 오류를 감지한 후, PIM인에이블모듈에서 출력되는 디지털 신호에 따라 감지된 오류를 정정하거나 감지된 오류를 그대로 출력한다.
이러한 오류정정코드복호기(20)는 전술한 특징을 원활하게 구현할 수 있도록 신드롬생성부(210), 신드롬복호화부(220), 오류정정부(230), 오류검출부(240), PIM인에이블부(250), PIM인에이블스위치부(260)를 구성요소로 포함할 수 있다. 오류정정코드복호기(20)에 포함되는 구성요소들은 본 발명의 가장 핵심적인 구성요소가 될 수 있다. 여기서, 신드롬생성부(210)는 메모리 셀어레이(E)에서 읽어온 데이터비트로 패리트비트(C)를 생성하고 이 패리티비트(C)와 메모리 셀어레이(E)에서 읽어온 패리트비트를 비교하여 신드롬데이터(G)를 생성한다.
이와 같은 신드롬생성부(210)는 메모리 셀 어레이(E)에서 read하려는 코드워드를 기반으로 데이터오류의 위치 정보를 담고 있는 신드롬데이터(G)를 생성한다. 신드롬생성부(210)는 도 3에 도시된 바와 같이 복수 개의 배타적 논리합 게이트(#1XOR Gate ~ #16XOR Gate)를 포함하는 제1패리티모듈(211)과 복수 개의 배타적 논리합 게이트(#9 ~ #16)를 포함하는 제2패리티모듈(212)을 포함할 수 있다. 여기서, 제1패리티모듈(211)과 제2패리티모듈(212)은 동일한 특징 그리고 동일한 개수의 배타적 논리합 게이트(XOR Gate)로 구성될 수 있다.
이와 같은 신드롬생성부(210)는 제1패리티모듈(211)을 통해 코드워드(D-2)에 포함되는 데이터비트(B-2)를 읽을 수 있고, 제2패리티모듈(212)을 통해 코드워드(D-2)에 포함되는 패리티비트(F)와 제1패리티모듈(211)에서 출력되는 패리트비트(C)를 수신하여 신드롬데이터(G)를 생성할 수 있다. 그리고 생성된 신드롬데이터를 신드롬복호화부(220)에 인가할 수 있다.
신드롬복호화부(220)는 신드롬생성부(210)를 통해 생성된 신드롬데이터(G)를 복호화하여 오류위치비트(H)를 생성할 수 있다. 일 실시예로, 신드롬복호화부(220)는 신드롬데이터를 원-핫 인코딩(one-hot encoding)을 하되 데이터의 크기에 해당하는 비트 수만 출력하여 오류 위치를 생성할 수 있다. 여기서, 원-핫 인코딩(one-hot encoding)은 범주형 변수를 열거하고 해당하지 않는 모든 항목은 0으로 해당하는 항목은 1로 표시하는 것을 의미한다.
오류정정부(230)는 메모리 셀어레이(E)에서 데이터비트(B-2)와 신드롬복호화부(220)에서 생성된 오류위치비트(H)를 수신하면, 데이터비트(B-2)와 오류위치비트(H)의 위치 별 각 비트를 비교 연산하여 정정비트데이터(I)를 생성한다. 이와 같은 오류정정부(230)는 복수 개의 배타적 논리합 게이트를 포함하여 수신되는 디지털 신호를 배타적 논리합 연산 한다.
오류정정부(230)는 복수 개의 배타적 논리합 게이트 즉, XOR 게이트의 제1입력단에 수신되는 데이터비트(B-2)와 제2입력단에 신드롬복호화부(220)에서 출력된 디지털 신호를 수신하여 배타적 논리합 연산을 실행하며 오류위치비트(H)를 기반으로 읽어온 데이터를 정정할 수 있다. 일례로, 데이터 비트가 디지털 신호 ‘0’이고 신드롬복호화부(220)에서 출력된 디지털 신호 ‘0’이면 이를 배타적 논리합 연산하여 디지털 신호 ‘0’을 출력할 수 있다. 또는 데이터 비트가 디지털 신호 ‘1’이고 신드롬복호화부(220)에서 출력된 디지털 신호 ‘0’이면 이를 배타적 논리합 연산하여 디지털 신호 ‘1’을 출력할 수 있다.
오류검출부(240)는 신드롬생성부(210)에서 출력된 신드롬데이터(G)를 수신한 후, 논리합(OR) 연산하며 연산 값으로 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’을 출력한다. 일례로, 오류검출부(240)는 논리합 게이트(241)를 포함하여 신드롬생성부(210)에서 입력되는 신드롬데이터(G) 가운데, 어느 하나의 디지털 신호 ‘1’이 입력되면 error detection signal 즉, 오류신호를 출력할 수 있다.
이를 통해, 오류검출부(240)는 신드롬생성부(210)에서 출력되는 신드롬데이터(G)를 논리합 연산하여, 수신되는 신드롬데이터 중 어느 한 비트라도 1이 있으면 오류가 발생되었다는 신호를 출력할 수 있다.
이러한 오류검출부(240)는 최소 해밍 거리가 3인 해밍 코드의 특성상 신드롬데이터의 논리합 축소(Reduction) 연산결과에 따라 코드워드에 최대 두 개의 오류가 발생했다는 것을 검출할 수 있다.
여기서, 논리합 축소는 모든 Bit를 논리합 연산하는 것이다. 일례로, 제2패리티모듈(212)에서 출력되는 8비트를 논리합 게이트(241)에서 논리합 연산하는 것을 의미한다. 그리고 최소 해밍 거리 (minimum hamming distance)는 코드워드들 간차이가 나는 최소의 비트 수를 의미한다. 최소 해밍 거리가 3이면 single-error correction 및 double-error detection이 가능할 수 있다.
따라서, 오류검출부(240)는 single-error correction 하는 기능으로 사용될 수도 있고, double-error detection 하는 기능으로도 사용될 수 있다.
이를 통해, 본 발명은 데이터비트에서 오류비트를 정정하는 모드로 작동되도록 하거나, 오류비트를 검출하는 모드로 작동되도록 할 수 있다.
PIM인에이블부(250)는 디지털 신호 ‘0’과 디지털 신호 ‘1’을 저장하고 있어 메모리제어부(A)에서 제어되어 PIM인에이블스위치부(260)로 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 출력할 수 있다.
PIM인에이블스위치부(260)는 메모리제어부(A)에 인가되는 신호를 달리할 수 있다. PIM인에이블스위치부(260)는 데이터 비트에 대응하는 개수의 다중화기(MUX, Multiplexer)를 포함하여 PIM인에이블부(250)에서 디지털 신호 ‘0’이 입력되면 오류정정부(230)에서 출력되는 정정비트데이터(I)를 출력한다.
반면, PIM인에이블부(250)에서 디지털 신호 ‘1’이 수신되면 데이터비트(B-2)를 그대로 출력한다. 이와 같이 신드롬생성부(210), 오류정정부(230), 오류검출부(240), PIM인에이블부(250), PIM인에이블스위치부(260)는 도 3에 도시된 디지털소자로 한정되고, 전술 한 특징을 나타내는 범위에 한에서 다른 반도체소자로 변형되어 형성될 수 있다.
이하, 도 4 내지 25를 참조하여 본 발명에 대한 구성요소들의 작동에 대해 구체적으로 설명한다. 도 4 및 도 5는 본 발명의 일 실시예에 따른 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치에서 사용되는 코드워드(Codeword)를 나타낸 도면이고, 도 6 내지 도 14는 도 3의 데이터비트가 2진법으로 표현된 상태와 2진법으로 표현된 상태에 따라 제1패리티모듈에 어떠한 데이터비트를 수신하는지를 나타낸 도면이다. 그리고 도 15는 도 7의 신드롬생성부의 작동 상태를 나타낸 도면이다. 그리고 도 16 내지 도 18은 도 3의 제1패리티모듈의 각 XOR게이트가 어떠한 데이터비트를 수신하는지를 나타낸 도면이다. 그리고 도 19 내지 도 20은 도 3의 신드롬생성부의 작동 상태를 나타낸 도면이다. 그리고 도 21 내지 도 22는 도 3의 신드롬복호화부의 작동 상태를 나타낸 도면이다. 그리고 도 23은 도 3의 오류검출부의 작동 상태를 나타낸 도면이다. 그리고 도 24 및 도 25는 도 3의 PIM인에이블스위치부의 작동 상태를 나타낸 도면이다.
메모리 셀 어레이(E)에 쓰여지는 코드워드(D-2)는 메시지와 여분의 정보를 합친 코드가 된다. 일례로, 코드워드(D-2)는 도 4 및 도 5에 도시된 바와 같이, 코드워드(D-2)는 제1패리티비트(P1), 제2패리티비트(P2), 그리고 제1데이터비트(D1), 제3패리트비트(P3), 제2데이터비트(D2) 내지 제4데이터비트(D4) 그리고 제4패리트비트(P4), 그리고 제5데이터비트(D5) 내지 제11데이터비트(D11) 그리고 제5패리트비트(P5) 그리고 제12데이터비트(D12) 내지 제26데이터비트(D26) 그리고 제6패리트비트(P6) 그리고 제27데이터비트(D27) 내지 제57데이터비트(D57) 그리고 제7패리트비트(P7) 그리고 제58데이터비트(D58) 내지 제127데이터비트(D127) 그리고 제57데이터비트(D57) 그리고 제8패리트비트(P8) 그리고 제129데이터비트(D129) 내지 제136데이터비트(D136)를 포함하는 리니어코드로 형성될 수 있다. 여기서, 데이터비트는 메시지가 되고, 패리트비트는 여분의 정보가 될 수 있다. 여기서, 패리트비트는 도 4에 도시된 비트의 순서에서 2^n 자리에 위치할 수 있다.
따라서, 패리트비트는 P1은 2^0의 자리인 1번 순서에 위치하고, P2는 2^1의 자리인 2번 순서에 위치하고, P3은 2^2의 자리인 4번 순서에 위치하고, P4는 2^3의 자리인 8번째 순서에 위치하고, P5는 2^4의 자리인 16번 순서에 위치하고, P6은 2^5의 자리인 32번 순서에 위치하고, P7은 2^6의 자리인 64번 자리에 위치하고, P8은 2^7의 자리인 128번째 자리에 위치한다.
제1패리티모듈(211)의 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)는 각각 메모리 셀 어레이(E)에서 도 6 내지 도 14에 도시된 바와 같은 데이터 비트를 읽어올 수 있다. 이때, 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate) 각각은 도 15에 도시된 바와 같이,‘1’ 의 개수가 홀수 개이면 ‘1’을 출력하고, ‘1’의 개수가 짝수 개이면 ‘0’을 출력할 수 있다. 일례로, 제1패리티모듈(211)의 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)가 128-bit의 data에 8-bit의 패리티비트를 더한 136-bit의 코드워드를 읽으면, 제1배타적 논리합 게이트(#1XOR Gate)는 메모리 셀어레이(E)에서 D1, D2, D4, D5, D7, D9, D11, D12, D14, D16, D18, D20, D22, D24, D26, D27, D29, D31, D33, D35, D37, D39, D41, D43, D45, D47, D49, D51, D53, D55, D57, D58, D60, D62, D64, D66, D68, D70, D72, D74, D76, D78, D80, D82, D84, D86, D88, D90, D92, D94, D96, D98, D100, D102, D104, D106, D108, D110, D112, D114, D116, D118, D120, D121, D123, D125, D127을 읽어오며 67개의 디지털 신호가 입력될 수 있다.
제2배타적 논리합 게이트(#2XOR Gate)는 메모리 셀어레이(E)에서 D1, D3, D4, D6, D7, D10, D11, D13, D14, D17, D18, D21, D22, D25, D26, D28, D29, D32, D33, D36, D37, D39, D40, D41, D44, D45, D48, D49, D52, D53, D56, D57, D59, D60, D63, D64, D67, D68, D71, D72, D75, D76, D79, D83, D84, D87, D88, D91, D92, D95, D96, D99, D100, D103, D104, D107, D108, D111, D112, D115, D116, D119, D120, D122, D123, D126, D127을 읽어오며 67개의 디지털 신호가 입력될 수 있다.
제3배타적 논리합 게이트(#3XOR Gate)는 메모리 셀어레이(E)에서 D2, D3, D4, D8, D9, D10, D11, D15, D16, D17, D18, D20, D22, D23, D24, D25, D26, D30, D31, D32, D33, D38, D40, D41, D46, D47, D48, D49, D54, D55, D56, D57, D61, D62, D64, D69, D70, D71, D72, D77, D78, D79, D80, D85, D86, D87, D88, D93, D94, D95, D96, D101, D102, D103, D104, D109, D110, D111, D112, D117, D118, D119, D120, D124, D125, D126, D127을 읽어오며 67개의 디지털 신호가 입력될 수 있다.
제4배타적 논리합 게이트(#4XOR Gate)는 메모리 셀어레이(E)에서 D5, D6, D7, D8, D9, D10, D11, D19, D20, D21, D22, D23, D24, D26, D34, D35, D36, D37, D38, D39, D40, D41, D50, D51, D52, D53, D54, D55, D56, D57, D65, D66, D67, D68, D69, D70, D71, D72, D81, D82, D83, D84, D85, D86, D87, D88, D97, D98, D99, D100, D101, D102, D103, D104, D113, D114, D115, D116, D117, D118, D119, D120, D128을 읽어오며 63개의 디지털 신호가 입력될 수 있다.
제5배타적 논리합 게이트(#5XOR Gate)는 메모리 셀어레이(E)에서 D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D42, D43, D44, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120를 읽어오며 65개의 디지털 신호가 입력될 수 있다.
제6배타적 논리합 게이트(#6XOR Gate)는 메모리 셀어레이(E)에서 D27, D28, D29, D30, D31, D32, D33, D34, D35, D36, D37, D38, D39, D40, D41, D42, D43, D44, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D89, D90, D91, D92, D93, D94, D95, D96, D97, D98, D99, D100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120을 읽어오며 63개의 디지털 신호가 입력될 수 있다.
제7배타적 논리합 게이트(#7XOR Gate)는 메모리 셀어레이(E)에서 D5, D6, D7, D8, D9, D10, D11, D19, D20, D21, D22, D23, D24, D26, D34, D35, D36, D37, D38, D39, D40, D41, D50, D51, D52, D53, D54, D55, D56, D57, D65, D66, D67, D68, D69, D70, D71, D72, D81, D82, D83, D84, D85, D86, D87, D88, D97, D98, D99, D100, D101, D102, D103, D104, D113, D114, D115, D116, D117, D118, D119, D120, D128을 읽어오며 63개의 디지털 신호가 입력될 수 있다.
제8배타적 논리합 게이트(#8XOR Gate)는 메모리 셀어레이(E)에서 D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D117, D118, D119, D120을 읽어오며 59개의 디지털 신호가 입력될 수 있다.
여기서, D1 내지 D128의 자리번호의 이진수는 도 6 내지 도 14의 이진법으로 표시된 수와 같다. 그리고 본 명세서 상에서는 데이터 비트에 대한 설명이 간결하고 명확할 수 있도록 D1 내지 D128는 오류가 발생되지 않는 경우 모두 디지털 신호 ‘0’이 되는 것으로 한다. 그리고 오류는 D1 하나에만 발생하여 D1의 디지털 신호가 ‘0’에서 ‘1’인 것으로 가정한 후, 설명한다. 이와 같은 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)는 도 19에 도시된 바와 같이 모두 디지털 신호 ‘1’을 출력할 수 있다.
제2패리티모듈(212)의 제9배타적 논리합 게이트(#9XOR Gate) 내지 제16배타적 논리합 게이트(#16XOR Gate)는 도 20의 (a)에 도시된 바와 같이 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)에서 출력되는 디지털 신호와 메모리 셀 어레이(E)에서 읽어오는 패리티비트(F) 즉, 도면에 도시된 Default Input의 신호가 동일한 경우 디지털 신호 ‘0’을 출력할 수 있다. 이에, 제9배타적 논리합 게이트(#9XOR Gate) 내지 제16배타적 논리합 게이트(#16XOR Gate)가 출력하는 신호는 디지털 신호 ‘0 0 0 0 0 0 0 0’을 출력할 수 있다.
반면, 제2패리티모듈(212)의 제9배타적 논리합 게이트(#9XOR Gate) 내지 제16배타적 논리합 게이트(#16XOR Gate)는 도 20의 (b)에 도시된 바와 같이 제1배타적 논리합 게이트(#1XOR Gate) 내지 제8배타적 논리합 게이트(#8XOR Gate)에서 출력되는 디지털 신호와 메모리 셀 어레이(E)에서 읽어오는 패리티비트(F) 즉, 도면에 도시된 Default Input의 신호가 서로 다른 경우, 디지털 신호 ‘1’을 출력할 수 있다. 이에, 제9배타적 논리합 게이트(#9XOR Gate) 내지 제16배타적 논리합 게이트(#16XOR Gate)가 출력하는 신호는 디지털 신호 ‘1 1 0 0 0 0 0 0’을 출력할 수 있다.
신드롬복호화부(220)는 도 21에 도시된 바와 같이 제2패리티모듈(212)에서 디지털 신호 ‘0 0 0 0 0 0 1 1’을 수신한 경우, 수신된 2진수를 10진수로 변환하여 십진수 ‘3’을 출력하고, 십진수 ‘3’에 대응하는 3번째 출력 포드에 디지털 신호 ‘1’을 출력할 수 있다. 그리고 ‘1 0 0 0 1 0 0 0’을 수신한 경우, 2진수를 10진수로 변환하는 방법에 근거하여 128번째 출력 포드에 디지털 신호 ‘1’을 출력할 수 있다. 즉, 신드롬복호화부(220)는 입력측에 입력되는 신드롬데이터(G)를 10진수로 복호화 한 후, 복호화된 10진수의 값에 대응하는 위치에 있는 출력단에 디지털 신호 ‘1’을 출력하고, 나머지 위치에 있는 출력단에는 디지털 신호 ‘0’을 출력할 수 있다.
신드롬복호화부(220)는 도 22에 도시된 바와 같이, 오류정정부(230)에 출력되는 디지털 신호 ‘1’또는 디지털 신호 ‘0’을 인가할 수 있다.
오류검출부(240)는 도 23에 도시된 바와 같이, 신드롬생성부(210)에서 출력되는 신드롬데이터(G)를 논리합 연산하여, 수신되는 신드롬데이터 중 어느 하나라도 1이 있으면 오류가 발생되었다는 신호를 출력할 수 있다. 이러한 오류검출부(240)는 최소 해밍 거리가 3인 해밍 코드의 특성상 신드롬데이터의 논리합 축소(Reduction) 연산결과에 따라 코드워드에 최대 두 개의 오류가 발생했다는 것을 검출할 수 있다.
오류정정부(230)의 제Y3배타적 논리합 게이트(#Y3XOR Gate) 내지 제Y3배타적 논리합 게이트(#Y136XOR Gate)는 각각은 메모리 셀 어레이(E)에서 읽어 온 데이터 비트 즉, D1 내지 D128와 신드롬복호화부(220)에서 출력되는 신호를 수신하여 배타적 논리합으로 연산하며 오류가 있는 데이터 비트를 정정해 출력할 수 있다. 일례로, 오류정정부(230)는 도 24의 (A)에 도시된 바와 같이, D1 내지 D 128이 정상적인 신호로 들어오면 메모리 셀 어레이(E) 그리고 신드롬복호화부(220)로부터 신호 ‘0’을 수신할 수 있다. 그리고 수신된 디지털 신호 ‘0’을 배타적 논리합 연산하여 ‘0000 … 0000’을 출력할 수 있다. 반면, 오류정정부(230)는 도 24의 (B)에 도시된 바와 같이, D1 내지 D128 가운데 D1이 오류가 발생한 신호로 들어오면, 제Y1배타적 논리합 게이트(#Y1XOR Gate)는 메모리 셀 어레이(E) 그리고 신드롬복호화부(220)의 Y3 출력 포트를 통해 디지털 신호 ‘1’을 수신한다.
그리고 나머지 제Y5배타적 논리합 게이트(#Y5XOR Gate) 내지 제Y136배타적 논리합 게이트(#Y136XOR Gate)는 메모리 셀 어레이(E) 그리고 신드롬복호화부(220)의 출력 포트를 통해 디지털 신호 ‘0’을 수신한다. 이때, 제Y3배타적 논리합 게이트(#Y3XOR Gate)는 수신한 신호를 배타적 논리합 연산하여 디지털 신호 ‘0’을 출력할 수 있다. 그리고 제Y5배타적 논리합 게이트(#Y5XOR Gate) 내지 제Y136배타적 논리합 게이트(#Y136XOR Gate) 또한 수신한 신호를 배타적 논리합 연산하여 디지털 신호‘0’을 출력한다. 이를 통해, 오류정정부(230)는 신드롬복호화부(220)를 통해 정정될 위치신호를 수신하여 오류가 발생된 데이터 비트가‘0000 … 0000’을이 입력되더라도 이를 올바르게‘0000 … 0001’로 정정할 수 있다.
이때, PIM인에이블스위치부(260)는 도 25의 (A)에 도시된 바와 같이 PIM인에이블부(250)에서 디지털 신호 ‘0’이 입력되면 오류정정부(230)에서 출력되는 정정비트데이터(I)인 ‘0000 … 0000’을 출력한다. 반면, PIM인에이블스위치부(260)는 도 25의 (B)에 도시된 바와 같이 PIM인에이블부(250)에서 디지털 신호 ‘0’이 수신되면 정정되지 않은 데이터비트(B-2)를 그대로 출력한다. 일례로 오류가 발생된 데이터 비트인 ‘0000 … 0000’을 그대로 출력할 수 있다.
본 발명의 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)는 PIM인에이블신호가 디지털 신호 ‘0’인 경우, PIM인에이블스위치부(260)에서 정정된 데이터(Corrected data)를 출력하므로 기존과 동일하게 싱글-오류 정정(Single-error correction)으로 사용될 수 있다. 반면, PIM인에이블신호가 디지털 신호 ‘1’인 경우, PIM인에이블스위치부(260)에서는 입력된 데이터를 그대로 출력하며 오류 신호를 그대로 출력하며 오류를 간소화된 절차 만으로 신속하게 검출한 후 추후의 단에서 오류가 있는 데이터가 정정되도록 처리되도록 하며, 데이터 처리의 시간을 단축시킬 수 있다.
이를 통해, 본 발명의 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)는 일반 DRAM Read의 경우 신드롬생성부(210), 신드롬복호화부(220), 오류정정부(230)를 모두 지나야만 정정데이터가 출력되어 입력데이터를 처리하는데 오랜 시간이 걸리는 문제를 해결할 수 있다.
또한, 본 발명의 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치(1)는 도 25에 도시된 오류검출부(240)의 특징에 기반하여 여러 비트의 오류 검출을 동시에 감지하며 처리되는 데이터 비트의 오류 검출에 대한 높은 신뢰도를 나타낼 수 있다.
또한, 본 발명은 기존의 온-다이 ECC엔진에 PIM인에이블부(250) 및 PIM인에이블스위치부만이 추가된 구조로 형성될 수 있어, 기존의 DDR5 SDRAM(Double Data Rate Fifth Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory) 뿐만 아니라 온-다이 ECC를 적용하는 메모리에 용이하게 적용되며 기존의 온-다이 ECC엔진의 재활용성을 높일 수 있도록 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시 적인 것이며 한정적이 아닌 것으로 이해해야 한다.
1: 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치
10: 오류정정코드부호기
110: 패리티생성부
20: 오류정정코드복호기
210: 신드롬생성부
220: 신드롬복호화부
221: 제1패리티모듈 212: 제2패리티모듈
230: 오류정정부
240: 오류검출부
241: 논리합 게이트
250: PIM인에이블부 260: PIM인에이블스위치부
A: 메모리제어부 B-1, B-2: 데이터비트
C, F: 패리트비트 D-1, D-2: 코드워드
E: 메모리 셀어레이 G: 신드롬데이터
H: 오류위치비트 I: 정정비트데이터

Claims (7)

  1. 메모리제어부(A)에서 입력되는 데이터비트(B-1)에서 패리티비트(C)를 생성하여 메모리 셀어레이(E, Cell Array)에 데이터비트(B-1)와 패리티비트(C)를 포함하는 코드워드(D-1)를 쓰는 패리티생성부(110)를 포함하는 오류정정코드부호기(10, Error Correction Code encoder) 및
    메모리 셀어레이(E)에 쓰여진 데이터비트(B-2)와 패리티비트(F)를 포함하는 코드워드(D-2)를 읽어온 후, 연산하여 신드롬데이터(G)를 생성하는 신드롬생성부(210)와, 신드롬생성부(210)를 통해 생성된 신드롬데이터(G)를 복호화 하여 오류 비트의 위치를 나타내는 오류위치비트(H)를 생성하는 신드롬복호화부(220)와,
    메모리 셀어레이(E)에서 데이터비트(B-2)와 신드롬복호화부(220)에서 생성된 오류위치비트(H)를 수신하면, 데이터비트(B-2)와 오류위치비트(H)의 위치 별 각 비트를 비교 연산하여 정정비트데이터(I)를 생성하는 오류정정부(230)와,
    신드롬생성부(210)에서 출력된 신드롬데이터(G)를 수신한 후, 논리합 연산하며 연산 값으로 디지털 신호 ‘1’ 또는 디지털 신호 ‘0’을 출력하는 오류검출부(240)와,
    디지털 신호 ‘0’과 디지털 신호 ‘1’을 포함하여, 메모리제어부(A)에서 제어되며 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 출력하는 PIM인에이블부(250)와,
    메모리 셀어레이(E)를 통해 데이터비트(B-2)를 수신하고, 오류정정부(230)를 통해 정정비트데이터(I)를 수신하고, PIM인에이블부(250)에서 디지털 신호 ‘0’또는 디지털 신호 ‘1’중 어느 하나를 수신하여, PIM인에이블부(250)에서 디지털 신호 ‘0’이 수신되면 오류정정부(230)에서 출력되는 정정비트데이터(I)를 출력하고, PIM인에이블부(250)에서 디지털 신호 ‘1’이 수신되면 데이터비트(B-2)를 출력하는 PIM인에이블스위치부(260)가 구비된 오류정정코드복호기(20)를 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.
  2. 제1항에 있어서, 신드롬생성부(210)는,
    메모리(1)가 읽기 동작을 수행할 때, 메모리 셀에레이(E)로부터 코드워드(D-2)를 수신하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.
  3. 제2항에 있어서, 신드롬생성부(210)는,
    복수 개의 배타적 논리합 게이트(#1~#8)를 포함하여 코드워드(D-2)의 데이터비트(B-2)를 읽어 새로운 패리트비트(C)를 연산하는 제1패리티모듈(211)과,
    복수 개의 배타적 논리합 게이트(#9~#16)를 포함하여 메모리 셀어레이(E, Cell Array)를 통해 수신된 패리티비트(F)와 제1패리티모듈(211)에서 출력되는 패리트비트(C)를 수신하여 배타적 논리합 연산을 실행하는 제2패리티모듈(212)을 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.
  4. 제3항에 있어서,
    제1패리티모듈(211)과 제2패리티모듈(212)은 동일한 개수의 배타적 논리합 게이트(XOR Gate)를 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.
  5. 제3항에 있어서, 신드롬복호화부(220)는,
    입력측에 입력되는 신드롬데이터(G)를 10진수로 복호화 한 후, 복호화된 10진수의 값에 대응하는 위치에 있는 출력단에 디지털 신호 ‘1’을 출력하고, 나머지 위치에 있는 출력단에는 디지털 신호 ‘0’을 출력하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.
  6. 제5항에 있어서, 오류정정부(230)는,
    제1입력단이 코드워드(D-2)를 수신하고,
    제2입력단이 신드롬복호화부(220)에서 출력된 디지털 신호를 수신하여, 배타적 논리합 연산을 실행하는 배타적 논리합 게이트를 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.
  7. 제1항에 있어서, 오류검출부(240)는,
    신드롬생성부(210)에서 입력되는 신드롬데이터(G) 가운데, 어느 하나의 디지털 신호 ‘1’이 입력되면 오류신호를 출력하는, 논리합 게이트(241)를 포함하는, 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치.
KR1020210171922A 2021-12-03 2021-12-03 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치 KR20230083689A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210171922A KR20230083689A (ko) 2021-12-03 2021-12-03 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치
PCT/KR2021/019871 WO2023101097A1 (ko) 2021-12-03 2021-12-24 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210171922A KR20230083689A (ko) 2021-12-03 2021-12-03 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치

Publications (1)

Publication Number Publication Date
KR20230083689A true KR20230083689A (ko) 2023-06-12

Family

ID=86612511

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210171922A KR20230083689A (ko) 2021-12-03 2021-12-03 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치

Country Status (2)

Country Link
KR (1) KR20230083689A (ko)
WO (1) WO2023101097A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116524992B (zh) * 2023-06-29 2023-09-15 上海飞斯信息科技有限公司 大容量高速固态存储器容量管理系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006179131A (ja) * 2004-12-22 2006-07-06 Fujitsu Ltd メモリシステム及び半導体記憶装置
KR20130004045A (ko) * 2011-07-01 2013-01-09 삼성전자주식회사 에러 정정 기능을 갖는 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US10606694B2 (en) * 2018-04-20 2020-03-31 Micron Technology, Inc. Error correction using hierarchical decoders
KR20200142213A (ko) * 2019-06-12 2020-12-22 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
KR20210092391A (ko) * 2020-01-16 2021-07-26 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치

Also Published As

Publication number Publication date
WO2023101097A1 (ko) 2023-06-08

Similar Documents

Publication Publication Date Title
US20100251076A1 (en) Storage controller having soft decoder included therein, related storage control method thereof and system using the same
US20120254686A1 (en) Non-volatile semiconductor memory devices and error correction methods
US8713411B2 (en) Encoding and/or decoding memory devices and methods thereof
KR101398200B1 (ko) 메모리 장치 및 인코딩/디코딩 방법
US8458566B2 (en) Method for performing copy back operations and flash storage device
CN1134782C (zh) 纠错方法和系统
US20180351574A1 (en) Memory controller and method of data bus inversion using an error detection correction code
US8176389B2 (en) Decoder device and method for decoding data stored in storage medium
US9100054B2 (en) Data processing systems and methods providing error correction
CN1530836A (zh) 非易失性存储器装置和数据处理系统
TWI557747B (zh) 記憶體控制模組與方法以及錯誤更正碼編/解碼電路與方法
EP3368984B1 (en) Temperature dependent multiple mode error correction
KR20180053700A (ko) 저전력 이중 에러 정정―삼중 에러 검출(deb―ted) 디코더
US20100100797A1 (en) Dual mode error correction code (ecc) apparatus for flash memory and method thereof
CN1146116C (zh) 截短法尔码的差错捕获译码方法和装置
JP4790790B2 (ja) 誤り検出訂正回路及び半導体メモリ
KR20230083689A (ko) 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치
US9164831B2 (en) Memory controller, semiconductor storage device, and decoding method
US8683308B2 (en) Semiconductor device, information processing apparatus, and method of detecting error
JP2012003569A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN1851827A (zh) 一种闪烁存储器数据存取方法
KR101304570B1 (ko) 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
US10819374B2 (en) Accelerated processing for maximum distance separable codes using composite field extensions
Spinner et al. A decoder with soft decoding capability for high-rate generalized concatenated codes with applications in non-volatile flash memories
KR20140006444A (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치