第三节 输入输出控制
输入输出寻址,轮询I/O方式,中断传送方式,DMA传送方式
1.I/O寻址
在80X86系列CPU中,采用专门的I/O指令来对I/O端口进行输入或输出操作。在CPU中负责与I/O端口交换信息的寄存器只能是AL(8位数据或16位数据)。在输入、输出指令中,直接寻址范围是0~255;通过DX寄存器存放外设的端口地址而间接寻址的范围是0~65535。两个连续的8位端口可以当作一个16位端口来使用。
在PC机中,实际上只有10条地址线(A0~A9)参加I/O端口地址译码,因此实际能访问的I/O端口数为1024。相应的地址空间为000H~3FFH,其中000H~1FFH分配给系统板上的I/O端口,200H~3FFH分配给I/O插卡。所以当地址线A9为高电平时,表示PC机的系统总线与I/O插卡交换数据;A9为低电平时,系统总线为主板上的I/O端口交换数据。
区分访问内存与外设的控制信号是M/IO,当其为低电平时,表示CPU访问I/O设备。为区分读操作或写操作应利用CPU相应控制信号,如IOR表示读I/O端口,IOW表示写I/O端口。在I/O端口的地址译码电路中,还必须使用AEN信号参与译码,AEN是DMA允许地址输出信号,高电平时表示DAM控制器接管地址总线,只有当ANE为低电平时,才表示是CPU接管地址总线,在地址总线上送来的CPU是访问I/O端口的地址,才允许I/O端口进行译码输出。
2.计算机与外设交换信息的方式
计算机与外设交换信息的方式有4种:直接程序传送方式、程序查询方式、程序中断方式和DMA(直接访问存储器)方式。
直接程序传送方式适合于开关和数码显示器等比较简单,可以直接向其输入或输出的器件。程序查询方式适用于那些数据有一个准备与就绪过程的外设,只有外设准备好了,CPU才能进行数据的读写。
程序中断方式使CPU与外设能同时并行地工作,以提高CPU的利用率。DMA方式是计算机与外设高速交换信息的方式,这种方式在DMA控制器的控制下,让外设与内存之间不通过CPU而直接交换数据。由于DMA是用硬件实现这种数据交换的,所以速度很高,并且可以批量传输,适用于高速外设。在DMA开始之前要用程序对DMA控制器芯片进行初始化;在DMA传输结束后,也要用程序进行有关数据的处理工作。
3.计算机与外设之间交换信息的内容
计算机与外设之间交换信息的类型有3种:外设的状态、计算机给外设的命令、双方交换的信息。
4.查询I/O方式
查询方式的程序设计包括如下步骤:①输入I/O设备的状态信息;
②判断I/O设备就绪否?若未就绪,则重新取设备状态继续判断;③若I/O设备已就绪,则执行I/O数据传输。
查询方式所需硬件、软件都很简单,但浪费了大量的CPU时间。为了提高查询方式中CPU的工作效率,可以让CPU依次对多个外设查询,即轮询。
5.程序中断I/O方式
在计算机中专门负责中断处理的硬件和软件称为中断系统。不同类型的CPU,其中断系统的机能不同。
从主程序转向I/O中断服务程序的过程称为中断响应,I/O中断响应是通过硬件实现的。其任务是:
①保存主程序的返回地址;
②转向中断服务程序的入口地址。中断服务程序的任务是:①保护CPU现场;
②开中断(在响应中断的过程中要关中断,以区分一次响应中断的过程。若在本次处理中断的过程中允许响应更高级别的中断,则需及时开中断);③中断服务处理;
④恢复主程序的CPU现场;
⑤在80X86系统中,要向8259发EOI(中断结束)命令,以便执行中断嵌套功能;⑥返回主程序的断点处,以便继续执行主程序。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |