0
点赞
收藏
分享

微信扫一扫

【ARMv8基础篇】GIC-400简介



GIC-400

GIC-400是一个高性能、区域优化的中断控制器,具有高级微控制器总线架构(AMBA)高级可扩展接口(AXI)接口。它在片上系统(SoC)配置中检测、管理和分配中断。你可以对GIC-400进行配置,以便为你的预期应用提供所需的最佳功能、性能和门数量。

通过GIC-400的下列软件可配置设置,提供的中断控制选项如下所示:

  • 启用或禁用。
  • 分配到两个组中的一个,组0或组1。
  • 优先处理。
  • 在多处理器实现中向不同的处理器发出信号。
  • 可以是电平敏感的,也可以是边沿触发的。
    GIC-400实现了以下的功能:
  • GIC安全扩展,支持。
  • 将0组中断作为安全中断,将1组中断作为非安全中断。
  • 可以选择使用FIQ中断请求,向连接的处理器发出安全中断信号。GIC-400总是使用IRQ中断请求发出第1组中断的信号。
  • GIC虚拟化扩展,为管理虚拟化中断提供硬件支持。 关于GIC安全扩展和GIC虚拟化扩展的更多信息,请参阅ARM通用中断控制器架构规范。

我们可以在最多有八个处理器的多处理器系统中使用GIC-400。GIC-400 支持并非每个处理器都实现了 ARM 安全扩展或 ARM 虚拟化扩展的系统。在这种情况下,每个处理器只使用它所知道的功能。有关信息,请参阅 ARM 通用中断控制器V3/V4架构规范。

GIC-400实现了以下的中断类型:

  • 16个软件产生的中断(SGI)。
  • 每个处理器有6个外部私有外设中断(PPI)。
  • 每个处理器有1个内部PPI。
  • 可配置的共享外设中断(SPI)的数量。

GIC-400的BD如下图所示,GIC-400从中断输入信号中检测PPI和SPI。每个处理器的每个PPI中断ID都有一个信号。每个SPI中断ID只有一个输入信号,与SoC中处理器的数量无关。SGI没有输入信号,在GIC-400中使用AXI编程接口生成。

【ARMv8基础篇】GIC-400简介_GIC

GIC-400通过使用中断输出信号来通知每个处理器中断或虚拟中断的存在。还有中断输出信号,为系统电源控制器提供唤醒功能,见第2-12页的电源管理。

虚拟中断是由在运行虚拟机的每个处理器上执行的特殊软件创建和管理的。这种管理程序不是GIC-400架构的一部分,但对于使用中断控制器虚拟化中断是必要的。有关管理程序的概述,请参见ARM通用中断控制器架构规范。

GIC-400实现了ARM通用中断控制器架构规范所描述的分区。它由一个分配器和一个CPU接口以及系统中每个处理器的虚拟CPU接口组成。

GIC-400实现了可选的GIC虚拟化扩展,使其能够管理虚拟中断,前提是系统中至少有一个处理器实施了管理程序。尽管管理程序软件将物理中断转化为虚拟中断并处理复杂的情况,但GIC-400经常在硬件中处理来自虚拟机的中断访问的确认和结束。在处理器上运行的管理程序和GIC-400中的虚拟接口控制块构成了虚拟分配器。 


欢迎关注我的个人微信公众号,一起交流学习嵌入式开发知识!

关注「求密勒实验室」



举报

相关推荐

0 条评论