I/O接口
定时
同步定时方式
- 统一的时钟信号,每个间隔构成一个总线周期
- 快,但没有校验故可靠性差
- 适用:总线长度短 / 各部件存取时间接近
异步定时方式
信息组成(异步串行):起始位(1)+数据位+校验位+停止位(1)
**半同步:**统一时钟 + wait信号,结合同步异步
**分离式通信:**模块准备数据时,释放总线
不互锁方式
自动撤销”请求“和”回答“信号
半互锁方式
”请求“在收到”回答“后才撤销
全互锁方式
”请求“撤销后,”回答“信号才撤销
总线仲裁方式是指I/O设备争用总线的判优方式
I/O指令实现的数据传送通常发生在通用寄存器和I/O端口之间
统一编址(存储器映射方式、内存映像I/O)
- 控制器中的寄存器与内存统一编址
- 可以采用对内存进行操作的指令来对控制器进行操作
- 存储单元与I/O设备靠不同的地址码进行区分;
- 进行输入/输出操作的指令是访存指令;
- I/O地址要求相对固定在地址的某部分;
独立编址(I/O映射方式)
- 控制器中的寄存器独立编址
- 存储单元与I/O设备靠不同的指令进行区分
- 进行输入/输出操作的指令是输入/输出指令;
- 只有在具有专门I/O指令的计算机中,I/O设备才可以单独编址;
程序定时查询
-
考虑数据丢失问题
-
以字为单位进行传输,每个字的读写都需要CPU参与
-
读:I/O设备 ⇨ CPU ⇨ 内存
写:内存 ⇨ CPU ⇨ I/O设备
-
优:实现简单,在读写指令之后,加上实现循环检查的一系列指令即可;
-
缺:CPU与I/O设备只能串行工作,CPU的利用率极低;
忙等:CPU与I/O速度相差甚远,CPU大部分时间都处于对数据的循环测试;
-
程序中断过程是由硬件和中断服务程序共同完成的
中断I/O查询
- 以字为单位进行传输
- CPU和I/O并行
- 缺:每个字在I/O设备与内存之间的传输都需要经过CPU,频繁的中断处理会消耗较多的CPU时间。
- 内部异常属于不可屏蔽中断,即使在关中断模式下也会被响应
- 通过INTR发出的是可屏蔽中断,NMI发出的是不可屏蔽中断
- 完整过程:关中断➡️ 保存断点➡️保护现场➡️设备服务➡️恢复现场➡️开中断➡️中断返回官宝宝背负开中
中断隐指令
- 不属于程序控制指令,是一系列自动的硬件操作;
- 返回原程序的PC值,并让PC指向中断服务程序的第一条指令
- 自动保存PC和PSW,不可被中断(注:PSW也有可能保存在中断服务程序)
- 在中断响应周期中,将允许中断触发器置0;
- 关中断➡️ 保存断点➡️中断服务程序寻址
中断服务程序
- 保存现场和屏蔽字➡️开中断➡️执行中断服务程序➡️关中断➡️恢复现场和屏蔽字➡️开中断、中
- 中断服务程序一般是操作系统模块
中断向量
- 中断向量是每个中断服务程序的入口地址,每个中断都有唯一的类型号,对应一个中断服务程序。
- 中断向量方法可提高中断源的识别速度
- 由硬件产生向量地址,再由向量地址找到入口地址
中断不一定优于程序查询
中断
异常
①整数除以0
③缺页(处理后执行被中断的那一条)
在中断响应期间,CPU主要进行以下操作:关中断、保存断点和程序状态、识别中断源
可以提出中断的有:①外部事件②虚拟存储器失效③浮点数运算上溢(下溢直接当机器0处理)
注:cache属于存储器设备,不产生中断
DMA查询
- 完全由硬件进行成组信息传送的控制方式;
- 在数据准备阶段,CPU与外设并行工作。
- DMA控制器与主存每次传送一个字,传送完一整块数据后才向CPU发出中断请求。
- 每次读写的只能是连续的多个块,且块被读入内存后,在内存中也必须是连续的。
- 寄存器:命令/状态寄存器、内存地址寄存器、数据寄存器
- 输入时,数据从外设先送到DMA的数据缓冲寄存器,再通过数据总线送到主存。输出时反
DMA过程
- **预处理:**CPU向DMA接口发出一系列指令,需要一定的时间开销;
- DMA设备在DMA接口的控制下,往内存中块的相应位置按字传输数据,整个块写满后,DMA设备向CPU发送一个中断信号;
- CPU接收到中断信号后,进行后处理;
- 磁盘设备的I/O控制主要采用DMA方式;
- DMA传送速率
DMA方式和中断方式的区别
- 程序中断方式需要保护现场;
- DMA方式不需要保护现场,除了预处理和后处理,其他时候不占用CPU资源
- 中断传送过程需要CPU干预,适合低速设备;
- DMA传送过程不需要CPU干预,适合高速设备;
- 中断靠程序,DMA靠硬件
- 中断:CPU与外设并行工作,传送与主程序串行工作
- DMA:CPU与外设并行工作,传送与主程序并行工作
通道(I/O处理机)
- 通道程序存放在主存中,由通道执行,且只能在具有通道的I/O系统中执行。
- 通道是一种硬件
- 每次读写一组块