KR102610253B1 - 데이터 복구 방법 및 데이터 복구를 수행하는 비휘발성 메모리 - Google Patents
데이터 복구 방법 및 데이터 복구를 수행하는 비휘발성 메모리 Download PDFInfo
- Publication number
- KR102610253B1 KR102610253B1 KR1020220158150A KR20220158150A KR102610253B1 KR 102610253 B1 KR102610253 B1 KR 102610253B1 KR 1020220158150 A KR1020220158150 A KR 1020220158150A KR 20220158150 A KR20220158150 A KR 20220158150A KR 102610253 B1 KR102610253 B1 KR 102610253B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- error bits
- correction
- command
- error
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000011084 recovery Methods 0.000 claims abstract description 80
- 230000004913 activation Effects 0.000 claims description 8
- 230000003213 activating effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000000630 rising effect Effects 0.000 description 6
- 230000005415 magnetization Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003302 ferromagnetic material Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1673—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1675—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (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
본 발명은 비휘발성 메모리의 동작 방법에 관한 것으로, 고신뢰성을 가지는 데이터 복구 방법 및 상기 데이터 복구 방법을 구현하는 메모리에 관한 것이다.
비휘발성 메모리는 저항 변화 또는 문턱 전압의 변화 등를 이용하는 메모리이며, 저항 변화를 유도하는 소재의 종류 및 저항 변화를 일으키는 메커니즘에 따라 다양한 종류로 구분된다. 예컨대, MRAM은 강자성체의 자화의 변경을 이용하여 데이터를 저장한다.
비휘발성 메모리는 많은 횟수의 읽기 및 쓰기 동작에도 정상 동작이 요구되고, 오랜 시간 동안 높은 데이더 보존 능력이 요구된다. 그러나 다양한 종류의 비휘발성 메모리들은 각각의 고유한 기술적인 한계로 인하여, 저장된 데이터에 오류가 발생되는 문제를 가진다.
즉, 메모리의 셀에 기입된 데이터가 반전되거나 다른 레벨을 가짐에 따라 읽기 동작 시에 입력된 데이터와 다른 값을 가진 오류가 나타난다. 이러한 메모리의 데이터 오류는 메모리의 신뢰성에 심각한 약점으로 작용한다.
예컨대, MRAM에서는 다양한 원인으로 인해 데이터의 에러가 발생된다. 쓰기 동작 시에 빠른 동작 속도로 인해 쓰기 동작에 할당되는 시간은 감소되며, 짧은 시간 동안 쓰기 전류가 인가됨에 따라 자유층에서의 자화가 충분히 변경되지 못할 수 있다. 다른 오류의 예로는 읽기 동작 시에 고정층 및 자유층을 관통하는 읽기 전류에 의해 자유층의 자화가 변경되는 데이터의 반전(flip)도 일어날 수 있다. MRAM에서 데이터 에러의 다른 예시로는 메모리 칩의 온도가 상승하거나 외부 자기장에 의해 데이터가 반전되는 현상도 있다. 비휘발성 메모리에서 데이터의 에러 현상은 MRAM에만 국한되는 것이 아니며, 다른 종류의 비휘발성 메모리에서도 다양한 원인으로 인해 발생된다.
상술한 데이터의 에러 문제를 해결하기 위해 에러 정정 엔진(error correction code engine)이 사용된다. 에러 정정 엔진은 설계자 또는 사용자에 의해 결정된 에러 정정 능력(error correction capability)를 가지고, 에러 정정 능력의 범위 이내에서 데이터의 오류를 정정한다. 에러 정정 능력이란 데이터 내에 정정이 가능한 최대 에러 비트수를 나타내며, 에러 정정 능력이 높으면, 메모리에서 저장되고 출력되는 데이터의 신뢰성은 향상된다.
다만, 데이터의 신뢰성 향상을 위해 에러 정정 능력을 높이면, 패리티의 비트수가 증가되어야 한다. 패리티는 데이터와 함께 코드 워드를 형성하고, 코드 워드의 비트수를 증가시키므로 칩 면적이 증가되는 문제가 있다. 따라서, 메모리의 설계자는 메모리의 종류 및 요구되는 데이터 신뢰성의 수준에 따라 적절한 패리티의 비트수를 결정하여 에러 정정 능력을 선택한다.
또한, 비휘발성 메모리에서는 외부 온도 또는 자기장 등의 외인성 요인에 의해 시간이 경과될수록 데이터가 손실되는 확률이 증가한다. 이는 지속적인 메모리의 사용에 따른 현상이며, 설정된 에러 정정 능력을 상회하는 에러 비트수가 발생되는 문제를 일으킨다. 상기 에러의 오버 플로우 현상으로 인해 에러 정정 엔진이 도입된 비휘발성 메모리 내에서 정상적인 에러 정정이 수행되지 못한다. 따라서, 메모리의 읽기 동작에서 오류를 가진 데이터가 출력되고, 읽기 동작에서 불량이 발생된다.
본 발명이 이루고자 하는 제1 기술적 과제는 복구 명령에 의해 복수개의 어드레스들을 순차적으로 지정하여 메모리에 저장된 정보를 갱신할 수 있는 메모리의 데이터 복구방법을 제공하는데 있다.
또한, 본 발명이 이루고자 하는 제2 기술적 과제는 상기 제1 기술적 과제를 달성하기 위한 비휘발성 메모리를 제공하는데 있다.
상술한 제1 기술적 과제를 달성하기 위한 본 발명은, 복구 명령에 의해 지정 어드레스를 생성하는 단계; 상기 지정 어드레스의 셀들로부터 데이터 및 패리티를 가지는 코드 워드에 대한 읽기 동작을 수행하는 단계; 상기 코드 워드의 에러 비트수를 기준 에러 비트수와 비교하는 단계; 및 상기 비교 결과에 따라 상기 지정 어드레스에 선택적인 쓰기 동작을 수행하는 단계를 포함하는 메모리의 데이터 복구방법을 제공한다.
상기 제2 기술적 과제를 달성하기 위한 본 발명은, 복수개의 셀들이 배치된 셀 어레이; 상기 셀 어레이를 엑세스하여 지정 어드레스에 할당된 셀들에 데이터 및 패리티로 구성된 코드 워드를 기록하거나 출력하기 위한 엑세스부; 상기 엑세스부에 연결되고, 내부 읽기 명령에 의해 상기 셀들로부터 출력되는 상기 데이터에 대한 에러 정정을 수행하여 정정 데이터를 형성하고, 상기 패리티를 이용하여 에러 비트수를 생성하는 읽기 경로; 상기 읽기 경로로부터 상기 에러 비트수를 수신하고, 기준 에러 비트수와 비교하여 상기 내부 읽기 명령을 생성하거나 상기 셀 어레이에 선택적 쓰기 동작을 위한 갱신 쓰기 명령을 생성하기 위한 복구 컨트롤러; 상기 엑세스부에 연결되고, 상기 읽기 경로와 병렬로 배치되며, 상기 갱신 쓰기 명령에 의해 상기 정정 데이터를 선택적으로 수신하고, 정정 패리티를 생성하여 정정 코드 워드를 상기 엑세스부에 출력하기 위한 쓰기 경로; 및 상기 복구 컨트롤러로부터 상기 내부 읽기 명령을 수신하여 상기 지정 어드레스를 생성하기 위한 어드레스 발생기를 포함하는 비휘발성 메모리를 제공한다.
상술한 본 발명에 따르면, 복구 명령이 인가되면, 순차적으로 지정 어드레스를 생성하고, 생성된 지정 어드레스에 대한 읽기 동작 및 비교 동작을 수행한다. 비교 동작은 지정 어드레스의 코드 워드 내의 에러 비트수과 설정된 기준 에러 비트수를 비교하는 동작이다. 비교 결과에 의해 기준 에러 비트수 이상의 에러 비트를 가지는 코드 워드는 갱신되고, 쓰기 경로를 통해 지정 어드레스에 재기입된다. 이를 통해 메모리 셀의 복구 동작이 이루어진다. 또한, 순차적으로 생성되는 지정 어드레스에서 기준 에러 비트수 미만의 에러를 가지는 코드 워드에 대해서는 쓰기 동작이 수행되지 않는다. 따라서, 메모리의 복구 동작은 효과적으로 수행될 수 있다.
도 1은 본 발명의 바람직한 실시예에 따라 메모리의 데이터 복구 방법을 설명하기 위한 순서도이다.
도 2는 본 발명의 바람직한 실시예에 따라 상기 도 1의 지정 어드레스의 생성 및 읽기 동작을 설명하기 위한 흐름도이다.
도 3은 본 발명의 바람직한 실시예에 따라 상기 도 1의 에러 비트수의 비교 동작을 나타낸 흐름도이다.
도 4는 본 발명의 바람직한 실시예에 따라 상기 도 1의 쓰기 동작을 설명하기 위한 흐름도이다.
도 5는 본 발명의 바람직한 실시예에 따른 메모리의 블록도이다.
도 6은 본 발명의 바람직한 실시예에 따라 상기 도 5의 복구 컨트롤러를 도시한 블록도이다.
도 7은 본 발명의 바람직한 실시예에 따라 도 6의 복구 컨트롤러의 동작을 설명하기 위한 타이밍도이다.
도 8은 본 발명의 바람직한 실시예에 따라 본 발명의 메모리의 동작을 설명하기 위한 타이밍도이다.
도 2는 본 발명의 바람직한 실시예에 따라 상기 도 1의 지정 어드레스의 생성 및 읽기 동작을 설명하기 위한 흐름도이다.
도 3은 본 발명의 바람직한 실시예에 따라 상기 도 1의 에러 비트수의 비교 동작을 나타낸 흐름도이다.
도 4는 본 발명의 바람직한 실시예에 따라 상기 도 1의 쓰기 동작을 설명하기 위한 흐름도이다.
도 5는 본 발명의 바람직한 실시예에 따른 메모리의 블록도이다.
도 6은 본 발명의 바람직한 실시예에 따라 상기 도 5의 복구 컨트롤러를 도시한 블록도이다.
도 7은 본 발명의 바람직한 실시예에 따라 도 6의 복구 컨트롤러의 동작을 설명하기 위한 타이밍도이다.
도 8은 본 발명의 바람직한 실시예에 따라 본 발명의 메모리의 동작을 설명하기 위한 타이밍도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.
실시예
도 1은 본 발명의 바람직한 실시예에 따라 메모리의 데이터 복구 방법을 설명하기 위한 순서도이다.
도 1을 참조하면, 복구 명령(restore command)이 메모리에 입력되어 복구 동작이 활성화된다(S100). 상기 복구 명령이 활성화되면, 내부 읽기 명령 PREAD가 생성되고, 내부 읽기 명령 PREAD에 의해 내부 어드레스가 순차적으로 생성될 수 있다.
본 발명에서 활성화라는 표현은 해당되는 회로 또는 블록이 입력 신호 또는 데이터 등을 처리할 수 있는 상태를 지칭하며, 회로 등이 정상적인 동작 상태에 있는 것을 의미한다.
복구 명령이 활성화되면 지정 어드레스의 생성 동작이 수행된다(S200). 본 실시예에서 지정 어드레스는 복구 대상이 되는 어드레스를 지칭한다. 상기 지정 어드레스는 복구 동작 또는 읽기 동작이 완료되면 새로운 어드레스로 대체된다.
복구 명령이 인가되면, 복구 동작을 위한 최초의 어드레스인 시작 어드레스가 생성된다. 시작 어드레스의 생성은 메모리 내부에 특정의 알고리즘을 통해 구현될 수 있으며, 메모리의 외부로부터 지정될 수 있다.
또한, 시작 어드레스에 대한 복구 동작 또는 읽기 동작이 완료되면, 새로운 어드레스가 지정된다. 즉, 어드레스들이 순차적으로 시계열적으로 형성될 수 있다. 어드레스들의 생성은 내부 읽기 명령 PREAD에 의해 수행되며, 내부 읽기 명령 PREAD는 복구 동작의 양상에 따라 다른 동작 기간을 가질 수 있다. 내부 읽기 명령 PREAD의 동작 기간이라 함은 생성된 어드레스가 엑세스부에 공급되는 기간을 지칭한다.
메모리의 복구 동작의 양상에 따라 읽기 동작 및 쓰기 동작이 수행될 수 있으며, 읽기 동작 만이 수행될 수도 있다. 읽기 동작과 쓰기 동작이 수행되면, 해당하는 지정 어드레스는 상대적으로 긴 시간 동안 유지되고, 읽기 동작만 수행되면 해당하는 지정 어드레스는 상대적으로 짧은 시간 동안 유지된다.
어드레스의 생성에 의해 어드레스에 할당된 셀들의 코드 워드는 엑세스 가능해진다. 상기 코드 워드는 데이터 및 패리티로 구성되며, 데이터는 사용자가 메모리에 입력하거나 출력하는 정보를 지칭하며, 패리티는 메모리에 저장되는 데이터의 오류를 정정하기 위한 정보로서 메모리의 내부에서 데이터에 상응하여 생성된다.
지정 어드레스의 생성 동작이 수행되면, 읽기 동작이 수행된다(S300). 생성된 내부 읽기 명령 PREAD에 의해 지정 어드레스에 해당하는 셀들의 코드 워드에 대한 읽기 동작이 수행된다. 읽기 동작 내에서 에러 정정 디코딩 동작이 수행된다. 에러 정정 디코딩 동작에 의해 데이터의 에러가 정정된 정정 데이터가 생성되고, 코드 워드의 에러 비트수가 생성된다.
또한, 읽기 경로로부터 출력되는 에러 비트수는 기준 에러 비트수와 비교된다(S400). 상기 기준 에러 비트수는 1 내지 에러 정정 능력 이하로 설정됨이 바람직하다. 에러 정정 능력은 코드 워드의 패리티에 의해 정정 가능한 최대 에러 비트수를 지칭한다.
당업자는 메모리의 사용 목적에 따라 기준 에러 비트수를 결정할 수도 있다. 즉, 기준 에러 비트수는 메모리의 외부 단자를 통해 입력되고, 에러 비트수와의 비교동작에 사용될 수 있다. 실시의 형태에 따라 기준 에러 비트수는 설계자에 의해 메모리 내에 기 설정된 값으로 고정될 수도 있다.
에러 비트수에 대한 비교 동작에 의해 새로운 내부 읽기 명령 PREAD가 활성화되는 시점을 달라질 수 있다. 생성된 신규 내부 읽기 명령 PREAD에 의해 신규 어드레스의 생성 및 신규 어드레스에 할당된 새로운 코드 워드에 대한 읽기 동작이 수행될 수 있다.
에러 비트수가 기준 에러 비트수 이상이면, 쓰기 동작이 수행된다(S500). 쓰기 동작을 위한 쓰기 경로의 활성화는 갱신 쓰기 명령 PWRITE에 의해 수행된다. 즉, 갱신 쓰기 명령 PWRITE에 의해 쓰기 경로가 활성화된다.
활성화된 쓰기 경로는 정정 데이터를 선택하고, 정정 데이터에 대한 에러 정정 인코딩 동작을 수행한다. 정정 인코딩 동작은 정정 데이터를 근거로 새로운 패리티인 정정 패리티를 생성하는 동작이며, 정정 패리티는 정정 데이터와 결합되어 정정 코드 워드가 생성된다. 정정 코드 워드는 지정 어드레스의 셀들에 기록된다. 이를 통해 코드 워드를 갱신하는 복구 동작이 수행된다.
만일, 에러 비트수가 기준 에러 비트수 미만이면, 쓰기 경로의 활성화는 일어나지 않는다.
정정 코드 워드의 쓰기 동작 이후 또는 에러 비트수가 기준 에러 비트수 미만이면, 지정 어드레스가 최후 어드레스인지 판단하는 동작이 수행된다(S600).
지정 어드레스가 최후 어드레스가 아닌 경우, 신규 어드레스가 생성되고, 생성된 신규 어드레스는 단계 S200의 지정 어드레스가 되어 상술한 S200 내지 S600의 단계가 진행된다.
상술한 과정은 읽기 동작 및 복구 동작에 사용된 지정 어드레스가 최후 어드레스에 해당될 때까지 수행된다. 읽기 동작 또는 쓰기 동작을 포함하는 복구 동작에서 시작 어드레스로부터 복수개의 어드레스들은 순차적으로 생성된다.
만일, 지정 어드레스가 최후 어드레스이면 복구 동작은 종료된다(S700).
도 2는 본 발명의 바람직한 실시예에 따라 상기 도 1의 지정 어드레스의 생성 및 읽기 동작을 설명하기 위한 흐름도이다.
도 2를 참조하면, 내부 읽기 명령이 활성화되면 지정 어드레스가 생성된다(S200). 상기 지정 어드레스는 시작 어드레스일 수 있으며, 시작 어드레스에 대한 도 1의 순서가 진행된 후, 새롭게 생성된 어드레스일 수 있다.
이어서 지정 어드레스에 대한 읽기 동작을 통해 제1 코드 워드가 셀들로부터 읽기 경로로 출력된다(S310). 상기 제1 코드 워드는 제1 데이터 및 제1 패리티를 가진다. 활성화된 내부 읽기 명령 PREAD에 의해 읽기 경로가 활성화되면 지정 어드레스의 셀들에 대한 읽기 동작이 수행된다. 상기 도 2에서 지정 어드레스의 셀들에 저장된 코드 워드를 제1 코드 워드라 지칭한다.
이어서, 제1 어드레스에 할당된 제1 코드 워드에 대한 에러 정정 디코딩 동작이 수행된다(S320). 에러 정정 디코딩 동작은 논리 연산에 해당하며, 패리티를 이용한 오류의 정정 동작에서 오류를 가지는 에러 비트의 수도 확인된다. 에러 정정 디코딩 동작에 의해 제1 정정 데이터와 제1 에러 비트수가 생성된다. 상기 제1 정정 데이터는 제1 데이터의 정정 동작에 의해 생성된 것이며, 제1 에러 비트수는 제1 데이터와 제1 패리티로 구성된 제1 코드 워드 내의 에러 비트수를 지칭한다.
도 3은 본 발명의 바람직한 실시예에 따라 상기 도 1의 에러 비트수의 비교 동작을 나타낸 흐름도이다.
도 3을 참조하면, 제1 에러 비트수가 수신되고, 제1 에러 비트수는 기준 에러 비트수와 비교된다(S410). 상기 기준 에러 비트수는 메모리 내부에서 기 설정된 값일 수 있으며, 메모리의 외부 단자로부터 입력되는 값일 수 있다.
제1 에러 비트수가 기준 에러 비트수 이상이면, 갱신 쓰기 명령 PWRITE가 활성화된다(S420). 기준 에러 비트수는 메모리에서 데이터의 갱신 동작을 판단하는 기준으로 해석된다. 즉, 기준 에러 비트수 미만의 데이터 에러가 발생되면, 상기 제1 코드 워드의 에러는 무시될 수 있으며, 기준 에러 비트수 이상의 에러가 발생되면, 상기 제1 데이터의 에러는 정정된 값으로 제1 어드레스의 셀들에 재기록되어야 한다.
생성된 갱신 쓰기 명령 PWRITE에 의해 쓰기 경로가 활성화된다(S430). 쓰기 경로가 활성화되면, 쓰기 경로는 제1 정정 데이터를 선택한다.
만일, 에러 비트수가 기준 에러 비트수 미만이면, 갱신 쓰기 명령 PWRITE는 비활성화되거나 생성되지 않으며, 쓰기 경로도 비활성화된다.
또한, 갱신 쓰기 명령 PWRITE이 활성화된 후, 내부 읽기 명령 PREAD가 활성화된다(S440). 상기 내부 읽기 명령 PREAD는 신규 어드레스의 생성 및 신규 어드레스에 할당된 다른 코드 워드에 대한 읽기 동작에 사용된다. 내부 읽기 명령 PREAD가 갱신 쓰기 명령 PWRITE에 후행하는 이유는 쓰기 경로로 제1 정정 데이터가 입력되어 쓰기 동작이 수행되는 과정에서 읽기 경로를 통해 새로운 어드레스에 대한 읽기 동작이 수행되도록 하기 위함이다. 이를 통해 데이터의 복구 동작 속도가 향상된다.
도 4는 본 발명의 바람직한 실시예에 따라 상기 도 1의 쓰기 동작을 설명하기 위한 흐름도이다.
도 4를 참조하면, 활성화된 갱신 쓰기 명령 PWRITE가 쓰기 경로에 입력되고, 쓰기 경로는 읽기 경로에서 생성된 제1 정정 데이터를 선택한다(S510).
상기 쓰기 경로로는 메모리의 외부에서 쓰기 동작을 위한 입력 데이터가 인가될 수도 있고, 입력 데이터의 인가와 동시에 읽기 경로로부터 제1 정정 데이터가 인가될 수 있다. 이는 메모리의 내부에서 발생되는 갱신 쓰기 명령과 메모리의 외부에서 발생되는 쓰기 명령이 출돌하는 경우이다. 2개의 명령이 충돌할 경우, 갱신 쓰기 명령이 우선하여, 쓰기 경로는 입력 데이터 대신 제1 정정 데이터를 선택한다.
선택된 제1 정정 데이터에 대해 에러 정정 인코딩 동작이 수행되고, 제1 정정 데이터에 상응하는 제1 정정 패리티가 생성된다(S520).
새롭게 형성된 제1 정정 패리티와 제1 정정 데이터는 제1 정정 코드 워드를 형성하고, 제1 정정 코드 워드는 지정 어드레스의 셀들에 기록된다(S530). 이를 통해 지정 어드레스에 할당된 코드 워드의 복구 동작이 수행된다.
도 5는 본 발명의 바람직한 실시예에 따른 메모리의 블록도이다.
도 5를 참조하면, 본 실시예의 메모리는 셀 어레이(100), 엑세스부(200), 읽기 경로(300), 쓰기 경로(400), 복구 컨트롤러(500) 및 어드레스 발생기(600)를 가진다.
셀 어레이(100)는 단위저장요소인 셀, 워드 라인 및 컬럼 라인을 가진다. 워드 라인 및 컬럼 라인은 셀에 연결된다.
셀의 형태에 따라 상기 컬럼 라인은 데이터 라인 및 소스 라인을 가질 수 있다. 예컨대, 워드 라인은 셀을 선택하는데 사용되고, 컬럼 라인은 셀에 데이터를 인가하여 읽기 동작 또는 쓰기 동작을 수행하는데 사용될 수 있다. 셀들은 상호 규칙적으로 배치된 매트릭스 형태를 가짐이 바람직하다.
엑세스부(200)는 로우 디코더(210) 및 컬럼 디코더(220)를 가진다. 로우 디코더(210)에는 복수개의 워드 라인들이 연결되어 특정 로우 라인의 셀들이 선택된다. 또한, 컬럼 디코더(220)는 특정의 컬럼 라인에 쓰기 신호 또는 읽기 신호를 인가한다.
상기 로우 디코더(210)가 선택하는 로우 라인 및 컬럼 디코더(220)가 선택하는 컬럼 라인은 인가되는 지정 어드레스에 의해 결정된다. 다만, 엑세스부(200)의 셀 선택동작은 본 발명의 핵심적 요소가 아니므로 상세한 설명은 생략한다.
읽기 경로(300)는 읽기 회로(310), 출력 코드워드 레지스터(320) 에러 정정 디코더(320) 및 출력 데이터 레지스터(340)를 가진다. 읽기 경로(300)는 엑세스부(200)를 통해 출력되는 코드 워드를 수신하고, 이를 증폭한 다음 에러 정정 디코딩 동작을 수행한다. 상기 도 1 내지 도 4에서 설명된 바대로 읽기 경로(300)에서는 정정 데이터 및 에러 비트수가 출력된다.
읽기 회로(310)는 컬럼 디코더(220)로부터 출력되는 코드 워드를 수신하고, 디지털 신호 처리에 적합한 레벨로 증폭한다. 상기 코드 워드는 엑세스부(200)에 인가된 지정 어드레스에 해당하는 셀들에 저장된 코드 워드이다. 읽기 회로(310)는 감지 증폭기를 가지고, 감지 증폭기에서 증폭된 코드 워드는 출력 코드워드 레지스터(320)에 저장된다.
출력 코드워드 레지스터(320)는 내부 클럭 신호에 연동하여 코드 워드를 에러 정정 디코더(330)로 출력한다. 상기 출력 코드워드 레지스터(320)는 읽기 경로(300)의 필수적인 요소는 아니나, 내부 클럭 신호에 따라 코드 워드가 처리될 때, 데이터 처리의 편의성이 확보되는 장점이 있다.
상기 코드 워드는 데이터 및 패리티로 구성된다. 예컨대 데이터는 k 비트(k는 1 이상의 자연수)를 가지고, 패리티는 p 비트(p는 1 이상의 자연수)를 가질 수 있으며, 코드 워드는 k+p 비트를 가진다.
에러 정정 디코더(330)는 출력 코드워드 레지스터(320)의 코드 워드를 수신하고, 패리티를 이용하여 데이터에 대한 에러 정정 동작을 수행한다. 본 실시예에서 데이터는 읽기 및 쓰기 동작에서 사용자가 원하는 정보를 가지는 이진 데이터로 메모리로부터 출력되거나 메모리로 입력되는 정보를 의미한다. 또한, 패리티는 당업자에게 널리 알려진 바대로 데이터의 오류를 검출하기 위해 데이터에 추가되는 오류 식별자이다.
패리티의 설정을 위해 당업자에게 널리 알려진 통상의 기술이 채용된다. 예컨대, 데이터가 32 비트이면, 패리티는 12 비트로 구성될 수 있으며, 데이터의 에러 정정 방식 및 에러 정정 능력에 따라 다양한 형태의 패리티가 설정될 수 있다. 다만, 패리티의 설정법은 본 발명의 핵심적 요소가 아니며, 당업계에서 통상적으로 사용되는 방법이 채용된다.
에러 정정 디코딩 동작을 통해 패리티는 데이터 내의 에러를 정정할 뿐 아니라, 패리티를 이용한 디지털 처리를 통해 코드 워드 내의 에러 비트수를 확인하는데 사용될 수 있다. 즉, 패리티를 이용하여 코드 워드의 에러 비트수가 확인될 수 있다. 에러 정정 디코더(330)에서는 데이터의 에러가 정정된 정정 데이터가 형성되고, 에러 비트수가 생성된다.
정정 데이터는 출력 데이터 레지스터(340)로 입력되고, 출력 데이터 레지스터(340)는 정정 데이터를 출력한다. 만일, 데이터 내에 에러가 없다면, 정정 데이터와 셀 어레이에서 저장된 데이터는 동일할 것이나, 데이터 내에 에러가 있다면, 정정 데이터와 셀 어레이에 저장된 데이터는 다른 값을 가진다.
에러 정정 디코더(330)에서 출력되는 에러 비트수는 복구 컨트롤러(500)로 입력된다. 상기 복구 컨트롤러(500)는 복구 명령을 수신하고, 내부 읽기 명령 PREAD 및 갱신 쓰기 명령 PWRITE를 발생시킨다.
복구 명령에 의해 활성화된 내부 읽기 명령 PREAD에 의해 읽기 경로(300)가 활성화되고, 내부 읽기 명령 PREAD는 어드레스 발생기(600)에도 입력되어 지정 어드레스들이 순차적으로 생성된다.
어드레스 발생기(600)는 내부 읽기 명령 PREAD을 수신하고, 순차적으로 복수개의 지정 어드레스들을 발생시킨다. 지정 어드레스들의 형성을 위해 시작 어드레스 및 종료 어드레스가 설정될 필요가 있다. 이는 어드레스 발생기(600)에 미리 설정될 수 있으며, 메모리의 외부 입력 단자를 통해 인가될 수 있다.
어드레스 발생기(600)에서 생성된 지정 어드레스들에 의해 셀 어레이에 대한 읽기 동작이 일어난다. 따라서, 복구 명령은 내부 읽기 명령 PREAD에 선행하고, 내부 읽기 명령 PREAD는 읽기 경로(300)의 에러 정정 디코팅 동작에 선행한다.
복구 컨트롤러(500)에 입력된 에러 비트수는 기준 에러 비트수와 비교된다. 상기 기준 에러 비트수는 최대 에러 비트수 이하로 설정된다. 최대 에러 비트수는 메모리에 설정된 패리티가 정정할 수 있는 데이터의 최대 에러 비트수를 지칭한다. 이는 패리티의 최대 정정 능력으로 이해될 필요가 있다.
만일, 에러 비트수가 기준 에러 비트수 미만이면, 갱신 쓰기 명령 PWRITE는 생성되지 않거나, 활성화되지 않는다. 따라서, 쓰기 경로(400)는 입력 데이터 만을 수신하거나 비활성화 상태를 유지한다. 만일, 에러 비트수가 기준 에러 비트수 이상이면, 복구 컨트롤러(500)는 갱신 쓰기 명령PWRITE를 활성화한다. 활성화된 갱신 쓰기 명령 PWRITE에 의해 쓰기 경로(400)는 활성화되고, 쓰기 경로(400)는 정정 데이터를 선택한다.
쓰기 경로(400)는 입력 데이터 레지스터(410), 데이터 선택기(420), 에러 정정 인코더(430), 입력 코드워드 레지스터(440) 및 쓰기 회로(450)를 가진다.
쓰기 경로(400)는 메모리의 외부로부터 인가되는 쓰기 명령에 따라 입력 데이터 레지스터(410)를 통해 입력 데이터를 수신하고, 수신된 입력 데이터에 상응하는 입력 패리티를 형성할 수 있다. 또한, 쓰기 경로(400)는 복구 컨트롤러(500)로부터 갱신 쓰기 명령 PWRITE을 수신하여 정정 데이터를 선택하고, 정정 데이터에 상응하는 정정 패리티를 형성할 수 있다.
만일, 동일한 기간 내에 쓰기 명령과 갱신 쓰기 명령 PWRITE가 충돌한다면, 쓰기 경로(400)는 갱신 쓰기 명령 PWRITE을 우선 선택한다. 쓰기 경로(400)가 정정 데이터를 선택하면, 쓰기 경로(400)는 정정 데이터에 상응하는 정정 패리티를 생성하고, 이들을 결합하여 정정 코드 워드를 컬럼 디코더(220)로 출력한다.
상술한 동작을 위해 쓰기 경로(400)의 데이터 선택기(420)에는 갱신 쓰기 명령 PWRITE가 인가된다. 갱신 쓰기 명령 PWRITE가 활성화되면 데이터 선택기(420)는 정정 데이터를 출력 데이터 레지스터로(340)부터 수신한다. 실시의 형태에 따라 데이터 선택기(420)는 에러 정정 디코더(330)로부터 정정 데이터를 직접 수신할 수도 있다.
데이터 선택기(420)로부터 정정 데이터를 수신한 에러 정정 인코더(430)는 정정 데이터에 상응하는 정정 패리티를 형성한다. 정정 패리티는 정정 데이터와 함께 정정 코드 워드를 형성한다.
정정 코드 워드는 입력 코드워드 레지스터(440)에 저장되고, 내부 클럭 신호에 연동하여 쓰기 회로(450)로 공급된다. 상기 입력 코드워드 레지스터(440)는 쓰기 경로(400)의 필수적인 요소는 아니나, 내부 클럭 신호에 따라 코드 워드가 처리될 때, 데이터 처리의 편의성이 확보되는 장점이 있다.
정정 코드 워드는 쓰기 회로(450)를 거쳐 컬럼 디코더(220)로 인가된다. 초기의 읽기 동작을 통해 지정 어드레스에 해당하는 셀에는 정정 코드 워드가 기록된다. 이를 통해 하나의 어드레스에 저장된 코드 워드의 에러는 정정되고, 코드 워드의 복구 동작이 수행된다.
도 6은 본 발명의 바람직한 실시예에 따라 상기 도 5의 복구 컨트롤러를 도시한 블록도이다.
도 6을 참조하면, 복구 컨트롤러에는 복구 명령이 입력되고, 복구 컨트롤러는 활성화되어 동작을 개시한다. 복구 명령에 의해 초기 어드레스의 생성을 위한 내부 읽기 명령 PREAD가 생성될 수 있다. 또한, 복구 컨트롤러에는 에러 비트수가 입력되고, 비교 동작을 통해 내부 읽기 명령 PREAD 및 갱신 쓰기 명령 PWRITE가 생성된다.
상술한 동작을 위해 복구 컨트롤러는 에러 판별기(510) 및 내부 명령 발생기(520)를 가진다.
에러 판별기(510)에는 에러 정정 디코더로부터 에러 비트수가 인가된다. 에러 판별기(510)에는 기준 에러 비트수가 설정된 상태이며, 기준 에러 비트수는 외부 단자를 통해 입력되거나, 내부에서 퓨즈 워킹 등을 통해 고정된 값을 가질 수 있다. 에러 판별기(510)에서 에러 비트수는 기준 에러 비트수와 비교된다. 비교 결과는 타이밍 제어신호 및 쓰기 제어신호로 나타난다.
내부 명령 발생기(520)는 읽기 명령 생성부(521) 및 쓰기 명령 생성부(522)를 가진다. 읽기 명령 생성부(521)는 타이밍 제어신호의 제어에 의해 내부 읽기 명령 PREAD을 생성하고, 쓰기 명령 생성부(522)는 쓰기 제어신호의 제어에 의해 갱신 쓰기 명령 PWRITE을 생성한다.
상술한 동작을 위해 내부 명령 발생기(520)는 에러 판별기(510)에 연결된다.
에러 판별기(510)에서의 비교 동작에 의해 타이밍 제어신호 및 쓰기 제어신호가 생성된다. 타이밍 제어신호는 읽기 명령 생성부(521)에 입력되어 내부 읽기 명령 PREAD의 활성화 시점을 조절한다. 셀들에 대한 읽기 동작은 지정 어드레스가 입력되고, 내부 읽기 신호 PREAD가 인가되어 해당하는 셀들로부터 데이터가 읽기 경로로 입력되는 동작이다. 또한, 읽혀진 코드 워드에 대한 에러 정정 디코딩 동작도 포함된다.
내부 읽기 명령 PREAD는 펄스파의 형태를 가지고, 파형의 상승 에지 또는 하강 에지에서 읽기 동작이 개시된다. 펄스파가 생성되는 경우를 내부 읽기 명령 PREAD의 활성화 동작이라 정의한다. 본 발명에서 읽기 동작 구간은 지정 어드레스에 대한 읽기 동작을 위해 내부 읽기 명령 PREAD가 활성화된 시점부터 다음 어드레스를 위한 내부 읽기 명령 PREAD가 생성된 시점 사이의 기간 간격을 지칭한다.
에러 비트수가 기준 에러 비트수 이상이면, 타이밍 제어신호는 내부 읽기 명령 PREAD의 동작 구간을 T1로 설정한다. 만일, 에러 비트수가 기준 에러 비트수 미만이면, 타이밍 제어신호는 내부 읽기 명령 PREAD의 동작 구간을 T2로 설정한다. 동작 구간 T1은 동작 구간 T2보다 길게 설정된다. 따라서, 에러 비트수가 특정값 이상인 지정 어드레스는 그렇치 않은 경우에 비해 긴 동작 시간 동안 유지된다.
또한, 쓰기 제어신호는 쓰기 명령 생성부(522)로 입력되고, 쓰기 제어신호에 따라 갱신 쓰기 명령 PWRITE를 선택적으로 활성화한다.
에러 비트수가 기준 에러 비트수 미만이면, 쓰기 제어신호를 통해 갱신 쓰기 명령 PWRITE는 비활성화된다. 그러나, 에러 비트수가 기준 에러 비트수 이상이면, 쓰기 제어신호를 통해 갱신 쓰기 명령 PWRITE는 활성화된다.
또한, 상기 읽기 명령 생성부(521)는 복구 명령의 활성화 이후 생성되는 내부 읽기 명령 PREAD의 발생횟수를 카운팅하고, 카운팅 횟수가 특정값에 도달하면 이를 최후 어드레스로 인식하여 내부 읽기 명령 PREAD의 생성 동작을 중지할 수 있다. 이외, 최후 어드레스의 인식은 상기 도 5의 어드레스 발생기에서도 수행될 수 있다. 예컨대, 어드레스 발생기에서는 설정된 최후 어드레스와 생성된 지정 어드레스를 비교하고, 최후 어드레스와 지정 어드레스가 동일하면, 이후의 지정 어드레스의 발생을 중지할 수 있다.
도 7은 본 발명의 바람직한 실시예에 따라 도 6의 복구 컨트롤러의 동작을 설명하기 위한 타이밍도이다.
도 6 및 도 7을 참조하면, 제1 어드레스 A1의 셀들에 저장된 제1 코드 워드의 에러 비트수는 1이고, 제2 어드레스 A2의 셀들에 저장된 제2 코드 워드의 에러 비트수는 0이라 가정한다. 또한, 제3 어드레스 A3의 셀들에 저장된 제3 코드 워드의 에러 비트수는 2라 가정한다.
내부 클럭 PCLK에 연동하여 내부 읽기 명령 PREAD가 활성화된다. 통상 읽기 동작은 내부 읽기 명령 PREAD의 상승 에지 또는 하강 에지에서 개시된다. 상기 내부 읽기 명령 PREAD는 펄스 형상을 가지고, 타이밍 제어신호의 하강 에지에서 펄스 신호로 생성되는 것으로 가정한다.
제1 어드레스 A1의 제1 코드 워드가 출력되고, 생성된 제1 에러 비트수는 1의 값을 가진다. 제1 에러 비트수는 기준 에러 비트수와 비교된다. 기준 에러 비트수는 1의 값을 가지는 것으로 가정한다.
제1 에러 비트수는 기준 에러 비트수 이상이며, 타이밍 제어신호는 내부 클럭 PCLK의 한 주기 동안 하이 레벨로 설정되고, 한 주기가 경과되면 하강한다. 타이밍 제어신호의 하강 에지에서 내부 읽기 명령 PREAD는 펄스 형상으로 활성화되는 것으로 가정하였으므로 내부 읽기 명령 PREAD는 제1 동작 구간 T1을 가진다.
비교 동작에 의해 쓰기 제어신호는 활성화된다. 쓰기 제어신호의 상승 에지에서 갱신 쓰기 명령 PWRITE가 활성화되는 것으로 가정한다. 갱신 쓰기 명령 PWRITE는 펄스 형태를 가지고, 쓰기 경로를 통한 쓰기 동작은 갱신 쓰기 명령 PWRITE의 상승 에지 또는 하강 에지에서 개시된다. 에러 비트수의 비교 동작에 의해 쓰기 제어신호는 하이 레벨로 상승하고, 쓰기 제어신호의 상승 에지에 의해 갱신 쓰기 명령 PWRITE는 활성화되어 쓰기 동작이 개시된다.
제1 어드레스 A1에 대한 읽기 동작은 제1 동작 구간 T1 동안 수행되며, 상기 동작 구간 내에 갱신 쓰기 명령 PWRITE도 활성화된다.
타이밍 제어신호의 하강 에지에서 새로운 내부 읽기 명령 PREAD가 생성되고, 생성된 내부 읽기 명령 PREAD에 의해 제2 어드레스 A2가 지정된다.
제2 어드레스 A2의 제2 코드 워드는 에러 비트를 가지지 않는다. 에러 판별기에서의 비교 동작에 의해 생성되는 타이밍 제어신호는 제1 어드레스 A1이 생성된 제1 동작 구간 T1보다 짧은 제2 동작 구간 T2를 가진다. 제2 동작 구간 T2가 종료되는 타이밍 제어신호의 하강 에지에서 새로운 내부 읽기 명령 PREAD가 활성화되어 펄스가 생성된다.
제2 어드레스 A2가 생성되는 제2 동작 구간 T2에서 비교 동작에 의해 쓰기 제어신호는 로우 레벨을 유지한다. 즉, 쓰기 제어신호는 제2 동작 구간 T2 동안 갱신 쓰기 명령 PWRITE를 활성화하지 않는다.
제2 동작 구간 T2가 종료되면, 타이밍 제어신호의 하강 에지에서 새로운 내부 읽기 명령 PREAD가 생성되고, 새로운 제3 어드레스 A3을 생성하고, 읽기 동작이 개시된다. 제3 어드레스 A3에 할당된 제3 코드 워드에는 2개의 에러 비트수가 있으므로, 타이밍 제어신호는 읽기 명령 생성부(521)를 통해 제1 동작 구간 T1의 동작 기간을 가지도록 내부 읽기 명령 PREAD를 제어한다. 또한, 에러 판별기(510)의 비교 동작에 의해 쓰기 제어신호는 쓰기 명령 생성부(522)를 통해 갱신 쓰기 명령 PWRITE를 활성화한다.
도 7에서 만약 기준 에러 비트수가 2의 값을 가지는 경우에는 A1 어드레스의 에러 비트수가 기준 에러 비트수보다 작으므로 어드레스 A2와 같이 갱신 쓰기 명령이 활성화되지 않는다.
상술한 동작을 통해 에러 비트수가 기준 에러 비트수 이상이면, 읽기 명령 제어부(521)를 제어하는 타이밍 제어신호는 내부 읽기 명령 PREAD가 동작하는 동작 구간인 제1 동작 구간 T1을 설정한다. 제1 동작 구간 T1은 에러 비트수가 기준 에러 비트수 미만인 경우에 설정되는 제2 동작 구간 T2보다 길게 설정된다. 상기 제1 동작 구간 T1 내에 갱신 쓰기 명령 PWRITE가 활성화된다. 반면, 제2 동작 구간 T2 내에서는 갱신 쓰기 명령 PWRITE는 활성화되지 않는다.
상기 도 7에서 타이밍 제어신호와 쓰기 제어신호의 파형은 내부 읽기 명령 PREAD 및 갱신 쓰기 명령 PWRITE의 생성을 위한 예시에 불과하다. 타이밍 제어신호가 내부 읽기 명령 PREAD를 생성할 때, 에러 비트수의 비교 결과에 따라 다른 동작 구간을 생성할 수 있다면 다른 형태의 파형이 생성되어도 무방하다. 또한, 쓰기 제어신호가 에러 비트수의 비교 결과에 따라 갱신 쓰기 명령 PWRITE를 선택적으로 생성할 수 있는 구성이라면 여하한 형태라도 가능할 것이다.
도 8은 본 발명의 바람직한 실시예에 따라 본 발명의 메모리의 동작을 설명하기 위한 타이밍도이다.
도 5 및 도 8을 참조하면, 복구 명령이 복구 컨트롤러로 입력된다. 복구 명령을 수신한 복구 컨트롤러(500)는 활성화되고, 내부 읽기 명령 PREAD를 활성화한다. 생성된 내부 읽기 명령 PREAD는 어드레스 발생기(600)에 입력되고, 읽기 경로(300)를 활성화한다.
입력된 내부 읽기 명령 PREAD에 의해 어드레스 발생기(600)는 순차적으로 지정 어드레스들 A1, A2, A3, A4를 생성한다. 실시의 형태에 따라 메모리의 외부로부터 시작 어드레스가 어드레스 발생기(600)로 입력될 수 있다. 다만, 생성되는 지정 어드레스들의 활성화 기간은 다른 값을 가질 수 있다. 즉, 지정 어드레스에 할당된 코드 워드의 갱신 동작이 수행되는 경우, 해당하는 지정 어드레스가 공급되는 기간은 제1 동작 구간 T1을 가지고, 갱신 동작이 수행되지 않는다면, 지정 어드레스가 공급되는 기간은 제1 동작 구간 T1보다 짧은 제2 동작 구간 T2를 가진다.
본 실시예에서는 설명의 편의를 위해 제1 어드레스 A1에 할당된 제1 코드 워드의 에러 비트수는 1로 가정하고, 제2 어드레스 A2에 할당된 제2 코드 워드의 에러 비트수는 0으로 가정하며, 제3 어드레스 A3에 할당된 제3 코드 워드의 에러 비트수는 2로 가정하며, 제4 어드레스 A4에 할당된 제4 코드 워드의에러 비트수는 1로 가정한다. 복구 컨트롤러(500)에 지정된 기준 에러 비트수는 1인 것으로 가정한다.
내부 읽기 명령 PREAD가 활성화되고, 제1 어드레스 A1이 생성되면, 엑세스부(200)는 제1 어드레스 A1에 저장된 제1 코드 워드를 출력한다. 엑세스부(200)로부터 출력되는 제1 코드 워드는 내부 읽기 명령 PREAD에 의해 활성화된 읽기 경로(300)로 입력된다. 제1 코드 워드는 제1 데이터와 제1 패리티로 구성된다.
읽기 경로(300)의 에러 정정 디코더(330)는 제1 패리티를 이용하여 제1 데이터에 대한 정정 동작을 수행하고, 제1 코드 워드의 에러 비트수인 제1 에러 비트수를 생성한다. 따라서, 에러 정정 디코더(330)는 제1 정정 데이터 및 제1 에러 비트수를 출력한다. 제1 정정 데이터는 출력 데이터 레지스터(340)에 입력되고, 제1 에러 비트수는 복구 컨트롤러(500)에 입력된다.
복구 컨트롤러(500)에서는 제1 에러 비트수와 기준 에러 비트수에 대한 비교 동작이 수행된다. 1의 값을 가지는 제1 에러 비트수는 1의 값을 가지는 기준 에러 비트수 이상이므로 내부 쓰기 명령 PWRITE가 활성화된다. 내부 쓰기 명령 PWRITE에 의해 쓰기 경로(400)는 활성화되고, 쓰기 경로(400) 내에서 제1 정정 데이터에 상응하는 새로운 제1 정정 패리티가 생성되고, 제1 정정 데이터 및 제1 정정 패리티로 구성된 제1 정정 코드 워드가 제1 어드레스의 셀들에 기록되어 코드 워드의 갱신작업이 수행된다. 상기 동작에서 쓰기 경로(400)에 의해 선택되는 제1 정정 데이터는 에러 정정 디코더(330)로부터 직접 입력될 수 있다.
또한, 복구 컨트롤러(500)에서는 비교 동작을 통해 새로운 내부 읽기 명령 PREAD이 생성되는 시간을 지연시키고, 지연된 시간 동안 제1 어드레스 A1이 계속 출력되고, 지연 시간이 경과된 후, 내부 읽기 명령이 재활성화된다. 즉, 비교 동작에 의해 내부 읽기 명령 PWRITE가 활성화되면, 제1 어드레스 A1은 내부 쓰기 동작이 완료될 때까지 엑세스부(200)에 공급된다. 제1 어드레스 A1의 유지를 위해 새로운 내부 읽기 명령 PREAD가 재활성화되는 시점은 지연되고, 제1 어드레스 A1이 공급되는 기간은 제1 동작 구간 T1이 된다.
제1 어드레스 A1이 제1 동작 구간 T1 동안 공급된 후, 새로운 내부 읽기 명령 PREAD가 활성화되고, 새로운 내부 읽기 명령 PREAD에 의해 어드레스 발생기(600)는 제2 어드레스 A2를 생성한다. 상기 제2 어드레스 A2는 제1 어드레스 A1에 연속하여 후행함이 바람직하다. 상기 제2 어드레스 A2는 엑세스부(200)로 인가되고, 읽기 동작이 개시된다.
제2 어드레스의 셀들에 저장된 제2 코드 워드는 에러 비트수가 없는 것으로 가정하였다. 읽기 동작을 통해 제2 코드 워드는 읽기 경로(300)로 입력된다. 읽기 경로(300)에서 제2 코드 워드에 대한 에러 정정 디코딩 동작이 수행된다. 에러 정정 디코더(330)에서는 제2 패리티를 이용하여 제2 코드 워드의 에러 비트수가 확인되고, 제2 데이터에 대한 에러 정정 동작이 수행된다. 제2 코드 워드의 에러 비트수는 0으로 가정하였으므로 제2 에러 비트수는 0이고, 제2 정정 데이터는 제2 데이터와 동일하다.
제2 에러 비트수는 기준 에러 비트수와 비교되고, 갱신 쓰기 명령 PWRITE는 비활성화된다. 따라서, 쓰기 경로(400)는 제2 정정 데이터를 선택하지 않고, 제2 정정 데이터에 대한 쓰기 동작이 수행되지 않는다. 따라서, 제2 어드레스 A2의 셀들에 대한 읽기 동작이 중지되고, 새로운 제3 어드레스 A3에 대한 읽기 동작이 수행될 필요가 있다. 이를 위해 복구 컨트롤러는 제1 동작 구간 T1보다 짧은 제2 동작 구간 T2를 가지도록 새로운 내부 읽기 명령 PREAD를 생성한다.
즉, 제2 어드레스 A2의 공급을 위한 내부 읽기 명령 PREAD가 생성된 후 새로운 어드레스의 지정을 위한 새로운 내부 읽기 명령 PREAD가 생성되는 동작 구간은 T2로 설정된다.
새롭게 생성된 내부 읽기 명령 PREAD를 수신한 어드레스 발생기(600)는 제3 어드레스 A3을 생성한다. 생성된 제3 어드레스 A3은 엑세스부(200)로 인가된다. 어드레스 A3에 해당되는 셀들에 저장된 제3 코드 워드는 2 비트의 에러 비트수를 가지는 것으로 가정하였다.
엑세스부(200)를 통해 셀 어레이(100)의 제3 어드레스 A3으로부터 출력된 제3 코드 워드는 읽기 경로(300)로 입력된다. 읽기 경로(300)의 에러 정정 디코더(330)는 제3 코드 워드의 제3 패리티를 이용하여 제3 데이터를 정정한다. 이를 통해 제3 정정 데이터가 형성된다. 또한, 제3 패리티를 통해 제3 코드 워드의 에러 비트수는 형성된다. 형성된 에러 비트수는 2의 값을 가진다.
읽기 경로(300)에서 형성된 에러 비트수는 복구 컨트롤러(500)로 입력되고, 기준 에러 비트수와 비교된다. 에러 비트수가 기준 에러 비트수 이상의 값을 가지므로 새로운 내부 읽기 명령 PREAD는 제1 동작 구간 T1이 경과된 후 발생된다. 예컨대, 제3 어드레스 A3의 생성에 사용된 내부 읽기 명령 PREAD이 활성화된 시점으로부터 다음 어드레스의 발생을 위한 내부 읽기 명령 PREAD가 활성화되는 시점까지의 시간 간격은 제1 동작 구간 T1의 값을 가진다. 이를 통해 제3 코드 워드의 갱신 동작이 수행되는 시간이 확보된다.
또한, 복구 컨트롤러(500)는 갱신 쓰기 명령 PWRITE를 활성화한다. 복구 컨트롤러(500)는 갱신 쓰기 명령 PWRITE를 출력하고, 쓰기 경로(400)는 갱신 쓰기 명령 PWRITE에 의해 제3 정정 데이터를 선택한다. 쓰기 경로(400)로 입력된 제3 정정 데이터는 에러 정정 인코더(430)로 입력되고, 에러 정정 인코더(430)에서는 제3 정정 데이터에 상응하는 제3 정정 패리티가 생성된다. 제3 정정 데이터와 제3 정정 패리티는 제3 정정 코드 워드를 형성한다.
제3 정정 코드 워드는 엑세스부(200)의 컬럼 디코더(220)를 통해 제3 어드레스 A3의 셀에 기록된다. 이를 통해 제3 어드레스 A3에 해당하는 셀들의 정보가 갱신 또는 복구된다.
내부 읽기 명령 PWRITE가 활성화된 이후, 복구 컨트롤러(500)에서는 새로운 내부 읽기 명령 PREAD가 활성화되고, 내부 읽기 명령 PREAD를 수신한 어드레스 발생기(600)는 제4 어드레스 A4를 생성한다. 생성된 제4 어드레스 A4는 엑세스부(200)로 인가되고, 읽기 동작이 수행된다.
제4 어드레스 A4에 할당된 제4 코드 워드는 에러 비트를 가지지 않는 것으로 가정하였으므로, 이에 대한 읽기 동작 및 데이터 처리는 제2 어드레스 A2에 대한 동작과 동일하다.
상기 도 7 및 도 8에서 구간 T1에 비해 구간 T2가 짧은 것으로 도시된다. 이는 구간 T2에서 읽기 동작 만이 수행되는데 기인한다. 다만, 실시의 형태에 따라 구간 T2에서 읽기 동작 만 수행된다 하더라도, 구간 T2는 구간 T1과 동일한 시간 간격을 가지도록 설정될 수 있다.
본 실시예에서는 복구 명령에 의해 복구 컨트롤러(500)가 활성화된다. 복구 컨트롤러(500)가 동작하는 기간 내에 어레 비트수에 대한 비교동작이 수행되고, 내부 읽기 명령 PREAD 또는 내부 쓰기 명령 PWRITE가 생성된다. 특히, 복구 명령에 의해 활성화된 복구 컨트롤러(500)가 메모리 셀에 대한 정보의 갱신 동작을 제어하므로 외부에서 별도의 읽기 명령이 인가되지 않는다. 또한, 한번의 복구 명령에 의해 복수개의 어드레스들이 순차적으로 생성된다. 복수개의 어드레스에 할당된 코드 워드들은 한번의 복구 명령의 인가에 의해 갱신될 수 있다.
본 실시예에서 코드 워드의 갱신 또는 복구 동작은 선택적으로 수행된다. 즉, 코드 워드 내에 에러 비트수가 패리티를 통해 파악되고, 에러 비트수는 기준 에러 비트수와 비교된다. 기준 에러 비트수 이상의 에러 비트를 가지는 코드 워드에 대한 갱신 동작이 수행되며, 기준 에러 비트수 미만의 에러 비트수를 가지는 코드 워드에 대해서는 갱신 동작이 수행되지 않는다.
갱신 동작이 수행되는 어드레스의 셀들에 대해서는 쓰기 동작이 수행된다. 이를 위해 갱신 쓰기 명령 PWRITE가 사용되며, 이는 메모리의 외부에서 인가되는 명령이 아니며, 메모리의 내부에서 생성되는 내부 명령이다. 상기 갱신 쓰기 명령 PWRITE는 에러 비트수와 기준 에러 비트수와의 비교에 의해 생성된다. 에러 비트수가 기준 에러 비트수 이상이면 갱신 쓰기 명령 PWRITE는 활성화된다. 즉, 쓰기 동작은 모든 어드레스에 대해 일률적으로 수행되지 않으며, 코드 워드가 가지는 에러 비트수에 의해 결정된다. 이는 하나의 어드레스에 대해 읽기 동작과 쓰기 동작이 하나의 세트로 반드시 수행될 필요가 없으며, 선택적으로 수행됨을 의미한다.
코드 워드에 대한 갱신 동작 또는 복구 동작은 해당하는 어드레스에 대한 읽기 동작과 쓰기 동작으로 구성된다. 갱신 동작은 모든 어드레스에 대해 일률적으로 발생되지 않으며, 에러 비트수에 따라 선택적으로 수행된다. 어드레스의 코드 워드에 대한 읽기 동작을 통해 파악된 에러 비트수가 기준 에러 비트수 미만이면, 읽기 동작만 수행되고 쓰기 동작은 수행되지 않는다. 즉, 코드 워드의 갱신 동작이 수행되지 않는다.
선택적 갱신 동작을 위해 내부 읽기 명령 PREAD의 동작 구간은 하나의 값을 가지지 못하고, 2개의 값을 가진다. 본 실시예에서 내부 읽기 명령 PREAD의 동작 구간은 펄스 형태의 파형에서 상승 에지 또는 하강 에지에서 지정 어드레스를 활성화하는 시점부터 다음 어드레스의 발생을 위해 새로운 내부 읽기 명령 PREAD의 펄스가 발생되는 기간 간격으로 정의한다. 갱신 동작을 위해 내부 읽기 명령 PREAD는 제1 동작 구간 T1을 가지고, 갱신 동작이 필요없는 경우, 내부 읽기 명령 PREAD는 제2 동작 구간 T2를 가진다. 제1 동작 구간 T1은 제2 동작 구간 T2에 비해 큰 값을 가지며, 제1 동작 구간 내에서 지정 어드레스에 대한 갱신 쓰기 명령 PWRITE가 활성화된다.
상술한 동작을 통해 메모리는 복구 명령이 인가되면, 순차적으로 지정 어드레스를 생성하고, 생성된 지정 어드레스에 대한 읽기 동작 및 비교 동작을 수행한다. 비교 동작은 지정 어드레스의 코드 워드 내의 에러 비트수과 설정된 기준 에러 비트수를 비교하는 동작이다. 비교 결과에 의해 기준 에러 비트수 이상의 에러 비트를 가지는 코드 워드는 갱신되고, 쓰기 경로를 통해 지정 어드레스에 재기입된다. 이를 통해 메모리 셀의 복구 동작이 이루어진다. 또한, 순차적으로 생성되는 지정 어드레스에서 기준 에러 비트수 미만의 에러를 가지는 코드 워드에 대해서는 쓰기 동작이 수행되지 않는다. 따라서, 메모리의 복구 동작은 효과적으로 수행될 수 있다.
100 : 셀 어레이 200 : 엑세스부
210 : 로우 디코더 220 : 컬럼 디코더
300 : 읽기 경로 310 : 읽기 회로
320 : 출력 코드워드 레지스터 330 : 에러 정정 디코더
340 : 출력 데이터 레지스터 400 : 쓰기 경로
410 : 입력 데이터 레지스터 420 : 데이터 선택기
430 : 에러 정정 인코더 440 : 입력 코드워드 레지스터
450 : 쓰기 회로 500 : 복구 컨트롤러
600 : 어드레스 발생기
210 : 로우 디코더 220 : 컬럼 디코더
300 : 읽기 경로 310 : 읽기 회로
320 : 출력 코드워드 레지스터 330 : 에러 정정 디코더
340 : 출력 데이터 레지스터 400 : 쓰기 경로
410 : 입력 데이터 레지스터 420 : 데이터 선택기
430 : 에러 정정 인코더 440 : 입력 코드워드 레지스터
450 : 쓰기 회로 500 : 복구 컨트롤러
600 : 어드레스 발생기
Claims (19)
- 복구 명령에 의해 복구 동작이 수행되는 지정 어드레스를 생성하는 단계;
내부 읽기 명령의 활성화에 의해 상기 지정 어드레스의 셀들로부터 데이터 및 패리티를 가지는 코드 워드에 대한 읽기 동작을 수행하여 상기 코드 워드에 대한 에러 비트수와 정정 데이터를 생성하는 단계;
상기 코드 워드의 상기 에러 비트수를 기준 에러 비트수와 비교하는 단계;
상기 비교 결과에 따라 갱신 쓰기 명령을 활성화하는 단계;
상기 활성화된 갱신 쓰기 명령에 의해 상기 정정 데이터를 선택하고, 상기 정정 데이터에 따른 정정 패리티를 생성하여 상기 정정 데이터와 정정 패리티로 구성된 정정 코드 워드를 생성하는 단계; 및
상기 정정 코드 워드를 상기 지정 어드레스에 재기입하는 단계를 포함하고,
상기 갱신 쓰기 명령이 활성화된 기간 내에 새로운 내부 읽기 명령을 생성하여 새로운 어드레스에 대한 읽기 동작을 수행하며,
상기 갱신 쓰기 명령의 활성화는 상기 에러 비트수가 상기 기준 에러 비트수 이상인 경우에 수행되는 것을 특징으로 하는 메모리의 데이터 복구방법. - 삭제
- 삭제
- 삭제
- 제1항에 있어서, 상기 에러 비트수가 상기 기준 에러 비트수 미만이면, 상기 갱신 쓰기 명령은 활성화되지 않으며, 상기 새로운 내부 읽기 명령이 생성되는 것을 특징으로 하는 메모리의 데이터 복구방법.
- 제5항에 있어서, 상기 새로운 내부 읽기 명령에 의해 새로운 어드레스가 지정되는 것을 특징으로 하는 메모리의 데이터 복구방법.
- 삭제
- 삭제
- 제1항에 있어서, 상기 정정 코드 워드를 상기 지정 어드레스에 재기입하는 단계 이후에 상기 지정 어드레스가 최후 어드레스인지를 판단하는 단계를 더 포함하는 것을 특징으로 하는 메모리의 데이터 복구방법.
- 제9항에 있어서, 상기 지정 어드레스가 상기 최후 어드레스에 해당되지 않으면, 새로운 어드레스를 지정하는 것을 특징으로 하는 메모리의 데이터 복구방법.
- 복수개의 셀들이 배치된 셀 어레이;
상기 셀 어레이를 엑세스하여 지정 어드레스에 할당된 셀들에 데이터 및 패리티로 구성된 코드 워드를 기록하거나 출력하기 위한 엑세스부;
상기 엑세스부에 연결되고, 내부 읽기 명령에 의해 상기 셀들로부터 출력되는 상기 데이터에 대한 에러 정정을 수행하여 정정 데이터를 형성하고, 상기 패리티를 이용하여 상기 코드워드의 에러 비트수를 생성하는 읽기 경로;
상기 읽기 경로로부터 상기 에러 비트수를 수신하고, 기준 에러 비트수와 비교하여 상기 내부 읽기 명령을 생성하거나 상기 셀 어레이의 상기 지정 어드레스에 쓰기 동작을 위한 갱신 쓰기 명령을 생성하기 위한 복구 컨트롤러;
상기 엑세스부에 연결되고, 상기 읽기 경로와 병렬로 배치되며, 상기 갱신 쓰기 명령에 의해 상기 정정 데이터를 수신하고, 정정 패리티를 생성하여 정정 코드 워드를 상기 엑세스부에 출력하기 위한 쓰기 경로; 및
상기 복구 컨트롤러로부터 상기 내부 읽기 명령을 수신하여 상기 지정 어드레스를 생성하기 위한 어드레스 발생기를 포함하고,
상기 복구 컨트롤러는
상기 에러 비트수와 상기 기준 에러 비트수를 비교하여 타이밍 제어신호와 쓰기 제어신호를 생성하기 위한 에러 판별기; 및
상기 타이밍 제어신호를 수신하여 상기 내부 읽기 명령을 생성하고, 상기 쓰기 제어신호를 수신하여 상기 갱신 쓰기 명령을 생성하기 위한 내부 명령 발생기를 포함하며,
어드레스 발생기는 상기 내부 읽기 명령에 따라 상기 지정 어드레스를 순차적으로 생성하는 것을 특징으로 하는 비휘발성 메모리. - 제11항에 있어서, 상기 읽기 경로는
상기 엑세스부로부터 상기 지정 어드레스의 상기 코드 워드를 수신하고 증폭하기 위한 읽기 회로; 및
상기 읽기 회로에서 증폭된 코드 워드에 대한 에러 정정 디코딩 동작을 통해 에러 비트수와 에러가 정정된 정정 데이터를 형성하기 위한 에러 정정 디코더를 포함하는 것을 특징으로 하는 비휘발성 메모리. - 제11항에 있어서, 상기 복구 컨트롤러는 상기 에러 비트수가 상기 기준 에러 비트수 이상이면, 상기 갱신 쓰기 명령을 활성화하는 것을 특징으로 하는 비휘발성 메모리.
- 제13항에 있어서, 상기 복구 컨트롤러는 상기 지정 어드레스가 인가되는 제1 동작 구간을 설정하고, 상기 제1 동작 구간 내에 상기 갱신 쓰기 명령이 활성화되는 것을 특징으로 하는 비휘발성 메모리.
- 제14항에 있어서, 상기 제1 동작 구간 경과 후, 새로운 내부 읽기 명령이 생성되고, 상기 어드레스 발생기는 새로운 어드레스를 지정하는 것을 특징으로 하는 비휘발성 메모리.
- 삭제
- 제11항에 있어서, 상기 내부 명령 발생기는
상기 타이밍 제어신호를 수신하고, 상기 에러 비트수가 상기 기준 에러 비트수 이상이면, 상기 내부 읽기 명령이 활성화되는 시점부터 제1 동작 구간이 경과된 후 새로운 내부 읽기 명령을 생성하고, 상기 에러 비트수가 상기 기준 에러 비트수 미만이면, 상기 내부 읽기 명령이 활성화되는 시점부터 제1 동작 구간과 같거나 짧은 제2 동작 구간이 경과된 후 상기 새로운 내부 읽기 명령을 생성하고 읽기 명령 생성부; 및
상기 쓰기 제어신호를 수신하고, 상기 에러 비트수가 상기 기준 에러 비트수 이상이면 갱신 쓰기 명령을 활성화하는 쓰기 명령 제어부를 포함하는 것을 특징으로 하는 비휘발성 메모리. - 제17항에 있어서, 상기 갱신 쓰기 명령의 활성화는 상기 제1 동작 구간 내에 이루어지는 것을 특징으로 하는 비휘발성 메모리.
- 제11항에 있어서, 상기 쓰기 경로는
상기 갱신 쓰기 명령에 의해 상기 정정 데이터를 선택적으로 수신하기 위한 데이터 선택기;
상기 데이터 선택기로부터 공급되는 상기 정정 데이터에 상응하는 상기 정정 패리티를 생성하기 위한 에러 정정 인코더; 및
상기 정정 패리티 및 상기 정정 데이터로 구성된 정정 코드 워드를 상기 엑세스부에 공급하기 위한 쓰기 회로를 포함하는 것을 특징으로 하는 비휘발성 메모리.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220158150A KR102610253B1 (ko) | 2022-11-23 | 2022-11-23 | 데이터 복구 방법 및 데이터 복구를 수행하는 비휘발성 메모리 |
PCT/KR2022/018945 WO2024111721A1 (ko) | 2022-11-23 | 2022-11-28 | 데이터 복구 방법 및 데이터 복구를 수행하는 비휘발성 메모리 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220158150A KR102610253B1 (ko) | 2022-11-23 | 2022-11-23 | 데이터 복구 방법 및 데이터 복구를 수행하는 비휘발성 메모리 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102610253B1 true KR102610253B1 (ko) | 2023-12-06 |
Family
ID=89163900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220158150A KR102610253B1 (ko) | 2022-11-23 | 2022-11-23 | 데이터 복구 방법 및 데이터 복구를 수행하는 비휘발성 메모리 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102610253B1 (ko) |
WO (1) | WO2024111721A1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080103783A (ko) * | 2007-05-25 | 2008-11-28 | 삼성전자주식회사 | 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법 |
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 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
KR20170037159A (ko) * | 2015-09-25 | 2017-04-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5134616A (en) * | 1990-02-13 | 1992-07-28 | International Business Machines Corporation | Dynamic ram with on-chip ecc and optimized bit and word redundancy |
JP3272903B2 (ja) * | 1995-03-16 | 2002-04-08 | 株式会社東芝 | 誤り訂正検出回路と半導体記憶装置 |
JP4627411B2 (ja) * | 2003-05-20 | 2011-02-09 | ルネサスエレクトロニクス株式会社 | メモリ装置及びメモリのエラー訂正方法 |
-
2022
- 2022-11-23 KR KR1020220158150A patent/KR102610253B1/ko active IP Right Grant
- 2022-11-28 WO PCT/KR2022/018945 patent/WO2024111721A1/ko unknown
Patent Citations (4)
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 |
KR20080103783A (ko) * | 2007-05-25 | 2008-11-28 | 삼성전자주식회사 | 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법 |
KR20140062332A (ko) * | 2012-11-14 | 2014-05-23 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
KR20170037159A (ko) * | 2015-09-25 | 2017-04-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2024111721A1 (ko) | 2024-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4660353B2 (ja) | 記憶媒体再生装置 | |
JP4664208B2 (ja) | 半導体メモリおよび半導体メモリの動作方法 | |
JP5559778B2 (ja) | フラッシュメモリにおける高速低電力のデータ読み出し | |
US7778107B2 (en) | Decoding control with address transition detection in page erase function | |
US20070204098A1 (en) | Non-volatile memory having a multiple block erase mode and method therefor | |
JP2001014873A (ja) | 不揮発性半導体記憶装置 | |
JP2007305210A (ja) | 半導体記憶装置 | |
KR102619353B1 (ko) | 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리 | |
US20030086319A1 (en) | Semiconductor device | |
JP5101123B2 (ja) | 半導体メモリ装置のバースト読み出し回路及びバーストデータ出力方法 | |
US6421276B1 (en) | Method and apparatus for controlling erase operations of a non-volatile memory system | |
US11443827B2 (en) | Memory device and method for error detection | |
JPH0383299A (ja) | 半導体記憶装置 | |
KR102610253B1 (ko) | 데이터 복구 방법 및 데이터 복구를 수행하는 비휘발성 메모리 | |
US6430090B1 (en) | Read device and read method for semiconductor memory | |
US10636510B2 (en) | Fuse rupture method and semiconductor device related to a rupture operation | |
KR20240078769A (ko) | 고성능 및 고신뢰성을 얻기 위한 메모리 및 메모리의 동작 방법 | |
US20190311764A1 (en) | Semiconductor system and semiconductor device | |
TWI698876B (zh) | 資料寫入方法及非揮發性記憶體 | |
US6298007B1 (en) | Method and apparatus for eliminating false data in a page mode memory device | |
KR20090048108A (ko) | 불휘발성 메모리 장치와 그 독출방법 | |
KR100317486B1 (ko) | 자동복구 기능을 가지는 플래시 메모리 | |
TWI553463B (zh) | 記憶體裝置及其控制方法 | |
CN116343863A (zh) | 用于差分电阻式存储器的写入方法 | |
JP3541427B2 (ja) | フラッシュ・メモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |