10. 第七部分输入输出系统

Download Report

Transcript 10. 第七部分输入输出系统

计算机组成原理
考研辅导
第七部分 输入输出(I/O)系统
第七部分 输入输出(I/O)系统
一、I/O系统基本概念
二、I/O设备与接口
三、I/O方式
四、中断系统
一、I/O系统基本概念
 主要功能:完成计算机与外部世界
的联系,它是人或其他机器与计算
机联系的桥梁。
 组成:
– 硬件:外部设备及其与主机的接口
– 软件:协调控制主机与接口之间进行
数据交换
二、IO设备与接口
 1.
IO设备的特点:
– 工作速度差异大、结构原理差异
大、时序独立、异步性明显
 2.
IO设备与CPU的连接
– 计算机与I/O设备通过“接口电路”
连接
IO设备与CPU的连接
DB
AB
CB
CPU
接口
……
外设
接口
主存
外设
 CPU访问外设的实质是访问外设接口
中的寄存器(端口)。
二、IO设备与接口
 3.
IO端口的编址方式
– 统一编址:一个I/O端口等同于一个存储器
单元;指令系统中不设置专用的I/O指令,
用访存指令来访问I/O端口,通过地址来区
分访问的是存储器还是I/O端口。
– 独立编址:I/O端口地址空间与存储器地址
空间相互独立;指令系统中设置了专用的
I/O指令,用I/O指令来访问I/O端口,通过
指令区分访问的是存储器还是I/O端口。
二、IO设备与接口
 4.
I/O指令格式
 I/O指令包含三部分:
– 操作码:区分访存指令和I/O指令
– 命令码:区分I/O操作的种类
– 地址码:指明要访问的外设端口地址
以及CPU寄存器号
操作码
命令码
地址码
二、IO设备与接口
5. I/O接口的功能
– 数据传送缓冲
– 执行CPU命令
– 返回外设的状态
– 设备选择功能
– 信号和数据格式的转换功能
二、IO设备与接口
 6.
I/O接口的组成:硬件和软件
 硬件:
– 数据缓冲寄存器:存放所交换的数据
– 状态寄存器:存放外设的状态
– 控制寄存器:存放CPU送来的命令字。
– 内部控制逻辑:控制I/O接口的工作。
– 端口地址译码电路:选择设备和端口
三、IO方式
指主机与外设交换信息的方式
 1. 程序查询方式:CPU与外设不能并行工作,
并且被外设独占。
 2. 程序中断方式:CPU在外设准备数据期间
与外设并行工作,并且CPU可以同时被多个
外设共享;可以处理随机事件。
 3. DMA方式:由硬件完成数据的高速、大
批量传送,并行执行的效率高。
 4.IO通道方式:通过执行通道程序完成IO控
制,IO并行处理能力强。

1. 程序查询方式




工作原理:CPU查询外
设已准备好后,才传送
数据。
特点:CPU与外设间通
过程序同步,CPU被外
设独占,CPU效率低下。
硬件要求:电路简单。
应用: 适于在CPU不
太忙且传送速度要求不
高时。
2. 程序中断方式
工作原理:外设在准备好数据后,主动向CPU
发送一个中断请求,当CPU执行完当前指令后,
停止当前程序的执行,自动转向中断服务程序,
在中断服务程序中,完成一个数据的传送,之
后中断返回至原来的断点处,继续执行。
 特点:在外设准备数据时,CPU与外设并行工
作,CPU效率有所提高,并且CPU可以同时被
多个外设占用。
 要求:接口中需要中断控制逻辑支持。
 应用:适用于中低速设备。

3. 直接存储器访问(DMA)方式
工作原理:将I/O过程中,与内存交换数据的
操作交由DMA控制器来控制,简化了CPU对
输入输出的控制,进一步提高了CPU的效率。
 特点:数据的传送不经过CPU(由DMAC控
制),而I/O设备管理由CPU控制,简化了
CPU对I/O的控制。硬件开销大,结构复杂,
但CPU的效率高。
 要求:需要DMA控制器及相关逻辑支持。
 应用:适用与高速度大量数据传送时。

DMA过程
①预处理:CPU初始化DMAC(设置存
储器和外设的起始地址、传送字节数),
然后启动DMAC工作。
 ②数据传送:DMAC控制存储器和IO设
备之间的数据交换。
 ③后处理:传送完成后, DMAC向CPU
发中断请求,CPU收尾处理。
 CPU在执行完当前指令的当前总线周期后,
就响应DMA请求。

DMA方式控制的数据传送
AB
DB
CB
MEMR
MEMW
IOR
IOW
MEMR
MEMW
IOR
IOW
CPU

IOR
IOW
MEMR
MEMW
总线请求 DMAC DMA请求 I/O接口
I/O设备
总线响应
DMA响应
DMA传送方向:
 (1)存储单元传送:存储器→存储器。
 (2)DMA读传送:存储器→I/O设备。
 (3)DMA写传送:I/O设备→存储器。
MEM
DMA控制器的组成

1)主存地址寄存器:存放主存地址;
 2)字节计数器:记录传送的数据块长度;
 3)设备地址寄存器:外设的设备码或寻
址信息;
 4)数据缓冲寄存器:暂存传送的数据;
 5)DMA控制逻辑:负责管理传送的全过
程;
 6)中断机构:向CPU申请中断,请求后
处理;
DMA传送的方式

(1)停止 CPU 访问主存: CPU 处于不
工作状态或保持状态
– 控制简单,未充分发挥 CPU 对主存的利用率
主存工作时间
t
CPU控制
并使用主存
DMA控制
并使用主存
CPU不执行程序
DMA不工作
DMA工作
DMA不工作
DMA传送的方式

(2)周期挪用(或周期窃取):当DMAC
申请总线使用权时, CPU 将总线控制权让
给 DMAC。
– 总线使用效率高
主存工作时间
CPU控制
并使用主存
DMA控制
并使用主存
t
DMA传送的方式

(3) DMA 与 CPU 交替访问:
– 不需要 申请建立和归还 总线的使用权
C1 专供 DMA 访存
CPU 工作周期
C2 专供 CPU 访存
所有指令执行过程中的一个基准时间
主存工作时间
DMA控制
并使用主存
CPU控制
并使用主存
t
DMA 方式与程序中断方式的比较
中断方式
DMA 方式
(1) 数据传送
程序
硬件
(2) 响应时间
指令执行结束
存取周期结束
(3) 处理异常情况
能
不能
(4) 中断请求
传送数据
后处理
(5) 优先级
低
高
三种方式的 CPU 工作效率比较
程序
查询
方式
程序
中断
方式
CPU 执行
现行程序
CPU查询等待并传输I/O数据
启动I/O
I/O 准备及传送
CPU 执行现行程序
指令执行周期结束
启动I/O
CPU 执行
现行程序
间
断
CPU 执行现行程序
中断请求
I/O准备
I/O准备
CPU 处理中断服务程序
实现 I/O 与主机之间的传送
一个存取周期
DMA
方式
CPU 执行现行程序
存取周期结束
启动I/O
DMA请求
I/O准备
CPU 执行现行程序
I/O准备
实现I/O与主存
之间的传送
4、通道方式

特点:能独立地执行用通道指令编写的输
入输出控制程序,产生相应的控制信号送
给由它管辖的设备控制器,继而完成复杂

的输入输出过程。
要求:需要具有特殊功能的处理器,某些

应用中称为输入输出处理器(IOP)。
应用:适用于高速度大量数据传送时。
四、中断系统
主程序

中断过程
中断请求
中断响应
中断服务
中断结束
中断处理

1.中断请求
 (1)CPU对中断请求的监测:CPU在每
条指令执行完毕后,检测CPU的中断请
求引脚是否有效
中断系统框图
正在服务
INTR
IE
判
优
中断
使能
CPU
最优
优
先
级
排
队
IMR
IRR
IMRn-1
IRRn-1
外设n-1
中
断
屏
蔽
中
断
请
求
……
IMR1
IRR1
外设1
IMR0
IRR0
外设0
中断向量地址形成电路
INTA
Dm-1~D0
DB
四、中断系统
(2)中断源(外设或其他突发事件)产
生中断的方法:置位接口中的中断请求
触发器;系统中所有的中断源的中断请
求触发器构成一个中断请求寄存器。
 (3)CPU对中断请求的屏蔽:指CPU是
否响应某个中断源的中断请求;由接口
中的中断屏蔽触发器控制:0--开放, 1-屏蔽;所有中断源的中断屏蔽触发器构
成一个中断屏蔽寄存器,CPU可以对其
读写。

四、中断系统

(4)中断请求的优先级判定:指当多个中
断源同时发生中断请求时,需要根据优先级
排队;通常采用硬件排队电路或者软件判优。
INTR1

INTR2
INTR3
INTR4
INTR3'
INTR4'
硬件排队
电路1
(集中式)
INTR1' INTR2'
硬件排队电路2(链式、分散式)
INTR1
INTR2
INTR1' INTR2'

INTR3
INTR3'
INTR4
INTR4'
在排队链中,越靠前的优先级越高。
软件判优
是否 A 请求?
是
入口地址
否
是否 B 请求?
是
否
转 B 的服务程序
入口地址
否
是否 C 请求?
转 A 的服务程序
是
转 C 的服务程序
入口地址
…

中断源优先级的优先级取决于被询问的顺
序,最先被询问的,优先级最高。
四、中断系统
2. 中断响应
 (1)中断响应时间:当前指令执行完
 (2)中断响应条件:CPU的INTR引脚有效(有
中断请求),CPU处于开中断状态
 具体到某个中断源,中断响应条件为:

– 外设有中断请求(IRRi=1)
– 该中断请求没有被CPU屏蔽(IMRi=0)
– 该中断请求优先级最高
– 该中断请求优先级高于正在被服务的中断源
– 中断使能有效(IE=1)
四、中断系统

(3)中断响应动作:执行中断隐指令。
– 关中断(IE=0)
– 保存程序断点(PC压栈,标志寄存器压栈)
– 转入中断服务程序执行(中断服务程序入口
地址→PC)

中断隐指令由硬件来实现,对程序员是
透明的。
四、中断系统
(4)中断源的识别:如何找到中断服务程序
入口地址?
 ①向量中断:由外设接口硬件产生后送给CPU

– 中断向量:中断源的中断服务程序入口地址
– 中断向量表(IVT):所有中断源的中断向量按顺
序存放在内存,形成一张表
– 中断向量地址(指针):指向IVT的地址
– CPU通过INTA#信号读取中断向量地址,然后启
动一个中断响应周期从内存读取中断向量,置入
PC
四、中断系统
是否 A 请求?
转 A 的服务程序
入口地址
否
是否 B 请求?
是
转 B 的服务程序
入口地址
否
是否 C 请求?
否
…
②软件查询:
– 中断隐指令转
入一个总中断
服务程序,在
此逐个查询各
个中断源有否
中断。
– 查询的顺序决
定了中断源的
优先级。
是
是
转 C 的服务程序
入口地址
四、中断系统

(5)多重中断的概念:中断嵌套。
– 单重中断:不允许中断 现行的 中断服务程序
– 多重中断:允许级别更高 的中断源中断 现行
的 中断服务程序

实现中断嵌套的条件:
– 软件:在中断服务程序中要“开中断”
– 硬件:高优先级的中断源请求可以送达CPU

与中断屏蔽不同
具有中断功能的
CPU运行流程
中
断
隐
指
令
取指令
执行指令
中断否?
是
中
断
周
期
中断响应
程序断点进栈
关中断
向量地址
PC
保护现场
多
重
中
断
中
断
服
务
程
序
开中断
设备服务
恢复现场
中断返回
否
四、中断系统
3. 中断服务:执行中断服务程序
 中断服务程序处理流程:

– 保护现场:保存相关寄存器内容(压栈)
– 中断服务:进行IO传送操作或突发事件处理
– 恢复现场:恢复相关寄存器内容(出栈)
– 中断返回:程序断点出栈→PC

4. 中断返回:执行中断服务程序中的
IRET指令(标志寄存器出栈,PC出栈)