一、总线的基本概念
计算机系统的五大部件之间的互连方式有两种,一种是各部件之间使用单独的连线,称为分散连接;另一种是将各部件连到一组公共信息传输线上,称为总线连接。
总线是由许多传输线或通路组成,每条线可一位一位地传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。若干条传输线可以同时传输若干位二进制代码。双总线包括存储总线(M总线)和输入/输出总线(I/O总线)。将CPU、主存和I/O设备都挂到一组总线上,便形成单总线结构的计算机。在单总线基础上加一条CPU和主存之间的总线,称为存储总线,就是以存储器为中心的双总线结构。
二、总线的分类
按数据传送方式可分为并行传输总线和串行传输总线。按总线的使用范围划分,有计算机总线、测控总线、网络通信总线等。
1.片内总线
片内总线:芯片内部的总线,如在CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单元(ALU)之间都由片内总线连接。
2.系统总线
**系统总线:**CPU、主存、I/O设备各大部件之间的信息传输线,又称板级总线或板间总线。
按系统总线传输信息的不同又可分为:数据总线、地址总线、控制总线。
1.数据总线
数据总线用来传输各功能之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般为8位、16位、32位。数据总线的位数称为数据总线宽度,它是衡量系统性能的重要参数。
2.地址总线
地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。
地址总线上的代码是用来指明CPU欲访问的存储单元或I/O端口的地址,由CPU输出,单向传输。地址线的位数与存储单元的个数有关。
3.控制总线
控制总线用来发出各种控制信号的传输线,还可监视各部件状态。对任意控制线而言,它的传输单向的;但对于控制总线整体而言,又可认为是双向的。
常见的控制信号有:时钟、复位、总线请求、总线允许、中断请求、中断响应、存储器写、存储器读、I/O读、I/O写、传输响应。
3.通信总线
通信总线:用于计算机系统之间或计算机系统与其他系统之间的通信。按传输方式可分为:串行通信、并行通信。
串行通信:数据在单条1位宽的传输线上,一位一位地按顺序分时传送。
并行通信:数据在多条1位宽的传输线上,同时由源传送到目的地。
串行通信适宜于远距离传送,并行通信适用于近距离的数据传输。串行和并行的数据传送速率都与距离成反比。
三、总线特性及性能指标
1.总线特性
(1)机械特性:总线在机械连接方式上的一些性能。
(2)电气特性:总线的每一根传输线上的信号的传递方向和有效的电平范围。
(3)功能特性:总线中每根传输线的功能。
(4)时间特性:总线中的任一根线在什么时间内有效。
2.总线性能指标
1.总线宽度:数据总线的根数,用bit(位)表示。
2.总线带宽:总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒)表示。
3.时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线。
4.总线复用:一条信号线上分时传送两种信号。
5.信号线数:地址总线、数据总线和控制总线三种总线数的总和。
6.总线控制方式:包括突发工作、总动配置、仲裁方式、逻辑方式、计数方式等。
7.其他指标:如负载能力、电源电压、总线宽度能否扩展等。
总线的负载能力:即驱动能力,是指当总线接上负载后,总线书法如输出的逻辑电平是否能保持在正常的额定范围内。
3.总线标准
总线标准:可视系统与各模块、模块与模块之间的一个互连的标准界面。
目前流行的总线标准有:ISA总线、EISA总线、VESA(VL-BUS)总线、PCI总线、AGP总线、RS-232C总线、USB总线。
四、总线结构
1.单总线结构
单总线结构是将CPU、主存、I/O设备都挂在一组总线上,允许I/O设备之间、I/O设备与CPU之间或I/O设备与主存之间直接交换信息。
2.多总线结构
双总线结构特点是将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。这种结构大多用于大、中型计算机系统。
三总线结构:主存总线用于CPU与主存之间的传输;I/O总线供CPU与各类I/O设备之间传递信息;DMA总线用于高速I/O设备与主存之间直接交换信息。在三总线结构中,任一时刻只能使用一种总线。主存总线与DMA总线不能同时对主存进行存取,I/O总线只有在CPU执行I/O指令时才能用到。
五、总线控制
主要包括判优控制和通信控制。
1.总线判优控制
总线上所连接的各类设备,按其对总线有无控制功能可分为主设备和从设备两种。
总线判优控制可分集中式和分布式两种,前者将控制逻辑集中在一处,后者将控制逻辑分散在与总线连接的各个部件或设备上。
常见的集中控制优先权仲裁方式有以下三种:
(1)链式查询
控制总线中有3根线用于总线控制(BS总线忙、BR总线请求、BG总线同意),其中总线同意信号BG是串行地从一个I/O接口送到下一个I/O接口。在链式查询中,离总线控制部件部件最近的设备具有最高的优先级。
这种方式的特点:只需很少几根线就能按一定优先次序实现总线控制,并且很容易扩充设备,但对电路故障很敏感,且优先级别低的设备可能很难获得请求。
(2)计数器定时查询
与链式查询相比,多了一组设备地址线,少了一根地址总线同意线BG。
这种方式的特点是:计数可以从“0”开始,此时一旦设备的优先次序被固定,设备的优先级就按0,1,…,n的顺序降序排列,而且固定不变;计数也可以从上一次计数的终止点开始,即是一种循环方法,此时设备使用总线的优先级相等;计数器的初始值还可由程序设置,故优先次序可以改变。
(3)独立请求方式
每一台设备均有一对总线请求线
BRi
B
R
i
和总线同意线
BGi
B
G
i
。
这种方式的特点是:响应速度快,优先次序控制灵活,但控制线数量多,总线控制更复杂。
2.总线通信控制
通常将完成一次总线操作的时间称为总线周期,可分为以下4个阶段:
1.申请分配阶段:由选哟使用总线的主模块提出申请,经总线仲裁机构决定下一传输周期的总线使用权授予某一申请者。
2.寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令,启动参与本次传输的从模块。
3.传数阶段:主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块。
4.结束阶段:主模块的有关信息均从系统总线上撤出,让出总线使用权。
总线通信控制通常用四种方式:同步通信、异步通信、半同步通信、分离式通信。
1.同步通信
通信双方由统一时标控制数据传送称为同步通信。时标通常由CPU的总线控制部件发出,送到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。
同步通信一般用于总线长度较短、各部件存取时间比较一致的场合。在同步通信的总线系统中,总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率。
2.异步通信
它没有公共的时钟标准,不要求所有部件严格的统一操作时间,而是采用应答方式(又称握手方式),即当主模块发出请求信号时,一直等待从模块反馈回来“响应”信号后才开始通信。它允许各模块速度的不一致性,给设计者充分的灵活性和选择余地。
异步通信的应答方式又可分为不互锁、半互锁、全互锁三种类型。
(1)不互锁方式
主模块发出请求信号后,不必等待接到从模块的回答信号,而是经过一段时间,确认从模块已受到请求信号后,便撤销其请求信号;从模块接到请求信号后,在条件允许时发出回答信号,并且经过一段时间确认主模块已受到回答信号后,自动撤销回答信号。
(2)半互锁方式
主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系;而从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔一段时间后自动撤销其回答信号,无互锁关系。
(3)全互锁方式
主模块发出请求信号,必须待从模块回答后再撤销其请求信号;从模块发出回答信号,必须待获知主模块请求信号已撤消后,再撤销其回答信号。
为了确认被传送的字符,约定字符格式为:1个起始位(低电平)、5~8个数据位、1个奇偶校验位、1或1.5或2个终止位(高电平)。
异步串行通信的数据传送速率用波特率来衡量。波特率是指单位时间内传送二进制数据的位数,单位用bps(位/秒)表示,记作波特。若只考虑有效数据位,可用波特率来衡量异步串行通信的数据传输速率,即单位时间内传送二进制有效数据的位数,单位用bps表示。
将异步串行传送中这些附加位去掉,就可以采用同步传送,在同步传送时,数据块开始处要用同步字符SYN来指明。同步串行传送速度高于异步串行传送速度,可达500千波特,而异步通信传送一般为50~19200波特。
3.半同步通信
半同步通信既保留了同步通信的基本特点,如所有的地址、命令、数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用的系统时钟后沿时刻来进行判断识别;同时又像异步通信那样,允许不同速度的模块和谐地工作。
半同步通信适用于系统工作速度不高但又包含了由许多工作速度差异较大的各类设备组成的简单系统。半同步通信控制方式比异步通信简单,在全系统内各模块又在同意的系统时钟控制下同步工作,可靠性较高,同步结构较方便。缺点是对系统时钟频率不能要求太高,故从整体上来看,系统工作的速度还不是很高。
4.分离式通信
基本思想是将一个传输周期分解为两个子周期。这种通信方式的特点如下:
1.各模块欲占用总线使用权都必须提出申请。
2.在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。
3.各模块在准备数据的过程中都不占用总线,使总线可接受其他模块的请求。
4.总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲的等待时间,充分地利用了总线的有效占用,从而实现了总线在多个主、从模块间进行信息交叉重叠并行式传送。