不支持Flash

64位系统深入剖析:不仅是内存这么简单(5)

http://www.sina.com.cn 2007年12月05日 10:58  IT168.com

  我们已经解决了内存寻址的问题,不过还没有完。内存问题是64位计算的最为显著的不同之处,这也是我们文章开始就谈到它的原因。不过64位使用qwords来代替dwords计算意义很多,并不能简单理解为保存数据的空间地址更长了——它还意味着可以存储更长的数据,或者可以存储更为复杂的对数据进行运算的指令。

  64位计算来到桌面平台有两个方式,一是AMD的AMD64,另外就是Intel的EM64T技术,其实Intel的EM64T技术大部分都是对AMD64技术的复制,所以它们之间的差别不大,而它们跟IA-64的差别却是很大的。IA-64是Intel的安腾指令集,这是处理器通用领域的唯一真正64位指令集,而AMD没有真正完全64位的处理器。

  AMD早在2003年就推出了x86-64指令,而Intel在2004年年中Prescott系列处理器上才开始部署x86-64兼容技术,发布Core构架之后,Intel将其重新命名为“Intel 64”,在所有的Core处理器中部署。

  AMD64和Intel 64为x86世界带来了很多好处,首要就是x86-64为程序员们带来了“相关指令指针(relative pointers)”的概念,指针在程序代码中(机器代码或汇编代码)告诉一个程序下一步如何走和如何获取数据。指针之前的运作方式是必须绝对的,也就是说程序需要知道具体的物理内存地址或寄存器位置。

  这种编程方式会导致效率低下,因为你必须要绝对的了解某一时刻哪个内存地址和寄存器是闲置的,如果某些原因导致其已满或写入不稳定,程序就会因为保护原因崩溃。另外一方面也意味着小的程序片段无规律杂乱的塞满空闲内存空间和寄存器,而不是被有效的组织。

  而使用相关指令指针之后,每个程序都将运行在它自己的“虚拟空间”里,而不是运行在绝对的内存寄存器位置。这使得程序的载入和载出性能在机器代码层次大幅提升,这会使得负荷深重的内存、CPU与32位系统相比速度大升!

64位系统深入剖析:不仅是内存这么简单(5)
AMD64是第一个x86-64技术

  x86-64中引入的一项备受争议的指令集是“NX Bit”,这是一种CPU核心安全技术,是“No eXecute(禁止执行)”的简称,我们可以把它可作是将内存和寄存器地址加上了一个类似优盘的写保护按键,当一个内存或寄存器地址被标志为“数据类型”的时候,就不允许它执行了,仅供数据使用,只有被标志为“可执行的指令集”的才可被执行,这种措施可以防止流行的“缓冲区溢出”式恶意攻击(这是x86系统的一大弊端,自从286时代就有了),这种恶意攻击就是通过把恶意指令放到数据存储里来偷偷执行,从而控制电脑。NX bit技术以后或许可以被用来做成一种硬件层次的版权内容保护技术。

  除此之外,32位的代码运行在64位的系统上也有不少性能好处,AMD和Intel的64位扩展指令都可使特定的32位指令同一时钟周期执行两个,从而使程序运行加倍——虽然并不是对所有的程序都有效,却可以有效加快普通程序的运行速度。

[上一页] [1] [2] [3] [4] [5] [6] [7] [下一页]

本文导航:
·前言
·64位的含义与来历
·寄存器与word
·内存寻址
·AMD64与Intel 64
·系统总线与编程问题
·总结

发表评论 _COUNT_条
Powered By Google
不支持Flash
·《对话城市》直播中国 ·城市发现之旅有奖活动 ·企业邮箱换新颜 ·邮箱大奖等你拿
不支持Flash
不支持Flash