CN112036117B - 一种适用于多种位宽并行输入数据的crc校验控制*** - Google Patents
一种适用于多种位宽并行输入数据的crc校验控制*** Download PDFInfo
- Publication number
- CN112036117B CN112036117B CN202010889797.0A CN202010889797A CN112036117B CN 112036117 B CN112036117 B CN 112036117B CN 202010889797 A CN202010889797 A CN 202010889797A CN 112036117 B CN112036117 B CN 112036117B
- Authority
- CN
- China
- Prior art keywords
- crc
- unit
- calculation
- interrupt
- data
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种适用于多种位宽并行输入数据的CRC校验控制***,AHB接口单元实现对AHB访问协议的解析;CRC计算单元对数据源进行CRC计算后,将CRC值进行输出;CRC预置值单元用于和CRC计算的结果进行比较;比较单元实现对校验值和预置值进行比对;计数单元实现对校验过程进行超时计数和对数据源进行计数,生成中断产生单元所需的条件;中断产生单元实现控制***对外中断的产生。通过采用基于校验数据源选择最佳计算多项式的机制、数据并行校验机制以及中断控制处理机制等,实现对不同数据源采用不同多项式的快速并行校验,同时又能通过中断处理机制,提升控制***工作的可靠性,解决了嵌入***、SoC***内数据可靠性问题。
Description
技术领域
本发明属于嵌入式***、集成电路设计技术领域,具体涉及一种适用于多种位宽并行输入数据的CRC校验控制***。
背景技术
高安全高可靠SoC对可靠性要求极高,也就意味着对存储***中数据的可靠性提出了很高的要求。通常来讲,存储***通过SRAM、FLASH等常用存储器件实现,该类器件在对数据存储过程中,受到内部***传输或外接不确定因素的影响,时常会出现存储的数据与原始数据不一致等问题。为解决上述问题,设计中通常会引入循环冗余校验(CyclicRedundancy Check,CRC)机制,对存储***中的数据进行校验,来确保数据的可靠性。因此,设计一种CRC校验控制***就显得尤为重要,以高通用的控制***为甚。
目前,主流的CRC校验控制结构均采用单一的计算多项式式,没有充分考虑数据的特性(譬如位宽、数据量)以及控制器工作的可靠性,从而导致此类控制结构的通用性差、校验性能不高、工作可靠性差。因此,迫切地需要一种以最短的时间开销实现对数据源的校验,同时可选择多种计算多项式式以提升通用性的校验控制***,此外还需要考虑校验***稳定可靠工作,具备健全的可靠保障机制。目前,现有的转换结构均未能考虑此类问题,在不同层面上都反映出相应技术的缺失,经检索相关文献,也没有能很好解决该问题的方法。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种适用于多种位宽并行输入数据的CRC校验控制***,针对SoC存储***内大批量数据对可靠性要求高的特点,通过采用基于校验数据源选择最佳计算多项式的机制、数据并行校验机制以及中断控制处理机制等,可实现对不同数据源采用不同多项式的快速并行校验,同时又能通过中断处理机制,提升控制***工作的可靠性,解决了嵌入***、SoC***内数据可靠性问题。
本发明采用以下技术方案:
一种适用于多种位宽并行输入数据的CRC校验控制***,包括AHB接口单元,
AHB接口单元的一端与AHB总线连接,另一端分别与CRC计算单元和CRC预置值单元的输入端连接,CRC计算单元和CRC预置值单元的输出端经比较单元与中断产生单元连接,中断产生单元连接计数单元,被校验的数据源经AHB接口单元进行解析后,将数据输入到CRC计算单元,经CRC计算多项式实现计算,得到CRC值,通过比较单元对计算值和CRC预置值单元的预置值比较得到结果,通过中断产生单元进行结果输出,最终实现数据的CRC校验控制。
具体的,CRC计算多项式包括8、16、32和64位位宽的计算多项式。
进一步的,8、16、32和64位位宽的计算多项式具体为:
f_crc8(x)=x8+x2+x+1
f_crc16(x)=x16+x15+x2+x+1
f_crc32(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
f_crc64(x)=x64+x4+x3+x+1
具体的,AHB接口单元,实现对AHB访问协议的解析,用于处理AHB接口信号;
CRC计算单元,由多项式选择结构选择出最佳计算多项式,对数据源进行CRC计算后,将CRC值进行输出;
CRC预置值单元,由AHB接口预先写入原始数据源的正确校验结果,用于和CRC计算的结果进行比较;
比较单元,实现对校验值和预置值进行比对,输出比对结果;
计数单元,实现对校验过程进行超时计数和对数据源进行计数,生成中断产生单元所需的条件;
中断产生单元,对中断条件进行判别,实现控制***对外中断的产生。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种适用于多种位宽并行输入数据的CRC校验控制***,可实现不同位宽数据的快速并行校验,采用基于校验数据源选择最佳计算多项式式的机制,提升校验***的通用性。根据数据源的位宽特性,可灵活选择对应的计算多项式式,使得该校验***可用于多种数据源的校验,采用数据并行校验机制,有效提升了校验效率。可快速实现大批量数据的校验,大幅较少时间开销;采用中断控制处理机制,保证了控制***工作的安全可靠。中断处理机制能及时对校验***内的异常情况进行处理、上报,有效避免了控制***的“死机”情况出现,大大提升控制***的工作可靠性。
进一步的,采用的CRC计算多项式包括8、16、32和64位数据位宽计算多项式,根据数据源的位宽特性,可灵活选择对应的计算多项式,使得该校验***可用于多种数据源的校验,提升了校验***的通用性。
进一步的,8、16、32和64位数据位宽的计算多项式,具体给出了计算多项式的数学算法,实现不同位宽数据的快速并行校验。
进一步的,AHB接口单元,实现对AHB访问协议的解析,用于处理AHB接口信号;CRC计算单元,由多项式选择结构选择出最佳计算多项式,对数据源进行CRC计算后,将CRC值进行输出;CRC预置值单元,由AHB接口预先写入原始数据源的正确校验结果,用于和CRC计算的结果进行比较;比较单元,实现对校验值和预置值进行比对,输出比对结果;计数单元,实现对校验过程进行超时计数和对数据源进行计数,生成中断产生单元所需的条件;中断产生单元,对中断条件进行判别,实现控制***对外中断的产生。各单元的有机互连,协调工作,实现了对不同数据源采用不同多项式的快速并行校验,同时又能通过中断处理机制,提升控制***工作的可靠性。
综上所述,本发明结构灵活精简,工作效率高,可适用于多种不同位宽数据的校验,易于移植扩展,通用性强,可靠性高。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的CRC校验控制***;
图2为CRC计算多项式移位寄存器实现结构。
其中:100.AHB接口单元;200.CRC计算单元;300.CRC预置值单元;400.比较单元;500.计数单元;600.中断产生单元。
具体实施方式
本发明提供了一种适用于多种位宽并行输入数据的CRC校验控制***,采用基于校验数据源选择最佳计算多项式式的机制、数据并行校验机制以及中断控制处理机制,实现了对不同数据源采用不同多项式的快速并行校验,提升了嵌入***、SoC***内数据可靠性。
请参阅图1,本发明一种适用于多种位宽并行输入数据的CRC校验控制***,可实现对SoC存储***内数据的校验;包括AHB接口单元100、CRC计算单元200、CRC预置值单元300、比较单元400、计数单元500和中断产生单元600。
AHB接口单元100的一端与AHB总线连接,另一端分别与CRC计算单元200和CRC预置值单元300的输入端连接,CRC计算单元200和CRC预置值单元300的输出端经比较单元400与中断产生单元600连接,中断产生单元600连接计数单元500,被校验的数据源经AHB接口单元100进行解析后,将数据输入到CRC计算单元200,经最佳计算多项式实现计算,得到CRC值,通过比较单元400对计算值和CRC预置值单元300的预置值进行比较,产生比较结果,通过中断产生单元600进行结果输出,最终实现数据的CRC校验控制。
AHB接口单元100,实现对AHB访问协议的解析,用于处理AHB接口信号;
CRC计算单元200,由多项式选择结构选择出最佳计算多项式,对数据源进行CRC计算后,将CRC值进行输出;
CRC预置值单元300,由AHB接口预先写入原始数据源的正确校验结果,用于和CRC计算的结果作比较;
比较单元400,实现对校验值和预置值进行比对,输出比对结果;
计数单元500,实现对校验过程进行超时计数和对数据源进行计数,生成中断产生单元所需的条件;
中断产生单元600,对中断条件进行判别,实现控制***对外中断的产生,保证了控制***工作的可靠性。
8、16、32、64位对应的CRC计算多项式,实现了四种不同位宽的计算多项式,根据被校验数据的特性,选择对应的最佳计算多项式进行CRC校验,产生CRC值,具体为:
f_crc8(x)=x8+x2+x+1
f_crc16(x)=x16+x15+x2+x+1
f_crc32(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
f_crc64(x)=x64+x4+x3+x+1
请参阅图2,CRC计算多项式通过移位寄存器实现结构,通过多级移位寄存器结构,分别实现了四种不同位宽的计算多项式,达到了硬件快速实现CRC计算的目的。
CRC8移位寄存器结构,通过8个寄存器和3个异或门实现互连。CRC8移位寄存器结构中,与CRC8计算多项式对应,第7位、第1位、第0位进行异或运算。
CRC16移位寄存器结构,通过16个寄存器和4个异或门实现互连。CRC16移位寄存器结构中,与CRC16计算多项式对应,第15位、第14位、第1位、第0位进行异或运算。
CRC32移位寄存器结构,通过32个寄存器和14个异或门实现互连。CRC32移位寄存器结构中,与CRC32计算多项式对应,第31位、第25位、第22位、第21位、第15位、第11位、第10位、第9位、第7位、第6位、第4位、第3位、第1位进、第0位行异或运算。
CRC64移位寄存器结构,通过64个寄存器和4个异或门实现互连。CRC64移位寄存器结构中,与CRC64计算多项式对应,第63位、第3位、第2位、第0位进行异或运算。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明通过AHB接口单元100实现了对AHB访问协议的解析;CRC计算单元200实现CRC计算多项式的选择,并对原始数据进行CRC校验,产生CRC校验值;CRC预置值单元300存储了需要比较的正确校验结果;比较单元400实现对校验值和预置值进行比对,输出比对结果;计数单元500实现对校验过程进行超时计数和对数据源进行计数,生成中断产生单元所需的条件;中断产生单元600实现控制***中断的产生。
本发明已成功应用于一款基于ARM Cortex-R4处理器核的高性能SoC芯片中。实现了对SoC芯片内FLASH、SRAM等存储空间数据的校验计算,可根据存储空间数据的特征,选择最佳的特征多项式进行CRC校验,整个计算效率高,保证了片内数据的可靠性和安全性。
按照图1中的CRC校验控制结构,采用图2中计算多项式移位寄存器实现结构,可得到本发明所述的适用于多种位宽并行输入数据的CRC校验控制***。
综上所述,本发明一种适用于多种位宽并行输入数据的CRC校验控制***,既能以最短的时间开销实现对数据源的校验,同时又可选择多种计算多项式式以提升通用性,此外还具备健全的可靠性保障机制和稳定可靠的工作机制。***结构精简,易于实现,可移植到对数据校验有需求的集成电路***中。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (3)
1.一种适用于多种位宽并行输入数据的CRC校验控制***,其特征在于,包括AHB接口单元(100),
AHB接口单元(100)的一端与AHB总线连接,另一端分别与CRC计算单元(200)和CRC预置值单元(300)的输入端连接,CRC计算单元(200)和CRC预置值单元(300)的输出端经比较单元(400)与中断产生单元(600)连接,中断产生单元(600)连接计数单元(500),被校验的数据源经AHB接口单元(100)进行解析后,将数据输入到CRC计算单元(200),经CRC计算多项式实现计算,得到CRC值,通过比较单元(400)对计算值和CRC预置值单元(300)的预置值比较得到结果,通过中断产生单元(600)进行结果输出,最终实现数据的CRC校验控制;
AHB接口单元(100),实现对AHB访问协议的解析,用于处理AHB接口信号;
CRC计算单元(200),由多项式选择结构选择出最佳计算多项式,对数据源进行CRC计算后,将CRC值进行输出;
CRC预置值单元(300),由AHB接口预先写入原始数据源的正确校验结果,用于和CRC计算的结果进行比较;
比较单元(400),实现对校验值和预置值进行比对,输出比对结果;
计数单元(500),实现对校验过程进行超时计数和对数据源进行计数,生成中断产生单元所需的条件;
中断产生单元(600),对中断条件进行判别,实现控制***对外中断的产生。
2.根据权利要求1所述的适用于多种位宽并行输入数据的CRC校验控制***,其特征在于,CRC计算多项式包括8、16、32和64位位宽的计算多项式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010889797.0A CN112036117B (zh) | 2020-08-28 | 2020-08-28 | 一种适用于多种位宽并行输入数据的crc校验控制*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010889797.0A CN112036117B (zh) | 2020-08-28 | 2020-08-28 | 一种适用于多种位宽并行输入数据的crc校验控制*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112036117A CN112036117A (zh) | 2020-12-04 |
CN112036117B true CN112036117B (zh) | 2023-06-20 |
Family
ID=73587062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010889797.0A Active CN112036117B (zh) | 2020-08-28 | 2020-08-28 | 一种适用于多种位宽并行输入数据的crc校验控制*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112036117B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629288B1 (en) * | 2000-03-01 | 2003-09-30 | Conexant Systems, Inc. | Single clock cycle CRC engine |
JP2005086272A (ja) * | 2003-09-04 | 2005-03-31 | Matsushita Electric Ind Co Ltd | Crc符号演算回路及びfcs生成回路並びにmac回路 |
CN101114888A (zh) * | 2007-07-30 | 2008-01-30 | 威盛电子股份有限公司 | 循环错误检查码的产生方法 |
CN101382927A (zh) * | 2008-09-25 | 2009-03-11 | 杭州爱威芯科技有限公司 | 集成在芯片内的高速串行***接口电路 |
CN102096609A (zh) * | 2009-12-10 | 2011-06-15 | 英特尔公司 | 可编程循环冗余校验(crc)计算的指令集架构 |
CN104285378A (zh) * | 2012-04-25 | 2015-01-14 | 英赛瑟库尔公司 | 具有免受侧信道攻击保护的循环冗余校验方法 |
CN107704335A (zh) * | 2017-09-28 | 2018-02-16 | 华南理工大学 | 一种基于fpga的crc并行运算ip核 |
CN109936376A (zh) * | 2019-01-31 | 2019-06-25 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 按字节运算循环码crc16-ccitt校验的方法 |
-
2020
- 2020-08-28 CN CN202010889797.0A patent/CN112036117B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629288B1 (en) * | 2000-03-01 | 2003-09-30 | Conexant Systems, Inc. | Single clock cycle CRC engine |
JP2005086272A (ja) * | 2003-09-04 | 2005-03-31 | Matsushita Electric Ind Co Ltd | Crc符号演算回路及びfcs生成回路並びにmac回路 |
CN101114888A (zh) * | 2007-07-30 | 2008-01-30 | 威盛电子股份有限公司 | 循环错误检查码的产生方法 |
CN101382927A (zh) * | 2008-09-25 | 2009-03-11 | 杭州爱威芯科技有限公司 | 集成在芯片内的高速串行***接口电路 |
CN102096609A (zh) * | 2009-12-10 | 2011-06-15 | 英特尔公司 | 可编程循环冗余校验(crc)计算的指令集架构 |
CN104285378A (zh) * | 2012-04-25 | 2015-01-14 | 英赛瑟库尔公司 | 具有免受侧信道攻击保护的循环冗余校验方法 |
CN107704335A (zh) * | 2017-09-28 | 2018-02-16 | 华南理工大学 | 一种基于fpga的crc并行运算ip核 |
CN109936376A (zh) * | 2019-01-31 | 2019-06-25 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 按字节运算循环码crc16-ccitt校验的方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的10G以太网并行CRC设计;袁征 等;《计算机工程与设计》;18-23 * |
Also Published As
Publication number | Publication date |
---|---|
CN112036117A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9652321B2 (en) | Recovery algorithm in non-volatile memory | |
US9252814B2 (en) | Combined group ECC protection and subgroup parity protection | |
US8010875B2 (en) | Error correcting code with chip kill capability and power saving enhancement | |
KR101767018B1 (ko) | 비휘발성 메모리에서의 오류 정정 | |
US20070168768A1 (en) | ECC coding for high speed implementation | |
KR20090028507A (ko) | 비휘발성 메모리 에러 보정 시스템 및 방법 | |
US8566672B2 (en) | Selective checkbit modification for error correction | |
US20140344643A1 (en) | Hybrid memory protection method and apparatus | |
US11726665B1 (en) | Memory extension with error correction | |
TW202014890A (zh) | 快閃記憶體裝置及快閃記憶體儲存管理方法 | |
CN106802837B (zh) | 一种更新错误检测和纠正ecc码的方法及装置 | |
WO2024098647A1 (zh) | 一种校验码恢复方法、***、电子设备及存储介质 | |
US20160378594A1 (en) | Method and apparatus to decode low density parity codes | |
US9329926B1 (en) | Overlapping data integrity for semiconductor devices | |
KR20230121154A (ko) | 원격 실행 디바이스에서의 호스트 기반 오류 검출 능력제공 | |
CN112036117B (zh) | 一种适用于多种位宽并行输入数据的crc校验控制*** | |
CN115904798A (zh) | 存储器的纠错检错方法、***以及控制器 | |
JP2006323434A (ja) | データ処理装置及びそのメモリ訂正方法 | |
US10340955B2 (en) | Data processing circuit | |
Pawelczak et al. | Application-based fault tolerance techniques for fully protecting sparse matrix solvers | |
US20230195565A1 (en) | Multilevel Memory System with Copied Error Detection Bits | |
CN117891759B (zh) | 一种基于FPGA的高可靠性NAND-Flash控制器及其数据处理方法 | |
US11609813B2 (en) | Memory system for selecting counter-error operation through error analysis and data process system including the same | |
CN112540866B (zh) | 存储器装置及其数据存取方法 | |
TWI845371B (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 |