问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

8259A的8259A工作原理

发布网友 发布时间:2022-05-18 09:41

我来回答

1个回答

热心网友 时间:2023-10-13 20:52

一个外部中断请求信号通过中断请求线IRQ,传输到IMR(中断屏蔽寄存器),IMR根据所设定的中断屏蔽字(OCW1),决定是将其丢弃还是接受。如果可以接受,则8259A将IRR(中断请求暂存寄存器)中代表此IRQ的位置位,以表示此IRQ有中断请求信号,并同时向CPU的INTR(中断请求)管脚发送一个信号。但CPU这时可能正在执行一条指令,因此CPU不会立即响应。而当这CPU正忙着执行某条指令时,还有可能有其余的IRQ线送来中断请求,这些请求都会接受IMR的挑选。如果没有被屏蔽,那么这些请求也会被放到IRR中,也即IRR中代表它们的IRQ的相应位会被置1。
当CPU执行完一条指令时后,会检查一下INTR管脚是否有信号。如果发现有信号,就会转到中断服务,此时,CPU会立即向8259A芯片的INTA(中断应答)管脚发送一个信号。当芯片收到此信号后,判优部件开始工作,它在IRR中,挑选优先级最高的中断,将中断请求送到ISR(中断服务寄存器),也即将ISR中代表此IRQ的位置一,并将IRR中相应位置零,表明此中断正在接受CPU的处理。同时,将它的编号写入中断向量寄存器IVR的低三位(IVR正是由ICW2所指定的,不知你是否还记得ICW2的最低三位在指定时都是0,而在这里,它们被利用了!)这时,CPU还会送来第二个INTA信号,当收到此信号后,芯片将IVR中的内容,也就是此中断的中断号送上通向CPU的数据线。
这个内容看起来仿佛十分复杂,但如果我们用一个很简单的比喻来解释就好理解了。CPU就相当于一个公司的老总,而8259A芯片就相当于这个老总的秘书。现在有很多人想见老总,但老总正在打电话,于是交由秘书先行接待。每个想见老总的人都需要把自己的名片交给秘书,秘书首先看看名片,有没有老总明确表示不愿见到的人,如果没有就把它放到一个盒子里面。这时老总的电话还没打完,但不停的有人递上名片求见老总,秘书就把符合要求的名片全放在盒子里了。老总打完电话了,探出头来问秘书:有人想见我吗?这时,秘书就从盒子里挑选一个级别最高的,并把他的名片交给老总。
这里需要理解的是中断屏蔽与优先级判定并不是一回事,如果被屏蔽了,那么参加判定的机会也都没了。在默认情况下,IRQ0的优先级最高,IRQ7最低。当然我们可以更改这个设定,这样在下面有详细描述。
当芯片把中断号送上通往CPU的数据线后,就会检测ICW4中的EOI是否被置位。如果EOI被置位表示需要自动清除中断请求信号,则芯片会自动将ISR中的相应位清零。如果EOI没有被置位,则需要中断处理程序向芯片发送EOI消息,芯片收到EOI消息后才会将ISR中的相应位清零。
这里的机关存在于这样一个地方。优先权判定是存在于8259A芯片中的,假如CPU正在处理IRQ1线来的中断,这时ISR中IRQ1所对应的位是置1的。这时来了一个IRQ2的中断请求,8259A会将其同ISR中的位进行比较,发现比它高的IRQ1所对应的位被置位,于是8259A会很遗憾的告诉IRQ2:你先在IRR中等等。而如果这时来的是IRQ0,芯片会马上让其进入ISR,即将ISR中的IRQ0所对应的位置位,并向CPU发送中断请求。这时由于IRQ1还在被CPU处理,所以ISR中IRQ1的位也还是被置位的,但由于IRQ0的优先级高,所以IRQ0的位也会被置位,并向CPU发送新的中断请求。此时ISR中IRQ0与IRQ1的位都是被置位的,这种情况在多重中断时常常发生,非常正常。
如果EOI被设为自动的,那么ISR中的位总是被清零的(在EOI被置位的情况下,8259A只要向CPU发送了中断号就会将ISR中的相应位清零),也就是如果有中断来,芯片就会马上再向CPU发出中断请求,即使CPU正在处理IRQ0的中断,CPU并不知道谁的优先级高,它只会简单的响应8259A送来的中断,因此,这种情况下低优先级的中断就可能会中断高优先级的中断服务程序。所以在PC中,我们总是将EOI位清零,而在中断服务程序结束的时候才发送EOI消息。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
夫妻养狗狗把谁当主人 两人同养狗认谁当主人 什么蔬菜和水果可以美容祛斑呢? vivox60怎么查看参数配置详情 怎样查看vivo手机的屏幕参数? vivo手机怎么看手机参数 vi##手机怎么看配置? 义乌到湖州没有直达快客???必须到南浔?? 湖州到绍兴的汽车有几班? 注销驾考需要本人吗 什么是中断?什么是多重中断?假定硬件原来的响应顺序为0→1→2,试设置中断屏蔽字,将中断优先级改为1→ 微型计算机原理中的问题,可编程中断控制器8259A的功能及工作方式是什么? 计算机组成原理 题-- 中断屏蔽码-- 的0/1设置问题 一张银行卡等于1毫米50张这样的呀合起来大约多少厘米 银行卡几厘米 计算机组成原理给出中断处理的次序,让写屏蔽字写法是不是不唯一? 计算机组成原理:图中第三题,写出各屏蔽字并画出CPU执行图,哪位能帮忙解出来,感激不尽啊! 一张银行磁卡的厚度约1厘米.___.(判断对错) 三年级什么时候开学 迅驰共享电动车出行下载 好抽象啊!请问什么叫中断源,中断请求,中断标志字,中断屏蔽字,中断响应,中断服务程序,中断嵌套? 海盐城西小学什么时候开学三年级2022 8086系统中断响应时,保护现场的功能和具体操作步骤 2020年实验小学三年级什么时候开始? 女生夏天穿很厚的白色毛巾短袜会不会很热?还是不穿袜子的好? 第五实验小学三年级寒假什么时候开学 在室内穿一天拖鞋,夏天开空调和不开时女士分别应该选择什么袜子最好? 女生夏天穿什么袜子比较好? 有谁能用兴业银行信用卡登入兴业银行手机app 点击信用卡设置里面的界 飞度的三大件稳定吗?它的保值率高吗? walden farms食品零热量,那它到底都是些什么 流量到期后自动免费续交什么意思 哪些食物是低热量或者没有什么热量的! 什么食物是零卡路里的,除了水 40G流量用完了自动用话费续流量怎么关闭 ppt的工作展望怎么写 苹果价格大跌滞销成“白菜价”:卖1斤亏1元,你如何看待这个现象?_百度... 食物真的可以做到零卡路里吗 ppt结语怎么写 一个商人估计、假如1公斤苹果1、2元、就得赔2元、假如1公斤卖1、5元、就赚4元、他想怏点出手、以 60元买苹果,如果还是60元买苹果,每斤降价1元可以多买2斤。问原价为多少元? 甘肃苹果8分钱一斤真实吗? 水果店有一批苹果,若每千克卖1.2元,就会亏40元,若每千克卖1.5元,就能赚80元 一斤苹果挣一元,卖了4000块挣多少钱? 信息学c加加语言有点累去买苹果苹果便宜卖了一块钱一斤苹果三块钱4斤苹果了mu 别人3毛1斤卖不出的苹果,为什么他砍掉一半树,10元1斤不愁卖? 一筐苹果,如果按每千克1.6元卖,就会亏9元。如果按每千克2.1元卖,就会赚6元。如果不赚也不亏, 一箱苹果啊,每千克一点,六元妹亏损元,are每千克2.2元卖赚五元,要想不亏不赚, 请问苹果有3斤,1斤卖18元共多少钱 李师傅以1元钱3个苹果的价格买进苹果若干个,以1元钱2个苹果的价格将这些苹果卖出,卖出一半后,因为苹果