TWI765725B - 控制器 - Google Patents

控制器 Download PDF

Info

Publication number
TWI765725B
TWI765725B TW110119528A TW110119528A TWI765725B TW I765725 B TWI765725 B TW I765725B TW 110119528 A TW110119528 A TW 110119528A TW 110119528 A TW110119528 A TW 110119528A TW I765725 B TWI765725 B TW I765725B
Authority
TW
Taiwan
Prior art keywords
block
nvm
data
group
nvm group
Prior art date
Application number
TW110119528A
Other languages
English (en)
Other versions
TW202137204A (zh
Inventor
菅野伸一
Original Assignee
日商鎧俠股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日商鎧俠股份有限公司 filed Critical 日商鎧俠股份有限公司
Publication of TW202137204A publication Critical patent/TW202137204A/zh
Application granted granted Critical
Publication of TWI765725B publication Critical patent/TWI765725B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/30Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
    • H10B41/35Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region with a cell select transistor, e.g. NAND
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B99/00Subject matter not provided for in other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups

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)
  • Read Only Memory (AREA)

Abstract

本發明之實施型態係提供無晶片競爭而可以存取非揮發性記憶體的記憶體系統及控制方法。
實施型態之記憶體系統係以被連接於複數通道之複數非揮發性記憶體晶片分別僅屬於一個晶片群組之方式,將上述複數非揮發性記憶體晶片分類成複數晶片群組。記憶體系統係因應指定與各晶片群組對應之包含至少一個區域的複數區域中之任一個的來自上述主機之I/O指令,實行對上述複數晶片群組內之一個晶片群組的資料寫入/讀出動作。上述記憶體系統係藉由與上述複數晶片群組對應之複數閒置區塊池(free block pool),在每個晶片群組個別地管理閒置區塊群。

Description

控制器
本發明之實施型態係關於控制器。
近年來,具備非揮發性記憶體之記憶體系統廣泛普及。
作為如此之記憶體系統之一個,所知的有NAND快閃記憶體技術基礎的固態硬碟機(SSD)。SSD藉由其低電力消耗、高性能這樣的特徵,當作各種各樣電腦之存儲器被使用。
通常,在SSD中,因其大容量化,搭載有多數之非揮發性記憶體晶片。各個非揮發性記憶體晶片可以獨立動作。因此,各非揮發性記憶體能當作並列處理之單位而發揮功能。
但是,通常相對於一個非揮發性記憶體晶片之動作不被並列實行,而係逐次被實行。因此,若發生對實行寫入動作之非揮發性記憶體晶片要求讀取時(晶片競爭(contention)),有其讀取要求之響應時間(讀取延遲)變得非常長之情形。
因此,需要實現主機無晶片競爭而能夠存取SSD用之 新功能。
本發明之實施型態係提供無晶片競爭而可以存取非揮發性記憶體的控制器。
若藉由實施型態時,為一種控制器,其係能夠經複數通道而連接於各者包含複數區域的複數非揮發性記憶體晶片,該控制器被構成以上述複數非揮發性記憶體晶片之各者僅屬於一個晶片群組之方式,將上述複數非揮發性記憶體晶片分類成第1晶片群組,和第2晶片群組,在從主機接收到指定與上述第1晶片群組對應之第1區域的第1寫入指令之情況,將應被寫入於上述第1區域之第1資料,寫入至從上述第1晶片群組被選擇出之第1寫入目標區塊,在從上述主機接收到指定與上述第2晶片群組對應之第2區域的第2寫入指令之情況,將應被寫入於上述第2區域之第2資料,寫入至從上述第2晶片群組被選擇出之第2寫入目標區塊。
2:主機
3:SSD
4:控制器
5:NAND型快閃記憶體
21:NVM組控制部
22:GC動作控制部
23:NVM組間複製控制部
24:新NVM組作成控制部
25:NVM交換控制部
26:NVM組結合部
60、61、62:NVM組
80、81、82:閒置區塊池
90、91、92、93、94、95:NVM子集
圖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組使用之一個以上之快閃記憶體封裝體之關係圖。
圖11為表示藉由同實施型態之記憶體系統被實行的對某NVM子集的垃圾回收動作之一部分的圖示。
圖12為表示藉由同實施型態之記憶體系統被實行的對某NVM子集的垃圾回收動作之剩餘的一部分的圖示。
圖13為表示藉由同實施型態之記憶體系統被實行的對某NVM子集的垃圾回收動作之剩餘的其他部分的圖示。
圖14為表示藉由同實施型態之記憶體系統被實行之NVM組間複製動作的圖示。
圖15為表示圖14之NVM組間複製動作之前之位址轉換表之內容和NVM組間複製動作之後的位址轉換表之內容的關係圖。
圖16為表示藉由同實施型態之記憶體系統被實行之NVM組間複製動作之一部分的圖示。
圖17為表示藉由同實施型態之記憶體系統被實行之NVM組間複製動作之剩餘的一部分的圖示。
圖18為表示藉由同實施型態之記憶體系統被實行之NVM組間複製動作之剩餘的其他部分的圖示。
圖19為用以說明藉由同實施型態之記憶體系統被實行之NVM組交換動作之概要的圖示。
圖20為用以說明NVM組交換動作之前,兩個NVM組被實行之主機寫入/垃圾回收動作之圖示。
圖21為用以說明為了NVM組交換動作,在兩個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型快閃記憶體晶片」。
在圖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係以NAND型快閃記憶體晶片分別僅屬於一個晶片群組之方式,將K×N個的NAND型快閃記憶體晶片600~646分類成複數晶片群組。在以下中,將該晶片群組稱為「非揮發性記憶體子集(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實行資料寫入動作中,就算朝向與NVM組61對應之區域的讀出指令從主機2被接收到,控制器4不用等待該資料寫入動作完成,可以即時實行與該讀出指令對應之資料讀出動作。
在圖1所示之SSD3中,控制器4亦可以當作被構成實行NAND型快閃記憶體5之資料管理和NAND型快閃記憶體5之區塊管理之快閃記憶體轉換層(FTL,Flash Translation Layer)而發揮功能。
藉由該FTL被實行之資料管理,包含表示(1)各邏輯位址與NAND型快閃記憶體5之各物理位址之間的對應關係的映射資訊之管理,(2)用以隱蔽頁面單位之讀出/寫入和區塊單位之消去動作的處理等。邏輯位址係為了對SSD3進行位址指定,藉由主機2被使用之位址。作為該邏輯位址,通常使用邏輯區塊位址(LBA)。
各邏輯區塊位址(LBA)和各物理位址之間的映射管理係使用作為位址轉換表(邏輯物理位址轉換表)發揮功能之查找表(LUT,Look Up Table)而執行。與某LBA對應之物理位址表示該LBA之資料被寫入之NAND型快閃記憶體5內 之物理記憶位置。查找表(LUT)即使於SSD3之電源接通時,從NAND型快閃記憶體5被載入至DRAM6亦可。一般而言,各查找表之尺寸比較大。因此,即使各查找表之至少一部分當作位址轉換快閃記憶體表快取而被存儲在DRAM6亦可。
在NAND型快閃記憶體5中,每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,決定資料應被讀出的存取對象之區域(命名空間)。
區塊管理包含故障區塊之管理、耗損均衡及垃圾回收等。
耗損均衡是用以使區塊各自的耗損平均化之動作。
垃圾回收係用以增加能夠寫入資料之閒置區塊之個數的動作。在垃圾回收動作中,控制器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之電源接通而從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分別僅屬於一個NVM組之方式,將K×N個之NAND型快閃記體體晶片600~646分類成複數NVM組。而且,NVM組控制部21係因應指定與各NVM組對應之包含至少一個區域的複數區域中之任一個的來自主機2之I/O指令,實行對複數NVM組內之一個NVM組的資料寫入/讀出動作。例如,在複數NVM組具有第一NVM組和第二NVM組之情況,NVM組控制部21因應指定與第1NVM組對應之至少一個區域的來自主機2之第一I/O指令,實行對第一NVM組之資料寫入/讀出動作,因應指定與第二NVM組對應之至少一個區域的來自主機2之第二I/O指令,實行對第 二NVM組之資料寫入/讀出動作。
再者,NVM組控制部21係藉由分別與複數NVM組對應之複數閒置區塊池,而在每個NVM組個別管理NAND型快閃記憶體5(多數NAND型快閃記憶體晶片)5內之閒置區塊群。閒置區塊意味著不保持有效資料之區塊。例如,屬於第一NVM組之閒置區塊分別藉由與第一NVM組對應之第1閒置區塊池被管理,屬於第二NVM組之閒置區塊分別藉由與第二NVM組對應之第二閒置區塊池而被管理。在使SSD3初期化之動作時,NVM組控制部21係將屬於第一NVM組之所有區塊配置在第一閒置區塊池,將屬於第二NVM組之所有區塊配置在第二閒置區塊池。
NVM組控制部21對複數NVM組,分別實行分配所對應之閒置區塊池內之閒置區塊之一個,作為應寫入使用者資料(來自主機2之寫入資料,或為了垃圾回收應被複製之資料)的區塊之動作,和將該使用者資料寫入至被分配的區塊之動作,和藉由資料區塊池(也稱為有效區塊池)管理被塞滿該使用者資料的區塊之動作,和使藉由資料區塊池被管理且不保持有效資料之區塊,返回至對應之閒置區塊池之動作。
依此,因可以僅藉由與該NVM組對應之一個以上之區域,使用被配置在與某NVM組對應之閒置區塊池之區塊群,故能夠保證不會在複數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組對應之一個以上之區域,使用藉由某分離的NVM組之GC而被作成之閒置區塊,故能夠保證不會在複數NVM組間引起晶片競爭。
共有NVM組之垃圾回收,即是屬於共有NVM組之複數資料區塊池內之一個資料區塊池內之區塊群之垃圾回收中,GC動作控制部22實行(1)分配與共有NVM組對應之閒置區塊池內之閒置區塊之一個作為複製目標區塊,(2)從被包含在一個資料區塊池且混合有效資料和無效資料之一個以上的區塊,僅將有效資料複製於複製目標區塊,(3)使藉由對複製目標區塊複製有效資料而僅成為無效資料之一個以上之區塊,返回至與共有NVM組對應之閒置區塊池的動作。依此,因可以僅藉由與該共有NVM組對應之一個以上之區域,使用藉由某共有NVM組之GC而被作成之閒置區塊,故能夠保證不會在複數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)重複(1)~(4)之動作,直至在複製源NVM組保持有效資料之區塊不存在。依此,能夠將複製源NVM組內之資料(具有高的更新頻率之資料)移動至具有少的編程/消去循環之數量的複製目標NVM組。其結果,消耗度低的複數目標NVM組,僅被利用於具有高的更新頻率之資料的寫入。依此,能夠使複製源NVM組之編程/消去循環之數量到達至限制值之時序延遲。
新NVM組作成控制部24從其他NVM組作成新的NVM組。例如,新NVM組作成控制部24可以作成某NVM組內之一部的NAND型快閃記憶體晶片集合作為新的NVM組。依此,可以將一個NVM組分割成兩個NVM組。
NVM組交換控制部25為了使NVM組之各個的消耗度(編程/消去循環之數量)均勻,實行NVM組交換動作。該NVM組交換動作可以用於例如在具有高消耗度之分離的NVM組和具有低消耗度之分離的NVM組之間,交換資料。依此,可以使該些NVM組之消耗度均勻。主機2可以將包含指定應交換被儲存之資料的兩個NVM組(第一NVM組、第二NVM組)之參數的NVM組交換指令,送出至 SSD3。
NVM組交換控制部25實行僅將第一NVM組內之有效資料複製於第二NVM組之動作,和僅將第二NVM組內之有效資料複製於第一NVM組之動作。
在僅將第一NVM組內之有效資料複製於第二NVM組之動作中,NVM組交換控制部25進行(1)從屬於第一NVM組之區塊選擇保持有效資料之區塊作為複製源區塊,(2)僅將複製源區塊內之有效資料,複製於從與第二NVM組對應之閒置區塊池被分配的複製目標區塊,(3)更新管理各邏輯位址和第一NVM組之各物理位址之間的映射之查找表,而在與被複製之有效資料對應之邏輯位址,射映表示有效資料被複製之複製目標區塊內之物理記憶位置的物理位址,(4)在有效資料從複製源區塊消失之情況,將複製源區塊,返回至與第一NVM組對應之閒置區塊池,(5)重複(6)~(9)之動作,直至在第一NVM組保持有效資料之區塊不存在。
在僅將第二NVM組內之有效資料複製於第一NVM組之動作中,NVM組交換控制部25進行(1)從屬於第二NVM組之區塊選擇保持有效資料之區塊作為複製源區塊,(2)僅將複製源區塊內之有效資料,複製於從與第一NVM組對應之閒置區塊池分配的複製目標區塊,(3)更新管理各個邏輯位址和第二NVM組之各個物理位址之間的映射之查找表,而在與被複製之有效資料對應之邏輯位址,射映表示有效資料被複製之複製目標區塊內之物理記憶位置的物理 位址,(4)在有效資料從複製源區塊消失之情況,將複製源區塊,返回至與第二NVM組對應之閒置區塊池,(5)重複(1)~(4)之動作,直至在第二NVM組保持有效資料之區塊不存在。
依此,能夠使該些兩個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組60對應之閒置區塊池80,配置屬於NVM組60之所有區塊,即是NAND型快閃記憶體晶片600、610、620、...640內之所有的區塊。
屬於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當作兩個命名空間100、101用之物理記憶空間被利用之情形。
NVM組61包含被連接於通道Ch0之NAND型快閃記憶體晶片601、被連接於通道Ch1之NAND型快閃記憶體晶片611、被連接於通道Ch2之NAND型快閃記憶體晶片621、...被連接於通道ChN之NAND型快閃記憶體晶片641。屬於MVM組61且不保持有效資料之區塊(閒置區塊)分別藉由與NVM組61對應之閒置區塊池81被管理。在使SSD3初期化之處理中,控制器4係在與NVM組61對應之閒 置區塊池81,配置屬於NVM組61之所有區塊,即是NAND型快閃記憶體晶片601、611、621、...641內之所有的區塊。
屬於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對應之閒置區塊池82,配置屬於NVM組62之所 有區塊,即是NAND型快閃記憶體晶片602~646內之所有的區塊。
屬於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使用兩個NVM子集92、93之情況。例如,與命名空間103對應之LBA範圍被分割成兩個次LBA範圍。與一方之次LBA範圍對應之寫入資料(例如,更新頻率低之冷資料(Cold Data)即使經由寫入緩衝器(WB)32被寫入至NVM子集92用之輸入區塊(寫入 目標區塊)亦可。與另一方之次LBA範圍對應之寫入資料(例如,更新頻率高之熱資料(後設資料)即使經由寫入緩衝器(WB)33被寫入至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之壽命的主要原因。
在本實施型態中,可以在一台之SSD3內共存共有NVM組和分離的NVM組。因此,能夠例如因應工作負擔,能夠區分使用共有NVM組和分離的NVM組。
再者,在圖3之情況中,對各命名空間提供以下之環境。
<NVM組60>
命名空間100、101共有一個NVM子集90。雖然不產生命名空間100、101和其他命名空間之間的晶片競爭,但是有可能產生命名空間100、101間之GC競爭。
<NVM組61>
命名空間102專有一個NVM子集91。不產生命名空間102和其他命名空間之間的晶片競爭、GC競爭。
<NVM組62>
命名空間103專有兩個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用之主機寫入/垃圾回收動作。
(1)使用者輸入區塊之分配
首先,分配閒置區塊池80內之一個閒置區塊作為使用者輸入區塊210。使用者輸入區塊210係用以寫入來自主機2之寫入資料的區塊,也稱為寫入目標區塊。另外,若使用者輸入區塊210已被分配時,該動作不被實行。
(2)主機寫入
來自主機2之寫入資料從寫入緩衝器30被寫入至使用者輸入區塊210。在寫入緩衝器30暫時性地被儲存與命名空間100或命名空間101建立關聯的寫入資料。而且,與NVM組60對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊210內之物理記憶位置的物理位址。
(3)使用者輸入區塊之移動
當使用者輸入區塊210被塞滿寫入資料時,其使用者輸入區塊210被移動至NVM子集(資料區塊池)90。即是,被資料塞滿的使用者輸入區塊210藉由NVM子集(資料區塊池)90被管理。
(4)GC輸入區塊之分配
在NVM組60中,需要實行垃圾回收之情況,與其他之NVM組獨立,實行NVM子集90內之區塊群用之垃圾回收動作。例如,NVM子集90所包含之區塊數量較與NVM子集90對應之某臨界值X1多之情況,即使判斷成需要垃圾回收動作亦可。臨界值X1即使根據能分配成NVM子集90用之區塊的總數量而決定亦可。例如,從能分配成NVM子集90用之區塊的總數量,減去特定數的餘值,作為與NVM子集90對應之臨界值X1被利用亦可。
在NVM組60需要垃圾回收動作之情況,分配閒置區塊池80內之一個閒置區塊作為GC輸入區塊200。GC輸入區塊210係在垃圾回收中成為有效資料之複製目標的區塊,也稱為複製目標區塊。
(5)有效資料之複製
從NVM子集90內之區塊中選擇混合有效資料和無效資料之一個以上的區塊作為複製源區塊。僅其被選擇的區塊之有效資料被複製於GC輸入區塊200。而且,與NVM組60對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊200內之物理記憶位置的物理位址。
(6)GC輸入區塊之移動
當GC輸入區塊200被塞滿有效資料時,GC輸入區塊200被移動至NVM子集90。即是,被塞滿有效資料之GC輸入區塊200藉由NVM子集(資料區塊池)90被管理。
(7)區塊之返回
藉由NVM子集90被管理且不保持有效資料之區塊,從NVM子集90被返回至閒置區塊池80。不保持有效資料之區塊係藉由主機寫入,其所有資料被無效化之區塊,或是藉由垃圾回收動作,其所有有效資料被複製至複製目標區塊的區塊。
圖4之左下部表示NVM組61用之主機寫入/垃圾回收動作。
(1)使用者輸入區塊之分配
分配閒置區塊池81內之一個閒置區塊作為使用者輸入區塊211。
(2)主機寫入
來自主機2之寫入資料從寫入緩衝器31被寫入至使用者輸入區塊211。在寫入緩衝器31暫時性地被儲存與命名空間102建立關聯的寫入資料。而且,與NVM組61對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊211內之物理記憶位置的物理位址。
(3)使用者輸入區塊之移動
當使用者輸入區塊211被寫入資料塞滿時,其使用者輸入區塊211被移動至NVM子集(資料區塊池)91。即是,被資料塞滿之使用者輸入區塊211藉由NVM子集(資料區塊池)91被管理。
(4)GC輸入區塊之分配
在NVM組61中,需要實行垃圾回收之情況,與其他之NVM組獨立,實行NVM子集91內之區塊群用之垃圾回收 動作。例如,NVM子集91所包含之區塊數量較與NVM子集91對應之某臨界值X1多之情況,即使判斷成需要垃圾回收動作亦可。臨界值X1即使根據能分配成NVM子集91用之區塊的總數量而決定亦可。例如,從能分配成NVM子集91用之區塊的總數量,減去特定數的餘值,作為與NVM子集91對應之臨界值X1被利用亦可。
在NVM組61需要垃圾回收動作之情況,分配閒置區塊池81內之一個閒置區塊作為GC輸入區塊201。
(5)有效資料之複製
從NVM子集91內之區塊中選擇混合有效資料和無效資料之一個以上的區塊作為複製源區塊。僅其被選擇的區塊之有效資料被複製於GC輸入區塊201。而且,與NVM組61對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊201內之物理記憶位置的物理位址。
(6)GC輸入區塊之移動
當GC輸入區塊201被有效資料塞滿時,GC輸入區塊201被移動至NVM子集91。即是,被有效資料塞滿之GC輸入區塊201藉由NVM子集(資料區塊池)91被管理。
(7)區塊之返回
藉由NVM子集91被管理並且不保持有效資料之區塊, 從NVM子集91被返回至閒置區塊池81。不保持有效資料之區塊係藉由主機寫入,其所有資料被無效化之區塊,或是藉由垃圾回收動作,其所有有效資料被複製至複製目標區塊的區塊。
圖5表示用以為了共有NVM組62而被實行之主機寫入/垃圾回收動作。在此,假設共有NVM組62僅包含兩個NVM子集94、95之情形。
NVM子集94用之主機寫入/垃圾回收動作如下述般被實行。
(1)使用者輸入區塊之分配
分配閒置區塊池82內之一個閒置區塊作為使用者輸入區塊214。
(2)主機寫入
來自主機2之寫入資料從寫入緩衝器34被寫入至使用者輸入區塊214。在寫入緩衝器34暫時性地被儲存與命名空間104或105建立關聯的寫入資料。而且,與NVM子集94對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊214內之物理記憶位置的物理位址。
(3)使用者輸入區塊之移動
當使用者輸入區塊214被寫入資料塞滿時,其使用者 輸入區塊214被移動至NVM子集(資料區塊池)94。即是,被資料塞滿之使用者輸入區塊214藉由NVM子集(資料區塊池)94被管理。
(4)GC輸入區塊之分配
在NVM子集(資料區塊池)94中,需要實行垃圾回收之情況,其他NVM組及NVM組62內之其他NVM子集獨立,實行NVM子集94內之區塊群用之垃圾回收動作。例如,NVM子集94所包含之區塊數較與NVM子集94對應之某臨界值X1多之情況,即使判斷成需要垃圾回收動作亦可。臨界值X1即使根據能分配成NVM子集94用之區塊的總數量而決定亦可。例如,從能分配成NVM子集94用之區塊之總數量,減去特定數的餘值,作為與NVM子集94對應之臨界值X1被利用亦可。
在NVM子集94需要垃圾回收動作之情況,分配閒置區塊池82內之一個閒置區塊作為GC輸入區塊204。
(5)有效資料之複製
從NVM子集94內之區塊中選擇混合有效資料和無效資料之一個以上的區塊作為複製源區塊。僅其被選擇的區塊之有效資料被複製於GC輸入區塊204。而且,與NVM子集94對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊204內之物理記憶位置的物理位址。
(6)GC輸入區塊之移動
當GC輸入區塊204被有效資料塞滿時,GC輸入區塊204被移動至NVM子集94。即是,被有效資料塞滿之GC輸入區塊204藉由NVM子集(資料區塊池)94被管理。
(7)區塊之返回
藉由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、介面晶片(也稱為介面芯片)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型快閃記憶體晶片內之半導體基板的電極。鄰接之兩個NAND型快閃記憶體晶片之貫通電極V之間,藉由焊錫凸塊919被連接。在此情況,在各NAND型快閃記憶體晶片之表面,即使貫通電極V經被設置在其半導體基板之上方的配線層,被連接於焊錫凸塊919亦可。再者,鄰接的兩個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組使用之一個以上之快閃記憶體封裝體之關係。
在圖10中,例示NAND型快閃記憶體5內之多數NAND型快閃記憶體晶片被分類成兩個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型快閃記體體晶片之情況,但是共有NVM組所包含之複數之NAND型快閃記憶體晶片也可以藉由使用多數垂直通孔(TSV)之記憶體封裝體實現。
再者,在使用多數垂直通孔(TSV)之單一的記憶體封裝體支持2以上之通道之情況,即使藉由單一之記憶體封裝體,實現與2以上之通道對應之2以上之NVM組所包含之複數NAND型快閃記憶體晶片亦可。
接著,參照圖11~圖13,針對相對於在圖2、3中說明的NVM組60的垃圾回收動作具體性說明。
在圖11~圖13中,為了使圖示簡單化,假設NVM組60包含兩個NAND型快閃記憶體晶片1~2,各晶片具有包含頁面P1~P4之兩個區塊之情況。
如圖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)時,區塊#21被有效資料塞滿。在此情況,區塊#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組間複製動作以下述之順序實行。
(1)使用者輸入區塊之分配
在複製目標NVM組(NVM組61)中,分配閒置區塊池81內之一個閒置區塊作為使用者輸入區塊211。
(2)主機寫入
來自主機2之寫入資料從寫入緩衝器31被寫入至使用者輸入區塊211。通常,雖然在寫入緩衝器31,儲存與對應於複製目標NVM組之命名空間102建立關聯的寫入資料,但是NVM組間複製動作開始之後,與對應於複製源NVM組之命名空間100或101建立關聯的寫入資料被儲存於寫入緩衝器31。而且,與NVM子集90對應之查找表被更 新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊211內之物理記憶位置的物理位址。
如此一來,在NVM組間複製動作之前,與命名空間101或命名空間100建立關聯之寫入資料之寫入目標為複製源NVM組(NVM組60)之使用者輸入區塊210,在NVM組間複製動作後,與命名空間101或命名空間100建立關聯之寫入資料之寫入目標,成為複製目標NVM組(NVM組61)之使用者輸入區塊211。
(3)使用者輸入區塊之移動
當使用者輸入區塊211被寫入資料塞滿時,其使用者輸入區塊211被移動至NVM子集(資料區塊池)91。即是,被資料塞滿之使用者輸入區塊211藉由NVM子集(資料區塊池)91被管理。
(4)GC輸入區塊之分配
在複製目標NVM組(NVM組61)中,分配閒置區塊池81內之一個閒置區塊作為GC輸入區塊201。
(5)從複製源NVM組朝複製目標NVM組複製有效資料
從複製源NVM組(NVM組60)之NVM子集90內之區塊,選擇保持有效資料之區塊作為複製源區塊。而且,僅該複製源區塊內之有效資料,被複製至複製目標NVM組(NVM 組61)之GC輸入區塊(複製目標區塊)201。在此情況,首先,從該複製源區塊選擇複製對象之有效資料。而且,該被選擇之有效資料從該複製源區塊被讀出,然後被寫入至GC輸入區塊(複製目標區塊)201。
當有效資料被複製至GC輸入區塊201時,與NVM子集90對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊201內之物理記憶位置的物理位址。
(6)GC輸入區塊之移動
在複製目標NVM組(NVM組61)中,當GC輸入區塊201被塞滿來自複製源NVM組(NVM組60)之區塊的有效資料時,GC輸入區塊201被移動至NVM組91。即是,被有效資料塞滿之GC輸入區塊201藉由NVM子集(資料區塊池)91被管理。
(7)區塊之返回
在複製目標NVM組(NVM組61)中,藉由NVM子集91被管理並且不保持有效資料之區塊,從NVM子集91被返回至閒置區塊池81。例如,當被保持於NVM子集91內之某區塊的所有資料,藉由朝使用者輸入區塊211寫入新的寫入資料而被無效化時,該區塊從NVM子集91被返回至閒置區塊池81。
(7)’複製源區塊之返回
在複製源NVM組(NVM組60)中,藉由複製源區塊之有效資料被複製於GC輸入區塊201,而在該複製源區塊不存在有效資料之情況,該複製源區塊從NVM子集90被返回至閒置區塊池80。
藉由該NVM組間複製動作,例如可以將儲存於複製源NVM組之資料(熱資料)用之物理記憶空間,變更成具有較少重寫次數(較少編程/擦除循環之數量)的複製目標NVM組。依此,可以實行使NVM組間之消耗度均勻化之晶圓耗損均衡。
另外,有作為複製對象被選擇之有效資料實際上被複製於GC輸入區塊201之前,具有與該有效資料之LBAx相同的LBAx之寫入資料(在此,為與該LBAx對應之新資料)被寫入至使用者輸入區塊211之情形。當寫入資料(與該LBAx對應之新資料)被寫入至使用者輸入區塊211時,與NVM子集90對應之查找表被更新,依此,在與該寫入資料對應之LBAx被映射表示寫入該寫入資料之使用者輸入區塊211內之物理記憶位置的物理位址。
此情況,藉由被選擇之有效資料已經成為藉由主機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之情況,LUT40之LBA10被映射表示複製資料d10之複製目標NVM組(NVM組61)內之物理記憶位置的物理位址。依此,當NVM組間複製動作完成時,LUT40成為僅保持NVM組61之物理位址。
如此一來,藉由使用與GC相同之機制而實行NVM組間複製動作,控制器4不進行用以作成與被複製至複製目標NVM組(NVM組61)之資料對應的位址轉換資訊之特別的處理,可以藉由參照LUT40從複製目標NVM組(NVM組61)讀出從主機2被要求的資料。
接著,參照圖16~圖18,針對NVM組間複製動作具體性說明。
在圖16~圖18中,為了使圖示簡單化,假設NVM組60包含NAND型快閃記憶體晶片1~2,NVM組61包含NAND型快閃記憶體晶片3~4,各晶片具有分別包含頁面P1~P4之兩個區塊之情況。再者,假設從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表示在兩個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組#(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)對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之NVM組# 2(NVM組61)內之物理記憶位置的物理位址。
再者,儲存於NVM組# 2(NVM組61)之有效資料被複製於NVM組# 1(NVM組60)。而且,與NVM組# 2(NVM組61)對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之NVM組# 1(NVM組60)內之物理記憶位置的物理位址。
當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組交換動作之前,兩個NVM組被實行之主機寫入/垃圾回收動作。
在NVM組交換動作之實行前,在NVM組# 1(NVM組60),和NVM組# 2(NVM組61)中,主機寫入/垃圾回收動作互相獨立實行。詳細而言,如圖4中說明般。
圖21表示為了NVM組交換動作,在兩個NVM組間被實行之主機寫入/垃圾回收動作。
(1)使用者輸入區塊之分配
在NVM組# 1中,分配閒置區塊池80內之一個區塊作為使用者輸入區塊210。再者,在NVM組# 2中,分配閒置區塊池81內之一個區塊作為使用者輸入區塊211。
(2)主機寫入
來自主機2之寫入資料從寫入緩衝器30被寫入至使用者輸入區塊210。通常,雖然在寫入緩衝器30,儲存與對應於NVM組# 1(NVM組60)之命名空間100或命名空間101建立關聯的寫入資料,但是NVM組交換動作開始之後,與對應於NVM組# 2(NVM組61)之命名空間102建立關聯的寫入資料被儲存於寫入緩衝器30。而且,與NVM組# 2(NVM組61)對應之查找表被更新,依此與寫入資料對應之邏輯 位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊210內之物理記憶位置的物理位址。
如此一來,在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)對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊211內之物理記憶位置的物理位址。
如此一來,在NVM組交換動作之前,與命名空間101或命名空間100建立關聯之寫入資料之寫入目標雖然為NVM組# 1(NVM組60)之使用者輸入區塊210,但是當開始NVM組交換動作,與命名空間101或命名空間100建立關聯之寫入資料之寫入目標,被變更成NVM組# 2(NVM組61)之使用者輸入區塊211。
(3)使用者輸入區塊之移動
當使用者輸入區塊210被寫入資料塞滿時,其使用者輸入區塊210被移動至NVM子集(資料區塊池)90。即是,被資料塞滿的使用者輸入區塊210藉由NVM子集(資料區塊池)90被管理。
再者,使用者輸入區塊211被寫入資料塞滿時,其使用者輸入區塊211被移動至NVM子集(資料區塊池)91。即是,被資料塞滿之使用者輸入區塊211藉由NVM子集(資料區塊池)91被管理。
(4)GC輸入區塊之分配
在NVM組# 1(NVM組60)中,分配閒置區塊池80內之一個閒置區塊作為GC輸入區塊200。
再者,在NVM組(NVM組61)中,分配閒置區塊池81內之一個閒置區塊作為GC輸入區塊201。
(5)有效資料之交換
從複製源NVM組(NVM組60)之NVM子集90內之區塊,選擇保持有效資料之區塊作為複製源區塊。而且,僅該複製源區塊內之有效資料,被複製至NVM組# 2(NVM組61)之GC輸入區塊201。而且,與NVM子集90對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊201內之物理記憶位置的物理位址。
從NVM組# 2(NVM組61)之NVM子集91內之區塊,選 擇保持有效資料之區塊作為複製源區塊。而且,僅該複製源區塊內之有效資料,被複製至NVM組# 1(NVM組60)之GC輸入區塊200。而且,與NVM子集91對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊200內之物理記憶位置的物理位址。
(6)GC輸入區塊之移動
在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被管理。
(7)複製源區塊之返回
在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之例中,決定NAND型快閃記憶體晶片600、610、620、...640,作為NVM組161用之NAND型快閃記憶體晶片。該些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組而被實行之主機寫入/垃圾回收動作。在此,假設從包含兩個NVM子集之原來的NVM組160作成新的NVM組161之情況。
(1)使用者輸入區塊之分配
分配與原來的NVM組160對應之閒置區塊池180內之一個閒置區塊,作為與NVM子集190B對應之使用者輸入區塊410。再者,分配閒置區塊池180內之一個閒置區塊,作為與NVM子集190C對應之使用者輸入區塊411。另外,若使用者輸入區塊410、411已被分配時,該動作不被實行。
(2)主機寫入
來自主機2之寫入資料從寫入緩衝器130B被寫入至使用者輸入區塊410。而且,與NVM子集190B對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊410內之物理記憶位置的物理位址。
再者,來自主機2之寫入資料從寫入緩衝器130C被寫入至使用者輸入區塊411。而且,與NVM子集190C對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊411內之物理記憶位置的物理位址。
(3)使用者輸入區塊之移動
當使用者輸入區塊410被寫入資料塞滿時,其使用者輸入區塊410被移動至NVM子集(資料區塊池)190B。即是,被資料塞滿之使用者輸入區塊410藉由NVM子集(資料區塊池)190B被管理。
再者,使用者輸入區塊411被寫入資料塞滿時,其使用者輸入區塊411被移動至NVM子集(資料區塊池)190C。即是,被資料塞滿之使用者輸入區塊411藉由NVM子集(資料區塊池)190C被管理。
(4)GC輸入區塊之分配
在原來的NVM組(NVM組160),從閒置區塊池180內之閒置區塊,分配一個區塊,作為與NVM子集190B對應之GC輸入區塊400。再者,從閒置區塊池180內之閒置區塊,分配一個區塊,作為與NVM子集190C對應之GC輸入區塊401。
(5)有效資料之複製
從NVM子集190B(或是NVM子集190C)內之區塊,選擇有效資料和無效資料混合之一個以上之區塊,作為複製源區塊,僅複製源區塊內之有效資料被複製於GC輸入區塊400(或GC輸入區塊401)。而且,與NVM子集190B(或NVM子集190C)對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊400(或GC輸入區塊401)內之物理記憶位置的物理位址。
(6)GC輸入區塊之移動
GC輸入區塊400(或是GC輸入區塊401)被有效資料塞滿時,GC輸入區塊400(或GC輸入區塊401)被移動至NVM子集190B(或NVM子集190C)。即是,被有效資料塞滿之GC輸入區塊藉由對應之NVM子集(資料區塊池)被管理。
(7)、(7)’區塊之返回
藉由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之兩個區塊之情況。
首先,從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中,互相獨立實行寫入資料之寫入動作及垃圾回收動作。
(1)使用者輸入區塊之分配
分配閒置區塊池183內之一個閒置區塊作為使用者輸入區塊413。再者,分配閒置區塊池184內之一個閒置區塊作為使用者輸入區塊414。並且,分配閒置區塊池185內之一個閒置區塊作為使用者輸入區塊415。另外,若使用者輸入區塊413、414、415已被分配時,該動作不被實行。
(2)主機寫入
在NVM組# 1(NVM組163)中,來自主機2之寫入資料從寫入緩衝器130A被寫入至使用者輸入區塊413。在寫入緩衝器130A暫時性地被儲存與NVM子集190A建立關聯的寫入資料。而且,與NVM組163對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該 寫入資料之使用者輸入區塊413內之物理記憶位置的物理位址。
再者,在NVM組# 2(NVM組164)中,來自主機2之寫入資料從寫入緩衝器130B被寫入至使用者輸入區塊414。在寫入緩衝器130B暫時性地被儲存與NVM子集190B建立關聯的寫入資料。而且,與NVM組164對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊414內之物理記憶位置的物理位址。
並且,在NVM組# 3(NVM組165)中,來自主機2之寫入資料從寫入緩衝器130C被寫入至使用者輸入區塊415。在寫入緩衝器130C暫時性地被儲存與NVM子集190C建立關聯的寫入資料。而且,與NVM組165對應之查找表被更新,依此與寫入資料對應之邏輯位址(LBA),被映射表示寫入該寫入資料之使用者輸入區塊415內之物理記憶位置的物理位址。
(3)使用者輸入區塊之移動
在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)。
(3)’使用者輸入區塊朝結合目標NVM組的移動
當NVM組# 1內之使用者輸入區塊413被寫入資料塞滿時,其使用者輸入區塊413被移動至NVM組# 3之NVM子集190C。即是,被資料塞滿之使用者輸入區塊413藉由NVM子集(資料區塊池)190C被管理。
再者,當NVM組# 2內之使用者輸入區塊414被寫入資料塞滿時,其使用者輸入區塊414被移動至NVM組# 3之NVM子集190C。即是,被資料塞滿之使用者輸入區塊414藉由NVM子集(資料區塊池)190C被管理。
(4)GC輸入區塊之分配
在NVM子集(資料區塊池)190A中,需要實行垃圾回收之情況,與其他之NVM組獨立,實行NVM子集190A內之區塊群用之垃圾回收動作。例如,NVM子集190A所包含之區塊數量較與NVM子集190A對應之某臨界值X1多之情況,即使判斷成需要垃圾回收動作亦可。臨界值X1即使根據能分配成NVM子集190A用之區塊的總數量而決定亦可。例如,從能分配成NVM子集190A用之區塊的總數 量,減去特定數的餘值,作為與NVM子集190A對應之臨界值X1被利用亦可。
在NVM子集190A需要垃圾回收動作之情況,分配閒置區塊池183內之一個閒置區塊作為GC輸入區塊403。
再者,在NVM子集(資料區塊池)190B中,需要實行垃圾回收之情況,與其他之NVM組獨立,實行NVM子集190B內之區塊群用之垃圾回收動作。例如,NVM子集190B所包含之區塊數量較與NVM子集190B對應之某臨界值X1多之情況,即使判斷成需要垃圾回收動作亦可。臨界值X1即使根據能分配成NVM子集190B用之區塊的總數量而決定亦可。例如,從能分配成NVM子集190B用之區塊的總數量,減去特定數的餘值,作為與NVM子集190B對應之臨界值X1被利用亦可。
在NVM子集190B需要垃圾回收動作之情況,分配閒置區塊池184內之一個閒置區塊作為GC輸入區塊404。
在NVM子集(資料區塊池)190C中,需要實行垃圾回收之情況,與其他之NVM組獨立,實行NVM子集190C內之區塊群用之垃圾回收動作。例如,NVM子集190C所包含之區塊數量較與NVM子集190C對應之某臨界值X1多之情況,即使判斷成需要垃圾回收動作亦可。臨界值X1即使根據能分配成NVM子集190C用之區塊的總數量而決定亦可。例如,從能分配成NVM子集190C用之區塊的總數量,減去特定數的餘值,作為與NVM子集190C對應之臨界值X1被利用亦可。
在NVM子集190C需要垃圾回收動作之情況,分配閒置區塊池185內之一個閒置區塊作為GC輸入區塊405。
(5)有效資料之複製
從NVM子集190A內之區塊中選擇混合有效資料和無效資料之一個以上的區塊作為複製源區塊。僅其被選擇的區塊之有效資料被複製於GC輸入區塊403。而且,與NVM組163對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊403內之物理記憶位置的物理位址。
再者,從NVM子集190B內之區塊中選擇混合有效資料和無效資料之一個以上的區塊作為複製源區塊。僅其被選擇的區塊之有效資料被複製於GC輸入區塊404。而且,與NVM組164對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊404內之物理記憶位置的物理位址。
並且,從NVM子集190C內之區塊中選擇混合有效資料和無效資料之一個以上的區塊作為複製源區塊。僅其被選擇的區塊之有效資料被複製於GC輸入區塊405。而且,與NVM組165對應之查找表被更新,依此與被複製之有效資料對應之邏輯位址(LBA),被映射表示該有效資料被複製之GC輸入區塊405內之物理記憶位置的物理位址。
(6)GC輸入區塊之移動
在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)。
(6)’GC輸入區塊朝結合目標NVM組的移動
在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被管理。
(7)區塊之返回
在NVM組# 3中,藉由NVM子集190C被管理並且不保持有效資料之區塊,從NVM子集190C被返回至閒置區塊 池185。不保持有效資料之區塊係藉由主機寫入,其所有資料被無效化之區塊,或是藉由垃圾回收動作,其所有有效資料被複製至複製目標區塊的區塊。
於實行NVM組結合動作之前,在NVM組# 1中,藉由NVM子集190A被管理且不保持有效資料之區塊,從NVM子集190A被返回至閒置區塊池183,藉由NVM子集190B被管理且不保持有效資料的區塊,從NVM子集190B被返回至閒置區塊池184。但是,在實行NVM組結合動作之後,實行(7)’所示之動作,以代替(7)。
(7)’NVM子集朝結合目標NVM組的區塊移動
NVM子集190A之區塊被移動至NVM組# 3之NVM子集190C。即是,NVM子集190A之區塊藉由NVM子集(資料區塊池)190C被管理。
再者,NVM子集190B之區塊被移動至NVM組# 3之NVM子集190C。即是,NVM子集190B之區塊藉由NVM子集(資料區塊池)190C被管理。
(8)閒置區塊朝結合目標NVM組的移動
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所含之區塊數量下降至臨界值X2(<X1)以下時(步驟S207之YES),GC動作控制部22結束垃圾回收動作。若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中之任一個被載入至主記憶體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組實行資料寫入動作中,就算朝向與另外的NVM組對應之區域的讀出指令從主機2被接收到,控制器4不用等待該資料寫入動作完成,可以即時實行與該讀出指令對應之資料讀出動作。
再者,NAND型快閃記憶體5之閒置區塊群,藉由與複數NVM組對應之複數閒置區塊池,在每個NVM組個別地被管理。而且,針對複數NVM組,分別實行分配對應的閒置區塊池內之閒置區塊之一個,作為輸入區塊(使用者輸入區塊或GC輸入區塊)之動作,和將寫入資料寫入至輸入區塊之動作,和藉由NVM子集管理被寫入資料塞滿的輸入區塊之動作,和使藉由NVM子集被管理且不保持有效資料之區塊返回至對應的閒置區塊池之動作。如此一來,藉由使用分別與複數之NVM組對應之閒置區塊,可以使每個NVM組獨立實行輸入區塊之分配和閒置區塊之返回。依此,可以防止屬於某NVM組之晶片內之區塊被分配成作為另外的NVM組用之輸入區塊等。依此,能夠保證不引起晶片競爭。
而且,可以使閒置區塊池藉由複數NVM子集(複數垃圾回收用群組)被共有的共有NVM組,和閒置區塊池藉由一個NVM子集(一個垃圾回收用群組)被專有之分離的NVM組,在一台的SSD3內共存。
另外,在本實施型態中,例示NAND型快閃記憶體作為非揮發性記憶體。但是,本實施型態之功能亦可以適用 例如MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、或是FeRAM(Ferroelectric Random Access Memory)般之其他的各種各樣的非揮發性記憶體。
雖然說明本發明之幾個實施型態,但是該些實施型態係以例之方式被表示,並無限定發明之範圍的意圖。該些新增實施型態可以其他各種型態來實施,只要在不脫離發明之主旨的範圍下,可做各種省略、置換及變更。該些實施型態或其變形當然也包含在發明範圍或主旨中,並且包含於申請專利範圍所記載之發明和其均等之範圍中。
13:NAND介面
30、31、32:寫入緩衝器
33、34、35:寫入緩衝器
60~62:NVM組
80~82:閒置區塊池
90~95:NVM子集
100~106:命名空間
600、601:NAND型快閃記憶體晶片
602~606:NAND型快閃記憶體晶片
610~616:NAND型快閃記憶體晶片
620~626:NAND型快閃記憶體晶片
640~646:NAND型快閃記憶體晶片
GC:垃圾回收

Claims (10)

  1. 一種控制器,其係能夠經複數通道而連接於各者包含複數區域的複數非揮發性記憶體晶片,該控制器之特徵在於,被構成:
    以上述複數非揮發性記憶體晶片之各者僅屬於一個晶片群組之方式,將上述複數非揮發性記憶體晶片分類成第1晶片群組,和第2晶片群組,
    在從主機接收到指定與上述第1晶片群組對應之第1區域的第1寫入指令之情況,將應被寫入於上述第1區域之第1資料,寫入至從上述第1晶片群組被選擇出之第1寫入目標區塊,
    在從上述主機接收到指定與上述第2晶片群組對應之第2區域的第2寫入指令之情況,將應被寫入於上述第2區域之第2資料,寫入至從上述第2晶片群組被選擇出之第2寫入目標區塊。
  2. 如請求項1所記載之控制器,其中
    被構成:
    在上述第2資料之寫入動作之實行中,從上述主機接收到指定上述第1區域之第1讀出指令之情況,不用等待上述第2資料之寫入動作完成,從上述第1晶片群組讀出資料。
  3. 如請求項1所記載之控制器,其中
    屬於上述第1晶片群組之閒置區塊群,藉由與上述第1晶片群組對應之第1閒置區塊池被管理,屬於上述第2晶片 群組之閒置區塊群藉由與上述第2晶片群組對應之第2閒置區塊池被管理,上述第1寫入目標區塊係從上述第1閒置區塊池被分配,上述第2寫入目標區塊係從上述第2閒置區塊池被分配,
    上述第1閒置區塊池係管理屬於上述第1晶片群組且保持有效資料之區塊的第1資料區塊池專用的閒置區塊池,上述第2閒置區塊池係藉由各管理屬於上述第2晶片群組且保持有效資料之區塊的複數第2資料區塊池而被共有的共有閒置區塊池。
  4. 如請求項3所記載之控制器,其中
    被構成:
    在上述第1資料區塊池內之區塊群之垃圾回收中,實行分配上述第1閒置區塊池內之閒置區塊之一個,作為第1複製目標區塊,從被包含在上述第1資料區塊池且保持有效資料和無效資料之一個以上的區塊,僅將有效資料複製於上述第1複製目標區塊,使藉由對上述第1複製目標區塊複製上述有效資料而成為僅保持無效資料之上述一個以上之區塊,返回至上述第1閒置區塊池之動作,
    在上述複數第2資料區塊池之一個的第2資料區塊池內之區塊群之垃圾回收中,實行分配藉由上述複數第2資料區塊池而被共有之上述第2閒置區塊池內之閒置區塊之一個,作為第2複製目標區塊,從被包含在上述一個之第2資料區塊池且保持有效資料和無效資料之一個以上的區塊,僅將有效資料複製於上述第2複製目標區塊,使藉由對上 述第2複製目標區塊複製上述有效資料而成為僅保持無效資料之上述一個以上之區塊,返回至上述第2閒置區塊池之動作。
  5. 如請求項1所記載之控制器,其中
    屬於上述第1晶片群組之閒置區塊群,藉由與上述第1晶片群組對應之第1閒置區塊池被管理,屬於上述第2晶片組群之閒置區塊群藉由與上述第2晶片群組對應之第2閒置區塊池被管理,上述第1寫入目標區塊係從上述第1閒置區塊池被分配,上述第2寫入目標區塊係從上述第2閒置區塊池被分配,
    上述第1閒置區塊池係管理屬於上述第1晶片群組且保持有效資料之區塊的第1資料區塊池專用的閒置區塊池,上述第2閒置區塊池係管理屬於上述第2晶片群組且保持有效資料之區塊的第2資料區塊池專用的閒置區塊池。
  6. 如請求項5所記載之控制器,其中
    被構成:
    在上述第1資料區塊池內之區塊群之垃圾回收中,實行分配上述第1閒置區塊池內之閒置區塊之一個,作為第1複製目標區塊,從被包含在上述第1資料區塊池且保持有效資料和無效資料之一個以上的區塊,僅將有效資料複製於上述第1複製目標區塊,使藉由對上述第1複製目標區塊複製上述有效資料而成為僅保持無效資料之上述一個以上之區塊,返回至上述第1閒置區塊池之動作,
    在上述第2資料區塊池內之區塊群之垃圾回收中,實 行分配上述第2閒置區塊池內之閒置區塊之一個,作為第2複製目標區塊,從被包含在上述第2資料區塊池且保持有效資料和無效資料之一個以上的區塊,僅將有效資料複製於上述第2複製目標區塊,使藉由對上述第2複製目標區塊複製上述有效資料而成為僅保持無效資料之上述一個以上之區塊,返回至上述第2閒置區塊池之動作。
  7. 如請求項1所記載之控制器,其中
    屬於上述第1晶片群組之閒置區塊群,藉由與上述第1晶片群組對應之第1閒置區塊池被管理,屬於上述第2晶片群組之閒置區塊群藉由與上述第2晶片群組對應之第2閒置區塊池被管理,上述第1寫入目標區塊係從上述第1閒置區塊池被分配,上述第2寫入目標區塊係從上述第2閒置區塊池被分配,
    上述第1閒置區塊池係藉由各管理屬於上述第1晶片群組且保持有效資料之區塊的複數第1資料區塊池而被共有的共有閒置區塊池,上述第2閒置區塊池係藉由各管理屬於上述第2晶片群組且保持有效資料之區塊的複數第2資料區塊池而被共有的共有閒置區塊池。
  8. 如請求項7所記載之控制器,其中
    被構成:
    在上述複數第1資料區塊池之一個的第1資料區塊池內之區塊群之垃圾回收中,實行分配藉由上述複數第1資料區塊池而被共有之上述第1閒置區塊池內之閒置區塊之一個,作為第1複製目標區塊,從被包含在上述一個之第1資 料區塊池且保持有效資料和無效資料之一個以上的區塊,僅將有效資料複製於上述第1複製目標區塊,使藉由對上述第1複製目標區塊複製上述有效資料而成為僅保持無效資料之上述一個以上之區塊,返回至上述第1閒置區塊池之動作,
    在上述複數第2資料區塊池之一個的第2資料區塊池內之區塊群之垃圾回收中,實行分配藉由上述複數第2資料區塊池而被共有之上述第2閒置區塊池內之閒置區塊之一個,作為第2複製目標區塊,從被包含在上述一個之第2資料區塊池且保持有效資料和無效資料之一個以上的區塊,僅將有效資料複製於上述第2複製目標區塊,使藉由對上述第2複製目標區塊複製上述有效資料而成為僅保持無效資料之上述一個以上之區塊,返回至上述第2閒置區塊池之動作。
  9. 如請求項1所記載之控制器,其中
    被構成:
    將上述複數非揮發性記憶體晶片之中,分別被連接於上述複數通道的非揮發性記憶體晶片之集合,分類為上述第1晶片群組,
    將上述複數非揮發性記憶體晶片之中,分別被連接於上述複數通道的另外非揮發性記憶體晶片之集合,分類為上述第2晶片群組。
  10. 如請求項1所記載之控制器,其中
    將上述複數非揮發性記憶體晶片之中,分別被連接於 上述複數通道之中之第1通道的非揮發性記憶體晶片之集合,分類為上述第1晶片群組,
    將上述複數非揮發性記憶體晶片之中,分別被連接於上述複數通道之中之與上述第1通道不同的第2通道的非揮發性記憶體晶片之集合,分類為上述第2晶片群組。
TW110119528A 2017-02-28 2017-07-07 控制器 TWI765725B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-036930 2017-02-28
JP2017036930A JP6765321B2 (ja) 2017-02-28 2017-02-28 メモリシステムおよび制御方法

Publications (2)

Publication Number Publication Date
TW202137204A TW202137204A (zh) 2021-10-01
TWI765725B true TWI765725B (zh) 2022-05-21

Family

ID=63246459

Family Applications (3)

Application Number Title Priority Date Filing Date
TW110119528A TWI765725B (zh) 2017-02-28 2017-07-07 控制器
TW107121159A TWI734011B (zh) 2017-02-28 2017-07-07 記憶體系統及控制方法
TW106122780A TWI640016B (zh) 2017-02-28 2017-07-07 Memory system and control method

Family Applications After (2)

Application Number Title Priority Date Filing Date
TW107121159A TWI734011B (zh) 2017-02-28 2017-07-07 記憶體系統及控制方法
TW106122780A TWI640016B (zh) 2017-02-28 2017-07-07 Memory system and control method

Country Status (4)

Country Link
US (3) US10103158B2 (zh)
JP (1) JP6765321B2 (zh)
CN (2) CN112732200B (zh)
TW (3) TWI765725B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6765321B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
US20180335975A1 (en) * 2017-05-16 2018-11-22 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Translating a host data storage command into multiple disk commands
US10915448B2 (en) * 2017-08-22 2021-02-09 Seagate Technology Llc Storage device initiated copy back operation
KR20190105346A (ko) * 2018-03-05 2019-09-17 삼성전자주식회사 메모리 패키지 및 메모리 장치
US11520696B2 (en) * 2018-06-28 2022-12-06 Seagate Technology Llc Segregating map data among different die sets in a non-volatile memory
KR20200027858A (ko) 2018-09-05 2020-03-13 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11249900B2 (en) 2018-10-29 2022-02-15 Vmware, Inc. Efficiently purging non-active blocks in NVM regions using virtblock arrays
US10691591B2 (en) 2018-10-29 2020-06-23 Vmware, Inc. Efficiently purging non-active blocks in NVM regions using pointer elimination
US10705954B2 (en) * 2018-10-29 2020-07-07 Vmware, Inc. Efficiently purging non-active blocks in NVM regions while preserving large pages
KR20200078047A (ko) * 2018-12-21 2020-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11294827B2 (en) * 2019-09-12 2022-04-05 Western Digital Technologies, Inc. Non-sequential zoned namespaces
US11442852B2 (en) * 2020-06-25 2022-09-13 Western Digital Technologies, Inc. Adaptive context metadata message for optimized two-chip performance
US20220147392A1 (en) * 2020-11-10 2022-05-12 Samsung Electronics Co., Ltd. System architecture providing end-to-end performance isolation for multi-tenant systems
US11809328B2 (en) * 2021-04-01 2023-11-07 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device
JP2023044330A (ja) * 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステムおよび制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110302361A1 (en) * 2009-02-12 2011-12-08 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
US20140003142A1 (en) * 2012-06-29 2014-01-02 Samsung Electronics Co., Ltd. Nonvolatile memory device performing garbage collection
US20160124640A1 (en) * 2014-11-03 2016-05-05 SK Hynix Inc. Memory system and method of operating the same
US9442662B2 (en) * 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US20160313943A1 (en) * 2015-04-24 2016-10-27 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4746598B2 (ja) * 2007-09-28 2011-08-10 株式会社東芝 半導体記憶装置
JP2009110053A (ja) * 2007-10-26 2009-05-21 Toshiba Corp メモリシステム
JP4666080B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8285946B2 (en) * 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems
JP2011164994A (ja) * 2010-02-10 2011-08-25 Toshiba Corp メモリシステム
US9158670B1 (en) * 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US20130019057A1 (en) 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
EP2704015A4 (en) * 2011-09-30 2014-11-05 Hitachi Ltd NON-VOLATILE SEMICONDUCTOR MEMORY SYSTEM
JP2013137665A (ja) * 2011-12-28 2013-07-11 Toshiba Corp 半導体記憶装置、半導体記憶装置の制御方法、およびメモリコントローラ
JP5624578B2 (ja) * 2012-03-23 2014-11-12 株式会社東芝 メモリシステム
WO2013164869A1 (en) * 2012-05-02 2013-11-07 Hitachi, Ltd. Storage system and control method therefor
JP5813589B2 (ja) * 2012-07-13 2015-11-17 株式会社東芝 メモリシステムおよびその制御方法
US9734911B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9378135B2 (en) * 2013-01-08 2016-06-28 Violin Memory Inc. Method and system for data storage
US9489297B2 (en) * 2013-01-21 2016-11-08 Sandisk Technologies Llc Pregroomer for storage array
US9229854B1 (en) * 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system
US9483397B2 (en) * 2013-07-16 2016-11-01 Intel Corporation Erase management in memory systems
US20160170873A1 (en) * 2013-07-18 2016-06-16 Hitachi, Ltd. Information processing device
JP2015069241A (ja) * 2013-09-26 2015-04-13 キヤノン株式会社 画像処理装置、制御装置、それらの制御方法、及びプログラム
US9053002B2 (en) * 2013-11-12 2015-06-09 International Business Machines Corporation Thick and thin data volume management
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US9632712B2 (en) * 2014-07-02 2017-04-25 Sandisk Technologies Llc System and method of updating metablocks associated with multiple memory dies
JP5971423B2 (ja) * 2014-07-23 2016-08-17 富士通株式会社 情報処理装置、メモリコントローラ、記憶装置の制御プログラム及び記憶装置の制御方法
US10146482B2 (en) * 2014-08-01 2018-12-04 Toshiba Memory Corporation Global error recovery system
US9524112B2 (en) * 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by trimming
US9582201B2 (en) * 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
KR20160094767A (ko) * 2015-02-02 2016-08-10 삼성전자주식회사 아이들 구간에서 정보 전달 기능을 수행하는 메모리 장치 및 방법
US9703492B2 (en) * 2015-05-19 2017-07-11 International Business Machines Corporation Page replacement algorithms for use with solid-state drives
JP2017027388A (ja) 2015-07-23 2017-02-02 株式会社東芝 メモリシステムおよび不揮発性メモリの制御方法
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
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
JP6414852B2 (ja) * 2015-12-14 2018-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6448571B2 (ja) * 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
JP6444917B2 (ja) * 2016-03-08 2018-12-26 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
CN106201343A (zh) * 2016-06-30 2016-12-07 浪潮(北京)电子信息产业有限公司 一种提高物理带库磁带利用率的方法及系统
JP6524039B2 (ja) * 2016-09-23 2019-06-05 東芝メモリ株式会社 メモリシステム及び制御方法
JP6765321B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110302361A1 (en) * 2009-02-12 2011-12-08 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
US20140003142A1 (en) * 2012-06-29 2014-01-02 Samsung Electronics Co., Ltd. Nonvolatile memory device performing garbage collection
US9442662B2 (en) * 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US20160124640A1 (en) * 2014-11-03 2016-05-05 SK Hynix Inc. Memory system and method of operating the same
US20160313943A1 (en) * 2015-04-24 2016-10-27 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device

Also Published As

Publication number Publication date
TWI640016B (zh) 2018-11-01
US10103158B2 (en) 2018-10-16
US20180247947A1 (en) 2018-08-30
US20190006379A1 (en) 2019-01-03
TW202137204A (zh) 2021-10-01
US10418371B2 (en) 2019-09-17
CN108509146B (zh) 2021-03-16
TW201833910A (zh) 2018-09-16
JP6765321B2 (ja) 2020-10-07
CN112732200B (zh) 2024-04-26
USRE49508E1 (en) 2023-04-25
TW201839760A (zh) 2018-11-01
CN112732200A (zh) 2021-04-30
JP2018142236A (ja) 2018-09-13
CN108509146A (zh) 2018-09-07
TWI734011B (zh) 2021-07-21

Similar Documents

Publication Publication Date Title
TWI765725B (zh) 控制器
CN108509351B (zh) 存储器系统和控制方法
TWI767042B (zh) 記憶體系統及控制方法
US10564872B2 (en) System and method for dynamic allocation to a host of memory device controller memory resources
JP7132291B2 (ja) メモリシステムおよび制御方法
JP7342163B2 (ja) メモリシステム
JP7167295B2 (ja) メモリシステムおよび制御方法
JP2022179798A (ja) メモリシステムおよび制御方法