0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

电源管理入门-芯片设计中的电源管理介绍

yzcdx 来源:OS与AUTOSAR研究 2023-12-06 09:16 次阅读

1. 关于PCSA和SCP

9a48dfe8-93c6-11ee-939d-92fbcf53809c.png

SCP直接控制SoC的电源时钟,而AP通过硬件和软件接口协同管理。

芯片设计,要完成整个芯片的电源管理,需要软硬件结合。一般上层软件部分交给操作系统LinuxAndroid等);下层软件SCP固件(Firmware)实现,其由MHU,PPU这些模块构成,当然Core也需要有相关的硬件支持。这也就是所谓的分层管理机制。

在PCSA里面,主要规范的是逻辑实现,物理实现部分并没有在文档中过多的体现。换句话说,PCSA是给芯片架构师前端设计师看的。至于物理实现,遵循S家和C家的流程。

在SCP中完成SoC的功耗管理(当然,SCP不仅仅完成这个工作)。为此,ARM又定义了一大堆的接口,组件和协议来配合,统称为“功耗控制框架(power control framework,以下简称PCF)”。

9a61e7d6-93c6-11ee-939d-92fbcf53809c.png

上层的应用处理器(application processor,简称AP)可以通过软件来给SCP发起服务(service)请求,左边Agent我们可以理解为其它子系统或者IP。作为中间层的SCP是由一个M系列的处理器构成的子系统,负责运行固件软件(firmware),向上可与AP通过设定好的接口/协议通信,接收服务请求,向下控制硬件单元,监控传感器,控制时钟和复位,管理电源等等。有了SCP,就能把一些任务从OSPM中抽离出来,更好的把软件和硬件隔离,增加了灵活性和安全性。

9a836bb8-93c6-11ee-939d-92fbcf53809c.png

上图中的电源管理软件协议栈主要分为两部分,AP的功耗管理设备的功耗管理。其中AP的功耗管理又分为idle管理DVFS两部分。首先看idle管理,当AP处于idle状态时,OSPM可以根据需要关断时钟,下电且retention,或完全断电等多种操作。

此时要保证断电的内核仍然可由操作系统进行调度,并且可以被中断唤醒。还有另外一种技术hot-plug。在这种情况下,AP核心将从操作系统可用于调度的池中移除。通过这种技术,内核被关闭,所有中断和软件线程被迁移到其它内核。这种技术既可以按需求比例使用,也可以在计算能力因功耗或散热受到限制的情况下使用。

9a9d049c-93c6-11ee-939d-92fbcf53809c.png

根据ARM的定义,功耗控制框架(PCF)是标准基础设施组件、接口和相关方法的集合,可用于构建SoC功耗管理所需的基础设施。标准的基础设施组件包括电源、时钟和接口组件。上图中的LPI(low power interface)主要是指ARM的Q-channel和P-channelPPU(power policy unit)是一个硬件组件,支持SCP通过软件接口编程

对于不同的设备,可能需要的电源控制场景不尽相同,比如有的模块可能只做时钟关断(clock gating),有的模块需要实现电源关断(power gating),在关闭设备电源的情况下,又可以区分多种细分需求,比如是不是要做逻辑或者存储的状态保留(retention);逻辑和存储是不是可以分别关断等等。各种条件做一下排列组合,可能会有很多种需求。

举个例子,拿CMN中的系统缓存(HN-F)来说,逻辑部分,snoop filter(SF)部分,SLC RAM部分的电源可以分别控制;SLC RAM部分支持ON/OFF/RET三种电源状态,而且SLC RAM在物理上分为两个bank,可以选择开一个bank,也可以选择两个bank全开;SF部分也支持MEM_RET。

9ab88cf8-93c6-11ee-939d-92fbcf53809c.png

从上图可以看出,SCP是一个完整的小系统,该有的组件一个都不少。首先,SCP里面要有一个处理器,并且要具备足够的处理能力。比如要能够管理AP在idle状态下的功耗;要能支持中断,以及中断优先级排序;要支持调试功能;要能够可信操作,等等。既然有了处理器,那就要有ROM,用于安全启动,还要有RAM,运行固件时需要。

如果要支持DVS,就要有图中的Voltage Regulator Control单元。为了配合DFS,还要有时钟控制单元,用于管理PLL以及输出时钟信号Messaging interface适用于OSPM和SCP之间通信的接口,常用的有mailbox和doorbell两种方式。关于AP与SCP通信,有一套完整的协议来支持

9ade46be-93c6-11ee-939d-92fbcf53809c.png

PPU是为了控制SoC电源域用的,具体的数量和位置可以根据实际需要来定,比如可以做成分级式的或者分布式的。首先,PPU要提供一个配置接口给SCP,用于功耗策略控制和配置,目前用的是APB。其次,PPU与设备之间的控制接口,包括低功耗接口(low power interface,简称LPI),若干组Q-channel和一组P-channel,还有时钟/复位控制。最后,还有一个与功耗状态机之间的接口,P-channel。

PPU支持的power mode如下,其中ON/OFF/Warm Reset是必须支持的,其它备选。各种mode之间的切换,PPU配置,寄存器说明等细节请参考PPU的文档。

9af38e3e-93c6-11ee-939d-92fbcf53809c.png

9b177ff6-93c6-11ee-939d-92fbcf53809c.png

电源控制部分和时钟部分类似,就是多了一个上面提到的PPU。多提一句,PPU可以与被控制部分放在一起,也就是分布式设计

9b281c58-93c6-11ee-939d-92fbcf53809c.png

Cluster的上电过程如下上图,图中的delay取决于具体设计需要:

SCP发出唤醒;

SCP拉低ACINACTM或SINACT;

SCP对PPU操作:

1)PPU打开cluster的电源开关

2)PPU拉高ISOLATEn,无效isolation cell

3)PPU拉高CLKEN,使能clock gating

4)PPU拉低RESETn,使cluster进入复位

5)PPU发出Q-channel静止退出的请求

6)PPU拉高RESETn

7)PPU等待Q-channel握手返回

8)PPU发中断给SCP9)SCP拉低AINACTS

关于SCP的系统启动:

9b3f52f6-93c6-11ee-939d-92fbcf53809c.png9b6c2c04-93c6-11ee-939d-92fbcf53809c.png

2. 关于PSCI和SCMI

9b903608-93c6-11ee-939d-92fbcf53809c.png

PSCI(Power State Coordination Interface),翻译一下就是“电源状态协作接口”。从名字就能直观看出来,PSCI是一套电源管理的标准接口,可用于操作系统在ARM设备上以不同权限级别监控管理电源。

PSCI提供一套API来协调电源管理,如下:

PSCI_VERSION:可以调用此API得到当前PSCI的版本信息

CPU_SUSPEND:OSPM调用此API使处理器核进入低功耗模式;

CPU_OFF:此API用于hotplug,从系统中动态移除某个处理器核。被CPU_OFF移除的处理器核只能通过CPU_ON再次加载。与CPU_SUSPEND不同的是,这个接口函数不需要返回值;

CPU_ON:此API用于动态加载处理器核;

AFFINITY_INFO:此API允许调度方查询亲和实体(affinity instance)的状态;

MIGRATE:用于将受信任的操作系统(trusted OS)迁移到另一个处理器核,从而原处理器核可以调用CPU_OFF关闭电源;

MIGRATE_INFO_TYPE:允许调用方识别受信任操作系统中存在的多核支持级别,通过返回值可以判定受信任操作系统是否必须运行在单一处理器上,是否支持迁移;

MIGRATE_INFO_UP_CPU:指示受信任的操作系统当前的位置;

SYSTEM_OFF:系统关闭;

SYSTEM_RESET:系统冷复位;

SYSTEM_RESET2:此API是对SYSTEM_RESET的扩展;

MEM_PROTECT:此API确保内存在交给操作系统加载程序之前被重写,从而提供防止冷重启攻击的保护;

MEM_PROTECT_CHECK_RANGE:此API用于检查某段内存范围是否受MEM_PROTECT保护;

PSCI_FEATURES:此API允许调用方检测已实现的PSCI函数及其属性;

CPU_FREEZE:此API将处理器核设置于低功耗状态(依赖具体设计实现)。与CPU_SUSPEND和CPU_DEFAULT_SUSPEND不同,中断不能唤醒该处理器;与CPU_OFF也不同,不需要迁移;

CPU_DEFAULT_SUSPEND:此API将处理器核设置于低功耗状态(依赖具体设计实现),与CPU_FREEZE的调用参数不同;

NODE_HW_STATE:此API允许直接从电源控制器或电源控制逻辑确定节点的电源状态。与AFFINITY_INFO不同,此API返回电源状态的物理视图;

SYSTEM_SUSPEND:此API相当于CPU_SUSPEND到最深的低功耗状态,但实际系统中有可能实现比CPU_SUSPEND更深的低功耗状态,比如支持RAM挂起;

PSCI_SET_ SUSPEND_MODE:此API允许设置CPU_SUSPEND用于协调电源状态的模式;

PSCI_STAT_RESIDENCY:此API返回自冷启动后平台处于某个电源状态的时间;

PSCI_STAT_COUNT:此API返回自冷启动后平台使用某个电源状态的次数;

9ba3cc0e-93c6-11ee-939d-92fbcf53809c.png

SCP和AP之间有一个通信接口。这个通信接口在硬件上可以通过共享存储和MHU(Message Handling Unit)实现;在软件上,通过定义一组通信协议来实现。关于MHU需要查硬件寄存器手册。

9bc80204-93c6-11ee-939d-92fbcf53809c.png

SCMI(System Control and Management Interface)。SCMI是用于系统管理的一组独立于操作系统的软件接口,包括以下几个方面:

电源域管理

性能管理

时钟管理

传感器管理

复位管理

电压域管理

9bdc40de-93c6-11ee-939d-92fbcf53809c.png

关于传输,可以用共享存储方式来保存AP与SCP之间的消息。通信的流程可以采用中断doorbell的方式,也可以采用轮询的方式去主动查询消息通道的状态。采用中断方式的通信流程如下图:

9bf93432-93c6-11ee-939d-92fbcf53809c.pngimage.png

3. 关于芯片SoC设计中的一些要点

SCP子系统一般是在Always-on区域,也就是休眠的时候不下电,除非整机关机才下电。

SCP有独立的M核硬件,所以需要设计中断RAM内存映射区域的使用

SCP会通过I2C连接PMIC硬件对系统中其他硬件模块上电,一般按照电源域为单位,按一定顺序上电

SCP通过Mailbox跟AP或者其他异构核子系统通信,软件上使用SCMI+SMT协议,硬件上使用MHU或者PL320,主要就是为了触发中断+共享内存

设计SCP的硬件接口,例如I2C四根线,占四个接口

低功耗主要就是休眠和省电模式的设计,需要分析出来耗电多的子系统进行关闭,一般通过PMIC电源开关,clock的开关,硬件模块自己支持的低功耗模式设置等

对于A核的休眠需要注意DDR中的数据,可以有DDR PHY硬件控制进入retention mode,一些开机DDR训练参数输出保存到Always-on的RAM中去。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19265

    浏览量

    229684
  • 电源管理
    +关注

    关注

    115

    文章

    6180

    浏览量

    144455
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114651
  • 芯片设计
    +关注

    关注

    15

    文章

    1017

    浏览量

    54880
  • PCF
    PCF
    +关注

    关注

    0

    文章

    32

    浏览量

    20893

原文标题:电源管理入门-21 芯片设计中的电源管理

文章出处:【微信号:OS与AUTOSAR研究,微信公众号:OS与AUTOSAR研究】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电源管理入门-Regulator驱动是什么?Regulator的作用是什么?

    Regulator是Linux系统电源管理的基础设施之一,用于稳压电源管理,是各种驱动子系统
    的头像 发表于 11-16 16:51 1w次阅读
    <b class='flag-5'>电源</b><b class='flag-5'>管理入门</b>-Regulator驱动是什么?Regulator的作用是什么?

    电源管理入门:驱动Runtime PM管理

    Runtime PM管理也就是设备驱动里面的电源管理,即设备驱动结构体里面的struct dev_pm_ops,只控制设备自己的电源。这样可以在设备不需要工作的时候可以进入到低功耗状态
    的头像 发表于 11-29 10:13 3029次阅读
    <b class='flag-5'>电源</b><b class='flag-5'>管理入门</b>:驱动Runtime PM<b class='flag-5'>管理</b>

    电源管理入门:Power Domain管理

    SoC通常有很多IP,按逻辑可以把几个相关功能的IP划为一个电源域。一个电源域内的IP,通常按相同的方式由同一个硬件模块PMIC供电,电压一样并且电源
    的头像 发表于 11-29 10:16 3397次阅读
    <b class='flag-5'>电源</b><b class='flag-5'>管理入门</b>:Power Domain<b class='flag-5'>管理</b>

    电源管理入门:Hypervisor电源管理

    很多时候听说Hypervisor,但是对底层软件技术不了解的人感觉挺神秘。本篇文章简单介绍下Hypervisor的基本概念,另外介绍电源管理在Hypervisor之上多OS间怎么应用
    的头像 发表于 12-06 09:27 1452次阅读
    <b class='flag-5'>电源</b><b class='flag-5'>管理入门</b>:Hypervisor<b class='flag-5'>中</b>的<b class='flag-5'>电源</b><b class='flag-5'>管理</b>

    介绍电源管理技术的主要分类

    在日常生活,人们对电子设备的依赖越来越严重,电子技术的更新换代,也同时意味着人们对电源的技术发展寄予厚望,下面就为大家介绍电源管理技术的主
    发表于 11-12 06:52

    电源管理芯片是什么_电源管理芯片介绍

    电源管理芯片(Power Management Integrated Circuits),是在电子设备系统担负起对电能的变换、分配、检测及其他电能
    发表于 11-02 09:16 1.7w次阅读

    电源管理芯片引脚说明_电源管理芯片的应用

    本文开始介绍电源管理芯片基本类型和电源管理芯片使用
    发表于 04-11 15:11 8.2w次阅读

    如何选择电源管理芯片

    电源管理芯片是电路设计不可缺少的器件,本文就如何选择电源管理
    发表于 01-05 14:37 61次下载
    如何选择<b class='flag-5'>电源</b><b class='flag-5'>管理</b><b class='flag-5'>芯片</b>

    nxp电源管理芯片电源管理芯片的约束与分辩

    nxp电源管理芯片电源管理芯片代理商的制约与区别寄予厚望,下面将
    发表于 06-24 11:57 1165次阅读

    电源管理ic芯片是什么

    电源管理ic芯片是什么 电源管理ic芯片主要管理电子
    发表于 02-16 15:47 2808次阅读

    电源管理IC芯片使用的特性

    电源管理半导体从所包含的器件来说,明确强调电源管理集成电路(电源管理IC,简称
    发表于 02-21 16:27 820次阅读

    电源管理芯片的作用

    来保证设备正常运行。电源管理芯片通过监测电池电量的状态来准确控制电流和电压,从而实现对电池的充电、放电和状态监测。 故障保护:电源管理
    的头像 发表于 09-06 16:05 4269次阅读

    介绍八种常见的电源管理IC芯片

    电源管理IC是电子系统中非常重要的组成部分,它们负责管理电源供应、功率输出、电源滤波和电压调节等功能。随着越来越多的人依赖电子设备,对
    的头像 发表于 12-26 17:21 4888次阅读

    模拟芯片电源管理芯片介绍

    电源管理芯片(PowerManagementIntegratedCircuits),是在电子设备系统担负起对电能的变换、分配、检测及其他电能管理
    的头像 发表于 04-30 08:34 2013次阅读
    模拟<b class='flag-5'>芯片</b>之<b class='flag-5'>电源</b><b class='flag-5'>管理</b><b class='flag-5'>芯片</b><b class='flag-5'>介绍</b>

    电源管理芯片怎么测好坏

    电源管理芯片(Power Management Integrated Circuit,简称PMIC)是电子设备中非常重要的组成部分,它负责对电源进行
    的头像 发表于 08-02 09:23 1877次阅读