CPU外部总线

来源:互联网 发布:阿里云docker仓库 编辑:程序博客网 时间:2024/05/21 15:06
  

CPU总线

CPU与其他的设备之间的交互都是通过导线进行的,这些导线分为三类(称为总线),地址总线、控制总线、数据总线。

 

地址总线

CPU用来指定存储单元的。

一根导线可以传输高电平或低电平,高电平表示1,低电平表示0,那么这样算起来的话:

每个存储单元一般可以存储的大小为1byte。

如果地址总线宽度为16,可以找到2的16次方个存储单元,那么可以识别的最大的内存就是 65536byte=64MB

如果地址总线宽度为32,可以找到2的32次方个存储单元,那么可以识别 4GB。

如果地址总线宽度为64的话。。18,446,744,073,709,551,616byte=18,014,398,509,481,984KB=17,592,186,044,416MB=17,179,869,184GB(难道我计算器有问题?)

 

控制总线

CPU用来发送命令的。

控制总线的宽度(根数)决定了CPU每次发送的指令的大小,所以也就决定了CPU发送指令的速率。一根线传输一个1或者0.

 

数据总线

CPU用来交互数据的。

宽度决定了CPU每次发送的数据的大小,比如89D8h这个16进制的数据,如果数据总线宽度只有8,那么就要传输两次,第一次传输D8,第二次传输89,传输的顺序是因为栈的存储方式,先进后出。如果宽度是16,那么一次就传输完毕了。为什么传输次数不一样,那是因为89D8h,你换成2进制之后,总共有16个1或者0,一根线传输一位,如果不明白去看看进制之间的转换。

 

对于CPU来说,所有设备都是存储芯片,CPU的指令先通过地址总线找到要存储的存储单元,然后通过控制总线想存储单元发送命令,最后存储单元通过数据总线将数据反馈给CPU,一般情况下来说,处理是这样的一个流程。

CPU在控制其他设备的时候,将所有设备都视为内存,将所有的设备的内存集中在一起,那么这个集中起来的逻辑存储器就是我们一般所说的内存地址空间。每个设备的地址不一样,都是一段地址比如0~7FFFH,CPU在控制的时候,对这段地址空间的操作就等于在操作实际的设备的存储器,但是有一点要注意的时候,如果存储器是ROM(只读的存储器)那么是没有任何结果的。

 

所有设备都是通过各种总线与CPU连接的,所以CPU可以直接控制他们。

上面所说的三种总线都是指CPU的外部总线,CUU还有内部的总线,这些总线就是连接CPU的运算器、控制器、寄存器的器件的。