TWI643127B - Memory system and control method - Google Patents
Memory system and control method Download PDFInfo
- Publication number
- TWI643127B TWI643127B TW106122909A TW106122909A TWI643127B TW I643127 B TWI643127 B TW I643127B TW 106122909 A TW106122909 A TW 106122909A TW 106122909 A TW106122909 A TW 106122909A TW I643127 B TWI643127 B TW I643127B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- nvm
- group
- data
- chip group
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 317
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000009471 action Effects 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims description 37
- 238000006243 chemical reaction Methods 0.000 claims description 21
- 230000001568 sexual effect Effects 0.000 claims description 2
- 235000012431 wafers Nutrition 0.000 claims 2
- 230000004044 response Effects 0.000 abstract description 18
- 239000000872 buffer Substances 0.000 description 33
- 238000010586 diagram Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 14
- 230000010365 information processing Effects 0.000 description 13
- 239000000758 substrate Substances 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 239000000463 material Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 229910000679 solder Inorganic materials 0.000 description 8
- 239000010410 layer Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000010076 replication Effects 0.000 description 5
- 239000011347 resin Substances 0.000 description 5
- 229920005989 resin Polymers 0.000 description 5
- 238000012005 ligant binding assay Methods 0.000 description 4
- 230000003071 parasitic effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013403 standard screening design Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000000149 penetrating effect Effects 0.000 description 3
- 238000007789 sealing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005476 soldering Methods 0.000 description 2
- 241000724291 Tobacco streak virus Species 0.000 description 1
- 239000012790 adhesive layer Substances 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- -1 via Substances 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
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/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]
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B41/00—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
- H10B41/30—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
- H10B41/35—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region with a cell select transistor, e.g. NAND
-
- 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
-
- 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
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B12/00—Dynamic random access memory [DRAM] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2236—Copy
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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Vehicle Body Suspensions (AREA)
- Selective Calling Equipment (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
- Debugging And Monitoring (AREA)
Abstract
本發明的實施形態係提供一種能夠以無晶片爭用而存取非揮發性記憶體且能夠解消不均等的消耗的記憶體系統及控制方法。
實施形態的記憶體系統,將前述複數非揮發性記憶體晶片分類成複數晶片群組,使得各複數非揮發性記憶體晶片僅屬於一個晶片群組。記憶體系統,因應指定包含對應各晶片群組的至少一個區域的複數區域的任一者的來自前述主機的I/O指令,執行對於前述複數晶片群組內的一個晶片群組的資料寫入/讀出動作。記憶體系統,當從主機接收到包含指定複製源晶片群組及複製目標晶片群組的參數的指令時,執行用以將複製源晶片群組內的有效資料複製至複製目標晶片群組的動作。
Description
本申請案享有日本專利申請案號2017-36931(申請日:2017年2月28日)為基礎申請案的優先權。本申請案參照該基礎申請案而包含基礎申請案的所有內容。
本發明的實施形態係有關於具備非揮發性記憶體的記憶體系統及控制方法。
近年來,具備非揮發性記憶體的記憶體系統廣泛地普及。
作為這樣的記憶體系統的一種已知有使用NAND快閃技術基礎的固態驅動器(SSD)。SSD因其低電力消耗、高性能的特徵而作為各種電腦的儲存來使用。
通常,在SSD之中,因其大容量化故搭載有多數的非揮發性記憶體晶片。每個非揮發性記憶體晶片可以獨立動作。因此,各非揮發性記憶體可以作為並列處理的單位來作用。
不過,通常對應一個非揮發性記憶體晶片的動作,並
不並列執行,而是逐次執行。因此,若向正在執行寫入動作的非揮發性記憶體晶片發生讀取要求的話(晶片爭用),該讀取要求的應答時間(讀取延遲)會有變得非常長的情形。
又,若資料寫入集中於特定的幾個非揮發性記憶體晶片的話,該等各個特定的晶片內的區塊的消耗度增加,因此會有SSD的壽命縮短的情形。
本發明的實施形態係提供一種能夠以無晶片爭用而存取非揮發性記憶體且能夠解消不均等的消耗的記憶體系統及控制方法。
根據實施形態,可連接主機的記憶體系統具備:包含連接至複數通道的複數非揮發性記憶體晶片的非揮發性記憶體,其中各揮發性記憶體晶片包含複數區塊、通過前述複數通道來控制前述非揮發性記憶體的控制器。前述控制器,將前述複數非揮發性記憶體晶片分類成複數晶片群組,使得各前述複數非揮發性記憶體晶片僅屬於一個晶片群組。前述控制器,因應指定包含對應各晶片群組的至少一個區域的複數區域的任一者的來自前述主機的I/O指令,執行對於前述複數晶片群組內的一個晶片群組的資料寫入/讀出動作。前述控制器,藉由對應前述複數晶片群組的複數空區塊池,來將前述非揮發性記憶體的空區塊群在每個晶片群組個別地管理。前述控制器,從前述主機接
收到包含指定複製源晶片群組及複製目標晶片群組的參數的指令時,(1)從屬於前述複製源晶片群組的區塊中將保持有效資料的區塊作為複製源區塊來選擇、(2)僅將前述複製源區塊內的有效資料,從對應前述複製目標晶片群組的空區塊池複製至被分配的複製目標區塊、(3)將管理各個邏輯位址與各個前述複製源晶片群組的物理位址之間的對映之位址變換表作更新,將表示複製前述有效資料的前述複製目標區塊內的物理記憶位置的物理位址對映至對應前述被複製的有效資料的邏輯位址、(4)當有效資料從前述複製源區塊消失時,使前述複製源區塊返回至對應前述複製源晶片群組的空區塊池、(5)直到在前述複製源晶片群組不存在保持有效資料的區塊為止,重複前述(1)~(4)的動作。
2‧‧‧主機
3‧‧‧SSD
4‧‧‧控制器
5‧‧‧NAND型快閃記憶體
51、52、53、54、55、56、57‧‧‧記憶區域(假想SSD)
21‧‧‧VSSD作成部
22‧‧‧寫入資料總量測定部
23‧‧‧寫入限制部
24‧‧‧NAND處理執行時間控制部
25‧‧‧主機側存取帶寬控制部
26‧‧‧記憶體資源量分配部
[圖1]表示實施形態的記憶體系統的構成例的區塊圖。
[圖2]表示藉由分類同實施形態的記憶體系統內的複數NAND型快閃記憶體晶片而得到的各個橫跨複數通道的複數非揮發性記憶體組(NVM組)的區塊圖。
[圖3]表示對應圖2的各NVM組的區塊管理與對應各NVM組的一個以上的區域(命名空間)之間的關係的區塊圖。
[圖4]用以說明藉由同實施形態的記憶體系統所執行
的為了被分離的NVM組的主寫入/垃圾回收動作的圖。
[圖5]用以說明藉由同實施形態的記憶體系統來執行的為了共有NVM組的主寫入/垃圾回收動作的圖。
[圖6]表示藉由分類同實施形態的記憶體系統內的複數NAND型快閃記憶體晶片而得到的各個包含連接至同一通道的NAND型快閃記憶體晶片的複數NVM組的區塊圖。
[圖7]表示對應圖6的各NVM組的區塊管理與對應各NVM組的一個以上的區域(命名空間)之間的關係的區塊圖。
[圖8]模式地表示適用於同實施形態的記憶體系統的快閃記憶體封裝體的圖。
[圖9]表示圖8的快閃記憶體封裝體的構造的剖面圖。
[圖10]表示各個包含連接至同一通道的NAND型快閃記憶體晶片的複數NVM組與作為該等NVM組使用的1個以上的快閃記憶體封裝體之間的關係的圖。
[圖11]說明藉由同實施形態的記憶體系統來執行的對某NVM子組的垃圾回收動作的圖。
[圖12]說明藉由同實施形態的記憶體系統來執行的對某NVM子組的垃圾回收動作的剩下的一部分的圖。
[圖13]說明藉由同實施形態的記憶體系統來執行的對某NVM子組的垃圾回收動作的剩下的其他部分的圖。
[圖14]說明藉由同實施形態的記憶體系統來執行的NVM組間複製動作的圖。
[圖15]表示圖14的NVM組間複製動作之前的位址變換
表的內容與NVM組間複製動作之後的位址變換表的內容之間的關係的圖。
[圖16]說明藉由同實施形態的記憶體系統來執行的NVM組間複製動作的一部分的圖。
[圖17]說明藉由同實施形態的記憶體系統來執行的NVM組間複製動作的剩下的一部分的圖。
[圖18]說明藉由同實施形態的記憶體系統來執行的NVM組間複製動作的剩下的其他部分的圖。
[圖19]用以說明藉由同實施形態的記憶體系統來執行的NVM組交換動作的概要的圖。
[圖20]用以說明為了NVM組交換動作之前的2個NVM組所執行的主寫入/垃圾回收動作的圖。
[圖21]用以說明為了NVM組交換動作的在2個NVM組間所執行的主寫入/垃圾回收動作的圖。
[圖22]表示藉由同實施形態的記憶體系統來執行的新NVM組作成動作的概要的圖。
[圖23]用以說明為了NVM組作成所執行的主寫入/垃圾回收動作的圖。
[圖24]表示藉由同實施形態的記憶體系統來執行的新NVM組作成動作的一部分的圖。
[圖25]表示藉由同實施形態的記憶體系統來執行的新NVM組作成動作的剩下的一部分的圖。
[圖26]表示藉由同實施形態的記憶體系統來執行的新NVM組作成動作的剩下的其他部分的圖。
[圖27]表示藉由同實施形態的記憶體系統來執行的NVM組結合動作的概要的圖。
[圖28]用以說明為了NVM組結合所執行的主寫入/垃圾回收動作的圖。
[圖29]表示藉由同實施形態的記憶體系統來執行的資料寫入/讀出動作的順序的一部分的流程圖。
[圖30]表示藉由同實施形態的記憶體系統來執行的資料寫入/讀出動作的順序的剩餘部分的流程圖。
[圖31]表示藉由同實施形態的記憶體系統在每個某NVM子組所執行的垃圾回收動作的順序的流程圖。
[圖32]表示藉由同實施形態的記憶體系統來執行的NVM組間複製動作的順序的流程圖。
[圖33]表示藉由同實施形態的記憶體系統來執行的NVM組間複製動作的別的順序的流程圖。
[圖34]表示藉由同實施形態的記憶體系統來執行的新NVM組作成動作的順序的流程圖。
[圖35]表示藉由同實施形態的記憶體系統來執行的新NVM組作成動作的別的順序的流程圖。
[圖36]表示適用於同實施形態的記憶體系統的主機的構成例的區塊圖。
[圖37]表示包含同實施形態的記憶體系統及主機的電腦的構成例的區塊圖。
以下,參照附圖說明實施形態。
首先,參照圖1,說明關於一實施形態的包含記憶體系統之資訊處理系統1的構成。
該記憶體系統為在非揮發性記憶體寫入資料,從非揮發性記憶體讀出資料的半導體儲存裝置。該記憶體系統例如作為NAND快閃技術基礎的固態驅動器(SSD)3來實現。
資訊處理系統1,包含:主機(主裝置)2、SSD3。主機2為伺服器、個人電腦這種資訊處理裝置。作為主機2而作用的伺服器之典型例,可以是資料中心內的伺服器。
在藉由資料中心內的伺服器來實現主機2的例子中,該主機(伺服器)2也可以通過網路50連接至複數最終使用者端子51。主機2能對該等最終使用者端子51提供各種服務。複數假想機器在作為該主機(伺服器)2作用的物理伺服器上執行也可以。該等假想機器可以作為向對應的用戶端(最終使用者端子51)提供各種服務的假想伺服器來作用。
SSD3能夠作為以主機2來作用的資訊處理裝置(計算裝置)的主儲存裝置來使用。SSD3可以內藏於資訊處理裝置中,也可以通過電纜或網路來連接資訊處理裝置。
作為相互連接主機2與SSD3的各個的介面,可以使用SCSI、Serial Attached SCSI(SAS)、ATA、Serial ATA(SATA)、PCI Express(PCIe)、Ethernet(註冊商標)、Fibre channel、NVM Express(NVMe)(註冊商標)等。
SSD3具備控制器4及非揮發性記憶體(NAND型快閃記
憶體)5。SSD3也可以具備隨機存取記憶體,例如,DRAM6。
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為資料寫入動作及資料讀入動作的單位。
控制器4通過Toggle、開啟NAND快閃介面(ONFI)這種NAND介面13、及複數通道(Ch)電連接至NAND型快閃記憶體5。NAND介面13作為以控制NAND型快閃記憶體5的方式構成的NAND控制電路來作用。
NAND型快閃記憶體5如圖2所示,包含複數NAND型快閃記憶體(在圖2中作為「NAND晶片」來表示)。各NAND型快閃記憶體晶片為包含複數區塊的記憶體單元陣列及包含控制該記憶體單元陣列的周邊電路之非揮發性記憶體晶片。每個NAND型快閃記憶體晶片可以獨立動作。因此,NAND型快閃記憶體晶片可以作為單一的並列動作單位來作用。NAND型快閃記憶體晶片也稱為「NAND型快閃記憶體晶片(chip)」。
在圖2中,例示了在NAND介面13連接有複數通道Ch0、Ch1、Ch2、...ChN,而該等通道Ch0、Ch1、Ch2、...ChN的每一個分別連接同數(例如每一通道有K個晶片,K為2以上的整數)的NAND型快閃記憶體晶片的情形。各通道包含用以與對應的NAND型快閃記憶體晶片作通信的通信線(記憶體匯流排)。
在圖2中,NAND型快閃記憶體晶片600、601、602~606連接至通道Ch0。NAND型快閃記憶體晶片610、611、612~616連接至通道Ch1。NAND型快閃記憶體晶片620、621、622~626連接至通道Ch2。同樣地,NAND型快閃記憶體晶片640、641、642~646連接至通道ChN。
控制器4通過通道Ch0、Ch1、Ch2、...ChN控制NAND型快閃記憶體5。控制器4可以同時驅動通道Ch0、Ch1、Ch2、...ChN。也就是說,NAND介面13包含分別對應至通道Ch0、Ch1、Ch2、...ChN的N個NAND控制電路。控制器4可以藉由使用該等NAND控制電路,將通道Ch0、Ch1、Ch2、...ChN相互獨立驅動。
在本實施形態中,控制器4將K×N個NAND型快閃記憶體晶片600~646分類成複數晶片群組,使得各個NAND型快閃記憶體晶片僅屬於一個晶片群組。以下將該晶片群組稱為「非揮發性記憶體子組(NVM組)」。
在圖2中,各NVM組橫跨複數通道Ch0、Ch1、Ch2、...ChN。例如,NVM組60包含分別連接至通道Ch0、Ch1、Ch2、...ChN的NAND型快閃記憶體晶片600、610、
620、...640。NVM組61包含分別連接至通道Ch0、Ch1、Ch2、...ChN的NAND型快閃記憶體晶片601、611、621、...641。NVM組62包含:連接至通道Ch0的NAND型快閃記憶體晶片602、603、...605、606、連接至通道Ch1的NAND型快閃記憶體晶片612、613、...615、616、連接至通道Ch2的NAND型快閃記憶體晶片622、623、...625、626、還有連接至通道ChN的NAND型快閃記憶體晶片642、643、...645、646。
因此在圖2中,K×N個NAND型快閃記憶體晶片600~646被分類成各個橫跨複數通道的複數NVM組。在各NVM組中,能夠同時執行對最多N個NAND型快閃記憶體晶片的資料寫入/讀出動作。
在該等複數NVM組中,可以藉由主機2對可指定的複數區域分別附加關連。該等複數區域為可藉由主機2進行存取的邏輯區域。對應各NVM組的區域數可以是1個,也可以是2以上。再來,對應各NVM組的區域數因每個NVM組而有所不同也可以。
控制器4能夠使分別指定對應相異的NVM組的相異區域之複數I/O指令(寫入指令、或讀取指令)以無晶片爭用的方式同時執行。因此,例如,即便是在對NVM組60的資料寫入動作的執行中從主機2接收到朝向對應NVM組61的區域的讀取指令,控制器4也不必等待該資料寫入動作結束,而能夠立即執行對應該讀取指令的資料讀出動作。
在圖1所示的SSD3中,控制器4也可以作為執行NAND
型快閃記憶體5的資料管理及NAND型快閃記憶體5的區塊管理而構成的快閃記憶體轉換層(FTL)來作用。
在藉由該FTL執行的資料管理中,包含:(1)表示各個邏輯位址與各個NAND型快閃記憶體5的物理位址之間的對應關係的對映資訊的管理、(2)用以隱蔽頁面單位的讀取/寫入與區塊單位的消去動作之處理等。邏輯位址為用以位址指定SSD3而被主機2使用的位址。作為該邏輯位址通常可以使用邏輯區塊位址(LBA)。
各個邏輯區塊位址(LBA)與各個物理位址之間的對映的管理,係利用作為位址變換表(邏輯物理位址變換表)作用的查詢表(LUT)來執行。對應某LBA的物理位址,表示寫入該LBA的資料的NAND型快閃記憶體5內的物理記憶位置。位址變換表(LUT)在SSD3的電源ON時從NAND型快閃記憶體5被載入DRAM6也可以。一般各查詢表的大小較大。因此,將各查詢表的至少一部分作為位址變換表快取儲存至DRAM6也可以。
在NAND型快閃記憶體5中,向頁面的資料寫入可以在每1消去循環僅進行1次。因此,控制器4將對應某LBA的更新資料,寫入別的物理記憶位置,而不是對應該LBA的以前的資料被儲存的物理記憶位置。因此,控制器4更新對應的查詢表(LUT)而將該LBA與該別的物理記憶位置附加關連。藉此,對應該LBA的以前的資料被無效化。
在本實施形態中,使用複數查詢表(LUT)40、41、42...。該等查詢表(LUT)40、41、42...,基本上分別對應
複數的NVM組。此外,各查詢表也可以與某一個區域對應,也可以與垃圾回收的一個群組對應。
各NVM組至少包含一個垃圾回收用群組。垃圾回收用群組包含複數區塊,作為施予垃圾回收的單位來使用。關於僅包含一個垃圾回收用群組的NVM組,可以僅使用一個查詢表。關於僅包含複數垃圾回收用群組的NVM組,可以使用複數查詢表。
控制器4更具有多重命名空間控制功能。多重命名空間控制功能為了使一個儲存裝置能成為如同複數驅動器的方式採用,而能夠在SSD3分配出複數邏輯位址空間(LBA空間)。
上述各個複數區域可以藉由命名空間來實現。各命名空間相當於NAND型快閃記憶體5內的區域。在各命名空間中,邏輯位址範圍(LBA範圍)被分配。LBA範圍的大小(也就是LBA之數)在每個命名空間為可變。各LBA範圍從LBA0開始。各個命名空間藉由該等命名空間的識別子來識別。
來自主機2的寫入指令包含特定的命名空間的識別子,也就是命名空間ID(NSID)。控制器4基於來自主機2的寫入指令內的命名空間ID,來決定應將寫入資料寫入的存取對象之區域(命名空間)。同樣地,來自主機2的寫入指令也包含對應特定的命名空間的命名空間ID。控制器4基於來自主機2的寫入指令內的命名空間ID,來決定應將資料讀出的存取對象之區域(命名空間)。
區塊管理包含:劣區塊的管理、損耗平衡、垃圾回收(garbage collection)等。
損耗平衡為用以使各區塊的消耗均一化的動作。
垃圾回收係用以使能寫入資料的空區塊的個數增加的動作。在垃圾回收動作中,控制器4僅將有效資料及無效資料混合的幾個區塊內的有效資料複製至別的區塊(例如空區塊)。其中,有效資料指的是從LUT參照的資料(也就是從邏輯位址作為最新的資料綁定的資料),之後有從主機2讀取的可能性的資料。無效資料指的是已經沒有從主機2讀取的可能性的資料。例如,與某邏輯位址附上關連的資料為有效資料,與任何邏輯位址都沒有附上關連的資料為無效資料。接著,控制器4將各個被複製的有效資料的LBA對映至該有效資料的複製目標物理位址。藉由將有效資料複製至別的區塊,將僅成為無效資料的區塊作為空區塊解放。藉此,該區塊能在執行消去動作後被再利用。
接著,說明控制器4的構成。
控制器4包含:主介面11、CPU12、NAND介面13、及DRAM介面14等。該等CPU12可以通過NAND介面13、DRAM介面14、匯流排10來相互連接。
該主介面11為執行與主機2之間的通信的主機介面電路。該主介面11例如可以是PCIe控制器(NVMe控制器)。主介面11從主機2接收各種指令(例如、寫入指令、讀取指令、各種控制指令、UNMAP指令、等)。
寫入指令對SSD3要求寫入由該寫入指令所指定的資
料。寫入指令可以包含:開始LBA、轉送長、及ID。寫入指令內的ID為用以將應寫入資料的區域一義地識別出的識別子。該ID可以是命名空間ID。讀取指令對SSD3要求讀取由該讀取指令所指定的資料。讀取指令可以包含:開始LBA、轉送長、及ID。讀取指令內的ID為用以將應讀出資料的區域一義地識別出的識別子。該ID可以是命名空間ID。
CPU12為以控制主介面11、NAND介面13、DRAM介面14的方式構成的處理器。CPU12響應於SSD3的電源ON,從NAND型快閃記憶體5或圖未示的ROM之中將控制程式(韌體)載入至DRAM6,接著藉由執行該韌體進行各種處理。此外,韌體也可以載入至控制器4內的圖未示的SRAM上。該CPU12,例如,除了上述FTL的處理以外,也能執行用以處理來自主機2的各種指令的指令處理等。CPU12的動作係藉由CPU12執行的上述韌體來控制。此外,FTL處理及指令處理的一部分或全部藉由控制器4內的專用硬體來執行也可以。
CPU12可以成為NVM組控制部21、垃圾回收(GC)動作控制部22、NVM組間複製控制部23、新NVM組作成控制部24、NVM組交換控制部25、NVM組結合部26來作用。
NVM組控制部21將K×N個NAND型快閃記憶體晶片600~646分類成複數晶片群組,使得各K×N個NAND型快閃記憶體晶片600~646僅屬於一個晶片群組。接著,NVM組控制部21因應指定包含對應各NVM組的至少一個區域的
複數區域的任一者的來自主機2的I/O指令,執行對於複數NVM組內的一個NVM組的資料寫入/讀出動作。例如,在複數NVM組具有第1NVM組及第2NVM組的例子中,NVM組控制部21因應指定對應第1NVM組的至少一個區域的來自主機2的第1I/O指令,執行對第1NVM組的資料寫入/讀出動作,因應指定對應第2NVM組的至少一個區域的來自主機2的第2I/O指令,執行對第2NVM組的資料寫入/讀出動作。
又,NVM組控制部21使NAND型快閃記憶體5(多數的NAND型快閃記憶體晶片)內的空區塊群,藉由分別對應複數NVM組的複數空區塊池來個別地管理每個NVM組。空區塊指的是不保持有效資料的區塊。例如,各個屬於第1NVM組的空區塊係藉由對應第1NVM組的第1空區塊池來管理、各個屬於第2NVM組的空區塊係藉由對應第2NVM組的第2空區塊池來管理。在將SSD3初始化的動作時,NVM組控制部21將屬於第1NVM組的全部區塊配置於第1空區塊池,將屬於第2NVM組的全部區塊配置於第2空區塊池。
關於各個複數NVM組,NVM組控制部21係執行:將對應的空區塊池內的空區塊的一個作為應寫入使用者資料(來自主機2的寫入資料、或為了垃圾回收而應複製的資料)的區塊來分配的動作、寫入至分配該使用者資料的區塊的動作、藉由資料區塊池(也稱為主動區塊池)來管理被該使用者資料填滿的區塊的動作、使藉由資料區塊池來管
理且不保持有效資料的區塊返回到對應的空區塊池的動作。
藉此,因為能夠使配置於對應某NVM組的空區塊池的區塊群僅藉由對應該NVM組的1以上的區域來使用,能夠保證在複數NVM組間不引起晶片爭用。此外,資料區塊池指的是屬於對應的NVM組且用以分別管理保持有效資料的區塊的池。
在本實施形態中,可以採用分離的NVM組與共有NVM組這2種類的NVM組。
分離的NVM組為包含僅一個垃圾回收用群組(僅一個資料區塊池)的NVM組。也就是說,對應分離的NVM組的空區塊池為屬於該NVM組且專用於分別管理保持有效資料的區塊的單一資料區塊池的空區塊池。在分離的NVM組中,單一的資料區塊池占有對應分離的NVM組的空區塊池。
共有NVM組為包含複數垃圾回收用群組(複數資料區塊池)的NVM組。也就是說,對應共有NVM組的空區塊池為屬於該NVM組且被分別管理保持有效資料的區塊的複數資料區塊所共有的空區塊池。在共有NVM組中,複數資料區塊池共有對應共有NVM組的空區塊池。
垃圾回收(GC)動作控制部22在每個上述垃圾回收用群組獨立執行垃圾回收。
在分離的NVM組的垃圾回收,也就是屬於分離的NVM組的單一資料區塊池內的區塊群的垃圾回收中,GC
動作控制部22執行:(1)將對應分離的NVM組的空區塊池內的空區塊的一個作為複製目標區塊來分配、(2)將包含於該資料區塊池且從有效資料與無效資料混合的一個以上的區塊中僅將有效資料複製至複製目標區塊、(3)使因向複製目標區塊的有效資料的複製而僅成為無效資料的區塊返回到對應分離的NVM組的空區塊池的動作。藉此,因為能夠使藉由某分離的NVM組的GC作成的空區塊僅藉由對應該NVM組的1以上的區域來使用,能夠保證在複數NVM組間不引起晶片爭用。
在共有NVM組的垃圾回收,也就是屬於共有NVM組的複數資料區塊池內的一個資料區塊池內的區塊群的垃圾回收中,GC動作控制部22執行:(1)將對應共有NVM組的空區塊池內的空區塊的一個作為複製目標區塊來分配、(2)將包含於一個資料區塊池且從有效資料與無效資料混合的一個以上的區塊中僅將有效資料複製至複製目標區塊、(3)使因向複製目標區塊的有效資料的複製而僅成為無效資料的區塊返回到對應共有NVM組的空區塊池的動作。藉此,因為能夠使藉由某共有NVM組的GC所作成的空區塊僅被對應該共有NVM組的1以上的區域使用,能夠保證在複數NVM組間不引起晶片爭用。
NVM組間複製控制部23為了使各個NVM組的消耗度(程式/消去循環數)均等,而執行NVM組間複製動作。該NVM組間複製動作,例如,可以將儲存於具有高消耗度的分離的NVM組的有效資料使用於為了複製至具有低消耗度
的分離的NVM組。藉此能使該等NVM組的消耗度均等。主機2可以將包含指定複製源NVM組與複製目標NVM組的參數的NVM組間複製指令送出至SSD3。
NVM組間複製控制部23執行:(1)將保持來自屬於複製源NVM組區塊的有效資料的區塊作為複製源區塊來選擇、(2)僅將複製源區塊內的有效資料複製到從對應複製目標NVM組的空區塊池分配出的複製目標區塊、(3)將管理各個邏輯位址與各個複製源NVM組的物理位址之間的對映的查詢表作更新,並將表示複製有效資料的複製目標區塊內的物理記憶位置的物理位址,對映到對應被複製的有效資料的邏輯位址、(4)當有效資料從複製源區塊消失時,使複製源區塊返回至對應複製源NVM組的空區塊池、(5)直到在複製源NVM組中保持有效資料的區塊不存在為止,重複(1)~(4)的動作。藉此,可以將複製源NVM組內的資料(具有高更新頻度的資料)移動至具有少的程式/消去循環數的複製目標NVM組。其結果,將消耗度低的複製目標NVM組利用於具有高更新頻度的資料的寫入。因此,可以使複製源NVM組內的程式/消去循環數達到限制值的時點延遲。
新NVM組作成控制部24從其他NVM組作成新的NVM組。例如,新NVM組作成控制部24可以將某NVM組內的一部分的NAND型快閃記憶體晶片集合作為新的NVM組來作成。藉此,可以將一個NVM組分割成2個NVM組。
NVM組交換控制部25為了使各個NVM組的消耗度(程
式/消去循環數)均等,而執行NVM組交換動作。該NVM組交換動作,例如,可以在具有高消耗度的分離的NVM組與具有低消耗度的分離的NVM組之間,為了交換資料作使用。藉此能使該等NVM組的消耗度均等。主機2可以將包含指定應交換的儲存的資料的2個NVM組(第1NVM組、第2NVM組)的參數之NVM組交換指令送出至SSD3。
NVM組交換控制部25執行:僅將第1NVM組內的有效資料複製至第2NVM組的動作、僅將第2NVM組內的有效資料複製至第1NVM組的動作。
在僅將第1NVM組內的有效資料複製至第2NVM組的動作中,NVM組交換控制部25執行:(1)將保持來自屬於第1NVM組的區塊的有效資料的區塊作為複製源區塊來選擇、(2)僅將複製源區塊內的有效資料複製到從對應第2NVM組的空區塊池分配出的複製目標區塊、(3)將管理各個邏輯位址與各個第1NVM組的物理位址之間的對映的查詢表作更新,並將表示複製有效資料的複製目標區塊內的物理記憶位置的物理位址,對映到對應被複製的有效資料的邏輯位址、(4)當有效資料從複製源區塊消失時,使複製源區塊返回至對應第1NVM組的空區塊池、(5)直到在第1NVM組中保持有效資料的區塊不存在為止,重複(6)~(9)的動作。
在僅將第2NVM組內的有效資料複製至第1NVM組的動作中,NVM組交換控制部25執行:(1)將保持來自屬於第2NVM組的區塊的有效資料的區塊作為複製源區塊來選
擇、(2)僅將複製源區塊內的有效資料複製到從對應第1NVM組的空區塊池分配出的複製目標區塊、(3)將管理各個邏輯位址與各個第2NVM組的物理位址之間的對映的查詢表作更新,並將表示複製有效資料的複製目標區塊內的物理記憶位置的物理位址,對映到對應被複製的有效資料的邏輯位址、(4)當有效資料從複製源區塊消失時,使複製源區塊返回至對應第2NVM組的空區塊池、(5)直到在第2NVM組中保持有效資料的區塊不存在為止,重複(1)~(4)的動作。
藉此能使該等2個NVM組的消耗度均等。
NVM組結合部26將2以上的NVM組結合至一個NVM組。結合對象的2以上的NVM組及結合目標的一個NVM組可以藉由主機2來指定。
NAND介面13在CPU12的控制之下,控制NAND型快閃記憶體5。DRAM介面14為在CPU12的控制之下,控制DRAM6的DRAM控制器。DRAM6的記憶區域的一部分作為用以將來自主機2的寫入資料暫時儲存的寫入緩衝器(WB)來利用。在本實施形態中,利用複數寫入緩衝器(WB)30、31、32...。在每NVM組準備至少一個寫入緩衝器(WB)也可以。又,DRAM6的記憶區域的其他一部分,利用於上述查詢表(LUT)40、41、42...的儲存。
圖3表示對應圖2的各NVM組的區塊管理與對應各NVM組的一個以上的區域(命名空間)之間的關係之例。
NVM組60包含:連接至通道Ch0的NAND型快閃記憶
體晶片600、連接至通道Ch1的NAND型快閃記憶體晶片610、連接至通道Ch2的NAND型快閃記憶體晶片620、還有連接至通道ChN的NAND型快閃記憶體晶片640。屬於NVM組60且未保持有效資料的區塊(空區塊)分別藉由對應NVM組60的空區塊池80來管理。在將SSD3初始化的處理中,控制部4將屬於NVM組的全部區塊,也就是NAND型快閃記憶體晶片600、610、620、...640內的全部區塊配置於對應NVM組60的空區塊池80。
屬於NVM組60的區塊利用空區塊池80及NVM子組90來管理。NVM子組90是屬於NVM組60且用以分別管理保持有效資料的區塊的資料區塊池。包含於該NVM子組90的區塊群,構成一個垃圾回收用群組。
空區塊池80為專用於一個NVM子組90的空區塊池。因此,NVM組60作為被一個NVM子組90專有的NVM組(分離的NVM組)來作用。NVM子組90與一個寫入緩衝器(WB)30有關連。
NVM組60作為用以藉由主機2所能指定的至少一個區域(命名空間)的物理記憶空間來被利用。NVM組60也可以是僅專用於一個命名空間的物理記憶空間。在圖3中,例示了NVM組60作為2個命名空間100、101用的物理記憶空間利用的情形。
NVM組61包含:連接至通道Ch0的NAND型快閃記憶體晶片601、連接至通道Ch1的NAND型快閃記憶體晶片611、連接至通道Ch2的NAND型快閃記憶體晶片621、還
有連接至通道ChN的NAND型快閃記憶體晶片641。屬於NVM組61且未保持有效資料的區塊(空區塊)分別藉由對應NVM組61的空區塊池81來管理。在將SSD3初始化的處理中,控制部4將屬於NVM組61的全部區塊,也就是NAND型快閃記憶體晶片601、611、621、...641內的全部區塊配置於對應NVM組61的空區塊池81。
屬於NVM組61的區塊利用空區塊池81及NVM子組91來管理。NVM子組91是屬於NVM組61且用以分別管理保持有效資料的區塊的資料區塊池。包含於該NVM子組91的區塊群,構成一個垃圾回收用群組。空區塊池81為專用於一個NVM子組91的空區塊池。因此,NVM組61作為被一個NVM子組91專有的NVM組(分離的NVM組)來作用。NVM子組91與一個寫入緩衝器(WB)31有關連。
NVM組61作為用於至少一個區域(命名空間)的物理記憶空間來被利用。NVM組61也可以是僅專用於一個命名空間的物理記憶空間。在圖3中,例示了NVM組61作為一個命名空間102用的物理記憶空間利用的情形。
NVM組62包含:連接至通道Ch0的NAND型快閃記憶體晶片602、603、...605、606、連接至通道Ch1的NAND型快閃記憶體晶片612、613、...615、616、連接至通道Ch2的NAND型快閃記憶體晶片622、623、...625、626、還有連接至通道ChN的NAND型快閃記憶體晶片642、643、...645、646。屬於NVM組62且未保持有效資料的區塊(空區塊)分別藉由對應NVM組62的空區塊池82來管理。
在將SSD3初始化的處理中,控制部4將屬於NVM組62的全部區塊,也就是NAND型快閃記憶體晶片602~646內的全部區塊配置於對應NVM組62的空區塊池82。
屬於NVM組62的區塊利用空區塊池82及NVM子組92、93、94、95來管理。各個NVM子組92、93、94、95是屬於NVM組62且用以分別管理保持有效資料的區塊的資料區塊池。包含於NVM子組92的區塊群構成一個垃圾回收用群組,包含於NVM子組93的區塊群構成別的垃圾回收用群組,包含於NVM子組94的區塊群構成再更別的垃圾回收用群組,包含於NVM子組95的區塊群構成再更更別的垃圾回收用群組。空區塊池82為被NVM子組92、93、94、95共有的空區塊池。因此,NVM組62作為被複數NVM子組92~95共有的共有NVM組來作用。NVM子組92、93、94、95分別與寫入緩衝器(WB)32、33、34、35有關連。
NVM組62作為用於至少一個區域(命名空間)的物理記憶空間來被利用。NVM組62也可以是僅專用於一個命名空間的物理記憶空間,也可以是用於複數命名空間的物理記憶空間。在圖3中,例示了NVM組62作為4個命名空間103、104、105、106用的物理記憶空間利用的情形。
又,在圖3中,例示了命名空間103使用2個NVM子組92、93的情形。例如,對應命名空間103的LBA範圍可以被分割成2個子LBA範圍。對應一方的子LBA範圍的寫入資料(例如,更新頻度低的冷資料)也可以通過寫入緩衝器(WB)32寫入NVM子組92用的輸入區塊(寫入目標區塊)。對
應另一方的子LBA範圍的寫入資料(例如,更新頻度高的熱資料(元資料))也可以通過寫入緩衝器(WB)32寫入NVM子組93用的輸入區塊(寫入目標區塊)。
在圖3中,因應來自包含命名空間100或101的ID的主機2的I/O指令,執行對NVM組60的資料寫入/讀出動作。又,因應來自包含命名空間102的ID的主機2的I/O指令,執行對NVM組61的資料寫入/讀出動作。又,因應來自包含命名空間103~106的任一個命名空間的ID的主機2的I/O指令,執行對NVM組62的資料寫入/讀出動作。因此,能夠將各個NVM組60、61、62同時存取,能抑制因晶片爭用而引起的長延遲(特別是長讀取延遲)。
又,因為垃圾回收在每NVM子組獨立執行,專有一個以上NVM子組的命名空間,不會受到被其他命名空間使用的其他NVM子組的垃圾回收所造成的影響(GC爭用)。
共有NVM組62具有以下特徵。
因為在共有NVM組62的內部,在複數NVM子組92~95間共有空區塊池82,有發生晶片爭用的情形。不過,當需要某NVM子組用的新輸入區塊的分配時,控制器4可以從共有空區塊池82內的空區塊群之中選擇程式/消去循環數少的區塊,將該被選擇的區塊作為新的輸入區塊來分配。藉此,能使各NVM子組92、93、94、95的消耗度均等。
又,分離的NVM組60、61具有以下特徵。
在各個分離的NVM組60、61的內部,一個NVM子組能專有一個空區塊池。因此,若該一個NVM子組對應一個
命名空間的話,該命名空間能以無晶片爭用的方式專有分離的NVM組。不過,因為分離的NVM組不共有其他的NVM組及空區塊群,若儲存於某特定分離的NVM組的資料的改寫頻度高的話,該NVM組的消耗度會有比其他NVM組的消耗度還高的狀態發生。該不均等的消耗是SSD3的壽命降低的要因。
在本實施形態中,可以使共有NVM組與分離的NVM組在1台SSD3內共存。因此,例如,因應工作量,可以使共有NVM組與分離的NVM組分開使用。
又,在圖3的例子中,對各個命名空間提供以下的環境。
命名空間100、101共有一個NVM子組90。雖然沒有產生命名空間100、101與其他命名空間之間的晶片爭用,但在命名空間100、101間產生GC爭用。
命名空間102專有一個NVM子組91。在命名空間102與其他命名空間之間沒產生晶片爭用、及GC爭用。
命名空間103專有2個NVM子組92、93。在命名空間103與使用NVM組62的其他命名空間之間雖可能會產生晶
片爭用,但在命名空間103與其他命名空間之間不產生GC爭用。
命名空間104、105共有一個NVM子組94。在命名空間104、105與使用NVM組62的其他命名空間之間會產生晶片爭用。又,雖然沒有產生命名空間104、105與其他命名空間之間的GC爭用,但在命名空間104、105間產生GC爭用。
命名空間106專有一個NVM子組95。在命名空間106與使用NVM組62的其他命名空間之間雖會產生晶片爭用,但在命名空間106與其他命名空間之間不產生GC爭用。
接著,參照圖4,說明用以分離的NVM組60、61的主寫入/垃圾回收動作的圖。
圖4的左上部表示用以NVM組60的主寫入/垃圾回收動作。
首先,空區塊池80內的1個空區塊作為使用者輸入區塊210而被分配。使用者輸入區塊210為用以寫入來自主機2的寫入資料的區塊,也稱為寫入目標區塊。此外,若使用者輸入區塊210已被分配的話,不執行該動作。
來自主機2的寫入資料被從寫入緩衝器30寫入至使用者輸入區塊210。在寫入緩衝器30中,將命名空間100或與
命名空間101有關連的寫入資料暫時儲存。接著,將對應NVM組60的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊210內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
使用者輸入區塊210被寫入資料填滿後,該使用者輸入區塊210被移動至NVM子組(資料區塊池)90。也就是說,被資料填滿的使用者輸入區塊210藉由NVM子組(資料區塊池)90來管理。
在NVM組60中需要執行垃圾回收時,執行與其他NVM組互相獨立,為了NVM子組90內的區塊群的垃圾回收動作。例如,NVM子組90所包含的區塊數比對應NVM子組90的某閾值X1還多時,也可以判斷成垃圾回收動作為必要。閾值X1可以基於可分配至NVM子組90用的區塊總數來決定。例如,將可分配至NVM子組90用的區塊總數減去預定數的剩下的值,作為對應NVM子組90的某閾值X1來利用也可以。
在NVM組60中需要垃圾回收動作時,將空區塊池80內的1個空區塊作為GC輸入區塊200分配。GC輸入區塊210為在垃圾回收中成為有效資料的複製目標的區塊,也稱為複製目標區塊。
從NVM子組90內的區塊之中將有效資料與無效資料混合的一個以上的區塊作為複製源區塊來選擇。僅將該被選擇的區塊的有效資料複製至GC輸入區塊200。接著,將對應NVM組60的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊200內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
GC輸入區塊200被有效資料填滿後,該GC輸入區塊200移動至NVM子組90。也就是說,被有效資料填滿的GC輸入區塊200藉由NVM子組(資料區塊池)90來管理。
被NVM子組90管理且未保持有效資料的區塊,從NVM子組90返回空區塊池80。未保持有效資料的區塊為:因主寫入而導致其所有資料被無效化的區塊、或因垃圾回收動作而導致其所有有效資料被複製至複製目標區塊的區塊。
圖4的左下部表示為了NVM組61的主寫入/垃圾回收動作。
空區塊池81內的1個空區塊作為使用者輸入區塊211而被分配。
來自主機2的寫入資料被從寫入緩衝器31寫入至使用者輸入區塊211。在寫入緩衝器31中,將與命名空間101有關連的寫入資料暫時儲存。接著,將對應NVM組61的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊211內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
使用者輸入區塊211被寫入資料填滿後,該使用者輸入區塊211被移動至NVM子組(資料區塊池)91。也就是說,被資料填滿的使用者輸入區塊211藉由NVM子組(資料區塊池)91來管理。
在NVM組61中需要執行垃圾回收時,執行與其他NVM組互相獨立,為了NVM子組91內的區塊群的垃圾回收動作。例如,NVM子組91所包含的區塊數比對應NVM子組91的某閾值X1還多時,也可以判斷成垃圾回收動作為必要。閾值X1可以基於可分配至NVM子組91用的區塊總數來決定。例如,將可分配至NVM子組91用的區塊總數減
去預定數的剩下的值,可以作為對應NVM子組91的某閾值X1來利用。
在NVM組61中需要垃圾回收動作時,將空區塊池81內的1個空區塊作為GC輸入區塊201分配。
從NVM子組91內的區塊之中將有效資料與無效資料混合的一個以上的區塊作為複製源區塊來選擇。僅將該被選擇的區塊的有效資料複製至GC輸入區塊201。接著,將對應NVM組61的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊201內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
GC輸入區塊201被有效資料填滿後,該GC輸入區塊201被移動至NVM子組91。也就是說,被有效資料填滿的GC輸入區塊201藉由NVM子組(資料區塊池)91來管理。
被NVM子組91管理且未保持有效資料的區塊,從NVM子組91返回至空區塊池81。未保持有效資料的區塊為:因主寫入而導致其所有資料被無效化的區塊、或因垃圾回收動作而導致其所有有效資料被複製至複製目標區塊的區塊。
圖5表示為了共有NVM組62所執行的主寫入/垃圾回收動作的圖。其中,想定成共有NVM組62僅含有2個NVM子組94、95的情形。
NVM子組94用的主寫入/垃圾回收動作如以下的方式執行。
空區塊池82內的1個空區塊作為使用者輸入區塊214而被分配。
來自主機2的寫入資料被從寫入緩衝器34寫入至使用者輸入區塊214。在寫入緩衝器34中,將與命名空間104或105與有關連的寫入資料暫時儲存。接著,將對應NVM子組94的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊214內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
使用者輸入區塊214被寫入資料填滿後,該使用者輸入區塊214被移動至NVM子組(資料區塊池)94。也就是說,被資料填滿的使用者輸入區塊214藉由NVM子組(資料區塊池)94來管理。
在NVM子組(資料區塊池)94中需要執行垃圾回收時,執行與其他NVM組及NVM組62內的其他NVM子組互相獨立,為了NVM子組94內的區塊群的垃圾回收動作。例如,NVM子組94所包含的區塊數比對應NVM子組94的某閾值X1還多時,也可以判斷成垃圾回收動作為必要。閾值X1可以基於可分配至NVM子組94用的區塊總數來決定。例如,將可分配至NVM子組94用的區塊總數減去預定數的剩下的值,可以作為對應NVM子組94的某閾值X1來利用。
在NVM組94中需要垃圾回收動作時,將空區塊池82內的1個空區塊作為GC輸入區塊204分配。
從NVM子組94內的區塊之中將有效資料與無效資料混合的一個以上的區塊作為複製源區塊來選擇。僅將該被選擇的區塊的有效資料複製至GC輸入區塊204。接著,將對應NVM子組94的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊204內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
GC輸入區塊204被有效資料填滿後,該GC輸入區塊204被移動至NVM子組94。也就是說,被有效資料填滿的GC輸入區塊204藉由NVM子組(資料區塊池)90來管理。
被NVM子組94管理且未保持有效資料的區塊,從NVM子組94返回至空區塊池82。未保持有效資料的區塊為:因主寫入而導致其所有資料被無效化的區塊、或因垃圾回收動作而導致其所有有效資料被複製至複製目標區塊的區塊。
NVM子組95用的主寫入/垃圾回收動作也與NVM子組94用的主寫入/垃圾回收動作以相同的順序執行。
圖6表示複數NVM組的別的構成例。
在圖6中,各NVM組包含連接至同一通道的NAND型快閃記憶體晶片的集合。也就是說,NVM組110包含連接至通道Ch0的NAND型快閃記憶體晶片600、601、602、603、...605、606。NVM組111包含連接至通道Ch1的NAND型快閃記憶體晶片610、611、612、613、...615、616。NVM組112包含連接至通道Ch2的NAND型快閃記憶體晶片620、621、622、623、...625、626、以及連接至通道ChN的NAND型快閃記憶體晶片640、641、642、643、...645、646。
在圖6的NVM組構成中,通過不同的通道來執行向NVM組110、111、112的存取。因此,即便是在某NVM組內的對任一個NAND型快閃記憶體晶片的資料寫入/讀出動作的執行中,也能夠即時地執行其他NVM組內的對任意NAND型快閃記憶體晶片的資料寫入/讀出動作。
在各NVM組橫跨複數通道的圖2的NVM組構成中,一個通道在NVM組間共有。因此,在圖2的NVM組構成中,若向NVM組60內的NAND型快閃記憶體晶片600的寫入/讀取要求與向NVM組61內的NAND型快閃記憶體晶片601的寫入/讀取要求同時發生的話,會發生向通道Ch0的存取競合所引起的延遲增加。
在圖6的NVM組構成中,因為通過不同的通道來執行向NVM組110、111、112的存取,即便對各NVM組110、111、112的寫入/讀取要求同時發生,也能即時地執行該等寫入/讀取要求。因此,能夠降低對於來自主機2的存取要求的延遲。
不過,在圖6的NVM組構成中,各NVM組的峰值I/O性能被單一通道的性能限制。因此,圖6的NVM組構成,因為組合能使單一通道的性能提升的機構來利用,因此較適合。
圖7表示對應圖6的各NVM組的區塊管理與對應各NVM組的一個以上的區域(命名空間)之間的關係。
NVM組110與圖2的NVM組60一樣,可以作為分離的NVM組作用。在將SSD3初始化的處理中,將屬於NVM組110的全部區塊,配置於專用於NVM子組90的空區塊池80。NVM組111與圖2的NVM組61一樣,可以作為分離的NVM組作用。在將SSD3初始化的處理中,將屬於NVM組111的全部區塊,配置於專用於NVM子組91的空區塊池81。NVM組112與圖2的NVM組62一樣,可以作為共有
NVM組作用。在將SSD3初始化的處理中,將屬於NVM組112的全部區塊,配置於被NVM子組92~95共有的空區塊池82。
圖8模式地表示能作為搭載於SSD3的NAND型快閃記憶體5使用的快閃記憶體封裝體。
該快閃記憶體封裝體910為藉由使用垂直貫通封裝體內層積的NAND型快閃記憶體晶片內部的電極之TSV(貫通‧矽‧孔)技術,能使資料輸入輸出高速化與消耗電力的降低成為可能的記憶體封裝體。在快閃記憶體封裝體910中,層積的複數NAND型快閃記憶體收容於單一的封裝體內。在這裡,雖例示了將8個NAND型快閃記憶體D0~D7收容於單一的封裝體內的情形,但收容於封裝體內的NAND型快閃記憶體晶片的數量並不以此例為限。
該快閃記憶體封裝體910包含:如印刷配線基板的封裝體基板911、介面晶片(也稱為介面晶片(Chip))Ce、上述層積的NAND型快閃記憶體晶片D0~D7。在封裝體基板911的背面配置有用以作為將信號輸入輸出的複數外部I/O端子(電極)作用的複數焊接凸塊916。該等信號中包含:8位元寬度的I/O信號、各種控制信號(複數晶片啟用信號CE、指令鎖存啟用信號CLE、位址鎖存啟用信號ALE、寫入啟用信號WE、讀取啟用信號RE、複數準備/忙線信號RB、等)。8位元寬度的I/O信號使用於指令、位址、資料、等的傳送。位址的一部分可以包含晶片位址。存取對象的NAND型快閃記憶體晶片可以藉由晶片啟用信號CE與
晶片位址的組合來選擇。
封裝體基板911的表面配置有介面晶片Ce。介面晶片Ce通過圖未示的配線層連接至複數焊接凸塊916。
層積的NAND型快閃記憶體晶片D0~D7藉由多數垂直孔925來相互連接。介面晶片Ce通過該等多數垂直孔925,將I/O信號、複數晶片啟用信號CE、指令鎖存啟用信號CLE、位址鎖存啟用信號ALE、寫入啟用信號WE、讀取啟用信號RE等傳送至NAND型快閃記憶體晶片D0~D7,此外藉由該等多數的垂直孔925從NAND型快閃記憶體晶片D0~D7接收I/O信號、準備/忙線信號RB等。
介面晶片Ce也可以內藏平行/串列變換電路。介面晶片Ce將來自控制器4的8位元寬度的I/O信號使用平行/串列變換電路例如變換成64位元寬度的I/O信號,將該等64位元寬度的I/O信號通過包含於多數垂直孔925內的特定的64條垂直孔來傳送至NAND型快閃記憶體晶片D0~D7也可以。
各個垂直孔925包含:貫通各個層積的NAND型快閃記憶體晶片D0~D7半導體基板的複數貫通電極V、連接層積的NAND型快閃記憶體晶片D0~D7間的複數凸塊電極(焊接凸塊)919。
在使用引線接合的從前的記憶體封裝體中,若層積的晶片數增加,封裝體的外部I/O端子的寄生電容、寄生阻抗會增大,因此使記憶體封裝體以高頻率動作會變得困難。
在圖8的快閃記憶體封裝體910中,藉由多數垂直孔925來將層積的NAND型快閃記憶體晶片D0~D7相互連接以取代接合線。因此,外部I/O端子的寄生電容、寄生阻抗能降低,能夠使快閃記憶體封裝體910內的各NAND型快閃記憶體晶片以高頻率動作。
圖9表示快閃記憶體封裝體910的剖面圖。
在支持基板912的表面上,實裝有層積的NAND型快閃記憶體晶片D0~D7。在各個NAND型快閃記憶體晶片D0~D7埋設有貫通電極V。貫通電極V為貫通對應的NAND型快閃記憶體晶片內的半導體基板的電極。鄰接的2個NAND型快閃記憶體晶片的貫通電極V之間,藉由焊接凸塊919來連接。此時,在各NAND型快閃記憶體晶片的表面,貫通電極V通過設於該半導體基板方的配線層,來連接於焊接凸塊919也可以。此外,鄰接的2個NAND型快閃記憶體晶片間通過黏接層915來物理結合也可以。
在支持基板912的背面上實裝有介面晶片Ce。在支持基板912形成有佈線層923。介面晶片Ce通過複數焊接凸塊918連接至配線層923。最下層的NAND型快閃記憶體晶片D0的各貫通電極V連接至配線層923。藉此,介面晶片Ce與NAND型快閃記憶體晶片D0~D7電連接。
支持基板912通過複數焊接凸塊917連接至封裝體基板911。介面晶片Ce藉由封裝樹脂921來封裝。NAND型快閃記憶體晶片D0~D7藉由封裝樹脂922來封裝。封裝樹脂921、922的外周藉由封裝樹脂920來封裝,並且封裝樹脂
922的上部藉由金屬板913來封裝。
圖10表示圖6所說明的複數NVM組與作為該等NVM組使用的1個以上的快閃記憶體封裝體之間的關係的圖。
圖10中,例示了將NAND型快閃記憶體5內的多數NAND型快閃記憶體晶片分類成2個NVM組130、131的情形。NVM組130、131分別對應圖6所說明的分離的NVM組110、111。NVM組130包含分別連接至通道Ch0的NAND型快閃記憶體晶片D0~D7,NVM組131包含分別連接至通道Ch1的NAND型快閃記憶體晶片D10~D17。
NVM組130內的NAND型快閃記憶體晶片D0~D7藉由單一快閃記憶體封裝體910來實現。在快閃記憶體封裝體910中,如圖8、圖9所說明的,層積NAND型快閃記憶體晶片D0~D7,且該等NAND型快閃記憶體晶片D0~D7藉由多數垂直孔(各垂直孔包含貫通電極V及焊接凸塊919)來相互連接。設於快閃記憶體封裝體910的封裝體基板911背面的複數外部I/O端子(焊接凸塊916)連接至通道Ch0內的複數信號線。該等信號中可以包含:8位元寬度的I/O信號線、用以各種控制信號(複數晶片啟用信號CE、指令鎖存啟用信號CLE、位址鎖存啟用信號ALE、寫入啟用信號WE、讀取啟用信號RE、複數準備/忙線信號RB、等)的複數控制信號線。從NAND介面13經由通道Ch0接收到的該等信號,通過介面晶片Ce及多數垂直孔,轉送至NAND型快閃記憶體晶片D0~D7。
同樣的,NVM組131內的NAND型快閃記憶體晶片D10
~D17也一樣藉由單一快閃記憶體封裝體930來實現。快閃記憶體封裝體930與快閃記憶體封裝體910具有相同的構造。也就是說,在快閃記憶體封裝體930中,層積NAND型快閃記憶體晶片D10~D17,且該等NAND型快閃記憶體晶片D10~D17藉由多數垂直孔(各垂直孔包含貫通電極V及焊接凸塊939)來相互連接。設於快閃記憶體封裝體930的封裝體基板931背面的複數外部I/O端子(焊接凸塊936)連接至通道Ch1內的複數信號線。該等信號中可以包含:8位元寬度的I/O信號線、用以各種控制信號(複數晶片啟用信號CE、指令鎖存啟用信號CLE、位址鎖存啟用信號ALE、寫入啟用信號WE、讀取啟用信號RE、複數準備/忙線信號RB、等)的複數控制信號線。從NAND介面13經由通道Ch1接收到的該等信號,通過介面晶片Ce及多數垂直孔,轉送至NAND型快閃記憶體晶片D10~D17。
控制器4,因應來自指定對應NVM組130的區域(命名空間)的主機2的I/O指令,通過通道Ch0執行對NVM組130的資料寫入/讀出動作。又,控制器4,因應來自指定對應NVM組131的區域(命名空間)的主機2的I/O指令,通過通道Ch1執行對NVM組131的資料寫入/讀出動作。
在圖10的構成中,各NVM組的峰值I/O性能雖被單一通道的性能限制,但各通道的性能比在使用以引線接合連接複數晶片的通常記憶體封裝體時還更加提升。因此,圖10的構成能夠同時執行對各NVM組130、131的寫入/讀取要求,且能夠將各NVM組的峰值I/O性能的降低以最小限
度抑制。
此外,在圖10中,雖例示了藉由使用多數垂直孔(TSV)的記憶體封裝體來實現包含於各分離的NVM組中的複數NAND型快閃記憶體晶片的情形,但也可以藉由多數垂直孔(TSV)的記憶體封裝體來實現包含於共有NVM組的複數NAND型快閃記憶體晶片。
又,在使用多數垂直孔(TSV)的單一記憶體封裝體支持2個以上的通道時,藉由單一記憶體封裝體來實現對應2個以上的通道的2個以上的NVM組所包含的複數NAND型快閃記憶體晶片也可以。
接著,參照圖11~圖13,具體說明圖2、3說明的有關對於NVM組60、61的垃圾回收動作。
在圖11~圖13中,為了使圖示簡單化,想定成NVM組60包含2個NAND型快閃記憶體晶片1~2,各晶片具有包含頁面P1~P4的2個區塊的情形。
如圖11所示,空區塊池80內的空區塊(在這裡為空區塊# 21)作為GC輸入區塊200而被分配。
接著,從NVM子組90內的區塊之中將有效資料與無效資料混合的區塊(區塊# 11)作為複製源區塊來選擇,僅將該被選擇的複製源區塊(區塊# 11)內的有效資料複製至GC輸入區域200(區塊# 21)。
在區塊# 11中,當有效資料d1、d3與無效資料d2、d4混合時,僅將有效資料d1及資料d3複製至GC輸入區塊200(區塊# 21)。此時,資料d1被複製至區塊# 21的頁面
P1,資料d3被複製至區塊# 21的頁面P2。
區塊# 11的有效資料(資料d1及資料d3)被複製至GC輸入區塊200(區塊# 21)後,區塊# 11的資料d1及資料d3被無效化。因此,因為區塊# 11成為未保持有效資料的區塊,如圖12所示,區塊# 11返回至空區塊池80。
NVM子組90存在有有效資料d5、d7、無效資料d6、d8混合的區塊# 12。將區塊# 12作為複製源區塊選擇後,僅將區塊# 12的有效資料(資料d5及資料d7)複製至GC輸入區塊200(區塊# 21)。此時,資料d5被複製至區塊# 21的頁面P3,資料d7被複製至區塊# 21的頁面P4。
區塊# 12的有效資料(資料d5及資料d7)被複製至GC輸入區塊200(區塊# 21)後,區塊# 12的資料d5及資料d7被無效化。因此,因為區塊# 12成為未保持有效資料的區塊,如圖13所示,區塊# 12返回至空區塊池80。又,資料d5及資料d7被複製至GC輸入區塊200(區塊# 21)後,區塊# 12被有效資料填滿。此時,區塊# 21被移動至NVM子組90。
圖14表示NVM組間複製動作。其中,將圖2中的NVM組60作為複製源NVM組、圖2中的NVM組61作為複製目標NVM組來說明。主機2可以指定複製源NVM組與複製目標NVM組。複製目標NVM組可以是現在不被主機2利用的NVM組。藉由將現在不被主機2利用的NVM組作為複製目標NVM組來使用,能防止因NVM組間複製動作使得熱資料與冷資料混合於複製目標NVM組。此外,當不存在現在
不被利用的NVM組時,主機2也可以將作成新NVM組的要求指令送出至SSD3。
NVM組間複製動作以以下的順序執行。
在複製目標NVM組(NVM組61)中,空區塊池81內的1個空區塊作為使用者輸入區塊211而被分配。
來自主機2的寫入資料被從寫入緩衝器31寫入至使用者輸入區塊211。通常,寫入緩衝器31中雖然儲存有與對應複製目標NVM組的命名空間102有關連的寫入資料,但在NVM組間複製動作開始後,與對應複製源NVM組的命名空間100或101有關連的寫入資料被儲存至寫入緩衝器31。接著,將對應NVM子組90的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊211內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
藉此,在NVM組間複製動作之前,與命名空間101或100有關連的寫入資料的寫入目標雖為複製源NVM組(NVM組60)的使用者輸入區塊210,但是NVM組間複製動作後,與命名空間101或100有關連的寫入資料的寫入目標成為複製源NVM組(NVM組61)的使用者輸入區塊211。
使用者輸入區塊211被寫入資料填滿後,該使用者輸入區塊211被移動至NVM子組(資料區塊池)91。也就是說,被資料填滿的使用者輸入區塊211藉由NVM子組(資料區塊池)91來管理。
在複製目標NVM組(NVM組61)中,空區塊池81內的1個空區塊作為GC輸入區塊201而被分配。
從複製源NVM組(NVM組60)的NVM子組90內的區塊之中,將保持有效資料的區塊作為複製源區塊來選擇。接著,僅將該複製源區塊內的有效資料複製至複製目標NVM組(NVM組61)的GC輸入區塊(複製目標區塊)201。此時,首先,從該複製源區塊選擇複製對象的有效資料。接著,從該複製源區塊讀出該被選擇的有效資料,接著寫入GC輸入區塊(複製目標區塊)201。
有效資料被複製至GC輸入區塊201後,將對應NVM子組90的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊201內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
在複製目標NVM組(NVM組61)中,GC輸入區塊201被
來自複製源NVM組(NVM組60)的區塊的有效資料填滿後,GC輸入區塊201移動至NVM子組91。也就是說,被有效資料填滿的GC輸入區塊201藉由NVM子組(資料區塊池)90來管理。
在複製目標NVM組(NVM組61)中,被NVM子組91管理且未保持有效資料的區塊,從NVM子組91返回空區塊池81。例如,被保持於NVM子組91內的某區塊的所有資料,經由向使用者輸入區塊211的新寫入資料的寫入而被無效化後,該區塊從NVM子組91返回至空區塊池81。
在複製源NVM組(NVM組60)中,經由將複製源區塊的有效資料複製到GC輸入區塊201而在複製源區塊不存在有效資料時,該複製源區塊從NVM子組90返回至空區塊池80。
因為該NVM組間複製動作,例如,能夠將儲存於複製源NVM組的資料(熱資料)用的物理記憶空間,變更成具有較少改寫次數(較少程式/消去循環數)的複製目標NVM組。藉此,能夠執行使NVM組間的消耗度均等化的損耗平衡。
此外,在作為複製對象被選擇的有效資料實際被複製到GC輸入區塊201前,會有具有與該有效資料的LBAx相同
LBAx的寫入資料(對應該LBAx的新資料)被寫入使用者輸入區塊211的情形。將寫入資料(對應該LBAx的新資料)寫入至使用者輸入區塊211後,將對應NVM子組90的查詢表更新,藉此將表示寫入有該寫入資料的使用者輸入區塊211內的物理記憶位置的物理位址對映至對應該寫入資料的LBAx。
此時,被選擇的有效資料已經變成不被主機2讀取的舊資料。接著,若作為複製對象被選擇的有效資料實際被複製到GC輸入區塊201前,具有與該有效資料的LBAx相同LBAx的寫入資料被寫入使用者輸入區塊211的話,也可以將該有效資料的複製動作中止。藉此,能夠防止執行無用的複製動作。
或者,被選擇的有效資料的複製動作自體執行且不更新對應NVM子組90的查詢表,來取代中止有效資料的複製動作也可以。藉此,能防止對應LBAx的物理位址被變更成將表示複製該有效資料(舊資料)的物理記憶位置的值。更詳言之,每當對應某LBA的有效資料被複製至GC輸入區塊201時,藉由參照查詢表,來判定對應該LBA的物理位址是否為對應複製源NVM組(NVM組60)或複製目標NVM組(NVM組61)之任一者的物理位址也可以。若該物理位址為對應複製目標NVM組(NVM組61)的物理位址,辨識成對應該LBA的新資料被寫入使用者輸入區塊211,而不執行查詢表的更新。另一方面,若該物理位址為對應複製源NVM組(NVM組60)的物理位址,辨識成被複製的有效資料為對
應該LBA的最新資料,而更新查詢表。藉由查詢表的更新,該LBA對映有表示複製有效資料的物理記憶位置的物理位址。
圖15表示圖14的NVM組間複製動作之前的位址變換表的內容與NVM組間複製動作之後的位址變換表的內容之間的關係。
執行NVM組間複製動作前,對應NVM子組90的LUT40僅保持複製源NVM組(NVM組60)的物理位址。
開始從複製源NVM組(NVM組60)向複製目標NVM組(NVM組61)的NVM組間複製動作後,LUT40的物理位址依序被更新。例如,對應LBA10的資料d10從複製源NVM組(NVM組60)被複製到複製目標NVM組(NVM組61)的GC輸入區塊201時,將表示複製資料d10的複製目標NVM組(NVM組61)內的物理記憶位置的物理位址對映至LUT40的LBA10。藉此,NVM組間複製動作結束後,LUT40變成僅保持NVM組61的物理位址。
因此,藉由使用與GC一樣的機制來執行NVM組間複製動作,控制器4不必進行用以作成對應被複製至複製目標NVM組(NVM組61)的資料的位址變換資訊的特別處理,而能夠將從主機2被要求的資料藉由參照LUT40來從複製目標NVM組(NVM組61)讀出。
接著,參照圖16~圖18,具體說明圖NVM組間複製動作。
在圖16~圖18中,為了使圖示簡單化,想定成NVM組
60包含NAND型快閃記憶體晶片1~2,NVM組61包含NAND型快閃記憶體晶片3~4,各晶片具有各包含頁面P1~P4的2個區塊的情形。又,想定成從NVM組60向NVM組61複製有效資料。
如圖16所示,在複製目標NVM組(NVM組61)中,空區塊池81內的空區塊(在這裡為區塊# 41)作為GC輸入區塊201而被分配。
接著,在複製源NVM組(NVM組60)中,從NVM子組90內的區塊將保持有效資料的區塊作為複製源區塊來選擇,僅將該被選擇的複製源區塊(區塊# 11)內的有效資料複製至複製目標NVM組(NVM組61)的GC輸入區塊201(區塊# 41)。
在區塊# 11中,當有效資料d1、d3與無效資料d2、d4混合時,僅將有效資料d1及資料d3複製至GC輸入區塊201(區塊# 41)。此時,資料d1被複製至區塊# 41的頁面P1,資料d3被複製至區塊# 41的頁面P2。
區塊# 11的有效資料(資料d1及資料d3)被複製至GC輸入區塊201(區塊# 41)後,區塊# 11的資料d1及資料d3被無效化。因此,因為區塊# 11成為未保持有效資料的區塊,如圖17所示,區塊# 11返回至空區塊池80。
NVM子組90存在有有效資料d5、d7、無效資料d6、d8混合的區塊# 12。將區塊# 12作為複製源區塊選擇後,僅將區塊# 12的有效資料(資料d5及資料d7)複製至GC輸入區塊201(區塊# 41)。此時,資料d5被複製至區塊# 41的頁
面P3,資料d7被複製至區塊# 41的頁面P4。
區塊# 12的有效資料(資料d5及資料d7)被複製至GC輸入區塊201(區塊# 41)後,區塊# 12的資料d5及資料d7被無效化。因此,因為區塊# 12成為未保持有效資料的區塊,如圖18所示,區塊# 12返回至空區塊池80。又,資料d5及資料d7被複製至GC輸入區塊201(區塊# 41)後,區塊# 41被有效資料填滿。此時,區塊# 41移動至NVM子組91。
圖19表示在2個NVM組(NVM組# 1、NVM組# 2)間作資料交換的NVM組交換動作之概要。
其中,想定成NVM組# 1為NVM組60,NVM組# 2為NVM組61。又,在NVM組交換動作前,想定成在NVM組# 1(NVM組60)儲存有資料A(具有高更新頻度的資料),在NVM組# 2(NVM組61)儲存有資料B(具有低更新頻度的資料)。
此時,NVM組# 1(NVM組60)的改寫次數(程式/消去循環數)變得比NVM組# 2(NVM組61)的改寫次數(程式/消去循環數)還多。其中,NVM組的改寫次數(程式/消去循環數)為,可以以所屬於該NVM組的全區塊的程式/消去循環之數的平均來表示,也可以以所屬於該NVM組的全區塊的程式/消去循環之數的合計來表示。
例如,相對於NVM組# 1(NVM組60)在100日的期間中進行800次改寫(程式/消去循環數=800),NVM組# 2(NVM組61)在相同100日的期間中僅改寫100次(程式/消
去循環數=100次)。當每個區塊的改寫次數的限制值例如為1000次時,在NVM組# 1中,執行200次(=1000次-800次)份的改寫(程式/消去動作)後,NVM組# 1的改寫次數達到該限制值。此時,NVM組# 1內的各區塊已經無法發揮正常機能的可能性很高。
在本實施形態中,因應必要也可以執行在NVM組# 1(NVM組60)與NVM組# 2(NVM組61)之間的資料交換動作。例如,在從SSD3的使用開始經過100日的時點,因應來自要求NVM組交換的主機2的指令,進行NVM組# 1(NVM組60)與NVM組# 2(NVM組61)之間的資料交換也可以。
在NVM組交換動作中,儲存在NVM組# 1(NVM組60)的有效資料被複製至NVM組# 2(NVM組61)。接著,將對應NVM組# 1(NVM組60)的查詢表更新,藉此將表示複製該有效資料的NVM組# 2(NVM組61)內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
又,儲存在NVM組# 2(NVM組61)的有效資料被複製至NVM組# 1(NVM組60)。接著,將對應NVM組# 2(NVM組61)的查詢表更新,藉此將表示複製該有效資料的NVM組# 1(NVM組60)內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
在NVM組交換動作結束後,資料A(具有高更新頻度的資料)用的物理記憶空間變更成NVM組# 2(NVM設定61),資料B(具有低更新頻度的資料)用的物理記憶空間變更成
NVM組# 1(NVM設定60)。
NVM組交換動作結束後馬上進行的NVM組# 2(NVM組61)的改寫次數為100次,資料交換結束馬上進行的NVM組# 2(NVM組61)的改寫次數為100次,NVM組# 1(NVM組60)的改寫次數為800次。
之後,資料A再以高頻度更新,藉此NVM組# 2的改寫次數在100日間增加至800次。另一方面,資料B以較低頻度更新,藉此NVM組# 1的改寫次數在100日間增加至100次。其結果,從初期狀態經過200日時(NVM組交換動作開始經過100日時),NVM組# 2(NVM組61)的改寫次數成為900次,NVM組# 1(NVM組60)的改寫次數成為900次。
這樣藉由執行NVM組交換動作,在NVM組# 1(NVM組60)與NVM組# 2(NVM組61)間能夠使各自所屬的區塊改寫次數均等化。因此,能夠使NVM組間的消耗度均等化。
圖20表示為了NVM組交換動作之前的2個NVM組所執行的主寫入/垃圾回收動作。
在NVM組交換動作的執行前,在NVM組# 1(NVM組60)、NVM組# 2(NVM組61)中,主寫入/垃圾回收動作相互獨立執行。詳細與圖4所說明的一樣。
圖21表示為了NVM組交換動作在2個NVM組間執行的主寫入/垃圾回收動作。
在NVM組# 1中,空區塊池80內的1個空區塊作為使用者輸入區塊210而被分配。又,在NVM組# 2中,空區塊池81內的1個空區塊作為使用者輸入區塊211而被分配。
來自主機2的寫入資料被從寫入緩衝器30寫入至使用者輸入區塊210。通常,在寫入緩衝器30中,雖然儲存有與對應NVM組# 1(NVM組60)的命名空間100或命名空間101有關連的寫入資料,但在NVM組交換動作開始後,與對應NVM組# 2(NVM組61)的命名空間102有關連的寫入資料被儲存至寫入緩衝器30。接著,將對應NVM組# 2(NVM組61)的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊210內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
這樣,在NVM組間交換動作之前,與命名空間102有關連的寫入資料的寫入目標為NVM組# 2(NVM組61)的使用者輸入區塊211,但是NVM組交換動作開始後,與命名空間102有關連的寫入資料的寫入目標變更成NVM組# 1(NVM組60)的使用者輸入區塊210。
又,來自主機2的寫入資料被從寫入緩衝器31寫入至使用者輸入區塊211。通常,在寫入緩衝器31中,雖然儲存有與對應NVM組# 2(NVM組61)的命名空間102有關連的寫入資料,但在NVM組交換動作開始後,與對應NVM組# 1(NVM組60)的命名空間100或101有關連的寫入資料被
儲存至寫入緩衝器31。接著,將對應NVM組# 1(NVM組60)的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊211內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
這樣,在NVM組間交換動作之前,與命名空間101或命名空間100有關連的寫入資料的寫入目標為NVM組# 1(NVM組60)的使用者輸入區塊210,但是NVM組交換動作開始後,與命名空間101或命名空間100有關連的寫入資料的寫入目標變更成NVM組# 2(NVM組61)的使用者輸入區塊211。
使用者輸入區塊210被寫入資料填滿後,該使用者輸入區塊210被移動至NVM子組(資料區塊池)90。也就是說,被資料填滿的使用者輸入區塊210藉由NVM子組(資料區塊池)90來管理。
又,使用者輸入區塊211被寫入資料填滿後,該使用者輸入區塊211被移動至NVM子組(資料區塊池)91。也就是說,被資料填滿的使用者輸入區塊211藉由NVM子組(資料區塊池)91來管理。
在NVM組# 1(NVM組60)中,空區塊池80內的1個空區塊作為GC輸入區塊200而被分配。
又,在NVM組(NVM組61)中,空區塊池81內的1個空區塊作為GC輸入區塊201而被分配。
從複製源NVM組(NVM組60)的NVM子組90內的區塊之中,將保持有效資料的區塊作為複製源區塊來選擇。接著,僅將該複製源區塊內的有效資料複製至NVM組# 2(NVM組61)的GC輸入區塊201。接著,將對應NVM子組90的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊201內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
從NVM組# 2(NVM組61)的NVM子組91內的區塊之中,將保持有效資料的區塊作為複製源區塊來選擇。接著,僅將該複製源區塊內的有效資料複製至NVM組# 1(NVM組60)的GC輸入區塊200。接著,將對應NVM子組91的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊200內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
在NVM組# 1(NVM組60)中,GC輸入區塊200被來自NVM組# 2(NVM組61)的1個以上的區塊的有效資料填滿後,GC輸入區塊200被移動至NVM子組90。也就是說,被有效資料填滿的GC輸入區塊200藉由NVM子組(資料區塊
池)90來管理。
又,在NVM組# 2(NVM組61)中,GC輸入區塊201被來自NVM組# 1(NVM組60)的1個以上的區塊的有效資料填滿後,GC輸入區塊201被移動至NVM子組91。也就是說,被有效資料填滿的GC輸入區塊201藉由NVM子組(資料區塊池)91來管理。
在NVM組# 1(NVM組60)中,被NVM子組90管理且未保持有效資料的區塊,從NVM子組90返回至空區塊池80。例如,被保持於NVM子組90內的某區塊的所有資料,經由向使用者輸入區塊210的新寫入資料的寫入而被無效化後,該區塊從NVM子組90返回至空區塊池80。
在NVM組# 2(NVM組61)中,被NVM子組91管理且未保持有效資料的區塊,從NVM子組91返回空區塊池81。例如,被保持於NVM子組91內的某區塊的所有資料,經由向使用者輸入區塊211的新寫入資料的寫入而被無效化後,該區塊從NVM子組91返回至空區塊池81。
圖22表示新NVM組作成動作的概要。
此時,想定成利用包含NAND型快閃記憶體晶片600~606、610~616、620~626、...640~646的NVM組160的情形。該NVM組160中存在有空區塊池180。空區塊池180被NVM子組190B及NVM子組190C所共有。再來,對應NVM子組190B設置寫入緩衝器130B,對應NVM子組190C設置
寫入緩衝器130C。
控制器4如圖22的下部所示,能夠從NVM組160作成新的NVM組161。此時,首先,從包含於NVM組160的複數NAND型快閃記憶體晶片之中,決定新NVM組161用應確保的NAND型快閃記憶體晶片。在圖22之例中,作為NVM組161用的NAND型快閃記憶體晶片決定NAND型快閃記憶體晶片600,610,620,...640。該等NAND型快閃記憶體晶片600,610,620,...640內的有效資料被複製至屬於NVM組160內的剩下的NAND型快閃記憶體晶片的區塊群。
藉此,作成NVM組161用的空區塊池181、NVM子組190A、寫入緩衝器130A。NAND型快閃記憶體晶片600,610,620,...640內的空區塊分別被NVM組161用的空區塊池181所管理。原先的NVM組160成為縮小的NVM組。空區塊池180僅管理除了NAND型快閃記憶體晶片600,610,620,...640以外的屬於剩下的晶片的空區塊群。
圖23表示為了新NVM組作成所執行的主寫入/垃圾回收動作。其中,想定成從包含2個NVM子組的原先的NVM組160作成新的NVM組161的情形。
對應原先的NVM組160的空區塊池180內的1個空區塊作為對應NVM子組190B的使用者輸入區塊410而被分配。又,空區塊池180內的1個空區塊作為對應NVM子組190C
的使用者輸入區塊411而被分配。此外,若使用者輸入區塊410、411已被分配的話,不執行該動作。
來自主機2的寫入資料被從寫入緩衝器130B被寫入至使用者輸入區塊410。接著,將對應NVM子組190B的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊410內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
又,來自主機2的寫入資料被從寫入緩衝器130C寫入至使用者輸入區塊411。接著,將對應NVM子組190C的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊411內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
使用者輸入區塊410被寫入資料填滿後,該使用者輸入區塊410被移動至NVM子組(資料區塊池)190B。也就是說,被資料填滿的使用者輸入區塊410藉由NVM子組(資料區塊池)190B來管理。
又,使用者輸入區塊411被寫入資料填滿後,該使用者輸入區塊411被移動至NVM子組(資料區塊池)190C。也就是說,被資料填滿的使用者輸入區塊411藉由NVM子組(資料區塊池)190C來管理。
原先的NVM組(NVM組160)中,來自空區塊池180內的空區塊的1個區塊作為對應NVM子組190B的GC輸入區塊400而被分配。又,來自空區塊池180內的空區塊的1個區塊作為對應NVM子組190C的GC輸入區塊401而被分配。
從NVM子組190B(或NVM子組190C)內的區塊之中,將有效資料與無效資料混合的一個以上的區塊作為複製源區塊來選擇,僅將複製源區塊內的有效資料複製至GC輸入區域400(或GC輸入區塊401)。接著,將對應NVM子組190B(或NVM子組190C)的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊400(或GC輸入區塊401)內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
GC輸入區塊400(或GC輸入區塊401)被有效資料填滿後,GC輸入區塊400(或GC輸入區塊401)被移動至NVM子組190B(或NVM子組190C)。也就是說,被有效資料填滿的GC輸入區塊藉由對應摸NVM子組(資料區塊池)來管理。
被NVM子組190B(或NVM子組190C)管理且未保持有效資料的區塊,返回至空區塊池。此時,應分配至新NVM組161而不屬於晶片集合的區塊,從NVM子組190B(或NVM子組190C)返回至空區塊池180。另一方面,應分配至新NVM組161而不屬於晶片集合的區塊,從NVM子組190B(或NVM子組190C)返回至新NVM組的空區塊池181。
此外,在上述說明中,雖說明對原先的NVM組160全體進行GC的情形,但從應分配至新NVM組161而屬於晶片集合的區塊將保持有效資料的區塊優先作為複製源區塊來選擇,而僅將該複製源區塊內的有效資料複製至GC輸入區塊(複製目標區塊)也可以。藉此,能在短時間作成新的NVM組161。
接著,利用圖24~圖26,具體說明新NVM組作成動作。在圖24~圖26中,為了使圖示簡單化,想定成NVM組330(NVM組A)包含NAND型快閃記憶體晶片1~4,各晶片具有包含頁面P1~P4的2個區塊的情形。
首先,從所屬於NVM組A的NAND型快閃記憶體晶片1~4之中,決定新NVM組B用應確保的NAND型快閃記憶體晶片1~2。
接著,如圖24所示,NVM組A的空區塊池300內的空區塊(在這裡為區塊# 41)作為GC輸入區塊320而被分配。又,從確保NVM組B用的NAND型快閃記憶體晶片1~2的區塊之中將保持有效資料的區塊(這裡為區塊# 11)作為複製源區塊來選擇,將該被選擇的複製源區塊(區塊# 11)內的
有效資料複製至GC輸入區塊320(區塊# 41)。
在區塊# 11中,當有效資料d1、d3與無效資料d2、d4混合時,僅將有效資料d1及資料d3複製至GC輸入區塊320(區塊# 41)。此時,資料d1被複製至區塊# 41的頁面P1,資料d3被複製至區塊# 41的頁面P2。
區塊# 11的有效資料(資料d1及資料d3)被複製至GC輸入區塊320(區塊# 41)後,區塊# 11的資料d1及資料d3被無效化。因此,因為區塊# 11成為未保持有效資料的區塊,如圖25所示,區塊# 11返回至NVM組B(新NVM組)而新作成的空區塊池301。
在確保NVM組B用的NAND型快閃記憶體晶片之中,存在有效資料d5、d7、無效資料d6、d8混合的區塊# 12。將區塊# 12作為複製源區塊選擇後,僅將區塊# 12的有效資料(資料d5及資料d7)複製至GC輸入區塊320(區塊# 41)。此時,資料d5被複製至區塊# 21的頁面P3,資料d7被複製至區塊# 41的頁面P4。
區塊# 12的有效資料(資料d5及資料d7)被複製至GC輸入區塊320(區塊# 41)後,區塊# 12的資料d5及資料d7被無效化。因此,因為區塊# 12成為未保持有效資料的區塊,如圖26所示,區塊# 12返回至NVM組B(新NVM組)空區塊池301。
圖27表示NVM組結合動作的概要。
在圖27中,表示將NVM組# 1(NVM組163)及NVM組# 2(NVM組164)結合至NVM組# 3(NVM組165)的動作。
NVM組# 1(NVM組163)包含NAND型快閃記憶體晶片600,610,620,...640。NVM組# 2(NVM組164)包含NAND型快閃記憶體晶片601,611,621,...641。NVM組# 3(NVM組165)包含NAND型快閃記憶體晶片602~606、612~616、622~626、...642~646。
NVM組# 1(NVM組163)及NVM組# 2(NVM組164)與NVM組# 3(NVM組165)結合時,對應NVM組# 1(NVM組163)的空區塊池183、及對應NVM組# 2(NVM組164)的空區塊池184也與對應NVM組# 1(NVM組165)的空區塊池185結合。又,NVM組# 1(NVM組163)的NVM子組190A、及NVM組# 2(NVM組164)的NVM子組190B也與NVM組# 3(NVM組165)的NVM子組190C結合。
圖28表示為了NVM組結合所執行的主寫入/垃圾回收動作的圖。
在執行NVM組結合動作前,在NVM組# 1~# 3中,相互獨立執行寫入資料的寫入動作及垃圾回收動作。
空區塊池183內的1個空區塊作為使用者輸入區塊413而被分配。又,空區塊池184內的1個空區塊作為使用者輸入區塊414而被分配。再來空區塊池185內的1個空區塊作為使用者輸入區塊415而被分配。此外,若使用者輸入區塊413,414,415已被分配的話,不執行該動作。
在NVM組# 1(NVM組163)中,來自主機2的寫入資料被從寫入緩衝器130A寫入至使用者輸入區塊413。在寫入緩衝器130A中,將對應至NVM子組190A的寫入資料暫時儲存。接著,將對應NVM組163的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊413內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
又,在NVM組# 2(NVM組164)中,來自主機2的寫入資料被從寫入緩衝器130B寫入至使用者輸入區塊414。在寫入緩衝器130B中,將對應至NVM子組190B的寫入資料暫時儲存。接著,將對應NVM組164的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊414內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
再來,在NVM組# 3(NVM組165)中,來自主機2的寫入資料被從寫入緩衝器130C寫入至使用者輸入區塊415。在寫入緩衝器130C中,將對應至NVM子組190C的寫入資料暫時儲存。接著,將對應NVM組165的查詢表更新,藉此將表示寫入該寫入資料的使用者輸入區塊415內的物理記憶位置的物理位址對映至對應寫入資料的邏輯位址(LBA)。
在NVM組# 3中,使用者輸入區塊415被寫入資料填滿
後,該使用者輸入區塊415被移動至NVM子組(資料區塊池)190C。也就是說,被資料填滿的使用者輸入區塊415藉由NVM子組(資料區塊池)190C來管理。
執行NVM組結合動作前,在NVM組# 1中,使用者輸入區塊413被寫入資料填滿的話,該使用者輸入區塊413被移動至NVM子組(資料區塊池)190A,在NVM組# 2中,使用者輸入區塊414被寫入資料填滿的話,該使用者輸入區塊414被移動至NVM子組(資料區塊池)190B。不過,在執行NVM組結合動作後,取代(3)而執行(3)’所示的動作。
在NVM組# 1內的使用者輸入區塊413被寫入資料填滿後,該使用者輸入區塊413被移動至NVM組# 3的NVM子組190C。也就是說,被資料填滿的使用者輸入區塊413藉由NVM子組(資料區塊池)190C來管理。
又,在NVM組# 2內的使用者輸入區塊414被寫入資料填滿後,該使用者輸入區塊414被移動至NVM組# 3的NVM子組190C。也就是說,被資料填滿的使用者輸入區塊414藉由NVM子組(資料區塊池)190C來管理。
在NVM子組(資料區塊池)190A中需要執行垃圾回收時,執行與其他NVM組獨立,為了NVM子組190A內的區塊群的垃圾回收動作。例如,NVM子組190A所包含的區
塊數比對應NVM子組190A的某閾值X1還多時,也可以判斷成垃圾回收動作為必要。閾值X1可以基於可分配至NVM子組190A用的區塊總數來決定。例如,將可分配至NVM子組190A用的區塊總數減去預定數的剩下的值,可以作為對應NVM子組190A的某閾值X1來利用。
在NVM子組190A中需要垃圾回收動作時,將空區塊池183內的1個空區塊作為GC輸入區塊403分配。
又,在NVM子組(資料區塊池)190B中需要執行垃圾回收時,執行與其他NVM組獨立,為了NVM子組190B內的區塊群的垃圾回收動作。例如,NVM子組190B所包含的區塊數比對應NVM子組190B的某閾值X1還多時,也可以判斷成垃圾回收動作為必要。閾值X1可以基於可分配至NVM子組190B用的區塊總數來決定。例如,將可分配至NVM子組190B用的區塊總數減去預定數的剩下的值,可以作為對應NVM子組190B的某閾值X1來利用。
在NVM子組190B中需要垃圾回收動作時,將空區塊池184內的1個空區塊作為GC輸入區塊404分配。
在NVM子組(資料區塊池)190C中需要執行垃圾回收時,執行與其他NVM組獨立,為了NVM子組190C內的區塊群的垃圾回收動作。例如,NVM子組190C所包含的區塊數比對應NVM子組190C的某閾值X1還多時,也可以判斷成垃圾回收動作為必要。閾值X1可以基於可分配至NVM子組190C用的區塊總數來決定。例如,將可分配至NVM子組190C用的區塊總數減去預定數的剩下的值,可
以作為對應NVM子組190C的某閾值X1來利用。
在NVM子組190C中需要垃圾回收動作時,將空區塊池185內的1個空區塊作為GC輸入區塊405分配。
從NVM子組190A內的區塊之中將有效資料與無效資料混合的一個以上的區塊作為複製源區塊來選擇。僅將該被選擇的區塊的有效資料複製至GC輸入區塊403。接著,將對應NVM組163的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊403內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
又,從NVM子組190B內的區塊之中將有效資料與無效資料混合的一個以上的區塊作為複製源區塊來選擇。僅將該被選擇的區塊的有效資料複製至GC輸入區塊404。接著,將對應NVM組164的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊404內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
再來,從NVM子組190C內的區塊之中將有效資料與無效資料混合的一個以上的區塊作為複製源區塊來選擇。僅將該被選擇的區塊的有效資料複製至GC輸入區塊405。接著,將對應NVM組165的查詢表更新,藉此將表示複製該有效資料的GC輸入區塊405內的物理記憶位置的物理位址對映至對應複製的有效資料的邏輯位址(LBA)。
在NVM組# 3中,GC輸入區塊405被有效資料填滿後,該GC輸入區塊403被移動至NVM子組190C。也就是說,被有效資料填滿的GC輸入區塊405藉由NVM子組(資料區塊池)190C來管理。
執行NVM組結合動作前,在NVM組# 1中,GC輸入區塊403被寫入資料填滿的話,GC輸入區塊403被移動至NVM子組190A,在NVM組# 2中,GC輸入區塊404被有效資料填滿的話,GC輸入區塊404被移動至NVM子組190B。不過,在執行NVM組結合動作後,取代(6)而執行(6)’所示的動作。
NVM組# 1內的GC輸入區塊403被有效資料填滿後,GC輸入區塊403被移動至NVM組# 3內的NVM子組190C。被有效資料填滿的使用者輸入區塊403藉由NVM子組(資料區塊池)190C來管理。
又,NVM組# 2內的GC輸入區塊404被有效資料填滿後,GC輸入區塊404被移動至NVM組# 3內的NVM子組190C。被有效資料填滿的使用者輸入區塊403藉由NVM子組(資料區塊池)190C來管理。
在NVM組# 3中,被NVM子組190C管理且未保持有效
資料的區塊,從NVM子組190C返回至空區塊池185。未保持有效資料的區塊為:因主寫入而導致其所有資料被無效化的區塊、或因垃圾回收動作而導致其所有有效資料被複製至複製目標區塊的區塊。
在執行NVM組結合動作前,在NVM組# 1中,被NVM子組190A管理且未保持有效資料的區塊,從NVM子組190A返回至空區塊池183,被NVM子組190B管理且未保持有效資料的區塊,從NVM子組190B返回至空區塊池184。不過,在執行NVM組結合動作後,取代(7)而執行(7)’所示的動作。
NVM子組190A的區塊被移動至NVM組# 3的NVM子組190C。也就是說,NVM子組190A的區塊藉由NVM子組(資料區塊池)190C來管理。
又,NVM子組190B的區塊被移動至NVM組# 3的NVM子組190C。也就是說,NVM子組190B的區塊藉由NVM子組(資料區塊池)190C來管理。
NVM組# 1的空區塊池183內的空區塊被移動至NVM組# 3的空區塊池185。又,NVM組# 2的空區塊池184內的空區塊被移動至NVM組# 3的空區塊池185。
圖29及圖30表示藉由控制器4來執行的資料寫入/讀出
動作的順序。
接收到來自主機2的指令後(步驟S101的YES),NVM組控制部21檢查接收到的指令中包含的命名空間ID(步驟S102)。若接收到的指令指定對應NVM組# 1的區域的話(步驟S103的YES),NVM組控制部21將NVM組# 1決定成存取對象(步驟S104)。例如,在NVM組# 1對應NSID1的命名空間的例子中,接收到的指令包含NSID1的話,可以判定成對應NVM組# 1的區域被指定。
若接收到的指令是寫入指令的話(步驟S105的YES),NVM組控制部21判定是否需要新的使用者輸入區塊的分配(步驟S106)。若需要新的使用者輸入區塊的分配的話(步驟S106的YES),NVM組控制部21將NVM組# 1的空區塊池內的空區塊作為使用者輸入區塊來分配(步驟S107),將寫入資料寫入至分配的使用者輸入區塊(步驟S108)。若不需要新的使用者輸入區塊的分配的話(步驟S106的NO),NVM組控制部21將寫入資料寫入至已經分配的使用者輸入區塊(步驟S108)。
在使用者輸入區塊寫入寫入資料時,NVM組控制部21將對應NVM組# 1的LUT更新(步驟S109)。接著,NVM組控制部21將寫入結束的響應回送至主機2(步驟S110)。
若接收到的指令為讀取指令的話(步驟S105的NO、步驟S111的YES),NVM組控制部21參照對應NVM組# 1的LUT(步驟S112),得到對應讀取指令內的開始LBA的物理位址。NVM組控制部21基於該物理位址,將由讀取指令所
指定的資料,從所屬於NVM組# 1的NVM子組的區塊讀出(步驟S113)。接著,NVM組控制部21將讀出的資料及讀取結束的響應回送至主機2(步驟S114)。
若接收到的指令未指定對應NVM組# 1的區域的話(步驟S103的NO),NVM組控制部21判定接收到的指令是否指定對應NVM組# 2的區域(步驟S115)。若接收到的指令指定對應NVM組# 2的區域的話(步驟S115的YES),NVM組控制部21將NVM組# 2決定成存取對象(步驟S116)。例如,在NVM組# 2對應NSID2的命名空間的例子中,接收到的指令包含NSID2的話,可以判定成對應NVM組# 2的區域被指定。
若接收到的指令是寫入指令的話(步驟S117的YES),NVM組控制部21判定是否需要新的使用者輸入區塊的分配(步驟S118)。若需要新的使用者輸入區塊的分配的話(步驟S118的YES),NVM組控制部21將NVM組# 2的空區塊池內的空區塊作為使用者輸入區塊來分配(步驟S119),將寫入資料寫入至分配的使用者輸入區塊(步驟S120)。若不需要新的使用者輸入區塊的分配的話(步驟S118的NO),NVM組控制部21將寫入資料寫入至已經分配的使用者輸入區塊(步驟S120)。
在使用者輸入區塊寫入寫入資料時,NVM組控制部21將對應NVM組# 2的LUT更新(步驟S121)。接著,NVM組控制部21將寫入結束的響應回送至主機2(步驟S122)。
若接收到的指令為讀取指令的話(步驟S117的NO、步
驟S123的YES),NVM組控制部21參照對應NVM組# 2的LUT(步驟S124),得到對應讀取指令內的開始LBA的物理位址。NVM組控制部21基於該物理位址,將被由讀取指令所指定的資料,從所屬於NVM組# 2的NVM子組的區塊讀出(步驟S125)。接著,NVM組控制部21將讀出的資料及讀取結束的響應回送至主機2(步驟S126)。
圖31的流程圖表示藉由GC動作控制部22在所屬於某NVM組的每個NVM子組所執行的垃圾回收動作的順序。
GC動作控制部22判定所屬於NVM組# 1的NVM子組# 1所包含的區塊數是否達到對應NVM子組# 1的閾值X1(步驟S201)。若所屬於NVM組# 1的NVM子組# 1所包含的區塊數達到閾值X1的話(步驟S201的YES),GC動作控制部22開始NVM子組# 1的GC。
GC動作控制部22,首先,將NVM組# 1的空區塊池內的空區塊作為複製目標區塊來分配(步驟S202)。接著,GC動作控制部22從NVM子組# 1的區塊之中,將有效資料與無效資料混合的區塊作為複製源區塊來選擇(步驟S203)。
接著,GC動作控制部22僅將被選擇的區塊(複製源區塊)的有效資料複製至複製目標區塊(步驟S204)。接著,GC動作控制部22將對應NVM子組# 1的LUT更新(步驟S205)。之後,GC動作控制部22,使僅成為無效資料的區塊(複製源區塊)返回至NVM組# 1的空區塊池(步驟S206)。
接著,GC動作控制部22判定NVM子組# 1所包含的區塊數是否降低至對應NVM子組# 1的閾值X2(<X1)以下(步
驟S207)。若NVM子組# 1所包含的區塊數降低至對應NVM子組# 1的閾值X2(<X1)以下的話(步驟S207的YES),GC動作控制部22結束垃圾回收動作。若NVM子組# 1所包含的區塊數沒有降低至對應NVM子組# 1的閾值X2(<X1)以下的話(步驟S207的NO),GC動作控制部22繼續執行垃圾回收動作(步驟S202~S206)。
圖32的流程圖表示藉由NVM組間複製控制部23所執行的NVM組間複製動作的順序。
當接收到包含指定複製源NVM組及複製目標NVM組的參數的來自主機2之NVM組間複製指令後(步驟S301的YES),NVM組間複製控制部23將複製目標NVM組的空區塊池內的空區塊作為複製目標區塊來分配(步驟S302)。接著,NVM組間複製控制部23從屬於複製源NVM組的區塊之中將具有有效資料的區塊作為複製源區塊來選擇(步驟S303)。
接著,NVM組間複製控制部23從複製源區塊將有效資料複製至複製目標區塊(步驟S304)。進行有效資料的複製後,NVM組間複製控制部23更新對應複製源NVM組的NVM子組的LUT(步驟S305)。
接著,NVM組間複製控制部23使成為未持有有效資料的複製源區塊返回至複製源NVM組的空區塊池(步驟S306)。
NVM組間複製控制部23重複步驟S302~S306的處理,直到在複製源NVM組不存在具有有效資料的區塊為止(步
驟S307)。
圖33的流程圖表示藉由NVM組間複製控制部23所執行的NVM組間複製動作的別的順序。其中,想定成許可NVM組間複製動作中的主寫入動作。
當接收到包含指定複製源NVM組及複製目標NVM組的參數的來自主機2之NVM組間複製指令後(步驟S401的YES),NVM組間複製控制部23將複製目標NVM組的空區塊池內的空區塊作為複製目標區塊來分配(步驟S402)。接著,NVM組間複製控制部23從屬於複製源NVM組的區塊之中將具有有效資料的區塊作為複製源區塊來選擇(步驟S403)。
接著,NVM組間複製控制部23從複製源區塊將有效資料複製至複製目標區塊(步驟S404)。進行有效資料的複製後,NVM組間複製控制部23更新對應複製源NVM組的NVM子組的LUT(步驟S405)。
接著,NVM組間複製控制部23使成為未持有有效資料的複製源區塊返回至複製源NVM組的空區塊池(步驟S406)。
接著,NVM組間複製控制部23判定在複製源NVM組是否存在具有有效資料的區塊(步驟S407)。若在複製源NVM組不存在具有有效資料的區塊的話(步驟S407的YES),NVM組間複製控制部23結束NVM組間複製動作。
另一方面,若在複製源NVM組存在具有有效資料的區塊的話(步驟S407的NO),控制器4的NVM組控制部21判定
是否接收到向所屬於複製源NVM組的NVM子組的寫入資料(步驟S408)。若未接收到向所屬於複製源NVM組的NVM子組的寫入資料的話(步驟S408的NO),處理進入步驟S402。
若接收到向所屬於複製源NVM組的NVM子組的寫入資料的話(步驟S408的YES),NVM控制部21將複製目標NVM組的空區塊池的空區塊作為寫入目標區塊來分配(步驟S409)。接著,NVM控制部21將寫入資料寫入至該經分配的區塊(步驟S410)。寫入資料被寫入後,NVM控制部21將對應所屬於複製源NVM組的NVM子組的LUT更新(步驟S411)。
接著,控制部4將寫入結束的響應回送至主機2(步驟S412)。寫入結束的響應回送至主機2後,處理進入步驟S402。
重複步驟S402~S412的處理,直到在複製源NVM組不存在具有有效資料的區塊為止(步驟S407)。
圖34的流程圖表示藉由新NVM組作成控制部24所執行的新NVM組作成動作的順序。
接收到新NVM組作成指令後(步驟S501的YES),新NVM組作成控制部24從屬於原先的NVM組的所有的NAND型快閃記憶體晶片之中,決定新NVM組用應確保的NAND型快閃記憶體晶片的群組(步驟S502)。原先的NVM組被作為新NVM組作成指令也可以。
接著,新NVM組作成控制部24,將原先的NVM組的
空區塊池的空區塊作為複製目標區塊來分配(步驟S503)。接著,新NVM組作成控制部24從屬於新NVM組的區塊(也就是屬於被確保的NAND型快閃記憶體晶片的群組的區塊)中,將保持有效資料的區塊作為複製源區塊來選擇(步驟S504)。
接著,新NVM組作成控制部24從複製源區塊將有效資料複製至複製目標區塊(步驟S505)。有效資料被複製後,新NVM組作成控制部24更新對應複製源NVM組的NVM子組的LUT(步驟S506)。接著,新NVM組作成控制部24使成為未持有有效資料的複製源區塊返回至新NVM組的空區塊池(步驟S507)。
接著,新NVM組作成控制部24判定在新NVM組是否存在具有有效資料的區塊(步驟S508)。若在新NVM組不存在具有有效資料的區塊的話(步驟S508的YES),新NVM組作成控制部24結束新NVM組作成動作。若在新NVM組存在具有有效資料的區塊的話(步驟S508的NO),新NVM組作成控制部24繼續新NVM組作成動作(步驟S503~S507)。
重複步驟S503~S507的處理,直到在新NVM組不存在具有有效資料的區塊為止。
圖35的流程圖表示藉由新NVM組作成控制部24所執行的新NVM組作成動作的別的順序。其中,表示出新NVM組作成動作與原先的NVM組中的垃圾回收動作並行執行的順序。
接收到新NVM組作成指令後(步驟S601),新NVM組作
成控制部24決定新NVM組用應確保的NAND型快閃記憶體晶片的群組(步驟S602)。接著,新NVM組作成控制部24,將原先的NVM組的空區塊池的空區塊作為複製目標區塊來分配(步驟S603)。接著,新NVM組作成控制部24從屬於原先的NVM組的區塊中,將有效資料與無效資料混合的區塊作為複製源區塊來選擇(步驟S604)。在步驟S604中,新NVM組作成控制部24將有效資料少的區塊優先作為複製源區塊來選擇也可以。
接著,新NVM組作成控制部24從複製源區塊將有效資料複製至複製目標區塊(步驟S605)。有效資料被複製後,新NVM組作成控制部24更新對應複製源NVM組的NVM子組的LUT(步驟S606)。
接著,新NVM組作成控制部24判定成為未持有有效資料的複製源區塊的物理位置是否屬於新NVM組(步驟S607)。成為未持有有效資料的複製源區塊的物理位置屬於新NVM組的話(步驟S607的YES),新NVM組作成控制部24使成為未持有有效資料的複製源區塊返回至新NVM組的空區塊池(步驟S608)。成為未持有有效資料的複製源區塊的物理位置屬於新NVM組的話(步驟S607的NO),新NVM組作成控制部24使成為未持有有效資料的複製源區塊返回至原先的NVM組的空區塊池(步驟S609)。
接著,新NVM組作成控制部24判定在新NVM組是否不存在具有有效資料的區塊(步驟S610)。若在新NVM組不存在具有有效資料的區塊的話(步驟S610的YES),新NVM
組作成控制部24結束新NVM組作成動作。若在新NVM組存在具有有效資料的區塊的話(步驟S610的NO),新NVM組作成控制部24執行步驟S603的處理。
重複步驟S603~S607的處理,直到在新NVM組不存在具有有效資料的區塊為止。
圖36表示作為主機2作用的資訊處理裝置(計算裝置)的硬體構成例。
該資訊處理裝置作為如伺服器的計算裝置來被實現。該資訊處理裝置包含:處理器(CPU)801、主記憶體802、BIOS-ROM803、網路控制器805、周邊介面控制器806、控制器807、及嵌入式控制器(EC)808等。
處理器801為控制該資訊處理裝置的各組成的動作而構成的CPU。該處理器801執行從複數SSD3的任1個載入至主記憶體802的各種程式。主記憶體802由DRAM這種隨機存取記憶體來構成。又,在該程式中,也可以包含用以發行指示上述NVM組間複製、NVM組交換、新NVM組作成、及NVM組結合的指令的設定程式。
又,處理器801也執行儲存於非揮發性記憶體BIOS-ROM803的基本輸入輸出系統(BIOS)。BIOS為用於硬體控制的系統程式。
網路控制器805為如有線LAN控制器、無線LAN控制器的通信裝置。周邊介面控制器806以執行與如USB裝置的周邊裝置間的通信的方式構成。
控制器807以執行與分別連接至複數連接器807A的裝
置間的通信的方式構成。複數SSD3可以分別連接至複數連接器807A。控制器807為SAS expander、PCIe Switch、PCIe expander、快閃陣列控制器、或RAID控制器等。
EC808作為執行資訊處理裝置的電力管理的方式而構成的系統控制器來作用。
圖37表示包含複數SSD3與主機2的資訊處理裝置(伺服器)的構成例。
該資訊處理裝置(伺服器)具備可收容機櫃的薄箱形的框體901。多數的SSD3可以配置於框體901內。此時,各SSD3以能夠從設於框體901前面901A的槽孔取出的方式插入也可以。
系統板(主機板)902配置於框體901內。在系統板(主機板)902上實裝包含:CPU801、主記憶體802、網路控制器805、控制器807的各種電子元件。該等電子元件作為主機2作用。
如同以上所說明的,根據本實施形態,將該等NAND型快閃記憶體晶片分類成複數NVM組,使得複數NAND型快閃記憶體晶片分別僅屬於一個NVM組。接著,因應指定包含對應各NVM組的至少一個區域(例如命名空間)的來自主機的I/O指令,執行對於複數NVM組的一個NVM組的資料寫入/讀出動作。因此,能夠使分別指定對應相異的NVM組的相異區域之複數I/O指令(寫入指令、或讀取指令)以無晶片爭用的方式同時執行。因此,例如,即便是在對某NVM組的資料寫入動作的執行中,從主機2接收到
向對應別的NVM組的區域的讀取指令,控制器4也不必等待該資料寫入動作結束,而能夠立即執行對應該讀取指令的資料讀出動作。
又,即便資料寫入集中向特定的NVM組,藉由NVM組間複製動作,也能使該等NVM組的消耗均等。因此,能夠以無晶片爭用而存取非揮發性記憶體且能夠解消不均等的消耗。
此外,在本實施形態中,作為非揮發性記憶體例示了NAND型快閃記憶體。但是,本實施形態的功能例如也適用於MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、或FeRAM(Ferroelectric Random Access Memory)這些其他的各種非揮發性記憶體。
雖已說明了本發明的幾個實施形態,但該等實施形態僅作為例示,並沒有要限定本發明的範圍。該等新穎的實施形態,也可以利用於其他各種形態來實施,在不脫離發明要旨的範圍內,可以進行各種省略、置換、變更。該等實施形態及其變形,在包含於發明的範圍及要旨中的同時,也包含申請專利範圍中所記載之發明的均等範圍。
Claims (11)
- 一種可連接主機的記憶體系統,具備:包含連接至複數通道的複數非揮發性記憶體晶片的非揮發性記憶體,其中各揮發性記憶體晶片包含複數區塊;通過前述複數通道來控制前述非揮發性記憶體的控制器;其中,前述控制器,將前述複數非揮發性記憶體晶片分類成複數晶片群組,使得各前述複數非揮發性記憶體晶片僅屬於一個晶片群組;因應指定包含對應各晶片群組的至少一個區域的複數區域的任一者的來自前述主機的I/O指令,執行對於前述複數晶片群組內的一個晶片群組的資料寫入/讀出動作;藉由對應前述複數晶片群組的複數空區塊池,來將前述非揮發性記憶體的空區塊群在每個晶片群組個別地管理;從前述主機接收到包含指定複製源晶片群組及複製目標晶片群組的參數的指令時,(1)從屬於前述複製源晶片群組的區塊中將保持有效資料的區塊作為複製源區塊來選擇、(2)僅將前述複製源區塊內的有效資料,從對應前述複製目標晶片群組的空區塊池複製至被分配的複製目標區塊、(3)將管理各個邏輯位址與各個前述複製源晶片群組的物理位址之間的對映之位址變換表作更新,將表示複製前述有效資料的前述複製目標區塊內的物理記憶位置的物理位址對映至對應前述被複製的有效資料的邏輯位址、(4)當有效資料從前述複製源區塊消失時,使前述複製源區塊返回至對應前述複製源晶片群組的空區塊池、(5)直到在前述複製源晶片群組不存在保持有效資料的區塊為止,重複前述(1)~(4)的動作。
- 如請求項1所記載的記憶體系統,其中,在從前述複製源晶片群組將有效資料複製至前述複製目標晶片群組的動作執行中,從前述主機接收到向前述複製源晶片群組的寫入資料時,前述控制器,將前述寫入資料從對應前述複製目標晶片群組的前述空區塊池寫入至被分配的寫入目標區塊;將前述位址變換表更新,將表示寫入有前述寫入資料的前述寫入目標區塊內的物理記憶位置的物理位址對映至對應前述寫入資料的邏輯位址。
- 如請求項1所記載的記憶體系統,其中,從前述主機接收到從第1晶片群組作成新的晶片群組的要求的指令時,前述控制器,從前述第1晶片群組所包含的複數非揮發性記憶體晶片之中,決定前述新的晶片群組用應確保的複數非揮發性記憶體晶片;(6)從屬於前述被決定的複數非揮發性記憶體晶片的區塊中將保持有效資料的區塊作為複製源區塊來選擇、(7)僅將前述複製源區塊內的有效資料,從對應前述第1晶片群組的空區塊池複製至被分配的複製目標區塊、(8)將管理各個邏輯位址與各個前述第1晶片群組的物理位址之間的對映之位址變換表作更新,將表示複製前述有效資料的前述複製目標區塊內的物理記憶位置的物理位址對映至對應前述被複製的有效資料的邏輯位址、(9)當有效資料從前述複製源區塊消失時,使前述複製源區塊返回至對應前述新的晶片群組的空區塊池、(10)直到在前述被決定的複數非揮發性記憶體晶片不存在保持有效資料的區塊為止,重複前述(6)~(9)的動作。
- 如請求項1所記載的記憶體系統,其中,從前述主機接收到從第1晶片群組作成新的晶片群組的要求的指令時,前述控制器,從前述第1晶片群組所包含的複數非揮發性記憶體晶片之中,決定前述新的晶片群組用應確保的複數非揮發性記憶體晶片;(6)從屬於前述第1晶片群組的區塊中將有效資料及無效資料混合的區塊作為複製源區塊來選擇、(7)僅將前述複製源區塊內的有效資料,從對應前述第1晶片群組的空區塊池複製至被分配的複製目標區塊、(8)將管理各個邏輯位址與各個前述第1晶片群組的物理位址之間的對映之位址變換表作更新,將表示複製前述有效資料的前述複製目標區塊內的物理記憶位置的物理位址對映至對應前述被複製的有效資料的邏輯位址、(9)當有效資料從前述複製源區塊消失時,若前述複製源區塊是屬於前述被決定的複數非揮發性記憶體晶片的區塊的話,使前述複製源區塊返回至對應前述新的晶片群組的空區塊池,若前述複製源區塊不是屬於前述被決定的複數非揮發性記憶體晶片的區塊的話,使前述複製源區塊返回至對應前述第1晶片群組的前述空區塊池、(10)直到在前述被決定的複數非揮發性記憶體晶片不存在保持有效資料的區塊為止,重複前述(6)~(9)的動作。
- 如請求項1所記載的記憶體系統,其中,從前述主機接收到包含指定應交換所儲存的資料的第1及第2晶片群組的參數的指令時,前述控制器,(6)從屬於前述第1晶片群組的區塊中將保持有效資料的區塊作為第1複製源區塊來選擇、(7)僅將前述第1複製源區塊內的有效資料,從對應前述第2晶片群組的空區塊池複製至被分配的第1複製目標區塊、(8)將管理各個邏輯位址與各個前述第1晶片群組的物理位址之間的對映之位址變換表作更新,將表示複製前述有效資料的前述第1複製目標區塊內的物理記憶位置的物理位址對映至對應前述被複製的有效資料的邏輯位址、(9)當有效資料從前述第1複製源區塊消失時,使前述第1複製源區塊返回至對應前述第1晶片群組的空區塊池、(10)直到在前述第1晶片群組不存在保持有效資料的區塊為止,重複前述(6)~(9)的動作;(11)從屬於前述第2晶片群組的區塊中將保持有效資料的區塊作為第2複製源區塊來選擇、(12)僅將前述第2複製源區塊內的有效資料,從對應前述第1晶片群組的前述空區塊池複製至被分配的第2複製目標區塊、(13)將管理各個邏輯位址與各個前述第2晶片群組的物理位址之間的對映之第2位址變換表作更新,將表示複製前述有效資料的前述第2複製目標區塊內的物理記憶位置的物理位址對映至對應前述被複製的有效資料的邏輯位址、(14)當有效資料從前述第2複製源區塊消失時,使前述第2複製源區塊返回至對應前述第2晶片群組的前述空區塊池、(15)直到在前述第2晶片群組不存在保持有效資料的區塊為止,重複前述(11)~(14)的動作。
- 如請求項1所記載的記憶體系統,其中,前述複數晶片群組包含:橫跨前述複數通道的第1晶片群組,該第1晶片群組具有分別連接至前述複數通道的複數第1非揮發性記憶體晶片的集合;以及橫跨前述複數通道的第2晶片群組,該第2晶片群組具有分別連接至前述複數通道的複數第2非揮發性記憶體晶片的集合。
- 如請求項1所記載的記憶體系統,其中,前述複數晶片群組包含:具有分別連接至前述複數通道的第1通道的複數第1非揮發性記憶體晶片的集合之第1晶片群組;以及具有分別連接至前述複數通道的第2通道的複數第2非揮發性記憶體晶片的集合之第2晶片群組。
- 一種控制方法,係將包含連接至複數通道的複數非揮發性記憶體晶片的非揮發性記憶體通過前述複數通道來控制的控制方法,其中各揮發性記憶體晶片包含複數區塊;該控制方法執行:將前述複數非揮發性記憶體晶片分類成複數晶片群組,使得各前述複數非揮發性記憶體晶片僅屬於一個晶片群組;因應指定包含對應各晶片群組的至少一個區域的複數區域的任一者的來自主機的I/O指令,執行對於前述複數晶片群組內的一個晶片群組的資料寫入/讀出動作;藉由對應前述複數晶片群組的複數空區塊池,來將前述非揮發性記憶體的空區塊群在每個晶片群組個別地管理;從前述主機接收到包含指定複製源晶片群組及複製目標晶片群組的參數的指令時,(1)從屬於前述複製源晶片群組的區塊中將保持有效資料的區塊作為複製源區塊來選擇、(2)僅將前述複製源區塊內的有效資料,從對應前述複製目標晶片群組的空區塊池複製至被分配的複製目標區塊、(3)將管理各個邏輯位址與各個前述複製源晶片群組的物理位址之間的對映之位址變換表作更新,將表示複製前述有效資料的前述複製目標區塊內的物理記憶位置的物理位址對映至對應前述被複製的有效資料的邏輯位址、(4)當有效資料從前述複製源區塊消失時,使前述複製源區塊返回至對應前述複製源晶片群組的空區塊池、(5)直到在前述複製源晶片群組不存在保持有效資料的區塊為止,重複前述(1)~(4)的動作。
- 如請求項8所記載的控制方法,更具備執行:在從前述複製源晶片群組將有效資料複製至前述複製目標晶片群組的動作執行中,從前述主機接收到向前述複製源晶片群組的寫入資料時,將前述寫入資料從前述空區塊池寫入至被分配的寫入目標區塊,更新前述位址變換表,將表示寫入有前述寫入資料的前述寫入目標區塊內的物理記憶位置的物理位址對映至對應前述寫入資料的邏輯位址的動作。
- 如請求項8所記載的控制方法,其中,前述分類為將前述複數非揮發性記憶體晶片分類成:橫跨前述複數通道的第1晶片群組,該第1晶片群組具有分別連接至前述複數通道的複數第1非揮發性記憶體晶片的集合;以及橫跨前述複數通道的第2晶片群組,該第2晶片群組具有分別連接至前述複數通道的複數第2非揮發性記憶體晶片的集合。
- 如請求項8所記載的控制方法,其中,前述分類為將前述複數晶片群組分類成:具有分別連接至前述複數通道的第1通道的複數第1非揮發性記憶體晶片的集合之第1晶片群組;以及具有分別連接至前述複數通道的第2通道的複數第2非揮發性記憶體晶片的集合之第2晶片群組。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017036931A JP6765322B2 (ja) | 2017-02-28 | 2017-02-28 | メモリシステムおよび制御方法 |
JP2017-036931 | 2017-02-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201833765A TW201833765A (zh) | 2018-09-16 |
TWI643127B true TWI643127B (zh) | 2018-12-01 |
Family
ID=63246967
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106122909A TWI643127B (zh) | 2017-02-28 | 2017-07-07 | Memory system and control method |
TW107129148A TWI767042B (zh) | 2017-02-28 | 2017-07-07 | 記憶體系統及控制方法 |
TW111110910A TWI803257B (zh) | 2017-02-28 | 2017-07-07 | 控制器及控制方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107129148A TWI767042B (zh) | 2017-02-28 | 2017-07-07 | 記憶體系統及控制方法 |
TW111110910A TWI803257B (zh) | 2017-02-28 | 2017-07-07 | 控制器及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10411024B2 (zh) |
JP (1) | JP6765322B2 (zh) |
CN (2) | CN108509145B (zh) |
TW (3) | TWI643127B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7337228B2 (ja) * | 2018-09-19 | 2023-09-01 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7091203B2 (ja) * | 2018-09-19 | 2022-06-27 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN109324762A (zh) * | 2018-10-11 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种存储系统的构建方法、装置、设备及存储介质 |
US11042490B2 (en) * | 2018-11-15 | 2021-06-22 | Micron Technology, Inc. | Address obfuscation for memory |
CN109902033B (zh) * | 2019-02-13 | 2023-03-14 | 山东华芯半导体有限公司 | 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 |
JP6727365B1 (ja) * | 2019-03-27 | 2020-07-22 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
TWI719654B (zh) * | 2019-06-21 | 2021-02-21 | 慧榮科技股份有限公司 | 閃存實體資源集合管理裝置及方法以及電腦程式產品 |
US11704056B2 (en) * | 2019-07-26 | 2023-07-18 | Kioxia Corporation | Independent set data lanes for IOD SSD |
CN111273859B (zh) * | 2020-01-14 | 2023-09-15 | 北京百度网讯科技有限公司 | 分发模式下复制组成员的变更方法、装置、设备和介质 |
US11087846B1 (en) * | 2020-02-12 | 2021-08-10 | SK Hynix Inc. | Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder |
US11561713B2 (en) * | 2021-03-11 | 2023-01-24 | Western Digital Technologies, Inc. | Simplified high capacity die and block management |
JP2023072389A (ja) * | 2021-11-12 | 2023-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
TWI830363B (zh) * | 2022-05-19 | 2024-01-21 | 鈺立微電子股份有限公司 | 用於提供三維資訊的感測裝置 |
US12117932B2 (en) | 2023-01-09 | 2024-10-15 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057978A1 (en) * | 2008-08-26 | 2010-03-04 | Hitachi, Ltd. | Storage system and data guarantee method |
TW201235843A (en) * | 2011-02-02 | 2012-09-01 | Micron Technology Inc | Control arrangements and methods for accessing block oriented nonvolatile memory |
CN103366809A (zh) * | 2012-04-03 | 2013-10-23 | 三星电子株式会社 | 非易失性存储装置、存储系统及其编程方法 |
CN105321572A (zh) * | 2014-07-04 | 2016-02-10 | 三星电子株式会社 | 存储设备及其读取方法 |
TW201606778A (zh) * | 2014-08-08 | 2016-02-16 | Toshiba Kk | 記憶體系統、主機裝置、資訊處理系統 |
TW201633141A (zh) * | 2014-12-09 | 2016-09-16 | 英特爾公司 | 基於一儲存裝置的電流消耗設定檔判定在一儲存裝置中對一使用者爲不可取得之備用空間的調整之技術 |
US9477295B2 (en) * | 2014-05-15 | 2016-10-25 | Dell Products, L.P. | Non-volatile memory express (NVMe) device power management |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298472B2 (en) * | 2004-01-27 | 2016-03-29 | Nec Corporation | High-speed restart method, information processing device, and program |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
JP4746598B2 (ja) * | 2007-09-28 | 2011-08-10 | 株式会社東芝 | 半導体記憶装置 |
JP4666080B2 (ja) * | 2009-02-09 | 2011-04-06 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US8285946B2 (en) * | 2009-12-15 | 2012-10-09 | International Business Machines Corporation | Reducing access contention in flash-based memory systems |
US8769190B1 (en) * | 2010-09-15 | 2014-07-01 | Western Digital Technologies, Inc. | System and method for reducing contentions in solid-state memory access |
US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
CN105867840B (zh) * | 2011-09-30 | 2018-10-16 | 株式会社日立制作所 | 闪存组件及非易失性半导体存储器组件 |
US9208070B2 (en) * | 2011-12-20 | 2015-12-08 | Sandisk Technologies Inc. | Wear leveling of multiple memory devices |
JP2013137665A (ja) * | 2011-12-28 | 2013-07-11 | Toshiba Corp | 半導体記憶装置、半導体記憶装置の制御方法、およびメモリコントローラ |
CN104106038A (zh) * | 2012-03-13 | 2014-10-15 | 株式会社日立制作所 | 具有带有非易失性半导体存储器的非易失性半导体存储设备的存储系统 |
US9734911B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
CN103996412A (zh) * | 2013-02-19 | 2014-08-20 | 北京同方微电子有限公司 | 一种用于智能卡非易失性存储器的掉电保护方法 |
US9483397B2 (en) * | 2013-07-16 | 2016-11-01 | Intel Corporation | Erase management in memory systems |
WO2015008358A1 (ja) * | 2013-07-18 | 2015-01-22 | 株式会社日立製作所 | 情報処理装置 |
US9959203B2 (en) * | 2014-06-23 | 2018-05-01 | Google Llc | Managing storage devices |
CN104063186B (zh) * | 2014-06-30 | 2016-04-06 | 成都万维图新信息技术有限公司 | 一种电子设备的数据访问方法 |
KR20160004073A (ko) * | 2014-07-02 | 2016-01-12 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 구동 방법 |
WO2016013076A1 (ja) * | 2014-07-23 | 2016-01-28 | 富士通株式会社 | 情報処理装置、メモリコントローラ、記憶装置の制御プログラム及び記憶装置の制御方法 |
US20160041762A1 (en) | 2014-08-08 | 2016-02-11 | Kabushiki Kaisha Toshiba | Memory system, host device and information processing system |
US9582201B2 (en) * | 2014-09-26 | 2017-02-28 | Western Digital Technologies, Inc. | Multi-tier scheme for logical storage management |
US10073627B2 (en) * | 2015-01-13 | 2018-09-11 | Sandisk Technologies Llc | Addressing, interleave, wear leveling, and initialization schemes for different chip enables and memory arrays of different types |
KR102301772B1 (ko) * | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
JP2015222590A (ja) * | 2015-07-24 | 2015-12-10 | 株式会社東芝 | メモリシステム |
US9606915B2 (en) * | 2015-08-11 | 2017-03-28 | Toshiba Corporation | Pool level garbage collection and wear leveling of solid state devices |
-
2017
- 2017-02-28 JP JP2017036931A patent/JP6765322B2/ja active Active
- 2017-07-07 TW TW106122909A patent/TWI643127B/zh not_active IP Right Cessation
- 2017-07-07 TW TW107129148A patent/TWI767042B/zh active
- 2017-07-07 TW TW111110910A patent/TWI803257B/zh active
- 2017-08-04 CN CN201710659261.8A patent/CN108509145B/zh active Active
- 2017-08-04 CN CN202110148464.7A patent/CN112965656A/zh active Pending
- 2017-09-11 US US15/700,376 patent/US10411024B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057978A1 (en) * | 2008-08-26 | 2010-03-04 | Hitachi, Ltd. | Storage system and data guarantee method |
TW201235843A (en) * | 2011-02-02 | 2012-09-01 | Micron Technology Inc | Control arrangements and methods for accessing block oriented nonvolatile memory |
CN103366809A (zh) * | 2012-04-03 | 2013-10-23 | 三星电子株式会社 | 非易失性存储装置、存储系统及其编程方法 |
US9477295B2 (en) * | 2014-05-15 | 2016-10-25 | Dell Products, L.P. | Non-volatile memory express (NVMe) device power management |
CN105321572A (zh) * | 2014-07-04 | 2016-02-10 | 三星电子株式会社 | 存储设备及其读取方法 |
TW201606778A (zh) * | 2014-08-08 | 2016-02-16 | Toshiba Kk | 記憶體系統、主機裝置、資訊處理系統 |
TW201633141A (zh) * | 2014-12-09 | 2016-09-16 | 英特爾公司 | 基於一儲存裝置的電流消耗設定檔判定在一儲存裝置中對一使用者爲不可取得之備用空間的調整之技術 |
Also Published As
Publication number | Publication date |
---|---|
US10411024B2 (en) | 2019-09-10 |
US20180247948A1 (en) | 2018-08-30 |
CN108509145B (zh) | 2021-02-26 |
JP2018142237A (ja) | 2018-09-13 |
TWI767042B (zh) | 2022-06-11 |
CN112965656A (zh) | 2021-06-15 |
TWI803257B (zh) | 2023-05-21 |
CN108509145A (zh) | 2018-09-07 |
TW201843585A (zh) | 2018-12-16 |
TW201833765A (zh) | 2018-09-16 |
TW202230123A (zh) | 2022-08-01 |
JP6765322B2 (ja) | 2020-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI646429B (zh) | Memory system and control method | |
TWI643127B (zh) | Memory system and control method | |
TWI640016B (zh) | Memory system and control method | |
EP4064022A1 (en) | Cooperative storage architecture | |
US10372378B1 (en) | Replacement data buffer pointers | |
JP7342163B2 (ja) | メモリシステム | |
JP7132291B2 (ja) | メモリシステムおよび制御方法 | |
JP7167295B2 (ja) | メモリシステムおよび制御方法 | |
JP2022179798A (ja) | メモリシステムおよび制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |