总线的概念
总线:是一组能为多个计算机部件分时共享的公共信息传送线路。分时指的是同一时刻总线上只能传送一个部件发送的信息。而共享指的是总线上挂接的多个部件通过这组公共线路交换信息;
分时共享的实现机制:
指的是所有连接在总线上的部件采用三态门电路来控制状态。总线空闲时,所有部件都以高阻状态连接在总线上。如果有部件需要通信,则该部件驱动总线,并发出地址和数据,而其它处于高阻状态的部件通过匹配总线上的地址信息来决定是否接收信息,如果匹配成功,则开始接收总线上的数据。在部件完成数据传输后,部件将让出总线。此时,部件的三态门电路输出为高阻态。
三态门
指的是具有高阻状态的门电路。高阻状态又被称为浮空状态,处于此状态的三态门相当于输出开路,此时输出端对地的电阻无限大,与外界断开联系;除此之外,三态门一般具有三种逻辑状态(逻辑0,逻辑1,高阻状态);除输入输出端之外,三态门还有一个控制端,仅当控制端有效时,三态门才能实现正常的逻辑关系,否则输出为高阻状态。
总线电路
按照总线的逻辑结构划分:总线分为单向和双向。单向总线具有指定的信息传输方向,双向总线则可以两个方向传输信息。比如,在计算机系统具有的总线里面,数据总线是双向总线,意味着数据即可以从CPU传送至存储器或IO设备,也可以从IO设备或存储器传送至CPU;而地址总线则是单向总线,这就是说地址只能从CPU传向存储器或IO设备。
总线事务及分类
在计算机系统里面,一个总线事务指的是总线上一对设备间的一次信息交换过程,我们把发出总线事务请求的部件称为主设备,而与主设备进行信息交换的设备称为从设备。例如,在CPU读取存储器单元的数据这一事务,CPU为主设备,存储器为从设备。
根据总线事务的操作性质,可以对总线事务进行分类。一般情况下,典型的总线事务有“存储器读”、“存储器写”、“IO读”、“IO写”等等。
在计算机系统中,由于总线被设计为由多个部件和设备共享,为了正确实现它们之间的通信,就必须有一个总线控制机构,这个机构主要实现对总线使用权进行分配和管理。这部分内容将在总线仲裁中学习。
在总线使用过程中,我们通常用主从关系来描述设备的工作关系。主从关系指的是以获得总线使用权的设备为参考点,向从设备发送信息或接收从设备送来的信息的工作关系。主设备负责控制和支配总线,向从设备发出命令来指定数据传送方式与数据传送地址信息。从设备只需要积极响应主设备的命令来接收或发送数据。
当一次数据传送结束后,总线使用权会发生转让,此时,需要使用总线的设备可以向总线控制机构申请使用总线。
关于总线的分类,计算机系统采用功能层次和数据线多少对总线进行分类。如果是按功能层次分类,总线可分为:片内总线,它指的是芯片内部的总线,是CPU内部的寄存器之间、寄存器与ALU之间的公共连接线。第二种是系统总线,它指的是计算机系统内各功能部件,比如CPU、主存、IO接口,之间相互连接的总线。系统总线又称为内总线,是计算机的主要组成部分。按传输的信息类型可分为数据总线、地址总线和控制总线。最后一类是通信总线,也就是外总线,通常用于计算机系统之间的信息传送,比如光纤、双绞线等等。
如果我们按数据线的多少对总线进行划分,那么总线可分为:并行总线和串行总线。并行总线指的是具有多条双向数据线的总线,它可以实现一个数据的多位同时传输,具有数据传输率高的优点,但是由于各条数据线的传输特性不一致,导致每一位数据的传输延迟不一致,因而,可能会造成传输错误。第二类是串行总线,它指的是只含有一条双向数据线或两条单向数据线的总线,它可以实现一个数据的每一位按照一定的速度和先后关系进行传输。因为串行总线对数据线的传输特性要求不高,因此比较适用于长距离通信。
总线的基本结构及性能指标
首先,从系统的角度出发,我们把总线分为单总线、双总线,三总线三种结构。在单总线结构中,系统只有一条总线,所有部件都需要通过系统总线接入。单总线结构的特点是系统部件只能分时工作,这限制了信息传送的吞吐量,但是单总线结构简单,可扩展性较好,部件只需往总线上接入而不需要扩展硬件电路。第二种是双总线结构:这种总线是在单总线的基础上,增加了一条专用于CPU和主存之间的数据传送通路。其总线特点是CPU可通过专用总线与存储器交换信息,减轻了系统总线负担,同时还保持了单总线系统简单、易于扩充的优点。
最后一种是三总线结构:这在双总线的基础上,又再增加了一条I/O总线; I/O总线与系统总线通过通道(IOP)传送数据;IO总线是外部设备与IOP之间进行数据传送的公共通路。三总线结构的特点是通过IO总线进一步缓解了IO设备与CPU之间速度不匹配的问题,减轻了系统总线负担。总的来说,通过IO总线能够提高外部设备与CPU、主存之间的信息传输速度;
总线的性能指标,总线的性能指标主要包括总线宽度、总线带宽、总线负载,总线复用等等。首先,总线宽度指的是总线的线数,它决定了总线所占的物理空间和成本;直接影响了地址线和数据线的数量,地址线宽度指明了总线能够直接访问的存储器的地址空间范围;而数据线的宽度指明了访问一次存储器能够取到的数据位数是多少,数据线宽度越大,一次传送的数据量就越多。第二、总线带宽:它指的是总线的最大数据传输率,说的是每秒传送的字节数。比方说,在同步通信系统中,总线的带宽与时钟密切相关,总线时钟频率决定了总线带宽的大小。它的计算公式是:B=W/(NT)=W*F/N。其中,B为总线的带宽,W为总线宽度,通常以字节为单位;T = 1/F表示时钟周期时间, F为总线时钟频率;N为完成一次数据传送需要的时钟周期数;第三个性能指标是总线负载,它指的是连接在总线上的最大设备数量。设备数量越多,总线负担越重。
第四个性能指标:总线复用,它指的是在不同时段利用总线上同一条信号线传送不同信息,类似于信号线的分时复用。比如说,我们可以让地址总线和数据总线共用一组信号线,总线复用的优点是:减少了总线数量,提高了总线的利用率;
最后一个,总线猝发传输:它指的是在一个总线周期中可以传输多个地址连续的数据。这种传输方式提高了信息传输效率;
计算机总线技术扩展阅读一:计算机总线技术概念
从结构上看,计算机cpu由两个部分组成:一个是控制单元,另一个是算术逻辑单元。cpu的控制单元负责计算机各个组件的协调与沟通。沟通指的是数据传输,比如输入设备将信息传输到主存储器中,主存储器将数据传输到cpu中,cpu计算结果输出到输出设备等等。cpu的算术逻辑主要是进行逻辑上的运作,判断等,比如加减乘除运算。
cpu只负责运算和协调控制各个组件,那么它所需要的数据从哪里来呢?答案是从主存储器那里来,输入设备会将用户输入的数据传输到主存储器中,然后主存储器又会将数据传输到cpu中,那么这个传输是通过谁来进行的的呢?是主板的总线,因此,总线就是计算机系统中进行数据传输的通道。
通常来说,计算机要控制和协调各个组件,需要通过主板来进行。如果cpu是大脑,那么主板就好像神经系统一样。主板最重要的组件是一个芯片组,这个芯片组就是北桥和南桥了,主板的北桥负责实现主存储器(RAM)、显示适配器(即显卡)与cpu的沟通,然后再通过北桥连往cpu的总线,将数据传给cpu(注意,这里指的是Intel的构架,AMD则直接将主存储器和cpu连接而不通过北桥),北桥通往cpu的总线,因为需要连接主存储器和显示适配器等,因此需要极高的速度,我们把这条总线称之为系统总线,总线一次能传输的数据一般是32bit和64bit两种,而这些连接北桥通往cpu的设备,又有一个用来衡量传输能力的标准,叫做外频。例如,如果外频是333MHz的话,就意味著这些连接北桥的设备,每秒进行3.33*10^6次传输。计算机中还有一个被固定死的倍频,cpu的主频(及每秒运作多少次)=外频*倍频,据说是为了协调高速cpu与低速外部设备而设计的。外部设备的每秒数据传输量=每秒传输多少次*总线宽度。
下面来说一下南桥,南桥和北桥一样,也是用来连接计算机设备的,主要是连接低速的网卡、USB设备、音频,硬盘等设备。这些设备也是由一条总线牵连,我们叫做I/O总线。至于PCI,PCI-Express是啥?我们就拿PCI-Express说事吧,PCI-Express就是总线接口,从主板表面上看,就是主存储器、显示适配器的插槽嘛,PCI-Express是新一代的总线接口,用来取代老式的PCI,AGP等。注意,总线接口规格会影响数据传输速度。现在很多硬件都是往匹配PCI-Express方向发展。SATA是啥?和IDE插槽一样,是用来连接硬盘设备的。
各种计算机设备与总线之间的关系,请参见下图所示
