CN108762674A - 提升ssd响应延迟的方法及装置 - Google Patents

提升ssd响应延迟的方法及装置 Download PDF

Info

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
Application number
CN201810508551.7A
Other languages
English (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.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
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 Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201810508551.7A priority Critical patent/CN108762674A/zh
Publication of CN108762674A publication Critical patent/CN108762674A/zh
Pending legal-status Critical Current

Links

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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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]

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响应延迟的方法及装置。
背景技术
现有的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。
CN201810508551.7A 2018-05-24 2018-05-24 提升ssd响应延迟的方法及装置 Pending CN108762674A (zh)

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)

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

* Cited by examiner, † Cited by third party
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 忆正科技(武汉)有限公司 作为系统盘的固态硬盘缩短上电时间的方法及系统

Patent Citations (5)

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

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