TWI692722B - 資訊處理裝置、藉由資訊處理裝置執行之方法及程式 - Google Patents
資訊處理裝置、藉由資訊處理裝置執行之方法及程式 Download PDFInfo
- Publication number
- TWI692722B TWI692722B TW107122912A TW107122912A TWI692722B TW I692722 B TWI692722 B TW I692722B TW 107122912 A TW107122912 A TW 107122912A TW 107122912 A TW107122912 A TW 107122912A TW I692722 B TWI692722 B TW I692722B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- write
- storage device
- request
- read
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
實施形態實現一種可削減儲存裝置側應準備之緩衝區域之資訊處理裝置、藉由資訊處理裝置執行之方法及程式。
資訊處理裝置將應寫入一個寫入目的塊之第1資料儲存於資訊處理裝置之記憶體上之寫入緩衝器。資訊處理裝置將寫入要求發送至儲存裝置,該寫入要求包含與上述一個寫入目的塊建立關聯之第1識別碼、及表示儲存有上述第1資料之上述寫入緩衝器內之位置之記憶位置資訊。資訊處理裝置每當自上述儲存裝置接收包含上述記憶位置資訊之傳送要求時,將上述第1資料自上述寫入緩衝器傳送至上述儲存裝置。
Description
本發明之實施形態係關於一種資訊處理裝置、藉由資訊處理裝置執行之方法及程式。
近年來,具備非揮發性記憶體之記憶體系統已廣泛普及。
作為此種記憶體系統之一,已知有以NAND(Not AND,反及)快閃技術為基礎之固態驅動器(SSD)。
於資料中心之伺服器中,亦使用SSD作為儲存裝置。
對於在如伺服器般之主計算機系統中使用之儲存裝置,要求較高之I/O(Input/Output,輸入/輸出)性能。
因此,近來,開始提出主機與儲存裝置之間的新介面。
又,於近來之儲存裝置中,存在要求能夠將不同種類之資料寫入不同之寫入目的塊之情形。
但是,若能夠同時利用之寫入目的塊之數量增加,則暫時儲存應寫入各個寫入目的塊之寫入資料時所需之寫入緩衝器之數量亦必須增加。通常,儲存裝置內之隨機存取記憶體之容量有限,故有時難以於儲存裝置中準備足夠數量之寫入緩衝器。
本發明之實施形態提供一種可削減儲存裝置側應準備之緩衝區域之資訊處理裝置、藉由資訊處理裝置執行之方法及程式。
根據實施形態,資訊處理裝置能夠連接於以管理自非揮發性記憶體內之複數個塊分配之複數個寫入目的塊之方式構成之儲存裝置,且具備記憶體、及連接於上述記憶體之處理器。上述處理器將應寫入一個寫入目的塊之第1資料儲存於上述記憶體上之寫入緩衝器。上述處理器將寫入要求發送至上述儲存裝置,該寫入要求包含與上述一個寫入目的塊建立關聯之第1識別碼、及表示儲存有上述第1資料之上述寫入緩衝器內之位置之記憶位置資訊。上述處理器每當自上述儲存裝置接收包含上述記憶位置資訊之傳送要求時,將上述第1資料自上述寫入緩衝器傳送至上述儲存裝置。
2:主機
2A:寫入緩衝器
3:快閃儲存裝置
4:控制器
5:NAND型快閃記憶體
6:DRAM
10:匯流排
11:主機介面
12:CPU
13:快閃編程控制器
14:DRAM介面
21:塊識別碼/緩衝位址接收部
22:傳送要求發送部
23:通知部
30:讀取緩衝器
31:寫入緩衝器
32:塊管理表
33:不良資訊管理表
41:應用軟體層
42:操作系統
43:檔案系統
44:裝置驅動程式
45:快閃儲存管理程式
50:介面
51:網路
61:最終使用者終端
101:處理器
102:主記憶體
103:BIOS-ROM
105:網路控制器
106:周邊介面控制器
107:控制器
107A:連接器
108:嵌入式控制器
BLK0~BLKn:塊
BLK#1:寫入目的塊
BLK#2:寫入目的塊
BLK#3:寫入目的塊
BLK#n:寫入目的塊
P0~Pn-1:頁
Ch.1~Ch.16:通道
S11~S12:步驟
S21~S27:步驟
S31~S33:步驟
S40~S46:步驟
S51~S54:步驟
S61~S63:步驟
S71~S73:步驟
S81~S92:步驟
S101~S104:步驟
S111~S114:步驟
S121~S125:步驟
圖1係表示主機與記憶體系統(快閃儲存裝置)之關係之方塊圖。
圖2係表示快閃儲存裝置之構成例之方塊圖。
圖3係表示快閃儲存裝置中所使用之複數個通道與複數個NAND型快閃記憶體晶片之關係的方塊圖。
圖4係表示快閃儲存裝置中所使用之某個超級塊之構成例之圖。
圖5係表示對應於複數個最終使用者之複數個寫入目的塊與複數個寫入緩衝區域之關係的圖。
圖6係用以說明快閃儲存裝置與主機側UWB之關係、及由主機與快閃儲存裝置執行之資料寫入處理之方塊圖。
圖7係表示複數個寫入目的塊與複數個寫入緩衝區域(UWB區域)之關係之例的圖。
圖8係用以說明快閃儲存裝置與主機側UWB之關係、及由主機與快
閃儲存裝置執行之資料讀出處理之方塊圖。
圖9係用以說明支持模糊-精細寫入之快閃儲存裝置與主機側UWB之關係、及由主機與快閃儲存裝置執行之資料寫入處理之方塊圖。
圖10係用以說明支持模糊-精細寫入之快閃儲存裝置與主機側UWB之關係、及由主機與快閃儲存裝置執行之資料讀出處理之方塊圖。
圖11係表示由主機與快閃儲存裝置執行之資料寫入處理之程序之序列圖。
圖12係表示由快閃儲存裝置執行之通知處理之程序之流程圖。
圖13係表示對應於傳送要求之接收而執行之主機側處理之程序之流程圖。
圖14係表示對應於讀取要求之接收而由快閃儲存裝置執行之資料讀出動作之程序的流程圖。
圖15係表示用於資料讀出之主機側處理之程序之流程圖。
圖16係用以說明支持串流寫入之快閃儲存裝置與主機側UWB之關係、及由主機與快閃儲存裝置執行之資料寫入處理之方塊圖。
圖17係表示複數個串流ID(Identification,標識符)與和該等串流ID建立關聯之複數個寫入目的塊之關係的圖。
圖18係用以說明支持串流寫入之快閃儲存裝置與主機側UWB之關係、及由主機與快閃儲存裝置執行之資料讀出處理之方塊圖。
圖19係表示由支持模糊-精細寫入之快閃儲存裝置與主機執行之資料寫入處理之程序的序列圖。
圖20係表示主機之構成例之方塊圖。
圖21係表示由主機內之處理器(CPU)執行之資料寫入處理之程序的流
程圖。
圖22係表示由主機內之處理器執行之資料讀出處理之程序的流程圖。
圖23係表示由主機內之處理器執行之資料讀出處理之另一程序的流程圖。
圖24係表示由主機內之處理器執行之UWB區域釋放處理之程序的流程圖。
以下,參照圖式對實施形態進行說明。
首先,參照圖1對主機與記憶體系統之關係進行說明。
該記憶體系統係以對非揮發性記憶體寫入資料且自非揮發性記憶體讀出資料之方式構成之半導體儲存裝置。該記憶體系統作為以NAND快閃技術為基礎之快閃儲存裝置3而實現。
主機(主機裝置)2係以控制複數個快閃儲存裝置3之方式構成。主機2係由資訊處理裝置實現,上述資訊處理裝置構成為將由複數個快閃儲存裝置3構成之快閃陣列用作記憶體。該資訊處理裝置可為個人電腦,亦可為伺服器電腦。
再者,快閃儲存裝置3亦可被用作設置於記憶體陣列內之複數個儲存裝置之一。記憶體陣列可經由電纜或網路而連接於如伺服器電腦般之資訊處理裝置,記憶體陣列包含控制該記憶體陣列內之複數個記憶體(例如複數個快閃儲存裝置3)之控制器。於將快閃儲存裝置3應用於記憶體陣列之情形時,該記憶體陣列之控制器亦可作為快閃儲存裝置3之主機發揮功能。
以下,例示如伺服器電腦般之資訊處理裝置作為主機2發揮功能之情形進行說明。
主機(伺服器)2與複數個快閃儲存裝置3經由介面50而相互連接(內部相互連接)。作為用於該相互連接之介面50,並不限定於此,可使用PCI Express(PCIe)(註冊商標)、NVM Express(NVMe)(註冊商標)、Ethernet(註冊商標)、NVMe over Fabrics(NVMeOF)等。
作為發揮主機2之功能之伺服器電腦之典型例,可列舉資料中心內之伺服器電腦(以下稱為伺服器)。
於主機2係由資料中心內之伺服器而實現之事例中,該主機(伺服器)2亦可經由網路51而連接於複數個最終使用者終端(客戶端)61。主機2可對該等最終使用者終端61提供各種服務。
能夠由主機(伺服器)2提供之服務之例有:(1)將系統運轉平台提供給各客戶端(各最終使用者終端61)之平台即服務(PaaS)、(2)將如虛擬伺服器般之基礎設施提供給各客戶端(各最終使用者終端61)之基礎設施即服務(IaaS)等。
複數個虛擬機亦可於作為該主機(伺服器)2發揮功能之物理伺服器上執行。於主機(伺服器)2上運行之該等虛擬機之每一個可作為以對所對應之數個客戶端(最終使用者終端61)提供各種服務之方式構成之虛擬伺服器發揮功能。
主機(伺服器)2包含管理構成快閃陣列之複數個快閃儲存裝置3之儲存管理功能、及對各最終使用者終端61提供包含記憶體存取在內之各種服務之前端功能。
快閃儲存裝置3包含如NAND型快閃記憶體般之非揮發性
記憶體。一個快閃儲存裝置3管理自非揮發性記憶體內之複數個塊分配之複數個寫入目的塊。所謂寫入目的塊係指寫入資料應寫入之塊。自主機2發送至快閃儲存裝置3之寫入要求(寫入指令)中包含與資料應寫入之一個寫入目的塊建立關聯之識別碼。基於該寫入要求中所含之該識別碼,快閃儲存裝置3自複數個寫入目的塊中決定出該資料應寫入之一個寫入目的塊。
該寫入要求中所含之識別碼亦可為指定特定寫入目的塊之塊識別碼。塊識別碼亦可由塊位址(塊編號)表示。或者,於快閃儲存裝置3包含複數個NAND型快閃記憶體晶片之事例中,塊識別碼亦可由塊位址(塊編號)與晶片編號之組合而表示。
於快閃儲存裝置3支持串流寫入之事例中,該寫入要求中所含之識別碼亦可為複數個串流中之一個串流之識別碼(串流ID)。於串流寫入中,複數個寫入目的塊與複數個串流分別建立關聯。換言之,於快閃儲存裝置3自主機2接收到包含某一串流ID之寫入要求之情形時,該快閃儲存裝置3對與和該串流ID對應之串流建立關聯之寫入目的塊寫入資料。
於快閃儲存裝置3自主機2接收到包含另一串流ID之寫入要求之情形時,該快閃儲存裝置3對與和該另一串流ID對應之另一串流建立關聯之另一寫入目的塊寫入資料。
由快閃儲存裝置3管理之複數個寫入目的塊亦可被共用該快閃儲存裝置3之複數個最終使用者(客戶端)分別使用。該情形時,於快閃儲存裝置3中,開放與共用快閃儲存裝置3之最終使用者之數量為相同數量或其以上數量之寫入目的塊。
如此,於能夠同時利用之複數個寫入目的塊存在於快閃儲
存裝置3之環境下,必須準備與該等寫入目的塊之數量相同數量之寫入緩衝器。
其原因在於,近來之NAND型快閃記憶體大多係以每記憶胞寫入多位元資料之方式構成,從而必須於各寫入目的塊中預先保存應寫入該寫入目的塊之複數頁資料。
又,於近來之NAND型快閃記憶體中,存在為了減少編程干擾而應用藉由多階段之編程動作將寫入資料寫入NAND型快閃記憶體之方法之事例,該多階段之編程動作伴有將寫入資料複數次傳送至NAND型快閃記憶體之動作。作為此種寫入方法之典型例,可列舉模糊-精細編程動作。該情形時,於多階段之編程動作結束之前必須保存寫入資料,故亦需要準備與寫入目的塊之數量相同數量之寫入緩衝器。
於模糊-精細編程動作中,例如將複數頁之第1寫入資料傳送至NAND型快閃記憶體,然後將第1寫入資料寫入最初之物理頁(連接於某條字元線之記憶胞群)(第一階段寫入:模糊寫入)。然後,執行對鄰接於最初之物理頁之另一物理頁(連接於另一條字元線之記憶胞群)之模糊寫入。繼而,將上述複數頁之第1寫入資料再次傳送至NAND型快閃記憶體,然後將該第1寫入資料寫入最初之物理頁(第二階段寫入:精細寫入)。之後,執行對上述另一物理頁之精細寫入。
但是,快閃儲存裝置3內之隨機存取記憶體之容量有限,故存在難以於快閃儲存裝置3內之隨機存取記憶體上準備足夠數量之寫入緩衝器的情況。又,即使於快閃儲存裝置3中準備了大容量之隨機存取記憶體,於共用快閃儲存裝置3之最終使用者之數量較少之情形時,結果仍導致大容量之隨機存取記憶體成為浪費。
因此,於本實施形態中,主機2之記憶體上之特定記憶區域被用作寫入緩衝器(以下稱為UWB:Unified Write Buffer)2A。主機2側之UWB2A包含與複數個寫入目的塊對應之複數個寫入緩衝區域。
主機2將應寫入一個寫入目的塊之寫入資料儲存於UWB2A(與該寫入目的塊對應之寫入緩衝區域)中。然後,主機2將寫入要求發送至快閃儲存裝置3,該寫入要求包含與該一個寫入目的塊建立關聯之識別碼(塊識別碼或串流ID)、及表示儲存有該寫入資料之UWB2A內之位置之記憶位置資訊。
快閃儲存裝置3自主機2接收該寫入要求,並保存識別碼與記憶位置資訊。快閃儲存裝置3於將該寫入資料寫入NAND型快閃記憶體時,藉由將上述包含記憶位置資訊之傳送要求發送至主機2而自UWB2A取得上述寫入資料。例如,於NAND型快閃記憶體為每記憶胞儲存3位元資料之TLC(Triple Level Cell,三層單元)-快閃記憶體之情形時,自UWB2A取得應寫入同一物理頁之3頁寫入資料。亦可對一個物理頁分配3個頁位址。然後,快閃儲存裝置3將該寫入資料寫入一個寫入目的塊(該寫入目的塊之某一物理頁)。
快閃儲存裝置3亦可藉由全序列編程動作將該寫入資料寫入一個寫入目的塊。
或者,快閃儲存裝置3亦可藉由多階段之編程動作(例如模糊-精細編程動作)將該寫入資料寫入一個寫入目的塊,該多階段之編程動作伴有將寫入資料(例如3頁寫入資料)複數次傳送至NAND型快閃記憶體之動作。該情形時,快閃儲存裝置3最先執行第一階段寫入動作。然後,於到達執行第二階段寫入動作之時點時,快閃儲存裝置3將上述包含記憶
位置資訊之傳送要求再次發送至主機2。主機2每當自快閃儲存裝置3接收上述包含記憶位置資訊之傳送要求時,將該寫入資料自UWB2A傳送至快閃儲存裝置3。當自UWB2A再次取得上述寫入資料時,快閃儲存裝置3執行第二階段寫入動作。
快閃儲存裝置3在該寫入資料之寫入結束且能夠自NAND型快閃記憶體讀出該寫入資料之情形時(全序列編程動作中全序列編程動作結束之情形時,模糊-精細編程動作中模糊寫入動作與精細寫入動作之兩個動作結束之情形時),向主機2通知已無需保存於UWB2A中之該寫入資料。
因此,於本實施形態中,無須於快閃儲存裝置3中準備複數個寫入緩衝器,能夠同時利用複數個寫入目的塊。因此,無須於快閃儲存裝置3中設置大容量之隨機存取記憶體,故不會導致快閃儲存裝置3之成本增加,能夠容易地增加共用快閃儲存裝置3之最終使用者之數量。
圖2表示快閃儲存裝置3之構成例。
快閃儲存裝置3具備控制器4及非揮發性記憶體(NAND型快閃記憶體)5。快閃儲存裝置3亦可進而具備隨機存取記憶體、例如DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)6。
NAND型快閃記憶體5包含具有呈矩陣狀配置之複數個記憶胞之記憶胞陣列。NAND型快閃記憶體5可為二維構造之NAND型快閃記憶體,亦可為三維構造之NAND型快閃記憶體。
NAND型快閃記憶體5之記憶胞陣列包含複數個塊BLK0~BLKm-1。塊BLK0~BLKm-1分別由複數個頁(此處為頁P0~Pn-1)編輯而成。塊BLK0~BLKm-1作為刪除單位發揮功能。塊有時亦被稱為
“刪除塊”、“物理塊”或“物理刪除塊”。頁P0~Pn-1分別包含連接於同一字元線之複數個記憶胞。頁P0~Pn-1有時亦被稱為“物理頁”。頁P0~Pn-1係資料寫入動作及資料讀入動作之單位。
控制器4係經由如Toggle、開放式NAND快閃介面(ONFI)般之快閃編程控制器13而電連接於作為非揮發性記憶體之NAND型快閃記憶體5。控制器4作為以控制NAND型快閃記憶體5之方式構成之記憶體控制器進行動作。該控制器4亦可由如System-on-a-chip(SoC,系統晶片)般之電路而實現。
如圖3所示,NAND型快閃記憶體5亦可包含複數個NAND型快閃記憶體晶片(NAND型快閃記憶體晶圓)。各NAND型快閃記憶體晶片能夠獨立地動作。因此,NAND型快閃記憶體晶片作為能夠並列動作之單位發揮功能。圖3中,例示了於快閃編程控制器13連接16個通道Ch.1~Ch.16,於16個通道Ch.1~Ch.16之每一個連接有兩個NAND型快閃記憶體晶片之情形。該情形時,連接於通道Ch.1~Ch.16之16個NAND型快閃記憶體晶片#1~#16可編輯為儲存體#0,且連接於通道Ch.1~Ch.16之其餘16個NAND型快閃記憶體晶片#17~#32可編輯為儲存體#1。儲存體係作為用以使複數個記憶體模組藉由儲存體交錯而並列動作之單位發揮功能。於圖3之構成例中,藉由16通道及使用兩個儲存體之儲存體交錯,能夠使最大32個NAND型快閃記憶體晶片並列動作。
刪除動作能以一個塊(物理塊)為單位執行,亦能以包含可並列動作之複數個物理塊之集合之超級塊為單位執行。一個超級塊並不限定於此,亦可包含自NAND型快閃記憶體晶片#1~#32中逐一選擇之總計32個物理塊。再者,NAND型快閃記憶體晶片#1~#32各者亦可具有多平
面構成。例如,於NAND型快閃記憶體晶片#1~#32各者具有包含兩個平面之多平面構成之情形時,一個超級塊可包含自與NAND型快閃記憶體晶片#1~#32對應之64個平面中逐一選擇之總計64個物理塊。
圖4中,例示了包含32個物理塊(此處為NAND型快閃記憶體晶片#1內之物理塊BLK2、NAND型快閃記憶體晶片#2內之物理塊BLK3、NAND型快閃記憶體晶片#3內之物理塊BLK7、NAND型快閃記憶體晶片#4內之物理塊BLK4、NAND型快閃記憶體晶片#5內之物理塊BLK6、…NAND型快閃記憶體晶片#32內之物理塊BLK3)之一個超級塊(SB)。
寫入目的塊可為一個物理塊,亦可為一個超級塊。再者,亦可使用一個超級塊僅包含一個物理塊之構成,該情形時,一個超級塊等同於一個物理塊。
繼而,對圖1之控制器4之構成進行說明。
控制器4包含主機介面11、CPU(Central Processing Unit,中央處理單元)12、快閃編程控制器13及DRAM介面14等。該等CPU12、快閃編程控制器13、DRAM介面14經由匯流排10而相互連接。
該主機介面11係以執行與主機2之通信之方式構成之主機介面電路。該主機介面11例如亦可為PCIe控制器(NVMe控制器)。或者,於快閃儲存裝置3為經由Ethernet(註冊商標)而連接於主機2之構成中,主機介面11亦可為NVMe over Fabrics(NVMeOF)控制器。快閃儲存裝置3經由Ethernet(註冊商標)連接於主機2之構成可視需要容易地增加快閃儲存裝置3之數。進而,亦能夠容易地增加主機2之數。
主機介面11自主機2接收各種要求(指令)。該等要求(指令)
中包含寫入要求(寫入指令)、讀取要求(讀取指令)等其他各種要求(指令)。
CPU12係以控制主機介面11、快閃編程控制器13、DRAM介面14之方式構成之處理器。CPU12係響應快閃儲存裝置3之電源接通而將控制程式(韌體)自NAND型快閃記憶體5或未圖示之ROM(Read Only Memory,唯讀記憶體)加載至DRAM6,然後執行該韌體而進行各種處理。再者,韌體亦可被加載至控制器4內之未圖示之SRAM(Static Random Access Memory,靜態隨機存取記憶體)上。該CPU12能夠執行用以處理來自主機2之各種指令之指令處理等。CPU12之動作係由以CPU12執行之上述韌體而控制。再者,指令處理之一部分或全部亦可藉由控制器4內之專用硬體而執行。
CPU12能夠作為塊識別碼/緩衝位址接收部21、傳送要求發送部22及通知部23發揮功能。
塊識別碼/緩衝位址接收部21自主機2接收包含塊識別碼及緩衝位址之寫入要求,將該等塊識別碼及緩衝位址保存於特定之記憶區域。寫入要求中所含之塊識別碼亦可為指定某一特定寫入目的塊之塊位址。或者,寫入要求亦可包含串流ID以代替塊識別碼。塊識別碼或串流ID作為與一個寫入目的塊建立關聯之識別碼發揮功能。寫入要求中所含之緩衝位址係表示儲存有應寫入之資料(寫入資料)之UWB2A內之位置之記憶位置資訊。或者,寫入要求亦可代替緩衝位址而包含緩衝區內偏移作為記憶位置資訊。緩衝區內偏移表示儲存有寫入資料之UWB2A內之偏移位置。
傳送要求發送部22於將上述寫入資料寫入NAND型快閃記
憶體5時,將包含記憶位置資訊(例如緩衝位址)之傳送要求發送至主機2,由此自UWB2A取得寫入資料。
通知部23於上述寫入資料之寫入結束且能夠自NAND型快閃記憶體5讀出上述寫入資料之情形時,通知主機2已無需保存於UWB2A中之上述寫入資料。
快閃編程控制器13係以於CPU12之控制下控制NAND型快閃記憶體5之方式構成之記憶體控制電路。
DRAM介面14係以於CPU12之控制下控制DRAM6之方式構成之DRAM控制電路。DRAM6之記憶區域之一部分用於放置讀取緩衝器(RB)30、寫入緩衝器(WB)31、塊管理表32、不良資訊管理表33。再者,該等讀取緩衝器(RB)30、寫入緩衝器(WB)31、塊管理表32、不良資訊管理表33亦可被儲存於控制器4內之未圖示之SRAM中。塊管理表32管理儲存於各塊中之資料為有效資料或無效資料中之哪一種。不良資訊管理表33管理不良塊之列表。
圖5表示與複數個最終使用者對應之複數個寫入目的塊與複數個寫入緩衝區域之關係。
於快閃儲存裝置3中,塊之狀態大致被分為儲存著有效資料之現用塊(active block)及未儲存有效資料之自由塊(free block)。作為現用塊之各塊由被稱為現用塊池之列表管理。另一方面,作為自由塊之各塊由被稱為自由塊池之列表管理。
於本實施形態中,控制器4將從自由塊池中選擇出之複數個塊(自由塊)分配為自主機2接收到之寫入資料應寫入之寫入目的塊。該情形時,控制器4首先執行針對所選擇出之各塊(自由塊)之刪除動作,由
此使各塊成為能夠寫入之刪除狀態。成為能夠寫入之刪除狀態之塊變成被開放之寫入目的塊。當整個某一寫入目的塊被來自主機2之寫入資料填滿時,控制器4將該寫入目的塊移動至現用塊池,並從自由塊池中分配新之一個塊(自由塊)作為新的寫入目的塊。
於快閃儲存裝置3中,與共用快閃儲存裝置3之最終使用者(最終使用者終端)相同數量或更多之寫入目的塊(快閃區塊)被開放。主機2側之UWB2A亦可包含與該等寫入目的塊(快閃區塊)相同數量之寫入緩衝區域(UWB區域)。
圖5中,寫入緩衝區域#1與寫入目的塊#1建立關聯,應寫入至寫入目的塊#1之所有資料被儲存於寫入緩衝區域#1中。寫入緩衝區域#2與寫入目的塊#2建立關聯,應寫入至寫入目的塊#2之所有資料被儲存於寫入緩衝區域#2中。寫入緩衝區域#3與寫入目的塊#3建立關聯,應寫入至寫入目的塊#4之所有資料被儲存於寫入緩衝區域#3中。同樣地,寫入緩衝區域#n與寫入目的塊#n建立關聯,應寫入至寫入目的塊#n之所有資料被儲存於寫入緩衝區域#n中。
主機2將來自最終使用者終端#1之寫入資料儲存於寫入緩衝區域#1,將來自最終使用者終端#2之寫入資料儲存於寫入緩衝區域#2,將來自最終使用者終端#3之寫入資料儲存於寫入緩衝區域#3,將來自最終使用者終端#4之寫入資料儲存於寫入緩衝區域#4,並且將來自最終使用者終端#n之寫入資料儲存於寫入緩衝區域#n。
主機2將寫入要求發送至快閃儲存裝置3,該寫入要求包含與寫入目的塊#1建立關聯之識別碼、及表示儲存有來自最終使用者終端#1之寫入資料之寫入緩衝區域#1內之位置之記憶位置資訊。與寫入目的
塊#1建立關聯之識別碼可為指定寫入目的塊#1之塊識別碼(塊位址),亦可為與寫入目的塊#1建立關聯之串流ID。
快閃儲存裝置3藉由將包含該記憶位置資訊之傳送要求發送至主機2而自寫入緩衝區域#1取得相當於1物理頁尺寸之寫入資料(例如,TLC-快閃記憶體時為3頁寫入資料)。再者,該傳送要求亦可不僅包含記憶位置資訊,還包含與寫入目的塊#1建立關聯之識別碼(例如,指定寫入目的塊#1之塊識別碼或與寫入目的塊#1建立關聯之串流ID)。由此,主機2能夠容易地特定出儲存有應傳送至快閃儲存裝置3之寫入資料之寫入緩衝區域及該寫入緩衝區域內之位置(記憶位置)。
主機2將寫入要求發送至快閃儲存裝置3,該寫入要求包含與寫入目的塊#2建立關聯之識別碼(例如,指定寫入目的塊#2之塊識別碼或與寫入目的塊#2建立關聯之串流ID)、及表示儲存有來自最終使用者終端#2之寫入資料之寫入緩衝區域#2內之位置的記憶位置資訊。
快閃儲存裝置3藉由將包含該記憶位置資訊之傳送要求發送至主機2而自寫入緩衝區域#2取得相當於1物理頁尺寸之寫入資料(例如,TLC-快閃記憶體時為3頁寫入資料)。再者,該傳送要求亦可不僅包含記憶位置資訊,還包含與寫入目的塊#2建立關聯之識別碼(例如,指定寫入目的塊#2之塊識別碼或與寫入目的塊#2建立關聯之串流ID)。由此,主機2能夠容易地特定出儲存有應傳送至快閃儲存裝置3之寫入資料之寫入緩衝區域及該寫入緩衝區域內之位置(記憶位置)。
同樣地,主機2將寫入要求發送至快閃儲存裝置3,該寫入要求包含與寫入目的塊#n建立關聯之識別碼(例如,指定寫入目的塊#n之塊識別碼或與寫入目的塊#n建立關聯之串流ID)、及表示儲存有來自最終
使用者終端#n之寫入資料之寫入緩衝區域#n內之位置的記憶位置資訊。
快閃儲存裝置3藉由將包含該記憶位置資訊之傳送要求發送至主機2而自寫入緩衝區域#n取得相當於1物理頁尺寸之寫入資料(例如,TLC-快閃記憶體時為3頁寫入資料)。再者,該傳送要求亦可不僅包含記憶位置資訊,還包含與寫入目的塊#n建立關聯之識別碼(例如,指定寫入目的塊#n之塊識別碼或與寫入目的塊#n建立關聯之串流ID)。由此,主機2能夠容易地特定出儲存有應傳送至快閃儲存裝置3之寫入資料之寫入緩衝區域及該寫入緩衝區域內之位置(記憶位置)。
圖6表示快閃儲存裝置3與主機側UWB2A之關係及由主機2與快閃儲存裝置3執行之資料寫入處理。
此處,為了簡化圖式,例示針對某一個寫入目的塊BLK之資料寫入處理進行說明。又,此處,假設藉由全序列編程動作將寫入資料寫入一個寫入目的塊BLK之情形。
(1)於主機2中,執行作為管理快閃儲存裝置3之主機軟體之快閃儲存管理程式。快閃儲存管理程式亦可組入至用於快閃儲存裝置3之裝置驅動器內。快閃儲存管理程式管理UWB2。根據寫入來自上階軟體(應用程式或檔案系統)之資料之要求,快閃儲存管理程式將帶有應寫入之資料、標籤、塊識別碼之寫入要求儲存於UWB2A。標籤係能夠識別該資料之識別碼。標籤可為如邏輯塊位址(LBA)般之邏輯位址,亦可為鍵-值儲存(Key-Value Store)中之鍵,還可為如檔案名般之檔案識別碼。塊識別碼亦可為寫入目的塊BLK之塊位址。再者,該寫入要求亦可包含應寫入之資料之長度(Length),於要求寫入固定長度之寫入資料之事例中,該寫入要求亦可不包含長度(Length)。又,該寫入要求亦可包含表示應寫入資料
之頁之頁位址。再者,可由上階軟體發佈該寫入要求,而且亦可由快閃儲存管理程式自上階軟體接收該寫入要求,然後將所接收到之寫入要求儲存於UWB2A中。
(2)快閃儲存管理程式對快閃儲存裝置3發送寫入要求(寫入指令)。該寫入要求包含標籤、塊識別碼(塊位址)、緩衝位址(或緩衝區內偏移)。緩衝位址表示儲存有應寫入之資料之UWB2A內之位置。又,該寫入要求亦可包含表示應寫入資料之頁之頁位址。快閃儲存裝置3之控制器4接收該寫入要求,並保存該寫入要求中所含之標籤、塊識別碼、緩衝位址(或緩衝區內偏移)。
(3)於快閃編程控制器13將該資料寫入至寫入目的塊BLK時,快閃儲存裝置3之控制器4將傳送要求(Transfer Request)發送至主機2。該傳送要求包含所保存之緩衝位址(或緩衝區內偏移)。或者,該傳送要求亦可包含所保存之標籤及所保存之緩衝位址(或緩衝區內偏移)。或者,該傳送要求亦可包含所保存之緩衝位址(或緩衝區內偏移)及所保存之塊識別碼(塊位址)。
(4)主機2之快閃儲存管理程式於接收至少包含緩衝位址(或緩衝區內偏移)之傳送要求時,將儲存於由該緩衝位址(或緩衝區內偏移)指定之UWB2A內之位置的資料自UWB2A傳送至快閃儲存裝置3。例如,於NAND型快閃記憶體5為TLC-快閃記憶體之情形時,將3頁資料自UWB2A傳送至快閃儲存裝置3。傳送要求亦可包含應被傳送之資料之長度。
(5)快閃儲存裝置3之控制器4接收該資料,然後將該資料經由快閃編程控制器13傳送至NAND型快閃記憶體5,將該資料寫入至寫入
目的塊BLK。於藉由全序列編程動作將3頁資料寫入某一物理頁之事例中,快閃編程控制器13將3頁資料依次傳送至NAND型快閃記憶體5內之頁緩衝器群中,然後將寫入指示發送至NAND型快閃記憶體5。快閃編程控制器13藉由監控來自NAND型快閃記憶體5之狀態而能夠判定寫入動作(全序列編程動作)是否結束。
(6)於寫入動作結束且能夠讀出該資料(此處為3頁資料)之情形時,即於全序列編程動作成功結束之情形時,控制器4向主機2通知已無需保存於UWB2A中之該資料(此處為3頁資料)。該情形時,快閃儲存裝置3之控制器4可將包含標籤、頁位址、長度之寫入完成(Write Done)發送至主機2,亦可將無效化要求(invalidate Request)發送至主機2。無效化要求包含儲存有能夠讀出之資料之緩衝位址(或緩衝區內偏移)。或者,無效化要求亦可包含能夠讀出之資料之標籤及儲存有能夠讀出之資料之緩衝位址(或緩衝區內偏移)。或者,於對該寫入目的塊BLK之最後之物理頁之全序列編程動作結束且整個該寫入目的塊BLK被資料填滿之情形時,控制器4向主機2通知已無需與寫入目的塊BLK對應之UWB區域。該情形時,控制器4將關閉要求(Close Request)發送至主機2。關閉要求亦可包含寫入目的塊BLK之塊識別碼(塊位址)。於已接收到包含寫入目的塊BLK之塊識別碼之關閉要求之情形時,主機2之快閃儲存管理程式釋放與該寫入目的塊BLK建立關聯之UWB區域,將該UWB區域用於其他用途。該情形時,快閃儲存管理程式亦可將該釋放之UWB區域再次用作用於其他寫入目的塊(例如新開放之寫入目的塊)之UWB區域。
圖7表示複數個寫入目的塊與複數個寫入緩衝區域(UWB區域)之關係之例。
與某一寫入目的塊BLK#1對應之寫入緩衝區域(UWB區域#1)例如亦可包含用以暫時儲存複數頁資料之複數個記憶區域。該情形時,各記憶區域亦可包含標籤欄位、有效/無效欄位、資料記憶欄位、頁位址欄位。標籤欄位儲存所對應之資料之標籤。有效/無效欄位保存表示是否必須保存所對應之資料之有效/無效標誌。資料記憶欄位儲存應寫入至寫入目的塊BLK#1之資料。資料記憶欄位可具有1頁尺寸。頁位址欄位為可選欄位,只要寫入要求包含頁位址,則將該頁位址儲存於頁位址欄位中。
於快閃儲存裝置3通知已無需保存在UWB區域#1中之某一資料之情形時,主機2(快閃儲存管理程式)將與該資料對應之記憶區域內之有效/無效標誌更新為表示無效之值。將有效/無效標誌更新為表示無效之值後之記憶區域再次用於儲存應寫入至寫入目的塊BLK#1之其他資料。
圖7所示之UWB區域之資料構造為一例,例如亦可將資料(寫入資料)以與頁尺寸不同之尺寸於UWB區域中管理。
圖8表示快閃儲存裝置3與主機側UWB2A之關係及由主機2與快閃儲存裝置3執行之資料讀出處理。
(1)響應用以讀取來自上階軟體之資料之要求,主機2之快閃儲存管理程式將用以讀取該資料之讀取要求發送至快閃儲存裝置3。該讀取要求例如可包含標籤、塊識別碼(塊位址)、頁位址、長度。
(2)只要由該讀取要求指定之資料寫入至寫入目的塊BLK之動作已結束且能夠讀出該資料,則快閃儲存裝置3之控制器4經由快閃編程控制器13自寫入目的塊BLK讀取該資料。
(3)快閃儲存裝置3之控制器4將讀取出之資料與該資料之標籤一起發送至主機2。
(3')若無法讀出由該讀取要求指定之資料,即自開始寫入該資料到能夠讀出該資料之期間內自主機2接收到用以讀取該資料之讀取要求之情形時,快閃儲存裝置3之控制器4將要求自UWB2A返回該資料以響應讀取要求之傳送要求發送至主機2。該傳送要求可包含與該資料對應之緩衝位址、或者與該資料對應之緩衝位址及與該資料對應之塊識別碼之兩者,作為能夠特定出應傳送之UWB2A內之資料之資訊。或者,該傳送要求可包含與該資料對應之標籤,亦可包含與該資料對應之塊識別碼及頁位址。
(4')主機2之快閃儲存管理程式自UWB2A讀取該資料,並將所讀取出之資料與該資料之標籤一起返回至上階軟體。
或者,主機2之快閃儲存管理程式亦可於快閃儲存裝置3通知已無需儲存於UWB2A中之某一資料之前,響應用以讀取來自上階軟體之該資料之要求,不將讀取要求發送至快閃儲存裝置3,而自UWB2A直接讀取該資料。該情形時,資料讀取處理以如下方式執行。
(1")於快閃儲存裝置3通知已無需儲存於UWB2A中之某一資料之前,主機2之快閃儲存管理程式響應用以讀取來自上階軟體之該資料之要求,將讀取要求發送至UWB2A而自UWB2A讀取該資料。該讀取要求例如可包含標籤、緩衝位址、長度。
(2")快閃儲存管理程式將自UWB2A讀取出之資料與該資料之標籤一起返回至上階軟體。
圖9表示支持模糊-精細寫入之快閃儲存裝置3與主機側
UWB2A之關係及由主機2與快閃儲存裝置3執行之資料寫入處理。
此處,假設藉由多階段之寫入動作(模糊-精細編程動作)將寫入資料寫入一個寫入目的塊BLK之情形。
(1)於主機2中,快閃儲存管理程式根據寫入來自上階軟體之資料之要求,將帶有應寫入之資料、標籤、塊識別碼之寫入要求儲存於UWB2A中。再者,該寫入要求亦可包含應寫入之資料之長度(Length),於要求寫入固定長度之寫入資料之事例中,該寫入要求亦可不包含長度(Length)。又,該寫入要求亦可包含表示應寫入資料之頁之頁位址。再者,可由上階軟體發佈該寫入要求,而且亦可由快閃儲存管理程式自上階軟體接收該寫入要求,將所接收到之寫入要求儲存於UWB2A中。
(2)快閃儲存管理程式將寫入要求(寫入指令)發送至快閃儲存裝置3。該寫入要求包含標籤、塊識別碼(塊位址)、緩衝位址(或緩衝區內偏移)。又,該寫入要求亦可包含表示應寫入資料之頁之頁位址。快閃儲存裝置3之控制器4接收該寫入要求,並保存該寫入要求中所含之標籤、塊識別碼、緩衝位址(或緩衝區內偏移)。
(3)當快閃編程控制器13開始進行該資料之第一階段寫入動作(模糊寫入)時,快閃儲存裝置3之控制器4將傳送要求(Transfer Request)發送至主機2。該傳送要求包含所保存之緩衝位址(或緩衝區內偏移)。或者,該傳送要求亦可包含所保存之標籤及所保存之緩衝位址(或緩衝區內偏移)。或者,該傳送要求亦可包含所保存之緩衝位址(或緩衝區內偏移)及所保存之塊識別碼(塊位址)。
(4)主機2之快閃儲存管理程式於接收至少包含緩衝位址(或緩衝區內偏移)之傳送要求時,將儲存於由該緩衝位址(或緩衝區內偏移)
指定之UWB2A內之位置之資料(此處圖示為“Foggy Data(模糊資料)”)自UWB2A傳送至快閃儲存裝置3。例如,於NAND型快閃記憶體5為TLC-快閃記憶體時,將3頁資料作為模糊資料自UWB2A傳送至快閃儲存裝置3。傳送要求亦可包含應被傳送之資料之長度。
(5)快閃儲存裝置3之控制器4接收該資料,然後將該資料經由快閃編程控制器13傳送至NAND型快閃記憶體5,將該資料寫入至寫入目的塊BLK之寫入目的物理頁(第一階段寫入:模糊寫入)。於藉由模糊寫入將3頁資料寫入某一寫入目的物理頁之事例中,快閃編程控制器13將3頁資料依次傳送至NAND型快閃記憶體5內之頁緩衝器群,然後將第一階段寫入指示發送至NAND型快閃記憶體5。快閃編程控制器13能夠藉由監控來自NAND型快閃記憶體5之狀態而判定寫入動作(第一階段寫入動作)是否已結束。通常,模糊-精細編程動作係以例如物理頁#1之模糊寫入、物理頁#2之模糊寫入、物理頁#1之精細寫入、物理頁#2之精細寫入之方式於複數條字元線(複數個物理頁)上往返並執行,以減少編程干擾。
(6)當到達執行對該寫入目的物理頁之第二階段寫入(精細寫入)之時點時,快閃儲存裝置3之控制器4將傳送要求(Transfer Request)再次發送至主機2,以取得應由精細寫入進行寫入之資料(與由模糊寫入所寫入之資料相同之資料)。該傳送要求包含上述保存之緩衝位址、即與處理(3)中發送之傳送要求中所含之緩衝位址相同之緩衝位址。
(7)主機2之快閃儲存管理程式於接收至少包含緩衝位址(或緩衝區內偏移)之傳送要求時,將儲存於由該緩衝位址(或緩衝區內偏移)指定之UWB2A內之位置之資料(此處圖示為“Fine Data(精細資料)”)自UWB2A傳送至快閃儲存裝置3。精細資料係與模糊資料相同之資料。例
如,當NAND型快閃記憶體5為TLC-快閃記憶體時,將上述3頁資料作為精細資料自UWB2A傳送至快閃儲存裝置3。傳送要求亦可包含應被傳送之資料之長度。再者,主機2無須識別應傳送之資料為模糊資料或精細資料之哪一個。
(8)快閃儲存裝置3之控制器4接收該資料,然後將該資料經由快閃編程控制器13傳送至NAND型快閃記憶體5,將該資料寫入至寫入目的塊BLK之上述寫入目的物理頁(第二階段寫入:精細寫入)。於藉由精細寫入將3頁資料寫入該寫入目的物理頁之事例中,快閃編程控制器13將與模糊寫入中所使用之3頁資料相同之3頁資料依次傳送至NAND型快閃記憶體5內之頁緩衝器群,然後將第二階段寫入指示發送至NAND型快閃記憶體5。快閃編程控制器13能夠藉由監控來自NAND型快閃記憶體5之狀態而判定寫入動作(第二階段寫入動作)是否已結束。
(9)於第二階段寫入動作結束且能夠讀出該資料(此處為3頁資料)之情形時,即於模糊-精細編程動作全部成功結束之情形時,控制器4向主機2通知已無需保存於UWB2A中之該資料(此處為3頁資料)。該情形時,快閃儲存裝置3之控制器4可將包含標籤、頁位址、長度之寫入完成(Write Done)發送至主機2,亦可將無效化要求(invalidate Request)發送至主機2。無效化要求包含儲存有能夠讀出之資料之緩衝位址(或緩衝區內偏移)。或者,無效化要求亦可包含能夠讀出之資料之標籤、及儲存有能夠讀出之資料之緩衝位址(或緩衝區內偏移)。或者,於對該寫入目的塊BLK之最後之物理頁之模糊-精細編程動作結束而該寫入目的塊BLK整體被寫滿資料之情形時,控制器4向主機2通知已無需與寫入目的塊BLK對應之UWB區域。該情形時,控制器4將關閉要求(Close Request)發送至主
機2。關閉要求亦可包含寫入目的塊BLK之塊識別碼(塊位址)。於接收到包含寫入目的塊BLK之塊識別碼之關閉要求之情形時,主機2之快閃儲存管理程式釋放與該寫入目的塊BLK建立關聯之UWB區域,將該UWB區域用於其他用途。該情形時,快閃儲存管理程式亦可將該釋放之UWB區域再次用作用於其他寫入目的塊(例如新開放之寫入目的塊)之UWB區域。
圖10表示支持模糊-精細寫入之快閃儲存裝置3與主機側UWB2A之關係及由主機2與快閃儲存裝置3執行之資料讀出處理。
(1)響應用以讀取來自上階軟體之資料之要求,主機2之快閃儲存管理程式將用以讀取該資料之讀取要求發送至快閃儲存裝置3。該讀取要求亦可包含例如標籤、塊識別碼(塊位址)、頁位址、長度。
(2)只要將由該讀取要求指定之資料寫入至寫入目的塊BLK之動作已結束且能夠讀出該資料,即只要該資料之模糊寫入與該資料之精細寫入兩者已結束,則快閃儲存裝置3之控制器4經由快閃編程控制器13自寫入目的塊BLK讀取該資料。
(3)快閃儲存裝置3之控制器4將讀取出之資料與該資料之標籤一起發送至主機2。
(3')若無法讀出由該讀取要求指定之資料,即於自開始寫入該資料至能夠讀出該資料為止之期間內自主機2接收到用以讀取該資料之讀取要求之情形時,快閃儲存裝置3之控制器4將要求自UWB2A返回該資料作為對讀取要求之響應的傳送要求發送至主機2。該傳送要求亦可包含與該資料對應之緩衝位址。要求從上述寫入緩衝器返回上述第1資料之傳送要求
(4')主機2之快閃儲存管理程式自UWB2A讀取該資料,且
將所讀取出之資料與該資料之標籤一起返回至上階軟體。
或者,主機2之快閃儲存管理程式亦可於快閃儲存裝置3通知已無需儲存於UWB2A中之某一資料之前,響應用以讀取來自上階軟體之該資料之要求,不將讀取要求發送至快閃儲存裝置3,而自UWB2A直接讀取該資料。該情形時,資料讀取處理以如下方式執行。
(1")於快閃儲存裝置3通知已無需儲存於UWB2A中之某一資料之前,主機2之快閃儲存管理程式響應用以讀取來自上階軟體之該資料之要求,將讀取要求發送至UWB2A而自UWB2A讀取該資料。該讀取要求亦可包含例如標籤、緩衝位址、長度。
(2")快閃儲存管理程式將自UWB2A讀取出之資料與該資料之標籤一起返回至上階軟體。
圖11之序列圖表示由主機2與快閃儲存裝置2執行之資料寫入處理之程序。
主機2將應寫入某一寫入目的塊之資料(寫入資料)儲存於與該寫入目的塊建立關聯之UWB區域中,然後將包含塊識別碼與緩衝位址(或緩衝區內偏移)之寫入要求發送至快閃儲存裝置3(步驟S11)。塊識別碼係該寫入資料應寫入之寫入目的塊之塊位址。緩衝位址表示儲存有該寫入資料之UWB區域內之位置。
快閃儲存裝置3之控制器4自主機2接收該寫入要求,並保存該寫入要求內之塊識別碼與緩衝位址(或緩衝區內偏移)(步驟S21)。該情形時,控制器4亦可藉由將塊識別碼與緩衝位址儲存於DRAM6上之寫入緩衝器31而保存該等塊識別碼與緩衝位址。
於將與該寫入要求對應之寫入資料寫入至由所保存之塊識
別碼指定之寫入目的塊寫入時,快閃儲存裝置3之控制器4將包含所保存之緩衝位址(或緩衝區內偏移)之傳送要求發送至主機2(步驟S22)。
當主機2接收該傳送要求時,主機2將該寫入資料自UWB區域傳送至快閃儲存裝置3(步驟S12)。
快閃儲存裝置3之控制器4接收自主機2傳送來之該寫入資料(步驟S23)。控制器4將所接收到之寫入資料藉由儲存於例如DRAM6上之寫入緩衝器31等而進行保存(步驟S24)。
控制器4將所接收到之寫入資料傳送至NAND型快閃記憶體5(步驟S25)。於將寫入資料傳送至NAND型快閃記憶體5之操作完成之前,控制器4保存該寫入資料。然後,控制器4將該寫入資料寫入至由所保存之塊識別碼指定之寫入目的塊(步驟S26)。該情形時,寫入資料應寫入之寫入目的塊內之寫入目的頁由控制器4決定。再者,寫入要求亦可包含指定寫入目的頁之頁位址。
於該寫入資料之寫入動作結束且能夠讀出該寫入資料之情形時(於全序列編程動作中全序列編程動作結束之情形時),控制器4向主機2通知已無需儲存於UWB區域中之該寫入資料(步驟S27)。
圖12之流程圖表示由快閃儲存裝置3執行之通知處理之程序。
快閃儲存裝置3之控制器4判定是否對寫入目的塊寫入資料之動作結束且能夠讀出該資料(步驟S31)。
若資料之寫入動作結束且能夠讀出該資料(步驟S31為是(YES)),則控制器4判定是否對該寫入目的塊之最後一頁(最後之物理頁)之寫入動作結束使得整個該寫入目的塊被資料填滿(步驟S32)。
若仍殘留有能夠利用於該寫入目的塊之物理頁(未寫入之物理頁)(步驟S32為否(NO)),則控制器4將寫入完成(Write Done)或無效化要求(invalidate Request)發送至主機2,以便向主機2通知已無需保存於UWB區域中之能夠讀出之資料(步驟S33)。
若對該寫入目的塊之最後一頁(最後之物理頁)之寫入動作結束而整個該寫入目的塊被資料填滿(步驟S32為是),則控制器4將關閉要求(Close Request)發送至主機2,以便向主機2通知已無需與該寫入目的塊對應之整個UWB區域(步驟S34)。
圖13之流程圖表示根據傳送要求之接收而執行之主機側處理之程序。
主機2將包含塊識別碼與緩衝位址(或緩衝區內偏移)之寫入要求發送至快閃儲存裝置3(步驟S40)。主機2判定是否自快閃儲存裝置3接收到傳送要求(步驟S41)。
若已自快閃儲存裝置3接收到傳送要求(步驟S41為是),則主機2將儲存於由傳送要求內之緩衝位址(或緩衝區內偏移)指定之UWB區域內之位置之資料傳送至快閃儲存裝置3(步驟S42)。然後,主機2判定快閃儲存裝置3是否通知了UWB區域內之無用資料,或是否自快閃儲存裝置3接收了關閉要求(Close Request)(步驟S43、S44)。
若快閃儲存裝置3通知了UWB區域內之無用資料(步驟S43為是),則主機2將與該無用資料對應之有效/無效標誌更新為表示無效之值,並釋放儲存有該無用資料之UWB區域內之一個記憶區域(步驟S44)。
主機2可將該釋放之記憶區域再次用作用於應寫入與該UWB區域對應之寫入目的塊之新寫入資料之記憶區域。
如此,於本實施形態中,當某一資料之寫入動作結束且能夠讀出該資料時,快閃儲存裝置3向主機2通知已無需UWB區域內之該資料。因此,於能夠自NAND型快閃記憶體5讀出該資料之前,該資料被保存於UWB區域內。
若已自快閃儲存裝置3接收到關閉要求(Close Request)(步驟S45為是),則主機2釋放與關閉要求中所含之塊識別碼之寫入目的塊建立關聯之整個UWB區域(步驟S46)。主機2可將該釋放之UWB區域再次用作用於由快閃儲存裝置3新分配之寫入目的塊之UWB區域。
圖14之流程圖表示根據讀取要求之接收而由快閃儲存裝置3執行之資料讀出動作之程序。
快閃儲存裝置3之控制器4自主機2接收讀取要求(步驟S51)。控制器4判定由讀取要求指定之應讀取之資料是否為對寫入目的塊之寫入動作結束且能夠讀出之資料(步驟S52)。
若應讀取之資料為對寫入目的塊之寫入動作結束且能夠讀出之資料(步驟S52為是),則控制器4自NAND型快閃記憶體5讀取應讀取之資料(步驟S53),並將該讀取出之資料返回至主機2(步驟S54)。
另一方面,若應讀取之資料並非對寫入目的塊之寫入動作結束且能夠讀出之資料,即若自開始寫入該資料至能夠讀出該資料為止之期間內自主機2接收到針對該資料之讀取要求(步驟S52為否),則控制器4將要求自UWB區域返回該資料以響應讀取要求之傳送要求發送至主機2(步驟S55)。
圖15之流程圖表示用於資料讀出之主機側處理之程序。
主機2無論應讀取之資料是否存在於UWB區域內,均將要
求讀取該資料之讀取要求發送至快閃儲存裝置3(步驟S61)。
然後,主機2判定是否自快閃儲存裝置3接收到要求自UWB區域返回(讀取)該資料之傳送要求(步驟S62)。
若自快閃儲存裝置3接收到該傳送要求(步驟S62為是),則主機2自UWB區域讀取該資料(步驟S63)。
圖16表示支持串流寫入之快閃儲存裝置3與主機側UWB2A之關係及由主機2與快閃儲存裝置3執行之資料寫入處理。
此處,假設藉由全序列編程動作將寫入資料寫入一個寫入目的塊BLK之情形。
(1)於主機2中,根據寫入來自上階軟體(應用程式或檔案系統)之資料之要求,快閃儲存管理程式將帶有應寫入之資料、串流ID、LBA、長度之寫入要求儲存於UWB2A中。串流ID係與複數個寫入目的塊建立關聯之複數個串流內之某一串流之識別碼。再者,可由上階軟體發佈該寫入要求,而且亦可由快閃儲存管理程式自上階軟體接收該寫入要求,將接收到之寫入要求儲存於UWB2A中。
(2)快閃儲存管理程式對快閃儲存裝置3發送寫入要求(寫入指令)。該寫入要求包含串流ID、LBA、長度、緩衝位址(或緩衝區內偏移)。緩衝位址表示儲存有應寫入之資料之UWB2A內之位置。快閃儲存裝置3之控制器4接收該寫入要求,並保存該寫入要求中所含之串流ID、LBA、長度、緩衝位址。
(3)當快閃編程控制器13將該資料寫入至寫入目的塊BLK時,快閃儲存裝置3之控制器4將傳送要求(Transfer Request)發送至主機2。該傳送要求包含所保存之緩衝位址(或緩衝區內偏移)。或者,該傳送
要求亦可包含所保存之LBA及所保存之緩衝位址(或緩衝區內偏移)。或者,該傳送要求亦可包含所保存之緩衝位址(或緩衝區內偏移)及所保存之串流ID。或者,該傳送要求亦可包含所保存之緩衝位址(或緩衝區內偏移)及與所保存之串流ID建立關聯之寫入目的塊之塊識別碼(塊位址)。
(4)主機2之快閃儲存管理程式於接收至少包含緩衝位址(或緩衝區內偏移)之傳送要求時,將儲存於由該緩衝位址(或緩衝區內偏移)指定之UWB2A內之位置之資料自UWB2A傳送至快閃儲存裝置3。例如,當NAND型快閃記憶體5為TLC-快閃記憶體時,將3頁資料自UWB2A傳送至快閃儲存裝置3。傳送要求亦可包含應被傳送之資料之長度。
(5)快閃儲存裝置3之控制器4接收該資料,然後將該資料經由快閃編程控制器13傳送至NAND型快閃記憶體5,將該資料寫入至寫入目的塊BLK。於藉由全序列編程動作將3頁資料寫入某一物理頁之事例中,快閃編程控制器13將3頁資料依次傳送至NAND型快閃記憶體5內之頁緩衝器群,然後將寫入指示發送至NAND型快閃記憶體5。快閃編程控制器13能夠藉由監控來自NAND型快閃記憶體5之狀態而判定寫入動作(全序列編程動作)是否已結束。
(6)於寫入動作結束且能夠讀出該資料(此處為3頁資料)之情形時,即於全序列編程動作成功結束之情形時,控制器4向主機2通知已無需保存於UWB2A中之該資料(此處為3頁資料)。該情形時,快閃儲存裝置3之控制器4可將包含LBA、長度之寫入完成(Write Done)發送至主機2,亦可將無效化要求(invalidate Request)發送至主機2。無效化要求包含儲存有能夠讀出之資料之緩衝位址(或緩衝區內偏移)。或者,無效化要求亦可包含能夠讀出之資料之LBA及儲存有能夠讀出之資料之緩衝位址(或
緩衝區內偏移)。或者,於對該寫入目的塊BLK之最後之物理頁之全序列編程動作結束而整個該寫入目的塊BLK被資料填滿之情形時,控制器4向主機2通知已無需與寫入目的塊BLK對應之UWB區域。該情形時,控制器4將關閉要求(Close Request)發送至主機2。關閉要求亦可包含寫入目的塊BLK之塊識別碼(塊位址)。於接收到包含寫入目的塊BLK之塊識別碼之關閉要求之情形時,主機2之快閃儲存管理程式釋放與該寫入目的塊BLK建立關聯之UWB區域,並將該UWB區域用於其他用途。該情形時,快閃儲存管理程式亦可將該釋放之UWB區域再次用作用於其他寫入目的塊(例如新開放之寫入目的塊)之UWB區域。
圖17表示複數個串流ID與和該等串流ID建立關聯之複數個寫入目的塊之關係。
此處,例示了寫入目的塊BLK#1與串流ID#1之串流建立關聯、寫入目的塊BLK#2與串流ID#2之串流建立關聯、寫入目的塊BLK#3與串流ID#3之串流建立關聯、且寫入目的塊BLK#n與串流ID#n之串流建立關聯之情形。
由包含串流ID#1之寫入要求指定之寫入資料被寫入至寫入目的塊BLK#1。由包含串流ID#2之寫入要求指定之寫入資料被寫入至寫入目的塊BLK#2。由包含串流ID#3之寫入要求指定之寫入資料被寫入至寫入目的塊BLK#3。由包含串流ID#n之寫入要求指定之寫入資料被寫入至寫入目的塊BLK#n。
圖18表示支持串流寫入之快閃儲存裝置3與主機側UWB2A之關係及由主機2與快閃儲存裝置3執行之資料讀出處理。
(1)響應用於讀取來自上階軟體之資料之要求,主機2之快
閃儲存管理程式將用於讀取該資料之讀取要求發送至快閃儲存裝置3。該讀取要求亦可包含例如LBA、長度。
(2)若將由該讀取要求指定之資料寫入至寫入目的塊BLK之動作已結束且能夠讀出該資料,則快閃儲存裝置3之控制器4經由快閃編程控制器13自寫入目的塊BLK讀取該資料。
(3)快閃儲存裝置3之控制器4將所讀取出之資料與該資料之LBA一起發送至主機2。
(3')於若無法讀出由該讀取要求指定之資料,即自開始寫入該資料至能夠讀出該資料為止之期間內自主機2接收到用以讀取該資料之讀取要求之情形時,快閃儲存裝置3之控制器4將要求自UWB2A返回該資料以響應讀取要求之傳送要求發送至主機2。該傳送要求亦可包含與該資料對應之緩衝位址。
(4')主機2之快閃儲存管理程式自UWB2A讀取該資料,並將所讀取出之資料與該資料之LBA一起返回至上階軟體。
或者,主機2之快閃儲存管理程式亦可於快閃儲存裝置3通知已無需儲存於UWB2A中之某一資料之前,響應用以讀取來自上階軟體之該資料之要求,不將讀取要求發送至快閃儲存裝置3,而自UWB2A直接讀取該資料。該情形時,資料讀取處理以如下方式執行。
(1")於快閃儲存裝置3通知已無需儲存於UWB2A中之某一資料之前,主機2之快閃儲存管理程式響應用以讀取來自上階軟體之該資料之要求,將讀取要求發送至UWB2A而自UWB2A讀取該資料。該讀取要求亦可包含例如LBA、長度。
(2")快閃儲存管理程式將自UWB2A讀取出之資料與該資料
之LBA一起返回至上階軟體。
圖19之序列圖表示由支持模糊-精細寫入之快閃儲存裝置3與主機2執行之資料寫入處理之程序。
此處,例示寫入要求包含塊識別碼與緩衝位址(或緩衝區內偏移)之情形進行說明。
主機2將應寫入某一寫入目的塊之資料(寫入資料)儲存於與該寫入目的塊建立關聯之UWB區域,然後將包含塊識別碼與緩衝位址(或緩衝區內偏移)之寫入要求發送至快閃儲存裝置3(步驟S71)。塊識別碼係該寫入資料應寫入之寫入目的塊之塊位址。緩衝位址表示儲存有該寫入資料之UWB區域內之位置。
快閃儲存裝置3之控制器4自主機2接收該寫入要求,並保存該寫入要求內之塊識別碼與緩衝位址(或緩衝區內偏移)(步驟S81)。該情形時,控制器4亦可藉由將塊識別碼與緩衝位址儲存於DRAM6上之寫入緩衝器31而保存該等塊識別碼與緩衝位址。
於利用多階段之編程動作(模糊-精細編程動作)將與該寫入要求對應之寫入資料寫入至由所保存之塊識別碼指定之寫入目的塊時,快閃儲存裝置3之控制器4首先將包含所保存之緩衝位址(或緩衝區內偏移)之傳送要求發送至主機2,以自UWB區域取得用於模糊寫入之寫入資料(模糊資料)(步驟S82)。
當主機2接收該傳送要求時,主機2將該寫入資料自UWB區域傳送至快閃儲存裝置3(步驟S72)。
快閃儲存裝置3之控制器4將自主機2傳送來之該寫入資料作為模糊資料接收(步驟S83)。控制器4將所接收到之寫入資料(模糊資料)
藉由儲存於例如DRAM6上之寫入緩衝器31等而進行保存(步驟S84)。
控制器4將所接收到之寫入資料(模糊資料)傳送至NAND型快閃記憶體5(步驟S85)。於將寫入資料(模糊資料)傳送至NAND型快閃記憶體5之操作完成之前,控制器4保存該寫入資料(模糊資料)。然後,控制器4將該寫入資料(模糊資料)寫入至由所保存之塊識別碼指定之寫入目的塊之寫入目的物理頁(第一階段寫入:模糊寫入)(步驟S86)。
然後,當到達執行對該寫入目的物理頁之第二階段寫入(精細寫入)之時點時,快閃儲存裝置3之控制器4將包含所保存之緩衝位址(或緩衝區內偏移)之傳送要求再次發送至主機2,以自UWB區域取得用於精細寫入之寫入資料(精細資料)(步驟S87)。精細資料係與模糊資料相同之資料。
當主機2接收該傳送要求時,主機2將該寫入資料自UWB區域傳送至快閃儲存裝置3(步驟S73)。
快閃儲存裝置3之控制器4將自主機2傳送之該寫入資料作為精細資料接收(步驟S88)。控制器4將所接收到之寫入資料(精細資料)藉由儲存於例如DRAM6上之寫入緩衝器31等而進行保存(步驟S89)。
控制器4將所接收到之寫入資料(精細資料)傳送至NAND型快閃記憶體5(步驟S90)。於將寫入資料(精細資料)傳送至NAND型快閃記憶體5之操作完成之前,控制器4保存該寫入資料(精細資料)。然後,控制器4將該寫入資料(精細資料)寫入該寫入目的塊之該寫入目的物理頁(第二階段寫入:精細寫入)(步驟S91)。
於寫入動作結束且能夠讀出該寫入資料之情形時(即於模糊寫入動作與精細寫入動作之兩者已結束之情形時),控制器4向主機2通知
已無需儲存於UWB區域中之該寫入資料(步驟S92)。
圖20表示主機2(資訊處理裝置)之構成例。
該主機2包含處理器(CPU)101、主記憶體102、BIOS(Basic Input Output System,基本輸入輸出系統)-ROM103、網路控制器105、周邊介面控制器106、控制器107及嵌入式控制器(EC)108等。
處理器101係以控制該資訊處理裝置內之各組件之動作之方式構成的CPU。該處理器101執行主記憶體102上之各種程式。主記憶體102由例如DRAM般之隨機存取記憶體構成。由處理器101執行之程式包含應用軟體層41、操作系統(OS)42、檔案系統43、裝置驅動程式44等。
各種應用程式於應用軟體層41上運行。如通常所知,OS42係以如下方式構成之軟體:管理該資訊處理裝置整體,控制該資訊處理裝置內之硬體,執行用以使軟體能夠使用硬體及快閃儲存裝置3之控制。檔案系統43用於進行用以實施檔案操作(創建、保存、更新、刪除等)之控制。
裝置驅動程式44係用以控制及管理快閃儲存裝置3之程式。該裝置驅動程式44包含上述快閃儲存管理程式。該快閃儲存管理程式45包含用以管理主記憶體102上之UWB2A之命令群、用以對快閃儲存裝置3發送寫入要求、讀取要求等之命令群、每當自快閃儲存裝置3接收傳送要求時用以自UWB2A向快閃儲存裝置3傳送資料之命令群、於快閃儲存裝置3通知已無需儲存於UWB2A中之資料之前用以自UWB2A讀取該資料之命令群等。處理器101藉由執行裝置驅動程式44內之快閃儲存管理程式
45之命令群而執行資料寫入處理、資料讀出處理、UWB區域釋放處理等。
網路控制器105係例如乙太網路(ethernet)控制器般之通信裝置。周邊介面控制器106構成為執行與例如USB(Universal Serial Bus,通用串行匯流排)裝置般之周邊裝置之通信。
控制器107構成為執行與分別連接於複數個連接器107A之裝置之通信。本實施形態中,亦可為複數個快閃儲存裝置3分別連接於複數個連接器107A。控制器107亦可為SAS expander、PCIe Switch、PCIe expander、快閃陣列控制器或RAID(Redundant Arrays of Independent Disks,獨立磁盤冗餘陣列)控制器。或者,複數個快閃儲存裝置3亦可經由乙太網路而連接於網路控制器105。
圖21之流程圖表示由處理器101執行之資料寫入處理之程序。
寫入處理中,處理器101將應寫入一個寫入目的塊之寫入資料儲存於UWB2A(與該寫入目的塊對應之UWB區域)(步驟S101)。處理器101將包含與該寫入目的塊建立關聯之識別碼及表示儲存有寫入資料之UWB2A內之位置(無UWB區域之位置)之記憶位置資訊的寫入要求發送至快閃儲存裝置3(步驟S102)。與寫入目的塊建立關聯之識別碼亦可如上所述般為寫入目的塊之塊識別碼(塊位址)。記憶位置資訊亦可如上所述為緩衝位址(或緩衝區內偏移)。該情形時,處理器101亦可將包含標籤、塊識別碼、緩衝位址(或緩衝區內偏移)之寫入要求發送至快閃儲存裝置3。
又,於主機2不僅指定塊亦指定頁之構成中,寫入要求亦可包含標籤、塊識別碼(塊位址)、頁位址、緩衝位址(或緩衝區內偏移)。
或者,於使用串流寫入之事例中,亦可利用串流ID以代替塊識別碼(塊位址)。該情形時,寫入要求亦可包含串流ID、LBA、緩衝位址(或緩衝區內偏移)。
於處理器101將寫入要求發送至快閃儲存裝置3之後,處理器101每當自快閃儲存裝置3接收包含緩衝位址(或緩衝區內偏移)之傳送要求時,將上述寫入資料自UWB2A(UWB區域)傳送至快閃儲存裝置3(步驟S103、S104)。更詳細來說,處理器101判定是否已自快閃儲存裝置3接收包含緩衝位址(或緩衝區內偏移)之傳送要求(步驟S103)。然後,若已自快閃儲存裝置3接收該傳送要求(步驟S103為是),則處理器101將上述寫入資料自UWB2A(UWB區域)傳送至快閃儲存裝置3。
如上所述,於利用多階段之編程動作(模糊-精細編程動作)將寫入資料寫入至寫入目的塊之事例中,處理器101自快閃儲存裝置3複數次接收包含相同之緩衝位址(或相同之緩衝區內偏移)之傳送要求。然後,每當接收該傳送要求時,處理器101將上述寫入資料自UWB2A(UWB區域)傳送至快閃儲存裝置3。
圖22之流程圖表示由處理器101執行之資料讀出處理之程序。
於快閃儲存裝置3通知已無需儲存於UWB2A(UWB區域)中之資料之前,處理器101響應用以讀取來自上階軟體之該資料之要求而自UWB2A(UWB區域)讀取該資料,並將該讀取出之資料返回至上階軟體。
即,若自上階軟體要求讀取資料(步驟S111為是),則處理器101判定快閃儲存裝置3是否通知已無需UWB2A(UWB區域)上之該資料(步驟S112)。
若尚未通知已無需該資料(步驟S112為否),則處理器101自UWB2A(UWB區域)讀取該資料,並將所讀取出之資料返回至上階軟體(步驟S112)。
另一方面,若已通知了無需該資料(步驟S112為是),則處理器101將用以讀取該資料之讀取要求發送至快閃儲存裝置3,由此自快閃儲存裝置3讀取該資料(步驟S114)。
圖23之流程圖表示由處理器101執行之資料讀出處理之另一程序。
若自上階軟體接收到用以讀取資料之要求(步驟S121為是),則處理器101不論該資料是否存在於UWB2A(UWB區域),即不論快閃儲存裝置3是否通知無需該資料,均將用以讀取該資料之讀取要求發送至快閃儲存裝置3(步驟S122)。
若尚未能夠讀出由該讀取要求指定之資料,則快閃儲存裝置3將要求自UWB2A(UWB區域)返回該資料之傳送要求發送至主機2。
若已自快閃儲存裝置3接收該傳送要求(步驟S123為是),則處理器101自UWB2A(UWB區域)讀取該資料,並將該讀取出之資料返回至上階軟體(步驟S124)。
若未自快閃儲存裝置3接收該傳送要求(步驟S123為否),則處理器101接收自快閃儲存裝置3返回之資料作為對於讀取要求之響應,並將該資料返回至上階軟體(步驟S125)。
圖24之流程圖表示由處理器101執行之UWB區域釋放處理之程序。
於處理器101已自快閃儲存裝置3接收到表示已無需與一個
寫入目的塊建立關聯之整個UWB區域之通知(關閉要求)之情形時(步驟S131為是),處理器101釋放整個該UWB區域(步驟S132)。步驟S132中,處理器101可將與該釋放之UWB區域對應之儲存空間用於其他任意用途。
例如,處理器可將該釋放之UWB區域再次用作與由快閃儲存裝置3之控制器4新分配之寫入目的塊建立關聯之UWB區域。於必須對該新分配之寫入目的塊寫入資料時,處理器101首先將該資料儲存於與該新分配之寫入目的塊建立關聯之UWB區域,然後將包含與該新分配之寫入目的塊建立關聯之識別碼(塊識別碼或串流ID)及表示儲存有該資料之該UWB區域內之位置之記憶位置資訊(例如緩衝位址)的寫入要求發送至快閃儲存裝置3。
如以上所說明般,根據本實施形態,作為主機2發揮功能之資訊處理裝置之處理器101將應寫入一個寫入目的塊之第1資料儲存於資訊處理裝置之記憶體(主記憶體102)上之寫入緩衝器(UWB2A)中,將包含與一個寫入目的塊建立關聯之第1識別碼及表示儲存有第1資料之寫入緩衝器(UWB2A)內之位置之記憶位置資訊的寫入要求發送至快閃儲存裝置3。然後,處理器101每當自快閃儲存裝置3接收包含記憶位置資訊之傳送要求時,將第1資料自寫入緩衝器(UWB2A)傳送至快閃儲存裝置3。因此,即便於執行如模糊-精細編程動作般之多階段之編程動作之情形時,處理器101亦可將各階段之編程動作所需資料自寫入緩衝器(UWB2A)傳送至快閃儲存裝置3。由此,能夠削減儲存裝置側應準備之緩衝區域。
再者,於本實施形態中,例示了NAND型快閃記憶體作為非揮發性記憶體。但是,本實施形態之功能亦可應用於例如MRAM(Magnetoresistive Random Access Memory,磁性隨機存取記憶體)、PRAM(Phase change Random Access Memory,相變隨機記憶體)、
ReRAM(Resistive Random Access Memory,可變電阻式隨機存取記憶體)或FeRAM(Ferroelectric Random Access Memory,鐵電隨機存取記憶體)般之其他各種非揮發性記憶體中。
又,本實施形態中所說明之主機2之各種處理可由電腦程式實現,故僅藉由儲存有該電腦程式之電腦可讀取之記憶媒體將該電腦程式安裝於電腦而執行,便能夠容易地實現與本實施形態相同之效果。
對本發明之若干實施形態進行了說明,但該等實施形態係作為示例而提出,並不意圖限定發明之範圍。該等新穎之實施形態能以其他各種形態加以實施,且可於不脫離發明主旨之範圍內進行各種省略、替換、變更。該等實施形態或其變化包含於發明之範圍或主旨中,並且包含於申請專利範圍所記載之發明及其均等之範圍內。
2:主機
2A:寫入緩衝器
3:快閃儲存裝置
13:快閃編程控制器
Claims (12)
- 一種資訊處理裝置,其係能夠連接於以管理自非揮發性記憶體內之複數個塊分配之複數個寫入目的塊之方式構成之儲存裝置者,且包含:記憶體;及處理器,其連接於上述記憶體;上述處理器構成為:將應寫入一個寫入目的塊之第1資料儲存於上述記憶體上之寫入緩衝器,將寫入要求發送至上述儲存裝置,該寫入要求包含與上述一個寫入目的塊建立關聯之第1識別碼、及表示儲存有上述第1資料之上述寫入緩衝器內之位置之記憶位置資訊,且每當自上述儲存裝置接收包含上述記憶位置資訊之傳送要求時,將上述第1資料自上述寫入緩衝器傳送至上述儲存裝置;其中上述處理器構成為:將用以響應來自上階軟體之用來讀取上述第1資料之要求而讀取上述第1資料的讀取要求發送至上述儲存裝置,於自上述儲存裝置接收到要求從上述寫入緩衝器返回上述第1資料之傳送要求之情形時,自上述寫入緩衝器讀取上述第1資料,且將上述讀取之第1資料返回至上述上階軟體。
- 如請求項1之資訊處理裝置,其中上述儲存裝置構成為:藉由伴有將上述第1資料向上述非揮發性記憶體複數次傳送的複數階段之編程動作, 將上述第1資料寫入上述非揮發性記憶體,上述處理器構成為:自上述儲存裝置複數次接收包含上述記憶位置資訊之上述傳送要求,每當接收上述傳送要求時,將上述第1資料自上述寫入緩衝器傳送至上述儲存裝置。
- 如請求項1之資訊處理裝置,其中上述處理器構成為:於上述儲存裝置通知已無需儲存於上述寫入緩衝器之上述第1資料之前,響應來自上階軟體之用以讀取上述第1資料之要求而自上述寫入緩衝器讀取上述第1資料,且將上述讀取之第1資料返回至上述上階軟體。
- 如請求項1之資訊處理裝置,其中上述寫入緩衝器包含與上述複數個寫入目的塊對應之複數個寫入緩衝區域,上述處理器構成為:於自上述儲存裝置接收到表示已無需與上述一個寫入目的塊建立關聯之寫入緩衝區域之通知之情形時,釋放與上述一個寫入目的塊建立關聯之上述寫入緩衝區域。
- 如請求項1之資訊處理裝置,其中上述第1識別碼係指定特定寫入目的塊之塊識別碼。
- 如請求項1之資訊處理裝置,其中上述複數個寫入目的塊與複數個串流分別建立關聯,上述第1識別碼係上述複數個串流中之一個串流之識別碼。
- 如請求項1之資訊處理裝置,其中上述寫入緩衝器包含與上述複數個寫入目的塊對應之複數個寫入緩衝區域,上述傳送要求包含上述第1識別碼與上述記憶位置資訊。
- 一種藉由資訊處理裝置執行之方法,該資訊處理裝置能夠連接於以管理自非揮發性記憶體內之複數個塊分配之複數個寫入目的塊之方式構成之儲存裝置,且該方法包括:將應寫入一個寫入目的塊之第1資料儲存於上述資訊處理裝置內之記憶體上之寫入緩衝器;將寫入要求發送至上述儲存裝置,該寫入要求包含與上述一個寫入目的塊建立關聯之第1識別碼、及表示儲存有上述第1資料之上述寫入緩衝器內之位置之記憶位置資訊;每當自上述儲存裝置接收包含上述記憶位置資訊之傳送要求時,將上述第1資料自上述寫入緩衝器傳送至上述儲存裝置;該方法進而包括:將用以響應來自上階軟體之用來讀取上述第1資料之要求而讀取上述第1資料的讀取要求發送至上述儲存裝置;及於自上述儲存裝置接收到要求從上述寫入緩衝器返回上述第1資料之傳送要求之情形時,自上述寫入緩衝器讀取上述第1資料,且將上述讀取出之第1資料返回至上述上階軟體。
- 如請求項8之藉由資訊處理裝置執行之方法,其中上述儲存裝置構成為:藉由伴有將上述第1資料向上述非揮發性記憶體複數次傳送的複數階 段之編程動作,將上述第1資料寫入上述非揮發性記憶體,該方法進而包括:自上述儲存裝置複數次接收包含上述記憶位置資訊之上述傳送要求;每當接收上述傳送要求時,將上述第1資料自上述寫入緩衝器傳送至上述儲存裝置。
- 如請求項8上述之藉由資訊處理裝置執行之方法,進而包括:在上述儲存裝置通知已無需儲存於上述寫入緩衝器中之上述第1資料之前,響應來自上階軟體之用以讀取上述第1資料之要求而從上述寫入緩衝器讀取上述第1資料,且將上述讀取出之第1資料返回至上述上階軟體。
- 如請求項8之藉由資訊處理裝置執行之方法,其中上述寫入緩衝器包含與上述複數個寫入目的塊對應之複數個寫入緩衝區域,該方法進而包括:於自上述儲存裝置接收到表示已無需與上述一個寫入目的塊建立關聯之寫入緩衝區域之通知之情形時,釋放與上述一個寫入目的塊建立關聯之上述寫入緩衝區域。
- 一種資訊處理程式,其係用以使電腦執行如下程序者,該電腦能夠連接於以管理自非揮發性記憶體內之複數個塊分配之複數個寫入目的塊之方式構成之儲存裝置,上述程序為:將應寫入一個寫入目的塊之第1資料儲存於上述電腦內之記憶體上之寫入緩衝器;將寫入要求發送至上述儲存裝置,該寫入要求包含與上述一個寫入 目的塊建立關聯之第1識別碼、及表示儲存有上述第1資料之上述寫入緩衝器內之位置之記憶位置資訊;及每當自上述儲存裝置接收包含上述記憶位置資訊之傳送要求時,將上述第1資料自上述寫入緩衝器傳送至上述儲存裝置;上述儲存裝置構成為:藉由伴有將上述第1資料向上述非揮發性記憶體複數次傳送的複數階段之編程動作,將上述第1資料寫入上述非揮發性記憶體,該資訊處理程式進而使上述電腦執行自上述儲存裝置複數次接收包含上述記憶位置資訊之上述傳送要求之程序,每當接收上述傳送要求時,將上述第1資料自上述寫入緩衝器傳送至上述儲存裝置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017236270A JP7048289B2 (ja) | 2017-12-08 | 2017-12-08 | 情報処理装置および方法 |
JP2017-236270 | 2017-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201926028A TW201926028A (zh) | 2019-07-01 |
TWI692722B true TWI692722B (zh) | 2020-05-01 |
Family
ID=66696871
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107122912A TWI692722B (zh) | 2017-12-08 | 2018-07-03 | 資訊處理裝置、藉由資訊處理裝置執行之方法及程式 |
TW109110882A TW202046096A (zh) | 2017-12-08 | 2018-07-03 | 資訊處理裝置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109110882A TW202046096A (zh) | 2017-12-08 | 2018-07-03 | 資訊處理裝置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10789167B2 (zh) |
JP (1) | JP7048289B2 (zh) |
CN (1) | CN109901791B (zh) |
TW (2) | TWI692722B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107347058B (zh) | 2016-05-06 | 2021-07-23 | 阿里巴巴集团控股有限公司 | 数据加密方法、数据解密方法、装置及系统 |
JP7051546B2 (ja) * | 2018-04-16 | 2022-04-11 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10976957B2 (en) * | 2018-07-10 | 2021-04-13 | ScaleFlux, Inc. | Reducing multi-stream data write collision in solid-state data storage devices |
CN109450620B (zh) | 2018-10-12 | 2020-11-10 | 创新先进技术有限公司 | 一种移动终端中共享安全应用的方法及移动终端 |
JP7155028B2 (ja) | 2019-01-29 | 2022-10-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10838863B2 (en) * | 2019-02-01 | 2020-11-17 | EMC IP Holding Company LLC | Storage system with write cache release protection |
US11429519B2 (en) * | 2019-12-23 | 2022-08-30 | Alibaba Group Holding Limited | System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120491A1 (en) * | 2006-11-17 | 2008-05-22 | Rowan Nigel Naylor | Method and Apparatus for Retrieving Application-Specific Code Using Memory Access Capabilities of a Host Processor |
CN102629258A (zh) * | 2012-02-29 | 2012-08-08 | 浪潮(北京)电子信息产业有限公司 | 重复数据删除方法和装置 |
US8392384B1 (en) * | 2010-12-10 | 2013-03-05 | Symantec Corporation | Method and system of deduplication-based fingerprint index caching |
US20130097380A1 (en) * | 2011-10-14 | 2013-04-18 | John Colgrove | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
TW201638810A (zh) * | 2015-01-29 | 2016-11-01 | 愛思開海力士有限公司 | 高性能和大容量儲存之重複刪除中的資料完整性和損耗電阻 |
CN106297896A (zh) * | 2015-06-02 | 2017-01-04 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
TWI592800B (zh) * | 2016-10-04 | 2017-07-21 | 大心電子(英屬維京群島)股份有限公司 | 記憶體管理方法及使用所述方法的儲存控制器 |
TW201733085A (zh) * | 2014-09-17 | 2017-09-16 | Toshiba Kk | 半導體裝置 |
TW201738764A (zh) * | 2016-04-20 | 2017-11-01 | 三星電子股份有限公司 | 非揮發性記憶體模組以及操作儲存裝置的方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005115857A (ja) * | 2003-10-10 | 2005-04-28 | Sony Corp | ファイル記憶装置 |
US8880483B2 (en) | 2007-12-21 | 2014-11-04 | Sandisk Technologies Inc. | System and method for implementing extensions to intelligently manage resources of a mass storage system |
US8468294B2 (en) * | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
JP4988008B2 (ja) | 2010-05-13 | 2012-08-01 | 株式会社東芝 | 情報処理装置およびドライバ |
US8930647B1 (en) * | 2011-04-06 | 2015-01-06 | P4tents1, LLC | Multiple class memory systems |
JP5762930B2 (ja) | 2011-11-17 | 2015-08-12 | 株式会社東芝 | 情報処理装置および半導体記憶装置 |
JP6021759B2 (ja) | 2013-08-07 | 2016-11-09 | 株式会社東芝 | メモリシステムおよび情報処理装置 |
US20150254188A1 (en) * | 2014-03-10 | 2015-09-10 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
US20160283124A1 (en) * | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US20160321010A1 (en) | 2015-04-28 | 2016-11-03 | Kabushiki Kaisha Toshiba | Storage system having a host directly manage physical data locations of storage device |
WO2016194162A1 (ja) | 2015-06-03 | 2016-12-08 | 株式会社日立製作所 | 計算機システム |
US10048878B2 (en) * | 2015-06-08 | 2018-08-14 | Samsung Electronics Co., Ltd. | Nonvolatile memory module and storage system having the same |
JP6403164B2 (ja) | 2015-09-11 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
US20170123721A1 (en) | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer by command completion in parts |
US10089175B2 (en) * | 2015-12-11 | 2018-10-02 | Marvell World Trade Ltd. | Queuing of decoding tasks according to priority in NAND flash controller |
JP6448571B2 (ja) | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6448570B2 (ja) | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US10622089B2 (en) * | 2016-10-18 | 2020-04-14 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of storage device |
KR102395190B1 (ko) * | 2017-07-31 | 2022-05-06 | 삼성전자주식회사 | 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법 |
-
2017
- 2017-12-08 JP JP2017236270A patent/JP7048289B2/ja active Active
-
2018
- 2018-06-11 US US16/004,716 patent/US10789167B2/en active Active
- 2018-07-03 TW TW107122912A patent/TWI692722B/zh active
- 2018-07-03 TW TW109110882A patent/TW202046096A/zh unknown
- 2018-07-13 CN CN201810768385.4A patent/CN109901791B/zh active Active
-
2020
- 2020-08-07 US US16/987,987 patent/US20200364145A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120491A1 (en) * | 2006-11-17 | 2008-05-22 | Rowan Nigel Naylor | Method and Apparatus for Retrieving Application-Specific Code Using Memory Access Capabilities of a Host Processor |
US8392384B1 (en) * | 2010-12-10 | 2013-03-05 | Symantec Corporation | Method and system of deduplication-based fingerprint index caching |
US20130097380A1 (en) * | 2011-10-14 | 2013-04-18 | John Colgrove | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
CN102629258A (zh) * | 2012-02-29 | 2012-08-08 | 浪潮(北京)电子信息产业有限公司 | 重复数据删除方法和装置 |
TW201733085A (zh) * | 2014-09-17 | 2017-09-16 | Toshiba Kk | 半導體裝置 |
TW201638810A (zh) * | 2015-01-29 | 2016-11-01 | 愛思開海力士有限公司 | 高性能和大容量儲存之重複刪除中的資料完整性和損耗電阻 |
CN106297896A (zh) * | 2015-06-02 | 2017-01-04 | 群联电子股份有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
TW201738764A (zh) * | 2016-04-20 | 2017-11-01 | 三星電子股份有限公司 | 非揮發性記憶體模組以及操作儲存裝置的方法 |
TWI592800B (zh) * | 2016-10-04 | 2017-07-21 | 大心電子(英屬維京群島)股份有限公司 | 記憶體管理方法及使用所述方法的儲存控制器 |
Also Published As
Publication number | Publication date |
---|---|
TW202046096A (zh) | 2020-12-16 |
US20200364145A1 (en) | 2020-11-19 |
CN109901791B (zh) | 2022-07-22 |
TW201926028A (zh) | 2019-07-01 |
US20190179751A1 (en) | 2019-06-13 |
CN109901791A (zh) | 2019-06-18 |
JP2019105874A (ja) | 2019-06-27 |
US10789167B2 (en) | 2020-09-29 |
JP7048289B2 (ja) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI709857B (zh) | 記憶體系統及控制方法 | |
TWI692722B (zh) | 資訊處理裝置、藉由資訊處理裝置執行之方法及程式 | |
TWI700586B (zh) | 計算機系統及儲存裝置之控制方法 | |
US11573742B2 (en) | Dynamic data placement for collision avoidance among concurrent write streams | |
US20240264938A1 (en) | Address map caching for a memory system | |
JP7358594B2 (ja) | メモリシステム | |
JP2021033849A (ja) | メモリシステムおよび制御方法 | |
TW201935223A (zh) | 記憶體系統及其控制方法 | |
US12086432B2 (en) | Gradually reclaim storage space occupied by a proof of space plot in a solid state drive | |
JP2021033847A (ja) | メモリシステムおよび制御方法 | |
US20240176745A1 (en) | Identification of Available Memory of a Data Storage Device Attachable as a Memory Device | |
US20240036768A1 (en) | Partial Execution of a Write Command from a Host System | |
US12014052B2 (en) | Cooperative storage architecture | |
CN111459400A (zh) | 在存储服务器中进行基于管线的存取管理的方法及设备 | |
JP7400053B2 (ja) | メモリシステムおよび制御方法 | |
CN118092786A (zh) | 可作为存储器装置附接的数据存储装置的可用存储器的识别 |