总线及单片机各种线 以及数据总线宽度

总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(能有多个器件同时接收)。  

器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。  
在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。 --------------------- 本文来自 tszy208 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/tszy208/article/details/74625958?utm_source=copy

CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息。

地址总线

地址总线的位数决定CPU寻址范围。
若CPU的地址总线宽度是32位,那么CPU的寻址范围是4G,所以最多支持4G内存。

数据总线

数据总线的位数决定CPU单次通信能交换的信息数量

数据总线的宽度对CPU的性能的影响

  1. 首先,总线的速度(即:CPU的主频,CPU的性能指标之一)决定CPU和外设互换信息的速度。

  2. 其次,数据总线的宽度也是表示CPU性能的参数之一(通常,我们说“64位的CPU”是指CPU的数据总线的宽度是64位)。
    如:64位数据总线的CPU一次就能取出64bit的数据,8位数据总线的CPU一次只能取出8bit的数据,在相同频率的情况下,8位数据总线的CPU就得连续取8次数据,数据量才能和64位数据总线一次取出的数据量相同,单就比较取数据的性能就相差8倍。况且,通常CPU中的寄存器的位数与数据总线的宽度一样,所以在数据处理方面,64位的CPU又比8位的CPU快很多。

  3. CPU的地址总线位数和数据总线可以不同(典型代表就是51单片机),但是一般都相同。

以下内容摘抄自网友的文章:
地址总线宽度不是直接影响到性能的参数。给个例子:
假如说有个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位的地址。
一般,寄存器的宽度和数据总线宽度是一致的,地址总线可以通过某种方式组合出来,所以可以不一致。毕竟寄存器绝大部分时间是要存储和处理数据的,不是吗,地址作为数据使用的情况在整个程序运行中占的时间是很少数的。

--------------------- 本文来自 QCZTZSWT357 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qcztzswt357/article/details/52924770?utm_source=copy

猜你喜欢

转载自blog.csdn.net/qq_39642794/article/details/82944474