七、输入输出系统

在这里插入图片描述

I/O接口

I/O接口( I/O控制器)是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。主机和外设具有各自的工作特点,它们在信息形式和工作速度上具有很大的差异,接 口正是为了解决这些差异而设置的。

接口的分类

按数据传送格式划分

  1. 并行接口:接口与系统总线、接口与外设均按并行方式传送数据
  2. 串行接口:接口与系统总线并行传送,接口与外设串行传送

按时序控制方式划分

  1. 同步接口:接口与系统总线的信息传送由统一时序信号控制。
  2. 异步接口:接口与系统总线的信息传送采用异步应答方式。

按I/O传送控制方式划分

  1. 直接程序传送接口
  2. 中断接口
  3. DMA接口

主要功能

  1. 寻址:接收CPU送了的地址码,选择接口中的寄存器供CPU访问
  2. 数据缓冲:实现主机与外设的速度匹配
  3. 预处理:串-并格式转换、数据通路宽带转换、电平转换
  4. 控制功能:传送控制命令与状态信息,实现I/O传送控制方式

I/O方式

输入/输出系统实现主机与I/O设备之间的数据传送,可以采用不同的控制方式,各种方式在 代价、性能、解决问题的着重点等方面各不相同,常用的I/O方式有程序查询、程序中断、DMA 和通道等,其中前两种方式更依赖于CPU中程序指令的执行。

程序查询

在这种控制方式下,CPU 一旦启动就必须停止现行程序的运行,并在现行程序中插入一段程序。程序查询方式的主要特点是CPU有“踏步”等待现象,CPU与I/O串行工作。

  1. CPU 向外设接口的控制寄存器中写入控制信息。
  2. 外设设置状态寄存器。
  3. CPU 读取外设的状态寄存器,查询外设是否就绪。
  4. 外设如果就绪,则读 /写外设接口数据寄存器,否则,继续查询。
  5. 在完成一次数据传输后,继续查询外设状态寄存器。

程序中断

程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求, CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自 动返回到现行程序的断点处,继续执行原程序。

中断分类

  1. 硬中断与软中断(硬件还是软件)
  2. 内中断与外中断(主机内还是主机外)
  3. 可屏蔽中断(可通过屏蔽字屏蔽该类请求;关中断时不响应该类请求。)与非屏蔽中断(该类请求与屏蔽字无关;请求的响应与开/关中断无关。)
  4. 向量中断与非向量中断(由硬件还是软件提供服务程序入口地址)

工作流程

请求中断→响应中断→关闭中断→保护断点→中断源识别→保护现场→中断服务→恢复现场→中断返回(开中断)。
(1)请求中断。当某一中断源需要 CPU 为其进行中断服务时,就输出中断请求信号,使中断控制系统的中断请求触发器置位,向 CPU 请求中断。系统要求中断请求信号一直保持到 CPU 对其进行中断响应为止。
(2)响应中断。CPU 对系统内部中断源提出的中断请求必须响应,而且自动取得中断服务子程序的入口地址,执行中断服务子程序。对于外部中断,CPU 在执行当前指令的最后一个时钟周去查询 INTR 引脚,若查询到中断请求信号有效,同时在系统开中断(即 IF=1)的情 况下,CPU 向发出中断请求的外设回送一个低电平有效的中断应答信号,作为对中断请求 INTR 的应答,系统自动进入中断响应周期。
(3)关闭中断。CPU 响应中断后,输出中断响应信号,自动将状态标志寄存器 FR 或 EFR 的内容压入堆栈保护起来,然后将 FR 或 EFR 中的中断标志位 IF 与陷阱标志位 TF 清零,从而自动关闭外部硬件中断。因为 CPU 刚进入中断时要保护现场,主要涉及堆栈操作,此时不能再响应中断,否则将造成系统混乱。
(4)保护断点。保护断点就是将 CS 和 IP/EIP 的当前内容压入堆栈保存,以便中断处理完毕后能返回被中断的原程序继续执行,这一过程也是由 CPU 自动完成。
(5)中断源识别。当系统中有多个中断源时,一旦有中断请求,CPU 必须确定是哪一个中断源提出的中断请求,并由中断控制器给出中断服务子程序的入口地址,装入 CS 与 IP/EIP 两个寄存器。CPU 转入相应的中断服务子程序开始执行。
(6)保护现场。主程序和中断服务子程序都要使用 CPU 内部寄存器等资源,为使中断处理程序不破坏主程序中寄存器的内容,应先将断点处各寄存器的内容压入堆栈保护起来,再进入的中断处理。现场保护是由用户使用 PUSH 指令来实现的。
(7)中断服务。中断服务是执行中断的主体部分,不同的中断请求,有各自不同的中断服务内容,需要根据中断源所要完成的功能,事先编写相应的中断服务子程序存入内存,等待中断请求响应后调用执行。
(8)恢复现场。当中断处理完毕后,用户通过 POP 指令将保存在堆栈中的各个寄存器的内容弹出,即恢复主程序断点处寄存器的原值。
(9)中断返回。在中断服务子程序的最后要安排一条中断返回指令 IRET,执行该指令,系统自动将堆栈内保存的IP/EIP 和 CS 值弹出,从而恢复主程序断点处的地址值,同时还自动恢复标志 寄存器 FR 或 EFR 的内容,使 CPU转到被中断的程序中继续执行

中断寄存器

命令字寄存器:接收CPU发向外设的命令字,转换为相应操作命令送外设。
状态字寄存器:反映设备和接口的运行状态。
数据缓冲器:传送数据,实现缓冲。
控制逻辑寄存器:请求信号产生逻辑;电平转换逻辑;串-并转换逻辑;(串口)针对设备特性的逻辑。
公用中断控制器:接收外设请求,判优,送出公共请求;接收中断批准,送出中断号(中断类型码)。

DMA

DMA方式是一种完全由硬件进行信息传送的控制方式,DMA在外设与内存之间开辟一条“直接数据通道”,信息传送不再经过CPU,降低了 CPU在传送数据时的开销,因此称为直接存储器存取方式。用于高速、简单、批量数据传送。

三个阶段

程序准备:CPU用程序实现初始化信息
DMA传送:DMA控制器掌握总线权,控制传送
善后处理:CPU执行中断程序作结束处理

  1. 接受外设发出的DMA请求,并向CPU发出总线请求。
  2. CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
  3. 确定传送数据的主存单元地址及长度,并自动修改主存地址计数和传送长度计数。
  4. 规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
  5. 向CPU报告DMA操作的结束。

组成

DMA控制器
  1. 接收初始化信息
  2. 接收外设DMA请求,判优,向CPU申请总线
  3. 接管总线权,发地址、读写命令
接口功能
  1. 接收初始化信息
  2. 向DMA控制器发请求
  3. 传送数据
  4. 申请中断

DMA与中断方式的异同

相同点:
能响应随机请求;可并行操作。
不同点:
中断:用程序实现中、低速I/O传送;能处理复杂 事态;一条指令结束时响应请求。程序切换
DMA:用硬件实现高速、简单I/O传送;一个总线周期结束时响应请求。总线权切换

磁盘调用过程

  1. CPU向适配器送出驱动器号、圆柱面号、磁头号、起始扇区号、扇区数等外设寻址信息;向DMA控制器送出传送方向、主存首址、交换量等信息。
  2. 适配器启动寻道,并用中断方式判寻道是否正确。(不正确,重新寻道;正确,启动磁盘读/写。)
  3. 适配器准备好(读盘:主控RAM满一扇区;写盘:主控RAM空一扇区),提出DMA请求。
  4. CPU响应,由DMA控制器控制总线,实现传送。
  5. 批量传送完毕,适配器申请中断。
  6. CPU响应,作善后处理。

DMA 的优先级为什么比 CPU 的优先级高?

因为 DMA 请求得不到及时响应,I/O 传输数据可能会丢失

通道方式

有自己的指令系统和程序,执行通道程序时可与CPU的运行同时进行,通道指令功能简单,使用面窄,与CPU共用一个主存,还不是独立的I/O处理机

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值