GIC400是arm公司的中断控制IP,提供axi4接口,主要功能:

1)中断的使能(enable,mask); 中断的优先级(poriority);  中断的触发条件(level-sensitive, edge-triggered);

2)单独分为两个Group,来支持secure, non_secure的中断; Group0通常只能secure axi访问, 接口连接至CPU的FIQ中断; Group1通常只能

none_secure访问, 接口连接至CPU的IRQ中断。

3)对multi-core和virtualized interrupt的支持。GIC400最多支持8核。

GIC400实现的中断类型有:

1) 16个software Generated Interrupts (SGIs);

SGI并没有外部的中断输入信号,每个target cpu都可以通过配置寄存器GICD_SGIR来直接产生中断,最多16个,ID0--ID15。

2) 6 external Private Periphaeral Interrupts (PPIs); 1 internal PPI

每个target cpu都有这么一组PPI; 信号具体分为:Legacy IRQ signal/Legacy FIQ signal/Non-secure physical timer/Secure physical timer

Virtual timer/Hypervisor timer/Virtual mainenance interrupt

所有的PPI interrupt只能是active-low触发。  通过外部引脚采样中断,nLEGACYIRQ[NUM_CPUS-1:0]、nLEAGCYFIQ[NUM_CPUS-1:0]、

nCNTPNSIRQ[NUM_CPUS-1:0]、nCNTPSIRQ[NUM_CPUS-1:0];

nCNTVIRQ[NUM_CPUS-1:0]、nCNTHPIRQ[NUM_CPUS-1:0]。

3) Configurable number of Shared Peripheral Interrupt (SPIs);

由所有的CPU共享,最多支持480个中断源,以32为步进。

每一个中断可以通过寄存器配置Group/Priority/target-cpu;通过配置寄存器GICD_IGROUPR/GICD_IPRIORITYR/GICD_ITARGETSR等。

每个寄存器32位,共16个。通过外部pin IRQS[NUM_SPIS-1:0]来输入。

GIC在Secure state支持32个level的Priority,在non_secure state最多支持16个level的Priority。当两个中断有相同的Priority时,按ID来选择,

越小的ID拥有越高的优先级(SGI,PPI,SPI的顺序)。在multi_core中,如果ID也相同,则按CPUID来排序,ID越小,优先级越高。

GIC400默认如果最高优先级的interrupt在一个disable的group中,那么GIC不会再将任何的中断发送给CPU,所以ARM建议,

将Group0的优先级设置比Group1要高,这样不会因为non_secure的中断挂起而影响secure的中断。

GIC400到CPU的中断signals有:

1) Physical interrupts; nFIQCPU[NUM_CPUS-1:0];    nIRQCPU[NUM_CPUS-1:0];

2) Virtual interrupts; nVFIQCPU[NUM_CPUS-1:0];   nVIRQCPU[NUM_CPUS-1:0];

两个唤醒信号:nFIQOUT[NUM_CPUS-1:0]; nIRQOUT[NUM_CPUS-1:0]。

GIC400包含一个AXI4 slave接口,支持32bit的位宽, 来配置寄存器,寄存器主要分为4大类:

1)Distributor registers; 主要设置寄存器的enable,mask,Priority,core,等 前缀:GICD_

其中一些寄存器GICD_CTRL, GICD_IGROUPR只能在secure下来访问。

2)CPU interface register; 主要设置寄存器的Priority mask, 从中断信号输入到相应CPU的propagated, 返回响应。

3)还有两个virtual interrupt的register:不了解先不介绍。

GIC400简介的更多相关文章

  1. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  2. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  3. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  4. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  5. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  6. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  7. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  8. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  9. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

随机推荐

  1. [Sdoi2016]平凡的骰子

    描述 这是一枚平凡的骰子.它是一个均质凸多面体,表面有n个端点,有f个面,每一面是一个凸多边形,且任意两面不共面.将这枚骰子抛向空中,骰子落地的时候不会发生二次弹跳(这是一种非常理想的情况).你希望知 ...

  2. mysql补充(2)常用sql语句

    补充:MySQL数据库 详解 常用的Mysql数据库操作语句大全 1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后 ...

  3. SVG学习笔录(二)

    一.svg动画SMIL SVG采用的是使用文本来定义图形,这种文档结构非常适合于创建动画.要改变图形的位置.大小和颜色,只需要调整相应的属性就可以了.事实上,SVG有为各种事件处理而专门设计的属性,甚 ...

  4. 手写代码UI,xib和StoryBoard间的的优劣比较

    在UI制作方面,逐渐分化三种主要流派:使用代码手写UI:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个文件构建UI.三种方式各有优劣,也 ...

  5. jsp页面中引入文件路径问题的解决方案(使用request获取项目路径)【原创】

    在项目页面中,总会引入一些js和css,相对路径or绝对路径的选择就显得至关重要了!下面是项目中遇到的问题和解决方案,做一下记录! 环境: myEclipse创建工程,使用jsp+css+js,项目目 ...

  6. 9.5Django操作数据库的增删改查

    2018-9-5 18:10:52 先贴上笔记 day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n ...

  7. ELk之使用kibana展示访问IP地图

    参考文档:http://blog.51cto.com/ls40905250/1915280 https://blog.csdn.net/zsjwish/article/details/79792212 ...

  8. ELK之nginx日志使用json格式输出

    json Nginx默认日志输出格式为文本非json格式,修改配置文件即可输出json格式便于收集以及绘图 修改nginx配置文件添加配置,增加一个json输出格式的日志格式 log_format a ...

  9. SecureFX 中文乱码

      1. 找到SecureFX配置文件夹(选项–全局选项,常规下的配置文件夹),比如:C:\Users\James\AppData\Roaming\VanDyke\Config\Sessions 2. ...

  10. Java applets A Java applet example

    https://en.wikipedia.org/wiki/Ajax_(programming) https://zh.wikipedia.org/wiki/AJAX Ajax (also AJAX; ...