输入输出中断总结第1篇
适用于高速的外围设备,接口以某一确定的时钟速率和外设交换信息。因此,这种方式称为同步定时方式。一旦接口和外设确认同步,它们之间的数据交换便靠时钟脉冲控制来进行。例如,若外设是一条传送2400位/秒的同步通信线路,那么接口即每隔1/2400秒执行一次串行的输入/输出操作。
i/o与外设之间依据外设的速度,有无条件传送、异步传送和同步传送3种方式,那么接下来我们学习下CpU与i/o接口之间的数据传送方式。为了便于理解,我们先思考一个幼儿园阿姨分糖的案例:
假设幼儿园一个阿姨带10个孩子,要给每个孩子分2块水果糖。假设老师需要确认孩子们把2块糖都吃完,那么她采用什么方法呢?(4种发送方法)
(1)阿姨给孩子甲一个,等候吃完后再给甲第二个,等候吃完再去给第二个孩子乙,如此类推,效率最低,阿姨始终处于等待中。(对应程序查询方式)
(2)阿姨给全部孩子每人一个,哪个孩子吃完后和阿姨要第二个,效率较高,阿姨可以去处理一些临时事情。(对应中断方式)
(3)阿姨给全部孩子每人两个,谁吃完后报告给阿姨,相当于计算机中的批量处理,效率明显提升。(对应Dma方式)
(4)阿姨把权力进行下放,委托给一个孩子进行糖果发放,只需要时不时进行过问即可,效果更高。(对应通道方式)
输入输出中断总结第2篇
有问题大家可以在评论下面留言讨论,欢迎纠错!
欢迎收藏阅读,动动小手给个硬币点个赞。
——@正能量的康sir
也可移步我的博客(_33956508)会更新一些其它技术类文章。
了解和掌握:
i/o接口的基本功能
i/o端口及其编址方式
i/o地址译码
1.i/o接口
接口要解决的问题
速度匹配——数据的缓冲与暂存
信号的驱动能力——信号驱动
信号形式和电平的匹配——信号类型转换
信息格式——信号格式转换
时序匹配(定时关系)
总线隔离——三态门
接口的基本构成
暂存输入、输出数据
保存外设当前状态,供CpU读取
存放控制命令(设定接口功能、参数和工作方式)
2.i/o端口及其编址
端口:接口电路中用于缓存数据及控制信息的部件
数据端口
状态端口
控制端口
i/0端口编址
计算机系统中包含各类不同功能的接口电路。
每个接口中含1个或多个端口。
端口编址
为确保CpU能够访问到每个不同的端口
寻址端口的方法:
先找到端口所在的接口电路芯片
再在该芯片上找具体访问的端口
若接口中仅有一个端口,则找到芯片即找到端口
若接口中有多个端口,则找到芯片后需再找端口
每个端口地址=片选地址(高位地址)+片内地址
8086/8088寻址端口的能力:64K个端口
端口的编址方式:
与内存统一编址
独立编址(内存地址资源充分利用。能够应用于端口的指令较少。)
8088/8086的i/o端口编址
采用i/o独立编址方式,与内存共用地址总线,用io/#m信号状态区分
访问端口时仅使用地址总线的:a15~a0
可寻址的i/o端口数为64K(65536)个,i/o地址范围:0~FFFFH
iBmpC只使用了1024个i/o地址(0~3FFH)
3.i/o地址译码
目的:确定端口的地址
参加译码的信号:#ioR,#iow,高位地址信号
(oUt指令将使总线的#iow信号有效。in指令将使总线的#ioR信号有效)
对端口读/写信号的产生条件:
io/#m=1
#RD=0——>#ioR=0
#wR=0——>#iow=0
当接口只有一个端口时:
无片内地址,全部地址信号均为高位地址(可全部参与译码),译码输出直接选择该端口;
当接口具有多个端口时:
则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。
由于端口资源丰富,端口地址译码常采用部分地址译码
i/o地址译码例
某外设接口有4个端口,地址为2F0H——2F3H,由a15~a2译码得到,而a1、a0用来区分接口中的4个端口。试画该接口与系统的连接图。
地址范围:
××××001011110000
××××001011110011
了解和掌握:
不同类型接口的特点
三态门接口
锁存器接口
1.接口的分类及特点
按传输信息的方向分类:输入接口、输出接口
按传输信息的类型分类:数字接口、模拟接口
按传输信息的方式分类:并行接口、串行接口
接口特点
输入接口:要求对数据具有控制能力常用三态门实现
输出接口:要求对数据具有锁存能力常用锁存器实现
2.三态门接口
特点:具有对数据的控制能力,但不具备对数据的控制能力
C低电平有效。C有效时,导通,Y始终等于X,当C无效时,Y和X断开
C高电平有效(看C那里没有圈圈)。
74LS244
含8个三态门的集成电路芯片
在外设具有数据保持能力时用来输入接口
三态门接口应用例
编写程序:
判断图中的开关状态。若所有开关都闭合,则程序转向标号neXt1,否则转向标号为neXt2的程序段执行。
采用了部分地址译码,地址线a1和a0未参加译码。
接口芯片的地址范围:
83FCH~83FFH当地址总线上a15~a0出现此4个地址之一时,#e1#e2端有效,三态门导通。
题目分析:
当开关断开时,三态门输入端i呈现高电位;
当开关闭合时,三态门输入端i呈现低电位;
m0VDX,83FCH
inaL,DX
anDaL,0FFH;改变状态位标志而不改变操作数
JZneXt1;ZF=1说明aL=00H也就是说8个i都是低电平
JmpneXt2
neXt1:
neXt2:
3.锁存器接口
(每当Cp处于脉冲的上升沿时,C的状态会锁存在Q里,Q非锁存Q相反状态。平沿下降沿都不会改变)
特点:
具有对数据的锁存能力
8D锁存存器
74LS273:8D触发器,不具备数据的控制能力。只能做输出接口
74LS373:含三态的8D触发器,具有对数据的控制能力。既可以做输入接口,也可以做输出接口。
74LS273
由8个D触发器组成
(Cp为脉冲输入端,在每个脉冲的上升沿将输入端Di的状态锁存在Qi输出端,并将此状态保持到下一个时钟脉冲的上升沿)
锁存器接口例:
应用74LS273作为输出接口,实现对8个发光二极管的控制。
题目分析:
由图得,要使接到Q端的发光二极管亮,其对应的Q端须输出“1”状态,反之输出“0”状态。
(a0-a15都是1时,与非门是0,产生不了上升沿。#iow由0到1的跳变,使或门由0到1也跳变,产生上升沿,可做触发。)
由图得出锁存器74LS273的端口地址:FFFFH
程序段:
moVDX,0FFFFH;数字的第一个数符是字符型时其前要加0
moVaL,01000001B
oUtDX,aL
基本输入/输出方法
无条件传送
查询式传送
中断方式传送
直接存储器存取(Dma)
(无条件传送、查询式传送属于程序控制方式)
1.无条件传送
要求外设总是处于准备好状态
优点:
软件及接口硬件简单
缺点:
只适用于简单外设,适应范围较窄
无条件传送例
读取开关的状态;当开关闭合时,输出编码使发光二极管亮。
2.查询工作方式
仅当条件满足时才能进行数据传送;
每满足一次条件只能进行一次数据传送。
适用场合:
外设并不总是准备好
对传送速率和效率要求不高
工作条件:
外设应提供设备状态信息
接口应具备状态端口
查询工作方式流程图
优点:软硬件比较简单
缺点:CpU效率低,数据传送的实时性差,速度较慢
3.中断控制方式
特点:外设在需要时向CpU提出请求,CpU再去为它服务。服务结束后或在外设不需要时,CpU可执行自己的程序。
优点:CpU效率高,实时性好,速度快。
缺点:程序编制相对较为复杂。
以上三种i/o方式的共性:
信息的传送均需通过CpU
软件:外设与内存之间的数据传送是通过CpU执行程序来完成的(pio方式);
硬件:i/o接口和存储器的读写控制信号、地址信号都是由CpU发出的。
缺点:程序的执行速度限定了传送的最大速度
CpU掌握总线控制权
i/o过程由CpU控制;地址信号、控制信号均由CpU产生。
4.直接存储器存取方式Dma
特点:
外设直接与存储器进行数据交换,CpU不再担当数据传输的中介者;
总线由Dma控制器(DmaC)进行控制(CpU要放弃总线控制权),内存/外设的地址和读写控制信号均由DmaC提供。
Dma控制方式的工作过程
①外设向Dma控制器发出“Dma传送请求”信号DRQ;
②Dma控制器收到请求后,向CpU发出“总线请求”信号HoLD;
③CpU在完成当前总线周期后会立即发出HLDa信号,对HoLD信号进行响应;
④Dma控制器收到HLDa信号后,就开始控制总线,并向外设发出Dma响应信号DaCK。
Dma工作方式
周期窃取:每个Dma周期只传送一个字节或一个字就立即释放总线。
数据块传送:DmaC在申请到总线后,将一块数据传送完后才释放总线,而不管中间DReQ是否有效。
直接存取方式:Dma的数据传送请求直接发到主存储器,在得到响应后,整个工作过程在Dma控制器中由硬件完成。
周期窃取的Dma方式
4种基本i/0控制方式总结
无条件传送:
简单,适用范围小,仅适用于“随时准备好”的低速外设
查询工作方式
简单,适用于具备“状态信息”的低速外设
CpU效率低,控制实时性差
中断方式
适用于中速外设
相对于查询方式,CpU效率较高,控制实时性较好
Dma方式:
数据传输由Dma硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率。
控制复杂,硬件成本相对较高
外设状态端口地址为03FBH,第5位(bit5)为状态标志(=1忙,=0准备好);外设数据端口地址为03F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0。
要求:
画出该控制系统电路图
利用查询工作方式,将Data下100B数据输出。
题目分析:
外设有1位状态位,需要通过输入接口将状态信息输入系统;
可选择一个三态门或74LS244接口
数据需由系统输出,需要通过输出接口
可选择74LS273接口
输入接口地址=03FBH,bit5=1表示“忙”
输出接口地址=03F8H
待输出数据在内存中的首地址=Data;
待输出数据块大小=100B
控制程序
LeaSi,Data
moVCX,100
aGain:moVDX,03FBH
waitt:inaL,DX
teStaL,20H
JnZwaitt
moVDX,03F8H
moVaL,[Si]
oUtDX,aL
inCSi
LoopaGain
HLt
根据开关状态在7段数码管上显示数字或符号
设输出接口的地址为F0H,输入接口地址为F1H;(仅给出8位地址,为部分地址译码)
当开关的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’
题目分析:
输入设备:4个开关
输出设备:1个七段数码管
需要1个输入接口,1个输出接口
理解和掌握:
1中断的基本概念
2中断响应的一般过程
3中断向量表
48088/8086中断系统
1.中断的基本概念
中断:CpU执行程序时,由于发生了某种随机的事件(中断源)(外部或内部),引起CpU暂时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务(处理)子程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。
引入中断的原因
提高对外设请求的响应实时性。
提高了CpU的利用率。避免了CpU不断检测外设状态的过程。
中断类型
根据中断请求的来源分为:
内部中断
异常中断——异常事件引起
软件中断——中断指令引起
外部中断
可屏蔽中断——intR中断可屏蔽意思是如果CpU有比响应此中断更重要的就可屏蔽此中断
非屏蔽中断——nmi中断必须响应
外部可屏蔽中断
2.外部可屏蔽中断响应的一般过程
中断请求
中断源识别及中断判优
中断响应
中断处理(服务)
中断返回
1)中断请求
外部可屏蔽中断请求信号:intR
中断请求信号应保持到中断被处理为止;
CpU响应中断后,中断请求信号应及时撤销
2)中断源识别
软件查询法
中断矢量法——由中断源提供中断类型号,CpU根据类型确定中断源
中断判优(当有多个中断源同时提出请求时,响应谁?)
优先级法则:低优先级的中断程序允许被高优先级的中断源所中断
排队法则先:来先响应
中断源识别及判优由硬件系统完成
中断源判优
中断控制器判优:根据中断向量码(中断类型码)确定中断源
3)中断响应
外部可屏蔽中断响应信号:#inta
向中断源发出#inta中断响应信号;
关中断——不允许响应其它中断
保护硬件现场——将FLaGS压入堆栈
保护断点——将CS、ip压入堆栈
获得中断服务程序入口地址
由硬件系统完成
4)中断处理
执行中断服务子程序
中断服务子程序的特点:为“远过程”、用iRet指令返回
中断服务子程序完成的工作
关中断,保护现场,保护断点,找入口地址
保护软件现场(参数)
开中断(Sti)
中断处理
关中断(CLi)
恢复现场
中断返回
5)中断返回
执行iRet指令,使ip、CS和FLaGS从堆栈弹出(恢复断点和硬件现场)
中断处理过程
3.中断向量表
存放各类中断的中断服务程序的入口地址;
位于内存的00000H~003FFH。
每个入口占用4Bytes,低字为段内偏移,高字为段基址;
中断向量表大小为1KB,共256个入口。
4.8088/8086中断系统
256个中断源
内部中断
异常中断:除法错中断溢出中断单步中断。。。
软件中断
外部中断
非屏蔽中断
可屏蔽中断
8088内部中断与nmi中断
内部中断特点:
无#inta周期
中断类型码固定或由指令给出
8088/8086中断响应和处理流程
应理解:
i/o接口的基本概念和功能
什么是端口?
i/o端口的编址方式
4种基本i/o方法的特点及适用场合
什么是中断?什么是中断向量表?
中断响应的一般过程
应掌握:
i/o接口译码电路设计方法
利用无条件传送或查询方式实现对简单外设的控制
利用三态门接口和锁存器接口芯片实现对简单外设的控制
注意点与常见问题
4种基本输入输出方法各自的应用场合
无条件传送方式:
外设随时处于“准备好”状态,且不能提供状态信息
查询方式:
外设必须要能够提供状态信息
中断方式:
外设必须具备发出高电平中断请求信号的能力
常用于实时性要求较高的中速外设控制
Dma方式
整个输入输出由硬件系统完成,适用于高速外设。
简单接口电路设计
译码电路设计访问端口最多16位地址信号
总线信号访问i/o端口的读写控制信号
接口系统的译码电路常采用部分地址译码
中断技术
中断响应的一般过程
中断向量表每个表项的含义
输入输出中断总结第3篇
中断是一种程序随机切换的方式,有时也统称为异常。
当外部发生某些随机的事件需要及时处理时,无论CpU正在执行哪一条指令,都可以通过中断响应的方式暂停正在执行的主程序的执行,转而执行另外一段中断服务程序。在高优先级的中断服务程序执行完毕后,可以返回被打断的主程序“断点”继续执行。主程序只是在设备a、B、C数据准备就绪时,才去与设备a、B、C进行数据交换。在速度较慢的外围设备准备自己的数据时,CpU照常执行自己的主程序。在这个意义上说,CpU和外围设备的一些操作是并行地进行的,因而同串行进行的程序查询方式相比,计算机系统的效率大大提高了。
输入输出中断总结第4篇
向量中断是CpU快速响应中断的方法,中断机构提供中断源的向量地址,这个地址指向中断服务程序的入口。所有中断的向量信息都存在一个中断向量表里,CpU用这个表快速找到并执行对应的服务程序。特点,由硬件完成
图中,a1、a2到an为n个中断向量的向量地址;pC1、pC2到pCn为各个中断服务程序的入口地址,在中断响应时由硬件自动加载到程序计数器pC中;pSw1、pSw2到pSwn为各个中断服务程序开始执行时的初始程序状态字,在中断响应时由硬件自动加载到程序状态字寄存器pSwR中。
输入输出中断总结第5篇
按上述步骤执行时CpU资源浪费严重,所以实际执行时做了改进:CpU在执行主程序时,会周期性地调用询问子程序来检查各i/o设备的状态。如果设备准备好了(Ready为“1”),就执行它的服务子程序;如果没准备好(Ready为“0”),就检查下一个设备。这样,CpU能更有效地利用资源。
我们介绍了CpU与i/o接口的程序查询方式,但其消耗的CpU时间是可观的,适用于低速设备和CpU任务不繁重的情况。那么我们改如何进行改进呢?接下来我们讲解第二种数据传送方式,程序中断方式。