. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  常说的32位CPU,64位,其中"32位\64位"究竟指的是什么?  [已解决] 回复[ 9次 ]   点击[ 503次 ]  
loper
[帖 主]   [ 发表时间:2008-05-13 14:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2008-05-12 09:14
常说的32位CPU,64位,其中"32位\64位"究竟指的是什么?

看到有些人说指。。地址总线的宽度。。。有些人说。指数据总线的宽度(CPU一次可以处理的二进制的位宽!)。。。。。

有点迷惑。。。到底指的什么??

如果要是指数据总线的宽度。。。那么为什么32位的CPU不能装64位的系统???分2次传送数据不行吗???

望解答。。。谢谢了
younggay
[第1楼]   [ 回复时间:2008-05-13 14:20 ]   [引用]   [回复]   [ top ] 
荣誉值:273
信誉值:0
注册日期:2008-01-23 20:23
指的是数据总线的宽度。
虽然64位数据可以由32位的cpu分两次读,但是,具体到程序中就不太一样了。比如说,一个双字的数据可以分两个字读取,但是,在使用数据的时候要有相应的处理,都则计算结果就会有问题。我想,如果32位cpu运行64位的程序,如果cpu本身没有什么特殊化处理的话,数据的运算是会出问题的,毕竟不是一开始就考虑了cpu数据中线的扩展,所以,cpu很有可能就没有相应的处理过程,导致64位的程序无法在32位cpu上正确运行。
不过,我觉得不能排除经过特殊处理的32位cpu能运行特定的64位程序的可能吧。
个人看法,希望不吝指教。
loper
[第2楼]   [ 回复时间:2008-05-13 16:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2008-05-12 09:14
哦。。。那32位的CPU包含了32位寄存器组   那64位的CPU呢?、有多少寄存器组?
changroyce
[第3楼]   [ 回复时间:2008-05-13 19:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-12 08:42
我想所谓64位CPU也不能保证数据总线和地址总线都是64位吧?!
mark0289
[第4楼]   [ 回复时间:2008-05-13 21:24 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2008-05-12 16:27
从内存的角度来说,64位总线的处理器对于单个进程来说,其虚拟地址的寻址范围可以达到2的64次方字节,而单个页的容量从4K变为8K,盲人摸象似的看法,见笑了
crazyman
[第5楼]   [ 回复时间:2008-05-14 10:51 ]   [引用]   [回复]   [ top ] 
荣誉值:152
信誉值:3
注册日期:2008-01-24 21:26
楼上的说法,我觉得不太合适,因为数据总线和地址总线不一定一样宽度的。比如说8086,其数据总显示16位,而地址总线是20位。所以,我们从“*位cpu”这个概念上,我们能确定的只有数据总线的宽度,并不能百分百确定地址总线的宽度。

还有就是2楼的问题,没接触过64位的汇编概念,所以,这个问题还不能说清楚,等什么时候出来64位汇编了,我想我们就能体验一下了。
mark0289
[第6楼]   [ 回复时间:2008-05-15 13:46 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2008-05-12 16:27
crazyman说的很对,在80386中采用的地址总线是32位,可能intel觉得4G的寻址空间还不够大,在Pentium中引入了PAE,实现第三级映射,地址总线是36位
darkneece
[第7楼]   [ 回复时间:2008-05-15 18:08 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2008-05-15 17:39
“那么为什么32位的CPU不能装64位的系统???分2次传送数据不行吗??? ”

CPU并不知道将要运行的程序是32位还是64位的,或者说CPU根本就不知道64位这回事

64位的操作数位数是32位CPU的2倍,而取指令是不会分2次去一个操作数放到IP里再定位2次的

如果改造一下CPU,可以做到,但是就没有任何实用价值了(直接64位CPU了)
guaiguai
[第8楼]   [ 回复时间:2008-05-17 02:05 ]   [引用]   [回复]   [ top ] 
荣誉值:16
信誉值:0
注册日期:2008-05-17 01:25
个人觉得的话,这个32位和64位的区分就是数据宽度的区分,64位的CPU的地址总线不可能为64位,只是通过64位指令和扩展寄存器什么的可以达到一次性传输64bit的数据?作用的区别,当然就是运算的速度,和支持的内存空间了..(具体的什么构造那些,就需要大虾讲解了,我不懂)
至于为什么32位的CPU不能装64位的系统..
额..打个比方..你原先有一辆负载可以达到32吨的大型货车,那么你是不是最多就只能装32吨的东西? 是的。或者换成64吨的货车的话,你不仅可以装32吨的,还可以装64吨的,但是如果你要硬把64吨的东西,塞进32吨的货车里?可能么?
loper
[第9楼]   [ 回复时间:2008-05-20 17:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2008-05-12 09:14
此贴由 贴主 于 [ 2008-05-20 17:35 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(younggay):4分   5楼(crazyman):4分   7楼(darkneece):4分   8楼(guaiguai):4分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved