本文作者:Adam Taylor
為了能夠創(chuàng)建更高級的事件驅(qū)動型 AMD Zynq UltraScale+ MPSoC 應(yīng)用,我們需要先深入了解這些器件中更為復(fù)雜的要素。具體而言,我們需要了解中斷在 Zynq MPSoC PS(處理器系統(tǒng))內(nèi)部的運(yùn)作方式??梢灶A(yù)見,由于 Zynq MPSoC 擁有更多的處理器核,因此它的中斷結(jié)構(gòu)要比 Zynq SoC PS 略微復(fù)雜一些。

中斷系統(tǒng)架構(gòu)概覽
AMD Zynq UltraScale+ MPSoC 的中斷架構(gòu)包含四個主要部分:
1. RPU 通用中斷控制器 V1 (GIC) - 用于管理 RPU(實(shí)時處理單元)內(nèi)的中斷
2. APU 通用中斷控制器 V2 (GIC) - 用于管理 APU(應(yīng)用處理單元)內(nèi)的中斷,并支持虛擬化
3. 處理器間中斷 (IPI) - 啟用不同處理單元之間的中斷
4. GIC 代理 - 用于匯總中斷,并充當(dāng) PMU(性能監(jiān)控單元)的 GIC
我們可以在最高層面上將這些中斷分為若干組,分別提供給架構(gòu)的各個部分:
共享外設(shè)中斷 - 160 個中斷源??捎?PS 內(nèi)部的外設(shè)(例如 IOU 外設(shè)、PCIe 等)以及設(shè)計(jì)中的 PL(可編程邏輯)生成
私有外設(shè)中斷 - 這些中斷是特定處理器核的私有中斷
軟件生成的中斷 - 此類中斷由軟件生成
共享外設(shè)中斷也可以由 PL 生成,更多樂趣由此而來。在 Zynq MPSoC 自定義 GUI 的“PS-PL configuration”(PS-PL 配置)選項(xiàng)卡中可以啟用 PS 與 PL 之間的任一方向的中斷。
對于 RPU,為每個處理器核都提供了一個 IRQ 和一個 FIQ。要快速獲取低時延響應(yīng),應(yīng)使用 FIQ。對于典型的中斷源,應(yīng)使用 IRQ。

針對 MPSoC 上每個核啟用 RPU IRQ 中斷和 FIQ 中斷
對于 APU,有兩個選項(xiàng)可用于連接中斷。第一個選項(xiàng)是使用傳統(tǒng) IRQ 中斷和 FIQ 中斷。APU 內(nèi)的每個處理器核都有一個 IRQ 和一個 FIQ。在 Zynq MPSoC IP 塊的頂層啟用此選項(xiàng)后,即可得到兩個 4 位端口:一個用于 IRQ,另一個用于 FIQ。同樣,F(xiàn)IQ 輸入可提供最低時延的中斷響應(yīng)。

針對 MPSoC 上每個核啟用 APU IRQ 中斷和 FIQ 中斷
第二種中斷方法是使用中斷組。APU 的 GICv2 支持兩個中斷組:組 0 和組 1。組 0 內(nèi)的中斷可以分配給 IRQ 或 FIQ,而組 1 內(nèi)的中斷只能分配給 IRQ。這種分配是在 GICv2 內(nèi)部完成的。在實(shí)現(xiàn)安全環(huán)境時,也可以使用這些中斷組,其中組 0 用于安全中斷,組 1 用于非安全中斷。

針對 MPSoC 上每個核啟用 APU IRQ 組
處理器間中斷 (IPI) 可用于啟用 APU、RPU 和 PMU 之間的中斷。通過 IPI,APU、RPU 和 PMU 內(nèi)的處理器可以相互中斷。此外,IPI 還可以中斷 Zynq MPSoC PL 內(nèi)實(shí)現(xiàn)的一個或多個軟核處理器。

SPI 中的 IPI 中斷編號
除了提供中斷外,IPI 還為每個通信方向提供了一個 32 字節(jié)的 IPI 有效載荷緩沖器,可用于受限的通信。IPI 提供了 8 個主接口:APU、RPU0、RPU1、PMU,以及 LPD 和 FPD S AXI 接口??梢酝ㄟ^在 MPSoC 重新自定義 GUI 中選擇“Advanced”(高級)來更改這些主接口的默認(rèn)分配。
中斷結(jié)構(gòu)的最后一個部分是“Proxy GIC”(代理 GIC),它用于匯總連接到 LPU GIC 的共享中斷,并提供一系列中斷狀態(tài)寄存器供 PMU 使用。
現(xiàn)在我們對 Zynq UltraScale+ MPSoC 中斷有了進(jìn)一步的了解,接下來我們將探索如何在后續(xù)設(shè)計(jì)中應(yīng)用這些中斷。一如既往,代碼可從 GitHub 上獲取:
GitHub - ATaylorCEngFIET/MicroZed-Chronicles: Source code from the MicroZed Chronicles blog hosted by Xcell Daily Blog · GitHub
https://github.com/ATaylorCEngFIET/MicroZed-Chronicles
-
amd
+關(guān)注
關(guān)注
25文章
5719瀏覽量
140575 -
中斷
+關(guān)注
關(guān)注
5文章
921瀏覽量
43908 -
Zynq
+關(guān)注
關(guān)注
10文章
636瀏覽量
49615 -
MPSoC
+關(guān)注
關(guān)注
0文章
205瀏覽量
25258
原文標(biāo)題:開發(fā)者分享 | AMD Zynq? UltraScale+? MPSoC 中斷
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器
如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器
Ti推出面向Zynq UltraScale+ MPSoC的電源參考設(shè)計(jì)
Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞
Zynq UltraScale+ MPSoC的發(fā)售消息
米爾科技Zynq UltraScale+ MPSoC技術(shù)參考手冊介紹
如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
米爾電子zynq ultrascale+ mpsoc底板外設(shè)資源清單分享
ZYNQ Ultrascale+ MPSoC系列FPGA芯片設(shè)計(jì)
Zynq UltraScale+ MPSoC中的隔離方法
Zynq UltraScale+ MPSoC的隔離設(shè)計(jì)示例
Zynq UltraScale+ MPSoC驗(yàn)證數(shù)據(jù)手冊
AMD/Xilinx Zynq? UltraScale+ ? MPSoC ZCU102 評估套件
詳解AMD Zynq UltraScale+ MPSoC的中斷架構(gòu)
評論