TWI674502B - 記憶體系統及控制方法 - Google Patents
記憶體系統及控制方法 Download PDFInfo
- Publication number
- TWI674502B TWI674502B TW107122913A TW107122913A TWI674502B TW I674502 B TWI674502 B TW I674502B TW 107122913 A TW107122913 A TW 107122913A TW 107122913 A TW107122913 A TW 107122913A TW I674502 B TWI674502 B TW I674502B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- host
- data
- offset
- block number
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
-
- 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
-
- 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/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/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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)。
最近,開始提出主機與儲存裝置之間之新的介面。
然而,一般而言,由於NAND型快閃記憶體之控制較為複雜,故而於實現用以改善I/O(Input/Output,輸入/輸出)性能之新的介面時,必須考慮主機與儲存裝置(記憶體系統)之間適當之作用分擔。
本發明之實施形態提供一種可謀求I/O性能之改善之記憶體系統及控制方法。
根據實施形態,可連接於主機之記憶體系統具備:非揮發性記憶體,其包含複數個區塊,該等複數個區塊各自包含複數個頁;以及控制器,其電性連接於上述非揮發性記憶體,且對上述非揮發性記憶體進行控制。上述控制器於自上述主機接收到指定第1邏輯位址與第1區塊編號之寫入請求之情形時,決定應寫入來自上述主機之資料之具有上述第1區塊編號之第1區塊內之第1位置,將來自上述主機之資料寫入至上述第1區塊內之上述第1位置,將表示上述第1位置之第1區塊內物理位址、或上述第1邏輯位址、上述第1區塊編號及上述第1區塊內物理位址之組之任一者通知給上述主機。上述控制器於自上述主機接收到指定上述非揮發性記憶體之垃圾回收(garbage collection)用之複製源區塊編號及複製目的地區塊編號之控制指令之情形時,自上述複數個區塊選擇具有上述複製源區塊編號之第2區塊與具有上述複製目的地區塊編號之第3區塊,決定應寫入儲存於上述第2區塊之有效資料之上述第3區塊內之複製目的地位置,將上述有效資料複製至上述第3區塊之上述複製目的地位置,將上述有效資料之邏輯位址、上述複製目的地區塊編號、及表示上述複製目的地位置之第2區塊內物理位址通知給上述主機。
以下,參照圖式,對實施形態進行說明。
首先,參照圖1,對包含一實施形態之記憶體系統之計算機系統之構成進行說明。
該記憶體系統係以將資料寫入至非揮發性記憶體,並自非揮發性記憶體讀出資料之方式構成之半導體儲存裝置。該記憶體系統作為NAND閃存技術基礎之快閃儲存裝置3而實現。
該計算機系統亦可包含主機(主機裝置)2及複數個快閃儲存裝置3。主機2亦可為以將由複數個快閃儲存裝置3而構成之快閃陣列用作儲存裝置之方式構成之伺服器。主機(伺服器)2與複數個快閃儲存裝置3係經由介面50而相互連接(內部相互連接)。作為該內部相互連接用之介面50,並不限定於此,可使用PCI Express(PCIe)(註冊商標)、NVM Express(NVMe)(註冊商標)、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型快閃記憶體中,存在區塊包含不良頁(壞頁)之情況。操作壞頁對主機而言更加困難。
因此,於本實施形態中,FTL之作用於主機2與快閃儲存裝置3之間分擔。大概而言,主機2管理作為邏輯物理位址轉換表格而發揮功能之查找表,主機2僅指定應寫入資料之區塊之區塊編號及與該資料對應之邏輯位址,應寫入該資料之該區塊內之位置(寫入目的地位置)由快閃儲存裝置3來決定。表示已經決定之該區塊內之位置(寫入目的地位置)之區塊內物理位址自快閃儲存裝置3通知給主機2。
如此,主機2僅操作區塊,區塊內之位置(例如,頁、頁內之位置)由快閃儲存裝置3來操作。
於必須將資料寫入至快閃儲存裝置3時,主機2選擇區塊編號(或以對快閃儲存裝置3分配空閒區塊之方式請求),並將指定邏輯位址與已經選擇之區塊之區塊編號(或由快閃儲存裝置3通知之分配之區塊之區塊編號)之寫入請求(寫入指令)發送至快閃儲存裝置3。快閃儲存裝置3將來自主機2之資料寫入至具有已經指定之區塊編號之區塊。於該情形時,快閃儲存裝置3決定該區塊內之位置(寫入目的地位置),將來自主機2之資料寫入至該區塊內之位置(寫入目的地位置)。而且,快閃儲存裝置3將表示該區塊內之位置(寫入目的地位置)之區塊內物理位址作為對寫入請求之響應(返回值)通知給主機2。以下,將移至主機2之FTL功能稱為全局FTL。
主機2之全局FTL具有執行儲存服務之功能、耗損控制功能、用以實現高可用性之功能、防止具有相同內容之複數個重複資料部儲存於記憶體中之重複排除(De-duplication)功能、垃圾回收(GC)區塊選擇功能、QoS控制功能等。QoS控制功能中包含針對每個QoS區(或每個區塊)決定存取單位之功能。存取單位表示主機2能夠寫入/讀取之最小資料尺寸(Grain)。快閃儲存裝置3支持單一或複數個存取單位(Grain),主機2可於快閃儲存裝置3支持複數個存取單位之情形時針對每個QoS區(或每個區塊),將應使用之存取單位指示給快閃儲存裝置3。
又,QoS控制功能中包含用以儘量防止QoS區間之性能干擾之功能。該功能基本上為用以保存穩定之等待時間之功能。
另一方面,快閃儲存裝置3可執行低階抽象化(LLA)。LLA為NAND型快閃記憶體之抽象化用之功能。LLA包含將不良頁(壞頁)隱藏之功能、及遵守頁寫入順序限制之功能。LLA亦包含GC執行功能。GC執行功能將由主機2指定之複製源區塊(GC源區塊)內之有效資料複製為由主機2指定之複製目的地區塊(GC目的地區塊)。快閃儲存裝置3之GC執行功能決定應寫入有效資料之GC目的地區塊內之位置(複製目的地位置),並將GC源區塊內之有效資料複製為GC目的地區塊內之複製目的地位置。
圖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包含查找表(LUT)411,該查找表(LUT)411管理邏輯位址各者與快閃儲存裝置3之物理位址各者之間之映射。此處,所謂邏輯位址係指可識別存取對象之資料之識別碼。該邏輯位址亦可為指定邏輯位址空間上之位置之邏輯區塊位址(LBA),或者,亦可為鍵值儲存之鍵(標籤),亦可為鍵之雜湊值。
於基於LBA之區塊I/O服務中,亦可使用管理邏輯位址(LBA)各者與快閃儲存裝置3之物理位址各者之間之映射之LUT411。
於鍵值儲存服務中,亦可使用管理邏輯位址(即,如鍵般之標籤)各者與物理位址各者之間之映射之LUT411,上述物理位址表示儲存有與該等邏輯位址(即,如鍵般之標籤)對應之資料之快閃儲存裝置3內之物理記憶位置。於該LUT411中,亦可管理標籤、儲存有由該標籤識別之資料之物理位址、及該資料之資料長度之對應關係。
各最終使用者可選擇應使用之定址方法(LBA、鍵值記憶體之鍵等)。
該等各LUT411並不將來自使用者應用程序402之邏輯位址各者轉換為快閃儲存裝置3用之邏輯位址各者,而將來自使用者應用程序402之邏輯位址各者轉換為快閃儲存裝置3之物理位址各者。即,該等各LUT411為將快閃儲存裝置3用之邏輯位址轉換為物理位址之表格與應用程序級位址轉換表格之綜合(合併(merge))之表格。
又,各I/O服務403包含GC區塊選擇功能。GC區塊選擇功能可使用對應之LUT管理各區塊之有效資料量,藉此,可選擇GC源區塊。
於主機(伺服器)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之右部所示之構成中,由於上位階層(主機2)可辨識區塊交界,故而可考慮區塊交界/區塊尺寸將使用者資料寫入至各區塊。即,主機2可辨識NAND型快閃記憶體(NAND快閃陣列)603之各個區塊,藉此,例如,可進行將資料一齊寫入至一個區塊整體,將一個區塊內之資料整體藉由刪除或更新而無效化之控制。其結果,可使於一個區塊混合存在有效資料與無效資料之狀況容易產生。因此,可降低執行GC所需要之頻率。藉由降低GC之頻率,而寫入應用程序降低,可實現快閃儲存裝置3之性能之提高、快閃儲存裝置3之壽命之最大化。如此,上位階層(主機2)能夠辨識區塊編號之構成較為有用。
另一方面,應寫入資料之區塊內之位置並非由上位階層(主機2)決定,而是由快閃儲存裝置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)之功能、用以實現高可用性之功能、QoS控制功能、GC區塊選擇功能等。
管理員2B為用以管理複數個快閃儲存裝置3之專用之裝置(計算機)。管理員2B具有預約自各主機2A請求之容量之儲存資源之全局資源預約功能。進而,管理員2B具有用以監視各快閃儲存裝置3之消耗度之耗損監視功能、將經預約之儲存資源(NAND資源)分配至各主機2A之NAND資源分配功能、QoS控制功能、全局時脈管理功能等。
各快閃儲存裝置3之低階抽象化(LLA)具有將不良頁(壞頁)隱藏之功能、遵守頁寫入順序限制之功能、管理寫入緩衝器之功能、GC執行功能等。
根據圖3之系統構成,由於各快閃儲存裝置3之管理由管理員2B執行,故而各主機2A只要僅執行將I/O請求發送至分配至自身之一個以上之快閃儲存裝置3之動作、與接收來自快閃儲存裝置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之方式構成之記憶體控制器(控制電路)。
NAND型快閃記憶體5如圖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之各者具有包含2個平面之多平面構成之情形時,一個超級區塊亦可包含自與NAND型快閃記憶體裸片#1~#32對應之64個平面中一個一個地選擇之合計64個區塊BLK。圖6中例示了一個超級區塊SB由自NAND型快閃記憶體裸片#1~#32中一個一個地選擇之合計32個區塊BLK(於圖5中由粗框包圍之區塊BLK)構成之情況。
如圖4所示,控制器4包含主機介面11、CPU(Central Processing Unit,中央處理單元)12、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將表示該寫入目的地區塊之上述寫入目的地位置之區塊內物理位址通知給主機2。該區塊內物理位址由表示該寫入目的地區塊內之寫入目的地位置之區塊內偏移來表示。
於該情形時,該區塊內偏移表示寫入目的地區塊之開端到寫入目的地位置之偏移,即相對於寫入目的地區塊之開端之寫入目的地位置之偏移。寫入目的地區塊之開端到寫入目的地位置之偏移之尺寸由具有與頁尺寸不同之尺寸之粒度(Grain)之倍數表示。粒度(Grain)為上述存取單位。粒度(Grain)之尺寸之最大值限制為區塊尺寸。換言之,區塊內偏移由使寫入目的地區塊之開端到寫入目的地位置之偏移具有與頁尺寸不同之尺寸之粒度之倍數表示。
粒度(Grain)亦可具有小於頁尺寸之尺寸。例如,於頁尺寸為16 K位元組之情形時,粒度(Grain)之尺寸亦可為4 K位元組。於該情形時,於某一個區塊中,規定尺寸分別為4 K位元組之複數個偏移位置。與區塊內之最初之偏移位置對應之區塊內偏移例如為0,與區塊內之下一偏移位置對應之區塊內偏移例如為1,與區塊內之再下一偏移位置對應之區塊內偏移例如為2。
或者,粒度(Grain)亦可具有大於頁尺寸之尺寸。例如,粒度(Grain)亦可為頁尺寸之數倍之尺寸。於頁尺寸為16 K位元組之情形時,粒度亦可為32 K位元組之尺寸。
如此,寫入動作控制部21由自身決定具有來自主機2之區塊編號之區塊內之寫入目的地位置,然後將來自主機2之寫入資料寫入至該區塊內之該寫入目的地位置。然後,寫入動作控制部21將表示該寫入目的地位置之區塊內物理位址(區塊內偏移)作為與寫入請求對應之響應(返回值)而通知給主機2。或者,寫入動作控制部21並不將僅區塊內物理位址(區塊內偏移)通知給主機2,亦可將邏輯位址、區塊編號及區塊內物理位址(區塊內偏移)之組通知給主機2。
因此,快閃儲存裝置3可使主機2操作區塊編號,且將頁寫入順序限制、壞頁、頁尺寸等隱藏。
其結果,主機2可辨識區塊交界,但關於頁寫入順序限制、壞頁、頁尺寸並不意識,可管理哪個使用者資料存在於哪個區塊編號。
讀取動作控制部22於自主機2接收指定物理位址(即,區塊編號及區塊內偏移)之讀取請求(讀取指令)之情形時,基於該等區塊編號及區塊內偏移,自讀取對象之區塊內之讀取對象之物理記憶位置讀取資料。讀取對象之區塊由區塊編號特定。該區塊內之讀取對象之物理記憶位置由區塊內偏移特定。藉由使用該區塊內偏移,主機2無須操作NAND型快閃記憶體之每一代之不同之頁尺寸。
為了獲得讀取對象之物理記憶位置,讀取動作控制部22亦可首先將該區塊內偏移除以表示頁尺寸之粒度之數(於頁尺寸為16 K位元組且粒度(Grain)為4 K位元組之情形時,表示頁尺寸之粒度之數為4),然後將該除法所得之商及餘數作為讀取對象之頁編號及讀取對象之頁內偏移而分別決定。
GC動作控制部23於自主機2接收指定NAND型快閃記憶體5之垃圾回收用之複製源區塊編號(GC源區塊編號)及複製目的地區塊編號(GC目的地區塊編號)之GC控制指令之情形時,自NAND型快閃記憶體5之複數個區塊,將具有已經指定之複製源區塊編號之區塊與具有已經指定之複製目的地區塊編號之區塊選擇為複製源區塊(GC源區塊)及複製目的地區塊(GC目的地區塊)。GC動作控制部23決定應寫入儲存於已經選擇之GC源區塊中之有效資料之GC目的地區塊內之複製目的地位置,將有效資料複製至GC目的地區塊內之複製目的地位置。
然後,GC動作控制部23將有效資料之邏輯位址、複製目的地區塊編號、及表示GC目的地區塊內之複製目的地位置之區塊內物理位址(區塊內偏移)通知給主機2。
有效資料/無效資料之管理亦可使用區塊管理表格32來執行。該區塊管理表格32例如亦可針對每個區塊存在。於與某區塊對應之區塊管理表格32中,儲存有表示該區塊內之資料各者之有效/無效之位圖標記。此處,所謂有效資料,係指自邏輯位址作為最新之資料鏈接之資料,且係指之後有自主機2讀取之可能性之資料。所謂無效資料,係指已經無自主機2讀取之可能性之資料。例如,與某邏輯位址建立關聯之資料為有效資料,與任何邏輯位址均未建立關聯之資料為無效資料。
如上所述,GC動作控制部23決定應寫入儲存於複製源區塊(GC源區塊)內之有效資料之複製目的地區塊(GC目的地區塊)內之位置(複製目的地位置),將有效資料複製至複製目的地區塊(GC目的地區塊)之該已經決定之位置(複製目的地位置)。於該情形時,GC動作控制部23亦可將有效資料與該有效資料之邏輯位址之兩者複製至複製目的地區塊(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係表示主機2指定邏輯位址與區塊編號且快閃儲存裝置3決定區塊內物理位址(區塊內偏移)之資料寫入動作、與主機2指定區塊編號與區塊內物理位址(區塊內偏移)之資料讀出動作。
資料寫入動作按照以下之順序執行。
(1)於主機2之寫入處理部412必須將資料(寫入資料)寫入至快閃儲存裝置3時,寫入處理部412亦可請求快閃儲存裝置3以分配空閒區塊。快閃儲存裝置3之控制器4包含管理NAND型快閃記憶體5之空閒區塊群之區塊分配部701。於區塊分配部701自寫入處理部412接收該請求(區塊分配請求)時,區塊分配部701將空閒區塊群之一個空閒區塊分配至主機2,並將已經分配之區塊之區塊編號(BLK#)通知給主機2。
或者,於寫入處理部412管理空閒區塊群之構成中,寫入處理部412亦可由自身選擇寫入目的地區塊。
(2)寫入處理部412將指定與寫入資料對應之邏輯位址(例如LBA)與寫入目的地區塊之區塊編號(BLK#)之寫入請求發送至快閃儲存裝置3。
(3)快閃儲存裝置3之控制器4包含分配資料寫入用之頁之頁分配部702。於頁分配部702接收寫入請求時,頁分配部702決定表示具有由寫入請求指定之區塊編號之區塊(寫入目的地區塊)內之寫入目的地位置之區塊內物理位址(區塊內PBA)。區塊內物理位址(區塊內PBA)可由上述區塊內偏移(亦僅參照為偏移)來表示。控制器4基於由寫入請求指定之區塊編號與區塊內物理位址(區塊內PBA),將來自主機2之寫入資料寫入至寫入目的地區塊內之寫入目的地位置。
(4)控制器4將表示寫入目的地位置之區塊內物理位址(區塊內PBA)作為對寫入請求之響應而通知給主機2。或者,控制器4亦可將與寫入資料對應之邏輯位址(LBA)、寫入目的地區塊之區塊編號(BLK#)、及表示寫入目的地位置之區塊內PBA(偏移)之組作為對寫入請求之響應而通知給主機2。換言之,控制器將區塊內物理位址、或邏輯位址、區塊編號及區塊內物理位址之組之任一者通知給主機2。於主機2中,以表示寫入有寫入資料之物理記憶位置之物理位址(區塊編號、區塊內物理位址(區塊內偏移))映射為該寫入資料之邏輯位址之方式,更新LUT411。
資料讀取動作按照以下之順序執行。
(1)'於主機2必須自快閃儲存裝置3讀取資料時,主機2參照LUT411,自LUT411取得與應讀取之資料之邏輯位址對應之物理位址(區塊編號、區塊內物理位址(區塊內偏移))。
(2)'主機2將指定已經取得之區塊編號及區塊內物理位址(區塊內偏移)之讀取請求送出至快閃儲存裝置3。於快閃儲存裝置3之控制器4自主機2接收該讀取請求時,控制器4基於區塊編號及區塊內物理位址,對讀取對象之區塊及讀取對象之物理記憶位置進行特定,自該讀取對象之區塊內之讀取對象之物理記憶位置讀取資料。
圖8係表示快閃儲存裝置3中所應用之寫入指令。
寫入指令為對快閃儲存裝置3請求資料之寫入之指令。該寫入指令亦可包含指令ID、區塊編號BLK#、邏輯位址、長度等。
指令ID為表示該指令為寫入指令之ID(指令碼),寫入指令中包含寫入指令用之指令ID。
區塊編號BLK#為可唯一地識別應寫入資料之區塊之識別碼(區塊位址)。
邏輯位址為用以識別應寫入之寫入資料之識別碼。該邏輯位址如上所述,亦可為LBA,亦可為鍵值儲存器之鍵,亦可為鍵之雜湊值。於邏輯位址為LBA之情形時,包含於該寫入指令中之邏輯位址(開始LBA)表示應寫入有寫入資料之邏輯位置(最初之邏輯位置)。
長度表示應寫入之寫入資料之長度。該長度(資料長度)既可以由粒度(Grain)之數來指定,亦可由LBA之數來指定,或者,其尺寸亦可由位元組來指定。
於自主機2接收寫入指令時,控制器4決定具有由寫入指令指定之區塊編號之區塊內之寫入目的地位置。該寫入目的地位置考慮頁寫入順序之限制及壞頁等而決定。然後,控制器4將來自主機2之資料寫入至具有由寫入指令指定之區塊編號之該區塊內之該寫入目的地位置。
圖9係表示對圖8之寫入指令之響應。
該響應包含區塊內物理位址、長度。區塊內物理位址表示寫入有資料之區塊內之位置(物理記憶位置)。區塊內物理位址如上所述,可由區塊內偏移來指定。長度表示寫入之資料之長度。該長度(資料長度)既可以由粒度(Grain)之數來指定,亦可由LBA之數來指定,或者,其尺寸亦可由位元組來指定。
或者,該響應不僅包含區塊內物理位址及長度,亦可進而包含邏輯位址及區塊編號。邏輯位址為包含於圖8之寫入指令中之邏輯位址。區塊編號為包含於圖8之寫入指令中之邏輯位址。
圖10係表示快閃儲存裝置3中所應用之Trim指令。
該Trim指令包含表示儲存有應為無效之資料之物理記憶位置之區塊編號及區塊內物理位址(區塊內偏移)之指令。即,該Trim指令可指定物理位址,而並非如LBA般之邏輯位址。該Trim指令包含指令ID、物理位址、長度。
指令ID為表示該指令為Trim指令之ID(指令碼),於Trim指令中包含Trim指令用之指令ID。
物理位址表示儲存有應無效化之資料之最初之物理記憶位置。於本實施形態中,該物理位址由區塊編號與偏移(區塊內偏移)之組合來指定。
長度表示應無效化之資料之長度。該長度(資料長度)既可以由粒度(Grain)之數來指定,亦可由位元組來指定。
控制器4使用區塊管理表格32管理表示複數個區塊之各者中所包含之資料各者之有效/無效之標記(位圖標記)。於自主機2接收包含表示儲存有應為無效之資料之物理記憶位置之區塊編號及偏移(區塊內偏移)之Trim指令之情形時,控制器4更新區塊管理表格32,將與Trim指令中所包含之區塊編號及區塊內偏移對應之物理記憶位置之資料所對應之標記(位圖標記)變更為表示無效之值。
圖11係表示規定區塊內物理位址之區塊內偏移。
區塊編號指定某一個區塊BLK。各區塊BLK如圖11所示,包含複數個頁(此處,為頁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區域。
圖12係表示根據寫入指令執行之寫入動作。
現在,設想區塊BLK#1作為寫入目的地區塊而分配之情況。控制器4按照頁0、頁1、頁2、…頁n之順序,將資料以頁單位寫入至區塊BLK#1。
於圖11中,設想於將16 K位元組量之資料已經寫入至區塊BLK#1之頁0之狀態下,自主機2接收指定區塊編號(=BLK#1)、邏輯位址(LBAx)及長度(=4)之寫入指令之情況。控制器4將區塊BLK#1之頁1決定為寫入目的地位置,將自主機2接收之16 K位元組量之寫入資料寫入至區塊BLK#1之頁1。然後,控制器4作為對該寫入指令之響應,使偏移(區塊內偏移)、長度返回至主機2。於該實例中,偏移(區塊內偏移)為+5,長度為4。或者,控制器4亦可作為對該寫入指令之響應,使邏輯位址、區塊編號、偏移(區塊內偏移)、長度返回至主機2。於該實例中,邏輯位址為LBAx,區塊編號為BLK#1,偏移(區塊內偏移)為+5,長度為4。
圖13係表示跳過不良頁(壞頁)之寫入動作。
於圖13中,設想於將資料已經寫入至區塊BLK#1之頁0、頁1之狀態下,自主機2接收指定區塊編號(=BLK#1)、邏輯位址(LBAx+1)及長度(=4)之寫入指令之情況。若區塊BLK#1之頁2為不良頁,則控制器4將區塊BLK#1之頁3決定為寫入目的地位置,將自主機2接收之16 K位元組量之寫入資料寫入至區塊BLK#1之頁3。然後,控制器4作為對該寫入指令之響應,使偏移(區塊內偏移)、長度返回至主機2。於該實例中,偏移(區塊內偏移)為+12,長度為4。或者,控制器4亦可作為對該寫入指令之響應,使邏輯位址、區塊編號、偏移(區塊內偏移)、長度返回至主機2。於該實例中,邏輯位址為LBAx+1,區塊編號為BLK#1,偏移(區塊內偏移)為+12,長度為4。
圖14係表示跳過不良頁之寫入動作之另一例。
於圖14中,設想跨隔著不良頁之2個頁而寫入資料之情況。現在,設想資料已經寫入至區塊BLK#2之頁0、頁1,且於寫入緩衝器31中留有未寫入之8 K位元組量之寫入資料之情況。於該狀態下,若接收到指定區塊編號(=BLK#2)、邏輯位址(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個偏移(區塊內偏移)與2個長度返回至主機2,作為對該寫入指令之響應。於該實例中,該響應亦可包含偏移(=+10)、長度(=2)、偏移(=+16)、長度(=4)。或者,控制器4亦可將LBAy、區塊編號(=BLK#2)、偏移(=+10)、長度(=2)、區塊編號(=BLK#2)、偏移(=+16)、長度(=4)返回至主機2,作為對該寫入指令之響應。
圖15、圖16係表示將邏輯位址與資料之對寫入至區塊內之頁之動作。
於各區塊中,各頁亦可包含用以儲存使用者資料之使用者資料區域與用以儲存管理資料之冗長區域。頁尺寸為16 KB+α。
控制器4將4 KB使用者資料及與該4 KB使用者資料對應之邏輯位址(例如LBA)兩者寫入至寫入目的地區塊BLK。於該情形時,如圖15所示,亦可將各自包含LBA與4 KB使用者資料之4個資料集合寫入至同一頁。區塊內偏移亦可表示集合交界。
或者,如圖16所示,亦可將4個4 KB使用者資料寫入至頁內之使用者資料區域,將與該等4個4 KB使用者資料對應之4個LBA寫入至該頁內之冗長區域。
圖17係表示使用超級區塊之實例中之區塊編號與偏移(區塊內偏移)之關係。以下,區塊內偏移亦僅供參照作為偏移。
此處,為了簡化圖示,設想某一個超級區塊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區域。
圖18係表示快閃儲存裝置3中所應用之最大區塊編號獲得指令。
最大區塊編號獲得指令為用以自快閃儲存裝置3取得最大區塊編號之指令。主機2藉由對快閃儲存裝置3發送最大區塊編號獲得指令,可辨識表示快閃儲存裝置3中所包含之區塊之數之最大區塊編號。最大區塊編號獲得指令包含最大區塊編號獲得指令用之指令ID,不包含參數。
圖19係表示對最大區塊編號獲得指令之響應。
於自主機2接收最大區塊編號獲得指令時,快閃儲存裝置3使圖19所示之響應返回至主機2。該響應包含表示最大區塊編號(即,快閃儲存裝置3中所包含之可利用之區塊之總數)之參數。
圖20係表示快閃儲存裝置3中所應用之區塊尺寸獲得指令。
區塊尺寸獲得指令為用以自快閃儲存裝置3取得區塊尺寸之指令。主機2藉由對快閃儲存裝置3發送區塊尺寸獲得指令,可辨識快閃儲存裝置3中所包含之NAND型快閃記憶體5之區塊尺寸。
再者,於其他實施形態中,區塊尺寸獲得指令亦可包含指定區塊編號之參數。於自主機2接收指定某區塊編號之區塊尺寸獲得指令之情形時,快閃儲存裝置3使具有該區塊編號之區塊之區塊尺寸返回至主機2。藉此,即便於NAND型快閃記憶體5中所包含之區塊各者之區塊尺寸不均勻之情形時,主機2亦可辨識各個區塊各者之區塊尺寸。
圖21係表示對區塊尺寸獲得指令之響應。
於自主機2接收區塊尺寸獲得指令時,快閃儲存裝置3使區塊尺寸(NAND型快閃記憶體5中所包含之區塊各者之共通之區塊尺寸)返回至主機2。於該情形時,若區塊編號由區塊尺寸獲得指令來指定,則快閃儲存裝置3如上所述,使具有該區塊編號之區塊之區塊尺寸返回至主機2。
圖22係表示快閃儲存裝置3中所應用之區塊分配指令。
區塊分配指令為對快閃儲存裝置3請求區塊(空閒區塊)之分配之指令(區塊分配請求)。主機2藉由將區塊分配指令發送至快閃儲存裝置3,可請求快閃儲存裝置3以分配空閒區塊,藉此取得區塊編號(已經分配之空閒區塊之區塊編號)。
於快閃儲存裝置3利用空閒區塊列表管理空閒區塊群,主機2不管理空閒區塊群之實例中,主機2請求快閃儲存裝置3以分配空閒區塊,藉此取得區塊編號。另一方面,於主機2管理空閒區塊群之實例中,主機2由於可由自身選擇空閒區塊群之一個,故而無須將區塊分配指令發送至快閃儲存裝置3。
圖23係表示對區塊分配指令之響應。
於自主機2接收區塊分配指令時,快閃儲存裝置3自空閒區塊列表選擇應分配至主機2之空閒區塊,並使包含已經選擇之空閒區塊之區塊編號之響應返回至主機2。
圖24係表示由主機2與快閃儲存裝置3執行之區塊信息取得處理。
於主機2開始使用快閃儲存裝置3時,主機2首先將最大區塊編號獲得指令發送至快閃儲存裝置3。快閃儲存裝置3之控制器使最大區塊編號返回至主機2。最大區塊編號表示可利用之區塊之總數。再者,於使用上述超級區塊之實例中,最大區塊編號亦可表示可利用之超級區塊之總數。
接著,主機2將區塊尺寸獲得指令發送至快閃儲存裝置3,取得區塊尺寸。於該情形時,主機2亦可將指定區塊編號1之區塊尺寸獲得指令、指定區塊編號2之區塊尺寸獲得指令、指定區塊編號3之區塊尺寸獲得指令、…分別發送至快閃儲存裝置3,個別地取得所有區塊各者之區塊尺寸。
藉由該區塊信息取得處理,主機2可辨識可利用之區塊數、各個區塊之區塊尺寸。
圖25係表示由主機2與快閃儲存裝置3執行之寫入處理之序列。
主機2首先請求快閃儲存裝置3以由自身選擇為了寫入應使用之區塊(空閒區塊),或藉由將區塊分配指令發送至快閃儲存裝置3來分配空閒區塊。然後,主機2將包含由自身選擇之區塊之區塊編號BLK#(或由快閃儲存裝置3分配之空閒區塊之區塊編號BLK#)、邏輯位址(LBA)、及長度之寫入指令發送至快閃儲存裝置3(步驟S20)。
於快閃儲存裝置3之控制器4接收該寫入指令時,控制器4決定應寫入來自主機2之寫入資料之具有該區塊編號BLK#之區塊(寫入目的地區塊BLK#)內之寫入目的地位置,並將寫入資料寫入至該寫入目的地區塊BLK#之寫入目的地位置(步驟S11)。於步驟S11中,控制器4亦可將邏輯位址(此處為LBA)與寫入資料之兩者寫入至寫入目的地區塊。
控制器4更新與寫入目的地區塊BLK#對應之區塊管理表格32,將與已經寫入之資料對應之位圖標記(即,與已經寫入有該資料之偏移(區塊內偏移)對應之位圖標記)自0變更為1(步驟S12)。
例如,如圖26所示,設想將開始LBA為LBAx之16 K位元組更新資料寫入至與區塊BLK#1之偏移+4~+7對應之物理記憶位置之情況。於該情形時,如圖27所示,於區塊BLK#1用之區塊管理表格中,與偏移+4~+7對應之位圖標記各者自0變更為1。
然後,如圖25所示,控制器4使對該寫入指令之響應返回至主機2(步驟S13)。該響應至少包含寫入有該資料之偏移(區塊內偏移)。
於主機2接收該響應時,主機2更新由主機2管理之LUT411,對與已經寫入之寫入資料對應之邏輯位址各者映射物理位址。如圖28所示,LUT411包含與複數個邏輯位址(例如LBA)各者對應之複數個輸入值。於與某邏輯位址(例如某LBA)對應之輸入值中,儲存有表示儲存有與該LBA對應之資料之NAND型快閃記憶體5內之位置(物理記憶位置)之物理位址PBA,即區塊編號、偏移(區塊內偏移)。如圖26所示,若將開始LBA為LBAx之16 K位元組更新資料寫入至與區塊BLK#1之偏移+4~+7對應之物理記憶位置,則如圖28所示,LUT411被更新,於與LBAx對應之輸入值中儲存BLK#1、偏移+4,於與LBAx+1對應之輸入值中儲存BLK#1、偏移+5,於與LBAx+2對應之輸入值中儲存BLK#1、偏移+6,於與LBAx+3對應之輸入值中儲存BLK#1、偏移+7。
如圖25所示,此後,主機2將用以使利用上述更新資料之寫入而不需要之以前之資料無效化之Trim指令發送至快閃儲存裝置3。如圖26所示,於以前之資料儲存於與區塊BLK#0之偏移+0、偏移+1、偏移+2、偏移+3對應之位置之情形時,如圖29所示,將指定區塊編號(=BLK#0)、偏移(=+0)、長度(=4)之Trim指令自主機2發送至快閃儲存裝置3。快閃儲存裝置3之控制器4根據該Trim指令,更新區塊管理表格32(圖25,步驟S14)。於步驟S15中,如圖29所示,於區塊BLK#0用之區塊管理表格中,與偏移+0~+3對應之位圖標記各者自1變更為0。
圖30係表示快閃儲存裝置3中所應用之讀取指令。
讀取指令為對快閃儲存裝置3請求資料之讀出之指令。該讀取指令包含指令ID、物理位址PBA、長度、傳送目的地指標。
指令ID為表示該指令為讀取指令之ID(指令碼),讀取指令包含讀取指令用之指令ID。
物理位址PBA表示應讀出資料之最初之物理記憶位置。物理位址PBA由區塊編號、偏移(區塊內偏移)來指定。
長度表示應讀取之資料之長度。該資料長度可由Grain之數來指定。
傳送目的地指標表示應傳送已經讀出之資料之主機2內之記憶體上之位置。
一個讀取指令可指定複數個物理位址PBA(區塊編號、偏移)與長度之組。
圖31係表示讀取動作。
此處,設想自主機2接收指定區塊編號(=BLK#2)、偏移(=+5)、長度(=3)之讀取指令之情況。快閃儲存裝置3之控制器4基於區塊編號(=BLK#2)、偏移(=+5)、長度(=3),自BLK#2讀取資料d1~d3。於該情形時,控制器4自BLK#2之頁1讀取1頁尺寸量之資料,自該讀取資料抽出資料d1~資料d3。接著,控制器4將資料d1~資料d3傳送至由傳送目的地指標指定之主機記憶體上。
圖32係表示根據來自主機2之讀取指令,將分別儲存於不同之物理記憶位置之資料部讀取之動作。
此處,設想自主機2接收指定區塊編號(=BLK#2)、偏移(=+10)、長度(=2)、區塊編號(=BLK#2)、偏移(=+16)、長度(=4)之讀取指令之情況。快閃儲存裝置3之控制器4基於區塊編號(=BLK#2)、偏移(=+10)、長度(=2),自BLK#2之頁2讀取1頁尺寸量之資料,自該讀取資料抽出資料d1~資料d2。接著,控制器4基於區塊編號(=BLK#2)、偏移(=+16)、長度(=4),自BLK#2之頁4讀取1頁尺寸量之資料(資料d3~資料d6)。然後,控制器4將藉由使資料d1~資料d2與資料d3~資料d6結合所獲得之長度(=6)之讀取資料傳送至由讀取指令內之傳送目的地指標指定之主機記憶體上。
藉此,即便於區塊內存在不良頁之情形時,亦不會引起讀取錯誤,可自另一個物理記憶位置讀取資料部。又,即便於資料跨2個區塊而寫入之情形時,亦可將該資料利用一個讀取指令之發行來讀取。
圖33係表示由主機2與快閃儲存裝置3執行之讀取處理之序列。
主機2參照由主機2管理之LUT411,將來自使用者應用程序之讀取請求中所包含之邏輯位址轉換為區塊編號、偏移。然後,主機2將指定該區塊編號、偏移、長度之讀取指令發送至快閃儲存裝置3。
於快閃儲存裝置3之控制器4自主機2接收讀取指令時,控制器4將與由該讀取指令指定之區塊編號對應之區塊決定為讀取對象之區塊,並且基於由該讀取指令指定之偏移決定讀取對象之頁(步驟S31)。於步驟S31中,控制器4首先亦可將由讀取指令指定之偏移除以表示頁尺寸之粒度之數(此處,為4)。然後,控制器4亦可將該除法所得之商及餘數分別決定為讀取對象之頁編號及讀取對象之頁內偏移位置。
控制器4將由區塊編號、偏移、長度規定之資料自NAND型快閃記憶體5讀取(步驟S32),並將該讀取資料發送至主機2。
圖34係表示快閃儲存裝置3中所應用之GC控制指令。
GC控制指令係為了將GC源區塊編號及GC目的地區塊編號通知給快閃儲存裝置3而使用。主機2可管理各區塊之有效資料量/無效資料量,並將有效資料量更少之幾個區塊選擇為GC源區塊。又,主機2可管理空閒區塊列表,並將幾個空閒區塊選擇為GC目的地區塊。該GC控制指令亦可包含指令ID、GC源區塊編號、GC目的地區塊編號等。
指令ID為表示該指令為GC控制指令之ID(指令碼),GC控制指令包含GC控制指令用之指令ID。
GC源區塊編號為表示GC源區塊之區塊編號。主機2可指定應使哪個區塊為GC源區塊。主機2亦可將複數個GC源區塊編號設定為一個GC控制指令。
GC目的地區塊編號為表示GC目的地區塊之區塊編號。主機2可指定應使哪個區塊為GC目的地區塊。主機2亦可將複數個GC目的地區塊編號設定為一個GC控制指令。
圖35係表示GC用回調指令。
GC用回調指令係為了將由GC複製之有效資料之邏輯位址與表示該有效資料之複製目的地位置之區塊編號及偏移通知給主機2而使用。
GC用回調指令可包含指令ID、邏輯位址、長度、目的地物理位址。
指令ID為表示該指令為GC用回調指令之ID(指令碼),GC用回調指令包含GC用回調指令用之指令ID。
邏輯位址表示利用GC自GC源區塊複製至GC目的地區塊之有效資料之邏輯位址。
長度表示該複製資料之長度。該資料長度亦可由粒度(Grain)之數來指定。
目的地物理位址表示複製著有效資料之GC目的地區塊內之位置。目的地物理位址由區塊編號、偏移(區塊內偏移)來指定。
圖36係表示垃圾回收(GC)動作之順序。
例如,主機2於由主機2管理之空閒區塊列表中所包含之剩餘之空閒區塊之數降低至閾值以下之情形時,選擇GC源區塊及GC目的地區塊,並將指定已經選擇之GC源區塊及已經選擇之GC目的地區塊之GC控制指令發送至快閃儲存裝置3(步驟S41)。或者,於寫入處理部412管理空閒區塊群之構成中,於剩餘之空閒區塊之數降低至閾值以下時寫入處理部412亦可對主機2進行該主旨通知,已經接收通知之主機2進行區塊選擇及GC控制指令之發送。
當接收該GC控制指令時,快閃儲存裝置3之控制器4執行資料複製動作,該資料複製動作包含決定應寫入GC源區塊內之有效資料之GC目的地區塊內之位置(複製目的地位置)之動作,及將GC源區塊內之有效資料複製至GC目的地區塊內之複製目的地位置之動作(步驟S51)。於步驟S51中,控制器4不僅將GC源區塊(複製源區塊)內之有效資料,而且將該有效資料及與該有效資料對應之邏輯位址之兩者自GC源區塊(複製源區塊)複製至GC目的地區塊(複製目的地區塊)。藉此,可於GC目的地區塊(複製目的地區塊)內保存資料與邏輯位址之對。
又,於步驟S51中,直至GC源區塊內之所有有效資料之複製完成為止重複執行資料複製動作。於複數個GC源區塊由GC控制指令指定之情形時,直至所有GC源區塊內之所有有效資料之複製完成為止重複執行資料複製動作。
然後,控制器4針對已經複製之每個有效資料,將該有效資料之邏輯位址(LBA)、及表示該有效資料之複製目的地位置之目的地物理位址等使用GC用回調指令通知給主機2(步驟S52)。與某有效資料對應之目的地物理位址由複製有該有效資料之複製目的地區塊(GC目的地區塊)之區塊編號、與表示複製有該有效資料之複製目的地區塊內之物理記憶位置之區塊內物理位址(區塊內偏移)來表示。
於主機2接收該GC用回調指令時,主機2更新由主機2管理之LUT411,並對與已經複製之各有效資料對應之邏輯位址映射目的地物理位址(區塊編號、區塊內偏移)(步驟S42)。
圖37係表示為了GC而執行之資料複製動作之例。
於圖37中,設想將儲存於與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用回調處理)。
圖38係表示基於圖37之資料複製動作之結果更新之主機2之LUT411之內容。
於該LUT411中,與LBA10對應之區塊編號及偏移自BLK#50、偏移(=+4)更新為BLK#100、偏移(=+0)。同樣地,與LBA20對應之區塊編號及偏移自BLK#50、偏移(=+10)更新為BLK#100、偏移(=+1)。
於LUT411被更新之後,主機2亦可將指定BLK#50及偏移(=+4)之Trim指令發送至快閃儲存裝置3,使儲存於與BLK#50之偏移(=+4)對應之位置之資料無效化。進而,主機2亦可將指定BLK#50及偏移(=+10)之Trim指令發送至快閃儲存裝置3,使儲存於與BLK#50之偏移(=+10)對應之位置之資料無效化。
或者,亦可不自主機2發送Trim指令,作為GC處理之一環而控制器4更新區塊管理表格32並使該等資料無效化。
如以上所說明般,根據本實施形態,於自主機2接收指定第1邏輯位址與第1區塊編號之寫入請求之情形時,快閃儲存裝置3之控制器4決定應寫入來自主機2之資料之具有第1區塊編號之區塊(寫入目的地區塊)內之位置(寫入目的地位置),將來自主機2之資料寫入至寫入目的地區塊之寫入目的地位置,將表示第1位置之第1區塊內物理位址、或第1邏輯位址、第1區塊編號及第1區塊內物理位址之組之任一者通知給主機2。
因此,可實現如下構成:主機2操作區塊編號,快閃儲存裝置3考慮頁寫入順序限制/壞頁等,決定具有由主機2指定之區塊編號之區塊內之寫入目的地位置(區塊內偏移)。藉由主機2操作區塊編號,可實現上位階層(主機2)之應用程序級位址轉換表格與先前型SSD之LUT級位址轉換表格之合併。又,快閃儲存裝置3可考慮NAND型快閃記憶體5之特徵/限制對NAND型快閃記憶體5進行控制。進而,由於主機2可辨識區塊交界,故而可考慮區塊交界/區塊尺寸將使用者資料寫入至各區塊。藉此,由於主機2可進行將相同區塊內之資料利用資料更新等而一齊地無效化等之控制,故而可降低GC執行之頻率。其結果,寫入應用程序降低,可實現快閃儲存裝置3之性能之提高、快閃儲存裝置3之壽命之最大化。
因此,可實現主機2與快閃儲存裝置3之間之適當之作用分擔,藉此可謀求包含主機2與快閃儲存裝置3之系統整體之I/O性能之提高。
又,於自主機2接收指定垃圾回收用之複製源區塊編號及複製目的地區塊編號之控制指令之情形時,快閃儲存裝置3之控制器4自複數個區塊,選擇具有複製源區塊編號之第2區塊與具有複製目的地區塊編號之第3區塊,決定應寫入儲存於第2區塊之有效資料之第3區塊內之複製目的地位置,將有效資料複製至第3區塊之複製目的地位置。然後,控制器將有效資料之邏輯位址、複製目的地區塊編號、表示第3區塊內之複製目的地位置之第2區塊內物理位址通知給主機2。藉此,可實現如下構成:於GC中,主機2亦僅操作區塊編號(複製源區塊編號、複製目的地區塊編號),快閃儲存裝置3決定複製目的地區塊內之複製目的地位置。
再者,快閃儲存裝置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-208105號(申請日:2017年10月27日)為基礎申請案之優先權。本申請案藉由參照該基礎申請案而包含基礎申請案之所有內容。
1‧‧‧網路開關
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型快閃記憶體
401‧‧‧虛擬機器服務
402‧‧‧使用者應用程序
403‧‧‧I/O服務
411‧‧‧查找表
412‧‧‧寫入處理部
500‧‧‧I/O隊列
601‧‧‧寫入緩衝器
602‧‧‧垃圾回收(GC)功能
603‧‧‧NAND型快閃記憶體
701‧‧‧區塊分配部
702‧‧‧頁分配部
圖1係表示主機與實施形態之記憶體系統(快閃儲存裝置)之關係之方塊圖。 圖2係用以說明先前型SSD與主機之間之作用分擔與該實施形態之快閃儲存裝置與主機之間之作用分擔的圖。 圖3係表示複數個主機與複數個快閃儲存裝置之間之資料傳送經由網路設備而執行之計算機系統之構成例的方塊圖。 圖4係表示該實施形態之記憶體系統之構成例之方塊圖。 圖5係表示該實施形態之記憶體系統中所設置之NAND介面與複數個NAND型快閃記憶體裸片之關係的方塊圖。 圖6係表示由複數個區塊之集合構築之超級區塊之構成例之圖。 圖7係用以說明主機指定邏輯位址與區塊編號且該實施形態之記憶體系統決定區塊內物理位址(區塊內偏移)之資料寫入動作、與主機指定區塊編號與區塊內物理位址(區塊內偏移)之資料讀出動作之圖。 圖8係用以說明該實施形態之記憶體系統中所應用之寫入指令之圖。 圖9係用以說明對圖8之寫入指令之響應之圖。 圖10係用以說明該實施形態之記憶體系統中所應用之Trim指令之圖。 圖11係用以說明表示物理位址之區塊編號及偏移之圖。 圖12係用以說明根據寫入指令而執行之寫入動作之圖。 圖13係用以說明跳過不良頁之寫入動作之圖。 圖14係用以說明跳過不良頁之寫入動作之另一例之圖。 圖15係用以說明將邏輯位址與資料之對寫入至區塊內之頁之動作之圖。 圖16係用以說明將資料寫入至區塊內之頁之使用者資料區域、且將該資料之邏輯位址寫入至該頁之冗長區域之動作之圖。 圖17係用以說明於使用超級區塊之情形時之區塊編號與偏移之關係之圖。 圖18係用以說明該實施形態之記憶體系統中所應用之最大區塊編號獲得(get)指令之圖。 圖19係用以說明對最大區塊編號獲得指令之響應之圖。 圖20係用以說明該實施形態之記憶體系統中所應用之區塊尺寸獲得指令之圖。 圖21係用以說明對區塊尺寸獲得指令之響應之圖。 圖22係用以說明該實施形態之記憶體系統中所應用之區塊分配(allocate)指令(區塊分配請求)之圖。 圖23係用以說明對區塊分配指令之響應之圖。 圖24係表示由主機與該實施形態之記憶體系統而執行之區塊信息取得處理之序列圖。 圖25係表示由主機與該實施形態之記憶體系統而執行之寫入處理之序列之序列圖。 圖26係表示將相對於已經寫入之資料之更新資料寫入之資料更新動作之圖。 圖27係用以說明將由該實施形態之記憶體系統而管理之區塊管理表格更新之動作之圖。 圖28係用以說明將由主機而管理之查找表(邏輯物理位址轉換表格)更新之動作之圖。 圖29係用以說明根據表示與應無效化之資料對應之區塊編號及物理位址之來自主機之通知將區塊管理表格更新之動作的圖。 圖30係用以說明該實施形態之記憶體系統中所應用之讀取指令之圖。 圖31係用以說明由該實施形態之記憶體系統而執行之讀取動作之圖。 圖32係用以說明根據來自主機之讀取指令,讀取分別儲存於不同之物理記憶位置之資料部之動作之圖。 圖33係表示由主機與該實施形態之記憶體系統而執行之讀取處理之序列之序列圖。 圖34係用以說明該實施形態之記憶體系統中所應用之垃圾回收(GC)控制指令之圖。 圖35係用以說明該實施形態之記憶體系統中所應用之GC用回調指令之圖。 圖36係表示由主機與該實施形態之記憶體系統而執行之垃圾回收(GC)動作之順序之序列圖。 圖37係用以說明為了垃圾回收(GC)而執行之資料複製動作之例之圖。 圖38係用以說明根據圖37之資料複製動作之結果而更新之主機之查找表之內容之圖。
Claims (15)
- 一種記憶體系統,其係能夠連接於主機者,且具備:非揮發性記憶體,其包含複數個區塊,上述複數個區塊各自包含複數個頁;以及控制器,其電性連接於上述非揮發性記憶體,且對上述非揮發性記憶體進行控制;上述控制器以如下方式構成:於自上述主機接收到指定第1邏輯位址與第1區塊編號之寫入請求之情形時,決定應寫入來自上述主機之資料之具有上述第1區塊編號之第1區塊內之第1位置,將來自上述主機之資料寫入至上述第1區塊內之上述第1位置,且將表示上述第1位置之第1區塊內物理位址或上述第1邏輯位址、與上述第1區塊編號及上述第1區塊內物理位址之組之任一者通知給上述主機;且上述第1區塊內物理位址由第1區塊內偏移表示,上述第1區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數表示自上述第1區塊之開端到上述第1位置之偏移。
- 如請求項1之記憶體系統,其中上述控制器以如下方式構成:於自上述主機接收到指定上述第1區塊編號與上述第1區塊內物理位址之讀取請求之情形時,基於上述第1區塊編號與上述第1區塊內物理位址,自上述第1區塊內之上述第1位置讀取資料。
- 如請求項1之記憶體系統,其中上述控制器以如下方式構成:於自上述主機接收到指定用於上述非揮發性記憶體之垃圾回收之複製源區塊編號及複製目的地區塊編號之控制指令之情形時,自上述複數個區塊中選擇具有上述複製源區塊編號之第2區塊與具有上述複製目的地區塊編號之第3區塊,決定應寫入儲存於上述第2區塊之有效資料之上述第3區塊內之複製目的地位置,將上述有效資料複製至上述第3區塊之上述複製目的地位置,且將上述有效資料之邏輯位址、上述複製目的地區塊編號、及表示上述複製目的地位置之第2區塊內物理位址通知給上述主機;且上述第2區塊內物理位址由第2區塊內偏移表示,上述第2區塊內偏移係以上述粒度之倍數表示自上述第3區塊之開端到上述複製目的地位置之偏移。
- 如請求項3之記憶體系統,其中上述控制器以如下方式構成:於自上述主機接收到上述寫入請求之情形時,將上述第1邏輯位址與來自上述主機之資料一起寫入至上述第1區塊,於自上述主機接收到上述控制指令之情形時,將儲存於上述第2區塊內之上述有效資料及上述有效資料之邏輯位址兩者複製至上述第3區塊。
- 如請求項1之記憶體系統,其中上述控制器以如下方式構成:管理上述複數個區塊內之空閒區塊群,且於自上述主機接收到區塊分配請求之情形時,將上述空閒區塊群中之一個空閒區塊分配給上述主機,且將上述被分配之區塊之區塊編號通知給上述主機, 上述第1區塊編號表示由上述控制器分配給上述主機之上述空閒區塊之區塊編號。
- 如請求項1之記憶體系統,其中上述控制器以如下方式構成:於自上述主機接收到請求最大區塊編號之第1指令之情形時,將表示上述複數個區塊之數量之最大區塊編號通知給上述主機,於自上述主機接收到請求區塊尺寸之第2指令之情形時,將上述複數個區塊各者之區塊尺寸通知給上述主機。
- 如請求項6之記憶體系統,其中上述控制器以如下方式構成:於上述第2指令包含區塊編號之情形時,將具有包含於上述第2指令中之上述區塊編號之區塊之區塊尺寸通知給上述主機。
- 一種記憶體系統,其係能夠連接於主機者,且具備:非揮發性記憶體,其包含複數個區塊,上述複數個區塊各自包含複數個頁;以及控制器,其電性連接於上述非揮發性記憶體,且對上述非揮發性記憶體進行控制;上述控制器以如下方式構成:於自上述主機接收到請求最大區塊編號之第1指令之情形時,將表示上述複數個區塊之數之最大區塊編號通知給上述主機,於自上述主機接收到請求區塊尺寸之第2指令之情形時,將上述複數個區塊各者之區塊尺寸通知給上述主機, 於自上述主機接收到指定第1邏輯位址與第1區塊編號之寫入請求之情形時,決定應寫入來自上述主機之資料之具有上述第1區塊編號之第1區塊內之第1位置,將來自上述主機之資料寫入至上述第1區塊內之上述第1位置,且將表示上述第1位置之第1區塊內物理位址或上述第1邏輯位址、與上述第1區塊編號及上述第1區塊內物理位址之組之任一者通知給上述主機。
- 如請求項8之記憶體系統,其中上述控制器以如下方式構成:於自上述主機接收到指定上述第1區塊編號與上述第1區塊內物理位址之讀取請求之情形時,基於上述第1區塊編號與上述第1區塊內物理位址,自上述第1區塊內之上述第1位置讀取資料。
- 如請求項8之記憶體系統,其中上述控制器以如下方式構成:於自上述主機接收到指定用於上述非揮發性記憶體之垃圾回收之複製源區塊編號及複製目的地區塊編號之控制指令之情形時,自上述複數個區塊中選擇具有上述複製源區塊編號之第2區塊與具有上述複製目的地區塊編號之第3區塊,決定應寫入儲存於上述第2區塊之有效資料之上述第3區塊內之複製目的地位置,將上述有效資料複製至上述第3區塊之上述複製目的地位置,且將上述有效資料之邏輯位址、上述複製目的地區塊編號、及表示上述複製目的地位置之第2區塊內物理位址通知給上述主機;且上述第1區塊內物理位址由第1區塊內偏移表示,上述第1區塊內偏移係以具有與頁尺寸不同之尺寸之粒度之倍數表示自上述第1區塊之開端到上述第1位置之偏移, 上述第2區塊內物理位址由第2區塊內偏移表示,上述第2區塊內偏移係以上述粒度之倍數表示自上述第3區塊之開端到上述複製目的地位置之偏移。
- 如請求項10之記憶體系統,其中上述控制器以如下方式構成:於自上述主機接收到上述寫入請求之情形時,將上述第1邏輯位址與來自上述主機之資料一起寫入至上述第1區塊,於自上述主機接收到上述控制指令之情形時,將儲存於上述第2區塊內之上述有效資料及上述有效資料之邏輯位址兩者複製至上述第3區塊。
- 一種控制方法,其係控制包含各自包含複數個頁之複數個區塊的非揮發性記憶體之控制方法,且具備:於自主機接收到指定第1邏輯位址與第1區塊編號之寫入請求之情形時,執行如下動作:決定應寫入來自上述主機之資料之具有上述第1區塊編號之第1區塊內之第1位置;將來自上述主機之資料寫入至上述第1區塊內之上述第1位置;以及將表示上述第1位置之第1區塊內物理位址或上述第1邏輯位址、與上述第1區塊編號及上述第1區塊內物理位址之組之任一者通知給上述主機;且上述第1區塊內物理位址由第1區塊內偏移表示,上述第1區塊內偏移係以具有與頁尺寸不同尺寸之粒度之倍數表示自上述第1區塊之開端到上述第1位置之偏移。
- 如請求項12之控制方法,其進而具備:於自上述主機接收到指定上 述第1區塊編號與上述第1區塊內物理位址之讀取請求之情形時,基於上述第1區塊編號與上述第1區塊內物理位址,自上述第1區塊內之上述第1位置讀取資料。
- 一種控制方法,其係控制包含各自包含複數個頁之複數個區塊的非揮發性記憶體之控制方法,且具備:於自上述主機接收到請求最大區塊編號之第1指令之情形時,將表示上述複數個區塊之數之最大區塊編號通知給上述主機;於自上述主機接收到請求區塊尺寸之第2指令之情形時,將上述複數個區塊各者之區塊尺寸通知給上述主機;以及於自上述主機接收到指定第1邏輯位址與第1區塊編號之寫入請求之情形時,執行如下動作:決定應寫入來自上述主機之資料之具有上述第1區塊編號之第1區塊內之第1位置;將來自上述主機之資料寫入至上述第1區塊內之上述第1位置;且將表示上述第1位置之第1區塊內物理位址或上述第1邏輯位址、與上述第1區塊編號及上述第1區塊內物理位址之組之任一者通知給上述主機。
- 如請求項14之之控制方法,其進而具備:於自上述主機接收到指定上述第1區塊編號與上述第1區塊內物理位址之讀取請求之情形時,基於上述第1區塊編號與上述第1區塊內物理位址,自上述第1區塊內之上述第1位置讀取資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017208105A JP6982468B2 (ja) | 2017-10-27 | 2017-10-27 | メモリシステムおよび制御方法 |
JP2017-208105 | 2017-10-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201917579A TW201917579A (zh) | 2019-05-01 |
TWI674502B true TWI674502B (zh) | 2019-10-11 |
Family
ID=66242977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107122913A TWI674502B (zh) | 2017-10-27 | 2018-07-03 | 記憶體系統及控制方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10719437B2 (zh) |
JP (1) | JP6982468B2 (zh) |
CN (2) | CN109725846B (zh) |
TW (1) | TWI674502B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI781477B (zh) * | 2020-11-03 | 2022-10-21 | 畢鑑忠 | 主機及其記憶體模組以及記憶體控制器 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6785205B2 (ja) | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP6982468B2 (ja) * | 2017-10-27 | 2021-12-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP2019079464A (ja) | 2017-10-27 | 2019-05-23 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US11263124B2 (en) | 2018-08-03 | 2022-03-01 | Micron Technology, Inc. | Host-resident translation layer validity check |
US11226907B2 (en) | 2018-12-19 | 2022-01-18 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11226894B2 (en) * | 2018-12-21 | 2022-01-18 | Micron Technology, Inc. | Host-based flash memory maintenance techniques |
KR20200122086A (ko) | 2019-04-17 | 2020-10-27 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치 |
KR20200139913A (ko) * | 2019-06-05 | 2020-12-15 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메타 정보 저장 장치 |
KR20210001546A (ko) | 2019-06-28 | 2021-01-06 | 에스케이하이닉스 주식회사 | 슬립모드에서 메모리 시스템의 내부데이터를 전송하는 장치 및 방법 |
US11294825B2 (en) | 2019-04-17 | 2022-04-05 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
US10860228B1 (en) * | 2019-06-24 | 2020-12-08 | Western Digital Technologies, Inc. | Method to switch between traditional SSD and open-channel SSD without data loss |
KR20210079894A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP7318899B2 (ja) * | 2020-01-02 | 2023-08-01 | レベル スリー コミュニケーションズ,エルエルシー | 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法 |
JP2022042762A (ja) * | 2020-09-03 | 2022-03-15 | キオクシア株式会社 | 不揮発性メモリ、メモリシステム、および、不揮発性メモリの制御方法 |
JP2023001494A (ja) * | 2021-06-21 | 2023-01-06 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN113885808B (zh) * | 2021-10-28 | 2024-03-15 | 合肥兆芯电子有限公司 | 映射信息记录方法以及存储器控制电路单元与存储装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201337560A (zh) * | 2011-12-12 | 2013-09-16 | Apple Inc | 邏輯區塊位址位元映射之使用 |
TW201403318A (zh) * | 2012-07-02 | 2014-01-16 | Infomicro Electronics Shenzhen Ltd | 具耐用轉換層並能轉移暫存讓記憶體耐磨損的硬碟驅動器 |
TW201732602A (zh) * | 2016-01-15 | 2017-09-16 | 三星電子股份有限公司 | 版本儲存裝置及其方法 |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838614A (en) * | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
US6883063B2 (en) * | 1998-06-30 | 2005-04-19 | Emc Corporation | Method and apparatus for initializing logical objects in a data storage system |
US6804674B2 (en) | 2001-07-20 | 2004-10-12 | International Business Machines Corporation | Scalable Content management system and method of using the same |
US7512957B2 (en) | 2004-12-03 | 2009-03-31 | Microsoft Corporation | Interface infrastructure for creating and interacting with web services |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US7934049B2 (en) | 2005-09-14 | 2011-04-26 | Sandisk Corporation | Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory |
US7769978B2 (en) | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US20080172519A1 (en) | 2007-01-11 | 2008-07-17 | Sandisk Il Ltd. | Methods For Supporting Readydrive And Readyboost Accelerators In A Single Flash-Memory Storage Device |
US8959280B2 (en) | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
JPWO2009153982A1 (ja) | 2008-06-20 | 2011-11-24 | パナソニック株式会社 | 複数区分型不揮発性記憶装置およびシステム |
US9323658B2 (en) | 2009-06-02 | 2016-04-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Multi-mapped flash RAID |
US8688894B2 (en) | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
CN101645043B (zh) * | 2009-09-08 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 写数据的方法、读数据的方法及存储设备 |
US8255661B2 (en) | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US20110137966A1 (en) | 2009-12-08 | 2011-06-09 | Netapp, Inc. | Methods and systems for providing a unified namespace for multiple network protocols |
JP5183662B2 (ja) * | 2010-03-29 | 2013-04-17 | 三菱電機株式会社 | メモリ制御装置及びメモリ制御方法 |
JP5589205B2 (ja) | 2011-02-23 | 2014-09-17 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
US20120246385A1 (en) | 2011-03-22 | 2012-09-27 | American Megatrends, Inc. | Emulating spi or 12c prom/eprom/eeprom using flash memory of microcontroller |
US20130191580A1 (en) | 2012-01-23 | 2013-07-25 | Menahem Lasser | Controller, System, and Method for Mapping Logical Sector Addresses to Physical Addresses |
JP5687639B2 (ja) * | 2012-02-08 | 2015-03-18 | 株式会社東芝 | コントローラ、データ記憶装置及びプログラム |
JP5597666B2 (ja) | 2012-03-26 | 2014-10-01 | 株式会社東芝 | 半導体記憶装置、情報処理システムおよび制御方法 |
US9075710B2 (en) | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
WO2013171792A1 (en) * | 2012-05-16 | 2013-11-21 | Hitachi, Ltd. | Storage control apparatus and storage control method |
CN102789427B (zh) | 2012-07-17 | 2015-11-25 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
US9454474B2 (en) * | 2013-03-05 | 2016-09-27 | Western Digital Technologies, Inc. | Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive |
EP2973774A1 (en) | 2013-03-12 | 2016-01-20 | PPG Industries Ohio, Inc. | Organic light emitting diode with light extracting layer |
TWI473976B (zh) | 2013-06-28 | 2015-02-21 | Univ Nat Taiwan Ocean | 液面高度量測模組 |
JP6443794B2 (ja) * | 2013-08-16 | 2018-12-26 | エルエスアイ コーポレーション | ホストとコントローラとの間でパーティション化された変換レイヤ |
CN104572478B (zh) * | 2013-10-14 | 2018-07-06 | 联想(北京)有限公司 | 数据存取方法和数据存取装置 |
US20150186259A1 (en) | 2013-12-30 | 2015-07-02 | Sandisk Technologies Inc. | Method and apparatus for storing data in non-volatile memory |
US10812313B2 (en) | 2014-02-24 | 2020-10-20 | Netapp, Inc. | Federated namespace of heterogeneous storage system namespaces |
KR20150106778A (ko) * | 2014-03-12 | 2015-09-22 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 제어 방법 |
US9959203B2 (en) | 2014-06-23 | 2018-05-01 | Google Llc | Managing storage devices |
EP3260985B1 (en) * | 2014-06-27 | 2019-02-27 | Huawei Technologies Co., Ltd. | Controller, flash memory apparatus, and method for writing data into flash memory apparatus |
US20160041760A1 (en) * | 2014-08-08 | 2016-02-11 | International Business Machines Corporation | Multi-Level Cell Flash Memory Control Mechanisms |
KR20160027805A (ko) * | 2014-09-02 | 2016-03-10 | 삼성전자주식회사 | 비휘발성 메모리 장치를 위한 가비지 컬렉션 방법 |
US9977734B2 (en) | 2014-12-11 | 2018-05-22 | Toshiba Memory Corporation | Information processing device, non-transitory computer readable recording medium, and information processing system |
JP6406707B2 (ja) | 2015-03-23 | 2018-10-17 | 東芝メモリ株式会社 | 半導体記憶装置 |
US20160321010A1 (en) | 2015-04-28 | 2016-11-03 | Kabushiki Kaisha Toshiba | Storage system having a host directly manage physical data locations of storage device |
CN105005536B (zh) * | 2015-07-01 | 2019-08-06 | 忆正科技(武汉)有限公司 | 固态存储设备、主机的工作方法及固态存储设备、主机 |
JP2017027388A (ja) | 2015-07-23 | 2017-02-02 | 株式会社東芝 | メモリシステムおよび不揮発性メモリの制御方法 |
US10102138B2 (en) | 2015-10-22 | 2018-10-16 | Western Digital Technologies, Inc. | Division of data storage in single-storage device architecture |
US10705952B2 (en) | 2015-11-04 | 2020-07-07 | Sandisk Technologies Llc | User space data storage management |
US9990304B2 (en) | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
US9996473B2 (en) | 2015-11-13 | 2018-06-12 | Samsung Electronics., Ltd | Selective underlying exposure storage mapping |
US9946642B2 (en) | 2015-11-13 | 2018-04-17 | Samsung Electronics Co., Ltd | Distributed multimode storage management |
JP6414853B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
TWI595492B (zh) | 2016-03-02 | 2017-08-11 | 群聯電子股份有限公司 | 資料傳輸方法、記憶體控制電路單元與記憶體儲存裝置 |
JP6523193B2 (ja) * | 2016-03-08 | 2019-05-29 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6448570B2 (ja) * | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6444917B2 (ja) | 2016-03-08 | 2018-12-26 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US20180173619A1 (en) * | 2016-12-21 | 2018-06-21 | Sandisk Technologies Llc | System and Method for Distributed Logical to Physical Address Mapping |
JP6709180B2 (ja) | 2017-02-28 | 2020-06-10 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10338842B2 (en) | 2017-05-19 | 2019-07-02 | Samsung Electronics Co., Ltd. | Namespace/stream management |
US10592408B2 (en) | 2017-09-13 | 2020-03-17 | Intel Corporation | Apparatus, computer program product, system, and method for managing multiple regions of a memory device |
JP6785205B2 (ja) | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP6982468B2 (ja) * | 2017-10-27 | 2021-12-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
-
2017
- 2017-10-27 JP JP2017208105A patent/JP6982468B2/ja active Active
-
2018
- 2018-05-21 US US15/984,944 patent/US10719437B2/en active Active
- 2018-07-03 TW TW107122913A patent/TWI674502B/zh active
- 2018-07-13 CN CN201810767079.9A patent/CN109725846B/zh active Active
- 2018-07-13 CN CN202111461348.7A patent/CN114115747B/zh active Active
-
2020
- 2020-06-12 US US16/899,805 patent/US11416387B2/en active Active
-
2022
- 2022-07-07 US US17/859,686 patent/US11748256B2/en active Active
-
2023
- 2023-06-28 US US18/215,786 patent/US12066931B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201337560A (zh) * | 2011-12-12 | 2013-09-16 | Apple Inc | 邏輯區塊位址位元映射之使用 |
TW201346553A (zh) * | 2011-12-12 | 2013-11-16 | Apple Inc | 邏輯區塊位址位元映射之使用 |
TW201403318A (zh) * | 2012-07-02 | 2014-01-16 | Infomicro Electronics Shenzhen Ltd | 具耐用轉換層並能轉移暫存讓記憶體耐磨損的硬碟驅動器 |
TW201732602A (zh) * | 2016-01-15 | 2017-09-16 | 三星電子股份有限公司 | 版本儲存裝置及其方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI781477B (zh) * | 2020-11-03 | 2022-10-21 | 畢鑑忠 | 主機及其記憶體模組以及記憶體控制器 |
US11749335B2 (en) | 2020-11-03 | 2023-09-05 | Jianzhong Bi | Host and its memory module and memory controller |
Also Published As
Publication number | Publication date |
---|---|
JP6982468B2 (ja) | 2021-12-17 |
US20190129838A1 (en) | 2019-05-02 |
US11416387B2 (en) | 2022-08-16 |
US20230333978A1 (en) | 2023-10-19 |
US11748256B2 (en) | 2023-09-05 |
US10719437B2 (en) | 2020-07-21 |
JP2019079463A (ja) | 2019-05-23 |
US12066931B2 (en) | 2024-08-20 |
TW201917579A (zh) | 2019-05-01 |
CN109725846A (zh) | 2019-05-07 |
CN109725846B (zh) | 2021-12-31 |
US20220342809A1 (en) | 2022-10-27 |
CN114115747B (zh) | 2023-12-22 |
US20200310961A1 (en) | 2020-10-01 |
CN114115747A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI674502B (zh) | 記憶體系統及控制方法 | |
TWI661301B (zh) | 記憶體系統及控制非揮發性記憶體之控制方法 | |
US11669444B2 (en) | Computing system and method for controlling storage device | |
US11467955B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN109726139B (zh) | 存储器系统及控制方法 | |
US11797436B2 (en) | Memory system and method for controlling nonvolatile memory | |
JP7013546B2 (ja) | メモリシステム | |
JP7167295B2 (ja) | メモリシステムおよび制御方法 | |
JP7204020B2 (ja) | 制御方法 | |
JP7490714B2 (ja) | メモリシステムおよび制御方法 | |
JP2022179798A (ja) | メモリシステムおよび制御方法 | |
JP2023021450A (ja) | メモリシステム |