服务器 频道

突破4GB内存屏障 64位平台解析(下)

  我们已经知道32位平台存在的很多问题,光靠服务器操作系统也是无法解决的,例如一些高端游戏平台使用32位系统天生就会少掉很多可用内存,而64位可以彻底解决MMIO的问题。不过64位的优点还不止这些,我们来看看最最最底层上的分别。

  基于x86处理器上出现的64位扩展指令集被称为x86-64,同时包括了AMD的64位(AMD64)技术和Intel的64位(EM64T)技术(我们一直避免谈论IA64架构,因为其用户面实在狭窄),这两种技术实际上是大部分相同的,只存在很小的差别(AMD64与Intel EM64T对EFER寄存器定义稍有不同;EFER寄存器是用来控制和监视扩展功能状态的一个寄存器)。


AMD64与EM64T的不同之处

  除了些微的不同之外,两种64位技术是很相似的,下面就是通常为x86-64的处理器架构上的变化:


x86-64的根本变化:更强大的寄存器

  X86-64不仅仅将原有的32位寄存器扩充为64位,还增加了一倍的GPR(通用寄存器)和XMM寄存器(也叫SSE寄存器)。例如,AX就是16位寄存器(AX可以分为AH和AL两个8位寄存器分别操作),EAX就是32位寄存器,那么RAX就是64位寄存器。

  一个计算机系统里面最快的存储单元不是U盘和硬盘,也不是内存和显存,也不是处理器的L1和L2,最快的是寄存器,在汇编语言里面可以直接使用 MOV RAX, RBX这样的语句进行操作(EAX/RAX就是常用的通用寄存器的第一个,接下去的是B、C、D等)。寄存器是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方,扩展的位数可以提高通用运算的精度,扩充的寄存器数量将提供更快的执行效率,降低存取L1/L2的频率,因此x86-64操作从底层上就比32位要快10%~30%

0
相关文章