TWI667606B - 記憶體管理方法以及儲存控制器 - Google Patents
記憶體管理方法以及儲存控制器 Download PDFInfo
- Publication number
- TWI667606B TWI667606B TW107123575A TW107123575A TWI667606B TW I667606 B TWI667606 B TW I667606B TW 107123575 A TW107123575 A TW 107123575A TW 107123575 A TW107123575 A TW 107123575A TW I667606 B TWI667606 B TW I667606B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage state
- target
- bit value
- storage
- value ratio
- Prior art date
Links
Classifications
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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
-
- 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
- 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/26—Sensing or reading circuits; Data output circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供一種記憶體管理方法。所述方法包括選擇可複寫式非揮發性記憶體模組的多個實體程式化單元中的目標實體程式化單元;根據所述可複寫式非揮發性記憶體模組的記憶體類型辨識目標儲存狀態與目標讀取電壓;使用所述目標讀取電壓來讀取所述目標實體程式化單元以獲得位元值比率;以及根據所述位元值比率來辨識所述目標實體程式化單元的儲存態樣。
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的記憶體管理方法與儲存控制器。
對於配置有可複寫式非揮發性記憶體模組的儲存裝置來說,判斷/辨識空頁(空白的儲存單元)的位置與存在是很重要的一個過程。原因在於,儲存裝置的儲存控制器需要辨別一個儲存單元是否為空白的,以確實地管理所有可使用的儲存空間或分配/管理尚未被使用的儲存空間。此外,若能夠精確地辨識已經被使用的儲存單元,也助於儲存控制器對已儲存的資料來進行維護。
一般來說,當儲存控制器要判斷一個儲存單元是否為空白的,儲存控制器會讀取此儲存單元,以根據所讀取的為「1」的位元值的數量是否大於預定值的判斷結果來判斷此儲存單元是否為。然而,在所儲存資料經過了長時間的存放後,上述的傳統作法會導致空白儲存單元的誤判。嚴重的話,會發生所判定的為空
白的儲存單元實際上有存放資料的情形,進而導致了資料的損毀或儲存空間的管理與辨識上的困難。
此外,若可複寫式非揮發性記憶體模組的記憶體類型為MLC等一個記憶胞可儲存多個位元值的記憶體類型,傳統作法上,儲存控制器還需要針對儲存單元的對應每個位元值的實體頁面(如,針對上、下實體頁面)來執行多次的讀取操作以判斷是否為空白的,以判斷儲存單元的儲存態樣(儲存態樣如:“空白的”、“僅上實體頁面為空白的”、“上實體頁面與下實體頁面皆非空白的”),進而增加了讀取次數與誤差發生的可能性。
因此,如何快速、簡單且準確地判斷儲存單元的儲存態樣,進而提昇可複寫式非揮發性記憶體模組的儲存空間管理效率,是本領域人員研究的課題之一。
本發明提供一種記憶體管理方法(亦稱,儲存態樣管理方法)與儲存控制器,可快速且準確地辨識儲存單元的儲存態樣,進而增加了儲存裝置的使用空間的管理效率。
本發明的一實施例提供適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的一種記憶體管理方法。所述可複寫式非揮發性記憶體模組具有多個實體程式化單元,其中所述多個實體程式化單元的每一個實體程式化單元具有多個記憶胞。所述方法包括選擇所述多個實體程式化單元中的一目標實體程式化單元,
其中所述目標實體程式化單元具有多個第一記憶胞;根據所述可複寫式非揮發性記憶體模組的記憶體類型辨識一目標儲存狀態,並且根據所述目標儲存狀態與對應所述目標儲存狀態的預設讀取電壓獲得目標讀取電壓;使用所述目標讀取電壓來讀取所述目標實體程式化單元,以辨識所述多個第一記憶胞中的多個第二記憶胞,其中所述多個第二記憶胞的儲存狀態為所述目標儲存狀態,其中所述多個第二記憶胞的臨界電壓分佈小於所述多個第一記憶胞中的多個第三記憶胞的臨界電壓分佈,其中所述多個第三記憶胞的儲存狀態不同於所述目標儲存狀態;根據所述多個第二記憶胞來計算位元值比率;以及根據所述位元值比率來辨識所述目標實體程式化單元的儲存態樣。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器。所述儲存控制器包括:連接介面電路、記憶體介面控制電路、儲存狀態管理電路單元以及處理器。連接介面電路用以耦接至主機系統。記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組。所述可複寫式非揮發性記憶體模組具有多個實體程式化單元,其中所述多個實體程式化單元的每一個實體程式化單元具有多個記憶胞。處理器耦接至所述連接介面電路、所述記憶體介面控制電路及所述儲存狀態管理電路單元。所述處理器選擇所述多個實體程式化單元中的目標實體程式化單元以指示所述儲存狀態管理電路單元對所述目標實體程式化單元執行儲存狀態辨識操作,其中所述目
標實體程式化單元具有多個第一記憶胞。在所述儲存狀態辨識操作中,所述儲存狀態管理電路單元用以所述儲存狀態管理電路單元用以根據所述可複寫式非揮發性記憶體模組的記憶體類型辨識目標儲存狀態,並且根據所述目標儲存狀態與對應所述目標儲存狀態的預設讀取電壓獲得目標讀取電壓;所述儲存狀態管理電路單元更用以使用所述目標讀取電壓來讀取所述目標實體程式化單元,以辨識所述多個第一記憶胞中的多個第二記憶胞,其中所述多個第二記憶胞的儲存狀態為所述目標儲存狀態,其中所述多個第二記憶胞的臨界電壓分佈小於所述多個第一記憶胞中的多個第三記憶胞的臨界電壓分佈,其中所述多個第三記憶胞的儲存狀態不同於所述目標儲存狀態;所述儲存狀態管理電路單元更用以根據所述多個第二記憶胞來計算位元值比率;以及所述儲存狀態管理電路單元更用以根據所述位元值比率來辨識所述目標實體程式化單元的儲存態樣。
基於上述,本發明實施例所提供的記憶體管理方法以及儲存控制器,可針對可複寫式非揮發性記憶體模組的記憶體類型辨識目標實體程式化單元的目標儲存狀態與對應的目標讀取電壓,並且經由所述目標讀取電壓獲得的位元值比率來直接辨識目標實體程式化單元的儲存態樣,以增進了辨識實體程式化單元的儲存態樣的效率與準確性,進而增加儲存裝置管理已使用空間與未使用空間的效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉
實施例,並配合所附圖式作詳細說明如下。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
214‧‧‧錯誤檢查與校正電路
215‧‧‧儲存狀態管理電路單元
2151‧‧‧葛雷碼計數電路
2152‧‧‧儲存狀態判斷電路
216‧‧‧緩衝記憶體
217‧‧‧電源管理電路
220‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
S21、S23、S25、S27‧‧‧記憶體管理方法的流程步驟
SS0、SS1、SS2、MS1、MS2、MS3、MS4、TS1、TS2、TS3、
TS4、TSS、TS6、TS7、TS8‧‧‧臨界電壓分佈
L‧‧‧下實體頁面的位元值/儲存狀態
M‧‧‧中實體頁面的位元值/儲存狀態
U‧‧‧上實體頁面的位元值/儲存狀態
V(1)、V(2)‧‧‧讀取電壓
A300、A301、A302、A303、A400、A401、A402、A403、A500、A501、A502、A503‧‧‧箭頭
600‧‧‧表
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。
圖2是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。
圖3A為根據本發明的一實施例所繪示的對應單階記憶胞(SLC)NAND型快閃記憶體模組的多個記憶胞的目標儲存狀態與對應的目標讀取電壓的示意圖。
圖3B為根據本發明的一實施例所繪示的針對單階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
圖3C為根據本發明的一實施例所繪示的針對單階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
圖4A為根據本發明的一實施例所繪示的對應多階記憶胞(MLC)NAND型快閃記憶體模組的多個記憶胞的目標儲存狀態與對應的目標讀取電壓的示意圖。
圖4B為根據本發明的一實施例所繪示的針對多階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
圖4C為根據本發明的一實施例所繪示的針對多階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
圖4D為根據本發明的一實施例所繪示的針對多階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
圖5A為根據本發明的一實施例所繪示的對應三階記憶胞(TLC)NAND型快閃記憶體模組的多個記憶胞的目標儲存狀態與對應的目標讀取電壓的示意圖。
圖5B為根據本發明的一實施例所繪示的針對三階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
圖5C為根據本發明的一實施例所繪示的針對三階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
圖6為根據本發明的一實施例所繪示的位元值比率與儲存態樣的關係的示意圖。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(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 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、錯誤檢查與校正電路214與儲存狀態管理電路單元215。應注意的是,儲存控制器210各部件所執行的操作亦可視為儲存控制器210所執行的操作。
其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性
記憶體模組220的一或多個實體單元中讀取資料(資料可讀取自一或多個實體單元中的一或多個記憶胞),並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。
記憶體介面控制電路213用以接受處理器211(或儲存狀態管理電路單元215)的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。例如,根據儲存狀態管理電路單元215的指示使用特定的讀取電壓來進行對於可複寫式非揮發性記憶體模組220的一儲存單元的讀取操作。
舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元(亦稱,目標實體單元)中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可
複寫式非揮發性記憶體模組220執行相對應的操作。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211(或儲存狀態管理電路單元215)要存取可複寫式非揮發性記憶體模組220,處理器211(或儲存狀態管理電路單元215)會傳送對應的指令序列給記憶體介面控制電路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具有多個字元線,其中所述多個字元線的每一個字元線包括多個記憶胞。同一條字元線上的多個記憶胞會組成一或多個實體程式化單元(實體頁面)。此外,多個實體程式化單元可組成一個實體單元(實體區塊或實體抹除單元)。在本實施例中,一個實體程式化單元可具有不同類型的實體頁面。舉例來說,在一實施例中,對於三階記憶胞NAND型快閃記憶體模組來說,三階記憶胞NAND型快閃記憶體模組的一個實體程式化單元可具有第一類型實體頁面、第二類型實體頁面與第三類型實體頁面。所述第一類型實體頁面例如為儲存一個位元值的下實體頁面(Lower Physical Page);所述第二類型實體頁面例如為儲存一個位元值的中實體頁面(Middle Physical Page);所述第三類型實體頁面例如為儲存一個位元值的上實體頁面(Upper Physical Page)。一般來說,當欲寫入資料至三階記憶胞NAND型快閃記憶體模組的一個實體程式化單元
的上、中、下實體頁面時,會依序從下實體頁面開始寫入資料,再寫入至中實體頁面,最後寫入至上實體頁面。換言之,亦可稱為依據寫入的順序,在同一個實體程式化單元中的多個實體頁面中,第一個被寫入資料的為第一類型實體頁面,第二個被寫入資料的為第二類型實體頁面,第三個被寫入資料的為第三類型實體頁面,以此類推。
在本實施例中,實體抹除單元為抹除之最小單位,即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。每一實體抹除單元會具有多個實體程式化單元。一個實體抹除單元可以是指任意數目的實體程式化單元組成,視實務上的需求而定。
在以下實施例中,是以一個實體區塊作為一個實體抹除單元(亦可稱為,實體單元)的範例,並且每一個實體程式化單元被視為一個實體子單元。此外,必須瞭解的是,當處理器211對可複寫式非揮發性記憶體模組220中的實體程式化單元(或實體單元)進行分組以執行對應的管理操作時,此些實體程式化單元(或實體單元)是被邏輯地分組,而其實際位置並未更動。
為了方便說明,在以下的實施例中,一個實體程式化單元會被視為一個儲存單元,並且以下的實施例會針對一實體程式化單元來說明儲存狀態辨識操作及其所使用的記憶體管理方法。
儲存控制器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中接收到寫入指令時,錯誤檢查與校正電路214會為對應此寫入指令的資料產生對應的錯誤更正碼(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為用以執行儲存狀態辨識操作的電路集合單元(硬體)。儲存狀態管理電路單元215各部件所執行的操作亦可視為儲存狀態管理電路單元215所執行的操作。儲存狀態管理電路單元215亦可用以記錄關於每個儲存單元的儲存態樣的資訊(如,所有儲存單元的儲存態樣與總容量等資訊)以及用以記錄對應不同的可
複寫式非揮發性記憶體模組220的記憶體類型的多個儲存態樣與位元值比率的關係的資訊(如,位元值比率轉儲存態樣映射表)。所述儲存單元可為字元線、實體程式化單元或實體抹除單元,但為了方便說明,以下以實體程式化單元做為儲存單元為例子來闡述本發明的記憶體管理方法與儲存控制器。
以下會配合多個圖式來詳細說明儲存狀態管理電路單元215如何進行儲存狀態辨識操作的細節以及葛雷碼計數電路2151與儲存狀態判斷電路2152的功能。
圖2是根據本發明的一實施例所繪示的記憶體管理方法的流程圖。應注意的是,圖2所繪示的的記憶體管理方法亦可稱為儲存狀態辨識方法。請同時參照圖1與圖2,在步驟S21中,處理器211選擇可複寫式非揮發性記憶體模組的多個實體程式化單元中的目標實體程式化單元。目標實體程式化單元所具有全部記憶胞可稱為第一記憶胞。
具體來說,處理器211可在特定的時間點來選擇可複寫式非揮發性記憶體模組220的多個實體程式化單元中的其中之一個實體程式化單元(亦稱,目標實體程式化單元),並且指示儲存狀態管理電路單元215來對此目標實體程式化單元進行儲存狀態辨識操作。舉例來說,特定的時間點包括:(1)儲存裝置20閒暇(即,儲存裝置20閒置超過一預定時間門檻值)時;(2)儲存裝置開電時;或(3)執行對應一突然斷電事件的恢復操作時。
處理器211(或儲存狀態管理電路單元215)可在尚未確
認儲存狀態的多個實體程式化單元中對其中的每個實體程式化單元來分別執行儲存狀態辨識操作,其中被選擇來執行儲存狀態辨識操作的實體程式化單元即為目標實體程式化單元。在另一實施例中,處理器211(或儲存狀態管理電路單元215)可在可複寫式非揮發性記憶體模組220的所有實體程式化單元中分別選擇不同的實體程式化單元來做為目標實體程式化單元來執行儲存狀態辨識操作。
此外,處理器211(或儲存狀態管理電路單元215)亦可直接對開放實體抹除單元(即,當前被用以儲存寫入資料的實體抹除單元或實體區塊)的所有實體程式化單元分別執行儲存狀態辨識操作。
在選擇目標實體程式化單元後,接續至步驟S23,儲存狀態管理電路單元215根據可複寫式非揮發性記憶體模組的記憶體類型辨識目標儲存狀態,並且根據所述目標儲存狀態與對應所述目標儲存狀態的預設讀取電壓獲得目標讀取電壓。
具體來說,目標實體程式化單元為多個第一記憶胞(亦稱,目標記憶胞)所構成的。每個記憶胞用以被程式化以儲存對應不同的多個葛雷碼(Grey Code)(亦稱,儲存狀態)的其中之一的位元值,並且所述葛雷碼的總數為N,N為大於或等於2的一第一預定正整數。對應為不同型態的NAND型快閃記憶體(不同記憶體類型)的可複寫式非揮發性記憶體模組220,N的值也會不同。例如,若可複寫式非揮發性記憶體模組220是單階記憶胞
NAND型快閃記憶體模組,N等於2;若可複寫式非揮發性記憶體模組220是多階記憶胞NAND型快閃記憶體模組,N等於4;若可複寫式非揮發性記憶體模組220是三階記憶胞NAND型快閃記憶體模組,N等於8;若可複寫式非揮發性記憶體模組220是四階記憶胞NAND型快閃記憶體模組,N等於16,依此類推。換言之,N的數值與對應的多個儲存狀態是根據可複寫式非揮發性記憶體模組220的記憶體類型而被決定的。
在本實施例中,上述根據所述可複寫式非揮發性記憶體模組的所述記憶體類型辨識所述目標儲存狀態的步驟包括:儲存狀態管理電路單元215(如,葛雷碼計數電路2151)根據所述可複寫式非揮發性記憶體模組的所述記憶體類型辨識依據第一順序排列的多個儲存狀態;以及儲存狀態管理電路單元215(如,葛雷碼計數電路2151)將在所述多個儲存狀態中排列在第一個的儲存狀態作為所述目標儲存狀態。
在本實施例中,上述根據所述目標儲存狀態與對應所述目標儲存狀態的預設讀取電壓獲得所述目標讀取電壓的步驟包括:根據所述可複寫式非揮發性記憶體模組的所述記憶體類型辨識對應所述記憶體類型的讀取電壓組,其中所述讀取電壓組具有依據所述第一順序排列的多個讀取電壓;將所述多個讀取電壓中排列在第一個的讀取電壓作為所述預設讀取電壓,調整所述預設讀取電壓以獲得所述目標讀取電壓。以下分別藉由圖3A、4A、5A來說明對應不同記憶體類型所辨識的目標儲存狀態與對應的目標
讀取電壓。
此外,還需提醒的是,在以下的實施例中,儲存在目標實體程式化單元的資料皆已經過擾亂程序(如,經由擾亂器scrambler),以均勻地依據不同的資料位元值而被儲存至目標實體程式化單元(即,儲存在目標實體程式化單元的不同的儲存狀態的資料位元值各自的總數目是相近的)。並且,在利用目標讀取電壓讀取目標實體程式化單元時,會直接讀取儲存在目標實體程式化單元的原始資料(Raw data),即,尚未經過反擾亂程序與解碼程序的資料。
圖3A為根據本發明的一實施例所繪示的對應單階記憶胞(SLC)NAND型快閃記憶體模組的多個記憶胞的目標儲存狀態與對應的目標讀取電壓的示意圖。圖4A為根據本發明的一實施例所繪示的對應多階記憶胞(MLC)NAND型快閃記憶體模組的多個記憶胞的目標儲存狀態與對應的目標讀取電壓的示意圖。圖5A為根據本發明的一實施例所繪示的對應三階記憶胞(TLC)NAND型快閃記憶體模組的多個記憶胞的目標儲存狀態與對應的目標讀取電壓的示意圖。
請參照圖3A,單階記憶胞NAND型快閃記憶體模組(簡稱,SLC)的實體程式化單元具有一個實體頁面(亦稱,下實體頁面L),其可具有依據第一順序排列的兩種儲存狀態(葛雷碼),如,位元值“1”與位元值“0”。所述第一順序為基於臨界電壓分佈的電壓值的大小,由小至大的順序。若為SLC的目標實體程式化單
元已被程式化資料,則此目標實體程式化單元的所述多個第一記憶胞會被均勻地程式化為具有儲存狀態“1”與“0”(比例近似為各50%(100%/2=50%))。
此外,處理器211(或儲存狀態管理電路單元215)可使用對應兩種儲存狀態的讀取電壓V(1)1來讀取SLC的目標實體程式化單元(即,使用讀取電壓V(1)1來讀取為SLC的可複寫式非揮發性記憶體模組220的多個實體程式化單元的其中之一),以辨識此目標實體程式化單元的多個目標記憶胞所具有的儲存狀態(即,以辨識所述多個目標記憶胞所被寫入的位元值)。SLC中被程式化為位元值“1”(圖3A中的標記“L:1”)的多個記憶胞具有臨界電壓分佈SS1,其小於讀取電壓V(1)1;SLC中被程式化為位元值“0”(即:“L:0”)的多個記憶胞具有臨界電壓分佈SS2,其大於讀取電壓V(1)1。儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會根據為SLC的記憶體類型來辨識對應SLC的讀取電壓組,其具有讀取電壓V(1),並且將讀取電壓組中的排列在第一個的讀取電壓作為預設讀取電壓。
在此例子中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會將排列在第一個的儲存狀態(如,被表示為“L:1”的儲存狀態,即,儲存狀態“1”),作為目標儲存狀態。此外,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會進一步調整預設讀取電壓V(1)1為目標讀取電壓V(2)1(如,箭頭A300所示)。所述目標讀取電壓亦為用以分辨所述目標儲存狀態的讀取
電壓。
以下說明調整預設讀取電壓為目標讀取電壓的方法。具體來說,葛雷碼計數電路2151會如上述先辨識預設讀取電壓,並且目標讀取電壓的電壓值可經由預設讀取電壓加上一個“負值的”偏移電壓來獲得(亦可視為:目標讀取電壓的電壓值可經由預設讀取電壓減去一個“正值的”偏移電壓來獲得)。一般來說,預設讀取電壓可利用電壓調整指令以指示去使用多個偏移電壓(可為負值或正值)的其中之一來調整預設讀取電壓的電壓值,以獲得目標讀取電壓。在本實施例中,目標讀取電壓可利用電壓調整指令以將預設讀取電壓往最左方向調整(如圖3A所繪示的箭頭A300),以使預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(例如,預設讀取電壓加上一個最小的負值的偏離電壓,以成為目標讀取電壓)。所述偏離電壓可根據記憶體類型而被預先設定。在另一實施例中,目標讀取電壓亦可預先對應記憶體類型來設定,即,不經由預設讀取電壓來調整。
換言之,在本實施例中,調整所述預設讀取電壓以獲得所述目標讀取電壓的步驟可包括辨識對應所述預設讀取電壓的一電壓調整範圍,其中所述電壓調整範圍涵蓋所述預設讀取電壓;以及根據所述電壓調整範圍將所述預設讀取電壓調整為所述目標讀取電壓,其中所述目標讀取電壓為所述電壓調整範圍的最小電壓值。例如,假設預設讀取電壓為0.5mV,電壓調整範圍為0.1mV至0.9mV。葛雷碼計數電路2151根據電壓調整範圍將預設讀取電
壓為0.5mV調整為0.1mV,即,獲得目標讀取電壓0.1mV。所述電壓調整範圍可根據記憶體類型而被預先設定。
請參照圖4A,相較於SLC,多階記憶胞NAND型快閃記憶體模組(簡稱,MLC)的實體程式化單元可具有下實體頁面(可標記為“L”)(亦稱,第一類型實體頁面)與上實體頁面(可標記為“U”)(亦稱,第二類型實體頁面),其中上、下實體頁面各自可儲存兩種儲存狀態(即,“1”,“0”)。因此,MLC共可具有依據第一順序排列的四種儲存狀態(葛雷碼),如,位元值“11”(如圖4A中的“L:1 U:1”,即,下實體頁面的儲存狀態為“1”且上實體頁面的儲存狀態為“1”);位元值“10”(如圖4A中的“L:1 U:0”,即,下實體頁面的儲存狀態為“1”且上實體頁面的儲存狀態為“0”);位元值“00”(如圖4A中的“L:0 U:0”,即,下實體頁面的儲存狀態為“0”且上實體頁面的儲存狀態為“0”);以及位元值“01”(如圖4A中的“L:0 U:1”,即,下實體頁面的儲存狀態為“0”且上實體頁面的儲存狀態為“1”)。若為MLC的目標實體程式化單元已被程式化資料,則此目標實體程式化單元的所述多個第一記憶胞會被均勻地程式化為具有儲存狀態“11”、“10”、“00”與“01”(比例近似為各25%(100%/4=25%))。
此外,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會根據為MLC的記憶體類型來辨識對應MLC的讀取電壓組,其具有依據第一順序排列的多個讀取電壓V(1)1~V(1)3。處理器211(或儲存狀態管理電路單元215)可使用對應MLC的四種
儲存狀態的讀取電壓組的讀取電壓V(1)1~V(1)3來讀取MLC的目標實體程式化單元,以辨識此目標實體程式化單元的多個第一記憶胞所具有的儲存狀態/臨界電壓分佈。
在此例子中,基於上述對應MLC的讀取電壓組中的多個讀取電壓,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會將讀取電壓組中的排列在第一個的讀取電壓V(1)1作為預設讀取電壓。此外,基於上述對應MLC的多個儲存狀態,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會將排列在第一個的儲存狀態(如,被表示為“L:1 U:1”的儲存狀態,即,儲存狀態“11”),作為目標儲存狀態。儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會進一步調整預設讀取電壓V(1)1為目標讀取電壓V(2)1(如,箭頭A400所示)。
舉例來說,讀取電壓V(1)2用以辨識/區分下實體頁面的記憶胞的儲存狀態。舉例來說,臨界電壓分佈小於讀取電壓V(1)2的下實體頁面的記憶胞的儲存狀態為“1”(如圖4A中的“L:1”),如,臨界電壓分佈MS1、MS2;臨界電壓分佈大於讀取電壓V(1)2的下實體頁面的記憶胞的儲存狀態為“0”(如圖4A中的“L:0”),如,臨界電壓分佈MS3、MS4。讀取電壓V(1)1與V(1)3用以辨識/區分上實體頁面的記憶胞的儲存狀態。舉例來說,臨界電壓分佈小於讀取電壓V(1)1的上實體頁面的記憶胞的儲存狀態為“1”(如圖4A中的“U:1”),如,臨界電壓分佈MS1;臨界電壓分佈大於讀取電壓V(1)3的上實體頁面的記憶胞的儲存狀態為“1”(如圖4A中
的“U:1”),如,臨界電壓分佈MS4;臨界電壓分佈在讀取電壓V(1)1與V(1)3之間的上實體頁面的記憶胞的儲存狀態為“0”(如圖4A中的“U:0”),如,臨界電壓分佈MS2、MS3。換言之,可藉由讀取電壓V(1)1~V(1)3來辨識:臨界電壓分佈MS1的記憶胞的儲存狀態的位元值為“11”;臨界電壓分佈MS2的記憶胞的儲存狀態的位元值為“10”;臨界電壓分佈MS3的記憶胞的儲存狀態的位元值為“00”;臨界電壓分佈MS4的記憶胞的儲存狀態的位元值為“01”。
請參照圖5A,相似於SLC與MLC,對於三階記憶胞NAND型快閃記憶體模組(簡稱,TLC)的實體程式化單元可具有下實體頁面(可標記為“L”)(亦稱,第一類型實體頁面)、中實體頁面(可標記為“M”)(亦稱,第二類型實體頁面)與上實體頁面(可標記為“U”)(亦稱,第三類型實體頁面),其中上、中、下實體頁面各自可儲存兩種儲存狀態(即,“1”,“0”),進而使TLC的實體程式化單元可儲存依據第一順序排列的八種儲存狀態(如圖5A所繪示的下、中、上實體頁面的儲存狀態組合:“111”、“110”、“100”、“101”、“001”、“000”、“010”、“011”)。若為TLC的目標實體程式化單元已被程式化資料,則此目標實體程式化單元的所述多個第一記憶胞會被均勻地程式化為具有儲存狀態“111”、“110”、“100”、“101”、“001”、“000”、“010”、“011”(比例近似為各12.5%(100%/8=12.5%))。
此外,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會根據為TLC的記憶體類型來辨識對應TLC的讀取電壓
組,其具有依據第一順序排列的多個讀取電壓V(1)1~V(1)7。處理器211(或儲存狀態管理電路單元215)可使用對應TLC的八種儲存狀態的讀取電壓組的讀取電壓V(1)1~V(1)7來讀取TLC的目標實體程式化單元,以辨識此目標實體程式化單元的多個第一記憶胞所具有的儲存狀態/臨界電壓分佈。其中,讀取電壓V(1)4用以辨識/區分下實體頁面的儲存狀態;讀取電壓V(1)2與讀取電壓V(1)6用以辨識/區分中實體頁面的儲存狀態;讀取電壓V(1)1、讀取電壓V(1)3、讀取電壓V(1)5、讀取電壓V(1)7用以辨識/區分上實體頁面的儲存狀態。
在此例子中,基於上述對應TLC的讀取電壓組中的多個讀取電壓,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會將讀取電壓組中的排列在第一個的讀取電壓V(1)1作為預設讀取電壓。此外,基於上述對應TLC的多個儲存狀態,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會將排列在第一個的儲存狀態(如,被表示為“L:1 M:1 U:1”的儲存狀態,即,儲存狀態“111”),作為目標儲存狀態。儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會進一步調整預設讀取電壓V(1)1為目標讀取電壓V(2)1(如,箭頭A500所示)。
請再回到圖2,在步驟S25中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)使用所述目標讀取電壓來讀取所述目標實體程式化單元,以辨識所述多個第一記憶胞中的多個第二記憶胞,其中所述多個第二記憶胞的儲存狀態為所述目標儲存
狀態。也就是說,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可利用所獲得之目標讀取電壓來讀取目標實體程式化單元以從所有第一記憶胞中辨識到為目標儲存狀態的多個第二記憶胞與儲存狀態非目標儲存狀態的多個第三記憶胞(即,所述多個第三記憶胞的儲存狀態不同於所述目標儲存狀態)。應注意的是,所述多個第二記憶胞的臨界電壓分佈小於所述多個第一記憶胞中的多個第三記憶胞的臨界電壓分佈。舉例來說,請參照圖3A,經由目標讀取電壓V(2)1所辨識的多個第二記憶胞的臨界電壓分佈SS1(對應目標儲存狀態“1”)會小於多個第三記憶胞的臨界電壓分佈SS2(對應目標儲存狀態“0”)。
接著,在步驟S27中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)用以根據所述多個第二記憶胞來計算位元值比率。
圖3B為根據本發明的一實施例所繪示的針對單階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
請參照圖3B上方的例子,假設SLC的目標實體程式化單元尚未被程式化資料(即,目標實體程式化單元的儲存態樣為已抹除的或空白的),則此目標實體程式化單元的所有第一記憶胞的臨界電壓分佈SS0會位於電壓0伏特的附近,並且具有為“1”的儲存狀態。也就是說,在此目標實體程式化單元中儲存狀態為“1”的記憶胞(亦稱,第二記憶胞)的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的100%(如,圖3B的上方所繪
示的例子),即,全部第一記憶胞的儲存狀態皆為“1”。經由目標讀取電壓V(2)1所獲得之儲存狀態為“1”的第二記憶胞的總數量除以與所有第一記憶胞的總數量,以獲得一個比率(比值),此比率可稱為位元值比率。所述位元值比率用以表示:經由利用目標讀取電壓來讀取目標實體程式化單元後,在目標實體程式化單元的所有第一記憶胞中,所辨識的儲存狀態為“1”的第二記憶胞所佔的比率。所述目標讀取電壓V(2)1是從預設讀取電壓V(1)1所調整的讀取電壓(如箭頭A301所示)。應注意的是,在正常情況下,經由目標讀取電壓讀取空白的實體程式化單元所獲得之位元值比率(100%)會等於經由預設讀取電壓所獲得之位元值比率(100%)。
值得一提的是,在上述的定義下,可知道儲存態樣為已抹除或空白的之SLC的實體程式化單元的位元值比率等於100%。相似地,儲存態樣為已抹除或空白的之MLC/TLC或QLC的實體程式化單元的位元值比率也等於100%。
請再參照圖3B下方的例子,假設SLC的目標實體程式化單元已被程式化資料(即,目標實體程式化單元的儲存態樣為非空白的),則此目標實體程式化單元的所述多個目標記憶胞會被均勻地程式化為具有儲存狀態“1”與“0”(比例近似為各50%)。在對應不同儲存狀態的臨界電壓分佈SS1、SS2中,對應目標儲存狀態“1”的為臨界電壓分佈SS1。在此例子中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可將預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(如箭頭A302所示)。接著,儲存狀態管理
電路單元215(如,葛雷碼計數電路2151)可經由使用目標讀取電壓V(2)1來讀取目標實體程式化單元,並且辨識對應目標儲存狀態“1”的多個第二記憶胞及其數量。接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可根據多個第二記憶胞的總數量與所有第一記憶胞的總數量來計算出此目標實體程式化單元中「儲存狀態為“1”」的多個第二記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的50%,並且在此目標實體程式化單元中儲存狀態為“0”的多個第三記憶胞的總數量也佔了此目標實體程式化單元的所有第一記憶胞的總數量的剩下的50%。在此例子中,經由目標讀取電壓V(2)1所辨識的目標儲存狀態的位元值比率等於50%;並且經由預設讀取電壓V(1)1所辨識的目標儲存狀態的位元值比率等於50%。
在本實施例中,儲存狀態管理電路單元215的葛雷碼計數電路2151可用以計算對應每種讀取電壓的儲存狀態的記憶胞的總數量,統計具有不同位元值的記憶胞的總數量,並且葛雷碼計數電路2151亦可用以計算對應每個目標讀取電壓的位元值比率。
本發明所提供的儲存狀態辨識方法的精神在於,直接利用調整後的目標讀取電壓讀取目標實體程式化單元,以獲得對應的位元值比率,進而根據所獲得之位元值比率來判斷此目標實體程式化單元的儲存態樣。此方法的益處在於:當已被寫入(程式化)資料的目標實體程式化單元的多個記憶胞的臨界電壓分佈具有異常偏移時,本發明所提供的儲存狀態辨識方法可避免儲存狀
態的誤判。以下先以圖3C來做說明。
圖3C為根據本發明的一實施例所繪示的針對單階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
請參照圖3C,假設可複寫式非揮發性記憶體模組220為SLC,SLC的目標實體程式化單元已被程式化資料(即,目標實體程式化單元的儲存態樣為非空白的)。在對應不同儲存狀態的臨界電壓分佈SS1、SS2中,對應目標儲存狀態“1”的為臨界電壓分佈SS1。此外,還假設臨界電壓分佈具有異常偏移(臨界電壓分佈SS2往左偏移)。在此例子中,由於臨界電壓分佈的異常偏移,使用預設讀取電壓V(1)1來讀取目標實體程式化單元所獲得的位元值比率為100%,其不同於圖3B下方的例子(正常的已被寫入資料的記憶胞的臨界電壓分佈)的預設讀取電壓V(1)的位元值比率(50%),但是卻相同於圖3B上方的例子(空白的/已被抹除的,即,沒有被寫入資料的)的位元值比率(100%)。換句話說,若是單純地在不調整預設讀取電壓的情況下,僅根據預設讀取電壓的位元值比率來判斷目標實體程式化單元的儲存態樣的話,會導致具有異常臨界電壓分佈的實體程式化單元的儲存態樣會被判定為空白的(雖然此實體程式化單元實際上並非空白的),進而使儲存單元的儲存態樣的辨識結果為錯誤的。
然而,根據本實施例所提供的儲存狀態辨識操作/方法,。儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會將預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(如箭頭A303所示)。
接著,如圖3C下方的例子所示,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可經由使用目標讀取電壓V(2)1來讀取目標實體程式化單元,並且辨識對應臨界電壓分佈SS1的多個第二記憶胞及其數量。接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可根據多個第二記憶胞的總數量與所有第一記憶胞的總數量來計算出此目標實體程式化單元中「儲存狀態為目標儲存狀態“1”」的多個第二記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的50%。即,在此例子中,經由目標讀取電壓V(2)1所辨識的目標儲存狀態的位元值比率等於50%。
也就是說,藉由本實施例所提供的儲存狀態辨識方法/操作,可經由目標讀取電壓較準確地獲得對應目標儲存狀態的位元值比率。
圖4D為根據本發明的一實施例所繪示的針對多階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
請參照圖4D,假設可複寫式非揮發性記憶體模組220為MLC,MLC的目標實體程式化單元的第一類型實體頁面與第二類型實體頁面皆已被程式化資料(即,目標實體程式化單元的儲存態樣為第二類儲存態樣)。在對應不同儲存狀態的臨界電壓分佈MS1、MS2、MS3、MS4中,對應目標儲存狀態“11”的為臨界電壓分佈MS1。此外,還假設臨界電壓分佈具有異常偏移(臨界電壓分佈MS2~MS4往左偏移)。在此例子中,由於臨界電壓分佈的異
常偏移,使用預設讀取電壓V(1)1來讀取目標實體程式化單元所獲得的位元值比率為58%,其不同於圖4A的例子(正常的已被寫入資料的記憶胞的臨界電壓分佈)中的預設讀取電壓V(1)1的位元值比率(25%)。換句話說,在此例子中,使用預設讀取電壓V(1)1所獲得的位元值比率是錯誤的。
然而,根據本實施例所提供的儲存狀態辨識操作/方法,。儲存狀態管理電路單元215(如,葛雷碼計數電路2151)會將預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(如箭頭A403所示)。接著,如圖4D下方的例子所示,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可經由使用目標讀取電壓V(2)1來讀取目標實體程式化單元,並且辨識對應目標儲存狀態“11”的多個第二記憶胞及其數量。接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可根據多個第二記憶胞的總數量與所有第一記憶胞的總數量來計算出此目標實體程式化單元中「儲存狀態為目標儲存狀態“11”」的多個第二記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的25%。即,在此例子中,經由目標讀取電壓V(2)1所辨識的目標儲存狀態的位元值比率等於25%(相同於在具有正常的臨界電壓分佈所獲得之位元值比率)。
以下再以多階記憶胞NAND型快閃記憶體模組為例來進行關於計算位元值比率的說明。
圖4B為根據本發明的一實施例所繪示的針對多階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
請先參照圖4B上方的例子,假設MLC的目標實體程式化單元的第一類型實體頁面已被程式化資料(即,目標實體程式化單元的儲存態樣為第一類儲存態樣)。在對應不同儲存狀態的臨界電壓分佈SS1、SS2中,對應目標儲存狀態“11”的為臨界電壓分佈SS1。在此例子中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可將預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(如箭頭A401所示)。
接著,請參照圖4B下方的例子,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可經由使用目標讀取電壓V(2)1來讀取目標實體程式化單元,並且辨識對應目標儲存狀態“11”的多個第二記憶胞及其數量。接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可根據多個第二記憶胞的總數量與所有第一記憶胞的總數量來計算出此目標實體程式化單元中「儲存狀態為“11”」的多個第二記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的50%(具有在目標讀取電壓V(2)1左方的臨界電壓分佈SS1的多個第二記憶胞的數量為全部第一記憶胞的數量的50%),並且儲存狀態管理電路單元215(如,葛雷碼計數電路2151)也可辨識出在此目標實體程式化單元中儲存狀態不為“11”的多個第三記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的剩下的50%。在此例子中,經由目標讀取電壓V(2)1所辨識的目標儲存狀態的位元值比率等於50%;並且經由預設讀取電壓V(1)1所辨識的目標儲存狀態的位元
值比率等於50%。
圖4C為根據本發明的一實施例所繪示的針對多階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
請先參照圖4C上方的例子,假設MLC的目標實體程式化單元的第一類型實體頁面與第二類型實體頁面皆已被程式化資料(即,目標實體程式化單元的儲存態樣為第二類儲存態樣)。在對應不同儲存狀態的臨界電壓分佈MS1、MS2、MS3、MS4中,對應目標儲存狀態“11”的為臨界電壓分佈MS1。在此例子中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可將預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(如箭頭A402所示)。
接著,請參照圖4C下方的例子,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可經由使用目標讀取電壓V(2)1來讀取目標實體程式化單元,並且辨識對應目標儲存狀態“11”的多個第二記憶胞及其數量。接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可根據多個第二記憶胞的總數量與所有第一記憶胞的總數量來計算出此目標實體程式化單元中「儲存狀態為“11”」的多個第二記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的25%(具有在目標讀取電壓V(2)1左方的臨界電壓分佈MS1的多個第二記憶胞的數量為全部第一記憶胞的數量25%),並且儲存狀態管理電路單元215(如,葛雷碼計數電路2151)也可辨識出在此目標實體程式化單元中儲存狀態不為“11”的多個第三記憶胞的總數量佔了此目標實體程式化單元的
所有第一記憶胞的總數量的剩下的75%。在此例子中,經由目標讀取電壓V(2)1所辨識的目標儲存狀態的位元值比率等於25%;並且經由預設讀取電壓V(1)1所辨識的目標儲存狀態的位元值比率等於25%。
圖5B為根據本發明的一實施例所繪示的針對三階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
請先參照圖5B上方的例子,假設TLC的目標實體程式化單元的第一類型實體頁面已被程式化資料(即,目標實體程式化單元的儲存態樣為第一類儲存態樣)。在對應不同儲存狀態的臨界電壓分佈SS1、SS2中,對應目標儲存狀態“111”的為臨界電壓分佈SS1。在此例子中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可將預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(如箭頭A501所示)。
接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可經由使用目標讀取電壓V(2)1來讀取目標實體程式化單元,並且辨識對應目標儲存狀態“111”的多個第二記憶胞及其數量。接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可根據多個第二記憶胞的總數量與所有第一記憶胞的總數量來計算出此目標實體程式化單元中「儲存狀態為“111”」的多個第二記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的50%(具有在目標讀取電壓V(2)1左方的臨界電壓分佈SS1的多個第二記憶胞的數量為全部第一記憶胞的數量50%),並且儲
存狀態管理電路單元215(如,葛雷碼計數電路2151)也可辨識出在此目標實體程式化單元中儲存狀態不為“111”的多個第三記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的剩下的50%。在此例子中,經由目標讀取電壓V(2)1所辨識的目標儲存狀態的位元值比率等於50%。
又例如,請參照圖5B下方的例子,假設TLC的目標實體程式化單元的第一類型實體頁面與第二類型實體頁面皆已被程式化資料(即,目標實體程式化單元的儲存態樣為第二類儲存態樣)。在對應不同儲存狀態的臨界電壓分佈MS1、MS2、MS3、MS4中,對應目標儲存狀態“111”的為臨界電壓分佈MS1。在此例子中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可將預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(如箭頭A502所示)。
接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可經由使用目標讀取電壓V(2)1來讀取目標實體程式化單元,並且辨識對應目標儲存狀態“111”的多個第二記憶胞及其數量。接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可根據多個第二記憶胞的總數量與所有第一記憶胞的總數量來計算出此目標實體程式化單元中「儲存狀態為“111”」的多個第二記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的25%(具有在目標讀取電壓V(2)1左方的臨界電壓分佈MS1的多個第二記憶胞的數量為全部第一記憶胞的數量25%),並且儲
存狀態管理電路單元215(如,葛雷碼計數電路2151)也可辨識出在此目標實體程式化單元中儲存狀態不為“111”的多個第三記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的剩下的75%。在此例子中,經由目標讀取電壓V(2)1所辨識的目標儲存狀態的位元值比率等於25%。
圖5C為根據本發明的一實施例所繪示的針對三階記憶胞NAND型快閃記憶體模組的儲存狀態辨識操作的示意圖。
請參照圖5C,假設TLC的目標實體程式化單元的第一類型實體頁面、第二類型實體頁面與第三類型實體頁面皆已被程式化資料(即,目標實體程式化單元的儲存態樣為第三類儲存態樣)。在對應不同儲存狀態的臨界電壓分佈TS1~TS8中,對應目標儲存狀態“111”的為臨界電壓分佈TS1。在此例子中,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可將預設讀取電壓V(1)1調整為目標讀取電壓V(2)1(如箭頭A503所示)。
接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可經由使用目標讀取電壓V(2)1來讀取目標實體程式化單元,並且辨識對應目標儲存狀態“111”的多個第二記憶胞及其數量。接著,儲存狀態管理電路單元215(如,葛雷碼計數電路2151)可根據多個第二記憶胞的總數量與所有第一記憶胞的總數量來計算出此目標實體程式化單元中「儲存狀態為“111”」的多個第二記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的12.5%(具有在目標讀取電壓V(2)1左方的臨界電壓分佈TS1
的多個第二記憶胞的數量為全部第一記憶胞的數量12.5%),並且儲存狀態管理電路單元215(如,葛雷碼計數電路2151)也可辨識出在此目標實體程式化單元中儲存狀態不為“111”的多個第三記憶胞的總數量佔了此目標實體程式化單元的所有第一記憶胞的總數量的剩下的87.5%。在此例子中,經由目標讀取電壓V(2)1所辨識的目標儲存狀態的位元值比率等於12.5%。
請再回到圖2,在計算出對應目標儲存狀態的位元值比率後,接續至步驟S29,儲存狀態管理電路單元215(如,儲存狀態判斷電路2152)用以根據所述位元值比率來辨識所述目標實體程式化單元的儲存態樣。
具體來說,上述根據所述位元值比率來辨識所述目標實體程式化單元的儲存態樣的步驟包括判斷所述位元值比率是否在一空白標準位元值比率範圍內;反應於所述位元值比率在所述空白標準位元值比率範圍內,判定所述目標實體程式化單元為空白的;以及反應於所述位元值比率不在所述空白標準位元值比率範圍內,判定所述目標實體程式化單元不為空白的。
舉例來說,根據上述藉由圖3B上方例子的說明,可知道,若對應目標儲存狀態的位元值比率為100%,儲存狀態管理電路單元215(如,儲存狀態判斷電路2152)可直接判定目標實體程式化單元為空白的。因此,在本實施例中,儲存狀態管理電路單元215(如,儲存狀態判斷電路2152)會預先記錄一個空白標準位元值比率範圍,其用以定義判斷儲存單元是否為空白的位元
值比率範圍,例如為100%~(100-x)%。所述x為0或為極小的正值(如,2以內)。換言之,反應於經由目標讀取電壓所獲得之位元值比率落在空白標準位元值比率範圍(如,100%~98%,即,x為2)內,儲存狀態管理電路單元215(如,儲存狀態判斷電路2152)可判定所選擇之目標實體程式化單元為空白的。
反之,反應於經由目標讀取電壓所獲得之位元值比率不落在空白標準位元值比率範圍(如,100%~98%,即,x為2)內,儲存狀態管理電路單元215(如,儲存狀態判斷電路2152)可判定所選擇之目標實體程式化單元為非空白的(儲存有資料)。此外,在本實施例中,儲存狀態管理電路單元215(如,儲存狀態判斷電路2152)更會根據可複寫式非揮發性記憶體模組的記憶體類型來辨識一或多個標準位元值比率範圍。將所述位元值比率與一或多個標準位元值比率範圍比較。所述一或多個標準位元值比率範圍分別對應所述可複寫式非揮發性記憶體模組的所述記憶體類型的儲存有資料的一或多個儲存態樣。接著,反應於所述位元值比率落在所述多個標準位元值比率範圍中的第一標準位元值比率範圍內,判定所述目標實體程式化單元的所述儲存態樣為所述多個儲存態樣中的對應所述第一標準位元值比率範圍的第一類儲存態樣。
舉例來說,經由上述圖3A、3B、3C、4B、5B的例子,可知道,反應經由目標讀取電壓來讀取目標實體程式化單元所獲得之位元值比率為50%,儲存狀態管理電路單元215(如,儲存狀
態判斷電路2152)可直接判定目標實體程式化單元僅有第一類型實體頁面被寫入,即,為第一類儲存態樣;反應經由目標讀取電壓來讀取目標實體程式化單元所獲得之位元值比率為25%,儲存狀態管理電路單元215(如,儲存狀態判斷電路2152)可直接判定目標實體程式化單元僅有第一類型實體頁面與第二類型實體頁面被寫入,即,為第二類儲存態樣;反應經由目標讀取電壓來讀取目標實體程式化單元所獲得之位元值比率為12.5%,儲存狀態管理電路單元215(如,儲存狀態判斷電路2152)可直接判定目標實體程式化單元的第一類型實體頁面、第二類型實體頁面與第三類型實體頁面皆被寫入,即,為第三類儲存態樣。如此一來,經由上述流程(S21~S29)儲存態樣管理電路單元215可快速且準確地判斷目標實體程式化單元的儲存態樣,進而辨識出目標實體程式化單元的已被寫入資料的實體頁面的數量,以進行後續可與儲存空間使用率相關的應用(例如,資料合併操作、損耗平衡操作或垃圾回收操作)。
圖6為根據本發明的一實施例所繪示的位元值比率與儲存態樣的關係的示意圖。
請參照圖6,基於上述的事實,儲存狀態判斷電路2152可對應地預先設定/記錄分別對應不同儲存態樣的不同標準位元值比率。舉例來說,儲存狀態判斷電路2152可預先儲存一個表600,其用以記錄位元值比率與儲存態樣的關係。所述關係例如是:對應第一類儲存態樣的標準位元值比率為“50%”;對應第二類儲存態
樣的標準位元值比率為“25%”;對應第三類儲存態樣的標準位元值比率為“12.5%”。更詳細來說,所述標準位元值比率與對應的儲存態樣的關聯為:若所對應的儲存態樣為第M類儲存態樣(目標實體程式化單元具有M個已儲存有資料的實體頁面),對應的標準位元值比率為(100/2M)%。
此外,在一實施例中,儲存狀態判斷電路2152可對應地設定分別對應不同儲存態樣的不同標準位元值比率範圍。所述標準位元值比率範圍是基於所對應之儲存態樣之標準位元值比率加上正負誤差所計算的。所述誤差可根據所對應的儲存態樣而設定大小(如,圖6所繪示之a%、b%、c%、d%)。
如此一來,儲存狀態判斷電路2152可在經由目標讀取電壓來讀取目標實體程式化單元而獲得位元值比率後,判斷位元值比率是否落於所述多個標準位元值比率範圍內。若位元值比率落入所述多個標準位元值比率範圍其中的一個標準位元值比率範圍(亦稱,第一標準位元值比率範圍),儲存狀態判斷電路2152可直接判定目標實體程式化單元為第一標準位元值比率範圍所對應的儲存態樣(亦稱,第一儲存態樣)。
應注意的是,由於QLC的實體程式化單元可具有4個類型的實體頁面。因此,QLC可具有四種儲存態樣,即,第一類、第二類、第三類、第四類儲存態樣。
值得一提的是,在以上的實施例中,位元值比率皆指對應儲存狀態為“1”的第二記憶胞所佔的比率,並且對應的標準位元
值比率、標準位元值比率範圍、空白位元值比率範圍也是基於此精神來設計的,但本發明並不限於此。例如,在另一實施例中,儲存狀態管理電路單元215會針對儲存狀態為“0”的記憶胞所佔的比率來作為「位元值比率」,並且對應的標準位元值比率、標準位元值比率範圍、空白位元值比率範圍也會對應地設計。基本上,在「位元值比率皆指對應儲存狀態為“0”的記憶胞所佔的比率」的情況下所設計的標準位元值比率、標準位元值比率範圍、空白位元值比率範圍會與在「位元值比率皆指對應儲存狀態為“1”的記憶胞所佔的比率」的情況下所設計的標準位元值比率、標準位元值比率範圍、空白位元值比率範圍具有對應的關聯(因為一種類型的實體頁面所可儲存的位元值只為“1”或“0”,各自佔的比率的總和為100%)。
綜上所述,本發明實施例所提供的記憶體管理方法以及儲存控制器,可針對可複寫式非揮發性記憶體模組的記憶體類型辨識目標實體程式化單元的目標儲存狀態與對應的目標讀取電壓,並且經由所述目標讀取電壓獲得的位元值比率來直接辨識目標實體程式化單元的儲存態樣,以增進了辨識實體程式化單元的儲存態樣的效率與準確性,進而增加儲存裝置管理已使用空間與未使用空間的效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍
當視後附的申請專利範圍所界定者為準。
Claims (10)
- 一種記憶體管理方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體程式化單元,其中該些實體程式化單元的每一個實體程式化單元具有多個記憶胞,所述方法包括:選擇該些實體程式化單元中的一目標實體程式化單元,其中該目標實體程式化單元具有多個第一記憶胞;根據該可複寫式非揮發性記憶體模組的記憶體類型辨識一目標儲存狀態,並且根據該目標儲存狀態與對應該目標儲存狀態的預設讀取電壓獲得一目標讀取電壓;使用該目標讀取電壓來讀取該目標實體程式化單元,以辨識該些第一記憶胞中的多個第二記憶胞,其中該些第二記憶胞的儲存狀態為該目標儲存狀態,其中該些第二記憶胞的臨界電壓分佈小於該些第一記憶胞中的多個第三記憶胞的臨界電壓分佈,其中該些第三記憶胞的儲存狀態不同於該目標儲存狀態;根據該些第二記憶胞來計算一位元值比率,其中該位元值比率為經由該些第二記憶胞的總數量除以該些第一記憶胞的總數量所獲得之比值;以及根據該位元值比率來辨識該目標實體程式化單元的儲存態樣。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述根據該可複寫式非揮發性記憶體模組的該記憶體類型辨識該目標儲存狀態的步驟包括:根據該可複寫式非揮發性記憶體模組的該記憶體類型辨識依據一第一順序排列的多個儲存狀態;以及將在該些儲存狀態中排列在第一個的儲存狀態作為該目標儲存狀態,其中上述根據該目標儲存狀態與對應該目標儲存狀態的預設讀取電壓獲得該目標讀取電壓的步驟包括:根據該可複寫式非揮發性記憶體模組的該記憶體類型辨識對應該記憶體類型的讀取電壓組,其中該讀取電壓組具有依據該第一順序排列的多個讀取電壓;將該些讀取電壓中排列在第一個的讀取電壓作為該預設讀取電壓,調整該預設讀取電壓以獲得該目標讀取電壓。
- 如申請專利範圍第2項所述的記憶體管理方法,其中上述調整該預設讀取電壓以獲得該目標讀取電壓的步驟包括:辨識對應該預設讀取電壓的一電壓調整範圍,其中該電壓調整範圍涵蓋該預設讀取電壓;以及根據該電壓調整範圍將該預設讀取電壓調整為該目標讀取電壓,其中該目標讀取電壓為該電壓調整範圍的最小電壓值。
- 如申請專利範圍第1項所述的記憶體管理方法,其中上述根據該位元值比率來辨識該目標實體程式化單元的該儲存態樣的步驟包括:判斷該位元值比率是否在一空白標準位元值比率範圍內;反應於該位元值比率在該空白標準位元值比率範圍內,判定該目標實體程式化單元為空白的;以及反應於該位元值比率不在該空白標準位元值比率範圍內,判定該目標實體程式化單元不為空白的。
- 如申請專利範圍第4項所述的記憶體管理方法,其中若該位元值比率不在該空白標準位元值比率範圍內,上述根據該位元值比率來判斷該目標實體程式化單元的該儲存態樣的步驟更包括:將該位元值比率與多個標準位元值比率範圍比較,其中該些標準位元值比率範圍分別對應該可複寫式非揮發性記憶體模組的該記憶體類型的多個儲存態樣;以及反應於該位元值比率落在該些標準位元值比率範圍中的一第一標準位元值比率範圍內,判定該目標實體程式化單元的該儲存態樣為該些儲存態樣中的對應該第一標準位元值比率範圍的一第一儲存態樣。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括:一連接介面電路,用以耦接至一主機系統;一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體程式化單元,其中該些實體程式化單元的每一個實體程式化單元具有多個記憶胞;一儲存狀態管理電路單元;以及一處理器,耦接至該連接介面電路、該記憶體介面控制電路及該儲存狀態管理電路單元,其中該處理器選擇該些實體程式化單元中的一目標實體程式化單元以指示該儲存狀態管理電路單元對該目標實體程式化單元執行一儲存狀態辨識操作,其中該目標實體程式化單元具有多個第一記憶胞,在該儲存狀態辨識操作中,該儲存狀態管理電路單元用以根據該可複寫式非揮發性記憶體模組的記憶體類型辨識一目標儲存狀態,並且根據該目標儲存狀態與對應該目標儲存狀態的預設讀取電壓獲得一目標讀取電壓;該儲存狀態管理電路單元更用以使用該目標讀取電壓來讀取該目標實體程式化單元,以辨識該些第一記憶胞中的多個第二記憶胞,其中該些第二記憶胞的儲存狀態為該目標儲存狀態,其中該些第二記憶胞的臨界電壓分佈小於該些第一記憶胞中的多個第三記憶胞的臨界電壓分佈,其中該些第三記憶胞的儲存狀態不同於該目標儲存狀態;該儲存狀態管理電路單元更用以根據該些第二記憶胞來計算一位元值比率,其中該位元值比率為經由該些第二記憶胞的總數量除以該些第一記憶胞的總數量所獲得之比值;以及該儲存狀態管理電路單元更用以根據該位元值比率來辨識該目標實體程式化單元的儲存態樣。
- 如申請專利範圍第6項所述的儲存控制器,其中在上述該儲存狀態管理電路單元用以根據該可複寫式非揮發性記憶體模組的該記憶體類型辨識該目標儲存狀態的運作中,該儲存狀態管理電路單元根據該可複寫式非揮發性記憶體模組的該記憶體類型辨識依據一第一順序排列的多個儲存狀態;以及該儲存狀態管理電路單元將在該些儲存狀態中排列在第一個的儲存狀態作為該目標儲存狀態,其中上述根據該目標儲存狀態與對應該目標儲存狀態的預設讀取電壓獲得該目標讀取電壓的步驟包括:該儲存狀態管理電路單元根據該可複寫式非揮發性記憶體模組的該記憶體類型辨識對應該記憶體類型的讀取電壓組,其中該讀取電壓組具有依據該第一順序排列的多個讀取電壓;該儲存狀態管理電路單元將該些讀取電壓中排列在第一個的讀取電壓作為該預設讀取電壓,調整該預設讀取電壓以獲得該目標讀取電壓。
- 如申請專利範圍第7項所述的儲存控制器,其中在上述調整該預設讀取電壓以獲得該目標讀取電壓的運作中,該儲存狀態管理電路單元辨識對應該預設讀取電壓的一電壓調整範圍,其中該電壓調整範圍涵蓋該預設讀取電壓;以及該儲存狀態管理電路單元根據該電壓調整範圍將該預設讀取電壓調整為該目標讀取電壓,其中該目標讀取電壓為該電壓調整範圍的最小電壓值。
- 如申請專利範圍第6項所述的儲存控制器,其中在上述該儲存狀態管理電路單元更用以根據該位元值比率來辨識該目標實體程式化單元的該儲存態樣的運作中,該儲存狀態管理電路單元判斷該位元值比率是否在一空白標準位元值比率範圍內,其中反應於該位元值比率在該空白標準位元值比率範圍內,該儲存狀態管理電路單元判定該目標實體程式化單元為空白的,其中反應於該位元值比率不在該空白標準位元值比率範圍內,該儲存狀態管理電路單元判定該目標實體程式化單元不為空白的。
- 如申請專利範圍第9項所述的儲存控制器,其中若該位元值比率不在該空白標準位元值比率範圍內,在上述該儲存狀態管理電路單元更用以根據該位元值比率來判斷該目標實體程式化單元的該儲存態樣的運作中,該儲存狀態管理電路單元更將該位元值比率與多個標準位元值比率範圍比較,其中該些標準位元值比率範圍分別對應該可複寫式非揮發性記憶體模組的該記憶體類型的多個儲存態樣,其中反應於該位元值比率落在該些標準位元值比率範圍中的一第一標準位元值比率範圍內,該儲存狀態管理電路單元判定該目標實體程式化單元的該儲存態樣為該些儲存態樣中的對應該第一標準位元值比率範圍的一第一儲存態樣。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107123575A TWI667606B (zh) | 2018-07-06 | 2018-07-06 | 記憶體管理方法以及儲存控制器 |
US16/125,774 US10474386B1 (en) | 2018-07-06 | 2018-09-10 | Memory management method and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107123575A TWI667606B (zh) | 2018-07-06 | 2018-07-06 | 記憶體管理方法以及儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI667606B true TWI667606B (zh) | 2019-08-01 |
TW202006529A TW202006529A (zh) | 2020-02-01 |
Family
ID=68316165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107123575A TWI667606B (zh) | 2018-07-06 | 2018-07-06 | 記憶體管理方法以及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10474386B1 (zh) |
TW (1) | TWI667606B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI768496B (zh) * | 2020-10-07 | 2022-06-21 | 群聯電子股份有限公司 | 讀取電壓控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI670599B (zh) * | 2018-08-28 | 2019-09-01 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006065655A1 (en) * | 2004-12-16 | 2006-06-22 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US20100103738A1 (en) * | 2008-10-29 | 2010-04-29 | Macronix International Co., Ltd. | Memory and operating method thereof |
US9047974B2 (en) * | 2012-10-04 | 2015-06-02 | Sandisk Technologies Inc. | Erased state reading |
US20160141041A1 (en) * | 2014-11-18 | 2016-05-19 | Sandisk Technologies Inc. | Partial Erase of Nonvolatile Memory Blocks |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7793059B2 (en) * | 2006-01-18 | 2010-09-07 | Apple Inc. | Interleaving policies for flash memory |
US7656707B2 (en) * | 2007-12-14 | 2010-02-02 | Intel Corporation | Systems and methods for discrete channel decoding of LDPC codes for flash memory |
-
2018
- 2018-07-06 TW TW107123575A patent/TWI667606B/zh active
- 2018-09-10 US US16/125,774 patent/US10474386B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006065655A1 (en) * | 2004-12-16 | 2006-06-22 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US20100103738A1 (en) * | 2008-10-29 | 2010-04-29 | Macronix International Co., Ltd. | Memory and operating method thereof |
US9047974B2 (en) * | 2012-10-04 | 2015-06-02 | Sandisk Technologies Inc. | Erased state reading |
US20160141041A1 (en) * | 2014-11-18 | 2016-05-19 | Sandisk Technologies Inc. | Partial Erase of Nonvolatile Memory Blocks |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI768496B (zh) * | 2020-10-07 | 2022-06-21 | 群聯電子股份有限公司 | 讀取電壓控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
Publication number | Publication date |
---|---|
US10474386B1 (en) | 2019-11-12 |
TW202006529A (zh) | 2020-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI655576B (zh) | 記憶體管理方法以及儲存控制器 | |
US10698762B2 (en) | Data reading method and storage controller | |
CN108701084B (zh) | 部分写入块处理 | |
US9773565B1 (en) | Memory retry-read method, memory storage device and memory control circuit unit | |
US10460815B2 (en) | Decoding method of selecting optimized read voltage set based on gray code count deviation summations, and storage controller using the same | |
US10628082B2 (en) | Data reading method and storage controller | |
US10748599B1 (en) | Data reading method, storage controller and storage device background of the disclosure | |
US10424383B1 (en) | Decoding method and storage controller | |
CN112435703A (zh) | 存储装置及其操作方法 | |
US20200234786A1 (en) | Data reading method, storage controller and storage device | |
TW202025165A (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
TW201939500A (zh) | 解碼方法以及儲存控制器 | |
US9990152B1 (en) | Data writing method and storage controller | |
TWI667606B (zh) | 記憶體管理方法以及儲存控制器 | |
US10509583B1 (en) | Memory management method and storage controller | |
TWI684180B (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
CN107204205B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN110377538B (zh) | 存储器管理方法以及存储控制器 | |
CN110727390B (zh) | 存储器管理方法以及存储控制器 | |
US11726871B2 (en) | Storage controller for selecting a gear level of a storage device and storage system including the same | |
CN110364197B (zh) | 解码方法以及存储控制器 | |
CN110364207B (zh) | 解码方法以及储存控制器 | |
CN109273037B (zh) | 数据读取方法以及存储控制器 | |
CN110658977B (zh) | 存储器管理方法以及存储控制器 | |
CN114115737B (zh) | 数据存储分配方法、存储器存储装置及控制电路单元 |