3.1 总线的基本概念
-
为什么要用总线
计算机系统五大部件之间的互连方式有两种:
- 分散连接——各部件之间使用单独的连线
- 总线连接——各部件连到一组公共信息传输线上
早期的计算机大多采用分散连接方式,内部连线十分复杂,尤其当I/O与存储器交换信息时都需要经过运算器,使运算器停止运算,严重影响CPU的工作效率。
-
什么是总线
总线是连接各个部件的信息传输线,是各个部件共享的传输介质
-
总线上的信息传送
- 串行
- 并行
3.2 总线的分类
-
片内总线
芯片内部的总线
- CPU芯片内部
- 寄存器之间
- 寄存器与算逻单元ALU之间
-
系统总线
计算机各部件(CPU、主存、I/O设备)之间的信息传输线
按系统总线传输信息不同分为:
- 数据总线——传输各功能部件之间的数据信息
- 双向
- 与机器字长、存储字长有关
- 数据总线宽度——数据总线的位数
- 地址总线——用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址
- 单向(由CPU输出)
- 与存储地址、I/O地址有关
- 地址线位数(\(2^n\))与存储单元的个数(n)有关
- 控制总线——用来发出各种控制信号的传输线
- 出——中断请求、总线请求
- 入——存储器读/写、总线允许、中断确认
- 常见控制信号:
- 时钟:用来同步各种操作
- 复位:初始化所有部件
- 总线请求:表示某部件需获得总线使用权
- 总线允许:表示需要获得总线使用权的部件已获得了控制权
- 中断请求:表示某部件提出中断申请
- 中断响应:表示中断请求已被接收
- 存储器写:将数据总线上的数据写至存储器的指定地址单元内
- 存储器读:将指定存储单元中的数据读到数据总线上
- I/O读:从指定的I/O端口将数据读到数据总线上
- I/O写:将数据总线上的数据输出到指定的I/O端口内
- 传输响应:表示数据已被接收,或已将数据送至数据总线上
- 数据总线——传输各功能部件之间的数据信息
-
通信总线
用于计算机系统之间或计算机系统与其它系统(控制仪器、移动通信等)之间的通信
通信方式:
- 串行通信
- 数据在单条1位宽的传输线上,一位一位地按顺序分时传送。
- 一字节的数据要通过一条传输线分8次由低位到高位按顺序传送
- 适用于远距离传送,实现远程通信
- 数据在单条1位宽的传输线上,一位一位地按顺序分时传送。
- 并行通信
- 数据在多条并行1位宽的传输线上,同时由源传送到目的地。
- 一字节的数据要通过8条并行传输线同时由源传送到目的地
- 适宜于近距离的数据传输,通常小于30m
- 数据传送速率与距离成反比
- 串行通信
3.3 总线特性及性能指标
-
总线物理实现
总线由许多导线直接印制在电路板上,延伸到各个部件。
CPU、主存、I/O这些插板通过插头与水平方向总线插槽连接。为了保证机械上的可靠连接,必须规定其机械特性;为了确保电气上的正确连接,必须规定其电气特性;为了保证正确地连接不同部件,还需规定其功能特性和时间特性。
Pentium Ⅲ以上微型计算机已将CPU芯片直接安装在主板上,很多插卡已做成专用芯片,减少插槽,结构更合理。
-
总线特性
-
机械特性——总线在机械连接方式上的一些性能
- 尺寸
- 形状
- 管脚数
- 排列顺序
-
电气特性
- 每一根传输线上信号的传输方向
- 有效电平范围
-
功能特性——每根传输线的功能
- 地址
- 数据
- 控制
-
时间特性——信号的时序关系
- 总线中的任一根线在什么时间内有效
- 每条总线上的各种信号互相存在一种有效时序关系,一般可用信号时序图描述
-
-
总线的性能指标
- 总线宽度
- 数据线的根数
- 用bit(位)表示(8位,16位,32位,64位)
- 标准传输率——每秒传输的最大字节数\(-MBps\)
- 时钟同步/异步——同步/不同步
- 总线复用——地址线与数据线复用
- 信号线数——\(\bold{地址线+数据线+控制线}\)
- 总线控制方式
- 突发工作
- 自动配置
- 仲裁方式
- 逻辑方式
- 计数方式
- 其他指标
- 负载能力
- 电源电压
- 总线宽度能否扩展
- 总线宽度
-
总线标准
总线标准 数据线 总线时钟 带宽 ISA
工业标准结构总线16 8MHz(独立) 16MBps EISA
扩展工业标准结构32 8MHz(独立) 33MBps VESA(VL-BUS)
视频电子标准协会32 32MHz(CPU) 132MBps PCI
外设部件互联标准32/64 33MHz(独立)/ 66MHz(独立) 132MBps
528MBpsAGP
加速图形接口32 66.7MHz(独立)
133MHz(独立)266MBps
533MBpsRS-232 串行通信总线标准 数据终端设备(计算机)和数据通信设备
(调制解调器)之间的标准接口USB
通用串行总线串行通信总线标准 普通无屏蔽双绞线
带屏蔽双绞线
最高1.5MBps (USB1.0)
12MBps (USB1.0)
480MBps (USB2.0)
3.4 总线结构
-
单总线结构
-
多总线结构
-
双总线结构(分离主存总线和I/O主线)
-
三总线结构
DMA(主存与I/O设备之间):直接存储器访问
-
三总线结构2
多种外部设备都连在一条扩展总线上,影响外设设备工作速度
-
四总线结构
分离高速设备和低速设备
-
-
总线结构举例
-
传统微型机总线结构
分离系统总线和I/O总线
-
VL-BUS局部总线结构
分类组织高速设备和低速设备
-
PCI 总线结构
-
多层 PCI 总线结构
-
3.5 总线控制
-
总线判优控制
- 主设备(模块)——对总线有控制权
- 从设备(模块)——响应从主设备发来的总线命令
- 某些设备既可作为主设备也可作为从设备
\[控制方法\begin{cases} 集中式\begin{cases} 链式查询\\ 计数器定时查询\\ 独立请求方式 \end{cases}\\ 分布式 \end{cases} \] -
集中式查询
-
链式查询
- 优先级由连接方式事先决定\(\implies\)BG的查询顺序
- 增添设备容易
- 容易实现可靠性设计
- 速度慢\(\implies\)用于微型计算机,嵌入式系统
- 对电路故障敏感(尤其BG线)
-
计数器定时查询
-
判优过程:计数器控制设备地址线进行查询
-
设备地址线宽度:与设备数n有关\(\implies\lceil\log_{2}{n}\rceil+2\)
-
判优灵活:可设定计数器初值;利用循环计数实现公平判优
-
-
独立请求方式
-
速度更快
-
每个I/O接口都有单独的请求线和授权线
-
优先级:总线控制部件内部有排队器
-
线数多:\(2^n\)
-
-
-
总线通信控制
- 目的:解决通信双方协调配合的问题
- 总线传输周期
- 申请分配阶段:主模块申请,总线仲裁决定
- 寻址阶段:主模块向从模块给出地址和命令
- 存数阶段:主模块和从模块交换信息
- 结束阶段:主模块撤消有关信息
- 总线通信的四种方式
\[\begin{cases} \text{同步通信}\quad\quad由\color{blue}{统一时标}\color{black}控制数据传送\\ \text{异步通信}\quad\quad采用\color{blue}{应答方式}\color{black},没有公共时钟标准\\ \text{半同步通信}\quad\,\color{blue}同步、异步结合\\ \text{分离式通信}\quad\,充分\color{blue}挖掘\color{black}系统\color{blue}总线每个瞬间\color{black}的\color{blue}潜力 \end{cases} \] -
同步通信——定宽定距的公共时钟信号
-
优点
- 规定明确、统一
- 模块间的配合简单一致
-
缺点
- 主、从模块时间配合“强制性”同步
- 必须按最慢速度的部件来设计公共时钟,严重影响总线的工作效率
-
一般用于总线长度较短,各部件存取时间比较一致的场合
- 总线传输周期越短,数据线的位数越多,直接影响总线的数据传输率
-
同步式数据输入
- \(T_1\)上升沿主设备给出地址信号
- \(T_2\)上升沿给出读命令信号
- \(T_3\)上升沿从设备给出数据信号(数据总线)
- \(T_4\)上升沿撤销数据信号和控制信号
- \(T_4\)下降沿撤销地址信号
-
同步式数据输出
- \(T_1\)上升沿给出地址信号
- \(T_1\)下降沿给出数据
- \(T_2\)上升沿给出写命令
- \(T_3\)上升沿执行写操作
- \(T_4\)上升沿撤销数据和写命令
- \(T_4\)下降沿撤销地址数据
数据传输率:每秒传输的最大字节数——\(MBPs\)
例1:假设总线的时钟频率为\(100MHz\),总线的传输周期为4个时钟周期,总线的宽度为32位,试求总线的数据传输率。若想提高一倍的数据传输率,可采取什么措施?
解:根据总线时钟频率为\(100MHz\),得
一个时钟周期为\(\frac{1}{100}MHz=0.01\mu s\)
总线传输周期为\(0.01\mu s\times4=0.04\mu s\)
由于总线得宽度为\(32位=4B(字节)\)
\(\implies\)总线的数据传输率为\(\frac{4B}{0.04\mu s}=100 MBps\)
若想提高一倍数据传输率,可以在不改变总线时钟频率得前提下,将数据线得宽度改为64位;
也可以保持32位的数据宽度,让总线的时钟频率增加到\(200MHz\)
-
-
异步通信
\[\begin{cases} \text{主设备}\quad发起总线通讯\\ \text{从设备}\quad受主设备控制 \end{cases}\\ 增加\begin{cases} \text{请求线}\\ \text{应答线} \end{cases} \]-
不互锁
- 主设备发出通信请求
- 从设备收到请求后进行应答
- 主设备撤销请求信号
- 从设备撤销应答信号
无论从设备是否收到请求信号,一段时间后主设备都会撤销请求信号
无论主设备是否收到应答信号,一段时间后从设备都会撤销应答信号
\(\implies\) 通信可靠性存在问题
-
半互锁
- 主设备发出通信请求
- 从设备收到请求后进行应答
- 主设备收到应答后撤销请求信号
- 从设备撤销应答信号
只有收到应答后主设备才撤销请求信号
无论主设备是否收到应答信号,一段时间后从设备都会撤销应答信号
\(\implies\)可能造成主设备请求信号一直保持高电平
-
全互锁
- 主设备发出通信请求
- 从设备收到请求后进行应答
- 主设备收到应答后撤销请求信号
- 请求信号撤销后从设备撤销应答信号
异步串行通信的数据传送速率:
- 波特率:单位时间内传送二进制数据的位数——\(bps(位/秒)\)
- 比特率:单位时间内传送二进制有效数据的位数——\(bps(位/秒)\)
例2:在异步串行传输系统中,假设每秒传输120个数据帧,其字符串格式规定包含1个起始位,7个数据位,1个奇校验位、1个终止位,试计算波特率。
解:根据题目给出的字符格式,一帧包含\(1+7+1+1=10位\)
\(\implies\)波特率为\((1+7+1+1)\times120=1200bps=1200波特\)
例3:在异步串行传输系统中,若字符串格式为:1起始位、8位数据位、1位奇校验位、1位终止位。假设波特率为\(1200bps\),求此时的比特率。
解:总数据位:\(1+8+1+1=11位\)
有效数据位:8位
\(\implies\)比特率为\(1200\times\frac{8}{11}\approx872.72bps\)
-
-
半同步通信
- 同步特征
- 发送方用系统时钟前沿发信号
- 接收方用系统时钟后沿判断、识别
- 异步特征
- 允许不同速度模块和谐工作
- 增加一条“等待”响应信号\(\to\overline{WAIT}\)
- 例:输入数据
- \(T_1\) 主设备发地址
- \(T_2\) 主设备发命令
- \(T_W\) 当\(\overline{WAIT}\)为低电平时,等待一个\(T\)
- \(T_W\) 当\(\overline{WAIT}\)为低电平时,等待一个\(T\)
- ......
- \(T_3\) 从设备提供数据
- \(T_4\) 从设备撤销数据,主模块撤销命令
上述三种通信的共同点:
一个总线传输周期(以输入数据为例):
- 主模块发地址、命令\(\to\)占用总线
- 从模块准备数据\(\to\)不占用总线\(\implies\)总线空闲
- 从模块向主模块发数据\(\to\)占用总线
- 同步特征
-
分离式通信
- 各模块有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各模块准备数据时,不占用总线
- 总线被占用时,无空闲
\(\implies\)充分提高了总线的有效占用
一个总线传输周期:
- 子周期1——主模块申请占用总线,使用完后即放弃总线的使用权
- 子周期2——从模块(此时相当于主模块)申请占用总线,将各种信息送至总线上
分离式通信控制比较复杂,一般在普通微型计算机系统很少采用
