KR20210075930A - Memory error detection and correction - Google Patents
Memory error detection and correction Download PDFInfo
- Publication number
- KR20210075930A KR20210075930A KR1020210076475A KR20210076475A KR20210075930A KR 20210075930 A KR20210075930 A KR 20210075930A KR 1020210076475 A KR1020210076475 A KR 1020210076475A KR 20210076475 A KR20210076475 A KR 20210076475A KR 20210075930 A KR20210075930 A KR 20210075930A
- Authority
- KR
- South Korea
- Prior art keywords
- syndrome
- coupled
- ecc
- circuit
- memory
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 162
- 238000012937 correction Methods 0.000 title claims description 66
- 238000001514 detection method Methods 0.000 title description 24
- 208000011580 syndromic disease Diseases 0.000 claims description 235
- 238000000034 method Methods 0.000 claims description 149
- 238000004364 calculation method Methods 0.000 claims description 98
- 230000005291 magnetic effect Effects 0.000 claims description 29
- 238000003491 array Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 description 64
- 238000010586 diagram Methods 0.000 description 28
- 239000011159 matrix material Substances 0.000 description 17
- 125000004122 cyclic group Chemical group 0.000 description 6
- 238000005265 energy consumption Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000000696 magnetic material Substances 0.000 description 2
- 230000005415 magnetization Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000003302 ferromagnetic material Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 230000000191 radiation effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
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
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/102—Error in check bits
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/1653—Address circuits or decoders
- G11C11/1655—Bit-line or column circuits
-
- 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/1677—Verifying 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/025—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in signal lines
-
- 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/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/44—Indication or identification of errors, e.g. for repair
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/31—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining coding for error detection or correction and efficient use of the spectrum
-
- 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/161—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 details concerning the memory cell structure, e.g. the layers of the ferromagnetic memory cell
-
- 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
- G11C2029/1202—Word line control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Mram Or Spin Memory Techniques (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
본 발명은 메모리 에러 검출 및 정정에 관한 것이다.The present invention relates to memory error detection and correction.
메모리는 디지털 시스템에 정보(데이터 및 프로그램 모두)를 저장하는 데 널리 사용된다. 시스템 동작 중에, 메모리에 저장되는 정보(비트)가 여러 가지 이유로 손상될 수 있다. 손상의 한 가지 가능한 원인은 메모리 내부 및 메모리 외부 모두의 환경적 사건 때문이다. 이러한 외부 사건 중 하나는 입자 부딪힘이다. 환경적 사건 외에 비트의 손상(고장)을 유발하는 다른 이유가 있다. 비트가 손상되면, 저장되는 정보가 손실되어 시스템 장애 또는 데이터 손실이 발생한다. 따라서 메모리 내용의 무결성을 보호하는 것이 중요한다. 메모리 콘텐츠를 손상으로부터 보호하기 위한 다양한 수단이 사용되어 왔다. 에러 정정 코드(Error Correction Codes; ECC)는 코드 워드(데이터 필드 및 검사 비트 모두)에서 에러를 검출할 수 있고, 에러를 정정할 수도 있다는 장점이 있다.Memory is widely used to store information (both data and programs) in digital systems. During system operation, information (bits) stored in memory can be corrupted for various reasons. One possible cause of corruption is environmental events both inside and outside of memory. One such external event is particle collision. Besides environmental events, there are other reasons that cause bit damage (failure). If a bit is corrupted, the information being stored is lost, resulting in system failure or data loss. It is therefore important to protect the integrity of the memory contents. Various means have been used to protect memory contents from corruption. Error Correction Codes (ECC) have the advantage of being able to detect errors in code words (both data fields and check bits) and correct errors.
본 개시의 양태는 첨부 도면과 함께 다음의 상세한 설명을 읽으면 가장 잘 이해할 수 있다. 본 산업계에서의 표준 관행에 따라, 다양한 피처는 일정한 비율로 도시되지 않았다는 점에 유의한다. 실제로, 다양한 피처의 치수는 설명의 명료성을 위해 임의로 증가 또는 감소될 수 있다. 또한, 도면은 본 발명의 실시예의 예시로서 예시적인 것이며 제한하려는 것이 아니다.
도 1은, 일 실시예에 따라 전용 및 단순화된 ECC 회로를 각각 갖는 복수의 MRAM 어레이를 갖는 예시적인 MRAM 디바이스를 일반적으로 나타내는 블록도이다.
도 2는 일 실시예에 따른 MRAM 어레이 내의 예시적인 MRAM 셀을 일반적으로 도시하는 블록도이다.
도 3은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스를 일반적으로 도시하는 블록도이다.
도 4는 일 실시예에 따른 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.
도 5는 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스를 일반적으로 도시하는 블록도이다.
도 6은 일 실시예에 따른 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.
도 7은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스를 일반적으로 도시하는 블록도이다.
도 8은 일 실시예에 따른 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.
도 9는 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스를 일반적으로 도시하는 블록도이다.
도 10은 일 실시예에 따른 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.
도 11은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스를 일반적으로 도시하는 블록도이다.
도 12는 일 실시예에 따른 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.
도 13은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스를 일반적으로 도시하는 블록도이다.
도 14는 일 실시예에 따른 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.
도 15는 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스를 일반적으로 도시하는 블록도이다.
도 16은 일 실시예에 따른 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.
도 17은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스를 일반적으로 도시하는 블록도이다.
도 18은 일 실시예에 따른 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.
도 19는 일 실시예에 따른 계층적 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하는 방법의 흐름도이다.Aspects of the present disclosure may be best understood by reading the following detailed description in conjunction with the accompanying drawings. It is noted that, in accordance with standard practice in the industry, various features are not drawn to scale. Indeed, the dimensions of various features may be arbitrarily increased or decreased for clarity of description. Moreover, the drawings are illustrative by way of illustration of embodiments of the invention and are not intended to be limiting.
1 is a block diagram generally illustrating an exemplary MRAM device having a plurality of MRAM arrays each having dedicated and simplified ECC circuitry in accordance with one embodiment.
2 is a block diagram generally illustrating an exemplary MRAM cell within an MRAM array in accordance with one embodiment.
3 is a block diagram generally illustrating an exemplary ECC logic process for MRAM error correction in accordance with one embodiment.
4 is a flowchart of a method of correcting an MRAM error using an ECC logic process according to one embodiment.
5 is a block diagram generally illustrating an exemplary ECC logic process for MRAM error correction in accordance with one embodiment.
6 is a flowchart of a method of correcting an MRAM error using an ECC logic process according to one embodiment.
7 is a block diagram generally illustrating an exemplary ECC logic process for MRAM error correction in accordance with one embodiment.
8 is a flowchart of a method of correcting an MRAM error using an ECC logic process according to an embodiment.
9 is a block diagram generally illustrating an exemplary ECC logic process for MRAM error correction in accordance with one embodiment.
10 is a flowchart of a method of correcting an MRAM error using an ECC logic process according to one embodiment.
11 is a block diagram generally illustrating an exemplary ECC logic process for MRAM error correction in accordance with one embodiment.
12 is a flowchart of a method of correcting an MRAM error using an ECC logic process according to one embodiment.
13 is a block diagram generally illustrating an example ECC logic process for MRAM error correction in accordance with one embodiment.
14 is a flowchart of a method of correcting an MRAM error using an ECC logic process according to one embodiment.
15 is a block diagram generally illustrating an example ECC logic process for MRAM error correction in accordance with one embodiment.
16 is a flowchart of a method of correcting an MRAM error using an ECC logic process according to an embodiment.
17 is a block diagram generally illustrating an example ECC logic process for MRAM error correction in accordance with one embodiment.
18 is a flowchart of a method of correcting an MRAM error using an ECC logic process according to one embodiment.
19 is a flowchart of a method of correcting an MRAM error using a hierarchical ECC logic process according to an embodiment.
아래의 개시는 본 개시의 다양한 피처를 구현하기 위한 많은 다양한 실시예 또는 예시를 제공한다. 본 개시를 간단히 하기 위해 구성 엘리먼트 및 배치 중 소정의 예가 이하에 설명된다. 물론, 이는 단지 예일뿐이며, 한정하려는 의도가 아니다. 예를 들어, 다음의 설명에서 제2 피처 상의 또는 그 위의 제1 피처의 형성은, 제1 및 제2 피처가 직접 컨택하여 형성되는 실시예를 포함할 수도 있고, 또한 부가적인 피처가 제1 및 제2 피처 사이에 형성되어 제1 및 제2 피처가 직접 컨택하지 않는 실시예를 포함할 수도 있다. 또한, 본 개시는 다양한 예에서 참조 번호 및/또는 문자를 반복할 수 있다. 이러한 반복은 단순성 및 명료성을 위한 것이며, 논의되는 다양한 실시예 및/또는 구성 간의 관계를 그 자체로 나타내지 않는다.The disclosure below provides many different embodiments or examples for implementing various features of the disclosure. Certain examples of constituent elements and arrangements are described below to simplify the present disclosure. Of course, this is merely an example and is not intended to be limiting. For example, in the following description the formation of a first feature on or over a second feature may include embodiments in which the first and second features are formed in direct contact, and wherein the additional features are first and embodiments formed between the second features so that the first and second features do not directly contact. In addition, this disclosure may repeat reference numbers and/or letters in the various examples. This repetition is for the sake of simplicity and clarity, and does not in itself represent a relationship between the various embodiments and/or configurations being discussed.
또한, "밑에(beneath)", "아래에(below)", "최하부의(lower)", "상에(above)", "최상부의(upper)" 등과 같은 공간적으로 상대적인 용어가, 도면에 도시되는 하나의 엘리먼트 또는 피처와 다른 엘리먼트(들) 또는 피처(들) 간의 관계를 설명하는 데 있어서, 설명의 편의를 위해 사용될 수도 있다. 공간적으로 상대적인 용어는, 도면에 나타난 방향 외에도, 사용 또는 동작 중인 디바이스의 다른 방향을 망라한다. 장치는 다른 방향으로(90도 회전되거나 다른 방향으로 회전) 배치될 수 있고, 본 개시에서 사용되는 공간적으로 상대적인 서술어는 이에 따라 마찬가지로 해석될 수 있다.Also, spatially relative terms such as "beneath", "below", "lower", "above", "upper", etc. In describing a relationship between one illustrated element or feature and another element(s) or feature(s), it may be used for convenience of description. Spatially relative terms encompass other orientations of the device in use or operation in addition to the orientations shown in the figures. The device may be positioned in other orientations (rotated 90 degrees or rotated in other directions), and spatially relative descriptors used in this disclosure may likewise be interpreted accordingly.
메모리 디바이스는 반도체 디바이스 및 시스템에 정보를 저장하는 데 사용된다. 널리 사용되는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM) 셀은 스위치와 커패시터를 포함한다. DRAM은 전원이 차단될 때 데이터를 유지하지 않는다. 비휘발성 메모리 디바이스는 전원이 차단된 후에도 데이터를 유지할 수 있다. 비휘발성 메모리 디바이스의 예는 플래시 메모리, 자기 랜덤 액세스 메모리(Magnetic Random Access Memories; MRAM), 강유전성 랜덤 액세스 메모리(Ferroelectric Random Access Memories; FRAM) 및 위상 변화 랜덤 액세스 메모리(Phase-Change Random Access Memories; PRAM)를 포함한다. MRAM은 터널 접합에서 자화 방향의 변화를 사용하여 데이터를 저장한다. FRAM은 강유전체의 분극 특성을 사용하여 데이터를 저장한다. PRAM은 특정 물질의 위상 변화로 인한 저항 변화를 사용하여 데이터를 저장한다.Memory devices are used to store information in semiconductor devices and systems. A widely used Dynamic Random Access Memory (DRAM) cell includes a switch and a capacitor. DRAM does not retain data when power is turned off. Non-volatile memory devices can retain data even after power is cut off. Examples of non-volatile memory devices include flash memory, Magnetic Random Access Memories (MRAM), Ferroelectric Random Access Memories (FRAM), and Phase-Change Random Access Memories (PRAM). ) is included. MRAM stores data using a change in magnetization direction in a tunnel junction. FRAM stores data using the polarization characteristics of ferroelectrics. PRAM stores data using a change in resistance due to a phase change in a particular material.
메모리는 일반적으로 2차원 어레이로 배열된다. 메모리 어레이는 그 자체로서의 또는 다른 디바이스에 내장되는 디바이스일 수 있으며, 또한 많은 메모리 비트 셀을 포함할 수 있다. 각각의 메모리 비트 셀은 일반적으로 1비트의 정보를 저장할 수 있다. 메모리 매크로는 하나 이상의 비트 셀 어레이, 그리고 드라이버, 버퍼, 클록 팬 아웃 회로, ECC 회로 및 기타 주변 회로부와 같은 다른 논리 회로부를 포함할 수 있다.Memory is typically arranged in a two-dimensional array. A memory array may be a device on its own or embedded in other devices, and may also contain many memory bit cells. Each memory bit cell can typically store one bit of information. A memory macro may include one or more bit cell arrays and other logic circuitry such as drivers, buffers, clock fan-out circuitry, ECC circuitry, and other peripheral circuitry.
MRAM과 같은 특정 유형의 메모리 디바이스는, 강자성 물질과 같은 두 개 이상의 자성 물질층 사이의 자화 정렬 상태에 따라 두 개 이상의 저항 상태를 갖는다. 보다 구체적으로, MRAM은 절연 박막에 의해 분리되는 두 개의 중첩하는 자성 물질층을 갖는 메모리 셀에 데이터를 저장한다. 층 구조는 MRAM 셀의 자기 터널 접합("MTJ"또는 "MTJ 구성 엘리먼트")을 형성한다. 두 층은 고정 자기장 정렬 방향으로 영구 자화되는 자성층(이 층은 "고정층"이라고 함) 및 변경 가능하게 자화되는 자성층(이 층은 "자유층"이라고 함)을 포함한다)을 포함한다. 자유층은 영구적으로 자화되는 층에 상대적으로, 두 배향 중 하나의 배향으로 자화될 수 있다. 두 배향은, MTJ의 중첩된 층을 통하여 명백히 상이한 직렬 저항을 특징으로 한다. 변경 가능한 층의 자기장 배향은 영구 자석층의 배향과 동일하게(평행) 또는 영구 자석층의 배향과 반대 방향으로(역평행) 정렬될 수 있다. 평행 정렬 상태는 비교적 낮은 저항을 가지며, 역 평행 정렬 상태는 더 높은 저항을 갖는다.Certain types of memory devices, such as MRAM, have more than one resistance state depending on the magnetization alignment state between two or more layers of magnetic material, such as a ferromagnetic material. More specifically, MRAM stores data in memory cells having two overlapping layers of magnetic material separated by an insulating thin film. The layer structure forms the magnetic tunnel junction (“MTJ” or “MTJ component”) of the MRAM cell. The two layers include a magnetic layer that is permanently magnetized in a fixed magnetic field alignment direction (this layer is referred to as a "pinned layer") and a magnetic layer that is changeably magnetized (this layer is referred to as a "free layer"). The free layer may be magnetized in one of two orientations relative to the permanently magnetized layer. The two orientations are characterized by distinctly different series resistances through the overlapping layers of the MTJ. The magnetic field orientation of the changeable layer may be aligned with the orientation of the permanent magnet layer (parallel) or opposite to the orientation of the permanent magnet layer (antiparallel). The parallel alignment state has a relatively low resistance, and the antiparallel alignment state has a higher resistance.
MRAM 셀의 두 가지 상태는 메모리에 저장되는 비트의 상이한 이진 논리 값을 나타내는 비교적 높은 또는 낮은 저항(RH, RL)으로부터 감지될 수 있다. 예를 들어, RL(또는 높은 셀 전류)은 논리적 "1"("데이터-1")로 지정될 수 있으며; RH(또는 낮은 셀 전류)는 논리적 "0"("Data-0")으로 지정될 수 있다. 특정 실시예에서, 기준 전압이 MRAM 셀에 인가될 수 있고, 결과적인 셀 전류는 셀이 낮은 저항 상태인지 또는 높은 저항 상태인지를 판단하는 데 사용될 수 있다. 특정 실시예에서, 감지 증폭기를 사용하여 셀 전류를 기준 전류와 비교할 수 있다.The two states of an MRAM cell can be sensed from relatively high or low resistances (RH, RL) representing different binary logic values of the bits stored in the memory. For example, RL (or high cell current) may be assigned a logical “1” (“data-1”); RH (or low cell current) can be specified as a logical “0” (“Data-0”). In certain embodiments, a reference voltage may be applied to the MRAM cell, and the resulting cell current may be used to determine whether the cell is in a low resistance state or a high resistance state. In certain embodiments, a sense amplifier may be used to compare the cell current to a reference current.
영구적이지 않거나 디바이스에 대한 물리적 손상을 나타내지 않는 소프트 에러와 같은 데이터 에러는 교란 에러, 방사선 효과 또는 열 효과로 인해 발생할 수 있다. 이러한 에러는 판단적이거나, 확률적 프로세스에 의한 것일 수 있다. 소프트 에러를 포함한 데이터 에러율은 MRAM 디바이스 칩에 내장되는 에러 정정 코드 방식(Error Correction Code Scheme; ECC)을 사용할 것을 요구할 수 있다. ECC를 사용하여 메모리에 저장되는 비트 에러를 검출하고 정정할 수 있다. ECC는 메모리 디바이스에 데이터와 함께 저장되는 ECC 검사 비트, 예를 들어 리던던시 비트 또는 패리티 비트를 생성함으로써 데이터를 인코딩한다. 데이터와 패리티 비트가 함께 코드 워드를 형성한다. 예를 들어 64비트 데이터에 대해 여덟 개의 패리티 비트를 생성하는 ECC는, 일반적으로 SECDED(단일 에러 정정(Single-Error Correcting; SEC) 및 이중 에러 검출(Double-Error Detecting; DED)) 코드 라고 알려진 64비트 데이터에서 두 개의 비트 에러를 검출하고, 한 개의 비트 에러를 정정할 수 있다.Data errors, such as soft errors that are not permanent or indicative of physical damage to the device, can occur due to disturbance errors, radiation effects, or thermal effects. These errors may be judgmental or may be due to a probabilistic process. Data error rates including soft errors may require the use of an Error Correction Code Scheme (ECC) embedded in an MRAM device chip. ECC can be used to detect and correct bit errors that are stored in memory. ECC encodes data by generating ECC check bits, such as redundancy bits or parity bits, that are stored with the data in a memory device. The data and parity bits together form a code word. For example, ECC, which generates eight parity bits for 64-bit data, uses 64, commonly known as the SECDED (Single-Error Correcting (SEC) and Double-Error Detecting (DED)) codes. It is possible to detect two bit errors in bit data and correct one bit error.
ECC와 함께 사용되는 검사 비트를 저장하기 위해 추가 메모리 공간이 필요할 수 있다. 따라서, ECC 능력을 제공하기 위한 검사 비트를 저장하기 위해 추가 메모리 디바이스 또는 디바이스들(예를 들어, 추가 칩 또는 칩들)이 필요할 수 있다. 일부 메모리 어레이에서, 검사 비트(패리티 비트라고도 함)를 저장하기 위해 추가 열이 어레이에 추가될 수 있다. 메모리 어레이의 하나의 행에 포함되는 데이터는 워드라고 할 수 있다. 코드 워드는 추가 열(들)에 추가되는 워드와 패리티 비트를 포함하는 데이터 문자열을 말한다. 코드 워드가 K비트 및 M 패리티 비트를 갖는 워드 부분을 포함하는 경우, 코드 워드 길이(N)은 N = K+M일 것이다. 예를 들어, 각각의 32비트 데이터 워드에 대해 8비트 패리티를 제공할 수 있는 ECC 메모리는 32비트 데이터로 40비트 코드 워드에 액세스하기 위한 40비트 와이드 인터페이스를 포함할 수 있다. 유사하게, 각각의 64비트 데이터 워드에 대해 8비트 패리티를 제공할 수 있는 ECC 메모리는 64비트 데이터로 72비트 코드 워드에 액세스하기 위한 72비트 와이드 인터페이스를 포함할 수 있다.Additional memory space may be required to store the check bits used with ECC. Accordingly, an additional memory device or devices (eg, an additional chip or chips) may be needed to store the check bit to provide ECC capability. In some memory arrays, additional columns may be added to the array to store check bits (also called parity bits). Data included in one row of the memory array may be referred to as a word. The code word refers to a data string including a word added to additional column(s) and a parity bit. If a code word contains a word portion with K bits and M parity bits, the code word length N will be N = K+M. For example, an ECC memory capable of providing 8-bit parity for each 32-bit data word may include a 40-bit wide interface for accessing a 40-bit code word with 32-bit data. Similarly, an ECC memory capable of providing 8-bit parity for each 64-bit data word may include a 72-bit wide interface for accessing a 72-bit code word with 64-bit data.
모든 메모리 어레이 또는 매크로에 대해 ECC 회로부를 제공하는 것은 디바이스에 대한 면적 요구를 증가시킨다. ECC 회로부에 필요한 면적 요구 사항을 최소화하는 대체적인 방식은 메모리 어레이 또는 매크로 간에 공유되는 글로벌 ECC 회로부를 제공하는 것이다. 그러나, 메모리 어레이 또는 매크로에 대해 공유 ECC 회로부를 사용하는 방식은, 모든 메모리 어레이 또는 매크로에 대해 ECC 회로부를 제공하는 것과 비교하여, 메모리 어레이 및 ECC 회로부로 또는 그로부터 데이터를 이동 또는 전파하는데 소비되는 에너지를 증가시킨다.Providing ECC circuitry for every memory array or macro increases the area requirement for the device. An alternative way to minimize the area requirement for ECC circuitry is to provide global ECC circuitry that is shared between memory arrays or macros. However, the approach of using shared ECC circuitry for a memory array or macro is compared to providing ECC circuitry for all memory arrays or macros, the energy expended in moving or propagating data to or from the memory array and ECC circuitry. to increase
코드 워드 내의 비트 에러의 검출은 비트 에러 정정보다 적은 동작을 요구하며, 따라서 적은 동작을 지원하기 위해 더 적은 회로부를 필요로 한다. 개시되는 실시예에 따르면, ECC 회로부의 제1 부분은 각각의 메모리 매크로에 로컬로 제공되는 반면, 제2 부분은 메모리 디바이스의 모든 메모리 매크로에 의해 액세스되는 공유, 글로벌 ECC로서 구현된다. 예를 들어, ECC 회로의 에러 검출 양태는 각각의 MRAM 매크로 또는 작은 그룹의 매크로에 대한 제1 로컬 ECC로서 구현될 수 있다. ECC의 에러 정정 양태는 많은 MRAM 매크로를 지원하는 제2 또는 글로벌 ECC로서 구현된다. 이러한 방식으로, 에러 정정을 위해, 로컬 ECC에 의해 검출되는 메모리 에러만이 글로벌 ECC에 전송되어야 한다.Detection of bit errors in code words requires less operation than bit error correction, and thus requires less circuitry to support fewer operations. According to the disclosed embodiment, the first portion of the ECC circuitry is provided locally to each memory macro, while the second portion is implemented as a shared, global ECC accessed by all memory macros of the memory device. For example, the error detection aspect of the ECC circuit may be implemented as a first local ECC for each MRAM macro or a small group of macros. The error correction aspect of ECC is implemented as a second or global ECC that supports many MRAM macros. In this way, for error correction, only memory errors detected by the local ECC should be sent to the global ECC.
로컬 및 글로벌 ECC 구현을 갖는 이와 같은 계층적 ECC 구조는, 모든 메모리 어레이 또는 매크로에 로컬 전체 ECC를 제공하는 것에 비해 오버 헤드 ECC 회로부의 면적을 감소시키고, 또한 공유 글로벌 전체 ECC를 제공하는 것과 비교하여 글로벌 데이터 통신 에너지를 줄임으로써, 에러 정정과 관련되는 디바이스의 면적 요건 및 전력 소비의 균형을 효과적으로 맞출 수 있다. 정정을 위해, 검출되는 메모리 에러만을 글로벌 ECC 회로부로 이동 또는 전파시킴으로써 글로벌 데이터 통신 에너지가 감소되고, 공유 글로벌 ECC 회로부에 의해 에러 정정 회로부가 제공되는 동안 모든 메모리 어레이 또는 매크로마다 검출 ECC 회로부만을 제공함으로써 디바이스 면적 요건이 최소화된다.This hierarchical ECC structure with local and global ECC implementations reduces the area of overhead ECC circuitry compared to providing local full ECC to all memory arrays or macros, and also reduces the area of overhead ECC circuitry compared to providing shared global full ECC. By reducing global data communication energy, it is possible to effectively balance the area requirements and power consumption of the device with respect to error correction. For correction, global data communication energy is reduced by moving or propagating only detected memory errors to global ECC circuitry, by providing only detection ECC circuitry per every memory array or macro while error correction circuitry is provided by shared global ECC circuitry Device area requirements are minimized.
도 1은 본 개시의 일부 실시예에 따라, 전용 및 단순화된 ECC 회로를 각각 갖는 복수의 메모리 어레이를 갖는 예시적인 메모리 디바이스를 일반적으로 나타내는 블록도이다. 도 1에 도시되는 예에서, 메모리 디바이스는 MRAM 디바이스(100)일 수 있지만, 다른 메모리 유형도 본 개시의 범위 내에 있다. MRAM 디바이스(100)는 복수의 메모리 어레이(102a-n), 각각의 메모리 어레이(102)에 결합되는 로컬 ECC 회로(140a-n), 각각의 메모리 어레이(102) 및 ECC 회로(140)에 결합되는 로컬 I/O 회로(106a-n), 각각의 로컬 I/O 회로(106)에 결합되는 컨트롤러(108), 글로벌 ECC 회로(160), 및 글로벌 I/O 회로(110)를 포함한다. 도시되는 실시예에서, 메모리 매크로(130a-n)는 로컬 메모리 어레이(102a-n), 로컬 ECC 회로(140a-n), 및 로컬 I/O(106a-n)를 포함할 수 있다.1 is a block diagram generally illustrating an example memory device having a plurality of memory arrays each having dedicated and simplified ECC circuitry, in accordance with some embodiments of the present disclosure. In the example shown in FIG. 1 , the memory device may be an
일부 실시예에 따르면, 리프레시 간격(refresh interval)이 적절하게 설계되면, 메모리 리프레시에서의 대부분의 판독 동작은 비교적 에러가 없어야 한다. 이러한 경우에, 간단한 에러 검출 기능이 로컬로 수행될 수 있는 ECC 방식이 구현되어서, 로컬 리프레시 데이터 경로(120)가 더 짧아지고 리프레시 동안 레이턴시가 감소된다. 에러 정정을 포함하는 ECC 회로는 복수의 매크로(130a-n) 사이에서 공유될 수 있고, 더 긴 글로벌 리프레시 데이터 경로(122)는 이러한 비교적 드문 사건에 사용될 것이다. 이러한 방식에서, 에러 검출만을 갖는 로컬 ECC 회로(140a-n)에 필요한 면적은 각각 상당히 적은 면적을 필요로 한다.According to some embodiments, if the refresh interval is properly designed, most read operations in a memory refresh should be relatively error-free. In this case, an ECC scheme in which a simple error detection function can be performed locally is implemented, so that the local
해밍 코드, 3중 모듈 리던던시 등을 포함하여 ECC를 구현하기 위한 많은 방식이 개발되었다. 예를 들어, 해밍 코드는, 사용되는 패리티 비트 수에 따라, 코드 워드 당 최대 두 개의 비트 에러를 검출하거나, 정정되지 않은 에러를 검출하지 않고 하나의 비트 에러를 정정할 수 있는 이진 선형 블록 코드 클래스이다. 여러 방식이 개발되었지만, 일반적으로 패리티 비트가 코드 워드 내에 배열되어, 상이한 틀린 비트가 상이한 에러 결과를 생성하면, 에러가 발생한 비트를 식별할 수 있다. 에러가 있는 코드 워드의 경우, 에러 패턴은 에러 신드롬이라고 하며, 이는 에러가 있는 비트를 식별한다. 이러한 신드롬 디코딩은 에러가 있는 선형 블록 코드를 디코딩하는 매우 효율적인 방법이다.Many methods have been developed to implement ECC, including Hamming codes, triple module redundancy, and the like. For example, Hamming codes are a class of binary linear block codes that, depending on the number of parity bits used, can detect up to two bit errors per code word, or correct one bit error without detecting uncorrected errors. to be. Several schemes have been developed, but in general parity bits are arranged within a code word so that if different wrong bits produce different error results, it is possible to identify the bit in which the error occurred. For erroneous code words, the error pattern is called an error syndrome, which identifies the erroneous bit. This syndrome decoding is a very efficient way to decode erroneous linear block codes.
여기에 설명되는 바와 같이, 로컬 ECC 회로(140a-n) 및 글로벌 ECC(160)는 ECC 인코더 및 디코더를 사용하여 ECC 인코딩 및 디코딩을 사용할 수 있다. ECC 인코더는 에러를 검출 또는 정정하기 위해 정보에 리던던시를 추가하는 임의의 기술 또는 알고리즘을 포함할 수 있다. 예를 들어, 에러 정정 코드는 리드 솔로몬 [255, 239] 또는 [255, 221] 코드와 같은 비이진 블록 코드, 해밍 코드 및 보세, 샤우드후리, 호켄헴(Bose-Chaudhuri-Hocquenghem; BCH) 코드와 같은 선형 블록 코드, 순환 해밍 코드, 하다마드 [16, 5] 코드와 같은 하다마드 코드, 골레이 [23, 12] 코드와 같은 골레이 코드, 확장된 골레이 [24, 12] 코드, 또는 순환 골레이 [24, 12] 코드, 최대 길이 시프트 레지스터 코드, 리드 뮬러 코드, 교류 코드, 가파(Gappa) 코드, 이진 및 비이진 컨벌루션 코드, 이중 K 코드, 터보 코드, 터보 곱 코드, LDPC 코드, 하나의 코드를 다른 코드 안에 둘러싸서 만든 연결 코드, 등을 포함할 수 있다. 더 많은 패리티 비트를 더 추가하여 필요에 따라 에러 정정 코드의 강도를 조정할 수 있다. 예를 들어, 코드의 강도는 최소 해밍 거리로 측정할 수 있다. ECC 디코더는 ECC 인코더에 연결되어 코드 워드의 신드롬을 계산하는 데 사용될 수 있다.As described herein,
일부 실시예에서, 특히, ECC 디코더는 로컬 ECC 회로(140a-n)에 포함되어, 사전에 정의된 패리티 검사 매트릭스 및 코드 워드에 대해 매트릭스 곱셈을 수행할 수 있다. 사전에 정의된 패리티 검사 매트릭스는 사용되는 ECC의 유형에 따라 판단될 수 있다. 예를 들어, 사전에 정의된 패리티 검사 매트릭스는 (7, 4) 해밍 코드의 7x3 패리티 검사 매트릭스(H)일 수 있다. 따라서, ECC 디코더는 3비트로 구성되는 3-튜플 벡터를 출력한다. ECC 디코더는, (7, 4) 해밍 코드의 원리에 기초하여, 인코딩되는 코드 워드가 유효한 코드 워드인지 여부를 검사하기 위한 것이다. ECC 디코더에 의해 생성되는 3-튜플 벡터, 즉 신드롬이 (0, 0, 0)과 동일할 때, 인코딩되는 코드 워드는 유효한 코드 워드인 것으로 판단된다. 이 경우, 코드 워드가 유효한 것으로 판단하는 동작만이 필요하고, 로컬 리프레시 데이터 경로(120)가 사용된다. ECC 디코더에 의해 생성되는 3-튜플 벡터가 동작시 (0, 0, 0)과 동일하지 않은 경우, 인코딩되는 코드 워드는 적어도 하나의 에러를 갖는 것으로 판단된다. 이 경우, 에러 정정을 포함하는 보다 완전한 ECC가 필요하고, 글로벌 리프레시 데이터 경로(122)가 사용된다.In some embodiments, in particular, the ECC decoder may be included in the
도 2는 MRAM 디바이스(100)의 예의 다른 양태를 일반적으로 도시하는 블록도이다. 도시되는 실시예에서, 로컬 메모리 어레이(102a)는 행 및 열로 배열되는 MRAM 비트 셀(200)과 같은 복수의 MRAM 비트 셀을 포함한다. MRAM 비트 셀(200)은 액세스 트랜지스터(212) 및 MTJ 구성 엘리먼트(214)를 포함한다. MTJ 구성 엘리먼트(214)는 자유층의 배향에 따라 가변 저항을 가지며, 액세스 트랜지스터(212)와 비트 라인(204) 사이에서 동작 가능하게 결합된다. 액세스 트랜지스터(212)는 비트 라인(206)과 MTJ 구성 엘리먼트(214) 사이에 동작 가능하게 결합되고, 워드 라인(202)에 결합되는 게이트를 갖는다. 판독 또는 기록 동작 동안, 액세스 트랜지스터(212)의 임계 전압보다 큰 전압이 워드 라인(202)에 인가되고, 이에 의해, 액세스 트랜지스터(212)를 "온"시키고, MTJ 구성 엘리먼트(214)를 통해 비트 라인(206)으로부터 비트 라인(204)으로 전류가 흐르게 한다. 비트 라인 내의 전류를 감지하고 비교하여, MTJ 구성 엘리먼트(214) 내의 자유층의 상태 및 결과적으로 MRAM 비트 셀(200)에 저장되는 데이터("1" 또는 "0")에 상응하는 로직 하이 "1" 또는 로우 "0"를 출력할 수 있는 감지 증폭기(미도시)에 의해 전류가 검출된다. 로컬 메모리 어레이(102a)의 복수의 비트 셀 중 임의의 비트 셀로의 액세스는, 워드 라인에 전압의 인가를 정확하게 타이밍하고 각각의 비트 라인 상의 전류를 감지함으로써 수행된다. 로컬 메모리 어레이(102a) 내의 비트 셀의 데이터는 예를 들어 비트 라인(204, 206)을 통해 로컬 ECC 회로로 전송될 수 있다. 로컬 메모리 어레이(102a) 내의 비트 셀의 데이터는, 도 1에 도시되는 바와 같은 매크로(130a)의 외부에 있는 회로로 또는 그로부터, 로컬 I/O 회로(106a), 예를 들어 비트 라인(204, 206)을 통해 전송된다.2 is a block diagram generally illustrating another aspect of an example of an
도 3은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스(300)를 일반적으로 도시하는 블록도이다. 도시되는 실시예에서, ECC 로직 프로세스(300)는 로컬 ECC 로직(340) 및 글로벌 ECC 로직(360)을 포함한다. 일부 실시예에서, 로컬 ECC 로직(340)에는 메모리 어레이 또는 매크로가 제공되고, 글로벌 ECC 로직(360)은 복수의 메모리 어레이 또는 매크로에서 공유된다. 예를 들어, 도 1을 참조하면, 로컬 ECC 로직(340)은 로컬 메모리 매크로(130a) 내에 로컬 메모리 어레이(102a)가 제공되는 로컬 ECC 회로(140a)에 해당할 수 있고, 글로벌 ECC 로직은 복수의 메모리 매크로들(130a-n) 사이에서 공유되는 글로벌 ECC 회로(160)에 해당할 수 있다.3 is a block diagram generally illustrating an exemplary
로컬 ECC 로직(340)은 신드롬 s1 생성기(342), 신드롬 s3 생성기(344), 및 에러 검사 회로(346)를 포함한다. 메모리 어레이(102a-n) 내의 MRAM 비트 셀(200)은 에러 검출 및 정정을 위한 데이터 및 패리티 비트 모두를 저장한다. 도시되는 예에서, ECC 논리 프로세스(300)는 로컬 메모리 어레이(102a)로부터 판독되는 코드 워드, 예를 들어, MRAM 매크로(130a)로부터 판독되는 N-비트 길이 판독 데이터 상에서 동작한다. 일부 실시예에서, 판독 데이터가 에러를 갖는지 여부를 판단하기 위해 신드롬 s1, s3만이 필요하므로, 판독 데이터의 부분 디코딩 만이 필요하다. 신드롬 s1, s3은 단일 숫자 엘리먼트일 수 있거나, 신드롬 s1, s3은 각각 복수의 숫자 엘리먼트의 벡터일 수 있거나, 또는 신드롬 s1, s3은 복수의 숫자 엘리먼트의 행렬일 수 있다. 신드롬 s1 생성기(342)는 신드롬 s1에 도달하기 위해 사전에 정의된 패리티 검사 매트릭스를 사용하여 판독 데이터에 대한 매트릭스 곱셈을 수행하고, 마찬가지로 신드롬 s3 생성기(344)는 신드롬 s3에 도달하기 위해 사전에 정의된 패리티 검사 매트릭스 상에서 행렬 곱셈을 수행한다. 에러 검사 회로(346)는 신드롬 s1, s3을 평가하고, 판독 데이터, 예를 들어 코드 워드가 하나 이상의 에러를 포함하는지 여부를 판단하기 위해 구성된다.The
판독 데이터가 적어도 하나의 에러를 포함하는 것으로 에러 검사 회로(346)에 의해 판단되는 경우, 글로벌 ECC 로직(360)을 요구하는 판독 데이터의 전체 디코딩이 필요하다. 글로벌 ECC 로직(360)은 x^3(x의 세제곱) 계산 회로(351), 인코더(EN) 계산 회로(352), 검사 비트 생성기(353), XOR(배타적 OR) 계산 회로(354), 역수(inverse) 계산 회로(355), 갈루아 필드(Galois Field; GF) 다중 계산 회로(356)와 같은 유한 필드 및 에러 정정 회로(362)를 포함한다. 일부 실시예에서, EN 계산 회로(352)는 판독 데이터 상에서 동작하고, 정정 후에 코드 워드가 로컬 메모리 어레이(102a)에 다시 기록될 필요가 있는지 여부를 인코딩하는 단일 비트를 출력한다. 예를 들어, EN 계산 회로(352)는 BCH 순환 에러 정정 코드의 인코더 스테이지일 수 있다. 일부 실시예에서, EN 계산 회로(352)는, 글로벌 ECC 로직(360)이 정정 이외에 추가적 에러 검출을 할 수 있도록, 예를 들어, SECDED(단일 에러 정정(Single-Error Correcting; SEC) 및 이중 에러 검출(Double-Error Detecting; DED))과 같이, 패리티 비트를 추가한다. 도 3에 도시되는 실시예에서, 신드롬 s1, s3은 로컬 ECC 로직(340)에서 계산되고, 글로벌 ECC 로직(360)에 의해 전송되고 사용된다. 특히, x^3 계산 회로(351)는 신드롬 s1 상에서 동작하여 s1^3에 도달하고, XOR 계산 회로(354)는 신드롬 s3 및 세제곱 계산 회로(351)로부터의 결과적인 s1^3 상에서 작동하여 s3 및 s1^3을 비교하고 XOR 진리표에 따른 벡터를 출력한다. 역수 계산 회로(355)는 신드롬 s1 상에서 동작하고 신드롬 s1의 역수를 출력하고, GF 다중 계산 회로(356)는 역수 계산 회로(355) 및 XOR 계산 회로(354)의 출력부 상에서 동작한다. 일부 실시예에서, GF 다중 계산 회로(356)는 에러 검출 및 에러 정정을 포함하는 BCH 순환 에러 정정 코드의 디코더 스테이지일 수 있다. 일부 실시예에서, GF 다중 계산 회로(356)는 모든 데이터 비트의 갈루아 필드 내의 곱셈 및 누적을 통해 코드 워드 상에서 동작하고, 여기서 데이터 비트는 다항식의 계수로 취급된다. GF 다중 계산 회로(356)의 출력은 판독 데이터 및 신드롬 s1과 함께 에러 정정 회로(362)에 입력된다. 에러 정정 회로(362)의 출력은 에러 정정된 코드 워드이다. 다음으로, 검사 비트 생성기(353)는 정정된 워드, 예를 들어 패리티 비트가 없는 데이터 상에서 동작하고, 선택된 ECC 유형 또는 방식의 사전에 정의된 패리티 검사 매트릭스에 따라 패리티 비트를 인코딩하여, 로컬 코드 어레이(102a)에 기록될 정정된 코드 워드를 형성한다.If it is determined by the
도 4는 도 3에 도시되는 ECC 논리 프로세스(300)를 사용하여 MRAM 에러를 정정하기 위한 방법(400)의 흐름도이다. 방법(400)은 단계(402)에서 시작하는데, 단계(402)에서 신드롬 s1, s3은 메모리 어레이에 대한 메모리 리프레시 동작의 일부로서 판독 데이터로부터 계산된다. 예를 들어, 로컬 메모리 어레이(102a-n)를 포함하는 복수의 매크로(130a-n) 중 하나로부터의 코드 워드가 판독되고, 리프레시 주기 동안 판독 데이터가 시작되는 로컬 메모리 어레이(102a-n)와 관련된 로컬 ECC 회로(140a-n) 내에서 사전에 정의된 패리티 검사 매트릭스를 사용하여 판독 데이터에 대해 매트릭스 곱셈을 수행함으로써 신드롬 s1, s3이 계산된다. 일부 실시예에서, 신드롬 s1, s3의 계산은 도 3에 도시되는 바와 같이 로컬 ECC 로직(340) 내의 s1 신드롬 생성기(342) 및 s3 신드롬 생성기(344)를 사용하여 수행될 수 있다. 단계(404)에서, 신드롬 s1, s3은, 예를 들어 로컬 ECC 로직(340) 내에서 에러 검사(346)를 사용하여, 코드 워드가 적어도 하나의 에러를 갖는지 여부를 판단하도록 평가된다. 에러가 없으면, 방법(400)은 그 코드 워드에 대해 종료되고, 단계(402)에서 로컬 메모리 어레이(102a-n)에 대해 리프레시 주기의 다음 코드 워드에 대해 시작한다. 적어도 하나의 에러가 존재하면, 방법(400)은, 판독 데이터 및 신드롬 s1, s3이, 적어도 하나의 에러를 갖는 것으로 판단되는 현재 판독 데이터가 시작되는 로컬 매크로를 포함하는 복수의 로컬 매크로와 관련된 글로벌 ECC 로직(360)과 같은 글로벌 ECC 회로(160)에 입력되는 단계(406)로 진행한다. 정정 후에 코드 워드가 로컬 메모리 어레이 (102)에 다시 기록될 필요가 있는지 여부는 예를 들어 EN 계산 회로(352)를 사용하여 판독 데이터로부터 판단된다. 예를 들어, EN 계산 회로(352)는 BCH 순환 에러 정정 코드의 인코더 스테이지일 수 있다. 일부 실시예에서, EN 계산 회로(352)는, 글로벌 ECC 로직(360)이 정정 이외에 추가적 에러 검출을 할 수 있도록, 예를 들어, SECDED(단일 에러 정정(Single-Error Correcting; SEC) 및 이중 에러 검출(Double-Error Detecting; DED))과 같이, 패리티 비트를 추가한다. 단계(408)에서, s1^3은 글로벌 ECC 로직(360) 내의 x^3 계산 회로(351)에 의해 계산된다. 단계(410)에서, 입력(s1^3, s3)의 XOR이 예를 들어 글로벌 ECC 로직(360) 내의 XOR 계산 회로(354)에 의해 계산되고, s1의 역수는 예를 들어 글로벌 ECC 논리(360) 내의 역수 계산 회로(355)에 의해 계산된다. 단계(412)에서, GF 다중은, 예를 들어 역수(s1) 및 XOR 계산으로부터의 출력을 사용하여 GF 다중 계산 회로(356)에 의해 계산된다. 일부 실시예에서, GF 다중 계산 회로(356)는 에러 검출 및 에러 정정을 포함하는 BCH 순환 에러 정정 코드의 디코더 스테이지일 수 있다. 일부 실시예에서, GF 다중 계산 회로(356)는 모든 데이터 비트의 갈루아 필드에서의 곱셈 및 누적을 통해 코드 워드 상에서 동작하며, 여기서 데이터 비트는 다항식의 계수로 취급된다. 단계(414)에서, 판독 데이터, 그리고 GF 다중 및 신드롬 s1 계산의 출력을 사용하여, 예를 들어 글로벌 ECC 로직(360) 내의 에러 정정 회로(362)에 의해 정정된 코드 워드가 계산된다. 단계(416)에서, 정정된 워드, 예를 들어 정정된 데이터는 정정된 코드 워드 및 검사 비트 생성기, 예를 들어 글로벌 ECC 로직(360) 내의 검사 비트 생성기(353)로부터 추출되고, 선택되는 ECC 유형 또는 방식에 따라 사전에 정의된 패리티 검사 매트릭스를 사용하여 정정된 데이터를 패리티 비트로 인코딩한다. 다음으로, 정정되고 인코딩된 코드 워드는 로컬 매크로(130)에 다시 기록된다.FIG. 4 is a flow diagram of a
도 5는 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스(500)를 일반적으로 도시하는 블록도이다. 도 3의 ECC 논리 프로세스(300)와 비교하여, ECC 논리 프로세스(500)에서는, 검사 비트 생성기(353)가 더 이상 글로벌 ECC 로직(360)에 포함되지 않지만, 로컬 ECC 로직(340)에 포함된다. ECC 로직 프로세스(300)와의 이러한 차이는, 패리티 비트를 정정된 데이터로 인코딩하는 동작 및 결과적인 정정된 코드워드를 로컬 메모리 어레이(102a)에 기록하는 동작을 로컬 메모리 어레이(102a)와 연관된 로컬 ECC 논리(340)으로 오프로드하여, 글로벌 ECC 로직(360)이, 패리티 비트를 인코딩하고, 글로벌 ECC 로직(360)을 공유하는 복수의 메모리 매크로(130a-n)를 위한 정정된 코드 워드를 기록하는 책임을 더 이상 갖지 않도록 한다.5 is a block diagram generally illustrating an exemplary
도 6은 ECC 논리 프로세스(500)를 사용하여 MRAM 에러를 정정하는 방법(600)의 흐름도이다. 방법(600)은 상기 방법(400)과 유사하지만, 단계(616)에서 단계(416)에 포함되는 동일한 동작이 글로벌 ECC 보다는 로컬 ECC 내에서 수행되어, 그 작업을 도 5와 관련하여 전술한 바와 같이 로컬 ECC 논리 회로에 오프로드 한다는 차이점이 있다. 특히, 단계(616)은 정정된 코드 워드로부터 정정된 워드, 예를 들어 정정된 데이터를 추출하는 단계 및 선택된 ECC 유형 또는 방식에 따라 사전에 정의된 패리티 검사 매트릭스를 사용하여 정정된 데이터를 패리티 비트로 인코딩하는 단계 및 정정되고 인코딩된 코드 워드를 로컬 ECC 논리 회로와 연관되는 로컬 매크로에 다시 기록하는 단계를 포함한다.6 is a flowchart of a
도 7은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스(700)를 일반적으로 도시하는 블록도이다. ECC 논리 프로세스(700)는 상기 ECC 논리 프로세스(500)와 유사하며, 두 가지 차이점을 포함한다. 첫 번째 차이점은 신드롬 s1 생성기(342)와 신드롬 s3 생성기(344)가 글로벌 ECC 로직(360) 내에서 중복된다는 점이다. 글로벌 ECC 로직(360) 내에서, 신드롬 s1 생성기(342)와 신드롬 s3 생성기(344)를 중복시키는 것은 전체 계층적 ECC 방식 내에서 필요로 하는 연결물 개수를 줄일 수 있고, 레이아웃 구조를 단순화할 수도 있다. 예를 들어, ECC 논리 프로세스(300, 500)는, 모든 로컬 ECC 회로(140a-n) 및 로컬 I/O 회로(106a-n)가 판독 데이터 및 신드롬 s1, s3을 전송하는 것을 지원하고, 글로벌 ECC 회로(160)가 판독 데이터와 함께 신드롬 s1, s3을 수신하는 것을 지원하도록 요구한다. 대조적으로, ECC 로직 프로세스(700)는, 로컬 ECC 회로(140a-n) 및 로컬 I/O 회로(106a-n)가 판독 데이터를 전송하는 것을 지원하기만을 요구하고, 글로벌 ECC 회로(160)가 판독 데이터를 수신하는 것을 지원하기만을 요구한다. 이와 같이, 일부 실시예에서, 로컬 I/O 회로(106a-n)와 글로벌 ECC 회로(160) 사이의 신드롬 s1, s3의 전송에 필요한 연결은 ECC 논리 프로세스(700)를 사용하여 제거될 수 있으며, 이는 MRAM 디바이스(100)의 레이아웃 구조를 간소화시킬 수 있다.7 is a block diagram generally illustrating an exemplary
두 번째 차이점은 에러 검출 회로(357)가 글로벌 ECC 로직(360) 내에 포함된다는 점이다. 에러 검사 회로(346)와 유사하게, 에러 검출 회로(357)는 판독 데이터, 예를 들어 코드워드가 적어도 하나의 에러를 포함하는지 여부를 판단하도록 구성되었지만, 이는 글로벌 ECC 논리 회로(360) 내에서 이루어진다. 에러 검출 회로(357)는 EN 계산 회로(351)의 출력, s1, s3 및 s1^3을 입력으로서 수신하고, 판독 데이터가 적어도 한 개의 에러를 포함하는지 여부를 출력한다. 에러 검출 회로(357)는 판독 데이터에 적어도 한 개의 에러가 있는지 또는 판독 데이터에 적어도 두 개의 에러가 있는지 여부를 출력하고, 판독 데이터에 적어도 세 개 이상의 에러가 있는지 여부를 출력할 수 있다.The second difference is that the
도 8은 ECC 논리 프로세스(700)를 사용하여 MRAM 에러를 정정하기 위한 방법(800)의 흐름도이다. 방법(800)은 상기 방법(600)과 유사하지만 두 개의 차이점이 있다. 첫 번째로, 단계(406)는 단계(806)로 대체되며, 여기서 신드롬 s1, s3은, 방법(400, 600)의 단계(406)에 포함되는 동일한 동작으로부터 입력되는 것이 아니라, 글로벌 ECC 회로(160)(예를 들어, 글로벌 ECC 로직(360)) 내에서 계산된다. 두 번째, 단계(408)와 단계(410) 사이에서, 단계(809)에서, 판독 데이터 내에 에러가 존재하는지 여부 및 에러의 개수가 글로벌 ECC 회로(160)(예를 들어, 에러 검출 회로(357)) 내에서 계산되는지 여부이다.8 is a flow diagram of a
도 9는 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스(900)를 일반적으로 도시하는 블록도이다. ECC 논리 프로세스(900)는 상기 ECC 논리 프로세스(700)와 유사하지만, 네 가지 차이점이 있다. 첫째, 신드롬 s1 생성기(342) 및 신드롬 s3 생성기는 더 이상 글로벌 ECC 로직(360) 내에서 중복되지 않는다. 둘째, 세제곱 계산 회로(351), EN 계산 회로(352), 및 에러 검출 회로(357)는 로컬 ECC 로직(340)에 포함되고, 글로벌 ECC 로직(360)에 더 이상 포함되지 않는다. 로컬 ECC 로직(340) 내에 세제곱 계산 회로(351), EN 계산 회로(352), 및 에러 검출 회로(357)를 포함하는 것은 로컬 ECC 로직(340)의 계산 유틸리티 및 전력을 증가시킨다. 비교적 높은 데이터 에러율을 경험하는 MRAM 디바이스(100)의 경우, 데이터 이동의 에너지 소비 부담, 그리고 공유 글로벌 ECC 회로(160)에 대한 에러 검출 및 정정 동작의 오프로드로 인한 데이터의 레이턴시 모두는, 로컬 메모리 매크로(130a-n) 내에서 이러한 동작을 수행할 회로부를 제거하는 면적 절약 이점을 능가할 수 있다. 이러한 경우에, 로컬로 수행되는 동작을 증가시킴으로써, 에러 검사와 관련되는 면적, 에너지 소비 및 데이터 레이턴시 사이의 균형을 조정함으로써 MRAM 디바이스(100)의 효율이 증가될 수 있다. 예를 들어, EN 계산 및 신드롬 s1 세제곱 계산을 포함함으로써, ECC 논리 프로세스(900)의 로컬 ECC 논리(340)는 에러 검출을, 예를 들어 에러 검출 회로(357)를 통해, 포함할 수 있고, 이로 인해 더 정확하게는, 에러가 코드 워드 내에 존재하는지 여부 및 코드 워드 및 워드 내의 에러 개수를 검출하는 것을 포함하여, 에러의 개수를 더 정확하게 검출할 수 있다.9 is a block diagram generally illustrating an exemplary
세 번째 차이점은 에러 검사 회로(351)가 생략된다는 것이다. 네 번째 차이점은 검사 비트 생성기(353)가, ECC 로직 프로세스(300)와 유사하게, 로컬 ECC 로직(340)보다는 글로벌 ECC 로직(360)에 다시 한번 포함된다는 것이다.The third difference is that the
도 10은 ECC 논리 프로세스(900)를 사용하여 MRAM 에러를 정정하기 위한 방법(1000)의 흐름도이다. 방법(1000)은 네 가지 차이점을 제외하고는 상기 방법(800)과 유사하다. 첫째, 단계(1003)는 단계(402) 이후에 포함되며, 여기서 s1^3 및 EN은 로컬 ECC 로직(340) 내에서 각각 x^3 계산 회로(351) 및 EN 계산 회로(352)에 의해 계산된다. 둘째, 단계(404)는 단계(1004)로 대체되고, 여기서 판독 데이터 내의 에러의 존재 및 판독 데이터 내의 에러의 개수는 로컬 ECC 로직(340) 내의 에러 검출 회로(357)에 의해 계산되며, s1, s3, s1^3, 및 EN 계산에 기초한다. 에러가 없으면, 방법(1000)은 그 코드 워드에 대해 종료하고, 로컬 메모리 어레이(102a)에 대한 리프레시 주기에서 다음 코드 워드에 대한 방법(1000)의 단계(402)에서 시작한다. 세 번째, 적어도 하나의 에러가 있는 경우, 방법(1000)은 판독 데이터, 신드롬 s1, s3, s1^3 및 검출되는 에러의 개수가 글로벌 ECC 로직(360)에 입력되는 단계(1006)로 진행한다. 네 번째, 방법(1000)은 방법(800)의 단계(616)를 방법(400)의 단계(416)로 대체한다. 즉, 방법(1000)의 단계(416)에서, 정정된 워드, 예를 들어 정정된 데이터는 정정된 코드 워드로부터 추출되고, 글로벌 ECC 로직(360) 내의 검사 비트 생성기(353)는 선택되는 ECC 유형 또는 방식에 따라 사전에 정의된 패리티 검사 매트릭스를 사용하여 패리티 비트로 정정된 데이터를 인코딩하고, 정정되고 인코딩된 코드 워드는 로컬 매크로(130)에 다시 기록된다.10 is a flow diagram of a
도 11은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스(1100)를 일반적으로 도시하는 블록도이다. ECC 로직 프로세스(1100)는 상기 ECC 로직 프로세스(900)와 유사하지만, 검사 비트 생성기(353)가 더 이상 글로벌 ECC 로직(360) 내에 포함되지 않고 로컬 ECC 로직(340) 내에 포함된다는 차이점이 있다. 도 5의 ECC 논리 프로세스(500)와 관련하여 전술한 바와 같이, 이러한 차이는 패리티 비트를 정정된 데이터로 인코딩하는 동작 및 결과적인 정정된 코드워드를 로컬 메모리 어레이(102a)에 기록하는 동작을 로컬 메모리 어레이(102a)와 연관된 로컬 ECC 논리(340)으로 오프로드하여, 글로벌 ECC 로직(360)이, 더 이상 패리티를 인코딩하고, 글로벌 ECC 로직(360)을 공유하는 복수의 메모리 매크로(130a-n)를 위해 정정된 코드 워드를 다시 기록하는 책임을 갖지 않도록 한다.11 is a block diagram generally illustrating an example
도 12는 ECC 논리 프로세스(1100)를 사용하여 MRAM 에러를 정정하기 위한 방법(1200)의 흐름도이다. 방법(1200)은 상기 방법(1000)과 유사하지만, 단계(416)가 단계(616)로 대체되어, 정정된 워드, 예를 들어, 정정된 데이터를 정정된 코드 워드로부터 추출하는 단계, 선택된 ECC 유형 또는 방식에 따라 사전에 정의된 패리티 검사 매트릭스를 사용하여 정정된 데이터를 패리티 비트로 인코딩하는 단계, 및 정정되고 인코딩된 코드 워드를 로컬 ECC 논리(340)와 연관된 로컬 메모리 어레이(102)에 다시 기록하는 단계가, 글로벌 ECC 로직(360) 내가 아닌, 방법(600, 800)과 같은 로컬 ECC 로직(340) 내에서 수행된다는 차이점이 있다.12 is a flow diagram of a
도 13은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스(1300)를 일반적으로 도시하는 블록도이다. ECC 논리 프로세스(1300)는 상기 ECC 논리 프로세스(1100)와 유사하지만, 신드롬 s1 생성기(342), 신드롬 s3 생성기(344) 및 세제곱 계산 회로(351)가 글로벌 ECC 로직(360) 내에서 중복된다는 차이점이 있다. 도 7의 연결에 대해서 전술한 바와 같이, 글로벌 ECC 로직(360) 내에 신드롬 s1 생성기(342), 신드롬 s3 생성기(344), 및 세제곱 계산 회로(351)를 중복시키는 것은 전체 계층적 ECC 방식 내에서 필요한 연결의 개수를 감소시킬 수 있고, 레이아웃을 단순화할 수 있다.13 is a block diagram generally illustrating an example
도 14는 ECC 논리 프로세스(1300)를 사용하여 MRAM 에러를 정정하는 방법(1400)의 흐름도이다. 방법(1400)은 상기 방법(1200)과 유사하고, 단계(1406)이 단계(1006)를 대체한다는 차이점이 있다. 다시 말해서, 신드롬 s1, s3, s1^3은, 로컬 ECC 로직(340) 내에서 계산되는 수량을 중복하여 글로벌 ECC 로직(360) 내에서 계산된다. 이는 로컬 ECC 로직(340)으로부터 글로벌 ECC 로직(360)으로 그 수량을 입력하는 대신이며, 방법(1200)의 단계(1006)에서 수행되는 바와 같다. 이와 같이, 방법(1400)의 단계(1406)는, 글로벌 ECC 로직(360) 내에서 s1, s3, 및 s1^3의 계산을 중복하는 것뿐만 아니라, 단계(1004)에서 검출된 판독 데이터 및 에러의 개수를 글로벌 ECC 로직(360)으로 입력하는 것을 포함한다. 이는 도 7의 ECC 프로세스(700)와 관련하여 도 8에 도시되는 방법(800)에서 발생하는 중복과 유사하다.14 is a flow diagram of a
도 15는 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스(1500)를 일반적으로 도시하는 블록도이다. ECC 논리 프로세스(1500)는 상기 ECC 논리 프로세스(900)와 유사하지만, XOR 회로(354), 역수 계산 회로(355) 및 GF 다중 계산 회로(356)가 로컬 ECC 논리(340)에 포함되고, 더 이상 글로벌 ECC 논리(360)에 포함되지 않는다는 차이점이 있다. XOR 회로(354), 역수 계산 회로(355) 및 GF 다중 계산 회로(356)를 로컬 ECC 로직(340) 내에 포함하는 것은 로컬 ECC 로직(340)의 계산 유틸리티 및 전력을 증가시킨다. ECC 프로세스(900) 및 도 9와 관련하여 위에서 설명되는 바와 같이, MRAM 디바이스(100)의 효율은, 데이터 에러율이 증가함에 따라 로컬로 수행되는 동작을 증가시킴으로써, 에러 검사와 관련되는 면적, 에너지 소비 및 데이터 레이턴시 사이의 균형을 조정함으로써 증가될 수 있다. 예를 들어, 데이터를 공유 글로벌 ECC 회로(160)로 이동시키는 것과 관련되는 데이터 레이턴시 및 에너지 소비를 감소시키기 위해 로컬 ECC 회로(140a-n) 내에 로컬로 더 많은 에러 검사 회로부를 구현함으로써 면적과의 균형을 유지한다. 예를 들어, ECC 로직 프로세스(1500)에서, 로컬 ECC 로직(340)은, 에러 정정 및 코딩 및 에러 정정된 데이터를 로컬 매크로에 다시 기록하는 것을 제외하고, 모든 ECC 동작을 로컬로 수행한다.15 is a block diagram generally illustrating an example
도 16은 ECC 논리 프로세스(1500)를 사용하여 MRAM 에러를 정정하기 위한 방법(1600)의 흐름도이다. 방법(1600)은 상기 방법(1000)과 유사하지만, 다섯 가지 차이점이 있다. 첫 번째, 방법(1600)은 방법(1000)의 단계(1004)를 단계(1604)로 대체한다. 방법(1600)의 단계(1604)는 방법(1000)의 단계(1004)와 동일한 동작, 즉 s1, s3, s1^3 및 EN의 계산에 기초하여 로컬 ECC 로직(340) 내의 판독 데이터 내에 에러가 존재하는지 여부 및 에러의 개수의 계산을 수행한다. 유일한 차이는 판독 데이터 내에 에러가 존재하는 경우, 단계(1604)는 단계(1006)가 아니라 방법(1600)의 단계(1610)로 진행한다는 점이다. 이는 ECC 논리 프로세스(1500)에서 로컬 ECC 논리(340) 내에 포함되는 추가 회로 때문이다. 두 번째, 단계(1006)는 방법(1600)에서 수행되지 않고, 그보다 방법(1000)과의 세 번째 차이로서, 단계(1610)는 방법(1600)의 단계(1604)로부터 진행한다. 단계(1610)에서, s3과 s1^3의 XOR이, 예를 들어 로컬 ECC 논리(340) 내의 역수 계산 회로(355)에 의한 역수(s1)와 함께, 예를 들어 XOR 계산 회로(354)에 의해 계산된다. 네 번째, 단계(1612)에서, GF 다중은 로컬 ECC 논리(340) 내에서 계산된다. 다섯 번째, 단계(1613)에서, 판독 데이터, 검출되는 에러 개수, s1, 및 GF 다중 계산 결과가 글로벌 ECC 로직(360)에 입력되고 방법(1600)의 단계(414)에서 정정된 코드 워드의 계산에 사용된다.16 is a flow diagram of a
도 17은 일 실시예에 따른 MRAM 에러 정정을 위한 예시적인 ECC 논리 프로세스(1700)를 일반적으로 도시하는 블록도이다. ECC 로직 프로세스(1700)는 상기 ECC 로직 프로세스(1500)와 유사하지만, 검사 비트 생성기(353)가 더 이상 글로벌 ECC 로직(360) 내에 포함되지 않고 로컬 ECC 로직(340) 내에 포함된다는 차이점이 있다. 도 5 및 도 11과 관련하여 전술한 바와 같이, ECC 논리 프로세스(1700)의 이러한 차이는, 패리티 비트를 정정된 데이터로 인코딩하는 동작 및 결과적인 정정된 코드워드를 로컬 메모리 어레이(102a)에 기록하는 동작을 로컬 메모리 어레이(102a)와 연관된 로컬 ECC 논리(340)로 오프로드하여, 글로벌 ECC 로직(360)이, 패리티를 인코딩하고, 글로벌 ECC 로직(360)을 공유하는 복수의 메모리 매크로(130a-n)를 위해 정정된 코드 워드를 기록하는 책임을 더 이상 갖지 않도록 한다.17 is a block diagram generally illustrating an example
도 18은 ECC 논리 프로세스(1700)를 사용하여 MRAM 에러를 정정하기 위한 방법(1800)의 흐름도이다. 방법(1800)은 상기 방법(1600)과 유사하지만, 단계(416)가 단계(616)로 대체되어, 정정된 워드, 예를 들어, 정정된 데이터를 정정된 코드워드로부터 추출하는 단계, 선택된 ECC 유형 또는 방식에 따라 사전에 정의된 패리티 검사 매트릭스를 사용하여 정정된 데이터를 패리티 비트로 인코딩하는 단계, 및 정정되고 인코딩된 코드 워드를 로컬 ECC 논리(340)와 연관되는 로컬 메모리 어레이(102)에 다시 기록하는 단계가 글로벌 ECC 로직(360) 내가 아닌, 방법(600, 800, 1200)과 같은 로컬 ECC 로직(340) 내에서 수행되는 데 차이점이 있다.18 is a flow diagram of a
도 19는 일부 실시예에 따른 계층적 ECC 논리 프로세스를 사용하여 MRAM 에러를 정정하기 위한 방법(1900)의 흐름도이다. 방법(1900)은, 각각 적어도 메모리 셀 어레이 및 로컬 ECC 논리 회로를 포함하는 복수의 메모리 매크로, 예를 들어, MRAM 메모리 매크로(130a-n)가 제공되는 단계(1902)에서 시작한다. 일부 실시예에서, 복수의 메모리 매크로는 로컬 메모리 어레이(102a-n)를 포함하고, 로컬 메모리 어레이(102a-n) 각각은 로컬 ECC 로직(140a-n)을 각각 포함한다. 단계(1904)에서, 복수의 MRAM 매크로로부터 떨어져 있고 복수의 MRAM 매크로 각각에 결합되는 글로벌 ECC 논리 회로가 제공된다. 일부 실시예에서, 글로벌 ECC 로직 회로는 글로벌 ECC 로직(160)을 포함한다. 단계(1906)에서, 로컬 MRAM 매크로로부터의 데이터는, 로컬 MRAM 메모리의 일부, 예를 들어 판독 데이터 또는 코드 워드의 에러가 로컬 ECC 로직 회로 내에서 검사되는 리프레시 주기의 일부로서 검사된다. 특정 코드 워드에서 에러가 발견되지 않으면, 매크로 내의 다음 코드 워드가 리프레시 주기의 일부로 검사된다. 다음으로, 방법(1900)은 단계(1908)로 진행하는데, 여기서 적어도 하나의 에러가 로컬 매크로의 메모리 어레이 내에서 발견되면, 검사되어 적어도 하나의 에러를 갖는 것으로 밝혀진 데이터, 예를 들어 적어도 하나의 에러를 갖는 코드 워드는 로컬 ECC 로직 회로 내의 계산 회로의 출력과 함께 글로벌 ECC 로직으로 전송된다. 단계(1910)에서 적어도 하나의 에러를 갖는 데이터가 글로벌 ECC 논리 회로 내에서 정정되고, 단계(1912)에서 정정된 데이터가 로컬 매크로 메모리 어레이에 다시 기록된다.19 is a flow diagram of a
따라서, 개시되는 예는 메모리 디바이스, 특히 주기적인 리프레시를 요구하는 MRAM과 같은 단기 보유 메모리 디바이스에 대한 에러 검출 및 정정을 제공한다. 일부 ECC 기능이 메모리 매크로에 로컬로 제공되고 다른 ECC 기능이 글로벌로 제공되는 계층적 ECC 접근법을 사용함으로써, MRAM 디바이스에 대한 전력 감소뿐만 아니라 매크로 면적 감소는 충분히 낮은 에러율로 달성될 수 있다. 소정의 개시된 실시예는 MRAM 메모리 디바이스와 같은 메모리 디바이스를 포함하며, 메모리 디바이스는, 각각 메모리 셀의 어레이 및 제1 ECC 회로를 포함하는 복수의 메모리 매크로를 포함한다. 제1 ECC 회로는 각각의 메모리 매크로 내의 데이터 에러를 검출하도록 구성된다. 제2 ECC 회로는 복수의 메모리 매크로로부터 떨어져 있고, 복수의 메모리 매크로 각각에 통신가능하게 결합된다. 제2 ECC 회로는 복수의 메모리 매크로의 제1 ECC 회로로부터 검출된 데이터 에러를 수신하고, 데이터 에러를 정정하고, 메모리 어레이에 정정된 데이터를 기록하도록 구성된다.Accordingly, the disclosed examples provide error detection and correction for memory devices, particularly short-lived memory devices such as MRAMs that require periodic refreshes. By using a hierarchical ECC approach in which some ECC functions are provided locally in the memory macro and other ECC functions are provided globally, power reduction for the MRAM device as well as macro area reduction can be achieved with a sufficiently low error rate. Certain disclosed embodiments include a memory device, such as an MRAM memory device, wherein the memory device includes a plurality of memory macros each comprising an array of memory cells and a first ECC circuit. The first ECC circuit is configured to detect data errors in each memory macro. A second ECC circuit is remote from and communicatively coupled to each of the plurality of memory macros. The second ECC circuit is configured to receive the data error detected from the first ECC circuit of the plurality of memory macros, correct the data error, and write the corrected data to the memory array.
더 나아간 양태에 따르면, ECC 시스템은 복수의 제1 ECC 회로를 포함한다. 복수의 제1 ECC 회로 각각은 각각의 메모리 어레이에 통신가능하게 결합되고, 각각의 메모리 어레이 내의 데이터 에러를 검출하도록 구성된다. 제2 ECC 회로는 복수의 제1 ECC 회로 각각에 통신가능하게 결합되고, 복수의 제1 ECC 회로로부터 검출된 데이터 에러를 수신하고 데이터 에러를 정정하도록 구성된다.According to a further aspect, the ECC system includes a plurality of first ECC circuits. Each of the plurality of first ECC circuits is communicatively coupled to a respective memory array and configured to detect data errors in each memory array. A second ECC circuit is communicatively coupled to each of the plurality of first ECC circuits and is configured to receive and correct data errors detected from the first plurality of ECC circuits.
더 나아간 양태에 따르면, 방법은, 각각 메모리 셀 어레이 및 제1 ECC 회로를 포함하는 복수의 메모리 매크로를 제공하는 단계를 포함한다. 방법은 복수의 메모리 매크로들로부터 떨어져 있고 복수의 메모리 매크로 각각에 통신가능하게 결합되는 제2 ECC 회로를 제공하는 단계, 및 제1 ECC 회로로 메모리 어레이 내의 데이터 에러를 검사하는 단계를 포함하는 메모리 어레이를 리프레싱(refreshing)하는 단계를 더 포함한다. 제1 ECC 회로에 의해 데이터 에러가 식별되면, 방법은 검출된 데이터 에러를 제2 ECC 회로에 포워딩(forwarding)하는 단계, 제2 ECC 회로에 의해 데이터 에러를 정정하는 단계, 및 정정된 데이터를 메모리 어레이에 기록하는 단계를 더 포함한다. According to a further aspect, a method includes providing a plurality of memory macros each comprising an array of memory cells and a first ECC circuit. The method includes providing a second ECC circuit remote from and communicatively coupled to each of the plurality of memory macros, and checking for data errors in the memory array with the first ECC circuit. It further comprises the step of refreshing (refreshing). If a data error is identified by the first ECC circuit, the method includes forwarding the detected data error to a second ECC circuit, correcting the data error by the second ECC circuit, and storing the corrected data into memory. and writing to the array.
전술한 바는 몇몇 실시예의 피처를 개략적으로 설명하여 당업자가 본 개시의 양태를 더 잘 이해할 수 있도록 한다. 당업자는 본 개시에서 소개하는 실시예와 동일한 목적을 수행하고/하거나 동일한 장점을 달성하기 위한 다른 공정 및 구조를 디자인 또는 변경하기 위한 기초로서 본 개시를 용이하게 사용할 수 있다는 것을 이해할 것이다. 당업자는 또한 이러한 균등 구성이 본 개시의 사상 및 범위를 벗어나지 않는다는 것과, 그들이 본 개시의 사상 및 범위를 벗어나지 않고 다양한 변경, 치환 및 변형을 행할 수 있음을 알 것이다.The foregoing outlines features of some embodiments to enable those skilled in the art to better understand aspects of the present disclosure. Those skilled in the art will appreciate that they may readily use the present disclosure as a basis for designing or modifying other processes and structures for carrying out the same purposes and/or achieving the same advantages as the embodiments introduced in this disclosure. Those skilled in the art will also appreciate that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions and modifications without departing from the spirit and scope of the present disclosure.
실시예들Examples
실시예 1. 메모리 디바이스에 있어서,
복수의 메모리 매크로(memory macro)로서, 메모리 셀의 어레이 및 상기 각각의 메모리 매크로 내의 데이터 에러를 검출하도록 구성되는 제1 에러 정정 코드(error correction code; ECC) 회로를 각각 포함하는, 상기 복수의 메모리 매크로;a plurality of memory macros, each memory comprising an array of memory cells and a first error correction code (ECC) circuit configured to detect data errors in each memory macro macro;
제2 ECC 회로로서, 상기 복수의 메모리 매크로로부터 떨어져 있고 상기 복수의 메모리 매크로 각각에 통신가능하게 결합되며, 상기 복수의 메모리 매크로의 제1 ECC 회로로부터 상기 검출된 데이터 에러를 수신하고, 상기 데이터 에러를 정정하며, 상기 메모리 어레이에 상기 정정된 데이터를 기록하도록 구성되는 것인, 상기 제2 ECC 회로를 포함하는, 메모리 디바이스.a second ECC circuit remote from and communicatively coupled to each of the plurality of memory macros, receiving the detected data error from a first ECC circuit of the plurality of memory macros, the data error and the second ECC circuit configured to write the corrected data to the memory array.
실시예 2. 실시예 1에 있어서, 상기 메모리 매크로는 자기 랜덤 액세스 메모리(magnetic random access memory; MRAM) 매크로를 각각 포함하는 것인, 메모리 디바이스.
실시예 3. 실시예 2에 있어서, 상기 MRAM 매크로는 각각,
MRAM 비트 셀의 어레이로서, 각각의 MRAM 비트 셀이,An array of MRAM bit cells, each MRAM bit cell comprising:
자기 터널 접합 엘리먼트; magnetic tunnel junction element;
상기 자기 터널 접합 엘리먼트에 결합되는 액세스 트랜지스터; an access transistor coupled to the magnetic tunnel junction element;
상기 액세스 트랜지스터에 결합되는 제1 비트 라인; a first bit line coupled to the access transistor;
상기 자기 터널 접합 엘리먼트에 결합되는 제2 비트 라인; a second bit line coupled to the magnetic tunnel junction element;
상기 액세스 트랜지스터의 게이트에 결합되는 워드 라인을 포함하는 것인, 상기 MRAM 비트 셀의 어레이; 및 an array of MRAM bit cells comprising a word line coupled to the gate of the access transistor; and
상기 MRAM 비트 셀의 제1 비트 라인 및 제2 비트 라인에 결합되는 로컬 입출력 회로부(local input-output circuitry)를 더 포함하는 것인, 메모리 디바이스.and local input-output circuitry coupled to the first bit line and the second bit line of the MRAM bit cell.
실시예 4. 실시예 3에 있어서, 상기 제1 ECC 회로는,Embodiment 4. The method of
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기(syndrome s1 generator);a first syndrome s1 generator coupled to the first bit line and the second bit line;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기; 및a second syndrome s3 generator coupled to the first bit line and the second bit line; and
상기 제1 신드롬 s1 생성기 및 상기 제2 신드롬 s3 생성기 각각의 출력부에 결합되는 에러 검사 회로를 포함하는 것인, 메모리 디바이스.and an error checking circuit coupled to an output of each of the first syndrome s1 generator and the second syndrome s3 generator.
실시예 5. 실시예 4에 있어서, 상기 제2 ECC 회로는,Embodiment 5. The method according to embodiment 4, wherein the second ECC circuit comprises:
상기 로컬 입출력 회로부에 결합되는 EN 계산 회로;an EN calculation circuit coupled to the local input/output circuitry;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로;a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로(syndrome s1 inversion circuit);a syndrome s1 inversion circuit coupled to an output of the first syndrome s1 generator;
상기 신드롬 s1^3 생성기의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기;a syndrome comparator coupled to an output of the syndrome s1^3 generator and an output of the second syndrome s3 generator;
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로;a GF multiple calculation circuit coupled to an output of the syndrome comparator and an output of the syndrome s1 reciprocal circuit;
상기 로컬 입출력 회로부, 상기 신드롬 s1 생성기 및 상기 GF 다중 계산 회로에 결합되는 에러 정정 회로; 및an error correction circuit coupled to the local input/output circuitry, the syndrome s1 generator and the GF multiple calculation circuit; and
에러가 있는 상기 MRAM 셀을 정정하기 위한 검사 비트 생성기 회로를 포함하는 것인, 메모리 디바이스.and a check bit generator circuit for correcting the erroneous MRAM cell.
실시예 6. 실시예 3에 있어서, 상기 제1 ECC 회로는,Embodiment 6. The method according to
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기;a first syndrome s1 generator coupled to the first bit line and the second bit line;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기; a second syndrome s3 generator coupled to the first bit line and the second bit line;
상기 로컬 입출력 회로부에 결합되는 EN 계산 회로; an EN calculation circuit coupled to the local input/output circuitry;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로;a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator;
상기 제1 신드롬 s1 생성기, 상기 제2 신드롬 s3 생성기, 상기 EN 계산 회로, 및 상기 신드롬 s1^3 계산 회로 각각의 출력부에 결합되는 에러 검사 회로를 포함하는 것인, 메모리 디바이스.and an error checking circuit coupled to an output of each of the first syndrome s1 generator, the second syndrome s3 generator, the EN computation circuit, and the syndrome s1^3 computation circuit.
실시예 7. 실시예 6에 있어서, 상기 제2 ECC 회로는,Embodiment 7. The method according to Embodiment 6, wherein the second ECC circuit comprises:
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로;a syndrome s1 reciprocal circuit coupled to an output of the first syndrome s1 generator;
상기 신드롬 s1^3 생성기의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기;a syndrome comparator coupled to an output of the syndrome s1^3 generator and an output of the second syndrome s3 generator;
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로; a GF multiple calculation circuit coupled to an output of the syndrome comparator and an output of the syndrome s1 reciprocal circuit;
상기 로컬 입출력 회로부, 상기 신드롬 s1 생성기 및 상기 GF 다중 계산 회로에 결합되는 에러 정정 회로; 및an error correction circuit coupled to the local input/output circuitry, the syndrome s1 generator and the GF multiple calculation circuit; and
에러가 있는 상기 MRAM 셀을 정정하기 위한 검사 비트 생성기 회로를 포함하는 것인, 메모리 디바이스.and a check bit generator circuit for correcting the erroneous MRAM cell.
실시예 8. 실시예 3에 있어서, 상기 제1 ECC 회로는,Embodiment 8. The method according to
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기;a first syndrome s1 generator coupled to the first bit line and the second bit line;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기; a second syndrome s3 generator coupled to the first bit line and the second bit line;
상기 로컬 입출력 회로부에 결합되는 EN 계산 회로; an EN calculation circuit coupled to the local input/output circuitry;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로;a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator;
상기 제1 신드롬 s1 생성기, 상기 제2 신드롬 s3 생성기, 상기 EN 계산 회로, 및 상기 신드롬 s1^3 계산 회로 각각의 출력부에 결합되는 에러 검사 회로;an error checking circuit coupled to an output of each of the first syndrome s1 generator, the second syndrome s3 generator, the EN calculation circuit, and the syndrome s1^3 calculation circuit;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로;a syndrome s1 reciprocal circuit coupled to an output of the first syndrome s1 generator;
상기 신드롬 s1^3 생성기의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기; 및a syndrome comparator coupled to an output of the syndrome s1^3 generator and an output of the second syndrome s3 generator; and
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로를 포함하는 것인, 메모리 디바이스.and a GF multiple computation circuit coupled to the output of the syndrome comparator and the output of the syndrome s1 reciprocal circuit.
실시예 9. 실시예 8에 있어서, 상기 제2 ECC 회로는,Embodiment 9. The method of embodiment 8, wherein the second ECC circuit comprises:
상기 로컬 입출력 회로부, 상기 신드롬 s1 생성기, 및 상기 GF 다중 계산 회로에 결합되는 에러 정정 회로; 및an error correction circuit coupled to the local input/output circuitry, the syndrome s1 generator, and the GF multiple calculation circuit; and
에러가 있는 상기 MRAM 셀을 정정하기 위한 검사 비트 생성기 회로를 포함하는 것인, 메모리 디바이스.and a check bit generator circuit for correcting the erroneous MRAM cell.
실시예 10. ECC 시스템에 있어서,Example 10. An ECC system comprising:
복수의 제1 ECC 회로로서, 상기 복수의 제1 ECC 회로 각각은 각각의 메모리 어레이에 통신가능하게 결합되도록 구성되고, 상기 각각의 메모리 어레이 내의 데이터 에러를 검출하도록 구성되는 것인, 상기 복수의 제1 ECC 회로; 및a plurality of first ECC circuits, each of the plurality of first ECC circuits configured to be communicatively coupled to a respective memory array, and configured to detect data errors within the respective memory array. 1 ECC circuit; and
제2 ECC 회로로서, 상기 복수의 제1 ECC 회로 각각에 통신가능하게 결합되고, 상기 복수의 제1 ECC 회로로부터 상기 검출된 데이터 에러를 수신하고 상기 데이터 에러를 정정하도록 구성되는 것인, 상기 제2 ECC 회로를 포함하는, ECC 시스템.a second ECC circuit, communicatively coupled to each of the plurality of first ECC circuits, and configured to receive the detected data error from the plurality of first ECC circuits and correct the data error. An ECC system comprising 2 ECC circuits.
실시예 11. 실시예 10에 있어서, 상기 복수의 제1 ECC 회로 각각은,Embodiment 11. The method according to embodiment 10, wherein each of the plurality of first ECC circuits comprises:
제1 비트 라인 및 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기;a first syndrome s1 generator coupled to the first bit line and the second bit line;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기; 및a second syndrome s3 generator coupled to the first bit line and the second bit line; and
상기 제1 신드롬 s1 생성기 및 상기 제2 신드롬 s3 생성기 각각의 출력부에 결합되는 에러 검사 회로를 포함하고,an error checking circuit coupled to an output of each of the first syndrome s1 generator and the second syndrome s3 generator;
상기 제2 ECC 회로는,The second ECC circuit,
로컬 입출력 회로부에 결합되는 EN 계산 회로; an EN calculation circuit coupled to the local input/output circuitry;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로; a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로; a syndrome s1 reciprocal circuit coupled to an output of the first syndrome s1 generator;
상기 신드롬 s1^3 생성기의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기; a syndrome comparator coupled to an output of the syndrome s1^3 generator and an output of the second syndrome s3 generator;
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로; a GF multiple calculation circuit coupled to an output of the syndrome comparator and an output of the syndrome s1 reciprocal circuit;
상기 로컬 입출력 회로부, 상기 신드롬 s1 생성기, 및 상기 GF 다중 계산 회로에 결합되는 에러 정정 회로; 및 an error correction circuit coupled to the local input/output circuitry, the syndrome s1 generator, and the GF multiple calculation circuit; and
에러가 있는 상기 MRAM 셀을 정정하기 위한 검사 비트 생성기 회로를 포함하는 것인, ECC 시스템. and a check bit generator circuit for correcting the erroneous MRAM cell.
**
실시예 12. 실시예 10에 있어서, 상기 복수의 제1 ECC 회로 각각은,Embodiment 12. The method according to Embodiment 10, wherein each of the plurality of first ECC circuits comprises:
제1 비트 라인 및 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기;a first syndrome s1 generator coupled to the first bit line and the second bit line;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기; a second syndrome s3 generator coupled to the first bit line and the second bit line;
로컬 입출력 회로부에 결합되는 EN 계산 회로; an EN calculation circuit coupled to the local input/output circuitry;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로;a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator;
상기 제1 신드롬 s1 생성기, 상기 제2 신드롬 s3 생성기, 상기 EN 계산 회로, 및 상기 신드롬 s1^3 계산 회로 각각의 출력부에 결합되는 에러 검사 회로를 포함하고, an error checking circuit coupled to the output of each of the first syndrome s1 generator, the second syndrome s3 generator, the EN calculation circuit, and the syndrome s1^3 calculation circuit;
상기 제2 ECC 회로는,The second ECC circuit,
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로;a syndrome s1 reciprocal circuit coupled to an output of the first syndrome s1 generator;
상기 신드롬 s1^3 생성기의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기;a syndrome comparator coupled to an output of the syndrome s1^3 generator and an output of the second syndrome s3 generator;
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로; a GF multiple calculation circuit coupled to an output of the syndrome comparator and an output of the syndrome s1 reciprocal circuit;
상기 로컬 입출력 회로부, 상기 신드롬 s1 생성기, 및 상기 GF 다중 계산 회로에 결합되는 에러 정정 회로; 및an error correction circuit coupled to the local input/output circuitry, the syndrome s1 generator, and the GF multiple calculation circuit; and
에러가 있는 상기 MRAM 셀을 정정하기 위한 검사 비트 생성기 회로를 포함하는 것인, ECC 시스템.and a check bit generator circuit for correcting the erroneous MRAM cell.
실시예 13. 실시예 10에 있어서, 상기 복수의 제1 ECC 회로 각각은,Embodiment 13. The method according to Embodiment 10, wherein each of the plurality of first ECC circuits comprises:
제1 비트 라인 및 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기;a first syndrome s1 generator coupled to the first bit line and the second bit line;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기; a second syndrome s3 generator coupled to the first bit line and the second bit line;
로컬 입출력 회로부에 결합되는 EN 계산 회로; an EN calculation circuit coupled to the local input/output circuitry;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로;a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator;
상기 제1 신드롬 s1 생성기, 상기 제2 신드롬 s3 생성기, 상기 EN 계산 회로, 및 상기 신드롬 s1^3 계산 회로 각각의 출력부에 결합되는 에러 검사 회로;an error checking circuit coupled to an output of each of the first syndrome s1 generator, the second syndrome s3 generator, the EN calculation circuit, and the syndrome s1^3 calculation circuit;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로;a syndrome s1 reciprocal circuit coupled to an output of the first syndrome s1 generator;
상기 신드롬 s1^3 생성기의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기; 및a syndrome comparator coupled to an output of the syndrome s1^3 generator and an output of the second syndrome s3 generator; and
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로를 포함하고,a GF multiple calculation circuit coupled to the output of the syndrome comparator and the output of the syndrome s1 reciprocal circuit;
상기 제2 ECC 회로는,The second ECC circuit,
상기 로컬 입출력 회로부, 상기 신드롬 s1 생성기, 및 상기 GF 다중 계산 회로에 결합되는 에러 정정 회로; 및an error correction circuit coupled to the local input/output circuitry, the syndrome s1 generator, and the GF multiple calculation circuit; and
에러가 있는 상기 MRAM 셀을 정정하기 위한 검사 비트 생성기 회로를 포함하는 것인, ECC 시스템.and a check bit generator circuit for correcting the erroneous MRAM cell.
실시예 14. 방법에 있어서,Example 14. A method comprising:
복수의 메모리 매크로를 제공하는 단계로서, 상기 복수의 메모리 매크로는 메모리 셀의 어레이 및 제1 ECC 회로를 각각 포함하는 것인, 상기 복수의 메모리 매크로를 제공하는 단계;providing a plurality of memory macros, wherein the plurality of memory macros each include an array of memory cells and a first ECC circuit;
제2 ECC 회로를 제공하는 단계로서, 상기 제2 ECC 회로는 상기 복수의 메모리 매크로로부터 떨어져 있고 상기 복수의 메모리 매크로 각각에 통신가능하게 결합되는 것인, 상기 제2 ECC 회로를 제공하는 단계;providing a second ECC circuit, wherein the second ECC circuit is remote from and communicatively coupled to each of the plurality of memory macros;
상기 메모리 어레이를 리프레싱(refreshing)하는 단계로서, 상기 제1 ECC 회로로 상기 메모리 어레이 내의 데이터 에러를 검사하는 단계를 포함하는, 상기 메모리 어레이를 리프레싱하는 단계;refreshing the memory array, the method comprising: checking the memory array for data errors in the memory array with the first ECC circuit;
상기 제1 ECC 회로에 의해 데이터 에러가 식별되면, 상기 검출된 데이터 에러를 상기 제2 ECC 회로에 포워딩(forwarding)하는 단계;if the data error is identified by the first ECC circuit, forwarding the detected data error to the second ECC circuit;
상기 제2 ECC 회로에 의해 상기 데이터 에러를 정정하는 단계; 및correcting the data error by the second ECC circuit; and
상기 정정된 데이터를 상기 메모리 어레이에 기록하는 단계를 포함하는, 방법.and writing the corrected data to the memory array.
실시예 15. 실시예 14에 있어서, 상기 제1 ECC 회로로 상기 MRAM 어레이 내의 데이터 에러를 검사하는 단계는,Embodiment 15. The method of embodiment 14, wherein checking for data errors in the MRAM array with the first ECC circuit comprises:
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 신드롬 s1을 생성하는 단계;generating a syndrome s1 based on data received from the MRAM array;
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 신드롬 s3을 생성하는 단계; 및generating a syndrome s3 based on data received from the MRAM array; and
상기 신드롬 s1 및 상기 신드롬 s3에 기초한 에러 검사 단계를 포함하는 것인, 방법.and error checking based on the syndrome s1 and the syndrome s3.
실시예 16. 실시예 15에 있어서, 상기 제2 ECC 회로로 상기 데이터 에러를 정정하는 단계는,Embodiment 16. The method of embodiment 15, wherein correcting the data error with the second ECC circuit comprises:
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 EN을 생성하는 단계;generating an EN based on data received from the MRAM array;
상기 신드롬 s1 에 기초하여 신드롬 s1^3을 생성하는 단계;generating a syndrome s1^3 based on the syndrome s1;
상기 신드롬 s1에 기초하여 신드롬 s1 역수를 생성하는 단계;generating a syndrome s1 inverse based on the syndrome s1;
상기 신드롬 s1^3과 상기 신드롬 s3을 비교하는 단계;comparing the syndrome s1^3 with the syndrome s3;
상기 신드롬 s1 역수 및 상기 신드롬 s1^3과 상기 신드롬 s3의 비교에 기초하여 GF 다중 계산을 생성하는 단계;generating a GF multiple calculation based on the reciprocal of the syndrome s1 and the comparison of the syndrome s1^3 with the syndrome s3;
상기 EN, 상기 신드롬 s1, 및 상기 GF 다중 계산에 기초하여 검사 비트 에러 정정을 생성하는 단계; 및generating a check bit error correction based on the EN, the syndrome s1, and the GF multiple calculation; and
상기 에러를 정정하기 위해 상기 검사 비트 에러 정정을 상기 MRAM 어레이에 기록하는 단계를 포함하는 것인, 방법.and writing the check bit error correction to the MRAM array to correct the error.
실시예 17. 실시예 14에 있어서, 상기 제1 ECC 회로로 상기 MRAM 어레이 내의 데이터 에러를 검사하는 단계는,Embodiment 17. The method of embodiment 14, wherein checking for data errors in the MRAM array with the first ECC circuit comprises:
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 신드롬 s1을 생성하는 단계;generating a syndrome s1 based on data received from the MRAM array;
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 신드롬 s3을 생성하는 단계;generating a syndrome s3 based on data received from the MRAM array;
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 EN을 생성하는 단계;generating an EN based on data received from the MRAM array;
상기 신드롬 s1에 기초하여 신드롬 s1^3을 생성하는 단계; 및generating a syndrome s1^3 based on the syndrome s1; and
상기 신드롬 s1, 상기 신드롬 s3, 상기 EN 및 상기 신드롬 s1^3에 기초한 에러 검사 단계를 포함하는 것인, 방법.and an error checking step based on the syndrome s1, the syndrome s3, the EN and the
실시예 18. 실시예 17에 있어서, 상기 제2 ECC 회로로 상기 데이터 에러를 정정하는 단계는,Embodiment 18. The method of embodiment 17, wherein correcting the data error with the second ECC circuit comprises:
상기 신드롬 s1에 기초하여 신드롬 s1 역수를 생성하는 단계;generating a syndrome s1 inverse based on the syndrome s1;
상기 신드롬 s1^3과 상기 신드롬 s3을 비교하는 단계;comparing the syndrome s1^3 with the syndrome s3;
상기 신드롬 s1 역수 및 상기 신드롬 s1^3과 상기 신드롬 s3의 비교에 기초하여 GF 다중 계산을 생성하는 단계;generating a GF multiple calculation based on the reciprocal of the syndrome s1 and the comparison of the syndrome s1^3 with the syndrome s3;
상기 EN, 상기 신드롬 s1, 및 상기 GF 다중 계산에 기초하여 검사 비트 에러 정정을 생성하는 단계; 및generating a check bit error correction based on the EN, the syndrome s1, and the GF multiple calculation; and
상기 에러를 정정하기 위해 상기 검사 비트 에러 정정을 상기 MRAM 어레이에 기록하는 단계를 포함하는 것인, 방법.and writing the check bit error correction to the MRAM array to correct the error.
실시예 19. 실시예 14에 있어서, 상기 제1 ECC 회로로 상기 MRAM 어레이 내의 데이터 에러를 검사하는 단계는,Embodiment 19. The method of embodiment 14, wherein checking for data errors in the MRAM array with the first ECC circuit comprises:
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 신드롬 s1을 생성하는 단계;generating a syndrome s1 based on data received from the MRAM array;
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 신드롬 s3을 생성하는 단계;generating a syndrome s3 based on data received from the MRAM array;
상기 MRAM 어레이로부터 수신되는 데이터에 기초하여 EN을 생성하는 단계;generating an EN based on data received from the MRAM array;
상기 신드롬 s1에 기초하여 신드롬 s1^3을 생성하는 단계;generating a syndrome s1^3 based on the syndrome s1;
상기 신드롬 s1, 상기 신드롬 s3, 상기 EN, 및 상기 신드롬 s1^3에 기초한 에러 검사 단계;an error checking step based on the syndrome s1, the syndrome s3, the EN, and the syndrome s1^3;
상기 신드롬 s1에 기초하여 신드롬 s1 역수를 생성하는 단계;generating a syndrome s1 inverse based on the syndrome s1;
상기 신드롬 s1^3과 상기 신드롬 s3을 비교하는 단계; 및comparing the syndrome s1^3 with the syndrome s3; and
상기 신드롬 s1 역수 및 상기 신드롬 s1^3과 상기 신드롬 s3의 비교에 기초하여 GF 다중 계산을 생성하는 단계를 포함하는 것인, 방법.and generating a GF multiple calculation based on the reciprocal of the syndrome s1 and the comparison of the syndrome s1^3 with the syndrome s3.
실시예 20. 실시예 19에 있어서, 상기 제2 ECC 회로로 상기 데이터 에러를 정정하는 단계는,Embodiment 20. The method according to embodiment 19, wherein correcting the data error with the second ECC circuit comprises:
상기 EN, 상기 신드롬 s1, 및 상기 GF 다중 계산에 기초하여 검사 비트 에러 정정을 생성하는 단계; 및generating a check bit error correction based on the EN, the syndrome s1, and the GF multiple calculation; and
상기 에러를 정정하기 위해 상기 검사 비트 에러 정정을 상기 MRAM 어레이에 기록하는 단계를 포함하는 것인, 방법.and writing the check bit error correction to the MRAM array to correct the error.
Claims (6)
복수의 메모리 매크로(memory macro)로서, 메모리 셀의 메모리 어레이 및 상기 각각의 메모리 매크로 내의 데이터 에러를 검출하도록 구성되는 제1 에러 정정 코드(error correction code; ECC) 회로를 각각 포함하는, 상기 복수의 메모리 매크로;
제2 ECC 회로로서, 상기 복수의 메모리 매크로로부터 떨어져 있고 상기 복수의 메모리 매크로 각각에 통신가능하게 결합되며, 상기 복수의 메모리 매크로의 제1 ECC 회로로부터 상기 검출된 데이터 에러를 수신하고, 상기 제1 ECC 회로로부터 수신된 상기 데이터 에러를 정정하며, 상기 메모리 어레이에 상기 정정된 데이터를 기록하도록 구성되는 것인, 상기 제2 ECC 회로를 포함하고,
상기 메모리 매크로는 자기 랜덤 액세스 메모리(magnetic random access memory; MRAM) 매크로를 각각 포함하고,
상기 MRAM 매크로는 각각,
MRAM 비트 셀의 어레이로서, 각각의 MRAM 비트 셀이,
자기 터널 접합 엘리먼트;
상기 자기 터널 접합 엘리먼트에 결합되는 액세스 트랜지스터;
상기 액세스 트랜지스터에 결합되는 제1 비트 라인;
상기 자기 터널 접합 엘리먼트에 결합되는 제2 비트 라인; 및
상기 액세스 트랜지스터의 게이트에 결합되는 워드 라인을 포함하는 것인, 상기 MRAM 비트 셀의 어레이; 및
상기 MRAM 비트 셀의 제1 비트 라인 및 제2 비트 라인에 결합되는 로컬 입출력 회로부(local input-output circuitry)
를 더 포함하고,
상기 제1 ECC 회로는,
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기;
상기 로컬 입출력 회로부에 결합되는 EN 계산 회로;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로; 및
상기 제1 신드롬 s1 생성기, 상기 제2 신드롬 s3 생성기, 상기 EN 계산 회로, 및 상기 신드롬 s1^3 계산 회로 각각의 출력부에 결합되는 에러 검사 회로
를 포함하는, 메모리 디바이스.A memory device comprising:
a plurality of memory macros, each comprising a memory array of memory cells and a first error correction code (ECC) circuit configured to detect data errors in each memory macro memory macro;
a second ECC circuit remote from and communicatively coupled to each of the plurality of memory macros, receiving the detected data error from a first ECC circuit of the plurality of memory macros; the second ECC circuit is configured to correct the data error received from the ECC circuit and write the corrected data to the memory array;
the memory macros each include a magnetic random access memory (MRAM) macro,
Each of the MRAM macros,
An array of MRAM bit cells, each MRAM bit cell comprising:
magnetic tunnel junction element;
an access transistor coupled to the magnetic tunnel junction element;
a first bit line coupled to the access transistor;
a second bit line coupled to the magnetic tunnel junction element; and
an array of MRAM bit cells comprising a word line coupled to the gate of the access transistor; and
local input-output circuitry coupled to a first bit line and a second bit line of the MRAM bit cell
further comprising,
The first ECC circuit,
a first syndrome s1 generator coupled to the first bit line and the second bit line;
a second syndrome s3 generator coupled to the first bit line and the second bit line;
an EN calculation circuit coupled to the local input/output circuitry;
a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator; and
an error checking circuit coupled to an output of each of the first syndrome s1 generator, the second syndrome s3 generator, the EN calculation circuit, and the syndrome s1^3 calculation circuit
A memory device comprising:
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로;
상기 신드롬 s1^3 계산 회로의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기;
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로;
상기 로컬 입출력 회로부, 상기 신드롬 s1 생성기 및 상기 GF 다중 계산 회로에 결합되는 에러 정정 회로; 및
에러가 있는 상기 MRAM 비트 셀을 정정하기 위한 검사 비트 생성기 회로를 포함하는 것인, 메모리 디바이스.According to claim 1, wherein the second ECC circuit,
a syndrome s1 reciprocal circuit coupled to an output of the first syndrome s1 generator;
a syndrome comparator coupled to an output of the syndrome s1^3 calculation circuit and an output of the second syndrome s3 generator;
a GF multiple calculation circuit coupled to an output of the syndrome comparator and an output of the syndrome s1 reciprocal circuit;
an error correction circuit coupled to the local input/output circuitry, the syndrome s1 generator and the GF multiple calculation circuit; and
and a check bit generator circuit to correct the erroneous MRAM bit cell.
복수의 메모리 매크로(memory macro)로서, 메모리 셀의 메모리 어레이 및 상기 각각의 메모리 매크로 내의 데이터 에러를 검출하도록 구성되는 제1 에러 정정 코드(error correction code; ECC) 회로를 각각 포함하는, 상기 복수의 메모리 매크로;
제2 ECC 회로로서, 상기 복수의 메모리 매크로로부터 떨어져 있고 상기 복수의 메모리 매크로 각각에 통신가능하게 결합되며, 상기 복수의 메모리 매크로의 제1 ECC 회로로부터 상기 검출된 데이터 에러를 수신하고, 상기 제1 ECC 회로로부터 수신된 상기 데이터 에러를 정정하며, 상기 메모리 어레이에 상기 정정된 데이터를 기록하도록 구성되는 것인, 상기 제2 ECC 회로
를 포함하고,
상기 메모리 매크로는 자기 랜덤 액세스 메모리(MRAM) 매크로를 각각 포함하고,
상기 MRAM 매크로는 각각,
MRAM 비트 셀의 어레이로서, 각각의 MRAM 비트 셀이,
자기 터널 접합 엘리먼트;
상기 자기 터널 접합 엘리먼트에 결합되는 액세스 트랜지스터;
상기 액세스 트랜지스터에 결합되는 제1 비트 라인;
상기 자기 터널 접합 엘리먼트에 결합되는 제2 비트 라인;
상기 액세스 트랜지스터의 게이트에 결합되는 워드 라인을 포함하는 것인, 상기 MRAM 비트 셀의 어레이; 및
상기 MRAM 비트 셀의 제1 비트 라인 및 제2 비트 라인에 결합되는 로컬 입출력 회로부(local input-output circuitry)
를 더 포함하고
상기 제1 ECC 회로는,
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기(syndrome s1 generator);
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기; 및
상기 제1 신드롬 s1 생성기 및 상기 제2 신드롬 s3 생성기 각각의 출력부에 결합되는 에러 검사 회로
를 포함하고,
상기 제2 ECC 회로는,
상기 로컬 입출력 회로부에 결합되는 EN 계산 회로;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로(syndrome s1 inversion circuit);
상기 신드롬 s1^3 계산 회로의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기;
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로;
상기 로컬 입출력 회로부, 상기 신드롬 s1 생성기 및 상기 GF 다중 계산 회로에 결합되는 에러 정정 회로; 및
에러가 있는 상기 MRAM 비트 셀을 정정하기 위한 검사 비트 생성기 회로
를 포함하는 것인, 메모리 디바이스.A memory device comprising:
a plurality of memory macros, each comprising a memory array of memory cells and a first error correction code (ECC) circuit configured to detect data errors in each memory macro memory macro;
a second ECC circuit remote from and communicatively coupled to each of the plurality of memory macros, receiving the detected data error from a first ECC circuit of the plurality of memory macros; and correcting the data error received from the ECC circuit and writing the corrected data to the memory array.
including,
each of the memory macros comprises a magnetic random access memory (MRAM) macro;
Each of the MRAM macros,
An array of MRAM bit cells, each MRAM bit cell comprising:
magnetic tunnel junction element;
an access transistor coupled to the magnetic tunnel junction element;
a first bit line coupled to the access transistor;
a second bit line coupled to the magnetic tunnel junction element;
an array of MRAM bit cells comprising a word line coupled to the gate of the access transistor; and
local input-output circuitry coupled to a first bit line and a second bit line of the MRAM bit cell
include more
The first ECC circuit,
a first syndrome s1 generator coupled to the first bit line and the second bit line;
a second syndrome s3 generator coupled to the first bit line and the second bit line; and
an error checking circuit coupled to an output of each of the first syndrome s1 generator and the second syndrome s3 generator
including,
The second ECC circuit,
an EN calculation circuit coupled to the local input/output circuitry;
a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator;
a syndrome s1 inversion circuit coupled to an output of the first syndrome s1 generator;
a syndrome comparator coupled to an output of the syndrome s1^3 calculation circuit and an output of the second syndrome s3 generator;
a GF multiple calculation circuit coupled to an output of the syndrome comparator and an output of the syndrome s1 reciprocal circuit;
an error correction circuit coupled to the local input/output circuitry, the syndrome s1 generator and the GF multiple calculation circuit; and
Check bit generator circuit to correct the MRAM bit cell in error
A memory device comprising:
복수의 메모리 매크로(memory macro)로서, 메모리 셀의 메모리 어레이 및 상기 각각의 메모리 매크로 내의 데이터 에러를 검출하도록 구성되는 제1 에러 정정 코드(error correction code; ECC) 회로를 각각 포함하는, 상기 복수의 메모리 매크로;
제2 ECC 회로로서, 상기 복수의 메모리 매크로로부터 떨어져 있고 상기 복수의 메모리 매크로 각각에 통신가능하게 결합되며, 상기 복수의 메모리 매크로의 제1 ECC 회로로부터 상기 검출된 데이터 에러를 수신하고, 상기 제1 ECC 회로로부터 수신된 상기 데이터 에러를 정정하며, 상기 메모리 어레이에 상기 정정된 데이터를 기록하도록 구성되는 것인, 상기 제2 ECC 회로
를 포함하고,
상기 메모리 매크로는 자기 랜덤 액세스 메모리(magnetic random access memory; MRAM) 매크로를 각각 포함하고,
상기 MRAM 매크로는 각각,
MRAM 비트 셀의 어레이로서, 각각의 MRAM 비트 셀이,
자기 터널 접합 엘리먼트;
상기 자기 터널 접합 엘리먼트에 결합되는 액세스 트랜지스터;
상기 액세스 트랜지스터에 결합되는 제1 비트 라인;
상기 자기 터널 접합 엘리먼트에 결합되는 제2 비트 라인; 및
상기 액세스 트랜지스터의 게이트에 결합되는 워드 라인을 포함하는 것인, 상기 MRAM 비트 셀의 어레이; 및
상기 MRAM 비트 셀의 제1 비트 라인 및 제2 비트 라인에 결합되는 로컬 입출력 회로부(local input-output circuitry)
를 더 포함하고,
상기 제1 ECC 회로는,
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기;
상기 로컬 입출력 회로부에 결합되는 EN 계산 회로;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로;
상기 제1 신드롬 s1 생성기, 상기 제2 신드롬 s3 생성기, 상기 EN 계산 회로, 및 상기 신드롬 s1^3 계산 회로 각각의 출력부에 결합되는 에러 검사 회로;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1 역수 회로;
상기 신드롬 s1^3 계산 회로의 출력부 및 상기 제2 신드롬 s3 생성기의 출력부에 결합되는 신드롬 비교기; 및
상기 신드롬 비교기의 출력부 및 상기 신드롬 s1 역수 회로의 출력부에 결합되는 GF 다중 계산 회로
를 포함하는 것인, 메모리 디바이스.A memory device comprising:
a plurality of memory macros, each comprising a memory array of memory cells and a first error correction code (ECC) circuit configured to detect data errors in each memory macro memory macro;
a second ECC circuit remote from and communicatively coupled to each of the plurality of memory macros, receiving the detected data error from a first ECC circuit of the plurality of memory macros; and correcting the data error received from the ECC circuit and writing the corrected data to the memory array.
including,
the memory macros each include a magnetic random access memory (MRAM) macro,
Each of the MRAM macros,
An array of MRAM bit cells, each MRAM bit cell comprising:
magnetic tunnel junction element;
an access transistor coupled to the magnetic tunnel junction element;
a first bit line coupled to the access transistor;
a second bit line coupled to the magnetic tunnel junction element; and
an array of MRAM bit cells comprising a word line coupled to the gate of the access transistor; and
local input-output circuitry coupled to a first bit line and a second bit line of the MRAM bit cell
further comprising,
The first ECC circuit,
a first syndrome s1 generator coupled to the first bit line and the second bit line;
a second syndrome s3 generator coupled to the first bit line and the second bit line;
an EN calculation circuit coupled to the local input/output circuitry;
a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator;
an error checking circuit coupled to an output of each of the first syndrome s1 generator, the second syndrome s3 generator, the EN calculation circuit, and the syndrome s1^3 calculation circuit;
a syndrome s1 reciprocal circuit coupled to an output of the first syndrome s1 generator;
a syndrome comparator coupled to an output of the syndrome s1^3 calculation circuit and an output of the second syndrome s3 generator; and
GF multiple calculation circuit coupled to the output of the syndrome comparator and the output of the syndrome s1 reciprocal circuit
A memory device comprising:
복수의 제1 ECC 회로로서, 상기 복수의 제1 ECC 회로 각각은 각각의 메모리 어레이에 통신가능하게 결합되도록 구성되고, 상기 각각의 메모리 어레이 내의 데이터 에러를 검출하도록 구성되는 것인, 상기 복수의 제1 ECC 회로; 및
제2 ECC 회로로서, 상기 복수의 제1 ECC 회로 각각에 통신가능하게 결합되고, 상기 복수의 제1 ECC 회로로부터 상기 검출된 데이터 에러를 수신하고, 상기 복수의 제1 ECC 회로로부터 수신된 상기 데이터 에러를 정정하도록 구성되는 것인, 상기 제2 ECC 회로를 포함하고,
상기 각각의 메모리 어레이는,
MRAM 비트 셀의 어레이로서, 각각의 MRAM 비트 셀이,
자기 터널 접합 엘리먼트;
상기 자기 터널 접합 엘리먼트에 결합되는 액세스 트랜지스터;
상기 액세스 트랜지스터에 결합되는 제1 비트라인;
상기 자기 터널 접합 엘리먼트에 결합되는 제2 비트라인; 및
상기 액세스 트랜지스터의 게이트에 결합되는 워드 라인을 포함하는 것인, 상기 MRAM 비트 셀의 어레이; 및
상기 MRAM 비트 셀의 제1 비트 라인 및 제2 비트 라인에 결합되는 로컬 입출력 회로부
를 더 포함하고,
상기 제1 ECC 회로는,
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제1 신드롬 s1 생성기;
상기 제1 비트 라인 및 상기 제2 비트 라인에 결합되는 제2 신드롬 s3 생성기;
상기 로컬 입출력 회로부에 결합되는 EN 계산 회로;
상기 제1 신드롬 s1 생성기의 출력부에 결합되는 신드롬 s1^3 계산 회로; 및
상기 제1 신드롬 s1 생성기, 상기 제2 신드롬 s3 생성기, 상기 EN 계산 회로, 및 상기 신드롬 s1^3 계산 회로 각각의 출력부에 결합되는 에러 검사 회로
를 포함하는, ECC 시스템.In the ECC system,
a plurality of first ECC circuits, each of the plurality of first ECC circuits configured to be communicatively coupled to a respective memory array, and configured to detect data errors within the respective memory array. 1 ECC circuit; and
a second ECC circuit, communicatively coupled to each of the plurality of first ECC circuits, to receive the detected data error from the plurality of first ECC circuits, and to receive the data received from the plurality of first ECC circuits and the second ECC circuit configured to correct an error;
Each of the memory arrays,
An array of MRAM bit cells, each MRAM bit cell comprising:
magnetic tunnel junction element;
an access transistor coupled to the magnetic tunnel junction element;
a first bit line coupled to the access transistor;
a second bit line coupled to the magnetic tunnel junction element; and
an array of MRAM bit cells comprising a word line coupled to the gate of the access transistor; and
local input/output circuitry coupled to a first bit line and a second bit line of the MRAM bit cell
further comprising,
The first ECC circuit,
a first syndrome s1 generator coupled to the first bit line and the second bit line;
a second syndrome s3 generator coupled to the first bit line and the second bit line;
an EN calculation circuit coupled to the local input/output circuitry;
a syndrome s1^3 calculation circuit coupled to an output of the first syndrome s1 generator; and
an error checking circuit coupled to an output of each of the first syndrome s1 generator, the second syndrome s3 generator, the EN calculation circuit, and the syndrome s1^3 calculation circuit
Including, ECC system.
복수의 메모리 매크로를 제공하는 단계로서, 상기 복수의 메모리 매크로는 메모리 셀의 메모리 어레이 및 제1 ECC 회로를 각각 포함하는 것인, 상기 복수의 메모리 매크로를 제공하는 단계;
제2 ECC 회로를 제공하는 단계로서, 상기 제2 ECC 회로는 상기 복수의 메모리 매크로로부터 떨어져 있고 상기 복수의 메모리 매크로 각각에 통신가능하게 결합되는 것인, 상기 제2 ECC 회로를 제공하는 단계;
상기 메모리 어레이를 리프레싱(refreshing)하는 단계로서, 상기 제1 ECC 회로로 상기 메모리 어레이 내의 데이터 에러를 검사하는 단계를 포함하는, 상기 메모리 어레이를 리프레싱하는 단계;
상기 제1 ECC 회로에 의해 데이터 에러가 식별되면, 상기 식별된 데이터 에러를 상기 제2 ECC 회로에 포워딩(forwarding)하는 단계;
상기 제2 ECC 회로에 의해 상기 제1 ECC 회로로부터 수신된 상기 데이터 에러를 정정하는 단계; 및
상기 정정된 데이터를 상기 메모리 어레이에 기록하는 단계를 포함하고,
상기 메모리 매크로는 자기 랜덤 액세스 메모리(magnetic random access memory; MRAM) 매크로를 각각 포함하고,
상기 MRAM 매크로는 각각,
MRAM 비트 셀의 어레이로서, 각각의 MRAM 비트 셀이,
자기 터널 접합 엘리먼트;
상기 자기 터널 접합 엘리먼트에 결합되는 액세스 트랜지스터;
상기 액세스 트랜지스터에 결합되는 제1 비트라인;
상기 자기 터널 접합 엘리먼트에 결합되는 제2 비트라인; 및
상기 액세스 트랜지스터의 게이트에 결합되는 워드 라인을 포함하는 것인, 상기 MRAM 비트 셀의 어레이; 및
상기 MRAM 비트 셀의 제1 비트 라인 및 제2 비트 라인에 결합되는 로컬 입출력 회로부
를 더 포함하고,
상기 제1 ECC 회로로 상기 메모리 어레이 내의 데이터 에러를 검사하는 단계는,
상기 제1 비트라인 및 상기 제2 비트라인으로부터 수신되는 데이터에 기초하여 신드롬 s1을 생성하는 단계;
상기 제1 비트라인 및 상기 제2 비트라인으로부터 수신되는 데이터에 기초하여 신드롬 s3을 생성하는 단계;
상기 로컬 입출력 회로부로부터 수신되는 데이터에 기초하여 EN을 생성하는 단계;
상기 신드롬 s1에 기초하여 신드롬 s1^3을 생성하는 단계; 및
상기 신드롬 s1, 상기 신드롬 s3, 상기 EN 및 상기 신드롬 s1^3에 기초하여 에러를 검사하는 단계
를 포함하는, 방법.In the method,
providing a plurality of memory macros, wherein the plurality of memory macros each include a memory array of memory cells and a first ECC circuit;
providing a second ECC circuit, wherein the second ECC circuit is remote from and communicatively coupled to each of the plurality of memory macros;
refreshing the memory array, the method comprising: checking the memory array for data errors in the memory array with the first ECC circuit;
if a data error is identified by the first ECC circuit, forwarding the identified data error to the second ECC circuit;
correcting the data error received from the first ECC circuit by the second ECC circuit; and
writing the corrected data to the memory array;
the memory macros each include a magnetic random access memory (MRAM) macro,
Each of the MRAM macros,
An array of MRAM bit cells, each MRAM bit cell comprising:
magnetic tunnel junction element;
an access transistor coupled to the magnetic tunnel junction element;
a first bit line coupled to the access transistor;
a second bit line coupled to the magnetic tunnel junction element; and
an array of MRAM bit cells comprising a word line coupled to the gate of the access transistor; and
local input/output circuitry coupled to a first bit line and a second bit line of the MRAM bit cell
further comprising,
Checking for data errors in the memory array with the first ECC circuit comprises:
generating a syndrome s1 based on data received from the first bit line and the second bit line;
generating a syndrome s3 based on data received from the first bit line and the second bit line;
generating an EN based on data received from the local input/output circuit unit;
generating a syndrome s1^3 based on the syndrome s1; and
checking an error based on the syndrome s1, the syndrome s3, the EN, and the syndrome s1^3
A method comprising
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862738177P | 2018-09-28 | 2018-09-28 | |
US62/738,177 | 2018-09-28 | ||
US16/535,787 | 2019-08-08 | ||
US16/535,787 US11204826B2 (en) | 2018-09-28 | 2019-08-08 | Memory error detection and correction |
KR1020190118085A KR20200037090A (en) | 2018-09-28 | 2019-09-25 | Memory error detection and correction |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190118085A Division KR20200037090A (en) | 2018-09-28 | 2019-09-25 | Memory error detection and correction |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210075930A true KR20210075930A (en) | 2021-06-23 |
KR102303961B1 KR102303961B1 (en) | 2021-09-27 |
Family
ID=69946930
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190118085A Ceased KR20200037090A (en) | 2018-09-28 | 2019-09-25 | Memory error detection and correction |
KR1020210076475A Active KR102303961B1 (en) | 2018-09-28 | 2021-06-14 | Memory error detection and correction |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190118085A Ceased KR20200037090A (en) | 2018-09-28 | 2019-09-25 | Memory error detection and correction |
Country Status (3)
Country | Link |
---|---|
KR (2) | KR20200037090A (en) |
CN (1) | CN110970081A (en) |
TW (1) | TWI714277B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12282388B2 (en) | 2023-02-16 | 2025-04-22 | SK Hynix Inc. | Memory module for detecting and correcting a row direction error and a column direction error |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11170870B1 (en) * | 2020-05-28 | 2021-11-09 | Western Digital Technologies, Inc. | On-chip-copy for integrated memory assembly |
US11438015B2 (en) | 2020-07-10 | 2022-09-06 | Taiwan Semiconductor Manufacturing Company, Ltd. | Two-level error correcting code with sharing of check-bits |
CN112397133B (en) * | 2020-12-11 | 2023-05-30 | 西安紫光国芯半导体有限公司 | Memory, array unit module, storage method and construction method of array unit module |
CN113223603B (en) * | 2021-05-31 | 2022-12-06 | 西安紫光国芯半导体有限公司 | Memory refresh control method, device, control circuit and memory device |
CN114880161B (en) * | 2021-07-27 | 2025-01-03 | 苏州联芯威电子有限公司 | Double-adjacent error correction code based on (23,12) Golay code for data storage correction |
CN113791737B (en) * | 2021-09-15 | 2024-02-02 | 北京航空航天大学 | Soft error detection method and device for nonvolatile memory array |
KR20230069316A (en) | 2021-11-11 | 2023-05-19 | 삼성디스플레이 주식회사 | Display apparatus |
KR102742481B1 (en) * | 2021-11-30 | 2024-12-12 | 실리콘 스토리지 테크놀로지 인크 | Hierarchical ROM encoder system for performing address fault detection in memory systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120063329A (en) * | 2010-12-07 | 2012-06-15 | 삼성전자주식회사 | Error check and corrector and memory system including the same |
KR20140005757A (en) * | 2012-07-03 | 2014-01-15 | 삼성전자주식회사 | Memory device with selective error correction code |
US20170365361A1 (en) * | 2014-08-26 | 2017-12-21 | Samsung Electronics Co., Ltd. | Semiconductor memory devices, memory systems including the same and method of correcting errors in the same |
KR20180019818A (en) * | 2016-08-17 | 2018-02-27 | 삼성전자주식회사 | Semiconductor memory device, memory system including the same and method of operating the same |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006190425A (en) * | 2005-01-07 | 2006-07-20 | Nec Electronics Corp | Semiconductor memory device |
JP4564520B2 (en) * | 2007-08-31 | 2010-10-20 | 株式会社東芝 | Semiconductor memory device and control method thereof |
US9235466B2 (en) * | 2012-07-03 | 2016-01-12 | Samsung Electronics Co., Ltd. | Memory devices with selective error correction code |
US8938656B2 (en) * | 2012-09-14 | 2015-01-20 | Sandisk Technologies Inc. | Data storage device with intermediate ECC stage |
US9484113B2 (en) * | 2014-04-15 | 2016-11-01 | Advanced Micro Devices, Inc. | Error-correction coding for hot-swapping semiconductor devices |
US9654144B2 (en) * | 2014-09-30 | 2017-05-16 | Micron Technology, Inc. | Progressive effort decoder architecture |
KR20170001777A (en) * | 2015-06-25 | 2017-01-05 | 에스케이하이닉스 주식회사 | Controller, semiconductor memory system and operating method thereof |
US10140175B2 (en) * | 2015-11-20 | 2018-11-27 | Qualcomm Incorporated | Protecting an ECC location when transmitting correction data across a memory link |
US10056921B2 (en) * | 2016-08-25 | 2018-08-21 | Taiwan Semiconductor Manufacturing Company Ltd. | Memory system having flexible ECC scheme and method of the same |
-
2019
- 2019-09-24 TW TW108134418A patent/TWI714277B/en active
- 2019-09-25 KR KR1020190118085A patent/KR20200037090A/en not_active Ceased
- 2019-09-27 CN CN201910927012.1A patent/CN110970081A/en active Pending
-
2021
- 2021-06-14 KR KR1020210076475A patent/KR102303961B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120063329A (en) * | 2010-12-07 | 2012-06-15 | 삼성전자주식회사 | Error check and corrector and memory system including the same |
KR20140005757A (en) * | 2012-07-03 | 2014-01-15 | 삼성전자주식회사 | Memory device with selective error correction code |
US20170365361A1 (en) * | 2014-08-26 | 2017-12-21 | Samsung Electronics Co., Ltd. | Semiconductor memory devices, memory systems including the same and method of correcting errors in the same |
KR20180019818A (en) * | 2016-08-17 | 2018-02-27 | 삼성전자주식회사 | Semiconductor memory device, memory system including the same and method of operating the same |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12282388B2 (en) | 2023-02-16 | 2025-04-22 | SK Hynix Inc. | Memory module for detecting and correcting a row direction error and a column direction error |
Also Published As
Publication number | Publication date |
---|---|
KR102303961B1 (en) | 2021-09-27 |
TW202018725A (en) | 2020-05-16 |
TWI714277B (en) | 2020-12-21 |
KR20200037090A (en) | 2020-04-08 |
CN110970081A (en) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762732B2 (en) | Memory error detection and correction | |
KR102303961B1 (en) | Memory error detection and correction | |
US11740960B2 (en) | Detection and correction of data bit errors using error correction codes | |
US8281221B2 (en) | Operation method of MRAM including correcting data for single-bit error and multi-bit error | |
US12126358B2 (en) | Two-level error correcting code with sharing of check-bits | |
US10270471B2 (en) | Memory system having ECC self-checking function and associated method | |
US7107507B2 (en) | Magnetoresistive solid-state storage device and data storage methods for use therewith | |
US5251219A (en) | Error detection and correction circuit | |
US9141473B2 (en) | Parallel memory error detection and correction | |
JPH05241975A (en) | Data processing system having error/detecting correcting mechanism | |
US10498364B2 (en) | Error correction circuits and memory controllers including the same | |
US10056921B2 (en) | Memory system having flexible ECC scheme and method of the same | |
US20160139988A1 (en) | Memory unit | |
US12149259B2 (en) | Single-cycle byte correcting and multi-byte detecting error code | |
US11265022B2 (en) | Memory system and operating method thereof | |
Hamburg et al. | Unraveling codes: fast, robust, beyond-bound error correction for DRAM | |
Kang et al. | One-step majority-logic-decodable codes enable STT-MRAM for high speed working memories | |
Evain et al. | Error correction schemes with erasure information for fast memories | |
Penumutchi et al. | Low Redundancy Matrix Code with Efficient PPA | |
Kokkiligadda et al. | Efficient and Failure Aware ECC for STT-MRAM Cache Memory | |
Baoming | Error control coding for semiconductor memories | |
WO2014054345A1 (en) | Semiconductor device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20210614 Patent event code: PA01071R01D Filing date: 20190925 Application number text: 1020190118085 |
|
PA0201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20210621 |
|
PG1501 | Laying open of application | ||
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20210914 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20210915 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20240828 Start annual number: 4 End annual number: 4 |