计组:五、输入输出系统

计算机硬件系统:CPU、存储器、输入输出系统。

  • I / O 与主机交换信息的三种方式

    • 程序查询
    • 中断
    • DMA
    • IO通道
    • IO处理机

输入输出系统的发展历程

  • 早期阶段:IO设备 与 主存交换信息都必须通过 CPU。即分散连接(各部件之间使用单独的连线)。
    在这里插入图片描述
    ,—

  • 特点:

    • 每个IO设备都有一套独立的逻辑电路与CPU相联,线路十分复杂。
    • 输入输出的过程穿插在CPU执行指令的过程中。IO与主存交换信息时,CPU停止自己的工作。即 IO设备 和 CPU 是串行工作的。
    • 由于每个 IO设备 都是和 CPU 以独立的线路相连,所以增加、撤除、更换IO设备十分的麻烦。连在 CPU 上的 IO 数目不多交换信息量少
  • 接口模块和 DMA 阶段

    • IO设备 通过接口模块、总线与主机连接。
      在这里插入图片描述
      ,—
    • 接口:内部设有数据通路和控制线路。功能有1、速度匹配缓冲;2、串并转换,via sw or hw;3、将CPU的控制信号传给IO设备,将IO设备的反馈信号传给CPU;4、参与中断请求处理;5、选址,使总线上多台IO设备分时占用总线,实现并工。
    • 接口实现的不是绝对的并行工作:CPU工作 — IO设备与主存交换信息 是通过中断来实现。
    • 直接存储器存取DMA:IO设备和主存之间有一条独立的数据通路。使得IO和主存在交换数据时,CPU 能够做一些不用访存的工作。
  • 通道结构阶段

    • 小微型计算机中采用DMA可以实现高速IO和主存交换信息;但中大型计算机系统中,IO设备很多,DMA已经不再合适---->硬件成本,控制复杂,容易冲突,此时若采用DMA进行频繁数据交换,会影响CPU的工作。
      在这里插入图片描述
      ,—
    • 通道:视为一种特殊功能、不完全独立于CPU 的处理器;具有 CPU 的部分权力。有专门的通道指令(又叫通道控制字,保存在主存中,由通道从主存取出、执行);通道能独立执行由通道指令编写的输入输出程序。IO设备 与主存交换信息时,由通道来负责,CPU不在直接参与管理。效率提高,硬件成本上升

,–

在这里插入图片描述

,–

  • IO处理机阶段
    • 是通道方式的进一步扩展,CPU 将 IO操作 和 外设 的管理权全部交给IO处理机。本质是多机系统

    • 基本独立于主机工作,与 CPU 的并行性更高。例如可以采用微处理器来作为 IO处理机。带有处理机的终端叫做智能终端

输入输出系统的组成

  • 总体上分为 SW 和 HW。其中 SW 包括 IO指令通道指令

  • IO SW

    • 功能:数据的输入输出,IO设备 与 主机的协调工作
    • IO SW 可以分为 IO指令和通道指令
    • IO指令:是机器指令 / CPU指令的一部分,IO指令的字长与其它的机器指令相同。格式是:操作码 + 命令码 + 设备码。操作码:用来区别 IO指令和其他指令(访存、算逻、控制指令等)。设备码:用来选择多台 IO设备中的某一台,相当于设备地址。命令码:说明 IO设备的具体操作,如输入到哪里、从哪里输出、状态测试(设备忙/闲)、操作具体 IO设备的指令。
    • 通道指令:又叫通道控制字。针对具有通道的 IO系统专门设置的指令,通道自身的指令。此类 IO系统有自己的控制器。功能是:指明主机参与的地址,命令码,设备码。一旦CPU启动IO设备,就由通道来代替 CPU 来对IO设备进行管理。

,–
在这里插入图片描述

,–

  • IO HW

    • 一般是接口模块,IO设备

    • 对于通道,一个通道可以和多个设备控制器相连,一个设备控制器可以连接多个同类设备。
      在这里插入图片描述
      ,—

    IO设备与主机的联系方式

  • IO设备的编址方式:把 IO设备码看作地址码。有两种方式:统一编址不统一编址。
    统一编址:将 IO地址 看做存储器地址的一部分。因此 访问IO 的指令与 访存 指令类似,无需专门的 IO访问指令;但统一编址占用了主存空间
    不统一编址:IO地址和主存地址是分开的,不占用主存的容量,但访问 IO需要专门指令

  • IO设备的寻址
    利用设备选择电路来确认设备号选择哪一个IO。
    IO指令格式为:操作码 + 命令码 + 设备码。在设备码字段指出设备号。

  • 传送方式
    串行—>速度慢,支持远距离;
    并行—>速度快,不支持远距离并且需要较多的数据线。

  • 联络方式:立即响应方式、异步—>应答、同步—>时标
    立即响应方式:适用于工作速度缓慢的 IO设备,通常使其处于准备/等待的状态与 CPU 联络。CPU 的 IO指令 一到,此类IO设备便立即响应。
    应答信号联络—>异步工作:IO设备的速度与主机工作速度不匹配时,并行异步工作方式为一应一答的方式;而串行异步采用两组特殊标记来表示起始和结束。
    同步时标—>同步工作:要求IO设备 与 CPU的速度完全同步。还要配有专门的电路来产生同步时标

  • IO设备 与主机的连接方式:
    辐射式:每台IO设备都有控制线信号线与主机相连。初级阶段。
    总线式:通过一组总线将所有的 IO 与总线连接。
    ,–

在这里插入图片描述

,–

IO设备与主机信息传送的控制方式

  • 共有五种:程序查询、程序中断、DMA方式、IO通道方式、IO处理机方式。下面介绍前三种。
  • 程序查询:主机启动IO后,通过程序不断查询IO设备是否准备就绪。在IO接口内设置一个反映状态是否就绪的标记,CPU的查询就是不断检测这个标记。

,–
在这里插入图片描述

,–
程序查询,CPU和IO是完全串行工作,效率很低。

  • 程序中断方式
    CPU启动了IO设备后,不查询设备是否已经准备好,继续执行自身程序;IO设备准备好后向CPU发出中断请求后才予以相应。CPU在每一条指令执行结束后查询中断,若有则执行中断服务程序(CPU从IO接口读一个字送到主存)执行完返回原程序断点,接着执行下一条指令。
    如果传送的是一批数据,CPU则会在读完一个字后向IO设备发送启动信号,然后做自己的事情,等待中断;如此循环,直到这批数据传送结束。
    ,-

在这里插入图片描述

,-
在这里插入图片描述

,-

  • DMA方式:IO设备直接与主存交换信息,不占用CPU;主存与IO设备之间有一条数据通路
    DMA方式虽然不占用CPU,但是DMA和CPU不能同时访问主存,若二者同时访问主存,DMA的总线占有权优先级较高。把这种DMA对总线的占有称为窃取 / 挪用。窃取的时间一般为一个周期。虽然此时DMA占用了总线,但CPU仍能进行内部运算(如乘法运算)。
  • 三种方式的比较

,-

在这里插入图片描述

,-

I/O接口

概述

  • 接口:两个系统/部件之间的交界部分。可以是两种硬件设备的连接电路;也可以是两个软件之间的共同逻辑边界
  • I/O 接口主机IO设备之间设置的一个硬件电路及其相应的软件控制。
  • 设置IO设备的原因
    1、一台机器通常有多个IO设备,有各自的设备号/地址,通过接口来选择设备/选址
    2、各个IO设备、CPU的工作速度不一样,通过IO接口来实现数据缓冲速度匹配。
    3、有些IO设备是串行传送数据,而CPU一般是并行传送数据,通过接口可实现 串 - 并转换。串并转换可以由 SW 或者 HW 来实现
    4、IO设备 和 CPU 的输入输出电平可能不同,通过 IO接口来实现电平转换
    5、CPU 对 IO设备的控制命令通过 IO接口来传送。IO设备 向 CPU 传递反馈信号(自身状态)。
  • 接口(interface)和端口(port)的区别:
    1、端口一般是指接口电路中的一些寄存器,包括数据端口,控制端口,状态端口;分别用来存放 数据信息,控制信息,状态信息
    2、接口是由若干个端口加上相应的控制逻辑组成的。
  • IO接口分类
    1、按数据传送方式:并行接口、串行接口
    2、按功能选择的灵活性:可编程接口和不可编程接口;可编程接口的功能可以由程序来改变或者选择;不可编程接口的功能可由硬连线逻辑来选择或改变。
    3、按通用性:通用接口、专用接口
    4、按数据传送的控制方式:程序型接口、DMA型接口。程序型接口用于连接速度较的IO设备,利用程序中断的方式来与CPU交换信息;DMA型接口用于连接高速IO设备。

程序查询方式

  • 核心是启动IO设备后每时每刻不断查询IO设备是否准备就绪。
    当系统里有多个IO设备时,需要按各个IO设备在系统中的优先级逐级查询。

,–
在这里插入图片描述

,–
程序查询方式在传送过程中需要占用CPU内部的寄存器,所以传送前需要先将寄存器原内容保护起来。
计数值用来记录剩余要传送的字节数。
输入时:IO设备准备就绪就是接口电路的数据缓冲寄存器 DBR 已装满。输入缓冲满。CPU可以取走数据。
输出时:IO设备准备就绪就是接口电路中 DBR的数据已经被 IO设备 取走。输入缓冲空。CPU可以将下一个数据送入DBR。

程序中断方式

  • 适用于速度较慢的IO设备。

,–
在这里插入图片描述

,–

  • 当计算机正在运行时,出现突然掉电这种异常情况,CPU中的信息会丢失,利用中断技术在掉电瞬间启动另一个电源,将有用信息转移到非易失的存储介质中。
    中断在实时控制领域也有广泛使用。

  • 中断源:能向CPU提出各种中断请求的设备。

  • 入口地址的寻找可以通过硬件或软件的方法来完成。

    • 硬件向量法:由硬件电路来产生向量地址;通过向量地址来寻找设备的中断服务程序入口地址

,–
在这里插入图片描述

,–

  • 中断服务程序的流程
    1、保护现场:由中断隐指令(硬件电路)来保存程序的断点
    2、中断服务:首先保护寄存器的内容;然后不同的中断源,中断服务操作内容也是不同的。;由中断服务程序来保存寄存器的内容
    3、恢复现场退出中断服务程序,恢复寄存器的值。(利用取数指令或者POP指令)
    4、中断返回:返回断点,继续执行原程序。

DMA方式

  • IO设备与主存交换信息不经过CPU,省去了保护现场、恢复现场
    适用于高速IO 和主存交换信息;
    DMA的优先级 高于程序中断。
  • DMA 的总线优先权高于 CPU,当二者同时访存时,每次 DMA 通过周期窃取占用一个存取周期
    三种方式来安排主存的使用权:
    1、停止CPU访存:DMA在访存时,CPU处于保持/不工作状态;DMA的准备时间也远大于一个存取周期,主存的利用率低
    如软盘读一个八位二进制数要 32 us ,三半导体存储器的存取周期远小于 1 us;在这 32 us时间里,主存基本空闲,CPU也不能访存,主存利用率较低
    2、周期挪用/窃取:每次IO设备发出 DMA请求,IO设备便 挪用/窃取 一个或几个主存周期。IO访存优先于CPU—>IO设备不立即访问主存传出数据,就有可能丢失数据。
    这种方法需要总线使用权的申请、建立和归还步骤。
    本方法较为广泛应用。
    3、DMA 和 CPU交替访问:适用于CPU的工作周期主存存取周期长的情况。那么可将CPU的每一个工作周期一分为二,前半周期 C1 专供DMA访存,后半周期 C2 供CPU访存。
    总线使用权由 C1 和 C2分别控制,总线控制权的转移不需要什么时间,但硬件电路会变得复杂。
  • 目前常采用 DMA控制器 控制多个IO设备:可分为选择型多路型
    选择型适合 数据传输率很高的设备。
    多路型适合 同时为多个慢速设备服务,可进一步分为链式多路独立请求方式多路

,-

在这里插入图片描述

,-

  • DMA的工作过程:预处理,数据传送,后处理
    其中数据传送完毕后,回想CPU申请程序中断,进入中断服务程序,执行后处理

习题补充

  • CPU在每个指令周期结束采样中断请求信号
    CPU在每个存取周期结束采样DMA的总线请求信号
  • 一次中断的流程
    中断请求 -----> 中断判优 -----> 中断响应 -----> 中断服务 -----> 中断返回
  • 中断响应时需要保护现场:
    1、保护 程序计数器(PC),由 硬件自动 / 中断隐指令 实现。
    2、保护 寄存器内容,由中断服务程序实现。
  • 中断接口电路通过 数据总线 将向量地址送至CPU。
  • 单重中断服务程序流程:关中断 -----> 保护现场 -----> 中断服务 -----> 恢复现场 -----> 开中断 -----> 中断返回
    多重中断服务程序流程:关中断 -----> 保护现场 -----> 开中断 -----> 中断服务 -----> 恢复现场 -----> 中断返回
  • 硬件向量法:由硬件产生向量地址中断排队电路的输出到设备编码器,又来形成向量地址。再传到PC,从而执行中断服务程序。

,–
在这里插入图片描述

,–

  • 程序中断方式的中断请求用于数据传送;靠程序来传送数据。
    DMA方式的中断请求用于后处理(如校验数据)。靠 HW 来传送数据。
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值