预习计算机组成原理之输入输出系统——笔记3

发布于:2022-07-26 ⋅ 阅读:(434) ⋅ 点赞:(0)

系列文章目录

第五章 输入输出系统(I/O系统)



前言

今天是7月20号,学习计算机组成原理第五章——输入输出系统
这是计算机组成原理的硬件最后一部分


一、概述

1.1 输入输出系统的发展概况

随之输入输出系统的发展,数据的输入输出操作,逐渐地被从CPU中分离出来,独立性越来越强
在这里插入图片描述

1.2 输入输出系统的组成

1.2.1 I/O软件

1.2.1.1 I/O指令

CPU指令集中的I/O指令
操作码:I/O指令的标志,他表示这个指令是I/O指令
命令码:CPU普通指令的操作码,指出对I/O设备做什么操作,输入输出等
设备码:I/O设备地址或者I/O设备某个寄存器地址,这些寄存器被称为I/O端口

1.2.1.2 通道指令

小型的DMA处理机,能够实现I/O设备与主机之间直接信息传送
通道有自己的控制器,有的通道有自己的存储器
通道能够执行由通道指令组成的通道程序
有时候应用程序需要增加广义I/O指令,广义I/O指令指出参加数据传输的I/O设备,数据传输主存的首地址,数据长度,传输方向。操作系统根据广义I/O指令的参数和指令,编写一个由通道指令组成的通道程序,把通道程序放到内存或者通道内存指定位置,启动通道,执行工作。
在这里插入图片描述

1.2.2 I/O硬件

I/O硬件,若是由通道方式,设备连接设备控制器,设备控制器连接子通道,子通道连接通道

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

若要启动I/O设备,如何启动I/O设备
对于I/O设备的编址方式:
统一编址,是将一部分的地址空间用于I/O设备。当地址落入这部分地址空间时,对应就是对I/O设备进行操作。
不统一编址,想要对I/O设备进行操作需要专门的I/O指令
在这里插入图片描述
在这里插入图片描述
串行:一位一位传输,速度慢,适合远程传输
并行:同时有多位数据在数据线上传输,数据线有多条,通常情况下数据线的条数是8的倍数
在这里插入图片描述
立即响应:结构简单的设备,状态数量比较少,接收或者输入数据可以直接进行显示。比如LED灯
异步工作采用应答信号:可以并行也可以串行
并行:CPU与接口之间是并行传输,I/O接口和I/O设备有多条数据线组成的类似总线结构的数据线,实现并行输出
在这里插入图片描述
这里辐射式连接就是上面介绍中的分散连接,不便于增删设备也不利于设备的移植性
在这里插入图片描述
总线连接,外部设备通过接口和主机进行连接,接口可以向外部设备传送主机的命令,外部设备向主机传送状态信息。
接口也可以完成数据缓存,外部输入的数据可以先缓存到接口中进行格式转换
因为接口一般是有工业标准的,容易进行替换和移植
在这里插入图片描述

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

1.4.1 程序查询方式

CPU与I/O串行工作
在这里插入图片描述

1.4.2 程序中断方式

CPU与I/O部分并行,在I/O数据准备时候CPU可以工作
只能说CPU部分解放出来,解放并不彻底,因为传输过程中仍然需要CPU的参与
而且要保证程序被中断后程序能正确执行需要保护现场,需要指令操作,耗费一定时间。
当只传输很少的字节,这些延迟就很能体现出来
仍然是CPU在内存和I/O设备中间
在这里插入图片描述
在这里插入图片描述

1.4.3 DMA方式

CPU进一步从数据输入输出解放出来,外部设备和内存之间可以建立直接的连接,DMA控制器或者DMA接口控制外部设备和内存之间进行内存交换
内存和I/O直接进行数据交换,进一步解放CPU
在那一个或几个存取周期中,外部设备和内存在DMA控制器的控制之下,完成数据交换。CPU仍然可以继续工作,只是不能进行对内存的访问,但是仍然可以工作。与程序中断方式相比,不需要保存现场,不需要恢复现场,不需要用软件进行输入输出程序的控制,进一步把CPU从主机和I/O的数据传送过程中解放出来

在这里插入图片描述

1.4.4 三者比较小结

在这里插入图片描述
在这里插入图片描述

二、外部设备(I/O设备)

只做简要介绍

2.1 概述

在这里插入图片描述

2.2 输入设备

在这里插入图片描述

2.3 输出设备

在这里插入图片描述

2.4 其他

在这里插入图片描述

2.5 多媒体设备

三、I/O接口

3.1 概述

在这里插入图片描述

3.2 接口的功能和组成

设备选择线:单向线,设备地址、设备端口
数据线:双向
命令线:控制设备
状态线:告诉主机I/O设备的状态
在这里插入图片描述
完成触发器D:外部设备是否完成准备工作
工作触发器D:外部设备工作状态是否忙
中断请求触发器INTR:向主机提出终端请求,但是能否允许提出中断请求,要看终端请求的重要性
屏蔽触发器MASK:若MASK=1,即使外部设备完成了工作,仍然不能向主机发出中断请求
在这里插入图片描述
在这里插入图片描述

3.3 接口类型

在这里插入图片描述

四、程序查询方式

在这里插入图片描述
设置计数值时,设置为正数n,用来记录传输的字,每传输一个字,计数值-1,最后减到0结束
或者设置为负数,-n,用补码表示,每传输一个字计数值+1,最后计数值溢出为0
在这里插入图片描述
开始启动命令到达的时候:
D被设置为0,表示数据还未准备就绪
B被设置为1,表示设备启动
在这里插入图片描述
最后设备工作结束信号来临:
D被设置为1,表示输入数据已经准备好
B被设置为0,表示设备结束任务
在这里插入图片描述
DBR是数据缓存
CPU一直在等待,反复查询的是标记为5的线上的信号,查询到1之后才能确认数据已经准备好。CPU通过数据线读入

五、程序中断方式

5.1 中断的概念

在这里插入图片描述

5.2 I/O中断的产生

实际“启动打印机”也是CPU原有的程序命令,不算中断
“传送和接收”是中断服务程序
在这里插入图片描述

5.3 程序中断方式的接口电路

排队器:确定提出中断请求的设备优先级最高的设备优先
中断向量地址形成部件:中断服务程序在内存中的入口地址
在这里插入图片描述
数据已经被准备好了,D=1,并且不被屏蔽,Q=0,此时的INTR=1为有请求
在这里插入图片描述
在这里插入图片描述
I N T R 1 = 1 INTR_1=1 INTR1=1 ,那么后续的与门的输入一定会有一个为0,那么后续的 I N T P n ’ INTP_n ’ INTPn 的输出都是0 。
I N T R 2 = 1 INTR_2=1 INTR2=1 ,那么相当于中断源2有中断请求,这时候是要 I N T R 1 = 0 INTR_1=0 INTR1=0 I N T R 2 = 1 INTR_2=1 INTR2=1,很明显由于最左侧接地, I N T P 1 ’ INTP_1 ’ INTP1开始的后面几个输出应该都是1,那么明显可以看到最后一个1对应的是提出中断请求的优先级最高的设备。它后面的高电平还是低电平没有不做设置。加入与门后可可以将提出中断请求的设备筛选出来,对应其 I N T P n INTP_n INTPn是1。
在这里插入图片描述
确定响应哪一个中断源的中断请求,如何找到中断服务程序的入口地址。
在这里插入图片描述
这也被称为设备编码器
在这里插入图片描述
吗你你你

5.4 I/O中断处理的过程

在这里插入图片描述
在这里插入图片描述

5.5 中断服务的程序流程

程序断点的保护,包括两部分内容:

  1. 中断返回以后,执行哪一条指令,保存这条指令地址(PC)
  2. 程序执行状态,不能由指令直接读取的状态也是程序的断点,需要保护
    中断隐指令,本身不是一条指令,硬件自动要执行的一系列操作。这样保存现场的
    在这里插入图片描述
    单重中断:不允许新的中断服务程序中断现在正在运行的中断服务程序,哪怕是更高级别的中断请求
    在这里插入图片描述
    如何对单重中断进行改进,改进之后让他执行多重中断:
    在单重中断的服务程序流程中,保护现场、设备服务、恢复现场时,EINT都为0,这些阶段均为关中断。因此在此时有优先级更高的中断CPU也不会响应。在中断服务程序最后才打开中断,允许中断。
    多重中断将开中断提前
    在这里插入图片描述
    在这里插入图片描述

六、DMA方式

DMA:直接存储器访问

6.1 DMA和程序中断两种方式的数据通路

在这里插入图片描述

6.2 DMA与主存交换数据的三种方式

6.2.1 停止CPU访问主存

在DMA工作时,CPU直接停止访问主存,便于控制, 利于大规模数据传输
CPU放弃了总线控制权,放弃了对主存的访问权,都交给DMA接口。若指令已经被取到cache,CPU可以继续工作,只要不访问存储器就可以了。
但是DMA使用主存的时候,数据传输仍然是一个字一个字传输,传输间隔比较大,这些时间被浪费
在这里插入图片描述

6.2.2 周期挪用(周期窃取)注:这里的“周期”是访存周期

DMA上连接的是高速设备,所以CPU和DMA同时请求访存的时候,会把总线的控制权让给DMA
但是CPU正在访存的时候,DMA不能抢断
在这里插入图片描述

6.2.3 DMA与CPU交替访问(实用性不强)

DMA不需要申请建立和归还的使用权,会更快一点
在这里插入图片描述

6.3 DMA接口的功能和组成

6.3.1 DMA 接口功能

注意(4)的修正过程,修正传送过程中的数据地址和传输数据的长度,这样用来确定数据块的传送是否结束
在这里插入图片描述

6.3.1 DMA 接口组成

以下展示单总线结构:
AR : 地址寄存器(每完成一次输入或者输出都要对地址寄存器进行修改,每次+1)
WC : 传输数据量计数(存一个负数,-n,每次传输一个数据就+1)
BR : 数据缓冲器(外部设备的数据或者存储单元的数据,暂存在数据缓冲器中)
DAR:设备地址寄存器(两个作用:1.设备选择使用,这次选择的设备是否为这个接口当前连接的设备,是否由这个DMA进行管理
2. 可以保存磁盘的扇区号、磁道号等等)

AR、WC、DAR都是通过数据线进行设置
DMA控制逻辑:控制接口内部协调的工作,控制给定的时序发出给定的信号,控制数据线、地址线。向主存发出读写控制请求,向CPU发出DMA请求

DREQ:设备向DMA的控制请求信号
DACK:应答信号
HRQ:总线占用信号
HLDA:总线应答信号

中断机构:数据传输后的后续处理
在这里插入图片描述

6.4 DMA传送过程

预处理、数据传送、后处理

6.4.1 预处理

在这里插入图片描述

6.4.2 数据传送过程

至于数据的输入输出,由DMA接口完成,它可以控制完成一批数据的传送
数据传送时的请求判断,是在判断总线能否使用
主存地址送总线的过程,是AR寄存器负责
在这里插入图片描述
下面以输入数据的传送过程为例:

在这里插入图片描述
输出过程为例:
在这里插入图片描述

6.4.3 后处理

在WC值溢出后,CPU响应了中断请求之后,执行中断程序来进行数据的校验、是否继续使用DMA、测试传送过程是否正确。这些都是在服务中断程序中完成的在这里插入图片描述

6.5 DMA接口与系统的连接方式

一台机器可以有多个DMA接口,多个DMA接口都要连接到总线上

6.5.1 具有公共请求线的DMA请求

这个方式与串行连接方式十分类似
公共的DMA请求线是送往CPU的
DMA响应也是按照优先级,越靠近CPU的DMA接口的优先级越高
在这里插入图片描述

6.5.2 独立的DMA请求

这个方式与总线的独立请求方式一致
每个DMA接口依然要和数据线和地址线连接
每个DMA接口都有独立的DMA请求信号和DMA响应信号,排队逻辑在CPU内部完成
在这里插入图片描述

七、DMA方式与程序中断方式的比较

对于数据传送,中断方式是中断服务程序,需要CPU参与;DMA方式是硬件控制,不需要CPU参与
在这里插入图片描述

八、DMA接口的类型

在这里插入图片描述
数据准备阶段可以有多个设备同时进行准备
但是数据传输的时候还是只能有一个设备连接
通道是一种小型的DMA处理机,一条控制指令设置了第一个子通道,下一条指令可以紧接着设置另外一个子通道。对应的外部设备可以同时进行数据准备
在这里插入图片描述
假设真正用于数据传输的时间只有5微秒
注意,速度越快的设备优先级越高,所以在磁盘和磁带同时有DMA请求,先响应磁盘
虽然连接了多个外部设备,还是有很多时间通道处于空闲时间,可以连接更多设备
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到