请问关闭中断后,设备发出的中断是被丢弃还是pending
比如说吧处理器cli后, 系统时钟是怎么工作的?还是按照固定时间发一次中断或者? 望相助,谢谢! 不明白楼上想说神马,哈哈。个人理解:
不同体系可能不太一样,关中断后,若不开中断,中断应该会丢失,既定时器中断得不到执行而丢失。
与系统时钟关系不大,只是暂时得不到更新罢了,系统定时器下次产生中断的时候系统时钟更新的跨度会大点。
在我的arm系统上是这样的.
x86不太一样,有个文章专门讲过,好像会找回丢失的中断:http://book.51cto.com/art/200810/93782.htm 看中断控制器和外设怎么配合了
对于边缘中断在中断控制器保持中断请求.对于水平中断则由设备保持电平下一直中断控制器发出中断请求到处理器
所以能保持的关键在于设备.--到底保持多久算合理.设备也可能自己取消中断状态 , 并且取消后再发送一个新的中断 看中断控制器和外设怎么配合了
对于边缘中断在中断控制器保持中断请求.对于水平中断则由设备保持电平下一直 ...
smalloc 发表于 2010-12-20 20:45 http://linux.chinaunix.net/bbs/images/common/back.gif
电平触发和边缘触发只是电平维持时间不同,既使关中断了,在中断控制器中也会有中断产生标志,除非你直接打开了相应的中断屏蔽位,否则中断控制器中还是会有中断标志产生,而此处关中断,应该只是关cpu中断,所以中断标志还是会产生的。也就是说每次中断依然会上来,只是cpu“忽略”了。
我认为中断维持时间再长,中断实际上还是丢失了。
以上为个人理解,体系为arm。 还有有些疑惑,为了简单化,大家不妨考虑 PIC(8259),PIT( 8253)
如果中断控制器已经有相应的中断标志,过了一个interval之后 PIT 会不会再产生中断,是不是覆盖上一次的?
或者说吧,有没有中断丢失一说? 关闭中断,再按键盘,再开启中断,会不会导致键盘操作失效? 本帖最后由 smalloc 于 2010-12-21 14:11 编辑
关于这个问题在硬件方面我也仔细思考过
http://linux.chinaunix.net/bbs/thread-1169687-1-1.html
上文本来想对APIC讨论的.后来放弃了。所以就成了8259的讨论.了解8259的可以直接看看.不用理会前面给的几个引用帖子
所以中断保持异步的体现在这么几个阶段.
设备中 中断控制器的IRR中 中断控制器的INTA线上.
如果INTA线被处理器响应, 而IRR中没有的话被称为伪中断.-可能在读IRR时 设备就取消了-这个其实在给设备定义的时候是不允许这样的
如果都有的话 而设备标志没有-可能自己取消了.你可能会看到 irqxx : nobody cared. 但是如果是一个新的中断覆盖原来的请求.他们可能在IRR处合并了 1,pc上不了解
2,有中断丢失一说
页:
[1]