CN109933547B - 一种ssd主控中的raid被动加速装置和加速方法 - Google Patents

一种ssd主控中的raid被动加速装置和加速方法 Download PDF

Info

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
Application number
CN201910083928.3A
Other languages
English (en)
Other versions
CN109933547A (zh
Inventor
王运哲
刘大铕
刘奇浩
刘尚
朱苏雁
孙中琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Sinochip Semiconductors Co Ltd
Original Assignee
Shandong Sinochip Semiconductors Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Sinochip Semiconductors Co Ltd filed Critical Shandong Sinochip Semiconductors Co Ltd
Priority to CN201910083928.3A priority Critical patent/CN109933547B/zh
Publication of CN109933547A publication Critical patent/CN109933547A/zh
Priority to PCT/CN2019/093559 priority patent/WO2020155544A1/zh
Application granted granted Critical
Publication of CN109933547B publication Critical patent/CN109933547B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

一种SSD主控中的RAID被动加速装置和加速方法
技术领域
本发明涉及一种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处理。
CN201910083928.3A 2019-01-29 2019-01-29 一种ssd主控中的raid被动加速装置和加速方法 Active CN109933547B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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板卡
US9619180B2 (en) * 2013-07-29 2017-04-11 Silicon Graphics International Corp. System method for I/O acceleration in hybrid storage wherein copies of data segments are deleted if identified segments does not meet quality level threshold
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被动加速装置和加速方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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主动加速装置和加速方法
US10127074B2 (en) Transaction identification synchronization
US10489069B2 (en) Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system
CN101325090B (zh) 通过使循环冗余码线路相对于数据线路偏移改善等待时间
CN101828174A (zh) 用于同步串行接口nand的数据读取的系统及方法
CN109933547B (zh) 一种ssd主控中的raid被动加速装置和加速方法
KR20110003328A (ko) 별도의 순환 중복 코드 프레임들을 이용하는 효율적인 대역내 신뢰도
CN112559056B (zh) 用于减少固件激活时间的技术
US20130173997A1 (en) Memory controller, memory system, and memory write method
KR20170013319A (ko) 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템
WO2020257748A1 (en) Dma-scatter and gather operations for non-contiguous memory
WO2017147794A1 (zh) 差异数据备份的方法和设备
CN103034559B (zh) 基于rdma架构设计的pq检验模块及检验方法
CN103019988A (zh) 电脑、嵌入式控制器及其方法
US20120017116A1 (en) Memory control device, memory device, and memory control method
US9791509B2 (en) Monitoring microprocessor interface information for a preset service using an address based filter
CN110720126B (zh) 传输数据掩码的方法、内存控制器、内存芯片和计算机系统
US20240070024A1 (en) Read Data Path for a Memory System
US11586384B2 (en) Overhead reduction in data transfer protocol for data storage devices
CN104471645A (zh) 采用检错编码的事务的存储器设备的定时优化
CN110837484B (zh) Ssd主控中的raid多路处理装置及数据恢复方法
EP3610379B1 (en) Transaction identification
WO2020186524A1 (zh) 一种存储校验方法及装置
CN113050976A (zh) 基于PCIe总线的FPGA并行升级方法、装置、介质及电子设备
CN108228525B (zh) 一种多核8051处理器soc的安全实现装置以及方法

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