




已阅读5页,还剩62页未读, 继续免费阅读
(微电子学与固体电子学专业论文)双核芯片中断控制器的研究和开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 伴随着微型计算机不断更新换代,其硬件和软件系统都在经历着翻天覆地的 变化,尤其是遵循摩尔定律的硬件集成电路的发展,其中c p u 扮演着极其重要的 角色。不管怎么发展,总之是以“集成度越来越高、功能越来越强、体积越来越 小、主频越来越高、功耗越来越低”为趋势。中断模块作为c p u 接口中必不可少 的组成部分,其发展极为迅速。尤其是随着处理器向多核迈进,核与核之间的握 手通信越来越复杂,中断控制器担当的任务也越来越重要。目前,在国内,多核 系统中断处理的研究领域还几乎是片空白。基于这样的现状,本文提出并设计了 一种供双核系统使用的中断控制器,它是基于p o w e r p c 体系的6 4 位r i s c 双核 通信微处理器芯片,可以实现核2 ( 通信处理器模块) 的中断源到核1 ( 响应中断的核) 的请求,接口模块的中断源到核1 的请求,2 4 个外部信号源到核1 的请求,基本 解决了双核系统复杂中断的处理,完全达到了预期的目标,保证了多核之间的可 靠通信。此外,在产生中断模块时钟源的过程中,提出了一种用组合逻辑电路实 现高阶时钟分频的方法,并且这种方法可以达到预期的功能。 关键字:双核中断控制器组合逻辑分频器 a b s t r a c t a b s t r a c t w i t ht h ed e v e l o p m e n to fm i c r o - c o m p u t e r , i t sh a r d w a r ea n ds o t t v c a r es y s t e m sa r e u n d e r g o i n gr a d i c a lc h a n g e ,i np a r t i c u l a rt h ei n t e g r a t e dc i r c u i tf o l l o w i n gm o o r e sl a w m i c r o p r o c e s s o rp l a y sav e r yi m p o r t a n tr o l ei n i t i na n yc a s e ,t h et r e n di sm o r e i n t e g r a t e d ,m o r ep o w e r f u l ,s m a l l e rs i z e ,h i g h e rs p e e da n dl o wp o w e r t h ei n t e r r u p t m o d u l e ,a sa l le s s e n t i a lc o m p o n e n to ft h ei n t e r f a c ei nm i c r o p r o c e s s o r , h a sm a d eag r e a t i m p r o v e m e n t e s p e c i a l l yt h ed e v e l o p m e n to ft h em u l t i c o r ep r o c e s s o r sl e a d st ot h e i n c r e a s i n g l yc o m p l e xc o m m u n i c a t i o n ,a n dt h ei n t e r r u p tc o n t r o l l e rp l a y sa ni m p o r t a n t r o l ei nc o m m u n i c a t i o no fm i c r o p r o c e s s o r a tp r e s e n t ,t h er e s e a r c hf i e l do fd o m e s t i co n i n t e r r u p th a n d l i n go fm u l t i c o r es y s t e m si sa l m o s tb l a n k i no r d e rt ob r e a kt h i sd e a d l o c k , id e s i g na l li n t e r r u p tc o n t r o l l e rf o rb i - c o r em i c r o p r o c e s s o ri nm y p a p e r , w h i c hi sb a s e d o n a5 4b i tb i c o r er i s ec o m m u n i c a t i o nm i c r o p r o c e s s o r i tc a nd e a lw i t ht h e i n t e r r u p t i o no fb i - c o r e ,s u c ha si n t e r r u p ts o u r c e sf r o mc o r e2 ( c o m m u n i c a t i o np r o c e s s o r ) t oc o r e1 ( i nr e s p o n s et oi n t e r r u p t i o n ) ,f r o mt h ei n t e r f a c em o d u l et oc o r e1a n d2 4 i n t e r r u p ts o u r c e sf r o me x t e r n a ls i g n a l st oc o r e1 i th a sb a s i c a l l yr e a l i z e dt h ei n t e r r u p t p r o c e s s i n gs y s t e me n s u r i n gt h er e l i a b l ec o m m u n i c a t i o nb e t w e e nt h et w oc o r e so ns i n g l e c h i p i na d d i t i o n ,if i n dan e wm e t h o dt od i v i d ec l o c ks o u r c ew i t hh i g hf r e q u e n c yi nt h e c o u r s eo fg e n e r a t i n gt h ec l o c ko ft h ei n t e r r u p tc o n t r o l l e rm o d u l e u n l i k es e q u e n t i a l l o g i cu s e dc o m m o n l y , id e s i g nan e wt y p eo fc o m b i n a t i o n a ll o g i cc i r c u i ta n di th a s a c h i e v e dt h ed e s i r e df u n c t i o n a l i t y k e y w o r d :b i c o r ei n t e r r u p tc o n t r o l l e rc o m b i n a t i o n a ll o g i cd i v i d e r 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学分和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:卫j i l 谤日期:枷留,- 艿 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 本人签名: 导师签名: 卫稚务 嘲乖 e t 期:知撂。艿 日期:孵矿 第一章绪论 第一章绪论 1 1 研究背景 微控制器( m i e r o e on t r o l l e r ) 自上世纪7 0 年代出现以来,在将近3 0 年的时间里得 到了迅猛的发展和广泛的应用。随着微电子技术的飞速发展,微控制器以其性能 好、体积小、价格优、功能齐全等突出优点被广泛应用于家用电器、计算和外设、 通讯、工业控制、自动化生产、智能化设备以及仪器仪表等领域,成为科研、教 学、工业技术改造最得力的工具。从最初采用普林斯顿结构的简单的微控制器到 现在普遍采用哈佛双总线结构的r i s c 微控制器,微控制器取得了飞速的发展【9 】。 在微控制器应用领域曰益广泛的今天,对微控制器提出了更高要求,希望速度更 快、功耗更低、价格低廉、易学易用以及组成系统时的外围器件更少。由于这些 需求,新的产品越来越多的把外围接口器件集成到片内,功能越来越强,性能越 来越高。t 1 4 而中断控制是微处理器发展的一个重要里程碑,是提高c p u 工作效率、降低 系统功耗的有效方式。中断是c p u 在正常运行程序时,由于内部或外部事件或者 是由程序的预先安排引起c p u 暂停正在运行的程序,而转到为内部或外部事件或 为预先安排事件服务的程序中去,服务完毕,再返回去继续执行被暂停的程序。 也就是说,c p u 在执行当前程序的过程中,插入另外一段程序运行。对于外设何 时产生中断,c p u 是预先不知道的,因此,中断具有随机性。但中断技术发展到 今天,中断已不再限于只能由外设硬件产生,中断可以由程序预先安排,即所谓 的软件中断。 随着计算机的发展,中断系统不仅能解决前述快速主机和慢速外设的矛盾, 还能实现一些如分时操作、实时处理和故障处理的操作功能,大大提高了c p u 的 吞吐量。中断系统不断增加新的功能,可以实现自动管理,例如虚拟存储器的管 理、自动保护、多道程序运行、多机连接等。中断技术的先进性是衡量微型计算 机的重要指标之一。 诚然,从8 0 8 6 8 0 8 8 的中断系统到m c s 5 1 单片机的中断,再到低级可编程 中断控制器8 2 5 9 a ,专家们正在做进一步的努力以使中断系统越来越灵活化,可 处理的中断源也越来越多,最终使微处理器的效率越来越高。 摩托罗拉公司的威廉c 莫耶尔在2 0 0 1 年发明了一种包含一个中断强制寄存 器的灵活中断控制器。一个实现数据处理系统中的中断方法,其特征在于包括以 2 双核芯片中断控制器的研究和开发 下几个:提供一个具有多个输入的第一存储设备,多个输入中的每一个输入均通 过一个相应的物理导体被连接到多个有选择地产生硬件中断并且有选择地存储硬 件中断的硬件产生中断源中的一个中断源上,第一存储设备提供一或多个硬件产 生的中断信号;提供一个具有一或多个输入的第二存储设备,一或多个输入中的 每个输入接收并存储多个软件产生的中断信号中的一个预定信号,预定多个软件 产生的中断信号中的至少某些信号指示一个来自不同的中断源或具有与硬件中断 不同的类型的中断,第二存储设备提供一或多个软件产生的中断信号;把逻辑电 路连接到第一存储设备和第二存储设备以便接收一或多个硬件产生的中断信号和 一或多个软件产生的中断信号,逻辑电路提供一个导致在数据处理系统中产生中 断的中断请求信号。 北京威盛电子股份有限公司的尹伟也在2 0 0 6 年发明了一种在符合高级配置 与电源接口( a c p i ) 电源管理标准的计算机系统的中断控制器、以及用于该中断控 制器的中断信号预处理电路及其中断控制方法,其能够在符合高级配置与电源接 口电源管理标准的计算机系统正常工作时节省功耗。 除此之外,随着处理器的性能越来越高,对主频的要求就在不断地提高,双 核势在必行,所谓双核心处理器,简单地说就是在一块c p u 基板上集成两个处理 器核心,并通过并行总线将各处理器核心连接起来。双核心并不是一个新概念, 是c m p ( c h i pm u l t i - p r o s e s s o r s 单芯片多处理器) 中最基本、最简单、最容易实现的一 种类型。其实在r i s c 处理器领域,双核心甚至多核心都早已经实现。c m p 最早 是由美国斯坦福大学提出的,其思想是在一块芯片内实现s m p ( s y m m e t r i c a l m u l t i p r o c e s s i n g ,对称多处理) 架构,且并行执行不同的进程。早在上个世纪末, 惠普和i b m 就已经提出双核处理器的可行性设计。i b m 在2 0 0 1 年就推出了基于 双核心的p o w e r 4 处理器,随后是s u n 和惠普公司,都先后推出了基于双核架构 的u l t r a s p a r c 以及p a r i s c 芯片,但此时双核心处理器的架构都还在高端的r i s c 领域,直到前不久i n t e l 和a m d 相继推出自己的双核心处理器,双核心才真正走 入了主流的x 8 6 领域。 与此同时,其中断系统一般采用高级可编程中断控制器a p i c ,a p i c 分系统 a p i c 和处理器a p i c ,i o 中断会首先由主板上的系统a p i c 进行分发,得到这个 分发的处理器由自己的a p i c 再进行处理,这时就和单处理器类似了。 近年来,芯片产业有个很明显的发展趋势,那就是功能越来越强大,面积和 功耗越来越小,芯片尺寸越来越小,这就迫切需要在能实现相同功能的情况下, 晶体管门的数量越来越少,由此可推知,对于单芯片多核处理器来说,其中断系 统的简易性势在必行。 第一章绪论 3 1 2 论文的主要工作及其意义 随着i n t e l 多核c p u 的面世,越来越多的电脑生产厂商开始向多核进军,在 此过程中,难免会遇到在单核系统很少见的各种各样的困难。不管是在单核还是 多核系统,不管是在核内部还是核之间或者外设与c p u 之间,中断的合理处理显 得尤为重要,加之目前数字电路设计中p 核的流行,迫切需要一种专门处理中断 源的中断控制器。中断控制器的作用是在有多个中断源的系统中,可同时接受多 个外部或内部的中断请求,在进行一定的判别后,选中当前优先级最高的中断请 求送至c p u 核的中断输入端,当c p u 响应中断并进入中断处理程序后,该控制器 仍负责对外部或内部中断的管理。 本论文的相关工作是在实习公司进行的。参与设计s m 8 2 6 0 项目,历经一年 多,这是一款6 4 位r s c 双核通信微处理器芯片,有6 0 3 e 和c p m 两个核,中间 是提供存储控制器,桥接器,时钟产生器,软件看门狗,两条总线,总线监控, 配置和中断的接口模块,本人负责时钟产生器,软件看门狗,两条总线,总线监 控,配置和中断。本论文就是针对中断部分做的详细设计和扩展,重点描述了一 核( c p m ) 对另一核( g 2 ) 的中断请求,外部设备对g 2 的中断请求,系统接口( s i u ) 对g 2 的中断请求,所有这些中断源的分类、优先级设置、中断向量的生成等,优 化处理了双核c p u 内部及与外部之间的中断交互。 论文的第二章,会介绍中断的基本知识,涉及到中断源及优先权,中断请求 和中断屏蔽,中断服务程序,中断隐操作和中断矢量,中断响应过程。在第三章 中,会提到各种常见的中断实现的方法。第四章是在产生中断模块所需时钟的过 程中,本人总结的一种使用组合逻辑做高阶分频电路的方法。第五章是本论文的 工作重点,此章叙述了项目芯片中的中断源及其分类,中断配置,中断源的优先 权,中断源的屏蔽,中断矢量的产生和计算,中断寄存器,各类典型中断的仿真 波形结果。最后对所设计的中断模块做了技术和应用方面的分析,并指出了论文 需要继续努力的方向。 论文工作中,主要采用的工具有:电路仿真采用c a d e n c ev i r t u o s o 的 n c v e r i l o g ,版图采用c h i p l o g i c ,综合采用s y n p l i f yp r o8 0 ;编程主要使用的语言 有:v e r i l o g 、p o w e r - p c 汇编。 第二章中断的基本概念 第二章中断的基本概念 2 1 中断的定义 通常,处理器的运算速度相当快,外部设备的运算速度相对较慢,较快的c p u 与慢速的外部设备在传输数据的速率上存在矛盾。为了提高输入输出数据的吞吐 量,加快运算速度,便产生了中断技术。 中断是c p u 在执行当前程序的过程中,当出现某些异常事件或某种外部请求 时,使得c p u 暂时停止正在执行的程序( 即中断) ,转去执行外围设备服务的程 序。当外围设备服务的程序执行完后,c p u 再返回暂时停止正在执行的程序处( 即 斯点) ,继续执行原来的程序。这种中断就是人们通常所说的外部中断;但是随着 计算机体系结构不断的更新换代和应用技术的日益提高,中断技术发展的速度也 是非常迅速的,中断的概念也随之延伸,中断的应用范围也随之扩大。除了传统 的外围部件引起的硬件中断外,又出现了内部的软件中断概念。 在p e n t i u m 中则更进一步丰富了软件中断的种类,延伸了中断的内涵。它把 许多在执行指令过程中产生的错误也归并到了中断处理的范畴,并将它们和通常 意义上的内部软件中断一起统称其为异常,而将传统的外部中断简称为中断。由 此可见,中断和异常对于p e n t i u m 微处理机来说是有区别的,其主要差别在于:中 断用来处理c p u 以外的异常事件,而异常则是用来处理在执行指令期间,由c p u 本身对检测出来的某些异常事情做出的响应。当再次执行产生异常的程序或数据 时,这种异常总是可以再次出现。而由外围部件引起的硬件中断,一般说来与当 前的执行程序无关,但是,当中断和异常在使微处理机暂时停止执行当前的程序, 去执行更高优先级别的程序时,却是一样的。 外部中断和内部软件中断就构成了一个完整的中断系统。发出中断请求的来 源非常多,不管是由外部事件而引起的外部中断,还是由软件执行过程而引发的 内部软件中断,凡是能够提出中断请求的设备或异常故障,均被称为中断源u 。 2 2 中断源 引起中断的原因或发出中断请求的来源,称为中断源。中断源有以下几种: ( 1 ) p b 设中断源。一般有键盘、打印机、磁盘、磁带等,工作中要求c p u 为它 服务时,会向c p u 发送中断请求。 6 双核芯片中断控制器的研究和开发 ( 2 ) 故障中断源。当系统出现某些故障时( 如存储器出错、运算溢出等) ,相关 部件会向c p u 发出中断请求,以便使c p u 转去执行故障处理程序来解决故障。 ( 3 ) 软件中断源。在程序中向c p u 发出中断指令( 8 0 8 6 为i n t 指令) ,可迫使 c p u 转去执行某个特定的中断服务程序,而中断服务程序执行完后,c p u 又回到 原程序中继续执行i n t 指令后面的指令。 ( 4 ) 为调试而设置的中断源。系统提供的单步中断和断点中断,可以使调试程 序在执行一条指令或执行到某个特定位置时,自动产生中断,从而便于程序员检 查中间结果,寻找错误所在。 2 3 中断类型与类型号 根据中断源是来自c p u 内部还是外部,通常将所有中断源分为两类:外部中 断源和内部中断源,对应的中断称为外部中断或内部中断。 1 外部中断源和外部中断 外部中断源即硬件中断源,来自c p u 外部。8 0 8 6 c p u 提供了两个引脚来接受 外部中断源的中断请求信号:可屏蔽中断请求引脚和不可屏蔽中断请求引脚。 通过可屏蔽中断请求引脚输入的中断请求信号称作可屏蔽中断请求,对这种 中断请求c p u 可响应,也可不响应,具体取决于标志寄存器中标志位的状态。 通过不可屏蔽中断请求引脚输入的中断请求信号称作不可屏蔽中断请求,这种中 断请求c p u 必须响应。【1 0 】 2 内部中断源和内部中断 内部中断源是来自c p u 内部的中断事件,这些事件都是特定事件,一旦发生, c p u 即调用预定的中断服务程序去处理。内部中断主要有以下几种情况: ( 1 ) 除法错误 当执行除法指令时,如果除数为0 或商数超过了最大值,c p u 会自动产生类 型为0 的除法错误中断。 ( 2 ) 软件中断 执行软件中断指令时,会产生软件中断。8 0 8 6 系统中,设置了三条中断指令, 分别是: 1 ) 9 断指令i n t n :用户可以用i n t n 指令来产生一个类型为1 1 的中断,以便 让c p u 执行n 号中断的中断服务程序。 2 ) 断点中断i n t 3 :执行断点指令i n t 3 ,将引起类型为3 的断点中断,这是调 试程序专用的中断。 3 ) 溢出中断i n t 0 :如果标志寄存器中溢出标志位o f 为1 ,在执行了i n t 0 指 令后,产生类型为4 的溢出中断。 第二章中断的基本概念 7 ( 3 ) 单步中断 当标志寄存器的标志位t f 置1 时,8 0 8 6 c p u 处于单步工作方式。c p u 每执 行完一条指令,自动产生类型为1 的单步中断,直到将t f 置o 为止。 单步中断和断点中断一般仅在调试程序中使用,调试程序通过为系统提供这 两种中断的中断服务程序的方式,在发生断点或单步中断后获得c p u 控制权,从 而可以检查被调试程序( 中断前c p u 运行的程序) 之状态。 为了解决多个中断同时申请时响应的先后顺序问题,系统将所有的中断划分 为四级,以0 级为最高,依次降低,各级情况如下: 1 ) o 级除单步中断以外的所有内部中断。 2 ) 1 级不可屏蔽中断。 3 ) 2 级可屏蔽中断。 4 ) 3 级单步中断 不同级别的中断同时申请时,c p u 根据级别高低依次决定响应顺序。由于系 统中存在许多中断源,当中断发生时,c p u 就要进行中断源的判断。只有知道了 中断源,c p u 才能调用相应的中断服务程序来为其服务。为了标记中断源,人们 给系统中的每个中断源指定了一个唯一的编号,称为中断类型号。c p u 对中断源 的识别就是获取当前中断源的中断类型号,在8 0 8 6 系统中的实现如下: ( a ) 可屏蔽中断( 硬件中断) :所有通过可屏蔽中断请求引脚向c p u 发送的中 断请求,都必须由中断控制器8 2 5 9 a 管理。c p u 在准备响应其中断请求时,会给 8 2 5 9 a 发一个中断响应信号,8 2 5 9 a 收到这一信号后,会将发出中断申请外设的 中断类型号通过系统数据总线发送给c p u 。 f b ) 软件中断:在中断指令i n t n 中,参数n 即为中断类型号。 除上面两种情况外,其余中断都是固定类型号,主要是内部中断:如除法错 ( 类型o ) 、单步中断( 类型1 ) 、断点中断i n a 3 ( 类型3 ) 、溢出中断i n t 0 ( 类型4 ) 等。外部中断中不可屏蔽中断的类型号也是固定的( 类型2 ) 。8 0 8 6 8 0 8 8 系统中, 中断类型号范围为0 f f h ,即最多有2 5 6 个中断源。 2 4 中断矢量与矢量表 c p u 在响应中断时,要执行该中断源对应的中断服务程序,那么c p u 如何知 道这段程序在哪儿呢? 答案是c p u 通过查找中断矢量表来得知。中断服务程序的 地址叫做中断矢量,将全部中断矢量集中在一张表中,即中断矢量表。中断矢量 表的位置固定在内存的最低1 k 字节中,即0 0 0 0 0 h 0 0 3 f f h 处。这张表中存放着 所有中断服务程序的入口地址,而且根据中断类型号从小到大依次排列,每一个 中断服务程序的入口地址在表中占4 字节:前两个字节为偏移量,后两个字节为 双核芯片中断控制器的研究和开发 段基址。因系统中共有2 5 6 个中断源,而每个中断服务程序入口地址又占4 字节, 故中断矢量表共占2 5 6x 4 = l k 个字节。 那么,在系统中,实际上由谁来提供中断服务程序,并填写中断矢量表中的 内容呢? 主要是r o mb i o s 和d o s ,它们填写了中断矢量表的大部分项目并提供 了相应的中断服务程序。此外,主板上的各种硬件插卡( 如果它们向系统提供中 断服务) 及在d o s 下运行的以中断方式工作的内存驻留程序( 如鼠标驱动程序、 后台打印程序等) 也会填写部分中断矢量表项目并提供相应的中断服务程序。最 后,还有部分中断矢量表项目无人填写,也无人提供对应的中断服务程序,这部 分中断是保留给用户用的。【1 1 】 2 5 中断优先级 在实际系统中,常常遇到多个中断源同时请求中断的情况,这时c p u 必须确 定首先为哪一个中断涮服务,以及服务的次序。解决的方法是用中断优先排队的 处理方法,即根据中断源要求的轻重缓急,排好中断处理的优先次序,即优先级 ( p r i o r i t y ) ,又称优先权。先响应优先权最高的中断请求。有的微处理器有两条或 更多的中断请求线,而且已经安排好中断的优先级,但有的微处理器只有一条中 断请求线。凡是遇到中断源的数目多于c p u 的中断请求线的情况时,就需要采取 适当的方法来解决中断优先级的问题。 另外,当c p u 正在处理中断时,也要能响应优先权更高的中断请求,而屏蔽 掉同级或较低级的中断请求即所谓多重中断的问题。 通常,解决中断优先级的方法: 1 软件查询确定中断优先级。 把8 个外设的中断请求触发器组合起来,作为一个端口,赋以设备号,如图 2 1 所示。把各个外设的中断请求信号相“或”后,作为i n t 信号,这样任何一个 外设有中断请求都可向c p u 发出i n t 信号。当c p u 响应中断后,把中断寄存器 的状态作为一个外设信息读入c p u ,逐位检测其状态,若检测出某位有中断请求, 随即转入相应的中断服务程序入口。在查询方式中询问的次序即为优先级的次序, 不需要有判断优先级的硬件排队电路。其缺点是在中断源较多的情况下,由询问 到转至相应的中断服务程序的入口时间较长【5 】。 第二章中断的基本概念 9 心 7 0 o h 障 入孔入出 2 1 用软件查询确定优先级5 1 2 硬件查询确定中断优先级。 图2 2 为实现硬件查询的优先级中断链电路( d a i s y - c h a i n i n g ) 。来自c p u 的 “中断响应 信号从a 设备开始串行地往下传送,当a 设备有“中断响应时, 则“中断响应”信号在门a 2 处被封锁,不再下传,使后面的设备得不到c p u 的“中 断响应 信号。同时a 设备的“数据允许”线e n 变为有效,从而允许a 设备使 用数据总线,将其中断标志放上数据总线进入c p u 。当a 设备无“中断请求”时, “中断响应”信号可以通过a 2 门传给下一设备b 。【5 】 数 据 总 线 a 设 备 b 设 备 c 设 备 图2 2 优先级中断链电路嵋1 优先级中断链电路又称链式优先级排队电路,当“中断响应”信号串行通过 所有外设时,这些外设的中断优先级由其在链式排队电路中的先后次序来决定。 3 中断优先级编码电路。 用硬件编码器和比较器组成的中断优先级排队电路如图2 3 所示。设有8 个中断源, 1 0 双核芯片中断控制器的研究和开发 当任何一个有中断请求时,通过“或 门,即可产生一个中断请求信号,但它能 否送至c p u 的中断请求线,还必须受比较器的控制。 图2 3 编码器和比较器的优先级排队电路晡1 8 条中断输入线中的任何一条,经过编码器可以产生三位二进制优先级编码 a 2 a l 舢,优先级最高的中断输入线的编码为1 1 1 ,优先级最低的中断输入线的编码 为0 0 0 ,而且若有多个中断输入线同时输入,则编码器只输出优先级最高的编码。 正在进行中断处理的外设的优先级编码,由c p u 通过软件,经数据总线送至 优先级寄存器,然后取出编码b 2 b l b o 至比较器。比较器对编码a 2 a l 舢与b 2 b i b o 的大小进行比较。若a b ”端输出低电平,封锁与门1 ,禁止向c p u 发 出新的中断请求;只有当a b 时,比较器输出端才为高电平,打开与门1 ,将中 断请求信号送至c p u 的i n t r 输入端,当c p u 响应中断后,中断正在进行的中断 服务程序,转去执行优先级更高的中断服务程序。 若c p u 不在执行中断服务程序时( 即在执行主程序) ,则优先级失效信号为 高电平,此时如有任意一个中断源请求中断,都能通过与门2 ,向c p u 发出1 n t r 信号。 当外设个数小于或等于8 时,它们公用一个产生中断向量的电路,该电路由 三位比较器的编码a 2 a 1 舢供给。据此不同编码,即可转入不同的入口地址。【5 j 2 6 中断的嵌套和中断响应过程 本节主要详细介绍中断响应的过程及其响应时序。 2 6 1 中断的嵌套 当c p u 执行优先级较低的中断服务程序时,允许响应优先级比它高的中断源 请求中断,而挂起正在处理的中断,这就是中断嵌套或称多重中断。此时,c p u 第二章中断的基本概念 将暂时中断正在进行着的级别较低的中断服务程序,优先为级别高的中断服务, 待优先级高的中断服务结束后,再返回到刚才被中断的较低优先级的那一级,继 续为它进行中断服务。 多重中断流程的编排与单级中断的区别有以下几点: ( 1 ) 加入屏蔽本级和较低级中断请求的环节。这是为了防止在进行中断处理时, 不致受到来自本级和较低级中断的干扰,并允许优先级比它高的中断源进行中断。 ( 2 ) 在进行中断服务之前,要开中断。因为如果中断仍然处于禁止状态,则将 阻碍较高级中断的中断请求和响应,所以必须在保护现场、屏蔽本级较低级中断 完成之后,开中断,以便允许进行中断嵌套。 ( 3 ) 中断服务程序结束之后,为了使恢复现场过程不致受到任何中断请求的干 扰,必须安排并执行关中断指令,将中断关闭,才能恢复现场。 ( 4 ) 恢复现场后,应该安排并执行开中断指令,重新开中断,以便允许任何其 他等待着的中断请求有可能被c p u 响应。只有在执行了紧跟在开中断指令后面的 一条指令以后,c p u 才重新开中断。多个中断源、单一中断请求线的中断处理过 程的流程图如图2 4 所示。 图2 4 多个中断源、单一中断请求线的流程图 1 2 双核芯片中断控制器的研究和开发 2 6 2 中断响应过程 对于可屏蔽中断,从外设提出中断请求到c p u 响应中断,整个过程如下: ( 1 ) 外设通过中断控制器向c p u 发送中断请求i n t r 信号。 ( 2 ) c p u 执行完当前指令后,若i f = i ,则c p u 执行两个中断响应周期,向中 断控制器发出两个i n t a 信号。 ( 3 ) 关中断,保护断点和现场。这里的关中断是为了安全,即在保护断点和恢 复断点的过程中,为了确保正确与安全不允许此时响应新的中断,而保护断点和 现场,把断点地址c s 和口以及标志寄存器的内容压入堆栈。 ( 4 ) 中断控制器收到第二个i n t a 信号后,向c p u 送中断类型码n 。 ( 5 ) c p u 由中断类型码n 乘以4 作为中断矢量表的地址,连续从中断矢量表中 读出四个单元的内容分别放进d 寄存器和c s 寄存器,从而获得中断矢量。 ( 6 ) c p u 进入中断服务程序。在刚进入中断服务程序时,首先保护现场,即把 中断服务程序中可能用到的某些寄存器内容压栈保护。由于这些寄存器在主程序 被打断时存在着某些有用的内容,为了返回后不破坏主程序在断点处的状态,需 把它们压栈保护,称为保护现场曙1 。 由于c p u 在响应中断时已经自动关闭中断,如果不用指令打开中断,则c p u 就不能再响应可屏蔽中断。为在执行本次中断服务程序的过程中,c p u 响应优先 级更高的中断请求( 即中断全嵌套) ,则在保护现场之后,用s t i 指令开中断;当 然,若不希望c p u 再响应其他的可屏蔽中断,则将s t i 指令放在中断返回指令之 前即可。 具体中断过程是中断服务程序的主体,也是c p u 响应中断所要完成的具体任 务。在进入中断服务程序时,已把某些寄存器的内容压栈保护;在中断服务程序 行将结束时,必须用出栈指令将它们还原给有关寄存器,这就是所谓的恢复现场。 ( 7 ) 开中断和中断返回。因恢复现场是在关中断状态下进行的,为使返回断点 之后,c p u 能响应可屏蔽中断,故这里还必须开中断。在中断服务程序的最后一 条指令必定为i r e t ,所以c p u 执行该指令时,即将断点地址和标志寄存器的内容 从堆栈中弹出,使c p u 返回到断点处继续执行被打断的主程序。 2 7 1 中断请求和中断屏蔽 本节为了说明传统中断请求和中断屏蔽的概念和处理方法,对后面设计会有 启迪。 第二章中断的基本概念 2 7 1 中断请求 当外设要求c p u 为它服务时,都要发送一个“中断请求信号”给c p u 进行 中断申请;c p u 在执行完每条指令后,检查“中断请求”输入线,看是否有外部 发来的“中断请求。c p u 对外部的中断申请有权决定是否响应。 2 7 2 中断请求电路 p c 机采用8 2 5 9 a 的电平触发方式。该方式要求中断信号由低变高后并保持 高电平,直到处理器响应了中断。但是,处理器响应中断的应答信号i n t a 并没有 出现在系统总线上( 不便直接判定) ,所以应该保持申请信号有足够的宽度【8 】。若 是没有把握,就应该设计一个接口。接口的原理是,先触发一个触发器,保持申 请( 高电平) ,直到响应了中断;进入中断处理子程序表明己响应了中断,可利用 中断处理子程序的第一个执行语句来清除高电平的中断申请( 对该端口做一次访 问,即完成这个清除的控制操作) 【2 0 1 。图2 5 是i s a 总线接口的中断请求电路例 子。该电路的功能如下: ( 1 ) 触发器锁存中断申请,q 端保持高电平。 ( 2 ) x 位是复位允许,x = 0 时,复位端口输入由第一个执行语句( 如端口写) 产生的脉冲,清除q 端的中断高电平保持。 ( 3 ) - - 态门使几块接口板分时共用一个中断源,从端口位y 写入0 ,打开三态 门,输出中断请求;写入1 时,三态门为高组态,触发器q 端与i s a 的瓜q 隔离, 本板的中断请求不起作用,对其他板的中断申请无影响1 。 y 图2 5 中断请求电路 2 7 3 中断屏蔽 当c p u 检查到中断源发出中断请求时,不一定立即为它服务,因为有的程序 1 4 双核芯片中断控制器的研究和开发 是不能被打断的。例如,实时数据采集系统中c p u 正在读一个数据,或正在执行 管理程序中的某些重要程序段时,无论中断源的优先级别有多高都一律不响应, 即中断是被屏蔽的。微机系统中的大部分中断源是可屏蔽的,称为可屏蔽中断; 个别中断请求是不能被屏蔽的,例如掉电故障,无论在什么情况下,都需及时处 理,这种中断称为非屏蔽中断。一般来说,c p u 内部有一个中断允许触发器i f 。 若允许申请,则用s t i 指令置位中断触发器礤;若不允许,则用c l i 指令复位中 断触发器i f 。没有获得允许的中断请求,就称为中断被屏蔽 2 】,另外,每个中断源 自己还有单独的中断屏蔽逻辑。 在多个中断源的情况下,为增加控制的灵活性,常要求在每一个外设的接口 电路中,设置一个中断屏蔽触发器,只有当此触发器为1 时,外设的中断请求才 能被送到c p u ,如图2 6 中所示。可把8 个外设的中断屏蔽触发器组成一个中断 屏蔽寄存器端口,用输出指令来控制它们的状态。【5 j 图2 6 具有中断屏蔽的接口电路幅1 2 8 中断服务程序和中断隐操作 所谓中断服务程序,就是为完成中断源所期望的功能而编写的程序。例如, 有的外设提出中断请求是为了与c p u 交换数据,则在中断服务程序中,c p u 主要 是进行输入或输出操作;这些具体的操作就构成了中断服务程序的主体。从中断 服务程序的格式来看,除了主体程序之外,在程序开头,把中断服务程序中可能 要用到的寄存器内容一一进栈,这叫保护现场;在程序的末尾又要把已入栈的寄 存器内容弹出,这叫恢复现场妲1 。除此之外,还有中断返回,即中断服务程序结束 时,执行“中断返回”指令,自动将保存在堆栈中的标志位及被中断的程序的断 点弹出( 依次弹出6 个字节为皿c s 和f l a g s ) ,并装入程序段地址( c s ) 寄存器和 偏移地址( i p ) 寄存器,使程序回到中断前的地址,继续运行。 c p u 响应中断时,必须执行一系列由硬件安排的处理过程,称为中断隐操 乍。 第二章中断的基本概念 这些中断隐操作【1 8 】包括: ( 1 ) 连续向发出中断请求的外设接口发两个1 n t a 信号,以获取相应的中断类 型号n : ( 2 ) 保护断点,包括将断点地址c s 和d 以及标志寄存器p s w 的内容压入堆 栈; ( 3 ) 将中断类型号n 乘以4 作为中断矢量表的地址,并且连续从中断矢量表中 读出四个单元的内容分别放进p 寄存器和c s 寄存器,其中: ( 4 n ) 一i p l ,( 4 n + 1 ) 一i p h ,( 4 n + 2 ) 一c s l ,( 4 n + 3 ) 一c s h 。 2 9p c 微机中断系统机制 本节介绍了8 0 8 6 c p u 的两种中断系统机制,因为在后面的设计中会有借鉴, 所以提前在这里予以简要说明。 2 9 1 实模式下的中断机制 对于高性能的c p u ( 如8 0 3 8 6 ) ,其寻址范围已远远超过了8 0 8 6 c p u 的1 m b 范 围。所谓实模式可以简单理解为将高性能的c p u 看成是8 0 8 6 c p u 的工作模式,当 然对于p e n t i u mc p u 而言,它比8 0 8 6 c p u 具有更强的功能,p e n t i u mc p u 工作在实 模式下主要是为了能运行以前开发的应用软件。 当微型计算机工作在实模式下时,可处理2 5 6 个不同类型的中断,为了区别 和调用不同的中断,给每一个中断编有一个唯一的编号( 即中断类型号) ,从0 到 2 5 5 ,每个中断的服务程序的入口地址( 又称中断向量) 由段地址和偏移地址组成, 共4 个字节。 在实模式下存放这2 5 6 个中断向量的中断向量表固定位于内存最低端的 1 k b y t e 区域( o 0 0 0 0 h 0 0 3 f f h ) ,每个中断向量占4 个字节的存储单元,其中高地 址对应的2 个字节存储单元存放中断向量的段地址,低地址对应的2 个字节存储 单元存放中断向量的偏移地址。 每个中断的中断向量在中断向量表的存放是有规律的,对于中断类型号1 1 , 其中断向量存在中断向量表中的4 n 到4 n + 3 单元中,其中4 n 和4 n + l 单元 存放的是该中断向量的偏移地址,4 n + 2 和4 n + 3 存放的是该中断向量的段地址。 实模式下的2 5 6 个中断服务程序,一部分是由b i o s 提供的,另一部分是由d o s 提供的。【4 】 1 6 双核芯片中断控制器的研究和开发 2 9 2 保护模式下的中断机制 在保护模式下,中断服务程序的入口地址不再采用实模式下的4 个字节的中 断向量( 段地址和偏移地址) 和1 k b 大小的中断向量表,而是采用中断描述符和 中断描述符表的机制。 1 中断描述符 中断描述符中记录了中断服务程序的入口地址及其相关属性,每个中断描述 符占8 个字节,其格式如下表2 1 所示: 表2 1 偏移地址( a 3 1 一a 1 6 ) l pd p ls i t y p e a段基地址高8 位 段选择子 偏移地址( a 1 5 一a o ) p ( p r e s e n t ) 位:1 位,p = i 时表示该段当前在物理内存中,p = o 表示该段当前不 在物理内存中,而在虚拟内存中。 d p l ( d e s c r i p t o rp r i v i l e g el e v e l ) 特权位:2 位,分为4 级( 0 0 级、0 1 级、1 0 级和1 1 级) ,0 0 级最高,1 1 最低。 s ( s e g m e n td e s c r i p t o r ) 段描述符:1 位,s = i 表示是系统描述符,s = 0 表示是段 描述符。 t y p e 共有3 位:t 3 、t 2 、t 1 ,其含义如下: ( 1 ) t 3 为1 时表示是代码段描述符,为o 时表示是数据段描述符。 ( 2 ) t 2 数据段描述符用,为o 时表示数据段是向上生长段,为1 表示数据段是 向下生长段。 ( 3 ) t l 对于数据段,为1 表示数据可以写入,为0 表示数据不能写入;对于代 码段,为1 表示代码段可以读,为0 表示代码段不可以读。 ( 4 ) a ( a c e e s s e d ) 访问特征位:1 位,a = i 表示段选择子已装入段寄存器或已被 测试指令使用过,a = 0 表示该段还没有被访问过。 2 段选择子 段选择子( s e l e c t o r ) 用来确定段描述符在段描述符表中的起始位置的索引及其相关 属性,段选择子有1 6 位,分为3 个字段: 表2 2 段选择子 ( 1 ) r p l ( r e q u e s t e dp r i v i l e g el e v e l ) 请求特权级:共2 位,表示段选择子的特权, 第二章中断的基本概念 1 7 其中0 0 为最高级,1 1 为最低级。 ( 2 ) t i ( t a b l ei n d i c a t o r ) 描述符表指示器:1 位,指示段选择子选择哪一个描述符 表,t i - 0 表示选择全局性描述符表( g d t ) ,t i = i 表示选择局部性描述符表( u ) t ) 。 ( 3 ) 索引( i n d e x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木工安全教育考试试卷及答案
- 机械工程师资格考试(技术与实务综合知识)技能考题题库与答案
- 2025啤酒区域代理销售合同范本
- 手卫生考试卷试题(含答案)
- 中国公民健康素养-基本知识与技能考核试题及答案
- 2025年机考模拟考试试题及答案
- 2025年工程项目管理与合同实务精粹
- 生物过程设备题库及答案
- 导航专业知识专项试题
- 室内装饰设计师四级练习测试卷
- 第二单元混合运算单元测试卷(含答案) 2025-2026学年人教版三年级数学上册
- 出境人员行前安全培训课件
- 短视频个人劳务合同范本
- 纯电动汽车维护与保养 课件 模块一新能源汽车维护与保养基础认知
- 翻译后的基因表达调控
- 2025年度中国工商银行河南省分行社会招聘120人备考练习试题及答案解析
- (2025年标准)酒店政府采购协议书
- 苏教版三年级上册数学全册教学设计(配2025年秋新版教材)
- 重庆中医药学院2025年第二季度考核招聘工作人员笔试备考题库带答案详解
- 基孔肯雅热防护知识科普课件
- 中医优才考试试题及答案
评论
0/150
提交评论