一种SSD主控中的RAID主动加速装置和加速方法制造方法及图纸

技术编号:21453821 阅读:34 留言:0更新日期:2019-06-26 04:44
本发明专利技术公开一种SSD主控中的RAID主动加速装置和加速方法,所述加速装置包括总线配置接口、总线Master接口、控制模块、异或计算模块和SRAM,控制模块根据从总线配置接口得到的信息生成取数计算写结果的状态流程,并且调配Master接口、异或计算模块实现整个流程,然后将状态反馈给总线配置接口;在状态流程中,使能异或计算模块将来自总线的数据和来自SRAM的数据进行异或运算得到相应结果,将运算结果替换SRAM中对应数据。本发明专利技术使用硬件帮助CPU加速SSD存储中的RAID实现,提高RAID的速度,提高系统效率。

【技术实现步骤摘要】
一种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的配置信息,也用作CPU读取RAID加速模块的状态信息、中断信息;总线Master接口,根据控制模块的指令向总线发起数据传输,包括从总线读取源数据、向总线写出异或结果数据;控制模块,根据从总线配置接口得到的信息生成取数计算写结果的状态流程,并且调配Master接口、异或计算模块实现整个流程,然后将状态反馈给总线配置接口;异或计算模块,负责从SRAM中读取中间异或结果与从Master口新读入的数据进行异或并将新结果写入SRAM;SRAM,负责暂存异或运算的中间结果。进一步的,总线配置接口接收的配置信息包括工作模式、地址信息、页数据长度。进一步的,控制模块生成的状态流程包括并行的四部分操作,分别为:使能总线Master接口向总线读取数据;使能SRAM并从SRAM中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自SRAM的数据进行异或运算得到相应结果;将运算结果替换SRAM中对应数据留待下一轮大循环时读出使用。进一步的,配置信息中的工作模式包括命令队列模式和寄存器模式,若参与异或运算的源数据不大于5组时,使用命令队列模式,若参数异或运算的源数据大于5组,则使用寄存器模式。本专利技术还公开了一种上述加速装置进行RAID主动加速的方法,包括以下步骤:S01)、总线配置接口接收来自CPU的配置信息,该配置信息包括工作模式、地址信息和页数据长度;S02)、控制模块根据上述配置信息进入储数状态,启动总线Master接口向总线读取数据,直至取到配置信息中所指定数据长度的数据,与此同时,控制模块使能SRAM,将该笔数据存入SRAM当中缓存;S03)、控制模块进入计算状态,启动内部大循环计数器和小循环计数器,大循环计数器负责计数整个条带的每一页,小循环负责计数某一页在总线上的每个周期,此步骤包括并行的四部分操作:使能Master接口向总线读取数据;使能SRAM并从SRAM中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自SRAM的数据进行异或运算得到相应结果;将运算结果替换SRAM中对应数据留待下一轮大循环时读出使用;大、小循环都结束时停止上述并行操作;S04)、控制模块进入发数状态,该状态下将最后一轮大循环的所有异或结果发送给总线Master接口,Master接口将数据发送到总线配置接口所指定的地址当中;S05)、控制模块进入空闲状态,更新配置接口中的状态寄存器。进一步的,配置信息中的工作模式包括命令队列模式和寄存器模式,若参与异或运算的源数据不大于5组时,使用命令队列模式,若参数异或运算的源数据大于5组,则使用寄存器模式。进一步的,命令队列模式的操作过程为:把需要做异或的各源地址索引和存放结果的目的地址索引,以FIFO条目的形式依次存入命令队列,RAID加速模块对命令队列中的每条命令操作如下:根据源地址,从DRAM或NFC获得数据,并将异或得出的中间校验数据循环替换到内部的SRAM内,当异或结束后,自动将SRAM内的数据搬到FIFO条目中指定的目的地址中。进一步的,寄存器模式的操作过程为:CPU在配置完源数据地址索引和目的地址索引后启动RAID加速模块读取数据,进行异或操作,搬移异或结果。进一步的,源地址索引和目的地址索引在命令队列中的存放格式为:,SEL为选择码,SRC4~SRC0均是5位宽的源地址索引,以指代32个具体地址,这32个地址由CPU配置SRC_ADDR0~SRC_ADDR31来决定,DES是4位宽的目的地址索引,可以指代16个具体地址,这16个地址由CPU配置DES_ADDR0~DES_ADDR15来决定;SEL取不同数值时,异或操作不同,具体为:0或者1:无操作;2:将SRC0所指代的地址中的数据与SRC11所指代的地址中的数据进行异或操作,并将结果搬运到DES所指代的地址当中;3:将SRC0所指代的地址中的数据先与SRC1所指代的地址中的数据进行异或操作,然后将所得结果与SRC2所指代的地址中的数据进行异或操作,完成后将最终异或结果搬运到DES所指代的地址当中;4:将SRC0所指代的地址中的数据先与SRC1所指代的地址中的数据进行异或操作,然后将所得结果与SRC2所指代的地址中的数据进行异或操作,然后再将所得结果与SRC3所指代的地址中的数据进行异或操作,完成后将最终异或结果搬运到DES所指代的地址当中;5:将SRC0所指代的地址中的数据先与SRC1所指代的地址中的数据进行异或操作,然后将所得结果与SRC2所指代的地址中的数据进行异或操作,然后再将所得结果与SRC3所指代的地址中的数据进行异或操作,然后再将所得结果与SRC4所指代的地址中的数据进行异或操作,完成后将最终异或结果搬运到DES所指代的地址当中;6或者7:异或运算模块在总线配置接口的读数据线上反馈错误提示CPU微码配置错误。进一步的,只有在命令队列为空时,CPU才可以更改源地址和目的地址的配置,CPU通过读取状态寄存器获得命令队列的空/满状态,根据需求自定义命令队列的深度,命令队列的深度指通过SEL的取值决定异或操作的数据量。本专利技术的有益效果:本专利技术所述RAID主动加速装置是集成在SSD主控制内的一个硬件模块,通过与CPU配置命令队列结合实现RAID,也就是说本专利技术通过软硬件结合实现RAID,灵活性强。将raid加速模块挂在总线上作为一个Master,可以主动访问总线上的所有地址空间,方便软件操作。内部数据流向设计成流水线最大限度利用总线带宽。命令队列模式节省CPU周期,提高系统效率。附图说明图1为实施例1所述RAID主动加速模块的原理框图。具体实施方式下面结合附图和具体实施例对本专利技术作进一步的说明。实施例1本实施例公开一种SSD主控中的RAID主动加速装置,本装置为直接挂在总线上的主动加速装置,实现的是将软件划分好的条带内各页数据进行异或操作后再将得到的校验位数据写入软件指定的目的地址。如图1所示,包括:总线配置接口AXI_RGF,用于接收来自CPU的配置信息,也用作CPU读取RAID加速模本文档来自技高网...

【技术保护点】
1.一种SSD主控中的RAID主动加速装置,其特征在于:本装置为直接挂在总线上的主动加速装置,包括以下模块:总线配置接口,用于接收来自CPU的配置信息,也用作CPU读取RAID 加速模块的状态信息、中断信息;总线Master接口,根据控制模块的指令向总线发起数据传输,包括从总线读取源数据、向总线写出异或结果数据;控制模块,根据从总线配置接口得到的信息生成取数计算写结果的状态流程,并且调配Master接口、异或计算模块实现整个流程,然后将状态反馈给总线配置接口;异或计算模块,负责从SRAM中读取中间异或结果与从Master口新读入的数据进行异或并将新结果写入SRAM;SRAM,负责暂存异或运算的中间结果。

【技术特征摘要】
1.一种SSD主控中的RAID主动加速装置,其特征在于:本装置为直接挂在总线上的主动加速装置,包括以下模块:总线配置接口,用于接收来自CPU的配置信息,也用作CPU读取RAID加速模块的状态信息、中断信息;总线Master接口,根据控制模块的指令向总线发起数据传输,包括从总线读取源数据、向总线写出异或结果数据;控制模块,根据从总线配置接口得到的信息生成取数计算写结果的状态流程,并且调配Master接口、异或计算模块实现整个流程,然后将状态反馈给总线配置接口;异或计算模块,负责从SRAM中读取中间异或结果与从Master口新读入的数据进行异或并将新结果写入SRAM;SRAM,负责暂存异或运算的中间结果。2.根据权利要求1所述的SSD主控中的RAID主动加速装置,其特征在于:总线配置接口接收的配置信息包括工作模式、地址信息、页数据长度。3.根据权利要求1所述的SSD主控中的RAID主动加速装置,其特征在于:控制模块生成的状态流程包括并行的四部分操作,分别为:使能总线Master接口向总线读取数据;使能SRAM并从SRAM中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自SRAM的数据进行异或运算得到相应结果;将运算结果替换SRAM中对应数据留待下一轮大循环时读出使用。4.根据权利要求2所述的SSD主控中的RAID主动加速装置,其特征在于:配置信息中的工作模式包括命令队列模式和寄存器模式,若参与异或运算的源数据不大于5组时,使用命令队列模式,若参数异或运算的源数据大于5组,则使用寄存器模式。5.一种基于权利要求1所述加速装置进行RAID主动加速的方法,其特征在于:包括以下步骤:S01)、总线配置接口接收来自CPU的配置信息,该配置信息包括工作模式、地址信息和页数据长度;S02)、控制模块根据上述配置信息进入储数状态,启动总线Master接口向总线读取数据,直至取到配置信息中所指定数据长度的数据,与此同时,控制模块使能SRAM,将该笔数据存入SRAM当中缓存;S03)、控制模块进入计算状态,启动内部大循环计数器和小循环计数器,大循环计数器负责计数整个条带的每一页,小循环负责计数某一页在总线上的每个周期,此步骤包括并行的四部分操作:使能Master接口向总线读取数据;使能SRAM并从SRAM中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自SRAM的数据进行异或运算得到相应结果;将运算结果替换SRAM中对应数据留待下一轮大循环时读出使用;大、小循环都结束时停止上述并行操作;S04)、控制模块进入发数状态,该状态下将最后一轮大循环的所有异或结果发送给总线Master接口,Master接口将数据发送到总线配置接口所指定的地址当中;S05)、控制模块进入空闲状态,更新配置接口中的状态寄存器。6.根据权利要求...

【专利技术属性】
技术研发人员:王运哲刘大铕刘奇浩刘尚朱苏雁孙中琳
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1