计算机组成原理自学笔记(五)

本文介绍了计算机系统中I/O设备从分散连接到具有I/O处理机阶段的发展历程,涉及程序查询、中断、DMA等方式。在早期,设备通过程序查询方式与CPU串行工作,后来发展为总线连接,引入了中断和DMA技术,实现了CPU与I/O的并行操作。通道和I/O处理机的出现进一步提升了效率,使得数据传输更加独立于CPU。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习是个反人类的东西么?感觉是的。毕竟这是个学习笔记,还是专心聊学习吧。


概述

1.分散连接
每个设备都有专门的控制电路,这些控制电路甚至和CPU的控制电路设计在一起紧耦合,这个时候增加和删除外部设备都很难,但是当时外部设备数量少,计算机数量少,因而这种设计方式可行。此时外部设备和主机之间的连接主要是采用***程序查询方式***。
CPU和I/O设备串行工作,I/O进行数据输入输出的时候,CPU必须运行相应的程序或者处于停等状态。

2.接口模块和DMA阶段
I/O接口 和 DMA控制器 与CPU相互配合完成数据的输入输出,连接方式采用***总线方式连接***,I/O设备通过接口连接在总线上,一个总线可以连接多个设备;总线另外一段和主机相连。主机和I/O设备进行传输的传输控制方式发生变化,要求CPU和I/O之间进行并行工作,出现两种信息交换方式:中断方式/DMA方式

3.具有通道结构阶段:
在中断方式/DMA方式当中,在信息传输过程当中或信息传输完成之后 CPU仍要参加(参入)部分信息传输的处理工作,为了使CPU的工作和I/O的工作并行起来,或者是输入输出系统数据输入输出管理/控制尽可能的从主机当中独立出来,出现了通道结构的阶段。
通道可以简单的看成是处理器或者是小型的功能更强的DMA控制器,能够执行通道程序,通道有自己的指令系统。通过执行通道程序,可以控制连接在通道上的I/O设备,和主机之间直接进行信息传输。

4.具有I/O处理机的阶段
I/O处理机可以是专用的处理器,在大型计算机中我们可以使用现代的微处理器直接作为I/O处理机,控制I/O设备工作,或者是在有一些大型的计算机当中,直接采用与主机处理器相同的处理器当作I/O处理机,此时I/O处理及功能非常强大,甚至在没有I/O设备工作的时候,I/O处理机甚至可以作为主机的处理器完成相应的计算任务。
随着I/O系统的发展,数据的输入输出操作逐渐的从CPU当中分离出来,外部设备的独立性越来越强。

输入输出系统的组成

软件:
I/O指令:
CPU指令的一部分。
操作码–相当于I/O指令的标志,表示这样的指令是I/O指令;
命令码–相当于CPU指令集当中普通指令的一个指令码,指出对I/O设备进行什么样的操作(查询、输入、输出)
设备码–I/O设备的编码即地址,或者是I/O设备当中某一个寄存器的地址,这些寄存器我们称作I/O的端口
在这里插入图片描述
通道指令:
通道(DMA处理器)有自己的控制器,有的通道还有自己的存储器,通道能够执行由通道指令组成的通道程序,通道自身的指令。
应用程序通过广义I/O指令集调用外部设备。
广义I/O指令要指出参加数据传输的I/O设备,数据传输主存的首地址,传输数据的长度,传输的方向(向I/O设备传输还是向主存传输)。操作系统根据广义I/O指令给出的参数,以及要求的操作,会编写一个由通道指令组成的通道程序,并且把通道程序放在内存或通道自己内存的指定位置,之后启动通道进行工作。通道拿到通道程序的首地址后,就可以执行通道程序,控制I/O设备完成相应的输入输出工作。
通道指令的参数当中需要指出成块数据/数组的首地址(可以是单字节)、传送字数、操作指令等等。

硬件:

在这里插入图片描述

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

I/O设备编址方式:
1.统一编址:把I/O设备的地址看成是内存地址的一部分,此时CPU可以直接使用取数/存数指令对I/O设备进行访问/控制
2.不统一编址(单独编址):在内存地址空间外,单独设置地址空间,需要专门的I/O指令。

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

传送方式:
串行/并行

联络方式:
1.立即响应
2.异步工作–采用应答信号方式
并行传输:CPU和接口之间并行(一般都是),I/O接口和I/O设备并行,要 达到并行工作,I/O接口和I/O设备之间要有多条数据线组成的类似总线结构的数据线来完成数据并行的输入和输出,双方之间还要采用应答线。
串行传输:
3.同步–采用同步时标

I/O设备与主机的连接方式

辐射式连接:
每台设备都配有一套控制线路和一组信号线,不便于增删设备
总线连接:

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

1.程序查询方式
在这里插入图片描述

CPU和I/O串行工作
外部设备接收到CPU的指令后开始数据准备,经过一个较长的准备时间,数据才能准备好,准备好以后把数据送入到I/O的接口缓存中,然后将工作状态标志置为设备准备好(数据准备好)。CPU只有查到了数据准备好之后才能开始数据传输,通过接口将数据先读入到CPU中的某个寄存器,然后再从寄存器转存到某一个内存单元中,在数据准备的过程当中,CPU一直处于阻塞状态(未执行其他的指令)

2.程序中断方式
在这里插入图片描述

在执行K调指令的过程中,收到外部设备的中断请求信号,CPU在执行完第K条指令后,把程序断点和程序现场进行保存,然后跳转到中断服务程序,通过执行这个中断服务程序来完成数据的输入输出操作。中断服务程序执行完数据的输入输出操作就执行结束,CPU又转回到执行原来的程序,原来的程序时在第K条指令执行完开始处理中断,因此转回恢复寄存器内容,从K+1条指令继续。
在这里插入图片描述
中断方式使CPU和I/O可以部分的并行工作,CPU被一定程度的解放出来,在数据的准备期CPU不需要参与,在数据的传输过程中CPU还需要参与,在这种情况下对CPU的解放并不是非常的彻底,因为传输过程中仍然需要CPU的参入,而且要保证程序被中断以后返回时能正确的执行,中断的时候要保存现场保存程序断点,程序返回的时候要恢复现场恢复程序断点这些都是要有指令来完成,需要一定的时间;如果外部设备和内存之间或者和主机之间进行信息传输的数据量非常小,可能需要十几条或几十条指令来完成现场的保护或者现场的恢复,依然要消耗CPU较大的时间
在这里插入图片描述

3.DMA方式

前两种方式中真正的数据传输仍然需要CPU来做,需要CPU通过执行程序的方式完成数据对主机的输入输出。DMA方式在内存和I/O之间建立了直接的通路(主存和I/O之间有一条直接数据通道),内存和I/O通过DMA控制器可以直接进行数据交换,在数据的交换过程中不需要CPU参入,使得CPU进一步从数据输入输出工作当中解放出来,不需要中断现行程序,采用的方式是周期窃取(周期挪用)。
DMA控制器控制主存和外设之间进行信息交换一定要使用到总线,包括地址线、数据线、控制线,这些总线被DMA用来进行信息交换则需要CPU让出总线控制权,让出的时间就是一个存储周期。在这个存储周期当中,如果DMA需要完成I/O和内存之间的数据交换,那么这个储存周期就交给DMA使用,同样总线的控制权也交给DMA,这种方式即为周期挪用或者周期窃取。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值