文章目录
- **一 总线概述**
- **1 总线基本概念**
- **1.1 定义**
- **1.2 总线设备**
- **1.3 总线特性**
- **2 总线的分类**
- **2.1 片内总线**
- **2.2 系统总线**
- **2.3 I/O总线**
- **2.4 通信总线**
- **3 系统总线的结构**
- **3.1 单总线结构**
- **3.2 双总线结构**
- **3.3 三总线结构**
- **4 常见的总线标准**
- **5 总线的性能指标**
- **二 总线事务和定时**
- **1 总线事务**
- **2 同步定时方式**
- **3 异步定时方式**
- **三 I/O接口**
- **1 I/O接口的功能**
- **2 I/O接口的基本结构**
- **3 I/O接口的类型**
- **4 I/O端口及其编址**
- **四 I/O方式**
- **1 程序查询方式**
- **2 程序中断方式**
- **2.1 基本概念**
- **2.2 程序中断的工作流程**
- **2.3 多重中断和中断屏蔽技术**
- **3 DMA方式**
- **3.1 DMA方式的特点**
- **3.2 DMA控制器的组成**
- **3.3 DMA的传送方式**
- **3.4 DMA的传送过程**
- **3.5 DMA和中断的区别**
一 总线概述
1 总线基本概念
1.1 定义
是一组能为多个部件分时,共享的公共信息传送路线。
分时:同一时刻只允许有一个部件向总线发送信息
共享:总线上可以挂多个部件
1.2 总线设备
主设备:获得总线控制权
从设备:指被设备访问的设备,只能响应从主设备发来的各种总线命令
1.3 总线特性
机械特性:尺寸,形状
电气特性:传输方向和有效电平范围
功能特性:每根传输线的功能
时间特性:信号与时序的关系
2 总线的分类
2.1 片内总线
芯片内部的总线,CPU内部寄存器之间,寄存器与ALU之间的公共连接线
2.2 系统总线
各功能部件直接相互连接的总线
(1)数据总线:是双向传输总线,位数与机器字长,存储字长有关
(2)地址总线:是单向传输总线,位数与主存地址空间大小有关
(3)控制总线
2.3 I/O总线
连接中低速的I/O设备,通过I/O接口与系统总线相连接
将低速设备与高速总线分离,提升总线的系统性能
2.4 通信总线
计算机之间或与其他系统之间传送信息的总线,也称外部总线
按时序控制方式也可分为:同步总线和异步总线
按数据传输格式分为:并行总线和串行总线
3 系统总线的结构
3.1 单总线结构
将各个设备全挂在一组总线上,各设备直接进行信息交换,无中间设备的干预
可以细分为数据,地址和控制总线
结构简单成本低,易接入新设备
但是带宽低,负载重,多个设备争用唯一的总线,且不支持并发传送
3.2 双总线结构
主存总线:CPU,主存和通道直接传送数据
I/O总线:多个外部设备与通道之间传送数据
分离了低速I/O设备,实现了存储器总线和I/O总线分离
但是需要增加通道等硬件设备
3.3 三总线结构
主存总线:CPU和主存之间
I/O总线:CPU和各外设之间
DMA总线:内存和高速外设之间
提高了I/O设备的性能,但是系统工作效率较低
4 常见的总线标准
(1)ISA ,工业标准体系结构;最早出现的
(2)EISA,扩展的ISA
(3)VESA,视频电子标准协会,针对多媒体PC要求高速传送活动图像
(4)PCI,外部设备互连,即插即用,是一个与处理器的PCI适配器无关的高速外围总线,属于局部总线
(5)AGP,加速图形接口,视频接口标准,传输视频和三维图形数据,属于局部总线
(6)PCI-E,最新的总线接口标准,取代PCI和AGP
(7)RS-232C,美国电子工业协会推荐的一种串行通信总线
(8)USB,通用串行总线,即插即用,热插拔等优点
(9)PCMCIA,广泛应用于笔记本电脑,即插即用
(10)IDE,集成设备电路,称为ATA,一种IDE接口磁盘驱动器接口类型
(11)SCSI,小型计算机系统接口
(12)SATA,串行高级技术附件
5 总线的性能指标
(1)总线传输周期:一次总线操作所需的时间,包括申请阶段,寻址阶段,传输阶段,结束阶段,通常由若干总线时钟周期构成
(2)总线时钟周期:机器的时钟周期
(3)总线工作频率:总线受着气的倒数,指一秒内传送几次数据
总线周期= N个时钟周期,总线的工作频率=时钟频率/N
(4)总线时钟频率:机器的时钟频率,时钟周期的倒数
(5)总线宽度:总线位宽,通常指数据总线的根数
(6)总线带宽:总线的最大数据传输率,单位时间内总线上最多可传输数据的位数
总线带宽 = 总线工作频率x(总线宽度/8)=宽度x频率
(7)总线复用:指一根信号线在不同的时间传输不同的信息
(8)信号线数:地址,数据,控制三种总线数的总和称为信号线数
二 总线事务和定时
1 总线事务
从请求总线到完成总线使用的操作序列,是一个总线周期中发生的一系列活动
(1)请求阶段:主设备发出总线传输请求,获得总线控制权
(2)仲裁阶段:总线仲裁机构决定将下一个传输周期的总线使用权授予某个申请者
(3)寻址阶段:主设备通过总线给出要访问的从设备地址及与有关命令,启动从模块
(4)传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送
(5)释放阶段:主模块的有关信息从系统总线上撤除,让出总线使用权
突发(猝发)传送方式能够进行连续成组数据的传送,寻址阶段发生的是连续数据单元的首地址,传输阶段传送多个连续单元的数据,每个时钟周期可以传送一个字长的信息,传完一组数据才释放总线
总线定时:总线在双方交换数据的过程中需要时间上配合关系的控制,本质是一种协议或规则,有同步和异步两种
2 同步定时方式
系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系
时钟产生相等的时间间隔,每个间隔构成一个总线周期
一个总线周期,发送方和接收方可以进行一次数据传送
每个部件和设备发送或接收都在固定的总线传送周期中
传送速度快,具有较高的传输速率,总线控制逻辑简单
主从设备强制性同步,不能及时进行数据通信的有效性检验,可靠性差
适用于总线长度较短及总线所接部件的存取时间比较接近的系统
3 异步定时方式
没有统一的时钟,没有固定的时间间隔,完全依靠传送双方相互制约的握手信号来实现定时控制
(1)不互锁方式
不必等双方反馈
(2)半互锁方式
请求方要等反馈
(3)全互锁方式
请求和回应双方都要等反馈才能撤销信号
总线周期长度可变,保证两个工作速度差距很大的部件或设备直接可靠的进行信息交换,自动适应时间的配合
比同步控制复杂,速度比同步定时方式慢
三 I/O接口
是主机与外设之间的交接界面,通过接口实现信息交换
1 I/O接口的功能
(1)地址译码和设备选择
(2)实现主机和外设的通信联络控制
(3)数据缓冲
(4)信号格式的转换
(5)传送控制命令和状态信息
2 I/O接口的基本结构
状态寄存器和控制寄存器在传送方向上是相反的
对数据缓冲计算器,状态/控制寄存器的访问操作是通过相应的指令来完成,称为I/O指令,I/O指令只能在操作系统内核的底层I/O软件中使用,是一种特权指令
3 I/O接口的类型
(1)按数据传送方式:并行接口和串行接口
(2)按主机访问I/O设备的控制方式可分为程序查询接口,中断接口,DMA接口
(3)按功能选择的灵活性:可编程接口和不可编程接口
4 I/O端口及其编址
I/O端口是指接口电路中可被CPU直接访问的寄存器,主要有数据端口,状态端口和控制端口
若干端口加上相应的控制逻辑电路组成接口
(1)统一编址,又称存储器映射方式
指把I/O端口当作存储器的单元进行地址分配,不需要专门的I/O指令,统一的访存方式就能访问
不需要专门的指令,CPU访问更灵活方便,使端口有较大的编址空间
但是端口占用存储器地址,使内存容量变小,并且利用存储器编址的I/O设备进行数据的输入输出,执行速度慢
(2)独立编址,又称I/O映射方式
地址空间独立
输入输出指令与存储器指令明显区别,程序编址清晰方便理解,但是输入输出指令少,一般只能对端口进行传送操作,控制复杂
四 I/O方式
输入输出系统实现主机与I/O设备之间的数据传送,可以采用不同的控制方式
1 程序查询方式
设置一个数据缓冲寄存器和设备状态寄存器
进行I/O操作时,先发出询问信号,读取设备的状态并根据设备的状态决定下一步操作究竟是进行数据传送还是等待
流程:(1)CPU执行初始化程序,配置传送参数
(2)向I/O接口发出命令字,启动I/O设备
(3)从外设接口读取状态信息
(4)CPU不断查询I/O设备状态,直到外设准备就绪
(5)传送一次数据
(6)修改地址和计数器参数
(7)判断是否结束,没结束继续第三步
CPU有踏步现象,与I/O串行工作,设计简单设备量少,但是效率低
2 程序中断方式
2.1 基本概念
计算机在执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时终止现行程序,转去处理这些程序,处理完再转回来
中断技术的新功能:(1)CPU与I/O设备的并行工作
(2)处理硬件故障和软件错误
(3)实现人机交互
(4)实现多道程序,分时操作,多道程序的切换
(5)实时处理
(6)实现应用程序和操作系统(管态程序的切换),“软中断”
(7)多处理器系统中处理器之间的信息交流和任务切换
2.2 程序中断的工作流程
(1)中断请求
中断系统为每个中断源设置中断请求编辑触发器,状态为“1”,表示有中断源请求,这些触发器可组成中断请求标记寄存器
可屏蔽中断:通过INTR线发出,优先级最低,关中断下不响应
不可屏蔽中断:通过NMI线发出,优先级最高,处理紧急事件,如时钟中断,电源掉电,内部异常,关中断下也响应
(2)中断响应判优
中断响应优先级:CPU响应中断请求的先后顺序,一般通过硬件排队器实现
一般来说:
不可屏蔽中断>内部异常>可屏蔽中断
内部异常中:硬件故障>软件中断
DMA中断>I/O设备中断
高速设备>低速设备
输入设备>输出设备
实时设备>普通设备
(3)CPU响应中断的条件
有中断请求
CPU允许中断及开中断(异常和不可屏蔽中断不受限制)
一条指令执行完毕即执行阶段完(异常不受此限制)且没有优先级更高的任务
(4)中断响应过程
CPU响应中断后经过某些操作去执行中断服务程序,这些操作由硬件实现,称为中断隐指令,并不是真的指令,本质上只是硬件的操作
关中断
保存断点:保存在栈或者特定寄存器中;异常指令通常没有指向成功,所以处理后继续执行当前指令,中断是下一条指令
引出中断服务程序:把中断源对应的服务程序入口地址送入PC,识别方法:硬件向量(向量中断)和软件查询(非向量中断)
(5)中断向量
每个中断一个类型号,一个类型号一个中断服务程序,每个中断服务程序都有一个入口地址(中断向量)
存放中断向量的存储区称为中断向量表
中断向量的地址(中断向量表的某一个)—>中断向量—>执行中断程序;被称为中断向量法,采用这个方法的中断被称为向量中断
(6)中断处理过程
因计算机不同而不同,但大致如下:
现场信息由中断服务程序通过指令保存在栈中(软件)
断点信息由CPU在中断响应时自动保存到栈或指定的寄存器中(硬件)
2.3 多重中断和中断屏蔽技术
中断中不响应其他的中断就是单重中断,响应就是多重中断
多种中断满足的条件:
(1)中断服务程序中提前设置开中断指令
(2)优先级别高的中断源有权中断优先级别低的的中断源
中断处理优先级是真多重中断的实际优先级处理次序,可以利用中断屏蔽技术动态调整,从而灵活的调整中断服务程序的优先级
每个中断源有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示正常申请,所有触发器组合在一起便构成一个屏蔽字寄存器,其内容就是屏蔽字
举例:优先级D>A>C>B,相同等级的也会屏蔽
3 DMA方式
完全由硬件完成,具有程序中断方式的优点
在外设(DMA接口)和内存之间开辟了一条直接数据通道,信息传送不经过CPU,降低了CPU在传送数据时的开销,称为直接存储器存取方式
3.1 DMA方式的特点
DMA方式不经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作
主存即可被CPU访问,也可被外设访问
主存地址的确定,传送数据的计数等都由硬件电路直接实现
主存开辟专用的缓冲区,及时供给和接收外设的数据
DMA传送速度快
DMA在传送开始前通过程序进行预处理,结束后通过中断方式进行后处理
3.2 DMA控制器的组成
DMA控制器(DMA接口):数据传送过程中进行控制的硬件
I/O设备需要进行数据传送,DMA控制器向CPU发出请求,CPU响应并让出系统总线,DMA控制系统总线
主存地址计数器:存放要交换数据的主存地址
传送长度计数器:记录传送数据的长度,计数溢出就是传送完毕,自动发出中断请求信号
数据缓冲寄存器:暂存每次传送的数据
DMA请求触发器:I/O设备准备好数据后给出一个控制信号,使DMA请求触发器置位
“控制/状态”逻辑:控制和时序电路及状态标志组成,指定传送方向和协调DMA请求信号和CPU响应信号
中断机构:传送完成后除法,向CPU提出中断请求
3.3 DMA的传送方式
I/O设备和CPU同时访问主存,可能发生冲突,采用以下方法使用主存
(1)停止CPU访存
(2)周期挪用(周期窃取)
又分为三种情况:
a.CPU不在访存,没有冲突
b.CPU正在访存,必须等存取周期结束后,再让出总线
c.I/O设备和CPU同时访存,冲突,CPU暂时放弃占用,因为I/O不立即访存数据会丢失,此时I/O挪用几个存取周期,传送完后立即释放,是一种单字传送方式
(3)DMA和CPU交替访存
适用于CPU工作周期比主存存取周期长的情况
3.4 DMA的传送过程
(1)预处理
CPU直接几条I/O指令测试I/O设备状态
初始化DMA控制器中寄存器,传送方向,启动设备等
CPU继续执行原程序,直到I/O设备准备好数据,I/O设备发出DMA请求,DMA发出总线请求,再传送
(2)数据传送
以单字节或数据块为单位,数据块的传送通过循环实现,也有DMA控制器完成
(3)后处理
DMA控制器向CPU发出中断请求,CPU执行中断服务程序做DMA结束处理,包括校验和测试
3.5 DMA和中断的区别
DMA | 中断 |
---|---|
无需保护,除了预处理和后处理,不占CPU | 需要保护和恢复现场 |
响应发生在任一机器周期结束时 | 响应在指令的执行周期完 |
不需要CPU,速度块,适用高速外设的成组数据传送 | 传送过程需要CPU |
优先级高于中断 | |
只能大批数据传送 | 能处理异常 |
靠硬件传送数据 | 靠程序传送数据 |