输入输出与中断技术(九)


输入输出与中断技术(九)

I/O接口

接口功能

  • 实现高速和低速的匹配
    • 数据的缓冲与暂存
  • 信号的驱动能力
  • 信号形式和电平的匹配
    • 信号类型转换
  • 信号格式转换
  • 时序匹配(定时关系)
  • 总线隔离
    • 三态门

I/O接口及其编址

端口:就相当于接口中的寄存器,用于缓存数据及控制信息的部件

端口类型

  • 数据端口
  • 状态端口
  • 控制端口

I/O端口编址

  • 计算机系统中包含各类不同功能的接口电路
  • 每个接口中含1个或多个端口
  • 端口编址:为确保CPU能访问到每个不同的端口

寻找端口的方法
每个端口地址=片选地址(高位地址)+片内地址

  • 先找到端口所在接口电路芯片 → 片选
  • 再在该芯片上找具体访问的端口 → 片内寻址

8088/8086寻址端口的能力:64k个端口
端口的编址方式

  • 与内存统一编址
  • 独立编址

8088/8086的I/O端口编址:

  • 采用I/O独立编址方式,与内存共用地址总线,用IO/#M信号状态区分,信号高电平访问端口
  • 访问端口仅使用地址总线的:A15-A0
  • 可寻址的I/O端口数为64K(65536)个,I/O地址范围为0~FFFFH

I/O地址译码

目的:确定端口的地址
参加译码的信号:#IOR,#IOW,高位地址信号
对端口读/写信号的产生条件

  • IO/#M=1
  • #RD=0 → #IOR=0
  • #WR=0 → #IOW=0

  • OUT指令将使总线的#IOW信号有效
  • IN指令将使总线的#IOR信号有效

当接口只有一个端口时
无片选地址,全部地址信号均为高位地址(可全部参与译码),译码输出直接选择该端口
当接口具有多个端口时
则16位地址线的高位参与译码(决定接口的基地址),而低位则用于要访问哪一个端口
由于端口资源丰富,端口地址译码常用部分地址译码

简单接口芯片

分类

  • 按传输信息的方向分类
    • 输入接口
    • 输出接口
  • 按传输信息的类型分类
    • 数字接口
    • 模拟接口
  • 按传输信息的方式分类
    • 并行接口
    • 串行接口

特点

  • 输入接口
    • 要求对数据有控制能力
    • 常用三态门实现(注:三态电路可提供三种不同的输出值:逻辑“0”,逻辑“1”和高阻态。)
  • 输出接口
    • 要求对数据有锁存能力
    • 常用锁存器实现

三态门接口

具有对数据的控制能力,但不具有对数据的锁存能力。

锁存器接口

具有对数据的锁存能力。

基本输入输出方法

  • 无条件传送
  • 查询式传送
  • 中断方式传送
  • 直接存储器存取(DMA)

无条件传送

要求外设总是处于准备好状态
优点:软件及接口硬件简单
缺点:只适用于简单外设,适应范围为极简单极低速的外部设备,范围较窄

查询式传送

仅当条件满足时才能进行数据传送。
每满足一次条件只能进行一次数据传送。
优点:软硬件比较简单
缺点:CPU效率低,数据传送实时性差,速度较慢

中断控制方式

外设在需要向CPU提出请求,CPU再去为它服务,服务结束后或在外设不需要时,CPU可以执行自己的程序。
优点:CPU效率高,实时性好,速度快
缺点:程序编制相对较为复杂

DMA控制方式

外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者
总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存外设的地址和读写控制信号均由DMAC提供。
控制复杂,硬件成本相对较高

中断技术

CPU执行程序时,由于发生了某种随机的事件(这个事件又称为中断源,可能来自外部或内部),引起CPU暂时中断正在运行的租序,转去执行一段特殊的服务程序,即中断服务(处理)子程序,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断
引入中断的原因

  • 提高对外设请求的响应实时性。
  • 提高了CPU的利用率,避免了CPU不断检测外设状态的过程

类型

  • 内部中断
    • 异常中断 —— 异常事件引起
    • 软件中断 —— 中断指令引起
  • 外部中断
    • 可屏蔽中断 —— INTR中断
    • 非屏蔽中断 —— NMI中断

外部可屏蔽中断响应的一般过程

  • 中断请求
  • 中断源识别及中断判优
  • 中断响应
  • 中断处理(服务)
  • 中断返回

中断请求

外部可屏蔽中断请求信号:INTR

  • 中断请求信号应保持到中断被处理为止
  • CPU响应中断后,中断请求信号应及时撤销

中断源识别

  • 软件查询法
  • 中断矢量法

中断响应

外部可屏蔽中断响应信号:#INTA

  • 向中断源发出#INTA中断响应信号
  • 不允许响应其他中断
  • 将FALGS压入堆栈,保护硬件现场
  • 将CS,IP压入堆栈,保护断电
  • 获得中断服务程序入口地址

中断处理

  • 执行中断服务子程序
  • 中断服务子程序的特点:
    • 为“远过程”
    • 用IRET指令返回

中断返回

执行IRET指令,使IP,CS和FLAGS从堆栈弹出。

中断向量表

存放各类中断的中断服务程序的入口地址

8088内部中断和NMI中断

  • 无INTA周期
  • 中断类型码固定或由指令给出

Author: ljs
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source ljs !
评论
  TOC