程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

计算机组成原理 - 输入输出系统(2)

balukai 2025-05-11 14:10:18 文章精选 7 ℃

输入输出系统

程序查询方式

程序查询流程

在程序查询方式中,CPU会通过查询程序不断地检查各个I/O设备是否准备好进行数据传输

  • CPU初始化时,会在寄存器中设置好主存缓冲区的首地址和计数值
  • CPU发出启动指令,启动所有需要的I/O设备
  • CPU循环执行查询操作,从第一个设备开始,逐一检查每个设备是否准备就绪
  • 如果某个设备准备好,CPU就发出传送指令,并与该设备进行数据传输
  • 数据传输完成后,CPU可以返回到查询循环,继续检查下一个设备

单/多个 I/O 设备的查询流程


缺点:

  • CPU在等待I/O设备准备就绪的过程中,会持续执行查询操作,这会导致CPU利用率低
  • 如果多个设备同时准备好,程序查询方式无法有效地处理并行操作

程序查询方式的接口电路

  1. 当 CPU 通过 I/O 指令启动输入设备时,指令的设备码字段通过地址线送至设备选择电路
  2. 若该接口的设备码与地址线上的代码吻合,其输出 SEL 有效
  3. I/O 指令的启动命令经过“与非”门将工作触发器B置“1”,将完成触发器D置“0”
  4. 由 B 触发器启动设备工作
  5. 输入设备将数据送至数据缓冲寄存器
  6. 由设备发设备工作结束信号,将 D 置“1”,B 置“0”,表示外设推备就绪
  7. D 触发器以“准备就绪”状态通知CPU,表示“数据缓冲满”
  8. CPU 执行输入指令,将数据缓冲寄存器中的数据送至 CPU 的通用寄存器,再存入主存相关单元

程序中断方式

中断的概念

程序中断方式是基于程序查询方式的改进,它允许I/O设备在准备好后主动中断CPU,而不是让CPU不断地查询

  • CPU 初始化所有 I/O 设备,并允许它们通过中断请求线(IRQ)发起中断
  • CPU 开始执行其他任务,不需要持续查询 I/O 设备状态
  • 当某个 I/O 设备准备好数据传输时,它会通过中断请求线发送中断信号给 CPU
  • CPU 响应中断,暂停当前任务,处理中断(即与请求的 I/O 设备进行数据传输)
  • 数据传输完成后,CPU 恢复被中断的任务

I/O 中断案例

当打印机在准备数据以及打印前准备阶段,CPU 都会继续执行主程序,只有当打印机准备好之后才会发中断请求给 CPU ,然后 CPU 响应该中断

优点:

  • CPU的利用率提高,因为它不需要不断地执行查询循环,可以在等待 I/O 操作的同时执行其他任务
  • 支持并行操作,多个设备可以独立地中断 CPU,不需要等待其他设备的处理

程序中断方式的接口电路

中断请求触发器和中断屏蔽触发器

  • 接口电路中的完成触发器 D、中断请求触发器 INTR、中断屏蔽触发器 MASK 和中断查询信号的关系如下图所示。可见,仅当设备准备就绪(D = 1),且该设备未被屏蔽(MASK = 0)时,CPU的中断查询信号可将中断请求触发器置“1” ( ‘ INTR = 1)

排队器

  • 当多个中断源同时向CPU提出请求时,CPU只能按中断源的不同性质对其排队,给予不同等级的优先权,并按优先等级的高低予以响应
  • 硬件排队器(优先级:从左到右依次降低,是用INTRn的非来控制右侧INTR(n+1)的输出)

中断向量地址形成部件(设备编码器)

  • 由硬件产生向量地址,再由向量地址找到入口地址
  • 中断向量地址形成部件的原理

程序中断方式接口电路的基本组成

  • 中断请求线(IRQ):设备使用中断请求线向 CPU 发送中断信号,表明它需要 CPU 的处理或者有数据准备好
  • 中断控制器:当有多个设备时,中断控制器负责管理多个中断请求,确定优先级,并将中断请求转发给 CPU
  • 设备选择电路:用于识别哪个设备请求中断,通常通过比较设备地址和 CPU 发出的地址来实现
  • 设备忙/就绪状态触发器:这些触发器用来指示设备是否忙(正在处理数据)或者就绪(数据准备好)
  • 数据缓冲寄存器(DBR):当设备准备好数据后,数据被暂存到数据缓冲寄存器中,等待CPU读取
  • 中断屏蔽寄存器(MASK):控制哪些中断请求被允许通过,哪些被屏蔽
  • 中断处理程序:CPU接收到中断请求后,执行的中断处理程序代码,用于响应设备请求
  • 排队器:当有多个中断请求同时发生时,排队器负责决定哪个请求优先被处理
  • 设备编码器:生成中断向量,这个向量指向特定的中断服务程序
  • 中断向量地址形成部件:用于生成中断向量的地址,这样CPU可以找到并执行正确的中断处理程序

I/O中断处理过程

CPU响应中断的条件和时间

  • 条件: 允许中断触发器 EINT = 1
  • 时间: 当 D = 1 且 MASK = 0 、 在每条指令执行阶段的结束前、 INTR 置 1

中断服务程序的流程

  1. 保护现场 程序断点的保护(中断隐指令完成);寄存器内容的保护 (出栈指令)
  2. 中断服务:对不同的 I/O 设备具有不同内容的设备服务
  3. 恢复现场(取数指令或者出栈指令)
  4. 中断返回(中断返回指令)

单重中断和多重中断

  • 单重中断:不允许中断现行的中断服务程序
  • 多重中断:允许级别更高的中断源来中断现行的中断服务程序

DMA 方式

概述

DMA 和程序中断方式的数据通路的区别?

由于主存和 DMA 接口之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要CPU 暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序中断方式的工作速度高

DMA 方式和程序中断的比较


中断方式

DMA方式

数据传送

程序

硬件

响应时间

指令执行结束

存储周期结束

处理异常情况

不能

中断请求

传送数据

后处理

优先级


DMA 方式的功能和组成

功能

  • 向 CPU 申请 DMA 传送
  • 处理总线的控制权的转交
  • 管理系统总线、控制数据传送
  • 确定数据传送的首地址和长度以及修正传送过程数据地址和长度
  • DMA 传送结束时,给出操作完成信号

组成

  • 主存地址寄存器(AR):AR用于存放主存中需要交换数据的地址。在DMA传送数据前,必须通过程序将数据在主存中的首地址送到主存地址寄存器
  • 字计数器(WC): WC用于记录传送数据的总字数,通常以交换字数的补码值预置。在DMA传送过程中,每传送一个字,字计数器如1,直到计数器为0,即最高位产生进位时,表示该批数据传送完毕
  • 数据缓冲寄存器(BR) :BR用于暂存每次传送的数据
  • DMA控制逻辑 :DMA控制逻辑负责管理DMA的传送过程,由控制电路、时序电路及命令状态控制寄存器等组成
  • 中断机构:当字计数器溢出(全“0”)时,表示一批数据交换完毕,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作 DMA操作的后处理
  • 设备地址寄存器(DAR) :DAR存放I/O设备的设备码或表示设备信息存储区的寻址信息(如磁盘数据所在的区号、盘面号和柱面号)

DMA 与主存交换数据的三种方式

停止 CPU 访问主存

  • 控制建档,但是 CPU 处于半工作或保持状态,未充分发挥 CPU 对主存的利用率

周期挪用(周期窃取)

  • 每当 I/O 设备发出 DMA 请求时,I/O 设备便挪用或窃取总线占用权一个或几个主存周期,而 DMA 不请求时,CPU 仍继续访问主存,
  • CPU 和 DMA 同时请求访存(此时将总线控制权让给DMA)

DMA 与 CPU 交替访问

  • CPU 工作周期分为 C1、C2,C1主要供DMA访存,C2主要供CPU访存
  • 不需要申请建立和归还总线的使用权

DMA 的工作过程

DMA 传送过程分:预处理、数据传送、后处理

预处理

  • 给DMA控制逻辑指明数据传送方向
  • 向DMA设备地址寄存器送人设备号,并启动设备
  • 向DMA主存地址寄存器送入交换数据的主存起始地址
  • 对字计数器赋予交换数据的个数

数据传送

DMA方式是以数据块为单位传送的,以周期挪用的DMA方式为例

后处理

当DMA的中断请求得到响应后,CPU停止原程序的执行,转去执行中断服务程序,做一些 DMA的结束工作

  • 校验传送主存的数据是否正确
  • 决定是否继续用 DMA 传送其他数据块,若继续传送,则又要对 DMA 接口进行初始化,若不需要传送,则停止外设
  • 测试在传送过程中是否发生错误,若出错,则转错误诊断及处理错误程序

DMA 接口与系统的连接方式

  • 具有公共请求线的DMA请求
  • 独立的 DMA 请求

DMA 接口的类型

选择型的 DMA 接口

  • 在物理上连接多个设备;在逻辑上只允许连接一个设备

多路型的 DMA 接口

  • 在物理上连接多个设备;在逻辑上允许连接多个设备同时工作
  • 多路型 DMA 接口的工作原理
  • 磁盘、磁带、打印机分别每隔30us、45us、150us向DMA接口发DMA请求,磁盘的优先级高于磁带,磁带的优先级高于打印机
最近发表
标签列表