TW201415233A - 使用適應性壓縮比之刷新指令之快速執行 - Google Patents
使用適應性壓縮比之刷新指令之快速執行 Download PDFInfo
- Publication number
- TW201415233A TW201415233A TW102130671A TW102130671A TW201415233A TW 201415233 A TW201415233 A TW 201415233A TW 102130671 A TW102130671 A TW 102130671A TW 102130671 A TW102130671 A TW 102130671A TW 201415233 A TW201415233 A TW 201415233A
- Authority
- TW
- Taiwan
- Prior art keywords
- storage
- memory
- volatile
- processor
- volatile memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral 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/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
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
Abstract
一種方法包括在一儲存裝置中接收一或多個儲存指令及至少一刷新指令,該儲存裝置包括一非揮發性記憶體及用於緩衝經接收以供儲存於該非揮發性記憶體中之資料之一揮發性緩衝器。該刷新指令指示該儲存裝置將該揮發性緩衝器中緩衝之該資料交付給該非揮發性記憶體。根據一第一儲存規則而執行該等儲存指令。根據一第二儲存規則而執行該刷新指令,該第二儲存規則相對於該第一儲存規則具有較小延時。
Description
本發明大體上係關於記憶體裝置,且特別係關於用於刷新指令之快速執行之方法及系統。
一些非揮發性記憶體系統包含一揮發性緩衝器,該揮發性緩衝器用於臨時地緩衝擱置中以供儲存於非揮發性記憶體中之資料。一些儲存協定支援一刷新指令,該刷新指令指示儲存裝置將揮發性記憶體中之任何資料傳送至非揮發性記憶體。
舉例而言,NVM Express協定中支援刷新指令。舉例而言,以引用方式併入本文中之「NVM Express」(2011年7月12日,修訂本1.0b,章節6.7)中指定NVM Express中之刷新指令。串列ATA(Serial ATA;SATA)協定亦指定被稱為「FLUSH CACHE」及「FLUSH CACHE EXT」之刷新指令。小型電腦系統介面(Small Computer System Interface;SCSI)協定指定被稱為「SYNCHRONIZE CACHE」之刷新指令。
本文所描述的本發明之一實施例提供一種在一儲存裝置中之方法,該儲存裝置包括一非揮發性記憶體及用於緩衝經接收以供儲存於該非揮發性記憶體中之資料之一揮發性緩衝器。該方法包括在該儲存
裝置中接收一或多個儲存指令及至少一刷新指令。該刷新指令指示該儲存裝置將該揮發性緩衝器中緩衝之該資料交付給該非揮發性記憶體。根據一第一儲存規則而執行該等儲存指令。根據一第二儲存規則而執行該刷新指令,該第二儲存規則相對於該第一儲存規則具有較小延時。
在一些實施例中,根據該第二儲存規則而執行該刷新指令包括將每壓縮操作的待執行於該非揮發性記憶體中之程式化操作之一數目限制至一預定義比率,且根據該第一儲存規則而執行該等儲存指令包括准許該數目超過該預定義比率。
根據該第一儲存規則而執行該等儲存指令可包括強制一替代性比率,該替代性比率大於該預定義比率。在一實施例中,限制每壓縮操作的程式化操作之該數目包括取決於該非揮發性記憶體中可用之空閒記憶體區塊之一計數而修改該預定義比率。
在一些實施例中,該方法包括獨佔式地指派該非揮發性記憶體中之一或多個記憶體區塊以用於加快該刷新指令,且執行該刷新指令包括將該揮發性緩衝器中緩衝之該資料交付給該等經獨佔式指派記憶體區塊,且隨後將該經交付資料自該等經獨佔式指派記憶體區塊傳送至該非揮發性記憶體中之替代性儲存位置。在一實施例中,將該資料交付給該等經獨佔式指派記憶體區塊包括使用一低延時儲存組態將該資料儲存於該等經獨佔式指派記憶體區塊中。
根據本發明之一實施例,另外提供一種儲存裝置,該儲存裝置包括:一非揮發性記憶體;一揮發性緩衝器,其用於緩衝經接收以供儲存於該非揮發性記憶體中之資料;及一處理器。該處理器經組態以:接收一或多個儲存指令及至少一刷新指令,該至少一刷新指令指示該儲存裝置將該揮發性緩衝器中緩衝之該資料交付給該非揮發性記憶體;根據一第一儲存規則而執行該等儲存指令;且根據一第二儲存
規則而執行該刷新指令,該第二儲存規則相對於該第一儲存規則具有較小延時。
根據本發明之一實施例,亦提供一種記憶體控制器,該記憶體控制器包括一介面及一處理器。該介面經組態用於與一非揮發性記憶體通信。該處理器經組態以:在一揮發性緩衝器中緩衝經接收以供儲存於該非揮發性記憶體中之資料;接收一或多個儲存指令及至少一刷新指令,該至少一刷新指令指示該記憶體控制器將該揮發性緩衝器中緩衝之該資料交付給該非揮發性記憶體;根據一第一儲存規則而執行該等儲存指令;且根據一第二儲存規則而執行該刷新指令,該第二儲存規則相對於該第一儲存規則具有較小延時。
根據本發明之一實施例,進一步提供一種系統,該系統包括一主機及一儲存裝置。該儲存裝置包括:一非揮發性記憶體;一揮發性緩衝器,其用於緩衝自主機接收以供儲存於該非揮發性記憶體中之資料;及一處理器。該處理器經組態以:自主機接收一或多個儲存指令及至少一刷新指令,該至少一刷新指令指示該儲存裝置將該揮發性緩衝器中緩衝之該資料交付給該非揮發性記憶體;根據一第一儲存規則而執行該等儲存指令;且根據一第二儲存規則而執行該刷新指令,該第二儲存規則相對於該第一儲存規則具有較小延時。
自本發明之實施例之以下詳細描述連同圖式,將更完全地理解本發明,在該等圖式中:
20‧‧‧固態硬碟(SSD)
24‧‧‧主機
28‧‧‧NAND快閃記憶體裝置/非揮發性記憶體裝置
32‧‧‧揮發性寫入緩衝器
36‧‧‧SSD控制器
40‧‧‧主機介面
44‧‧‧記憶體介面
48‧‧‧處理器
圖1為根據本發明之一實施例的示意性地說明記憶體系統之方塊圖;及圖2為根據本發明之一實施例的示意性地說明用於刷新指令之快速執行之方法的流程圖。
一些非揮發性記憶體系統包含一揮發性緩衝器,該揮發性緩衝器用於臨時地緩衝擱置中以供儲存於非揮發性記憶體中之資料。舉例而言,一些固態硬碟(Solid State Drive;SSD)自主機接收資料、最初在揮發性緩衝器中緩衝資料,且稍後將資料傳送至非揮發性記憶體。通常,一旦將資料儲存於揮發性緩衝器中,常常是在將資料成功地交付給非揮發性記憶體之前,SSD就將應答發送至主機。
此類別之緩衝顯著地增加儲存效能。另一方面,若電力受到破壞,則即使已經將成功儲存應答至主機,被緩衝但尚未交付給非揮發性記憶體之資料亦可能會遺失。此類情境可造成資料不一致且因此應被防止。
為了防止此等及其他情境,一些儲存協定支援一刷新指令,該刷新指令指示儲存裝置將所有經緩衝資料交付給非揮發性記憶體。僅當已將揮發性緩衝器中之所有資料成功地傳送至非揮發性記憶體時,儲存裝置才應答刷新指令。刷新指令通常為封鎖指令(blocking command),亦即,主機作業系統及檔案系統在刷新操作完成以前不會發送新寫入指令。因此,執行刷新指令可使儲存裝置終止達長時間段。
本文所描述的本發明之實施例提供用於在諸如SSD之非揮發性記憶體系統中實施刷新指令之改良型方法及系統。在所揭示實施例中,儲存裝置中之處理器管理自主機接受之指令之執行。詳言之,處理器在執行儲存指令時應用某一儲存規則,且在執行刷新指令時應用具有較小延時之另一儲存規則。結果,由刷新指令造成之封鎖時間縮減。
在一實例實施例中,相比於在儲存指令期間,在刷新指令之執行期間,處理器每程式化操作執行較少壓縮操作。壓縮操作(亦被稱為「記憶體回收(garbage collection)」)將有效資料自非揮發性記憶體
之部分有效記憶體區塊複製至新記憶體區塊中,以便使連續記憶體空間空閒以用於達成新儲存。藉由在刷新指令執行期間臨時地限制壓縮操作之數目,處理器能夠增加將資料自揮發性記憶體傳送至非揮發性記憶體之速率。因此,由刷新指令造成之封鎖時間縮減。
在一些實施例中,處理器在執行儲存指令時強制可變程式化-壓縮比。根據某一規則,該比依據非揮發性記憶體中剩餘之空閒記憶體區塊之數目而變化。當執行刷新指令時,處理器切換至強制較高程式化-壓縮比之替代性規則。
在一些實施例中,處理器在刷新指令期間獨佔式地指派非揮發性記憶體中之空閒記憶體區塊集區以用於儲存自揮發性緩衝器傳送之資料。藉由使用此集區,可以較高速度來執行刷新指令,且可進一步縮減該等刷新指令之封鎖時間。
圖1為根據本發明之一實施例的示意性地說明記憶體系統(在本實例中為固態硬碟(SSD)20)之方塊圖。SSD 20代表主機24而儲存資料。舉例而言,SSD 20可安裝於行動或個人電腦中,在此狀況下,主機24包含該電腦之中央處理單元(CPU)晶片組。或者,SSD 20可與任何其他合適主機一起使用。雖然本文所描述之實施例主要提及SSD,但所揭示技術可與諸如以下各者的各種其他種類之記憶體系統一起使用:企業儲存裝置;行動電話;數位相機;行動計算裝置,諸如,膝上型電腦、平板電腦或個人數位助理(PDA);媒體播放器;卸除式記憶體卡或裝置;或任何其他合適資料儲存系統。
SSD 20代表主機24而將資料儲存於非揮發性記憶體中,在本實例中儲存於一或多個NAND快閃記憶體裝置28中。在替代性實施例中,SSD 20中之非揮發性記憶體可包含任何其他合適類型之非揮發性記憶體,諸如,NOR快閃記憶體、電荷捕獲快閃記憶體(Charge Trap
Flash;CTF)、相變RAM(PRAM)、磁阻RAM(MRAM)或鐵電RAM(FeRAM)。
SSD控制器36執行SSD之各種儲存及管理任務,且尤其是使用下文所描述之方法來執行刷新指令。SSD控制器通常亦被稱作記憶體控制器。SSD控制器36包含用於與主機24通信之主機介面40、用於與快閃記憶體裝置28通信之記憶體介面44,及進行本文所描述之方法之處理器48。
SSD 20進一步包含用於臨時地緩衝自主機24接收以供儲存之資料之揮發性寫入緩衝器32。通常,傳入資料最初儲存於緩衝器32中且稍後複製至其在非揮發性記憶體裝置28中之指定儲存位置。複製操作通常係使用直接記憶體存取(Direct Memory Access;DMA)予以實施,但亦可由處理器48執行。
在本實例中,緩衝器32實施於隨機存取記憶體(Random Access Memory;RAM)中,可能地亦實施於由處理器48出於額外目的而使用之RAM裝置中。在圖1之實施例中,RAM保持緩衝器32被展示為SSD控制器36之部分,但RAM可替代性地與SSD控制器分離。在各種實施例中,揮發性記憶體保持緩衝器32可包含任何合適類型之揮發性記憶體,諸如,動態RAM(DRAM)、雙資料速率DRAM(DDR DRAM)或靜態RAM(SRAM)。
SSD控制器36且尤其是處理器48可以硬體予以實施。或者,SSD控制器可包含執行合適軟體或硬體元件及軟體元件之組合的微處理器。
圖1之組態為一例示性組態,其係純粹地出於概念清晰性起見而予以展示。亦可使用任何其他合適SSD或其他記憶體系統組態。已出於清晰性起見而自該圖省略對於理解本發明之原理並非必要之元件,諸如,各種介面、定址電路、計時與排序電路及除錯電路。在一些應
用(例如,非SSD應用)中,SSD控制器36之功能係由合適記憶體控制器進行。
在圖1所展示之例示性系統組態中,記憶體裝置28及SSD控制器48被實施為分離積體電路(Integrated Circuit;IC)。然而,在替代性實施例中,記憶體裝置及SSD控制器可整合於單一多晶片封裝(Multi-Chip Package;MCP)或系統單晶片(System on Chip;SoC)中之分離半導體晶粒上,且可由內部匯流排互連。再者,SSD控制器電路系統之一些或全部可駐存於經安置有記憶體裝置28中之一或多者的同一晶粒上。再者,SSD控制器36之功能性之一些或全部可以軟體予以實施,且由主機24之處理器或其他元件進行。在一些實施例中,主機24及SSD控制器36可製造於同一晶粒上,或同一裝置封裝中之分離晶粒上。
在一些實施例中,SSD控制器36包含一般用途處理器,該一般用途處理器係以軟體予以程式化以進行本文所描述之功能。可經由(例如)網路而將軟體以電子形式下載至處理器,或者或另外,可將軟體提供於及/或儲存於諸如磁性、光學或電子記憶體之非暫時性有形媒體上。
在一些實施例中,SSD 20之處理器48藉由首先將傳入資料儲存於揮發性緩衝器32中且稍後將經緩衝資料傳送至非揮發性記憶體裝置28而達成高寫入效能。然而,此類別之揮發性緩衝可在電力中斷之狀況下造成資料不一致。
舉例而言,考慮SSD 24之電力供應在緩衝器32中之一些資料尚未成功地傳送至非揮發性記憶體裝置28時受到破壞的情境。一方面,此資料通常將會遺失。另一方面,處理器48已經向主機24應答到資料儲存成功。結果,資料不一致或同步缺乏可顯現於主機處:主機可將
資料看作經成功儲存,事實上此時資料已遺失。
為了防止此類情境,主機24與SSD 20之間的儲存協定包含一刷新指令。該刷新指令係由主機發出,且指示SSD 20中之處理器48將揮發性緩衝器32中之所有資料傳送至非揮發性記憶體裝置28。僅當已將緩衝器32中之所有資料成功地傳送及交付給非揮發性記憶體時,處理器48才應答刷新指令。
刷新指令通常為封鎖指令,亦即,在刷新操作完成以前將不會將新寫入指令發送至處理器48。因此,執行刷新指令可使儲存裝置終止達長時間段,有時為大約若干秒。舉例而言,刷新指令之持續時間可取決於經緩衝資料之量且取決於記憶體裝置28中之空閒記憶體空間。
在一些實施例中,處理器48藉由在刷新指令執行期間應用具有經縮減延時之儲存規則或模式而縮減由刷新指令造成之封鎖時間。本文所描述之實施例主要提及在刷新指令執行期間限制壓縮操作之數目。然而,在替代性實施例中,處理器48可應用使刷新指令執行相比於儲存指令執行具有較小延時之任何其他合適規則或模式。在以下描述中,術語「儲存指令」指代自主機接收且不為刷新指令之任何指令,例如,寫入指令或讀取指令。術語「主機指令」指代自主機接收以供執行於SSD中之任何指令,包括儲存指令及刷新指令兩者。
在典型快閃記憶體中,資料係以頁為單位而寫入至記憶體裝置28,但抹除應用於全部記憶體區塊。資料僅寫入至經抹除頁,且因此沒有可能在適當位置中更新資料。更新資料涉及將經更新資料寫入至快閃記憶體中之另一實體儲存位置、將資料之先前版本標記為無效,及動態地更新邏輯至實體位址映射,該映射將資料之邏輯位址轉譯成經儲存有資料之實體儲存位置。
由於快閃記憶體之此等特性,記憶體裝置28之記憶體區塊逐漸
地累積無效資料頁,該等無效資料頁之經更新版本已儲存於其他實體儲存位置中。為了縮減無效頁之數目,SSD控制器36之處理器48進行一壓縮或「記憶體回收」程序。此背景程序選擇一或多個記憶體區塊(被稱作來源區塊)以供壓縮、將有效資料自選定來源區塊複製至一或多個其他區塊(被稱作目標區塊)中之其他儲存位置,且接著抹除來源區塊。經抹除區塊接著準備用於後續程式化。壓縮程序確保:在任何給定時間,預定義數目個記憶體區塊被抹除且可用於新程式化。本文將此等記憶體區塊稱作空閒區塊。
可瞭解,壓縮程序涉及可以寫入自主機到達之新資料之程式化操作為代價而出現的大數目個複製操作。換言之,壓縮程序之複製操作及新資料之程式化操作爭奪SSD中之相同處理資源。
在一些實施例中,處理器48調節程式化操作及壓縮操作之速率,以便維持所要數目個空閒區塊。在一實例實施例中,當空閒區塊之數目降至低於預定義臨限值時,處理器48終止任何新程式化操作,且僅執行壓縮操作。由於壓縮操作增加空閒區塊之數目,故空閒區塊之數目很快就超過預定義臨限值,且處理器48允許繼續進行新程式化操作。
更一般化地,處理器48可使用定義空閒記憶體區塊之數目範圍的兩個或兩個以上預定義臨限值。在每一範圍內,處理器48將每壓縮操作的程式化操作之數目限制至某一程式化-壓縮比。(術語「程式化-壓縮比」通常指代相當資料大小之程式化及複製。舉例而言,該比可被定義為:
通常,隨著空閒區塊之數目減低,處理器48允許每壓縮操作之較少程式化操作,且反之亦然。下表給出五個範圍(四個臨限值)及對
應程式化-壓縮比之實例組態:
在表1之組態中,當空閒區塊之數目(N)為5或更低時,處理器停止所有新程式化且僅允許壓縮。在另一極端情況下,當空閒區塊之數目超過20時,處理器48停止壓縮且僅執行程式化。在N之中間值中,處理器48應用中間程式化-壓縮比。
考慮處理器48使用表1之組態且執行數個隨機(亦即,非循序)寫入指令的實例情境。當空閒區塊之數目降至低於最低臨限值時,由主機24發出刷新指令。此時,處理器48不准許新儲存指令,且在空閒區塊之數目升至高於「僅壓縮」臨限值以前不能將緩衝器32中之資料交付給記憶體裝置28。在此情境中,主機通常將必須等待長時間段以使壓縮程序結束。僅在彼時,刷新指令才將會實際上將經緩衝資料傳送至非揮發性記憶體且接著應答。所揭示技術克服此及其他有問題的情境。
在一些實施例中,對於給定數目個空閒區塊,處理器48在執行儲存指令時強制較小程式化-壓縮比,且在執行刷新指令時強制較大程式化-壓縮比。藉由在刷新指令執行期間允許每壓縮操作之較多程式化操作,處理器能夠以高速度將經緩衝資料自緩衝器32傳送至快閃記憶體裝置28。結果,刷新指令之封鎖時間顯著地縮減。
在無此機制的情況下,封鎖時間可達到大約500mS,且在一些狀況下高達若干秒。當使用所揭示機制時,可將封鎖時間縮減至大約10mS。純粹地作為實例而給出此等圖,且可在替代性實施例中達成
各種其他封鎖時間。
在一些實施例中,在儲存指令執行期間,處理器48將每壓縮操作的程式化操作之數目限制至某一比,但允許在刷新指令執行期間超過該比。在一些實施例中,在刷新指令執行期間,處理器48強制大於在儲存指令執行期間使用之比的程式化-壓縮比。
當使用諸如上表1中之多個臨限值時,處理器48可強制兩個不同組態--在儲存指令執行期間之一個組態,及在刷新指令執行期間之另一組態。對於給定數目個空閒記憶體區塊,在刷新指令執行期間應用之程式化-壓縮比大於在儲存指令執行期間應用之比。
在一實例實施例中,處理器48在儲存指令執行期間強制上表1之組態,且在刷新指令執行期間強制下表2之組態:
表2之實例假定寫入緩衝器32之大小小於三個記憶體區塊。當刷新指令完成且被應答時,處理器48還原回至上表1以用於後續儲存指令。純粹地作為實例而展示上表1及2之組態。在替代性實施例中,可使用程式化-壓縮比之任何其他合適組態。
在一些實施例中,處理器48在刷新指令期間獨佔式地指派非揮發性記憶體裝置28中之一或多個空閒記憶體區塊之集區以用於儲存自緩衝器32傳送之資料。當執行刷新指令時,處理器48將資料自緩衝器32複製至此等經獨佔式指派區塊。處理器可稍後將資料自經獨佔式指派區塊傳送至裝置28中之替代性儲存位置,使得區塊集區再次可用於
下一刷新指令。此機制增加刷新指令執行之速度。
在一些實施例中,處理器48藉由使用低延時儲存組態將資料儲存於經獨佔式指派區塊中而進一步加速刷新指令執行。舉例而言,處理器可使用@多位階記憶體胞(Multi-Level Cell;MLC)組態(亦即,以每記憶體胞之多個位元的儲存密度)來儲存正常資料。然而,當將資料自緩衝器32傳送至經獨佔式指派區塊集區時,處理器可使用單位階記憶體胞(Single-Level Cell;SLC)組態(亦即,以每記憶體胞之一個位元的儲存密度)來儲存資料。
由於SLC儲存顯著地快於MLC儲存,故此技術顯著地縮減刷新指令之執行時間。通常,處理器48稍後將資料自區塊集區傳送至替代性儲存位置,且使用MLC來儲存資料。
圖2為根據本發明之一實施例的示意性地說明用於刷新指令之快速執行之方法的流程圖。該方法始於:在集區指派步驟60處,SSD控制器36之處理器48在刷新指令期間指派非揮發性記憶體裝置28中之空白記憶體區塊集區以供使用。
在規則定義步驟64處,處理器48定義第一儲存規則及第二儲存規則以分別在儲存指令執行期間及在刷新指令執行期間予以應用。第一規則指定一或多個程式化-壓縮比以在儲存指令執行期間予以使用(例如,上表1)。第二規則指定一或多個程式化-壓縮比以在刷新指令執行期間予以使用(例如,上表2)。對於給定數目個空閒記憶體區塊,由第二規則指定之程式化-壓縮比大於由第一規則指定之程式化-壓縮比。
在指令輸入步驟68處,處理器48自主機24接收指令以供執行於SSD中。在檢查步驟72處,處理器48檢查指令包含儲存指令抑或刷新指令。若指令包含儲存指令,則在第一規則應用步驟76處,處理器48應用第一儲存規則。若指令包含刷新指令,則在第二規則應用步驟80
處,處理器48應用第二儲存規則。
在執行步驟84處,處理器48根據適用之第一或第二規則而執行經接收指令。該方法接著循環回至以上步驟68以用於處理下一主機指令。
應瞭解,作為實例而引證上文所描述之實施例,且本發明不限於上文已特定地展示及描述之內容。實情為,本發明之範疇包括上文所描述之各種特徵之組合及子組合兩者,以及該等特徵之變化及修改,其將為熟習此項技術者在閱讀前述描述後即想到且在先前技術中未予以揭示。以引用方式併入本專利申請案中之文件應被認為是本申請案之整體部分,惟如下情形除外:在此等併入式文件中以與本說明書中明確地或隱含地作出之定義衝突之方式來定義任何術語的程度上,僅應考慮本說明書中之定義。
20‧‧‧固態硬碟(SSD)
24‧‧‧主機
28‧‧‧NAND快閃記憶體裝置/非揮發性記憶體裝置
32‧‧‧揮發性寫入緩衝器
36‧‧‧SSD控制器
40‧‧‧主機介面
44‧‧‧記憶體介面
48‧‧‧處理器
Claims (18)
- 一種方法,其包含:在包括一非揮發性記憶體及用於緩衝經接收以供儲存於該非揮發性記憶體中之資料之一揮發性緩衝器的一儲存裝置中,接收一或多個儲存指令及至少一刷新指令,該至少一刷新指令指示該儲存裝置將該揮發性緩衝器中緩衝之該資料交付給該非揮發性記憶體;根據一第一儲存規則而執行該等儲存指令;及根據一第二儲存規則而執行該刷新指令,該第二儲存規則相對於該第一儲存規則具有較小延時。
- 如請求項1之方法,其中根據該第二儲存規則而執行該刷新指令包含:將每壓縮操作的待執行於該非揮發性記憶體中之程式化操作之一數目限制至一預定義比率,且其中根據該第一儲存規則而執行該等儲存指令包含准許該數目超過該預定義比率。
- 如請求項2之方法,其中根據該第一儲存規則而執行該等儲存指令包含:強制一替代性比率,該替代性比率大於該預定義比率。
- 如請求項2之方法,其中限制每壓縮操作的程式化操作之該數目包含:取決於該非揮發性記憶體中可用之空閒記憶體區塊之一計數而修改該預定義比率。
- 如請求項1之方法,且其包含獨佔式地指派該非揮發性記憶體中之一或多個記憶體區塊以用於加快該刷新指令,其中執行該刷新指令包含將該揮發性緩衝器中緩衝之該資料交付給該等經獨佔式指派記憶體區塊,且隨後將該經交付資料自該等經獨佔式指派記憶體區塊傳送至該非揮發性記憶體中之替代性儲存位 置。
- 如請求項5之方法,其中將該資料交付給該等經獨佔式指派記憶體區塊包含使用一低延時儲存組態將該資料儲存於該等經獨佔式指派記憶體區塊中。
- 一種儲存系統,其包含:一非揮發性記憶體;一揮發性緩衝器,其用於緩衝經接收以供儲存於該非揮發性記憶體中之資料;及一處理器,其經組態以:接收一或多個儲存指令及至少一刷新指令,該至少一刷新指令指示該儲存裝置將該揮發性緩衝器中緩衝之該資料交付給該非揮發性記憶體;根據一第一儲存規則而執行該等儲存指令;且根據一第二儲存規則而執行該刷新指令,該第二儲存規則相對於該第一儲存規則具有較小延時。
- 如請求項7之儲存系統,其中該處理器經組態以藉由將每壓縮操作的待執行於該非揮發性記憶體中之程式化操作之一數目限制至一預定義比率根據該第二儲存規則而執行該刷新指令,且藉由准許該數目超過該預定義比率根據該第一儲存規則而執行該等儲存指令。
- 如請求項8之儲存系統,其中該處理器經組態以藉由強制一替代性比率根據該第一儲存規則而執行該等儲存指令,該替代性比率大於該預定義比率。
- 如請求項8之儲存系統,其中該處理器經組態以取決於該非揮發性記憶體中可用之空閒記憶體區塊之一計數而修改該預定義比率。
- 如請求項7之儲存系統,其中該處理器經組態以獨佔式地指派該非揮發性記憶體中之一或多個記憶體區塊以用於加快該刷新指 令,且藉由將該揮發性緩衝器中緩衝之該資料交付給該等經獨佔式指派記憶體區塊且隨後將該經交付資料自該等經獨佔式指派記憶體區塊傳送至該非揮發性記憶體中之替代性儲存位置而執行該刷新指令。
- 如請求項11之儲存系統,其中該處理器經組態以使用一低延時儲存組態將該資料儲存於該等經獨佔式指派記憶體區塊中。
- 一種記憶體控制器,其包含:一介面,其用於與一非揮發性記憶體通信;及一處理器,其經組態以:在一揮發性緩衝器中緩衝經接收以供儲存於該非揮發性記憶體中之資料;接收一或多個儲存指令及至少一刷新指令,該至少一刷新指令指示該記憶體控制器將該揮發性緩衝器中緩衝之該資料交付給該非揮發性記憶體;根據一第一儲存規則而執行該等儲存指令;且根據一第二儲存規則而執行該刷新指令,該第二儲存規則相對於該第一儲存規則具有較小延時。
- 如請求項13之記憶體控制器,其中該處理器經組態以藉由將每壓縮操作的待執行於該非揮發性記憶體中之程式化操作之一數目限制至一預定義比率根據該第二儲存規則而執行該刷新指令,且藉由准許該數目超過該預定義比率根據該第一儲存規則而執行該等儲存指令。
- 如請求項14之記憶體控制器,其中該處理器經組態以藉由強制一替代性比率根據該第一儲存規則而執行該等儲存指令,該替代性比率大於該預定義比率。
- 如請求項14之記憶體控制器,其中該處理器經組態以取決於該非揮發性記憶體中可用之空閒記憶體區塊之一計數而修改該預定義比率。
- 如請求項13之記憶體控制器,其中該處理器經組態以獨佔式地指派該非揮發性記憶體中之一或多個記憶體區塊以用於加快該刷新指令,且藉由將該揮發性緩衝器中緩衝之該資料交付給該等經獨佔式指派記憶體區塊且隨後將該經交付資料自該等經獨佔式指派記憶體區塊傳送至該非揮發性記憶體中之替代性儲存位置而執行該刷新指令。
- 如請求項17之記憶體控制器,其中該處理器經組態以使用一低延時儲存組態將該資料儲存於該等經獨佔式指派記憶體區塊中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/595,806 US20140059271A1 (en) | 2012-08-27 | 2012-08-27 | Fast execution of flush commands using adaptive compaction ratio |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201415233A true TW201415233A (zh) | 2014-04-16 |
Family
ID=49084775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102130671A TW201415233A (zh) | 2012-08-27 | 2013-08-27 | 使用適應性壓縮比之刷新指令之快速執行 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20140059271A1 (zh) |
EP (1) | EP2703995A1 (zh) |
KR (1) | KR101497826B1 (zh) |
CN (1) | CN103631728A (zh) |
TW (1) | TW201415233A (zh) |
WO (1) | WO2014035756A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10133570B2 (en) | 2014-09-19 | 2018-11-20 | Intel Corporation | Processors, methods, systems, and instructions to select and consolidate active data elements in a register under mask into a least significant portion of result, and to indicate a number of data elements consolidated |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996889B2 (en) * | 2013-03-29 | 2015-03-31 | Dropbox, Inc. | Portable computing device with methodologies for client-side analytic data collection |
WO2015015592A1 (ja) * | 2013-07-31 | 2015-02-05 | 株式会社日立製作所 | 計算機システム及び計算機システム制御方法 |
US10346048B2 (en) * | 2015-04-10 | 2019-07-09 | Samsung Electronics Co., Ltd. | Electronic system with storage management mechanism and method of operation thereof |
US9946496B2 (en) * | 2015-07-27 | 2018-04-17 | Elastifile Ltd. | SSD with non-blocking flush command |
TWI635495B (zh) | 2016-02-05 | 2018-09-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
TWI607457B (zh) * | 2016-06-28 | 2017-12-01 | 光寶電子(廣州)有限公司 | 固態儲存裝置及其資料寫入方法 |
KR102680390B1 (ko) | 2016-10-12 | 2024-07-03 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
US10489288B2 (en) | 2017-01-25 | 2019-11-26 | Samsung Electronics Co., Ltd. | Algorithm methodologies for efficient compaction of overprovisioned memory systems |
KR102450514B1 (ko) * | 2017-09-19 | 2022-10-05 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 그것을 포함하는 저장 장치의 동작 방법 |
CN108170379A (zh) * | 2017-12-28 | 2018-06-15 | 深圳忆联信息系统有限公司 | 一种提升ssd稳态时写命令服务质量的方法及ssd |
KR102529710B1 (ko) * | 2018-02-19 | 2023-05-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN108595264A (zh) * | 2018-04-10 | 2018-09-28 | 平安科技(深圳)有限公司 | 刷新任务分配方法、电子设备及计算机可读存储介质 |
KR102624911B1 (ko) * | 2018-06-13 | 2024-01-12 | 삼성전자주식회사 | 개선된 메타 데이터 관리를 통한 플래시 메모리의 내구성 향상 방법 |
KR102605566B1 (ko) * | 2018-11-22 | 2023-11-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11061612B2 (en) * | 2019-05-20 | 2021-07-13 | Micron Technology, Inc. | Internal communication interface management |
US20230342042A1 (en) * | 2022-04-25 | 2023-10-26 | Western Digital Technologies, Inc. | Securing a data storage device against rogue hosts |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080320209A1 (en) * | 2000-01-06 | 2008-12-25 | Super Talent Electronics, Inc. | High Performance and Endurance Non-volatile Memory Based Storage Systems |
KR100725410B1 (ko) * | 2006-01-20 | 2007-06-07 | 삼성전자주식회사 | 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법 |
US7711890B2 (en) * | 2006-06-06 | 2010-05-04 | Sandisk Il Ltd | Cache control in a non-volatile memory device |
EP1988474A1 (en) * | 2007-05-04 | 2008-11-05 | Axalto SA | System and method of managing indexation of flash memory |
CN101303845A (zh) * | 2007-05-10 | 2008-11-12 | 智多微电子(上海)有限公司 | 一种控制图像数据写入缓冲单元及读取的控制装置和方法 |
TWI385516B (zh) * | 2008-08-12 | 2013-02-11 | Phison Electronics Corp | 快閃記憶體儲存系統及其資料寫入方法 |
US8205063B2 (en) * | 2008-12-30 | 2012-06-19 | Sandisk Technologies Inc. | Dynamic mapping of logical ranges to write blocks |
US8595572B2 (en) * | 2009-04-08 | 2013-11-26 | Google Inc. | Data storage device with metadata command |
US20100287217A1 (en) * | 2009-04-08 | 2010-11-11 | Google Inc. | Host control of background garbage collection in a data storage device |
EP2476039B1 (en) * | 2009-09-09 | 2016-10-26 | SanDisk Technologies LLC | Apparatus, system, and method for power reduction management in a storage device |
TWI385523B (zh) * | 2009-11-06 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的資料備份方法及其控制器與儲存系統 |
JP2011192260A (ja) * | 2010-02-16 | 2011-09-29 | Toshiba Corp | 半導体記憶装置 |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
US8799561B2 (en) * | 2012-07-27 | 2014-08-05 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
-
2012
- 2012-08-27 US US13/595,806 patent/US20140059271A1/en not_active Abandoned
-
2013
- 2013-08-21 WO PCT/US2013/055949 patent/WO2014035756A1/en active Application Filing
- 2013-08-26 EP EP13181719.9A patent/EP2703995A1/en not_active Withdrawn
- 2013-08-27 KR KR1020130101970A patent/KR101497826B1/ko active IP Right Grant
- 2013-08-27 TW TW102130671A patent/TW201415233A/zh unknown
- 2013-08-27 CN CN201310485840.7A patent/CN103631728A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10133570B2 (en) | 2014-09-19 | 2018-11-20 | Intel Corporation | Processors, methods, systems, and instructions to select and consolidate active data elements in a register under mask into a least significant portion of result, and to indicate a number of data elements consolidated |
Also Published As
Publication number | Publication date |
---|---|
WO2014035756A1 (en) | 2014-03-06 |
US20140059271A1 (en) | 2014-02-27 |
KR101497826B1 (ko) | 2015-03-02 |
EP2703995A1 (en) | 2014-03-05 |
CN103631728A (zh) | 2014-03-12 |
KR20140027894A (ko) | 2014-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201415233A (zh) | 使用適應性壓縮比之刷新指令之快速執行 | |
US11593259B2 (en) | Directed sanitization of memory | |
US9740419B2 (en) | Methods and apparatus to preserve data of a solid state drive during a power loss event | |
US11030093B2 (en) | High efficiency garbage collection method, associated data storage device and controller thereof | |
US20170286290A1 (en) | Efficient buffering for a system having non-volatile memory | |
US9122401B2 (en) | Efficient enforcement of command execution order in solid state drives | |
JP5907255B2 (ja) | Lsb及びmsbページにおける選択的データ記憶 | |
TWI409633B (zh) | 快閃記憶體儲存裝置、其控制器與資料寫入方法 | |
TWI735918B (zh) | 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置 | |
TWI516928B (zh) | 主機協助之記憶體區塊壓實 | |
US20140095555A1 (en) | File management device and method for storage system | |
US20170092366A1 (en) | Operating method of nonvolatile memory system | |
TWI446349B (zh) | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 | |
US20170228191A1 (en) | Systems and methods for suppressing latency in non-volatile solid state devices | |
WO2016069196A1 (en) | Method and system for throttling power consumption | |
US20170185354A1 (en) | Techniques for a Write Transaction at a Storage Device | |
CN102708058A (zh) | 执行ftl功能的非易失性存储装置及其控制方法 | |
TWI692688B (zh) | 快閃記憶體控制器及相關電子裝置 | |
US11573891B2 (en) | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device | |
KR102330394B1 (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
TW201102812A (en) | A storage device and data processing method thereof | |
TWI852615B (zh) | 藉助於專用資訊控制來進行記憶體裝置的垃圾收集管理之方法、記憶體控制器、記憶體裝置以及電子裝置 | |
US10923178B1 (en) | Data storage with improved write performance for preferred user data | |
KR20240052174A (ko) | 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법 |