您的位置:首页 > 理论基础

计算机CPU指令的32位、64位是如何区分呢?

2011-10-18 13:49 363 查看

计算机CPU指令的32位、64位是如何区分呢?

浏览次数:812次2011-1-3 11:51提问者:wu123st
非常专业的一个问题。因为看到文章介绍了CPU有32和64位,就想知道这个位数是由什么决定的。我知道肯定和硬件有相关,只是希望能得到一个通俗易懂的解释即可。
还有,近年提出的32位操作系统、64位操作系统和这里的32位、64位是一样的吗?
问题补充:
CPU中的微指令是公开的吗?比如Intel和amd的CPU中的指令是公开的吗?有没有开源的微指令CPU?
最佳答案CPU有32和64位是由计算机中各个存储器所使用的位数决定的。32位也就是一个寄存器使用的是一个32位0,1串,64位也就是一个寄存器使用的是一个64位0,1串。其中64位在32位的基础上还多增加了一些寄存器。寄存器存储的是微指令,微指令由指令和操作数构成。寄存器的长度决定了Cpu 的指令长度和寻址能力。指令长度越长,所能支持的指令越多,地址空间越长,所能访问的物理地址越多。一个简单的例子就是32位的Cpu 地址线是20位,所以在实模式下只能使用1Mb的内存。而64位的Cpu 地址线是48位,所以在实模式下可以使用256TB的内存。现在的32位操作系统之所以能使用超过1Mb的内存,是使用了偏移的方式,在面向Cpu 的程序运行是,使用立即数寻址是最快的,所以在理论上64位的Cpu 应该是比32位的Cpu 要快。现的64位Cpu 只是简单的多使用了64位Cpu 所提供的额外的寄存器,而没有在内核上做改变。在32位Os中,由于1Mb的内存远远不够用,因而产生了偏移方式寻址,从而能使用到64G内存。64位Cpu 则不然,使用立即数方式就可以达到256Tb,完全可以只使用立即数方式。立即数方式相较其它方式,速度至少快一倍。可以认为现在的64位操作系统和32位操作系统是一样的。
其他回答 共3条2011-1-3 13:09huangxin121121 | 六级
其实就是说以前CPU可以一次处理的二进制二进制位数。比方说:1100110011001100,1100110011001100110011001100110011(二进制),最早CPU一次可以处理16位即:1100110011001100,现在可以处理1100110011001100110011001100110011001100110011001100110011001100。就是说16位可以一次处理16个数值,32可以32个,64位就是64个了。如果说CPU一次可以处理64位的数据,而操作系统只给它32位的数据,那CPu就有一半性能没有发挥,但是你换成64位的操作系统,那就使CPU的性能发挥出来了。没有,AMDCPU中含有的SEE1.SEE2和SEE3是和intel购买的使用权 
02011-1-3 16:53天涯之独孤求教 | 五级
就像公路,一般的有一左一右两条,高速有2左2右4条,它车流速度就不同了嘛
02011-1-5 10:45wrcr2010 | 四级
其实现在的x86系统就是32位的系统x64的系统,就是64位的系统。楼主也可以看到网上的光盘映像或cpu里边的参数,就很容易明白了。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: