CN109933547B - 一种ssd主控中的raid被动加速装置和加速方法 - Google Patents
一种ssd主控中的raid被动加速装置和加速方法 Download PDFInfo
- Publication number
- CN109933547B CN109933547B CN201910083928.3A CN201910083928A CN109933547B CN 109933547 B CN109933547 B CN 109933547B CN 201910083928 A CN201910083928 A CN 201910083928A CN 109933547 B CN109933547 B CN 109933547B
- Authority
- CN
- China
- Prior art keywords
- bus
- data
- sram
- raid
- result
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种SSD主控中的RAID被动加速装置和加速方法,所述加速装置包括总线配置接口、总线slave接口、异或运算模块和控制模块,控制模块负责根据从配置总线接口得到的配置信息生成取数计算写结果的状态流程,并且总线调配slave接口、异或计算模块实现整个流程,然后将状态反馈给总线配置接口。加速方法将raid加速模块挂在总线上作为一个slave,利用总线广播模式将program的数据从DRAM同时发给异或运算模块和NFC。本发明,在SSD主控中实现RAID,并且提高RAID的速度,提高***效率。
Description
技术领域
本发明涉及一种RAID加速装置和加速方法,具体是一种SSD主控中的RAID被动加速装置和加速方法,使用硬件帮助CPU加速SSD存储中的RAID实现。
背景技术
在对SSD的读写当中,从Flash颗粒读出数据时,若ECC纠错失败,且read re-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,负责接收来自总线的广播数据,总线也可以通过此接口读取运算结果数据;
异或运算模块RAID CAL,负责将从SRAM中读取的中间异或结果与从Master口新读入的数据进行异或运算并将所得新结果写入SRAM;
控制模块RAID CTL,负责根据从配置总线接口得到的配置信息生成取数计算写结果的状态流程,并且总线调配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利用率。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。
Claims (7)
1.一种SSD主控中的RAID被动加速装置,其特征在于:本装置为直接挂在总线上的被动加速装置,包括以下模块:
总线配置接口,负责接收来自CPU的配置信息;
总线slave接口,负责接收来自总线的广播数据,总线也可以通过此接口读取运算结果数据;
异或运算模块,负责将从SRAM中读取的中间异或结果与从Master口新读入的数据进行异或运算并将所得新结果写入SRAM;
控制模块,负责根据从配置总线接口得到的配置信息生成取数计算写结果的状态流程,并且总线调配slave接口、异或计算模块实现整个流程,然后将状态反馈给总线配置接口;
控制模块生成的状态流程包括并行的四部分操作,分别为:使能slave接口接收总线数据;使能SRAM并从SRAM中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自SRAM的数据进行异或运算得到相应结果;将运算结果替换SRAM中对应数据留待下一轮大循环时读出使用。
2.根据权利要求1所述的SSD主控中的RAID被动加速装置,其特征在于:总线配置接口从CPU接收的配置信息包括启动信息、地址信息和数据长度。
3.根据权利要求1所述的SSD主控中的RAID被动加速装置,其特征在于:并行操作中使用双口SRAM,读出的是当前总线周期所对应的数据,写入的是上一个总线周期所对应的异或计算结果。
4.根据权利要求1所述的SSD主控中的RAID被动加速装置,其特征在于:并行操作持续至读取条带中的每一页在总线上的每个周期都结束,最终的异或结果将存在SRAM中留待NFC处理。
5.一种SSD主控中的RAID被动加速方法,其特征在于:包括以下步骤:
S01)、总线配置接口接收到来自CPU的配置信息,该配置信息包括启动信息、地址信息和页数据长度;
S02)、控制模块根据上述配置信息进入储数状态,启动slave接口接收总线广播的数据,直至收到配置信息中所指定数据长度的数据,与此同时,控制模块向NFC中的SRAM发送使能信号,将收到的配置信息中所指定数据长度的数据存入SRAM当中缓存;
S03)、控制模块进入计算状态,启动内部大循环计数器和小循环计数器,其中大循环负责计数整个读取条带的每一页,小循环负责计数某一页在总线上的每个周期,此步骤包括并行的四部分操作:使能slave接口接收总线数据;使能SRAM并从SRAM中读出与当前总线上对应的数据;使能异或计算模块将来自总线的数据和来自SRAM的数据进行异或运算得到相应结果;将运算结果替换SRAM中对应数据留待下一轮大循环时读出使用;
S04)、控制模块进入空闲状态,更新配置接口中的状态寄存器。
6.根据权利要求5所述的SSD主控中的RAID被动加速方法,其特征在于:并行操作中使用双口SRAM,读出的是当前总线周期所对应的数据,写入的是上一个总线周期所对应的异或计算结果。
7.根据权利要求5所述的SSD主控中的RAID被动加速方法,其特征在于:并行操作持续至大小循环都结束,最终的异或结果将存在SRAM中留待NFC处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910083928.3A CN109933547B (zh) | 2019-01-29 | 2019-01-29 | 一种ssd主控中的raid被动加速装置和加速方法 |
PCT/CN2019/093559 WO2020155544A1 (zh) | 2019-01-29 | 2019-06-28 | 一种ssd主控中的raid被动加速装置和加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910083928.3A CN109933547B (zh) | 2019-01-29 | 2019-01-29 | 一种ssd主控中的raid被动加速装置和加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933547A CN109933547A (zh) | 2019-06-25 |
CN109933547B true CN109933547B (zh) | 2023-03-10 |
Family
ID=66985287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910083928.3A Active CN109933547B (zh) | 2019-01-29 | 2019-01-29 | 一种ssd主控中的raid被动加速装置和加速方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109933547B (zh) |
WO (1) | WO2020155544A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933547B (zh) * | 2019-01-29 | 2023-03-10 | 山东华芯半导体有限公司 | 一种ssd主控中的raid被动加速装置和加速方法 |
CN110837484B (zh) * | 2019-10-31 | 2023-03-24 | 山东华芯半导体有限公司 | Ssd主控中的raid多路处理装置及数据恢复方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833424A (zh) * | 2010-03-26 | 2010-09-15 | 中国科学院光电技术研究所 | 基于fpga的高速存储与传输装置 |
CN102694709A (zh) * | 2012-05-18 | 2012-09-26 | 天津大学 | 基于dmt的高速1553b通信总线发送方法与装置 |
CN103019893A (zh) * | 2012-11-16 | 2013-04-03 | 华中科技大学 | 一种多盘容错的二维混合盘raid4***架构及其读写方法 |
CN103150427A (zh) * | 2013-02-19 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于ssd硬盘缓存加速与备份的raid设计方法 |
CN105138288A (zh) * | 2015-08-19 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 实现raid5功能的存储方法、装置及主控芯片*** |
CN206696842U (zh) * | 2017-05-10 | 2017-12-01 | 山东鸿秦微电子科技有限公司 | 一种raid校验生成装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644303B2 (en) * | 2005-10-07 | 2010-01-05 | Agere Systems Inc. | Back-annotation in storage-device array |
CN102012791B (zh) * | 2010-10-15 | 2013-06-19 | 中国人民解放军国防科学技术大学 | 基于Flash的数据存储PCIE板卡 |
WO2015017147A1 (en) * | 2013-07-29 | 2015-02-05 | Silicon Graphics International Corp. | I/o acceleration in hybrid storage |
CN103455283B (zh) * | 2013-08-19 | 2016-01-20 | 华中科技大学 | 一种混合存储*** |
CN104901859A (zh) * | 2015-06-11 | 2015-09-09 | 东南大学 | 一种axi/pcie总线转换装置 |
CN109933547B (zh) * | 2019-01-29 | 2023-03-10 | 山东华芯半导体有限公司 | 一种ssd主控中的raid被动加速装置和加速方法 |
-
2019
- 2019-01-29 CN CN201910083928.3A patent/CN109933547B/zh active Active
- 2019-06-28 WO PCT/CN2019/093559 patent/WO2020155544A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833424A (zh) * | 2010-03-26 | 2010-09-15 | 中国科学院光电技术研究所 | 基于fpga的高速存储与传输装置 |
CN102694709A (zh) * | 2012-05-18 | 2012-09-26 | 天津大学 | 基于dmt的高速1553b通信总线发送方法与装置 |
CN103019893A (zh) * | 2012-11-16 | 2013-04-03 | 华中科技大学 | 一种多盘容错的二维混合盘raid4***架构及其读写方法 |
CN103150427A (zh) * | 2013-02-19 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于ssd硬盘缓存加速与备份的raid设计方法 |
CN105138288A (zh) * | 2015-08-19 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 实现raid5功能的存储方法、装置及主控芯片*** |
CN206696842U (zh) * | 2017-05-10 | 2017-12-01 | 山东鸿秦微电子科技有限公司 | 一种raid校验生成装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020155544A1 (zh) | 2020-08-06 |
CN109933547A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933546B (zh) | 一种ssd主控中的raid主动加速装置和加速方法 | |
US20190065237A1 (en) | Transaction identification synchronization | |
US10976939B2 (en) | Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system | |
US9921914B2 (en) | Redundant array of independent disks (RAID) write hole solutions | |
CN107256363B (zh) | 一种由加解密模块阵列组成的高速加解密装置 | |
CN101325090B (zh) | 通过使循环冗余码线路相对于数据线路偏移改善等待时间 | |
CN101815990A (zh) | 用于执行存储器块初始化及复制的存储器控制器 | |
CN109933547B (zh) | 一种ssd主控中的raid被动加速装置和加速方法 | |
US11003606B2 (en) | DMA-scatter and gather operations for non-contiguous memory | |
CN112612639A (zh) | 操作存储器***的方法、操作主机的方法和计算*** | |
US11586384B2 (en) | Overhead reduction in data transfer protocol for data storage devices | |
CN103034559B (zh) | 基于rdma架构设计的pq检验模块及检验方法 | |
CN106919474A (zh) | 一种缓存数据保护方法和装置 | |
CN110720126A (zh) | 传输数据掩码的方法、内存控制器、内存芯片和计算机*** | |
CN117631980A (zh) | 用于存储器***的读取数据路径 | |
US9791509B2 (en) | Monitoring microprocessor interface information for a preset service using an address based filter | |
CN110837484B (zh) | Ssd主控中的raid多路处理装置及数据恢复方法 | |
EP3610379B1 (en) | Transaction identification | |
CN113050976A (zh) | 基于PCIe总线的FPGA并行升级方法、装置、介质及电子设备 | |
US11989088B2 (en) | Read data path | |
CN113536280B (zh) | 认证设备、方法和*** | |
WO2022199155A1 (zh) | 一种数据传输的***、方法以及网络设备 | |
CN116189747A (zh) | 一种用于生成nand校验数据的xore模块配置***及方法 | |
CN116302748A (zh) | 一种存储器检测方法及检测设备、存储介质 | |
CN117795466A (zh) | 使用子命令的存取请求管理 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |