从gic3开始,cpu interface放到了PE中,因此cpu interface和PE是同一个power domain。

而属于gic的其他组件,如redistributor,distributor,是另外一个power domain。

因此就有如下一种情况,PE和cpu interface的电源给断掉了,而gic的电源并没有断掉。此时gic给cpu interface发送数据,cpu interface是不会响应的。

在这种情况下,gic提供了power管理功能。

一、GICR_WAKER寄存器

gic中,提供了如下的 GICR_WAKER 寄存器,来支持power功能。


其寄存器描述如下:

二、断电cpu interface和PE

在cpu interface和PE要断电之前,软件要保证,通知redistributor,cpu interface和PE要进入low-power状态。

软件,要往GICR_WAKER寄存器的ProcessorSleep字段,写入1,表示PE要进入到low-power状态。cpu interface之后将自己置为low-power状态之后,就将ChildrenAseep字段,设置为1。

当GICR_WAKER.ChildrenAsleep为1之后,redistributor,不会在将中断,发送给cpu interface,distributor,在中断仲裁时,也不会考虑该PE。

三、唤醒cpu interface和PE

当gic要唤醒cpu interface和PE时,也是操作这个 GICR_WAKER寄存器。

将processorsleep,写入0,然后去唤醒该cpu,最后读取childrenasleep,判断PE是否唤醒成功

原文首发于骏的世界博客
作者:卢骏.
更多Arm技术相关的文章请关注我,每周都有更新。

ARM GIC(七)gicv3架构-power控制相关推荐

  1. 【转】ARM GIC中断系列(八):gicv3架构-波形为例、系列总结

    花了一天,边玩边看,把这个系列看完了.感叹确实卢俊前辈对于gic的掌握程度. 肯定很多的东西看了就忘了,这是正常的,在以后如果有用到的话,再回过头来,结合实践应该会映像深刻. 1.波形 以下以gic6 ...

  2. 【转】ARM GIC中断系列(三):gicv3架构基础

    GICv3架构是GICv2架构的升级版,增加了很多东西.变化在于以下: 使用属性层次(affinity hierarchies),来对core进行标识,使gic支持更多的core 将cpu inter ...

  3. 【转】ARM GIC中断系列(二):gicv2架构基础

    原文来自前辈:http://www.lujun.org.cn/?p=3861 真的很优秀的文章 ARM的cpu,特别是cortex-A系列的CPU,目前都是多core的cpu,因此对于多core的cp ...

  4. ARM GIC(三) gicv2架构

    ARM的cpu,特别是cortex-A系列的CPU,目前都是多core的cpu,因此对于多core的cpu的中断管理,就不能像单core那样简单去管理,由此arm定义了GICv2架构,来支持多核cpu ...

  5. arm GIC介绍之一

     GIC是ARM架构中及其重要的部分,本文只在公开ARM对应资料基础上,以MTK开发板为基础整理.个人理解之后记录,巩固和加深认识,仅此而已,如果有错误,欢迎指出. 1. GIC的概述 看过SOC ...

  6. [ARM]GIC相关知识

    ARM GIC GICv2-GICv3 重要变化 cpu interface GICv2架构,cpu interface是实现在gic内部,而且gic的寄存器,都是memory-mapped方式访问. ...

  7. ARM GIC简介与Linux中断处理分析

    先简单说明一下GIC(具体详尽的介绍请查阅ARM GIC相关文档) GIC即general interrupt controller. 它是一个架构,版本历经了GICv1(已弃用),GICv2,GIC ...

  8. ARM GIC(五) ARM TrustZone如何支持安全中断 分析笔记。

    目录 CPU是如何支持安全中断的? GIC是如何支持安全中断的? 外设如何支持安全中断 TF-A2.6.0 源码分析 前几篇博文主要梳理了GIC V3架构基础,中断全生命周期,以及中断IRQ.FIQ基 ...

  9. Linux 中断管理之ARM GIC V3 初始化

    1.ARM GIC V3中断控制器介绍 GIC(Generic Interrupt Controller)是一个通用的中断控制器,用来接收硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理.G ...

  10. ARM知识扫盲-RISC架构-ARM寄存器-ARM指令集

    文章目录 简介: ARM寄存器 特殊寄存器 ARM指令集 简介: ARM本身使用的是RISC精简指令集架构,除此之外还有开源的RISC指令集架构RISC-V,复杂指令集CISC(Complex Ins ...

最新文章

  1. 上次谁说要简历模板来着?来!
  2. POJ-1655 Balancing Act 树的重心
  3. python 多进程multiprocessing 如何获取子进程的返回值?进程池pool,apply_async(),get(),
  4. 基本概念学习(8000)---兼容机
  5. Java web后端2 Servlet Maven HttpServlet ServletConfig ServletContext HTTP协议
  6. android 获取通讯录全选反选_Xamarin.Forms读取并展示Android和iOS通讯录 TerminalMACS客户端...
  7. 通用Key-Value存储系统的存储管理策略解析
  8. [计算机网络] - HTTP、HTTPS
  9. Markdown写作入门
  10. nginx+tomcat+redis负载均衡及session共享
  11. java 线程重入,java synchronized加载加锁-线程可重入详解及实例代码
  12. 【渝粤教育】国家开放大学2018年秋季 1374T班级管理 参考试题
  13. 量子计算云平台“中国版”启动 量子信息革命正在加速到来
  14. 分享几款国内外免费好用的远程连接服务器软件
  15. java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(三):解析游戏开始前的信息...
  16. XML 教程(一文彻底搞懂XML)
  17. 如何取消默认浏览器中hao123主页
  18. 以太坊质押时代到来,开发者机遇何在?
  19. FPGA学习笔记2.1——用Verilog实现74LS148的功能定义并测试
  20. 智能工厂 | 工业4.0

热门文章

  1. word2010分页设置页眉
  2. 在html上运行asp,ASP在网页设计的作用
  3. python自动批量发邮件脚本_python自动发送邮件脚本
  4. 关于逻辑关系 “隐含(implies、p-q) 的理解
  5. 数据持久化(Json,二进制,PlayerPrefs)
  6. 【多媒体】媒体的概念和分类
  7. python二进制转十进制函数_python基础教程之python基础教程之python进制转换(二进制、十进制...
  8. java中 implement_java中implement
  9. 每天学一个 Linux 命令(66):ss
  10. Anaconda2020安装与使用