TWI709857B - 記憶體系統及控制方法 - Google Patents
記憶體系統及控制方法 Download PDFInfo
- Publication number
- TWI709857B TWI709857B TW107120757A TW107120757A TWI709857B TW I709857 B TWI709857 B TW I709857B TW 107120757 A TW107120757 A TW 107120757A TW 107120757 A TW107120757 A TW 107120757A TW I709857 B TWI709857 B TW I709857B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- write
- host
- flash memory
- request
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明之實施方式提供可增加能夠同時使用之寫入目標區塊數之記憶體系統及控制方法。 實施方式之記憶體系統從上述主機接收包含第1標識符與記憶位置資訊之寫入請求,上述第1標識符與一個寫入目標區塊建立關聯,上述記憶位置資訊表示儲存有應寫入之第1資料之上述主機之記憶體上之寫入緩衝器內之位置。記憶體系統於將第1資料寫入至非揮發性記憶體時,藉由將包含上述記憶位置資訊之傳送請求送出至主機而從寫入緩衝器獲取第1資料,且將第1資料傳送至上述非揮發性記憶體,而將第1資料寫入至上述一個寫入目標區塊。
Description
本發明之實施方式係關於具備非揮發性記憶體之記憶體系統及其控制方法。
近年,具備非揮發性記憶體之記憶體系統正廣泛普及。作為此種記憶體系統之一,周知的是基於NAND快閃記憶體技術之固態驅動器(SSD,solid state drive)。
即便於資料中心之伺服器中,亦使用SSD作為儲存器裝置。
於如伺服器般之主機計算機系統中利用之儲存器裝置要求較高之I/O(Input/Output,輸入/輸出)性能。
因此,最近開始提出主機與儲存器裝置之間之新的接口。
此外,於最近之儲存器裝置中,存在要求能夠將不同種類之資料寫入至不同寫入目標區塊之情形。
然而,當能夠同時利用之寫入目標區塊之數量增加時,亦必須增加用以暫時儲存應寫入至各個寫入目標區塊之寫入資料而需要之寫入緩衝器之數量。通常,儲存器裝置內之隨機存取記憶體之容量有限,因此對於儲存器裝置而言,存在難以準備充分數量之寫入緩衝器之情形。因此,實際上,結果為能夠同時利用之寫入目標區塊之數量受限制。
本發明之實施方式提供可增加能夠同時利用之寫入目標區塊之數量之記憶體系統及控制方法。
根據實施方式,能夠與主機連接之記憶體系統具備:非揮發性記憶體;及控制器,其與上述非揮發性記憶體電性連接,且構成為管理從上述非揮發性記憶體內之複數個區塊分配之複數個寫入目標區塊。上述控制器從上述主機接收包含第1標識符與記憶位置資訊之寫入請求,且保持上述第1標識符與上述記憶位置資訊,上述第1標識符與一個寫入目標區塊建立關聯,上述記憶位置資訊表示儲存有應寫入之第1資料之上述主機之記憶體上之寫入緩衝器內之位置。上述控制器於將上述第1資料寫入至上述非揮發性記憶體時,藉由將包含上述記憶位置資訊之傳送請求送出至上述主機而從上述寫入緩衝器獲取上述第1資料,且將上述第1資料傳送至上述非揮發性記憶體,而將上述第1資料寫入至上述一個寫入目標區塊。上述控制器於上述第1資料之寫入結束且上述第1資料能夠從上述非揮發性記憶體讀出之情形時,對上述主機通知保持於上述寫入緩衝器中之上述第1資料不再需要。
以下,參照圖式對實施方式進行說明。
首先,參照圖1對主機與記憶體系統之關係進行說明。
該記憶體系統為以如下方式構成之半導體儲存器裝置,即,將資料寫入至非揮發性記憶體,且從非揮發性記憶體讀出資料。該記憶體系統係作為基於NAND快閃記憶體技術之快閃儲存器裝置3來實現。
主機(主機裝置)2以控制多個快閃儲存器裝置3之方式構成。主機2藉由資訊處理裝置實現,該資訊處理裝置以將由多個快閃儲存器裝置3構成之快閃記憶體陣列作為記憶體來使用之方式構成。該資訊處理裝置亦可為個人電腦,亦可為伺服器電腦。
再者,快閃儲存器裝置3亦可作為設置於記憶體陣列內之多個儲存器裝置之一來利用。記憶體陣列亦可如經由纜線或網路連接於伺服器電腦般之資訊處理裝置,記憶體陣列包含控制該記憶體陣列內之多個記憶體(例如多個快閃儲存器裝置3)之控制器。於將快閃儲存器裝置3應用於記憶體陣列之情形時,該記憶體陣列之控制器亦可作為快閃儲存器裝置3之主機發揮功能。
以下,例示伺服器電腦般之資訊處理裝置作為主機2發揮功能之情形來進行說明。
主機(伺服器)2與多個快閃儲存器裝置3經由接口50相互連接(內部相互連接)。作為用於該相互連接之接口50,可使用PCI Express(Peripheral Component Interconnect Express,外圍部件互連高速)(PCIe)(註冊商標)、NVM Express(Non Volatile Memory Express,非揮發性記憶體高速)(NVMe)(註冊商標)、Ethernet(乙太網)(註冊商標)、NVMe over Fabrics(結構上NVMe)(NVMeOF)等,但並不限定於此。
至於作為主機2發揮功能之伺服器電腦之典型例,可列舉資料中心內之伺服器電腦(以下,稱為伺服器)。
於主機2藉由資料中心內之伺服器實現之情形時,該主機(伺服器)2亦可經由網路51連接於多個最終使用者終端(使用者端)61。主機2可對該些最終使用者終端61提供各種服務。
能夠藉由主機(伺服器)2提供之服務之例,存在:(1)對各使用者端(各最終使用者終端61)提供系統運轉平台之平台即服務(PaaS,platform as a service);及(2)對各使用者端(各最終使用者終端61)提供虛擬伺服器般之基礎設施之基礎設施即服務(IaaS,infrastructure as a service)等。
多個虛擬機器於作為上述主機(伺服器)2發揮功能之物理伺服器上執行。於主機(伺服器)2上運行之該些虛擬機器之各者可作為以如下方式構成之虛擬伺服器發揮功能,即,向對應之幾個使用者端(最終使用者終端61)提供各種服務。
主機(伺服器)2包含:記憶體管理功能,其對構成快閃記憶體陣列之多個快閃儲存器裝置3進行管理;及前端功能,其對最終使用者終端61分別提供包含記憶體存取之各種服務。
快閃儲存器裝置3包含NAND型快閃記憶體般之非揮發性記憶體。一個快閃儲存器裝置3對從非揮發性記憶體內之多個區塊分配之多個寫入目標區塊進行管理。寫入目標區塊係指應寫入資料之區塊。從主機2送出至快閃儲存器裝置3之寫入請求(寫入指令)中,包含與應寫入資料之一個寫入目標區塊建立關聯之標識符。基於該寫入請求中所包含之該標識符,快閃儲存器裝置3從多個寫入目標區塊中決定應寫入該資料之一個寫入目標區塊。
該寫入請求中所包含之標識符亦可為對特定之寫入目標區塊進行指定之區塊標識符。區塊標識符亦可藉由區塊位址(區塊編號)表示。或者,於快閃儲存器裝置3包含多個NAND型快閃記憶體晶片之情形時,區塊標識符亦可藉由區塊位址(區塊編號)與晶片編號之組合表示。
於快閃儲存器裝置3支援串流寫入之情形時,該寫入請求中所包含之標識符亦可為多個串流中之一個串流之標識符(串流ID(IDentification))。於串流寫入中,多個寫入目標區塊分別與多個串流建立關聯。換言之,於快閃儲存器裝置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將包含標識符(區塊標識符或串流ID)與記憶位置資訊之寫入請求送出至快閃儲存器裝置3,該標識符與該一個寫入目標區塊建立關聯,該記憶位置資訊表示儲存有該寫入資料之UWB2A內之位置。
快閃儲存器裝置3從主機2接收該寫入請求,並保持標識符與記憶位置資訊。快閃儲存器裝置3於將該寫入資料寫入至NAND型快閃記憶體時,藉由將包含上述記憶位置資訊之傳送請求送出至主機2而從UWB2A獲取上述寫入資料。例如,於NAND型快閃記憶體為於每一記憶胞記憶3位元資料之TLC(Trinary-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經由觸發器、開放NAND快閃記憶體接口(ONFI)般之快閃記憶體編程控制器13而與作為非揮發性記憶體之NAND型快閃記憶體5電性連接。控制器4作為以控制NAND型快閃記憶體5之方式構成之記憶體控制器動作。該控制器4亦可藉由System-on-a-chip(SoC,系統級晶片)般之電路實現。
NAND型快閃記憶體5亦可如圖3所示,包含多個NAND型快閃記憶體晶片(NAND型快閃記憶體裸片)。各個NAND型快閃記憶體晶片能夠獨立動作。因此,NAND型快閃記憶體晶片作為能夠並列動作之單位發揮功能。圖3中例示如下情形,即,於快閃記憶體編程控制器13連接有16個通道Ch.1~Ch.16,且於16個通道Ch.1~Ch.16之各者連接有2個NAND型快閃記憶體晶片。該情形時,與通道Ch.1~Ch.16連接之16個NAND型快閃記憶體晶片#1~#16編成為觸排#0,此外與通道Ch.1~Ch.16連接之剩餘之16個NAND型快閃記憶體晶片#17~#32編成為觸排#1。觸排作為藉由觸排交錯使多個記憶體模組並列動作之單位發揮功能。於圖3之構成例中,可藉由16通道與使用2個觸排之觸排交錯而使最大32個NAND型快閃記憶體晶片並列動作。
刪除動作亦能以一個區塊(物理區塊)單位執行,亦能以包含能夠並列動作之多個物理區塊之集合之超級區塊之單位執行。一個超級區塊亦可包含從NAND型快閃記憶體晶片#1~#32分別選擇一個之共計32個物理區塊,但並不限定於此。再者,NAND型快閃記憶體晶片#1~#32之各者亦可具有多平面構成。例如,於NAND型快閃記憶體晶片#1~#32之各者具有包含2個平面之多平面構成之情形時,一個超級區塊亦可包含從與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、CPU12、快閃記憶體編程控制器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將控制程式(韌體)載入於DRAM6,而且藉由執行該韌體而進行各種處理。再者,韌體亦可載入於控制器4內之未圖示之SRAM上。該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中,區塊之狀態大體分為儲存有效資料之有效區塊、與不儲存有效資料之空閒區塊。作為有效區塊之各區塊藉由稱為有效區塊池之列表管理。另一方面,作為空閒區塊之各區塊藉由稱為空閒區塊池之列表來管理。
本實施方式中,控制器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用之裝置驅動器內。快閃儲存器管理器管理UWB2A。根據來自上位軟體(應用程式或檔案系統)之寫入資料之請求,快閃儲存器管理器將伴隨有應寫入之資料、標籤、區塊標識符之寫入請求儲存於UWB2A。標籤為能夠識別該資料之標識符。標籤亦可為邏輯區塊位址(LBA,Logical Block Address)般之邏輯位址,亦可為鍵值儲存之鍵,亦可為檔案名般之檔案標識符。區塊標識符為寫入目標區塊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之資料不再需要之前,響應於來自上位軟體之用以讀出該資料之請求,直接從UWB2A讀出該資料而不將讀出請求送出至快閃儲存器裝置3。該情形時,資料讀出處理如下上述般執行。
(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。該傳送請求亦可包含與該資料對應之緩衝器位址。
(4')主機2之快閃儲存器管理器從UWB2A讀出該資料,並將讀出之資料與該資料之標籤一併送回至上位軟體。
或者,主機2之快閃儲存器管理器於從快閃儲存器裝置3通知儲存於UWB2A之資料不再需要之前,響應於來自上位軟體之用以讀出該資料之請求,直接從UWB2A讀出該資料而不將讀出請求送出至快閃儲存器裝置3。該情形時,資料讀出處理如下上述般執行。
(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的是),則控制器4判定是否為向該寫入目標區塊之最後頁面(最後物理頁面)之寫入動作結束而該寫入目標區塊全體被資料寫滿(步驟S32)。
若剩餘有能夠於該寫入目標區塊利用之物理頁面(未寫入之物理頁面)(步驟S32的否),則控制器4為了對主機2通知保持於UWB區域之能夠讀出之資料不再需要,而將寫入完成(Write Done)或無效化請求(invalidate Request)送出至主機2(步驟S33)。
若向該寫入目標區塊之最後頁面(最後物理頁面)之寫入動作結束而該寫入目標區塊全體被資料寫滿(步驟S32的是),則控制器4為了對主機2通知與該寫入目標區塊對應之UWB區域全體不再需要,而將關閉請求(Close Request)送出至主機2(步驟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之資料不再需要之前,響應於來自上位軟體之用以讀出該資料之請求,直接從UWB2A讀出該資料而不將讀出請求送出至快閃儲存器裝置3。該情形時,資料讀出處理如下上述般執行。
(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,首先為了從UWB區域獲取使用於模糊寫入之寫入資料(模糊資料),而將包含所保持之緩衝器位址(或緩衝器內偏移)之傳送請求送出至主機2(步驟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為了從UWB區域獲取使用於精細寫入之寫入資料(精細資料),而將包含所保持之緩衝器位址(或緩衝器內偏移)之傳送請求再次送出至主機2(步驟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,Central Processing Unit,中央處理單元)101、主記憶體102、BIOS(Basic Input Output System,基本輸入輸出系統)-ROM(Read-Only Memory,唯讀記憶體)103、網路控制器105、周邊接口控制器106、控制器107、及嵌入式控制器(EC,Embedded Controller)108等。
處理器101為以控制該資訊處理裝置內之各組件之動作之方式構成之CPU。該處理器101執行主記憶體102上之各種程式。主記憶體102由DRAM般之隨機存取記憶體構成。藉由處理器101執行之程式包含應用程式軟體層41、操作系統(OS,Operating System)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(serial attached Small Computer System Interface,串列連接小型計算機系統接口) expander(擴展器)、PCIe Switch(開關)、PCIe expander、快閃記憶體陣列控制器、或RAID(Redundant Arrays of Independent Disks,獨立磁盤冗餘陣列)控制器。或者,多個快閃儲存器裝置3亦可經由ethernet與網路控制器105連接。
圖21之流程圖表示藉由處理器101執行之資料寫入處理之步驟。
於資料寫入處理中,處理器101將應寫入至一個寫入目標區塊之寫入資料儲存於UWB2A(與該寫入目標區塊對應之UWB區域)(步驟S101)。處理器101將包含標識符與記憶位置資訊之寫入請求送出至快閃儲存器裝置3,該標識符與該寫入目標區塊建立關聯,該記憶位置資訊表示儲存有寫入資料之UWB2A內之位置(無UWB區域之位置)(步驟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)與記憶位置資訊(例如緩衝器位址)之寫入請求送出至快閃儲存器裝置3,該標識符與該新分配之寫入目標區塊建立關聯,該記憶位置資訊表示記憶該資料之該UWB區域內之位置。
如以上所說明般,根據本實施方式,快閃儲存器裝置3之控制器4從主機2接收包含第1標識符(區塊標識符、或串流ID)與記憶位置資訊(緩衝器位址、或緩衝器內位址)之寫入請求,該第1標識符與一個寫入目標區塊建立關聯,該記憶位置資訊表示儲存有應寫入之第1資料之主機2之記憶體上之寫入緩衝器(UWB2A)內之位置。而且,於將第1資料寫入至NAND型快閃記憶體5時,控制器4藉由將包含記憶位置資訊之傳送請求送出至主機2,而從寫入緩衝器(UWB2A)獲取第1資料。因此,可從主機2之寫入緩衝器(UWB2A)獲取用於寫入動作而必需之資料,因此可增加能夠同時利用之寫入目標區塊之數量而又無需於快閃儲存器裝置3準備多個寫入緩衝器。由此,能夠容易地增加共有快閃儲存器裝置3之最終使用者之數量而又不會導致快閃儲存器裝置3之成本上升。
此外,控制器4於第1資料之寫入結束且第1資料能夠從NAND型快閃記憶體5讀出之情形時,對主機2通知保持於寫入緩衝器(UWB2A)之第1資料不再需要。根據該通知,主機2可視需要廢棄該資料。因此,於應寫入之資料能夠從NAND型快閃記憶體5讀出之前,控制器4亦可視需要從寫入緩衝器(UWB2A)反覆獲取該資料。因此,即便於執行模糊-精細編程動作般之多個階段之編程動作之情形時,控制器4每當開始各階段之編程動作時,就可從寫入緩衝器(UWB2A)獲取必要資料。
再者,本實施方式中,例示NAND型快閃記憶體作為非揮發性記憶體。然而,本實施方式之功能亦可應用於例如MRAM(Magnetoresistive Random Access Memory,磁阻式隨機存取記憶體)、PRAM(Phase change Random Access Memory,相變隨機存取記憶體)、ReRAM(Resistive Random Access Memory,電阻式隨機存取記憶體)、或FeRAM(Ferroelectric Random Access Memory,鐵電隨機存取記憶體)般之其他各種非揮發性記憶體。
對本發明之幾個實施方式進行了說明,但該些實施方式係作為示例提示者,並未意圖限定發明之範圍。該些新穎之實施方式能夠以其他各種方式實施,可於不脫離發明要旨之範圍進行各種省略、替換、變更。該些實施方式或其變化包含於發明之範圍或要旨中,並且包含於申請專利範圍中所記載之發明及其均等之範圍。 [相關申請案]
本申請案享有以日本專利申請案2017-236269號(申請日:2017年12月8日)為基礎申請案之優先權。本申請案藉由參照該基礎申請案而包含基礎申請案之全部內容。
2‧‧‧主機2A‧‧‧寫入緩衝器3‧‧‧快閃儲存器裝置4‧‧‧控制器5‧‧‧NAND型快閃記憶體6‧‧‧DRAM10‧‧‧匯流排11‧‧‧主機接口12‧‧‧CPU13‧‧‧快閃記憶體編程控制器14‧‧‧DRAM接口21‧‧‧區塊標識符/緩衝器位址接收部22‧‧‧傳送請求發送部23‧‧‧通知部30‧‧‧讀出緩衝器31‧‧‧寫入緩衝器32‧‧‧區塊管理表33‧‧‧不良資訊管理表41‧‧‧應用程式層42‧‧‧操作系統43‧‧‧檔案系統44‧‧‧裝置驅動器45‧‧‧快閃儲存器管理器51‧‧‧網路61‧‧‧最終使用者終端101‧‧‧處理器102‧‧‧主記憶體103‧‧‧BIOS105‧‧‧網路控制器106‧‧‧周邊I/F控制器107‧‧‧控制器107A‧‧‧控制器108‧‧‧嵌入式控制器BLK‧‧‧區塊BLK0‧‧‧區塊BLK1‧‧‧區塊BLK2‧‧‧區塊BLK3‧‧‧區塊BLK4‧‧‧區塊BLK6‧‧‧區塊BLK7‧‧‧區塊BLKn‧‧‧區塊BLKm-1‧‧‧區塊BLK#1‧‧‧寫入目標區塊BLK#2‧‧‧寫入目標區塊BLK#3‧‧‧寫入目標區塊BLK#n‧‧‧寫入目標區塊Ch.1‧‧‧通道Ch.2‧‧‧通道Ch.16‧‧‧通道P0‧‧‧頁面Pn-1‧‧‧頁面SB‧‧‧超級區塊S11‧‧‧步驟S12‧‧‧步驟S21‧‧‧步驟S22‧‧‧步驟S23‧‧‧步驟S24‧‧‧步驟S25‧‧‧步驟S26‧‧‧步驟S27‧‧‧步驟S31‧‧‧步驟S32‧‧‧步驟S33‧‧‧步驟S34‧‧‧步驟S40‧‧‧步驟S41‧‧‧步驟S42‧‧‧步驟S43‧‧‧步驟S44‧‧‧步驟S45‧‧‧步驟S46‧‧‧步驟S51‧‧‧步驟S52‧‧‧步驟S53‧‧‧步驟S54‧‧‧步驟S55‧‧‧步驟S61‧‧‧步驟S62‧‧‧步驟S63‧‧‧步驟S71‧‧‧步驟S72‧‧‧步驟S73‧‧‧步驟S81‧‧‧步驟S82‧‧‧步驟S83‧‧‧步驟S84‧‧‧步驟S85‧‧‧步驟S86‧‧‧步驟S87‧‧‧步驟S88‧‧‧步驟S89‧‧‧步驟S90‧‧‧步驟S91‧‧‧步驟S92‧‧‧步驟S101‧‧‧步驟S102‧‧‧步驟S103‧‧‧步驟S104‧‧‧步驟S111‧‧‧步驟S112‧‧‧步驟S113‧‧‧步驟S114‧‧‧步驟S121‧‧‧步驟S122‧‧‧步驟S123‧‧‧步驟S124‧‧‧步驟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與和該些串流ID建立關聯之多個寫入目標區塊之關係之圖。 圖18係用以對支援串流寫入之快閃儲存器裝置與主機側UWB之關係及藉由主機與快閃儲存器裝置執行之資料讀出處理進行說明之方塊圖。 圖19係表示藉由支援模糊-精細寫入之快閃儲存器裝置與主機執行之資料寫入處理之步驟之序列圖。 圖20係表示主機之構成例之方塊圖。 圖21係表示藉由主機內之處理器(CPU)執行之資料寫入處理之步驟之流程圖。 圖22係表示藉由主機內之處理器執行之資料讀出處理之步驟之流程圖。 圖23係表示藉由主機內之處理器執行之資料讀出處理之其他步驟之流程圖。 圖24係表示藉由主機內之處理器執行之UWB區域開放處理之步驟之流程圖。
2‧‧‧主機
2A‧‧‧寫入緩衝器
3‧‧‧快閃儲存器裝置
13‧‧‧快閃記憶體編程控制器
BLK‧‧‧區塊
Claims (13)
- 一種記憶體系統,其係能夠與主機連接者,且具備:非揮發性記憶體;及控制器,其與上述非揮發性記憶體電性連接,且構成為管理從上述非揮發性記憶體內之複數個區塊分配之複數個寫入目標區塊;且上述控制器以如下方式構成:從上述主機接收包含第1標識符與記憶位置資訊之寫入請求,且保持上述第1標識符與上述記憶位置資訊,上述第1標識符與一個寫入目標區塊建立關聯,上述記憶位置資訊表示儲存有應寫入之第1資料之上述主機之記憶體上之寫入緩衝器內之位置,於將上述第1資料寫入至上述非揮發性記憶體時,藉由將包含上述記憶位置資訊之傳送請求發送至上述主機而從上述寫入緩衝器獲取上述第1資料,且將上述第1資料傳送至上述非揮發性記憶體,而將上述第1資料寫入至上述一個寫入目標區塊,將上述第1資料保持到上述第1資料向上述非揮發性記憶體之傳送結束為止,於上述第1資料之寫入結束且上述第1資料能夠從上述非揮發性記憶體讀出之情形時,對上述主機通知保持於上述寫入緩衝器之上述第1資料不再需要,且當上述第1資料之寫入開始起至可讀出上述第1資料為止之期間中從上述主機接收到用以讀出上述第1資料之讀出請求之情形時,將以作為對上述讀出請求之響應而從上述寫入緩衝器送回上述第1資料之方式請求之 傳送請求向上述主機送出。
- 如請求項1之記憶體系統,其中上述第1資料之寫入係藉由伴隨將上述第1資料向上述非揮發性記憶體傳送複數次之複數個階段之編程動作而執行,且上述控制器構成為,每當上述第1資料之各階段之編程動作開始時,藉由將包含上述記憶位置資訊之上述傳送請求發送至上述主機而從上述寫入緩衝器獲取上述第1資料。
- 如請求項1之記憶體系統,其中上述寫入緩衝器包含與上述複數個寫入目標區塊對應之複數個寫入緩衝區域,且上述控制器以如下方式構成,即,於上述一個寫入目標區塊全體寫滿資料之情形時,對上述主機通知與上述一個寫入目標區塊對應之上述寫入緩衝器內之寫入緩衝區域不再需要。
- 如請求項1之記憶體系統,其中上述記憶體系統經由ethernet(乙太網路,註冊商標)連接於上述主機。
- 如請求項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資料之各階段之編程動作開始時,藉由將包含上述記憶位置資訊之上述傳送請求發送至上述主機而從上述寫入緩衝器獲取上述第1資料。
- 如請求項8之控制方法,其中上述寫入緩衝器包含與上述複數個寫入目標區塊對應之複數個寫入緩衝區域,且進而具備:於上述一個寫入目標區塊全體寫滿資料之情形時,對上述主機通知與上述一個寫入目標區塊對應之上述寫入緩衝器內之寫入緩衝區域不再需要。
- 如請求項8之控制方法,其中上述第1標識符為對特定之區塊進行指定之區塊標識符。
- 如請求項8之控制方法,其中上述複數個寫入目標區塊分別與複數個串流建立關聯,且上述第1標識符為上述複數個串流內之一個串流之標識符。
- 如請求項8之控制方法,其中上述寫入緩衝器包含與上述複數個寫入目標區塊對應之複數個寫入緩衝區域,且上述傳送請求包含上述第1標識符與上述記憶位置資訊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-236269 | 2017-12-08 | ||
JP2017236269A JP6967959B2 (ja) | 2017-12-08 | 2017-12-08 | メモリシステムおよび制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201926044A TW201926044A (zh) | 2019-07-01 |
TWI709857B true TWI709857B (zh) | 2020-11-11 |
Family
ID=66696826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107120757A TWI709857B (zh) | 2017-12-08 | 2018-06-15 | 記憶體系統及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10768858B2 (zh) |
JP (1) | JP6967959B2 (zh) |
CN (2) | CN116088760A (zh) |
TW (1) | TWI709857B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI792322B (zh) * | 2020-12-15 | 2023-02-11 | 日商鎧俠股份有限公司 | 記憶體系統及控制方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
EP3685271A4 (en) * | 2018-01-29 | 2021-05-12 | Hewlett-Packard Development Company, L.P. | VALIDITY OF RECORDS STORED IN MEMORY |
JP7051546B2 (ja) * | 2018-04-16 | 2022-04-11 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7155028B2 (ja) | 2019-01-29 | 2022-10-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11586385B1 (en) | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
TWI738390B (zh) * | 2020-06-19 | 2021-09-01 | 群聯電子股份有限公司 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
US11893413B2 (en) * | 2020-09-11 | 2024-02-06 | Apple Inc. | Virtual channel support using write table |
CN114981784A (zh) * | 2020-10-29 | 2022-08-30 | 慧荣科技股份有限公司 | 用于控制数据储存装置之方法及相关闪存控制器 |
JP7516300B2 (ja) | 2021-03-17 | 2024-07-16 | キオクシア株式会社 | メモリシステム |
KR20220169642A (ko) * | 2021-06-21 | 2022-12-28 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
KR20230019716A (ko) * | 2021-08-02 | 2023-02-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP2023037883A (ja) | 2021-09-06 | 2023-03-16 | キオクシア株式会社 | 情報処理装置 |
JP2023136082A (ja) * | 2022-03-16 | 2023-09-29 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7694041B2 (en) * | 2006-05-19 | 2010-04-06 | Arabella Software Ltd. | Method for managing buffers pool and a system using the method |
CN102982122A (zh) * | 2012-11-13 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种适用于海量存储***的重复数据删除方法 |
TW201329999A (zh) * | 2012-01-09 | 2013-07-16 | Phison Electronics Corp | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
US20160026406A1 (en) * | 2014-06-05 | 2016-01-28 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for providing flexible host memory buffer |
TW201643721A (zh) * | 2015-06-10 | 2016-12-16 | 群聯電子股份有限公司 | 緩衝記憶體存取方法、記憶體控制器與記憶體儲存裝置 |
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 |
CN106775477A (zh) * | 2016-12-19 | 2017-05-31 | 湖南国科微电子股份有限公司 | SSD主控BE Buffer、SSD主控、数据传输管理装置及方法 |
US20170351452A1 (en) * | 2016-06-01 | 2017-12-07 | Intel Corporation | Dynamic host memory buffer allocation |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN102246240A (zh) * | 2008-12-09 | 2011-11-16 | 拉姆伯斯公司 | 用于并发和流水线存储器操作的非易失性存储器器件 |
US8510508B2 (en) * | 2009-01-23 | 2013-08-13 | Infortrend Technology, Inc. | Storage subsystem and storage system architecture performing storage virtualization and method thereof |
US8054684B2 (en) * | 2009-12-18 | 2011-11-08 | Sandisk Technologies Inc. | Non-volatile memory and method with atomic program sequence and write abort detection |
US8144512B2 (en) | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
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 | 株式会社東芝 | 情報処理装置およびドライバ |
JP2012128660A (ja) * | 2010-12-15 | 2012-07-05 | Toshiba Corp | 半導体記憶装置 |
US8472280B2 (en) * | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
US9552175B2 (en) * | 2011-02-08 | 2017-01-24 | Diablo Technologies Inc. | System and method for providing a command buffer in a memory system |
WO2012109679A2 (en) | 2011-02-11 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for application direct virtual memory management |
JP5762930B2 (ja) * | 2011-11-17 | 2015-08-12 | 株式会社東芝 | 情報処理装置および半導体記憶装置 |
JP5514169B2 (ja) | 2011-08-15 | 2014-06-04 | 株式会社東芝 | 情報処理装置および情報処理方法 |
JP5547154B2 (ja) | 2011-09-21 | 2014-07-09 | 株式会社東芝 | メモリ・デバイス |
KR102101304B1 (ko) * | 2013-03-15 | 2020-04-16 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
WO2015121912A1 (ja) * | 2014-02-12 | 2015-08-20 | 株式会社日立製作所 | データ記憶装置 |
US20150254188A1 (en) * | 2014-03-10 | 2015-09-10 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
US9588701B2 (en) * | 2014-09-09 | 2017-03-07 | Sandisk Technologies Llc | Multi-stage programming at a storage device using multiple instructions from a host |
JP2016062624A (ja) * | 2014-09-17 | 2016-04-25 | 株式会社東芝 | 半導体記憶装置 |
JP6354507B2 (ja) * | 2014-10-01 | 2018-07-11 | 富士通株式会社 | ストレージ制御装置およびストレージシステム |
US9552885B2 (en) * | 2014-12-10 | 2017-01-24 | Sandisk Technologies Llc | Partial block erase for open block reading in non-volatile memory |
US9753655B2 (en) * | 2014-12-30 | 2017-09-05 | Samsung Electronics Co., Ltd. | Computing system with write buffer including speculative storage write and method of operation thereof |
CN109471812B (zh) * | 2015-01-19 | 2023-09-05 | 铠侠股份有限公司 | 存储装置及非易失性存储器的控制方法 |
US9460780B2 (en) * | 2015-01-20 | 2016-10-04 | Sandisk Technologies Llc | Initialization techniques for multi-level memory cells using multi-pass programming |
US20160283124A1 (en) | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US10824553B2 (en) * | 2015-04-24 | 2020-11-03 | Toshiba Memory Corporation | Memory device that controls timing of receiving write data from a host |
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 | 株式会社日立製作所 | 計算機システム |
JP6403164B2 (ja) * | 2015-09-11 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
US10042553B2 (en) * | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US10096366B2 (en) * | 2016-01-28 | 2018-10-09 | Toshiba Memory Corporation | Memory system including multi-plane flash memory and controller |
JP6444917B2 (ja) | 2016-03-08 | 2018-12-26 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6448570B2 (ja) | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6448571B2 (ja) * | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6502880B2 (ja) * | 2016-03-10 | 2019-04-17 | 東芝メモリ株式会社 | 半導体記憶装置 |
US9824764B2 (en) * | 2016-03-15 | 2017-11-21 | Toshiba Memory Corporation | Semiconductor memory device |
US9858003B2 (en) * | 2016-05-02 | 2018-01-02 | Toshiba Memory Corporation | Storage system that reliably stores lower page data |
US10593398B2 (en) * | 2016-09-13 | 2020-03-17 | Toshiba Memory Corporation | Semiconductor storage device including a controller configured to execute a first write and a second write |
KR20180041898A (ko) * | 2016-10-17 | 2018-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
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 | 삼성전자주식회사 | 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법 |
KR20230056901A (ko) * | 2021-10-21 | 2023-04-28 | 에스케이하이닉스 주식회사 | 메모리 장치에 데이터를 프로그램하는 장치 및 방법 |
-
2017
- 2017-12-08 JP JP2017236269A patent/JP6967959B2/ja active Active
-
2018
- 2018-06-11 US US16/004,601 patent/US10768858B2/en active Active
- 2018-06-15 TW TW107120757A patent/TWI709857B/zh active
- 2018-07-13 CN CN202310048794.8A patent/CN116088760A/zh active Pending
- 2018-07-13 CN CN201810768175.5A patent/CN109901790B/zh active Active
-
2020
- 2020-08-04 US US16/984,238 patent/US11947837B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7694041B2 (en) * | 2006-05-19 | 2010-04-06 | Arabella Software Ltd. | Method for managing buffers pool and a system using the method |
TW201329999A (zh) * | 2012-01-09 | 2013-07-16 | Phison Electronics Corp | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
CN102982122A (zh) * | 2012-11-13 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种适用于海量存储***的重复数据删除方法 |
US20160026406A1 (en) * | 2014-06-05 | 2016-01-28 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for providing flexible host memory buffer |
TW201643721A (zh) * | 2015-06-10 | 2016-12-16 | 群聯電子股份有限公司 | 緩衝記憶體存取方法、記憶體控制器與記憶體儲存裝置 |
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 |
US20170351452A1 (en) * | 2016-06-01 | 2017-12-07 | Intel Corporation | Dynamic host memory buffer allocation |
CN106775477A (zh) * | 2016-12-19 | 2017-05-31 | 湖南国科微电子股份有限公司 | SSD主控BE Buffer、SSD主控、数据传输管理装置及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI792322B (zh) * | 2020-12-15 | 2023-02-11 | 日商鎧俠股份有限公司 | 記憶體系統及控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116088760A (zh) | 2023-05-09 |
CN109901790A (zh) | 2019-06-18 |
US10768858B2 (en) | 2020-09-08 |
US11947837B2 (en) | 2024-04-02 |
TW201926044A (zh) | 2019-07-01 |
JP2019105873A (ja) | 2019-06-27 |
US20200363996A1 (en) | 2020-11-19 |
JP6967959B2 (ja) | 2021-11-17 |
US20190179567A1 (en) | 2019-06-13 |
CN109901790B (zh) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI709857B (zh) | 記憶體系統及控制方法 | |
TWI692722B (zh) | 資訊處理裝置、藉由資訊處理裝置執行之方法及程式 | |
JP7155028B2 (ja) | メモリシステムおよび制御方法 | |
TWI681331B (zh) | 記憶體系統及其控制方法 | |
WO2019090493A1 (zh) | 内存块回收方法和装置 | |
JP2021033849A (ja) | メモリシステムおよび制御方法 | |
US20230244394A1 (en) | Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive | |
US20240036768A1 (en) | Partial Execution of a Write Command from a Host System | |
CN110647359A (zh) | 半导体装置、其操作方法和具有其的层叠存储装置 | |
EP4064022A1 (en) | Cooperative storage architecture | |
JP2021033845A (ja) | メモリシステムおよび制御方法 | |
KR20200095010A (ko) | 메모리 시스템에서 맵 정보를 전송하는 방법 및 장치 | |
CN110781098B (zh) | 用于彼此接合多个存储器***的设备和方法 | |
KR20190051416A (ko) | 반도체 장치 및 반도체 시스템 | |
JP7400053B2 (ja) | メモリシステムおよび制御方法 | |
US20240256184A1 (en) | Memory system and method for controlling nonvolatile memory | |
KR20210055448A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
EP4220414A1 (en) | Storage controller managing different types of blocks, operating method thereof, and operating method of storage device including the same | |
US20230236737A1 (en) | Storage Controller Managing Different Types Of Blocks, Operating Method Thereof, And Operating Method Of Storage Device Including The Same | |
US20240176745A1 (en) | Identification of Available Memory of a Data Storage Device Attachable as a Memory Device |