《计算机组成原理》第八章复习—输入输出系统

第八章 输入输出系统

8.1 I/O接口

I/O接口是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。主机和外设具有各自工作特点,它们在信息形式和工作速度具有很大地差异,接口就是为了解决这些差异而设置的

I/O接口一般有多个寄存器:

  • 数据寄存器:保存设备的输出或计算机的输出
  • 控制寄存器:计算机需要控制设备做出操作,要做的操作存在这里
  • 状态寄存器:设备完成操作后,需要告诉计算机当前的状态。

preview

I/O端口的编制方式

  • 存储器统一编址

    把I/O端口当作存储器的单元进行地址分配。这样CPU不需要设置单独的I/O指令就可以访问I/O端口

  • 独立编址

    单独对I/O端口进行编址。与主存地址空间是两个独立的地址空间,需要设置专门的 I/O 指令来操作 I/O 端口。

8.2 I/O方式

I/O信息交换的方式有四种:程序查询方式,程序中断方式,DMA(直接内存访问)方式和通道方式。这部分在操作系统课中均有涉及,可以结合操作系统进行复习。

课本上对四种方式的形象说明我觉得很生动。这里我把课本的说明复述一遍。

  • 软件实现

    程序查询方式:她先从糖果包里面给孩子甲一块糖,盯着甲吃完,然后再给第二块。接着给孩子乙,其过程与孩子甲完全一样。依次类推,直至到 第10个孩子发完两块糖。看来这种方法效率太低,重要之点还在于孩子们吃糖时她一直在守候,什么事也不能干。

    程序中断方式:她先从糖果包里面拿一块糖发给每个小朋友去吃,并约定谁吃完后就向她举手报告,再发第二块。看来这种新方法提高了工作效率,而且在未接到孩子们吃完糖的报告以前,她还可以腾出时间给孩子们改作业。

  • 硬件实现

    DMA方式:每个人从老师那里拿两块糖去吃,吃完再向老师打报告(CPU允许I/O设备直接与内存进行交互)

    通道方式:老师把糖果包交给另一个人,让另一个人代她发糖,直到糖果包没有糖再向她报告。(CPU下放权力,设置专门的通道来进行处理)

8.2.1 程序查询方式

1.设备编址

  • 统一编址

    输入/输出设备中的控制寄存器、数据寄存器、状态寄存器等和内存单元一样看待,它们和内存单元联合在一起编排地址。这样就可用访问内存的指令(读、写指令)去访问I/O设备的某个寄存器,因而不需要专门的I/O指令组。

  • 单独编制

    内存地址和I/O设备地址是分开的,访问内存和访问I/O设备使用不同操作码的指令,即访问I/O设备有专门的I/O指令组。

2.输入输出指令

  • 置“0”或置“1”

    I/O接口的某些控制触发器,用于控制设备进行某些动作,如启动、关闭设备等。

  • 测试设备的某些状态

    判断设备是否处于“忙”、“准备就绪”等。

  • 传送数据

3.程序查询接口

接口作为一个转换器,负责进行CPU与IO设备的数据交换。其主要由三部分组成:

  • 设备选择电路

    接到总线上的每个设备预先都给定了设备地址码。CPU执行I/O指令时需要把指令中的设备地址码送到地址总线上,用以指示CPU要选择的设备。每个设备接口电路都包含一个设备选择电路,用它判别地址总线上呼叫的设备是不是本设备。

  • 数据缓存寄存器

    存放CPU与I/O设备交互的数据(用来弥补CPU和IO设备的速度差异)

  • 设备状态标志

    接口中的标志触发器,如“忙”、“准备就绪”、“错误”等,用来标志设备的工作状态,以便接口对外设动作进行监视。

在这种控制方式下,CPU一旦启动I/O,就必须停止现行程序的运行,并且必须等到所有的I/O都被满足后才切换到被停止的程序,无法等待外设时进行别的工作。在一段时间内CPU只能同一台外设交换信息。

8.2.2 程序中断方式

中断和异常的概念

中断源:能够向CPU发出中断请求的事件

异常:CPU内部异常引起的意外事件,分为硬故障中断和程序性异常。硬故障中断包括:电源掉电、零件损坏。程序性异常又称为软中断,例如溢出、整除0、地址越界、缺页、用户态到核心态的切换等。

异常是表示CPU本身工作出现的问题而引入的

中断:分为内中断和外中断。外中断是指来自CPU外部,与CPU执行指令无关事件引起的中断,包括I/O设备发出中断、外部信号中断(用户摁下Esc)等。

一般来说中断都指的是外中断,即外因引起的中断

中断是为了CPU与I/O并行工作而引入的

程序中断的名词术语

首先注意以下几个问题:

  • 响应中断时机:外界中断请求是随机的,当CPU陷入一个中断后如何处理之后的中断请求

  • 断点保护:保存当前PC,寄存器内容和状态的信息

  • 原子操作:开中断和关中断

    关中断是指CPU在保护断点和现场的过程中,CPU不能相应更高级中断源的中断请求

  • 中断是由软硬件结合起来实现的

  • 中断向量:每个中断服务程序都有一个入口地址,即中断向量。而中断向量地址是指中断服务程序的入口地址的地址(类似指针)。当CPU响应中断后,会由中断硬件将中断向量地址传送到CPU。

中断基本I/O接口

  • 准备就绪标志RD:一旦设备做好一次数据的接受或发送,便将RD置1,简称中断触发器
  • 允许中断触发器EI:判断是否允许设备向CPU发送中断请求
  • 中断请求触发器IR:用来暂存设备发出的中断请求信号
  • 中断屏蔽触发器IM:是CPU是否处理外界中断的标志。

中断处理流程

在这里插入图片描述

①关中断。因为接下来要进行保存断点和现场,不可以被新的中断打断

②保存断点和现场。断电指的是PC和PSW

③寻找中断源。通过有两种方法寻找中断服务程序的入口地址:硬件向量法和软件查询法

④开中断。

⑤执行中断服务程序。

⑥关中断。保证在恢复现场和屏蔽字时不被中断

⑦恢复现场的屏蔽字。

⑧开中断。

⑨中断返回。

多级中断

在这里插入图片描述

若CPU在执行中断服务程序的过程中,又出现了新的更高优先级的中断请求,此时CPU就要保存当前执行的中断,去执行更高优先级的中断请求。

CPU要具备多重中断的功能,必须满足以下条件:

  • 在中断服务程序中提前设置开中断指令
  • 优先级别高的中断源允许中断优先级别低的中断源

对于多级中断,着重说明以下几点:

  • 一个系统若有n级中断,在CPU中就有n个中断请求触发器总称为中断请求寄存器;与之对应的有n个中断屏蔽触发器,总称为中断屏蔽寄存器
  • 多级中断中每一个优先级可以有多个或者一个中断源,但同级的中断源之间不可以中断彼此,只能排队依次处理
  • 硬件逻辑实现中断源优先级的仲裁
  • 采用堆栈保存现场,各级的现场可以按顺序保存在同一个栈

中断控制器

8259中断控制器是一个集成电路芯片,它将中断接口与优先级判断等功能汇集于一身,常用于微型机系统。

8259的中断优先级选择方式有四种:

  1. 全嵌套方式:是一种固定优先级的方式, I R 0 IR_0 IR0优先级最高, I R 7 IR_7 IR7优先级最低
  2. 轮换优先级方式A:每个级别的中断保证有机会被处理,将给定的中断级别处理完后,立即把它放到最低级别的位置上去。
  3. 轮换优先级方式B:要求CPU可在任何时间规定最优优先级,然后顺寻地规定其他IR线上地优先级
  4. 查询方式:由CPU访问8259的中断状态寄存器,一个状态字能表示出正在请求中断的最高优先级IR线,并能表示出中断请求是否有效

8259提供了两种屏蔽方式:

  • 简单屏蔽方式:提供8位屏蔽字,每位对应着各自的IR线。被置位的任一位则禁止了对应IR线上的中断
  • 特殊屏蔽方式:允许CPU让来自低优先级的外设中断请求去中断高优先级的服务程序。这样不止屏蔽了当前正在处理的这级中断,而且开放了其他级别较低的中断。
8.2.3 DMA方式

DMA方式的基本概念

直接内存访问(DMA)是一种完全由硬件执行I/O交换的工作方式。DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存I/O设备之间进行。

DMA在工作的过程中,不需要保存现场,回复现场。其内存地址修改和计数传送字是由眼见实现。所以DMA速度更快,更能发挥CPU的效率。

DMA过程描述

  • 由DMA控制器给出当前正在传送的数据的主存地址,并统计传送数据的个数以确定一组数据的传送是否已结束。
  • 在主存中要开辟连续地址的专用缓冲器,用来提供或接收传送的数据
  • 在数据传送前和结束后要通过中断方式对缓冲器和DMA控制器进行预处理和后处理

DMA传送方式

因为DMA和CPU都会访问内存,而同一时间能只允许一个设备访存,那么DMA控制器和CPU怎么分时使用内存呢?

  • CPU暂停方式

    在这里插入图片描述

    主机响应DMA请求后,让出存储总线,直到一组数据传送完毕后,DMA控制器才把总线控制权交还给CPU。

    • 优点:控制简单,它适用于数据传输率很高的设备进行成组传送
    • 缺点:当DMA控制器访存的时候,外围设备传送数据到DMA控制器上的时间大于内存存储周期,这样就会浪费一部分内存存储周期。
  • 周期挪用

    在这里插入图片描述

    DMA控制器与主存储器之间传送一个数据,挪用一个或多个CPU周期,即CPU暂停工作一个或多个周期,然后继续执行程序。

    若挪用周期的时候CPU正在访问内存,这种情况下I/O设备访内优先,因为I/O访内有时间要求,前一个I/O数据必须在下一个访内请求到来之前存取完毕。

    • 优点:既实现了I/O传送,又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。
    • 缺点:所以传送一个字对内存来说要占用一个周期,但对DMA控制器来说一般要2—5个内存周期。因此周期挪用的方法适用于I/O设备读写周期大于内存存储周期的情况。
  • DMA与CPU交替访内

    在这里插入图片描述

    这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时进行的。

    CPU和DMA控制器各自有自己的访内地址寄存器、数据寄存器和读/写信号等控制寄存器。CPU和DMA在属于自己的工作周期中独立工作,总线的控制权是通过一个定时多路转换器,互不影响。

    • 优点:CPU既不停止主程序的运行,也不进入等待状态。减少了总线操作,效率高
    • 缺点:硬件逻辑复杂

DMA控制器的基本组成

在这里插入图片描述

  • 内存地址计数器:用于存放内存中要交换的数据的地址。在DMA传送前,通过程序将数据在内存中的起始位置(首地址)送到内存地址计数器。而当DMA传送时,每交换一次数据,将地址计数器加“1”,从而以增量方式给出内存中要交换的一批数据的地址。

  • 字计数器:用于记录传送数据块的长度(多少字数)。在DMA传送时,每传送一个字,字计数器就加“1” ,当计数器溢出即最高位产生进位时,表示这批数据传送完毕,于是引起DMA控制器向CPU发中断信号。

  • 数据缓冲寄存器:用于暂存每次传送的数据。当输入时,由设备(如磁盘)送往数据缓冲寄存器,再由缓冲寄存器通过数据总线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器,然后再送到设备。

  • DMA请求标志:每当设备准备好一个数据字后给出一个控制信号,使“DMA请求” 标志置“1”。该标志置位后向“控制/状态”逻辑发出DMA请求,后者又向CPU发出总线使用权的请求(HOLD),CPU响应此请求后发回响应信号HLDA,“控制/状态”逻辑接收此信号后发出DMA响应信号,使“DMA请求”标志复位,为交换下一个字做好准备。

    CPU与控制\状态逻辑进行通信

  • 控制/状态逻辑:由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对“DMA请求”信号和CPU响应信号进行协调和同步。

  • 中断机构:当字计数器溢出时,意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告。这里的中断与上一节介绍的I/O中断所采用的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一组数据传送结束。

DMA数据传送过程

DMA的数据块传送过程可分为三个阶段:传送前预处理,正式传送,传送后处理

在这里插入图片描述

  1. 预处理:由CPU完成一些必要的工作:执行几条输入输出指令,测试设备状态,向DMA控制器的设备地址寄存器中送入设备号并启动设备,向内存地址计数器中送入起始地址,向字计数器中送入交换的数据字个数。在这些工作完成后,CPU继续执行原来的主程序。
  2. 数据传送:当外设准备好发送数据(输入)或接受数据(输出)时,它发出DMA请求,由DMA控制器向CPU发出总线使用权的请求(HOLD)。对于以数据块为单位的传送,每次DMA控制器占用总线后,无论是数据输入操作,还是输出操作,都是通过循环来实现的。当进行输入操作时,外围设备的数据(一次一个字,此时并不中断CPU)传向内存;当进行输出操作时,内存的数据传向外围设备。
  3. 后处理:DMA向CPU发出中断请求。一旦DMA的中断请求得到响应,CPU停止主程序的执行,转去执行中断服务程序做一些DMA的结束处理工作。这些工作包括校验送入内存的数据是否正确;决定继续用DMA方式传送下去,还是结束传送;测试在传送过程中是否发生了错误等等。

DMA的数据传输可以以单字节(或字)为基本单位,也可以以数据块为基本单位

DMA和程序中断方式的区别

  • 中断方式需要反复保护和回复现场;而DMA除了预处理和后处理,其他时候不占用CPU资源
  • 对中断请求的响应只能发生在每条指令执行完毕后(执行周期后);而对DMA请求的响应可以发生在每个机器周期接受后(取指、间址、执行周期后)
  • 中断需要CPU干预;DMA不需要CPU干预
  • DMA优先级高于中断请求
  • 中断方式靠程序传送;DMA靠硬件传送
  • 中断可以处理异常事件;DMA仅能对数据块进行I/O操作
8.2.4 通道方式

这部分不是很重要,大家稍微看看就行

通道的基本概念

通道是计算机系统中代替CPU管理控制外设的独立部件,是一种能执行有限I/O指令集合—通道命令的I/O处理机

在通道控制方式中,一个主机可以连接几个通道。每个通道又可连接多台I/O设备,这些设备可具有不同速度,可以是不同种类。

通道与DMA的异同点:

  • 都能在I/O设备和主存之间建立数据传输通路
  • DMA只能实现固定的数据传送控制,而通道有自己的指令和程序,具有更强的独立处理数据输入和输出的能力
  • DMA只能控制一台或少数同类设备,而一个通道可以同时控制多台同类或不同类设备

本章小结

  • 各种外围设备的数据传输速率相差很大。如何保证主机与外围设备在时间上同步,涉及外围设备的定时问题。在计算机系统中,CPU对外围设备的管理方式有:①程序查询方式;②程序中断方式;③DMA方式;④通道方式。每种方式都需要硬件和软件结合起来进行

  • 程序查询方式是CPU管理I/O设备的最简单方式,CPU定期执行设备服务程序,主动来了解设备的工作状态。这种方式浪费CPU的宝贵资源

  • 程序中断方式是各类计算机中广泛使用的一种数据交换方式。当某一外设的数据准备就绪后,它“主动”向CPU发出请求信号。CPU响应中断请求后,暂停运行主程序,自动转移到该设备的中断服务子程序,为该设备进行服务,结束时返回主程序。中断处理过程可以嵌套进行,优先级高的设备可以中断优先级低的中断服务程序

  • DMA技术的出现,使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续程序。DMA方式采用以下三种方法:①停止CPU访内;②周期挪用;③DMA与CPU交替访内。DMA控制器按其组成结构,分为选择型多路型两类(这部分没整理出来,大家可以结合ppt和课本看一看)

  • 通道是一个特殊功能的处理器。它有自己的指令和程序专门负责数据输入输出的传输控制,从而使CPU将“传输控制”的功能下放给通道,CPU只负责“数据处理”功能。这样,通道与CPU分时使用内存,实现了CPU内部的数据处理与I/O设备的平行工作。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值