[go: up one dir, main page]

CN116088760A - Memory system and control method - Google Patents

Memory system and control method Download PDF

Info

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
Application number
CN202310048794.8A
Other languages
Chinese (zh)
Inventor
菅野伸一
吉田英树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Publication of CN116088760A publication Critical patent/CN116088760A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

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数据写入至所述一个写入目标区块。

Figure 202310048794

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.

Figure 202310048794

Description

存储器系统及控制方法Memory system and control method

分案申请的相关信息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 flash memory device 3 based on NAND flash memory technology.

主机(主机器件)2以控制多个闪速存储器件3的方式构成。主机2通过信息处理装置实现,该信息处理装置以将由多个闪速存储器件3构成的闪速存储器阵列作为存储器来使用的方式构成。该信息处理装置也可为个人电脑,也可为服务器电脑。A host (host device) 2 is configured to control a plurality of flash memory devices 3 . The host 2 is realized by an information processing device configured to use a flash memory array composed of a plurality of flash memory devices 3 as a memory. The information processing device can also be a personal computer or a server computer.

另外,闪速存储器件3也可作为设置在存储器阵列内的多个存储器件之一来利用。存储器阵列也可经由缆线或网络连接于服务器电脑那样的信息处理装置,存储器阵列包含控制该存储器阵列内的多个存储器(例如多个闪速存储器件3)的控制器。在将闪速存储器件3应用于存储器阵列的情况下,该存储器阵列的控制器也可作为闪速存储器件3的主机发挥功能。In addition, the flash memory device 3 can also be used as one of a plurality of memory devices provided in the memory array. The memory array can also be connected to an information processing device such as a server computer via a cable or a network, and the memory array includes a controller that controls a plurality of memories (for example, a plurality of flash memory devices 3 ) in the memory array. When the flash memory device 3 is applied to a memory array, the controller of the memory array can also function as a host of the flash memory device 3 .

以下,例示服务器电脑那样的信息处理装置作为主机2发挥功能的情况来进行说明。Hereinafter, a case where an information processing device such as a server computer functions as the host computer 2 will be described as an example.

主机(服务器)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 flash memory devices 3 are connected to each other (interconnected internally) via an interface 50 . As the interface 50 for this interconnection, PCI Express (Peripheral Component Interconnect Express, Peripheral Component Interconnect Express) (PCIe) (registered trademark), NVM Express (Non Volatile Memory Express, Non-Volatile Memory Express) (NVMe) can be used. (registered trademark), Ethernet (Ethernet) (registered trademark), NVMeover Fabrics (structural NVMe) (NVMeOF), etc., but are not limited thereto.

至于作为主机2发挥功能的服务器电脑的典型例,可列举数据中心内的服务器电脑(以下,称为服务器)。As a typical example of the server computer functioning as the host computer 2, a server computer (hereinafter, referred to as a server) in a data center can be mentioned.

在主机2通过数据中心内的服务器实现的情况下,该主机(服务器)2也可经由网络51连接于多个最终用户终端(用户端)61。主机2可对这些最终用户终端61提供各种服务。When the host 2 is realized by a server in the data center, the host (server) 2 may be connected to a plurality of end user terminals (clients) 61 via the network 51 . The host 2 can provide various services to these end user terminals 61 .

能够通过主机(服务器)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 flash memory devices 3 constituting the flash memory array, and a front-end function for providing various services including memory access to end user terminals 61, respectively.

闪速存储器件3包含NAND型闪速存储器那样的非易失性存储器。一个闪速存储器件3对从非易失性存储器内的多个区块分配的多个写入目标区块进行管理。写入目标区块是指应写入数据的区块。从主机2送出至闪速存储器件3的写入请求(写入指令)中,包含与应写入数据的一个写入目标区块建立关联的识别符。基于该写入请求中所包含的该识别符,闪速存储器件3从多个写入目标区块中决定应写入该数据的一个写入目标区块。The flash memory device 3 includes a nonvolatile memory such as a NAND flash memory. One flash memory device 3 manages a plurality of write target blocks allocated from a plurality of blocks in the nonvolatile memory. The write target block refers to a block to which data should be written. The write request (write command) sent from the host 2 to the flash memory device 3 includes an identifier associated with one write target block to which data should be written. Based on the identifier included in the write request, the flash memory device 3 determines a write target block to which the data should be written among a plurality of write target blocks.

该写入请求中所包含的识别符也可为对特定的写入目标区块进行指定的区块识别符。区块识别符也可通过区块地址(区块编号)表示。或者,在闪速存储器件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 flash memory device 3 includes a plurality of NAND flash memory chips, the block identifier can also be represented by a combination of a block address (block number) and a chip number.

在闪速存储器件3支持串流写入的情况下,该写入请求中所包含的识别符也可为多个串流中的一个串流的识别符(串流ID(IDentification))。在串流写入中,多个写入目标区块分别与多个串流建立关联。换言之,在闪速存储器件3从主机2接收到包含某串流ID的写入请求的情况下,该闪速存储器件3将数据写入至与该串流ID所对应的串流建立关联的写入目标区块。在闪速存储器件3从主机2接收到包含其他串流ID的写入请求的情况下,该闪速存储器件3将数据写入至与该其他串流ID所对应的其他串流建立关联的其他写入目标区块。If the flash memory device 3 supports stream writing, the identifier included in the write request may also be an identifier (stream ID (IDentification)) of one of the multiple streams. In stream writing, multiple write target blocks are respectively associated with multiple streams. In other words, when the flash memory device 3 receives a write request containing a stream ID from the host 2, the flash memory device 3 writes data into the stream associated with the stream ID Write the target block. When the flash memory device 3 receives a write request containing other stream IDs from the host 2, the flash memory device 3 writes data into the other streams associated with the other stream IDs. Other writes to the target block.

通过闪速存储器件3管理的多个写入目标区块也可分别由共有该闪速存储器件3的多个最终用户(用户端)使用。该情况下,在闪速存储器件3中,开放有与共有闪速存储器件3的最终用户的数量为相同数量或其以上的写入目标区块。A plurality of write target blocks managed by the flash memory device 3 can also be respectively used by a plurality of end users (clients) who share the flash memory device 3 . In this case, the same number or more of write target blocks as the number of end users who share the flash memory device 3 are opened in the flash memory device 3 .

如此,当在闪速存储器件3存在多个能够同时利用的写入目标区块的环境中,必须准备与这些写入目标区块的数量为相同数量的写入缓冲器。Thus, in an environment where there are a plurality of write target blocks that can be used simultaneously in the flash memory device 3, it is necessary to prepare the same number of write buffers as the number of these write target blocks.

其原因在于,最近的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 flash memory device 3 is limited, there are cases where it is difficult to prepare a sufficient number of write buffers on the random access memory in the flash memory device 3 . Also, even if the flash memory device 3 has a large-capacity random access memory, if the number of end users who share the flash memory device 3 is small, the large-capacity random access memory will be wasted.

由此,在本实施方式中,主机2的存储器上的特定存储区域被用作写入缓冲器(以下,称为UWB:Unified Write Buffer(统一写入缓冲器))2A。主机2侧的UWB2A包含与多个写入目标区块对应的多个写入缓冲区域。Therefore, in this embodiment, a specific storage area on the memory of the host computer 2 is used as a write buffer (hereinafter referred to as UWB: Unified Write Buffer (unified write buffer)) 2A. The UWB 2A on the host 2 side includes a plurality of write buffer areas corresponding to a plurality of write target blocks.

主机2将应写入至一个写入目标区块的写入数据存储在UWB2A(与该写入目标区块对应的写入缓冲区域)。而且,主机2将包含识别符(区块识别符或串流ID)与存储位置信息的写入请求送出至闪速存储器件3,该识别符与该一个写入目标区块建立关联,该存储位置信息表示存储有该写入数据的UWB2A内的位置。The host 2 stores the write data to be written in one write target block in UWB2A (the write buffer area corresponding to the write target block). Moreover, the host 2 sends to the flash memory device 3 a write request including an identifier (block identifier or stream ID) and storage location information, the identifier is associated with the write target block, and the storage The location information indicates the location in UWB 2A where the written data is stored.

闪速存储器件3从主机2接收该写入请求,并保存识别符与存储位置信息。闪速存储器件3在将该写入数据写入至NAND型闪速存储器时,通过将包含所述存储位置信息的传送请求送出至主机2而从UWB2A获取所述写入数据。例如,在NAND型闪速存储器为在每一存储单元存储3位数据的TLC(Trinary-Level Cell,三阶存储单元)-闪速存储器的情况下,从UWB2A获取写入至相同物理页面的3页面量的写入数据。也可对一个物理页面分配3个页面地址。而且,闪速存储器件3将该写入数据写入至一个写入目标区块(该写入目标区块的一物理页面)。The flash memory device 3 receives the write request from the host 2, and stores the identifier and storage location information. The flash memory device 3 acquires the write data from the UWB 2A by sending a transfer request including the storage location information to the host 2 when writing the write data into the NAND flash memory. For example, in the case where the NAND-type flash memory is a TLC (Trinary-Level Cell, three-level storage unit)-flash memory that stores 3 bits of data in each memory cell, the 3 bits written to the same physical page are obtained from UWB2A. Page amount of written data. It is also possible to assign three page addresses to one physical page. Furthermore, the flash memory device 3 writes the write data into a write target block (a physical page of the write target block).

闪速存储器件3也可通过全序列编程动作而将该写入数据写入至一个写入目标区块。The flash memory device 3 can also write the write data into a write target block through a full sequence programming operation.

或者,闪速存储器件3也可通过伴随将写入数据(例如3页面量的写入数据)多次传送至NAND型闪速存储器的多个阶段的编程动作(例如模糊-精细编程动作)而将该写入数据写入至一个写入目标区块。该情况下,闪速存储器件3首先执行第一阶段的写入动作。其后,在成为执行第二阶段的写入动作的时序时,闪速存储器件3再次将包含所述存储位置信息的传送请求送出至主机2。主机2每当从闪速存储器件3接收到包含所述存储位置信息的传送请求时,将该写入数据从UWB2A传送至闪速存储器件3。当再次从UWB2A获取所述写入数据时,闪速存储器件3执行第二阶段的写入动作。Alternatively, the flash memory device 3 can also be programmed by a multi-stage programming operation (such as a fuzzy-fine programming operation) accompanied by multiple transfers of write data (for example, three pages of write data) to the NAND flash memory. The write data is written into a write target block. In this case, the flash memory device 3 first executes the first-stage write operation. Thereafter, when it is time to execute the write operation of the second stage, the flash memory device 3 again sends a transfer request including the storage location information to the host 2 . The host 2 transfers the write data from the UWB 2A to the flash memory device 3 whenever receiving a transfer request including the storage location information from the flash memory device 3 . When the write data is acquired from UWB2A again, the flash memory device 3 executes the write operation of the second stage.

闪速存储器件3在该写入数据的写入结束且该写入数据变为能够从NAND型闪速存储器读出的情况下(在全序列编程动作中为全序列编程动作结束的情况下,在模糊-精细编程动作中为模糊写入动作与精细写入动作的两者结束的情况下),对主机2通知保存在UWB2A中的该写入数据变为多余。In the flash memory device 3, when the writing of the write data is completed and the write data becomes readable from the NAND flash memory (in the case of the end of the full sequence programming operation in the full sequence programming operation, In the fuzzy-fine programming operation, when both the fuzzy write operation and the fine write operation are completed), the host 2 is notified that the write data stored in the UWB 2A is redundant.

因此,本实施方式中,能够同时利用多个写入目标区块而又无需在闪速存储器件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 flash memory device 3 . Therefore, there is no need to provide a large-capacity random access memory in the flash memory device 3 , thereby easily increasing the number of end users who share the flash memory device 3 without increasing the cost of the flash memory device 3 .

图2表示闪速存储器件3的构成例。FIG. 2 shows a configuration example of the flash memory device 3 .

闪速存储器件3具备控制器4及非易失性存储器(NAND型闪速存储器)5。闪速存储器件3也可具备随机存取存储器,例如DRAM(dynamic random access memory,动态随机存取存储器)6。The flash memory device 3 includes a controller 4 and a nonvolatile memory (NAND type flash memory) 5 . The flash memory device 3 may also have random access memory, such as DRAM (dynamic random access memory, dynamic random access memory) 6 .

NAND型闪速存储器5包含存储单元阵列,该存储单元阵列包含配置为矩阵状的多个存储单元。NAND型闪速存储器5也可为二维构造的NAND型闪速存储器,也可为三维构造的NAND型闪速存储器。The NAND flash memory 5 includes a memory cell array including a plurality of memory cells arranged in a matrix. The NAND flash memory 5 may be a two-dimensional structured NAND flash memory, or may be a three-dimensional structured NAND flash memory.

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 NAND flash memory 5 includes a plurality of blocks BLK0 to BLKm-1. Each of the blocks BLK0 to BLKm-1 is organized by a plurality of pages (here, pages P0 to Pn-1). The blocks BLK0 to BLKm-1 function as deletion units. Blocks may also be called "deleted blocks", "physical blocks", or "physically deleted blocks". Each of pages P0 to Pn-1 includes a plurality of memory cells connected to the same word line. The pages P0 to Pn−1 may also be called “physical pages”. Pages P0 to Pn-1 are units of data writing operation and data reading operation.

控制器4经由触发器、开放NAND闪速存储器接口(ONFI)那样的闪速存储器编程控制器13而与作为非易失性存储器的NAND型闪速存储器5电性连接。控制器4作为以控制NAND型闪速存储器5的方式构成的存储器控制器动作。该控制器4也可通过System-on-a-chip(SoC,系统级芯片)那样的电路实现。The controller 4 is electrically connected to a NAND-type flash memory 5 as a nonvolatile memory via a flip-flop and a flash memory programming controller 13 such as an Open NAND Flash Interface (ONFI). The controller 4 operates as a memory controller configured to control the NAND flash memory 5 . The controller 4 can also be realized by a circuit such as a System-on-a-chip (SoC, system-on-a-chip).

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 flash memory 5 may also include a plurality of NAND flash memory chips (NAND flash memory bare chips) as shown in FIG. 3 . Each NAND flash memory chip can operate independently. Therefore, the NAND flash memory chip functions as a unit capable of operating in parallel. FIG. 3 exemplifies the case where 16 channels Ch.1 to Ch.16 are connected to the flash memory programming controller 13, and two NANDs are connected to each of the 16 channels Ch.1 to Ch.16. type flash memory chips. In this case, 16 NAND flash memory chips #1 to #16 connected to channels Ch.1 to Ch.16 are organized into bank #0, and the remaining 16 chips connected to channels Ch.1 to Ch.16 NAND flash memory chips #17-#32 are organized into bank #1. The bank functions as a unit that allows a plurality of memory modules to operate in parallel by interleaving the banks. In the configuration example shown in FIG. 3, a maximum of 32 NAND flash memory chips can be operated in parallel by interleaving 16 channels and using two banks.

删除动作也能以一个区块(物理区块)单位执行,也能以包含能够并列动作的多个物理区块的集合的超级区块的单位执行。一个超级区块也可包含从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 memory chips #1 to #32, but the present invention is not limited thereto. In addition, each of the NAND flash memory chips #1 to #32 may have a multiplane configuration. For example, in the case where each of the NAND flash memory chips #1 to #32 has a multi-plane configuration including two planes, one super block may also include the slaves and the NAND flash memory chips #1 to #32. A total of 64 physical blocks are selected for each of the corresponding 64 planes.

图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 memory chip #1, physical block BLK3 in NAND flash memory chip #2, NAND flash memory chip Physical block BLK7 in #3, physical block BLK4 in NAND type flash memory chip #4, physical block BLK6 in NAND type flash memory chip #5, ... in NAND type flash memory chip #32 A super block (SB) of the physical block BLK3).

写入目标区块也可为一个物理区块,也可为一个超级区块。另外,也可利用一个超级区块仅包含一个物理区块的构成,在该情况下,一个超级区块等同于一个物理区块。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 host interface 11 , a CPU 12 , a flash memory programming controller 13 , and a DRAM interface 14 . These CPU 12 , flash memory program controller 13 , and DRAM interface 14 are connected to each other via a bus 10 .

该主机接口11为以执行与主机2的通信的方式构成的主机接口电路。该主机接口11也可为例如PCIe控制器(NVMe控制器)。或者,在闪速存储器件3经由Ethernet(注册商标)与主机2连接的构成中,主机接口11也可为NVMe over Fabrics(NVMeOF)控制器。闪速存储器件3经由Ethernet(注册商标)与主机2连接的构成能够根据需要而容易地增加闪速存储器件3的数量。进而,也能够容易地增加主机2的数量。The host interface 11 is a host interface circuit configured to communicate with the host 2 . The host interface 11 can also be, for example, a PCIe controller (NVMe controller). Alternatively, in a configuration in which the flash memory device 3 is connected to the host 2 via Ethernet (registered trademark), the host interface 11 may also be an NVMe over Fabrics (NVMeOF) controller. The configuration in which the flash memory device 3 is connected to the host computer 2 via Ethernet (registered trademark) can easily increase the number of flash memory devices 3 as needed. Furthermore, the number of hosts 2 can also be easily increased.

主机接口11从主机2接收各种请求(指令)。这些请求(指令)中包含写入请求(写入指令)、读出请求(读出指令)及其他各种请求(指令)。The host interface 11 receives various requests (commands) from the host 2 . These requests (commands) include write requests (write commands), read requests (read commands), and various other requests (commands).

CPU12为以控制主机接口11、闪速存储器编程控制器13、DRAM接口14的方式构成的处理器。CPU12响应于闪速存储器件3的电源接通而从NAND型闪速存储器5或未图示的ROM将控制程序(固件)载入于DRAM6,而且通过执行该固件而进行各种处理。另外,固件也可载入于控制器4内的未图示的SRAM上。该CPU12可执行用以对来自主机2的各种指令进行处理的指令处理等。CPU12的动作由通过CPU12执行的所述固件控制。另外,指令处理的一部分或全部也可由控制器4内的专用硬件执行。The CPU 12 is a processor configured to control the host interface 11 , the flash memory program controller 13 , and the DRAM interface 14 . CPU 12 loads a control program (firmware) into DRAM 6 from NAND flash memory 5 or ROM (not shown) in response to power-on of flash memory device 3 , and executes the firmware to perform various processes. In addition, the firmware may be loaded on a not-shown SRAM in the controller 4 . The CPU 12 can execute command processing and the like for processing various commands from the host computer 2 . The operation of the CPU 12 is controlled by the firmware executed by the CPU 12 . In addition, part or all of command processing may be executed by dedicated hardware within the controller 4 .

CPU12可作为区块识别符/缓冲器地址接收部21、传送请求发送部22、及通知部23发挥功能。The CPU 12 can function as a block identifier/buffer address receiving unit 21 , a transfer request sending unit 22 , and a notification unit 23 .

区块识别符/缓冲器地址接收部21从主机2接收包含区块识别符与缓冲器地址的写入请求,并将这些区块识别符与缓冲器地址保存于特定存储区域。写入请求中所包含的区块识别符也可为对某特定的写入目标区块进行指定的区块地址。或者,写入请求也可包含串流ID代替区块识别符。区块识别符或串流ID作为与一个写入目标区块建立关联的识别符发挥功能。写入请求中所包含的缓冲器地址为表示存储有应写入的数据(写入数据)的UWB2A内的位置的存储位置信息。或者,写入请求也可包含缓冲器内偏移作为存储位置信息来代替缓冲器地址。缓冲器内偏移表示存储有写入数据的UWB2A内的偏移位置。The block identifier/buffer address receiving unit 21 receives a write request including a block identifier and a buffer address from the host 2, and stores the block identifier and buffer address in a specific storage area. The block identifier included in the write request can also be a block address specifying a specific write target block. Alternatively, the write request may also include the stream ID instead of the block identifier. The block identifier or stream ID functions as an identifier associated with one write target block. The buffer address included in the write request is storage location information indicating a location in UWB 2A where data to be written (write data) is stored. Alternatively, the write request may also include an offset within the buffer as storage location information instead of the buffer address. The offset in the buffer indicates the offset position in the UWB 2A where the write data is stored.

传送请求发送部22在将所述写入数据写入至NAND型闪速存储器5时,将包含存储位置信息(例如缓冲器地址)的传送请求送出至主机2,由此从UWB2A获取写入数据。When writing the write data into the NAND-type flash memory 5, the transfer request sending unit 22 sends a transfer request including storage location information (such as a buffer address) to the host 2, thereby obtaining the write data from the UWB 2A. .

通知部23在所述写入数据的写入结束且所述写入数据变为能够从NAND型闪速存储器5读出的情况下,对主机2通知保存在UWB2A中的所述写入数据变为多余。The notification unit 23 notifies the host 2 that the write data stored in the UWB 2A has changed when the writing of the write data is completed and the write data can be read from the NAND flash memory 5 . as redundant.

闪速存储器编程控制器13为以在CPU12的控制之下对NAND型闪速存储器5进行控制的方式构成的存储器控制电路。The flash memory program controller 13 is a memory control circuit configured to control the NAND flash memory 5 under the control of the CPU 12 .

DRAM接口14为以在CPU12的控制之下控制DRAM6的方式构成的DRAM控制电路。DRAM6的存储区域的一部分用于存储读出缓冲器(RB)30、写入缓冲器(WB)31、区块管理表32、及不良信息管理表33。另外,这些读出缓冲器(RB)30、写入缓冲器(WB)31、区块管理表32及不良信息管理表33也可存储在控制器4内的未图示的SRAM。区块管理表32对存储在各区块的数据为有效数据或无效数据的任一者进行管理。不良信息管理表33对不良区块的列表进行管理。The DRAM interface 14 is a DRAM control circuit configured to control the DRAM 6 under the control of the CPU 12 . Part of the storage area of the DRAM 6 is used to store a read buffer (RB) 30 , a write buffer (WB) 31 , a block management table 32 , and a defect information management table 33 . Note that these read buffer (RB) 30 , write buffer (WB) 31 , block management table 32 and defect information management table 33 may be stored in a not-shown SRAM in the controller 4 . The block management table 32 manages whether the data stored in each block is valid data or invalid data. The bad information management table 33 manages a list of bad blocks.

图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 flash memory device 3 , the states of blocks are roughly divided into valid blocks storing valid data and free blocks not storing valid data. Each block that is a valid block is managed by a list called a valid block pool. On the other hand, blocks that are free blocks are managed by a list called a free block pool.

本实施方式中,控制器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 host 2 should be written. In this case, the controller 4 first performs a delete operation on each of the selected blocks (free blocks), thereby putting each block into a writable delete state. A block set to a write-enabled delete state is called an open write target block. When a write target block is completely filled with write data from the host 2, the controller 4 moves the write target block to the valid block pool, and allocates a new block (free block) from the free block pool as the new write target block.

在闪速存储器件3中,开放有与共有闪速存储器件3的最终用户(最终用户终端)为相同数量或多于其的写入目标区块(闪速存储器区块)。主机2侧的UWB2A也可包含与这些写入目标区块(闪速存储器区块)为相同数量的写入缓冲区域(UWB区域)。In the flash memory device 3 , the same number or more write target blocks (flash memory blocks) as the end users (end user terminals) sharing the flash memory device 3 are opened. The UWB 2A on the host 2 side may include the same number of write buffer areas (UWB areas) as these write target blocks (flash memory blocks).

图5中,写入缓冲区域#1与写入目标区块#1建立关联,将应写入至写入目标区块#1的全部数据存储在写入缓冲区域#1。写入缓冲区域#2与写入目标区块#2建立关联,将应写入至写入目标区块#2的全部数据存储在写入缓冲区域#2。写入缓冲区域#3与写入目标区块#3建立关联,将应写入至写入目标区块#4的全部数据存储在写入缓冲区域#3。同样,写入缓冲区域#n与写入目标区块#n建立关联,将应写入至写入目标区块#n的全部数据存储在写入缓冲区域#n。In FIG. 5 , the write buffer area #1 is associated with the write target block #1, and all data to be written in the write target block #1 is stored in the write buffer area #1. The write buffer area #2 is associated with the write target block #2, and all data to be written into the write target block #2 is stored in the write buffer area #2. The write buffer area #3 is associated with the write target block #3, and all data to be written into the write target block #4 is stored in the write buffer area #3. Similarly, the write buffer area #n is associated with the write target block #n, and all data to be written in the write target block #n is stored in the write buffer area #n.

主机2将来自最终用户终端#1的写入数据存储在写入缓冲区域#1,将来自最终用户终端#2的写入数据存储在写入缓冲区域#2,将来自最终用户终端#3的写入数据存储在写入缓冲区域#3,将来自最终用户终端#4的写入数据存储在写入缓冲区域#4,而且,将来自最终用户终端#n的写入数据存储在写入缓冲区域#n。Host 2 stores write data from end user terminal #1 in write buffer area #1, stores write data from end user terminal #2 in write buffer area #2, and stores write data from end user terminal #3 in write buffer area #2. Write data is stored in write buffer area #3, write data from end user terminal #4 is stored in write buffer area #4, and write data from end user terminal #n is stored in write buffer Area #n.

主机2将包含识别符与存储位置信息的写入请求送出至闪速存储器件3,该识别符与写入目标区块#1建立关联,该存储位置信息表示存储有来自最终用户终端#1的写入数据的写入缓冲区域#1内的位置。与写入目标区块#1建立关联的识别符也可为指定写入目标区块#1的区块识别符(区块地址),也可为与写入目标区块#1建立关联的串流ID。The host 2 sends to the flash memory device 3 a write request including an identifier and storage location information, the identifier is associated with the write target block #1, and the storage location information indicates that the data from the end user terminal #1 is stored. The location within the write buffer area #1 where the data is written. The identifier associated with the write target block #1 may also be a block identifier (block address) specifying the write target block #1, or may be a string associated with the write target block #1 Stream ID.

闪速存储器件3通过将包含该存储位置信息的传送请求送出至主机2,而从写入缓冲区域#1获取相当于1物理页面的大小的写入数据(例如,在TLC-闪速存储器的情况下为3页面量的写入数据)。另外,该传送请求不仅可包含存储位置信息,也可包含与写入目标区块#1建立关联的识别符(例如指定写入目标区块#1的区块识别符、或与写入目标区块#1建立关联的串流ID)。由此,主机2可容易地特定出存储有应传送至闪速存储器件3的写入数据的写入缓冲区域及该写入缓冲区域内的位置(存储位置)。The flash memory device 3 acquires write data corresponding to the size of one physical page from the write buffer area #1 by sending a transfer request including the storage location information to the host 2 (for example, in the TLC-flash memory's In the case of 3 pages of written data). In addition, the transmission request may include not only storage location information, but also an identifier associated with the write target block #1 (for example, a block identifier specifying the write target block #1, or a block identifier associated with the write target block #1). Block #1 establishes the associated stream ID). Thus, the host 2 can easily specify the write buffer area in which the write data to be transferred to the flash memory device 3 is stored and the position (storage position) in the write buffer area.

主机2将包含识别符与存储位置信息的写入请求送出至闪速存储器件3,该识别符与写入目标区块#2建立关联(例如为指定写入目标区块#2的区块识别符,或与写入目标区块#2建立关联的串流ID),该存储位置信息表示存储有来自最终用户终端#2的写入数据的写入缓冲区域#2内的位置。The host computer 2 sends to the flash memory device 3 a write request including an identifier and storage location information, the identifier is associated with the write target block #2 (for example, the block identification for specifying the write target block #2 character, or a stream ID associated with the write target block #2), the storage location information indicates the location in the write buffer area #2 where the write data from the end user terminal #2 is stored.

闪速存储器件3通过将包含该存储位置信息的传送请求送出至主机2,而从写入缓冲区域#2获取相当于1物理页面的大小的写入数据(例如在TLC-闪速存储器的情况下为3页面量的写入数据)。另外,该传送请求不仅可包含存储位置信息,也可包含与写入目标区块#2建立关联的识别符(例如为指定写入目标区块#2的区块识别符,或与写入目标区块#2建立关联的串流ID)。由此,主机2可容易地特定出存储有应传送至闪速存储器件3的写入数据的写入缓冲区域与该写入缓冲区域内的位置(存储位置)。The flash memory device 3 acquires write data corresponding to the size of 1 physical page from the write buffer area #2 by sending a transfer request including the storage location information to the host computer 2 (for example, in the case of TLC-flash memory The following is the write data of 3 pages). In addition, the transfer request may not only include storage location information, but may also include an identifier associated with the write target block #2 (for example, a block identifier specifying the write target block #2, or a block identifier associated with the write target block #2). Block #2 establishes the associated stream ID). Thus, the host 2 can easily specify the write buffer area storing the write data to be transferred to the flash memory device 3 and the position (storage position) in the write buffer area.

同样,主机2将包含识别符与存储位置信息的写入请求送出至闪速存储器件3,该识别符与写入目标区块#n建立关联(例如为指定写入目标区块#n的区块识别符、或与写入目标区块#n建立关联的串流ID),该存储位置信息表示存储有来自最终用户终端#n的写入数据的写入缓冲区域#n内的位置。Similarly, the host computer 2 sends to the flash memory device 3 a writing request including an identifier and storage location information, the identifier is associated with the writing target block #n (for example, the area designated for writing the target block #n Block identifier, or stream ID associated with the write target block #n), the storage location information indicates the location in the write buffer area #n where the write data from the end user terminal #n is stored.

闪速存储器件3通过将包含该存储位置信息的传送请求送出至主机2,而从写入缓冲区域#n获取相当于1物理页面的大小的写入数据(例如在TLC-闪速存储器的情况下为3页面量的写入数据)。另外,该传送请求不仅可包含存储位置信息,也可包含与写入目标区块#n建立关联的识别符(例如指定写入目标区块#n的区块识别符、或与写入目标区块#n建立关联的串流ID)。由此,主机2可容易地特定出存储有应传送至闪速存储器件3的写入数据的写入缓冲区域及该写入缓冲区域内的位置(存储位置)。The flash memory device 3 acquires write data corresponding to the size of 1 physical page from the write buffer area #n by sending a transfer request including the storage location information to the host 2 (for example, in the case of TLC-flash memory The following is the write data of 3 pages). In addition, the transfer request may include not only storage location information, but also an identifier associated with the write target block #n (for example, a block identifier specifying the write target block #n, or a block identifier associated with the write target block #n). Block #n establishes the associated stream ID). Thus, the host 2 can easily specify the write buffer area in which the write data to be transferred to the flash memory device 3 is stored and the position (storage position) in the write buffer area.

图6表示存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据写入处理。FIG. 6 shows the relationship between the storage device 3 and the host-side UWB 2A and the data writing process performed by the host 2 and the flash memory device 3 .

此处,为使图示简单,例示对某一个写入目标区块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 host computer 2 executes a flash memory manager which is host software that manages the flash memory device 3 . The flash memory manager can also be incorporated in the device driver for the flash memory device 3 . The flash memory manager manages UWB2A. In response to a data write request from upper-level software (application program or file system), the flash memory manager stores a write request accompanied by data to be written, a label, and a block identifier in UWB2A. A tag is an identifier that can identify the data. A label can also be a logical address such as a Logical Block Address (LBA, Logical Block Address), a key of a key-value store, or a document identifier such as a document name. The block identifier is the block address to be written into the target block BLK. In addition, the write request may include the length (Length) of the data to be written, and the write request may not include the length (Length) when writing of write data of a fixed length is requested. In addition, the write request may also include a page address indicating a page to which data should be written. Also, the host software may issue the write request, and the flash memory manager receives the write request from the host software, and stores the received write request in UWB2A.

(2)闪速存储器管理器将写入请求(写入指令)送出至闪速存储器件3。该写入请求包含标签、区块识别符(区块地址)、缓冲器地址(或缓冲器内偏移)。缓冲器地址表示存储有写入数据的UWB2A内的位置。此外,该写入请求也可包含表示应写入数据的页面的页面地址。闪速存储器件3的控制器4接收该写入请求,并保存该写入请求中所包含的标签、区块识别符、缓冲器地址(或缓冲器内偏移)。(2) The flash memory manager sends out a write request (write command) to the flash memory device 3 . The write request includes a tag, a block identifier (block address), and a buffer address (or buffer offset). The buffer address indicates the location in UWB 2A where write data is stored. In addition, the write request may also include a page address indicating a page to which data should be written. The controller 4 of the flash memory device 3 receives the write request, and saves the tag, block identifier, and buffer address (or offset in the buffer) included in the write request.

(3)在闪速存储器编程控制器13将该数据写入至写入目标区块BLK时,闪速存储器件3的控制器4将传送请求(Transfer Request)送出至主机2。该传送请求包含所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的标签、及所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的缓冲器地址(或缓冲器内偏移)、及所保存的区块识别符(区块地址)。(3) When the flash memory programming controller 13 writes the data into the write target block BLK, the controller 4 of the flash memory device 3 sends a transfer request (Transfer Request) to the host 2. The transfer request contains the saved buffer address (or offset within the buffer). Alternatively, the transfer request may also include the stored tag and the stored buffer address (or offset in the buffer). Alternatively, the transfer request may also include the stored buffer address (or offset in the buffer), and the stored block identifier (block address).

(4)主机2的闪速存储器管理器当接收到至少包含缓冲器地址(或缓冲器内偏移)的传送请求时,将存储在由该缓冲器地址(或缓冲器内偏移)指定的UWB2A内的位置的数据从UWB2A传送至闪速存储器件3。例如,在NAND型闪速存储器5为TLC-闪速存储器情况下,将3页面量的数据从UWB2A传送至闪速存储器件3。传送请求也可包含应传送的数据的长度。(4) When the flash memory manager of the host computer 2 receives a transfer request containing at least the buffer address (or offset in the buffer), it will store the data in the address specified by the buffer address (or offset in the buffer). Data for locations within UWB2A is transferred from UWB2A to flash memory device 3 . For example, in the case where the NAND-type flash memory 5 is a TLC-flash memory, 3 pages worth of data are transferred from the UWB 2A to the flash memory device 3 . The transfer request may also contain the length of the data to be transferred.

(5)闪速存储器件3的控制器4接收该数据,而且将该数据经由闪速存储器编程控制器13传送至NAND型闪速存储器5,且将该数据写入至写入目标区块BLK。在通过全序列编程动作将3页面量的数据写入至某物理页面的情况下,闪速存储器编程控制器13将3页面量的数据依序传送至NAND型闪速存储器5内的页面缓冲器群,然后将写入指示送出至NAND型闪速存储器5。闪速存储器编程控制器13可通过对来自NAND型闪速存储器5的状态进行监控,而判定写入动作(全序列编程动作)是否结束。(5) The controller 4 of the flash memory device 3 receives the data, and transfers the data to the NAND type flash memory 5 via the flash memory programming controller 13, and writes the data into the write target block BLK . In the case of writing three pages of data into a certain physical page through a full sequence programming operation, the flash memory programming controller 13 sequentially transfers three pages of data to the page buffer in the NAND flash memory 5 group, and then send a write instruction to the NAND flash memory 5 . The flash memory programming controller 13 can monitor the state from the NAND flash memory 5 to determine whether the writing operation (full sequence programming operation) is completed.

(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 host computer 2 to save the data in the UWB2A The data (here, data corresponding to 3 pages) becomes unnecessary. In this case, the controller 4 of the flash memory device 3 may also send a write completion (Write Done) including the label, page address, and length to the host 2, or send an invalidation request (invalidate Request) to the host 2 . The invalidation request includes a buffer address (or buffer internal offset) storing readable data. Alternatively, the invalidation request may include a tag of readable data and a buffer address (or offset within the buffer) in which readable data is stored. Alternatively, when the full-sequence programming operation to the last physical page of the write target block BLK ends and the write target block BLK is completely filled with data, the controller 4 notifies the host computer 2 of the write target area The UWB area corresponding to the block BLK becomes redundant. In this case, the controller 4 sends a close request (Close Request) to the host 2. The shutdown request may also include a block identifier (block address) written into the target block BLK. In the case of receiving a close request including the block identifier of the write-in target block BLK, the flash memory manager of the host computer 2 opens the UWB area associated with the write-in target block BLK, and the UWB area for other purposes. In this case, the flash memory manager may reuse the opened UWB area as a UWB area for another write target block (for example, a newly opened write target block).

图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 block BLK#1 may also include a plurality of storage areas for temporarily storing data of a plurality of pages, for example. In this case, each storage area may include a label field, a legal/illegal field, a data storage field, and a page address field. The label field stores the label of the corresponding data. The legal/illegal field holds a legal/illegal flag indicating whether the corresponding data must be saved. The data storage field stores data to be written into the write target block BLK#1. A data storage field may also have a size of 1 page amount. The page address field is an optional field, and if the write request includes a page address, the page address is stored in the page address field.

在从闪速存储器件3通知有保存在UWB区域#1的数据变为多余的情况下,主机2(闪速存储器管理器)将与该数据对应的存储区域内的合法/非法旗标更新为表示无效的值。将合法/非法旗标更新为表示无效的值的存储区域,被再次利用于应写入至写入目标区块BLK#1的其他数据的存储。When notified from the flash memory device 3 that the data stored in the UWB area #1 becomes unnecessary, the host computer 2 (flash memory manager) updates the valid/illegal flag in the storage area corresponding to the data to Indicates an invalid value. The storage area in which the legitimate/illegal flag is updated to a value indicating invalidity is reused for storing other data to be written in the write target block BLK#1.

图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 flash memory device 3 and the host-side UWB 2A and data read processing performed by the host 2 and the flash memory device 3 .

(1)响应于来自上位软件的用以读出数据的请求,主机2的闪速存储器管理器将用以读出该数据的读出请求送出至闪速存储器件3。该读出请求也可包含例如标签、区块识别符(区块地址)、页面地址、长度。(1) In response to a request to read data from upper-level software, the flash memory manager of the host computer 2 sends a read request to the flash memory device 3 to read the data. The read request may also include, for example, a tag, a block identifier (block address), a page address, and a length.

(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 flash memory device 3 will This data is read from the write target block BLK.

(3)闪速存储器件3的控制器4将读出的数据与该数据的标签一起送出至主机2。(3) The controller 4 of the flash memory device 3 sends the read data to the host 2 together with the data tag.

(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 host 2 during the period from when the data is written to when the data can be read. In the case of , the controller 4 of the flash memory device 3 sends to the host 2 a transfer request to send back the data from the UWB 2A as a response to the read request. The transfer request, as information capable of specifying the data in the UWB2A that should be transferred, may also include a buffer address corresponding to the data, or a buffer address corresponding to the data and a block identifier corresponding to the data. both. Alternatively, the transmission request may also include a tag corresponding to the data, and may also include a block identifier and a page address corresponding to the data.

(4′)主机2的闪速存储器管理器从UWB2A读出该数据,并将读出的数据与该数据的标签一起送回至上位软件。(4') The flash memory manager of the host computer 2 reads the data from the UWB2A, and sends the read data back to the host software together with the data tag.

或者,主机2的闪速存储器管理器在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,响应于来自上位软件的用以读出该数据的请求,直接从UWB2A读出该数据而不将读出请求送出至闪速存储器件3。该情况下,数据读出处理如下所述那样执行。Alternatively, the flash memory manager of the host computer 2 directly reads the data from the UWB2A in response to a request from the host software to read the data before the flash memory device 3 notifies that the data stored in the UWB2A becomes redundant. No read request is issued to the flash memory device 3 . In this case, the data reading process is performed as follows.

(1″)在从闪速存储器件3通知存储在UWB2A的某数据变为多余之前,主机2的闪速存储器管理器响应于来自上位软件的用以读出该数据的请求,将读出请求送出至UWB2A而从UWB2A读出该数据。该读出请求例如也可包含标签、缓冲器地址、长度。(1″) Before the flash memory device 3 notifies that certain data stored in the UWB 2A becomes redundant, the flash memory manager of the host computer 2 responds to a request for reading the data from the host software, and sends the read request The data is sent to UWB 2A and read from UWB 2A. The read request may include, for example, a tag, a buffer address, and a length.

(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 flash memory device 3 supporting fuzzy-fine writing and the host-side UWB 2A, and the data writing process performed by the host 2 and the flash memory device 3 .

此处,设定通过多个阶段的写入动作(模糊-精细编程动作)将写入数据写入至一个写入目标区块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 host computer 2, the flash memory manager stores in UWB 2A a write request accompanied by data to be written, a label, and a block identifier in response to a data write request from upper-level software. In addition, the write request may include the length (Length) of the data to be written, and the write request may not include the length (Length) when writing of write data of a fixed length is requested. In addition, the write request may also include a page address indicating a page to which data should be written. In addition, the write request may be issued by the host software, and the write request may be received by the flash memory manager from the host software, and the received write request may be stored in UWB2A.

(2)闪速存储器管理器将写入请求(写入指令)送出至闪速存储器件3。该写入请求包含标签、区块识别符(区块地址)、缓冲器地址(或缓冲器内偏移)。此外,该写入请求也可包含表示应写入数据的页面的页面地址。闪速存储器件3的控制器4接收该写入请求,并保存该写入请求中所包含的标签、区块识别符、缓冲器地址(或缓冲器内偏移)。(2) The flash memory manager sends out a write request (write command) to the flash memory device 3 . The write request includes a tag, a block identifier (block address), and a buffer address (or buffer offset). In addition, the write request may also include a page address indicating a page to which data should be written. The controller 4 of the flash memory device 3 receives the write request, and saves the tag, block identifier, and buffer address (or offset in the buffer) included in the write request.

(3)在闪速存储器编程控制器13开始该数据的第一阶段的写入动作(模糊写入)时,闪速存储器件3的控制器4将传送请求(Transfer Request)送出至主机2。该传送请求包含所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的标签及所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的缓冲器地址(或缓冲器内偏移)及所保存的区块识别符(区块地址)。(3) When the flash memory programming controller 13 starts the writing operation (fuzzy writing) of the first stage of the data, the controller 4 of the flash memory device 3 sends a transfer request (Transfer Request) to the host computer 2. The transfer request contains the saved buffer address (or offset within the buffer). Alternatively, the transfer request may also include the stored tag and the stored buffer address (or offset in the buffer). Alternatively, the transfer request may also include the stored buffer address (or offset in the buffer) and the stored block identifier (block address).

(4)主机2的闪速存储器管理器当接收到至少包含缓冲器地址(或缓冲器内偏移)的传送请求时,将存储在由该缓冲器地址(或缓冲器内偏移)指定的UWB2A内的位置的数据(此处,图示为“Foggy Data(模糊数据)”)从UWB2A传送至闪速存储器件3。例如,在NAND型闪速存储器5为TLC-闪速存储器的情况下,将3页面量的数据作为Foggy Data从UWB2A传送至闪速存储器件3。传送请求也可包含应传送的数据的长度。(4) When the flash memory manager of the host computer 2 receives a transfer request containing at least the buffer address (or offset in the buffer), it will store the data in the address specified by the buffer address (or offset in the buffer). The data of the position within UWB2A (here, illustrated as “Foggy Data”) is transferred from UWB2A to flash memory device 3 . For example, when the NAND-type flash memory 5 is a TLC-flash memory, three pages of data are transferred from the UWB 2A to the flash memory device 3 as Foggy Data. The transfer request may also contain the length of the data to be transferred.

(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 flash memory device 3 receives the data, and transfers the data to the NAND type flash memory 5 via the flash memory programming controller 13, thereby writing the data into the write target block BLK The write target physical page (the first phase of writing: fuzzy writing). When 3 pages of data are written to a certain write target physical page by fuzzy writing, the flash memory programming controller 13 sequentially transfers 3 pages of data to the NAND flash memory 5. page buffer group, and send the write instruction of the first stage to the NAND flash memory 5 . The flash memory programming controller 13 can determine whether the writing operation (the writing operation of the first stage) is completed by monitoring the status from the NAND flash memory 5 . Generally, the fuzzy-fine programming action is used to reduce programming interference, such as fuzzy writing of physical page #1, fuzzy writing of physical page #2, fine writing of physical page #1, and fine writing of physical page #2 The method is executed repeatedly on multiple word lines (multiple physical pages).

(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 flash memory device 3 obtains the data to be written by the fine writing (the same data as the data already written by fuzzy writing), and send a transfer request (Transfer Request) to the host 2 again. This transfer request includes the stored buffer address, that is, the same buffer address as the buffer address included in the transfer request sent in the process (3).

(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 host computer 2 receives a transfer request containing at least a buffer address (or an offset in the buffer), it will store the data in the address specified by the buffer address (or offset in the buffer). Data of a position within UWB2A (here, illustrated as “Fine Data”) is transferred from UWB2A to flash memory device 3 . Fine Data is the same data as Foggy Data. For example, when the NAND-type flash memory 5 is a TLC-flash memory, the data for the three pages is transferred from the UWB 2A to the flash memory device 3 as Fine Data. The transfer request may also contain the length of the data to be transferred. In addition, the host 2 does not need to recognize that the data to be transferred is either Foggy Data or Fine Data.

(8)闪速存储器件3的控制器4接收该数据,而且将该数据经由闪速存储器编程控制器13传送至NAND型闪速存储器5,从而将该数据写入至写入目标区块BLK的所述写入目标物理页面(第二阶段的写入:精细写入)。在通过精细写入将3页面量的数据写入至该写入目标物理页面的情况下,闪速存储器编程控制器13将与在模糊写入中使用的3页面量的数据相同的3页面量的数据依序传送至NAND型闪速存储器5内的页面缓冲器群,而且将第二阶段的写入指示送出至NAND型闪速存储器5。闪速存储器编程控制器13可通过监控来自NAND型闪速存储器5的状态而判定写入动作(第二阶段的写入动作)是否结束。(8) The controller 4 of the flash memory device 3 receives the data, and transfers the data to the NAND type flash memory 5 via the flash memory programming controller 13, thereby writing the data into the write target block BLK The write target physical page (the second phase of writing: fine writing). When writing 3 pages of data into the write target physical page by fine writing, the flash memory programming controller 13 writes the same 3 pages of data as the 3 pages of data used in fuzzy writing The data in the NAND flash memory 5 are sequentially transferred to the page buffer group in the NAND flash memory 5 , and the second-stage write instruction is sent to the NAND flash memory 5 . The flash memory programming controller 13 can determine whether the write operation (the write operation of the second stage) is completed by monitoring the status from the NAND flash memory 5 .

(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 host 2 notifies that the data stored in the UWB 2A (here, 3 pages of data) is redundant. In this case, the controller 4 of the flash memory device 3 may also send a write completion (Write Done) including the label, page address, and length to the host 2, or send an invalidation request (invalidate Request) to the host 2 . The invalidation request includes a buffer address (or buffer internal offset) storing readable data. Alternatively, the invalidation request may include a tag of readable data and a buffer address (or offset within the buffer) in which readable data is stored. Alternatively, when the fuzzy-fine programming operation on the last physical page of the write target block BLK ends and the write target block BLK is completely filled with data, the controller 4 notifies the host 2 of the write target The UWB area corresponding to the block BLK becomes redundant. In this case, the controller 4 sends a close request (Close Request) to the host 2. The shutdown request may also include a block identifier (block address) written into the target block BLK. When receiving a close request including a block identifier of the write target block BLK, the flash memory manager of the host computer 2 opens the UWB area associated with the write target block BLK to open the UWB area. used for other purposes. In this case, the flash memory manager may reuse the opened UWB area as a UWB area for another write target block (for example, a newly opened write target block).

图10表示支持模糊-精细写入的闪速存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据读出处理。FIG. 10 shows the relationship between the flash memory device 3 supporting fuzzy-fine writing and the UWB 2A on the host side, and the data read processing performed by the host 2 and the flash memory device 3 .

(1)响应于来自上位软件的用以读出数据的请求,主机2的闪速存储器管理器将用以读出该数据的读出请求送出至闪速存储器件3。该读出请求例如也可包含标签、区块识别符(区块地址)、页面地址、长度。(1) In response to a request to read data from upper-level software, the flash memory manager of the host computer 2 sends a read request to the flash memory device 3 to read the data. The read request may include, for example, a tag, a block identifier (block address), a page address, and a length.

(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 flash memory device 3 reads out the data from the writing target block BLK via the flash memory programming controller 13 .

(3)闪速存储器件3的控制器4将读出的数据与该数据的标签一起送出至主机2。(3) The controller 4 of the flash memory device 3 sends the read data to the host 2 together with the data tag.

(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 host 2 during the period from when the data is written to when the data can be read. In the case of , the controller 4 of the flash memory device 3 sends to the host 2 a transfer request to send back the data from the UWB 2A as a response to the read request. The transfer request may also include a buffer address corresponding to the data.

(4′)主机2的闪速存储器管理器从UWB2A读出该数据,并将读出的数据与该数据的标签一起送回至上位软件。(4') The flash memory manager of the host computer 2 reads the data from the UWB2A, and sends the read data back to the host software together with the data tag.

或者,主机2的闪速存储器管理器在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,响应于来自上位软件的用以读出该数据的请求,直接从UWB2A读出该数据而不将读出请求送出至闪速存储器件3。该情况下,数据读出处理如下所述那样执行。Alternatively, the flash memory manager of the host computer 2 directly reads the data from the UWB2A in response to a request from the host software to read the data before the flash memory device 3 notifies that the data stored in the UWB2A becomes redundant. No read request is issued to the flash memory device 3 . In this case, the data reading process is performed as follows.

(1″)在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,主机2的闪速存储器管理器响应于来自上位软件的用以读出该数据的请求,将读出请求送出至UWB2A而从UWB2A读出该数据。该读出请求例如也可包含标签、缓冲器地址、长度。(1″) Before the flash memory device 3 notifies that the data stored in the UWB 2A becomes redundant, the flash memory manager of the host computer 2 sends a read request in response to a request for reading the data from the host software. The data is read from UWB 2A to UWB 2A. The read request may include, for example, a tag, a buffer address, and a length.

(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 host 2 and the flash memory device 2 .

主机2将应写入至某写入目标区块的数据(写入数据)存储在与该写入目标区块建立关联的UWB区域,而且将包含区块识别符与缓冲器地址(或缓冲器内偏移)的写入请求送出至闪速存储器件3(步骤S11)。区块识别符为应写入该写入数据的写入目标区块的区块地址。缓冲器地址表示存储有该写入数据的UWB区域内的位置。Host 2 stores the data (write data) that should be written into a certain write target block in the UWB area associated with the write target block, and will include the block identifier and buffer address (or buffer address) Inner offset) write request is sent to the flash memory device 3 (step S11). The block identifier is the block address of the write target block where the write data should be written. The buffer address indicates the location in the UWB area where the write data is stored.

闪速存储器件3的控制器4从主机2接收该写入请求,并保存该写入请求内的区块识别符与缓冲器地址(或缓冲器内偏移)(步骤S21)。该情况下,控制器4也可通过将区块识别符与缓冲器地址存储在DRAM6上的写入缓冲器31而保存这些区块识别符与缓冲器地址。The controller 4 of the flash memory device 3 receives the write request from the host 2, and saves the block identifier and the buffer address (or offset in the buffer) in the write request (step S21). In this case, the controller 4 may store the block identifier and the buffer address by storing the block identifier and the buffer address in the write buffer 31 on the DRAM 6 .

在由保存的区块识别符指定的写入目标区块写入与该写入请求对应的写入数据时,闪速存储器件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 flash memory device 3 will include the saved buffer address (or buffer Inner offset) transmission request is sent to the host 2 (step S22).

主机2当接收到该传送请求时,主机2将该写入数据从UWB区域传送至闪速存储器件3(步骤S12)。When the host 2 receives the transfer request, the host 2 transfers the write data from the UWB area to the flash memory device 3 (step S12).

闪速存储器件3的控制器4接收从主机2传送的该写入数据(步骤S23)。控制器4通过将接收到的写入数据存储在例如DRAM6上的写入缓冲器31等而保存该写入数据(步骤S24)。The controller 4 of the flash memory device 3 receives the write data transmitted from the host 2 (step S23). The controller 4 saves the received write data by storing the received write data in, for example, the write buffer 31 on the DRAM 6 (step S24).

控制器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 NAND flash memory 5 is completed. And, the controller 4 writes the write data into the write target block specified by the stored block identifier (step S26 ). In this case, the controller 4 determines the write target page in the write target block where the write data should be written. In addition, the write request may also include a page address specifying the write target page.

在该写入数据的写入动作结束且该写入数据能够读出的情况下(在全序列编程动作中为全序列编程动作结束的情况下),控制器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 host computer 2 of the data stored in the UWB area. The write data of becomes redundant (step S27).

图12的流程图表示通过闪速存储器件3执行的通知处理的步骤。The flowchart of FIG. 12 shows the steps of notification processing performed by the flash memory device 3 .

闪速存储器件3的控制器4可判定是否为向写入目标区块的数据的写入动作结束且该数据能够读出(步骤S31)。The controller 4 of the flash memory device 3 can determine whether the writing operation of the data written into the target block is completed and the data can be read (step S31 ).

如果数据的写入动作结束且该数据能够读出(步骤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 host 2. For redundancy, a write completion (Write Done) or an invalidation request (invalidate Request) is sent to the host 2 (step S33).

如果向该写入目标区块的最后页面(最后物理页面)的写入动作结束而该写入目标区块全体被数据写满(步骤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 host computer 2 with The entire UWB area corresponding to the write target block becomes redundant, and a close request (Close Request) is sent to the host computer 2 (step S34).

图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 host 2 sends a write request including the block identifier and the buffer address (or offset in the buffer) to the flash memory device 3 (step S40). The host 2 judges whether or not a transfer request has been received from the flash memory device 3 (step S41).

如果从闪速存储器件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 host 2 transfers the data stored in the location within the UWB area specified by the buffer address (or offset within the buffer) in the transfer request. to the flash memory device 3 (step S42). Also, the host computer 2 determines whether the flash memory device 3 is notified of excess data in the UWB area, or whether a close request (Close Request) is received from the flash memory device 3 (steps S43, S44).

如果从闪速存储器件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 host computer 2 will update the legal/illegal flag corresponding to the redundant data to a value representing invalidity, and store the redundant data in the A storage area in the UWB area is opened (step S44). The host 2 can reuse this open storage area as a storage area for writing new write data into the write target block corresponding to the UWB area.

如此,在本实施方式中,当某数据的写入动作结束且该数据能够读出时,从闪速存储器件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 host 2 of the data in the UWB area from the flash memory device 3 . Therefore, the data is stored in the UWB area until the data can be read from the NAND flash memory 5 .

如果从闪速存储器件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 host computer 2 will open all the UWB areas associated with the writing target block of the block identifier contained in the closing request (step S46). The host 2 can reuse the opened UWB area as a UWB area newly allocated by the flash memory device 3 for writing the target block.

图14的流程图表示根据接收到读出请求而通过闪速存储器件3执行的数据读出动作的步骤。The flowchart of FIG. 14 shows the steps of the data read operation performed by the flash memory device 3 upon receipt of a read request.

闪速存储器件3的控制器4从主机2接收读出请求(步骤S51)。控制器4判定由读出请求指定的读出数据是否为向写入目标区块的写入动作结束且能够读出的数据(步骤S52)。The controller 4 of the flash memory device 3 receives a readout request from the host 2 (step S51). The controller 4 determines whether or not the read data designated by the read request is data that can be read after the write operation to the write target block has been completed (step S52 ).

如果应读出的数据为向写入目标区块的写入动作结束且能够读出的数据(步骤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 NAND flash memory 5. (step S53), and send the read data back to the host computer 2 (step S54).

另一方面,如果应读出的数据不为向写入目标区块的写入动作结束且能够读出的数据,即在从该数据开始写入至该数据能够读出为止的期间内从主机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 host 2 sends a read request to the flash memory device 3 to read the data (step S61).

而且,主机2判定是否从闪速存储器件3接收到以从UWB区域送回(读出)该数据的方式请求的传送请求(步骤S62)。Furthermore, the host 2 judges whether or not a transfer request for returning (reading) the data from the UWB area has been received from the flash memory device 3 (step S62).

如果从闪速存储器件3接收到该传送请求(步骤S62的是),则主机2将该数据从UWB区域读出(步骤S63)。If the transfer request is received from the flash memory device 3 (YES at step S62), the host 2 reads out the data from the UWB area (step S63).

图16表示支持串流写入的闪速存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据写入处理。FIG. 16 shows the relationship between the flash memory device 3 supporting streaming writing and the host-side UWB 2A, and the data writing process performed by the host 2 and the flash memory device 3 .

此处,设定通过全序列编程动作将写入数据写入至一个写入目标区块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 host computer 2, according to the request for writing data from the host software (application program or file system), the flash memory manager writes the data to be written, stream ID, LBA, and length Requests are stored in UWB2A. The stream ID is an identifier of a certain stream among the multiple streams associated with the multiple write target blocks. In addition, the host software may issue the write request, and the flash memory manager may receive the write request from the host software and store the received write request in UWB2A.

(2)闪速存储器管理器将写入请求(写入指令)送出至闪速存储器件3。该写入请求包含串流ID、LBA、长度、缓冲器地址(或缓冲器内偏移)。缓冲器地址表示存储有应写入的数据的UWB2A内的位置。闪速存储器件3的控制器4接收该写入请求,并保存该写入请求中所包含的串流ID、LBA、长度、缓冲器地址。(2) The flash memory manager sends out a write request (write command) to the flash memory device 3 . The write request includes stream ID, LBA, length, buffer address (or buffer offset). The buffer address indicates the location in UWB2A where the data to be written is stored. The controller 4 of the flash memory device 3 receives the write request, and saves the stream ID, LBA, length, and buffer address included in the write request.

(3)在闪速存储器编程控制器13将该数据写入至写入目标区块BLK时,闪速存储器件3的控制器4将传送请求(Transfer Request)送出至主机2。该传送请求包含所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的LBA及所保存的缓冲器地址(或缓冲器内偏移)。或者,该传送请求也可包含所保存的缓冲器地址(或缓冲器内偏移)及所保存的串流ID。或者,该传送请求也可包含所保存的缓冲器地址(或缓冲器内偏移)及与所保存的串流ID建立关联的写入目标区块的区块识别符(区块地址)。(3) When the flash memory programming controller 13 writes the data into the write target block BLK, the controller 4 of the flash memory device 3 sends a transfer request (Transfer Request) to the host 2. The transfer request contains the saved buffer address (or offset within the buffer). Alternatively, the transfer request may also include the saved LBA and the saved buffer address (or offset in the buffer). Alternatively, the transfer request may also include the saved buffer address (or offset in the buffer) and the saved stream ID. Alternatively, the transfer request may also include the saved buffer address (or offset in the buffer) and the block identifier (block address) of the write target block associated with the saved stream ID.

(4)主机2的闪速存储器管理器当接收到至少包含缓冲器地址(或缓冲器内偏移)的传送请求时,将存储在由该缓冲器地址(或缓冲器内偏移)指定的UWB2A内的位置的数据从UWB2A传送至闪速存储器件3。例如,在NAND型闪速存储器5为TLC-闪速存储器的情况下,将3页面量的数据从UWB2A传送至闪速存储器件3。传送请求包含应传送的数据的长度。(4) When the flash memory manager of the host computer 2 receives a transfer request containing at least the buffer address (or offset in the buffer), it will store the data in the address specified by the buffer address (or offset in the buffer). Data for locations within UWB2A is transferred from UWB2A to flash memory device 3 . For example, in the case where the NAND-type flash memory 5 is a TLC-flash memory, three pages worth of data are transferred from the UWB 2A to the flash memory device 3 . The transfer request contains the length of the data that should be transferred.

(5)闪速存储器件3的控制器4接收该数据,而且将该数据经由闪速存储器编程控制器13传送至NAND型闪速存储器5,从而将该数据写入至写入目标区块BLK。在通过全序列编程动作将3页面量的数据写入至物理页面的情况下,闪速存储器编程控制器13将3页面量的数据依序传送至NAND型闪速存储器5内的页面缓冲器群,而且将写入指示送出至NAND型闪速存储器5。闪速存储器编程控制器13可通过监控来自NAND型闪速存储器5的状态而判定写入动作(全序列编程动作)是否结束。(5) The controller 4 of the flash memory device 3 receives the data, and transfers the data to the NAND type flash memory 5 via the flash memory programming controller 13, thereby writing the data into the write target block BLK . In the case of writing three pages of data into physical pages by a full sequence programming operation, the flash memory programming controller 13 sequentially transfers three pages of data to the page buffer group in the NAND flash memory 5 , and sends a write command to the NAND flash memory 5 . The flash memory programming controller 13 can determine whether the writing operation (full sequence programming operation) is completed by monitoring the status from the NAND type flash memory 5 .

(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 host computer 2 to save the data in the UWB2A The data (here, data corresponding to 3 pages) becomes redundant. In this case, the controller 4 of the flash memory device 3 may also send a write completion (Write Done) including the LBA and length to the host 2, or send an invalidation request (invalidate Request) to the host 2. The invalidation request includes a buffer address (or buffer internal offset) storing readable data. Alternatively, the invalidation request may include the LBA of the readable data and the buffer address (or offset in the buffer) in which the readable data is stored. Alternatively, when the full-sequence programming operation to the last physical page of the write target block BLK ends and the write target block BLK is completely filled with data, the controller 4 notifies the host computer 2 of the write target area The UWB area corresponding to the block BLK becomes redundant. In this case, the controller 4 sends a close request (Close Request) to the host 2. The shutdown request may also include a block identifier (block address) written into the target block BLK. When receiving a close request including a block identifier of the write target block BLK, the flash memory manager of the host computer 2 opens the UWB area associated with the write target block BLK to open the UWB area. used for other purposes. In this case, the flash memory manager may reuse the opened UWB area as a UWB area for another write target block (for example, a newly opened write target block).

图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 block BLK#1 is associated with the stream of stream ID#1, the write target block BLK#2 is associated with the stream of stream ID#2, and the write target block BLK #3 is associated with the stream of stream ID #3, and the write target block BLK#n is associated with the stream of stream ID #n.

将由包含串流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 stream ID#1 is written into the write target block BLK#1. The write data specified by the write request including the stream ID#2 is written into the write target block BLK#2. The write data specified by the write request including the stream ID#3 is written into the write target block BLK#3. The write data specified by the write request including the stream ID #n is written to the write target block BLK #n.

图18表示支持串流写入的闪速存储器件3与主机侧UWB2A的关系及通过主机2与闪速存储器件3执行的数据读出处理。FIG. 18 shows the relationship between the flash memory device 3 supporting streaming writing and the host-side UWB 2A, and data read processing performed by the host 2 and the flash memory device 3 .

(1)响应于来自上位软件的用以读出数据的请求,主机2的闪速存储器管理器将该用以读出数据的读出请求送出至闪速存储器件3。该读出请求例如也可包含LBA、长度。(1) The flash memory manager of the host computer 2 sends out the read request for reading data to the flash memory device 3 in response to a request for reading data from upper-level software. The read request may include, for example, LBA and length.

(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 flash memory device 3 program the controller 4 via the flash memory 13 Read the data from the write target block BLK.

(3)闪速存储器件3的控制器4将读出数据与该数据的LBA一起送出至主机2。(3) The controller 4 of the flash memory device 3 sends the read data to the host 2 together with the LBA of the data.

(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 host 2 during the period from when the data is written to when the data can be read. In the case of , the controller 4 of the flash memory device 3 sends to the host 2 a transfer request to send back the data from the UWB 2A as a response to the read request. The transfer request may also include a buffer address corresponding to the data.

(4′)主机2的闪速存储器管理器将该数据从UWB2A读出,并将读出的数据与该数据的LBA一起送回至上位软件。(4') The flash memory manager of the host 2 reads the data from the UWB2A, and sends the read data back to the host software together with the LBA of the data.

或者,主机2的闪速存储器管理器也可在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,响应于来自上位软件的用以读出该数据的请求,直接从UWB2A读出该数据而不将读出请求送出至闪速存储器件3。该情况下,数据读出处理如下所述那样执行。Alternatively, the flash memory manager of the host computer 2 may directly read the data from UWB2A in response to a request from the host software to read the data before the flash memory device 3 notifies that the data stored in UWB2A becomes redundant. This data is sent out to the flash memory device 3 without a read request. In this case, the data reading process is performed as follows.

(1″)在从闪速存储器件3通知存储在UWB2A的数据变为多余之前,主机2的闪速存储器管理器响应于来自上位软件的用以读出该数据的请求,将读出请求送出至UWB2A而将该数据从UWB2A读出。该读出请求例如也可包含LBA、长度。(1″) Before the flash memory device 3 notifies that the data stored in the UWB 2A becomes redundant, the flash memory manager of the host computer 2 sends a read request in response to a request for reading the data from the host software. The data is read from UWB 2A to UWB 2A. The read request may include, for example, LBA and length.

(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 flash memory device 3 supporting fuzzy-fine writing and the host computer 2 .

此处,例示写入请求包含区块识别符与缓冲器地址(或缓冲器内偏移)的情况进行说明。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区域内的位置。Host 2 stores the data (write data) that should be written into a certain write target block in the UWB area associated with the write target block, and will include the block identifier and buffer address (or buffer address) Inner offset) write request is sent to the flash memory device 3 (step S71). The block identifier is the block address of the write target block where the write data should be written. The buffer address indicates the location in the UWB area where the write data is stored.

闪速存储器件3的控制器4从主机2接收该写入请求,并保存该写入请求内的区块识别符与缓冲器地址(或缓冲器内偏移)(步骤S81)。该情况下,控制器4也可通过将区块识别符与缓冲器地址存储在DRAM6上的写入缓冲器31而保存这些区块识别符与缓冲器地址。The controller 4 of the flash memory device 3 receives the write request from the host 2, and saves the block identifier and the buffer address (or offset in the buffer) in the write request (step S81). In this case, the controller 4 may store the block identifier and the buffer address by storing the block identifier and the buffer address in the write buffer 31 on the DRAM 6 .

在通过多个阶段的编程动作(模糊-精细编程动作)而将与该写入请求对应的写入数据写入至由所保存的区块识别符指定的写入目标区块时,闪速存储器件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 device 3 first sends a transfer request including the saved buffer address (or offset in the buffer) to the host in order to obtain the write data (fuzzy data) used for fuzzy writing from the UWB area. 2 (step S82).

当主机2接收到该传送请求时,主机2将该写入数据从UWB区域传送至闪速存储器件3(步骤S72)。When the host 2 receives the transfer request, the host 2 transfers the write data from the UWB area to the flash memory device 3 (step S72).

闪速存储器件3的控制器4接收从主机2传送的该写入数据作为模糊数据(步骤S83)。控制器4通过将接收的写入数据(模糊数据)存储在例如DRAM6上的写入缓冲器31等而加以保存(步骤S84)。The controller 4 of the flash memory device 3 receives the write data transferred from the host 2 as obfuscated data (step S83). The controller 4 saves the received write data (fuzzy data) by storing it in, for example, the write buffer 31 or the like on the DRAM 6 (step S84).

控制器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 NAND flash memory 5 is completed. And, the controller 4 writes the write data (fuzzy data) into the write target physical page of the write target block specified by the saved block identifier (writing in the first stage: fuzzy write) (step S86).

其后,当执行向该写入目标物理页面的第二阶段的写入(精细写入)的时序到来时,闪速存储器件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 flash memory device 3 uses the write data for fine writing to acquire from the UWB area. input data (fine data), and send the transfer request including the saved buffer address (or offset in the buffer) to the host 2 again (step S87). The fine data is the same data as the fuzzy data.

当主机2接收到该传送请求时,主机2将该写入数据从UWB区域传送至闪速存储器件3(步骤S73)。When the host 2 receives the transfer request, the host 2 transfers the write data from the UWB area to the flash memory device 3 (step S73).

闪速存储器件3的控制器4接收从主机2传送的该写入数据作为精细数据(步骤S88)。控制器4通过将接收的写入数据(精细数据)存储在例如DRAM6上的写入缓冲器31等而加以保存(步骤S89)。The controller 4 of the flash memory device 3 receives the write data transmitted from the host 2 as fine data (step S88). The controller 4 saves the received write data (fine data) by storing it in, for example, the write buffer 31 or the like on the DRAM 6 (step S89 ).

控制器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 type flash memory 5 is completed. And, the controller 4 writes the writing data (fine data) into the writing target physical page of the writing target block (writing in the second stage: fine writing) (step S91 ).

在写入动作结束且该写入数据能够读出的情况下(即,模糊写入动作与精细写入动作的两者结束的情况下),控制器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 host 2 of the data stored in the UWB area. Writing data becomes unnecessary (step S92).

图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 host 2 includes a processor (CPU, Central Processing Unit, central processing unit) 101, a main memory 102, a BIOS (Basic Input Output System, basic input and output system)-ROM (Read-Only Memory, read-only memory) 103, a network A controller 105, a peripheral interface controller 106, a controller 107, an embedded controller (EC, Embedded Controller) 108, and the like.

处理器101为以控制该信息处理装置内的各组件的动作的方式构成的CPU。该处理器101执行主存储器102上的各种程序。主存储器102由DRAM那样的随机存取存储器构成。通过处理器101执行的程序包含应用程序软件层41、操作系统(OS,Operating System)42、文档系统43、器件驱动器44等。The processor 101 is a CPU configured to control the operation of each component in the information processing device. The processor 101 executes various programs on the main memory 102 . The main memory 102 is constituted by a random access memory such as DRAM. The programs executed by the processor 101 include an application software layer 41, an operating system (OS, Operating System) 42, a file system 43, a device driver 44, and the like.

各种应用程序在应用程序软件层41上运行。如一般周知那样,OS42为以如下方式构成的软件,即,管理该信息处理装置全体,控制该信息处理装置内的硬件,执行用以使软件能够使用硬件及闪速存储器件3的控制。文档系统43是用以进行用于文档操作(创建、保存、更新、删除等)的控制而使用。Various applications run on the application software layer 41 . As is generally known, the OS 42 is software configured to manage the entire information processing device, control hardware in the information processing device, and execute control for enabling the software to use the hardware and the flash memory device 3 . The file system 43 is used to control file operations (creation, storage, update, deletion, etc.).

器件驱动器44为用以控制及管理闪速存储器件3的程序。该器件驱动器44包含所述闪速存储器管理器。该闪速存储器管理器45包含用以管理主存储器102上的UWB2A的命令群、用以对闪速存储器件3送出写入请求、读出请求等的命令群、每当从闪速存储器件3接收到传送请求时用以从UWB2A对闪速存储器件3传送数据的命令群、在从闪速存储器件3通知存储在UWB2A的数据变为多余之前用以将该数据从UWB2A读出的命令群等。处理器101通过执行器件驱动器44内的闪速存储器管理器45的命令群,而执行数据写入处理、数据读出处理、UWB区域开放处理等。The device driver 44 is a program for controlling and managing the flash memory device 3 . The device driver 44 contains the flash memory manager. The flash memory manager 45 includes a command group for managing the UWB 2A on the main memory 102, a command group for sending a write request, a read request, etc. to the flash memory device 3, and every time the slave flash memory device 3 A command group for transferring data from the UWB2A to the flash memory device 3 when a transfer request is received, and a command group for reading the data from the UWB2A until the flash memory device 3 notifies that the data stored in the UWB2A becomes redundant wait. The processor 101 executes a command group of the flash memory manager 45 in the device driver 44 to execute data writing processing, data reading processing, UWB area opening processing, and the like.

网络控制器105为ethernet控制器那样的通信器件。周边接口控制器106以执行与USB(Universal Serial Bus,通用串行总线)器件那样的周边器件的通信的方式构成。The network controller 105 is a communication device such as an ethernet controller. The peripheral interface controller 106 is configured to perform communication with peripheral devices such as USB (Universal Serial Bus, Universal Serial Bus) devices.

控制器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 controller 107 is configured to perform communication with devices respectively connected to the plurality of connectors 107A. In this embodiment, a plurality of flash memory devices 3 may be respectively connected to a plurality of connectors 107A. Controller 107 can also be SAS (serial attached Small Computer System Interface, serial connection small computer system interface) expander (expander), PCIe Switch (switch), PCIe expander, flash memory array controller, or RAID (Redundant Arrays ofIndependent Disks, redundant array of independent disks) controller. Alternatively, a plurality of flash memory devices 3 may be connected to the network controller 105 via ethernet.

图21的流程图表示通过处理器101执行的数据写入处理的步骤。The flowchart of FIG. 21 shows the steps of the data writing process executed by the processor 101 .

在数据写入处理中,处理器101将应写入至一个写入目标区块的写入数据存储在UWB2A(与该写入目标区块对应的UWB区域)(步骤S101)。处理器101将包含识别符与存储位置信息的写入请求送出至闪速存储器件3,该识别符与该写入目标区块建立关联,该存储位置信息表示存储有写入数据的UWB2A内的位置(无UWB区域的位置)(步骤S102)。与写入目标区块建立关联的识别符如所述那样也可为写入目标区块的区块识别符(区块地址)。存储位置信息如所述那样也可为缓冲器地址(或缓冲器内偏移)。该情况下,处理器101也可将包含标签、区块识别符、缓冲器地址(或缓冲器内偏移)的写入请求送出至闪速存储器件3。此外,在主机2不仅指定区块也指定页面的构成中,写入请求也可包含标签、区块识别符(区块地址)、页面地址、缓冲器地址(或缓冲器内偏移)。In the data writing process, the processor 101 stores write data to be written in one write target block in UWB2A (the UWB area corresponding to the write target block) (step S101 ). The processor 101 sends a write request including an identifier and storage location information to the flash memory device 3. The identifier is associated with the write target block, and the storage location information indicates the location in UWB2A that stores the write data. position (position without UWB area) (step S102). The identifier associated with the write target block may be the block identifier (block address) of the write target block as described above. The storage location information may also be a buffer address (or an offset within the buffer) as described above. In this case, the processor 101 may also send a write request including a tag, a block identifier, and a buffer address (or offset in the buffer) to the flash memory device 3 . In addition, in the configuration in which the host 2 designates not only a block but also a page, the write request may include a tag, a block identifier (block address), a page address, and a buffer address (or buffer internal offset).

或者,在使用串流写入的情况下,也可代替区块识别符(区块地址)而使用串流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 processor 101 sends the write request to the flash memory device 3, whenever the processor 101 receives a transfer request containing the buffer address (or offset in the buffer) from the flash memory device 3, the The write data is transferred from UWB2A (UWB area) to flash memory device 3 (steps S103, S104). More specifically, the processor 101 determines whether or not a transfer request including a buffer address (or offset within the buffer) has been received from the flash memory device 3 (step S103). Also, if the transfer request is received from the flash memory device 3 (YES at step S103 ), the processor 101 transfers the write data from UWB2A (UWB area) to the flash memory device 3 .

如所述那样,在通过多个阶段的编程动作(模糊-精细编程动作)将写入数据写入至写入目标区块的情况下,处理器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 processor 101 receives multiple times from the flash memory device 3 Transfer request for buffer address (or offset within the same buffer). Also, processor 101 transfers the write data from UWB2A (UWB area) to flash memory device 3 every time the transfer request is received.

图22的流程图表示通过处理器101执行的数据读出处理的步骤。The flowchart of FIG. 22 shows the steps of the data reading process executed by the processor 101 .

在从闪速存储器件3通知存储在UWB2A(UWB区域)的数据变为多余之前,处理器101响应于来自上位软件的用以读出该数据的请求而将该数据从UWB2A(UWB区域)读出,并将该读出的数据送回至上位软件。Before being notified from the flash memory device 3 that the data stored in the UWB2A (UWB area) becomes redundant, the processor 101 reads the data from the UWB2A (UWB area) in response to a request for reading the data from the upper software. output, and send the read data back to the host software.

即,如果从上位软件请求数据读出(步骤S111的是),则处理器101判定是否从闪速存储器件3已通知UWB2A(UWB区域)上的该数据变为多余(步骤S112)。That is, if data reading is requested from the host software (Yes in step S111), the processor 101 determines whether the flash memory device 3 has notified that the data on UWB2A (UWB area) becomes redundant (step S112).

如果尚未通知该数据变为多余(步骤S112的否),则处理器101将该数据从UWB2A(UWB区域)读出,并将读出的数据送回至上位软件(步骤S112)。If it has not been notified that the data becomes redundant (No in step S112), the processor 101 reads the data from UWB2A (UWB area), and sends the read data back to the upper software (step S112).

另一方面,如果已通知该数据变为多余(步骤S112的是),则处理器101将用以读出该数据的读出请求送出至闪速存储器件3,由此将该数据从闪速存储器件3读出(步骤S114)。On the other hand, if it has been notified that the data becomes redundant (Yes in step S112), the processor 101 sends out a read request for reading the data to the flash memory device 3, thereby transferring the data from the flash memory device 3 to the flash memory device 3. The memory device 3 is read (step S114).

图23的流程图表示通过处理器101执行的数据读出处理的其他步骤。The flowchart of FIG. 23 shows other steps of the data reading process executed by the processor 101 .

如果从上位软件接收到用以读出数据的请求(步骤S121的是),则处理器101不管在UWB2A(UWB区域)是否存在该数据,即不管是否已从闪速存储器件3通知该数据变为多余,均将用以读出该数据的读出请求送出至闪速存储器件3(步骤S122)。If a request to read data is received from the host software (Yes in step S121), the processor 101 does not care whether the data exists in UWB2A (UWB area), that is, whether or not the data change has been notified from the flash memory device 3. For redundancy, a read request for reading the data is sent to the flash memory device 3 (step S122).

如果由该读出请求指定的数据尚无法读出,则闪速存储器件3将以从UWB2A(UWB区域)送回该数据的方式请求的传送请求送出至主机2。If the data designated by the read request cannot be read yet, the flash memory device 3 sends to the host 2 a transfer request requesting to return the data from UWB2A (UWB area).

如果从闪速存储器件3接收到该传送请求(步骤S123的是),则处理器101将该数据从UWB2A(UWB区域)读出,并将该读出的数据送回至上位软件(步骤S124)。If the transmission request is received from the flash memory device 3 (yes in step S123), the processor 101 reads the data from UWB2A (UWB area), and sends the read data back to the host software (step S124 ).

如果未从闪速存储器件3接收该传送请求(步骤S123的否),则处理器101接收作为对读出请求的响应而从闪速存储器件3送回的数据,并将该数据送回至上位软件(步骤S125)。If the transfer request is not received from the flash memory device 3 (No in step S123), the processor 101 receives the data sent back from the flash memory device 3 as a response to the read request, and sends the data back to Host software (step S125).

图24的流程图表示通过处理器101执行的UWB区域开放处理的步骤。The flowchart of FIG. 24 shows the procedure of the UWB area opening process executed by the processor 101 .

在处理器101从闪速存储器件3接收到表示与一个写入目标区块建立关联的UWB区域全体变为多余的通知(关闭请求)的情况下(步骤S131的是),处理器101将该UWB区域全体开放(步骤S132)。步骤S132中,处理器101可将与该开放的UWB区域对应的存储器空间使用于其他任意用途。例如,处理器也可再次利用该开放的UWB区域作为与通过闪速存储器件3的控制器4新分配的写入目标区块建立关联的UWB区域。当必须在该新分配的写入目标区块写入数据时,处理器101首先将该数据存储在与该新分配的写入目标区块建立关联的UWB区域,而且,将包含识别符(区块识别符、或串流ID)与存储位置信息(例如缓冲器地址)的写入请求送出至闪速存储器件3,该识别符与该新分配的写入目标区块建立关联,该存储位置信息表示存储该数据的该UWB区域内的位置。When the processor 101 receives from the flash memory device 3 a notification (shutdown request) indicating that the entire UWB area associated with one write target block becomes redundant (Yes in step S131), the processor 101 sets the The entire UWB area is opened (step S132). In step S132, the processor 101 may use the memory space corresponding to the open UWB area for other arbitrary purposes. For example, the processor may also reuse the open UWB area as a UWB area associated with a write target block newly allocated by the controller 4 of the flash memory device 3 . When data must be written in the newly allocated write target block, the processor 101 first stores the data in the UWB area associated with the newly allocated write target block, and will contain the identifier (area Block identifier (or stream ID) and the write request of storage location information (such as buffer address) are sent to the flash memory device 3, and the identifier is associated with the newly allocated write target block, and the storage location The information indicates the location within the UWB area where the data is stored.

如以上所说明那样,根据本实施方式,闪速存储器件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 flash memory device 3 receives from the host 2 information including the first identifier (block identifier, or stream ID) and storage location information (buffer address, or address in the buffer), the first identifier is associated with a write target block, and the storage location information indicates the write buffer on the memory of the host 2 that stores the first data to be written (UWB2A) location. Then, when writing the first data into the NAND flash memory 5, the controller 4 sends a transfer request including storage location information to the host 2 to acquire the first data from the write buffer (UWB2A). Therefore, data necessary for the write operation can be acquired from the write buffer (UWB2A) of the host computer 2, so that the number of write target blocks that can be used simultaneously can be increased without preparing a large number of blocks in the flash memory device 3. write buffer. Thus, the number of end users sharing the flash memory device 3 can be easily increased without causing an increase in the cost of the flash memory device 3 .

此外,控制器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 flash memory 5, the controller 4 notifies the host 2 that the first data stored in the write buffer (UWB2A) has become superfluous. Based on this notification, the host 2 discards the data as necessary. Therefore, until the data to be written can be read from the NAND flash memory 5, the controller 4 may repeatedly acquire the data from the write buffer (UWB2A) if necessary. Therefore, even when performing a multi-stage programming operation such as a fuzzy-fine programming operation, the controller 4 can acquire necessary data from the write buffer (UWB2A) every time the programming operation of each stage is started.

另外,本实施方式中,例示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)

1.一种存储器系统,能够与主机连接,且具备:1. A memory system capable of being connected to a host and having: 非易失性存储器,包含分别作为删除动作的单位的多个区块;及a non-volatile memory including a plurality of blocks each as a unit of deletion; and 控制器,以如下方式构成,即,与所述非易失性存储器电性连接,且对所述非易失性存储器进行控制;且a controller configured in such a way that it is electrically connected to the non-volatile memory and controls the non-volatile memory; and 所述控制器以如下方式构成,即,The controller is constituted in the following manner, that is, 从所述主机接收包含存储位置信息的写入请求,该存储位置信息表示存储有第1数据的所述主机的存储器上的写入缓冲器内的位置,receiving a write request from the host that includes storage location information indicating a location within a write buffer on a memory of the host where the first data is stored, 在通过多个阶段的编程动作将所述第1数据写入至所述非易失性存储器时,When writing the first data into the non-volatile memory through a multi-stage programming operation, 在所述多个阶段的编程动作中的各编程动作,In each of the plurality of stages of programming actions, 通过将包含所述存储位置信息的传送请求发送至所述主机而从所述写入缓冲器获取所述第1数据,acquiring the first data from the write buffer by sending a transfer request including the storage location information to the host, 将所述第1数据传送至所述非易失性存储器,transferring the first data to the non-volatile memory, 将所述第1数据写入至所述多个区块中的一个写入目标区块。Writing the first data to a writing target block among the plurality of blocks. 2.根据权利要求1所述的存储器系统,其中所述控制器以如下方式构成,即,当在从所述第1数据的写入开始至所述第1数据能够读出为止的期间中从所述主机接收到用以读出所述第1数据的读出请求的情况下,将以从所述写入缓冲器获取所述第1数据的方式请求的获取请求送出至所述主机。2. The memory system according to claim 1, wherein the controller is configured such that, during a period from when the first data is written to when the first data can be read from When the host receives a read request to read the first data, it sends an acquisition request to the host to acquire the first data from the write buffer. 3.根据权利要求1所述的存储器系统,其中所述写入缓冲器包含与所述多个区块对应的多个写入缓冲区域,且3. The memory system of claim 1 , wherein the write buffer comprises a plurality of write buffer areas corresponding to the plurality of blocks, and 所述控制器以如下方式构成,即,在所述一个写入目标区块全体被数据写满的情况下,对所述主机通知与所述一个写入目标区块对应的所述写入缓冲器内的写入缓冲区域变为多余。The controller is configured to notify the host of the write buffer corresponding to the one write target block when all of the one write target block is filled with data. The write buffer area in the device becomes redundant. 4.根据权利要求1所述的存储器系统,其中所述写入请求包含对写入目标区块进行指定的区块识别符。4. The memory system of claim 1, wherein the write request includes a block identifier specifying a write target block. 5.根据权利要求1所述的存储器系统,其中所述多个区块分别与多个串流建立关联,且5. The memory system according to claim 1, wherein the plurality of blocks are respectively associated with a plurality of streams, and 所述写入请求包含所述多个串流内的一个串流的识别符。The write request includes an identifier of a stream within the plurality of streams. 6.根据权利要求1所述的存储器系统,其中所述写入缓冲器包含与所述多个区块对应的多个写入缓冲区域,且6. The memory system of claim 1 , wherein the write buffer comprises a plurality of write buffer areas corresponding to the plurality of blocks, and 所述传送请求包含所述一个写入目标区块的识别符与所述存储位置信息。The transfer request includes the identifier of the write target block and the storage location information. 7.根据权利要求1所述的存储器系统,其中所述控制器以如下方式构成,即,在所述多个阶段的编程动作结束且所述第1数据能够从所述非易失性存储器读出的情况下,对所述主机通知保存在所述写入缓冲器的所述第1数据变为多余。7. The memory system according to claim 1, wherein the controller is configured in such a manner that the programming operations in the plurality of stages are completed and the first data can be read from the nonvolatile memory. In case of output, it is unnecessary to notify the host that the first data stored in the write buffer becomes unnecessary. 8.根据权利要求1所述的存储器系统,其中所述非易失性存储器进而包含页面缓冲器,且8. The memory system of claim 1 , wherein the non-volatile memory further comprises a page buffer, and 所述控制器以如下方式构成,即,将所述第1数据传送至所述非易失性存储器的所述页面缓冲器。The controller is configured to transfer the first data to the page buffer of the nonvolatile memory. 9.根据权利要求1所述的存储器系统,其中所述多个区块的各者包含与字线连接的存储单元群,且9. The memory system of claim 1 , wherein each of the plurality of blocks comprises a group of memory cells connected to a word line, and 所述控制器以如下方式构成,即,The controller is constituted in the following manner, that is, 在所述多个阶段的编程动作中的第1阶段的编程动作中,In the programming action of the first stage among the programming actions of the plurality of stages, 通过将包含所述存储位置信息的传送请求发送至所述主机而从所述写入缓冲器获取所述第1数据,acquiring the first data from the write buffer by sending a transfer request including the storage location information to the host, 将所述第1数据传送至所述非易失性存储器,transferring the first data to the non-volatile memory, 将所述第1数据写入至所述写入目标区块的与所述字线连接的所述存储单元群;writing the first data into the memory cell group connected to the word line of the write target block; 在所述多个阶段的编程动作中的第2阶段的编程动作中,In the programming action of the second stage among the programming actions of the plurality of stages, 通过将包含所述存储位置信息的传送请求发送至所述主机而从所述写入缓冲器再次获取所述第1数据,reacquiring the first data from the write buffer by sending a transfer request including the storage location information to the host, 将所述第1数据再次传送至所述非易失性存储器,retransmitting the first data to the non-volatile memory, 将所述第1数据再次写入至所述写入目标区块的与所述字线连接的所述存储单元群。rewriting the first data to the memory cell group connected to the word line of the write target block. 10.一种控制方法,其控制非易失性存储器,该非易失性存储器包含分别作为删除动作的单位的多个区块,该控制方法具备:10. A control method for controlling a nonvolatile memory, the nonvolatile memory including a plurality of blocks each as a unit of a deletion action, the control method having: 从所述主机接收包含存储位置信息的写入请求,该存储位置信息表示存储有第1数据的主机的存储器上的写入缓冲器内的位置;receiving a write request from the host that includes storage location information indicating a location within a write buffer on a memory of the host where the first data is stored; 在通过多个阶段的编程动作将所述第1数据写入至所述非易失性存储器时,When writing the first data into the non-volatile memory through a multi-stage programming operation, 在所述多个阶段的编程动作中的各编程动作,In each of the plurality of stages of programming actions, 通过将包含所述存储位置信息的传送请求发送至所述主机而从所述写入缓冲器获取所述第1数据,acquiring the first data from the write buffer by sending a transfer request including the storage location information to the host, 将所述第1数据传送至所述非易失性存储器,transferring the first data to the non-volatile memory, 将所述第1数据写入至所述多个区块中的一个写入目标区块。Writing the first data to a writing target block among the plurality of blocks. 11.根据权利要求10所述的控制方法,其中进而具备:当在从所述第1数据的写入开始至所述第1数据能够读出为止的期间中从所述主机接收到用以读出所述第1数据的读出请求的情况下,将以从所述写入缓冲器获取所述第1数据的方式请求的获取请求送出至所述主机。11. The control method according to claim 10 , further comprising: when receiving from the host a command to read the first data during the period from when the first data is written until the first data can be read. When a read request of the first data is issued, an acquisition request to acquire the first data from the write buffer is issued to the host. 12.根据权利要求10所述的控制方法,其中所述写入缓冲器包含与所述多个区块对应的多个写入缓冲区域,且12. The control method according to claim 10, wherein the write buffer includes a plurality of write buffer areas corresponding to the plurality of blocks, and 所述控制方法进而具备:在所述一个写入目标区块全体被数据写满的情况下,对所述主机通知与所述一个写入目标区块对应的所述写入缓冲器内的写入缓冲区域变为多余。The control method further includes: notifying the host of the write data in the write buffer corresponding to the one write target block when the whole of the one write target block is full of data. The input buffer area becomes redundant. 13.根据权利要求10所述的控制方法,其中所述写入请求包含对写入目标区块进行指定的区块识别符。13. The control method according to claim 10, wherein the write request includes a block identifier specifying a write target block. 14.根据权利要求10所述的控制方法,其中所述多个区块分别与多个串流建立关联,且14. The control method according to claim 10, wherein the plurality of blocks are respectively associated with a plurality of streams, and 所述写入请求包含所述多个串流内的一个串流的识别符。The write request includes an identifier of a stream within the plurality of streams. 15.根据权利要求10所述的控制方法,其中所述写入缓冲器包含与所述多个区块对应的多个写入缓冲区域,且15. The control method according to claim 10, wherein the write buffer includes a plurality of write buffer areas corresponding to the plurality of blocks, and 所述传送请求包含所述一个写入目标区块的识别符与所述存储位置信息。The transfer request includes the identifier of the write target block and the storage location information. 16.根据权利要求10所述的控制方法,其进而具备:在所述多个阶段的编程动作结束且所述第1数据能够从所述非易失性存储器读出的情况下,对所述主机通知保存在所述写入缓冲器中的所述第1数据变为多余。16. The control method according to claim 10, further comprising: when the programming operation of the plurality of stages is completed and the first data can be read from the nonvolatile memory, the The host notifies that the first data stored in the write buffer becomes unnecessary. 17.根据权利要求10所述的控制方法,其中所述非易失性存储器进而包含页面缓冲器,且17. The control method according to claim 10, wherein the non-volatile memory further comprises a page buffer, and 将所述第1数据传送至所述非易失性存储器的所述页面缓冲器。The first data is transferred to the page buffer of the nonvolatile memory. 18.根据权利要求10所述的控制方法,其中所述多个区块的各者包含与字线连接的存储单元群,18. The control method according to claim 10, wherein each of the plurality of blocks includes a memory cell group connected to a word line, 在所述多个阶段的编程动作中的第1阶段的编程动作中,In the programming action of the first stage among the programming actions of the plurality of stages, 通过将包含所述存储位置信息的传送请求发送至所述主机而从所述写入缓冲器获取所述第1数据,acquiring the first data from the write buffer by sending a transfer request including the storage location information to the host, 将所述第1数据传送至所述非易失性存储器,transferring the first data to the non-volatile memory, 将所述第1数据写入至所述写入目标区块的与所述字线连接的所述存储单元群;writing the first data into the memory cell group connected to the word line of the write target block; 在所述多个阶段的编程动作中的第2阶段的编程动作中,In the programming action of the second stage among the programming actions of the plurality of stages, 通过将包含所述存储位置信息的传送请求发送至所述主机而从所述写入缓冲器再次获取所述第1数据,reacquiring the first data from the write buffer by sending a transfer request including the storage location information to the host, 将所述第1数据再次传送至所述非易失性存储器,retransmitting the first data to the non-volatile memory, 将所述第1数据再次写入至所述写入目标区块的与所述字线连接的所述存储单元群。rewriting the first data to the memory cell group connected to the word line of the write target block.
CN202310048794.8A 2017-12-08 2018-07-13 Memory system and control method Pending CN116088760A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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