脚本开发,脚本学习,辅助软件,各种工具软件

访问密码统一为:3158

查看: 1397|回复: 0

硬件指令优化系列-汇编CRC32指令

[复制链接]

79

主题

79

帖子

404

积分

龆年(髫年)

Rank: 3Rank: 3

积分
404
发表于 2020-5-17 15:41:29 | 显示全部楼层 |阅读模式
纯软件实现CRC32经常是借助于查表实现的,当计算CRC32过于频繁时可通硬件指令优化以减少对CPU的占用。
目前Intel支持的用于计算CRC的有CRC32和PCLMULQDQ两个指令。
本文仅讨论使用CRC32指令的使用。CRC32指令计算的是iSCSI CRC,也就是生成多项式为0x11EDC6F41的32位CRC。



注意:
现在常用的是标准的CRC32,也就是生成多项式为0x04C11DB7的32位CRC。
而Intel内部使用的是CRC32-C,也就是生成多项式为0x11EDC6F41的32位CRC。
请看好,最后计算出来的CRC32与标准的是不一样的。
所以,我这个仅用于自校验,请勿回复关于为什么与其他程序生成的CRC32不同的问题

CRC32指令适用于支持SSE4.2的CPU
Intel Core i7 965、Intel Xeon X3400及以上的CPU
AMD 2011年推出Bulldozer(推土机)架构及以后的CPU
下载链接:https://t00y.com/file/20110282-443802407





上一篇:利用鼠标滚轮控制图片放大放小
下一篇:NasmToE 1.4 易语言置入代码工具
3Q4T网,编程学习交流基地。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表