I/O设备及分类

  • I/O设备用于计算机与外围世界的交互;
  • I/O设备又称为外围设备或外部设备,简称外设;
  • I/O操作:内存和I/O设备之间的信息传送操作

I/O影响计算机的通用性和可拓展性,是计算机系统综合处理能力及性价比的重要因素;

  • 按信息传输方向划分

    • 输入设备:将外界信息输入计算机

      • 例如:键盘,鼠标,扫描仪等
    • 输出设备:将计算结果输出

      • 例如:显示器,打印机等
    • 输入输出设备:既可以输入信息,也可以输出信息

      • 例如:磁盘驱动器,网卡等
  • 按交互功能划分

    • 人机交互设备:用于用户与计算机之间的交互通信。

      • 例如:鼠标,键盘,显示器等
    • 存储设备:持久性地存储大量信息并快速检索

      • 例如:磁盘驱动器,光盘驱动器等
    • 机机通信设备:用于计算机和计算机之间的通信

      • 例如:网卡,调制解调器等

设备管理

目标

克服设备和CPU速度的不匹配所引起的问题,使主机和设备并行工作,提高设备利用效率

image-20221114102933838

功能

  • 设备中断处理
  • 缓冲区管理
  • 设备的分配和去配
  • 设备驱动调度
  • 实现虚拟设备

层次

  • I/O硬件
    • I/O设备及其接口线路
    • 控制部件
    • 通道
  • I/O软件
    • 系统I/O软件
    • 用户空间I/O软件

设备控制器

  • 通常I/O设备的机械部件和电子部件是分开处理的,电子部件又被称为设备控制器
  • 设备控制器又称为设备适配器、I/O控制器、I/O控制接口,简称I/O模块或I/O接口
  • 操作系统与控制器交互,而非与设备交互

功能

  • 设备控制器是CPU与设备之间的接口
    • 接受和识别CPU或通道发来的命令
    • 实现数据交换
    • 发现和记录设备及自身的状态信息,供CPU处理使用
    • 设备地址识别

组成

image-20221121101447355

控制方式

轮询方式

image-20221121101757821
  • 处理I/O请求会终止原程序的执行
  • CPU需要等待I/O设备就绪
  • CPU需要参与数据传送
  • CPU和设备只能串行工作,效率低下

中断方式

image-20221121103010437
  • 响应中断后会终止原程序的执行
  • CPU不需要等待I/O设备就绪
  • CPU需要参与设备传送
  • CPU和设备部分并行操作,效率有所提高

直接存储器访问(DMA)方式

image-20221121103403706
  • 模仿处理器来控制主存和设备控制器之间的数据交换
image-20221121104128516
  • CPU不会终止原程序的执行
  • CPU只在数据传送的开始和结束时参与
    • 开始时,CPU需要对DMA模块进行初始化
    • 结束时,CPU响应中断,但不必保存现场
DMA中的周期窃取
  • 由于CPU和DMA同时占用总线访问内存,可能存在冲突,所以当出现冲突时,CPU总是将总线的占有权让给DMA一个或几个主存周期;
  • 这种方式对CPU与主存的交换影响不大
    • 数据传送过程本身就不连续和不规则
    • CPU主要与cache进行数据交互,很少直接访问内存

控制方式演化

image-20221121104728489

  • 采用轮询方式的设备控制器
    • CPU需要等待设备就绪,且参与数据传送
  • 采用中断方式的设备控制器
    • CPU无需等待设备就绪,但响应中断后参与数据传送
  • 通过DMA直接控制存储器
    • CPU在数据传送开始和结束时参与,与主存进行数据交换时
      不参与

I/O通道

  • 又称为通道控制器、I/O处理器

  • 设备控制器包含自身专用的处理器和通道程序

    • I/O指令存在主存中,由该通道包含的通道控制器处理
    • 可控制多台同类或不同类设备

流程:

  • CPU在遇到I/O请求,启动制定通道
  • 一旦启动成功,通告开始控制I/O设备进行操作,CPU执行其他任务
  • I/O操作完成后,I/O通道发起中断,CPU停止当前工作,转向处理I/O操作结束事件

CPU与通道并行工作

带有局部存储器的I/O通道

  • 相当于一台自治的计算机
    • I/O指令存储在控制器自带的局部存储器中,并由I/O
      通道所包含的处理器执行
  • 可以控制大量的I/O设备,同时最小化CPU的干涉
  • 常用于交互式终端通信,负责包括控制终端在内的
    大部分任务

I/O发展与总线

单总线

  • 将CPU、主存和I/O模块连接到同一组总线上
  • 优点:结构简单,易于扩充
  • 缺点:主存需要和I/O模块共用总线;设备增多会造成总线变长,进而增加传输时延;无法适用于大量高速设备

image-20221121110119655

传统的三级总线

  • 传统的三级总线(例)
    • 主存和Cache通过主存总线传送数据,主存总线和扩展总线上的I/O设备之间传送数据通过扩展总线接口缓冲
    • 优点:主存与I/O之间的数据传送与处理器的活动分离;可以支持更多的I/O设备
    • 缺点:不适用于I/O设备数据速率相差太大的

image-20221121112004392

采用南北桥的多级总线

  • 采用南北桥的多级总线(例)
    • 通过存储总线、PCI总线、E(ISA)总线分别连接主存、高速I/O设备和低速I/O设备
    • 优点:可以支持不同数据速率的I/O设备

image-20221121112352734

采用I/O通道的多级总线

  • 采用I/O通道的多级总线(例)
    • 支持CPU、主存和多个I/O通道之间的数据传送
    • 支持I/O通道和I/O控制器,以及I/O控制器和设备之间的数据传送

image-20221121112433247