这样说你明白吗? 对于CPU,是指通用寄存器,更具体的说是ALU的位宽。
对于操作系统,是指虚拟地址空间的范围,也就是(void *)数据类型的宽度。
回复 #1 新警察 的帖子
很简单,单条指令可以直接寻址的地址范围。下面是几个例子:1 有些嵌入式 MIPS 有 64 位长的通用寄存器,但是在 ld 和 st 命令中,只有低 32 位起作用,所以仍然是个 32 位处理器。
2 Pentium 有 36 位长的地址总线,但是指令中的地址仍然被限制在 32 位长;要想使用 36 位的地址空间,必须使用 PAE 并让操作系统改变页表,所以仍然是个 32 位处理器。
3 Opteron 只有 40 位的地址总线,但是指令中的地址却是 64 位,所以 Opteron 是货真价实的 64 位处理器。 原帖由 新警察 于 2009-9-9 19:50 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
我查了很多资料,都说16位处理器一次处理16位数据,32位处理器一次处理32位数据,64位处理器一次处理64位数据,
但是更具体一些的阐述是什么呢?
是寄存器还是数据总线?或者是什么别的呢?
386处理器在实模式下也可以使用32位寄存器啊、
谢谢
1)CPU的一个中心部件叫算术逻辑运算部件(ALU)。一般来说,CPU的字长,就是ALU的位数。因此,确切地说,大多数指令处理数据的长度,就是CPU的位数。以8位的Z80为例,它的大多数指令都是处理8位数的,但是,也有个别指令能一次处理16位数。
2)能使用多少位寄存器,一般来说,与CPU位数,没有特定的关联。同样以Z80为例,它可以使用8位寄存器,也可以使用16位寄存器。如果你为了某一特殊目的需要在Z80基础上加以扩展,你完全可以增加一个或更多个128位的寄存器。当然,加了也仍是8位CPU。
3)数据总线倒是与CPU字长有关。一般来说,字长等于数据总线宽度。但是,有特殊情况。以第一代PC为例,它的CPU是8088,16位的,但是它的总线是8根。实际上,它内部数据总线是16位的,以时分方式输出。 原帖由 beepbug 于 2009-12-18 20:30 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
1)CPU的一个中心部件叫算术逻辑运算部件(ALU)。一般来说,CPU的字长,就是ALU的位数。因此,确切地说,大多数指令处理数据的长度,就是CPU的位数。以8位的Z80为例,它的大多数指令都是处理8位数的,但是, ...
。。。。
CPU CORE != CPU 原帖由 beepbug 于 2009-12-18 20:30 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
2)能使用多少位寄存器,一般来说,与CPU位数,没有特定的关联。同样以Z80为例,它可以使用8位寄存器,也可以使用16位寄存器。如果你为了某一特殊目的需要在Z80基础上加以扩展,你完全可以增加一个或更多个128位的寄存器。当然,加了也仍是8位CPU。
没说清楚,我的意思是,如果你自行设计一个类似Z80的CPU,你可以增加一个或更多个128位的寄存器,而它仍是一个8位CPU。
页:
1
[2]