总线的基本概念
为什么要用总线
减少硬件间的连线数量
什么是总线
连接各个部件的信息传输线
是各个部件共享的传输介质
规范:一条总线只允许一对硬件进行传输,其余硬件需等待。
总线上信息的传送
-
串行
- 把要传输的信息一位一位的放到总线上,接收方再一位一位的接收
- 可长距离传输信息
-
并行
- 把要传输的信息多多位多位的放到总线上,接收方再多位多位的接收
- 长距离易损坏信息,但有特殊的处理方式
总线结构的计算机距离
-
单总线结构框图
不合理,若主存需要与其他硬件一起工作,CPU会停止运行
-
面向CPU的双总线结构框图
一条总线专门联通CPU和主存,解决了上图的问题
问题:主存与外部设备没有信息通路
-
以存储器为中心的双总线结构图
解决了上述问题
总线的分类
- 片内总线
芯片内部
的总线 - 系统总线
计算机各部件之间
的信息传输线(外部)- 数据总线
双向
与机器字, 存储字长有关 - 地址总线
单项
与存储地址, I/O地址有关 - 控制总线
有出
有入
- 数据总线
- 通信总线 用于
计算机系统之间
或计算机系统与其他系统
之间的通信- 传输方式: 串行通信总线, 并行通信总线
总线特性及性能指标
总线物理实现
总线就是印刷在主板上的
总线特性
- 机械特性
- 尺寸、形状、管脚数、线和线间的排列顺序
- 电气特性
-
传输方向
和有效地电平
范围
-
- 功能特性
- 每根传输线地
功能
- 地址
- 数据
- 控制
- 每根传输线地
- 时间特性
- 信号地
时序
关系
- 信号地
总线的性能指标
- 总线的宽度
-
数据线
的根数
-
- 标准传输率
- 每秒传输的最大字节数(
MBps
)
- 每秒传输的最大字节数(
- 时钟同步/异步
-
同步
不同步
-
- 总线复用
-
地址线
与数据线
复用
-
- 信号线数
- 地址线, 数据线和控制线的
总和
- 地址线, 数据线和控制线的
- 总线的控制方式
- 突发, 自动, 仲裁, 逻辑, 计数
- 其他指标
负载能力
总线标准
总线结构
单总线结构 把所有设备连接到一条总线上
多总线结构
-
双总线结构
三总线结构
三总线结构的又一形式
四总线结构
高速设备用高速总线
,低俗设备用扩展总线
总线结构举例
传统微型机总线结构
VL-BUS局部总线结构
将高速设备与低速设备分离
PCI总线结构
将高速设备与低速设备分离
多层PCI总线结构
PCI总线的扩展,更适用于多设备
总线控制
总线判优控制
基本概念
- 主设备(模块) 对总线有
控制权
- 从设备(模块)
相应
从主设备发来的总线命令 - 总线判优控制
- 集中式
- 链式查询
- 计数器定时查询
- 独立请求方式
- 分布式
- 集中式
链式查询
当借口发出占用总线的请求时, BR线被占用, 但并不知道哪两个设备需要占用总线, 此时BG线会从接口0一只运作到接口n, 直到找到占用设备为止.
优先级算法实现简单, 制作及扩展简单, 一般用在微型计算机
或一些简单的嵌入式系统当中
计数器定时查询
BR发出总线请求,此时计数器从0开始(也可以通过软件设置计数器的初始值,已达到更灵活的优先级的目的),检测接口i是否发出请求,若没有发出请求,计时器+1,继续检测下一个接口
可较灵活地更改优先级,但设备地址
地宽度,需要[log(n)]条线
独立请求方式
更灵活,寻找请求设备更快,总线控制部件
中内置 排队器
,能高度自定义优先级,但需要多很多线(2n条)
总线通信控制
目的 解决通信双方协调配合
问题
总线传输周期
- 申请分配阶段
主模块申请
, 总线仲裁决定 - 寻址阶段 主模块向从模块
给出地址
和命令
- 传数阶段 主模块和从模块
交换数据
- 结束阶段 主模块(和从模块)
撤销有关系信息
总线通信的四种方式
- 同步通信:由
统一时标
控制数据传送-
发送方
用系统时钟前沿
发信号 -
接收方
用系统时钟后沿
判断、识别
-
- 异步通信:采取
应答方式
,没有公共时钟标准‘- 允许不同速度的模块和谐工作
- 增加一条
“等待”响应信号
WAIT,由从设备给出
- 半同步通信:
同步
,异步
结合- T1 主模块法地址
- T2 主模块法命令
- Tw 等待一个T
- Tw 等待一个T
- ···
- T3 从模块提供数据
- T4 从模块撤销数据,主模块撤销命令
- 分离式通信 :充分
挖掘
系统总线每个瞬间
的潜力- 子周期1:
主模块
申请占用总线
,使用完后即放弃总线
的使用权 - 子周期2:
从模块
申请占用总线
,将各种信息送至总线上 - 特点:
- 各模块都有权申请占用总线,都能成为主模块
- 采用同步方式通信,不等对方回答
- 各模块准备数据时,不占用总线
- 总线被占用时,无空闲
- 子周期1:
上述三种通信的共同点
- 一个总线传输周期
- 主模块发地址、命令:占用总线
- 从模块准备数据:不占用总线(总线空闲) |(分离式通信充分利用总线,无该步骤)
- 从模块向主模块发送数据:占用总线