KR102619353B1 - 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리 - Google Patents

고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리 Download PDF

Info

Publication number
KR102619353B1
KR102619353B1 KR1020220146861A KR20220146861A KR102619353B1 KR 102619353 B1 KR102619353 B1 KR 102619353B1 KR 1020220146861 A KR1020220146861 A KR 1020220146861A KR 20220146861 A KR20220146861 A KR 20220146861A KR 102619353 B1 KR102619353 B1 KR 102619353B1
Authority
KR
South Korea
Prior art keywords
correction
data
error
memory
address
Prior art date
Application number
KR1020220146861A
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 KR1020220146861A priority Critical patent/KR102619353B1/ko
Priority to PCT/KR2022/018944 priority patent/WO2024101512A1/ko
Application granted granted Critical
Publication of KR102619353B1 publication Critical patent/KR102619353B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/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
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

데이터의 높은 신뢰성을 확보할 수 있는 메모리의 동작 방법 및 동작을 구현하기 위한 메모리가 개시된다. 셀들에 저장된 데이터에 오류가 발생하면, 읽기 동작 과정에서 패리티를 이용하여 정정된다. 그러나, 셀들에는 오류 상태의 데이터가 저장된 상태이므로 이를 읽기 동작이 활성화된 상태에서 정정한다. 이를 통해 데이터의 신뢰성은 확보된다.

Description

고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리{Method of operating Memory for having high Reliability and Memory of implementing the same}
본 발명은 메모리의 동작 방법 및 동작 방법을 구현하는 메모리에 관한 것으로, 더욱 상세하게는 높은 데이터 신뢰성을 가지는 메모리의 동작 방법과 이를 구현할 수 있는 메모리에 관한 것이다.
다양한 종류의 메모리들은 특유의 구조를 가지고, 구조를 실현하기 위한 각자의 제조공정을 가진다. 각각의 고유 구조를 가지는 메모리들은 구조 및 공정에 기인한 동작 특성을 가지며, 데이터의 쓰기 및 읽기 동작에서 다양한 문제점을 가진다. 특히, 장기간의 데이터 보존과 관련된 신뢰성 부분에서 문제점이 나타난다.
예컨대, SRAM(static random access memory)은 래치 구조를 가지며, PVP(process, voltage, temperature)의 변동(variation)에 따라 노이즈 마진이 감소되는 문제를 가지며, 우주선 등의 외란에 의해 에러가 발생되는 문제를 가진다. 감소된 노이즈 마진 및 외란에 의해 저장된 데이터 레벨이 반전되는 플립(flip) 현상이 일어난다.
DRAM(dynamic random access memory)은 전하를 저장하는 커패시터와 저장된 전하의 유출입 통로로 작용하는 셀 트랜지스터로 구성된다. 상기 DRAM에서는 셀 트랜지스터의 문턱 전압의 변동과 열에 의해 누설 전류가 발생될 수 있다. 누설 전류에 의해 커패시터에 저장된 전하는 손실되고, 전하의 손실은 데이터의 손실로 나타난다.
또한, FRAM(ferroelectric ramdom access memory)의 셀은 강유전체로 구성되고, 강유전체의 분극 방향의 빈번한 변경에 따른 피로(fatigue) 현상 및 장기간 동일 방향의 분극 설정으로 인한 각인(imprint) 현상에 의해 분극이 열화(polarization degradation)가 발생된다. 분극의 열화는 열에 의해서도 발생된다. 분극의 열화는 FRAM에서 데이터의 손실을 유발한다.
플래시 메모리에서는 프로그램 및 소거 동작의 반복에 의해 셀을 구성하는 터널 절연막의 열화가 발생되며, 소거 동작에 의해 문턱 전압의 변경이 발생된다. 즉, 셀 트랜지스터들마다 서로 다른 문턱 전압이 분포되고, 문턱 전압의 변동폭이 증가된다. 터널 절연막의 열화 및 문턱 전압의 변동폭의 증가는 테이터의 손실을 유발한다.
MRAM(magnetic random access memory)은 강자성체에 대한 쓰기 동작에서 에러가 발생될 수 있으며, 읽기 동작이 불안정 요소 및 외부 자기장에 의한 데이터 손실 등이 문제된다.
상술한 바와 같이 메모리들은 다양한 원인에 의해 저장된 데이터가 손실되는 문제점을 가지며, 문제점들의 해결을 위해 에러 정정 엔진(error correction code engine)을 가진다. 에러 정정 엔진은 메모리의 어드레스에 데이터 및 패리티를 저장하고, 패리티를 이용하여 데이터 내의 에러 비트를 정정할 수 있는 회로를 지칭한다. 메모리 내에 배치되는 에러 정정 엔진은 에러 정정 능력(error correction capability)을 가지며, 에러 정정 능력은 데이터 내에 정정이 가능한 최대 에러 비트수를 나타낸다. 에러 정정 능력이 높으면, 메모리에 저장되고 출력되는 데이터의 신뢰성은 향상된다. 다만, 에러 정정에 요구되는 패리티의 수는 증가되므로 에러 정정 엔진의 사이즈가 증가하고, 칩 면적이 증가된다. 따라서, 메모리의 설계자는 메모리의 종류 및 요구되는 신뢰성의 수준에 적합하도록 패리티의 길이를 선택하고, 이에 따른 에러 정정 능력을 구현한다.
다만, 비휘발성 메모리에서는 외부 자기장, 외란성 노이즈 등의 다양한 요인으로 인해 시간이 경과됨에 따라 저장된 데이터가 손실되는 확률이 증가된다. 이는 지속적인 메모리의 사용에 따라 나타나는 현상이며, 설계자에 의해 설정된 에러 정정 능력을 상회하는 에러 비트가 발생된다. 따라서, 에러 정정 엔진이 도입된 메모리 내에서 정상적인 에러 정정 동작이 수행되지 못하여 읽기 동작에서 에러 데이터가 출력된다.
본 발명이 이루고자 하는 제1 기술적 과제는 메모리의 외부에서 인가되는 읽기 명령이 활성되고, 읽기 동작이 수행되는 기간 내에 에러 정정을 수행할 수 있는 메모리의 동작 방법을 제공하는데 있다.
본 발명이 이루고자 하는 제2 기술적 과제는 읽기 동작 시에 사용되지 않는 쓰기 경로를 이용하여 패리티를 재생성하고, 셀에 데이터를 갱신할 수 있는 메모리를 제공하는데 있다.
상술한 제1 기술적 과제를 달성하기 위한 본 발명은, 읽기 명령 및 어드레스에 따라 읽기 경로를 활성화하여 상기 어드레스에 할당된 셀들로부터 데이터 및 패리티로 구성된 코드 워드를 출력하는 단계; 상기 패리티를 통해 상기 데이터의 에러가 정정된 정정 데이터 및 에러 비트수를 출력하는 단계; 상기 에러 비트수를 기준 에러 비트수와 비교하는 단계; 상기 비교 결과에 따라 쓰기 경로를 활성화하여 정정 데이터를 쓰기 경로에 입력하는 단계; 상기 쓰기 경로에 입력된 정정 데이터에 대한 새로운 패리티 생성을 통해 정정 코드 워드를 생성하는 단계; 및 상기 정정 코드 워드를 상기 어드레스에 할당된 상기 셀들에 기록하는 단계를 포함하는 메모리의 동작 방법을 제공한다.
상기 본 발명의 제1 기술적 과제는, 읽기 명령 및 시작 어드레스를 수신하는 단계; 상기 읽기 명령을 근거로 내부 읽기 명령을 활성화하고, 상기 시작 어드레스를 근거로 내부 어드레스인 제1 어드레스를 생성하는 단계; 상기 제1 어드레스에 할당된 셀들로부터 제1 데이터 및 제1 패리티로 구성된 제1 코드 워드를 출력하는 단계; 상기 제1 코드 워드의 상기 제1 데이터에 대한 에러 정정 디코딩을 수행하여 에러가 수정된 제1 정정 데이터 및 제1 에러 비트수를 출력하는 단계; 상기 에러 정정 디코딩에 따라 상기 제1 코드 워드의 상기 제1 에러 비트수를 기준 에러 비트수와 비교하는 단계; 상기 비교 결과에 따라 상기 제1 정정 데이터를 상기 메모리의 외부로 출력하면서 상기 제1 정정 데이터를 쓰기 경로로 입력하여 에러 정정 인코딩을 수행하고 상기 제1 정정 데이터에 상응하는 제1 정정 패리티를 생성하는 단계; 및 상기 제1 정정 데이터와 상기 제1 정정 패리티로 구성된 제1 정정 코드 워드를 상기 제1 어드레스에 할당된 상기 셀들에 기록하는 단계를 포함하는 메모리의 동작 방법의 제공을 통해서도 달성된다.
상기 제2 기술적 과제를 달성하기 위한 본 발명은, 복수개의 셀들이 배치된 셀 어레이; 상기 셀 어레이를 엑세스하여 공급되는 어드레스에 할당된 셀들에 데이터 및 패리티로 구성된 코드 워드를 기록하거나 출력하기 위한 엑세스부; 상기 엑세스부에 연결되고, 상기 셀들로부터 출력되는 상기 데이터에 대한 에러 정정을 수행하여 정정 데이터를 형성하고, 상기 패리티를 이용하여 에러 비트수를 생성하는 읽기 경로; 상기 읽기 경로로부터 상기 에러 비트수를 수신하고, 기준 에러 비트수와 비교하여 읽기 명령이 활성화된 기간 내에 상기 쓰기 경로를 활성화하기 위한 갱신 쓰기 명령을 생성하는 갱신 명령 제어부; 상기 엑세스부에 연결되고, 상기 읽기 경로와 병렬로 배치되며, 상기 갱신 쓰기 명령에 의해 상기 정정 데이터를 선택적으로 수신하고, 정정 패리티를 생성하여 정정 코드 워드를 상기 엑세스부에 출력하기 위한 쓰기 경로; 및 상기 읽기 경로와 상기 쓰기 경로에 연결되고, 상기 읽기 경로에서 출력되는 상기 정정 데이터를 수신하여 메모리의 외부로 출력하기 위한 입/출력 회로를 포함하는 메모리를 제공한다.
상술한 본 발명에 따르면, 하나의 어드레스에 할당된 셀들에 대한 읽기 동작이 수행되는 기간 내에 오류가 있는 데이터에 대한 정정이 수행되고, 정정된 데이터는 메모리의 외부로 출력된다. 또한, 정정된 데이터는 읽기 동작이 수행되는 기간 내에 쓰기 경로로 입력되어 갱신된 패리티와 함께 정정된 코드 워드를 형성하고, 정정 코드 워드는 읽기 명령이 활성화된 기간 내에 읽기 동작 시 할당된 어드레스의 셀들에 기록된다. 즉, 읽기 동작 마다 데이터의 정정이 수행되며, 정정된 데이터는 메모리의 셀들에 정정되어 기록된다. 따라서, 데이터의 신뢰성은 획기적으로 향상된다.
도 1은 본 발명의 제1 실시예에 따른 메모리의 동작 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 제1 실시예에 따라 상기 도 1의 흐름도를 수행하기 위한 메모리의 블록도이다.
도 3은 본 발명의 제1 실시예에 따라 상기 도 2의 메모리의 동작을 설명하기 위한 타이밍도이다.
도 4는 본 발명의 제1 실시예에 따른 메모리의 다른 블록도이다.
도 5는 본 발명의 제2 실시예에 따른 메모리의 블록도이다.
도 6은 본 발명의 제2 실시예에 따라 상기 도 5의 메모리의 동작을 설명하기 위한 타이밍도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.
제1 실시예
도 1은 본 발명의 제1 실시예에 따른 메모리의 동작 방법을 설명하기 위한 흐름도이다.
도 1을 참조하면, 메모리에 읽기 명령 및 어드레스가 입력된다(S100). 읽기 명령이 입력되면, 메모리는 읽기 경로를 활성화하고, 읽기 경로를 구성하는 복수개의 모듈 또는 회로들은 동작을 개시한다.
또한, 본 발명에서 활성화라는 표현은 해당되는 회로 또는 블록이 입력 신호 또는 데이터 등을 처리할 수 있는 상태를 지칭하며, 회로 등이 정상적인 동작 상태에 있는 것을 의미한다.
읽기 경로의 활성화에 의해 셀 어레이 내의 특정 어드레스에 할당된 셀들로부터 코드 워드가 읽기 경로로 출력된다(S200). 상기 셀 어레이는 단위저장요소인 셀이 복수개로 배치되어 매트릭스 구조를 가진다. 상기 코드 워드는 k 비트(k는 1 이상의 자연수)의 데이터와 p 비트(p는 1 이상의 자연수)의 패리티로 구성된다.
데이터는 읽기 및 쓰기 동작에서 사용자가 원하는 정보를 가지는 2 진 데이터를 지칭하고, 패리티는 당업자에게 널리 알려진 바대로 데이터의 오류를 검출하기 위해 데이터에 추가되는 오류 식별자이다.
패리티의 설정을 위해 당업자에게 널리 알려진 통상의 기술이 채용된다. 예컨대, 데이터가 32 비트이면, 패리티는 12 비트로 구성될 수 있으며, 데이터의 에러 정정 방식 및 에러 정정 능력에 따라 다양한 형태의 패리티가 설정될 수 있다. 다만, 패리티의 설정법은 본 발명의 핵심적 요소가 아니며, 당업계에서 통상적으로 사용되는 방법이 채용된다.
본 발명에서 패리티는 데이터 내의 에러를 정정할 뿐 아니라, 패리티의 디지털 처리를 통해 코드 워드 내의 에러 비트수를 확인하는데 사용될 수 있다. 즉, 패리티를 이용하여 코드 워드의 에러 비트수가 확인될 수 있다.
또한, 읽기 동작은 셀 어레이로부터 읽기 경로로 데이터가 출력되는 동작으로 이해될 필요가 있다.
이어서, 셀 어레이로부터 출력된 코드 워드에 대한 에러 정정 디코딩 동작이 수행된다(S300). 에러 정정 디코딩 동작은 패리티를 이용하여 코드 워드 내에 발생된 에러를 확인하고, 데이터의 오류를 정정하는 동작을 지칭한다. 코드 워드 내에서는 데이터의 오류 및 패리티의 오류가 있을 수 있다. 에러 정정 디코딩을 통해 코드 워드의 에러 비트수는 확인될 수 있으며, 코드 워드 내의 데이터의 오류는 정정된다.
에러를 가지는 코드 워드의 데이터는 패리티에 의해 정정되고, 오류가 없는 정정 데이터로 갱신된다. 또한, 에러 정정 디코딩 동작을 통해 코드 워드 내의 에러 비트수도 확인된다. 만일, 코드 워드 내에 에러가 나타나지 않으면 데이터에 대한 정정 동작이 일어나지 않으나, 설명의 편의를 위해 에러 정정 디코딩 동작을 거친 데이터는 정정 데이터로 명명된다.
따라서, 정정 데이터는 에러 정정 디코딩 동작이 완료된 데이터를 지칭하며, 셀에 저장된 데이터와 동일할 수 있고, 에러 정정 동작에 의해 셀에 저장된 데이터와 다를 수도 있다.
허용 가능한 에러 비트수는 에러 정정 능력에 해당하며, 패리티에 의해 정정할 수 있는 최대 에러 비트수 m을 지칭한다. 또한, 본 발명에서는 기준 에러 비트수 c가 설정된다. 상기 기준 에러 비트수 c는 1 이상의 값으로 외부 입력 단자를 통해 설정될 수 있으며, 설계 단계에서 메모리의 내부에 고정된 값으로 설정될 수 있다.
기준 에러 비트수 c를 메모리의 내부에 고정된 값으로 설정하는 것은 다양한 방법을 통해 구현된다. 예컨대, OTP(one-time programmable) 또는 MTP(multi-times programmable)등과 같은 비휘발성 메모리의 데이터 값을 프로그램 함으로써 기준 에러 비트수가 설정될 수 있다.
에러 정정 디코딩 동작에 의해 에러 비트수는 판단되고, 에러 비트수는 기준 에러 비트수 c와 비교된다(S400). 상기 에러 비트수는 데이터 및 패리티에 포함된 이진수의 플립에 따른 에러수를 지칭한다. 다만, 에러 정정 디코딩에서는 에러 비트수가 확인되고, 데이터의 정정에 따른 정정 데이터가 생성된다.
만일, 에러 비트수가 기준 에러 비트수 c보다 작으면, 정정 데이터는 메모리의 외부로 출력되고, 정정 데이터가 셀 어레이로 기록되는 경로도 차단된다. 따라서, 특정 어드레스가 할당된 셀들에 저장된 데이터와 메모리 외부로 출력되는 정정 데이터 사이에는 차이가 발생된다.
또한, 에러 비트수가 기준 에러 비트수 c 이상의 값을 가지면, 정정 데이터의 쓰기 동작이 수행된다.
본 실시예에서 정정 데이터의 출력은 에러 비트수에 대한 판단동작과 별개로 수행된다. 즉, 에러 정정 디코딩 동작에 의해 생성된 정정 데이터는 에러 비트수에 대한 판단 동작과 무관하게 메모리로부터 출력된다.
정정 데이터에 대한 쓰기 동작은 읽기 명령이 활성화된 상태에서 수행되며, 정정 데이터는 읽기 경로로부터 쓰기 경로로 입력된다.
쓰기 경로에서는 정정 데이터에 대한 에러 정정 인코딩 동작이 수행된다(S500). 에러 정정 인코딩 동작에 의해 정정 데이터에 상응하는 새로운 패리티가 생성되며, 이는 정정 패리티로 명명된다. 즉, 정정 데이터에 대한 수정 동작은 일어나지 않으며, 패리티가 새롭게 재생성된다. 정정 데이터와 정정 패리티는 정정 코드 워드를 구성한다.
에러 정정 인코딩 동작을 통해 생성된 정정 코드 워드는 초기의 읽기 단계에서 지정된 어드레스에 해당하는 셀들에 기록된다(S600). 이를 통해 기준 에러 비트수 c 이상의 에러 비트를 가진 데이터는 오류가 정정되어 메모리 셀에 갱신된다. 메모리 셀에 정정 코드 워드가 기록되면 특정 어드레스의 셀들에 대한 읽기 동작이 종료된다.
또한, 실시의 형태에 따라 정정 코드 워드가 기록된 최초의 어드레스에 대한 2차 읽기 동작이 수행될 수 있다. 2차 읽기 동작에서 정정 데이터에 대한 에러 정정 디코딩 동작이 수행되고, 에러 비트수는 다시 확인되며, 기준 에러 비트 c와 비교되는 반복작업이 수행될 수 있다. 이를 통해 코드 워드에 대한 2차 갱신 동작이 수행될 수 있다. 코드 워드에 대한 갱신 횟수는 설계자의 의도 및 필요에 따라 임의로 설정된다. 2차 읽기 동작은 상기 도 1에서 점선으로 표현된다.
상기 도 1의 설명에서 정정 코드 워드는 특정의 어드레스에 대한 읽기 동작이 수행되는 기간 내에 생성되며, 읽기 동작이 수행된 어드레스의 셀들에 기록된다. 이를 통해 정정 데이터는 셀에 기록될 수 있다. 정정 코드 워드의 생성 및 쓰기 동작은 어드레스가 활성화된 상태에서 메모리의 내부에서 발생되는 갱신 쓰기 명령에 의해 수행된다. 상기 갱신 쓰기 명령은 에러 비트수와 기준 에러 비트수 c와의 비교 동작에 의해 발생된다. 즉, 에러 비트수가 기준 에러 비트수 c 이상으로 판단되면, 갱신 쓰기 명령은 활성화된다.
도 2는 본 발명의 제1 실시예에 따라 상기 도 1의 흐름도를 수행하기 위한 메모리의 블록도이다.
도 2를 참조하면 메모리는 셀 어레이(100), 엑세스부(200), 읽기 경로(300), 쓰기 경로(400) 및 갱신 명령 제어부(500)를 가진다.
셀 어레이(100)는 다수의 메모리 셀들이 매트릭스 형태로 배치된 구조를 가진다. 각각의 셀들에는 워드 라인 및 비트 라인이 연결된다. 상기 워드 라인은 연결된 셀을 선택하거나 활성화하는데 사용되고, 상기 비트 라인은 셀로부터 데이터를 입출력시키는데 사용된다. 다만, 메모리의 형태에 따라 워드 라인 및 비트 라인 이외에 소스 라인이 추가될 수 있다. 상기 소스 라인은 셀을 중심으로 비트 라인과 대향하며, 데이터의 입출력을 위한 읽기 전압의 인가 또는 쓰기 전압의 인가에 사용될 수 있다. 또한, 소스 라인은 컬럼 디코더에 연결됨이 바람직하다.
셀 어레이에 공급되는 어드레스에 의해 특정의 워드 라인과 비트 라인은 활성화되고, 활성화된 워드 라인과 비트 라인에 연결된 셀에 대한 쓰기 동작 및 읽기 동작이 수행될 수 있다.
엑세스부(200)는 로우 디코더(210) 및 컬럼 디코더(220)를 가진다. 엑세스부(200)를 통해 어드레스가 셀 어레이로 인가되고, 지정된 어드레스에 해당하는 셀들은 활성화된다. 또한, 로우 디코더(210) 또는 컬럼 디코더(220)를 통해 인가되는 읽기 명령 또는 쓰기 명령에 따라 셀들로부터 코드 워드가 출력되거나, 셀들로 코드 워드가 기록된다.
읽기 명령 및 어드레스가 인가되면 엑세스부(200)의 컬럼 디코더(220)를 통해 어드레스에 해당하는 코드 워드가 출력된다. 상기 코드 워드는 읽기 경로(300)로 입력된다.
읽기 경로(300)는 읽기 회로(310), 에러 정정 디코더(320) 및 출력 데이터 레지스터(330)로 구성된다. 읽기 경로(300)에서는 셀들로부터 출력되는 코드 워드가 증폭되고, 에러 정정 디코더(320)에서 데이터에 대한 에러 정정 디코딩 동작이 수행된다. 전술한 바와 같이 에러 정정 디코딩 동작은 코드 워드에 포함된 패리티를 이용하여 데이터의 에러를 수정하여 정정 데이터를 형성하고, 에러 비트수를 파악하는 동작이다.
읽기 경로(300)를 구성하는 읽기 회로(310)는 컬럼 디코더(220)에 연결되고, 코드 워드를 수신하며, 수신된 코드 워드를 디지털 신호 처리에 적합한 레벨로 증폭한다. 이를 위해 읽기 회로(310)는 감지 증폭기를 포함하며, 읽기 회로(310)를 통해 증폭된 코드 워드는 에러 정정 디코더(320)로 입력된다.
에러 정정 디코더(320)는 데이터에 대한 에러 정정 동작을 수행하고, 코드 워드의 에러 비트수를 확인한다. 따라서, 오류를 가지는 데이터는 수정되어 오류가 없는 정정 데이터로 형성된다. 또한, 코드 워드 내에서 오류를 가진 비트수는 에러 비트수로 나타난다. 에러 정정 동작은 패리티를 이용하여 데이터 내의 에러 비트를 확인하고 이를 정정하는 동작이다. 패리티는 데이터의 형태에 따라 각각 달라지는 양상을 가진다. 패리티는 정정 동작에 의해 생성된 정정 데이터에 상응하지 않을 수 있다. 다만, 에러 정정 디코더(320)에서는 신규한 패리티의 생성이나 패리티의 수정이 수행되지 않을 수 있다.
또한, 상기 도 1에서 서술된 바와 같이 에러 정정 디코더(320)로부터 출력되는 데이터는 정정 데이터로 명명된다. 만일, 데이터의 오류가 없다면, 정정 데이터는 에러 정정 디코더(320)에 입력되는 데이터와 동일한 값을 가진다. 또한, 데이터에 오류가 있다면, 정정 데이터는 에러 정정 디코더(320)에 입력된 데이터와 다른 값을 가진다.
에러 정정 디코더(320)에서 생성된 정정 데이터는 출력 데이터 레지스터(330)로 입력되고, 출력 데이터 레지스터(330)에 저장된 정정 데이터는 입/출력 회로(600) 및 데이터 선택부(420)로 인가된다. 입/출력 회로(600)로 입력된 정정 데이터는 메모리 외부로 출력된다.
또한, 에러 정정 디코더(320)에서 생성된 에러 비트수는 갱신 명령 제어부(500)로 입력된다. 갱신 명령 제어부(500)에 에러 비트수가 입력되면, 에러 비트수와 기 설정된 기준 에러 비트수 c는 비교된다. 에러 비트수가 기준 에러 비트수 c 이상이면, 갱신 명령 제어부(500)는 갱신 쓰기 명령 PWRITE를 활성화한다. 상기 갱신 쓰기 명령 PWRITE는 외부에서 메모리로 인가되는 명령이 아니며, 메모리의 내부 블록인 갱신 명령 제어부(500)에서 발생된 내부 명령이다. 즉, 갱신 쓰기 명령 PWIRTE는 읽기 명령이 활성화된 상태에서 메모리 내부에서 생성되고 작동하는 내부 명령에 해당된다.
활성화된 갱신 쓰기 명령 PWRITE에 의해 쓰기 경로(400)가 활성화된다. 갱신 쓰기 명령 PWRITE는 데이터 선택부(420)의 제어 단자에 인가되고, 데이터 선택부(420)는 갱신 쓰기 명령 PWRITE에 따라 출력 데이터 레지스터(330)로부터 정정 데이터를 선택한다.
쓰기 경로(400)는 입력 데이터 레지스터(410), 데이터 선택부(420), 에러 정정 인코더(430) 및 쓰기 회로(440)를 가진다. 상기 쓰기 경로(400)는 읽기 경로(300)와 유사하게 엑세스부(200)의 컬럼 디코더(220)와 입/출력 회로(600) 사이에 배치되고, 읽기 경로(300)와 병렬로 배치된다.
만일, 셀 어레이의 특정 어드레스의 데이터에 에러가 없다면, 읽기 명령이 활성화된 기간에 쓰기 경로(400)는 비활성화 상태가 되어 동작하지 않는다. 다만, 데이터에 에러가 발생되어 갱신 쓰기 명령 PWRITE가 활성화되면, 쓰기 경로(400)가 활성화된다. 즉, 갱신 쓰기 명령 PWRITE가 활성화되면, 읽기 경로(300)가 활성화된 상태에서 쓰기 경로(400)도 활성화된다.
반면, 메모리 외부로부터 쓰기 명령이 입력되면, 쓰기 경로(400)만 활성화되고, 읽기 경로(300)는 비활성화된다. 즉, 입/출력 회로(600)를 거쳐 입력 데이터 레지스터(410)로 데이터가 입력된다. 만일, 갱신 쓰기 명령 PWRITE가 비활성화된 상태이면, 데이터 선택부(420)는 입력 데이터를 선택하고, 입력 데이터는 에러 정정 인코더(430)로 입력된다. 에러 정정 인코더(430)에서는 입력 데이터에 상응하는 입력 패리티를 생성하여, 입력 코드 워드를 생성한다. 입력 코드 워드는 엑세스부(200)에 인가되는 어드레스의 셀들에 기록된다.
다만, 상기 쓰기 명령과 갱신 쓰기 명령 PWRITE가 동시에 데이터 선택부(420)에 입력되는 경우, 데이터 선택부(420)는 갱신 쓰기 명령 PWRTE를 우선적으로 선택하여, 정정 데이터를 에러 정정 인코더(430)에 공급함이 바람직하다.
갱신 쓰기 명령 PWRITE가 활성화되면, 쓰기 경로(400)는 정정 데이터를 수신하고, 정정 패리티를 형성하여 정정 코드 워드를 생성한다. 정정 코드 워드는 엑세스부(200)를 통해 기존의 어드레스에 해당하는 셀들에 기록된다. 이를 통해 정정 데이터의 갱신이 읽기 동작 기간 내에 이루어진다.
데이터 선택부(420)는 활성화된 갱신 쓰기 명령 PWIRITE에 따라 출력 데이터 레지스터(330)에 저장된 정정 데이터를 선택하고, 이를 에러 정정 인코더(430)로 출력한다.
에러 정정 인코더(430)는 정정 데이터를 수신하고, 이에 상응하는 새로운 패리티를 형성한다. 형성된 패리티는 정정 패리티로 명명되고, 정정 데이터와 결합되어 정정 코드 워드가 형성된다. 형성된 정정 코드 워드는 쓰기 회로(440)로 입력된다.
쓰기 회로(440)는 디지털 신호의 형태로 인가되는 정정 코드 워드에 일정한 전압 레벨을 부여한다. 엑세스부(200)의 로우 디코더(210)는 선택하는 위드 라인을 활성화시키고 컬럼 디코더(220)는 정정 코드 워드를 선택하는 데이터 라인(비트 라인 또는 소스 라인)으로 인가한다. 즉, 정정 코드 워드는 읽기 동작에서 지정된 어드레스의 메모리 셀에 기록되며, 기준 에러 비트수 이상의 에러 비트를 가지는 데이터는 정정되고, 해당하는 패리티도 정정 패리티로 갱신된다.
도 3은 본 발명의 바람직한 실시예에 따라 상기 도 2의 메모리의 동작을 설명하기 위한 타이밍도이다.
도 2 및 도 3을 참조하면, 최대 에러 비트수 m은 2로 설정되고, 기준 에러 비트수 c는 1로 설정된다. 또한, 제1 어드레스 A1의 메모리 셀들에 저장된 제1 코드 워드는 1 비트 에러를 가지고, 제2 어드레스 A2의 셀들에 저장된 제2 코드 워드는 비트 에러를 가지지 않으며, 제3 어드레스 A3의 셀들에 저장된 제3 코드 워드는 2 비트 에러를 가지는 것으로 가정한다.
먼저, 제1 읽기 명령이 활성화되고, 제1 어드레스 A1이 인가된다. 제1 읽기 명령에 의해 읽기 동작이 개시되어, 제1 어드레스 A1에 해당하는 셀들을 활성화하기 위해 엑세스부(200)의 컬럼 디코더(220)와 로우 디코더(210)는 워드 라인을 활성화하고, 컬럼 선택 동작을 수행한다.
제1 어드레스 A1에 해당하는 셀들로부터 출력되는 제1 코드 워드는 제1 데이터와 제1 패리티로 구성되고, 이는 제1 읽기 명령에 따른 읽기 동작에 의해 셀들로부터 출력된다.
이어서, 제1 코드 워드는 읽기 회로(310)를 통해 에러 정정 디코더(320)로 입력되고, 에러 정정 디코더(320)에서는 제1 데이터에 대한 에러 정정 동작이 수행된다. 상기 도 1 및 도 2에서 설명된 바대로 제1 패리티를 이용하여 제1 코드 워드의 에러 비트수는 확인되고, 에러는 정정된다. 따라서, 에러 정정 디코더(320)는 에러가 정정된 제1 정정 데이터를 출력한다. 상기 제1 정정 데이터는 제1 어드레스 A1에 재할당되는 데이터 비트이다. 에러 정정 동작에 의해 확인된 제1 에러 비트수는 1이며, 이는 갱신 명령 제어부(500)로 입력된다.
갱신 명령 제어부(500)에서는 기준 에러 비트수 c와 제1 에러 비트수를 비교한다. 상기 도 3에서는 제1 에러 비트수는 기준 에러 비트수인 1 이상이므로 갱신 명령 제어부(500)는 갱신 쓰기 신호 PWRITE를 활성화한다.
갱신 쓰기 신호 PWRITE의 활성화에 의해 제1 읽기 명령이 활성화된 기간 내에서 제1 어드레스 A1의 셀들에 대한 갱신 쓰기 동작이 수행된다. 데이터 선택부(420)에 의해 제1 정정 데이터가 선택되고, 선택된 제1 정정 데이터는 에러 정정 인코더(430)로 입력된다.
에러 정정 인코더(430)는 제1 어드레스 A1에 상응하는 새로운 패리티인 제1 정정 패리티를 생성한다. 따라서, 에러 정정 인코더(430)는 제1 정정 데이터와 제1 정정 패리티로 구성된 제1 정정 코드 워드를 생성하고, 이를 쓰기 회로(440)로 출력한다. 쓰기 회로(440) 및 컬럼 디코더(220)를 거친 제1 정정 코드 워드는 제1 어드레스 A1의 셀들에 기록된다. 따라서, 기 저장된 제1 코드 워드는 제1 정정 코드 워드로 갱신된다.
이어서, 제2 읽기 명령이 활성화되고, 제2 어드레스 A2에 대한 읽기 동작이 수행된다. 읽기 동작에 의해 제2 어드레스 A1의 셀들에 저장된 제2 코드 워드가 셀들로부터 출력된다. 상기 제2 코드 워드는 제2 데이터와 제2 패리티로 구성된다.
도 3의 가정에서 어드레스 A1의 셀들에 저장된 제2 코드 워드는 오류가 없는 상태이다. 따라서, 에러 정정 디코딩 동작을 통해 확인되는 제2 에러 비트수는 0이며, 에러 정정 동작은 발생되지 않는다. 다만, 설명의 편의상 에러 정정 디코더(320)로부터는 제2 정정 데이터가 출력되는 것으로 설명한다. 상기 제2 정정 데이터는 제2 데이터와 동일한 값을 가진다.
또한, 제2 에러 비트수는 0이므로 갱신 명령 제어부(500)의 갱신 쓰기 명령 PWRITE는 활성화되지 않는다. 따라서, 읽기 명령이 활성화된 기간 내에 새로운 내부 쓰기 명령이 발생되지 않으며, 제2 정정 데이터는 메모리 외부로만 출력될 뿐 쓰기 경로로 입력되지 않는다.
이어서, 제3 읽기 명령이 활성화되고, 제3 어드레스 A3이 입력된다. 제3 어드레스 A3의 셀들에는 제3 데이터 및 제3 패리티로 구성된 제3 코드 워드가 저장된 상태이다. 제3 읽기 명령의 활성화와 함께 제3 어드레스 A3의 셀들로부터 제3 코드 워드가 출력된다. 상기 제3 코드 워드의 제3 데이터는 2개의 오류를 가진 상태이다.
에러 정정 디코더(320)에서는 제3 패리티를 이용한 에러 정정 동작이 수행되고, 제3 에러 비트수가 형성된다. 제3 에러 비트수는 2이며, 제3 에러 비트수는 갱신 명령 제어부(500)로 출력된다. 또한, 에러 정정 동작에 따라 정정된 제3 정정 데이터는 출력 데이터 레지스터(330)에 출력된다.
갱신 명령 제어부(500)에서는 제3 에러 비트수가 기준 에러 비트수 c와 비교된다. 비교 결과에 따라, 갱신 명령 제어부(500)는 갱신 쓰기 명령 PWRITE를 활성화하여 제3 정정 데이터를 쓰기 경로(400)로 공급한다. 쓰기 경로(400)의 데이터 선택부(420)는 갱신 쓰기 명령 PWRITE에 의해 제3 정정 데이터를 선택하고, 내부 명령에 따른 쓰기 동작을 제3 읽기 명령이 활성화된 기간 동안 수행한다.
제3 정정 데이터가 수신되는 에러 정정 인코더(430)는 제3 정정 데이터에 상응하는 제3 정정 패리티를 생성하고, 제3 정정 코드 워드를 생성한다. 생성된 제3 정정 코드 워드는 제3 어드레스 A3에 상응하는 셀들에 기록된다.
상술한 동작을 통하여 특정의 어드레스가 지정되고, 읽기 명령이 활성화된 기간 동안, 읽기 경로 뿐 아니라 쓰기 경로도 활성화될 수 있다. 즉, 하나의 읽기 동작 내에서 에러를 가지는 데이터에 대한 정정 동작이 수행되고, 정정된 데이터 및 정정된 패리티가 지정된 어드레스에 기록된다. 따라서, 특정의 어드레스에 해당하는 셀들에 대한 읽기 동작에서 오류를 가진 데이터의 갱신이 이루어질 수 있다. 이를 통해 데이터의 오류는 읽기 동작 단위마다 수정될 수 있으며, 데이터의 신뢰성이 크게 확보될 수 있다.
도 4는 본 발명의 제1 실시예에 따른 메모리의 다른 블록도이다.
도 4를 참조하면, 읽기 경로(300) 내에서 출력 중간 레지스터(315)가 읽기 회로(310)와 에러 정정 디코더(320) 사이에 추가로 배치된다. 또한, 쓰기 경로(400) 내에서 입력 데이터 레지스터(435)가 에러 정정 인코더(430)와 쓰기 회로(440) 사이에 배치된다.
또한, 에러 정정 디코더(320)로부터 출력되는 정정 데이터는 데이터 선택부(420)에도 공급된다. 상기 도 2에서 정정 데이터는 출력 데이터 레지스터(330)에 저장된 후, 저장된 정정 데이터가 데이터 선택부(420)로 공급되는 구성이나, 상기 도 4에서는 에러 정정 디코더(320)의 출력인 정정 데이터가 출력 데이터 레지스터(330)와 데이터 선택부(420)로 동시에 공급된다.
상기 내용들을 제외한 다른 구성은 본 실시예의 도 2와 동일하다. 또한, 도 4에 도시된 블록들의 동작도 상기 도 2에 설명된 바와 동일하다. 다만, 추가되는 출력 중간 레지스터(315)에 의해 특정 어드레스에 대해 읽기 동작이 수행된 코드 워드는 일시적으로 저장되고, 내부 클럭과 연동이 용이하도록 구성된다.
또한, 상기 도 2에서는 출력 데이터 레지스터(330)에 정정 데이터가 저장된 후, 데이터 선택부(420)로 인가되는 구성이나, 도 4에서는 에러 정정 디코더(320)의 출력인 정정 데이터는 출력 데이터 레지스터(330)에 입력됨과 동시에 데이터 선택부(420)에도 인가된다. 출력 데이터 레지스터(330)에 입력된 정정 데이터는 입/출력 회로(600)를 통해 메모리의 외부로 출력되며, 에러 정정 디코더(320)로부터 직접 데이터 선택부(420)로 공급되는 정정 데이터는 갱신 쓰기 명령 PWRITE가 활성화되면, 데이터 선택부(420)에 의해 선택되고, 에러 정정 인코더(430)로 출력된다. 따라서, 갱신 쓰기 명령 PWRITE의 활성화와 함께 정정 데이터는 빠르게 에러 정정 인코더(430)로 입력될 수 있다.
제2 실시예
도 5는 본 발명의 제2 실시예에 따른 메모리의 블록도이다.
도 5를 참조하면, 메모리는 상기 도 2의 메모리에 비해 읽기 명령 제어부(700) 및 내부 어드레스 발생기(800)를 더 포함한다.
읽기 명령 및 시작 어드레스가 메모리에 입력되면, 읽기 명령 제어부(700)는 내부 읽기 명령 PREAD를 활성화하고, 내부 어드레스 명령 PADD를 활성화한다. 또한, 내부 어드레스 발생기(800)는 내부 어드레스 명령 PADD 및 시작 어드레스에 따라 제1 어드레스, 제2 어드레스 및 제3 어드레스를 순차적으로 생성한다. 즉, 하나의 읽기 명령에 의해 메모리의 내부에서는 복수개의 어드레스들이 발생되고, 해당하는 어드레스들에 대한 내부 읽기 동작이 순차적으로 수행될 수 있다. 시작 어드레스에 의해 순차적으로 생성되는 내부 어드레스의 수는 내부 어드레스 발생기(800)의 설계 또는 구성에 따라 달라질 수 있다.
먼저, 읽기 명령 제어부(700)로 클럭 신호 CLK 및 읽기 명령이 입력된다. 또한, 시작 어드레스가 입력된다.
읽기 명령 및 시작 어드레스가 입력된 후, 내부 읽기 명령 PREAD가 활성화되고, 활성화된 내부 읽기 명령 PREAD에 의해 읽기 경로(300)는 활성화된다. 또한, 읽기 명령이 입력되면, 읽기 명령 제어부(700)는 내부 어드레스 명령 PADD를 활성화하고, 내부 어드레스 명령 PADD는 내부 어드레스 발생기(800)로 입력된다.
내부 어드레스 명령 PADD를 수신한 내부 어드레스 발생기(800)는 내부 어드레스를 생성한다. 내부 어드레스 명령 PADD는 내부 읽기 명령 PREAD에 연동하여 주기적이고 순차적으로 활성화되어 내부 어드레스 발생기(800)로 입력된다. 따라서, 내부 어드레스 발생기(800)는 주기적으로 내부 어드레스들을 순차적으로 생성하고, 생성된 어드레스들은 엑세스부(200)로 인가된다.
한번의 읽기 명령으로 복수개의 내부 읽기 명령 PREAD가 생성되고, 순차적으로 생성된 어드레스들이 엑세스부(200)에 인가되면, 읽기 동작이 개시된다. 읽기 동작을 위해 내부 읽기 명령 PREAD가 활성화되면, 읽기 경로가 활성화된다. 내부 어드레스 발생기(800)에서 생성된 제1 어드레스에 상응하는 셀들로부터 제1 데이터 및 제1 패리티로 구성된 제1 코드 워드는 읽기 경로(300)로 입력된다.
제1 실시예에서 언급된 바와 같이 에러 정정 디코더(320)를 통해 제1 데이터의 정정이 수행되고, 제1 정정 데이터가 생성된다. 또한, 제1 데이터 및 제1 패리티로 구성된 제1 코드 워드의 제1 에러 비트수가 도출된다. 다만, 에러 정정 디코더(320)에서는 제1 패리티에 포함된 에러의 정정은 수행되지 않는다.
제1 에러 비트수는 갱신 명령 제어부(500)로 입력되고, 기준 에러 비트수와 비교된다. 이후의 동작은 제1 실시예에서 설명된 바와 동일하다. 따라서, 제1 에러 비트수가 기준 에러 비트수 미만이면, 제1 정정 데이터는 메모리로부터 출력되며, 제1 어드레스의 셀들에 저장된 제1 코드 워드의 갯신은 일어나지 않는다. 그러나, 제1 에러 비트수가 기준 에러 비트수 이상이면, 갱신 명령 제어부(500)는 내부 읽기 명령 PWRITE를 활성화시키며, 내부 읽기 명령 PWRITE는 쓰기 경로(400)를 활성화시킨다.
쓰기 경로(400) 내의 데이터 선택부(420)로는 내부 쓰기 명령 PWRITE가 입력되고, 데이터 선택부(420)는 제1 정정 데이터를 선택하고, 선택된 제1 정정 데이터는 에러 정정 인코더(430)로 입력된다.
에러 정정 인코더에서는 수신된 제1 정정 데이터에 상응하는 새로운 패리티인 제1 정정 패리티를 생성한다. 제1 정정 데이터와 제1 정정 패리티는 제1 정정 코드 워드를 형성하여, 제1 어드레스의 셀들에 기록된다. 이를 통해 제1 어드레스의 셀들에서는 제1 코드 워드의 갱신이 이루어진다.
제1 어드레스가 생성된 후, 클럭 신호 CLK에 연동하여 내부 읽기 명령 PREAD가 다시 활성화되고, 내부 어드레스 발생기(800)는 제1 어드레스에 이어 제2 어드레스를 생성한다. 생성된 제2 어드레스의 셀들에 대한 읽기 동작이 수행되고, 읽기 경로(300)의 활성화에 따른 제2 코드 워드의 에러 정정 디코딩 동작 및 에러 비트수의 비교 동작이 수행된다.
상기 도 5에서는 한 번의 읽기 명령이 인가되면, 내부 읽기 명령 PREAD 및 내부 어드레스 명령 PADD이 주기적이고 순차적으로 생성되어, 내부 어드레스들이 순차적으로 생성된다. 생성된 내부 어드레스들에 해당되는 셀들에 대한 코드 워드의 정정 동작이 수행된다.
도 6은 본 발명의 제2 실시예에 따라 상기 도 5의 메모리의 동작을 설명하기 위한 타이밍도이다.
도 5 및 도 6을 참조하면, 메모리의 외부 단자로부터 읽기 명령이 인가된다. 읽기 명령을 전후하여 또는 동시에 시작 어드레스가 인가된다.
읽기 명령 제어부에서 수신된 읽기 명령에 의해 내부 읽기 명령 PREAD 및 내부 어드레스 명령 PADD가 활성화되고, 내부 어드레스 발생기는 복수개의 내부 어드레스들을 순차적으로 생성한다. 본 실시예에서는 제1 어드레스 A1 내지 제4 어드레스 A4가 순차적으로 생성된다. 또한, 수신된 시작 어드레스는 제1 어드레스 A1과 같을 수 있겠으나, 적용예에 따라 시작 어드레스와 제1 어드레스는 A1는 소정의 알고리즘에 따라 다른 값을 가질 수 있다.
인가된 읽기 명령 및 내부 어드레스에 의해 제1 실시예에서 개시된 코드 워드의 읽기 및 갱신 동작이 수행된다. 다만, 제2 실시예에서는 하나의 읽기 명령의 인가 및 읽기 동작 구간 내에서 복수개의 내부 어드레스들이 생성되고, 이에 따라 복수개의 어드레스들에 할당된 코드 워드들의 갱신 동작이 수행된다.
읽기 명령에 의해 읽기 동작이 개시되고, 메모리가 비활성될 때까지 메모리의 내부에서는 내부 읽기 명령 PREAD 및 후속 어드레스들이 생성된다.
생성되는 제1 어드레스 A1의 셀들의 제1 코드 워드 내의 에러 비트수는 1이며, 제2 어드레스 A2의 셀들의 제2 코드 워드 내의 에러 비트수는 0이고, 제3 어드레스 A3의 셀들의 제3 코드 워드 내의 에러 비트수는 2이며, 제4 어드레스 A4의 셀들의 제4 코드 워드 내의 에러 비트수는 0이라 가정한다. 또한, 갱신 명령 제어부(500)에서 설정된 기준 에러 비트수는 1로 가정한다.
읽기 명령에 의해 읽기 명령 제어부(700)에서 내부 읽기 명령 PREAD가 활성화된다. 활성화된 내부 읽기 명령 PREAD에 의해 읽기 동작이 개시된다. 또한, 읽기 명령 제어부(700)에서 발생된 내부 어드레스 명령 PADD에 의해 내부 어드레스 발생기(800)는 내부 어드레스를 발생시킨다. 수신된 시작 어드레스에 의해 제1 어드레스 A1가 생성된다. 제1 어드레스 A1 및 내부 읽기 명령 PREAD에 의해 엑세스부(200)의 컬럼 디코더(220)는 컬럼 라인을 선택하고, 로우 디코더(210)는 워드 라인을 활성화하여 읽기 동작이 개시된다.
제1 어드레스 A1에 상응하는 제1 코드 워드는 읽기 회로(310)를 거쳐 에러 정정 디코더(320)로 입력되고, 에러 정정 디코더(320)에서는 제1 패리티를 이용하여 제1 데이터에 대한 정정 동작이 수행된다. 에러 정정 디코더(320)에서는 제1 정정 데이터가 출력되고, 제1 데이터 및 제1 패리티를 포함하는 제1 코드 워드의 제1 에러 비트수가 출력된다. 생성된 제1 에러 비트수는 1 이며, 갱신 명령 제어부(500)에서 기준 에러 비트수와 비교된다.
제1 에러 비트수는 1의 값을 가지는 기준 에러 비트수 이상이므로 갱신 명령 제어부(500)는 내부 쓰기 명령 PWRITE를 활성화한다. 따라서, 쓰기 경로(400)는 제1 정정 데이터를 선택한다.
제1 정정 데이터는 에러 정정 인코더(430)에 입력되고, 에러 정정 인코더(430)는 제1 정정 패리티를 형성하고, 제1 정정 코드 워드가 출력된다. 제1 정정 코드 워드는 제1 어드레스의 셀들에 기록된다. 이를 통해 제1 어드레스 셀들의 코드 워드는 갱신된다.
또한, 클럭 신호 CLK에 연동하여 내부 읽기 명령 PREAD가 주기적으로 활성화되고, 내부 어드레스 발생기(800)는 제2 어드레스 A2를 생성한다. 제2 어드레스에 지정된 제2 코드 워드의 에러 비트수는 0인 것으로 가정하였으므로, 에러 정정 디코더(320)에서 출력되는 제2 정정 데이터는 제2 코드 워드를 형성하는 제2 데이터와 동일하다. 또한, 갱신 명령 제어부(500)는 내부 읽기 명령 PWRITE를 생성하지 않거나 비활성화하고, 쓰기 경로(400)는 작동하지 않거나 비활성화된다.
제2 어드레스 A2에 이어 제3 어드레스 A3이 내부 어드레스 발생기(800)에서 생성되고, 내부 읽기 명령 PREAD가 재활성화된다. 내부 읽기 명령 PREAD에 의해 엑세스부(200)는 제3 어드레스 A3에 할당된 제3 코드 워드를 읽기 경로(300)로 출력한다. 에러 정정 디코더(320)는 제3 코드 워드에서의 에러 비트수를 확인한다. 제3 코드 워드는 2개의 에러 비트수를 가진 것으로 가정한 상태이다. 또한, 제3 코드 워드를 구성하는 제3 데이터 및 제3 패리티에서 제3 데이터의 에러는 정정되고, 제3 정정 데이터가 생성된다.
2의 값을 가지는 제3 에러 비트수는 갱신 명령 제어부(500)에서 기준 에러 비트수와 비교되고, 내부 쓰기 명령 PWTIRE가 활성화된다. 쓰기 경로의 에러 정정 인코더(430)는 제3 정정 데이터에 상응하는 제3 정정 패리티를 생성하고, 제3 정정 코드 워드는 제3 어드레스 A3의 셀들에 저장된다. 이를 통해 제3 어드레스 A3의 셀들에 코드 워드가 갱신된다.
제3 어드레스 A3에 이어 제4 어드레스 A4가 내부 어드레스 발생기(800)에서 생성되고, 재활성화된 내부 읽기 명령 PREAD에 의해 제4 어드레스 A4에 대한 읽기 동작이 수행된다. 에러 정정 디코더(320)로 입력된 제4 코드 워드에 대한 디코딩 동작이 수행된다. 제4 코드 워드는 제4 데이터 및 제4 패리티로 구성되며, 에러 비트가 없는 것으로 가정한 상태이다. 따라서, 갱신 명령 제어부(500)에서 내부 쓰기 명령 PWRITE는 비활성화되고, 제4 데이터와 동일한 제4 정정 데이터가 출력 데이터 레지스터(330)를 통해 외부로 출력된다.
상기 도 5 및 도 6에서는 읽기 명령과 시작 어드레스가 인가되면, 추가의 읽기 명령의 인가없이 메모리의 내부에서 내부 어드레스들이 순차적으로 생성되고, 내부 읽기 명령 PREAD가 주기적으로 생성된다. 순차적으로 생성되는 각각의 내부 어드레스들에 상응하는 코드 워드들은 출력되고, 코드 워드의 데이터에 대한 에러 정정 동작이 수행되고, 기준 에러 비트수 이상의 에러 비트를 가지는 코드 워드는 쓰기 경로를 통해 갱신 동작이 수행된다.
상술한 본 발명에 따르면, 하나의 어드레스에 할당된 셀들에 대한 읽기 동작이 수행되는 기간 내에 오류가 있는 데이터에 대한 정정이 수행되고, 정정된 데이터는 메모리의 외부로 출력된다. 또한, 정정된 데이터는 읽기 동작이 수행되는 기간 내에 쓰기 경로로 입력되어 갱신된 패리티와 함께 정정된 코드 워드를 형성하고, 정정 코드 워드는 읽기 명령이 활성화된 기간 내에 읽기 동작 시 할당된 어드레스의 셀들에 기록된다. 즉, 읽기 동작 마다 데이터의 정정이 수행되며, 정정된 데이터는 메모리의 셀들에 정정되어 기록된다. 따라서, 데이터의 신뢰성은 획기적으로 향상된다.
100 : 셀 어레이 200 : 엑세스부
300 : 읽기 경로 310 : 읽기 회로
320 : 에러 정정 디코더 330 : 출력 데이터 레지스터
400 : 쓰기 경로 410 : ?芟? 데이터 레지스터
420 : 데이터 선택부 430 : 에러 정정 인코더
440 : 쓰기 회로 500 : 갱신 명령 제어부
600 : 입/출력 회로 700 : 읽기 명령 제어부
800 : 내부 어드레스 발생기

Claims (20)

  1. 읽기 명령 및 어드레스에 따라 읽기 경로를 활성화하여 상기 어드레스에 할당된 셀들로부터 데이터 및 패리티로 구성된 코드 워드를 출력하는 단계;
    상기 패리티를 통해 상기 데이터의 에러가 정정된 정정 데이터 및 에러 비트수를 생성하는 단계;
    상기 에러 비트수를 기준 에러 비트수와 비교하는 단계;
    상기 에러 비트수가 상기 기준 에러 비트수 미만이면, 상기 정정 데이터는 메모리의 외부로 출력되는 단계;
    상기 에러 비트수가 상기 기준 에러 비트수 이상이면, 상기 정정 데이터는 상기 메모리의 외부로 출력되고, 갱신 쓰기 명령이 활성화되어 상기 정정 데이터는 쓰기 경로에 입력되고, 상기 정정 데이터에 대한 인코딩을 통해 정정 패리티를 형성하고, 상기 정정 데이터와 상기 정정 패리티로 구성된 정정 코드 워드가 생성되는 단계; 및
    상기 정정 코드 워드를 상기 어드레스에 기록하여 상기 코드 워드를 갱신하는 단계를 포함하고,
    상기 갱신 쓰기 명령의 활성화는 상기 읽기 명령이 활성화된 기간 동안 수행되는 것을 특징으로 하는 메모리의 동작 방법.
  2. 제1항에 있어서, 상기 활성화된 갱신 쓰기 명령은 메모리의 내부에서 발생된 내부 명령인 것을 특징으로 하는 메모리의 동작 방법.
  3. 제2항에 있어서, 상기 기준 에러 비트수는 메모리의 외부 단자로 입력되는 신호에 의해 설정되는 것을 특징으로 하는 메모리의 동작 방법.
  4. 제2항에 있어서, 상기 기준 에러 비트수는 메모리의 내부에서 설정되는 것을 특징으로 하는 메모리의 동작 방법.
  5. 제2항에 있어서, 상기 기준 에러 비트수는 1 이상이며, 상기 코드 워드의 최대 정정 에러 비트수 이하이고, 상기 최대 정정 에러 비트수는 상기 패리티에 의해 상기 코드 워드 내에서 정정 가능한 최대 에러 비트수인 것을 특징으로 하는 메모리의 동작 방법.
  6. 제2항에 있어서, 상기 정정 데이터를 상기 쓰기 경로에 입력하는 단계는,
    상기 활성화된 갱신 쓰기 명령을 수신하는 단계; 및
    상기 갱신 쓰기 명령에 의해 상기 정정 데이터를 선택하는 단계를 포함하는 것을 특징으로 하는 메모리의 동작 방법.
  7. 삭제
  8. 제1항에 있어서, 상기 에러 비트수가 상기 기준 에러 비트수 미만이면, 상기 쓰기 경로는 상기 정정 데이터를 선택하지 않는 것을 특징으로 하는 메모리의 동작 방법.
  9. 읽기 명령 및 시작 어드레스를 수신하는 단계;
    상기 읽기 명령을 근거로 내부 읽기 명령을 활성화하고, 상기 시작 어드레스를 근거로 내부 어드레스인 제1 어드레스를 생성하는 단계;
    상기 제1 어드레스에 할당된 셀들로부터 제1 데이터 및 제1 패리티로 구성된 제1 코드 워드를 출력하는 단계;
    상기 제1 코드 워드의 상기 제1 데이터에 대한 에러 정정 디코딩을 수행하여 에러가 수정된 제1 정정 데이터 및 제1 에러 비트수를 생성하는 단계;
    상기 에러 정정 디코딩에 따라 상기 제1 코드 워드의 상기 제1 에러 비트수를 기준 에러 비트수와 비교하는 단계;
    상기 제1 에러 비트수가 상기 기준 에러 비트수 미만이면, 상기 제1 정정 데이터는 메모리 외부로 출력되는 단계;
    상기 제1 에러 비트수가 상기 기준 에러 비트수 이상이면, 상기 제1 정정 데이터는 상기 메모리 외부로 출력되고, 갱신 쓰기 명령이 활성화되어 상기 제1 정정 데이터를 쓰기 경로로 입력하여 에러 정정 인코딩을 수행하고 상기 제1 정정 데이터에 상응하는 제1 정정 패리티를 생성하는 단계; 및
    상기 제1 정정 데이터와 상기 제1 정정 패리티로 구성된 제1 정정 코드 워드를 상기 제1 어드레스에 할당된 상기 셀들에 기록하는 단계를 포함하고,
    상기 갱신 쓰기 명령의 활성화는 상기 읽기 명령이 활성화된 기간 동안 수행되는 것을 특징으로 하는 메모리의 동작 방법.
  10. 제9항에 있어서, 상기 제1 어드레스가 생성된 후, 후속하는 내부 어드레스들이 순차적으로 형성되는 것을 특징으로 하는 메모리의 동작 방법.
  11. 제10항에 있어서, 상기 내부 어드레스들은 내부 어드레스 명령에 의해 순차적으로 생성되는 것을 특징으로 하는 메모리의 동작 방법.
  12. 제9항에 있어서, 상기 읽기 명령의 일회의 입력에 의해 상기 내부 어드레스들이 순차적으로 발생되는 것을 특징으로 하는 메모리의 동작 방법.
  13. 복수개의 셀들이 배치된 셀 어레이;
    상기 셀 어레이를 엑세스하여 공급되는 어드레스에 할당된 셀들에 데이터 및 패리티로 구성된 코드 워드를 기록하거나 출력하기 위한 엑세스부;
    상기 엑세스부에 연결되고, 상기 셀들로부터 출력되는 상기 데이터에 대한 에러 정정을 수행하여 정정 데이터를 형성하고, 상기 패리티를 이용하여 에러 비트수를 생성하는 읽기 경로;
    상기 읽기 경로로부터 상기 에러 비트수를 수신하고, 기준 에러 비트수와 비교하여 읽기 명령이 활성화된 기간 내에 갱신 쓰기 명령을 생성하여 쓰기 동작을 유도하기 위한 갱신 명령 제어부;
    상기 엑세스부에 연결되고, 상기 읽기 경로와 병렬로 배치되며, 상기 갱신 쓰기 명령에 의해 상기 정정 데이터를 수신하고, 정정 패리티를 생성하여 상기 정정 데이터와 상기 정정 패리티로 구성된 정정 코드 워드를 상기 엑세스부에 출력하기 위한 쓰기 경로; 및
    상기 읽기 경로와 상기 쓰기 경로에 연결되고, 상기 읽기 경로에서 출력되는 상기 정정 데이터를 수신하여 메모리의 외부로 출력하기 위한 입/출력 회로를 포함하고,
    상기 입/출력 회로는 상기 갱신 명령 제어부의 동작과 무관하게 상기 읽기 경로에서 생성된 상기 정정 데이터를 상기 메모리의 외부로 출력하며,
    상기 엑세스부에 수신된 상기 정정 코드 워드는 상기 어드레스에 할당된 셀들에 재기입되는 것을 특징으로 하는 메모리.
  14. 제13항에 있어서, 상기 읽기 경로는,
    상기 엑세스부의 로우 디코드가 선택하는 위드라인을 활성화시키고 컬럼 디코더에 의해 선택되는 데이터 라인으로부터 상기 코드 워드를 수신하고 증폭하기 위한 읽기 회로;
    상기 읽기 회로의 출력인 증폭된 코드 워드를 수신하고, 상기 패리티를 이용하여 상기 데이터의 에러 정정 동작을 수행하기 위한 에러 정정 디코더; 및
    상기 에러 정정 디코더로부터 상기 정정 데이터를 수신하고, 저장하기 위한 출력 데이터 레지스터를 포함하는 것을 특징으로 하는 메모리.
  15. 제14항에 있어서, 상기 에러 정정 디코더는 상기 정정 데이터를 출력하고, 상기 데이터 내의 상기 에러 비트수를 출력하는 것을 특징으로 하는 메모리.
  16. 제13항에 있어서, 상기 갱신 명령 제어부는 상기 에러 비트수가 상기 기준 에러 비트수 이상이면, 상기 갱신 쓰기 명령을 활성화하는 것을 특징으로 하는 메모리.
  17. 제13항에 있어서, 상기 쓰기 경로는,
    상기 입/출력 회로로부터 입력 데이터를 수신하고, 저장하는 입력 데이터 레지스터;
    상기 입력 데이터 또는 상기 정정 데이터를 상기 갱신 쓰기 명령에 의해 선택적으로 수신하는 데이터 선택부;
    상기 데이터 선택부로부터 출력되는 상기 정정 데이터를 수신하고, 상기 정정 데이터에 상응하는 새로운 패리티인 정정 패리티를 형성하여 상기 정정 코드 워드를 생성하기 위한 에러 정정 인코더; 및
    상기 에러 정정 인코더로 부터 상기 정정 인코더를 수신하고, 상기 엑세스부에 공급하기 위한 쓰기 회로를 포함하는 것을 특징으로 하는 메모리.
  18. 제17항에 있어서, 상기 갱신 쓰기 명령은 상기 데이터 선택부의 제어단자에 인가되고, 상기 데이터 선택부는 상기 갱신 쓰기 명령이 활성화되면, 상기 정정 데이터를 선택하는 것을 특징으로 하는 메모리.
  19. 제13항에 있어서, 읽기 명령을 수신하고, 내부 읽기 명령을 상기 읽기 경로에 공급하며, 내부 어드레스 명령을 발생하기 위한 읽기 명령 제어부; 및
    상기 내부 어드레스 명령을 수신하고, 수신되는 시작 어드레스에 근거하여 복수개의 어드레스들을 순차적으로 형성하기 위한 내부 어드레스 발생기를 더 포함하는 것을 특징으로 하는 메모리.
  20. 제19항에 있어서, 상기 읽기 명령의 1회 인가에 상기 복수개의 어드레스들은 순차적으로 형성되는 것을 특징으로 하는 메모리.
KR1020220146861A 2022-11-07 2022-11-07 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리 KR102619353B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220146861A KR102619353B1 (ko) 2022-11-07 2022-11-07 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리
PCT/KR2022/018944 WO2024101512A1 (ko) 2022-11-07 2022-11-28 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220146861A KR102619353B1 (ko) 2022-11-07 2022-11-07 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리

Publications (1)

Publication Number Publication Date
KR102619353B1 true KR102619353B1 (ko) 2023-12-29

Family

ID=89333979

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220146861A KR102619353B1 (ko) 2022-11-07 2022-11-07 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리

Country Status (2)

Country Link
KR (1) KR102619353B1 (ko)
WO (1) WO2024101512A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117524287A (zh) * 2024-01-04 2024-02-06 合肥奎芯集成电路设计有限公司 内存芯片自测试电路和内存芯片自测试方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090103356A1 (en) * 2006-06-22 2009-04-23 Nima Mokhlesi Non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
KR20140062332A (ko) * 2012-11-14 2014-05-23 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
KR20190090472A (ko) * 2018-01-25 2019-08-02 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101772020B1 (ko) * 2011-05-30 2017-08-29 삼성전자주식회사 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
KR20180086815A (ko) * 2017-01-23 2018-08-01 에스케이하이닉스 주식회사 쓰기 버퍼를 이용한 중복-쓰기 동작을 수행하는 메모리장치 및 메모리장치의 읽기 및 쓰기 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090103356A1 (en) * 2006-06-22 2009-04-23 Nima Mokhlesi Non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
KR20140062332A (ko) * 2012-11-14 2014-05-23 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
KR20190090472A (ko) * 2018-01-25 2019-08-02 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117524287A (zh) * 2024-01-04 2024-02-06 合肥奎芯集成电路设计有限公司 内存芯片自测试电路和内存芯片自测试方法
CN117524287B (zh) * 2024-01-04 2024-03-22 合肥奎芯集成电路设计有限公司 内存芯片自测试电路和内存芯片自测试方法

Also Published As

Publication number Publication date
WO2024101512A1 (ko) 2024-05-16

Similar Documents

Publication Publication Date Title
US11481279B2 (en) Apparatus including refresh controller controlling refresh operation responsive to data error
US5761222A (en) Memory device having error detection and correction function, and methods for reading, writing and erasing the memory device
KR100603671B1 (ko) 비휘발성 메모리에 데이터를 저장하기 위한 방법
CN101055760B (zh) 半导体存储器件及其驱动方法
US20120239866A1 (en) Non-volatile memory with error correction for page copy operation and method thereof
JPWO2007046350A1 (ja) Mramの動作方法
JP6190462B2 (ja) 半導体記憶装置
US11301319B2 (en) Memory device and memory system having multiple error correction functions, and operating method thereof
US8032815B2 (en) Semiconductor memory device
KR102619353B1 (ko) 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리
JP2020155163A (ja) メモリシステム及び不揮発性メモリ
JP2008135136A (ja) 強誘電体メモリおよび強誘電体メモリの動作方法
JP5545552B2 (ja) メモリ・デバイスにおけるデータ転送およびプログラミング
KR101326898B1 (ko) 메모리 디바이스, 집적 회로 및 메모리 디바이스에서 사용하기 위한 방법
TW202113649A (zh) 物理不可複製函數代碼生成裝置及其方法
US8054685B2 (en) Method of programming nonvolatile memory device
JP2007265557A (ja) 半導体記憶装置
TWI663599B (zh) 儲存裝置及對其資料進行刷新的方法
JP4467371B2 (ja) 不揮発性半導体記憶装置及び不揮発性半導体記憶装置の置換情報の設定方法
JP2009271991A (ja) 半導体記憶装置
JPH0528788A (ja) 不揮発性メモリ装置
JP2013030251A (ja) メモリシステム
KR102610253B1 (ko) 데이터 복구 방법 및 데이터 복구를 수행하는 비휘발성 메모리
JP2004030849A (ja) データの一部書き換え機能を有する半導体不揮発性メモリ
US7773421B2 (en) Method and apparatus for accessing memory with read error by changing comparison

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant