csapp第五章-输入输出系统

Posted by serrini on March 29, 2021

第五章 输入输出系统

发展

早期串行 DMA(Direct Memory Access) IO和主存之间有一条直接数据通路 通道 通道指令,受CPU的IO指令控制 IBM/360系统一个通道可以连8个设备控制器,一个设备控制器可以连8个设备 IO处理机 外围处理机PPU

按照IO设备工作速度的不同,分三种联络方式

立即响应方式 异步工作采用应答信号联络 异步并行 IO接口向IO设备发送Ready信号后,立即从接口中取出数据 IO设备向IO接口发Strobe信号,并让接口转告CPU,接口中的数据已经被取走 串行传送 同步工作采用同步时标联络 要求IO设备和CPU的工作速度完全同步

IO设备和主机的连接方式

辐射式 要求每台IO设备都有一套控制线路和一组信号线,初期 总线式 一组总线(包括地址线、数据线、控制线等)

5.1.4 IO和主机信息传送的控制方式

五种控制方式

程序查询方式* CPU和IO串行工作 程序中断方式* CPU启动IO设备后,对设备是否已准备就绪不过问,继续执行自身程序,需要IO设备准备就绪向CPU发出中断请求 直接存储器存取方式DMA* IO设备能直接与主存交换信息而不占用CPU DMA方式中,主存与IO设备之间有一条数据通路,无需中断,就可以交换信息 DMA占用的存取周期–窃取周期或挪用周期,此时CPU还能继续内部操作 IO通道方式 IO处理机方式

外部设备

设备控制器,机、电磁、光部等外部设备

其他外部设备

5.3 IO接口

总线连接方式的IO接口电路

IO总线包括数据线、设备选择线、命令线和状态线 I/O接口的基本结构

  • 主机侧
    • 通过I/O总线与内存、CPU相连。
    • 主机侧有数据线、地址线、控制线
      • 地址线用于给出要访问的I/O接口中寄存器地址,与读写控制信号一起送到I/O控制逻辑部件
  • 设备侧
    • 通过接口电缆连接外设,设备侧的数据双向传输,状态寄存器外传内,控制寄存器内传外。
  • I/O控制逻辑
    • 对控制寄存器中命令字进行译码,得到控制信号通过外设洁面控制逻辑送到外设
    • 同时负责数据缓冲寄存器和外设之间的双向数据传输
    • 还要收集外设状态到内部状态寄存器
  • 数据缓冲寄存器
  • 状态/控制寄存器
  • 外设界面控制逻辑
  • I/O指令是特权指令

接口的功能和组成

选址功能 传送命令 传送数据 接口中通常设有数据缓冲寄存器DBR,暂存 反映IO设备工作状态 完成触发器D和工作触发器B标志状态 D0 B0,暂停 D1 B0,准备就绪 D0 B1,设备处于准备状态 中断技术,接口电路中一般还设有中断请求触发器INTR,为1时,表示该IO设备正向CPU发送中断请求,接口内还有屏蔽触发器MASK,与中断请求触发器配合使用,完成屏蔽功能 8.4节*

IO接口组成框图

1、设备选择电路 2、命令寄存器和命令译码器 3、数据缓冲寄存器DBR 4、设备状态标记 需要通过 控制逻辑电路 协调时序 接口一端连接CPU,一端连接外部设备 数据线双向,地址线单向 状态线把IO接口状态,外部设备的状态,传输给CPU

5.3.3 接口类型

按数据传送方式分类

  • 并行 Intel 8255
  • 串行 Intel 8251

功能选择的灵活性分类

  • 可编程和不可编程

通用性分类(按主机访问I/O设备的控制方式)

  • 程序查询接口
    • 较慢的IO
  • DMA式接口
    • 高速IO
  • 中断接口

I/O端口及其编址

若干端口加上对应的控制逻辑电路组成接口

  • 数据端口,cpu能读写
  • 状态端口,cpu只能读
  • 控制端口,cpu只能写

I/O端口的编址方式

  • 统一编址(存储器映射方式)
    • 只用统一访存指令即可,不需要I/O指令
    • I/O端口占用存储器地址,内存容量变小
  • 独立编址
    • I/O地址空间和主存地址空间独立,无法从地址码上区分,需要I/O指令

5.4 程序查询方式

CPU不断查询IO设备状态,直到就绪,传送一次数据,修改地址和计数器

200 程序查询方式流程 测试指令 检查设备时候准备就绪 传送指令 转移指令 接口电路

5.5 程序中断方式

外设准备就绪,就主动向CPU发出中断请求,请求CPU为自己服务

  • 中断请求
    • 中断请求标记触发器,(1表示中断源有请求)
    • INTR线发出的是可屏蔽中断,优先级最低
    • NMI线发出的是不可屏蔽中断,优先级最高
  • 中断请求判优
    • 中断请求判优
    • 响应优先级是固定的,处理优先级可以利用中断屏蔽技术动态调整
  • CPU响应中断条件
    • CPU内部的中断屏蔽触发器开放
    • 外设有中断请求时,中断请求触发器必须是1,保持中断请求信号
    • 外设中断允许触发器必须为1,才能将外设中断请求送到CPU
    • 满足以上三个条件,CPU在现行指令结束的最后一个状态周期响应中断
  • 中断响应过程
    • 中断响应优先级一般固定,不可改变
    • 中断隐指令
      • 保存断点,异常指令保存的是当前指令的位置,中断指令保存的是下一条指令的地址
  • 中断向量
    • 中断识别:向量中断和非向量中断(软件查询法)(chap5?)
    • 中断-中断类型号-中断服务程序-入口地址(中断向量)
    • 中断向量表
  • 中断处理过程
    • 中断处理优先级可以由中断屏蔽字来改变,屏蔽位为0,对新中断开放
    • 中断处理过程
  • 多重中断和中断屏蔽
    • 实例
    • 中断优先级DACB,屏蔽字
      • 屏蔽字
    • 执行轨迹
      • 轨迹

5.6 DMA方式

外设和内存之间有一条“直接数据通道”

特点

  • 主存既可被CPU访问,又可被外设访问
  • 主存地址确定、传送数据计数直接由硬件电路实现
  • 内存中专有缓冲区
  • DMA速度快,CPU和外设并行
  • DMA传送前预处理,结束后中断方式后处理

组成

I/O设备通过DMA控制器(DMA接口)向CPU提出请求,CPU响应后让出系统总线,由DMA控制器接管总线。

DMA控制器

传送方式

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

DMA和中断的区别

  • 中断是程序切换,DMA不占用CPU
  • 中断的响应只在指令执行结束后,DMA的响应可以在每个机器周期结束时(取址、间址、执行)
  • DMA传送不需要CPU,高速有效
  • DMA请求优先级高于中断请求
  • 中断可以处理异常,DMA仅有I/O操作
  • 中断是程序传送,DMA是硬件传送数据