首页 > 代码库 > I/O系统(二)

I/O系统(二)

程序查询流程
1测试指令,查询IO设备是否就绪。
2传送指令,当已经就绪时,执行传送功能。
3转移指令,未就绪时,转移至继续测试IO设备的状态。
技术分享
当需要启动某一IO设备时,必须将该程序插入到现行程序中。
1,由于这种传送数据时要占用CPU寄存器,先将寄存器内容保护起来。
2,传送的是一批数据,先设置IO设备与主机交换数据的计数值
3,设置欲传送数据在主存缓冲区的首地址
4,CPU启动IO设备
5,将IO接口中的设备状态标志取至CPU并测试IO设备是否准备就绪。如果就绪就传输,如果没就绪等待。
6,CPU执行IO指令,或从IO接口的数据缓冲寄存器读一个数据,或把一个数据写入IO接口中的数据缓冲寄存器内,同时将接口中的状态标志复位。
7,修改主存地址。
8,修改计数值。
9,判断计数值
10,结束IO传送,继续执行现行程序。


程序中断方式

中断接口:
1,中断请求触发器和中断屏蔽触发器
每台设备必须配置一个请求触发器INTR,当为1时,表示该设备向CPU提出中断请求。提出中断请求时,本身必须准备就绪。多个中断源向CPU提出中断请求时,CPU必须坚持一个原则,即在任何瞬间,只能接受一个中断请求。其他的进行排队,接受级别高的。在IO接口中设置一个屏蔽触发器MASK,当为1时,表示屏蔽,即封锁其中中断源的请求。请求触发器和屏蔽触发器在IO接口中是成对出现的。
CPU总是在统一的时间,每条指令执行阶段的最后时刻,查询所有的设备是否有中断请求。
技术分享
仅当设备准备就绪D=1,设备未屏蔽MASK=0,CPU中断查询信号可将中断请求触发器设置为1,INTR=1

2排队器
多个中断源同时向CPU提出请求时,根据性质不同,给予不同等级的优先权。速度越高的IO,优先级越高,因为若CPU不及时响应高速IO请求,其信息可能立即丢失。

3中断向量地址形成部件
一旦响应了IO中断,就要暂停现行程序,转去执行改设备中的中断服务程序。每个服务程序都有一个入口地址。
硬件方法寻找地址:通过向量地址来寻找设备的中断服务程序入口地址。中断向量地址形成部件的输入时来自排队器的输出INTP1,INTP2...INTPN。它的输出是中断向量,位数与计算机可以处理中断源的个数有关。一个中断源对应一个向量地址。其中12H,13H是向量地址,200,300是打印机服务程序和显示器服务程序入口地址。
技术分享

 

 

技术分享
IO中断处理过程

1,CPU响应中断的条件和时间。
CPU响应中断的时间是每条指令执行阶段的结束时刻。

2,IO中断处理过程。
当CPU通过IO指令的地址码选中某设备后
1,由CPU发动启动IO设备命令,将接口中B设置1,D设置0
2,接口启动输入设备开始工作
3,输入设备将数据传送到数据缓冲寄存器。
4,输入设备向接口发送设备工作结束信号,D设置为1,B设置为0,标志设备准备就绪。
5,当设备准备就绪D=1,且本设备未被屏蔽MASK=0,在指令结束时,由CPU发送出中断查询信号。
6,设备中断请求触发器INTR设置为1,标志设备向CPU提出中断请求,同时,INTR送至排队器,进行中断判优
7,若CPU允许中断EINT=1,设备又被排队选中,进入中断响应。由中断响应信号INTA将排队器输出送至编码器形成向量地址。
8,向量地址送至PC,作为下一条指令的地址。
9,由于向量地址中存放的是一条无条件转移指令,所以指令结束后,转至程序入口地址,开始执行中断服务程序。
10,中断服务程序最后一条指令是中断返回指令,当执行结束,返回到源程序的断点。

以上可以简单的归纳为:中断请求,中断判优,中断响应,中断服务,中断返回。
技术分享

中断服务程序的流程
技术分享
1,保护现场
1)保存程序的断点,由中断隐指令完成。2)保存通用寄存器和状态寄存器内容,由中断服务程序完成。

2,中断服务
对于不同中断请求,服务内容是不同的。比如,打印,显示字符。

3,恢复现场
通常采用取数指令或出栈指令(POP),将保存在储存器或堆栈中的信息送回到原来的寄存器中。

4,中断返回
返回到原来程序的断点处。


DMA方式

DMA特点:

技术分享

在主存和DMA之间有一条数据通路,主存和设备交换信息不需要通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场。适合高速IO或辅存与主存之间的信息交换。若高速IO和CPU同时访问主存,CPU必须将总线占有权给DMA使用,即DMA采用周期窃取的方式占用一个存取周期。


为了有效分时使用主存,通常DMA与主存交换数据时采用的方法:
1,停止CPU访问主存
特点:适用数据传输率很高的IO设备实现成组数据传输。缺点是DMA接口在访问主存时,CPU基本上处于不工作状态或保持原态。可以再DMA接口中设置一个小容量储存器,使IO设备先与小容量储存器交换数据,然后再与主存交换。减少占用时间。减少CPU暂停工作时间。

2,周期挪用
每当IO设备发出DMA请求时,IO设备便挪用或窃取总线占用权,或几个主存周期,而DMA不请求时,CPU扔继续访问主存。
UI设备请求DMA传送三个情况:
1,CPU不需要访问主存,IO设备与CPU不冲突。
2,IO请求DMA传送时,CPU访问主存。此时等存取周期结束,CPU才能将总线占有权让出。
3,IO设备访问主存时,CPU也要访问,出现冲突。IO设备优先于CPU,窃取存储周期,延缓了CPU访问主存。

IO设备每挪用一个主存周期都要申请总线控制权,建立总线控制权和归还总线控制权。周期挪用的方法比较适合IO设备的读写周期大于主存周期。

3,DMA与CPU交替访问。
此方法适合CPU工作周期比主存存取周期长的情况。这种情况下不需要总线使用权的申请,建立和归还。


DMA接口功能和组成

DMA接口功能:
1,向CPU申请DMA传送
2,在CPU允许DMA工作时,处理总线控制权的转交,避免进入DMA而影响CPU正常活动。
3,在DMA期间管理系统总线,控制数据传输。
4,确定数据传送的起始地址和数据长度,修正传输过程中的数据地址和数据长度。
5,在数据块传送结束时,给出DMA操作完成的信号。

接口基本组成:
1,主存地址寄存器AR
AR用于存放主存中需要交换数据的地址。
2,字计数器WC
WC用于记录传送数据的总字数,通常交换字数的补码值预置。
3,数据缓冲寄存器BR
BR用于暂存每次传送的数据。
4,DMA控制逻辑
5,中断机构
当字计数器全0时,表示数据交换完毕,由溢出信号通过中断向CPU发出中断请求。
6,设备地址寄存器DAR
存放IO设备的设备码


DMA工作过程

1,预处理
在DMA接口开始工作之前,CPU给他预置信息。
DMA逻辑控制指明传输方向,读主存,写主存。
DMA设备地址寄存器送入设备号,启动设备
DMA主存地址寄存器送入交换数据的主存起始地址
对字计数器赋予交换数据的个数。
2,数据传送
DMA以数据块为单位传送的。

            \\
             \\_
          .---(‘)
        o( )_-\_

3,后处理
包括校验送入主存数据正确性,是否继续传送等。

DMA接口和系统接连方式




与程序中断方式相比,DMA方式特点:

1,程序中断方式靠程序传输,DMA靠硬件传输。
2,中断在一条指令执行结束时响应,DMA在指令周期内任意存取周期结束时响应。
3,中断有异常处理事件能力,DMA没有。
4,中断需要保护现场,DMA不中断程序,无需保护现场。
5,DMA优先级比中断高。

DMA接口类型

1,选择型DMA接口
2,多路型DMA接口

技术分享

I/O系统(二)