文档详情

计算机组成原理第8章输入输出系统课件

枫**
实名认证
店铺
PPT
889.36KB
约132页
文档ID:607267997
计算机组成原理第8章输入输出系统课件_第1页
1/132

单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,计算机组成原理,,*,第,8,章,,输入输出,系统,,8/13/2024,1,第8章8/23/20231,第,8,章,计算机的输入输出系统是整个计算机系统中,最具有多样性,和,复杂性,的部分,本章首先介绍主机与外设之间的连接问题,接着重点介绍程序查询方式、程序中断方式、DMA方式和通道方式8/13/2024,2,第8章 计算机的输入输出系统是整个计算机系统,8.1,主机与外设的连接,8.1,.1,输入输出接口,,主机和外设的连接方式有,辐射型连接,、,总线型连接,等输入,/,输出接口(,I/O,接口)是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换主机和外设各自具有自己的工作特点,它们,在,信息形式,和,工作速度,上具有很大的差异,接口正是为了解决这些差异而设置的,8/13/2024,3,8.1 主机与外设的连接8.1.1 输入输出接口8/23/2,8.1,主机与外设的连接,主机和外设之间需要交换的信息,有:,1. 数据信息,这类信息可以是通过输入设备送到计算机的输入数据,也可以是经过计算机运算处理和加工后,送到输出设备的结果数据。

传送可以是并行的,也可以是串行的2. 控制信息,这是CPU对外设的控制信息或管理命令,如外设的启动和停止控制、 输入或输出操作的指定、工作方式的选择、中断功能的允许和禁止等8/13/2024,4,8.1 主机与外设的连接 主机和外设之间需要交换的信息有:,8.1,主机与外设的连接,3. 状态信息,这类信息用来标志外设的工作状态,比如,,输入设备数据准备好标志,,,输出设备忙闲标志,等CPU在必要时可通过对它的查询来决定下一步的操作4,.,联络信息,这是主机和外设间工作的时间配合信息,它与主机和外设间的信息交换方式密切相关通过联络信息可以决定不同工作速度的外设和主机之间交换信息的最佳时刻,,以保证整个计算机系统能统一协调地工作8/13/2024,5,8.1 主机与外设的连接3. 状态信息8/23/20235,8.1,主机与外设的连接,5. 外设识别信息,这是,I/O寻址的信息,,使CPU能从众多的外设中寻找出与自己进行信息交换的唯,一外部设备8/13/2024,6,8.1 主机与外设的连接5. 外设识别信息8/23/2023,8.1,主机与外设的连接,8.1.2 接口的功能和基本组成,,1. 接口的功能,(1) 实现主机和外设的通信联络控制,接口中的同步控制电路用来解决主机与外设的时间配合问题。

2) 进行地址译码和设备选择,当CPU送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息,8/13/2024,7,8.1 主机与外设的连接8.1.2 接口的功能和基本组成,8.1,主机与外设的连接,(3) 实现数据缓冲,在接口电路中,一般设置有一个或几个数据缓冲寄存器,用于数据的暂存,以避免因速度不一致而丢失数据在传送过程中,先将数据送入数据缓冲寄存器中,然后再送到输出设备或主机中去4) 数据格式的变换,在输入或输出操作过程中,为了满足主机或外设的各自要求,接口电路中必须具有完成各类数据相互转换的功能并-串、数-模),8/13/2024,8,8.1 主机与外设的连接(3) 实现数据缓冲8/23/202,8.1,主机与外设的连接,,(5) 传递控制命令和状态信息,当CPU要启动某一外设时,通过接口中的控制命令寄存器向外设发出启动命令;当外设准备就绪时,则有状态信息送回接口中的状态寄存器,为CPU 提供反馈信息,告诉CPU,I/O设备已经具备和CPU交换数据的条件当外设向CPU提出中断请求和DMA请求时,CPU也有相应的响应信号反馈给外设8/13/2024,9,8.1 主机与外设的连接(5) 传递控制命令和状态信息8/,8.1,主机与外设的连接,2. 接口的基本组成,接口中要分别传送数据信息、控制信息和状态信息,,数据信息、控制信息和状态信息都通过数据总线来传送,。

大多数计算机都把I/O设备的状态信息视为输入数据,而把控制信息看成输出数据,并在接口中,分设各自相应的寄存器,赋以不同的端口地址,,各种信息分时地使用数据总线传送到各自的寄存器中8/13/2024,10,8.1 主机与外设的连接2. 接口的基本组成8/23/20,8.1,主机与外设的连接,主,机,,,外设识别,数据/命令/状态,控制电路,地址信息,控制联络,信息,数据(并),外设,控制联络,数据,(并/串),接口,8/13/2024,11,8.1 主机与外设的连接主外设识别数据/命令/状态控制电路地,8.1,主机与外设的连接,接口与端口是两个不同的概念端口是指接口电路中可以进行读/写的寄存器,,若干个端口加上相应的控制逻辑电路才组成接口8/13/2024,12,8.1 主机与外设的连接 接口与端口是,8.1,主机与外设的连接,通常,,一个接口中包含有,数据端口,、,控制端口,和,状态端口,存放数据信息的寄存器称为数据端口,存放控制命令的端口称为命令端口,存放状态信息的寄存器称为状态端口CPU通过输入指令可以从有关端口中读出信息,通过输出指令可以把信息写入有关端口。

对状态端口只能实施读出(输入)操作,,将读取的外设状态标志送到CPU 中去;,对命令端口只进行写入(输出)操作,,CPU将向外设发送各种控制命令因此,在有的接口电路中状态信息和控制信息共用一个寄存器,称之为设备的,控制/状态寄存器,8/13/2024,13,8.1 主机与外设的连接 通常,一个接,8.1,主机与外设的连接,3,. 接口的类型,(1) 按数据传送方式分类,有串行接口和并行接口这里所说的数据传送方式指的是外设和接口一侧的传送方式,,,而在主机和接口一侧,数据总是并行传送的,2) 按主机访问I/O设备的控制方式分类,可分为,程序查询式接口,、,中断接口,、,DMA接口,等,3) 按功能选择的灵活性分类,有可编程接口和不可编程接口8/13/2024,14,8.1 主机与外设的连接3. 接口的类型8/23/20231,8.1,主机与外设的连接,(4) 按通用性分类,有通用接口和专用接口5) 按输入/输出的信号分类,有数字接口和模拟接口6),.按应用来分类,,①,,运行辅助接口②,,用户交互接口③,,传感接口④,,控制接口8/13/2024,15,8.1 主机与外设的连接(4) 按通用性分类8/23/202,8.1,主机与外设的连接,8.1.3 外设的识别与端口寻址,,外设识别是通过地址总线和接口电路中的外设识别电路来实现的,输入输出设备的端口地址就是主机与外设直接通信的地址,CPU可以通过端口发送命令、读取状态和传送数据。

1. 端口地址编址方式,I/O端口编址方式有两种:一种是,I/O映射方式,,即把I/O端口地址与主存单元地址分别进行,独立的编址,;另一种是,存储器映射方式,,即把端口地址与主存单元地址,统一编址,8/13/2024,16,8.1 主机与外设的连接8.1.3 外设的识别与端口寻址,8.1,主机与外设的连接,(1) 独立编址,主存地址空间和,I/O,端口地址空间是相对独立的,分别单独编址比如,在,8086,中,其主存地址范围是从,00000H,~,FFFFFH,连续的,1MB,,其,I/O,端口的地址范围从,0000H,~,FFFFH,,它们互相独立,互不影响CPU,访问主存时,由,主存读,/,写控制线,控制;访问外设时,由,I/O,读,/,写控制线,控制,所以在指令系统中必须,设置专门的,I/O,指令(P78),当,CPU,使用,I/O,指令时,其指令的地址字段直接或间接的指示出端口地址8/13/2024,17,8.1 主机与外设的连接(1) 独立编址8/23/2023,8.1,主机与外设的连接,(2) 统一编址,I/O,端口地址和主存单元的地址是统一编址的,把,I/O,接口中的端口作为主存单元一样进行访问,,不设置专门的,I/O,指令,。

每个外设至少有两个寄存器:控制状态寄存器和数据缓冲寄存器,外设寄存器的地址码是连续的在PDP-11中,把主存的高4KB地址空间留给外设接口寄存器和CPU内部寄存器使用,,这4KB存储空间不允许用户再存放其他内容8/13/2024,18,8.1 主机与外设的连接(2) 统一编址8/23/20231,8.1,主机与外设的连接,例如,PDP-11机分配给某些外设寄存器的端口地址如下纸带输入机: 控制状态寄存器 177550Q,数据缓冲寄存器 177552Q,穿孔输入机: 控制状态寄存器 177554Q,数据缓冲寄存器 177556Q,控制台打字机: 键盘控制状态寄存器 177560Q,键盘数据寄存器 177562Q,打印控制状态寄存器 177564Q,打印数据寄存器 177566Q,行式打印机: 控制状志寄存器 177514Q,数据缓冲寄存器 177516Q,8/13/2024,19,8.1 主机与外设的连接例如,PDP-11机分配给某些外设寄,8.1,主机与外设的连接,2. 独立编址方式的端口访问,Intel 80x86最多可直接寻址256个,字节端口,,可间接寻址65536 个,字节端口,。

任意两个连续的8位端口可作为1个16位端口处理;四个连续的8位端口可作为1个32位端口处理因此,I/O地址空间最多能提供64K个8位端口、32K个16位端口、16K个32位端口或总容量不超过64KB的不同端口的组合8/13/2024,20,8.1 主机与外设的连接2. 独立编址方式的端口访问,8.1,主机与外设的连接,80x86的专用I/O指令IN和OUT有直接寻址和间接寻址两种类型直接寻址I/O端口的寻址范围为00~FFH,至多为256个端口地址这时程序可以指定:,编号0到255的256个8位端口;,编号0、2、4 … 252、254的128个16位端口;,编号0、4、8 … 248、252的64个32位端口8/13/2024,21,8.1 主机与外设的连接 80x86的,8.1,主机与外设的连接,,间接寻址由DX寄存器间接给出I/O端口地址DX寄存器长16位,,寻址范围为,0000,~,FFFFH,,最多可,寻址2,16,=64K个端口地址,这时程序可指定:,编号0到65535的65536个8位端口;,编号0、2、4 … 65532、65534的32768个16位端口;,编号0、4、8 … 65528、65532的16384个32位端口。

8/13/2024,22,8.1 主机与外设的连接 间接寻址由D,8.1,主机与外设的连接,,CPU一次可实现字节(8位)、字(16位)或双字(32位)的数据传送,,与存储器中的双字一样32位端口应对准可被4整除的偶地址,与存储器中的字一样,16位端口应对准偶地址,8位端口可定位在偶地址,也可定位在奇地址8/13/2024,23,8.1 主机与外设的连接 CPU一次可,,8.1,主机与外设的连接,8.1.4 输入/输出信息传送控制方式,,主机和外设之间的信息传送控制方式,经历了由低级到高级、由简单到复杂、,由集中管理到各部件分散管理的发展过程,,按其发展的先后次序和主机与外设并行工作的程度,可以分为四种8/13/2024,24,8.1 主机与外设的连接8.1.4 输入/输出信息传送控,,8.1,主机与外设的连接,1. 程序查询方式,程序查询方式是一种程序直接控制方式,这是主机与外设间进行信息交换的最简单方式,,输入和输出的完全是通过CPU去执行相应的程序来实现的,一旦某一外设被选中并启动之后,主机将查询这个外设的某些状态位,看其是否准备就绪?若外设未准备就绪,主机将再次查询;若外设已准备就绪,则执行一次,I/O,操作。

8/13/2024,25,8.1 主机与外设的连接1. 程序查询方式8/23/202,,8.1,主机与外设的连接,1. 程序查询方式,这种方式控制简单,但外设和主机不能同时工作,各外设之间也不能同时工作,系统效率很低,因此,仅适用于外设的数目不多,对,I/O,处理的实时要求不那么高,,CPU,的操作任务比较单一,并不很忙的情况8/13/2024,26,8.1 主机与外设的连接1. 程序查询方式8/23/202,8,.1,主机与外设的连接,2. 程序中断方式,在主机启动外设后,无须等待查询,而是继续执行原来的程序,,外设在做好输入/输出准备时,向主机发中断请求,主机接到请求后就暂时中止原来执行的程序,转去执行中断服务程序对外部请求进行处理,在,中断处理完毕,后返回原来的程序继续执行显然,程序中断不仅适用于外部设备的输入输出操作,也适用于对外界发生的随机事件的处理8/13/2024,27,8.1 主机与外设的连接2. 程序中断方式8/23/202,8,.1,主机与外设的连接,2. 程序中断方式,程序中断在信息交换方式中处于最重要的地位,它不仅,允许主机和外设同时并行工作,并且允许一台主机管理多台外设。

但是完成一次程序中断需要许多辅助操作,可能使,CPU,应接不暇;另外,对于一些高速外设,由于信息交换是成批的,如果处理不及时,可能会造成信息丢失,因此,它主要,适用于中、低速外设,8/13/2024,28,8.1 主机与外设的连接2. 程序中断方式8/23/202,8,.1,主机与外设的连接,3. 直接存储器存取(DMA)方式,DMA方式是在主存储器和外部设备之间开辟,直接的数据通路,,可以进行基本上不需要CPU介入的主存和外设之间的信息传送,这样不仅能保证CPU的高效率,而且能满足高速外设的需要DMA,方式只能进行简单的数据传送操作,在数据块传送的起始和结束时还需,CPU,及中断系统进行预处理和后处理8/13/2024,29,8.1 主机与外设的连接3. 直接存储器存取(DMA)方式8,8.1,主机与外设的连接,4. I/O通道控制方式,I/O通道控制方式是DMA方式的进一步发展,在系统中设有通道控制部件,,每个通道挂若干外设,主机在执行I/O操作时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作通道是一个具有特殊功能的处理器,它能独立地执行通道程序,产生相应的控制信号,实现对外设的统一管理和外设与主存之间的数据传送。

但它不是一个完全独立的处理机,它要在CPU的I/O指令指挥下才能启动、停止或改变工作状态,是从属于CPU的一个专用处理器8/13/2024,30,8.1 主机与外设的连接4. I/O通道控制方式8/23/,8.1,主机与外设的连接,4. I/O通道控制方式,一个通道执行输入/输出过程全部由通道按照通道程序自行处理,不论交换信息多少,只打扰CPU两次(启动和停止时)因此,主机、外设和通道可以并行同时工作,而且一个通道可以控制多台不同类型的设备目前,小型、微型计算机大多采用程序查询方式、程序中断方式和,DMA,方式;大、中型机多采用通道方式8/13/2024,31,8.1 主机与外设的连接4. I/O通道控制方式8/23/,8.2 程序查询方式及其接口,,程序查询方式的核心问题在于需要不断地查询,I/O,设备是否准备就绪8.2.1 程序查询方式,,1. 程序查询的基本思想,由CPU执行一段输入、输出程序来实现主机与外设之间的数据传送方式,叫做程序直接控制方式根据外设的不同性质,这种传送方式又可分为无条件传送和程序查询方式两种,,8/13/2024,32,8.2 程序查询方式及其接口 程序查询方式的,8.2 程序查询方式及其接口,在无条件传送方式中,I/O端口总是准备好接收主机的输出数据,或总是准备好向主机输入的数据,因而CPU无需查询外设的工作状态,而默认外设始终处于准备就绪状态。

许多外设的工作状态是很难事先预知的,为了保证数据传送的正确进行,就要求CPU在程序中查询外设的工作状态,如果外设尚未准备就绪,CPU就等待,只有外设已做好准备,CPU才能执行I/O指令,这就是,程序查询方式8/13/2024,33,8.2 程序查询方式及其接口 在无条件传送方式中,I/O端口,8.2 程序查询方式及其接口,(1) 预置传送参数,在传送数据之前,由CPU执行一段初始化程序,预置传送参数传送参数包括存取数据的,主存缓冲区首地址,和,传送数据的个数,2. 程序查询方式的工作流程,预置传送参数,启动外设,取外设状态,传送一次数据,修改传送参数,外设准备就绪?,传送完否?,Y,Y,N,N,结束,8/13/2024,34,8.2 程序查询方式及其接口(1) 预置传送参数2. 程序查,8.2 程序查询方式及其接口,当CPU选中某台外设时,执行输出指令向外设接口发出命令字,启动外设,为接收数据或发送数据的操作做准备预置传送参数,启动外设,取外设状态,传送一次数据,修改传送参数,外设准备就绪?,传送完否?,Y,Y,N,N,结束,(2) 向外设接口发命令字,8/13/2024,35,8.2 程序查询方式及其接口 当CPU选中某台外设时,,8.2 程序查询方式及其接口,CPU执行输入指令,从外设接口中取回状态字并进行测试,判断数据传送是否可以进行。

预置传送参数,启动外设,取外设状态,传送一次数据,修改传送参数,外设准备就绪?,传送完否?,Y,Y,N,N,结束,(3) 从外设接口取回状态字,8/13/2024,36,8.2 程序查询方式及其接口 CPU,8.2 程序查询方式及其接口,(4) 查询外设标志,CPU不断查询状态标志如果外设没有准备就绪,CPU就踏步等待,再次转入第(3)步,一直到这个外设准备就绪,并发出“准备就绪”信号为止预置传送参数,启动外设,取外设状态,传送一次数据,修改传送参数,外设准备就绪?,传送完否?,Y,Y,N,N,结束,8/13/2024,37,8.2 程序查询方式及其接口(4) 查询外设标志预置传送参数,8.2 程序查询方式及其接口,(5) 传送数据,只有外设准备好,才能实现主机与外设间的一次数据传送输入时,,CPU执行输入指令,从外设接口的数据缓冲寄存器中接收数据;,输出时,,CPU执行输出指令,将数据写入外设接口的数据缓冲寄存器预置传送参数,启动外设,取外设状态,传送一次数据,修改传送参数,外设准备就绪?,传送完否?,Y,Y,N,N,结束,8/13/2024,38,8.2 程序查询方式及其接口(5) 传送数据预置传送参数启动,8.2 程序查询方式及其接口,(6) 修改传送参数,每进行一次数据传送,需要修改传送参数,其中包括,主存缓冲区地址加1,传送个数减1,。

预置传送参数,启动外设,取外设状态,传送一次数据,修改传送参数,外设准备就绪?,传送完否?,Y,Y,N,N,结束,8/13/2024,39,8.2 程序查询方式及其接口(6) 修改传送参数预置传送参数,8.2 程序查询方式及其接口,(7) 判断传送是否结束,如果传送个数不为0,则转第3步,继续传送,直到传送结束为止预置传送参数,启动外设,取外设状态,传送一次数据,修改传送参数,外设准备就绪?,传送完否?,Y,Y,N,N,结束,8/13/2024,40,8.2 程序查询方式及其接口(7) 判断传送是否结束  预置,8.2 程序查询方式及其接口,预置传送参数,启动外设,取外设状态,传送一次数据,修改传送参数,外设准备就绪?,传送完否?,Y,Y,N,N,结束,输出指令(OUT 控制口,AL),输入/输出指令,(IN AL,数据口/OUT 数据口,AL),输入指令(IN AL,状态口),8/13/2024,41,8.2 程序查询方式及其接口预置传送参数启动外设取外设状态传,8.2 程序查询方式及其接口,8,.,2.2 程序查询方式接口,最简单、经济的I/O方式,只需很少的硬件通常接口中,至少有两个寄存器,,一个是,数据缓冲寄存器,,即,数据端口,,用来存放与CPU进行传送的数据信息,另一个是供CPU查询的,设备状态寄存器,,即,状态端口,,这个寄存器由多个标志位组成,其中最重要的是设备准备就绪标志。

当CPU得到这位信息后就进行判断,以决定下一步是继续循环等待还是进行I/O传送,也有些计算机仅设置状态标志触发,器,其作用与设备状态寄存器相同8/13/2024,42,8.2 程序查询方式及其接口8.2.2 程序查询方式接口8/,8.2 程序查询方式及其接口,,图8-3为查询式输入接口电路,图中Ready为准备好触发器,它对应于设备状态寄存器的D,0,位在输入设备准备好数据时,发出一个选通信号(STB),一方面将数据送入锁存器,同时将Ready触发器置“1”,以表示接口电路中已有数据,(即准备就绪)8.2.2 程序查询方式接口,1.输入接口,8/13/2024,43,8.2 程序查询方式及其接口 图8-3为查询式输入接,8.2 程序查询方式及其接口,8,.,2.2 程序查询方式接口,,CPU要从外设输入数据时,先执行输入指令读取状态字,如Ready=1,再执行输入指令从锁存器中读取数据,同时把Ready触发器清“0”,以准备从外设接收下一个数据;如Ready=0,则踏步等待,继续读取状态字,直至Ready=1为止8/13/2024,44,8.2 程序查询方式及其接口8.2.2 程序查询方式接口8/,8.2 程序查询方式及其接口,图8-4为查询式输出接口电路,图中Busy为忙触发器,对应于设备状态寄存器的D7位。

输出时,CPU首先执行输入指令读取状志字,如Busy=1,表示接口的输出锁存器是满的,CPU只能踏步等待,继续读取状态字,直至Busy=0为止;,8.2.2 程序查询方式接口,2. 输出接口,8/13/2024,45,8.2 程序查询方式及其接口 图8-,8.2 程序查询方式及其接口,8,.,2.2 程序查询方式接口,如Busy=0,表示接口的输出锁存器是空的,允许CPU向外设发送数据此时,CPU执行输出指令,将数据送入寄存器,并将Busy触发器置“1”当输出设备把CPU送来的数据真正输出之后,将发出一个ACK信号,使Busy触发器置“0”,以准备下一次传送8/13/2024,46,8.2 程序查询方式及其接口8.2.2 程序查询方式接口8/,8.2 程序查询方式及其接口,8,.,2.2 程序查询方式接口,若有多个外设需要用查询方式工作时,其工作流程如图8-5所示此时CPU巡回检测各个外设,逐个进行查询,发现哪个外设准备就绪,就对该外设实施数据传送,然后再对下一外设查询,依次循环8/13/2024,47,8.2 程序查询方式及其接口8.2.2 程序查询方式接口8/,8.3,中断系统和程序中断方式,中断是现代计算机有效合理地发挥效能和提高效率的一个十分重要的功能。

CPU中通常设有处理中断的机构,——,中断系统,以解决各种中断的共性问题本节主要分析中断系统的功能,特别强调I/O中断8/13/2024,48,8.3 中断系统和程序中断方式 中断是现,8.3,中断系统和程序中断方式,8.3.1 中断的基本概念,1. 中断的提出,程序查询方式存在着下列明显的缺点① 在查询过程中,CPU长期处于,踏步等待状态,,使系统,效率大大降低,② CPU在,一段时间内只能和一台外设交换信息,,其它设备不能同时工作③ 不能发现和处理预先无法估计的错误和异常情况8/13/2024,49,8.3 中断系统和程序中断方式8.3.1 中断的基本概念8,8.3,中断系统和程序中断方式,为了提高输入/输出能力和CPU的效率,20世纪50年代中期,中断传送方式被引进计算机系统程序中断方式的思想是:CPU在程序中安排好在某一时刻启动某一台外设,然后CPU继续执行原来程序,不需要像查询方式那样一直等待外设的准备就绪状态一旦外设完成数据传送的准备工作(输入设备的数据准备好或输出设备的数据缓冲器空)时,便主动向CPU发出一个中断请求,请求CPU为自己服务8/13/2024,50,8.3 中断系统和程序中断方式 为了提高输入/,8.3,中断系统和程序中断方式,启动,工作,工作,完成,完成,响应,响应,中断请求,中断请求,中断返回,中断返回,外部设备,中断服务程序,现行程序,CPU,,,在可以响应中断的条件下,CPU暂时中止正在执行的程序,转去执行中断服务程序为中断请求者服务,在中断服务程序中完成一次主机与外设之间的数据传送,传送完成后,CPU仍返回原来的程序,从断点处继续执行。

下图给出了程序中断方式的,示意图8/13/2024,51,8.3 中断系统和程序中断方式启动工作工作完成完成响应响应中,8.3,中断系统和程序中断方式,从图8-6中可以看到,中断方式在一定程度上实现了CPU和外设的并行工作,使CPU的效率得到充分的发挥不仅如此,由于中断的引入,还能使多个外设并行工作,CPU根据需要可以启动多个外设,被启动的外设分别同时独立地工作现代计算机,无论是巨型机、大型机、小型机还是微型机无不具有中断能力中断系统,是计算机实现中断功能的软、硬件总称,一般在CPU中配置,中断机构,,在外设接口中配置,中断控制器,,在软件上设计相应的,中断服务程序,8/13/2024,52,8.3 中断系统和程序中断方式 从图8,8.3,中断系统和程序中断方式,2. 程序中断与调用子程序的区别,表面上看起来,计算机的中断处理过程有点类似于调用子程序的过程,这里现行程序相当于主程序,中断服务程序相当于子程序但是,它们之间却是有着本质上的区别的8/13/2024,53,8.3 中断系统和程序中断方式2. 程序中断与调用子程序的区,8.3,中断系统和程序中断方式,⑴ 子程序的执行是由程序员事先安排好的(由一条调用子程序指令转入),而中断服务程序的执行则是由随机的中断事件引起的;,⑵ 子程序的执行受到主程序或上层子程序的控制, 而中断服务程序一般与被中断的现行程序毫无关系;,⑶ 不存在同时调用多个子程序的情况,而有可能发生多个外设同时请求CPU为自己服务的情况。

8/13/2024,54,8.3 中断系统和程序中断方式 ⑴ 子程序的执行是由程,8.3,中断系统和程序中断方式,3. 中断的基本类型,(1) 自愿中断和强迫中断,,自愿中断,又,称程序,自,中断,,它不是随机产生的中断,而是在程序中安排的有关指令,这些指令可以使机器进入中断处理的过程,如:80X86指令系统中的软件中断指令INT n等强迫中断,是,随机产生的中断,,不是程序中事先安排好的当这种中断产生后,,,由中断系统强迫计算机中止现行程序并转入中断服务程序8/13/2024,55,8.3 中断系统和程序中断方式3. 中断的基本类型8/23/,8.3,中断系统和程序中断方式,(2) 程序中断和简单中断,,程序中断,就是我们前面提到的中断,主机在响应中断请求后,通过,执行一段中断服务程序,来处理更紧迫的任务简单中断就是外设与主存间直接进行信息交换的方法,即,DMA,方式,这种“中断”不去执行中断服务程序,故不破坏现行程序的状态,主机发现有简单中断请求(也就是,DMA,请求)时,将让出一个或几个存取周期供外设与主存交换信息,然后继续执行程序8/13/2024,56,8.3 中断系统和程序中断方式(2) 程序中断和简单中断8/,8.3,中断系统和程序中断方式,(3)内中断和外中断,,内中断,是指由于CPU内部硬件或软件原因引起的中断。

外中断,是指CPU以外的部件引起的中断4) 向量中断和非向量中断,,向量中断,是指那些中断服务程序的入口地址是由中断事件自己提供的中断中断事件在提出中断请求的同时,通过硬件向主机提供中断服务程序入口地址,即向量地址,8/13/2024,57,8.3 中断系统和程序中断方式(3)内中断和外中断8/23/,8.3,中断系统和程序中断方式,,非向量中断,的中断事件不能直接提供中断服务程序的入口地址,而由CPU 查询之后得到5) 单重中断和多重中断,,单重中断,在CPU执行中断服务程序的过程中不能被再打断多重中断,在执行某个中断服务程序的过程中,,CPU 可去响应级别更高的中断请求,又称为,中断嵌套,8/13/2024,58,8.3 中断系统和程序中断方式 非向量,8.3,中断系统和程序中断方式,8,.,3.2 中断请求,和中断判优,1,. 中断源和中断请求,信号,,中断源,是指中断的来源,即任何引起计算机中断的事件,,通常计算机都有多个中断源由于每个中断源向CPU发出中断请求的时间是随机的,为了记录中断事件并区分不同的中断源,可,采用具有存储功能的触发器来记录中断源,,称为,中断请求触发器,。

当某一个中断源有中断请求时,其相应的中断请求触发器置成,“,1,”,状态,,此时,该中断源向,CPU,发出中断请求信号8/13/2024,59,8.3 中断系统和程序中断方式8.3.2 中断请求和中断判,8.3,中断系统和程序中断方式,,多个,中断请求触发器,构成一个,中断请求寄存器,,其中每一位对应一个中断源,中断请求寄存器的内容称为,中断字,或,中断码,,中断字中为,“,1,”,的位就表示对应的中断源有中断请求8/13/2024,60,8.3 中断系统和程序中断方式 多个中,8.3,中断系统和程序中断方式,2. 中断请求信号的传送,(1) 独立请求线,每个中断源单独设置中断请求线,将中断请求信号直接送往CPU,如右图所示这种方式的特点是CPU在接到中断请求的同时也就知道了中断源是谁,其中断服务程序的入口地址在哪里8/13/2024,61,8.3 中断系统和程序中断方式2. 中断请求信号的传送8/,8.3,中断系统和程序中断方式,(2) 公共请求线,多个中断源共有一根公共请求线,如下图所示这种方式的特点是在负载允许的情况下,中断源的数目可随意扩充,但CPU在接到中断请求后,必须通过软件或硬件的方法来识别中断源,然后再找出中断服务程序的入口地址。

8/13/2024,62,8.3 中断系统和程序中断方式(2) 公共请求线8/23/2,8.3,中断系统和程序中断方式,(3) 二维结构,将中断请求线连成二维结构,同一优先级别的中断源, 采用一根公共的请求线,不同请求线上的中断源优先级别不同,这种方式综合了前两种方式的优点,,在中断源较多的系统中常采用这种方式8/13/2024,63,8.3 中断系统和程序中断方式(3) 二维结构8/23/20,8.3,中断系统和程序中断方式,3. 中断优先级与判优方法,当多个中断源同时发出中断请求时,,CPU,在任何瞬间只能接受一个中断源的请求通常,把全部中断源按中断的性质和处理的轻重缓急安排优先级,并进行排队确定中断优先级的原则,是:,对那些提出中断请求后需要立刻处理,否则就会造成严重后果的中断源规定最高的优先级,;,而对那些可以延迟响应和处理的中断源规定较低的优先级,如,故障中断一般优先级较高,,,接着才是,I/O,设备中断,而在,I/O,设备中又可以根据各个设备的速度来决定优先级8/13/2024,64,8.3 中断系统和程序中断方式3. 中断优先级与判优方法8,8.3,中断系统和程序中断方式,,每个中断源均有一个为其服务的中断服务程序,,每个中断服务程序都有与之对应的优先级别。

另外,,CPU,正在执行的程序也有优先级只有当某个中断源的优先级别高于,CPU,现在的优先级时,才能中止,CPU,执行现在的程序中断判优的方法可分为下列两种:,8/13/2024,65,8.3 中断系统和程序中断方式 每个中断,8.3,中断系统和程序中断方式,(1) 软件判优法,软件判优法,就是用程序来判别优先级,这是最简单的中断判优方法右图是软件判优的流程图8/13/2024,66,8.3 中断系统和程序中断方式(1) 软件判优法8/23/2,8.3,中断系统和程序中断方式,当CPU接到中断请求信号后,就执行查询程序,逐个检测中断请求寄存器的各位状态,检测顺序是按优先级的大小排列的,,最先检测到的中断源具有最高的优先级,,其次检测到的中断源具有次高优先级,如此下去,最后检测的中断源具有最低的优先级显然,软件判优是与识别中断源结合在一起的,当查询到中断请求信号的发出者,也就是找到了中断源,程序立即可以转入对应的中断服务程序中去8/13/2024,67,8.3 中断系统和程序中断方式 当CP,8.3,中断系统和程序中断方式,(2) 硬件判优电路,采用硬件实现中断优先级判定可节省CPU时间,而且速度快,但是成本较高。

根据中断请求信号的传送方式不同,有不同的优先排队电路,常见的有以下几种方案,独立请求线的优先排队电路,公共请求线的优先排队电路,8/13/2024,68,8.3 中断系统和程序中断方式(2) 硬件判优电路8/23,8.3,中断系统和程序中断方式,8.3.3 中断响应和中断处理,,1. CPU响应中断的条件,(1),CPU接收到中断请求信号,首先中断源要发出中断请求,同时CPU还要接收到这个中断请求信号2),CPU允许中断,CPU允许中断即开中断CPU内部有一个,中断允许触发器,,只有当其被置位时,CPU才可能响应中断源的中断请求(中断开放)如其被复位,CPU处于不可中断状态,即使中断源有中断请求,CPU也不响应(中断关闭)8/13/2024,69,8.3 中断系统和程序中断方式8.3.3 中断响应和中断处,8.3,中断系统和程序中断方式,(3),一条指令执行完毕,一般情况下,CPU在一条指令执行完毕,且没有更紧迫的任务时才能响应中断请求2. 中断隐指令,CPU响应中断之后,经过某些操作,转去执行中断服务程序 这些操作是由硬件直接实现的,我们把它称为,中断隐指令,中断隐指令并不是指令系统中的一条真正的指令,它没有操作码,所以中断隐指令是一种不允许、也不可能为用户使用的特殊指令,。

其所完成的操作主要有:,8/13/2024,70,8.3 中断系统和程序中断方式(3) 一条指令执行完毕8/2,8.3,中断系统和程序中断方式,(1),保存断点,将原来程序的断点(即程序计数器PC的内容)保存起来2),暂不允许中断,为了在用软件保护中断现场(即CPU 的主要寄存器状态)时,不被新的中断所打断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去3),引出中断服务程序,引出中断服务程序的实质就是取出中断服务程序的入口地址送程序计数器8/13/2024,71,8.3 中断系统和程序中断方式(1) 保存断点8/23/20,8.3,中断系统和程序中断方式,3. 中断周期,以上几个基本操作在不同的计算机系统中的处理方法是各异的通常,在组合逻辑控制的计算机中,专门设置了一个中断周期来完成中断隐指令的任务在微程序控制的计算机中,则专门安排有一段微程序来完成中断隐指令的这些操作假设将断点存至主存的0号单元,且采用硬件向量中断法寻找中断服务程序的入口地址(向量地址=中断服务程序的入口地址),则在中断周期需完成如下操作:,8/13/2024,72,8.3 中断系统和程序中断方式3. 中断周期8/23/20,8.3,中断系统和程序中断方式,3. 中断周期,⑴,将特定地址“,0,”送至存储器地址寄存器,记作,0,→,MAR,;,⑵,将,PC,的内容(断点)送至,MDR,,记作,(PC),→,MDR,;,,⑶,向主存发写命令,启动存储器做写操作,记作,Write,;,⑷,将,MDR,的内容通过数据总线写入到,MAR,所指示的主存单元(,0,号)中,记作,MDR,→,M(MAR),;,8/13/2024,73,8.3 中断系统和程序中断方式3. 中断周期8/23/20,8.3,中断系统和程序中断方式,⑸,向量地址形成部件的输出送至,PC,,为进入中断服务程序作准备,记作,向量地址,→,PC,;,⑹,,关中断,将中断允许触发器清,0,,记作,0,→,EINT,。

如果断点存入堆栈,只需将上述,⑴,改为堆栈指针,SP,→,MAR,8/13/2024,74,8.3 中断系统和程序中断方式 ⑸ 向量地址形成部件的输出送,8.3,中断系统和程序中断方式,4. 进入中断服务程序,识别中断源在于转入为该中断源专门设置的中断服务程序向量中断时,中断源向CPU发出中断请求信号之后,CPU经过一定的判优处理,若决定响应这个中断请求,则向中断源发出中断响应信号中断源接到中断响应信号后就通过自己的向量地址发生器向CPU发送向量地址8/13/2024,75,8.3 中断系统和程序中断方式4. 进入中断服务程序8/23,8.3,中断系统和程序中断方式,工作完成,允许中断,发中断请求,中断优先级,判定选优,中断响应,识别中断源,向量地址,形成,现场处理,启动中断,服务程序,向量地址,_____,INTR,,INTA,中断源,CPU,工作完成,允许中断,发中断请求,中断优先级,判定选优,中断响应,识别中断源,向量地址,形成,现场处理,启动中断,服务程序,8/13/2024,76,8.3 中断系统和程序中断方式工作完成中断优先级识别中断源现,8.3,中断系统和程序中断方式,向量地址通常有两种情况:,(1),向量地址是中断服务程序的入口地址,如果向量地址就是中断服务程序的入口地址,则CPU 不需要再经过处理就可以进入相应的中断服务程序。

PC←8×NNN 转中断服务程序入口地址,由此可见,中断服务程序的入口地址依次是00H、08H、10H、……、 38H8/13/2024,77,8.3 中断系统和程序中断方式向量地址通常有两种情况:8/2,8.3,中断系统和程序中断方式,(2),向量地址是中断向量表的指针,如果向量地址是中断向量表的指针,则向量地址指向一个中断向量表,从中断向量表的相应单元中再取出中断服务程序的入口地址,此时中断源给出的向量地址是中断服务程序入口地址的地址8/13/2024,78,8.3 中断系统和程序中断方式(2) 向量地址是中断向量表的,8.3,中断系统和程序中断方式,8/13/2024,79,8.3 中断系统和程序中断方式8/23/202379,8.3,中断系统和程序中断方式,5. 中断现场的保护和恢复,中断现场指的是发生中断时,CPU,的主要状态,其中最重要的是断点,另外还有一些通用寄存器的状态之所以需要保护和恢复现场的原因是因为,CPU,要先后执行两个完全不同的程序(现行程序和中断服务程序),必须进行两种程序运行状态的转换一般来说,在中断隐指令中,,CPU,硬件将自动保存断点,有些计算机还自动保存程序状态寄存器的内容。

但是,在许多应用中,要保证中断返回后原来的程序能正确地继续运行,仅保存这一、二个寄存器的内容是不够的8/13/2024,80,8.3 中断系统和程序中断方式5. 中断现场的保护和恢复8,8.3,中断系统和程序中断方式,为此,,在中断服务程序开始时,应由软件去保存那些硬件没有保存,而在中断服务程序中又可能用到的寄存器(如某些通用寄存器)的内容,,在中断返回之前,这些内容还应该被恢复现代计算机一般都先采用硬件方法来自动快速的保护和恢复部分重要的现场,其余寄存器的内容再由软件完成保护和恢复,这种,方法的硬件支持是堆栈,8/13/2024,81,8.3 中断系统和程序中断方式 为此,在中断服务程,8.3,中断系统和程序中断方式,,8/13/2024,82,8.3 中断系统和程序中断方式8/23/202382,8.3,中断系统和程序中断方式,8.3.4 多重中断与中断屏蔽,,1. 中断嵌套,中断嵌套的层次可以有多层, 越在里层的中断越急迫,优先级越高,因此优先得到CPU的服务要使计算机具有多重中断的能力,首先要能保护多个断点,,先发生的中断请求的断点,先保护后恢复;后发生的中断请求的断点,后保护先恢复,,堆栈的先进后出特点正好满足多重中断这一先后次序的需要,。

在CPU进入某一中断服务程序之后,系统必须处于开中断状态,否则中断嵌套是不可能实现的8/13/2024,83,8.3 中断系统和程序中断方式8.3.4 多重中断与中断屏,现行程序,中断服务程序1,中断服务程序2,第一次,中断请求,优先,级别,更高的,中断请求,8.3,中断系统和程序中断方式,8/13/2024,84,现行程序中断服务程序1中断服务程序2 第一次 优先,8.3,中断系统和程序中断方式,2. 允许和禁止中断,允许中断还是禁止中断是用CPU中的中断允许触发器控制的,当中断允许触发器被置,“,1,”,,则允许中断,当中断允许触发器被置,“,0,”,,则禁止中断,,允许中断即开中断,下列情况时,应开中断,:,,,⑴,,在中断服务程序执行完毕,恢复中断现场之后;,,,⑵,,在多重中断的情况下,保护中断现场之后8/13/2024,85,8.3 中断系统和程序中断方式2. 允许和禁止中断8/23,,禁止中断即关中断,下列情况时,应关中断,:,,,⑴,,当响应某一级中断请求,不再允许被其他中断请求打断时;,,⑵,,在中断服务程序的保护和恢复现场之前3.中断屏蔽,中断源发出中断请求之后,这个中断请求并不一定能真正送到CPU去,在有些情况下,可以用程序方式有选择地封锁部分中断,这就是中断屏蔽。

8.3,中断系统和程序中断方式,8/13/2024,86,禁止中断即关中断,下列情况时应关中断,8.3,中断系统和程序中断方式,如果给每个中断源都相应地配备一个中断屏蔽触发器,MASK,,则每个中断请求信号在送往判优电路之前,还要受到屏蔽触发器的控制当,MASK=1,,表示对应中断源的请求被屏蔽(封锁其中断源的请求),可见中断请求触发器和中断屏蔽触发器是成对出现的,,只有当,INTR,i,=1,(中断源有中断请求),,MASK,i,=0,(该级中断未被屏蔽),才允许对应的中断请求送往,CPU,8/13/2024,87,8.3 中断系统和程序中断方式 如果给每个中断源都,8.3,中断系统和程序中断方式,在中断接口电路中,,多个,屏蔽触发器,组成一个,屏蔽寄存器,,其内容称为,屏蔽字,或,屏蔽码,,由程序来设置屏蔽字某一位的状态将成为本中断源能否真正发出中断请求信号的必要条件之一这样,就可实现CPU对中断处理的控制,使中断能在系统中合理协调地进行中断屏蔽寄存器的作用:用程序设置的方法将屏蔽寄存器中的某一位置“1”,则对应的中断请求被封锁,无法去参加排队判优;若屏蔽寄存器中的某一位置“0”,才允许对应的中断请求送往CPU。

8/13/2024,88,8.3 中断系统和程序中断方式 在中断接口电路中,,8.3,中断系统和程序中断方式,,,,,,&,,&,,&,,&,,≥,1,8/13/2024,89,8.3 中断系统和程序中断方式& & & & ≥1 8/23,8.3,中断系统和程序中断方式,如一个中断系统有16个中断源,每一个中断源按其优先级别赋予一个屏蔽字0”表示开放,“1”表示屏蔽第1级中断源的优先级别最高,它禁止本级和更低级的中断请求;第16级中断源的优先级别最低,它仅禁止本级的中断请求,而对其他高级的中断请求全部开放中断源的优先级,,,屏蔽字(16位),,,1,2,3,,15,16,,111…111,011…111,001…111,,000…011,000…001,,,…,…,8/13/2024,90,8.3 中断系统和程序中断方式 如一个,8.3,中断系统和程序中断方式,4.中断升级,,中断屏蔽字,的,另一个作用是可以改变中断优先级,将原级别较低的中断源变成较高的级别,,我们称之为,中断升级,这实际上是一种动态改变优先级的方法这里所说的改变优先次序是指改变中断的处理次序。

中断处理次序和中断响应次序是两个不同的概念,,中断响应次序是由硬件排队电路决定的,无法改变,但是,,中断处理次序是可以由屏蔽码来改变的,,故,把屏蔽码看成,软排队器,中断处理次序可以不同于中断响应次序8/13/2024,91,8.3 中断系统和程序中断方式4.中断升级8/23/2023,8.3,中断系统和程序中断方式,例如,某计算机的中断系统有4个中断源,每个中断源对应一个屏蔽码中断响应的优先次序为1→2→3→4中断的处理次序和中断的响应次序是一致的程序级别,,,,屏 蔽 码,,,1级,,,2级,,,3级,,,4级,,,第1级,第2级,第3级,第4级,,,1,0,0,0,,,1,1,0,0,,,1,1,1,0,,,1,1,1,1,,,8/13/2024,92,8.3 中断系统和程序中断方式 例如,,8.3,中断系统和程序中断方式,根据这一次序,可以看到CPU运动的轨迹,当多个中断请求同时出现时,处理次序与响应次序一致;当中断请求先后出现时,允许优先级别高的中断请求打断优先级别低的中断服务程序,实现中断嵌套中断服务,程序,现行程序,①,②,①,③,③,②,②,④,④,①,8/13/2024,93,8.3 中断系统和程序中断方式 根据这,8.3,中断系统和程序中断方式,在不改变中断响应次序的条件下,通过改写屏蔽码可以改变中断处理次序,例如,要使中断处理次序改为1→4→3→2。

程序级别,,,,屏 蔽 码,,,1级,,,2级,,,3级,,,4级,,,第1级,第2级,第3级,第4级,,,1,0,0,0,,,1,1,1,1,,,1,0,1,1,,,1,0,0,1,,,,8/13/2024,94,8.3 中断系统和程序中断方式 在不,8.3,中断系统和程序中断方式,在同样中断请求的情况下,CPU的运动轨迹发生了变化中断服务,程序,现行程序,①,①,③,③,②,②,④,④,②,①,8/13/2024,95,8.3 中断系统和程序中断方式 在同样,8.3,中断系统和程序中断方式,8.3.5 中断全过程,,中断全过程是指从中断源发出中断请求开始,CPU响应这个请求,现行程序被中断,转至中断服务程序,直至中断服务程序执行完毕,CPU 再返回原来的程序继续执行的整个过程,中断全过程分为五个阶段:,,中断请求、中断判优、中断响应、中断处理、中断返回,8/13/2024,96,8.3 中断系统和程序中断方式8.3.5 中断全过程8/,8.3,中断系统和程序中断方式,其中中断处理就是执行中断服务程序,中断服务程序基本上由三部分组成,第一部分为准备部分,其基本功能是保护现场,对于非向量中断方式则需要确定中断源,最后开放中断,允许更高级的中断请求打断低级的中断服务程序。

第二部分为处理部分,即真正执行为某个中断源服务的中断服务程序第三部分为结尾部分,首先要关中断,以防止在恢复现场过程中被新的中断打断,接着。

下载提示
相似文档
正为您匹配相似的精品文档