存储 频道

【论坛话题】Opteron服务器详解(图)

    二、AMD64处理器的优势

    因为这位网友特意问了AMD的Opteron处理器服务器性能方面的问题,所以我也就在本文中重点介绍一下它与其它64位服务器相比所具有的优势,实际是就是AMD的Opteron处理器与其它64位处理器之间比较。同时还针对这位网友属个人行为的实际推荐几款非常适用的经济入门级Opteron服务器,几千元的价格相信你一定可以承受,就当买台PC机一样。我们主要介绍它相对Intel的IA-64的架构处理器的不同。

    1. 处理器架构不同

    在64位处理器上,AMD采用与Intel截然不同的策略:AMD采用一种基于x86指令体系的64位架构,也就是x86-64架构。采用类似于从80286升级到80386的平滑升级方式:一方面可以增加寻址位宽,另一方面又具备向下兼容,这样可以让64位处理器运行在32位应用环境下。当然它与IBM、HP和SUN这几家的RISC架构的64位处理器则更是具有明显的区别,因为它们的指令执行方式都不一样。

    由于x86-64是从传统x86架构变革而来的,这意味着x86-64架构如果要同时兼顾64位、32位运算任务,就必须对原x86寄存器体系进行变革。传统的x86指令集本身属于一种复杂指令集(CISC),使用x86指令集的处理器架构一直沿用寄存器结构,由于程序可用的寄存器数量较少(注:传统的x86架构只拥有8个通用寄存器、8个浮点寄存器和8个SIMD寄存器,而Intel的IA-64架构的寄存器要多得多)。因此造成传输延迟,性能以及流水线工作效率相对落后,从而给x86架构处理器的性能造成了影响,程序和编译器的优化难度也较大。针对这个问题,在x86-64架构中,AMD在x86架构基础上将通用寄存器和SIMD寄存器的数量增加了1倍:其中新增了8个通用寄存器(GPR)以及8个SIMD寄存器(SSE&SSE2)作为原有x86处理器寄存器的扩充,同时还地原来的通用寄存器位宽进行了扩展,从原来的32位扩展到现在的64位。如(图2)所示。

#$[*189013.jpg*#图2(点击看大图)*#0*#0*#center*]$#

    从图中我们可以看到:AMD将x87浮点堆栈独立了出来,这是因为AMD和Intel都希望程序员用SSE/SSE2指令集来取代x87浮点指令,另外我们还可以看到程序计算器也为了对应64位计算而进行了扩展。另外,这些通用寄存器都工作在64位模式下,经过64位编码的程序就可以使用到它们,在32位环境下并不完全使用到这些64位寄存器。同时AMD也将原有的EAX等寄存器扩展至64位的RAX,这样可以增强通用寄存器对字节的操作能力。

    从扩充方式上看,EAX等寄存器可以看作是RAX的一个子集,系统仍然可以完整地执行以往的32位编码程序。增加通用寄存器除了可高效存储数据外,还可作为寻址时的地址指针,从而缩短指令长度和指令执行时间,加快CPU的运算处理速度,同时也给编程带来方便。

    而且在纯64位模式中,x86-64体系还支持数据地址关联模式,并且直接对应64位的RIP(指令指针)。原始的x86体系仅仅在控制传输指令中支持RIP关联地址,而64位模式的RIP关联地址改进了该项特性,扩大了它的应用范围。

0
相关文章