通道自身的指令
指出数组的首地址、传送字数、操作命令
设备 I/O 接口
设备 设备控制器 通道
(1) 统一编址 用取数、存数指令
(2) 不统一(单独)编址 有专门的 I/O 指令
用设备选择电路识别是否被选中
(1) 串行
(2) 并行
(1) 立即响应
(2) 异步工作采用应答信号
(3) 同步工作采用同步时标
(1) 辐射式连接
(2) 总线连接
便于增删设备
我们来看下图这部分:
CPU运行速度快IO设备运行速度慢,那么CPU大部分时间都会处于一个踏步等待的状态
CPU发出启动IO设备的指令,IO设备启动工作自身准备,数据准备,在准备的过程中CPU会去干其他的事情,IO设备尊卑完成后向CPU发出中断信息,CPU接受信息中断程序,然后专门去处理IO设备的请求
此方式CPU 和 I/O 部分的并行工作,没有踏步等待现象和中断现行程序
主存和 I/O 之间有一条直接数据通道
不中断现行程序
周期挪用(周期窃取)
CPU 和 I/O 并行工作
与程序中断方式相比,将CPU与IO设备数据传输接到中释放出来
外部设备大致分三类
为什么要设置接口?
功能 | 组成 |
---|---|
选址功能 | 设备选择电路 |
设备选择电路 | 命令寄存器、命令译码器 |
传送数据的功能 | 数据缓冲寄存器 |
反映设备状态的功能 | 设备状态标记 |
按数据 传送方式 分类
并行接口
串行接口
按功能 选择的灵活性 分类
可编程接口
不可编程接口
按 通用性 分类
通用接口
专用接口
按数据传送的 控制方式 分类
中断接口
DMA 接口
单个设备
多个设备
其中设置计数值的目的是控制传输数据量
以输入为例
当有多个设备的时候要按优先级进行查询
CPU在执行程序的过程当中,如果发生意外或特殊事件,CPU要中断当前程序的处理,转而去处理特殊事件,中断结束后要返回之前的断点,继续执行之前的程序
CPU与设备是并行的工作的
中断屏蔽触发器的作用是当CPU正在处理一项非常重要的事情时不能被中断,此时中断请求就会被屏蔽
当有多个设备设,要按优先级进行排队,一般速度快的优先级高,因为一般速度快的存储时间相对较短
排队功能的实现常见的由链式排队器
设备 1#、2#、3#、4# 优先级按 降序排列
INTR = 1 有请求
确认了选择哪个中断源的中断请求后,下一步就是找到中断服务程序的入口地址
中断号:中断编号
中断向量:中断服务程序的入口地址,包括中断地址,偏移量,状态信号
向量地址:中断向量的地址
入口地址由硬件产生向量地址再由向量地址找到入口地址
允许中断触发器 EINT = 1
用 开中断 指令将 EINT 置 “1”
用 关中断 指令将 EINT 置“ 0” 或硬件 自动复位
当 D = 1(随机)且 MASK = 0 时
在每条指令执行阶段的结束前
CPU 发 中断查询信号(将 INTR 置“1”)
对不同的 I/O 设备具有不同内容的设备服务
出栈指令
中断返回指令
中断周期要做三件事:保护断点、幸存中断服务程序的入口地址、关中断
保护现场由入栈指令完成
恢复现场由出栈指令完成
单重与多重的区别在于多次将开中断任务提前了
宏观 上 CPU 和 I/O 并行 工作
微观 上 CPU 中断现行程序 为 I/O 服务
直接访问存储器方式
控制简单
CPU 处于不工作状态或保持状态
未充分发挥 CPU 对主存的利用率
DMA 访问主存有三种可能
• CPU 此时不访存:DMA可以访存,CPU继续执行不访存的指令
• CPU 正在访存:DMA等待 CPU访存
• CPU 与 DMA 同时请求访存 同时请求访存,DMA优先
此时 CPU 将总线控制权让给 DMA
不需要 申请建立和归还 总线的使用权
(1) 向 CPU 申请 DMA 传送
(2) 处理总线 控制权的转交
(3) 管理 系统总线、控制 数据传送
(4) 确定 数据传送的 首地址和长度 修正 传送过程中的数据 地址 和 长度
(5) DMA 传送结束时,给出操作完成信号
地址寄存器AR:CPU要告诉DMA接口传输的数据的位置,故用一个地址寄存器来存储
计数器WC:需要知道传输数据的量的多少,由计数器寄存器存储
每完成一个数据的传输AR和WC都会+1
设备地址寄存器DAR:用于存储外部设备的地址
数据缓冲器BR用于暂存外部设备的数据
输入输出过程需要DMA控制逻辑,控制在给定时刻给出给定的信号外部设备如果要进行DMA传输,外部设备向DMA控制器发出请求信号DREQ,DMA向外部设备发出反馈信息DACK,DMA控制器向CPU发出请求信号HRQ,CPU向DMA控制器发出放会信号HCDA
中断机构用于WC=0时中断DMA
预处理、数据传送、后处理
数据传输前需要的一些处理
数据传送过程以输出为例
校验送入主存的数是否正确
是否继续用 DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成
中断方式 | DMA 方式 | |
---|---|---|
数据传送 | 程序 | 硬件 |
响应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
在 物理上 连接 多个 设备
在 逻辑上 只允许连接 一个 设备
在 物理上 连接 多个 设备
在 数据准备阶段 允许连接 多个 设备同时工作
但在 数据传输阶段 还时只能有 一个 设备