我们都知道,外部设备和计算机是不能直接相连的,因为设备是多种多样的,都是通过一个接口设备和主存相连的,主机对外部设备有两种控制方式,程序查询方式和程序中断方式,第三种是DMA方式,这三种方式都是从CPU工作效率的角度提出来的,CPU和外部设备能够并行的工作,回顾之前的内容,CPU和缓存的运行速度相差很大的如果串行工作会拖累CPU的速度,所以会想出一种并行的工作方法来提升效率。
一. 输入输出系统的发展:
课后题3:I/O设备与主机交换信息时,共有哪几种控制方式?简述它们的特点。
答:有程序查询方式、程序中断方式、DMA方式、通道方式和I/O处理机的方式。
其特点分别如下:
(1)程序查询方式:主机和I/O串行工作,如果I/O忙,那么CPU踏步等待。这种效率很低。
(2)程序中段方式:主机和I/O并行工作。这种方式消除了CPU踏步等待的现象,提高了CPU的工作效率。
(3)DMA方式:主机和I/O并行工作。主存和I/O之间有一条直接数据通路,CPU不参与I/O和主存间的信息交换,故不必中段现行程序,CPU效率更高。
(4)通道方式:通道是一个具有特殊功能的处理器,CPU把部分权利下方给通道,由它实现对外围设备的统一管理和外围设备与主存间的数据交换,大大提高了CPU的效率,但他是以花费更多的硬件为代价的。
(5)I/O处理机方式:他是通道方式的进一步发展,CPU将I/O操作及外围设备的管理权全 部交给I/O处理机,其实质就是多机系统,因而效率有更大的提高。
输入和输出系统的组成:
I/O软件
I/O指令:CPU指令的一部分操作码命令码设备码(存设备地址)
- IN
- OUT
通道指令: 通道自身的指令 指出首地址 传送字数 操作命令
IO硬件
接口的通用模型
CPU的工作速度很快,接口是硬件工作速度也很快,相比于这俩,外部设备的工作速度就显得很慢了,外部设备来不及接受数据的时候就要在接口的位置增设一个缓冲器,用来作为CPU到外设的一个过度,变换器是转换电信号的作用,我们都知道CPU内部工作的电信号和外部设备工作的电信号是不一样的,变换器起到这样的一个电信号的一个转换作用。
IO设备和主机的联系方式
刚才说每个设备都有一个地址码设备码对应的是设备的一个地址,每一个设备地址对应一个地址空间,外部设备通过IO接口进行数据传输,CPU和主存之间有一个地址映射,同样的主存和I/O也有一个地址映射,外部设备通过IO接口进行数据传输
I/O编址方式
- 统一编址方式:如下图所示,0~N给内存分配地址,剩余的给寄存器,我们只需要根据译码器的结果判断是在哪个位置就可以了。例如,LOAD取数指令是把某一内存单元中的数给CPU,同样我们给出IO的地址也可以把IO中的数传个CPU的某一个寄存器中。
- 独立编址,由于地址空间是有重复的,这样就需要有IO指令比如in or out 如果是io指令就在io中访问,繁殖就是在内存中访问
两种寻址方式的对比:
联络方式
Io设备和主机的联络方式
程序查询方式:(串行一个人干活另外一个人等)
CPU不能直接读IO,CPU要读取接口中的状态寄存器R,通过R判断外部设备是否能进行工作,IO设备空闲之后,先将数据存入数据寄存器DR再向CPU发出strobe信号表示可以工作,
程序中断方式:
DMA工作方式:
主存和IO设备增设了一条直接相连的通路,可以不经过CPU直接和主存进行数据交换,CPU只需知道这是外部设备的一个传送,启动DMA控制器,把控制权交给DMA控制器,所以剩下的传送都交给DMA来完成就可以了。
操作系统中IO扮演的角色:
构图软件:
2.drawio - diagrams.net