无心人
发表于 2009-10-15 11:58:45
另外,增加了AES加密算法的硬件支持
算上CRC32
两个算法支持了
gxqcn
发表于 2009-10-15 12:12:18
看了英文文档
仅仅存在128位的操作
乘法也最多是32 * 32
256位不过能增加一次处理数据的次数吧
寄存器是影射的XMM
即低位128和XMM重合
高位128硬件附加的
无心人 发表于 2009-10-15 11:57 http://bbs.emath.ac.cn/images/common/back.gif
乘法若能到达到64*64就好了,
否则还得用最原始的 mul 指令。
无心人
发表于 2009-10-15 13:39:44
64位的乘法足够了
可惜不能并行处理
gxqcn
发表于 2009-10-15 14:13:03
最关键的就是要有可替代 mul 进行并行处理的指令,
这将直接影响大数算法的设计。
无心人
发表于 2009-10-15 15:55:54
那SSE2已经有了并行乘法了
gxqcn
发表于 2009-10-15 16:13:04
我说的是64位OS下。
因为用 mul 指令最大的缺陷是必须占用 RAX、RDX 两个寄存器(imul 指令自由点,但有时不符合要求)。
无心人
发表于 2009-10-15 17:36:56
那没有了
我看了,没有64位乘法
要不你再查查
gxqcn
发表于 2011-5-9 10:19:44
现在 SNB 已大规模上市,我原本寄希望于新指令集 AVX 会有些新的整数指令,但查阅了些资料后略有些失望,因为新指令绝大多数是浮点运算服务的。
今天搜索资料,突然发现一个很好玩可能很有用的指令——CLMUL instruction set,
其中有:
InstructionDescriptionPCLMULQDQPerforms a carry-less multiplication of two 64-bit integersPCLMULLQLQDQ xmmreg,xmmrm
PCLMULHQLQDQ xmmreg,xmmrm
PCLMULLQHQDQ xmmreg,xmmrm
PCLMULHQHQDQ xmmreg,xmmrm
PCLMULQDQ xmmreg,xmmrm,imm 也就是说该系列指令已具备两个64位的乘法,得到的结果是128位吗?
如果是,那就太好了!终于可以在SIMD4中实现并行的64位无符号整数乘法了!
是这样的吗?大家来讨论下吧。。。
gxqcn
发表于 2011-5-9 10:50:38
经查阅Intel的技术文档,好像是结果为127bit,其中最高位一直置“0”,难道这就是指“Carry-less Multiplication (CLMUL) ”?
值得研究研究。
gxqcn
发表于 2011-5-9 11:26:22
很遗憾,这个“Carry-less Multiplication (CLMUL) ”不适用于通常的整数乘法:(