在大多数ARM 双核或多核系统中,异常/向量表似乎只有一个和一个——@典型的 0x0000 或 0xffff0000 地址。一个例外(没有双关语:-)似乎是 cortex-M3,其中有一个寄存器 VTOR(大概是每个内核)有一个变量/动态异常/向量表基地址。
而英特尔 x86 多核架构支持多个 IDT(每个单独内核的多个 IDTR 寄存器)。
因此,如果我们要设计一个新的操作系统(中断处理方案),我发现当 GIC 中断任何一个逻辑时,我们不能为不同的内核、单个异常(比如 FIQ)有不同的 ISR,这有点限制ARM 内核
当然,可以说可以链接和/或共享中断,使用自旋锁之类的同步机制,但同样……对我来说似乎是一种限制。
为什么 ARM 不将此作为所有最新 ARM 多核/版本的标准功能(如 cortex-M3 VTOR)?
有什么想法吗?