TWI699650B - 記憶裝置及電腦系統 - Google Patents
記憶裝置及電腦系統 Download PDFInfo
- Publication number
- TWI699650B TWI699650B TW107123306A TW107123306A TWI699650B TW I699650 B TWI699650 B TW I699650B TW 107123306 A TW107123306 A TW 107123306A TW 107123306 A TW107123306 A TW 107123306A TW I699650 B TWI699650 B TW I699650B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- read
- buffer
- block
- host
- Prior art date
Links
Images
Classifications
-
- 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/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
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)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本發明之實施形態提供一種能夠使存取性能及可靠性提高之記憶裝置及電腦系統。 根據實施形態,記憶裝置可經由介面與主機連接。記憶裝置包括:包含複數個塊之非揮發性記憶體,及與非揮發性記憶體電性連接之控制器。控制器以如下方式構成:當從主機接收到讀取指令時,將由讀取指令指定之第1資料從非揮發性記憶體之第1塊讀出而發送至主機,並且將第1資料寫入至非第1塊之非揮發性記憶體之第2塊。
Description
本發明之實施形態係關於一種記憶裝置及電腦系統。
近年來,具備非揮發性記憶體(memory)之儲存器(storage)正廣泛地普及。作為這種儲存器之一,已知有具備NAND(Not And,反及)型快閃記憶體之固態磁碟(SSD)。SSD被用作各種計算裝置之主儲存器。
於使用NAND型快閃記憶體構築大容量之記憶裝置之情形時,使用可於1個記憶單元中記錄複數位元之資料之多值度較高之NAND型快閃記憶體。例如,於1個單元中記錄3位元之資料之記憶單元被稱為三層單元(TLC,Triple-Level Cell),於1個單元中記錄4位元之資料之記憶單元被稱為四層單元(QLC,Quad-Level Cell)。
本發明之實施形態提供一種能夠使存取性能及可靠性提高之記憶裝置及電腦系統。
根據實施形態,記憶裝置可經由介面與主機連接。記憶裝置包括:包含複數個塊之非揮發性記憶體,及與上述非揮發性記憶體電性連接之控制器。上述控制器以如下方式構成:當從上述主機接收到讀取指令時,將由上述讀取指令指定之第1資料從上述非揮發性記憶體之第1塊讀出而發送至上述主機,並且將上述第1資料寫入至非上述第1塊之上述非揮
發性記憶體之第2塊。
1:電腦系統
2:主機
3:SSD
4:控制器
5:NAND型快閃記憶體
6:DRAM
10:匯流排
11:主機I/F
12:CPU
13:NAND I/F
14:DRAM I/F
31:讀取緩衝區
32:寫緩衝區
33:GC緩衝區
34:LUT
35:塊管理資訊
36:輸入緩衝區
41:應用層
42:操作系統
43:檔案系統
121:塊管理部
123:讀取控制部
125:寫控制部
127:GC控制部
411:SSD控制部
A201:箭頭
A202:箭頭
A203:箭頭
A204:箭頭
A205:箭頭
A401:箭頭
A402:箭頭
A403:箭頭
B0~Bm-1:塊
Ba:塊
Bb:塊
Bc:塊
D1:資料
LBA X:邏輯塊位址
P0~Pn-1:頁
QLC:四層單元
SLC:單個單元
圖1係表示第1實施形態之電腦系統之構成例之方塊圖。
圖2係表示第1實施形態之電腦系統內之SSD中之資料流之一例之流程圖。
圖3係表示第1實施形態之電腦系統內之SSD中之資料流之第1例之圖。
圖4係表示第1實施形態之電腦系統內之SSD中之資料流之第2例之圖。
圖5係表示第2實施形態之電腦系統內之SSD中之資料流之一例之流程圖。
圖6係表示第3實施形態之電腦系統內之SSD中之資料流之一例之流程圖。
圖7係表示第4實施形態之電腦系統內之SSD3之構成之一例之圖。
圖8係表示第4實施形態之電腦系統內之SSD中之資料流之一例之流程圖。
圖9係表示第4實施形態之電腦系統內之SSD中之資料流之第1例之圖。
圖10係表示第4實施形態之電腦系統內之SSD中之資料流之第2例之圖。
圖11係表示第5實施形態之電腦系統內之SSD中之資料流之一例之流程圖。
圖12係表示第6實施形態之電腦系統內之SSD中之資料流之一例之流程圖。
圖13係表示第7實施形態之電腦系統內之SSD中之資料流之一例之流程圖。
圖14係表示第7實施形態之電腦系統內使用之資料之屬性資訊之一例之圖。
圖15係表示第8實施形態之電腦系統內之SSD中之資料流之一例之流程圖。
於本實施形態中,所謂多值度係指與1個記憶單元中儲存之資料之位元數有關之指標。例如,1個記憶單元中儲存之資料之位元數越多,多值度越高。
於多值度較高之NAND型快閃記憶體中,隨著每1個晶片之容量變大,而用來確保所需容量之晶片數變少。因此,難以對複數個晶片並行地存取(即,存取之並行數降低),故,對NAND型快閃記憶體之存取性能降低。
一般地,NAND型快閃記憶體之多值度越高,讀出(讀取)、寫入(寫)、擦除(抹除)所需之時間越長。另外,多值度越高,資料保留期間越短,可靠性降低。
為了提高SSD之讀出速度,於SSD內部搭載讀取緩衝區。SSD藉由將資料快取至該讀取緩衝區,與從NAND型快閃記憶體直接讀出資料相比可高速地讀出資料。
通常,讀取緩衝區使用SRAM(Static Random-Access
Memory,靜態隨機存取記憶體)、DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)等揮發性記憶體。SRAM、DRAM價格較高,相對於SSD之容量只準備極小之容量之情況較多,因此,無法於讀取緩衝區中記憶大量資料。
另外,如上述般,多值度越高之NAND型快閃記憶體,資料保留期間越短,故需要於恰當之時序進行用來保存資料之更新動作。以往,未對於有效率之時序執行該更新動作進行充分考慮,例如以定期進行巡迴之軟體(或固件)之通知、或當讀出資料時進行了重試處理為觸發而執行。
因此,於以下說明之各實施形態中,著眼於SSD中之讀出處理,對用於提高對於SSD之資料讀出速度等存取性能、及用於在恰當之時序進行更新動作之SSD之構成及處理進行說明。
更具體而言,例如SSD針對從主機以多值度較高之塊為對象發佈之讀出處理,從該多值度較高之塊讀出資料,並且將讀出之資料寫到SSD內之其他塊(或緩衝區)等。該資料之寫目的地之塊(或緩衝區)由揮發性記憶體或多值度較低之非揮發性記憶體構成。然後,之後的對該資料之讀出處理針對儲存有該資料之塊(或緩衝區)進行。
此外,讀出源塊之多值度與讀出資料之寫入目的地之塊(或緩衝區)之多值度之差越大,該資料之第2次及第2次之後的讀出速度越提高。
另外,以讀取指令為觸發將讀出對象之資料寫(回寫)到其他塊,換言之,亦對存取頻率較高之資料於恰當之時序進行更新動作。
以下,一邊參照附圖一邊對各實施形態進行說明。於以下
之說明中,對大致或實質上相同之功能及構成要素標註相同符號,並視需要進行說明。
圖1係表示本實施形態之電腦系統1之構成例之方塊圖。
電腦系統1包含主機(主機裝置)2、及構成為向非揮發性記憶體寫入資料並從非揮發性記憶體讀出資料之半導體儲存裝置。
主機2係對SSD3進行存取之資訊處理裝置(計算裝置)。主機2可為將大量且多種資料保存於SSD3之服務器(儲存服務器),亦可為個人電腦。半導體儲存裝置例如以具備NAND型快閃記憶體之固態磁碟(SSD)3之形式實現。
SSD3係記憶裝置,可用作作為主機2發揮功能之資訊處理裝置之主儲存器。SSD3可內置於該資訊處理裝置,亦可經由纜線或網路而連接於該資訊處理裝置。SSD3例如以直連式儲存(DAS,Direct Attached Storage)之形式連接於主機2。
作為用於將主機2與SSD3相互連接之介面,可使用SCSI(Small Computer System Interface,小型電腦系統介面)、Serial Attached SCSI(SAS,串行連接SCSI)、ATA(Advanced Technology Attachment,高級技術附件)、Serial ATA(SATA,串行ATA)、PCI Express(PCIe(Peripheral Component Interconnect Express,外圍組件互連高速))(註冊商標)、Ethernet(以太網)(註冊商標)、Fibre channel(光纖通道)、NVM Express(NVMe(Non-Volatile Memory Express,非揮發性記憶體標準))(註冊商標)等。
SSD3具備控制器4及非揮發性記憶體(NAND型快閃記憶體)5。控制器4可藉由系統晶片(SoC,System-on-a-chip)之類的電路實現。SSD3亦可具備作為揮發性記憶體之隨機存取記憶體、例如DRAM6。或者,亦可將SRAM之類的隨機存取記憶體內置於控制器4。
於DRAM6等隨機存取記憶體中,例如設置有用於暫時儲存從NAND型快閃記憶體5讀出之資料之作為緩衝區區域之讀取緩衝區31、用於暫時儲存寫入至NAND型快閃記憶體5之資料之作為緩衝區區域之寫緩衝區32及GC(Garbage Collection,垃圾回收)緩衝區33、以及作為位址轉換表(邏輯物理位址轉換表)發揮功能之查找表(LUT)34之快取區域。
進而,亦可於DRAM6等隨機存取記憶體中設置處理中使用之各種資訊(例如,塊管理資訊35等)之記憶區域。此外,DRAM6亦可設置於控制器4之內部。LUT34管理各邏輯位址與NAND型快閃記憶體5之各物理位址之間之映射。
NAND型快閃記憶體5亦可包含複數個NAND型快閃記憶體晶片(複數個NAND型快閃記憶體裸片)。
各晶片包含記憶單元陣列。該記憶單元陣列包含複數個NAND塊(塊)B0~Bm-1。塊B0~Bm-1作為擦除單位發揮功能。塊有時亦被稱為「物理塊」或「擦除塊」。
塊B0~Bm-1包含複數個頁(物理頁)。即,塊B0~Bm-1分別包含頁P0~Pn-1。於非揮發性記憶體中,資料讀出及資料寫入以頁為單位執行。資料擦除以塊為單位執行。
另外,各晶片是使用於每個記憶單元中儲存1位元之資料之單個單元(SLC(Single-Level Cell,單層單元))及/或儲存複數位元之記憶
單元而構成。作為記憶複數位元之記憶單元,例如使用多單元(MLC(multi-level cell,多層單元))、三層單元(TLC)、四層單元(QLC)等。
另外,NAND型快閃記憶體5例如包含輸入緩衝區36。輸入緩衝區36用作例如SSD3從主機2接收到寫指令時之成為寫對象之資料(寫資料)之儲存目的地。此外,輸入緩衝區亦可設於NAND型快閃記憶體5之外部。
輸入緩衝區36例如具有NAND型快閃記憶體5之總容量之百分之幾左右之記憶容量。另外,讀取緩衝區31及寫緩衝區32例如具有輸入緩衝區36之100分之1倍左右之記憶容量。
較佳為輸入緩衝區36使用多值度較低之NAND型快閃記憶體。以下,假設輸入緩衝區36使用例如SLC而構成。
另外,輸入緩衝區36不僅可使用NAND型快閃記憶體5,亦可使用SRAM、DRAM等揮發性記憶體。
控制器4經由Toggle DDR(Double Data Rate,雙倍資料速率)、開放式NAND閃存介面(ONFI,Open NAND Flash Interface)之類的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)與各物理位址之間之映射之管理使用作為位址轉換表(邏輯物理位址轉換表)發揮功能之LUT34而執行。控制器4使用查找表LUT34,以特定之管理大小為單位管理各LBA與各物理位址之間之映射。與某LBA對應之物理位址表示寫有該LBA之資料之NAND型快閃記憶體5內之物理記憶位置。位址轉換表LUT34亦可於SSD3之電源接通時從NAND型快閃記憶體5加載至DRAM6。
對1個頁之資料寫入係每1個擦除週期(編程/抹除週期)只能進行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指令可包含寫(寫入)指令、讀取(讀出)指令、取消映射指令(UNMAP)(禁用刪除(Trim)指令)、格式指令、閃存指令等。此外,寫指令亦被稱為編程指令。格式指令係用於將記憶體系統(SSD3)整體取消映射之指令。閃存指令係用於將記憶體系統內快取(緩衝)之廢資料(用戶資料及相關之管理資料)藉由寫入至NAND型快閃記憶體5而全部成為乾淨狀態之指令。
DRAM介面14作為構成為控制DRAM6之存取之DRAM控制
器發揮功能。DRAM6之記憶區域用來儲存讀取緩衝區31、寫緩衝區32、GC緩衝區33、LUT34、塊管理資訊35、輸入緩衝區36等。
CPU12是構成為控制主機介面11、NAND介面13、及DRAM介面14之處理器。CPU12藉由執行未圖示之ROM(Read Only Memory,唯讀記憶體)等中儲存之控制程式(固件)而進行各種處理。該CPU12除了可執行上述FTL之處理以外,還可執行用於處理來自主機2之各種指令之指令處理等。CPU12之動作由CPU12所執行之上述固件控制。此外,FTL處理及指令處理之一部分或全部亦可由控制器4內之專用硬體執行。
於本實施形態中,CPU12例如可作為塊管理部121、讀取控制部123、寫控制部125、GC控制部127發揮功能。
塊管理部121針對SSD3內之每個塊管理包括擦除次數(編程/抹除週期數)、擦除序號、有效資料數(有效資料量)等之塊管理資訊35。塊管理部121例如每當進行對於各塊之寫入動作、禁用刪除(取消映射)動作、擦除動作等時,便更新塊管理資訊35。
讀取控制部123可基於與邏輯位址(LBA)對應之LUT34之條目,求出與LBA對應之物理位址,並從NAND型快閃記憶體5讀出與讀取指令相應之資料。
寫控制部125根據寫指令將從主機2接收到之用戶資料累積到DRAM6上之寫緩衝區32。寫控制部125預先確保用於累積用戶資料之寫緩衝區32之區域,於無法確保之期間,不從主機2受理寫指令。
然後,寫控制部125當於寫緩衝區32內累積有NAND型快閃記憶體5之寫入單位量之用戶資料時,將該寫入單位量之用戶資料傳輸至
NAND型快閃記憶體5之晶片(晶片之資料鎖存器)。寫控制部125將寫緩衝區32內之累積所傳輸之用戶資料之區域釋放。
接下來,寫控制部125對NAND型快閃記憶體5之晶片指示編程。即,寫控制部125藉由向NAND型快閃記憶體5之晶片發送編程指令,而使該晶片將傳輸來之用戶資料編程到寫入目的地塊。晶片內之記憶單元陣列50包含複數個塊。塊大致分為儲存有效資料而不能寫入新資料之塊(活動塊)、及未儲存有效資料而藉由經擦除處理能夠用於寫入新資料之塊(空閒塊)。從1個以上之空閒塊中選擇1個,藉由經擦除處理而被分配為寫入目的地塊。寫入目的地塊能夠儲存有效資料。
GC控制部127亦可使用GC緩衝區33,以與如上述般之寫控制部125之寫入動作相同之方式,對NAND型快閃記憶體5進行寫入。GC控制部127從儲存有效資料之活動塊群中選擇垃圾回收源塊(GC源塊),將該GC源塊內之有效資料寫入至從空閒塊群中被確保為寫入目的地塊之垃圾回收目標塊(GC目標塊)。
接下來,對主機2之構成進行說明。主機2具有用於對作為DAS而連接之SSD3進行存取之功能。另外,主機2亦可具有用於對網路(雲端)上之儲存器進行存取之功能。
主機2係執行各種程式之資訊處理裝置。由資訊處理裝置執行之程式中包含應用層41、操作系統(OS)42、檔案系統43等。
眾所周知,操作系統(OS)42係一種軟體,其管理主機2整體,控制主機2內之硬體,且構成為執行用以讓應用程式能夠使用硬體及SSD3之控制。
檔案系統43用來進行用於檔案之操作(建立、儲存、更新、
刪除等)之控制。例如,可將ZFS(Zettabyte File System,皆位元組檔案系統)、Btrfs(B-tree file system,B樹狀檔案系統)、XFS(Extents File System,擴展檔案系統)、ext4(Fourth EXtended filesystem,第四代擴展檔案系統)、NTFS(New Technology File System,新技術檔案系統)等用作檔案系統43。或者,亦可將檔案對象系統(例如,Ceph Object Storage Daemon(Ceph對象儲存守護進程))、Key Value Store System(鍵值儲存系統)(例如,Rocks DB(Data Base,資料庫))用作檔案系統43。
於應用層41上執行各種應用軟體執行緒。作為應用軟體執行緒之例子,有用戶端軟體、資料庫軟體、虛擬機器等。
當應用層41需要向SSD3傳送讀取指令或寫指令之類的請求時,應用層41將該請求傳送至OS42。OS42將該請求傳送至檔案系統43。檔案系統43將該請求轉譯為指令(讀取指令、寫指令等)。檔案系統43將指令傳送至SSD3。當接收到來自SSD3之響應時,檔案系統43將該響應傳送至OS42。OS42將該響應傳送至應用層41。
應用層41包含SSD控制部411。SSD控制部411具有為了SSD3之各種控制而與SSD3進行通信之介面功能。SSD控制部411對SSD3發送各種控制指令及資料等。
於本實施形態中,當從主機2對SSD3發佈讀取指令時,將成為讀出對象之資料(以下,稱為讀取資料)寫入至NAND型快閃記憶體5內之其他塊。以下,使用圖2及圖3,對本實施形態之電腦系統1內之SSD3中之資料流進行說明。
此外,圖3概念性地表示主機2及SSD3間之資料之流向,將例如控制器4、DRAM6等SSD3中包含之一部分構成要素之記載省略。另
外,圖3之箭頭A201~A203表示資料之流向。
於步驟S101中,SSD3之控制器4從主機2接收讀取指令。藉由讀取指令,指定成為讀出對象之資料之起始(開頭)LBA、及資料長度。成為讀出對象之資料之LBA範圍(邏輯位址範圍)由起始(開頭)LBA與資料長度決定。
於步驟S102中,控制器4例如將讀取指令所指定之LBA為(X)之資料D1從NAND型快閃記憶體5讀出,並寫入至讀取緩衝區31(箭頭A201)。此外,假設該資料D1儲存於塊Ba中。
於步驟S103中,控制器4將儲存於讀取緩衝區31之資料D1發送至主機(箭頭A202)。
於步驟S104中,控制器4例如將資料D1寫回到NAND型快閃記憶體5內之作為「其他塊」之塊Bc。此外,關於步驟S103及S104之處理,可先執行任一個。
該其他塊亦被稱為讀取快取塊。於本實施形態中,同一個LBA(X)之資料存在於讀出源之塊Ba上及寫入目的地之塊Bc(讀取快取塊)上這2個部位。
此處,於本實施形態中,步驟S102中被讀出資料D1之塊Ba之多值度與步驟S104中被寫入資料D1之塊Bc(讀取快取塊)之多值度不同。更具體而言,塊Ba之多值度大於塊Bc(讀取快取塊)之多值度。於圖3之例子中,藉由讀取指令讀出之資料D1從QLC之塊Ba讀出,並被寫入至SLC之塊Bc。
此外,以下,假設儲存成為讀取指令之對象之資料D1之塊之多值度為QLC,但亦可為例如TLC、MLC等其他多值度。
於步驟S105中,控制器4更新用來管理資料D1之LBA與讀取快取塊內之物理位址之對應關係之第2 LUT。此外,DRAM6之LUT34係用來管理資料D1之LBA與儲存資料D1之塊Ba內之物理位址之對應關係之LUT。因此,塊Bc(讀取快取塊)中儲存之資料D1必須由與LUT34不同之第2 LUT管理。
另外,從主機2讀出之資料D1是由於參照之局域性而存取頻率較高之資料,複數次從主機2讀出之可能性較高。
以下,利用圖4,對如上述般將資料D1寫入至塊Bc後再次從主機2讀出資料D1時之資料流進行說明。
控制器4當從主機2接收到讀出資料D1之意旨之讀取指令時,於搜索LUT34之前搜索上述第2 LUT,由此從讀取快取塊(塊Bc)讀出該資料D1(箭頭A204、A205)。由此,與從塊Ba讀出時相比,資料D1被高速地讀出。另外,多值度較低之塊與多值度較高之塊相比,資料保留期間較長,因此,所讀出之資料D1之可靠性提高。
此外,對於讀取快取塊(塊Bc),不進行基於GC之資料複製便重新利用。即,當將資料寫到該讀取快取塊之最終頁為止時,控制器4清除第2 LUT,對該讀取快取塊進行塊擦除。
如以上所說明般,於本實施形態中,於SSD3之NAND型快閃記憶體5中,除了儲存資料之多值度較高之塊以外,另外確保多值度較低之讀取快取塊。而且,當基於來自主機2之讀取指令從NAND型快閃記憶體5讀出資料時,將該資料寫入至讀取快取塊。由此,針對下次及之後的讀取指令,該資料從讀取快取塊被讀出。因此,主機2可針對SSD3對多值度更低之塊進行高速且可靠性較高之存取。
此外,於本實施形態中,亦可省略讀取緩衝區31。即,控制器4亦可不經由讀取緩衝區31而讀出資料D1並發送至主機2或寫入至NAND型快閃記憶體5。
本實施形態係第1實施形態之變化例。於第1實施形態中,讀取指令所指定之LBA之資料被寫入至讀取快取塊,但若考慮參照之局域性,則多數情形時亦同時存取該資料之周邊資料。這是因為,例如於某應用程式中,所需資料儲存於特定範圍之LBA之可能性較高。
於本實施形態中,亦將藉由讀取指令讀出之資料之周邊之LBA之資料寫入至讀取快取塊。
此外,本實施形態之電腦系統1之構成由於與第1實施形態相同,故省略說明。
圖5係表示本實施形態之電腦系統1內之SSD3中之資料流之一例之流程圖。
於步驟S201中,SSD3之控制器4從主機2接收讀取指令。
於步驟S202中,控制器4例如將讀取指令所指定之資料D1、及資料D1之LBA範圍(邏輯位址範圍)之周邊之LBA範圍之資料從NAND型快閃記憶體5之塊Ba讀出。此處,若將資料D1之LBA範圍設為LBA(x)~LBA(y),且將k設為整數,則周邊之LBA範圍由LBA(x-k)~LBA(x-1)及/或LBA(y+1)~LBA(y+k)表示。所讀出之資料被寫入至讀取緩衝區31。此外,當資料D1之資料長度為1時,x與y相等。
於步驟S203中,控制器4從讀取緩衝區31讀出資料D1(即讀
取指令所指定之LBA之資料),並將該資料D1發送至主機。
於步驟S204中,與步驟S104同樣地,控制器4將儲存於讀取緩衝區31之資料寫入至塊Bc(讀取快取塊)。此外,關於步驟S203及S204之處理,可先執行任一個。
於步驟S205中,與步驟S105同樣地,控制器4更新第2 LUT中有關步驟S204中所寫入之資料之部分。
如以上所說明般,於本實施形態中,當從主機2針對某LBA接收到讀取指令時,除了該讀取指令表示之該LBA之資料以外,該LBA之前後(或周邊)之範圍之LBA之資料也一併被讀出,並被寫入至讀取快取塊。由此,主機2對SSD3之存取性能進一步提高。
此外,與第1實施形態同樣地,於本實施形態中,亦可省略讀取緩衝區31。
本實施形態係第1及第2實施形態之變化例。於第1及第2實施形態中,藉由讀取指令讀出之資料殘留於讀出源塊。即,所讀出之資料存在於讀出源塊及讀取快取塊這兩者。另一方面,於本實施形態中,將存在於讀出源塊之資料刪除。即,所讀出之資料只存在於讀取快取塊。
此外,本實施形態之電腦系統1之構成由於與第1及第2實施形態相同,故省略說明。
圖6係表示本實施形態之電腦系統1內之SSD3中之資料流之一例之流程圖。
步驟S301~S304之處理由於與圖2之步驟S101~S104之處
理相同,故省略說明。
於步驟S305中,控制器4將讀出之資料刪除,以LUT34表示讀取快取塊上之方式更新LUT34。更具體而言,控制器4將LUT34中儲存資料D1之塊Ba內之物理位址覆寫為塊Bc(讀取快取塊)中之資料D1之寫入目的地之物理位址。藉由如此覆寫LUT34,使讀出源之資料無效化。
此外,於將資料寫到讀取快取塊之最終頁為止而重新利用讀取快取塊之情形時,LUT34指示讀取快取塊中儲存之資料時,該資料成為GC對象。於該情形時,該資料被寫入至多值度較高之塊(例如,塊Ba、Bb等)。
如以上所說明般,於本實施形態中,所讀出之資料於讀出源被無效化(即,從讀出源刪除),作為存在於寫入目的地之讀取快取塊之資料進行處理。即,當讀出資料時,亦對該資料執行更新動作。
一般地,更新動作多數情形時不管資料之類型,一律每隔特定之期間或於特定之時序執行,於本實施形態中,於讀出該資料之時序,即,當對該資料之存取頻率提高時,亦對該資料進行更新動作。由此,SSD3可於更恰當之時序進行更新動作,而SSD3中儲存之資料之可靠性提高。
此外,與第1實施形態同樣地,於本實施形態中,亦可省略讀取緩衝區31。
另外,本實施形態之構成亦可與第2實施形態組合。即,於第2實施形態中,亦可針對寫入至讀取快取塊之所有資料(讀取資料、及具有讀取資料之周邊之LBA之資料)覆寫LUT34,使讀出源之資料無效化。
圖7係表示本實施形態之電腦系統1內之SSD3中之資料流之第1例之圖。
於本實施形態中,SSD3除具備讀取緩衝區31、寫緩衝區32、NAND型快閃記憶體5以外,還具備輸入緩衝區36。輸入緩衝區36亦可包含於NAND型快閃記憶體5。如上述般,輸入緩衝區36作為從主機2接收到寫指令時之寫資料之儲存目的地發揮功能。
另外,如上述般,NAND型快閃記憶體5之多值度較佳為大於輸入緩衝區36之多值度。以下,假設NAND型快閃記憶體5使用QLC而構成,輸入緩衝區36使用SLC而構成。
於本實施形態中,與圖2及圖3之構成同樣地,當從主機2接收到讀取指令時,將讀取資料從NAND型快閃記憶體5寫入至讀取緩衝區,並從該讀取緩衝區向主機2發送讀取資料。
另外,當從主機2接收到寫指令時,將寫資料寫入至寫緩衝區,該寫資料被寫入至輸入緩衝區,並最終被寫入至NAND型快閃記憶體5。
此外,於本實施形態中,設為包含讀取緩衝區31及寫緩衝區32等之構成,但讀取緩衝區31及寫緩衝區32可省略。
以下,利用圖8及圖9,對本實施形態之電腦系統1內之SSD3中之資料流進行說明。
此外,圖9與圖3同樣,概念性地表示主機2及SSD3間之資料之流向。另外,圖9之箭頭A401~A403表示資料之流向。
SSD3之控制器4使用LUT34等管理已儲存於NAND型快閃
記憶體5之資料。
於步驟S401中,控制器4接收主機2所發佈之讀取指令。讀取指令中至少包含讀取資料之LBA、及作為讀取長度之NLB(Number of Logical Block,邏輯塊數)。
於步驟S402中,控制器4確認讀取指令中包含之LBA對應之資料是否包含於讀取緩衝區31、寫緩衝區32及輸入緩衝區36之任一個。
於該資料包含於讀取緩衝區31、寫緩衝區32及輸入緩衝區36之任一個之情形時,控制器4於步驟S405中,將該資料發送至主機。另一方面,於該資料不包含於讀取緩衝區31、寫緩衝區32及輸入緩衝區36之任一個之情形時,處理進入至步驟S403。
於步驟S403中,控制器4使用主機2所指定之資料之LBA及NLB搜索LUT34,由此獲取儲存該資料之NAND型快閃記憶體5上之物理位址。
於步驟S404中,控制器4對NAND型快閃記憶體5發佈用以讀出該物理位址上儲存之資料之讀取指令,讀出該資料。
接下來,控制器4於步驟S406中,將讀取資料寫入至讀取緩衝區31(箭頭A401),並且於步驟S405中,將讀取資料發送至主機(箭頭A402)。該步驟S405及步驟S406之處理亦可並行地執行。
於步驟S407中,控制器4將讀取資料寫入至輸入緩衝區36(箭頭A403)。此外,如上述般,輸入緩衝區36使用SLC而構成,亦係來自主機2之寫資料之儲存目的地。
於步驟S408中,控制器4更新表示該讀取資料儲存於輸入緩衝區36之資料。更具體而言,如第3實施形態中所說明般,使用LUT34管
理輸入緩衝區36中儲存之資料之LBA與該資料之物理位址之對應關係之情形時,更新LUT34。另外,與第1及第2實施形態同樣地,利用第2 LUT等管理輸入緩衝區36中儲存之資料之LBA與該資料之物理位址之對應關係之情形時,更新該第2 LUT。
此外,於步驟S406中,從NAND型快閃記憶體5讀出資料之處理失敗之情形時,結束處理。讀出處理失敗之情況例如係指基於ECC(Error Check and Correction,錯誤檢查及糾正)之錯誤訂正失敗之情況等。
圖10表示如上述般將讀取資料寫入至輸入緩衝區36後再次從主機2讀出該讀取資料時之資料流。
控制器4當從主機2接收到讀出資料之意旨之讀取指令時,確認於輸入緩衝區36中是否有該資料,於有該資料之情形時,從輸入緩衝區36將該資料讀出並發送至主機2(箭頭A404)。此外,於該資料不存在於輸入緩衝區36之情形時,從NAND型快閃記憶體5讀出該資料。
另外,控制器4當輸入緩衝區36中儲存之資料量例如超過特定閾值時,將輸入緩衝區36中儲存之資料寫入至NAND型快閃記憶體5(箭頭A405)。
如以上所說明般,於本實施形態中,NAND型快閃記憶體5中除了包含儲存資料之多值度較高之塊以外,還包含多值度較低之輸入緩衝區36。而且,當基於來自主機2之讀取指令從NAND型快閃記憶體5讀出資料時,將該資料寫入至輸入緩衝區36。由此,針對下次及之後的讀取指令,該資料從輸入緩衝區36被讀出。因此,主機2可針對SSD3對多值度更低之塊進行高速且可靠性較高之存取。
另外,於本實施形態中,亦可代替讀取緩衝區31而僅使用輸入緩衝區36。即,亦可省略步驟S406之處理。於輸入緩衝區36由例如使用SLC之NAND型快閃記憶體構成之情形時,藉由將讀取資料全部儲存於輸入緩衝區36,可使用作讀取緩衝區31之DRAM6之容量為0。一般地,NAND型快閃記憶體之價格較DRAM便宜,故,藉由如上述般削減DRAM6之容量,可降低SSD3之成本。
另外,一般地,DRAM6中儲存之資料例如藉由SSD3向低電力模式轉變、或SSD3之電源接通或斷開(即,橫跨功率週期)等而被擦除。因此,藉由將資料快取至輸入緩衝區36,而輸入緩衝區36作為快取之利用效果提高。
此外,於步驟S407之處理中,控制器4亦可將讀取資料儲存至寫緩衝區32而代替輸入緩衝區36。如上述般,寫緩衝區32由SRAM、DRAM等揮發性記憶體構成。儲存於寫緩衝區32之讀取資料基於控制器4之控制,被寫入至輸入緩衝區36,並最終被寫入至包括多值度較高之塊之NAND型快閃記憶體5,被非揮發化。
如此,藉由將讀取資料寫入至寫緩衝區32,例如,從NAND型快閃記憶體5讀出之讀取資料為例如讀取-修改-寫(Read Modify Write)之對象之情形時,即,係為了覆寫該讀取資料之一部分而讀出之資料之情形時,可減少輸入緩衝區36之覆寫次數。
更具體地進行說明。例如,即使將該成為讀取-修改-寫之對象之資料寫入至輸入緩衝區36亦立即被覆寫,故必須再次將覆寫後之資料寫入至輸入緩衝區36。因此,消耗由NAND型快閃記憶體構成之輸入緩衝區36之可覆寫次數。另一方面,藉由將該成為讀取-修改-寫之對象之資料
於揮發性記憶體上更新,可防止對輸入緩衝區36之多餘之寫入。
此外,控制器4亦可根據來自主機2之指令等選擇將讀取資料寫入至寫緩衝區32或寫入至輸入緩衝區36。如此,藉由對每個讀取資料選擇恰當之寫入目的地,可減低輸入緩衝區36之覆寫之負擔。
本實施形態係第4實施形態之變化例。於第4實施形態中,於步驟S406中,從NAND型快閃記憶體5讀出之讀取資料被寫入至讀取緩衝區31之後,亦立即被寫入至輸入緩衝區36。另一方面,於本實施形態中,是否將該讀取資料寫入至輸入緩衝區36係基於特定之條件判定。且,當判定為滿足該條件時,將該讀取資料寫入至輸入緩衝區36。
圖11係表示本實施形態之電腦系統1內之SSD3中之資料流之一例之流程圖。
步驟S501~S506之處理由於與圖8之步驟S401~S406之處理相同,故省略說明。
於步驟S507中,控制器4判定寫入至輸入緩衝區36之讀取資料是否需要更新。更具體而言,控制器4例如亦可管理表示自讀取資料被寫入至NAND型快閃記憶體5起之期間之資訊,基於該資訊,判定該讀取資料是否需要更新。
當判定為該讀取資料不需要更新時,結束處理。另一方面,當判定為該讀取資料需要更新時,於步驟S508中,將該讀取資料寫入至輸入緩衝區36。
此外,已寫入至輸入緩衝區36之讀取資料最終被寫入至
NAND型快閃記憶體5,即被更新。
步驟S508、S509之處理由於與圖8之步驟S407、S408之處理相同,故省略說明。
如以上所說明般,於本實施形態中,控制器4判定是否需要更新讀取資料,於需要更新之情形時,將該讀取資料寫入至輸入緩衝區36。由此,SSD3可高效率地執行讀取資料向輸入緩衝區36之寫入。另外,將讀取資料寫入至輸入緩衝區36之次數減少,故可延長輸入緩衝區36之壽命。
本實施形態係第5實施形態之變化例。於本實施形態中,是否將讀取資料寫入至輸入緩衝區36之判定基於與第5實施形態之步驟S507中所說明之條件不同之條件進行。
圖12係表示本實施形態之電腦系統1內之SSD3中之資料流之一例之流程圖。此外,步驟S601~S606之處理由於與圖11之步驟S501~S506之處理相同,故省略說明。
於步驟S607中,控制器4判定是否將讀取資料寫入至輸入緩衝區36。
一般地,每當從主機2接收寫指令時,SSD3之寫入容量便會增加。於上述各實施形態中,於接收到讀取指令之情形時,亦將讀取資料寫入至輸入緩衝區36,故對SSD3之寫入容量增加。即,每當有對SSD3之存取時,寫入容量便會增加。
因此,於步驟S607中,控制器4確認寫入容量是否已超過特
定之閾值,於寫入容量為特定之閾值以下之情形時,將該讀取資料寫入至輸入緩衝區36。
另外,控制器4為了執行步驟S607之處理而於SSD3內記憶表示寫入容量之資料。該資料例如亦可儲存於塊管理資訊35等。該資料較佳為每當對NAND型快閃記憶體5寫入時便更新。
此外,特定之閾值例如基於SSD3之耐久性、產品壽命等相關之指標而確定。更具體而言,特定之閾值亦可基於SSD3之DWPD(Drive Write Per Day,每日磁碟寫入量)而確定。此處,所謂DWPD係表示為了SSD3至少可於保證壽命期間使用,將SSD3之總記憶容量設為1個單位而每天能夠覆寫幾單位之容量之指標。此外,該特定之閾值例如亦可基於SSD3之最大覆寫容量(TBW:Tera Byte Written,寫入兆位元組)等其他指標而確定。
步驟S608、S609之處理由於與圖11之步驟S508、S509之處理相同,故省略說明。
如以上所說明般,於本實施形態中,控制器4設定基於SSD3之DWPD等之特定之閾值,當與該特定之閾值相比,SSD3內之寫入容量存在餘裕時,將讀取資料寫入至輸入緩衝區36。由此,與如上述各實施形態般無條件地將讀取資料寫入至輸入緩衝區36之情況相比,可使SSD3之耐久性提高。
此外,於本實施形態中,控制器4例如亦可針對SSD3之每一位利用者,記憶表示SSD之利用特性之資料,並儲存於SSD內部。表示利用特性之資料例如係每個時段之對SSD3之寫入容量、寫入次數等相關之統計資料。控制器4藉由於上述步驟S607中,除使用上述寫入容量以外
亦使用該表示利用特性之資料,可更靈活地執行判定處理。
例如,根據某時間點之SSD3之利用狀況,更新表示利用特性之資料。然後,亦可於下一時間點,基於更新後之表示利用特性之資料,修正SSD3內部之將讀取資料寫入至輸入緩衝區36之處理之頻率等。
更具體而言,例如,假設某天因SSD3接收到大量之讀取指令而向輸入緩衝區36中寫入大量之讀取資料。控制器4根據這一天之SSD3之利用狀況,更新表示利用特性之資料。然後,控制器4亦可藉由參照該更新後之利用特性資料,以例如於次日讀取資料被寫入至輸入緩衝區36之容量減少之方式(即,以控制寫入處理之方式),修正該寫入處理之頻率。
本實施形態係第5及第6實施形態之變化例。於第5及第6實施形態中,SSD3之控制器4基於特定之條件判定是否將讀取資料寫入至輸入緩衝區36。另一方面,於本實施形態中,主機2對SSD3發送判定是否將讀取資料寫入至輸入緩衝區36所需之資訊。
圖13係表示本實施形態之電腦系統1內之SSD3中之資料流之一例之流程圖。
於步驟S701中,SSD3接收從主機2發佈之讀取指令。該讀取指令中包含與該讀取指令(或讀出處理)之類別相關之資訊(以下,稱為讀取類別)。讀取類別是例如表示讀取指令用於何種用途、或者讀取資料或讀出處理為何種性質等之資訊,由作為讀取指令之發佈源之主機2產生。
該讀取類別例如包含表示預定讀取指令為了僅一次讀出所
需資料而發佈之意旨之第1類別、表示預定讀取指令為了讀取-修改-寫而發佈之意旨之第2類別、表示預定讀取指令為了複數次讀出而發佈之意旨之第3類別、表示預定讀取指令為了之後讀出成為熱資料之資料而發佈之意旨之第4類別、及表示讀取指令為了之後讀出成為冷資料之資料而發佈之意旨之第5類別等。
此處,所謂熱資料係指於短時間內被再次存取之資料。另外,冷資料是被存取一次之後好久(長時間)不被存取之資料。
該讀取類別亦可如圖14所示,使用例如作為SSD之連接標準之NVMe(Non-Volatile Memory Express)標準之資料集管理指令中包含之「情境屬性」表達。圖14表示資料集管理指令中之某LBA範圍之資料之情境屬性。該情境屬性係表示與所指定之LBA範圍之資料有關之各種屬性之例如4位元組(32位元)之資訊。
主機2例如除了將起始(開頭)LBA與邏輯塊長度包含於資料集管理指令以外,亦將由該起始LBA與邏輯塊長度指定之LBA範圍之情境屬性包含於資料集管理指令。
於圖14中,例如[10]位元係表示該資料是否為寫入對象之1位元之資訊。主機2於例如讀取資料為讀取-修改-寫之對象之情形時,將該[10]位元接通。即,主機2可使用該屬性資訊之[10]位元,通知SSD2讀取資料為上述第2類別。
另外,例如[03:00]位元係表示存取頻率(Access Frequency)之4位元之資訊。例如,當[03:00]位元為“0001b”時,表示該資料以通常之(典型之)存取頻率執行寫入及讀出。同樣地,例如,當[03:00]位元為“0101b”時,表示該資料以高頻率寫入,且以高頻率讀
出。
主機2於例如讀取資料為熱資料之情形時,將該[03:00]位元設為“0100b”或“0101b”。由此,通知SSD3讀取類別為上述第4類別。另外,主機2於例如讀取資料為冷資料之情形時,將該[03:00]位元設為“0010b”或“0011b”。由此,通知SSD3讀取類別為上述第5類別。
該讀取類別亦可利用其他方法表達。例如,讀取類別亦可包含於讀取指令中。更具體而言,亦可使用讀取指令中包含之資料集管理字段之數位元表達上述第1~第5類別。另外,該讀取類別亦可藉由與讀取指令不同之指令通知給SSD3。
返回到圖13,於步驟S702~S706中,控制器4將讀取指令所指定之讀取資料從NAND型快閃記憶體5讀出,並寫入至讀取緩衝區,並且發送至主機2。此外,步驟S702~S706之處理與步驟S602~S606之處理相同。
於步驟S707中,控制器4判定接收到之讀取類別是否滿足特定之條件,於滿足該條件之情形時,將讀取資料寫入至輸入緩衝區36。更具體而言,控制器4基於讀取類別,例如像以下(A)~(E)般,控制讀取資料向輸入緩衝區36之寫入。
(A)於接收到上述第1資訊之情形時,即,於對於該讀取資料之讀出僅為一次之情形時,對象之資料有可能不是熱資料。因此,控制器4不將該讀取資料寫入至輸入緩衝區36。
(B)於接收到上述第2資訊之情形時,即,於使用該讀取資料進行讀取-修改-寫之情形時,該讀取資料變舊之可能性變高。因此,控
制器4不將該讀取資料寫入至輸入緩衝區36。
(C)於接收到上述第3資訊之情形時,即,於該讀取資料被複數次讀出之情形時,該讀取資料為熱資料之可能性較高。因此,控制器4將該讀取資料寫入至輸入緩衝區36。由此,該讀取資料並非從NAND型快閃記憶體5而是積極地從輸入緩衝區36讀出。
(D)於接收到上述第4資訊之情形時,即,於讀取資料為熱資料之情形時,控制器4將該讀取資料寫入至輸入緩衝區36。
(E)於接收到上述第5資訊之情形時,即,於讀取資料為冷資料之情形時,控制器4不將該讀取資料寫入至輸入緩衝區36。
此外,冷資料由於被主機2繼續參照之可能性較低,故不寫入至輸入緩衝區36中,由此可避免對輸入緩衝區36之多餘之寫入。
另外,由來自主機2之寫指令指定且被寫入至輸入緩衝區36之寫資料為熱資料。此處,一般地,於混合存在冷資料與熱資料之塊中,GC效率降低。因此,於本實施形態中,不將冷資料寫入至輸入緩衝區36,由此可防止輸入緩衝區36之GC效率降低。
步驟S708、S709之處理由於與圖12之步驟S608、S609之處理相同,故省略說明。
如以上所說明般,於本實施形態中,主機2將讀取類別通知給SSD3。然後,SSD3基於該資訊判定是否將讀取資料寫入至輸入緩衝區36。由此,SSD3可抑制對輸入緩衝區36之多餘之寫入。
另外,於輸入緩衝區36由例如使用SLC之NAND型快閃記憶體構成之情形時,藉由根據讀取指令之類別將資料寫入至輸入緩衝區26,可減少用作讀取緩衝區31之DRAM6之容量。由此,可降低SSD3之
成本。
本實施形態係第7實施形態之變化例。於本實施形態中,與第7實施形態同樣地,主機2亦對SSD3發送判定是否將讀取資料寫入至輸入緩衝區36所需之資訊。
圖15係表示本實施形態之電腦系統1內之SSD3中之資料流之一例之流程圖。
於步驟S801中,SSD3接收從主機2發佈之讀取指令。該讀取指令中包含表示有無利用輸入緩衝區36之資訊。
表示有無利用輸入緩衝區36之資訊由作為讀取指令之發佈源之主機2產生。該資訊例如包含表示利用輸入緩衝區36之意旨之資訊、表示不利用輸入緩衝區36之意旨之資訊、或表示委託SSD3判斷有無利用輸入緩衝區36之意旨之資訊等中之任一個資訊。
該表示有無利用輸入緩衝區36之資訊較佳為包含於讀取指令中。例如主機2亦可使用讀取指令之預約(Reserved)區域之數位元表達該資訊。另外,例如主機2亦可藉由指定是否對該讀取資料高速地存取表達該資訊。
另外,該讀取類別亦可藉由與讀取指令不同之指令而通知給SSD3。
步驟S802~S806之處理由於與步驟S702~S706之處理相同,故省略說明。
於步驟S807中,控制器4確認表示有無利用輸入緩衝區36之
資訊,判定是否將讀取資料寫入至輸入緩衝區36。此外,藉由該資訊,委託SSD3判斷有無利用輸入緩衝區36之情形時,控制器4例如亦可藉由第4~第6實施形態中所示之處理判定有無利用輸入緩衝區36。
步驟S808、S809之處理由於與圖13之步驟S708、S709之處理相同,故省略說明。
如以上所說明般,根據本實施形態,主機2將表示有無利用輸入緩衝區36之資訊通知給SSD3。SSD3基於該資訊判定是否將讀取資料寫入至輸入緩衝區36。即,SSD3可委託主機2判定有無利用輸入緩衝區36,故可減輕SSD3之處理負荷。另外,由於主機2進行該判定,故可更確實地抑制對輸入緩衝區36之多餘之寫入。
已對本發明之若干實施形態進行了說明,但這些實施形態係作為示例而提出,並不意圖限定發明之範圍。該等新穎之實施形態能以其他多種方式實施,能夠於不脫離發明主旨之範圍內進行各種省略、置換、變更。這些實施形態或其變化包含於發明之範圍或主旨中,並且包含於申請專利範圍所記載之發明及其均等之範圍內。
本申請享有以日本專利申請2018-69140號(申請日:2018年3月30日)為基礎申請之優先權。本申請藉由參照該基礎申請而包含基礎申請之全部內容。
1‧‧‧電腦系統
2‧‧‧主機
3‧‧‧SSD
4‧‧‧控制器
5‧‧‧NAND型快閃記憶體
6‧‧‧DRAM
10‧‧‧匯流排
11‧‧‧主機I/F
12‧‧‧CPU
13‧‧‧NAND I/F
14‧‧‧DRAM I/F
31‧‧‧讀取緩衝區
32‧‧‧寫緩衝區
33‧‧‧GC緩衝區
34‧‧‧LUT
35‧‧‧塊管理資訊
36‧‧‧輸入緩衝區
41‧‧‧應用層
42‧‧‧操作系統
43‧‧‧檔案系統
121‧‧‧塊管理部
123‧‧‧讀取控制部
125‧‧‧寫控制部
127‧‧‧GC控制部
411‧‧‧SSD控制部
B0~Bm-1‧‧‧塊
P0~Pn-1‧‧‧頁
Claims (17)
- 一種記憶裝置,其係可經由介面與主機連接者,且具備:非揮發性記憶體,其包含複數個塊;及控制器,其與上述非揮發性記憶體電性連接;且上述控制器以如下方式構成:當從上述主機接收到讀取指令時,將由上述讀取指令指定之第1資料從上述非揮發性記憶體之第1塊讀出而發送至上述主機,並且將上述第1資料寫入至非上述第1塊之上述非揮發性記憶體之第2塊。
- 如請求項1之記憶裝置,其中上述第1塊之多值度與上述第2塊之多值度不同。
- 如請求項1或2之記憶裝置,其中上述第1塊之多值度高於上述第2塊之多值度。
- 如請求項1或2之記憶裝置,其中上述控制器以如下方式構成:從上述第1塊讀出上述第1資料時,將與上述第1資料之邏輯位址範圍之周邊之邏輯位址範圍對應之第2資料與上述第1資料一起讀出,且將上述第1資料及上述第2資料寫入至上述第2塊。
- 如請求項1或2之記憶裝置,其具備管理複數個邏輯位址與上述非揮發性記憶體之複數個物理位址之映射之位址轉換表,且 上述控制器以如下方式構成:將上述第1資料寫入至上述第2塊時,藉由更新上述位址轉換表,將上述第1資料之寫入目的地之物理位址映射至上述第1資料之邏輯位址。
- 如請求項1或2之記憶裝置,其中當上述控制器將上述第1資料寫入至上述第2塊之後,從上述主機接收到指定上述第1資料之讀取指令時,從上述非揮發性記憶體之上述第2塊將上述第1資料讀出而發送至上述主機。
- 一種記憶裝置,其係可經由介面與主機連接者,且具備:非揮發性記憶體,其包含複數個塊;控制器,其與上述非揮發性記憶體電性連接;及緩衝區,其具有較上述非揮發性記憶體之多值度更低之多值度;且上述控制器以如下方式構成:當從上述主機接收到讀取指令時,將由上述讀取指令指定之第1資料從上述非揮發性記憶體之第1塊讀出而發送至上述主機,並且將上述第1資料寫入至上述緩衝區。
- 如請求項7之記憶裝置,其中上述控制器以如下方式構成:當判定為需要更新上述第1資料時,將上述第1資料寫入至上述緩衝區,當判定為不需要更新上述第1資料時,不將上述第1資料寫入至上述緩衝區。
- 如請求項7之記憶裝置,其中上述控制器以如下方式構成:記憶對於上述非揮發性記憶體之寫入容量,當上述寫入容量為特定之閾值以下時,將上述第1資料寫入至上述緩衝區,當上述寫入容量非上述特定之閾值以 下時,不將上述第1資料寫入至上述緩衝區。
- 如請求項9之記憶裝置,其中上述特定之閾值係基於DWPD(Drive Write Per Day,每日磁碟寫入量)而設定,上述DWPD係表示以上述非揮發性記憶體之總記憶容量為1單位時每天能夠覆寫多少單位之容量之指標。
- 如請求項7之記憶裝置,其中上述控制器以如下方式構成:當從上述主機接收到表示上述讀取指令或與上述讀取指令對應之讀出處理之類別之資訊時,基於上述資訊判定是否將上述第1資料寫入至上述緩衝區。
- 如請求項11之記憶裝置,其中上述控制器以如下方式構成:於上述資訊表示對於上述第1資料之上述讀出處理進行複數次,且非讀取-修改-寫之對象之情形時,將上述第1資料寫入至上述緩衝區。
- 如請求項7之記憶裝置,其中上述控制器以如下方式構成:於從上述主機接收到表示有無使用上述緩衝區之資訊,且上述資訊表示使用上述緩衝區之意旨之情形時,將上述第1資料寫入至上述緩衝區,於從上述主機接收到之上述資訊表示不使用上述緩衝區之意旨之情形時,不將上述第1資料寫入至上述緩衝區。
- 如請求項7至13中任一項之記憶裝置,其中上述控制器將上述第1資料寫入至上述緩衝區之後,若從上述主機接收到指定上述第1資料之讀取 指令時,從上述緩衝區將上述第1資料讀出而發送至上述主機。
- 一種電腦系統,其具備:電腦;及記憶裝置,其可經由介面與上述電腦連接;上述記憶裝置具備:非揮發性記憶體,其包含複數個塊;控制器,其與上述非揮發性記憶體電性連接;及緩衝區,其具有較上述非揮發性記憶體之多值度更低之多值度;上述電腦對上述記憶裝置發送包含第1資訊與第2資訊之讀取指令,上述第1資訊係用以讀出第1資料者,上述第2資訊係用以判定是否將上述第1資料寫入至上述緩衝區者,且上述控制器以如下方式構成:將由上述第1資訊指定之第1資料從上述非揮發性記憶體之第1塊讀出而發送至上述電腦,並且基於上述第2資訊,判定是否將上述第1資料寫入至上述緩衝區。
- 如請求項15之電腦系統,其中上述第2資訊係表示上述讀取指令或與上述讀取指令對應之讀出處理之類別之資訊。
- 如請求項15之電腦系統,其中上述第2資訊係表示有無使用上述緩衝區之資訊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018069140A JP2019179455A (ja) | 2018-03-30 | 2018-03-30 | 記憶装置及びコンピュータシステム |
JP2018-069140 | 2018-03-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201942749A TW201942749A (zh) | 2019-11-01 |
TWI699650B true TWI699650B (zh) | 2020-07-21 |
Family
ID=68056208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107123306A TWI699650B (zh) | 2018-03-30 | 2018-07-05 | 記憶裝置及電腦系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10936203B2 (zh) |
JP (1) | JP2019179455A (zh) |
CN (1) | CN110321065B (zh) |
TW (1) | TWI699650B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10726930B2 (en) * | 2017-10-06 | 2020-07-28 | Western Digital Technologies, Inc. | Method and system for a storage (SSD) drive-level failure and health prediction leveraging machine learning on internal parametric data |
US10852979B1 (en) * | 2019-06-19 | 2020-12-01 | Dell Products L.P. | System and method of utilizing a non-volatile solid state storage device |
US11119914B2 (en) * | 2019-11-15 | 2021-09-14 | Micron Technology, Inc. | Method of operating a memory with dynamically changeable attributes |
JP7413108B2 (ja) | 2020-03-23 | 2024-01-15 | キオクシア株式会社 | 半導体装置 |
JP7044403B2 (ja) * | 2020-05-18 | 2022-03-30 | Necプラットフォームズ株式会社 | ストレージシステム、ストレージ制御方法およびストレージ制御プログラム |
CN113535089B (zh) * | 2020-05-22 | 2024-05-17 | 长江存储科技有限责任公司 | 用于ssd的映射表的刷新方法 |
CN112732182B (zh) * | 2020-12-29 | 2024-07-05 | 北京浪潮数据技术有限公司 | 一种nand的数据写入方法及相关装置 |
US11940935B2 (en) * | 2021-04-19 | 2024-03-26 | Mellanox Technologies, Ltd. | Apparatus, method and computer program product for efficient software-defined network accelerated processing using storage devices which are local relative to a host |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200506609A (en) * | 2003-03-19 | 2005-02-16 | Sony Corp | Data storage device, management information updating method in data storage device, and computer program |
TWI242128B (en) * | 2000-09-12 | 2005-10-21 | Hitachi Ltd | Data processing system and data processing method |
TW200903493A (en) * | 2007-05-14 | 2009-01-16 | Buffalo Inc | Storage device |
US9612949B2 (en) * | 2013-06-13 | 2017-04-04 | Arm Limited | Memory allocation in a multi-core processing system based on a threshold amount of memory |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979627B2 (en) | 2007-05-14 | 2011-07-12 | Buffalo Inc. | Storage device with binary and multivalued memory |
JP4746658B2 (ja) | 2008-09-29 | 2011-08-10 | 株式会社東芝 | 半導体記憶システム |
JP2012164114A (ja) * | 2011-02-07 | 2012-08-30 | Renesas Electronics Corp | 不揮発性半導体記憶装置及びデータ処理システム |
US9218282B2 (en) * | 2013-10-31 | 2015-12-22 | Micron Technology, Inc. | Memory system data management |
KR102190670B1 (ko) | 2014-03-03 | 2020-12-14 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
US20150261444A1 (en) * | 2014-03-12 | 2015-09-17 | Kabushiki Kaisha Toshiba | Memory system and information processing device |
US20170060425A1 (en) * | 2015-08-27 | 2017-03-02 | Kabushiki Kaisha Toshiba | Memory system and method of controlling nonvolatile memory |
JP6414853B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US9933963B1 (en) * | 2017-03-01 | 2018-04-03 | Seagate Technology | Open block handling to reduce write errors |
TWI649759B (zh) * | 2017-09-28 | 2019-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
-
2018
- 2018-03-30 JP JP2018069140A patent/JP2019179455A/ja active Pending
- 2018-07-05 TW TW107123306A patent/TWI699650B/zh active
- 2018-07-27 CN CN201810839569.5A patent/CN110321065B/zh active Active
- 2018-09-10 US US16/126,582 patent/US10936203B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI242128B (en) * | 2000-09-12 | 2005-10-21 | Hitachi Ltd | Data processing system and data processing method |
TW200506609A (en) * | 2003-03-19 | 2005-02-16 | Sony Corp | Data storage device, management information updating method in data storage device, and computer program |
TW200903493A (en) * | 2007-05-14 | 2009-01-16 | Buffalo Inc | Storage device |
US9612949B2 (en) * | 2013-06-13 | 2017-04-04 | Arm Limited | Memory allocation in a multi-core processing system based on a threshold amount of memory |
Also Published As
Publication number | Publication date |
---|---|
TW201942749A (zh) | 2019-11-01 |
JP2019179455A (ja) | 2019-10-17 |
US20190303019A1 (en) | 2019-10-03 |
CN110321065B (zh) | 2023-08-11 |
US10936203B2 (en) | 2021-03-02 |
CN110321065A (zh) | 2019-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI699650B (zh) | 記憶裝置及電腦系統 | |
US11216185B2 (en) | Memory system and method of controlling memory system | |
US10789162B2 (en) | Memory system and method for controlling nonvolatile memory | |
US20190220395A1 (en) | Memory system and method for controlling nonvolatile memory | |
US9378135B2 (en) | Method and system for data storage | |
US8694754B2 (en) | Non-volatile memory-based mass storage devices and methods for writing data thereto | |
US20150347310A1 (en) | Storage Controller and Method for Managing Metadata in a Cache Store | |
JP2019133252A (ja) | メモリシステム | |
US11747979B2 (en) | Electronic device, computer system, and control method | |
JP2018073040A (ja) | メモリシステム | |
US9201784B2 (en) | Semiconductor storage device and method for controlling nonvolatile semiconductor memory | |
WO2020164064A1 (en) | Partial caching of media address mapping data | |
US11568074B2 (en) | Memory system | |
US20160004644A1 (en) | Storage Controller and Method for Managing Modified Data Flush Operations From a Cache | |
TW202101223A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN115390747A (zh) | 存储设备及其操作方法 | |
CN114327240A (zh) | 计算机可读存储介质、闪存存储器的数据存储方法及装置 | |
JP5649709B2 (ja) | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法およびプログラム | |
TW202213085A (zh) | 快閃記憶體的資料儲存方法及裝置以及電腦程式產品 | |
KR102210536B1 (ko) | 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법 | |
JP6666405B2 (ja) | メモリシステムおよび制御方法 | |
JP2016177822A (ja) | メモリシステム | |
KR20220159270A (ko) | 스토리지 장치 및 그 동작 방법 |