TWI786288B - 儲存裝置、儲存裝置的控制方法及記錄媒體 - Google Patents
儲存裝置、儲存裝置的控制方法及記錄媒體 Download PDFInfo
- Publication number
- TWI786288B TWI786288B TW108112380A TW108112380A TWI786288B TW I786288 B TWI786288 B TW I786288B TW 108112380 A TW108112380 A TW 108112380A TW 108112380 A TW108112380 A TW 108112380A TW I786288 B TWI786288 B TW I786288B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage device
- data
- data movement
- internal data
- memory
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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
-
- 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/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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0653—Monitoring storage devices or 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- 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
- 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
- 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/7211—Wear leveling
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)
- Memory System (AREA)
- Vehicle Body Suspensions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種儲存裝置的控制方法,其包括以下步驟:(a)藉由一儲存裝置之一儲存裝置控制器判斷儲存裝置是否需要執行內部資料移動;(b)若儲存裝置需要執行內部資料移動,基於內部資料移動請求中的至少部分及儲存裝置之空閒頁的數目而決定一資料移動分配比;以及(c)分配至少一個編程時間來完成前述內部資料移動請求中的至少部分的一第一資料數目的內部資料移動操作以及一第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目。
Description
本發明係關於一種電子裝置,更特別的是關於一種儲存裝置、儲存裝置的控制方法及記錄媒體。
由於非揮發性儲存裝置儲存之資料在斷電後也不會消失,且具有省電與體積小的特性,故此非揮發性儲存裝置如基於快閃記憶體的儲存裝置大量地應用於電子裝置上。此外,非揮發性儲存裝置如固態儲存裝置(SSD)亦已逐漸成為桌上型電腦、筆記型電腦、伺服器之類的電腦系統中所配備的儲存裝置。
電子裝置在執行應用程式以儲存文字、數據、照片、播放音訊或視訊等各種的資料時,往往在短時間內需要向儲存裝置提出大量資料寫入動作的請求。儲存裝置的控制器可在電子裝置(即主機)的寫入請求下產生寫入命令,並執行所產生的寫入命令。儲存裝置的控制器可利用命令佇列以儲存主機寫入命令。儲存於命令佇列中的主機寫入命令可依序輸出至儲存裝置的記憶體以進行資料寫入動作。另一方面,儲存裝置也有內部資料移動的需求。若儲存裝置在處理內部資料移動時,可能會影響源自電子裝置的寫入命令執行的效率,造成就電子裝置而言寫入效能的下降及浮動。如此一來,寫入效能的下降及浮動反映在應用程式所反應的流輰度或應用程式所提供的服務的效率的浮動不穩定的情況產生。
實施方式提供了一種儲存裝置、儲存裝置的控制方法及記錄媒體,其可用於具有記憶體之裝置,並可據以實現當儲存裝置需要執行內部資料移動時各種能穩定主機資料寫入效率之方法。
實施方式提供一種儲存裝置的控制方法,其包括以下步驟:(a)藉由一儲存裝置之一儲存裝置控制器判斷儲存裝置是否需要執行內部資料移動;(b)若儲存裝置控制器判斷出儲存裝置需要執行內部資料移動,藉由儲存裝置控制器基於內部資料移動請求中的至少部分及儲存裝置之空閒頁的數目而決定一資料移動分配比;以及(c)藉由儲存裝置控制器,分配至少一個編程時間來完成前述內部資料移動請求中的至少部分的一第一資料數目的內部資料移動操作以及一第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目。
於一實施例中,儲存裝置控制器具有一資料移動請求列,資料移動請求列用以儲存內部資料移動請求,內部資料移動請求對應至儲存裝置中需要進行內部資料移動之記憶區域,需要進行內部資料移動之記憶區域為需要進行垃圾收集、耗損平衡、區塊收回或故障區塊之處理之記憶區域。
於一實施例中,儲存裝置控制器具有一資料移動請求列,資料移動請求列用以儲存內部資料移動請求,內部資料移動請求對應至儲存裝置中需要進行內部資料移動之記憶區域,在步驟(b)中,若儲存裝置控制器判斷出儲存裝置需要執行內部資料移動,基於資料移動請求列的內部資料移動請求的至少部分、一欲求之空閒記憶區域數目及空閒頁的數目而決定資料移動分配比。
於一實施例中,資料移動分配比係基於資料移動請求列中優先等級較高的內部資料移動請求的至少部分、欲求之空閒記憶區域數目及空閒頁的數目而決定。
於一實施例中,儲存裝置控制器具有一資料移動請求列,資料移動請求列用以儲存內部資料移動請求,內部資料移動請求對應至儲存裝置中需要進行內部資料移動之記憶區域,步驟(b)包括:若儲存裝置控制器判斷出儲存裝置需要執行內部資料移動,基於資料移動請求列的內部資料移動請求中優先等級較高的至少部分及一欲求之空閒記憶區域數目以決定一資料移動之總頁數;以及基於資料移動之總頁數及空閒頁的數目而決定資料移動分配比。
於一實施例中,儲存裝置包含複數個記憶體晶片,步驟(c)包括:藉由儲存裝置控制器,分配至少一個編程時間以平行方式利用儲存裝置中一第一晶片數的記憶體晶片來完成第一資料數目的內部資料移動操作並且利用儲存裝置中一第二晶片數的記憶體晶片來完成第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例以及第一晶片數與第二晶片數的比例皆符合資料移動分配比,其中第一資料數目大於第二資料數目且第一晶片數大於第二晶片數。
於一實施例中,至少一個編程時間包含一第一數目的編程時間及一第二數目的編程時間,步驟(c)包括:藉由儲存裝置控制器,分配第一數目的編程時間來完成第一資料數目的內部資料移動操作以及分配第二數目的編程時間來完成第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目且第一數目的編程時間大於第二數目的編程時間。
於一實施例中,儲存裝置包含複數個記憶體晶片,步驟(c)包括:藉由儲存裝置控制器,決定針對內部資料移動操作及主機資料寫入操作之一操作模式,操作模式為平行方式或非平行方式;以及分配至少一個編程時間以操作模式來完成第一資料數目的內部資料移動操作以及第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目。
實施方式提供一種記錄媒體,其記錄用以讓一儲存裝置執行如上述任一實施例或其組合所述之儲存裝置的控制方法的程式碼。
實施方式又提供一種儲存裝置,其包括:一記憶體以及一儲存裝置控制器。儲存裝置控制器電性耦接記憶體,且用於控制記憶體以對記憶體進行資料存取。儲存裝置控制器判斷儲存裝置是否需要執行內部資料移動若儲存裝置控制器判斷出儲存裝置需要執行內部資料移動,儲存裝置控制器基於內部資料移動請求中的至少部分及儲存裝置之空閒頁的數目而決定一資料移動分配比。儲存裝置控制器分配至少一個編程時間來完成前述內部資料移動請求中的至少部分的一第一資料數目的內部資料移動操作以及一第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目。
於一實施例中,儲存裝置控制器具有一資料移動請求列,資料移動請求列用以儲存內部資料移動請求,內部資料移動請求對應至儲存裝置中需要進行內部資料移動之記憶區域,需要進行內部資料移動之記憶區域為需要進行垃圾收集、耗損平衡、區塊收回或故障區塊之處理之記憶區域。
於一實施例中,儲存裝置控制器具有一資料移動請求列,資料移動請求列用以儲存內部資料移動請求,內部資料移動請求對應至儲存裝置中需要進行內部資料移動之記憶區域,若儲存裝置控制器判斷出儲存裝置需要執行內部資料移動,儲存裝置控制器基於資料移動請求列的內部資料移動請求的至少部分、一欲求之空閒記憶區域數目及空閒頁的數目而決定資料移動分配比。
於一實施例中,儲存裝置控制器基於資料移動請求列中優先等級較高的內部資料移動請求的至少部分、欲求之空閒記憶區域數目及空閒頁的數目而決定資料移動分配比。
於一實施例中,儲存裝置控制器具有一資料移動請求列,資料移動請求列用以儲存內部資料移動請求,內部資料移動請求對應至儲存裝置中需要進行內部資料移動之記憶區域;若儲存裝置控制器判斷出儲存裝置需要執行內部資料移動,儲存裝置控制器基於資料移動請求列的內部資料移動請求中優先等級較高的至少部分及一欲求之空閒記憶區域數目以決定一資料移動之總頁數;儲存裝置控制器基於資料移動之總頁數及空閒頁的數目而決定資料移動分配比。
於一實施例中,記憶體包含複數個記憶體晶片,儲存裝置控制器分配至少一個編程時間以平行方式利用儲存裝置中一第一晶片數的記憶體晶片來完成第一資料數目的內部資料移動操作並且利用儲存裝置中一第二晶片數的記憶體晶片來完成第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例以及第一晶片數與第二晶片數的比例皆符合資料移動分配比,其中第一資料數目大於第二資料數目且第一晶片數大於第二晶片數。
於一實施例中,至少一個編程時間包含一第一數目的編程時間及一第二數目的編程時間,儲存裝置控制器分配第一數目的編程時間來完成第一資料數目的內部資料移動操作以及第二數目的編程時間來完成第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目且第一數目的編程時間大於第二數目的編程時間。
於一實施例中,記憶體包含複數個記憶體晶片,儲存裝置控制器決定針對內部資料移動操作及主機資料寫入操作之一操作模式,操作模式為平行方式或非平行方式;儲存裝置控制器分配至少一個編程時間以操作模式來完成第一資料數目的內部資料移動操作以及第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目。
藉此,上述實施方式提供了一種儲存裝置、儲存裝置的控制方法及記錄媒體,其可用於具有記憶體之裝置,並可據以實現當儲存裝置需要執行內部資料移動時各種能穩定主機資料寫入效率之方法。例如,在儲存裝置中分配至少一個編程時間來完成內部資料移動操作以及主機資料寫入操作,從而控制內部資料移動操作以及主機資料寫入操作的數目的比例以減少當儲存裝置執行內部資料移動時對主機資料寫入效率浮動的影響。
為充分瞭解本發明之目的、特徵及功效,茲藉由下述具體之實施例,並配合所附之圖式,對本發明做詳細說明,說明如後。
請參考圖1,其繪示本發明之儲存裝置的一實施例,圖1的儲存裝置可以實現圖3、5或7的控制方法(其將於之後詳細說明,此處先暫時略過),並可據以實現當儲存裝置需要執行內部資料移動時各種能穩定主機資料寫入效率之方法。例如,在儲存裝置中分配至少一個編程時間來完成內部資料移動操作以及主機資料寫入操作,從而控制內部資料移動操作以及主機資料寫入操作的數目的比例以減少當儲存裝置執行內部資料移動時對主機資料寫入效率浮動的影響。如圖1所示,儲存裝置包括儲存裝置控制器100及記憶體200。儲存裝置控制器100包括處理單元110、緩衝單元120、複數個記憶通道(如130、131)及對應的記憶通道控制單元140。緩衝單元120可以利用揮發性記憶體或非揮發性記憶體來實現。記憶體200包括複數個記憶體晶片(如201、202、211、212)。舉例而言,記憶體晶片為快閃記憶體,譬如NOR型記憶體或NAND型記憶體,然而本發明的實現並不受此例子限制。
儲存裝置控制器100可藉由主機介面單元150與主機10通訊以接收來自主機10的讀取請求或寫入請求。儲存裝置控制器100就主機讀取請求或主機寫入請求而產生對應的讀取命令或寫入命令,並將產生的對應的命令傳送至對應的記憶通道(如130、131)的記憶通道控制單元140。記憶通道控制單元140用以控制至少一記憶體晶片。例如,記憶通道控制單元140傳送資料讀取命令至某一記憶體晶片並將因此而讀取之資料傳送至儲存裝置控制器100中,譬如緩衝單元120中。儲存裝置控制器100將主機10所請求的資料傳送至主機10。又例如,記憶通道控制單元140依據資料寫入命令而將欲寫入之資料寫入至記憶體晶片中。當儲存裝置控制器100控制記憶體200的操作時,緩衝單元120可以儲存由儲存裝置控制器100和記憶體200來使用以用於諸如讀取操作、寫入操作、程式化操作和抹除操作的各種操作的資料。在圖1中,複數個記憶通道控制單元140以平行處理的方式運作讀取或寫入動作。此外,處理單元110可以透過匯流排160而與記憶通道(如130、131)電性耦接。然而,本發明之實現並不受上述例子限制。例如,前述各個記憶通道控制單元可以利用邏輯電路或可程式化電路來實現,或者以軟體方式來實現並且由處理單元110來執行。又另一例子中,儲存裝置控制器100可以實現為只有一個記憶通道控制單元140。
主機介面單元150可以處理從主機10提供的命令和資料,以及可以透過諸如通用序列匯流排(USB)、多媒體卡(MMC)、周邊元件連接-快速(PCI-E)、串列連接SCSI(SAS)、串列高級技術連接(SATA)、並行高級技術連接(PATA)、小型電腦系統介面(SCSI)、增強小型磁片介面(ESDI)和集成驅動電路(IDE)的各種介面協定中的至少一種來與主機10通信。
請同時參考圖1與圖2,其中圖2為儲存裝置控制器的一實施例之示意方塊圖。圖2呈現儲存裝置控制器300以韌體或軟體方式來實現時的架構。譬如,儲存裝置控制器300包含主機介面層310、快閃記憶體轉換層320、快閃記憶體介面層330。主機介面層310用以與主機10通訊並作為主機10與儲存裝置控制器300之介面。快閃記憶體轉換層320用來進行對讀取、寫入、抹除操作的管理。快閃記憶體轉換層320更用以將邏輯位址(如邏輯區塊位址或邏輯頁位址)轉換為記憶體200之記憶體晶片(如201、202、211、212)所對應的實體位址(如實體區塊位址或實體頁位址)。快閃記憶體介面層330用於處理快閃記憶體轉換層320及記憶體200之通訊,譬如將命令自快閃記憶體轉換層320傳送至記憶體200。
圖2所示的儲存裝置控制器300可利用圖1的硬體架構來實現。快閃記憶體轉換層320在進行邏輯位址轉換為實體位址時需要參考及維護一位址映對表。由於位址映對表的資料量大,快閃記憶體轉換層320將位址映對表的部分區段儲存於快取中。當快取中沒有轉換所需的邏輯位址與實體位址的對應關係時,快閃記憶體轉換層320需要將快取中位址映對表的區段內容更新而產生映對表讀取命令。此外,在某些記憶體產品的應用場合中,例如是嵌入式多媒體卡(eMMC)或其他的記憶體產品,位址映對表係儲存於記憶體產品的記憶體中,且本發明並不受此例子限制。
儲存裝置控制器300控制針對記憶體200的各種操作,例如,寫入操作、讀取操作、程式化操作、抹除操作。例如,儲存裝置控制器可在主機10的寫入請求下產生寫入命令,並執行所產生的寫入命令。儲存裝置控制器可利用命令佇列以儲存主機寫入命令。儲存裝置控制器可依序處理儲存於命令佇列中的主機寫入命令以進行資料寫入動作。
特別地,儲存裝置控制器300控制用於快閃記憶體轉換層320的韌體演算法。例如,儲存裝置控制器300可以實現包括垃圾收集(GC,garbage collection)、耗損平衡(WL,wear-leveling)、區塊收回(BC,block reclaim)及故障區塊(RBB,runtime bad block)之演算法。故此,例如在執行垃圾收集、耗損平衡、區塊收回及故障區塊中任一種演算法時,儲存裝置也有內部資料移動的需求。
隨著儲存裝置在執行內部資料移動及主機資料寫入時,寫入效能會有下降或浮動的可能。若儲存裝置控制器需要處理大量的內部資料移動時,可能會影響源自主機的寫入命令執行的效率,造成就電子裝置而言寫入效能的下降。反之,若儲存裝置控制器的內部資料移動需求較少或沒有時,寫入效能上升。為了穩定主機資料寫入效率,以下提出儲存裝置的控制方法的實施例。
請參考圖3,其為儲存裝置的控制方法的一實施例之示意流程圖。如圖3所示之實施例,其可用於具有記憶體之裝置,並可據以實現當儲存裝置需要執行內部資料移動時各種能穩定主機資料寫入效率之方法。請參照圖1與3,圖3的儲存裝置的控制方法之一實施例包括以下步驟S10至S30。
如步驟S10所示,藉由儲存裝置之儲存裝置控制器100判斷儲存裝置是否需要執行內部資料移動。例如,儲存裝置控制器100以內部資料移動的需求是否存在、內部資料移動的資料量是否達到對應的門檻值或內部資料移動的優先級數是否達至條件等條件而判斷儲存裝置是否需要執行內部資料移動。
如步驟S20所示,若儲存裝置控制器100判斷出儲存裝置需要執行內部資料移動,藉由儲存裝置控制器基於內部資料移動請求中的至少部分及儲存裝置之空閒頁的數目而決定一資料移動分配比。例如,資料移動分配比為基於內部資料移動請求中的至少部分及儲存裝置之空閒頁的數目的函數。
如步驟S30所示,藉由儲存裝置控制器100,分配至少一個編程時間來完成前述內部資料移動請求中的至少部分的一第一資料數目的內部資料移動操作以及一第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目。
如此,透過步驟S30控制第一資料數目與第二資料數目的比例符合步驟S20所決定之資料移動分配比,可以將記憶體200中空閒的記憶空間平均地分配使用,可以有助於減少在執行內部資料移動及主機資料寫入時,寫入效能浮動的可能,且可穩定主機資料寫入效率。
此外,在圖4的方法中,若步驟S10的判斷結果為否,則如步驟S15所示,進行其他處理。例如,步驟S15可以配置為暫停此方法,或對內部資料移動及主機資料寫入操作的數目不作控制,或暫停後重覆執行步驟S10。又儲存裝置控制器100可以依據步驟S20所決定之資料移動分配比,重覆步驟S30以執行待處理之內部資料移動請求及主機資料寫入請求。又儲存裝置控制器100可以從步驟S10或S20開始重覆圖4的方法。然而,本發明之實現並不受此例子限制。
以下就圖4中的步驟S10至S30分別舉例說明如下。
於一實施例中,儲存裝置控制器100可以具有一資料移動請求列。資料移動請求列用以儲存一個或多個內部資料移動請求,內部資料移動請求對應至儲存裝置中需要進行內部資料移動之記憶區域。請參考圖4,其為資料移動請求列的一實施例之示意圖。如圖4所示之資料移動請求列400,其中方塊401~410代表資料移動請求列400所儲存之內部資料移動請求,內部資料移動請求例如是在執行垃圾收集(GC)、耗損平衡(WL)、區塊收回(BR)及故障區塊(RBB) block)中任一種演算法所產生。方塊401~410可實現為資料移動請求列400之節點,且各節點對應到需要進行內部資料移動之記憶區域(如記憶區塊)。例如,方塊401代表由於故障區塊而需要進行內部資料移動之記憶區域。方塊402、403、405、408~410代表為由於垃圾收集而需要進行內部資料移動之記憶區域。方塊404、407代表由於區塊收回而需要進行內部資料移動之記憶區域。方塊406代表為由於耗損平衡而需要進行內部資料移動之記憶區域。當對方塊401~410所對應之記憶區域進行內部資料移動處理後,方塊401~410所對應之記憶區域中有效資料被搬到新的記憶區域,故可以釋放出記憶區塊或頁供後續使用。此外,儲存裝置控制器100可以依據需要進行內部資料移動之記憶區域的重要性對所儲存之內部資料移動請求賦予從高至低的不同優先等級。例如,在圖4中,箭號PT代表資料移動請求列400中愈靠近左邊的方塊優先等級較高,靠近右邊的方塊優先等級較低。然而,上述箭號PT之方向表示方塊的優先等級只是示意而已,本發明之實現方式並不受此例限制。
於一實施例中,在步驟S20中,若儲存裝置控制器100判斷出儲存裝置需要執行內部資料移動,基於資料移動請求列的內部資料移動請求的至少部分、欲求之空閒記憶區域數目(number of required free blocks)及空閒頁的數目而決定資料移動分配比。例如,資料移動分配比為基於資料移動請求列的內部資料移動請求的至少部分、欲求之空閒記憶區域數目及空閒頁的數目的函數。
於一實施例中,在步驟S20中,資料移動分配比係基於資料移動請求列中優先等級較高的內部資料移動請求的至少部分、欲求之空閒記憶區域數目及空閒頁的數目而決定。如圖4所示,資料移動請求列400中如方塊401、402、403等所對應的內部資料移動請求為優先等級較高的內部資料移動請求,此等優先等級較高的內部資料移動請求有需要優先處理。此等優先等級較高的內部資料移動請求所對應的記憶區域(如記憶區塊)中可能存在有效頁。由此,資料移動分配比可以設定為基於資料移動請求列中至少部分的優先等級較高的內部資料移動請求的有效頁的總數、欲求之空閒記憶區域數目及空閒頁的數目的函數。
請參考圖5,其為圖3中步驟S20之一實施例之示意流程圖。如圖5所示,步驟S20之一實施例包括步驟S21及S23如下。
如步驟S21所示,若儲存裝置控制器100判斷出儲存裝置需要執行內部資料移動,基於資料移動請求列的內部資料移動請求中優先等級較高的至少部分及一欲求之空閒記憶區域數目以決定一資料移動之總頁數。
如步驟S23所示,基於資料移動之總頁數及空閒頁的數目而決定資料移動分配比。
舉例而言,在步驟S21中,資料移動之總頁數為基於資料移動請求列中至少部分優先等級較高的內部資料移動請求及欲求之空閒記憶區域數目的函數。此函數可以設定為由以下條件式1及公式1而定義:
IPC1
+IPC2
+ … + IPCN
≥ NrRequiredFreeBlocks * PagesPerBlock (條件式1)
TotalMovedPages = (N * PagesPerBlock) – (IPC1
+IPC2
+ … + IPCN
) (公式1)
其中符號 NrRequiredFreeBlocks、
PagesPerBlock、TotalMovedPages分別代表欲求之空閒記憶區域數目、每一記憶區域的頁數、資料移動之總頁數。條件式1的右邊為欲求之空閒記憶區域數目所對應的頁數目,條件式1的左邊為資料移動請求列中優先等級較高的內部資料移動請求所對應的記憶區域中的無效頁數IPCi
的總和,其中i為1至N,N為整數。例如,請參考圖4,儲存裝置控制器100可以從資料移動請求列400中依據優先等級較高為原則選出N個內部資料移動請求,並計算N個內部資料移動請求所對應的記憶區域中的無效頁數IPCi
的總和,若此無效頁數IPCi
的總和滿足條件式1時,即可確定N的數值。接著,利用公式1可以得到資料移動之總頁數。舉例而言,條件式1被滿足的意義表示若對此N個內部資料移動請求所對應的記憶區域進行內容資料移動操作後可以釋放出欲求之空閒記憶區域數目(NrRequiredFreeBlocks)的記憶區域(如記憶區塊)的記憶 空間。
舉例而言,在步驟S23中,資料移動分配比(以NrMoves表示)可以設定為等於資料移動之總頁數除以空閒頁的數目(NrFreePages),如以下公式2所示:
NrMoves = TotalMovePages / NrFreePages (公式2)。
如此,透過步驟S30控制第一資料數目與第二資料數目的比例符合圖5之步驟S20之實施例所決定之資料移動分配比,可以將記憶體200中空閒的記憶空間平均地分配使用,可以有助於減少在執行內部資料移動及主機資料寫入時,寫入效能浮動的可能,且可穩定主機資料寫入效率。
舉例而言,儲存裝置與主機10連接而透過儲存裝置控制器100對記憶體200進行資料存取時,儲存裝置控制器100可以依據實際的運作情況更新資料移動請求列、欲求之空閒記憶區域數目及空閒頁的數目,故此,儲存裝置控制器100執行基於圖3的儲存裝置的控制方法所得到之資料移動分配比亦可能會隨著儲存裝置的運作情況而改變。
舉例而言,欲求之空閒記憶區域數目為儲存裝置控制器100針對記憶體200所對應的多個記憶區域的使用情況而欲保持之空閒記憶區域的數目。例如,儲存裝置控制器100可以依據儲存裝置運作情況,如效能條件、目前剩下的空閒區塊或其他參數來確定欲求之空閒記憶區域數目,例如儲存裝置控制器100欲整理出多個空閒記憶區域(如100個、50個區塊)或記憶體200中至少要留下多少空閒記憶區域。此外,空閒頁的數目為目前儲存裝置中可用於主機寫入資料處理之空閒記憶頁。
此外,在前述或其他實施例中,儲存裝置控制器100可以利用例如圖4所示之資料移動請求列400來直接儲存內部資料移動請求以實現基於圖3的控制方法。然而,本發明之實現並不受此等例子限制。在另一些實施例中,儲存裝置控制器100可以利用例如圖6所示之方式來實現資料移動請求列以實現基於圖3的控制方法。如圖6所示,儲存裝置控制器100利用多個佇列(例如510、530、550、570)來對儲存不同類型的內部資料移動請求,並且依據此等佇列(如510、530、550、570)而得出資料移動請求列600。舉例而言,佇列510用以儲存由於垃圾收集(GC)而產生的內部資料移動請求。佇列530用以儲存由於耗損平衡(WL)而產生的內部資料移動請求。佇列550用以儲存由於區塊收回(BR)而產生的內部資料移動請求。佇列570用以儲存由於故障區塊(RBB)而產生的內部資料移動請求。在圖6中,方塊(如511~518、531~533、551~555、571)代表內部資料移動請求,內部資料移動請求例如是在執行垃圾收集(GC)、耗損平衡(WL)、區塊收回(BR)及故障區塊(RBB)中任一種演算法所產生。在圖6所示的方塊(如511~518、531~533、551~555、571)可實現為佇列(例如510、530、550、570)之節點,且各節點對應到需要進行內部資料移動之記憶區域(如記憶區塊)。
儲存裝置控制器100可以依據需要進行內部資料移動之記憶區域的重要性對所儲存之內部資料移動請求賦予從高至低的不同優先等級。例如,在圖6中,箭號PT1示意佇列510、530、550、570及資料移動請求列600中愈靠近左邊的方塊優先等級較高,靠近右邊的方塊優先等級較低。然而,上述箭號PT之方向表示方塊的優先等級只是示意而已,本發明之實現方式並不受此例限制。儲存裝置控制器100可以依據佇列的分類而採用不同策略或條件而賦予佇列中節點不同的優先等級。
舉例而言,針對關於垃圾收集(GC)之佇列510,儲存裝置控制器100基於內部資料移動請求所對應的記憶區域的無效頁數目(IPC,invalid page count)大小來賦予內部資料移動請求的優先等級;例如所對應的無效頁數目愈大(或有效頁數目愈小)則賦予較高優先等級。
針對關於耗損平衡(WL)之佇列530,儲存裝置控制器100基於內部資料移動請求所對應的記憶區域的抹除數目(erase count)而賦予內部資料移動請求的優先等級;例如所對應的抹除數目愈小則賦予較高優先等級。
針對關於區塊收回(BR)之佇列550,儲存裝置控制器100基於內部資料移動請求所對應的記憶區域的讀取數目(read count)而賦予內部資料移動請求的優先等級;例如所對應的讀取數目愈大則賦予較高優先等級。
針對關於故障區塊(RBB)之佇列570,由於內部資料移動請求所對應的記憶區域中存在故障之記憶頁,故不必設定優先等級。
再者,儲存裝置控制器100亦可以對佇列510、530、550、570賦予關於佇列之間的優先等級、權重,或個別地計算對記憶區域之有效頁數目,儲存裝置控制器100可以依據此等佇列(如510、530、550、570)中優先等級較高的節點,並選擇性地搭配如有效頁數目之參數而進行排列而得出資料移動請求列600。藉此,儲存裝置控制器100可以利用資料移動請求列600來實現基於圖3的控制方法。在本實施例中,可以更細緻化地對內部資料移動請求進行分類及優先等級之處理,從而使基於圖3之控制方法能夠對重要的或對儲存裝置的耐用性有幫助的內部資料移動請求作優先處理。
再者,在另一些實施例中,如圖6所示的佇列亦可合併,佇列510、530、550、570中之任何兩個或三個佇列可以合併為一個佇列,譬如佇列530、550可以合併為一個佇列。如此可以減少佇列處理上的複雜度。
在步驟S30的一些實施例中,儲存裝置控制器100可以利用平行方式或非平行方式分配至少一個編程時間來完成前述內部資料移動請求中的至少部分的一第一資料數目的內部資料移動操作以及一第二資料數目的主機資料寫入操作。
當儲存裝置之記憶體包含複數個記憶體晶片,例如圖1所示。於一實施例中,步驟S30可以包括:藉由儲存裝置控制器100,分配至少一個編程時間以平行方式利用儲存裝置中一第一晶片數的記憶體晶片來完成第一資料數目的內部資料移動操作並且利用儲存裝置中一第二晶片數的記憶體晶片來完成第二資料數目的主機資料寫入操作。藉此,儲存裝置控制器100可以控制第一資料數目與第二資料數目的比例以及第一晶片數與第二晶片數的比例皆符合資料移動分配比,其中第一資料數目大於第二資料數目且第一晶片數大於第二晶片數。舉例而言,若資料移動分配比為3:1,假設儲存裝置之記憶體包含4個記憶體晶片且可平行處理,依據本實施例,儲存裝置控制器100分配至少一個編程時間以平行方式利用儲存裝置中一第一晶片數(例如3)的記憶體晶片來完成第一資料數目(例如3頁)的內部資料移動操作並且利用儲存裝置中一第二晶片數(例如1)的記憶體晶片來完成第二資料數目(例如1頁)的主機資料寫入操作。
於一實施例中,至少一個編程時間包含一第一數目的編程時間及一第二數目的編程時間,步驟(c)包括:藉由儲存裝置控制器,以非平行方式分配第一數目的編程時間來完成第一資料數目的內部資料移動操作以及第二數目的編程時間來完成第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目且第一數目的編程時間大於第二數目的編程時間。舉例而言,若資料移動分配比為3:1,假設儲存裝置之記憶體包含4個記憶體晶片,依據本實施例, 儲存裝置控制器100分配第一數目的編程時間(例如3個編程時間)利用4個記憶體晶片來完成第一資料數目(例如3*4=12頁)的內部資料移動操作以及分配第二數目的編程時間(例如另外1個編程時間) 利用4個記憶體晶片來完成第二資料數目(例如1*4=4頁)的主機資料寫入操作。
在步驟S30的另一實施例中,儲存裝置控制器100更可以依據儲存裝置的記憶體晶片之配置、預期效能或其他參數而決定針對內部資料移動操作及主機資料寫入操作之一操作模式,分配至少一個編程時間來完成前述內部資料移動請求中的至少部分的一第一資料數目的內部資料移動操作以及一第二資料數目的主機資料寫入操作。請參考圖7,其為圖3中步驟S30之一實施例之示意流程圖。如圖7所示,步驟S30之一實施例包括以下步驟S31及S33。儲存裝置包含複數個記憶體晶片。
如步驟S31所示,藉由儲存裝置控制器,決定針對內部資料移動操作及主機資料寫入操作之一操作模式,操作模式為平行方式或非平行方式。
如步驟S33所示,分配至少一個編程時間以操作模式來完成第一資料數目的內部資料移動操作以及第二資料數目的主機資料寫入操作,從而控制第一資料數目與第二資料數目的比例符合資料移動分配比,其中第一資料數目大於第二資料數目。
在步驟S31中,儲存裝置控制器100可以依據儲存裝置的記憶體晶片之配置、預期效能或其他參數而決定針對內部資料移動操作及主機資料寫入操作之操作模式。如資料移動分配比為7:1,而儲存裝置之記憶體包含8個記憶體晶片,儲存裝置控制器可以決定操作模式為平行方式。由此,對應的步驟S33可以採用前述平行方式相關的實施例,儲存裝置控制器100分配一個編程時間以平行方式利用儲存裝置中一第一晶片數(例如7)的記憶體晶片來完成第一資料數目(例如7頁)的內部資料移動操作並且利用儲存裝置中一第二晶片數(例如1)的記憶體晶片來完成第二資料數目(例如1頁)的主機資料寫入操作。
如資料移動分配比為7:1,而儲存裝置之記憶體包含4個記憶體晶片,儲存裝置控制器可以決定操作模式為非平行方式。由此,對應的步驟S33可以採用前述非平行方式相關的實施例, 儲存裝置控制器100分配第一數目的編程時間(例如7個編程時間)利用4個記憶體晶片來完成第一資料數目(例如7*4=28頁)的內部資料移動操作以及分配第二數目的編程時間(例如另外1個編程時間) 利用4個記憶體晶片來完成第二資料數目(例如1*4=4頁)的主機資料寫入操作。
在步驟S31中,儲存裝置控制器100可以依據預期效能而決定針對內部資料移動操作及主機資料寫入操作之操作模式。例如,當儲存裝置控制器100經預估目前內部資料移動請求及主機資料寫入請求的數量而言,非平行方式(或平行方式)所獲得的處理效率較佳時,則決定操作模式為非平行方式(或平行方式)。
在步驟S31中,儲存裝置控制器可以依據儲存裝置的記憶體晶片之配置、預期效能或其他參數之組合而決定針對內部資料移動操作及主機資料寫入操作之操作模式。
在上述任何有關於步驟S30的實施例中,在所分配的至少一個編程時間期間,內部資料移動操作以及主機資料寫入操作並沒有先後執行次序上限制。也就是說,只要在所分配的至少一個編程時間期間,第一資料數目與第二資料數目的比例符合資料移動分配比,內部資料移動操作及主機資料寫入操作可以利用任何可行之先後次序、間隔方式或同時完成皆可。
此外,在一些實施例中,提出一種非暫態的記錄媒體,其記錄用以讓一運算裝置(如前述圖1或2所示的儲存裝置),藉由儲存裝置中的儲存裝置控制器來執行儲存裝置的控制方法之程式碼,其中方法包含依據圖3之方法的任一實施例或其組合。舉例而言,程式碼是一個或多個程式或程式模組,如用於實現依據圖3的步驟S10至S30、圖5的步驟S21和S23或圖7的步驟S31和S33,此等模組之程式碼係協同運作,且可以用任何適合的順序或平行而被執行。當運算裝置執行此程式碼時,能導致運算裝置執行基於圖3之儲存裝置的控制方法之一實施例。上述可讀取記錄媒體例如為靭體、ROM、RAM、記憶卡、光學式資訊儲存媒體、磁式資訊儲存媒體或其他任何種類的儲存媒體或記憶體,且本發明之實現方式並不受此例子限制。
此外,在上述關於儲存裝置的實施例(如圖1、圖2)中,處理單元110、記憶通道控制單元140、主機介面單元150中至少一者或其組合,係可以利用一個或多個電路來實現,如處理器、數位訊號處理器,或是以可程式化的積體電路如微控制器、元件可程式邏輯閘陣列(field programmable gate array, FPGA)或特殊應用積體電路(application specific integrated circuit,ASIC)之類的電路中之一個或多個電路來實現,亦可使用專屬的電路或模組來實現。再者,記憶通道控制單元亦可利用軟體方式如以行程、執行緒、程式模組或其他軟體方式來實現。然而,本發明之實現並不受此等例子所限制。
藉此,上述實施方式提供了一種儲存裝置、儲存裝置的控制方法及記錄媒體,其可用於具有記憶體之裝置,並可據以實現當儲存裝置需要執行內部資料移動時各種能穩定主機資料寫入效率之方法。例如,在儲存裝置中分配至少一個編程時間來完成內部資料移動操作以及主機資料寫入操作,從而控制內部資料移動操作以及主機資料寫入操作的數目的比例以減少當儲存裝置執行內部資料移動時對主機資料寫入效率浮動的影響。
本發明在上文中已以較佳實施例揭露,然熟習本項技術者應理解的是,該實施例僅用於描繪本發明,而不應解讀為限制本發明之範圍。應注意的是,舉凡與該實施例等效之變化與置換,均應設為涵蓋於本發明之範疇內。因此,本發明之保護範圍當以申請專利範圍所界定者為準。
10:主機
100、300:儲存裝置控制器
110:處理單元
120:緩衝單元
130、131:記憶通道
140:記憶通道控制單元
150:主機介面單元
160:匯流排
200:記憶體
201、202、211、212:記憶體晶片
310:主機介面層
320:快閃記憶體轉換層
330:快閃記憶體介面層
400、600:資料移動請求列
401~410:方塊
510、530、550、570:佇列
511~518、531~533、551~555、571:方塊
S10、S15、S20、S30:步驟
S21、S23:步驟
S30、S33:步驟
PT、PT1:箭號
[圖1]為儲存裝置的一實施例之示意方塊圖。
[圖2]為儲存裝置控制器的一實施例之示意方塊圖。
[圖3]為儲存裝置的控制方法的一實施例之示意流程圖。
[圖4]為資料移動請求列的一實施例之示意圖。
[圖5]為圖3中步驟S20之一實施例之示意流程圖。
[圖6]為資料移動請求列的另一實施例之示意圖。
[圖7]為圖3中步驟S30之一實施例之示意流程圖。
S10、S15、S20、S30:步驟
Claims (17)
- 一種儲存裝置的控制方法,其包括: (a)藉由一儲存裝置之一儲存裝置控制器判斷該儲存裝置是否需要執行內部資料移動; (b)若該儲存裝置控制器判斷出該儲存裝置需要執行內部資料移動,藉由該儲存裝置控制器基於內部資料移動請求中的至少部分及該儲存裝置之空閒頁的數目而決定一資料移動分配比;以及 (c)藉由該儲存裝置控制器,分配至少一個編程時間來完成前述內部資料移動請求中的至少部分的一第一資料數目的內部資料移動操作以及一第二資料數目的主機資料寫入操作,從而控制該第一資料數目與該第二資料數目的比例符合該資料移動分配比,其中該第一資料數目大於該第二資料數目。
- 如請求項1所述之儲存裝置的控制方法,其中該儲存裝置控制器具有一資料移動請求列,該資料移動請求列用以儲存內部資料移動請求,該內部資料移動請求對應至該儲存裝置中需要進行內部資料移動之記憶區域,該需要進行內部資料移動之記憶區域為需要進行垃圾收集、耗損平衡、區塊收回或故障區塊之處理之記憶區域。
- 如請求項1所述之儲存裝置的控制方法,其中該儲存裝置控制器具有一資料移動請求列,該資料移動請求列用以儲存內部資料移動請求,該內部資料移動請求對應至該儲存裝置中需要進行內部資料移動之記憶區域,在該步驟(b)中,若該儲存裝置控制器判斷出該儲存裝置需要執行內部資料移動,基於該資料移動請求列的內部資料移動請求的至少部分、一欲求之空閒記憶區域數目及該空閒頁的數目而決定該資料移動分配比。
- 如請求項3所述之儲存裝置的控制方法,其中該資料移動分配比係基於該資料移動請求列中優先等級較高的內部資料移動請求的至少部分、該欲求之空閒記憶區域數目及該空閒頁的數目而決定。
- 如請求項1所述之儲存裝置的控制方法,其中該儲存裝置控制器具有一資料移動請求列,該資料移動請求列用以儲存內部資料移動請求,該內部資料移動請求對應至該儲存裝置中需要進行內部資料移動之記憶區域,該步驟(b)包括: 若該儲存裝置控制器判斷出該儲存裝置需要執行內部資料移動,基於該資料移動請求列的內部資料移動請求中優先等級較高的至少部分及一欲求之空閒記憶區域數目以決定一資料移動之總頁數;以及 基於該資料移動之總頁數及該空閒頁的數目而決定該資料移動分配比。
- 如請求項1所述之儲存裝置的控制方法,其中該儲存裝置包含複數個記憶體晶片,該步驟(c)包括: 藉由該儲存裝置控制器,分配該至少一個編程時間以平行方式利用該儲存裝置中一第一晶片數的記憶體晶片來完成該第一資料數目的內部資料移動操作並且利用該儲存裝置中一第二晶片數的記憶體晶片來完成該第二資料數目的主機資料寫入操作,從而控制該第一資料數目與該第二資料數目的比例以及該第一晶片數與該第二晶片數的比例皆符合該資料移動分配比,其中該第一資料數目大於該第二資料數目且該第一晶片數大於該第二晶片數。
- 如請求項1所述之儲存裝置的控制方法,其中該至少一個編程時間包含一第一數目的編程時間及一第二數目的編程時間,該步驟(c)包括: 藉由該儲存裝置控制器,分配該第一數目的編程時間來完成該第一資料數目的內部資料移動操作以及分配該第二數目的編程時間來完成該第二資料數目的主機資料寫入操作,從而控制該第一資料數目與該第二資料數目的比例符合該資料移動分配比,其中該第一資料數目大於該第二資料數目且該第一數目的編程時間大於該第二數目的編程時間。
- 如請求項1所述之儲存裝置的控制方法,其中該儲存裝置包含複數個記憶體晶片,該步驟(c)包括: 藉由該儲存裝置控制器,決定針對內部資料移動操作及主機資料寫入操作之一操作模式,該操作模式為平行方式和非平行方式中之一種;以及 分配該至少一個編程時間以該操作模式來完成該第一資料數目的內部資料移動操作以及該第二資料數目的主機資料寫入操作,從而控制該第一資料數目與該第二資料數目的比例符合該資料移動分配比,其中該第一資料數目大於該第二資料數目。
- 一種記錄媒體,其記錄用以讓一儲存裝置執行如請求項1至8中任一項所述之儲存裝置的控制方法的程式碼。
- 一種儲存裝置,其包括: 一記憶體;以及 一儲存裝置控制器,電性耦接該記憶體,用於控制該記憶體以對該記憶體進行資料存取,其中該儲存裝置控制器判斷該儲存裝置是否需要執行內部資料移動;若該儲存裝置控制器判斷出該儲存裝置需要執行內部資料移動,該儲存裝置控制器基於內部資料移動請求中的至少部分及該儲存裝置之空閒頁的數目而決定一資料移動分配比;以及該儲存裝置控制器分配至少一個編程時間來完成前述內部資料移動請求中的至少部分的一第一資料數目的內部資料移動操作以及一第二資料數目的主機資料寫入操作,從而控制該第一資料數目與該第二資料數目的比例符合該資料移動分配比,其中該第一資料數目大於該第二資料數目。
- 如請求項10所述之儲存裝置,其中該儲存裝置控制器具有一資料移動請求列,該資料移動請求列用以儲存內部資料移動請求,該內部資料移動請求對應至該儲存裝置中需要進行內部資料移動之記憶區域,該需要進行內部資料移動之記憶區域為需要進行垃圾收集、耗損平衡、區塊收回或故障區塊之處理之記憶區域。
- 如請求項10所述之儲存裝置,其中該儲存裝置控制器具有一資料移動請求列,該資料移動請求列用以儲存內部資料移動請求,該內部資料移動請求對應至該儲存裝置中需要進行內部資料移動之記憶區域,若該儲存裝置控制器判斷出該儲存裝置需要執行內部資料移動,該儲存裝置控制器基於該資料移動請求列的內部資料移動請求的至少部分、一欲求之空閒記憶區域數目及該空閒頁的數目而決定該資料移動分配比。
- 如請求項12所述之儲存裝置,其中該儲存裝置控制器基於該資料移動請求列中優先等級較高的內部資料移動請求的至少部分、該欲求之空閒記憶區域數目及該空閒頁的數目而決定該資料移動分配比。
- 如請求項10所述之儲存裝置,其中該儲存裝置控制器具有一資料移動請求列,該資料移動請求列用以儲存內部資料移動請求,該內部資料移動請求對應至該儲存裝置中需要進行內部資料移動之記憶區域;若該儲存裝置控制器判斷出該儲存裝置需要執行內部資料移動,該儲存裝置控制器基於該資料移動請求列的內部資料移動請求中優先等級較高的至少部分及一欲求之空閒記憶區域數目以決定一資料移動之總頁數;該儲存裝置控制器基於該資料移動之總頁數及該空閒頁的數目而決定該資料移動分配比。
- 如請求項10所述之儲存裝置,其中該記憶體包含複數個記憶體晶片,該儲存裝置控制器分配該至少一個編程時間以平行方式利用該儲存裝置中一第一晶片數的記憶體晶片來完成該第一資料數目的內部資料移動操作並且利用該儲存裝置中一第二晶片數的記憶體晶片來完成該第二資料數目的主機資料寫入操作,從而控制該第一資料數目與該第二資料數目的比例以及該第一晶片數與該第二晶片數的比例皆符合該資料移動分配比,其中該第一資料數目大於該第二資料數目且該第一晶片數大於該第二晶片數。
- 如請求項10所述之儲存裝置,其中該至少一個編程時間包含一第一數目的編程時間及一第二數目的編程時間,該儲存裝置控制器分配該第一數目的編程時間來完成該第一資料數目的內部資料移動操作以及該第二數目的編程時間來完成該第二資料數目的主機資料寫入操作,從而控制該第一資料數目與該第二資料數目的比例符合該資料移動分配比,其中該第一資料數目大於該第二資料數目且該第一數目的編程時間大於該第二數目的編程時間。
- 如請求項10所述之儲存裝置,其中該記憶體包含複數個記憶體晶片,該儲存裝置控制器決定針對內部資料移動操作及主機資料寫入操作之一操作模式,該操作模式為平行方式或非平行方式;該儲存裝置控制器分配該至少一個編程時間以該操作模式來完成該第一資料數目的內部資料移動操作以及該第二資料數目的主機資料寫入操作,從而控制該第一資料數目與該第二資料數目的比例符合該資料移動分配比,其中該第一資料數目大於該第二資料數目。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108112380A TWI786288B (zh) | 2019-04-09 | 2019-04-09 | 儲存裝置、儲存裝置的控制方法及記錄媒體 |
US16/674,893 US11068189B2 (en) | 2019-04-09 | 2019-11-05 | Storage device and control method thereof |
CN201911164368.0A CN112783424B (zh) | 2019-04-09 | 2019-11-25 | 存储装置及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108112380A TWI786288B (zh) | 2019-04-09 | 2019-04-09 | 儲存裝置、儲存裝置的控制方法及記錄媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202038106A TW202038106A (zh) | 2020-10-16 |
TWI786288B true TWI786288B (zh) | 2022-12-11 |
Family
ID=72747891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108112380A TWI786288B (zh) | 2019-04-09 | 2019-04-09 | 儲存裝置、儲存裝置的控制方法及記錄媒體 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11068189B2 (zh) |
CN (1) | CN112783424B (zh) |
TW (1) | TWI786288B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11137943B2 (en) * | 2020-03-04 | 2021-10-05 | Micron Technology, Inc. | Internal commands for access operations |
US11474885B2 (en) * | 2020-04-07 | 2022-10-18 | Micron Technology, Inc. | Method for an internal command of a first processing core with memory sub-system that caching identifiers for access commands |
KR20220052152A (ko) * | 2020-10-20 | 2022-04-27 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200846910A (en) * | 2007-04-23 | 2008-12-01 | Microsoft Corp | Hints model for optimization of storage devices connected to host and write optimization schema for storage devices |
TW200949537A (en) * | 2007-12-28 | 2009-12-01 | Toshiba Kk | Semiconductor storage device |
US20170262216A1 (en) * | 2015-09-29 | 2017-09-14 | EMC IP Holding Company LLC | Dynamic storage tiering based on predicted workloads |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060718B2 (en) * | 2006-06-20 | 2011-11-15 | International Business Machines | Updating a memory to maintain even wear |
KR101867282B1 (ko) | 2011-11-07 | 2018-06-18 | 삼성전자주식회사 | 비휘발성 메모리 장치의 가비지 컬렉션 방법 |
WO2013157032A1 (en) * | 2012-04-16 | 2013-10-24 | Hitachi, Ltd. | Storage subsystem and data management method of storage subsystem |
WO2015076354A1 (ja) * | 2013-11-22 | 2015-05-28 | 日本電気株式会社 | ストレージ装置と方法並びにプログラム |
GB201322290D0 (en) * | 2013-12-17 | 2014-01-29 | Ibm | Method and device for managing a memory |
CN103761988B (zh) * | 2013-12-27 | 2018-01-16 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
CN104298615B (zh) * | 2014-10-09 | 2017-04-19 | 重庆大学 | 一种存储器交换分区损耗的均衡方法 |
WO2016135954A1 (ja) * | 2015-02-27 | 2016-09-01 | 株式会社日立製作所 | ストレージ装置および不揮発メモリデバイス |
US9778878B2 (en) * | 2015-04-22 | 2017-10-03 | Sandisk Technologies Llc | Method and system for limiting write command execution |
US9645922B2 (en) * | 2015-09-10 | 2017-05-09 | HoneycombData Inc. | Garbage collection in SSD drives |
US10126981B1 (en) * | 2015-12-14 | 2018-11-13 | Western Digital Technologies, Inc. | Tiered storage using storage class memory |
KR20180031289A (ko) * | 2016-09-19 | 2018-03-28 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US10430085B2 (en) * | 2016-11-08 | 2019-10-01 | Micron Technology, Inc. | Memory operations on data |
KR102756730B1 (ko) | 2016-12-05 | 2025-01-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10452282B2 (en) * | 2017-04-07 | 2019-10-22 | Micron Technology, Inc. | Memory management |
TWI674505B (zh) * | 2017-11-30 | 2019-10-11 | 宜鼎國際股份有限公司 | 資料存取效率的預估方法 |
KR20190083517A (ko) * | 2018-01-04 | 2019-07-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
-
2019
- 2019-04-09 TW TW108112380A patent/TWI786288B/zh active
- 2019-11-05 US US16/674,893 patent/US11068189B2/en active Active
- 2019-11-25 CN CN201911164368.0A patent/CN112783424B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200846910A (en) * | 2007-04-23 | 2008-12-01 | Microsoft Corp | Hints model for optimization of storage devices connected to host and write optimization schema for storage devices |
TW200949537A (en) * | 2007-12-28 | 2009-12-01 | Toshiba Kk | Semiconductor storage device |
US20170262216A1 (en) * | 2015-09-29 | 2017-09-14 | EMC IP Holding Company LLC | Dynamic storage tiering based on predicted workloads |
Also Published As
Publication number | Publication date |
---|---|
US20200326874A1 (en) | 2020-10-15 |
US11068189B2 (en) | 2021-07-20 |
CN112783424A (zh) | 2021-05-11 |
TW202038106A (zh) | 2020-10-16 |
CN112783424B (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111149096B (zh) | 借助于主机内存缓冲区范围的自适应装置服务质量 | |
US11436136B2 (en) | Memory system including non-volatile buffer and control method thereof | |
CN107885456B (zh) | 减少io命令访问nvm的冲突 | |
US9870149B2 (en) | Scheduling operations in non-volatile memory devices using preference values | |
JP7353934B2 (ja) | メモリシステムおよび制御方法 | |
US11513949B2 (en) | Storage device, and control method and recording medium thereof | |
US20100030948A1 (en) | Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system | |
US20100217920A1 (en) | Memory system and address allocating method of flash translation layer thereof | |
US20230176965A1 (en) | Media management based on data access metrics | |
KR20080075706A (ko) | 플래시 저장 장치의 특성을 기반으로 한 컴퓨팅 시스템 | |
US20190155749A1 (en) | Adaptive management of intermediate storage | |
CN112597068B (zh) | 主机系统及其操作方法、包括该主机系统的数据处理系统 | |
US20190121567A1 (en) | Data storage device including shared memory area and dedicated memory area | |
CN113874826A (zh) | 具有多个裸片和平面的存储器子系统中的多遍数据编程 | |
TWI786288B (zh) | 儲存裝置、儲存裝置的控制方法及記錄媒體 | |
CN115390746A (zh) | 主机设备、存储设备以及电子设备 | |
CN111381776A (zh) | 用于存储器装置的方法、系统和计算机可读媒体 | |
JP2023517080A (ja) | メモリサブシステムに対するキューの維持 | |
CN115390747A (zh) | 存储设备及其操作方法 | |
KR20220135786A (ko) | 메모리 시스템에 포함된 복수의 메모리 장치에서 수행되는 동작에 대해 스케줄링하는 장치 및 방법 | |
CN107885667B (zh) | 降低读命令处理延迟的方法与装置 | |
CN113811847A (zh) | 来自主机系统的写入命令的部分执行 | |
US11687275B2 (en) | Method for assigning plurality of channels of storage device for stream data writing, storage device and storage medium | |
CN117836751A (zh) | 使用存储器装置中的存储器存取命令队列提高存储器性能 | |
KR20220159270A (ko) | 스토리지 장치 및 그 동작 방법 |