intel支持的指令amd全支持,且amd支持3DNow
关于指令集:Intel对指令集的推广要比AMD好得多。
指令集:最开始MMX也定义为多媒体方面应用,但因为效率比较高,所以某些程序逐渐使用MMX做一些一般操作。
软件编译前并不确定用什么指令执行,编译决定程序执行使用的指令集,MMX/SSE/SSE2/SSE3/SSE4这些指令集,对自己执行的操作有规定,但是并不规定它被用做什么,打个比方,1乘以2既可以用1+1算,也可以用乘法算。
如果SSE性能特别神,以Intel推广能力,让大家看到这个指令的价值,那么,就比ALU重要了。
3dnow!是SSE时代的指令,功能上可以替代,内容上不同,SSE2 CPU是不能执行3dnow代码的。
其实就像X86可以缓慢代替X87执行浮点运算那样,X86指令也可以代替SSE完成所有的功能,只不过效率低下而已,对于处理的事件来说,缺一个少一个指令只是最优化时的效率问题,对于编译完成的代码来说,缺一个少一个指令会导致兼容性问题(除非代码指出替代操作方法)。
PD,P4支持SSE2指令性能不如AMD K8的原因一个是内存控制器,一个是程序编译一般要兼容P3,程序员有一些习惯问题,MS VC++默认编译方式并不是为P4优化,所以编译出来的东西P4不能以最高效率执行,如果那软件是intel写的,不出什么意外,肯定是Intel的U跑得快,因为硬件设计决定了即使各家CPU支持相同的指令,最后指令的执行效率也是不同的!
新的软件做双核优化了,所以双核的性能就得到了体现,甚至某些P4HT性能落后于AMD的游戏打过补丁,优化后也翻盘了,但不支持HT的还是老样子。
INTEL的CPU指令集
http://hi.baidu.com/flash2006/blog/item/87d0d1fe018d8c305c6008ab.html
AMD的3DNow!、SSE、SSE2
3DNOW!是AMD推出的指令集,主要中通过单指令多数据(SIMD)技术来提高CPU的浮点运算性能;它们都支持在一个时钟周期内同时对多个浮点数据进行处理;都有支持如像MPEG解码之类专用运算的多媒体指令。与Intel公司的MMX技术侧重于整数运算有所不同,3DNow!指令集主要针对三维建模、坐标变换和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高3D处理性能。
不过,由于受到Intel在商业上以及Pentium 3/4成功的影响,软件在支持SSE、SSE2、SSE3上比起3DNow!更为普遍。因此,虽然Intel是自己的冤家,AMD仍继续推出了增强版Enhanced 3DNow!,引入了SSE、SSE2、SSE3指令集的支持。其中目前基于Venice核心上的新Athlon 64处理器也是目前支持最多SIMD指令集的处理器,包3DNow!,SSE2和SSE3一样不少。从技术上来看,SSE3对于SEE2的改进非常有限,我们不应该期望SSE3指令集能为新Athlon 64带来大幅度的性能提升,而且性能提升也需要有软件支持为前提。