一、gicv2與gicv3
但是在gicv3之前一直都是使用的giv2,這兩者有什么區別?
最近在做實驗室的版本兼容,很我一直以為這個gicv2和gicv3版本更新的年代不是很久。最后看了一下gicv2的文章發現在2016年都有了,為什么現在還有gicv2,吐槽一下。不過活還是得干,之前做過關于gicv3的東西,但是現在還得整個gicv2,在基于這個gicv3上進行修改,那么必須對比一下這兩個之間的差別。
循序漸進,先整概念,再看源碼。
二、概念
1、gic概念
gic : general interrupt controller
分類
GIC中斷控制器的分類:gicv1(已棄用),gicv2,gicv3,gicv4
? ?gic400,支持gicv2架構版本。
? ?gic500,支持gicv3架構版本。
? ?gic600,支持gicv3架構版本
核心功能
gic的核心功能,就是對soc中外設的中斷源的管理,并且提供給軟件,配置以及控制這些中斷源。
? ?當對應的中斷源有效時,gic根據該中斷源的配置,決定是否將該中斷信號,發送給CPU。如果有多個中斷源有效,那么gic還會進行仲裁,選擇最高優先級中斷,發送給CPU。
? ?當CPU接受到gic發送的中斷,通過讀取gic的寄存器,就可以知道,中斷的來源來自于哪里,從而可以做相應的處理。
? ?當CPU處理完中斷之后,會告訴gic,其實就是訪問gic的寄存器,該中斷處理完畢。gic接受到該信息后,就將該中斷源取消,避免又重新發送該中斷給cpu以及允許中斷搶占
gicv3較gicv2的特點
GICv3架構是GICv2架構的升級版,增加了很多東西。變化在于以下:
? ?使用屬性層次(affinity hierarchies),來對core進行標識,使gic支持更多的core
? ?將cpu interface獨立出來,用戶可以將其設計在core內部
? ?增加redistributor組件,用來連接distributor和cpu interface
? ?增加了LPI,使用ITS來解析
? ?對于cpu interface的寄存器,增加系統寄存器訪問方式
-
cpu
+關注
關注
68文章
10878瀏覽量
212166 -
中斷
+關注
關注
5文章
899瀏覽量
41549 -
gic
+關注
關注
0文章
14瀏覽量
6277
發布評論請先 登錄
相關推薦
評論