TWI550612B - 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI550612B TWI550612B TW104109209A TW104109209A TWI550612B TW I550612 B TWI550612 B TW I550612B TW 104109209 A TW104109209 A TW 104109209A TW 104109209 A TW104109209 A TW 104109209A TW I550612 B TWI550612 B TW I550612B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- unit
- physical
- stylized
- memory
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration 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/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/5628—Programming or writing circuits; 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/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
- 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
-
- 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
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
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)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種記憶體管理方法,且特別是有關於一種資料程式化方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,若記憶體模組中的某一個記憶胞可用以儲存兩個以上的位元,則對於此記憶胞的程式化操作可能會分為多次執行。每次執行的程式化結果都可能會影響到後續執行的程式化操作之正確性。因此,如何提升最終程式化至記憶胞中的資料的正確性為本領域技術人員所關心的議題。
本發明提供一種資料程式化方法、記憶體儲存裝置及記憶體控制電路單元,可降低因程式化過程中誤判記憶胞的資料儲存狀態而導致最終程式化結果發生錯誤的機率。
本發明的一範例實施例提供一種資料程式化方法,其用於可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,所述實體抹除單元中的第一實體抹除單元包括多個下實體程式化單元與對應於所述下實體程式化單元的多個上實體程式化單元,所述資料程式化方法包括:接收第一資料並且將所述第一資料程式化至所述下實體程式化單元中的第一下實體程式化單元;接收第二資料;執行對應於所述第一下實體程式化單元的第一資料擷取操作以獲得第三資料,其中所述第一資料擷取操作包括使用第二讀取電壓來讀取所述第一下實體程式化單元,其中所述第二讀取電壓的電壓值不同於對應於所述第一下實體程式化單元的預設讀取電壓的預設電壓值;以及根據所述第三資料來將所述第二資料程式化至所述上實體程式化單元中的第一上實體程式化單元。
在本發明的一範例實施例中,所述資料程式化方法更包括:獲得所述第一下實體程式化單元的磨損程度值;以及根據所述磨損程度值將對應於所述第一下實體程式化單元的所述預設讀取電壓調整為所述第二讀取電壓。
在本發明的一範例實施例中,所述執行對應於所述第一
下實體程式化單元的所述第一資料擷取操作的步驟更包括:解碼使用所述第二讀取電壓所讀取到的第四資料;判斷所述第四資料是否解碼失敗;以及若所述第四資料解碼失敗,將所述第二讀取電壓調整為第三讀取電壓並使用所述第三讀取電壓來讀取所述第一下實體程式化單元。
本發明的另一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,所述實體抹除單元中的第一實體抹除單元包括多個下實體程式化單元與對應於所述下實體程式化單元的多個上實體程式化單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以接收第一資料並且發送第一寫入指令序列以將所述第一資料程式化至所述下實體程式化單元中的第一下實體程式化單元,其中所述記憶體控制電路單元更用以接收第二資料,其中所述記憶體控制電路單元更用以指示執行對應於所述第一下實體程式化單元的第一資料擷取操作以獲得第三資料,其中所述第一資料擷取操作包括使用第二讀取電壓來讀取所述第一下實體程式化單元,其中所述第二讀取電壓的電壓值不同於對應於所述第一下實體程式化單元的預設讀取電壓的預設電壓值,其中所述記憶體控制電路單元更用以根據所述第三資料來發送第二寫入指令序列以將所述第二資料程式化至所述
上實體程式化單元中的第一上實體程式化單元。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以獲得所述第一下實體程式化單元的磨損程度值,其中所述記憶體控制電路單元更用以根據所述磨損程度值來指示將對應於所述第一下實體程式化單元的所述預設讀取電壓調整為所述第二讀取電壓。
在本發明的一範例實施例中,所述第一資料擷取操作更包括:解碼使用所述第二讀取電壓所讀取到的一第四資料;判斷所述第四資料是否解碼失敗;以及若所述第四資料解碼失敗,指示將所述第二讀取電壓調整為第三讀取電壓並使用所述第三讀取電壓來讀取所述第一下實體程式化單元。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,所述實體抹除單元中的第一實體抹除單元包括多個下實體程式化單元與對應於所述下實體程式化單元的多個上實體程式化單元,所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面,其中所述記憶體管理電路用以接收第一資料並且發送第一寫入指令序列以將所述第一資料程式化至所述下實體程式化單元中的第一下實體程式化單元,其中所述記憶
體管理電路更用以接收第二資料,其中所述記憶體管理電路更用以指示執行對應於所述第一下實體程式化單元的第一資料擷取操作以獲得第三資料,其中所述第一資料擷取操作包括使用第二讀取電壓來讀取所述第一下實體程式化單元,其中所述第二讀取電壓的電壓值不同於對應於所述第一下實體程式化單元的預設讀取電壓的預設電壓值,其中所述記憶體管理電路更用以根據所述第三資料來發送第二寫入指令序列以將所述第二資料程式化至所述上實體程式化單元中的第一上實體程式化單元。
在本發明的一範例實施例中,所述記憶體管理電路更用以獲得所述第一下實體程式化單元的磨損程度值,其中所述記憶體管理電路更用以根據所述磨損程度值而指示將對應於所述第一下實體程式化單元所述預設讀取電壓調整為所述第二讀取電壓。
在本發明的一範例實施例中,所述記憶體控制電路單元更包括錯誤檢查與校正電路。所述錯誤檢查與校正電路耦接至所述記憶體管理電路。其中所述第一資料擷取操作更包括:由所述錯誤檢查與校正電路解碼使用所述第二讀取電壓所讀取到的第四資料;判斷所述第四資料是否解碼失敗;以及若所述第四資料解碼失敗,指示將所述第二讀取電壓調整為第三讀取電壓並使用所述第三讀取電壓來讀取所述第一下實體程式化單元。
本發明的另一範例實施例提供一種資料程式化方法,其用於可複寫式非揮發性記憶體模組,所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,所述實體抹除單元中的第一實體
抹除單元包括多個下實體程式化單元與對應於所述下實體程式化單元的多個上實體程式化單元,所述資料程式化方法包括:接收第一資料並且將所述第一資料程式化至所述下實體程式化單元中的第一下實體程式化單元;將所述第一資料暫存於所述可複寫式非揮發性記憶體模組的緩衝區;接收第二資料;執行對應於所述第一下實體程式化單元的第一資料擷取操作以獲得第三資料,其中所述第一資料擷取操作包括從所述緩衝區中讀取所述第一資料;以及根據所述第三資料來將所述第二資料程式化至所述上實體程式化單元中的第一上實體程式化單元。
在本發明的一範例實施例中,所述資料程式化方法更包括:若所述第一資料擷取操作尚未完成或程式化所述第二資料至所述第一上實體程式化單元失敗,持續維護暫存於所述緩衝區中的所述第一資料。
在本發明的一範例實施例中,所述資料程式化方法更包括:在接收所述第二資料之前,接收第四資料;將所述第四資料暫存於所述緩衝區;將所述第四資料程式化至所述下實體程式化單元中的第二下實體程式化單元;在接收所述第二資料之後,接收第五資料;將所述第五資料暫存於所述緩衝區;執行對應於所述第二下實體程式化單元的第二資料擷取操作,其中所述第二資料擷取操作包括從所述緩衝區中讀取所述第四資料;以及根據所述第二資料擷取操作所獲得的所述第四資料來將所述第五資料程式化至所述上實體程式化單元中的第二上實體程式化單元,所述
第二上實體程式化單元對應於所述第二下實體程式化單元,其中將所述第四資料程式化至所述第二下實體程式化單元的步驟是在將所述第一資料程式化至所述第一下實體程式化單元的步驟與將所述第二資料程式化至所述第一上實體程式化單元的步驟之間執行。
本發明的另一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。所述連接介面單元用以耦接至主機系統。所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,所述實體抹除單元中的第一實體抹除單元包括多個下實體程式化單元與對應於所述下實體程式化單元的多個上實體程式化單元。所述記憶體控制電路單元耦接至所述連接介面單元與所述可複寫式非揮發性記憶體模組,其中所述記憶體控制電路單元用以接收第一資料並且發送第一寫入指令序列以將所述第一資料程式化至所述下實體程式化單元中的第一下實體程式化單元,其中所述記憶體控制電路單元更用以接收第二資料,其中所述記憶體控制電路單元更用以指示將所述第一資料暫存於所述可複寫式非揮發性記憶體模組的緩衝區,其中所述記憶體控制電路單元更用以指示執行對應於所述第一下實體程式化單元的第一資料擷取操作以獲得第三資料,其中所述第一資料擷取操作包括從所述緩衝區中讀取所述第一資料,其中所述記憶體控制電路單元更用以根據所述第三資料來發送第二寫入指令序列以將所述第二資料程式化至所述上實體程式
化單元中的一第一上實體程式化單元。
在本發明的一範例實施例中,若所述第一資料擷取操作尚未完成或程式化所述第二資料至所述第一上實體程式化單元失敗,所述記憶體控制電路單元更用以持續維護暫存於所述緩衝區中的所述第一資料。
在本發明的一範例實施例中,在接收所述第二資料之前,所述記憶體控制電路單元更用以接收第四資料,其中所述記憶體控制電路單元更用以指示將所述第四資料暫存於所述緩衝區,其中所述記憶體控制電路單元更用以發送第三寫入指令序列以將所述第四資料程式化至所述下實體程式化單元中的第二下實體程式化單元,其中在接收所述第二資料之後,所述記憶體控制電路單元更用以接收第五資料,其中所述記憶體控制電路單元更用以指示將所述第五資料暫存於所述緩衝區,其中所述記憶體控制電路單元更用以指示執行對應於所述第二下實體程式化單元的第二資料擷取操作,其中所述第二資料擷取操作包括從所述緩衝區中讀取所述第四資料,其中所述記憶體控制電路單元更用以根據所述第二資料擷取操作所獲得的所述第四資料來發送第四寫入指令序列以將所述第五資料程式化至所述上實體程式化單元中的第二上實體程式化單元,所述第二上實體程式化單元對應於所述第二下實體程式化單元,其中將所述第四資料程式化至所述第二下實體程式化單元的操作是在將所述第一資料程式化至所述第一下實體程式化單元的操作與將所述第二資料程式化至所述第一上
實體程式化單元的操作之間執行。
本發明的另一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組包括多個實體抹除單元,所述實體抹除單元中的第一實體抹除單元包括多個下實體程式化單元與對應於所述下實體程式化單元的多個上實體程式化單元,所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。所述主機介面用以耦接至主機系統。所述記憶體介面用以耦接至所述可複寫式非揮發性記憶體模組。所述記憶體管理電路耦接至所述主機介面與所述記憶體介面,其中所述記憶體管理電路用以接收第一資料並且發送第一寫入指令序列以將所述第一資料程式化至所述下實體程式化單元中的第一下實體程式化單元,其中所述記憶體管理電路更用以將指示所述第一資料暫存於所述可複寫式非揮發性記憶體模組的緩衝區,其中所述記憶體管理電路更用以接收第二資料,其中所述記憶體管理電路更用以指示執行對應於所述第一下實體程式化單元的第一資料擷取操作以獲得第三資料,其中所述第一資料擷取操作包括從所述緩衝區中讀取所述第一資料,其中所述記憶體管理電路更用以根據所述第三資料來發送第二寫入指令序列以將所述第二資料程式化至所述上實體程式化單元中的第一上實體程式化單元。
在本發明的一範例實施例中,若所述第一資料擷取操作尚未完成或所述第二資料沒有被成功地程式化至所述第一上實體
程式化單元,所述記憶體管理電路更用以持續維護暫存於所述緩衝區中的所述第一資料。
在本發明的一範例實施例中,所述緩衝區的大小不小於預設大小,其中所述預設大小為所述可複寫式非揮發性記憶體模組中的一個實體程式化單元之大小的三倍。
在本發明的一範例實施例中,在接收所述第二資料之前,所述記憶體管理電路更用以接收第四資料,其中所述記憶體管理電路更用以指示將所述第四資料暫存於所述緩衝區,其中所述記憶體管理電路更用以發送第三寫入指令序列以將所述第四資料程式化至所述下實體程式化單元中的第二下實體程式化單元,其中在接收所述第二資料之後,所述記憶體管理電路更用以接收第五資料,其中所述記憶體管理電路更用以指示將所述第五資料暫存於所述緩衝區,其中所述記憶體管理電路更用以指示執行對應於所述第二下實體程式化單元的第二資料擷取操作,其中所述第二資料擷取操作包括從所述緩衝區中讀取所述第四資料,其中所述記憶體管理電路更用以根據所述第二資料擷取操作所獲得的所述第四資料來發送第四寫入指令序列以將所述第五資料程式化至所述上實體程式化單元中的第二上實體程式化單元,且所述第二上實體程式化單元對應於所述第二下實體程式化單元,其中將所述第四資料程式化至所述第二下實體程式化單元的操作是在將所述第一資料程式化至所述第一下實體程式化單元的操作與將所述第二資料程式化至所述第一上實體程式化單元的操作之間執
行。
在本發明的一範例實施例中,所述第一上實體程式化單元與所述第一下實體程式化單元屬於同一條字元線。
基於上述,在程式化對應於某一個下實體程式化單元的上實體程式化單元時,本發明會藉由不包含使用此下實體程式化單元預設的讀取電壓來讀取記憶胞的資料擷取操作來獲得此下實體程式化單元的資料儲存狀態。藉此,將可降低因使用預設讀取電壓來讀取記憶胞而誤判記憶胞的資料儲存狀態,從而導致最終程式化結果發生錯誤的機率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧電腦
122‧‧‧微處理器
124‧‧‧隨機存取記憶體
126‧‧‧系統匯流排
128‧‧‧資料傳輸介面
13‧‧‧輸入/輸出裝置
21‧‧‧滑鼠
22‧‧‧鍵盤
23‧‧‧顯示器
24‧‧‧印表機
25‧‧‧隨身碟
26‧‧‧記憶卡
27‧‧‧固態硬碟
31‧‧‧數位相機
32‧‧‧SD卡
33‧‧‧MMC卡
34‧‧‧記憶棒
35‧‧‧CF卡
36‧‧‧嵌入式儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
502‧‧‧記憶胞陣列
504‧‧‧字元線控制電路
506‧‧‧位元線控制電路
508‧‧‧行解碼器
510‧‧‧資料輸入/輸出緩衝器
512‧‧‧控制電路
602‧‧‧記憶胞
604‧‧‧位元線
606‧‧‧字元線
608‧‧‧共用源極線
612、614‧‧‧電晶體
702‧‧‧記憶體管理電路
704‧‧‧主機介面
706‧‧‧記憶體介面
708‧‧‧錯誤檢查與校正電路
710‧‧‧緩衝記憶體
712‧‧‧電源管理電路
800(0)~800(R)‧‧‧實體抹除單元
810(0)~810(D)‧‧‧邏輯單元
802‧‧‧儲存區
806‧‧‧系統區
901A~904A‧‧‧下實體程式化單元
911B~914B‧‧‧上實體程式化單元
VREAD-0、VREAD-1、VREAD-2、VREAD-3、VREAD-4‧‧‧讀取電壓
S1301~S1304、S1401~S1404、S1501~S1507、S1601~S1605‧‧‧步驟
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發
性記憶體模組的概要方塊圖。
圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
圖8是根據本發明的一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖9是根據本發明的一範例實施例所繪示的管理實體抹除單元的示意圖。
圖10是根據本發明的一範例實施例所繪示的程式化多個實體程式化單元的示意圖。
圖11是根據本發明的一範例實施例所繪示的程式化過程中記憶胞的臨界電壓分布變化之示意圖。
圖12a至12c是根據本發明的一範例實施例所繪示的程式化資料的示意圖。
圖13是根據本發明的一範例實施例所繪示的資料程式化方法的流程圖。
圖14是根據本發明的另一範例實施例所繪示的資料程式化方法的流程圖。
圖15是根據本發明的另一範例實施例所繪示的資料程式化方法的流程圖。
圖16是根據本發明的另一範例實施例所繪示的資料程式化
方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。圖2是根據本發明的一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
請參照圖1,主機系統11一般包括電腦12與輸入/輸出(input/output,I/O)裝置13。電腦12包括微處理器122、隨機存取記憶體(random access memory,RAM)124、系統匯流排126與資料傳輸介面128。輸入/輸出裝置13包括如圖2的滑鼠21、鍵盤22、顯示器23與印表機24。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可更包括其他裝置。
在一範例實施例中,記憶體儲存裝置10是透過資料傳輸介面128與主機系統11的其他元件耦接。藉由微處理器122、隨機存取記憶體124與輸入/輸出裝置13的運作可將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。例如,記憶體儲存裝置10可以是如圖2所示的隨身碟25、記憶卡26或固態
硬碟(Solid State Drive,SSD)27等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據本發明的一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
一般而言,主機系統11為可實質地與記憶體儲存裝置10配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統11是以電腦系統來作說明,然而,另一範例實施例中,主機系統11可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)31時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式儲存裝置36(如圖3所示)。嵌入式儲存裝置36包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404與可複寫式非揮發性記憶體模組406。
在本範例實施例中,連接介面單元402是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and
Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元404之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元資料的快閃記憶體模組)、多階記憶胞(Multi Level Cell,
MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據本發明的一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。圖6是根據本發明的一範例實施例所繪示的記憶胞陣列的示意圖。
請參照圖5,可複寫式非揮發性記憶體模組406包括記憶胞陣列502、字元線控制電路504、位元線控制電路506、行解碼器(column decoder)508、資料輸入/輸出緩衝器510與控制電路512。
在本範例實施例中,記憶胞陣列502可包括用以儲存資料的多個記憶胞602、多個選擇閘汲極(Select gate drain,SGD)電晶體612與多個選擇閘源極(select gate source,SGS)電晶體614、以及連接此些記憶胞的多條位元線604、多條字元線606、與共用源極線608(如圖6所示)。記憶胞602是以陣列方式(或立體堆疊的方式)配置在位元線604與字元線606的交叉點上。當從記憶體控制電路單元404接收到寫入指令或讀取指令時,控制電路512會控制字元線控制電路504、位元線控制電路506、行解碼器508、資料輸入/輸出緩衝器510來寫入資料至記憶胞陣列502或從記憶胞陣列502中讀取資料,其中字元線控制電路504用以控制施予至
字元線606的電壓,位元線控制電路506用以控制施予至位元線604的電壓,行解碼器508依據指令中的列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器510用以暫存資料。
可複寫式非揮發性記憶體模組406中的每一個記憶胞是以臨界電壓的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,因而改變了記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為”把資料寫入至記憶胞”或”程式化記憶胞”。隨著臨界電壓的改變,記憶胞陣列502的每一個記憶胞具有多個儲存狀態。並且透過讀取電壓可以判斷記憶胞是屬於哪一個儲存狀態,藉此取得記憶胞所儲存的一或多個位元。
圖7是根據本發明的一範例實施例所繪示的記憶體控制電路單元的概要方塊圖。
請參照圖7,記憶體控制電路單元404包括記憶體管理電路702、主機介面704、記憶體介面706及錯誤檢查與校正電路708。
記憶體管理電路702用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路702具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路702的操作時,等同於說明記憶體控制電路單元404的操作。
在本範例實施例中,記憶體管理電路702的控制指令是
以韌體型式來實作。例如,記憶體管理電路702具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在另一範例實施例中,記憶體管理電路702的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路702具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路702的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在另一範例實施例中,記憶體管理電路702的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路702包括微控制器、記憶體管理單元、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶體管理單元、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可
複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面704是耦接至記憶體管理電路702並且用以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面704來傳送至記憶體管理電路702。在本範例實施例中,主機介面704是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面704亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面706是耦接至記憶體管理電路702並且用以存取可複寫式非揮發性記憶體模組406。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面706轉換為可複寫式非揮發性記憶體模組406所能接受的格式。具體來說,若記憶體管理電路702要存取可複寫式非揮發性記憶體模組406,記憶體介面706會傳送對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。例如,在讀取指令序
列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路708是耦接至記憶體管理電路702並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路702從主機系統11中接收到寫入指令時,錯誤檢查與校正電路708會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路702會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路702從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路708會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體710與電源管理電路712。緩衝記憶體710是耦接至記憶體管理電路702並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。電源管理電路712是耦接至記憶體管理電路702並且用以控制記憶體儲存裝置10的電源。
圖8是根據本發明的一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。必須瞭解的是,在此描述可複寫式非揮發性記憶體模組406之實體抹除單元的運作時,以“選
擇”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
可複寫式非揮發性記憶體模組406的記憶胞會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元至少可被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit,LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit,MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度。此外,下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。在本範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。在本範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,
B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,本發明並不限制實體扇的大小以及個數。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。
請參照圖8,記憶體管理電路702可將可複寫式非揮發性記憶體模組406的實體抹除單元800(0)~800(R)邏輯地劃分為多個區域,例如為儲存區802與系統區806。
儲存區802的實體抹除單元是用以儲存來自主機系統11的資料。儲存區802中會儲存有效資料與無效資料。例如,當主機系統要刪除一份有效資料時,被刪除的資料可能還是儲存在儲存區802中,但會被標記為無效資料。沒有儲存有效資料的實體抹除單元亦被稱為閒置(spare)實體抹除單元。例如,被抹除以後的實體抹除單元便會成為閒置實體抹除單元。若儲存區802或系統區806中有實體抹除單元損壞時,儲存區802中的實體抹除單元也可以用來替換損壞的實體抹除單元。倘若儲存區802中沒有可用的實體抹除單元來替換損壞的實體抹除單元時,則記憶體管理電路702會將整個記憶體儲存裝置10宣告為寫入保護(write protect)狀態,而無法再寫入資料。此外,有儲存有效資料的實體抹除單元亦被稱為非閒置(non-spare)實體抹除單元。
系統區806的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的
實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
儲存區802與系統區806的實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置10的運作中,實體抹除單元關聯至儲存區802與系統區806的分組關係會動態地變動。例如,當系統區806中的實體抹除單元損壞而被儲存區802的實體抹除單元取代時,則原本在儲存區802的實體抹除單元會被關聯至系統區806。
記憶體管理電路702會配置邏輯單元810(0)~810(D)以映射至儲存區802中的實體抹除單元800(0)~800(A)。例如,在本範例實施例中,主機系統11是透過邏輯位址來存取儲存區802中的資料,因此,每一個邏輯單元810(0)~810(D)是指一個邏輯位址。在本範例實施例中,一個邏輯位址是指一個邏輯區塊位址(logical block address,LBA)。然而,在另一範例實施例中,一個邏輯位址的大小也可以是大於或小於一個邏輯區塊位址的大小。在一範例實施例中,每一個邏輯單元810(0)~810(D)也可以是指一個邏輯扇、一個邏輯程式化單元、一個邏輯抹除單元或者由多個連續或分散的邏輯位址組成。每一個邏輯單元810(0)~810(D)是映射至一或多個實體單元。在本範例實施例中,一個實體單元是指一個實體抹除單元。然而,在另一範例實施例中,一個實體單元也可以是一個實體位址、一個實體扇、一個實體程式化單元或者是由多個連續或分散的實體位址組成,本發明不加以限制。記憶體管理電路702會將邏輯單元與實體單元之間的映射關係記錄於一或多
個邏輯-實體映射表。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路702可根據此邏輯-實體映射表來執行對於記憶體儲存裝置10的資料存取。
在本範例實施例中,每一個實體抹除單元會包括多個下實體程式化單元與對應於此些下實體程式化單元的多個上實體程式化單元。在此,相互對應的實體程式化單元指的是屬於同一條字元線的實體程式化單元。
圖9是根據本發明的一範例實施例所繪示的管理實體抹除單元的示意圖。
請參照圖9,以實體抹除單元800(0)為例,實體抹除單元800(0)至少包括下實體程式化單元901A~904A與上實體程式化單元911B~914B。下實體程式化單元901A與上實體程式化單元911B屬於同一條字元線。下實體程式化單元902A與上實體程式化單元912B屬於同一條字元線。下實體程式化單元903A與上實體程式化單元913B屬於同一條字元線。下實體程式化單元904A與上實體程式化單元914B屬於同一條字元線。
一般來說,下實體程式化單元會比位於同一條字元線上的上實體程式化單元優先被使用(即,被程式化)。記憶體管理電路702是依照一個程式化順序交錯地將資料寫入下實體程式化單元與上實體程式化單元。例如,圖9中每一個實體程式化單元中的數字便是表示此些實體程式化單元的程式化順序。在本範例實施
例中,下實體程式化單元901A與902A會先被程式化,接著,上實體程式化單元911B、下實體程式化單元903A、上實體程式化單元912B、下實體程式化單元904A及上實體程式化單元913B會依序被程式化。以此類推,其他未繪示的實體程式化單元也會依照類似方式而依序地被程式化。然而,在另一範例實施例中,記憶體管理電路702也可以依照其他的程式化順序來寫入資料。例如,資料可以是依序地被寫入至下實體程式化單元901A、上實體程式化單元911B、下實體程式化單元902A、上實體程式化單元912B及下實體程式化單元903A,或者是依照下實體程式化單元901A、902A、903A、904A、上實體程式化單元911B、912B、913B的順序來程式化等等,本發明不加以限制。
圖10是根據本發明的一範例實施例所繪示的程式化多個實體程式化單元的示意圖。
請參照圖10,同樣以實體抹除單元800(0)為例,假設記憶體管理電路702依序接收到DATA-a~DATA-e。DATA-a~DATA-e可以是連續資料或者不連續資料。連續資料指的是資料使用連續的多個邏輯單元並且佔用一個連續的邏輯位址範圍。不連續資料指的是資料使用不連續的多個邏輯單元並且佔用多個彼此不連續的邏輯位址範圍。此外,每一個資料DATA-a~DATA-e可以是從主機系統11接收之欲儲存至記憶體儲存裝置10的資料(例如,隨著對應的寫入指令而由主機系統11發送),或者也可以是因執行實體單元之合併(merging)程序或垃圾回收(garbage collection)程序等而
需要重新寫回可複寫式非揮發性記憶體模組406中的資料。
記憶體管理電路702可以依照圖9之範例實施例所提及的任一種程式化順序來寫入資料DATA-a~DATA-e。在此,以繪示於圖9之每一個實體程式化單元中的數字作為程式化順序之範例。例如,在接收到資料DATA-a之後,記憶體管理電路702會將資料DATA-a程式化至下實體程式化單元901A;在接收到資料DATA-b且資料DATA-a被程式化至下實體程式化單元901A之後,記憶體管理電路702會將資料DATA-b程式化至下實體程式化單元902A;在接收到資料DATA-c且資料DATA-b被程式化至下實體程式化單元902A之後,記憶體管理電路702會將資料DATA-c程式化至上實體程式化單元911B;在接收到資料DATA-d且資料DATA-c被程式化至上實體程式化單元911B之後,記憶體管理電路702會將資料DATA-d程式化至下實體程式化單元903A;在接收到資料DATA-e且資料DATA-d被程式化至下實體程式化單元903A之後,記憶體管理電路702會將資料DATA-e程式化至上實體程式化單元912B。值得一提的是,記憶體管理電路702是透過發送寫入指令序列的方式來指示可複寫式非揮發性記憶體模組406儲存資料(即,程式化資料)。例如,此寫入指令序列可由指令碼及/或程式碼組成。此寫入指令序列可包括欲儲存之資料與欲使用的實體單元(例如,實體位址)等等。
一般來說,對於上實體程式化單元的程式化操作會考慮到對應的下實體程式化單元的資料儲存狀態。因此,在程式化某
一個上實體程式化單元時,若對應的下實體程式化單元已被程式化,則對於此上實體程式化單元的程式化可能會因為誤判此下實體程式化單元的資料儲存狀態而導致最終對於同一條字元線上的上、下實體程式化單元至少其中之一的程式化發生錯誤(即,儲存錯誤的資料)。
圖11是根據本發明的一範例實施例所繪示的程式化過程中記憶胞的臨界電壓分布變化之示意圖。
請同時參照圖10與圖11,假設一開始下實體程式化單元901A與上實體程式化單元911B中的所有記憶胞都沒有儲存有效資料(即,處於抹除狀態“ERA”)。在將資料DATA-a程式化至下實體程式化單元901A之後,此些記憶胞中的一部份會儲存位元“1”並且另一部份儲存位元“0”。在將資料DATA-c程式化至上實體程式化單元911B時,一個預設讀取電壓VREAD-0會被提供至下實體程式化單元901A中的記憶胞以判斷此些記憶胞的資料儲存狀態。根據所獲得的記憶胞的資料儲存狀態,此些記憶胞會進一步地被程式化為具有四種資料儲存狀態(即,儲存位元“11”、“10”、“00”及“01”)。爾後,透過施予讀取電壓VREAD-1~VREAD-3至此些記憶胞,每一個記憶胞的資料儲存狀態可以被識別出來。然而,隨著記憶體儲存裝置10的使用時間增加(例如,讀取次數增加、寫入次數增加及/或抹除次數增加等等),可複寫式非揮發性記憶體模組406中的記憶胞會發生性能退化(degradation)。發生性能退化的記憶胞的臨界電壓分布範圍會變寬,如圖11中的虛線所示。因此,
若在程式化上實體程式化單元911B時仍然使用固定的預設讀取電壓VREAD-0來讀取此些記憶胞,則很容易誤判下實體程式化單元901A的資料儲存狀態,最終導致下實體程式化單元901A與上實體程式化單元911B都儲存了錯誤的資料。例如,若因使用預設讀取電壓VREAD-0來讀取此些記憶胞而將圖11中斜線區域內的記憶胞誤判為儲存位元“0”,則原先應該被程式化為儲存位元“11”的記憶胞可能會錯誤地被程式化為儲存位元“01”。現階段,在針對從記憶體中讀取出的錯誤資料進行更正的解碼程序中,這樣的錯誤並不容易被找出並更正。
請再次參照圖10,在本範例實施例中,記憶體管理電路702會決定每一筆資料在可複寫式非揮發性記憶體模組406中的儲存位址。當記憶體管理電路702欲將資料DATA-c程式化至上實體程式化單元911B時,記憶體管理電路702會執行一資料擷取操作以獲得下實體程式化單元901A的資料儲存狀態。此資料儲存狀態可以是記憶胞的臨界電壓分布或資料DATA-a。此外,在另一範例實施例中,此資料擷取操作也可以是由記憶體管理電路702發送一資料擷取指令來指示可複寫式非揮發性記憶體模組406或其他的電路執行。特別是,此資料擷取操作並不會包含使用一個預設讀取電壓來讀取下實體程式化單元901A。在此,預設讀取電壓是指沒有隨著下實體程式化單元901A的使用狀態及/或資料儲存狀態而被適應性地調整過的讀取電壓(例如,圖11中的預設讀取電壓VREAD-0)。在獲得下實體程式化單元901A的資料儲存狀態之
後,記憶體管理電路702會根據下實體程式化單元901A的資料儲存狀態來發送一個寫入指令序列至可複寫式非揮發性記憶體模組406以指示基於下實體程式化單元901A的資料儲存狀態來將資料DATA-c程式化至上實體程式化單元911B。
在圖10的一範例實施例中,記憶體管理電路702會獲得下實體程式化單元901A的磨損程度值。此磨損程度值與下實體程式化單元901A或者實體抹除單元800的讀取次數、寫入次數、抹除次數、錯誤位元數、錯誤位元率及記憶胞的臨界電壓分佈的至少其中之一有關。此磨損程度值可用以指示記憶胞的磨損程度等可能會影響記憶胞之臨界電壓分佈的各種因素。根據下實體程式化單元901A的磨損程度值,記憶體管理電路702會指示將對應於下實體程式化單元901A的讀取電壓從一第一讀取電壓調整為一第二讀取電壓。例如,此第二讀取電壓的電壓值會大於或小於此第一讀取電壓的電壓值。此第一讀取電壓可以是對應於下實體程式化單元901A的預設讀取電壓或已經被調整過至少一次的讀取電壓。以圖11為例,若將預設讀取電壓VREAD-0的預設電壓值加上一個電壓調整值△V,則使用調整後的讀取電壓(例如,讀取電壓VREAD-4)來讀取記憶胞,將可減少發生上述誤判的機率。在本範例實施例中,電壓調整值△V的值是預設的。例如,每一次將第一讀取電壓調整至第二讀取電壓的電壓增加幅度都是一個預設幅度。然而,在另一範例實施例中,電壓調整值△V的值不是預設的。例如,圖11中電壓調整值△V的值可以是根據當前下實體程式化單
元901A的磨損程度值所適應性決定的。在一範例實施利中,將第一讀取電壓至第二讀取電壓的電壓增加幅度是與下實體程式化單元901A的磨損程度成正相關。亦即,若當前下實體程式化單元901A的磨損程度值指示下實體程式化單元901A中記憶胞的磨損程度較高,則電壓調整值△V的值可被對應增加;若當前下實體程式化單元901A的磨損程度值指示下實體程式化單元901A中記憶胞的磨損程度不高,則電壓調整值△V的值可被對應減少。此外,在另一範例實施例中,記憶體管理電路702亦可以掃描下實體程式化單元901A中的記憶胞並且根據下實體程式化單元901A中記憶胞的臨界電壓分佈來決定電壓調整值△V。
在另一範例實施例中,記憶體管理電路702會動態地決定是否執行上述調整讀取電壓的操作。例如,記憶體管理電路702會判斷下實體程式化單元901A的磨損程度值是否符合一磨損門檻值。此磨損程度值可以是以抹除次數、讀取次數、寫入次數、錯誤位元數及錯誤位元率的其中之一或其組合之對應數值來表示。例如,若此磨損程度值是以抹除次數來表示,則此磨損門檻值例如是3000~5000次。此磨損門檻值是作為記憶胞所儲存的資料之正確性是否仍然可以被有效維持的一個判斷依據。不同類型的記憶胞所對應的磨損門檻值可能不同。若下實體程式化單元901A的磨損程度值符合此磨損門檻值,例如,下實體程式化單元901A中記憶胞的抹除次數達到3000次,表示下實體程式化單元901A儲存之資料的正確性已經無法有效維持,故記憶體管理電路
702會啟用上述根據下實體程式化單元901A的磨損程度值來調整對於下實體程式化單元901A的讀取電壓的操作。反之,若下實體程式化單元901A的磨損程度值不符合此磨損門檻值,例如,下實體程式化單元901A的抹除次數尚未達到3000次,則記憶體管理電路702不會啟用上述根據下實體程式化單元901A的磨損程度值來調整對於下實體程式化單元901A的讀取電壓的操作。換言之,若下實體程式化單元901A的磨損程度值不符合此磨損門檻值,則記憶體管理電路702還是可以使用上述預設讀取電壓(例如,預設讀取電壓VREAD-0)來讀取下實體程式化單元901A中的記憶胞,以獲得下實體程式化單元901A的資料儲存狀態。此外,在上述範例實施例中,記憶體管理電路702會發送一個讀取電壓調整指令至可複寫式非揮發性記憶體模組406。此讀取電壓調整指令會指示可複寫式非揮發性記憶體模組406執行上述調整讀取電壓的操作。
在一範例實施例中,記憶體管理電路702還會指示錯誤檢查與校正電路708對上述資料擷取操作中獲得的資料進行解碼並且判斷是否發生解碼失敗。此解碼可以包括迭代(iterative)解碼或非迭代解碼。若對於上述資料擷取操作中獲得的某一筆資料解碼失敗,例如,執行迭代解碼的次數超過一預設次數,則記憶體管理電路702會再次調整前一次使用的讀取電壓並且利用此調整後的讀取電壓來再次讀取同一個下實體程式化單元。例如,記憶體管理電路702可以指示將上述第二讀取電壓調整為電壓值更大的第三讀取電壓並且指示利用此第三讀取電壓來再次讀取下實體
程式化單元901A。然後,錯誤檢查與校正電路708會重新對利用此第三讀取電壓所讀取到的資料進行解碼。在一次的資料擷取操作中,記憶體管理電路702與錯誤檢查與校正電路708可以重複執行上述調整讀取電壓與解碼讀取到的資料之操作,直到解碼成功或解碼失敗的次數達到一解碼次數門檻值為止。
在圖10的另一範例實施例中,上述資料擷取操作也可以不提供任何讀取電壓至下實體程式化單元901A中的記憶胞。例如,在一範例實施例中,每接收到一筆欲寫入至可複寫式非揮發性記憶體模組406的資料,此資料就會被暫存在緩衝記憶體710中並且至少被維護到不需要再被使用到為止。例如,在圖10的一範例實施例中,暫存在緩衝記憶體710中的資料DATA-a至少會被維護到DATA-c被程式化至上實體程式化單元911B為止。藉此,在執行對應於某一個下實體程式化單元的上實體程式化單元的程式化操作時,儲存於此下實體程式化單元中的資料就可以被從緩衝記憶體710讀取出來,從而減少讀取到錯誤的下實體程式化單元之資料儲存狀態的機率。
在上述範例實施例中,緩衝記憶體710的大小或緩衝記憶體710中用來暫存欲寫入至可複寫式非揮發性記憶體模組406中的資料之空間不會小於一個預設大小。例如,若以圖9所示的程式化順序來儲存資料,則此預設大小至少是可複寫式非揮發性記憶體模組406中的一個實體程式化單元之大小的三至四倍。亦即,在對於資料DATA-c的程式化操作被執行完畢之前,緩衝記憶
體710至少需要同時儲存資料DATA-a、DATA-b及DATA-c;在對於資料DATA-e的程式化操作被執行完畢之前,緩衝記憶體710至少需要同時儲存資料DATA-b、DATA-d及DATA-e或者資料DATA-b、DATA-c、DATA-d及DATA-e。此外,若所使用的程式化順序不同,則上述預設大小也可以適應性地調整,只要可以有效地維護緩衝記憶體710中還會被使用到的資料即可。此外,在另一範例實施例中,亦可以在可複寫式非揮發性記憶體模組406中配置一個緩衝區。此緩衝區並不包含資料真正的儲存位置。例如,此緩衝區可以提供相同或相似於緩衝記憶體710的功能。此外,此緩衝區的大小同樣至少會大於上述預設大小。在一範例實施例中,緩衝區中的實體單元的可靠度及/或資料寫入速度會高於或等於可複寫式非揮發性記憶體模組406中其他區域之實體單元的可靠度及/或資料寫入速度。
圖12a至12c是根據本發明的一範例實施例所繪示的程式化資料的示意圖。
請參照圖12a,假設資料DATA-a與DATA-b已暫存於緩衝記憶體710,且資料DATA-a與DATA-b已被依序程式化至下實體程式化單元901A與902A。記憶體管理電路702會接收資料DATA-c並且將資料DATA-c暫存於緩衝記憶體710。當記憶體管理電路702欲將資料DATA-c程式化至上實體程式化單元911B時,記憶體管理電路702會從緩衝記憶體710中讀取資料DATA-a。然後,記憶體管理電路702會根據讀取出的資料DATA-a
來將資料DATA-c程式化至上實體程式化單元911B。關於如何程式化已於上述範例實施例中說明,在此便不贅述。特別是,由於對於上實體程式化單元911B的程式化操作並不是根據下實體程式化單元901A「真正的」資料儲存狀態來執行的,故可降低因儲存在下實體程式化單元901A中的資料不正確而導致對於上實體程式化單元911B的程式化發生錯誤的機率。值得一提的是,在圖12a至12c的範例實施例中,緩衝記憶體710中不需要再被使用到的資料就可以被設定為可被另一筆資料覆蓋。例如,在將資料DATA-c程式化至上實體程式化單元911B之後,緩衝記憶體710中的資料DATA-a與DATA-c就可以被設定為可被覆蓋。
請參照圖12b,在接收到資料DATA-d之後,資料DATA-d會被暫存在緩衝記憶體710。在此,受限於緩衝記憶體710的大小,資料DATA-a可能會被資料DATA-d覆蓋掉。在一範例實施例中,只有在確定對於資料DATA-a的資料擷取操作完成或資料DATA-c已被成功地程式化至上實體程式化單元911B時,資料DATA-d才會被記憶體管理電路702接收。換言之,在一範例實施例中,若對於資料DATA-a的資料擷取操作尚未完成或資料DATA-c還沒成功地程式化至上實體程式化單元911B,則記憶體管理電路702會處於一忙碌狀態(busy state)而不可接收資料DATA-d;而當對於資料DATA-a的資料擷取操作完成或資料DATA-c已被成功地程式化至上實體程式化單元911B時,記憶體管理電路702會切換為處於閒置狀態(idle state)而可接收資料
DATA-d。然後,資料DATA-d會被程式化至下實體程式化單元903A。
請參照圖12c,在接收到資料DATA-d且記憶體管理電路702處於閒置狀態之後,資料DATA-e會被接收(例如,覆蓋資料DATA-c)並且被暫存在緩衝記憶體710。在將資料DATA-d程式化至下實體程式化單元903A之後,當記憶體管理電路702欲將資料DATA-e程式化至上實體程式化單元912B時,記憶體管理電路702會從緩衝記憶體710中讀取資料DATA-b。然後,記憶體管理電路702會根據從緩衝記憶體710中讀取出來的資料DATA-b來將資料DATA-e程式化至上實體程式化單元912B。在此,記憶體管理電路702從緩衝記憶體710中讀取資料DATA-b的操作即為對應於下實體程式化單元902A的資料擷取操作。
值得一提的是,在圖12a至圖12c的另一範例實施例中,緩衝記憶體710亦可以是以可複寫式非揮發性記憶體模組406中的緩衝區來取代。或者,緩衝記憶體710也可以是與可複寫式非揮發性記憶體模組406中的緩衝區一起使用或者輪替使用。例如,資料DATA-a、DATA-b及DATA-c可暫存於緩衝記憶體710,而資料DATA-d與DATA-e則可暫存於可複寫式非揮發性記憶體模組406中的緩衝區等等。此外,在圖12a與圖12c的另一範例實施例中,對應於下實體程式化單元901A與下實體程式化單元902A的資料擷取操作亦可以是包含使用調整後的讀取電壓來讀取對應的記憶胞之操作。關於如何調整讀取電壓以及利用調整後的讀取電
壓來讀取記憶胞等操作已於前述說明,在此便不贅述。
在上述範例實施例中,資料DATA-a、DATA-b、DATA-c、DATA-d及DATA-e各別的資料大小都是符合一個實體程式化單元的大小。然而,在另一範例實施例中,資料DATA-a、DATA-b、DATA-c、DATA-d及DATA-e各別的資料大小也可以是小於一個實體程式化單元的大小,本發明不加以限制。此外,雖然上述範例實施例皆是以程式化同一個實體抹除單元中的多個實體程式化單元作為範例,但是在另一範例實施例中,屬於不同實體抹除單元的多個實體程式化單元亦可以被連續或不連續地程式化。
圖13是根據本發明的一範例實施例所繪示的資料程式化方法的流程圖。
請參照圖13,在步驟S1301中,一資料(亦稱為第一資料)會被接收並且被程式化至一個下實體程式化單元(亦稱為第一下實體程式化單元)。在步驟S1302中,另一資料(亦稱為第二資料)會被接收。在步驟S1303中,對應於第一下實體程式化單元的一個資料擷取操作(亦稱為第一資料擷取操作)會被執行。特別是,此第一資料擷取操作不包括使用對應於第一下實體程式化單元的一個預設讀取電壓來讀取第一下實體程式化單元。例如,此第一資料擷取操作可包括使用與預設讀取電壓不同的一或多個讀取電壓來讀取第一下實體程式化單元或者從某一緩衝記憶體或可複寫式非揮發性記憶體模組中的緩衝區讀取儲存於第一下實體程式化單元中的資料。在步驟S1304中,根據第一資料擷取操作所獲得的
資料(亦稱為第三資料),第二資料會被程式化至對應於第一下實體程式化單元的第一上實體程式化單元。然而,在另一範例實施例中,步驟S1301與S1302亦可以同時執行。
圖14是根據本發明的另一範例實施例所繪示的資料程式化方法的流程圖。
請參照圖14,在步驟S1401中,第一資料會被接收並且被程式化至第一實體程式化單元。在步驟S1402中,第二資料會被接收。在步驟S1403中,當欲將第二資料程式化至第一下實體程式化單元所對應的第一上實體程式化單元,不同於對應於第一下實體程式化單元的預設讀取電壓之一或多個讀取電壓會被使用來讀取第一下實體程式化單元。例如,此一或多個讀取電壓是根據第一下實體程式化單元的磨損程度值來決定。在步驟S1404中,根據步驟S1403中所讀取到的資料,第二資料會被程式化至此第一上實體程式化單元。然而,在另一範例實施例中,步驟S1401與S1402亦可以同時執行。
圖15是根據本發明的另一範例實施例所繪示的資料程式化方法的流程圖。
請參照圖15,在步驟S1501中,第一資料會被接收並且被程式化至第一實體程式化單元。在步驟S1502中,第二資料會被接收。在步驟S1503中,當欲將第二資料程式化至第一下實體程式化單元所對應的第一上實體程式化單元時,一個不同於對應於第一下實體程式化單元的預設讀取電壓之讀取電壓(亦稱為第
二讀取電壓)會被使用來讀取第一下實體程式化單元。例如,此第二讀取電壓是根據第一下實體程式化單元的磨損程度值來決定。在步驟S1504中,在步驟S1503中所讀取到的資料(亦稱為第四資料)會被解碼。在步驟S1505中,判斷第四資料是否解碼失敗。若第四資料解碼失敗,在步驟S1506中,先前使用的第二讀取電壓會被調整為另一讀取電壓(亦稱為第三讀取電壓)並且此第三讀取電壓會被使用來讀取第一實體程式化單元。在步驟S1506之後,步驟S1504與S1505會被重複執行,直到第四資料解碼成功或者解碼失敗的次數達到一解碼次數門檻值為止。若第四資料解碼成功,在步驟S1507中,根據步驟S1505中解碼成功的資料,第二資料會被程式化至第一上實體程式化單元。然而,在另一範例實施例中,步驟S1501與S1502亦可以同時執行。
圖16是根據本發明的另一範例實施例所繪示的資料程式化方法的流程圖。
請參照圖16,在步驟S1601中,第一資料會被接收並且被程式化至第一實體程式化單元。在步驟S1602中,第一資料被暫存在緩衝記憶體或可複寫式非揮發性記憶體模組中的一個緩衝區。在步驟S1603中,從第二資料會被接收。在步驟S1604中,反應於欲將第二資料程式化至第一下實體程式化單元所對應的第一上實體程式化單元,暫存於緩衝記憶體或可複寫式非揮發性記憶體模組中的緩衝區的第一資料會被讀取。在步驟S1605中,根據步驟S1604中所讀取出的第一資料,第二資料會被程式化至第
一上實體程式化單元。然而,在另一範例實施例中,步驟S1601與S1602及/或步驟S1602與S1603亦可以同時執行。
然而,圖13至圖16中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖13至圖16中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖13至圖16的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,在程式化對應於某一個下實體程式化單元的上實體程式化單元時,本發明會藉由使用調整後的讀取電壓來讀取屬於此下實體程式化單元的記憶胞或者讀取暫存於緩衝記憶體(或,可複寫式非揮發性記憶體模組的緩衝區)中的資料等資料擷取操作來獲得此下實體程式化單元的資料儲存狀態。藉此,將可降低因使用預設讀取電壓來讀取記憶胞而誤判記憶胞的資料儲存狀態,從而導致最終程式化結果發生錯誤的機率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1301~S1304‧‧‧步驟
Claims (21)
- 一種資料程式化方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體抹除單元,該些實體抹除單元中的一第一實體抹除單元包括多個下實體程式化單元與對應於該些下實體程式化單元的多個上實體程式化單元,該資料程式化方法包括:接收一第一資料並且將該第一資料程式化至該些下實體程式化單元中的一第一下實體程式化單元;接收一第二資料;執行對應於該第一下實體程式化單元的一第一資料擷取操作,其中該第一資料擷取操作包括使用一第二讀取電壓來讀取該第一下實體程式化單元以獲得一第三資料,其中該第二讀取電壓的一電壓值不同於對應於該第一下實體程式化單元的一預設讀取電壓的一預設電壓值;以及根據該第三資料來將該第二資料程式化至該些上實體程式化單元中的一第一上實體程式化單元,其中該第一上實體程式化單元與該第一下實體程式化單元屬於同一條字元線。
- 如申請專利範圍第1項所述的資料程式化方法,更包括:獲得該第一下實體程式化單元的一磨損程度值;以及根據該磨損程度值將對應於該第一下實體程式化單元的該預設讀取電壓調整為該第二讀取電壓。
- 如申請專利範圍第1項所述的資料程式化方法,其中執行對應於該第一下實體程式化單元的該第一資料擷取操作的步驟更包括:解碼使用該第二讀取電壓所讀取到的一第四資料;判斷該第四資料是否解碼失敗;以及若該第四資料解碼失敗,將該第二讀取電壓調整為一第三讀取電壓並使用該第三讀取電壓來讀取該第一下實體程式化單元。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,該些實體抹除單元中的一第一實體抹除單元包括多個下實體程式化單元與對應於該些下實體程式化單元的多個上實體程式化單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以接收一第一資料並且發送一第一寫入指令序列以將該第一資料程式化至該些下實體程式化單元中的一第一下實體程式化單元,其中該記憶體控制電路單元更用以接收一第二資料,其中該記憶體控制電路單元更用以指示執行對應於該第一下實體程式化單元的一第一資料擷取操作以獲得一第三資料,其中該第一資料擷取操作包括使用一第二讀取電壓來讀取該第一下實 體程式化單元,其中該第二讀取電壓的一電壓值不同於對應於該第一下實體程式化單元的一預設讀取電壓的一預設電壓值,其中該記憶體控制電路單元更用以根據該第三資料來發送一第二寫入指令序列以將該第二資料程式化至該些上實體程式化單元中的一第一上實體程式化單元,其中該第一上實體程式化單元與該第一下實體程式化單元屬於同一條字元線。
- 如申請專利範圍第4項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以獲得該第一下實體程式化單元的一磨損程度值,其中該記憶體控制電路單元更用以根據該磨損程度值來指示將對應於該第一下實體程式化單元的該預設讀取電壓調整為該第二讀取電壓。
- 如申請專利範圍第4項所述的記憶體儲存裝置,其中該第一資料擷取操作更包括:解碼使用該第二讀取電壓所讀取到的一第四資料;判斷該第四資料是否解碼失敗;以及若該第四資料解碼失敗,指示將該第二讀取電壓調整為一第三讀取電壓並使用該第三讀取電壓來讀取該第一下實體程式化單元。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體 抹除單元,該些實體抹除單元中的一第一實體抹除單元包括多個下實體程式化單元與對應於該些下實體程式化單元的多個上實體程式化單元,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以接收一第一資料並且發送一第一寫入指令序列以將該第一資料程式化至該些下實體程式化單元中的一第一下實體程式化單元,其中該記憶體管理電路更用以接收一第二資料,其中該記憶體管理電路更用以指示執行對應於該第一下實體程式化單元的一第一資料擷取操作以獲得一第三資料,其中該第一資料擷取操作包括使用一第二讀取電壓來讀取該第一下實體程式化單元,其中該第二讀取電壓的一電壓值不同於對應於該第一下實體程式化單元的一預設讀取電壓的一預設電壓值,其中該記憶體管理電路更用以根據該第三資料來發送一第二寫入指令序列以將該第二資料程式化至該些上實體程式化單元中的一第一上實體程式化單元,其中該第一上實體程式化單元與該第一下實體程式化單元屬於同一條字元線。
- 如申請專利範圍第7項所述的記憶體控制電路單元,其中 該記憶體管理電路更用以獲得該第一下實體程式化單元的一磨損程度值,其中該記憶體管理電路更用以根據該磨損程度值而指示將對應於該第一下實體程式化單元該預設讀取電壓調整為該第二讀取電壓。
- 如申請專利範圍第7項所述的記憶體控制電路單元,更包括:一錯誤檢查與校正電路,耦接至該記憶體管理電路,其中該第一資料擷取操作更包括:由該錯誤檢查與校正電路解碼使用該第二讀取電壓所讀取到的一第四資料;判斷該第四資料是否解碼失敗;以及若該第四資料解碼失敗,指示將該第二讀取電壓調整為一第三讀取電壓並使用該第三讀取電壓來讀取該第一下實體程式化單元。
- 一種資料程式化方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體抹除單元,該些實體抹除單元中的一第一實體抹除單元包括多個下實體程式化單元與對應於該些下實體程式化單元的多個上實體程式化單元,該資料程式化方法包括:接收一第一資料並且將該第一資料程式化至該些下實體程式化單元中的一第一下實體程式化單元; 將該第一資料暫存於該可複寫式非揮發性記憶體模組的一緩衝區;接收一第二資料;執行對應於該第一下實體程式化單元的一第一資料擷取操作以獲得一第三資料,其中該第一資料擷取操作包括從該緩衝區中讀取該第一資料;以及根據該第三資料來將該第二資料程式化至該些上實體程式化單元中的一第一上實體程式化單元,其中該第一上實體程式化單元與該第一下實體程式化單元屬於同一條字元線。
- 如申請專利範圍第10項所述的資料程式化方法,更包括:若該第一資料擷取操作尚未完成或程式化該第二資料至該第一上實體程式化單元失敗,持續維護暫存於該緩衝區中的該第一資料。
- 如申請專利範圍第10項所述的資料程式化方法,其中該緩衝區的一大小不小於一預設大小,其中該預設大小為該可複寫式非揮發性記憶體模組中的一個實體程式化單元之大小的三倍。
- 如申請專利範圍第12項所述的資料程式化方法,更包括:在接收該第二資料之前,接收一第四資料;將該第四資料暫存於該緩衝區;將該第四資料程式化至該些下實體程式化單元中的一第二下實體程式化單元; 在接收該第二資料之後,接收一第五資料;將該第五資料暫存於該緩衝區;執行對應於該第二下實體程式化單元的一第二資料擷取操作,其中該第二資料擷取操作包括從該緩衝區中讀取該第四資料;以及根據該第二資料擷取操作所獲得的該第四資料來將該第五資料程式化至該些上實體程式化單元中的一第二上實體程式化單元,該第二上實體程式化單元對應於該第二下實體程式化單元,其中將該第四資料程式化至該第二下實體程式化單元的步驟是在將該第一資料程式化至該第一下實體程式化單元的步驟與將該第二資料程式化至該第一上實體程式化單元的步驟之間執行。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,該些實體抹除單元中的一第一實體抹除單元包括多個下實體程式化單元與對應於該些下實體程式化單元的多個上實體程式化單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以接收一第一資料並且發送一第一寫入指令序列以將該第一資料程式化至該些下實體程式化單元中的一第一下實體程式化單元, 其中該記憶體控制電路單元更用以接收一第二資料,其中該記憶體控制電路單元更用以指示將該第一資料暫存於該可複寫式非揮發性記憶體模組的一緩衝區,其中該記憶體控制電路單元更用以指示執行對應於該第一下實體程式化單元的一第一資料擷取操作以獲得一第三資料,其中該第一資料擷取操作包括從該緩衝區中讀取該第一資料,其中該記憶體控制電路單元更用以根據該第三資料來發送一第二寫入指令序列以將該第二資料程式化至該些上實體程式化單元中的一第一上實體程式化單元,其中該第一上實體程式化單元與該第一下實體程式化單元屬於同一條字元線。
- 如申請專利範圍第14項所述的記憶體儲存裝置,其中若該第一資料擷取操作尚未完成或程式化該第二資料至該第一上實體程式化單元失敗,該記憶體控制電路單元更用以持續維護暫存於該緩衝區中的該第一資料。
- 如申請專利範圍第14項所述的記憶體儲存裝置,其中該緩衝區的一大小不小於一預設大小,其中該預設大小為該可複寫式非揮發性記憶體模組中的一個實體程式化單元之大小的三倍。
- 如申請專利範圍第16項所述的記憶體儲存裝置,其中在接收該第二資料之前,該記憶體控制電路單元更用以接收一第四資料,其中該記憶體控制電路單元更用以指示將該第四資料暫存於 該緩衝區,其中該記憶體控制電路單元更用以發送一第三寫入指令序列以將該第四資料程式化至該些下實體程式化單元中的一第二下實體程式化單元,其中在接收該第二資料之後,該記憶體控制電路單元更用以接收一第五資料,其中該記憶體控制電路單元更用以指示將該第五資料暫存於該緩衝區,其中該記憶體控制電路單元更用以指示執行對應於該第二下實體程式化單元的一第二資料擷取操作,其中該第二資料擷取操作包括從該緩衝區中讀取該第四資料,其中該記憶體控制電路單元更用以根據該第二資料擷取操作所獲得的該第四資料來發送一第四寫入指令序列以將該第五資料程式化至該些上實體程式化單元中的一第二上實體程式化單元,該第二上實體程式化單元對應於該第二下實體程式化單元,其中將該第四資料程式化至該第二下實體程式化單元的操作是在將該第一資料程式化至該第一下實體程式化單元的操作與將該第二資料程式化至該第一上實體程式化單元的操作之間執行。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,該些實體抹除單元中的一第一實體抹除單元包括多個下實體程式化單元與對應於該些下實體程式化單元的多個上實 體程式化單元,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以接收一第一資料並且發送一第一寫入指令序列以將該第一資料程式化至該些下實體程式化單元中的一第一下實體程式化單元,其中該記憶體管理電路更用以將指示該第一資料暫存於該可複寫式非揮發性記憶體模組的一緩衝區,其中該記憶體管理電路更用以接收一第二資料,其中該記憶體管理電路更用以指示執行對應於該第一下實體程式化單元的一第一資料擷取操作以獲得一第三資料,其中該第一資料擷取操作包括從該緩衝區中讀取該第一資料,其中該記憶體管理電路更用以根據該第三資料來發送一第二寫入指令序列以將該第二資料程式化至該些上實體程式化單元中的一第一上實體程式化單元,其中該第一上實體程式化單元與該第一下實體程式化單元屬於同一條字元線。
- 如申請專利範圍第18項所述的記憶體控制電路單元,其中若該第一資料擷取操作尚未完成或該第二資料沒有被成功地程式化至該第一上實體程式化單元,該記憶體管理電路更用以持續 維護暫存於該緩衝區中的該第一資料。
- 如申請專利範圍第18項所述的記憶體控制電路單元,其中該緩衝區的一大小不小於一預設大小,其中該預設大小為該可複寫式非揮發性記憶體模組中的一個實體程式化單元之大小的三倍。
- 如申請專利範圍第20項所述的記憶體控制電路單元,其中在接收該第二資料之前,該記憶體管理電路更用以接收一第四資料,其中該記憶體管理電路更用以指示將該第四資料暫存於該緩衝區,其中該記憶體管理電路更用以發送一第三寫入指令序列以將該第四資料程式化至該些下實體程式化單元中的一第二下實體程式化單元,其中在接收該第二資料之後,該記憶體管理電路更用以接收一第五資料,其中該記憶體管理電路更用以指示將該第五資料暫存於該緩衝區,其中該記憶體管理電路更用以指示執行對應於該第二下實體程式化單元的一第二資料擷取操作,其中該第二資料擷取操作包括從該緩衝區中讀取該第四資料,其中該記憶體管理電路更用以根據該第二資料擷取操作所獲得的該第四資料來發送一第四寫入指令序列以將該第五資料程式 化至該些上實體程式化單元中的一第二上實體程式化單元,且該第二上實體程式化單元對應於該第二下實體程式化單元,其中將該第四資料程式化至該第二下實體程式化單元的操作是在將該第一資料程式化至該第一下實體程式化單元的操作與將該第二資料程式化至該第一上實體程式化單元的操作之間執行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104109209A TWI550612B (zh) | 2015-03-23 | 2015-03-23 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
US14/727,878 US9530509B2 (en) | 2015-03-23 | 2015-06-02 | Data programming method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104109209A TWI550612B (zh) | 2015-03-23 | 2015-03-23 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI550612B true TWI550612B (zh) | 2016-09-21 |
TW201635296A TW201635296A (zh) | 2016-10-01 |
Family
ID=56975647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104109209A TWI550612B (zh) | 2015-03-23 | 2015-03-23 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9530509B2 (zh) |
TW (1) | TWI550612B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102500616B1 (ko) * | 2016-02-26 | 2023-02-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN107065604A (zh) * | 2017-01-12 | 2017-08-18 | 苏州乐派特机器人有限公司 | 一种可编程式穿戴装置 |
CN109273033B (zh) * | 2017-07-17 | 2021-03-30 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
TWI658402B (zh) * | 2017-07-20 | 2019-05-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 |
KR102479483B1 (ko) * | 2017-10-19 | 2022-12-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
TWI648676B (zh) * | 2017-11-30 | 2019-01-21 | 群聯電子股份有限公司 | 資料存取方法、記憶體控制電路單元以及記憶體儲存裝置 |
WO2019190866A1 (en) * | 2018-03-26 | 2019-10-03 | Rambus Inc. | Command/address channel error detection |
TWI668570B (zh) * | 2018-08-09 | 2019-08-11 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
JP2020035504A (ja) * | 2018-08-30 | 2020-03-05 | キオクシア株式会社 | メモリシステム |
TWI724427B (zh) * | 2019-05-22 | 2021-04-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7684238B2 (en) * | 2006-08-24 | 2010-03-23 | Samsung Electronics Co., Ltd. | Methods of programming multi-bit flash memory devices and related devices |
US7916547B2 (en) * | 2007-09-14 | 2011-03-29 | Kabushiki Kaisha Toshiba | Method for controlling a non-volatile semiconductor memory device |
US7952922B2 (en) * | 2006-06-06 | 2011-05-31 | Micron Technology, Inc. | Method for programming a non-volatile memory device to reduce floating-gate-to-floating-gate coupling effect |
US8189395B2 (en) * | 2006-09-28 | 2012-05-29 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory and data reading method |
US8902671B2 (en) * | 2012-11-20 | 2014-12-02 | Phison Electronics Corp. | Memory storage device, memory controller thereof, and method for programming data thereof |
-
2015
- 2015-03-23 TW TW104109209A patent/TWI550612B/zh active
- 2015-06-02 US US14/727,878 patent/US9530509B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7952922B2 (en) * | 2006-06-06 | 2011-05-31 | Micron Technology, Inc. | Method for programming a non-volatile memory device to reduce floating-gate-to-floating-gate coupling effect |
US7684238B2 (en) * | 2006-08-24 | 2010-03-23 | Samsung Electronics Co., Ltd. | Methods of programming multi-bit flash memory devices and related devices |
US8189395B2 (en) * | 2006-09-28 | 2012-05-29 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory and data reading method |
US7916547B2 (en) * | 2007-09-14 | 2011-03-29 | Kabushiki Kaisha Toshiba | Method for controlling a non-volatile semiconductor memory device |
US8902671B2 (en) * | 2012-11-20 | 2014-12-02 | Phison Electronics Corp. | Memory storage device, memory controller thereof, and method for programming data thereof |
Also Published As
Publication number | Publication date |
---|---|
US20160284414A1 (en) | 2016-09-29 |
TW201635296A (zh) | 2016-10-01 |
US9530509B2 (en) | 2016-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI550612B (zh) | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI649754B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI575374B (zh) | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI668570B (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI512462B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI559314B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI554885B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201642266A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201637019A (zh) | 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201913383A (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9312013B1 (en) | Configuration method of erase operation, memory controlling circuit unit and memory storage device | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI529530B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI678621B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI550625B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI691961B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN105810246B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TW201640515A (zh) | 記憶體管理方法、記憶體儲存裝置與記憶體控制電路單元 | |
US20220398155A1 (en) | Data rebuilding method, memory storage apparatus, and memory control circuit unit | |
TWI597731B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI554884B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI591641B (zh) | 資料程式化方法、記憶體控制電路單元及記憶體儲存裝置 |