TWI681399B - 積體電路及用以操作積體電路上的記憶體的方法 - Google Patents
積體電路及用以操作積體電路上的記憶體的方法 Download PDFInfo
- Publication number
- TWI681399B TWI681399B TW107129507A TW107129507A TWI681399B TW I681399 B TWI681399 B TW I681399B TW 107129507 A TW107129507 A TW 107129507A TW 107129507 A TW107129507 A TW 107129507A TW I681399 B TWI681399 B TW I681399B
- Authority
- TW
- Taiwan
- Prior art keywords
- procedure
- integrated circuit
- recovery
- memory
- write
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種積體電路,包括記憶體陣列及錯誤更正邏輯,記憶體陣列被配置以儲存資料塊(chunk)及對應的錯誤更正碼;積體電路包括控制邏輯,控制邏輯執行復原程序以從記憶體陣列存取被選取資料塊及對應的錯誤更正碼,以使用錯誤更正碼來識別在被選取資料塊內之錯誤位元之記憶體陣列中的錯誤位置,及存取所識別的位置以寫入更正資料。復原程序係順序地應用至被指定用於復原操作之指定樣本之復原操作區域的複數個資料塊。耦接至控制邏輯的記憶體可儲存一個或多個復原參數以識別記憶體中的復原操作區域。
Description
本發明是有關於一種改進記憶體裝置中資料保持的技術,包括快閃記憶體或其他類型的非揮發性記憶體。
非揮發性記憶體件中的資料保持是重要的操作特性。具體地,儲存在非揮發性記憶胞中的資料由胞之相對穩定條件所表示。例如,在快閃記憶體中,儲存在胞中的資料由浮動閘或介電電荷捕捉結構中所捕捉的電荷所表示。又例如,在相變化記憶體中,儲存在胞中的資料由記憶元件的固態相位所表示。資料保持參數有關於記憶胞隨時間保持相對穩定狀態的能力。
在非揮發性記憶體中寫入資料的程序通常被配置以儲存具有足夠邊界的資料,使得在正常使用期間胞狀況的位移(例如,電荷丟失或電荷增益、相變化等)不會導致資料丟失。然而,隨著非揮發性記憶胞的尺寸縮小,使用這種裝置的記憶體陣列的密度增加,並且操作電壓變得更小,資料保持規範是有壓力的。
對於高密度非揮發性記憶體而言,已經部署錯誤更正技術以容納當各個胞沒有儲存正確資料時可能發生的資料錯誤。以這種方式,當從陣列將資料讀取出來時,錯誤資料可被更正在輸出到請求主機的資料中。
錯誤更正技術包括使用錯誤更正碼ECC,也稱為錯誤糾正代碼或漢明代碼,具有相應的資料塊。ECC基本上是為了向資料塊提供冗餘而添加的資料位元,藉此可以在讀回時在資料塊中識別和更正指定數量的錯誤。使用ECC的錯誤檢測邏輯可應用於更正在主動使用的資料所中遇到的錯誤位元,以及識別錯誤位元的讀取或寫入操作的主題。參見2015年12月17日揭露之Kwon等人的US 2015/0363257,「RESISTIVE MEMORY DEVICE AND OPERATING METHOD」。
雖然此技術對於低位元錯誤率的條件以及對於主動使用的資料是有效的,但是記憶體中的錯誤資料可以隨時間累積。錯誤更正碼只能更正指定資料塊中有限數量的錯誤位元。因此,出現一些技術以監視非揮發性裝置中所遇到的位元錯誤率,以及當位元錯誤率接近極限時復原資料。參見例如2016年4月7日揭露之Huang等人的US 2016/0098216,「SYSTEM AND METHOD FOR REFRESHING DATA IN A MEMORY DEVICE」。
期望提供一種技術,以針對成功受編程但未保留其資料之記憶胞,採對記憶體的任務功能操作干擾最小化的方式,進行復原的資料,並且有效地改善資料保持特性。
對於包括記憶體陣列和錯誤更正邏輯的積體電路,描述可作為背景操作執行的復原程序,或者對儲存在記憶體陣列中的資料的任務功能使用干擾很少或沒有干擾。
描述一種積體電路,包括記憶體陣列,被配置以儲存資料塊(chunk),資料塊具有對應之錯誤更正碼。錯誤更正邏輯係使用錯誤更正碼處理從記憶體陣列所接收的資料塊,以識別所接收之資料塊中的錯誤位置。控制邏輯執行復原程序,以從記憶體陣列存取被選取資料塊及對應的錯誤更正碼,藉以使用錯誤更正邏輯識別在被選取資料塊之錯誤位元的記憶體陣列中的位置,及藉以存取所識別之位置來寫入更正資料於記憶體陣列中。
復原程序係順序地應用至被指定用於復原操作之指定樣本之復原操作區域的複數個資料塊。耦接控制邏輯的參數儲存器可儲存一個或多個復原參數以識別記憶體陣列中之復原操作區域。
在所述實施例中,頁面緩衝器係可操作地耦接至記憶體陣列,而寫入邏輯係可操作地耦接至頁面緩衝器,以回應於用於儲存記憶體陣列之資料塊的寫入指令,使用頁面緩衝器執行寫入及驗證程序。在此實施例中,復原程序不是部分的寫入程序,復原程序載入頁面緩衝器的錯誤位元位置以識別被選取資料塊內錯誤位元的記憶體陣列內的位置,及應用寫入偏壓脈衝及驗證周期以使用頁面緩衝器寫入更正資料。
再者,在所描途的一種實施例中,積體電路包括:介面,以接收來自外部主機的指令;及邏輯,以回應於來自外部主機之指令而執行寫入程序,以寫入資料至記憶體陣列的寫入操作區域。在此例中,執行復
原程序的控制邏輯係回應於寫入程序的當前樣本,以識別與記憶體陣列之寫入操作區域不同的復原操作區域,及從復原操作區域選擇用於復原程序的資料塊。寫入程序的特徵在於時間持續規範,時間持續規範包括多餘時間以用於寫入程序的至少一些樣本。控制邏輯可包括邏輯以在時間持續規範的多餘時間內,回應於當前樣本順序地應用復原程序至復原操作區域內的多個資料塊。再者,寫入程序可寫入具有不同尺寸之區塊資料,且復原操作區域的尺寸係在寫入程序之當前樣本期間所寫入之區塊的尺寸的函數。
再者,在所述之一實施例中,積體電路包括邏輯以於讀取及寫入程序之間進入待機模式。在此例中,執行復原程序的控制邏輯可在待機模式期間應用復原程序。
在另一實施例中,積體電路包括邏輯以在施加至積體電路的電源中斷後執行開機過程。開機過程導致進入致能狀態,以用於記憶體的操作。在此實施例中,在進入致能狀態前,用以執行復原程序的控制邏輯應用復原程序以作為開機過程的一部分。
在又一實施例中,控制邏輯可回應於從外部主機所接收之復原操作指令以執行復原程序。
一般而言,描述一種方法,用以操作積體電路上的記憶體。此方法包括:儲存資料塊與對應的錯誤更正碼於記憶體中;以及執行復原程序以從記憶體存取被選取資料塊及對應的錯誤更正碼,使用積體電路上的錯誤更正邏輯來識別被選取資料塊的錯誤位元的記憶體的位置,以及存取記憶體中所識別的位置以寫入更正資料。
此方法可以在不干擾或最小化干擾記憶體資料使用任務功能的情況下受到應用,本方法的方面可執行於如發明內容所述之積體電路。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
10‧‧‧資料塊
11‧‧‧ECC代碼
12‧‧‧位置
15、16、18、19‧‧‧範圍
100‧‧‧積體電路
101‧‧‧一般陣列
102‧‧‧ECC陣列
103、104‧‧‧感測放大器
105‧‧‧ECC邏輯
106‧‧‧更正多工器
107‧‧‧資料多工器
110‧‧‧線
112‧‧‧位址計數器
120‧‧‧頁面緩衝器
121‧‧‧字元線驅動器
122‧‧‧線
125‧‧‧控制器
126‧‧‧指令邏輯
128‧‧‧參數儲存記憶體
130‧‧‧輸入/輸出介面
200~207、270~278、300~307、400~407‧‧‧流程步驟
250A、250B、250C、350A、350B、350C‧‧‧位址空間
251A、251B、251C、351A、351B、351C、353B、353C‧‧‧取消選擇區域
252A、252B、252C、352A、352B、352C‧‧‧復原操作區域
253A、253B、253C‧‧‧寫入操作區域
255A、255B、255C、355A、355B、355C‧‧‧復原指標
LVLB、HVLB‧‧‧低邊界
LVHB、HVHB‧‧‧高邊界
第1圖繪示參照於錯誤更正碼及資料塊之使用說明的示意圖。
第2A圖繪示一種因非期望之充電增益而導致資料保持劣化的資料丟失機制。
第2B圖繪示一種因非期望之充電損失而導致資料保持劣化的資料丟失機制。
第3圖繪示包含用於執行本文所述復原程序之記憶體陣列及控制邏輯之積體電路的簡易方塊示意圖。
第4圖繪示依照本文所述一實施例之由控制邏輯所執行的復原程序的流程圖。
第5圖繪示依照本文所述另一實施例之由控制邏輯所執行的復原程序的流程圖。
第6A、6B、及6C圖繪示相仿於參照第5圖所述之說明用於程序之寫入操作區域及復原操作區域之間的關係的直覺(heuristic)示意圖。
第7圖繪示依照本文所述又一實施例之由控制邏輯所執行的復原程序的流程圖。
第8A、8B、及8C圖繪示相仿於參照第7圖所述之說明用於程序之寫入操作區域及復原操作區域之間的關係的直覺示意圖。
第9圖繪示依照本文所述再一實施例之由控制邏輯所執行的復原程序的流程圖。
本發明實施例將參照第1-9圖以提供詳細描述。
第1圖是資料塊10的簡化示意圖,資料塊10可以是例如使用者代碼的關鍵任務資料,具有相應的ECC代碼11。接收資料塊10和ECC代碼11的錯誤更正邏輯可以識別資料塊10中的錯誤位元的位置12,此位置12可以在將資料提供給請求主機時進行更正。
第2A圖和第2B圖繪示可以在已經適當編程的記憶胞內發生資料丟失的示例。例如,在第2A圖中,快閃記憶體裝置內的記憶胞儲存例如邏輯“1”的抹除狀態,記憶胞的閥值電壓Vt處於低邊界LVLB和高邊界LVHB之間的低閥值範圍15中。在抹除程序期間,所有的胞係藉由被驗證為具有低於驗證位準的閥值而被適當地抹除,如圖所示。然而,隨著時間的推移,具有陣列狀態的陣列中的一些胞可能受到來自相鄰胞中的編程操作的干擾、環境干擾等而獲得電荷。因此,隨著時間的推移,多個胞可能具有範圍16中的閥值,並且可能被錯誤地讀取為儲存資料值“0”。
在第2B圖中,快閃記憶體裝置中的記憶胞儲存例如邏輯“0”的編程狀態,記憶胞的閥值電壓Vt處於低邊界HVLB和高邊界HVHB之間的高閥值範圍19中。在編程程序期間,所有的胞係藉由驗證具有高於驗證位準的閥值而被適當地編程,如圖所示。然而,隨著時間的推移,具
有陣列狀態的陣列中的一些胞可能受到來自相鄰胞中的抹除操作的干擾、環境干擾等而失去電荷。因此,隨著時間的推移,多個胞可能具有範圍18中的閥值,並且可能被錯誤地讀取為儲存資料值“1”。
本文描述了復原程序,通過此復原程序,具有第2A圖的範圍16中的閥值的胞和具有第2B圖的範圍18中的閥值的胞可以復原到其適當的閥值範圍。
第3圖是積體電路100的簡化示意圖,積體電路100包括非揮發性記憶體和控制器,被配置為執行如本文所述的復原程序。用於本揭露目的之積體電路100是作為單元提供的單一積體電路封裝中的單晶片裝置或多晶片裝置。
在此例中,積體電路100包括快閃記憶體,記憶體包括第一部分及第二部分,第一部分特徵為一般陣列101,第二路分特徵為ECC陣列102。一般陣列101儲存資料塊,而ECC陣列102儲存ECC以對應於在一般陣列101中的相應資料塊。在編程期間,ECC係伴隨資料塊而被計算和儲存,以使它們準確地反映相應資料塊的內容。
一組感測放大器103經由線122與一般陣列101可操作地耦接,並且一組感測放大器104經由線122與ECC陣列102可操作地耦接。在此例中,頁面緩衝器120可操作地耦接至記憶體陣列,在意義上,資料被移動通過頁面緩衝器,且在感測資料和編程資料於一般陣列101和ECC陣列102內的期間被使用。同樣,感測放大器104可操作地耦接到陣列101和102,在意義上,感測放大器用於感測儲存在陣列中的資料。而且,字元線驅動器121關聯於一般陣列101和ECC陣列102。所示的感測放大器和頁面緩衝器的
佈置類似於一些NAND架構裝置中的佈置。佈置在不同實施例中有所變化,包括配置用於NOR架構設備和用於其他記憶體技術的實施例。
積體電路100包括位址計數器112或其他位址邏輯,用於將線110上的位址提供給字元線驅動器121、頁面緩衝器120或其他類型的列解代碼器,以及到輸出資料多工器107。位址計數器112可以由晶片上(on-chip)控制器125所控制。再者,位址計數器112可以由輸出資料多工器107用來控制向外部主機輸出資料塊。
積體電路還包括電路以提供所需偏壓,用於編程、快閃記憶體的抹除和讀取、或其他類型的非揮發性記憶體的設置、重置和讀取。用於提供偏壓的電路可以包括電荷泵、分壓器、電流源、電壓調節器、和適合於在積體電路上實現的其他電路元件。
感測放大器103和104被佈置成向ECC邏輯105提供資料塊(其可以是例如128位)和相應的ECC(可以是例如8位)。再者,此組與一般陣列耦接的感測放大器103被佈置成將其輸出資料提供給更正多工器106,更正多工器106例如可以是快取記憶體的形式。ECC邏輯105產生輸出,此輸出識別相應資料塊中的錯誤位元的位置,並將位置提供給更正多工器106,其中錯誤位元係被更正。更正多工器106的輸出是更正資料塊,被應用於輸出資料多工器107,其中資料塊可以作為例如8位元字元組的序列而被提供給輸入/輸出介面130。輸入/輸出介面130可以使用為特定實施例指定的匯流排協議向外部主機提供資料。
輸入/輸出介面130還可以從外部主機接收資料以用於寫入至記憶體陣列內。因此,在方塊圖中,示出從資料多工器107到感測放大器
103、104和頁面緩衝器120的資料路徑。在寫入操作期間,頁面緩衝器120可以資料圖案的方式而被載入,此資料圖案包括資料塊和相應ECC,可以根據適合於記憶體技術類型的程序而被編程和驗證。在一些實施例中,頁面緩衝器可以儲存一個資料塊和一個對應的ECC。在其他實施例中,頁面緩衝器可以儲存多於一個的資料塊和多於一個的對應ECC。可以將頁面緩衝器120的大小設計為適合於技術的特定實現,並考慮所使用的ECC邏輯的類型以及記憶體裝置的其他特性。
在此例中,輸入/輸出介面130也耦接到指令邏輯126,其中來自外部主機的指令可被解代碼並應用於積體電路上的控制器125。
指令邏輯126可以產生應用於控制器125的內部控制信號。
控制器125可以包括一個或多個狀態機或其他邏輯構造,藉此控制信號係被產生並應用於記憶體的組件,以便執行嵌入式操作程序,包括寫入程序和讀取程序。對於快閃記憶體,寫入程序可以包括編程程序和抹除程序。
控制器125可實現為使用特殊用途邏輯電路、可編程邏輯電路、具有儲存在積體電路上的控制代碼而被執行以實現控制器125的一般用途處理器、及此些元件的組合。控制器125中的一個狀態機或多個狀態機可以被配置為藉由將適當的定時和控制信號應用於裝置的各種電路組件,來執行嵌入式操作程序。
由控制器125實現的寫入程序,可包括所謂的遞增步進脈衝編程(Incremented step pulse programming)ISPP,包括向頁面緩衝器載入要編程的資料圖案,及循環地(iteratively)將編程脈衝應用至頁面緩衝器中所識別
的位線,且使用禁止偏壓應用到未選擇的位元線,然後進行驗證步驟,直到資料圖案被成功編程。在每次循環中,當成功驗證某個位元時,頁面緩衝器中相對應的位元係被重置,以便在後續循環中接收到禁止偏壓。再者,在每次循環中,編程脈衝的振幅可被遞增或以其他方式被改變。
再者,抹除程序可以由控制器125上的狀態機所實現,並通過將適當的定時和控制信號應用到裝置的各種電路組件。抹除程序可以逐段地(segment-by-segment)或逐塊地(block-by-block)應用於快閃記憶體。抹除程序可以包括在每個抹除脈衝之後的抹除驗證操作。
根據本文所述技術的實施例,控制器125包括狀態機或其他邏輯,被配置為通過將適當的定時和控制信號應用於裝置的各種電路組件來執行復原程序。如本文所述的復原程序係被執行以從記憶體陣列存取被選取資料塊和對應的ECC,以利用ECC邏輯105來識別被選取資料塊中的錯誤位元的記憶體陣列的位置,並存取所識別的位置以將更正資料寫回記憶體陣列。在圖中所示的實施例中,ECC邏輯105被配置為向頁面緩衝器120提供識別錯誤位元的位置的資料。控制器125可以使得編程脈衝被應用到頁面緩衝器120中的位置資料所識別的位元線,以通過寫入更正資料來復原錯誤位元。在另一示例中,錯誤位元的位置可以在復原程序的錯誤識別階段期間儲存在表格中,這種作法可被用於在復原程序的後續復原階段中將更正資料回饋到頁面緩衝器。
如第3圖所示,用於儲存復原操作的一個或多個參數的參數儲存記憶體128,係與控制器125耦接。這些參數可包括記憶體復原操作區域的指標(pointer),其中記憶體復原操作區域對應於在復原程序期間可以涵
蓋(traverse)的位址空間,且在位址空間內將執行復原操作的給定樣本。再者,參數可以包括關於當前復原操作區域的狀態資訊,或者關於陣列中的記憶體位置的復原狀態。控制器125可以利用這些參數來管理復原操作的執行,以有效地改善裝置的資料保持特性。
控制器125可以被配置為維持操作模式,在其他操作中,此操作模式影響從外部主機接收的指令的解釋。例如,控制器可以在讀取和寫入操作之間進入待機模式,其中狀態機被配置為儘可能快地回應外部主機指令。在讀取程序期間,控制器可以維持讀取模式,在此期間外部主機指令可被排隊(queue)或阻止。相仿地,控制器可以維持編程和抹除模式,而對外部主機指令的執行產生各種影響。控制器125還可以包括在邏輯以在積體電路的電源中斷之後執行開機(power-on)程序。開機程序可以包括裝置的電源電路(energizing circuitry)並導致進入致能狀態,致能狀態可以包括例如待機模式,其中狀態機處於執行使用記憶體之程序的狀態。在本文描述的實施例中,控制器125被配置為在進入外部指令係被接受的致能狀態之前執行本文所述的復原程序。
在一個示例中,記憶體包括快閃記憶體,例如高密度NAND快閃記憶體。也可以使用其他類型的記憶體技術,包括相變化記憶體(phase change memory)PCM、稱為ReRAM或RRAM的可編程電阻記憶體、NOR快閃記憶體、磁阻(magnetoresistive)記憶體等。再者,可以使用其他類型的記憶體技術,包括例如DRAM或SRAM的揮發性記憶體。
第4圖繪示在一個實施例中執行的復原程序,其中積體電路包括介面以用於從外部主機接收指令、及控制邏輯以回應於來自外部主機
的復原操作指令執行復原程序。復原操作指令可以在輸入/輸出介面處與控制信號(例如晶片選擇信號和時鐘信號)協調地被接收。在示例中,復原操作指令包括資料序列,此資料序列包括標識復原操作的一個或兩個位元組的操作代碼。指令序列可以包括位址,位址包括足夠數量的位元以識別復原操作區域。替代地,復原操作區域可以藉由參數而被識別,參數可由積體電路上的控制器所維持,或者藉由參數寫入操作而被儲存在積體電路上。積體電路上的指令邏輯對復原操作指令進行解代碼,並向執行嵌入式復原程序的控制器提供適當的信號。
因此,如第4圖所示,在開機之後或在待機模式期間,積體電路可處於等待指令的情況(200)。在這種情況下,可以從外部主機(201)接收復原操作指令。復原程序可以使用位址指標,位址指標識別圖示中標記為“資料塊(i)”之記憶體復原操作區域內的資料塊,以從記憶體陣列存取被選取資料塊和相應的錯誤更正碼,以及利用ECC邏輯來識別資料塊中的錯誤位元位置(方框202)。復原程序可以將錯誤位元位置的圖案載入到頁面緩衝器或其他儲存器中(203)。然後,復原程序可以將更正資料寫入所識別的位置(204)。在快閃記憶體或其他類型的記憶體中,復原程序可以僅通過將從邏輯“1”儲存的資料改變為邏輯“0”(抹除到編程狀態)來更正錯誤。在一些實施例中,復原程序可以包括多個步驟以更正任何類型的錯誤。在為當前資料塊寫入更正資料之後,復原程序可以決定是否繼續到下一個資料塊(方塊205)。此決定可以基於儲存在積體電路上的復原參數,例如識別在復原程序的當前樣本中要涵蓋的復原操作區域(例如,開始和結束位址)
的範圍的參數、識別復原程序被允許執行復原程序之時間間隔的參數、或適合特定實現的其他參數。
如果決定繼續復原程序,則遞增索引“i”(206),並且程序循環回到方塊202以繼續直到完成復原程序的當前樣本。如果在方塊205決定復原程序的當前樣本已完成,則復原程序結束(207)。在復原程序結束後,控制器可以返回待機模式或其他適當的操作模式。
第5圖繪示在一個實施例中執行的復原程序,其中積體電路包括介面以用於從外部主機接收指令、及邏輯以用於回應於來自外部主機之有關記憶體陣列之寫入操作區域的指令。在此實施例中,控制邏輯回應於寫入程序的當前樣本執行復原程序。例如,在由寫入指令的指令邏輯檢測時,復原程序可以回應於當前樣本而執行,通過執行控制邏輯中的設置步驟,且在設置時間下啟動操作。在此實施例中,控制邏輯識別記憶體陣列中的復原操作區域,此復原操作區域不同於寫入程序的當前樣本的寫入操作區域。再者,復原操作從復原操作區域中選擇用於復原程序的資料塊。復原操作可以順序地進行於整個復原操作區域中的資料塊。此示例中的復原操作可以執行於寫入操作的當前樣本之前、寫入操作的當前樣本之後,或者在各種實施例中與寫入操作的當前樣本同時執行。
因此,如第5圖所示,記憶體控制器可以例如在待機模式中開始(270)。控制器可以從外部主機接收寫入操作指令(271)。控制器執行嵌入式寫入程序的樣本以將使用者資料寫至記憶體陣列之寫入操作區域所識別的記憶胞(272)。在完成嵌入式寫入程序的當前樣本之後,或者在回應當前樣本而設置的另一時間,復原程序係被建立。此實施例中的復原程序識
別與寫入操作區域不同的復原操作區域。復原程序可以使用位址指標,位址指標識別圖示中標記為“資料塊(i)”之記憶體中所識別之復原操作區域內的資料塊,以從記憶體陣列存取被選擇的資料塊和相應的錯誤更正碼。復原程序可以利用ECC邏輯來識別所選資料塊中的錯誤位元位置(方框273)。復原程序可以將錯誤位元位置的圖案載入到頁面緩衝器或其他儲存器中(274)。然後,復原程序可以將更正資料寫入所識別的位置(275)。在寫入更正資料至當前資料塊之後,復原程序可以決定是否繼續到下一個資料塊(方塊276)。此決定可以基於儲存在積體電路中的復恢參數,例如識別在復原程序的當前樣本中要涵蓋的復原操作區域的範圍的參數、識別復原程序被允許執行復原程序之時間間隔的參數、或適合特定實現的其他參數。
如果決定繼續復原程序,遞增索引“i”(277),且程序循環回到方塊273以繼續直到完成復原程序的當前樣本。如果在ECC邏輯105決定復原程序的當前樣本已完成,則復原程序結束(278)。在復原程序結束後,控制器可以返回待機模式或其他適當的操作模式。
在本技術的一個示例中,寫入程序的特徵可以是時間持續規範,在時間持續規範期間控制器將不接受來自外部主機的指令,或者在此期間將需要執行寫入操作的中斷程序來執行這樣的指令。回應於寫入程序的當前樣本,控制器中執行復原程序的邏輯可以回應於寫入程序的當前樣本,在寫入程序的時間持續規範內,在復原操作區中順序地將復原程序應用於多個資料塊。例如,如果寫入操作被指定以寫入256位元組資料的方塊,寫入操作可以在時間持續規範結束之前以數十微秒的等級的視窗而被完成。在這多餘的幾十微秒內,復原程序可以應用於例如64位元組或128位
元組的復原操作區域,這取決於特定的實現。對於大方塊資料的較長寫入操作,可以使用用於執行復原操作的較長視窗。因此,例如,如果寫入方塊的寫入操作區域大約為4千位元組(KB),復原程序可能有幾十毫秒的視窗,允許大約1KB或2KB等級的復原。對於快閃記憶體裝置中的扇區抹除指令,寫入的時間持續規範可以是大約40毫秒,而完成抹除操作所需的時間可以是大約25毫秒。這將留下大約15毫秒的視窗,以用於在此視窗內完成復原程序。對於代表性快閃記憶體裝置中的方塊抹除指令,寫入時間規範可以是大約300毫秒,但是僅需要大約250毫秒來完成。為了復原操作的目的,這將留下大約50毫秒的視窗。
因此,方塊276處的邏輯可以決定寫入程序的當前樣本的時間持續規範內可用的時間量,並且基於可用時間視窗來決定是否繼續復原操作。
替代地,復原程序可以包括步驟以回應於寫入操作的當前樣本的範圍,計算記憶體中的復原操作區域的範圍。在這種情況下,方塊276處的邏輯可以將用於存取資料塊的當前指標與所計算之復原操作區域的端點進行比較,以決定是否繼續。
第6A-6C圖繪示決定復原程序的復原操作區域的邏輯,復原程序被執行以回應於寫入程序的特定實例。因此,第6A圖繪示記憶體陣列位址空間250A。寫入指令可以識別寫入程序的當前樣本的寫入操作區域253A。積體電路上的控制器可以計算與寫入操作區域253A不同的復原操作區域252A,但大小是寫入操作區域253A的大小的函數。控制器可以產生並維持復原指標255A,用於選擇當前的資料塊以便存取復原程序,並在程序
繼續時涵蓋復原操作區域。陣列的平衡是取消選擇的區域251A,不涉及寫入操作程序或復原程序的當前樣本。
第6B圖繪示記憶體陣列位址空間250B。寫入指令可以識別寫入程序的當前樣本的寫入操作區域253B。如圖中的比例大小所示,第6B圖的寫入操作區域253B的大小大於第6A圖的寫入操作區域253A的大小。積體電路上的控制器可以計算與寫入操作區域253B不同的復原操作區域252B,但大小是寫入操作區域253B的大小的函數。第6B圖中的復原操作區域252B的大小大於第6A圖中的復原操作區域252A的大小,因為相應的寫入操作區域也更大。控制器可以產生並維持復原指標255B,用於選擇當前的資料塊以存取復原程序,並在程序繼續時涵蓋復原操作區域。陣列的平衡是取消選擇的區域251B,不涉及寫入操作過程或復原程序的當前樣本。
第6C圖說明記憶體陣列位址空間250C。寫入指令可以識別寫入程序的當前樣本的寫入操作區域253C。如圖中的比例大小所示,第6C圖的寫入操作區域253C的大小大於第6A圖的寫入操作區域253A和第6B圖中的寫入操作區域253B的大小。積體電路上的控制器可以計算與寫入操作區域253C不同的復原操作區域252C,但是其大小是寫入操作區域253C的大小的函數。第6C圖中的復原操作區域252C的大小大於第6A圖中的復原操作區域252A和第6B圖中的復原操作區域253B的大小,因為相應的寫入操作區域也更大。控制器可以產生並維持復原指標255C,用於選擇當前的資料塊以存取復原程序,並且隨著程序的繼續涵蓋復原操作區域。陣列的平衡是取消選擇的區域251C,不涉及寫入操作程序或復原程序的當前樣本。
第7圖繪示實施例的復原程序,其中積體電路包括介面以用於從外部主機接收指令、及邏輯以用於回應於來自外部主機的指令執行讀取和寫入程序。而且,在此實施例中,積體電路上的控制器被配置為在讀取和寫入程序之間進入待機模式。控制器中用於執行復原程序的控制邏輯在待機模式期間應用復原程序。
在此示例中,控制器可以在完成讀取或寫入程序之後開始處於空閒狀態(300)。從空閒狀態,控制器可以進入待機模式(301)。在待機模式期間,復原程序由積體電路上的控制邏輯而被自動建立。在此實施例中,復原程序識別復原操作區域,復原操作區域可以由儲存在如上所述之積體電路上的參數所識別。復原程序可以使用位址指標,位址指標識別在圖中標記為“資料塊(i)”之在所識別的記憶體的復原操作區域內的資料塊,以從記憶體陣列存取被選取資料塊和相應的錯誤更正碼。復原程序可以利用ECC邏輯來識別被選取資料塊中的錯誤位元位置(方塊302)。復原程序可以將錯誤位元位置的圖案載入到頁面緩衝器或其他儲存器中(303)。然後,復原程序可以將更正的資料寫入所識別的位置(304)。在寫入更正資料至當前資料塊之後,復原程序可以決定是否繼續到下一個資料塊(方塊305)。此決定可以基於儲存在積體電路中的復恢參數,例如標識在復原程序的當前樣本中要涵蓋的復原操作區域的範圍的參數、識別復原程序被允許執行復原程序之時間間隔的參數、或適合特定實現的其他參數。而且,此決定可以基於控制器是否已經從外部主機接收到執行另一操作的指令。
如果決定繼續復原程序,遞增索引“i”(306),並且程序循環回到方塊302以繼續直到完成復原程序的當前樣本。如果在方塊305決定
復原程序的當前樣本已完成,復原程序結束(307)。在復原程序結束後,控制器可以返回待機模式或其他適當的操作模式。
在第7圖的實施例中,復原程序可以在背景執行,並且可以幾乎在任何時間被中斷或停止,而不影響任務功能讀取和寫入記憶體的性能。再者,控制器可以維持識別記憶體區域的復原狀態的參數,並且隨時間涵蓋整個記憶體陣列。
第8A~8C圖繪示決定復原程序的復原操作區域的邏輯,此復原程序的執行方式例如參考第7圖所討論者。因此,第8A圖繪示記憶體陣列位址空間350A。積體電路上的控制器可以計算具有預定大小的復原操作區域352A,且起始於陣列350A的底部。控制器可以產生並維持復原指標355A,用於選擇當前的資料塊以存取復原程序,並在程序繼續時涵蓋復原操作區域。陣列的平衡是取消選擇的區域351A,不涉及復原程序的當前樣本。
第8B圖繪示記憶體陣列位址空間350B。積體電路上的控制器可以利用儲存在積體電路上的狀態參數來計算與復原操作區域352A不同並且與其相鄰的復原操作區域352B。在一些實施例中,第8B圖中的復原操作區域352B可以具有與第6A圖中的復原操作區域352A相同的大小。控制器可以產生並維持復原指標355B,用於選擇當前的資料塊以存取復原程序,並在程序繼續時涵蓋復原操作區域。陣列的平衡包括取消選擇區域351B和353B,不涉及復原程序的當前樣本。
第8C圖示記憶體陣列位址空間350C。積體電路上的控制器可以利用儲存在積體電路上的狀態參數來計算與復原操作區域352B不同並且
與其相鄰的復原操作區域352C。在一些實施例中,第8C圖中的復原操作區域352C可以具有與第6A圖中的復原操作區域352A相同的大小。控制器可以產生並維持復原指標355C,用於選擇當前的資料塊以存取復原程序,並隨著程序的繼續涵蓋復原操作區域。陣列的平衡包括取消選擇的區域351C和353C,不涉及復原程序的當前樣本。可以使用由控制器維持的參數隨時間將復原操作應用於整個陣列350C。
第9圖繪示實施例的復原程序,其中積體電路包括邏輯以用於執行開機程序以進入致能狀態,例如在斷電事件之後的待機模式。再者,在此實施例中,積體電路上的控制器被配置為在開機過程中進入致能狀態,例如待機模式。在進入外部主機之指令不被接受的致能狀態之前,控制器中用於執行復原程序的控制邏輯在致能狀態期間應用復原程序。
在此示例中,控制器可以起始於檢測到開機事件之時(400)。在開機程序中,控制器被致能以執行嵌入式復原程序並建立復原程序。此實施例中的復原程序識別復原操作區域,此復原操作區域可以由儲存在如上所述的積體電路上的參數所識別。復原程序可以使用位址指標,此位址指標識別在圖示中標記為“資料塊(i)”之在所識別的記憶體的復原操作區域內的資料塊,以從記憶體陣列存取被選取資料塊和相應的錯誤更正碼。復原程序可以利用ECC邏輯來識別所選擇的資料塊中的錯誤位元位置(方塊401)。復原程序可以將錯誤位元位置的圖案載入到頁面緩衝器或其他儲存器中(402)。然後,復原程序可以將更正的資料寫入所識別的位置(403)。在寫入更正資料至當前資料塊之後,復原程序可以決定是否繼續到下一個資料塊(方塊404)。此決定可以基於儲存在積體電路中的復恢參數,例如標識在
復原程序的當前樣本中要涵蓋的復原操作區域的範圍的參數、識別復原程序被允許執行復原程序之時間間隔的參數、或適合特定實現的其他參數。執行或適合特定實現的其他參數。在一個實施例中,回應於開機事件而執行的復原程序涵蓋整個記憶體陣列。在其他實施例中,它涵蓋記憶體陣列的指定部分。在其他實施例中,它以參考第8A~8C圖討論的方式涵蓋復原操作區域。
如果決定繼續復原程序,遞增索引“i”(405),並且程序循環回到方塊401以繼續直到完成復原程序的當前樣本。如果在方塊404確定復原程序的當前樣本已完成,控制器可進入待機模式或其他適當的操作模式(406)。當控制器進入待機模式時,完成復原程序(407)。
在第9圖的實施例中,復原程序可以在斷電事件之後且在利用記憶體的資料之前執行,如同前景操作,其可以增加在開機事件後主機所遇到的等待時間。然而,可以改善資料的狀況以增加任務函數讀取的可靠性。
本文描述之多個流程圖說明由記憶體裝置上的邏輯所執行的程序。此邏輯可以使用以電腦程式編程的處理器而被實現,電腦程式儲存在計算機系統可存取的記憶體中並由處理器、專用邏輯硬體(包括現場可編程積體電路)、及專用邏輯硬體和計算機程式的組合所執行。利用本文的所有流程圖,可以理解許多步驟可以組合、並行執行、或以不同順序執行而不影響所實現的功能。在一些情況下,如讀者所將理解的,只有在進行某些其他改變時,步驟的重新排列才能實現相同的結果。在其他情況下,如讀者所將理解的,僅當滿足某些條件時,步驟的重新排列將實現相同的
結果。再者,請理解本文的流程圖僅示出與理解本發明有關的步驟,並且請理解可以在所示出的那些內容之前、之後和之間執行用於實現其他功能的許多附加步驟。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧積體電路
101‧‧‧一般陣列
102‧‧‧ECC陣列
103、104‧‧‧感測放大器
105‧‧‧ECC邏輯
106‧‧‧更正多工器
107‧‧‧資料多工器
110‧‧‧線
112‧‧‧位址計數器
120‧‧‧頁面緩衝器
121‧‧‧字元線驅動器
122‧‧‧線
125‧‧‧控制器
126‧‧‧指令邏輯
128‧‧‧參數儲存記憶體
130‧‧‧輸入/輸出介面
Claims (19)
- 一種積體電路,包括:一記憶體陣列,被配置以儲存複數個資料塊(chunk),該些資料塊具有對應之錯誤更正碼;錯誤更正邏輯,使用該些錯誤更正碼處理從該記憶體陣列所接收的資料塊,以識別所接收之該些資料塊中的錯誤位置;控制邏輯,執行一復原程序,藉以從該記憶體陣列存取一被選取資料塊及對應的錯誤更正碼、使用該錯誤更正邏輯識別在該被選取資料塊之一錯誤位元的該記憶體陣列中的一位置、及存取所識別之該位置來寫入更正資料;以及一頁面緩衝器,該復原程序載入該頁面緩衝器的該錯誤位元位置以識別該被選取資料塊內該錯誤位元的該記憶體陣列內的該位置,及應用一寫入偏壓脈衝及一驗證周期以使用該頁面緩衝器寫入更正資料。
- 如申請專利範圍第1項所述之積體電路,包括一頁面緩衝器及寫入邏輯,該寫入邏輯耦接至該頁面緩衝器,使用該頁面緩衝器執行寫入及驗證程序以回應於用於儲存該記憶體陣列之資料塊的寫入指令。
- 如申請專利範圍第1項所述之積體電路,其中執行該復原程序的該控制邏輯包括邏輯以順序地應用該復原程序至複數個資料塊。
- 如申請專利範圍第1項所述之積體電路,其中執行該復原程序的該控制邏輯包括用以維持識別該記憶體中的一復原操作區域的一個或多個復原參數之邏輯,及順序地應用該復原程序至該復原操作區域內的複數個資料塊。
- 如申請專利範圍第1項所述之積體電路,其中該積體電路包括:一介面,以接收來自一外部主機的複數個指令;及用以回應於來自該外部主機至該記憶體陣列的一寫入操作區域之一指令而執行一寫入程序之邏輯,其中執行該復原程序的該控制邏輯係回應於該寫入程序的一當前樣本,以識別與該記憶體陣列之該寫入操作區域不同的一復原操作區域,及從該復原操作區域選擇用於該復原程序的該資料塊。
- 如申請專利範圍第5項所述之積體電路,其中該寫入程序之特徵在於一時間持續規範,該時間持續規範包括一多餘時間以用於該寫入程序的至少一些樣本,且該控制邏輯包括邏輯以在該時間持續規範內,回應於該當前樣本順序地應用該復原程序至該復原操作區域內的複數個資料塊。
- 如申請專利範圍第5項所述之積體電路,其中該寫入程序的樣本寫入具有不同尺寸之複數個區塊的資料,該復原操作區域的尺寸係該當前樣本之該區塊的尺寸的函數。
- 如申請專利範圍第1項所述之積體電路,其中該積體電路包括:一介面,以接收來自一外部主機的複數個指令;及用以回應於來自該外部主機之複數個指令而執行讀取及寫入程 序,並進入該些讀取及寫入程序之間的一待機模式之邏輯;其中執行該復原程序的該控制邏輯在該待機模式期間應用該復原程序。
- 如申請專利範圍第1項所述之積體電路,其中該積體電路包括用以在應用至該積體電路的電源中斷後執行一開機過程,從而進入一致能狀態之邏輯,其中在進入該致能狀態前,用以執行該復原程序的該控制邏輯應用該復原程序以作為該開機過程的一部分。
- 如申請專利範圍第1項所述之積體電路,其中該積體電路包括一介面以接收來自一外部主機的複數個指令,且其中該控制邏輯係回應於來自該外部主機的一復原操作指令以執行該復原程序。
- 一種用以操作一積體電路上的一記憶體的方法,該方法包括:儲存複數個資料塊與對應的錯誤更正碼於該記憶體中;以及執行一復原程序以從該記憶體存取一被選取資料塊及對應的錯誤更正碼,使用該積體電路上的錯誤更正邏輯來識別該被選取資料塊的一錯誤位元的該記憶體的一位置,以及存取該記憶體中所識別的該位置以寫入更正資料;其中該復原程序包括從該積體電路上的錯誤更正邏輯載入一頁面緩衝器中的該錯誤位元位置,以識別該被選取資料塊之該錯 誤位元的該記憶體的該位置,及應用一寫入偏壓脈衝及一驗證周期以使用該頁面緩衝器寫入更正資料。
- 如申請專利範圍第11項所述之方法,更包括順序地應用該復原程序至複數個資料塊。
- 如申請專利範圍第11項所述之方法,更包括維持識別該記憶體中的一復原操作區域之該積體電路上的一個或多個復原參數,及順序地應用該復原程序至該復原操作區域內的複數個資料塊。
- 如申請專利範圍第11項所述之方法,更包括回應於一外部主機至該記憶體之一寫入操作區域之一指令以執行一寫入程序之一當前樣本,且回應於該寫入程序之該當前樣本,識別與該記憶體之該寫入操作區域不同之一復原操作區域,並順序地應用該復原程序至該復原操作區域內的複數個資料塊。
- 如申請專利範圍第14項所述之方法,其中該寫入程序的特徵在於一時間持續規範,該時間持續規範包括一多餘時間以用於該寫入程序的至少一些樣本,及在該時間持續規範內,回應於該寫入程序的該當前樣本於該復原操作中順序地應用該復原程序至複數個資料塊。
- 如申請專利範圍第14項所述之方法,其中該寫入程序的複數個樣本寫入具有不同尺寸的複數個區塊的資料,且該復原操作區域的尺寸係該當前樣本之該區塊的尺寸的函數。
- 如申請專利範圍第11項所述之方法,其中該積體電路包括一介面,以接收來自一外部主機的複數個指令;及用以回應於來自該外部主機之複數個指令而執行讀取及寫入程序,並進入讀取及寫入程序之間的一待機模式之邏輯;其中該方法更包括在該待機模式期間應用該復原程序。
- 如申請專利範圍第11項所述之方法,其中該積體電路包括用以在應用至該積體電路的電源中斷後執行一開機過程,從而進入一致能狀態之邏輯,其中該方法更包括在進入該致能狀態前,應用該復原程序以作為該開機過程的一部分。
- 如申請專利範圍第11項所述之方法,更包括回應於來自一外部主機之一復原操作指令執行該復原程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/029,344 US10725862B2 (en) | 2018-07-06 | 2018-07-06 | Data recovery method to error correction code in memory |
US16/029,344 | 2018-07-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI681399B true TWI681399B (zh) | 2020-01-01 |
TW202006733A TW202006733A (zh) | 2020-02-01 |
Family
ID=69101413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107129507A TWI681399B (zh) | 2018-07-06 | 2018-08-23 | 積體電路及用以操作積體電路上的記憶體的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10725862B2 (zh) |
CN (1) | CN110688246B (zh) |
TW (1) | TWI681399B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115206406A (zh) * | 2021-04-12 | 2022-10-18 | 伊姆西Ip控股有限责任公司 | 管理独立磁盘冗余阵列的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200300258A (en) * | 2001-11-14 | 2003-05-16 | Monolithic System Tech Inc | Error correcting memory and method of operating same |
TW200639860A (en) * | 2005-05-04 | 2006-11-16 | Univ Nat Tsing Hua | Semiconductor memory and method of correcting errors for the same |
TW200731230A (en) * | 2006-02-10 | 2007-08-16 | Sunplus Technology Co Ltd | Error correction code decoder |
TW201442035A (zh) * | 2013-04-24 | 2014-11-01 | Ind Tech Res Inst | 混合式錯誤修復方法及其記憶體裝置 |
WO2016048495A1 (en) * | 2014-09-23 | 2016-03-31 | Intel Corporation | Recovery algorithm in non-volatile memory |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4726021A (en) * | 1985-04-17 | 1988-02-16 | Hitachi, Ltd. | Semiconductor memory having error correcting means |
SK273092A3 (en) * | 1991-09-17 | 1994-11-09 | Koninkl Philips Electronics Nv | Device for winning belt carriers of record, carrier of record and reproduction device |
JPH07261943A (ja) * | 1994-03-25 | 1995-10-13 | Hitachi Ltd | データのエラー訂正方法および装置 |
US6119261A (en) * | 1998-03-17 | 2000-09-12 | Quantum Corporation | Method for recovering data from disk with a dynamic erasure offset ECC data recovery protocol |
JP2003346433A (ja) * | 2002-05-29 | 2003-12-05 | Toshiba Corp | イレージャーポインターの機能を検証する方法及びそのための記録再生装置 |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
CN100449498C (zh) * | 2007-02-16 | 2009-01-07 | 沃华科技有限公司 | 数据储存装置 |
US8239732B2 (en) * | 2007-10-30 | 2012-08-07 | Spansion Llc | Error correction coding in flash memory devices |
US8854882B2 (en) * | 2010-01-27 | 2014-10-07 | Intelligent Intellectual Property Holdings 2 Llc | Configuring storage cells |
US8315092B2 (en) * | 2010-01-27 | 2012-11-20 | Fusion-Io, Inc. | Apparatus, system, and method for determining a read voltage threshold for solid-state storage media |
US8560925B2 (en) * | 2011-04-05 | 2013-10-15 | Denso International America, Inc. | System and method for handling bad bit errors |
JP5269151B2 (ja) * | 2011-06-09 | 2013-08-21 | シャープ株式会社 | 半導体記憶装置 |
JP2013218758A (ja) | 2012-04-06 | 2013-10-24 | Genusion:Kk | 不揮発性半導体記憶装置 |
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
KR101996004B1 (ko) * | 2012-05-29 | 2019-07-03 | 삼성전자주식회사 | 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템 |
CN103593252B (zh) * | 2012-08-14 | 2017-06-13 | 旺宏电子股份有限公司 | 具有动态错误侦测及更正的存储器 |
US8990655B2 (en) * | 2012-09-28 | 2015-03-24 | Intel Corporation | Techniques associated with error correction for encoded data |
KR102081588B1 (ko) * | 2013-08-08 | 2020-02-26 | 삼성전자 주식회사 | Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러 |
TWI527048B (zh) * | 2013-11-29 | 2016-03-21 | 慧榮科技股份有限公司 | 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器 |
US9514848B2 (en) * | 2014-04-03 | 2016-12-06 | Lite-On Electronics (Guangzhou) Limited | Solid state drive and associated error check and correction method |
KR102248267B1 (ko) | 2014-04-30 | 2021-05-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 및 읽기 방법들 |
KR102167609B1 (ko) | 2014-05-13 | 2020-10-20 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR102142590B1 (ko) | 2014-06-16 | 2020-08-07 | 삼성전자 주식회사 | 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법 |
US11403170B2 (en) * | 2014-08-05 | 2022-08-02 | Macronix International Co., Ltd. | Method and device for monitoring data error status in a memory |
US9396080B2 (en) * | 2014-08-07 | 2016-07-19 | Sandisk Technologies Llc | Storage module and method for analysis and disposition of dynamically tracked read error events |
US10353598B2 (en) | 2014-10-06 | 2019-07-16 | Sandisk Technologies Llc | System and method for refreshing data in a memory device |
US9519539B2 (en) * | 2014-10-24 | 2016-12-13 | Macronix International Co., Ltd. | Monitoring data error status in a memory |
US9773571B2 (en) | 2014-12-16 | 2017-09-26 | Macronix International Co., Ltd. | Memory repair redundancy with array cache redundancy |
KR102500616B1 (ko) * | 2016-02-26 | 2023-02-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20170114438A (ko) * | 2016-04-04 | 2017-10-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102636039B1 (ko) * | 2016-05-12 | 2024-02-14 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법 |
KR102456173B1 (ko) * | 2017-10-27 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2018
- 2018-07-06 US US16/029,344 patent/US10725862B2/en active Active
- 2018-08-23 TW TW107129507A patent/TWI681399B/zh active
- 2018-09-14 CN CN201811072778.8A patent/CN110688246B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200300258A (en) * | 2001-11-14 | 2003-05-16 | Monolithic System Tech Inc | Error correcting memory and method of operating same |
US20050044467A1 (en) * | 2001-11-14 | 2005-02-24 | Wingyu Leung | Transparent error correcting memory |
TW200639860A (en) * | 2005-05-04 | 2006-11-16 | Univ Nat Tsing Hua | Semiconductor memory and method of correcting errors for the same |
TW200731230A (en) * | 2006-02-10 | 2007-08-16 | Sunplus Technology Co Ltd | Error correction code decoder |
TW201442035A (zh) * | 2013-04-24 | 2014-11-01 | Ind Tech Res Inst | 混合式錯誤修復方法及其記憶體裝置 |
WO2016048495A1 (en) * | 2014-09-23 | 2016-03-31 | Intel Corporation | Recovery algorithm in non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
US20200012560A1 (en) | 2020-01-09 |
TW202006733A (zh) | 2020-02-01 |
CN110688246A (zh) | 2020-01-14 |
US10725862B2 (en) | 2020-07-28 |
CN110688246B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262266B2 (en) | Nonvolatile memory devices with age-based variability of read operations and methods of operating same | |
JP6081878B2 (ja) | 不揮発性メモリに関する保持ロジック | |
TWI482158B (zh) | 抑制快閃記憶體響應外部命令時漏電之方法與裝置 | |
KR20200076886A (ko) | 저장 장치 및 그 동작 방법 | |
KR20220013661A (ko) | 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 | |
US20230205688A1 (en) | Memory system, memory controller, and method for operating same | |
JP2022172270A (ja) | ファームウェアの状態に基づく自動パワーダウン | |
KR20210079549A (ko) | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 | |
US11500563B2 (en) | Memory system and operating method for testing target firmware by processing a plurality of test commands | |
TWI681399B (zh) | 積體電路及用以操作積體電路上的記憶體的方法 | |
CN114253465A (zh) | 存储器系统及其操作方法 | |
KR20220020731A (ko) | 메모리 장치 및 그 동작 방법 | |
US10599562B2 (en) | Nonvolatile memory device configured to be accessed without block address and method of operating the same | |
US11848054B2 (en) | Memory device determining precharge time based on a number of times that a program voltage is applied to word line and operating method of memory device | |
US10991432B2 (en) | Storage device and method of operating the same | |
US11495319B2 (en) | Memory system, memory controller, and method for operating memory system performing integrity check operation on target code when voltage drop is detected | |
US11656790B2 (en) | Memory system, memory controller, and operation method of memory system | |
US20230195367A1 (en) | Memory system, memory controller, and operation method of memory system | |
US11704050B2 (en) | Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks | |
US11640263B2 (en) | Memory system and operating method thereof | |
US11507323B2 (en) | Memory device and operating method thereof | |
US20210191653A1 (en) | Memory system, memory controller, and method of operating memory system | |
KR20230169733A (ko) | 메모리 장치 동작 방법 | |
KR20210054188A (ko) | 메모리 시스템 및 메모리 컨트롤러 |