文章目录
- 第二章 系统总线
- 2.1 总线概述
- 2.1.1 总线的基本概念
- 2.1.2 系统总线
- 2.2 总线结构
- 2.2.1 单总线结构
- 2.2.2 双总线结构
- 2.2.3 三总线结构
- 2.2.4 四总线结构
- 2.3 总线标准
- 2.3.1 概念
- 2.3.2 常见总线标准
- 2.4 总线分类
- 2.4.1 片内总线
- 2.4.2 系统总线
- 2.4.3 通信总线
- 2.5 总线特性及性能指标
- 2.5.1 总线物理实现
- 2.5.2 总线特性
- 2.5.3 总线性能指标
- 2.6 总线判优逻辑
- 2.6.1 基础概念
- 2.6.2 总线判优
- 2.6.3 链式查询方式
- 2.6.4 计数器定时查询方式
- 2.6.5 独立请求方式
- 2.7 总线的通信控制
- 2.7.1 总线四种通信方式
- 2.7.2 同步通信
- 2.7.3 异步通信
- 2.7.4 半同步通信
第二章 系统总线
2.1 总线概述
2.1.1 总线的基本概念
采用总线的原因
- 用总线连接代替分散连接,线路更简单,成本更低
- 采用同一总线标准,使电路规模更易扩展
总线概念
总线是== 连接多个部件的信息传输线,是各部件共享的传输介质。总线由 许多传输线或通道构成,每条线可以 传送一个二进制位==。
总线特点
总线上有超过一个信息接收部件,且在任一时刻,只允许有一个部件向总线发送信息。
- 一个人说多个人听
常见总线分类
片内总线、系统总线、通讯总线
2.1.2 系统总线
概念
系统总线主要指处理器与主存、I/O设备等部件之间的信息传输线
三总线结构
数据总线(DB)、地址总线(AB)、控制总线(CB)
数据总线
-
数据总线的位数称为数据总线宽度,即为机器位数,与机器字长、计算机位数、数据总线宽度、存储字宽度、寄存器长度均相同。
-
数据总线是双向传输的总线。可读可写。
地址总线
-
地址总线用来标识主存或 I/O 设备上存储单元的位置
-
地址总线是单向总线。总是由 CPU 发出,标识存储器上的一个地址。
- 地址总线的位数与存储单元的个数有关,与存储单元的二进制位长度无关。如地址总线有 条,则最多可以寻址到 个存储单元。
控制总线
-
控制总线是用来发出各种控制信号的传输线。
-
单一控制线通常是单向的,但控制总线总体来说是双向总线。
- 写、读信号线均为单向,但组合成的控制线是双向的
-
典型控制线有复位、时钟、中断相关、总线请求、存储器读写、I/O 读写、忙闲检测等。可以说,在计算机中,除了数据总线和地址总线之外的其他所有信号线均属于控制总线。
典型系统总线结构
DMA 总线:
- 没有 DMA 总线时,设备向主存传输数据,需要通过 I/O 总线到CPU,再到达主存。这个过程中,CPU不得不停下来处理I/O,因此非常浪费资源。
- 因此专门建立一条 DMA 总线(直接存储器存取),通过硬件方式进行数据块传输,不再需要 CPU 的过多干预。
DMA 控制器工作过程:
- CPU 通知 DMA 控制器,你到哪一个外设的什么位置去取多长的一个数据块,然后把它送到内存的什么位置。
2.2 总线结构
2.2.1 单总线结构
I/O设备与主存交换信息原则上不会影响CPU,便于提高CPU效率。但是,所有部件连到单一总线,提高冲突率,影响整机性能。(PDP-11、DJS183)
优缺点:结构简单、便于扩充、传输速率低、容易形成瓶颈。
2.2.2 双总线结构
双总线结构
将速度较低的设备从主存总线上分离出来,形成主存总线与I/O总线分开的结构。通道是一个具有特殊功能的处理器,负责对I/O统一管理。
面向 CPU 的双总线结构
M 总线:存储总线
I/O 总线:输入输出总线
优点:增加I/O设备方便
缺点:I/O设备与主存交换信息需要通过CPU,会影响CPU效率
面向存储器的双总线结构
增加CPU和主存之间专用的存储总线,提高传输速度,减轻系统总线负担,保留了主存与I/O直接交换信息的特点。
2.2.3 三总线结构
三总线结构 1
主存总线用于 CPU 和主存交换信息,I/O总线用于CPU和I/O设备间传送信息,DMA总线负责在主存和I/O设备间直接传递信息。
三总线结构 2
处理器采用局部总线连到 cache,再利用系统总线连接主存,通过扩展总线接口连接其他接口。
2.2.4 四总线结构
系统把设备总线分成两个层次,高速设备连接高速总线,低速设备连接扩展总线,各总线直接由桥连接。
2.3 总线标准
2.3.1 概念
总线标准,即系统与模块、模块与模块之间的一个互连的标准界面,能够隐藏符合标准的部件内部的操作细节。
模块、系统之间无需知道对方的实现细节。
2.3.2 常见总线标准
- ISA/AT 总线
- EISA 总线
- VESA(VL-BUS)总线
- PCI 总线
- AGP 总线
- RS-232C 总线
- USB 总线
2.4 总线分类
2.4.1 片内总线
芯片内部总线,例如运算器和 cache 之间的总线。
2.4.2 系统总线
系统总线也称为板级总线。处理器与主存、I/O等部件之间的信息传输线。
系统总线中常见的三总线结构:数据总线、地址总线、控制总线
2.4.3 通信总线
概念
计算机系统之间,或计算机与其他设备之间的信息传输线。
特点
类别繁杂,连接规格、传输距离、速度、工作模式各不相同。传输速度和距离成反比。
串行通信
- 数据在单条 1 位宽的传输线上一位一位按顺序依次传送。
- 适宜远距离数据传送,可从几米到几千千米,成本低。
并行通信
- 数据在多条 1 位宽的传输线上并行传送,同时由源传送到目的地。
- 适宜近距离的数据传送,通常小于 30 米。
- 短距离低时钟频率情况下,传输速度远快于串行方式。
2.5 总线特性及性能指标
2.5.1 总线物理实现
2.5.2 总线特性
机械特性
物理尺寸、插头形状、管脚数、排列顺序
电气特性
信号线的电平范围。逻辑 “1”,逻辑 “0”。
TTL电平、CMOS电平、RS-232C
功能特性
每根传输线的功能:数据、地址、控制
时间特性
信号的前后时序关系。
2.5.3 总线性能指标
- 总线宽度:数据线宽度
- 总线带宽:数据传输速率
- 时钟同步方式:同步、异步
- 总线复用:地址、数据、控制线复用
- 信号线数:三总线所有信号线总数
- 总线控制方式:突发工作、仲裁方式
- 其他指标:带载能力、电源电压
2.6 总线判优逻辑
2.6.1 基础概念
总线事务
在总线上一对设备之间的一次信息交换过程,称为一个 “总线事务”。
总线事务一般包括地址阶段和数据阶段。
主设备
对总线有控制权,可以发起总线事务的设备。
从设备
只能响应总线上命令的设备。
典型的总线事务
- 存储器的读写
- I/O读写
- 中断响应
突发传送事务
一个地址阶段和多个数据阶段。
- 给定 1 个地址,让 10 个元素从该地址往后依次排列,即可实现 1 个地址,存入 10 个数据。
2.6.2 总线判优
概念
当多个主设备同时申请使用总线时,总线判优逻辑电路按照一定的优先级顺序来确定哪个主设备可以使用总线。
总线判优的三个因素
- 等级性
- 各设备应该有优先级
- 公平性
- 不能有设备饿死
- 响应速度
- 设备提出总线需求时,应尽快给予满足
判优逻辑分类
- 分布式
- 总线判优逻辑分散在各个设备的接口电路中
- 包括:自举分布式、冲突检测分布式、并行竞争分布式
- 集中式
- 总线判优逻辑是集中在一起的,一般在CPU内部
- 包括:链式查询、计数器定时查询、独立请求方式
2.6.3 链式查询方式
- 左边总线控制部件为总线判优逻辑
- BS:总线忙
- BR:总线请求
- BG:总线同意
工作流程
优先选择靠前的接口,优先级为距离。
- 申请总线,BR = 1
- 逻辑部件依次向后传递 BG 信号,若发现其中一个接口申请了总线,则令其获得总线
- 接口获取总线后不再向后传递BG信号,设置BS = 1
特点
- 自动支持优先级
- 连接简单,易于扩充设备
- 对电路故障非常敏感,优先级低的设备获得总线难度很大
- 若0号设备故障,则BG信号无法向后传递
2.6.4 计数器定时查询方式
用计数器来进行挨个查询,放弃了原有的BG信号,但优先级仍为距离。
工作流程
- 申请总线,BR = 1
- 逻辑部件开启计数器,从0开始递增。例如当计数器数值为2时,就在总线上查询2号设备,如果2号设备发出了请求,则得到总线。
- 接口获取总线后将设置BS = 1,之后再次请求需要重新从0开始计数。
特点
- 对故障不敏感
- 增加了设备地址线,增加了控制的复杂性。设备地址线的数量为 。
2.6.5 独立请求方式
放弃 I/O 总线,将设备统一连到总线控制部件上。
工作过程
- 申请总线,BR = 1
- 控制部件收到 BR 请求后,放入内部的排队器中进行排序,将优先级最高设备的 BG 设为 1。
特点
- 响应速度快
- 优先级次序控制灵活
- 控制线数目太多,达到了 条线。
2.7 总线的通信控制
2.7.1 总线四种通信方式
-
同步通信:发送时钟信号来同步数据传送
- A把苹果给B,A拍一下B,B就拿走苹果,“拍一下” 就是一个时钟信号
-
异步通信:没有时钟,采用握手信号同步
- A把苹果给B,不断询问B是否可以拿苹果,是否吃完了苹果等问题
-
半同步通信:同步、异步结合,插入等待周期
-
分离式通信:传输周期划分为功能独立的子周期
2.7.2 同步通信
同步读
命令均在时钟周期上升沿发出。
- 周期:CPU发出读地址。
- 周期:CPU发出读命令。有了地址与读命令后,内存开始内部寻址找到数据。
- 周期:内存将数据准备好放到了数据总线上。CPU到数据总线上读走数据。
- 周期:内存撤销数据总线上信号,CPU撤销读信号,但为了保证数据传输过程准确无误,地址信息多保留一个周期。
同步写
- 周期:上升沿CPU发出读地址,下降沿CPU将数据送到数据总线上。
- 周期:上升沿CPU发出写命令。
- 周期:在 ~ 周期,内存将数据写入内存单元。
- 周期:上升沿撤销数据信号(数据总线)与写命令(控制总线)。为了保证数据能够完整写入内存中,地址总线上地址信号总要多保留一个时钟周期。
2.7.3 异步通信
不互锁
过程:
- 主模块发出信号,经过一段时间即撤销,不等待接收从模块信号
- 从模块收到请求信号,向主模块发出应答信号,经过一段时间即撤销
特点:
- 双方均不存在互锁关系
- 适用于非常可靠的通信场合中,如 I/O 通信。
半互锁
过程:
- 主模块发出信号,必须等收到从模块应答后才撤销
- 从模块收到请求信号,向主模块发出应答信号,经过一段时间即撤销
特点:
- 主模块具有互锁关系,从模块不具有
- 适用于共享内存。
全互锁
过程:
- 主模块发出信号,必须等收到从模块应答后才撤销,并向从模块发出应答。
- 从模块收到请求信号,向主模块发出应答信号,必须等收到主模块的应答才撤销。
特点:
- 主、从模块均具有互锁关系
- 适用于网络中的数据传送。
2.7.4 半同步通信
- 发送方仍然发送时钟。
- 接收方根据自身情况反馈信息给发送方,使发送方进行响应调整,增加一条等待响应信号线(Wait)
- “主体同步,细节异步”
- 半同步通信允许不同速率的设备协调工作。
工作过程
- 上升沿发出地址
- 上升沿发出读命令
- 内存没有准备好,WAIT=1
- 内存准备好了,CPU读取数据
- 上升沿释放数据与读命令,一个时钟周期后再释放地址
上述三种通信方式总结
以读命令为例,总线周期总是分成这三个过程,而第二个过程不占用总线却需要CPU等待,非常低效,因此我们可以进行改进。