TWI650757B - 解碼方法以及儲存控制器 - Google Patents
解碼方法以及儲存控制器 Download PDFInfo
- Publication number
- TWI650757B TWI650757B TW107111387A TW107111387A TWI650757B TW I650757 B TWI650757 B TW I650757B TW 107111387 A TW107111387 A TW 107111387A TW 107111387 A TW107111387 A TW 107111387A TW I650757 B TWI650757 B TW I650757B
- Authority
- TW
- Taiwan
- Prior art keywords
- read voltage
- read
- gray code
- sum
- target
- Prior art date
Links
Classifications
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- 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
- 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/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input 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/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0012—High speed serial bus, e.g. IEEE P1394
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0032—Serial ATA [SATA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
-
- 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/5671—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 trapping in an insulator
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供適用於可複寫式非揮發性記憶體模組的一種解碼方法以及儲存控制器。所述方法包括:選擇所述多個字元線中的目標字元線,其中所述目標字元線的多個目標記憶胞皆已被程式化;分別利用不同的X個讀取電壓組讀取所述多個目標記憶胞,以獲得X個葛雷碼計數偏離值總和,其中所述X個讀取電壓組以及對應的所述X個葛雷碼計數偏離值總和皆以第一預定順序排列;以及根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為最佳化讀取電壓組。
Description
本發明是有關於一種解碼方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的解碼方法與儲存控制器。
一般來說,在對可複寫式非揮發性記憶體模組讀取資料時,若頁面讀取失敗的情況沒有發生,系統會使用預設讀取電壓組或之前用過的最佳讀取電壓組來讀取資料。直到讀取失敗的情況發生,系統(儲存系統)才會不使用預設讀取電壓組或已用過的最佳電壓,並且對應地調整讀取電壓組。
換句話說,可複寫式非揮發性記憶體模組的最佳讀取電壓組值並不會是固定的。然而,傳統上調整讀取電壓組以獲得最佳讀取電壓組來讀取資料的作法是耗費資源的。舉例來說,第一種傳統的讀取電壓最佳化的過程會一直調整對應不同臨界電壓分佈的多個不同讀取電壓的大小(調整一個讀取電壓組中的對應一個臨界分佈交界的一個讀取電壓,並且固定該讀取電壓組中其餘的讀取電壓)來讀取上述發生頁面讀取失敗的資料,以嘗試獲得最好的資料讀取結果且將對應最好的資料讀取結果的讀取電壓組作為對應用以儲存所述資料的實體單元的最佳化讀取電壓組。以TLC型快閃記憶體(一個記憶胞儲存3個位元值)為例,一個讀取電壓組內共有七個讀取電壓對應於不同電壓區段。採用傳統方法,需固定六個讀取電壓,並改變一個讀取電壓。若每個讀取電壓需調整X次(且經由讀取來獲得結果,以比較所有結果來找出最佳者),則為了獲得最佳讀取電壓所使用的讀取次數為(2
3-1)*X=7*X次。此外,上述傳統的作法還需要準備已經驗證的資料。換言之,第一種傳統作法會需要耗費大量的計算資源(調整讀取電壓及驗證對應的讀取扣資料)與儲存空間(用以儲存已驗證資料的空間),進而降低了解碼操作的效率。
此外,第二種傳統作法是分別利用記憶體模組硬體規格上所被預先設定的多個調整讀取電壓組來對嘗試讀取所述資料,以找尋最佳的資料讀取結果。其中,每個調整讀取電壓組中的多個讀取電壓並不能被儲存裝置的控制器所設定,並且所述調整讀取電壓組的數量也是有限。換言之,利用第二種傳統作法,或許可以找到其中的一組調整讀取電壓組以讓藉由此讀取電壓組所讀取的資料可以為正確的(解碼成功的)。但是,所述找到的調整讀取電壓組並不能夠如同第一種傳統作法,找到符合當前臨界電壓分佈的最佳讀取電壓組。此外,由於調整讀取電壓組的數量與精度較低,因此,也會出現所有調整讀取電壓組皆不能使所讀取的資料讀取正確的情形。
也就是說,第二種傳統作法雖然可以利用少數量的調整電壓組來較第一種傳統作法來較快速地找到可使所讀取資料正確的讀取電壓組,但是此方法的失敗機率也會相較於第一種傳統作法大,並且所讀取的資料的錯誤位元數也會較高,進而增加了解碼操作的負擔。
因此,如何在不需要準備驗證資料的情況下,快速且有效率地對讀取電壓進行最佳化,以改善傳統作法的缺陷,進而提昇可複寫式非揮發性記憶體模組的讀取及對應的解碼效率,是本領域人員研究的課題之一。
本發明提供一種解碼方法與儲存控制器,可在不需要準備已驗證資料的情況下,快速且有效率地獲得最佳化讀取電壓組,進而可經由最佳化讀取電壓組的多個最佳化讀取電壓來正確地讀取資料且有效率地進行解碼操作。
本發明的一實施例提供適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的一種解碼方法,其中所述可複寫式非揮發性記憶體模組具有多個字元線,其中所述多個字元線的每一個字元線包括多個記憶胞,其中所述多個記憶胞中的每一個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)的其中之一的位元值,並且所述多個葛雷碼的總數為N,N為大於2的第一預定正整數。所述方法包括:選擇所述多個字元線中的目標字元線,其中所述目標字元線的多個目標記憶胞皆已被程式化;分別利用不同的X個讀取電壓組讀取所述多個目標記憶胞,以獲得X個葛雷碼計數偏離值總和,其中X為一第二預定正整數,並且所述X個讀取電壓組以及對應的所述X個葛雷碼計數偏離值總和皆以第一預定順序排列,其中每一個所述X個讀取電壓組具有依據第二預定順序排列的N-1個讀取電壓,並且所述X個葛雷碼計數偏離值總和中的第i個葛雷碼計數偏離值總和對應所述X個讀取電壓組中第i個讀取電壓組,其中i依據所述第一預定順序為1至X;以及根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為最佳化讀取電壓組。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器。所述儲存控制器包括:連接介面電路、記憶體介面控制電路、讀取電壓管理電路單元以及處理器。連接介面電路用以耦接至主機系統。記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個字元線,其中所述多個字元線的每一個字元線包括多個記憶胞,其中所述多個記憶胞中的每一個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)的其中之一的位元值,並且所述多個葛雷碼的總數為N,N為大於2的第一預定正整數。處理器耦接至所述連接介面電路、所述記憶體介面控制電路及所述讀取電壓管理電路單元。所述處理器選擇所述多個字元線中的目標字元線,並且指示所述讀取電壓管理電路單元進行對應所述目標字元線的讀取電壓最佳化操作,其中所述目標字元線的多個目標記憶胞皆已被程式化。在所述讀取電壓最佳化操作中,所述讀取電壓管理電路單元用以分別利用不同的X個讀取電壓組讀取所述多個目標記憶胞,以獲得X個葛雷碼計數偏離值總和,其中X為一第二預定正整數,並且所述X個讀取電壓組以及對應的所述X個葛雷碼計數偏離值總和皆以第一預定順序排列,其中每一個所述X個讀取電壓組具有依據第二預定順序排列的N-1個讀取電壓,並且所述X個葛雷碼計數偏離值總和中的第i個葛雷碼計數偏離值總和對應所述X個讀取電壓組中第i個讀取電壓組,其中i依據所述第一預定順序為1至X,其中所述讀取電壓管理電路單元更用以根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為最佳化讀取電壓組。
基於上述,本發明實施例所提供的解碼方法以及儲存控制器,可在不需要準備已驗證資料的情況下,對任何目標字元線執行對應所述目標字元線的讀取電壓最佳化操作。在所述讀取電壓最佳化操作,儲存控制器可直接使用多個不同的讀取電壓組來獲得多個不同的葛雷碼計數偏離值總和,以根據所述多個X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為最佳化讀取電壓組,以組成對應所述目標字元線的最佳化讀取電壓組,進而藉由利用所述最佳化讀取電壓組來增進了所讀取資料的正確性且增進了用於讀取之解碼操作整體的效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(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可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元(亦稱,目標實體單元)中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路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個位元的快閃記憶體模組)、四階記憶胞(Quadruple Level Cell,QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220具有多個字元線,其中所述多個字元線的每一個字元線包括多個記憶胞。同一條字元線上的多個記憶胞會組成一或多個實體程式化單元(實體頁面)。此外,多個實體程式化單元可組成一個實體單元(實體區塊或實體抹除單元)。在本實施例中,以三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組做例子來說明,即,在下述的實施例中,會將一個可儲存3個位元值的記憶胞作為一個實體程式化單元(即,在每次程式化操作中,會對一個實體程式化單元接著一個實體程式化單元來施加程式化電壓以程式化資料),其中每一個記憶胞可區分為各自可儲存一個位元值的下實體頁面(Lower Physical Page)、中實體頁面(Middle Physical Page)與上實體頁面(Upper Physical Page)。
在本實施例中,是以記憶胞作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。每一實體單元會具有多個記憶胞。在以下實施例中,是以一個實體區塊作為一個實體單元的範例。然而,在另一實施例中,一個實體單元亦可以是指任意數目的記憶胞組成,視實務上的需求而定。此外,必須瞭解的是,當處理器211對可複寫式非揮發性記憶體模組220中的記憶胞(或實體單元)進行分組以執行對應的管理操作時,此些記憶胞(或實體單元)是被邏輯地分組,而其實際位置並未更動。
應注意的是,在本實施例中,用以記錄一實體單元的資訊的系統資料可利用該實體單元中的一或多個記憶胞來記錄,或是利用一個系統區中用以記錄所有系統資料的特定實體單元的一或多個記憶胞來記錄。在本實施例中,所述對應一實體單元的系統資料包括該實體單元的抹除次數值(Program erase cycle,PEC)、資料存放時間戳記(Data Retention Timestamp,DRT)、讀取次數值(Read counter value)等資訊。更詳細來說,每當處理器211對一實體單元進行抹除操作時,在完成所述抹除操作後,處理器211會對當前對應該實體單元的抹除次數值加1(如,抹除次數值會隨著每次的抹除操作而從0開始累加)。即,抹除次數值可反映出其所對應的實體單元的被抹除的次數的總和。所述資料存放時間戳記用以指示儲存於對應的實體單元中的資料的存放時間。時間戳記的大小(數值差異)可用來表示時間的先後順序。本發明並不限定所述時間戳記的詳細格式。每對所述實體單元執行寫入操作時,處理器211會更新所述實體單元的資料存放時間戳記為所述實體單元執行所述寫入操作的時間。即,對應一實體單元之資料存放時間戳記用以表示所述實體單元最後一次被執行寫入操作的時間(如,完成最後一次寫入操作的本地時間)。所述寫入操作例如是程式化資料至所述實體單元的一或多個記憶胞,或例如是程式化資料至所述實體單元的其他型態的實體位址。接著,處理器211可經由資料存放時間戳記來計算實體單元中的資料距離前一次的寫入已存放了多長的時間。所述讀取次數值用以統計對應的實體單元被讀取的次數,並且所述讀取次數值會在對應的實體單元被抹除時而被清空。
舉例來說,在本實施例中,處理器211可根據該可複寫式非揮發性記憶體模組220的多個實體單元的統計值劃分所述多個實體單元至多個實體單元組。所述統計值包括前述的抹除次數值、資料存放時間戳記(亦稱,久存值)、讀取次數值等資訊的其中之一或其組合。被劃分至同一實體單元組的多個實體單元會具有較接近的物理特性。處理器211可對劃分至同一個實體單元組的實體單元經由同一組讀取電壓組來進行資料的讀取(如,使用相同的讀取電壓組來下達讀取指令序列,以對屬於相同實體單元組的實體單元來進行讀取操作)。
在其他實施例中,處理器211可根據該可複寫式非揮發性記憶體模組220的多個字元線的統計值劃分所述多個字元線至多個字元線組(處理器211可統計每個字元線的上述統計值),並且被劃分至同一字元線組的多個字元線會具有較接近的物理特性,進而如上述實施例般被同一組讀取電壓(如,對應的最佳化讀取電壓)所讀取。應注意的是,為了可以更精細地針對每個字元線來進行對應每個字元線的讀取電壓最佳化操作(而非針對每個實體單元),以下的實施例是針對每個字元線來說明讀取電壓最佳化操作及其中的讀取電壓最佳化方法。然,針對多個實體單元組的實施例,處理器211可從每個實體單元組中挑選一個實體單元的字元線來進行讀取電壓最佳化操作,或從每個實體單元組中挑選一個實體單元來進行讀取電壓最佳化操作。
儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。
此外,儲存控制器210會建立邏輯轉實體位址映射表(Logical To Physical address mapping table)與實體轉邏輯位址映射表(Physical To Logical address mapping table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯單元(如,邏輯區塊、邏輯頁面或邏輯扇區)與實體單元(如,實體抹除單元、實體程式化單元、實體扇區)之間的映射關係。換言之,儲存控制器210可藉由邏輯轉實體位址映射表來查找一邏輯單元所映射的實體單元,並且儲存控制器210可藉由實體轉邏輯位址映射表來查找一實體單元所映射的邏輯單元。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在本實施例中,錯誤檢查與校正電路214是耦接至處理器211並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當處理器211從主機系統10中接收到寫入指令時,錯誤檢查與校正電路508會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且處理器211會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組220中。之後,當處理器211從可複寫式非揮發性記憶體模組220中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路214會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。此外,在錯誤檢查與校正程序後,若成功解碼所讀取之資料,錯誤檢查與校正電路214可回傳錯誤位元值給處理器211。
在一實施例中,儲存控制器210還包括緩衝記憶體216與電源管理電路217。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從緩衝記憶體216中存取所述資料、指令或系統資料。電源管理電路217是耦接至處理器211並且用以控制儲存裝置20的電源。
在本實施例中,讀取電壓管理電路單元215包括葛雷碼計數電路2151與讀取電壓最佳化電路2152。所述讀取電壓管理電路單元215用以執行對多個字元線的讀取電壓進行管理。更具體來說,處理器211可在特定的時間點來選擇可複寫式非揮發性記憶體模組220的屬於多個實體單元的多個字元線的其中之一個字元線(亦稱,目標字元線),並且指示讀取電壓管理電路單元215來對此目標字元線進行讀取電壓最佳化操作。舉例來說,處理器211可在(1)儲存裝置20閒暇(即,儲存裝置20閒置超過一預定時間門檻值)時;(2)儲存裝置開電時;或(3)從一字元線所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,來從所有字元線中選擇一目標字元線進行讀取電壓最佳化操作。其中,處理器211可根據所有字元線組的統計值與錯誤位元數的其中之一或其組合,來挑選物理狀態較差的字元線組(例如,抹除次數較多、讀取次數較多、久存時間較長或錯誤位元數較多的字元線組)中的一字元線來做為目標字元線。此外,處理器211亦可根據錯誤檢查與校正電路214所回傳的錯誤位元數,來選擇目標字元線。具體來說,當從一字元線所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,其中該字元線被設定為該目標字元線。應注意的是,被選擇之目標字元線儲存有資料,即,已被程式化資料。此外,若針對一目標字元線的讀取電壓最佳化操作已經完成,讀取電壓管理電路單元215可記錄對應該目標字元線的讀取電壓組。
在一實施例中,處理器211亦可隨機挑選目標字元線來進行讀取電壓最佳化操作。在另一實施例中,處理器211亦可直接對每一個字元線進行讀取電壓最佳化操作。
以下會配合多個圖式來詳細說明讀取電壓管理電路單元215如何進行讀取電壓最佳化操作的細節以及葛雷碼計數電路2151與讀取電壓最佳化電路2152的功能。
圖2是根據本發明的一實施例所繪示的解碼方法的流程圖。請同時參照圖1與圖2,在步驟S21中,處理器211選擇可複寫式非揮發性記憶體模組的多個字元線中的目標字元線,其中所述目標字元線的多個目標記憶胞皆已被程式化。
假設處理器211目前對多個字元線組的其中之一(亦稱,目標字元線組)進行讀取電壓最佳化操作。處理器211會先從中選擇欲進行讀取電壓最佳化操作的目標字元線。目標字元線可從目標字元線組的多個字元線中根據特定選擇條件被選擇。所述特定選擇條件包括(1)目標字元線的一統計值接近其所屬之字元線組中所有字元線的該統計值的平均值;(2)目標字元線的錯誤位元數是其所屬之字元線組中所有字元線的最小者;或(3)隨機選取一字元線作為目標字元線。
在本實施例中,如上所述,目標字元線的儲存有資料。具體來說,每個字元線的多個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)的其中之一的位元值,並且所述葛雷碼的總數為N,N為大於2的一第一預定正整數。換言之,目標字元線的多個記憶胞可儲存有分別對應不同葛雷碼的位元值。以下先配合圖3來說明所述多個葛雷碼的細節。
圖3為根據本發明的一實施例所繪示的經由第一讀取電壓組所讀取的對應N個葛雷碼的位元值的多個記憶胞的臨界電壓分佈及對應的多個葛雷碼計數的示意圖。由於本實施例是以三階記憶胞NAND型快閃記憶體模組做例子來說明,其中N等於8(即,2
3)。三階記憶胞NAND型快閃記憶體模組的每一記憶胞具有三個實體頁面來分別儲存位元資料,所述每一記憶胞包括各自可儲存一個位元值的下實體頁面(Lower Physical Page,L)、中實體頁面(Middle Physical Page,M)與上實體頁面(Upper Physical Page,U)。假設處理器211經由第一讀取電壓組V(1)的多個讀取電壓V(1)
1~V(1)
7讀取三階記憶胞NAND型快閃記憶體模組的目標字元線的多個記憶胞(多個目標記憶胞),並且藉此辨識出所述多個記憶胞所儲存的不同位元值(分別對應不同葛雷碼的位元值)。每一記憶胞中的閘極電壓可依據第一讀取電壓組中的讀取電壓V(1)
1~V(1)
7而區分為8種葛雷碼,如“L:1 M:1 U:1”、“L:0 M:1 U:1”、“L:0 M:0 U:1”、“L:0 M:0 U:0”、“L:0 M:1 U:0”、“L:1 M:1 U:1”、“L:1 M:0 U:0”與“L:1 M:0 U:1”的8種葛雷碼(“L:”表示下實體頁面的位元值;“M:”表示中實體頁面的位元值;“U:”表示上實體頁面的位元值)。所述8種葛雷碼亦可表示為“111”、“011”、“001”、“000”、“010”、“111”、“100”與“101”,8種位元值組合,其中每個位元值組合中的位元值的先後排序是依據下、中、上實體頁面的順序。也就是說,經由分別施加第一讀取電壓組V(1)的不同電壓值的讀取電壓V(1)
1~V(1)
7至目標字元線的一個記憶胞上,處理器211可根據判斷該記憶胞之通道是否導通而分別判定出該記憶胞所儲存之位元值(亦稱,位元資料或讀取位元值)對應不同的多個葛雷碼(“111”、“011”、“001”、“000”、“010”、“111”、“100”或“101”)的其中之一(即,經由使用第一讀取電壓組V(1)來從目標字元線的一個記憶胞讀取出讀取位元值)。例如,讀取電壓V(1)
1可區分葛雷碼“111”與葛雷碼“011”(讀取電壓V(1)
1的左方是對應葛雷碼“111”的臨界電壓分佈;讀取電壓V(1)
1的右方是對應葛雷碼“011”的臨界電壓分佈)。應注意的是,於可複寫式非揮發性記憶體模組220的記憶胞可具有的多個葛雷碼的數目(在此例子中,為8),每個讀取電壓組的所述多個讀取電壓的數目為所述多個葛雷碼的數目減一(在此例子,為7,即,N-1=8-1=7)。
應注意的是,根據可複寫式非揮發性記憶體模組220的種類,N可為大於2的預定正整數(亦稱,第一預定正整數)。例如,若可複寫式非揮發性記憶體模組220為MLC,則N=4;若可複寫式非揮發性記憶體模組220為SLC,則N=2;若可複寫式非揮發性記憶體模組220為QLC,則N=16。
值得一提的是,在本實施例中,字元線的多個記憶胞的臨界電壓分佈相較於預設的臨界電壓分佈可能會發生偏移的現象。由於臨界電壓分佈的偏移,原本對應於預設臨界電壓的預設讀取電壓組已經不再適合用以讀取具有已偏移臨界電壓分佈的字元線。處理器211需另外找出適合讀取目標字元線當前已偏移的臨界電壓分佈的最佳化讀取電壓組,其中所述最佳化讀取電壓組的多個最佳化讀取電壓會接近對應的兩個相鄰的臨界電壓分佈的交界處。
請再回到圖2,在步驟S23中,讀取電壓管理電路單元215分別利用不同的X個讀取電壓組讀取所述多個目標記憶胞,以獲得X個葛雷碼計數偏離值總和,其中每一個所述X個讀取電壓組具有依據第二預定順序(如,根據電壓大小,由左到右,第1至第N-1個,N例如為8)排列的N-1個讀取電壓。其中,X為一第二預定正整數,並且所述X個讀取電壓組以及對應的所述X個X個葛雷碼計數偏離值總和皆以一第一預定順序排列。所述X個葛雷碼計數偏離值總和中的第i個葛雷碼計數偏離值總和對應所述X個讀取電壓組中第i個讀取電壓組,其中i依據所述第一預定順序為1至X。
在一實施例中,所述X個讀取電壓組中相鄰的兩個讀取電壓組之間的電壓差值為一第一預定電壓差。具體來說,所述X個讀取電壓組中的第i個讀取電壓組的第j個讀取電壓與第i+1個讀取電壓組的第j個讀取電壓之間的電壓差值固定為所述第一預定電壓差,其中j依據該第二預定順序為1至N-1。廠商可預先設定所述第二預定正整數(如,20或其他正整數)與第一預定電壓差的值(如,7.5mV)。
應注意的是,在本實施例中,目標字元線的所述多個目標記憶胞為所述目標字元線的用以儲存任何資料的所有記憶胞,但本發明不限於此。例如,在另一實施例中,所述多個目標記憶胞為所述目標字元線的用以儲存任何資料的所有記憶胞中的部份的記憶胞。
圖4為根據本發明的一實施例所繪示的兩個不同的讀取電壓組及其中的電壓差的示意圖。
舉例來說,請參照圖4,假設第一讀取電壓組V(1)為所述X個讀取電壓組的第一個讀取電壓組(如,預設的讀取電壓組),並且第二讀取電壓組V(2)為所述X個讀取電壓組的第二個讀取電壓組。此兩個相鄰的讀取電壓組之間的電壓差值為第一預定電壓差(V
offset)。例如,第二讀取電壓組的第一個讀取電壓V(2)
1與對應的第一讀取電壓組的第一個讀取電壓V(1)
1之間的電壓差值為預定電壓差(V
offset),即,讀取電壓V(2)
1的電壓值減去讀取電壓V(1)
1的電壓值的差值等於V
offset。
應注意的是,X個讀取電壓組中可根據第一讀取電壓組來漸增預定電壓差來形成多個讀取電壓組,或是根據第一讀取電壓組來漸減預定電壓差來形成多個讀取電壓組。為了方便說明,以下實施例會以根據第一讀取電壓組來漸增預定電壓差來形成X個讀取電壓組來作為例子,但此例子並不限制本發明的X個讀取電壓組。
值得一提的是,反應於選擇所述目標字元線,讀取電壓管理電路單元215可辨識該目標字元線的多個統計值,並且根據所述多個統計值的至少其中之一來調整所述預定電壓差的大小且調整第二預定正整數的值。所述多個統計值包括該目標字元線的抹除次數值;該目標字元線的讀取次數值;該目標字元線的久存時間值;以及該目標字元線所儲存資料的錯誤位元數。具體來說,若所述多個統計值的其中之一反映出目標字元線的物理狀況較差時(例如,錯誤位元數較高或抹除次數值較高),讀取電壓管理電路單元215可使用較小的預定電壓差,並且較多的第二預定正整數來更精細地使用彼此間隔小且數量較多組的多個讀取電壓組來找尋最佳化讀取電壓組。反之,若所述多個統計值的其中之一反映出目標字元線的物理狀況較好時(例如,錯誤位元數較低或抹除次數值較低),讀取電壓管理電路單元215可使用較大的預定電壓差,並且較少的第二預定正整數來更粗略地使用彼此間隔大且數量較少組的多個讀取電壓組來找尋最佳化讀取電壓組。
應注意的是,本發明並不限定於上述的X個讀取電壓組的設定方式。例如,在另一實施例中,廠商可預先根據需求或/且可複寫式非揮發性記憶體模組220的硬體規格來直接預先設定每個X個讀取電壓組。在此另一實施例中,每個讀取電壓組的多個讀取電壓的電壓值的大小排列的樣式不同,並且所述X個讀取電壓組中相鄰的兩個讀取電壓組之間的電壓差值不為固定的電壓差。更詳細來說,所述X個讀取電壓組中的第i個讀取電壓組的第j個讀取電壓與第i+1個讀取電壓組的第j個讀取電壓之間的電壓差值不是固定的,其中j依據該第二預定順序為1至N-1。例如,在此另一實施例中,假設第1個讀取電壓組的第1個讀取電壓與第2個讀取電壓組的第1個讀取電壓之間的電壓差值為7.5mV,但第1個讀取電壓組的第1個讀取電壓與第2個讀取電壓組的第1個讀取電壓之間的電壓差值可為6mV、-7mV或其他不同於7.5mV的電壓差值。
對於步驟S23的其他細節,在本實施例中,在上述分別利用不同的X個讀取電壓組讀取所述多個目標記憶胞,以獲得所述X個葛雷碼計數偏離值總和的運作中,讀取電壓管理電路單元215(如,葛雷碼計數電路2151)選擇所述X個讀取電壓組中的第i個讀取電壓組,其中i的數值依據該第一預定順序為1至X。舉例來說,請參照圖3,假設i為1,即,讀取電壓管理電路單元215選擇所述X個讀取電壓組中的第1個讀取電壓組(第一讀取電壓組V(1))來讀取目標字元線的多個目標記憶胞。
接著,讀取電壓管理電路單元215(如,葛雷碼計數電路2151)利用所述第i個讀取電壓組的N-1個讀取電壓分別讀取所述多個目標記憶胞,以獲得多個讀取位元值。
接著,讀取電壓管理電路單元215(或葛雷碼計數電路2151)根據所述N個葛雷碼來區分該些讀取位元值為N個讀取位元值組,其中所述N個讀取位元值組中的第k個讀取位元值組屬於所述N個葛雷碼中的第k個葛雷碼。
更詳細來說,如上所述,讀取電壓管理電路單元215利用所述第一讀取電壓組V(1)的7個讀取電壓V(1)
1~V(1)
7來讀取目標字元線的所述多個目標記憶胞,以根據所獲得的讀取位元值來辨識出每個目標記憶胞所對應的葛雷碼,進而依據這些不同的葛雷碼來區分所獲得的所述多個讀取位元值至對應的讀取位元值組。例如,所獲得的讀取位元值“111”會被區分至對應葛雷碼“111”的讀取位元值組。
接著,讀取電壓管理電路單元215(或葛雷碼計數電路2151)總計所述第k個讀取位元值組的讀取位元值的個數為所述第i個讀取電壓組的對應所述第k個葛雷碼的葛雷碼計數(Grey Code Counts),以獲得所述第i個讀取電壓組的N個葛雷碼計數(所述第i個讀取電壓組的N個葛雷碼計數亦可視為所述第i個讀取電壓組的葛雷碼計數組C(i)),其中所述N個葛雷碼計數以一第三預定順序排列,並且k依據所述第三預定順序為1至N。舉例來說,在所述多個目標記憶胞的讀取位元值被區分至對應不同的多個葛雷碼G1~G8的讀取位元值組後,讀取電壓管理電路單元215(或葛雷碼計數電路2151)可進一步去總計,每個讀取位元值組中的讀取位元值的個數。例如,對應葛雷碼G1“111”的讀取位元值組的讀取位元值的個數可被總計為葛雷碼計數C(1)
1。依此類推,分別對應葛雷碼G1~G8的所述多個讀取位元值組的葛雷碼計數C(1)
1~C(1)
8皆可被計算出來(其中,“C(1)
1”中的“(1)”用以表示此葛雷碼計數所對應的讀取電壓組在X個讀取電壓組中的依據第一預定順序的排序值;“C(1)
1”中的下標“1”用以表示此葛雷碼計數在其所屬的葛雷碼計數組中的依據第三預定順序的排序值,並且也可表示此葛雷碼計數對應所述N個葛雷碼中的第幾個葛雷碼)。
應注意的是,讀取電壓管理電路單元215(或葛雷碼計數電路2151)可利用第一讀取電壓組與對應的臨界電壓分佈圖來計算對應第一讀取電壓組的分別對應葛雷碼G1~G8的葛雷碼計數C(1)
1~C(1)
8。例如,對應葛雷碼G1的葛雷碼計數C(1)
1可視為讀取電壓V(1)
1左方的臨界電壓分佈的記憶胞個數(如圖3所繪示的對應葛雷碼G1的灰色面積);對應葛雷碼G5的葛雷碼計數C(1)
5可視為讀取電壓V(1)
4與讀取電壓V(1)
5之間的臨界電壓分佈的記憶胞個數(如圖3所繪示的對應葛雷碼G5的灰色面積);對應葛雷碼G8的葛雷碼計數C(1)
8可視為讀取電壓V(1)
7右方的臨界電壓分佈的記憶胞個數(如圖3所繪示的對應葛雷碼G8的灰色面積)。
圖5是根據本發明的一實施例所繪示的計算葛雷碼計數偏離值的示意圖。請參照圖5,分別對應讀取電壓組V(1)~V(X)的葛雷碼計數組C(1)~C(X)可例如以表510的形式來被記錄。
在獲得分別對應讀取電壓組V(1)~V(X)的葛雷碼計數組C(1)~C(X)後,如箭頭A50所示,讀取電壓管理電路單元215(或葛雷碼計數電路2151)將所述第i個讀取電壓組的所述N個葛雷碼計數分別減一葛雷碼計數標準值,以獲得N個差值,並且將所述N個差值作為對應所述第i個讀取電壓組的N個葛雷碼計數偏離值(對應所述第i個讀取電壓組的N個葛雷碼計數偏離值亦可視為對應所述第i個讀取電壓組的葛雷碼計數偏離值組D(i))。如此一來,可獲得分別對應讀取電壓組V(1)~V(X)的葛雷碼計數偏離值組D(1)~D(X)。
在本實施例中,所述葛雷碼計數標準值可根據所讀取的多個目標記憶胞的總數量(亦稱,讀取記憶胞數量,Read Memory Cells Amount)來被設定。例如,所讀取的多個目標記憶胞的總數量為18592*8(在此例子下,此些被讀取之目標記憶胞中包括用以儲存為16千位元組大小的使用者資料的多個記憶胞及用以儲存為2208位元組大小的系統資料的多個記憶胞)。所述“18592”*8中的“18592”的值,亦可被稱為葛雷碼計數標準值(可用C
std表示)或葛雷碼計數平均值(可用C
avg表示)。換句話說,葛雷碼計數標準值為讀取記憶胞數量的值除以N,所述N的值如上所述會根據記憶體的物理規格而被預先設定,如,MLC:N=4;TLC:N=8;QLC:N=16。
應注意的是,在一實施例中,讀取電壓管理電路單元215(或葛雷碼計數電路2151)可利用下列的公式(F)來計算葛雷碼計數偏離值D(i)
k:
D(i)
k= |C(i)
k– C
std| (F)
其中i依據第一預定順序為1至X,並且k依據第三預定順序為1至N。即,所述葛雷碼計數偏離值為對應的葛雷碼計數值與葛雷碼計數標準值之間的差值的絕對值。
在獲得對應所述第i個讀取電壓組的N個葛雷碼計數偏離值後,分別對應讀取電壓組V(1)~V(X)的葛雷碼計數偏離值組D(1)~D(X)可例如以表520的形式來被記錄。此外,讀取電壓管理電路單元215(或葛雷碼計數電路2151)計算對應所述第i個讀取電壓組的所述N個葛雷碼計數偏離值的總和,並且將該總和作為所述X個葛雷碼計數偏離值總和中的第i個葛雷碼計數偏離值總和,其中所述第i個葛雷碼計數偏離值總和對應所述第i個讀取電壓組。例如,讀取電壓管理電路單元215(或葛雷碼計數電路2151)加總葛雷碼計數偏離值組D(1)中的所有的葛雷碼計數偏離值D(1)
1~D(1)
8,以將所獲得的總和作為葛雷碼計數偏離值總和SD(1)。所述葛雷碼計數偏離值總和SD(1)對應讀取電壓組V(1)。
接著,請再參照圖2,在步驟S25中,讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為最佳化讀取電壓組。
具體來說,在一實施例中,所述讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)辨識所述X個葛雷碼計數偏離值總和中小於一偏離值總和門檻值的多個目標葛雷碼計數偏離值總和。接著,所述讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)根據所述第一預定順序,將所述多個目標葛雷碼計數偏離值總和中排序在中間的一個目標葛雷碼計數偏離所對應的讀取電壓組作為所述最佳化讀取電壓組。
圖6A為根據本發明的一實施例所繪示的根據葛雷碼計數偏離值總和決定最佳化讀取電壓組的示意圖。舉例來說,請參照圖6A,為了方便說明,假設在此實施例中,共有13個讀取電壓組V(1)~V(13),所獲得的分別對應讀取電壓組V(1)~V(13)的葛雷碼計數偏離值總和SD(1)~SD(13)記錄如表610,並且偏離值總和門檻值為1500。讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)會辨識出葛雷碼計數偏離值總和SD(1)~SD(13)中小於偏離值總和門檻值的目標葛雷碼計數偏離值總和SD(7)、SD(8)、SD(9),其中目標葛雷碼計數偏離值總和SD(8)是依據第一預定順序,為目標葛雷碼計數偏離值總和SD(7)、SD(8)、SD(9)中排序在中間的目標葛雷碼計數偏離值總和。基此,讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)會將目標葛雷碼計數偏離值總和SD(8)所對應的讀取電壓組V(8)作為最佳化讀取電壓組。
應注意的是,若有兩個排序為中間的目標葛雷碼計數偏離值總和(如,圖6B中的目標葛雷碼計數偏離值總和SD(7)、SD(8)),則讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)會選擇其中的最小者(如,目標葛雷碼計數偏離值總和SD(7)),或是隨機選擇其中一個。
然而,在另一實施例中,所述讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)辨識所述X個葛雷碼計數偏離值總和中小於一偏離值總和門檻值的多個目標葛雷碼計數偏離值總和。接著,所述讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)將所述多個目標葛雷碼計數偏離值總和中最小的一個目標葛雷碼計數偏離所對應的讀取電壓組作為所述最佳化讀取電壓組。
圖6B為根據本發明的另一實施例所繪示的根據葛雷碼計數偏離值總和決定最佳化讀取電壓組的示意圖。舉例來說,請參照圖6B,為了方便說明,假設在此實施例中,共有13個讀取電壓組V(1)~V(13),所獲得的分別對應讀取電壓組V(1)~V(13)的葛雷碼計數偏離值總和SD(1)~SD(13)記錄如表620,並且偏離值總和門檻值為1500。讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)會辨識出葛雷碼計數偏離值總和SD(1)~SD(13)中小於偏離值總和門檻值的目標葛雷碼計數偏離值總和SD(6)、SD(7)、SD(8)、SD(9),其中目標葛雷碼計數偏離值總和SD(7)是目標葛雷碼計數偏離值總和SD(6)、SD(7)、SD(8)、SD(9)中的最小者。基此,讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)會將目標葛雷碼計數偏離值總和SD(7)所對應的讀取電壓組V(7)作為最佳化讀取電壓組。
應注意的是,若有多個最小的目標葛雷碼計數偏離值總和,則讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)會選擇其中的中間者,或是隨機選擇其中一個。
此外,廠商可調整所述偏離值總和門檻值的數值。例如,在一實施例中,廠商可根據所述多個目標記憶胞的物理條件來調整所述偏離值總和門檻值的數值。具體來說,根據可複寫式非揮發性記憶體模組220的種類及錯誤檢查與校正電路的解碼能力,所述偏離值總和門檻值的數值可被設定為不同的值。例如,錯誤檢查與校正電路的解碼能力越大,所述偏離值總和門檻值的數值可被設定為越大的值。
在選擇了最佳化讀取電壓組後,便完成整體對應所述多個目標記憶胞的讀取電壓最佳化操作。讀取電壓管理電路單元215(或讀取電壓最佳化電路2152)可記錄此最佳化讀取電壓組,以在爾後讀取具有相似物理條件的其他字元線時,可直接應用所記錄的最佳化讀取電壓組。又例如,同組的其他字元線可直接應用所記錄的最佳化讀取電壓組。
值得一提的是,本發明的核心概念為,若對應一讀取電壓組的葛雷碼計數組的多個葛雷碼計數的每一個與葛雷碼計數標準值之間的差值(即,葛雷碼計數偏離值)越小,則表示經由該讀取電壓組的所獲得的多個讀取位元值越接近當初所程式化至所述多個目標記憶胞的寫入資料,即,所經由所述讀取電壓組所讀取出的資料的品質會更好。因為,被寫入的資料都會先經過一個均勻程序(例如,擾亂操作,Scramble operation),以讓用以儲存所述被寫入資料的字元線的多個記憶胞可均勻地儲存所有種類的葛雷碼,進而使所有記憶胞的葛雷碼的個數都會接近葛雷碼計數標準值。即,預期中,若利用最佳的讀取電壓組所讀取的資料的葛雷碼計數偏離值總和應該會接近葛雷碼計數標準值。也就是說,葛雷碼計數偏離值總和越小的讀取電壓組是更好的讀取電壓組。基此,可利用此特性來找尋最佳的讀取電壓組。
換言之,本實施例的基本精神在於,經由使用最佳化讀取電壓組來讀取多個目標記憶胞,所讀取出的屬於不同葛雷碼的多個讀取位元值組的葛雷碼計數會接近於葛雷碼計數標準值。基此,所找尋到的最佳化讀取電壓組的葛雷碼計數偏離值總和相對於其他不適合的讀取電壓組的葛雷碼計數偏離值總和會較小。也就是說,經由使用最佳化讀取電壓組來讀取多個目標記憶胞所讀取出的資料的錯誤位元數會較低,即,利用具有越高的葛雷碼計數偏離值總和的讀取電壓組所讀出的資料會具有較高的錯誤位元數。
本領域具有通常知識者,當可依照此概念來改良上述實施例的解碼方法(讀取電壓最佳化方法/操作)。但,仍不脫離本發明的精神和範圍。本實施例所提供的解碼方法相較於傳統作法,僅需要分別利用X個讀取電壓組來讀取目標字元線X*M次(M為一記憶胞可儲存的位元值的數量),即,需要X*M次的讀取次數,就獲得目標字元線的最佳化讀取電壓組。但,前述第一種傳統作法區所需要的讀取次數會為(2
M-1)*X次。以TLC型快閃記憶體(一個記憶胞儲存3個位元值)為例,一個讀取電壓組內共有七個讀取電壓對應於不同電壓區段。採用第一種傳統方法,需固定六個讀取電壓,並改變一個讀取電壓,以進行讀取。若每個讀取電壓需調整X次(且經由讀取來獲得結果,以比較所有結果來找出最佳者),則為了獲得最佳讀取電壓所使用的讀取次數為(2
3-1)*X=7*X次。此外,上述傳統的作法還需要準備已經驗證的資料。換言之,第一種傳統作法會需要耗費大量的計算資源(調整讀取電壓及驗證對應的讀取扣資料)與儲存空間(用以儲存已驗證資料的空間)。
在讀取次數的差異上,本實施例所提供的解碼方法會大量減少耗費在讀取電壓最佳化操作的時間與計算資源,但還可達到第一種傳統作法的效用與精細度,進而增進了解碼操作(錯誤檢查與校正電路)的效率。
此外,相較於第二種傳統作法,本實施例所提供的解碼方法可利用較多的X個讀取電壓組,以獲得較第二種傳統作法精確的最佳化讀取電壓(第二種傳統作法的調整讀取電壓組的數量會小於本實施例所提供的X個讀取電壓組的數量)。
相較於第二種傳統作法的缺陷,即,第二種傳統作法的缺陷在於:失敗機率較高,並且所讀取的資料的錯誤位元數也會較高。本發明的實施例所提供的解碼方法以及儲存控制器,可完全克服第二種傳統作法的缺陷(因為,本發明的方法可以達到第一種傳統作法的精確度),進而降低了解碼操作(錯誤檢查與校正電路)的負擔。同時,也可以利用本發明的讀取電壓快篩操作及後續的讀取電壓最佳化操作,快速且有效率地找到最佳化讀取電壓組。換言之,本發明的實施例所提供的解碼方法以及儲存控制器,可同時擁有兩種傳統作法的優點,又改善了兩種傳統作法的缺陷。
綜上所述,本發明實施例所提供的解碼方法以及儲存控制器,可在不需要準備已驗證資料的情況下,對任何目標字元線執行對應所述目標字元線的讀取電壓最佳化操作。在所述讀取電壓最佳化操作,儲存控制器可直接使用多個不同的讀取電壓組來獲得多個不同的葛雷碼計數偏離值總和,以根據所述多個X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為最佳化讀取電壓組,以組成對應所述目標字元線的最佳化讀取電壓組,進而藉由利用所述最佳化讀取電壓組來增進了所讀取資料的正確性且增進了用於讀取之解碼操作整體的效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
214‧‧‧錯誤檢查與校正電路
215‧‧‧讀取電壓管理電路單元
2151‧‧‧葛雷碼計數電路
2152‧‧‧讀取電壓最佳化電路
216‧‧‧緩衝記憶體
217‧‧‧電源管理電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
S21、S23、S25‧‧‧解碼方法的流程步驟
Voffset‧‧‧預定電壓差
V(1)、V(2)、~、V(13)、V(X)、V(i)‧‧‧讀取電壓組
V(1)1~V(1)7、V(2)1~V(2)7‧‧‧讀取電壓
C(1)~C(X)‧‧‧葛雷碼計數組
D(1)~D(X)‧‧‧葛雷碼計數偏離值組
SD(1)、SD(2)、~、SD(13)、SD(X)、SD(i)‧‧‧葛雷碼計數偏離值總和
C(1)1~C(1)7、C(2)1~C(2)7、C(X)1~C(X)7‧‧‧葛雷碼計數
D(1)1~D(1)7、D(2)1~D(2)7、D(X)1~D(X)7‧‧‧葛雷碼計數偏離值
510、520、610、620‧‧‧表
A50‧‧‧箭頭
G1~G8‧‧‧儲存狀態/葛雷碼
L‧‧‧下實體頁面的位元值
M‧‧‧中實體頁面的位元值
U‧‧‧上實體頁面的位元值
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2是根據本發明的一實施例所繪示的解碼方法的流程圖。 圖3為根據本發明的一實施例所繪示的經由第一讀取電壓組所讀取的對應N個葛雷碼的位元值的多個記憶胞的臨界電壓分佈及對應的多個葛雷碼計數的示意圖。 圖4為根據本發明的一實施例所繪示的兩個不同的讀取電壓組及其中的電壓差的示意圖。 圖5是根據本發明的一實施例所繪示的計算葛雷碼計數偏離值的示意圖。 圖6A為根據本發明的一實施例所繪示的根據葛雷碼計數偏離值總和決定最佳化讀取電壓組的示意圖。 圖6B為根據本發明的另一實施例所繪示的根據葛雷碼計數偏離值總和決定最佳化讀取電壓組的示意圖。
Claims (16)
- 一種解碼方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個字元線,其中該些字元線的每一個字元線耦接多個記憶胞,其中該些記憶胞中的每一個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)的其中之一的位元值,並且該些葛雷碼的總數為N,N為大於2的一第一預定正整數,所述方法包括:選擇該些字元線中的一目標字元線,其中該目標字元線的多個目標記憶胞皆已被程式化;分別利用不同的X個讀取電壓組讀取該些目標記憶胞,以獲得X個葛雷碼計數偏離值總和,其中X為一第二預定正整數,並且所述X個讀取電壓組以及對應的所述X個葛雷碼計數偏離值總和皆以一第一預定順序排列,其中每一個所述X個讀取電壓組具有依據一第二預定順序排列的N-1個讀取電壓,並且所述X個葛雷碼計數偏離值總和中的第i個葛雷碼計數偏離值總和對應所述X個讀取電壓組中第i個讀取電壓組,其中i依據該第一預定順序為1至X,其中i為正整數;以及根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為一最佳化讀取電壓組。
- 申請專利範圍第1項所述的解碼方法,其中所述X個讀取電壓組中的第i個讀取電壓組的第j個讀取電壓與第i+1個讀取電壓組的第j個讀取電壓之間的電壓差值固定為一第一預定電壓差,其中j依據該第二預定順序為1至N-1,其中j為正整數。
- 申請專利範圍第1項所述的解碼方法,其中所述X個讀取電壓組中的第i個讀取電壓組的第j個讀取電壓與第i+1個讀取電壓組的第j個讀取電壓之間的電壓差值不是固定的,其中j依據該第二預定順序為1至N-1,其中j為正整數。
- 如申請專利範圍第1項所述的解碼方法,其中上述分別利用不同的X個讀取電壓組讀取該些目標記憶胞,以獲得所述X個葛雷碼計數偏離值總和的步驟包括:選擇所述X個讀取電壓組中的第i個讀取電壓組,其中i的數值依據該第一預定順序為1至X;利用所述第i個讀取電壓組的N-1個讀取電壓分別讀取該些目標記憶胞,以獲得多個讀取位元值;根據N個葛雷碼來區分該些讀取位元值為N個讀取位元值組,其中所述N個讀取位元值組中的第k個讀取位元值組屬於所述N個葛雷碼中的第k個葛雷碼;總計所述第k個讀取位元值組的讀取位元值的個數為所述第i個讀取電壓組的對應所述第k個葛雷碼的葛雷碼計數(Grey Code Counts),以獲得所述第i個讀取電壓組的N個葛雷碼計數,其中所述N個葛雷碼計數以一第三預定順序排列,並且k依據該第三預定順序為1至N,其中k為正整數;將所述第i個讀取電壓組的所述N個葛雷碼計數分別減一葛雷碼計數標準值,以獲得N個差值,並且將所述N個差值的絕對值作為對應所述第i個讀取電壓組的N個葛雷碼計數偏離值;以及計算對應所述第i個讀取電壓組的所述N個葛雷碼計數偏離值的總和,並且將該總和作為所述X個葛雷碼計數偏離值總和中的第i個葛雷碼計數偏離值總和,其中所述第i個葛雷碼計數偏離值總和對應所述第i個讀取電壓組。
- 如申請專利範圍第1項所述的解碼方法,其中上述選擇該些字元線中的該目標字元線的步驟包括:於一特定時間點,選擇該目標字元線,其中該特定時間點包括下列條件的其中之一:該儲存裝置閒置超過一預定時間門檻值時;該儲存裝置開電時;以及當從一字元線所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,其中該字元線被設定為該目標字元線。
- 如申請專利範圍第1項所述的解碼方法,更包括:反應於選擇該目標字元線,辨識該目標字元線的多個統計值;以及根據所述多個統計值的至少其中之一來調整所述X個讀取電壓組中相鄰的兩個讀取電壓組之間的預定電壓差的大小且調整第二預定正整數的值,其中所述多個統計值包括:該目標字元線的抹除次數值;該目標字元線的讀取次數值;該目標字元線的久存時間值;以及該目標字元線所儲存資料的錯誤位元數。
- 如申請專利範圍第1項所述的解碼方法,其中上述根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為該最佳化讀取電壓組的步驟包括:辨識所述X個葛雷碼計數偏離值總和中小於一偏離值總和門檻值的多個目標葛雷碼計數偏離值總和;以及根據該第一預定順序,將該些目標葛雷碼計數偏離值總和中排序在中間的一個目標葛雷碼計數偏離所對應的讀取電壓組作為該最佳化讀取電壓組。
- 如申請專利範圍第1項所述的解碼方法,其中上述根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為該最佳化讀取電壓組的步驟包括:辨識所述X個葛雷碼計數偏離值總和中小於一偏離值總和門檻值的多個目標葛雷碼計數偏離值總和;以及將該些目標葛雷碼計數偏離值總和中最小的一個目標葛雷碼計數偏離所對應的讀取電壓組作為該最佳化讀取電壓組。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括:一連接介面電路,用以耦接至一主機系統;一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個字元線,其中該些字元線的每一個字元線包括多個記憶胞,其中該些記憶胞中的每一個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)的其中之一的位元值,並且該些葛雷碼的總數為N,N為大於2的一第一預定正整數;一讀取電壓管理電路單元;以及一處理器,耦接至該連接介面電路、該記憶體介面控制電路及該讀取電壓管理電路單元,其中該處理器選擇該些字元線中的一目標字元線,並且指示該讀取電壓管理電路單元進行對應該目標字元線的一讀取電壓最佳化操作,其中該目標字元線的多個目標記憶胞皆已被程式化,其中在所述讀取電壓最佳化操作中,該讀取電壓管理電路單元用以分別利用不同的X個讀取電壓組讀取該些目標記憶胞,以獲得X個葛雷碼計數偏離值總和,其中X為一第二預定正整數,並且所述X個讀取電壓組以及對應的所述X個葛雷碼計數偏離值總和皆以一第一預定順序排列,其中每一個所述X個讀取電壓組具有依據一第二預定順序排列的N-1個讀取電壓,並且所述X個葛雷碼計數偏離值總和中的第i個葛雷碼計數偏離值總和對應所述X個讀取電壓組中第i個讀取電壓組,其中i依據該第一預定順序為1至X,其中i為正整數,其中該讀取電壓管理電路單元更用以根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為一最佳化讀取電壓組。
- 申請專利範圍第9項所述的儲存控制器,其中所述X個讀取電壓組中的第i個讀取電壓組的第j個讀取電壓與第i+1個讀取電壓組的第j個讀取電壓之間的電壓差值固定為一第一預定電壓差,其中j依據該第二預定順序為1至N-1,其中j為正整數。
- 申請專利範圍第9項所述的儲存控制器,其中所述X個讀取電壓組中的第i個讀取電壓組的第j個讀取電壓與第i+1個讀取電壓組的第j個讀取電壓之間的電壓差值不是固定的,其中j依據該第二預定順序為1至N-1,其中j為正整數。
- 如申請專利範圍第9項所述的儲存控制器,其中在上述分別利用不同的X個讀取電壓組讀取該些目標記憶胞,以獲得所述X個葛雷碼計數偏離值總和的運作中,該讀取電壓管理電路單元選擇所述X個讀取電壓組中的第i個讀取電壓組,其中i的數值依據該第一預定順序為1至X;該讀取電壓管理電路單元利用所述第i個讀取電壓組的N-1個讀取電壓分別讀取該些目標記憶胞,以獲得多個讀取位元值;該讀取電壓管理電路單元根據N個葛雷碼來區分該些讀取位元值為N個讀取位元值組,其中所述N個讀取位元值組中的第k個讀取位元值組屬於所述N個葛雷碼中的第k個葛雷碼;該讀取電壓管理電路單元總計所述第k個讀取位元值組的讀取位元值的個數為所述第i個讀取電壓組的對應所述第k個葛雷碼的葛雷碼計數(Grey Code Counts),以獲得所述第i個讀取電壓組的N個葛雷碼計數,其中所述N個葛雷碼計數以一第三預定順序排列,並且k依據該第三預定順序為1至N,其中k為正整數;該讀取電壓管理電路單元將所述第i個讀取電壓組的所述N個葛雷碼計數分別減一葛雷碼計數標準值,以獲得N個差值,並且將所述N個差值的絕對值作為對應所述第i個讀取電壓組的N個葛雷碼計數偏離值;以及該讀取電壓管理電路單元計算對應所述第i個讀取電壓組的所述N個葛雷碼計數偏離值的總和,並且將該總和作為所述X個葛雷碼計數偏離值總和中的第i個葛雷碼計數偏離值總和,其中所述第i個葛雷碼計數偏離值總和對應所述第i個讀取電壓組。
- 如申請專利範圍第9項所述的儲存控制器,其中在上述選擇該些字元線中的該目標字元線的運作中,該處理器於一特定時間點,選擇該目標字元線,其中該特定時間點包括下列條件的其中之一:該儲存裝置閒置超過一預定時間門檻值時;該儲存裝置開電時;以及當從一字元線所讀取的資料的錯誤位元數超過一錯誤位元數門檻值時,其中該字元線被設定為該目標字元線。
- 如申請專利範圍第9項所述的儲存控制器,其中該處理器反應於選擇該目標字元線,辨識該目標字元線的多個統計值;以及該處理器根據所述多個統計值的至少其中之一來調整所述X個讀取電壓組中相鄰的兩個讀取電壓組之間的預定電壓差的大小且調整第二預定正整數的值,其中所述多個統計值包括:該目標字元線的抹除次數值;該目標字元線的讀取次數值;該目標字元線的久存時間值;以及該目標字元線所儲存資料的錯誤位元數。
- 如申請專利範圍第9項所述的儲存控制器,其中在上述根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為該最佳化讀取電壓組的運作中,該讀取電壓管理電路單元辨識所述X個葛雷碼計數偏離值總和中小於一偏離值總和門檻值的多個目標葛雷碼計數偏離值總和;以及該讀取電壓管理電路單元根據該第一預定順序,將該些目標葛雷碼計數偏離值總和中排序在中間的一個目標葛雷碼計數偏離所對應的讀取電壓組作為該最佳化讀取電壓組。
- 如申請專利範圍第9項所述的儲存控制器,其中在上述根據所述X個葛雷碼計數偏離值總和來選擇所述X個讀取電壓組之中的一個讀取電壓組作為該最佳化讀取電壓組的運作中,該讀取電壓管理電路單元辨識所述X個葛雷碼計數偏離值總和中小於一偏離值總和門檻值的多個目標葛雷碼計數偏離值總和;以及該讀取電壓管理電路單元將該些目標葛雷碼計數偏離值總和中最小的一個目標葛雷碼計數偏離所對應的讀取電壓組作為該最佳化讀取電壓組。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107111387A TWI650757B (zh) | 2018-03-30 | 2018-03-30 | 解碼方法以及儲存控制器 |
US16/032,079 US10460815B2 (en) | 2018-03-30 | 2018-07-11 | Decoding method of selecting optimized read voltage set based on gray code count deviation summations, and storage controller using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107111387A TWI650757B (zh) | 2018-03-30 | 2018-03-30 | 解碼方法以及儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI650757B true TWI650757B (zh) | 2019-02-11 |
TW201942909A TW201942909A (zh) | 2019-11-01 |
Family
ID=66213694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107111387A TWI650757B (zh) | 2018-03-30 | 2018-03-30 | 解碼方法以及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10460815B2 (zh) |
TW (1) | TWI650757B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913829A (zh) * | 2019-05-10 | 2020-11-10 | 深圳大心电子科技有限公司 | 数据读取方法、存储控制器与存储装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102535110B1 (ko) * | 2018-10-01 | 2023-05-23 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10734071B2 (en) * | 2018-12-13 | 2020-08-04 | Western Digital Technologies, Inc. | Multi-level cell programming using optimized multiphase mapping with balanced Gray code |
TW202025165A (zh) * | 2018-12-22 | 2020-07-01 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
US11133067B2 (en) | 2019-03-08 | 2021-09-28 | Western Digital Technologies, Inc. | Multi-phased programming with balanced gray coding |
TWI722867B (zh) * | 2020-04-14 | 2021-03-21 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN111538687B (zh) * | 2020-04-22 | 2022-01-04 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102077298A (zh) * | 2008-06-30 | 2011-05-25 | 桑迪士克公司 | 在非易失性存储器中的读取干扰减轻 |
CN102246241A (zh) * | 2008-12-18 | 2011-11-16 | 桑迪士克股份有限公司 | 非易失性存储器的数据刷新 |
US8159881B2 (en) * | 2009-06-03 | 2012-04-17 | Marvell World Trade Ltd. | Reference voltage optimization for flash memory |
US20130003459A1 (en) * | 2011-06-28 | 2013-01-03 | Seagate Technology Llc | Read Error Recovery for Solid-State Memory Based on Cumulative Background Charges |
US9025393B2 (en) * | 2013-03-25 | 2015-05-05 | Seagate Technology Llc | Method of optimizing solid state drive soft retry voltages |
TW201535384A (zh) * | 2014-03-13 | 2015-09-16 | Phison Electronics Corp | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN107527644A (zh) * | 2017-08-28 | 2017-12-29 | 郑州云海信息技术有限公司 | 一种固态硬盘读参考电压的优化方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8456919B1 (en) * | 2011-11-10 | 2013-06-04 | Sandisk Technologies Inc. | Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder |
US9697905B2 (en) * | 2013-05-31 | 2017-07-04 | Sandisk Technologies Llc | Updating read voltages using syndrome weight comparisons |
US9478292B2 (en) * | 2013-10-27 | 2016-10-25 | Sandisk Technologies Llc | Read operation for a non-volatile memory |
-
2018
- 2018-03-30 TW TW107111387A patent/TWI650757B/zh active
- 2018-07-11 US US16/032,079 patent/US10460815B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102077298A (zh) * | 2008-06-30 | 2011-05-25 | 桑迪士克公司 | 在非易失性存储器中的读取干扰减轻 |
CN102246241A (zh) * | 2008-12-18 | 2011-11-16 | 桑迪士克股份有限公司 | 非易失性存储器的数据刷新 |
US8159881B2 (en) * | 2009-06-03 | 2012-04-17 | Marvell World Trade Ltd. | Reference voltage optimization for flash memory |
US20130003459A1 (en) * | 2011-06-28 | 2013-01-03 | Seagate Technology Llc | Read Error Recovery for Solid-State Memory Based on Cumulative Background Charges |
US9025393B2 (en) * | 2013-03-25 | 2015-05-05 | Seagate Technology Llc | Method of optimizing solid state drive soft retry voltages |
TW201535384A (zh) * | 2014-03-13 | 2015-09-16 | Phison Electronics Corp | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN107527644A (zh) * | 2017-08-28 | 2017-12-29 | 郑州云海信息技术有限公司 | 一种固态硬盘读参考电压的优化方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913829A (zh) * | 2019-05-10 | 2020-11-10 | 深圳大心电子科技有限公司 | 数据读取方法、存储控制器与存储装置 |
CN111913829B (zh) * | 2019-05-10 | 2024-05-17 | 深圳大心电子科技有限公司 | 数据读取方法、存储控制器与存储装置 |
Also Published As
Publication number | Publication date |
---|---|
US10460815B2 (en) | 2019-10-29 |
TW201942909A (zh) | 2019-11-01 |
US20190304546A1 (en) | 2019-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI650757B (zh) | 解碼方法以及儲存控制器 | |
TWI623878B (zh) | 資料讀取方法以及儲存控制器 | |
TWI661427B (zh) | 記憶體管理方法以及儲存控制器 | |
TWI651726B (zh) | 解碼方法以及儲存控制器 | |
US10579518B2 (en) | Memory management method and storage controller | |
TWI651721B (zh) | 解碼方法以及儲存控制器 | |
US10817416B2 (en) | Memory management method and storage controller | |
TW201945936A (zh) | 記憶體管理方法以及儲存控制器 | |
TWI640008B (zh) | 資料讀取方法以及儲存控制器 | |
TW202025165A (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
US10748599B1 (en) | Data reading method, storage controller and storage device background of the disclosure | |
TW201724110A (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN111258505B (zh) | 快闪存储器的数据合并方法、控制电路单元与存储装置 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI616807B (zh) | 資料寫入方法以及儲存控制器 | |
US10509583B1 (en) | Memory management method and storage controller | |
US10474386B1 (en) | Memory management method and storage controller | |
CN110471612B (zh) | 存储器管理方法以及存储控制器 | |
TW201835753A (zh) | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI684180B (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
CN110377538B (zh) | 存储器管理方法以及存储控制器 | |
CN110364197B (zh) | 解码方法以及存储控制器 | |
CN110364207B (zh) | 解码方法以及储存控制器 | |
CN109273037B (zh) | 数据读取方法以及存储控制器 | |
US20200081653A1 (en) | Memory management method, memory storage device and memory control circuit unit |