计算机组成原理——IO

IO:

概述:

  • IO的发展:

    • 早期:
      分散连接 每一个设备有专门的控制电路(增删麻烦)
      CPU和IO串行工作 程序查询方式
    • 接口模块和DMA阶段
      总线连接
      CPU和IO并行工作 中断方式和DMA方式
    • 具有通道结构的阶段
      一个小型的处理器,只用来管理IO
    • 具有IO处理机的阶段
      甚至当IO不工作,IO处理器可以分担CPU的一部分工作
  • 组成:

    • IO软件
      IO指令 在CPU中,用来控制IO的指令

      • 分为操作码(表示是IO指令),命令码(具体那条指令),设备码(IO地址)

      通道指令 通道自己的指令

      • 指出数据开始位置,传输字数,操作命令
    • IO硬件

      • 设备
      • IO接口
    • IO和主机之间的联系方式

      • IO设备编址

        • 统一编址,IO设备地址为内存中的一个,用取数,存数指令就可以完成CPU和IO的交流
        • 单独编址,输入输出指令使用了作用的IO指令
      • 设备选址

        • 使用设备选择电路识别是否被选中
      • 传送方式

        • 串行
        • 并行
        • 也就是说和主机之间是并行还是串行
      • 联络方式

        • 立即响应
        • 异步工作采用应答信号
        • 同步工作方式
          • 使用时标的方式
      • 连接方式

        • 辐射式连接
          在这里插入图片描述也就是分散连接
        • 总线连接
          外部设备通过接口和主机连接,接口可以给主机传送控制命令,数据缓存(外部输入时缓存到接口中,完成格式转换等工作),便于增删设备
    • IO与主机信息传送的控制方式

      • 程序查询方式
        在这里插入图片描述
        当程序调用io,CPU一直查询设备的状态字,查看是否准备好了,当准备好了就从io接口读出字到CPU中。
      • 程序中断方式
        • IO设备在准备的过程中,CPU不工作,只有在交换数据的时候CPU才打断现行程序开始工作在这里插入图片描述可以部分并行工作
      • DMA方式
        • 主存和IO之间有一条直接数据通路
        • 不中断现行程序
        • 周期挪用(周期窃取)
          在这里插入图片描述窃取的是总线的使用权,因为有一些指令被存放入cache中,所以只要执行的指令不需要访存就可以不中断CPU执行,CPU和IO并行工作

IO接口:

  • 概述:为什么要接口
    • 实现设备选择
    • 实现数据缓冲,达到速度匹配目的
    • 数据串-并格式转化
    • 电平转化
    • 传送控制命令
    • 反映设备的状态(“忙”,“中断请求,“就绪”)
  • 功能和组成
    • 总线连接
      在这里插入图片描述
    • 功能组成:
      在这里插入图片描述完成触发器用于确定当前设备是否完成了工作;工作触发器用于发出工作命令;中断请求触发器用于对CPU发出中断;屏蔽触发器用于表示的是主机当前的工作比IO的中断工作重要,这时即使IO设备发出中断,接口也不会向主机提出。

在这里插入图片描述

程序查询方式:

  • 流程
    • 单个设备
      在这里插入图片描述
      不断查询这个设备接口
    • 多个设备
      在这里插入图片描述
      按照一定的优先级,查询各个接口
    • 实现程序查询的过程:
      保存寄存器内容
      设置计数值,控制传输数据量 每完成一个字的传输就-1
      设置主存缓冲区地址
      启动外设
      询问IO是否准备好,否持续查询,是下一步
      传送下一个数据
      修改主存地址
      修改计数器值,判断是否传输完,没有则循环到启动外设步骤在这里插入图片描述
  • 接口电路
    在这里插入图片描述设备选择电路通过将自己的设备地址和地址线上的地址比较,这里主要是地址线
    当被选中和被启动 命令线
    标记D为0,表示数据未准备好,标记B为1,表示设备被启动
    CPU开始不断查询D信号
    设备准备好数据,将数据输入DBR中
    设备工作结束信号被送入
    标记D被改为1,标记B为0

程序中断方式:

  • 中断的概念:
    在这里插入图片描述

  • 接口电路:
    中断请求触发器,中断屏蔽触发器,排队器,中断向量地址形成部件,IO基本电路在这里插入图片描述图中我们可以看到,当只有D为正逻辑(IO完成工作),MASK为负逻辑(中断未被屏蔽),且当收到CPU的查询信号是,中断请求才发出

    • 中断排队器

      • 可以通过硬件和软件实现
      • 硬件放在CPU或接口电路中(链式排队器)在这里插入图片描述在这里插入图片描述紫色为低电平,黄色为高电平
        当通过非门为低电平表示前面没有需要中断的接口,当intp的输出为高电平表示这个设备发出了中断。
    • 中断向量地址形成部件

      • 可以通过软件和硬件方式
      • 硬件向量法,由硬件产生向量地址(中断向量地址),再有向量地址找到入口地址
        中断向量:中断服务程序的开始地址,同时还有一些准备工作,例如执行该中断时需要的一些非体系寄存器的值
        在这里插入图片描述
        只有一个输入,表示是哪个中断,输出为一个地址值
        在这里插入图片描述当一个设备发出中断经过排队后,设备排队器根据输入来的中断发出一个中断地址
  • IO中断处理过程:

    • CPU中断的条件和时间单重和多重的流程
      • 条件:允许中断触发器 EINT=1,可以通过开关中断指令来置位
      • 时间:D=1且MASK=0,在每条指令执行阶段的结束前
  • 中断服务程序的流程:

    • 中断服务程序的流程
      • 保护现场;程序断点的保护和寄存器的保护
      • 中断服务
      • 恢复现场
      • 中断返回
    • 单重中断和多重中断
      • 单重中断 不允许现行的中断服务程序被中断
      • 多重中断 可以运行现行的中断服务程序被更高级别的中断中断
    • 单重和多重的流程
      在这里插入图片描述区别在于开中断的位置不同,单重中断不能再被中断,所以EINT开启时间晚。

DMA方式

  • 特点
    • DMA和中断方式的数据传输
      • 中断方式:需要借助于CPU寄存器
      • DMA不需要CPU的参与
    • DMA和主存交换数据的三种方式
      • 当开始IO就停止CPU对主存的访问,控制简单,不能保证CPU对主存的利用率,连续的一大段时间,可能导致IO又进入了准备阶段,但是CPU不能使用总线
      • 周期窃取(周期挪用),IO准备好了发送信号通知CPU
        • CPU不访存,总线分配给DMA
        • CPU正在访存,DMA等待
        • 同时请求访存,DMA优先
      • 交替访存
        • CPU和DMA交替获得总线控制权
  • 接口功能和组成
    • 接口功能
      • 向CPU申请DMA传送
      • 处理控制权的转交
      • 管理系统总线,控制数据传送
      • 确定数据传送的首地址和长度
      • 操作完成信号
        在这里插入图片描述其中的AR为内存地址寄存器,WC为传输数目寄存器,DAR为设备编号寄存器,BR为数据缓冲区,DREQ为 DMA请求信号,DACK为DMA响应信号,HRQ为总线请求信号,HLDA为总线保持响应信号
        中断机构的工作,数据传输后的恢复工作,WC为0,发出溢出信号,中断机构发出中断请求,由CPU做完成数据传输后的处理
    • DMA的工作流程
      • DMA传送过程:预处理,数据传送,后处理
        • 预处理,通过几条输出指令预置传送方向,传送地址和数据量
          在这里插入图片描述
    • DMA接口与系统的连接方式:
      • 具有公共请求线的DMA请求
        在这里插入图片描述
      • 独立DMA
        在这里插入图片描述
    • DMA和程序中断方式
      在这里插入图片描述
    • 接口类型
      • 选择型
        在这里插入图片描述
      • 多路型
        在这里插入图片描述不同的设备可以同时进行数据准备工作
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值