天天看點

【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-400通過使用中斷輸出信号來通知每個處理器中斷或虛拟中斷的存在。還有中斷輸出信号,為系統電源控制器提供喚醒功能,見第2-12頁的電源管理。

虛拟中斷是由在運作虛拟機的每個處理器上執行的特殊軟體建立和管理的。這種管理程式不是GIC-400架構的一部分,但對于使用中斷控制器虛拟化中斷是必要的。有關管理程式的概述,請參見ARM通用中斷控制器架構規範。

GIC-400實作了ARM通用中斷控制器架構規範所描述的分區。它由一個配置設定器和一個CPU接口以及系統中每個處理器的虛拟CPU接口組成。

GIC-400實作了可選的GIC虛拟化擴充,使其能夠管理虛拟中斷,前提是系統中至少有一個處理器實施了管理程式。盡管管理程式軟體将實體中斷轉化為虛拟中斷并處理複雜的情況,但GIC-400經常在硬體中處理來自虛拟機的中斷通路的确認和結束。在處理器上運作的管理程式和GIC-400中的虛拟接口控制塊構成了虛拟配置設定器。 

歡迎關注我的個人微信公衆号,一起交流學習嵌入式開發知識!

繼續閱讀