一种利用硬件备份固态硬盘写速度的方法及其系统与流程

文档序号:16401259发布日期:2018-12-25 20:08阅读:464来源:国知局
一种利用硬件备份固态硬盘写速度的方法及其系统与流程

本发明涉及固态硬盘领域,更具体地说是指一种利用硬件备份固态硬盘写速度的方法及其系统。

背景技术

现有nandflash写操作过程通常先将主机数据写入dram,之后nfc通过填写描述符的方式读取dram中的数据并写入nand,该方法在主机数据写操作过程中需要对dram进行写操作和读操作,占用dram资源多,且ssd写性能受dram带宽制约。在数据写操作失败时,备份数据寻址不方便。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种利用硬件备份固态硬盘写速度的方法及其系统。

为实现上述目的,本发明采用以下技术方案:

一种利用硬件备份固态硬盘写速度的方法,包括以下步骤:

s1,ssd获取新的写命令,并将命令信息发送到本地fifo;

s2,轮询命令缓冲器中的写命令,并提交给命令管理执行;

s3,完成预处理,并提交数据通路管理执行;

s4,构建数据传输请求,获取主机数据,绑定备份数据dram地址,完成数据备份操作;

s5,根据命令长度大小将命令拆分并为其分配节点资源,将sg信息传递至nfc;

s6,完成数据信息传输。

其进一步技术方案为:所述s1中,主机通知ssd有新的写命令,ssd硬件自动将命令信息发送到本地fifo。

其进一步技术方案为:所述s2包括:

s21,ssd固件通过nvme硬件模块轮询命令缓冲器中的写命令;

s22,ssd固件将所获取的命令提交给命令管理执行。

其进一步技术方案为:所述s3中,所述预处理包括根据命令类型字段区分admin命令和读写命令。

其进一步技术方案为:所述s4中,通过缓冲器管理硬件构建数据传输请求,并通过硬件总线获取主机数据,并以lpa大小为单位绑定备份数据dram地址,完成数据备份操作。

其进一步技术方案为:所述s5中,数据通路管理根据命令长度大小将命令拆分成统一的单元节点,并为其分配节点资源,将sg信息传递至nfc。

其进一步技术方案为:所述s6之后还包括:判断写操作是否失败;如果是,稳固件重新从dram取出数据写入nand,直到写操作成功,并通知软件数据传输完成。

一种利用硬件备份固态硬盘写速度的系统,包括获取发送单元,轮询执行单元,处理单元,构建绑定单元,及拆分分配单元:

所述获取发送单元,用于ssd获取新的写命令,并将命令信息发送到本地fifo;

所述轮询执行单元,用于轮询命令缓冲器中的写命令,并提交给命令管理执行;

所述处理单元,用于完成预处理,并提交数据通路管理执行;

所述构建绑定单元,用于构建数据传输请求,获取主机数据,绑定备份数据dram地址,完成数据备份操作;

所述拆分分配单元,用于根据命令长度大小将命令拆分并为其分配节点资源,将sg信息传递至nfc。

其进一步技术方案为:所述轮询执行单元包括轮询模块和执行模块;

所述轮询模块,用于ssd固件通过nvme硬件模块轮询命令缓冲器中的写命令;

所述执行模块,用于ssd固件将所获取的命令提交给命令管理执行。

其进一步技术方案为:还包括判断单元;

所述判断单元,用于判断写操作是否失败。

本发明与现有技术相比的有益效果是:采用硬件搬运主机数据并直接交给nfc写入nand,节省dram开销,提升写速度,同时引入硬件自动数据备份机制,以lpa大小为单位绑定数据备份地址和流转节点,加速写操作失败时备份数据查找效率。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

图1为现有技术写数据的流程示意图;

图2为本发明一种利用硬件备份固态硬盘写速度的方法的流程图;

图3为本发明的的流程示意图;

图4为本发明一种利用硬件备份固态硬盘写速度的系统的方框图。

10获取发送单元20轮询执行单元

21轮询模块22执行模块

30处理单元40构建绑定单元

50拆分分配单元60判断单元

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。

如图1到图4所示的具体实施例,其中,图1为现有技术写数据的流程示意图,具体内容如下:

1)主机通知ssd有新的写命令,ssd硬件自动将命令信息取到本地fifo;

2)ssd固件查询并获取新的写命令;

3)ssd固件将所获取的命令提交给cm(命令管理)模块执行;

4)cm完成预处理,提交后续模块dpm(数据通路管理)模块进一步执行;

5)dpm模块构建数据传输请求,同时将host数据写入ddr;

6)dpm将命令分割为统一的单元,将sg信息传递至nfc;

7)nfc模块填写描述符,从dram中读取数据并写入nand;

8)若写操作失败,稳固件重新从dram取出数据写入nand,直到写操作成功;

9)通知软件数据传输完成。

但是,上述方法存在以下问题:在主机数据写操作过程中需要对dram进行写操作和读操作,占用dram资源多,且ssd写性能受dram带宽制约,在数据写操作失败时,备份数据寻址不方便。

具体地,如图2至图3所示,本发明公开了一种利用硬件备份固态硬盘写速度的方法,包括以下步骤:

s1,ssd获取新的写命令,并将命令信息发送到本地fifo;

s2,轮询命令缓冲器中的写命令,并提交给命令管理执行;

s3,完成预处理,并提交数据通路管理执行;

s4,构建数据传输请求,获取主机数据,绑定备份数据dram地址,完成数据备份操作;

s5,根据命令长度大小将命令拆分并为其分配节点资源,将sg信息传递至nfc;

s6,完成数据信息传输。

其中,在s1中,主机通知ssd有新的写命令,ssd硬件自动将命令信息发送到本地fifo,提高了效率。

其中,s2包括:

s21,ssd固件通过nvme硬件模块轮询命令缓冲器中的写命令;

s22,ssd固件将所获取的命令提交给命令管理执行。

其中,在s3中,预处理包括根据命令类型字段区分admin命令和读写命令。

其中,在s4中,通过缓冲器管理硬件构建数据传输请求,并通过硬件总线获取主机数据,并以lpa大小为单位绑定备份数据dram地址,完成数据备份操作。

进一步地,在本实施例中,lpa大小采用4kb为单位。

其中,在s5中,数据通路管理(dpm)根据命令长度大小将命令拆分成统一的单元节点,并为其分配节点资源,将sg信息传递至nfc。

其中,s6之后还包括:判断写操作是否失败;如果是,稳固件重新从dram取出数据写入nand,直到写操作成功,并通知软件数据传输完成。

其中,本发明的方法采用硬件搬运主机数据并直接交给nfc写入nand,节省dram开销,提升写速度,同时引入硬件自动数据备份机制,以lpa大小为单位绑定数据备份地址和流转节点,加速写操作失败时备份数据查找效率。

如图4所示,本发明还公开了一种利用硬件备份固态硬盘写速度的系统,包括获取发送单元10,轮询执行单元20,处理单元30,构建绑定单元40,及拆分分配单元50;

获取发送单元10,用于ssd获取新的写命令,并将命令信息发送到本地fifo;

轮询执行单元20,用于轮询命令缓冲器中的写命令,并提交给命令管理执行;

处理单元30,用于完成预处理,并提交数据通路管理执行;

构建绑定单元40,用于构建数据传输请求,获取主机数据,绑定备份数据dram地址,完成数据备份操作;

拆分分配单元50,用于根据命令长度大小将命令拆分并为其分配节点资源,将sg信息传递至nfc。

其中,在本实施例中,轮询执行单元20包括轮询模块21和执行模块22;

轮询模块21,用于ssd固件通过nvme硬件模块轮询命令缓冲器中的写命令;

执行模块22,用于ssd固件将所获取的命令提交给命令管理执行。

其中,该利用硬件备份固态硬盘写速度的系统还包括判断单元60;

判断单元60,用于判断写操作是否失败。

进一步地,当判断的结果为是时,稳固件重新从dram取出数据写入nand,直到写操作成功,并通知软件数据传输完成。

本发明通过数据写操作前进行硬件自动完成数据备份,备份以lpa大小为单位,动态分配数据备份空间,将数据备份地址与流转节点进行绑定关联,从而提高节点流转效率;当写操作失败时,固件可以通过节点信息快速寻址到数据备份区域,交给ftl模块做进一步处理,硬件自动数据备份只在写操作失败时读取dram中的备份数据,占用dram带宽为现有方法的1/2,大大节约了dram带宽。

上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1