TW202403548A - 借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器 - Google Patents
借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器 Download PDFInfo
- Publication number
- TW202403548A TW202403548A TW112124262A TW112124262A TW202403548A TW 202403548 A TW202403548 A TW 202403548A TW 112124262 A TW112124262 A TW 112124262A TW 112124262 A TW112124262 A TW 112124262A TW 202403548 A TW202403548 A TW 202403548A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- seed
- memory
- page
- unit block
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 289
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000007726 management method Methods 0.000 claims abstract description 12
- 238000013500 data storage Methods 0.000 claims abstract description 10
- 239000002356 single layer Substances 0.000 claims description 83
- 238000003860 storage Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 11
- 230000000717 retained effect Effects 0.000 claims description 4
- 239000000463 material Substances 0.000 claims 1
- 239000010410 layer Substances 0.000 description 29
- 230000005540 biological transmission Effects 0.000 description 14
- 238000013507 mapping Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 6
- 230000007717 exclusion Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 101150101057 PBA1 gene Proteins 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 102220585520 T cell receptor gamma constant 1_S20A_mutation Human genes 0.000 description 4
- 102220585521 T cell receptor gamma constant 1_S21A_mutation Human genes 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 102220070930 rs794728599 Human genes 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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
- 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/1008—Correctness of operation, e.g. memory ordering
-
- 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一種借助隨機特性控制來進行一記憶體裝置的資料存取管理的方法可包含:自一主機裝置接收複數個主機命令並根據複數個主機命令來對非揮發性記憶體進行資料存取,例如,因應至少一主機寫入命令,將資料編程至至少一單層單元區塊中以作為對應於一資料接收階段的第一儲存資料;以及進行一種子感知垃圾回收程序來將至少一單層單元區塊的第一儲存資料之中的有效資料收集至至少一非單層單元區塊中以作為對應於一資料儲存階段的第二儲存資料,例如,對多個種子進行一隨機特性檢查操作來選擇性地將單層單元區塊內多個頁面各自的資料決定為目標資料。
Description
本發明係有關於記憶體控制,且尤指一種借助隨機特性(randomness-property)控制來進行記憶體裝置的資料存取管理的方法以及相關裝置。
記憶體裝置可包含有用來儲存資料的快閃記憶體,並且針對快閃記憶體的存取管理相當複雜,舉例來說,記憶體裝置可以是一記憶卡、一固態硬碟(solid state drive, SSD)或一嵌入式儲存裝置(例如符合通用快閃儲存(universal flash storage, UFS)規範的一嵌入式儲存裝置)。當製造商嘗試根據現有規範來實現記憶體裝置的某些特性時,可能會發生某些問題,尤其是,記憶體裝置可能會消耗太多時間來因應主機端寫入要求以進行記憶體裝置的某些內部操作,其導致減少了整體性能,此外,記憶體裝置可具備一動態隨機存取記憶體(dynamic random access memory, DRAM),並且記憶體裝置內的一控制器積體電路(integrated circuit, IC)可利用動態隨機存取記憶體來進行記憶體裝置的內部操作及/或於一寫入程序期間緩衝來自一主機裝置的寫入資料,舉例來說,控制器積體電路可頻繁地存取動態隨機存取記憶體來進行記憶體裝置的內部操作並佔用動態隨機存取記憶體的傳送頻寬,因此對於寫入程序期間主機裝置所進行的直接記憶體存取(direct memory access, DMA)操作來說,動態隨機存取記憶體的傳送頻寬可能會不足,其導致減少整體性能,先前技術嘗試解決此問題,然而,可能引入了更多問題(例如某些副作用),因此,需要一種創新的方法以及相關架構來在不引入副作用的情況下或藉由不太可能引入副作用的方式解決該些問題。
因此,本發明的目的之一在於提供一種借助隨機特性控制來進行記憶體裝置的資料存取管理的方法以及相關裝置,以解決上述問題。
本發明之至少一實施例提供了一種借助隨機特性控制來進行一記憶體裝置的資料存取管理的方法,其中該方法可應用於記憶體裝置的一記憶體控制器,記憶體裝置可包含有記憶體控制器以及一非揮發性記憶體,非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),該方法可包含有:自一主機裝置接收複數個主機命令並根據複數個主機命令來對非揮發性記憶體進行資料存取,其中根據複數個主機命令來對非揮發性記憶體進行資料存取的步驟包含有:因應複數個主機命令之中的至少一主機寫入命令,將資料編程至至少一單層單元區塊中以作為對應於一資料接收階段的第一儲存資料。該方法可另包含有:進行一種子感知垃圾回收程序來將至少一單層單元區塊的第一儲存資料之中的有效資料收集至至少一非單層單元區塊中以作為對應於一資料儲存階段的第二儲存資料,其中對於一非單層單元區塊內的多個記憶體單元來說,每一個記憶體單元的一位元計數係大於一,以及種子感知垃圾回收程序包含有:對一第一種子與一第二種子進行一第一隨機特性檢查操作來產生一第一隨機特性檢查結果;以及根據第一隨機特性檢查結果來選擇性地將至少一單層單元區塊內的一第一頁面的第一資料以及至少一單層單元區塊內的一第二頁面的第二資料決定為第一組目標資料,以供利用非揮發性記憶體的至少一內部複製操作來編程至至少一非單層單元區塊中,其中在資料接收階段中,在第一資料被編程至第一頁面之前,藉由第一種子來對第一資料進行隨機化操作,以及在資料接收階段中,在第二資料被編程至第二頁面之前,藉由第二種子來對第二資料進行隨機化操作。
除了上述方法之外,本發明另提供了一種記憶體裝置,記憶體裝置包含有一記憶體控制器以及一非揮發性記憶體,非揮發性記憶體係用以儲存資訊,其中非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件)。記憶體控制器係耦接於非揮發性記憶體,並且記憶體控制器係用以控制記憶體裝置的操作,此外,記憶體控制器包含有一處理電路,其中處理電路係用以根據來自一主機裝置的複數個主機命令來控制記憶體控制器,以允許主機裝置透過記憶體控制器來存取非揮發性記憶體,舉例來說,記憶體控制器自主機裝置接收複數個主機命令,並根據複數個主機命令來對非揮發性記憶體進行資料存取,其中根據複數個主機命令來對非揮發性記憶體進行資料存取的步驟包含有:因應複數個主機命令之中的至少一主機寫入命令,將資料編程至至少一單層單元區塊中以作為對應於一資料接收階段的第一儲存資料。此外,記憶體控制器進行一種子感知垃圾回收程序來將至少一單層單元區塊的第一儲存資料之中的有效資料收集至至少一非單層單元區塊中以作為對應於一資料儲存階段的第二儲存資料,其中對於至少一非單層單元區塊內的多個記憶體單元來說,每一個記憶體單元的一位元計數係大於一,以及種子感知垃圾回收程序包含有:對一第一種子與一第二種子進行一第一隨機特性檢查操作來產生一第一隨機特性檢查結果;以及根據第一隨機特性檢查結果來選擇性地將至少一單層單元區塊內的一第一頁面的第一資料以及至少一單層單元區塊內的一第二頁面的第二資料決定為第一組目標資料,以供利用非揮發性記憶體的至少一內部複製操作來編程至至少一非單層單元區塊中,其中在資料接收階段中,在第一資料被編程至第一頁面之前,藉由第一種子來對第一資料進行隨機化操作,以及在資料接收階段中,在第二資料被編程至第二頁面之前,藉由第二種子來對第二資料進行隨機化操作。
根據某些實施例,本發明另提供了一種電子裝置,該電子裝置可包含有上述記憶體裝置並另包含有耦接於記憶體裝置的主機裝置,主機裝置可包含有:至少一處理器,用以控制主機裝置的操作;以及一電源供應電路,耦接於至少一處理器,並且用以提供電源給至少一處理器以及記憶體裝置,此外,記憶體裝置提供儲存空間給主機裝置。
除了上述方法之外,本發明另提供了一種記憶體裝置的記憶體控制器,其中記憶體裝置包含有記憶體控制器以及一非揮發性記憶體,非揮發性記憶體可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),此外,記憶體控制器包含有一處理電路,其中處理電路係用以根據來自一主機裝置的複數個主機命令來控制記憶體控制器,以允許主機裝置透過記憶體控制器來存取非揮發性記憶體,舉例來說,記憶體控制器自主機裝置接收複數個主機命令,並根據複數個主機命令來對非揮發性記憶體進行資料存取,其中根據複數個主機命令來對非揮發性記憶體進行資料存取的步驟包含有:因應複數個主機命令之中的至少一主機寫入命令,將資料編程至至少一單層單元區塊中以作為對應於一資料接收階段的第一儲存資料。此外,記憶體控制器進行一種子感知垃圾回收程序來將至少一單層單元區塊的第一儲存資料之中的有效資料收集至至少一非單層單元區塊中以作為對應於一資料儲存階段的第二儲存資料,其中對於一非單層單元區塊內的多個記憶體單元來說,每一個記憶體單元的一位元計數係大於一,以及種子感知垃圾回收程序包含有:對一第一種子與一第二種子進行一第一隨機特性檢查操作來產生一第一隨機特性檢查結果;以及根據第一隨機特性檢查結果來選擇性地將至少一單層單元區塊內的一第一頁面的第一資料以及至少一單層單元區塊內的一第二頁面的第二資料決定為第一組目標資料,以供利用非揮發性記憶體的至少一內部複製操作來編程至至少一非單層單元區塊中,其中在資料接收階段中,在第一資料被編程至第一頁面之前,藉由第一種子來對第一資料進行隨機化操作,以及在資料接收階段中,在第二資料被編程至第二頁面之前,藉由第二種子來對第二資料進行隨機化操作。
本發明的方法與相關裝置可保證於不同情況下適當地操作記憶體裝置,尤其是,防止消耗太多時間在因應主機端寫入要求來進行記憶體裝置的某些內部操作,舉例來說,在於寫入程序期間的寫入資料量太大的情況中,主機裝置可間歇地覆寫(overwrite)某些資料,並且記憶體裝置仍可適當地操作而無需被主機裝置的覆寫行為所阻礙,此外,本發明的方法與相關裝置可在不引入副作用的情況下或藉由不太可能引入副作用的方式解決先前技術的問題。
第1圖為依據本發明一實施例之電子裝置10的示意圖,其中電子裝置10可包含有主機裝置50以及記憶體裝置100。主機裝置50可包含有至少一處理器(例如一個或多個處理器;其可被統稱為處理器52)、電源供應電路54以及傳輸介面電路58,其中處理器52與傳輸介面電路58可透過匯流排而彼此耦接,並且可耦接於電源供應電路54來取得電源。處理器52係用以控制主機裝置50的操作,以及電源供應電路54係用以提供電源至處理器52、傳輸介面電路58以及記憶體裝置100,並輸出一個或多個驅動電壓至記憶體裝置100。記憶體裝置100可用以提供儲存空間給主機裝置50,並且可自主機裝置50取得一個或多個驅動電壓以作為記憶體裝置100的電源。主機裝置50的範例可包含有但不限於:多功能手機、平板電腦、可穿戴裝置以及個人電腦,例如桌上型電腦以及筆記型電腦,記憶體裝置100的範例可包含有但不限於:可攜式記憶體裝置(例如符合SD / MMC、CF、MS或XD規範的記憶卡、固態硬碟(solid state drive, SSD)以及不同類型的嵌入式記憶體裝置(例如符合通用快閃儲存(universal flash storage, UFS)規範或嵌入式多媒體卡(embedded multi media card, eMMC)規範的嵌入式記憶體裝置)。根據本實施例,記憶體裝置100可包含有一控制器,諸如記憶體控制器110,並且可另包含有非揮發性記憶體120(為簡潔起見,在第1圖中標記為“NV記憶體”),其中記憶體控制器110係用以控制存取非揮發性記憶體120,以及非揮發性記憶體120係用以儲存資訊。非揮發性記憶體120可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、…、以及122-N
E(為簡潔起見,在第1圖中分別標記為“NV記憶體元件”),其中“N
E”可以代表大於1的正整數。舉例來說,非揮發性記憶體120可以是快閃記憶體,並且複數個非揮發性記憶體元件122-1、122-2、…、以及122-N
E可以是複數個快閃記憶體晶片或複數個快閃記憶體裸晶(die),但是本發明不限於此。
如第1圖所示,記憶體控制器110可包含有一處理電路(例如微處理器112)、一儲存單元(例如唯讀記憶體(read-only memory, ROM)112M;為簡潔起見,標記為“ROM”)、控制邏輯電路114、隨機存取記憶體(random access memory, RAM;為簡潔起見,標記為“RAM”,舉例來說,其可以藉由靜態隨機存取記憶體(static random access memory, SRAM)來實現)116以及傳輸介面電路118,其中上述元件之至少一部分(例如一部分或全部)可通過匯流排彼此耦接。隨機存取記憶體116可用以提供內部儲存空間給記憶體控制器110(例如可暫時地儲存資訊),但是本發明不限於此,此外,本實施例之唯讀記憶體112M係用以儲存程式碼112C,並且微處理器112係用以執行程式碼112C以控制非揮發性記憶體120的存取,要注意的是,程式碼112C也可被儲存於隨機存取記憶體116或任一類型的記憶體,此外,控制邏輯電路114可用以控制非揮發性記憶體120,並包含有一隨機化器(randomizer)電路114R,其中隨機化器電路114係用以進行隨機化操作與去隨機化操作,並另包含有以供進行錯誤校正碼(error correction code, ECC)編碼與錯誤校正碼解碼的一錯誤校正碼電路(未顯示於第1圖),以保護資料及/或進行錯誤校正。舉例來說,於寫入程序的期間,記憶體控制器110(例如微處理器112)可利用隨機化器電路114R(例如其中的一隨機化器)來對待寫入資料進行隨機化操作,以產生隨機化後資料並將其儲存至非揮發性記憶體120中,又例如,於讀取程序期間,記憶體控制器110(例如微處理器112)可利用隨機化器電路114R(例如其中的一去隨機化器)來對先前儲存的資料(例如隨機化後資料)進行去隨機化操作,以產生去隨機化後資料以供準備讀取資料來回傳至主機裝置50。針對記憶體裝置100(例如記憶體控制器110)與主機裝置50之間的通訊,傳輸介面電路118可符合不同通訊規範(例如序列先進技術附件(Serial Advanced Technology Attachment, SATA)規範、通用序列匯流排(Universal Serial Bus, USB)規範、快捷外部連接標準(Peripheral Component Interconnect Express, PCIe)規範、非揮發性記憶體儲存裝置規範、嵌入式多媒體卡規範或通用快閃儲存規範)之中的一個或多個通訊規範,並可為記憶體裝置100來根據該一個或多個通訊規範與主機裝置50(例如傳輸介面電路58)進行通訊。類似地,傳輸介面電路58可符合該一個或多個通訊規範,並可為主機裝置50來根據該一個或多個通訊規範與記憶體裝置100(例如傳輸介面電路118)進行通訊。
在本實施例中,主機裝置50可以藉由將複數個主機命令以及相對應的邏輯位址傳送至記憶體控制器110來間接地存取記憶體裝置100內的非揮發性記憶體120,記憶體控制器110接收複數個主機命令以及相對應的邏輯位址,並且分別將複數個機命令轉換成複數個記憶體操作命令(其可簡稱為操作命令),再利用複數個操作命令來控制非揮發性記憶體120,以對在非揮發性記憶體120內相對應之實體位址的記憶體單元或資料頁面(data page)進行讀取或寫入/編程等等,其中實體位址可以與邏輯位址相關。舉例來說,記憶體控制器110可產生或更新至少一邏輯至實體(logical-to-physical, L2P)位址映射表來管理實體位址與邏輯位址之間的關係,其中非揮發性記憶體120可儲存全域(global)邏輯至實體位址映射表120T以供記憶體控制器110控制記憶體裝置100來存取非揮發性記憶體120中的資料,但是本發明不限於此。又例如,記憶體控制器110可產生或更新種子表120S以供記憶體控制器110來借助隨機特性控制以進行記憶體裝置100的資料存取管理。
為了更好的理解,全域邏輯至實體位址映射表120T及/或種子表120S可位於非揮發性記憶體122-1元件內的一預定區域(例如一系統區域)中,但是本發明不限於此,舉例來說,全域邏輯至實體位址映射表120T可被劃分成複數個區域(local)邏輯至實體位址映射表,並且該複數個區域邏輯至實體位址映射表可儲存於非揮發性記憶體元件122-1、122-2以及122-N
E的一個或多個非揮發性記憶體元件中,尤其是,可分別儲存於非揮發性記憶體元件122-1、122-2以及122-N
E中。當需要時,記憶體控制器110可將全域邏輯至實體位址映射表120T的至少一部分(例如一部分或全部)加載至隨機存取記憶體116或其它記憶體中,舉例來說,記憶體控制器110可將該複數個區域邏輯至實體位址映射表之中的一區域邏輯至實體位址映射表加載至隨機存取記憶體116以作為一暫時邏輯至實體位址映射表116T,以供根據儲存為暫時邏輯至實體位址映射表116T的該區域邏輯至實體位址映射表來存取非揮發性記憶體120中的資料,但是本發明不限於此。又例如,記憶體控制器110可將種子表120S的至少一部分(例如一部分或全部)加載至隨機存取記憶體116或其它記憶體中,尤其是,將一最新種子表(例如種子表120S的最新版本)加載至隨機存取記憶體116中以作為暫時種子表116S,以供根據儲存為暫時種子表116S的最新種子表來借助隨機特性控制以進行記憶體裝置100的資料存取管理。
此外,上述至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件,諸如{122-1, 122-2, …, 122-N
E})可包含有複數個區塊,其中記憶體控制器110可對非揮發性記憶體120進行資料抹除操作的最小單位為一區塊,並且記憶體控制器110可對非揮發性記憶體120進行資料寫入操作的最小單位為一頁面,但是本發明不限於此,舉例來說,非揮發性記憶體元件122-1、122-2、…以及122-N
E之中的任一個非揮發性記憶體元件122-n(符號“n”可代表在區間[1,N
E]中的任一整數)可包含有複數個區塊,並且該複數個區塊內的一區塊可包含並記錄一特定頁面數量,其中記憶體控制器110可根據一區塊位址以及一頁面位址來存取該複數個區塊內某個區塊的某個頁面。
第2圖的右半部為依據本發明一實施例之借助隨機特性控制來進行記憶體裝置(例如記憶體裝置100)的資料存取管理之方法的資料接收與儲存控制方案,其中為了更好的理解,第2圖的左半部繪示了對應於資料接收與儲存控制方案的資料接收與儲存控制功能暫時地失效的案例,但是本發明不限於此。此外,記憶體裝置100可具備動態隨機存取記憶體(dynamic RAM, DRAM;為簡潔起見,標記為“DRAM”)130。
如第2圖左半部所示,當資料接收與儲存控制功能暫時地失效時,記憶體控制器110可能會消耗大量時間來因應複數個主機端寫入要求以進行記憶體裝置100的某些內部操作(例如垃圾回收(garbage collection, GC)操作),其導致降低了整體性能,尤其是,可利用動態隨機存取記憶體130來進行記憶體裝置100的內部操作及/或於寫入程序期間緩衝來自主機裝置50的寫入資料,舉例來說,記憶體控制器110可頻繁地存取動態隨機存取記憶體130來進行記憶體裝置100的內部操作並佔用動態隨機存取記憶體130的傳送頻寬(例如對應於內部操作的資料存取可能會暫時地對對應於主機端寫入要求的資料存取造成阻礙),因此,對於在寫入程序期間藉由主機裝置50所進行的直接記憶體存取(direct memory access, DMA)操作來說,動態隨機存取記憶體130的傳送頻寬可能會不足,其導致了整體性能下降。
如第2圖的右半部所示,基於資料接收與儲存控制方案,記憶體控制器110可因應主機端寫入要求來有效地進行某些內部操作(例如種子感知(seed-aware)垃圾回收操作),尤其是,可將資料編程至至少一單層單元(single level cell, SLC)區塊(例如一個或多個單層單元區塊)中以作為對應於一資料接收階段的第一儲存資料,並且可進行一種子感知垃圾回收程序來將至少一單層單元區塊的第一儲存資料之中的有效資料收集至至少一非單層單元區塊(例如一個或多個非單層單元區塊,諸如至少一四層單元(quadruple level cell, QLC)區塊(例如一個或多個四層單元區塊))中以作為對應於一資料儲存階段的第二儲存資料,舉例來說,於寫入程序的期間,記憶體控制器110可利用動態隨機存取記憶體130來緩衝來自主機裝置50的寫入資料並根據緩衝至動態隨機存取記憶體130的寫入資料來準備待編程至至少一單層單元區塊中的資料,其中可同時進行對應於資料接收階段之操作的一部分以及對應於資料儲存階段之操作的一部分。由於記憶體控制器110可在不使用動態隨機存取記憶體130的情況下進行種子感知垃圾回收程序,因此進行種子感知垃圾回收程序不會佔用動態隨機存取記憶體130的傳送頻寬(例如對應於內部操作(諸如種子感知垃圾回收操作)的資料存取不會對對應於主機端寫入要求的資料存取造成阻礙),如此一來,對於在寫入程序期間藉由主機裝置50進行的直接記憶體存取操作來說,動態隨機存取記憶體130的傳送頻寬相當足夠,因此,可改善整體性能。
為了更好的理解,對應於內部操作(例如種子感知垃圾回收操作)的資料存取可藉由記憶體控制器110與非揮發性記憶體120之間來闡明,但是本發明不限於此,根據某些實施例,記憶體控制器110可利用非揮發性記憶體120的一內部緩衝器來緩衝自至少一單層單元區塊的一組頁面(例如在至少一非單層單元區塊代表至少一四層單元區塊的情況下的4個頁面)所讀取的部分資料,並將緩衝後的部分資料編程至至少一非單層單元區塊(例如至少一四層單元區塊)的一混合頁面(例如多個同時被存取的頁面,諸如對應於揮發性記憶體120內任一個非揮發性記憶體元件122-n的記憶體單元架構中相同字元線(word-line, WL)並且應被同時地存取的多個頁面)中,其中不需要進行藉由記憶體控制器110來自非揮發性記憶體120讀取部分資料的操作以及藉由記憶體控制器110來將部分資料寫入至非揮發性記憶體120的操作。尤其是,記憶體控制器110可維持至少一種子表(例如一個或多個種子表,諸如種子表120S及/或暫時種子表116S),並根據至少一種子表來擇取一組目標頁面中的目標資料以作為該組頁面中的部分資料,以保證該組目標頁面中的目標資料的隨機特性(例如該組頁面中的部分資料的隨機特性),並因此保證了被編程至至少一非單層單元區塊(例如至少一四層單元區塊)之混合頁面中的部分資料的可靠性。基於資料接收與儲存控制方案,可以在非揮發性記憶體120內完成對應於內部操作(例如種子感知垃圾回收操作)的資料存取,並且該資料存取不會存在於記憶體控制器110與非揮發性記憶體120之間的資料路徑,因此,可以移除在第2圖右半部中記憶體控制器110與非揮發性記憶體120之間對應於內部操作的資料存取。
針對至少一非單層單元區塊(例如多層單元(multiple level cell, MLC)區塊、三層單元(triple level cell ,TLC)區塊以及四層單元區塊)的每記憶體單元多位元(multiple-bits-per-memory-cell)的特性,混合頁面(例如對應於相同字元線的多個頁面)應被同時地存取(例如編程或讀取)以允許透過該字元線所存取的所有記憶體單元的每一個記憶體單元的多個位元可以被相對應地存取。對應於相同字元線之多個頁面的頁面計數CNT_PAGE一般會等於每一記憶體單元的位元計數CNT_BIT_PER_CELL(或稱為「每記憶體單元位元計數」(bit count per memory cell)),以四層單元區塊為例,CNT_PAGE = CNT_BIT_PER_CELL = 4,並且對應於相同字元線的多個頁面可稱為最高頁面(top page)、較高頁面(upper page)、中間頁面(middle page)以及較低頁面(lower page),此外,對於透過該字元線所存取的所有記憶體單元的任一個記憶體單元來說,最高頁面、較高頁面、中間頁面以及較低頁面的各自的位元可根據16(例如2
4= 16)個候選編程狀態之中的某個編程狀態來表示成一格雷碼(gray code)系統。
根據某些實施例,四層單元區塊的混合頁面應被編程兩次,舉例來說,先進行粗編程方法再進行精編程方法以達到最好的編程結果,在此情況中,根據資料接收與儲存控制方案而操作的記憶體控制器110可大幅地改善整體性能,其中將資料接收與儲存控制方案應用至記憶體裝置110可節省動態隨機存取記憶體130的相關成本。
第3圖為依據本發明一實施例之第2圖所示之在資料接收與儲存控制方案中資料接收階段與資料儲存階段的某些實施細節。舉例來說,上述至少一非單層單元區塊可代表上述至少一四層單元區塊,但是本發明不限於此。
因應複數個主機端寫入要求,記憶體控制器110可將資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}編程至上述至少一單層單元區塊之中的某個單層單元區塊310以作為對應於資料接收階段的第一儲存資料,並進行種子感知垃圾回收程序來將單層單元區塊310的第一儲存資料之中的有效資料收集至上述至少一四層單元區塊之中的某個四層單元區塊320以作為對應於資料儲存階段的第二儲存資料,舉例來說,於寫入程序期間,記憶體控制器110可利用動態隨機存取記憶體130來緩衝來自主機裝置50的寫入資料並根據緩衝至動態隨機存取記憶體130中的寫入資料來準備待編程至單層單元區塊310的資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …},其中已經各自地藉由隨機化器電路114R(例如其中的隨機化器)來利用種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}對資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}進行隨機化操作。
假設在該寫入程序中主機裝置50並未進行任一個覆寫(overwrite)操作,舉例來說,主機裝置50可能已經將一個或多個主機寫入命令傳送至記憶體裝置100(例如記憶體控制器110)來要求在複數個邏輯位址進行寫入資料的寫入操作,並且該一個或多個主機寫入命令之中沒有主機寫入命令要求在該複數個邏輯位址之中的任一個邏輯位址再次進行重新寫入操作,因此,所有的儲存於單層單元區塊310的資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}可視為有效資料,此外,記憶體控制器110可根據至少一預定規則(例如一個或多個預定規則)來準備種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …},以保證資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}的隨機特性,尤其是,使得資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}的隨機特性適合進行對於單層單元區塊310與四層單元區塊320之中的任一個區塊(例如每一個區塊)的可靠儲存,其中單層單元區塊310與四層單元區塊320之中的任一個區塊(例如每一個區塊)的相關編程狀態分配可以非常均勻,因此,記憶體控制器110可觸發非揮發性記憶體120的一系列的內部複製操作來直接地將資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}編程至四層單元區塊320中的一系列的混合頁面中,而無需改變種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}之中的任一個種子,為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
根據某些實施例,由於非揮發性記憶體120之內部緩衝器的儲存容量可能非常小,因此改變種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}之中的任一個種子可能需要藉由記憶體控制器110來自非揮發性記憶體120讀取相關部分資料(例如已經利用該任一個種子進行隨機化操作的部分資料)以供進一步的處理,以防止目前緩衝於非揮發性記憶體120之內部緩衝器中的任一個其它部分資料的任一個資料遺失。藉由預先根據至少一預定規則(例如一個或多個預定規則)來適當地準備種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …},記憶體控制器110可保證資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}的隨機特性,且可防止改變種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}之中的任一個種子,並因此可觸發非揮發性記憶體120之該系列的內部複製操作來直接地將資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}編程至四層單元區塊320中,而無需減少四層單元區塊320的儲存可靠性,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
根據某些實施例,可藉由另一裝置(例如一生產工具)來預先地根據上述至少一預定規則以準備種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …},並且可於記憶體裝置100的生產階段期間將種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}加載至非揮發性記憶體120內的一預定種子池中,以允許當需要時記憶體控制器110可自非揮發性記憶體120(例如其中的預定種子池)取得種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …},其中預定種子池可位於非揮發性記憶體元件122-1內的上述預定區域(例如系統區域)中,並且該生產工具可藉由主機裝置50的生產工具來實現,但是本發明不限於此,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第4圖為在第2圖所示之資料接收與儲存控制方案應用於第1圖所示之記憶體裝置100的情況下一實體區塊(例如上述至少一非單層單元區塊之中的某個非單層單元區塊)的編程狀態分配的一範例。舉例來說,上述至少一非單層單元區塊可代表上述至少一四層單元區塊,以及該實體區塊可代表上述至少一至少一非單層單元區塊之中的某個非單層單元區塊,諸如上述四層單元區塊之中的四層單元區塊320,但是本發明不限於此,此外,橫軸可代表電壓,諸如用來感測一記憶體單元中的位元資訊的一門檻電壓,並且縱軸可代表計數,諸如在該實體區塊(例如四層單元區塊320)中所有記憶體單元的記憶體單元計數。由於可藉由記憶體控制器110或其它裝置(例如生產工具)來預先根據上述至少一預定規則以適當地準備種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …},因此可保證資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}的隨機特性,並且第4圖所示之編程狀態P1、P2、P3、P4、P5、P6、P7、P8、P9、P10、P11、P12、P13、P14、P15以及P16可以非常均勻,為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
第5圖為依據本發明一實施例之第1圖所示之記憶體裝置100中的隨機化器電路114R的某些實施細節。隨機化器電路114R(例如其中的隨機化器)可包含有線性回授移位暫存器(linear feedback shift register, LSFR)電路510以及互斥或(exclusive OR, XOR)電路520(為簡潔起見,在第5圖中分別標記為“LSFR”以及“XOR”),其中線性回授移位暫存器電路510可包含有至少一線性回授移位暫存器(例如一個或多個線性回授移位暫存器),以及互斥或電路520可包含有至少一互斥或閘(例如一個或多個互斥或閘)。此外,線性回授移位暫存器電路510可根據一種子(例如種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}之中的任一個種子)來產生一虛擬噪訊碼(pseudo noise code),根據該虛擬噪訊碼,互斥或電路520可對輸入資料(例如還未進行隨機化操作的未隨機化資料;為簡潔起見,在第5圖中標記為“資料”)進行隨機化操作,以產生隨機化後資料(例如資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}的其一,諸如對應於該任一個種子的部分資料),為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
根據某些實施例,記憶體控制器110可自非揮發性記憶體120內的預定種子池取得種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}來準備資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}以增強整體性能,舉例來說,預定種子池中的所有種子的種子計數可大於或等於2000,但是本發明不限於此,又例如,預定種子池可包含有更多個種子,此外,由於在記憶體裝置100的生產階段之後,預定種子池中的所有種子的種子計數通常不會改變,因此當需要時記憶體控制器110可能需要進行隨機特性檢查操作來防止任一個可能錯誤,以保證整體性能。
表一
PPA | 種子 | SEED_RSV |
W0 | SD W0 | 0 |
X0 | SD X0 | 0 |
Y0 | SD Y0 | 0 |
Z0 | SD Z0 | 0 |
… | … | … |
表一繪示了在上述至少一單層單元區塊包含有具有一實體區塊位址(physical block address, LBA;例如實體區塊位址PBA0)之單一實體區塊的情況下的種子表120S(或暫時種子表116S)的一範例,為了更好的理解,上述至少一非單層單元區塊可代表上述至少一四層單元區塊,但是本發明不限於此,此外,當進行第3圖左半部所示之操作時,記憶體控制器110可自非揮發性記憶體120內的預定種子池取得種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}來準備資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …},並將資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}編程至單一實體區塊(例如單層單元區塊310)中,以及將種子{SD1, SD2, SD3, SD4, …}記錄於種子表120S(或暫時種子表116S)中以作為種子{SD
W0, SD
X0, SD
Y0, SD
Z0, …},舉例來說,舉例來說,記憶體控制器110可將單一實體區塊(例如單層單元區塊310)中實體頁面的相關實體頁面位址(physical page address, PPA){W0, X0, Y0, Z0, …}以及標籤(flag)SEED_RSV的預設值(例如邏輯值0)記錄於種子表120S(或暫時種子表116S)中,但是本發明不限於此。又例如,在實體頁面位址{W0, X0, Y0, Z0, …},諸如實體頁面位址{0, 1, 2, 3, …},對應於種子表120S(或暫時種子表116S)的表項目位置的情況中,則不需要將實體頁面位址{W0, X0, Y0, Z0, …},諸如實體頁面位址{0, 1, 2, 3, …},記錄於種子表120S(或暫時種子表116S)中。
針對第3圖右半部所示之操作,單層單元區塊310以及四層單元區塊320可分別視為種子感知垃圾回收程序的來源區塊以及目標區塊,由於主機裝置50所進行的任一個覆寫操作可能導致儲存於來源區塊(例如單層單元區塊310)之多個頁面之中一個或多個頁面中的資料變成無效資料,因此不需要將儲存於該一個或多個頁面的資料編程至目標區塊(例如四層單元區塊320)中,並因此資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), DATA5(SD5), DATA6(SD6), DATA7(SD7), DATA8(SD8), …}的一個或多個資料不會被編程至目標區塊中,其中由於種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}的順序被主機裝置50的覆寫行為所破壞,因此用來適當地準備以進行對於目標區塊(例如四層單元區塊320)的可靠儲存的種子{SD1, SD2, SD3, SD4, SD5, SD6, SD7, SD8, …}之中的一個或多個種子可能無法適當地工作以保證被編程至目標區塊中的資料的隨機特性。
於種子感知垃圾回收程序期間,記憶體控制器110可進行一個或多個隨機特性檢查操作以適當地擇取待編程至目標區塊(例如四層單元區塊320)之相同混合頁面中的目標資料並保留非擇取資料以供下一輪編程操作使用,以校正由於主機裝置50之覆寫行為所產生的種子順序問題,尤其是,以保證被編程至目標區塊中之資料的隨機特性。舉例來說,當將儲存於來源區塊的某個頁面中的資料決定為非擇取資料時,記憶體控制器110可將該頁面的標籤SEED_RSV設置為一第一預定值(例如邏輯值1)以供指示該頁面的資料被保留給下一輪的編程操作,接著,當擇取該頁面的資料以作為待編程至目標區塊的另一個混合頁面(例如一後續混合頁面,諸如下一個混合頁面)中的最新目標資料時,記憶體控制器110可將該頁面的資料以及來源區塊中一個或多個其它頁面的其它有效資料編程至目標區塊的該另一個混合頁面(例如該後續混合頁面,諸如該下一個混合頁面)中,為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
表二
PPA | 種子 | SEED_RSV |
W0 | SD W0 | 0 |
X0 | SD X0 | 0 |
Y0 | SD Y0 | 1 |
Z0 | SD Z0 | 0 |
… | … | … |
表二繪示了在上述至少一單層單元區塊包含有具有實體區塊位址(例如實體區塊位址PBA0)之單一實體區塊的情況下的種子表120S(或暫時種子表116S)的另一範例,假設在來源區塊(例如單層單元區塊310)中具有實體頁面位址{W0, X0, Y0, Z0, …}之頁面的資料{DATA
W0(SD
W0), DATA
X0(SD
X0), DATA
Y0(SD
Y0), DATA
Z0(SD
Z0) , …}(例如資料{DATA1(SD1), DATA2(SD2), DATA3(SD3), DATA4(SD4), …})之中,種子SD
Y0不會通過一隨機特性檢查操作,則在此情況下資料DATA
Y0(SD
Y0)(例如資料DATA3(SD3))不適合被使用來作為目標資料的任一部分。當儲存於來源區塊中具有實體頁面位址Y0之頁面中的資料DATA
Y0(SD
Y0)(例如資料DATA3(SD3))被決定為非擇取資料時,記憶體控制器110可將具有實體頁面位址Y0之頁面的標籤SEED_RSV設置為第一預定值(例如邏輯值1)以指示該頁面的資料DATA
Y0(SD
Y0)被保留給下一輪的編程操作,為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
表三
PBA | PPA | 種子 | SEED_RSV |
PBA0 | W0 | SD W0 | 0 |
PBA0 | X0 | SD X0 | 0 |
PBA0 | Y0 | SD Y0 | 0 |
PBA0 | Z0 | SD Z0 | 0 |
… | … | … | … |
PBA1 | W1 | SD W1 | 0 |
PBA1 | X1 | SD X1 | 0 |
PBA1 | Y1 | SD Y1 | 0 |
PBA1 | Z1 | SD Z1 | 0 |
… | … | … | … |
表三繪示了在上述至少一單層單元區塊包含有分別具有多個實體區塊位址(例如實體區塊位址PBA0與PBA1)的多個實體區塊的情況下種子表120S(或暫時種子表116S)的一範例,因應上述至少一單層單元區塊的區塊計數改變,記憶體控制器110可將實體區塊位址PBA0、PBA1等等記錄於欄位“
PBA”中,將該多個實體區塊中實體頁面的相關實體頁面位址{{W0, X0, Y0, Z0, …}, {W1, X1, Y1, Z1, …}, …}分別記錄於欄位“
PPA”中,將已經用來對該些頁面的資料{{DATA
W0(SD
W0), DATA
X0(SD
X0), DATA
Y0(SD
Y0), DATA
Z0(SD
Z0) , …}與{DATA
W1(SD
W1), DATA
X1(SD
X1), DATA
Y1(SD
Y1), DATA
Z1(SD
Z1) , …}, …}進行隨機化操作的種子{{SD
W0, SD
X0, SD
Y0, SD
Z0, …}與{SD
W1, SD
X1, SD
Y1, SD
Z1, …}, …}分別記錄於欄位“
種子”中,並且分別記錄標籤SEED_RSV的預設值(例如邏輯值0),為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
根據某些實施例,記憶體控制器110可將種子表120S(或暫時種子表116S)的表項目之中對應於SEED_RSV=1的一個或多個表項目記錄於一子表(例如種子表120S(或暫時種子表116S)中的另一部分)中以作為一種子保留池,舉例來說,記憶體控制器110仍可保留欄位“
SEED_RSV”以供近一步的參考,又例如,記憶體控制器110可在將該一個或多個表項目收集至該種子保留池之後刪除欄位“
SEED_RSV”,在某些範例中,則不需要將標籤SEED_RSV記錄於種子表120S(或暫時種子表116S)中,為簡潔起見,對於該些實施例的類似內容在此不再重複詳細描述。
第6圖為依據本發明一實施例之該方法的流程圖,其中該方法可應用於第1圖所示之記憶體裝置100,尤其是,記憶體控制器110及其元件。
在步驟S10中,記憶體裝置100(例如記憶體控制器110)可進行初始化操作,舉例來說,於記憶體裝置100的開機啟動期間進行初始化操作。
在步驟S20中,記憶體裝置100(例如記憶體控制器110)可進行平行處理,尤其是,以平行方式進行步驟S20A以及步驟S20B的操作。
在步驟S20A中,記憶體裝置100(例如記憶體控制器110)可透過記憶體控制器110的傳輸介面電路118來自主機裝置50接收複數個主機命令並根據該複數個主機命令來對非揮發性記憶體120進行資料存取,舉例來說,透過記憶體控制器110的傳輸介面電路118來自主機裝置50接收該複數個主機命令並根據該複數個主機命令來對非揮發性記憶體120進行該資料存取的步驟可包含有步驟S21A與S22A的操作。
在步驟S21A中,記憶體裝置100(例如記憶體控制器110)可自主機裝置50接收該複數個主機命令之中的至少一主機寫入命令(例如一個或多個主機寫入命令)。
在步驟S22A中,因應上述複數個主機命令之中的至少一主機寫入命令,記憶體裝置100(例如記憶體控制器110)可將資料編程至上述至少一單層單元區塊(例如單層單元區塊310)中以作為對應於資料接收階段的第一儲存資料。
在步驟S20B中,記憶體裝置100(例如記憶體控制器110)可進行種子感知垃圾回收程序來將上述至少一單層單元區塊(例如單層單元區塊310)的第一儲存資料之中的有效資料收集至上述至少一非單層單元區塊(例如四層單元區塊320)中以作為對應於資料儲存階段的第二儲存資料,舉例來說,種子感知垃圾回收程序可包含有步驟S21B、S22B以及S23B的操作。
為了更好的理解,對於上述至少一非單層單元區塊(例如四層單元區塊320)內的複數個記憶體單元來說,每一個記憶體單元的位元計數通常大於一,舉例來說,上述至少一非單層單元區塊可代表至少一多層單元區塊,並且每一個記憶體單元的位元計數可大於或等於二;又例如,上述至少一非單層單元區塊可代表至少一三層單元區塊,並且每一個記憶體單元的位元計數可等於三;又例如,上述至少一非單層單元區塊可代表上述至少一四層單元區塊,並且每一個記憶體單元的位元計數可等於四;在某些範例中,上述至少一非單層單元區塊可代表具有每一記憶體單元的儲存密度大於一四層單元區塊之每一記憶體單元的儲存密度的至少一區塊,並且每一個記憶體單元的位元計數可大於四。
在步驟S21B中,記憶體裝置100(例如記憶體控制器110)可對複數個種子進行至少一隨機特性檢查操作(例如一個或多個隨機特性檢查操作)來產生至少一隨機特性檢查結果(例如一個或多個隨機特性檢查結果),尤其是,可對種子SD
X與SD
Y進行一隨機特性檢查操作來產生一隨機特性檢查結果。
在步驟S22B中,根據上述至少一隨機特性檢查結果(例如種子SD
X與SD
Y的該隨機特性檢查結果),記憶體裝置100(例如記憶體控制器110)可選擇性地將至少一單層單元區塊(例如單層單元區塊310)內的頁面#X的資料DATA
X以及至少一單層單元區塊(例如單層單元區塊310)內的頁面#Y的資料DATA
Y決定為一組目標資料,以供利用至少一內部複製操作來編程至至少一非單層單元區塊(例如四層單元區塊320)的一相同混合頁面中(例如第2圖右半部所示之自單層單元區塊至四層單元區塊的箭頭,或自單層單元區塊至四層單元區塊的多個箭頭之中的一組箭頭),其中在資料接收階段中,在資料DATA
X被編程至頁面#X之前,藉由種子SD
X來對資料DATA
X進行了隨機化操作,以及在資料接收階段中,在資料DATA
Y被編程至頁面#Y之前,藉由種子SD
Y來對資料DATA
Y進行了隨機化操作。
在步驟S23B中,因應資料DATA
X與DATA
Y被決定為該組目標資料(為簡潔起見,在第6圖中標記為“DATA
X與DATA
Y為目標資料”),記憶體裝置100(例如記憶體控制器110)可自頁面#X讀取資料DATA
X並自頁面#Y讀取資料DATA
Y,以供利用至少一內部複製操作來編程至至少一非單層單元區塊(例如四層單元區塊320)的相同混合頁面中,其中有效資料可包含有資料DATA
X與DATA
Y。
如第6圖所示,記憶體裝置100(例如記憶體控制器110)可相對於來自主機裝置50的後續主機命令來進行平行處理,以利用線上方式來借助隨機特性控制進行記憶體裝置100的資料存取管理,為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
為了更好的理解,該方法可藉由第6圖所示之工作流程來闡明,但是本發明不限於此,根據某些實施例,一個或多個步驟可於第6圖所示之工作流程中增加、刪除或修改,舉例來說,種子感知垃圾回收程序可包含有:
(1)對一第一種子(例如種子SD
X)以及一第二種子(例如種子SD
Y)進行一第一隨機特性檢查操作來產生一第一隨機特性檢查結果;
(2)根據第一隨機特性檢查結果來選擇性地將至少一單層單元區塊(例如單層單元區塊310)內一第一頁面的第一資料(例如資料DATA
X)以及至少一單層單元區塊(例如單層單元區塊310)內一第二頁面的第二資料(例如資料DATA
Y)決定為第一組目標資料以供利用上述非揮發性記憶體120的至少一內部複製操作來編程至至少一非單層單元區塊(例如四層單元區塊320)的相同混合頁面中,其中在資料接收階段中,在第一資料(例如資料DATA
X)被編程至第一頁面中之前,藉由第一種子(例如種子SD
X)來對第一資料(例如資料DATA
X)進行了隨機化操作,以及在資料接收階段中,在第二資料(例如資料DATA
Y)被編程至第二頁面中之前,藉由第二種子(例如種子SD
Y)來對第二資料(例如資料DATA
Y)進行了隨機化操作;以及
(3)因應第一資料(例如資料DATA
X)以及第二資料(例如資料DATA
Y)被決定為第一組目標資料,自第一頁面讀取第一資料(例如資料DATA
X)並自第二頁面讀取第二資料(例如資料DATA
Y),以供利用非揮發性記憶體120的至少一內部複製操作來編程至至少一非單層單元區塊(例如四層單元區塊320)的相同混合頁面中,其中有效資料包含有第一資料以及第二資料;
但是本發明不限於此,又例如,種子感知垃圾回收程序可另包含有:
(1)對第一種子(例如種子SD
X)以及一第三種子(例如種子SD
Z)進行一第二隨機特性檢查操作來產生一第二隨機特性檢查結果;
(2)根據第二隨機特性檢查結果來選擇性地將至少一單層單元區塊(例如單層單元區塊310)內第一頁面的第一資料(例如資料DATA
X)以及至少一單層單元區塊(例如單層單元區塊310)內一第三頁面的第三資料(例如資料DATA
Z)決定為第二組目標資料以供利用上述非揮發性記憶體120的至少一內部複製操作來編程至至少一非單層單元區塊(例如四層單元區塊320)的相同混合頁面中,其中在資料接收階段中,在第三資料(例如資料DATA
Z)被編程至第三頁面中之前,藉由第三種子(例如種子SD
Z)來對第三資料(例如資料DATA
Z)進行了隨機化操作;以及
(3)倘若第一資料(例如資料DATA
X)以及第三資料(例如資料DATA
Z)被決定為第二組目標資料的話,則自第三頁面讀取第三資料(例如資料DATA
Z)以供利用非揮發性記憶體120的至少一內部複製操作來編程至至少一非單層單元區塊(例如四層單元區塊320)的相同混合頁面中;否則,在第一資料(例如資料DATA
X)以及第三資料(例如資料DATA
Z)沒有被決定為第二組目標資料的情況下,保留第三資料(例如資料DATA
Z)以供在資料儲存階段中的下一輪編程操作使用,其中有效資料另包含有第三資料;
其中,針對保留第三資料(例如資料DATA
Z)以供在資料儲存階段中的下一輪編程操作使用的步驟來說,保留了第三資料以供利用非揮發性記憶體120的至少一其它內部複製操作來編程至至少一非單層單元區塊的另一個混合頁面中,此外,第一隨機特性檢查結果可指示相對於第一種子(例如種子SD
X)的第二種子(例如種子SD
Y)的隨機特性,以供指示相對於第一資料(例如資料DATA
X)的第二資料(例如資料DATA
Y)的隨機特性,以及第二隨機特性檢查結果可指示相對於第一種子(例如種子SD
X)的第三種子(例如種子SD
Z)的隨機特性,以供指示相對於第一資料(例如資料DATA
X)的第三資料(例如資料DATA
Z)的隨機特性。
根據某些實施例,種子感知垃圾回收程序可另包含有:
(1)對第一種子(例如種子SD
X)以及另一個種子(例如種子SD
W)進行一初始檢查操作來產生一初始檢查結果,其中進行初始檢查操作的一第一時間點係早於進行第一隨機特性檢查操作的一第二時間點;以及
(2)根據初始檢查操作來選擇性地將至少一單層單元區塊(例如單層單元區塊310)內第一頁面的第一資料(例如資料DATA
X)以及至少一單層單元區塊(例如單層單元區塊310)內另一個頁面的其它資料(例如資料DATA
W)決定為另一組目標資料以供利用上述非揮發性記憶體120的至少一內部複製操作來編程至至少一非單層單元區塊的相同混合頁面中,其中在資料接收階段中,在其它資料(例如資料DATA
W)被編程至另一個頁面中之前,藉由另一個種子(例如種子SD
W)來對其它資料(例如資料DATA
W)進行了隨機化操作;
其中初始檢查操作可包含有一隨機特性檢查操作以及一等值(equal-value)檢查操作(例如檢查種子SD
X是否等於種子SD
W的操作)的其一或一組合。
根據某些實施例,在種子感知垃圾回收程序中,記憶體裝置100(例如記憶體控制器110)可根據複數個預定種子檢查規則來對相關種子(例如被檢查的種子)進行複數個隨機特性檢查操作(例如上述隨機特性檢查操作,諸如用來實現初始檢查操作、第一隨機特性檢查操作以及第二隨機特性檢查操作的隨機特性檢查操作),舉例來說,該複數個預定種子檢查規則可包含有:
(1)相關種子之中的任兩個種子彼此不相等;
(2)相關種子之中的任兩個種子的逐位元(bit-wise)互斥或操作結果不等於相關種子之中的其它種子;以及
(3)相關種子之中的任兩個種子的逐位元互斥或操作結果的逐位元逆結果不等於相關種子之中的其它種子;
但是本發明不限於此,又例如,複數個預定種子檢查規則可另包含有一個或多個額外種子檢查規則,為了更好的理解,記憶體裝置100(例如記憶體控制器110)可進行以下操作:
(1)記憶體控制器110可先取得兩個新種子(例如種子SD
X與SD
Y),其中該兩個新種子應彼此不同;
(2)記憶體控制器110可取得另一個新種子(例如種子SD
Z),並對三個種子SD
X、SD
Y與SD
Z之中的任兩個種子進行逐位元互斥或操作來產生一逐位元互斥或操作結果,並將該逐位元互斥或操作結果與三個種子SD
X、SD
Y與SD
Z之中的其它種子進行比較以產生一第一比較結果,以及將該逐位元互斥或操作操作結果的一逐位元逆結果與三個種子SD
X、SD
Y與SD
Z之中的其它種子進行比較以產生一第二比較結果,其中倘若第一比較結果指示該逐位元互斥或操作結果等於其它種子或第二比較結果指示該逐位元互斥或操作結果的該逐位元逆結果等於其它種子的話,則記憶體控制器110保留對應於種子SD
Z的資料DATA
Z以供下一輪的編程操作使用;否則,記憶體控制器110將再尋找另一個種子;以及
(3)當嘗試再尋找另一個種子時,記憶體控制器110可取得另一個新種子(例如種子SD
W),對四個種子SD
X、SD
Y、SD
Z以及SD
W之中的任兩個種子進行一逐位元互斥或操作來產生一逐位元互斥或操作結果,將該逐位元互斥或操作結果與四個種子SD
X、SD
Y、SD
Z以及SD
W之中的其它種子進行比較以產生一第三比較結果,並且將該逐位元互斥或操作結果的一逐位元逆結果與四個種子SD
X、SD
Y、SD
Z以及SD
W之中的其它種子進行比較以產生一第四比較結果,其中倘若第三比較結果指示該逐位元互斥或操作結果等於其它種子或第四比較結果指示該逐位元互斥或操作結果的該逐位元逆結果等於其它種子的話,則記憶體控制器110可保留對應於種子SD
W的資料DATA
W以供下一輪編程操作使用;否則,記憶體控制器110可觸發非揮發性記憶體120的內部複製操作來將自來源區塊(例如單層單元區塊310)取得的資料{DATA
X, DATA
Y, DATA
Z, DATA
W}編程至目標區塊(例如四層單元區塊320)的相同混合頁面中,為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
第7圖為依據本發明一實施例之該方法的工作流程,其中第7圖所示之工作流程的某些操作可作為第6圖所示之部分工作流程中之操作的範例。
在步驟S31中,記憶體裝置100(例如記憶體控制器110)可自種子表120S(或暫時種子表116S)取得兩個新種子(例如種子SD
X與SD
Y)。
在步驟S32中,記憶體裝置100(例如記憶體控制器110)可檢查種子SD
X與SD
Y是否彼此不相同(為簡潔起見,在第7圖中標記為“通過?”),如果是,進入步驟S33;如果否,則進入步驟S31。
在步驟S33中,記憶體裝置100(例如記憶體控制器110)可自種子表120S(或暫時種子表116S)取得另一個新種子(例如種子SD
Z)。
在步驟S34中,記憶體裝置100(例如記憶體控制器110)可檢查三個種子SD
X、SD
Y與SD
Z之中任兩個種子的逐位元互斥或操作結果是否不等於三個種子SD
X、SD
Y與SD
Z之中的其它種子並檢查三個種子SD
X、SD
Y與SD
Z之中任兩個種子的逐位元互斥或操作結果的逐位元逆結果是否不等於三個種子SD
X、SD
Y與SD
Z之中的其它種子(為簡潔起見,在第7圖中標記為“通過?”),如果是,進入步驟S35;如果否,則進入步驟S38。
在步驟S35中,記憶體裝置100(例如記憶體控制器110)可自種子表120S(或暫時種子表116S)取得再另一個新種子(例如種子SD
W)。
在步驟S36中,記憶體裝置100(例如記憶體控制器110)可檢查四個種子SD
X、SD
Y、SD
Z與SD
W之中任兩個種子的逐位元互斥或操作結果是否不等於四個種子SD
X、SD
Y、SD
Z與SD
W之中的其它種子並檢查四個種子SD
X、SD
Y、SD
Z與SD
W之中任兩個種子的逐位元互斥或操作結果的逐位元逆結果是否不等於四個種子SD
X、SD
Y、SD
Z與SD
W之中的其它種子(為簡潔起見,在第7圖中標記為“通過?”),如果是,進入步驟S37;如果否,則進入步驟S39。
在步驟S37中,記憶體裝置100(例如記憶體控制器110)可觸發非揮發性記憶體120的內部複製操作來將自來源區塊(例如單層單元區塊,諸如單層單元區塊310)取得的資料{DATA
X, DATA
Y, DATA
Z, DATA
W}編程至來源區塊(例如四層單元區塊,諸如四層單元區塊320)的相同混合頁面中。
在步驟S38中,記憶體裝置100(例如記憶體控制器110)可保留對應於種子SD
Z的資料DATA
Z以供下一輪編程操作使用。
在步驟S39中,記憶體裝置100(例如記憶體控制器110)可保留對應於種子SD
W的資料DATA
W以供下一輪編程操作使用。
如第7圖所示,記憶體裝置100(例如記憶體控制器110)可進行針對來自主機裝置50之後續主機命令來進行至少一部分工作流程的操作,以藉由線上方式來借助隨機特性控制進行記憶體裝置100的資料存取管理,為簡潔起見,對於該實施例的類似內容在此不再重複詳細描述。
為了更好的理解,該方法可藉由第7圖所示之工作流程來闡明,但是本發明不限於此,根據某些實施例,一個或多個步驟可於第7圖所示之工作流程中增加、刪除或修改。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
50:主機裝置
52:處理器
54:電源供應電路
58,118:傳輸介面電路
100:記憶體裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
114R:隨機化器電路
116:隨機存取記憶體
116S:暫時種子表
116T:暫時邏輯至實體位址映射表
120:非揮發性記憶體
120S:種子表
120T:全域邏輯至實體位址映射表
122-1~122-N
E:非揮發性記憶體元件
130:動態隨機存取記憶體
310:單層單元區塊
320:四層單元區塊
P1~P16:編程狀態
510:線性回授移位暫存器電路
520:互斥或電路
S10、S20、S20A、S20B、S21A、S22A、S21B、S22B、S23B、S31~S39:步驟
第1圖為依據本發明一實施例之電子裝置的示意圖。
第2圖的右半部為依據本發明一實施例之借助隨機特性控制來進行記憶體裝置的資料存取管理之方法的資料接收與儲存控制方案,其中為了更好的理解,第2圖的左半部繪示了對應於資料接收與儲存控制方案的資料接收與儲存控制功能暫時地失效的案例。
第3圖為依據本發明一實施例之第2圖所示之在資料接收與儲存控制方案中資料接收階段與資料儲存階段的某些實施細節。
第4圖為在第2圖所示之資料接收與儲存控制方案應用於第1圖所示之記憶體裝置的情況下一實體區塊的編程狀態分配的一範例。
第5圖為依據本發明一實施例之第1圖所示之記憶體裝置中的一隨機化器電路的某些實施細節。
第6圖為依據本發明一實施例之該方法的流程圖。
第7圖為依據本發明一實施例之該方法的工作流程,其中第7圖所示之工作流程的某些操作可作為第6圖所示之部分工作流程中之操作的範例。
S10、S20、S20A、S20B、S21A、S22A、S21B、S22B、S23B:步驟
Claims (13)
- 一種借助隨機特性控制來進行一記憶體裝置的資料存取管理的方法,該方法係應用於該記憶體裝置的一記憶體控制器,該記憶體裝置包含有該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該方法包含有: 自一主機裝置接收複數個主機命令並根據該複數個主機命令來對該非揮發性記憶體進行資料存取,其中根據該複數個主機命令來對該非揮發性記憶體進行該資料存取的步驟包含有: 因應該複數個主機命令之中的至少一主機寫入命令,將資料編程至至少一單層單元區塊中以作為對應於一資料接收階段的第一儲存資料;以及 進行一種子感知垃圾回收程序來將該至少一單層單元區塊的該第一儲存資料之中的有效資料收集至至少一非單層單元區塊中以作為對應於一資料儲存階段的第二儲存資料,其中對於該至少一非單層單元區塊內的多個記憶體單元來說,每一個記憶體單元的一位元計數係大於一,以及該種子感知垃圾回收程序包含有: 對一第一種子與一第二種子進行一第一隨機特性檢查操作來產生一第一隨機特性檢查結果;以及 根據該第一隨機特性檢查結果來選擇性地將該至少一單層單元區塊內的一第一頁面的第一資料以及該至少一單層單元區塊內的一第二頁面的第二資料決定為第一組目標資料,以供利用該非揮發性記憶體的至少一內部複製操作來編程至該至少一非單層單元區塊中,其中在該資料接收階段中,在該第一資料被編程至該第一頁面之前,藉由該第一種子來對該第一資料進行隨機化操作,以及在該資料接收階段中,在該第二資料被編程至該第二頁面之前,藉由該第二種子來對該第二資料進行隨機化操作。
- 如申請專利範圍第1項所述之方法,其中該有效資料包含有該第一資料與該第二資料;以及該種子感知垃圾回收程序另包含有: 因應該第一資料與該第二資料被決定為該第一組目標資料,自該第一頁面讀取該第一資料並自該第二頁面讀取該第二資料,以供利用該非揮發性記憶體的該至少一內部複製操作來編程至該至少一非單層單元區塊中。
- 如申請專利範圍第2項所述之方法,其中對於該至少一非單層單元區塊內的該多個記憶體單元來說,每一個記憶體單元的該位元計數係大於二;以及該種子感知垃圾回收程序另包含有: 對該第一種子以及一第三種子進行一第二隨機特性檢查操作來產生一第二隨機特性檢查結果; 根據該第二隨機特性檢查結果來選擇性地將該至少一單層單元區塊內該第一頁面的該第一資料以及該至少一單層單元區塊內一第三頁面的第三資料決定為第二組目標資料,以供利用該非揮發性記憶體的該至少一內部複製操作來編程至該至少一非單層單元區塊中,其中在該資料接收階段中,在該第三資料被編程至該第三頁面之前,藉由該第三種子來對該第三資料進行隨機化操作;以及 因應該第一資料與該第三資料被決定為該第二組目標資料,自該第三頁面讀取該第三資料以供利用該非揮發性記憶體的該至少一內部複製操作來編程至該至少一非單層單元區塊中,其中該有效資料另包含有該第三資料。
- 如申請專利範圍第2項所述之方法,其中對於該至少一非單層單元區塊內的該多個記憶體單元來說,每一個記憶體單元的該位元計數係大於二;以及該種子感知垃圾回收程序另包含有: 對該第一種子以及一第三種子進行一第二隨機特性檢查操作來產生一第二隨機特性檢查結果; 根據該第二隨機特性檢查結果來選擇性地將該至少一單層單元區塊內該第一頁面的該第一資料以及該至少一單層單元區塊內一第三頁面的第三資料決定為第二組目標資料,以供利用該非揮發性記憶體的該至少一內部複製操作來編程至該至少一非單層單元區塊中,其中在該資料接收階段中,在該第三資料被編程至該第三頁面之前,藉由該第三種子來對該第三資料進行隨機化操作;以及 因應該第一資料與該第三資料未被決定為該第二組目標資料,保留該第三資料以供在該資料儲存階段中下一輪的編程使用,其中該有效資料另包含有該第三資料。
- 如申請專利範圍第4項所述之方法,其中針對保留該第三資料以供在該資料儲存階段中該下一輪的編程使用,該第三資料被保留以供利用該非揮發性記憶體的至少一其它內部複製操作來編程至該至少一非單層單元區塊中。
- 如申請專利範圍第1項所述之方法,其中對於該至少一非單層單元區塊內的該多個記憶體單元來說,每一個記憶體單元的該位元計數係大於二;以及該種子感知垃圾回收程序另包含有: 對該第一種子以及一第三種子進行一第二隨機特性檢查操作來產生一第二隨機特性檢查結果;以及 根據該第二隨機特性檢查結果來選擇性地將該至少一單層單元區塊內該第一頁面的該第一資料以及該至少一單層單元區塊內一第三頁面的第三資料決定為第二組目標資料,以供利用該非揮發性記憶體的該至少一內部複製操作來編程至該至少一非單層單元區塊中,其中在該資料接收階段中,在該第三資料被編程至該第三頁面之前,藉由該第三種子來對該第三資料進行隨機化操作。
- 如申請專利範圍第6項所述之方法,其中對於該至少一非單層單元區塊內的該多個記憶體單元來說,每一個記憶體單元的該位元計數係大於三;以及該種子感知垃圾回收程序另包含有: 對該第一種子與另一種子進行一初始檢查操作來產生一初始檢查結果,其中進行該初始檢查操作的一時間點早於進行該第一隨機特性檢查操作的一時間點;以及 根據該初始檢查操作來選擇性地將該至少一單層單元區塊內該第一頁面的該第一資料以及該至少一單層單元區塊內另一頁面的其它資料決定為另一組目標資料,以供利用該非揮發性記憶體的該至少一內部複製操作來編程至該至少一非單層單元區塊中,其中在該資料接收階段中,在該其它資料被編程至該另一頁面之前,藉由該另一種子來對該其它資料進行隨機化操作。
- 如申請專利範圍第7項所述之方法,其中該初始檢查操作包含有一隨機特性檢查操作與一等值檢查操作的其一或一組合。
- 如申請專利範圍第6項所述之方法,其中該第一隨機特性檢查結果指示相對於該第一種子來說的該第二種子的一隨機特性,以供指示相對於該第一資料來說的該第二資料的一隨機特性;以及該第二隨機特性檢查結果指示相對於該第一種子來說的該第三種子的一隨機特性,以供指示相對於該第一資料來說的該第三資料的一隨機特性。
- 如申請專利範圍第1項所述之方法,其中該第一隨機特性檢查結果指示相對於該第一種子來說的該第二種子的一隨機特性,以供指示相對於該第一資料來說的該第二資料的一隨機特性。
- 一種記憶體裝置,包含有: 一非揮發性記憶體,用以儲存資訊,其中該非揮發性記憶體包含有至少一非揮發性記憶體元件;以及 一記憶體控制器,耦接於該非揮發性記憶體,並用以控制該記憶體裝置的操作,其中該記憶體控制器包含有: 一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該記憶體控制器,以允許該主機裝置透過該記憶體控制器存取該非揮發性記憶體; 其中: 該記憶體控制器自該主機裝置接收該複數個主機命令,並根據該複數個主機命令來對該非揮發性記憶體進行資料存取,其中根據該複數個主機命令來對該非揮發性記憶體進行該資料存取的步驟包含有: 因應該複數個主機命令之中的至少一主機寫入命令,將資料編程至至少一單層單元區塊中以作為對應於一資料接收階段的第一儲存資料;以及 該記憶體控制器進行一種子感知垃圾回收程序來將該至少一單層單元區塊的該第一儲存資料之中的有效資料收集至至少一非單層單元區塊中以作為對應於一資料儲存階段的第二儲存資料,其中對於該至少一非單層單元區塊內的多個記憶體單元來說,每一個記憶體單元的一位元計數係大於一,以及該種子感知垃圾回收程序包含有: 對一第一種子與一第二種子進行一第一隨機特性檢查操作來產生一第一隨機特性檢查結果;以及 根據該第一隨機特性檢查結果來選擇性地將該至少一單層單元區塊內的一第一頁面的第一資料以及該至少一單層單元區塊內的一第二頁面的第二資料決定為第一組目標資料,以供利用該非揮發性記憶體的至少一內部複製操作來編程至該至少一非單層單元區塊中,其中在該資料接收階段中,在該第一資料被編程至該第一頁面之前,藉由該第一種子來對該第一資料進行隨機化操作,以及在該資料接收階段中,在該第二資料被編程至該第二頁面之前,藉由該第二種子來對該第二資料進行隨機化操作。
- 一種電子裝置,其包含有申請專利範圍第11項所述之記憶體裝置,並且另包含有: 該主機裝置,耦接於該記憶體裝置,其中該主機裝置包含有: 至少一處理器,用以控制該主機裝置的操作;以及 一電源供應電路,耦接於該至少一處理器,並且用以提供電源給該至少一處理器以及該記憶體裝置; 其中該記憶體裝置提供儲存空間給該主機裝置。
- 一種記憶體裝置的記憶體控制器,該記憶體裝置包含有該記憶體控制器以及一非揮發性記憶體,該非揮發性記憶體包含有至少一非揮發性記憶體元件,該記憶體控制器包含有: 一處理電路,用以根據來自一主機裝置的複數個主機命令來控制該記憶體控制器,以允許該主機裝置透過該記憶體控制器存取該非揮發性記憶體; 其中: 該記憶體控制器自該主機裝置接收該複數個主機命令,並根據該複數個主機命令來對該非揮發性記憶體進行資料存取,其中根據該複數個主機命令來對該非揮發性記憶體進行該資料存取的步驟包含有: 因應該複數個主機命令之中的至少一主機寫入命令,將資料編程至至少一單層單元區塊中以作為對應於一資料接收階段的第一儲存資料;以及 該記憶體控制器進行一種子感知垃圾回收程序來將該至少一單層單元區塊的該第一儲存資料之中的有效資料收集至至少一非單層單元區塊中以作為對應於一資料儲存階段的第二儲存資料,其中對於該至少一非單層單元區塊內的多個記憶體單元來說,每一個記憶體單元的一位元計數係大於一,以及該種子感知垃圾回收程序包含有: 對一第一種子與一第二種子進行一第一隨機特性檢查操作來產生一第一隨機特性檢查結果;以及 根據該第一隨機特性檢查結果來選擇性地將該至少一單層單元區塊內的一第一頁面的第一資料以及該至少一單層單元區塊內的一第二頁面的第二資料決定為第一組目標資料,以供利用該非揮發性記憶體的至少一內部複製操作來編程至該至少一非單層單元區塊中,其中在該資料接收階段中,在該第一資料被編程至該第一頁面之前,藉由該第一種子來對該第一資料進行隨機化操作,以及在該資料接收階段中,在該第二資料被編程至該第二頁面之前,藉由該第二種子來對該第二資料進行隨機化操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/863,383 | 2022-07-12 | ||
US17/863,383 US11809713B1 (en) | 2022-07-12 | 2022-07-12 | Method and apparatus for performing data access management of memory device with aid of randomness-property control |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202403548A true TW202403548A (zh) | 2024-01-16 |
Family
ID=88649828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112124262A TW202403548A (zh) | 2022-07-12 | 2023-06-29 | 借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11809713B1 (zh) |
CN (1) | CN117389463A (zh) |
TW (1) | TW202403548A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140310534A1 (en) * | 2013-04-15 | 2014-10-16 | Apple Inc. | Data scrambling in memory devices using combined sequences |
CA2912394A1 (en) * | 2013-05-14 | 2014-11-20 | Actifio, Inc. | Efficient data replication and garbage collection predictions |
TWI653538B (zh) * | 2017-11-13 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
-
2022
- 2022-07-12 US US17/863,383 patent/US11809713B1/en active Active
-
2023
- 2023-06-29 TW TW112124262A patent/TW202403548A/zh unknown
- 2023-07-06 CN CN202310823974.9A patent/CN117389463A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11809713B1 (en) | 2023-11-07 |
CN117389463A (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9645895B2 (en) | Data storage device and flash memory control method | |
US8819385B2 (en) | Device and method for managing a flash memory | |
US8438361B2 (en) | Logical block storage in a storage device | |
US8281061B2 (en) | Data conditioning to improve flash memory reliability | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
US8041883B2 (en) | Restoring storage devices based on flash memories and related circuit, system, and method | |
US20090198875A1 (en) | Data writing method for flash memory, and controller and system using the same | |
CN110083546B (zh) | 记忆装置中进行写入管理的方法、记忆装置和其控制器 | |
TWI646535B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
US8489942B1 (en) | Memory management method, and memory controller and memory storage device using the same | |
TWI828085B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US20200089566A1 (en) | Apparatus for diagnosing memory system and operating method thereof | |
TWI807674B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
TW201329999A (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US20220269440A1 (en) | Control method for flash memory controller and associated flash memory controller and storage device | |
US20200226064A1 (en) | Method of reverse mapping and data consolidation to enhance random performance | |
TW202024924A (zh) | 資料儲存裝置與資料處理方法 | |
TW202403548A (zh) | 借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器 | |
US11748011B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
US11288007B2 (en) | Virtual physical erase of a memory of a data storage device | |
KR102365581B1 (ko) | 선호된 사용자 데이터에 대한 개선된 기입 성능을 갖는 데이터 저장소 |