现在买的PC或者服务器都有64位的机器,而有时我们安装系统,不管是Windows还是Linux系统,要发挥机器的最高性能,必须也要安装64位的OS,否则,就达不到最好的性能。
    32位操作系统,配合32位CPU,寻址空间位2^32次方,就是4G,32位系统最大支持4G空间,如果想要32位系统支持4G以上空间的话,就要用PAE的特殊内核,采用特殊方式访问,但是系统效率会比原生的64位系统低;
    64位操作系统配合64位CPU,寻址空间是2^64次方,换算一下4G个G,当然这是64位系统的理论最大内存支持。

64位处理器
    64位处理器是指可以对虚拟地址空间(virtual address space)进行64位寻址的处理器。64位处理器可以以64位格式存贮数据,并可以对64位操作数执行数学运算操作。另外,处理器的通用寄存器(GPRs)和运算器(ALUs)也是64位的。
    目前市场上64位处理器主要有3种:Intel EM64T,IA64和AMD AMD64,虽然都是64位处理器,但它们不完全兼容。
Intel IA64, 基于安腾2处理器
    Intel真正的64位CPU,叫安腾。标准出的很早,不是X86架构,主要用在服务器上面,但是安腾造价高,对软件开发人员要求也太高,没有怎么普及,现在只有HP和富士通在小型机上面使用;
Intel EM64T, 基于Xeon DP "Nocona"和MP处理器
    Intel的EM64T技术,Intel在面临AMD x86_64竞争压力下搞出来,官方全名是Extended Memory 64 Tenchnology 中文解释就是扩展64bit内存技术。在还没被正式命为EM64T之前是IA32E。现在的32位奔腾4CPU都是采用IA-32指令集,EM64T其实就是在这个指令集的基础上进行扩展,EM64T支持64位sub-mode,和AMD的X86-64技术类似,采用64位的线性平面寻址,加入8个新的通用寄存器(GPRs),还增加8个寄存器支持SSE指令。Intel的64位技术将兼容IA32和IA32E,只有在运行64位操作系统下的时候,才将会采用IA32E。IA32E将由2个sub-mode组成:64位sub-mode和32位sub-mode,同AMD64一样是向下兼容的。Inteln这种实现64位的方法其实和AMD的x86-64技术有异曲同工之妙,都是通过64位扩展指令来实现兼容32位和64位的运算。另外不同的是Intel的EM64T技术设定了IA-32和IA-32e两种模式的激活程序,就是说EM64T需要满足特定条件才会激活。
当然Intel的EM64T将完全兼容AMD的X86-64技术。现在Nocona处理器已经加入了一些64位技术,Intel的Pentium 4E处理器也支持64位技术。
AMD AMD64, 基于Opteron处理器
    AMD64,又称“x86-64”或“x64”,是一种64位元的电脑处理器架构。它是基于现有32位元的x86架构,由AMD公司所开发,应用AMD64指令集的自家产品有Athlon 64、Athlon 64 FX、Athlon 64 X2、Turion 64、Opteron及最新的Sempron处理器。其特征:新增暂存器 地址阔度加长 SSE2、SSE3指令 “禁止执行”位元 (NX-bit)。AMD64架构在IA-32上新增了64位暂存器,并兼容早期的16位和32位软件,把16位的Intel 8086扩充成32位的80386般,去把x86架构扩充成64位版本,且兼容原有标准。也因此AMD64显得比较平易近人,其指令集要比EM64T指令集出来早很多,64位应用的支持性也好很多。在微软撮合下,AMD64指令集授权给了Intel。因此Microsoft就不用为两家公司的64位处理器开发各自的64位操作系统。目前Microsoft推出的Windows XP x64 Edition操作系统(Beta)可同时支持EM64T和AMD64,能够兼容几乎所有的32位应用程序和大部分新增64位应用程序。 现在很多微软的技术资料中都吧这个架构的机器叫AMD64。只有Intel才叫X64.在市面上买的到的intel 64位 CPU都属于amd64范畴,这个架构应该称为x86_64,因此不管是AMD的64位CPU,还是INTEL的64位CPU,都是属于AMD64范畴.因此你PC的CPU是64位的[有Intel,也有AMD],非安腾的CPU的话,你就下载AMD64的OS进行安装即可.
    EM64T本质上和AMD64一样都是IA-32的增强版本,Xeon借助于EM64T可实现高达1TB(40bit)的物理内存寻址和256TB(48bit)的虚拟内存寻址,并且良好地支持现有32位x86代码执行,这一点跟AMD64无异,同时也是Intel开发EM64T的出发点—让现有的x86指令集能够执行64位代码,而继续保持对32位代码的良好兼容。但由于多方面的限制,无论是EM64T还是AMD64均只能实现比32位指令集更大内存空间的寻址,而无法真正做到纯64位指令集的1PB(50bit)和16EB(64bit)的物理内存和虚拟内存寻址(IA-64就能做到这一点),其关键在于EM64T和AMD64本质上仍是基于32位的x86指令集,只是Intel和AMD分别采用不同的技术手段对x86指令集进行扩展,从而实现对64位的支持。

    应该说,这两者都是兼容x86指令集的64位微处理器架构,但EM64T与AMD64还是有一些不一样的地方,AMD64处理器中的NX位在Intel的处理器中将没有提供。AMD64其中一个特色是拥有“禁止执行”(No-Execute, NX)的位元,可以防止蠕虫病毒以缓冲区满溢的方式来进行***(也称:缓冲区溢位***,Buffer Overflow)。

    请注意,EM64T在64位的实现方式上跟AMD64指令集有很多相似之处,Intel追加的大多数64位指令与AMD64指令集相兼容。但在关键的地方两者还是有很大差别。
   1. EM64T和AMD64除了很少数指令,如3DNOW以外,可以互相兼容,在其中之一上面编写和编译的应用程序通常可以全速运行在另外一个处理器上。
   2. IA64采用了与其他两种完全不同的指令集,为Itanium2写的64位应用程序不能运行在EM64T和AMD64上,反之亦然。
   3. EM64T的内存性能明显不如AMD x86_64,AMD Opteron片内集成内存控制器,对于需要频繁内存交换的程序,性能也远远好于Xeon。像Oracle这种非常吃内存的应用,其CPU和内存之间的数据交换速度对于性能影响很大。而用Xeon的话,性能会明显比Opteron差很多;
    4.不要以为双核CPU就一定好于两颗独立的CPU。双核由于集成在同一芯片上,共享内存总线,所以有比较严重的总线争用问题。所以双核CPU最多不过能够比单个CPU性能高出40%而已。现在一块双核CPU的价格比两颗单核CPU还要高。因此买老的单核Opteron,两路CPU,性能好,价格低。
    5.另外:RHEL对于Xeon CPU的优化比较好;SLES对于Opteron支持要好于RHEL。其实只很多商业软件提供的64位版本直接命名为 ...AMD_x86_64...,例如JDK6.0的命名:jdk-6u1-linux-amd64.bin, jdk-6u1-windows-amd64.exe等等。所以如果准备跑64位应用,要注意EM64支持不支持的问题。