I/O系统——计算机价格占80%



计算机除了CPU与存储器,第三大部分就是I/O系统

本文介绍
重点介绍I/O设备与主机交换信息的三种控制方式

一丶I/O系统

① I/O系统组成

在这里插入图片描述
一般而言,采用接口模块方式时应用机器指令的I/O指令等,二采用管道管理,除I/O指令还必须有通道指令等
在这里插入图片描述

按键
判断哪个键按下
将此键翻译成 ASCII 码 (编码键盘法)

键盘矩阵,用计数器经过行列译码对键盘进行扫描,确定哪个键按下去了,一旦扫描到,就停止计数器计数,同时可以把计数器的输出作为一个ROM的输入地址,这个ROM保存了键盘上每个键对应的ASCII码,CPU可以对ASCII读入,这个读入通过中断方式进行,CPU读入指令,经过一段时间延迟,可以输入到中断控制装备,来清楚中断标记,可以用于再一次启动计数器,是计数器再一次对键盘进行扫描

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

I/O设备与主机交换信息和CPU与主存交换信息相比,有许多不同点
Q1: CPU如何对I/O设备编址?

通常将I/O设备码看成地址码,对I/O地址码编址可采用两种方法

  1. 统一编址 I/O地址看做存储器地址的一部分,访问I/O设备的指令与访存类似
  2. 不统一编址 I/O地址与存储器地址是分开的,对所有设备的访问用专用的I/O指令
    当设备通过接口与主机相连,CPU可以通过接口地址来访问I/O设备
Q2: 如何寻找I/O设备号?

由于每台设备都要赋予一个设备号,因此启动某一设备局时,可由I/O指令的设备码字段直接指出设备号。通过接口电路的设备选择器,便可以选中要交换信息的设备

Q3: 信息传送方式?

是逐位串行(适合远程),多位并行

Q4: I/O设备以何种方式联络,使它们彼此都知道对方处于何种状态(是否可以传送,传送是否结束)?
1.立即响应方式 :

工作速度十分慢的/O设备通常采用 CPU指令一到,它便立即响应,无需特殊联络信号

2.异步工作采用应答信号联络 :

I/O设备与主机速度不匹配通常采用,这种方式在交换信息前,I/O设备与CPU各自完成自身任务,一旦出现联络信号,彼此才准备交换信息
在这里插入图片描述

  1. 并行:CPU将数据输出到I/O接口后,接口立即向I/O设备发出一个“Ready”信号(I/O设备可以从接口内取数据),I/O设备收到“Ready”信号后,通常便立即从接口中取出数据,接着变向接口回发一个“Storbe”信号,并让接口转告CPU,接口中的数据已经被取走,同理倘若I/O设备需要向CPU传送数据,则先由I/O设备向接口送数据,并向接口发“Strobe”信号,表明数据已送出,接口接到联络信号后,便通知CPU可以取数,一旦数据被取走,接口便向I/O设备发“Ready”信号,通知I/O设备,数据已被取走,尚可继续发送数据。这种一应一答方式称为异步联络
  2. 串行:I/O设备与CPU双方设定一组特殊标记,用“起始”,“终止”来建立联系,图中9.09ms的低电平表示“起始”,2*9.09ms的高电平表示“终止”
3.同步工作采用同步时标联络:

同步工作要求I/O设备与CPU工作速度完全同步

Q5: I/O设备与主机怎么连接?
  1. 辐射式:每台I/O设备都有一套控制线路和一组信号线,不适合增删设备,早期计算机采用
  2. 总线式:通过一组总线将所有I/O设备与主机连接,现代计算机采用

二丶I/O接口

在这里插入图片描述

  1. 设备选择线传送设备码(如果把设备码看成地址码,又可成为地址线),设备选择线与设备选择电路相连,接口中的设备选择电路能够识别出自身的设备码,确定是否是某设备参与给定操作
  2. 命令寄存器用来存放I/O指令的命令码,命令线和所有接口垫啦的命令寄存器相连,它受设备选择信号控制(SEL),只有被选择的电路才可接受命令线上的命令码,
  3. 数据缓存寄存器DBR,与数据线相连,每个接口的位数可能各不相同
  4. 设备状态标志是触发器,与状态线相连(D,B,INTR,MASK…)

I/O接口分类

在这里插入图片描述


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

1. 轮询

程序查询方式是由CPU通过程序不断查询I/O设备是否准备好,从而控制I/O设备与主机交换信息,再反复询问的过程中,CPU犹如就地“踏步”,CPU没有充分利用

下图为输入过程

在这里插入图片描述
指令设备码字段传送至设备选择器,接口上的设备码与地址线吻合,则输出SEL有效,可以接受命令,经过与非门D0B1,由B触发器启动设备工作,输入设备将数据送至数据缓存寄存器,由设备发设备工作结束信号,D1B0,D触发器以准备就绪状态通知CPU,CPU执行指令,将DBR的数据送至CPU寄存器

2. 中断

倘若CPU在启动I/O设备后,不查询是否已经准备就绪,继续执行自身程序,只是当I/O设备准备就绪(比如我已经准备好和你传输数据了)并向CPU发出中断请求才予以响应,这将大大提高CPU的工作效率

在这里插入图片描述

2.1 接口电路(输入过程)

在这里插入图片描述

配置介绍: 如上图所示,为了处理中断,I/O接口电路也配置相关的硬件电路
中断请求触发器INTR

中断请求触发器 INTR,为“1”时,表示该设备向CPU提出中断请求,但是当设备想提出中断请求,设备本身需要准备就绪,即接口内完成触发器必须为”1“,上面输入过程图 中断请求触发器是分散在各个中断源的接口电路中,也可以集中在CPU的中断系统内,组成一个中断请求标记寄存器(如下图)
在这里插入图片描述

中断屏蔽触发器MASK

I/O接口中需要设置中断屏蔽触发器 MASK,为”1“时,被屏蔽,即封锁其中断源请求

可见 INTR,MASK是成对出现的,D=1准备就绪,且MASK=0未被屏蔽,CPU的中断查询信号可将INTR置”1“

排队器

中断请求原因越来越多,多个中断源发出请求,CPU任何瞬间只能接受一个中断源请求,多个出现时必须进行排队,接受最高的中断源请求

设备编码器

CPU一旦响应了I/O中断,就要暂停现行程序,转去执行该设备的中断服务程序。不同的设备有不同的中断服务程序,每个服务程序都有一个入口地址,CPU必须找到入口地址。入口地址的寻找可以通过软件或硬件实现,
所谓硬件向量法就是通过向量地址来寻找设备的中断服务程序入口地址,而向量地址是由硬件电路产生的(如上图,当然我们可以不jmp,给出入口地址,存入PC取执行也可)

2.2 输入过程 (按下图讲解):

在这里插入图片描述

中断请求

如何响应中断请求?也就是每个中断源都设置INTR中断请求标记触发器,来标记是否有中断请求
指令设备码字段传送至设备选择器,接口上的设备码与地址线吻合,则输出SEL有效,可以接受命令,经过与非门D0B1,由B触发器启动设备工作,输入设备将数据送至数据缓存寄存器,由设备发设备工作结束信号,D1B0,当D=1准备就绪,且MASK=0未被屏蔽,由CPU的中断查询信号可将INTR=1,标志着设备向CPU提出中断请求 ---------由图可知 D=1时随机的,而CPU是在统一的时刻每条指令执行阶段结束前向接口发出中断查询信号,来获取中断请求,因此CPU响应中断事件一定是在每条指令执行阶段的结束时刻

中断判优
硬件(大多数)

【多个中断请求,应该响应哪一个】与此同时,INTR送至排队器,进行中断判优

在这里插入图片描述

注:硬件实现的第一种,他分散在各个中断源的接口电路中,如输入过程的大图;

软件

在这里插入图片描述

也可以用软件进行中断判优,软件法程序查询这里不单单是中断判优,也包括了下面要说明的寻找中断服务程序入口地址的软件实现,这里按程序直接给出了入口地址

中断响应
硬件向量法

在这里插入图片描述
若CPU允许中断(EINT=1),又被排队器选中,即进入中断响应阶段,又称为中断周期(指令周期里面的一个),在中断周期内,CPU要自动完成一系列动作

  1. 保护程序断点:断点存于特点地址内,或者存入堆栈
  2. 寻找中断服务程序入口地址:由中断响应信号INTA将排队器输出送至编码器形成向量地址,向量地址送至PC,作为下一条指令地址
  3. 关中断:CPU进入中断周期,意味着CPU响应了某个中断源的请求,为了确保CPU响应后所需做的一系列操作不至于又受到新的中断请求影响,在中断周期内必须自动关中断,也就是将EINT触发器置“0”,由上图可知,排队器输出的信号有一个为1,且EINT=1,INT就为“1”,一旦INT为“1”,触发器原端输出有一个正跳变,经反相后产生一个负跳变,使EINT为“0”

上述三个操作都是在中断周期内一条隐指令(指令系统里没有的指令,是CPU中断周期内硬件自动完成)完成

软件

在这里插入图片描述

中断服务

由于向量地址是一条无条件转移指令,故这条指令结束后,无条件转至设备的服务程序入口,
开始执行中断服务程序,不同设备的中断服务程序是不同的,流程又大概相似

  1. 保护现场:保护现场有两个含义,其一是保存程序的断点;其二是保存通用寄存器和状态寄存器的内容,前者在中断隐指令完成,后者有中断服务程序完成,具体而言可在中断服务程序其实部分安排若干条存数指令,将寄存器的内容存至存储器中保存,或用PUSH将各寄存器的内容压入堆栈保存
  2. 中断服务:中断程序的主体部分,不同中断源,不同操作内容,拿接口电路输入过程来看,通过输入指令将DBR输入数据送至CPU的通用寄存器,再存入主存相关单元。
  3. 恢复现场:这是服务程序的结尾部分,通常使用取数指令或者POP,将保存在存储器(或堆栈)中的信息送回原来的寄存器中
  4. 中断返回:下面就是(这里不包括在中断服务里面)
中断返回

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

2.3 中断屏蔽技术

上面我们讲的是单重中断,而中断屏蔽技术主要用于多重中断(嵌套中断)
实现条件:

2.3.1 提前设置开中断指令

在这里插入图片描述

2.3.2 优先级别高的中断源有权中断优先级别低的中断源,采用屏蔽技术
屏蔽技术

我们已经知道集成在CPU中的排队器,如果我们加上屏蔽条件,也就组成了具有屏蔽功能的排队器,如下图
在这里插入图片描述
显然,对应每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,便构成了一个屏蔽触发器,屏蔽触发器的内容成为屏蔽字,屏蔽字与中断源的优先级是一一对应的,所以屏蔽技术可以改变处理优先级

在这里插入图片描述
需要注意的是多重中断的断点保护,堆栈可以的,但是保存到特点的单元内,会导致前面的被冲掉,所以我们需要将该单元内容转存到其他地址单元

3. DMA

虽然程序中断方式消除了程序“踏步”现象,提高了CPU的利用率,但CPU在响应中断请求后,必须停止现行程序而转入中断服务程序,并且完成I/O设备与主存交换信息,CPU作为中介没有脱离出来,还不得不占用CPU内部的一些寄存器,如果I/O设备直接可以和主存交换信息而不占用CPU,这就出现了DMA方式

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

在这里插入图片描述

3.2 DMA接口结构图与工作流程

在这里插入图片描述

ARWCBRDAR
主存地址寄存器字计数器数据缓冲寄存器设备地址寄存器
用于存放主存中需要交换数据的地址,在DMA传送过程中,每次交换一次数据,将地址寄存器的内容+1,直到一批数据传送完毕为止用于记录传送数据的总字数,通常以交换字数的补码值颠倒,每传送一个字,计数器+1,直到计数器为0,表示该批数据传送结束用于暂时每次传送的数据用于存放I/O设备的设备码或设备信息存储区的寻址信息
  • DMA控制逻辑:负责管理DMA传送过程,由控制电路,时序电路以及命令状态控制寄存器等组成,每当设备准备好一个数据字,就向DMA接口申请DREQ, DMA控制逻辑便向CPU请求DMA服务,发出总线使用权的请求信号HRQ,待CPU发出响应信号HLDA后,DMA控制逻辑便开始负责管理DMA传送的全过程,包括对AR,WC修改,识别总线地址,指定传输类型以及通知设备已被授予一个DMA周期(DACK)等
  • 中断机构:当WC溢出全“0”,表示一批数据交换完毕,由该“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA操作的后处理,使用的中断技术目的有点不同,前者是为了输入输出,而在此是为了报告一批数据传送结束
输入过程:

在这里插入图片描述

预处理
在DMA接口开始工作之前,CPU必须给他预置如下信息
① 给DMA控制逻辑指明数据传送方向是写主存,还是读主存
② 向DMA设备地址寄存器送入设备号,并启动设备
③ 向DMA主存地址寄存器送如交换数据的主存起始地址
④ 对计数器赋予交换数据的个数
上数工作由CPU执行几条输入输入输出指令完成,即程序的初始化阶段。这些工作完成后, CPU继续执行原来的程序
数据传送
当设备准备好一个字时,发出选通信号,将字读到DMA的BR中,表示BR”满“,与此同时设备向DMA接口发请求(DREQ),DMA接口向CPU申请总线控制权(HRQ),CPU发回HLDA,允许总线控制权交给DMA,将DMA的AR主存地址送至地址总线,并命令存储器写,通知设备已被授予一个DMA周期(DACK),并为下一个字做准备,将DMA的BR内容送至数据总线,主存将数据总线上的信息写至地址总线指定的存储单元中,修改主存地址和字计数值,判断是否结束,未结束,继续传送,若结束(字计数器溢出),则向CPU申请程序中断,标志数据块传送结束
后处理
当DMA的中断请求得到响应后,CPU停止原程序的执行,转去执行中断服务程序,做一些DMA的结束工作,包括,送入主存数据是否正确;决定是否继续使用DMA传送其他数据块;测试传送过程是否出错

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

在这里插入图片描述

这是应用DMA的一种总线结构

图中主存总线用于CPU与主存之间的传输;I/O总线供CPU与各类I/O设备之间传送信息;DMA总线用于高速(磁盘,磁带)与主存之间直接交换信息。三总线结构中任一时刻只能使用一种总线,主存总线和DMA总线不能同时对主存进行存取,I/O总线只有CPU执行I/O指令时才使用到

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

由上面可知主存总线和DMA总线不能同时对主存进行存取,所以我们需要控制交换信息的方式和好CPU配合
在这里插入图片描述

4. 三种方式效率的比较

在这里插入图片描述


四丶介绍具体设备—磁盘

1.结构

磁盘设备有一个或多个物理盘片,每个物理盘片有一个或者两个存储面,存储面上有若干磁道,每个磁道又分若干扇区(数据块),扇区与扇区间有扇区间隔,磁道与磁道间有磁道间隙,扇区里的不同字段有间隙

2. 格式化情况(温切斯特盘)

600个字节 ,512字节存放数据,其余放其他信息[图片来自汤小丹计算机操作系统] 下面数字为大小 单位Byte
在这里插入图片描述

Synch Byte:该字段定界符
CRC:段校验

3.磁盘访问时间

寻道时间(移到磁道)(大部分)+旋转延迟时间(移到扇区)+传输时间

4.磁盘调度算法

为了减少寻道时间
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yilyil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值