• 【组成原理 七 I/O系统】



    1. I/O系统的组成

    在这里插入图片描述
    I/O系统软件的主要任务:

    • 如何将用户编制的程序或数据输入至主机内
    • 如何将运算结果输送给用户
    • 如何实现I/O系统与主机工作的协调

    1.1 I/O 编制方式

    通常情况下将I/O设备码视为地址码,对I/O设备码的编址可以采用两种方式

    • 统一编址
    • 不统一编址

    统一编址:将I/O地址作为存储器地址的一部分.
    不统一编址:将I/O地址和存储器地址分开,所有对I/O的访问必须由专用的I/O指令.

    当设备通过接口和主机相连时,CPU可以通过接口地址来访问I/O设备

    1.2 设备寻址

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

    1.3 传送方式

    并行传送:
    在同一瞬间,N位信息同时从CPU输送至I/O设备,或由I/O设备输入到CPU的传送方式,这种方式传送速度快,要求数据线多.
    串行传送:
    同一瞬间只传送一位信息,在不同时刻连续逐位的传送一串信息. 传送速度较慢,但是由于它只需要一根数据线和底线,当I/O设备与主机距离很远时,采用串行传送较为合理.

    1.4 联络方式

    不论采用哪种传送方式,I/O设备和主机都必须互相了解彼此当时所处的状态.

    • 立即响应方式
      对于一些工作速度十分缓慢的I/O设备,CPU I/O指令一到,立即响应,无需特殊联络信号.
    • 异步工作采用应答信号联络
      当I/O设备与主机速度不匹配时,通常采用异步工作方式,这种方式在交换信息之前,I/O与CPU各自完成自身任务,一旦出现联络信号时,彼此才准备交换信息.
    • 同步工作采用同步时标联络
      I/O设备与CPU的工作速度完全同步,这时可以采用同步时标联络方式,但是这种联络之间互相还得配有专用的电路,用来产生同步时标来控制同步工作.

    1.5 I/O与主机直接的连接方式

    • 辐射式
      在这里插入图片描述

    • 总线式
      这种方式式现代大多数计算机系统所采用的方式.
      在这里插入图片描述

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

    在这里插入图片描述

    2. 外部设备

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3. I/O 接口

    接口可以看作是两个系统或两个部件之间的交接部分,它既可以是两种硬件设备之间的连接电路,也可以是两个软件之间的共同逻辑边界.
    I/O接口通常是指主机与外部设备之间设置的一个硬件电路及其相应的软件控制.

    3.1 总线的构成

    I/O总线包括 数据线,设备选择线,命令线和状态线.
    在这里插入图片描述

    3.2 接口的功能和组成

    • 选址功能
    • 传送命令的功能
    • 传送数据的功能
    • 反映I/O设备状态的功能

    在这里插入图片描述

    4. 程序中断方式

    在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,这就是"中断" .

    凡是能够向CPU提出中断请求的各种因素统称为中断源.当多个中断源向CPU提出中断请求时,CPU必须坚持一个原则,即在任何瞬间只能接收一个中断源的请求.所以,当多个中断源同时提出请求时,CPU必须对各种断源的请求进行排队,且只能接受级别最高的中断源的请求,不允许级别低的中断源中断正在运行的中断服务程序. 所以在I/O接口中需设置一个中断触发请求器和中断屏蔽触发器在I/O接口中是成对出现的.

    CPU一旦响应了I/O中断,就要暂停现行程序,转去执行该设备的中断服务程序,不同的设备有不同的中断服务程序,每个服务程序都有一个入口地址,CPU必须找到这个入口地址.

    4.1 中断服务程序的流程

    中断服务程序的处理流程:

    • 保护现场
      保存程序的断点,保存通用寄存器和状态寄存器的内容.
    • 中断服务
      中断服务程序的主体部分.
    • 恢复现场
      在退出中断服务程序之前,将原程序中断时的"现场"恢复到原来的寄存器中.
    • 中断返回
      返回到原程序的断点处,一遍执行原程序.

    4.2 多重中断(中断嵌套)和单重中断

    计算机在处理中断的过程中,有可能出现新的中断请求,此时如果CPU暂停现行的中断服务程序,转去处理新的中断请求,这种现象叫做多重中断(中断嵌套) .

    倘若CPU在执行中断服务程序时,对新的中断不予理睬,这种中断叫做单重中断.

    4.3 程序中断方式

    程序中断方式克服了程序查询方式中的CPU原地踏步的现象,实现了宏观上CPU 和I/O并行工作,提高了CPU的资源利用率,但从微观操作分析,CPU在处理中断服务程序时,仍然需要暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器需要频繁地,成批量性的与主存交换信息时,不断的打断CPU执行主程序而执行中断服务程序. 为了解决这个问题,人们探索出了新的程序执行方式:DMA

    5. DMA方式

    5.1 DMA方式与中断方式数据通路的比较

    在这里插入图片描述
    由此可见,由于主存和DMA接口之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场的动作,因此CPU的工作速度比程序中断方式要快. 这一特点特别特别适合与高速I/O或辅存与主存之间的信息交换.

    此外,在DMA方式中,由于DMA接口与CPU共享主存,这就有可能出现两者争用主存的所带来的冲突问题,为了有效地分时使用主存,DMA通常与主存交换数据时可采用如下三种方式:

    • 停止CPU访问主存
    • 周期挪用(周期窃取)
    • DMA与CPU交替访问

    5.2 DMA接口的功能和组成

    DMA接口应该具备以下几个功能

    • 向CPU申请DMA传送
    • 向CPU允许DMA工作时,处理总线控制权的转交,避免因进入DMA工作而影响CPU正常活动或引起总线竞争
    • 在DMA期间管理系统总线 控制数据传送
    • 确定数据传送的起始地址和数据长度,修正数据传送过程中数据的地址和数据长度
    • 在数据块传送结束时,给出DMA操作完成的信号

    5.2.1 DMA接口组成原理图

    在这里插入图片描述

    AR:主存地址寄存器
    WC:字计数器
    BR:数据缓冲寄存器
    DMA控制逻辑:负责管理DMA传送过程
    中断机构:报告一批数据传送结束
    DAR:设备地址寄存器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5.2.2 DMA工作过程

    • 预处理
      • 给DMA控制逻辑指明数据的传送方向
      • 向DMA设备地址寄存器送入设备号,并启动设备
      • 向DMA主存寄存器送入交换数据的主存起始地址
      • 对字计数器赋以交换数据的个数
    • 数据传送
      DMA方式是以数据块为单位传送的
    • 后处理
      当DMA的中断请求得到响应后,CPU停止原程序的执行,转去执行中断服务程序,做一些DMA的结束工作.

    5.2.3 DMA接口与系统的连接方式

    • 独立的DMA请求方式
      在这里插入图片描述

    • 公共请求线的DMA请求方式
      在这里插入图片描述

    5.3 DMA接口类型

    • 选择型DMA接口
    • 多路型DMA接口

    6. 中断方式和DMA方式区别

    • 从CPU响应时间来看,程序中断方式是在一条指令执行结束时响应,而DMA方式可以在指令周期内的任一存取周期结束时响应
    • 程序中断方式有处理异常事件的能力,DMA方式没有这种能力,它主要用于大批量的传送,可以提高数据的吞吐量
    • 程序中断方式要中断现行程序,故需要保护现场,DMA方式不中断现行程序,无需保护现场
    • DMA的优先级比程序中断高
  • 相关阅读:
    Git Flow的简单使用
    Java当中聊一聊String吧
    解决ERROR: No query specified的错误以及\G 和 \g 的区别
    初学yolov5。
    【MySQL】数据库基础
    运行disco项目报错及解决
    lammps教程:CNA晶体结构分析命令
    JavaEE——SpringBoot项目常见的依赖包及其作用
    差分运算放大器的放大倍数的计算及结论
    使用树莓派连接摄像头与实时视频
  • 原文地址:https://blog.csdn.net/yuqian_ke/article/details/126165948