电源控制系统架构(PCSA)之系统控制处理器组件

目录

6.4 系统控制处理器

6.4.1 SCP组件

SCP处理器Core

SCP处理器Core选择

SCP处理器核内存

系统计数器和通用计时器

看门狗

电压调节器控制

时钟控制

系统控制

信息接口

电源策略单元

传感器控制

外设访问

系统访问


6.4 系统控制处理器

系统控制处理器(SCP)是一种基于处理器的能力,为电源管理功能和服务的提供提供了灵活和可扩展的平台。

SCP功能和服务的概述见3.2系统控制处理器。
图6.2显示了一个SCP硬件概述的示例。

0546379dd23b479e8c523fa63638f7eb.png

【注意】:SCP的确切结构将取决于处理器和外设的选择。本节描述了一个通用结构,该结构提供了支持本文档中描述的功能和服务所需的功能。

6.4.1 SCP组件

该部分介绍SCP子系统的组成。

SCP处理器Core

处理器运行的固件根据请求、事件和调度任务采取行动。

SCP处理器Core选择

在SCP中使用的处理器的选择取决于系统的要求。下面列出了需要考虑的重要事项:

•处理能力:SCP必须有足够的处理能力来处理预期运行的任务,特别是具有实时依赖关系的任务或可能需要并发处理的任务。随着AP核数的增加而扩展的任务(如空闲管理和传感器监视)通常会主导利用率。AP核空闲管理通常是对延迟最敏感的任务负载,延迟分布的尾部可以通过提供足够的性能来管理,以保持总体适度的利用率。选择标准包括处理器的类型和运行频率。

•中断类型:一些处理器有矢量中断,可以简化中断的连接、处理和延迟,减少或消除软件交互来发现中断原因的需要。

•中断优先级和延迟:内在中断延迟应该与核心的其他中断特性一起考虑。这些可以包括硬件中断优先级,中断嵌套和中断处理程序之间的尾链,以及中断向量之间的硬件上下文切换。在矢量中断的情况下,还应该考虑可用中断输入的数量。如果这个值太低,并且在SCP中需要一个额外的中断控制器,这会增加固件和硬件中断序列的延迟。

•面积和功耗:SCP通常会一直处于开启状态。因此,功耗是一个重要的考虑因素。对于SoC可能花费大量时间的SLEEP状态尤其如此。

•调试和跟踪:调试和配置固件的能力对开发至关重要。考虑因素包括在SoC中可用的SCP处理器子系统的本机调试和跟踪支持SLEEP状态和集成到更广泛的CoreSight SoC调试和跟踪系统。

•可信操作:由于SCP控制着SoC的敏感部分,因此需要关注安全性。SCP从私有本地内存运行,它的固件可以通过一个受信任的引导进程加载,从而使SCP在本质上是受信任的。但是,如果SCP需要访问系统的其他部分,则需要考虑该部分及其访问的组件的安全性。

对于移动系统,SCP处理器核心可能是Arm Cortex-M微控制器,例如Cortex-M3。
其他系统可能会考虑另一个Arm配置文件核心,如Cortex-R或Cortex-A。在所有情况下,选择都取决于上述因素。

SCP处理器核内存

处理器具有用于引导的ROM和用于存储固件指令和数据的RAM。该ROM和RAM是SCP私有的。

一种可能的实现是,在引导时使用ROM使系统进入一种状态,在这种状态下,主机处理器可以访问内存系统并直接或间接地加载SCP固件。

客户端系统的可信引导要求在Trusted Board Boot Requirements–CLIENT [7]规范中提供。

SCP固件代码和数据空间完全在其私有RAM中。然后,当SoC的其余部分关闭且系统内存不可用时,SCP可以运行。但是,当可用时,SCP可以根据需要访问系统内存和系统的其他部分。

系统计数器和通用计时器

系统计数器为SoC提供一个通用的时间参考。通用计时器使用计数器值来产生中断和唤醒事件。主系统计数器值被分发给其他系统元素,包括应用程序处理器和调试基础设施,以提供一致的时间视图。

主系统计数器分辨率需要一个时钟源,由于功耗原因,可能在SoC睡眠状态下关闭。提供一个次要的持续运行的低速计数器,通常使用实时时钟源作为其输入,可以通过SoC SLEEP状态保存所需的时间视图。使用此计数器的通用计时器用于在这些状态下生成唤醒事件。

SCP负责在进入和退出SLEEP状态时管理这些系统计数器之间的时间传输,以确保向系统提供一致的时间视图。这可以通过SCP中的硬件和固件功能的组合来实现。

有关ARMv7架构系统计数器和通用计时器的详细信息,请参阅ARM架构参考
手册ARMv7-A和ARMv7-R版本[3]。

有关ARMv8架构系统计数器和通用计时器的详细信息,请参阅ARM架构参考手册ARMv8,用于ARMv8-A架构配置文件[2]。

看门狗

SCP看门狗提供防止系统死锁的功能。如果SCP没有定期写入看门狗,那么看门狗将产生中断,这将最终导致系统重置。

必须有一个综合征寄存器来通知SCP处理器上一次复位的原因,以便它能够采取适当的行动。

当SCP提供这种特定的看门狗功能时,其他系统看门狗可能由AP软件管理。具体要求请参见SBSA (Server Base System Architecture)[1]。

电压调节器控制

SCP管理各种功能的电压供应,包括开机后的开、关和DVFS电压水平的改变。

电压供应通常由单独的电源管理IC提供。稳压器控制组件为该功能提供接口。接口协议的实现取决于电源管理IC的选择。

时钟控制

SCP不能在组件活动级别控制时钟的运行时动态门控。这是由具有硬件自主Q-Channel管理的时钟控制器管理的。

SCP用于管理时钟源的使能、选择和划分。时钟源可能包括片外源,如晶体振荡器和片内源,如锁相环。每个时钟源通常能够被分割,为不同的组件产生大量的频率。

这些设置可能是静态的,在需要组件或上电时设置一次,或者应组件或相关软件的请求更改,例如针对AP或GPU DVFS。

有关动态时钟门控的更多详细信息,请参见6.5.2时钟控制器和7.1时钟控制集成。

系统控制

SCP可以管理各种系统控制任务。当特定的响应性不是约束时,这通常可以通过寄存器控制输出和中断输入来处理。一个简单的应用程序示例是管理与SoC组件的四阶段请求确认握手。当SCP外部的硬件充当请求者时,请求信号被连接到一条中断线,该中断线被设定为在请求的每个边缘产生一个脉冲。输入状态寄存器位也可用于确定请求的级别。一个控制寄存器位驱动SCP输出用于确认信号。当角色互换时,相应的信号连接也是如此。

图6.3显示了此应用程序的一个示例,其中SoC组件充当请求者。

4d0c7cd7405d4c9c9338576eb249f784.png

为此目的包括任何系统控制寄存器和中断分配是可选的,取决于系统需求。

信息接口

为了允许OSPM和SCP消息接口之间通过软件接口(如SCMI)进行请求通信,需要硬件支持。虽然这可以采取多种形式,但解决方案必须是易于对操作系统进行通用描述的解决方案。使用共享内存邮箱和门铃中断的方案是典型的,非常适合此目的。

消息传递接口必须可供系统中的任何AP核心使用。

典型的实施例是一个简单的硬件,它允许任何一个实体发送和读取消息,并为彼此生成中断,以指示消息的可用性。

典型的OSPM到SCP通信方法可能是:

  1. OSPM

a.将消息存储到邮箱内存中。

b.使用门铃寄存器生成SCP中断。

  1. SCP接收到中断:

a.从邮箱内存中读取消息。

b.清除门铃中断。

  1. SCP根据消息执行操作。SCP也可能发送回调响应,使用相同的操作,但方向相反。

在具有能够直接请求SCP采取行动的自管理设备或子系统的系统中,需要扩展消息传递功能,以允许在这些代理和SCP之间进行通信。

电源策略单元

电源策略单元(Power Policy unit, PPU)是专用的硬件组件,用于从SCP固件中抽象出对电源域的低级控制。SCP固件只做出高层次的电源域策略决策,并将其编程到PPU中。

ppu的数量和位置取决于设计的拓扑结构。在always-on域中至少有一个PPU,以提供第一级的系统唤醒能力。

其他的ppu可以分布在SoC周围,具体请参见7.2.3分布式ppu。

关于电源策略单元的详细介绍请参见6.5.1电源策略单元。

关于ppu集成的详细信息,请参见7.2电源控制集成。

传感器控制

SCP预计能够通过专用外设或使用SoC互连访问片上工艺、电压和温度传感器信息。

附加的外围设备

可以包括SCP私有的其他外围设备。通常,这些是提供唤醒功能的always-on域外设。

外设访问

一般来说,出于安全原因,SCP外设是私有映射的。两个重要的例外,在SCP和AP地址空间中都有映射,如图6.2所示:

•主系统计数器:AP软件必须能够访问系统计数器作为通用定时器规范要求。

•消息接口:需要共享访问来促进6.4.1中描述的消息传递机制。

对于处于always-on子系统之外的SCP外设,比如分布式的PPU, SCP可能支持物理上私有的外设扩展端口,或者依赖于共享的互连资源。在共享互连的情况下,SoC集成商必须考虑对其他代理访问这些外设的安全控制。

系统访问

SCP预计可以使用共享系统互连访问更广泛的SoC资源,包括外设和内存。

对SoC资源的访问允许SCP执行作为电源控制序列的一部分的操作。这可能包括组件的配置以及保存和恢复功能。例如,对接控制器和内存控制器组件的配置。

除非必要,否则不建议限制这种访问,因为这会限制SCP可以执行的任务。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/168436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Python 中创建 Sentinel-2 RGB 合成图像

一、前言 下面的python代码将带您了解如何从原始 Sentinel-2 图像创建 RGB 合成图像的过程。 免费注册后,可以从 Open Access Hub 下载原始图像。 请注意,激活您的帐户可能需要 24 小时! 二、准备工作 (1)导入必要的库…

selenium的基础语法

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️山水速疾来去易,襄樊镇固永难开 ☁️定位页面的元素 参数:抽象类By里…

【从删库到跑路 | MySQL总结篇】数据库基础(增删改查的基本操作)

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 重点放前面&am…

网络数据结构skb_buff原理

skb_buff基本原理 内核中sk_buff结构体在各层协议之间传输不是用拷贝sk_buff结构体,而是通过增加协议头和移动指针来操作的。如果是从L4传输到L2,则是通过往sk_buff结构体中增加该层协议头来操作;如果是从L4到L2,则是通过移动sk_…

【Linux】fork()

文章目录 一、fork()是什么?二、fork()干了什么?三、fork()怎么用? 一、fork()是什么? fork()函数其实是在Linux系统中用于创建一个新的进程。让我们看看Linux中是怎么描述的?运行man fork。 RETURN VALUE On success…

英特尔和 ARM 将合作开发移动芯片技术,如何看待双方合作?

英特尔和 ARM 将合作开发移动芯片技术,如何看待双方合作? 最近市场传出Arm要自产芯片,供智能手机与笔电等使用后,外媒指Arm自产芯片将由英特尔晶圆代工部门打造,变成英特尔晶圆代工客户。将采用英特尔18A工艺&#xff…

利用Nginx与php处理方式不同绕过Nginx_host实现SQL注入

目录 首先需要搭建环境 nginxphpmysql环境: 搭建网站 FILTER_VALIDATE_EMAIL 绕过 方法1:冒号号分割host字段 方法2:冒号号分割host字段 方法3:SNI扩展绕过 首先需要搭建环境 nginxphpmysql环境: php安装包&a…

vue一个页面左边是el-table表格 当点击每条数据时可以在右边界面编辑表格参数,右边保存更新左边表格数据

实现思路: 1.点击当前行通过row拿到当前行数据。 2.将当前行数据传给子组件。 3.子组件监听父组件传过来的数据并映射在界面。 4.点击保存将修改的值传给父组件更新表格。 5.父组件收到修改过后的值,可以通过字段判断比如id,通过 findIn…

VR Interaction Framework2.0使用

1 按键 ,比如按压下手柄的B键 if (InputBridge.Instance.BButtonDown){print("kkkkkkbbbbb456");} 2抓取某个物体,那么就在要抓取的那个物体上加一些组件,特别是Grabble Unity Events

【基础知识】AB软件RSLinx如何实现OPC通讯组态

哈喽,大家好,我是雷工。 在上一节了解了什么是RSLinx?以及RSLinx Lite、RSLinx Classice、RSLinx Professional、RSLinx Gateway几个版本的特点。 本节了解AB的RSLinx如何实现OPC组态。 一、创建RSLinx通讯: 1.1、【Communicati…

excel自己记录

1、清除换行符号 2、添加特殊符号&并清除换行符号 7日&15日&30日&60日 3、判断单元格最后一个字符是不是数字,不是就删掉 IF(ISNUMBER(--RIGHT(B2,1)),B2,SUBSTITUTE(B2,RIGHT(B2,1),"")) ISNUMBER(--RIGHT(B2,1))判断最右边的一个数是否…

Wireshark的捕获过滤器

Wireshark的过滤器,顾名思义,作用是对数据包进行过滤处理。具体过滤器包括捕获过滤器和显示过滤器。本文对捕获过滤器进行分析。 捕获过滤器:当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获。 捕获过滤器…

一起学docker系列之九docker运行mysql 碰到的各种坑及解决方法

目录 前言1 Docker 运行mysql命令2 坑一:无法读取/etc/mysql/conf.d目录的问题3 坑二:/tmp/ibnr0mis 文件无法创建/写入的问题4 坑三:Navicat 连接错误(1045-access denied)5 坑四:MySQL 登录失败问题结语 …

ros2文件package.xml与cmakelists.txt比较

每次在ros2里面添加文件以后,都要修改packages.xml,与cmakelists.txt文件。

Vue服务端渲染——同构渲染

Vue.js 可以用于构建客户端应用程序,组件的代码在浏览器中运行,并输出 DOM 元素。同时,Vue.js 还可以在 Node.js 环境中运行,它可以将同样的组件渲染为字符串并发送给浏览器。这实际上描述了 Vue.js 的两种渲染方式,即…

爬虫项目实战:利用基于selenium框架的爬虫模板爬取豆瓣电影Top250

👋 Hi, I’m 货又星👀 I’m interested in …🌱 I’m currently learning …💞 I’m looking to collaborate on …📫 How to reach me … README 目录(持续更新中) 各种错误处理、爬虫实战及模…

从 RBAC 到 NGAC ,企业如何实现自动化权限管理?

随着各领域加快向数字化、移动化、互联网化的发展,企业信息环境变得庞大复杂,身份和权限管理面临巨大的挑战。为了满足身份管理法规要求并管理风险,企业必须清点、分析和管理用户的访问权限。如今,越来越多的员工采用移动设备进行…

杰发科技AC7801——Flash模拟EEP内存分布情况

简介 本文记录了在使用AutoChips芯片Flash模拟EEP过程中的一些理解 核心代码如下 #include <stdlib.h> #include "ac780x_sweeprom.h" #include "ac780x_debugout.h"#define SWEEPROM_SIZE (2048UL) /* Ssoftware eeprom size(Byte) */ #define TE…

Excel动态选择某一行/列的最后一个数据

选择列的最后一个数据&#xff1a; 以A列为例&#xff0c;使用&#xff1a; LOOKUP(1,0/(A:A<>""),A:A)选择行的最后一个数据&#xff1a; 以第3行为例&#xff0c;使用&#xff1a; LOOKUP(1,0/(3:3<>""),3:3)示例程序 列最后一个数据&a…

【精选】框架初探篇之——MyBatis的CRUD及配置文件

MyBatis增删改查 MyBatis新增 新增用户 持久层接口添加方法 void add(User user);映射文件添加标签 <insert id"add" parameterType"com.mybatis.pojo.User">insert into user(username,sex,address) values(# {username},# {sex},# {address}) <…