当前位置: 代码迷 >> 汇编语言 >> 编译语言,费解,地址总线
  详细解决方案

编译语言,费解,地址总线

热度:273   发布时间:2016-05-02 04:55:31.0
汇编语言,,,费解,,地址总线
一根地址总线=一个内存单元=一个字节byte=八个位bit=八个数据,这样理解对吗,如果是64位cpu,那么对应的就是64跟地址总线=64个内存单元=64个字节=2^9个bit=2^9个数据吗?很费解啊,请各位大侠帮忙啊

------解决方案--------------------
一个字节(byte)含有8位(bit)
32位的地址总线一次可以传输8个字节
如果说总线与存储器有对应关系的话,那也是地址总线的位对应存储单元中的位(bit)
计算机在访问存储单元时,是以字节为单位的,即一次至少要访问一个字节。
------解决方案--------------------
纠正一下,2L说的地址总线应该是数据总线;
地址总线的多少是影响访问存储单元个数的.
------解决方案--------------------
1个内存单元,不需要地址总线,只需要数据总线和控制总线就行了。这种结构好像是有的,从某些只有一个和CPU通信的端口的外设自身的角度看,这个端口可以看成是没有地址线的,但端口也不是内存。但端口一般都有一个寄存器,这个寄存器可以说是没有地址的。但是这个寄存器如果是按位寻址的就不好说了。
2个内存单元。设第一个内存单元的地址为0,第二个内存单元的地址为1。只需要一条地址总线即可。
4个内存单元。设内存单元的地址依次为:00、01、10、11。需要两根地址总线。
其他的略。
------解决方案--------------------
64位的CPU的地址总线好像不是64位的,现在的PC机上根本就不会有那么大的内存,用那么多的地址总线完全是浪费。64位地址总线的寻址能力是2^64=18446744073709551616=16777216TB。全世界的内存条加起来可能也没有这么大的容量。
------解决方案--------------------
引用:
一个字节(byte)含有8位(bit)
32位的地址总线一次可以传输8个字节
如果说总线与存储器有对应关系的话,那也是地址总线的位对应存储单元中的位(bit)
计算机在访问存储单元时,是以字节为单位的,即一次至少要访问一个字节。

鬼使神差,我在2L的回贴又发现一个错误,应是4个字节,不是8个.
------解决方案--------------------
引用:
一根地址总线=一个内存单元=一个字节byte=八个位bit=八个数据,这样理解对吗,如果是64位cpu,那么对应的就是64跟地址总线=64个内存单元=64个字节=2^9个bit=2^9个数据吗?很费解啊,请各位大侠帮忙啊


地址总线用于表示最大寻址范围,64根线,每根线有2种状态,那么就是2^64种状态,每种状态对应一个地址,一个地址对应1B存储空间.

换句话说64位地址总线,能寻址0-2^64-1这么一个范围的空间,那么它最大的支持内存就是2^64B.
64位的cpu,支持64bit的单指令,那么就可以寻址64bit的空间.

不过现行的64位cpu 只能寻址48bit 的空间,因为2^64是个天文数字,没太大意义
------解决方案--------------------
地址总线用于表示CPU寻址范围,简单说就是CPU能找到多少内存(存储单元所在的地址)
------解决方案--------------------
一根地址总线=一个内存单元=一个字节byte=八个位bit=八个数据,这样理解对吗
通常,一个字节(byte)标识八个位(bit),内存的基本单元也基本是字节(byte)(以字节为基本寻址单位)。
总线一般分“地址总线”,“数据总线”,“控制总线”。当CPU要对存储器中的数据进行操作时,必须要明确这个数据在存储器的什么地方(就是地址),怎么样的操作(读还是写等--控制),CPU与存储器的数据互传(数据总线)。我个人乱说下:“假设,我们不搞三总线,只通过一个总线或者说单线串行再解码的方式应该也可以进行寻址,控制,数据传输,但估计会搞得很复杂且效率不是很高,而且要颠覆以前的成果从新开始。很不合算!”以上是我乱扯的。。。
现在已知道是通过地址总线来确定存储器基本单元的位置的,那么1根地址总线可以表示出2个位置0和1, 2根可以确定00,01,10,11四个位置,如此类推32根可以确定2^32个位置即4G个位置,通常说的4G内存在32根地址总线下就可以全识别。

如果是64位cpu,那么对应的就是64跟地址总线=64个内存单元=64个字节=2^9个bit=2^9个数据吗?
这里感觉您的认识就有点模糊了。
通常说64位CPU,一般指CPU单周期处理数据的宽度,(说是通用寄存器的宽度也还可以吧--但这也不是很确切CPU位数的唯一定义方法),它和地址总线的宽度没甚关系,16位的8086CPU的地址总线不就20位吗?
所以您说“如果是64位cpu,那么对应的就是64跟地址总线”就不很正确了。
如果是64根地址总线的话,按上面那个“以此类推”来就是可以确定2^64个存储器单元位置,就是可寻4G*4G个地址。
可想而知,你这“64跟地址总线=64个内存单元=64个字节=2^9个bit=2^9个数据吗”也不正确了。而且是一错又错哦!
  相关解决方案