CN103902475B - 一种基于队列管理机制的固态硬盘并行访问方法及装置 - Google Patents
一种基于队列管理机制的固态硬盘并行访问方法及装置 Download PDFInfo
- Publication number
- CN103902475B CN103902475B CN201410166092.0A CN201410166092A CN103902475B CN 103902475 B CN103902475 B CN 103902475B CN 201410166092 A CN201410166092 A CN 201410166092A CN 103902475 B CN103902475 B CN 103902475B
- Authority
- CN
- China
- Prior art keywords
- concurrent access
- request
- queue management
- file system
- solid state
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于队列管理机制的固态硬盘并行访问方法及装置,属于固态存储领域。解决了现有并行访问方法和装置在并行写入数据请求时,数据在物理空间的离散对垃圾回收的不良影响,以及只考虑垃圾回收效率,导致对固态硬盘I/O性能降低的问题。本发明所述的并行访问方法包括以下步骤:当文件系统请求到达时,判断此次请求是顺序请求还是随机请求,若为随机请求,则使用轮循并行访问方法进行响应,若为顺序请求,则进一步判断所有请求长度L;本发明所述的并行访问装置通过多个比较模块和多个执行模块,相互进行数据传输实现并行访问过程。本发明适用于固态硬盘并行访问。
Description
技术领域
本发明属于固态存储领域,具体涉及固态硬盘并行访问技术。
背景技术
NAND闪存作为一种非易失性存储器件,具有体积小、访问速度快、功率小及抗震等优良特征,因此,基于NAND闪存技术的固态硬盘目前已经应用于军用及民用存储领域。但是,NAND闪存器件具有一些固有的限制,导致固态硬盘管理具有一定的难度,其主要限制因素主要有:
(1)非即时更新。在重新写入某一页前必须对这一页所在的块进行擦除操作,而不能直接写入,而擦除操作是以块为单位进行擦除,而不是以页为单位进行擦除;
(2)NAND闪存每一块在其失效前擦除/写入次数有限。对于单层NAND闪存一般具有数万次的擦除/写入次数,而多层NAND闪存则只有几千次的擦除/写入次数。一旦作用中超过极限擦除/写入次数,则NAND闪存就会失效,无法继续使用。
基于NAND闪存的固态硬盘典型存储系统结构如图1所示,主机端应用程序及操作系统通过文件系统和底层硬件访问固态硬盘。固态硬盘通过主接口逻辑将请求发送至内部的嵌入式处理器,经过闪存转译层及请求队列管理,将请求发送至NAND闪存控制器固件,再由NAND闪存控制器最终通过并行访问方法与底层NAND闪存阵列交互,完成此次读写请求。
当固态硬盘接收到文件系统传递过来的一个请求时,闪存转换层会根据其逻辑地址寻找一个物理地址存储数据,然后再将数据真正写入固态硬盘。但当固态硬盘中没有足够的空间来保存当前写入请求时,一些已经用过的脏块需要被擦除,以获得有效的存储空间,这个过程称之为垃圾回收。因此,垃圾回收的基本目标是通过一些算法找到脏块,然后将脏块中的有效数据迁移至有效空间,最终将脏块擦除获得有效存储空间。通常情况下,擦除一块的时间为几千微秒,而读和写入一页的时间仅为几十甚至几百微妙。由于垃圾回收过程中擦除操作及有效页复制操作时间开销过大,垃圾回收就会对固态硬盘的I/O性能造成严重的影响。
为了提高固态硬盘读写速率及增大固态硬盘存储空间,固态硬盘中一般使用多片NAND闪存芯片,多片NAND闪存芯片组成几个独立的、可以并行操作的通道。固态硬盘通过使用一定的并行访问方法来达到充分利用这些并行通道,最终达到提高固态硬盘I/O性能的目的。目前固态硬盘中主要使用轮循并行访问方法,如图2所示。
为了充分利用固态硬盘多个通道的并行性,轮循并行访问方法将所有访问请求分布到所有并行单元,如多芯片或层上,让这些请求可以再不需要等待或者挂起的情况下,同时被服务,从而达到较高的I/O速率。图2中表示的是一个简化的固态硬盘,其拥有四个通道,每个通道有一个NAND闪存芯片,分别为NAND Flash0~4。在文件系统写入逻辑地址LPN0~16时,轮循并行访问方法将这16次请求按图2方式进行存储。
但轮循并行访问方法存在以下问题:将本来顺序的逻辑地址页离散地分布到整个存储介质中,从而造成物理存储介质中数据分布与文件系统数据组织形式不一致。这对于磁盘等可以立即更新的存储介质不会带来任何不良影响,但是NAND闪存必须在擦除后才能写入,是一种非立即更新器件,文件系统与物理介质之间数据组织形式不一致会造成大量的垃圾回收,从而对固态硬盘的I./O性能造成不良影响。例如在图2中,如果文件系统更新LPN0~3,则会对固态硬盘四个块进行更新操作,在垃圾回收时会造成其它有效页的大量复制及四个块的擦除操作,给固态硬盘带来极大的I/O性能消耗。
目前包括轮循在内几乎所有的并行访问方法都尽可能提高服务请求的并行程度,而不考虑并行造成的数据在物理空间的离散对垃圾回收操作带来的影响。另一方面,如果只考虑垃圾回收效率,将请求数据按照逻辑地址顺序写入到固态硬盘,则固态硬盘将失去所有的并行访问特性,其I/O性能就会退化至单片NAND闪存存储系统,失去了固态硬盘作为高速大容量存储器件的能力。
发明内容
本发明为了解决现有并行访问方法和装置在并行写入数据请求时,数据在物理空间的离散对垃圾回收的不良影响,以及只考虑垃圾回收效率,导致对固态硬盘I/O性能降低的问题,提出一种基于队列管理机制的固态硬盘并行访问方法及装置。
一种基于队列管理机制的固态硬盘并行访问方法包括以下步骤:
当文件系统请求到达时,判断此次请求是顺序请求还是随机请求,若为随机请求,则使用轮循并行访问方法进行响应,若为顺序请求,则进一步判断所有请求长度L;
若L≤M×N,N为并行通道数,M为NAND闪存每一块页数量,则使用轮循并行访问方法进行响应;若L>M×N,则进行L/(M×N)次的基于队列管理并行访问方法;剩余的L%(M×N)个请求使用轮循并行访问方法进行响应。
所述基于队列管理并行访问方法包括以下步骤:
步骤一、采用队列管理器对请求队列进行管理,决定请求响应顺序;
步骤二、所有请求经过队列管理器进行管理后通过闪存转换层进行地址映射;
步骤三、将经过地址映射的请求队列发送至NAND闪存控制器,并通过NAND闪存控制器写入NAND闪存阵列中。
一种基于队列管理机制的固态硬盘并行访问装置包括:
用于接收文件系统请求的文件系统请求接收模块;
用于判断文件系统请求为顺序请求还是随机请求的文件系统请求判断模块,当文件系统请求为随机请求时,启动第一轮循并行访问执行模块,当文件系统请求为随机请求时,启动文件系统请求长度比较模块;
用于对文件请求执行轮循并行访问的第一轮循并行访问执行模块;
用于对文件系统请求长度L与M×N进行比较的文件系统请求长度比较模块,当L≤M×N时,启动第二轮循并行访问执行模块;当L>M×N时,启动基于队列管理并行访问执行模块;
用于对文件请求执行轮循并行访问的第二轮循并行访问执行模块;
用于对文件请求执行L/(M×N)次的基于队列管理并行访问方法的基于队列管理并行访问执行模块,启动第三轮循并行访问执行模块;
用于对基于队列管理并行访问执行模块中剩余的L%(M×N)个请求执行轮循并行访问的第三轮循并行访问执行模块。
基于队列管理并行执行模块包括存储系统,所述存储系统包括:
用于用于对请求队列进行管理及决定请求响应顺序的队列管理模块;
用于对请求队列进行地址映射闪存转换模块;
用于将请求并行写入NAND闪存阵列中的请求分配管理模块。
有益效果:基于队列管理的并行访问方法相对于其它并行访问方法,减少了基于NANDFlash SSD的垃圾回收时脏块的擦除次数及有效页复制次数,由于NAND Flash的极限擦除次数是一定的,因此有效的延长了SSD使用寿命。本发明利用有效的队列管理方法充分利用了SSD所有通道的并行性,提高了SSD的I/O性能。
附图说明
图1为基于NAND闪存的固态硬盘典型存储系统结构示意图;
图2为轮循并行访问方法示意图;
图3为基于队列管理并行访问方法的存储系统结构示意图;
图4为基于队列管理并行访问方法下请求队列写入顺序示意图;
图5为基于队列管理并行访问方法下请求在屋里空间的分布示意图;
图6为具体实施方式一所述的一种基于队列管理机制的固态硬盘并行访问方法步骤流程图。
具体实施方式
具体实施方式一、结合图6说明本具体实施方式,本具体实施方式所述的一种基于队列管理机制的固态硬盘并行访问方法包括以下步骤:
当文件系统请求到达时,判断此次请求是顺序请求还是随机请求,若为随机请求,则使用轮循并行访问方法进行响应,若为顺序请求,则进一步判断所有请求长度L;
若L≤M×N,N为并行通道数,M为NAND闪存每一块页数量,则使用轮循并行访问方法进行响应;若L>M×N,则进行L/(M×N)次的基于队列管理并行访问方法;剩余的L%(M×N)个请求使用轮循并行访问方法进行响应。
本实施方式中,M∈(0,256],N∈[8,32],L/(M×N)表示L除以M×N取整数,L%(M×N)表示L除以M×N取余数。
具体实施方式二、结合图3说明本具体实施方式,本具体实施方式与具体实施方式一所述的一种基于队列管理机制的固态硬盘并行访问方法的区别在于,步骤三中所述的基于队列管理并行访问方法包括以下步骤:
步骤一、采用队列管理器对请求队列进行管理,决定请求响应顺序;
步骤二、所有请求经过队列管理器进行管理后通过闪存转换层进行地址映射;
步骤三、将经过地址映射的请求队列发送至NAND闪存控制器,并通过NAND闪存控制器写入NAND闪存阵列中。
具体实施方式三、本实施方式所述的一种基于队列管理机制的固态硬盘并行访问装置包括:
用于接收文件系统请求的文件系统请求接收模块;
用于判断文件系统请求为顺序请求还是随机请求的文件系统请求判断模块,当文件系统请求为随机请求时,启动第一轮循并行访问执行模块,当文件系统请求为随机请求时,启动文件系统请求长度比较模块;
用于对文件请求执行轮循并行访问的第一轮循并行访问执行模块;
用于对文件系统请求长度L与M×N进行比较的文件系统请求长度比较模块,当L≤M×N时,启动第二轮循并行访问执行模块;当L>M×N时,启动基于队列管理并行访问执行模块;
用于对文件请求执行轮循并行访问的第二轮循并行访问执行模块;
用于对文件请求执行L/(M×N)次的基于队列管理并行访问方法的基于队列管理并行访问执行模块,启动第三轮循并行访问执行模块;
用于对基于队列管理并行访问执行模块中剩余的L%(M×N)个请求执行轮循并行访问的第三轮循并行访问执行模块。
具体实施方式四、本具体实施方式与具体实施方式三所述的一种基于队列管理机制的固态硬盘并行访问装置的区别在于,基于队列管理并行执行模块包括存储系统,所述存储系统包括:
用于对请求队列进行管理及决定请求响应顺序的队列管理模块;
用于对请求队列进行地址映射闪存转换模块;
用于将请求并行写入NAND闪存阵列中的请求分配管理模块。
目前常用的接口协议,如USB2.0,USB3.0,SATA II等,均支持多个请求的悬挂及乱序响应,即使用这些接口的存储设备可以同时接收到文件系统传递的多个请求,并且可以对这些请求进行乱序的响应,通过这种方法减少系统请求阻塞,提高存储系统I/O效率。
如图3所示,队列管理器对请求队列进行管理,决定请求响应顺序。假设所有并行通道数为N,每一块的页数为M,一次连续的请求LPN0~((M×N-1)),则对于第i通道的第j次请求,应该为LPN(M×N-1-i×N-j)。按照图2所示,M=N=4,若有写入请求LPN0~15,则在基于队列管理的并行访问方法下,队列管理器将请求数据写入顺序如图4所示。
所有请求经过队列管理器后,经过地址映射,最后通过请求分配管理器,再通过NAND闪存控制器写入到NAND闪存阵列中,请求分配管理器完成请求并行写入NAND闪存阵列过程,采用的是轮循的写入方式,即把所有请求依次写入所有并行通道中或依次从所有并行通道中读出,使用这种方式,对于图4所示的写入请求,这些请求在物理空间的分布如图5所示,从NAND闪存阵列来看,并行写入策略仍然采用轮循的方法,即将请求依次在所有的并行通道之间进行写入,因此,充分利用了所有通道的并行性,对固态硬盘I/O性能没有影响,但由于所有请求已经经过队列管理器将写入顺序按照逻辑空间进行重新排列,因此,最终写入数据在物理空间的分布与逻辑空间分布是一致的。
如图5所示,可以看到在垃圾相关的并行策略作用下,一个物理块中的逻辑页是连续的,因此,当出现连续更新操作时,擦除次数及有效页复制次数会显著减少。例如,同样更新LPN0~3,则在基于队列管理的并行策略下,只需要擦除一个物理空间,且不需要进行任何有效页的复制,因此,相对于仅仅采用了轮循并行策略的方式,固态硬盘的I/O性能大大提高。
Claims (3)
1.一种基于队列管理机制的固态硬盘并行访问方法,它包括以下步骤:
当文件系统请求到达时,判断此次请求是顺序请求还是随机请求,若为随机请求,则使用轮循并行访问方法进行响应,若为顺序请求,则进一步判断所有请求长度L;
若L≤M×N,N为并行通道数,M为NAND闪存每一块页数量,则使用轮循并行访问方法进行响应;
若L>M×N,则进行L/(M×N)次的基于队列管理并行访问方法,剩余的L%(M×N)个请求使用轮循并行访问方法进行响应;
M∈(0,256],N∈[8,32],L/(M×N)表示L除以M×N取整数,L%(M×N)表示L除以M×N取余数;
其特征在于,所述的基于队列管理并行访问方法为:
步骤一、采用队列管理器对请求队列进行管理,决定请求响应顺序;
步骤二、所有请求经过队列管理器进行管理后通过闪存转换层进行地址映射;
步骤三、将经过地址映射的请求队列发送至NAND闪存控制器,并通过NAND闪存控制器写入NAND闪存阵列中。
2.一种基于队列管理机制的固态硬盘并行访问装置,其特征在于,它包括:
用于接收文件系统请求的文件系统请求接收模块;
用于判断文件系统请求为顺序请求还是随机请求的文件系统请求判断模块,当文件系统请求为随机请求时,启动第一轮循并行访问执行模块,当文件系统请求为随机请求时,启动文件系统请求长度比较模块;
用于对文件请求执行轮循并行访问的第一轮循并行访问执行模块;
用于对文件系统请求长度L与M×N进行比较的文件系统请求长度比较模块,当L≤M×N时,启动第二轮循并行访问执行模块;当L>M×N时,启动基于队列管理并行访问执行模块;
用于对文件请求执行轮循并行访问的第二轮循并行访问执行模块;
用于对文件请求执行L/(M×N)次的基于队列管理并行访问方法的基于队列管理并行访问执行模块,启动第三轮循并行访问执行模块;
用于对基于队列管理并行访问执行模块中剩余的L%(M×N)个请求执行轮循并行访问的第三轮循并行访问执行模块;
M∈(0,256],N∈[8,32],L/(M×N)表示L除以M×N取整数,L%(M×N)表示L除以M×N取余数。
3.根据权利要求2所述的一种基于队列管理机制的固态硬盘并行访问装置,其特征在于,基于队列管理并行执行模块包括存储系统,所述存储系统包括:
用于对请求队列进行管理及决定请求响应顺序的队列管理模块;
用于对请求队列进行地址映射闪存转换模块;
用于将请求并行写入NAND闪存阵列中的请求分配管理模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410166092.0A CN103902475B (zh) | 2014-04-23 | 2014-04-23 | 一种基于队列管理机制的固态硬盘并行访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410166092.0A CN103902475B (zh) | 2014-04-23 | 2014-04-23 | 一种基于队列管理机制的固态硬盘并行访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902475A CN103902475A (zh) | 2014-07-02 |
CN103902475B true CN103902475B (zh) | 2017-01-25 |
Family
ID=50993809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410166092.0A Active CN103902475B (zh) | 2014-04-23 | 2014-04-23 | 一种基于队列管理机制的固态硬盘并行访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902475B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102320864B1 (ko) * | 2015-03-24 | 2021-11-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
CN107918522B (zh) * | 2016-10-11 | 2024-05-28 | 北京忆恒创源科技股份有限公司 | 固态存储设备及其功率控制方法 |
CN108108309A (zh) * | 2017-12-29 | 2018-06-01 | 苏州大学 | 涉及多nand闪存的并行访问方法、固态硬盘和计算机 |
CN108829355B (zh) * | 2018-06-28 | 2022-03-01 | 新华三技术有限公司 | 一种垃圾回收方法及装置 |
CN110007876A (zh) * | 2019-04-15 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种固态硬盘数据存储方法、装置、设备及介质 |
CN110515859B (zh) * | 2019-07-09 | 2021-07-20 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
CN111897766B (zh) * | 2020-06-19 | 2023-05-30 | 西安微电子技术研究所 | 一种星载固态存储器及边记边擦的数据处理方法 |
CN112835534B (zh) * | 2021-02-26 | 2022-08-02 | 上海交通大学 | 一种基于存储阵列数据访问的垃圾回收优化方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398745A (zh) * | 2007-09-29 | 2009-04-01 | 群联电子股份有限公司 | 并行数据存取架构的固态盘存储系统与固态盘控制器 |
CN102521160A (zh) * | 2011-12-22 | 2012-06-27 | 上海交通大学 | 写缓冲检测器、写入数据的寻址方法、并行通道写入方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090013148A1 (en) * | 2007-07-03 | 2009-01-08 | Micron Technology, Inc. | Block addressing for parallel memory arrays |
-
2014
- 2014-04-23 CN CN201410166092.0A patent/CN103902475B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398745A (zh) * | 2007-09-29 | 2009-04-01 | 群联电子股份有限公司 | 并行数据存取架构的固态盘存储系统与固态盘控制器 |
CN102521160A (zh) * | 2011-12-22 | 2012-06-27 | 上海交通大学 | 写缓冲检测器、写入数据的寻址方法、并行通道写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103902475A (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103902475B (zh) | 一种基于队列管理机制的固态硬盘并行访问方法及装置 | |
KR101629615B1 (ko) | 저전력 저지연 고용량 스토리지 클래스 메모리용 장치 및 방법 | |
US10761731B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
CN104461393B (zh) | 一种闪存存储器的混合映射方法 | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
US8769190B1 (en) | System and method for reducing contentions in solid-state memory access | |
EP2513798B1 (en) | Reducing access contention in flash-based memory systems | |
CN103049397B (zh) | 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 | |
CN104866428B (zh) | 数据存取方法和数据存取装置 | |
US8392670B2 (en) | Performance management of access to flash memory in a storage device | |
US9507719B2 (en) | Garbage collection in hybrid memory system | |
CN106326133A (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
US10929286B2 (en) | Arbitrated management of a shared non-volatile memory resource | |
CN105653202A (zh) | 一种用于逻辑存储管理的多级方案 | |
CN106528438A (zh) | 一种固态存储设备的分段式垃圾回收方法 | |
KR20130096881A (ko) | 플래시 메모리 장치 | |
CN103049216B (zh) | 固态硬盘及其数据处理方法、系统 | |
CN102279712A (zh) | 一种适用于互联网存储系统的存储控制方法、系统和装置 | |
CN110347613B (zh) | 多租户固态盘中实现raid的方法、控制器及多租户固态盘 | |
WO2018024214A1 (zh) | Io流调节方法与装置 | |
CN116457885A (zh) | 一种数据处理方法、装置及系统 | |
CN109240939A (zh) | 一种快速处理固态硬盘trim的方法 | |
CN112130749A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN101866320B (zh) | 数据管理方法及使用此方法的闪存储存系统与控制器 | |
CN103942148A (zh) | 非易失性存储器的损耗均衡系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |