gic的逻辑划分

gic是generic interrupt controler的简称,gic逻辑上可以分为两部分,distributor和CPU interface,分别有很多个寄存器组成;

distributor的作用是集中管理所有中断源,配置中断的优先级,向各个CPU interface配送最高优先级的中断,中断屏蔽、中断抢占、配置中断是边缘出发还是水平触发。

CPU interface的作用更像是一个门卫,他来决定是否把一个到来的中断送往处理器,通常他会设定一个级别的参考,比如来的中断优先级超过了这个级别,那这个中断就有资格被送往处理器进行处理,低于这个优先级的话,就忽略;除此之外,当响应一个中断后,他也会去清除这个中断,表示已响应过这个中断了。

这两部分有很多很多寄存器组成,后续我们慢慢一个一个拆解。

时间: 2024-10-02 14:40:39

gic的逻辑划分的相关文章

SylixOS中GIC通用中断控制器(二)——GIC实现

1.概述 本篇文档主要介绍IMX6UL平台上基于SylixOS集成开发环境中GIC通用中断控制器的实现流程和方法. 2.GIC控制器基地址获取 GIC控制器基地址通过调用armPrivatePeriphBaseGet函数获得.如图 2.1所示,Ctrl+h局搜索armPrivatePeriphBaseGet函数,搜索结果如图 2.2所示. 图 2.1全局搜索armPrivatePeriphBaseGet函数 图 2.2 armPrivatePeriphBaseGet函数搜索结果 参考DDI046

SylixOS中GIC通用中断控制器(一)——GIC简介

1. GIC简介 操作系统中,中断是很重要的组成部分.有了中断系统才可以不用一直轮询(polling)是否有事件发生,系统效率才得以提高.一般在系统中,中断控制分为三个部分:模块.中断控制器和处理器.其中模块通常由寄存器控制是否使能中断和中断触发条件等:中断控制器可以管理中断的优先级等,而处理器则由寄存器设置用来响应中断. 1.1 GIC结构 作为 ARM 系统中通用中断控制器的是 GIC(Generic Interrupt Controller),目前有四个版本,V1-V4(V2最多支持8个A

linux kernel 中断子系统之(一)-- ARM GIC 硬件

一个系统中,中断是很重要的组成部分之一,有了中断,系统才可以不用一直轮询(polling)是否有事件发生,系统效率才得以提高,而且对中断的控制又通常分散在各个地方,不同的部分由不同功能的程序控制,做到了各司其职,配合无误,系统才能正常工作.一般系统中,中断控制分为三个地方:模块.中断控制器.处理器,模块通常有寄存器可以控制是否使能中断功能,中断触发条件等:中断控制器可以管理中断的优先级等,而处理所有中断的处理器则有寄存器设置是否响应中断. 1. 全景 作为 ARM 系统中通用中断控制器的是 GI

Samsung_tiny4412(笔记)-->ASM with C,MMU,Exception,GIC

/**************************************************************************** * Samsung_tiny4412(笔记)-->ASM with C,MMU,Exception,GIC * * 声明: * 1. 以下所有的shell命令都是在root权限下运行的; * 2. 文中在需要往文件中写入内容的时候使用了如下2方式: * 1.如果文件不存在,创建文件;如果存在,以覆盖的方式往文件中添加内容: * cat >

gic的其他一些术语

前面几节翻译中,我们简单介绍过中断的状态的一些术语,比如active之类的,本文补充一些其他术语,可以更好的帮助我们学习gic: PPI: private peripheral interrupt:某个处理器私有的中断,该中断只能发往此处理器 SPI: share peripheral interrupt:     distributor可以配置发往任何处理器 Edge-triggered :边缘触发中断 Level-sensitive :水平触发中断 SGI: Software-generat

在GIC虚拟数据中心里实现浮动IP绑定

GIC目前的产品结构里还不支持浮动IP,这对于想尝试docker等新东西的小伙伴是不方便的.这篇文章尝试在GIC虚拟数据中心里用一台虚机做NAT,为虚拟数据中心中的其他机器提供浮动IP支持. 第一步,我在GIC里创建了一个“Docker试验台”虚拟数据中心,购买了一个8个IP的公网IP段,并且购买了三台虚机: NetworkController001 - 用作NAT服务的网络控制节点. ComputeNode001,002 - 用作计算节点. 第二步,创建一个C段的私网,10.10.1.0/24

在GIC云主机上通过openvswith连接Docker

实现的效果图: 1. 创建GIC云主机(centos7): 公网IP 114.112.62.75, 私网IP 192.168.1.4,私网网卡 ens224 2. 安装openvswitch,我是参考了openvswitch 2.5.x的文档,制作rpm包后,yum localinstall  rpm包. 3. 安装docker, yum install docker service docker start 4. 创建网桥 ovs-vsctl add-br helloworld 5. 把私网网

linux kernel的中断子系统之(七):GIC代码分析

一.前言 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结构).目前在ARM官方网站只能下载到Version 2的GIC architecture specification,因此,本文主要描述符合V2规范的GIC硬件及其驱动. 具体GIC硬件的实现形态有两

linux gic驱动

GIC----ARM Generic Interrupt Controller 一.GIC简介: GIC是的ARM研发的一个通用的中断控制器,它在硬件上的实现形态分为两种: 一种是ARM体系中的半导体公司在研发自己的SOC的时候,向ARM公司购买GIC的IP,这些GIC的型号有:GIC-400,GIC-500等等.另一种形态是ARM vensor直接购买ARM公司已经集成了GIC的多核方案,比如Cortex A9或者A15的IP,Cortex A9或者A15中会包括了GIC的实现,这些实现是符合