TW201633301A - 記憶體裝置及記憶體系統 - Google Patents

記憶體裝置及記憶體系統 Download PDF

Info

Publication number
TW201633301A
TW201633301A TW104135893A TW104135893A TW201633301A TW 201633301 A TW201633301 A TW 201633301A TW 104135893 A TW104135893 A TW 104135893A TW 104135893 A TW104135893 A TW 104135893A TW 201633301 A TW201633301 A TW 201633301A
Authority
TW
Taiwan
Prior art keywords
data
bits
memory
error
syndrome
Prior art date
Application number
TW104135893A
Other languages
English (en)
Inventor
穂谷克彥
Original Assignee
東芝股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 東芝股份有限公司 filed Critical 東芝股份有限公司
Publication of TW201633301A publication Critical patent/TW201633301A/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction

Abstract

一項實施例之一記憶體裝置包含:記憶體元件,其儲存資料及同位;一第一解碼器,當在不對該記憶體裝置進行外部存取之同時執行該資料之擦洗時,該第一解碼器使用自該資料及該同位產生之一校正子來校正該資料之一單元中最大N個位元之一錯誤;及一第二解碼器,當執行該資料之讀取時,該第二解碼器使用該校正子來校正該資料之一單元中最大M個位元之一錯誤。該M個位元表示小於該N個位元之數目個位元。

Description

記憶體裝置及記憶體系統
本發明實施例係關於一種記憶體裝置及一種記憶體系統。
使用一磁阻元件之一記憶體裝置被稱為一磁性記憶體裝置,該磁性記憶體裝置包含於一記憶體系統中。
1‧‧‧自旋轉移扭矩型磁阻式隨機存取記憶體/磁阻式隨機存 取記憶體
2‧‧‧記憶體控制器
3‧‧‧主機裝置
4‧‧‧連接線
5‧‧‧連接線
10‧‧‧記憶體系統/整個記憶體系統
11‧‧‧記憶體胞元陣列
12‧‧‧列解碼器
13‧‧‧行控制器
14‧‧‧錯誤校正碼電路/錯誤校正電路
141‧‧‧錯誤校正碼編碼器
142M‧‧‧錯誤校正碼解碼器
142N‧‧‧錯誤校正碼解碼器
143‧‧‧校正子產生器
144‧‧‧判定器
15‧‧‧控制器
16‧‧‧輸入與輸出控制器
21‧‧‧磁阻式隨機存取記憶體
22‧‧‧記憶體控制器
24‧‧‧錯誤校正電路
215‧‧‧控制器
216‧‧‧輸入與輸出控制器
241‧‧‧錯誤校正碼編碼器
242M‧‧‧錯誤校正碼解碼器
242N‧‧‧錯誤校正碼解碼器
243‧‧‧校正子產生器
244‧‧‧判定器
31‧‧‧讀取與寫入控制器
32‧‧‧擦洗控制器
33‧‧‧暫存器
51‧‧‧磁阻式隨機存取記憶體
52‧‧‧記憶體控制器
54‧‧‧錯誤校正電路
54M‧‧‧錯誤校正電路
54N‧‧‧錯誤校正電路
541‧‧‧錯誤校正碼編碼器
542M‧‧‧錯誤校正碼解碼器
542N‧‧‧錯誤校正碼解碼器
543‧‧‧校正子產生器
544‧‧‧判定器
CN‧‧‧計數器
DQ‧‧‧資料輸入與輸出單元
圖1圖解說明根據一第一實施例之一記憶體系統之功能區塊之一實例;圖2示意性地圖解說明根據第一實施例的包含於一磁性記憶體裝置中之一錯誤校正電路之結構之一實例;圖3圖解說明根據第一實施例之磁性記憶體裝置之狀態如何改變;圖4圖解說明根據第一實施例之一記憶體系統之一讀取操作之流程;圖5圖解說明根據第一實施例之記憶體系統之讀取操作之另一實例之流程;圖6圖解說明根據第一實施例之記憶體系統之一擦洗操作之流程;圖7示意性地圖解說明根據一第二實施例的包含於一記憶體控制器中之一錯誤校正電路之結構之一實例; 圖8圖解說明根據第二實施例之記憶體系統之一讀取操作之流程;圖9圖解說明根據第二實施例之記憶體系統之一擦洗操作之流程;圖10圖解說明根據第二實施例之記憶體系統中之一命令序列之一實例;圖11示意性地圖解說明根據一第三實施例的包含於一記憶體系統中之一錯誤校正電路之結構之一實例;圖12圖解說明根據第三實施例之記憶體系統之一擦洗操作之流程;且圖13圖解說明根據第三實施例之記憶體系統中之一命令序列之一實例。
一磁性記憶體裝置包含複數個記憶體胞元。每一記憶體胞元包含(舉例而言)一磁阻元件。該磁阻元件可藉由呈現兩個電阻狀態中之任一者來儲存資料。
然而,磁阻元件可能改變其電阻狀態以無意地翻轉所儲存資料。
根據以下所闡述實施例,經翻轉資料被偵測為一錯誤,且該資料在其中一使用者未存取一磁性記憶體裝置之一時間期間(亦即,其中一記憶體控制器未經由一主機裝置自使用者接收指令並且未執行資料檢查或未執行重寫,換言之在磁性記憶體裝置之一閒置時間中)經寫回。此操作被稱為「擦洗」。根據以下實施例,可執行擦洗以改良記憶體裝置之一可靠性,同時維持記憶體裝置之一高速執行。具體而言,一項實施例之一記憶體裝置包含:記憶體元件,其儲存資料及同位;一第一解碼器,當在不對記憶體裝置進行外部存取之同時執行資 料之擦洗時,該第一解碼器使用自資料及同位產生之一校正子來校正資料之一單元中最大N個位元之一錯誤;及一第二解碼器,當執行資料之讀取時,該第二解碼器使用校正子來校正資料之一單元中最大M個位元之一錯誤。M個位元表示小於N個位元之數目個位元。
下文將藉由參考附圖闡述實施例。在圖式中,類似組件將由相同參考符號指示。每一功能區塊未必需要如在以下實例中一樣區分。舉例而言,某些功能可由不同於下文所圖解說明之功能區塊之功能區塊實施。此外,一所圖解說明功能區塊可劃分為功能子區塊。
<第一實施例>
將闡述根據本發明實施例之一記憶體裝置及一記憶體系統。根據本發明實施例之記憶體裝置係一磁性記憶體裝置,諸如一自旋轉移扭矩(STT)型磁阻式隨機存取記憶體(MRAM)。在MRAM中,一磁性穿隧接面(MTJ)元件(其係一磁阻元件)被用作一記憶體元件。
(1)記憶體系統結構之實例
首先,藉由參考圖1,將闡述根據本發明實施例之一記憶體系統之結構之一實例。圖1圖解說明根據本發明實施例之一記憶體系統之一例示性功能區塊圖。
如圖1中所圖解說明,一記憶體系統10包含作為一磁性記憶體裝置之一STT型MRAM 1、一記憶體控制器2及一主機裝置3。
主機裝置3給記憶體控制器2下達一操作指令,諸如在MRAM 1中進行寫入及讀取操作。主機裝置3藉由一連接線4可通信地連接至記憶體控制器2。連接線4舉例而言包含一電源線、一資料匯流排、一命令線等等。
記憶體控制器2根據來自主機裝置3之指令將各種命令傳輸至MRAM 1,且指示MRAM 1進行諸如資料寫入及讀取操作之操作。記憶體控制器2傳輸資料將寫入至其中之一位址及資料將自其讀取至 MRAM 1之一位址,且在MRAM 1之記憶體區當中指定經受諸如寫入或讀取之操作之一區。
另外,記憶體控制器2獨立於來自主機裝置3之指令將一擦洗命令自主地傳輸至MRAM 1,且給MRAM 1下達一資料擦洗操作之一指令。擦洗操作包含保持於記憶體胞元MC中之資料之檢查及重寫。可視需要執行資料之重寫。
記憶體控制器2包含一控制器215、一輸入與輸出控制器216及一資料輸入與輸出單元CTR_DQ等等。控制器215控制記憶體控制器2之整個操作,包含資料輸入與輸出單元CTR_DQ以及輸入與輸出控制器216之操作。資料輸入與輸出單元CTR_DQ經由連接線4連接至主機裝置3且控制至主機裝置3之資料之傳輸及自主機裝置3之資料之接收。輸入與輸出控制器216包含一資料輸入與輸出單元DQ_CTR且經由連接線5可通信地連接至MRAM 1。連接線5舉例而言包含一電源線、一資料匯流排、一命令線等等。
記憶體控制器2之上述功能可藉由諸如一中央處理單元(CPU)之一處理器及諸如一唯讀記憶體(ROM)及一隨機存取記憶體(RAM)之硬體實施。舉例而言,保持於一ROM中之一程式可在一RAM上讀取且RAM中之一程式可由CPU執行以執行記憶體控制器2之操作。
MRAM 1包含一記憶體胞元陣列11、一列解碼器12、一行控制器13、一錯誤校正碼(ECC)電路14、一控制器15及一輸入與輸出控制器16。MRAM 1根據來自記憶體控制器2之各種類型之命令執行諸如寫入、讀取及擦洗之操作。
記憶體胞元陣列11包含複數個記憶體胞元MC。記憶體胞元MC連接至複數個位元線BL及與位元線BL配對之對應位元線/BL以及複數個字線WL。
一記憶體胞元MC包含一MTJ元件及一胞元電晶體。MTJ元件可 使用一磁阻效應保持資料。胞元電晶體與MTJ元件串聯連接且控制至MTJ元件之一電流之供應及停止。
更具體而言,MTJ元件包含兩個磁性層及介於兩個磁性層之間的一非磁性層。在第一磁性層中,磁化之一定向或磁各向異性係不可變的。在第二磁性層中,磁化之一定向或磁各向異性係可變的。當一寫入電流自第一磁性層流向第二磁性層時,兩個磁性層之磁化之定向變得平行於彼此。當兩個磁性層之磁化定向係平行時,MTJ元件呈現最小電阻值。當寫入電流自第二磁性層流向第一磁性層時,兩個磁性層之磁化之定向變得反平行於彼此。當兩個磁性層之磁化定向係反平行於彼此時,MTJ元件呈現最大電阻值。將表示兩個不同電阻值之此等兩個狀態指派給二進制資料。
列解碼器12連接至字線WL。列解碼器12根據一列位址選出字線WL中之一者。
行控制器13連接至位元線對BL、/BL。行控制器13包含一行解碼器、一行選出器、一感測放大器、一寫入驅動器等等。行控制器13根據一行位址選出位元線對BL、/BL當中之一對,且將資料寫入至一經選出記憶體胞元MC或自該經選出記憶體胞元MC讀出資料。
錯誤校正電路14處理來自記憶體控制器2之寫入資料且將該寫入資料傳送至行控制器13。錯誤校正電路14校正自行控制器13接收之資料之一錯誤。稍後將詳細地闡述錯誤校正電路14。
輸入與輸出控制器16控制MRAM 1與記憶體控制器2之間的信號傳輸。輸入與輸出控制器16將來自記憶體控制器2之一命令及一位址供應至控制器15。輸入與輸出控制器16亦包含資料輸入與輸出單元DQ。資料輸入與輸出單元DQ受輸入與輸出控制器16控制以自記憶體控制器2接收寫入資料且將該寫入資料傳輸至錯誤校正電路14。此外,資料輸入與輸出單元DQ受輸入與輸出控制器16控制以將來自錯 誤校正電路14之資料作為讀取資料傳輸至記憶體控制器2。
控制器15包含一讀取與寫入控制器31、一擦洗控制器32、一暫存器33、一命令解碼器、一鎖存器、一緩衝器、一電壓產生器等等。控制器15根據來自記憶體控制器2之命令及位址控制MRAM 1之組件。
讀取與寫入控制器31控制自記憶體胞元陣列11讀取資料及將資料寫入至記憶體胞元陣列11。讀取與寫入控制器31根據命令及位址控制列解碼器12及行控制器13。因此,自由位址規定的一或多個記憶體胞元MC讀取資料或將資料寫入至該一或多個記憶體胞元MC。
擦洗控制器32控制擦洗操作。在自記憶體控制器2接收到一擦洗命令後,擦洗控制器32旋即執行由記憶體胞元MC保持的資料之擦洗。記憶體胞元MC之擦洗操作一次執行之一程度被稱為一擦洗執行單元且該程度提前判定。擦洗執行單元可舉例而言基於一起讀取之記憶體胞元MC之數目來判定。另一選擇係,擦洗執行單元可基於記憶體胞元陣列11中之記憶體胞元MC之位置來判定。
擦洗控制器32可包含(舉例而言)一計數器CN。擦洗控制器32使用該計數器CN來管理針對每一擦洗執行單元之記憶體胞元MC之位址。計數器CN保持已係擦洗操作之最後目標之一記憶體胞元MC之位址。每當MRAM 1接收擦洗命令且擦洗操作執行時,擦洗控制器32皆遞增由計數器CN擁有之位址。
暫存器33保持關於擦洗操作之資料,諸如保持錯誤資料之一記憶體胞元MC之位址。
(2)錯誤校正電路結構之實例
現在將藉由參考圖2詳細地闡述錯誤校正電路14。圖2示意性地圖解說明根據本發明實施例的包含於磁性記憶體裝置中之錯誤校正電路之結構之一實例。
如圖2中所圖解說明,錯誤校正電路14包含一ECC編碼器141,ECC解碼器142M、142N,校正子產生器143及一判定器144。
錯誤校正電路14藉由ECC編碼器141處理寫入資料(1及0位元之一串)且將經處理資料傳送至行控制器13。
具體而言,寫入資料自記憶體控制器2傳輸至資料輸入與輸出單元DQ。在資料輸入與輸出單元DQ中,輸入與輸出控制器16將寫入資料劃分為複數個資料單元,其中每一資料單元具有預定數目個位元。每一經劃分資料單元亦可被稱為(舉例而言)一ECC字。此等ECC字經傳送至錯誤校正電路14。
ECC編碼器141自一ECC字產生一錯誤校正碼(同位)且將該同位與ECC字耦合。該同位係遵照一預定錯誤校正碼產生規則形成且用於後續錯誤偵測中之一位元串或諸如此類。ECC字之位元之數目亦遵照錯誤校正碼產生規則而預判定。
在錯誤校正電路14中所使用之錯誤校正碼產生規則經組態以允許偵測針對每一資料單元或(換言之)一ECC字具有最大N個位元之一錯誤。亦即,同位係以使得該同位可用於具有最大N個位元之錯誤之錯誤偵測中之一方式而遵照錯誤校正碼產生規則產生。已經已知各種錯誤校正碼產生規則。舉例而言,用於錯誤校正電路14中之錯誤校正碼產生規則可自彼等已知錯誤校正碼產生規則選出。
ECC編碼器141在(舉例而言)寫入操作期間執行資料處理。ECC字及同位之一集合經傳送至行控制器13並經寫入於記憶體胞元MC中。
錯誤校正電路14使用ECC解碼器142M或142N以及校正子產生器143校正讀取資料中之一錯誤。
具體而言,錯誤校正電路14接收自記憶體胞元MC讀取之資料。類似於寫入時之資料,自記憶體胞元MC讀取之資料包含一ECC字及同位之若干集合。
校正子產生器143根據遵從上文所闡述之錯誤校正碼產生規則之一解碼矩陣以及該ECC字及同位之該等集合來計算一校正子。可(舉例而言)藉由倍增其中ECC字及同位之該等集合串接之位元串由解碼矩陣獲得校正子。該校正子係包含資料之錯誤資訊之一位元串或諸如此類。資料之錯誤資訊可包含(舉例而言)關於個別ECC字中之一錯誤之存在或不存在之資訊、關於錯誤之一位元位置之識別之資訊、關於錯誤位元之數目之資訊等等。校正子產生器143遵從用於錯誤校正電路14中之錯誤校正碼產生規則,且可產生能夠偵測針對每一資料單元具有最大N個位元之一錯誤之一校正子。亦即,校正子產生器143使用能夠偵測針對每一資料單元具有最大N個位元之一錯誤之解碼矩陣。
判定器144判定錯誤位元之數目是否超過特定準則。具體而言,判定器144引用校正子來判定錯誤位元之數目是否係零或者是否等於或小於M個位元或N個位元。
ECC解碼器142N可基於包含於校正子中之錯誤資訊校正針對每一資料單元具有最大N個位元之一錯誤。ECC解碼器142N藉由藉助校正子及遵從錯誤校正碼產生規則之一錯誤校正多項式執行操作來識別每一資料單元之最大N個位元之錯誤位置或諸如此類。為識別每一資料單元之最大N個位元之錯誤位置以藉此達成錯誤校正,可使用(舉例而言)具有N個未知數之一個N次方程式之錯誤校正多項式。在所識別之錯誤位置處,ECC解碼器142N將資料「0」及資料「1」反轉。因此,校正每一資料單元具有最大N個位元之錯誤。ECC解碼器142N在(舉例而言)擦洗操作期間執行錯誤校正。
ECC解碼器142M可根據包含於校正子中之錯誤資訊校正針對每一資料單元具有最大M個位元之錯誤。M個位元小於上文所提及之N個位元。ECC解碼器142M藉由藉助校正子及自用於ECC解碼器142N 中之錯誤校正多項式簡化之一多項式或一更低次錯誤校正多項式執行操作來識別每一資料單元之最大M個位元之錯誤位置或諸如此類。為識別每一資料單元之最大M個位元之錯誤位置以藉此達成錯誤校正,可使用(舉例而言)具有M個未知數之一個M次方程式之錯誤校正多項式。ECC解碼器142M反轉位於所識別錯誤位置處之資料。因此,校正每一資料單元具有最大M個位元之錯誤。ECC解碼器142M在(舉例而言)讀取操作期間執行錯誤校正。
藉由平衡(舉例而言)用於錯誤校正所需之一時間與用於資料所需之一可靠性來判定諸如N個位元或M個位元之錯誤位元之數目。隨著待校正之位元之數目增加,需要一更長時間用於錯誤校正,且反之亦然。用於錯誤校正所需之時間亦取決於待藉由一單次讀取或擦洗操作處置之資料之大小。隨著資料之大小增加,需要一更長時間用於錯誤校正,且反之亦然。同時,隨著可校正位元之數目增加,資料之可靠性改良,且反之亦然。鑒於上文,可如下文判定諸如N個位元或M個位元之錯誤位元之數目。
N表示在擦洗操作中每一資料單元的可校正錯誤位元之最大數目。可執行擦洗操作以(舉例而言)確保所保持資料之一可靠性。因此,需要一高可靠性。同時,藉由使用(舉例而言)不對MRAM 1或諸如此類進行外部存取時之時間(亦即,在MRAM 1之一閒置時間期間)執行擦洗操作,稍後將對此進行闡述。甚至在用於錯誤校正所花費之時間在一特定程度上變得更長時,亦將不會對MRAM 1之操作之速度產生一顯著影響。此外,待由一單次擦洗操作處置之資料之大小等效於上文所提及之擦洗執行單元。藉由恰當地設定擦洗執行單元,可調整錯誤校正時間。因此,較佳係將N設定至歸屬於不影響MRAM 1之操作速度之一範圍內之一最大可能值。
M表示在讀取操作中每一資料單元的可校正錯誤位元之最大數 目。在讀取操作中,MRAM 1需要將由記憶體控制器2所請求之資料快速地發送至記憶體控制器2。分配用於錯誤校正之一時間且因此讀取操作期間可校正錯誤位元之數目受到限制。在讀取操作中,必須考量一資料遮罩之處置、待讀取之資料之大小等等。鑒於此等觀點,可校正錯誤位元之數目亦可受到約束。因此,將M設定至小於N之一值以使對一資料讀取速度之影響最小化,同時維持用於讀取資料所需之可靠性。
(3)記憶體系統之操作實例
現在將藉由參考圖3至圖6闡述記憶體系統10之一操作實例。
[磁性記憶體裝置之狀態之轉變之實例]
首先將藉由參考圖3給出對MRAM 1之狀態之轉變之一實例之闡述,各種操作基於該闡述。圖3圖解說明根據本發明實施例之磁性記憶體裝置之狀態如何改變。
如圖3中所圖解說明,MRAM 1具有一閒置狀態及一作用狀態。
在閒置狀態中,MRAM 1不執行諸如寫入、讀取及擦洗之操作。
在作用狀態中,MRAM 1可執行諸如寫入或讀取之操作。MRAM 1之狀態回應於來自記憶體控制器2之一作用命令自閒置狀態改變為作用狀態。在作用狀態中,MRAM 1可接受諸如來自記憶體控制器2之一寫入命令或一讀取命令之一命令。
相比而言,MRAM 1可將其狀態自閒置狀態直接改變為擦洗操作。亦即,MRAM 1在閒置狀態中可自記憶體控制器2接收一擦洗命令。回應於該擦洗命令,MRAM 1開始擦洗操作。擦洗操作包含一系列操作,諸如讀取、藉由錯誤校正電路14校正一錯誤及重新開始寫入。此等操作亦可被稱為一「讀取-修改-寫入」操作。
鑒於上文,下文將闡述諸如寫入、讀取及擦洗之操作中之MRAM 1及記憶體控制器2之操作之流程。
[寫入操作之實例]
將闡述記憶體系統10之寫入操作之一實例。
在自主機裝置3接收到一寫入指令後,記憶體控制器2之控制器215發出一寫入命令且將具有寫入資料之該寫入命令及寫入之一目的地位址傳輸至MRAM 1。
MRAM 1之輸入與輸出控制器16將寫入命令及寫入之目的地位址傳送至控制器15。控制器15將寫入之目的地位址之一列位址傳送至列解碼器12,且將一行位址傳送至行控制器13。
MRAM 1之輸入與輸出控制器16亦將寫入資料劃分為複數個ECC字。經劃分為ECC字之資料經傳送至錯誤校正電路14。ECC編碼器141自個別ECC字產生同位且將該等ECC字及同位串接。錯誤校正電路14將ECC字及同位之若干集合輸出至行控制器13。
列解碼器12及行控制器13根據列位址及行位址選出一寫入目標記憶體胞元MC。控制器15之讀取與寫入控制器31根據寫入命令將ECC字及同位寫入至經選出記憶體胞元MC。
然後寫入操作完成。
[讀取操作之實例]
現在將藉由參考圖4及圖5闡述記憶體系統10之讀取操作之一實例。圖4圖解說明根據本發明實施例之記憶體系統之讀取操作之流程。圖5圖解說明根據本發明實施例之記憶體系統之讀取操作之另一實例之流程。圖4及圖5主要圖解說明關於錯誤校正之操作。
如圖4中所圖解說明,在自主機裝置3接收到一讀取指令後,記憶體控制器2之控制器215發佈一讀取命令且將該讀取命令與讀取之源位址一起傳輸至MRAM 1(步驟S11)。
MRAM 1之輸入與輸出控制器16將讀取命令及讀取之源位址傳送至控制器15。控制器15將讀取之源位址之一列位址傳送至列解碼器 12,同時將一行位址傳送至行控制器13。
列解碼器12及行控制器13根據該列位址及該行位址選出讀取目標記憶體胞元MC。讀取與寫入控制器31致使行控制器13根據讀取命令自經選出記憶體胞元MC讀取資料。
行控制器13將讀取資料傳送至錯誤校正電路14。校正子產生器143自包含於讀取資料中之ECC字及同位計算一校正子(例如,S1、S3、...、Sx)(步驟S12)。
判定器144自包含於校正子中之錯誤資訊判定ECC字中之錯誤位元之數目是否係零(步驟S13)。將一判定結果傳輸至讀取與寫入控制器31。若錯誤位元之數目係零,則讀取與寫入控制器31將ECC字按在錯誤校正電路14中之原樣傳送至輸入與輸出控制器16。
若錯誤位元之數目不為零,則判定器144根據包含於校正子中之錯誤資訊判定ECC字中之錯誤位元之數目是否等於或小於M個位元(步驟S14)。
若錯誤位元之數目等於或小於M個位元,則讀取與寫入控制器31致使ECC解碼器142M對ECC字執行具有最大M個位元之錯誤之校正(步驟S15)。讀取與寫入控制器31將在ECC解碼器142M中執行錯誤校正之資料傳送至輸入與輸出控制器16。
藉助讀取與寫入控制器31之控制,資料輸入與輸出單元DQ自ECC解碼器142M接收ECC字或經錯誤校正資料,且將該ECC字或該資料作為讀取資料傳輸至記憶體控制器2(步驟S16)。
當錯誤位元之數目大於M個位元時,錯誤校正電路14發佈一警示而非執行錯誤校正(步驟S17)。MRAM 1將包含錯誤之資料傳輸至記憶體控制器2。
記憶體控制器2判定是否接收到警示,或關於該警示之一信號是否處於「H」位準(步驟S18)。舉例而言,若記憶體控制器2在讀取命 令之傳輸之後的一固定時間段內尚未接收到警示(亦即,關於該警示之信號處於「L」位準),則記憶體控制器2判定讀取操作已完成。
當記憶體控制器2接收到警示時,致使發生警示之資料可包含諸多錯誤使得該資料按原樣可係不可靠的。記憶體控制器2可發佈(舉例而言)擦洗命令以便致使MRAM 1執行擦洗操作(步驟S19)。當擦洗操作完成時,記憶體控制器2可致使MRAM 1再次讀取資料以確認錯誤位元之數目是否已降低。
記憶體控制器2可藉由執行除擦洗操作之外的一操作來對警示之發生做出回應。記憶體控制器2可發佈(舉例而言)一寫入命令以致使MRAM 1執行寫入操作(重寫操作)。為執行重寫,需要資料能夠以某種方式(諸如藉由維持待寫入於記憶體控制器2中之資料)提取。另一選擇係,記憶體控制器2可根據來自主機裝置3之指令發佈(舉例而言)一抹除命令,且致使MRAM 1抹除包含諸多錯誤之資料或禁止對此資料之存取。藉由執行此等操作中之任一者,可消除不可靠資料。
如圖5中所圖解說明,除在步驟S13中判定零位元之錯誤及在步驟S14-1中判定M個位元之錯誤之外,判定器144亦可在步驟S14-2中判定ECC字中之錯誤位元之數目是否等於或小於N個位元。判定器144因此獲得關於錯誤位元之數目的以下判定結果(a)至(d)。
(a)錯誤位元之數目=0
(b)0<錯誤位元之數目M個位元
(c)M個位元<錯誤位元之數目N個位元
(d)N個位元<錯誤位元之數目
若獲得判定結果(a)或(b),則資料使其錯誤經校正且然後經傳輸至記憶體控制器2,如上文所闡述(步驟S16)。
若獲得判定結果(c)或(d),則警示經傳輸至記憶體控制器2,如上文所闡述(步驟S17)。在接收到警示後(步驟S18-1),記憶體控制器2可 取決於判定結果旋即以不同方式回應。亦即,記憶體控制器2可藉由致使MRAM 1執行(舉例而言)擦洗操作(自步驟S18-2至步驟S19-1)來對判定結果(c)做出回應。記憶體控制器2亦可藉由致使MRAM 1執行(舉例而言)資料之重寫(自步驟S18-2至步驟S19-2)來對判定結果(d)做出回應。
[擦洗操作之實例]
可回應於MTJ元件之電阻狀態之一無意改變來翻轉保持於記憶體胞元MC中之資料。此資料將會包含錯誤。基於此觀點,可由擦洗操作偵測資料中之錯誤且將校正資料寫回至記憶體胞元MC。
記憶體控制器2之控制器215致使MRAM 1定期或非定期地執行擦洗操作。在MRAM 1於(舉例而言)已經過一固定時間段或者讀取指令或諸如此類已被發佈固定次數以上之後進入閒置狀態時,記憶體控制器2可指示MRAM 1執行擦洗操作。記憶體控制器2可在已於讀取操作中偵測到大於M個位元的錯誤位元之數目時致使執行擦洗操作。
MRAM 1根據由上文所闡述之擦洗控制器32管理之位址針對每一擦洗單元依序擦洗記憶體胞元MC。因此,在致使MRAM 1執行擦洗操作時不需要記憶體控制器2規定記憶體胞元MC之位址。
下文將藉由參考圖6闡述記憶體系統10之擦洗操作之一實例。圖6圖解說明根據本發明實施例之記憶體系統之擦洗操作之流程。圖6主要圖解說明關於錯誤校正之操作。
如圖6中所圖解說明,記憶體控制器2發佈一擦洗命令且將該擦洗命令傳輸至MRAM 1(步驟S21)。
MRAM 1之輸入與輸出控制器16將該擦洗命令傳送至控制器15。該擦洗命令由控制器15之擦洗控制器32接收。在接收到該擦洗命令後,擦洗控制器32自對應於由擦洗控制器32管理且經受擦洗操作之一位址之記憶體胞元MC讀取資料。亦即,擦洗控制器32控制列解碼器 12及行控制器13以在行控制器13上自經選出記憶體胞元MC讀取資料。
行控制器13將讀取資料傳送至錯誤校正電路14。校正子產生器143自包含於讀取資料中之ECC字及同位計算校正子(例如,S1、S3、...、Sx)(步驟S22)。
判定器144判定ECC字中之錯誤位元之數目是否係零(步驟S23)。若錯誤位元之數目係零,則擦洗操作之流程繼續進行至步驟S28。
若錯誤位元之數目不為零,則判定器144判定ECC字中之錯誤位元之數目是否等於或小於N個位元(步驟S24)。
若錯誤位元之數目等於或小於N個位元,則擦洗控制器32致使ECC解碼器142N對ECC字執行具有最大N個位元之錯誤之校正(步驟S25)。讀取與寫入控制器31控制擦洗控制器32以將經錯誤校正資料寫回至已係擦洗操作之一目標之記憶體胞元MC(步驟S26)。
在不自記憶體控制器2接收一命令、資料或一位址之情況下執行至記憶體胞元MC之資料之寫回操作(重寫操作)。以類似於上文所提及之寫入操作之方式執行資料之寫回操作之其餘部分。亦即,錯誤校正電路14將經錯誤校正資料處理為ECC字及同位之集合,ECC字及同位之該等集合然後藉由擦洗控制器32寫入於記憶體胞元MC中。
若錯誤位元之數目大於N個位元,則錯誤校正電路14發佈一警示,且控制器15將該警示傳輸至記憶體控制器2(步驟S27)。
記憶體控制器2判定該警示是否處於「H」位準(步驟S28)。若該警示處於「L」位準,則記憶體控制器2判定擦洗操作已完成。
若該警示處於「H」位準且(舉例而言)記憶體控制器2保持該資料,則記憶體控制器2發佈寫入命令以致使MRAM 1執行寫入操作(步驟S29)。在寫入操作完成之後,記憶體控制器2可致使MRAM 1再次擦洗資料。記憶體控制器2可藉由執行除寫入之外的一操作來對警示 之發生做出回應。
(4)本發明實施例之優點
根據本發明實施例,可基於以下特徵(A)或(B)獲得一或多個優點。
(A)根據本發明實施例,錯誤校正電路14包含ECC解碼器142M、142N。當在不對MRAM 1進行外部存取之同時執行資料擦洗時(亦即,在MRAM 1之閒置時間期間),ECC解碼器142N使用校正子校正每一資料單元具有最大N個位元之錯誤。當執行資料讀取時,ECC解碼器142M使用校正子校正每一資料單元具有最大M個位元(M<N)之錯誤。
藉助特徵(A),MRAM 1可藉由擦洗資料將資料中錯誤位元之數目抑制於一所要範圍內。保持於記憶體胞元MC中之資料之可靠性因此可得以改良。
藉助特徵(A),MRAM 1可在擦洗期間使用高校正能力執行錯誤校正。所保持資料之可靠性因此可進一步得以改良。儘管在校正能力進一步得以改良時將花費更長時間執行錯誤校正,但擦洗係使用MRAM 1處於閒置狀態中時之時間段來執行。因此,可維持對包含MRAM 1之整個記憶體系統10之一高速執行。
藉助特徵(A),MRAM 1可藉由使錯誤校正能力在讀取期間比在擦洗期間低而將讀取資料快速地傳輸至記憶體控制器2。因此可提高對整個記憶體系統10之高速執行。
藉助特徵(A),MRAM 1可充分保證讀取資料之可靠性,此乃因甚至在讀取期間錯誤位元亦經校正,只要錯誤位元等於或小於M個位元即可。
(B)在本發明實施例中,產生同位及校正子以允許偵測N位元錯誤。
藉助特徵(B),兩個ECC解碼器142M、142N可使用一共同同位及校正子。因此,與在使用不同類型之同位及校正子時之情形相比,錯誤校正電路14可包含一簡化結構。
藉助特徵(B),在與其中需要(舉例而言)不同類型之同位及校正子之情形相比時,在由ECC編碼器141處理之資料中佔用之同位位元之數目可受到抑制。此可得以達成,此乃因若不使用一共同同位或諸如此類,則兩種類型之同位(舉例而言,其中一種類型用於M位元校正且另一類型用於N位元校正)彼此連接至一ECC字。
藉助特徵(B),甚至在讀取期間亦可執行具有最大N個位元之錯誤之錯誤校正。因此,可取決於經偵測錯誤之數目適當地處置資料。整個記憶體系統10之可靠性因此可得以改良。
<第二實施例>
將藉由參考圖7至圖10闡述本發明實施例。
本發明實施例不同於以上實施例之處在於一記憶體控制器22而非一MRAM 21包含一錯誤校正電路24。本發明實施例之剩餘部件類似於以上實施例之處在於MRAM 21、記憶體控制器22以及包含MRAM 21及記憶體控制器22之一記憶體系統分別類似於上文已闡述之MRAM 1、記憶體控制器2以及記憶體系統10。
(1)記憶體系統結構之實例
將藉由參考圖7闡述根據本發明實施例之MRAM 21及記憶體控制器22之結構之一實例。圖7示意性地圖解說明根據本發明實施例的包含於記憶體控制器中之錯誤校正電路之結構之一實例。
如圖7中所圖解說明,記憶體控制器22包含一錯誤校正電路24。錯誤校正電路24包含一ECC編碼器241,ECC解碼器242M、242N,校正子產生器243及一判定器244。
關於資料之傳輸及接收,錯誤校正電路24執行不同於以上實施 例之錯誤校正電路14之操作之一操作。稍後將藉由使用操作之一流程圖闡述資料之傳輸及接收。
錯誤校正電路24之剩餘部件及其中包含之組件類似於上文所闡述之錯誤校正電路14。亦即,ECC編碼器241等效於錯誤校正電路14之ECC編碼器141。ECC解碼器242M、242N分別等效於ECC解碼器142M、142N。校正子產生器243等效於校正子產生器143。判定器244對應於判定器144。
(2)記憶體系統之操作實例
接下來,將藉由參考圖8至圖10闡述本發明實施例之記憶體系統之一操作實例。
[寫入操作之實例]
首先,將闡述MRAM 21及記憶體控制器22之寫入操作之一實例。
在寫入操作期間,錯誤校正電路24受記憶體控制器22之控制器215控制以在記憶體控制器22將寫入資料傳輸至MRAM 21之前接收並處理寫入資料。經處理資料藉由記憶體控制器22傳輸至MRAM 21且寫入於記憶體胞元MC中。
[讀取操作之實例]
現在將藉由參考圖8闡述MRAM 21及記憶體控制器22之讀取操作之一實例。圖8圖解說明根據本發明實施例之記憶體系統之讀取操作之流程。
如圖8中所圖解說明,控制器215將一讀取命令連同讀取之一源位址一起傳輸至MRAM 21(步驟S31)。
一讀取與寫入控制器31接收該讀取命令以自該源位址處之記憶體胞元MC讀取資料,且將該資料作為讀取資料傳輸至記憶體控制器22(步驟S32)。該讀取資料包含ECC字及同位之複數個集合。將該讀 取資料傳輸至校正子產生器243及ECC解碼器242M。
校正子產生器243自讀取資料計算校正子(步驟S33),且將該校正子傳輸至判定器244。判定器244判定讀取資料中之錯誤位元之數目是否係零且若否,則判定錯誤位元之數目是否等於或小於M個位元(步驟S34至S35)。將一判定結果傳輸至控制器215。
若錯誤位元之數目係零,則控制器215既不在ECC解碼器242M中執行錯誤校正亦不將資料寫回至MRAM 1。然後,讀取之流程繼續進行至步驟S38。在步驟S38中,控制器215判定錯誤校正電路24是否已發佈一警示。若錯誤位元之數目係零且無警示發佈,則控制器215完成讀取操作。
同時,若錯誤位元之數目大於零並且等於或小於M個位元,則控制器215致使ECC解碼器242M對讀取資料執行錯誤校正(步驟S36)。若錯誤位元之數目大於M個位元,則錯誤校正電路24發佈一警示(步驟S37)。步驟S36、S37繼續至步驟S38。
在步驟S38中,當判定已發佈警示時,控制器215致使MRAM 1執行擦洗操作或諸如此類(步驟S39)。另一選擇係,記憶體控制器22可執行如結合圖4所提及之各種回應。
除判定0位元及M個位元之錯誤之外,本發明實施例之判定器244亦可執行N個位元之錯誤之判定,如圖5中所圖解說明。
[擦洗操作之實例]
現在將藉由參考圖9闡述MRAM 21及記憶體控制器22之擦洗操作之一實例。圖9圖解說明根據本發明實施例之記憶體系統之擦洗操作之流程。
如圖9中所圖解說明,記憶體控制器22之控制器215將擦洗命令傳輸至MRAM 21(步驟S41)。
在接收到擦洗命令後,MRAM 21之擦洗控制器32受讀取與寫入 控制器31控制以自位於保持於計數器CN中之一位址處之記憶體胞元MC讀取資料且將該資料作為讀取資料傳輸至記憶體控制器22(步驟S42)。該讀取資料包含ECC字及同位之複數個集合。將該讀取資料傳輸至校正子產生器243及ECC解碼器242N。
然後,記憶體控制器22執行步驟S43至S46或者步驟S43至S45、S49及S50。步驟S43至S46、S49及S50類似於上文所闡述之圖8之步驟S33至S38,惟錯誤位元之數目係N個位元而非M個位元,以及ECC解碼器242N而非ECC解碼器242M包含於圖8之步驟S33至S38之闡述中除外。
在步驟S46之後,控制器215將經錯誤校正資料傳輸至MRAM 21(步驟S47)。當MRAM 21接收到資料時,擦洗控制器32引用計數器CN來獲悉已在步驟S41中係擦洗命令之一目標之記憶體胞元MC之位址,且將所接收資料寫回至處於此位址之記憶體胞元MC(步驟S48)。步驟S48繼續至步驟S50。
在步驟S50中,若無警示發佈,則控制器215判定擦洗操作已完成。
相比而言,在步驟S50中,若已發佈警示,則控制器215致使MRAM 21執行寫入操作或諸如此類(步驟S51),如同在圖6之步驟S29中。另一選擇係,控制器215可執行除寫入之執行之外的一回應。
如上文所闡述,MRAM 21不包含錯誤偵測功能亦不具有錯誤校正功能。舉例而言,在寫入、讀取及擦洗操作期間,MRAM 21將自記憶體控制器22接收之資料按原樣寫入至記憶體胞元MC且將自記憶體胞元MC讀取之資料按原樣傳輸至記憶體控制器22。
將在下文中進一步闡述MRAM 21與記憶體控制器22之間的此相互作用。
[記憶體系統中之命令序列之實例]
將藉由參考圖10闡述以上操作中MRAM 21與記憶體控制器22之間的一命令序列之一實例。圖10係根據本發明實施例之記憶體系統中之命令序列之一實例。圖10中所圖解說明之命令序列係兩個讀取操作及一後續擦洗操作之一實例。在下文所闡述之一讀取操作中,假定判定器244類似於圖5中所圖解說明之實例執行0位元、M個位元及N個位元之整個錯誤判定。
在圖10中,一命令信號CMD自記憶體控制器22經由包含於(舉例而言)連接線5中之一命令線傳輸至MRAM 21之輸入與輸出控制器16。一錯誤偵測信號(>0位元)、一錯誤偵測信號(>N個位元)及一錯誤偵測信號(>M個位元)受(舉例而言)判定器244控制且由控制器215引用。當錯誤位元之經偵測數目係0位元時,錯誤偵測信號(>0位元)經設定至「L」位準,然而當錯誤位元之經偵測數目超過0位元時,該信號經設定至「H」位準。當錯誤位元之經偵測數目等於或小於N個位元時,錯誤偵測信號(>N個位元)經設定至「L」位準,然而當錯誤位元之經偵測數目超過N個位元時,該信號經設定至「H」位準。當錯誤位元之經偵測數目等於或小於M個位元時,錯誤偵測信號(>M個位元)經控制設定至位準「L」,然而當錯誤位元之經偵測數目超過M個位元時,該信號經設定至「H」位準。
如圖10中所圖解說明,當一第一讀取操作開始時,控制器215在命令線上將一讀取命令傳輸至MRAM 21。
在接收到讀取命令後,讀取與寫入控制器31自讀取目標記憶體胞元MC讀取資料且將該讀取資料經由包含於連接線5中之資料匯流排傳輸至記憶體控制器22。讀取資料由校正子產生器243接收。校正子產生器243產生一校正子。該校正子經受由判定器244做出之錯誤判定。判定器244使用校正子來判定包含於讀取資料中之錯誤位元之數目。
關於自第一讀取操作獲得之讀取資料,判定器244判定(舉例而言)錯誤位元之數目係零。因此,判定器244將所有錯誤偵測信號(>0位元)、錯誤偵測信號(>M個位元)及錯誤偵測信號(>N個位元)維持處於「L」位準。控制器215接收此等三個錯誤偵測信號且基於該三個錯誤偵測信號辨識錯誤位元之數目係零。因此,控制器215不會致使ECC解碼器242M執行資料之錯誤校正。
隨後,當一第二讀取操作開始時,控制器215在命令線上將一讀取命令傳輸至MRAM 21。
在接收到讀取命令後,MRAM 21自讀取目標記憶體胞元MC讀取資料且將該讀取資料傳輸至記憶體控制器22。接下來,類似於第一讀取操作之程序,判定器244判定(舉例而言)錯誤位元之數目超過M個位元。然後,判定器244將錯誤偵測信號(>0位元)及錯誤偵測信號(>M個位元)之狀態改變為「H」位準然而將錯誤偵測信號(>N個位元)之狀態維持為「L」位準,且將此等信號傳輸至控制器215。控制器215接收「H」位準之錯誤偵測信號(>0位元)及「H」位準之錯誤偵測信號(>M個位元)並且基於該等信號辨識錯誤位元之數目超過M個位元。由於錯誤位元之經偵測數目超過M個位元,因此控制器215不會致使ECC解碼器242M執行錯誤校正並將一警示發佈至主機裝置3。回應於錯誤位元之經偵測數目高於M個位元,控制器215視需要採取一適當措施。在圖10中所圖解說明之實例中,控制器215致使MRAM 21執行擦洗操作。
當擦洗操作開始時,控制器215在命令線上將一擦洗命令傳輸至MRAM 21。
在接收到擦洗命令後,擦洗控制器32自擦洗目標記憶體胞元MC讀取資料且在資料匯流排上將該讀取資料傳輸至記憶體控制器22。擦洗目標記憶體胞元MC係已係第二讀取操作之一目標之記憶體胞元 MC。自擦洗目標記憶體胞元MC讀取之資料由錯誤校正電路24接收。錯誤校正電路24藉由類似於第一讀取操作及第二讀取操作之程序之程序判定包含於讀取資料中之錯誤位元之數目。
判定器244判定(舉例而言)包含於讀取資料中之錯誤位元之數目不為零並且等於或小於N個位元。亦即,判定錯誤位元之數目係在由ECC解碼器242N進行之一可校正範圍內。判定器244將錯誤偵測信號(>0位元)之狀態改變為「H」位準。控制器215接收「H」位準之錯誤偵測信號(>0位元)及「L」位準之錯誤偵測信號(>N個位元)並且基於該等信號辨識錯誤位元之數目等於或小於N個位元。因此,控制器215致使ECC解碼器242N執行資料之錯誤校正。
控制器215在資料匯流排上將經錯誤校正資料傳輸至MRAM 21。讀取與寫入控制器31將經校正資料寫回至源記憶體胞元MC。控制器215不發佈一新命令,諸如一資料寫回命令。擦洗命令包含將資料寫回之一指令。當MRAM 21接收擦洗命令而不接收其他命令時,MRAM 21根據該擦洗命令將所接收資料寫回至源記憶體胞元MC。
(3)本發明實施例之優點
在本發明實施例中,記憶體控制器22包含ECC解碼器242M、242N。此產生除以上實施例之優點之外的在下文所提及之一或多個優點。
MRAM 21可不包含錯誤校正功能。因此,在MRAM 21中不消耗用於一錯誤偵測功能之空間。MRAM 21之晶片中之一空間因此可用於其他用途,或MRAM 21可係更小的。
MRAM 21之處理能力不被消耗用於錯誤校正。MRAM 21之一處理能力可用於其他用途或MRAM 21之操作速度可增加。
記憶體控制器22包含錯誤校正功能。對於減小記憶體控制器22之大小之需要不比對於MRAM 21之需要那樣嚴格。因此在記憶體控 制器22之晶片中將空間分配用於錯誤校正電路24相對容易。
記憶體控制器22可承擔錯誤校正。記憶體控制器22之處理能力顯著大於MRAM 21之處理能力。因此,記憶體控制器22可在實質上不丟失記憶體控制器22之操作特性之情況下執行錯誤校正。
<第三實施例>
將藉由參考圖11至圖13闡述本發明實施例。
本發明實施例不同於以上實施例之處在於一錯誤校正電路54分佈於一MRAM 51及一記憶體控制器52中。本發明實施例之剩餘部件類似於以上實施例之處在於MRAM 51、記憶體控制器52以及包含MRAM 51及記憶體控制器52之記憶體系統分別類似於上文已闡述之MRAM 1、記憶體控制器2以及記憶體系統10。
(1)記憶體系統結構之實例
下文將藉由參考圖11闡述根據本發明實施例之MRAM 51及記憶體控制器52之結構之一實例。圖11示意性地圖解說明根據本發明實施例的包含於記憶體系統中之錯誤校正電路之結構之一實例。
如圖11中所圖解說明,MRAM 51包含係錯誤校正電路54之一部分之一錯誤校正電路54M。錯誤校正電路54M包含一ECC編碼器541、一ECC解碼器542M、校正子產生器543及一判定器544。
記憶體控制器52包含係錯誤校正電路54之一部分之一錯誤校正電路54N。錯誤校正電路54N包含一ECC解碼器542N。
關於資料之傳輸及接收,錯誤校正電路54執行不同於以上實施例之錯誤校正電路14之操作之操作。稍後將藉由使用操作之一流程圖闡述資料之傳輸及接收。
錯誤校正電路54之剩餘部件及其中包含之組件類似於上文所闡述之錯誤校正電路14之剩餘部件及組件。亦即,ECC編碼器541等效於錯誤校正電路14之ECC編碼器141。ECC解碼器542M、542N分別等 效於ECC解碼器142M、142N。校正子產生器543等效於校正子產生器143。判定器544等效於判定器144。
(2)記憶體系統之操作實例
現在將藉由參考圖12及圖13闡述本發明實施例之記憶體系統之一操作實例。
[寫入操作之實例]
MRAM 51中之錯誤校正電路54M包含用於處理寫入資料以達成每一資料單元N個位元之錯誤校正所需之所有必需組件。亦即,MRAM 51包含用於資料之寫入以完成MRAM 51中之資料寫入處理之所有必需功能。
MRAM 51及記憶體控制器52之寫入操作之流程與上文所闡述之第一實施例之流程相同。
[讀取操作之實例]
MRAM 51中之錯誤校正電路54M包含用於處理讀取資料以達成每一資料單元M個位元之錯誤校正所需之所有必需組件。亦即,MRAM 51包含用於資料之讀取以完成MRAM 51中之資料讀取處理所需之所有必需功能。
MRAM 51及記憶體控制器52之讀取操作之流程等同於圖4及圖5中所圖解說明之流程。
[擦洗操作之實例]
用於資料擦洗操作之必需功能單獨提供於MRAM 51及記憶體控制器52中。
現在將藉由參考圖12闡述MRAM 51及記憶體控制器52之擦洗操作之一實例。圖12圖解說明根據本發明實施例之記憶體系統之擦洗操作之流程。
如圖12中所圖解說明,記憶體控制器52之控制器215將一擦洗命 令傳輸至MRAM 51(步驟S61)。
在接收到擦洗命令後,MRAM 51之擦洗控制器32受讀取與寫入控制器31控制以自保持於計數器CN中之位址處之記憶體胞元MC讀取資料。
然後,錯誤校正電路54M執行步驟S62至S64及S68,或者步驟S62至S64及S69。步驟S62至S64及S68分別類似於圖6之步驟S22至S24及S26。等效於圖6之步驟S25之步驟S66透過記憶體控制器52之控制器215之控制由ECC解碼器542N執行。因此,將在步驟S62中計算之校正子連同來自步驟S63、S64之錯誤判定結果一起傳輸至記憶體控制器52(步驟S65)。另外,將在步驟S66中經錯誤校正之資料傳輸至MRAM 51(步驟S67),且然後執行步驟S68。以上步驟S62至S64及S69分別類似於圖6之步驟S22至S24及S27。
在步驟S70中,若無警示發佈,則控制器215判定擦洗操作已完成。
相比而言,在步驟S70中,若已發佈警示,則控制器215致使MRAM 51執行寫入操作或諸如此類(步驟S71),如同上文在圖6之步驟S29中。另一選擇係,控制器215可執行除寫入之執行之外的一回應。
如上文所闡述,在寫入及讀取操作期間MRAM 51可在MRAM 51本身之錯誤校正電路54M中自主處理自記憶體控制器52接收之資料。在擦洗操作中,舉例而言,MRAM 51在錯誤校正電路54M中無法完成處理由記憶體控制器52接收之資料。MRAM 51將自所接收資料計算之校正子傳輸至記憶體控制器52,記憶體控制器52繼而執行錯誤校正。
將在下文中使用一命令序列進一步闡述MRAM 51與記憶體控制器52之間的此相互作用。
[記憶體系統中之命令序列之實例]
將藉由參考圖13闡述以上操作中MRAM 51與記憶體控制器52之間的一命令序列之一實例。圖13係根據本發明實施例之記憶體系統中之命令序列之一實例。圖13中所圖解說明之命令序列係兩個讀取操作及一後續擦洗操作之一實例。在下文所闡述之一讀取操作中,假定判定器544類似於上文圖5中所圖解說明之實例執行0位元、M個位元及N個位元之整個錯誤判定。
將給出本發明實施例之命令序列與上文圖10之實例之命令序列之間的差別之闡述。
如圖13中所圖解說明,一第一讀取操作不同於圖10之第一讀取操作之處在於將由校正子產生器543計算之一校正子用於由一判定器544做出之錯誤判定,且然後將讀取資料傳輸至記憶體控制器52。
一第二讀取操作不同於圖10之第二讀取操作之處在於回應於由判定器544接收到錯誤判定而將一警示自控制器15傳輸至記憶體控制器52。
該擦洗操作不同於圖10之擦洗操作之處在於將回應於擦洗命令由校正子產生器543計算之校正子連同由判定器544做出之錯誤判定之結果一起傳輸至記憶體控制器52。
此外,該擦洗操作不同於圖10之擦洗操作之處在於經傳輸至記憶體控制器52之校正子由ECC解碼器542N進行錯誤校正、經傳輸至MRAM 51且經寫回至目標記憶體胞元MC。
已闡述包含校正子產生器543的MRAM 51之錯誤校正電路54M之實例,但該實例並不限於此。除錯誤校正電路54M之校正子產生器543之外或代替錯誤校正電路54M之校正子產生器543,記憶體控制器52亦可包含一校正子產生器。亦即,MRAM 51及記憶體控制器52兩者皆可包含一校正子產生器。因此,記憶體控制器52可在擦洗期間一致地執行錯誤校正而不致使MRAM 51在擦洗期間計算校正子。
上文已闡述執行錯誤校正電路之MRAM 51中之錯誤校正電路54M之實例,但該實例並不限於此。舉例而言,除錯誤校正電路54M之判定器544之外或代替錯誤校正電路54M之判定器544,記憶體控制器52之錯誤校正電路54N亦可包含一判定器且使用自MRAM 51傳輸之校正子來執行錯誤校正。在此情形中,記憶體控制器52可藉由校正錯誤、發佈警示等等對錯誤判定之結果適當地做出回應。
(3)本發明實施例之優點
在本發明實施例中,記憶體控制器52包含ECC解碼器542N且MRAM 51包含ECC解碼器542M。此產生除以上實施例之優點之外的在下文所提及之一或多個優點。
在N位元及M位元錯誤校正功能當中,MRAM 51可不包含N位元錯誤校正功能。實施N位元錯誤校正功能之ECC解碼器542N需要具有大於實施M位元錯誤校正功能之ECC解碼器542M之容量及一佔用面積之容量及一佔用面積。由於MRAM 51不負責N位元錯誤校正功能,因此MRAM 51之晶片中之空間可用於其他用途且MRAM 51可係更小的。
MRAM 51可不包含N位元錯誤校正功能。實施N位元錯誤校正功能需要大於用於實施M位元錯誤校正功能之處理能力之處理能力。由於MRAM 51不負責N位元錯誤校正功能,因此MRAM 51中之處理能力可用於其他用途且MRAM 51之操作速度可得以改良。
因此,記憶體控制器52包含ECC解碼器542N。在記憶體控制器52之晶片之空間中提供ECC解碼器542N之一影響可處於一可允許位準。
因此,記憶體控制器52可擁有N位元錯誤之錯誤校正功能。執行N位元錯誤之錯誤校正對記憶體控制器52之處理能力之一影響可處於一可允許位準。
其他實施例
在上文所闡述之實施例中,已給出在N位元錯誤及M位元錯誤兩者之錯誤校正期間使用自相同同位導出之相同校正子之實例之闡述,但該實例並不限於此。對N位元錯誤及M位元錯誤之錯誤校正可遵照不同錯誤校正碼產生規則,可將兩種不同類型之同位串接至一資料區段(一ECC字),且可個別地計算一校正子。在N位元錯誤及M位元錯誤之錯誤校正期間,根據對應於N位元錯誤或M位元錯誤之同位計算不同校正子。
以上實施例中所闡述之MTJ元件可係具有垂直磁各向異性之一垂直磁化MTJ元件或具有水平磁各向異性之一水平磁化MTJ元件。該MTJ元件可係其中一第二磁性層(具有一可變磁化定向)位於一第一磁性層(具有一不可變磁化方向)下方之一底部自由型(頂部釘紮型)MTJ元件。該MTJ元件亦可係其中一第二磁性層位於第一磁性層上方之一頂部自由型(底部釘紮型)MTJ元件。
在以上實施例中,已給出其中記憶體裝置係使用MTJ元件作為記憶體元件之一MRAM之實例之闡述;然而該實例並不限於此。記憶體裝置可被實施(舉例而言)一電阻式隨機存取記憶體(ReRAM)、一相變隨機存取記憶體(PRAM或PCRAM)等等。
雖然已闡述特定實施例,但此等實施例僅以實例方式呈現,且並不意欲限制本發明之範疇。實際上,本文中所闡述之新穎實施例可以多種其他形式體現;此外,可在不背離本發明之精神之情況下以本文中所闡述之方法及系統之形式做出各種省略、替代及改變。隨附申請專利範圍及其等效物意欲涵蓋將歸屬於本發明之範疇及精神內之此等形式或修改。
1‧‧‧自旋轉移扭矩型磁阻式隨機存取記憶體/磁阻式隨機存取記憶體
2‧‧‧記憶體控制器
14‧‧‧錯誤校正碼電路/錯誤校正電路
141‧‧‧錯誤校正碼編碼器
142M‧‧‧錯誤校正碼解碼器
142N‧‧‧錯誤校正碼解碼器
143‧‧‧校正子產生器
144‧‧‧判定器
DQ‧‧‧資料輸入與輸出單元

Claims (20)

  1. 一種記憶體裝置,其包括:記憶體元件,其儲存資料及同位;一第一解碼器,當在不對該記憶體裝置進行外部存取之同時執行該資料之擦洗時,該第一解碼器使用自該資料及該同位產生之一校正子來校正該資料之一單元中最大N個位元之一錯誤;及一第二解碼器,當執行該資料之讀取時,該第二解碼器使用該校正子來校正該資料之一單元中最大M個位元之一錯誤,其中該M個位元表示小於該N個位元之數目個位元。
  2. 如請求項1之記憶體裝置,其進一步包括:一編碼器,其自待寫入於該等記憶體元件中之資料產生該同位;及一校正子產生器,其自該資料及該同位產生該校正子,其中該同位及該校正子經產生以允許偵測該N個位元之一錯誤。
  3. 如請求項1之記憶體裝置,其中當執行該資料之該擦洗時,將其中之該錯誤已被校正之該資料寫入於該等記憶體元件中。
  4. 如請求項1之記憶體裝置,其中在該資料之該擦洗期間,當該資料之一單元中錯誤位元之數目大於該N個位元時發佈一警示。
  5. 如請求項1之記憶體裝置,其中在該資料之該擦洗期間,當該資料之一單元中錯誤位元之該數目大於該N個位元時重新寫入自外部接收之資料。
  6. 如請求項1之記憶體裝置,其中 在該資料之該讀取期間,當該資料之一單元中錯誤位元之該數目大於該M個位元時發佈一警示。
  7. 如請求項1之記憶體裝置,其中在該資料之讀取期間,當該資料之一單元中錯誤位元之該數目大於該M個位元時執行該資料之該擦洗或重新寫入自外部接收之該資料。
  8. 如請求項1之記憶體裝置,其中回應於一擦洗命令,該記憶體裝置:自該等記憶體元件讀取該資料及該同位,自該資料及該同位產生該校正子,及使用該校正子來校正該資料之該錯誤,且回應於一讀取命令,該記憶體裝置自該等記憶體元件讀取該資料及該同位,自該資料及該同位產生該校正子,使用該校正子來校正該資料之該錯誤,及傳輸其中之該錯誤已被校正之該資料。
  9. 一種記憶體系統,其包括:一記憶體裝置,其包含儲存資料及同位之記憶體元件;一記憶體控制器,其控制該記憶體裝置;及一主機裝置,其控制該記憶體控制器,其中在該資料之擦洗期間,該記憶體控制器在不對該記憶體裝置進行外部存取之同時將一擦洗命令傳輸至該記憶體裝置以自該等記憶體元件讀取該資料及該同位,自該資料及該同位產生一校正子,及使用該校正子來校正該資料之一單元中最大N個位元之一 錯誤,且在該資料之讀取期間,該記憶體控制器將一讀取命令傳輸至該記憶體裝置,且自該等記憶體元件讀取該資料及該同位,自該資料及該同位產生一校正子,及使用該校正子來校正該資料之一單元中最大M個位元之一錯誤,其中該M個位元表示小於該N個位元之數目個位元。
  10. 如請求項9之記憶體系統,其中該同位及該校正子經產生以允許偵測該N個位元之一錯誤。
  11. 如請求項9之記憶體系統,其中該記憶體控制器包含一編碼器,其產生該同位,校正子產生器,其產生該校正子,一第一解碼器,其校正該資料之一單元中最大該N個位元之一錯誤,及一第二解碼器,其校正該資料之一單元中最大該M個位元之一錯誤。
  12. 如請求項9之記憶體系統,其中在該資料之該擦洗期間,該記憶體控制器將其中之該錯誤已被校正之該資料傳輸至該記憶體裝置,且該記憶體裝置將其中之該錯誤已被校正之該資料寫入至該等記憶體元件。
  13. 如請求項9之記憶體系統,其中當在該資料之該擦洗期間該資料之一單元中錯誤位元之數目大於該N個位元時,或當在該資料之該讀取期間該資料之一單元 中錯誤位元之該數目大於該M個位元時,該記憶體控制器發佈一警示。
  14. 如請求項9之記憶體系統,其中在該資料之該擦洗期間,當該資料之一單元中錯誤位元之該數目大於該N個位元時,該記憶體控制器重新傳輸寫入期間之該資料連同一寫入命令,且在該資料之該讀取期間,當該資料之一單元中錯誤位元之該數目大於該M個位元時,該記憶體控制器將該擦洗命令傳輸至該記憶體裝置,或重新傳輸用於該寫入之該資料連同該寫入命令。
  15. 一種記憶體系統,其包括:一記憶體裝置,其包含儲存資料及同位之記憶體元件;一記憶體控制器,其控制該記憶體裝置;及一主機裝置,其控制該記憶體控制器,其中在該資料之擦洗期間,在不對該記憶體裝置進行外部存取之同時,該記憶體控制器將一擦洗命令傳輸至該記憶體裝置,回應於該擦洗命令,該記憶體裝置自該等記憶體元件讀取該資料及該同位、自該資料及該同位產生一校正子及將該校正子傳輸至該記憶體控制器,在接收到該校正子後,該記憶體控制器旋即使用該校正子來校正該資料之一單元中最大N個位元之一錯誤,在該資料之讀取期間,該記憶體控制器將一讀取命令傳輸至該記憶體裝置,回應於該讀取命令,該記憶體裝置自該等記憶體元件讀取該資料及該同位、自該資料及該同位產生一校正子、使用該校正子來校正該資料之一單元中最大M個位元之一錯誤、將其中之該 錯誤已被校正之該資料傳輸至該記憶體控制器,其中該M個位元表示小於該N個位元之數目個位元。
  16. 如請求項15之記憶體系統,其中該同位及該校正子經產生以允許偵測該N個位元之一錯誤。
  17. 如請求項15之記憶體系統,其中該記憶體控制器包含一第一解碼器,該第一解碼器校正該資料之一單元中最大該N個位元之該錯誤,且該記憶體裝置包含產生該同位之一編碼器、產生該校正子之一校正子產生器及校正該資料之一單元中最大該M個位元之該錯誤之一第二解碼器。
  18. 如請求項15之記憶體系統,其中在該資料之該擦洗期間,該記憶體控制器將其中之該錯誤已被校正之該資料傳輸至該記憶體裝置,且該記憶體裝置將其中之該錯誤已被校正之該資料寫入至該等記憶體元件。
  19. 如請求項15之記憶體系統,其中在該資料之該擦洗期間,當該資料之一單元中錯誤位元之該數目大於該N個位元時,該記憶體控制器發佈一警示,且在該資料之該讀取期間,當該資料之一單元中錯誤位元之該數目大於該M個位元時,該記憶體裝置發佈一警示。
  20. 如請求項15之記憶體系統,其中在該資料之該擦洗期間,當該資料之一單元中錯誤位元之該數目大於該N個位元時,該記憶體控制器重新傳輸用於寫入之該資料連同一寫入命令,且在該資料之該讀取期間,當該資料之一單元中錯誤位元之該數目大於該M個位元時,該記憶體控制器將該擦洗命令傳輸至該 記憶體裝置,或重新傳輸用於該寫入之該資料連同該寫入命令。
TW104135893A 2015-03-10 2015-10-30 記憶體裝置及記憶體系統 TW201633301A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201562131113P 2015-03-10 2015-03-10

Publications (1)

Publication Number Publication Date
TW201633301A true TW201633301A (zh) 2016-09-16

Family

ID=56879983

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104135893A TW201633301A (zh) 2015-03-10 2015-10-30 記憶體裝置及記憶體系統

Country Status (5)

Country Link
US (1) US10482990B2 (zh)
CN (1) CN107408412B (zh)
RU (1) RU2682843C1 (zh)
TW (1) TW201633301A (zh)
WO (1) WO2016143168A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10312944B2 (en) * 2017-03-17 2019-06-04 Micron Technology, Inc. Error correction code (ECC) operations in memory for providing redundant error correction
KR102410021B1 (ko) * 2017-11-20 2022-06-21 에스케이하이닉스 주식회사 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법
EP3864500A4 (en) * 2018-10-12 2022-10-12 Supermem, Inc. ERROR CORRECTING MEMORY SYSTEMS
US11461623B2 (en) * 2018-10-18 2022-10-04 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for defect-tolerant memory-based artificial neural network
US11675660B2 (en) * 2019-05-24 2023-06-13 Texas Instruments Incorporated Parallelized scrubbing transactions
US11379156B2 (en) * 2020-08-19 2022-07-05 Micron Technology, Inc. Write type indication command

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292869B1 (en) * 1998-08-31 2001-09-18 International Business Machines Corporation System and method for memory scrub during self timed refresh
US6349390B1 (en) * 1999-01-04 2002-02-19 International Business Machines Corporation On-board scrubbing of soft errors memory module
US20030009721A1 (en) * 2001-07-06 2003-01-09 International Business Machines Corporation Method and system for background ECC scrubbing for a memory array
DE102005040916A1 (de) * 2005-08-30 2007-03-08 Robert Bosch Gmbh Speicheranordnung und Betriebsverfahren dafür
US7379316B2 (en) 2005-09-02 2008-05-27 Metaram, Inc. Methods and apparatus of stacking DRAMs
US7647526B1 (en) * 2006-12-06 2010-01-12 Netapp, Inc. Reducing reconstruct input/output operations in storage systems
US8176388B1 (en) * 2007-06-20 2012-05-08 Marvell Israel (Misl) Ltd. System and method for soft error scrubbing
US8112699B2 (en) * 2008-02-14 2012-02-07 Atmel Rousset S.A.S. Error detecting/correcting scheme for memories
JP4956640B2 (ja) 2009-09-28 2012-06-20 株式会社東芝 磁気メモリ
US8347175B2 (en) 2009-09-28 2013-01-01 Kabushiki Kaisha Toshiba Magnetic memory
US9037928B2 (en) * 2012-01-01 2015-05-19 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
KR101873526B1 (ko) * 2011-06-09 2018-07-02 삼성전자주식회사 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
US9679664B2 (en) 2012-02-11 2017-06-13 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US9081693B2 (en) * 2012-08-17 2015-07-14 Freescale Semiconductor, Inc. Data type dependent memory scrubbing
US9454451B2 (en) * 2013-02-11 2016-09-27 Arm Limited Apparatus and method for performing data scrubbing on a memory device
JP6213345B2 (ja) * 2014-03-31 2017-10-18 富士通株式会社 転送装置、決定方法、及びデータ処理装置
KR102178137B1 (ko) * 2014-08-26 2020-11-12 삼성전자주식회사 반도체 메모리 장치, 이의 에러 정정 방법 및 이를 포함하는 메모리 시스템
US9612908B2 (en) * 2015-02-20 2017-04-04 Qualcomm Incorporated Performing memory data scrubbing operations in processor-based memory in response to periodic memory controller wake-up periods
US20160336971A1 (en) * 2015-05-14 2016-11-17 U.S.A. Represented By The Administrator Of The National Aeronautics And Space Administration Consensus decoding algorithm for generalized reed-solomon codes

Also Published As

Publication number Publication date
US20170372798A1 (en) 2017-12-28
US10482990B2 (en) 2019-11-19
RU2682843C1 (ru) 2019-03-21
CN107408412B (zh) 2021-01-15
CN107408412A (zh) 2017-11-28
WO2016143168A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
US11593199B2 (en) Semiconductor memory devices, memory systems including the same and methods of operating memory systems
US10198221B2 (en) Methods of operating semiconductor memory devices with selective write-back of data for error scrubbing and related devices
CN107408412B (zh) 存储器装置及存储器系统
US10404286B2 (en) Memory modules, memory systems including the same and methods of operating memory systems
KR102238706B1 (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US8281221B2 (en) Operation method of MRAM including correcting data for single-bit error and multi-bit error
KR102060488B1 (ko) 불휘발성 랜덤 액세스 메모리 장치 및 그것의 데이터 읽기 방법
KR20140055737A (ko) 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
KR20170121798A (ko) 반도체 메모리 장치 및 이의 동작 방법
US9875810B2 (en) Self-identifying memory errors
KR102049258B1 (ko) 레퍼런스 셀을 포함하는 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 및
US10031865B2 (en) Memory system, storage device, and method for controlling memory system
US9042160B1 (en) Memory device with resistive random access memory (ReRAM)
US10452475B2 (en) Memory system and resistance change type memory
US20160132388A1 (en) Semiconductor memory device and ecc method thereof
KR20170060263A (ko) 반도체 메모리 장치 및 이의 동작 방법
CN107683464A (zh) 存储器设备中的自适应纠错
US20190044541A1 (en) Techniques for Reducing Latency in the Detection of Uncorrectable Codewords
US10204700B1 (en) Memory systems and methods of operating semiconductor memory devices
TW202020875A (zh) 半導體記憶裝置
US20240161824A1 (en) Memory device and operating method of thereof