计组第三章 总线的基本概念
第三章 总线的基本概念
3.1 总线的基本概念
3.1.1. 为什么要用总线
- 根据计算机的结构,可以看出,计算机硬件有很多组件,每种组件的数目不止一个,要将这些组件连接起来
 - 分散连接:可以将需要通讯的组件两两连接起来
- 成本高,设计难度大
 - 每个组件的接口要很多
 - 难以扩展
 
 - 因此要用总的线
 
3.1.2. 什么是总线
- 总线是连接各个部件的公共信息传输线,是各个部件共享的传输介质
- 总线很繁忙,同时只能有一组设备使用,成为瓶颈
 - 但是设计简单,可扩展性高
 
 
3.1.3. 总线上信息的传送
- 串行
 

 一根线:数据是一位一位的传输
 支持距离比较长,一次只能传一位信号
- 
并行:

多条线(一个总线由平行的多条线),一个数据的多为同时放在多条总线上
传输距离如果比较长,线与线之间就会产生干扰
一般并行传输的举例比较短
一次可以传多位信号,图中一列为一个信号
 
问:现在的告诉信息传输采用那种传输方式
3.1.4. 总线的结构举例(简单介绍)
(1) 单总线结构框图

- 当主存要输出或者输入信息的时候,CPU就无法运算,严重影响CPU的性能
 - 当外设多的时候,总线的长度会变长,延迟增加
 
(2) 面向CPU的双总线结构框图

CPU需要的数据和指令都在主存中,所以专门添加一条M总线
问题
- 主存无法与外部设备直接连接,还是要通过CPU,增加了CPU的负担
 
(3) 以存储器为中心的双总线结构框图

目前无法实现主存同时向系统总线与存储总线传输
3.2 总线的分类
3.2.1. 按位置分

3.3 总线的特性及性能指标
3.3.1. 总线物理实现

3.3.2. 总线特性
| 特性 | 说明 | 
|---|---|
| 机械特性 | 尺寸、形状、管脚数 及 排列顺序 | 
| 电气特性 | 传输方向 和有效的 电平 范围 | 
| 功能特性 | 每根传输线的 功能(地址,数据,控制) | 
| 时间特性 | 信号的 时序 关系 | 
3.3.3. 总线的性能指标
| 性能 | 说明 | 
|---|---|
| 总线宽度 | 数据线 的根数 | 
| 标准传输率 | 每秒传输的最大字节数(MBps) | 
| 时钟同步/异步 | 同步、不同步(这里不是异步,有区别的) | 
| 总线复用 | 地址线 与 数据线 复用(复用可以减少芯片的管脚数) | 
| 信号线数 | 地址线、数据线和控制线的 总和 | 
| 总线控制方式 | 突发、自动、仲裁、逻辑、计数 | 
| 其他指标 | 负载能力 | 
3.3.4. 总线标准

这些总线不是一台电脑只用一个,而是不同地方用不同的总线,当然有的已经淘汰了
3.4 总线结构
之前也讲解了一些总线
3.4.1 单总线结构

3.4.2. 双总线结构

这个通道是操作系统写的,不是人工写的
3.4.3. 三总线结构

DMA是direct memory access,意思是直接访问主存,告诉外设不止有一个
下面是又一种实现的方法,记住这些总线的名字

- 
CPU的速度提升的很快,每年52%,但是内存的提升速度很慢,大概10年换一代
因此内存的性能成为了瓶颈
 - 
在内存与CPU的中间有一个Cache,内存的指令和数据都存在Cache中
 - 
下部有扩展总线,便于IO的扩展,但是不同速度的设备都连在了一条总线上,低速设备影响告诉设备的效率
 
3.4.4. 四总线结构

- 告诉的连接在告诉总线上,低俗的连接在扩展总线上
 
总线结构举例
(1) 传统微型机总线结构

ISA、EISA是扩展总线
(2) VL-BUS局部总线结构
VL-BUS是告诉总线

(3) PCI 总线结构

(4) 多层 PCI 总线结构
如果PCI总线上的设备过多的话,驱动可能不够

通过多个桥进行扩展
3.5 总线控制(重点)
总线控制主要是两个
- 总线判优控制:总线同时只能支持一堆设备使用,到底哪对设备使用
 - 总线通信控制:解决通信双方协调配合问题
 
3.5.1. 总线判优控制
根据是否能够发出总线命令,设备分成两类
- 主设备:对总线有 控制权,能够发出总线命令,并能够控制与另外一个设备的通信
 - 从设备:响应 从主设备发来的总线命令
 
有的设备既可以当主设备,又可以当从设备
有的主线只能连一个主设备,有的可以连多个

下面我们探讨集中式的总线控制
(1) 链式查询方式

链式的核心就在于BG
执行流程:
- 接口1与接口n都要请求占用总线,通过BR想总线控制部件发出请求
 - 总线控制部件不忙,认为可以交出使用权,但是不知道是哪一个设备要请求的,因此通过BG来逐个判断哪个接口要用呢
 - 当BG遇到第一个发出请求的接口后,停止,这里是接口1,接口1 通过BS设置总线忙,即总线控制部件此时不能转让总线使用权,这时接口1就能使用总线了
 
特征:
- 缺点:
- 各个设备的优先级是通过BG的查询顺序决定的,由连接方式决定的,如果某个设备连的比较后,可能永远不会占用
 - 一直向下查询,速度可能比较慢
 - 对电路故障比较敏感,一旦BG中间断了,就无法传输到后面
 
 - 优点:
- 易于扩展
 - 设计简单
 - 进行可靠性设计的时候,容易实现
- 比如将BG或者BS换成两条,很容易实现
 
 
 
一般用于微型计算机或者简单的嵌入式系统
(2) 计数器定时查询

- 总线控制部件内部有个计数器
 - 没有了BG,但是多了一个设备地址
 
执行流程:
- 接口1和n同时通过BR向控制部件发出请求
 - 控制部件同意之后,通过设备地址向接口发出信号,问是否发出请求
 - 到达接口1,接口1通过BS发出响应,计数器+1,1被选中
 
特点:
- 
优先级设计灵活
计数器的初值可以设计,可以从0开始,可以从上一次使用的设备开始
设置为k,那么k设备的优先级最高
 - 
线的数目
尤其是设备地址的数目,与接口数目有关 log2n向上取证
加上两根BR BS线
 
(3) 独立请求方式
前两种方式都是按顺序询问哪个接口发出的请求

总线控制部件的内部有一个排队器,排队方式由其控制
每一个接口都加了一个BRi BGi,可以独立发出请求
3.5.2. 总线通信控制
- 
目的:解决通信双方 协调配合 问题
 - 
总线传输周期
- 申请分配阶段:主模块申请,总线仲裁决定
 - 寻址阶段:主模块向从模块 给出地址 和 命令
 - 传数阶段:主模块和从模块 交换数据
 - 结束阶段:主模块 撤消有关信息
 
 - 
总线通信的四种方式

 
(1) 同步通信
① 同步式数据输入

总共有四个信号
- 
时钟信号:一个总线传输周期有四个时钟周期
时钟周期都是上升沿有效,所以每个时钟周期干什么事情是看上升沿做什么事情
 - 
地址信号
 - 
读命令信号
 - 
数据信号
 
| 周期(上升沿的时候) | 说明 | 
|---|---|
| T1 | 地址信号要给出地址(设备的地址) | 
| T2 | 读信号要给出命令(包括操作以及数据的地址) | 
| T3 | 数据信号要给出数据 | 
| T4 | 读命令和数据要撤销,周期结束后,地址信号也要撤销 | 
② 同步式数据输出

假设是CPU将某一个数据输出到某个模块
| 周期(上升沿的时候) | 说明 | 
|---|---|
| T1 | 上升沿地址信号要给出地址(设备的地址) 下降沿,CPU要给出数据  | 
| T2 | 写信号要给出命令(包括操作以及数据的地址) | 
| T3 | 做操作 | 
| T4 | 写命令和数据要撤销,周期结束后,地址信号也要撤销 | 
地址信号在第四个周期结束后撤销,因为地址信号控制着使用哪个外部设备,有信号就表示使用这个设备
| 通信方式 | 特点 | 适用 | 
|---|---|---|
| 同步 | 快速和慢速的设备使用等长的时钟周期,慢速的影响快速的设备 | 总线比较短,设备速度比价一致的情况 | 
(2) 异步通信
多了两根线:
- 主设备发出请求的线
 - 从设备发出应答的线
 
| 分类 | 示意图 | 说明 | 
|---|---|---|
| 不互锁 | ![]()  | 
1. 主设备不管从设备是否接收到请求信号,过一段时间都会撤销请求 2. 从设备不管主设备是否接收到应答信号,过一段时间都会撤销应答 可靠性较低  | 
| 半互锁 | ![]()  | 
1. 主设备发出请求,从设备接收后发出应答,主设备在接受到请求之后才撤销请求,否则会保持请求 2. 从设备不论是否主设备接受到应答,过一段时间后都会撤销应答 有可能造成请求信号一直有效  | 
| 全互锁 | ![]()  | 
1. 主设备接受到应答信号才会撤销 2. 从设备在请求信号撤销后才会撤销应答  | 
(3) 半同步通信(同步+异步)
这是同步和异步的结合
- 同步:发送方 用系统 时钟前沿 发信号,接收方 用系统 时钟后沿 判断、识别
 - 异步:允许不同速度的模块和谐工作,增加一条 “等待”响应信号 
来调整不同设备的速度差异 
以输入数据为例的半同步通信时序

| 周期 | 说明 | 
|---|---|
| T1 | 主模块发(外设模块)地址 | 
| T2 | 主模块发命令 | 
| Tw | 假设主从模块是CPU和慢速模块,速度差距很大 如果模块无法向CPU发出数据,就会通过WAIT线发出信号,主模块检测这个信号有效 此时进入Tw周期,这个时候主模块会等待一个周期  | 
| Tw | 如果从模块还不能发送数据,继续发出WAIT信号 | 
| …… | |
| T3 | 从模块提供数据 | 
| T4 | 从模块撤销数据,主模块撤销命令 | 
上述三种通信的共同点
一个总线传输周期(以输入数据为例)
- 主模块发地址 、命令 —— 占用总线
 - 从模块准备数据 —— 不占用总线 总线空闲
 - 从模块向主模块发数据 —— 占用总线
 第二步总线空闲,只是一种资源浪费,总线成为瓶颈
(4) 分离式通信
充分挖掘系统总线每个瞬间的潜力
一个总线传输周期
- 子周期1:主模块 申请 占用总线,使用完后即 放弃总线 的使用权
 - 子周期2:从模块 申请 占用总线,将各种信息送至总线上
 
特点:
- 
各模块有权申请占用总线
 - 
采用同步方式通信,不等对方回答
 - 
各模块准备数据时,不占用总线
 - 
总线被占用时,无空闲,一定是在执行命令,有活干
充分提高了总线的有效占用
 
                    
                



                
            
        
浙公网安备 33010602011771号