毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 嵌入式 >> 正文

单片机或者cpu是多少位的,指的是地址总线还是数据总线

更新时间:2013-7-10:  来源:毕业论文

单片机或者cpu是多少位的,指的是地址总线还是数据总线

一般说的单片机或者cpu是多少位的,指的是地址总线还是数据总线(比如32位和64位的cpu)?
操作系统的32位和64位指的又是什么呢?cpu的32位和操作系统的32位一样吗?

寄存器的长度
一般的来说,寄存器中存的可能是数值,也可能是一个地址。主流CPU的寄存器一个字的长度有32和64,由于寄存器是CPU一次运算执行的变量单元,因此我们说的32位机器和64位机器最本质的区别就在于寄存器字的长度是32还是64。 一般来说,CPU的位宽指的是数据总线的宽度。
这个你可以这么推想:
CPU的地址总线宽度决定了寻址范围,数据总线决定了单次能取出的数据的长度。
决定CPU的性能的话,数据总线和地址总线谁更能决定这个性能呢?
当然是数据总线嘛,你64位数据总线一次就能取出64bit的数据,8位数据总线的CPU一次只能取出8bit的数据,在相同频率的情况下,8位数据总线的CPU就得连续取8次数据,数据量才能和64位数据总线一次取出的数据量相同,是不是性能差8倍呢。这里还不关心取到数据后处理数据的性能问题,但就说取数据的性能问题,就差8倍。

地址总线宽度不是直接影响到性能的参数。给个例子:
假如说有个36位地址总线宽度、32位数据总线宽度的A型号的CPU,
假如还有个32位地址总线宽度、32位数据总线宽度的B型号的CPU。
你觉得这两个型号的CPU性能上能差到哪吗?只不过B型号的CPU地址超过了32位可能就不行能,也可能需要用其他的方式组合出更长位宽的地址来,总之不如A型号直接、高效。但是,只要不是这样的情况,A和B的其他因素相同,你觉得A和B两个CPU的性能差到哪吗。

其实,intel的x86CPU就刚好有这样的情况,36位地址总线宽度、32位数据总线宽度,寄存器是32位的,你会想,那寄存器放不下36位的地址,那怎么办呢,其实它是用某种方法组合出来的36位地址,段地址32位向高位偏移4位后加上偏移地址,就出来36位的地址。

一般,寄存器的宽度和数据总线宽度是一致的,地址总线可以通过某种方式组合出来,所以可以不一致。毕竟寄存器绝大部分时间是要存储和处理数据的,不是吗,地址作为数据使用的情况在整个程序运行中占的时间是很少数的。

另外,操作系统的位宽应该指的是编译时使用的是32位指令集还是64指令集(这里就只说x86体系的吧,IA32和IA64这个比较多,其他体系结构的我也不是很清楚。),首先硬件CPU要是能支持足够的位宽,不过现在的inter和AMD的IA64体系的CPU都支持64位,为了兼容之前的软件体系,当然也支持32位的指令集。只是32位的操作系统和32位的软件,使用的是32位的指令集,没有用到64位的指令集,CPU上运行的是32位的指令集,但不是说它不能运行64位的指令集,而是软件它自己用的是32位,没用64位。如果这类比于ARM的32位ARM指令集和Thumb指令集就会很清楚了。

目前很多软件都是老的32位指令的软件,运行的是32位指令集,还没用跟上CPU,所以64位的操作系统上还不能像32位XP那样很好的运行全部的软件。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。