首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPU如何决定哪个核心应该处理硬件中断?

CPU如何决定哪个核心应该处理硬件中断?
EN

Stack Overflow用户
提问于 2019-09-23 00:10:19
回答 2查看 526关注 0票数 3

从操作系统的角度来看,哪个处理器将在muticore系统中执行硬件中断?及其答案似乎集中在这个问题上,但是在操作系统介入之前,CPU是如何决定向哪个核心交付硬件中断的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-23 04:44:14

在操作系统介入之前,CPU是如何决定将硬件中断交付给哪个核心的?

在操作系统介入之前;只有一个CPU在运行(其余CPU处于“等待启动IPI”状态,直到操作系统启动为止),并配置中断控制器(PIC芯片或IO APIC),以便将IRQ发送到正在运行的唯一CPU。

注意:对于BIOS;IO也是禁用的,直到操作系统启用/配置为止,固件使用旧的PIC芯片(实际上不能用来决定向哪个CPU发送IRQ )。对于UEFI,固件大多不使用IRQ(其设备驱动程序轮询设备)。

在涉及到操作系统之后(而不是以前);操作系统配置IO、APIC/s和MSI (消息信号中断),或者IOMMU来告诉硬件将每个IRQ发送到哪个CPU。

有一种特殊情况(“发送到最低优先级的CPU”功能),其中芯片组决定将IRQ发送到哪个CPU (基于本地APIC或CR8中的软件设置“任务优先级”)。不幸的是,这个特性可能不被芯片组所支持,即使它被支持,也可能不被操作系统所使用。

票数 7
EN

Stack Overflow用户

发布于 2019-09-23 00:22:30

这是由I/O-APIC完成的。APIC代表高级可编程中断控制器。引用OSDev WiKi的话

此外,还有一个I/O APIC (例如英特尔82093AA),它是芯片组的一部分,提供多处理器中断管理,包括所有处理器之间的静态和动态对称中断分配。在具有多个I/O子系统的系统中,每个子系统可以有自己的一组中断。

到规范可以在这里找到的过时链接。它将其部分功能描述为

提供多处理器中断管理 -动态中断分配-将中断路由到最低优先级处理器 -中断输入的软件可编程控制 -从内存总线断开与中断相关的通信量

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58054305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档