[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20210075930A - Memory error detection and correction - Google Patents

Memory error detection and correction Download PDF

Info

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
Application number
KR1020210076475A
Other languages
Korean (ko)
Other versions
KR102303961B1 (en
Inventor
히로키 노구치
유-더 치이
윈-산 콰
슈에-치이 양
랜디 오스본
Original Assignee
타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/535,787 external-priority patent/US11204826B2/en
Application filed by 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 filed Critical 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드
Publication of KR20210075930A publication Critical patent/KR20210075930A/en
Application granted granted Critical
Publication of KR102303961B1 publication Critical patent/KR102303961B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital 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/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1655Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital 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/165Auxiliary circuits
    • G11C11/1677Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/025Detection or location of defective auxiliary circuits, e.g. defective refresh counters in signal lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1575Direct 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/31Coding, 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital 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/161Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word 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

A memory device such as an MRAM memory device comprises a plurality of memory macros, and each of the plurality of memory macros comprises an array of memory cells and a first ECC circuit configured to detect data errors within each of the memory macros. A second ECC circuit which is distant from the plurality of memory macros is communicatively coupled with each of the plurality of memory macros. The second ECC circuit receives the data error detected from the first ECC circuit of the plurality of memory macros, and corrects the data error.

Description

메모리 에러 검출 및 정정{MEMORY ERROR DETECTION AND CORRECTION}MEMORY ERROR DETECTION AND CORRECTION

본 발명은 메모리 에러 검출 및 정정에 관한 것이다.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 MRAM device 100 , although other memory types are within the scope of the present disclosure. The MRAM device 100 includes a plurality of memory arrays 102a - n , a local ECC circuit 140a - n coupled to each memory array 102 , each memory array 102 and coupled to the ECC circuit 140 . local I/O circuits 106a - n, a controller 108 coupled to each local I/O circuit 106 , a global ECC circuit 160 , and a global I/O circuit 110 . In the illustrated embodiment, memory macros 130a-n may include local memory arrays 102a-n, local ECC circuits 140a-n, and local I/Os 106a-n.

일부 실시예에 따르면, 리프레시 간격(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 refresh data path 120 becomes shorter and latency during refresh is reduced. ECC circuitry including error correction may be shared among multiple macros 130a-n, and a longer global refresh data path 122 would be used in these relatively rare events. In this way, the area required for the local ECC circuits 140a-n having only error detection each requires a significantly smaller area.

해밍 코드, 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, local ECC circuitry 140a - n and global ECC 160 may employ ECC encoding and decoding using ECC encoders and decoders. An ECC encoder may include any technique or algorithm that adds redundancy to information to detect or correct errors. For example, error correction codes include non-binary block codes such as Reed-Solomon [255, 239] or [255, 221] codes, Hamming codes and Bose-Chaudhuri-Hocquenghem (BCH) codes. linear block codes, such as cyclic Hamming codes, Hadamard codes such as Hadamard [16, 5] codes, Golay codes such as Golay [23, 12] codes, extended Golay [24, 12] codes, or Cyclic Golay [24, 12] Codes, Maximum Length Shift Register Codes, Reed Muller Codes, AC Codes, Gappa Codes, Binary and Non-Binary Convolutional Codes, Double K Codes, Turbo Codes, Turbo Product Codes, LDPC Codes, It can contain linking code created by wrapping one piece of code inside another, and so on. By adding more parity bits, the strength of the error correction code can be adjusted as needed. For example, the strength of a code can be measured by the minimum Hamming distance. The ECC decoder may be coupled to the ECC encoder and used to calculate the syndrome of the code word.

일부 실시예에서, 특히, 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 local ECC circuits 140a - n to perform matrix multiplication on predefined parity check matrices and code words. The predefined parity check matrix may be determined according to the type of ECC used. For example, the predefined parity check matrix may be a 7x3 parity check matrix (H) of a (7, 4) Hamming code. Accordingly, the ECC decoder outputs a 3-tuple vector composed of 3 bits. The ECC decoder is for checking whether a code word to be encoded is a valid code word, based on the principle of (7, 4) Hamming code. When the 3-tuple vector generated by the ECC decoder, ie, the syndrome, is equal to (0, 0, 0), it is determined that the encoded code word is a valid code word. In this case, only the operation of determining that the code word is valid is required, and the local refresh data path 120 is used. If the 3-tuple vector generated by the ECC decoder is not equal to (0, 0, 0) in operation, the encoded code word is determined to have at least one error. In this case, a more complete ECC including error correction is needed, and the global refresh data path 122 is used.

도 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 MRAM device 100 . In the illustrated embodiment, local memory array 102a includes a plurality of MRAM bit cells, such as MRAM bit cells 200, arranged in rows and columns. The MRAM bit cell 200 includes an access transistor 212 and an MTJ component 214 . The MTJ component 214 has a variable resistance depending on the orientation of the free layer and is operatively coupled between the access transistor 212 and the bit line 204 . Access transistor 212 is operatively coupled between bit line 206 and MTJ component 214 , and has a gate coupled to word line 202 . During a read or write operation, a voltage greater than the threshold voltage of access transistor 212 is applied to word line 202 , thereby “on” access transistor 212 and bit via MTJ component 214 . Allows current to flow from line 206 to bit line 204 . Sense and compare the current in the bit line, a logic high "1" corresponding to the state of the free layer within the MTJ component 214 and consequently the data ("1" or "0") being stored in the MRAM bit cell 200 . The current is detected by a sense amplifier (not shown) capable of outputting a " or a low "0". Access to any of the plurality of bit cells of the local memory array 102a is performed by accurately timing the application of voltage to the word lines and sensing the current on each bit line. The data of the bit cells in local memory array 102a may be transferred to the local ECC circuitry via bit lines 204 and 206, for example. Data in bit cells in local memory array 102a is transferred to or from circuitry external to macro 130a as shown in FIG. 1 , local I/O circuitry 106a, e.g. bit line 204, 206) is transmitted.

도 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 logic process 300 for MRAM error correction in accordance with one embodiment. In the illustrated embodiment, ECC logic process 300 includes local ECC logic 340 and global ECC logic 360 . In some embodiments, local ECC logic 340 is provided with a memory array or macro, and global ECC logic 360 is shared across multiple memory arrays or macros. For example, referring to FIG. 1 , the local ECC logic 340 may correspond to the local ECC circuit 140a in which the local memory array 102a is provided in the local memory macro 130a, and the global ECC logic is plural. It may correspond to the global ECC circuit 160 shared among the memory macros 130a - n.

로컬 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 local ECC logic 340 includes a syndrome s1 generator 342 , a syndrome s3 generator 344 , and an error checking circuit 346 . MRAM bit cells 200 in memory arrays 102a-n store both data and parity bits for error detection and correction. In the example shown, ECC logic process 300 operates on code words read from local memory array 102a, eg, N-bit length read data read from MRAM macro 130a. In some embodiments, only partial decoding of the read data is required, since only the syndromes s1 and s3 are needed to determine whether the read data has an error. Syndromes s1, s3 may be a single numeric element, syndromes s1, s3 may each be a vector of a plurality of numeric elements, or syndromes s1, s3 may be a matrix of a plurality of numeric elements. Syndrome s1 generator 342 performs matrix multiplication on the read data using a predefined parity check matrix to arrive at syndrome s1, and similarly, syndrome s3 generator 344 pre-defined to arrive at syndrome s3 Matrix multiplication is performed on the parity check matrix. The error checking circuit 346 is configured to evaluate the syndromes s1, s3 and to determine whether the read data, eg, a code word, contains one or more errors.

판독 데이터가 적어도 하나의 에러를 포함하는 것으로 에러 검사 회로(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 error checking circuitry 346 that the read data contains at least one error, then full decoding of the read data requires global ECC logic 360 . Global ECC logic 360 includes x^3 (cubic of x) calculation circuit 351, encoder (EN) calculation circuit 352, check bit generator 353, XOR (exclusive OR) calculation circuit 354, reciprocal finite field and error correction circuitry 362 such as an (inverse) computation circuit 355 and a Galois Field (GF) multiple computation circuit 356 . In some embodiments, the EN calculation circuit 352 operates on the read data and outputs a single bit that encodes whether the code word needs to be written back to the local memory array 102a after correction. For example, the EN calculation circuit 352 may be an encoder stage of a BCH cyclic error correction code. In some embodiments, the EN calculation circuit 352 allows the global ECC logic 360 to perform additional error detection in addition to correction, for example, SECDED (Single-Error Correcting (SEC) and double error). Like Double-Error Detecting (DED)), add a parity bit. In the embodiment shown in FIG. 3 , the syndromes s1 , s3 are calculated in the local ECC logic 340 and transmitted and used by the global ECC logic 360 . Specifically, x^3 computation circuit 351 operates on syndrome s1 to arrive at s1^3, and XOR computation circuit 354 operates on syndrome s3 and the resulting s1^3 from cubic computation circuit 351 to s3 and s1^3 and output a vector according to the XOR truth table. The reciprocal calculation circuit 355 operates on the syndrome s1 and outputs the reciprocal of the syndrome s1 , and the GF multiple calculation circuit 356 operates on the outputs of the reciprocal calculation circuit 355 and the XOR calculation circuit 354 . In some embodiments, the GF multiple computation circuit 356 may be a decoder stage of a BCH cyclic error correction code including error detection and error correction. In some embodiments, the GF multiple computation circuit 356 operates on the code word through multiplication and accumulation within the Galois field of all data bits, where the data bits are treated as coefficients of a polynomial. The output of the GF multiple calculation circuit 356 is input to the error correction circuit 362 together with the read data and the syndrome s1. The output of the error correction circuit 362 is an error corrected code word. Next, the check bit generator 353 operates on the corrected word, e.g., data without parity bits, and encodes the parity bits according to a predefined parity check matrix of the selected ECC type or scheme, resulting in a local code array. Form a corrected code word to be written in 102a.

도 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 method 400 for correcting an MRAM error using the ECC logic process 300 shown in FIG. 3 . Method 400 begins at step 402, where syndromes s1, s3 are calculated from read data as part of a memory refresh operation for the memory array. For example, a code word from one of a plurality of macros 130a-n comprising a local memory array 102a-n is read, and a local memory array 102a-n where read data begins during a refresh period; Syndromes s1, s3 are calculated by performing matrix multiplication on the read data using a parity check matrix predefined in the relevant local ECC circuits 140a-n. In some embodiments, the calculation of the syndromes s1 and s3 may be performed using the s1 syndrome generator 342 and the s3 syndrome generator 344 in the local ECC logic 340 as shown in FIG. 3 . In step 404 , syndromes s1 , s3 are evaluated to determine whether the code word has at least one error using, for example, error checking 346 within local ECC logic 340 . If there are no errors, the method 400 ends for that code word, and in step 402 begins for the next code word of the refresh cycle for the local memory arrays 102a-n. If at least one error exists, the method 400 provides a global associated with a plurality of local macros including the local macro from which the read data and the current read data determined to have the at least one error in which the syndrome s1, s3 is determined to have an error. Proceed to step 406 where it is input to a global ECC circuit 160 , such as ECC logic 360 . Whether or not the code word needs to be written back to the local memory array 102 after correction is determined from the read data using, for example, the EN calculation circuit 352 . For example, the EN calculation circuit 352 may be an encoder stage of a BCH cyclic error correction code. In some embodiments, the EN calculation circuit 352 allows the global ECC logic 360 to perform additional error detection in addition to correction, for example, SECDED (Single-Error Correcting (SEC) and double error). Like Double-Error Detecting (DED)), add a parity bit. In step 408 , s1^3 is calculated by the x^3 calculation circuit 351 in the global ECC logic 360 . In step 410, the XOR of the inputs s1^3, s3 is computed by, for example, an XOR calculation circuit 354 in the global ECC logic 360, and the reciprocal of s1 is computed by, for example, the global ECC logic 360 ) is calculated by the reciprocal calculation circuit 355 in In step 412, the GF multiple is computed by the GF multiple computation circuit 356 using, for example, the reciprocal s1 and the output from the XOR computation. In some embodiments, the GF multiple computation circuit 356 may be a decoder stage of a BCH cyclic error correction code including error detection and error correction. In some embodiments, the GF multiple computation circuit 356 operates on the code word through multiplication and accumulation in the Galois field of all data bits, where the data bits are treated as coefficients of a polynomial. In step 414 , a corrected code word is computed using the read data and the output of the GF multiplex and syndrome s1 calculation, for example by error correction circuitry 362 in global ECC logic 360 . In step 416 , a corrected word, eg, corrected data, is extracted from a corrected code word and check bit generator, eg, a check bit generator 353 within the global ECC logic 360 , and an ECC type selected Alternatively, the corrected data is encoded into parity bits using a pre-defined parity check matrix according to a scheme. Next, the corrected and encoded code word is written back to the local macro 130 .

도 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 ECC logic process 500 for MRAM error correction in accordance with one embodiment. Compared to ECC logic process 300 of FIG. 3 , in ECC logic process 500 , check bit generator 353 is no longer included in global ECC logic 360 , but is included in local ECC logic 340 . . This difference from the ECC logic process 300 is that the operation of encoding the parity bits into corrected data and writing the resulting corrected codeword to the local memory array 102a is a local ECC associated with the local memory array 102a. Offloading to logic 340 , global ECC logic 360 encodes the parity bits and writes corrected code words for a plurality of memory macros 130a - n that share global ECC logic 360 . Take no more responsibility.

도 6은 ECC 논리 프로세스(500)를 사용하여 MRAM 에러를 정정하는 방법(600)의 흐름도이다. 방법(600)은 상기 방법(400)과 유사하지만, 단계(616)에서 단계(416)에 포함되는 동일한 동작이 글로벌 ECC 보다는 로컬 ECC 내에서 수행되어, 그 작업을 도 5와 관련하여 전술한 바와 같이 로컬 ECC 논리 회로에 오프로드 한다는 차이점이 있다. 특히, 단계(616)은 정정된 코드 워드로부터 정정된 워드, 예를 들어 정정된 데이터를 추출하는 단계 및 선택된 ECC 유형 또는 방식에 따라 사전에 정의된 패리티 검사 매트릭스를 사용하여 정정된 데이터를 패리티 비트로 인코딩하는 단계 및 정정되고 인코딩된 코드 워드를 로컬 ECC 논리 회로와 연관되는 로컬 매크로에 다시 기록하는 단계를 포함한다.6 is a flowchart of a method 600 of correcting an MRAM error using an ECC logic process 500 . Method 600 is similar to method 400 above, but in step 616 the same operations included in step 416 are performed within the local ECC rather than the global ECC, so that the operation is as described above with respect to FIG. 5 . The difference is that it is offloaded to the local ECC logic circuit. Specifically, step 616 extracts a corrected word, eg, corrected data, from the corrected code word and converts the corrected data into parity bits using a pre-defined parity check matrix according to the selected ECC type or scheme. encoding and writing the corrected encoded code word back to a local macro associated with the local ECC logic circuitry.

도 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 ECC logic process 700 for MRAM error correction in accordance with one embodiment. The ECC logic process 700 is similar to the ECC logic process 500 above, with two differences. The first difference is that the syndrome s1 generator 342 and the syndrome s3 generator 344 overlap within the global ECC logic 360 . In the global ECC logic 360, overlapping the syndrome s1 generator 342 and the syndrome s3 generator 344 may reduce the number of connections required in the overall hierarchical ECC scheme, and may simplify the layout structure. have. For example, ECC logic process 300, 500 supports all local ECC circuits 140a-n and local I/O circuits 106a-n to transmit read data and syndromes s1, s3, Requires ECC circuit 160 to support receiving syndromes s1, s3 along with read data. In contrast, ECC logic process 700 only requires local ECC circuitry 140a-n and local I/O circuitry 106a-n to support sending read data, and global ECC circuitry 160 It only requires support for receiving read data. As such, in some embodiments, the connections necessary for the transmission of syndromes s1, s3 between the local I/O circuits 106a-n and the global ECC circuitry 160 may be eliminated using the ECC logic process 700 and , this may simplify the layout structure of the MRAM device 100 .

두 번째 차이점은 에러 검출 회로(357)가 글로벌 ECC 로직(360) 내에 포함된다는 점이다. 에러 검사 회로(346)와 유사하게, 에러 검출 회로(357)는 판독 데이터, 예를 들어 코드워드가 적어도 하나의 에러를 포함하는지 여부를 판단하도록 구성되었지만, 이는 글로벌 ECC 논리 회로(360) 내에서 이루어진다. 에러 검출 회로(357)는 EN 계산 회로(351)의 출력, s1, s3 및 s1^3을 입력으로서 수신하고, 판독 데이터가 적어도 한 개의 에러를 포함하는지 여부를 출력한다. 에러 검출 회로(357)는 판독 데이터에 적어도 한 개의 에러가 있는지 또는 판독 데이터에 적어도 두 개의 에러가 있는지 여부를 출력하고, 판독 데이터에 적어도 세 개 이상의 에러가 있는지 여부를 출력할 수 있다.The second difference is that the error detection circuitry 357 is included within the global ECC logic 360 . Similar to the error checking circuitry 346 , the error detection circuitry 357 is configured to determine whether the read data, e.g., a codeword, contains at least one error, although this cannot be done within the global ECC logic circuitry 360 . is done The error detection circuit 357 receives the outputs of the EN calculation circuit 351, s1, s3, and s1^3 as inputs, and outputs whether the read data contains at least one error. The error detection circuit 357 may output whether there is at least one error in the read data or at least two errors in the read data, and output whether there are at least three errors in the read data.

도 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 method 800 for correcting an MRAM error using an ECC logic process 700 . Method 800 is similar to method 600 above, but with two differences. First, step 406 is replaced with step 806, wherein the syndromes s1, s3 are not input from the same operation included in step 406 of methods 400, 600, but rather from the global ECC circuit ( 160) (eg, global ECC logic 360). Second, between steps 408 and 410 , in step 809 , whether an error exists in the read data and the number of errors is determined by the global ECC circuit 160 (eg, error detection circuit 357 ). )) is calculated within

도 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 ECC logic process 900 for MRAM error correction in accordance with one embodiment. The ECC logic process 900 is similar to the ECC logic process 700 above, but with four differences. First, the syndrome s1 generator 342 and the syndrome s3 generator are no longer redundant within the global ECC logic 360 . Second, the cube calculation circuit 351 , the EN calculation circuit 352 , and the error detection circuit 357 are included in the local ECC logic 340 and are no longer included in the global ECC logic 360 . Including the cube calculation circuit 351 , the EN calculation circuit 352 , and the error detection circuit 357 within the local ECC logic 340 increases the computational utility and power of the local ECC logic 340 . For an MRAM device 100 that experiences a relatively high data error rate, both the energy consumption burden of data movement and the latency of the data due to the offload of error detection and correction operations to the shared global ECC circuit 160 are dependent on local memory. The area savings benefit of eliminating the circuitry to perform these operations within macros 130a-n may be outweighed. In this case, the efficiency of the MRAM device 100 can be increased by balancing data latency, energy consumption, and area associated with error checking by increasing the operations performed locally. For example, by including the EN calculation and the syndrome s1 cube calculation, the local ECC logic 340 of the ECC logic process 900 may include error detection, e.g., via the error detection circuit 357, This makes it possible to more accurately detect the number of errors, including detecting whether an error exists within the code word and the code word and the number of errors within the word.

세 번째 차이점은 에러 검사 회로(351)가 생략된다는 것이다. 네 번째 차이점은 검사 비트 생성기(353)가, ECC 로직 프로세스(300)와 유사하게, 로컬 ECC 로직(340)보다는 글로벌 ECC 로직(360)에 다시 한번 포함된다는 것이다.The third difference is that the error checking circuit 351 is omitted. A fourth difference is that the check bit generator 353 is once again included in the global ECC logic 360 rather than the local ECC logic 340 , similar to the ECC logic process 300 .

도 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 method 1000 for correcting an MRAM error using an ECC logic process 900 . Method 1000 is similar to method 800 above with four differences. First, step 1003 is included after step 402, where s1^3 and EN are calculated by x^3 calculation circuit 351 and EN calculation circuit 352, respectively, within local ECC logic 340, respectively. do. Second, step 404 is replaced by step 1004, where the presence of errors in the read data and the number of errors in the read data are calculated by the error detection circuitry 357 in the local ECC logic 340, s1, Based on s3, s1^3, and EN calculations. If there are no errors, the method 1000 ends for that code word and begins at step 402 of the method 1000 for the next code word in a refresh cycle for the local memory array 102a. Third, if there is at least one error, the method 1000 proceeds to step 1006 where the read data, the syndromes s1 , s3 , s1^3 and the number of detected errors are input to the global ECC logic 360 . . Fourth, method 1000 replaces step 616 of method 800 with step 416 of method 400 . That is, in step 416 of method 1000 , a corrected word, eg, corrected data, is extracted from the corrected code word, and check bit generator 353 in global ECC logic 360 is selected ECC type Alternatively, the corrected data is encoded with parity bits using a parity check matrix defined in advance according to a scheme, and the corrected and encoded code word is written back to the local macro 130 .

도 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 ECC logic process 1100 for MRAM error correction in accordance with one embodiment. ECC logic process 1100 is similar to ECC logic process 900 above, with the difference that check bit generator 353 is no longer contained within global ECC logic 360 but within local ECC logic 340 . As discussed above with respect to ECC logic process 500 of FIG. 5 , this difference affects the operation of encoding the parity bits into corrected data and writing the resulting corrected codeword to the local memory array 102a. Offloading to the local ECC logic 340 associated with the memory array 102a , the global ECC logic 360 further encodes parity and a plurality of memory macros 130a - n sharing the global ECC logic 360 . ) and not responsible for rewriting the corrected code word for

도 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 method 1200 for correcting an MRAM error using an ECC logic process 1100 . Method 1200 is similar to method 1000 above, but step 416 is replaced with step 616, extracting a corrected word, e.g., corrected data from a corrected code word, selected ECC encoding the corrected data into parity bits using a predefined parity check matrix according to type or manner, and writing the corrected encoded code words back to the local memory array 102 associated with the local ECC logic 340 The difference is that this step is performed within local ECC logic 340 such as methods 600 and 800 , rather than within global ECC logic 360 .

도 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 ECC logic process 1300 for MRAM error correction in accordance with one embodiment. The ECC logic process 1300 is similar to the ECC logic process 1100 above, except that the syndrome s1 generator 342 , the syndrome s3 generator 344 and the cube calculation circuit 351 are duplicated within the global ECC logic 360 . There is this. As described above with respect to the connection of FIG. 7 , the overlapping of the syndrome s1 generator 342 , the syndrome s3 generator 344 , and the cube calculation circuit 351 within the global ECC logic 360 is within the overall hierarchical ECC scheme. The number of connections required can be reduced and the layout can be simplified.

도 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 method 1400 of correcting an MRAM error using an ECC logic process 1300 . Method 1400 is similar to method 1200 above, with the difference that step 1406 replaces step 1006 . In other words, the syndromes s1, s3, and s1^3 are calculated in the global ECC logic 360 by overlapping the quantities calculated in the local ECC logic 340 . This is instead of inputting the quantity from the local ECC logic 340 to the global ECC logic 360 , as is performed in step 1006 of the method 1200 . As such, step 1406 of method 1400 overlaps the calculations of s1, s3, and s1^3 within global ECC logic 360, as well as read data and errors detected in step 1004. and inputting the number of to the global ECC logic 360 . This is similar to the redundancy that occurs in the method 800 shown in FIG. 8 with respect to the ECC process 700 of FIG. 7 .

도 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 ECC logic process 1500 for MRAM error correction in accordance with one embodiment. ECC logic process 1500 is similar to ECC logic process 900 above, except that XOR circuit 354, reciprocal calculation circuit 355 and GF multiple calculation circuit 356 are included in local ECC logic 340, more There is a difference that the above is not included in the global ECC logic 360 . Including the XOR circuit 354 , the reciprocal calculation circuit 355 , and the GF multiple calculation circuit 356 within the local ECC logic 340 increases the computational utility and power of the local ECC logic 340 . As described above with respect to the ECC process 900 and FIG. 9 , the efficiency of the MRAM device 100 increases the area and energy consumption associated with error checking by increasing the operations performed locally as the data error rate increases. and by balancing the data latency. For example, by implementing more error checking circuitry locally within the local ECC circuits 140a-n to reduce data latency and energy consumption associated with moving data to the shared global ECC circuit 160 keep your balance For example, in ECC logic process 1500 , local ECC logic 340 performs all ECC operations locally, except for error correction and coding and writing the error corrected data back to the local macro.

도 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 method 1600 for correcting an MRAM error using an ECC logic process 1500 . Method 1600 is similar to method 1000 above, with five differences. First, method 1600 replaces step 1004 of method 1000 with step 1604 . Step 1604 of method 1600 performs the same operation as step 1004 of method 1000, i.e., based on the calculation of s1, s3, s1^3 and EN, an error is detected in the read data in the local ECC logic 340. It performs a calculation of whether it exists and the number of errors. The only difference is that if there is an error in the read data, step 1604 proceeds to step 1610 of method 1600 rather than step 1006 . This is due to the additional circuitry included within the local ECC logic 340 in the ECC logic process 1500 . Second, step 1006 is not performed in method 1600 , but rather as a third difference from method 1000 , step 1610 proceeds from step 1604 of method 1600 . In step 1610, the XOR of s3 and s1^3 is computed, e.g., by XOR computation circuitry 354, together with reciprocal number s1, e.g. by reciprocal computation circuitry 355 in local ECC logic 340. is calculated by Fourth, in step 1612 , the GF multiple is computed within the local ECC logic 340 . Fifth, at step 1613 , the read data, the number of errors detected, s1 , and the GF multiple calculation result are input to the global ECC logic 360 and calculation of the corrected code word at step 414 of the method 1600 . is used for

도 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 ECC logic process 1700 for MRAM error correction in accordance with one embodiment. ECC logic process 1700 is similar to ECC logic process 1500 above, with the difference that check bit generator 353 is no longer contained within global ECC logic 360 but within local ECC logic 340 . 5 and 11, this difference in ECC logic process 1700 involves the operation of encoding the parity bits into corrected data and writing the resulting corrected codeword to the local memory array 102a. offloads the operation to the local ECC logic 340 associated with the local memory array 102a so that the global ECC logic 360 encodes parity and a plurality of memory macros 130a sharing the global ECC logic 360 . -n) no longer be responsible for writing the corrected code word.

도 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 method 1800 for correcting an MRAM error using an ECC logic process 1700 . Method 1800 is similar to method 1600 above, but step 416 is replaced with step 616, extracting a corrected word, e.g., corrected data from the corrected codeword, selected ECC encoding the corrected data into parity bits using a predefined parity check matrix according to type or manner, and back to the local memory array 102 associated with the local ECC logic 340 the corrected encoded code words The difference is that the writing step is performed within local ECC logic 340 such as methods 600 , 800 , 1200 rather than within global ECC logic 360 .

도 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 method 1900 for correcting MRAM errors using a hierarchical ECC logic process in accordance with some embodiments. Method 1900 begins at step 1902 in which a plurality of memory macros, eg, MRAM memory macros 130a-n, are provided, each comprising at least an array of memory cells and local ECC logic circuitry. In some embodiments, the plurality of memory macros includes local memory arrays 102a-n, each of which includes local ECC logic 140a-n, respectively. At step 1904, a global ECC logic circuit is provided that is remote from and coupled to each of the plurality of MRAM macros. In some embodiments, the global ECC logic circuit includes global ECC logic 160 . In step 1906, data from the local MRAM macro is checked as part of a refresh cycle in which a portion of the local MRAM memory, eg, read data or code words, is checked for errors within the local ECC logic circuit. If no errors are found in a particular code word, the next code word in the macro is checked as part of the refresh cycle. The method 1900 then proceeds to a step 1908, where if at least one error is found within the memory array of the local macro, the data examined and found to have the at least one error, e.g., at least one The code word with the error is sent to the global ECC logic with the output of the calculation circuit in the local ECC logic circuit. In step 1910 the data with at least one error is corrected in the global ECC logic circuit, and in step 1912 the corrected data is written back to the local macro memory array.

따라서, 개시되는 예는 메모리 디바이스, 특히 주기적인 리프레시를 요구하는 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. 메모리 디바이스에 있어서,Embodiment 1. A memory device comprising:

복수의 메모리 매크로(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) 매크로를 각각 포함하는 것인, 메모리 디바이스.Embodiment 2. The memory device of embodiment 1, wherein the memory macros each comprise a magnetic random access memory (MRAM) macro.

실시예 3. 실시예 2에 있어서, 상기 MRAM 매크로는 각각,Embodiment 3. The method according to Embodiment 2, wherein each of the MRAM macros comprises:

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 Embodiment 3, wherein the first ECC circuit comprises:

상기 제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 Embodiment 3, wherein the first ECC circuit 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 계산 회로 각각의 출력부에 결합되는 에러 검사 회로를 포함하는 것인, 메모리 디바이스.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 embodiment 3, wherein the first ECC circuit 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 다중 계산 회로를 포함하는 것인, 메모리 디바이스.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 syndrome s1^3.

실시예 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항에 있어서, 상기 제2 ECC 회로는,
상기 제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:
ECC 시스템에 있어서,
복수의 제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
KR1020210076475A 2018-09-28 2021-06-14 Memory error detection and correction Active KR102303961B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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