TWI648739B - 記憶體管理方法與儲存控制器 - Google Patents
記憶體管理方法與儲存控制器 Download PDFInfo
- Publication number
- TWI648739B TWI648739B TW107109486A TW107109486A TWI648739B TW I648739 B TWI648739 B TW I648739B TW 107109486 A TW107109486 A TW 107109486A TW 107109486 A TW107109486 A TW 107109486A TW I648739 B TWI648739 B TW I648739B
- Authority
- TW
- Taiwan
- Prior art keywords
- line group
- character line
- group
- storage controller
- memory cell
- Prior art date
Links
Classifications
-
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本發明提出一種記憶體管理方法與儲存控制器。一種記憶體管理方法包括:將第一區塊的多個字元線分成多個字元線群組,並為每一字元線群組記錄一特徵值;當讀取第一字元線群組時,累加第二字元線群組及第三字元線群組的特徵值,其中第二字元線群組及第三字元線群組直接相鄰於第一字元線群組;以及當第二字元線群組的特徵值大於第一門檻值時,以第一最佳讀取電壓組來讀取第二字元線群組,其中第一最佳讀取電壓組與對應第二字元線群組的預設讀取電壓組不同。
Description
本發明是有關於一種記憶體管理方法與儲存控制器,且特別是有關於一種能減少讀取擾動(read disturb)錯誤的記憶體管理方法與儲存控制器。
在反及閘快閃記憶體(NAND flash)中,存在讀取擾動的效應。簡單來說,從一個反及閘快閃記憶體陣列的電路圖可看出,即使只有讀取某一個頁面,在與此讀取頁面處於同一條電壓線連接的相鄰頁面都會被干擾。在累積一定數量的讀取次數之後,會開始產生無法藉由錯誤修正碼來進行修正的錯誤。
為了解決讀取擾動的問題,一般會記錄區塊的讀取計數值(counter)並當區塊的讀取計數值大於預先決定值時將此區塊的資料搬移到其他區塊。這會造成過多的區塊資料搬移操作。因此,如何更有效率地解決讀取擾動的問題,是本領域技術人員應該致力的目標。
本發明提供一種記憶體管理方法與儲存控制器,能夠更有效率地解決讀取擾動的問題並減少讀取擾動錯誤。
本發明提出一種一種記憶體管理方法,適用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置。儲存裝置藉由儲存控制器來控制。可複寫式非揮發性記憶體模組包括多個區塊。每一區塊包括多個字元線。每一字元線由多個記憶胞構成。上述區塊包括第一區塊。記憶體管理方法包括:藉由儲存控制器將第一區塊的字元線分成多個字元線群組,並為每一字元線群組記錄特徵值。當儲存控制器讀取字元線群組中的第一字元線群組時,儲存控制器累加字元線群組中的第二字元線群組及第三字元線群組的特徵值,其中第二字元線群組及第三字元線群組直接相鄰於第一字元線群組。當第二字元線群組的特徵值大於第一門檻值時,儲存控制器指示以第一最佳讀取電壓組來讀取第二字元線群組,其中第一最佳讀取電壓組與對應第二字元線群組的預設讀取電壓組不同。
本發明提出一種一種儲存控制器,適用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置。可複寫式非揮發性記憶體模組包括多個區塊。每一區塊包括多個字元線。每一字元線由多個記憶胞構成。上述區塊包括第一區塊。儲存控制器包括:連接介面電路,耦接到主機系統;記憶體介面控制電路,耦接到可複寫式非揮發性記憶體模組;以及處理器,耦接到連接介面電路及記憶體介面控制電路。其中處理器將第一區塊的字元線分成多個字元線群組,並為每一字元線群組記錄特徵值。當處理器讀取字元線群組中的第一字元線群組時,處理器累加字元線群組中的第二字元線群組及第三字元線群組的特徵值,其中第二字元線群組及第三字元線群組直接相鄰於第一字元線群組。當第二字元線群組的特徵值大於第一門檻值時,處理器指示以第一最佳讀取電壓組來讀取第二字元線群組,其中第一最佳讀取電壓組與對應第二字元線群組的預設讀取電壓組不同。
基於上述,本發明的記憶體管理方法與儲存控制器會將一個區塊的字元線分成多個字元線群組並為每個字元線群組記錄一個特徵值。當其中一個字元線群組被讀取時,與被讀取的字元線群組直接相鄰的字元線群組的特徵值會被壘加。當一個字元線群組的特徵值大於門檻值時,則儲存控制器會指示以與預設讀取電壓組不同的最佳讀取電壓組來讀取特徵值大於門檻值的字元線群組,以減少讀取擾動產生的錯誤。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與儲存裝置控制器(亦稱,儲存控制器或儲存控制電路)。此外,儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至儲存裝置或從儲存裝置中讀取資料。
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。
請參照圖1,主機系統(Host System)10包括處理器(Processor)110、主機記憶體(Host Memory)120及資料傳輸介面電路(Data Transfer Interface Circuit)130。在本實施例中,資料傳輸介面電路130耦接(亦稱,電性連接)至處理器110與主機記憶體120。在另一實施例中,處理器110、主機記憶體120與資料傳輸介面電路130之間利用系統匯流排(System Bus)彼此耦接。
儲存裝置20包括儲存控制器(Storage Controller)210、可複寫式非揮發性記憶體模組(Rewritable Non-Volatile Memory Module)220及連接介面電路(Connection Interface Circuit)230。其中,儲存控制器210包括處理器211、資料管理電路(Data Transfer Management Circuit)212與記憶體介面控制電路(Memory Interface Control Circuit)213。
在本實施例中,主機系統10是透過資料傳輸介面電路130與儲存裝置20的連接介面電路230耦接至儲存裝置20來進行資料的存取操作。例如,主機系統10可經由資料傳輸介面電路130將資料儲存至儲存裝置20或從儲存裝置20中讀取資料。
在本實施例中,處理器110、主機記憶體120及資料傳輸介面電路130可設置在主機系統10的主機板上。資料傳輸介面電路130的數目可以是一或多個。透過資料傳輸介面電路130,主機板可以經由有線或無線方式耦接至儲存裝置20。儲存裝置20可例如是隨身碟、記憶卡、固態硬碟(Solid State Drive,SSD)或無線記憶體儲存裝置。無線記憶體儲存裝置可例如是近距離無線通訊(Near Field Communication,NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板也可以透過系統匯流排耦接至全球定位系統(Global Positioning System,GPS)模組、網路介面卡、無線傳輸裝置、鍵盤、螢幕、喇叭等各式I/O裝置。
在本實施例中,資料傳輸介面電路130與連接介面電路230是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準的介面電路。並且,資料傳輸介面電路130與連接介面電路230之間是利用快速非揮發性記憶體介面標準(Non-Volatile Memory express,NVMe)通訊協定來進行資料的傳輸。
然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路130與連接介面電路230亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、SD介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。此外,在另一實施例中,連接介面電路230可與儲存控制器210封裝在一個晶片中,或者連接介面電路230是佈設於一包含儲存控制器210之晶片外。
在本實施例中,主機記憶體120用以暫存處理器110所執行的指令或資料。例如,在本範例實施例中,主機記憶體120可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體120也可以是其他適合的記憶體。
儲存控制器210用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統10的指令在可複寫式非揮發性記憶體模組220中進行資料的寫入、讀取與抹除等運作。
更詳細來說,儲存控制器210中的處理器211為具備運算能力的硬體,其用以控制儲存控制器210的整體運作。具體來說,處理器211具有多個控制指令,並且在儲存裝置20運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
值得一提的是,在本實施例中,處理器110與處理器211例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似電路元件,本發明並不限於此。
在一實施例中,儲存控制器210還具有唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當儲存控制器210被致能時,處理器211會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組220中之控制指令載入至儲存控制器210的隨機存取記憶體中。之後,處理器211會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。在另一實施例中,處理器211的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組220的特定區域,例如,可複寫式非揮發性記憶體模組220中專用於存放系統資料的實體儲存單元中。
在本實施例中,如上所述,儲存控制器210還包括資料管理電路212與記憶體介面控制電路213。應注意的是,儲存控制器220各部件所執行的操作亦可視為儲存控制器220所執行的操作。
其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的一或多個實體單元中讀取資料(資料可讀取自一或多個實體單元中的一或多個記憶胞),並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。
記憶體介面控制電路213用以接受處理器211的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。
舉例來說,處理器211可執行寫入指令序列(或處理器211指示資料管理電路212發送寫入指令序列至記憶體介面控制電路213),以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列(或處理器211指示資料管理電路212發送讀取指令序列至記憶體介面控制電路213),以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元(亦稱,目標實體單元)中讀取資料;處理器211可執行抹除指令序列(或處理器211指示資料管理電路212發送抹除指令序列至記憶體介面控制電路213),以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變預設讀取電壓組的多個預設讀取電壓值以進行讀取操作,或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
可複寫式非揮發性記憶體模組220是耦接至儲存控制器210(記憶體介面控制電路213)並且用以儲存主機系統10所寫入之資料。可複寫式非揮發性記憶體模組220可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。
儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。在本實施例中,是以記憶胞作為寫入(程式化)資料的最小單位。實體單元(實體區塊)為抹除之最小單位,即,每一實體區塊含有最小數目之一併被抹除之記憶胞。
在本實施例中,可複寫式非揮發性記憶體模組220的多個記憶胞會構成多個字元線,並且此些字元線會構成多個實體區塊(亦稱,實體抹除單元或實體單元)。具體來說,同一條字元線上的記憶胞可劃分為一或多個實體程式化單元。如此一來,可複寫式非揮發性記憶體模組220的多個記憶胞便可構成多個實體區塊(實體單元)。
圖2是根據本發明的一實施例所繪示的三維的實體區塊的多個字元線的示意圖。請參照圖2,舉例來說,假設可複寫式非揮發性記憶體模組220的實體區塊B1具有多個由多個記憶胞所構成的256個字元線(例如,W1到W256),並且每4個字元線會分組為一個堆疊層。即,實體區塊B1具有64個堆疊層(例如,L1到L64)。由於在記憶體製程的形成實體區塊B1的過程中,會在實體區塊B1本身的有限空間中置入多個字元線。因此,當其中一個堆疊層的字元線被重覆讀取時會造成直接相鄰的堆疊層的字元線上的錯誤位元大幅增加。雖然圖2是以一個堆疊層具有四個字元線為例,但本發明並不以此為限。在其他實施例中,實體區塊的一個堆疊層也可具有其他不同數量的字元線。
在圖2的範例中,不同堆疊層上在XY平面具有相同位置的記憶胞可藉由一條位元線彼此連接。舉例來說,字元線W1、W5、W9、…、W249及W253的第一個記憶胞(或第N個記憶胞)可藉由一條位元線(bitline)彼此連接。因此,字元線W5上的第一個記憶胞會在位元線上直接相鄰字元線W1上的第一個記憶胞與字元線W9上的第一個記憶胞。
表一為根據本發明一實施例的實體區塊中的字元線的結構的範例。
[表一]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 堆疊層 </td><td> 字元線 </td></tr><tr><td> 0 </td><td> 0 </td><td> 1 </td><td> 2 </td><td> 3 </td><td> 4 </td><td> 5 </td><td> 6 </td><td> 7 </td><td> 8 </td><td> 9 </td><td> 10 </td><td> 11 </td></tr><tr><td> 1 </td><td> 12 </td><td> 13 </td><td> 14 </td><td> 15 </td><td> 16 </td><td> 17 </td><td> 18 </td><td> 19 </td><td> 20 </td><td> 21 </td><td> 22 </td><td> 23 </td></tr><tr><td> 2 </td><td> 24 </td><td> 25 </td><td> 26 </td><td> 27 </td><td> 28 </td><td> 29 </td><td> 30 </td><td> 31 </td><td> 32 </td><td> 33 </td><td> 34 </td><td> 35 </td></tr><tr><td> 3 </td><td> 36 </td><td> 37 </td><td> 38 </td><td> 39 </td><td> 40 </td><td> 41 </td><td> 42 </td><td> 43 </td><td> 44 </td><td> 45 </td><td> 46 </td><td> 47 </td></tr><tr><td> 4 </td><td> 48 </td><td> 49 </td><td> 50 </td><td> 51 </td><td> 52 </td><td> 53 </td><td> 54 </td><td> 55 </td><td> 56 </td><td> 57 </td><td> 58 </td><td> 59 </td></tr><tr><td> 5 </td><td> 60 </td><td> 61 </td><td> 62 </td><td> 63 </td><td> 64 </td><td> 65 </td><td> 66 </td><td> 67 </td><td> 68 </td><td> 69 </td><td> 70 </td><td> 71 </td></tr><tr><td> 6 </td><td> 72 </td><td> 73 </td><td> 74 </td><td> 75 </td><td> 76 </td><td> 77 </td><td> 78 </td><td> 79 </td><td> 80 </td><td> 81 </td><td> 82 </td><td> 83 </td></tr><tr><td> 7 </td><td> 84 </td><td> 85 </td><td> 86 </td><td> 87 </td><td> 88 </td><td> 89 </td><td> 90 </td><td> 91 </td><td> 92 </td><td> 93 </td><td> 94 </td><td> 95 </td></tr><tr><td> 8 </td><td> 96 </td><td> 97 </td><td> 98 </td><td> 99 </td><td> 100 </td><td> 101 </td><td> 102 </td><td> 103 </td><td> 104 </td><td> 105 </td><td> 106 </td><td> 107 </td></tr><tr><td> 9 </td><td> 108 </td><td> 109 </td><td> 110 </td><td> 111 </td><td> 112 </td><td> 113 </td><td> 114 </td><td> 115 </td><td> 116 </td><td> 117 </td><td> 118 </td><td> 119 </td></tr><tr><td> 10 </td><td> 120 </td><td> 121 </td><td> 122 </td><td> 123 </td><td> 124 </td><td> 125 </td><td> 126 </td><td> 127 </td><td> 128 </td><td> 129 </td><td> 130 </td><td> 131 </td></tr><tr><td> 11 </td><td> 132 </td><td> 133 </td><td> 134 </td><td> 135 </td><td> 136 </td><td> 137 </td><td> 138 </td><td> 139 </td><td> 140 </td><td> 141 </td><td> 142 </td><td> 143 </td></tr><tr><td> 12 </td><td> 144 </td><td> 145 </td><td> 146 </td><td> 147 </td><td> 148 </td><td> 149 </td><td> 150 </td><td> 151 </td><td> 152 </td><td> 153 </td><td> 154 </td><td> 155 </td></tr><tr><td> 13 </td><td> 156 </td><td> 157 </td><td> 158 </td><td> 159 </td><td> 160 </td><td> 161 </td><td> 162 </td><td> 163 </td><td> 164 </td><td> 165 </td><td> 166 </td><td> 167 </td></tr><tr><td> 14 </td><td> 168 </td><td> 169 </td><td> 170 </td><td> 171 </td><td> 172 </td><td> 173 </td><td> 174 </td><td> 175 </td><td> 176 </td><td> 177 </td><td> 178 </td><td> 179 </td></tr><tr><td> 15 </td><td> 180 </td><td> 181 </td><td> 182 </td><td> 183 </td><td> 184 </td><td> 185 </td><td> 186 </td><td> 187 </td><td> 188 </td><td> 189 </td><td> 190 </td><td> 191 </td></tr><tr><td> 16 </td><td> 192 </td><td> 193 </td><td> 194 </td><td> 195 </td><td> 196 </td><td> 197 </td><td> 198 </td><td> 199 </td><td> 200 </td><td> 201 </td><td> 202 </td><td> 203 </td></tr><tr><td> 17 </td><td> 204 </td><td> 205 </td><td> 206 </td><td> 207 </td><td> 208 </td><td> 209 </td><td> 210 </td><td> 211 </td><td> 212 </td><td> 213 </td><td> 214 </td><td> 215 </td></tr><tr><td> 18 </td><td> 216 </td><td> 217 </td><td> 218 </td><td> 219 </td><td> 220 </td><td> 221 </td><td> 222 </td><td> 223 </td><td> 224 </td><td> 225 </td><td> 226 </td><td> 227 </td></tr><tr><td> 19 </td><td> 228 </td><td> 229 </td><td> 230 </td><td> 231 </td><td> 232 </td><td> 233 </td><td> 234 </td><td> 235 </td><td> 236 </td><td> 237 </td><td> 238 </td><td> 239 </td></tr><tr><td> 20 </td><td> 240 </td><td> 241 </td><td> 242 </td><td> 243 </td><td> 244 </td><td> 245 </td><td> 246 </td><td> 247 </td><td> 248 </td><td> 249 </td><td> 250 </td><td> 251 </td></tr><tr><td> 21 </td><td> 252 </td><td> 253 </td><td> 254 </td><td> 255 </td><td> 256 </td><td> 257 </td><td> 258 </td><td> 259 </td><td> 260 </td><td> 261 </td><td> 262 </td><td> 263 </td></tr><tr><td> 22 </td><td> 264 </td><td> 265 </td><td> 266 </td><td> 267 </td><td> 268 </td><td> 269 </td><td> 270 </td><td> 271 </td><td> 272 </td><td> 273 </td><td> 274 </td><td> 275 </td></tr><tr><td> 23 </td><td> 276 </td><td> 277 </td><td> 278 </td><td> 279 </td><td> 280 </td><td> 281 </td><td> 282 </td><td> 283 </td><td> 284 </td><td> 285 </td><td> 286 </td><td> 287 </td></tr><tr><td> 24 </td><td> 288 </td><td> 289 </td><td> 290 </td><td> 291 </td><td> 292 </td><td> 293 </td><td> 294 </td><td> 295 </td><td> 296 </td><td> 297 </td><td> 298 </td><td> 299 </td></tr><tr><td> 25 </td><td> 300 </td><td> 301 </td><td> 302 </td><td> 303 </td><td> 304 </td><td> 305 </td><td> 306 </td><td> 307 </td><td> 308 </td><td> 309 </td><td> 310 </td><td> 311 </td></tr><tr><td> 26 </td><td> 312 </td><td> 313 </td><td> 314 </td><td> 315 </td><td> 316 </td><td> 317 </td><td> 318 </td><td> 319 </td><td> 320 </td><td> 321 </td><td> 322 </td><td> 323 </td></tr><tr><td> 27 </td><td> 324 </td><td> 325 </td><td> 326 </td><td> 327 </td><td> 328 </td><td> 329 </td><td> 330 </td><td> 331 </td><td> 332 </td><td> 333 </td><td> 334 </td><td> 335 </td></tr><tr><td> 28 </td><td> 336 </td><td> 337 </td><td> 338 </td><td> 339 </td><td> 340 </td><td> 341 </td><td> 342 </td><td> 343 </td><td> 344 </td><td> 345 </td><td> 346 </td><td> 347 </td></tr><tr><td> 29 </td><td> 348 </td><td> 349 </td><td> 350 </td><td> 351 </td><td> 352 </td><td> 353 </td><td> 354 </td><td> 355 </td><td> 356 </td><td> 357 </td><td> 358 </td><td> 359 </td></tr></TBODY></TABLE>
在表一中,實體區塊具有0到29共30個堆疊層。每個堆疊層具有12個字元線。
表二為根據本發明一實施例在表一結構中讀取特定字元線而產生讀取擾動的範例。
[表二]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 堆疊層 </td><td> 字元線 </td><td> 下頁面 </td><td> 中頁面 </td><td> 上頁面 </td><td> 字元線 </td><td> 下頁面 </td><td> 中頁面 </td><td> 上頁面 </td><td> 字元線 </td><td> 下頁面 </td><td> 中頁面 </td><td> 上頁面 </td><td> 字元線 </td><td> 下頁面 </td><td> 中頁面 </td><td> 上頁面 </td></tr><tr><td> 23 </td><td> 276 </td><td> 2 </td><td> 9 </td><td> 9 </td><td> 277 </td><td> 1 </td><td> 4 </td><td> 9 </td><td> 278 </td><td> 3 </td><td> 7 </td><td> 11 </td><td> 279 </td><td> 4 </td><td> 7 </td><td> 10 </td></tr><tr><td> 23 </td><td> 280 </td><td> 2 </td><td> 9 </td><td> 14 </td><td> 281 </td><td> 3 </td><td> 10 </td><td> 11 </td><td> 282 </td><td> 2 </td><td> 8 </td><td> 10 </td><td> 283 </td><td> 1 </td><td> 10 </td><td> 11 </td></tr><tr><td> 23 </td><td> 284 </td><td> 3 </td><td> 6 </td><td> 12 </td><td> 285 </td><td> 2 </td><td> 6 </td><td> 13 </td><td> 286 </td><td> 1 </td><td> 13 </td><td> 9 </td><td> 287 </td><td> 3 </td><td> 9 </td><td> 11 </td></tr><tr><td> 24 </td><td> 288 </td><td> 7 </td><td> 45 </td><td> 117 </td><td> 289 </td><td> 5 </td><td> 51 </td><td> 146 </td><td> 290 </td><td> 8 </td><td> 70 </td><td> 142 </td><td> 291 </td><td> 4 </td><td> 49 </td><td> 165 </td></tr><tr><td> 24 </td><td> 292 </td><td> 6 </td><td> 55 </td><td> 142 </td><td> 293 </td><td> 5 </td><td> 67 </td><td> 131 </td><td> 294 </td><td> 3 </td><td> 58 </td><td> 138 </td><td> 295 </td><td> 4 </td><td> 45 </td><td> 137 </td></tr><tr><td> 24 </td><td> 296 </td><td> 6 </td><td> 52 </td><td> 136 </td><td> 297 </td><td> 5 </td><td> 70 </td><td> 158 </td><td> 298 </td><td> 8 </td><td> 67 </td><td> 154 </td><td> 299 </td><td> 9 </td><td> 57 </td><td> 137 </td></tr><tr><td> 25 </td><td> 300 </td><td> 3 </td><td> 5 </td><td> 9 </td><td> 301 </td><td> 2 </td><td> 7 </td><td> 5 </td><td> 302 </td><td> 2 </td><td> 6 </td><td> 7 </td><td> 303 </td><td> 1 </td><td> 5 </td><td> 7 </td></tr><tr><td> 25 </td><td> 304 </td><td> 2 </td><td> 4 </td><td> 8 </td><td> 305 </td><td> 4 </td><td> 8 </td><td> 7 </td><td> 306 </td><td> 4 </td><td> 6 </td><td> 7 </td><td> 307 </td><td> 3 </td><td> 12 </td><td> 6 </td></tr><tr><td> 25 </td><td> 308 </td><td> 2 </td><td> 5 </td><td> 5 </td><td> 309 </td><td> 3 </td><td> 6 </td><td> 4 </td><td> 310 </td><td> 1 </td><td> 6 </td><td> 3 </td><td> 311 </td><td> 1 </td><td> 6 </td><td> 6 </td></tr><tr><td> 26 </td><td> 312 </td><td> 5 </td><td> 47 </td><td> 121 </td><td> 313 </td><td> 9 </td><td> 41 </td><td> 129 </td><td> 314 </td><td> 5 </td><td> 60 </td><td> 119 </td><td> 315 </td><td> 7 </td><td> 48 </td><td> 141 </td></tr><tr><td> 26 </td><td> 316 </td><td> 2 </td><td> 47 </td><td> 123 </td><td> 317 </td><td> 5 </td><td> 40 </td><td> 128 </td><td> 318 </td><td> 8 </td><td> 45 </td><td> 126 </td><td> 319 </td><td> 7 </td><td> 50 </td><td> 122 </td></tr><tr><td> 26 </td><td> 320 </td><td> 3 </td><td> 59 </td><td> 126 </td><td> 321 </td><td> 6 </td><td> 63 </td><td> 134 </td><td> 322 </td><td> 6 </td><td> 58 </td><td> 136 </td><td> 323 </td><td> 7 </td><td> 36 </td><td> 82 </td></tr><tr><td> 27 </td><td> 324 </td><td> 4 </td><td> 9 </td><td> 11 </td><td> 325 </td><td> 1 </td><td> 12 </td><td> 12 </td><td> 326 </td><td> 3 </td><td> 7 </td><td> 11 </td><td> 327 </td><td> 5 </td><td> 9 </td><td> 15 </td></tr><tr><td> 27 </td><td> 328 </td><td> 5 </td><td> 8 </td><td> 11 </td><td> 329 </td><td> 2 </td><td> 7 </td><td> 13 </td><td> 330 </td><td> 2 </td><td> 10 </td><td> 11 </td><td> 331 </td><td> 3 </td><td> 7 </td><td> 14 </td></tr><tr><td> 27 </td><td> 332 </td><td> 3 </td><td> 7 </td><td> 11 </td><td> 333 </td><td> 2 </td><td> 6 </td><td> 11 </td><td> 334 </td><td> 3 </td><td> 13 </td><td> 10 </td><td> 335 </td><td> 3 </td><td> 9 </td><td> 8 </td></tr></TBODY></TABLE>
在表二中,顯示了TLC NAND型快閃記憶體模組的實體區塊,因此一個字元線會包括下頁面、中頁面及上頁面等三個頁面。在表二中,下頁面、中頁面及上頁面欄位中的數字代表了錯誤位元數。表二的實施例模擬了對堆疊層25進行三百萬次的頁面讀取操作,並且記錄堆疊層25及其他堆疊層的錯誤位元數。從表二可顯示出堆疊層25及堆疊層23、27的錯誤位元數都相當低,但與堆疊層25直接相鄰的堆疊層24、26則會有較高的錯誤位元數。特別是,堆疊層24、26的上頁面都會有100以上的錯誤位元數。由表二可得知,在對堆疊層25的字元線300到311(或稱為字元線群組)進行多次讀取之後,堆疊層25與堆疊層23、27的錯誤位元數並不會明顯升高,但與堆疊層25直接相鄰的堆疊層24、26的錯誤位元數會明顯升高。這代表了對特定堆疊層進行多次讀取操作只會讓與特定堆疊層直接相鄰的堆疊層的錯誤位元數明顯升高,而不會讓特定堆疊層的錯誤位元數明顯升高。
表三為根據本發明一實施例的字元線群組讀取計數、錯誤位元數及對字元線群組施加的電壓組的關係。
[表三]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 字元線群組 </td><td> 字元線0 </td><td> … </td><td> … </td><td> 字元線X </td><td> 字元線群組讀取計數 </td><td> 錯誤位元數 (V0) </td><td> 電壓組 </td></tr><tr><td> 0 </td><td> 讀取計數低並平均分配 </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 1 </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 2 </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 3 </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 4 </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 5 </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 6 </td><td> 低 </td><td> 低 </td><td> V0 </td></tr></TBODY></TABLE>
在表三中,顯示了對所有字元線群組平均讀取且總讀取計數為低的範例。當所有字元線群組的讀取計數都為「低」時,所有字元線群組的錯誤位元數也都為「低」。因此只需要對所有字元線群組施加預設讀取電壓組V0來進行後續的讀取操作。值得注意的是,預設電壓組V0所包括的電壓數量可根據可複寫式非揮發性記憶體模組220的類型而有所不同。當可複寫式非揮發性記憶體模組220為TLC NAND型快閃記憶體時,預設電壓組V0可包括七個不同電壓以辨識一個記憶胞中的三個位元。當可複寫式非揮發性記憶體模組220為MLC NAND型快閃記憶體時,預設電壓組V0可包括三個不同電壓以辨識一個記憶胞中的兩個位元。
表四為根據本發明另一實施例的字元線群組讀取計數、錯誤位元數及對字元線群組施加的電壓組的關係。
[表四]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 字元線群組 </td><td> 字元線0 </td><td> … </td><td> … </td><td> 字元線X </td><td> 字元線群組讀取計數 </td><td> 錯誤位元數 (V0) </td><td> 電壓組 </td></tr><tr><td> 0 </td><td> 讀取計數高並平均分配 </td><td> 中 </td><td> 中 </td><td> V1 </td></tr><tr><td> 1 </td><td> 中 </td><td> 中 </td><td> V1 </td></tr><tr><td> 2 </td><td> 中 </td><td> 中 </td><td> V1 </td></tr><tr><td> 3 </td><td> 中 </td><td> 中 </td><td> V1 </td></tr><tr><td> 4 </td><td> 中 </td><td> 中 </td><td> V1 </td></tr><tr><td> 5 </td><td> 中 </td><td> 中 </td><td> V1 </td></tr><tr><td> 6 </td><td> 中 </td><td> 中 </td><td> V1 </td></tr></TBODY></TABLE>
在表四中,顯示了對所有字元線群組平均讀取且總讀取計數為高的範例。假設在表四中是對區塊進行七百萬次讀取且七百萬次讀取是平均分散在字元線群組0到6中。由於七百萬次讀取平均分散,因此所有字元線群組的讀取計數都為「中」,且施加電壓組V0產生的錯誤位元數也為「中」。這時處理器211會指示施加最佳電壓組V1來進行後續的讀取操作,以減少錯誤位元數。
表五為根據本發明另一實施例的字元線群組讀取計數、錯誤位元數及對字元線群組施加的電壓組的關係。
[表五]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 字元線群組 </td><td> 字元線0 </td><td> … </td><td> … </td><td> 字元線X </td><td> 字元線群組讀取計數 </td><td> 錯誤位元數 (V0) </td><td> 電壓組 </td></tr><tr><td> 0 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 1 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 2 </td><td> 受到字元線群組3的讀取擾動 </td><td> 低 </td><td> 高 </td><td> V2 </td></tr><tr><td> 3 </td><td> 讀取計數高並集中於字元線群組3 </td><td> 高 </td><td> 低 </td><td> V0 </td></tr><tr><td> 4 </td><td> 受到字元線群組3的讀取擾動 </td><td> 低 </td><td> 高 </td><td> V2 </td></tr><tr><td> 5 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 6 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td></tr></TBODY></TABLE>
在表五中,顯示了對單一字元線群組3進行讀取且總讀取計數為高的範例。假設在表五中是對字元線群組3進行七百萬次讀取,則字元線群組3的讀取計數為「高」但錯誤位元數為「低」。然而,雖然字元線群組2、4的讀取計數為「低」但因為字元線群組2、4是直接相鄰於字元線群組3,字元線群組2、4的錯誤位元數會是「高」。這時處理器211會指示施加最佳電壓組V2到字元線群組2、4來進行後續的讀取操作,以減少錯誤位元數。
表六為根據本發明另一實施例的字元線群組讀取計數、錯誤位元數及對字元線群組施加的電壓組的關係。
[表六]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 字元線群組 </td><td> 字元線0 </td><td> … </td><td> … </td><td> 字元線X </td><td> 字元線群組讀取計數 </td><td> 錯誤位元數 (V0) </td><td> 電壓組 </td></tr><tr><td> 0 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 1 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td></tr><tr><td> 2 </td><td> 受到字元線群組3的讀取擾動 </td><td> 低 </td><td> 高 </td><td> V3 </td></tr><tr><td> 3 </td><td> 讀取計數高並集中於字元線群組3 (同時受到字元線群組4的讀取擾動) </td><td> 高 </td><td> 高 </td><td> V3 </td></tr><tr><td> 4 </td><td> 讀取計數高並集中於字元線群組4 ((同時受到字元線群組3的讀取擾動)) </td><td> 高 </td><td> 高 </td><td> V3 </td></tr><tr><td> 5 </td><td> 受到字元線群組4的讀取擾動 </td><td> 低 </td><td> 高 </td><td> V3 </td></tr><tr><td> 6 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td></tr></TBODY></TABLE>
在表六中,顯示了對兩個字元線群組3、4進行讀取且總讀取計數為高的範例。假設在表六中是對字元線群組3、4分別進行七百萬次讀取,則字元線群組3、4的讀取計數為「高」。由於字元線群組2、4會受到字元線群組3的讀取擾動,且字元線群組3、5會受到字元線群組4的讀取擾動,因此字元線群組2、3、4、5的錯誤位元數都會是「高」。這時處理器211會指示施加最佳電壓組V3到字元線群組2、3、4、5來進行後續的讀取操作,以減少錯誤位元數。
表七為根據本發明另一實施例的字元線群組讀取計數、錯誤位元數及對字元線群組施加的電壓組的關係。
[表七]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 字元線群組 </td><td> 字元線0 </td><td> … </td><td> … </td><td> 字元線X </td><td> 字元線群組讀取計數 </td><td> 錯誤位元數 (V0) </td><td> 電壓組 </td><td> 讀取群組3 </td><td> 讀取群組4 </td><td> 總錯誤位元數 </td></tr><tr><td> 0 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td><td> </td><td> </td><td> </td></tr><tr><td> 1 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td><td> </td><td> </td><td> </td></tr><tr><td> 2 </td><td> 受到字元線群組3的讀取擾動 </td><td> 低 </td><td> 高 </td><td> V3 </td><td> E </td><td> </td><td> E </td></tr><tr><td> 3 </td><td> 讀取計數高並集中於字元線群組3 (同時受到字元線群組4的讀取擾動) </td><td> 高 </td><td> 高 </td><td> V3 </td><td> R </td><td> E </td><td> E </td></tr><tr><td> 4 </td><td> 讀取計數高並集中於字元線群組4 ((同時受到字元線群組3的讀取擾動)) </td><td> 高 </td><td> 高 </td><td> V3 </td><td> E </td><td> R </td><td> E </td></tr><tr><td> 5 </td><td> 受到字元線群組4的讀取擾動 </td><td> 低 </td><td> 高 </td><td> V3 </td><td> </td><td> E </td><td> E </td></tr><tr><td> 6 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td><td> </td><td> </td><td> </td></tr></TBODY></TABLE>
在表七中,是基於表六而進一步列出讀取的字元線群組與產生的總錯誤位元數的關係。在「讀取群組3」的欄位顯示了在字元線群組3進行讀取「R」會在字元線群組2、4產生錯誤位元「E」,而在「讀取群組4」的欄位顯示了在字元線群組4進行讀取「R」會在字元線群組3、5產生錯誤位元「E」。綜合上述,字元線群組2、3、4、5都會具有「E」的總錯誤位元數。
表八為根據本發明另一實施例的字元線群組讀取計數、錯誤位元數及對字元線群組施加的電壓組的關係。
[表八]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 字元線群組 </td><td> 字元線0 </td><td> … </td><td> … </td><td> 字元線X </td><td> 字元線群組讀取計數 </td><td> 錯誤位元數 (V0) </td><td> 電壓組 </td><td> 讀取群組2 </td><td> 讀取群組3 </td><td> 讀取群組4 </td><td> 總錯誤位元數 </td></tr><tr><td> 0 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> 1 </td><td> 受到字元線群組2的讀取擾動 </td><td> 低 </td><td> 高 </td><td> V4 </td><td> E </td><td> </td><td> </td><td> E </td></tr><tr><td> 2 </td><td> 讀取計數高並集中於字元線群組2 (同時受到字元線群組3的讀取擾動) </td><td> 高 </td><td> 高 </td><td> V4 </td><td> R </td><td> E </td><td> </td><td> E </td></tr><tr><td> 3 </td><td> 讀取計數高並集中於字元線群組3 (同時受到字元線群組2、4的讀取擾動) </td><td> 高 </td><td> 極高 </td><td> V5 </td><td> E </td><td> R </td><td> E </td><td> 2E </td></tr><tr><td> 4 </td><td> 讀取計數高並集中於字元線群組4 (同時受到字元線群組3的讀取擾動) </td><td> 高 </td><td> 高 </td><td> V4 </td><td> </td><td> E </td><td> R </td><td> E </td></tr><tr><td> 5 </td><td> 受到字元線群組4的讀取擾動 </td><td> 低 </td><td> 高 </td><td> V4 </td><td> </td><td> </td><td> E </td><td> E </td></tr><tr><td> 6 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> V0 </td><td> </td><td> </td><td> </td><td> </td></tr></TBODY></TABLE>
在表八中,顯示了對三個字元線群組2、3、4進行讀取且總讀取計數為高的範例。假設在表八中是對字元線群組2、3、4分別進行七百萬次讀取,則字元線群組2、3、4的讀取計數為「高」。由於字元線群組1、3會受到字元線群組2的讀取擾動,字元線群組2、4會受到字元線群組3的讀取擾動,字元線群組3、5會受到字元線群組4的讀取擾動,因此字元線群組1、2、4、5的錯誤位元數都會是「高」。另外,由於字元線群組3會同時受到字元線群組2、4的的讀取擾動,因此字元線群組3的錯誤位元數會是「極高(ultra high)」。同時可參考總錯誤位元數的欄位,字元線群組1、2、4、5的總錯誤位元數都是「E」但字元線群組3的總錯誤位元數是「2E」。因此,處理器211會指示施加最佳電壓組V4到字元線群組1、2、4、5來進行後續的讀取操作以減少錯誤位元數時,處理器211還會指示施加最佳電壓組V5到字元線群組3來進行後續的讀取操作以減少錯誤位元數。
表九為根據本發明另一實施例的字元線群組讀取計數、錯誤位元數及對字元線群組施加的電壓組的關係。
[表九]
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 字元線群組 </td><td> 字元線0 </td><td> … </td><td> … </td><td> 字元線X </td><td> 字元線群組讀取計數 </td><td> 錯誤位 元數(V0) </td><td> 特徵值 </td><td> 電壓組 </td><td> 讀取群組2 </td><td> 讀取群組3 </td><td> 讀取群組4 </td><td> 總錯誤位元數 </td><td> </td></tr><tr><td> 0 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> 小 </td><td> V0 </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> 1 </td><td> 受到字元線群組2的讀取擾動 </td><td> 低 </td><td> 高 </td><td> 大 </td><td> V4 </td><td> E </td><td> </td><td> </td><td> E </td></tr><tr><td> 2 </td><td> 讀取計數高並集中於字元線群組2 (同時受到字元線群組3的讀取擾動) </td><td> 高 </td><td> 高 </td><td> 大 </td><td> V4 </td><td> R </td><td> E </td><td> </td><td> E </td></tr><tr><td> 3 </td><td> 讀取計數高並集中於字元線群組3 (同時受到字元線群組2、4的讀取擾動) </td><td> 高 </td><td> 極高 </td><td> 極大 </td><td> V5 </td><td> E </td><td> R </td><td> E </td><td> 2E </td></tr><tr><td> 4 </td><td> 讀取計數高並集中於字元線群組4 (同時受到字元線群組3的讀取擾動) </td><td> 高 </td><td> 高 </td><td> 大 </td><td> V4 </td><td> </td><td> E </td><td> R </td><td> E </td></tr><tr><td> 5 </td><td> 受到字元線群組4的讀取擾動 </td><td> 低 </td><td> 高 </td><td> 大 </td><td> V4 </td><td> </td><td> </td><td> E </td><td> E </td></tr><tr><td> 6 </td><td> </td><td> </td><td> </td><td> </td><td> 低 </td><td> 低 </td><td> 小 </td><td> V0 </td><td> </td><td> </td><td> </td><td> </td></tr></TBODY></TABLE>
表九與表八大致相同,差別之處只有新增了每個字元線群組的特徵值大小。當一個字元線群組被讀取時,與被讀取的字元線群組直接相鄰的字元線群組的特徵值會被累加。因此字元線群組2的讀取計數為高會造成字元線群組1、3的特徵值為大。類似地,字元線群組3的讀取計數為高會造成字元線群組2、4的特徵值為大且字元線群組4的讀取計數為高會造成字元線群組3、5的特徵值為大。因為字元線群組3的特徵值會同時受到字元線群組2、4的讀取計數為高的影響,因此因為字元線群組3的特徵值會是極大。從表九也可得知,特徵值與錯誤位元數(V0)會存在高度的正相關關係。
值得注意的是,最佳電壓組V1到V5所包括的電壓數量可根據可複寫式非揮發性記憶體模組220的類型而有所不同,與最佳電壓組V0類似。
圖3為根據本發明一實施例的記憶體管理方法的流程圖。
請參照圖3,在步驟S301中,藉由儲存控制器210將第一區塊的字元線分成多個字元線群組,並為每個字元線群組記錄一特徵值。具體來說,儲存控制器210可將一個區塊的字元線根據堆疊層而分成多個字元線群組並為每個字元線群組記錄一特徵值。在此特徵值代表了直接相鄰的字元線群組被讀取的次數,同時特徵值也會相關於字元線群組的錯誤位元數。
在步驟S303中,當儲存控制器210讀取第一字元線群組時,儲存控制器210累加直接相鄰於第一字元線群組的第二字元線群組及第三字元線群組的特徵值。具體來說,當一個字元線群組被讀取時,儲存控制器210就會累加與此被讀取的字元線群組直接相鄰的字元線群組的特徵值。
在步驟S305中,當第二字元線群組的特徵值大於第一門檻值時,儲存控制器210指示以第一最佳讀取電壓組來讀取第二字元線群組,其中第一最佳讀取電壓組與對應第二字元線群組的預設讀取電壓組不同。具體來說,當字元線群組的特徵值大於第一門檻值時,代表了此字元線群組受到讀取擾動而產生錯誤位元的機率變高。因此,儲存控制器210不會再以預設讀取電壓組來讀取此字元線群組,而是以一最佳讀取電壓組來讀取此字元線群組。如此可減少此字元線群組受到讀取擾動而產生的錯誤位元數量。值得注意的是,當儲存控制器210抹除一實體區塊時,儲存控制器210會將此實體區塊的字元線群組的特徵值都設定為0。
在一實施例中,當第三字元線群組的特徵值大於一門檻值(例如,第二門檻值)時,儲存控制器210指示以第二最佳讀取電壓組來讀取第三字元線群組,其中第二門檻值大於第一門檻值。也就是說,儲存控制器210會隨著字元線群組的特徵值的累加而使用不同的最佳讀取電壓組來讀取字元線群組,以降低錯誤位元數。
當一個區塊中的字元線群組讀取次數太高,使得產生的錯誤位元數已經無法藉由調整最佳讀取電壓組來降低時,儲存控制器210就必須將一個區塊的部分字元線群組或整個區塊的資料搬移到其他區塊。
在一實施例中,當第一區塊的第二字元線群組的特徵值大於一門檻值(例如,第三門檻值)或第一區塊的第二字元線群組的特徵值減去此區塊的所有字元線群組的特徵值的平均值大於另一門檻值(例如,第四門檻值)時,則儲存控制器210將第二字元線群組的資料搬移到另一區塊。此外,儲存控制器210還會重置第二字元線群組的特徵值,並將第二字元線群組的資料設定為無效。舉例來說,當一個字元線群組被不斷地重覆讀取時(例如,此字元線群組儲存了網路的熱門影片或熱門資料),會造成與此字元線群組直接相鄰的字元線群組的特徵值不斷累加。因此,儲存控制器210可將與儲存熱門資料的字元線群組直接相鄰的字元線群組所儲存的資料搬移到其他區塊,從而減少大量讀取儲存熱門資料的字元線群組所產生的讀取擾動而造成的錯誤位元數。
在另一實施例中,當第一區塊的字元線群組的特徵值的平均值大於一門檻值(例如,第五門檻值)時,則儲存控制器210將第一區塊的資料搬移到另一區塊。具體來說,當整個區塊的多數字元線群組都被不斷地重覆讀取時,整個區塊的字元線群組都會受到讀取擾動的影響而使得錯誤位元數升高。因此必須直接將整個區塊的資料搬移到另一區塊以降低讀取擾動而造成的錯誤位元數。
綜上所述,本發明的記憶體管理方法與儲存控制器會將一個區塊的字元線分成多個字元線群組並為每個字元線群組記錄一個特徵值。當其中一個字元線群組被讀取時,與被讀取的字元線群組直接相鄰的字元線群組的特徵值會被壘加。當一個字元線群組的特徵值大於門檻值時,則儲存控制器會指示以與預設讀取電壓組不同的最佳讀取電壓組來讀取特徵值大於門檻值的字元線群組,以減少讀取擾動產生的錯誤。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
B1‧‧‧實體區塊
L1~L64‧‧‧堆疊層
W1~W256‧‧‧字元線
S301、S303、S305‧‧‧記憶體管理方法的步驟
圖1為根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2為根據本發明的一實施例所繪示的三維的實體區塊的多個字元線的示意圖。 圖3為根據本發明一實施例的記憶體管理方法的流程圖。
Claims (16)
- 一種記憶體管理方法,適用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存裝置藉由一儲存控制器來控制,該可複寫式非揮發性記憶體模組包括多個區塊,每一該些區塊包括多個字元線、多個記憶胞,每一該些記憶胞與該些字元線的其中一條字元線電性連接,該些區塊包括一第一區塊,該記憶體管理方法包括:藉由該儲存控制器將該第一區塊的該些字元線分成多個字元線群組,並為每一該些字元線群組記錄一特徵值;當該儲存控制器讀取該些字元線群組中的一第一字元線群組時,該儲存控制器累加該些字元線群組中的一第二字元線群組及一第三字元線群組的該特徵值,其中該第二字元線群組及該第三字元線群組直接相鄰於該第一字元線群組;以及當該第二字元線群組的該特徵值大於一第一門檻值時,該儲存控制器指示以一第一最佳讀取電壓組來讀取該第二字元線群組,其中該第一最佳讀取電壓組與對應該第二字元線群組的一預設讀取電壓組不同。
- 如申請專利範圍第1項所述的記憶體管理方法,其中當該第三字元線群組的該特徵值大於一第二門檻值時,該儲存控制器指示以一第二最佳讀取電壓組來讀取該第三字元線群組,其中該第二門檻值大於該第一門檻值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一字元線群組、該第二字元線群組及該第三字元線群組分別屬於該第一區塊的多個堆疊層中的一第一層、一第二層及一第三層,其中該第二層及該第三層直接相鄰於該第一層。
- 如申請專利範圍第3項所述的記憶體管理方法,其中該第一字元線群組包括一第一記憶胞,該第二字元線群組包括一第二記憶胞,該第三字元線群組包括一第三記憶胞,該第二記憶胞及該第三記憶胞分別對應該第一層的該第一記憶胞設置於該第二層及該第三層的相對位置,該第一記憶胞、該第二記憶胞及該第三記憶胞設置於同一位元線上且該第二記憶胞及該第三記憶胞直接相鄰於該第一記憶胞。
- 如申請專利範圍第1項所述的記憶體管理方法,其中當該儲存控制器抹除該第一區塊時,該儲存控制器將該第一區塊的該些字元線群組的該特徵值設定為0。
- 如申請專利範圍第1項所述的記憶體管理方法,其中當該第二字元線群組的該特徵值大於一第三門檻值或該第二字元線群組的該特徵值減去該第一區塊的該些字元線群組的該特徵值的一平均值大於一第四門檻值時,則該儲存控制器將該第二字元線群組的資料搬移到另一區塊。
- 如申請專利範圍第6項所述的記憶體管理方法,其中該儲存控制器重置該第二字元線群組的該特徵值,並將該第二字元線群組的資料設定為無效。
- 如申請專利範圍第1項所述的記憶體管理方法,其中當該第一區塊的該些字元線群組的該特徵值的一平均值大於一第五門檻值時,則該儲存控制器將該第一區塊的資料搬移到另一區塊。
- 一種儲存控制器,適用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該可複寫式非揮發性記憶體模組包括多個區塊,每一該些區塊包括多個字元線、多個記憶胞,每一該些記憶胞與該些字元線的其中一條字元線電性連接,該些區塊包括一第一區塊,該儲存控制器包括:一連接介面電路,耦接到一主機系統;一記憶體介面控制電路,耦接到該可複寫式非揮發性記憶體模組;以及一處理器,耦接到該連接介面電路及該記憶體介面控制電路,其中該處理器將該第一區塊的該些字元線分成多個字元線群組,並為每一該些字元線群組記錄一特徵值;當該處理器讀取該些字元線群組中的一第一字元線群組時,該處理器累加該些字元線群組中的一第二字元線群組及一第三字元線群組的該特徵值,其中該第二字元線群組及該第三字元線群組直接相鄰於該第一字元線群組;以及當該第二字元線群組的該特徵值大於一第一門檻值時,該處理器指示以一第一最佳讀取電壓組來讀取該第二字元線群組,其中該第一最佳讀取電壓組與對應該第二字元線群組的一預設讀取電壓組不同。
- 如申請專利範圍第9項所述的儲存控制器,其中當該第三字元線群組的該特徵值大於一第二門檻值時,該處理器指示以一第二最佳讀取電壓組來讀取該第三字元線群組,其中該第二門檻值大於該第一門檻值。
- 如申請專利範圍第9項所述的儲存控制器,其中該第一字元線群組、該第二字元線群組及該第三字元線群組分別屬於該第一區塊的多個堆疊層中的一第一層、一第二層及一第三層,其中該第二層及該第三層直接相鄰於該第一層。
- 如申請專利範圍第11項所述的儲存控制器,其中該第一字元線群組包括一第一記憶胞,該第二字元線群組包括一第二記憶胞,該第三字元線群組包括一第三記憶胞,該第二記憶胞及該第三記憶胞分別對應該第一層的該第一記憶胞設置於該第二層及該第三層的相對位置,該第一記憶胞、該第二記憶胞及該第三記憶胞設置於同一位元線上且該第二記憶胞及該第三記憶胞直接相鄰於該第一記憶胞。
- 如申請專利範圍第9項所述的儲存控制器,其中當該處理器抹除該第一區塊時,該處理器將該第一區塊的該些字元線群組的該特徵值設定為0。
- 如申請專利範圍第9項所述的儲存控制器,其中當該第二字元線群組的該特徵值大於一第三門檻值或該第二字元線群組的該特徵值減去該第一區塊的該些字元線群組的該特徵值的一平均值大於一第四門檻值時,則該處理器將該第二字元線群組的資料搬移到另一區塊。
- 如申請專利範圍第14項所述的儲存控制器,其中該處理器重置該第二字元線群組的該特徵值,並將該第二字元線群組的資料設定為無效。
- 如申請專利範圍第9項所述的儲存控制器,其中當該第一區塊的該些字元線群組的該特徵值的一平均值大於一第五門檻值時,則該處理器將該第一區塊的資料搬移到另一區塊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107109486A TWI648739B (zh) | 2018-03-20 | 2018-03-20 | 記憶體管理方法與儲存控制器 |
US15/997,716 US10360986B1 (en) | 2018-03-20 | 2018-06-05 | Memory management method and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107109486A TWI648739B (zh) | 2018-03-20 | 2018-03-20 | 記憶體管理方法與儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI648739B true TWI648739B (zh) | 2019-01-21 |
TW201941208A TW201941208A (zh) | 2019-10-16 |
Family
ID=65803581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107109486A TWI648739B (zh) | 2018-03-20 | 2018-03-20 | 記憶體管理方法與儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10360986B1 (zh) |
TW (1) | TWI648739B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI670599B (zh) * | 2018-08-28 | 2019-09-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
KR20210096425A (ko) | 2020-01-28 | 2021-08-05 | 삼성전자주식회사 | 비휘발성 메모리 장치 |
KR20210143612A (ko) | 2020-05-20 | 2021-11-29 | 삼성전자주식회사 | 비휘발성 메모리 및 비휘발성 메모리의 동작 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7177199B2 (en) * | 2003-10-20 | 2007-02-13 | Sandisk Corporation | Behavior based programming of non-volatile memory |
US7889537B2 (en) * | 2007-05-11 | 2011-02-15 | Kabushiki Kaisha Toshiba | Non-volatile memory device and method for writing data thereto |
CN102077298A (zh) * | 2008-06-30 | 2011-05-25 | 桑迪士克公司 | 在非易失性存储器中的读取干扰减轻 |
CN102246241A (zh) * | 2008-12-18 | 2011-11-16 | 桑迪士克股份有限公司 | 非易失性存储器的数据刷新 |
US20130094294A1 (en) * | 2011-10-13 | 2013-04-18 | Donghun Kwak | Nonvolatile memory device, programming method of nonvolatile memory device and memory system including nonvolatile memory device |
TW201535384A (zh) * | 2014-03-13 | 2015-09-16 | Phison Electronics Corp | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN105988880A (zh) * | 2015-02-17 | 2016-10-05 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器储存装置 |
CN107797935A (zh) * | 2016-09-06 | 2018-03-13 | 三星电子株式会社 | 存储装置和用于非易失性存储器装置的访问方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3905979B2 (ja) * | 1998-06-03 | 2007-04-18 | 株式会社東芝 | 不揮発性半導体メモリ |
US7697338B2 (en) * | 2006-11-16 | 2010-04-13 | Sandisk Corporation | Systems for controlled boosting in non-volatile memory soft programming |
US7535764B2 (en) * | 2007-03-21 | 2009-05-19 | Sandisk Corporation | Adjusting resistance of non-volatile memory using dummy memory cells |
JP4252624B2 (ja) * | 2007-06-01 | 2009-04-08 | パナソニック株式会社 | 抵抗変化型記憶装置 |
US8565019B2 (en) * | 2007-11-20 | 2013-10-22 | Kabushiki Kaisha Toshiba | Method for controlling threshold value in nonvolatile semiconductor memory device |
KR101762828B1 (ko) * | 2011-04-05 | 2017-07-31 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법 |
KR102083271B1 (ko) * | 2012-07-31 | 2020-03-02 | 삼성전자주식회사 | 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법 |
-
2018
- 2018-03-20 TW TW107109486A patent/TWI648739B/zh active
- 2018-06-05 US US15/997,716 patent/US10360986B1/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7177199B2 (en) * | 2003-10-20 | 2007-02-13 | Sandisk Corporation | Behavior based programming of non-volatile memory |
US7889537B2 (en) * | 2007-05-11 | 2011-02-15 | Kabushiki Kaisha Toshiba | Non-volatile memory device and method for writing data thereto |
CN102077298A (zh) * | 2008-06-30 | 2011-05-25 | 桑迪士克公司 | 在非易失性存储器中的读取干扰减轻 |
CN102246241A (zh) * | 2008-12-18 | 2011-11-16 | 桑迪士克股份有限公司 | 非易失性存储器的数据刷新 |
US20130094294A1 (en) * | 2011-10-13 | 2013-04-18 | Donghun Kwak | Nonvolatile memory device, programming method of nonvolatile memory device and memory system including nonvolatile memory device |
TW201535384A (zh) * | 2014-03-13 | 2015-09-16 | Phison Electronics Corp | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN105988880A (zh) * | 2015-02-17 | 2016-10-05 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器储存装置 |
CN107797935A (zh) * | 2016-09-06 | 2018-03-13 | 三星电子株式会社 | 存储装置和用于非易失性存储器装置的访问方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201941208A (zh) | 2019-10-16 |
US10360986B1 (en) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586679B2 (en) | Proactive corrective actions in memory based on a probabilistic data structure | |
US10002042B2 (en) | Systems and methods of detecting errors during read operations and skipping word line portions | |
KR101447786B1 (ko) | 파워 인터럽트 관리 | |
US20170147499A1 (en) | Multi-Level Logical to Physical Address Mapping Using Distributed Processors in Non-Volatile Storage Device | |
US9448946B2 (en) | Data storage system with stale data mechanism and method of operation thereof | |
US8417879B2 (en) | Method for suppressing errors, and associated memory device and controller thereof | |
US9582224B2 (en) | Memory control circuit unit, memory storage apparatus and data accessing method | |
US10579518B2 (en) | Memory management method and storage controller | |
US10956290B2 (en) | Memory management | |
JP2013544414A (ja) | トランザクションログの復元 | |
US10628082B2 (en) | Data reading method and storage controller | |
US11567685B2 (en) | Storage controller and storage device including the same | |
KR102303051B1 (ko) | 백그라운드 소거를 이용한 솔리드-스테이트 드라이브 기록 성능 향상 | |
CN113302699B (zh) | 存储器中的单调计数器 | |
US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
TWI648739B (zh) | 記憶體管理方法與儲存控制器 | |
US20230266884A1 (en) | Operating method for storage controller and storage system including same | |
US10509583B1 (en) | Memory management method and storage controller | |
CN111258505A (zh) | 快闪存储器的数据合并方法、控制电路单元与存储装置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
CN113590503A (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
US20230036616A1 (en) | Storage devices and operating methods of storage controllers | |
US11194708B2 (en) | Data relocation in memory having two portions of data | |
US10884660B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN110322913B (zh) | 存储器管理方法与存储控制器 |