TWI851663B - 非揮發性記憶體及其操作方法 - Google Patents
非揮發性記憶體及其操作方法 Download PDFInfo
- Publication number
- TWI851663B TWI851663B TW109105833A TW109105833A TWI851663B TW I851663 B TWI851663 B TW I851663B TW 109105833 A TW109105833 A TW 109105833A TW 109105833 A TW109105833 A TW 109105833A TW I851663 B TWI851663 B TW I851663B
- Authority
- TW
- Taiwan
- Prior art keywords
- data storage
- row
- storage units
- redundant
- storage unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種非揮發性記憶體包含有呈陣列排列的複數個資料儲存單元、排列成至少一列的複數個冗餘資料儲存單元以及排列成至少一列的複數個冗餘位址儲存單元。資料儲存單元中的每一者的儲存單位分別為字,資料儲存單元中的每一者對應一行位址以及一列位址為可定址的。冗餘資料儲存單元中位於一第一行的一者用來替換資料儲存單元中位於一第二行的一者。冗餘位址儲存單元中位於一第三行的一者用來記錄資料儲存單元中被替換的資料儲存單元的列位址。
Description
本發明係指一種非揮發性記憶體及其操作方法,尤指一種可有效運用資源的非揮發性記憶體及其操作方法。
非揮發性記憶體可能因製程或操作而導致其記憶體單元損壞。為了提升良率及可靠度,非揮發性記憶體可藉由冗餘(redundancy)來替換有缺陷的記憶體單元,然而,傳統非揮發性記憶體需設置多行的冗餘行(redundant column)或多列的冗餘列(redundant row),才能達到足夠的良率。並且,僅因某一行的儲存行的一個記憶體單元具有缺陷,即以一整行的冗餘行替換該儲存行,或者,僅因某一列的儲存列的一個記憶體單元具有缺陷,即以一整列的冗餘列替換該儲存列,均不利於資源有效運用。此外,冗餘的管理涉及大量資訊交換,利用外部的控制器來管理冗餘不利於尺寸微小化或運算速度提升。
為了解決上述的問題,本發明提供一種可有效運用資源的非揮發性記憶體及其操作方法。
本發明揭露一種非揮發性記憶體,包含有複數個資料儲存單元、複
數個冗餘資料儲存單元以及複數個冗餘位址儲存單元。該複數個資料儲存單元呈陣列排列。該複數個資料儲存單元中的每一者的儲存單位(storage size)分別為字(word size),該複數個資料儲存單元中的每一者對應一行位址(column address)以及一列位址(row address)為可定址的(addressable)。該複數個冗餘資料儲存單元排列成至少一列。該複數個冗餘資料儲存單元中位於一第一行的一者用來替換該複數個資料儲存單元中位於一第二行的一者。該複數個冗餘位址儲存單元排列成至少一列。該複數個冗餘位址儲存單元中位於一第三行的一者用來記錄該複數個資料儲存單元中被替換的資料儲存單元的列位址。
本發明另揭露一種操作方法,包含有複數個冗餘資料儲存單元中位於一第一行的一者替換複數個資料儲存單元中位於一第二行的一者;以及複數個冗餘位址儲存單元中位於一第三行的一者記錄該複數個資料儲存單元中被替換的資料儲存單元的列位址。該複數個冗餘資料儲存單元排列成至少一列,該複數個資料儲存單元呈陣列排列,該複數個資料儲存單元中的每一者的儲存單位(storage size)分別為字(word size),該複數個資料儲存單元中的每一者對應一行位址(column address)以及一列位址(row address)為可定址的(addressable)。該複數個冗餘位址儲存單元排列成至少一列。
10,60:非揮發性記憶體
100A,100A1:冗餘位址儲存單元
100M,100M1:資料儲存單元
100R,100R1:冗餘資料儲存單元
20,30:操作方法
200~206,300~324:步驟
610:控制電路
620:位址暫存器
630:列解碼器
640:行解碼器
650:輸入輸出電路
CL1~CLn:行
RW1~RWm,RW1R~RW2R,RW1A~RW2A:列
Sredadd:參數訊號
Sredrpr:參數訊號
Stt:操作訊號
Sv:驗證訊號
SwlA:位址字元線訊號
SwlR:冗餘字元線訊號
TT,TT1,TT2,TT1v~TT3v,TT3:期間
第1圖為本發明實施例一非揮發性記憶體的示意圖。
第2圖及第3圖為本發明實施例用於寫入操作的操作方法的流程圖。
第4圖為本發明實施例中第3圖所示的操作方法的時序圖。
第5圖為本發明實施例中利用字冗餘的良率相較傳統利用列冗餘的良率的比
較示意圖。
第6圖為本發明實施例一非揮發性記憶體的示意圖。
第1圖為本發明實施例一非揮發性記憶體(non-volatile memory)10的示意圖。非揮發性記憶體10可大致包含有複數個資料儲存單元100M、複數個冗餘資料儲存單元100R以及複數個冗餘位址儲存單元100A。資料儲存單元100M、冗餘資料儲存單元100R以及冗餘位址儲存單元100A呈陣列排列。資料儲存單元100M是用來儲存資料,冗餘資料儲存單元100R是用來替換資料儲存單元100M,冗餘位址儲存單元100A是用來記錄資料儲存單元100M的列位址(row address)。舉例來說,第1圖中以粗虛線方框標示的資料儲存單元100M(即資料儲存單元100M1)損壞而無法儲存資料,第1圖中以粗虛線方框標示的冗餘資料儲存單元100R(即冗餘資料儲存單元100R1)可替換損壞的資料儲存單元100M1,第1圖中以粗虛線方框標示的冗餘位址儲存單元100A(即冗餘位址儲存單元100A1)則記錄損壞而被替換的資料儲存單元100M1的列位址。
簡言之,在第1圖中,資料儲存單元100M1、冗餘資料儲存單元100R1以及冗餘位址儲存單元100A1位於同一行(即第CL4行)。因此,冗餘資料儲存單元100R1替換損壞的資料儲存單元100M1時,冗餘位址儲存單元100A1僅記錄損壞的資料儲存單元100M1的列位址,不記錄損壞的資料儲存單元100M1的行位址(column address)。由於不需額外記錄損壞的資料儲存單元100M的行位址,因而可有效運用資源。
具體而言,第1圖中的資料儲存單元100M、冗餘資料儲存單元100R
以及冗餘位址儲存單元100A空間上且功能上相關。在一些實施例中,冗餘資料儲存單元100R1用來替換損壞的資料儲存單元100M1,且冗餘資料儲存單元100R1以及資料儲存單元100M1位於同一行(即第CL4行),因此,資料儲存單元100M1以及冗餘資料儲存單元100R1空間上且功能上相關。冗餘資料儲存單元100R1以及冗餘位址儲存單元100A1位於同一行(即第CL4行),且是為了解決資料儲存單元100M可能損壞的問題而設置,因此,冗餘資料儲存單元100R的每一者(如冗餘資料儲存單元100R1)空間上且功能上相關於冗餘位址儲存單元100A的一者(如冗餘位址儲存單元100A1)。在另一些實施例中,位於一第一行的一個冗餘資料儲存單元100R用來替換位於一第二行的一個資料儲存單元100M,且位於一第三行的一個冗餘位址儲存單元100A用來記錄被替換的資料儲存單元100M的列位址。第一行、第二行以及第三行可對齊(即同一行)。或者,第一行、第二行以及第三行可不對齊(即不同行)但彼此間具有特定關係而在空間上相關,舉例來說,第一行、第二行以及第三行之間可為遞增地或遞減地接續排列。在一些實施例中,位於第一行及一第一列的冗餘資料儲存單元100R(如位於第CL4行第RW1R列的冗餘資料儲存單元100R1)以及位於第三行及一第二列的冗餘位址儲存單元100A(如位於第CL4行第RW1A列的冗餘位址儲存單元100A1)均相關於同一個資料儲存單元(如位於第CL4行第RW3列的資料儲存單元100M1)而彼此相關。基於資料儲存單元100M、冗餘資料儲存單元100R以及冗餘位址儲存單元100A之間的相關性,冗餘位址儲存單元100A中的任一者均未儲存資料儲存單元100M中的任一者的行位址,也不需於非揮發性記憶體10額外記錄資料儲存單元100M的行位址,而可有效運用資源。在一些實施例中,儲存資料儲存單元100M的位址若為16位元,儲存資料儲存單元100M的行位址為6位元,儲存資料儲存單元100M的列位址僅為10位元。僅儲存10位元的列位址而不儲存16位元的完整位址可降低電路複雜度。
資料儲存單元100M可排列成複數個行(例如第CL1行至第CLn行,其中n為正整數)以及複數個列(例如第RW1列至第RWm列,其中m為正整數)。為了最小化尺寸,冗餘資料儲存單元100R以及冗餘位址儲存單元100A則分別排列成複數個行但至少一列。舉例來說,如第1圖所示,冗餘資料儲存單元100R以及冗餘位址儲存單元100A分別排列成兩列。資料儲存單元100M中的每一者對應一個行位址以及一個列位址為可定址的(addressable)。也就是說,一個資料儲存單元100M的位置可由一個行位址以及一個列位址來識別。舉例來說,第1圖中以粗虛線方框標示的資料儲存單元100M1位於第CL4行第RW3列,因此可由對應於第CL4行的行位址以及對應於第RW3列的列位址來識別資料儲存單元100M1。
資料儲存單元100M中的每一者可包含有複數個記憶體單元。在一些實施例中,資料儲存單元100M中的每一者的儲存單位(storage size)分別為字(word size),類似地,冗餘資料儲存單元100R中的每一者的儲存單位亦分別為字。也就是說,非揮發性記憶體10是利用字冗餘(word redundancy)來進行自主修復(self repair)及自動修復(auto repair),而非行冗餘(column redundancy)或列冗餘(row redundancy)。當某一列的一個資料儲存單元100M具有缺陷時,無須以一整列的冗餘資料儲存單元100R替換一整列的資料儲存單元100M,而是一個冗餘資料儲存單元100R替換一個資料儲存單元100M,因此可有效運用資源,且可降低成本。在另一些實施例中,資料儲存單元100M及冗餘資料儲存單元100R中的每一者的儲存單位分別為複數個位元(bit)。
第2圖為本發明實施例用於寫入操作的一操作方法20的流程圖。操作方法20可用於非揮發性記憶體10,以實現字冗餘。操作方法20包含以下步驟:
步驟200:開始。
步驟202:複數個冗餘資料儲存單元100R中位於一第一行的一者替換複數個資料儲存單元100M中位於一第二行的一者。
步驟204:複數個冗餘位址儲存單元100A中位於一第三行的一者記錄該複數個資料儲存單元100M中被替換的資料儲存單元100M的列位址。
步驟206:結束。
在步驟202中,冗餘資料儲存單元100R中位於特定的行的一者替換資料儲存單元100M中位於特定的行的一者,也就是說,將資料寫入冗餘資料儲存單元100R中位於特定的行的一者而非資料儲存單元100M。舉例來說,在步驟202的替換動作中,將位於第CL4行的冗餘資料儲存單元100R1替換無法被寫入且位於第CL4行的資料儲存單元100M1。因此,該字將會儲存於可用的冗餘資料儲存單元100R1,而不是無法被寫入的資料儲存單元100M。
在步驟204中,冗餘位址儲存單元100A中位於特定的行的一者記錄被替換的資料儲存單元100M的列位址,也就是說,將資料儲存單元100M的列位址寫入冗餘位址儲存單元100A中位於特定的行的一者。舉例來說,由於位於第CL4行第RW1R列的冗餘資料儲存單元100R1在空間上相關於位於第CL4行第RW1A列的冗餘位址儲存單元100A1,因此當冗餘資料儲存單元100R1替換資料儲存單元100M1時,在步驟204的記錄動作中,資料儲存單元100M中無法被寫入的資料儲存單元100M1的列位址是儲存於冗餘位址儲存單元100A1。由此可知,冗餘資料儲存單元100R1替換損壞的資料儲存單元100M1時,冗餘位址儲存單元100A1僅記錄損壞的資料儲存單元100M1的列位址,不記錄損壞的資料儲存單元100M1的行位址。由於不需額外記錄損壞的資料儲存單元100M1的行位址,因而可有效
運用資源。
第3圖為本發明實施例用於寫入操作的一操作方法30的流程圖。操作方法30可用於非揮發性記憶體10,以實現字冗餘。操作方法30包含以下步驟:
步驟300:開始,將參數REDRPR、REDADD設定為一第一判斷值。
步驟302:將一字(word)寫入複數個資料儲存單元100M中的一者或複數個冗餘資料儲存單元100R中的一者,或者將該複數個資料儲存單元100M中無法被寫入的資料儲存單元100M的列位址儲存於複數個冗餘位址儲存單元100A中的一者。
步驟304:判斷該字或該列位址是否成功地儲存。若是,進行步驟306;若否,進行步驟312。
步驟306:判斷該字是儲存於該複數個資料儲存單元100M中的一者而不是儲存於該複數個冗餘位址儲存單元100A中的一者。若是,進行步驟308;若否,進行步驟316。
步驟308:判斷該資料儲存單元的位址是否為該複數個資料儲存單元100M中的最後一個。若是,進行步驟322;若否,進行步驟310。
步驟310:轉為處理該複數個資料儲存單元100M中的下一個資料儲存單元,且進行步驟302。
步驟312:判斷該複數個冗餘資料儲存單元100R中位於特定行的任一者是否為可用的(available)或者該複數個資料儲存單元100M中無法被寫入的該資料儲存單元100M是否已成功地被替換。若是,進行步驟314;若否,進行步驟324。
步驟314:觸發替換動作,將參數REDRPR設定為一第二判斷值,且進行步驟302。
步驟316:判斷該複數個資料儲存單元100M中被替換的資料儲存單元的列位址是否已被記錄。若是,進行步驟320;若否,進行步驟318。
步驟318:觸發記錄動作,將參數REDADD設定為第二判斷值,且進行步驟302。
步驟320:將參數REDRPR、REDADD重新設定為第一判斷值,且進行步驟308。
步驟322:將參數REDRPR、REDADD重新設定為第一判斷值,且進行步驟324。
步驟324:結束。
在步驟300中,參數REDRPR、REDADD可設定為第一判斷值,第一判斷值可設定為0。在步驟302中,可將字寫入,例如寫入資料儲存單元100M中位於第二行的一者(例如位於第CL4行的資料儲存單元100M1)。在步驟304中,可判斷該字是否成功地儲存,例如是否成功地儲存至位於第CL4行的資料儲存單元100M1。其中,可將該字與位於第CL4行的資料儲存單元100M1內的儲存內容進行比對。當該字不同於資料儲存單元100M1內的儲存內容時,判斷該字未成功地儲存。舉例來說,位於第CL4行的資料儲存單元100M1可能損壞,因此無法將該字未成功地儲存於資料儲存單元100M1。當該字相同於資料儲存單元100M1內的儲存內容時,判斷該字為成功地儲存。
若在步驟304判斷該字成功地儲存至位於第CL4行的資料儲存單元100M1,在步驟306中,判斷該字是儲存於資料儲存單元100M中的一者或冗餘位址儲存單元100A中的一者,也就是說,判斷參數REDRPR是否等於第二判斷值,第二判斷值可設定為1。若在步驟306判斷該字儲存於資料儲存單元100M1(即參
數REDRPR不等於1),在步驟308中,判斷資料儲存單元100M1的位址是否為資料儲存單元100M中的最後一個。舉例來說,在步驟308中,判斷資料儲存單元100M1的行位址是否為最後一行的資料儲存單元100M的行位址。若在步驟308判斷資料儲存單元100M1不是資料儲存單元100M中的最後一個,在步驟310中,處理資料儲存單元100M1之後的資料儲存單元100M,且進行步驟302。因此,在步驟310中,參數ADDR可設定為ADDR+1,即ADDR=ADDR+1,其中參數ADDR可對應資料儲存單元100M的行位址。若在步驟308判斷資料儲存單元100M1是資料儲存單元100M中的最後一個,在步驟322中,將參數REDRPR、REDADD重新設定為第一判斷值,且進行步驟324。
若在步驟304判斷該字無法被成功地儲存至位於第CL4行的資料儲存單元100M1,在步驟312中,判斷冗餘資料儲存單元100R中位於特定行的任一者是否為可用的或者無法被寫入的該資料儲存單元100M是否已成功地被替換。其中,可用的是指冗餘資料儲存單元100R未損壞(undamaged),或者未有任何資料儲存於冗餘資料儲存單元100R內而使冗餘資料儲存單元100R為未使用的(unused)。也就是說,在步驟312中判斷參數REDRPR、REDADD、NORED是否分別等於第一判斷值。舉例來說,在步驟312中,判斷位於第CL4行的冗餘資料儲存單元100R中的任一者(例如冗餘資料儲存單元100R1)是否為可用的。由於位於第CL4行的冗餘資料儲存單元100R(例如冗餘資料儲存單元100R1)在空間上相關於位於第CL4行的資料儲存單元100M1,因此位於第CL4行的冗餘資料儲存單元100R符合位於特定行的要求。若在步驟312判斷位於第CL4行的冗餘資料儲存單元100R均非可用的(unavailable),則無法完成替換,因此,進行步驟324。或者,在步驟312中,判斷無法被寫入的該資料儲存單元100M1是否已成功地被替換。若在步驟312判斷無法被寫入的該資料儲存單元100M1已成功地被替
換,則無需進行再次的替換,因此,進行步驟324。相對地,若在步驟312判斷位於第CL4行的冗餘資料儲存單元100R中的一者為可用的或者無法被寫入的資料儲存單元100M1未成功地被替換,在步驟314中,觸發替換動作,且將參數REDRPR設定為第二判斷值。
在步驟314中,觸發替換動作,且進行步驟302,而將冗餘資料儲存單元100R中位於特定行且可用的一者(如位於第CL4行的冗餘資料儲存單元100R1)替換無法被寫入的資料儲存單元100M1。因此,當該字無法寫入位於第CL4行的資料儲存單元100M1時,該字將會儲存於可用的冗餘資料儲存單元100R1,而不是無法被寫入的資料儲存單元100M1。也就是說,在步驟314中,將參數REDRPR設定為第二判斷值。在步驟314之後,在步驟302將該字寫入冗餘資料儲存單元100R中位於第一行的一者(例如位於第CL4行的冗餘資料儲存單元100R1)。之後,在步驟304中,可判斷該字是否成功地儲存,例如是否成功地儲存至位於第CL4行的冗餘資料儲存單元100R1。其中,可將該字與位於第CL4行的冗餘資料儲存單元100R1內的儲存內容進行比對。當該字不同於冗餘資料儲存單元100R1內的儲存內容時,判斷該字未成功地儲存。舉例來說,位於第CL4行的冗餘資料儲存單元100R1可能損壞,因此無法將該字未成功地儲存於冗餘資料儲存單元100R1。
若在步驟304判斷該字無法被成功地儲存至位於第CL4行的冗餘資料儲存單元100R1,在步驟312中,判斷冗餘資料儲存單元100R中位於特定行的另一者是否為可用的或者無法被寫入的該資料儲存單元100M是否已成功地被替換。舉例來說,在步驟312中,判斷位於第CL4行的冗餘資料儲存單元100R中的另一者(例如冗餘資料儲存單元100R2)是否為可用的。由於位於第CL4行的冗
餘資料儲存單元100R2在空間上相關於位於第CL4行的資料儲存單元100M1,因此位於第CL4行的冗餘資料儲存單元100R2符合位於特定行的要求。若在步驟312判斷位於第CL4行的冗餘資料儲存單元100R均非可用的,則無法完成替換,因此,進行步驟324。相對地,若在步驟312判斷位於第CL4行的冗餘資料儲存單元100R中的一者為可用的或者無法被寫入的資料儲存單元100M1未成功地被替換,在步驟314中,再次觸發替換動作,且進行步驟302,而將冗餘資料儲存單元100R中位於特定行且可用的另一者(如位於第CL4行的冗餘資料儲存單元100R2)替換無法被寫入的資料儲存單元100M1。因此,該字將會儲存於可用的冗餘資料儲存單元100R2,而不是無法被寫入的資料儲存單元100M1。在步驟314之後,在步驟302將該字寫入冗餘資料儲存單元100R中位於特定行且可用的另一者(如位於第CL4行的冗餘資料儲存單元100R2)。
若在步驟304判斷該字為成功地儲存至位於第CL4行的冗餘資料儲存單元100R1,在步驟306中,判斷該字是儲存於資料儲存單元100M中的一者或冗餘位址儲存單元100A中的一者。若在步驟306判斷該字儲存於冗餘資料儲存單元100R(即參數REDRPR等於1),在步驟316中,判斷被替換的資料儲存單元100M1的列位址是否已被記錄,也就是說,判斷參數REDADD是否等於第二判斷值。若在步驟316判斷被替換的資料儲存單元100M1的列位址已被記錄(即參數REDADD等於1),在步驟320中,將參數REDRPR、REDADD重新設定為第一判斷值,且進行步驟308,即判斷資料儲存單元100M1的位址是否為資料儲存單元100M中的最後一個。若在步驟316判斷被替換的資料儲存單元100M1的列位址未被記錄(即參數REDADD不等於1),在步驟318中,觸發記錄動作。
在步驟318中,觸發記錄動作,且進行步驟302,而將資料儲存單元
100M中無法被寫入的資料儲存單元100M1的列位址儲存於冗餘位址儲存單元100A中位於特定行特定列的一者(例如位於第CL4行第RW1A列的冗餘位址儲存單元100A1)。由於位於第CL4行第RW1R列的冗餘資料儲存單元100R1在空間上相關於位於第CL4行第RW1A列的冗餘位址儲存單元100A1,因此位於第CL4行第RW1A列的冗餘位址儲存單元100A1符合位於特定行特定列的要求。在步驟318之後,在步驟302將無法被寫入的資料儲存單元100M1的列位址儲存於複數個冗餘位址儲存單元100A中位於第三行的一者(例如位於第CL4行的冗餘位址儲存單元100A1)。在步驟304中,可判斷該列位址是否成功地儲存,例如是否成功地儲存至位於第CL4行的冗餘位址儲存單元100A1。其中,可將該列位址與位於第CL4行的冗餘位址儲存單元100A1內的儲存內容進行比對。當該列位址不同於冗餘位址儲存單元100A1內的儲存內容時,判斷該列位址未成功地儲存。舉例來說,位於第CL4行的冗餘位址儲存單元100A1可能損壞,因此無法將該列位址未成功地儲存於冗餘位址儲存單元100A1。
若在步驟304判斷該列位址無法被成功地儲存,且在步驟312判斷冗餘資料儲存單元100R中位於特定行的另一者為可用的或者無法被寫入的資料儲存單元100M1未成功地被替換,在步驟314中,再次觸發替換動作,且進行步驟302,而將冗餘資料儲存單元100R中位於特定行且可用的另一者(如位於第CL4行的冗餘資料儲存單元100R2)替換無法被寫入的資料儲存單元100M1。也就是說,由於冗餘資料儲存單元100R的每一者(如冗餘資料儲存單元100R1)分別在空間上且功能上相關於冗餘位址儲存單元100A的一者(如冗餘位址儲存單元100A1),因此,當該字無法寫入冗餘資料儲存單元100R1或資料儲存單元100M1的列位址無法寫入冗餘位址儲存單元100A1,均可改將冗餘資料儲存單元100R中位於特定行且可用的另一者(如位於第CL4行的冗餘資料儲存單元100R2)替
換無法被寫入的資料儲存單元100M1。如此一來,該字將會儲存於可用的冗餘資料儲存單元100R2,而不是冗餘資料儲存單元100R1,並且,資料儲存單元100M1的列位址將會儲存於可用的冗餘位址儲存單元100A2,而不是無法被寫入的冗餘位址儲存單元100A1。在步驟314之後,在步驟302將該字寫入冗餘資料儲存單元100R中位於特定行且可用的另一者(如位於第CL4行的冗餘資料儲存單元100R2)。若在步驟304判斷該字為成功地儲存至位於第CL4行的冗餘資料儲存單元100R2,在步驟306判斷該字儲存於冗餘資料儲存單元100R2(即參數REDRPR等於1),且在步驟316判斷被替換的資料儲存單元100M1的列位址未被記錄(即參數REDADD不等於1),在步驟318中,再次觸發記錄動作,且進行步驟302,而將資料儲存單元100M中無法被寫入的資料儲存單元100M1的列位址儲存於冗餘位址儲存單元100A中位於特定行特定列而不同於冗餘位址儲存單元100A1的一者(即位於第CL4行第RW2A列的冗餘位址儲存單元100A2)。由於位於第CL4行第RW2R列的冗餘資料儲存單元100R2在空間上相關於位於第CL4行第RW2A列的冗餘位址儲存單元100A2,因此位於第CL4行第RW2A列的冗餘位址儲存單元100A2符合位於特定行特定列的要求。
第4圖為本發明實施例中第3圖所示的操作方法30的時序圖。如第4圖所示,一操作訊號Stt為高位準的一期間(time interval)TT2可區分為期間TT21、TT22。在期間TT2之前的一期間TT1,參數REDRPR對應的一參數訊號Sredrpr為低位準,參數REDADD對應的一參數訊號Sredadd為低位準,而使參數REDRPR、REDADD均對應步驟300設定為第一判斷值。在期間TT1v,驗證(verification)訊號Sv為高位準,而對應步驟304進行判斷,例如判斷一字是否成功地儲存至資料儲存單元100M1。
在期間TT21,參數訊號Sredrpr為高位準,而使參數REDRPR對應步驟314設定為第二判斷值。冗餘資料字元線(word line,WL)訊號SwlR為高位準,而可對應步驟302將一字寫入冗餘資料儲存單元100R中對應冗餘字元線訊號SwlR的一者(例如位於第CL4行第RW1R列的冗餘資料儲存單元100R1)。在期間TT2v,驗證訊號Sv為高位準,而對應步驟304進行判斷,例如判斷一字是否成功地儲存至冗餘資料儲存單元100R1。
在期間TT22,參數訊號Sredadd亦為高位準,而使參數REDRPR對應步驟318設定為第二判斷值。冗餘位址字元線訊號SwlA為高位準,而可對應步驟302將無法被寫入的資料儲存單元100M1的列位址儲存於冗餘位址儲存單元100A中對應冗餘位址字元線訊號SwlA的一者(例如對應冗餘資料儲存單元100R1的冗餘位址儲存單元100A1)。由於不需額外記錄損壞的資料儲存單元100M1的行位址,因而可有效運用資源。在期間TT3v,驗證訊號Sv為高位準,而對應步驟304進行判斷,例如判斷資料儲存單元100M1的列位址是否成功地儲存至冗餘位址儲存單元100A1。在期間TT2之後的一期間TT3,參數訊號Sredrpr為低位準,參數訊號Sredadd為低位準,而使參數REDRPR、REDADD均對應步驟320設定為第一判斷值。
第5圖為本發明實施例中利用字冗餘的良率相較傳統利用列冗餘的良率的比較示意圖,其中,第5圖的粗實線代表本發明實施例中一個區塊(block)內每行的冗餘資料儲存單元100R的個數與良率之間的關係,第5圖的細實線代表傳統一個區塊內的冗餘列的個數與良率之間的關係。藉由字冗餘,本發明僅須設置兩列的冗餘資料儲存單元100R(即每一行設置兩個冗餘資料儲存單元100R),即可將良率提升至100%。也就是說,第1圖所示的非揮發性記憶體10的
良率可達到100%。即使僅設置一列的冗餘資料儲存單元100R(即每一行設置一個冗餘資料儲存單元100R),本發明的良率大於95%。相較之下,傳統的列冗餘方式則須設置六列以上的冗餘列,良率才可接近100%。
第6圖為本發明實施例一非揮發性記憶體60的示意圖。第6圖所示的非揮發性記憶體60之架構類似於第1圖所示的非揮發性記憶體10,故相同元件沿用相同符號表示。不同之處在於,非揮發性記憶體60可另包含有一控制電路610、一位址暫存器620、一列解碼器(row decoder)630、一行解碼器(column decoder)640以及一輸入輸出電路650。控制電路610可用來控制非揮發性記憶體60的寫入操作,例如第2圖所示的操作方法20或第3圖所示的操作方法30。控制電路610內嵌於非揮發性記憶體60內,因此,在一些實施例中,本發明排除利用外部的控制器來控制非揮發性記憶體60的寫入操作,而利於尺寸微小化及運算速度提升。列解碼器630、行解碼器640分別解碼位址暫存器620輸出的列位址、行位址,而能選擇出特定行特定列的資料儲存單元100M、冗餘資料儲存單元100R或冗餘位址儲存單元100A。列解碼器630可連接至非揮發性記憶體60的複數個字元線。輸入輸出電路650可連接至非揮發性記憶體60的複數個位元線(bit line,BL)。藉由輸入輸出電路650可將資料DD寫入資料儲存單元100M、冗餘資料儲存單元100R或冗餘位址儲存單元100A,或者將資料自資料儲存單元100M、冗餘資料儲存單元100R或冗餘位址儲存單元100A讀出。輸入輸出電路650亦可將資料DD輸出至非揮發性記憶體60外部。在一些實施例中,欲寫入的資料DD為32位元,資料儲存單元100M、冗餘資料儲存單元100R或冗餘位址儲存單元100A排列成64行,非揮發性記憶體60包含有2048條位元線。
綜上所述,本發明利用字冗餘來進行自主修復及自動修復,資料儲
存單元100M中的每一者的儲存單位分別為字,並且,當某一列的一個資料儲存單元100M具有缺陷時,無須以一整列的冗餘資料儲存單元100R替換一整列的資料儲存單元100M,而是一個冗餘資料儲存單元100R替換一個資料儲存單元100M,因此可有效運用資源,且可降低成本。並且,本發明的冗餘資料儲存單元100R替換損壞的資料儲存單元100M時,冗餘位址儲存單元100A僅記錄損壞的資料儲存單元100M的列位址,不記錄損壞的資料儲存單元100M的行位址。由於不需額外記錄損壞的資料儲存單元100M的行位址,因而可有效運用資源。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:非揮發性記憶體
100M,100M1:資料儲存單元
100R,100R1:冗餘資料儲存單元
100A,100A1:冗餘位址儲存單元
CL1~CLn:行
RW1~RWm,RW1R~RW2R,RW1A~RW2A:列
Claims (18)
- 一種非揮發性記憶體,包含有:複數個資料儲存單元,呈陣列排列,其中,該複數個資料儲存單元中的每一者的儲存單位(storage size)分別為字(word size),該複數個資料儲存單元中的每一者對應一行位址(column address)以及一列位址(row address)為可定址的(addressable);複數個冗餘資料儲存單元,排列成至少一列,其中,該複數個冗餘資料儲存單元中位於一第一行的一者用來替換該複數個資料儲存單元中位於一第二行的一者;以及複數個冗餘位址儲存單元,排列成至少一列,其中,該複數個冗餘位址儲存單元中位於一第三行的一者用來記錄該複數個資料儲存單元中被替換的資料儲存單元的列位址,其中,該複數個冗餘位址儲存單元中的任一者未儲存該複數個資料儲存單元的行位址。
- 如請求項1所述之非揮發性記憶體,其中,該第一行、該第二行以及該第三行對齊。
- 如請求項1所述之非揮發性記憶體,其中,該複數個冗餘位址儲存單元中的每一者空間上且功能上相關於該複數個冗餘資料儲存單元中的一者。
- 如請求項1所述之非揮發性記憶體,其中,該複數個冗餘資料儲存單元中位於該第一行及一第一列的一者相關於該複數個冗餘位址儲存單元中位於該第三行及一第二列的一者。
- 如請求項1所述之非揮發性記憶體,其中,該複數個資料儲存單元排列成兩列,該複數個冗餘位址儲存單元排列成兩列。
- 如請求項1所述之非揮發性記憶體,另包含有:一控制電路,用來控制該非揮發性記憶體的寫入操作,其中,該寫入操作包含有:當一字(word)無法寫入該複數個資料儲存單元中位於該第二行的一者時,將該字寫入該複數個冗餘資料儲存單元中位於該第一行的一者;以及將該複數個資料儲存單元中無法被寫入的資料儲存單元的列位址儲存於該複數個冗餘位址儲存單元中位於該第三行的一者。
- 一種操作方法,包含有:複數個冗餘資料儲存單元中位於一第一行的一者替換複數個資料儲存單元中位於一第二行的一者,其中,該複數個冗餘資料儲存單元排列成至少一列,該複數個資料儲存單元呈陣列排列,該複數個資料儲存單元中的每一者的儲存單位(storage size)分別為字(word size),該複數個資料儲存單元中的每一者對應一行位址(column address)以及一列位址(row address)為可定址的(addressable);以及複數個冗餘位址儲存單元中位於一第三行的一者記錄該複數個資料儲存單元中被替換的資料儲存單元的列位址,其中,該複數個冗餘位址儲存單元排列成至少一列,其中,該複數個冗餘位址儲存單元中的任一者 未儲存該複數個資料儲存單元的行位址。
- 如請求項7所述之操作方法,其中,該第一行、該第二行以及該第三行對齊。
- 如請求項7所述之操作方法,其中,該複數個冗餘位址儲存單元中的每一者空間上且功能上相關於該複數個冗餘資料儲存單元中的一者。
- 如請求項7所述之操作方法,其中,該複數個冗餘資料儲存單元中位於該第一行及一第一列的一者相關於該複數個冗餘位址儲存單元中位於該第三行及一第二列的一者。
- 如請求項7所述之操作方法,其中,該複數個資料儲存單元排列成兩列,該複數個冗餘位址儲存單元排列成兩列。
- 如請求項7所述之操作方法,其中,該複數個資料儲存單元、該複數個冗餘資料儲存單元、該複數個冗餘位址儲存單元以及一控制電路設置於一非揮發性記憶體內,該控制電路用來控制該非揮發性記憶體的寫入操作。
- 如請求項7所述之操作方法,其中,該複數個冗餘資料儲存單元中位於該第一行的一者替換該複數個資料儲存單元中位於該第二行的一者的步驟包含有: 將一字(word)寫入該複數個資料儲存單元中位於該第二行的一者;判斷該字是否成功地儲存至該複數個資料儲存單元中位於該第二行的該資料儲存單元;以及當該字無法寫入該複數個資料儲存單元中位於該第二行的該資料儲存單元時,將該字寫入該複數個冗餘資料儲存單元中位於該第一行的一者。
- 如請求項13所述之操作方法,其中,判斷該字是否成功地儲存至該複數個資料儲存單元中位於該第二行的該資料儲存單元的步驟包含有:將該字與該複數個資料儲存單元中位於該第二行的該資料儲存單元內的儲存內容進行比對;以及當該字不同於該儲存內容時,判斷該字未成功地儲存至該複數個資料儲存單元中位於該第二行的該資料儲存單元。
- 如請求項7所述之操作方法,另包含有:在該字寫入至該複數個冗餘資料儲存單元中位於該第一行的該冗餘資料儲存單元之後,判斷該字是否成功地儲存至該複數個冗餘資料儲存單元中位於該第一行的該冗餘資料儲存單元。
- 如請求項15所述之操作方法,另包含有:當該字無法寫入該複數個冗餘資料儲存單元中位於該第一行的該冗餘資料儲存單元時,將該字寫入該複數個冗餘資料儲存單元中位於該第一行的另一者;以及將該複數個資料儲存單元中無法被寫入的資料儲存單元的列位址儲存於該複數個冗餘位址儲存單元中位於該第三行的另一者。
- 如請求項7所述之操作方法,其中,該複數個冗餘位址儲存單元中位於該第三行的一者記錄該複數個資料儲存單元中被替換的資料儲存單元的列位址的步驟包含有:將該複數個資料儲存單元中無法被寫入的資料儲存單元的列位址儲存於該複數個冗餘位址儲存單元中位於該第三行的一者。
- 如請求項7所述之操作方法,另包含有:在該字寫入該複數個冗餘資料儲存單元中位於該第一行的該冗餘資料儲存單元之前,判斷該複數個冗餘資料儲存單元中位於該第一行的該冗餘資料儲存單元是否為未使用(unused)且未毀損(undamaged);或者在該字寫入該複數個冗餘資料儲存單元中位於該第一行的該冗餘資料儲存單元之前,判斷該複數個資料儲存單元中無法被寫入的該資料儲存單元是否已成功地被替換。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109105833A TWI851663B (zh) | 2020-02-24 | 2020-02-24 | 非揮發性記憶體及其操作方法 |
| US16/831,716 US11294577B2 (en) | 2020-02-24 | 2020-03-26 | Non-volatile memory and operation method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109105833A TWI851663B (zh) | 2020-02-24 | 2020-02-24 | 非揮發性記憶體及其操作方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202133177A TW202133177A (zh) | 2021-09-01 |
| TWI851663B true TWI851663B (zh) | 2024-08-11 |
Family
ID=77366167
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109105833A TWI851663B (zh) | 2020-02-24 | 2020-02-24 | 非揮發性記憶體及其操作方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11294577B2 (zh) |
| TW (1) | TWI851663B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12332748B1 (en) * | 2023-12-14 | 2025-06-17 | Dell Products L.P. | CXL memory subsystem unavailability recovery system |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6199177B1 (en) * | 1998-08-28 | 2001-03-06 | Micron Technology, Inc. | Device and method for repairing a semiconductor memory |
| US6910152B2 (en) * | 1998-08-28 | 2005-06-21 | Micron Technology, Inc. | Device and method for repairing a semiconductor memory |
| US7821830B2 (en) * | 2008-07-23 | 2010-10-26 | Micron Technology, Inc. | Flash memory device with redundant columns |
| TWI362665B (en) * | 2008-04-25 | 2012-04-21 | Etron Technology Inc | A trigger circuit for column redundant memory unit and column redundant memory unit device |
| CN104008780A (zh) * | 2013-02-26 | 2014-08-27 | 中芯国际集成电路制造(上海)有限公司 | 存储单元的修复方法和装置 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6002620A (en) | 1998-01-09 | 1999-12-14 | Information Storage Devices, Inc. | Method and apparatus of column redundancy for non-volatile analog and multilevel memory |
| JPH11250691A (ja) * | 1998-02-27 | 1999-09-17 | Toshiba Corp | 半導体記憶装置 |
| JP3916862B2 (ja) | 2000-10-03 | 2007-05-23 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
| US20020133769A1 (en) * | 2001-03-15 | 2002-09-19 | Cowles Timothy B. | Circuit and method for test and repair |
| US7170802B2 (en) | 2003-12-31 | 2007-01-30 | Sandisk Corporation | Flexible and area efficient column redundancy for non-volatile memories |
| US7379330B2 (en) * | 2005-11-08 | 2008-05-27 | Sandisk Corporation | Retargetable memory cell redundancy methods |
| US20080181035A1 (en) * | 2007-01-26 | 2008-07-31 | Atsushi Kawasumi | Method and system for a dynamically repairable memory |
| US7633800B2 (en) | 2007-08-08 | 2009-12-15 | Atmel Corporation | Redundancy scheme in memory |
| CN105097045B (zh) * | 2014-04-15 | 2020-11-24 | 爱德万测试公司 | 用于nand闪存器件中的缺陷修复的方法和装置 |
| US11010245B2 (en) * | 2018-06-21 | 2021-05-18 | Winbond Electronics Corp. | Memory storage apparatus with dynamic data repair mechanism and method of dynamic data repair thereof |
-
2020
- 2020-02-24 TW TW109105833A patent/TWI851663B/zh active
- 2020-03-26 US US16/831,716 patent/US11294577B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6199177B1 (en) * | 1998-08-28 | 2001-03-06 | Micron Technology, Inc. | Device and method for repairing a semiconductor memory |
| US6910152B2 (en) * | 1998-08-28 | 2005-06-21 | Micron Technology, Inc. | Device and method for repairing a semiconductor memory |
| TWI362665B (en) * | 2008-04-25 | 2012-04-21 | Etron Technology Inc | A trigger circuit for column redundant memory unit and column redundant memory unit device |
| US7821830B2 (en) * | 2008-07-23 | 2010-10-26 | Micron Technology, Inc. | Flash memory device with redundant columns |
| CN104008780A (zh) * | 2013-02-26 | 2014-08-27 | 中芯国际集成电路制造(上海)有限公司 | 存储单元的修复方法和装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202133177A (zh) | 2021-09-01 |
| US11294577B2 (en) | 2022-04-05 |
| US20210263656A1 (en) | 2021-08-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR910008694B1 (ko) | 마스크 rom | |
| JP4062247B2 (ja) | 半導体記憶装置 | |
| JP5013230B2 (ja) | 消去/プログラミングに不具合を生じた不揮発性メモリ装置の自己修復方法およびそれに関する不揮発性メモリ装置 | |
| US7411844B2 (en) | Semiconductor memory device having a redundancy information memory directly connected to a redundancy control circuit | |
| US11257563B2 (en) | Apparatus and method for testing a defect of a memory module and a memory system | |
| US20120075943A1 (en) | Method and Apparatus for Memory Repair With Redundant Columns | |
| JP2002093190A (ja) | 半導体記憶装置およびその検査方法 | |
| US6320804B2 (en) | Integrated semiconductor memory with a memory unit a memory unit for storing addresses of defective memory cells | |
| CN113299336B (zh) | 修复电路、存储器和修复方法 | |
| EP1398796B1 (en) | Dedicated redundancy circuits for different operations in a flash memory device and methods of operating the same | |
| JP2005310313A (ja) | 半導体記憶装置 | |
| US6539505B1 (en) | Method of testing a semiconductor memory, and semiconductor memory with a test device | |
| TWI851663B (zh) | 非揮發性記憶體及其操作方法 | |
| US20030145250A1 (en) | Dynamic built-in self-skip method used for shared memory fault recovery | |
| KR100959848B1 (ko) | 반도체 메모리 및 테스트 시스템 | |
| US11361221B2 (en) | Method of training artificial intelligence to estimate lifetime of storage device | |
| CN101937719B (zh) | 将信息数据写入闪速存储器件时处理写错误的方法和装置 | |
| US20120269018A1 (en) | Memory system having memory and memory controller and operation method thereof | |
| US10198201B2 (en) | Semiconductor apparatus, memory system and repair method thereof | |
| JP3563362B2 (ja) | 集積メモリのメモリセルの機能をテストする方法および集積メモリ | |
| US7372750B2 (en) | Integrated memory circuit and method for repairing a single bit error | |
| US6158016A (en) | Method for the processing of defective elements in a memory | |
| CN113345511A (zh) | 存储器件及其测试方法 | |
| US7581146B2 (en) | Semiconductor memory device storing repair information avoiding memory cell of fail bit operating method thereof | |
| JP4257342B2 (ja) | 半導体記憶装置、メモリモジュール及びメモリモジュールの検査方法 |