浅谈可编程中断控制器.docxVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

?

?

浅谈可编程中断控制器

?

?

论文导读:引言:假如我们现在需要从磁盘上读入十个字节需要10秒钟,利用传统的顺序执行时,在这10秒钟之内CPU就无所事事,不得不等待磁盘慢慢读入这十个字节,但如果在这10秒钟之内,CPU转去运行其它的程序,不就可以防止浪费CPU的时间吗?于是我们想到了引入了中断控制器以提高CPU利用率。计算机上挂接着许多外部设备,比如键盘、磁盘驱动器、鼠标、声卡……等等,而这些设备都可能在同一时刻向CPU发出中断信号,那么CPU到底应当响应哪一个设备的中断信号呢?这都通过另外一个芯片来控制,在PC机中,这个芯片常常被称作:可编程中断控制器(PIC)8259A。

关键词:中断,可编程芯片,8259A

?

引言:假如我们现在需要从磁盘上读入十个字节需要10秒钟,利用传统的顺序执行时,在这10秒钟之内CPU就无所事事,不得不等待磁盘慢慢读入这十个字节,但如果在这10秒钟之内,CPU转去运行其它的程序,不就可以防止浪费CPU的时间吗?于是我们想到了引入了中断控制器以提高CPU利用率。

一、中断概述

中断就是外部设备或程序同CPU通信的一种方式。CPU在接收到中断信号时,会中断正在运行的程序,转到对中断的处理上,而这个对中断的处理程序常常称为中断服务程序,当中断服务程序处理完后,CPU再返回到原先被中断的程序上继续执行。

中断可以分为两大类:硬件中断和软件中断。硬件中断是同多外部的硬件产生的,所以也常常不把硬件中断称为外部中断。硬件中断又分为两类:非屏蔽中断和可屏蔽中断。分别通过CPU的NMI引脚和INTR引脚引入。软件中断是CPU根据某条指令或者软件对标志寄存器中某个标志的设置而产生的,完全和硬件电路无关。

二、认识中断号及8259A芯片

计算机上挂接着许多外部设备,比如键盘、磁盘驱动器、鼠标、声卡……等等,而这些设备都可能在同一时刻向CPU发出中断信号,那么CPU到底应当响应哪一个设备的中断信号呢?这都通过另外一个芯片来控制,在PC机中,这个芯片常常被称作:可编程中断控制器(PIC)8259A。

一个8259A芯片有8根中断请求(IRQ)信号线:IRQ0~IRQ7。免费论文。每个外部设备使用一根或多个外部设备共用一根中断信号线,它们通过IRQ发送中断请求,8259A芯片接到中断请求后对中断进行优先级选定,然后对多个中断中具有最高优先级的中断进行处理,将其所对应的中断向量送上通往CPU的数据线,并通知CPU有中断到来。免费论文。

对于CPU来说中断就是中断,只有一种,无论是由外部硬件触发的还是由运行的软件本身触发的,中断处理的过程都是一样的:中断现行程序,转到中断服务程序处执行,回到被中断的程序继续执行。CPU对于其它的模块只提供了一种接口,即是256个中断处理向量,也称为中断号。由这些中断控制器自行去使用这256个中断号中的一个与CPU进行交互。中断号是由中断服务程序一一对应的。免费论文。一个中断号就是一个中断服务程序,8259A将中断号通知CPU后,它的任务就完成了,使用此中断号去调用什么程序由CPU支配。

三、8259A的内部中断处理流程

下面从一个系统程序员(SystemProgrammer)的角度来看8259A的内部结构。

首先,一个外部中断请求信号通过中断请求线IRQ,传输到IMR(中断屏蔽寄存器),IMR根据所设定的中断屏蔽字,决定是将其丢弃还是接受。如果可以接受,则8259A将IRR中代表此IRQ的位置位,以表示此IRQ有中断请求信号,并同时向CPU的INTR(中断请求)引脚发送一个信号,但CPU这时可能正在执行一条指令,因此CPU不会立即响应,而在CPU正忙着执行某条指令时,还有可能有其余的IRQ线送来中断请求,这些请求都会接受IMR的挑选,如果没有被屏蔽,那么这些请求也会被放到IRR中,也即IRR中代表它们的IRQ的相应位会被置1。

当CPU执行完一条指令时后,会检查一下INTR引脚是否有中断请求信号,如果发现有中断请求信号,就会转到中断服务,此时,CPU会立即向8259A芯片的INTA(中断应答)引脚发送一个信号。当芯片收到此信号后,判优部件开始工作,它在IRR中,挑选优选级最高的中断,将中断请求送到ISR,并将IRR中相应位置零,表明此中断正在接受CPU的处理。

内容看起来仿佛十分复杂,但我们可以用一个很简单的比喻来解释。CPU就相当于一个学校的校长,而8259A芯片就相当于这个校长的秘书,现在有很多人想见校长,但校长正在打电话,于是交由秘书先行接待。每个想见校长的人都需要把自己的名片高端控制器,交给秘书,秘书首先看看名片,有没有校长明确表示不愿见到的人,如果没有就把它放到一个盒子里面,这时校长的电话还没打完,但不停的有人递上名片求见校长,秘书就把符合要求的名片全放在盒子里了。这时,

文档评论(0)

134****4355 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档