TW202034178A - 資料儲存裝置與資料處理方法 - Google Patents
資料儲存裝置與資料處理方法 Download PDFInfo
- Publication number
- TW202034178A TW202034178A TW108108462A TW108108462A TW202034178A TW 202034178 A TW202034178 A TW 202034178A TW 108108462 A TW108108462 A TW 108108462A TW 108108462 A TW108108462 A TW 108108462A TW 202034178 A TW202034178 A TW 202034178A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- memory controller
- memory block
- block
- Prior art date
Links
Images
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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
-
- 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/5641—Multilevel memory having cells with different number of storage levels
Abstract
一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括複數記憶體區塊。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器配置一第一既定記憶體區塊與一第二既定記憶體區塊作為緩存器用以自一主機裝置接收資料。第一既定記憶體區塊為一單層單元記憶體區塊,第二既定記憶體區塊為一多層單元記憶體區塊。記憶體控制器動態地根據記憶體裝置所儲存之有效資料之資料量決定採用一第一機制、一第二機制或一第三機制於一既定期間內接收資料。當記憶體控制器決定採用第一機制時,記憶體控制器使用第一既定記憶體區塊接收資料,當記憶體控制器決定採用第二機制時,記憶體控制器使用第一既定記憶體區塊與第二既定記憶體區塊接收資料,以及當記憶體控制器決定採用第三機制時,記憶體控制器使用第二既定記憶體區塊接收資料。
Description
本發明係有關於適用於一資料儲存裝置之一種資料處理方法,可有效加速記憶體裝置的寫入操作。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
為了提高資料儲存裝置的存取效能,本發明提出一種新的資料處理方法,可有效地處提升記憶體裝置之存取效能,特別是可有效加速記憶體裝置的寫入操作。
本發明揭露一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括複數記憶體區塊。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器配置一第一既定記憶體區塊與一第二既定記憶體區塊作為緩存器用以自一主機裝置接收資料,其中第一既定記憶體區塊為一單層單元記憶體區塊,第二既定記憶體區塊為一多層單元記憶體區塊。記憶體控制器動態地根據記憶體裝置所儲存之有效資料之資料量決定採用一第一機制、一第二機制或一第三機制於一既定期間內接收資料。當記憶體控制器決定採用第一機制時,記憶體控制器使用第一既定記憶體區塊接收資料,當記憶體控制器決定採用第二機制時,記憶體控制器使用第一既定記憶體區塊與第二既定記憶體區塊接收資料,以及當記憶體控制器決定採用第三機制時,記憶體控制器使用第二既定記憶體區塊接收資料。
本發明揭露一種資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置以及一記憶體控制器,記憶體裝置包括複數記憶體區塊,記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,該方法包括:由記憶體控制器選擇複數記憶體區塊,並且將記憶體區塊配置為至少一個單層單元記憶體區塊以及至少一個多層單元記憶體區塊,用以作為緩存器自一主機裝置接收資料;以及由記憶體控制器動態地根據記憶體裝置所儲存之有效資料之資料量決定於一既定期間內使用單層單元記憶體區塊與多層單元記憶體區塊之何者接收資料。當記憶體控制器決定採用一第一機制時,於既定期間內僅單層單元記憶體區塊會被用於接收資料,當記憶體控制器決定採用一第二機制時,於既定期間內單層單元記憶體區塊與多層單元記憶體區塊皆被會用於接收資料,以及當記憶體控制器決定採用一第三機制時,於既定期間內僅多層單元記憶體區塊被用於接收資料。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110,且記憶體控制器110用來存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個記憶體區塊(Block),而該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),即,物理資料頁,其中該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主機裝置(Host Device)130溝通。在一實施例中,記憶體控制器110透過介面邏輯118並使用一標準通訊協定與主機裝置130溝通。舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(Universal Serial Bus ,縮寫為USB)標準、安全數位(Secure Digital ,縮寫為SD)介面標準、超高速一代 (Ultra High Speed-I,縮寫為UHS-I) 介面標準、超高速二代 (Ultra High Speed-II,縮寫為UHS-II) 介面標準、複合式快閃記憶體(Compact flash,縮寫為CF)介面標準、多媒體卡(Multimedia Card,縮寫為MMC)介面標準、嵌入式多媒體卡(Embedded Multimedia Card,縮寫為eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,縮寫為UFS)介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準。
在一實施例中,緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中可單層式儲存(Single-Level Cell,SLC)記憶體區塊、多層式儲存(Multiple-Level Cell,MLC)記憶體區塊以及/或是三層式儲存(Triple-Level Cell,TLC)記憶體區塊。SLC記憶體區塊的每個記憶體單元中儲存一個位元資料,MLC記憶體區塊的每個記憶體單元中儲存兩個位元資料,TLC記憶體區塊的每個記憶體單元中儲存三個位元資料。
一般而言,記憶體裝置120可大體被區分為三個區域,包含系統區域、資料區域以及備用區域。記憶體控制器110可自備用區域選擇一或多個既定記憶體區塊作為快取記憶體,或稱緩存器(buffer),用以接收並暫存資料。待緩存器被寫滿時,記憶體控制器110再將作為緩存器之既定記憶體區塊更新成資料區域的資料區塊。舉例而言,若用以接收並暫存資料的緩存器為MLC或TLC記憶體區塊,待緩存器被寫滿時,可直接被更新為資料區域的資料區塊。若用以接收並暫存資料的緩存器為SLC記憶體區塊,待一定數量之緩存器被寫滿時,可透過垃圾回收程序,將多個緩存器記憶體區塊所儲存之資料搬移至MLC或TLC記憶體區塊(目標記憶體區塊),並藉此操作將目標記憶體區塊更新為資料區域的資料區塊。
為了有效地加速記憶體裝置的寫入操作,本發明提出一種資料處理方法。第2圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。根據本發明之一實施例,記憶體控制器110可選擇多個既定記憶體區塊作為緩存器,並且將這些記憶體區塊配置為至少一個單層單元(SLC)記憶體區塊以及至少一個多層單元(MLC)記憶體區塊,用以自主機裝置130接收資料(步驟S202)。由於SLC記憶體區塊與MLC記憶體區塊之寫入效能通常不同,例如,將資料寫入SLC記憶體區塊之寫入速度通常會比將資料寫入MLC記憶體區塊之寫入速度來的快,因此,於本發明之實施例中,記憶體控制器110可動態地根據記憶體裝置120所儲存之有效資料之資料量決定於一既定期間內使用SLC記憶體區塊與MLC記憶體區塊之何者接收資料(步驟S202),用以加速記憶體裝置的寫入操作。
於本發明之實施例中,記憶體控制器110可根據記憶體裝置所儲存之有效資料之資料量決定採用一第一機制、一第二機制或一第三機制於既定期間內接收資料。當記憶體控制器110決定採用第一機制時,記憶體控制器110僅會使用被配置為SLC記憶體區塊的既定記憶體區塊接收資料。當記憶體控制器110決定採用第二機制時,被配置為SLC記憶體區塊與被配置為MLC記憶體區塊的既定記憶體區塊皆會被記憶體控制器110用於接收資料。當記憶體控制器110決定採用第三機制時,記憶體控制器110僅會使用被配置為MLC記憶體區塊的既定記憶體區塊接收資料。
於本發明之實施例中,當記憶體控制器110選擇既定記憶體區塊作為接收資料使用之緩存器時,記憶體控制器110可選擇以SLC模式或MLC模式抹除所選擇之既定記憶體區塊內的資料。當記憶體控制器110根據SLC模式抹除既定記憶體區塊時,該既定記憶體區塊便會被配置為SLC記憶體區塊。同樣地,當記憶體控制器110根據MLC模式抹除既定記憶體區塊時,該既定記憶體區塊便會被配置為MLC記憶體區塊。
根據本發明之一實施例,記憶體控制器110可於緩衝記憶體116或記憶體裝置120內建立一有效資料頁計數表格VP_Count_Table,用以記錄記憶體裝置120之各記憶體區塊所對應之一有效資料頁計數值VP_Count,其中用於紀錄的資料頁的單位可以是一個邏輯資料頁。因此,VP_Count的最大值為一記憶體區塊所包含的邏輯資料頁數量,最小值為0。舉例而言,記憶體控制器110可於緩衝記憶體116內建立有效資料頁計數表格VP_Count_Table,用以記錄記憶體裝置120之資料區域內的各資料區塊之有效資料頁計數值VP_Count,並且定期地將紀錄最新資訊的有效資料頁計數表格VP_Count_Table更新至記憶體裝置120內。
根據本發明之一實施例,記憶體控制器110可於每次寫入操作後更新有效資料頁計數表格VP_Count_Table的內容,亦可於執行完一或多次寫入操作後根據該一或多次寫入操作所執行的內容更新有效資料頁計數表格VP_Count_Table的內容。
第3圖係顯示根據本發明之一實施例所述之一有效資料頁計數表格範例圖。假設記憶體裝置120之記憶體容量為8G位元組(byte),一個記憶體區塊大小為1G 位元組,一個邏輯資料頁的大小可被設定為4K位元組,則一記憶體區塊(大小相當於1024 * 256 * 4KB)所包含的邏輯資料頁數量為262144。因此,有效資料頁計數值VP_Count的最大值為262144,最小值為0。於第3圖所示之範例中,有效資料頁計數表格VP_Count_Table可包含8個欄位,用以紀錄記憶體裝置120之8個記憶體區塊之有效資料頁計數值VP_Count。值得注意的是,第3圖僅為為了簡化說明而設計的範例,本發明並不限於第3圖所設定之記憶體容量、記憶體區塊大小以及邏輯資料頁的大小。
根據本發明之一實施例,記憶體控制器110可根據有效資料頁計數表格VP_Count_Table所記錄之內容判斷記憶體裝置120所儲存之有效資料之資料量。值得注意的是,於本發明之實施例中,記憶體控制器110可根據有效資料頁計數表格VP_Count_Table所記錄之內容進一步得知諸多與有效資料之資料量相關之資訊,例如,儲存少量有效資料之記憶體區塊之數量、空閒之記憶體區塊之數量等。根據本發明之一實施例,儲存少量有效資料之記憶體區塊可以是有效資料頁計數值VP_Count小於一臨界值之記憶體區塊,其中臨界值可被設定為,例如但不限於,有效資料頁計數值VP_Count的最大值為 (例如,262144)的一半。此外,空閒之記憶體區塊可以是有效資料頁計數值VP_Count等於0之記憶體區塊,因此,於本發明之實施例中,記憶體控制器110可根據有效資料頁計數表格VP_Count_Table所記錄之內容判斷決定採用哪個機制自主機裝置接收資料,即,決定使用SLC記憶體區塊與MLC記憶體區塊之何者接收資料。
根據本發明之一實施例,當記憶體控制器110判斷記憶體裝置120所儲存之有效資料之資料量不大於一第一數值時,記憶體控制器110可決定於一既定期間內採用第一機制接收資料,其中第一數值可以被設定為記憶體裝置120的記憶體容量乘上小於1的一比值,或者當資料量的計算是以有效資料頁計數值VP_Count為單位時,第一數值可以被設定為小於記憶體裝置120所包含之邏輯資料頁之總數量之一正整數。
如上述,當記憶體控制器110決定採用第一機制時,記憶體控制器110僅會使用被配置為SLC記憶體區塊的既定記憶體區塊接收資料。由於將資料寫入SLC記憶體區塊之速度會比將資料寫入MLC記憶體區塊之速度來的快,使用SLC記憶體區塊作為緩存器可有效加速記憶體裝置120的寫入操作。此外,由於目前記憶體裝置120所儲存之有效資料之資料量少,代表執行垃圾回收程序的需求相對較低,且垃圾回收程序的執行可為資料儲存裝置100帶來較高的效益,其中所述之效益可與執行一次垃圾回收程序後所能釋放出來的空白記憶體區塊數量相關。當釋放出來的空白記憶體區塊數量相對多時,執行垃圾回收程序的效益則相對高。
根據本發明之一實施例,當記憶體控制器110判斷記憶體裝置120所儲存之有效資料之資料量大於第一數值時,記憶體控制器110進一步計算儲存少量有效資料之記憶體區塊之一數量,並且判斷儲存少量有效資料之記憶體區塊之數量是否大於一第二數值,其中第二數值可以被設定為小於記憶體裝置120所包含之記憶體區塊之總數量之一正整數。當儲存少量有效資料之記憶體區塊之數量不大於第二數值時,記憶體控制器110亦可決定於既定期間內採用第一機制接收資料。由於目前記憶體裝置120中儲存少量有效資料之記憶體區塊少,代表須執行垃圾回收程序的次數也相對較少,故記憶體控制器110可決定繼續採用第一機制接收資料。
另一方面,當儲存少量有效資料之記憶體區塊之數量大於第二數值時,代表須執行垃圾回收程序的次數也相對較多,因此,記憶體控制器110可決定開始使用被配置為MLC記憶體區塊的既定記憶體區塊接收資料,以降低垃圾回收程序的執行次數(相較於採用第一機制)。根據本發明之一實施例,記憶體控制器110可於判斷儲存少量有效資料之記憶體區塊之數量大於第二數值時,直接決定採用第二機制接收資料。如上述,當記憶體控制器110決定採用第二機制時,被配置為SLC記憶體區塊與被配置為MLC記憶體區塊的既定記憶體區塊皆會被記憶體控制器110用於接收資料。
根據本發明之另一實施例,當儲存少量有效資料之記憶體區塊之數量大於第二數值時,記憶體控制器110可進一步計算記憶體裝置120內目前空閒之記憶體區塊之一數量,並且判斷空閒之記憶體區塊之數量是否小於一第三數值。當空閒之記憶體區塊之數量不小於第三數值時,記憶體控制器110決定於既定期間內採用第二機制接收資料。
根據本發明之一實施例,於採用第二機制時,記憶體控制器110可根據寫入資料量判斷要將資料寫入被配置為SLC記憶體區塊的既定記憶體區塊或被配置為MLC記憶體區塊的既定記憶體區塊,其中,被配置為MLC記憶體區塊的既定記憶體區塊被設定為用以儲存連續或大筆資料,例如,用以儲存複數個連續邏輯頁面之資料,被配置為SLC記憶體區塊的既定記憶體區塊被設定為用以儲存隨機或小筆資料。根據本發明之一實施例,當欲被寫入之資料的資料量大於或等於一既定資料量 (例如,於對MLC記憶體區塊執行一次寫入操作時所能寫入的資料量)或者為該既定資料量之整數倍時,記憶體控制器110可判斷將這筆資料(或這筆資料之部分)寫入被配置為MLC記憶體區塊的既定記憶體區。反之,當欲被寫入之資料的資料量小於既定資料量時,記憶體控制器110可判斷將資料寫入被配置為SLC記憶體區塊的既定記憶體區塊。
舉例而言,假設於執行一次性寫入指令(One-shot programing command)時,會將寫入兩個物理資料頁的資料寫入MLC記憶體區塊,則上述既定資料量可被設定為16K位元組*2=32 K位元組,其中16K位元組為一個物理資料頁的大小。若一寫入指令所欲寫入之資料量為36 K位元組,記憶體控制器110可判斷將其中的32K位元組寫入被配置為MLC記憶體區塊的既定記憶體區塊,以及將剩餘之4K位元組寫入被配置為SLC記憶體區塊的既定記憶體區塊。
此外,當記憶體控制器110判斷空閒之記憶體區塊之數量小於第三數值時,代表目前記憶體裝置120的剩餘空間較小,則記憶體控制器110決定於既定期間內採用第三機制接收資料。如上述,當記憶體控制器110決定採用第三機制時,無論是要儲存連續或大筆資料,或者隨機或小筆資料,記憶體控制器110僅會使用被配置為MLC記憶體區塊的既定記憶體區塊接收資料。由於此時記憶體裝置120的剩餘空間較小,使用MLC記憶體區塊作為緩存器,有助於降低消耗空閒之記憶體區塊的速度,同時也可降低垃圾回收程序的執行次數。
如上述,於緩存器被寫滿時,記憶體控制器110會將作為緩存器之既定記憶體區塊更新成資料區域的資料區塊,此時,根據本發明之一實施例,記憶體控制器110將重新決定於次一既定期間內要採用第一機制、第二機制或第三機制接收資料。因此,根據本發明之一實施例,既定期間可以是至少包含自記憶體控制器110配置一新的記憶體區塊作為緩存器並決定採用哪個機制接收資料開始,至至少一個緩存器被寫滿而記憶體控制器110需配置另一個新的記憶體區塊作為緩存器的這段期間。
於記憶體控制器110重新決定時,同樣地可依循上述的判斷條件決定於次一既定期間內要採用第一機制、第二機制或第三機制接收資料。
根據本發明之實施例,由於記憶體控制器110在記憶體裝置120的剩餘空間較大、有效資料量較少或儲存少量有效資料之記憶體區塊之數量較少時,選擇利用被配置為SLC記憶體區塊的既定記憶體區塊作為緩存器接收資料,可有效加速記憶體裝置120的寫入操作,而不會讓使用者感覺到記憶體裝置120的寫入操作滯緩。當記憶體控制器110判斷記憶體裝置120的有效資料量較多,或者判斷垃圾回收程序的需求會開始因應記憶體裝置120的有效資料量分布零散而增加時,記憶體控制器110可開始將連續或大筆資料寫入被配置為MLC記憶體區塊的既定記憶體區塊,如此一來,可有效減少垃圾回收程序的執行次數。
而當在記憶體裝置120的剩餘空間較不足時,記憶體控制器110利用被配置為MLC記憶體區塊的既定記憶體區塊作為緩存器接收資料,有助於降低消耗空閒之記憶體區塊的速度,並減少垃圾回收程序的執行次數。由於記憶體控制器110於執行垃圾回收時通常會占用系統資源,進而影響寫入操作的速度,因此,藉由應用本發明所提出之資料處理方法,動態地決定使用SLC記憶體區塊與MLC記憶體區塊之何者作為緩存器接收資料,可有效地於利用SLC記憶體區塊作為緩存器的期間加速記憶體裝置120的寫入操作,並且於利用MLC記憶體區塊作為緩存器的期間減少垃圾回收程序的執行次數。如此一來,可有效避免使用者感覺到記憶體裝置120的寫入操作滯緩。
第4圖係顯示根據本發明之一實施例所述之有限狀態機示意圖。記憶體控制器110起始可先操作於狀態A。於狀態A中,記憶體控制器110採用第一機制接收資料。即,記憶體控制器110僅會使用被配置為SLC記憶體區塊的既定記憶體區塊作為緩存器接收資料。如上述,於緩存器被寫滿時,記憶體控制器110會重新決定接下來採用哪個機制接收資料。當條件C1滿足時,自狀態A切換為狀態B。根據本發明之一實施例,條件C1可以是記憶體裝置120所儲存之有效資料之資料量大於第一數值。舉例而言,第一數值可被設定為記憶體裝置120之記憶體容量的1/4。
於狀態B中,記憶體控制器110採用第一機制接收資料。即,記憶體控制器110僅會使用被配置為SLC記憶體區塊的既定記憶體區塊作為緩存器接收資料。值得注意的是,於本發明之實施例中,狀態的切換可以是雙向的。即,爾後當記憶體控制器110重新決定接下來採用哪個機制接收資料時,若條件C2滿足,可以自狀態B返回狀態A。根據本發明之一實施例,條件C2可以記憶體裝置120所儲存之有效資料之資料量不大於第一數值。
如上述,於緩存器被寫滿時,記憶體控制器110會重新決定接下來採用哪個機制接收資料。於狀態B中,當條件C3滿足時,自狀態B切換為狀態C。根據本發明之一實施例,條件C3可以是記憶體裝置120內儲存少量有效資料之記憶體區塊之數量大於第二數值。舉例而言,第二數值可被設定為記憶體裝置120所包含之記憶體區塊之總數量的3/8。同樣地,狀態的切換可以是雙向的。即,爾後當記憶體控制器110重新決定接下來採用哪個機制接收資料時,若條件C4滿足,可以自狀態C返回狀態B。根據本發明之一實施例,條件C4可以是記憶體裝置120內儲存少量有效資料之記憶體區塊之數量不大於第二數值。
於狀態C中,記憶體控制器110採用第二機制接收資料。即,被配置為SLC記憶體區塊與被配置為MLC記憶體區塊的既定記憶體區塊皆會被記憶體控制器110用於接收資料。
此外,同樣地,當記憶體控制器110重新決定接下來採用哪個機制接收資料時,若條件C5滿足時,可以自狀態C切換為狀態D。於狀態D中,記憶體控制器110採用第三機制接收資料。即,記憶體控制器110僅會使用被配置為MLC記憶體區塊的既定記憶體區塊作為緩存器接收資料。此外,若條件C6滿足時,可以自狀態D返回狀態C。根據本發明之一實施例,條件C5可以是空閒之記憶體區塊之數量小於第三數值,條件C6可以是空閒之記憶體區塊之數量不小於第三數值。舉例而言,第三數值可被設定為記憶體裝置120之記憶體容量的1/4。
值得注意的是,於此實施例中,記憶體控制器110可控制緩存器的運用機制係由狀態A跳至狀態B、由狀態B跳至狀態C、由狀態C跳至狀態D,或者由狀態D返回狀態C、由狀態C返回狀態B、由狀態B返回狀態A,因此,於此實施例中,緩存器的運用狀態會由僅使用被配置為SLC記憶體區塊的既定記憶體區塊作為緩存器,轉換為使用被配置為SLC記憶體區塊的既定記憶體區塊以及被配置為MLC記憶體區塊的既定記憶體區塊作為緩存器,再轉換為僅使用被配置為MLC記憶體區塊的既定記憶體區塊作為緩存器,反之亦然。換言之,於此實施例中,記憶體控制器110並不會自僅使用被配置為SLC記憶體區塊的既定記憶體區塊作為緩存器的狀態直接轉換為僅使用被配置為MLC記憶體區塊的既定記憶體區塊作為緩存器的狀態,反之亦然。
第5A圖與第5B圖係顯示僅使用SLC記憶體區塊作為緩存器之一寫入效能示意圖,其中第5A圖係顯示使用連續或大筆資料作為測試圖樣的測試結果,第5B圖係顯示使用隨機或小筆資料作為測試圖樣的測試結果,縱軸顯示執行寫入操作的寫入速度,橫軸顯示寫入操作的起始位址(GB),其中於第5A圖的寫入速度單位為百萬位元組/秒(MB/Sec),於第5B圖的寫入速度單位為寫入指令數量/秒,其中每個寫入指令寫入4KB的資料。由左至右可顯示出隨記憶體裝置120的剩餘容量持續變小時寫入速度的變化。
如第5A圖所示,自記憶體裝置120的剩餘容量不到總容量的5/8開始,由於記憶體控制器必須開始於背景執行垃圾回收程序,因此寫入速度明顯地下降。如第5B圖所示,自記憶體裝置120的剩餘容量不到總容量的1/2開始,寫入速度也明顯地大幅下降。
第6A圖係顯示應用本發明所提出之資料處理方法於執行連續資料之寫入操作之效能示意圖。第6B圖係顯示應用本發明所提出之資料處理方法於執行隨機資料之寫入操作之效能示意圖。同樣地,縱軸顯示執行寫入操作的寫入速度,橫軸顯示寫入操作的起始位址(GB),其中於第6A圖的寫入速度單位為百萬位元組/秒(MB/Sec) ,於第6B圖的寫入速度單位為寫入指令數量/秒。由左至右可顯示出隨記憶體裝置120的剩餘容量持續變小時寫入速度的變化。
如第6A圖與第6B圖所示,藉由應用本發明所提出之資料處理方法,由於記憶體控制器110會先採用第一機制,因此記憶體裝置120的起初寫入效能可與第5A圖及第5B圖所示的範例相當。自記憶體裝置120的剩餘容量不到總容量的5/8開始,記憶體控制器110會改為採用第二機制,因此相較於第5A圖第5B圖所示的範例,寫入效能並不會大幅下降,並且可持續較佳的效能。直到記憶體裝置120的剩餘容量僅為總容量的1/8或1/4時,才會改為採用第三機制,此時因記憶體控制器110僅使用MLC記憶體區塊作為緩存器,且必須於背景執行垃圾回收程序,因此效能降至接近第5A圖及第5B圖所示的範例。
由第6A圖及第6B圖的示意圖中可看出本發明所提出之資料處理方法可有效加速記憶體裝置的寫入操作。於本發明之實施例中,藉由動態地於配置新的緩存器時,決定於接下來的一段期間內要使用SLC記憶體區塊與MLC記憶體區塊之何者接收資料。如此一來,緩存器的配置可有彈性地隨著記憶體裝置120的剩餘空間大小及有效資料的資料量與分佈而調整。藉由應用本發明所提出之資料處理方法,於利用SLC記憶體區塊作為緩存器的期間,記憶體裝置120的寫入操作可有效地被加速。此外,於利用MLC記憶體區塊作為緩存器的期間,由於垃圾回收程序的執行次數被有效地降低,亦可避免使用者感覺到記憶體裝置120的寫入操作滯緩。因此,使用者感覺到的整體寫入操作速度及效能皆可顯著地提升。
申請專利範圍中用以修飾元件之“第一”、“第二” 、“第三”等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
C1、C2、C3、C4、C5、C6:條件
VP_Count_Table:有效資料頁計數表格
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的示意圖。 第2圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。 第3圖係顯示根據本發明之一實施例所述之一有效資料頁計數表格範例圖。 第4圖係顯示根據本發明之一實施例所述之有限狀態機示意圖。 第5A圖係顯示僅使用SLC記憶體區塊作為緩存器執行連續資料之寫入操作之效能示意圖。 第5B圖係顯示僅使用SLC記憶體區塊作為緩存器執行隨機資料之寫入操作之效能示意圖。 第6A圖係顯示應用本發明所提出之資料處理方法於執行連續資料之寫入操作之效能示意圖。 第6B圖係顯示應用本發明所提出之資料處理方法於執行隨機資料之寫入操作之效能示意圖。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
Claims (16)
- 一種資料儲存裝置,包括: 一記憶體裝置,包括複數記憶體區塊;以及 一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,其中該記憶體控制器配置一第一既定記憶體區塊與一第二既定記憶體區塊作為緩存器用以自一主機裝置接收資料,其中該第一既定記憶體區塊為一單層單元記憶體區塊,該第二既定記憶體區塊為一多層單元記憶體區塊,並且其中 該記憶體控制器動態地根據該記憶體裝置所儲存之有效資料之資料量決定採用一第一機制、一第二機制或一第三機制於一既定期間內接收資料, 其中當該記憶體控制器決定採用該第一機制時,該記憶體控制器使用該第一既定記憶體區塊接收資料,當該記憶體控制器決定採用該第二機制時,該記憶體控制器使用該第一既定記憶體區塊與該第二既定記憶體區塊接收資料,以及當該記憶體控制器決定採用該第三機制時,該記憶體控制器使用該第二既定記憶體區塊接收資料。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更建立一第一表格,用以記錄各記憶體區塊所對應之一有效邏輯資料頁計數值,並且其中該記憶體控制器根據該第一表格所記錄之內容判斷該記憶體裝置所儲存之該有效資料之資料量。
- 如申請專利範圍第2項所述之資料儲存裝置,其中該記憶體控制器更於執行完一或多次寫入操作後根據該一或多次寫入操作所執行的內容更新該第一表格所記錄之內容。
- 如申請專利範圍第2項所述之資料儲存裝置,其中當該記憶體控制器判斷該記憶體裝置所儲存之該有效資料之資料量不大於一第一數值時,該記憶體控制器決定於該既定期間內採用該第一機制接收資料。
- 如申請專利範圍第2項所述之資料儲存裝置,其中當該記憶體控制器判斷該記憶體裝置所儲存之該有效資料之資料量大於一第一數值時,該記憶體控制器進一步根據該第一表格所記錄之內容計算儲存少量有效資料之記憶體區塊之一數量,並且判斷儲存少量有效資料之記憶體區塊之該數量是否大於一第二數值,其中當儲存少量有效資料之記憶體區塊之該數量不大於該第二數值時,該記憶體控制器決定於該既定期間內採用該第一機制接收資料。
- 如申請專利範圍第5項所述之資料儲存裝置,其中當儲存少量有效資料之記憶體區塊之該數量大於該第二數值時,該記憶體控制器進一步根據該第一表格所記錄之內容計算該記憶體裝置內目前空閒之記憶體區塊之一數量,並且判斷空閒之記憶體區塊之該數量是否小於一第三數值,其中當空閒之記憶體區塊之該數量不小於該第三數值時,該記憶體控制器決定於該既定期間內採用該第二機制接收資料。
- 如申請專利範圍第6項所述之資料儲存裝置,其中當空閒之記憶體區塊之該數量小於該第三數值時,該記憶體控制器決定於該既定期間內採用該第三機制接收資料。
- 如申請專利範圍第1項所述之資料儲存裝置,其中於該既定期間屆滿時,該記憶體控制器重新決定於次一既定期間內採用該第一機制、該第二機制或該第三機制接收資料。
- 一種資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置以及一記憶體控制器,該記憶體裝置包括複數記憶體區塊,該記憶體控制器耦接該記憶體裝置,用以存取該記憶體裝置,該方法包括: 由該記憶體控制器選擇複數記憶體區塊,並且將該等記憶體區塊配置為至少一個單層單元記憶體區塊以及至少一個多層單元記憶體區塊,用以作為緩存器自一主機裝置接收資料;以及 由該記憶體控制器動態地根據該記憶體裝置所儲存之有效資料之資料量決定於一既定期間內使用該單層單元記憶體區塊與該多層單元記憶體區塊之何者接收資料, 其中當該記憶體控制器決定採用一第一機制時,於該既定期間內僅該單層單元記憶體區塊會被用於接收資料,當該記憶體控制器決定採用一第二機制時,於該既定期間內該單層單元記憶體區塊與該多層單元記憶體區塊皆被會用於接收資料,以及當該記憶體控制器決定採用一第三機制時,於該既定期間內僅該多層單元記憶體區塊被用於接收資料。
- 如申請專利範圍第9項所述之方法,更包括: 由該記憶體控制器建立一第一表格,用以記錄各記憶體區塊所對應之一有效邏輯資料頁計數值,其中該記憶體控制器根據該第一表格所記錄之內容判斷該記憶體裝置所儲存之該有效資料之資料量。
- 如申請專利範圍第10項所述之方法,更包括: 於執行完一或多次寫入操作後,由該記憶體控制器根據該一或多次寫入操作所執行的內容更新該第一表格所記錄之內容。
- 如申請專利範圍第10項所述之方法,其中由該記憶體控制器動態地根據該記憶體裝置所儲存之有效資料之資料量決定於一既定期間內使用該單層單元記憶體區塊與該多層單元記憶體區塊之何者接收資料之步驟更包括: 判斷該記憶體裝置所儲存之該有效資料之資料量是否大於一第一數值;以及 當該有效資料之資料量不大於該第一數值時,決定於該既定期間內採用該第一機制。
- 如申請專利範圍第10項所述之方法,其中由該記憶體控制器動態地根據該記憶體裝置所儲存之有效資料之資料量決定於一既定期間內使用該單層單元記憶體區塊與該多層單元記憶體區塊之何者接收資料之步驟更包括: 判斷該記憶體裝置所儲存之該有效資料之資料量是否大於一第一數值; 當判斷該記憶體裝置所儲存之該有效資料之資料量大於該第一數值時,根據該第一表格所記錄之內容計算儲存少量有效資料之記憶體區塊之一數量; 判斷儲存少量有效資料之記憶體區塊之該數量是否大於一第二數值;以及 當儲存少量有效資料之記憶體區塊之該數量不大於該第二數值時,決定於該既定期間內採用該第一機制。
- 如申請專利範圍第13項所述之方法,其中由該記憶體控制器動態地根據該記憶體裝置所儲存之有效資料之資料量決定於一既定期間內使用該單層單元記憶體區塊與該多層單元記憶體區塊之何者接收資料之步驟更包括: 當儲存少量有效資料之記憶體區塊之該數量大於該第二數值時,根據該第一表格所記錄之內容計算該記憶體裝置內目前空閒之記憶體區塊之一數量; 判斷空閒之記憶體區塊之該數量是否小於一第三數值;以及 當空閒之記憶體區塊之該數量不小於該第三數值時,決定於該既定期間內採用該第二機制。
- 如申請專利範圍第14項所述之方法,其中由該記憶體控制器動態地根據該記憶體裝置所儲存之有效資料之資料量決定於一既定期間內使用該單層單元記憶體區塊與該多層單元記憶體區塊之何者接收資料之步驟更包括: 當空閒之記憶體區塊之該數量小於該第三數值時,決定於該既定期間內採用該第三機制。
- 如申請專利範圍第9項所述之方法,更包括: 於該既定期間屆滿時,由該記憶體控制器重新決定於次一既定期間內使用該單層單元記憶體區塊與該多層單元記憶體區塊之何者接收資料。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108108462A TWI698749B (zh) | 2019-03-13 | 2019-03-13 | 資料儲存裝置與資料處理方法 |
CN201911133121.2A CN111694510B (zh) | 2019-03-13 | 2019-11-19 | 数据储存装置与数据处理方法 |
US16/699,989 US11157399B2 (en) | 2019-03-13 | 2019-12-02 | Data storage devices and data processing methods with dynamic programming scheme |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108108462A TWI698749B (zh) | 2019-03-13 | 2019-03-13 | 資料儲存裝置與資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI698749B TWI698749B (zh) | 2020-07-11 |
TW202034178A true TW202034178A (zh) | 2020-09-16 |
Family
ID=72423666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108108462A TWI698749B (zh) | 2019-03-13 | 2019-03-13 | 資料儲存裝置與資料處理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11157399B2 (zh) |
CN (1) | CN111694510B (zh) |
TW (1) | TWI698749B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210144249A (ko) * | 2020-05-22 | 2021-11-30 | 에스케이하이닉스 주식회사 | 저장 장치 및 이의 동작 방법 |
US11748011B2 (en) | 2021-03-31 | 2023-09-05 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
US11733895B2 (en) | 2021-03-31 | 2023-08-22 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
US20240036764A1 (en) * | 2022-07-27 | 2024-02-01 | Western Digital Technologies, Inc. | Storage System and Method for Optimizing Host-Activated Defragmentation and Proactive Garbage Collection Processes |
CN117555477A (zh) * | 2022-08-05 | 2024-02-13 | 中山市江波龙电子有限公司 | 数据存储方法、装置、存储设备及计算机可读存储介质 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198952A1 (en) * | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
US9123422B2 (en) * | 2012-07-02 | 2015-09-01 | Super Talent Technology, Corp. | Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells |
US8166229B2 (en) * | 2008-06-30 | 2012-04-24 | Intel Corporation | Apparatus and method for multi-level cache utilization |
TWI442222B (zh) * | 2010-07-21 | 2014-06-21 | Silicon Motion Inc | 快閃記憶裝置與快閃記憶裝置管理方法 |
JP5066241B2 (ja) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
KR101861170B1 (ko) * | 2011-08-17 | 2018-05-25 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
KR101959567B1 (ko) * | 2012-05-14 | 2019-03-18 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법 |
TWI509617B (zh) * | 2012-06-04 | 2015-11-21 | Silicon Motion Inc | 快閃記憶體裝置及快閃記憶體的資料存取方法 |
KR20140033964A (ko) * | 2012-09-11 | 2014-03-19 | 삼성전자주식회사 | 단말기의 데이터 저장장치 및 방법 |
TWI483111B (zh) * | 2012-09-20 | 2015-05-01 | Phison Electronics Corp | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
CN103853666B (zh) * | 2012-12-04 | 2016-12-21 | 群联电子股份有限公司 | 存储器、其存储控制器与数据写入方法 |
CN104346292B (zh) * | 2013-08-05 | 2017-10-24 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法、记忆装置与控制器 |
CN104424127A (zh) * | 2013-08-23 | 2015-03-18 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
CN104572478B (zh) * | 2013-10-14 | 2018-07-06 | 联想(北京)有限公司 | 数据存取方法和数据存取装置 |
WO2016088234A1 (ja) * | 2014-12-04 | 2016-06-09 | 株式会社 東芝 | 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置 |
IN2015CH04361A (zh) * | 2015-08-20 | 2015-09-04 | Wipro Ltd | |
TWI591635B (zh) * | 2016-02-05 | 2017-07-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
TWI604373B (zh) * | 2016-12-13 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
JP2018120439A (ja) * | 2017-01-25 | 2018-08-02 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP2019008730A (ja) * | 2017-06-28 | 2019-01-17 | 東芝メモリ株式会社 | メモリシステム |
TWI630540B (zh) * | 2017-07-13 | 2018-07-21 | 慧榮科技股份有限公司 | 資料儲存裝置及非揮發式記憶體操作方法 |
TWI649759B (zh) * | 2017-09-28 | 2019-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
US10691358B2 (en) * | 2018-06-14 | 2020-06-23 | Silicon Motion, Inc. | Memory controller and method capable of using different storing modes to store data units having different data sizes |
JP2020035128A (ja) * | 2018-08-29 | 2020-03-05 | キオクシア株式会社 | メモリシステム |
-
2019
- 2019-03-13 TW TW108108462A patent/TWI698749B/zh active
- 2019-11-19 CN CN201911133121.2A patent/CN111694510B/zh active Active
- 2019-12-02 US US16/699,989 patent/US11157399B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11157399B2 (en) | 2021-10-26 |
US20200293441A1 (en) | 2020-09-17 |
CN111694510B (zh) | 2023-03-21 |
CN111694510A (zh) | 2020-09-22 |
TWI698749B (zh) | 2020-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
US11030093B2 (en) | High efficiency garbage collection method, associated data storage device and controller thereof | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US8060719B2 (en) | Hybrid memory management | |
US9268687B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US20110099323A1 (en) | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US20170010961A1 (en) | Wear leveling method, memory storage device and memory control circuit unit | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
US20160110112A1 (en) | Data writing method, memoey control circuit unit and memory storage apparatus | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
CN106055488B (zh) | 数据储存设备及其操作方法 | |
US9710374B2 (en) | Data writing method, memory controller and memory storage device | |
TWI697778B (zh) | 資料儲存裝置與資料處理方法 | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus | |
US20130246687A1 (en) | Data writing method, memory controller and memory storage apparatus | |
KR20220130526A (ko) | 메모리 시스템 및 그 동작 방법 | |
TW202125206A (zh) | 記憶體管理方法與記憶體裝置 |