CN116088760A - Memory system and control method - Google Patents
Memory system and control method Download PDFInfo
- Publication number
- CN116088760A CN116088760A CN202310048794.8A CN202310048794A CN116088760A CN 116088760 A CN116088760 A CN 116088760A CN 202310048794 A CN202310048794 A CN 202310048794A CN 116088760 A CN116088760 A CN 116088760A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- flash memory
- host
- buffer
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
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/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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明的实施方式提供可增加能够同时利用的写入目标区块的数量的存储器系统及控制方法。实施方式的存储器系统从所述主机接收包含第1识别符与存储位置信息的写入请求,该第1识别符与一个写入目标区块建立关联,该存储位置信息表示存储有应写入的第1数据的所述主机的存储器上的写入缓冲器内的位置。存储器系统在将第1数据写入至非易失性存储器时,通过将包含所述存储位置信息的传送请求送出至主机而从写入缓冲器获取第1数据,且将第1数据传送至所述非易失性存储器而将第1数据写入至所述一个写入目标区块。
Embodiments of the present invention provide a memory system and a control method capable of increasing the number of write target blocks that can be used simultaneously. The memory system according to the embodiment receives a write request from the host including a first identifier and storage location information, the first identifier is associated with a write target block, and the storage location information indicates that a block to be written is stored. The first data location within the write buffer on the host's memory. When the memory system writes the first data into the nonvolatile memory, the first data is acquired from the write buffer by sending a transfer request including the storage location information to the host, and the first data is transferred to the nonvolatile memory. Write the first data to the one write target block in the non-volatile memory.
Description
分案申请的相关信息Information about divisional applications
本案是分案申请。该分案的母案是申请日为2018年7月13日、申请号为201810768175.5、发明名称为“存储器系统及控制方法”的发明专利申请案。This case is a divisional application. The parent case of this divisional case is an invention patent application with an application date of July 13, 2018, an application number of 201810768175.5, and an invention title of "memory system and control method".
[相关申请案][Related applications]
本申请案享有以日本专利申请案2017-236269号(申请日:2017年12月8日)为基础申请案的优先权。本申请案通过参照该基础申请案而包含基础申请案的全部内容。This application enjoys the priority of the basic application based on Japanese Patent Application No. 2017-236269 (filing date: December 8, 2017). This application includes the entire content of the basic application by referring to this basic application.
技术领域technical field
-本发明的实施方式涉及具备非易失性存储器的存储器系统及其控制方法。- Embodiments of the present invention relate to a memory system including a nonvolatile memory and a control method thereof.
背景技术Background technique
近年,具备非易失性存储器的存储器系统正广泛普及。作为此种存储器系统之一,周知的是基于NAND闪速存储器技术的固态驱动器(SSD,solid state drive)。In recent years, memory systems including nonvolatile memories have been widely used. As one of such memory systems, a solid state drive (SSD, solid state drive) based on NAND flash memory technology is known.
即便在数据中心的服务器中,也使用SSD作为存储器件。Even in servers in data centers, SSDs are used as storage devices.
在如服务器那样的主机计算机系统中利用的存储器件要求较高的I/O(Input/Output,输入/输出)性能。Storage devices utilized in host computer systems such as servers require high I/O (Input/Output, input/output) performance.
因此,最近开始提出主机与存储器件之间的新的接口。Therefore, a new interface between a host and a storage device has recently started to be proposed.
此外,在最近的存储器件中,存在要求能够将不同种类的数据写入至不同写入目标区块的情况。Furthermore, in recent memory devices, there are cases where it is required to be able to write different kinds of data into different write target blocks.
然而,当能够同时利用的写入目标区块的数量增加时,也必须增加用以暂时存储应写入至各个写入目标区块的写入数据而需要的写入缓冲器的数量。通常,存储器件内的随机存取存储器的容量有限,因此对于存储器件而言,存在难以准备充分数量的写入缓冲器的情况。因此,实际上,结果为能够同时利用的写入目标区块的数量受限制。However, when the number of write target blocks that can be used simultaneously increases, the number of write buffers required to temporarily store write data to be written in each write target block must also be increased. Generally, the capacity of the random access memory in the memory device is limited, and therefore it may be difficult for the memory device to prepare a sufficient number of write buffers. Therefore, in practice, the number of write target blocks that can be used simultaneously is limited as a result.
发明内容Contents of the invention
本发明的实施方式提供可增加能够同时利用的写入目标区块的数量的存储器系统及控制方法。Embodiments of the present invention provide a memory system and a control method capable of increasing the number of write target blocks that can be used simultaneously.
根据实施方式,能够与主机连接的存储器系统具备:非易失性存储器;及控制器,以如下方式构成,即,与所述非易失性存储器电性连接,管理从所述非易失性存储器内的多个区块分配的多个写入目标区块。所述控制器从所述主机接收包含第1识别符与存储位置信息的写入请求,且保存所述第1识别符与所述存储位置信息,该第1识别符与一个写入目标区块建立关联,该存储位置信息表示存储有应写入的第1数据的所述主机的存储器上的写入缓冲器内的位置。所述控制器在将所述第1数据写入至所述非易失性存储器时,通过将包含所述存储位置信息的传送请求送出至所述主机而从所述写入缓冲器获取所述第1数据,且将所述第1数据传送至所述非易失性存储器而将所述第1数据写入至所述一个写入目标区块。所述控制器在所述第1数据的写入结束且所述第1数据能够从所述非易失性存储器读出的情况下,对所述主机通知保存在所述写入缓冲器中的所述第1数据变为多余。According to an embodiment, a memory system connectable to a host includes: a nonvolatile memory; and a controller configured to be electrically connected to the nonvolatile memory and manage Multiple write target blocks assigned to multiple blocks in the memory. The controller receives a write request including a first identifier and storage location information from the host, and saves the first identifier and the storage location information, the first identifier and a write target block In association, the storage location information indicates the location in the write buffer on the memory of the host that stores the first data to be written. The controller acquires the first data from the write buffer by sending a transfer request including the storage location information to the host when writing the first data into the nonvolatile memory. first data, and transmit the first data to the non-volatile memory and write the first data into the one write target block. When the writing of the first data is completed and the first data can be read from the nonvolatile memory, the controller notifies the host of the data stored in the write buffer. The first data becomes unnecessary.
附图说明Description of drawings
图1是表示主机与存储器系统(闪速存储器件)的关系的方块图。FIG. 1 is a block diagram showing the relationship between a host and a memory system (flash memory device).
图2是表示闪速存储器件的构成例的方块图。FIG. 2 is a block diagram showing a configuration example of a flash memory device.
图3是表示在闪速存储器件中使用的多个通道与多个NAND型闪速存储器芯片的关系的方块图。FIG. 3 is a block diagram showing the relationship of a plurality of channels and a plurality of NAND type flash memory chips used in a flash memory device.
图4是表示在闪速存储器件中使用的一超级区块的构成例的图。FIG. 4 is a diagram showing a configuration example of a super block used in a flash memory device.
图5是表示与多个最终用户对应的多个写入目标区块和多个写入缓冲区域的关系的图。FIG. 5 is a diagram showing the relationship between a plurality of write target blocks and a plurality of write buffer areas corresponding to a plurality of end users.
图6是用以对闪速存储器件与主机侧UWB的关系及通过主机与闪速存储器件执行的数据写入处理进行说明的方块图。FIG. 6 is a block diagram for explaining the relationship between the flash memory device and the host-side UWB, and the data writing process executed by the host and the flash memory device.
图7是表示多个写入目标区块与多个写入缓冲区域(UWB区域)的关系的例的图。7 is a diagram showing an example of the relationship between a plurality of write target blocks and a plurality of write buffer areas (UWB areas).
图8是用以对闪速存储器件与主机侧UWB的关系及通过主机与闪速存储器件执行的数据读出处理进行说明的方块图。FIG. 8 is a block diagram for explaining the relationship between the flash memory device and the host-side UWB, and data read processing performed by the host and the flash memory device.
图9是用以对支持模糊-精细写入的闪速存储器件与主机侧UWB的关系及通过主机与闪速存储器件执行的数据写入处理进行说明的方块图。9 is a block diagram for explaining the relationship between the flash memory device supporting fuzzy-fine writing and the UWB on the host side, and the data writing process performed by the host and the flash memory device.
图10是用以对支持模糊-精细写入的闪速存储器件与主机侧UWB的关系及通过主机与闪速存储器件执行的数据读出处理进行说明的方块图。10 is a block diagram illustrating the relationship between a flash memory device supporting fuzzy-fine writing and a host-side UWB, and data read processing performed by the host and the flash memory device.
图11是表示通过主机与闪速存储器件执行的数据写入处理的步骤的序列图。FIG. 11 is a sequence diagram showing the steps of data writing processing executed by the host and the flash memory device.
图12是表示通过闪速存储器件执行的通知处理的步骤的流程图。Fig. 12 is a flowchart showing the steps of notification processing performed by the flash memory device.
图13是表示根据传送请求的接收而执行的主机侧处理的步骤的流程图。Fig. 13 is a flowchart showing the procedure of host-side processing executed upon receipt of a transfer request.
图14是表示根据读出请求的接收而通过闪速存储器件执行的数据读出动作的步骤的流程图。FIG. 14 is a flowchart showing the steps of a data read operation performed by the flash memory device upon receipt of a read request.
图15是表示用于数据读出的主机侧处理的步骤的流程图。FIG. 15 is a flowchart showing the steps of host-side processing for data readout.
图16是用以对支持串流写入的闪速存储器件与主机侧UWB的关系及通过主机与闪速存储器件执行的数据写入处理进行说明的方块图。16 is a block diagram for explaining the relationship between a flash memory device supporting streaming writing and a host-side UWB, and data writing processing performed by the host and the flash memory device.
图17是表示多个串流ID与和这些串流ID建立关联的多个写入目标区块的关系的图。FIG. 17 is a diagram showing the relationship between a plurality of stream IDs and a plurality of write target blocks associated with the stream IDs.
图18是用以对支持串流写入的闪速存储器件与主机侧UWB的关系及通过主机与闪速存储器件执行的数据读出处理进行说明的方块图。FIG. 18 is a block diagram illustrating the relationship between a flash memory device supporting streaming writing and a host-side UWB, and data read processing performed by the host and the flash memory device.
图19是表示通过支持模糊-精细写入的闪速存储器件与主机执行的数据写入处理的步骤的序列图。FIG. 19 is a sequence diagram showing the steps of a data writing process performed by a flash memory device supporting fuzzy-fine writing and a host.
图20是表示主机的构成例的方块图。Fig. 20 is a block diagram showing a configuration example of a host.
图21是表示通过主机内的处理器(CPU)执行的数据写入处理的步骤的流程图。FIG. 21 is a flowchart showing the procedure of data writing processing executed by a processor (CPU) in the host computer.
图22是表示通过主机内的处理器执行的数据读出处理的步骤的流程图。FIG. 22 is a flowchart showing the procedure of data read processing executed by the processor in the host.
图23是表示通过主机内的处理器执行的数据读出处理的其他步骤的流程图。Fig. 23 is a flowchart showing another procedure of the data reading process executed by the processor in the host.
图24是表示通过主机内的处理器执行的UWB区域开放处理的步骤的流程图。FIG. 24 is a flowchart showing the procedure of the UWB area release process executed by the processor in the host.
具体实施方式Detailed ways
以下,参照图式对实施方式进行说明。Embodiments will be described below with reference to the drawings.
首先,参照图1对主机与存储器系统的关系进行说明。First, the relationship between the host and the memory system will be described with reference to FIG. 1 .
该存储器系统为以如下方式构成的半导体存储器件,即,将数据写入至非易失性存储器,且从非易失性存储器读出数据。该存储器系统是作为基于NAND闪速存储器技术的闪速存储器件3来实现。This memory system is a semiconductor memory device configured such that data is written into a nonvolatile memory and data is read from the nonvolatile memory. The memory system is implemented as a
主机(主机器件)2以控制多个闪速存储器件3的方式构成。主机2通过信息处理装置实现,该信息处理装置以将由多个闪速存储器件3构成的闪速存储器阵列作为存储器来使用的方式构成。该信息处理装置也可为个人电脑,也可为服务器电脑。A host (host device) 2 is configured to control a plurality of
另外,闪速存储器件3也可作为设置在存储器阵列内的多个存储器件之一来利用。存储器阵列也可经由缆线或网络连接于服务器电脑那样的信息处理装置,存储器阵列包含控制该存储器阵列内的多个存储器(例如多个闪速存储器件3)的控制器。在将闪速存储器件3应用于存储器阵列的情况下,该存储器阵列的控制器也可作为闪速存储器件3的主机发挥功能。In addition, the
以下,例示服务器电脑那样的信息处理装置作为主机2发挥功能的情况来进行说明。Hereinafter, a case where an information processing device such as a server computer functions as the
主机(服务器)2与多个闪速存储器件3经由接口50相互连接(内部相互连接)。作为用于该相互连接的接口50,可使用PCI Express(Peripheral Component InterconnectExpress,外围部件互连高速)(PCIe)(注册商标)、NVM Express(Non Volatile MemoryExpress,非易失性存储器高速)(NVMe)(注册商标)、Ethernet(以太网)(注册商标)、NVMeover Fabrics(结构上NVMe)(NVMeOF)等,但并不限定于此。The host (server) 2 and the plurality of
至于作为主机2发挥功能的服务器电脑的典型例,可列举数据中心内的服务器电脑(以下,称为服务器)。As a typical example of the server computer functioning as the
在主机2通过数据中心内的服务器实现的情况下,该主机(服务器)2也可经由网络51连接于多个最终用户终端(用户端)61。主机2可对这些最终用户终端61提供各种服务。When the
能够通过主机(服务器)2提供的服务的例,存在:(1)对各用户端(各最终用户终端61)提供系统运转平台的平台即服务(PaaS,platform as a service);及(2)对各用户端(各最终用户终端61)提供虚拟服务器那样的基础设施的基础设施即服务(IaaS,infrastructure as a service)等。Examples of services that can be provided by the host (server) 2 include: (1) platform as a service (PaaS, platform as a service) that provides a system operation platform for each client (each end user terminal 61); and (2) Infrastructure as a service (IaaS, infrastructure as a service) or the like that provides infrastructure such as a virtual server to each client (each end user terminal 61).
多个虚拟机器在作为所述主机(服务器)2发挥功能的物理服务器上执行。在主机(服务器)2上运行的这些虚拟机器的各者可作为以如下方式构成的虚拟服务器发挥功能,即,向对应的几个用户端(最终用户终端61)提供各种服务。A plurality of virtual machines are executed on a physical server functioning as the host (server) 2 . Each of these virtual machines running on the host (server) 2 can function as a virtual server configured to provide various services to corresponding several client terminals (end user terminal 61 ).
主机(服务器)2包含:存储器管理功能,对构成闪速存储器阵列的多个闪速存储器件3进行管理;及前端功能,对最终用户终端61分别提供包含存储器存取的各种服务。The host (server) 2 includes a memory management function for managing a plurality of
闪速存储器件3包含NAND型闪速存储器那样的非易失性存储器。一个闪速存储器件3对从非易失性存储器内的多个区块分配的多个写入目标区块进行管理。写入目标区块是指应写入数据的区块。从主机2送出至闪速存储器件3的写入请求(写入指令)中,包含与应写入数据的一个写入目标区块建立关联的识别符。基于该写入请求中所包含的该识别符,闪速存储器件3从多个写入目标区块中决定应写入该数据的一个写入目标区块。The
该写入请求中所包含的识别符也可为对特定的写入目标区块进行指定的区块识别符。区块识别符也可通过区块地址(区块编号)表示。或者,在闪速存储器件3包含多个NAND型闪速存储器芯片的情况下,区块识别符也可通过区块地址(区块编号)与芯片编号的组合表示。The identifier included in the write request may also be a block identifier specifying a specific write target block. The block identifier can also be represented by a block address (block number). Alternatively, when the
在闪速存储器件3支持串流写入的情况下,该写入请求中所包含的识别符也可为多个串流中的一个串流的识别符(串流ID(IDentification))。在串流写入中,多个写入目标区块分别与多个串流建立关联。换言之,在闪速存储器件3从主机2接收到包含某串流ID的写入请求的情况下,该闪速存储器件3将数据写入至与该串流ID所对应的串流建立关联的写入目标区块。在闪速存储器件3从主机2接收到包含其他串流ID的写入请求的情况下,该闪速存储器件3将数据写入至与该其他串流ID所对应的其他串流建立关联的其他写入目标区块。If the
通过闪速存储器件3管理的多个写入目标区块也可分别由共有该闪速存储器件3的多个最终用户(用户端)使用。该情况下,在闪速存储器件3中,开放有与共有闪速存储器件3的最终用户的数量为相同数量或其以上的写入目标区块。A plurality of write target blocks managed by the
如此,当在闪速存储器件3存在多个能够同时利用的写入目标区块的环境中,必须准备与这些写入目标区块的数量为相同数量的写入缓冲器。Thus, in an environment where there are a plurality of write target blocks that can be used simultaneously in the
其原因在于,最近的NAND型闪速存储器多为以在每一存储单元写入多个位的数据的方式构成,必须预先在每一写入目标区块保存应写入至该写入目标区块的多个页面量的数据。The reason for this is that most recent NAND flash memories are configured by writing multiple bits of data in each memory cell, and it is necessary to save in advance each write-in target block the data that should be written into the write-in target area. Multiple pages of data in a block.
此外,在最近的NAND型闪速存储器中,为了减少编程干扰而存在应用如下写入方法的情况,即,通过伴随将写入数据多次传送至NAND型闪速存储器的多个阶段的编程动作而将写入数据写入至NAND型闪速存储器。作为此种写入方法的典型例,可列举模糊-精细编程动作。即便在该情况下,在多个阶段的编程动作结束之前也必须保存写入数据,因此必须准备与写入目标区块的数量为相同数量的写入缓冲器。In addition, in recent NAND flash memories, in order to reduce program disturb, there are cases in which a write method is applied by using a programming operation in multiple stages accompanied by multiple transfers of write data to the NAND flash memory. And the writing data is written into the NAND type flash memory. A typical example of such a writing method is fuzzy-fine programming operation. Even in this case, it is necessary to save the write data until the program operation of multiple stages is completed, so it is necessary to prepare the same number of write buffers as the number of write target blocks.
在模糊-精细编程动作中,例如将多个页面量的第1写入数据传送至NAND型闪速存储器,而且将第1写入数据写入至初始物理页面(与一字线连接的存储单元群)(第一阶段的写入:模糊写入)。其后,对与初始物理页面邻接的其他物理页面(与其他字线连接的存储单元群)执行模糊写入。然后,将所述多个页面量的第1写入数据再次传送至NAND型闪速存储器,而且将该第1写入数据写入至初始物理页面(第二阶段的写入:精细写入)。其后,对所述其他物理页面执行精细写入。In the fuzzy-fine programming operation, for example, the first write data of a plurality of pages is transferred to the NAND flash memory, and the first write data is written into the initial physical page (memory cells connected to a word line) group) (write in the first stage: fuzzy write). Thereafter, fuzzy writing is performed on other physical pages (memory cell groups connected to other word lines) adjacent to the initial physical page. Then, the first write data of the plurality of pages is transferred to the NAND flash memory again, and the first write data is written to the initial physical page (writing in the second stage: fine writing) . Thereafter, fine writing is performed on the other physical pages.
然而,由于闪速存储器件3内的随机存取存储器的容量有限,因此存在难以在闪速存储器件3内的随机存取存储器上准备充分数量的写入缓冲器的情况。此外,即便在闪速存储器件3准备有大容量的随机存取存储器,在共有闪速存储器件3的最终用户的数量较少的情况下,结果为大容量的随机存取存储器被白白浪费。However, since the capacity of the random access memory in the
由此,在本实施方式中,主机2的存储器上的特定存储区域被用作写入缓冲器(以下,称为UWB:Unified Write Buffer(统一写入缓冲器))2A。主机2侧的UWB2A包含与多个写入目标区块对应的多个写入缓冲区域。Therefore, in this embodiment, a specific storage area on the memory of the
主机2将应写入至一个写入目标区块的写入数据存储在UWB2A(与该写入目标区块对应的写入缓冲区域)。而且,主机2将包含识别符(区块识别符或串流ID)与存储位置信息的写入请求送出至闪速存储器件3,该识别符与该一个写入目标区块建立关联,该存储位置信息表示存储有该写入数据的UWB2A内的位置。The
闪速存储器件3从主机2接收该写入请求,并保存识别符与存储位置信息。闪速存储器件3在将该写入数据写入至NAND型闪速存储器时,通过将包含所述存储位置信息的传送请求送出至主机2而从UWB2A获取所述写入数据。例如,在NAND型闪速存储器为在每一存储单元存储3位数据的TLC(Trinary-Level Cell,三阶存储单元)-闪速存储器的情况下,从UWB2A获取写入至相同物理页面的3页面量的写入数据。也可对一个物理页面分配3个页面地址。而且,闪速存储器件3将该写入数据写入至一个写入目标区块(该写入目标区块的一物理页面)。The
闪速存储器件3也可通过全序列编程动作而将该写入数据写入至一个写入目标区块。The
或者,闪速存储器件3也可通过伴随将写入数据(例如3页面量的写入数据)多次传送至NAND型闪速存储器的多个阶段的编程动作(例如模糊-精细编程动作)而将该写入数据写入至一个写入目标区块。该情况下,闪速存储器件3首先执行第一阶段的写入动作。其后,在成为执行第二阶段的写入动作的时序时,闪速存储器件3再次将包含所述存储位置信息的传送请求送出至主机2。主机2每当从闪速存储器件3接收到包含所述存储位置信息的传送请求时,将该写入数据从UWB2A传送至闪速存储器件3。当再次从UWB2A获取所述写入数据时,闪速存储器件3执行第二阶段的写入动作。Alternatively, the
闪速存储器件3在该写入数据的写入结束且该写入数据变为能够从NAND型闪速存储器读出的情况下(在全序列编程动作中为全序列编程动作结束的情况下,在模糊-精细编程动作中为模糊写入动作与精细写入动作的两者结束的情况下),对主机2通知保存在UWB2A中的该写入数据变为多余。In the
因此,本实施方式中,能够同时利用多个写入目标区块而又无需在闪速存储器件3准备多个写入缓冲器。因此,无需在闪速存储器件3设置大容量的随机存取存储器,由此能够容易地增加共有闪速存储器件3的最终用户的数量而又不会导致闪速存储器件3的成本上升。Therefore, in this embodiment, a plurality of write target blocks can be used simultaneously without preparing a plurality of write buffers in the
图2表示闪速存储器件3的构成例。FIG. 2 shows a configuration example of the
闪速存储器件3具备控制器4及非易失性存储器(NAND型闪速存储器)5。闪速存储器件3也可具备随机存取存储器,例如DRAM(dynamic random access memory,动态随机存取存储器)6。The
NAND型闪速存储器5包含存储单元阵列,该存储单元阵列包含配置为矩阵状的多个存储单元。NAND型闪速存储器5也可为二维构造的NAND型闪速存储器,也可为三维构造的NAND型闪速存储器。The
NAND型闪速存储器5的存储单元阵列包含多个区块BLK0~BLKm-1。区块BLK0~BLKm-1的各者通过多个页面(此处为页面P0~Pn-1)编成。区块BLK0~BLKm-1作为删除单位发挥功能。区块也存在称为“删除区块”、“物理区块”、或“物理删除区块”的情况。页面P0~Pn-1的各者包含与相同字线连接的多个存储单元。页面P0~Pn-1也存在称为“物理页面”的情况。页面P0~Pn-1为数据写入动作及数据读入动作的单位。The memory cell array of the
控制器4经由触发器、开放NAND闪速存储器接口(ONFI)那样的闪速存储器编程控制器13而与作为非易失性存储器的NAND型闪速存储器5电性连接。控制器4作为以控制NAND型闪速存储器5的方式构成的存储器控制器动作。该控制器4也可通过System-on-a-chip(SoC,系统级芯片)那样的电路实现。The controller 4 is electrically connected to a NAND-
NAND型闪速存储器5也可如图3所示,包含多个NAND型闪速存储器芯片(NAND型闪速存储器裸片)。各个NAND型闪速存储器芯片能够独立动作。因此,NAND型闪速存储器芯片作为能够并列动作的单位发挥功能。图3中例示如下情况,即,在闪速存储器编程控制器13连接有16个通道Ch.1~Ch.16,且在16个通道Ch.1~Ch.16的各者连接有2个NAND型闪速存储器芯片。该情况下,与通道Ch.1~Ch.16连接的16个NAND型闪速存储器芯片#1~#16编成为触排#0,此外与通道Ch.1~Ch.16连接的剩余的16个NAND型闪速存储器芯片#17~#32编成为触排#1。触排作为通过触排交错使多个存储器模块并列动作的单位发挥功能。在图3的构成例中,可通过16通道与使用2个触排的触排交错而使最大32个NAND型闪速存储器芯片并列动作。The
删除动作也能以一个区块(物理区块)单位执行,也能以包含能够并列动作的多个物理区块的集合的超级区块的单位执行。一个超级区块也可包含从NAND型闪速存储器芯片#1~#32分别选择一个的共计32个物理区块,但并不限定于此。另外,NAND型闪速存储器芯片#1~#32的各者也可具有多平面构成。例如,在NAND型闪速存储器芯片#1~#32的各者具有包含2个平面的多平面构成的情况下,一个超级区块也可包含从与NAND型闪速存储器芯片#1~#32对应的64个平面分别选择一个的共计64个物理区块。The deletion operation can also be performed in units of one block (physical block), or in units of super blocks including a collection of multiple physical blocks that can be operated in parallel. One super block may include a total of 32 physical blocks selected from NAND flash
图4中例示包含32个物理区块(此处为NAND型闪速存储器芯片#1内的物理区块BLK2、NAND型闪速存储器芯片#2内的物理区块BLK3、NAND型闪速存储器芯片#3内的物理区块BLK7、NAND型闪速存储器芯片#4内的物理区块BLK4、NAND型闪速存储器芯片#5内的物理区块BLK6、…NAND型闪速存储器芯片#32内的物理区块BLK3)的一个超级区块(SB)。In Fig. 4, there are 32 physical blocks (here, physical block BLK2 in NAND flash
写入目标区块也可为一个物理区块,也可为一个超级区块。另外,也可利用一个超级区块仅包含一个物理区块的构成,在该情况下,一个超级区块等同于一个物理区块。The writing target block can also be a physical block or a super block. In addition, a configuration in which one super block only includes one physical block may also be used. In this case, one super block is equivalent to one physical block.
接下来,对图1的控制器4的构成进行说明。Next, the configuration of the controller 4 in FIG. 1 will be described.
控制器4包含主机接口11、CPU12、闪速存储器编程控制器13、及DRAM接口14等。这些CPU12、闪速存储器编程控制器13、DRAM接口14经由总线10相互连接。The controller 4 includes a
该主机接口11为以执行与主机2的通信的方式构成的主机接口电路。该主机接口11也可为例如PCIe控制器(NVMe控制器)。或者,在闪速存储器件3经由Ethernet(注册商标)与主机2连接的构成中,主机接口11也可为NVMe over Fabrics(NVMeOF)控制器。闪速存储器件3经由Ethernet(注册商标)与主机2连接的构成能够根据需要而容易地增加闪速存储器件3的数量。进而,也能够容易地增加主机2的数量。The
主机接口11从主机2接收各种请求(指令)。这些请求(指令)中包含写入请求(写入指令)、读出请求(读出指令)及其他各种请求(指令)。The
CPU12为以控制主机接口11、闪速存储器编程控制器13、DRAM接口14的方式构成的处理器。CPU12响应于闪速存储器件3的电源接通而从NAND型闪速存储器5或未图示的ROM将控制程序(固件)载入于DRAM6,而且通过执行该固件而进行各种处理。另外,固件也可载入于控制器4内的未图示的SRAM上。该CPU12可执行用以对来自主机2的各种指令进行处理的指令处理等。CPU12的动作由通过CPU12执行的所述固件控制。另外,指令处理的一部分或全部也可由控制器4内的专用硬件执行。The
CPU12可作为区块识别符/缓冲器地址接收部21、传送请求发送部22、及通知部23发挥功能。The
区块识别符/缓冲器地址接收部21从主机2接收包含区块识别符与缓冲器地址的写入请求,并将这些区块识别符与缓冲器地址保存于特定存储区域。写入请求中所包含的区块识别符也可为对某特定的写入目标区块进行指定的区块地址。或者,写入请求也可包含串流ID代替区块识别符。区块识别符或串流ID作为与一个写入目标区块建立关联的识别符发挥功能。写入请求中所包含的缓冲器地址为表示存储有应写入的数据(写入数据)的UWB2A内的位置的存储位置信息。或者,写入请求也可包含缓冲器内偏移作为存储位置信息来代替缓冲器地址。缓冲器内偏移表示存储有写入数据的UWB2A内的偏移位置。The block identifier/buffer
传送请求发送部22在将所述写入数据写入至NAND型闪速存储器5时,将包含存储位置信息(例如缓冲器地址)的传送请求送出至主机2,由此从UWB2A获取写入数据。When writing the write data into the NAND-
通知部23在所述写入数据的写入结束且所述写入数据变为能够从NAND型闪速存储器5读出的情况下,对主机2通知保存在UWB2A中的所述写入数据变为多余。The
闪速存储器编程控制器13为以在CPU12的控制之下对NAND型闪速存储器5进行控制的方式构成的存储器控制电路。The flash
DRAM接口14为以在CPU12的控制之下控制DRAM6的方式构成的DRAM控制电路。DRAM6的存储区域的一部分用于存储读出缓冲器(RB)30、写入缓冲器(WB)31、区块管理表32、及不良信息管理表33。另外,这些读出缓冲器(RB)30、写入缓冲器(WB)31、区块管理表32及不良信息管理表33也可存储在控制器4内的未图示的SRAM。区块管理表32对存储在各区块的数据为有效数据或无效数据的任一者进行管理。不良信息管理表33对不良区块的列表进行管理。The
图5表示与多个最终用户对应的多个写入目标区块和多个写入缓冲区域的关系。FIG. 5 shows the relationship between a plurality of write target blocks and a plurality of write buffer areas corresponding to a plurality of end users.
在闪速存储器件3中,区块的状态大体分为存储有效数据的有效区块、与不存储有效数据的空闲区块。作为有效区块的各区块通过称为有效区块池的列表来管理。另一方面,作为空闲区块的各区块通过称为空闲区块池的列表来管理。In the
本实施方式中,控制器4将从空闲区块池选择的多个区块(空闲区块)分配为应写入从主机2接收到的写入数据的写入目标区块。该情况下,控制器4首先执行对所选择的各区块(空闲区块)的删除动作,由此使各区块为能够写入的删除状态。设为能够写入的删除状态的区块称为开放的写入目标区块。当一写入目标区块全体写满来自主机2的写入数据时,控制器4将该写入目标区块移动至有效区块池,从空闲区块池分配一个新区块(空闲区块)作为新的写入目标区块。In this embodiment, the controller 4 allocates a plurality of blocks (free blocks) selected from the free block pool as write target blocks to which write data received from the
在闪速存储器件3中,开放有与共有闪速存储器件3的最终用户(最终用户终端)为相同数量或多于其的写入目标区块(闪速存储器区块)。主机2侧的UWB2A也可包含与这些写入目标区块(闪速存储器区块)为相同数量的写入缓冲区域(UWB区域)。In the
图5中,写入缓冲区域#1与写入目标区块#1建立关联,将应写入至写入目标区块#1的全部数据存储在写入缓冲区域#1。写入缓冲区域#2与写入目标区块#2建立关联,将应写入至写入目标区块#2的全部数据存储在写入缓冲区域#2。写入缓冲区域#3与写入目标区块#3建立关联,将应写入至写入目标区块#4的全部数据存储在写入缓冲区域#3。同样,写入缓冲区域#n与写入目标区块#n建立关联,将应写入至写入目标区块#n的全部数据存储在写入缓冲区域#n。In FIG. 5 , the write
主机2将来自最终用户终端#1的写入数据存储在写入缓冲区域#1,将来自最终用户终端#2的写入数据存储在写入缓冲区域#2,将来自最终用户终端#3的写入数据存储在写入缓冲区域#3,将来自最终用户终端#4的写入数据存储在写入缓冲区域#4,而且,将来自最终用户终端#n的写入数据存储在写入缓冲区域#n。
主机2将包含识别符与存储位置信息的写入请求送出至闪速存储器件3,该识别符与写入目标区块#1建立关联,该存储位置信息表示存储有来自最终用户终端#1的写入数据的写入缓冲区域#1内的位置。与写入目标区块#1建立关联的识别符也可为指定写入目标区块#1的区块识别符(区块地址),也可为与写入目标区块#1建立关联的串流ID。The
闪速存储器件3通过将包含该存储位置信息的传送请求送出至主机2,而从写入缓冲区域#1获取相当于1物理页面的大小的写入数据(例如,在TLC-闪速存储器的情况下为3页面量的写入数据)。另外,该传送请求不仅可包含存储位置信息,也可包含与写入目标区块#1建立关联的识别符(例如指定写入目标区块#1的区块识别符、或与写入目标区块#1建立关联的串流ID)。由此,主机2可容易地特定出存储有应传送至闪速存储器件3的写入数据的写入缓冲区域及该写入缓冲区域内的位置(存储位置)。The
主机2将包含识别符与存储位置信息的写入请求送出至闪速存储器件3,该识别符与写入目标区块#2建立关联(例如为指定写入目标区块#2的区块识别符,或与写入目标区块#2建立关联的串流ID),该存储位置信息表示存储有来自最终用户终端#2的写入数据的写入缓冲区域#2内的位置。The
闪速存储器件3通过将包含该存储位置信息的传送请求送出至主机2,而从写入缓冲区域#2获取相当于1物理页面的大小的写入数据(例如在TLC-闪速存储器的情况下为3页面量的写入数据)。另外,该传送请求不仅可包含存储位置信息,也可包含与写入目标区块#2建立关联的识别符(例如为指定写入目标区块#2的区块识别符,或与写入目标区块#2建立关联的串流ID)。由此,主机2可容易地特定出存储有应传送至闪速存储器件3的写入数据的写入缓冲区域与该写入缓冲区域内的位置(存储位置)。The
同样,主机2将包含识别符与存储位置信息的写入请求送出至闪速存储器件3,该识别符与写入目标区块#n建立关联(例如为指定写入目标区块#n的区块识别符、或与写入目标区块#n建立关联的串流ID),该存储位置信息表示存储有来自最终用户终端#n的写入数据的写入缓冲区域#n内的位置。Similarly, the
闪速存储器件3通过将包含该存储位置信息的传送请求送出至主机2,而从写入缓冲区域#n获取相当于1物理页面的大小的写入数据(例如在TLC-闪速存储器的情况下为3页面量的写入数据)。另外,该传送请求不仅可包含存储位置信息,也可包含与写入目标区块#n建立关联的识别符(例如指定写入目标区块#n的区块识别符、或与写入目标区块#n建立关联的串流ID)。由此,主机2可容易地特定出存储有应传送至闪速存储器件3的写入数据的写入缓冲区域及该写入缓冲区域内的位置(存储位置)。The
图6表示存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据写入处理。FIG. 6 shows the relationship between the
此处,为使图示简单,例示对某一个写入目标区块BLK的数据写入处理而进行说明。此外,此处设定通过全序列编程动作将写入数据写入至一个写入目标区块BLK的情况。Here, in order to simplify the illustration, the data writing process to a certain write target block BLK is exemplified and described. In addition, it is assumed here that write data is written into one write target block BLK through a full-sequence programming operation.
(1)在主机2中,执行对闪速存储器件3进行管理的主机软件即闪速存储器管理器。闪速存储器管理器也可组入于闪速存储器件3用的器件驱动器内。闪速存储器管理器管理UWB2A。根据来自上位软件(应用程序或文档系统)的写入数据的请求,闪速存储器管理器将伴随有应写入的数据、标签、区块识别符的写入请求存储在UWB2A。标签为能够识别该数据的识别符。标签也可为逻辑区块地址(LBA,Logical Block Address)那样的逻辑地址,也可为键值存储的键,也可为文档名那样的文档识别符。区块识别符为写入目标区块BLK的区块地址。另外,该写入请求也可包含应写入的数据的长度(Length),在请求固定长度的写入数据的写入的情况下,该写入请求也可不包含长度(Length)。此外,该写入请求也可包含表示应写入数据的页面的页面地址。另外,上位软件也可发行该写入请求,而且闪速存储器管理器从上位软件接收该写入请求,并将接收的写入请求存储在UWB2A。(1) The
(2)闪速存储器管理器将写入请求(写入指令)送出至闪速存储器件3。该写入请求包含标签、区块识别符(区块地址)、缓冲器地址(或缓冲器内偏移)。缓冲器地址表示存储有写入数据的UWB2A内的位置。此外,该写入请求也可包含表示应写入数据的页面的页面地址。闪速存储器件3的控制器4接收该写入请求,并保存该写入请求中所包含的标签、区块识别符、缓冲器地址(或缓冲器内偏移)。(2) The flash memory manager sends out a write request (write command) to the
(3)在闪速存储器编程控制器13将该数据写入至写入目标区块BLK时,闪速存储器件3的控制器4将传送请求(Transfer Request)送出至主机2。该传送请求包含所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的标签、及所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的缓冲器地址(或缓冲器内偏移)、及所保存的区块识别符(区块地址)。(3) When the flash
(4)主机2的闪速存储器管理器当接收到至少包含缓冲器地址(或缓冲器内偏移)的传送请求时,将存储在由该缓冲器地址(或缓冲器内偏移)指定的UWB2A内的位置的数据从UWB2A传送至闪速存储器件3。例如,在NAND型闪速存储器5为TLC-闪速存储器情况下,将3页面量的数据从UWB2A传送至闪速存储器件3。传送请求也可包含应传送的数据的长度。(4) When the flash memory manager of the
(5)闪速存储器件3的控制器4接收该数据,而且将该数据经由闪速存储器编程控制器13传送至NAND型闪速存储器5,且将该数据写入至写入目标区块BLK。在通过全序列编程动作将3页面量的数据写入至某物理页面的情况下,闪速存储器编程控制器13将3页面量的数据依序传送至NAND型闪速存储器5内的页面缓冲器群,然后将写入指示送出至NAND型闪速存储器5。闪速存储器编程控制器13可通过对来自NAND型闪速存储器5的状态进行监控,而判定写入动作(全序列编程动作)是否结束。(5) The controller 4 of the
(6)在写入动作结束且该数据(此处为3页面量的数据)能够读出的情况下,即全序列编程动作成功并结束的情况下,控制器4对主机2通知保存在UWB2A的该数据(此处为3页面量的数据)变为多余。该情况下,闪速存储器件3的控制器4也可将包含标签、页面地址、长度的写入完成(Write Done)送出至主机2,也可将无效化请求(invalidate Request)送出至主机2。无效化请求包含存储有能够读出的数据的缓冲器地址(或缓冲器内偏移)。或者,无效化请求也可包含能够读出的数据的标签、及存储有能够读出的数据的缓冲器地址(或缓冲器内偏移)。或者,在向该写入目标区块BLK的最后物理页面的全序列编程动作结束而该写入目标区块BLK全体被数据写满的情况下,控制器4对主机2通知与写入目标区块BLK对应的UWB区域变为多余。该情况下,控制器4将关闭请求(Close Request)送出至主机2。关闭请求也可包含写入目标区块BLK的区块识别符(区块地址)。在接收到包含写入目标区块BLK的区块识别符的关闭请求的情况下,主机2的闪速存储器管理器将与该写入目标区块BLK建立关联的UWB区域开放,将该UWB区域用于其他用途。该情况下,闪速存储器管理器也可将该开放的UWB区域再次利用作其他写入目标区块(例如新开放的写入目标区块)用的UWB区域。(6) When the writing operation ends and the data (here, data of 3 pages) can be read, that is, when the full sequence programming operation succeeds and ends, the controller 4 notifies the
图7表示多个写入目标区块与多个写入缓冲区域(UWB区域)的关系的例。FIG. 7 shows an example of the relationship between a plurality of write target blocks and a plurality of write buffer areas (UWB areas).
与一写入目标区块BLK#1对应的写入缓冲区域(UWB区域#1),例如也可包含用以暂时存储多个页面量的数据的多个存储区域。该情况下,各存储区域也可包含标签字段、合法/非法字段、数据存储字段、页面地址字段。标签字段存储对应的数据的标签。合法/非法字段保存合法/非法旗标,该合法/非法旗标表示是否必须保存对应的数据。数据存储字段存储应写入至写入目标区块BLK#1的数据。数据存储字段也可具有1页面量的大小。页面地址字段为可选字段,如果写入请求包含页面地址,则将该页面地址存储在页面地址字段。The write buffer area (UWB area #1) corresponding to a write target
在从闪速存储器件3通知有保存在UWB区域#1的数据变为多余的情况下,主机2(闪速存储器管理器)将与该数据对应的存储区域内的合法/非法旗标更新为表示无效的值。将合法/非法旗标更新为表示无效的值的存储区域,被再次利用于应写入至写入目标区块BLK#1的其他数据的存储。When notified from the
图7所示的UWB区域的数据构造为一例,例如,也可在UWB区域管理与页面大小不同的大小的数据(写入数据)。The data structure of the UWB area shown in FIG. 7 is an example, and for example, data (write data) having a size different from the page size may be managed in the UWB area.
图8表示闪速存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据读出处理。FIG. 8 shows the relationship between the
(1)响应于来自上位软件的用以读出数据的请求,主机2的闪速存储器管理器将用以读出该数据的读出请求送出至闪速存储器件3。该读出请求也可包含例如标签、区块识别符(区块地址)、页面地址、长度。(1) In response to a request to read data from upper-level software, the flash memory manager of the
(2)如果由该读出请求指定的数据向写入目标区块BLK的写入动作已结束且该数据能够读出,则闪速存储器件3的控制器4经由闪速存储器编程控制器13从写入目标区块BLK读出该数据。(2) If the write operation of the data specified by the read request to the write target block BLK has been completed and the data can be read, the controller 4 of the
(3)闪速存储器件3的控制器4将读出的数据与该数据的标签一起送出至主机2。(3) The controller 4 of the
(3′)如果由该读出请求指定的数据无法读出,即在从该数据开始写入至该数据能够读出为止的期间中从主机2接收到用以读出该数据的读出请求的情况下,闪速存储器件3的控制器4将以作为对读出请求的响应而从UWB2A送回该数据的方式请求的传送请求送出至主机2。该传送请求中作为能够特定出应传送的UWB2A内的数据的信息,也可包含与该数据对应的缓冲器地址,或与该数据对应的缓冲器地址和与该数据对应的区块识别符的两者。或者,该传送请求也可包含与该数据对应的标签,也可包含与该数据对应的区块识别符及页面地址。(3') If the data specified by the read request cannot be read, that is, a read request for reading the data is received from the
(4′)主机2的闪速存储器管理器从UWB2A读出该数据,并将读出的数据与该数据的标签一起送回至上位软件。(4') The flash memory manager of the
或者,主机2的闪速存储器管理器在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,响应于来自上位软件的用以读出该数据的请求,直接从UWB2A读出该数据而不将读出请求送出至闪速存储器件3。该情况下,数据读出处理如下所述那样执行。Alternatively, the flash memory manager of the
(1″)在从闪速存储器件3通知存储在UWB2A的某数据变为多余之前,主机2的闪速存储器管理器响应于来自上位软件的用以读出该数据的请求,将读出请求送出至UWB2A而从UWB2A读出该数据。该读出请求例如也可包含标签、缓冲器地址、长度。(1″) Before the
(2″)闪速存储器管理器将从UWB2A读出的数据与该数据的标签一起送回至上位软件。(2") The flash memory manager sends the data read from UWB2A back to the host software together with the tag of the data.
图9表示支持模糊-精细写入的闪速存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据写入处理。FIG. 9 shows the relationship between the
此处,设定通过多个阶段的写入动作(模糊-精细编程动作)将写入数据写入至一个写入目标区块BLK的情况。Here, it is assumed that write data is written into one write target block BLK through a write operation (fuzzy-fine programming operation) in multiple stages.
(1)在主机2中,闪速存储器管理器根据来自上位软件的写入数据的请求,将伴随有应写入的数据、标签、区块识别符的写入请求存储在UWB2A。另外,该写入请求也可包含应写入的数据的长度(Length),在请求固定长度的写入数据的写入的情况下,该写入请求也可不包含长度(Length)。此外,该写入请求也可包含表示应写入数据的页面的页面地址。另外,也可由上位软件发行该写入请求,而且也可由闪速存储器管理器从上位软件接收该写入请求,并将接收的写入请求存储在UWB2A。(1) In the
(2)闪速存储器管理器将写入请求(写入指令)送出至闪速存储器件3。该写入请求包含标签、区块识别符(区块地址)、缓冲器地址(或缓冲器内偏移)。此外,该写入请求也可包含表示应写入数据的页面的页面地址。闪速存储器件3的控制器4接收该写入请求,并保存该写入请求中所包含的标签、区块识别符、缓冲器地址(或缓冲器内偏移)。(2) The flash memory manager sends out a write request (write command) to the
(3)在闪速存储器编程控制器13开始该数据的第一阶段的写入动作(模糊写入)时,闪速存储器件3的控制器4将传送请求(Transfer Request)送出至主机2。该传送请求包含所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的标签及所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的缓冲器地址(或缓冲器内偏移)及所保存的区块识别符(区块地址)。(3) When the flash
(4)主机2的闪速存储器管理器当接收到至少包含缓冲器地址(或缓冲器内偏移)的传送请求时,将存储在由该缓冲器地址(或缓冲器内偏移)指定的UWB2A内的位置的数据(此处,图示为“Foggy Data(模糊数据)”)从UWB2A传送至闪速存储器件3。例如,在NAND型闪速存储器5为TLC-闪速存储器的情况下,将3页面量的数据作为Foggy Data从UWB2A传送至闪速存储器件3。传送请求也可包含应传送的数据的长度。(4) When the flash memory manager of the
(5)闪速存储器件3的控制器4接收该数据,而且将该数据经由闪速存储器编程控制器13传送至NAND型闪速存储器5,从而将该数据写入至写入目标区块BLK的写入目标物理页面(第一阶段的写入:模糊写入)。在通过模糊写入而将3页面量的数据写入至某写入目标物理页面的情况下,闪速存储器编程控制器13将3页面量的数据依序传送至NAND型闪速存储器5内的页面缓冲器群,而且将第一阶段的写入指示送出至NAND型闪速存储器5。闪速存储器编程控制器13可通过监控来自NAND型闪速存储器5的状态而判定写入动作(第一阶段的写入动作)是否结束。通常,模糊-精细编程动作为了减少编程干扰,例如以物理页面#1的模糊写入、物理页面#2的模糊写入、物理页面#1的精细写入、物理页面#2的精细写入的方式,一面在多个字线(多个物理页面)重复一面执行。(5) The controller 4 of the
(6)当执行向该写入目标物理页面的第二阶段的写入(精细写入)的时序到来时,闪速存储器件3的控制器4为了获取应通过精细写入而写入的数据(与已通过模糊写入而写入的数据相同的数据),再次将传送请求(Transfer Request)送出至主机2。该传送请求包含所述保存的缓冲器地址,即与通过处理(3)送出的传送请求中所包含的缓冲器地址相同的缓冲器地址。(6) When the timing of executing the second-stage writing (fine writing) to the write target physical page arrives, the controller 4 of the
(7)主机2的闪速存储器管理器当接收到至少包含缓冲器地址(或缓冲器内偏移)的传送请求时,将存储在由该缓冲器地址(或缓冲器内偏移)指定的UWB2A内的位置的数据(此处,图示为“Fine Data(精细数据)”)从UWB2A传送至闪速存储器件3。Fine Data为与Foggy Data相同的数据。例如在NAND型闪速存储器5为TLC-闪速存储器的情况下,将所述3页面量的数据作为Fine Data从UWB2A传送至闪速存储器件3。传送请求也可包含应传送的数据的长度。另外,主机2无需识别应传送的数据为Foggy Data或Fine Data的任一者。(7) When the flash memory manager of the
(8)闪速存储器件3的控制器4接收该数据,而且将该数据经由闪速存储器编程控制器13传送至NAND型闪速存储器5,从而将该数据写入至写入目标区块BLK的所述写入目标物理页面(第二阶段的写入:精细写入)。在通过精细写入将3页面量的数据写入至该写入目标物理页面的情况下,闪速存储器编程控制器13将与在模糊写入中使用的3页面量的数据相同的3页面量的数据依序传送至NAND型闪速存储器5内的页面缓冲器群,而且将第二阶段的写入指示送出至NAND型闪速存储器5。闪速存储器编程控制器13可通过监控来自NAND型闪速存储器5的状态而判定写入动作(第二阶段的写入动作)是否结束。(8) The controller 4 of the
(9)在第二阶段的写入动作结束且该数据(此处为3页面量的数据)能够读出的情况下,即模糊-精细编程动作全部成功并结束的情况下,控制器4对主机2通知保存在UWB2A的该数据(此处为3页面量的数据)变为多余。该情况下,闪速存储器件3的控制器4也可将包含标签、页面地址、长度的写入完成(Write Done)送出至主机2,也可将无效化请求(invalidate Request)送出至主机2。无效化请求包含存储有能够读出的数据的缓冲器地址(或缓冲器内偏移)。或者,无效化请求也可包含能够读出的数据的标签、及存储有能够读出的数据的缓冲器地址(或缓冲器内偏移)。或者,在向该写入目标区块BLK的最后物理页面的模糊-精细编程动作结束而该写入目标区块BLK全体被数据写满的情况下,控制器4对主机2通知与写入目标区块BLK对应的UWB区域变为多余。该情况下,控制器4将关闭请求(Close Request)送出至主机2。关闭请求也可包含写入目标区块BLK的区块识别符(区块地址)。在接收到包含写入目标区块BLK的区块识别符的关闭请求的情况下,主机2的闪速存储器管理器将与该写入目标区块BLK建立关联的UWB区域开放而将该UWB区域使用于其他用途。该情况下,闪速存储器管理器也可将该开放的UWB区域再次利用作其他写入目标区块(例如新开放的写入目标区块)用的UWB区域。(9) When the writing operation of the second stage ends and the data (here, data of 3 pages) can be read, that is, when the fuzzy-fine programming operations are all successful and terminated, the controller 4 The
图10表示支持模糊-精细写入的闪速存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据读出处理。FIG. 10 shows the relationship between the
(1)响应于来自上位软件的用以读出数据的请求,主机2的闪速存储器管理器将用以读出该数据的读出请求送出至闪速存储器件3。该读出请求例如也可包含标签、区块识别符(区块地址)、页面地址、长度。(1) In response to a request to read data from upper-level software, the flash memory manager of the
(2)如果由该读出请求指定的数据的向写入目标区块BLK的写入动作已结束且该数据能够读出,即该数据的模糊写入与该数据的精细写入的两者结束,则闪速存储器件3的控制器4经由闪速存储器编程控制器13从写入目标区块BLK读出该数据。(2) If the write operation of the data designated by the read request to the write target block BLK is completed and the data can be read, that is, both of the fuzzy write of the data and the fine write of the data After finishing, the controller 4 of the
(3)闪速存储器件3的控制器4将读出的数据与该数据的标签一起送出至主机2。(3) The controller 4 of the
(3′)如果由该读出请求指定的数据无法读出,即在从该数据开始写入至该数据能够读出为止的期间中从主机2接收到用以读出该数据的读出请求的情况下,闪速存储器件3的控制器4将以作为对读出请求的响应而从UWB2A送回该数据的方式请求的传送请求送出至主机2。该传送请求也可包含与该数据对应的缓冲器地址。(3') If the data specified by the read request cannot be read, that is, a read request for reading the data is received from the
(4′)主机2的闪速存储器管理器从UWB2A读出该数据,并将读出的数据与该数据的标签一起送回至上位软件。(4') The flash memory manager of the
或者,主机2的闪速存储器管理器在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,响应于来自上位软件的用以读出该数据的请求,直接从UWB2A读出该数据而不将读出请求送出至闪速存储器件3。该情况下,数据读出处理如下所述那样执行。Alternatively, the flash memory manager of the
(1″)在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,主机2的闪速存储器管理器响应于来自上位软件的用以读出该数据的请求,将读出请求送出至UWB2A而从UWB2A读出该数据。该读出请求例如也可包含标签、缓冲器地址、长度。(1″) Before the
(2″)闪速存储器管理器将从UWB2A读出的数据与该数据的标签一起送回至上位软件。(2") The flash memory manager sends the data read from UWB2A back to the host software together with the tag of the data.
图11的序列图表示通过主机2与闪速存储器件2执行的数据写入处理的步骤。The sequence diagram of FIG. 11 shows the steps of the data writing process performed by the
主机2将应写入至某写入目标区块的数据(写入数据)存储在与该写入目标区块建立关联的UWB区域,而且将包含区块识别符与缓冲器地址(或缓冲器内偏移)的写入请求送出至闪速存储器件3(步骤S11)。区块识别符为应写入该写入数据的写入目标区块的区块地址。缓冲器地址表示存储有该写入数据的UWB区域内的位置。
闪速存储器件3的控制器4从主机2接收该写入请求,并保存该写入请求内的区块识别符与缓冲器地址(或缓冲器内偏移)(步骤S21)。该情况下,控制器4也可通过将区块识别符与缓冲器地址存储在DRAM6上的写入缓冲器31而保存这些区块识别符与缓冲器地址。The controller 4 of the
在由保存的区块识别符指定的写入目标区块写入与该写入请求对应的写入数据时,闪速存储器件3的控制器4将包含所保存的缓冲器地址(或缓冲器内偏移)的传送请求送出至主机2(步骤S22)。When the write target block specified by the saved block identifier writes the write data corresponding to the write request, the controller 4 of the
主机2当接收到该传送请求时,主机2将该写入数据从UWB区域传送至闪速存储器件3(步骤S12)。When the
闪速存储器件3的控制器4接收从主机2传送的该写入数据(步骤S23)。控制器4通过将接收到的写入数据存储在例如DRAM6上的写入缓冲器31等而保存该写入数据(步骤S24)。The controller 4 of the
控制器4将接收到的写入数据传送至NAND型闪速存储器5(步骤S25)。写入数据的向NAND型闪速存储器5的传送完成之前,控制器4保存该写入数据。而且,控制器4将该写入数据写入至由所保存的区块识别符指定的写入目标区块(步骤S26)。该情况下,应写入写入数据的写入目标区块内的写入目标页面由控制器4决定。另外,写入请求也可包含指定写入目标页面的页面地址。The controller 4 transfers the received write data to the NAND type flash memory 5 (step S25). The controller 4 stores the written data until the transfer of the written data to the
在该写入数据的写入动作结束且该写入数据能够读出的情况下(在全序列编程动作中为全序列编程动作结束的情况下),控制器4对主机2通知存储在UWB区域的该写入数据变为多余(步骤S27)。When the writing operation of the writing data is completed and the writing data can be read (in the case of the completion of the full-sequence programming operation in the full-sequence programming operation), the controller 4 notifies the
图12的流程图表示通过闪速存储器件3执行的通知处理的步骤。The flowchart of FIG. 12 shows the steps of notification processing performed by the
闪速存储器件3的控制器4可判定是否为向写入目标区块的数据的写入动作结束且该数据能够读出(步骤S31)。The controller 4 of the
如果数据的写入动作结束且该数据能够读出(步骤S31的是),则控制器4判定是否为向该写入目标区块的最后页面(最后物理页面)的写入动作结束而该写入目标区块全体被数据写满(步骤S32)。If the writing operation of the data ends and the data can be read (Yes in step S31), the controller 4 determines whether the writing operation to the last page (the last physical page) of the writing target block ends and the writing operation ends. All of the target blocks are filled with data (step S32).
如果剩余有能够在该写入目标区块利用的物理页面(未写入的物理页面)(步骤S32的否),则控制器4为了对主机2通知保存在UWB区域的能够读出的数据变为多余,而将写入完成(Write Done)或无效化请求(invalidate Request)送出至主机2(步骤S33)。If there are remaining physical pages (unwritten physical pages) that can be used in the write target block (No in step S32), the controller 4 changes the readable data stored in the UWB area to the
如果向该写入目标区块的最后页面(最后物理页面)的写入动作结束而该写入目标区块全体被数据写满(步骤S32的是),则控制器4为了对主机2通知与该写入目标区块对应的UWB区域全体变为多余,而将关闭请求(Close Request)送出至主机2(步骤S34)。If the write operation to the last page (last physical page) of the write target block ends and the entire write target block is filled with data (Yes in step S32), then the controller 4 notifies the
图13的流程图表示根据接收到传送请求而执行的主机侧处理的步骤。The flowchart of FIG. 13 shows the steps of host-side processing executed upon receipt of a transfer request.
主机2将包含区块识别符与缓冲器地址(或缓冲器内偏移)的写入请求送出至闪速存储器件3(步骤S40)。主机2判定是否从闪速存储器件3接收到传送请求(步骤S41)。The
如果从闪速存储器件3接收到传送请求(步骤S41的是),则主机2将存储在由传送请求内的缓冲器地址(或缓冲器内偏移)指定的UWB区域内的位置的数据传送至闪速存储器件3(步骤S42)。而且,主机2判定是否从闪速存储器件3通知UWB区域内的多余数据,或是否从闪速存储器件3接收到关闭请求(Close Request)(步骤S43,S44)。If a transfer request is received from the flash memory device 3 (Yes in step S41), the
如果从闪速存储器件3通知UWB区域内的多余数据(步骤S43的是),则主机2将与该多余数据对应的合法/非法旗标更新为表示无效的值,将存储有该多余数据的UWB区域内的一个存储区域开放(步骤S44)。主机2可将该开放的存储区域作为用以写入至与该UWB区域对应的写入目标区块的新的写入数据的存储区域再次利用。If the redundant data in the UWB region is notified from the flash memory device 3 (yes of step S43), the
如此,在本实施方式中,当某数据的写入动作结束且该数据能够读出时,从闪速存储器件3对主机2通知UWB区域内的该数据变为多余。因此,在该数据能够从NAND型闪速存储器5读出之前,将该数据保存在UWB区域内。Thus, in the present embodiment, when the write operation of certain data is completed and the data can be read, it is unnecessary to notify the
如果从闪速存储器件3接收到关闭请求(Close Request)(步骤S45的是),则主机2将与关闭请求中所包含的区块识别符的写入目标区块建立关联的UWB区域全体开放(步骤S46)。主机2可将该开放的UWB区域作为通过闪速存储器件3新分配的写入目标区块用的UWB区域再次利用。If a closing request (Close Request) is received from the flash memory device 3 (Yes in step S45), the
图14的流程图表示根据接收到读出请求而通过闪速存储器件3执行的数据读出动作的步骤。The flowchart of FIG. 14 shows the steps of the data read operation performed by the
闪速存储器件3的控制器4从主机2接收读出请求(步骤S51)。控制器4判定由读出请求指定的读出数据是否为向写入目标区块的写入动作结束且能够读出的数据(步骤S52)。The controller 4 of the
如果应读出的数据为向写入目标区块的写入动作结束且能够读出的数据(步骤S52的是),则控制器4将应读出的数据从NAND型闪速存储器5读出(步骤S53),并将该读出的数据送回至主机2(步骤S54)。If the data to be read is data that can be read after the write operation to the write target block is completed (Yes in step S52), the controller 4 reads the data to be read from the
另一方面,如果应读出的数据不为向写入目标区块的写入动作结束且能够读出的数据,即在从该数据开始写入至该数据能够读出为止的期间内从主机2接收到对该数据的读出请求(步骤S52的否),则控制器4将以作为对读出请求的响应而从UWB区域送回该数据的方式请求的传送请求送出至主机2(步骤S55)。On the other hand, if the data to be read is not the data that can be read after the write operation to the write target block is completed, that is, from the host computer during the period from when the data is written to when the data can be read 2. Upon receiving the readout request for the data (No in step S52), the controller 4 sends to the host computer 2 a transfer request to send back the data from the UWB area as a response to the readout request (step S52: S55).
图15的流程图表示用于数据读出的主机侧处理的步骤。The flowchart of Fig. 15 shows the steps of host-side processing for data readout.
主机2不管在UWB区域内是否存在应读出的数据,均将请求读出该数据的读出请求送出至闪速存储器件3(步骤S61)。Regardless of whether there is data to be read in the UWB area or not, the
而且,主机2判定是否从闪速存储器件3接收到以从UWB区域送回(读出)该数据的方式请求的传送请求(步骤S62)。Furthermore, the
如果从闪速存储器件3接收到该传送请求(步骤S62的是),则主机2将该数据从UWB区域读出(步骤S63)。If the transfer request is received from the flash memory device 3 (YES at step S62), the
图16表示支持串流写入的闪速存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据写入处理。FIG. 16 shows the relationship between the
此处,设定通过全序列编程动作将写入数据写入至一个写入目标区块BLK的情况。Here, it is assumed that write data is written into one write target block BLK by a full-sequence programming operation.
(1)在主机2中,根据来自上位软件(应用程序或文档系统)的写入数据的请求,闪速存储器管理器将伴随有应写入的数据、串流ID、LBA、长度的写入请求存储在UWB2A。串流ID为与多个写入目标区块建立关联的多个串流内的某串流的识别符。另外,上位软件也可发行该写入请求,而且闪速存储器管理器也可从上位软件接收该写入请求并将接收到的写入请求存储在UWB2A。(1) In the
(2)闪速存储器管理器将写入请求(写入指令)送出至闪速存储器件3。该写入请求包含串流ID、LBA、长度、缓冲器地址(或缓冲器内偏移)。缓冲器地址表示存储有应写入的数据的UWB2A内的位置。闪速存储器件3的控制器4接收该写入请求,并保存该写入请求中所包含的串流ID、LBA、长度、缓冲器地址。(2) The flash memory manager sends out a write request (write command) to the
(3)在闪速存储器编程控制器13将该数据写入至写入目标区块BLK时,闪速存储器件3的控制器4将传送请求(Transfer Request)送出至主机2。该传送请求包含所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的LBA及所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的缓冲器地址(或缓冲器内偏移)及所保存的串流ID。或者,该传送请求也可包含所保存的缓冲器地址(或缓冲器内偏移)及与所保存的串流ID建立关联的写入目标区块的区块识别符(区块地址)。(3) When the flash
(4)主机2的闪速存储器管理器当接收到至少包含缓冲器地址(或缓冲器内偏移)的传送请求时,将存储在由该缓冲器地址(或缓冲器内偏移)指定的UWB2A内的位置的数据从UWB2A传送至闪速存储器件3。例如,在NAND型闪速存储器5为TLC-闪速存储器的情况下,将3页面量的数据从UWB2A传送至闪速存储器件3。传送请求包含应传送的数据的长度。(4) When the flash memory manager of the
(5)闪速存储器件3的控制器4接收该数据,而且将该数据经由闪速存储器编程控制器13传送至NAND型闪速存储器5,从而将该数据写入至写入目标区块BLK。在通过全序列编程动作将3页面量的数据写入至物理页面的情况下,闪速存储器编程控制器13将3页面量的数据依序传送至NAND型闪速存储器5内的页面缓冲器群,而且将写入指示送出至NAND型闪速存储器5。闪速存储器编程控制器13可通过监控来自NAND型闪速存储器5的状态而判定写入动作(全序列编程动作)是否结束。(5) The controller 4 of the
(6)在写入动作结束且该数据(此处为3页面量的数据)能够读出的情况下,即全序列编程动作成功并结束的情况下,控制器4对主机2通知保存在UWB2A的该数据(此处为3页面量的数据)变为多余。该情况下,闪速存储器件3的控制器4也可将包含LBA、长度的写入完成(Write Done)送出至主机2,也可将无效化请求(invalidate Request)送出至主机2。无效化请求包含存储有能够读出的数据的缓冲器地址(或缓冲器内偏移)。或者,无效化请求也可包含能够读出的数据的LBA、及存储有能够读出的数据的缓冲器地址(或缓冲器内偏移)。或者,在向该写入目标区块BLK的最后物理页面的全序列编程动作结束而该写入目标区块BLK全体被数据写满的情况下,控制器4对主机2通知与写入目标区块BLK对应的UWB区域变为多余。该情况下,控制器4将关闭请求(Close Request)送出至主机2。关闭请求也可包含写入目标区块BLK的区块识别符(区块地址)。在接收到包含写入目标区块BLK的区块识别符的关闭请求的情况下,主机2的闪速存储器管理器将与该写入目标区块BLK建立关联的UWB区域开放而将该UWB区域使用于其他用途。该情况下,闪速存储器管理器也可将该开放的UWB区域作为其他写入目标区块(例如新开放的写入目标区块)用的UWB区域再次利用。(6) When the writing operation ends and the data (here, data of 3 pages) can be read, that is, when the full sequence programming operation succeeds and ends, the controller 4 notifies the
图17表示多个串流ID和与这些串流ID建立关联的多个写入目标区块的关系。FIG. 17 shows the relationship between a plurality of stream IDs and a plurality of write target blocks associated with these stream IDs.
此处,例示写入目标区块BLK#1与串流ID#1的串流建立关联,写入目标区块BLK#2与串流ID#2的串流建立关联,写入目标区块BLK#3与串流ID#3的串流建立关联,而且写入目标区块BLK#n与串流ID#n的串流建立关联的情况。Here, it is exemplified that the write target
将由包含串流ID#1的写入请求指定的写入数据写入至写入目标区块BLK#1。将由包含串流ID#2的写入请求指定的写入数据写入至写入目标区块BLK#2。将由包含串流ID#3的写入请求指定的写入数据写入至写入目标区块BLK#3。将由包含串流ID#n的写入请求指定的写入数据写入至写入目标区块BLK#n。The write data specified by the write request including the
图18表示支持串流写入的闪速存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据读出处理。FIG. 18 shows the relationship between the
(1)响应于来自上位软件的用以读出数据的请求,主机2的闪速存储器管理器将该用以读出数据的读出请求送出至闪速存储器件3。该读出请求例如也可包含LBA、长度。(1) The flash memory manager of the
(2)如果由该读出请求指定的数据的向写入目标区块BLK的写入动作已结束且该数据能够读出,则闪速存储器件3的控制器4经由闪速存储器编程控制器13将该数据从写入目标区块BLK读出。(2) If the write operation of the data specified by the read request to the write target block BLK has been completed and the data can be read, the controller 4 of the
(3)闪速存储器件3的控制器4将读出数据与该数据的LBA一起送出至主机2。(3) The controller 4 of the
(3′)如果由该读出请求指定的数据无法读出,即在从该数据开始写入至该数据能够读出为止的期间中从主机2接收到用以读出该数据的读出请求的情况下,闪速存储器件3的控制器4将以作为对读出请求的响应而从UWB2A送回该数据的方式请求的传送请求送出至主机2。该传送请求也可包含与该数据对应的缓冲器地址。(3') If the data specified by the read request cannot be read, that is, a read request for reading the data is received from the
(4′)主机2的闪速存储器管理器将该数据从UWB2A读出,并将读出的数据与该数据的LBA一起送回至上位软件。(4') The flash memory manager of the
或者,主机2的闪速存储器管理器也可在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,响应于来自上位软件的用以读出该数据的请求,直接从UWB2A读出该数据而不将读出请求送出至闪速存储器件3。该情况下,数据读出处理如下所述那样执行。Alternatively, the flash memory manager of the
(1″)在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,主机2的闪速存储器管理器响应于来自上位软件的用以读出该数据的请求,将读出请求送出至UWB2A而将该数据从UWB2A读出。该读出请求例如也可包含LBA、长度。(1″) Before the
(2″)闪速存储器管理器将从UWB2A读出的数据与该数据的LBA一起送回至上位软件。(2") The flash memory manager sends the data read from UWB2A back to the upper software together with the LBA of the data.
图19的序列图表示通过支持模糊-精细写入的闪速存储器件3与主机2执行的数据写入处理的步骤。The sequence diagram of FIG. 19 shows the steps of data writing processing performed by the
此处,例示写入请求包含区块识别符与缓冲器地址(或缓冲器内偏移)的情况进行说明。Here, the case where the write request includes the block identifier and the buffer address (or offset in the buffer) is exemplified for description.
主机2将应写入至某写入目标区块的数据(写入数据)存储在与该写入目标区块建立关联的UWB区域,而且将包含区块识别符与缓冲器地址(或缓冲器内偏移)的写入请求送出至闪速存储器件3(步骤S71)。区块识别符为应写入该写入数据的写入目标区块的区块地址。缓冲器地址表示存储有该写入数据的UWB区域内的位置。
闪速存储器件3的控制器4从主机2接收该写入请求,并保存该写入请求内的区块识别符与缓冲器地址(或缓冲器内偏移)(步骤S81)。该情况下,控制器4也可通过将区块识别符与缓冲器地址存储在DRAM6上的写入缓冲器31而保存这些区块识别符与缓冲器地址。The controller 4 of the
在通过多个阶段的编程动作(模糊-精细编程动作)而将与该写入请求对应的写入数据写入至由所保存的区块识别符指定的写入目标区块时,闪速存储器件3的控制器4,首先为了从UWB区域获取使用于模糊写入的写入数据(模糊数据),而将包含所保存的缓冲器地址(或缓冲器内偏移)的传送请求送出至主机2(步骤S82)。When the write data corresponding to the write request is written into the write target block specified by the stored block identifier through multi-stage programming operations (fuzzy-fine programming operations), the flash memory The controller 4 of the
当主机2接收到该传送请求时,主机2将该写入数据从UWB区域传送至闪速存储器件3(步骤S72)。When the
闪速存储器件3的控制器4接收从主机2传送的该写入数据作为模糊数据(步骤S83)。控制器4通过将接收的写入数据(模糊数据)存储在例如DRAM6上的写入缓冲器31等而加以保存(步骤S84)。The controller 4 of the
控制器4将接收到的写入数据(模糊数据)传送至NAND型闪速存储器5(步骤S85)。在写入数据(模糊数据)的向NAND型闪速存储器5的传送完成之前,控制器4保存该写入数据(模糊数据)。而且,控制器4将该写入数据(模糊数据)写入至由所保存的区块识别符指定的写入目标区块的写入目标物理页面(第一阶段的写入:模糊写入)(步骤S86)。The controller 4 transfers the received write data (fuzzy data) to the NAND type flash memory 5 (step S85). The controller 4 saves the written data (fuzzy data) until the transfer of the written data (fuzzy data) to the
其后,当执行向该写入目标物理页面的第二阶段的写入(精细写入)的时序到来时,闪速存储器件3的控制器4为了从UWB区域获取使用于精细写入的写入数据(精细数据),而将包含所保存的缓冲器地址(或缓冲器内偏移)的传送请求再次送出至主机2(步骤S87)。精细数据为与模糊数据相同的数据。Thereafter, when the timing to execute the second stage of writing (fine writing) to the write target physical page comes, the controller 4 of the
当主机2接收到该传送请求时,主机2将该写入数据从UWB区域传送至闪速存储器件3(步骤S73)。When the
闪速存储器件3的控制器4接收从主机2传送的该写入数据作为精细数据(步骤S88)。控制器4通过将接收的写入数据(精细数据)存储在例如DRAM6上的写入缓冲器31等而加以保存(步骤S89)。The controller 4 of the
控制器4将接收的写入数据(精细数据)传送至NAND型闪速存储器5(步骤S90)。在写入数据(精细数据)的向NAND型闪速存储器5的传送完成之前,控制器4保存该写入数据(精细数据)。而且,控制器4将该写入数据(精细数据)写入至该写入目标区块的该写入目标物理页面(第二阶段的写入:精细写入)(步骤S91)。The controller 4 transfers the received write data (fine data) to the NAND type flash memory 5 (step S90). The controller 4 holds the write data (fine data) until the transfer of the write data (fine data) to the NAND
在写入动作结束且该写入数据能够读出的情况下(即,模糊写入动作与精细写入动作的两者结束的情况下),控制器4对主机2通知存储在UWB区域的该写入数据变为多余(步骤S92)。When the write operation is completed and the write data can be read (that is, when both the fuzzy write operation and the fine write operation are completed), the controller 4 notifies the
图20表示主机2(信息处理装置)的构成例。FIG. 20 shows a configuration example of the host computer 2 (information processing device).
该主机2包含处理器(CPU,Central Processing Unit,中央处理器)101、主存储器102、BIOS(Basic Input Output System,基本输入输出系统)-ROM(Read-Only Memory,只读存储器)103、网络控制器105、周边接口控制器106、控制器107、及嵌入式控制器(EC,Embedded Controller)108等。The
处理器101为以控制该信息处理装置内的各组件的动作的方式构成的CPU。该处理器101执行主存储器102上的各种程序。主存储器102由DRAM那样的随机存取存储器构成。通过处理器101执行的程序包含应用程序软件层41、操作系统(OS,Operating System)42、文档系统43、器件驱动器44等。The
各种应用程序在应用程序软件层41上运行。如一般周知那样,OS42为以如下方式构成的软件,即,管理该信息处理装置全体,控制该信息处理装置内的硬件,执行用以使软件能够使用硬件及闪速存储器件3的控制。文档系统43是用以进行用于文档操作(创建、保存、更新、删除等)的控制而使用。Various applications run on the
器件驱动器44为用以控制及管理闪速存储器件3的程序。该器件驱动器44包含所述闪速存储器管理器。该闪速存储器管理器45包含用以管理主存储器102上的UWB2A的命令群、用以对闪速存储器件3送出写入请求、读出请求等的命令群、每当从闪速存储器件3接收到传送请求时用以从UWB2A对闪速存储器件3传送数据的命令群、在从闪速存储器件3通知存储在UWB2A的数据变为多余之前用以将该数据从UWB2A读出的命令群等。处理器101通过执行器件驱动器44内的闪速存储器管理器45的命令群,而执行数据写入处理、数据读出处理、UWB区域开放处理等。The
网络控制器105为ethernet控制器那样的通信器件。周边接口控制器106以执行与USB(Universal Serial Bus,通用串行总线)器件那样的周边器件的通信的方式构成。The
控制器107以执行与和多个连接器107A分别连接的器件的通信的方式构成。本实施方式中,多个闪速存储器件3也可与多个连接器107A分别连接。控制器107也可为SAS(serial attached Small Computer System Interface,串行连接小型计算机系统接口)expander(扩展器)、PCIe Switch(开关)、PCIe expander、闪速存储器阵列控制器、或RAID(Redundant Arrays ofIndependent Disks,独立磁盘冗余阵列)控制器。或者,多个闪速存储器件3也可经由ethernet与网络控制器105连接。The
图21的流程图表示通过处理器101执行的数据写入处理的步骤。The flowchart of FIG. 21 shows the steps of the data writing process executed by the
在数据写入处理中,处理器101将应写入至一个写入目标区块的写入数据存储在UWB2A(与该写入目标区块对应的UWB区域)(步骤S101)。处理器101将包含识别符与存储位置信息的写入请求送出至闪速存储器件3,该识别符与该写入目标区块建立关联,该存储位置信息表示存储有写入数据的UWB2A内的位置(无UWB区域的位置)(步骤S102)。与写入目标区块建立关联的识别符如所述那样也可为写入目标区块的区块识别符(区块地址)。存储位置信息如所述那样也可为缓冲器地址(或缓冲器内偏移)。该情况下,处理器101也可将包含标签、区块识别符、缓冲器地址(或缓冲器内偏移)的写入请求送出至闪速存储器件3。此外,在主机2不仅指定区块也指定页面的构成中,写入请求也可包含标签、区块识别符(区块地址)、页面地址、缓冲器地址(或缓冲器内偏移)。In the data writing process, the
或者,在使用串流写入的情况下,也可代替区块识别符(区块地址)而使用串流ID。该情况下,写入请求也可包含串流ID、LBA、缓冲器地址(或缓冲器内偏移)。Alternatively, when using stream writing, a stream ID may be used instead of the block identifier (block address). In this case, the write request may also include the stream ID, LBA, and buffer address (or offset within the buffer).
在处理器101将写入请求送出至闪速存储器件3之后,处理器101每当从闪速存储器件3接收到包含缓冲器地址(或缓冲器内偏移)的传送请求时,就会将所述写入数据从UWB2A(UWB区域)传送至闪速存储器件3(步骤S103、S104)。更详细而言,处理器101判定是否从闪速存储器件3接收到包含缓冲器地址(或缓冲器内偏移)的传送请求(步骤S103)。而且,如果从闪速存储器件3接收到该传送请求(步骤S103的是),则处理器101将所述写入数据从UWB2A(UWB区域)传送至闪速存储器件3。After the
如所述那样,在通过多个阶段的编程动作(模糊-精细编程动作)将写入数据写入至写入目标区块的情况下,处理器101从闪速存储器件3多次接收包含相同缓冲器地址(或相同缓冲器内偏移)的传送请求。而且,每当接收到该传送请求时,处理器101就会将所述写入数据从UWB2A(UWB区域)传送至闪速存储器件3。As described above, when the write data is written into the write target block through the multi-stage programming operation (fuzzy-fine programming operation), the
图22的流程图表示通过处理器101执行的数据读出处理的步骤。The flowchart of FIG. 22 shows the steps of the data reading process executed by the
在从闪速存储器件3通知存储在UWB2A(UWB区域)的数据变为多余之前,处理器101响应于来自上位软件的用以读出该数据的请求而将该数据从UWB2A(UWB区域)读出,并将该读出的数据送回至上位软件。Before being notified from the
即,如果从上位软件请求数据读出(步骤S111的是),则处理器101判定是否从闪速存储器件3已通知UWB2A(UWB区域)上的该数据变为多余(步骤S112)。That is, if data reading is requested from the host software (Yes in step S111), the
如果尚未通知该数据变为多余(步骤S112的否),则处理器101将该数据从UWB2A(UWB区域)读出,并将读出的数据送回至上位软件(步骤S112)。If it has not been notified that the data becomes redundant (No in step S112), the
另一方面,如果已通知该数据变为多余(步骤S112的是),则处理器101将用以读出该数据的读出请求送出至闪速存储器件3,由此将该数据从闪速存储器件3读出(步骤S114)。On the other hand, if it has been notified that the data becomes redundant (Yes in step S112), the
图23的流程图表示通过处理器101执行的数据读出处理的其他步骤。The flowchart of FIG. 23 shows other steps of the data reading process executed by the
如果从上位软件接收到用以读出数据的请求(步骤S121的是),则处理器101不管在UWB2A(UWB区域)是否存在该数据,即不管是否已从闪速存储器件3通知该数据变为多余,均将用以读出该数据的读出请求送出至闪速存储器件3(步骤S122)。If a request to read data is received from the host software (Yes in step S121), the
如果由该读出请求指定的数据尚无法读出,则闪速存储器件3将以从UWB2A(UWB区域)送回该数据的方式请求的传送请求送出至主机2。If the data designated by the read request cannot be read yet, the
如果从闪速存储器件3接收到该传送请求(步骤S123的是),则处理器101将该数据从UWB2A(UWB区域)读出,并将该读出的数据送回至上位软件(步骤S124)。If the transmission request is received from the flash memory device 3 (yes in step S123), the
如果未从闪速存储器件3接收该传送请求(步骤S123的否),则处理器101接收作为对读出请求的响应而从闪速存储器件3送回的数据,并将该数据送回至上位软件(步骤S125)。If the transfer request is not received from the flash memory device 3 (No in step S123), the
图24的流程图表示通过处理器101执行的UWB区域开放处理的步骤。The flowchart of FIG. 24 shows the procedure of the UWB area opening process executed by the
在处理器101从闪速存储器件3接收到表示与一个写入目标区块建立关联的UWB区域全体变为多余的通知(关闭请求)的情况下(步骤S131的是),处理器101将该UWB区域全体开放(步骤S132)。步骤S132中,处理器101可将与该开放的UWB区域对应的存储器空间使用于其他任意用途。例如,处理器也可再次利用该开放的UWB区域作为与通过闪速存储器件3的控制器4新分配的写入目标区块建立关联的UWB区域。当必须在该新分配的写入目标区块写入数据时,处理器101首先将该数据存储在与该新分配的写入目标区块建立关联的UWB区域,而且,将包含识别符(区块识别符、或串流ID)与存储位置信息(例如缓冲器地址)的写入请求送出至闪速存储器件3,该识别符与该新分配的写入目标区块建立关联,该存储位置信息表示存储该数据的该UWB区域内的位置。When the
如以上所说明那样,根据本实施方式,闪速存储器件3的控制器4从主机2接收包含第1识别符(区块识别符、或串流ID)与存储位置信息(缓冲器地址、或缓冲器内地址)的写入请求,该第1识别符与一个写入目标区块建立关联,该存储位置信息表示存储有应写入的第1数据的主机2的存储器上的写入缓冲器(UWB2A)内的位置。而且,在将第1数据写入至NAND型闪速存储器5时,控制器4通过将包含存储位置信息的传送请求送出至主机2,而从写入缓冲器(UWB2A)获取第1数据。因此,可从主机2的写入缓冲器(UWB2A)获取用于写入动作而必需的数据,因此可增加能够同时利用的写入目标区块的数量而又无需在闪速存储器件3准备多个写入缓冲器。由此,能够容易地增加共有闪速存储器件3的最终用户的数量而又不会导致闪速存储器件3的成本上升。As described above, according to the present embodiment, the controller 4 of the
此外,控制器4在第1数据的写入结束且第1数据能够从NAND型闪速存储器5读出的情况下,对主机2通知保存在写入缓冲器(UWB2A)的第1数据变为多余。根据该通知,主机2可视需要废弃该数据。因此,在应写入的数据能够从NAND型闪速存储器5读出之前,控制器4也可视需要从写入缓冲器(UWB2A)反复获取该数据。因此,即便在执行模糊-精细编程动作那样的多个阶段的编程动作的情况下,控制器4每当开始各阶段的编程动作时,就可从写入缓冲器(UWB2A)获取必要数据。In addition, when the writing of the first data is completed and the first data can be read from the
另外,本实施方式中,例示NAND型闪速存储器作为非易失性存储器。然而,本实施方式的功能也可应用于例如MRAM(Magnetoresistive Random Access Memory,磁阻式随机存取存储器)、PRAM(Phase change Random Access Memory,相变随机存取存储器)、ReRAM(Resistive Random Access Memory,电阻式随机存取存储器)、或FeRAM(FerroelectricRandom Access Memory,铁电随机存取存储器)那样的其他各种非易失性存储器。In addition, in this embodiment, a NAND flash memory is exemplified as a nonvolatile memory. However, the functions of this embodiment can also be applied to, for example, MRAM (Magnetoresistive Random Access Memory, magnetoresistive random access memory), PRAM (Phase change Random Access Memory, phase change random access memory), ReRAM (Resistive Random Access Memory , resistive random access memory), or FeRAM (Ferroelectric Random Access Memory, ferroelectric random access memory) such other various non-volatile memories.
对本发明的几个实施方式进行了说明,但这些实施方式是作为示例提示者,并未意图限定发明的范围。这些新颖的实施方式能够以其他各种方式实施,可在不脱离发明要旨的范围进行各种省略、替换、变更。这些实施方式或其变化包含在发明的范围或要旨中,并且包含在权利要求书中所记载的发明及其均等的范围。Although some embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in other various forms, and various omissions, substitutions, and changes can be made without departing from the gist of the invention. These embodiments and modifications thereof are included in the scope or gist of the invention, and are included in the invention described in the claims and their equivalents.
[符号的说明][explanation of the symbol]
2 主机2 host
2A 写入缓冲器2A write buffer
3 闪速存储器件3 Flash memory devices
4 控制器4 controllers
5 NAND型闪速存储器5 NAND flash memory
21 区块识别符/缓冲器地址接收部21 block identifier/buffer address receiving unit
22 传送请求发送部22 Transmission Request Sending Department
23 通知部。23 Notify the Ministry.
Claims (18)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-236269 | 2017-12-08 | ||
JP2017236269A JP6967959B2 (en) | 2017-12-08 | 2017-12-08 | Memory system and control method |
CN201810768175.5A CN109901790B (en) | 2017-12-08 | 2018-07-13 | Memory system and control method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810768175.5A Division CN109901790B (en) | 2017-12-08 | 2018-07-13 | Memory system and control method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116088760A true CN116088760A (en) | 2023-05-09 |
Family
ID=66696826
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810768175.5A Active CN109901790B (en) | 2017-12-08 | 2018-07-13 | Memory system and control method |
CN202310048794.8A Pending CN116088760A (en) | 2017-12-08 | 2018-07-13 | Memory system and control method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810768175.5A Active CN109901790B (en) | 2017-12-08 | 2018-07-13 | Memory system and control method |
Country Status (4)
Country | Link |
---|---|
US (3) | US10768858B2 (en) |
JP (1) | JP6967959B2 (en) |
CN (2) | CN109901790B (en) |
TW (1) | TWI709857B (en) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US11354232B2 (en) * | 2018-01-29 | 2022-06-07 | Hewlett-Packard Development Company. L.P. | Validity of data sets stored in memory |
JP7051546B2 (en) * | 2018-04-16 | 2022-04-11 | キオクシア株式会社 | Memory system and control method |
JP7155028B2 (en) | 2019-01-29 | 2022-10-18 | キオクシア株式会社 | Memory system and control method |
JP2021047863A (en) * | 2019-09-19 | 2021-03-25 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Systems for storage devices and message tunneling and their methods |
US11175984B1 (en) | 2019-12-09 | 2021-11-16 | Radian Memory Systems, Inc. | Erasure coding techniques for flash memory |
US11586385B1 (en) | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
TWI738390B (en) * | 2020-06-19 | 2021-09-01 | 群聯電子股份有限公司 | Data protection method, memory storage device and memory control circuit unit |
US11893413B2 (en) * | 2020-09-11 | 2024-02-06 | Apple Inc. | Virtual channel support using write table |
TWI840703B (en) * | 2020-10-29 | 2024-05-01 | 慧榮科技股份有限公司 | Methods for controlling data storage device, and associated flash memory controller |
JP2022094705A (en) * | 2020-12-15 | 2022-06-27 | キオクシア株式会社 | Memory system and control method |
JP7516300B2 (en) * | 2021-03-17 | 2024-07-16 | キオクシア株式会社 | Memory System |
KR20220169642A (en) * | 2021-06-21 | 2022-12-28 | 에스케이하이닉스 주식회사 | Controller and operation method thereof |
KR20230019716A (en) * | 2021-08-02 | 2023-02-09 | 에스케이하이닉스 주식회사 | Memory system and operating method thereof |
JP7621915B2 (en) | 2021-09-06 | 2025-01-27 | キオクシア株式会社 | Information processing device |
JP2023135390A (en) | 2022-03-15 | 2023-09-28 | キオクシア株式会社 | Information processing device |
JP2023136082A (en) | 2022-03-16 | 2023-09-29 | キオクシア株式会社 | Memory system and control method |
US20240241665A1 (en) * | 2023-01-13 | 2024-07-18 | Micron Technology, Inc. | Partitioned transferring for write booster |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7694041B2 (en) * | 2006-05-19 | 2010-04-06 | Arabella Software Ltd. | Method for managing buffers pool and a system using the method |
US8880483B2 (en) | 2007-12-21 | 2014-11-04 | Sandisk Technologies Inc. | System and method for implementing extensions to intelligently manage resources of a mass storage system |
KR20110110106A (en) * | 2008-12-09 | 2011-10-06 | 램버스 인코포레이티드 | Nonvolatile Memory Devices for Parallel and Pipelined Memory Operations |
US8612679B2 (en) * | 2009-01-23 | 2013-12-17 | Infortrend Technology, Inc. | Storage subsystem and storage system architecture performing storage virtualization and method thereof |
US8054684B2 (en) * | 2009-12-18 | 2011-11-08 | Sandisk Technologies Inc. | Non-volatile memory and method with atomic program sequence and write abort detection |
US8144512B2 (en) | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
US8468294B2 (en) | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
JP4988008B2 (en) | 2010-05-13 | 2012-08-01 | 株式会社東芝 | Information processing apparatus and driver |
JP2012128660A (en) | 2010-12-15 | 2012-07-05 | Toshiba Corp | Semiconductor memory device |
US8472280B2 (en) * | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
US9552175B2 (en) * | 2011-02-08 | 2017-01-24 | Diablo Technologies Inc. | System and method for providing a command buffer in a memory system |
WO2012109679A2 (en) | 2011-02-11 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for application direct virtual memory management |
JP5762930B2 (en) * | 2011-11-17 | 2015-08-12 | 株式会社東芝 | Information processing apparatus and semiconductor memory device |
JP5514169B2 (en) | 2011-08-15 | 2014-06-04 | 株式会社東芝 | Information processing apparatus and information processing method |
JP5547154B2 (en) | 2011-09-21 | 2014-07-09 | 株式会社東芝 | Memory device |
TWI523030B (en) * | 2012-01-09 | 2016-02-21 | 群聯電子股份有限公司 | Method for managing buffer memory, memory controllor, and memory storage device |
CN102982122A (en) * | 2012-11-13 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | Repeating data deleting method suitable for mass storage system |
KR102101304B1 (en) * | 2013-03-15 | 2020-04-16 | 삼성전자주식회사 | Memory controller and operating method of memory controller |
US20160342545A1 (en) * | 2014-02-12 | 2016-11-24 | Hitachi, Ltd. | Data memory device |
US20150254188A1 (en) * | 2014-03-10 | 2015-09-10 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
US9563382B2 (en) * | 2014-06-05 | 2017-02-07 | Sandisk Technologies Llc | Methods, systems, and computer readable media for providing flexible host memory buffer |
US9588701B2 (en) * | 2014-09-09 | 2017-03-07 | Sandisk Technologies Llc | Multi-stage programming at a storage device using multiple instructions from a host |
JP2016062624A (en) * | 2014-09-17 | 2016-04-25 | 株式会社東芝 | Semiconductor storage device |
JP6354507B2 (en) * | 2014-10-01 | 2018-07-11 | 富士通株式会社 | Storage control device and storage system |
US9552885B2 (en) * | 2014-12-10 | 2017-01-24 | Sandisk Technologies Llc | Partial block erase for open block reading in non-volatile memory |
US9753655B2 (en) * | 2014-12-30 | 2017-09-05 | Samsung Electronics Co., Ltd. | Computing system with write buffer including speculative storage write and method of operation thereof |
CN105808444B (en) * | 2015-01-19 | 2019-01-01 | 东芝存储器株式会社 | The control method of storage device and nonvolatile memory |
US9460780B2 (en) * | 2015-01-20 | 2016-10-04 | Sandisk Technologies Llc | Initialization techniques for multi-level memory cells using multi-pass programming |
US20160283125A1 (en) | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US10824553B2 (en) * | 2015-04-24 | 2020-11-03 | Toshiba Memory Corporation | Memory device that controls timing of receiving write data from a host |
US20160321010A1 (en) * | 2015-04-28 | 2016-11-03 | Kabushiki Kaisha Toshiba | Storage system having a host directly manage physical data locations of storage device |
WO2016194162A1 (en) * | 2015-06-03 | 2016-12-08 | 株式会社日立製作所 | Computer system |
TWI561983B (en) * | 2015-06-10 | 2016-12-11 | Phison Electronics Corp | Method of accessing buffer memory, memory controller and memory storage device |
JP6403164B2 (en) * | 2015-09-11 | 2018-10-10 | 東芝メモリ株式会社 | Memory system |
US20170123721A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer by command completion in parts |
US10042553B2 (en) * | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US10096366B2 (en) * | 2016-01-28 | 2018-10-09 | Toshiba Memory Corporation | Memory system including multi-plane flash memory and controller |
JP6448571B2 (en) * | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | Storage system, information processing system, and control method |
JP6448570B2 (en) | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | Storage system, information processing system, and control method |
JP6444917B2 (en) | 2016-03-08 | 2018-12-26 | 東芝メモリ株式会社 | Storage system, information processing system, and control method |
JP6502880B2 (en) * | 2016-03-10 | 2019-04-17 | 東芝メモリ株式会社 | Semiconductor memory device |
US9824764B2 (en) * | 2016-03-15 | 2017-11-21 | Toshiba Memory Corporation | Semiconductor memory device |
US9858003B2 (en) * | 2016-05-02 | 2018-01-02 | Toshiba Memory Corporation | Storage system that reliably stores lower page data |
US20170351452A1 (en) * | 2016-06-01 | 2017-12-07 | Intel Corporation | Dynamic host memory buffer allocation |
US10593398B2 (en) * | 2016-09-13 | 2020-03-17 | Toshiba Memory Corporation | Semiconductor storage device including a controller configured to execute a first write and a second write |
KR20180041898A (en) * | 2016-10-17 | 2018-04-25 | 에스케이하이닉스 주식회사 | Memory system and operating method of memory system |
US10622089B2 (en) * | 2016-10-18 | 2020-04-14 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of storage device |
CN106775477B (en) * | 2016-12-19 | 2021-01-01 | 湖南国科微电子股份有限公司 | SSD (solid State disk) master control data transmission management device and method |
KR102395190B1 (en) * | 2017-07-31 | 2022-05-06 | 삼성전자주식회사 | Storage Device performing interface with host and Operating Method of Host and Storage Device |
KR20230056901A (en) * | 2021-10-21 | 2023-04-28 | 에스케이하이닉스 주식회사 | Apparatus and method for programming data in a memory device |
-
2017
- 2017-12-08 JP JP2017236269A patent/JP6967959B2/en active Active
-
2018
- 2018-06-11 US US16/004,601 patent/US10768858B2/en active Active
- 2018-06-15 TW TW107120757A patent/TWI709857B/en active
- 2018-07-13 CN CN201810768175.5A patent/CN109901790B/en active Active
- 2018-07-13 CN CN202310048794.8A patent/CN116088760A/en active Pending
-
2020
- 2020-08-04 US US16/984,238 patent/US11947837B2/en active Active
-
2024
- 2024-02-29 US US18/591,444 patent/US20240256184A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20190179567A1 (en) | 2019-06-13 |
TW201926044A (en) | 2019-07-01 |
CN109901790A (en) | 2019-06-18 |
US10768858B2 (en) | 2020-09-08 |
US20200363996A1 (en) | 2020-11-19 |
JP2019105873A (en) | 2019-06-27 |
TWI709857B (en) | 2020-11-11 |
US11947837B2 (en) | 2024-04-02 |
JP6967959B2 (en) | 2021-11-17 |
US20240256184A1 (en) | 2024-08-01 |
CN109901790B (en) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109901790B (en) | Memory system and control method | |
CN109901791B (en) | Information processing apparatus and execution method of information processing apparatus | |
CN110096221B (en) | Memory system and control method thereof | |
US12112073B2 (en) | Method for controlling write and read operations in the nonvolatile memory by a host, using an identifier for a region | |
US12014090B2 (en) | Memory system and method of controlling nonvolatile memory and for reducing a buffer size | |
TW201040719A (en) | Solid state memory formatting | |
US20240419345A1 (en) | Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive | |
CN113515236B (en) | Collaborative storage architecture | |
US20230236737A1 (en) | Storage Controller Managing Different Types Of Blocks, Operating Method Thereof, And Operating Method Of Storage Device Including The Same | |
CN110781098A (en) | Apparatus and method for interfacing multiple memory systems with each other | |
CN107562639B (en) | Erase block read request processing method and device | |
JP7400053B2 (en) | Memory system and control method | |
EP4220414A1 (en) | Storage controller managing different types of blocks, operating method thereof, and operating method of storage device including the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |