408---CO三轮复习---输入-输出系统
重难点总结
I/O接口---功能、结构、I/O端口、类型 ⭐⭐⭐⭐
I/O方式---程序查询、程序中断、DMA ⭐⭐⭐⭐⭐⭐⭐
通道技术 ⭐⭐⭐
I/O接口
主机与I/O设备之间的通信本质上是交换通用寄存器与数据缓冲寄存器之间的数据
I/O接口又叫设备控制器
I/O接口的引出
主机和外设具有各自的工作特点,它们在信息形式和工作速度上具有很大的差异,I/O接口正是为了解决这些差异而设置的。
I/O接口的功能
- 地址译码以进行设备选择
- 解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调地工作。
- 实现数据缓冲,CPU与外设之间的速度往往不匹配,为消除速度差异设置数据缓冲寄存器
- 信号格式转化,外设与主机两者的电平、数据格式都可能存在差异,I/O接口需要提供转化功能
- 传送控制命令和状态信息
I/O接口的基本结构
-
在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送。
-
控制线、命令线和地址线都是单向传输的,只有数据线是双向传输的
-
状态与状态字
- 状态字包含了设备的许多工作状态信息,需要用数据线传输
- 状态是I/O 设备的状态,例如,设备是否准备就绪,是否向 CPU出中断请求等,它使用状态线传输
-
I/O命令是CPU向设备发出的各种命令信号,如启动、清除、屏蔽、读、写等
-
I/O的状态端口和控制端口可以合用一个寄存器(因为一个是从CPU送来的(控制信息),一个是设备产生的(命令信息),对于CPU来说一个写,一个读)
-
I/O命令字可以通过数据线传输:
看I/O指令就包括了一些命令,而I/O指令肯定通过数据线传输
I/O端口
I/O端口是指在接口电路中能被CPU直接访问的寄存器,有数据端口、状态端口、控制端口
通常,CPU对数据端能执行读写操作,对状态端只能执行读操作,对控制端口能执行写操作
I/O指令与I/O编址
这是俩不同的概念,I/O指令是机器指令的一种,而I/O编址是对端口进行编址
I/O指令
I/O指令是机器指令的一类,其指令格式与其他指令既有相似之处,又有所不同。
I/O编址
1、统一编址
是指把I/O端口当作存储器的单元进行地址分配,这种方式CPU不需要设置专门的I/O指令,用统一的访存指令就可以访问I/O端口。
2、独立编址
又称I/O映射方式,I/O端口的地址空间与主存地址空间是两个独立的地址空间,因而无法从地址码的形式上区分,需要设置专门的I/O指令来访问I/O端口。
普通用户不能访问,只有操作系统使用特殊的I/O命令才能访问端口
I/O方式
程序查询方式
工作流程:
- CPU初始化程序,预置传输参数
- 像I/O发送命令字,启动设备
- 从外设接口读取状态信息
- 轮询I/O状态,直到外设准备就绪
- 传输一次数据
- 修改地址和计数器参数
程序中断方式
INTP:maskable interrupt : 可屏蔽中断
NMI: 不可屏蔽中断
单中断处理过程
- 关中断
- 保存断点
- 引出中断服务程序
- 保存现场
- 中断事务处理
- 恢复现场
- 开中断
- 中断返回
多级中断处理
- 关中断
- 保存断点
- 引出中断服务程序
- 保存现场与中断屏蔽字
- 开中断
- 执行中断服务程序
- 关中断
- 恢复现场
- 开中断
- 中断返回
对比单级中断处理和多级中断处理,我们可以发现,单级中断下程序在执行中断服务程序的时候是不会开中断的,并且单机与多级总是在恢复现场后开中断
中断向量
中断服务程序的入口地址就是中断向量
中断屏蔽字
直接看题
DMA
- DMA用于块设备,主要以块为单位传输数据,也可以以字为单位(周期挪用)
- DMA是纯硬件
- 基于三总线
- DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
- 与CPU并行
DMA的传输方式
1、停止CPU访存
当I/O设备有DMA请求时,由DMA控制器向CPU发送一个停止信号,使CPU脱离总线,停止访问主存,直到DMA传送一块数据结束。数据传送结束后,DMA控制器通知CPU可以使用主存,并把总线控制权交还给CPU。
2、周期挪用(或周期窃取)
当I/O设备有DMA请求时,会遇到3种情况:
①是此时CPU不在访存(如CPU正在执行乘法指令),因此I/O的访存请求与CPU未发生冲突:
②是CPU正在访存,此时必须待存取周期结束后,CPU再将总线占有权让出
③是I/O和CPU同时请求访存,出现访存冲突,此时CPU要暂时放弃总线占有权。I/O访存优先级高于CPU访存,此时由I/O设备挪用一个或几个存取周期,传送完一个数据后立即释放总线,是一种单字传送方式
3、DMA与CPU交替访存
这种方式适用于CPU的工作周期比主存存取周期长的情况。
例如,若CPU的工作周期是1.2μs,主存的存取周期小于0.6μs,则可将一个CPU周期分为C1,和C2两个周期,其中C1,专供DMA访存,C2专供CPU访存。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时控制的
ps: 怎么感觉周期挪用专指I/O和CPU同时请求访存的情况?
通道
0、通道是一个具有特殊功能的处理器,它有自己的指令和程序,专门负责数据输入输出的传输控制,通道受CPU的I/O指令启动、停止或改变其工作状态。
1、通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序
2、但通道不是一个完全独立的处理器,它依据 CPU I/0 指令进行启动、停止或改变工作状态,是从属于 CPU 的一个专用处理器
3、通道的基本功能是按I/O指令要求启动I/O设备,执行通道指令,组织I/O设备或主存进行数据传输,向CPU报告中断。
4、通道程序存放在内存中
5、通道程序由通道执行
6、通道程序只能在具有通道的I/O系统中进行
7、通道是硬件
通道的引入
通道的概念
一种硬件,可以理解为是“弱鸡版的CPU"
通道是用来负责管理 I/0 设备以及实现主存与 I/0 设备之间交换信息的部件,可以视为一种具有特殊功能的处理器。通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,但不是一个完全独立的处理器。
它依据 CPU I/0 指令进行启动、停止或改变工作状态,是从属于 CPU 的一个专用处理器。依赖通道管理的 I/0 设备在与主机交换信息时, CPU不直接参与管理,故提高了 CPU 的资源利用率。
通道指令
一个通道可以和一个以上的设备控制器(I/O接口)相连,一个设备控制器又可以控制若干台同一类型的设备。
I/O指令是CPU指令系统的一部分,是CPU用来控制输入输出操作的指令,由CPU译码后执行。在具有通道结构的机器中,I/O指令不实现I/O数据传送,主要完成启、停I/O设备,查询通道和I/O设备的状态及控制通道进行其他一些操作。
通道指令是通道本身的指令,用来执行I/O操作,如读、写、磁带走带及磁盘找道等。
通道的特点
1、CPU干预的频率极低,通道会根据CPU的指示执行相应的通道程序,只有完成一组数据块的读/写后才需要发出中断信号,请求CPU干预。
2、每次读/写一组数据块
3、数据的流向(在通道的控制下进行)
读操作(数据输入):I/O设备→内存
写操作(数据输出):内存→I/O设备
4、优缺点
缺点:实现复杂,需要专门的通道硬件支持
优点:CPU、通道、I/O设备可并行工作,资源利用率很高。
工作流程
- 用户执行访管指令进入操作系统管理程序,CPU通过管理程序组织一个通道程序
- CPU向通道发送I/O指令,启动通道
- 执行内存中的通道程序,完成数据的输入/输出
- 通道程序执行完毕,向CPU发送中断信号,CPU对中断进行处理(第二次进入操作系统)
通道与DMA
①与DMA控制方式相加,通道控制方式所需的CPU干预更少,并且一个通道可以控制多台设备,进一步减轻了CPU的负担。
②对通道来说,可以使用一些指令来灵活改变通道程序,这一点DMA控制方式却无法做到。
③DMA方式需要CPU来控制传输数据块的大小、传输的内存位置,而通道方式中这些信息是由通道控制的。
④DMA中,输入输出的初始化仍然要由CPU来完成
⑤DMA只能控制一台或者少数几台同类设备,而一个通道可以控制多台同类或者不同的设备
6 通道完成传输任务以后也需要中断,以向CPU进行报告
错题
错题7.3
20.
C,课本原话
27.
DMA是硬件,其他都是软件