[发明专利]可编程循环冗余校验(CRC)计算的指令集架构有效
申请号: | 201010581502.X | 申请日: | 2010-12-06 |
公开(公告)号: | CN102096609B | 公开(公告)日: | 2017-04-12 |
发明(设计)人: | V·戈帕尔;S·格伦;G·M·沃尔里克;W·K·费加利;K·S·叶;B·A·布里斯 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F11/10 | 分类号: | G06F11/10 |
代理公司: | 永新专利商标代理有限公司72002 | 代理人: | 刘瑜,王英 |
地址: | 美国加*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可编程 循环 冗余 校验 crc 计算 指令 架构 | ||
技术领域
本公开涉及错误检查,并且更具体地涉及针对错误检查使用循环冗余校验(CRC)。
背景技术
多项式是具有一个或多个代数项的数学表达式,例如,“a+bx+cx2”,其中的每项都包含常数(a,b或c),所述常数乘以一个或多个变量(x)的非负整数次方。当将数据块从源端向目的端传输时,用n位多项式除数据块的二进制除法运算的固定大小的余数可以被用来验证没有发生传输错误。应用于任意长度的数据块的n位多项式检测小于或等于n位的任何单个错误突发。
在源端针对数据块计算出固定大小的余数并将所述余数与数据块一起传输。将n位多项式应用于在目的端处接收的数据块,以重新计算固定大小的余数。将重新计算出的固定大小的余数和与数据块一起被传输的固定大小的余数进行比较以验证没有发生传输错误。
循环冗余校验(CRC)是既指固定大小的余数(将任意长的数据块二进制除以固定大小的多项式而得到的余数)又指用来产生所述固定大小的余数的功能的术语。
附图说明
通过以下参照附图进行的具体描述,要求保护的主题的实施例的特征将变得显而易见,在附图中,相同的数字描述了相似的部分,并且在附图中:
图1为根据本发明原理的、包括在通用处理器中执行循环冗余校验(CRC)的指令的实施例的系统框图;
图2为图1所示处理器的实施例的框图;
图3为示出了根据本发明原理的、图2所示的执行灵活CRC的执行单元的实施例的框图;
图4示出了图3所示的扩展多项式微操作的实施例;
图5示出了图3所示的混洗字微操作的实施例;
图6示出了图3所示的CRC约减微操作的实施例;
图7为示出了图6所示的计算CRC功能的实施例的框图;
图8为示出了图7所示的4位约减阶段的框图;以及
图9为示出了根据本发明原理的、执行CRC的方法的实施例的流程图。
尽管以下具体描述将参照所要求保护的主题的说明性实施例而进行,但对于本领域技术人员来说,许多替代物、修改和其变型是显而易见的。因此,应当宽泛地看待所要求保护的主题,并仅以所附权利要求中阐述的保护范围来进行限定。
具体实施方式
存在许多已知的用于执行循环冗余校验(CRC)计算的方法。一种方法是使用专用的CRC电路来实现特定的n位多项式。另一种方法是使用CRC查找表来存储针对给定的n位多项式以及一组数据输入和余数的所有可能的CRC结果。对于这种方法,在CRC查找表中执行一次查表操作以确定CRC结果。
然而,存在许多不同的用于计算CRC的n位多项式。例如,使用不同的n位多项式来针对存储协议(例如,因特网小型计算机系统接口(iSCSI))、压缩与解压缩与图形操作(例如,移动图像专家小组(MPEG)与联合图像专家小组(JPEG))计算CRC。因此,需要专用的CRC电路或独立的查找表来计算针对每个不同的n位多项式的CRC。
也可以通过使用专用的CPU指令在硬件中执行CRC计算。然而,由于CRC指令受到操作数的数量与大小的限制。CRC指令专用于计算一个特定的固定n位多项式的CRC。
在本发明的实施例中,提供了指令集架构以通过使用多个不同的n位多项式来执行CRC操作。在实施例中,灵活CRC指令支持最大达到32次的n位多项式(即,支持位xn(第n+1位)被设置为逻辑‘1’的n位多项式)。灵活CRC指令也支持数据/余数上的位/字节反射。
图1为根据本发明原理的包括指令的实施例的系统100的框图,所述指令用于在通用处理器中执行CRC操作。系统100包括处理器101、存储器控制器中心(MCH)102以及输入/输出(I/O)控制器中心(ICH)104。MCH 102包括对处理器101与存储器108之间的通信进行控制的存储器控制器106。处理器101与MCH 102通过系统总线116来进行通信。
处理器101可以是多个处理器中的任意一种,这些处理器例如是单核心Pentium处理器、单核心Intel Celeron处理器、XScale处理器或多核心处理器例如Pentium D、处理器,或Duo处理器或任何其它类型的处理器。
存储器108可以是动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、第二代双倍数据速率(DDR2)RAM或Rambus动态随机存取存储器(RDRAM)或任何其它类型的存储器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010581502.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数控龙门铣床氮气平衡系统
- 下一篇:高压IGCT过电流电子保护模块