当前位置: 首页 > news >正文

ARM GIC(三) gicv2架构

ARM的cpu,特别是cortex-A系列的CPU,目前都是多core的cpu,因此对于多core的cpu的中断管理,就不能像单core那样简单去管理,由此arm定义了GICv2架构,来支持多核cpu的中断管理
一、gicv2架构
GICv2,支持最大8个core。其框图如下图所示:
在这里插入图片描述
在gicv2中,gic由两个大模块组成:

distributor:实现中断分发,对于PPI,SGI是各个core独有的中断,不参与目的core的仲裁,SPI,是所有core共享的,根据配置决定中断发往的core。最后选择最高优先级中断发送给cpu interface。寄存器使用 GICD_ 作为前缀。一个gic中,只有一个GICD。

cpu interface:将GICD发送的中断信息,通过IRQ,FIQ管脚,传输给core。寄存器使用 GICC_ 作为前缀。每一个core,有一个cpu interface。

virtual cpu interface:将GICD发送的虚拟中断信息,通过VIRQ,VFIQ管脚,传输给core。每一个core,有一个virtual cpu interface。而在这virtual cpu interface中,又包含以下两个组件:

virtual interface control:寄存器使用 GICH_ 作为前缀

virtual cpu interface:寄存器使用 GICV_ 作为前缀

图中的virtual interface,是用于支持虚拟中断,本系列不讨论虚拟中断。

GICv2支持中断旁路模式,也就是gic外部的FIQ,IRQ直接接到core的FIQ,IRQ上,相当于gic是不使能的。也就是CFGSDISABLE是有效的,将GIC给无效掉。

gicv2,定义了自己的一些寄存器,这些寄存器,都是使用memory-mapped的方式去访问的,也就是在soc中,会留有一片空间,给gic。cpu通过访问这部分空间,来对gic进行操作。

寄存器,分为以下:

GICD_*: distributor的寄存器

GIC

http://www.lryc.cn/news/264860.html

相关文章:

  • 第4章Netty第二节入门案例+channel,future,promise介绍
  • 【论文笔记】3D Gaussian Splatting for Real-Time Radiance Field Rendering
  • 【生物信息学】层次聚类过程
  • 变分自动编码器【03/3】:使用 Docker 和 Bash 脚本进行超参数调整
  • KnowLM知识抽取大模型
  • MySQL数据库 索引
  • ES 错误码
  • 听GPT 讲Rust源代码--src/tools(18)
  • 如何实现设备远程控制?
  • 百度侯震宇详解:大模型将如何重构云计算?
  • [Java]FileOutputStream的换行/续写/一次性写出一个字符串的方法
  • VM进行TCP/IP通信
  • 剑指Offer 队列栈题目集合
  • grafana基本使用
  • 备份至关重要!如何解决iCloud的上次备份无法完成的问题
  • 【项目问题解决】% sql注入问题
  • B/S医院手术麻醉临床管理系统源码 手术申请、手术安排
  • 解锁高效工作!5款优秀工时管理软件推荐
  • ICLR 2024 高分论文 | Step-Back Prompting 使大语言模型通过抽象进行推理
  • 边缘计算有哪些常用场景?TSINGSEE边缘AI视频分析技术行业解决方案
  • 配置BGP的基本示例
  • Flask解决接口跨域问题
  • 数据恢复工具推荐!这3款堪称删除文件恢复大师!
  • 论文笔记 | ICLR 2023 ReAct:通过整合推理和行动来增强语言模型
  • CSS:元素显示模式与背景
  • K8S 为什么关闭 SELinux 和交换内存
  • 7. ASP.NET Core Blazor 官网文档
  • xrandr
  • 【高效开发工具系列】eclipse部署web项目
  • 实在智能成功完成近2亿元C轮融资,全面迎接2024年Agent智能体应用元年