TWI714277B - 記憶體錯誤偵測及校正 - Google Patents

記憶體錯誤偵測及校正 Download PDF

Info

Publication number
TWI714277B
TWI714277B TW108134418A TW108134418A TWI714277B TW I714277 B TWI714277 B TW I714277B TW 108134418 A TW108134418 A TW 108134418A TW 108134418 A TW108134418 A TW 108134418A TW I714277 B TWI714277 B TW I714277B
Authority
TW
Taiwan
Prior art keywords
circuit
syndrome
coupled
error correction
memory
Prior art date
Application number
TW108134418A
Other languages
English (en)
Other versions
TW202018725A (zh
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 TW202018725A publication Critical patent/TW202018725A/zh
Application granted granted Critical
Publication of TWI714277B publication Critical patent/TWI714277B/zh

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)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Algebra (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Mram Or Spin Memory Techniques (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本發明提供一種諸如磁性隨機存取記憶體元件的記憶體元件,記憶體元件包含多個記憶體巨集,其中多個記憶體巨集各自包含記憶胞陣列及第一錯誤校正碼電路,第一錯誤校正碼電路經配置以偵測各別記憶體巨集中的資料錯誤。遠離多個記憶體巨集的第二錯誤校正碼電路通信耦接至多個記憶體巨集中的每一者。第二錯誤校正碼電路經配置以自多個記憶體巨集的第一錯誤校正碼電路接收偵測到的資料錯誤且校正資料錯誤。

Description

記憶體錯誤偵測及校正
本揭露有關於一種記憶體的錯誤偵測及校正。
記憶體廣泛地用於將資訊(資料及程式二者)儲存於數位系統中。在系統運行期間,儲存於記憶體中的資訊(位元)可由於各種原因而損壞。損壞的一種可能原因是記憶體內部及記憶體外部二者的環境事件。一種此類外部事件是粒子撞擊。除環境事件以外,亦存在引起位元損壞(故障)的其他原因。當位元損壞時,丟失所儲存資訊,從而導致系統故障或資料遺失。因此,保護記憶體內容的完整性至關重要。目前已有用於保護記憶體內容免受損壞的各種裝置。錯誤校正碼(Error correction code;ECC)具有能夠偵測字元碼(資料欄位(data field)及檢查位元(check bit)二者)中的錯誤且亦能夠校正錯誤的優點。
在一些實施例中,提供一種記憶體元件。所述記憶體元件包括:多個記憶體巨集,各自包含記憶體陣列及第一錯誤校正碼電路,所述第一錯誤校正碼電路經配置以偵測各別記憶體巨集中的 資料錯誤;第二錯誤校正碼電路,遠離所述多個記憶體巨集且通信耦接至所述多個記憶體巨集中的每一者,且經配置以自所述多個記憶體巨集的所述第一錯誤校正碼電路接收偵測到的所述資料錯誤、校正所述資料錯誤且將經校正資料寫入至所述記憶體陣列。
在一些實施例中,提供一種錯誤校正系統,包括:多個第一錯誤校正碼電路,所述多個第一錯誤校正碼電路中的每一者經配置以通信耦接至記憶體陣列且經配置以偵測所述記憶體陣列中的資料錯誤;以及第二錯誤校正碼電路,通信耦接至所述多個第一錯誤校正碼電路中的每一者,且經配置以自所述多個第一錯誤校正碼電路接收偵測到的所述資料錯誤且校正所述資料錯誤。
在一些實施例中,提供一種錯誤偵測及校正的方法,包括:提供多個記憶體巨集,所述多個記憶體巨集各自包含記憶體陣列及第一錯誤校正碼電路;提供第二錯誤校正碼電路,所述第二錯誤校正碼電路遠離所述多個記憶體巨集且通信耦接至所述多個記憶體巨集中的每一者;更新所述記憶體陣列,包含利用所述第一錯誤校正碼電路檢查所述記憶體陣列中的資料錯誤;若所述第一錯誤校正碼電路識別出資料錯誤,則將偵測到的所述資料錯誤轉發至所述第二錯誤校正碼電路;藉由所述第二錯誤校正碼電路校正所述資料錯誤;以及將經校正資料寫入至所述記憶體陣列。
100:MRAM元件
102、102a、102b、102n:局部記憶體陣列
106、106a、106b、106n:局部I/O電路
108:控制器
110:全局I/O電路
120:局部更新資料路徑
122:全局更新資料路徑
130、130a、130b、130n:記憶體巨集
140、140a、140b、140n:局部ECC電路
160:全局ECC電路
200:MRAM位元胞
202:字元線
204、206:位元線
212:存取電晶體
214:MTJ部件
300、500、700、900、1100、1300、1500、1700:ECC邏輯程序
340:局部ECC邏輯
342:校正子s1產生器
344:校正子s3產生器
346:錯誤檢查電路
351:立方計算電路
352:編碼器計算電路
353:檢查位元產生器
354:互斥或計算電路
355:反相計算電路
356:高氏場多重計算電路
357:錯誤偵測電路
360:全局ECC邏輯
362:錯誤校正電路
400、600、800、1000、1200、1400、1600、1800、1900:方法
402、404、406、408、410、412、414、416、616、806、809、 1003、1004、1006、1406、1604、1610、1612、1613、1902、1904、1906、1908、1910、1912:步驟
結合隨附圖式閱讀以下詳細描述時會最佳地理解本揭露內容的態樣。應注意,根據業界中的標準慣例,各種特徵並未按比例繪製。事實上,可出於論述清楚起見而任意地增加或縮減各種特 徵的尺寸。此外,圖式說明為本發明的實施例的實例且並不意欲為限制性的。
圖1為總體上示出具有多個MRAM陣列的實例MRAM元件的方塊圖,所述多個MRAM陣列各自具有根據一實施例的專用且簡化的ECC電路。
圖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錯誤的方法的流程圖。
以下揭露內容提供用於實施所提供的主題的不同特徵的許多不同實施例或實例。以下描述組件及配置的具體實例以簡化本揭露內容。當然,此等組件及配置僅為實例且並不意欲為限制性的。舉例而言,在以下描述中,在第二特徵上方或在第二特徵上形成第一特徵可包含第一特徵與第二特徵直接接觸地形成的實施 例,且亦可包含額外特徵可形成於第一特徵與第二特徵之間使得第一特徵與第二特徵可不直接接觸的實施例。此外,本揭露內容可在各種實例中重複附圖標號及/或字母。此重複是出於簡單及清楚的目的,且本身並不指示所論述的各種實施例及/或組態之間的關係。
另外,為易於描述,本文中可使用諸如「在...之下」、「在...下方」、「下部」、「在...上方」、「上部」以及類似術語的空間相對術語,以描述如圖式中所說明的一個部件或特徵相對於另一(些)部件或特徵的關係。除圖式中所描繪的定向之外,空間相對術語亦意欲涵蓋元件在使用或操作中的不同定向。設備可以其他方式定向(旋轉90度或處於其他定向)且本文中所使用的空間相對描述詞同樣可相應地進行解釋。
記憶體元件用於將資訊儲存於半導體元件及系統中。常用的動態隨機存取記憶(dynamic random access memory;DRAM)胞包含開關(switch)及電容器。DRAM在切斷供電時不保留資料。非揮發性記憶體元件甚至能夠在切斷供電後仍保留資料。非揮發性記憶體元件的實例包含快閃記憶體、磁性隨機存取記憶體(magnetic random access memories;MRAM)、鐵電性隨機存取記憶體(ferroelectric random access memories;FRAM)以及相變式隨機存取記憶體(phase-change random access memories;PRAM)。MRAM在穿隧接面(tunnel junction)處使用在磁化方向上的變化來儲存資料。FRAM使用鐵電性的偏振特性來儲存資料。PRAM使用由具體材料的相變化造成的電阻變化來儲存資料。
記憶體通常以2維陣列進行配置。記憶體陣列本身可以 是元件或可嵌入於另一元件中,且亦可包含許多記憶體位元胞。每一記憶體位元胞通常可儲存一個位元的資訊。記憶體巨集可包含一或多個位元胞陣列以及其他邏輯電路,諸如驅動器、緩衝器、時脈扇出電路(clock fan out circuit)、ECC電路以及其他周邊電路。
某些類型的記憶體元件(諸如MRAM)取決於磁性材料(諸如鐵磁性材料)的兩個或大於兩個層之間的磁化對準(magnetization alignment)的狀態而具有兩種或大於兩種電阻狀態。更特定而言,MRAM將資料儲存於具有由較薄絕緣膜間隔開的磁性材料的兩個疊加層的記憶胞處。層狀結構形成MRAM胞的磁穿隧接面(magnetic tunnel junction)(「MTJ」或「MTJ部件」)。兩個層包含在固定磁場對準方向上永久性地磁化的磁性層(將此層稱為「固定層」)以及可變磁化的磁性層(將此層稱為「自由層」)。自由層可在相對於永久性磁化層的兩種定向中的一者上磁化。兩種定向的特徵在於明顯不同的經由MTJ的疊加層的串列電阻(serial resistance)。可變層的磁場定向可與永久磁體層的磁場定向相同地對準(平行)或與永久磁體層的磁場定向相反地對準(反向平行)。平行對準狀態具有相對較低的電阻,而反向平行對準狀態具有較高電阻。
MRAM胞的兩種狀態可自其相對較高或較低的電阻(分別簡稱為RH以及RL)進行感測,所述電阻表示儲存於記憶體中的位元的不同二元邏輯值。舉例而言,RL(或高胞電流)可指定為邏輯「1」(「資料-1(Data-1)」);RH(或低胞電流)可指定為邏輯「0」(「資料-0(Data-0)」)。在某些實施例中,可將參考電壓施加於MRAM胞,且可使用所得胞電流來判定胞是處於低電阻狀態 中還是處於高電阻狀態中。在某些實施例中,可使用感測放大器將胞電流與參考電流進行比較。
資料錯誤,諸如並非永久性的或表示對元件的物理損壞的軟錯誤,可由干擾錯誤(disturb error)、輻射效應或熱效應引起。此類錯誤可能是確定性的或可由隨機程序(stochastic process)引起。可能需要使用建構於MRAM元件晶片中的錯誤校正碼方案(error correction code scheme;ECC)來控制包含軟錯誤的資料錯誤率。可使用ECC來偵測且校正儲存於記憶體中的位元錯誤。ECC藉由產生ECC檢查位元(例如冗餘位元(redundance bit)或奇偶校驗位元(parity bit))來編碼資料,所述ECC檢查位元與資料一起儲存於記憶體元件中。資料及奇偶校驗位元共同形成字元碼(codeword)。舉例而言,針對64個位元的資料產生8個奇偶校驗位元的ECC通常可偵測兩個位元錯誤且校正64個位元的資料中的一個位元錯誤,此稱為單錯修正與雙錯偵測(single-error correcting and double-error detecting;SECDED)碼,包含單錯校正(single-error correcting;SEC)以及雙錯偵測(double-error detecting;DED)。
可能需要額外記憶體空間來儲存與ECC一起使用的檢查位元。因此,可能需要一或多個額外記憶體元件(例如一或多個額外晶片)來儲存檢查位元以用於提供ECC性能。在一些記憶體陣列中,可將額外行(column)添加至陣列以儲存檢查位元(亦稱作奇偶校驗位元)。可將一列記憶體陣列中所包含的資料稱為字(word)。字元碼(codeword)是指包含字加上在額外行中增加的奇偶校驗位元的資料串。若字元碼包含具有K個位元的字部分及M 個奇偶校驗位元,則字元碼長度N將為N=K+M。舉例而言,可為每32位元資料字提供8位元奇偶校驗的ECC記憶體可包含40位元寬的接口,其用於存取具有32位元資料的40位元字元碼。類似地,可為每64位元資料字提供8位元奇偶校驗的ECC記憶體可包含72位元寬的接口,其用於存取具有64位元資料的72位元字元碼。
為每一記憶體陣列或巨集提供ECC電路增加了對元件的面積需求。使ECC電路所需的面積要求最小化的替代方案應提供在記憶體陣列或巨集中共用的全局ECC電路。然而,與針對每一記憶體陣列或巨集提供ECC電路相比,針對記憶體陣列或巨集使用共用ECC電路的方案增加了在將資料移動至或傳播至記憶體陣列及ECC電路以及自記憶體陣列及ECC電路移動或傳播資料時所消耗的能量。
對字元碼中的位元錯誤的偵測所需的操作少於校正位元錯誤所需的操作,故僅需要較少電路來支持此較少的操作。根據所揭露的實施例,ECC電路的第一部分局部地提供給每一記憶體巨集,而第二部分實施為由記憶體元件的所有記憶體巨集存取的共用全局ECC。舉例而言,ECC電路的錯誤偵測態樣可實施為用於每一MRAM巨集或用於小型巨集群組的第一局部ECC。ECC的錯誤校正態樣實施為支持許多MRAM巨集的第二或全局ECC。以此方式,僅局部ECC偵測到的記憶體錯誤必須經傳輸至全局ECC以用於錯誤校正。
階層式ECC結構(諸如具有局部ECC實施及全局ECC實施的此階層式ECC結構)可藉由減小頂置式ECC電路的面積 (相較於為每一記憶體陣列或巨集提供局部完整ECC)以及減少全局資料通訊能量(相較於提供共用全局完整ECC)來有效地平衡與錯誤校正有關的元件的面積需求及功率消耗。藉由僅將偵測到的記憶體錯誤移動至或傳播至全局ECC電路進行校正來減少全局資料通訊能量,且藉由在以共用全局ECC電路提供錯誤校正電路時僅為每一記憶體陣列或巨集提供偵測ECC電路來使元件面積需求最小化。
圖1為總體上示出具有多個記憶體陣列的實例記憶體元件的方塊圖,所述多個記憶體陣列各自具有根據本揭露內容的一些實施例的專用且簡化的ECC電路。在圖1中所繪示的實例中,記憶體元件可以是MRAM元件100,但其他記憶體類型在本揭露內容的範疇內。MRAM元件100包含:包含記憶體陣列102a、記憶體陣列102b至記憶體陣列102n的多個記憶體陣列102;分別耦接至多個記憶體陣列102的多個局部ECC電路140,包含局部ECC電路140a、局部ECC電路140b至局部ECC電路140n;分別耦接至多個記憶體陣列102及多個局部ECC電路140的多個局部I/O電路106,包含局部I/O電路106a、局部I/O電路106b至局部I/O電路106n;耦接至多個局部I/O電路106的每一者的控制器108;全局ECC電路160;以及全局I/O電路110。在所繪示的實施例中,包含記憶體巨集130a、記憶體巨集130b至記憶體巨集130n的多個記憶體巨集130可包含局部記憶體陣列102a至局部記憶體陣列102n、局部ECC電路140a至局部ECC電路140n以及局部I/O電路106a至局部ECC電路106n。
根據一些實施例,若更新時間間隔經適當地設計,則記憶 體更新中的大部分讀取操作應為相對無誤的。在此類情況下,可實施ECC方案,在所述方案中,可局部執行簡單的錯誤偵測功能,從而產生較短局部更新資料路徑120且導致在更新期間的延遲(latency)減少。接著,包含錯誤校正的ECC電路可在多個巨集130a至巨集130n中共用,且較長的全局更新資料路徑122將用於此類相對較少見的事件。在此類方案中,僅具有錯誤偵測的局部ECC電路140a至局部ECC電路140n所需的面積顯著地減少。
已開發出許多方案來實施ECC,此等方案包含漢明(Hamming)碼、三模組化冗餘(triple modular redundancy)等。漢明碼例如是二元線性區塊碼的一種,其中根據所使用的奇偶校驗位元的數目,可偵測每字元碼至多兩位元的錯誤或在不偵測未校正的錯誤的情況下校正一位元的錯誤。已開發出若干方案,但大體而言,若奇偶校驗位元配置於字元碼內使得不同的不正確位元產生不同錯誤結果,則可識別有錯誤的位元。對於具有錯誤的字元碼,錯誤模式經稱作錯誤校正子(error syndrome)且識別出有錯誤的位元。解碼此類校正子為解碼具有錯誤的線性區塊碼的高效方法。
如本文中所描述,局部ECC電路140a至局部ECC電路140n及全局ECC電路160可使用ECC編碼器及解碼器來進行ECC編碼及解碼。ECC編碼器可包含將冗餘(redundancy)添加至資訊以偵測或校正錯誤的任何技術或演算法。舉例而言,錯誤校正碼可包含:非二元區塊碼(non-binary block code),諸如里德-索羅門(Reed-Solomon)[255,239]或[255,221]碼;線性區塊碼,諸如漢明碼以及博斯-查德胡里-霍昆格姆(Bose-Chaudhuri- Hocquenghem;BCH)碼;循環漢明碼(cyclic Hamming code);哈德瑪得(Hadamard)碼,諸如哈德瑪得[16,5]碼;戈萊(Golay)碼,諸如戈萊[23,12]碼、擴展戈萊[24,12]碼或循環戈萊[24,12]碼;最大長度移位暫存器碼(maximum length shift-register conde);里德-穆勒(Reed-Muller)碼;交替碼(alternate code);加普(Gappa)碼;二元回旋碼及非二元回旋碼;雙K碼(dual-K code);渦輪碼(turbo code);渦輪產品碼(turbo product code);低密度奇偶檢查校正碼(low density parity code;LDPC);由將一個碼封閉於另一個碼中而構成的序連碼(concatenated code);以及類似者。可視需要藉由添加更多奇偶校驗位元來調整錯誤校正碼的強度。舉例而言,可藉由最小漢明距離(minimum Hamming distance)來量測碼的強度。ECC解碼器可耦接至ECC編碼器,且用於計算字元碼的校正子。
在一些實施例中,且特定而言,ECC解碼器可經包含於局部ECC 140a至局部ECC 140n中,且對預定義奇偶校驗矩陣(parity check matrix)及字元碼執行矩陣乘法(matrix multiplication)。可根據所採用的ECC的類型來決定預定義奇偶校驗矩陣。舉例而言,預定義奇偶校驗矩陣可以是(7,4)漢明碼的7×3奇偶校驗矩陣H。據此,ECC解碼器輸出由3個位元組成的3元組向量(3-tuple vector)。ECC解碼器用於基於(7,4)漢明碼的原理來檢查經編碼的字元碼是否為有效字元碼。當由ECC解碼器產生的3元組向量(亦即,校正子)等於(0,0,0)時,經編碼的字元碼經判定為有效字元碼。在此情況下,僅需要在判定字元碼有效的情況下的操作,且使用局部更新資料路徑120。當由ECC解 碼器產生的3元組向量在操作中不等於(0,0,0)時,經編碼的字元碼經判定為具有至少一個錯誤。在此情況下,需要包含錯誤校正的更完整的ECC,且使用全局更新資料路徑122。
圖2為總體上示出MRAM元件100的實例的其他態樣的方塊圖。在所繪示的實施例中,局部記憶體陣列102a包含以列及行進行配置的多個MRAM位元胞,諸如MRAM位元胞200。MRAM位元胞200包含存取電晶體212及MTJ部件214。MTJ部件214根據其自由層的定向而具有可變電阻,且可操作地耦接於存取電晶體212與位元線204之間。存取電晶體212可操作地耦接於位元線206與MTJ部件214之間,且具有耦接至字元線202的閘極。在讀取操作或寫入操作期間,將大於存取電晶體212的閾值電壓的電壓施加至字元線202,從而「接通」存取電晶體212且使得電流自位元線206經由MTJ部件214流動至位元線204。由感測放大器(未繪示)偵測此電流,所述感測放大器能夠感測位元線中的電流且比較所述電流,且輸出與MTJ部件214中的自由層的狀態對應的邏輯高「1」或邏輯低「0」,且最終輸出儲存於MRAM位元胞200中的資料(「1」或「0」)。局部記憶體陣列102a中的任一位元胞的存取藉由以下動作來執行:正確地安排將電壓施加至字元線至字元線的時間且感測各別位元線上的電流。可例如經由位元線204及位元線206將局部記憶體陣列102a中的位元胞的資料傳輸至局部ECC電路。例如經由位元線204及位元線206將局部記憶體陣列102a中的位元胞的資料經由局部I/O電路106a而傳輸至位於巨集130a外的電路且自所述電路接收所述資料。
圖3根據一實施例總體上示出用於MRAM錯誤校正的實 例ECC邏輯程序300的方塊圖。在所繪示的實施例中,ECC邏輯程序300包含局部ECC邏輯340及全局ECC邏輯360。在一些實施例中,局部ECC邏輯340設置有記憶體陣列或巨集,且全局ECC邏輯360被多個記憶體陣列或巨集共用。舉例而言,參看圖1,局部ECC邏輯340可對應於與局部記憶體陣列102a一併設置在局部記憶體巨集130a中的局部ECC電路140a,且全局ECC邏輯可對應於被記憶體巨集130a至記憶體巨集130n共用的全局ECC電路160。
局部ECC邏輯340包含校正子s1產生器342、校正子s3產生器344以及錯誤檢查電路346。記憶體陣列102a至記憶體陣列102n中的MRAM位元胞200儲存資料及奇偶校驗位元二者以進行錯誤偵測及校正。在所繪示的實例中,ECC邏輯程序300操作自局部記憶體陣列102a讀取的字元碼。舉例而言,字元碼是自MRAM巨集130a讀取的N位元長度讀出資料。在一些實施例中,僅需要校正子s1與校正子s3來判定讀出資料是否具有錯誤,且因此,僅需要對讀出資料的一部分解碼。校正子s1及校正子s3可分別是單個數值部件(numerical element),或校正子s1及校正子s3可各自為多個數值部件的向量,或校正子s1及校正子s3可以是多個數值部件的矩陣。校正子s1產生器342使用預定義的奇偶校驗矩陣對讀出資料執行矩陣乘法以得到校正子s1,且類似地,校正子s3產生器344對預定義的奇偶校驗矩陣執行矩陣乘法以得到校正子s3。錯誤檢查電路346經配置以估計校正子s1及校正子s3,且判定例如是字元碼的讀出資料是否含有至少一個錯誤。
在藉由錯誤檢查電路346判定讀出資料含有至少一個錯 誤的情況下,需要對讀出資料進行全解碼,因而需要全局ECC邏輯360。全局ECC邏輯360包含x^3(x立方)計算電路351、編碼器(EN)計算電路352、檢查位元產生器353、互斥或(exclusive OR;XOR)計算電路354、反相計算電路355、有限域(諸如高氏場(Galois Field;GF))多重計算電路(multi calculation circuit)356以及錯誤校正電路362。在一些實施例中,EN計算電路352對讀出資料進行運算且輸出單個位元,所述單個位元對在校正之後是否需要將字元碼寫回至局部記憶體陣列102a進行編碼。舉例而言,EN計算電路352可以是BCH循環錯誤校正碼的編碼器級(encoder stage)。在一些實施例中,EN計算電路352添加奇偶校驗位元,使得除了校正之外,全局ECC邏輯360亦可執行額外的錯誤偵測,例如單錯校正雙錯偵測(single-error-correction double-error-detection;SECDED)、雙錯校正三錯偵測(double-error-correction triple-error-detection;DECTED)等。在圖3中所繪示的實施例中,在局部ECC邏輯340中計算,且由全局ECC邏輯360傳輸及使用校正子s1及校正子s3。特定而言,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循環錯誤校正碼的解碼器級(decoder stage),包含錯誤偵測及錯誤校正。在一些實施例中,GF多重計算電路356經由每 一資料位元的高氏場的相乘及累加來對字元碼進行運算,其中將資料位元視為多項式的係數。將GF多重計算電路356的輸出以及讀出資料及校正子s1一起輸入至錯誤校正電路362中。錯誤校正電路362的輸出是經錯誤校正的字元碼。檢查位元產生器353接著對經校正字(例如不具有奇偶校驗位元的資料)進行運算,根據所選擇的ECC類型或方案的預定義奇偶校驗矩陣來對奇偶校驗位元進行編碼,進而形成待寫入至局部記憶體陣列102a的經校正字元碼。
圖4為用於使用在圖3中示出的ECC邏輯程序300校正MRAM錯誤的方法400的流程圖。方法400在步驟402處開始,在所述步驟中,根據讀出資料計算出校正子s1及校正子s3,且此為記憶體陣列的記憶體更新操作的一部分。舉例而言,讀出來自包含局部記憶體陣列102a至局部記憶體陣列102n的多個巨集130a至巨集130n中的一者的字元碼,且藉由在與局部記憶體陣列102a至局部記憶體陣列102n相關聯的局部ECC電路140a至局部ECC電路140n內使用預定義奇偶校驗矩陣(parity-check matrix)來對讀出資料執行矩陣乘法來計算校正子s1及校正子s3,其中在更新循環期間所述讀出資料是來自於所述局部記憶體陣列102a至所述局部記憶體陣列102n。在一些實施例中,如圖3中所示出,可使用局部ECC邏輯340內的s1校正子產生器342及s3校正子產生器344來執行校正子s1及校正子s3的計算。在步驟404處,估計校正子s1及校正子s3,以例如使用局部ECC邏輯340內的錯誤檢查電路346來判定字元碼是否具有至少一個錯誤。若不存在錯誤,則針對所述字元碼的方法400結束,且在局部記憶體陣列102a 至局部記憶體陣列102n的更新循環中針對下一字元碼在步驟402處開始。若存在至少一個錯誤,則方法400繼續進行至步驟406。在步驟406中,將讀出資料以及校正子s1及校正子s3輸入至與多個局部巨集相關聯的全局ECC電路160(諸如全局ECC邏輯360)中,其中所述多個局部巨集包含經判定為具有至少一個錯誤的當前讀出資料所源自的局部巨集。例如藉由使用EN計算電路352而根據讀出資料來判定在校正之後是否需要將字元碼寫回至局部記憶體陣列102。舉例而言,EN計算電路352可以是BCH循環錯誤校正碼的編碼器級(encoder stage)。在一些實施例中,EN計算電路352添加奇偶校驗位元,使得除了校正之外,全局ECC邏輯360更可具有額外錯誤偵測,例如單錯校正雙錯偵測(SECDED)、雙錯校正三錯偵測(DECTED)等。在步驟408處,藉由全局ECC邏輯360內的x^3(x立方)計算電路351來計算s1^3。在步驟410處,諸如藉由全局ECC邏輯360內的XOR計算電路354計算輸入s1^3及輸入s3的XOR,且諸如藉由全局ECC邏輯360內的反相計算電路355來計算s1的反相。在步驟412處,例如藉由GF多重計算電路356使用來自反相s1及XOR計算結果來計算GF多(GF multi)。在一些實施例中,GF多重計算電路356可以是BCH循環錯誤校正碼的解碼器級,包含錯誤偵測及錯誤校正。在一些實施例中,GF多重計算電路356經由每一資料位元的高氏場的相乘及累加來對字元碼進行運算,其中將資料位元視為多項式的係數。在步驟414處,諸如藉由全局ECC邏輯360內的錯誤校正電路362使用讀出資料以及GF多(GF multi)與校正子s1計算的輸出來計算經校正字元碼。在步驟416處,自經校 正字元碼及檢查位元產生器(例如全局ECC邏輯360內的檢查位元產生器353)提取經校正字(例如是經校正資料),根據所選擇的ECC類型或方案來使用預定義奇偶校驗矩陣對具有奇偶校驗位元的經校正資料進行編碼。接著將經校正且經編碼字元碼寫回至局部巨集。
圖5根據一實施例總體上示出用於MRAM錯誤校正的實例ECC邏輯程序500的方塊圖。在ECC邏輯程序500中,相較於圖3的ECC邏輯程序300,檢查位元產生器353不再包含於全局ECC邏輯360中,而是包含於局部ECC邏輯340中。與ECC邏輯程序300的此差異將卸載(offload)以下操作:將奇偶校驗位元編碼成經校正資料以及將所得經校正字元碼寫入至局部記憶體陣列102a以至與局部記憶體陣列102a相關聯的局部ECC邏輯340,使得全局ECC邏輯360不再負責對奇偶校驗位元進行編碼以及將經校正字元碼寫回至共用全局ECC邏輯360的多個巨集的局部記憶體陣列102a至局部記憶體陣列102n。
圖6為用於使用ECC邏輯程序500校正MRAM錯誤的方法600的流程圖。方法600類似於上述方法400,不同之處在於在步驟616處,在步驟416中所包含的相同操作在局部ECC(而非全局ECC)內執行,進而將所述工作卸載至如上文結合圖5所描述的局部ECC邏輯電路。特定而言,步驟616包含:自經校正字元碼提取經校正字(例如經校正資料),以及根據所選擇的ECC類型或方案來使用預定義奇偶校驗矩陣對具有奇偶校驗位元的經校正資料進行編碼,以及將經校正且經編碼字元碼回寫至與局部ECC邏輯電路相關聯的局部巨集。
圖7根據一些實施例總體上示出用於MRAM錯誤校正的實例ECC邏輯程序700的方塊圖。ECC邏輯程序700類似於上述ECC邏輯程序500,但存在兩處差異。第一差異是在全局ECC邏輯360內複製校正子s1產生器342及校正子s3產生器344。在全局ECC邏輯360內複製校正子s1產生器342及校正子s3產生器344可減少整體階層式ECC方案內所需的連接的數目,且亦可簡化佈局結構。舉例而言,ECC邏輯程序300及ECC邏輯程序500需要每一局部ECC電路140a至局部ECC電路140n及局部I/O電路106a至局部I/O電路106n以支持傳輸讀出資料以及校正子s1及校正子s3,且需要全局ECC電路160以支持接收校正子s1及校正子s3以及讀出資料。對比而言,ECC邏輯程序700僅需要局部ECC電路140a至局部ECC電路140n以及局部I/O電路以支持傳輸讀出資料,且僅需要全局ECC電路160以支持接收讀出資料。同樣,在一些實施例中,在局部I/O電路106a至局部I/O電路106n與全局ECC電路160之間傳輸校正子s1及校正子s3所需的連接可使用ECC邏輯程序700除去,此可簡化MRAM元件100的佈局結構。
第二差異是錯誤偵測電路357包含於全局ECC邏輯360內。類似於錯誤檢查電路346,錯誤偵測電路357經配置以判定讀出資料(例如字元碼)是否含有至少一個錯誤,但在全局ECC邏輯360內進行此判定。錯誤偵測電路357接收EN計算電路352的輸出、s1、s3以及s1^3而作為輸入,且輸出讀出資料是否含有至少一個錯誤。錯誤偵測電路357可輸出在讀出資料中是否存在至少一個錯誤,或在讀出資料中是否存在至少兩個錯誤,且可輸出在 讀出資料中是否存在至少三個或大於三個錯誤。
圖8為用於使用ECC邏輯程序700校正MRAM錯誤的方法800的流程圖。方法800類似於上述方法600,但存在兩處差異。第一,用步驟806替換步驟406,在所述步驟中,在全局ECC電路160(例如全局ECC邏輯360)內計算s1及s3,而非根據方法400及方法600的步驟406中所包含的相同操作輸入s1及s3。第二,在步驟408與步驟410之間,在步驟809處,在全局ECC電路160(例如錯誤偵測電路357)內計算讀出資料中的錯誤是否存在以及錯誤的數目。
圖9根據一實施例總體上示出用於MRAM錯誤校正的實例ECC邏輯程序900的方塊圖。ECC邏輯程序900類似於上述ECC邏輯程序700,但存在四處差異。第一,不再在全局ECC邏輯360內複製校正子s1產生器342及校正子s3產生器。第二,立方計算電路351、EN計算電路352以及錯誤偵測電路357包含於局部ECC邏輯340中,而不再包含於全局ECC邏輯360中。將立方計算電路351、EN計算電路352以及錯誤偵測電路357包含於局部ECC邏輯340內增加了局部ECC邏輯340的計算效用及供電。對於經歷相對較高資料錯誤率的MRAM元件100,移動資料的能量消耗負擔與由於將錯誤偵測及校正操作卸載至共用全局ECC電路160而導致的資料延遲二者可超過移除電路以在局部記憶體巨集130a至局部記憶體巨集130n中執行彼等操作的節省面積的益處。在此情況下,可藉由調整面積、能量消耗以及與藉由增加局部執行的操作而檢查到的錯誤相關聯的資料延遲之間的平衡來提高MRAM元件100的效率。舉例而言,藉由包含EN計算及 校正子s1立方計算,ECC邏輯程序900的局部ECC邏輯340亦可包含例如經由錯誤偵測電路357的錯誤偵測,且如此一來可更精確地偵測錯誤的數目,其包含偵測字元碼中是否存在錯誤且亦偵測字元碼及字內的錯誤的數目。
第三差異是省去錯誤檢查電路346。第四差異是類似於ECC邏輯程序300,檢查位元產生器353再次包含於全局ECC邏輯360中,而非包含於局部ECC邏輯340中。
圖10為用於使用ECC邏輯程序900校正MRAM錯誤的方法1000的流程圖。方法1000類似於上述方法800,但存在四處差異。第一,在步驟402之後,包含步驟1003,在所述步驟中,分別藉由局部ECC邏輯340內的x^3(x立方)計算電路351及EN計算電路352來計算s1^3及編碼(EN)。第二,用步驟1004替換步驟404,在所述步驟中,局部ECC邏輯340內的錯誤偵測電路357計算讀出資料中的錯誤的存在及讀出資料中的錯誤的數目,且此計算是根據s1、s3、s1^3以及編碼(EN)計算。若不存在錯誤,則針對所述字元碼的方法1000結束,且在局部記憶體陣列102a的更新循環中針對下一字元碼在方法1000的步驟402處開始。第三,若存在至少一個錯誤,則方法1000繼續進行至步驟1006,在所述步驟中,將讀出資料、校正子s1、校正子s3、s1^3以及偵測到的錯誤的數目輸入至全局ECC邏輯360中。第四,方法1000用方法400的步驟416替換方法800的步驟616,亦即,在方法1000的步驟416處,自經校正字元碼提取經校正字(例如經校正資料),且全局ECC邏輯360內的檢查位元產生器353根據所選擇的ECC類型或方案來使用預定義奇偶校驗矩陣對具有奇 偶校驗位元的經校正資料進行編碼,且將經校正且經編碼字元碼寫回至局部巨集130。
圖11根據一實施例總體上示出用於MRAM錯誤校正的實例ECC邏輯程序1100的方塊圖。ECC邏輯程序1100類似於以上ECC邏輯程序900,不同之處在於檢查位元產生器353不再包含於全局ECC邏輯360中,而是包含於局部ECC邏輯340中。如上文結合圖5的ECC邏輯程序500所陳述,此差異省略以下操作:將奇偶校驗位元編碼成經校正資料以及將所得經校正字元碼寫入至局部記憶體陣列102a以至與局部記憶體陣列102a相關聯的局部ECC邏輯340,使得全局ECC邏輯不再負責對奇偶校驗進行編碼以及將經校正字元碼寫入共用全局ECC邏輯360的多個記憶體巨集130a至記憶體巨集130n。
圖12為用於使用ECC邏輯程序1100校正MRAM錯誤的方法1200的流程圖。方法1200類似於上述方法1000,不同之處在於用步驟616替換步驟416,使得自經校正字元碼提取經校正字(例如經校正資料)且根據所選擇的ECC類型或方案來使用預定義奇偶校驗矩陣對具有奇偶校驗位元的經校正資料進行編碼,以及將經校正且經編碼的字元碼寫回至與局部ECC邏輯340相關聯的局部記憶體陣列102的操作是在局部ECC邏輯340內執行(諸如方法600及方法800的情況),而非在全局ECC邏輯360內執行。
圖13根據一實施例總體上示出用於MRAM錯誤校正的實例ECC邏輯程序1300的方塊圖。ECC邏輯程序1300類似於上述ECC邏輯程序1100,不同之處在於在全局ECC邏輯360內複 製校正子s1產生器342、校正子s3產生器344以及立方計算電路351。如上文結合圖7所描述,在全局ECC邏輯360內複製校正子s1產生器342、校正子s3產生器344以及立方計算電路351可減少整體階層式ECC方案內所需的連接的數目,且亦可簡化佈局結構。
圖14為用於使用ECC邏輯程序1300校正MRAM錯誤的方法1400的流程圖。方法1400類似於以上方法1200,不同之處在於以步驟1406替換步驟1006。換言之,在全局ECC邏輯360內計算校正子s1、校正子s3以及校正子s1^3,以複製在局部ECC邏輯340內計算得到的彼等數量。此代替了將彼等數量自局部ECC邏輯340輸入至全局ECC邏輯360中,如同在方法1200的步驟1006中所進行的一般。同樣,方法1400的步驟1406包含:將自步驟1004偵測到的讀出資料及錯誤的數目輸入至全局ECC邏輯360中,以及在全局ECC邏輯360內複製s1、s3以及s1^3的計算。此類似於圖8中所繪示的方法800與圖7的ECC邏輯程序700結合而發生的複製。
圖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邏輯的計算效用及供電。如上文結合ECC邏輯程序900及圖9所描述,可藉由經由在資料錯誤率升高時增加局 部執行的操作而調整面積、能量消耗以及與錯誤檢查相關聯的資料延遲之間的平衡來提高MRAM元件100的效率,例如藉由在局部ECC電路140a至局部ECC電路140n內局部地實施更多錯誤檢查電路來對面積進行折衷,以減少與將資料移動至共用全局ECC電路160相關聯的資料延遲及能量消耗。舉例而言,在ECC邏輯程序1500中,除錯誤校正以及編碼經錯誤校正的資料及將經錯誤校正的資料寫回至局部巨集以外,局部ECC邏輯340局部地執行所有ECC操作。
圖16為用於使用ECC邏輯程序1500校正MRAM錯誤的方法1600的流程圖。方法1600類似於上述方法1000,但存在五處差異。第一,方法1600用步驟1604替換方法1000的步驟1004。方法1600的步驟1604執行與方法1000的步驟1004相同的操作,亦即,基於對s1、s3、s1^3以及編碼(EN)的計算來計算是否存在錯誤及局部ECC邏輯340內的讀出資料中的錯誤的數目。僅有的差異是若錯誤確實存在於讀出資料中,則步驟1604繼續進行至方法1600的步驟1610,而非步驟1006。此是由於在ECC邏輯程序1500中的局部ECC邏輯340內所包含的額外電路。第二,步驟1006未在方法1600中執行,而是作為與方法1000的第三差異,步驟1610自方法1600中的步驟1604繼續進行。在步驟1610中,諸如藉由XOR計算電路354計算s1^3與s3的XOR,以及諸如藉由局部ECC邏輯340內的反相計算電路355計算反相s1。第四,在步驟1612處,在局部ECC邏輯340內計算GF多(GF multi),且第五,在步驟1613處,將讀出資料、偵測到的錯誤的數目、s1以及GF多(GF multi)計算結果輸入至全局ECC邏 輯360中,且在方法1600的步驟414處,其用於計算經校正字元碼。
圖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至記憶體巨集130n。
圖18為用於使用ECC邏輯程序1700校正MRAM錯誤的方法1800的流程圖。方法1800類似於上述方法1600,不同之處在於用步驟616替換步驟416,使得自經校正字元碼提取經校正字(例如經校正資料)且根據所選擇的ECC類型或方案使用預定義奇偶校驗矩陣對具有奇偶校驗位元的經校正資料進行編碼,以及將經校正且經編碼字元碼寫回至與局部ECC邏輯340相關聯的局部記憶體巨集130的操作是在局部ECC邏輯340內執行(諸如方法600、方法800、方法1200以及方法1400的情況),而非在全局ECC邏輯360內執行。
圖19為根據一些實施例的用於使用階層式ECC邏輯程序校正MRAM錯誤的方法1900的流程圖。方法1900在步驟1902處開始,在所述步驟中,提供多個記憶體巨集(例如MRAM記憶 體巨集130a至MRAM記憶體巨集130n),所述多個記憶體巨集各自至少包含記憶胞陣列及局部ECC邏輯電路。在一些實施例中,多個記憶體巨集包含局部記憶體陣列102a至局部記憶體陣列102n,所述局部記憶體陣列中的每一者分別包含局部ECC邏輯140a至局部ECC邏輯140n。在步驟1904處,提供全局ECC邏輯電路,所述全局ECC邏輯電路遠離多個MRAM巨集且耦接至多個MRAM巨集中的每一者。在一些實施例中,全局ECC邏輯電路包含全局ECC邏輯160。在步驟1906處,檢查來自局部MRAM巨集的資料,例如作為更新循環的部分,在所述更新循環中,在局部ECC邏輯電路內檢查局部MRAM記憶體的部分(例如讀出資料或字元碼)的錯誤。若在特定字元碼中未發現錯誤,則作為更新循環的部分而檢查巨集中的下一字元碼。方法1900接著繼續進行至步驟1908,其中,若在局部巨集的記憶體陣列中發現至少一個錯誤,則將經檢查且發現具有至少一個錯誤的資料(例如具有至少一個錯誤的字元碼)與局部ECC邏輯電路內的計算電路的輸出一起發送至全局ECC邏輯。在步驟1910處,在全局ECC邏輯電路內校正具有至少一個錯誤的資料,且在步驟1912處,將經校正資料寫回至局部巨集記憶體陣列。
因此,所揭露的實例為記憶體元件提供錯誤偵測及校正,且更特定而言,為短期保持(short retention)記憶體元件(諸如需要定期更新的MRAM)提供錯誤偵測及校正。藉由使用其中向記憶體巨集局部地提供一些ECC功能且全局地提供其他ECC功能的階層式ECC方法,可在足夠低的錯誤率下實現MRAM元件的巨集面積減小以及供電減少。某些所揭露的實施例包含具有多個 記憶體巨集的記憶體元件,諸如MRAM記憶體元件,所述多個記憶體巨集各自包含記憶體陣列及第一ECC電路。第一ECC電路經配置以偵測各別記憶體巨集中的資料錯誤。第二ECC電路遠離多個記憶體巨集,且通信耦接至多個記憶體巨集中的每一者。第二ECC電路經配置以自多個記憶體巨集的第一ECC電路接收偵測到的資料錯誤且校正資料錯誤。
在一些實施例中,所述多個記憶體巨集各自包括磁性隨機存取記憶體巨集。在一些實施例中,所述磁性隨機存取記憶體巨集各自更包括:磁性隨機存取記憶體位元胞陣列以及局部輸入-輸出電路。每一磁性隨機存取記憶體位元胞包括:磁穿隧接面部件;存取電晶體,耦接至所述磁穿隧接面部件;第一位元線,耦接至所述存取電晶體;第二位元線,耦接至所述磁穿隧接面部件;字元線,耦接至所述存取電晶體的閘極。所述局部輸入-輸出電路耦接至所述磁性隨機存取記憶體位元胞的所述第一位元線及所述第二位元線。在一些實施例中,所述第一錯誤校正碼電路包括:第一校正子產生器,耦接至所述第一位元線及所述第二位元線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;錯誤檢查電路,耦接至所述第一校正子產生器及所述第二校正子產生器中的每一者的輸出端。在一些實施例中,所述第二錯誤校正碼電路包括:編碼器計算電路,耦接至所述局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的所述輸出端;校正子反相電路,耦接至所述第一校正子產生器的所述輸出端;校正子比較器,耦接至校正子立方計算電路的輸出端及所述第二校正子產生器的所述輸出端;高氏場多重計算電路,耦接至所述校正子比較 器的輸出端及所述校正子反相電路的輸出端;錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有錯誤的所述磁性隨機存取記憶體位元胞。在一些實施例中,所述第一錯誤校正碼電路包括:第一校正子產生器,耦接至所述第一位元線及所述第二位元線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;編碼器計算電路,耦接至所述局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的所述輸出端;錯誤檢查電路,耦接至所述第一校正子產生器、所述第二校正子產生器、所述編碼器計算電路以及所述校正子立方計算電路中的每一者的輸出端。在一些實施例中,所述第二錯誤校正碼電路包括:校正子反相電路,耦接至所述第一校正子產生器的所述輸出端;校正子比較器,耦接至所述校正子立方計算電路的所述輸出端及所述第二校正子產生器的所述輸出端;高氏場多重計算電路,耦接至所述校正子比較器的輸出端及所述校正子反相電路的輸出端;錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有錯誤的所述磁性隨機存取記憶體位元胞。在一些實施例中,所述第一錯誤校正碼電路包括:第一校正子產生器,耦接至所述第一位元線及所述第二位元線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;編碼器計算電路,耦接至所述局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的輸出端;錯誤檢查電路,耦接至所述第一校正子產生器、所述第二校正子產生器、所述編碼器計算電路以及所述校正 子立方計算電路中的每一者的輸出端;校正子反相電路,耦接至所述第一校正子產生器的所述輸出端;校正子比較器,耦接至所述校正子立方計算電路的所述輸出端及所述第二校正子產生器的所述輸出端;以及高氏場多重計算電路,耦接至所述校正子比較器的輸出端及所述校正子反相電路的輸出端。在一些實施例中,所述第二錯誤校正碼電路包括:錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有錯誤的所述磁性隨機存取記憶體位元胞。
根據其他態樣,ECC系統包含多個第一ECC電路。多個第一ECC電路中的每一者經配置以通信耦接至記憶體陣列且經配置以偵測所述記憶體陣列中的資料錯誤。第二ECC電路通信耦接至多個第一ECC電路中的每一者,且經配置以自多個第一ECC電路接收偵測到的資料錯誤且校正資料錯誤。
在一些實施例中,所述多個第一錯誤校正碼電路中的每一者包括:第一校正子產生器,耦接至第一位元線及第二位元線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;以及錯誤檢查電路,耦接至所述第一校正子產生器及所述第二校正子產生器中的每一者的輸出端。所述第二錯誤校正碼電路包括:編碼器計算電路,耦接至局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的所述輸出端;校正子反相電路,耦接至所述第一校正子產生器的所述輸出端;校正子比較器,耦接至校正子立方計算電路的輸出端及所述第二校正子產生器的所述輸出端;高氏場多重計算電路,耦接至所述校正子比較器的輸出端及 所述校正子反相電路的輸出端;錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有所述資料錯誤的記憶胞。在一些實施例中,所述多個第一錯誤校正碼電路中的每一者包括:第一校正子產生器,耦接至第一位元線及第二位元線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;編碼器計算電路,耦接至局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的輸出端;以及錯誤檢查電路,耦接至所述第一校正子產生器、所述第二校正子產生器、所述編碼器計算電路以及所述校正子立方計算電路中的每一者的輸出端。所述第二錯誤校正碼電路包括:校正子反相電路,耦接至所述第一校正子產生器的所述輸出端;校正子比較器,耦接至所述校正子立方計算電路的所述輸出端及所述第二校正子產生器的所述輸出端;高氏場多重計算電路,耦接至所述校正子比較器的輸出端及所述校正子反相電路的輸出端;錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有所述資料錯誤的記憶胞。在一些實施例中,所述多個第一錯誤校正碼電路中的每一者包括:第一校正子產生器,耦接至第一位元線及第二位元線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;編碼器計算電路,耦接至局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的輸出端;錯誤檢查電路,耦接至所述第一校正子產生器、所述第二校正子產生器、所述編碼器計算電路以及所述校正子立方計算電路中的每一者的輸出端;校正子反相電路,耦接至 所述第一校正子產生器的所述輸出端;校正子比較器,耦接至所述校正子立方計算電路的所述輸出端及所述第二校正子產生器的所述輸出端;以及高氏場多重計算電路,耦接至所述校正子比較器的輸出端及所述校正子反相電路的輸出端。所述第二錯誤校正碼電路包括:錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有所述資料錯誤的記憶胞。
根據其他態樣,一種錯誤偵測及校正的方法包含:提供多個記憶體巨集,所述多個記憶體巨集各自包含記憶體陣列及第一ECC電路。所述方法更包含:提供第二ECC電路,所述第二ECC電路遠離多個記憶體巨集且通信耦接至多個記憶體巨集中的每一者;以及更新記憶體陣列,包含利用第一ECC電路檢查記憶體陣列中的資料錯誤。若第一ECC電路識別出資料錯誤,則所述方法更包含:將偵測到的資料錯誤轉發至第二ECC電路;藉由第二ECC電路校正資料錯誤;以及將經校正資料寫入至記憶體陣列。
在一些實施例中,利用所述第一錯誤校正碼電路檢查所述記憶體陣列中的所述資料錯誤包括:基於自所述記憶體陣列接收到的資料來產生第一校正子;基於自所述記憶體陣列接收到的資料來產生第二校正子;基於所述第一校正子及所述第二校正子進行錯誤檢查。在一些實施例中,利用所述第二錯誤校正碼電路校正所述資料錯誤包括:基於自所述記憶體陣列接收到的資料來產生編碼;基於所述第一校正子來產生校正子立方;基於所述第一校正子來產生校正子反相;將所述校正子立方與所述第二校正子進行比較;基於所述校正子反相以及所述校正子立方與所述第二校 正子的比較來產生高氏場多計算;基於所述編碼、所述第一校正子以及所述高氏場多計算來產生檢查位元錯誤校正;且將所述檢查位元錯誤校正寫入至所述記憶體陣列以校正所述資料錯誤。在一些實施例中,利用所述第一錯誤校正碼電路檢查所述記憶體陣列中的所述資料錯誤包括:基於自所述記憶體陣列接收到的資料來產生第一校正子;基於自所述記憶體陣列接收到的資料來產生第二校正子;基於自所述記憶體陣列接收到的資料來產生編碼;基於所述第一校正子來產生校正子立方;以及基於所述第一校正子、所述第二校正子、所述編碼以及所述校正子立方進行錯誤檢查。在一些實施例中,利用所述第二錯誤校正碼電路校正所述資料錯誤包括:基於所述第一校正子來產生校正子反相;將所述校正子立方與所述第二校正子進行比較;基於所述校正子反相以及所述校正子立方與所述第二校正子的比較來產生高氏場多計算;基於所述編碼、所述第一校正子以及所述高氏場多計算來產生檢查位元錯誤校正;以及將所述檢查位元錯誤校正寫入至所述記憶體陣列以校正所述資料錯誤。在一些實施例中,利用所述第一錯誤校正碼電路檢查所述記憶體陣列中的所述資料錯誤包括:基於自所述記憶體陣列接收到的資料來產生第一校正子;基於自所述記憶體陣列接收到的資料來產生第二校正子;基於自所述記憶體陣列接收到的資料來產生編碼;基於所述第一校正子來產生校正子立方;基於所述第一校正子、所述第二校正子、所述編碼以及所述校正子立方進行錯誤檢查;基於所述第一校正子來產生校正子反相;將所述校正子立方與所述第二校正子進行比較;以及基於所述校正子反相以及所述校正子立方與所述第二校正子的比較來產生高氏場多計 算。在一些實施例中,利用所述第二錯誤校正碼電路校正所述資料錯誤包括:基於所述編碼、所述第一校正子以及所述高氏場多計算來產生檢查位元錯誤校正;以及將所述檢查位元錯誤校正寫入至所述記憶體陣列以校正所述資料錯誤。
本揭露內容概述各種實施例,從而使得在所屬技術領域中具有通常知識者可更佳地理解本揭露內容的態樣。所屬技術領域中具有通常知識者應瞭解,其可易於使用本揭露內容作為設計或修改用於實現本文中所引入的實施例的相同目的及/或達成相同優點的其他製程及結構的基礎。所屬技術領域中具有通常知識者亦應認識到,此類等效構造並不脫離本揭露內容的精神及範疇,且所屬技術領域中具有通常知識者可在不脫離本揭露內容的精神及範疇的情況下在本文中作出各種改變、替代以及更改。
100:MRAM元件
102、102a、102b、102n:局部記憶體陣列
106、106a、106b、106n:局部I/O電路
108:控制器
110:全局I/O電路
120:局部更新資料路徑
122:全局更新資料路徑
130、130a、130b、130n:記憶體巨集
140、140a、140b、140n:局部ECC電路
160:全局ECC電路

Claims (11)

  1. 一種記憶體元件,包括:多個記憶體巨集,各自包含記憶體陣列及第一錯誤校正碼電路,所述第一錯誤校正碼電路經配置以偵測各別記憶體巨集中的資料錯誤;第二錯誤校正碼電路,遠離所述多個記憶體巨集且通信耦接至所述多個記憶體巨集中的每一者,且經配置以自所述多個記憶體巨集的所述第一錯誤校正碼電路接收偵測到的所述資料錯誤、校正所述資料錯誤且將經校正資料寫入至所述記憶體陣列。
  2. 如申請專利範圍第1項所述的記憶體元件,其中所述多個記憶體巨集各自包括磁性隨機存取記憶體巨集。
  3. 如申請專利範圍第2項所述的記憶體元件,其中所述磁性隨機存取記憶體巨集各自更包括:磁性隨機存取記憶體位元胞陣列,每一磁性隨機存取記憶體位元胞包括:磁穿隧接面部件;存取電晶體,耦接至所述磁穿隧接面部件;第一位元線,耦接至所述存取電晶體;第二位元線,耦接至所述磁穿隧接面部件;字元線,耦接至所述存取電晶體的閘極;以及局部輸入-輸出電路,耦接至所述磁性隨機存取記憶體位元胞的所述第一位元線及所述第二位元線。
  4. 如申請專利範圍第3項所述的記憶體元件,其中所述第一錯誤校正碼電路包括: 第一校正子產生器,耦接至所述第一位元線及所述第二位元線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;錯誤檢查電路,耦接至所述第一校正子產生器及所述第二校正子產生器中的每一者的輸出端。
  5. 如申請專利範圍第4項所述的記憶體元件,其中所述第二錯誤校正碼電路包括:編碼器計算電路,耦接至所述局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的所述輸出端;校正子反相電路,耦接至所述第一校正子產生器的所述輸出端;校正子比較器,耦接至校正子立方計算電路的輸出端及所述第二校正子產生器的所述輸出端;高氏場多重計算電路,耦接至所述校正子比較器的輸出端及所述校正子反相電路的輸出端;錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有錯誤的所述磁性隨機存取記憶體位元胞。
  6. 如申請專利範圍第3項所述的記憶體元件,其中所述第一錯誤校正碼電路包括:第一校正子產生器,耦接至所述第一位元線及所述第二位元 線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;編碼器計算電路,耦接至所述局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的所述輸出端;錯誤檢查電路,耦接至所述第一校正子產生器、所述第二校正子產生器、所述編碼器計算電路以及所述校正子立方計算電路中的每一者的輸出端。
  7. 如申請專利範圍第6項所述的記憶體元件,其中所述第二錯誤校正碼電路包括:校正子反相電路,耦接至所述第一校正子產生器的所述輸出端;校正子比較器,耦接至所述校正子立方計算電路的所述輸出端及所述第二校正子產生器的所述輸出端;高氏場多重計算電路,耦接至所述校正子比較器的輸出端及所述校正子反相電路的輸出端;錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有錯誤的所述磁性隨機存取記憶體位元胞。
  8. 如申請專利範圍第3項所述的記憶體元件,其中所述第一錯誤校正碼電路包括:第一校正子產生器,耦接至所述第一位元線及所述第二位元 線;第二校正子產生器,耦接至所述第一位元線及所述第二位元線;編碼器計算電路,耦接至所述局部輸入-輸出電路;校正子立方計算電路,耦接至所述第一校正子產生器的輸出端;錯誤檢查電路,耦接至所述第一校正子產生器、所述第二校正子產生器、所述編碼器計算電路以及所述校正子立方計算電路中的每一者的輸出端;校正子反相電路,耦接至所述第一校正子產生器的所述輸出端;校正子比較器,耦接至所述校正子立方計算電路的所述輸出端及所述第二校正子產生器的所述輸出端;以及高氏場多重計算電路,耦接至所述校正子比較器的輸出端及所述校正子反相電路的輸出端。
  9. 如申請專利範圍第8項所述的記憶體元件,其中所述第二錯誤校正碼電路包括:錯誤校正電路,耦接至所述局部輸入-輸出電路、所述第一校正子產生器以及所述高氏場多重計算電路;以及檢查位元產生器電路,用於校正具有錯誤的所述磁性隨機存取記憶體位元胞。
  10. 一種錯誤校正系統,包括:多個第一錯誤校正碼電路,所述多個第一錯誤校正碼電路中的每一者經配置以通信耦接至記憶體陣列且經配置以偵測所述記 憶體陣列中的資料錯誤;以及第二錯誤校正碼電路,通信耦接至所述多個第一錯誤校正碼電路中的每一者,且經配置以自所述多個第一錯誤校正碼電路接收偵測到的所述資料錯誤且校正所述資料錯誤。
  11. 一種錯誤偵測及校正的方法,包括:提供多個記憶體巨集,所述多個記憶體巨集各自包含記憶體陣列及第一錯誤校正碼電路;提供第二錯誤校正碼電路,所述第二錯誤校正碼電路遠離所述多個記憶體巨集且通信耦接至所述多個記憶體巨集中的每一者;更新所述記憶體陣列,包含利用所述第一錯誤校正碼電路檢查所述記憶體陣列中的資料錯誤;若所述第一錯誤校正碼電路識別出資料錯誤,則將偵測到的所述資料錯誤轉發至所述第二錯誤校正碼電路;藉由所述第二錯誤校正碼電路校正所述資料錯誤;以及將經校正資料寫入至所述記憶體陣列。
TW108134418A 2018-09-28 2019-09-24 記憶體錯誤偵測及校正 TWI714277B (zh)

Applications Claiming Priority (4)

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

Publications (2)

Publication Number Publication Date
TW202018725A TW202018725A (zh) 2020-05-16
TWI714277B true TWI714277B (zh) 2020-12-21

Family

ID=69946930

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108134418A TWI714277B (zh) 2018-09-28 2019-09-24 記憶體錯誤偵測及校正

Country Status (3)

Country Link
KR (2) KR20200037090A (zh)
CN (1) CN110970081A (zh)
TW (1) TWI714277B (zh)

Families Citing this family (6)

* 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 (zh) * 2020-12-11 2023-05-30 西安紫光国芯半导体有限公司 存储器、阵列单元模块及其存储方法、构建方法
CN113223603B (zh) * 2021-05-31 2022-12-06 西安紫光国芯半导体有限公司 存储器刷新控制方法、装置、控制电路及存储器件
CN113791737B (zh) * 2021-09-15 2024-02-02 北京航空航天大学 一种非易失性存储阵列的软错误检测方法及装置
KR20230069316A (ko) 2021-11-11 2023-05-19 삼성디스플레이 주식회사 표시 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20170222663A1 (en) * 2014-09-30 2017-08-03 Micron Technology, Inc. Progressive effort decoder architecture
US9825651B2 (en) * 2015-06-25 2017-11-21 SK Hynix Inc. Controller, semiconductor memory system and operating method thereof
US10056921B2 (en) * 2016-08-25 2018-08-21 Taiwan Semiconductor Manufacturing Company Ltd. Memory system having flexible ECC scheme and method of the same

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006190425A (ja) * 2005-01-07 2006-07-20 Nec Electronics Corp 半導体記憶装置
JP4564520B2 (ja) * 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
KR20120063329A (ko) * 2010-12-07 2012-06-15 삼성전자주식회사 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
US9235466B2 (en) * 2012-07-03 2016-01-12 Samsung Electronics Co., Ltd. Memory devices with selective error correction code
KR102083498B1 (ko) * 2012-07-03 2020-04-14 삼성전자 주식회사 선택적 ecc 동작을 수행하는 메모리 장치
KR102178137B1 (ko) 2014-08-26 2020-11-12 삼성전자주식회사 반도체 메모리 장치, 이의 에러 정정 방법 및 이를 포함하는 메모리 시스템
US10140175B2 (en) * 2015-11-20 2018-11-27 Qualcomm Incorporated Protecting an ECC location when transmitting correction data across a memory link
KR102479212B1 (ko) * 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20170222663A1 (en) * 2014-09-30 2017-08-03 Micron Technology, Inc. Progressive effort decoder architecture
US9825651B2 (en) * 2015-06-25 2017-11-21 SK Hynix Inc. Controller, semiconductor memory system and operating method thereof
US10056921B2 (en) * 2016-08-25 2018-08-21 Taiwan Semiconductor Manufacturing Company Ltd. Memory system having flexible ECC scheme and method of the same

Also Published As

Publication number Publication date
CN110970081A (zh) 2020-04-07
KR102303961B1 (ko) 2021-09-27
TW202018725A (zh) 2020-05-16
KR20200037090A (ko) 2020-04-08
KR20210075930A (ko) 2021-06-23

Similar Documents

Publication Publication Date Title
US11762732B2 (en) Memory error detection and correction
TWI714277B (zh) 記憶體錯誤偵測及校正
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
TWI674767B (zh) 用於nand快閃記憶體的渦輪乘積碼
CN103811076A (zh) 存储模块、具有其的存储系统及其读写方法
US9141473B2 (en) Parallel memory error detection and correction
US10498364B2 (en) Error correction circuits and memory controllers including the same
US10270471B2 (en) Memory system having ECC self-checking function and associated method
US10056921B2 (en) Memory system having flexible ECC scheme and method of the same
US11734111B2 (en) Integrated circuit and method of operating same
Pae et al. Minimal aliasing single-error-correction codes for dram reliability improvement
US20210083690A1 (en) Memory system and operating method thereof
US7904786B2 (en) Assisted memory system
US20220368354A1 (en) Two-level error correcting code with sharing of check-bits
Kang et al. One-step majority-logic-decodable codes enable STT-MRAM for high speed working memories
TWI706416B (zh) 多個記憶體裝置共用的錯誤更正系統
Kokkiligadda et al. Efficient and Failure Aware ECC for STT-MRAM Cache Memory
Duangthong et al. Two-Dimensional Error Correction Code for Spin-Transfer Torque Magnetic Random-Access Memory (STT-MRAM) Caches
Penumutchi et al. Low Redundancy Matrix Code with Efficient PPA
RANI et al. Multi Bit Errors Detection and Correction using SRAM Based DMC
KR20170067656A (ko) Nand 플래시용 터보 프로덕트 코드
Baoming Error control coding for semiconductor memories