第6.5章:IO控制方式

第6.5章:IO控制方式1

本章结构
IO控制器
四种IO控制方式
程序查询
程序中断
DMA控制
通道控制

Part1:IO控制器

1、IO控制器模型

请添加图片描述

2、IO控制器中寄存器的编制

假设IO 寄存器中有n个地址,而主存(MM)中有N个地址

  1. 统一编制:无需专门的IO指令,但是需要占用内存空间

请添加图片描述

  1. 独立编制:不占用内存空间,但是需要专门的IO指令

    请添加图片描述

Part2:四种IO控制方式2

1、程序查询(直接控制)

CPU不断轮询检查State Register,检测到输入完成之后,从Data State中取走数据,每次取走一个字。程序和IO设备串行执行

请添加图片描述

2、程序中断

Data Register中数据输入完成之后,IO Controller 向CPU出发中断请求,CPU响应并且取走数据(每次一个字)程序和IO设备并行执行

请添加图片描述

3、DMA控制(Direct Memory Access)

在程序中断方式中,如果设备的IO速度非常快,那么其效率和程序查询方式无异。故我们对于高速IO设备,直接在设别和主存(MM)之间开辟一条通路,其传输数据不通过CPU,以降低CPU开销。

由于和传统的IO不同,我们需要重新设计IO Controller,称呼为DMA Controller,每次传输以块为单位的数据3

请添加图片描述

3.1 DMA Controller Model

请添加图片描述

  1. 对于部件的说明

    • Control/State 逻辑:用于指定传输方向等参数
    • DMA Request Trigger:当设备(device)准备好数据之后,修改该触发器的值(1bit)说明其准备好传送数据
    • Address Register:用于存放交换数据的主存地址
    • Word Count Register:记录已经发送的数据长度,当其溢出时,数据传送完毕
    • 中断机构:当数据传送完毕时发出中断信号
    • Data Cache Register:用于暂存数据
  2. 单总线结构DMA传送过程

    • 传送前

      • 接受Device的DMA传送请求,并且向CPU发出HRQ(Hold Request)请求,要求占用总线
      • CPU响应HLDA(Hold Acknowledge)
    • 传送时

      • 确定传送地址和长度
      • 确定传送方向并且传送
    • 传送后:向CPU报告结果(一个中断信号)

  3. 对于总线的说明

  • 上图为单总线结构的DMA,在传送数据时DMAC会接管CPU的AB,DB,CB,CPU的主存控制信号被禁用,知道DMA传输过程结束后恢复
  • 更一般的DMA传送方式工作在三总线方式下,即DMA和MM之间存在一条专门的通路,这样子CPU就无需让权给DMAC了,但是这样子带来一个问题,当CPU和DMAC都想访存时,给谁访存——DMA传送方式
  1. DMA传送方式

    请添加图片描述

    • 停止CPU访存:当DMAC访存时,不让CPU访存
    • 交替访存:将存取周期划分为两个时间段,一个给CPU访存,一个给DMAC访存
    • 周期(存取周期)挪用
      • 如果CPU正在访存,那么当其访存结束之后,DMAC访存
      • 如果CPU和DMAC同时发出访存请求,那么有限给DMAC访存

4、通道控制

在DMA控制方式中,CPU每次发出一个指令只能读写一个或者多个连续的数据块,如果需要读写离散的数据块那么则需要多条指令。为了解决这个问题,出现了通道控制方式,我们引入一个通道(相当于是一个小型CPU)执行一系列通道指令,以实现数据块的读写

  1. 通道读写过程
    • CPU向通道指明通道程序在内存中的首地址和需要读写的设备,即可执行其他的程序
    • 通道执行通道程序4
    • 执行完毕向CPU报告(一个中断信号)

Part end:参考文献和一些说明


  1. 本章之所以单独列出,是因为这个部分在计算机组原理和操作系统中都有 ↩︎

  2. 关于IO百分比的说明,考试中常考这个计算。 ( 1 s 内 的 I O 次 数 ∗ I O 时 间 ) / 1 s (1s内的IO次数*IO时间)/1s 1sIOIO/1s↩︎

  3. 虽然说DMA控制器每次传输的单位是块,单并不是一次性传输完成的,一般来说数据块大小是512B,而DMA Controller中的Data Register的大小为32bit也就是4B,传输一个块需要128次的传送。在这个过程中,CPU也有可能访MM ↩︎

  4. 一个通道可以控制多个IO控制器,一个IO控制器可以控制多个设备 ↩︎

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值