[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN110515859A - A method for parallel processing of read and write requests for solid state disks - Google Patents

A method for parallel processing of read and write requests for solid state disks Download PDF

Info

Publication number
CN110515859A
CN110515859A CN201910614795.8A CN201910614795A CN110515859A CN 110515859 A CN110515859 A CN 110515859A CN 201910614795 A CN201910614795 A CN 201910614795A CN 110515859 A CN110515859 A CN 110515859A
Authority
CN
China
Prior art keywords
channel
queue
read
request
write
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.)
Granted
Application number
CN201910614795.8A
Other languages
Chinese (zh)
Other versions
CN110515859B (en
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.)
Beijing Saisheng Bochuang Technology Co ltd
Original Assignee
Hangzhou Dianzi University
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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201910614795.8A priority Critical patent/CN110515859B/en
Publication of CN110515859A publication Critical patent/CN110515859A/en
Application granted granted Critical
Publication of CN110515859B publication Critical patent/CN110515859B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

The invention discloses a kind of solid state disk read-writes to request method for parallel processing.The present invention is made of address mapping module, channel distribution module, channel queue's module, Queue module to be processed, data buffer zone and six part of garbage reclamation module.In preprocessing process, for read-write requests, corresponding read/write channel is calculated, is subsequently sent to the corresponding read-write queue in channel;In flash memory access process, according to request order of arrival Parallel Scheduling from the read-write queue in each channel;For garbage reclamation, using active by the way of passively combining, to reduce influence of the garbage reclamation to solid state disk read-write performance.The present invention is using the channel level parallel organization inside solid state hard disk, as unit of page, is maximized parallel by rational management with realizing data write-in and reading, so that high degree reduces the average response time of request, lifting system overall performance.

Description

一种固态硬盘读写请求并行处理方法A method for parallel processing of read and write requests for solid state disks

技术领域technical field

本发明属于固态硬盘固件优化设计领域,具体涉及了一种固态硬盘读写请求并行处理方法。The invention belongs to the field of firmware optimization design of solid-state hard disks, and in particular relates to a parallel processing method for reading and writing requests of solid-state hard disks.

背景技术Background technique

随着云计算、移动互联网等新一代信息技术的快速发展,数据量呈现指数增长的趋势,因此对数据的存储速度和带宽提出了更高的要求。基于NAND闪存的固态硬盘由于其高性能、低功耗、无噪声等诸多优点称为目前主流的存储设备之一。With the rapid development of new-generation information technologies such as cloud computing and mobile Internet, the amount of data shows an exponential growth trend, so higher requirements are placed on data storage speed and bandwidth. Solid-state hard drives based on NAND flash memory are known as one of the current mainstream storage devices due to their high performance, low power consumption, noise-free and many other advantages.

固态硬盘采用的NAND闪存具有以下特点:1)以页(page)、块(block)、平面(plane)、晶圆(die)从小到大嵌套组成。2)基本操作分为:读、写、擦除,读与写以页为单位,擦除以块为单位。3)读、写、擦除三种操作的响应时间不同,读最快,写次之,擦除最慢。4)写入数据前必须进行擦除,不支持原地更新。5)擦除次数有限,超过一定的擦除次数,NAND闪存的整体性能就会大幅下降,使用寿命有限。The NAND flash memory used in solid-state drives has the following characteristics: 1) It is composed of pages, blocks, planes, and dies, which are nested from small to large. 2) Basic operations are divided into: read, write, erase, read and write in units of pages, and erase in units of blocks. 3) The response times of the three operations of reading, writing, and erasing are different, and the reading is the fastest, followed by the writing, and the erasing is the slowest. 4) It must be erased before writing data, and in-place update is not supported. 5) The number of times of erasing is limited. If more than a certain number of times of erasing is exceeded, the overall performance of NAND flash memory will be greatly reduced, and the service life is limited.

由于闪存芯片独特的操作特点,固态硬盘需要在固件中增加闪存转换层(FlashTranslation Layer,FTL)来管理数量众多的闪存芯片。闪存转换层将固态硬盘模拟成只具有读写操作的传统硬盘,将上层文件系统的读写请求转换为闪存的操作命令。具体来说,闪存转换层需要完成逻辑地址与物理地址之间的映射,控制各个闪存芯片的磨损均衡,对无效的数据进行垃圾回收。Due to the unique operating characteristics of flash memory chips, solid state drives need to add a flash translation layer (FlashTranslation Layer, FTL) in firmware to manage a large number of flash memory chips. The flash conversion layer simulates the solid-state hard disk as a traditional hard disk with only read and write operations, and converts the read and write requests of the upper file system into the operation commands of the flash memory. Specifically, the flash translation layer needs to complete the mapping between logical addresses and physical addresses, control the wear leveling of each flash memory chip, and perform garbage collection on invalid data.

固态硬盘内部拥有丰富的内部并行机制。一般的固态硬盘由多个独立通道组成,每个独立通道连接多个独立的闪存芯片;每个芯片包含多个晶圆;每个晶圆包含多个平面;每个平面包含多个块,每个块包含多个页。因此固态硬盘内部包括通道级并行、芯片级并行、晶圆级并行和平面级并行。在闪存转换层对请求处理的过程中,利用闪存内部并行机制,让读写请求并行地访问闪存,将大幅度减少请求响应时间。SSDs have rich internal parallel mechanisms. A general solid-state drive consists of multiple independent channels, and each independent channel connects multiple independent flash memory chips; each chip contains multiple wafers; each wafer contains multiple planes; each plane contains multiple blocks, each A block contains multiple pages. Therefore, the SSD internally includes channel-level parallelism, chip-level parallelism, wafer-level parallelism, and plane-level parallelism. In the process of request processing by the flash conversion layer, the internal parallel mechanism of the flash memory is used to allow read and write requests to access the flash memory in parallel, which will greatly reduce the request response time.

发明内容Contents of the invention

针对上述现有技术的不足之处,本发明公布一种固态硬盘读写请求并行处理方法。本发明利用固态硬盘内部的通道级并行结构,以页为单位,通过合理调度以实现数据写入和读出最大化并行,从而极大程度减少请求的平均响应时间,提升系统整体性能。Aiming at the shortcomings of the above-mentioned prior art, the present invention discloses a method for parallel processing of read and write requests of solid state disks. The present invention utilizes the channel-level parallel structure inside the solid-state hard disk, takes pages as units, and realizes maximum parallelism of data writing and reading through reasonable scheduling, thereby greatly reducing the average response time of requests and improving the overall performance of the system.

为实现本发明的目的,本发明采用以下技术方案:For realizing the purpose of the present invention, the present invention adopts following technical scheme:

一种固态硬盘读写请求并行处理方法,它由地址映射模块、通道分配模块、通道队列模块、待处理队列模块、数据缓冲区和垃圾回收模块六部分组成。地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成;通道分配模块负责计算请求中每个页实际需要访问的通道;通道队列模块由每个通道的队列组成,每个通道的队列分为读请求队列和写请求队列,读写访问请求以页为单位插入到通道的读写队列;待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度;数据缓冲区用来暂存从闪存中读出的数据;垃圾回收模块负责固态硬盘无效块的回收,完成垃圾回收操作。A parallel processing method for reading and writing requests of a solid state disk, which is composed of six parts: an address mapping module, a channel allocation module, a channel queue module, a waiting queue module, a data buffer and a garbage collection module. The address mapping module is responsible for realizing the mapping from the requested logical address to the physical address. It adopts the page-level mapping method and is composed of the address mapping table and the page allocation module; the channel allocation module is responsible for calculating the channel that each page actually needs to access in the request; the channel queue module It consists of a queue for each channel. The queue for each channel is divided into a read request queue and a write request queue. Read and write access requests are inserted into the read and write queue of the channel in units of pages; For requests that have not been fully completed for reading and writing, the scheduling of the queue to be processed is completed in a first-in-first-out manner; the data buffer is used to temporarily store the data read from the flash memory; the garbage collection module is responsible for the recovery of invalid blocks of the solid-state hard disk, and completes garbage collection operate.

一种固态硬盘读写请求并行处理方法,其处理流程包括预处理,闪存访问和垃圾回收三个过程,且三个过程可并行执行,其具体步骤如下。A method for parallel processing of read and write requests of a solid state disk, the processing flow includes three processes of preprocessing, flash memory access and garbage collection, and the three processes can be executed in parallel, and the specific steps are as follows.

当有新的读写请求到达,且待处理队列不满时,触发预处理流程,其具体工作过程如下:When a new read and write request arrives and the queue to be processed is not full, the preprocessing process is triggered. The specific working process is as follows:

P1,判断到达请求类型:若是读请求,执行P2;否则为写请求,执行P4。P1, determine the type of arrival request: if it is a read request, execute P2; otherwise, it is a write request, execute P4.

P2,调用地址映射模块,访问地址映射表,获取读请求每个逻辑页对应的物理页号PPN。P2, calling the address mapping module, accessing the address mapping table, and obtaining the physical page number PPN corresponding to each logical page of the read request.

P3,调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的读队列的队尾,执行P6。P3, call the channel allocation module, obtain the flash channel where it is located according to the PPN of each page, and then insert each page into the tail of the read queue corresponding to the flash channel, and execute P6.

P4,调用地址映射模块的页分配模块,采用异地更新策略,为写请求的每个页分配新的物理页号PPN,并更新地址映射表,执行P5。P4, call the page allocation module of the address mapping module, adopt the off-site update strategy, allocate a new physical page number PPN for each page of the write request, and update the address mapping table, and execute P5.

P5,调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的写队列的队尾,最后执行P6。P5, call the channel allocation module, obtain the flash channel where it is located according to the PPN of each page, then insert each page into the tail of the write queue corresponding to the flash channel, and finally execute P6.

P6,将该请求插入到待处理队列的队尾,结束本次预处理。P6, insert the request into the tail of the queue to be processed, and end this preprocessing.

当待处理队列不为空时,触发闪存访问流程,其具体工作过程如下:When the queue to be processed is not empty, the flash memory access process is triggered, and the specific working process is as follows:

A1,判断待处理队列队首请求类型:若是读请求,执行A2;否则,执行A5。A1, determine the type of the queue head request to be processed: if it is a read request, execute A2; otherwise, execute A5.

A2,判断请求队列队首读请求是否执行完成:若是,执行A4,否则执行A3。A2. Determine whether the first read request of the request queue is completed: if yes, execute A4; otherwise, execute A3.

A3,将所有通道读队列队首的页从闪存中读出到数据缓冲区中,然后剔除所有通道读队列的队首,执行A2。A3, read the page at the head of the read queue for all channels from the flash memory into the data buffer, then remove the head of the read queue for all channels, and execute A2.

A4,合并数据缓冲区中来自同一请求的读数据,并响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。A4. Merge the read data from the same request in the data buffer, and respond to the upper file system, remove the queue head request to be processed, and end this flash memory access operation.

A5,判断请求队列队首写请求是否执行完成:若是,执行A7,否则执行A6。A5. Determine whether the first write request in the request queue is completed: if yes, execute A7; otherwise, execute A6.

A6,将所有通道写队列队首的请求写入对应通道下的物理页,同时剔除所有通道写队列的队首,执行A5。A6. Write the request for the head of the write queue of all channels into the physical page under the corresponding channel, and remove the head of the write queue of all channels at the same time, and execute A5.

A7,响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。A7. Respond to the upper file system, remove the queue head request to be processed, and end this flash memory access operation.

垃圾回收过程由垃圾回收模块完成,采用主动垃圾回收和被动垃圾回收相结合的方式。当待处理对列为空且某个通道内空闲块的数量小于阈值TH1时,触发主动垃圾回收操作。当在执行闪存访问操作时,某个通道内空闲块的数量小于阈值TH2时,暂停闪存访问操作,触发被动垃圾回收操作。进一步的,所述的垃圾回收操作的具体方式是选择该通道下包含最多无效页的数据块作为无效块,将无效块中的有效页迁移至同一个通道内的空闲块中,然后将无效块擦除。此外,为尽量少触发被动垃圾回收操作,TH1应该大于TH2The garbage collection process is completed by the garbage collection module, which uses a combination of active garbage collection and passive garbage collection. When the queue to be processed is empty and the number of free blocks in a certain channel is less than the threshold TH 1 , an active garbage collection operation is triggered. When performing a flash memory access operation, when the number of free blocks in a certain channel is less than the threshold TH 2 , the flash memory access operation is suspended, and a passive garbage collection operation is triggered. Further, the specific method of the garbage collection operation is to select the data block containing the most invalid pages under the channel as the invalid block, migrate the valid pages in the invalid block to the free blocks in the same channel, and then remove the invalid pages erase. In addition, in order to trigger passive garbage collection operations as little as possible, TH 1 should be greater than TH 2 .

进一步的,所述的预处理流程P4步骤中的写请求的页分配方法的具体流程如下:Further, the specific flow of the page allocation method for the write request in step P4 of the preprocessing flow is as follows:

P41,计算每个通道闪存块的擦除次数,按擦除次数从小到大进行排序;P41, calculate the erasing times of each channel flash memory block, and sort according to the erasing times from small to large;

P42,将写请求需要的物理页数N表示成N=n*C+q的形式(C为通道数,n为N/C的商,q为N/C的余数);P42, the number of physical pages N required by the write request is expressed in the form of N=n*C+q (C is the number of channels, n is the quotient of N/C, and q is the remainder of N/C);

P43,按照擦除次数最小的通道优先分配写和最大化通道并行写的策略,先给每个通道分配n个页写,以实现最大化并行写;然后将q个页写分配给擦除次数最小的前q个通道,以均衡每个通道的磨损程度。P43, according to the strategy of first assigning writes to the channel with the smallest number of erasures and maximizing channel parallel writing, first assign n page writes to each channel to maximize parallel writing; then assign q page writes to the number of erasures The smallest top q channels to equalize the wear of each channel.

本发明与现有技术相比有益效果是:Compared with the prior art, the present invention has the following beneficial effects:

本发明提出的固态硬盘读写请求并行处理方法利用固态硬盘通道级并行结构,最大化读写请求的并行度。在预处理过程中,对于读写请求,计算对应的读写通道,然后发送到通道对应的读写队列;在闪存访问过程中,根据请求到达顺序从各个通道的读写队列中并行调度;对于垃圾回收,采用主动与被动相结合的方式,以减少垃圾回收对固态硬盘读写性能的影响。此外,在写请求的通道分配过程中,兼顾通道并行和磨损均衡。与已有的闪存转换层技术相比,本发明公布的方法能够大幅度减少请求执行时间,提升固态硬盘的读写性能。The parallel processing method for reading and writing requests of the solid-state hard disk proposed by the present invention utilizes the channel-level parallel structure of the solid-state hard disk to maximize the parallelism of reading and writing requests. In the preprocessing process, for read and write requests, calculate the corresponding read and write channels, and then send them to the corresponding read and write queues of the channels; during the flash memory access process, they are scheduled in parallel from the read and write queues of each channel according to the order of request arrival; for Garbage collection adopts a combination of active and passive methods to reduce the impact of garbage collection on the read and write performance of SSDs. In addition, channel parallelism and wear leveling are taken into account during channel allocation of write requests. Compared with the existing flash memory conversion layer technology, the method disclosed by the invention can greatly reduce the request execution time and improve the read-write performance of the solid-state hard disk.

附图说明Description of drawings

图1:本发明的总体框架图Fig. 1: overall frame diagram of the present invention

图2:本发明的预处理过程流程图Fig. 2: the pretreatment process flowchart of the present invention

图3:本发明的闪存访问过程流程图Fig. 3: flash memory access process flowchart of the present invention

图4:本发明的预处理过程的具体案例Fig. 4: the specific case of the pretreatment process of the present invention

图5:本发明访问闪存过程的具体案例Fig. 5: the specific case of the present invention's access flash memory process

具体实施方式Detailed ways

为了使本领域技术人员能更好地理解本发明的技术方案,下面将结合附图以及具体实施方式,对本发明进行详细的介绍说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。In order to enable those skilled in the art to better understand the technical solutions of the present invention, the present invention will be described in detail below in conjunction with the accompanying drawings and specific implementation methods. Apparently, the described embodiments are only some of the embodiments of the present invention, but not all of them. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts belong to the protection scope of the present invention.

此外,本发发明假设了上层文件系统对固态硬盘进行读写的最小单位为1个闪存页,即整页进行读或写。实际系统中,文件系统对固态硬盘进行读写的最小单位为1个扇区。通过对齐操作,可以很方便的将扇区访问转换为页访问,此发明中对此不再累述。In addition, the present invention assumes that the minimum unit for the upper file system to read and write to the solid-state hard disk is a flash memory page, that is, the entire page is read or written. In an actual system, the minimum unit for the file system to read and write to the SSD is 1 sector. Through the alignment operation, sector access can be easily converted into page access, which will not be repeated in this invention.

本发明提出的固态硬盘读写请求并行处理方法,由地址映射模块、通道分配模块、通道队列模块、待处理队列模块,数据缓冲区和垃圾回收模块六部分组成,如图1所示。The method for parallel processing of read and write requests for solid-state hard drives proposed by the present invention consists of six parts: an address mapping module, a channel allocation module, a channel queue module, a waiting queue module, a data buffer and a garbage collection module, as shown in FIG. 1 .

地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成。其中地址映射表记录逻辑页和物理页之间的映射关系,页分配模块给写请求分配新的物理页。读请求到来时,通过地址映射模块的地址映射表获取逻辑页对应的物理页;写请求到来时,通过地址映射模块的页分配模块对写请求中每个逻辑页分配新的物理页,并更新地址映射表。The address mapping module is responsible for realizing the mapping from the requested logical address to the physical address, adopts the page-level mapping method, and is composed of an address mapping table and a page allocation module. The address mapping table records the mapping relationship between the logical page and the physical page, and the page allocation module allocates a new physical page to the write request. When a read request comes, the physical page corresponding to the logical page is obtained through the address mapping table of the address mapping module; when a write request comes, a new physical page is allocated to each logical page in the write request through the page allocation module of the address mapping module, and updated Address mapping table.

通道分配模块负责计算请求中每个页实际需要访问的通道。通道分配模块根据地址映射模块得到的物理页号计算每个页对应的通道,并将其插入对应通道的读写队列。The channel allocation module is responsible for calculating the channel that each page in the request actually needs to access. The channel allocation module calculates the channel corresponding to each page according to the physical page number obtained by the address mapping module, and inserts it into the read-write queue of the corresponding channel.

通道队列模块由每个通道的队列组成,每个通道的队列又分为读请求队列和写请求队列,通道分配模块将读写访问请求以页为单位插入到通道的读写队列。The channel queue module is composed of a queue for each channel, and the queue for each channel is divided into a read request queue and a write request queue. The channel allocation module inserts read and write access requests into the read and write queue of the channel in units of pages.

待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度。The pending queue saves requests for which the channel allocation is completed but the actual flash memory read and write is not completed, and the scheduling of the pending queue is completed in a first-in first-out manner.

数据缓冲区用来暂存从闪存中读出的数据。The data buffer is used to temporarily store the data read from the flash memory.

垃圾回收模块用来完成垃圾回收过程,采用主动垃圾回收和被动垃圾回收相结合的方式。The garbage collection module is used to complete the garbage collection process, using a combination of active garbage collection and passive garbage collection.

本发明提出的固态硬盘读写请求并行处理方法,在实际处理访问请求时,涉及到预处理,访问闪存和垃圾回收三个过程。这三个过程的触发条件和处理流程如下:The method for parallel processing of read and write requests for solid-state hard drives proposed by the present invention involves three processes of preprocessing, flash memory access and garbage collection when actually processing access requests. The trigger conditions and processing flow of these three processes are as follows:

当有新的读写请求到达,且待处理队列不满时,触发预处理流程,其流程如图2所示,具体工作过程如下:When a new read and write request arrives and the queue to be processed is not full, the preprocessing process is triggered. The process is shown in Figure 2. The specific working process is as follows:

步骤1,判断到达请求类型:若是读请求,执行步骤2;否则为写请求,执行步骤4。Step 1. Determine the type of the incoming request: if it is a read request, go to step 2; otherwise, go to step 4.

步骤2,调用地址映射模块,访问地址映射表,获取读请求每个逻辑页对应的物理页号PPN。Step 2, call the address mapping module, access the address mapping table, and obtain the physical page number PPN corresponding to each logical page of the read request.

步骤3,调用通道分配模块,根据每个页的PPN得到对应的闪存通道,然后将每个页插入到对应的闪存通道的读队列的队尾,最后执行步骤6。Step 3, call the channel allocation module, obtain the corresponding flash memory channel according to the PPN of each page, then insert each page into the tail of the read queue of the corresponding flash memory channel, and finally perform step 6.

步骤4,调用地址映射模块的页分配模块,采用异地更新策略,为写请求的每个页分配新的物理页号PPN,并更新地址映射表,执行步骤5。Step 4, calling the page allocation module of the address mapping module, adopting an off-site update strategy, assigning a new physical page number PPN to each page of the write request, updating the address mapping table, and performing step 5.

步骤5,调用通道分配模块,根据每个页的PPN得到对应的闪存通道,然后将每个页插入对应闪存通道的写队列的队尾,最后执行步骤6。Step 5, call the channel allocation module, obtain the corresponding flash memory channel according to the PPN of each page, then insert each page into the tail of the write queue corresponding to the flash memory channel, and finally perform step 6.

步骤6,将该请求插入到待处理队列的队尾,结束本次预处理。Step 6, insert the request into the tail of the queue to be processed, and end this preprocessing.

进一步,所述的步骤4中的写请求的页分配方法的具体流程如下:Further, the specific flow of the page allocation method for the write request in step 4 is as follows:

P41,计算每个通道闪存块的擦除次数,按擦除次数从小到大进行排序;P41, calculate the erasing times of each channel flash memory block, and sort according to the erasing times from small to large;

P42,将写请求需要的物理页数N表示成N=n*C+q的形式(C为通道数,n为N/C的商,q为N/C的余数);P42, the number of physical pages N required by the write request is expressed in the form of N=n*C+q (C is the number of channels, n is the quotient of N/C, and q is the remainder of N/C);

P43,按照擦除次数最小的通道优先分配写和最大化通道并行写的策略,先给每个通道分配n个页写,以实现最大化并行写;然后将q个页写分配给擦除次数最小的前q个通道,以均衡每个通道的磨损程度。P43, according to the strategy of first assigning writes to the channel with the smallest number of erasures and maximizing channel parallel writing, first assign n page writes to each channel to maximize parallel writing; then assign q page writes to the number of erasures The smallest top q channels to equalize the wear of each channel.

当待处理队列不为空时,触发闪存访问流程,其实现流程如图3所示,具体工作过程如下:When the queue to be processed is not empty, the flash memory access process is triggered, and its implementation process is shown in Figure 3. The specific working process is as follows:

步骤1,判断待处理队列队首请求类型:若是读请求,执行步骤2;否则,执行步骤5。Step 1. Determine the type of the pending queue head request: if it is a read request, go to step 2; otherwise, go to step 5.

步骤2,判断请求队列队首读请求是否执行完成:若是,执行步骤4,否则执行步骤3。Step 2, judge whether the execution of the first read request of the request queue is completed: if yes, execute step 4, otherwise execute step 3.

步骤3,将所有通道读队列队首的页从闪存中读出到数据缓冲区中,然后剔除所有通道读队列的队首,执行步骤2。Step 3: Read the pages at the head of the read queues of all channels from the flash memory into the data buffer, and then remove the heads of the read queues of all channels, and perform step 2.

步骤4,合并数据缓冲区中来自同一请求的读数据,并响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。Step 4, merge the read data from the same request in the data buffer, and respond to the upper file system, remove the request from the head of the queue to be processed, and end this flash memory access operation.

步骤5,判断请求队列队首写请求是否执行完成:若是,执行步骤7,否则执行步骤6。Step 5, judging whether the first write request of the request queue is completed: if yes, go to step 7, otherwise go to step 6.

步骤6,将所有通道写队列队首的请求写入到对应通道下的物理页中,同时剔除所有通道写队列的队首,执行步骤5。Step 6: Write the request for the head of the write queue of all channels into the physical page under the corresponding channel, and delete the head of the write queue of all channels at the same time, and perform step 5.

步骤7,响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。Step 7: Respond to the upper file system, remove the queue head request to be processed, and end this flash memory access operation.

当待处理对列为空,且某个通道内空闲块的数量小于阈值TH1时,触发主动垃圾回收操作。当在进行闪存访问操作,且某个通道内空闲块的数量小于阈值TH2时,暂停闪存访问操作,触发被动垃圾回收操作。实际垃圾回收操作是选择该通道下包含最多无效页的数据块作为无效块,将无效块中的有效页迁移至同一个通道内的空闲块中,然后将无效块擦除。此外,为尽量少触发被动垃圾回收操作,TH1应该大于TH2When the queue to be processed is empty and the number of free blocks in a certain channel is less than the threshold TH 1 , an active garbage collection operation is triggered. When a flash memory access operation is being performed and the number of free blocks in a certain channel is less than the threshold TH 2 , the flash memory access operation is suspended and a passive garbage collection operation is triggered. The actual garbage collection operation is to select the data block containing the most invalid pages under the channel as an invalid block, migrate the valid pages in the invalid block to free blocks in the same channel, and then erase the invalid block. In addition, in order to trigger passive garbage collection operations as little as possible, TH 1 should be greater than TH 2 .

为了对本发明的并行处理流程进行进一步解释,结合具体的实际请求进行说明。为了方便描述,假设闪存通道数C=4,每个通道的闪存阵列包含128个物理页,即1-128号物理页对应通道1,129-256号物理页对应通道2,257-384号物理页对应通道3,385-512号物理页对应通道4。请求队列和通道读写队列都为空,通道按照闪存块擦除次数由小到大排列为4,3,2,1。In order to further explain the parallel processing flow of the present invention, it will be described in conjunction with specific actual requests. For the convenience of description, assume that the number of flash memory channels C=4, and the flash memory array of each channel contains 128 physical pages, that is, physical pages 1-128 correspond to channel 1, physical pages 129-256 correspond to channel 2, and physical pages 257-384 Pages correspond to channel 3, and physical pages 385-512 correspond to channel 4. Both the request queue and the channel read/write queue are empty, and the channels are arranged as 4, 3, 2, 1 according to the erasing times of flash memory blocks from small to large.

实施例1:预处理操作。Embodiment 1: pretreatment operation.

队列中的预处理操作如图4所示。请求R1,W1,R2按照时间顺序到达,此处R代表读请求,W代表写请求,数字代表到达顺序。其处理过程如下所示:The preprocessing operations in the queue are shown in Figure 4. Requests R1, W1, and R2 arrive in chronological order, where R represents a read request, W represents a write request, and the numbers represent the order of arrival. Its processing is as follows:

C1,待处理队列未满,开始执行请求预处理操作,读请求R1(78,2)。此处78代表访问操作的开始逻辑页号,2代表访问两个页(下同)。根据图4所示的地址映射表,可得到实际需要访问的物理页号是66和301,执行C2。C1, the queue to be processed is not full, and the request preprocessing operation is started, and the read request R1(78,2) is started. Here 78 represents the start logical page number of the access operation, and 2 represents access to two pages (the same below). According to the address mapping table shown in Figure 4, it can be obtained that the actual physical page numbers to be accessed are 66 and 301, and C2 is executed.

C2,物理页66,301分别在通道1,3。通道分配模块将其分别插入通道1和通道3的读队列,执行C3。C2, physical pages 66 and 301 are in channels 1 and 3 respectively. The channel allocation module inserts them into the read queues of channel 1 and channel 3 respectively, and executes C3.

C3,待处理队列未满,继续执行请求预处理操作,写请求W1(236,5)。地址映射模块将W1中前4个页分配到4个通道中,第5个页分配到通道4中。假设分配信息为236-103,237-247,238-331,239-500,240-501。将映射信息更新至地址映射模块,执行C4。C3, the queue to be processed is not full, continue to execute the request preprocessing operation, and write the request W1(236,5). The address mapping module allocates the first 4 pages in W1 to 4 channels, and allocates the fifth page to channel 4. Suppose the distribution information is 236-103, 237-247, 238-331, 239-500, 240-501. Update the mapping information to the address mapping module, and execute C4.

C4,物理页103,247,331,500,501分别在通道1,2,3,4,4。通道分配模块将其分别插入通道1,通道2,通道3,通道4的写队列,执行C5。C4, physical pages 103, 247, 331, 500, and 501 are in channels 1, 2, 3, 4, and 4 respectively. The channel allocation module inserts them into the write queues of channel 1, channel 2, channel 3 and channel 4 respectively, and executes C5.

C5,待处理队列未满,继续执行请求预处理操作,读请求R2(126,3)。访问地址映射模块得到地址映射信息为126-79,127-210,128-407,执行C6。C5, the queue to be processed is not full, continue to execute the request preprocessing operation, and read the request R2(126,3). Access the address mapping module to obtain the address mapping information as 126-79, 127-210, 128-407, and execute C6.

C6,物理页79,210,407分别在在通道1,2,4。通道分配模块将其分别将其插入通道1,通道2和通道4的读队列,执行C7。C6, physical pages 79, 210, and 407 are in channels 1, 2, and 4, respectively. The channel allocation module inserts them into the read queues of channel 1, channel 2 and channel 4 respectively, and executes C7.

C7,待处理队列未满,但无后续请求,预处理操作执行结束。C7, the queue to be processed is not full, but there is no subsequent request, and the execution of the preprocessing operation ends.

实施例2:闪存访问操作。Embodiment 2: flash memory access operation.

队列中的读请求处理情况如图5所示,其处理过程如下所示:The processing of read requests in the queue is shown in Figure 5, and the processing process is as follows:

C1,待处理队列不为空,队首为读请求R1,且R1未执行完成,因此读出4个通道读队列的队首页号,即分别从4个通道读出物理页66,210,301,407至数据缓冲区。将4个通道读队列队首请求剔除,此时R1执行完成,将R1从待处理队列剔除,合并缓冲区中R1的物理页66和301并上传,执行C2。C1, the queue to be processed is not empty, the leader of the queue is the read request R1, and R1 has not been executed, so read the first page number of the read queue of the four channels, that is, read the physical pages 66, 210, and 301 from the four channels respectively , 407 to the data buffer. Remove the head requests of the 4 channel read queues. At this time, the execution of R1 is completed, and R1 is removed from the pending queue. The physical pages 66 and 301 of R1 in the buffer are merged and uploaded, and C2 is executed.

C2,待处理队列不为空,队首为读请求W1,且W1未执行完成,因此写入4个通道写队列队首,分别将数据写入4个通道下的103,247,331,500物理页。将4个通道写队列队首请求剔除,执行C3。C2, the queue to be processed is not empty, the head of the queue is the read request W1, and W1 has not been executed, so write to the head of the 4-channel write queue, and write data to 103,247,331,500 physical pages under the 4 channels. Remove the head requests of the 4 channel write queues and execute C3.

C3,待处理队列不为空,队首为读请求W1,且W1未执行完成,因此写入4个通道写队列队首,只有通道4的写队列不为空,将数据写入通道4下的501物理页。将通道4写队列队首剔除,此时W1执行完成,将W1从待处理队列剔除,执行C4。C3, the queue to be processed is not empty, the leader is the read request W1, and W1 has not been executed, so write to the leader of the write queue of 4 channels, only the write queue of channel 4 is not empty, write the data to channel 4 The 501 physical page. Remove the leader of the channel 4 write queue, and at this time W1 is executed, remove W1 from the queue to be processed, and execute C4.

C4,待处理队列不为空,队首为读请求R2,且R2未执行完成,因此读出4个通道读队列队首,只有通道1的读队列不为空,从通道1读出物理页79。将通道1读队列队首剔除,此时R2执行结束,将R2从待处理队列剔除,合并缓冲区中的物理页79,210,407并上传,执行C5。C4, the queue to be processed is not empty, the head of the queue is the read request R2, and R2 has not been executed, so the read queue head of 4 channels is read, only the read queue of channel 1 is not empty, and the physical page is read from channel 1 79. Remove the head of the channel 1 read queue, and at this time, the execution of R2 ends, remove R2 from the pending queue, merge and upload the physical pages 79, 210, and 407 in the buffer, and execute C5.

C5,待处理队列为空,执行结束。C5, the queue to be processed is empty, and the execution ends.

以上所述仅为本发明的优先实施例而已,并不用于限制本发明,对本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同的替换、改进等,均应包含在本发明的保护范围之内。The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and changes. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included within the protection scope of the present invention.

Claims (6)

1.一种固态硬盘读写请求并行处理装置,其特征在于包括地址映射模块、通道分配模块、通道队列模块、待处理队列模块、数据缓冲区和垃圾回收模块;地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成;通道分配模块负责计算请求中每个页实际需要访问的通道;通道队列模块由每个通道的队列组成,每个通道的队列分为读请求队列和写请求队列,读写访问请求以页为单位插入到通道的读写队列;待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度;数据缓冲区用来暂存从闪存中读出的数据;垃圾回收模块负责固态硬盘无效块的回收,完成垃圾回收操作。1. A solid-state disk read and write request parallel processing device is characterized in that it comprises an address mapping module, a channel distribution module, a channel queue module, a pending queue module, a data buffer and a garbage collection module; the address mapping module is responsible for realizing the logic of the request The mapping from address to physical address adopts the page-level mapping method, which is composed of address mapping table and page allocation module; the channel allocation module is responsible for calculating the channel that each page actually needs to access in the request; the channel queue module is composed of the queue of each channel, The queue of each channel is divided into a read request queue and a write request queue. Read and write access requests are inserted into the read and write queue of the channel in units of pages; the pending queue stores the requests that the channel allocation is completed but the actual flash memory reads and writes are not fully completed. Complete the scheduling of the queue to be processed according to the first-in-first-out method; the data buffer is used to temporarily store the data read from the flash memory; the garbage collection module is responsible for the recovery of invalid blocks of the solid-state hard disk, and completes the garbage collection operation. 2.一种固态硬盘读写请求并行处理方法,其特征在于包括预处理、闪存访问和垃圾回收三个过程,且三个过程可并行执行,其具体步骤如下:2. A method for parallel processing of solid state disk read and write requests, characterized in that it comprises three processes of preprocessing, flash memory access and garbage collection, and the three processes can be performed in parallel, and its concrete steps are as follows: 当有新的读写请求到达,且待处理队列不满时,触发预处理流程;When a new read and write request arrives and the pending queue is not full, the preprocessing process is triggered; 当待处理队列不为空时,触发闪存访问流程;When the pending queue is not empty, trigger the flash memory access process; 垃圾回收过程由垃圾回收模块完成,采用主动垃圾回收和被动垃圾回收相结合的方式;当待处理对列为空且某个通道内空闲块的数量小于阈值TH1时,触发主动垃圾回收操作;当在执行闪存访问操作时,某个通道内空闲块的数量小于阈值TH2时,暂停闪存访问操作,触发被动垃圾回收操作;进一步的,所述的垃圾回收操作的具体方式是选择该通道下包含最多无效页的数据块作为无效块,将无效块中的有效页迁移至同一个通道内的空闲块中,然后将无效块擦除;此外,为尽量少触发被动垃圾回收操作,TH1应该大于TH2The garbage collection process is completed by the garbage collection module, which adopts the combination of active garbage collection and passive garbage collection; when the queue to be processed is empty and the number of free blocks in a certain channel is less than the threshold TH 1 , the active garbage collection operation is triggered; When performing a flash memory access operation, when the number of free blocks in a certain channel is less than the threshold TH 2 , the flash memory access operation is suspended and a passive garbage collection operation is triggered; further, the specific method of the garbage collection operation is to select the channel under the channel The data block containing the most invalid pages is used as an invalid block, and the valid pages in the invalid block are migrated to free blocks in the same channel, and then the invalid block is erased; in addition, in order to trigger passive garbage collection operations as little as possible, TH 1 should greater than TH 2 . 3.根据权利要求2所述的一种固态硬盘读写请求并行处理方法,其特征在于预处理流程实现步骤如下:3. a kind of solid-state hard disk read and write request parallel processing method according to claim 2, it is characterized in that the preprocessing flow realization step is as follows: P1.判断到达请求类型:若是读请求,执行P2;否则为写请求,执行P4;P1. Determine the type of arrival request: if it is a read request, execute P2; otherwise, it is a write request, execute P4; P2.调用地址映射模块,访问地址映射表,获取读请求每个逻辑页对应的物理页号PPN;P2. call the address mapping module, access the address mapping table, and obtain the physical page number PPN corresponding to each logical page of the read request; P3.调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的读队列的队尾,执行P6;P3. Call the channel allocation module, obtain the flash memory channel where it is located according to the PPN of each page, then insert each page into the tail of the read queue of the corresponding flash memory channel, and execute P6; P4.调用地址映射模块的页分配模块,采用异地更新策略,为写请求的每个页分配新的物理页号PPN,并更新地址映射表,执行P5;P4. Call the page allocation module of the address mapping module, adopt the off-site update strategy, allocate a new physical page number PPN for each page of the write request, and update the address mapping table, and execute P5; P5.调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的写队列的队尾,最后执行P6;P5. Call the channel allocation module, obtain the flash memory channel where it is located according to the PPN of each page, then insert each page into the tail of the write queue of the corresponding flash memory channel, and finally execute P6; P6.将该请求插入到待处理队列的队尾,结束本次预处理。P6. Insert the request to the end of the queue to be processed, and end this preprocessing. 4.根据权利要求3所述的一种固态硬盘读写请求并行处理方法,其特征在于闪存访问流程实现步骤如下:4. a kind of solid-state hard disk read and write request parallel processing method according to claim 3 is characterized in that flash memory access process realization steps are as follows: A1.判断待处理队列队首请求类型:若是读请求,执行A2;否则,执行A5;A1. Determine the type of the queue head request to be processed: if it is a read request, execute A2; otherwise, execute A5; A2.判断请求队列队首读请求是否执行完成:若是,执行A4,否则执行A3;A2. Determine whether the execution of the first read request of the request queue is completed: if yes, execute A4, otherwise execute A3; A3.将所有通道读队列队首的页从闪存中读出到数据缓冲区中,然后剔除所有通道读队列的队首,执行A2;A3. Read the pages at the head of all channel read queues from the flash memory into the data buffer, then remove the heads of all channel read queues, and execute A2; A4.合并数据缓冲区中来自同一请求的读数据,并响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作;A4. Merge the read data from the same request in the data buffer, and respond to the upper file system, remove the queue head request to be processed, and end this flash memory access operation; A5.判断请求队列队首写请求是否执行完成:若是,执行A7,否则执行A6;A5. Determine whether the first write request of the request queue is completed: if yes, execute A7, otherwise execute A6; A6.将所有通道写队列队首的请求写入对应通道下的物理页,同时剔除所有通道写队列的队首,执行A5;A6. Write the request for the head of the write queue of all channels into the physical page under the corresponding channel, and remove the head of the write queue of all channels at the same time, and execute A5; A7.响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。A7. Respond to the upper file system, remove the request from the head of the queue to be processed, and end this flash memory access operation. 5.根据权利要求4所述的一种固态硬盘读写请求并行处理方法,其特征在于预处理流程P4步骤中的写请求的页分配方法的具体流程如下:5. a kind of solid state disk read and write request parallel processing method according to claim 4, it is characterized in that the concrete process of the page allocation method of the write request in the preprocessing flow P4 step is as follows: P41.计算每个通道闪存块的擦除次数,按擦除次数从小到大进行排序;P41. Calculate the erasing times of each channel flash memory block, and sort according to the erasing times from small to large; P42.将写请求需要的物理页数N表示成N=n*C+q的形式,C为通道数,n为N/C的商,q为N/C的余数;P42. Express the number of physical pages N required by the write request in the form of N=n*C+q, where C is the number of channels, n is the quotient of N/C, and q is the remainder of N/C; P43.按照擦除次数最小的通道优先分配写和最大化通道并行写的策略,先给每个通道分配n个页写,以实现最大化并行写;然后将q个页写分配给擦除次数最小的前q个通道,以均衡每个通道的磨损程度。P43. According to the strategy of first assigning writes to channels with the smallest number of erasures and maximizing channel parallel writing, first assign n page writes to each channel to maximize parallel writes; then assign q page writes to the number of erasures The smallest top q channels to equalize the wear of each channel. 6.根据权利要求3或4或5所述的一种固态硬盘读写请求并行处理方法,其特征在于该方法涉及地址映射模块、通道分配模块、通道队列模块、待处理队列模块、数据缓冲区和垃圾回收模块;地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成;通道分配模块负责计算请求中每个页实际需要访问的通道;通道队列模块由每个通道的队列组成,每个通道的队列分为读请求队列和写请求队列,读写访问请求以页为单位插入到通道的读写队列;待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度;数据缓冲区用来暂存从闪存中读出的数据;垃圾回收模块负责固态硬盘无效块的回收,完成垃圾回收操作。6. according to claim 3 or 4 or 5 described a kind of solid-state disk read and write request parallel processing method, it is characterized in that the method relates to address mapping module, channel distribution module, channel queue module, pending queue module, data buffer and garbage collection module; the address mapping module is responsible for realizing the mapping from the requested logical address to the physical address, adopting the page-level mapping method, composed of the address mapping table and the page allocation module; Channel; the channel queue module is composed of a queue for each channel. The queue for each channel is divided into a read request queue and a write request queue. Read and write access requests are inserted into the read and write queue of the channel in units of pages; the pending queue saves channel allocation Completed, but the actual read and write of the flash memory is not all completed, the scheduling of the queue to be processed is completed according to the first-in-first-out method; the data buffer is used to temporarily store the data read from the flash memory; the garbage collection module is responsible for the invalid blocks of the solid state drive Recycle, to complete the garbage collection operation.
CN201910614795.8A 2019-07-09 2019-07-09 A method for parallel processing of read and write requests for solid state disks Active CN110515859B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910614795.8A CN110515859B (en) 2019-07-09 2019-07-09 A method for parallel processing of read and write requests for solid state disks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910614795.8A CN110515859B (en) 2019-07-09 2019-07-09 A method for parallel processing of read and write requests for solid state disks

Publications (2)

Publication Number Publication Date
CN110515859A true CN110515859A (en) 2019-11-29
CN110515859B CN110515859B (en) 2021-07-20

Family

ID=68623266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910614795.8A Active CN110515859B (en) 2019-07-09 2019-07-09 A method for parallel processing of read and write requests for solid state disks

Country Status (1)

Country Link
CN (1) CN110515859B (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176883A (en) * 2019-12-24 2020-05-19 中山大学 Erasure code based active reconstruction method and reading method for flash memory solid-state disk data
CN111324307A (en) * 2020-02-13 2020-06-23 西安微电子技术研究所 Satellite-borne NAND FLASH type solid-state memory and method for distributing storage space
CN111580752A (en) * 2020-04-28 2020-08-25 中国人民大学 Data storage method, data storage equipment, computer program and storage medium
CN111582739A (en) * 2020-05-13 2020-08-25 华中科技大学 A method for realizing high bandwidth under the condition of performance isolation of multi-tenant solid state disks
CN111708713A (en) * 2020-05-20 2020-09-25 杭州电子科技大学 An intelligent garbage collection and scheduling method for solid-state drives
CN111857601A (en) * 2020-07-30 2020-10-30 暨南大学 A solid-state disk cache management method based on garbage collection and channel parallelism
CN112835534A (en) * 2021-02-26 2021-05-25 上海交通大学 A method and device for optimizing garbage collection based on storage array data access
CN113126900A (en) * 2019-12-30 2021-07-16 美光科技公司 Separate core for media management of memory subsystem
CN114185492A (en) * 2021-12-14 2022-03-15 福建师范大学 Solid state disk garbage recycling algorithm based on reinforcement learning
CN114546294A (en) * 2022-04-22 2022-05-27 苏州浪潮智能科技有限公司 Solid state disk reading method, system and related components
CN114840448A (en) * 2022-05-13 2022-08-02 厦门大学 A method for accelerating garbage collection of 3D flash memory with inter-channel parallelism
CN115840542A (en) * 2023-02-24 2023-03-24 浪潮电子信息产业股份有限公司 Hard disk request processing method, system, storage medium and electronic equipment
CN116540948A (en) * 2023-07-04 2023-08-04 绿晶半导体科技(北京)有限公司 Solid state disk garbage disposal method and solid state disk thereof
CN118069068A (en) * 2024-04-16 2024-05-24 苏州元脑智能科技有限公司 Solid state disk management method and device, electronic equipment and storage medium

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169703A (en) * 2007-11-05 2008-04-30 湖南源科创新科技股份有限公司 Solid state hard disk memory card based on RAID technology
CN101498994A (en) * 2009-02-16 2009-08-05 华中科技大学 Solid state disk controller
CN102713866A (en) * 2009-12-15 2012-10-03 国际商业机器公司 Reducing access contention in flash-based memory systems
CN103365788A (en) * 2013-08-06 2013-10-23 山东大学 Self-adaption local garbage collecting method used for real-time flash memory conversion layer
CN103902475A (en) * 2014-04-23 2014-07-02 哈尔滨工业大学 Solid state disk concurrent access method and device based on queue management mechanism
CN104090847A (en) * 2014-06-25 2014-10-08 华中科技大学 Address distribution method of solid-state storage device
CN107515728A (en) * 2016-06-17 2017-12-26 清华大学 Data management method and device utilizing internal concurrency characteristics of flash memory device
US20180024779A1 (en) * 2016-07-25 2018-01-25 Toshiba Memory Corporation Storage device and storage control method
EP3447607A1 (en) * 2017-08-23 2019-02-27 Toshiba Memory Corporation Credit based command scheduling
CN109739775A (en) * 2018-11-20 2019-05-10 北京航空航天大学 A hybrid garbage collection method for flash translation layer based on multi-stage locking

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169703A (en) * 2007-11-05 2008-04-30 湖南源科创新科技股份有限公司 Solid state hard disk memory card based on RAID technology
CN101498994A (en) * 2009-02-16 2009-08-05 华中科技大学 Solid state disk controller
CN102713866A (en) * 2009-12-15 2012-10-03 国际商业机器公司 Reducing access contention in flash-based memory systems
CN103365788A (en) * 2013-08-06 2013-10-23 山东大学 Self-adaption local garbage collecting method used for real-time flash memory conversion layer
CN103902475A (en) * 2014-04-23 2014-07-02 哈尔滨工业大学 Solid state disk concurrent access method and device based on queue management mechanism
CN104090847A (en) * 2014-06-25 2014-10-08 华中科技大学 Address distribution method of solid-state storage device
CN107515728A (en) * 2016-06-17 2017-12-26 清华大学 Data management method and device utilizing internal concurrency characteristics of flash memory device
US20180024779A1 (en) * 2016-07-25 2018-01-25 Toshiba Memory Corporation Storage device and storage control method
EP3447607A1 (en) * 2017-08-23 2019-02-27 Toshiba Memory Corporation Credit based command scheduling
CN109739775A (en) * 2018-11-20 2019-05-10 北京航空航天大学 A hybrid garbage collection method for flash translation layer based on multi-stage locking

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
S. WU: "GC-Aware Request Steering with Improved Performance and Reliability for SSD-Based RAIDs", 《2018 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IPDPS)》 *
杜晨杰: "缓冲区管理层对固态盘的有效性研究", 《浙江万里学院学报》 *
梁杰: "闪存容错阵列系统中I/O性能的优化研究", 《中国博士学位论文全文数据库 信息科技辑 》 *
罗勇: "基于混合缓存机制的垃圾回收策略研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176883A (en) * 2019-12-24 2020-05-19 中山大学 Erasure code based active reconstruction method and reading method for flash memory solid-state disk data
CN111176883B (en) * 2019-12-24 2022-05-20 中山大学 Erasure code based active reconstruction method and reading method for flash memory solid-state disk data
CN113126900A (en) * 2019-12-30 2021-07-16 美光科技公司 Separate core for media management of memory subsystem
CN111324307A (en) * 2020-02-13 2020-06-23 西安微电子技术研究所 Satellite-borne NAND FLASH type solid-state memory and method for distributing storage space
CN111580752A (en) * 2020-04-28 2020-08-25 中国人民大学 Data storage method, data storage equipment, computer program and storage medium
CN111580752B (en) * 2020-04-28 2023-09-26 中国人民大学 Data storage method, device, computer program and storage medium
CN111582739A (en) * 2020-05-13 2020-08-25 华中科技大学 A method for realizing high bandwidth under the condition of performance isolation of multi-tenant solid state disks
CN111582739B (en) * 2020-05-13 2022-02-18 华中科技大学 Method for realizing high bandwidth under condition of multi-tenant solid-state disk performance isolation
CN111708713B (en) * 2020-05-20 2022-07-05 杭州电子科技大学 Intelligent garbage recycling and scheduling method for solid state disk
CN111708713A (en) * 2020-05-20 2020-09-25 杭州电子科技大学 An intelligent garbage collection and scheduling method for solid-state drives
CN111857601A (en) * 2020-07-30 2020-10-30 暨南大学 A solid-state disk cache management method based on garbage collection and channel parallelism
CN111857601B (en) * 2020-07-30 2023-09-01 暨南大学 Solid-state disk cache management method based on garbage collection and channel parallelism
CN112835534A (en) * 2021-02-26 2021-05-25 上海交通大学 A method and device for optimizing garbage collection based on storage array data access
CN114185492B (en) * 2021-12-14 2023-07-07 福建师范大学 A Solid State Disk Garbage Collection Method Based on Reinforcement Learning
CN114185492A (en) * 2021-12-14 2022-03-15 福建师范大学 Solid state disk garbage recycling algorithm based on reinforcement learning
CN114546294B (en) * 2022-04-22 2022-07-22 苏州浪潮智能科技有限公司 Solid state disk reading method, system and related components
CN114546294A (en) * 2022-04-22 2022-05-27 苏州浪潮智能科技有限公司 Solid state disk reading method, system and related components
CN114840448A (en) * 2022-05-13 2022-08-02 厦门大学 A method for accelerating garbage collection of 3D flash memory with inter-channel parallelism
CN114840448B (en) * 2022-05-13 2024-06-04 厦门大学 Method for accelerating 3D flash memory garbage collection using inter-channel parallelism
CN115840542A (en) * 2023-02-24 2023-03-24 浪潮电子信息产业股份有限公司 Hard disk request processing method, system, storage medium and electronic equipment
CN115840542B (en) * 2023-02-24 2023-06-02 浪潮电子信息产业股份有限公司 Method and system for processing request of hard disk, storage medium and electronic equipment
CN116540948A (en) * 2023-07-04 2023-08-04 绿晶半导体科技(北京)有限公司 Solid state disk garbage disposal method and solid state disk thereof
CN116540948B (en) * 2023-07-04 2023-08-29 绿晶半导体科技(北京)有限公司 Solid state disk garbage disposal method and solid state disk thereof
CN118069068A (en) * 2024-04-16 2024-05-24 苏州元脑智能科技有限公司 Solid state disk management method and device, electronic equipment and storage medium
CN118069068B (en) * 2024-04-16 2024-07-02 苏州元脑智能科技有限公司 Solid state disk management method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN110515859B (en) 2021-07-20

Similar Documents

Publication Publication Date Title
CN110515859A (en) A method for parallel processing of read and write requests for solid state disks
CN106528438B (en) A kind of segmented rubbish recovering method of solid storage device
CN100483366C (en) Flash controller cache architecture
US9183136B2 (en) Storage control apparatus and storage control method
CN103777905B (en) Software-defined fusion storage method for solid-state disc
CN103135945B (en) Multi-channel dynamic read-write dispatching method used in solid state drive (SSD)
US20160217071A1 (en) Cache Allocation in a Computerized System
CN105930282B (en) A kind of data cache method for NAND FLASH
US20120110239A1 (en) Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
CN106547703A (en) A kind of FTL optimization methods based on block group structure
CN109446117B (en) Design method for page-level flash translation layer of solid state disk
CN103049397A (en) Method and system for internal cache management of solid state disk based on novel memory
CN111708713B (en) Intelligent garbage recycling and scheduling method for solid state disk
CN103999060A (en) Solid-state storage management
KR20100037416A (en) Solid state storage system and controlling method thereof
CN103902475B (en) Solid state disk concurrent access method and device based on queue management mechanism
US10754785B2 (en) Checkpointing for DRAM-less SSD
CN110968269A (en) SCM and SSD-based key value storage system and read-write request processing method
CN111984188A (en) Hybrid memory data management method, device and storage medium
CN111399750A (en) Flash data writing method and computer readable storage medium
CN112835534B (en) A method and device for optimizing garbage collection based on storage array data access
CN115203079A (en) Method for writing data into solid state disk
CN107678685A (en) The key assignments memory management method of store path optimization based on flash memory
CN102520885B (en) Data management system for hybrid hard disk
Long et al. Wa-zone: Wear-aware zone management optimization for lsm-tree on zns ssds

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240812

Address after: 518000 1002, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Wanzhida Technology Co.,Ltd.

Country or region after: China

Address before: 310018 No. 2 street, Xiasha Higher Education Zone, Hangzhou, Zhejiang

Patentee before: HANGZHOU DIANZI University

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20241225

Address after: 101400 Room 301, happy west street, Beifang Town, Huairou District, Beijing, 301

Patentee after: Beijing Saisheng Bochuang Technology Co.,Ltd.

Country or region after: China

Address before: 518000 1002, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Patentee before: Shenzhen Wanzhida Technology Co.,Ltd.

Country or region before: China