TWI814666B - 資料儲存裝置與動態決定緩存器大小的方法 - Google Patents
資料儲存裝置與動態決定緩存器大小的方法 Download PDFInfo
- Publication number
- TWI814666B TWI814666B TW111148027A TW111148027A TWI814666B TW I814666 B TWI814666 B TW I814666B TW 111148027 A TW111148027 A TW 111148027A TW 111148027 A TW111148027 A TW 111148027A TW I814666 B TWI814666 B TW I814666B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage capacity
- memory
- maximum
- value
- data
- Prior art date
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims description 29
- 238000003860 storage Methods 0.000 claims abstract description 110
- 230000004044 response Effects 0.000 claims abstract description 12
- 230000008521 reorganization Effects 0.000 description 13
- 238000012937 correction Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 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
- 238000004064 recycling Methods 0.000 description 1
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0893—Caches characterised by their organisation or structure
-
- 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/1673—Details of memory controller using buffers
-
- 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
-
- 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
-
- 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/0656—Data buffering 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
- 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
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)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
一種資料儲存裝置,包括記憶體裝置與記憶體控制器。記憶體裝置具有對應之總儲存容量,並且包含複數記憶體區塊。總儲存容量預設地被設定為由記憶體區塊所提供之最大儲存容量,並且記憶體區塊包括用以自主機裝置接收資料的一或多個既定記憶體區塊。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。響應於最大寫入資料量之設定,記憶體控制器根據最大寫入資料量決定總儲存容量之數值,並根據總儲存容量之數值與最大儲存容量決定既定記憶體區塊之數量。
Description
本發明係關於一種緩存器大小的決定方法,特別是一種根據系統需求動態地決定緩存器大小的方法。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合安全數位(Secure Digital,縮寫為SD)/ 多媒體卡(Multi Media Card,縮寫為MMC)規格、複合式快閃記憶體(Compact flash,縮寫為CF)規格、記憶條(Memory Stick,縮寫為MS)規格與極數位(Extreme Digital,縮寫為XD)規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。
通常資料儲存裝置會配置寫入緩存器(write buffer)自主機接收資料。寫入緩存器的種類與大小配置會影響資料的寫入速度,也會影響主機對於寫入資料量的安排,最終影響到資料儲存裝置的存取效能。此外,資料儲存裝置的存取效能更將主導使用者感受。
因此,如何準確地估計當前可配置的寫入緩存器大小,以避免資料的寫入速度產生大幅度變化,並維持較佳的使用者感受為本領域值得關注的課題。
本發明之一目的在於提供一種可根據系統需求動態地決定緩存器大小的方法,以避免資料的寫入速度產生大幅度變化,並維持較佳的使用者感受。
根據本發明之一實施例,一種資料儲存裝置,包括一記憶體裝置與一記憶體控制器。記憶體裝置具有對應之一總儲存容量,並且包含複數記憶體區塊。總儲存容量預設地被設定為由記憶體區塊所提供之一最大儲存容量,並且記憶體區塊包括用以自一主機裝置接收資料的一或多個既定記憶體區塊。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。響應於最大寫入資料量之設定,記憶體控制器根據最大寫入資料量決定總儲存容量之一數值,並且根據總儲存容量之數值與最大儲存容量決定所述一或多個既定記憶體區塊之一數量。
根據本發明之另一實施例,一種動態決定緩存器大小的方法,包括:響應於一最大寫入資料量之設定決定一記憶體裝置所對應之一總儲存容量之一數值,其中記憶體裝置包含複數記憶體區塊,記憶體區塊包括作為緩存器用以自一主機裝置接收資料的一或多個既定記憶體區塊,並且最大寫入資料量由一使用者所設定;以及根據總儲存容量之數值與一最大儲存容量決定所述一或多個既定記憶體區塊之一數量,其中最大儲存容量為由記憶體區塊所提供之一最大儲存容量。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一實施例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「於本發明之一實施例中」、「根據本發明之一實施例」、「於一範例中」或「根據本發明之一範例」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存系統的方塊圖範例。資料儲存系統可包括一主機裝置130與一資料儲存裝置100。主機裝置130可至少包括一處理器131、至少一隨機存取記憶體(Random Access Memory,縮寫為RAM) 132,例如至少一動態隨機存取記憶體(Dynamic RAM,縮寫為DRAM)或至少一靜態隨機存取記憶體(Static RAM,縮寫為SRAM)、至少一唯讀記憶體133、一電源電路135以及一裝置介面138。
主機裝置130透過裝置介面138存取資料儲存裝置100。處理器131、裝置介面138、隨機存取記憶體132與唯讀記憶體133可透過一匯流排彼此相互連接,並且可耦接至電源電路135以取得電源。處理器131可控制主機裝置130之運作。唯讀記憶體133可儲存程式碼。處理器131執行程式碼以控制主機裝置130之運作。
電源電路135可透過匯流排或電源線將電源供應至處理器131、裝置介面138、隨機存取記憶體132與唯讀記憶體133,以及將電源供應至資料儲存裝置100,例如輸出一或多個驅動電壓至資料儲存裝置100。資料儲存裝置100可自主機裝置130取得所述驅動電壓作為資料儲存裝置100的電源,並且為主機裝置130提供儲存空間。
資料儲存裝置100可包括一記憶體裝置120與一記憶體控制器110。記憶體控制器110用以存取(Access)記憶體裝置120及控制記憶體裝置120之運作。記憶體裝置120可為一非揮發性(non-volatile,縮寫為NV)記憶體裝置(例如,一快閃記憶體(flash memory)),並且可包括一或多個記憶元件(例如,一或多個快閃記憶體晶粒、一或多個快閃記憶體晶片、或其他類似元件)。
根據本發明之一實施例,主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者主機裝置130可對資料儲存裝置100發出指令以進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體控制器110可包括一微處理器112、一唯讀記憶體(Read Only Memory,縮寫為ROM)112M、一記憶體介面114、一緩衝記憶體116、與一主機介面118。唯讀記憶體112M係用以儲存程式碼112C。而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。程式碼112C可包括一或多個程式模組,例如啟動載入(boot loader)程式碼。當資料儲存裝置100自主機裝置130取得電源時,微處理器112可藉由執行程式碼112C執行資料儲存裝置100之一初始化程序。於初始化程序中,微處理器112可自記憶體裝置120載入一組系統內編程(In-System Programming,縮寫為ISP)程式碼(未示於第1圖)。微處理器112可執行該組系統內編程程式碼,使得資料儲存裝置100可具備各種功能。根據本發明之一實施例,該組系統內編程程式碼可包括,但不限於:一或多個與記憶體存取(例如,讀取、寫入與抹除)相關的程式模組,例如一讀取操作模組、一查找表格模組、一損耗均衡(wear leveling)模組、一讀取刷新(read refresh) 模組、一讀取回收(read reclaim)模組、一垃圾回收模組、一非預期斷電恢復(Sudden Power Off Recovery,縮寫為SPOR)模組、以及一不可更正錯誤更正碼(Uncorrectable Error Correction Code,縮寫為UECC)模組,其分別被提供用以執行對應之讀取、查找表格、損耗均衡、讀取刷新、讀取回收、垃圾回收、非預期斷電恢復以及對偵測到的UECC錯誤進行錯誤處理等操作。
記憶體介面114包含了一錯誤更正碼引擎140。錯誤更正碼引擎140內部可包含一資料緩衝器(圖未示),用以暫存資料,以輔助錯誤更正碼引擎140對資料執行編碼與解碼操作。於將資料寫入記憶體裝置120的寫入流程中,錯誤更正碼引擎140對需被寫入記憶體裝置120的資料進行編碼,例如執行錯誤更正碼(ECC)編碼,以產生額外的奇偶位元(parity bits)。而於將資料讀出記憶體裝置120的讀取流程中,錯誤更正碼引擎140對從記憶體裝置120所讀出的資料進行解碼,用以檢測資料中的錯誤位元,並且於可更正的情況下(例如,資料中的錯誤位元數量不超過錯誤更正碼引擎140所能更正的錯誤位元數上限),修正錯誤位元的位元值。
於典型狀況下,記憶體裝置120包含了多個記憶元件,例如多個快閃記憶體晶粒或多個快閃記憶體晶片,各記憶元件可包含複數個記憶體區塊(Block)。記憶體控制器110對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),例如,實體資料頁,其中記憶體控制器110對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用記憶體介面114來控制記憶體裝置120之存取運作(尤其是對至少一記憶體區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用主機介面118來與主機裝置130溝通。
在一實施例中,記憶體控制器110透過主機介面118並使用一標準通訊協定與主機裝置130溝通。同理,主機裝置130可透過裝置介面138並使用相同之標準通訊協定與記憶體控制器110溝通。
舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(USB)標準、SD介面標準、超高速一代 (Ultra High Speed-I,縮寫為UHS-I) 介面標準、超高速二代 (Ultra High Speed-II,縮寫為UHS-II) 介面標準、CF介面標準、MMC介面標準、eMMC介面標準、UFS介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準等。
在一實施例中,用以提供資料緩衝之緩衝記憶體116係以隨機存取記憶體來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體,但本發明亦不限於此。於其他實施例中,緩衝記憶體116可以是動態隨機存取記憶體。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡、USB隨身碟等裝置),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等,主機裝置130結合資料儲存裝置100的一個整體可以是一資料儲存系統或電子裝置系統內的一資料儲存系統。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合UFS或eMMC規格之嵌入式儲存裝置,並且可被設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是包含資料儲存裝置100之電子裝置,主機裝置130結合資料儲存裝置100的一個整體同樣可以是一資料儲存系統。
一般而言,記憶體控制器110可配置一或多個既定記憶體區塊作為快取記憶體(cache),或稱緩存器(buffer),亦可稱為現用區塊(current block)或活用區塊(active block),用以自主機裝置130接收資料。被配置的既定記憶體區塊可以是單層單元(Single-level cell,縮寫為SLC)記憶體區塊、多層單元(Multiple-level cell,縮寫為MLC)記憶體區塊、三層單元(Triple-level cell,縮寫為TLC)記憶體區塊、或其他更多層單元的記憶體區塊。待緩存器的使用率達到一定程度時,記憶體控制器110可執行資料重整操作,用以將緩存器儲存的資料寫入另一記憶體區塊。例如,於配置SLC記憶體區塊做為緩存器的實施例中,記憶體控制器110可將多個SLC記憶體區塊儲存的資料合併並儲存於一個TLC 記憶體區塊,如此一來,可使記憶體區塊的利用更有效率。
然而,資料重整操作通常會導致記憶體裝置的寫入速度下降。例如,若記憶體控制器110於背景執行資料重整操作的同時自主機裝置130接收到寫入指令,用以要求將使用者所欲儲存之資料寫入記憶體裝置120,則由於記憶體控制器110需同時處理資料重整操作與資料寫入操作,使用者將明顯感受到寫入速度變慢,此現象可被稱為資料儲存裝置的掉速(speed drop)。
為能避免或延緩掉速的發生,或者減少掉速發生的頻率,本發明提出一種動態決定緩存器大小的方法,藉由動態地決定緩存器的大小並執行對應的配置以達到資料儲存裝置100的存取速度與可用空間的權衡,且緩存器的大小的設定符合使用者的需求,藉此方法之實施可有效維持較佳的使用者感受。其中,如上所述,記憶體裝置120可包含複數記憶體區塊,該等記憶體區塊包括用以自主機裝置130接收資料的一或多個既定記憶體區塊,其中所述一或多個既定記憶體區塊可為前述之緩存器,記憶體控制器110可藉由自該等記憶體區塊中或者自其中尚未被寫入資料的空閒記憶體區塊中選擇出一特定數量之記憶體區塊,並將之配置為特定類型之記憶體區塊以作為所述既定記憶體區塊,例如,透過抹除操作將特定數量之記憶體區塊配置為上述SLC記憶體區塊,並將此特定數量之記憶體區塊配置為緩存器。此外,緩存器的大小可由被配置作為緩存器使用的既定記憶體區塊的數量所定義。例如,由於一既定記憶體區塊可提供既定的儲存容量,依據被配置的既定記憶體區塊的數量則可推導出對應的緩存器大小(儲存容量)。
根據本發明之一實施例,記憶體裝置120可具有對應之一總儲存容量(Total Storage Capacity),記憶體裝置120所包含之複數記憶體區塊所能提供的儲存容量可具有對應之一最大儲存容量(Maximum Storage Capacity),記憶體裝置120的總儲存容量可預設地被設定為由記憶體區塊所能提供之最大儲存容量。舉例而言,假設記憶體裝置120包含300個記憶體區塊,該等記憶體區塊實際所能提供的儲存容量可能依照記憶體區塊被配置的類型變動,例如,假設當一個記憶體區塊被配置為SLC記憶體區塊時,可儲存1GB(十億位元組)之資料,並假設TLC為目前可被配置的最高等級,且當一個記憶體區塊被配置為TLC記憶體區塊時,可儲存3GB之資料,則記憶體裝置120所包含之複數記憶體區塊所能提供的儲存容量可變動於300GB(當所有記憶體區塊皆被配置為SLC記憶體區塊時)至900 GB(當所有記憶體區塊皆被配置為TLC記憶體區塊時)之間,此時由記憶體區塊所能提供之最大儲存容量即為900 GB。
一般而言,資料儲存裝置並不區別總儲存容量與最大儲存容量。例如,既有技術中,一記憶體裝置所能提供的總儲存容量即為其最大儲存容量,因此,記憶體控制器通常僅使用一個參數記錄記憶體裝置的容量上限(即,前述最大儲存容量),並且於產品規格標示中,所標示的記憶體大小即為此記憶體裝置的容量上限。而當資料儲存裝置連接主機裝置時,由主機裝置所認定之資料儲存裝置之最大儲存容量即為前述記憶體裝置的容量上限。因此,於既有技術中,對於一個資料儲存裝置而言,由主機裝置所認定之最大儲存容量會是固定值。
然而,於本發明之實施例中,記憶體控制器110可將記憶體裝置120所對應之總儲存容量與最大儲存容量分別記錄於兩個參數,例如,記憶體控制器110可使用參數Total_Capacity記錄記憶體裝置120所對應之總儲存容量,以及使用參數MAX_Capacity記錄記憶體裝置120所對應之最大儲存容量,其中參數Total_Capacity所記錄的數值為可變的數值,參數MAX_Capacity所記錄的數值為固定(不可變)的數值。於本發明之實施例中,參數Total_Capacity所記錄的數值會隨著記憶體控制器110所決定或配置的緩存器大小對應地調整,記憶體控制器110所決定或配置的緩存器大小會隨著使用者需求對應地調整。因此,於本發明之實施例中,記憶體裝置120所對應之總儲存容量會隨著使用者需求對應地被調整,且由主機裝置130所認定之資料儲存裝置100之最大儲存容量將與記憶體裝置120所對應之總儲存容量連動。因此,主機裝置130所認定之資料儲存裝置100之最大儲存容量會隨著總儲存容量之數值變化而改變。此外,主機裝置130可將其所認定之資料儲存裝置100之最大儲存容量透過一顯示裝置或一螢幕顯示於一使用者介面上,作為提供給使用者的記憶體大小資訊。因此,於本發明之實施例中,由使用者所接收到或察覺到(perceive)的記憶體大小的資訊也可能隨著使用者所輸入的需求或隨著記憶體控制器110所決定或配置的緩存器大小對應地改變。以下段落將提供更詳細的介紹。
第2圖係顯示根據本發明之一實施例所述之動態決定緩存器大小的方法的範例流程圖,包含由資料儲存系統內之資料儲存裝置端的記憶體控制器110所執行之以下步驟:
步驟S202: 響應於一最大寫入資料量之設定決定(或,修改)記憶體裝置120所對應之一總儲存容量之一數值。如上所述,記憶體控制器110可使用參數Total_Capacity記錄記憶體裝置120所對應之總儲存容量,因此,於步驟S202中,響應於最大寫入資料量之設定,記憶體控制器110可根據最大寫入資料量之當前設定值決定或修改由參數Total_Capacity所記錄的數值。此外,於本發明之一實施例中,最大寫入資料量可由主機裝置130或資料儲存系統之一使用者所設定。例如,使用者可透過使用者介面並利用一輸入裝置(圖未示)設定其當前所需的最大寫入資料量,主機裝置130可於取得由使用者所輸入之最大寫入資料量之當前設定值後,進一步透過裝置介面138將此資訊提供給記憶體控制器110。
步驟S204: 根據總儲存容量之數值與一最大儲存容量決定作為緩存器使用的既定記憶體區塊之數量。如上所述,記憶體控制器110可參考參數MAX_Capacity所記錄的數值以及參數Total_Capacity經步驟S202決定或修改後所記錄的數值計算出當前可被配置的緩存器的大小,其可對應於既定記憶體區塊之數量。
步驟S206: 配置所述數量之記憶體區塊作為既定記憶體區塊。如上所述,記憶體控制器110可藉由自複數記憶體區塊中或者自其中尚未被寫入資料的空閒記憶體區塊中選擇出一特定數量(即,於步驟S204所決定之數量)之記憶體區塊,並將之配置為特定類型之記憶體區塊以作為所述既定記憶體區塊。
於本發明之實施例中,記憶體控制器110可反覆地執行步驟S202~S206,以動態調整緩存器大小。例如,記憶體控制器110可響應於自主機裝置130接收之最大寫入資料量之一當前設定值或者響應於當前設定值的變化開始執行步驟S202~S206,以動態調整緩存器大小。
根據本發明之一實施例,於步驟S204中,記憶體控制器110可根據以下關係式(1) 計算出當前可被配置的緩存器的大小。
Cache_Size + (MAX_Capacity-m* Cache_Size) = MAX_Write 式(1)
其中Cache_Size代表被配置的緩存器的大小,MAX_Write代表依據當前使用者需求設定的最大寫入資料量,m代表目前可被配置的最高等級的記憶體區塊類型(例如,TLC)與被配置為緩存器的記憶體區塊類型(例如,SLC)對於一個記憶單元所能儲存的位元數比例,且m>1。
整理式(1),可得以下關係式(2):
Cache_Size= (MAX_Capacity- MAX_Write)/(m-1) 式(2)
以MAX_Capacity=900GB,m=3的記憶體裝置為例,關係式(2)可被改寫為以下關係式(3):
Cache_Size= (900- MAX_Write)/2 式(3)
假設當前使用者所設定的最大寫入資料量為300GB,則可推得當前可被配置的緩存器的大小Cache_Size=300GB。於此設定下,使用者對於記憶體區塊120寫入資料量的上限即為300GB,且記憶體區塊120的所有記憶體區塊皆可被配置為SLC記憶體區塊,所有SLC記憶體區塊皆可作為緩存器使用。由於SLC記憶體區塊相較於其他類型的記憶體區塊具有較快的寫入速度,當使用者所需的記憶體空間較小時,可藉由以上設定以記憶體空間換取高速的存取效能。反之,當使用者需求改為需要完整的記憶體空間時,也可藉由以上設定以存取效能換取記憶體空間。
第3圖係顯示範例表格,其同樣以MAX_Capacity=900GB,m=3的記憶體裝置為例,例示出於不同最大寫入資料量的設定之下,可被配置的緩存器的大小以及預計發生掉速的時間點,其中發生掉速的時間點係以最大寫入資料量的百分比表示之,以表示出當使用者寫入的資料量到達其所設定之最大寫入資料量的百分之幾時會因為記憶體控制器110須對記憶體區塊120執行資料重整操作而發生掉速。於第3圖所示範例中,資料重整操作的觸發被設定為緩存器被寫滿的時候,因此,第3圖中所示之發生掉速的時間點也相當於緩存器大小與最大寫入資料量的百分比率。
如第3圖所示,當最大寫入資料量MAX_Write被設定為300GB時,由於記憶體區塊120的所有記憶體區塊皆被配置為SLC記憶體區塊,因此記憶體控制器110無須對記憶體區塊120執行資料重整操作,也不會發生掉速(標記為N/A)。當最大寫入資料量MAX_Write被設定為450GB時,被配置的緩存器的大小Cache_Size=225GB,預計當使用者寫入的資料量到達其所設定之最大寫入資料量MAX_Write的一半時,會發生掉速。當最大寫入資料量MAX_Write被設定為600GB時,被配置的緩存器的大小Cache_Size=150GB,預計當使用者寫入的資料量到達其所設定之最大寫入資料量MAX_Write的四分之一時,就會發生掉速。
第3圖的表格中例示出存取速度與可用空間的權衡。需注意的是,以上所列的關係式(1)~(3)僅為本發明的其中一種實施範例,而本發明所提出之動態決定緩存器大小的方法當可基於相同或相近的精神以不同的方法根據使用者設定的最大寫入資料量計算出當前可被配置的緩存器的大小,故本發明並不限於僅能使用以上所列的關係式。
此外,主機裝置130可發出一讀取容量指令至記憶體控制器110,以取得記憶體區塊120的記憶體容量資訊。因此,於本發明之實施例中,雖記憶體裝置120的總儲存容量(對應於參數Total_Capacity)可預設地被設定為由記憶體區塊所能提供之最大儲存容量(對應於參數MAX_Capacity),於記憶體控制器110根據最大寫入資料量MAX_Write決定或修改總儲存容量所對應之參數Total_Capacity之數值後,例如,於執行過步驟S202之後,爾後響應於接收自主機裝置之一讀取容量指令,記憶體控制器110會以決定或修改後之總儲存容量(對應於參數Total_Capacity)之數值取代最大儲存容量(對應於參數MAX_Capacity)所對應之一數值回覆主機裝置130。
此外,於本發明之實施例中,總儲存容量(對應於參數Total_Capacity)之數值可小於最大儲存容量所對應之數值。延續前範例,假設當前使用者需求設定的最大寫入資料量為300GB,響應於此設定記憶體控制器110可將參數Total_Capacity所記錄的數值決定或修改為300GB,其小於記憶體裝置120的最大儲存容量900 GB。
此外,根據本發明之一實施例,於記憶體控制器110以決定或修改後之總儲存容量之數值回覆主機裝置130後,此數值會被顯示於主機裝置130之一使用者介面做為主機裝置130所認定之資料儲存裝置之一最大儲存容量。例如,延續前範例,主機裝置130可將其所認定之資料儲存裝置100之最大儲存容量300GB透過一顯示裝置或一螢幕顯示於使用者介面上,作為提供給使用者的記憶體大小資訊。因此,於本發明之實施例中,於使用者修改其所需的最大寫入資料量MAX_Write後,由使用者所接收到或察覺到(perceive)的記憶體大小的資訊也可對應地改變。
此外,根據本發明之一實施例,記憶體控制器110可反覆地根據最新取得之最大寫入資料量之當前設定值決定或修改總儲存容量所對應之參數Total_Capacity所記錄的數值,根據此數值與最大儲存容量動態地決定既定記憶體區塊之數量,並且對應地配置此數量之既定記憶體區塊作為緩存器。此外,根據本發明之一實施例,既定記憶體區塊可為SLC記憶體區塊,但並不限於SLC記憶體區塊。依所需的存取效能,既定記憶體區塊也可為其他更多層單元的記憶體區塊。
第4圖係顯示根據本發明之一實施例所述之動態決定緩存器大小的方法的詳細流程圖,包含由資料儲存系統內之資料儲存裝置端的記憶體控制器110所執行之以下步驟:
步驟S402: 資料儲存裝置完成初始化,並準備好服務主機裝置。根據本發明之一實施例,資料儲存裝置100的初始化可包括設定參數Total_Capacity(總儲存容量)與參數MAX_Capacity(最大儲存容量)的數值,其中記憶體區塊所能提供之最大儲存容量可由記憶體的規格推算出來,或者可於產品製作過程中被設定好,而參數Total_Capacity(總儲存容量)可預設地被設定為由記憶體區塊或記憶體裝置120所能提供之最大儲存容量。
步驟S404: 取得由使用者所輸入之最大寫入資料量MAX_Write之當前設定值。如上所述,使用者可透過主機裝置130的使用者介面輸入其當前所需的最大寫入資料量。主機裝置130可於取得由使用者所輸入之最大寫入資料量之當前設定值後,可進一步透過裝置介面138將此資訊提供給記憶體控制器110。例如,主機裝置130可發出供應商命令(vender command)給記憶體控制器110以配置最大寫入資料量MAX_Write。
步驟S406: 判斷當前設定的最大寫入資料量MAX_Write是否等於記憶體裝置120的全碟(full disk)大小。於本發明之一實施例中,全碟(full disk)大小即為前述由記憶體區塊或記憶體裝置120所能提供之最大儲存容量。若是,執行步驟S408。若否,執行步驟S410。
步驟S408: 將記憶體裝置120設定為全碟模式。於全碟模式下,記憶體控制器110將不再動態調整緩存器大小,直到使用者所輸入之最大寫入資料量MAX_Write小於記憶體裝置120的全碟大小後,再恢復動態調整緩存器大小。
步驟S410: 判斷當前設定的最大寫入資料量MAX_Write是否大於前一次設定的最大寫入資料量MAX_Write。若是,代表使用者需要更多儲存容量,則執行步驟S412。若否,執行步驟S414。
步驟S412: 啟動前景資料重整操作。根據本發明之一實施例,前景資料重整操作為會通知主機裝置130的重整操作,因此,於執行前景資料重整操作時,主機裝置130必須暫停對資料儲存裝置100的存取操作。相對地,背景資料重整操作為不通知主機裝置130的重整操作,記憶體控制器110可於記憶體裝置120閒置時執行資料重整,因此,主機裝置130無須暫停對資料儲存裝置100的存取操作。
步驟S414: 決定緩存器大小,並配置對應數量的記憶體區塊作為既定記憶體區塊。當前可被配置的緩存器的大小的計算可參考先前段落,於此不再贅述。
步驟S416: 資料儲存裝置100執行自我重置。於本發明之一實施例中,自我重置的操作可包括於裝置端主動切斷主機介面118與主機裝置130的連線,並重新與主機裝置130建立連線,迫使主機裝置130重新辨識資料儲存裝置100。如此一來,主機裝置130可再發出讀取容量指令以取得記憶體區塊120的記憶體容量資訊,並可進一步將總儲存容量之數值顯示於主機裝置130之一使用者介面做為主機裝置130所認定之資料儲存裝置100之一最大儲存容量。
如上所述,透過本發明所提出之動態決定緩存器大小的方法,使用者可依其需求決定資料儲存裝置100的使用情境,如果使用者通常的使用是需要高速度而非高容量的,可以根據本發明所提出之動態決定緩存器大小的方法透過設定最大寫入資料量MAX_Write做切換,而當使用情境需要改變的時候,也可以透過類似的方式,讓資料儲存裝置100可以在最大效能與最大空間模式之間做動態的切換。
此外,於本發明之實施例中,使用者可以自行動態決定想要縮小多少可用空間來換取速度。當縮小的使用空間越大,能夠帶來的速度提升就越明顯,藉此可以大幅增進寫入的速度,改善使用者感受。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
131:處理器
132:隨機存取記憶體
133:唯讀記憶體
135:電源電路
138:裝置介面
140:錯誤更正碼引擎
第1圖係顯示根據本發明之一實施例所述之資料儲存系統的方塊圖範例。
第2圖係顯示根據本發明之一實施例所述之動態決定緩存器大小的方法的範例流程圖。
第3圖係顯示根據本發明之一實施例所述之於不同最大寫入資料量的設定之下可被配置的緩存器的大小以及預計發生掉速的時間點的範例表格。
第4圖係顯示根據本發明之一實施例所述之動態決定緩存器大小的方法的詳細流程圖。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
131:處理器
132:隨機存取記憶體
133:唯讀記憶體
135:電源電路
138:裝置介面
140:錯誤更正碼引擎
Claims (15)
- 一種資料儲存裝置,包括: 一記憶體裝置,具有對應之一總儲存容量,並且包含複數記憶體區塊,其中該總儲存容量預設地被設定為由該等記憶體區塊所提供之一最大儲存容量,並且該等記憶體區塊包括用以自一主機裝置接收資料的一或多個既定記憶體區塊;以及 一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,其中響應於一最大寫入資料量之設定,該記憶體控制器根據該最大寫入資料量決定該總儲存容量之一數值,並根據該總儲存容量之該數值與該最大儲存容量決定所述一或多個既定記憶體區塊之一數量。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該最大寫入資料量由一使用者所設定。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器自該主機裝置接收該最大寫入資料量之一當前設定值。
- 如申請專利範圍第1項所述之資料儲存裝置,其中於該記憶體控制器根據該最大寫入資料量決定該總儲存容量之該數值後,響應於接收自該主機裝置之一讀取容量指令,該記憶體控制器以該總儲存容量之該數值取代該最大儲存容量所對應之一數值回覆該主機裝置。
- 如申請專利範圍第4項所述之資料儲存裝置,其中該總儲存容量之該數值小於該最大儲存容量所對應之該數值。
- 如申請專利範圍第4項所述之資料儲存裝置,其中於該記憶體控制器以該總儲存容量之該數值回覆該主機裝置後,該總儲存容量之該數值被顯示於該主機裝置之一使用者介面做為該主機裝置所認定之該資料儲存裝置之一最大儲存容量。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器反覆地根據該最大寫入資料量之一當前設定值決定該總儲存容量之該數值,根據該總儲存容量之該數值與該最大儲存容量動態地決定所述一或多個既定記憶體區塊之該數量。
- 如申請專利範圍第1項所述之資料儲存裝置,其中所述一或多個既定記憶體區塊為單層單元(Single-level cell,縮寫為SLC)記憶體區塊。
- 一種動態決定緩存器大小的方法,包括: 響應於一最大寫入資料量之設定決定一記憶體裝置所對應之一總儲存容量之一數值,其中該記憶體裝置包含複數記憶體區塊,該等記憶體區塊包括作為所述緩存器用以自一主機裝置接收資料的一或多個既定記憶體區塊,並且該最大寫入資料量由一使用者所設定;以及 根據該總儲存容量之該數值與一最大儲存容量決定所述一或多個既定記憶體區塊之一數量,其中該最大儲存容量為由該等記憶體區塊所提供之一最大儲存容量。
- 如申請專利範圍第9項所述之方法,更包括: 自該主機裝置接收該最大寫入資料量之一當前設定值。
- 如申請專利範圍第9項所述之方法,更包括: 響應於接收自該主機裝置之一讀取容量指令以該總儲存容量之該數值取代該最大儲存容量所對應之一數值回覆該主機裝置。
- 如申請專利範圍第11項所述之方法,其中該總儲存容量之該數值小於該最大儲存容量所對應之該數值。
- 如申請專利範圍第11項所述之方法,更包括: 將該總儲存容量之該數值顯示於該主機裝置之一使用者介面做為該主機裝置所認定之該資料儲存裝置之一最大儲存容量。
- 如申請專利範圍第9項所述之方法,其中該總儲存容量之該數值反覆地根據該最大寫入資料量之一當前設定值被決定,並且所述一或多個既定記憶體區塊之該數量動態地根據該總儲存容量之該數值與該最大儲存容量被決定。
- 如申請專利範圍第9項所述之方法,其中所述一或多個既定記憶體區塊為單層單元(Single-level cell,縮寫為SLC)記憶體區塊。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111148027A TWI814666B (zh) | 2022-12-14 | 2022-12-14 | 資料儲存裝置與動態決定緩存器大小的方法 |
CN202310081384.3A CN118193415A (zh) | 2022-12-14 | 2023-01-19 | 数据储存装置与动态决定缓存器大小的方法 |
US18/218,014 US12099745B2 (en) | 2022-12-14 | 2023-07-04 | Data storage device and method for dynamically determining a buffer size |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111148027A TWI814666B (zh) | 2022-12-14 | 2022-12-14 | 資料儲存裝置與動態決定緩存器大小的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI814666B true TWI814666B (zh) | 2023-09-01 |
TW202424717A TW202424717A (zh) | 2024-06-16 |
Family
ID=88965911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111148027A TWI814666B (zh) | 2022-12-14 | 2022-12-14 | 資料儲存裝置與動態決定緩存器大小的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12099745B2 (zh) |
CN (1) | CN118193415A (zh) |
TW (1) | TWI814666B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI456392B (zh) * | 2011-05-31 | 2014-10-11 | Micron Technology Inc | 用於動態記憶體快取大小調整之方法及執行該方法之記憶體裝置 |
TWI587131B (zh) * | 2013-02-04 | 2017-06-11 | 三星電子股份有限公司 | 包含非揮發性記憶體元件之記憶體系統及其程式化方法 |
US20180081590A1 (en) * | 2016-09-22 | 2018-03-22 | Advanced Micro Devices, Inc. | System and method for dynamically allocating memory at a memory controller |
US20190129848A1 (en) * | 2017-10-30 | 2019-05-02 | EMC IP Holding Company LLC | Throttling writes with asynchronous flushing |
US20210109673A1 (en) * | 2019-10-11 | 2021-04-15 | FADU Inc. | Memory controller and storage device including the same |
TW202129510A (zh) * | 2020-01-27 | 2021-08-01 | 南韓商三星電子股份有限公司 | 儲存裝置以及用於加速儲存裝置中的操作的方法 |
CN112905500B (zh) * | 2016-09-19 | 2022-06-14 | 美光科技公司 | 具有包含静态及动态单元的混合高速缓冲存储器的存储器装置及电子系统以及相关方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11861234B2 (en) * | 2022-03-18 | 2024-01-02 | Micron Technology, Inc. | Dynamic adjustment of data storage for enhanced data retention |
CN115904245A (zh) * | 2022-12-16 | 2023-04-04 | 英韧科技(上海)有限公司 | 动态容量缓存加速的ssd设备 |
-
2022
- 2022-12-14 TW TW111148027A patent/TWI814666B/zh active
-
2023
- 2023-01-19 CN CN202310081384.3A patent/CN118193415A/zh active Pending
- 2023-07-04 US US18/218,014 patent/US12099745B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI456392B (zh) * | 2011-05-31 | 2014-10-11 | Micron Technology Inc | 用於動態記憶體快取大小調整之方法及執行該方法之記憶體裝置 |
TWI587131B (zh) * | 2013-02-04 | 2017-06-11 | 三星電子股份有限公司 | 包含非揮發性記憶體元件之記憶體系統及其程式化方法 |
CN112905500B (zh) * | 2016-09-19 | 2022-06-14 | 美光科技公司 | 具有包含静态及动态单元的混合高速缓冲存储器的存储器装置及电子系统以及相关方法 |
US20180081590A1 (en) * | 2016-09-22 | 2018-03-22 | Advanced Micro Devices, Inc. | System and method for dynamically allocating memory at a memory controller |
US20190129848A1 (en) * | 2017-10-30 | 2019-05-02 | EMC IP Holding Company LLC | Throttling writes with asynchronous flushing |
US20210109673A1 (en) * | 2019-10-11 | 2021-04-15 | FADU Inc. | Memory controller and storage device including the same |
TW202129510A (zh) * | 2020-01-27 | 2021-08-01 | 南韓商三星電子股份有限公司 | 儲存裝置以及用於加速儲存裝置中的操作的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20240201892A1 (en) | 2024-06-20 |
CN118193415A (zh) | 2024-06-14 |
TW202424717A (zh) | 2024-06-16 |
US12099745B2 (en) | 2024-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI579693B (zh) | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8843697B2 (en) | Operating method of data storage device | |
TWI700635B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI582776B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI607309B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW202034178A (zh) | 資料儲存裝置與資料處理方法 | |
KR20200006379A (ko) | 컨트롤러 및 그것의 동작방법 | |
CN110390985B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US11042317B2 (en) | Memory system for reducing fragmentation based on sequential index and operating method thereof | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI791981B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW202305598A (zh) | 記憶體緩衝區管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI814666B (zh) | 資料儲存裝置與動態決定緩存器大小的方法 | |
CN114328297B (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
TW201729208A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US11188265B2 (en) | Method for performing storage space management, associated data storage device, and controller thereof | |
TWI711048B (zh) | 快閃記憶體之資料整理方法、控制電路單元與儲存裝置 | |
TWI648629B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI828391B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
CN107229413B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
TWI822398B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
TWI775341B (zh) | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 |