CN108762674A - 提升ssd响应延迟的方法及装置 - Google Patents
提升ssd响应延迟的方法及装置 Download PDFInfo
- Publication number
- CN108762674A CN108762674A CN201810508551.7A CN201810508551A CN108762674A CN 108762674 A CN108762674 A CN 108762674A CN 201810508551 A CN201810508551 A CN 201810508551A CN 108762674 A CN108762674 A CN 108762674A
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- sharding
- read
- sharding unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种提升SSD响应延迟的方法及装置,包括以下步骤,发起写入4KB数据请求;将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上;更新分片单元对应的物理地址到映射表;发起读取4KB数据请求;根据映射表中的物理地址从对应的NAND DIE并发读取数据。本方案采用可变的分片策略,将4KB数据切分成多份,并写入到不同NAND DIE上,在主机读取对应4KB数据时,从对应的NAND DIE并发传输数据,降低了数据传输时间,进而降低了SSD数据读取的命令响应延迟时间,提高数据传输效率。
Description
技术领域
本发明涉及到SSD读写领域,特别是涉及到一种提升SSD响应延迟的方法及装置。
背景技术
现有的SSD应用系统中,一般采用4KB映射。对于主机写入的数据,SSD内部切分成4KB单元的数据块并分配物理地址,并在内存中维护一张映射表,跟踪逻辑到物理的转换关系。
基于此因素,4KB对齐的用户数据必然落在唯一的物理块上。当主机访问此数据时,需要依次触发NAND的读(tR),NAND的数据传输(tXfer)。
传统NAND的读(tR)大约为50us,数据传输(tXfer)大约8.8us,此情形下,系统响应延迟主要由tR决定。随着企业级应用的推广,某些NAND的tR会很短,例如东芝的XL Flash,其tR只有8us左右,故此时串行的传输方式将极大地影响读命令响应延迟。
发明内容
为了解决上述现有技术的缺陷,本发明的目的是提供一种提升SSD响应延迟的方法及装置,用于降低SSD响应延迟,提高数据传输效率。
为达到上述目的,本发明的技术方案是:
提出一种提升SSD响应延迟的方法,包括以下步骤,
发起写入4KB数据请求;
将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上;
更新分片单元对应的物理地址到映射表;
发起读取4KB数据请求;
根据映射表中的物理地址从对应的NAND DIE并发读取数据。
进一步地,所述根据映射表中的物理地址从对应的NAND DIE并发读取数据步骤,包括,
通过查找映射表,获取读取数据对应的物理地址;
发起读操作,直到内部读操作完成;
将各个分片单元的数据并发传输到读写缓冲区,返回主机。
进一步地,所述将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上步骤,包括,
使用读写缓冲区存放4KB数据;
将4KB数据按照自定义大小进行切分成分片单元;
连续的扇区数据关联到同一分片单元中;
为每个分片单元分配物理地址,保证相邻的分片单元落在物理独立的NAND DIE上。
进一步地,所述将4KB数据按照自定义大小进行切分成分片单元步骤,包括,
根据使用场景选择分片单元的大小;
根据纠错单元选择分片单元的大小。
进一步地,所述分片单元的大小可以为512B、1024B或2048B。
本发明还公开了一种提升SSD响应延迟的装置,包括,
写入发起单元,用于发起写入4KB数据请求;
切分写入单元,用于将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上;
地址更新单元,用于更新分片单元对应的物理地址到映射表;
读取发起单元,用于发起读取4KB数据请求;
并发读取单元,用于根据映射表中的物理地址从对应的NAND DIE并发读取数据。
进一步地,所述并发读取单元包括:
地址获取模块,用于通过查找映射表,获取读取数据对应的物理地址;
内部读取模块,用于发起读操作,直到内部读操作完成;
并发传输模块,用于将各个分片单元的数据并发传输到读写缓冲区,返回主机。
进一步地,所述切分写入单元包括:
存放模块,用于使用读写缓冲区存放4KB数据;
切分模块,用于将4KB数据按照自定义大小进行切分成分片单元;
关联模块,用于连续的扇区数据关联到同一分片单元中;
分配模块,用于为每个分片单元分配物理地址,保证相邻的分片单元落在物理独立的NAND DIE上。
进一步地,所述切分模块用于根据使用场景选择分片单元的大小,根据纠错单元选择分片单元的大小。
进一步地,所述分片单元的大小可以为512B、1024B或2048B。
本发明的有益效果是:采用可变的分片策略,将4KB数据切分成多份,并写入到不同NAND DIE上,在主机读取对应4KB数据时,从对应的NANDDIE并发传输数据,降低了数据传输时间,进而降低了SSD数据读取的命令响应延迟时间,提高数据传输效率。
附图说明
图1为本发明一种提升SSD响应延迟的方法的流程图;
图2为本发明一种4KB数据写入的方法流程图;
图3为本发明一种选择分片单元的大小的方法流程图;
图4为本发明一种并发读取分片单元的方法流程图;
图5为本发明一实施例一种提升SSD响应延迟的方法数据写入的原理图;
图6为本发明一实施例一种提升SSD响应延迟的方法数据读取的原理图;
图7为本发明一实施例响应延迟计算原理图;
图8为本发明一种提升SSD响应延迟的装置的结构框图;
图9为本发明一种并发读取单元的结构框图;
图10为本发明一种切分写入单元的结构框图。
具体实施方式
为阐述本发明的思想及目的,下面将结合附图和具体实施例对本发明做进一步的说明。
LPA:分片单元。
LBA:扇区。
PPA:物理地址。
参照图1-图4,本发明一具体实施例提出一种提升SSD响应延迟的方法,具体包括以下步骤,
S10、发起写入4KB数据请求。
S20、将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上。
S30、更新分片单元对应的物理地址到映射表。
S40、发起读取4KB数据请求。
S50、根据映射表中的物理地址从对应的NAND DIE并发读取数据。
对于步骤S10,数据写入SSD的过程为:主机提交写入4KB数据命令,调用对应的数据做写入准备,将准备写入的4KB数据先存放在缓冲区,后续根据分配好的物理地址,将4KB数据写入对应的NAND DIE中。
对于步骤S20,将4KB数据进行切分得到多份相同大小的分片单元,将不同的分片单元写入到不同的NAND DIE中,后续主机访问该4KB数据时,触发NAND的读(tR),并发读取不同NAND DIE上的分片单元,减少4KB数据的整体读取时间。具体的,切分后的分片单元的大小可以为512B、1024B或2048B,同时分片单元的大小越小,最后传输(tXfer)时间就越短,性能收益更高。例如,当分片单元的大小为2048B时,传输一完整4KB数据的时间为4.4us;当分片单元的大小为1024B时,传输一完整4KB数据的时间为2.2us;当分片单元的大小为512B时,传输一完整4KB数据的时间为1.1us,分片单元的大小越小,完成传输(tXfer)的时间越短,数据传输整个过程的效率更高。
参考图2,步骤S20,包括以下步骤:
S21、使用读写缓冲区存放4KB数据。
S22、将4KB数据按照自定义大小进行切分成分片单元;。
S23、连续的扇区数据关联到同一分片单元中。
S24、为每个分片单元分配物理地址,保证相邻的分片单元落在物理独立的NANDDIE上。
对于步骤S21,在写入4KB数据时,先将4KB数据写入到读写缓冲区,在读写缓冲区完成后续的切分操作,将4KB数据按照需要进行切分成更小的分片单元。
对于步骤S22,根据需要将4KB数据进行均匀切分得到相同大小的分片单元,即得到的分片单元大小为4KB/N,其中N为大于0的自然数。将4KB数据进行切分得到多份相同大小的分片单元,并将不同的分片单元写入到不同的NAND DIE中,后续主机访问该4KB数据时,触发NAND的读(tR),并发读取不同NAND DIE上的分片单元,减少4KB数据的整体读取时间。
具体的,切分后的分片单元的大小可以为512B、1024B或2048B,同时分片单元的大小越小,最后传输(tXfer)时间就越短,性能收益更高。例如,当分片单元的大小为2048B时,传输一完整4KB数据的时间为4.4us;当分片单元的大小为1024B时,传输一完整4KB数据的时间为2.2us;当分片单元的大小为512B时,传输一完整4KB数据的时间为1.1us,分片单元的大小越小,完成传输(tXfer的时间越短,数据传输整个过程的效率更高。
参考图3,步骤S22包括以下步骤:
S221、根据使用场景选择分片单元的大小。
S222、根据纠错单元选择分片单元的大小。
对于步骤S221,由于分片单元(LPA)变小,而需要为每个分片单元保存一个存放数据的物理地址,所以切分越小,DRAM要求越大,需要在收益和成本之间折衷,根据传输的数据大小,数据类型,以及数据的应用要求等具体化场景,选定分片单元的大小。
对于步骤S222,NAND对于纠错能力有要求,例如1KB(纠错单元)纠200bits或者等效的纠错能力,如512B(纠错单元)纠112bits等.不同的控制器支持的最小纠错单元不一,对于所切分的分片单元必需是能够独立纠错的,所以切分后的分片单元大小必需是控制器最小纠错单元。举例说明,最小纠错单元为512B时,分片单元的大小只能为N*512B,N为大于0的自然数,具体的,不同的控制的最小纠错单元也可以为256B、128B或其他数值。
对于步骤S23,连续的扇区(LBA)数据关联到同一分片单元中,可以保证扇区数据在读和写时作为一个完整的客体进行,保证数据的完整和安全。
对于步骤S24,为每个分片单元分配对应的物理地址,保证相邻的分片单元落在物理独立的NAND DIE上。这样后续主机访问该4KB数据时,触发NAND的读(tR),通过并发传输不同NAND DIE上的分片单元,相当于同时只需要使用传输单个分片单元(大小4KB/N)的时间就可传输全部的4KB数据,减少4KB数据的整体传输时间,提高SSD数据传输效率。
对于步骤S30,完成写入后,将分片单元的物理地址更新到映射表,便于后续主机读取数据时,根据映射表找到对应的4KB数据(分片单元),进行数据读取。
对于步骤S40,数据读取流程,主机提交读取4KB数据命令,通过映射表查找对应4KB数据的物理地址,根据物理地址从对应的NAND DIE读取所需的4KB数据并存放在读写缓冲区,并返回主机。
对于步骤S50,现有的SSD应用系统中,一般采用4KB映射。对于主机写入的数据,SSD内部切分成4KB数据块并分配物理地址,并在内存中维护一张映射表,跟踪逻辑到物理的转换关系。基于此因素,4KB对齐的用户数据必然落在唯一的物理块上。当主机访问此数据时,需要依次触发NAND的读(tR),NAND的数据传输(tXfer)。传统的NAND的tR大约为50us,,tXfer大约8.8us,此情形下,系统响应延迟主要由tR决定。随着企业级应用的推广,某些NAND的tR会很短,例如东芝的XL Flash,其tR只有8us左右,此时串行的传输方式将极大地影响读命令响应延迟。
而先将4KB数据切分成多个相同大小的分片单元再写入到不同的NAND DIE中,在读取4KB数据时根据映射表内的物理地址,并发读取不同NAND DIE中的分片单元,从而降低4KB数据的整体传输(tXfer)的时间,提高了4KB数据传输的效率。
参照图4,步骤S50,包括:
S51、通过查找映射表,获取读取数据对应的物理地址。
S52、发起读操作,直到内部读操作完成。
S53、将各个分片单元的数据并发传输到读写缓冲区,返回主机。
对于步骤S51,在步骤S30中,更新分片单元对应的物理地址到映射表,在后续读取分片单元时,先根据映射表获取分片单元的物理地址,后续根据物理地址进行数据读取。
对于步骤S52,NAND控制器发起NAND读操作,并等待NAND内部读(tR)操作完成,进而发起NAND数据传输(tXfer)。
对于步骤S53,将要读取的分片单元并发传输,并存放在读写缓冲区,后续返回给主机。存储在不同NAND DIE上的分片单元大小为4KB/N,其中N为大于0的自然数。并发读取4KB数据时,相当于只需要传输4KB数据本身1/N的大小的分片单元,能够有效的减少读取4KB数据的传输(tXfer)时间,,降低SSD数据传输时间,进而降低了命令响应延迟。
本方案采用可变的分片策略,将4KB数据切分成多份,并写入到不同NAND DIE上,在主机读取对应4KB数据时,从对应的NAND DIE并发传输数据,降低了数据传输时间,进而降低了SSD数据读取的命令响应延迟时间,提高数据传输效率。
参考图5-7,为本发明一种提升SSD响应延迟的方法的具体应用实施例。
如图5所示,为数据写入的原理图。为便于说明,此处以4CH(对应4个独立的NANDDIE,CH0-CH4)进行说明;每个编程单元物理页的大小为8KB;切分后的分片单元大小以2KB举例。
A、先使用读写缓冲区存放主机写入的数据。
B、再将命令缓冲区的4KB数据按自定义大小进行切分成相同大小的分片模块。
C、连续的LBA数据被关联到一个分片单元(LPA)中:如LBA 0-3对应LPA 0,LBA 4-7对应LPA1。
D、为每个2KB LPA分片单元分配物理地址,且保证相邻的LPA落在物理独立的DIE上。
E、更新物理地址映射表:LPA->PPA。
图示中的0/1/3/…为从属于同一命令的逻辑连续的分片单元在物理NAND上的分布。
如图6所示,为数据读取的原理图。为便于说明,此处以4CH(对应4个独立的NANDDIE,CH0-CH4)进行说明;每个编程单元物理页的大小为8KB;切分后的分片单元大小以2KB举例。
F、主机读取LBA 0–7,通过数据写入流程可知,写入数据分别关联到LPA 0/1。
G、通过查找映射表,找到对应的物理地址,具体为DIE 0Block 0Page0的第一个2KB以及DIE 1Block 0Page 0的第一个2KB。
H、SSD NAND控制器对CH 0/1发起NAND读操作,直到NAND内部读完成(tR)。
I、完成NAND内部读以后,由于分属于不同通道,并行进行各自2KB的数据传输(tXfer)
J、完成数据传输(tXfer)后,所要读取的数据已经存放到读写缓冲区中,可返回给主机。
如图7所示,在上述过程中,由于将4KB数据分配到物理独立的通道中,故而可以复用tR以及tXfer时间。以上述为例,该4KB数据由于NAND数据加载导致的延迟为:8us+8.8us/2=12.4us.相比传统的16.8us有很大的提升。分片单元的大小越小,由于NAND数据加载导致的延迟就越少。由如上的规则可知,可进一步地调整分片单元大小,以便发起更多的通道并发度,从而降低传输时间。
参考图8-10,本发明还公开了一种提升SSD响应延迟的装置,包括,
写入发起单元10,用于发起写入4KB数据请求;
切分写入单元20,用于将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上;
地址更新单元30,用于更新分片单元对应的物理地址到映射表;
读取发起单元40,用于发起读取4KB数据请求;
并发读取单元50,用于根据映射表中的物理地址从对应的NAND DIE并发读取数据。
对于写入发起单元10,数据写入SSD的过程为:主机提交写入4KB数据命令,调用对应的数据做写入准备,将准备写入的4KB数据先存放在缓冲区,后续根据分配好的物理地址,将4KB数据写入对应的NAND DIE中。
对于切分写入单元20,将4KB数据进行切分得到多份相同大小的分片单元,将不同的分片单元写入到不同的NAND DIE中,后续主机访问该4KB数据时,触发NAND的读(tR),并发读取不同NAND DIE上的分片单元,减少4KB数据的整体读取时间。具体的,切分后的分片单元的大小可以为512B、1024B或2048B,同时分片单元的大小越小,最后传输(tXfer)时间就越短,性能收益更高。例如,当分片单元的大小为2048B时,传输一完整4KB数据的时间为4.4us;当分片单元的大小为1024B时,传输一完整4KB数据的时间为2.2us;当分片单元的大小为512B时,传输一完整4KB数据的时间为1.1us,分片单元的大小越小,完成传输(tXfer)的时间越短,数据传输整个过程的效率更高。
参考图9,切分写入单元20包括以下模块:
存放模块21,用于使用读写缓冲区存放4KB数据;
切分模块22,用于将4KB数据按照自定义大小进行切分成分片单元;
关联模块23,用于连续的扇区数据关联到同一分片单元中;
分配模块24,用于为每个分片单元分配物理地址,保证相邻的分片单元落在物理独立的NAND DIE上。
对于存放模块21,在写入4KB数据时,先将4KB数据写入到读写缓冲区,在读写缓冲区完成后续的切分操作,将4KB数据按照需要进行切分成更小的分片单元。
对于切分模块22,根据需要将4KB数据进行均匀切分得到相同大小的分片单元,即得到的分片单元大小为4KB/N,其中N为大于0的自然数。将4KB数据进行切分得到多份相同大小的分片单元,并将不同的分片单元写入到不同的NAND DIE中,后续主机访问该4KB数据时,触发NAND的读(tR),并发读取不同NAND DIE上的分片单元,减少4KB数据的整体读取时间。
具体的,切分后的分片单元的大小可以为512B、1024B或2048B,同时分片单元的大小越小,最后传输(tXfer)时间就越短,性能收益更高。例如,当分片单元的大小为2048B时,传输一完整4KB数据的时间为4.4us;当分片单元的大小为1024B时,传输一完整4KB数据的时间为2.2us;当分片单元的大小为512B时,传输一完整4KB数据的时间为1.1us,分片单元的大小越小,完成传输(tXfer)的时间越短,数据传输整个过程的效率更高。
切分模块22用于根据使用场景选择分片单元的大小,根据纠错单元选择分片单元的大小。
由于分片单元(LPA)变小,而需要为每个分片单元保存一个存放数据的物理地址,所以切分越小,DRAM要求越大,需要在收益和成本之间折衷,根据传输的数据大小,数据类型,以及数据的应用要求等具体化场景,选定分片单元的大小。
NAND对于纠错能力有要求,例如1KB(纠错单元)纠200bits或者等效的纠错能力,如512B(纠错单元)纠112bits等.不同的控制器支持的最小纠错单元不一,对于所切分的分片单元必需是能够独立纠错的,所以切分后的分片单元大小必需是控制器最小纠错单元。举例说明,最小纠错单元为512B时,分片单元的大小只能为N*512B,N为大于0的自然数,具体的,不同的控制的最小纠错单元也可以为256B、128B或其他数值。
对于关联模块23,连续的扇区(LBA)数据关联到同一分片单元中,可以保证扇区数据在读和写时作为一个整体进行,保证数据的完整和安全。
对于分配模块24,为每个分片单元分配对应的物理地址,保证相邻的分片单元落在物理独立的NAND DIE上。这样后续主机访问该4KB数据时,触发NAND的读(tR),通过并发传输不同NAND DIE上的分片单元,相当于同时只需要使用传输单个分片单元(大小4KB/N)的时间就可传输全部的4KB数据,减少4KB数据的整体传输时间,提高SSD数据传输效率。
对于地址更新单元30,完成写入后,将分片单元的物理地址更新到映射表,便于后续主机读取数据时,根据映射表找到对应的4KB数据(分片单元),进行数据读取。
对于读取发起单元40,数据读取流程,主机提交读取4KB数据命令,通过映射表查找对应4KB数据的物理地址,根据物流地址从对应的NANDDIE读取所需的4KB数据并存放在读写缓冲区,并返回主机。
对于并发读取单元50,现有的SSD应用系统中,一般采用4KB映射。对于主机写入的数据,SSD内部切分成4KB数据块并分配物理地址,并在内存中维护一张映射表,跟踪逻辑到物理的转换关系。基于此因素,4KB对齐的用户数据必然落在唯一的物理块上。当主机访问此数据时,需要依次触发NAND的读(tR),NAND的数据传输(tXfer)。传统的NAND的tR大约为50us,tXfer大约8.8us,此情形下,系统响应延迟主要由tR决定。随着企业级应用的推广,某些NAND的tR会很短,例如东芝的XL Flash,其tR只有8us左右,此时串行的传输方式将极大地影响读命令响应延迟。
而先将4KB数据切分成多个相同大小的分片单元再写入到不同的NAND DIE中,在读取4KB数据时根据映射表内的物理地址,并发读取不同NAND DIE中的分片单元,从而降低4KB数据的整体传输(tXfer)的时间,提高了4KB数据传输的效率。
参考图10,并发读取单元50包括:
地址获取模块51,用于通过查找映射表,获取读取数据对应的物理地址;
内部读取模块52,用于发起读操作,直到内部读操作完成;
并发传输模块53,用于将各个分片单元的数据并发传输到读写缓冲区,返回主机。
对于地址获取模块51,更新分片单元对应的物理地址到映射表,在后续读取分片单元时,先根据映射表获取分片单元的物理地址,后续根据物理地址进行数据读取。
对于内部读取模块52,NAND控制器发起NAND读操作,并等待NAND内部读(tR)操作完成,进而发起NAND数据传输(tXfer)。
对于并发传输模块53,将要读取的分片单元并发传输,并存放在读写缓冲区,后续返回给主机。存储在不同NAND DIE上的分片单元大小为4KB/N,其中N为大于0的自然数。并发传输4KB数据时,相当于只需要传输4KB数据本身1/N的大小的分片单元,能够有效的减少4KB数据的传输(tXfer)时间,降低SSD数据传输时间,进而降低了命令响应延迟。
本方案采用可变的分片策略,将4KB数据切分成多份,并写入到不同NAND DIE上,在主机读取对应4KB数据时,从对应的NAND DIE并发传输数据,降低了数据传输时间,进而降低了SSD数据读取的命令响应延迟时间,提高数据传输效率。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种提升SSD响应延迟的方法,其特征在于,包括以下步骤,
发起写入4KB数据请求;
将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上;
更新分片单元对应的物理地址到映射表;
发起读取4KB数据请求;
根据映射表中的物理地址从对应的NAND DIE并发读取数据。
2.如权利要求1所述的提升SSD响应延迟的方法,其特征在于,所述根据映射表中的物理地址从对应的NAND DIE并发读取数据步骤,包括,
通过查找映射表,获取读取数据对应的物理地址;
发起读操作,直到内部读操作完成;
将各个分片单元的数据并发传输到读写缓冲区,返回主机。
3.如权利要求1所述的提升SSD响应延迟的方法,其特征在于,所述将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上步骤,包括,
使用读写缓冲区存放4KB数据;
将4KB数据按照自定义大小进行切分成分片单元;
连续的扇区数据关联到同一分片单元中;
为每个分片单元分配物理地址,保证相邻的分片单元落在物理独立的NAND DIE上。
4.如权利要求3所述的提升SSD响应延迟的方法,其特征在于,所述将4KB数据按照自定义大小进行切分成分片单元步骤,包括,
根据使用场景选择分片单元的大小;
根据纠错单元选择分片单元的大小。
5.如权利要求4所述的提升SSD响应延迟的方法,其特征在于,所述分片单元的大小可以为512B、1024B或2048B。
6.一种提升SSD响应延迟的装置,其特征在于,包括,
写入发起单元,用于发起写入4KB数据请求;
切分写入单元,用于将4KB数据切分成多个分片单元,并写入到不同的NAND DIE上;
地址更新单元,用于更新分片单元对应的物理地址到映射表;
读取发起单元,用于发起读取4KB数据请求;
并发读取单元,用于根据映射表中的物理地址从对应的NAND DIE并发读取数据。
7.如权利要求6所述的提升SSD响应延迟的装置,其特征在于,所述并发读取单元包括:
地址获取模块,用于通过查找映射表,获取读取数据对应的物理地址;
内部读取模块,用于发起读操作,直到内部读操作完成;
并发传输模块,用于将各个分片单元的数据并发传输到读写缓冲区,返回主机。
8.如权利要求6所述的提升SSD响应延迟的装置,其特征在于,所述切分写入单元包括:
存放模块,用于使用读写缓冲区存放4KB数据;
切分模块,用于将4KB数据按照自定义大小进行切分成分片单元;
关联模块,用于连续的扇区数据关联到同一分片单元中;
分配模块,用于为每个分片单元分配物理地址,保证相邻的分片单元落在物理独立的NAND DIE上。
9.如权利要求8所述的提升SSD响应延迟的装置,其特征在于,所述切分模块用于根据使用场景选择分片单元的大小,根据纠错单元选择分片单元的大小。
10.如权利要求9所述的提升SSD响应延迟的装置,其特征在于,所述分片单元的大小可以为512B、1024B或2048B。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810508551.7A CN108762674A (zh) | 2018-05-24 | 2018-05-24 | 提升ssd响应延迟的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810508551.7A CN108762674A (zh) | 2018-05-24 | 2018-05-24 | 提升ssd响应延迟的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108762674A true CN108762674A (zh) | 2018-11-06 |
Family
ID=64005582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810508551.7A Pending CN108762674A (zh) | 2018-05-24 | 2018-05-24 | 提升ssd响应延迟的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108762674A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597577A (zh) * | 2018-12-03 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种处理nvme协议读写命令的方法、系统及相关装置 |
CN110109845A (zh) * | 2019-04-26 | 2019-08-09 | 深圳忆联信息系统有限公司 | 缓存数据管理方法、装置、计算机设备及存储介质 |
CN110134333A (zh) * | 2019-05-07 | 2019-08-16 | 深圳忆联信息系统有限公司 | 一种重排写入数据流提升ssd读拼接率的方法及其系统 |
CN110427156A (zh) * | 2019-07-16 | 2019-11-08 | 华中科技大学 | 一种基于分片的mbr的并行读方法 |
CN111782146A (zh) * | 2020-06-30 | 2020-10-16 | 深圳忆联信息系统有限公司 | 实现写缓存的方法、装置、计算机设备及存储介质 |
CN116795735A (zh) * | 2023-08-23 | 2023-09-22 | 四川云海芯科微电子科技有限公司 | 固态硬盘空间分配方法、装置、介质及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN103823634A (zh) * | 2012-11-16 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 一种支持无随机写模式的数据处理方法及系统 |
US20150220278A1 (en) * | 2014-02-05 | 2015-08-06 | Apple Inc. | Dynamic io operation timeout assignment for a solid state drive |
CN107273304A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘顺序读性能的方法及固态硬盘 |
CN107656875A (zh) * | 2017-09-15 | 2018-02-02 | 忆正科技(武汉)有限公司 | 作为系统盘的固态硬盘缩短上电时间的方法及系统 |
-
2018
- 2018-05-24 CN CN201810508551.7A patent/CN108762674A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN103823634A (zh) * | 2012-11-16 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 一种支持无随机写模式的数据处理方法及系统 |
US20150220278A1 (en) * | 2014-02-05 | 2015-08-06 | Apple Inc. | Dynamic io operation timeout assignment for a solid state drive |
CN107273304A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘顺序读性能的方法及固态硬盘 |
CN107656875A (zh) * | 2017-09-15 | 2018-02-02 | 忆正科技(武汉)有限公司 | 作为系统盘的固态硬盘缩短上电时间的方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597577A (zh) * | 2018-12-03 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种处理nvme协议读写命令的方法、系统及相关装置 |
CN110109845A (zh) * | 2019-04-26 | 2019-08-09 | 深圳忆联信息系统有限公司 | 缓存数据管理方法、装置、计算机设备及存储介质 |
CN110109845B (zh) * | 2019-04-26 | 2021-03-05 | 深圳忆联信息系统有限公司 | 缓存数据管理方法、装置、计算机设备及存储介质 |
CN110134333A (zh) * | 2019-05-07 | 2019-08-16 | 深圳忆联信息系统有限公司 | 一种重排写入数据流提升ssd读拼接率的方法及其系统 |
CN110427156A (zh) * | 2019-07-16 | 2019-11-08 | 华中科技大学 | 一种基于分片的mbr的并行读方法 |
CN110427156B (zh) * | 2019-07-16 | 2020-09-08 | 华中科技大学 | 一种基于分片的mbr的并行读方法 |
CN111782146A (zh) * | 2020-06-30 | 2020-10-16 | 深圳忆联信息系统有限公司 | 实现写缓存的方法、装置、计算机设备及存储介质 |
CN111782146B (zh) * | 2020-06-30 | 2023-10-13 | 深圳忆联信息系统有限公司 | 实现写缓存的方法、装置、计算机设备及存储介质 |
CN116795735A (zh) * | 2023-08-23 | 2023-09-22 | 四川云海芯科微电子科技有限公司 | 固态硬盘空间分配方法、装置、介质及系统 |
CN116795735B (zh) * | 2023-08-23 | 2023-11-03 | 四川云海芯科微电子科技有限公司 | 固态硬盘空间分配方法、装置、介质及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108762674A (zh) | 提升ssd响应延迟的方法及装置 | |
CN103902467B (zh) | 压缩内存访问控制方法、装置及系统 | |
CN100593217C (zh) | 闪速存储器控制装置、存储器管理方法、及存储器芯片 | |
CN104583977B (zh) | 主机辅助的存储块的压缩 | |
US9141549B2 (en) | Memory system with read and write caches and method of controlling memory system with read and write caches | |
US9582204B2 (en) | Speculative prefetching of data stored in flash memory | |
CN102855193B (zh) | 非易失性存储系统中未使用的逻辑地址的挂载时去映射 | |
US11301387B2 (en) | Memory system configured with a synthesized logical block into which a plurality of data units forming an error correction frame are written | |
CN109725847A (zh) | 存储器系统及控制方法 | |
US20160253266A1 (en) | Data storage device and operating method thereof | |
JP6408712B2 (ja) | メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステム | |
CN112882650B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US10613765B2 (en) | Storage device, method for operating the same, and storage system including storage devices | |
US8914571B2 (en) | Scheduler for memory | |
TWI703566B (zh) | 快閃記憶體控制器及相關的存取方法及電子裝置 | |
CN110297606A (zh) | 基于固态硬盘的坏块管理方法、装置和计算机设备 | |
CN103530349A (zh) | 一种缓存更新方法及设备 | |
CN109901791A (zh) | 信息处理装置以及信息处理装置的执行方法 | |
CN112882649B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN104035903A (zh) | 一种基于可重构技术的二维数据访问动态自适应方法 | |
TW202011411A (zh) | 快閃記憶體控制器及相關的存取方法及電子裝置 | |
CN116795735B (zh) | 固态硬盘空间分配方法、装置、介质及系统 | |
CN110502457B (zh) | 一种元数据存储方法及装置 | |
TW201908958A (zh) | 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器 | |
CN111651380B (zh) | 一种基于描述符表的参数加载方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |