【问题标题】:What is this concept of Pending Interrupts待定中断的概念是什么
【发布时间】:2015-03-14 16:27:16
【问题描述】:

我无法理解待处理中断这个术语。我的意思是,我看到异步事件的方式就像“时间、潮汐和中断”什么都不等。

那么这个挂起的中断是什么。我如何为过去的请求提供服务,而过去的请求已经消失。

有人可以解释一下使用它的场景吗?

编辑:定义明智,可以理解(英语意义上),但如果我应该处理之前发生的中断,我是否正在查看硬件设备上的一些数据缓冲?。

【问题讨论】:

标签: x86 interrupt interrupt-handling microprocessors isr


【解决方案1】:

通常 CPU 会通过编程器中断控制器 (PIC) 检查每条指令执行后是否有中断。

当中断服务程序 (ISR) 处于活动状态时(直到遇到 iret 指令),PIC 不会发送中断。

程序还可以通过清除中断标志 (IF) 来表示应保持中断。

挂起的中断是 PIC 已注册但尚未发送到 CPU 的中断。

http://wiki.osdev.org/Interrupts

【讨论】:

  • 亲爱的埃里克。定义明智,但如果我应该处理一段时间前发生的中断,我是否正在查看硬件设备上的一些数据缓冲?。
  • 在编写软件时,您对挂起的中断绝对无能为力,因为您(还)不知道它们存在。您只需完成当前 ISR 的处理,然后挂起的中断将呈现为当前中断。
  • 好的。所以对于软件来说,它就像任何正常的中断一样发生了。我不在乎它是否发生得更早。谢谢。
  • 是的。事实上,任何中断都发生在你看到它之前,即使它最初不是挂起的。产生中断,它进入 PIC,然后 PIC 向 CPU 发出信号。
【解决方案2】:

触发中断的条件总是在过去发生。挂起的中断只是一个已发生、已启用但尚未通过中断优先级处理以执行其处理程序的中断。

中断等待很多事情:指令完成、其他中断、中断被禁用的时间段......

【讨论】:

    【解决方案3】:

    pending : 从源到 GIC 的中断被识别为已断言 在硬件中,或由软件生成,等待服务 由目标处理器
    ---- arm gic 架构

    【讨论】:

    • 这是从某个地方引用的吗?如果有,在哪里?在任何情况下,不要对非代码文本使用代码格式。
    • active and pending : 处理器正在处理中断,而 GIC 有来自同一源的未决中断
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 2012-10-04
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多