【问题标题】:Does CPU directly handles Interrupts?CPU是否直接处理中断?
【发布时间】:2017-05-08 16:09:27
【问题描述】:

CPU 是否直接处理中断?或者是处理它的可编程中断控制器。我想知道 PIC 和 CPU 之间的交互。他们如何互动? CPU 处理中断时是否禁用 PIC。

【问题讨论】:

  • PIC 将中断路由到 CPU。
  • @RossRidge AFAIK PIC 是可选的
  • 您看过数据表了吗?您进行了哪些研究工作?
  • @m0skit0 这不是可选的(需要将中断号放在总线上),但我不明白你的评论的意义,因为即使它是可选的,它也不会改变事实上,PIC 用于将中断路由到 CPU。
  • 如果您阅读了数据表但不理解,为什么不告诉我们您不理解的部分?

标签: assembly intel x86-16


【解决方案1】:

首先,有两种类型的中断:硬件和软件。我猜你的问题是关于硬件的。

CPU 是否直接处理中断?还是可编程的 处理它的中断控制器。

8086 只能处理一个不可屏蔽中断(NMI 引脚)。对于可屏蔽中断(pint INTR),需要 PIC(8259 及后续型号和替换)。请注意,可以将多个 PIC 级联在一起以提供更多中断线。

我想了解 PIC 和 CPU 之间的交互。他们怎么 互动?

8086通过INTR输入引脚接收中断通知,数据总线上的中断号,并通过INTA输出引脚确认中断。

在 CPU 处理中断时是否禁用 PIC。

8259 可以通过其他不被服务的 IRQ 线路接收其他中断。 ISR 跟踪正在服务的中断,IRR 跟踪挂起的中断,而 IMR 屏蔽中断。其他 8259 型号引入了更多可编程功能。

更多细节可以在 8086 和 8259s 的技术文档中找到。

【讨论】:

  • 虽然这没有错,但它已经过时了。自 Pentium 以来,INTR 和 NMI 引脚已被 APIC 的 LINT0 和 LINT1 引脚取代。在 SMP 系统中,8359A 仅在启动时短暂使用,取而代之的是 IOAPIC。 PCI 有一个复杂的路由系统,PCIe 主要使用 MSI。该主题非常广泛,因此我了解您仅将范围缩小到 8086(OP 可能已明确使用的标签)。
  • @MargaretBloom 感谢您的澄清,但对我来说,标签将问题限制在特定的 CPU 上。如果不是,也可以假设intel 标签也表示任何类型的 CPU,依此类推。
  • @m0skit0 我在找 8259 PIC。你没看错。非常感谢你
猜你喜欢
  • 1970-01-01
  • 2019-07-21
  • 2021-07-15
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 2016-05-22
  • 2014-08-06
相关资源
最近更新 更多