TWI681331B - 記憶體系統及其控制方法 - Google Patents
記憶體系統及其控制方法 Download PDFInfo
- Publication number
- TWI681331B TWI681331B TW107123707A TW107123707A TWI681331B TW I681331 B TWI681331 B TW I681331B TW 107123707 A TW107123707 A TW 107123707A TW 107123707 A TW107123707 A TW 107123707A TW I681331 B TWI681331 B TW I681331B
- Authority
- TW
- Taiwan
- Prior art keywords
- write
- data
- page
- target block
- written
- 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/0625—Power saving in 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
實施形態實現可謀求削減寫入緩衝區所消耗之記憶體資源量之記憶體系統及其控制方法。 記憶體系統係自主機接收第1寫入請求,該第1寫入請求包含指定第1寫入資料應被寫入之第1寫入目標塊之第1塊識別碼。記憶體系統自暫時保持與各寫入請求對應之寫入資料之寫入緩衝區獲取第1寫入資料,且將第1寫入資料寫入至第1寫入目標塊內之寫入目標頁。記憶體系統釋放儲存有藉由對寫入目標頁寫入第1寫入資料而可自第1寫入目標塊讀出之、先於寫入目標頁之上述第1寫入目標塊內之頁的資料之寫入緩衝區內之區域。
Description
本發明之實施形態係關於一種具備非揮發性記憶體之記憶體系統及其控制方法。
近年來,具備非揮發性記憶體之記憶體系統正廣泛地普及。作為此種記憶體系統之一,已知有基於NAND(Not And,與非)快閃技術之固態驅動器(SSD)。
對於資料中心之伺服器亦使用SSD作為儲存裝置。
對於伺服器之類之主機電腦系統中所利用之儲存裝置,要求較高之I/O(Input/Output,輸入/輸出)性能。
因此,近來,開始提出主機與儲存裝置之間之新穎之介面。
又,對於近來之儲存裝置,有要求可將不同種類之資料寫入至不同之寫入目標塊之情形。
然而,若可同時利用之寫入目標塊之數量增加,則需要保持於寫入緩衝區之資料量增加,因此,寫入緩衝區所消耗之記憶體資源量增加。通常,可用作寫入緩衝區之記憶體資源量有限,故而要求實現旨在可削減寫入緩衝區所消耗之記憶體資源量之技術。
本發明之實施形態提供一種可謀求削減寫入緩衝區所消耗之記憶體資源量之記憶體系統及其控制方法。
根據實施形態,可連接於主機之記憶體系統具備:非揮發性記憶體,其包含複數個塊;以及控制器,其電性連接於上述非揮發性記憶體,且構成為管理自上述複數個塊分配之複數個寫入目標塊,針對每個寫入目標塊按照自開頭頁至最終頁之順序寫入資料。被寫入至一個寫入目標塊之1頁資料係於對上述一個寫入目標塊之後續1個以上之頁寫入資料之後可讀出。自上述主機接收之寫入請求各者包含指定寫入資料應被寫入之寫入目標塊之塊識別碼。上述控制器係自上述主機接收第1寫入請求,該第1寫入請求包含指定第1寫入資料應寫入之第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(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對該寫入請求中所包含之具有該塊識別碼之寫入目標塊寫入來自主機2之資料(寫入資料)。因此,主機2可指定資料應寫入之特定寫入目標塊。例如,主機2可對儲存裝置3請求將來自某最終使用者終端61(客戶端)之資料寫入至對應於該最終使用者終端61之1個以上之特定寫入目標塊,亦可對儲存裝置3請求將來自其他最終使用者終端61(客戶端)之資料寫入至對應於該最終使用者終端61之1個以上之其他特定寫入目標塊。
自該主機2送出之寫入請求中所包含之塊識別碼亦可由指定特定寫入目標塊之塊位址(塊編號)表示。或者,於快閃儲存裝置3包含複數個NAND型快閃記憶體晶片之實例中,該塊識別碼亦可由塊位址(塊編號)與晶片編號之組合表示。
由快閃儲存裝置3管理之複數個寫入目標塊可被共有該快閃儲存裝置3之複數個最終使用者(客戶端)分別使用。於此情形時,於快閃儲存裝置3中,開放與共有快閃儲存裝置3之最終使用者之數量相同數量或超出其上之數量之寫入目標塊。
然而,若可同時利用之寫入目標塊之數量增加,則需要保持於寫入緩衝區之資料量增加,因此,寫入緩衝區所消耗之記憶體資源量增加。
因此,於本實施形態中,快閃儲存裝置3執行用於削減寫入緩衝區所消耗之記憶體資源量之動作。於本實施形態中,可將主機2之記憶體上之特定記憶區域用作寫入緩衝區,或者亦可將快閃儲存裝置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係資料寫入動作及資料讀入動作之單位。
控制器4係經由如觸發器(Toggle)、開放式NAND快閃介面(ONFI,Open NAND Flash Interface)般之NAND介面13而電性連接於作為非揮發性記憶體之NAND型快閃記憶體5。控制器4係作為以控制NAND型快閃記憶體5之方式構成之記憶體控制器動作。該控制器4亦可藉由如晶片上系統(SoC,System-on-a-chip)般之電路實現。
如圖3所示,NAND型快閃記憶體5亦可包含複數個NAND型快閃記憶體晶片(NAND型快閃記憶體裸片)。各NAND型快閃記憶體晶片可獨立地動作。因此,NAND型快閃記憶體晶片作為可並行動作之單位發揮功能。於圖3中,例示了於NAND介面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)。
寫入目標塊可為一個物理塊,亦可為一個超級塊。再者,亦可利用一個超級塊僅包含一個物理塊之構成,於此情形時,一個超級塊與一個物理塊等效。
其次,對圖2之控制器4之構成進行說明。
控制器4包含主機介面11、CPU(Central Processing Unit,中央處理器)12、NAND介面13及DRAM介面14等。該等CPU12、NAND介面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、NAND介面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發揮功能。
寫入動作控制部21係對自NAND型快閃記憶體5之複數個塊分配之複數個寫入目標塊進行管理,且針對每個寫入目標塊按照自開頭頁至最終頁之順序寫入資料。
於複數個NAND型快閃記憶體中,被寫入至一個寫入目標塊之1頁資料無法於其剛寫入後便自寫入目標塊讀出,而可於對該寫入目標塊之後續1個以上之頁寫入資料之後讀出。
例如,於藉由包含第1階段及第2階段之多階段編程動作而執行對寫入目標塊之各頁寫入資料之實例中,藉由第1階段之編程動作而寫入至寫入目標塊內之某頁(第1頁)之資料可於藉由第1階段之編程動作將資料寫入至後續1個以上之頁之後讀出。其原因在於,於藉由第1階段之編程動作對後續1個以上之頁寫入資料之前,無法執行針對第1頁之第2階段之編程動作。因此,即便藉由第1階段之編程動作對寫入目標塊之第1頁寫入資料,該資料亦無法於其剛寫入之後便自寫入目標塊讀出,而可於藉由第1階段之編程動作對後續1個以上之頁寫入了資料之後讀出。
作為此種多階段編程動作之示例,可列舉模糊至精細編程動作。於模糊至精細編程動作中,對連接於相同字元線之記憶胞群之資料寫入係藉由粗略地設定各記憶胞之閾值分佈之模糊編程動作、及調整各記憶胞之閾值分佈之精細編程動作而執行。為了減少相鄰之字元線間之編程干擾,對連接於某字元線之記憶胞群之精細編程動作係於執行了對連接於相鄰之字元線之記憶胞群之模糊編程動作之後執行。
因此,於藉由模糊至精細編程動作寫入資料之實例中,即便對連接於寫入目標塊內之最初之字元線(WL0)之記憶胞群執行模糊編程動作,亦無法於對連接於該寫入目標塊內之下一字元線(WL1)之記憶胞群之模糊編程動作結束之前,對連接於最初之字元線(WL0)之記憶胞群執行精細編程動作。因此,至少於對連接於下一字元線(WL1)之記憶胞群之模糊編程動作結束之前,無法讀出被寫入至連接於最初之字元線(WL0)之記憶胞群之頁資料。
寫入動作控制部21自主機2接收寫入請求,該寫入請求包含指定寫入資料應寫入之寫入目標塊之塊識別碼。於寫入動作控制部21自主機2接收到該寫入請求時,寫入動作控制部21自寫入緩衝區(WB)獲得與該寫入請求對應之寫入資料。該寫入緩衝區(WB)係暫時保持與各寫入請求對應之寫入資料之緩衝區。與某寫入請求對應之寫入資料被保持於寫入緩衝區(WB),直至該寫入資料可自NAND型快閃記憶體5讀出為止。該寫入緩衝區(WB)既可藉由設置於主機2之記憶體上之寫入緩衝區(WB)45而實現,亦可藉由DRAM6上之寫入緩衝區(WB)31而實現。
寫入動作控制部21將所獲取之寫入資料寫入至具有由所接收到之寫入請求指定之塊識別碼之寫入目標塊內之頁(寫入目標頁)。寫入請求包含塊識別碼(塊位址),但不包含頁位址。寫入目標頁係由寫入動作控制部21自動地決定。
寫入動作控制部21將被寫入有寫入資料之頁之頁位址通知給主機2。
又,寫入動作控制部21使接下來資料應寫入之該寫入目標塊內之頁位址增加1頁。繼而,寫入動作控制部21將寫入緩衝區內之區域釋放,該寫入緩衝區內之區域儲存有可藉由對寫入目標頁寫入寫入資料而自寫入目標塊讀出之先於該寫入目標頁之該寫入目標塊內之頁的資料。此處,所謂先於寫入目標頁之頁意指關於寫入目標塊之頁寫入順序,於該寫入目標頁之前被寫入資料之頁。例如,於藉由對寫入目標塊之第n頁寫入資料,可讀出先於第n頁之該寫入目標塊內之例如第1頁之情形時,儲存有該第1頁之資料之寫入緩衝區內之區域被釋放。同樣地,於藉由對寫入目標塊之第n+1頁寫入資料,可讀出該寫入目標塊內之例如第2頁之情形時,儲存有該第2頁資料之寫入緩衝區內之區域被釋放。
於藉由包含第1階段及第2階段之多階段編程動作而執行對各頁寫入資料之實例中,可藉由對寫入目標塊之寫入目標頁寫入資料而自寫入目標塊讀出之頁係可藉由對寫入目標頁執行第1階段之編程動作而執行第2階段之編程動作之頁。例如,於藉由執行對寫入目標塊之第n頁之第1階段之編程動作(例如模糊編程動作)而可對寫入目標塊之第1頁執行第2階段之編程動作(例如精細編程動作)之情形時,藉由對寫入目標頁寫入資料而可自寫入目標塊讀出之頁為該第1頁。
藉由如此進行釋放儲存有藉由對寫入目標塊內之某寫入目標頁寫入資料而可讀出之、先於該寫入目標頁之該寫入目標塊內之頁的資料之寫入緩衝區內之區域之控制,可將每一寫入目標塊所消耗之寫入緩衝區之量抑制為所需最小限度,藉此可謀求削減寫入緩衝區所消耗之記憶體資源量。
再者,此處假定將1頁之寫入資料(使用者資料)寫入至寫入目標塊之情形,但於將2頁新的寫入資料(使用者資料)寫入至寫入目標塊之情形時,可讀出先前被寫入至該寫入目標塊之2頁資料(使用者資料)。因此,於此情形時,可釋放儲存有該可讀出之2頁資料(使用者資料)之寫入緩衝區內之區域。
同樣地,於已將3頁新的寫入資料(使用者資料)寫入至寫入目標塊之情形時,可讀出先前被寫入至該寫入目標塊之3頁資料(使用者資料)。因此,於此情形時,可將儲存有該可讀出之3頁資料(使用者資料)之寫入緩衝區內之區域釋放。
進而,寫入動作控制部21為了增加寫入緩衝區內之可利用區域,亦視需要執行對寫入目標塊寫入1頁以上之虛設資料之動作。
例如,當寫入緩衝區中已無未使用區域之情形時,寫入動作控制部21亦可對某寫入目標塊內之1個以上之頁寫入虛設資料。藉此,可讀出先前被寫入至該寫入目標塊之1頁以上之資料(使用者資料),且可將儲存有該可讀出之1頁以上之資料(使用者資料)之寫入緩衝區內之區域釋放。由此,可將該寫入緩衝區內之區域用於儲存下一寫入資料(使用者資料)。再者,無需自主機2發佈對虛設資料之讀取請求,故而該虛設資料無需儲存於寫入緩衝區。因此,即便將虛設資料寫入至寫入目標塊,寫入緩衝區亦不會被該虛設資料消耗。
又,寫入動作控制部21係於檢測出未對複數個寫入目標塊之任一個寫入目標塊於每特定期間執行特定頁數之資料(使用者資料或虛設資料)寫入之情形時,亦可對該寫入目標塊內之1個以上之頁寫入虛設資料。於此情形時,例如,寫入動作控制部21亦可判定對某寫入目標塊最後寫入資料(使用者資料或虛設資料)之後之經過時間是否為閾值以上,於經過時間為閾值以上之情形時,亦可對該寫入目標塊內之1個以上之頁寫入虛設資料。結果,可讀出以前被寫入至該寫入目標塊之1頁資料(使用者資料),且可將儲存有該可讀出之1頁以上之資料(使用者資料)之寫入緩衝區內之區域釋放。同樣地,關於其他各寫入目標塊,寫入動作控制部21亦可判定自對該寫入目標塊最後寫入資料(使用者資料或虛設資料)之經過時間是否為閾值以上,於經過時間為閾值以上之情形時,亦可對該寫入目標塊內之1個以上之頁寫入虛設資料。
讀取動作控制部22係自主機2接收讀取請求(讀取指令),該讀取請求(讀取指令)指定表示儲存有應讀取之資料之NAND型快閃記憶體5內之物理記憶位置之物理位址(塊位址、頁位址)。繼而,讀取動作控制部22基於該等塊位址及頁位址,自讀取對象之塊內之讀取對象之物理記憶位置讀取資料。讀取對象之塊係由塊位址特定出。該塊內之讀取對象之物理記憶位置係由頁位址特定出。再者,讀取指令除包含塊位址及頁位址以外,亦可包含頁內偏移。
NAND介面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包含與NAND型快閃記憶體5內之複數個塊分別對應之複數個管理表。各管理表包含複數個有效/無效管理資訊,該複數個有效/無效管理資訊分別與對應於該管理表之塊中所包含之複數個資料對應。各有效/無效管理資訊係表示與該有效/無效管理資訊對應之資料為有效資料或無效資料中之哪一個。不良資訊管理表33係管理不良塊清單。
如上所述,主機2亦可為以執行多種編程之方式構成之資訊處理裝置(例如電腦系統)。由電腦系統執行之編程中包含應用軟體層41、操作系統42、檔案系統43及裝置驅動程序43等。
如通常所知,操作系統42係以如下方式構成之軟體:管理主機2整體,並控制主機2內之硬體,執行用於使應用可使用硬體及快閃儲存裝置3之控制。
檔案系統43係用於進行為實施檔案操作(創建、保存、更新、刪除等)之控制。
多種應用軟體線緒於應用軟體層41上運行。作為應用軟體線緒之示例,有客戶端軟體、資料庫軟體、虛擬機器等。
裝置驅動程序44係於檔案系統43之控制下,控制快閃儲存裝置3。
檔案系統43或裝置驅動程序44亦可包含用於管理作為位址轉換表發揮功能之查找表(LUT)45之快閃記憶體轉換層(FTL)2A。於圖2中,例示了裝置驅動程序44包含快閃記憶體轉換層(FTL)2A之實例。
查找表(LUT)45管理用於識別各個資料之各標籤與表示快閃儲存裝置3(即NAND型快閃記憶體5)內之各物理記憶位置之各物理位址之間之映射。標籤可利用如邏輯塊位址(LBA)般之邏輯位址表示,亦可利用鍵值儲存之鍵表示,還可利用檔案名與檔案偏移之組表示。
主機2之記憶體上之特定記憶區域亦可被用作寫入緩衝區(WB)45(UWB:Unified Write Buffer,統一寫入緩衝區)。於主機2希望對複數個寫入目標塊內之任意寫入目標塊寫入資料時,主機2將應寫入至該寫入目標塊之資料(寫入資料)儲存於寫入緩衝區(WB)45。繼而,主機2將包含指定該寫入目標塊之塊識別碼(塊位址)之寫入請求送出至儲存裝置3。再者,該寫入請求亦可還包含表示儲存有該寫入資料之寫入緩衝區(WB)45內之區域(記憶區域)之記憶位置資訊。
快閃儲存裝置3於將該寫入資料寫入至NAND型快閃記憶體5時,可藉由將包含上述記憶位置資訊之傳送請求送出至主機2而自寫入緩衝區(WB)46獲取上述寫入資料。
圖5係表示由快閃儲存裝置3管理之作用塊池、自由塊池及複數個寫入目標塊之關係。
NAND型快閃記憶體5內之各塊之狀態被大致分為儲存有有效資料之作用塊、及未儲存有效資料之自由塊。作為作用塊之各塊係由被稱為作用塊池51之清單加以管理。另一方面,作為自由塊之各塊係由被稱為自由塊池52之清單加以管理。
所謂有效資料意指與某標籤建立關聯之資料(與該標籤建立關聯之最新資料)。所謂無效資料係指未與任何標籤建立關聯之資料。
於快閃儲存裝置3之控制器4自主機2接收到塊分配請求時,控制器4係從自由塊池52內之複數個自由塊選擇1個自由塊,且將所選擇出之自由塊分配為可寫入自主機2接收到之寫入資料之寫入目標塊。每當自主機2接收到塊分配請求時,控制器4便執行從自由塊池52內之複數個自由塊選擇1個自由塊之動作、及將所選擇出之自由塊分配為寫入目標塊之動作。藉此,於快閃儲存裝置3中,同時存於複數個可利用之寫入目標塊。於圖5中,假定了塊BLK11、BLK12、BLK13、…被分配為寫入目標塊之情形。
於分配寫入目標塊之處理中,控制器4首先對從自由塊池52內之複數個自由塊選擇出之一個塊(自由塊)執行刪除動作,藉此使該塊為可寫入之刪除狀態。經分配之各寫入目標塊之塊識別碼(塊位址)自控制器4被通知給主機2。主機2選擇當前所分配之複數個寫入目標塊BLK11、BLK12、BLK13、…之一個,並將包含指定所選擇之寫入目標塊之塊識別碼(塊位址)之寫入請求送出至快閃儲存裝置3,藉此,可對寫入目標塊BLK11、BLK12、BLK13、…內之任意寫入目標塊寫入資料。
若某寫入目標塊整體被來自主機2之寫入資料(使用者資料)填滿,則控制器4使該寫入目標塊移動至作用塊池51。
當作用塊池51內之某塊內之全部有效資料因資料更新、映射釋放、垃圾回收等而無效化時,控制器4使該塊移動至自由塊池52。
圖6係用以說明主機2指定寫入目標塊且快閃儲存裝置3決定寫入目標頁之資料寫入動作、及主機2指定塊位址及頁位址之資料讀出動作之圖。
主機2包含以將塊分配請求及寫入請求送出至快閃儲存裝置3之方式構成之寫入處理部412。該寫入處理部412亦可包含於圖2中所說明之FTL2A內。
快閃儲存裝置3之控制器4包含塊分配部701及頁分配部702。塊分配部701及頁分配部702亦可包含於圖2中所說明之寫入動作控制部21內。
資料寫入動作係按照以下順序執行。 (1)當主機2之寫入處理部412需要對快閃儲存裝置3寫入資料(寫入資料)時,寫入處理部412亦可對快閃儲存裝置3請求分配自由塊。快閃儲存裝置3之控制器4包含管理NAND型快閃記憶體5之自由塊群之塊分配部701。於塊分配部701自寫入處理部412接收到該請求(塊分配請求)時,塊分配部701將自由塊群之一個自由塊分配至主機2,且將所分配之塊之塊位址(BLK#)通知給主機2。 (2)寫入處理部412將包含識別寫入資料之標籤(例如LBA般之邏輯位址)及指定寫入目標塊之塊位址(BLK#)之寫入請求發送至快閃儲存裝置3。 (3)快閃儲存裝置3之控制器4包含分配資料寫入用頁之頁分配部702。於頁分配部702接收到寫入請求時,頁分配部702決定表示具有由寫入請求指定之塊位址之塊(寫入目標塊)內之寫入目標頁的頁位址。控制器4對寫入目標塊內之該已決定之寫入目標頁寫入來自主機2之寫入資料。 (4)控制器4將表示該寫入目標頁之頁位址作為對寫入請求之應答而通知給主機2。或者,控制器4亦可將寫入請求中所包含之標籤、寫入請求中所包含之塊位址與已決定之頁位址之組,作為對寫入請求之應答而通知給主機2。於主機2中,以將表示被寫入有寫入資料之物理記憶位置之物理位址(塊位址、頁位址)映射至該寫入資料之標籤之方式更新LUT2B。
資料讀取動作係按照以下順序執行。 (1)'當主機2需要自快閃儲存裝置3讀取資料時,主機2藉由參照LUT2B,而自LUT411獲取與應讀取之資料之標籤對應之物理位址(塊位址、頁位址)。 (2)'主機2將所獲取之指定塊位址及頁位址之讀取請求送出至快閃儲存裝置3。於快閃儲存裝置3之控制器4自主機2接收到該讀取請求時,控制器4基於塊位址及頁位址,自讀取對象之塊內之讀取對象之物理記憶位置讀取資料。
圖7係表示快閃儲存裝置3中所應用之塊分配指令。
塊分配指令係對快閃儲存裝置3請求分配寫入目標塊(自由塊)之指令(塊分配請求)。主機2藉由將塊分配指令發送至快閃儲存裝置3,而對快閃儲存裝置3請求分配寫入目標塊,藉此可獲取塊位址(經分配之寫入目標塊之塊位址)。
圖8係表示對塊分配指令之應答。
於自主機2接收到塊分配指令時,快閃儲存裝置3從自由塊清單選擇應分配至主機2之自由塊,且將所選擇之自由塊分配為寫入目標塊,繼而將包含該寫入目標塊之塊位址之應答送回至主機2。
圖9係表示快閃儲存裝置3中所應用之寫入指令。
寫入指令係對快閃儲存裝置3請求寫入資料之指令。該寫入指令亦可包含指令ID(Identifier,識別碼)、塊位址、標籤及長度等。
指令ID係表示該指令為寫入指令之ID(指令碼),寫入指令中包含寫入指令用指令ID。
塊位址係指定資料應寫入之寫入目標塊之物理位址。
標籤係用以識別應被寫入之寫入資料之識別碼。如上所述,該標籤可為如LBA般之邏輯位址,亦可為鍵值儲存之鍵。於標籤為如LBA般之邏輯位址之情形時,該寫入指令中所包含之邏輯位址(起始LBA)係表示寫入資料應寫入之邏輯位址空間內之邏輯位置(最初邏輯位置)。
長度係表示應被寫入之寫入資料之長度。
於自主機2接收到寫入指令時,控制器4決定具有由寫入指令指定之塊位址之寫入目標塊內之寫入目標位置(寫入目標頁)。該寫入目標頁係考慮頁寫入順序之制約及壞頁等而決定。繼而,控制器4將來自主機2之資料寫入至該寫入目標塊內之該寫入目標位置(寫入目標頁)。
圖10係表示對圖9之寫入指令之應答。
該應答包含頁位址及長度。頁位址係表示已寫入有資料之寫入目標塊內之物理記憶位置之物理位址。該物理位址亦可利用塊內偏移(即頁位址與頁內偏移之組)表示。長度表示已寫入之資料之長度。
或者,該應答不僅包含頁位址(塊內偏移)及長度,還包含標籤及塊位址。標籤係圖9之寫入指令中所包含之標籤。塊位址係圖9之寫入指令中所包含之塊位址。
圖11係表示快閃儲存裝置3中所應用之讀取指令。
讀取指令係對快閃儲存裝置3請求讀出資料之指令。該讀取指令包含指令ID、標籤、塊位址、頁位址及長度。
指令ID係表示該指令為讀取指令之ID(指令碼),讀取指令中包含讀取指令用指令ID。
塊位址指定儲存有應讀取之資料之塊。頁位址指定儲存有應讀取之資料之頁。該頁位址亦可由表示儲存有應讀取之資料之塊內之物理記憶位置的塊內偏移(即頁位址與頁內偏移之組)表示。長度表示應讀取之資料之長度。
圖12係表示由主機2及快閃儲存裝置3執行之寫入處理之序列。
主機2首先藉由將塊分配指令發送至快閃儲存裝置3而對快閃儲存裝置3請求分配寫入目標塊。於對已分配之寫入目標塊寫入資料之情形時,主機2亦可不將塊分配指令發送至快閃儲存裝置3。
繼而,主機2將包含識別寫入資料之標籤、指定寫入資料應寫入之寫入目標塊之塊位址、及寫入資料之長度之寫入指令發送至快閃儲存裝置3(步驟S20)。
當快閃儲存裝置3之控制器4接收到該寫入指令時,控制器4決定具有由該寫入指令指定之塊位址之寫入目標塊內之寫入目標頁,且自寫入緩衝區(WB)獲取寫入資料,對該寫入目標塊內之該已決定之寫入目標頁寫入寫入資料(步驟S11)。於寫入緩衝區(WB)藉由設置於主機2之記憶體上之寫入緩衝區(WB)45而實現之情形時,寫入指令亦可包含表示儲存有寫入資料之寫入緩衝區內之位置(區域)之記憶位置資訊。控制器4藉由將包含該記憶位置資訊之傳送請求送出至主機2,可自設置於主機2之記憶體上之寫入緩衝區(WB)45獲取寫入資料。
控制器4將對該寫入指令之應答送回至主機2(步驟S12)。該應答至少包含已寫入有該資料之頁位址(例如頁位址與頁內偏移之組)。
於主機2接收到該應答時,主機2藉由將由主機2管理之LUT2B更新,而將表示已寫入有寫入資料之物理記憶位置之物理位址(塊位址、頁位址、頁內偏移之組)映射至寫入資料之標籤(步驟S21)。
進而,控制器4將寫入緩衝區(WB)內之區域釋放,該寫入緩衝區(WB)內之區域特定出可藉由對寫入目標塊內之寫入目標頁寫入寫入資料而自該寫入目標塊讀出之先於該寫入目標頁之該寫入目標塊內之頁,且儲存有該被特定出之頁之資料(步驟S13)。於藉由包含第1階段及第2階段之多階段編程動作而執行對寫入目標塊之各頁寫入資料之實例中,該可讀出之頁係可藉由對該寫入目標頁執行第1階段之編程動作而執行第2階段之編程動作之頁。
將寫入緩衝區(WB)內之該區域釋放之處理例如既可於應寫入至該被特定出之頁之資料自寫入緩衝區(WB)被傳送至NAND型快閃記憶體5之頁緩衝區之時間點執行,亦可於對該被特定出之頁執行第2階段之編程動作(例如精細編程動作)之後執行。
於寫入緩衝區(WB)係藉由設置於主機2之記憶體上之寫入緩衝區(WB)45而實現之情形時,於步驟S13中,控制器4對主機2送出用於將儲存有可讀出之頁之資料之寫入緩衝區(WB)45內的該區域釋放之請求。
圖13係表示將寫入緩衝區內之區域釋放之動作,該寫入緩衝區內之區域儲存有可藉由對某寫入目標塊寫入資料而自該寫入目標塊讀出之資料。
於寫入緩衝區(WB)31(或45)中,儲存有與各寫入請求對應之寫入資料。寫入緩衝區(WB)31(或45)包含用於儲存複數頁資料之複數個區域。於圖13中,為了簡化圖示,例示有寫入緩衝區(WB)31(或45)包含區域101~109之情形。該等區域101~109之各者具有1頁之尺寸。
於寫入緩衝區(WB)之區域101~109中所儲存之寫入資料D1、D2、D3為應寫入至寫入目標塊BLK11之寫入資料之情形時,該等寫入資料D1、D2、D3例如分別被寫入至寫入目標塊BLK11之頁P0、頁P1、頁P2。
於寫入緩衝區(WB)之區域107、108、104、105中所儲存之寫入資料D11、D12、D13、D14為包含應寫入至寫入目標塊BLK12之寫入資料之情形時,該等寫入資料D11、D12、D13、D14例如分別被寫入至寫入目標塊BLK12之頁P0、頁P1、頁P2、頁P3。
於各寫入目標塊中,即便對開頭頁P0寫入有資料,亦無法自該頁P0直接讀出資料,而可於對後續之若干個頁執行資料寫入之後,自該頁P0讀出資料。同樣地,即便對頁P1寫入有資料,亦無法自該頁P1直接讀出資料,而可於對後續之若干個頁執行資料寫入之後,自該頁P1讀出資料。
此處,作為示例,假定於對後續於頁P0之頁P1~P3寫入資料之後,可自先於該等頁P1~P3之頁P0讀出資料之實例。
於此情形時,於控制器4將寫入資料D14寫入至寫入目標塊BLK12之頁P3之後,控制器4將寫入緩衝區(WB)內之區域107釋放,該區域107儲存有可藉由寫入資料D14之寫入而讀出之先於頁P3之寫入目標塊BLK12內之頁P0之寫入資料D11。藉此,被釋放之區域107可用於儲存新穎之寫入資料。
圖14係表示寫入緩衝區(WB)內之複數個區域全部被用於保持寫入資料之狀態。
於圖14中,寫入緩衝區(WB)之區域101~109係用以儲存被寫入至寫入目標塊BLK11之寫入資料D1、D2、D3、被寫入至寫入目標塊BLK12之寫入資料D12、D13、D14、及被寫入至寫入目標塊BLK13之寫入資料D21、D22、D23。
如此,於在寫入緩衝區(WB)不存在未使用區域之狀態下,主機2無法將新穎之寫入資料儲存至寫入緩衝區(WB)。
於此情形時,如圖15所示,控制器4例如對寫入目標塊BLK12之1個以上之頁寫入虛設資料。
藉由對寫入目標塊BLK12之頁P4寫入虛設資料,可讀出先於頁P4之寫入目標塊BLK12內之某頁之資料。此處,假定可自寫入目標塊BLK12讀出寫入目標塊BLK12之頁P1之寫入資料D12之情形。於此情形時,控制器4將儲存有寫入資料D12之寫入緩衝區(WB)內之區域108釋放。
同樣地,藉由對寫入目標塊BLK12之頁P5寫入虛設資料,可讀出先於頁P4之寫入目標塊BLK12內之某頁之資料。此處,假定可自寫入目標塊BLK12讀出寫入目標塊BLK12之頁P2之寫入資料D13之情形。於此情形時,控制器4將儲存有寫入資料D13之寫入緩衝區(WB)內之區域104釋放。
主機2可將新穎之寫入資料儲存至寫入緩衝區(WB)內之區域108或區域104。
其次,參照圖16,說明藉由包含第1階段及第2階段之多階段編程動作對寫入目標塊之各頁寫入資料之動作之示例。
於圖16中,假定了NAND型快閃記憶體5為對每一記憶胞寫入3位元之資料之三層單元(TLC)-快閃記憶體之情形。又,於圖16中,假定一面沿著相鄰之2條字元線往返移動,一面執行多階段編程動作(此處為模糊至精細編程動作)之情形。 (1)控制器4對字元線WL0之頁P0、P1、P2執行第1階段之編程動作(模糊編程動作(亦稱為模糊寫入動作)。即便對頁P0、P1、P2之第1階段之編程動作(模糊編程動作)結束,亦無法於對字元線WL1之頁P3、P4、P5執行第1階段之編程動作(模糊編程動作)之前,對頁P0、P1、P2執行第2階段之編程動作(精細編程動作(亦稱為精細寫入動作))。因此,於對頁P0、P1、P2之第1階段之編程動作(模糊編程動作)已結束之階段,無法讀出頁P0、P1、P2之資料。 (2)(3)當對頁P0、P1、P2之第1階段之編程動作(模糊編程動作)結束時,控制器4對字元線WL1之頁P3、P4、P5執行第1階段之編程動作(模糊編程動作)。當對字元線WL1之頁P3、P4、P5之第1階段之編程動作(模糊編程動作)結束時,可對頁P0、P1、P2執行第2階段之編程動作(精細編程動作),藉此可讀出頁P0、P1、P2之資料。 (4)(5)當對頁P0、P1、P2之第2階段之編程動作(精細編程動作)結束時,控制器4執行對字元線WL2之頁P6、P7、P8之第1階段之編程動作(模糊編程動作)。當對字元線WL2之頁P6、P7、P8之第1階段之編程動作(模糊編程動作)結束時,可執行對頁P3、P4、P5之第2階段之編程動作(精細編程動作),藉此可讀出頁P3、P4、P5之資料。
圖17之時序圖係按照時間序列順序表示圖16之編程動作。
控制器4首先執行對頁P0、P1、P2之第1階段之編程動作(模糊編程動作),繼而執行對後續之頁P3、P4、P5之第1階段之編程動作(模糊編程動作)。藉由對後續之頁P3、P4、P5之第1階段之編程動作(模糊編程動作),而可執行對先行之頁P0、P1、P2之第2階段之編程動作(精細編程動作),故而藉由對頁P3、P4、P5之第1階段之編程動作(模糊編程動作),可讀出先行之頁P0、P1、P2之資料。繼而,例如當執行對頁P5之模糊編程動作時,控制器4將下一個應寫入資料之頁位址增加1頁而設為頁P6。
繼而,控制器4於執行對先行之頁P0、P1、P2之第2階段之編程動作(精細編程動作)之後,執行對後續之頁P6、P7、P8之第1階段之編程動作(模糊編程動作)。
由於藉由對後續之頁P6、P7、P8之第1階段之編程動作(模糊編程動作)而可執行對先行之頁P3、P4、P5之第2階段之編程動作(精細編程動作),故而藉由對頁P6、P7、P8之第1階段之編程動作(模糊編程動作),可讀出先行之頁P3、P4、P5之資料。
即,於控制器4自主機2接收到包含塊位址之寫入請求之情形時,控制器4自寫入緩衝區獲取與該寫入請求對應之寫入資料,藉由第1階段之編程動作(模糊編程動作)而將該寫入資料寫入至具有寫入請求內所包含之塊位址之寫入目標塊內之寫入目標頁。繼而,控制器4藉由將應答送回至主機2,而將已被寫入該寫入資料之寫入目標頁之頁位址通知給主機2。繼而,控制器4將下一個應寫入資料之該寫入目標塊內之頁位址增加1頁。繼而,控制器4釋放儲存有如下資料之寫入緩衝區內之區域,該資料係藉由執行根據對寫入目標頁之第1階段之編程動作(模糊編程動作)而可執行之第2階段之編程動作(精細編程動作)而讀出,且為先於寫入目標頁之該寫入目標塊內之頁的資料。
圖18之流程圖係表示寫入緩衝區(WB)中已無未使用區域之情形時,由快閃儲存裝置3執行之虛設資料寫入動作之順序。
快閃儲存裝置3之控制器4判定寫入緩衝區(WB)中是否存在未使用區域(空閒區域)(步驟S101)。若寫入緩衝區(WB)之複數個區域全部被向當前開放之複數個寫入目標塊之寫入資料填滿、即於寫入緩衝區(WB)中不存在未使用區域(空閒區域)(步驟S101為否(NO)),則控制器4自複數個寫入目標塊中選擇出應寫入虛設資料之寫入目標塊(步驟S102)。例如,控制器4亦可自複數個寫入目標塊中選擇出保持著最舊之資料(最長時間未更新之資料)之寫入目標塊作為應寫入虛設資料之寫入目標塊。
控制器4對所選擇之寫入目標塊內之1個以上之頁寫入虛設資料(步驟S103),使接下來資料應寫入之該寫入目標塊內之頁位址增加1個以上之頁的數量(即已寫入之虛設資料之頁數)(步驟S104)。於步驟S104中,於已寫入1頁虛設資料之情形時,頁位址增加1頁,於已寫入2頁虛設資料之情形時,頁位址增加3頁。
控制器4將寫入緩衝區(WB)內之1個以上之區域釋放,該寫入緩衝區(WB)內之1個以上之區域儲存有可藉由1個以上之頁之虛設資料之寫入而自該寫入目標塊讀出之先於已寫入有該虛設資料之1個以上之頁的1個以上之頁之資料(步驟S104)。
於藉由多階段編程動作執行對各頁之資料寫入之實例中,於在寫入緩衝區中不存在未使用區域之情形時,控制器4藉由第1階段之編程動作(模糊編程動作)而對複數個寫入目標塊之1個寫入目標塊內之1個以上之頁寫入虛設資料,使接下來資料應寫入之該寫入目標塊內之頁位址增加已寫入有虛設資料之1個以上之頁的數量。繼而,控制器4將寫入緩衝區內之1個以上之區域釋放,該寫入緩衝區內之1個以上之區域儲存有可藉由執行第2階段之編程動作(精細編程動作)而讀出之先於該1個以上之頁之該寫入目標塊內的1個以上之頁之資料,該第2階段之編程動作(精細編程動作)可藉由虛設資料之第1階段之編程動作而執行。
再者,於可讀出除虛設資料以外之該寫入目標塊內之全部資料之情形時,控制器4停止對該寫入目標塊寫入虛設資料。例如,於圖15中,於對寫入目標塊BLK12之複數個頁寫入虛設資料,藉此可讀出除虛設資料以外之該寫入目標塊BLK12內之全部資料(使用者資料)D11、D12、D13、D14之情形時,控制器4停止進一步對該寫入目標塊寫入虛設資料。
圖19之流程圖係表示於檢測出未每特定期間地執行特定頁數之資料寫入之情形時,由快閃儲存裝置3執行之虛設資料寫入動作之順序。
快閃儲存裝置3之控制器4選擇當前開放之複數個寫入目標塊中之一個(步驟S201)。控制器4判定是否自對該所選擇之塊最後寫入資料(使用者資料或虛設資料)之後經過了閾值時間(步驟S202)。
若未自最後寫入資料(使用者資料或虛設資料)之後經過閾值時間(步驟S202為否),則控制器4判定對所有寫入目標塊之步驟S202之檢查處理是否結束(步驟S206),若未結束(步驟S206為否),則進入至步驟S201,於步驟S201中選擇下一寫入目標塊。
若自最後寫入資料(使用者資料或虛設資料)之後經過了閾值時間(步驟S202為是(YES)),則控制器4判定該所選擇之塊係每特定期間地執行特定頁數之資料之寫入之塊,為了使該所選擇之塊整體於特定之限制時間內被資料填滿而對該所選擇之寫入目標塊內之1個以上之頁寫入虛設資料(步驟S203)。繼而,控制器4使接下來資料應寫入之該寫入目標塊內之頁位址增加1個以上之頁之數量(即已寫入之虛設資料之頁數)(步驟S204)。於步驟S204中,例如,於將1頁虛設資料寫入至該所選擇之塊之情形時,頁位址增加1頁,於將2頁虛設資料寫入至該所選擇之塊之情形時,頁位址增加2頁,於將3頁虛設資料寫入至該所選擇之塊之情形時,頁位址增加3頁。繼而,控制器4將寫入緩衝區內之1個以上之區域釋放,該寫入緩衝區內之1個以上之區域儲存有可藉由寫入虛設資料而自該所選擇之寫入目標塊讀出之先於已寫入有虛設資料之1個以上之頁的該所選擇之寫入目標塊內之1個以上之頁的資料(步驟S205)。繼而,控制器4判定對所有寫入目標塊之步驟S202之檢查處理是否已結束(步驟S206),若未結束(步驟S206為否),則進入至步驟S201,於步驟S201中選擇下一寫入目標塊。
於藉由多階段編程動作而執行對各頁之資料寫入之實例中,於自對某寫入目標塊最後寫入資料之後經過了閾值時間之情形時,控制器4藉由第1階段之編程動作(模糊編程動作)而對該寫入目標塊內之1個以上之頁寫入虛設資料,使接下來資料應寫入之該寫入目標塊內之頁位址增加已寫入有虛設資料之1個以上之頁之數量。繼而,控制器4將寫入緩衝區內之1個以上之區域釋放,該寫入緩衝區內之1個以上之區域儲存有可藉由執行第2階段之編程動作(精細編程動作)而讀出之先於該1個以上之頁之該寫入目標塊內的1個以上之頁之資料,該第2階段之編程動作(精細編程動作)可藉由虛設資料之第1階段之編程動作而執行。
再者,於可讀出除虛設資料以外之該寫入目標塊內之全部資料之情形時,控制器4亦可停止對該寫入目標塊寫入虛設資料。例如,於圖15中,於對寫入目標塊BLK12之複數個頁寫入虛設資料,藉此可讀出除虛設資料以外之該寫入目標塊BLK12內之全部資料(使用者資料)D11、D12、D13、D14之情形時,控制器4亦可停止進一步對該寫入目標塊寫入虛設資料。
圖20係表示由快閃儲存裝置3管理之寫入順序管理表之構成例。
控制器4對與複數個寫入目標塊對應之複數個寫入順序管理表進行管理。各寫入順序管理表保持與對應於該寫入順序管理表之寫入目標塊內之複數個頁對應的複數個寫入完成標誌。
複數個寫入完成標誌分別表示是否對與該標誌對應之頁寫入了資料。與已寫入有資料之頁對應之寫入完成標誌被設定為表示已寫入資料之值(例如「1」)。與未被寫入資料之頁對應之寫入完成標誌被設定為表示未被寫入資料之值(例如「0」)。
於已對某寫入目標塊之頁P0、P1、P2寫入資料之情形時,如圖20所示,控制器4將與該寫入目標塊對應之寫入順序管理表予以更新,將與頁P0對應之寫入完成標誌、與頁P1對應之寫入完成標誌、及與頁P2對應之寫入完成標誌分別設定為表示已寫入資料之值(例如「1」)。
於控制器4已對該寫入目標塊之頁P3、P4、P5寫入虛設資料之情形時,控制器4將與該寫入目標塊對應之寫入順序管理表予以更新,將與頁P3對應之寫入完成標誌、與頁P4對應之寫入完成標誌、及與頁P5對應之寫入完成標誌分別設定為表示已寫入資料之值(例如「1」)。
虛設資料無需被主機2讀取,故而虛設資料未被儲存至寫入緩衝區中。於虛設資料已被寫入至寫入目標塊之1個以上之頁之情形時,與該1個以上之頁對應之1個以上之寫入完成標誌分別被設定為表示已寫入資料之值(例如「1」)。因此,即便於控制器4已將虛設資料寫入至任一寫入目標塊之情形時,控制器4亦可藉由參照各寫入順序管理表而正確地管理各寫入目標塊之頁寫入順序。
如以上所作說明般,根據本實施形態,控制器3對複數個寫入目標塊進行管理,且將資料寫入至具有由來自主機2之寫入請求所指定之塊識別碼之寫入目標塊。如此,利用主機2可指定寫入目標塊之構成,例如可實現將與不同之最終使用者建立關聯之資料寫入至不同之寫入目標塊的控制。又,控制器4進行將寫入緩衝區內之區域釋放之控制,該寫入緩衝區內之區域儲存有可藉由對某寫入目標塊內之某寫入目標頁寫入資料而讀出之先於該寫入目標頁之該寫入目標塊內之頁之資料。藉此,於存於複數個寫入目標塊之環境中,例如可進行如下等緩衝區管理:將儲存有某寫入目標塊用之寫入資料之寫入緩衝區內之區域釋放,將該區域用於儲存該寫入目標塊用之新穎之寫入資料或其他寫入目標塊用之新穎之寫入資料。由此,可將每一寫入目標塊所消耗之寫入緩衝區之量抑制為所需最小限度,故而即便於存於複數個寫入目標塊之環境中,亦可謀求削減寫入緩衝區所消耗之記憶體資源量。
進而,控制器4亦執行對寫入目標塊寫入1頁以上之虛設資料之動作。藉此,可容易地增加寫入緩衝區內之可利用區域。
又,於本實施形態中,可於主機2之記憶體上設置寫入緩衝區。因此,控制器4可自主機2之記憶體上之寫入緩衝區獲取寫入資料,故而無需於快閃儲存裝置3準備大容量之寫入緩衝區,便可容易地增加可同時利用之寫入目標塊之數量。由此,可於不會導致快閃儲存裝置3之成本增加之情況下,容易地增加共有快閃儲存裝置3之最終使用者之數量。
再者,本實施形態中所說明之寫入緩衝區之釋放控制不僅應用於在主機2側管理各標籤與各物理位址之間之映射之構成,亦可應用於在快閃儲存裝置3側使用邏輯物理位址轉換表管理各標籤(例如LBA般之邏輯位址)與各物理位址之間之映射之構成。
又,本實施形態中所說明之寫入緩衝區之釋放控制不僅應用於在主機2側決定寫入目標塊之構成,亦可應用於在快閃儲存裝置3側決定寫入目標塊之構成。對於在快閃儲存裝置3側決定寫入目標塊之構成,自主機2發送之各寫入請求亦可不包含塊位址。又,對於在快閃儲存裝置3側決定寫入目標塊之構成,快閃儲存裝置3之控制器4亦可針對每個寫入請求,決定寫入目標塊及寫入目標頁之兩者。
因此,快閃儲存裝置3之控制器4亦可構成為以如下方式動作。
控制器4自暫時保持與各寫入請求對應之寫入資料之寫入緩衝區(WB)獲取與來自主機2之第1寫入請求對應之第1寫入資料。控制器4將第1寫入資料寫入至複數個寫入目標塊中之第1寫入目標塊內之寫入目標頁。繼而,控制器4將寫入緩衝區(WB)內之區域釋放,該寫入緩衝區(WB)內之區域儲存有可藉由對寫入目標頁寫入第1寫入資料而自第1寫入目標塊讀出之先於寫入目標頁之第1寫入目標塊內之頁的資料。將寫入緩衝區(WB)內之該區域釋放之處理例如可於應寫入至先於寫入目標頁之第1寫入目標塊內之該頁之寫入資料自寫入緩衝區(WB)被傳送至NAND型快閃記憶體5之時間點執行,亦可於對該頁執行第2階段之編程動作(例如精細編程動作)之後執行。
又,於本實施形態中,例示了NAND型快閃記憶體作為非揮發性記憶體。然而,本實施形態之功能例如亦可應用於如MRAM(Magnetoresistive Random Access Memory,磁阻式隨機存取記憶體)、PRAM(Phase change Random Access Memory,相變隨機存取記憶體)、ReRAM(Resistive Random Access Memory,電阻式隨機存取記憶體)、或FeRAM(Ferroelectric Random Access Memory,鐵電式隨機存取記憶體)般之其他多種非揮發性記憶體。
已對本發明之若干實施形態進行了說明,但該等實施形態係作為示例而提出,並非意圖限定發明之範圍。該等新穎之實施形態能以其他多種方式實施,可於不脫離發明主旨之範圍內進行各種省略、置換、變更。該等實施形態或其變化包含於發明之範圍或主旨中,並且包含於申請專利範圍中所記載之發明及其均等之範圍內。
[相關申請] 本申請享有以日本專利申請2018-14794號(申請日:2018年1月31日)為基礎申請之優先權。本申請係藉由參照該基礎申請而包含基礎申請之全部內容。
2 主機 2A 快閃記憶體轉換層、寫入緩衝區 2B LUT(查找表) 3 快閃儲存裝置 4 控制器 5 NAND型快閃記憶體 6 動態隨機存取記憶體 10 匯流排 11 主機介面 12 CPU(中央處理器) 13 NAND介面 14 DRAM介面 21 寫入控制部 22 讀取控制部 30 讀取緩衝區 31 寫入緩衝區 32 塊管理表 33 不良資訊管理表 41 應用軟體層 42 操作系統 43 檔案系統 44 裝置驅動程序 45 寫入緩衝區 50 介面 51 網路 51 作用塊池 52 自由塊池 61 最終使用者終端 101 寫入緩衝區之區域 102 寫入緩衝區之區域 103 寫入緩衝區之區域 104 寫入緩衝區之區域 105 寫入緩衝區之區域 106 寫入緩衝區之區域 107 寫入緩衝區之區域 108 寫入緩衝區之區域 109 寫入緩衝區之區域 412 寫入處理部 701 塊分配部 702 頁分配部 BLK0~BLKm-1 塊 BLK# 塊位址 Ch.1~Ch.16 通道 D1、D2、D3 寫入資料 D11、D12、D13、D14 寫入資料 D21、D22、D23 寫入資料 P0~Pn-1 頁 S11 步驟 S12 步驟 S13 步驟 S20 步驟 S21 步驟 S101 步驟 S102 步驟 S103 步驟 S104 步驟 S105 步驟 S201 步驟 S202 步驟 S203 步驟 S204 步驟 S205 步驟 S206 步驟 SB 超級塊 #0 記憶體組 #1 記憶體組 #1~#16 NAND型快閃記憶體晶片 #17~#32 NAND型快閃記憶體晶片
圖1係表示主機與實施形態之記憶體系統(快閃儲存裝置)之關係之方塊圖。 圖2係表示本實施形態之記憶體系統之構成例之方塊圖。 圖3係表示本實施形態之記憶體系統中所使用之複數個通道與複數個NAND型快閃記憶體晶片之關係之方塊圖。 圖4係表示本實施形態之記憶體系統中所使用之某超級塊之構成例之圖。 圖5係表示由本實施形態之記憶體系統管理之作用塊池、自由塊池與複數個寫入目標塊之關係之方塊圖。 圖6係用以說明主機指定寫入目標塊且本實施形態之記憶體系統決定寫入目標頁之資料寫入動作、及主機指定塊位址及頁位址之資料讀出動作之圖。 圖7係用以說明本實施形態之記憶體系統中所應用之塊分配指令(塊分配請求)之圖。 圖8係用以說明對塊分配指令之應答之圖。 圖9係用以說明本實施形態之記憶體系統中所應用之寫入指令之圖。 圖10係用以說明對寫入指令之應答之圖。 圖11係用以說明本實施形態之記憶體系統中所應用之讀取指令之圖。 圖12係表示由主機及本實施形態之記憶體系統執行之寫入處理之順序的序列圖。 圖13係用以說明將寫入緩衝區內之區域釋放之動作之圖,該寫入緩衝區內之區域儲存有可藉由對某寫入目標塊寫入資料而自該寫入目標塊讀出之資料。 圖14係表示寫入緩衝區內之複數個區域全部被用於保持寫入資料之狀態之圖。 圖15係用以說明將寫入緩衝區內之區域釋放之動作之圖,該寫入緩衝區內之區域儲存有可藉由對某寫入目標塊寫入虛設資料而自該寫入目標塊讀出之資料。 圖16係用以說明多階段編程動作之示例之圖。 圖17係按照時間序列順序表示圖16之模糊至精細(Foggy-Fine)編程動作之時序圖。 圖18係表示於寫入緩衝區不存在未使用區域之情形時,由本實施形態之記憶體系統執行之虛設資料寫入動作之順序的流程圖。 圖19係表示於檢測出未每特定期間地執行特定頁數之資料之寫入之情形時,由本實施形態之記憶體系統執行之虛設資料寫入動作之順序的流程圖。 圖20係表示由本實施形態之記憶體系統管理之寫入順序管理表之構成例之圖。
2 主機 2A 快閃記憶體轉換層、寫入緩衝區 2B LUT(查找表) 3 快閃儲存裝置 4 控制器 5 NAND型快閃記憶體 6 動態隨機存取記憶體 10 匯流排 11 主機介面 12 CPU(中央處理器) 13 NAND介面 14 DRAM介面 21 寫入控制部 22 讀取控制部 30 讀取緩衝區 31 寫入緩衝區 32 塊管理表 33 不良資訊管理表 41 應用軟體層 42 操作系統 43 檔案系統 44 裝置驅動程序 45 寫入緩衝區 51 網路 61 最終使用者終端 BLK0~BLKm-1 塊 P0~Pn-1 頁
Claims (18)
- 一種記憶體系統,其係可連接於主機者,且具備:非揮發性記憶體,其包含複數個塊;以及控制器,其電性連接於上述非揮發性記憶體,且構成為管理自上述複數個塊分配之複數個寫入目標塊,針對每個寫入目標塊按照自開頭頁至最終頁之順序寫入資料;且被寫入至一個寫入目標塊之1頁資料係於對上述一個寫入目標塊之後續1個以上之頁寫入資料之後可讀出,自上述主機接收之寫入請求各者包含指定寫入資料應被寫入之寫入目標塊之塊識別碼,上述控制器構成為,自上述主機接收第1寫入請求,該第1寫入請求包含指定第1寫入資料應被寫入之第1寫入目標塊之第1塊識別碼,自暫時保持與各寫入請求對應之寫入資料之寫入緩衝區獲取上述第1寫入資料,將上述第1寫入資料寫入至上述第1寫入目標塊內之寫入目標頁,將已被寫入上述第1寫入資料之上述寫入目標頁之頁位址通知給上述主機,將下一個應寫入資料之上述第1寫入目標塊內之頁位址增加1頁,且釋放儲存有如下資料之上述寫入緩衝區內之區域,該資料係藉由對上述寫入目標頁寫入上述第1寫入資料而可自上述第1寫入目標塊讀出,且為先於上述寫入目標頁之上述第1寫入目標塊內之頁的資料。
- 如請求項1之記憶體系統,其中對各寫入目標塊之各頁之資料寫入係藉由包含第1階段及第2階段之複數個階段之編程動作而執行,先於上述寫入目標頁之上述第1寫入目標塊內之上述頁係因執行對上述寫入目標頁之第1階段之編程動作而可執行第2階段之編程動作之頁。
- 如請求項1之記憶體系統,其中上述控制器構成為,當上述寫入緩衝區中已無未使用區域之情形時,對上述複數個寫入目標塊之1個寫入目標塊內之1個以上之頁寫入虛設資料,將下一個應寫入資料之上述1個寫入目標塊內之頁位址增加已被寫入上述虛設資料的1個以上之頁之數,且釋放儲存有如下資料之上述寫入緩衝區內之區域,該資料係藉由對上述一個寫入目標塊之上述1個以上之頁寫入上述虛設資料而可自上述第1寫入目標塊讀出,且為先於上述1個以上之頁的上述一個寫入目標塊內之1個以上之頁的資料。
- 如請求項1之記憶體系統,其中上述控制器構成為,於檢測出未對上述複數個寫入目標塊之任一個寫入目標塊於每特定期間執行特定頁數之資料寫入之情形時,對上述任一個寫入目標塊內之1個以上之頁寫入虛設資料,將下一個應寫入資料之上述任一個寫入目標塊內之頁位址增加已被寫入上述虛設資料的1個以上之頁之數,且釋放儲存有如下資料之上述寫入緩衝區內之1個以上之區域,該資料係藉由對上述任一個寫入目標塊之上述1個以上之頁寫入上述虛設資料而可自上述任一個寫入目標塊讀出,且為先於上述1個以上之頁的上述任一個寫入目標塊內之1個以上之頁的資 料。
- 如請求項3之記憶體系統,其中上述控制器構成為,管理與上述複數個寫入目標塊對應之複數個寫入順序管理表,各寫入順序管理表保持與對應之寫入目標塊內之複數個頁對應之複數個寫入完成標誌,當已對上述一個寫入目標塊內之1個以上之頁寫入上述虛設資料之情形時,將與已被寫入上述虛設資料之上述1個以上之頁對應的1個以上之寫入完成標誌設定為表示已寫入資料之值。
- 如請求項4之記憶體系統,其中上述控制器構成為,管理與上述複數個寫入目標塊對應之複數個寫入順序管理表,各寫入順序管理表保持與對應之寫入目標塊內之複數個頁對應之複數個寫入完成標誌,當已對上述任一個寫入目標塊內之1個以上之頁寫入上述虛設資料之情形時,將與已被寫入上述虛設資料之上述1個以上之頁對應之寫入完成標誌設定為表示已寫入資料之值。
- 如請求項3之記憶體系統,其中於可讀出除上述虛設資料以外之上述一個寫入目標塊內之全部資料之情形時,上述控制器停止對上述一個寫入目標塊寫入虛設資料。
- 如請求項4之記憶體系統,其中於可讀出除上述虛設資料以外之上述 任一個寫入目標塊內之全部資料之情形時,上述控制器停止對上述任一個寫入目標塊寫入虛設資料。
- 如請求項1之記憶體系統,其中於上述寫入緩衝區存在於上述主機之記憶體上之情形時,上述控制器將用於釋放上述寫入緩衝區內之上述區域之請求送出至上述主機而將上述寫入緩衝區內之上述區域釋放。
- 一種記憶體系統之控制方法,其係管理自非揮發性記憶體中所包含之複數個塊分配之複數個寫入目標塊,且針對每個寫入目標塊按照自開頭頁至最終頁之順序寫入資料者,被寫入至一個寫入目標塊之1頁資料係於對上述一個寫入目標塊之後續1個以上之頁寫入資料之後可讀出,自主機接收之寫入請求各自包含指定寫入資料應寫入之寫入目標塊之塊識別碼;且該記憶體系統之控制方法包括如下步驟:自上述主機接收第1寫入請求,該第1寫入請求包含指定第1寫入資料應被寫入之第1寫入目標塊之第1塊識別碼;自暫時保持與各寫入請求對應之寫入資料之寫入緩衝區獲取上述第1寫入資料;將上述第1寫入資料寫入至上述第1寫入目標塊內之寫入目標頁;將已被寫入上述第1寫入資料之上述寫入目標頁之頁位址通知給上述主機;將下一個應寫入資料之上述第1寫入目標塊內之頁位址增加1頁;以及釋放儲存有如下資料之上述寫入緩衝區內之區域,該資料係藉由對 上述寫入目標頁寫入上述第1寫入資料而可自上述第1寫入目標塊讀出,且為先於上述寫入目標頁之上述第1寫入目標塊內之頁的資料。
- 如請求項10之記憶體系統之控制方法,其中對各寫入目標塊之各頁之資料寫入係藉由包含第1階段及第2階段之複數個階段之編程動作而執行,先於上述寫入目標頁之上述第1寫入目標塊內之上述頁係因執行對上述寫入目標頁之第1階段之編程動作而可執行第2階段之編程動作之頁。
- 如請求項10之記憶體系統之控制方法,其進而包括執行如下動作之步驟:當上述寫入緩衝區中已無未使用區域之情形時,對上述複數個寫入目標塊之1個寫入目標塊內之1個以上之頁寫入虛設資料;將下一個應寫入資料之上述1個寫入目標塊內之頁位址增加已被寫入上述虛設資料的1個以上之頁之數;以及釋放儲存有如下資料之上述寫入緩衝區內之1個以上之區域,該資料係藉由對上述一個寫入目標塊之上述1個以上之頁寫入上述虛設資料而可自上述第1寫入目標塊讀出,且為先於上述1個以上之頁的上述一個寫入目標塊內之1個以上之頁的資料。
- 如請求項10之記憶體系統之控制方法,其進而包括執行如下動作之步驟:於檢測出未對上述複數個寫入目標塊之任一個寫入目標塊於每特定期間執行特定頁數之資料寫入之情形時,對上述任一個寫入目標塊內之1個以上之頁寫入虛設資料;將下一個應寫入資料之上述任一個寫入目標塊內之頁位址增加已被寫入上述虛設資料的1個以上之頁之數;以及釋放儲 存有如下資料之上述寫入緩衝區內之1個以上之區域,該資料係藉由對上述任一個寫入目標塊之上述1個以上之頁寫入上述虛設資料而可自上述任一個寫入目標塊讀出,且為先於上述1個以上之頁的上述任一個寫入目標塊內之1個以上之頁的資料。
- 一種記憶體系統,其係可連接於主機者,且具備:非揮發性記憶體,其包含複數個塊;以及控制器,其電性連接於上述非揮發性記憶體,且構成為管理自上述複數個塊分配之複數個寫入目標塊,針對每個寫入目標塊按照自開頭頁至最終頁之順序寫入資料;對各寫入目標塊之各頁之資料寫入係藉由包含第1階段及第2階段之複數個階段之編程動作而執行,藉由第1階段之編程動作而寫入至一個寫入目標塊之1頁資料,可藉由因執行對上述一個寫入目標塊之後續1個以上之頁之第1階段之編程動作而可執行之對上述1頁之第2階段之編程動作而讀出,自上述主機接收之寫入請求各者包含指定寫入資料應被寫入之寫入目標塊之塊識別碼,上述控制器構成為,自上述主機接收第1寫入請求,該第1寫入請求包含指定第1寫入資料應被寫入之第1寫入目標塊之第1塊識別碼;自暫時保持與各寫入請求對應之寫入資料之寫入緩衝區獲取上述第1寫入資料;藉由第1階段之編程動作而將上述第1寫入資料寫入至上述第1寫入目 標塊內之寫入目標頁;將已被寫入上述第1寫入資料之上述寫入目標頁之頁位址通知給上述主機;將下一個應寫入資料之上述第1寫入目標塊內之頁位址增加1頁;釋放儲存有如下資料之上述寫入緩衝區內之區域,該資料可藉由執行根據對上述寫入目標頁之第1階段之編程動作而可執行之第2階段之編程動作而讀出,且為先於上述寫入目標頁之上述第1寫入目標塊內之頁的資料。
- 如請求項14之記憶體系統,其中上述控制器係當上述寫入緩衝區中已無未使用區域之情形時,藉由第1階段之編程動作對上述複數個寫入目標塊之1個寫入目標塊內之1個以上之頁寫入虛設資料,將下一個應寫入資料之上述1個寫入目標塊內之頁位址增加已被寫入上述虛設資料的1個以上之頁之數,且釋放儲存有如下資料之上述寫入緩衝區內之1個以上之區域,該資料可藉由執行根據上述虛設資料之第1階段之編程動作而可執行之第2階段之編程動作而讀出,且為先於上述1個以上之頁的上述一個寫入目標塊內之1個以上之頁的資料。
- 如請求項14之記憶體系統,其中上述控制器係於檢測出未對上述複數個寫入目標塊之任一個寫入目標塊於每特定期間執行特定頁數之資料寫入之情形時,藉由第1階段之編程動作對上述任一個寫入目標塊內之1個以上之頁寫入虛設資料,將下一個應寫入資料之上述任一個寫入目標塊內之頁位址增加已被寫入上述虛設資料的1個以上之頁之數,且釋放儲存有如 下資料之上述寫入緩衝區內之1個以上之區域,該資料可藉由執行根據上述虛設資料之第1階段之編程動作而可執行之第2階段之編程動作而讀出,且為先於上述1個以上之頁的上述任一個寫入目標塊內之1個以上之頁的資料。
- 一種記憶體系統,其具備:非揮發性記憶體,其包含複數個塊;以及控制器,其電性連接於上述非揮發性記憶體,且構成為管理自上述複數個塊分配之寫入目標塊;且上述控制器構成為:自暫時保持寫入資料之寫入緩衝區獲取第1寫入資料,將上述第1寫入資料寫入至上述寫入目標塊內之與第1字元線連接之記憶胞,自上述寫入緩衝區獲取第2寫入資料,將上述第2寫入資料寫入至:與不同於上述寫入目標塊內之上述第1字元線之第2字元線相連接之記憶胞,並構成為:將上述第1寫入資料寫入至與上述第1字元線連接之記憶胞後,直到將上述第2寫入資料寫入至與上述第2字元線連接之記憶胞為止,不釋放儲存有上述第1寫入資料之上述寫入緩衝區內之區域,而持續保持上述第1寫入資料於上述寫入緩衝區內之區域,上述第1寫入資料係藉由對與上述第2字元線連接之記憶胞之上述第2寫入資料之寫入,而可自上述寫入目標塊讀出,上述控制器因應將上述第2寫入資料寫入至與上述第2字元線連接之 記憶胞,而將儲存有上述第1寫入資料之上述寫入緩衝區內之區域加以釋放。
- 如請求項17之記憶體系統,其中對上述寫入目標塊之與各字元線連接之記憶胞之資料寫入係藉由包含第1階段及第2階段之複數個階段之編程動作而執行,與上述第1字元線連接之記憶胞係因執行對與上述第2字元線連接之記憶胞之第1階段之編程動作而可執行第2階段之編程動作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-014794 | 2018-01-31 | ||
JP2018014794A JP2019133391A (ja) | 2018-01-31 | 2018-01-31 | メモリシステムおよび制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201935223A TW201935223A (zh) | 2019-09-01 |
TWI681331B true TWI681331B (zh) | 2020-01-01 |
Family
ID=67393438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107123707A TWI681331B (zh) | 2018-01-31 | 2018-07-09 | 記憶體系統及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10613796B2 (zh) |
JP (1) | JP2019133391A (zh) |
CN (2) | CN115421661A (zh) |
TW (1) | TWI681331B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019133391A (ja) * | 2018-01-31 | 2019-08-08 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
KR20210028517A (ko) * | 2019-09-04 | 2021-03-12 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20210081641A (ko) * | 2019-12-24 | 2021-07-02 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11205473B2 (en) | 2020-02-04 | 2021-12-21 | Western Digital Technologies, Inc. | Dual SLC/QLC programming and resource releasing |
JP2022125787A (ja) * | 2021-02-17 | 2022-08-29 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR20230019716A (ko) * | 2021-08-02 | 2023-02-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN114040136A (zh) * | 2021-11-05 | 2022-02-11 | 北京京东乾石科技有限公司 | 轨道巡检装置、图像处理方法、装置、设备和介质 |
US11977443B2 (en) * | 2022-08-15 | 2024-05-07 | Micron Technology, Inc. | Dynamic parity scheme |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201423577A (zh) * | 2012-12-11 | 2014-06-16 | Samsung Electronics Co Ltd | 移動裝置和使用交換其的資料管理方法 |
TW201611010A (zh) * | 2014-09-12 | 2016-03-16 | 群聯電子股份有限公司 | 程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
TW201624488A (zh) * | 2014-12-18 | 2016-07-01 | 愛思開海力士有限公司 | 資料儲存裝置及其操作方法 |
TW201729198A (zh) * | 2016-02-01 | 2017-08-16 | 愛思開海力士有限公司 | 記憶體系統及其操作方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576333B (zh) * | 2009-10-05 | 2016-01-13 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
JP6072428B2 (ja) * | 2012-05-01 | 2017-02-01 | テセラ アドバンスト テクノロジーズ インコーポレーテッド | 制御装置、記憶装置、記憶制御方法 |
US9032235B2 (en) * | 2012-07-31 | 2015-05-12 | Kabushiki Kaisha Toshiba | Semiconductor storage device and method for controlling the semiconductor storage device |
US20150254188A1 (en) * | 2014-03-10 | 2015-09-10 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
US10013177B2 (en) | 2015-04-20 | 2018-07-03 | Hewlett Packard Enterprise Development Lp | Low write amplification in solid state drive |
US10552048B2 (en) * | 2015-05-12 | 2020-02-04 | SK Hynix Inc. | Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks |
US10019179B2 (en) * | 2015-10-16 | 2018-07-10 | Toshiba Memory Corporation | Memory device that writes data into a block based on time passage since erasure of data from the block |
US9767843B2 (en) | 2016-02-05 | 2017-09-19 | Seagate Technology Llc | Fragmented data storage bands |
JP6444917B2 (ja) * | 2016-03-08 | 2018-12-26 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
CN107544748B (zh) | 2016-06-28 | 2020-06-16 | 建兴储存科技(广州)有限公司 | 固态储存装置及其数据写入方法 |
US10474389B2 (en) * | 2016-07-05 | 2019-11-12 | Hewlett Packard Enterprise Development Lp | Write tracking for memories |
US10684795B2 (en) * | 2016-07-25 | 2020-06-16 | Toshiba Memory Corporation | Storage device and storage control method |
KR102398186B1 (ko) * | 2017-07-03 | 2022-05-17 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 사용자 장치의 동작 방법 |
JP2019133391A (ja) * | 2018-01-31 | 2019-08-08 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
DE112019007666T5 (de) * | 2019-08-27 | 2022-06-15 | Micron Technology, Inc. | Schreibpuffersteuerung in einem verwalteten Speichersystem |
KR20210025836A (ko) * | 2019-08-28 | 2021-03-10 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 저장 장치 및 메모리 컨트롤러의 동작 방법 |
KR20220021796A (ko) * | 2020-08-14 | 2022-02-22 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20220046308A (ko) * | 2020-10-07 | 2022-04-14 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
-
2018
- 2018-01-31 JP JP2018014794A patent/JP2019133391A/ja active Pending
- 2018-07-09 TW TW107123707A patent/TWI681331B/zh active
- 2018-07-27 CN CN202211111110.6A patent/CN115421661A/zh active Pending
- 2018-07-27 CN CN201810846006.9A patent/CN110096221B/zh active Active
- 2018-09-10 US US16/126,054 patent/US10613796B2/en active Active
-
2020
- 2020-02-27 US US16/803,106 patent/US11237756B2/en active Active
-
2021
- 2021-11-10 US US17/523,415 patent/US11726707B2/en active Active
-
2023
- 2023-06-13 US US18/333,962 patent/US20230325112A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201423577A (zh) * | 2012-12-11 | 2014-06-16 | Samsung Electronics Co Ltd | 移動裝置和使用交換其的資料管理方法 |
TW201611010A (zh) * | 2014-09-12 | 2016-03-16 | 群聯電子股份有限公司 | 程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
TW201624488A (zh) * | 2014-12-18 | 2016-07-01 | 愛思開海力士有限公司 | 資料儲存裝置及其操作方法 |
TW201729198A (zh) * | 2016-02-01 | 2017-08-16 | 愛思開海力士有限公司 | 記憶體系統及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200192600A1 (en) | 2020-06-18 |
CN110096221A (zh) | 2019-08-06 |
US20190235787A1 (en) | 2019-08-01 |
US10613796B2 (en) | 2020-04-07 |
US11726707B2 (en) | 2023-08-15 |
US20230325112A1 (en) | 2023-10-12 |
CN115421661A (zh) | 2022-12-02 |
TW201935223A (zh) | 2019-09-01 |
US20220066693A1 (en) | 2022-03-03 |
JP2019133391A (ja) | 2019-08-08 |
CN110096221B (zh) | 2022-09-30 |
US11237756B2 (en) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI681331B (zh) | 記憶體系統及其控制方法 | |
US20230315294A1 (en) | Memory system and method for controlling nonvolatile memory | |
TWI674502B (zh) | 記憶體系統及控制方法 | |
CN109726139B (zh) | 存储器系统及控制方法 | |
TWI703494B (zh) | 記憶體系統及非揮發性記憶體之控制方法 | |
US11797436B2 (en) | Memory system and method for controlling nonvolatile memory | |
JP2022173454A (ja) | メモリシステム | |
JP2021033848A (ja) | メモリシステムおよび制御方法 | |
US11748012B2 (en) | Memory system and method for controlling nonvolatile memory | |
JP2022171773A (ja) | メモリシステムおよび制御方法 | |
JP2021033845A (ja) | メモリシステムおよび制御方法 | |
JP2023107418A (ja) | ストレージデバイスおよびストレージシステム | |
JP7490714B2 (ja) | メモリシステムおよび制御方法 | |
JP7167295B2 (ja) | メモリシステムおよび制御方法 | |
JP7337228B2 (ja) | メモリシステムおよび制御方法 |