CN108255424A - 一种NVMe固态硬盘IO响应延迟的保障方法 - Google Patents

一种NVMe固态硬盘IO响应延迟的保障方法 Download PDF

Info

Publication number
CN108255424A
CN108255424A CN201711461353.1A CN201711461353A CN108255424A CN 108255424 A CN108255424 A CN 108255424A CN 201711461353 A CN201711461353 A CN 201711461353A CN 108255424 A CN108255424 A CN 108255424A
Authority
CN
China
Prior art keywords
die
solid state
arbitration
nvme
physical
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.)
Granted
Application number
CN201711461353.1A
Other languages
English (en)
Other versions
CN108255424B (zh
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 CN201711461353.1A priority Critical patent/CN108255424B/zh
Publication of CN108255424A publication Critical patent/CN108255424A/zh
Application granted granted Critical
Publication of CN108255424B publication Critical patent/CN108255424B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0629Configuration or reconfiguration 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
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种NVMe固态硬盘IO响应延迟的保障方法,其特征在于将固态硬盘创建与主机NVMe Set相对应的多个Set,当所需的Set数不超过物理通道DIE时,在每个DIE中分别分配部分物理块与Set对应;当所需的Set数超过物理通道DIE时,在每个DIE中均匀分配多个物理块分别与Set对应,同一个DIE的多个Set通过软件模块进行优先级仲裁,根据仲裁结果控制执行顺序。通过对优先级不同的Set划分相对独立的物理空间,并由内部的Arbiter进行进一步细颗粒度的仲裁控制,可有效保障各个Set的响应延迟,满足了NVMe的IOD诉求。

Description

一种NVMe固态硬盘IO响应延迟的保障方法
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种NVMe固态硬盘IO响应延迟的保障方法。
背景技术
SSD(固态硬盘)已经被广泛应用于各种场合,由于其在性能、功耗、环境适应性等方面的优秀指标,正逐步替换传统的硬盘。随着SSD的广泛使用,其接口规范从SATA到PCIe,应用场景从消费类到企业级。伴随着规格的演进,对于SSD的各项指标提出了较多的诉求。
SATA SSD,主机端各个应用程序的读写请求,根据其命令提交到SSD的顺序,其数据读写请求在SSD内部进行混合:各个进程写入的数据混合写入在物理NAND上,读写命令交错执行。而从主机端的角度来看,各个应用程序具备不同的优先级,相应地其数据访问应该有对应的保障机制。进一步地,在新一代基于PCIe/NVMe规范的SSD上,提出了针对不同Namespace,满足IOD(IO Determinism)的特性。从现有的SSD实现策略来看,均无法保障此需求。
图1是典型的NAND组成示意图:DIE,可独立并发操作的单元;Block,可独立擦除的单元,其内各个物理位置的数据写入后在下一次写之前必须要将整个Block擦除;Page,读写单元,同一物理块内的Page必需按顺序编程:0->1->2->3…。
图2是传统的SSD内部处理模块组成示意图:主要包括:前端模块、读写缓冲区管理模块、映射表管理模块、NAND驱动和外设驱动模块;其中:(1)前端模块:与主机进行协议交互,完成命令接收、数据传输、状态返回等。(2)读写缓冲区管理:管理命令所关联的内存地址分配、回收,存放主机下发(写)或者待返回主机(读)的数据。(3)映射表管理:完成逻辑地址(主机寻址方式)和物理地址(NAND寻址方式)的转换,并负责一些后台垃圾回收GC、映射表刷新等任务。(4)NAND驱动:完成NAND的读写擦等命令的构建,将逻辑地址的读写操作转换为物理NAND的读写操作,并负责状态的回收。(5)外设驱动模块:常规嵌入式平台所涉及的多核、时钟、中断、I2C、NOR等驱动,为其他模块提供调用接口完成设备操作。
图3是现有SSD的响应模型图,主机端有各个进程,假设为编号1、2、3…N,且优先级从低到高分布;各个进程基于逻辑地址,发送各自的操作请求;SSD的前端模块、读写缓冲区管理模块根据命令进来的先后顺序进行命令处理、数据传输、准备;因为在SSD内部的处理序列,不同进程的数据访问请求可能会落在相同的DIE上,如请求1、2和N;根据NAND的特性,DIE在任一时刻内只能处理一个请求,所以需要依次等待1、2和N请求的完成。
综上所述,由此DIE的特性以及现有SSD内部的实现机制,可能出现优先级高的进程响应延迟比较大。
在NVMe SSD时代,主机会创建多个NVMe命名空间集合NVMe Set,其对访问任意一个区域的响应延迟必需是可控的(称为IO延迟确定IO Determinism,简称IOD)。由前面的特性可知,现有的SSD机制无法满足这一点。
发明内容
针对以上缺陷,本发明目的是如何根据主机优先级不同提供不同的响应延迟保证措施。
为了解决以上问题本发明提出了一种NVMe固态硬盘IO响应延迟的保障方法,其特征在于将固态硬盘创建与主机NVMe Set相对应的多个Set,当所需的Set数不超过物理通道DIE时,在每个DIE中分别分配部分物理块与Set对应;当所需的Set数超过物理通道DIE时,在每个DIE中均匀分配多个物理块分别与Set对应,同一个DIE的多个Set通过软件模块进行优先级仲裁,根据仲裁结果控制执行顺序。
所述的NVMe固态硬盘IO响应延迟的保障方法,其特征在于软件模块根据总的DIE数量和Set响应需求做综合评估进行优先级仲裁。
所述的NVMe固态硬盘IO响应延迟的保障方法,其特征在于增加了逻辑Set解析模块、仲裁与调度模块、缓存区管理模块和映射表管理模块,所述逻辑Set解析模块实现根据收到的命令的信息,识别命令属于哪个NVMe Set或命名空间;仲裁与调度模块用于根据设定的NVMe Set优先级、响应时间,对各个Set的读写请求进行仲裁和调度;缓存区管理模块为每个Set分配独立的缓存区管理,进而保障了数据的分离以及传输的独立性;映射表管理为每个Set例化各自的管理结构,保持逻辑空间、物理空间的独立性,进一步地,后台的GC以及周期性的映射表刷新到NAND上的任务也由各自管理任务独立管理。
本发明的有益效果是:有效解决现有策略下对于NVMe SSD的命名空间不同集合NVMe Set访问延迟不可控的问题,可以为NVMe SSD提供可靠的响应延迟保障,提升了产品性能。
附图说明
图1是典型的NAND组成示意图;
图2是传统的SSD内部处理模块组成示意图;
图3是现有SSD的响应模型图;
图4是Set与Name Space的对应关系图;
图5是引入的SSD的软件管理策略的变更示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图4是Set与Name Space的对应关系图;为匹配NVMe Set IOD的特性,对逻辑Set与物理空间的分配做了约束:
假设对主机报告支持4个Set,且每个Set中例化不同数量的Name Space;
每个Set拥有相同的响应延迟保障;Set间相对独立;
将物理空间划分成对应的数个空间,用以承接对应的用户数据以及关联的映射表数据的存储;
在图示中,每个Set占用指定的多个DIE的部分物理块。以Set A为例,其和B/D Set在物理DIE级别完全无关联,故在底层操作上无任何依赖性。需要注意的是,A/C在DIE上还是复用的,需要结合后续的软件管理层次进一步进行优先级仲裁,以保障响应延迟。
另外一种可选的方式是,将DIE唯一地分配到某个Set上。例如DIE3->A,DIE 2→B,DIE 1→C,DIE 0→D.但需要注意的是,由于访问每个SET均在独立的DIE上进行,从而限制了该Set的最高性能。
在具体实践中,可以根据总的DIE数量、Set响应需求做综合评估,以选择最佳的匹配策略。
图5是引入的SSD的软件管理策略的变更示意图,用以实现NVMe IOD保障,SSD固件内部新增了如下几个模块:
1)逻辑Set解析模块Logical Set Parsing:根据接收到的命令的信息,识别其属于哪个Namespace/NVMe Set。
2)仲裁与调度模块Arbiter:用于根据设定的NVMe Set优先级、响应时间,对各个Set的读写请求进行仲裁、调度。
3)缓存区管理模块实现实例A、B、C、D:为每个Set分配独立的缓存区管理,进而保障了数据的分离以及传输的独立性。
4)映射表管理模块实现实例A、B、C、D:为每个Set例化各自的管理结构,保持逻辑空间、物理空间的独立性。进一步地,后台的垃圾回收GC以及周期性的映射表刷新到NAND上的任务也由各自管理任务独立管理。
整个工作流程如下:
1)主机提交操作请求(以写为例)到SSD前端模块;
2)SSD内部的Logical Set Parsing模块,根据命令信息区分其所属的NameSpace/Set,进而可获知各自的优先级、响应时间参数;
3)由Arbiter模块根据优先级、响应时间信息,将冲突的请求进行优先级调度:优先将优先级高、响应时间紧急的请求发送给后继的缓冲区管理模块、映射表关联模块。
4)缓冲区管理模块拿到对应的请求后,分配写Buffer,并建立与主机端的数据传输。
5)映射表关联模块为当前命令的逻辑地址数据分配物理地址,并发送给后端的NAND驱动模块。
6)进一步地,在对应的Set的映射表Dirty数量超过阈值时,对应的映射表管理模块实例优先发起映射表保存操作。
7)同样地,当对应Set的物理空间满时,,对应的映射表管理模块实例优先发起垃圾回收(GC)操作。
如上所述,通过对优先级不同的Set划分相对独立的物理空间,并由内部的Arbiter进行进一步细颗粒度的仲裁控制,可有效保障各个Set的响应延迟,满足了NVMe的IOD诉求。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

Claims (3)

1.一种NVMe固态硬盘IO响应延迟的保障方法,其特征在于将固态硬盘创建与主机NVMeSet相对应的多个命名空间集合Set,当所需的Set数不超过物理通道DIE时,在每个DIE中分别分配部分物理块与Set对应;当所需的Set数超过物理通道DIE时,在每个DIE中均匀分配多个物理块分别与Set对应,同一个DIE的多个Set通过软件模块进行优先级仲裁,根据仲裁结果控制执行顺序。
2.根据权利要求1所述的NVMe固态硬盘IO响应延迟的保障方法,其特征在于软件模块根据总的DIE数量和Set响应需求做综合评估进行优先级仲裁。
3.根据权利要求1所述的NVMe固态硬盘IO响应延迟的保障方法,其特征在于增加了逻辑Set解析模块、仲裁与调度模块、缓存区管理模块和映射表管理模块,所述逻辑Set解析模块实现根据收到的命令的信息,识别命令属于哪个NVMeSet或命名空间;仲裁与调度模块用于根据设定的NVMeSet优先级、响应时间,对各个Set的读写请求进行仲裁和调度;缓存区管理模块为每个Set分配独立的缓存区管理,进而保障了数据的分离以及传输的独立性;映射表管理为每个Set例化各自的管理结构,保持逻辑空间、物理空间的独立性,进一步地,后台的碎片回收GC以及周期性的映射表刷新到NAND上的任务也由各自管理任务独立管理。
CN201711461353.1A 2017-12-28 2017-12-28 一种NVMe固态硬盘IO响应延迟的保障方法 Active CN108255424B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711461353.1A CN108255424B (zh) 2017-12-28 2017-12-28 一种NVMe固态硬盘IO响应延迟的保障方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711461353.1A CN108255424B (zh) 2017-12-28 2017-12-28 一种NVMe固态硬盘IO响应延迟的保障方法

Publications (2)

Publication Number Publication Date
CN108255424A true CN108255424A (zh) 2018-07-06
CN108255424B CN108255424B (zh) 2021-01-12

Family

ID=62724377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711461353.1A Active CN108255424B (zh) 2017-12-28 2017-12-28 一种NVMe固态硬盘IO响应延迟的保障方法

Country Status (1)

Country Link
CN (1) CN108255424B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814811A (zh) * 2019-01-30 2019-05-28 哈尔滨工业大学 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法
CN114217750A (zh) * 2021-12-28 2022-03-22 深圳忆联信息系统有限公司 Ssd低功耗优化方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150378606A1 (en) * 2013-06-26 2015-12-31 Cnex Labs, Inc. Nvm express controller for remote access of memory and i/o over ethernet-type networks
CN107122314A (zh) * 2016-02-24 2017-09-01 三星电子株式会社 大容量存储器装置、包括其的系统以及访问其的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150378606A1 (en) * 2013-06-26 2015-12-31 Cnex Labs, Inc. Nvm express controller for remote access of memory and i/o over ethernet-type networks
CN107122314A (zh) * 2016-02-24 2017-09-01 三星电子株式会社 大容量存储器装置、包括其的系统以及访问其的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
古猫: "数据中心的福音|NVMe协议将增加IO Determinism功能", 《微信公众号:存储随笔》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814811A (zh) * 2019-01-30 2019-05-28 哈尔滨工业大学 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法
CN109814811B (zh) * 2019-01-30 2022-04-29 哈尔滨工业大学 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法
CN114217750A (zh) * 2021-12-28 2022-03-22 深圳忆联信息系统有限公司 Ssd低功耗优化方法、装置、计算机设备及存储介质
CN114217750B (zh) * 2021-12-28 2023-07-04 深圳忆联信息系统有限公司 Ssd低功耗优化方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN108255424B (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
US11681614B1 (en) Storage device with subdivisions, subdivision query, and write operations
US10983907B1 (en) Nonvolatile memory controller that supports host selected data movement based upon metadata generated by the nonvolatile memory controller
DE102015014851B4 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
CN101241446B (zh) 非易失数据存储装置中虚拟文件系统命令调度方法和设备
CN103049397B (zh) 一种基于相变存储器的固态硬盘内部缓存管理方法及系统
US9244617B2 (en) Scheduling requests in a solid state memory device
TWI484414B (zh) 用於記憶體之工作排程方法及其記憶體系統
CN107885456B (zh) 减少io命令访问nvm的冲突
US8595414B2 (en) Selectively combining commands for a system having non-volatile memory
WO2018103685A1 (zh) 一种nand闪存设备的操作指令调度方法及装置
CN103019971A (zh) 快速响应trim命令的方法、SSD控制器及系统
CN104115109A (zh) 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法
EP2686774B1 (en) Memory interface
CN103608782A (zh) Lsb页面和msb页面中的选择性数据存储
CN105243033A (zh) 数据处理方法及电子设备
CN101968755B (zh) 一种自适应应用负载变化的快照生成方法
US20220326872A1 (en) Method for selecting a data block to be collected in gc and storage device thereof
CN103902475B (zh) 一种基于队列管理机制的固态硬盘并行访问方法及装置
WO2018024214A1 (zh) Io流调节方法与装置
CN109558334A (zh) 垃圾数据回收方法及固态存储设备
CN108255424A (zh) 一种NVMe固态硬盘IO响应延迟的保障方法
CN108628543A (zh) 垃圾回收方法以及使用该方法的装置
CN103577119A (zh) 用于下一代固态硬盘控制器中乱序传输数据的系统和方法
WO2020029749A1 (zh) 一种i/o请求派发方法及装置
CN101866320A (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
GR01 Patent grant
GR01 Patent grant