CN109271107A - 一种提升固态硬盘顺序读性能的方法 - Google Patents

一种提升固态硬盘顺序读性能的方法 Download PDF

Info

Publication number
CN109271107A
CN109271107A CN201811017961.8A CN201811017961A CN109271107A CN 109271107 A CN109271107 A CN 109271107A CN 201811017961 A CN201811017961 A CN 201811017961A CN 109271107 A CN109271107 A CN 109271107A
Authority
CN
China
Prior art keywords
concatenation unit
read command
sequence
added
hard disk
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
CN201811017961.8A
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.)
Suzhou Focus Information Technology Co Ltd
Original Assignee
Suzhou Focus Information Technology 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 Suzhou Focus Information Technology Co Ltd filed Critical Suzhou Focus Information Technology Co Ltd
Priority to CN201811017961.8A priority Critical patent/CN109271107A/zh
Priority to LU101773A priority patent/LU101773B1/en
Priority to PCT/CN2018/116814 priority patent/WO2020042388A1/zh
Publication of CN109271107A publication Critical patent/CN109271107A/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
    • 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/0614Improving the reliability of storage systems
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种提升固态硬盘顺序读性能的方法,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。所述的提升固态硬盘顺序读性能的方法,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。实现多个命令并行的读取操作,有效地提升了固态硬盘的读性能。

Description

一种提升固态硬盘顺序读性能的方法
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提升固态硬盘顺序读性能的方法。
背景技术
SSD(Solid State Drives,固态硬盘)控制器是连接用户主机与存储颗粒(例如:NAND闪存)的设备,SSD控制器的一端连接主机,另一端连接存储颗粒,在连接主机的一端设有符合主机接口协议的主机接口协议模块,而在连接存储颗粒的一端设有符合存储颗粒接口协议的存储颗粒接口协议模块。因为两种接口协议模块之间的数据传输存在速
传统的页映射对每个逻辑页(常见为4KB大小)进行逻辑地址到物理地址的映射管理。主机写命令下发后,会根据写命令说描述的数据大小进行4KB大小的切割,分散成若干个4KB大小的数据页,这些数据页依次顺序写入NAND flash中,页映射表记录每个数据页被写入的物理地址,形成逻辑地址到物理地址的映射关系。该映射管理方法使得映射表的大小变得很大,需要较大的片外。
发明内容
针对以上缺陷,本发明目的是如何提高顺序读可并行操作的概率,整体上提高固体硬盘的性能。
为了解决以上问题本发明提出了一种提升固态硬盘顺序读性能的方法, 其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定间隔内的命令是否属于顺序读命令,如果是则将当前的顺序读请求加入拼接单元,将读命令按照写入的规则进行拼接,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。
所述的固态硬盘提升顺序读性能的方法,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。
所述的固态硬盘提升顺序读性能的方法,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。
一种固态硬盘,其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定间隔内的命令是否属于顺序读命令,如果是则将当前的顺序读请求加入拼接单元,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。
所述的固态硬盘,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。
所述的固态硬盘,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。
本发明的有益效果是:简单的根据读命令的逻辑地址是否连续判定是否为顺序读命令,通过增加的拼接单元,将读命令按照写入的规则进行拼接,实现多个命令并行的读取操作,有效地提升了顺序读性能。
附图说明
图1是连续LPA的写入地址分配规则示意图;
图2是任务驱动时的执行流程图;
图3是超时机制触发的执行流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实现以前文所述的技术要点的顺序展开。
顺序读场景中,读请求的逻辑地址LPA是连续的,且读请求的量级比较大,被读取数据在NandFlash上的源地址与这些数据的写入分配规则相关图1 是连续LPA的写入地址分配规则示意图,能简单表示写入分配规则产生的效果,这种写入分配规则在顺序读场景时能最大机率触发并行读操作 Multi_PlaneRead。LPA0-LPA7分散到Blockn和Blockm同一个索引Index的 Page,Blockn和Blockm属于一个Die下两个不同的Plane,符合并行 Multi_Plane规则,可使得LPA0-LPA7的读取可以通过NandFlash端的并行读操作Multi_PlaneRead来实现。
对于如何识别出顺序读请求,本专利的做法是固件系统判断读请求的 LPAID,如果连续的LPA达到一定的数量,则认定当前是系统处于顺序读场景,且将这些及后续的连续LPA的读请求标记为顺序读。
顺序读场景中,拼接机制执行(专指拼接成Multi_Plane操作)流程如图 2和图3所示。图2是任务驱动时的执行流程图;任务驱动和超时机制相配合,任务驱动的拼接机制流程执行依赖输入的请求。首先解析请求、并根据请求类型作判断,如果当前请求是顺序读请求,则依据当前是否存在拼接单元以继续流程。当系统中存在拼接单元时,表明前面的顺序读请求新生成或者集合成了拼接单元,此时输入的顺序读请求根据是否符合拼接单元的Multi_Plane 规则来确定是否加入此拼接单元。若不符合拼接单元的Multi_Plane拼接规则,则刷新当前的拼接单元(即让NandFlash端执行此拼接单元对应的 Multi_PlaneRead操作),同时输入的顺序读请求新生成对应的拼接单元。每当当前的顺序读请求加入拼接单元后,系统进行拼接单元的检查,确认更新后的拼接单元是否已经达到此拼接单元的最大容纳能力。举例说明,LPA0-LPA7的顺序读场景,LPA0的读请求新生成Page0的Multi_Plane拼接单元,LPA1- LPA7的读请求与Page0拼接单元符合Multi_Plane规则,加入拼接单元中,当LPA7加入拼接单元集合中后,此时拼接单元包含LPA0-LPA7的读请求,拼接单元的检查发现已经达到最大容纳能力(图1中可看出Blockn、BlockmPage0的 Multi_PlaneRead最大的LPAID只能支持到LPA7),随后进行拼接单元的刷新动作。
超时机制能增加顺序读请求时间量上的弹性,避免拼接单元的长时间等待,同时也能避免请求的延时引起的拼接单元未组成Multi_Plane操作而被刷新执行。考虑没有超时机制控制的顺序读场景,本模块一次性接收到LPA0–LPA3的顺序读请求并集合成一个拼接单元(一次性只接收到LPA0-LPA3的读请求而非一次性接收到LPA0-LPA7的读请求的原因在于模块的调度策略和请求的饱和程度),存在两种对拼接单元处理的可能策略:①立即刷新,接收到最后一个顺序读请求后刷新拼接单元,即接收到最后一个LPA3顺序读请求后刷新拼接单元,此时拼接单元实际上只有BlocknPage0的Signle_PlaneRead;②一直等到下一个请求驱动拼接单元的刷新(请求与拼接单元不符合Multi_Plane拼接规则)或者更新(顺序读请求加入拼接单元),即接收到最后一个LPA3顺序读请求后,等待时间未知。当采用策略①时,有可能下一批LPA4-LPA7的顺序读请求随后就到,本来可以进行Blockn、BlockmPage0的Multi_PlaneRead被分解成Block0Page0的Signle_PlaneRead和BlockmPage0的 Signle_PlaneRead,同样的LPA0-LPA7的读,NandFlash端的执行时间被延长。当采用策略②后,由于等待时间未知,本可以在等待的这段时间内完成的 LPA0-LPA3读请求一直在等待,严重浪费性能。本专利引入超时机制控制,在新生成的拼接单元的同时记录其时间点,当当前拼接单s元等待超过一定的时间立即刷新执行。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

Claims (6)

1.一种提升固态硬盘顺序读性能的方法,其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定间隔内的命令是否属于顺序读命令,如果是则将当前的顺序读请求加入拼接单元,将读命令按照写入的规则进行拼接,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。
2.根据权利要求1所述的固态硬盘提升顺序读性能的方法,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。
3.根据权利要求1所述的固态硬盘提升顺序读性能的方法,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。
4.一种固态硬盘,其特征在于在读操作中增加一个拼接单元和命令判断模块,所述命令判断模块根据输入的读命令的逻辑地址是否连续判断一定间隔内的命令是否属于顺序读命令,如果是则将当前的顺序读请求加入拼接单元,将读命令按照写入的规则进行拼接,完成拼接后实现同一个拼接单元的读命令按并行读取的方式访问存储单元。
5.根据权利要求4所述的固态硬盘,其特征在于新产生的顺序读命令在加入拼接单元前先判断新的顺序读命令是否与已有的拼接单元符合拼接规则,如果是则直接加入拼接单元,如果不是则将已有拼接单元刷新执行,并生成新的拼接单元,将顺序读命令加入新的拼接单元。
6.根据权利要求4所述的固态硬盘,其特征在于还包括超时触发模块,当一个拼接单元超过预先设定的时间没有新的读命令加入拼接单元,则将已有拼接单元刷新执行。
CN201811017961.8A 2018-09-01 2018-09-01 一种提升固态硬盘顺序读性能的方法 Pending CN109271107A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201811017961.8A CN109271107A (zh) 2018-09-01 2018-09-01 一种提升固态硬盘顺序读性能的方法
LU101773A LU101773B1 (en) 2018-09-01 2018-11-22 Method for improving sequential read performance of solid-state drive
PCT/CN2018/116814 WO2020042388A1 (zh) 2018-09-01 2018-11-22 一种提升固态硬盘顺序读性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811017961.8A CN109271107A (zh) 2018-09-01 2018-09-01 一种提升固态硬盘顺序读性能的方法

Publications (1)

Publication Number Publication Date
CN109271107A true CN109271107A (zh) 2019-01-25

Family

ID=65187718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811017961.8A Pending CN109271107A (zh) 2018-09-01 2018-09-01 一种提升固态硬盘顺序读性能的方法

Country Status (3)

Country Link
CN (1) CN109271107A (zh)
LU (1) LU101773B1 (zh)
WO (1) WO2020042388A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112433672A (zh) * 2020-11-12 2021-03-02 苏州浪潮智能科技有限公司 一种固态硬盘读方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298508A (zh) * 2011-09-07 2011-12-28 记忆科技(深圳)有限公司 基于流的固态硬盘预读取的方法及装置
CN104111894A (zh) * 2014-07-17 2014-10-22 记忆科技(深圳)有限公司 提升多分区顺序读写性能的方法及其系统
CN108170380A (zh) * 2017-12-28 2018-06-15 深圳忆联信息系统有限公司 一种固态硬盘提升顺序读性能的方法及固态硬盘

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100583059C (zh) * 2007-12-28 2010-01-20 祥硕科技股份有限公司 数据存取整合方法及其系统
KR20150020385A (ko) * 2013-08-13 2015-02-26 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
CN106201774B (zh) * 2016-06-28 2020-11-06 中国人民解放军61660部队 一种nand flash存储芯片数据存储结构分析方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298508A (zh) * 2011-09-07 2011-12-28 记忆科技(深圳)有限公司 基于流的固态硬盘预读取的方法及装置
CN104111894A (zh) * 2014-07-17 2014-10-22 记忆科技(深圳)有限公司 提升多分区顺序读写性能的方法及其系统
CN108170380A (zh) * 2017-12-28 2018-06-15 深圳忆联信息系统有限公司 一种固态硬盘提升顺序读性能的方法及固态硬盘

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112433672A (zh) * 2020-11-12 2021-03-02 苏州浪潮智能科技有限公司 一种固态硬盘读方法和装置
CN112433672B (zh) * 2020-11-12 2023-01-06 苏州浪潮智能科技有限公司 一种固态硬盘读方法和装置

Also Published As

Publication number Publication date
LU101773B1 (en) 2020-09-04
WO2020042388A1 (zh) 2020-03-05

Similar Documents

Publication Publication Date Title
CN108537543B (zh) 区块链数据的并行处理方法、装置、设备和存储介质
CN101740102B (zh) 一种多通道闪存芯片阵列结构及其写入和读出方法
CN109388590B (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
CN105243033A (zh) 数据处理方法及电子设备
CN108733578A (zh) 快闪存储器的垃圾回收断电回复方法及使用该方法的装置
CN103229136B (zh) 磁盘阵列刷盘方法及磁盘阵列刷盘装置
CN103019971A (zh) 快速响应trim命令的方法、SSD控制器及系统
JP2022528349A (ja) データ記憶用の装置、方法及び読み取り可能な媒体
CN107423301A (zh) 一种数据处理的方法、相关设备及存储系统
JP2013061795A (ja) 記憶装置、コントローラ、およびリードコマンド実行方法
CN102566939B (zh) 一种固态硬盘及其读-修改-写操作的数据管理方法
CN109086168A (zh) 一种利用硬件备份固态硬盘写速度的方法及其系统
CN110413413A (zh) 一种数据写入方法、装置、设备及存储介质
CN106662895A (zh) 计算机设备和计算机设备数据读写的方法
CN109271107A (zh) 一种提升固态硬盘顺序读性能的方法
CN108170380A (zh) 一种固态硬盘提升顺序读性能的方法及固态硬盘
WO2024027140A1 (zh) 一种数据处理方法、装置、设备、系统及可读存储介质
CN104268274A (zh) 一种记录数据库日志的方法、装置及系统
CN104462181A (zh) 一种ssd后端数据通路管理加速模块及ssd设备
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system
CN107943413B (zh) 一种固态硬盘提升读性能的方法
US8819363B2 (en) Data copying method
CN113821175A (zh) 基于存储内容优先的ssd指令调度方法及系统
CN104182490B (zh) 一种管理数据访问的方法及装置
WO2021092784A1 (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190125