1、计算机组成原理任课教师:石磊郑州大学信息工程学院计算机系Email:Tel:13676986863第一章第一章 计算机系统概论计算机系统概论第二章第二章 运算方法和运算器运算方法和运算器第三章第三章 存储系统存储系统第四章第四章 指令系统指令系统 第五章第五章 中央处理器中央处理器 第六章第六章 总线系统总线系统 第七章第七章 外围设备外围设备 第八章第八章 输入输出系统输入输出系统第九章第九章 并行组织并行组织目录n教材n白中英,计算机组成原理白中英,计算机组成原理网络版,科学出版网络版,科学出版社,社,20022002n参考书n石磊,计算机组成原理石磊,计算机组成原理第第2 2版版,清华大
2、学出版清华大学出版社,社,20062006n钱晓捷,微型计算机原理及应用钱晓捷,微型计算机原理及应用,清华大学出清华大学出版社,版社,20062006n王爱英王爱英,计算机组成与结构计算机组成与结构第第3 3版版,清华大学清华大学出版社,出版社,20012001n白中英白中英 邝坚,计算机组织与结构邝坚,计算机组织与结构网络版,科网络版,科学出版社,学出版社,20032003nI/OI/O接口概述接口概述n8.1 CPU8.1 CPU对外围设备的管理方式对外围设备的管理方式n程序查询方式程序查询方式n8.2 8.2 程序中断方式程序中断方式n8.3 DMA8.3 DMA方式方式n8.4 8.4
3、 通道方式通道方式第8章 输入输出系统I/O系统包括系统包括I/O接口接口硬件硬件电路电路和和I/O管理软件管理软件计算机组成原理计算机组成原理5I/O接口(电路)6.2.2l计算机的外围计算机的外围(外部外部)设备设备多种多样多种多样l工作原理、驱动方式、信息格式、以及工作速工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大度方面彼此差别很大l外设不能与外设不能与CPUCPU直接相连,必须经过中间电路直接相连,必须经过中间电路(I/OI/O接口电路)再与系统相连接口电路)再与系统相连lI/O接口电路是位于系统与外设间、用来协助接口电路是位于系统与外设间、用来协助完成数据传送和控制任务
4、的逻辑电路完成数据传送和控制任务的逻辑电路多种多样的外设n工作原理不同工作原理不同机械、电子、机电、电磁机械、电子、机电、电磁n传送信息类型多样传送信息类型多样数字量、模拟量、开关量数字量、模拟量、开关量n传送速度差别极大传送速度差别极大n传送方式不尽相同传送方式不尽相同串行、并行串行、并行n编码方式不同编码方式不同二进制、二进制、BCD码、码、ASCII码码返回计算机组成原理计算机组成原理7I/O接口的典型结构l内部结构内部结构 数据寄存器数据寄存器:保存微处理器与外设之间交换的数:保存微处理器与外设之间交换的数据据状态寄存器状态寄存器:保存外设当前的工作状态信息:保存外设当前的工作状态信息
5、控制寄存器控制寄存器:保存微处理器控制接口电路和外设:保存微处理器控制接口电路和外设操作的有关信息操作的有关信息l外部特性外部特性面向微处理器一侧的信号:与微处理器总线类似面向微处理器一侧的信号:与微处理器总线类似面向外设一侧的信号:与外设有关面向外设一侧的信号:与外设有关示意图示意图计算机组成原理计算机组成原理8I/O接口的软件编程l接口电路具有可编程性(接口电路具有可编程性(ProgrammableProgrammable)根据具体要求,通过编程选定根据具体要求,通过编程选定I/OI/O接口电路的多种接口电路的多种功能或工作方式之一功能或工作方式之一l初始化程序初始化程序选择选择I/OI/
6、O接口工作方式、设置原始工作状态等接口工作方式、设置原始工作状态等l驱动程序驱动程序操纵操纵I/OI/O接口完成具体工作接口完成具体工作硬件接口电路需要软件编程配合工作硬件接口电路需要软件编程配合工作计算机组成原理计算机组成原理9I/O端口的编址lI/OI/O端口(端口(PortPort)泛指)泛指I/OI/O地址,对应地址,对应I/OI/O接口寄存器接口寄存器l一个接口电路可以具有多个一个接口电路可以具有多个I/OI/O端口,每个端口用来端口,每个端口用来保存和交换不同的信息保存和交换不同的信息l数据寄存器、状态寄存器和控制寄存器占有的数据寄存器、状态寄存器和控制寄存器占有的I/OI/O地地
7、址常依次被称为数据端口、状态端口和控制端口,用址常依次被称为数据端口、状态端口和控制端口,用于保存数据、状态和控制信息于保存数据、状态和控制信息l输入、输出端口可以是同一个输入、输出端口可以是同一个I/OI/O地址地址l接口电路占用的接口电路占用的I/OI/O端口有两类编排形式端口有两类编排形式I/OI/O端口单独编址端口单独编址I/OI/O端口与存储器统一编址端口与存储器统一编址计算机组成原理计算机组成原理10I/O端口与存储器独立编址l将将I/OI/O端口单独编排地址,独立于存储器地址端口单独编排地址,独立于存储器地址l优点:优点:I/OI/O端口的地址空间独立端口的地址空间独立控制和地址
8、译码电路相对简单控制和地址译码电路相对简单专门的专门的I/OI/O指令使程序清晰易读指令使程序清晰易读l缺点:缺点:I/OI/O指令没有存储器指令丰富指令没有存储器指令丰富主存主存空间空间I/O空间空间FFFFF0FFFF80 x86采用采用I/O端口独立编址端口独立编址计算机组成原理计算机组成原理11I/O端口与存储器统一编址l将将I/OI/O端口与存储器地址统一编排,共享一个端口与存储器地址统一编排,共享一个地址空间地址空间l优点:优点:不需要专门的不需要专门的I/O指令指令I/O数据存取灵活数据存取灵活l缺点:缺点:占去部分存储器空间占去部分存储器空间程序不易阅读(在汇编语言级程序不易阅
9、读(在汇编语言级不容易区别访问存储器和访问外设)不容易区别访问存储器和访问外设)主存主存部分部分I/O部分部分存储器空间存储器空间00000FFFFF计算机组成原理计算机组成原理128.1 CPU对外围设备的管理方式I/O控制方式控制方式主要由程序实现主要由程序实现主要由附加硬件实现主要由附加硬件实现程序程序查询方式查询方式程序程序中断方式中断方式DMA方式方式通道方式通道方式PPU方式方式计算机组成原理计算机组成原理13CPU和外设之间信息交换的方式l程序控制下的数据传送程序控制下的数据传送通过通过CPU执行程序中的执行程序中的I/O指令来完成传送指令来完成传送程序查询方式程序查询方式程序中
10、断方式程序中断方式l直接存储器存取直接存储器存取DMA方式方式外设外设经经DMA控制器向控制器向CPU申请总线,申请总线,由由DMA控制控制器利用系统总线完成外设和存储器间的数据传送器利用系统总线完成外设和存储器间的数据传送l通道方式通道方式通道通道(I/O处理处理器器)管理外设,完成传送和数据处理管理外设,完成传送和数据处理l外围外围处理机处理机方式方式通道方式的进一步发展,基本独立于主机工作通道方式的进一步发展,基本独立于主机工作计算机组成原理计算机组成原理14程序查询方式lCPU需要先了解(需要先了解(查询查询)外设的工作状态,然)外设的工作状态,然后在外设可以交换信息的情况下(后在外设
11、可以交换信息的情况下(就绪就绪)实现)实现数据输入或输出数据输入或输出l对多个外设的情况,对多个外设的情况,按顺序依次查询(轮询)按顺序依次查询(轮询)l有有查询查询和和传送传送两个环节两个环节l实际中常引入超时判断实际中常引入超时判断l查询需大量时间,效率较低查询需大量时间,效率较低计算机组成原理计算机组成原理15查询输入接口l读取状态端口查询外设状态,若已就绪,读取读取状态端口查询外设状态,若已就绪,读取数据端口得到外设提供的数据数据端口得到外设提供的数据计算机组成原理计算机组成原理16查询输出接口l读取状态端口查询外设状态,若已就绪,将数读取状态端口查询外设状态,若已就绪,将数据写入数据
12、端口输出给外设据写入数据端口输出给外设计算机组成原理计算机组成原理178.2 程序中断方式l处理器在执行程序过程中,被内部或外部的事件所打处理器在执行程序过程中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序结束后,又返回原来的断点,继续执行原来的程序l中断源:中断源:引起中断的事件或原因引起中断的事件或原因l例如:例如:外设的数据传送请求外设的数据传送请求系统定时请求系统定时请求电源掉电等故障电源掉电等故障运算出错等错误运算出错等错误程序异常或调试请求程序异常或调试请求计算机组成原
13、理计算机组成原理18中断的基本概念(1/3)1 1、概念:当计算机执行正常程序时,系统中出、概念:当计算机执行正常程序时,系统中出现某些异常情况或特殊请求,这些情况和请求现某些异常情况或特殊请求,这些情况和请求可能来自计算机内部,也可能来自计算机外部;可能来自计算机内部,也可能来自计算机外部;一旦有上述事件发生,计算机执行正常程序的一旦有上述事件发生,计算机执行正常程序的状态被中断,就是说,状态被中断,就是说,CPUCPU要暂停它正在执行要暂停它正在执行的程序,而转去处理所发生的事件(通常就是的程序,而转去处理所发生的事件(通常就是执行一段特殊程序,被称为中断服务程序);执行一段特殊程序,被称
14、为中断服务程序);CPUCPU处理完毕后,自动返回到原来被中断了的处理完毕后,自动返回到原来被中断了的程序继续运行。程序继续运行。计算机组成原理计算机组成原理19中断的基本概念(2/3)2 2、与子程序调用的比较、与子程序调用的比较 (1 1)相同点相同点:正常程序:主程序正常程序:主程序 中断服务程序:子程序中断服务程序:子程序 (2 2)区别:)区别:(A A)子程序的执行是程序员事先安排好的;子程序的执行是程序员事先安排好的;中断服务程序的执行则是由随机的中断事件引起的,比如电中断服务程序的执行则是由随机的中断事件引起的,比如电源掉电、请求源掉电、请求I/OI/O数据传送、现场报警等。数
15、据传送、现场报警等。(B B)子程序的执行往往与主程序有关;子程序的执行往往与主程序有关;中断服务程序可能与被中断的程序毫无关系。中断服务程序可能与被中断的程序毫无关系。(C C)有可能出现多个中断事件同时请求的情况,此时,有可能出现多个中断事件同时请求的情况,此时,主机就需要进行判优,进而决定为哪一个请求服务。主机就需要进行判优,进而决定为哪一个请求服务。子程序不存在此种情况。子程序不存在此种情况。计算机组成原理计算机组成原理20中断的基本概念(3/3)3 3、中断的作用、中断的作用 (1)(1)主机与外部设备并行工作主机与外部设备并行工作 (2)(2)实现实时处理实现实时处理 (3)(3)
16、硬件故障处理硬件故障处理 (4)(4)实现多道程序和分时操作实现多道程序和分时操作计算机组成原理计算机组成原理21CPU响应中断的条件(1/11)一、中断源一、中断源 (1 1)概念:能够引起)概念:能够引起CPUCPU中断的原因就是中断源。中断源是指形成这个原中断的原因就是中断源。中断源是指形成这个原因的设备、部件或条件。因的设备、部件或条件。(2 2)种类:)种类:输入输出设备输入输出设备。系统中的外部设备都可以设计成为以中断方式与主机。系统中的外部设备都可以设计成为以中断方式与主机进行数据的交换,从而作为系统的中断源。进行数据的交换,从而作为系统的中断源。故障与错误。系统运行中会出现诸如
17、电源掉电、运算出错、非法指令故障与错误。系统运行中会出现诸如电源掉电、运算出错、非法指令等问题,它们也常采用中断方式请求等问题,它们也常采用中断方式请求CPUCPU立即处理。立即处理。实时时钟实时时钟。系统中的时钟定时电路是必不可少的,若定时时间到,时。系统中的时钟定时电路是必不可少的,若定时时间到,时钟电路就可以通过中断告知主机。钟电路就可以通过中断告知主机。程序调试和软件中断程序调试和软件中断。程序调试中常常采用设置中断断点的方法来观。程序调试中常常采用设置中断断点的方法来观察程序运行是否正确;有些机器的指令系统设计有软件中断指令,利用中察程序运行是否正确;有些机器的指令系统设计有软件中断
18、指令,利用中断机制实现操作系统的功能调用以及调试程序。需要说明一点,这类中断断机制实现操作系统的功能调用以及调试程序。需要说明一点,这类中断是由程序员事先安排好的,和调用子程序的作用一样,与上述由外部硬件是由程序员事先安排好的,和调用子程序的作用一样,与上述由外部硬件产生的中断有些不同。产生的中断有些不同。计算机组成原理计算机组成原理22CPU响应中断的条件(2/11)二、中断的分类:二、中断的分类:(1 1)按中断源是在主机之内还是外分:)按中断源是在主机之内还是外分:(A A)内部中断内部中断 内部中断是指中断源来自主机内部,如运算出错、程内部中断是指中断源来自主机内部,如运算出错、程序调
19、试和软件中断等;序调试和软件中断等;(B B)外部中断外部中断 外部中断来自主机之外,如外部设备、实时时钟和硬外部中断来自主机之外,如外部设备、实时时钟和硬件故障产生的中断等。件故障产生的中断等。计算机组成原理计算机组成原理23CPU响应中断的条件(3/11)二、中断的分类:二、中断的分类:(2 2)按中断对按中断对CPUCPU的打扰情况分:的打扰情况分:(A A)程序中断程序中断 CPUCPU要用专门的中断服务程序为中断源服务,并且要用专门的中断服务程序为中断源服务,并且在服务前要进行断点和现场的保护,在服务后要进行现场在服务前要进行断点和现场的保护,在服务后要进行现场和断点恢复的中断。这种
20、中断就是一般所说的中断,是大和断点恢复的中断。这种中断就是一般所说的中断,是大多数中低速外设以及内中断常用的中断方式。多数中低速外设以及内中断常用的中断方式。(B B)简单中断简单中断 当这种中断发生时,相应的请求源只是请求当这种中断发生时,相应的请求源只是请求CPUCPU的的正常程序暂停一下,通常称为总线请求或正常程序暂停一下,通常称为总线请求或DMADMA请求。暂停请求。暂停的目的是把主存和接口的数据通路让给请求源使用(即总的目的是把主存和接口的数据通路让给请求源使用(即总线使用权),使得能在主存和请求源之间直接进行一次数线使用权),使得能在主存和请求源之间直接进行一次数据传送,当这次传送
21、结束后,请求源立即把这个使用权归据传送,当这次传送结束后,请求源立即把这个使用权归还给还给CPUCPU。接着运行刚才暂停的程序,这个暂停时间通常接着运行刚才暂停的程序,这个暂停时间通常一次一个存取周期。一次一个存取周期。计算机组成原理计算机组成原理24CPU响应中断的条件(4/11)二、中断的分类:二、中断的分类:(3 3)按寻找中断服务程序入口的实现方法区分:按寻找中断服务程序入口的实现方法区分:(A A)向量中断(矢量中断):中断服务程序入口由中断向量中断(矢量中断):中断服务程序入口由中断源自己提供。源自己提供。(B B)非向量中断:入口由非向量中断:入口由CPUCPU查询得到。查询得到
22、。计算机组成原理计算机组成原理25CPU响应中断的条件(5/11)三、中断工作过程三、中断工作过程:1、中断请求(1 1)中断请求是中断源向)中断请求是中断源向CPUCPU发出中断请求信号,要求发出中断请求信号,要求CPUCPU为它服务的过为它服务的过程。程。(2 2)何时?)何时?基本条件两个:基本条件两个:(A A)外设本身工作已经完成外设本身工作已经完成 (B B)外设被允许中断外设被允许中断(3 3)硬件支持:)硬件支持:中断请求电路,基本组成是两个触发器:中断请求电路,基本组成是两个触发器:(A A)一个反映外设工作是否完成,其形成与程序查询的一个反映外设工作是否完成,其形成与程序查
23、询的准备就绪状态标志一样;准备就绪状态标志一样;(B B)另一个反映外设是否允许采用中断方式,即中断另一个反映外设是否允许采用中断方式,即中断屏蔽功能。只有当外设工作完成而且被允许中断时,相应中断源才可屏蔽功能。只有当外设工作完成而且被允许中断时,相应中断源才可以通过这个请求电路形成中断请求信号。以通过这个请求电路形成中断请求信号。计算机组成原理计算机组成原理26CPU响应中断的条件(6/11)三、中断工作过程:三、中断工作过程:2、中断判优 (1 1)中断优先级有两个方面的含义:中断优先级有两个方面的含义:(A A)一是中断请求与一是中断请求与CPUCPU现行程序优先级的问题;现行程序优先级
24、的问题;(B B)另一含义是各中断源之间,谁更迫切的问题。另一含义是各中断源之间,谁更迫切的问题。(2 2)方法:方法:(A A)软件软件 (B B)硬件:为了得到较高的效率,一般采用硬件判优方法。判硬件:为了得到较高的效率,一般采用硬件判优方法。判优逻辑随着判优方案的不同可有不同的结构,其组成部分既可能在设优逻辑随着判优方案的不同可有不同的结构,其组成部分既可能在设备接口之中,也可能在备接口之中,也可能在CPUCPU内部,也可能这两部分都有。其作用是决内部,也可能这两部分都有。其作用是决定定CPUCPU的响应并且找出最高优先请求者,如果确定接收这个请求的话,的响应并且找出最高优先请求者,如果
25、确定接收这个请求的话,就由就由CPUCPU发出中断响应信号发出中断响应信号INTAINTA (C C)软硬件结合。软硬件结合。计算机组成原理计算机组成原理27CPU响应中断的条件(7/11)三、中断工作过程:三、中断工作过程:3、中断响应(1 1)CPUCPU响应最高优先级的中断请求,并且在适当时会向中断源提供一响应最高优先级的中断请求,并且在适当时会向中断源提供一个应答的响应信号,表明主机承认了它的请求,这就是中断响应。在采个应答的响应信号,表明主机承认了它的请求,这就是中断响应。在采用硬件向量中断的方式中,通常,用硬件向量中断的方式中,通常,CPUCPU还要利用它告知中断接口电路向还要利用
26、它告知中断接口电路向CPUCPU提供一个中断向量。提供一个中断向量。(2 2)响应条件:)响应条件:(A A)一条指令执行结束时刻一条指令执行结束时刻 (B B)中断允许:中断允许:(a)a)可屏蔽中断(可屏蔽中断(MaskableMaskable Interrupt Interrupt):):计算机中断计算机中断系统对一般外设的中断请求就采用受中断标志位控制;系统对一般外设的中断请求就采用受中断标志位控制;(b)b)非屏蔽中断(非屏蔽中断(Non-Non-MaskableMaskable Interrupt Interrupt):):而对必而对必须立刻响应的中断请求,如电源掉电、机器故障等,
27、则采用不受中断标须立刻响应的中断请求,如电源掉电、机器故障等,则采用不受中断标志位控制。志位控制。计算机组成原理计算机组成原理28CPU响应中断的条件(8/11)l中断屏蔽中断屏蔽 (A A)概念:对中断的允许或禁止的控制概念:对中断的允许或禁止的控制 (B B)必要性:必要性:eg1eg1:中断服务程序与正常程序共享数据区中断服务程序与正常程序共享数据区 eg2eg2:CPUCPU正在用软件查询中断源时正在用软件查询中断源时 eg3eg3:正在执行中断服务程序而不允许嵌套时正在执行中断服务程序而不允许嵌套时 eg4eg4:进行现场保护和恢复现场时进行现场保护和恢复现场时 (C C)方法:方法
28、:软硬结合和内外结合的方法。不同的计算机可能在具体措施上有差异,软硬结合和内外结合的方法。不同的计算机可能在具体措施上有差异,但基本的思想是相同的。外部中断请求电路设置中断屏蔽触发器控制某一但基本的思想是相同的。外部中断请求电路设置中断屏蔽触发器控制某一个中断源能否产生中断请求信号,个中断源能否产生中断请求信号,CPUCPU内部设置中断标志位用于控制全部内部设置中断标志位用于控制全部可屏蔽中断的响应。一般计算机中都有实现中断屏蔽的指令和相应的硬件可屏蔽中断的响应。一般计算机中都有实现中断屏蔽的指令和相应的硬件电路。电路。计算机组成原理计算机组成原理29CPU响应中断的条件(9/11)l中断屏蔽
29、中断屏蔽(D D)实现:实现:(a)a)在大多数计算机在大多数计算机CPUCPU内,都设置一个中断触发器,由这个触发器的内,都设置一个中断触发器,由这个触发器的状态来决定状态来决定CPUCPU对中断请求是否响应。对中断请求是否响应。能使中断触发器置能使中断触发器置“1”1”的指令,一般称为开中断指令,表示系统允的指令,一般称为开中断指令,表示系统允许中断;能使中断触发器置许中断;能使中断触发器置“0”0”的指令,一般称为关中断指令,表示系的指令,一般称为关中断指令,表示系统禁止中断。用户在适当时可以用这些指令来对中断的能与否进行选择和统禁止中断。用户在适当时可以用这些指令来对中断的能与否进行选
30、择和控制。控制。例如例如8088/8086 8088/8086 CPUCPU中,其程序状态字中,其程序状态字PSWPSW寄存器中就有寄存器中就有IFIF位(第位(第1010位),开中断指令位),开中断指令STISTI可以使可以使IFIF位置为位置为“1”1”,达到允许中断的目的,关中,达到允许中断的目的,关中断指令断指令CLICLI可以使可以使IFIF位清位清“0”0”,达到禁止中断的目的。,达到禁止中断的目的。再如:再如:PDP11PDP11,PSWPSW的的7 7,6 6,5 5位改变会达到对某些中断的允许或禁止。位改变会达到对某些中断的允许或禁止。计算机组成原理计算机组成原理30CPU响
31、应中断的条件(10/11)l 中断屏蔽中断屏蔽(D D)实现:实现:(b)b)在外部中断源的接口,一般都设立中断屏蔽触发器,通常这个触发在外部中断源的接口,一般都设立中断屏蔽触发器,通常这个触发器的状态可由器的状态可由CPUCPU用指令改变。例如当这个触发器为用指令改变。例如当这个触发器为1 1时,表示不允许时,表示不允许该中断源发出中断请求,否则为允许。该中断源发出中断请求,否则为允许。PDP-11PDP-11机中,外设接口电路中的设备状态寄存器第机中,外设接口电路中的设备状态寄存器第6 6位就是用于这个目的。位就是用于这个目的。当第当第6 6位(允许中断),第位(允许中断),第7 7位(完
32、成位)都成立时,才允许发中断请求。位(完成位)都成立时,才允许发中断请求。IBMIBMPCPC,82598259可编程中断控制器,有中断屏蔽可编程中断控制器,有中断屏蔽R R,82598259可接收来自外设的可接收来自外设的8 8个各自独立的中断请求,信号分别为个各自独立的中断请求,信号分别为IRQ0IRQ0IRQ7IRQ7,IRQ0IRQ0优先级最高,中优先级最高,中断源断源0 07 7对应于中断类型号对应于中断类型号0808H H0FH0FH,(,(其中其中IRQ3IRQ3和和IRQ5IRQ5未用)。例如未用)。例如IRQ1IRQ1对应对应0909H H中断,对应设备键盘。中断,对应设备键
33、盘。82598259中断屏蔽寄存器(中断屏蔽寄存器(IMRIMR),),I/OI/O端口地址端口地址2121H H,它的位它的位0 07 7位对应于位对应于IRQ0IRQ0IRQ7IRQ7,可通过设置任一位控制任一中断源的允许或禁止(可通过设置任一位控制任一中断源的允许或禁止(0 0代表允代表允许,许,1 1代表禁止)代表禁止)例如,只允许键盘中断,可设置例如,只允许键盘中断,可设置MOV AL,0FDHMOV AL,0FDHOUT 21H,ALOUT 21H,AL计算机组成原理计算机组成原理31CPU响应中断的条件(11/11)断点中断服务程序中断返回中断响应外设中断请求外设并行工作CPU继
34、续工作CPU继续工作CPU正常程序程序中断的工作过程预置参数中断服务启动外设计算机组成原理计算机组成原理32中断处理(1/5)1、中断识别 (1 1)中断源的识别)中断源的识别 (A A)识别的主体:识别的主体:WHOWHO:CPUCPU识别识别 (B B)与中断优先级的判定密切相关:中断优先与中断优先级的判定密切相关:中断优先级的判定是解决这一问题的前提和基础。级的判定是解决这一问题的前提和基础。(C C)目的:使目的:使CPUCPU转入相应的服务程序。转入相应的服务程序。计算机组成原理计算机组成原理33中断处理(2/5)1、中断识别(2 2)方法:)方法:(A A)软件查询法:采用与程序查
35、询传送方式一样的方法,用软件查询程序段检测中断软件查询法:采用与程序查询传送方式一样的方法,用软件查询程序段检测中断请求的标志,同时还可以实现中断判优(详见请求的标志,同时还可以实现中断判优(详见7.3.57.3.5节软件查询判优法)。节软件查询判优法)。(B B)硬件向量法:硬件向量法:(a)a)中断向量是中断源向中断向量是中断源向CPUCPU提供的唯一识别码;提供的唯一识别码;(b)b)识别码是有方向的;识别码是有方向的;(c)c)识别码实际是主存的一个地址码;识别码实际是主存的一个地址码;(d)d)硬件支持:硬件支持:接口电路中:向量地址产生器接口电路中:向量地址产生器 主机之内:保存向
36、量的主机之内:保存向量的R R (e)(e)向量地址的存在情况:向量地址的存在情况:(i)i)服务程序入口服务程序入口 (ii)ii)服务程序入口地址服务程序入口地址计算机组成原理计算机组成原理34中断处理(3/5)2、中断服务(1 1)中断现场:中断现场是指在发生中断时,)中断现场:中断现场是指在发生中断时,CPUCPU及其现行程序的当前主要状态。这其中最及其现行程序的当前主要状态。这其中最为关键的状态是程序计数器为关键的状态是程序计数器PCPC的值,也就是的值,也就是CPUCPU现行程序被中断时的下条指令的存储地址,现行程序被中断时的下条指令的存储地址,即断点地址,简称断点。除断点外,中断
37、现场即断点地址,简称断点。除断点外,中断现场应包含应包含CPUCPU程序运行情况的状态,这些状态有程序运行情况的状态,这些状态有程序状态字程序状态字PSWPSW以及程序执行的当前结果等。以及程序执行的当前结果等。计算机组成原理计算机组成原理35中断处理(4/5)2、中断服务(2 2)中断服务程序:)中断服务程序:3 3个部分个部分 (A A)起始部分:起始部分:起始部分的主要功能是保护起始部分的主要功能是保护CPUCPU原来程序的一些现场,另一个功能是原来程序的一些现场,另一个功能是控制系统在执行中断服务程序过程中是否允许再被中断。控制系统在执行中断服务程序过程中是否允许再被中断。(B B)主
38、体部分:主体部分:主体部分的主要功能应该是完成中断源的请求任务。对一般输入输出主体部分的主要功能应该是完成中断源的请求任务。对一般输入输出外部设备来说,就是进行数据的输入输出操作,并且修改相应的传送参数。外部设备来说,就是进行数据的输入输出操作,并且修改相应的传送参数。这部分是中断服务程序中核心的,也就是实质性的部分。这部分是中断服务程序中核心的,也就是实质性的部分。(C C)结尾部分:结尾部分:结尾部分的主要功能是恢复起始部分所保护的现场内容,然后准备返结尾部分的主要功能是恢复起始部分所保护的现场内容,然后准备返回。通常是用一条返回指令作为整个中断服务程序的最后一条指令。回。通常是用一条返回
39、指令作为整个中断服务程序的最后一条指令。计算机组成原理计算机组成原理36中断处理(5/5)3、中断返回中断服务程序的结束是一条中断返回指令,由它中断服务程序的结束是一条中断返回指令,由它实现从中断处理过程返回被中断的程序断点位置处继实现从中断处理过程返回被中断的程序断点位置处继续执行,从而完成了一次中断过程。续执行,从而完成了一次中断过程。以上所述的以上所述的6 6个阶段是外部设备作为中断源引起中个阶段是外部设备作为中断源引起中断的全过程。显然,断的全过程。显然,整个过程只有中断服务这个阶整个过程只有中断服务这个阶段才是实际有效的部分,其中的关键是执行段才是实际有效的部分,其中的关键是执行I/
40、OI/O指令指令实现数据交换。其余几个阶段可认为是中断服务的前实现数据交换。其余几个阶段可认为是中断服务的前后处理,是一种辅助性的但不可缺少的操作。当中断后处理,是一种辅助性的但不可缺少的操作。当中断频繁发生时,这个辅助性操作是降低频繁发生时,这个辅助性操作是降低CPUCPU利用率和限利用率和限制外设速度的原因所在。制外设速度的原因所在。计算机组成原理计算机组成原理37中断类型之内部中断l由于处理器由于处理器内部执行程序出现异常内部执行程序出现异常引起的程序引起的程序中断,也中断,也常被称为常被称为异常异常(Exception)l利用内部中断,处理器为用户提供了发现、调利用内部中断,处理器为用
41、户提供了发现、调试并解决程序执行时异常情况的有效途径试并解决程序执行时异常情况的有效途径除法错中断:除法指令出错的内部中断除法错中断:除法指令出错的内部中断断点中断:支持断点调试程序的内部中断断点中断:支持断点调试程序的内部中断单步中断:支持单步调试程序的内部中断单步中断:支持单步调试程序的内部中断溢出中断:处理运算溢出错误的内部中断溢出中断:处理运算溢出错误的内部中断无效指令代码异常、无效指令代码异常、段超界异常、通用保护异常段超界异常、通用保护异常计算机组成原理计算机组成原理38中断类型之外部中断l外部中断是由于处理器外部中断是由于处理器外部提出中断请求外部提出中断请求引起引起的程序中断,
42、外部中断请求是处理器外部随机的程序中断,外部中断请求是处理器外部随机产生的,所以是真正的产生的,所以是真正的中断中断(Interrupt)l利用外部中断,微机系统可以实时响应外部设利用外部中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部意外或备的数据传送请求,能够及时处理外部意外或紧急事件紧急事件l非屏蔽中断非屏蔽中断处理器无法禁止、必须响应的中断处理器无法禁止、必须响应的中断l可屏蔽中断可屏蔽中断由中断屏蔽触发器由中断屏蔽触发器(标志标志)控制是否响应的中断控制是否响应的中断计算机组成原理计算机组成原理39外部中断之非屏蔽中断l非屏蔽中断非屏蔽中断NMINMI(NonMas
43、kable(NonMaskable Interrupt)Interrupt)外部通过非屏蔽中断请求信号外部通过非屏蔽中断请求信号NMI向处理器提出向处理器提出中断请求中断请求处理器无法禁止,将在当前指令执行结束予以响处理器无法禁止,将在当前指令执行结束予以响应应l非屏蔽中断主要用于处理系统的意外或故障非屏蔽中断主要用于处理系统的意外或故障电源掉电前的数据保护电源掉电前的数据保护存储器读写错误的处理存储器读写错误的处理lPCPC微机的微机的NMINMI中断请求中断请求存储器产生奇偶校验错存储器产生奇偶校验错数值协处理器产生异常数值协处理器产生异常计算机组成原理计算机组成原理40外部中断之可屏蔽中
44、断l可屏蔽中断可屏蔽中断INTRINTR(Maskable(Maskable Interrupt)Interrupt)外部通过可屏蔽中断请求信号外部通过可屏蔽中断请求信号INTRINTR向处理器提出中断向处理器提出中断请求请求如果允许可屏蔽中断,则在当前指令执行结束予以响应如果允许可屏蔽中断,则在当前指令执行结束予以响应同时输出可屏蔽中断响应信号同时输出可屏蔽中断响应信号INTAINTAl设置中断屏蔽触发器,控制可屏蔽中断设置中断屏蔽触发器,控制可屏蔽中断关闭中断关中断禁止中断:中断被屏蔽、不能响应关闭中断关中断禁止中断:中断被屏蔽、不能响应开放中断开中断允许中断:中断可以获得响应开放中断开中
45、断允许中断:中断可以获得响应l可屏蔽中断主要用于主机与外设交换数据可屏蔽中断主要用于主机与外设交换数据用户按键后请求处理输入的键盘数据用户按键后请求处理输入的键盘数据打印机请求发送打印数据打印机请求发送打印数据时钟中断请求进行计时处理时钟中断请求进行计时处理计算机组成原理计算机组成原理41可屏蔽中断处理过程l中断请求中断请求l中断响应中断响应l 关闭中断关闭中断l 断点保护断点保护l 中断源识别中断源识别l 现场保护现场保护l中断服务中断服务l 恢复现场恢复现场l 开放中断开放中断l中断返回中断返回外界随机产生外界随机产生数据交换的实质性环节数据交换的实质性环节指令结束进行指令结束进行中断处理
46、过程流程图中断处理过程流程图取取指令指令执行指令执行指令中断?中断?响应中断响应中断找出中断源,并保存找出中断源,并保存PC转移到中断转移到中断服务子程序服务子程序保存保存CPU现场现场设备服务设备服务开中断开中断否否是是关中断关中断恢复恢复CPU现场现场中断周期中断周期(硬件实现)(硬件实现)中断服务子程序中断服务子程序(软件实现)(软件实现)8.2.2 程序中断方式基本接口控制控制IMIR公用寄存器公用寄存器0 1BSEIRD数据缓冲寄存器数据缓冲寄存器中断向量逻辑中断向量逻辑设备选择设备选择PCIR动作开始动作开始数据缓冲寄存器数据缓冲寄存器传送数据传送数据12345动作结束动作结束67
47、PCIR8公用寄存器公用寄存器10901SS中断服务程序入口中断服务程序入口中断请求中断请求CPU接口接口外设外设INTA计算机组成原理计算机组成原理448.2.3 单级中断l在执行中断的过程中,如在执行中断的过程中,如果只能为本次中断服务,果只能为本次中断服务,不允许打断服务程序,只不允许打断服务程序,只有在服务程序完成后,才有在服务程序完成后,才能响应新的中断请求能响应新的中断请求l所有中断源都属于同一级所有中断源都属于同一级计算机组成原理计算机组成原理458.2.4 多级中断l如在一次服务程序执行中,允许优先级高的如在一次服务程序执行中,允许优先级高的中断级别低的中断服务程序,在保存断点
48、和中断级别低的中断服务程序,在保存断点和现场后,转去响应优先级别更高的中断程序,现场后,转去响应优先级别更高的中断程序,并执行新的中断服务程序并执行新的中断服务程序主程序主程序1 1级中断级中断服务程序服务程序2 2级中断级中断服务程序服务程序3 3级中断级中断服务程序服务程序计算机组成原理计算机组成原理46一维、二维多级中断l一维多级中断:每级中断里只有一个中断源一维多级中断:每级中断里只有一个中断源l二维多级中断:每级中断里又有多个中断源二维多级中断:每级中断里又有多个中断源中断源识别之向量中断l中断响应时产生向量地址,指出中断服务程序入口中断响应时产生向量地址,指出中断服务程序入口INT
49、O001010001011001000数据总线数据总线编编码码器器INTAINTIIR1IS1IR2IS2IR3IS3123456IR1IR2IR3计算机组成原理计算机组成原理48向量地址l由硬件直接产生一个固定地址(向量地址)由硬件直接产生一个固定地址(向量地址)l向量地址只是一个向量地址只是一个“位移量位移量”:将这个位移量:将这个位移量加上加上CPUCPU中某寄存器里存放的基地址,最后得中某寄存器里存放的基地址,最后得到中断处理程序的入口地址到中断处理程序的入口地址l向量地址对应的地址单元存放的是转移指令,向量地址对应的地址单元存放的是转移指令,通过该指令转入各自的中断服务程序入口通过该
50、指令转入各自的中断服务程序入口l向量地址是一个中断向量号:所有中断服务程向量地址是一个中断向量号:所有中断服务程序的入口地址安排在一个特定主存区域(地址序的入口地址安排在一个特定主存区域(地址表),通过该向量号在地址表中查找到对应的表),通过该向量号在地址表中查找到对应的中断服务程序地址中断服务程序地址计算机组成原理计算机组成原理49中断源识别之中断查询l中断请求保存在中断状态寄存器,处理器依次查询中断请求保存在中断状态寄存器,处理器依次查询l检测某个中断请求有效,转向对应的中断服务程序检测某个中断请求有效,转向对应的中断服务程序计算机组成原理计算机组成原理50中断优先权排队l中断优先权中断优