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

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

Info

Publication number
CN106339326A
CN106339326A CN201610737116.2A CN201610737116A CN106339326A CN 106339326 A CN106339326 A CN 106339326A CN 201610737116 A CN201610737116 A CN 201610737116A CN 106339326 A CN106339326 A CN 106339326A
Authority
CN
China
Prior art keywords
read
read command
ssd
flash
command
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
CN201610737116.2A
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.)
Ramaxel Technology Shenzhen Co Ltd
Original Assignee
Ramaxel Technology Shenzhen 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 Ramaxel Technology Shenzhen Co Ltd filed Critical Ramaxel Technology Shenzhen Co Ltd
Priority to CN201610737116.2A priority Critical patent/CN106339326A/zh
Publication of CN106339326A publication Critical patent/CN106339326A/zh
Pending legal-status Critical Current

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明提供了一种提升固态硬盘顺序读性能的方法,其特征在于在固态硬盘上增加读命令重排序模块,所述读命令重排序模块接收到主机发送的多个读命令后,先分析该各个读命令所要访问的逻辑块地址,将逻辑块地址相邻的读命令分组为同一读命令流组,并按读命令进入固态硬盘的顺序排列,将接收到的各个读命令分组为多个读命令流组,根据读命令流组的逻辑块地址选择SSD对应的FLASH读通道,不同的读命令流组对应不同FLASH读通道分别并发的按各个读命令流组的顺序执行读命令。通过在SSD中增加对读命令的重排序和增加顺序读命令的预读机制,充分利用SSD顺序读的优势,提升多线程应用中固态硬盘的读性能。

Description

一种提升固态硬盘顺序读性能的方法
技术领域
本发明涉及数据存储设备,特别涉及提升固态硬盘顺序读性能的方法。
背景技术
硬盘访问的速度对于实际应用的影响是巨大的,在一定程度上决定了应用的执行效率。实际主机***大部分都是多任务***,这也就决定了主机一般都要求支持多线程。因此大量存在多线程同时访问固态硬盘SSD的操作,一般同一个线程对于硬盘的访问都是顺序的读命令流的方式进入硬盘进行访问;那在多线程环境下,就会同时出现多条顺序流,但是SSD在接收到命令时并不知晓它们的线程属性。主流SATA接口的SSD最多可同时接收32个命令,由于多个线程同时访问SSD,每个线程对于SSD并没有设置特定访问的优先级,所以32个命令是随机分属于各个线程的。最终表现为SSD处理的命令序列是几条交错的读命令流,读命令访问地址连续性被打散了,导致顺序读性能下降。
发明内容
针对以上缺陷,本发明目的是如何最大限度的发挥SSD顺序读性能的优势,整体上提高SSD的读性能。
为了解决以上问题,本发明提供了一种提升固态硬盘顺序读性能的方法,其特征在于在固态硬盘上增加读命令重排序模块,所述读命令重排序模块接收到主机发送的多个读命令后,先分析该各个读命令所要访问的逻辑块地址,将逻辑块地址相邻的读命令分组为同一读命令流组,并按读命令进入固态硬盘的顺序排列,将接收到的各个读命令分组为多个读命令流组,根据读命令流组的逻辑块地址选择SSD对应的FLASH读通道,不同的读命令流组对应不同FLASH读通道分别并发的按各个读命令流组的顺序执行读命令。
所述的提升固态硬盘顺序读性能的方法,其特征在于将读命令访问的逻辑块地址首尾相邻的读命令分组为同一读命令流组。
所述的提升固态硬盘顺序读性能的方法,其特征在于增加为每个FLASH读通道设置预读缓冲区,当SSD对应的FLASH读通道在完成本通道的读命令操作后,当前通道无其它新命令,则按上一个读命令的逻辑块地址顺序,继续读N个块大小的数据到该FLASH读通道设置预读缓冲区;对应该FLASH读通道的读命令,先检索该FLASH读通道设置预读缓冲区是否存在要读取的数据,如果有则直接从该FLASH读通道设置预读缓冲区中读取该数据;否则继从对应的FLASH读通道中读取数据。
本发明通过在SSD中增加对读命令的重排序和增加顺序读命令的预读机制,充分利用SSD顺序读的优势,提升多线程应用中固态硬盘的读性能。
附图说明
图1是现有技术顺序读命令流示意图;
图2是增加经过读命令重排序后的顺序读命令流示意图;
图3是增加顺序命令的预读的读命令流示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是现有技术顺序读命令流示意图;在多线程顺序读的应用场景下,多个线程同时读SSD,大多数情况下每个线程的命令流都是顺序读命令流,即线程Thead_1包括读命令T1_1、T1_2、T1_3、T1_4和T1_5,这些读命令访问的逻辑块地址LBA(Logic Block Address)的空间是连续的;Thead_2包括读命令T2_1、T2_2、T2_3、T2_4和T2_5,这些读命令访问的逻辑块地址LBA(Logic Block Address)的空间是连续的;Thead_3包括读命令T3_1、T3_2、T3_3、T3_4和T3_5,这些读命令访问的逻辑块地址LBA(Logic Block Address)的空间是连续的;由于所有线程访问SSD优先级是相同的,那么SSD接受到汇总的各个线程的命令序列是随机的。SSD内部的待处理命令队列Pending_command_queue中的命令顺序变为3个线程的读命令交错分布,前后命令之间不再具备每个线程单独访问LBA空间的顺序性,无法直接同SSD中具体的存储阵列Nand flash arry中的FLASH读通道对应。因此无法发挥SSD后端顺序读性能的优势,整体体现出来就是SSD随机读的性能。
图2是增加经过读命令重排序后的顺序读命令流示意图,为了发挥SSD后端顺序读性能的优势,在SSD中增加读命令重排序模块,在SSD内部对接受到的命令进行重排序,按照读命令的访问地址的连续性建立相应读命令流组Sequential Read Stream。重新建立的顺序读命令流与主机各线程发起顺序读请求是一致的,Sequential Read Stream 1、2和3分别对应了主机端的线程1、2和3的命令流。这样SSD内部就可以根据读命令流组SequentialRead Stream去访问闪存的实际存储阵列,而数据在各个FLASH读通道上的分布恰恰又能更好的发挥顺序读性能的优势。通过对读命令的重排优化,使原本乱序的读命令流转化为多个顺序的读命令流,提升了整体的读性能。根据各个线程的对应的读命令基本上都是顺序的,因此也在对读命令进行重排序时,可简单通过命令所在的线程序号进行分组,同样能在大部分情况下实现各个读命令流组的命令对应要访问的逻辑块地址是相邻且顺序的。也可通过判断读命令访问的逻辑块地址,读命令的逻辑块地址的首地址与读命令的逻辑块地址的尾地址相邻的读命令分组为同一读命令流组。
图3是增加顺序命令的预读的读命令流示意图,为了进一步提升顺序读的性能,可以为已经识别出来的读命令流组Sequential Read Stream进行预读取Read Ahead,预先为每个FLASH读通道设置预读缓冲区,在完成本FLASH读通道的当前读命令操作后,根据同一线程大概率的存在继续顺序读取本FLASH读通道的数据的特点,预先提前将本FLASH读通道的顺序且相邻的多个逻辑块数据提前从nand flash上读到预读缓冲区中。后续的读命令大概率的会继续命中各个预读缓冲区中提前读取出的数据,直接从预读缓冲区读取到所需的数据,大大减少了读命令的响应时间,从而进一步提升顺序读的性能。SSD后台还可以增加其它策略的预读识别机制,充分利用FLASH空闲时间段提前对进行预读取和销毁。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

Claims (3)

1.一种提升固态硬盘顺序读性能的方法,其特征在于在固态硬盘上增加读命令重排序模块,所述读命令重排序模块接收到主机发送的多个读命令后,先分析该各个读命令所要访问的逻辑块地址,将逻辑块地址相邻的读命令分组为同一读命令流组,并按读命令进入固态硬盘的顺序排列,将接收到的各个读命令分组为多个读命令流组,根据读命令流组的逻辑块地址选择SSD对应的FLASH读通道,不同的读命令流组对应不同FLASH读通道分别并行的按各个读命令流组的顺序执行读命令。
2.根据权利要求1所述的提升固态硬盘顺序读性能的方法,其特征在于将读命令访问的逻辑块地址首尾相邻的读命令分组为同一读命令流组。
3.根据权利要求1或2所述的提升固态硬盘顺序读性能的方法,其特征在于增加为每个FLASH读通道设置预读缓冲区,当SSD对应的FLASH读通道在完成本通道的读命令操作后,当前通道无其它新命令,则按上一个读命令的逻辑块地址顺序,继续读N个块大小的数据到该FLASH读通道设置预读缓冲区;对应该FLASH读通道的读命令,先检索该FLASH读通道设置预读缓冲区是否存在要读取的数据,如果有则直接从该FLASH读通道设置预读缓冲区中读取该数据;否则继从对应的FLASH读通道中读取数据。
CN201610737116.2A 2016-08-26 2016-08-26 一种提升固态硬盘顺序读性能的方法 Pending CN106339326A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610737116.2A CN106339326A (zh) 2016-08-26 2016-08-26 一种提升固态硬盘顺序读性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610737116.2A CN106339326A (zh) 2016-08-26 2016-08-26 一种提升固态硬盘顺序读性能的方法

Publications (1)

Publication Number Publication Date
CN106339326A true CN106339326A (zh) 2017-01-18

Family

ID=57823089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610737116.2A Pending CN106339326A (zh) 2016-08-26 2016-08-26 一种提升固态硬盘顺序读性能的方法

Country Status (1)

Country Link
CN (1) CN106339326A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291631A (zh) * 2017-05-24 2017-10-24 记忆科技(深圳)有限公司 一种提高固态硬盘中多流读出时性能的方法
CN108089996A (zh) * 2017-11-29 2018-05-29 深圳忆联信息***有限公司 一种提升带slc缓存的固态硬盘读性能的方法
CN108170380A (zh) * 2017-12-28 2018-06-15 深圳忆联信息***有限公司 一种固态硬盘提升顺序读性能的方法及固态硬盘
CN108595110A (zh) * 2018-03-07 2018-09-28 深圳忆联信息***有限公司 一种利用Nand特性提高读性能的方法及固态硬盘
CN109783025A (zh) * 2019-01-10 2019-05-21 深圳忆联信息***有限公司 顺序数据页颗粒度离散分布的读方法和装置
CN109901785A (zh) * 2017-12-08 2019-06-18 西安华为技术有限公司 命令排序方法、降低读时延方法及固态硬盘ssd控制器
CN109976679A (zh) * 2019-04-11 2019-07-05 苏州浪潮智能科技有限公司 一种分布式集群卷预读方法、***、设备及计算机介质
CN110321080A (zh) * 2019-07-02 2019-10-11 北京计算机技术及应用研究所 一种跨节点的温数据池预读方法
CN111324282A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
CN111694504A (zh) * 2019-03-15 2020-09-22 杭州宏杉科技股份有限公司 一种处理读请求的方法及装置
CN113268204A (zh) * 2021-05-26 2021-08-17 绿芯半导体(厦门)有限公司 一种提高ssd多通道并发数据读写效率的方法
CN113568572A (zh) * 2021-07-09 2021-10-29 浙江工业大学 一种基于固态硬盘的数据库并行排序连接***
CN114579051A (zh) * 2022-02-25 2022-06-03 阿里巴巴(中国)有限公司 识别硬盘读模式的方法以及装置
CN117032595A (zh) * 2023-10-09 2023-11-10 北京忆恒创源科技股份有限公司 顺序流检测方法及存储设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923522A (zh) * 2009-06-11 2010-12-22 中兴通讯股份有限公司 存储控制器及数据操作命令的处理方法
CN101944066A (zh) * 2009-07-10 2011-01-12 成都市华为赛门铁克科技有限公司 固态硬盘的接口处理方法、固态硬盘以及存储***
CN102141898A (zh) * 2011-04-26 2011-08-03 记忆科技(深圳)有限公司 固态硬盘读写指令重排序的方法及其***
CN102298508A (zh) * 2011-09-07 2011-12-28 记忆科技(深圳)有限公司 基于流的固态硬盘预读取的方法及装置
CN102473087A (zh) * 2009-07-02 2012-05-23 三德动力有限公司 对与存储装置关联的多个写命令进行排序
WO2012081730A1 (en) * 2010-12-15 2012-06-21 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
US20140082272A1 (en) * 2012-02-13 2014-03-20 Ibm Corporation Memory Reorder Queue Biasing Preceding High Latency Operations
CN105849669A (zh) * 2013-12-27 2016-08-10 高通股份有限公司 用于单个通道内的dram空间联合的方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923522A (zh) * 2009-06-11 2010-12-22 中兴通讯股份有限公司 存储控制器及数据操作命令的处理方法
CN102473087A (zh) * 2009-07-02 2012-05-23 三德动力有限公司 对与存储装置关联的多个写命令进行排序
CN101944066A (zh) * 2009-07-10 2011-01-12 成都市华为赛门铁克科技有限公司 固态硬盘的接口处理方法、固态硬盘以及存储***
WO2012081730A1 (en) * 2010-12-15 2012-06-21 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
CN102141898A (zh) * 2011-04-26 2011-08-03 记忆科技(深圳)有限公司 固态硬盘读写指令重排序的方法及其***
CN102298508A (zh) * 2011-09-07 2011-12-28 记忆科技(深圳)有限公司 基于流的固态硬盘预读取的方法及装置
US20140082272A1 (en) * 2012-02-13 2014-03-20 Ibm Corporation Memory Reorder Queue Biasing Preceding High Latency Operations
CN105849669A (zh) * 2013-12-27 2016-08-10 高通股份有限公司 用于单个通道内的dram空间联合的方法和装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291631A (zh) * 2017-05-24 2017-10-24 记忆科技(深圳)有限公司 一种提高固态硬盘中多流读出时性能的方法
CN108089996A (zh) * 2017-11-29 2018-05-29 深圳忆联信息***有限公司 一种提升带slc缓存的固态硬盘读性能的方法
CN109901785B (zh) * 2017-12-08 2022-04-05 华为云计算技术有限公司 命令排序方法、降低读时延方法及固态硬盘ssd控制器
CN109901785A (zh) * 2017-12-08 2019-06-18 西安华为技术有限公司 命令排序方法、降低读时延方法及固态硬盘ssd控制器
CN108170380B (zh) * 2017-12-28 2021-02-05 深圳忆联信息***有限公司 一种固态硬盘提升顺序读性能的方法及固态硬盘
CN108170380A (zh) * 2017-12-28 2018-06-15 深圳忆联信息***有限公司 一种固态硬盘提升顺序读性能的方法及固态硬盘
CN108595110B (zh) * 2018-03-07 2021-12-14 深圳忆联信息***有限公司 一种利用Nand特性提高读性能的方法及固态硬盘
CN108595110A (zh) * 2018-03-07 2018-09-28 深圳忆联信息***有限公司 一种利用Nand特性提高读性能的方法及固态硬盘
CN111324282A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
CN109783025A (zh) * 2019-01-10 2019-05-21 深圳忆联信息***有限公司 顺序数据页颗粒度离散分布的读方法和装置
CN109783025B (zh) * 2019-01-10 2022-03-29 深圳忆联信息***有限公司 顺序数据页颗粒度离散分布的读方法和装置
CN111694504A (zh) * 2019-03-15 2020-09-22 杭州宏杉科技股份有限公司 一种处理读请求的方法及装置
CN109976679A (zh) * 2019-04-11 2019-07-05 苏州浪潮智能科技有限公司 一种分布式集群卷预读方法、***、设备及计算机介质
CN110321080A (zh) * 2019-07-02 2019-10-11 北京计算机技术及应用研究所 一种跨节点的温数据池预读方法
CN113268204A (zh) * 2021-05-26 2021-08-17 绿芯半导体(厦门)有限公司 一种提高ssd多通道并发数据读写效率的方法
CN113268204B (zh) * 2021-05-26 2022-10-18 绿芯半导体(厦门)有限公司 一种提高ssd多通道并发数据读写效率的方法
CN113568572A (zh) * 2021-07-09 2021-10-29 浙江工业大学 一种基于固态硬盘的数据库并行排序连接***
CN113568572B (zh) * 2021-07-09 2024-03-22 浙江工业大学 一种基于固态硬盘的数据库并行排序连接***
CN114579051A (zh) * 2022-02-25 2022-06-03 阿里巴巴(中国)有限公司 识别硬盘读模式的方法以及装置
CN114579051B (zh) * 2022-02-25 2024-04-23 阿里巴巴(中国)有限公司 识别硬盘读模式的方法以及装置
CN117032595A (zh) * 2023-10-09 2023-11-10 北京忆恒创源科技股份有限公司 顺序流检测方法及存储设备
CN117032595B (zh) * 2023-10-09 2024-01-23 北京忆恒创源科技股份有限公司 顺序流检测方法及存储设备

Similar Documents

Publication Publication Date Title
CN106339326A (zh) 一种提升固态硬盘顺序读性能的方法
US8583854B2 (en) Nonvolatile storage device with NCQ supported and writing method for a nonvolatile storage device
US8832333B2 (en) Memory system and data transfer method
US7500063B2 (en) Method and apparatus for managing a cache memory in a mass-storage system
US8769218B2 (en) System and apparatus for flash memory data management
US8874826B2 (en) Programming method and device for a buffer cache in a solid-state disk system
CN101740102B (zh) 一种多通道闪存芯片阵列结构及其写入和读出方法
CN103336669B (zh) 一种基于固态盘内部并行性的i/o调度方法及调度器
CN1950804A (zh) 闪速存储器控制器高速缓存架构
US20120110239A1 (en) Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
US8996794B2 (en) Flash memory controller
US20150253992A1 (en) Memory system and control method
US9170893B2 (en) Method and system for selecting region of a nonvolatile memory
US20190278515A1 (en) Managing internal command queues in solid state storage drives
CN101908368A (zh) 电子存储装置及其操作方法
CN103902475B (zh) 一种基于队列管理机制的固态硬盘并行访问方法及装置
US20190370199A1 (en) Method of out of order processing of scatter gather lists
US20170083234A1 (en) Data storage device and data reading method thereof
US20170003911A1 (en) Information processing device
CN105528299A (zh) 读取命令排程方法以及使用该方法的装置
WO2018024214A1 (zh) Io流调节方法与装置
CN106484315A (zh) 读取及写入命令排程方法以及使用该方法的装置
CN109213423A (zh) 基于地址屏障无锁处理并发io命令
KR102408350B1 (ko) 에너지 효율을 개선할 수 있는 그래픽 처리 장치를 위한 메모리 컨트롤러 및 이의 메모리 제어 방법
US7047391B2 (en) System and method for re-ordering memory references for access to memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170118

RJ01 Rejection of invention patent application after publication