TWI729307B - 記憶體系統及非揮發性記憶體之控制方法 - Google Patents
記憶體系統及非揮發性記憶體之控制方法 Download PDFInfo
- Publication number
- TWI729307B TWI729307B TW107127264A TW107127264A TWI729307B TW I729307 B TWI729307 B TW I729307B TW 107127264 A TW107127264 A TW 107127264A TW 107127264 A TW107127264 A TW 107127264A TW I729307 B TWI729307 B TW I729307B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- retention period
- data retention
- data
- consumption
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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/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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- 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)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本發明之實施形態實現一種可謀求可靠性之提高之記憶體系統及非揮發性記憶體之控制方法。 實施形態之記憶體系統對非揮發性記憶體內之複數個區塊各者之消耗度進行管理。記憶體系統自主機接收寫入請求,該寫入請求包含指定應寫入之第1資料所需之資料保持期間之參數。記憶體系統係對上述複數個區塊中之與消耗度對應之資料保持期間為上述指定之資料保持期間以上之第1區塊寫入上述第1資料。
Description
本發明係關於一種記憶體系統及非揮發性記憶體之控制方法。
近年來,具備非揮發性記憶體之記憶體系統正廣泛地普及。作為此種記憶體系統之一,已知有具備NAND(Not AND,反及)型快閃記憶體之固態驅動器(SSD,Solid State Drive)。SSD係用作各種計算裝置之主儲存器。
對於如SSD之記憶體系統,業界追求一種用以謀求其可靠性之提高之技術。
本發明之實施形態提供一種可謀求可靠性之提高之記憶體系統及非揮發性記憶體之控制方法。
根據實施形態,能夠連接於主機之記憶體系統具備:非揮發性記憶體;及控制器,其電性連接於上述非揮發性記憶體,且控制上述非揮發性記憶體。上述控制器對上述非揮發性記憶體內之複數個區塊各者之消耗度進行管理。上述控制器自上述主機接收寫入請求,該寫入請求包含指定應寫入之第1資料所需之資料保持期間之參數。上述控制器係對上述複數個區塊中之與消耗度對應之資料保持期間為上述指定之資料保持期間以上之第1區塊寫入上述第1資料。
以下,參照圖式對實施形態進行說明。
(第1實施形態) 首先,參照圖1,對包含第1實施形態之記憶體系統之資訊處理系統1之構成進行說明。
該記憶體系統係以對非揮發性記憶體寫入資料、自非揮發性記憶體讀出資料之方式構成之半導體儲存裝置。該記憶體系統例如作為具備NAND型快閃記憶體之快閃儲存裝置3而實現。快閃儲存裝置3可作為固態驅動器(SSD)實現,亦可作為記憶卡實現。
資訊處理系統1包含主機(主機裝置)2與快閃儲存裝置3。主機2係對快閃儲存裝置3進行存取之資訊處理裝置(計算裝置)。主機2可為將大量且多樣之資料保存至快閃儲存裝置3之儲存伺服器(伺服器),亦可為個人電腦。
快閃儲存裝置3可用作作為主機2發揮功能之資訊處理裝置之主儲存器。快閃儲存裝置3可內置於該資訊處理裝置,亦可經由纜線或網路而連接於該資訊處理裝置。
作為用以將主機2與快閃儲存裝置3相互連接之介面,可使用SCSI(Small Computer System Interface,小型電腦系統介面)、Serial Attached SCSI(SAS,串列SCSI)、ATA(Advanced Technology Attachment,先進技術附接)、Serial ATA(SATA,串行ATA)、PCI Express(PCIe,Peripheral Component Interconnect Express,快速周邊組件互連)、乙太網路(Ethernet)(註冊商標)、光纖波道(Fibre channel)、NVM Express(NVMe,非揮發性快速記憶體)(註冊商標)等。
快閃儲存裝置3具備控制器4及非揮發性記憶體(NAND型快閃記憶體)5。控制器4係以控制NAND型快閃記憶體5之方式構成之記憶體控制器(控制電路)。快閃儲存裝置3亦可具備隨機存取記憶體、例如亦可具備DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)6。
NAND型快閃記憶體5包含含有呈矩陣狀配置之複數個記憶胞之記憶胞陣列。NAND型快閃記憶體5可為二維構造之NAND型快閃記憶體,亦可為三維構造之NAND型快閃記憶體。
NAND型快閃記憶體5之記憶胞陣列包含複數個區塊B0~Bm-1。區塊B0~Bm-1之各者係藉由多個頁面(此處為頁面P0~Pn-1)編成。區塊B0~Bm-1作為最小之抹除單位發揮功能。區塊亦有稱為「實體區塊」、或「抹除區塊」之情況。頁面P0~Pn-1之各者包含連接於同一字元線之複數個記憶胞。頁面P0~Pn-1係資料寫入動作及資料讀取動作之單位。
區塊B0~Bm-1具有有限之抹除次數。抹除次數亦可由編程/抹除週期(Program/Erase cycles)數表示。某一區塊之一個編程/抹除週期(Program/Erase cycles)包含用於使該區塊內之所有記憶胞成為抹除狀態之抹除動作、與對該區塊之頁面各者寫入資料之寫入動作(編程動作)。
於第1實施形態中,控制器4可對分別包含區塊之集合之複數個超級區塊進行管理,亦可以超級區塊之單位執行抹除動作。因此,實際上超級區塊有作為抹除單位發揮功能之情況。因此,使相同之超級區塊中所含之區塊各者之抹除次數變得相同。
控制器4係經由如Toggle、ONFI之NAND介面13而電性連接於作為非揮發性記憶體之NAND型快閃記憶體5。NAND介面13作為以控制NAND型快閃記憶體5之方式構成之NAND控制電路發揮功能。
如圖2所示,NAND型快閃記憶體5包含複數個NAND型快閃記憶體晶粒。各NAND型快閃記憶體晶粒係包含含有複數個區塊(實體區塊)BLK之記憶胞陣列與控制該記憶胞陣列之周邊電路的非揮發性記憶體晶粒。各個NAND型快閃記憶體晶粒可獨立地動作。因此,NAND型快閃記憶體晶粒係作為最小之並聯動作單位發揮功能。NAND型快閃記憶體晶粒亦稱為「NAND型快閃記憶體晶片」或「非揮發性記憶體晶片」。於圖2中,例示有如下情形:於NAND介面13連接有16個通道Ch0、Ch1、…Ch15,於該等通道Ch0、Ch1、…Ch15之各者分別連接有相同數量(例如每一通道為1個晶粒)之NAND型快閃記憶體晶粒。各通道包含用以與對應之NAND型快閃記憶體晶粒進行通信之通信線(記憶體匯流排)。
控制器4係經由通道Ch0、Ch1、…Ch15而控制NAND型快閃記憶體晶粒#0~#15。控制器4可同時驅動通道Ch0、Ch1、…Ch15。
於圖2之構成例中,可使最大16個NAND型快閃記憶體晶粒並聯動作。
於第1實施形態中,控制器4可對分別包含複數個區塊BLK之複數個並聯單位(超級區塊)進行管理。超級區塊並不限定於此,亦可包含自連接於不同之通道之NAND型快閃記憶體晶粒#0~#15逐一選擇之共計16個區塊BLK。再者,NAND型快閃記憶體晶粒#0~#15之各者亦可具有多面構成。例如於NAND型快閃記憶體晶粒#0~#15之各者具有包含2個面之多面構成之情形時,一個超級區塊亦可包含自與NAND型快閃記憶體晶粒#0~#15對應之32個面逐一選擇之共計32個區塊BLK。
圖3中例示有一個超級區塊SB包含自NAND型快閃記憶體晶粒#0~#15逐一選擇之共計16個區塊BLK之情形。於對超級區塊SB之寫入動作中,資料係按照屬於NAND型快閃記憶體晶粒#0之區塊BLK之頁面P0、屬於NAND型快閃記憶體晶粒#1之區塊BLK之頁面P0、…屬於NAND型快閃記憶體晶粒#15之區塊BLK之頁面P0、屬於NAND型快閃記憶體晶粒#0之區塊BLK之頁面P1、屬於NAND型快閃記憶體晶粒#2之區塊BLK之頁面P1、…屬於NAND型快閃記憶體晶粒#15之區塊BLK之頁面P1、…之順序寫入。
接下來,對圖1之控制器4之構成進行說明。
控制器4係經由複數個通道(例如16個通道)而電性連接於複數個NAND型快閃記憶體晶片。控制器4係控制NAND型快閃記憶體5(複數個NAND型快閃記憶體晶片)。
控制器4亦可作為以執行NAND型快閃記憶體5之資料管理及區塊管理之方式構成之快閃轉譯層(FTL)發揮功能。藉由該FTL執行之資料管理包含(1)表示邏輯位址各者與NAND型快閃記憶體5之實體位址各者之間的對應關係之映射資訊之管理、(2)用於隱藏頁面單位之讀出/寫入與區塊單位之抹除動作之處理等。邏輯位址係為了對快閃儲存裝置3進行位址指定而藉由主機使用之位址。作為該邏輯位址,通常可使用邏輯區塊位址(LBA)LBA(logical block address(addressing))。
邏輯區塊位址(LBA)各者與實體位址各者之間的映射之管理係使用作為位址轉換表(邏輯實體位址轉換表)發揮功能之查找表(LUT)32執行。控制器4係使用查找表(LUT)32,以特定之管理尺寸單位對邏輯位址各者與實體位址各者之間的映射進行管理。與某一邏輯位址對應之實體位址表示被寫入有該邏輯位址之資料之NAND快閃記憶體5內之最新之實體記憶位置。位址轉換表(LUT32)亦可於快閃儲存裝置3之電源接通時自NAND快閃記憶體5載入至DRAM6。
對頁面之資料寫入係相對於每一抹除週期僅可進行1次。因此,控制器4並非將與某一邏輯位址對應之更新資料寫入至儲存有與該邏輯位址對應之以前之資料之實體記憶位置,而寫入至其他實體記憶位置。而且,控制器4更新查找表(LUT)32而將該邏輯位址與該其他實體記憶位置建立關聯,並且使以前之資料失效。
區塊管理包含耗損平均與廢料收集等。耗損平均係用以使區塊各者之消耗均勻化之動作。廢料收集係為了增加能夠寫入資料之自由區塊之個數,而將混合存在有效資料與無效資料之若干對象區塊內之有效資料複製至其他區塊。此處,有效資料係指自LUT32參照之資料(即與邏輯位址作為最新資料建立關聯之資料),且係其後有自主機2讀出之可能性之資料。無效資料係指已無自主機2讀出之可能性之資料。例如,與某一邏輯位址建立關聯之資料為有效資料,與任一邏輯位址均未建立關聯之資料為無效資料。
而且,廢料收集係更新查找表(LUT)32而將所複製之有效資料之邏輯位址各者映射至移動目標之實體位址。藉由將有效資料複製至其他區塊,成為僅無效資料之區塊作為自由區塊被解除。藉此,該區塊可於其抹除後重新利用。
控制器4包含主機介面11、CPU(Central Processing Unit,中央處理單元)12、NAND介面13、及DRAM介面14等。該等CPU12、NAND介面13、DRAM介面14經由匯流排10相互連接。
主機介面11係以執行與主機2之通信之方式構成之主機介面電路。主機介面11自主機2接收各種指令(例如寫入指令、讀出指令、取消映射(UNMAP)/修整(Trim)指令等)。
CPU12係以控制主機介面11、NAND介面13、及DRAM介面14之方式構成之處理器。CPU12係藉由響應快閃儲存裝置3之電源接通,將儲存於NAND型快閃記憶體5之控制程式(韌體)載入至DRAM6上,並執行該韌體而進行各種處理。該CPU12例如除了可執行上述FTL之處理以外,亦可執行用於處理來自主機2之各種指令之指令處理等。CPU12之動作係由藉由CPU12執行之上述韌體控制。再者,FTL處理及指令處理之一部分或全部亦可藉由控制器4內之專用硬體而執行。
CPU12可作為抹除次數監視器部21、抹除時間監視器部22、區塊分類部23、寫入動作控制部24及消耗降低處理部25發揮功能。
抹除次數監視器部21係對NAND型快閃記憶體5之複數個區塊各者之抹除次數進行監視。抹除次數亦可如上所述般由編程/抹除週期(Program/Erase cycles)數表示。
抹除時間監視器部22係對NAND型快閃記憶體5之複數個區塊各者之抹除時間進行監視。某一區塊之抹除時間係指至對該區塊之抹除動作完成為止所需要之時間。
抹除時間監視器部22亦可自NAND介面13內所包含之抹除時間測定部13A獲取各區塊之抹除時間。
圖4之時序圖表示對某一NAND型快閃記憶體晶粒內之某一區塊(實體區塊)之抹除動作序列之例。NAND介面13係將抹除設定指令“60h”、指定應執行抹除動作之區塊之位址、抹除開始指令“D0h”經由某一通道內之IO匯流排而送出至該NAND型快閃記憶體晶粒。而且,NAND介面13對該NAND型快閃記憶體晶粒之待命/忙碌信號(RY/BY)進行監視,等待抹除動作之完成。於在該NAND型快閃記憶體晶粒中執行區塊之抹除動作之期間,該NAND型快閃記憶體晶粒維持為忙碌狀態。於NAND型快閃記憶體晶粒為忙碌狀態之期間,待命/忙碌信號(RY/BY)例如維持為低位準。抹除時間測定部13A亦可測定NAND型快閃記憶體晶粒藉由區塊之抹除動作維持為忙碌狀態之時間(tBERASE)作為該區塊之抹除時間。於此情形時,抹除時間測定部13A亦可於抹除動作序列中測定待命/忙碌信號(RY/BY)維持為低位準之時間,並將所測定之時間報告給抹除時間監視器部22。
NAND型快閃記憶體晶粒執行用於驗證區塊之抹除動作是否成功之驗證動作。抹除及驗證動作反覆進行至抹除動作成功、或抹除及驗證動作之循環次數達到所設定之最大循環次數。若抹除及驗證動作完成,則NAND型快閃記憶體晶粒恢復至待命狀態。此時,待命/忙碌信號(RY/BY)例如自低位準恢復至高位準。若NAND型快閃記憶體晶粒成為待命狀態,則NAND介面13將狀態讀出指令“70h”經由IO匯流排送出至NAND型快閃記憶體晶片。若抹除動作成功,則自NAND型快閃記憶體晶粒對NAND介面13通知表示成功之狀態(pass狀態)。另一方面,若抹除動作未成功,則自NAND型快閃記憶體晶粒對NAND介面13通知表示失敗之狀態(fail狀態)。
或者,控制器4亦可不使用待命/忙碌信號(RY/BY)而測定抹除時間(tBERASE)。於此情形時,控制器4亦可於抹除動作之期間藉由對NAND型快閃記憶體晶粒晶片反覆發行狀態讀出指令而進行輪詢。
區塊分類部23基於複數個區塊各者之消耗度而將複數個區塊分類為與複數個資料保持期間對應之複數個區塊組。某一區塊之消耗度係指該區塊中所含之記憶胞群之消耗程度。區塊各者之消耗度亦可藉由該等區塊之抹除次數(編程/抹除週期數)表示。隨著某一區塊之消耗進行,該區塊之抹除時間(tBERASE)增加。因此,區塊各者之消耗度亦可藉由該等區塊之抹除時間(tBERASE)表示。若區塊之消耗度較大,則有充電至該區塊內之各記憶胞之電荷變得容易洩漏之情形。因此,區塊之消耗度越大,則與該區塊對應之資料保持期間(即,該區塊內之各記憶胞可保持資料之期間)變得越短。
於區塊各者之消耗度以抹除次數(編程/抹除週期數)表示之情形時,區塊分類部23亦可基於複數個區塊各者之抹除次數而將複數個區塊分類為與複數個資料保持期間對應之複數個區塊組。
於區塊各者之消耗度以抹除時間表示之情形時,區塊分類部23亦可基於複數個區塊各者之抹除時間而將複數個區塊分類為與複數個資料保持期間對應之複數個區塊組。進而,區塊分類部23亦可基於複數個區塊各者之抹除次數及抹除時間之兩者而將複數個區塊分類為與複數個資料保持期間對應之複數個區塊組。
於第1實施形態中,針對每個區塊監視消耗度(例如抹除次數、抹除時間)之動作及基於消耗度(例如抹除次數、抹除時間)將區塊分類之動作亦可以實體區塊之單位執行。
再者,於快閃儲存裝置3為以超級區塊之單位進行寫入動作、讀出動作、抹除動作之構成之情形時,針對每個區塊監視消耗度(例如抹除次數、抹除時間)之動作及基於消耗度(例如抹除次數、抹除時間)將區塊分類之動作亦可以包含複數個實體區塊之並聯單位(超級區塊)之單位執行。構成相同之並聯單位(超級區塊)之區塊(實體區塊)之抹除動作由於並聯地執行,故而該等區塊(實體區塊)具有相同之抹除次數。又,作為某一並聯單位(超級區塊)之抹除時間,可使用由構成該並聯單位(超級區塊)之區塊各者之抹除時間所求出之代表值。該代表值亦可為該等區塊各者之抹除時間之平均值。
寫入動作控制部24自主機2接收寫入請求(寫入指令),該寫入請求(寫入指令)包含指定應寫入之資料(寫入資料)所需之資料保持期間(data retention term)之參數。於接收到該寫入請求之情形時,寫入動作控制部24自NAND型快閃記憶體5中所含之複數個區塊選擇根據消耗度推定之資料保持期間為指定之資料保持期間以上之區塊作為寫入目標區塊,並將該寫入資料寫入至所選擇之區塊(寫入目標區塊)。
寫入動作控制部24亦可於根據消耗度推定之資料保持期間為由寫入請求(寫入指令)指定之資料保持期間以上之區塊中,優先選擇具有與更短之資料保持期間對應之消耗度之區塊作為寫入目標區塊。藉此,例如可防止為了寫入需要1年資料保持期間之資料,而浪費地使用與10年以上之資料保持期間對應之低消耗度之區塊。換言之,為了進行用以寫入需要10年資料保持期間之資料之寫入請求,可不消耗與該10年以上之資料保持期間對應之低消耗度之區塊而預先維持。
於該情形時,寫入動作控制部24亦可於存在被分類為具有與由寫入請求(寫入指令)指定之資料保持期間一致之資料保持期間之區塊組的區塊之情形時,選擇被分類為該區塊組之區塊作為寫入目標區塊。又,寫入動作控制部24亦可於不存在具有與由寫入請求(寫入指令)指定之資料保持期間一致之資料保持期間之區塊之情形時,選擇被分類為具有較該資料保持期間長之資料保持期間之區塊組之區塊作為寫入目標區塊。
又,寫入動作控制部24於由所選擇之區塊之消耗度推定之資料保持期間與由寫入請求(寫入指令)指定之資料保持期間相同之情形時,藉由第1編程動作將資料(寫入資料)寫入至所選擇之區塊(寫入目標區塊)。另一方面,寫入動作控制部24於由所選擇之區塊(寫入目標區塊)之消耗度推定之資料保持期間長於由寫入請求(寫入指令)指定之資料保持期間之情形時,藉由第2編程動作將資料(寫入資料)寫入至所選擇之區塊(寫入目標區塊)。
此處,第1編程動作係指利用通常之編程模式進行之寫入動作(編程動作),第2編程動作係指利用充電至第1區塊之記憶胞群之電荷量較少之編程模式(以下稱為消耗降低編程模式)進行之寫入動作(編程動作)。藉由執行利用消耗降低編程模式之資料之寫入,與執行利用通常之編程模式之資料之寫入動作之情形相比,可降低施加至記憶胞群之編程電壓、或減少對記憶胞群施加編程電壓之次數,因此可減少施加至記憶胞群之應力。因此,可降低記憶胞群之消耗,可使快閃儲存裝置長壽命化。
再者,於選擇應寫入寫入資料之寫入目標區塊之處理中,該寫入目標區塊亦可自不包含有效資料之自由區塊之組選擇。假設為了寫入其他寫入資料而已經存在所選擇之寫入目標區塊之情形時,應寫入寫入資料之寫入目標區塊亦可自該已經存在之寫入區塊與自由區塊之組中選擇。
又,於快閃儲存裝置3為以超級區塊之單位進行寫入動作、讀出動作、抹除動作之構成之情形時,寫入動作控制部24只要自複數個超級區塊(例如不包含有效資料之自由超級區塊之組)選擇根據消耗度推定之資料保持期間為指定之資料保持期間以上之超級區塊作為寫入目標區塊(寫入目標超級區塊),並將該寫入資料寫入至所選擇之超級區塊即可。
消耗降低處理部25係藉由充電至記憶胞群之電荷量較第1編程動作少之第2編程動作(利用消耗降低編程模式進行之編程動作)而執行用於將資料寫入至寫入目標區塊之處理。
圖1之DRAM介面14係以對DRAM6進行存取控制之方式構成之DRAM控制器。DRAM6之記憶區域係用以儲存寫入緩衝器(WB)31、查找表(LUT)32、及系統管理資訊33。系統管理資訊33包含為了選擇具有由主機指定之資料保持期間以上之資料保持期間之寫入目標區塊所需要之各種管理資訊。例如系統管理資訊33包含下述區塊消耗度管理表33A、區塊消耗度管理表33A'。進而,系統管理資訊33包含區塊資訊。區塊資訊包含表示NAND型快閃記憶體5內之區塊之各者中所包含之資料各者之有效/無效之旗標(點陣圖旗標)。
DRAM介面14係以於CPU12之控制下控制DRAM6之方式構成之DRAM控制電路。DRAM6之記憶區域之一部分係用以儲存寫入緩衝器(WB)31、查找表(LUT)32、系統管理資訊33。再者,該等寫入緩衝器(WB)31、查找表(LUT)32、系統管理資訊33亦可儲存於控制器4內之未圖示之SRAM(Static Random Access Memory,靜態隨機存取記憶體)。
接下來,對主機2之構成進行說明。
主機2係執行各種程式之資訊處理裝置。由資訊處理裝置執行之程式包含應用軟體層41、作業系統(OS)42、檔案系統43等。
如一般周知,作業系統(OS)42係以對主機2整體進行管理,控制主機2內之硬體,使應用軟體執行用於使硬體及快閃儲存裝置3能夠使用之控制之方式構成之軟體。
檔案系統43係為了進行用於檔案之操作(製作、保存、更新、削除等)之控制而使用。
於應用軟體層41必須將如讀出指令或寫入指令之請求送出至快閃儲存裝置3時,應用軟體層41對OS42送出該請求。OS42將該請求送出至檔案系統43。檔案系統43將該請求翻譯為指令(讀出指令、寫入指令等)。檔案系統43將指令送出至快閃儲存裝置3。於接收到來自快閃儲存裝置3之響應時,檔案系統43將該響應送出至OS42。OS42將該響應送出至應用軟體層41。
圖5表示藉由第1實施形態之快閃儲存裝置3執行之資料之寫入動作。
各區塊之狀態大致分為儲存有效資料之現用區塊與未儲存有效資料之自由區塊。作為現用區塊之各區塊係由稱為現用區塊池51之清單進行管理。另一方面,作為自由區塊之各區塊係由稱為自由區塊池52之清單進行管理。
於第1實施形態中,控制器4係從自由區塊池52內之區塊選擇具有根據消耗度推定之資料保持期間為由寫入請求(寫入指令)指定之資料保持期間以上之資料保持期間之區塊,作為自主機2接收之資料之寫入目標區塊。於此情形時,控制器4首先對所選擇之區塊執行抹除動作,藉此使該區塊成為能夠寫入之抹除狀態。若當前之寫入目標區塊之整體被來自主機2之資料填滿,則控制器4將當前之寫入目標區塊移動至現用區塊池51。
此處,圖5中表示從自由區塊池52選擇寫入目標區塊,但未必限定於此。如上所述,於具有由以前之寫入請求(寫入指令)指定之資料保持期間之區塊已經作為寫入目標區塊被選擇,且尚未被有效資料填滿之情形時,亦有不從自由區塊池52內之區塊重新選擇寫入目標區塊之情形。例如有如下情況:若對於以前之來自主機2之資料已被選作寫入目標區塊之區塊為滿足由此次之寫入請求(寫入指令)指定之資料保持期間之區塊,則該區塊作為對於根據此次之寫入請求應被寫入之新的寫入資料之寫入目標區塊被選擇,對所選擇之區塊寫入該新的寫入資料。
又,亦可能有存在複數個已被選作寫入目標區塊且未被有效資料填滿之區塊之狀態。例如為如下情形,即,根據寫入請求(寫入指令)指定1年作為資料保持期間,於選擇具有1年資料保持期間之區塊作為寫入目標區塊後,該具有1年資料保持期間之區塊未被有效資料填滿之前,根據寫入請求(寫入指令)指定5年作為資料保持期間,選擇該具有5年資料保持期間之區塊作為寫入目標區塊,該具有5年資料保持期間之區塊亦未被有效資料填滿。
若現用區塊池51內之某一區塊內之有效資料之一部分因資料更新等而失效,且無效資料量降低至特定值以下,則該區塊成為廢料收集之對象。若藉由廢料收集,該區塊內之有效資料全部被複製至其他區塊(自由區塊),藉此該區塊內之有效資料全部失效,則控制器4將該區塊移動至自由區塊池52。
圖6表示區塊消耗度管理表33A。
區塊消耗度管理表33A係系統管理資訊33之一部分,對與複數個消耗度對應之複數個區塊組進行管理。
區塊消耗度管理表33A包含與複數個消耗度對應之複數個條目。該等條目之各者亦可包含消耗度欄位、區塊位址欄位、及推定之資料保持期間欄位。消耗度欄位保持根據區塊之消耗程度進行分級之區塊之消耗之等級。再者,消耗度越小,意味著消耗之等級越小。於圖6之例中,區塊之消耗度係藉由區塊之抹除次數表示,根據區塊之抹除次數進行分級。
區塊位址欄位保持與NAND型快閃記憶體5中所包含之複數個區塊(實體區塊)各者對應之複數個區塊位址。於圖6之例中,區塊位址相對於各個區塊表示為“#1”、“#2”、“#3”、…。該區塊位址亦可藉由晶粒編號與晶片內區塊編號之組合而表現。例如亦可將NAND型快閃記憶體晶粒#0內之區塊BLK0之區塊位址“#0”表現為(Die#0,BLK0)。同樣地,亦可將NAND型快閃記憶體晶粒#0內之區塊BLK1之區塊位址“#2”表現為(Die#0,BLK1),將NAND型快閃記憶體晶粒#0內之區塊BLK2之區塊位址“#3”表現為(Die#0,BLK2)、…,將NAND型快閃記憶體晶粒#0內之區塊BLKn之區塊位址“#n+1”表現為(Die#0,BLKn)。
於圖6之例中,等級1(抹除次數為0~500次)之區塊係表示區塊位址為“#10”、“#11”、“#23”、“#30”、…。同樣地,等級2(抹除次數為500~1000次)之區塊係表示區塊位址為“#9”、“#16”、“#22”、“#29”、…,等級3(抹除次數為1000~1500次)之區塊係表示區塊位址為“#7”、“#8”、“#21”、“#28”、…,…,等級10(抹除次數為9500~10000次)之區塊係表示區塊位址為“#1”、“#12”、…。
推定之資料保持期間欄位保持基於消耗度推定之資料保持期間。於圖6之例中,資料保持期間係基於區塊之抹除次數進行推定。
於圖6之例中,例示有關於等級1(抹除次數0~500次)之區塊推定之資料保持期間為“10年”。同樣地,例示有關於等級2(抹除次數500~1000次)之區塊推定之資料保持期間為“5年”,例示有關於等級3(抹除次數1000~1500次)之區塊推定之資料保持期間為“1年”,…,例示有關於等級10(抹除次數9500~10000次)之區塊推定之資料保持期間為“1週”。
圖7表示與圖6不同之區塊消耗度管理表33A'。
區塊消耗度管理表33A'係系統管理資訊33之一部分,對與各消耗度之範圍對應之區塊之區塊位址進行管理。與圖6之區塊消耗度管理表33A之不同在於,消耗度係以區塊之抹除時間表示,根據抹除時間推定區塊之資料保持期間。
區塊消耗度管理表33A'與區塊消耗度管理表33A同樣地包含複數個條目,該等條目之各者亦可包含消耗度欄位、區塊位址欄位、及推定之資料保持期間欄位。消耗度欄位保持根據區塊之消耗程度進行分級之區塊之消耗之等級。於圖7之例中,如上所述,區塊之消耗度係藉由區塊之抹除時間表示,根據區塊之抹除時間進行分級。
區塊位址欄位保持與NAND型快閃記憶體5中所包含之複數個區塊各者對應之複數個區塊位址。
推定之資料保持期間欄位保持基於消耗度推定之資料保持期間。於圖7之例中,資料保持期間係基於區塊之抹除時間進行推定。
再者,於圖6中係將區塊按照一定消耗度之每個範圍進行分級,而針對每種消耗度管理區塊位址,但亦可NAND型快閃記憶體內之所有區塊之消耗度從小到大(或從大到小)依序排列,而管理區塊位址。
於圖7之例中,例示有關於等級1(抹除時間t1~t2 sec)之區塊推定之資料保持期間為“10年”。同樣地,例示有關於等級2(抹除時間t2~t3 sec)之區塊推定之資料保持期間為“5年”,例示有關於等級3(抹除時間t3~t4 sec)之區塊推定之資料保持期間為“1年”,…,例示有關於等級10(抹除時間t10~t11 sec)之區塊推定之資料保持期間為“1週”。
再者,於圖7中係將區塊按照一定消耗度之每個範圍進行分級,而針對每種消耗度管理區塊位址,但亦可將NAND型快閃記憶體內之所有區塊之區塊位址之清單按照消耗度從小到大(或從大到小)依序排列而進行管理。
第1實施形態之快閃儲存裝置3可僅具備區塊消耗度管理表33A、區塊消耗度管理表33A'之任一者,亦可具備兩者。於具備兩者之情形時,快閃儲存裝置3之控制器4可僅基於抹除次數而執行區塊之消耗度之判斷及由主機2指定而滿足資料保持期間之區塊之選擇動作,亦可僅基於抹除時間而執行區塊之消耗度之判斷、及由主機2指定而滿足資料保持期間之區塊之選擇動作。又,控制器4亦可基於抹除次數及抹除時間之兩者而執行區塊之消耗度之判斷及由主機2指定而滿足資料保持期間之區塊之選擇動作。
圖8表示應用於快閃儲存裝置3之寫入指令之例。
該寫入指令係對快閃儲存裝置3請求資料寫入之指令。該寫入指令亦可包含執行指定起始LBA之參數、指定長度(邏輯區塊數)之參數、表示所需之資料保持期間之參數等。
起始LBA(起始邏輯位址)表示應寫入之資料之最初之LBA。
長度表示應寫入之資料之長度(與應寫入之資料對應之邏輯區塊數)。
所需之資料保持期間(required-datα-retention term)表示應寫入之資料所需之資料保持期間。所需之資料保持期間之例為1週、2週、1個月、2個月、4個月、6個月、8個月、1年、5年、10年等。
圖9之序列圖表示響應圖8之寫入指令之接收而藉由第1實施形態之快閃儲存裝置3執行之資料寫入處理。
主機2將包含LBA、資料長度、所需之資料保持期間之寫入指令發送至快閃儲存裝置3。快閃儲存裝置3之控制器4選擇根據消耗度推定之資料保持期間為由主機2(寫入指令所需之資料保持期間)指定之資料保持期間以上之區塊(步驟S101)。繼而,控制器4對所選擇之區塊寫入應寫入之資料(步驟S102)。繼而,控制器4更新LUT32,將被寫入該資料之NAND型快閃記憶體5之表示實體記憶位置之實體位址映射至寫入之資料之LBA(步驟S103)。
其後,控制器4向主機2回復寫入完成之響應(步驟S104)。此處,響應包含狀態(成功/失敗)。
圖10~圖12表示存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時藉由快閃儲存裝置3執行之寫入目標區塊之選擇方式。
於圖10~圖12中,假定將消耗度分組為等級1~等級10之10個等級而進行管理。再者,消耗度越小(等級越低),資料保持期間越長。又,消耗度越大(等級越高),資料保持期間越短。又,區塊301~303之消耗度相當於消耗度=等級1(資料保持期間為10年),區塊304~307之消耗度相當於消耗度=等級2(資料保持期間為5年),區塊308~311之消耗度相當於消耗度=等級3(資料保持期間為1年),區塊312~315之消耗度相當於消耗度=等級4(資料保持期間為8個月),區塊316~318之消耗度相當於消耗度=等級5(資料保持期間為6個月),區塊319~322之消耗度相當於消耗度=等級6(資料保持期間為4個月),區塊323~326之消耗度相當於消耗度=等級7(資料保持期間為2個月),區塊327~329之消耗度相當於消耗度=等級8(資料保持期間為1個月),區塊330~332之消耗度相當於消耗度=等級9(資料保持期間為2週),區塊333~335之消耗度相當於消耗度=等級10(資料保持期間為1週)。
此處,如圖11所示,由主機2指定“1年”作為應寫入之資料之資料保持期間。具有推定為由主機2指定之應寫入之資料之資料保持期間即“1年”以上之資料保持期間之區塊係屬於消耗度=等級1之組之區塊301~303、屬於消耗度=等級2之組之區塊304~307、屬於消耗度=等級3之組之區塊308~311。控制器4自該等區塊301~311中選擇寫入目標區塊。
另一方面,控制器4亦可如圖12所示選擇寫入目標區塊。
於由主機2指定“1年”作為應寫入之資料之資料保持期間之情形時,控制器4於根據消耗度推定之資料保持期間為由主機2指定之資料保持期間以上之區塊中優先選擇具有與更短之資料保持期間對應之消耗度之區塊作為寫入目標區塊。於圖12之例中,於具有推定為由主機2指定之應寫入之資料之資料保持期間即“1年”以上之資料保持期間之區塊中,具有與更短之資料保持期間對應之消耗度之區塊係屬於推定之資料保持期間為“1年”之消耗度=等級3之組之區塊308~311。控制器4自該等區塊308~311中選擇寫入目標區塊。
圖13~圖14表示不存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時藉由快閃儲存裝置3執行之寫入目標區塊之選擇方式。
如圖13所示,於不存在屬於具有與由主機2指定之資料保持期間即“1年”一致之資料保持期間之區塊組(消耗度=等級3之組)的區塊之情形時,控制器4自屬於具有較指定之資料保持期間長之資料保持期間之區塊組的區塊選擇寫入目標區塊。於圖13中,由於存在屬於具有與由主機2指定之資料保持期間“1年”一致之消耗度=等級3之組之下一個較長之資料保持期間(資料保持期間5年)之區塊組(消耗度=等級2之組)的區塊304~307,因此如圖14所示,控制器4自該等區塊304~307中選擇寫入目標區塊。假設亦不存在屬於具有資料保持期間為5年之消耗度之區塊組(消耗度=等級2之組)之區塊304~307,則控制器4自屬於具有再下一個較長之資料保持期間(資料保持期間10年)之區塊組(消耗度=等級1之組)之區塊301~303中選擇寫入目標區塊。
圖15表示不存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時藉由快閃儲存裝置3執行之對所選擇之區塊之利用消耗降低編程模式進行之資料寫入動作。
於選擇具有較指定之資料保持期間“1年”長之資料保持期間“5年”之區塊作為寫入目標區塊之情形時,於圖14之情況下,控制器4藉由第1編程動作(通常之編程模式)將寫入資料寫入至寫入目標區塊。
另一方面,於圖15之情況下,控制器4將編程模式自通常之編程模式切換為消耗降低編程模式,藉由消耗降低編程模式將寫入資料寫入至寫入目標區塊。於消耗降低編程模式下,充電至寫入目標區塊內之記憶胞群之電荷量較通常之編程模式少。因此,能夠將因寫入動作(編程動作)而施加至記憶胞群之應力抑制得較低,從而可降低每一次寫入動作(編程動作)之寫入目標區塊之消耗量。於編程動作中,各記憶胞係設定為與複數個狀態中之任一個對應之閾值電壓。於充電至記憶胞之電荷量較少之情形時,狀態間之閾值電壓間之範圍變小,因此容易產生資料保留錯誤,其結果為,記憶胞之資料保持期間變短。然而,於圖15之情況下,所選擇之寫入目標區塊係具有遠遠長於指定之資料保持期間“1年”之資料保持期間“5年”之低消耗度之區塊,因此即便執行利用消耗降低編程模式之寫入動作,亦能夠充分地滿足指定之資料保持期間“1年”。
圖16係表示藉由快閃儲存裝置3執行之利用消耗降低編程模式進行之資料寫入動作時之閾值電壓位準。
圖16中例示有與多階單元(MLC)對應之4個閾值電壓位準與2位元資料之關係之例。
各記憶胞設定為4個狀態(一個抹除狀態、及3個編程狀態)中之任一者。該等4個狀態具有互不相同之閾值電壓位準。此處,亦可對4個狀態映射2位元資料“11”、“01”、“00”、“10”。
於圖16之上部示出以通常之編程模式執行寫入動作之情形時之4個狀態各者之閾值電壓位準。於讀出動作中,使用用以將“11”、“01”、“00”、“10”狀態相互分離之3個電壓VA1、VB1、VC1中之任一者作為讀出電壓。再者,電壓VR1係於讀出動作中施加至非選擇字元線之電壓,電壓VR1設定為能夠與保持資料無關地使記憶胞接通之電壓。
另一方面,於圖16之下部示出以消耗降低編程模式執行寫入動作之情形時之4個狀態各者之閾值電壓位準。4個狀態係使用用以將“11”、“01”、“00”、“10”狀態相互分離之3個電壓VA2(<VA1)、VB2(<VB1)、VC2(<Vc1)中之任一者作為讀出電壓。再者,電壓VR2(<VR1)係於讀出動作中施加至非選擇字元線之電壓,電壓VR2設定為能夠與保持資料無關地使記憶胞接通之電壓。
於消耗降低編程模式下,與通常之編程模式相比,可降低施加至記憶胞群之編程電壓、或減少對記憶胞群施加編程電壓之次數。藉此,可降低因資料寫入動作所產生之記憶胞群之消耗,從而可使快閃儲存裝置3長壽命化。
圖17之流程圖表示基於消耗度將區塊分類之順序。此處,為了簡化說明,將NAND型快閃記憶體5中所包含之區塊分類為消耗度=等級1之組、消耗度=等級2之組、消耗度=等級3之組、消耗度=等級4之組。
控制器4對NAND型快閃記憶體5中所包含之各區塊之消耗度進行監視(步驟S201)。繼而,控制器4選擇某一個區塊(步驟S202)。
於之後之步驟S203~S209中,基於步驟S202中所選擇之區塊之消耗度,執行所選擇之區塊之分組。
控制器4判定所選擇之區塊之消耗度是否與等級1對應(步驟S203)。若所選擇之區塊之消耗度與等級1對應(步驟S203之是(YES)),則控制器4將所選擇之區塊分類為消耗度=等級1之組(步驟S204)。
若所選擇之區塊之消耗度不與等級1對應(步驟S203之否(NO)),則控制器4判定所選擇之區塊之消耗度是否與等級2對應(步驟S205)。若所選擇之區塊之消耗度與等級2對應(步驟S205之是),則控制器4將所選擇之區塊分類為消耗度=等級2之組(步驟S206)。
若所選擇之區塊之消耗度不與等級2對應(步驟S205之否),則控制器4判定所選擇之區塊之消耗度是否與等級3對應(步驟S207)。若所選擇之區塊之消耗度與等級3對應(步驟S207之是),則控制器4將所選擇之區塊分類為消耗度=等級3之組(步驟S208)。
若所選擇之區塊之消耗度不與等級3對應(步驟S207之否),則控制器4將所選擇之區塊分類為消耗度=等級4之組(步驟S209)。
圖18之流程圖表示基於消耗度選擇寫入目標區塊,並對所選擇之區塊寫入資料之動作之順序。
當自主機2接收到包含指定應寫入之資料所需之資料保持期間之參數的寫入指令時(步驟S301之是),控制器4尋找具有滿足所需之資料保持期間之消耗度的區塊(步驟S302),判定是否存在滿足所需之資料保持期間之區塊(步驟S303)。所謂具有滿足所需之資料保持期間之消耗度的區塊係指根據其消耗度推定之資料保持期間為由寫入指令指定之資料保持期間以上之區塊。
若不存在具有滿足所需之資料保持期間之消耗度的區塊(步驟S303之否),則控制器4向主機2回復錯誤(步驟S315)。若不存在具有滿足所需之資料保持期間之消耗度的區塊,則無法對滿足由主機2指定之資料保持期間之區塊寫入應寫入之資料,因此無法確保應寫入之資料所需之資料保持期間。因此,將該內容作為錯誤回復給主機2。
若存在具有滿足所需之資料保持期間之消耗度的區塊(步驟S303之是),則控制器4判定是否存在具有與所需之資料保持期間一致之資料保持期間所對應之消耗度的區塊(步驟S304)。
若存在具有與所需之資料保持期間一致之資料保持期間所對應之消耗度的區塊(步驟S304之是),則控制器4選擇具有與所需之資料保持期間一致之資料保持期間所對應之消耗度的區塊(步驟S305)。例如於與由寫入指令指定之資料保持期間一致之資料保持期間所對應之消耗度為等級3之情形時,控制器4判定是否存在具有等級3之消耗度之區塊,若存在具有等級3之消耗度之區塊,則選擇具有等級3之消耗度之區塊。
繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S306)。
若不存在具有與所需之資料保持期間一致之資料保持期間所對應之消耗度的區塊(步驟S304之否),則控制器4判定是否存在與較所需之資料保持期間長1個等級之資料保持期間對應之消耗度之區塊(步驟S307)。若存在與較所需之資料保持期間長1個等級之資料保持期間對應之消耗度之區塊(步驟S307之是),則控制器4選擇與較所需之資料保持期間長1個等級之資料保持期間對應之消耗度之區塊(步驟S308)。
例如於與由寫入指令指定之資料保持期間一致之資料保持期間所對應之消耗度為等級3,且不存在具有等級3之消耗度之區塊之情形時,控制器4判定是否存在具有較由等級3之消耗度推定之資料保持期間長1個等級之資料保持期間的區塊、即具有等級2之消耗度之區塊,若存在具有等級2之消耗度之區塊,則選擇具有等級2之消耗度之區塊作為寫入目標區塊。
繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S309)。
若不存在與較所需之資料保持期間長1個等級之資料保持期間對應之消耗度之區塊(步驟S307之否),則控制器4判定是否存在與較所需之資料保持期間長2個等級之資料保持期間對應之消耗度之區塊。繼而,若不存在與較所需之資料保持期間長2個等級之資料保持期間對應之消耗度之區塊,則控制器4判定是否存在與較所需之資料保持期間長3個等級之資料保持期間對應之消耗度之區塊。如此,若不存在具有所判定之等級之消耗度之區塊,則控制器4判定是否存在與較該判定之等級長1個等級之資料保持期間對應之消耗度之區塊。其原因在於,於具有與所需之資料保持期間以上之資料保持期間對應之消耗度之區塊中,優先選擇具有與儘可能短之資料保持期間對應之消耗度之區塊作為寫入目標區塊。
例如於與由寫入指令指定之資料保持期間一致之資料保持期間所對應之消耗度為等級3之情形時,控制器4判定是否存在具有等級3之消耗度之區塊,若不存在具有等級3之消耗度之區塊,則執行是否存在具有等級2之消耗度之區塊之判定。
繼而,判定是否存在與較最長之資料保持期間短1個等級之資料保持期間對應之消耗度之區塊(步驟S310),若存在與較最長之資料保持期間短1個等級之資料保持期間對應之消耗度之區塊(步驟S310之是),則控制器4選擇與較最長之資料保持期間短1個等級之資料保持期間對應之消耗度之區塊作為寫入目標區塊(步驟S311)。
控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S312)。
若不存在與較最長之資料保持期間短1個等級之資料保持期間對應之消耗度之區塊(步驟S310之否),則控制器4選擇與最長之資料保持期間對應之消耗度之區塊作為寫入目標區塊(步驟S313)。繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S314)。例如於與由寫入指令指定之資料保持期間一致之資料保持期間所對應之消耗度為等級3,於不存在具有等級3及等級2之消耗度之區塊之情形時,控制器4於具有與由寫入指令指定之資料保持期間以上之資料保持期間對應之消耗度之區塊中,選擇具有與最長之資料保持期間對應之消耗度之區塊即具有等級1之消耗度之區塊作為寫入目標區塊。
圖19之流程圖表示基於消耗度選擇寫入目標區塊,藉由消耗降低編程模式對所選擇之區塊寫入資料之動作之順序。
圖19之流程圖係將圖18之流程圖中之步驟S309變更為步驟S409、將步驟S312變更為步驟S412、將步驟S314變更為步驟S414之流程圖。
於選擇具有與所需之資料保持期間一致之資料保持期間所對應之消耗度的區塊作為寫入目標區塊之情形時(步驟S303~S305),控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S306)。
另一方面,於由於不存在具有與所需之資料保持期間一致之資料保持期間所對應之消耗度的區塊,故而選擇具有與較指定之資料保持期間長之資料保持期間對應之消耗度之區塊作為寫入目標區塊之情形時(步驟S308、步驟S311、步驟S313),控制器4藉由消耗降低編程模式對所選擇之區塊寫入應寫入之資料(步驟S409、步驟S412、步驟S414)。
圖20之流程圖表示基於抹除次數將區塊分類之順序。由於區塊之消耗度可基於區塊之抹除次數進行判斷,故而亦可基於區塊之抹除次數而執行將區塊分類之動作。再者,抹除次數越多,則消耗度變得越大,抹除次數越少,則消耗度變得越小。
控制器4對NAND型快閃記憶體5中所包含之各區塊之抹除次數進行監視(步驟S501)。繼而,控制器4選擇某一區塊(步驟S502)。
於其後之步驟S503~S509中,基於步驟S502中所選擇之區塊之抹除次數,執行所選擇之區塊之分組。
控制器4判定所選擇之區塊之抹除次數是否與等級1對應(步驟S503)。若所選擇之區塊之抹除次數與等級1對應(步驟S503之是),則控制器4將所選擇之區塊分類為消耗度=等級1之組(步驟S504)。
若所選擇之區塊之抹除次數不與等級1對應(步驟S503之否),則控制器4判定所選擇之區塊之抹除次數是否與等級2對應(步驟S505)。若所選擇之區塊之抹除次數與等級2對應(步驟S505之是),則控制器4將所選擇之區塊分類為消耗度=等級2之組(步驟S506)。
若所選擇之區塊之抹除次數不與等級2對應(步驟S505之否),則控制器4判定所選擇之區塊之抹除次數是否與等級3對應(步驟S507)。若所選擇之區塊之抹除次數與等級3對應(步驟S507之是),則控制器4將所選擇之區塊分類為消耗度=等級3之組(步驟S508)。
若所選擇之區塊之抹除次數不與等級3對應(步驟S507之否),則控制器4將所選擇之區塊分類為消耗度=等級4之組(步驟S509)。
圖21之流程圖表示基於抹除次數選擇寫入目標區塊,並對所選擇之區塊寫入資料之動作之順序。
當自主機2接收到包含指定應寫入之資料所需之資料保持期間之參數的寫入指令時(步驟S601之是),控制器4參照區塊消耗度管理表33A,尋找具有滿足所需之資料保持期間之抹除次數之區塊(步驟S602),判定是否存在具有滿足所需之資料保持期間之抹除次數之區塊(步驟S603)。具有滿足所需之資料保持期間之抹除次數之區塊係指由抹除次數推定之資料保持期間為由寫入指令指定之資料保持期間以上之區塊。
若不存在具有滿足所需之資料保持期間之抹除次數之區塊(步驟S603之否),則控制器4向主機2回復錯誤(步驟S615)。
若存在具有滿足所需之資料保持期間之抹除次數之區塊(步驟S603之是),則控制器4判定是否存在具有與所需之資料保持期間一致之資料保持期間所對應之抹除次數之區塊(步驟S604)。
若存在具有與所需之資料保持期間一致之資料保持期間所對應之抹除次數之區塊(步驟S604之是),則控制器4選擇具有與所需之資料保持期間一致之資料保持期間所對應之抹除次數之區塊(步驟S605)。繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S606)。
若不存在具有與所需之資料保持期間一致之資料保持期間所對應之抹除次數之區塊(步驟S604之否),則控制器4判定是否存在與較所需之資料保持期間長1個等級之資料保持期間對應之抹除次數之區塊(步驟S607)。若存在與較所需之資料保持期間長1個等級之資料保持期間對應之抹除次數之區塊(步驟S607之是),則控制器4選擇與較所需之資料保持期間長1個等級之資料保持期間對應之抹除次數之區塊(步驟S608)。繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S609)。
若不存在與較所需之資料保持期間長1個等級之資料保持期間對應之抹除次數之區塊(步驟S607之否),則控制器4判定是否存在與較所需之資料保持期間長2個等級之資料保持期間對應之抹除次數之區塊。繼而,若不存在與較所需之資料保持期間長2個等級之資料保持期間對應之抹除次數之區塊,則控制器4判定是否存在與較所需之資料保持期間長3個等級之資料保持期間對應之抹除次數之區塊。如此,若不存在具有所判定之等級之抹除次數之區塊,則控制器4判定是否存在與較該判定之等級長1個等級之資料保持期間對應之抹除次數之區塊。其原因在於,於具有與所需之資料保持期間以上之資料保持期間對應之抹除次數之區塊中,優選選擇具有與儘可能短之資料保持期間對應之抹除次數之區塊作為寫入目標區塊。
繼而,判定是否存在與較最長之資料保持期間短1個等級之資料保持期間對應之抹除次數之區塊(步驟S610),若存在與較最長之資料保持期間短1個等級之資料保持期間對應之抹除次數之區塊(步驟S610之是),則控制器4選擇與較最長之資料保持期間短1個等級之資料保持期間對應之抹除次數之區塊作為寫入目標區塊(步驟S611)。繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S612)。
若不存在與較最長之資料保持期間短1個等級之資料保持期間對應之抹除次數之區塊(步驟S610之否),則控制器4選擇與最長之資料保持期間對應之抹除次數之區塊作為寫入目標區塊(步驟S613)。控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S614)。
圖22之流程圖表示基於抹除次數選擇寫入目標區塊,藉由消耗降低編程模式對所選擇之區塊寫入資料之動作之順序。
圖22之流程圖係將圖21之流程圖中之步驟S609變更為步驟S709、將步驟S612變更為步驟S712、將步驟S614變更為步驟S714之流程圖。
於選擇具有與所需之資料保持期間一致之資料保持期間所對應之抹除次數之區塊作為寫入目標區塊之情形時(步驟S603~S605),控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S606)。
另一方面,於由於不存在具有與所需之資料保持期間一致之資料保持期間所對應之抹除次數之區塊,故而選擇具有與較指定之資料保持期間長之資料保持期間對應之抹除次數之區塊作為寫入目標區塊之情形時(步驟S608、步驟S611、步驟S613),控制器4以消耗降低編程模式對所選擇之區塊寫入應寫入之資料(步驟S709、步驟S712、步驟S714)。
圖23之流程圖表示基於抹除時間將區塊分類之順序。由於區塊之消耗度可基於區塊之抹除時間進行判斷,故而亦可基於區塊之抹除時間執行將區塊分類之動作。再者,抹除時間越長,消耗度變得越大,抹除時間越短,消耗度變得越小。
控制器4對NAND型快閃記憶體5中所包含之各區塊之抹除時間進行監視(步驟S801)。繼而,控制器4選擇某一個區塊(步驟S802)。
於其後之步驟S803~S809中,基於步驟S802中所選擇之區塊之抹除時間,執行所選擇之區塊之分組。
控制器4判定所選擇之區塊之抹除時間是否與等級1對應(步驟S803)。若所選擇之區塊之抹除時間與等級1對應(步驟S803之是),則控制器4將所選擇之區塊分類為消耗度=等級1之組(步驟S804)。
若所選擇之區塊之抹除時間不與等級1對應(步驟S803之否),則控制器4判定所選擇之區塊之抹除時間是否與等級2對應(步驟S805)。若所選擇之區塊之抹除時間與等級2對應(步驟S805之是),則控制器4將所選擇之區塊分類為消耗度=等級2之組(步驟S806)。
若所選擇之區塊之抹除時間不與等級2對應(步驟S805之否),則控制器4判定所選擇之區塊之抹除時間是否與等級3對應(步驟S807)。若所選擇之區塊之抹除時間與等級3對應(步驟S807之是),則控制器4將所選擇之區塊分類為消耗度=等級3之組(步驟S808)。
若所選擇之區塊之抹除時間不與等級3對應(步驟S807之否),則控制器4將所選擇之區塊分類為消耗度=等級4之組(步驟S809)。
圖24之流程圖表示基於抹除時間選擇寫入目標區塊,並對所選擇之區塊寫入資料之動作之順序。
當自主機2接收到包含指定應寫入之資料所需之資料保持期間之參數的寫入指令時(步驟S901之是),控制器4參照區塊消耗度管理表33A',尋找具有滿足所需之資料保持期間之抹除時間之區塊(步驟S902),判定是否存在具有滿足所需之資料保持期間之抹除時間之區塊(步驟S903)。具有滿足所需之資料保持期間之抹除時間之區塊係指由抹除時間推定之資料保持期間為由寫入指令指定之資料保持期間以上之區塊。
若不存在具有滿足所需之資料保持期間之抹除時間之區塊(步驟S903之否),則控制器4向主機2回復錯誤(步驟S915)。
若存在具有滿足所需之資料保持期間之抹除時間之區塊(步驟S903之是),則控制器4判定是否存在具有與所需之資料保持期間一致之資料保持期間所對應之抹除時間之區塊(步驟S904)。
若存在具有與所需之資料保持期間一致之資料保持期間所對應之抹除時間之區塊(步驟S904之是),則控制器4選擇具有與所需之資料保持期間一致之資料保持期間所對應之抹除時間之區塊(步驟S905)。繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S906)。
若不存在具有與所需之資料保持期間一致之資料保持期間所對應之抹除時間之區塊(步驟S904之否),則控制器4判定是否存在與較所需之資料保持期間長1個等級之資料保持期間對應之抹除時間之區塊(步驟S907)。若存在與較所需之資料保持期間長1個等級之資料保持期間對應之抹除時間之區塊(步驟S907之是),則控制器4選擇與較所需之資料保持期間長1個等級之資料保持期間對應之抹除時間之區塊(步驟S908)。繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S909)。
若不存在與較所需之資料保持期間長1個等級之資料保持期間對應之抹除時間之區塊(步驟S907之否),則判定是否存在與較所需之資料保持期間長2個等級之資料保持期間對應之抹除時間之區塊。繼而,若不存在與較所需之資料保持期間長2個等級之資料保持期間對應之抹除時間之區塊,則判定是否存在與較所需之資料保持期間長3個等級之資料保持期間對應之抹除時間之區塊。如此,若不存在具有所判定之等級之抹除時間之區塊,則判定是否存在與較該判定之等級長1個等級之資料保持期間對應之抹除時間之區塊。其原因在於,於具有與所需之資料保持期間以上之資料保持期間對應之抹除時間之區塊中,優選選擇具有與儘可能短之資料保持期間對應之抹除時間之區塊作為寫入目標區塊。
繼而,判定是否存在與較最長之資料保持期間短1個等級之資料保持期間對應之抹除時間之區塊(步驟S910),若存在與較最長之資料保持期間短1個等級之資料保持期間對應之抹除時間之區塊(步驟S910之是),則控制器4選擇與較最長之資料保持期間短1個等級之資料保持期間對應之抹除時間之區塊作為寫入目標區塊(步驟S911)。繼而,控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S912)。
若不存在與較最長之資料保持期間短1個等級之資料保持期間對應之抹除時間之區塊(步驟S910之否),則控制器4選擇與最長之資料保持期間對應之抹除時間之區塊作為寫入目標區塊(步驟S913)。控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S914)。
圖25之流程圖表示基於抹除時間選擇寫入目標區塊,藉由消耗降低編程模式對所選擇之區塊寫入資料之動作之順序。
圖25之流程圖係將圖24之流程圖中之步驟S909變更為步驟S1009、將步驟S912變更為步驟S1012、將步驟S914變更為步驟S1014之流程圖。
於選擇具有與所需之資料保持期間一致之資料保持期間所對應之抹除時間之區塊作為寫入目標區塊之情形時(步驟S903~S905),控制器4藉由通常之編程模式對所選擇之區塊寫入應寫入之資料(步驟S906)。
另一方面,於由於不存在具有與所需之資料保持期間一致之資料保持期間所對應之抹除時間之區塊,故而選擇具有與較指定之資料保持期間長之資料保持期間對應之抹除時間之區塊作為寫入目標區塊之情形時(步驟S908、步驟S911、步驟S913),控制器4以消耗降低編程模式對所選擇之區塊寫入應寫入之資料(步驟S1009、步驟S1012、步驟S1014)。
(第2實施形態) 於第1實施形態中,於快閃儲存裝置3內設置有進行邏輯位址各者與實體位址各者之間的映射之管理之查找表(LUT)32。於第2實施形態中,主機2具有進行邏輯位址各者與實體位址各者之間的映射之管理之查找表(LUT)32A,於快閃儲存裝置3中不存在查找表(LUT)32。
以下僅對與第1實施形態不同之方面進行說明。
圖26表示包含第2實施形態之記憶體系統之資訊處理系統1之構成例。
與第1實施形態之不同在於,於快閃儲存裝置3內無LUT32,取而代之,於主機2之快閃儲存管理器44內具有LUT32A。
於LUT32A中,對邏輯位址各者與快閃儲存裝置3之實體位址各者之間的映射進行管理。於LUT32A中,邏輯位址係識別資料之識別碼(標籤),該邏輯位址(標籤)可為LBA,可為鍵值儲存器(key-value store)之鍵,亦可為如檔案名之檔案識別碼。LUT32A係由快閃儲存管理器44進行管理,LUT32A之更新亦藉由快閃儲存管理器44進行。
又,於快閃儲存裝置3內之系統管理資訊33中,與第1實施形態同樣地包含區塊消耗度管理表33A、區塊消耗度管理表33A'、區塊資訊。區塊資訊如上所述包含表示NAND型快閃記憶體5內之區塊之各者中所含之資料各者之有效/無效之旗標(點陣圖旗標)。
圖27表示應用於第2實施形態之快閃儲存裝置3之寫入指令。
該寫入指令係對快閃儲存裝置3請求資料寫入之指令。該寫入指令亦可包含指定QoS(Quality of Service,服務品質)域ID(Identity,標識)之參數、指定邏輯位址之參數、指定長度之參數、指定所需之資料保持期間之參數等。
QoS域ID係能夠唯一地識別應寫入資料之QoS域之識別碼。對應於來自某一終端使用者之寫入請求而自主機2發送之寫入指令亦可包含指定與該終端使用者對應之QoS域之QoS域ID。名稱空間ID亦可作為QoS域ID處理。
邏輯位址係識別應寫入之資料之標籤,例如LBA、鍵值儲存器之鍵、檔案識別碼相當於該邏輯位址。
長度表示應寫入之寫入資料之長度。長度可藉由LBA數指定,或者該尺寸亦可藉由位元組指定。
所需之資料保持期間表示應寫入之資料所需之資料保持期間(例如1週、2週、1個月、2個月、4個月、6個月、8個月、1年、5年、10年等)。
圖28表示對圖27之寫入指令之響應。
該響應包含邏輯位址、實體位址、長度。
邏輯位址係圖27之寫入指令中所包含之邏輯位址。
實體位址表示對應於圖27之寫入指令而被寫入資料之NAND型快閃記憶體5內之實體記憶位置之實體位址。
長度表示所寫入之寫入資料之長度。長度可藉由LBA數指定,或者該尺寸亦可藉由位元組指定。
圖29表示應用於第2實施形態之快閃儲存裝置3之Trim指令。
該Trim指令包含實體位址、長度。
實體位址表示儲存有應失效之資料(應減少參照計數之資料)之最初之實體記憶位置。
長度表示應失效之資料(應減少參照計數之資料)之長度。該長度(資料長度)亦可藉由位元組指定。
控制器4係對表示區塊之各者中所包含之資料各者之有效/無效之旗標(點陣圖旗標)進行管理。於自主機2接收到包含表示儲存有應變得無效之資料之實體記憶位置之實體位址之Trim指令之情形時,控制器4更新作為系統管理資訊33之一部分之區塊資訊,將與Trim指令中所含之與實體位址對應之實體記憶位置之資料所對應之旗標(點陣圖旗標)變更為表示無效之值。
圖30之序列圖表示響應圖27之寫入指令之接收而藉由主機2與快閃儲存裝置3執行之資料寫入處理。
主機2將包含QoS域ID、邏輯位址、寫入資料、長度、所需之資料保持期間之寫入指令發送至快閃儲存裝置3。於快閃儲存裝置3之控制器4接收到該寫入指令時,控制器4選擇根據消耗度推定之資料保持期間為由主機2指定之資料保持期間以上之區塊(步驟S1101),決定所選擇之區塊內之寫入位置,對該選擇之區塊內之寫入位置寫入寫入資料(步驟S1102)。
繼而,控制器4向主機2回復對該寫入指令之響應(步驟S1103)。響應包含邏輯位址、實體位址、長度。實體位址指定所選擇之區塊與該選擇之區塊內之寫入位置之兩者。該實體位址亦可藉由表示所選擇之區塊之區塊位址與表示寫入位置之區塊內偏移而表現。
於主機2接收到該響應時,主機2更新由主機2管理之LUT32A,將實體位址映射至與寫入之寫入資料對應之邏輯位址(步驟S1104)。
其後,主機2將用於使因上述更新資料之寫入而變得無用之以前之資料失效之Trim指令發送至快閃儲存裝置3。
快閃儲存裝置3之控制器4係對應於該Trim指令而更新區塊資訊(步驟S1105)。區塊資訊之更新係指更新作為系統管理資訊33之一部分之區塊資訊,將與Trim指令中所含之實體位址對應之實體記憶位置之資料所對應之旗標(點陣圖旗標)變更為表示無效之值。
圖31表示內置快閃儲存裝置3之主機2之構成例。
該資訊處理裝置具備可收容於支架之較薄之箱形之殼體201。多個快閃儲存裝置3亦可配置於殼體201內。於此情形時,各快閃儲存裝置3亦可能夠卸除地***至設置於殼體201之前表面201A之插槽。
系統板(母板)202配置於殼體201內。於系統板(母板)202上安裝有包含CPU101、記憶體102、網路控制器105、控制器107之各種電子零件。該等電子零件作為主機2發揮功能。
如以上所說明,根據第1及第2實施形態,於自主機2接收到包含指定應寫入之資料所需之資料保持期間之參數之寫入請求之情形時,選擇根據消耗度推定之資料保持期間為由主機2指定之資料保持期間以上之區塊作為寫入目標區塊,並對該選擇之區塊寫入資料。藉此,於混合存在指定不同之資料保持期間之寫入請求各者之環境下,可對所需之資料保持期間不同之複數種資料最佳地分配具有不同之消耗度之複數個區塊。例如,對於需要5年資料保持期間之資料之寫入請求,可分配低消耗度之區塊作為寫入目標區塊,對於需要1個月之資料保持期間之資料之寫入請求,可分配相對較大之消耗度之區塊作為寫入目標區塊。
又,根據第1及第2實施形態,於根據消耗度推定之資料保持期間為指定之資料保持期間以上之區塊中,優先選擇具有與更短之資料保持期間對應之消耗度之區塊作為寫入目標區塊。因此,可防止如下事態:於寫入由主機2指定之資料保持期間較短之資料之情形時,將具有超出需要之資料保持期間之區塊用於該資料之寫入;於執行由主機2指定之資料保持期間較長之資料之寫入時,具有與由主機2指定之資料保持期間以上之資料保持期間對應之消耗度之區塊不足。因此,可對所需之資料保持期間不同之複數種資料進一步最佳地分配具有不同之消耗度之複數個區塊。
進而,於由被選作寫入目標區塊之區塊之消耗度推定之資料保持期間長於由主機2指定之資料保持期間之情形時,可藉由充電至所選擇之區塊之記憶胞群之電荷量較利用通常之編程模式之編程動作少之利用消耗降低模式之編程動作將資料寫入至所選擇之區塊。藉此,與執行利用通常之編程模式之編程動作之情形相比,可降低記憶胞群之消耗,可使快閃儲存裝置3長壽命化。
因此,根據第1及第2實施形態,可提供一種能夠謀求可靠性之提高之記憶體系統。
再者,於第1及第2實施形態中,例示有NAND型快閃記憶體作為非揮發性記憶體。但是,第1及第2實施形態之功能例如亦可應用於如MRAM(Magnetoresistive Random Access Memory,磁阻式隨機存取記憶體)、PRAM(Phase change Random Access Memory,相變隨機存取記憶體)、ReRAM(Resistive Random Access Memory,電阻式隨機存取記憶體)、或FeRAM(Ferroelectric Random Access Memory,鐵電式隨機存取記憶體)之其他各種非揮發性記憶體。
雖然對本發明之若干種實施形態進行了說明,但該等實施形態係作為例子提出者,並非意圖限定發明之範圍。該等新穎之實施形態可以其他各種形態實施,可於不脫離發明主旨之範圍內進行各種省略、替換、變更。該等實施形態或其變化包含於發明之範圍或主旨內,並且包含於申請專利範圍所記載之發明及其均等之範圍內。
[相關申請案] 本申請案享有將日本專利申請案2017-213955號(申請日:2017年11月6日)作為基礎申請案之優先權。本申請案係藉由參照該基礎申請案而包含基礎申請案之全部內容。
1‧‧‧資訊處理系統2‧‧‧主機3‧‧‧快閃儲存裝置4‧‧‧控制器5‧‧‧NAND型快閃記憶體6‧‧‧DRAM10‧‧‧DRAM11‧‧‧主機介面12‧‧‧CPU13‧‧‧NAND介面13A‧‧‧抹除時間測定部14‧‧‧DRAM介面21‧‧‧抹除次數監視器部22‧‧‧抹除時間監視器部23‧‧‧區塊分類部24‧‧‧寫入動作控制部25‧‧‧消耗降低處理部31‧‧‧寫入緩衝器(WB)32‧‧‧查找表(LUT)32A‧‧‧查找表(LUT)33‧‧‧系統管理資訊41‧‧‧應用軟體層42‧‧‧作業系統(OS)43‧‧‧檔案系統44‧‧‧快閃儲存管理器51‧‧‧現用區塊池52‧‧‧自由區塊池101‧‧‧CPU102‧‧‧記憶體105‧‧‧網路控制器107‧‧‧控制器201‧‧‧殼體201A‧‧‧前表面202‧‧‧系統板(母板)301~303‧‧‧區塊304~307‧‧‧區塊308~311‧‧‧區塊312~315‧‧‧區塊316~318‧‧‧區塊319~322‧‧‧區塊323~326‧‧‧區塊327~329‧‧‧區塊330~332‧‧‧區塊333~335‧‧‧區塊BLK‧‧‧區塊B0~Bm-1‧‧‧區塊P0~Pn-1‧‧‧頁面S101~S104‧‧‧步驟S201~S209‧‧‧步驟S301~S315‧‧‧步驟S409、S412、S414‧‧‧步驟S501~S509‧‧‧步驟S601~S615‧‧‧步驟S709、S712、S714‧‧‧步驟S801~S809‧‧‧步驟S901~S915‧‧‧步驟S1009、S1012、S1014‧‧‧步驟S1101~S1105‧‧‧步驟VA1‧‧‧電壓VA2‧‧‧電壓VB1‧‧‧電壓VB2‧‧‧電壓VC1‧‧‧電壓VC2‧‧‧電壓VR1‧‧‧電壓VR2‧‧‧電壓
圖1係表示第1實施形態之記憶體系統之構成例之方塊圖。 圖2係表示設置於第1實施形態之記憶體系統之NAND介面與複數個NAND型快閃記憶體晶粒之關係之方塊圖。 圖3係表示由複數個區塊之集合構築之超級區塊(並聯單位)之構成例之圖。 圖4係表示藉由第1實施形態之記憶體系統執行之抹除動作之序列之時序圖。 圖5係表示藉由第1實施形態之記憶體系統執行之寫入動作之圖。 圖6係表示藉由第1實施形態之記憶體系統管理之區塊消耗度管理表之例之圖。 圖7係表示藉由第1實施形態之記憶體系統管理之區塊消耗度管理表之另一例之圖。 圖8係用以說明應用於第1實施形態之記憶體系統之寫入指令之圖。 圖9係表示響應圖8之寫入指令之接收而藉由第1實施形態之記憶體系統執行之資料寫入處理序列之圖。 圖10係表示存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時藉由第1實施形態之記憶體系統執行之寫入目標區塊之選擇方式之圖。 圖11係表示存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時藉由第1實施形態之記憶體系統執行之寫入目標區塊之選擇方式之圖。 圖12係表示存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時時藉由第1實施形態之記憶體系統執行之與圖11所示者不同之寫入目標區塊之選擇方式之圖。 圖13係表示不存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時藉由第1實施形態之記憶體系統執行之寫入目標區塊之選擇方式之圖。 圖14係表示不存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時藉由第1實施形態之記憶體系統執行之寫入目標區塊之選擇方式之圖。 圖15係表示不存在具有與由寫入指令指定之資料保持期間一致之資料保持期間之區塊之情形時藉由第1實施形態之記憶體系統執行之對所選擇之區塊之利用消耗降低編程模式之資料寫入動作之圖。 圖16係用以對藉由第1實施形態之記憶體系統執行之利用消耗降低編程模式之資料寫入動作時之閾值電壓位準進行說明之圖。 圖17係表示藉由第1實施形態之記憶體系統執行之基於消耗度將區塊分類之順序之流程圖。 圖18係表示藉由第1實施形態之記憶體系統執行之基於消耗度選擇寫入目標區塊並對所選擇之區塊寫入資料之動作之順序之流程圖。 圖19係表示藉由第1實施形態之記憶體系統執行之基於消耗度選擇寫入目標區塊並藉由消耗降低編程模式對所選擇之區塊寫入資料之動作之順序之流程圖。 圖20係表示藉由第1實施形態之記憶體系統執行之基於抹除次數將區塊分類之順序之流程圖。 圖21係表示藉由第1實施形態之記憶體系統執行之基於抹除次數選擇寫入目標區塊並對所選擇之區塊寫入資料之動作之順序之流程圖。 圖22係表示藉由第1實施形態之記憶體系統執行之基於抹除次數選擇寫入目標區塊並藉由消耗降低編程模式對所選擇之區塊寫入資料之動作之順序之流程圖。 圖23係表示藉由第1實施形態之記憶體系統執行之基於抹除時間將區塊分類之順序之流程圖。 圖24係表示藉由第1實施形態之記憶體系統執行之基於抹除時間選擇寫入目標區塊並對所選擇之區塊寫入資料之動作之順序之流程圖。 圖25係表示藉由第1實施形態之記憶體系統執行之基於抹除時間選擇寫入目標區塊並藉由消耗降低編程模式對所選擇之區塊寫入資料之動作之順序之流程圖。 圖26係表示第2實施形態之記憶體系統(快閃儲存裝置)之構成例之方塊圖。 圖27係用以說明應用於第2實施形態之記憶體系統之寫入指令之圖。 圖28係用以說明對圖27之寫入指令之響應之圖。 圖29係用以說明應用於第2實施形態之記憶體系統之Trim指令之圖。 圖30係表示藉由主機與第2實施形態之記憶體系統執行之資料寫入處理序列之圖。 圖31係包含主機與第1或第2記憶體系統之電腦之構成例之圖。
301~303‧‧‧區塊
304~307‧‧‧區塊
308~311‧‧‧區塊
312~315‧‧‧區塊
316~318‧‧‧區塊
319~322‧‧‧區塊
323~326‧‧‧區塊
327~329‧‧‧區塊
330~332‧‧‧區塊
333~335‧‧‧區塊
Claims (12)
- 一種記憶體系統,其係能夠連接於主機者,且包含:非揮發性記憶體;及控制器,其電性連接於上述非揮發性記憶體,且控制上述非揮發性記憶體;上述控制器係構成為:對上述非揮發性記憶體內之複數個區塊各者之消耗度進行管理,自上述主機接收寫入請求,該寫入請求包含:參數,該參數針對應寫入之第1資料,指定所需之資料保持期間,對上述複數個區塊中之第1區塊寫入上述第1資料,上述第1區塊係:與消耗度對應之資料保持期間為上述第1資料之寫入請求所指定之資料保持期間以上。
- 如請求項1之記憶體系統,其中上述複數個區塊各者之消耗度係藉由上述複數個區塊各者之抹除次數表示。
- 如請求項1之記憶體系統,其中上述複數個區塊各者之消耗度係藉由上述複數個區塊各者之抹除時間表示。
- 如請求項1之記憶體系統,其中上述控制器係構成為:於根據消耗度推定之資料保持期間為上述第1資料之寫入請求所指定之資料保持期間以上之區塊中,優先選擇具有與更短之資料保持期間對應之消耗度之區塊作 為上述第1區塊。
- 如請求項1之記憶體系統,其中上述控制器係構成為:基於上述複數個區塊各者之消耗度,將上述複數個區塊分類為與複數個資料保持期間對應之複數個區塊組,於存在被分類為具有與上述第1資料之寫入請求所指定之資料保持期間一致之資料保持期間之第1區塊組的區塊之情形時,選擇被分類為上述第1區塊組之區塊作為上述第1區塊,於不存在被分類為上述第1區塊組之區塊之情形時,選擇被分類為具有較上述第1資料之寫入請求所指定之資料保持期間長之資料保持期間之第2區塊組的區塊作為上述第1區塊。
- 如請求項1之記憶體系統,其中上述控制器係於根據上述第1區塊之消耗度推定之資料保持期間與上述第1資料之寫入請求所指定之資料保持期間相同之情形時,藉由第1編程動作將上述第1資料寫入至上述第1區塊,於根據上述第1區塊之消耗度推定之資料保持期間較上述第1資料之寫入請求所指定之資料保持期間長之情形時,藉由充電至上述第1區塊之記憶胞群之電荷量較上述第1編程動作少之第2編程動作將上述第1資料寫入至上述第1區塊。
- 一種非揮發性記憶體之控制方法,其包括如下步驟:對非揮發性記憶體內之複數個區塊各者之消耗度進行管理; 自主機接收寫入請求,該寫入請求包含:參數,該參數針對應寫入之第1資料,指定所需之資料保持期間;對上述複數個區塊中之第1區塊寫入上述第1資料,上述第1區塊係:與消耗度對應之資料保持期間為上述第1資料之寫入請求所指定之資料保持期間以上。
- 如請求項7之非揮發性記憶體之控制方法,其中上述複數個區塊各者之消耗度係藉由上述複數個區塊各者之抹除次數表示。
- 如請求項7之非揮發性記憶體之控制方法,其中上述複數個區塊各者之消耗度係藉由上述複數個區塊各者之抹除時間表示。
- 如請求項7之非揮發性記憶體之控制方法,其中上述寫入之步驟包含如下步驟:於根據消耗度推定之資料保持期間為上述第1資料之寫入請求所指定之資料保持期間以上之區塊中,優先選擇具有與更短之資料保持期間對應之消耗度之區塊作為上述第1區塊。
- 如請求項7之非揮發性記憶體之控制方法,其進而包括如下步驟:基於上述複數個區塊各者之消耗度,將上述複數個區塊分類為與複數個資料保持期間對應之複數個區塊組;且上述寫入之步驟包含如下步驟:於存在被分類為具有與上述第1資料之寫入請求所指定之資料保持期間一致之資料保持期間之第1區塊組的區塊之情形時,選擇被分類為上述 第1區塊組之區塊作為上述第1區塊;及於不存在被分類為上述第1區塊組之區塊之情形時,選擇被分類為具有較上述第1資料之寫入請求所指定之資料保持期間長之資料保持期間之第2區塊組的區塊作為上述第1區塊。
- 如請求項7之非揮發性記憶體之控制方法,其中上述寫入之步驟包含如下步驟:於根據上述第1區塊之消耗度推定之資料保持期間與上述第1資料之寫入請求所指定之資料保持期間相同之情形時,藉由第1編程動作將上述第1資料寫入至上述第1區塊;及於根據上述第1區塊之消耗度推定之資料保持期間較上述第1資料之寫入請求所指定之資料保持期間長之情形時,藉由充電至上述第1區塊之記憶胞群之電荷量較上述第1編程動作少之第2編程動作將上述第1資料寫入至上述第1區塊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-213955 | 2017-11-06 | ||
JP2017213955A JP7010667B2 (ja) | 2017-11-06 | 2017-11-06 | メモリシステムおよび制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201918885A TW201918885A (zh) | 2019-05-16 |
TWI729307B true TWI729307B (zh) | 2021-06-01 |
Family
ID=66327149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107127264A TWI729307B (zh) | 2017-11-06 | 2018-08-06 | 記憶體系統及非揮發性記憶體之控制方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11042305B2 (zh) |
JP (1) | JP7010667B2 (zh) |
CN (1) | CN109753234B (zh) |
TW (1) | TWI729307B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301143B2 (en) * | 2019-06-05 | 2022-04-12 | Micron Technology, Inc. | Selective accelerated sampling of failure-sensitive memory pages |
US11720352B2 (en) * | 2019-12-10 | 2023-08-08 | Micron Technology, Inc. | Flexible command pointers to microcode operations |
US11562792B2 (en) * | 2020-03-18 | 2023-01-24 | Kioxia Corporation | Memory system having a non-volatile memory and a controller configured to switch a mode for controlling an access operation to the non-volatile memory |
US11543987B2 (en) * | 2020-06-04 | 2023-01-03 | Western Digital Technologies, Inc. | Storage system and method for retention-based zone determination |
US11556257B2 (en) * | 2020-08-14 | 2023-01-17 | Micron Technology, Inc. | Selectable wear life indicator based on data retention |
JP2022114726A (ja) * | 2021-01-27 | 2022-08-08 | キオクシア株式会社 | メモリシステムおよび制御方法 |
TWI821152B (zh) * | 2021-02-23 | 2023-11-01 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
TWI808384B (zh) * | 2021-02-23 | 2023-07-11 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
US20230075055A1 (en) * | 2021-09-08 | 2023-03-09 | Quanta Computer Inc. | Method and system for providing life cycle alert for flash memory device |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070266200A1 (en) * | 2006-05-15 | 2007-11-15 | Gorobets Sergey A | Methods of End of Life Calculation for Non-Volatile Memories |
CN100385415C (zh) * | 2002-10-28 | 2008-04-30 | 桑迪士克股份有限公司 | 用于维护擦除计数的非易失性存储器***、数据结构和区块 |
TW200834581A (en) * | 2006-11-30 | 2008-08-16 | Toshiba Kk | Memory system |
US20090138654A1 (en) * | 2006-12-11 | 2009-05-28 | Pantas Sutardja | Fatigue management system and method for hybrid nonvolatile solid state memory system |
TW201205289A (en) * | 2010-02-26 | 2012-02-01 | Toshiba Kk | Memory system |
CN103678150A (zh) * | 2013-12-23 | 2014-03-26 | 华为技术有限公司 | 固态硬盘使用方法及装置 |
TW201418989A (zh) * | 2009-01-08 | 2014-05-16 | Micron Technology Inc | 記憶體系統控制器 |
CN104156317A (zh) * | 2014-08-08 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种非易失性闪存的擦写管理方法及*** |
CN105353979A (zh) * | 2015-10-22 | 2016-02-24 | 湖南国科微电子股份有限公司 | SSD内部数据文件***eblock链接结构、管理***及方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200834181A (en) | 2007-02-12 | 2008-08-16 | Wang yong qi | Display system with LED backlighting module |
TWI385669B (zh) * | 2008-07-23 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
US8213229B2 (en) * | 2008-08-22 | 2012-07-03 | HGST Netherlands, B.V. | Error control in a flash memory device |
TWI460588B (zh) * | 2009-07-17 | 2014-11-11 | Toshiba Kk | Memory management device and memory information processing device |
JP2011070346A (ja) | 2009-09-25 | 2011-04-07 | Toshiba Corp | メモリシステム |
US8380915B2 (en) * | 2010-01-27 | 2013-02-19 | Fusion-Io, Inc. | Apparatus, system, and method for managing solid-state storage media |
JP2011227802A (ja) * | 2010-04-22 | 2011-11-10 | Funai Electric Co Ltd | データ記録装置 |
KR101180406B1 (ko) * | 2011-01-28 | 2012-09-10 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 블럭 관리 방법 |
US9798654B2 (en) * | 2011-09-15 | 2017-10-24 | International Business Machines Corporation | Retention management for phase change memory lifetime improvement through application and hardware profile matching |
US8806111B2 (en) | 2011-12-20 | 2014-08-12 | Fusion-Io, Inc. | Apparatus, system, and method for backing data of a non-volatile storage device using a backing store |
KR101989850B1 (ko) * | 2012-04-03 | 2019-06-18 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법 |
US20140122774A1 (en) * | 2012-10-31 | 2014-05-01 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method for Managing Data of Solid State Storage with Data Attributes |
US9201786B2 (en) * | 2012-12-21 | 2015-12-01 | Kabushiki Kaisha Toshiba | Memory controller and memory system |
US9263136B1 (en) | 2013-09-04 | 2016-02-16 | Western Digital Technologies, Inc. | Data retention flags in solid-state drives |
US9329797B2 (en) * | 2013-12-30 | 2016-05-03 | Sandisk Technologies Inc. | Method and system for adjusting block erase or program parameters based on a predicted erase life |
US9225527B1 (en) | 2014-08-29 | 2015-12-29 | Coban Technologies, Inc. | Hidden plug-in storage drive for data integrity |
JP6414853B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
-
2017
- 2017-11-06 JP JP2017213955A patent/JP7010667B2/ja active Active
-
2018
- 2018-06-11 US US16/004,509 patent/US11042305B2/en active Active
- 2018-08-06 CN CN201810887402.6A patent/CN109753234B/zh active Active
- 2018-08-06 TW TW107127264A patent/TWI729307B/zh active
-
2021
- 2021-05-26 US US17/331,043 patent/US11747989B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100385415C (zh) * | 2002-10-28 | 2008-04-30 | 桑迪士克股份有限公司 | 用于维护擦除计数的非易失性存储器***、数据结构和区块 |
US20070266200A1 (en) * | 2006-05-15 | 2007-11-15 | Gorobets Sergey A | Methods of End of Life Calculation for Non-Volatile Memories |
TW200834581A (en) * | 2006-11-30 | 2008-08-16 | Toshiba Kk | Memory system |
US20090138654A1 (en) * | 2006-12-11 | 2009-05-28 | Pantas Sutardja | Fatigue management system and method for hybrid nonvolatile solid state memory system |
TW201418989A (zh) * | 2009-01-08 | 2014-05-16 | Micron Technology Inc | 記憶體系統控制器 |
TW201205289A (en) * | 2010-02-26 | 2012-02-01 | Toshiba Kk | Memory system |
CN103678150A (zh) * | 2013-12-23 | 2014-03-26 | 华为技术有限公司 | 固态硬盘使用方法及装置 |
CN104156317A (zh) * | 2014-08-08 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种非易失性闪存的擦写管理方法及*** |
CN105353979A (zh) * | 2015-10-22 | 2016-02-24 | 湖南国科微电子股份有限公司 | SSD内部数据文件***eblock链接结构、管理***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109753234A (zh) | 2019-05-14 |
CN109753234B (zh) | 2022-05-13 |
US11747989B2 (en) | 2023-09-05 |
TW201918885A (zh) | 2019-05-16 |
US11042305B2 (en) | 2021-06-22 |
JP7010667B2 (ja) | 2022-01-26 |
JP2019086970A (ja) | 2019-06-06 |
US20210278974A1 (en) | 2021-09-09 |
US20190138226A1 (en) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI729307B (zh) | 記憶體系統及非揮發性記憶體之控制方法 | |
US11221914B2 (en) | Memory system for controlling nonvolatile memory | |
US10761780B2 (en) | Memory system | |
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
CN109725847B (zh) | 存储器***及控制方法 | |
CN109582599B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
CN106874217B (zh) | 存储器***及控制方法 | |
KR20210108107A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
JP2018049522A (ja) | メモリシステム及び制御方法 | |
CN111026326B (zh) | 存储器控制器、存储装置及管理元数据的方法 | |
US9195579B2 (en) | Page replacement method and memory system using the same | |
US20150127886A1 (en) | Memory system and method | |
CN109697027B (zh) | 包括共享存储器区域和专用存储器区域的数据存储设备 | |
CN114442914B (zh) | 存储器*** | |
CN113785278A (zh) | 用于避免并发写入流之间冲突的动态数据放置 | |
US20200293221A1 (en) | Storage device and computing device including storage device | |
US20200356491A1 (en) | Data storage device and method for loading logical-to-physical mapping table thereof | |
CN112684976A (zh) | 用于执行迁移操作的存储器***及其操作方法 | |
US11507312B2 (en) | Storage device and method for accelerating storage device write and read speed | |
JP2019148913A (ja) | メモリシステム | |
CN112306393A (zh) | 存储装置 | |
CN115458013A (zh) | 存储装置及其操作方法 | |
US11573732B2 (en) | Storage device, memory system comprising the same, and operation method thereof |