TW201915747A - 記憶體系統及控制非揮發性記憶體之控制方法 - Google Patents
記憶體系統及控制非揮發性記憶體之控制方法 Download PDFInfo
- Publication number
- TW201915747A TW201915747A TW106146402A TW106146402A TW201915747A TW 201915747 A TW201915747 A TW 201915747A TW 106146402 A TW106146402 A TW 106146402A TW 106146402 A TW106146402 A TW 106146402A TW 201915747 A TW201915747 A TW 201915747A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- offset
- host
- data
- copy
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明實現可謀求I/O性能改善之記憶體系統。實施形態之記憶體系統係當自主機接收到指定邏輯位址之寫入請求時,決定應寫入來自上述主機之資料之第1區塊與上述第1區塊之第1位置兩者,將來自上述主機之資料寫入至上述第1區塊之上述第1位置。上述記憶體系統對上述主機通知上述第1邏輯位址、指定上述第1區塊之第1區塊編號、及第1區塊內偏移,上述第1區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數表示上述第1區塊之開頭至上述第1位置之偏移。
Description
本發明之實施形態係關於一種記憶體系統及控制非揮發性記憶體之控制方法。
近年來,具備非揮發性記憶體之記憶體系統廣泛普及。作為此種記憶體系統之一,已知基於NAND(Not AND,反及)快閃技術之固態硬碟(SSD)。於資料中心之伺服器中,亦使用SSD作為記憶體。對於利用於如伺服器之主機計算機中之記憶體,要求較高之I/O(Input/Output,輸入/輸出)性能。因此,最近開始提出主機與記憶體之間之新穎之介面。然而,通常,由於NAND型快閃記憶體之控制較為複雜,所以當實現用於改善I/O性能之新穎之介面時,必須考慮主機與記憶體(記憶體系統)之間適當之作用分配。
本發明提供一種可實現I/O性能改善之記憶體系統及控制非揮發性記憶體之控制方法。根據實施形態,可連接於主機之記憶體系統具備:非揮發性記憶體,其包含各自包含複數個頁之複數個區塊;及控制器,電性連接於上述非揮發性記憶體,且控制上述非揮發性記憶體。上述控制器當自上述主機接收到指定第1邏輯位址之寫入請求時,執行如下動作:決定應寫入來自上述主機之資料之第1區塊與上述第1區塊之第1位置之兩者,將來自上述主機之資料寫入至上述第1區塊之上述第1位置,且對上述主機通知上述第1邏輯位址、指定上述第1區塊之第1區塊編號、及第1區塊內偏移,上述第1區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數表示上述第1區塊之開頭至上述第1位置之偏移。上述控制器當執行上述非揮發性記憶體之垃圾回收時,執行如下動作:自上述複數個區塊選擇用於上述垃圾回收之複製源區塊及複製目標區塊,決定應寫入上述複製源區塊內所存儲之有效資料之上述複製目標區塊之第2位置,將上述有效資料複製至上述複製目標區塊之上述第2位置,對上述主機通知上述有效資料之邏輯位址、指定上述複製目標區塊之第2區塊編號、及以上述粒度之倍數表示上述複製目標區塊之開頭至上述第2位置之偏移之第2區塊內偏移。
以下,參照圖式,對實施形態進行說明。首先,參照圖1,對一實施形態之包含記憶體系統之計算機系統之構成進行說明。該記憶體系統係以對非揮發性記憶體寫入資料,且自非揮發性記憶體讀出資料之方式構成之半導體存儲裝置。該記憶體系統係作為基於NAND快閃技術之快閃存儲裝置3而實現。該計算機系統亦可包含主機(主機裝置)2、及複數個快閃存儲裝置3。主機2亦可為以將包含複數個快閃存儲裝置3之快閃陣列用作記憶體之方式構成之伺服器。主機(伺服器)2與複數個快閃存儲裝置3經由介面50而相互連接(內部相互連接)。作為用於該內部相互連接之介面50,亦可使用PCI Express(PCIe,Peripheral Component Interconnect Express,周邊組件互連高速)(註冊商標),NVM Express(NVMe,Non-Volatile Memory express,非揮發性記憶體高速)(註冊商標),Ethernet(乙太網路,註冊商標),NVMe over Fabrics(NVMeOF)等,但並不限定於此。作為主機2而發揮功能之伺服器之典型例亦可列舉資料中心內之伺服器。於主機2係藉由資料中心內之伺服器而實現之實例中,該主機(伺服器)2亦可經由網路51而連接於複數個終端用戶終端(用戶端)61。主機2可對該等終端用戶終端61提供各種服務。可藉由主機(伺服器)2提供之服務之例有:(1)向各用戶端(各終端用戶終端61)提供系統開發平台之平台即服務(PaaS)、及(2)向各用戶端(各終端用戶終端61)提供如虛擬伺服器之基礎設施之基礎設施即服務(IaaS)等。複數個虛擬機器亦可於作為該主機(伺服器)2而發揮功能之實體伺服器上執行。於主機(伺服器)2上運行之該等虛擬機器各者可作為以向所對應之若干個用戶端(終端用戶終端61)提供各種服務之方式構成的虛擬伺服器而發揮功能。主機(伺服器)2包含管理構成快閃陣列之複數個快閃存儲裝置3之記憶體管理功能、及對終端用戶終端61分別提供包含記憶體存取之各種服務之前端功能。於先前型SSD中,NAND型快閃記憶體之區塊/頁之階層構造係藉由SSD內之快閃轉換層(FTL)而隱藏。換言之,先前型SSD之FTL具有如下等功能:(1)使用作為邏輯實體位址轉換表格而發揮功能之查找表格,來自管理邏輯位址各者與NAND型快閃記憶體之實體位址各者之間之映射,(2)用於隱藏以頁為單位之讀取/寫入及以區塊為單位之刪除動作,(3)執行NAND型快閃記憶體之垃圾回收(GC)。邏輯位址各者與NAND型快閃記憶體之實體位址之間之映射無法自主機觀察到。NAND型快閃記憶體之區塊/頁構造亦無法自主機觀察到。另一方面,有於主機中亦執行一種位址轉換(應用程式級位址轉換)之情況。該位址轉換使用應用程式級位址轉換表格而管理應用程式用邏輯位址各者與SSD用邏輯位址各者之間之映射。又,於主機中,亦為了消除SSD用邏輯位址空間上所產生之碎片,而執行用於變更該邏輯位址空間上之資料配置之一種GC(應用程式級GC)。然而,於主機及SSD分別具有位址轉換表格這般冗餘之構成(SSD具有作為邏輯實體位址轉換表格而發揮功能之查找表格,主機具有應用程式級位址轉換表格)中,為了保持該等位址轉換表格而要消耗龐大之記憶體資源。進而,包含主機側之位址轉換與SSD側之位址轉換之雙重位址轉換亦成為使I/O性能降低之因素。進而,主機側之應用程式級GC成為使向SSD之資料寫入量增加至即時用戶資料量之數倍(例如2倍)程度之因素。此種資料寫入量之增加雖然不會使SSD之寫入放大增加,但會使系統整體之存儲性能降低,又,亦使SSD之壽命變短。為了消除此種問題點,亦提出了將先前型SSD之FTL之功能全部轉移至主機之對策。然而,為了實現該對策,必須使主機直接處理NAND型快閃記憶體之區塊及頁。NAND型快閃記憶體之容量於每一代NAND型快閃記憶體均在增加,伴隨於此,每一代NAND型快閃記憶體之區塊尺寸/頁尺寸亦不同。因此,想到了於主機2中混合使用不同區塊尺寸、頁尺寸之NAND型快閃記憶體之情況。對主機而言難以處理不同之區塊尺寸/頁尺寸。又,假定由於亦可能存在因各種製造上之理由等而產生之數量無法預測之不良頁(bad page),所以於每個區塊中,區塊內實質上可利用之頁數不同,從而亦可能存在該NAND型快閃記憶體內之區塊尺寸於每個區塊中不同之情況。對主機而言,處理不良頁及不均等之區塊尺寸變得更加困難。因此,於本實施形態中,於主機2與快閃存儲裝置3之間分擔FTL之作用。主機2管理作為邏輯實體位址轉換表格而發揮功能之查找表格,但應使用於寫入之區塊之選擇不由主機2而由快閃存儲裝置3執行。又,GC亦不由主機2而由快閃存儲裝置3執行。以下,將轉移至主機2之FTL功能稱為全局FTL。主機2之全局FTL亦可具有執行存儲服務之功能、管理查找表格(LUT)之功能、損耗控制功能、用於實現高可用性之功能、防止記憶體中存儲具有相同內容之複數個重複資料部之重複資料刪除(De-duplication)功能等。另一方面,快閃存儲裝置3可執行低級抽象(LLA)。LLA為用於NAND型快閃記憶體之抽象之功能。LLA包含吸收區塊尺寸之不均等性、吸收區塊/頁構造、及輔助資料配置之功能等。輔助資料配置之功能包含決定用於垃圾回收之複製源區塊與複製目標區塊之功能、對上位階層(主機2)通知有效資料之複製目標位置之功能、決定用戶資料之寫入目標位置(區塊編號、該區塊內之位置)之功能、及對上位階層(主機2)通知已寫入用戶資料之該寫入目標位置(區塊編號、該區塊內之位置)之功能等。又,LLA具有執行GC之功能。進而,LLA亦具有對每個域(QoS(Quality of Service,服務質量)域)執行快閃存儲裝置3之資源管理之QoS控制功能。QoS控制功能包含對每個QoS域(或每個區塊)決定存取單位之功能。存取單位表示主機2可進行寫入/讀取之最小資料尺寸(Grain)。快閃存儲裝置3支援單一或複數種存取單位(Grain),主機2於快閃存儲裝置3支援複數種存取單位之情形時,對快閃存儲裝置3指示每個QoS域(或每個區塊)應使用之存取單位。又,QoS控制功能包含用於儘量防止QoS域間之性能干擾之功能。該功能基本上係用於保持穩定之時延之功能。為了實現該功能,快閃存儲裝置3亦可以使NAND型快閃記憶體內之複數個區塊分別僅屬於一個組之方式將NAND型快閃記憶體內之複數個區塊分類為複數個組。於該情形時,各組包含複數個區塊,但不存在不同組共有同一區塊之情況。該複數個組作為上述複數個QoS域而發揮功能。或者,快閃存儲裝置3亦可以使快閃存儲裝置3內之複數個NAND型快閃記憶體晶粒分別僅屬於一個組(一個QoS域)之方式將快閃存儲裝置3內之複數個NAND型快閃記憶體晶粒分類為複數個組(複數個QoS域)。於該情形時,各組(QoS域)包含複數個晶粒,但不存在不同QoS域共有同一晶粒之情況。圖2表示先前型SSD與主機之間之作用分配、及本實施形態之快閃存儲裝置3與主機2之間之作用分配。圖2之左側表示包含先前型SSD與執行虛擬磁碟服務之主機之計算機系統整體之階層構造。於主機(伺服器)中,執行用於對複數個終端用戶提供複數個虛擬機器之虛擬機器服務101。於虛擬機器服務101上之各虛擬機器中,執行由對應之終端用戶使用之操作系統及用戶應用程式102。又,於主機(伺服器)中,執行與複數個用戶應用程式102相對應之複數個虛擬磁碟服務103。各虛擬磁碟服務103將先前型SSD內之存儲資源之容量之一部分作為對應之用戶應用程式102用存儲資源(虛擬磁碟)分配。於各虛擬磁碟服務103中,亦執行使用應用程式級位址轉換表格而將應用程式級之邏輯位址轉換為SSD用邏輯位址之應用程式級位址轉換。進而,於主機中,亦執行應用程式級GC104。命令自主機(伺服器)向先前型SSD之發送、及命令結束之響應自先前型SSD向主機(伺服器)之回傳係經由主機(伺服器)及先前型SSD各者中存在之I/O隊列200而執行。先前型SSD包含寫入緩衝區(WB)301、查找表格(LUT)302、垃圾回收功能303、及NAND型快閃記憶體(NAND快閃陣列)304。先前型SSD僅管理一個查找表格(LUT)302,NAND型快閃記憶體(NAND快閃陣列)304之資源係由複數個虛擬磁碟服務103所共有。於該構成中,由於包含虛擬磁碟服務103下之應用程式級GC104與先前型SSD內之垃圾回收功能303(LUT級GC)之重複之GC,而使寫入放大變大。又,於先前型SSD中,亦可能會產生相鄰干擾問題,即由於來自某一終端用戶或某一虛擬磁碟服務103之資料寫入量之增加而使GC之頻率增加,藉此導致對於其他終端用戶或其他虛擬磁碟服務103之I/O性能劣化。又,由於存在包含各虛擬磁碟服務內之應用程式級位址轉換表格與先前型SSD內之LUT302之重複資源,而消耗了大量記憶體資源。圖2之右側表示包含本實施形態之快閃存儲裝置3與主機2之計算機系統整體之階層構造。於主機(伺服器)2中,執行用於對複數個終端用戶提供複數個虛擬機器之虛擬機器服務401。於虛擬機器服務401上之各虛擬機器中,執行由對應之終端用戶所使用之操作系統及用戶應用程式402。又,於主機(伺服器)2中,執行與複數個用戶應用程式402相對應之複數個I/O服務403。於該等I/O服務403中,亦可包含基於LBA(Logical Block Address,邏輯區塊位址)之區塊I/O服務、鍵值存儲服務等。各I/O服務403包含管理邏輯位址各者與快閃存儲裝置3之實體位址各者之間之映射之查找表格(LUT)。此處,邏輯位址意為可識別存取對象之資料之標識符。該邏輯位址亦可為指定邏輯位址空間上之位置之邏輯區塊位址(LBA),或者亦可為鍵值存儲之鍵(標籤)。於基於LBA之區塊I/O服務中,亦可使用管理邏輯位址(LBA)各者與快閃存儲裝置3之實體位址各者之間之映射之LUT。於鍵值存儲服務中,亦可使用管理邏輯位址(即如鍵般之標籤)各者與快閃存儲裝置3之實體位址各者之間之映射的LUT,該快閃存儲裝置3存儲有與該等邏輯位址(即如鍵般之標籤)相對應之資料。於該LUT中,亦可管理標籤、存儲有利用該標籤進行識別之資料之實體位址、及該資料之資料長度之對應關係。各終端用戶亦可選擇應使用之尋址方法(LBA、鍵值存儲之鍵等)。該等各LUT並非將來自用戶應用程式402之邏輯位址各者轉換為各個快閃存儲裝置3用邏輯位址,而係將來自用戶應用程式402之邏輯位址各者轉換為各個快閃存儲裝置3之實體位址。換言之,該等各LUT係整合(合併)有將快閃存儲裝置3用邏輯位址轉換為實體位址之表格、與應用程式級位址轉換表格之表格。於主機(伺服器)2中,於上述每個QoS域中存在I/O服務403。屬於某一QoS域之I/O服務403管理邏輯位址各者與實體位址各者之間之映射,該邏輯位址係由所對應之QoS域內之用戶應用程式402所使用邏輯位址,該實體位址係屬於分配至所對應之QoS域之資源組之區塊群之實體位址。命令自主機(伺服器)2向快閃存儲裝置3之發送及命令結束之響應等自快閃存儲裝置3向主機(伺服器)2之回傳係經由存在於主機(伺服器)2及快閃存儲裝置3各者之I/O隊列500而執行。該等I/O隊列500亦可被分類為與複數個QoS域相對應之複數個隊列組。快閃存儲裝置3包含與複數個QoS域相對應之複數個寫入緩衝區(WB)601、與複數個QoS域相對應之複數個垃圾回收(GC)功能602、及NAND型快閃記憶體(NAND快閃陣列)603。於該圖2之右側所示之構成中,將先前型SSD內之LUT302與應用程式級位址轉換表格合併為I/O服務403內之一個LUT,因此可減少位址轉換資訊之存儲所消耗之記憶體資源之量。又,位址轉換階段之數量減少,因此可使I/O性能提昇。進而,不執行包含應用程式級GC與LUT級GC之重複GC,而僅由快閃存儲裝置3執行用於GC(統一GC)之資料複製。因此,與執行重複GC之構成相比,可大幅減少系統整體之寫入放大。其結果為,可改善I/O性能,且可使快閃存儲裝置3之壽命最大化。圖3表示圖1之系統構成之變化例。於圖3中,複數個主機2A與複數個快閃存儲裝置3之間之資料傳輸係經由網路機器(此處為網路開關1)而執行。換言之,於圖3之計算機系統中,將圖1之伺服器2之記憶體管理功能轉移至管理器2B,且將伺服器2之前端功能轉移至複數個主機(終端用戶服務用主機)2A。管理器2B管理複數個快閃存儲裝置3,根據來自各主機(終端用戶服務用主機)2A之請求,將該等快閃存儲裝置3之存儲資源分配至各主機(終端用戶服務用主機)2A。各主機(終端用戶服務用主機)2A經由網路而連接於一個以上之終端用戶終端61。各主機(終端用戶服務用主機)2A管理作為上述經整合(合併)之邏輯實體位址轉換表格之查找表格(LUT)。各主機(終端用戶服務用主機)2A使用自身之LUT,僅管理由對應之終端用戶所使用之邏輯位址各者與分配至自身之資源之實體位址各者之間的映射。因此,該構成可使系統容易地橫向擴展。各主機2A之全局FTL具有管理查找表格(LUT)之功能、用於實現高可用性之功能、重複資料刪除(De-duplication)功能、及QoS策略控制功能等。管理器2B係用於管理複數個快閃存儲裝置3之專用裝置(計算機)。管理器2B具有預約由各主機2A所請求之容量之存儲資源之全局資源預約功能。進而,管理器2B具有監視各快閃存儲裝置3之消耗程度之損耗監視功能、將預約之存儲資源(NAND資源)分配至各主機2A之NAND資源分配功能、QoS策略控制功能、及全局時鐘管理功能等。各快閃存儲裝置3具有區域FTL。該區域FTL為用於與各主機2A之全局FTL聯合之功能。該區域FTL亦可包含QoS控制功能、管理各QoS域之寫入緩衝區之功能、於QoS域內或QoS域間執行GC資料複製之功能、用於恢復之LUT複製功能、管理用於重複資料刪除(De-duplication)之參照計數之功能、工作量解析功能、及內務處理功能等。根據圖3之系統構成,各快閃存儲裝置3之管理係藉由管理器2B而執行,因此各主機2A僅執行對分配至自身之一個以上之快閃存儲裝置3發送I/O請求之動作、及接收來自快閃存儲裝置3之響應之動作即可。換言之,複數個主機2A與複數個快閃存儲裝置3之間之資料傳輸僅經由開關1而執行,管理器2B與該資料傳輸無關。又,如上所述,藉由主機2A各者所管理之LUT之內容相互獨立。因此,可容易地增加主機2A之數量,所以可實現橫向擴展型之系統構成。圖4表示快閃存儲裝置3之構成例。快閃存儲裝置3包含控制器4及非揮發性記憶體(NAND型快閃記憶體)5。快閃存儲裝置3亦可還包含隨機存取記憶體,例如DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)6。NAND型快閃記憶體5包含記憶胞陣列,該記憶胞陣列包含配置為矩陣狀之複數個記憶胞。NAND型快閃記憶體5可為二維構造之NAND型快閃記憶體,亦可為三維構造之NAND型快閃記憶體。NAND型快閃記憶體5之記憶胞陣列包含複數個區塊BLK0~BLKm-1。區塊BLK0~BLKm-1各者係藉由複數個頁(此處為頁P0~Pn-1)而編成。區塊BLK0~BLKm-1作為刪除單位而發揮功能。區塊有時亦稱為「刪除區塊」、「實體區塊」、或「實體刪除區塊」。頁P0~Pn-1各者包含連接於同一字元線之複數個記憶胞。頁P0~Pn-1係資料寫入動作及資料讀入動作之單位。控制器4經由如Toggle、開放式NAND快閃介面(ONFI)之NAND介面13,而電性連接於作為非揮發性記憶體之NAND型快閃記憶體5。控制器4係以控制NAND型快閃記憶體5之方式構成之記憶體控制器(控制電路)。如圖5所示,NAND型快閃記憶體5包含複數個NAND型快閃記憶體晶粒。各NAND型快閃記憶體晶粒係包括包含複數個區塊BLK之記憶胞陣列、及控制該記憶胞陣列之周邊電路之非揮發性記憶體晶粒。各個NAND型快閃記憶體晶粒可獨立地進行動作。因此,NAND型快閃記憶體晶粒作為並聯動作單位而發揮功能。NAND型快閃記憶體晶粒亦稱為「NAND型快閃記憶體晶片」或「非揮發性記憶體晶片」。於圖5中,例示如下情況:於NAND介面13連接有16個通道Ch1、Ch2、…Ch16,且於該等通道Ch1、Ch2、…Ch16各者分別連接有相同數量(例如每個通道2個晶粒)之NAND型快閃記憶體晶粒。各通道包含用於與對應之NAND型快閃記憶體晶粒進行通信之通信線(記憶體匯流排)。控制器4經由通道Ch1、Ch2、…Ch16而控制NAND型快閃記憶體晶粒#1~#32。控制器4可同時驅動通道Ch1、Ch2、…Ch16。連接於通道Ch1~Ch16之16個NAND型快閃記憶體晶粒#1~#16亦可編成第1記憶體組,又,連接於通道Ch1~Ch16之其餘16個NAND型快閃記憶體晶粒#17~#32亦可編成第2記憶體組。記憶體組作為用於使複數個記憶體模塊藉由記憶體組交錯來進行並聯動作之單位而發揮功能。於圖5之構成例中,藉由16個通道及使用2個記憶體組之記憶體組交錯,而可使最多32個NAND型快閃記憶體晶粒進行並聯動作。於本實施形態中,控制器4亦可管理分別包含複數個區塊BLK之複數個區塊(以下稱為超級區塊),亦可以超級區塊為單位而執行刪除動作。超級區塊並不限定於此,亦可包含自NAND型快閃記憶體晶粒#1~#32各選擇一個共計32個區塊BLK。再者,NAND型快閃記憶體晶粒#1~#32各者亦可具有多平面構成。例如,當NAND型快閃記憶體晶粒#1~#32各者具有包含兩個平面之多平面構成時,一個超級區塊亦可包含自與NAND型快閃記憶體晶粒#1~#32對應之64個平面各選擇一個共計64個區塊BLK。於圖6中,例示一個超級區塊SB包含自NAND型快閃記憶體晶粒#1~#32各選擇一個共計32個區塊BLK(於圖5中以粗框包圍之區塊BLK)之情況。如圖4所示,控制器4包含主機介面11、CPU12、NAND介面13、及DRAM介面14等。該等CPU12、NAND介面13、DRAM介面14經由匯流排10而相互連接。該主機介面11係以執行與主機2之通信之方式構成之主機介面電路。該主機介面11例如亦可為PCIe控制器(NVMe控制器)。主機介面11自主機2接收各種請求(命令)。該等請求(命令)包含寫入請求(寫入命令)、讀取請求(讀取命令)、及其他各種請求(命令)。CPU12係以控制主機介面11、NAND介面13、DRAM介面14之方式構成之處理器。CPU12響應於快閃存儲裝置3之電源接通,自NAND型快閃記憶體5或未圖示之ROM(Read Only Memory,唯讀記憶體)將控制程式(韌體)載入DRAM6,然後執行該韌體,藉此進行各種處理。再者,韌體亦可載入至控制器4內之未圖示之SRAM(Static Random Access Memory,靜態隨機存取記憶體)。該CPU12可執行用於處理來自主機2之各種命令之命令處理等。CPU12之動作係以藉由CPU12而執行之上述韌體予以控制。再者,亦可藉由控制器4內之專用硬體而執行命令處理之一部分或全部。CPU12可作為寫入動作控制部21、讀取動作控制部22、及GC動作控制部23而發揮功能。於該等寫入動作控制部21、讀取動作控制部22、及GC動作控制部23中,安裝有用於實現圖2之右部所示之系統構成之應用程式程式介面(API)。寫入動作控制部21自主機2接收指定邏輯位址之寫入請求(寫入命令)。邏輯位址係可識別應寫入之資料(用戶資料)之標識符,例如可為LBA,或者亦可為如鍵值存儲資料庫之鍵之類的標籤。當接收到寫入命令時,寫入動作控制部21首先決定應寫入來自主機2之資料之區塊(寫入目標區塊)及該區塊內之位置(寫入目標位置)。繼而,寫入動作控制部21將來自主機2之資料(寫入資料)寫入該寫入目標區塊之寫入目標位置。於該情形時,寫入動作控制部21不僅寫入來自主機2之資料,並可將該資料與該資料之邏輯位址之兩者寫入至寫入目標區塊。然後,寫入動作控制部21將所指定之邏輯位址、及表示被寫入了資料(寫入資料)之NAND型快閃記憶體5內之位置(實體記憶位置)之實體位址回傳至主機2。於該情形時,該實體位址係藉由(1)該寫入目標區塊之區塊編號、及(2)表示該寫入目標區塊內之寫入目標位置之區塊內偏移而表示。區塊編號係指定被寫入資料之區塊之標識符。作為區塊編號可使用可唯一地識別複數個區塊內之任意一個之各種值。區塊內偏移表示寫入目標區塊之開頭至寫入目標位置之偏移、即寫入目標位置相對於寫入目標區塊之開頭之偏移。寫入目標區塊之開頭至寫入目標位置之偏移之尺寸以具有與頁尺寸不同尺寸之粒度(Grain)之倍數而表示。粒度(Grain)係上述存取單位。粒度(Grain)之尺寸之最大值限制到區塊尺寸。換言之,區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數來表示寫入目標區塊之開頭至寫入目標位置之偏移。粒度(Grain)亦可具有小於頁尺寸之尺寸。例如,當頁尺寸為16 K位元組時,粒度(Grain)之尺寸亦可為4 K位元組。於該情形時,於某一區塊中,規定各者之尺寸為4 K位元組之複數個偏移位置。與區塊內之最初之偏移位置相對應之區塊內偏移例如為0,與區塊內之下一個偏移位置相對應之區塊內偏移例如為1,與區塊內之再下一個偏移位置相對應之區塊內偏移例如為2。或者,粒度(Grain)亦可具有大於頁尺寸之尺寸。例如,粒度(Grain)亦可為頁尺寸之數倍之尺寸。當頁尺寸為16 K位元組時,粒度亦可為32 K位元組之尺寸。如此,寫入動作控制部21自行決定應被寫入資料之區塊及該區塊內之位置之兩者,然後對主機2通知區塊編號及區塊內偏移作為表示寫入了來自主機2之資料(用戶資料)之位置之實體位址,而並非通知區塊編號及頁編號。藉此,主機2可將用戶資料寫入至NAND型快閃記憶體5而無需在意區塊尺寸、頁寫入順序制約、不良頁、頁尺寸等,進而,可將由區塊編號及區塊內偏移所表示之實體位址映射至該用戶資料之邏輯位址。讀取動作控制部22當自主機2接收到指定實體位址(即區塊編號及區塊內偏移)之讀取請求(讀取命令)時,基於該等區塊編號及區塊內偏移,自NAND型快閃記憶體5讀取資料。讀取對象之區塊係藉由區塊編號而特定。該區塊內之讀取對象之實體記憶位置係藉由區塊內偏移而特定。藉由使用該區塊內偏移,而主機2無需處理NAND型快閃記憶體之每個世代之不同頁尺寸。為了獲得讀取對象之實體記憶位置,讀取動作控制部22首先使該區塊內偏移除以表示頁尺寸之粒度之數(此處為4),然後將由該除法所得之商及餘數分別決定為讀取對象之頁編號及讀取對象之頁內偏移。GC動作控制部23當執行NAND型快閃記憶體5之垃圾回收時,自NAND型快閃記憶體5內之複數個區塊選擇用於該垃圾回收之複製源區塊(GC源區塊)及複製目標區塊(GC目的地區塊)。於該情形時,GC動作控制部23通常選擇複數個複製源區塊(GC源區塊)、及一個以上之複製目標區塊(GC目的地區塊)。用於選擇複製源區塊(GC源區塊)之條件(GC策略)亦可由主機2指定。例如,既可使用優先選擇有效資料量最少之區塊作為複製源區塊(GC源區塊)之GC策略,亦可使用其他GC策略。如此,複製源區塊(GC源區塊)及複製目標區塊(GC目的地區塊)之選擇並非由主機2而係由快閃存儲裝置3之控制器4(GC動作控制部23)執行。控制器4亦可使用各區塊管理表格而管理各區塊之有效資料量。當自主機2接收到指定垃圾回收之複製源組(源Qos域)及複製目標組(目的地Qos域)之命令(GC控制命令)時,GC動作控制部23自屬於複製源組區塊群中選擇垃圾回收之複製源區塊,並自屬於複製目標組之區塊群中選擇垃圾回收之複製目標區塊。有效資料/無效資料之管理亦可使用區塊管理表格32而執行。該區塊管理表格32例如亦可存在於每個區塊。於與某一區塊相對應之區塊管理表格32中,存儲有表示該區塊內之資料各者之有效/無效之點陣圖旗標。此處,有效資料意為自LUT被參照之資料(即作為最新之資料與邏輯位址建立關聯之資料),且之後有可能自主機2被讀取之資料。無效資料意為已經不可能自主機2被讀取之資料。例如,與某一邏輯位址建立關聯之資料係有效資料,與任何邏輯位址均未建立關聯之資料係無效資料。GC動作控制部23決定應被寫入複製源區塊(GC源區塊)內所存儲之有效資料之複製目標區塊(GC目的地區塊)內之位置(複製目標位置),將有效資料複製至複製目標區塊(GC目的地區塊)之該被決定之位置(複製目標位置)。於該情形時,GC動作控制部23亦可將有效資料與該有效資料之邏輯位址之兩者複製至複製目標區塊(GC目的地區塊)。GC動作控制部23亦可藉由參照與複製源區塊(GC源區塊)相對應之區塊管理表格32而特定出GC源區塊內之有效資料。或者,於另一實施形態中,亦可由主機2執行有效資料/無效資料之管理。於該情形時,GC動作控制部23亦可自主機2接收表示GC源區塊內之各資料之有效/無效之資訊,並基於該接收到之資訊而特定出GC源區塊內之有效資料。然後,GC動作控制部23對主機2通知被複製之有效資料之邏輯位址、複製目標區塊(GC目的地區塊)之區塊編號、及以上述粒度之倍數來表示複製目標區塊(GC目的地區塊)之開頭至複製目標位置之偏移之區塊內偏移。於本實施形態中,如上所述,寫入動作控制部21可將來自主機2之資料(寫入資料)與來自主機2之邏輯位址之兩者寫入至寫入目標區塊。因此,GC動作控制部23可自該複製源區塊(GC源區塊)容易地獲得複製源區塊(GC源區塊)內之各資料之邏輯位址,所以可對主機2容易地通知被複製之有效資料之邏輯位址。NAND介面13係以於CPU12之控制下,控制NAND型快閃記憶體5之方式構成的記憶體控制電路。DRAM介面14係以於CPU12之控制下,控制DRAM6之方式構成之DRAM控制電路。DRAM6之記憶區域之一部分用於寫入緩衝區(WB)31之存儲。又,DRAM6之記憶區域之另一部分用於區塊管理表格32之存儲。再者,該等寫入緩衝區(WB)31及區塊管理表格32亦可存儲於控制器4內之未圖示之SRAM中。圖7表示快閃存儲裝置3所應用之寫入命令。寫入命令係對快閃存儲裝置3請求資料之寫入之命令。該寫入命令亦可包含命令ID(Identity,標識)、QoS域ID、邏輯位址、長度等。命令ID係表示該命令為寫入命令之ID(命令代碼),寫入命令中包含寫入命令用命令ID。QoS域ID係可唯一地識別應寫入資料之QoS域之標識符。根據來自某一終端用戶之寫入請求而自主機2發送之寫入命令亦可包含指定與該終端用戶相對應之QoS域之QoS域ID。名字空間ID亦可視為QoS域ID。邏輯位址係用於識別應寫入之寫入資料之標識符。如上所述,該邏輯位址既可為LBA,亦可為鍵值存儲之鍵。當邏輯位址為LBA時,該寫入命令所包含之邏輯位址(起始LBA)表示應被寫入寫入資料之邏輯位置(最初之邏輯位置)。長度表示應寫入之寫入資料之長度。該長度(資料長度)既可由粒度(Grain)之數量指定,亦可由LBA之數量指定,或者,其尺寸亦可由位元組指定。如上所述,控制器4可以使NAND型快閃記憶體5內之複數個區塊各者僅屬於一個組之方式將NAND型快閃記憶體5內之複數個區塊分類為複數個組(複數個QoS域)。然後,控制器4可針對每個組(QoS域)管理閒置區塊列表(閒置區塊池)與主動區塊列表(主動區塊池)。各區塊之狀態大致分為存儲有有效資料之主動區塊、與未存儲有效資料之閒置區塊。作為主動區塊之各區塊由主動區塊列表管理。另一方面,作為閒置區塊之各區塊由閒置區塊列表管理。當自主機2接收到寫入命令時,控制器4決定應被寫入來自主機2之資料之區塊(寫入目標區塊)及該寫入目標區塊內之位置(寫入目標位置)。控制器4亦可將屬於與QoS域ID相對應之QoS域之閒置區塊群中之一個決定為寫入目標區塊。寫入目標位置係考慮頁寫入順序之制約及不良頁等而決定。然後,控制器4將來自主機2之資料寫入至寫入目標區塊內之寫入目標位置。再者,若該寫入目標區塊整體已被用戶資料占滿,則控制器4將該寫入目標區塊移動至主動區塊列表(主動區塊池)。然後,控制器4自與該QoS域相對應之閒置區塊列表再次選擇閒置區塊,並將該所選擇之閒置區塊分配為新之寫入目標區塊。若當由閒置區塊列表所管理之剩餘閒置區塊之數量下降至以特定策略所決定之閾值以下時,或者自主機2指示實施垃圾回收時,控制器4亦可開始該QoS域之垃圾回收。於該QoS域之垃圾回收時,控制器4自與該QoS域相對應之主動區塊群中選擇複製源區塊(GC源區塊)與複製目標區塊(GC目的地區塊)。選擇哪個區塊作為GC候補(複製源區塊)既可按照由主機2所指定之上述策略決定,亦可由主機2指定。於亦基於策略決定之情形時,例如亦可選擇有效資料量最少之區塊作為GC候補(複製源區塊)。圖8表示對圖7之寫入命令之響應。該響應包含邏輯位址、實體位址、及長度。邏輯位址係圖7之寫入命令所包含之邏輯位址。實體位址表示根據圖7之寫入命令而被寫入資料之NAND型快閃記憶體5內之實體記憶位置。於本實施形態中,該實體位址並非由區塊編號與頁編號之組合指定,而如上所述般由區塊編號與偏移(區塊內偏移)之組合指定。區塊編號係可唯一地識別快閃存儲裝置3內之所有區塊中任意一個之標識符。於對所有區塊賦予有不同區塊編號之情形時,亦可直接使用該等區塊編號。或者,區塊編號亦可藉由晶粒編號與晶粒內區塊編號之組合而表現。長度表示應寫入之寫入資料之長度。該長度(資料長度)既可由粒度(Grain)之數量指定,亦可由LBA之數量指定,或者,其尺寸亦可由位元組指定。圖9表示快閃存儲裝置3所應用之Trim命令。該Trim命令係包含表示存儲有應設為無效之資料之實體記憶位置的區塊編號及區塊內偏移之命令。換言之,該Trim命令並非指定如LBA之邏輯位址,而可指定實體位址。該Trim命令包含命令ID、實體位址、及長度。命令ID係表示該命令為Trim命令之ID(命令代碼),Trim命令中包含Trim命令用命令ID。實體位址表示存儲有應無效化之資料之最初之實體記憶位置。於本實施形態中,該實體位址由區塊編號與偏移(區塊內偏移)之組合指定。長度表示應無效化之資料之長度。該長度(資料長度)亦可由粒度(Grain)之數量指定,亦可由位元組指定。控制器4使用區塊管理表格32而管理表示複數個區塊分別包含之資料各者之有效/無效之旗標(點陣圖旗標)。當自主機2接收到包含表示存儲有應設為無效之資料之實體記憶位置之區塊編號及偏移(區塊內偏移)之Trim命令時,控制器4更新區塊管理表格32,將與Trim命令所包含之區塊編號及區塊內偏移相對應之實體記憶位置之資料所對應之旗標(點陣圖旗標)變更為表示無效之值。圖10表示規定實體位址之區塊編號及偏移。區塊編號指定某一個區塊BLK。如圖10所示,各區塊BLK包含複數個頁(此處為頁0~頁n)。於頁尺寸(各頁之用戶資料儲存區域)為16 K位元組,且粒度(Grain)為4 KB之尺寸之實例中,該區塊BLK邏輯上被分割為4×(n+1)個區域。偏移+0表示頁0之最初4 KB區域,偏移+1表示頁0之第2個4 KB區域,偏移+2表示頁0之第3個4 KB區域,偏移+3表示頁0之第4個4 KB區域。偏移+4表示頁1之最初4 KB區域,偏移+5表示頁1之第2個4 KB區域,偏移+6表示頁1之第3個4 KB區域,偏移+7表示頁1之第4個4 KB區域。圖11表示根據寫入命令而執行之寫入動作與對該寫入命令之響應所包含之返回值之關係。快閃存儲裝置3之控制器4藉由閒置區塊列表而管理不包含有效資料之閒置區塊群,自該等閒置區塊群中選擇一個區塊(閒置區塊),將所選擇之區塊分配為寫入目標區塊。現在,假定將區塊BLK#1分配為寫入目標區塊之情況。控制器4以頁0、頁1、頁2、…頁n之順序將資料以頁為單位寫入區塊BLK#1。於圖11中,假定於已將16 K位元組資料寫入至區塊BLK#1之頁0之狀態下,自主機2接收到指定邏輯位址(LBAx)及長度(=4)之寫入命令之情況。控制器4將區塊BLK#1之頁1決定為寫入目標位置,將自主機2接收之16 K位元組寫入資料寫入至區塊BLK#1之頁1。然後,控制器4將對該寫入命令之響應(邏輯位址、區塊編號、偏移(區塊內偏移)、長度)回傳至主機2。於該實例中,邏輯位址為LBAx,區塊編號為BLK#1,偏移(區塊內偏移)為+5,長度為4。圖12表示跳過不良頁(bad page)之寫入動作。於圖12中,假定於已經對區塊BLK#1之頁0、頁1寫入資料之狀態下,自主機2接收到指定邏輯位址(LBAx+1)及長度(=4)之寫入命令之情況。若區塊BLK#1之頁2係不良頁,則控制器4將區塊BLK#1之頁3決定為寫入目標位置,將自主機2接收之16 K位元組寫入資料寫入至區塊BLK#1之頁3。然後,控制器4將對該寫入命令之響應(邏輯位址、區塊編號、偏移(區塊內偏移)、長度)回傳至主機2。於該實例中,邏輯位址為LBAx+1,區塊編號為BLK#1,偏移(區塊內偏移)為+12,長度為4。圖13表示跳過不良頁之寫入動作之另一例。於圖13中,假定跨隔著不良頁之2個頁寫入資料之情況。現在,假定已經對區塊BLK#2之頁0、頁1寫入資料,且在寫入緩衝區31殘留有未寫入之8 K位元組寫入資料的情況。於該狀態下,若接受到指定邏輯位址(LBAy)及長度(=6)之寫入命令,則控制器4使用未寫入之8 K位元組寫入資料、及自主機2新接收之24 K位元組寫入資料內之最初之8 K位元組寫入資料,準備與頁尺寸相對應之16 K位元組寫入資料。然後,控制器4將該準備好之16 K位元組寫入資料寫入至區塊BLK#2之頁2。若區塊BLK#2之下一個頁3係不良頁,則控制器4將區塊BLK#2之頁4決定為下一寫入目標位置,將自主機2接收到之24 K位元組寫入資料內之剩餘16 K位元組寫入資料寫入至區塊BLK#2之頁4。然後,控制器4將對該寫入命令之響應(邏輯位址、區塊編號、偏移(區塊內偏移)、長度)回傳至主機2。於該實例中,該響應亦可包含LBAy、區塊編號(=BLK#2)、偏移(=+10)、長度(=2)、區塊編號(=BLK#2)、偏移(=+16)、長度(=4)。圖14、圖15表示將邏輯位址與資料之配對寫入區塊內之頁之動作。於各區塊中,各頁亦可包含用於存儲用戶資料之用戶資料區域、及用於存儲管理資料之冗餘區域。頁尺寸為16 KB+α。控制器4將4 KB用戶資料及與該4 KB用戶資料相對應之邏輯位址(例如LBA)之兩者寫入至寫入目標區塊BLK。於該情形時,如圖14所示,亦可將各者包含LBA與4 KB用戶資料之4個資料集合寫入同一頁。區塊內偏移亦可表示集合邊界。或者,亦可如圖15所示,將4個4 KB用戶資料寫入至頁內之用戶資料區域,並將與該4個4 KB用戶資料相對應之4個LBA寫入該頁內之冗餘區域。圖16表示使用超級區塊之實例中之區塊編號與偏移(區塊內偏移)之關係。以下,亦將區塊內偏移簡稱為偏移。此處,為了簡化圖示,假定某一個超級區塊SB#1包含4個區塊BLK#11、BLK#21、BLK#31、BLK#41之情況。控制器4以區塊BLK#11之頁0、區塊BLK#21之頁0、區塊BLK#31之頁0、區塊BLK#41之頁0、區塊BLK#11之頁1、區塊BLK#21之頁1、區塊BLK#31之頁1、區塊BLK#41之頁1、…之順序寫入資料。偏移+0表示區塊BLK#11之頁0之最初4 KB區域,偏移+1表示區塊BLK#11之頁0之第2個4 KB區域,偏移+2表示區塊BLK#11之頁0之第3個4 KB區域,偏移+3表示區塊BLK#11之頁0之第4個4 KB區域。偏移+4表示區塊BLK#21之頁0之最初4 KB區域,偏移+5表示區塊BLK#21之頁0之第2個4 KB區域,偏移+6表示區塊BLK#21之頁0之第3個4 KB區域,偏移+7表示區塊BLK#21之頁0之第4個4 KB區域。同樣地,偏移+12表示區塊BLK#41之頁0之最初4 KB區域,偏移+13表示區塊BLK#41之頁0之第2個4 KB區域,偏移+14表示區塊BLK#41之頁0之第3個4 KB區域,偏移+15表示區塊BLK#41之頁0之第4個4 KB區域。偏移+16表示區塊BLK#11之頁1之最初4 KB區域,偏移+17表示區塊BLK#11之頁1之第2個4 KB區域,偏移+18表示區塊BLK#11之頁1之第3個4 KB區域,偏移+19表示區塊BLK#11之頁1之第4個4 KB區域。偏移+20表示區塊BLK#21之頁1之最初4 KB區域,偏移+21表示區塊BLK#21之頁1之第2個4 KB區域,偏移+22表示區塊BLK#21之頁1之第3個4 KB區域,偏移+23表示區塊BLK#21之頁1之第4個4 KB區域。同樣地,偏移+28表示區塊BLK#41之頁1之最初4 KB區域,偏移+29表示區塊BLK#41之頁1之第2個4 KB區域,偏移+30表示區塊BLK#41之頁1之第3個4 KB區域,偏移+31表示區塊BLK#41之頁1之第4個4 KB區域。例如,當將與指定某一LBA(LBAx)之寫入命令相對應之4 K位元組資料寫入至與偏移+8相對應之位置時,控制器4亦可將邏輯位址(=LBAx)、區塊編號(=SB#1)、偏移(=+8)、長度(=1)作為對該寫入命令之響應回傳至主機2。圖17表示藉由主機2與快閃存儲裝置3所執行之寫入動作處理之順序。主機2將包含QoS域ID、LBA、長度之寫入命令發送至快閃存儲裝置3。當快閃存儲裝置3之控制器4接收到該寫入命令時,控制器4決定應被寫入來自主機2之寫入資料之寫入目標區塊及該寫入目標區塊內之位置。更詳細而言,控制器4自閒置區塊列表選擇一個閒置區塊,將所選擇之閒置區塊分配為寫入目標區塊(步驟S12)。換言之,將該所選擇之閒置區塊及該所選擇之閒置區塊內之可利用之最初之頁決定為應被寫入來自主機2之寫入資料之寫入目標區塊及該寫入目標區塊內之位置。於已經分配寫入目標區塊之情形時,無需執行該步驟12中之寫入目標區塊分配處理。將已經分配之寫入目標區塊內之可利用之下一頁決定為應被寫入來自主機2之寫入資料之寫入目標區塊內之位置。控制器4亦可管理與複數個QoS域相對應之複數個閒置區塊列表。亦可於與某一QoS域相對應之閒置區塊列表中,僅註冊對該QoS域預約之區塊群。於該情形時,於步驟S12中,控制器4亦可選擇與由寫入命令之QoS域ID所指定之QoS域相對應之閒置區塊列表,自該所選擇之閒置區塊列表選擇一個閒置區塊,將該所選擇之閒置區塊分配為寫入目標區塊。藉此,可防止與不同QoS域相對應之資料混合存在於相同區塊。控制器4將自主機2接收之寫入資料寫入至寫入目標區塊(步驟S12)。於步驟S12中,控制器4將邏輯位址(此處為LBA)與寫入資料之兩者寫入至寫入目標區塊。控制器4更新區塊管理表格32,將與寫入之資料相對應之點陣圖旗標(即與寫入該資料之實體記憶位置之實體位址相對應之點陣圖旗標)自0變更為1(步驟S13)。例如,如圖18所示,假定將起始LBA為LBAx之16 K位元組更新資料寫入至與區塊BLK#1之偏移+4~+7相對應之實體記憶位置之情況。於該情形時,如圖19所示,於區塊BLK#1用區塊管理表格中,將與偏移+4~+7相對應之點陣圖旗標分別自0變更為1。控制器4將對該寫入命令之響應回傳至主機2(步驟S14)。例如,如圖18所示,若將起始LBA為LBAx之16 K位元組更新資料寫入至與區塊BLK#1之偏移+4~+7相對應之實體記憶位置,則將包含LBAx、區塊編號(=BLK1)、偏移(=+4)、長度(=4)之響應自控制器4發送至主機2。當主機2接收到該響應時,主機2更新由主機2所管理之LUT,將與被寫入之寫入資料相對應之邏輯位址分別映射至實體位址。如圖20所示,LUT包含與複數個邏輯位址(例如LBA)各者相對應之複數個條目。於與某一邏輯位址(例如某一LBA)相對應之條目中,存儲表示存儲有與該LBA相對應之資料之NAND型快閃記憶體5內之位置(實體記憶位置)之實體位址PBA、即區塊編號及偏移(區塊內偏移)。如圖18所示,若將起始LBA為LBAx之16 K位元組更新資料寫入至與區塊BLK#1之偏移+4~+7相對應之實體記憶位置,則如圖20所示,更新LUT,於與LBAx相對應之條目中存儲BLK#1、偏移+4,於與LBAx+1相對應之條目中存儲BLK#1、偏移+5,於與LBAx+2相對應之條目中存儲BLK#1、偏移+6,於與LBAx+3相對應之條目中存儲BLK#1、偏移+7。其後,主機2對快閃存儲裝置3發送用於使因上述更新資料之寫入而成為無用之過往資料無效化之Trim命令(步驟S21)。如圖18所示,當過往資料存儲於與區塊BLK#0之偏移+0、偏移+1、偏移+2、偏移+3相對應之位置時,如圖21所示,自主機2對快閃存儲裝置3發送指定區塊編號(=BLK#0)、偏移(=+0)、長度(=4)之Trim命令。快閃存儲裝置3之控制器4根據該Trim命令而更新區塊管理表格32(步驟S15)。於步驟S15中,如圖21所示,於區塊BLK#0用區塊管理表格中,將與偏移+0~+3相對應之點陣圖旗標分別自1變更為0。圖22表示快閃存儲裝置3所應用之讀取命令。讀取命令係對快閃存儲裝置3請求資料之讀出之命令。該讀取命令包含命令ID、實體位址PBA、長度、傳輸目標指示器。命令ID係表示該命令為讀取命令之ID(命令代碼),讀取命令中包含讀取命令用命令ID。實體位址PBA表示應被讀出資料之最初之實體記憶位置。實體位址PBA係由區塊編號、偏移(區塊內偏移)指定。長度表示應被讀取之資料之長度。該資料長度亦可由Grain之數量來指定。傳輸目標指示器表示應被傳輸所讀出之資料之主機2內之記憶體上之位置。一個讀取命令可指定複數個實體位址PBA(區塊編號、偏移)與長度之組。圖23表示讀取動作。此處,假定自主機2接收到指定區塊編號(=BLK#2)、偏移(=+5)、長度(=3)之讀取命令之情況。快閃存儲裝置4之控制器5基於區塊編號(=BLK#2)、偏移(=+5)、長度(=3)自BLK#2讀取資料d1~d3。於該情形時,控制器4自BLK#2之頁1讀取1頁尺寸之資料,並自該讀取資料提取資料d1~資料d3。繼而,控制器4將資料d1~資料d3傳輸至由傳輸目標指示器所指定之主機記憶體上。圖24表示根據來自主機2之讀取命令,讀取不同實體記憶位置分別存儲之資料部之動作。此處,假定自主機2接收到指定區塊編號(=BLK#2)、偏移(=+10)、長度(=2)、區塊編號(=BLK#2)、偏移(=+16)、長度(=4)之讀取命令之情況。快閃存儲裝置4之控制器5基於區塊編號(=BLK#2)、偏移(=+10)、長度(=2),自BLK#2之頁2讀取1頁尺寸之資料,並自該讀取資料提取資料d1~資料d2。繼而,控制器5基於區塊編號(=BLK#2)、偏移(=+16)、長度(=4),自BLK#2之頁4讀取1頁尺寸之資料(資料d3~資料d4)。然後,控制器5將藉由結合資料d1~資料d2與資料d3~資料d4所獲得之長度(=6)之讀取資料傳輸至由讀取命令內之傳輸目標指示器所指定之主機記憶體上。藉此,即便於區塊內存在不良頁之情形時,亦不會發生讀取錯誤,而可自個別之實體記憶位置讀取資料部。又,即便於資料係跨2個區塊被寫入之情形時,亦可藉由發出一個讀取命令而讀取該資料。圖25表示藉由主機2與快閃存儲裝置3所執行之讀取處理之順序。主機2參照由主機2所管理之LUT,將來自用戶應用程式之讀取請求所包含之邏輯位址轉換為區塊編號、偏移。然後,主機2將指定該區塊編號、偏移、長度之讀取命令發送至快閃存儲裝置3。當快閃存儲裝置3之控制器4自主機2接收到讀取命令時,控制器4將與由該讀取命令所指定之區塊編號對應之區塊決定為讀取對象之區塊,並且基於由該讀取命令所指定之偏移而決定讀取對象之頁(步驟S31)。於步驟S31中,控制器4可首先將由讀取命令所指定之偏移除以表示頁尺寸之粒度之數(此處為4)。然後,控制器4可將由該除法所得之商及餘數分別決定為讀取對象之頁編號及讀取對象之頁內偏移位置。控制器4自NAND型快閃記憶體5讀取由區塊編號、偏移、長度所規定之資料(步驟S32),將該讀取資料發送至主機2。圖26表示應用於快閃存儲裝置3之GC控制命令。GC控制命令亦可包含命令ID、策略、源QoS域ID、目的地QoS域ID等。命令ID係表示該命令為GC控制命令之ID(命令代碼),GC控制命令中包含GC控制命令用命令ID。策略係指定用於選擇GC候補區塊(GC源區塊)之條件(GC策略)之參數。快閃存儲裝置3之控制器4支援複數種GC策略。由控制器4支援之GC策略中,亦可包含優先選擇有效資料量較少之區塊作為GC候補區塊(GC源區塊)之策略(Greedy,貪婪法)。又,由控制器4支援之GC策略中,亦可包含如下策略:較具有較高更新頻率之資料(熱資料)集中之區塊更為優先選擇具有較低更新頻率之資料(冷資料)集中之區塊作為GC候補區塊(GC源區塊)。進而,GC策略亦可指定GC開始條件。GC開始條件例如亦可表示剩餘閒置區塊之個數。控制器4藉由主動區塊列表而管理包含有效資料之區塊群,於執行GC之情形時,基於由GC控制命令所指定之GC策略,自藉由主動區塊列表所管理之區塊群中選擇一個以上GC候補區塊(GC源區塊)。源QoS域ID係指定應將哪個QoS域設為GC源之參數。控制器4自屬於由源QoS域ID所指定之QoS域之區塊群、即與該QoS域相對應之主動區塊列表,選擇一個以上GC候補區塊(GC源區塊)。目的地QoS域ID係指定應將哪個QoS域設為GC目的地之參數。控制器4亦可選擇屬於由目的地QoS域ID所指定之QoS域之閒置區塊群內之一個以上閒置區塊作為GC目的地區塊。源QoS域ID及目的地QoS域ID可指定相同QoS域,亦可指定互不相同之QoS域。換言之,源QoS域ID及目的地QoS域ID各者係指定複數個QoS域之任意一個之參數。控制器4亦可於與源QoS域相對應之剩餘閒置區塊之數量成為由策略所指定之閾值以下之情形時,開始GC。若接收到包含指定強制執行GC之策略之GC控制命令,則控制器4亦可於自主機2接收到該GC控制命令時立刻開始GC。圖27表示GC用回調命令。GC用回調命令用於對主機2通知藉由GC所複製之有效資料之邏輯位址、及表示該有效資料之複製目標位置之區塊編號及偏移。GC用回調命令亦可包含命令ID、邏輯位址、長度、目的地實體位址、源實體位址(可選)。命令ID係表示該命令為GC用回調命令之ID(命令代碼),GC用回調命令中包含GC用回調命令用命令ID。邏輯位址表示藉由GC而自GC源區塊複製至GC目的地區塊之有效資料之邏輯位址。長度表示該被複製之資料之長度。該資料長度亦可由粒度(Grain)之數量來指定。目的地實體位址表示被複製了有效資料之GC目的地區塊內之位置。目的地實體位址係由區塊編號、偏移(區塊內偏移)來指定。源實體位址(可選)表示曾存儲有效資料之GC源區塊內之位置。源實體位址係由區塊編號、偏移(區塊內偏移)來指定。圖28表示垃圾回收(GC)動作之程序。快閃存儲裝置3之控制器4基於由主機2所指定之策略,自屬於由源QoS域ID所指定之QoS域之區塊群,選擇有效資料與無效資料混合存在之一個以上之GC源區塊(複製源區塊)(步驟S41)。繼而,控制器4自屬於由目的地QoS域ID所指定之QoS域之閒置區塊群中選擇一個以上之閒置區塊,將所選擇之閒置區塊分配為GC目的地區塊(複製目標區塊)(步驟S42)。控制器4將GC源區塊(複製源區塊)內之所有有效資料複製至GC目的地區塊(複製目標區塊)(步驟S44)。於步驟S44中,控制器4不僅複製GC源區塊(複製源區塊)內之有效資料,而將該有效資料及與該有效資料相對應之邏輯位址之兩者自GC源區塊(複製源區塊)複製至GC目的地區塊(複製目標區塊)。藉此,可於GC目的地區塊(複製目標區塊)內保持資料與邏輯位址之配對。然後,控制器4使用GC用回調命令,對主機2通知被複製之有效資料之邏輯位址、及表示被複製了該有效資料之GC目的地區塊(複製目標區塊)內之位置之目的地實體位址(區塊編號、偏移(區塊內偏移))(步驟S44)。再者,於步驟S44中,控制器4亦可不僅通知被複製之有效資料之邏輯位址及目的地實體位址,還對主機2通知源實體位址。當主機2接收到該GC用回調命令時,主機2更新由主機2所管理之LUT,將與被複製之有效資料相對應之邏輯位址分別映射至目的地實體位址(步驟S51)。圖29表示為了進行GC而執行之資料複製動作之示例。於圖29中,假定如下情況:將與GC源區塊(此處為區塊BLK#50)之偏移+4相對應之位置所存儲之有效資料(LBA=10)複製至與GC目的地區塊(此處為區塊BLK#100)之偏移+0相對應之位置,且將與GC源區塊(此處為區塊BLK#50)之偏移+10相對應之位置所存儲之有效資料(LBA=20)複製至與GC目的地區塊(此處為區塊BLK#100)之偏移+1相對應之位置。於該情形時,控制器4對主機通知{LBA10、BLK#100、偏移(=+0)、LBA20、BLK#100、偏移(=+1)}(GC用回調處理)。圖30表示基於圖29之資料複製動作之結果而更新之主機2之LUT之內容。於該LUT中,與LBA10相對應之區塊編號及偏移自BLK#50、偏移(=+4)更新為BLK#100、偏移(=+0)。同樣地,與LBA20相對應之區塊編號及偏移自BLK#50、偏移(=+10)更新為BLK#100、偏移(=+1)。LUT更新後,主機2亦可對快閃存儲裝置3發送指定BLK#50及偏移(=+4)之Trim命令,將與BLK#50之偏移(=+4)相對應之位置所存儲之資料無效化。進而,主機2亦可對快閃存儲裝置3發送指定BLK#50及偏移(=+10)之Trim命令,將與BLK#50之偏移(=+10)相對應之位置所存儲之資料無效化。圖31表示對寫入命令之響應與GC用回調處理之關係。有時,會發生於控制器4複製與某一邏輯位址相對應之有效資料期間,自主機2接收到指定該邏輯位址之寫入命令之狀況。於圖31中,假定於執行圖29之資料複製動作(與LBA10相對應之資料複製動作)中,自主機2接收到指定LBA10之寫入命令之情況。控制器4將自主機2接收之寫入資料寫入至寫入目標區塊(此處為寫入與BLK#3之偏移+0相對應之位置)。然後,控制器4對主機2通知{LBA10、BLK#3、偏移(=+0)}。主機2更新LUT,將與LBA10相對應之區塊編號及偏移自BLK#50、偏移(+4)變更為BLK#3、偏移(+0)。若之後自控制器4對主機2通知LBA10之目的地實體位址,則表示與LBA10相對應之存儲有最新資料之位置之區塊編號及偏移(BLK#3、偏移(+0))可能會被錯誤地變更為與LBA10相對應之目的地實體位址(此處為BLK#100、偏移(=+0))。於本實施形態中,控制器4亦可不僅對主機2通知LBA10及目的地實體位址(BLK#100、偏移(=+0)),還通知源實體位址(BLK#50、偏移(=+4))。主機2當源實體位址(BLK#50、偏移(=+4))與根據LUT而當前映射至LBA10之區塊編號、偏移不一致時,不更新LUT。藉此,可防止表示存儲有與LBA10相對應之最新資料之位置之區塊編號及偏移(BLK#3、偏移(+0))被錯誤地變更為與LBA10相對應之目的地實體位址(此處為BLK#100、偏移(=+0))。圖32表示GC控制命令之另一例。該圖32之GC控制命令亦可指定源裝置ID與源QoS域ID之配對而代替源QoS域ID。進而,該圖32之GC控制命令亦可指定目的地裝置ID與目的地QoS域ID之配對而代替目的地QoS域ID。藉此,可使某一快閃存儲裝置3作為GC源而進行動作,並使另一快閃存儲裝置3作為GC目的地而進行動作。於源裝置ID與目的地裝置ID相同之情形時,於一個快閃存儲裝置3內執行GC。圖33表示與圖32之GC控制命令相對應之GC用回調命令之示例。圖33之GC用回調命令包含目的地裝置ID與目的地實體位址之配對而代替目的地實體位址。又,圖33之GC用回調命令亦可包含源裝置ID與源實體位址之配對(可選)而代替源實體位址(可選)。現在,設想使裝置ID為1之快閃存儲裝置3作為GC源而進行動作,且使裝置ID為2之快閃存儲裝置3作為GC目的地而進行動作的情況。主機2亦可將指定源裝置ID#1及目的地裝置ID#2之GC控制命令發送至裝置ID#1之快閃存儲裝置3及裝置ID#2之快閃存儲裝置3。裝置ID#1之快閃存儲裝置3自屬於由源QoS域ID所指定之QoS域之區塊群中選擇GC源區塊,向由目的地裝置ID所指定之快閃存儲裝置(裝置ID#2之快閃存儲裝置)發送GC源區塊內之有效資料與該有效資料之邏輯位址。GC源區塊內之有效資料與該有效資料之邏輯位址例如係經由圖3之開關1而自裝置ID#1之快閃存儲裝置3傳輸至裝置ID#2之快閃存儲裝置3。裝置ID#2之快閃存儲裝置3自屬於由目的地QoS域ID所指定之QoS域之閒置區塊群中選擇GC目的地區塊,將經由開關1而接收之有效資料及邏輯位址寫入(複製)至GC目的地區塊。裝置ID#2之快閃存儲裝置3藉由GC用回調命令而對主機2通知被複製之有效資料之邏輯位址、及被複製了該有效資料之目的地實體位址(區塊編號、偏移)。裝置ID#1之快閃存儲裝置3藉由GC用回調命令而對主機2通知被複製之有效資料之邏輯位址、及曾存儲該有效資料之源實體位址(區塊編號、偏移)。圖34表示寫入/讀取/GC動作。首先,對寫入來自主機2之資料之主機寫入動作進行說明。(1)控制器4自主機2接收LBA及寫入資料。(2)控制器4將LBA與寫入資料之兩者寫入至寫入目標區塊。於未分配寫入目標區塊之情形時,控制器4自閒置區塊列表選擇一個閒置區塊,將該所選擇之閒置區塊分配為新寫入目標區塊。然後,控制器4將LBA與寫入資料之兩者寫入該新寫入目標區塊。(3)控制器4對主機2通知該LBA、及表示被寫入該寫入資料之寫入目標區塊內之位置之實體位址PBA。該實體位址PBA係由區塊編號及偏移表示。當寫入目標區塊整體被資料占滿時,控制器4將該寫入目標區塊註冊至主動區塊列表。其次,對讀取動作進行說明。(4)主機2參照由主機2管理之LUT,將來自用戶應用程式之讀取請求所包含之LBA轉換為讀取用實體位址PBA(區塊編號、偏移)。(5)基於自主機2接收之讀取用實體位址PBA(區塊編號、偏移),控制器4將具有該區塊編號之區塊決定為讀取對象之區塊。讀取對象之區塊為由主動區塊列表所管理之區塊群(主動區塊)中之任一個、或當前之GC源區塊、或當前之寫入目標區塊。然後,控制器4基於偏移而自讀取對象之區塊讀取資料。其次,對GC動作進行說明。(6)控制器4選擇GC源區塊(複製源區塊)及GC目的地區塊(複製目標區塊),將GC源區塊內所存儲之有效資料與該有效資料之LBA之兩者複製至GC目的地區塊。(7)控制器4對主機2通知被複製之有效資料之LBA、及表示被複製了該有效資料之GC目的地區塊內之位置之PBA(區塊編號、偏移)之兩者。或者,控制器4亦可對主機2通知被複製之有效資料之LBA、表示被複製了該有效資料之GC目的地區塊內之位置之PBA(區塊編號、偏移)、及表示曾存儲該有效資料之GC源區塊內之位置之PBA(區塊編號、偏移)。圖35表示用於管理參照計數之區塊管理表格之構成例。主機2支援重複資料刪除功能。因此,當與由用戶應用程式請求寫入之資料一致之重複資料已經存在於快閃存儲裝置3(NAND型快閃記憶體5)中時,主機2不將該資料寫入至快閃存儲裝置3,而僅將指代存儲有該資料之位置(區塊編號、偏移)之指示器與被請求寫入之資料之LBA建立關聯。因此,快閃存儲裝置3(NAND型快閃記憶體5)中所存儲之各4 K位元組資料可能不僅被一個邏輯位址參照,而且被複數個邏輯位址參照。於本實施形態中,快閃存儲裝置3具有針對每4 K位元組資料管理參照計數之功能。此處,與某一資料相對應之參照計數表示參照了該資料之邏輯位址之數量。於圖35中,例示了區塊BLK#1用區塊管理表格。區塊BLK#1用區塊管理表格包含與區塊BLK#1之複數個偏移值各者相對應之複數個條目。例如,於與偏移+0相對應之條目中,存儲與區塊BLK#1之偏移+0相對應之位置所存儲之4 KB資料所對應之參照計數。同樣地,於與偏移+1相對應之條目中,存儲與區塊BLK#1之偏移+1相對應之位置所存儲之4 KB資料所對應之參照計數。參照計數為1以上之資料為有效資料,參照計數為0之資料為無效資料。快閃存儲裝置3基於自主機2接收之重複命令/Ttim命令,而使參照計數增加/減少。圖36表示為了管理參照計數而應用於快閃存儲裝置3之重複命令。重複命令係對快閃存儲裝置3請求將某一實體位址(區塊編號、偏移)中所存儲之資料之參照計數增加1之命令。該重複命令亦可包含命令ID、實體位址PBA、及長度等。命令ID係表示該命令為重複命令之ID(命令代碼),重複命令中包含重複命令用命令ID。實體位址PBA表示存儲有應使參照計數增加1之資料之最初之實體記憶位置。實體位址PBA係由區塊編號、偏移(區塊內偏移)來指定。長度表示應使參照計數增加1之資料之長度。該資料長度可由粒度(Grain)之數量來指定。控制器4當自主機2接收到包含表示存儲有應使參照計數增加之資料之實體記憶位置之區塊編號及區塊內偏移之重複命令時,更新區塊管理表格32,使與重複命令所包含之區塊編號及區塊內偏移相對應之實體記憶位置之資料所對應之參照計數增加1。圖37表示為了管理參照計數而應用於快閃存儲裝置3之Trim命令。該Trim命令為對快閃存儲裝置3請求使某一實體位址(區塊編號、偏移)中所存儲之資料之參照計數減少1之命令。該Trim命令亦可包含命令ID、實體位址PBA、及長度等。命令ID係表示該命令為Trim命令之ID(命令代碼),Trim命令中包含Trim命令用命令ID。實體位址PBA表示存儲有應使參照計數減少1之資料之最初之實體記憶位置。實體位址PBA係由區塊編號、偏移(區塊內偏移)來指定。長度表示應使參照計數減少1之資料之長度。該資料長度可由粒度(Grain)之數量來指定。控制器4當自主機2接收到包含表示存儲有應使參照計數減少之資料之實體記憶位置之區塊編號及區塊內偏移之Trim命令時,更新區塊管理表格32,使與Trim命令所包含之區塊編號及區塊內偏移相對應之實體記憶位置之資料所對應之參照計數減少1。圖38表示參照計數增加/減少處理。當快閃存儲裝置3之控制器4自主機2接收到重複命令時,控制器4使與由重複命令所指定之實體位址PBA(區塊編號、偏移)相對應之參照計數、即與由該區塊編號及偏移所指定之NAND型快閃記憶體5內之實體記憶位置所存儲之資料相對應之參照計數增加1(步驟S61)。於該情形時,控制器4更新與具有由重複命令所指定之區塊編號之區塊相對應之區塊管理表格32。於該區塊管理表格32之更新中,使與由重複命令所指定之偏移相對應之區塊管理表格32內之條目中所存儲之參照計數增加1。於由重複命令所指定之長度為2以上之情形時,不僅使與由重複命令所指定之偏移相對應之參照計數增加1,亦使與該偏移後續之若干個偏移相對應之參照計數增加1。於快閃存儲裝置3之控制器4自主機2接收到Trim命令時,控制器4使與由Trim命令所指定之實體位址PBA(區塊編號、偏移)相對應之參照計數、即與由該區塊編號及偏移所指定之NAND型快閃記憶體5內之實體記憶位置所存儲之資料相對應之參照計數減少1(步驟S62)。於該情形時,控制器4更新與具有由Trim命令所指定之區塊編號之區塊相對應之區塊管理表格32。於該區塊管理表格32之更新中,使與由Trim命令所指定之偏移相對應之區塊管理表格32內之條目中所存儲之參照計數減少1。於由Trim命令所指定之長度為2以上之情形時,不僅使與由Trim命令所指定之偏移相對應之參照計數減少1,亦使與該偏移後續之若干個偏移相對應之參照計數減少1。於GC中,控制器4參照與GC源區塊相對應之區塊管理表格,以尺寸為4 KB之資料為單位,判定GC源區塊內之資料為有效資料或無效資料。控制器4判定參照計數為0之資料為無效資料,且判定參照計數為1以上之資料為有效資料。然後,控制器4將有效資料(參照計數為1以上之資料)及與該有效資料相對應之邏輯位址自GC源區塊複製至GC目的地區塊。更詳細而言,控制器4於執行NAND型快閃記憶體5之垃圾回收之情形時,選擇用於垃圾回收之複製源區塊及複製目標區塊。控制器4將複製源區塊內所存儲之參照計數為1以上之第1資料(有效資料)與第1資料之邏輯位址之兩者複製至複製目標區塊。然後,控制器4對主機2通知第1資料之邏輯位址、複製目標區塊之區塊編號、及以粒度之倍數表示被複製了第1資料之相對於複製目標區塊開頭之偏移位置之區塊內偏移。如以上說明,根據本實施形態,並非由主機2而由快閃存儲裝置3來決定應被寫入來自主機2之資料(用戶資料)之寫入目標區塊及該寫入目標區塊內之位置(寫入目標位置)。快閃存儲裝置3將用戶資料寫入至寫入目標區塊內之寫入目標位置,然後,對主機2通知寫入目標區塊之區塊編號及區塊內偏移,該區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數來表示寫入目標區塊之開頭至寫入目標位置之偏移。藉此,主機2無需在意區塊尺寸、頁寫入順序制約、不良頁、頁尺寸等便可將用戶資料寫入至NAND型快閃記憶體5,進而,可將由區塊編號及區塊內偏移所表示之實體位址(抽象化之實體位址)映射至該用戶資料之邏輯位址。如此,快閃存儲裝置3可藉由決定寫入目標區塊及該寫入目標區塊內之位置,且將區塊編號與區塊內偏移回傳至主機2的此種構成,而實現上位階層(主機2)之應用程式級位址轉換表格與先前型SSD之LUT級位址轉換表格之合併,而且,快閃存儲裝置3可考慮NAND型快閃記憶體5之特徵/制約來控制NAND型快閃記憶體5。因此,可實現主機2與快閃存儲裝置3之間適當之作用分配,藉此,可實現包含主機2與快閃存儲裝置3之系統整體之I/O性能之提昇。又,根據本實施形態,並非由管理位址轉換表格之主機2而係由快閃存儲裝置3選擇用於垃圾回收之複製源區塊及複製目標區塊,並將複製源區塊內所存儲之有效資料複製至複製目標區塊。然後,快閃存儲裝置3對主機2通知被複製之有效資料之邏輯位址、複製目標區塊之區塊編號、及表示被複製了有效資料之複製目標區塊內之位置之區塊內偏移。如此,藉由快閃存儲裝置3而執行垃圾回收,並且自快閃存儲裝置3對主機2通知邏輯位址、區塊編號、及區塊內偏移,因此主機2可使用位址轉換表格(LUT)而正確地管理邏輯位址各者與NAND型快閃記憶體5之實體位址(即區塊編號與區塊內偏移之配對)各者之間之映射。又,可將應用程式級GC與快閃存儲裝置3之GC合併,因此可大幅降低寫入放大。再者,快閃存儲裝置3亦可用作設置於記憶體陣列內之複數個快閃存儲裝置3之一個。記憶體陣列亦可經由纜線或網路而連接於如伺服器計算機之資訊處理裝置。記憶體陣列包含控制該記憶體陣列內之複數個快閃存儲裝置3之控制器。於將快閃存儲裝置3應用於記憶體陣列之情形時,亦可使該記憶體陣列之控制器作為快閃存儲裝置3之主機2而發揮功能。又,於本實施形態中,例示了NAND型快閃記憶體作為非揮發性記憶體。然而,本實施形態之功能亦可應用於例如MRAM(Magnetoresistive Random Access Memory,磁阻式隨機存取記憶體)、PRAM(Phase change Random Access Memory,相變隨機存取記憶體),ReRAM(Resistive Random Access Memory,可變電阻式隨機存取記憶體)、或FeRAM(Ferroelectric Random Access Memory,鐵電隨機存取記憶體)這樣之其他各種非揮發性記憶體。對本發明之若干個實施形態進行了說明,但該等實施形態係作為例而提出者,並非意在限定發明之範圍。該等新穎之實施形態能夠以其他各種形態實施,且可於不脫離發明之主旨之範圍內進行各種省略、置換、變更。該等實施形態及其變化包含於發明之範圍或主旨內,並且包含於申請專利範圍所記載之發明及其均等之範圍內。[相關申請案]本申請案享有以日本專利申請案2017-181425號(申請日:2017年9月21日)作為基礎申請案之優先權。本申請案藉由參照該基礎申請案而包含基礎申請案之所有內容。
2‧‧‧主機
2A‧‧‧主機
2B‧‧‧管理器
3‧‧‧快閃存儲裝置
4‧‧‧控制器
5‧‧‧NAND型快閃記憶體
6‧‧‧DRAM
10‧‧‧匯流排
11‧‧‧主機介面
12‧‧‧CPU
13‧‧‧NAND介面
14‧‧‧DRAM介面
21‧‧‧寫入動作控制部
22‧‧‧讀取動作控制部
23‧‧‧GC動作控制部
31‧‧‧寫入緩衝區
32‧‧‧區塊管理表格
50‧‧‧介面
51‧‧‧網路
61‧‧‧終端用戶終端
101‧‧‧虛擬機器服務
102‧‧‧用戶應用程式
103‧‧‧虛擬磁碟服務
104‧‧‧應用程式級GC
200‧‧‧I/O隊列
301‧‧‧寫入緩衝區
302‧‧‧查找表格
303‧‧‧垃圾回收功能
304‧‧‧NAND型快閃記憶體(NAND快閃陣列)
401‧‧‧虛擬機器服務
402‧‧‧用戶應用程式
403‧‧‧I/O服務
500‧‧‧I/O隊列
601‧‧‧寫入緩衝區
602‧‧‧垃圾回收功能
603‧‧‧NAND型快閃記憶體(NAND快閃陣列)
BLK~BLKm‧‧‧區塊
Ch1~Ch16‧‧‧通道
P~Pn‧‧‧頁
SB‧‧‧超級區塊
圖1係表示主機與實施形態之記憶體系統(快閃存儲裝置)之關係之方塊圖。圖2係用於對先前型SSD與主機之間之作用分配、及該實施形態之快閃存儲裝置與主機之間之作用分配進行說明之圖。圖3係表示經由網路機器而執行複數個主機與複數個快閃存儲裝置之間之資料傳輸之計算機系統之構成例的方塊圖。圖4係表示該實施形態之記憶體系統之構成例之方塊圖。圖5係表示設置於該實施形態之記憶體系統之NAND介面與複數個NAND型快閃記憶體晶粒之關係之方塊圖。圖6係表示藉由複數個區塊之集合所構築之超級區塊之構成例之圖。圖7係用於對該實施形態之記憶體系統所應用之寫入命令進行說明之圖。圖8係用於對針對圖7之寫入命令之響應進行說明之圖。圖9係用於對該實施形態之記憶體系統所應用之Trim(修整)命令進行說明之圖。圖10係用於對圖8之響應所包含之規定實體位址之區塊編號及偏移進行說明之圖。圖11係用於對根據寫入命令執行之寫入動作與對該寫入命令之響應所包含之返回值之關係進行說明的圖。圖12係用於對跳過不良頁之寫入動作進行說明之圖。圖13係用於對跳過不良頁之寫入動作之另一例進行說明之圖。圖14係用於對將邏輯位址與資料之配對寫入區塊內之頁之動作進行說明的圖。圖15係用於對將資料寫入至區塊內之頁之用戶資料區域,並將該資料之邏輯位址寫入至該頁之冗餘區域之動作進行說明之圖。圖16係用於對使用超級區塊時之區塊編號與偏移之關係進行說明之圖。圖17係表示藉由主機與該實施形態之記憶體系統所執行之寫入動作處理之順序之順序圖。圖18係表示寫入針對已寫入資料之更新資料之資料更新動作之圖。圖19係用於對更新藉由該實施形態之記憶體系統所管理之區塊管理表格之動作進行說明之圖。圖20係用於對更新藉由主機所管理之查找表格(邏輯實體位址轉換表格)之動作進行說明之圖。圖21係用於對根據表示與應無效化之資料相對應之實體位址之來自主機之通知而更新區塊管理表格的動作進行說明之圖。圖22係用於對該實施形態之記憶體系統所應用之讀取命令進行說明之圖。圖23係用於對藉由該實施形態之記憶體系統所執行之讀取動作進行說明之圖。圖24係用於對根據來自主機之讀取命令,讀取不同實體記憶位置分別存儲之資料部之動作進行說明之圖。圖25係表示藉由主機與該實施形態之記憶體系統所執行之讀取處理之順序之順序圖。圖26係用於對該實施形態之記憶體系統所應用之垃圾回收(GC)控制命令進行說明之圖。圖27係用於對該實施形態之記憶體系統所應用之GC用回調命令進行說明之圖。圖28係表示藉由該實施形態之記憶體系統所執行之垃圾回收(GC)動作之程式之順序圖。圖29係用於對為了進行垃圾回收(GC)而執行之資料複製動作之例進行說明的圖。圖30係用於對基於圖29之資料複製動作之結果而更新之主機之查找表格之內容進行說明的圖。圖31係用於對針對寫入命令之響應與GC用回調處理之關係進行說明之圖。圖32係用於對該實施形態之記憶體系統所應用之垃圾回收(GC)控制命令之另一例進行說明之圖。圖33係用於對該實施形態之記憶體系統所應用之GC用回調命令之另一例進行說明之圖。圖34係用於對藉由該實施形態之記憶體系統所執行之寫入/讀取/GC動作進行說明之圖。圖35係表示用於管理參照計數之區塊管理表格之構成例之圖。圖36係用於對該實施形態之記憶體系統所應用之重複命令進行說明之圖。圖37係用於對使參照計數減少1之Trim命令進行說明之圖。圖38係表示藉由主機與該實施形態之記憶體系統所執行之參照計數增加/減少處理之順序圖。
Claims (12)
- 一種記憶體系統,其係可連接於主機者,且具備:非揮發性記憶體,其包含各自包含複數個頁之複數個區塊;及控制器,其電性連接於上述非揮發性記憶體,且控制上述非揮發性記憶體;上述控制器構成為:當自上述主機接收到指定第1邏輯位址之寫入請求時,執行如下動作:決定應寫入來自上述主機之資料之第1區塊與上述第1區塊之第1位置兩者,將來自上述主機之資料寫入至上述第1區塊之上述第1位置,且對上述主機通知上述第1邏輯位址、指定上述第1區塊之第1區塊編號、及第1區塊內偏移,上述第1區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數表示上述第1區塊之開頭至上述第1位置之偏移;且當執行上述非揮發性記憶體之垃圾回收時,執行如下動作:自上述複數個區塊中選擇用於上述垃圾回收之複製源區塊及複製目標區塊,決定應寫入上述複製源區塊內所存儲之有效資料之上述複製目標區塊之第2位置,將上述有效資料複製至上述複製目標區塊之上述第2位置,且對上述主機通知上述有效資料之邏輯位址、指定上述複製目標區塊之第2區塊編號、及第2區塊內偏移,上述第2區塊內偏移係以上述粒度之倍數表示上述複製目標區塊之開頭至上述第2位置之偏移。
- 如請求項1之記憶體系統,其中上述控制器構成為:當自上述主機接收到指定上述第1區塊編號及上述第1區塊內偏移之讀取請求時,基於上述第1區塊內偏移而自上述第1區塊讀取資料。
- 如請求項1之記憶體系統,其中上述控制器構成為:當自上述主機接收到上述寫入請求時,將上述第1邏輯位址與來自上述主機之資料一併寫入至上述第1區塊,且當執行上述非揮發性記憶體之垃圾回收時,將各自存儲於上述複製源區塊之上述有效資料與上述有效資料之邏輯位址兩者複製至上述複製目標區塊。
- 如請求項1之記憶體系統,其中上述控制器構成為:當執行上述非揮發性記憶體之垃圾回收時,自上述複數個區塊中選擇上述複製源區塊及上述複製目標區塊,將上述複製源區塊內所存儲之有效資料複製至上述複製目標區塊之上述第2位置,且對上述主機通知上述有效資料之上述邏輯位址、指定上述複製目標區塊之上述第2區塊編號、上述第2區塊內偏移、指定上述複製源區塊之第3區塊編號、及第3區塊內偏移,上述第3區塊內偏移係以上述粒度之倍數表示上述複製源區塊之開頭至存儲有上述有效資料之上述複製源區塊內之第3位置之偏移。
- 如請求項1之記憶體系統,其中上述控制器構成為:以使上述複數個區塊各者僅屬於一個組之方式將上述複數個區塊分類為複數個組,且當上述寫入請求指定上述複數個組之第1組時,將屬於上述第1組之區塊中之一個決定為上述第1區塊。
- 如請求項1之記憶體系統,其中上述控制器構成為:以使上述複數個區塊各者僅屬於一個組之方式將上述複數個區塊分類為複數個組,且當自上述主機接收到指定各自為上述複數個組中之任意一個組之複製源組及複製目標組之控制命令時,自屬於上述指定之複製源組之區塊群中選擇複製源區塊,且自屬於上述指定之複製目標組之區塊群中選擇複製目標區塊。
- 如請求項1之記憶體系統,其中上述控制器構成為:使用第1管理表格而管理表示上述複數個區塊各者中包含之資料各者之有效/無效的旗標,且當自上述主機接收到包含表示存儲有應設為無效之資料之實體記憶位置之區塊編號及區塊內偏移之配對的第1命令時,更新上述第1管理表格,將與上述第1命令中包含之區塊編號及區塊內偏移對應之實體記憶位置之資料所對應之旗標變更為表示無效之值。
- 如請求項1之記憶體系統,其中上述控制器構成為:使用第1管理表格而管理參照計數,上述參照計數係上述複數個區塊各者中包含之資料各者之參照計數,且表示所參照的對應資料之邏輯位址之數,當自上述主機接收到包含表示存儲有應將參照計數減少之資料之實體記憶位置之區塊編號及區塊內偏移之配對的第1命令時,更新上述第1管理表格,將與上述第1命令中包含之區塊編號及區塊內偏移對應之實體記憶位置之資料所對應之參照計數減1,且當自上述主機接收到包含表示存儲有應將參照計數增加之資料之實體記憶位置之區塊編號及區塊內偏移之配對的第2命令時,更新上述第1管理表格,將與上述第2命令中包含之區塊編號及區塊內偏移對應之實體記憶位置之資料所對應之參照計數增加1。
- 如請求項8之記憶體系統,其中上述控制器構成為:將參照計數為1以上之第1資料自上述複製源區塊複製至上述複製目標區塊。
- 一種記憶體系統,其係可連接於主機者,且具備:非揮發性記憶體,其包含各自包含複數個頁之複數個區塊;及控制器,其電性連接於上述非揮發性記憶體,且控制上述非揮發性記憶體;上述控制器構成為:以使上述複數個區塊各者僅屬於一個組之方式將上述複數個區塊分類為複數個組,當自上述主機接收到指定第1邏輯位址及上述複數個組內之第1組之寫入請求時,執行如下動作:自屬於上述第1組之區塊群中,決定應寫入來自上述主機之資料之第1區塊,且決定應寫入來自上述主機之資料之上述第1區塊之第1位置,將來自上述主機之資料寫入至上述第1區塊之上述第1位置,且對上述主機通知上述第1邏輯位址、指定上述第1區塊之第1區塊編號、及第1區塊內偏移,上述第1區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數表示上述第1區塊之開頭至上述第1位置之偏移;且當自上述主機接收到指定各自為上述複數個組中之任意一個組之複製源組及複製目標組之用於垃圾回收之控制命令時,執行如下動作:自屬於與上述複製源組相對應之一個組之區塊群中選擇上述垃圾回收之複製源區塊,自屬於與上述複製目標組相對應之一個組之區塊群中選擇複製目標區塊,決定應寫入上述複製源區塊內所存儲之有效資料之上述複製目標區塊之第2位置,將上述有效資料複製至上述複製目標區塊之上述第2位置,且對上述主機通知上述有效資料之邏輯位址、指定上述複製目標區塊之第2區塊編號、及第2區塊內偏移,上述第2區塊內偏移係以上述粒度之倍數來表示上述複製目標區塊之開頭至上述第2位置之偏移。
- 一種控制非揮發性記憶體之控制方法,其係控制包含各自包含複數個頁之複數個區塊之非揮發性記憶體之控制方法,且具備:當自主機接收到指定第1邏輯位址之寫入請求時,執行如下動作:決定應寫入來自上述主機之資料之第1區塊與上述第1區塊之第1位置兩者;將來自上述主機之資料寫入至上述第1區塊之上述第1位置;及對上述主機通知上述第1邏輯位址、指定上述第1區塊之第1區塊編號、及第1區塊內偏移,上述第1區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數來表示上述第1區塊之開頭至上述第1位置之偏移;以及當執行上述非揮發性記憶體之垃圾回收時,執行如下動作:自上述複數個區塊中選擇用於上述垃圾回收之複製源區塊及複製目標區塊;決定應寫入上述複製源區塊內所存儲之有效資料之上述複製目標區塊之第2位置;將上述有效資料複製至上述複製目標區塊之上述第2位置;及對上述主機通知上述有效資料之邏輯位址、指定上述複製目標區塊之第2區塊編號、及第2區塊內偏移,上述第2區塊內偏移係以上述粒度之倍數來表示上述複製目標區塊之開頭至上述第2位置之偏移。
- 如請求項11之控制非揮發性記憶體之控制方法,其中更具備:當自上述主機接收到指定上述第1區塊編號及上述第1區塊內偏移之讀取請求時,基於上述第1區塊內偏移而自上述第1區塊讀取資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017181425A JP6785204B2 (ja) | 2017-09-21 | 2017-09-21 | メモリシステムおよび制御方法 |
JP2017-181425 | 2017-09-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201915747A true TW201915747A (zh) | 2019-04-16 |
TWI684098B TWI684098B (zh) | 2020-02-01 |
Family
ID=65720270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106146402A TWI684098B (zh) | 2017-09-21 | 2017-12-29 | 記憶體系統及控制非揮發性記憶體之控制方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10545862B2 (zh) |
JP (1) | JP6785204B2 (zh) |
CN (2) | CN114372007A (zh) |
TW (1) | TWI684098B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI756810B (zh) * | 2020-09-02 | 2022-03-01 | 瑞昱半導體股份有限公司 | 晶片與相關的晶片系統 |
TWI808384B (zh) * | 2021-02-23 | 2023-07-11 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
TWI821152B (zh) * | 2021-02-23 | 2023-11-01 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11422726B1 (en) * | 2018-05-01 | 2022-08-23 | Amazon Technologies, Inc. | Efficient storage device data move operation based on priority of garbage collection command |
US10599580B2 (en) | 2018-05-23 | 2020-03-24 | International Business Machines Corporation | Representing an address space of unequal granularity and alignment |
US11144229B2 (en) * | 2018-11-01 | 2021-10-12 | EMC IP Holding Company LLC | Bandwidth efficient hash-based migration of storage volumes between storage systems |
JP2020170477A (ja) * | 2019-04-05 | 2020-10-15 | 株式会社バッファロー | 記憶装置、その制御方法、及びプログラム |
JP2021028762A (ja) | 2019-08-09 | 2021-02-25 | キオクシア株式会社 | 情報処理装置および制御方法 |
JP2021114038A (ja) | 2020-01-16 | 2021-08-05 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102267477B1 (ko) | 2020-02-20 | 2021-06-22 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164408A (ja) * | 2004-12-08 | 2006-06-22 | Toshiba Corp | 不揮発性半導体記憶装置及びそのデータ消去方法。 |
US8364918B1 (en) * | 2007-04-06 | 2013-01-29 | Marvell International Ltd. | Sensed opportunistic garbage collection in memory components |
US8429352B2 (en) * | 2007-06-08 | 2013-04-23 | Sandisk Technologies Inc. | Method and system for memory block flushing |
JP5026213B2 (ja) * | 2007-09-28 | 2012-09-12 | 株式会社日立製作所 | ストレージ装置及びデータ重複排除方法 |
US8364931B2 (en) * | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
CN101963891A (zh) * | 2010-09-25 | 2011-02-02 | 成都市华为赛门铁克科技有限公司 | 数据存储处理方法与装置、固态硬盘***与数据处理*** |
US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US10359949B2 (en) | 2011-10-31 | 2019-07-23 | Apple Inc. | Systems and methods for obtaining and using nonvolatile memory health information |
JP2013174975A (ja) * | 2012-02-23 | 2013-09-05 | Toshiba Corp | メモリシステムとそのデータ書き込み方法 |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
WO2014110095A1 (en) | 2013-01-08 | 2014-07-17 | Violin Memory Inc. | Method and system for data storage |
US9329991B2 (en) | 2013-01-22 | 2016-05-03 | Seagate Technology Llc | Translation layer partitioned between host and controller |
JP6443794B2 (ja) * | 2013-08-16 | 2018-12-26 | エルエスアイ コーポレーション | ホストとコントローラとの間でパーティション化された変換レイヤ |
US20160232088A1 (en) * | 2014-07-17 | 2016-08-11 | Sandisk Enterprise Ip Llc | Garbage Collection in Storage System with Distributed Processors |
JP5971423B2 (ja) | 2014-07-23 | 2016-08-17 | 富士通株式会社 | 情報処理装置、メモリコントローラ、記憶装置の制御プログラム及び記憶装置の制御方法 |
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
JP6403162B2 (ja) | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
TWI578222B (zh) * | 2015-11-18 | 2017-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
JP6414853B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP6448571B2 (ja) | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6448570B2 (ja) * | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6523193B2 (ja) | 2016-03-08 | 2019-05-29 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US10409719B2 (en) | 2016-03-17 | 2019-09-10 | Samsung Electronics Co., Ltd. | User configurable passive background operation |
US11775189B2 (en) * | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
-
2017
- 2017-09-21 JP JP2017181425A patent/JP6785204B2/ja active Active
- 2017-12-29 TW TW106146402A patent/TWI684098B/zh active
-
2018
- 2018-01-10 CN CN202111645918.8A patent/CN114372007A/zh active Pending
- 2018-01-10 CN CN201810021746.9A patent/CN109542331A/zh not_active Withdrawn
- 2018-03-07 US US15/913,987 patent/US10545862B2/en active Active
-
2019
- 2019-12-20 US US16/723,458 patent/US11144451B2/en active Active
-
2021
- 2021-10-12 US US17/499,825 patent/US11797436B2/en active Active
-
2023
- 2023-09-13 US US18/367,547 patent/US20230418739A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI756810B (zh) * | 2020-09-02 | 2022-03-01 | 瑞昱半導體股份有限公司 | 晶片與相關的晶片系統 |
TWI808384B (zh) * | 2021-02-23 | 2023-07-11 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
TWI821152B (zh) * | 2021-02-23 | 2023-11-01 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109542331A (zh) | 2019-03-29 |
US20230418739A1 (en) | 2023-12-28 |
US11144451B2 (en) | 2021-10-12 |
US20200125487A1 (en) | 2020-04-23 |
US10545862B2 (en) | 2020-01-28 |
US20190087323A1 (en) | 2019-03-21 |
JP6785204B2 (ja) | 2020-11-18 |
JP2019057151A (ja) | 2019-04-11 |
US20220058117A1 (en) | 2022-02-24 |
CN114372007A (zh) | 2022-04-19 |
TWI684098B (zh) | 2020-02-01 |
US11797436B2 (en) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230315294A1 (en) | Memory system and method for controlling nonvolatile memory | |
US11151029B2 (en) | Computing system and method for controlling storage device | |
US12038834B2 (en) | Memory system and method for controlling nonvolatile memory during command processing without replacing defective blocks | |
TWI674502B (zh) | 記憶體系統及控制方法 | |
TWI791140B (zh) | 記憶體系統 | |
TWI684098B (zh) | 記憶體系統及控制非揮發性記憶體之控制方法 | |
JP2020046963A (ja) | メモリシステムおよび制御方法 | |
JP7013546B2 (ja) | メモリシステム | |
JP7490714B2 (ja) | メモリシステムおよび制御方法 | |
JP7524443B2 (ja) | メモリシステムおよび制御方法 | |
JP7204020B2 (ja) | 制御方法 | |
JP7167295B2 (ja) | メモリシステムおよび制御方法 | |
JP2023021450A (ja) | メモリシステム | |
JP2022179798A (ja) | メモリシステムおよび制御方法 |