计算机系统的五大部件之间的互连方式有两种:
一种是各部件之间使用单独的连线,称为分散连接;分散连接方式无法解决I/O设备与主机之间连接的灵活性。
另一种是将各部件连到一组公共信息传输线上,称为总线连接。
总线是连接多个部件的信息传输线,是各部件共享的传输介质。
在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息。
总线实际上是由许多传输线或通路组成,每条线可一位一位地传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。
若干条传输线可以同时传输若干位二进制代码。
将CPU、主存和I/O设备(通过I/O接口)都挂到一组总线上
其中一组总线连接CPU和主存,称为存储总线(M总线)
另一组用来建立CPU和各I/O设备之间交换信息的通道,称为输入/输出总线(I/O总线)
各种I/O设备通过I/O设备通过I/O接口挂到I/O总线上,更便于增删设备。
在单总线基础上又开辟出的一条CPU与主存之间的总线,称为存储总线
这组总线速度高,只供主存与CPU之间和传输信息,这样既提高了效率,又减轻了系统总线的负担,还保留了I/O设备与存储器交换信息时不经过CPU的特点
总线的应用很广泛,从不同的角度可以有不同的分类方法。
片内总线是指芯片内部的总线。
如在CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单元ALU之间都由片内总线连接。
系统总线是指CPU、内存、I/O设备(通过I/O接口)各大部件之间的信息传输线。
由于这些部件通常都安放在主板或各个插件板(插卡)上,故又称板级总线(在一块电路板上各芯片间的连线)或板间总线。
按系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总线。
数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般为8位、16位或32位。
数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数。
如果数据总线的宽度为8位,指令字长为16位,那么,CPU在取值阶段必须两次访问主存。
地址总线主要用来指出数据总线上的元数据或目的数据在主存单元的地址或I/O设备的地址。
地址总线上的代码是用来指明CPU欲访问的存储单元或I/O端口的地址,由CPU输出,单向传输。
地址线的位数与存储单元的个数有关,如地址线为20根,则对应的存储单元个数为 2 2 0 2^20 220。
控制总线是用来发出各种控制信号的传输线。
通常对任一控制线而言,它的传输是单向的。但对于控制总线总体来说,又可认为是双向的。
控制总线还起到监视各部件状态的作用。
因此对CPU而言,控制信号既有输出,又有输入。
这类总线用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。
通信总线的类别很多,但按传输方式可分为两种:串行通信和并行通信。
串行通信是指数据在单条1位宽的传输线上,一位一位按顺序分时传送。
并行通信是指数据在多条并行1位宽的同时由源传送到目的地。
(数据传送速率都与距离成反比)
---- | 串行通信 | 并行通信 |
---|---|---|
适宜距离 | 远距离传送(可以从几米达数千公里) | 近距离的数据传输(通常小于30m) |
数据传送速率 | 低 | 高 |
通信线路费用 | 低(还可利用现有的电话网络来实现远程通信) | 高 |
从物理角度来看,总线由许多导线直接印制在电路板上
机械特性是指 总线在及其连接方式上的一些性能
如尺寸、形状、管脚数及排列顺序
电气特性是指 总线的每一根传输线上的信号的传递方向和有效的电平范围。
通常规定由CPU发出的信号称为输出信号,送入CPU的信号称为输入信号
功能特性是指 总线中没跟传输线的功能
时间特性是指 总线中的任一根线在什么时候有效
每根总线上的各种信号互相存在一种有效的时序关系,因此时间特性一般可用信号时序图来描述
通常是指数据总线的根数,用bit(位)表示
总线带宽可理解为总显得数据传输频率,即单位时间内总线上传输数据的位数
通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒)表示。
总 线 带 宽 = 总 线 工 作 频 率 × 总 线 宽 度 总线带宽 = 总线工作频率 \times 总线宽度 总线带宽=总线工作频率×总线宽度
总线上的数据域书中同步工作的总线称为同步总线
与时钟不同步的总线称为异步总线
一条信号线上分时传送两种信号
例如 地址总线与数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数据信号
地址总线、数据总线和控制总线三种总线数的总和
包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等。
负载能力、电源电压、总线宽度能否扩展等
总线的负载能力即驱动能力,是指当总线接上负载后,总线输入输出的逻辑电平是否能保持在正常的额定范围内。
总线标准,可视为系统与各模块、模块与模块之间的一个互连的标准界面。
这个界面对它两端的模块都是透明的,即界面的任一方只需根据总线标准的要求完成自身一方接口的功能需求,而无须了解对方接口与总线的连接要求。
因此,按总线标准设计的接口可视为通用接口。
目前流行的总线标准有以下几种
将CPU、主存和I/O设备(通过I/O接口)都挂到一组总线上
为了根本解决数据传送速率,解决CPU、主存与I/O设备之间传输速率的不匹配,实现CPU与其他设备相对同步,不得不采用多总线结构。
双总线结构的特点是 将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。
将速率不同的I/O设备进行分类,然后将它们连接在不同的通道上,可以进一步提高计算机系统的工作效率。
I/O总线供CPU与各类I/O设备之间传递信息
DMA总线用于高速I/O设备(磁盘、磁带等)与主存之间直接交换信息。
增加了一条与计算机系统紧密相连的高速总线。
在高速总线上挂接了一些高速I/O设备
它们通过Cache控制机构中的高速总线桥或高速缓冲器与系统总线和局部总线相连
在这种结构中,CPU、高速总线的速度以及各自信号线的定一件完全可以不痛,已知各自改变其结构也不会影响高速总线的正常工作
它主要包括判优控制(或称仲裁逻辑)和通信控制
总线上所连接的各类设备,按照其对总线有无控制功能可分为**主设备(模块)和从设备(模块)**两种
主设备对总线有控制权
从设备只能相应从主设备发来的总线命令,对总线没有控制权
总线上的信息的传送是由主设备启动的,只有获得总线控制权的主设备才能开始传送数据
总线判优控制可分为集中式和分布式两种
将控制逻辑集中在一处(如在CPU中)
特点:
只需很少几根线就能按一定优先次序实现总线控制
很容易扩充设备
对电路故障很敏感
优先级别低的设备可能很难获得请求
对电路故障不如链式查询方式敏感
增加了控制线(设备地址)数,控制较为复杂
特点:
响应速度快
优先次序控制灵活(通过程序改变)
控制线数量多
总线控制更复杂
链式查询中仅用两根线确定总线使用权书序那个设备
在计数器查询中大致用 l o g 2 n log_2n log2n根线
而独立请求方式需采用2n根线
n是允许接纳的最大设备数
在通信时间上,应按分时方式来处理,即以获得总线使用权的先后顺序分时占用总线,即哪一个部件获得使用权,此刻就由它传送,下一部件获得使用权,接着下一时刻传送
这样一个接一个轮流交替传送
通常将完成一次总线操作的时间称为总线周期,可分为以下四个阶段
由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授于某一申请者
取得了使用权的主模块通过发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块
主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块
主模块的有关信息均从系统总线上撤出,让出总线使用权
总线通信主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。
通常用四种方式:同步通信、异步通信、半同步通信和分离式通信
通信双方由统一时标控制数据传送称为同步通信。
时标通常由CPU的总线控制部件发出,送到总线上的所有部件
也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步
优点:规定明确、统一,模块间的配合简单已知。
缺点:主、从模块时间配合属于强制性“同步”,必须在限定时间内完成规定的要求。并且对所有从模块都用同一限时,这就势必造成,对各不相同速度的部件而言,必须按最慢速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。
适用场合:总线长度较短,各部件存取时间比较统一的场合。
在同步通信的总线系统中,总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率
异步通信克服了同步通信的缺点,允许各模块速度的不一致性,给设计者充分的灵活性和选择余地。
它没有公共的时钟标准,不要求所有部件严格的统一操作时间,而是采用应答方式(又称握手方式)
即当主模块发出请求(Request)信号时,一直等待从模块反馈回来“响应”(Acknowledge)信号后,才开始通信。
这要求主、从模块之间增加两条应答线(握手交互线 Handshaking)
异步通信的应答方式又可分为不互锁、半互锁和全互锁三种类型
异步串行通信时约定字符格式为:1个起始位(低电平)、5 ~ 8个数据位、1个奇偶校验位(作检测用)、1或1.5或2个终止位(高电平)
传送时起始位后面紧跟的是要传送字符的最低位,每个字符的结束时一个高电平的终止位。
异步串行通信的数据传送速率用波特率来衡量
波特率是指单位时间内传送二进制数据的位数,单位用bps(位/秒)表示,记作波特
主模块发出请求信号后,不必等待街道从模块的会打信号,而是经过一段时间,确定从模块已收到请求信号后,便撤销其请求信号
从模块接到请求信号后,在条件允许时发出回答信号,并且经过一段时间确定主模块已收到回答信号后,自动撤销回答信号
均无互锁关系
主模块发出请求信号,必须接到从模块的回答信号后再撤销其请求信号,有互锁关系
从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔一段时间后自动撤销其回答信号,无互锁关系
主模块发出请求信号,必须待从模块回答后在撤销其请求信号
从模块发出回答信号,必须待获知主模块请求信号已撤销后,再撤销其回答信号
双方存在互锁关系
半同步通信既保留了同步通信的基本特点
同时又像异步通信那样,允许不同速度的模块和谐地工作
为此增设了一条“等待”(WAIT)响应信号线,采用插入时钟(等待)周期的措施来协调通行双方的配合问题
半同步通信适用于系统工作速度不高但又包含了由许多工作速度差异较大的各类设备组成的简单系统。
半同步通信控制方式比异步通信简单,在全系统内各模块又在统一的系统时钟控制下同步工作,可靠性高,同步结构较方便
其缺点是对系统时钟频率不能要求太刀,故从整体来看,系统工作的速度还不是很高
对于系统总线而言,从模块内部读数据过程并无实质性的信息传输,总线纯属空闲等待。
为了克服和利用这种消极等待,充分挖掘系统总线没瞬间的潜力,对提高系统性能起极大作用。
其基本思想是将一个传输周期(或总线周期)分解为两个子周期。
在第一个字周期中,主模块A在获得总线使用权后将命令、地址以及其他有关信息,包括该主模块编号(当有多个主模块时,此标号尤为重要)发到系统总线上,经总线传输后,由有关的从模块B接收下来。主模块A向系统总线发布这些信息只占用总线很短的时间,一旦发送完,立即放弃总线使用权,以便其他模块使用
在第二个子周期中,当B模块收到A模块发来的有关命令信号后,经选择、译码、读取等一系列内部操作,将A模块所需的数据准备好,便由B模块申请总线使用权,一旦获准,B模块便将A模块的编号、B模块的地址、A模块所需的数据等一系列信息送到总线上,供A接受
上述两个传输子周期都只有单方向的信息流,每个模块都变成了主模块
特点:
这种方式控制比较复杂,一般在微型计算机系统中很少采用