CN107608909A - 一种NVMe固态硬盘写加速的方法 - Google Patents
一种NVMe固态硬盘写加速的方法 Download PDFInfo
- Publication number
- CN107608909A CN107608909A CN201710847696.5A CN201710847696A CN107608909A CN 107608909 A CN107608909 A CN 107608909A CN 201710847696 A CN201710847696 A CN 201710847696A CN 107608909 A CN107608909 A CN 107608909A
- Authority
- CN
- China
- Prior art keywords
- caching
- solid state
- state hard
- hardware
- hard disc
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种NVMe固态硬盘写加速的方法,由固态硬盘硬件自动将命令信息取到F I FO中,并自动提交到硬件加速单元处理;同时自动为该命令分配缓存,并建立数据传输,硬件自动发起数据传输,数据传输完成后通知固态硬盘的固件;固态硬盘的固件中还包括缓存合并操作,在将缓存中数据实际写入固态硬盘的物理存储空间的操作前必须先执行缓存合并操作。通过引入写入通路的硬件自动传输机制,优化缓存的管理机制,进而适应性修改固态硬盘的写入机制,可有效降低了命令处理延迟,提高内部内存带宽,可以满足主机端的高速写入带宽需求。同时,经过缓存合并缓存合并操作,还可以有效合并重复地址的写入。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种NVMe固态硬盘写加速的方法。
背景技术
SSD(固态硬盘)已经被广泛应用于各种场合,随着协议的发展,已经从传统的SATA发展为PCIe/NVMe时代,其接口性能也带来数倍的提升。
在SATA时代,典型的接口性能在500MB/s左右,而在PCIe/NVMe接口规范下,则典型需要2-3GB/s的带宽。
图1是常规SSD数据写入的流程图;当主机端有对SSD访问的需求时,主机通知SSD有新的命令,SSD的硬件模块自动将命令信息取到命令传输FIFO。SSD 固件(固态硬盘控制器的控制程序)通过前端FSM模块在命令传输FIFO中进行查询和读取并获取新的命令;SSD固件的前端FSM将所获取的命令提交给命令管理模块CM执行;命令管理模块CM现执行预处理操作,如:读写分离操作等,并将分离后的操作指令提交给后继模块数据通路管理模块DPM进一步执行操作。数据通路管理模块DPM进一步将命令分割为统一的单元(典型地如4KB),数据通路管理模块DPM根据数据传输地址,构建数据传输请求,检查当前缓存中是否存在命中数据,如果存在则直接执行命中写缓存操作,如果不存在则从DRAM 的空闲空间中分配新缓存Buffe。并将通知硬件接口将数据传输到新分配的缓存中;当数据传输完成后,通知软件数据传输完成,数据通路管理DPM发起后端 NAND写入请求,由后端实现将数据写入NAND的物理存储空间中。
图2是常规缓存管理的模型示意图:SSD内部内存中建立维护有一个缓存管理列表,缓存管理列表至少包括内存中已经存在的缓存信息,包括逻辑地址和 DRAM地址的映射关系,通过缓存管理列表来整体管理缓存。当SSD收到主机写入的请求时,通过分析命令获取该命令访问的逻辑地址,SSD在分配写入地址时,先检查作命中检测,具体为根据命令的逻辑地址信息在内存中的缓存管理列表 Cache Table进行检索,检查是否可命中缓存管理列表。如果命中现有DRAM中的写Cache,则直接使用该Cache Buffer;如没有命中,则分配新的DRAM Buffer;同时将该Cache Entry(逻辑地址,DRAM地址)添加到Cache Table中,作为后续写入请求检查使用。
采用常规缓存的Cache的使用机制和管理流程,其命令提交和执行的步骤较多,环节多且在数据传输前需要固件参与前置的Cache检查,因此整个处理流程引入了较大的系统延迟,成为制约SSD带宽提升的一个重要瓶颈,因此无法满足高带宽的产品需求。
发明内容
针对以上缺陷,本发明目的是如何在改善缓存管理机制,降低由于缓存机制带来的系统延迟,进而实现提高固态硬盘带宽的目的。
为了解决以上问题本发明提出了一种NVMe固态硬盘写加速的方法,其特征在于在固态硬盘中增加硬件加速单元,固态硬盘接收到主机命令后,由固态硬盘硬件自动将命令信息取到FIFO中,并自动提交到硬件加速单元处理;同时自动为该命令分配缓存,并建立数据传输,硬件自动发起数据传输,数据传输完成后通知固态硬盘的固件;固态硬盘的固件中还包括缓存合并操作,在将缓存中数据实际写入固态硬盘的物理存储空间的操作前必须先执行缓存合并操作;所述缓存合并操作具体为固态硬盘固件后台检索缓存列表,根据新的数据覆盖旧的数据原则,合并指向相同逻辑地址的缓存,并释放缓存。
所述的NVMe固态硬盘写加速的方法,其特征在于固态硬盘固件在已分配使用的缓存达到预先设定的阀值时才启动缓存合并操作,执行完缓存合并操作后才启动将缓存中数据实际写入固态硬盘的物理存储空间的操作。
所述的NVMe固态硬盘写加速的方法,其特征在于NVMe固态硬盘具体的写入流程为:主机通知SSD有新的命令,SSD硬件自动将命令信息取到本地FIFO; SSD硬件自动将命令提交硬件加速单元处理;同时SSD软件可以查询并获取新的命令;SSD硬件自动分配可用的内部SRAM,建立数据传输;SSD软件可将命令提交CM,并透传到DPM模块;硬件自动发起数据传输;传输完成后硬件通知软件数据传输完成;缓存达到预先设定的阀值时才启动缓存合并操作;缓存合并操作完成后由DPM发起对后端NAND写入请求,实际将缓存中的数据写入NAND中。
本发明通过引入写入硬件加速以及优化缓存的管理机制,进而适应性修改固态硬盘的写入机制,可实现写入命令的硬件与软件最大并发性,有效降低了命令处理延迟,提高内部Memory带宽,可以满足主机端的高速写入带宽需求。同时,经过缓存合并Cache merge,还可以有效合并重复地址的写入,降低了写放大。
附图说明
图1是常规SSD数据写入的流程图;
图2是常规缓存管理的模型示意图;
图3是改进后的SSD数据写入的流程图;
图4是改进后的缓存管理的模型示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3是改进后的SSD数据写入的流程图;为本发明所引入的硬件加速单元所处理的写入模型:当主机有数据写入的需求时,主机通知SSD有新的命令;SSD 硬件接到命令通知后自动将命令信息取到本地FIFO;SSD硬件自动将命令提交硬件加速单元处理;同时SSD软件可以查询并获取新的命令;SSD硬件自动分配可用的内部SRAM,建立数据传输;SSD软件可将命令提交CM,并透传到DPM模块,此时DPM模块不需要负责任何Buffer分配、传输建立等工作;硬件自动发起数据传输;硬件通知软件数据传输完成;DPM发起对后端NAND写入请求。
图4是改进后的缓存管理的模型示意图,由于数据是由硬件自动分配可用的SRAM空间进行写入,在硬件加速单元中,存在重复的逻辑地址数据。如果将这些数据依次写入到NAND上,则只有最新的逻辑数据是有效数据,而其他的都是垃圾数据,对于主机来说是无效的。在传统方案中,由于前置的Cache Table 策略的存在,可以通过分配相同的DRAMBuffer进行需求合并,不会产生重复的NAND写。
在本发明中,结合硬件自动传输模型,当SRAM中数据达到阈值,需要对NAND 发起写操作请求时,通过Cache Merge模块,进行重复地址的合并。根据相同逻辑地址的数据,最近写入的有效的原则,将无效的数据直接释放,从而减少了NAND的写入,并可直接用于后续的主机命令写入。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (3)
1.一种NVMe固态硬盘写加速的方法,其特征在于在固态硬盘中增加硬件加速单元,固态硬盘接收到主机命令后,由固态硬盘硬件自动将命令信息取到FIFO中,并自动提交到硬件加速单元处理;同时自动为该命令分配缓存,并建立数据传输,硬件自动发起数据传输,数据传输完成后通知固态硬盘的固件;固态硬盘的固件中还包括缓存合并操作,在将缓存中数据实际写入固态硬盘的物理存储空间的操作前必须先执行缓存合并操作;所述缓存合并操作具体为固态硬盘固件后台检索缓存列表,根据新的数据覆盖旧的数据原则,合并指向相同逻辑地址的缓存,并释放缓存。
2.根据权利要求1所述的NVMe固态硬盘写加速的方法,其特征在于固态硬盘固件在已分配使用的缓存达到预先设定的阀值时才启动缓存合并操作,执行完缓存合并操作后才启动将缓存中数据实际写入固态硬盘的物理存储空间的操作。
3.根据权利要求2所述的NVMe固态硬盘写加速的方法,其特征在于NVMe固态硬盘具体的写入流程为:主机通知SSD有新的命令,SSD硬件自动将命令信息取到本地FIFO;SSD硬件自动将命令提交硬件加速单元处理;同时SSD软件可以查询并获取新的命令;SSD硬件自动分配可用的内部SRAM,建立数据传输;SSD软件可将命令提交CM,并透传到DPM模块;硬件自动发起数据传输;传输完成后硬件通知软件数据传输完成;缓存达到预先设定的阀值时才启动缓存合并操作;缓存合并操作完成后由DPM发起对后端NAND写入请求,实际将缓存中的数据写入NAND中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710847696.5A CN107608909A (zh) | 2017-09-19 | 2017-09-19 | 一种NVMe固态硬盘写加速的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710847696.5A CN107608909A (zh) | 2017-09-19 | 2017-09-19 | 一种NVMe固态硬盘写加速的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107608909A true CN107608909A (zh) | 2018-01-19 |
Family
ID=61061096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710847696.5A Pending CN107608909A (zh) | 2017-09-19 | 2017-09-19 | 一种NVMe固态硬盘写加速的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608909A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595111A (zh) * | 2018-03-14 | 2018-09-28 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘性能的方法及固态硬盘 |
CN108763105A (zh) * | 2018-05-28 | 2018-11-06 | 深圳忆联信息系统有限公司 | 提升固态存储设备写性能的方法、装置及计算机设备 |
CN108959117A (zh) * | 2018-06-22 | 2018-12-07 | 深圳忆联信息系统有限公司 | H2d写操作加速方法、装置、计算机设备及存储介质 |
CN109086168A (zh) * | 2018-07-13 | 2018-12-25 | 深圳忆联信息系统有限公司 | 一种利用硬件备份固态硬盘写速度的方法及其系统 |
CN109117386A (zh) * | 2018-07-12 | 2019-01-01 | 中国科学院计算技术研究所 | 一种网络远程读写二级存储的系统及方法 |
CN109375870A (zh) * | 2018-09-18 | 2019-02-22 | 深圳忆联信息系统有限公司 | 一种加速ssd主控芯片d2h无映射读取的方法及其系统 |
CN109542346A (zh) * | 2018-11-19 | 2019-03-29 | 深圳忆联信息系统有限公司 | 动态数据缓存分配方法、装置、计算机设备和存储介质 |
CN109582523A (zh) * | 2018-11-26 | 2019-04-05 | 深圳忆联信息系统有限公司 | 有效分析SSD前端NVMe模块性能的方法及系统 |
CN109634875A (zh) * | 2018-12-12 | 2019-04-16 | 深圳忆联信息系统有限公司 | 命令数据缓存处理方法、装置、计算机设备和存储介质 |
CN109857346A (zh) * | 2019-02-26 | 2019-06-07 | 深圳忆联信息系统有限公司 | 一种提高ssd读写性能的方法、装置、计算机设备及存储介质 |
CN110275679A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息系统有限公司 | 一种固件共享硬件内部缓存的方法及其系统 |
WO2020000485A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 一种基于NVMe的数据写入方法、装置及系统 |
CN111522725A (zh) * | 2020-04-23 | 2020-08-11 | 深圳忆联信息系统有限公司 | Ssd性能自动评估方法、装置、设备及介质 |
CN111831227A (zh) * | 2020-07-07 | 2020-10-27 | 山东华芯半导体有限公司 | 一种nvme协议命令加速处理系统 |
CN112559385A (zh) * | 2020-12-22 | 2021-03-26 | 深圳忆联信息系统有限公司 | 提升ssd写性能的方法、装置、计算机设备及存储介质 |
US11467764B2 (en) | 2018-06-30 | 2022-10-11 | Huawei Technologies Co., Ltd. | NVMe-based data read method, apparatus, and system |
WO2024130875A1 (zh) * | 2022-12-22 | 2024-06-27 | 深圳大普微电子科技有限公司 | 固态硬盘数据处理方法、固态硬盘控制器及固态硬盘 |
CN111831227B (zh) * | 2020-07-07 | 2024-07-16 | 山东华芯半导体有限公司 | 一种nvme协议命令加速处理系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307416A1 (en) * | 2008-06-04 | 2009-12-10 | Intitio Corporation | Ssd with a controller accelerator |
CN106873904A (zh) * | 2016-12-30 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据写入方法及固态硬盘 |
-
2017
- 2017-09-19 CN CN201710847696.5A patent/CN107608909A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307416A1 (en) * | 2008-06-04 | 2009-12-10 | Intitio Corporation | Ssd with a controller accelerator |
CN106873904A (zh) * | 2016-12-30 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据写入方法及固态硬盘 |
Non-Patent Citations (1)
Title |
---|
看见就非常: "FancyCache 应用示例: 减少SSD写入, 延时写入功能开启时, 对同一地址的多次数据写入最终将合并成一次", 《个人图书馆》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595111A (zh) * | 2018-03-14 | 2018-09-28 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘性能的方法及固态硬盘 |
CN108763105A (zh) * | 2018-05-28 | 2018-11-06 | 深圳忆联信息系统有限公司 | 提升固态存储设备写性能的方法、装置及计算机设备 |
CN108763105B (zh) * | 2018-05-28 | 2020-12-01 | 深圳忆联信息系统有限公司 | 提升固态存储设备写性能的方法、装置及计算机设备 |
CN108959117A (zh) * | 2018-06-22 | 2018-12-07 | 深圳忆联信息系统有限公司 | H2d写操作加速方法、装置、计算机设备及存储介质 |
CN108959117B (zh) * | 2018-06-22 | 2021-01-19 | 深圳忆联信息系统有限公司 | H2d写操作加速方法、装置、计算机设备及存储介质 |
WO2020000485A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 一种基于NVMe的数据写入方法、装置及系统 |
US11579803B2 (en) | 2018-06-30 | 2023-02-14 | Huawei Technologies Co., Ltd. | NVMe-based data writing method, apparatus, and system |
US11467764B2 (en) | 2018-06-30 | 2022-10-11 | Huawei Technologies Co., Ltd. | NVMe-based data read method, apparatus, and system |
CN109117386A (zh) * | 2018-07-12 | 2019-01-01 | 中国科学院计算技术研究所 | 一种网络远程读写二级存储的系统及方法 |
CN109086168A (zh) * | 2018-07-13 | 2018-12-25 | 深圳忆联信息系统有限公司 | 一种利用硬件备份固态硬盘写速度的方法及其系统 |
CN109375870A (zh) * | 2018-09-18 | 2019-02-22 | 深圳忆联信息系统有限公司 | 一种加速ssd主控芯片d2h无映射读取的方法及其系统 |
CN109542346A (zh) * | 2018-11-19 | 2019-03-29 | 深圳忆联信息系统有限公司 | 动态数据缓存分配方法、装置、计算机设备和存储介质 |
CN109582523B (zh) * | 2018-11-26 | 2022-03-25 | 深圳忆联信息系统有限公司 | 有效分析SSD前端NVMe模块性能的方法及系统 |
CN109582523A (zh) * | 2018-11-26 | 2019-04-05 | 深圳忆联信息系统有限公司 | 有效分析SSD前端NVMe模块性能的方法及系统 |
CN109634875A (zh) * | 2018-12-12 | 2019-04-16 | 深圳忆联信息系统有限公司 | 命令数据缓存处理方法、装置、计算机设备和存储介质 |
CN109857346A (zh) * | 2019-02-26 | 2019-06-07 | 深圳忆联信息系统有限公司 | 一种提高ssd读写性能的方法、装置、计算机设备及存储介质 |
CN110275679A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息系统有限公司 | 一种固件共享硬件内部缓存的方法及其系统 |
CN110275679B (zh) * | 2019-06-20 | 2022-09-23 | 深圳忆联信息系统有限公司 | 一种固件共享硬件内部缓存的方法及其系统 |
CN111522725A (zh) * | 2020-04-23 | 2020-08-11 | 深圳忆联信息系统有限公司 | Ssd性能自动评估方法、装置、设备及介质 |
CN111831227A (zh) * | 2020-07-07 | 2020-10-27 | 山东华芯半导体有限公司 | 一种nvme协议命令加速处理系统 |
CN111831227B (zh) * | 2020-07-07 | 2024-07-16 | 山东华芯半导体有限公司 | 一种nvme协议命令加速处理系统 |
CN112559385A (zh) * | 2020-12-22 | 2021-03-26 | 深圳忆联信息系统有限公司 | 提升ssd写性能的方法、装置、计算机设备及存储介质 |
WO2024130875A1 (zh) * | 2022-12-22 | 2024-06-27 | 深圳大普微电子科技有限公司 | 固态硬盘数据处理方法、固态硬盘控制器及固态硬盘 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608909A (zh) | 一种NVMe固态硬盘写加速的方法 | |
US10318175B2 (en) | SSD with heterogeneous NVM types | |
US9996435B2 (en) | Reliability scheme using hybrid SSD/HDD replication with log structured management | |
US8321639B2 (en) | Command tracking for direct access block storage devices | |
CN103714015B (zh) | 减少来自侦听过滤器的后无效事务的方法、装置和系统 | |
US7171516B2 (en) | Increasing through-put of a storage controller by autonomically adjusting host delay | |
US10860494B2 (en) | Flushing pages from solid-state storage device | |
US20160188211A1 (en) | Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes | |
US8966155B1 (en) | System and method for implementing a high performance data storage system | |
US10613985B2 (en) | Buffer management in a data storage device wherein a bit indicating whether data is in cache is reset after updating forward table with physical address of non-volatile memory and jettisoning the data from the cache | |
JP2013530448A (ja) | キャッシュストレージアダプタアーキテクチャ | |
CN105760311B (zh) | trim命令响应方法和系统及操作系统 | |
CN103425438B (zh) | 优化固态硬盘写请求的方法及其固态硬盘 | |
EP4170506A1 (en) | Systems, methods, and devices for ordered access of data in block modified memory | |
US9298636B1 (en) | Managing data storage | |
CN113760796B (zh) | 一种基于hbm缓存的ssd固态盘 | |
US9653185B2 (en) | Reducing error correction latency in a data storage system having lossy storage media | |
US20180217935A1 (en) | Method and apparatus for reading redundant array of independent disks | |
US7685366B2 (en) | System and article of manufacture for storing data | |
CN107807790A (zh) | 一种固态硬盘数据写入的方法 | |
US10678701B2 (en) | Direct read control in a data storage system | |
CN106155583A (zh) | 缓存固态设备读取请求结果的系统和方法 | |
US20240061786A1 (en) | Systems, methods, and apparatus for accessing data in versions of memory pages | |
US20240143512A1 (en) | Write buffer linking for easy cache reads | |
CN113093997B (zh) | 一种基于Host Based FTL架构分离数据的方法 |
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 |
Application publication date: 20180119 |
|
RJ01 | Rejection of invention patent application after publication |