cpu参数是多少位的处理器(什么是64位处理器)

现在无论是电脑里面的x86处理器还是手机里面的ARM处理器都是64位的了,通常对于消费级的产品来说,就是支持x86-64指令集的x86处理器,或是支持ARM64指令集的ARM处理器 。其实早在上世纪60年度64位的CPU就已经用在超级计算机上,到了90年代64位处理器也开始应用于工作站与服务器,个人电脑是在AMD 2003年推出速龙64后才开始渐渐普及,而智能手机上用的64位处理器ARMv8-A架构是2011年发布的 。
cpu参数是多少位的处理器(什么是64位处理器)
文章图片


这里所说的64位是指CPU的位宽,简单的说,CPU位宽指的是一个时钟周期内CPU能处理的二进制位数,如8086 CPU是16位的,可以一次处理2个字节(16个bit),80386 CPU是32位,能一次处理4个字节,目前的CPU基本上64位的了,一次能处理8个字节 。我们的Windows操作系统也分为32位和64位,主要是针对上面CPU的位宽做了些优化,比如32位的CPU就不能用64位的Windows(因为CPU一次只能处理32bit,而操作系统给你的指令是要处理64bit),但64位的CPU就可以运行32位的Windows,也能运行64位Windows 。
64位CPU的优点是可以进行更大范围的整数运算,吞吐量大的程序运行起来会更快,但大家经常对CPU的位宽认识有一些误区,比如有人说为了支持更大的内存才CPU才升64位,也有人认为32位系统只支持4GB内存,真的如此吗?
最大内存容量和CPU的位宽有关系吗?CPU的寻址能力与它的地址总线位宽有关,而我们通常说的CPU位宽指的是数据总线位宽,它和地址总线位宽半毛钱关系也没有,自然也与寻址能力无关 。
cpu参数是多少位的处理器(什么是64位处理器)
文章图片


数据总线位宽等于CPU整数型寄存器的位宽,CPU内的寄存器通常可分为三种:整数型、浮点型还有其他,而这三种寄存器中只有整数寄存器可以存放指针值也就是内存数据地址,非整数寄存器不可存放指针值,所以读写内存操作不能避开整数型寄存器的位宽限制 ,以64位CPU为例,这些CPU的内部整数型寄存器的位宽为64bit,支持整数的64bit宽度的算术与逻辑运算 。
【cpu参数是多少位的处理器(什么是64位处理器)】但这并不代表64位CPU的所有总线与寄存器都是64位的,不同类型的寄存器也可以有着不同的位宽,上面说的64位CPU的整数寄存器位宽是64位没错,但浮点寄存器就不一样了,比如奔腾MMX处理器所引入的MMX指令集开创了x86处理器支持SIMD操作的先河,该指令集定义了8个64位的浮点寄存器,而奔腾MMX本身只是个32位处理器 。1999年推出,同样只有32位的奔腾3处理器新增了SSE指令集,与之配套的是8个128位寄存器,而后来的AVX2与FMA指令集可支持256位的运算,浮点寄存器也扩大到256位,目前CPU内部最大的是AVX-512指令集所用的512位寄存器 。
cpu参数是多少位的处理器(什么是64位处理器)
文章图片



CPU内有许多不同的寄存器
那CPU的地址总线位宽到底是个什么鬼?
cpu参数是多少位的处理器(什么是64位处理器)
文章图片


Intel的解释是Physical Address Extensions (PAE) is a feature that allows 32-bit processors to access a physical address space larger than 4 gigabytes.上面图片是Intel Xeon Processor E5-2698 v3的截图,专门就扩展物理地址作了说明,大意就是说这个是为了让32位的处理器能使用超过4GB的内存 。这个PAE就是CPU的地址总线位宽,在8086这个16位CPU,它的地址总线位宽是20位,正好能寻址1MB,80286它的PAE是24位,在PentiumII(32位CPU)时这个PAE变成了36位,可以支持64GB的寻址 。64位CPU出现之后,其地址总线位宽一般采用的是36位或者40位,它们寻址的物理地址空间为64GB或者1T 。