操作系统的IO控制器是什么?IO控制方式又有哪几种?

473 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第34天,点击查看活动详情

IO控制器

CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部件之间的“中介”,用于实现CPU对设备的控制。

这个电子部件就是I/O控制器,又称设备控制器。CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件

IO控制器的功能

  • 接受和识别CPU发出的命令
  • 向CPU报告设备的状态
  • 数据交换
  • 地址识别

IO控制器的组成

①一个I/O控制器可能会对应多个设备;

②数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编址。

IO控制方式

程序直接控制方式

  • 特点

    • 轮询
  • 优点

    • 实现简单,用软件就可以实现
  • 缺点

    • CPU和IO只能串行工作,CPU利用率低
  • 数据传送单位

    • 一个字

中断驱动方式

  • 特点

    • CPU向IO控制器发出读命令之后,保存现场,去干别的事情
    • IO控制器准备好数据放入自己的寄存器中,向CPU发出中断信号
    • CPU干别的事情的时候在每个指令周期末尾检查中断
    • CPU收到中断信号,保存当前的现场,去处理中断
    • IO控制器寄存器内的数据放入总线传送给CPU中的寄存器
  • 优点

    • CPU和外部设备部分并行工作
  • 缺点

    • 在传送大量数据的时候,需要中断很多次,频繁的中断会带来很多开销
    • 外设和内存之间的交流还是要经过CPU,还是速度不过
  • 数据传送单位

    • 一个字

DMA方式/直接存储器存取

  • 特点

    • 设备和内存直接交流,不经过CPU
    • 仅在传送一个数据块开始和结束的时候需要CPU干预
  • 数据传送单位

    • 一个或多个块(dna控制器和内存还是一次传一个字,但是传完整个块或多个块才请求CPU,所以对CPU来说,传送单位就是块)
    • 每次只能是连续的多个块
  • 优点

    • 进一步降低了CPU的干预
  • 缺点

    • 离散的数据块无法一次读写
  • DMA VS 中断驱动方式

    • 谁控制数据传送?

      • 中断驱动方式是由CPU在中断处理时完成数据传送
      • DMA方式是DMA控制器完成数据传送
    • 何时中断CPU?

      • 中断驱动方式在每个字需要传送的时候都需要中断CPU
      • DMA方式在传送一批数据的开始和结束才需要中断CPU

通道控制方式

  • 特点

    • 通道(硬件)是弱鸡版的CPU,专门负责输入输出的处理机
    • 通道识别并执行一系列通道指令
    • 通道程序(由一系列通道程序组成)=任务清单
    • 一个通道可以控制多个IO控制器,一个IO控制器可以控制多个设备
    • CPU干预非常低,在执行完通道程序才发起中断
  • 数据传送单位

    • 一组连续或离散的数据块
  • 优点

    • 并行工作,资源利用率很高
  • 缺点

    • 需要专门硬件支持,实现复杂
  • 通道 VS 处理机

    • 通道只能识别并执行通道指令
    • 通道没有自己的内存,通道程序存放在主存中,与CPU共内存
  • 通道 VS DMA

    • 开始是否需要CPU干预?

      • DMA方式需要CPU在数据传输开始之前控制传输的数据块大小,内存位置
      • 通道直接由通道控制器处理
    • 控制几个设备?

      • 一个DMA控制器控制一个IO设备
      • 一个通道控制多个设备

对比

  • 我去裁缝店做一批衣服

  • 程序直接控制方式

    • 我每隔一段时间要去裁缝店里看看衣服做好没有
  • 中断驱动方式

    • 裁缝做好一件衣服就给我打电话,告诉我可以去拿
  • DMA

    • 我请了一个单线秘书,告诉他拿到衣服之后放在哪里,裁缝每次做好一件衣服就交给我的秘书,秘书整理好100件衣服之后交给我
  • 通道

    • 我在多个裁缝那定了货,秘书自己选择存衣服的位置,自己决定处理了多少件衣服之后交给我,并且要负责和多个裁缝沟通。