一、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文章
10905瀏覽量
213032 -
中斷
+關注
關注
5文章
900瀏覽量
41758 -
gic
+關注
關注
0文章
14瀏覽量
6292
發布評論請先 登錄
相關推薦
ARM GIC(一)之ARM soc中斷的處理介紹
ARM GIC(三)之GICv2架構的組成及其功能簡析
ARM GIC(四) 之GICv3架構基礎知識介紹
ARM GIC(八)GICv3架構的變化
ARM GIC(十一) gicv3架構中的2種安全狀態
ARM GIC(十二) GICv3支持中斷bypass功能
有關ARM GICv3中斷控制器的相關知識介紹
ARM GIC對soc中外設中斷源的管理介紹
介紹arm GICv3和timer虛擬化的支持
Arm通用中斷控制器GICv3和GICv4對虛擬化的支持
GICv3和GICv4軟件概述
將GICv2中斷控制器與ARM Cortex-A5x和Cortex-A72處理器集成
gic和ARM Core的連接

評論