本章主要内容
计算机输入输出系统概述
计算机总线的功能与组成
计算机输入输出接口概述
常用的输入输出方式概述
常用的输入输出方式
基本概念
■在计算机主机和I/O设备之间采用不同的控制方式进行数据传送,各种方式的性能、价格、解决问题的重点不同。
常用的控制方式
■程序直接控制方式
■程序中断传送方式
■直接存储器存取方式
■I/O通道控制方式
■外围处理机方式
程序直接控制方式
基本概念
■用户程序直接使用I/O指令完成输入输出操作,由CPU查询设备的运行状态来控制数据传送过程
控制过程
■开始传送数据前CPU检测设备是否准备好(通过读取接口中的状态寄存器内容实现),若设备已经准备好则启动这次传送;若没有准备好,则重复检测设备
存在问题
■缺点是严重影响系统性能,CPU与外设只能串行工作,CPU资源浪费,降低系统效率
■如果设备出现故障,CPU无法获取正确的设备状态信息,则计算机将可能进入“死机”局面
A 2000
2000: MVRD R2, 000A
MVRD R0, 0030 |
|
CPU方: |
外设方: |
2004: OUT 80
DEC R2
JRZ 200E
PUSH R0 |
往接口送出要输出的字符 |
接收接口中的字符往外设中输出字符 |
2008: IN 81
SHR R0
JRNC 2008
POP R0
INC R0
JR 2004200E: RET |
查询接口状态(循环等待) |
处理完后,置状态寄存器 |
直到外设已经输出该字符 |
输出下一个字符 |
接收下一个字符 |
程序中断传送方式
基本概念
■通常在程序中安排一条指令,启动外设,然后CPU继续执行程序。当外设完成数据传送准备后,向CPU发“中断”请求信号,CPU接到这一信号,在结束一条指令执行过程、下一条指令尚未开始的时刻,停下正在运行的程序,保存好运行的现场信息,转去完成数据传送工作,通常传送一个字节或字,传送完毕之后返回原来的程序继续执行。
工作特点
■系统在启动外设后到数据准备完成这段时间内CPU一直在执行程序,而不是处于等待状态,一定程度上实现了CPU与外设的并行工作。
■多台外设启动后可以同时进行数据交换的准备工作,若多台外设同时发出中断请求信号,CPU可以按照一定的优先顺序进行处理,从而实现了外设的并行工作。
直接存储器存取方式
主要用于快速设备和主存储器成批交换数据的场合。在这种应用中,处理问题的出发点集中到两点:一是不能丢失快速设备提供出来的数据,二是进一步减少快速设备入出操作过程中对CPU的打扰。
数据的传输过程可以交由一块专用的DMA接口卡来控制,让DMA卡代替CPU控制在快速设备与主存储器之间直接传输数据,每传输一个数据只需一个总线周期即可。
从共同使用总线的角度看,DMA和CPU成为竞争对手关系。当完成一批数据传输之后,快速设备还是要向CPU发一次中断请求,报告本次传输结束的同时,“请示”下一步的操作要求。
I/O通道控制方式
基本概念
■I/O通道是计算机系统中代替CPU管理控制外设的独立部件,是一种能执行有限I/O指令集合——通道命令的I/O处理机。
■一对多的连接关系,适应不同速度、不同种类的外部设备,可并行工作。
通道功能
■根据CPU要求选择某一指定外设与系统相连,向该外设发出操作命令,进行初始化
■指出外设读/写信息的位置以及与外设交换信息的主存缓冲区地址
■控制外设与主存之间的数据交换
■指定数据传送结束时的操作内容,检查外设状态
外围处理机方式
主要应用于大型高性能计算机系统中,使用微小型通用计算机协助主处理机完成输入输出操作。
不但可以完成前面讲的I/O通道的I/O控制功能,还可以完成更加复杂多样的附加操作功能,例如码制转换、格式处理、数据块的检错纠错处理,承担I/O系统与设备的诊断维护、人机交互处理等处理功能。

程序中断输入输出方式
中断的概念
■是由I/O设备或其他非预期的急需处理的事件引起的,它使CPU暂时中断现在正在执行的程序,而转至另一服务程序去处理这些事件,处理完成后再返回原程序。
中断的作用
■CPU 与 I/O 设备并行工作
■硬件故障报警与处理
■实现人机交互联系
■实现多道程序分时运行
■实现实时处理
中断源
■能引起中断的事件或能发出中断请求的设备
中断源分类
■硬件中断:由各种输入/输出设备、一些接口卡等引起的中断被称为外(部)中断,而由处理机硬件故障、程序运行出错等引起的中断被称为内(部)中断,例如非法指令、算术运算溢出、校验错、电源故障等都会产生内中断。
■软件中断:由写在程序中的语句(例如用户程序中的系统调用指令,trap指令等)引起的一段程序的执行过程,它很类似于一次中断处理过程。
■软件中断是严格的与程序运行过程同步的,而硬件中断则是随机发生的。
中断触发器
■当中断源发生引起中断的事件时,先将它保存在设备控制器的“中断触发器”中,即将“中断触发器”置“1”,向CPU发出“中断请求”信号。每个中断源有一个中断触发器,全机的多个中断触发器构成中断寄存器。
中断屏蔽
■当产生中断请求后,用程序方式有选择的封锁部分中断,而允许其他部分中断仍得到响应,称为中断屏蔽。实现方法是为每个中断源设置一个中断屏蔽触发器来屏蔽该设备的中断请求。
■从CPU要不要接收中断请求,从能不能限制某些中断发生的角度,可以把中断分成可屏蔽中断和不可屏蔽中断。可以被CPU通过指令限制其发出中断请求的中断属于可屏蔽中断,例如对某些外围设备就可以在一段时间里执行中断屏蔽;一些中断是不允许执行屏蔽中断的,例如电源掉电中断,称这类中断为不可屏蔽中断。
禁止中断
■如果由于某种事件的存在,在很短的一小段时间内,不允许CPU接收任何一个中断请求(禁止中断),通常是在CPU内部设置一个“中断允许”触发器,只有该触发器被置为“1”状态,才允许CPU响应中断请求,该触发器被置为“0”状态,则禁止CPU响应中断请求。为此,在指令系统中,要给出“开中断”指令(置“1”中断允许触发器)和“关中断”指令(清“0”中断允许触发器)。
中断优先级
■为了管理众多的中断请求,需要按每个(类)中断处理的急迫程度,对中断进行分级管理。在有多个中断请求时,总是首先响应与处理优先级最高的一个中断请求。
中断嵌套
■是指在处理中断的过程中又可以响应更高优先级中断的办法。如果CPU正在处理优先级低的一个中断,又来了优先级更高的一个中断请求,则停止低优先级的中断处理过程,以便及时响应更高优先级的中断请求,在该高优先级中断处理完成之后,接下来再继续处理低优先级的中断,在该低优先级中断处理完成之后,返回去接着执行主程序。
中断请求
■中断源给CPU发控制信号,通过中断源的中断触发器完成(但受中断屏蔽触发器的制约)
中断响应
■允许中断、CPU结束一条指令执行、中断优先级比当前处理任务高
中断处理

判别中断源的方法
■多个中断源发出中断请求时,首先需要找出其中中断优先级最高的那个中断源
■采用软件方案时,是用程序检查中断字的内容实现。全部的中断触发器构成中断寄存器,其内容称为中断字。当中断源数量很多时,中断字也就很长,为了管理方便,通常把所有中断按不同类别、性质取分为若干个中断优先级,每个中断优先级中安排多个中断源,在确定中断优先次序时,先查最高中断优先级,再到这一中断优先级中找出中断优先次序最高的中断源。
■采用硬件方案时,一般选用串行链式排队法,需要有比较、判断中断的优先级的逻辑线路(见书上例子)
定位中断服务程序入口地址
■一是在中断总控程序中用专用的INTA指令接收中断设备编码,再用该设备编码到指定的内存区中找到中断服务程序的入口地址。
■另外一种是中断向量法,由每个中断源直接提供中断向量,用这一中中断向量为地址到中断向量表中取出中断服务程序的入口地址。中断向量表是由每个中断源的中断服务程序的入口地址组成的一张列表,通常被存放在内存中的指定的一片区域中。
直接存储器存取(DMA)方式
基本概念
■DMA是在专门的硬件(DMA接口卡)控制下,实现高速I/O设备与主存储器之间成批交换数据的输入/输出操作方式。
■高速I/O设备与主存每交换一个数据一般要占用一个总线周期。
工作方式
■独占总线方式:从传送第一个字开始直到这批数据传输完成的整个过程,DMA都把住总线不放,使总线只为本DMA使用。其缺点是CPU和其他DMA等bus masters都要停止运行,会影响系统运行效率。
■周期挪用方式:DMA占用总线周期传送一个字的期间,若CPU在此期间并不使用总线,它就继续执行指令,二者均可运行,互不干涉,若CPU也要使用总线,则发生了争用总线的矛盾,此时CPU要让出一个总线周期先给DMA使用,之后自己才能得到总线使用权并继续运行。
DMA控制器(DMA卡)
■DMA卡是插接在总线插槽上的一块逻辑线路板,它的一端通过总线与计算机主存储器连接,另外一端通过电缆与高速设备连接。
■与一般接口卡不同的是,DMA可以变化自己的角色,当CPU对它进行读写时,CPU是bus master,DMA是bus slave,当DMA控制高速设备与主存交换数据时,DMA是bus master。
■DMA卡通常包括一般通用可编程接口卡的全部组成部分,例如设备识别逻辑,控制/状态逻辑,数据缓冲电路,中断机构等,又要多出其他几个组成部分,例如主存地址计数器,数据数量计数器,DMA请求线路等。
DMA控制器组成部分介绍
■主存地址计数器,存放读写主存用到的主存地址,一批数据传送开始前,由CPU写入其初值,以后每传送一个字,该地址计数器加1,使其指向下一个主存单元。
■数据数量计数器,存放传送数据的数量,由CPU写入其初值,以后每传送一个字,该计数器减1,当计数到0时,表示这批数据传送完毕,此时DMA应向CPU发中断请求信号。
■DMA的控制/状态逻辑,由控制和状态等逻辑电路组成,用于修改主存地址计数器和数据数量计数器,指定传送功能(输入还是输出),协调CPU和DMA信号的配合与同步。
器组成部分介绍
■DMA请求触发器,接收并记忆设备送来的请求数据传送的信号,该触发器的“1”输出端接到DMA的控制/状态逻辑,使其向CPU发出DMA请求信号,CPU接到这一请求信号并响应后,送回响应回答信号,DMA的控制/状态逻辑接到这一回答信号,就取得了总线的使用权,启动数据传送,清 “0” DMA请求触发器,为下一次的请求做好准备。
■数据缓冲寄存器,用于存放高速设备与主存之间交换的数据,也有的DMA卡上不设置数据缓冲寄存器,而由送出数据的一方,在指定的时刻直接把数据放到数据总线上。
■中断机构,与通用接口中的中断逻辑电路的组成完全相同,中断请求发生在数据数量计数器计数到0值的时刻,用于向CPU报告本组数据传送完成,并等待新的传送命令。
DMA控制DMA传送数据的过程
■传送前预处理:由CPU完成,向DMA卡送入设备识别信号,启动设备,测试设备运行状态,送入内存地址初值,传送数据的数量,DMA的功能控制信号等,这之后,CPU继续执行原来的程序。
■数据传送:在DMA卡控制下自动完成,准备好一个数据,取得总线控制权,进行数据传送,修改卡上主存地址,修改字数计数器内容且检查其值是否为0,不为0则继续传送,若已为0则结束本次数据传送过程。
■传送结束后处理:数据数量计数器为0,则向CPU发中断请求,CPU响应之后进行相应处理。

|