概述

输入输出系统的发展概况

  1. 早期

    分散连接

    CPU和I/0设备串行工作 程序查询方式

  2. 接口模块和DMA阶段

    总线连接

    CPU和I/O设备并行工作(中断方式、DMA方式)

  3. 具有通道结构的阶段

  4. 具有I/0处理机的阶段

输入输出系统的组成

  1. I/0软件

    (1) I/O指令

    • CPU指令的一部分

    I/O指令的一般格式

    (2) 通道指令

    • 通道自身的指令

    • 指出数组的首地址、传送字数、操作命令

  2. I/0硬件

    设备 I/O接口

    设备 设备控制器 通道

I/0设备与主机的联系方式

  1. I/0设备编址方式

    (1) 统一编址

    • 可以直接用取数、存数指令对I/O设备进行访问

    (2) 不统一编址

    • 有专门的I/O指令
  2. 设备选址

    设备选择电路识别是否被选中

  3. 传送方式

    (1) 串行

    (2) 并行

  4. 联络方式

    (1) 立即响应

    (2) 异步工作采用应答信号

    • 并行

      异步并行“应答”联络方式

    • 串行

      异步串行联络方式

    (3) 同步工作采用同步时标

  5. I/0设备与主机的连接方式

    (1) 辐射式连接

    辐射式连接

    • 每台设备都配有一套控制线路和一组信号线

    • 不便于增删设备

    (2) 总线连接

    • 便于增删设备

I/O设备与主机信息传送的控制方式

  1. 程序查询方式

    程序查询方式流程

    • CPU和I/O串行工作

    • 踏步等待

  2. 程序中断方式

    倘若CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予以响应。

    程序中断方式

    • 没有踏步等待现象

    • 中断现行程序

    程序中断方式流程

  3. 直接存储器存取方式(DMA)

    主存和I/O之间有一条直接数据通道

    不中断现行程序

    周期挪用(周期窃用)

    CPU和I/O并行工作

    DMA方式

  4. I/0通道方式

  5. I/O处理机方式

4、5两种方式详解可以参照《计算机系统结构》的教材。

  1. 前三种方式的CPU工作效率比较

    三种方式的CPU工作效率比较

I/0设备(了解)

概述

I/O设备结构框图
I/O设备结构框图

I/0设备大致分为三类:

  1. 人机交互设备

    键盘、鼠标、的研究、显示器

  2. 计算机信息存储设备

    磁盘、光盘、磁带

  3. 机-机通信设备

    调制解调器等

输入设备

  1. 键盘

    按键

    判断哪个键按下

    将此键翻译成ASCII码(编码键盘法)

  2. 鼠标

    机械式:金属球、电位器

    光电式:光电转换器

  3. 触摸屏

输出设备

  1. 显示器

    (1) 字符显示:字符发生器

    (2) 图形显示:主观图像

    (3) 图像显示:客观图像

  2. 打印机

    (1) 击打式:点阵式(逐字、逐行)

    (2) 非打击式:激光(逐页)、喷墨(逐页)

其他

  1. A/D、D/A

    模拟/数字(数字/模拟)转换器。

  2. 终端

    由键盘和显示器组成。

    完成显示控制与存储、键盘管理及通信控制。

  3. 汉字处理

    汉字输入、汉字存储、汉字输出。

多媒体技术

  1. 什么是多媒体?

  2. 多媒体计算机的关键技术?

I/0接口

概述

为什么设置接口?

  1. 实现设备的选择

  2. 实现数据缓冲达到速度匹配

  3. 实现数据串-并格式转换

  4. 实现电平转换

  5. 传送控制命令

  6. 反应设备的状态(“忙”、“就绪”、“错误”、“中断请求”)

接口的功能和组成

  1. 总线连接方式的I/O接口电路

    (1) 设备选择线

    (2) 数据线

    (3) 命令线

    (4) 状态线

    I/O总线和接口部件

  2. 接口的功能和组成

功能 组成
选址功能 设备选择电路
传送命令的功能 命令寄存器、命令译码器
传送数据的功能 数据缓冲寄存器
反映设备状态的功能 设备状态标记

$$
\begin{cases}完成触发器D\工作触发器B\中断请求触发器INTR\屏蔽触发器MASK\end{cases}.
$$

  1. I/O接口的基本组成

    I/O设备的基本组成

接口类型

  1. 按数据传送方式分类

    并行接口(Intel 8255)

    串行接口(Intel 8251)

  2. 按功能选择的灵活性分类

    可编程接口(Intel 8255、Intel 8251)

    不可编程接口(Intel 8212)

  3. 通用性分类

    通用接口(Intel 8255、Intel 8251)

    专用接口(Intel 8279、Intel 8275)

  4. 按数据传送的控制方式分类

    程序型接口

    DMA型接口

程序查询方式

程序查询方式的流程

  1. 查询流程

    IO设备的查询流程

  2. 程序流程

    程序查询方式的程序流程

程序查询方式的接口电路

  1. 输入

    程序查询方式接口电路的基本组成-输入

    ① 当CPU通过I/O指令启动输入设备时,指令的设备码字段通过地址线送至设备选择电路。

    ② 若该接口的设备码与地址线上的代码吻合,其输出SEL有效。

    ③ I/O指令的启动命令经过“与非”门将工作触发器B置为1,将完成触发器D置为0。

    ④ 由B触发器启动设备工作。

    ⑤ 输入设备将数据送至数据缓冲寄存器(DBR)中。

    ⑥ 由设备发设备工作结束信号,将D置“1”,B置“0”,表示外设准备就绪。

    ⑦ D触发器以“准备就绪”状态通知CPU,表示“数据缓冲满”。

    ⑧ CPU执行输入指令,将DBR中的数据送至CPU的通用寄存器,再存入主存相关单元。

  2. 输出

    ① 当CPU通过I/O指令启动输出设备时,指令的设备码字段通过地址线送至设备选择电路。

    ② 若该接口的设备码与地址线上的代码吻合,其输出SEL有效。

    ③ I/O指令的启动命令经过“与非”门将工作触发器B置为1,将完成触发器D置为0。

    ④ CPU通过输出指令将数据送至数据缓冲 寄存器(DBR)中。

    ⑤ 由B触发器启动设备工作,将数据从DBR中取走。

    ⑥ 由设备发设备工作结束信号,将D置“1”,B置“0”,表示外设输出完成。

    ⑦ D触发器以“准备就绪”状态通知CPU,表示“数据缓冲空”。

    ⑧ CPU可再次向DBR输出数据,进行第二次传送。

程序中断方式

中断的概念

计算机在执行程序的过程中,当出现异常情况或特殊情况时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序,这就是“中断”。

程序中断方式
程序中断方式

计算机系统引入中断技术的原因:

  1. 为了提高计算机的整机效率。

  2. 为了应对突发事件。

    例如,当计算机运行过程中,若出现突然掉电这种异常情况,将会导致CPU中的全部信息丢失。倘若在突然掉电的瞬间立即启动另一个备份电源,并迅速进行一些必要的处理,例如,将有用的信息送至不受电源影响的存储系统内,待电源恢复后接着使用,这种处理技术也要用中断技术来实现。

  3. 为了实时控制的需要。

    在实时控制领域中,要求CPU能即时响应外来信号的请求,并能完成相应的操作,也都要求采用中断技术。

中断的产生

以打印机为例

CPU与打印机部分并行工作

CPU与打印机并行工作的时间示意图
CPU与打印机并行工作的时间示意图

程序中断方式的接口电路

  1. 配置中断请求触发器和中断屏蔽触发器

    INTR:中断请求触发器(INTR=1表示有请求)

    MASK:中断屏蔽触发器(MASK=1表示被屏蔽)

    D:完成触发器

    接口电路中D、INTR、MASK和中断查询信号的关系

    &:与非门,其运算为$\overline{A\cdot B}$。

    1:非门,其运算为$\overline{A}$,相当于$\overline{A\cdot 1}$。

    &和1:效果相当于与门,但由于电路的原因,只能使用与非门。

  2. 排队器

$$
排队\begin{cases} 硬件\ \ 在CPU内或在接口电路中(链式排队器) \ 软件\ \ 详见第八章\end{cases}
$$

链式排队器

设备1、2、3、4的优先级按降序排列

$INTR_i=1$有请求,即$\overline{INTR_i}=0$

第一个反相器左侧接地(恒为0),经过反向器,信号变为1,

若${INTR_1}$有请求,即$INTR_1=1$,经过上方的与非门非门,选中1号设备;

若${INTR_1}$无请求,即$\overline{INTR_1}=1$,经过与非门,将1信号传到下一个排队器。

依此类推…

  1. 中断向量地址形成部件

$$
入口地址\begin{cases} 由软件产生\ \ 详见第八章 \ 硬件向量法\ \ 由硬件产生向量地址,再由向量地址找到入口地址\end{cases}
$$

中断向量地址形成部件框图
中断向量地址形成部件框图
通过向量地址寻找入口地址
通过向量地址寻找入口地址
  1. 程序中断方式接口电路的基本组成

    程序中断方式接口电路的基本组成

I/O中断处理过程

  1. CPU响应中断的条件和时间

    • 条件

      允许中断触发器EINT=1

      开中断指令将EINT置“1

      关中断指令将EINT置“0”或硬件自动复位

    • 时间

      当D = 1(随机)且MASK = 0

      在每条指令执行阶段的结束前

      CPU中断查询信号(将INTR置“1”)

  2. I/O中断处理过程

    I/O中断处理过程

    ① 由CPU发启动I/O设备的命令,将I/O接口中的B置“1”,D触发器置”0“。

    ② 接口启动输入设备开始工作。

    ③ 输入设备将数据送入数据缓冲寄存器。

    ④ 输入设备向接口发出”设备工作结束“信号,将D置”1“,B置”0“,标志设备准备就绪。

    ⑤ 当设备准备就绪(D=1),且本设备未被屏蔽(MASK=0)时,在指令执行阶段的结束时刻,由CPU发出中断查询信号。

    ⑥ 设备中断请求触发器INTR被置”1“,标志设备向CPU提出中断请求。与此同时,INTR送至排队器,进行中断判优

    ⑦ 若CPU允许中断(EINT=1),设备又被排队选中,即进入中断响应阶段,由中断响应信号INTA将排队器输出送至编码器形成向量地址。

    ⑧ 向量地址送至PC,作为下一条指令的地址。

    ⑨ 由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至CPU的通用寄存器,再存入主存相关单元。

    ⑩ 中断服务程序的最后一条指令是中断返回指令,当其执行结束时,中断返回至原程序的断点处。至此,一个完整的程序中断处理过程即告结束。

    综上所述,可将异常中断处理过程简单归纳为中断请求、中断判优、中断响应、中断服务和中断返回5个阶段。