450 likes | 595 Views
主 要 内 容. 理论基础 Summary √ 处理器 CPU √ 汇编语言 Assembly Language √ 存储器 Memory √ I/O 接口 I/O Controller 总线技术. 第 8 章 I/O 接口技术. I/O 接口概述 I/O 接口的寻址、 I/O 指令 I/O 接口的 3 种工作方式 应用实例 8255A 并行接口 8253A 定时 / 计数器. 外围设备( I/O Device )特点. 输入设备: 键盘、鼠标、扫描仪、手写笔 输出设备: 显示器,打印机,绘图仪;
E N D
主 要 内 容 • 理论基础 Summary √ • 处理器 CPU √ • 汇编语言 Assembly Language √ • 存储器 Memory √ • I/O接口 I/OController • 总线技术
第8章 I/O接口技术 • I/O接口概述 • I/O接口的寻址、I/O指令 • I/O接口的3种工作方式 • 应用实例 • 8255A并行接口 • 8253A定时/计数器
外围设备(I/O Device)特点 • 输入设备:键盘、鼠标、扫描仪、手写笔 • 输出设备:显示器,打印机,绘图仪; • 输入兼输出设备:终端,传真机; • 外存储器:磁盘,硬盘、磁带、光盘; • 数据通讯设备:FAX ,MODEM; • 过程控制设备:A/D,D/A,传感器,仪表。 外部设备多种多样,它们在工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大
I/O体系概述 因此,为了解决计算机与种类繁多的外部设备之间 的连接和信息交换,必须有一个信息转换和传输的 设备。一般称为 I/O接口或 I/O Controller。
并行硬盘接口 Parallel ATA 俗称IDE接口 串行硬盘接口 Serial ATA
数据寄存器:保存外设给CPU或CPU发往外设的数据数据寄存器:保存外设给CPU或CPU发往外设的数据 • 状态寄存器:保存外设或接口电路的状态 • 控制寄存器:保存CPU给外设或接口电路的命令 备注: 数据信号、状态信号、控制信号都是以“数据”的形式, 通过CPU的数据总线和I/O接口通信的。
I/O端口与寻址 CPU与外设通信时,传送的信息主要包括数据信息、状态信息和控制信息。 在接口电路中,这些信息分别进入不同的寄存器,通常将这些寄存器在 逻辑统称为I/O端口(Port) 。即: • I/O端口:是指I/O接口中CPU可以读/写的寄存器。 • 数据端口:数据端口是用来存放外设送往CPU的数据或CPU要输出到外设去的数据。这些数据是主机和外设之间交换的最基本的信息,长度一般为1-2字节,数据端口主要起数据缓冲的作用。 • 状态端口:状态端口是用来指示外设的当前状态。每种状态用1位表示,每个外设可以有几个状态位,它们可由CPU读取,以测试或检查外设的状态,决定程序的流程。 • 控制端口:它用来存放CPU向接口发出的各种命令和控制字,以便控制接口或设备的动作。常见的命令信息位有启动位、停止位、允许中断位等。接口芯片不同,控制字的格式和内容是各不相同的,常见的控制字有方式选择控制字,操作命令字等。
I/O端口与寻址 CPU对外设的访问实质上是对I/O接口电路中 相应的端口进行访问,因此和存储器一样, 也需要给所有的I/O端口编址。 I/O端口的编址方式有两种: 存储器编址方式(统一编址) 独立编址方式
I/O端口与寻址 • 存储器映像编址(统一编址): • 将I/O接口所有的端口和存储单元合并统一编址,在这种方式中,把每个I/O端口像存储器的一个单元来对待 优点是: CPU对外设的操作可使用全部的存储器操作指令,无需额外增加对I/O操作的指令 内存和外设的地址分布连续统一 硬件上不需要设计区分是存储器还是I/O操作的控制信号 缺点是: 外设占用了内存单元,使内存容量减小
I/O端口与寻址 • 独立编址: • 将I/O接口所有的端口和存储单元分别独立编址,内存地址空间和I/O地址空间是相互独立的。 优点是: I/O端口不占用存储器的地址空间 I/O指令短、执行速度快、译码简单 缺点是: 对I/O的访问需要增设专门的I/O指令 I/O指令功能相对较弱,一般只有传送功能,而没有运算功能
两种编址方式示意图 I/O端口 存储 单元 220 字节 216 存储器映像编址 (统一编址) I/O端口 内存单元 独立编址方式
PC的I/O架构 (独立编址) • 我们的PC机采用的是独立编址方式, 有专门的I/O指令。 • 访问存储器 • 使用20根地址线A0~A19 • 使M/IO#=1 • 内存地址范围为00000H~0FFFFFH共1MB • 访问I/O端口 • 使用低16根地址线A0~A15 • 使M/IO#= 0 • I/O端口地址范围为0000H~0FFFFH共64K
总结: • 每一个I/O端口对应一个I/O地址,CPU由端口地址区分I/O端口从硬件角度看,端口可以理解为寄存器。 • 在I/O操作中,主要有三类信息:数据信息、状态信息和控制信息 分别存放于相应的端口。 • CPU对外设的控制,是通过对接口电路中各I/O端口的 读/写操作完成的。
I/O指令(IN、OUT) 在PC中,所有和I/O的操作均使用I/O指令,即 IN 和 OUT IN:完成I/O向CPU的数据传送(即从I/O读信息) OUT:完成CPU向I/O的数据传送(即向I/O写信息) 指令格式如下: 输入: IN AX,Port IN AL,Port 输出: OUT Port,AX OUT Port,AL Port是某个端口的地址值,且port<256 例: IN AX,0028H MOV num1,AX 把端口地址为28H的内容经AX送num1存储单元 OUT 0005H,DL
I/O指令(IN、OUT) 特殊情况:如果端口地址>256(00FFH),那么需先把端口地址放在DX寄存器内 其指令格式如下: 输入: MOV DX,XXXXH IN AX,DX 或 IN AL,DX 输出: MOV DX,XXXXH OUT DX,AX 或 OUT DX,AL XXXXH为大于 256(00FFH)的地址值 例: MOV DX,03FCH IN AX,DX 把端口地址为03FCH的内容送AX 端口的宽度(8位还是16位)取决于该I/O的硬件特性
I/O程序举例(发声程序) 61H端口属于Intel 8255A(并行接口)
sound源程序 MOV DX,100 IN AL,61H AND AL,11111100B sound: XOR AL,2 OUT 61H,AL MOV CX,0ffffh DELAY: LOOP DELAY DEC DX JNE sound
I/O接口的工作方式 程序查询方式 Query: 由CPU主动通过I/O指令询问指定设备的当前状态 中断处理方式 Interrupt: 由I/O设备主动提出服务请求(即中断申请) DMA控制方式 Direct Memory Access: 即直接存储器存取
程序查询方式的特点: 程序查询方式解决了CPU与外设工作的协调问题,但是却大大降低了CPU的使用效率 在程序查询方式中,CPU处于主动地位,外设处于消极等待查询的被动地位; 设备较多时,外设就需要排队 适用场合: 这种传送方式适用于一般工作速度较慢的 外设,特别是外设数量不多,实时性要求 不高的场合。 程序查询方式逻辑示意图
中断方式 在查询传送方式中,CPU要不断地询问外设,当外设没有准备好时,CPU要等待,不能进行别的操作,这样就浪费了CPU的时间。而且许多外设的速度是较低的,如键盘、打印机等等,它们输入或输出一个数据的速度是很慢的。 为了提高CPU的效率,可采用中断的处理方式:CPU正常运行,当某个外设需要与CPU交互时,由接口向CPU 发出中断(打断)请求,CPU就暂停原执行的程序(称为实现中断),转去执行与该外设的操作(称为中断服务),待操作完成后即返回原中断点,CPU再继续执行原来的程序。这种模式就是中断。
外 设 发申请 中断服务程序 发申请 中断服务程序 中断方式下CPU执行程序流程
中断方式的特点 • 外设把数据准备好时,主动向CPU发出一个请求信号 • CPU接收到请求信号后,暂停当前的工作,进行该设备的数据传送操作。 • 赋予外设 “主动权”之后,CPU可以不必反复查询该设备的状态,而是正常地处理系统任务。 • CPU与外设处于某种“并行工作”的状态,从而提高CPU的工作效率。
中断源 • 打印机突然掉电了,CPU能否坐视不管? • 除数为零,CPU能否坐视不管? 引起中断的原因,或能发出中断请求的来源,称为中断源。 常分为 硬中断(也称外中断) 软中断(也称内中断,异常) 硬中断不可屏蔽,一般来源于各种硬件故障,CPU必须紧急处理。CPU的NMI引脚专门负责硬中断信号 软中断一般来源于各I/O接口、INT指令,除0错误、单步调试等。 CPU的INTR引脚专门负责软中断信号 备注:标志寄存器中的IF标志控制CPU是否响应中断或屏蔽中断
中断优先级与嵌套(了解) • 当有多个中断源同时请求时,CPU就要识别出是哪些中断源有中断请求,辨别和比较它们的优先权(Priority),先响应优先权级别最高的中断申请。另外,当CPU正在处理中断时,也要能响应更高级的中断申请,而屏蔽掉同级或较低级的中断请求。
中断处理过程(领会) 当CPU响应中断请求后,一般执行以下步骤: • 设置IF标志(CLI或STI) • 保护现场(如CS,IP等入栈) • 转入相应的中断服务程序 • 恢复现场(一般是先前入栈的内容出栈) • 中断返回指令
中断控制器 Intel 8259A 所有上述和中断有关的实现均是由专门 的硬件芯片实现的,最常见的就是Intel 8259A,一个典型的中断控制器
中断控制器Intel 8259A • 具有8级优先权控制,通过级连可扩展至64级优先权控制。 • 每一级中断都可以屏蔽或允许。 • 在中断响应周期,8259A可提供相应的中断向量,从而能迅速地转至中断服务程序。 • 8259A有几种工作方式,可以通过编程来进行选择。
8259A的编程 • 初始化编程: 由CPU向8259A送2~4个字节的初始化命令字ICW(Initialization Command Word)。在8259A开始正常工作之前,必须先送初始化命令字。 • 工作方式编程: 由CPU向8259A送3个字节的工作命令字OCW(Operation Command Word)。以规定8259A的工作方式。
中断方式的不足 • 中断方式仍是由CPU通过程序来传送,每次要保护断点,保护现场需用多条指令,每条指令要有取指和执行时间。这对于一个高速I/O设备,以及成组交换数据的情况,例如磁盘与内存间的信息交换,就显得速度太慢了
DMA方式 对于一些高速外设,如高速磁盘控制器,中断方式往往满足不了它们的需要。 为此,提出了数据在I/O接口与存储器之间的传送,不经CPU的干预, 而是在专用硬件电路的控制下直接传送。 这种方法称为直接存储器存取(Direct Memory Access,缩写为DMA)。 此时,数据传送速度仅受存储器的存取速度和外部设备传输特性的限制。
DMA 传送方式过程 CPU 内存 总线 请求 总线 响应 外设 DMA Controller
DMA传送方式的特点 外设和内存之间,直接进行数据传送,不通过CPU。 进入DMA方式时不必保护CPU的现场。 传送数据方式由硬件代替软件,因而提高了数据传送的速度,缩短了数据传送的响应时间,传送效率高。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。 电路结构复杂,硬件开销较大,提高了系统的成本。因此,只要CPU来得及处理的数据传送,就不必采用DMA方式。
常见的I/O接口(掌握) • Intel 8259A 中断控制器 • Intel 8237A DMA控制器 • Intel 8255A 并行控制器 • Intel 8253A/8254 计时/定数器
总结 • 输入输出概述。 • 外设接口的特性和基本结构 • I/O端口的编址方式 • 数据传送的控制方式 • I/O接口的3种工作方式 • 查询 • 中断 • DMA • 典型的I/O接口