KR102024033B1 - 이동 통신 시스템에서 메모리 제어 방법 및 장치 - Google Patents

이동 통신 시스템에서 메모리 제어 방법 및 장치 Download PDF

Info

Publication number
KR102024033B1
KR102024033B1 KR1020130022732A KR20130022732A KR102024033B1 KR 102024033 B1 KR102024033 B1 KR 102024033B1 KR 1020130022732 A KR1020130022732 A KR 1020130022732A KR 20130022732 A KR20130022732 A KR 20130022732A KR 102024033 B1 KR102024033 B1 KR 102024033B1
Authority
KR
South Korea
Prior art keywords
memory
error
stored
error data
row
Prior art date
Application number
KR1020130022732A
Other languages
English (en)
Other versions
KR20140108886A (ko
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 KR1020130022732A priority Critical patent/KR102024033B1/ko
Priority to CN201380074189.2A priority patent/CN105027084B/zh
Priority to PCT/KR2013/004955 priority patent/WO2014137033A1/en
Priority to EP13877274.4A priority patent/EP2965205B1/en
Priority to US13/915,008 priority patent/US9110858B2/en
Publication of KR20140108886A publication Critical patent/KR20140108886A/ko
Application granted granted Critical
Publication of KR102024033B1 publication Critical patent/KR102024033B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • 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
    • 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
    • G06F11/1052Bypassing or disabling error detection or correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 개시의 일 실시 예에 따른 이동 통신 시스템에서 메모리 제어 장치는 메모리; 적어도 하나의 프로택션 셋(protection set)을 저장하는 로컬 버퍼를 포함하는 에러 정정 코드 스토리지(storage); 상기 로컬 버퍼에 저장된 유효 비트(valid bit)값을 기반으로 상기 메모리에 적어도 하나의 에러 데이터가 존재하는지 여부를 확인하고, 상기 메모리에 상기 적어도 하나의 에러 데이터가 존재함이 확인되면, 상기 메모리에 저장된 적어도 하나의 에러 데이터의 위치 정보와 상기 적어도 하나의 프로택션 셋(protection set)에 포함된 위치 정보를 비교하고, 비교 결과에 따라 상기 적어도 하나의 프로택션 셋으로부터 에러 정정 코드를 획득하고, 상기 획득된 에러 정정 코드를 이용하여 상기 메모리에 저장된 적어도 하나의 에러 데이터를 정정하는 제어부를 포함한다.

Description

이동 통신 시스템에서 메모리 제어 방법 및 장치{METHOD AND APPARATUS FOR CONTROLLING MEMORY IN MOBILE COMMUNICATION SYSTEM}
본 발명은 이동 통신 시스템에 관한 것으로, 특히 이동 통신 시스템에서 저전압 메모리 제어 방법 및 장치에 관한 것이다.
이동 통신 시스템에서 모든 디지털 칩은 칩 내에 로직(Logic) 부분과 메모리(Memory) 부분을 포함하고 있다. 이때, 메모리는 일반적으로 SRAM(Static Random Access Memory) Cell Type을 사용한다.
상기 메모리에서 발생할 수 있는 에러를 아래와 같이 3가지로 구분할 수 있으며, 이를 해결하는 일반적인 방식은 다음과 같다.
(1) 하드 에러(Hard Error) : 하드 에러는 반도체 공정(Process)상에서 발생하는 결점(defect)으로 인해서, 영구적으로 특정 비트 셀(bit cell)이 망가져서 정상적인 읽기/쓰기(read/write)를 수행할 수 없는 에러를 말한다. 에러 비트 위치(이하, “에러 위치”라 칭함)는 공정 단계에서 이미 결정되며, 공정이 완료된 후에는 변경되지 않는다. 따라서 공정이 완료된 후에 해당 에러 위치를 확인하고, 확인된 에러 위치를 미리 준비된 스페어 셀(spare cell)로 리라우트(reroute) 시켜주는 메모리 셀 리페어(memory cell repair) 기술이 널리 사용되고 있다. 에러가 발생한 비트가 포함된 워드라인(wordline)으로의 모든 접속은 미리 준비된 스페어 워드라인(spare wordline)으로 주소(address)를 전환함으로써 이루어지며, 칩을 생산하는 곳에서 이퓨즈(eFuse)를 통해서 프로그래밍(programming)된다. 이 방식은 에러 비트가 하나라도 있으면, 해당 워드라인 전체를 교체(replace)하므로, 리던던시 비트(redundancy bit)의 낭비가 발생한다. 또한 공정 단계에서 미리 발견된 에러만 리페어가 가능하고, 공정이 완료된 후에 발생되는 에러(소프트 에러, 에이징(aging) 등)는 리페어가 불가능하다.
(2) 소프트 에러(Soft Error): 우주로부터 지구로 날아 오거나 지구상에서 발생하는 α-particle 은 매우 작고 에너지 준위가 높아서 메모리에 저장된 전자(electron)와 부딪힐 경우, 메모리 셀(memory cell)에 저장된 값을 날려 버릴 수 있다. 이를 소프트 에러라고 하는데, 소프트 에러는 언제든지 발생할 수 있어 예측이 불가능하지만, 비트 셀이 하드웨어적으로 손상(damage)되는 것은 아니므로, 다시 값을 쓰기 동작을 수행하여 재사용이 가능하다. 이 소프트 에러를 정정하기 위해서는, 메모리의 모든 데이터에 대해서 에러 정정 코드(error correction code)(예컨대, 패리티(parity) 또는 ECC(Error Correction Code) code)를 함께 저장하여 두었다가, 읽기 동작에서 매번 해당 에러 코드(error code)와 데이터를 함께 읽어서 에러가 발생하였는지 확인하는 과정을 거쳐야 한다. 일반적인 캐쉬 제어기(Cache Controller)에서는 소프트 에러를 위한 ECC 기술을 제공한다. 소프트 에러 방식에서는 모든 메모리 워드(memory word)에 대한 ECC 코드를 저장하여야 하므로, 리던던시 비트가 많이 필요하다. 또한 에러 발생시, 소프트 에러는 CPU(Central Processing Unit)에 의해서 소프트웨어로 처리되므로, 그 성능 패널티(performance penalty)가 크다. 만약, 하드웨어로 처리되는 경우 한 워드라인에 몇 개의 비트 에러까지 처리 가능한지에 따라 하드웨어 컴플렉시티(hardware complexity)가 정해진다. 일반적으로, 에러 정정은 1 bit error correction 또는 2 bit error detection까지 지원하는데, 이는 2 bit error에 대해서는 에러 정정이 불가능하다.
(3) 저-전압(Low-Voltage)으로 인한 에러: 도 1은 일반적인 전압에 따른 에러 발생 빈도를 나타낸 그래프를 나타낸다. 메모리의 경우, 도 1에 도시한 바와 같이, 전원 전압이 낮아질수록 쓰기 동작에 실패(failure)가 발생하는 빈도가 높아진다. 일반적으로 디지털 회로 설계에서는 실패가 전혀 일어나지 않는 높은 전원 전압에서 칩을 설계하고 구동시킨다. 따라서 칩의 전력을 줄일 수 있는 기회는 메모리에 의해서 크게 제한을 받게 된다. 이러한 실패를 저-전압으로 인한 에러로 정의한다. 도 1에 도시된 '퍼시스턴트 에러(Persistent Error)' 확률은 전압에 로그-스케일(log-scale)로 반비례하고, 전압이 낮아질수록 에러 레이트(Error Rate)가 증가한다.
전술한 상기 (1) 메모리 셀 리페어 기술과 소프트 에러 ECC 기술은 아래와 같은 문제점이 존재할 수 있다.
(1) 메모리 셀 리페어 기술의 문제점
'저-전압으로 인한 에러'는 공정이 완료되면, 에러 위치를 미리 알 수 있으므로, 이퓨즈를 이용한 셀 리페어 기술을 적용하는 것이 가능하다. 하지만 이를 구현하기 위해 추가되어야 하는 이퓨즈와 전체 워드라인을 교체하기 위한 리던던시 워드라인의 면적이 매우 크다. 또한 에러의 개수가 증가함에 따라서 해당 스페어 워드라인의 수가 선형적으로 증가되어야 하므로, 미리 그 수를 예측하는 것도 어렵다. 따라서 충분히 큰 리던던시 셀과 이퓨즈를 준비해야 하는데 이로 인한 면적 비용이 증가하는 문제가 있다.
(2) 소프트 에러 ECC 기술의 문제점
일반적인 소프트 에러 ECC 기술을 기준으로 설명한다. 기본적으로 소프트 에러 ECC 기술은 에러의 위치를 미리 알 수 없는 경우를 대비한 것이므로, 모든 셀 영역에 대한 에러 코드를 모두 저장하고 있어야 한다. 또한 에러의 검출은 추가된 하드웨어/소프트웨어 로직에 의해서 수행이 되지만, 에러 정정은 익셉션 핸들러(exception handler)로 천이되어 소프트웨어로 처리하게 된다. 이는 소프트웨어 에러의 빈도가 매우 적기 때문에, 이로 인한 성능 패널티가 적을 것으로 판단한 것이다. 이 기술을 '저-전압으로 인한 에러'에 적용할 경우 아래와 같은 문제점이 있다.
첫째, '저-전압으로 인한 에러'는 해당 전원 전압에서는 영구적인 에러(permanent error)이므로, 해당 주소를 접속할 경우, 항상 에러가 발생한다. 따라서 에러 빈도가 꽤 높아진다고 볼 수 있다.(소프트 에러의 경우, 다시 쓰기(rewrite) 동작을 해주면 에러가 사라지므로 그 빈도가 매우 낮아질 수 있다.) 하지만 이를 소프트웨어로 에러 정정하는 경우, 이로 인한 성능 패널티가 매우 커지게 되는 문제점이 있다.
둘째, 일반적으로 모든 읽기 접속에 대해서 ECC 검출 과정이 필요하고, 모든 쓰기 접속에 대해서 ECC 코드 생성 과정이 필요하다. 하지만, '저-전압으로 인한 에러'는 에러 위치가 미리 정해져 있으므로, 해당 에러가 발생하는 워드 접속에 대해서만 해당 과정이 필요하다. 하지만 일반적인 기술에서는 이를 구분하지 않으므로, 에러가 발생하지 않은 영역을 접속할 때 조차도 성능상의 패널티가 증가하는 문제점이 있다.
본 발명은 이동 통신 시스템에서 전력 효율을 높이기 위하여 전원 전압을 에러가 발생할 수 있는 수준까지도 낮추고, 이로 인해 발생되는 메모리 에러 문제를 해결하는 장치 및 방법을 제공한다.
본 발명은 이동 통신 시스템에서 메모리 구현 면적 비용을 최소로 하고, 최소의 성능 패널티를 목표로 하며, 최종적으로는 이동 통신 시스템의 전력 및 성능 경쟁력을 높이는 장치 및 방법을 제공한다.
본 발명은 이동 통신 시스템에서 메모리 구현시 패리티를 적게 사용하여 오버헤드를 줄이는 장치 및 방법을 제공한다.
일 실시 예에 따른 메모리 제어 장치는; 이동 통신 시스템에서 메모리 제어 장치에 있어서, 메모리; 적어도 하나의 프로택션 셋(protection set)을 저장하는 로컬 버퍼를 포함하는 에러 정정 코드 스토리지(storage); 상기 로컬 버퍼에 저장된 유효 비트(valid bit)값을 기반으로 상기 메모리에 적어도 하나의 에러 데이터가 존재하는지 여부를 확인하고, 상기 메모리에 상기 적어도 하나의 에러 데이터가 존재함이 확인되면, 상기 메모리에 저장된 적어도 하나의 에러 데이터의 위치 정보와 상기 적어도 하나의 프로택션 셋(protection set)에 포함된 위치 정보를 비교하고, 비교 결과에 따라 상기 적어도 하나의 프로택션 셋으로부터 에러 정정 코드를 획득하고, 상기 획득된 에러 정정 코드를 이용하여 상기 메모리에 저장된 적어도 하나의 에러 데이터를 정정하는 제어부를 포함한다.
일 실시 예에 따른 메모리 제어 방법은; 이동 통신 시스템에서 메모리 제어 방법에 있어서, 에러 정정 코드 스토리지의 로컬 버퍼에 저장된 유효 비트값을 기반으로 메모리에 적어도 하나의 에러 데이터가 존재하는지 여부를 확인하는 과정; 상기 메모리에 상기 적어도 하나의 에러 데이터가 존재함이 확인되면, 상기 메모리에 저장된 적어도 하나의 에러 데이터의 위치 정보와 상기 로컬 버퍼에 저장된 적어도 하나의 프로택션 셋에 포함된 위치 정보를 비교하는 과정; 및 비교 결과에 따라 상기 적어도 하나의 프로택션 셋으로부터 에러 정정 코드를 획득하고, 상기 에러 정정 코드를 이용하여 상기 메모리에 저장된 적어도 하나의 에러 데이터를 정정하는 과정을 포함한다.
삭제
본 발명은 이동 통신 시스템에서 사용되는 메모리의 전력효율을 극대화 하면서도, 추가되는 면적 비용과 성능 패널티를 최소로 할 수 있다.
본 발명은 이동 통신 시스템의 소비 전력을 낮출 수 있다.
본 발명은 에러 위치가 변경이 되더라도 에러 위치를 추적하여 업데이트할 수 있다.
본 발명은 하나의 억세스 유닛의 에러 데이터가 2비트이더라도, 효율적으로 에러를 정정할 수 있다.
본 발명은 패리티를 적게 사용해서 오버헤드를 줄일 수 있다.
본 발명은 메모리 로우에서 발생할 수 있는 멀티 비트 에러를 모두 처리 할 수 있다.
도 1은 일반적인 전압에 따른 에러 발생 빈도를 나타낸 그래프;
도 2는 일반적인 메모리 구조도;
도 3은 본 발명의 제1 실시 에에 따른 메모리 구조도;
도 4는 본 발명의 제1 실시 에에 따른 읽기 동작 순서도;
도 5는 본 발명의 제1 실시 예에 따른 쓰기 동작 순서도;
도 6은 본 발명의 제2 실시 예에 따른 메모리 구조도;
도 7은 본 발명의 제2 실시 예에 따른 읽기 동작 순서도; 및
도 8은 본 발명의 제2 실시 예에 따른 쓰기 동작 순서도.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이때 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의하여야 한다. 또한 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
또한 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
본 발명에서는 저-전압 에러를 효율적으로 처리하여, 전원 전압을 최소로 낮추는 방법을 제시하고자 한다. 저-전압 에러는 일반적으로 공정을 마치고 나면, 그 위치를 미리 파악할 수 있으며, 시간이 지남에 따라 그 위치가 변하지 않는 특성이 있다. 만약 에러 위치가 변경이 되더라도 에러 위치를 추적하여 업데이트하는 것이 가능하다.
또한 본 발명은 칩 내의 메모리를 포함하고 있는 이동 통신 시스템에서, 전원 전압을 최소로 낮추었을 때 발생할 수 있는 메모리 비트 에러를 처리함에 있어, 낮은 비용과 성능 열화를 최소로 구현할 수 있는 방법 및 장치를 제공한다.
더욱 상세하게는, 메모리를 이용하는 모든 디지털 칩에서, 전력을 낮추기 위하여 전원 전압을 최소로 감소시킴으로써 발생하는 소량의 비트 에러를 검출 및 정정하기 위하여, 본 발명은 각 메모리의 워드라인마다 에러 위치와 에러를 보정할 수 있는 코드를 함께 별도의 메모리를 두어 저장한다. 그리고 본 발명은 해당 에러가 포함된 워드를 읽거나 쓸 경우, 해당 코드를 이용하여, 에러를 보정하는 방법 및 장치를 제공한다. 본 발명은 기존 보다 더 낮은 전원 전압에서 해당 이동 통신 시스템이 에러 없이 동작하도록 하여, 칩의 전력을 최소화할 수 있으며, 이를 위하여 최소의 추가 면적이 소요될 수 있는 구현 방법을 제안한다.
도 2는 일반적인 메모리 구조도를 나타낸다.
도 2는 일반적인 메모리 구조에서의 데이터 읽기 방식의 일 예를 도시한 것이다. 로우 어드레스(Row Address)(011)에 의해서 하나의 로우(예컨대, “011” 비트)가 선택되고, 선택된 값은 센스 증폭기(sense amplifier)에서 증폭된다. 센스 증폭기에서 증폭됨으로써, 로컬 버퍼에 로우 데이터가 복사(또는 독출)된다. 본 명세서에서는 데이터를 복사하는 것과 데이터를 독출(read) 또는 읽는 것은 동일한 의미이며, 혼용하여 기재하기로 한다.
이후, 컬럼 어드레스(column decoder)(예컨대, “001” 비트)에 따라서 “001” 비트에 해당하는 하나의 억세스 유닛(access unit)이 선택되어 출력된다. 도 2에서 "x"로 표시된 비트는 '저-전압으로 인한 에러'를 의미하고, 해칭된 "x"로 표시된 비트는 “011” 로우에서 발생된 ‘저-전압으로 인한 에러’를 의미한다. 도 1을 참조하면, 일반적인 메모리 구조에서는 해당 에러가 그대로 독출됨을 알 수 있다.
도 3은 본 발명의 제1 실시 예에 따른 메모리 구조도이다.
본 발명의 제1 실시 예는 동일한 억세스 유닛(access unit) 데이터에 1 개의 에러가 발생하는 경우, 메모리 제어 방법을 제안한다.
본 발명에서는 도 2의 일반적인 메모리 구조에 도 3과 같이 Error Correction Code Storage (이하, “ECCS”라 칭함)(310), Error Correction Code local buffer(이하, “ECC 로컬 버퍼”라 칭함)(320), 및 1-bit Error Correction Unit(이하 “ECU”라 칭함)(330) 등이 추가된다.
ECCS(310)는 각 로우 마다 k 개의 프로택션 셋(이하, “Protection Set”이라 칭함)을 저장하고 있으며, 각 Protection Set은 해당 로우에서 에러 위치를 저장하는 'ID' bit(322)와 해당 에러를 정정하기 위한 ECC 코드인 'C' bit(324)를 포함한다. 'ID' bit(322)와 'C' bit(324)를 이용하여, 각 로우에서 발생할 수 있는 에러를 최대 k개까지 정정이 가능하다. k가 증가할수록 필요로 하는 Protection Set가 많아지므로, 영역(Area)의 오버헤드가 커진다. 따라서 보편적으로 k = 1 또는 k =2가 적당하다.
또한 ECCS(310)는 각 로우 마다 1-bit의 Valid bit 'V'(326)를 포함하고 있다. 예컨대, Valid bit 'V'(326)는 해당 로우에 에러가 하나도 없는 경우에 '0'으로 설정되고, 하나라도 에러가 있는 경우엔 '1'으로 설정된다. 상기 Valid bit 'V'(326)를 먼저 확인함으로써, 종래의 불필요한 동작을 생략할 수 있다. 만약 해당 로우에 k 보다 적은 수인 m 개의 에러만 있는 경우, 나머지 k-m 개의 Protection Set에는 마지막 'm'번째 에러의 위치를 중복해서 ID bit(322)에 저장하도록 한다. 만약, 이렇게 하지 않고, ID bit(322)을 '0'으로 초기화 할 경우, 0 번째 바이트에서의 에러가 발생했다는 의미로 오인할 수 있기 때문이다.
ECU(330)는 메모리로부터 읽어온 에러 발생한 데이터(370)와 ECCS(310)로부터 읽어온 해당 ECC 코드를 ECC 로컬 버퍼(320)를 통해 받아서, 에러를 정정하는 1 비트 에러 정정 유닛(1 bit Error Correction Unit)을 가지고 있다. 즉, ECU(330)는 1비트의 에러에 대해 ECC 코드를 이용하여 에러 정정 가능하다. 현재 알려진 ECC 알고리즘(algorithm)은 수 많은 종류가 있으나, 본 발명에서는 이를 한정하지는 않는다.
도 4는 본 발명의 제1 실시 에에 따른 읽기 동작 순서도를 나타낸다.
도 4를 참조하면, 제어부(도면에 도시하지 않음)는 401 단계에서 로우 어드레스 및 칼럼 어드레스가 입력됨을 인지하고, 402 단계에서 로우 어드레스를 디코딩한다. 이후, 제어부는 403 단계에서 센스 증폭기에 의해 디코딩된 로우 데이터를 로컬 버퍼로 복사한다. 이후, 제어부는 404 단계에서 칼럼 어드레스를 디코딩한다. 디코딩 결과, 칼럼 어드레스에 의해 하나의 억세스 유닛이 선택되어 출력된다. 예컨대, 도 3과 같이, “001”비트에 1 비트의 에러가 존재함을 가정한다.
403 단계와 동시에 제어부는 405 단계에서 ECCS(310)에 저장된 ECCS 데이터를 ECCS 로컬 버퍼(320)로 복사한다. 이때, 403 단계에서의 로우 데이터와 405 단계에서의 로우 어드레스는 동일한 어드레스이다.
제어부는 407 단계에서 ECCS 로컬 버퍼(320)에 저장된 Valid bit 'V'(326)가 1 비트로 설정되어 있는가를 판단한다. 만약, Valid bit 'V'(326)가 1 비트로 설정되지 않은 경우, 제어부는 해당 로우에 에러가 없는 것으로 판단하고, 415 단계로 진행하여 에러가 없는 데이터를 독출한다. 그러나, 407 단계에서 Valid bit 'V'(326)가 1 비트로 설정된 경우, 제어부는 409 단계에서 해당 로우에 에러가 하나라도 있는 것으로 판단하고, 401 단계에서 읽은 칼럼 어드레스에서 발생한 컬럼 어드레스와 일치하는 'ID' bit(322)가 존재하는가를 판단한다. 상기 'ID' bit(322)는 ECCS 로컬 버퍼(320)에 저장된 Protection Set의 'ID' bit이다. 제어부는 411 단계에서 일치하는 'ID' bit(322)가 존재할 경우, 해당 'ID' bit(322)와 매핑된 'C' bit(324)를 읽는다.
제어부는 413 단계로 진행하여, 메모리로부터 읽어온 에러 발생한 데이터(370)를 411 단계에서 ECC 로컬 버퍼(320)로부터 읽어온 ECC 코드를 이용하여 에러를 정정한다. 이와 같이, 에러가 정정됨으로써, 제어부는 415 단계에서 에러가 제거된 데이터를 독출한다.
도 5는 본 발명의 제1 실시 예에 따른 쓰기 동작 순서도이다.
본 발명의 제1 실시 예에 따른 쓰기 동작은 도 4의 읽기 동작의 역동작이다.
도 5를 참조하면, 제어부는 501 단계에서 로우 어드레스 및 칼럼 어드레스가 입력됨을 인지하고, 502 단계에서 로우 어드레스를 디코딩한다. 502 단계와 동시에 제어부는 509 단계에서 쓸 데이터로부터 ECC 코드를 생성한다. ECC 코드가 생성되면, 제어부는 517 단계에서 생성된 'C' bit(324)를 Protection Set에 쓰고, 519 단계로 진행하여 ECC 로컬 버퍼(320)의 데이터를 ECCS(310)에 쓴다.
한편, 502 단계 이후, 제어부는 503 단계에서 디코딩된 로우 데이터를 센스 증폭기에 의해 로컬 버퍼로 복사한다. 이후, 제어부는 505 단계에서 칼럼 어드레스를 디코딩하고, 507 단계에서 디코딩 결과 생성된 데이터를 메모리에 쓴다.
한편, 503 단계와 동시에 제어부는 511 단계에서 해당 ECCS 데이터를 ECCS 로컬 버퍼로 복사한다. 이때, ECCS 데이터는 ECCS(310)에 저장된 데이터를 의미하고, 503 단계에서의 로우 데이터와 509 단계에서의 로우 어드레스는 동일한 어드레스이다.
제어부는 513 단계에서 ECCS 로컬 버퍼(320)에 저장된 Valid bit 'V'(326)가 1 비트로 설정되어 있는가를 판단한다. 만약, Valid bit 'V'(326)가 1 비트로 설정되지 않은 경우, 제어부는 해당 로우에 에러가 없는 것으로 판단하고, 519 단계로 진행하여 에러가 없는 ECCS 로컬 버퍼(320)의 데이터를 ECCS(310)에 쓴다.
그러나, 513 단계에서 Valid bit 'V'(326)가 1 비트로 설정된 경우, 제어부는 515 단계에서 해당 로우에 에러가 하나라도 있는 것으로 판단하고, 칼럼 디코더에서 출력하고, 에러 비트가 존재하는 칼럼 어드레스와 일치하는 'ID' bit(322)가 존재하는지를 확인한다. 즉, 상기 칼럼 디코더에서 출력한 칼럼 어드레스와 ECCS 의 각 Protection Set의 'ID' bit(322)를 비교한다. 'ID' bit(322)는 ECCS 로컬 버퍼(320)에 저장된 Protection Set의 'ID' bit이다. 제어부는 517 단계에서 일치하는 'ID' bit(322)가 존재할 경우, 'ID' bit(322)와 매핑된 'C' bit(324)를 Protection Set에 쓴다.
제어부는 519 단계로 진행하여 ECC 로컬 버퍼(320)의 데이터를 ECCS(310)에 쓴다.
도 6은 본 발명의 제2 실시 예에 따른 메모리 구조도이다.
본 발명의 제2 실시 예는 동일한 억세스 유닛(access unit) 데이터에 2 개의 에러가 발생하는 경우, 메모리 제어 방법을 제안한다. 이를 위해, 본 발명의 제2 실시 예에서는 인터리버(650)를 도입한다. 또한 인터리버(650)와 이를 제어하기 위한 'I' bit(628)가 추가된다. 도 3 의 메모리 구조도에서는 동일한 억세스 유닛의 데이터에 2개의 에러가 발생하는 경우, 1-bit ECU로는 에러를 정정할 수가 없다. 이를 문제점을 해결하기 위한 본 발명에서는 도 6과 같이, 인터리버(650)를 추가하여, 에러의 위치를 분산시킨다. 인터리버를 사용하여 입력되는 신호의 순서를 변경시키고, 그로 인해 에러의 위치를 분산시켜 디코더가 효율적으로 에러를 정정할 수 있다.
해당 인터리빙 방식은 여러 종류가 가능하며, 이는 'I' bit(628)에 의해서 각 로우마다 다르게 설정이 가능하다. 이 'I' bit(628) 값은 칩이 만들어진 후에, 캘리브레이션 과정에서 그 에러 위치를 정확히 파악하여, 이를 분산시키기 위한 적절한 인터리빙 방식을 선택해서 결정한다. 'I' bit(628)를 2-bit로 정의하는 경우, 예컨대, 4 가지의 인터리빙 방식이 가능하다. 각 인터리빙 방식에 대해서는 본 발명에서 한정하지 않는다.
도 7은 본 발명의 제2 실시 에에 따른 읽기 동작 순서도를 나타낸다.
도 7을 참조하면, 제어부는 701 단계에서 로우 어드레스 및 칼럼 어드레스가 입력됨을 인지하고, 702 단계에서 로우 어드레스를 디코딩한다. 이후, 제어부는 703 단계에서 디코딩된 로우 데이터를 센스 증폭기에 의해 로컬 버퍼로 복사한다. 이후, 제어부는 704 단계에서 칼럼 어드레스를 디코딩한다. 디코딩 결과, 입력된 칼럼 어드레스에 의해 하나의 억세스 유닛이 선택되어 출력된다. 예컨대, 도 3과 같이, “001”비트에 1 비트의 에러가 존재함을 가정한다.
한편, 703 단계와 동시에 제어부는 705 단계에서 ECCS(610)에 저장된 ECCS 데이터를 ECCS 로컬 버퍼(620)로 복사한다. 이때, 703 단계에서의 로우 데이터와 705 단계에서의 로우 어드레스는 동일한 어드레스이다.
제어부는 707 단계에서 ECCS 로컬 버퍼(620)에 저장된 Valid bit 'V'(626)가 1 비트로 설정되어 있는가를 판단한다. 만약, Valid bit 'V'(626)가 1 비트로 설정되지 않은 경우, 제어부는 해당 로우에 에러가 없는 것으로 판단하고, 717 단계로 진행하여 에러가 없는 데이터를 독출한다.
그러나, 707 단계에서 Valid bit 'V'(626)가 1 비트로 설정된 경우, 제어부는 해당 로우에 에러가 하나라도 있는 것으로 판단하고, 다음의 두 가지 단계를 동시에 수행한다.
첫 번째 단계는, 711 단계로 진행하여, 701 단계에서 읽은 칼럼 어드레스와 일치하는 'ID' bit(622)가 존재하는가를 판단한다. 상기 'ID' bit(622)는 ECCS 로컬 버퍼(620)에 저장된 Protection Set의 'ID' bit이다. 제어부는 일치하는 'ID' bit(622)가 존재할 경우, 713 단계에서 'ID' bit(622)가 매핑된 Protection Set으로부터 'C' bit(624)를 읽는다.
두 번째 단계는, 709 단계로 진행하여, ECCS 로컬 버퍼(620)에 설정된 ‘I’ bit(628)에 의해 인터리버(650)를 제어하고, 인터리버(650)에 의해 인터리빙된 데이터를 로컬 버퍼에 입력한다. 이후, 제어부는 704 단계로 진행하여 칼럼 어드레스를 디코딩한다.
한편, 제어부는 713 단계 및 704 단계 이후, 715 단계로 진행하여, 메모리로부터 읽어온 에러 발생한 데이터(670)를 ECC 로컬 버퍼(620)로부터 읽어온 ECC 코드를 이용하여 에러를 정정한다. (1-bit error correction) 이와 같이, 에러가 정정됨으로써, 제어부는 717 단계에서 에러가 제거된 데이터를 독출한다.
도 8은 본 발명의 제2 실시 예에 따른 쓰기 동작 순서도이다.
본 발명의 제2 실시 예에 따른 쓰기 동작은 도 7의 읽기 동작의 역동작이다.
도 8을 참조하면, 제어부(도면에 도시하지 않음)는 801 단계에서 로우 어드레스 및 칼럼 어드레스가 입력됨을 인지한다. 메모리 억세스를 위한 로우 어드레스 및 칼럼 어드레스가 입력된다. 이후, 제어부는 803 단계에서 로우 데이터를 디코딩한다. 803 단계와 동시에 제어부는 811 단계에서 쓸 데이터로부터 ECC 코드를 생성한다. ECC 코드가 생성되면, 제어부는 821 단계에서 생성된 'C' bit(324)를 Protection Set에 쓰고, 823 단계로 진행하여 ECC 로컬 버퍼(320)의 데이터를 ECCS(310)에 쓴다.
한편, 803 단계 이후, 제어부는 805 단계에서 로우 데이터를 센스 증폭기에 의해 로컬 버퍼로 복사한다. 이후, 제어부는 807 단계에서 칼럼 어드레스를 디코딩하고, 809 단계에서 디코딩 결과 생성된 데이터를 메모리에 쓴다.
한편, 805 단계와 동시에 제어부는 813 단계에서 해당 ECCS 데이터를 ECCS 로컬 버퍼로 복사한다. 이때, 805 단계에서의 로우 데이터와 813 단계에서의 로우 어드레스는 동일한 어드레스이다.
제어부는 815 단계에서 ECCS 로컬 버퍼(620)에 저장된 Valid bit 'V'(626)가 1 비트로 설정되어 있는가를 판단한다. 만약, Valid bit 'V'(626)가 1 비트로 설정되지 않은 경우, 제어부는 해당 로우에 에러가 없는 것으로 판단하고, 823 단계로 진행하여 에러가 없는 ECCS 로컬 버퍼 데이터를 ECCS에 쓴다.
그러나, 707 단계에서 Valid bit 'V'(626)가 1 비트로 설정된 경우, 제어부는 해당 로우에 에러가 하나라도 있는 것으로 판단하고, 다음의 두 가지 단계를 동시에 수행한다.
첫 번째 단계는 817 단계로 진행하여, ECCS 로컬 버퍼(620)에 설정된 ‘I’ bit(628)에 의해 인터리버(650)를 제어하고, 인터리버(650)에 의해 인터리빙된 데이터를 로컬 버퍼에 입력한다. 이후, 제어부는 809 단계로 진행하여 데이터를 메모리에 쓴다.
두 번째 단계는, 제어부는 819 단계에서 해당 로우에 에러가 하나라도 있는 것으로 판단하고, 칼럼 디코더에서 출력한 칼럼 어드레스와 일치하는 'ID' bit(622)가 존재하는지를 확인한다. 즉, 칼럼 디코더에서 출력한 칼럼 어드레스와 ECCS 의 각 Protection Set의 'ID' bit(622)를 비교한다. 'ID' bit(622)는 ECCS 로컬 버퍼(320)에 저장된 Protection Set의 'ID' bit이다. 제어부는 821 단계에서 일치하는 'ID' bit(322)가 존재할 경우, 'ID' bit(622)와 매핑된 'C' bit(624)를 Protection Set에 쓴다.
제어부는 823 단계로 진행하여 ECC 로컬 버퍼(620)의 데이터를 ECCS(610)에 쓴다.
본 발명은 대부분의 디지털 프로세서 및 시스템에서 사용되는 메모리에 있어서, 그 전력 효율을 높이기 위하여 전원 전압을 Error가 발생할 수 있는 수준까지도 낮추고, 이로 인해 발생되는 메모리 Error를 처리함에 있어서 기존 설계기술 방식에서 해결하지 못한 문제점을 극복한다. 따라서 전력효율을 극대화 하면서도, 추가되는 면적 비용과 성능 패널티를 최소로 한다.
본 발명에서 추가되는 면적 비용은 ECCS를 저장하기 위한 메모리 공간과 ECU 및 인터리빙 로직이다. 이는 일반적인 기술에서 전체 데이터를 위한 ECC 코드를 저장하는 것과 달리, ID bit를 두고 에러가 발생한 위치의 ECC 코드만을 선택하여 저장하도록 함으로써 면적비용을 최소화할 수 있다. 또한 1-bit error correction unit 하나만으로, 하나의 메모리 로우에서 발생할 수 있는 멀티 비트 에러를 모두 처리 할 수 있다.
본 발명을 통하여, 궁극적으로 이동 통신 시스템의 소비전력을 획기적으로 낮출 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.

Claims (24)

  1. 이동 통신 시스템에서 메모리 제어 장치에 있어서,
    메모리;
    적어도 하나의 프로택션 셋(protection set)을 저장하는 로컬 버퍼를 포함하는 에러 정정 코드 스토리지(storage);
    상기 로컬 버퍼에 저장된 유효 비트(valid bit)값을 기반으로 상기 메모리에 적어도 하나의 에러 데이터가 존재하는지 여부를 확인하고, 상기 메모리에 상기 적어도 하나의 에러 데이터가 존재함이 확인되면, 상기 메모리에 저장된 적어도 하나의 에러 데이터의 위치 정보와 상기 적어도 하나의 프로택션 셋(protection set)에 포함된 위치 정보를 비교하고, 비교 결과에 따라 상기 적어도 하나의 프로택션 셋으로부터 에러 정정 코드를 획득하고, 상기 획득된 에러 정정 코드를 이용하여 상기 메모리에 저장된 적어도 하나의 에러 데이터를 정정하는 제어부를 포함하는 이동 통신 시스템에서 메모리 제어 장치.
  2. 제1항에 있어서,
    상기 적어도 하나의 프로택션 셋은 상기 로컬 버퍼에 상기 메모리의 각 로우(row) 별로 저장된 적어도 하나의 프로택션 셋 중 하나이며, 상기 각 로우 별로 저장된 적어도 하나의 프로택션 셋은 해당 로우에 존재하는 적어도 하나의 에러 데이터의 위치 정보를 나타내는 식별자(identifier: ID) 비트 및 상기 해당 로우에 존재하는 적어도 하나의 에러 데이터를 정정하기 위한 에러 정정 코드를 포함함을 특징으로 하는 이동 통신 시스템에서 메모리 제어 장치.
  3. 제2항에 있어서,
    상기 제어부는 상기 메모리에 저장된 적어도 하나의 에러 데이터의 상기 메모리 내 칼럼 어드레스(column address)와 상기 각 로우 별로 저장된 적어도 하나의 프로택션 셋의 ID 비트를 비교하고, 상기 각 로우 별로 저장된 적어도 하나의 프로택션 셋 중 상기 칼럼 어드레스에 대응하는 ID 비트를 포함하는 프로택션 셋이 확인되면, 상기 확인된 프로택션 셋에 저장된 에러 정정 코드를 상기 메모리에 저장된 적어도 하나의 에러 데이터를 정정하기 위해 이용함을 특징으로 하는 이동 통신 시스템에서 메모리 제어 장치.
  4. 제1항에 있어서,
    상기 메모리에 저장된 적어도 하나의 에러 데이터가 다수개인 경우, 상기 다수개의 에러 데이터들을 인터리빙하는 인터리버를 더 포함함을 특징으로 하는 이동 통신 시스템에서 메모리 제어 장치.
  5. 제4항에 있어서,
    상기 인터리버는 상기 메모리의 로우(row) 상에 상기 다수개의 에러 데이터들이 분산되도록 상기 다수개의 에러 데이터들을 인터리빙함을 특징으로 하는 이동 통신 시스템에서 메모리 제어 장치.
  6. 제1항에 있어서,
    상기 유효 비트값은 상기 메모리의 각 로우(row) 별로 저장됨을 특징으로 하는 이동 통신 시스템에서 메모리 제어 장치.
  7. 이동 통신 시스템에서 메모리 제어 방법에 있어서,
    에러 정정 코드 스토리지의 로컬 버퍼에 저장된 유효 비트값을 기반으로 메모리에 적어도 하나의 에러 데이터가 존재하는지 여부를 확인하는 과정;
    상기 메모리에 상기 적어도 하나의 에러 데이터가 존재함이 확인되면, 상기 메모리에 저장된 적어도 하나의 에러 데이터의 위치 정보와 상기 로컬 버퍼에 저장된 적어도 하나의 프로택션 셋에 포함된 위치 정보를 비교하는 과정; 및
    비교 결과에 따라 상기 적어도 하나의 프로택션 셋으로부터 에러 정정 코드를 획득하고, 상기 에러 정정 코드를 이용하여 상기 메모리에 저장된 적어도 하나의 에러 데이터를 정정하는 과정을 포함하는 이동 통신 시스템에서 메모리 제어 방법.
  8. 제7항에 있어서,
    상기 적어도 하나의 프로택션 셋은 상기 로컬 버퍼에 상기 메모리의 각 로우(row) 별로 저장된 적어도 하나의 프로택션 셋 중 하나이며,
    상기 각 로우 별로 저장된 적어도 하나의 프로택션 셋은 해당 로우에 존재하는 적어도 하나의 에러 데이터의 위치를 나타내는 식별자(identifier: ID) 비트 및 상기 해당 로우에 존재하는 적어도 하나의 에러를 정정하기 위한 에러 정정 코드를 포함함을 특징으로 하는 이동 통신 시스템에서 메모리 제어 방법.
  9. 제8항에 있어서,
    상기 비교하는 과정은 상기 메모리에 저장된 적어도 하나의 에러 데이터의 상기 메모리 내 칼럼 어드레스(column address)와 상기 각 로우 별로 저장된 적어도 하나의 프로택션 셋의 ID 비트를 비교하는 과정을 포함하고,
    상기 정정하는 과정은 상기 비교 결과, 상기 각 로우 별로 저장된 적어도 하나의 프로택션 셋 중 상기 칼럼 어드레스에 대응하는 ID 비트를 포함하는 프로택션 셋이 확인되면, 상기 확인된 프로택션 셋에 저장된 에러 정정 코드를 이용하여 상기 메모리에 저장된 적어도 하나의 에러 데이터를 정정하는 과정을 포함함을 특징으로 하는 이동 통신 시스템에서 메모리 제어 방법.
  10. 제7항에 있어서,
    상기 메모리에 저장된 적어도 하나의 에러 데이터가 다수개인 경우, 상기 다수개의 에러 데이터들을 인터리빙하는 과정을 더 포함함을 특징으로 하는 이동 통신 시스템에서 메모리 제어 방법.
  11. 제10항에 있어서,
    상기 인터리빙 하는 과정은 상기 메모리의 로우(row) 상에 상기 다수개의 에러 데이터들이 분산되도록 상기 다수개의 에러 데이터들을 인터리빙하는 과정을 포함함을 특징으로 하는 이동 통신 시스템에서 메모리 제어 방법.
  12. 제7항에 있어서,
    상기 유효 비트값은 상기 메모리의 각 로우(row) 별로 저장됨을 특징으로 하는 이동 통신 시스템에서 메모리 제어 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
KR1020130022732A 2013-03-04 2013-03-04 이동 통신 시스템에서 메모리 제어 방법 및 장치 KR102024033B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130022732A KR102024033B1 (ko) 2013-03-04 2013-03-04 이동 통신 시스템에서 메모리 제어 방법 및 장치
CN201380074189.2A CN105027084B (zh) 2013-03-04 2013-06-05 在移动通信***中控制存储器的装置和方法
PCT/KR2013/004955 WO2014137033A1 (en) 2013-03-04 2013-06-05 Apparatus and method for controlling memory in mobile communication system
EP13877274.4A EP2965205B1 (en) 2013-03-04 2013-06-05 Apparatus and method for controlling memory in mobile communication system
US13/915,008 US9110858B2 (en) 2013-03-04 2013-06-11 Apparatus and method for controlling memory in mobile communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130022732A KR102024033B1 (ko) 2013-03-04 2013-03-04 이동 통신 시스템에서 메모리 제어 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140108886A KR20140108886A (ko) 2014-09-15
KR102024033B1 true KR102024033B1 (ko) 2019-09-24

Family

ID=51421657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130022732A KR102024033B1 (ko) 2013-03-04 2013-03-04 이동 통신 시스템에서 메모리 제어 방법 및 장치

Country Status (5)

Country Link
US (1) US9110858B2 (ko)
EP (1) EP2965205B1 (ko)
KR (1) KR102024033B1 (ko)
CN (1) CN105027084B (ko)
WO (1) WO2014137033A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3379416B1 (en) 2017-03-24 2023-06-14 Nxp B.V. Memory system
CN108519928A (zh) * 2018-03-31 2018-09-11 北京联想核芯科技有限公司 一种动态调整ecu的处理方法和装置
US11204835B2 (en) * 2018-10-12 2021-12-21 Supermem, Inc. Error correcting memory systems
JP7306945B2 (ja) * 2019-10-03 2023-07-11 ファナック株式会社 メモリエラー判別装置及びメモリエラー判別用コンピュータプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237022A1 (en) 2000-03-08 2004-11-25 Dave Karpuszka System and method for providing error check and correction in memory systems
US20050036371A1 (en) 2003-08-11 2005-02-17 Keiichi Kushida Semiconductor memory including error correction function
US20070283217A1 (en) 2006-05-01 2007-12-06 Seagate Technology Llc Correction of data errors in a memory buffer
US20100241930A1 (en) 2009-03-18 2010-09-23 Samsung Electronics Co., Ltd. Error correcting device, method of error correction thereof, and memory device and data processing system including of the same
US20100277979A1 (en) 2007-07-09 2010-11-04 Samsung Electronics Co., Ltd. Msb-based error correction for flash memory system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447950B2 (en) * 2003-05-20 2008-11-04 Nec Electronics Corporation Memory device and memory error correction method
US7647536B2 (en) 2005-12-30 2010-01-12 Intel Corporation Repair bits for a low voltage cache
US8245087B2 (en) * 2007-03-26 2012-08-14 Cray Inc. Multi-bit memory error management
US8239732B2 (en) * 2007-10-30 2012-08-07 Spansion Llc Error correction coding in flash memory devices
US8234554B2 (en) * 2008-07-10 2012-07-31 International Business Machines Corporation Soft error correction in sleeping processors
US8640005B2 (en) * 2010-05-21 2014-01-28 Intel Corporation Method and apparatus for using cache memory in a system that supports a low power state

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237022A1 (en) 2000-03-08 2004-11-25 Dave Karpuszka System and method for providing error check and correction in memory systems
US20050036371A1 (en) 2003-08-11 2005-02-17 Keiichi Kushida Semiconductor memory including error correction function
US20070283217A1 (en) 2006-05-01 2007-12-06 Seagate Technology Llc Correction of data errors in a memory buffer
US20100277979A1 (en) 2007-07-09 2010-11-04 Samsung Electronics Co., Ltd. Msb-based error correction for flash memory system
US20100241930A1 (en) 2009-03-18 2010-09-23 Samsung Electronics Co., Ltd. Error correcting device, method of error correction thereof, and memory device and data processing system including of the same

Also Published As

Publication number Publication date
EP2965205A4 (en) 2017-01-04
US20140250345A1 (en) 2014-09-04
KR20140108886A (ko) 2014-09-15
CN105027084B (zh) 2017-11-21
EP2965205B1 (en) 2018-01-31
WO2014137033A1 (en) 2014-09-12
CN105027084A (zh) 2015-11-04
EP2965205A1 (en) 2016-01-13
US9110858B2 (en) 2015-08-18

Similar Documents

Publication Publication Date Title
JP3892832B2 (ja) 半導体記憶装置
US9396817B2 (en) Self-repairing memory and method of use
US6990622B2 (en) Method for error correction decoding in an MRAM device (historical erasures)
US8869007B2 (en) Three dimensional (3D) memory device sparing
US11204825B2 (en) Memory device and repair method with column-based error code tracking
US20120110419A1 (en) Data Structure for Flash Memory and Data Reading/Writing Method Thereof
US20160350179A1 (en) Decoding method, memory storage device and memory control circuit unit
JP2012137994A (ja) メモリシステムおよびその制御方法
US9003153B2 (en) Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
CN104283570A (zh) 低密度奇偶性检验(ldpc)解码器中的对数似然比(llr)阻尼
CN113076219B (zh) 一种高能效的片上存储器错误检测与纠错电路及实现方法
KR102024033B1 (ko) 이동 통신 시스템에서 메모리 제어 방법 및 장치
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
US8615690B2 (en) Controller of memory device and method for operating the same
US10514980B2 (en) Encoding method and memory storage apparatus using the same
JP2008021390A (ja) 半導体記憶装置
US20030172339A1 (en) Method for error correction decoding in a magnetoresistive solid-state storage device
US9170881B2 (en) Solid state device coding architecture for chipkill and endurance improvement
US10922025B2 (en) Nonvolatile memory bad row management
CN109800102B (zh) 存储器装置及其操作方法
JP2015121944A (ja) メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、及び、メモリアクセス制御プログラム
US11698835B2 (en) Memory and operation method of memory
KR20090048142A (ko) 불휘발성 메모리 장치의 ecc 처리부
JP2012230730A (ja) 半導体装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant