3.1 总线的基本概念
- 计算机系统的五大部件之间的互连方式有两种
- 各部件之间使用单独的连线,称为分散连接
- 将各部件连到一组公共信息传输线上,称为总线连接
- 总线是连接多个部件的信息传输线,是各部件共享的传输介质。
- 当多个部件与总线相连时,如果出现两个或两个以上部件同时向总线发送信息,会导致信号冲突,传输无效。
- 因此,采用总线连接方式,在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息。
- 总线传输信息的方式
- 串行:一位一位地传输二进制代码,一串二进制代码可在一段时间内逐一传输完成
- 并行:干条传输线可以同时传输若干位二进制代码
3.2 总线的分类
3.2.1 片内总线
- 片内总线是指芯片内部的总线
- 如在CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单元ALU之间都由片内总线连接。
3.2.2 系统总线
- 系统总线是指CPU、主存、I/O设备(通过I/O接口)各大部件之间的信息传输线。
- 由于这些部件通常都安放在主板或各个插件板(插卡)上,故又称板级总线(在一块电路板上各芯片间的连线)或板间总线。
- 按系统总线传输信息的不同,又可分为三类
- 数据总线
- 数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关
- 数据总线的位数称为数据总线宽度
- 地址总线
- 地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。
- 地址总线是单向传输的
- 地址总线上的信息用来指明要访问的存储单元或I/O端口的地址,由CPU发出
- 地址线的位数与存储单元的个数有关
- 如,地址线20根,存储单元个数为220
- 控制总线
- 控制总线是用来发出各种控制信号的传输线。
- 通常对任一控制线而言,它的传输是单向的,由CPU发出控制信号;对于控制总线总体来说,可认为是双向的,各设备通过控制总线向CPU发出请求。
- 控制总线还起到监视各部件状态的作用。
- 对CPU而言,控制信号既有输出,又有输人。
- 数据总线
3.2.3 通信总线
- 通信总线用于计算机系统之间或计算机系统与其他系统之间的通信。
- 按传输方式可分为两种
- 串行通信
- 指数据在单条1位宽的传输线上,一位一位地按顺序分时传送。
- 串行通信适宜于远距离传送
- 并行通信
- 指数据在多条并行1位宽的传输线上,同时由源传送到目的地。
- 并行通信适宜于近距离的数据传输
- 在短距离内,并行数据传送速率比串行数据传送速率高得多。
- 串行通信
3.3 总线特性及性能指标
3.3.1 总线特性
- 总线的物理实现
- 总线由许多导线直接印制在电路板上,延伸到各个部件,各个部件通过插头与水平方向总线插槽连接
- 总线的特性
- (1)机械特性
- 为了保证机械上的可靠连接
- 机械特性是指总线在机械连接方式上的一些性能
- 如插头与插座的几何尺寸、形状、引脚的个数以及排列的顺序等
- (2)电气特性
- 为了确保电气上正确连接
- 电气特性是指总线的每一根传输线上信号的传递方向和有效的电平范围。
- 通常规定由CPU发出的信号称为输出信号,送入CPU的信号称为输入信号。
- 控制总线的每一根都是单向的,但从整体看,有输入,也有输出。
- (3)功能特性
- 为保证正确地连接不同部件
- 功能特性是指总线中每根传输线的功能
- 如,地址总线用来指出地址码;数据总线用来传递数据;控制总线发出控制信号
- (4)时间特性
- 为保证正确地连接不同部件
- 时间特性是指总线中的任一根线在什么时间内有效。
- 每条总线上的各种信号互相存在一种有效时序的关系,时间特性一般可用信号时序图来描述。
- (1)机械特性
3.3.2 总线性能指标
- 总线宽度:
- 通常是指数据总线的根数,用bit(位)表示
- 一位一根线
- 总线带宽:
- 总线带宽可理解为总线的数据传输速率,即单位时间内总线上传输数据的位数
- 通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒)表示。
- 如,总线工作频率为33 MHz,总线宽度为32位(4B),则总线带宽为33× (32÷8)=132 MBps。
- 时钟同步/异步:
- 总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线。
- 总线复用:
- 一条信号线上分时传送两种信号。
- 为了提高总线的利用率,优化设计,特将地址总线和数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数据信号,即为总线的多路复用。
- 信号线数:
- 地址总线、数据总线和控制总线三种总线数的总和。
- 总线控制方式:
- 包括突发工作、自动配置(设备即插即用,自动配置驱动程序)、仲裁方式、逻辑方式、计数方式等。
- 其他指标
- 负载能力
- 电源电压
- 总线宽度能否扩展
- …
- 总线的负载能力即驱动能力,是指当总线接上负载后,总线输入输出的逻辑电平是否能保持在正常的额定范围内。
3.3.3 总线标准
- 所谓总线标准,可视为系统与各模块模块与模块之间的一个互连的标准界面,实现了对部件的隔离,即界面的任一方只需根据总线标准的要求完成自身一方接口的功能要求,而无须了解对方接口与总线的连接要求,即可连上总线进行使用
- 按总线标准设计的接口可视为通用接口。
- 采用总线标准可以为计算机接口的软硬件设计提供方便,使各个模块的接口芯片设计相对独立,对软件设计而言,更有利于接口软件的模块化设计。
- 目前流行的总线标准
- ISA总线(工业标准总线)
- EISA总线(扩展工业标准总线)
- VESA(VL-BUS)总线
- VESA(VL-BUS)总线,局部总线标准
- 局部总线,在系统外为两个以上模块提供的高速传输信息通道
- PCI总线
- 现代计算机最常用的总线之一
- AGP总线
- 显卡专用的局部总线
- RS-232C总线
- USB总线(通用串行总线)
3.4 总线结构
- 总线结构通常分为单总线结构和多总线结构
3.4.1 单总线结构
- 单总线结构中,所有的设备共享同一个总线
- 易发生总线争用,不允许两个以上的部件同一时刻向总线传输信息
3.4.2 多总线结构
- 双总线结构
- 将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。
- 通道是一个具有特殊功能的处理器
- CPU将一部分功能下放给通道,使其对I/O设备具有统一管理的功能,以完成外部设备与主存储器之间的数据传送,其系统的吞吐能力可以相当大。
- 通道可以进行数据格式的转换与数据校验
- 三总线结构
- 主存总线用于CPU与主存之间的传输
- I/О总线供CPU与各类I/O设备之间传递信息
- DMA总线用于高速I/O设备与主存之间直接交换信息。
- 在三总线结构中,任一时刻只能使用一种总线。
- 主存总线与DMA总线不能同时对主存进行存取,I/O总线只有在CPU执行I/O指令时才能用到。
- 处理器与Cache之间有一条局部总线
- 将CPU与Cache或与更多的局部设备连接。
- Cache的控制机构不仅将Cache连到局部总线上,而且还直接连到系统总线上,这样Cache可通过系统总线与主存传输信息,且I/O设备与主存之间的传输也不必通过CPU。
- 扩展总线将局域网小型计算机接口(SCSI)、调制解调器(Modem)以及串行接口等都连接起来,通过这些接口又可与各类I/O设备相连,因此它可支持相当多的I/O设备。
- 扩展总线通过扩展总线接口与系统总线相连,可实现这两种总线之间的信息传递
- 由于高速I/O设备与低速I/O设备都连接在扩展总线上,会降低扩展总线的工作效率
- 四总线结构
- 在高速总线上挂接一些高速I/O设备,它们通过Cache控制机构中的高速总线桥或高速缓冲器与系统总线和局部总线相连,使得这些高速设备与CPU更密切
- 一些较低速的设备仍挂在扩展总线上,并由扩展总线接口与高速总线相连。
- 可以提高效率
3.4.3 总线结构举例
- 略
3.5 总线控制
3.5.1 总线判优控制
- 总线上所连接的各类设备,按其对总线有无控制功能可分为主设备(模块)和从设备(模块)两种。
- 主设备对总线有控制权
- 从设备只能响应从主设备发来的总线命令,对总线没有控制权。
- 总线上信息的传送是由主设备启动的
- 首先由主设备发出总线请求信号
- 若多个主设备同时要使用总线时,就由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。
- 只有获得总线使用权的主设备才能开始传送数据。
- 首先由主设备发出总线请求信号
- 总线判优控制可分为
- 集中式
- 将控制逻辑集中在一处(如在CPU中)
- 分布式
- 将控制逻辑分散在与总线连接的各个部件或设备上
- 集中式
- 常见的集中控制优先权仲裁方式
- (1)链式查询
- 控制总线中有3根线用于总线控制
- BS总线忙
- BR总线请求
- BC总线同意
- 总线同意信号BC是串行地从一个I/O接口送到下一个I/O接口。
- 如果BC到达的接口有总线请求,BG信号就不再往下传,该接口获得了总线使用权,并建立总线忙BS信号,表示它占用了总线。
- 链式查询中,离总线控制部件最近的设备具有最高的优先级。
- 这种方式的特点
- 只需很少几根线就能按一定优先次序实现总线控制
- 很容易扩充设备
- 对电路故障很敏感(如果其中一个I/O接口故障则不能正常工作)
- 优先级别低的设备可能很难获得请求,优先级固定
- 效率慢(按次序一个接口一个接口传递信号)
- 控制总线中有3根线用于总线控制
- (2)计数器定时查询
- 多了一组设备地址线,少了一根总线同意线BG。
- 总线控制部件接到由BR送来的总线请求信号后,在总线未被使用(BS=0)的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。当某个请求占用总线的设备地址与计数值一致时,便获得总线使用权,此时终止计数查询。
- 这种方式的特点
- 计数可以从“0”开始
- 一旦设备的优先次序被固定,设备的优先级就按0,1,…,n的顺序降序排列,且固定不变
- 计数也可以从上一次计数的终止点开始,即是一种循环方法
- 设备使用总线的优先级相等
- 计数器的初始值还可由程序设置
- 优先次序可以改变
- 这种方式对电路故障不如链式查询方式敏感
- 增加了控制线(设备地址)数,控制较复杂
- 计数可以从“0”开始
- (3)独立请求方式
- 每一台设备均有一对总线请求线BR和总线同意线BG。
- 当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。
- 这种方式的特点
- 响应速度快
- 优先次序控制灵活(通过程序改变)
- 控制线数量多,总线控制更复杂。
- 链式查询中仅用两根线确定总线使用权属于哪个设备
- 在计数器查询中大致用 l o g 2 n log_2n log2n根线,其中n是允许接纳的最大设备数
- 独立请求方式需采用2n+1根线(还要一个BS)。
- (1)链式查询
3.5.2 总线通信控制
- 将完成一次总线操作的时间称为总线周期
- 总线周期可分
- ①申请分配阶段
- 由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授于某一申请者。
- ②寻址阶段
- 取得了使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块。
- ③传数阶段
- 主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块。
- ④结束阶段
- 主模块的有关信息均从系统总线上撤除,让出总线使用权。
- ①申请分配阶段
- 总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。
- 总线通信的方式
- 同步通信
- 异步通信
- 半同步通信
- 分离式通信。
- 同步通信
- 通信双方由统一时标控制数据传送称为同步通信。
- 同步通信规定了在每个时钟必须完成的任务,必须在限定的时间内完成规定的要求
- 异步通信
- 异步通信允许各模块速度的不一致性
- 采用应答方式(又称握手方式),即当主模块发出请求(Request)信号时,一直等待从模块反馈回来“响应"(Acknowledge)信号后,才开始通信。
- 异步通信的应答方式分为
- 不互锁
- 主模块发出请求信号后,不必等待接到从模块的回答信号,而是经过一段时间便撤销其请求信号
- 从模块接到请求信号后,在条件允许时发出回答信号,并且经过一段时间自动撤销回答信号。
- 通信双方并无互锁关系。
- 半互锁
- 主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系
- 从模块在接到请求信号后发出回答信号,不必等待获知主模块的请求信号已经撤销,而是隔一段时间后自动撤销其回答信号,无互锁关系。
- 由于一方存在互锁关系,一方不存在互锁关系,故称半互锁方式。
- 全互锁
- 主模块发出请求信号,必须待从模块回答后再撤销其请求信号
- 从模块发出回答信号,必须待获知主模块请求信号已撤销后,再撤销其回答信号。
- 双方存在互锁关系,故称为全互锁方式。
- 不互锁
- 半同步通信
- 半同步通信既保留了同步通信的基本特点,也有异步通信的特点
- 半同步通信增设了一条“等待”( WAIT)响应信号线,采用插入时钟(等待)周期的措施来协调通信双方的配合问题。
- 当没有准备好(如数据没有准备好),就发出 WAIT 响应信号,主设备进行等待
- 分离式通信
- 分离式通信过程:
- ①主模块通过传输总线向从模块发送地址和命令。
- ②从模块按照命令进行读数据的必要准备。
- ③从模块经数据总线向主模块提供数据。
- 将一个传输周期(或总线周期)分解为两个子周期。
- 在第一个子周期中,主模块A在获得总线使用权后将命令、地址以及其他有关信息,发到系统总线上,经总线传输后,由有关的从模块B接收下来。一旦发送完,立即放弃总线使用权,以便其他模块使用。
- 在第二个子周期中,当B模块收到A模块发来的有关命令信号后,经选择、译码、读取等一系列内部操作,将A模块所需的数据准备好,便由B模块申请总线使用权,一旦获准,B模块便将A模块的编号、B模块的地址、A模块所着的数据等一系列信息送到总线上,供A模块接收。
- 特点
- ①各模块均有权申请占用总线。
- ②在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。(主从模块身份可以互换)
- ③各模块在准备数据的过程中都不占用总线
- ④总线被占用时不存在空闲等待时间,充分地利用了总线的有效占用
- 分离式通信过程: