TW202338615A - 記憶體系統及控制方法 - Google Patents

記憶體系統及控制方法 Download PDF

Info

Publication number
TW202338615A
TW202338615A TW111128330A TW111128330A TW202338615A TW 202338615 A TW202338615 A TW 202338615A TW 111128330 A TW111128330 A TW 111128330A TW 111128330 A TW111128330 A TW 111128330A TW 202338615 A TW202338615 A TW 202338615A
Authority
TW
Taiwan
Prior art keywords
data
memory
controller
host
memory system
Prior art date
Application number
TW111128330A
Other languages
English (en)
Inventor
岩城康行
丸屋宏二
Original Assignee
日商鎧俠股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日商鎧俠股份有限公司 filed Critical 日商鎧俠股份有限公司
Publication of TW202338615A publication Critical patent/TW202338615A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple 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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提供一種可有效率地提供內部資料的記憶體系統及控制方法。控制器構成為,基於來自主機的第一寫入命令將第一資料寫入第一記憶區域,確定被分配給所述寫入的第一資料的邏輯位址,自第二記憶區域讀出管理資料中所包含的、由所述控制器生成的內部資料,將所述讀出的內部資料寫入所述第一記憶區域的第一記憶位置,使所述第一記憶位置與所述邏輯位址建立對應關係,與自所述主機接收到指定所述邏輯位址的讀取命令相應地,自所述第一記憶位置讀出所述內部資料,將自所述第一記憶位置讀出的所述內部資料發送至所述主機。

Description

記憶體系統及控制方法
[相關申請案]本申請案享有以日本專利申請案2022-044347號(申請日:2022年3月18日)為基礎申請案的優先權。本申請案藉由參照該基礎申請案而包含基礎申請案的全部內容。
本發明的實施方式是有關於一種記憶體系統及控制方法。
近年來,包括非揮發性記憶體的記憶體系統廣泛普及。作為此種記憶體系統之一,已知有包括反及(Not AND,NAND)型快閃記憶體的固體狀態驅動機(Solid State Drive,SSD)。
為了維護或管理如SSD般的記憶體系統,有時主機會獲取記憶體系統的內部資料,並將所獲取的內部資料用於分析。
作為主機獲取記憶體系統的內部資料的方法,可使用將作為記憶體系統的供應商特有的命令的供應商特定命令發送至記憶體系統的方法。
一般通用的操作系統的標準設備驅動器不支持供應商特定命令。因此,主機必須準備支持供應商特定命令的專用程式。
若使用帶外通訊,則能夠與記憶體系統進行通訊,而不依賴於主機的操作系統的環境。其中,通常帶外通訊的通訊速度為低速。因此,於內部資料的大小較大時,為了獲取內部資料而需要大量時間。
本發明的一實施方式所欲解決的課題在於提供一種可有效率地提供內部資料的記憶體系統及控制方法。
根據實施方式,記憶體系統能夠與主機連接,且包括:非揮發性記憶體,包括基於指定邏輯位址的命令來記憶用戶資料的第一記憶區域、以及記憶管理資料的第二記憶區域;以及控制器,構成為控制所述非揮發性記憶體,所述控制器構成為,基於來自所述主機的第一寫入命令將第一資料寫入所述第一記憶區域,確定被分配給所述寫入的第一資料的邏輯位址,自所述第二記憶區域讀出所述管理資料中所包含的、由所述控制器生成的內部資料,將所述讀出的內部資料寫入所述第一記憶區域的第一記憶位置,使所述第一記憶位置與所述邏輯位址建立對應關係,與自所述主機接收到指定所述邏輯位址的讀取命令相應地,自所述第一記憶位置讀出所述內部資料,將自所述第一記憶位置讀出的所述內部資料發送至所述主機。
以下,參照圖式來對各實施方式進行說明。
(第一實施方式) 圖1是表示包括第一實施方式的記憶體系統3的資訊處理系統1的結構例的方塊圖。第一實施方式的記憶體系統3是包括非揮發性記憶體的儲存設備。
資訊處理系統1包括主機(主機設備)2及記憶體系統3。主機2與記憶體系統3經由第一匯流排4能夠連接。例如依據非揮發性記憶體表達 TM(NVM Express TM,NVMe TM)標準或者串行連接小型電腦系統介面(Serial Attached SCSI,SAS)標準來執行主機2與記憶體系統3之間經由第一匯流排4的通訊。
主機2是資訊處理裝置。主機2例如是個人電腦或伺服器電腦。主機2存取記憶體系統3。例如,主機2將用於寫入資料的命令即寫入命令發送至記憶體系統3。另外,例如主機2將用於讀出資料的命令即讀取命令發送至記憶體系統3。
記憶體系統3是半導體儲存設備。記憶體系統3例如是包含作為非揮發性記憶體的一例的NAND型快閃記憶體7的SSD。記憶體系統3將資料寫入非揮發性記憶體。然後,記憶體系統3自非揮發性記憶體讀出資料。
第一匯流排4是例如依據周邊組件互連表達 TM(PCI Express TM,PCIe TM)標準的匯流排。第一匯流排4主要用於將資料及輸入/輸出(Input/Output,I/O)命令自主機2發送至記憶體系統3、以及將資料及響應自記憶體系統3發送至主機2。I/O命令是用於對非揮發性記憶體進行資料的寫入或讀出的命令。作為I/O命令,例如有寫入命令、讀取命令。
接著,對主機2的內部結構進行說明。主機2包括處理器21及記憶體22。
處理器21是中央處理單元(Central Processing Unit,CPU)。處理器21經由第一匯流排4與記憶體系統3進行通訊。處理器21執行加載至記憶體22中的軟體(主機軟體)。主機軟體可自記憶體系統3、或主機2中所包括的或者與主機2連接的另一儲存設備加載至記憶體22中。主機軟體包括操作系統、文件系統、設備驅動器、應用程式等。
記憶體22是揮發性的記憶體。記憶體22例如為如動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)般的隨機存取記憶體。
接著,對記憶體系統3的內部結構進行說明。記憶體系統3包括控制器6、NAND型快閃記憶體(以下,簡稱為NAND記憶體)7及動態隨機存取記憶體(DRAM)8。
控制器6是作為控制電路的一例的記憶體控制器。控制器6例如是如晶片系統(System-on-a-Chip,SoC)般的半導體設備。控制器6與NAND記憶體7能夠通訊地連接。控制器6執行將資料寫入NAND記憶體7及自NAND記憶體7讀出資料。另外,控制器6與DRAM 8能夠通訊地連接。控制器6執行將資料寫入DRAM 8及自DRAM 8讀出資料。另外,控制器6經由第一匯流排4執行與主機2的通訊。
NAND記憶體7是非揮發性的記憶體。NAND記憶體7例如是二維結構的快閃記憶體或三維結構的快閃記憶體。NAND記憶體7具有多個區塊。區塊是記憶於NAND記憶體7中的資料的擦除的最小單位。
DRAM 8是揮發性的記憶體。DRAM 8例如記憶邏輯物理位址轉換表(logical-to-physical translation table:L2P表)81。L2P表81是記憶表示邏輯位址各自與物理位址各自之間的對應關係的映射資訊的表。邏輯位址例如是邏輯區塊位址(Logical Block Address,LBA)。物理位址是表示NAND記憶體7中的物理記憶位置的位址。
接著,對控制器6的內部結構進行說明。控制器6包含主機介面(主機I/F)61、CPU 62、靜態隨機存取記憶體(Static Random Access Memory,SRAM)63、直接記憶體存取控制器(Direct Memory Access Controller,DMAC)64、錯誤校驗與糾正(Error Checking and Correction,ECC)電路65、NAND介面(NAND I/F)66、以及DRAM介面(DRAM I/F)67。該些各部與內部匯流排60連接。
主機介面61是硬體介面電路。主機介面61執行與主機2的通訊。
CPU 62是處理器。CPU 62控制主機介面61、SRAM 56、DMAC 64、ECC電路65、NAND介面66及DRAM介面67。CPU 62自未圖示的唯讀記憶體(Read Only Memory,ROM)或NAND記憶體7將控制程式(韌體(firmware))加載至SRAM 63或DRAM 8中。CPU 62藉由執行控制程式(韌體)而進行各種處理。CPU 62例如作為快閃轉換層(Flash Translation Layer,FTL),執行對記憶於NAND記憶體7中的資料的管理及對NAND記憶體7中所包含的區塊的管理。所謂對記憶於NAND記憶體7中的資料的管理,例如包括表示邏輯位址各自與物理位址各自之間的對應關係的映射資訊的管理。CPU 62使用L2P表81來管理邏輯位址與物理位址之間的映射。另外,所謂NAND記憶體7中所包含的區塊的管理,例如包含NAND記憶體7中所包含的不良區塊(壞區塊)的管理、損耗平衡、以及垃圾回收(garbage collection)。
SRAM 63是揮發性的記憶體。SRAM 63例如可用作對自主機2接收到的寫入資料進行臨時記憶的寫入緩衝器。另外,SRAM 63可用作由CPU 62執行的韌體的作業區域。代替SRAM 63而可使用DRAM,或者除SRAM 63以外,可使用DRAM。
DMAC 64是執行直接記憶體存取(DMA)的電路。DMAC 64執行主機2的記憶體22與DRAM 8或SRAM 63之間的資料傳輸。
ECC電路65是執行資料的編碼及資料的解碼的電路。於將資料寫入NAND記憶體7時,ECC電路65執行編碼以將糾錯碼(Error Correction Code,ECC)作為冗餘碼附加於所寫入的資料中。於自NAND記憶體7讀出資料時,ECC電路65使用所讀出的資料中附加的ECC來執行進行所讀出的資料的糾錯的解碼。
NAND介面66是對NAND記憶體7進行控制的電路。NAND介面66包括NAND控制器661-0、NAND控制器661-1、NAND控制器661-2、...、NAND控制器661-31。NAND控制器661-0、NAND控制器661-1、NAND控制器661-2、...、NAND控制器661-31各自經由通道ch0、通道ch1、通道ch2、...、通道ch31與一個以上的快閃晶粒連接。快閃晶粒亦稱為快閃晶片。NAND控制器661-0、NAND控制器661-1、NAND控制器661-2、…、NAND控制器661-31各自例如對NAND記憶體7中所包含的快閃晶粒#0、快閃晶粒#1、快閃晶粒#2、…、快閃晶粒#31分別進行控制。NAND控制器661-0、NAND控制器661-1、NAND控制器661-2、...、NAND控制器661-31各自具有相同的結構。
DRAM介面67是對DRAM 8進行控制的電路。DRAM介面67將資料寫入DRAM 8中。另外,DRAM介面67自DRAM 8讀出資料。
接著,對記憶於DRAM 8中的資訊進行說明。記憶於DRAM 8中的資訊包括L2P表81。
L2P表81按照如扇區(sector)般的規定的大小對邏輯位址各自與物理位址各自之間的映射進行管理。
接著,對主機介面61的內部結構進行說明。主機介面61包括第一介面611。
第一介面611例如是依據PCIe TM標準來控制與主機2的通訊的介面電路。第一介面611經由第一匯流排4在與主機2之間發送/接收I/O命令、資料及響應。經由第一匯流排4由第一介面611執行的主機2與記憶體系統3之間的通訊被稱為帶內通訊。
接著,對NAND記憶體7的結構例進行說明。圖2是表示實施方式的記憶體系統3中所包含的NAND記憶體7的結構例的方塊圖。
NAND記憶體7包含多個物理區塊BLK0~BLKx-1。物理區塊BLK0~物理區塊BLKx-1各自是針對NAND記憶體7的資料擦除動作的最小單位。資料擦除動作是擦除儲存在NAND記憶體7中的一部分資料的動作。物理區塊BLK0~物理區塊BLKx-1各自亦稱為擦除區塊、快閃區塊或記憶體區塊。物理區塊BLK0~物理區塊BLKx-1各自包含多頁P0~Py-1。頁P0~頁Py-1各自是針對NAND記憶體7的資料寫入動作及資料讀出動作的最小單位。資料寫入動作是用於寫入資料的動作。資料讀出動作是用於讀出資料的動作。頁P0~頁Py-1各自包括與同一字元線連接的多個記憶體單元。
接著,對NAND記憶體7中所包含的記憶區域進行說明。圖3是表示第一實施方式的記憶體系統3中所包含的NAND記憶體7的多個記憶區域的方塊圖。NAND記憶體7包括用戶區域71及專用區域72。
用戶區域71是對用戶資料進行記憶的記憶區域。用戶資料是基於指定邏輯位址的I/O命令自主機2存取的資料。
專用區域72是對管理資料進行記憶的記憶區域。管理資料是用於管理記憶體系統3的資料。管理資料例如包括L2P表81及表示各區塊的狀態的區塊管理資訊。另外,由控制器6生成的內部資料亦作為管理資料的一部分被記憶於專用區域72中。內部資料例如是用於分析記憶體系統3的不良情況的記憶體系統3的內部資訊。更詳細而言,內部資料例如是包括由韌體管理的日誌資訊、暫存器值、SRAM 63或DRAM 8的記憶體影像的資料的集合體。內部資料例如藉由控制器6記憶於SRAM 63中。而且,記憶於SRAM 63中的內部資料例如藉由控制器6定期地寫入專用區域72中。
接著,對CPU 62的功能結構的例子進行說明。圖4是表示第一實施方式的記憶體系統3的控制器6中所包含的CPU 62的功能結構的一例的圖。
CPU 62包括內部資料保存部621。
內部資料保存部621執行內部資料保存動作。內部資料保存動作包括:讀出記憶於專用區域72中的內部資料的動作、以及將所讀出的內部資料寫入用戶區域71中的動作。寫入用戶區域71的內部資料與其他用戶資料同樣地可基於指定邏輯位址的輸入/輸出命令由主機2讀出。
接著,對將內部資料保存在NAND記憶體7中的動作進行說明。圖5是表示於第一實施方式的記憶體系統3中執行的內部資料保存動作的例子的圖。
(1)控制器6將記憶於SRAM 63中的內部資料寫入NAND記憶體7的專用區域72中。控制器6亦可定期地執行該寫入動作。
(2)處理器21創建用於自用戶區域71獲取內部資料所需的文件(以下,稱為輸出文件)。於輸出文件的創建中,首先,應用程式(以下,稱為支持應用)211對操作系統(Operating System,OS)212請求創建輸出文件。接收到請求的OS 212將由文件系統213管理的新穎文件創建為輸出文件。OS 212將表示所創建的新穎文件(輸出文件)的文件標識符發送至支持應用211。支持應用211準備寫入輸出文件中的寫入資料。寫入輸出文件的寫入資料例如是虛擬資料或後述的多個標記區塊。支持應用211對OS 212請求將輸出文件寫入記憶體系統3。文件系統213基於來自OS 212的指示,將包含未被分配給其他文件的未使用的一個以上的邏輯位址(此處為LBA 3、LBA 5、LBA 12)的邏輯位址空間分配給輸出文件。邏輯位址空間中所包含的LBA的個數由輸出文件的大小決定。輸出文件的大小相當於內部資料的最大大小。
(3)處理器21將用於向記憶體系統3寫入與輸出文件對應的寫入資料(虛擬資料或標記區塊)的一個或多個的寫入命令發送至記憶體系統3。例如,於將LBA 3、LBA 5及LBA 12分配給輸出文件的寫入資料時,處理器21將指定LBA 3的寫入命令、指定LBA 5的寫入命令、以及指定LBA 12的寫入命令發佈給記憶體系統3。於所述情況下,OS 212請求設備驅動器214將與輸出文件對應的寫入資料寫入記憶體系統3中。設備驅動器214生成指定被分配給輸出文件(寫入資料)的LBA的寫入命令。然後,設備驅動器214將生成的寫入命令發佈給記憶體系統3。該寫入命令是指示將虛擬資料或標記區塊寫入NAND記憶體7的寫入命令。
(4)控制器6自主機2接收寫入命令。控制器6將由所接收到的寫入命令指定的LBA分別分配給用戶區域71中的任意記憶位置。控制器6將與寫入命令相關聯的寫入資料寫入所分配的記憶位置。L2P表81對邏輯位址(LBA)與表示記憶位置的物理位址(PBA)的對應關係進行記憶。
(5)內部資料保存部621讀出記憶於專用區域72中的內部資料。然後,內部資料保存部621將讀出的內部資料寫入用戶區域71的記憶位置。
(6)控制器6確定被分配給寫入用戶區域71中的輸出文件的寫入資料的LBA(LBA 3、LBA 5、LBA 12)。控制器6將確定的LBA(LBA 3、LBA 5、LBA 12)分配給寫入了內部資料的各個記憶位置。L2P表81更新所記憶的PBA與LBA之間的對應關係。
藉此,於自主機2接收到指定被分配給輸出文件的LBA(LBA 3、LBA 5、LBA 12)的讀取命令時,控制器6自用戶區域71讀出內部資料。然後,控制器6將內部資料發送至主機2作為對所接收到的讀取命令的響應。於將讀取命令發送至記憶體系統3的處理中,支持應用211對OS 212請求輸出文件的打開及讀出。根據所述請求,OS 212參照由文件系統213管理的文件管理資訊來確定被分配給輸出文件的LBA(LBA 3、LBA 5、LBA 12)。OS 212請求設備驅動器214讀出輸出文件。與該請求相應地,設備驅動器214生成指定被分配給輸出文件的LBA空間的讀取命令。此處,設備驅動器214生成指定LBA 3的讀取命令、指定LBA 5的讀取命令及指定LBA 12的讀取命令。設備驅動器214將生成的讀取命令發送至記憶體系統3。
接著,對向主機2提供內部資料的動作的順序進行說明。圖6是表示第一實施方式的記憶體系統3中執行的內部資料提供動作的順序的序列圖。
主機2創建輸出文件(S101)。主機2可基於自記憶體系統3應接收到的內部資料的大小來決定輸出文件的大小。具體而言,主機2生成具有預先規定的內部資料的最大大小以上的大小的輸出文件。
主機2將寫入命令發佈給記憶體系統3(S102)。寫入命令指定被分配給與輸出文件對應的寫入資料的邏輯位址空間(例如,一個以上的LBA)。另外,主機2亦可發佈多個寫入命令。多個寫入命令各自指定邏輯位址空間中所包含的邏輯位址中的任一者。
記憶體系統3的控制器6基於所接收到的寫入命令來執行寫入與寫入命令相關聯的寫入資料(S103)。控制器6將與寫入命令相關聯的寫入資料寫入用戶區域71的記憶位置。控制器6將被分配給寫入資料的邏輯位址空間、即由寫入命令指定的LBA分配給該記憶位置。
藉由手動操作,切斷對記憶體系統3的電力供給(S104)。
藉由手動操作,電力被再次供給至記憶體系統3(S105)。
控制器6對將內部資料自專用區域72寫入用戶區域71中的內部資料保存模式進行檢測(S106)。於所述情況下,控制器6可檢測於S105中手動操作時的特定操作作為內部資料保存模式。或者,控制器6亦可藉由參照S104中關閉電源之前設定的旗標來檢測內部資料保存模式。
控制器6確定與S102中發佈的寫入命令相關聯的LBA(S107)。控制器6可利用任意的方法來確定LBA。關於確定LBA的方法的具體例,列舉第二實施方式及第三實施方式來進行後述。
控制器6將內部資料寫入用戶區域71的記憶位置(S108)。於所述情況下,控制器6自專用區域72中讀出內部資料。控制器6將讀出的內部資料寫入用戶區域71。
控制器6將S107中確定的LBA分配給S108中寫入了內部資料的記憶位置(S109)。藉此,控制器6將寫入了內部資料的記憶位置與被確定的LBA建立對應關係。
控制器6執行記憶體系統3的初始化動作,正常啟動記憶體系統3(S110)。記憶體系統3能夠在與主機2之間發送/接收I/O命令或對I/O命令的響應。
主機2對記憶體系統3發佈讀取命令(S111)。讀取命令指定被分配給輸出文件的邏輯位址空間。另外,主機2亦可對記憶體系統3發佈多個讀取命令。多個讀取命令各自指定被分配給輸出文件的邏輯位址空間中所包含的LBA中的任一者。
與自主機2接收到讀取命令相應地,控制器6讀出內部資料(S112)。於所述情況下,控制器6自與由接收到的讀取命令指定的邏輯位址對應的記憶位置中讀出內部資料。然後,控制器6將讀出的內部資料發送至主機2來作為對接收到的讀取命令的響應。
如以上說明般,根據第一實施方式,記憶體系統3可藉由依據I/O命令的通訊來向主機2提供內部資料。因此,即使於主機2不具有能夠向記憶體系統3發佈供應商特定命令的環境時,記憶體系統3亦可有效率地向主機2提供內部資料。
(第二實施方式) 接著,對第二實施方式進行說明。圖7是表示包含第二實施方式的記憶體系統3a的資訊處理系統1a的結構例的方塊圖。
第二實施方式的記憶體系統3a的幾乎所有的構成部件均與圖1中說明的第一實施方式的記憶體系統3相同。因此,將關注與第一實施方式的記憶體系統3的不同方面進行說明。
第二實施方式的記憶體系統3a除了經由第一匯流排4以外還能夠經由第二匯流排5與主機2連接。
第二匯流排5例如是依據通用異步收發器(Universal Asynchronous Receiver/Transmitter,UART)標準的匯流排。第二匯流排5主要用於記憶體系統3a的維護等。
接著,對主機介面61a的內部結構進行說明。主機介面61a除了包括第一介面611以外更包括第二介面612。
第二介面612例如是依據UART標準來對與主機2的通訊進行控制的介面電路。經由第二匯流排5由第二介面612執行的主機2與記憶體系統3a之間的通訊被稱為帶外通訊。
接著,對將第二實施方式的記憶體系統3a的內部資料保存在NAND記憶體7中的動作進行說明。圖8是表示於第二實施方式的記憶體系統3a中執行的內部資料保存動作的例子的圖。圖8中的(1)~(4)的處理與圖5中的(1)~(4)的處理幾乎相同,因此此處省略說明。其中,於(2)的處理中由支持應用211準備的寫入資料是虛擬資料。
(5)處理器21經由第二匯流排5將表示被分配給輸出文件的邏輯位址空間的資訊發送至控制器6a。於所述情況下,支持應用211參照由文件系統213管理的文件管理資訊,確定被分配給輸出文件的寫入資料的邏輯位址空間(此處為LBA 3、LBA 5、LBA 12)。然後,支持應用211準備包含表示邏輯位址空間的資訊的發送資料。與來自支持應用211的發送請求相應地,處理器21將由支持應用211準備的發送資料(表示邏輯位址空間的資訊)經由第二匯流排5發送至控制器6a。控制器6a將表示接收到的邏輯位址空間的資訊記錄於NAND記憶體7中。
(6)內部資料保存部621讀出記憶於專用區域72中的內部資料。然後,內部資料保存部621將讀出的內部資料寫入用戶區域71的記憶位置。
(7)控制器6a基於記錄於NAND記憶體7中的、表示經由第二匯流排5接收到的邏輯位址空間的資訊,來確定被分配給寫入用戶區域71中的輸出文件的寫入資料的LBA(LBA 3、LBA 5、LBA 12)。控制器6a將確定的邏輯位址(LBA 3、LBA 5、LBA 12)分配給寫入了內部資料的各個記憶位置。L2P表81更新所記憶的PBA與LBA之間的對應關係。
藉此,於自主機2接收到指定被分配給輸出文件的LBA(LBA 3、LBA 5、LBA 12)的讀取命令時,控制器6a自用戶區域71讀出內部資料。然後,控制器6a將內部資料發送至主機2作為對所接收到的讀取命令的響應。
接著,對向主機2提供內部資料的動作的順序進行說明。圖9是表示於第二實施方式的記憶體系統3a中執行的內部資料提供動作的順序的序列圖。
主機2執行與圖6中的S101及S102的處理相同的處理(S201及S202)。此處,與發佈的寫入命令相關聯的寫入資料是虛擬資料。
於記憶體系統3a的第一介面611自主機2接收到寫入命令時,記憶體系統3a的控制器6a基於所接收到的寫入命令,來執行寫入與所接收到的寫入命令相關聯的寫入資料(虛擬資料)(S203)。控制器6a將與寫入命令相關聯的虛擬資料寫入用戶區域71的記憶位置。控制器6a將由寫入命令指定的一個以上的LBA分配給寫入了虛擬資料的一個以上的記憶位置。
主機2經由第二匯流排5將由寫入命令指定的一個以上的LBA通知給記憶體系統3a(S204)。即,主機2將表示被分配給所創建的輸出文件的邏輯位址空間的LBA資訊經由第二匯流排5發送至記憶體系統3a。
於記憶體系統3a的第二介面612自主機2接收到LBA資訊時,控制器6a將所接收到的LBA資訊記錄於NAND記憶體7中(S205)。控制器6a例如將所接收到的LBA資訊寫入專用區域72中。
控制器6a將旗標設置為規定的值(S206)。控制器6a對啟動記憶體系統3a時參照的旗標進行管理。於所參照的旗標被設置為規定的值時,控制器6a轉移至將內部資料寫入用戶區域71中的內部資料保存模式。旗標可記憶於NAND記憶體7中。
藉由手動操作,切斷對記憶體系統3a的電力供給(S207)。
藉由手動操作,電力被再次供給至記憶體系統3a(S208)。
控制器6a參照旗標(S209)。此處,控制器6a確認旗標被設置為規定的值,使記憶體系統3a轉移至內部資料保存模式。
控制器6a讀出S205中記錄的LBA資訊(S210)。控制器6a基於所讀出的LBA資訊,確定被分配給輸出文件的虛擬資料的邏輯位址空間。
控制器6a將內部資料寫入用戶區域71的一個以上的記憶位置中(S211)。控制器6a自專用區域72中讀出內部資料。控制器6a將所讀出的內部資料寫入用戶區域71中。
控制器6a將由S210中讀出的LBA資訊表示的一個以上的LBA分別分配給S211中寫入了內部資料的用戶區域71的一個以上的記憶位置(S212)。
控制器6a對旗標進行複位(S213)。即,控制器6a將旗標的值設置為初始值。
然後,控制器6a及主機2執行與圖6中的S110~S112的處理相同的處理(S214~S216)。
接著,對用於將記憶體系統3a與主機2連接的夾具進行說明。圖10是表示將第二實施方式的記憶體系統3a與主機2連接的夾具的結構例的圖。
夾具100包括將記憶體系統3a與主機2連接的基板。夾具100的基板安裝於主機2的印刷電路基板(主機印刷電路板(Printed circuit board,PCB))200上所設置的插槽202。插槽202例如是依據PCIeM.2標準的插槽(M.2插槽)。另外,夾具100包括供記憶體系統3a安裝的插槽101、以及端口102。
記憶體系統3a的基板300安裝於插槽101中。於記憶體系統3a的基板300,設置有控制器6a、NAND記憶體7及DRAM 8。另外,基板300包括PCIe介面用的多個訊號端子、以及UART介面用的若干個訊號端子。於記憶體系統3a的基板300安裝於插槽101中時,記憶體系統3a的PCIe介面用的訊號端子經由設置於夾具100的基板上的配線110與設置於主機2的主機PCB 200中的插槽202連接。另外,記憶體系統3a的UART介面用的訊號端子經由設置於夾具100的基板上的配線111與端口102連接。
端口102例如經由串列介面用的線纜與主機2的端口201連接。端口102及端口201例如是通用串列匯流排(Universal Serial Bus,USB)端口。藉由端口102及端口201,記憶體系統3a與主機2連接以能夠執行依據UART的帶外通訊。
如以上說明般,根據第二實施方式,記憶體系統3a可基於使用帶外通訊而獲取的LBA並藉由依據I/O命令的通訊而有效率地向主機2提供內部資料。
帶外通訊(例如,使用UART的通訊)與帶內通訊(例如,使用PCIe介面的通訊)相比,通訊速度慢。因此,當使用帶外通訊向主機2發送內部資料時,內部資料的發送會花費大量的時間。於第二實施方式中,與第一實施方式同樣地,藉由記憶體系統3a將內部資料寫入用戶區域71中,主機2可使用帶內通訊自記憶體系統獲取內部資料。
表示被分配給輸出文件的邏輯位址空間的資訊與內部資料相比,大小充分小。因此,可立即完成使用帶外通訊的邏輯位址空間的通知。
(第三實施方式) 接著,對第三實施方式進行說明。第三實施方式的記憶體系統3b的結構例與圖1中所說明的第一實施方式的記憶體系統3相同。因此,省略關於記憶體系統3b的結構例的說明。
首先,對標記資料進行說明。圖11是表示於第三實施方式的記憶體系統3b中使用的輸出文件的例子的圖。於第三實施方式中,主機2於創建輸出文件時創建標記資料。標記資料是具有特定的模式資料的資料。
圖11中,主機2創建被分配給包含LBA 3、LBA 5、LBA 12的邏輯位址空間的輸出文件。然後,主機2創建應寫入輸出文件中的標記資料、即、與邏輯位址空間中所包含的LBA各自對應的標記資料。
主機2於創建標記資料時,向記憶體系統3b發佈用以將所創建的標記資料寫入記憶體系統3b中的寫入命令。接收到該寫入命令的記憶體系統3b將標記資料寫入NAND記憶體7的用戶區域71的一個以上的記憶位置。然後,記憶體系統3b將由所接收到的寫入命令所指定的一個以上的LBA分別分配給寫入了標記資料的記憶位置。記憶體系統3b的控制器6b自用戶區域71分別找出寫入與標記資料的模式資料一致的資料的記憶位置。然後,控制器6b將被分配給所找出的記憶位置各自的LBA的集合確定為被分配給輸出文件的邏輯位址空間。
圖11中,主機2創建n個標記區塊作為與分配給輸出文件的開頭LBA(此處為LBA 3)對應的標記資料。圖11中圖示了與一個LBA對應的資料大小為512 B的例子。
各標記區塊包含標記模式、檔案結束(End Of File,EOF)旗標及循環冗餘碼(Cyclic Redundancy Code,CRC)。
標記模式例如為被哈希(Hash)化的資訊。標記模式包含資料被哈希化的資訊,所述資料包含顯示對於每個標記區塊不同的連號的資訊。例如,標記模式n包含藉由對包含表示連號n的資訊的資料哈希化而創建的模式資料。關於標記模式的詳情,將後述。再者,標記模式中只要包含不與用戶資料衝突(batting)的資訊即可。因此,標記模式中所包含的資訊可不為經哈希化的資訊。
EOF旗標是表示由所述EOF旗標表示的標記區塊是否是寫入輸出文件的標記區塊中最末尾的標記區塊的旗標。例如,除最末尾的標記區塊以外的其他各標記區塊的EOF旗標是初始值(例如0)。另外,最末尾的標記區塊的EOF旗標被設置為規定的值(例如1)。
另外,主機2創建n個標記區塊作為與分配給輸出文件的下一個LBA(此處為LBA 5)對應的標記區塊。
進而,主機2例如創建三個標記區塊作為與分配給輸出文件的下一個LBA(此處為LBA 12)對應的標記區塊。
如圖11所示,主機2創建M個標記區塊。M是所創建的輸出文件的大小與標記區塊的大小的商。即,輸出文件中所包含的標記區塊的數量是M。
此處,最末尾的標記區塊中所包含的EOF旗標的值是1。
接著,對標記模式進行說明。圖12是表示於第三實施方式的記憶體系統3b中使用的標記模式的例子的圖。標記模式是不與用戶資料衝突的特異資料。
主機2與記憶體系統3b使用主機2及記憶體系統3b均可知曉的資訊(例如,作為記憶體系統3b的識別資訊的串列編號)與標記模式的連號的組合,創建標記模式。
此處,對創建標記模式1的方法進行說明。
首先,對記憶體系統3b的串列編號(例如AB112233440)與標記模式連號(0001)進行哈希化,創建模式資料(例如OMMNDIU6$#EAOK)。哈希化的方法於主機2與記憶體系統3b之間共通。因此,主機2與記憶體系統3b於對相同的資訊進行哈希化時,可創建相同的模式資料。
然後,藉由排列k個(例如4個)模式資料(例如OMMNDIU6$#EAOK),創建標記模式。所述排列好的資訊可用作一個標記模式。
接著,對模式表進行說明。圖13是表示於第三實施方式的記憶體系統3b中使用的模式表的圖。
模式表是如下表:儲存有M個全部標記模式、及與記憶有包含各標記模式的標記區塊的邏輯位址相關的資訊。於執行標記模式的掃描動作時,由記憶體系統3b創建模式表。
模式表具有M個入口(Entry)。多個入口各自包含「模式No」區域、「標記模式」區域及「場所」區域。
模式No是表示對應的標記模式的連號的資訊。圖13中的模式表具有儲存有表示與圖11中的標記模式各自對應的連號1至M各個的資訊的入口。記憶體系統3b創建入口直至與主機2可創建的最大個數的模式資料對應的連號(例如M)。
標記模式包含作為經哈希化的資訊的模式資料。模式資料與模式No對應。模式資料是將包含記憶體系統3b的識別資訊(例如串列編號)及對應的模式No的資訊哈希化後的資料。
場所是表示與包含對應的標記模式的標記區塊相關聯的邏輯位址及偏移的資訊。
第三實施方式的記憶體系統3b的控制器6b於規定的時機讀出記憶於用戶區域71中的資料。於讀出的資料包含與儲存在模式表中的標記模式一致的資料的情況下,控制器6b確定被分配給記憶有讀出的資料的記憶位置的邏輯位址。然後,記憶體系統3b將確定的邏輯位址作為與所述標記模式對應的場所儲存在模式表的入口中。
控制器6b可將被接收到的時刻由較新的寫入命令的集合指定的LBA集合作為高優先級LBA的列表記錄於NAND記憶體7中。控制器6b藉由自分配有高優先級LBA的記憶位置優先地讀出資料,可更快地檢測到標記模式。此時,每次於自主機2接收到寫入命令時,控制器6b將由所接收到的寫入命令指定的一個以上的LBA作為高優先級LBA的列表記錄於NAND記憶體7中。作為高優先級LBA記錄的LBA的個數亦可設定有上限值。於記錄新的高優先級LBA時,在被記錄的LBA的總數超過上限值的情況下,控制器6b自高優先級LBA列表中刪除高優先級LBA中記錄時機最早的LBA。
於圖13所示的模式表中,設想M個標記區塊如圖11般寫入LBA 3、LBA 5、LBA 12中的情況。
與包含模式No為1的模式資料的標記模式1對應的標記區塊位於與LBA 3對應的512 B資料的開頭。即,偏移為0。因此,與模式No 1對應的場所為LBA 3的0。
與包含模式No為2的模式資料的標記模式2對應的標記區塊位於與LBA 3對應的512 B資料的開頭起的第二個位置。即,於LBA 3中,由於在所述標記區塊之前存在一個標記區塊,因此偏移為1。與模式No 2對應的場所為LBA 3的1。
與包含模式No為3的模式資料的標記模式3對應的標記區塊位於與LBA 3對應的512 B資料的開頭起的第三個位置。即,於LBA 3中,由於在所述標記區塊之前存在兩個標記區塊,因此偏移為2。與模式No 3對應的場所為LBA 3的2。
與包含模式No為4的模式資料的標記模式4對應的標記區塊位於與LBA 3對應的512 B資料的開頭起的第四個位置。即,於LBA 3中,由於在所述標記區塊之前存在三個標記區塊,因此偏移為3。與模式No 4對應的場所為LBA 3的3。
與包含模式No為M的模式資料的標記模式M對應的標記區塊位於與LBA 21對應的512 B資料的開頭起的第三個位置。即,於LBA 21中,由於在所述標記區塊之前存在兩個標記區塊,因此偏移為3。與模式No M對應的場所是LBA 21的3。
如此,於滿足如下條件的情況下,控制器6b判定為模式資料的檢測成功,所述條件是在自模式表的開頭起不遺漏之間的入口的情況下,將表示各場所的資訊儲存於模式表中,並且包含最末尾的模式資料的標記區塊的EOF旗標為1。
接著,對向主機2提供內部資料的動作的順序進行說明。圖14是表示於第三實施方式的記憶體系統3b中執行的內部資料提供動作的順序的序列圖。
主機2執行與圖6中的S101及S102的處理相同的處理(S301及S302)。此處,與所發佈的寫入命令相關聯的寫入資料為包含標記模式的標記資料。
記憶體系統3b的控制器6b基於所接收到的寫入命令,執行與寫入命令相關聯的寫入資料(標記資料)的寫入(S303)。控制器6b將與寫入命令相關聯的標記資料寫入用戶區域71的一個以上的記憶位置。控制器6b將由寫入命令指定的一個以上的LBA分別分配給所述一個以上的記憶位置,並更新L2P表81。
藉由手動操作,切斷對記憶體系統3b的電力供給(S304)。
藉由指定標記掃描模式的規定的手動操作再次向記憶體系統3b供給電力(S305)。例如,於記憶體系統3b的基板上的開關藉由手動操作接通的狀態下,向記憶體系統3b供給電力的情況下,控制器6b轉移至標記掃描模式。
控制器6b掃描用戶區域71,執行找出標記模式的動作(S306)。具體而言,控制器6b找出儲存有與標記資料的標記模式一致的資料的一個以上的記憶位置。然後,控制器6b將分別被分配給所找出的一個以上的記憶位置的一個以上的LBA確定為被分配給輸出文件的邏輯位址空間。於所述情況下,控制器6b創建模式表並掃描用戶區域71,藉此確定被分配給輸出文件的邏輯位址空間。關於S306的動作的詳情,將後述。
控制器6b將內部資料寫入用戶區域71的一個以上的記憶位置(S307)。控制器6b自專用區域72讀出內部資料。控制器6b將讀出的內部資料寫入用戶區域71的一個以上的記憶位置。
控制器6b將S306中確定的邏輯位址空間中所包含的一個以上的LBA分別分配給S307中寫入了內部資料的一個以上的記憶位置(S308),並更新L2P表81。
然後,控制器6b及主機2執行與圖6中的S110~S112的處理相同的處理(S309~S311)。
接著,對與圖14的S306對應的找出標記模式的動作的順序進行說明。圖15是表示於第三實施方式的記憶體系統3b中執行的標記模式特定動作的順序的流程圖。
控制器6b創建記憶體系統3b所支持的標記區塊的最大個數(例如M個)的標記模式(S401)。
控制器6b創建模式表(S402)。例如,控制器6b創建儲存有於S401中創建的標記模式的模式表。
控制器6b自用戶區域71讀出資料(S403)。
控制器6b判定是否存在與讀出的資料一致的標記模式(S404)。控制器6b判定於儲存在模式表中的標記模式中是否存在與讀出的資料一致的標記模式。
於存在與讀出的資料一致的標記模式的情況下(S404中為是(Yes)),控制器6b將與讀出的資料對應的LBA儲存於模式表中(S405)。控制器6b將表示記憶有讀出的資料的場所的資訊儲存於模式表中。
控制器6b對模式表進行驗證(S406)。控制器6b判定模式表是否滿足如下條件:在自模式表的開頭起不遺漏之間的入口的情況下,將表示各場所的資訊加以儲存,並且包含最末尾的模式資料的標記區塊的EOF旗標為1。
於滿足條件的情況下(S406中為可(OK)),控制器6b假定標記模式的檢測成功,結束標記模式的特定動作(檢測成功)。
於不存在與自用戶區域71讀出的資料一致的標記模式的情況下(S404中為否(No)),或者於不滿足條件的情況下(S406為NG),控制器6b判定是否讀出至與最終LBA對應的資料(S407)。
於存在尚未讀出的資料的情況下(S407中為否),控制器6b讀出下一個資料(S403)。
於讀出至與最終LBA對應的資料的情況下(S407中為是),控制器6b假定標記模式的檢測失敗,結束標記模式的特定動作(檢測失敗)。
接著,對記憶體系統3b記錄了高優先級LBA時的標記模式的特定動作的順序進行說明。圖16是表示於第三實施方式的記憶體系統3b中執行的標記模式特定動作的另一順序的流程圖。
控制器6b執行與圖15中的S401及S402相同的處理(S501及S502)。
控制器6b判定是否存在高優先級LBA(S503)。控制器6b判定任一LBA是否已經被記錄為高優先級LBA。
於存在高優先級LBA的情況下(S503中為是),控制器6b讀出與高優先級LBA對應的資料(S504)。控制器6b自高優先級LBA中選擇記錄時機最新的LBA。控制器6b自與所選擇的LBA對應的記憶位置讀出資料。
控制器6b判定是否存在與讀出的資料一致的標記模式(S505)。控制器6b判定於儲存在模式表中的標記模式中是否存在與讀出的資料一致的標記模式。
於存在與讀出的資料一致的標記模式的情況下(S505中為是),控制器6b將與讀出的資料對應的LBA儲存於模式表中(S506)。控制器6b將表示記憶有讀出的資料的場所的資訊儲存於模式表中。
控制器6b對模式表進行驗證(S507)。控制器6b判定模式表是否滿足如下條件:在自模式表的開頭起不遺漏之間的入口的情況下,將表示各場所的資訊加以儲存,並且包含最末尾的模式資料的標記區塊的EOF旗標為1。
於滿足條件的情況下(S507中為可),控制器6b假定標記模式的檢測成功,結束標記模式的特定動作(檢測成功)。
於不存在與自所選擇的LBA對應的記憶位置讀出的資料一致的標記模式的情況下(S505中為否),或者於不滿足條件的情況下(S507為NG),控制器6b判定是否讀出至高優先級LBA中與最終LBA對應的資料(S508)。
於在與高優先級LBA對應的資料中存在尚未讀出的資料的情況下(S508中為否),控制器6b讀出與下一個LBA對應的資料(S504)。
於讀出至高優先級LBA中與最終LBA對應的資料的情況下(S508中為是),或者於不存在高優先級LBA的情況下(S503中為否),控制器6b自用戶區域71讀出與高優先級LBA以外的LBA對應的資料(S509)。
然後,控制器6b執行與圖15中的S403~S407相同的處理(S510~S513)。
接著,對設置於第三實施方式的記憶體系統3b的基板300b上的開關301進行說明。圖17是表示第三實施方式的記憶體系統3b的結構的圖。
第三實施方式的記憶體系統3b的基板300b的構成部件與圖10中所說明的第二實施方式的記憶體系統3a的基板300幾乎相同。此處,將關注與圖10中說明的構成部件的不同方面進行說明。
於第三實施方式的記憶體系統3b的基板300b上設置有用於檢測於標記掃描模式下啟動的開關301。開關301亦可藉由手動操作切換接通/斷開。例如,於開關301接通的情況下,控制器6b的特定的I/O引腳(pin)經由開關301與接地端子連接。接地端子是於控制器6b運作時被施加基準電位的電壓的端子。於對記憶體系統3b供給電力時,於控制器6b檢測到特定的I/O引腳接地時,使記憶體系統3b轉移至標記掃描模式。藉由使用標記掃描模式,可於不存在自主機2存取的狀態下,掃描用戶區域71。
如以上說明般,根據第三實施方式的記憶體系統3b,控制器6b藉由確定具有特定模式資料的資料即標記模式,確定邏輯位址空間。藉此,控制器6b可藉由依據I/O命令的通訊來有效率地向主機2提供內部資料。
由於標記模式是經哈希化的資料,因此基於其他寫入命令寫入的資料被錯誤地判定為標記模式的可能性低。
另外,主機2有時為了擦除儲存片(fragmentation)而進行變更被分配給文件的邏輯位址空間的操作。因此,於執行了標記模式的寫入之後,於記憶體系統3b維持為能夠處理來自主機2的I/O命令的動作狀態時,有時基於來自主機2的、指定與寫入的標記模式對應的LBA的寫入命令,將與所述LBA對應的新的資料寫入NAND記憶體7中。於所述情況下,標記模式與邏輯位址空間的對應關係被擦除。所述結果為,控制器6b無法確定與標記模式對應的邏輯位址空間。根據第三實施方式的記憶體系統3b,於寫入標記模式之後中斷向記憶體系統3b的電力供給,因此可防止接收到指定與寫入的標記模式對應的LBA的新的寫入命令。
此外,於再次供給電力並啟動記憶體系統3b時,與標記模式對應的LBA的集合是於剛關閉電源之前寫入的LBA的集合的可能性高。因此,設想被分配給輸出文件的邏輯位址空間被記錄為高優先級LBA。藉此,控制器6b藉由自與高優先級LBA對應的資料開始依次掃描,可縮短標記模式的特定動作所需的時間。
對本發明的若干實施方式進行了說明,但該些實施方式作為例子而提示,並不意圖限定發明的範圍。該些新穎的實施方式能夠以其他各種形態實施,可於不脫離發明的主旨的範圍內進行各種省略、置換、更新。該些實施方式或其變形包含於發明的範圍或主旨中,並且包含於申請專利範圍中所記載的發明及其均等的範圍內。
1:資訊處理系統 2:主機/主機設備 3:記憶體系統 4:第一匯流排 5:第二匯流排 6:控制器 7:NAND型快閃記憶體/NAND記憶體 8:DRAM/動態隨機存取記憶體 21:處理器 22:記憶體 60:內部匯流排 61:主機介面/主機I/F 62:CPU 63:SRAM/靜態隨機存取記憶體 64:DMAC/直接記憶體存取控制器 65:ECC電路/錯誤校驗與糾正電路 66:NAND介面/NAND I/F 67:DRAM介面/DRAM I/F 81:L2P表/記憶邏輯物理位址轉換表
圖1是表示包括第一實施方式的記憶體系統的資訊處理系統的結構例的方塊圖。  圖2是表示第一實施方式的記憶體系統中所包含的NAND型快閃記憶體的結構例的方塊圖。  圖3是表示第一實施方式的記憶體系統中所包含的NAND型快閃記憶體的多個記憶區域的方塊圖。  圖4是表示第一實施方式的記憶體系統的控制器中所包含的CPU的功能結構的例子的方塊圖。  圖5是表示於第一實施方式的記憶體系統中執行的內部資料保存動作的例子的圖。  圖6是表示於第一實施方式的記憶體系統中執行的內部資料提供動作的順序的序列圖。  圖7是表示包含第二實施方式的記憶體系統的資訊處理系統的結構例的方塊圖。  圖8是表示於第二實施方式的記憶體系統中執行的內部資料保存動作的例子的圖。  圖9是表示於第二實施方式的記憶體系統中執行的內部資料提供動作的順序的序列圖。  圖10是表示將第二實施方式的記憶體系統與主機連接的夾具的結構例的圖。  圖11是表示於第三實施方式的記憶體系統中使用的輸出文件的例子的圖。  圖12是表示於第三實施方式的記憶體系統中使用的標記模式的例子的圖。  圖13是表示於第三實施方式的記憶體系統中使用的模式表的結構例的圖。  圖14是表示於第三實施方式的記憶體系統中執行的內部資料提供動作的順序的序列圖。  圖15是表示於第三實施方式的記憶體系統中執行的標記模式特定動作的順序的流程圖。  圖16是表示於第三實施方式的記憶體系統中執行的標記模式特定動作的另一順序的流程圖。  圖17是表示第三實施方式的記憶體系統的基板及設置於基板上的開關的圖。
2:主機/主機設備
3:記憶體系統
6:控制器
7:NAND型快閃記憶體/NAND記憶體
21:處理器
63:SRAM/靜態隨機存取記憶體
71:用戶區域
72:專用區域
81:L2P表/記憶邏輯物理位址轉換表
211:應用程式/支持應用
212:操作系統/OS
213:文件系統
214:設備驅動器
621:內部資料保存部
LBA 12:邏輯區塊位址/邏輯位址

Claims (10)

  1. 一種記憶體系統,能夠與主機連接,所述記憶體系統包括: 非揮發性記憶體,包括基於指定邏輯位址的命令來記憶用戶資料的第一記憶區域、以及記憶管理資料的第二記憶區域;以及 控制器,構成為控制所述非揮發性記憶體, 所述控制器構成為, 基於來自所述主機的第一寫入命令將第一資料寫入所述第一記憶區域, 確定分配給所述寫入的第一資料的邏輯位址, 自所述第二記憶區域讀出所述管理資料中所包含的、由所述控制器生成的內部資料, 將所述讀出的內部資料寫入所述第一記憶區域的第一記憶位置, 使所述第一記憶位置與所述邏輯位址建立對應關係, 與自所述主機接收到指定所述邏輯位址的讀取命令相應地,自所述第一記憶位置讀出所述內部資料, 將自所述第一記憶位置讀出的所述內部資料發送至所述主機。
  2. 如請求項1所述的記憶體系統,其中, 所述控制器包括: 第一介面電路,經由第一匯流排自所述主機接收所述命令;以及 第二介面電路,經由第二匯流排與所述主機進行通訊,且 所述控制器構成為, 於所述第一介面電路經由所述第一匯流排自所述主機接收到所述第一寫入命令時,將所述第一資料中包含的虛擬資料寫入所述第一記憶區域, 於所述第二介面電路經由所述第二匯流排自所述主機接收到表示所述邏輯位址的第一資訊時,基於所述接收到的第一資訊確定所述邏輯位址。
  3. 如請求項2所述的記憶體系統,其中, 所述控制器構成為, 於所述第二介面電路經由所述第二匯流排自所述主機接收到所述第一資訊時, 將所述第一資訊寫入所述非揮發性記憶體, 將記錄於所述非揮發性記憶體中的第一旗標設置為第一值。
  4. 如請求項3所述的記憶體系統,其中, 所述控制器構成為, 於對所述記憶體系統的電力供給被切斷之後,再次對所述記憶體系統供給電力時, 參照所述第一旗標的值, 於所述第一旗標被設定為所述第一值時, 讀出記憶於所述非揮發性記憶體中的所述第一資訊, 基於所述第一資訊確定所述邏輯位址, 執行自所述第二記憶區域讀出所述內部資料的動作、將所述讀出的內部資料寫入所述第一記憶位置的動作、以及將所述第一記憶位置與所述邏輯位址建立對應關係的動作。
  5. 如請求項1所述的記憶體系統,其中, 所述控制器構成為, 與自所述主機接收到所述第一寫入命令相應地, 將包含模式資料的所述第一資料寫入所述第一記憶區域, 創建儲存所述模式資料的模式表。
  6. 如請求項5所述的記憶體系統,其中, 所述控制器構成為, 掃描所述第一記憶區域,於所述模式表中檢索出記憶有與所述模式資料一致的資料的第二記憶位置, 基於與所述檢索到的第二記憶位置建立對應關係的邏輯位址,來確定所述邏輯位址。
  7. 如請求項6所述的記憶體系統,其中, 所述控制器構成為, 將由自所述主機接收到的寫入命令所指定的邏輯位址以邏輯位址列表的形式記錄於所述非揮發性記憶體中, 於所述記錄的邏輯位址的個數超過閾值時,自所述邏輯位址列表中刪除與最早接收到的寫入命令相關聯的邏輯位址, 掃描各自被分配了所述邏輯位址列表中記錄的多個邏輯位址的多個記憶位置,於所述模式表中檢索出記憶有與所述模式資料一致的資料的第二記憶位置, 基於與所述檢索到的第二記憶位置建立對應關係的邏輯位址,來確定所述邏輯位址。
  8. 如請求項6所述的記憶體系統,其中, 所述第一資料包含多個標記區塊, 所述多個標記區塊各自包括多個所述模式資料及旗標。
  9. 如請求項8所述的記憶體系統,其中, 所述模式資料是基於所述記憶體系統的識別資訊及表示與包含所述模式資料的標記區塊對應的編號的資訊而創建的資料, 所述旗標是表示所述標記區塊是否是所述模式資料中最末尾的資料的值。
  10. 一種控制方法,對記憶體系統進行控制,所述記憶體系統包括:非揮發性記憶體,包括基於指定邏輯位址的命令來記憶用戶資料的第一記憶區域、以及記憶管理資料的第二記憶區域;以及控制器,構成為控制所述非揮發性記憶體,所述控制方法包括: 基於來自主機的第一寫入命令將第一資料寫入所述第一記憶區域; 確定分配給所述寫入的第一資料的邏輯位址; 自所述第二記憶區域讀出所述管理資料中所包含的、由所述控制器生成的內部資料; 將所述讀出的內部資料寫入所述第一記憶區域的第一記憶位置; 使所述第一記憶位置與所述邏輯位址建立對應關係; 與自所述主機接收到指定所述邏輯位址的讀取命令相應地,自所述第一記憶位置讀出所述內部資料;以及 將自所述第一記憶位置讀出的所述內部資料發送至所述主機。
TW111128330A 2022-03-18 2022-07-28 記憶體系統及控制方法 TW202338615A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-044347 2022-03-18
JP2022044347A JP2023137910A (ja) 2022-03-18 2022-03-18 メモリシステムおよび制御方法

Publications (1)

Publication Number Publication Date
TW202338615A true TW202338615A (zh) 2023-10-01

Family

ID=88033267

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111128330A TW202338615A (zh) 2022-03-18 2022-07-28 記憶體系統及控制方法

Country Status (4)

Country Link
US (1) US20230297284A1 (zh)
JP (1) JP2023137910A (zh)
CN (1) CN116795277A (zh)
TW (1) TW202338615A (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102157668B1 (ko) * 2014-04-03 2020-09-22 에스케이하이닉스 주식회사 호스트와 통신하는 메모리 컨트롤러, 그것의 동작 방법 및 그것을 포함하는 컴퓨팅 시스템
KR102291806B1 (ko) * 2015-04-20 2021-08-24 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR20200132047A (ko) * 2019-05-15 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치
KR20210016184A (ko) * 2019-08-01 2021-02-15 삼성전자주식회사 스토리지 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
KR20230106915A (ko) * 2022-01-07 2023-07-14 삼성전자주식회사 스토리지 장치의 구동 방법, 및 스토리지 장치

Also Published As

Publication number Publication date
CN116795277A (zh) 2023-09-22
US20230297284A1 (en) 2023-09-21
JP2023137910A (ja) 2023-09-29

Similar Documents

Publication Publication Date Title
TWI805323B (zh) 儲存裝置
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
JP6553566B2 (ja) メモリシステムおよび制御方法
US10747666B2 (en) Memory system
US8489803B2 (en) Efficient use of flash memory in flash drives
US8230160B2 (en) Flash memory storage system and flash memory controller and data processing method thereof
KR100439507B1 (ko) 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법
KR100876084B1 (ko) 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
US10649891B2 (en) Storage device that maintains mapping data therein
US11422712B2 (en) Storage device and storage system including a memory to store a check code for an integrity check
US10459803B2 (en) Method for management tables recovery
US11029885B2 (en) Memory controller for controlling multiple types of flash memories, and memory system
US11614885B2 (en) Data processing method for improving access performance of memory device and data storage device utilizing the same
US11586377B2 (en) Memory system and control method
CN1701300A (zh) 用于分解与一共用逻辑块相关联的物理块的方法和设备
TW202338615A (zh) 記憶體系統及控制方法
JP2000030375A (ja) データ処理システム、アクセス装置及び記録媒体
CN107562639B (zh) 擦除块读请求处理方法与装置
CN115576859A (zh) 存储系统以及控制方法
US20230298684A1 (en) Memory system and information processing system
US10613973B1 (en) Garbage collection in solid state drives
CN115129238A (zh) 存储系统