TWI712881B - 電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法 - Google Patents

電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法 Download PDF

Info

Publication number
TWI712881B
TWI712881B TW107127266A TW107127266A TWI712881B TW I712881 B TWI712881 B TW I712881B TW 107127266 A TW107127266 A TW 107127266A TW 107127266 A TW107127266 A TW 107127266A TW I712881 B TWI712881 B TW I712881B
Authority
TW
Taiwan
Prior art keywords
cold
data
block
host
logical address
Prior art date
Application number
TW107127266A
Other languages
English (en)
Other versions
TW201941061A (zh
Inventor
砂田徹也
岩井大典
吉井謙一郎
Original Assignee
日商東芝記憶體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日商東芝記憶體股份有限公司 filed Critical 日商東芝記憶體股份有限公司
Publication of TW201941061A publication Critical patent/TW201941061A/zh
Application granted granted Critical
Publication of TWI712881B publication Critical patent/TWI712881B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

實施形態實現一種既能減少對自主機之存取之影響,又能回收冷塊內之剩餘容量之電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法。 根據實施形態,電子機器包含具備複數個塊之非揮發性記憶體、及電性連接於上述非揮發性記憶體之控制器。上述控制器能將與上述非揮發性記憶體中所儲存之冷資料對應之第1邏輯位址、及表示用以使包含上述冷資料之冷區塊成為可寫入資料之處理時間或處理量的資訊發送至主機。

Description

電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法
本發明之實施形態係關於一種具備非揮發性記憶體之電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法。
近年來,具備非揮發性記憶體之儲存器廣為普及。
作為此種儲存器之一,已知有具備NAND(Not And,反及)型快閃記憶體之固態驅動器(SSD)。SSD用作各種計算裝置之主儲存器。
於SSD中,藉由廢料收集(GC)動作,廢料收集源區塊(GC源區塊)內之有效資料被移動至廢料收集宿區塊(GC宿區塊),從而產生空閒區塊。各空閒區塊可藉由經過抹除處理而作為新的寫入目的地區塊使用。
作為GC源區塊,例如選擇有效資料量較少之區塊。藉由如此地選擇GC源區塊,能有效率地產生更多空閒區塊。
另一方面,難以選擇有效資料量較多之區塊作為GC源區塊,因此相當於該區塊內無效資料區域之剩餘容量(超額配置:Over Provisioning,OP)始終無法用於資料之寫入。而且,於存在很多有效資料量較多之區塊之情形時,會存在大量此種無效資料區域。
本發明之實施形態提供一種既能減少對來自主機之存取之影響,又能回收冷區塊內之剩餘容量之電子機器及其控制方法、電腦系統 及其控制方法以及主機之控制方法。
實施形態之電子機器可經由介面與主機連接,且包含:非揮發性記憶體,其包含複數個區塊;及控制器,其電性連接於上述非揮發性記憶體;上述控制器係構成為:於上述電子機器與上述主機連接之情形時,可將與上述非揮發性記憶體中所儲存之冷資料對應之第1邏輯位址、及表示用以使包含上述冷資料之冷區塊成為可寫入資料之區塊之處理時間或處理量的資訊發送至上述主機
1:電腦系統
1A:電腦系統
1B:電腦系統
2:主機
3:SSD(第1SSD)
4:控制器
5:NAND型快閃記憶體
6:DRAM
7:第2SSD
8:網路
10:匯流排
11:主機I/F
12:CPU
13:NAND I/F
14:DRAM I/F
20:物理容量(安裝容量)
22:冷區塊
25A:有效叢集
25B:無效叢集
31:讀取緩衝區
32:寫入緩衝區
33:GC緩衝區
34:LUT
35:區塊管理資訊
36:冷區塊資訊
41:應用層
42:作業系統
43:檔案系統
51:區塊
52:區塊
53:區塊
54:區塊
55:區塊
101:處理器(中央處理單元)
102:主記憶體(隨機存取記憶體)
103:基本輸入輸出系統-唯讀記憶體
105:網路控制器
106:周邊介面控制器
107:控制器
107A:連接器
108:嵌入式控制器
120:FTL(快閃轉換層)
121:冷區塊控制I/F部
122:區塊管理部
123:冷區塊控制部
124:讀取控制部
125:寫入控制部
126:GC控制部
127:冷區塊GC控制部
211:標稱容量(CAP)
212:剩餘容量(OP)
221:熱資料
222:剩餘容量
223:冷資料
224:剩餘容量
225:剩餘容量
251:區塊
252:區塊
253:區塊
254:區塊
261:GC宿區塊
262:GC宿區塊
412A:邏輯區塊位址範圍-儲存器管理表
431:冷區塊控制I/F部
432:冷資料管理部
511:有效資料
512:無效資料
513:無效資料
514:無效資料
521:資料
531:資料
541:資料
B0~Bm-1:區塊
MC0~MC3:儲存晶片
P0~Pn-1:頁
圖1係表示第1實施形態之電腦系統之構成例之方塊圖。
圖2係用以說明藉由第1實施形態之電腦系統而回收的冷區塊內之剩餘容量(OP)之圖。
圖3(A)、(B)係用以說明通常之廢料收集(GC)、及考慮到寫入時期之GC之圖。
圖4(A)、(B)係用以說明進行通常之GC之情形時消耗的NAND存取之頻帶寬度、及進而進行將冷區塊作為GC源區塊之GC之情形時消耗的NAND存取之頻帶寬度之圖。
圖5係用以說明第1實施形態之電腦系統之用以回收冷區塊內的OP之動作之例之圖。
圖6係表示第1實施形態之電腦系統之用以回收冷區塊內的OP之構成之例之方塊圖。
圖7係表示第1實施形態之電腦系統中所使用的區塊管理資訊之一構成例之圖。
圖8係表示第1實施形態之電腦系統中所使用的冷區塊資訊之一構成例之圖。
圖9係表示第1實施形態之電腦系統中,用以要求回收冷區塊內之OP的指令之格式之例之圖。
圖10係表示藉由第1實施形態之電腦系統內之固態驅動器(SSD)而執行的冷區塊管理處理之程序之例之流程圖。
圖11係表示藉由圖10之SSD而執行的OP回收控制處理之程序之例之流程圖。
圖12係表示藉由第1實施形態之電腦系統內之主機而執行的冷區塊控制處理之程序之例之流程圖。
圖13係表示藉由第2實施形態之電腦系統內之SSD而執行的冷區塊管理處理之程序之例之流程圖。
圖14係表示藉由第2實施形態之電腦系統內之主機而執行的冷區塊控制處理之程序之例之流程圖。
圖15係用以說明第3實施形態之電腦系統之用以回收冷區塊內的OP之動作之例之圖。
圖16係表示第3實施形態之電腦系統中所使用之冷資料的清單之格式之例之圖。
圖17係表示第3實施形態之電腦系統中,自主機向SSD發佈之寫入指令中包含的存取頻度屬性之格式之例之圖。
圖18係表示藉由第3實施形態之電腦系統內之SSD而執行的冷區塊管理處理之程序之例之流程圖。
圖19係表示藉由第3實施形態之電腦系統內之主機而執行的冷區塊控 制處理之程序之例之流程圖。
圖20係用以說明如下例之圖,即:於藉由第4實施形態之電腦系統回收冷區塊內之OP之情形時,冷資料之LBA(Logic Block Address,邏輯區塊位址)範圍的周邊之LBA之資料亦被移動。
圖21係表示如下例之圖,即:於第4實施形態之電腦系統中所使用之冷資料的清單所示之LBA範圍,亦包括周邊之LBA(LBA範圍)。
圖22係表示藉由第4實施形態之電腦系統內之主機而執行的冷區塊控制處理之程序之例之流程圖。
圖23係用以說明第5實施形態之電腦系統之用以回收冷區塊內的OP之動作之例之圖。
圖24係表示第5實施形態之電腦系統中所使用的管理表之一構成例之圖。
圖25係表示藉由第5實施形態之電腦系統內之主機而執行的冷區塊控制處理之程序之例之流程圖。
圖26係用以說明第6實施形態之電腦系統之用以回收冷區塊內的OP之動作之例之圖。
圖27係用以說明第7實施形態之電腦系統之用以回收冷區塊內的OP之動作之例之圖。
圖28係表示藉由第7實施形態之電腦系統內之SSD而執行的OP回收控制處理之程序之例之流程圖。
圖29係表示藉由第7實施形態之電腦系統內之主機而執行的冷區塊控制處理之程序之例之流程圖。
圖30係表示主機之構成例之方塊圖。
以下,參照圖式對實施形態進行說明。
(第1實施形態)
首先,參照圖1,對實施形態之電腦系統1之構成進行說明。
電腦系統1包含主機(主機裝置)2及半導體儲存裝置,該半導體儲存裝置係以向非揮發性記憶體寫入資料,自非揮發性記憶體讀出資料之方式構成。
主機2係對半導體儲存裝置進行存取之資訊處理裝置(計算裝置)。主機2可為將大量且多樣之資料保存至半導體儲存裝置之伺服器(儲存伺服器),亦可為個人電腦。半導體儲存裝置係以例如具備NAND型快閃記憶體之固態驅動器(SSD)3之形態實現。
SSD3可用作作為主機2而發揮功能之資訊處理裝置之主儲存器。SSD3可內置於該資訊處理裝置中,亦可經由線纜或網路連接於該資訊處理裝置。SSD3例如作為直接附接儲存器(DAS)連接於主機2。
作為用以將主機2與SSD3相互連接之介面,可使用SCSI(Small Computer System Interface,小型電腦系統介面)、串列連接之SCSI(SAS)、ATA(Advanced Technology Attachment,高階技術附件)、串列ATA(SATA)、PCI Express(PCIe)(註冊商標)、Ethernet(註冊商標)、光纖通道、NVM Express(NVMe)(註冊商標)等。
SSD3具備控制器4及NAND型快閃記憶體5。控制器4可由晶片上系統(System-on-a-chip,SoC)等電路實現。SSD3亦可具備作為揮發性記憶體之隨機存取記憶體、例如DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)6。或者,亦可將SRAM(Static Random Access Memory,靜態隨機存取記憶體)等隨機存取記憶體內置於控制器4中。
於DRAM6等隨機存取記憶體,例如設置有:讀取緩衝區(RB)31,其係用以暫時地儲存自NAND型快閃記憶體5讀出之資料之緩衝區域;寫入緩衝區(WB)32及GC緩衝區33,其等係用以暫時地儲存向NAND型快閃記憶體5寫入之資料之緩衝區域;以及作為位址轉換表(邏輯物理位址轉換表)而發揮功能之對照表(LUT)34之快取區域。進而,於DRAM6等隨機存取記憶體,亦可設置有處理過程中所使用之各種資訊(例如,區塊管理資訊35、冷區塊資訊36等)之儲存區域。再者,亦可將DRAM6設置於控制器4之內部。LUT34對邏輯位址各者與NAND型快閃記憶體5之物理位址各者之間之映射進行管理。
NAND型快閃記憶體5亦可包含複數個NAND型快閃記憶晶片(複數個NAND型快閃記憶單片)。各晶片係以構成為每個記憶單元可儲存複數位元之快閃記憶體之形態實現。
控制器4經由雙態DDR(全稱為DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory,雙資料速率同步動態隨機存取記憶體)、開放式NAND快閃介面(Open NAND Flash Interface,ONFI)等NAND介面13,電性連接於作為非揮發性記憶體之NAND型快閃記憶體5。NAND介面13作為以控制NAND型快閃記憶體5之方式構成之NAND控制電路而發揮功能。NAND介面13亦可經由複數個通道,與NAND型快閃記憶體5內之複數個晶片分別連接。
控制器4作為以控制NAND型快閃記憶體5之方式構成之記 憶體控制器而發揮功能。
控制器4亦可作為以執行NAND型快閃記憶體5之資料管理及區塊管理之方式構成之快閃轉換層(FTL)而發揮功能。藉由該FTL而執行之資料管理包括:(1)表示邏輯位址各者與NAND型快閃記憶體5之物理位址各者之間之對應關係的映射資訊之管理,(2)用以隱藏以頁為單位之讀取/寫入、及以區塊為單位之刪除動作之處理,等。邏輯位址係為對SSD3進行位址指定而被主機2所使用之位址。作為該邏輯位址,例如使用邏輯區塊位址(LBA)。
邏輯區塊位址(LBA)各者與物理位址各者之間之映射之管理係利用作為位址轉換表(邏輯物理位址轉換表)發揮功能之對照表(LUT)34而執行。控制器4利用LUT34,以特定之管理尺寸為單位,對LBA各者與物理位址各者之間之映射進行管理。對應於某LBA之物理位址表示寫入有該LBA之資料之NAND型快閃記憶體5內之物理記憶位置。關於LUT34,亦可為於SSD3之電源接通時將其自NAND型快閃記憶體5加載至DRAM6。
向1個頁中寫入資料時,每1個P/E(Program/Erase,編程/抹除)循環只能實施1次該資料寫入動作。因此,控制器4將對應於某LBA之更新資料寫入至其他物理記憶位置,而非將其寫入至儲存有對應於該LBA之舊資料之物理記憶位置。然後,控制器4更新LUT34,以使該LBA與該其他物理記憶位置相關聯,並且將舊資料無效化。以下,將引用自LUT34之資料(即與邏輯位址有關聯之資料)稱為有效資料。又,將與任何邏輯位址均無關聯之資料稱為無效資料。有效資料係之後有可能被主機2讀取之資料。無效資料係已無可能被主機2讀取之資料。
區塊管理包括壞區塊之管理、耗損平均、廢料收集(GC)等。
如上所述,於NAND型快閃記憶體5中,資料之寫入/讀取係以頁為單位而進行,抹除係以區塊為單位而進行。區塊之抹除需要較長時間,且NAND型快閃記憶體5內之各區塊具有於進行抹除前無法於相同之物理記憶位置覆寫資料之特性。
因此,SSD3係藉由將自主機2所接收到之寫入資料追記至NAND型快閃記憶體5上之新的物理記憶位置之寫入方式而運行。若繼續推進此種追記,則資料之寫入目的地區塊會枯竭,因此要進行用以產生空閒區塊之GC。
於GC中,自已完成寫入之區塊(工作區塊)中選擇GC源區塊,自GC源區塊收集有效資料,並將該有效資料寫入至新的區塊(GC宿區塊),而使原本儲存有效資料之區塊成為空閒區塊。空閒區塊可藉由經過抹除處理,而作為新的寫入目的地區塊使用。作為GC源區塊,大多選擇有效資料數較少之區塊。其原因在於:如此選擇時,空閒區塊之產生效率良好。
控制器4亦可包含主機介面11、CPU(Central Processing Unit,中央處理單元)12、NAND介面13、DRAM介面14等。該等主機介面11、CPU12、NAND介面13、DRAM介面14亦可經由匯流排10而相互連接。
主機介面11作為自主機2接收各種指令,例如I/O(Input/Output,輸入/輸出)指令、各種控制指令等之電路而發揮功能。I/O指令可包括寫入指令、讀取指令、映射釋放指令(清理指令)、格 式指令、快閃指令等。格式指令係用以對記憶體系統(SSD3)整體進行映射釋放之指令。快閃指令係用以藉由將被快取(緩衝)至記憶體系統內之廢資料(用戶資料及相關管理資料)寫入至NAND型快閃記憶體5而使其等全部成為乾淨狀態之指令。
DRAM介面14作為以控制DRAM6之存取之方式構成之DRAM控制器而發揮功能。DRAM6之記憶區域係用以儲存讀取緩衝區(RB)31、寫入緩衝區(WB)32、GC緩衝區33、LUT34、區塊管理資訊35、冷區塊資訊36等。
CPU12係以控制主機介面11、NAND介面13、及DRAM介面14之方式構成之處理器。CPU12藉由執行未圖示之ROM等中所儲存之控制程式(韌體)而進行各種處理。該CPU12除上述FTL之處理以外,亦可執行用以處理來自主機2之各種指令之指令處理等。CPU12之動作係藉由使用CPU12加以執行之上述韌體而控制。再者,FTL處理及指令處理之一部分或全部亦可藉由控制器4內之專用硬體而執行。
又,電腦系統1具有用以回收SSD3之冷區塊內之剩餘容量(超額配置:OP)之功能。冷區塊係該區塊內之大部分資料由冷資料所構成之區塊。冷資料係指存取頻度較低之LBA範圍之資料。冷區塊中基本上會包含很多有效資料,但亦會包含無效資料。無效資料將成為冷區塊內之OP。
於本實施形態中,SSD3對與冷資料及冷區塊相關之資訊進行管理,經由介面將該資訊自SSD3通知主機2,藉此實現SSD3與主機2協作而處理冷資料之方式。藉此,SSD3能與主機2協作,而回收冷區塊內之OP。
參照圖2,對藉由電腦系統1而回收之冷區塊內之OP進行說明。
NAND型快閃記憶體5整體之物理容量(安裝容量)20由標稱容量(容量(Capacity):CAP)211及剩餘容量(OP)212構成。剩餘容量212係物理容量20與標稱容量211之差。將剩餘容量212相對於標稱容量211之比率稱為餘裕率。一般而言,餘裕率越高,則NAND型快閃記憶體5整體上之有效資料量越少,因此GC中之空閒區塊之產生效率越為提高,寫入放大因數(WAF)越為降低。因此,OP之確保較為重要。
關於用戶之工作負荷,假設存取範圍不具局部性之情形時、及存取範圍具有局部性之情形時。存取範圍不具局部性之工作負荷例如相當於如下存取模式,即:於時間序列上近接之存取(複數個指令)中,存取對象之邏輯位址跨及廣大之邏輯位址空間,而未被收斂於狹窄之邏輯位址空間內。又,存取範圍具有局部性之工作負荷例如相當於如下存取模式,即:於時間序列上近接之存取中,存取對象之邏輯位址被收斂於狹窄之邏輯位址空間內。
於用戶之工作負荷之存取範圍不具局部性之情形時,標稱容量211與剩餘容量212均成為實質上有效之容量。
另一方面,於用戶之工作負荷之存取範圍具有局部性之情形時,存在NAND型快閃記憶體5內之冷區塊22增加,又,該等冷區塊22內無效資料所占之記憶區域、即剩餘容量(OP)224增加之情況。
冷區塊22包含例如作為有效資料之冷資料223、及對應於剩餘容量224之無效資料。將向對應之邏輯位址進行存取之頻度較低之SSD3內之資料(例如,存取頻度未達第1閾值之邏輯位址之資料)稱為冷資 料223。又,將區塊內之大部分資料由冷資料所構成之區塊稱為冷區塊22。例如,冷資料之資料量超過第2閾值之區塊、及區塊內之冷資料相對於總資料之比率超過特定比率之區塊為冷區塊22。
冷區塊22不會被用於資料之新的寫入,故而除該冷區塊22以外之儲存有作為有效資料之熱資料221之容量、及剩餘容量(OP)222成為實質上有效之容量。熱資料221係向對應之邏輯位址進行存取之頻度較高之SSD3內之資料(例如,存取頻度為第1閾值以上之資料)。
為回收此種冷區塊22內之剩餘容量(OP)224,例如,可考慮執行以冷區塊22為GC源區塊之GC動作。藉由該GC動作,冷區塊22內所包含之剩餘容量224會被回收,故而能將加上所被回收之剩餘容量224後之剩餘容量225、及儲存有熱資料之容量221用作實質上有效之容量。
參照圖3,對通常之GC動作、及以冷區塊為GC源區塊之GC動作進行說明。此處,對按寫入時期由近至遠依序有區塊251、252、253、254之情形進行例示。各區塊包含由有效資料所構成之有效叢集25A、及由無效資料所構成之無效叢集25B中之至少一者。
圖3(A)表示通常之GC動作中之GC源區塊。於通常之GC動作中,選擇有效資料量較少之區塊251、252作為GC源區塊。各區塊之有效資料量例如可由有效叢集數、區塊內之有效叢集數相對於叢集總數之比率、及相當於有效叢集之位元組等單位表示。
於通常之GC動作中,有效資料量較多之區塊253、254未被選作GC源區塊,而是留下。即,包含存取頻度較低之冷資料之冷區塊253、254即便包含少量無效資料(無效叢集),亦不會成為GC對象,而是留下。因此,區塊253、254中所包含之無效資料部分之容量(OP)於通常 之GC動作中無法被回收。
圖3(B)表示考慮到寫入時期之GC動作中之GC源區塊。於考慮到寫入時期之GC動作中,不僅有效資料量較少之區塊251、252被選作GC源區塊,寫入時期較早之區塊254(例如,包含於較特定日期時間更早之前寫入之有效資料之區塊)亦被選作GC源區塊。即,寫入時期較早之區塊254即便於有效資料量(有效叢集)較多之情形時亦被選作GC源區塊。因此,於考慮到寫入時期之GC動作中,亦能回收寫入時期較早、有效資料量較多之冷區塊254中所包含之無效資料部分之容量(OP)。
但於以有效資料量較多之冷區塊254為GC源區塊之GC動作中,要將冷區塊254內之多數有效資料複製(移動)至GC宿區塊,因此會大量消耗對NAND型快閃記憶體5進行存取之頻帶寬度。
參照圖4,對向NAND型快閃記憶體5進行存取之頻帶寬度進行說明。NAND型快閃記憶體5中包含複數個記憶晶片MC0~MC3。控制器4經由複數個通道,對複數個記憶晶片MC0~MC3分別進行存取。用以對各記憶晶片MC0~MC3進行存取之頻帶寬度有限,若該有限之頻帶寬度全部被消耗,則將無法對記憶晶片MC0~MC3進行存取。因此,會發生要等到頻帶寬度出現空閒為止方能對記憶晶片MC0~MC3進行存取之潛時。
圖4(A)表示出了進行與藉由主機2而發佈之寫入指令相應之動作(主機寫入動作)、及通常之GC動作之情形。於主機寫入動作中,因為要經由主機I/F11及FTL120,將遵照寫入指令而接收之用戶資料寫入至記憶晶片MC0~MC3,故而會消耗對記憶晶片MC0~MC3進行存取之頻帶寬度。又,因為要對應於藉由FTL120內之GC控制部126而執行之通 常之GC動作,自GC源區塊向GC宿區塊261移動資料,故而會消耗對記憶晶片MC0~MC3進行存取之頻帶寬度。因此,於圖4(A)所示之例中,主機寫入動作及通常之GC動作會消耗對記憶晶片MC0~MC3進行存取之頻帶寬度。
繼而,圖4(B)表示出了除主機寫入動作及通常之GC動作以外,進而進行以冷區塊為GC源區塊之冷區塊GC動作之情形。於該情形時,因為要對應於藉由FTL120內之冷區塊GC控制部127而執行之冷區塊GC動作,自作為冷區塊之GC源區塊向作為冷區塊之GC宿區塊262移動資料,故而會進而消耗對記憶晶片MC0~MC3進行存取之頻帶寬度。因此,於圖4(B)所示之例中,主機寫入動作、通常之GC動作、及冷區塊之GC動作會消耗對記憶晶片MC0~MC3進行存取之頻帶寬度。
冷區塊中儲存有大量有效資料,因此為了將該有效資料複製至GC宿區塊262,會大量消耗對記憶晶片MC0~MC3進行存取之頻帶寬度。於主機2向SSD3送出了存取要求時,若SSD3內之冷區塊GC動作消耗對記憶晶片MC0~MC3進行存取之頻帶寬度,則自主機2側而言會理解為相對於存取發生了潛時。潛時之變動係評價SSD3之品質之重要要素,即便其起因於用以回收冷區塊內之OP之動作,亦難以被容許。
又,亦可考慮以給對NAND型快閃記憶體5進行存取之頻帶寬度造成影響之速度,例如,花費非常長的時間,進行回收冷區塊內之OP之GC動作。但GC動作花費較長時間會延長冷區塊內之OP之回收完成之時間,故而不理想。
進而,亦可考慮不回收冷區塊內之OP而將其置之不理之判斷,但於具有局部性之存取模式中,亦有大量產生冷區塊之可能性。因 此,即便各者中所包含之OP為少量,不回收大量冷區塊內之OP而將其置之不理亦不理想。
據此,需要實現既能減少對來自主機2之存取之影響,又能回收冷區塊內之OP之新的功能。於本實施形態中,為實現該功能,主機2與SSD3協作而運行。
以下,對與上述功能相關之構成更具體地進行說明。
返回至圖1,SSD3上所設置之控制器4內之CPU12能作為冷區塊控制介面(I/F)部121、區塊管理部122、冷區塊控制部123、讀取控制部124、寫入控制部125、GC控制部126、及冷區塊GC控制部127而發揮功能。
冷區塊控制I/F部121具有與主機2通信以控制SSD3內之冷區塊之介面功能。
區塊管理部122針對SSD3內之每一個區塊,逐一對包含抹除次數(編程/抹除循環數)、抹除序號、有效資料數(有效資料量)等之區塊管理資訊35進行管理。區塊管理部122監視例如對各區塊之寫入動作、清理(映射釋放)動作、抹除動作等,每當此等動作實施,便更新區塊管理資訊35。
冷區塊控制部123利用區塊管理資訊35,自NAND型快閃記憶體5內之複數個區塊B0~Bm-1中,選擇冷區塊。然後,冷區塊控制部123對應於例如來自主機2之問詢,產生與被選擇之冷區塊相關之冷區塊資訊36。冷區塊資訊36包含可自冷區塊回收之OP量、及用以使冷區塊成為可寫入資料之區塊(空閒區塊)之處理時間或處理量等。
讀取控制部124基於與被讀取指令所指定之邏輯位址 (LBA)對應之LUT34之條目,求出對應於LBA之物理位址,並自NAND型快閃記憶體5讀出與讀取指令相應之資料。
寫入控制部125將遵照寫入指令自主機2所接收到之用戶資料蓄存至DRAM6上之寫入緩衝區32。寫入控制部125係預先確保用以蓄存用戶資料之寫入緩衝區32之區域,於無法確保該區域之期間,不自主機2受理寫入指令。
然後,一旦於寫入緩衝區32內蓄存有與NAND型快閃記憶體5之寫入單位相當之量之用戶資料,寫入控制部125便將該與寫入單位相當之量之用戶資料傳送至NAND型快閃記憶體5之晶片(晶片之資料閂鎖)。寫入控制部125釋放寫入緩衝區32內之蓄存被傳送之用戶資料之區域。
繼而,寫入控制部125指示NAND型快閃記憶體5之晶片執行編程。即,寫入控制部125對NAND型快閃記憶體5之晶片發送編程指令,藉此使該晶片將被傳送之用戶資料編程至寫入目的地區塊。晶片內之記憶單元陣列包含複數個區塊。區塊大致分為兩種:一,儲存有效資料、無法寫入新資料之區塊(工作區塊);二,不儲存有效資料、藉由經過抹除處理便可用於新的資料之寫入之區塊(空閒區塊)。自1個以上空閒區塊中,選擇1個區塊,藉由經過抹除處理,而將其分配為寫入目的地區塊。寫入目的地區塊可儲存有效資料。
GC控制部126亦能利用GC緩衝區33,與如上所述之寫入控制部125所實施之寫入動作同樣地,對NAND型快閃記憶體5進行寫入。GC控制部126自儲存有有效資料之工作區塊群中,選擇GC源區塊,將該GC源區塊內之有效資料寫入至空閒區塊群中被確保為寫入目的地區塊之 GC宿區塊。
又,冷區塊GC控制部127亦能與GC控制部126同樣地,對NAND型快閃記憶體5進行寫入。冷區塊GC控制部127以冷區塊為GC源區塊,將該GC源區塊內之有效資料寫入至空閒區塊群中被確保為寫入目的地區塊之GC宿區塊。GC控制部127亦可利用與GC緩衝區33不同之緩衝區,執行GC動作。
其次,對主機2之構成進行說明。主機2具有用以對作為DAS而連接之SSD3進行存取之功能。又,主機2亦可具有用以對網路(雲)上之儲存器進行存取之功能。
主機2係執行各種程式之資訊處理裝置。藉由資訊處理裝置而執行之程式包括應用層41、作業系統(OS)42、檔案系統43等。
正如一般所知,作業系統(OS)42係以管理主機2整體,控制主機2內之硬體,執行用以使應用可使用硬體及SSD3之控制之方式構成之軟體。
檔案系統43係用以進行操作(創建、保存、更新、刪除等)檔案用之控制。例如,亦可將ZFS(Zettabyte File System,動態檔案系統)、Btrfs、XFS、ext4、NTFS(New Technology File System,新技術檔案系統)等用作檔案系統43。或者,亦可將檔案對象系統(例如,對象儲存背景程式(Ceph Object Storage Daemon))、密鑰儲存系統(Key Value Store System)(例如,岩石數據庫(Rocks DB))用作檔案系統43。
各種應用軟體線程於應用層41上運行。作為應用軟體線程之例,有用戶端軟體、資料庫軟體、虛擬機器等。
於應用層41需將讀取指令或寫入指令等請求送出至SSD3 時,應用層41向OS42送出該請求。OS42將該請求送出至檔案系統43。檔案系統43將該請求轉換成指令(讀取指令、寫入指令等)。檔案系統43將指令送出至SSD3。當接收到來自SSD3之回應時,檔案系統43將該回應送出至OS42。OS42將該回應送出至應用層41。
檔案系統43包含冷區塊控制I/F部431。冷區塊控制I/F部431具有與SSD3通信以控制SSD3內之冷區塊之介面功能。冷區塊控制I/F部431例如向SSD3問詢與冷區塊相關之資訊。又,冷區塊控制I/F部431於利用與冷區塊相關之資訊,得知是應當進行冷區塊內之OP之回收之時點之情形時,對SSD3要求回收冷區塊內之OP。
又,檔案系統43亦可進而包含冷資料管理部432。冷資料管理部432對某LBA範圍之資料儲存於哪個SSD進行管理。
圖5表示用以回收電腦系統1中之冷區塊內之OP之動作的例。此處,SSD3作為DAS,1對1地連接於主機2。
首先,主機2向SSD3問詢冷區塊資訊36。SSD3對應於該問詢,將冷區塊資訊36發送至主機2。冷區塊資訊36包含與SSD3之NAND型快閃記憶體5內之冷區塊相關之資訊。更具體而言,冷區塊資訊36包含:可自冷區塊回收之OP量;僅進行了自冷區塊回收OP之動作(冷區塊GC動作)時所推定出之處理時間或處理量等。
主機2利用冷區塊資訊36,對是否要對SSD3要求冷區塊GC之執行進行判定。主機2例如,主機2處於閒置狀態之情形時,即使執行了冷區塊GC,對自主機2向SSD3進行存取之影響較小之情形時,對SSD3要求冷區塊GC之執行。SSD3對應於主機2之要求,開始對NAND型快閃記憶體5執行冷區塊GC。
又,圖6表示用以回收冷區塊內之OP之電腦系統1內之構成。主機2具備冷區塊控制I/F部431。SSD3具備冷區塊控制I/F部121,FTL120中具備區塊管理部122、冷區塊控制部123、及冷區塊GC控制部127。以下,對各部用以回收冷區塊內之OP之程序進行說明。
(1)SSD3之區塊管理部122對該SSD3內之每一區塊,管理抹除次數(編程/抹除循環數)、抹除序號、有效資料數(有效資料量)等區塊管理資訊35。
圖7表示藉由區塊管理部122而產生及更新之區塊管理資訊35之一構成例。區塊管理資訊35包含與NAND型快閃記憶體5內之複數個區塊B0~Bm-1對應之複數個記錄。各記錄包含例如區塊編號、抹除次數、抹除序號、及有效資料量。
對應於某區塊之記錄中,「區塊編號」表示分配給該區塊之區塊編號。再者,亦可使用用以識別該區塊之任意資訊以取代區塊編號。
「抹除次數」表示該區塊被抹除之次數(例如,至此為止對該區塊實施之抹除處理之次數)。因此,隨著對該區塊實施抹除處理,對應於該區塊之抹除次數便會增加1。
「抹除序號」係自例如某時間點(例如,SSD3之使用開始時間點)起,每當對NAND型快閃記憶體5內之任一個區塊實施抹除處理便遞增計數之編號,且被設定為與該被實施抹除處理之區塊對應之記錄之「抹除處理編號」。
「有效資料量」表示對應之區塊中所包含之有效資料之量。各區塊之有效資料量既可由叢集數表示,亦可由百分比表示,或可以 如位元組之單位表示。
(2)SSD3之冷區塊控制部123利用區塊管理資訊35,自NAND型快閃記憶體5內之複數個區塊B0~Bm-1中選擇冷區塊,產生冷區塊之清單。所產生之清單中包含例如與被選作冷區塊之一個以上區塊對應之一個以上區塊編號。冷區塊係例如改寫時期較早之區塊。例如,若改寫之日期時間早於特定日期時間,則冷區塊控制部123將某區塊判定為冷區塊。
再者,冷區塊控制部123亦可利用每區塊之抹除序號,對某區塊是否為冷區塊進行判定。如上所述,抹除序號係自例如某時間點(例如,SSD3之使用開始時間點)起,每當對NAND型快閃記憶體5內之任一個區塊實施抹除處理便遞增計數之編號。抹除序號與該被實施抹除處理之區塊相關聯。冷區塊控制部123亦可將抹除序號小於特定編號之區塊判定為冷區塊。又,冷區塊控制部123亦可對最新之抹除序號(抹除序號之最大值)與所關注之區塊之抹除序號進行比較,若兩者之差超過第3閾值,則將該區塊判定為冷區塊。
或者,冷區塊控制部123亦可將抹除次數未達第4閾值之區塊判定為冷區塊。其原因在於:抹除次數較少之區塊未被選作GC源區塊而留下,意味著其為大量包含存取頻度較低之冷資料之冷區塊。
(3)主機2之冷區塊控制I/F部431向SSD3問詢冷區塊資訊36。
(4)SSD3之冷區塊控制部123經由冷區塊控制I/F部121,受理主機2對冷區塊資訊36之問詢。冷區塊控制部123對應於該問詢,而基於所產生之冷區塊之清單產生冷區塊資訊36。冷區塊資訊36例如包含: 於在SSD3中僅執行用以回收冷區塊內的OP之處理之情形時(未自主機2發佈新的I/O指令之情形時等)自冷區塊內之有效資料量推定出的自該開始至完成為止之處理時間或處理量、及隨著該處理之完成變得可利用之OP量(即,所要回收之冷區塊內之OP量)。冷區塊控制部123經由冷區塊控制I/F部121,向主機2發送冷區塊資訊36。
圖8表示藉由冷區塊控制部123而產生之冷區塊資訊36之一構成例。冷區塊資訊36包含與被判別為冷區塊之一個以上區塊對應之一個以上記錄。各記錄包含例如區塊編號、處理時間(或處理量)、及OP回收量。
對應於某冷區塊之記錄中,「區塊編號」表示分配給該區塊之區塊編號。「處理時間」表示推定為使該區塊成為GC源區塊之GC動作所需之處理時間(或處理量)。「OP回收量」表示藉由以該區塊為GC源區塊之GC動作而回收之記憶容量。
再者,亦可將包含僅設定有「區塊編號」之值之記錄之冷區塊資訊36用作程序(2)之冷區塊之清單。
(5)主機2之冷區塊控制I/F部431自SSD3接收冷區塊資訊36,並利用該冷區塊資訊36,對是否為應進行冷區塊內之OP之回收之時點進行判定。冷區塊控制I/F部431基於推定為使冷區塊成為GC源區塊之GC動作所需之處理量、對SSD3進行存取之頻度、主機2之資源處於忙碌狀態之時間、正由主機2之處理器執行之工序之量中之至少任一者,對是否為應進行冷區塊內之OP之回收之時點進行判定。
更具體而言,冷區塊控制I/F部431基於在主機2上同時運行之工序數、或各種資源處於忙碌狀態之時間等指標,於對SSD3進行存 取之頻度較低時,判定為應進行冷區塊內之OP之回收之時點。冷區塊控制I/F部431於例如工序數未達第4閾值之情形時、資源處於忙碌狀態之時間未達第5閾值之情形時等,判定為應進行冷區塊內之OP之回收之時點。關於第4閾值及第5閾值,例如可為利用冷區塊資訊36,於SSD3中僅進行用以回收冷區塊內之OP之處理之情形時之處理時間越長,則將其設定得越小。又,關於第4閾值或第5閾值,亦可為利用冷區塊資訊36,隨著於SSD3中用以回收冷區塊內之OP之處理之完成變得可利用之OP量越多,則將其設定得越大。
(6)冷區塊控制I/F部431於判定為應進行冷區塊內之OP之回收之時點之情形時,向SSD3發佈回收冷區塊內之OP之請求。
作為實現該請求之方法之一例,例如有利用NVMe規格之裝置自測(Device self-test)之方法。裝置自測指令分為NVMe Admin指令,主要用於裝置自身之測試。按照要求,裝置自測處理應於後台執行。因此,於需要處理其他指令之情形時,SSD3之控制器4會暫且中斷裝置自測處理,而處理該其他指令。該其他指令之處理完成後,控制器4再重新開始裝置自測處理。
圖9表示出了裝置自測所使用之指令之格式。如圖9所示,於與指令內之[03:00]位元對應之欄位,設定特定出藉由該指令而發生之行為之自測碼(STC)。對應於在該欄位設定“1h”或“2h”之指令,開始其所關聯之自測作業。又,對應於在該欄位設定“Fh”之指令,中斷(abort)正在執行之裝置自測。
(7)SSD3之冷區塊GC控制部127對應於自主機2接收到了回收冷區塊內之OP之請求,而進行回收冷區塊內之OP之動作。即,於SSD3 中,除通常之動作(主機寫入、GC等)以外,亦進行回收冷區塊內之OP之動作。
冷區塊GC控制部127藉由執行例如以程序(2)中所產生之清單所示之各冷區塊為GC源區塊之GC動作,而回收冷區塊內之OP。更具體而言,冷區塊GC控制部127讀出(GC讀取)作為GC源區塊之冷區塊內之有效資料(冷資料),並將其蓄存至GC緩衝區33。然後,一旦GC緩衝區33中蓄存有相當於寫入單位之量(相對於頁之量)之資料,便將該資料寫入至冷區塊之GC宿區塊(GC寫入)。
(8)冷區塊GC控制部127於清單所示之所有冷區塊內之OP已被回收之情形時(即,以所有冷區塊為GC源區塊之GC處理完成之情形時),通知主機2該完成訊息。
再者,於上述程序(7)中,主機2之冷區塊控制I/F部431亦可根據主機2上之工序數或資源之狀況,向SSD3發佈將回收冷區塊內之OP之處理中斷之請求。例如,於使用NVMe之裝置自測指令之情形時,冷區塊控制I/F部431發佈已將用以指示裝置自測之中斷(abort)之值設定完畢之指令,藉此要求SSD3將回收冷區塊內之OP之處理中斷。
SSD3之冷區塊GC控制部127遵照此種指令之要求,將回收冷區塊內之OP之動作中斷。藉此,SSD3移行至通常之動作(主機寫入、GC等)。然後,冷區塊控制部123對應於中斷,更新程序(2)中所產生之冷區塊之清單。於重新開始回收冷區塊內之OP之動作之情形時,例如,主機2之冷區塊控制I/F部431自向SSD3問詢冷區塊資訊36之程序(3)開始。
又,作為回收OP之對象之區塊亦可為包含為了資料保留 (可靠性)而應移動之資料之區塊。於該情形時,例如,基於作為資料保留對策而實施之巡迴(巡邏)中讀取時之錯誤校正之錯誤位元數等,特定出包含發生保留錯誤之可能性較高之資料之區塊。藉由將針對上述冷區塊之動作替換成針對所特定出之區塊之動作,即可回收該區塊內之OP。
圖10之流程圖表示出了藉由SSD3之控制器4而執行之冷區塊管理處理的程序之例。
控制器4產生(更新)區塊管理資訊35(步驟S11)。區塊管理資訊35中包含如圖7所示之每個區塊之記錄。控制器4在對應於與自主機2所接收到之指令相應之動作、或廢料收集動作,而發生抹除動作之情形時、或各區塊之有效資料量變動之情形時,更新區塊管理資訊35。
繼而,控制器4對是否為列出冷區塊清單之時點進行判定(步驟S12)。控制器4例如每隔固定時間,便判定為列出冷區塊清單之時點。
於為列出冷區塊清單之時點之情形時(步驟S12為是),控制器4產生(更新)冷區塊之清單(步驟S13)。控制器4利用區塊管理資訊35,檢測出被推定為冷區塊之區塊,藉此產生(更新)冷區塊之清單。
於不為列出冷區塊清單之時點之情形時(步驟S12為否),跳過步驟S13。
然後,控制器4對自主機2是否有冷區塊資訊36之問詢進行判定(步驟S14)。於無冷區塊資訊36之問詢之情形時(步驟S14為否),返回至步驟S11,繼續執行區塊管理資訊35之更新。
另一方面,於有冷區塊資訊36之問詢之情形時(步驟S14為是),控制器4利用區塊管理資訊35及冷區塊之清單,產生冷區塊資訊 36(步驟S15)。然後,控制器4將所產生之冷區塊資訊36發送至主機2(步驟S16)。
圖11之流程圖表示出了藉由SSD3之控制器4而執行之OP回收控制處理的程序之例。
控制器4對是否被主機2指示了回收冷區塊內之OP進行判定(步驟S21)。於未被指示回收冷區塊內之OP之情形時(步驟S21為否),返回至步驟S21。
於被指示了回收冷區塊內之OP之情形時(步驟S21為是),控制器4執行冷區塊內之OP回收處理、即以冷區塊為GC源區塊之GC處理(步驟S22)。
然後,一旦該冷區塊內之OP回收處理完成,控制器4便通知主機2回收已完成(步驟S23)。
又,圖12之流程圖表示出了藉由主機2而執行之冷區塊控制處理的程序之例。
主機2對是否為向SSD3問詢冷區塊資訊36之時點進行判定(步驟S31)。主機2例如每隔固定時間,便判定為問詢冷區塊資訊36之時點。於不為問詢冷區塊資訊36之時點之情形時(步驟S31為否),返回至步驟S31。
於為問詢冷區塊資訊36之時點之情形時(步驟S31為是),主機2向SSD3問詢冷區塊資訊36(步驟S32)。然後,主機2對應於該問詢,接收藉由SSD3而發送之冷區塊資訊36(步驟S33)。
繼而,主機2對是否為冷區塊內之OP回收指示時點進行判定(步驟S34)。主機2基於例如在主機2上同時運行之工序數較少等指標, 檢測出對SSD3進行存取之頻度較低之時點,作為冷區塊內之OP回收指示時點。於判定不為冷區塊內之OP回收指示時點之情形時(步驟S34為否),返回至步驟S31。
另一方面,於判定為冷區塊內之OP回收指示時點之情形時(步驟S34為是),控制器4向SSD3發佈冷區塊內之OP回收之請求(步驟S35)。
然後,主機2對是否自SSD3接收到了OP回收完成通知進行判定(步驟S36)。於未接收到完成通知之情形時(步驟S36為否),返回至步驟S36。另一方面,於接收到了完成通知之情形時(步驟S36為是),結束處理。
綜上所述,主機2利用自SSD3所接收到之冷區塊資訊36,於對來自主機2之存取之影響較少之時點,對SSD3指示冷區塊內之OP之回收。藉此,既能減少對來自主機2之存取之影響,又能於SSD3中回收冷區塊內之OP。
(第2實施形態)
於第1實施形態中,SSD3對應於來自主機2之問詢,將包含回收冷區塊內之OP所需之處理時間或處理量、及可自冷區塊回收之OP量等之冷區塊資訊36發送至主機2。與此相對地,於第2實施形態中,無論有無來自主機2之問詢,只要滿足特定條件,SSD3便會將內容為應回收冷區塊內之OP之資訊通知主機2。
第2實施形態之電腦系統1之構成與第1實施形態之電腦系統1相同,於第2實施形態與第1實施形態中,僅藉由SSD3之冷區塊控制部 123而執行之處理之程序不同。以下,僅對與第1實施形態不同之點進行說明。
冷區塊控制部123利用區塊管理資訊35,自NAND型快閃記憶體5內之複數個區塊B0~Bm-1中,選擇冷區塊,並產生冷區塊之清單。然後,冷區塊控制部123基於該冷區塊之清單,產生冷區塊資訊36。如參照圖8所述般,冷區塊資訊36包含:例如,於在SSD3中僅執行用以回收冷區塊內之OP之回收處理之情形時(未自主機2發佈新的I/O指令之情形時等),由冷區塊內之有效資料量推定出之自該回收處理開始至完成為止之處理時間或處理量;及藉由該回收處理之完成而變得可利用之OP量(即,所要回收之冷區塊內之OP量)。
冷區塊控制部123利用冷區塊資訊36,對是否應回收冷區塊內之OP進行判定。例如,於冷區塊內之OP量超過第6閾值之情形時,冷區塊控制部123判定應回收冷區塊內之OP。冷區塊控制部123於判定應回收冷區塊內之OP之情形時,將內容為應回收冷區塊內之OP之資訊(即,內容為需要執行使冷區塊成為可寫入資料之一個以上區塊之處理之資訊)通知主機2。又,冷區塊控制部123亦可通知主機2冷區塊內之OP量(無效資料量)超過了第6閾值。又,冷區塊控制部123亦可將冷區塊資訊36連同如上通知一併發送至主機2。
主機2之冷區塊控制I/F部431根據該通知,對是否為應進行冷區塊內之OP之回收之時點進行判定。冷區塊控制I/F部431基於在主機2上同時運行之工序數、及各種資源處於忙碌狀態之時間等指標,於對SSD3進行存取之頻度較低時,判定為應進行冷區塊內之OP之回收之時點。然後,冷區塊控制I/F部431於判定為應進行冷區塊內之OP之回收之 時點之情形時,向SSD3發佈回收冷區塊內之OP之請求。
關於用以回收冷區塊內之OP之處理,與第1實施形態中所述者相同。
藉由以上構成,能於SSD3中,對是否應回收冷區塊內之OP進行判斷。主機2無需對SSD3進行與冷區塊相關之問詢,便會被SSD3通知內容為應回收冷區塊內之OP之資訊,相應地能基於主機2上之工序、及資源之狀況,對是否為應進行冷區塊內之OP之回收之時點進行判斷。
圖13之流程圖表示出了藉由SSD3之控制器4而執行之冷區塊管理處理的程序之例。
首先,控制器4產生(更新)區塊管理資訊35(步驟S41)。繼而,控制器4對是否為列出冷區塊清單之時點進行判定(步驟S42)。控制器4例如每隔固定時間,便判定為列出冷區塊清單之時點。
於不為列出冷區塊清單之時點之情形時(步驟S42為否),返回至步驟S41,繼續執行區塊管理資訊35之更新。
另一方面,於為列出冷區塊清單之時點之情形時(步驟S42為是),控制器4產生(更新)冷區塊之清單(步驟S13)。控制器4利用區塊管理資訊35,對被推定為冷區塊之區塊進行檢測,藉此產生(更新)冷區塊之清單。然後,控制器4利用區塊管理資訊35及冷區塊之清單,產生冷區塊資訊36(步驟S44)。
繼而,控制器4對是否需要回收冷區塊內之OP進行判定(步驟S45)。基於例如冷區塊內之OP量是否超過閾值,於冷區塊內之OP量超過閾值之情形時,控制器4判定需要回收冷區塊內之OP。於判定無需回收冷區塊內之OP之情形時(步驟S45為否),返回至區塊B41。
另一方面,於判定需要回收冷區塊內之OP之情形時(步驟S45為是),控制器4通知主機2需要回收冷區塊內之OP(步驟S45)。控制器4亦可將冷區塊資訊36連同該通知一併發送至主機2。
又,圖14之流程圖表示出了藉由主機2而執行之冷區塊控制處理的程序之例。
主機2對是否自SSD3接收到了內容為需要回收冷區塊內之OP之通知進行判定(步驟S51)。於未接收到內容為需要回收冷區塊內之OP之通知之情形時(步驟S51為否),返回至步驟S51。
於接收到了內容為需要回收冷區塊內之OP之通知之情形時(步驟S51為是),主機2執行步驟S52至步驟S54之程序。該步驟S52至步驟S54之程序與參照圖12之流程圖所述之步驟S34至步驟S36之程序相同。
如此,便亦可於SSD3中而非於主機2中,對是否需要回收冷區塊內之OP進行判斷,並自SSD3通知主機2需要回收冷區塊內之OP。
(第3實施形態)
於第1實施形態中,SSD3將包含回收冷區塊內之OP所需之處理時間或處理量、及可自冷區塊回收之OP量等之冷區塊資訊36發送至主機2;又,於第2實施形態中,SSD3將內容為應回收冷區塊內之OP之資訊通知主機2。與此相對地,於第3實施形態中,SSD3將表示冷資料之邏輯位址範圍之清單發送至主機2。
第3實施形態之電腦系統1之構成與第1及第2實施形態之電腦系統1相同,於第3實施形態與第1及第2實施形態中,僅藉由SSD3之冷區塊控制部123及主機2之冷區塊控制I/F部431而執行之處理之程序不同。 以下,僅對與第1及第2實施形態不同之點進行說明。
圖15表示出了本實施形態之電腦系統1之用以回收冷區塊內的OP之動作之例。此處,SSD3作為直接附接儲存器(DAS),1對1地連接於主機2。
首先,主機2向SSD3問詢冷區塊資訊36。SSD3(控制器4)對應於該問詢,產生冷區塊資訊36,並將其發送至主機2。冷區塊資訊36包含與SSD3之NAND型快閃記憶體5內之冷資料對應的邏輯位址之範圍(LBA範圍)之清單。冷資料係冷區塊內之有效資料,且係向對應之LBA範圍進行存取之頻度較低之資料。
如圖15所示,冷區塊資訊36包含分別表示冷資料之LBA範圍之一個以上條目。LBA範圍例如由起始LBA及其長度(例如,邏輯區塊數)所表示。又,LBA範圍亦可由起始LBA及終結LBA所表示。再者,冷區塊資訊36中亦可進而包含可自冷區塊回收之OP量、及用以使冷區塊成為可寫入資料之區塊(即,用以自冷區塊回收OP)之推定的SSD3之處理時間或處理量等。
冷區塊資訊36中所包含、與冷資料對應之LBA範圍之清單可按例如遵照NVMe規格之資料集管理指令之格式而製作。於該格式中,如圖16所示,例如,最大可表示256個LBA範圍(範圍0至範圍255),關於各LBA範圍,包含起始LBA、邏輯區塊長度、及上下文屬性。
「起始LBA」表示LBA範圍之開頭之LBA。「邏輯區塊長度」表示該LBA範圍內所包含之邏輯區塊數量(NLB)。「上下文屬性」表示與該LBA範圍相關之各種屬性。於該格式中,與各LBA範圍對應之資訊之尺寸為16位元組。因此,能將表示256個LBA範圍之冷區塊資訊36以 4千位元組(KiB)發送至主機2。
主機2利用自SSD3所接收到之冷區塊資訊36,向SSD3發佈指定了冷資料之LBA範圍之讀取指令。SSD3遵照讀取指令,自NAND型快閃記憶體5讀出被指定之LBA範圍之冷資料,並將其發送至主機2。藉由以上,主機2能自SSD3讀出冷資料。
然後,主機2對SSD3發佈指定了該LBA範圍且用以寫入所讀出之冷資料之寫入指令。再者,該寫入指令中亦可包含表示被寫入之資料為冷資料之資訊。
作為表示被寫入之資料為冷資料之資訊,例如可使用存取頻度,該存取頻度係上述NVMe之資料集管理指令之「上下文屬性」中所設定之屬性之一。圖17表示可在與上下文屬性之[03:00]位元對應之存取頻度之欄位中設定之值。於圖17所示之例中,表示以較低頻度向對應之LBA範圍內進行寫入之值即“0010b”或“0011b”用作表示被寫入之資料為冷資料之資訊。
SSD3根據寫入指令,向NAND型快閃記憶體5寫入該冷資料。SSD3將冷資料寫入至與此前寫入有冷資料之第1物理記憶區域不同之第2物理記憶區域(主機寫入之寫入目的地區塊)。SSD3亦可根據寫入指令中所包含、表示被寫入之資料為冷資料之資訊,選擇適於寫入冷資料之區塊(例如,編程/抹除循環數較多之區塊)作為寫入目的地區塊。藉由以上,主機2能向SSD3新寫入冷資料。
藉由此種冷資料之讀出及寫入,能將冷資料自冷區塊移動至用於主機寫入之寫入目的地區塊。SSD3更新LUT34,以使被寫入指令所指定之LBA範圍映射於被新寫入該冷資料之第2物理記憶區域。因此, 此前寫入有冷資料之冷區塊內之第1物理記憶區域成為不映射於任何LBA、儲存無效資料之區域。
主機2對冷區塊資訊36所示之每個LBA範圍,逐一執行上述動作。藉由此種動作,於SSD3中,若冷區塊內之所有冷資料(有效資料)被移動至用於主機寫入之寫入目的地區塊,則該冷區塊成為不儲存有效資料、藉由經過抹除處理可用以寫入新的資料之空閒區塊。因此,能回收冷區塊內之OP。
再者,作為回收OP之動作之對象之區塊亦可為包含為了資料保留(可靠性)應移動之資料之區塊。於該情形時,例如,基於作為資料保留對策而實施之巡迴中的讀取時之錯誤校正中之錯誤位元數等,特定出發生保留錯誤之可能性較高之資料。藉由將包含與上述冷資料對應之LBA範圍之清單冷區塊資訊36替換成包含與該特定出之資料對應之LBA範圍之清單的資訊,能將包含發生保留錯誤之可能性較高之資料的區塊內之OP回收。
圖18之流程圖表示出了藉由SSD3之控制器4而執行之冷區塊管理處理的程序之例。步驟S61至步驟S64之程序與參照圖10之流程圖所述之步驟S11至步驟S14之程序相同。
於自主機2有冷區塊資訊36之問詢之情形時(步驟S64為是),控制器4產生包含表示冷資料之清單之冷區塊資訊36(步驟S65)。表示冷資料之清單為例如基於圖16所示之格式之清單,包含儲存有冷資料之LBA區域之開頭之LBA(起始LBA)及其長度(邏輯區塊數:NLB)。控制器4將所產生之包含表示冷資料之清單之冷區塊資訊36發送至主機2(步驟S66)。
又,圖19之流程圖表示出了藉由主機2而執行之冷區塊控制處理的程序之例。
主機2對是否為向SSD3問詢冷區塊資訊36之時點進行判定(步驟S71)。主機2例如每隔固定時間,便判定為問詢冷區塊資訊36之時點。於不為問詢冷區塊資訊36之時點之情形時(步驟S71為否),返回至步驟S71。
於為問詢冷區塊資訊36之時點之情形時(步驟S71為是),主機2向SSD3問詢冷區塊資訊36(步驟S72)。然後,主機2接收對應於該問詢藉由SSD3而發送、包含表示冷資料之清單之冷區塊資訊36(步驟S73)。表示冷資料之清單中包含與對應於冷資料之一個以上LBA範圍對應之一個以上條目。
繼而,主機2對是否為冷區塊內之OP之回收時點進行判定(步驟S74)。主機2基於例如在主機2上同時運行之工序數較少等指標,檢測出對SSD3進行存取之頻度較低之時點,作為冷區塊內之OP之回收時點。於判定不為冷區塊內之OP之回收時點之情形時(步驟S74為否),返回至步驟S71。
另一方面,於判定為冷區塊內之OP之回收時點之情形時(步驟S74為是),主機2基於表示冷資料之清單內之某條目,向SSD3發佈指定了與冷資料對應之LBA範圍之讀取指令(步驟S75)。於SSD3中,遵照該讀取指令,讀出被指定之LBA範圍之冷資料,並將其發送至主機2。
繼而,主機2向SSD3發佈指定了該LBA範圍並用以寫入所讀出之冷資料之寫入指令(步驟S76)。於SSD3中,遵照該寫入指令,向其他第2物理記憶區域而非向儲存有冷資料之第1物理記憶區域寫入冷資料。 然後,於SSD3中,更新LUT34,以使該LBA範圍與第2物理記憶區域相關聯,並且將此前儲存之第1物理記憶區域之資料無效化。因此,第2物理記憶區域中所儲存之資料為有效資料,第1物理記憶區域中所儲存之資料成為無效資料。
然後,主機2對表示冷資料之清單中是否包含表示應移動之冷資料之其他條目進行判定(步驟S77)。於清單中包含其他條目之情形時(步驟S77為是),返回至步驟S75,繼續執行基於該其他條目之處理。
於清單中未包含其他條目之情形時(步驟S77為否),即,基於清單內之所有條目之處理均已完成之情形時,結束冷區塊控制處理。
如上所述,SSD3將包含表示冷資料之LBA範圍之清單之冷區塊資訊36發送至主機2。然後,主機2發佈用以讀出清單所示之LBA範圍之冷資料之讀取指令、及用以向該LBA範圍寫入所讀出之冷資料之寫入指令。遵照該等指令,將清單所示之邏輯位址範圍之冷資料自冷區塊移動至新的寫入目的地區塊,藉此回收冷區塊內之OP。主機2能控制發佈指令之時點,因此能於主機2之資源、或對自主機2向SSD3之存取造成之影響較低之時點,使SSD3執行用以回收冷區塊內之OP之動作。
(第4實施形態)
於第3實施形態中,SSD3將包含表示冷資料之邏輯位址範圍之清單之冷區塊資訊36發送至主機2,遵照藉由主機2而發佈之指令,將清單所示之邏輯位址範圍之冷資料自冷區塊移動至新的寫入目的地區塊,藉此回收冷區塊內之OP。與此相對地,於第4實施形態中,不僅將清單所示之邏輯位址範圍之冷資料移動至新的寫入目的地區塊,而且將其周邊之邏輯位 址之資料亦移動至新的寫入目的地區塊。
第4實施形態之電腦系統1之構成與第1至第3實施形態之電腦系統1相同,於第4實施形態與第1至第3實施形態中,僅藉由主機2之冷區塊控制I/F部431而執行之處理之程序不同。以下,僅對與第1至第3實施形態不同之點進行說明。
圖20表示於回收冷區塊內之OP時,將冷資料之LBA範圍周邊之LBA之資料亦移動至新的寫入目的地區塊之例。此處,假設將包含與冷區塊51(冷區塊A)內之冷資料(有效資料)對應之LBA範圍之清單之冷區塊資訊36自SSD3發送至主機2之情形。
冷區塊51中包含有效資料511、及無效資料512、513、514。該等無效資料512、513、514係藉由如下方法而獲得者,即:遵照將與有效資料511同一時期寫入之資料覆寫至對應之LBA之要求,向其他區塊52、53、54(區塊B、C、D)寫入新的資料,藉此使該與有效資料511同一時期寫入之資料無效化。
映射於無效資料512之物理記憶位置之LBA與遵照該覆寫至LBA之要求而新寫入至區塊52之資料521之物理記憶位置映射。映射於無效資料513之物理記憶位置之LBA與遵照該覆寫至LBA之要求而新寫入至區塊53之資料531之物理記憶位置映射。又,映射於無效資料514之物理記憶位置之LBA與遵照該覆寫至LBA之要求而新寫入至區塊54之資料541之物理記憶位置映射。
該等資料521、531、541可以說是於向冷區塊51寫入時與有效資料511同一時期寫入,但其中一部分藉由覆寫(改寫)而寫入至其他區塊52、53、54,並經碎片化之資料。因此,冷區塊51內之有效資料511 與區塊52、53、54內經碎片化後之資料521、531、541係原本於同一時期寫入之一系列資料,故而藉由將該等資料511、521、531、541整合而寫入至一個區塊,可期待提高存取性能。
因此,於進行回收冷區塊51之OP之處理時,將冷區塊51內之有效資料511移動至新的寫入目的地區塊55(冷區塊X),並且將資料521、531、541亦移動至該寫入目的地區塊55。該等資料511、521、531、541亦可按依照對應之LBA之順序,寫入至寫入目的地區塊內。對應於該移動,更新LUT34,以使與資料511、521、531、541對應之LBA範圍與寫入有該等資料511、521、531、541之區塊55之物理記憶位置映射,並且將寫入至區塊51、52、53、54之以往之資料511、521、531、541無效化。藉此,冷區塊51成為不儲存有效資料,藉由經過抹除處理可用以寫入新的資料之空閒區塊。
再者,亦可於第1實施形態及第2實施形態中,在進行冷區塊GC時,與上述同樣地將周邊之LBA之資料亦移動至GC宿區塊。
以下,對用以實現上述處理之構成之一例進行說明。
主機2之冷區塊控制I/F部431利用表示冷區塊51內之冷資料(有效資料)之LBA範圍之清單,如圖21所示,產生表示冷資料之LBA範圍加上與被推定為原初冷資料之資料對應之周邊之LBA(或LBA範圍)所得的清單。周邊之LBA例如為前置於清單所示之LBA範圍之LBA、或後續於該LBA範圍之LBA。
例如,冷區塊控制I/F部431利用起始LBA為“0”且NLB為“10”之第1LBA範圍之條目、及起始LBA為“11”且NLB為“9”之第2LBA範圍之條目,檢測作為其周邊之LBA之“10”。然後,冷區塊控 制I/F部431對LBA為“10”之資料是否為原初冷資料進行判定。冷區塊控制I/F部431於LBA為“10”之資料係例如與第1LBA範圍之資料及第2LBA範圍之資料同一時期寫入至寫入有第1LBA範圍之資料及第2LBA範圍之資料的冷區塊之資料之更新(覆寫)資料的情形時,或係與第1LBA範圍之資料及第2LBA範圍之資料在同一工序寫入至該冷區塊之資料之更新資料的情形時,判定LBA為“10”之資料係原初冷資料。
冷區塊控制I/F部431於判定LBA為“10”之資料係原初冷資料之情形時,變更清單,以使該清單所示之冷資料之LBA範圍內進而包含LBA“10”。例如,如圖21所示,冷區塊控制I/F部431將第1LBA範圍及第2LBA範圍之條目變更成包含第1LBA範圍、第2LBA範圍、及LBA“10”且起始LBA為“0”、NLB為“20”之條目。
藉由利用如此變更後之清單,於回收冷區塊內之OP時,不僅該冷區塊內之冷資料會被移動至新的寫入目的地區塊,而且作為原初冷資料之周邊之LBA之資料亦會被移動至新的寫入目的地區塊,因此不僅能確保OP,亦能提高存取性能。
圖22之流程圖表示出了藉由主機2而執行之冷區塊控制處理的程序之例。步驟S81至步驟S84之程序與參照圖19之流程圖所說明之上述步驟S71至步驟S74之程序相同。
於判定為冷區塊內之OP回收時點之情形時(步驟S84為是),主機2利用所接收到之表示冷資料之清單,製作進而包含被推定出儲存有冷資料之周邊之LBA(LBA範圍)的清單(步驟S85)。因此,所製作出之清單中包含例如表示對應於冷資料之LBA範圍、及被推定為冷資料之資料之LBA(LBA範圍)之一個以上條目。
主機2基於所製作出之清單內之某條目,向SSD3發佈指定了與冷資料、及被推定為冷資料之資料中之至少一者對應之LBA範圍的讀取指令(步驟S86)。於SSD3中,遵照該讀取指令,讀出被指定之LBA範圍之資料,並將其發送至主機2。
主機2向SSD3發佈指定了該LBA範圍且用以寫入被讀出之資料之寫入指令(步驟S87)。於SSD3中,遵照該寫入指令,向其他第2物理記憶區域而非儲存有該資料之第1物理記憶區域寫入資料。然後,於SSD3中,更新LUT34,以使該LBA範圍與第2物理記憶區域相關聯,並且將此前儲存之第1物理記憶區域之資料無效化。因此,第2物理記憶區域中所儲存之資料係有效資料,第1物理記憶區域中所儲存之資料成為無效資料。
然後,主機2對步驟S85中所製作出之清單內是否包含表示應移動之資料之其他條目進行判定(步驟S88)。於清單內包含其他條目之情形時(步驟S88為是),返回至步驟S86,繼續執行基於該其他條目之處理。
於清單內未包含其他條目之情形時(步驟S88為否),即,基於清單內之所有條目之處理均完成之情形時,結束冷區塊控制處理。
(第5實施形態)
於第1至第4實施形態中,在SSD3中,藉由將冷區塊內之冷資料移動至其他區塊,而回收冷區塊內之OP。與此相對地,於第5實施形態中,藉由將SSD3之冷區塊內之冷資料移動至其他儲存器,而回收冷區塊內之OP。
第5實施形態之電腦系統之構成係於與第1至第4實施形態相同之電腦系統1進而設置有其他儲存器而成者,僅藉由主機2之冷區塊控制I/F部431及冷資料管理部432而執行之處理之程序不同。以下,僅對與第1至第4實施形態不同之點進行說明。
圖23表示出了除主機2及第1SSD3以外進而具備第2SSD7之電腦系統1A之用以回收冷區塊內的OP之動作之例。第1SSD3係用以儲存熱資料之熱儲存器,且係作為回收冷區塊內之OP之對象的儲存器。又,第2SSD7係用以儲存冷資料之冷儲存器。再者,作為冷儲存器,亦可使用HDD以取代第2SSD7。第1SSD3及第2SSD7分別作為DAS連接於主機2。
主機2向第1SSD3問詢冷區塊資訊36。第1SSD3對應於該問詢,將冷區塊資訊36發送至主機2。冷區塊資訊36包含與第1SSD3之NAND型快閃記憶體5內之冷資料對應之邏輯區塊位址之範圍(LBA範圍)之清單。關於該冷區塊資訊36,同參照圖15及圖16所述者。
主機2利用冷區塊資訊36,向第1SSD3發佈指定了冷資料之LBA範圍之讀取指令。第1SSD3遵照讀取指令,自NAND型快閃記憶體5讀出所指定之LBA範圍之冷資料,並將其發送至主機2。藉由以上,主機2能自第1SSD3讀出冷資料。
然後,主機2向第2SSD7發佈指定了該LBA範圍且用以寫入被讀出之冷資料之寫入指令。再者,該寫入指令中亦可包含如圖17所示之表示被寫入之資料為冷資料之資訊。
第2SSD7遵照寫入指令,將該冷資料寫入至第2SSD7內之NAND型快閃記憶體。第2SSD7亦可根據寫入指令中所包含、表示被寫入 之資料為冷資料之資訊,選擇適於寫入冷資料之區塊(例如,編程/抹除循環數較多之區塊)作為寫入目的地區塊。又,於第2SSD7中,更新第2SSD7內之LUT,以使藉由寫入指令所指定之LBA範圍映射於寫入有冷資料之物理記憶區域。藉由以上,主機2能向第2SSD7寫入冷資料。
藉由此種冷資料之讀出及寫入,能將冷資料自第1SSD3內之冷區塊移動至第2SSD7內之用於主機寫入之寫入目的地區塊。主機2向第1SSD3發佈指定了被移動之資料之LBA範圍之清理指令。第1SSD3更新LUT34,以使被清理指令指定之LBA範圍成為不映射於任何物理記憶區域之映射釋放狀態。因此,此前寫入有冷資料之冷區塊內之物理記憶區域成為不映射於任何LBA、儲存無效資料之區域。
又,主機2之冷資料管理部432對將某LBA範圍之資料儲存於SSD3、SSD7中之哪一者進行管理。例如,於某LBA範圍之資料已被自第1SSD3移動至第2SSD7之情形時,對將該LBA範圍之資料儲存於第2SSD7中進行管理。該管理係利用例如LBA範圍-儲存器管理表412A。
圖24表示出了LBA範圍-儲存器管理表412A之一構成例。LBA範圍-儲存器管理表412A包含對應於一個以上LBA範圍之一個以上記錄。各記錄包含例如起始LBA、長度(邏輯區塊數)、及儲存器ID(Identification,識別碼)。
在對應於某LBA範圍之記錄中,「起始LBA」表示該LBA範圍之開頭之LBA。「長度」表示該LBA範圍中所包含之邏輯區塊數量(NLB)。「儲存器ID」表示儲存有與該LBA範圍對應之資料之儲存器之識別資訊。例如,若為圖23所示之電腦系統1之構成,則對「儲存器ID」設定賦予給第1SSD3之識別資訊(此處為“0001”)、或賦予給第2SSD7之識 別資訊(此處為“0002”)中之任一者。
如圖24所示,例如,於起始LBA為“500”且NLB為“80”之LBA範圍之資料已被自第1SSD3(儲存器ID“0001”)移動至第2SSD7(儲存器ID“0002”)之情形時,冷資料管理部432將對與起始LBA為“500”且NLB為“80”之LBA範圍對應之記錄所設的儲存器ID由“0001”變更為“0002”。
冷資料管理部432係以如下方式進行控制,即:於被要求對某LBA範圍進行存取之情形時,利用LBA範圍-儲存器管理表412A,對與該LBA範圍相關聯之儲存器ID之儲存器進行存取(例如,對該儲存器發佈指令)。冷資料管理部432例如係以如下方式進行控制,即:利用圖24之更新後之LBA範圍-儲存器管理表412A,被要求對起始LBA為“500”且NLB為“80”之LBA範圍進行存取之情形時,對第2SSD7進行存取。
於主機2中,例如,針對冷區塊資訊36所示之每個LBA範圍,進行如上所述用以將冷資料自第1SSD3移動至第2SSD7之動作。藉由此種動作,第1SSD3內之冷區塊中包含之所有冷資料(有效資料)移動至第2SSD7內之用於主機寫入之寫入目的地區塊後,該冷區塊即成為不儲存有效資料、藉由經過抹除處理可用以寫入新的資料之空閒區塊。因此,能回收冷區塊內之OP。
圖25之流程圖表示出了藉由主機2而執行之冷區塊控制處理的程序之例。
主機2對是否為向第1SSD3問詢冷區塊資訊36之時點進行判定(步驟S91)。主機2例如每隔固定時間,便判定為向第1SSD3問詢冷區塊資訊36之時點。於不為問詢冷區塊資訊36之時點之情形時(步驟S91為 否),返回至步驟S91。
於為問詢冷區塊資訊36之時點之情形時(步驟S91為是),主機2向第1SSD3問詢冷區塊資訊36(步驟S92)。然後,主機2接收藉由第1SSD3而發送、包含表示冷資料之清單之冷區塊資訊36(步驟S93)。表示冷資料之清單中包含與對應於冷資料之一個以上LBA範圍對應之一個以上條目。
繼而,主機2對是否為第1SSD3之冷區塊內之OP之回收時點進行判定(步驟S94)。主機2基於例如在主機2上同時運行之序數較少等指標,檢測出對第1SSD3進行存取之頻度較低之時點,作為冷區塊內之OP之回收時點。於判定不為冷區塊內之OP之回收時點之情形時(步驟S94為否),返回至步驟S91。
另一方面,於判定為冷區塊內之OP之回收時點之情形時(步驟S94為是),主機2基於表示冷資料之清單內之某條目,向第1SSD3發佈指定了與冷資料對應之LBA範圍之讀取指令(步驟S95)。於第1SSD3中,遵照該讀取指令,讀出被指定之LBA範圍之冷資料,並將其發送至主機2。
繼而,主機2向第2SSD7發佈指定了該LBA範圍且用以寫入被讀出之冷資料之寫入指令(步驟S96)。於第2SSD7中,遵照該寫入指令,向某物理記憶位置寫入冷資料。然後,於第2SSD7中,更新LUT,使該LBA範圍與該物理記憶位置相關聯。
一旦第2SSD7中之寫入完成,主機2便向第1SSD3發佈指定了該LBA範圍之清理指令(步驟S97)。於第1SSD3中,將對應於被指定之LBA範圍之物理記憶區域、即寫入有冷資料之物理記憶區域之資料無效 化,並且更新LUT34,以使被指定之LBA範圍成為不映射於任何物理記憶區域之映射釋放狀態。
繼而,主機2更新LBA範圍-儲存器管理表412A內之對應於該LBA範圍之記錄,以表示出對應於該LBA範圍之資料儲存於第2SSD7中(步驟S98)。藉此,主機2能利用LBA範圍-儲存器管理表412A,於對該LBA範圍之資料進行存取之情形時,判斷出應向第2SSD7發佈指令。
然後,主機2對表示冷資料之清單中是否包含表示應移動之冷資料之其他條目進行判定(步驟S99)。於清單中包含其他條目之情形時(步驟S99為是),返回至步驟S95,繼續執行基於該其他條目之處理。
於清單中未包含其他條目之情形時(步驟S99為否),即,基於清單內之所有條目之處理均已完成之情形時,結束冷區塊控制處理。
藉由以上構成,於進而設置有第2SSD7(冷儲存器)之情形時,第1SSD3(熱儲存器)之冷區塊內之冷資料被移動至該第2SSD7。藉此,能不消耗相對於主機寫入之第1SSD3之NAND存取之頻帶寬度地,回收冷區塊內之OP,並且能將冷資料與熱資料分離於不同之SSD3、SSD7。
(第6實施形態)
於第5實施形態中,將第1SSD3之冷區塊內之冷資料寫入至作為DAS連接於主機2之第2SSD7。與此相對地,於第6實施形態中,將第1SSD3之冷區塊內之冷資料寫入至經由網路連接於主機2之其他儲存器。
第6實施形態之電腦系統之構成並非使第5實施形態之電腦系統1A內之第2SSD7為DAS,而是使其為經由網路連接於主機2者,於第 6實施形態與第1至第5實施形態中,僅藉由主機2之冷區塊控制I/F部431而執行之處理之程序不同。以下,僅對與第1至第5實施形態不同之點進行說明。
圖26表示出了除主機2及第1SSD3以外進而具備第2SSD7之電腦系統1B之用以回收冷區塊內的OP之動作之例。第1SSD3係用以儲存熱資料之熱儲存器,且係作為回收冷區塊內之OP之對象之儲存器。又,第2SSD7係用以儲存冷資料之冷儲存器。再者,作為冷儲存器,亦可使用HDD以取代第2SSD7,冷儲存器亦可為複數個。第1SSD3作為DAS連接於主機2。又,第2SSD7係NAS(Network Attached Storage,網路附接儲存器)或雲儲存器等經由網路8連接於主機2之儲存器。
主機2向第1SSD3問詢冷區塊資訊36。第1SSD3對應於該問詢,將冷區塊資訊36發送至主機2。冷區塊資訊36包含與第1SSD3之NAND型快閃記憶體5內之冷資料對應的邏輯位址之範圍(LBA範圍)之清單。關於該冷區塊資訊36,同參照圖15及圖16所述。
主機2利用冷區塊資訊36,向第1SSD3發佈指定了冷資料之LBA範圍之讀取指令。第1SSD3遵照讀取指令,自NAND型快閃記憶體5讀出被指定之LBA範圍之冷資料,並將其發送至主機2。藉由以上,主機2能自第1SSD3讀出冷資料。
然後,主機2經由網路8向第2SSD7發佈指定了該LBA範圍且用以寫入被讀出之冷資料之寫入指令。再者,如圖17所示,該寫入指令中亦可包含表示被寫入之資料為冷資料之資訊。
第2SSD7遵照寫入指令,將該冷資料寫入至第2SSD7內之NAND型快閃記憶體。第2SSD7亦可遵照寫入指令中所包含、表示被寫入 之資料為冷資料之資訊,選擇適於寫入冷資料之區塊(例如,編程/抹除循環數較多之區塊)作為寫入目的地區塊。又,於第2SSD7中,更新第2SSD7內之LUT,以使藉由寫入指令所指定之LBA範圍映射於寫入有冷資料之物理記憶區域。藉由以上,主機2能向第2SSD7寫入冷資料。
藉由此種冷資料之讀出及寫入,能將冷資料自第1SSD3內之冷區塊移動至用於第2SSD7內之主機寫入之寫入目的地區塊。主機2向第1SSD3發佈指定了被移動之資料之LBA範圍之清理指令。第1SSD3更新LUT34,以使被清理指令所指定之LBA範圍成為不映射於任何物理記憶區域之映射釋放狀態。因此,此前寫入有冷資料之冷區塊內之物理記憶區域成為不映射於任何LBA、儲存無效資料之區域。
又,主機2之冷資料管理部432對將某LBA範圍之資料儲存於SSD3、SSD7中之哪一者進行管理。例如,於某LBA範圍之資料已被自第1SSD3移動至第2SSD7之情形時,對將該LBA範圍之資料儲存於經由網路8而連接之第2SSD7中進行管理。
該管理係利用例如LBA範圍-儲存器管理表412A。關於LBA範圍-儲存器管理表412A,同參照圖24所述者。再者,於將某LBA範圍之資料儲存於經由網路8而連接之第2SSD7中之情形時,亦可在LBA範圍-儲存器管理表412A中,管理網路上之位置,以取代管理「儲存器ID」。
冷資料管理部432係以如下方式進行控制,即:於被要求對某LBA範圍進行存取之情形時,利用LBA範圍-儲存器管理表412A,對與該LBA範圍相關聯之網路上之位置之儲存器進行存取(例如,對該儲存器發佈指令)。
藉由以上構成,即便於經由網路8設置有第2SSD7(冷儲存器)之情形時,第1SSD3(熱儲存器)之冷區塊內之冷資料亦會被移動至該第2SSD7。藉此,能不消耗相對於主機寫入之第1SSD3之NAND存取之頻帶寬度地,回收冷區塊內之OP,並且能將冷資料與熱資料分離於不同之SSD3、SSD7。
(第7實施形態)
於第1及第2實施形態中,主機2要求SSD3回收冷區塊內之OP(執行冷區塊GC)。又,於第3至第6實施形態中,藉由主機2自SSD3讀出冷資料及向SSD3寫入冷資料,而回收冷區塊內之OP。於第7實施形態中,與第1及第2實施形態同樣地,遵照來自主機2之要求,開始回收冷區塊內之OP,但要藉由SSD3向其他SSD7寫入冷資料,而回收冷區塊內之OP。
第7實施形態之電腦系統之構成係於第6實施形態之電腦系統1B中,經由網路8,不僅主機2與SSD7連接,而且SSD3與SSD7亦連接,於第7實施形態與第1至第6實施形態中,僅藉由SSD3之冷區塊控制部123而執行之處理之程序不同。以下,僅對與第1至第6實施形態不同之點進行說明。
圖27表示出了除主機2及第1SSD3以外進而具備第2SSD7之電腦系統1B之用以回收冷區塊內的OP之動作之例。第1SSD3係用以儲存熱資料之熱儲存器,且係作為回收冷區塊之OP之對象之儲存器。又,第2SSD7係用以儲存冷資料之冷儲存器。再者,作為冷儲存器,亦可使用HDD以取代第2SSD7,冷儲存器亦可為複數個。第1SSD3作為DAS連接於主機2。又,第2SSD7係NAS或雲儲存器等經由網路8連接於主機2之儲 存器。進而,第1SSD3與第2SSD7經由網路8而連接。
主機2向第1SSD3問詢冷區塊資訊36。第1SSD3對應於該問詢,將冷區塊資訊36發送至主機2。冷區塊資訊36包含例如可自冷區塊回收之OP量、及僅執行自冷區塊回收OP之動作時之推定之處理時間或處理量等。
主機2利用冷區塊資訊36,對是否要指示第1SSD3回收冷區塊內之OP進行判定。主機2例如在如主機2處於閒置狀態之情形時般,即便執行了回收冷區塊內之OP之動作,對來自主機2之存取之影響亦較小之情形時,指示第1SSD3回收冷區塊內之OP。第1SSD3遵照來自主機2之指示,開始執行用以回收冷區塊內之OP之處理。
第1SSD3(讀取控制部124)自冷區塊之清單所示之冷區塊中,讀出冷資料(有效資料)。冷區塊之清單包含於例如冷區塊資訊36中。此處,假設被讀出之冷資料係對應於第1LBA範圍之資料。
第1SSD3向第2SSD7發佈指定了第1LBA範圍且用以寫入被讀出之冷資料之寫入指令。再者,如圖17所示,該寫入指令中亦可包含表示被寫入之資料為冷資料之資訊。
第2SSD7遵照寫入指令,將該冷資料寫入至第2SSD7內之NAND型快閃記憶體。第2SSD7亦可根據寫入指令中所包含、表示被寫入之資料為冷資料之資訊,選擇適於寫入冷資料之區塊(例如,編程/抹除循環數較多之區塊)作為寫入目的地區塊。又,於第2SSD7中,更新第2SSD7內之LUT,以使被寫入指令所指定之LBA範圍映射於寫入有冷資料之物理記憶區域。藉由以上,第1SSD3能向第2SSD7寫入冷資料。
藉由此種冷資料之讀出及寫入,能將冷資料自第1SSD3內 之冷區塊移動至第2SSD7內之寫入目的地區塊。第1SSD3更新LUT34,以使被移動至第2SSD7之冷資料之第1LBA範圍成為不映射於第1SSD3內之任何物理記憶區域之映射釋放狀態。因此,此前寫入有冷資料之冷區塊內之物理記憶區域成為不映射於任何LBA、儲存無效資料之區域。
然後,第1SSD3通知主機2第1LBA範圍之資料已被自第1SSD3移動至第2SSD7。
主機2之冷資料管理部432基於來自第1SSD3之通知,對將第1LBA範圍之資料儲存於第2SSD7中進行管理。該管理係利用例如LBA範圍-儲存器管理表412A。關於LBA範圍-儲存器管理表412A,同參照圖24所述者。再者,於將某LBA範圍之資料儲存於經由網路8而連接之第2SSD7中之情形時,亦可在LBA範圍-儲存器管理表412A中,管理網路上之位置,以取代管理「儲存器ID」。
冷資料管理部432係以如下方式進行控制,即:於被要求對某LBA範圍進行存取之情形時,利用LBA範圍-儲存器管理表412A,對與該LBA範圍相關聯之網路上之位置之儲存器進行存取(例如,對該儲存器發佈指令)。
藉由以上構成,第1SSD3遵照來自主機2之冷區塊內之OP之回收指示,將第1SSD3(熱儲存器)之冷區塊內之冷資料移動至第2SSD7(冷儲存器)。藉此,能不消耗相對於主機寫入之第1SSD3之NAND存取之頻帶寬度地,回收冷區塊內之OP,並且能將冷資料與熱資料分離於不同之SSD3、SSD7。
圖28之流程圖表示出了藉由第1SSD3之控制器4而執行之OP回收控制處理的程序之例。
控制器4對是否被主機2指示了回收冷區塊內之OP進行判定(步驟S201)。於未被指示冷區塊內之OP之回收之情形時(步驟S201為否),返回至步驟S201。
於被指示了冷區塊內之OP之回收之情形時(步驟S201為是),控制器4讀出冷區塊之清單所示之某冷區塊內之冷資料(有效資料)(步驟S202)。然後,控制器4經由網路8向第2SSD7發佈用以向與儲存被讀出之冷資料之物理記憶區域對應之LBA範圍寫入該被讀出之冷資料之寫入指令(步驟S203)。於第2SSD7中,遵照該寫入指令,向某物理記憶區域寫入冷資料。然後,於第2SSD7中,更新LUT,使該LBA範圍與該物理記憶區域相關聯。
一旦第2SSD7中之寫入完成,控制器4便更新LUT34,以使該LBA範圍成為不映射於任何物理記憶區域之映射釋放狀態,將對應於該LBA範圍之物理記憶區域、即寫入有冷資料之物理記憶區域之資料無效化(步驟S204)。然後,控制器4通知主機2該LBA範圍之冷資料已被移動至第2SSD7(步驟S205)。
繼而,控制器4對是否有應移動之其他冷資料進行判定(步驟S206)。例如,於冷區塊中有仍未被移動之冷資料之情形時、或有未被處理之其他冷區塊之情形時,控制器4判定有應移動之其他冷資料。於有應移動之其他冷資料之情形時(步驟S206為是),返回至步驟S202,繼續執行用以將該其他冷資料移動至第2SSD7之處理。
於無應移動之其他冷資料之情形時(步驟S206為否),即,所有冷資料均已被移動至第2SSD7之情形時,控制器4通知主機2冷區塊內之OP之回收已完成(步驟S207)。
又,圖29之流程圖表示出了藉由主機2而執行之冷區塊控制處理的程序之例。
主機2對是否為向第1SSD3問詢冷區塊資訊36之時點進行判定(步驟S301)。主機2例如每隔固定時間,便判定為向第1SSD3問詢冷區塊資訊36之時點。於不為問詢冷區塊資訊36之時點之情形時(步驟S301為否),返回至步驟S301。
於為問詢冷區塊資訊36之時點之情形時(步驟S301為是),主機2向第1SSD3問詢冷區塊資訊36(步驟S302)。然後,主機2接收藉由第1SSD3而發送之冷區塊資訊36(步驟S303)。
繼而,主機2對是否為指示第1SSD3回收冷區塊內之OP之時點進行判定(步驟S304)。主機2基於例如在主機2上同時運行之工序數較少等指標,檢測出對第1SSD3進行存取之頻度較低之時點,作為冷區塊內之OP回收指示時點。於判定不為冷區塊內之OP回收指示時點之情形時(步驟S304為否),返回至步驟S301。
另一方面,於判定為冷區塊內之OP回收指示時點之情形時(步驟S304為是),主機2向第1SSD3發佈回收冷區塊內之OP之請求(步驟S305)。
然後,主機2對是否自第1SSD3接收到了表示冷資料已被移動之通知進行判定(步驟S306)。該通知中包含表示與被移動之冷資料對應之LBA範圍之資訊。於未接收到表示冷資料已被移動之通知之情形時(步驟S306為否),返回至步驟S306。
於接收到了表示冷資料已被移動之通知之情形時(步驟S306為是),更新LBA範圍-儲存器管理表412A內之與該LBA範圍對應之 記錄,以表示出該通知所示之與LBA範圍對應之資料儲存於第2SSD7中(步驟S307)。藉此,主機2可利用LBA範圍-儲存器管理表412A,決定於對某LBA範圍之資料進行存取之情形時,應向哪個儲存器發佈指令。
然後,主機2對是否接收到了OP回收之完成通知進行判定(步驟S308)。於未接收到完成通知之情形時(步驟S308為否),返回至步驟S306。另一方面,於接收到了完成通知之情形時(步驟S308為是),結束處理。
藉由以上構成,於經由網路8設置有第2SSD7(冷儲存器)之情形時,藉由與來自主機2之要求相應之第1SSD3(熱儲存器)之動作,將第1SSD3之冷區塊內之冷資料移動至該第2SSD7。藉此,能不消耗第1SSD3之NAND存取之頻帶寬度地,回收冷區塊內之OP,並且能將冷資料與熱資料分離至不同之SSD3、SSD7中。
圖30表示出了於第1至第7實施形態之任一者中作為主機2而發揮功能之資訊處理裝置(計算裝置)之硬體構成例。
該資訊處理裝置係以伺服器(例如,儲存伺服器)等計算裝置之形態實現。該資訊處理裝置包含處理器(CPU)101、主記憶體102、BIOS-ROM(Basic Input/Output System-Read Only Memory,基本輸入輸出系統-唯讀記憶體)103、網路控制器105、周邊介面控制器106、控制器107、及嵌入式控制器(EC)108等。
處理器101係以控制該資訊處理裝置之各組件之動作之方式構成之CPU。該處理器101執行自複數個SSD3中之任一者加載至主記憶體102之各種程式。主記憶體102由DRAM等隨機存取記憶體構成。藉由處理器101而執行之程式包括上述應用層41、OS42、及檔案系統43。
又,處理器101亦執行作為非揮發性記憶體之BIOS-ROM103中所儲存之基本輸入輸出系統(BIOS)。BIOS係用於硬體控制之系統程式。
網路控制器105係有線LAN(Local Area Network,局域網路)控制器、無線LAN控制器等通信裝置。藉由使用網路控制器105之有線通信或無線通信,例如,亦能於與SSD7等儲存裝置之間收發資料。
周邊介面控制器106係以執行與USB裝置等周邊裝置之通信之方式構成。
控制器107係以執行與分別連接於複數個連接器107A之裝置之通信之方式構成。複數個SSD3亦可分別連接於複數個連接器107A。控制器107為SAS擴展器、PCIe切換器、PCIe擴展器、快閃陣列控制器、或RAID(Redundant Arrays of Independent Disks,獨立冗餘磁盤陣列)控制器等。
EC108作為執行資訊處理裝置之電力管理之方式構成之系統控制器而發揮功能。EC108對應於用戶對電源開關之操作而開啟及關閉資訊處理裝置。EC108能以單晶片微控制器等處理電路之形態實現。EC108亦可內置控制鍵盤等輸入裝置之鍵盤控制器。
綜合以上說明,根據第1至第7實施形態,既能減少對來自主機之存取之影響,又能回收冷區塊內之剩餘容量(OP)。例如,SSD3之控制器4將表示與NAND型快閃記憶體5中所儲存之冷資料對應之第1邏輯位址範圍、及用以使包含冷資料之冷區塊成為可寫入資料之區塊之處理量的冷區塊資訊36發送至主機2。主機2之處理器101接收該冷區塊資訊36,向SSD3發佈指定了第1邏輯位址範圍之讀取指令。控制器4遵照該讀取指 令,自NAND型快閃記憶體5讀出冷資料,並將其發送至主機2。處理器101接收冷資料,向SSD3發佈指定了第1邏輯位址範圍且用以寫入所接收到之冷資料之寫入指令。控制器4將遵照該寫入指令而接收之冷資料寫入至NAND型快閃記憶體5。
於此種電腦系統1中,主機2能控制發佈讀取指令及寫入指令之時點,故而能不於主機2預期外之時點消耗對主機寫入進行NAND存取之頻帶寬度地,回收SSD3中所儲存之冷區塊內之OP。主機2能掌握SSD3中所儲存之冷資料之狀況,從而能根據其用途進行恰當之管理。
又,第1至第7實施形態中所記載之各種功能各自亦可藉由電路(處理電路)而實現。處理電路之例中包括中央處理裝置(CPU)等經編程之處理器。該處理器藉由執行記憶體中所儲存之電腦程式(命令群),而執行所記載之功能各者。該處理器亦可為包含電氣電路之微處理器。處理電路之例中亦包括數位信號處理器(DSP)、針對特定用途之積體電路(ASIC)、微控制器、控制器、及其他電氣電路零件。該等實施形態中所記載之CPU以外之其他組件各自同樣地亦可藉由處理電路而實現。
又,第1至第7實施形態之各種處理可藉由電腦程式而實現,故而只是經由儲存有該電腦程式之電腦可讀取之記憶媒體將該電腦程式安裝至電腦中並加以執行,便能容易地實現與該等實施形態相同之效果。
對本發明之若干實施形態進行了說明,但該等實施形態僅作為示例而提出,並非意圖限定發明之範圍。該等新穎之實施形態能以其他各種形態加以實施,可於不脫離發明主旨之範圍內,進行各種省略、替換、變更。該等實施形態及其變形包含於發明之範圍及主旨中,並且包含 於申請專利範圍所記載之發明及其等同之範圍內。
[相關申請]
本申請享有以日本專利申請2018-58610號(申請日:2018年3月26日)為基礎申請之優先權。本申請藉由參照該基礎申請而包含基礎申請之全部內容。
2‧‧‧主機
3‧‧‧SSD
5‧‧‧NAND型快閃記憶體

Claims (26)

  1. 一種電子機器,其能經由介面與主機連接,且包含:非揮發性記憶體,其包含複數個區塊;及控制器,其電性連接於上述非揮發性記憶體;上述控制器係構成為:於上述電子機器與上述主機連接之情形時,可將與上述非揮發性記憶體中所儲存之冷資料對應之第1邏輯位址、及表示用以使包含上述冷資料之冷區塊成為可寫入資料之區塊之處理時間或處理量的資訊發送至上述主機,且自上述主機將根據指定了上述第1邏輯位址之寫入指令而可接收之上述冷資料寫入至上述非揮發性記憶體。
  2. 如請求項1之電子機器,其中上述控制器係構成為:於上述電子機器與上述主機連接之情形時,根據可自上述主機接收且指定了上述第1邏輯位址的讀取指令,自上述非揮發性記憶體讀出上述冷資料,並可將上述冷資料發送至上述主機。
  3. 如請求項1或2之電子機器,其中上述控制器係構成為:於在上述非揮發性記憶體內之第1實體記憶區域儲存有上述冷資料之情形時,根據可自上述主機接收之詢問,將表示與上述第1實體記憶區域對應之上述第1邏輯位址之資訊發送至上述主機,且根據可自上述主機接收且指定了上述第1邏輯位址的讀取指令,自上述非揮發性記憶體讀出上述冷資料,並可將上述冷資料發送至上述主機, 自上述主機將根據指定了上述第1邏輯位址之寫入指令而可接收之上述冷資料寫入至上述非揮發性記憶體內之第2實體記憶區域。
  4. 如請求項1或2之電子機器,其中上述第1邏輯位址係藉由上述第1邏輯位址之開頭之邏輯位址、及上述第1邏輯位址中所包含之邏輯區塊之數量而表示。
  5. 如請求項1或2之電子機器,其中對上述第1邏輯位址進行存取之頻率未達閾值。
  6. 如請求項1或2之電子機器,其中上述冷區塊係抹除次數未達閾值之區塊、或表示區塊被實施抹除之順序之編號小於特定編號之區塊,且上述冷資料係上述冷區塊內之有效資料。
  7. 如請求項1或2之電子機器,其中上述控制器係進而構成為:於上述電子機器與上述主機連接之情形時,根據可自上述主機接收之問詢,將表示用以使上述非揮發性記憶體內之一個以上冷區塊成為可寫入資料之一個以上區塊之處理時間或處理量的資訊發送至上述主機,且根據可自上述主機接收之要求,執行用以使上述一個以上冷區塊成為可寫入資料之一個以上區塊之處理。
  8. 如請求項1或2之電子機器,其中上述控制器係進而構成為:於上述 電子機器與上述主機連接之情形時,當上述非揮發性記憶體內之一個以上冷區塊中所包含之無效資料量超過閾值之情形時,能將表示上述無效資料量超過上述閾值之資訊、或表示需要使上述一個以上冷區塊成為可寫入資料之一個以上區塊之處理之資訊發送至上述主機。
  9. 如請求項1或2之電子機器,其中上述寫入指令包含表示被寫入之資料為冷資料之資訊。
  10. 如請求項1或2之電子機器,其中上述控制器係進而構成為:於上述電子機器與上述主機連接之情形時,根據可自上述主機接收且指定了包含上述第1邏輯位址、及前置或後續於該第1邏輯位址之邏輯位址之第2邏輯位址的讀取指令,自上述非揮發性記憶體讀出第2資料,並將上述第2資料發送至上述主機,且自上述主機將根據指定了上述第2邏輯位址之寫入指令而可接收之上述第2資料寫入至上述非揮發性記憶體。
  11. 如請求項1或2之電子機器,其中上述控制器係進而構成為:於上述電子機器與上述主機連接之情形時,可將與上述非揮發性記憶體中所儲存之為了資料保持所應移動之第3資料對應之第3邏輯位址、及表示用以使包含上述第3資料之區塊成為可寫入資料之區塊之處理時間或處理量的資訊發送至上述主機,且根據可自上述主機接收且指定了上述第3邏輯位址的讀取指令,自上 述非揮發性記憶體讀出上述第3資料,並將上述第3資料發送至上述主機,自上述主機將根據指定了上述第3邏輯位址之寫入指令而可接收之上述第3資料寫入至上述非揮發性記憶體。
  12. 如請求項1或2之電子機器,其中上述控制器係進而構成為:於上述電子機器與上述主機連接之情形時,自上述非揮發性記憶體讀出上述冷資料,且向第2電子機器發佈指定了上述第1邏輯位址且用以寫入上述被讀出之冷資料之寫入指令,於根據上述寫入指令將上述冷資料寫入至上述第2電子機器內之第2非揮發性記憶體之情形時,將上述非揮發性記憶體中所儲存之上述冷資料無效化,且能通知上述主機與上述第1邏輯位址對應之上述冷資料已被儲存至上述第2電子機器。
  13. 一種電子機器,其包含:記憶體;及處理器,其係構成為執行上述記憶體中所儲存之程式;其中上述處理器係構成為:自包含具備複數個區塊之非揮發性記憶體之儲存裝置,接收與上述非揮發性記憶體中所儲存之冷資料對應之第1邏輯位址、及表示用以使包含上述冷資料之冷區塊成為可寫入資料之區塊之處理時間或處理量的資訊;且上述處理器係構成為:向上述儲存裝置發佈指定了上述第1邏輯位址且用以寫入接收到之上述冷資料之寫入指令。
  14. 如請求項13之電子機器,其中上述處理器係構成為:向上述儲存裝置發佈指定了上述第1邏輯位址之讀取指令,並自上述儲存裝置接收上述冷資料。
  15. 如請求項13或14之電子機器,其中上述處理器係構成為:基於上述處理時間或處理量、對上述儲存裝置進行存取之頻率、上述電子機器之資源處於忙碌狀態之時間、及正由上述處理器執行之程序(process)之量中之至少任一者,對是否為應執行用以使上述冷區塊成為可寫入資料之區塊之處理之時點進行判定,於判定為應執行用以使上述冷區塊成為可寫入資料之區塊之處理之時點的情形時,向上述儲存裝置發佈指定了上述第1邏輯位址之讀取指令,並自上述儲存裝置接收上述冷資料,且向上述儲存裝置發佈指定了上述第1邏輯位址且用以寫入接收到之上述冷資料之寫入指令。
  16. 如請求項13或14之電子機器,其中上述第1邏輯位址係藉由上述第1邏輯位址之開頭之邏輯位址、及上述第1邏輯位址中所包含之邏輯區塊之數量而表示。
  17. 一種電腦系統,其包含儲存裝置及主機,且上述儲存裝置具有: 非揮發性記憶體,其包含複數個區塊;及控制器,其電性連接於上述非揮發性記憶體;上述主機包括:記憶體;及處理器,其係構成為執行上述記憶體中所儲存之程式;且該電腦系統中:上述控制器係構成為:將與上述非揮發性記憶體中所儲存之冷資料對應之第1邏輯位址、及表示用以使包含上述冷資料之冷區塊成為可寫入資料之區塊之處理時間或處理量的資訊發送至上述主機,且自上述主機將根據指定了上述第1邏輯位址之寫入指令而可接收之上述冷資料寫入至上述非揮發性記憶體;上述處理器係構成為:接收上述第1邏輯位址及上述資訊,且向上述儲存裝置發佈指定了上述第1邏輯位址且用以寫入接收到之上述冷資料之寫入指令。
  18. 如請求項17之電腦系統,其中上述控制器係構成為:根據自上述主機接收且指定了上述第1邏輯位址的讀取指令,自上述非揮發性記憶體讀出上述冷資料,並將上述冷資料發送至上述主機;上述處理器係構成為:向上述儲存裝置發佈指定了上述第1邏輯位址之讀取指令,並自上述儲存裝置接收上述冷資料。
  19. 如請求項17或18之電腦系統,其中上述處理器係構成為: 基於上述處理時間或處理量、對上述儲存裝置進行存取之頻率、上述主機之資源處於忙碌狀態之時間、及正由上述處理器執行之程序之量中之至少任一者,對是否為應執行用以使上述冷區塊成為可寫入資料之區塊之處理之時點進行判定,於判定為應執行用以使上述冷區塊成為可寫入資料之區塊之處理之時點的情形時,向上述儲存裝置發佈指定了上述第1邏輯位址之讀取指令,並自上述儲存裝置接收上述冷資料,且向上述儲存裝置發佈指定了上述第1邏輯位址且用以寫入接收到之上述冷資料之寫入指令。
  20. 如請求項17或18之電腦系統,其中上述第1邏輯位址係藉由上述第1邏輯位址之開頭之邏輯位址、及上述第1邏輯位址中所包含之邏輯區塊之數量而表示。
  21. 一種電子機器之控制方法,其係對包含具備複數個區塊之非揮發性記憶體之電子機器進行控制之方法,且將表示與上述非揮發性記憶體中所儲存之冷資料對應之邏輯位址的資訊、及表示用以使包含上述冷資料之冷區塊成為可寫入資料之區塊之處理時間或處理量的資訊發送至主機;自上述主機,將根據指定了上述邏輯位址之寫入指令而可接收之上述冷資料寫入至上述非揮發性記憶體。
  22. 如請求項21之電子機器之控制方法,其係根據自上述主機接收且指定了上述邏輯位址的讀取指令,自上述非揮發性記憶體讀出上述冷資料,並將上述冷資料發送至上述主機。
  23. 一種主機之控制方法,其係自包含具備複數個區塊之非揮發性記憶體之儲存裝置,接收表示與上述非揮發性記憶體中所儲存之冷資料對應之邏輯位址的資訊、及表示用以使包含上述冷資料之冷區塊成為可寫入資料之區塊之處理時間或處理量的資訊;且向上述儲存裝置發佈指定了上述邏輯位址且用以寫入接收到之上述冷資料之寫入指令。
  24. 如請求項23之主機之控制方法,其係向上述儲存裝置發佈指定了上述邏輯位址之讀取指令,且自上述儲存裝置接收上述冷資料。
  25. 一種電腦系統之控制方法,其係對包含儲存裝置及主機之電腦系統進行控制之方法,該儲存裝置包含具備複數個區塊之非揮發性記憶體;且該電腦系統之控制方法係將與上述非揮發性記憶體中所儲存之冷資料對應之邏輯位址、及表示用以使包含上述冷資料之冷區塊成為可寫入資料之區塊之處理時間或處理量的資訊自上述儲存裝置發送至上述主機,上述主機自上述儲存裝置接收上述邏輯位址及上述資訊,將指定了上述邏輯位址之寫入指令自上述主機發送至上述儲存裝 置,且將根據上述寫入指令而接收之上述冷資料寫入至上述非揮發性記憶體。
  26. 如請求項25之電腦系統之控制方法,其係將指定了上述邏輯位址之讀取指令自上述主機發送至上述儲存裝置,將根據上述讀取指令而自上述非揮發性記憶體讀出之上述冷資料發送至上述主機。
TW107127266A 2018-03-26 2018-08-06 電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法 TWI712881B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-058610 2018-03-26
JP2018058610A JP2019169101A (ja) 2018-03-26 2018-03-26 電子機器、コンピュータシステム、および制御方法

Publications (2)

Publication Number Publication Date
TW201941061A TW201941061A (zh) 2019-10-16
TWI712881B true TWI712881B (zh) 2020-12-11

Family

ID=67985230

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107127266A TWI712881B (zh) 2018-03-26 2018-08-06 電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法

Country Status (4)

Country Link
US (3) US10585590B2 (zh)
JP (1) JP2019169101A (zh)
CN (1) CN110362499B (zh)
TW (1) TWI712881B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI815622B (zh) * 2022-03-15 2023-09-11 日商鎧俠股份有限公司 資訊處理裝置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI696074B (zh) * 2019-01-24 2020-06-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI718492B (zh) * 2019-03-12 2021-02-11 群聯電子股份有限公司 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元
JP6757048B1 (ja) * 2019-09-18 2020-09-16 株式会社大都技研 遊技台
US11467980B2 (en) * 2020-01-10 2022-10-11 Micron Technology, Inc. Performing a media management operation based on a sequence identifier for a block
US11640262B2 (en) * 2020-05-07 2023-05-02 Micron Technology, Inc. Implementing variable number of bits per cell on storage devices
US11868642B2 (en) * 2021-08-31 2024-01-09 Micron Technology, Inc. Managing trim commands in a memory sub-system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200502835A (en) * 2003-04-10 2005-01-16 Renesas Tech Corp Memory device
US7254592B1 (en) * 1999-10-26 2007-08-07 Tellabs Oy Method and arrangement for performing atomic updates using a logical flash memory device
US20180032275A1 (en) * 2016-07-27 2018-02-01 Samsung Electronics Co., Ltd. Solid state drive devices and methods of operating thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030039152A1 (en) * 2000-01-31 2003-02-27 Danny Shum It flash memory recovery scheme for over-erasure
JP2008033788A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
KR100866962B1 (ko) * 2007-03-08 2008-11-05 삼성전자주식회사 Hdd를 하이브리드 hdd에서 노멀 hdd로 전환시키는방법
JP6414853B2 (ja) * 2015-12-14 2018-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
US11126544B2 (en) * 2016-12-14 2021-09-21 Via Technologies, Inc. Method and apparatus for efficient garbage collection based on access probability of data
CN107479825A (zh) * 2017-06-30 2017-12-15 华为技术有限公司 一种存储系统、固态硬盘和数据存储方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254592B1 (en) * 1999-10-26 2007-08-07 Tellabs Oy Method and arrangement for performing atomic updates using a logical flash memory device
TW200502835A (en) * 2003-04-10 2005-01-16 Renesas Tech Corp Memory device
US20180032275A1 (en) * 2016-07-27 2018-02-01 Samsung Electronics Co., Ltd. Solid state drive devices and methods of operating thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI815622B (zh) * 2022-03-15 2023-09-11 日商鎧俠股份有限公司 資訊處理裝置

Also Published As

Publication number Publication date
US10585590B2 (en) 2020-03-10
US20210240352A1 (en) 2021-08-05
TW201941061A (zh) 2019-10-16
US20200167081A1 (en) 2020-05-28
US11023132B2 (en) 2021-06-01
US20190294341A1 (en) 2019-09-26
JP2019169101A (ja) 2019-10-03
CN110362499A (zh) 2019-10-22
US11747979B2 (en) 2023-09-05
CN110362499B (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
TWI712881B (zh) 電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法
US10592117B2 (en) Memory system and method for controlling nonvolatile memory
TWI700586B (zh) 計算機系統及儲存裝置之控制方法
US10713161B2 (en) Memory system and method for controlling nonvolatile memory
TWI682278B (zh) 記憶體系統及控制方法
US10789162B2 (en) Memory system and method for controlling nonvolatile memory
US10209894B2 (en) Memory system and method for controlling nonvolatile memory
KR102094236B1 (ko) 스토리지 디바이스 및 컴퓨터 시스템
US10936203B2 (en) Memory storage device and system employing nonvolatile read/write buffers
JP2016170583A (ja) メモリシステムおよび情報処理システム
JP2018073040A (ja) メモリシステム
KR20110046232A (ko) 데이터 무효화 동작을 수행하는 저장 장치 및 그것의 데이터 무효화 방법
JP7475989B2 (ja) メモリシステムおよび制御方法
JP2022143231A (ja) ストレージデバイス、ストレージシステム、及び制御方法
JP6666405B2 (ja) メモリシステムおよび制御方法