目录
一、外部设备概述
外部设备在计算机系统中的作用:
- 人机对话的重要设备(交互)
- 完成数据媒体变换的设别(转换)
- 计算机系统的软件和信息的驻扎地(存储)
- 计算机在各个领域应用的重要工具
外设的特点:①工作速度差异大;②结构原理差异大;③时序独立、异步性明显
- 外设处理的信息不可能直接与CPU兼容:数据格式、逻辑时序不同
- 计算机与I/O设备间的连接与信息交换不能直接进行,必须设计一个“接口电路”作为两者之间的桥梁,使CPU和外设协调工作
- I/O接口电路:I/O适配器(I/O Adapter)
设置I/O接口的原因:
- 外部设备工作的异步性:外部设备的工作时钟与时序是独立的,与微处理器的工作时序不同
- 速度上的差异:微处理器速度快,外部设备工作速度慢
- 信号线及数据格式不同
- 有利于提高微处理器的工作效率:解放CPU
- 便于外设自身的发展:多样化
外设的分类:
(1)按照功能:输入设备、输出设备
- 输入设备:将各种形式的外部信息转换成计算机所能识别的二进制信息(键盘、鼠标、扫描仪、光笔、触摸屏、A/D转换器)
- 输出设备:将计算机中的二进制信息转换成各种形式的人或其他机器所能识别的信息形式(显示器、打印机、绘图仪、D/A转换器)
(2)按照外设的工作速度:低速设备(键盘、鼠标、打印机)、中速设备、高速设备(磁盘)
(3)按照外设在计算机系统中所起的作用:人——机交互设备、外存储器设备、通信设备
外设的编址方式(同一个系统中,可以同时使用不同编址方式)
(1)统一编址:一个I/O接口等同于一个存储器单元(存储器映像),主存和I/O设备共用同一个地址空间
- 优点:①指令系统不设置专用的I/O指令,用访存指令来访问I/O接口,通过地址来区分访问的是存储器还是I/O设备;②外设数目和I/O寄存器数几乎不受限制;③读写控制逻辑较简单(可以没有IOR和IOW信号)
- 缺点:①I/O端口占用部分主存空间,可用主存空间减少;②访存指令较长,执行速度较慢;③I/O端口地址译码电路复杂,译码时间较长
(2)独立编址:I/O端口地址空间与存储器地址空间独立。指令系统设置专用的I/O指令,用I/O指令来访问I/O端口,用访存指令来访问存储器
- 优点:①I/O端口地址不占用存储器地址空间;②I/O端口数量不多,占用地址线少,地址译码简单,速度较快;③使用专用的I/O命令(IN、OUT),指令短,执行速度快,可读性强
- 缺点:①专用I/O指令增加指令系统的复杂性,且I/O指令类型少,程序设计灵活性较差;②要求处理器提供 MEMR/MEMW 和 IOR/IOW 两种控制信号,增加了控制逻辑的复杂度
CPU与外部设备的连接:外设系统通过总线与CPU连接
CPU访问外设的实质:访问外设接口中的寄存器(端口)
相比于存储器的访问,CPU访问外设的过程是完全等同的,不同的是所发送的读写信号有区别。
I/O指令格式
- Intel微处理器的I/O指令主要有两条:IN和OUT
- IN指令将外设端口中的数据读入累加寄存器AL(AX)中
- OUT指令将累加寄存器AL(AX)的数据写入外设端口
二、输入输出接口
I/O接口的功能:
- 实现数据缓冲
- 执行CPU的命令
- 返回外设状态
- 设备选择
- 实现数据格式的转换
- 实现信号的转换
- 中断管理功能
I/O接口的组成:
(1)基本电路:寄存器及其逻辑控制
- 命令寄存器(控制寄存器)及其译码器:保存CPU的命令
- 数据缓冲寄存器:保存交换的数据
- 状态寄存器:保存外设的状态
(2)端口地址译码电路:对地址总线上的外设地址进行译码,用以自我识别
(3)供选电路:中断控制逻辑、定时器、计数器、移位器等可选器件
三、主机与外设交换信息的方式
(1)程序查询方式
(2)程序中断方式
(3)直接存储访问(DMA)方式
- 特点:数据的传送不经过CPU(由DMAC控制),而I/O设备管理由CPU控制,简化了CPU对I/O的控制。硬件开销大,结构复杂,但CPU效率高。
- 应用:适用于高速大量数据传送时。
(4)通道与输入输出处理机方式
- 通道是一个具有特殊功能的处理器,它可以实现对外部设备的统一管理与内存之间的数据传送
- 特点:能独立的执行用通道指令编写的输入输出控制程序,产生相应的控制信号送给由它管理的设备控制器,继而完成复杂的输入输出过程
- 要求:需要具有特殊功能的处理器,某些应用中称为输入输出处理器(IOP)
- 应用:适用于高速度大量数据传送时
- 输入输出处理机(IOP)又称作外围处理机(PPU),它是通道方式的进一步发展。这种PPU基本上独立于主机工作,它的结构更接近一般处理机,甚至就是微小型计算机
- 特点:I/O设备机接管了CPU的各种I/O操作及I/O控制功能,CPU能与IOP并行工作
- 要求:需要IOP支持
- 应用:高速I/O设备归IOP管,低速I/O设备归CPU管
四、中断系统
中断:在CPU执行程序的过程中,由于某些事情发生,CPU暂时停止正在执行的程序而转向对所发生的事件进行处理,当对事件的处理结束后又能回到原来中止的地方,接着中止前的状态继续执行原来的程序,这一过程称为中断。
中断源:由于某些原因引起CPU中断的事件或设备
中断源的分类:
(1)硬中断:由外部设备和其他CPU外部事件所引起的中断,因此又叫外中断。
- 常见的外中断:输入输出请求、实时时钟、计时器、电源故障、设备故障、校验线路等等
- 外中断一般通过CPU的中断请求引脚引入
(2)软中断:指CPU内部指令或程序执行过程中的突发事件所引起的中断,又叫内中断
- 常见的内中断:指令中断(例如中断指令INT n)和程序异常(例如除0操作、运算溢出、指令的单步运行、程序运行至断点处等等)
中断类型号:对所有的中断源进行编码,为其分配的一个唯一的编号
中断类型号的作用:用于寻找中断服务程序的入口地址(中断向量),以实现程序转移
中断向量:指中断源对应的中断服务程序的入口地址
中断过程(包含4个阶段)
(1)中断请求(向CPU申请中断)
- 外中断:外设或其他中断源通过CPU的中断请求引脚向CPU发中断请求信号,CPU在每条指令执行完后,监测是否有中断请求,有则转入中断响应阶段
- 内中断:无需中断请求,直接根据中断类型号转入相应的中断服务程序
(2)中断响应(转入中断服务程序)
- CPU执行中断隐指令(进入中断响应周期):①通过硬件将程序断点(PC)及标志寄存器的信息写入堆栈 / 特殊的寄存器;②通过向量方式 / 软件查询方式,得到中断程序服务的程序入口,并置入PC。
- 中断的优先级判定:如果同一时刻有多个中断源向CPU申请中断,CPU首先响应哪个中断?中断排队与判优电路
- 中断源的识别:CPU如何知道当前响应的是哪个中断源,即转入哪个中断源的中断服务程序入口?向量方式 / 软件查询方式
(3)中断服务(执行终端服务程序)
- ①保护现场,将有关寄存器的内容压栈
- ②处理中断,譬如进行I/O操作,实现数据传送
- ③恢复现场
(4)中断返回
- 执行IRET(中断返回程序),将中断隐指令保存的程序断点和标志读出并送入PC和标志寄存器,从而回到CPU原来的程序断点处继续执行
中断的作用:
- 实现CPU和多台I/O设备并行工作
- 具有处理应急事件的能力
- 进行实时处理
- 实现人机通信
- 实现多道程序运行和分时操作
- 实现应用程序(目态)和操作系统(管态)的联系
- 实现多机系统中各处理机间的联系
五、中断请求
中断请求信号的产生
- 计算机的多个中断源随机向CPU发出中断请求,接口为每个中断源设置一个触发器,称为中断请求触发器INTR,当某个触发器有中断请求时,请相应的INTRi=1
- 中断请求信号锁存在中断请求触发器中,等到CPU响应这个中断请求后才清除
- 由多个中断请求触发器构成一个中断请求寄存器IRR,IRR每一位对应一种中断源。中断寄存器的内容称为中断字,中断字中为“1”的位表示对应的中断源存在中断
中断请求信号的监测
- CPU在每条指令执行完毕后,通过检测CPU的中断请求引脚是否有效来达到监测目的
- CPU中断请求引脚有多个,用以监测是否有中断发生
中断屏蔽
- 中断屏蔽触发器INTMi:每一个中断源单独设置一个
- 中断屏蔽寄存器IMR:将所有中断源的屏蔽触发器放在一起构成寄存器,用一个地址相对寻址
中断请求信号的传递
六、中断响应
中断的优先级:当多个中断源同时发生时,CPU对中断源响应的次序
确立中断的优先级的原则:
- ①对一旦提出请求就需要立即响应处理,否则就会造成严重后果的中断源,设定最高的优先级
- ②对可以延迟响应和处理的中断源,设定较低的优先级
- 一般把硬件故障引起的中断优先级设为最高,其次是软件故障中断和I/O中断
中断请求的排队判优:
(1)软件查询:用程序来判定优先级,这是最简单中断判优方法
- 优点:可以灵活地修改中断源的优先级别,硬件电路实现简单
- 缺点:查询、判优完全靠软件实现,需要占用CPU时间,同时中断响应较慢,优先级较低的设备被响应的等待时间较长
- 应用:软件查询法用于一根公共请求线的情况
(2)硬件排队电路:优先级高的中断请求将自动封锁优先级低的中断请求的处理
- 优点:响应速度快
- 缺点:硬件排队电路一旦设计连接好之后,将无法改变其优先级别
- 应用:根据不同的中断方式有不同的电路设计方法,如串行排队链与向量中断、独立请求优先级排队电路、二维结构优先排队判优电路
CPU中断响应的条件:
- CPU的中断使能触发器开放(IE=1,允许中断)
- 在规定的时间内,CPU的中断请求引脚有效
- 该中断未被屏蔽
- 本条指令执行完
CPU中断响应的过程
(1)关中断
- 当CPU响应中断后,立即自动关中断(把内部的中断使能触发器IE清零),禁止接收新的中断,以保证接下来的中断隐指令操作不被打断
(2)保存断点
- 断点信息包括两部分:PC和程序状态字PSW
- 断点通常保存在堆栈中,有些计算机将断点保存在特殊的中断返回寄存器中
(3)识别中断源,转入服务程序入口地址
- 中断源识别的方法有两种:向量中断和软件查询
中断向量:中断服务程序的入口地址
中断向量表:各个中断源的中断向量存放在一片连续的单元中,形成一张表
中断向量地址:中断向量在中断向量表中的单元地址
向量中断:当CPU响应中断时,由硬件(外设接口或中断控制器)自动产生一个指定的地址(向量地址)或者代码(中断类型号),它们与该中断源的中断向量有一一对应关系。由向量地址或中断类型号指出每个中断源设备的中断向量
软件查询(轮询):由CPU执行一个公共的中断处理程序,逐个询问外设接口是否有发出中断请求(测试中断请求触发器),若有中断请求,则转入其中断服务程序的入口开始执行
Intel的X86微处理器的中断向量
七、中断服务
中断嵌套
利用中断屏蔽技术修改中断优先级
中断技术:实现了CPU与外设之间并行工作,提高了输入输出效率,同时它不仅是计算机处理一切随机出现的事件的手段,而且也是计算机系统资源管理的重要方法。
中断屏蔽技术:不仅使得CPU能够禁止或允许某些中断源的中断请求,并且可以灵活的修改中断源的优先级。
CPU在本条指令执行完后,监测中断输入引脚是否中断,若有中断请求,则通过中断隐指令来保护断点和识别中断源,并转入中断服务程序执行。
中断服务程序的最后,通常以中断返回指令,返回断点处。