一种SSD主控中的RAID被动加速装置和加速方法与流程

文档序号:18009614发布日期:2019-06-25 23:50阅读:512来源:国知局
一种SSD主控中的RAID被动加速装置和加速方法与流程

本发明涉及一种raid加速装置和加速方法,具体是一种ssd主控中的raid被动加速装置和加速方法,使用硬件帮助cpu加速ssd存储中的raid实现。



背景技术:

在对ssd的读写当中,从flash颗粒读出数据时,若ecc纠错失败,且readre-try等操作也无法读出正确数据,此时就需考虑如何进行数据恢复。raid技术可以充分发挥出存储芯片的阵列优势,提供容错功能来确保数据安全性,在某个存储单元出现问题的情况下仍可以继续工作。

现有的raid技术一般是针对hdd盘,使用操作系统或者raid卡两种方式实现raid。在ssd控制器中实现raid的方法很少,并且现有的方法大都是单纯通过软件实现,降低了正常使用时的写效率,恢复数据时的读效率。



技术实现要素:

针对现有技术的缺陷,本发明提供一种ssd主控中的raid被动加速装置和加速方法,在ssd主控中实现raid,并且提高raid的速度,提高系统效率。

为了解决所述技术问题,本发明采用的技术方案是:一种ssd主控中的raid被动加速装置,本装置为直接挂在总线上的被动加速装置,包括以下模块:

总线配置接口,负责接收来自cpu的配置信息;

总线slave接口,负责接收来自总线的广播数据,总线也可以通过此接口读取运算结果数据;

异或运算模块,负责将从sram中读取的中间异或结果与从master口新读入的数据进行异或运算并将所得新结果写入sram;

控制模块,负责根据从配置总线接口得到的配置信息生成取数计算写结果的状态流程,并且总线调配slave接口、异或计算模块实现整个流程,然后将状态反馈给总线配置接口。

进一步的,总线配置接口从cpu接收的配置信息包括启动信息、地址信息和数据长度。

进一步的,控制模块生成的状态流程包括并行的四部分操作,分别为:使能slave接口接收总线数据;使能sram并从sram中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自sram的数据进行异或运算得到相应结果;将运算结果替换sram中对应数据留待下一轮大循环时读出使用。

进一步的,并行操作中使用双口sram,读出的是当前总线周期所对应的数据,写入的是上一个总线周期所对应的异或计算结果。

进一步的,并行操作持续至整个读取条带中的每一页在总线上的每个周期都结束,最终的异或结果将存在sram中留待nfc处理。

本发明还公开一种ssd主控中的raid被动加速方法,包括以下步骤:

s01)、总线配置接口接收到来自cpu的配置信息,该配置信息包括启动信息、地址信息和页数据长度;

s02)、控制模块根据上述配置信息进入储数状态,启动slave接口接收总线广播的数据,直至收到配置信息中所指定数据长度的数据,与此同时,控制模块向nfc中的sram发送使能信号,将该笔数据存入sram当中缓存;

s03)、控制模块进入计算状态,启动内部大循环计数器和小循环计数器,其中大循环负责计数整个读取条带的每一页,小循环负责计数某一页在总线上的每个周期,此步骤包括并行的四部分操作:使能slave接口接收总线数据;使能sram并从sram中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自sram的数据进行异或运算得到相应结果;将运算结果替换sram中对应数据留待下一轮大循环时读出使用;

s04)、控制模块进入空闲状态,更新配置接口中的状态寄存器。

进一步的,并行操作中使用双口sram,读出的是当前总线周期所对应的数据,写入的是上一个总线周期所对应的异或计算结果。

进一步的,并行操作持续至大小循环都结束,最终的异或结果将存在sram中留待nfc处理。

本发明的有益效果:本发明所述加速装置是集成在ssd主控制内的一个硬件模块,通过与cpu配置命令队列结合实现raid,也就是说本发明通过软硬件结合实现raid,灵活性强。将raid加速模块挂在总线上作为一个slave,利用了总线的广播模式,方便系统进行数据调度,使得raid加速与nfc中的ecc和加扰等在不影响流程的情况下同时进行,提高数据流的效率。与nfc分时共享sram,提高了sram利用率。

附图说明

图1为实施例1所述加速装置的原理框图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步的说明。

实施例1

本实施例公开一种ssd主控中的raid被动加速装置,如图1所示,本装置是直接挂在总线axi_interconnect上的一个被动加速装置(slave),cpu使用总线的广播模式,将program的数据从dram同时发给异或运算模块和nfc。raid加速模块与nfc之间有传输数据的接口,在完成异或运算后通过接口将结果存放于nfc的sram中。

具体的,本装置包括以下模块:

总线配置接口axi_rgf,负责接收来自cpu的配置信息;

总线slave接口axi_slv,负责接收来自总线的广播数据,总线也可以通过此接口读取运算结果数据;

异或运算模块raidcal,负责将从sram中读取的中间异或结果与从master口新读入的数据进行异或运算并将所得新结果写入sram;

控制模块raidctl,负责根据从配置总线接口得到的配置信息生成取数计算写结果的状态流程,并且总线调配slave接口、异或计算模块实现整个流程,然后将状态反馈给总线配置接口。

本实施例中,总线配置接口从cpu接收的配置信息包括启动信息、地址信息和数据长度。

本实施例中,控制模块生成的状态流程包括并行的四部分操作,分别为:使能slave接口接收总线数据;使能sram并从sram中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自sram的数据进行异或运算得到相应结果;将运算结果替换sram中对应数据留待下一轮大循环时读出使用。本过程中,并行操作中使用双口sram,读出的是当前总线周期所对应的数据,写入的是上一个总线周期所对应的异或计算结果。并行操作持续至整个读取条带中的每一页在总线上的每个周期都结束,最终的异或结果将存在sram中留待nfc处理。

本实施例所述被动加速装置是集成在ssd控制器中一个硬件模块,使用硬件帮助cpu加速ssd存储中的raid实现。与单纯的软件实现相比,速度更快,更灵活。

实施例2

本实施例公开一种ssd主控中的raid被动加速方法,包括以下步骤:

s01)、总线配置接口接收到来自cpu的配置信息,该配置信息包括启动信息、地址信息和页数据长度;

s02)、控制模块根据上述配置信息进入储数状态,启动slave接口接收总线广播的数据,直至收到配置信息中所指定数据长度的数据,与此同时,控制模块向nfc中的sram发送使能信号,将该笔数据存入sram当中缓存;

s03)、控制模块进入计算状态,启动内部大循环计数器和小循环计数器,其中大循环负责计数整个读取条带的每一页,小循环负责计数某一页在总线上的每个周期,此步骤包括并行的四部分操作:使能slave接口接收总线数据;使能sram并从sram中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自sram的数据进行异或运算得到相应结果;将运算结果替换sram中对应数据留待下一轮大循环时读出使用;

本实施例中,从sram中读出的数据是初始值或者之前异或的结果,与来自总线的数据不同。从sram中读出与当前总线上对应的数据中的对应是指同一条带的数据。因为总线上有很多数据,包括多channel、多lun、多plane等flash单元里的不同数据,但就做raid来讲就是只有同一条带的数据才拿来做异或,并且sram中存有多个条带的中间异或结果,所以sram中的数据与总线上的数据存在基于同一条带的对应关系。slave口是与总线相连接的,中间异或结果存在sram中,所以中间异或结果即是从sram中读出的对应数据,slave口新接收数据即是总线上的对应数据。来自总线的数据和来自sram的数据是同一条带上的数据。

s04)、控制模块进入空闲状态,更新配置接口中的状态寄存器。

具体的,并行操作中使用双口sram,读出的是当前总线周期所对应的数据,写入的是上一个总线周期所对应的异或计算结果。并行操作持续至大小循环都结束,最终的异或结果将存在sram中留待nfc处理。

本方法将raid加速模块挂在总线上作为一个slave,利用了总线的广播模式,方便系统进行数据调度,使得raid加速与nfc中的ecc和加扰等在不影响流程的情况下同时进行,提高数据流的效率。与nfc分时共享sram,提高了sram利用率。

以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。

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