知识库 人物 历史 地理 自然 文化 艺术 社会 科学 技术 教育 生活 体育 企业 银行 组织 官职 外交 联合国 博物馆 基金会 纪念馆 军事组织 组织机构 职能部门 诺贝尔奖 汉族 民俗 风俗 婚俗 姓氏 习俗 百家姓
  8259A中断控制器           

8259A中断控制器

8259A是一个中断控制器。

在一个8259A芯片有如下几个内部寄存器:

Interrupt Mask Register (IMR)

Interrupt Request Register (IRR)

In Sevice Register (ISR)

IMR被用作过滤被屏蔽的中断;IRR被用作暂时放置未被进一步处理的Interrupt;当一个Interrupt正在被CPU处理时,此中断被放置在ISR中。

除了这几个寄存器之外,8259A还有一个单元叫做Priority Resolver,当多个中断同时发生时,Priority Resolver根据它们的优先级,将高优先级者优先传递给CPU。

当一个中断请求从IR0到IR7中的某根线到达IMR时,IMR首先判断此IR是否被屏蔽,如果被屏蔽,则此中断请求被丢弃;否则,则将其放入IRR中。

在此中断请求不能进行下一步处理之前,它一直被放在IRR中。一旦发现处理中断的时机已到,Priority Resolver将从所有被放置于IRR中的中断中挑选出一个优先级最高的中断,将其传递给CPU去处理。IR号越低的中断优先级别越高,比如IR0的优先级别是最高的。

8259A通过发送一个INTR(Interrupt Request)信号给CPU,通知CPU有一个中断到达。CPU收到这个信号后,会暂停执行下一条指令,然后发送一个INTA(Interrupt Acknowledge)信号给8259A。8259A收到这个信号之后,马上将ISR中对应此中断请求的Bit设置,同时IRR中相应的bit会被reset。比如,如果当前的中断请求是IR3的话,那么ISR中的bit-3就会被设置,IRR中IR3对应的bit就会被reset。这表示此中断请求正在被CPU处理,而不是正在等待CPU处理。

随后,CPU会再次发送一个INTA信号给8259A,要求它告诉CPU此中断请求的中断向量是什么,这是一个从0到255的一个数。8259A根据被设置的起始向量号(起始向量号通过中断控制字ICW2被初始化)加上中断请求号计算出中断向量号,并将其放置在Data Bus上。比如被初始化的起始向量号为8,当前的中断请求为IR3,则计算出的中断向量为8+3=11。

CPU从Data Bus上得到这个中断向量之后,就去IDT中找到相应的中断服务程序ISR,并调用它。如果8259A的End of Interrupt (EOI)通知被设定位人工模式,那么当ISR处理完该处理的事情之后,应该发送一个EOI给8259A。

8259A得到EOI通知之后,ISR寄存器中对应于此中断请求的Bit会被Reset。

如果8259A的End of Interrupt (EOI)通知被设定位自动模式,那么在第2个INTA信号收到后,8259A ISR寄存器中对应于此中断请求的Bit就会被Reset。

在此期间,如果又有新的中断请求到达,并被放置于IRR中,如果这些新的中断请求中有比在ISR寄存中放置的所有中断优先级别还高的话,那么这些高优先级别的中断请求将会被马上按照上述过程进行处理;否则,这些中断将会被放在IRR中,直到ISR中高优先级别的中断被处理结束,也就是说知道ISR寄存器中高优先级别的bit被Reset为止.

上一篇:知识:保险利益  下一篇:知识:加拿大国徽
∷排行知识文章∷ ∷推荐知识文章∷
· 马时阳
· 南宁保险网
· 新坍镇
· 祝英台近
· 青岛飞越职业学校
· 核四院
· 药疹
· 下酒菜
· 岳西中学
· 姬路市
· 藕莼炖燕窝
· 开台锣鼓
· 丁远
· 沙丘宫平台遗址
· 藤子‧F‧不二雄
· 防潮纸
· 长尾为景
· 夏威夷糖霜
· 陈宇
· 马云夫
· 奶油胡萝卜
· 马继文
· 香炸花菜颗
· 杨文安
Copyright © 2006-2008 版权所有 中华知识库
本站资源均来源于网络,如侵犯了您的版权,请来信告知,我们将立即改正!
信箱: QQ:26655353 粤ICP备05006761号

 股票 贸易 钱币 铸币 税收 营销 证券 流行 另类 涂鸦 饰品 模特 茶道 纹身 手绘 暴走 自拍 品牌