5.1 概述
一 输入输出系统的发展概况
1.早期 2.接口模块和DMA阶段 3.具有通道结构的阶段 4.具有IO处理机的阶段
二 IO系统的组成
1.IO软件
IO软件的主要功能;IO指令;通道指令
2.IO硬件
三 IO设备和主机的联系方式
1.IO设备编址方式(统一编址和不统一编址)
2.设备寻址
3.传送方式
4.联络方式
5.IO设备和主机的连接方式
四 IO设备和主机信息传送的控制方式
1.程序查询方式
2.程序中断方式
3.DMA方式
5.2 IO接口
一 概述
接口的概念;为什么要设置接口;IO接口和IO端口的概念与区别
二 接口的功能和组成
1.总线连接方式的接口电路(数据线 设备选择线 命令线 状态线)
2.接口的功能
选址功能;传送命令的功能;传送数据的功能;反应设备状态的功能
3.IO接口的基本组成(图)
三 接口的类型
按数据传送方式;按功能的选择灵活性;按通用性;按数据传送的控制方式
5.3 程序查询方式
一 程序查询流程
1.查询流程(完成查询通常要执行三条指令)
2.程序流程(图)1.2.3.4.5.6.7.8.
二 程序查询流程的接口电路(图)1.2.3.4.
5.5 程序中断方式
一 中断的概念
二 程序中断方式的接口电路
1.配置INTR和MASK 2.排队器 3.中断向量地址形成部件 4.程序中断方式接口电路基本组成 5.5.IO中断处理过程
(1)CPU响应中断的条件和时间
条件:允许中断触发器EINT=1;(开中断指令置1,关中断指令置0)
时间:D=1且MASK=0时,发中断请求;CPU在每条指令执行的最后阶段查询中断请求,将INTR置1
(2)IO中断处理过程(中断请求 中断判优 中断响应 中断服务 中断返回)
1.2.3.4.5.6.7.8.9.10.
三 中断服务流程(保护现场 中断服务 恢复现场 中断返回)
1.中断服务程序的流程
(1)保护现场
(2)中断服务
(3)恢复现场
(4)中断返回
2.单重中断和多重中断
3.单重中断和多重中断的服务程序流程
5.6 DMA方式
一 DMA方式的特点
1.DMA和程序中断方式的两种数据通路
2.DMA和主存交换数据方式
(1)停止CPU访问主存
(2)周期挪用
(3)交替访问
二DMA接口的功能和组成
1.DMA接口功能:1.2.3.4.5.
2.DMA接口组成(图)
(1)主存地址寄存器AR
(2)字计数器WC
(3)数据缓存寄存器BR
(4)DMA控制逻辑
(5)中断机构
(6)设备地址寄存器DAR
三DMA的工作过程
DMA传送过程(预处理 数据传输 后处理)
(1)预处理
(2)数据传输
(3)后处理
1.早期:分散连接 IO设备通过CPU和主机相连,CPU和IO设备串行工作,使用程序查询方式。
2.接口模块和DMA阶段:IO接口通过接口模块和主机相连; CPU和IO设备之间并行工作(中断方式和DMA方式)
3.具有通道结构的阶段
4.具有IO处理机的阶段
1.IO软件
IO软件的主要功能:将用户编制的程序输入主机内;将运算结果输出给用户;实现输入输出系统与主机工作的协调。
(1)IO指令(CPU指令的一部分):分为操作码,命令码,地址码。
(2)通道指令:又称通道控制字,存放在主存里面,不属于CPU指令系统。用于完成某种外部设备和主存之间传送信息的操作。需要指出数据的首地址,传送的字节数和操作命令和设备码。
2.IO硬件。
在带接口的IO系统中,IO硬件包括接口模块和IO设备两部分;在具有通道或IO处理器的IO系统中,IO硬件包括通道,设备控制器和IO设备等。
1.IO设备编址方式(将IO设备码看做地址码)
(1)统一编址:将IO地址看做存储器地址的一部分,如从64K地址主存空间中取出8K存放IO地址,凡是落入8K地址内的访问均为IO访问,应用存数取数指令。
(2)不统一编址:指IO地址和存储器地址是分开的,所有对IO设备等访问必须用IO专用指令(内存地址空间之外设置存储空间用来存放IO地址)。
(3)统一编址占用了主存空间,减少了主存容量,但无需专有IO指令,只需访存指令即可操作;不统一编址需设置IO指令,没有占用主存空间。
2.设备寻址:每台设备都有设备号,只要将CPU给出的地址与设备号进行识别,用设备选择电路识别是否被选中。
3.传送方式
(1)串行:速度较慢,但只需要一根数据线和一根地址线,适合远距离通信。
(2)并行:传送速度快,使用数据线较多。
4.联络方式(IO和主机之间的联络方式)☆
(1)立即响应:只要CPU的IO指令一到,便立即响应,故该设备无需特殊联络信号。
(2)异步工作:采用应答信号联络,当IO设备和主机工作速度不匹配时,通常采用异步联络方式。
5.IO设备和主机的连接方式
(1)辐射式连接:即分散式连接,不便于增删设备,也不便于设备的移植
(2)总线连接
1.程序查询方式:只要启动IO设备,CPU便会不断查询IO设备的设备情况,从而终止了原程序的执行。CPU和IO设备处于串行工作状态,CPU效率不高。
2.程序中断方式:外部设备发请求,CPU没有原地踏步现象。中断现行程序来读取IO设备的准备状态,IO设备和CPU部分并行工作。(强调部分并行)
3.DMA方式:主存和IO设备之间有一条直接数据通路,不需要中断现行程序
接口可以看做两个系统或两个部件的交接部分,既可以是两种硬件设备之间的联系设备,也可以是两个软件之间的共同逻辑边界。
(1)为什么要设置接口?
实现设备的选择(IO设备编址);实现数据缓冲达到数据匹配;实现数据串并格式转换;实现电平转化;传送控制命令;反映设备状态。
(2)IO接口和IO端口
IO接口和IO端口是不同的概念。端口指可以由CPU进行读或写的寄存器。IO端口指IO接口电路中的一些寄存器,这些寄存器分别用来存放数据信息,控制信息和状态信息,相应端口为数据端口,控制端口和状态端口。若干个端口加上相应的控制逻辑才能形成接口。CPU通过输入指令,从端口读取信息通过输出指令将信息写入端口中。
1.总线连接方式的IO接口电路
(1)数据线:IO设备和主机之间数据传输线,跟输一半等于存储字长的位数或者字符位数。一般为双向,也可为单向传输线。
(2)设备选择线:用来传送设备码,根数取决于IO指令中设备码的位数,又称地址线,也可用双线代替单向。
(3)命令线:用于传输CPU发出的信号,如启动,清除,读,写等。
(4)状态线:将IO设备状态向主机报告的信号线,如就绪,忙,中断请求等。
2.接口的功能和组成
(1)选址功能:由设备选择电路组成,设备选线上与设备的设备码相符时,应发出信号SEL。
(2)传送命令的功能:由命令寄存器,命令译码器组成。
(3)传送数据的功能:由数据缓冲寄存器DBR组成。
(4)反应设备状态的功能:设别状态标记——用完成触发器D和工作触发器B来表示设备所处状态;还设有中断请求触发器INTR和中断屏蔽触发器MASK。
3.IO接口的基本组成(图)
1.按数据传送方式:并行,串行(因此串行接口需要有串并转换功能)
2.按功能的选择灵活性:可编程接口,功能及操作方式可通过程序改变;不可编程接口,可通过硬连线逻辑来实现不同功能。
3.按通用性分类:通用接口,可提供多种IO设备使用;专用接口,韦某类外设或者用途专门设计
4.按数据传送的控制方式分:程序查询接口,中断接口和DMA接口。
1.查询流程(为了完成查询通常要执行三条指令)
(1)测试指令:用于查询IO设备是否准备就绪
(2)转移指令:若IO设备未准备就绪,执行转移指令至测试指令继续测试IO状态
(3)传送指令:当IO设备已准备就绪时,执行传送指令
2.程序流程(图)
(1)由于程序查询方式需要CPU中寄存器参与,因此要将寄存器中原内容保护起来
(2)由于传送的往往是一批数据,因此须先设置IO与CPU交换数据的计数值
(3)设置欲传送的数据在主存缓冲区的首地址
(4)将IO设备中状态标记取到CPU中测试IO设备是否就绪
(5)CPU执行IO指令,从DBR中读数或者将数据写入DBR中,同时将状态标记复位
(6)修改主存地址
(7)修改计数值,原码依次减一,补码则依次加一
(8)判断计数值,为0时则数据传送完毕
(1)CPU通过IO指令启动设备时,指令的设备码字段通过地址线送入设备选择电路
(2)若SEL信号为1,则工作触发器为1,启动IO设备
(3)当DBR满由设备发结束工作信号,完成触发器为1
(4)接口输出准备就绪指令,与总线进行数据交换
计算机在执行程序的过程中,出现异常情况或者特殊请求时,计算机停止现行程序的运行,转向对这些异常或请求的处理。是计算机能够有效合理的发挥效能和提高效率的十分重要的功能。实现该工鞥的软硬件技术统称为中断技术。
1.配置中断请求触发器INTR和中断屏蔽触发器MASK(图)
当多个中断源向CPU提出中断申请时,CPU在任何瞬间只能响应一个请求。MASK=1时,中断请求会被屏蔽。此外,CPU总是在每条指令执行阶段的最后时刻查询所有设备是否发出中断请求。
2.排队器(硬件实现:将排队电路放在CPU中或接口电路中。)
当多个中断源向CPU发出中断请求,应用排队电路对其优先级进行区分。就IO中断而言,通常速度越快外部设备优先级越高。
3.中断向量地址形成部件(硬件向量法:由硬件形成向量地址,在由向量地址找到入口地址)
中断向量:中断服务程序的入口地址。
向量地址:中断向量保存的内存单元的地址。
4.程序中断方式接口电路基本组成(图)
5.IO中断处理过程
(1)CPU响应中断的条件和时间
条件:允许中断触发器EINT=1;(开中断指令置1,关中断指令置0)
时间:D=1且MASK=0时,发中断请求;CPU在每条指令执行的最后阶段查询中断请求,将INTR置1
(2)IO中断处理过程(中断请求 中断判优 中断响应 中断服务 中断返回)
1.CPU执行主程序执行到输入指令时,在地址线上给出设备地址。若接口中的设备选择电路响应则发出SEL信号,随后CPU送启动命令到接口,在接口中译码
2.B被设置为1,D为0,接口启动IO设备开始工作
3.输入设备开始准备数据,数据送至DBR中
4.当DBR被数据填满,则设备向接口发出设备结束工作信号,D被置1,B被置0,设备准备就绪
5.当D=1且接口未被屏蔽时(MASK=0),CPU在指令执行最后阶段发出中断查询信号
6.INTR被置1,向CPU发出中断请求信号,同时INTR被送至排队器进行中断判优
7.若CPU允许中断(EINT=1),设备被排队器选中,则进入中断响应阶段,由中断响应信号INTA将链式排队电路输出信号送至设备编码器形成向量地址
8.向量地址被送至CPU作为下一条指令的地址
9.此条指令执行结束后无条件转至中断向量,开始执行中断服务程序,进入中断服务阶段。通过输入指令将DBR中的数据送到CPU寄存器中,再存入主存
10.中断服务程序最后一条是中断返回指令,执行结束后中断返回原程序断点处
1.中断服务程序的流程
(1)保护现场
程序断点的保护,由中断隐指令完成;通用寄存器和体系结构寄存器内容保护,由进栈指令PUSH或者存至存储器
(2)中断服务
也称设备服务,对不同的IO设备具有不同内容的设备服务
(3)恢复现场
将中断时的现场恢复到原寄存器中(取数指令和出栈指令POP)
(4)中断返回
中断服务程序最后一条指令通常是中断返回指令,返回到原程序断点处
2.单重中断和多重中断(区别在于开中断的设置时间不同)
单重中断:不允许中断现行的中断服务程序,无论优先级多高
多重中断:CPU暂停现行的中断服务程序,转去处理新的中断请求(中断嵌套)
3.单重中断和多重中断的服务程序流程(图)
中断周期包含:保护断点,形成中断向量和关中断(硬件自动完成)
CPU在响应了中断请求之后,由硬件自动完成关中断(即EINT=0),不允许响应其他中断请求。但多重中断在保护现场之后便开中断(将EINT置1),意味着若有级别更高的中断源提出请求,CPU也可以响应。
1.DMA和程序中断方式的两种数据通路(图)
由于主存和DMA之间有一条数据传输通路,因此主存和IO传送数据是,不需要通过CPU中断现行程序为设备服务,省去了保护现场和恢复现场的过程,因此工作速度高,适合高速IO与主存之间交换信息
2.DMA和主存交换数据方式
(1)停止CPU访问主存
当外部设备请求传数据时,由DMA向CPU发送停止信号,CPU放弃相关总线由DMA接手,在传输过程结束后,DMA接口将总线控制权还给CPU
优点:控制简单便于实现,适合大量数据传输
缺点:DMA访存时,CPU基本处于不工作状态或保持状态,未充分发挥CPU对主存的利用率
(2)周期挪用
由于IO设备准备数据的周期远大于存取周期,因此在DMA接口上一般会有个小容量存储器(由半导体制作),使IO首先与其交换数据,再由其与主存交换数据,减少主存占用时间和CPU暂停工作时间。
每当IO发出DMA请求时,IO设备便挪用一个或几个主存周期的总线占用权;DMA不请求时,CPU正常访存。
PS:DMA访存的三种可能:CPU此时不访存;正在访存;和IO设备同时请求访存。IO设备每次挪用都要申请寻址传数结束撤销,因此传一个字可能对主存而言只占用一个周期,但对DMA而言要占用2-5个周期,因此适用于IO设备读写周期大于主存周期的情况
(3)交替访问
适用于CPU工作周期比主存存取周期长的情况,不需要申请建立和归还总线使用权。CPU和DMA有独立的访存地址寄存器,数据寄存器和读写信号。总线控制权转移几乎不需要时间,因此DMA传送速率很高。
1.DMA接口功能(利用DMA方式时,数据的传输完全由DMA接口电路控制)
(1)向CPU申请DMA传送
(2)处理总线控制权
(3)管理系统总线
(4)确定数据传送的首地址和长度,修正传送过程中的数据长度和地址
(5)DMA传送结束时,给出操作完成信号
2.DMA接口组成(图)
(1)主存地址寄存器AR
用于存放主存中需要交换数据的地址,DMA与主存传输前,必须通过程序将数据在主存中的首地址送到主存地址寄存器,每交换一次数据AR内容加1,知道一批数据传送完为止
(2)字计数器WC
用于记录数据的总字数,通常以交换字数的补码预置。每传一个字计数器加一。当字计数器为0时,DMA接口向CPU发出中断请求信号。
(3)数据缓存寄存器BR
用于暂存每次传送的数据。通常DMA和主存之间是按字传送,而DMA和设备之间一般是按字节或者位传送,因此DMA接口中还可能包括有装配或者拆卸字信息的硬件逻辑。(数据移位缓冲寄存器,字节计数器)
(4)DMA控制逻辑
每当设备准备好一个字,就向DMA接口提出申请(DREQ),DMA控制逻辑便向CPU请求DMA服务,发出总线使用权的请求信号(HRQ)
待收到CPU的响应信号后(HLDA)后,DMA控制逻辑便开始负责管理DMA传送的全过程,包括对主存地址寄存器的修改,识别总线地址,制定传送类型(IN or OUT)以及通知设备已被授予一个DMA周期(DACK)等
(5)中断机构(当字计数器为0时,由溢出信号通过中断机构向CPU发出中断请求)
此处的中断请求是为了报告一批数据传送结束;程序中断方式中的中断请求是为了传送数据。他们是IO系统中不同的中断事件。
(6)设备地址寄存器DAR
用于存放IO设备的设备码
DMA传送过程(预处理 数据传输 后处理)
(1)预处理
给DMA控制逻辑表明数据传送方向是输入还是输出
向DMA设备地址寄存器送入设备号,并启动设备 --------------- (设备地址------>DAR)
向DMA中AR送入交换数据的主存起始地址 -------------(主存地址-------->AR)
对字计数器赋予交换数据的个数 ----------------- (传送字数-------->WC)
当设备准备好数据或接收到数据处理完毕后,便通过DMA接口向CPU发出总线占用申请
(2)数据传输(图)
由图可知,CPU在除了预处理时处理了几条IO指令,对DMA接口进行寄存器设置外,CPU和IO设备是完全并行的。
(3)数据传送过程
1.当设备准备好一个字时,将其读到DMA接口中的数据缓冲寄存器中,表示数据缓冲寄存器满
2.在此同时,设备向DMA接口发请求(DREQ)
3.DMA接口向CPU申请总线控制权(HRQ)
4.CPU发回HLDA信号,表示允许将总线控制权交给DMA接口
5.将DMA主存地址寄存器AR中的主存地址送地址总线,并命令存储器读或写
6.通知设备已被授予一个DMA周期(DACK),并为交换下一个字做准备
7.将DMA数据缓冲寄存器的内容送数据总线
8.主存将数据总线上的信息写至地址总线指定的存储单元中
9.修改主存地址和字计数值
10判断数据块是否传送结束,若未结束则继续传送,若已结束,则向CPU申请程序中断,标志数据传送结束
(4)后处理
当DMA的中断请求得到响应后,CPU停止原程序,转去做一些中断服务程序,做一些DMA的结束工作,包括校验数据是否正确来决定是否继续用DMA传送其他数据块。继续传送则对DMA接口初始化,不传送则停止外设,测试是否有错误在传送中发生,出错则转错误诊断及处理错误程序。