Ssd主控中的raid多路处理装置及数据恢复方法

文档序号:1477147 发布日期:2020-02-25 浏览:7次 >En<

阅读说明:本技术 Ssd主控中的raid多路处理装置及数据恢复方法 (RAID multi-path processing device in SSD master control and data recovery method ) 是由 王运哲 沈力 刘大铕 朱苏雁 刘奇浩 刘尚 孙中琳 王资川 于 2019-10-31 设计创作,主要内容包括:本发明公开一种SSD主控中的RAID多路处理装置,包括总线配置接口AXI_RGF、总线Master接口、总线Slave接口、NFC通道仲裁模块、通路选择仲裁模块、DMA模块、IMA模块、N个异或计算控制模块外加N片双口SRAM。本装置能够为系统提供多通路选择,具体可支持P2S、P2M、M2M、M2S、S2M、S2S六种通路模式。数据恢复方法可以六种通路模式中的任一通路进行,具体的,正常program采用P2S通道,数据恢复采用M2M通路。本发明在SSD主控芯片内部实现RAID,并且可以根据系统情况在不同的工作模式中选用不同的通路,灵活性强。(The invention discloses a RAID multi-path processing device in SSD Master control, which comprises a bus configuration interface AXI _ RGF, a bus Master interface, a bus Slave interface, an NFC channel arbitration module, a path selection arbitration module, a DMA module, an IMA module, N exclusive OR calculation control modules and N pieces of double-port SRAMs. The device can provide multi-channel selection for the system, and particularly can support six channel modes of P2S, P2M, M2M, M2S, S2M and S2S. The data recovery method may be performed in any one of six path modes, specifically, the P2S channel is used for normal program, and the M2M path is used for data recovery. The invention realizes RAID in the SSD main control chip, and can select different paths in different working modes according to the system condition, thereby having strong flexibility.)

SSD主控中的RAID多路处理装置及数据恢复方法

技术领域

本发明涉及一种RAID加速装置,具体的说,是一种SSD主控中的RAID多路处理装置及数据恢复方法。

背景技术

在对SSD的读写当中,从Flash颗粒读出数据时,若ECC纠错失败,且read re-try等操作也无法读出正确数据,此时就需考虑如何进行数据恢复。RAID技术可以充分发挥出存储芯片的阵列优势,提供容错功能来确保数据安全性,在某个存储单元出现问题的情况下仍可以继续工作。即可以通过RAID技术实现数据恢复。现在的RAID一般都是在SSD主控芯片外实现,专利“一种SSD主控中的RAID主动加速装置”和“一种SSD主控中的RAID被动加速装置”虽然公开了在SSD主控芯片内部实现RAID的方法,但是这两者都是单一的硬件通路设计,没法根据应用需求选择相应通路,灵活性差。

发明内容

本发明要解决的技术问题是提供一种SSD主控中的RAID多路处理装置及数据恢复方法,在SSD主控芯片内部实现RAID,并且可以根据系统情况在不同的工作模式中选用不同的通路,灵活性强。

为了解决所述技术问题,本发明采用的技术方案是:一种SSD主控中的RAID多路处理装置,包括:

总线配置接口AXI_RGF,用于接收从CPU配置过来的地址及控制信息,也用于CPU读取RAID加速模块的状态信息、中断信息;

总线master接口AXI_MST,负责向总线发起数据传输,包括从总线读取源数据、向总线写出异或结果数据;

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

NFC通道仲裁模块N_ARB,为NFC的专用接口,负责与NFC的各通道实现握手,按照一定的优先级顺序接收不同NFC通道的数据;

通路选择仲裁模块X_ARB,负责根据通道模式从AXI_MST、AXI_SLV、N_ARB三者中切换数据源,从AXI_MST、AXI_SLV两者中切换数据目的地;

DMA模块,负责连接总线master接口和每一个异或计算控制模块,实现总线协议到内部数据传输协议的转换;

IMA模块,负责连接总线slave接口和每一个异或计算控制模块,实现总线协议到内部数据传输协议的转换;

异或计算控制模块,负责完成相同条带中的每块数据的流水接收及迭代异或运算;

双口SRAM,与异或计算控制模块是一一对应的关系,负责暂存异或运算的中间结果以及存储异或运算的最终结果;

本装置通过上述模块为系统提供多通路选择。

进一步的,本装置支持P2S、 P2M、M2M、M2S、S2M、S2S六种通路模式。

进一步的,P2S通路模式下,待运算数据来自NFC,结算结果去向总线slave接口,CPU配置RAID模式和条带大小;操作时,N_ARB模块接收来自NFC各通道的数据包并输出,X_ARB模块启动相应的异或计算控制模块,并将来自N_ARB的数据包传输给相应的异或计算控制模块,每一个异或计算控制模块对接收的数据进行异或计算并反馈完成信号给X_ARB模块,X_ARB模块统计所有异或计算控制模块完成信号后反馈中断给NFC,NFC收到中断信号后,通过总线从axi_slv口读取运算结果。

M2M通路模式下,待运算数据来自AXI_MST,运算结果去向AXI_MST,CPU配置RAID模式、条带大小、总线上的存取数据地址;操作时,DMA模块解析配置信息控制AXI_MST模块向总线指定地址发起读数据传输,X_ARB模块启动相应的异或计算控制模块,并将来自DMA的数据包传输给相应的异或计算控制模块,每一个异或计算控制模块对接收的数据进行异或计算并反馈完成信号给X_ARB模块,X_ARB模块统计所有异或模块完成信号并反馈给DMA,DMA从每一个异或计算控制模块读取运算结果并通过AXI_MST接口向总线指定地址发起写数据传输。

进一步的,P2M通路模式下,待运算数据来自NFC,运算结果去向AXI_MST,CPU配置RAID模式、条带大小、存放运算结果的总线地址;操作时,N_ARB模块接收来自NFC各通道的数据包并输出,X_ARB模块启动相应的异或计算控制模块,并将来自N_ARB的数据包传输给相应的异或计算控制模块,每一个异或计算控制模块对接收的数据进行异或计算并反馈完成信号给X_ARB模块,X_ARB模块统计所有异或模块完成信号并启动DMA模块,DMA模块与X_ARB模块协同将运算结果从SRAM中读出并通过axi_mst口写入指定的总线地址,等待后续操作。

进一步的,M2S通路模式下,待运算数据来自AXI_MST,运算结果去向AXI_SLV,CPU配置RAID模式、条带大小、源数据在总线上的存放地址;操作时,DMA模块解析配置信息控制AXI_MST模块向总线指定地址发起读数据传输,X_ARB模块启动相应的异或计算控制模块,并将来自DMA的数据包传输给相应的异或计算控制模块,异或计算控制模块对接收的数据进行异或计算并反馈完成信号给X_ARB模块,X_ARB模块统计所有异或模块完成信号并给CPU发送中断信号,总线上的NFC或者其他主机通过axi_slv口读取异或结果,在此过程中IMA模块与X_ARB模块协同将运算结果从SRAM中读出并反馈。

进一步的,S2M通路模式下,待运算数据来自AXI_SLV,运算结果去向AXI_MST,CPU配置RAID模式、条带大小、存放运算结果的总线地址;操作时,AXI_SLV模块接收来自总线上的数据包,IMA模块将数据包转化成内部数据包格式,X_ARB模块启动相应的异或计算控制模块,并将来自IMA的数据包传输给相应的异或计算控制模块,异或计算控制模块对接收的数据进行异或计算并反馈完成信号给X_ARB模块,X_ARB模块统计所有异或模块完成信号并启动DMA模块,DMA模块与X_ARB模块协同将运算结果从SRAM中读出并通过axi_mst口写入指定的总线地址,等待后续操作。

进一步的,S2S通路模式下,待运算数据来自AXI_SLV,运算结果去向AXI_SLV,此外CPU配置RAID模式和条带大小;操作时,AXI_SLV模块接收来自总线上的数据包,IMA模块将数据包转化成内部数据包格式,X_ARB模块依次启动相应的异或计算控制模块,并将来自IMA的数据包传输给相应的异或计算控制模块,异或计算控制模块对接收的数据进行异或计算并反馈完成信号给X_ARB模块,X_ARB模块统计所有异或模块完成信号并反馈终端信号给CPU,总线上的NFC或者其他主机可以通过axi_slv口读取异或结果,在此过程中IMA模块与X_ARB模块协同将运算结果从SRAM中读出并反馈。

本方法还公开了一种数据恢复方法,本方法基于权利要求2所述RAID多路处理装置,正常program和数据恢复采用P2S、 P2M、M2M、M2S、S2M、S2S六种通路中的一种。

进一步的,正常program采用P2S通道,数据恢复采用M2M通路。

本发明的有益效果:本发明既包括AXI_MST又包括AXI_SLV接口,增加NFC通路选择和内部通路仲裁两个模块,并且内嵌阵列SRAM的方式为系统提供了多通路选择,实现无论program还是recovery时都可以根据应用需求选择相应通路,灵活性强。系统在正常program时RAID操作可与NFC对数据的其他操作并行,最大限度提高效率。系统在恢复数据时启用DMA操作,可以统一调度整块数据,最大限度提高稳定性。

附图说明

图1为实施例所述RAID多路处理装置的原理框图。

具体实施方式

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

实施例1

本实施例公开一种SSD主控中的RAID多路处理装置,如图1所示,包括总线配置接口AXI_RGF、总线Master接口AXI_MST、总线Slave接口AXI_SLV、NFC 通道仲裁模块N_ARB、通路选择仲裁模块X_ARB、DMA模块、IMA模块、N个异或计算控制模块外加N片(N由所支持的RAID模式及Flash容量决定)双口SRAM,各模块的作用具体如下:

总线配置接口(AXI_RGF)用于接收从CPU配置过来的地址及控制信息,包括通路模式选择,RAID模式,条带大小以及地址等信息,也用做CPU读取RAID加速模块的状态信息,中断信息。

总线Master接口(AXI_MST)负责向总线发起数据传输,包括从总线读取源数据,向总线写出异或结果数据。

总线slave接口(AXI_SLV)负责接收来自总线的待运算数据,总线也可以通过此接口读取运算结果数据。

NFC channel仲裁模块(N_ARB)负责与NFC的各channel实现握手,按照一定的优先级按顺序接收不同channel的数据。

通路选择仲裁模块(X_ARB)负责根据通路模式从axi_mst/axi_slv/n_arb三者中切换数据源,从axi_mst/axi_slv两者中切换数据目的地。

DMA模块负责连接总线master接口和每一个异或计算控制模块,实现总线协议到内部数据传输协议的转换。

IMA模块负责连接总线slave接口和每一个异或计算控制模块,实现总线协议到内部数据传输协议的转换。

异或计算控制模块(CTRL)与固定大小的SRAM是一对一的关系,负责完成相同条带中的每块数据的流水接收及迭代异或运算。

双口SRAM负责暂存异或运算的中间结果以及存储异或运算的最终结果。

本实施例既包括AXI_MST又包括AXI_SLV接口,增加NFC通路选择和内部通路仲裁两个模块,并且内嵌阵列SRAM的方式为系统提供了多通路选择,具体的,本装置支持P2S、P2M、M2M、M2S、S2M、S2S六种通路模式。

P2S通路模式下的操作步骤为:

1. CPU通过AXI_RGF配置本装置的通路为P2S模式,代表待运算数据来自NFC,运算结果去向AXI_SLV。此外CPU仍需配置RAID模式和条带大小。

2. N_ARB模块根据特定的优先级控制来自NFC各channel的数据包的传输启动,并作一路输出。

3. X_ARB模块通过握手机制依次启动相应的异或计算控制模块,并跟据配置信息通过计数方式将来自N_ARB的数据包传输给相应的计算模块。

4. 每一个异或计算控制模块被启动后,如果接收到的是第一笔数据则直接将其load到SRAM当中;如果接收到的是普通数据将其与从SRAM中读出的数据进行异或运算然后写入SRAM。根据配置信息及内部计数,当运算结束并且结果写入SRAM后,本模块反馈完成信号给X_ARB模块。

5. X_ARB模块统计所有异或模块完成信号并反馈中断(interrupt)给NFC。

6. NFC收到来自本装置的中断信号后,通过总线从axi_slv口读取运算结果,并根据前端命令将其program到相应NAND中。

M2M通路模式下的操作步骤为:

1. CPU通过AXI_RGF配置本装置的通路为M2M模式,代表待运算数据来自AXI_MST,运算结果去向AXI_MST(通常是NFC将从NAND中读出的数据放到DRAM中,本装置的AXI_MST发起对DRAM的读写操作)。此外CPU仍需配置RAID模式和条带大小,以及总线上的存取数据地址。

2. DMA模块解析配置信息控制AXI_MST模块向总线指定地址发起读数据传输。

3. X_ARB模块通过握手机制依次启动相应的异或计算控制模块,并跟据配置信息通过计数方式将来自DMA的数据包传输给相应的计算模块。

4. 每一个异或计算控制模块被启动后,如果接收到的是第一笔数据则直接将其load到SRAM当中;如果接收到的是普通数据将其与从SRAM中读出的数据进行异或运算然后写入SRAM。根据配置信息及内部计数,当运算结束并且结果写入SRAM后,本模块反馈完成信号给X_ARB模块。

5. X_ARB模块统计所有异或模块完成信号并反馈给DMA。

6. DMA从每一个异或计算控制模块读取运算结果并通过AXI_MST接口向总线指定地址发起写数据传输。至此需要恢复的数据即在系统指定地址,可以接受系统的下一步操作。

P2M通路模式下的操作步骤为:

1. CPU通过AXI_RGF配置本装置的通路为P2M模式,代表待运算数据来自NFC,运算结果去向AXI_MST。此外CPU仍需配置RAID模式和条带大小,以及存放运算结果的总线地址。

2. N_ARB模块根据特定的优先级控制来自NFC各channel的数据包的传输启动,并作一路输出。

3. X_ARB模块通过握手机制依次启动相应的异或计算控制模块,并跟据配置信息通过计数方式将来自N_ARB的数据包传输给相应的计算模块。

4. 每一个异或计算控制模块被启动后,如果接收到的是第一笔数据则直接将其load到SRAM当中;如果接收到的是普通数据将其与从SRAM中读出的数据进行异或运算然后写入SRAM。根据配置信息及内部计数,当运算结束并且结果写入SRAM后,本模块反馈完成信号给X_ARB模块。

5. X_ARB模块统计所有异或模块完成信号并启动DMA模块。

6. DMA模块与X_ARB模块协同将运算结果从SRAM中读出并通过axi_mst口写入指定的总线地址,等待后续操作。

M2S通路模式下的操作步骤为:

1. CPU通过AXI_RGF配置本装置的通路为M2M模式,代表待运算数据来自AXI_MST,运算结果去向AXI_SLV。此外CPU仍需配置RAID模式和条带大小,以及源数据在总线上的存放地址。

2. DMA模块解析配置信息控制AXI_MST模块向总线指定地址发起读数据传输。

3. X_ARB模块通过握手机制依次启动相应的异或计算控制模块,并跟据配置信息通过计数方式将来自DMA的数据包传输给相应的计算模块。

4. 每一个异或计算控制模块被启动后,如果接收到的是第一笔数据则直接将其load到SRAM当中;如果接收到的是普通数据将其与从SRAM中读出的数据进行异或运算然后写入SRAM。根据配置信息及内部计数,当运算结束并且结果写入SRAM后,本模块反馈完成信号给X_ARB模块。

5. X_ARB模块统计所有异或模块完成信号并给CPU发送中断信号。

6. 总线上的NFC或者其他master可以通过axi_slv口读取异或结果,在此过程中IMA模块与X_ARB模块协同将运算结果从SRAM中读出并反馈。

S2M通路模式下的操作步骤为:

1. CPU通过AXI_RGF配置本装置的通路为S2M模式,代表待运算数据来自AXI_SLV,运算结果去向AXI_MST。此外CPU仍需配置RAID模式和条带大小,以及存放运算结果的总线地址。

2. AXI_SLV模块接收来自总线上的数据包,IMA模块将数据包转化成内部数据包格式。

3. X_ARB模块通过握手机制依次启动相应的异或计算控制模块,并跟据配置信息通过计数方式将来自IMA的数据包传输给相应的计算模块。

4. 每一个异或计算控制模块被启动后,如果接收到的是第一笔数据则直接将其load到SRAM当中;如果接收到的是普通数据将其与从SRAM中读出的数据进行异或运算然后写入SRAM。根据配置信息及内部计数,当运算结束并且结果写入SRAM后,本模块反馈完成信号给X_ARB模块。

5. X_ARB模块统计所有异或模块完成信号并启动DMA模块。

6. DMA模块与X_ARB模块协同将运算结果从SRAM中读出并通过axi_mst口写入指定的总线地址,等待后续操作。

S2S通路模式下的操作步骤为:

1. CPU通过AXI_RGF配置本装置的通路为S2S模式,代表待运算数据来自AXI_SLV,运算结果去向AXI_SLV。此外CPU仍需配置RAID模式和条带大小。

2. AXI_SLV模块接收来自总线上的数据包,IMA模块将数据包转化成内部数据包格式。

3. X_ARB模块通过握手机制依次启动相应的异或计算控制模块,并跟据配置信息通过计数方式将来自IMA的数据包传输给相应的计算模块。

4. 每一个异或计算控制模块被启动后,如果接收到的是第一笔数据则直接将其load到SRAM当中;如果接收到的是普通数据将其与从SRAM中读出的数据进行异或运算然后写入SRAM。根据配置信息及内部计数,当运算结束并且结果写入SRAM后,本模块反馈完成信号给X_ARB模块。

5. X_ARB模块统计所有异或模块完成信号并反馈中断信号给CPU。

6. 总线上的NFC或者其他master可以通过axi_slv口读取异或结果,在此过程中IMA模块与X_ARB模块协同将运算结果从SRAM中读出并反馈。

P2S通路效率最高,可用作正常program的首选通路,M2M通道性能最稳定,是数据恢复的首选通路。同时,CPU可根据系统情况(DRAM的大小,总线的效率)在不同的工作模式中选用不同的通路。当系统进行调试或者有特别的通路需求(比如与系统的其他功能共享资源时)还可以启动P2M, M2S, S2M, S2S等通路的数据传输。

本实施例中,系统在正常program时RAID操作与NFC对数据的其他操作并行,最大限度提高效率。

实施例2

本实施例公开一种数据恢复方法,本方法基于权利要求1所述RAID多路处理装置,包括正常program和数据恢复两个步骤,进行恢复时,正常program、数据恢复采用P2S、 P2M、M2M、M2S、S2M、S2S六种通路中的一种模式进行。

优选的,P2S通路效率最高,可用作正常program的首选通路,M2M通道性能最稳定,是数据恢复的首选通路。

P2S、 P2M、M2M、M2S、S2M、S2S通路模式下的操作步骤同实施例1相同,本实施例不再累述。

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

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:接口配置方法、装置、电子器件以及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!