什么是旧版中断?

4

我正在处理一个项目,试图弄清楚ARM体系结构的全局中断控制器中如何处理中断。我正在使用pl390中断控制器。我看到有一条线路被称为遗留中断,它可以绕过分配逻辑。给出了可以将2个中断编程为遗留中断。有人能够解释一下什么是遗留中断吗?我尝试在网上搜索但没有找到任何结果。


1
请参见:GIC中断绕过 - artless noise
@artlessnoise 感谢您的指引。不幸的是,我没有足够的积分来建议一个同义词。 - Nuetrino
1个回答

5

传统中断是指在GIC出现之前就存在于ARM体系中的两种中断:nIRQ和fIRQ,其中nIRQ为正常中断请求,fIRQ为快速中断请求。

由于传统中断是为单核处理器设计的,不支持内部多核处理器,因此它们绕过了分配器逻辑的原因应该很明显 - 传统中断已经硬连到某个核心上。

简而言之,它允许CPU向后兼容旧的ARM规范。例如,一个四核ARM CPU将拥有4个nIRQ和4个fIRQ,针对每个核心单独设置。当您拥有一台旧的与ARM兼容的硬件设备(不支持GIC)时,您将其连接到其中一个核心的nIRQ/fIRQ,就像连接到旧的单核CPU上一样,它将始终在该单个核心上执行。

更多信息,请参考这里


谢谢。很清楚。我希望我能在我的设计中实现这个逻辑,以便我可以得到分配器和CPU接口逻辑消耗了多少时钟周期的图片。我是正确的吗? - Nuetrino
听起来可能是可以的。我必须承认,我有点假定分发器与内核本身是循环同步的,因此始终需要相同的时间,但这只是一种假设,可能是错误的...然而,根据一般原则,除非您实际上也面向传统CPU,否则不要使用遗留中断。我相信在将来的某个时候(或所有未来的CPU中),可以删除遗留中断。 - Luaan
是的,那是我的目标。从文档中可以清楚地看到需要多少个时钟周期,但我想要进行验证。因此,我认为实现传统中断将给我这个想法。谢谢你的答案。 - Nuetrino
2
值得注意的是,在大多数实现中,nIRQ和nFIQ仍然通过GIC路由 - 作为私有外设中断,仅路由到单个核心。GIC的运行频率往往比CPU低 - 我不知道是否有任何实现使GIC运行速度快于1/2的核心频率 - 我认为1/3-1/4都很常见。同意遗留中断不应用于除实验之外的任何事情。 - unixsmurf
但是我看到传统中断(我理解的是nIRQ和nFIQ)只是直接发送到复用器(在GIC中),而没有与GIC时钟(glck)同步,所以我可以假设传统中断不受gclk的影响?我的理解正确吗? - Nuetrino
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接