当前位置: 首页 > news >正文

电源控制系统架构(PCSA)之系统分区电源域

目录

4.2 电源域

4.2.1 电源模式

4.2.2 电源域的选择

4.2.3 系统逻辑

4.2.4 Always-On域

4.2.5 处理器Clusters

4.2.6 CoreSight逻辑

4.2.7 图像处理器

4.2.8 显示处理器

4.2.9 其他功能

4.2.10 电源域层次结构要求

4.2.11 SOC域示例


4.2 电源域

电源域在这里被定义为在电压域中共享共同功率控制的设计元素的集合。电压域可以划分为一个或多个电源域。

具体来说,电源门控域是可以通过片上电源开关去除电源的功率域。然后可以将电压域划分为一个或多个功率门控域以及一个 always-on(非门控)功率域。

将电压域划分为几个电源域的动机是为了促进减少静电泄漏功率的技术。这些模式包括断电模式,失去上下文,以及低泄漏保持模式,保留部分或全部上下文。

以下小节描述:

  1. 一个电源域支持的电源模式。
  2. 选择在基于Arm的SoC中实现哪些电源域。
  3. 必须遵守的电源域划分要求。这包括系统中重要组件之间的可用性和功率排序关系。

4.2.1 电源模式

本节定义电源域在硬件级别可以具有的模式。第5章描述了电源域模式到软件电源状态视图的映射。

ON

电源域始终支持ON模式。这是电源域逻辑的正常功能模式。如果电源域支持DVFS,则在电源域处于此模式时应用此模式。这种模式通常还会使用时钟门控和其他技术来降低动态功耗。

OFF

电源域通常通过包含片上电源开关来支持OFF模式。电源开关用于在不需要电源功能时切断电源。

关闭电源模式会破坏上下文。要使用此模式,必须提供在进入OFF模式之前以及在返回ON模式后恢复执行时或之前管理任何必要上下文的机制。这些上下文管理机制可以在软件或硬件中实现。

这意味着使用OFF模式需要花费大量的时间和精力。但是,有许多组件在开机时的恢复或重新配置需求可以忽略不计。这样的组件就可以在没有这种开销的情况下关闭和打开。

Retention (RET)

保持模式提供泄漏功率减少而不损失状态。
有几种可能的RET模式实现和使用模型。RET模式可按以下标准分类:

  1. 进入和退出模式:这可以是硬件自主的,也可以是软件可见的。
  2. 物理实现:模式内的全部或部分状态保留。

对于硬件自主的RET模式(对软件是透明的),在退出该模式时恢复操作所需的所有状态都必须由硬件保留。其他状态可以被丢弃,因此,虽然从功能的角度来看,该模式提供了明显的完全保留,但从实现的角度来看,可能存在部分状态保留。

对于软件可见的RET模式,采用显式的软件决策来选择模式,这意味着软件可能在进入和退出该模式时处理一些上下文管理。这方面的一个例子是,当所有其他硬件状态被丢弃时,只有特定的RAM内容将被保留。从实现的角度来看,这些模式可能只需要部分保留能力。

RET模式可以使用具有低泄漏保持能力的触发器,使用二次非开关电源来实现。逻辑单元的主要电源在使用片上开关的模式下进行电源门控。为了获得最省电的RAM单元,还需要支持节省泄漏的保留模式。在没有这种能力的情况下,当组件在RET模式时,RAM单元必须保持在操作级别。

注意:如前所述,操纵外部电源电平也可以在整个电压域中获得类似的结果。这种方法通常只适用于高级控制,延迟增加,并且需要整个电压域共享一个共同的保持策略。

由于保留了部分甚至全部状态,因此进入和退出RET模式的时间和能量成本低于OFF模式。然而,在此模式下消耗的功率高于关闭模式,因此在进入模式的机会和模式内驻留时间方面存在权衡。

电源模式转换

当在电源模式之间切换电源域时,域内的逻辑必须处于安全状态。组件提供各种机制来实现这一点,这些必须集成到电源控制逻辑中。

本文档在第6章电源控制框架中描述了用于此目的的基础设施组件,并在第7章系统电源控制集成中描述了这些机制的集成。

4.2.2 电源域的选择

电源域策略的基本目标是尽量减少每种情况下的power-on面积。

从实际的角度来看,实现和控制开销约束意味着电源门控域通常很大,其内容代表重要功能。

在选择电源域时,重要的是要考虑最终用例,以确保所选域的低功耗模式可以有效地使用。尽管可以有许多详细的用例,但它们通常可以被简化为更广泛的使用类别。通过分析,可以确定关闭长时间不需要的功能的机会。

此外,电源域支持的电源模式需要映射到一组显式的软件功率状态之一,或者组件支持的自治机制。当电源状态控制需要由软件管理时,还应评估使用可用框架或设备驱动程序的可行性。

4.2.3 系统逻辑

在SoC睡眠状态之外的所有活动期间都需要许多常见的系统逻辑功能,如互连、存储系统、外设和其他共享基础设施。典型的SoC将这些功能聚集到单个电源门控域中。

在大规模SoC中,这可以代表一个重要的区域。SoC架构可以组织起来,将该区域划分为进一步的电源域。然而,挑战来自于通过互连的通用路径的普遍性,以及许多外围功能对于电源域实现来说太小。此外,尝试将外围功能映射到与广泛使用类一致的更大的组中可能会被证明是棘手的。

但是,如果互连和外设功能特定于具有专用电源域的功能块,则应将其集成到这些电源域中,而不是系统域中。

4.2.4 Always-On域

always-on的电源域范围取决于系统在SoC休眠状态下对泄漏的特定灵敏度。在高灵敏度的情况下,always-on域可能被限制为最小的唤醒逻辑。范围更广SCP核心子系统可以放置在电源门控域中,在最深的SoC睡眠状态下关闭电源。

注意:当考虑到电源开关所消耗的待机电流对常开逻辑区的灵敏度时,建议将I/O环电路和保持供电的模拟功能作为评估的一部分。

最小唤醒逻辑范围包括:

•系统唤醒定时器和系统计数器。
•调试访问端口(DAP)逻辑。
•任何需要的外部唤醒事件检测。
•任何需要的检测唤醒事件从独立的片上子系统。

•上电复位和初始化逻辑。如果SCP位于单独的电源门控域中,则always-on域必须包含对上述所有条件作出响应的SCP域的上电控制。

当对always-on区域和功率的灵敏度较低时,always-on域可以包含整个SCP核心子系统。至少,SCP核心子系统必须支持从系统初始化到AP引导,以及从SoC休眠状态到SoC休眠状态的转换。

always-on的功率域策略受到:

•最小的唤醒逻辑要求。
•系统逻辑电压和电源域策略。

相应的一组选项如图4.2所示:

034ac19a07194c9da73311a9f5247794.png

依次考虑这些选项:

  1. 在这种情况下,系统逻辑电源域具有由VSYS提供的片上电源开关。always-on区对泄漏的灵敏度不足以要求专用的唤醒逻辑电源域和SCP电源域(它是由VSYS提供的非门控电源域)。

如果没有冲突的约束,建议采用这种安排,因为它简单,并且不依赖于平台级别的额外供应。

  1. 在这种情况下,对always-on区域泄漏的敏感性足以需要一个专用的唤醒逻辑电源域,并将其安排为由VSYS提供的非门控功率域。系统逻辑和SCP电源域的片上电源开关由VSYS提供。如果满足系统需求,这两个电源门控域可以合并为一个。
  2. 整个SCP功能是一个非门控电源域,由一个单独的始终通电的电源VAON提供。
    这种安排可以使VSYS从外部移除,并有可能消除片上电源开关的系统逻辑域。
  3. 实际上,该选项是策略3与策略2的电源域选项相结合的结果。

4.2.5 处理器Clusters

Cortex-A和Cortex-R处理器集群通常支持广泛的电源域和这些域内的电源模式。大多数多处理器产品同时支持单核和集群逻辑电源域。一些多处理器产品还支持集群级调试电源域。

表4.1显示了一个使用Cortex-A产品的示例:

63a2c77982024563bac6a4740f7bde06.png

Core电源域

即使在用例中,对系统可用的处理器核心的需求也是高度动态的。
OSPM框架具有相应的空闲管理能力,可以在软件可见电源状态之间进行选择。还存在用于从操作系统可用池中删除核心的策略框架,例如,在由于功率或热约束而必须限制计算容量的情况下,可以使用此策略框架。

此外,在处理器的支持下,可以实现自主的软件透明保留模式,从而在内核停止期间机会地减少泄漏。
在能源和功率受限的用例中,特别是在高温下,core泄漏功率可能很大,因此管理这种泄漏的能力是非常需要的。
Arm强烈建议在所有对泄漏功率敏感的应用中实现单核功率域。

Cluster域和共享Cache RAMS

多处理器产品通常还支持top-level cluster逻辑电源域,该电源域与共享Cache RAM一起控制,用于打开和关闭模式转换。此外:

•当集群逻辑开启并保持运行时,可能支持部分缓存RAM断电和自主RAM retention模式。
•当集群逻辑关闭时,可能支持共享缓存和SCU RAM retention模式。

由于集群可用性需求也是动态的,因此强烈建议在对泄漏功率敏感的所有应用程序中支持该区域的功率门控。
集群域将包含任何集成逻辑,例如任何域桥的适当部分,用于功能和CoreSight使用,以及专用于集群的CoreSight基础设施。

Debug域

如果集群支持调试电源域,则其中包含满足通过核心下电进行调试的架构要求所需的逻辑。
如果这是作为一个独立的电源门控域实现的,那么在调试连接期间,当没有内核供电时,只需要为这个域供电。
由于该域较小,通常并入cluster逻辑电源域。

如果调试通过核心断电逻辑是集群电源域的一部分,则在调试连接期间集群必须通电。

在基于DynamIQ的核中,这个调试逻辑被放置在一个名为DebugBlock的单独模块中,该模块可以放置在集群的一个单独的电源域中。

处理器Cluster分区示例

图4.3显示了MP4处理器Cluster的示例逻辑视图,所有内核和Cluster使用单个电压域。支持每核、集群和集群级共享缓存RAM功率门控。

集群和共享缓存RAM电源门控域共享打开和关闭模式转换的公共控制。缓存RAM可以对retention支持进行额外的控制,但必须在集群开机时始终可供访问。每核电源门控域还实现了支持动态retention的选项。

图的结构反映了处理器子系统从电压供应(VAP)开始的分层上电顺序需求,首先是可用的,然后是向下流动的功率域依赖关系。关机顺序是相反的。

b0fd17dd74f04ad597757e2dfba3c5f0.png

为清楚起见,图4.4显示,在物理结构中,所有片上电源开关都是并行实现的,逻辑顺序是通过控制排序。在进一步的示例中,将省略此表示。

d1cf3c95f10042c4a9ef6c6035d89d34.png

图4.5显示了DynamIQ big.LITTlE Cluster的逻辑视图示例。每个大核心组和小核心组都有独立的电压源,集群使用系统逻辑电压电源(VSYS)。

集群和共享缓存RAM电源门控域共享对电源模式转换的公共控制。共享缓存RAM可以对保留和部分断电进行额外控制。但是,在集群上电时,窥探过滤器RAM必须至少可供访问。每核电源门控域还实现了支持动态retention的选项。

图的结构反映了处理器子系统从电压供应开始的分层上电顺序需求,首先是可用的,然后是向下流动的功率域依赖关系。关机顺序是相反的。

2dc67ffac8064958a7b9871ed82bb2ab.png

4.2.6 CoreSight逻辑

共享的CoreSight基础设施,除了Debug Access Ports必须始终打开之外,可以有一个专用的电源门控域。这是预期在系统逻辑电压域内。
如果没有专用电源域,则属于系统逻辑电源域。

4.2.7 图像处理器

本节中的描述一般适用于Arm Mali GPU产品。必须经常查阅特定的产品文档。

Arm Mali GPU产品具有集成电源管理功能。它们包含一个相对always-on的域,在GPU驱动程序软件可以调度任何工作之前,必须为其供电。该域包含对每个GPU内核及其顶级核心组逻辑的电源门控域控制支持。这个功能称为作业管理器(JM, job manager),它在计划工作时动态地启动资源,并在工作完成时关闭资源。

从高级系统电源控制和OSPM的角度来看,只需要考虑作业管理器电源域的可用性。

Job Manager电源域

如果GPU没有专用电压域,作业管理器可以合并到系统电源域中,也可以作为专用电源门控域实现。

如果GPU有专用的电压域,则必须将此逻辑置于该电压域内的电源域中。

当作业管理器被实现为GPU电压域中的电源域时,它可以与任何其他顶级集成逻辑(如DVFS桥的适当电压域部分)或GPU专用互联功能聚合在一起。

该功率域可以实现为电源门控域,也可以实现为非门控电源域,依赖于SoC睡眠状态下GPU电压供应的外部关闭。

Core and Core Group电源域

建议为GPU内核和顶级核心组逻辑实现电源门控域,因为这些是动态使用的重要功能块。可以实现单个核心组和单核电源门控域,也可以实现单个合并电源域。

GPU分区示例

图4.6显示了MP4 GPU的逻辑视图示例。图的结构反映了分层的电源排序需求,而不是物理实现。

本例中提供专用的VGPU (voltage domain)来支持DVFS。作业管理器域是VGPU中的非门控电源域,在电源通电时可用。支持核心组和单核电源门控域。较浅的颜色反映了这些域由作业管理器管理,而不是系统可见的。

8e3a4ddbe73e4a5e90f12cb48ff5dd7a.png

图4.7显示了较小MP2 GPU的第二个示例逻辑视图。在这种情况下,不支持DVFS, GPU电源域是系统逻辑电压域(VSYS)的子域。

在本例中,作业管理器已合并到包含共享资源的系统逻辑域中(SYSTOP)。当SYSTOP启动时,作业管理器可用。支持核心组和单核功率门控。浅色阴影再次反映了这些域由作业管理器管理,并且不是系统可见的。

b0e982e18a2b4e32b744f3d5852bb703.png

4.2.8 显示处理器

Arm Mali显示处理器支持多个电源门控域。有关详细信息,请参阅具体的产品文档。
在所有情况下,支持的电源门控域都是外部管理的。

4.2.9 其他功能

对于剩余的SoC功能,实现电源门控域的选择通常如前所述,其中一个功能或一组功能仅在特定场景中使用。应该根据系统动态维度的实用程序和能力,考虑在功能内进一步划分,例如划分为处理核心。

通常,需要很大的函数大小来证明节省额外域的合理性。但是,可能会发现一些特殊情况证明小域是合理的。一个例子是可以独立操作的卸载处理器,例如解码音频,而系统逻辑不可用。

在移动SoC中,媒体功能(如成像处理器)和其他复杂功能(如高速I/O接口)之间可能会出现额外的电源门控域。高速I/O接口就是一个例子,它可能还需要“相对always-on”的唤醒域来支持挂起和局域网唤醒之类的功能。

4.2.10 电源域层次结构要求

在基于Arm的SoC中,必须维护关键资源之间的几个基本关系,以提供可以运行标准操作系统的功能系统。本节提供维护这些关系的电源域层次结构的高层考虑。

服务器基础系统架构(SBSA)[1]从以下方面描述了与电源域层次结构相关的需求:

•系统时间配置符合ARM架构参考手册ARMv8[2]和ARM架构参考手册,ARMv7-A[3]中的通用定时器规范。
•两个唤醒方法的语义:
-来自通用中断控制器(GIC)的中断
-Always-on域唤醒事件
•系统内存可用性

SBSA还描述了与这些需求一致的电源状态语义。电源状态在Chapter 5 Power States中介绍。

图4.8显示了与SBSA中显示的类似的符合这些要求的功率域层次结构。其他符合需求的例子,不是简单的子集,是可能的。

595f9e89a3cd40b4ad834ddcecfcbe6e.png

在图4.8中,有以下电源域:

•一个始终在线的电源域(AON),包含系统控制处理器,一个通用定时器子系统和唤醒检测逻辑。
•一个系统逻辑域(SYSTOP),包含GIC和共享的系统逻辑功能,包括访问系统内存的路径。
•两个处理器集群与每核和集群电源门控域。

•由操作系统管理的DMA设备。它依赖于开机时GIC和系统内存的可用性。
•具有自我管理功能的I/O设备,具有电源门控域和always-on域。always-on域可以生成唤醒事件来表达对SCP的资源请求。

以下部分描述了与电源域分区相关的SBSA[1]产生的需求。

Timer子系统

SoC必须包括一个通用的定时器子系统,在一个always-on的电源域。这样可以满足以下要求:

•系统计数器需要在SoC上电的整个时间内提供一致的增量视图。
•系统计数器计数值必须作为所有AP核心私有计时器的输入可见,无论这些计时器何时打开。

如果SoC支持睡眠状态,其中GIC断电,则要求能够在始终打开的唤醒定时器事件到期时产生始终打开的电源域唤醒事件。SCP固件必须支持在此事件中唤醒AP核心。在接通电源时,中断也被发送到GIC,等待AP核心的可用性。

始终打开的电源域事件(也是GIC SPI中断)必须是级别敏感的,或者相应地重新生成,以确保在上电后中断被GIC观察到。

Generic Interrupt Controller (GIC)

在GICv2实现中,所有的GIC逻辑都在一个单一的电源域内。

在GICv3实现中,GIC CPU interface必须合并在AP core电源域中,而相关的redistributor、distributor和任何中断转换服务(ITS)支持可以在其他电源域中。

redistributor可以在与其关联的AP核心的相同或相对always-on的电源域中实现。

GIC distributor必须与所有AP核心具有相对always-on的关系。但是,distributor不需要始终打开,并且可以在SoC睡眠状态下关闭电源。在图4.8的例子中,GIC是放置在系统逻辑域(SYSTOP)中的单个电源域实现。当GIC distributor断电时,AP核心只能被always-on域唤醒事件唤醒。

Core Timers

本地AP核计时器是中断的重要来源。然而,核计时器可能会关闭电源,或者随着核被reset。

如果AP核定时器可以下电,则必须有一个唤醒定时器作为中断源提供给GIC,以允许唤醒信号发送到SCP上电核心。

除非所有本地AP核定时器都是always-on,否则SBSA的level 0只需要一个系统特定的定时器来实现此目的。但是,建议系统至少遵守SBSA的第1级,并且,除非所有本地AP核计时器都是始终开启的,否则应为此目的实现在非安全地址空间中映射的内存映射通用计时器。

在大型系统中,可以使用固件表中描述为始终打开的AP核计时器来解决定时器的可伸缩性问题。AP固件根据可用的定时器硬件资源抽象出always-on的功能。根据系统的规模,这些资源的范围可能从单个共享安全内存映射的always-on计时器,到每个核心的内存映射的always-on计时器。

Always-On域唤醒事件

Always-On域唤醒事件是支持SoC睡眠状态的基础,其中只有Always-On的逻辑被供电。
已经声明了一个要求,即系统必须在Always-On的唤醒定时器到期时支持始终打开的电源域唤醒事件。

其他Always-On的域唤醒事件是实现定义的。常见的例子如图4.8所示:

SoC外部事件:来自电缆检测、电源按钮或无线子系统等源的片外事件。

来自具有自我管理功能的设备的片上事件:复杂的子系统,如高速I/O设备或具有自己的Always-On域支持的集成调制解调器。

SCP固件必须唤醒所需的系统资源以响应所支持的事件。

系统内存

每当启动可以启动内存事务的组件时,系统内存必须可用。
但是,还应该注意到,更高的SBSA级别所需的系统mmu和GICv3使用内存中的表。因此,当包含这些组件的系统处于电源状态时,其中至少有一个SMMU或GIC处于开启状态,系统内存必须可用。

在这种情况下,可用性的定义是内存将响应请求,而不需要运行在AP核心上的软件的干预。因此,当需要内存系统可用性的代理处于活动状态时,只要这些请求触发一种允许透明地完成事务的机制,就有可能关闭内存系统。

在图4.8的示例中,到系统内存的路径与GIC位于相同的电源域(SYSTOP)中,因此当任何AP核心上电时,系统内存将可用。

但是,组件(如图4.8示例中的I/O设备)具有生成始终打开的域唤醒事件的能力,可能会在SYSTOP域关闭时启动。如果这样的组件在SYSTOP关闭时生成请求,则需要一个硬件组件为SCP生成唤醒事件并暂停事务,直到系统内存可用为止。该组件的具体要求请参见7.2.8访问控制。

电源序列要求

图4.8所示示例的电源排序要求可以简单概括为:

•无论SoC何时上电,该域都可用。

•对于任何处理器集群,SYSTOP域相对总是处于开启状态。
•每个处理器集群相对来说总是连接到其核心。
•对于操作系统管理的设备来说,SYSTOP域相对总是处于开启状态。这类设备表示为
图4.8由DMA设备组成。
•图4.8中的I/O设备具有自管理功能。其通电的电源门控域仅依赖于其 always-on的域逻辑的先前可用性。

通过在依赖域之前打开层次结构中较低的域的电源,并在依赖域关闭电源之后关闭该域,通常可以保持相对始终在线的关系。例如:在任何处理器集群上电之前必须先上电SYSTOP,下电则相反。

然而,如果重置释放的管理和低功耗接口控制尊重所需的逻辑顺序,则可以同时为相关域供电。

4.2.11 SOC域示例

图4.9显示了一个高端移动SoC示例,作为电压和电源域划分的总结。

7b156bb2f41646cc857300d6025a04a7.png

就所示的功能范围而言,图4.9进行了简化,但就可能做出的选择而言,它具有代表性。

所示的图像处理器和音频电源域不代表Arm组件。这些都是可能具有专用电源门控域的组件示例。

虽然没有显示,但假设视频处理器的核心调度程序逻辑包含在包含GIC、存储系统、系统互连和系统外设的电源域内。

相关文章:

电源控制系统架构(PCSA)之系统分区电源域

目录 4.2 电源域 4.2.1 电源模式 4.2.2 电源域的选择 4.2.3 系统逻辑 4.2.4 Always-On域 4.2.5 处理器Clusters 4.2.6 CoreSight逻辑 4.2.7 图像处理器 4.2.8 显示处理器 4.2.9 其他功能 4.2.10 电源域层次结构要求 4.2.11 SOC域示例 4.2 电源域 电源域在这里被定…...

Linux:docker基础操作(3)

docker的介绍 Linux:Docker的介绍(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/134146721?spm1001.2014.3001.5502 通过yum安装docker Linux:Docker-yum安装(2)-CSDN博客https://blog.…...

【Axure教程】用中继器制作卡片多条件搜索效果

卡片设计通过提供清晰的信息结构、可视化吸引力、易扩展性和强大的交互性,为用户界面设计带来了许多优势,使得用户能够更轻松地浏览、理解和互动。 那今天就教大家如何用中继器制作卡片的模板,以及完成多条件搜索的效果,我们会以…...

Linux中vi常用命令-批量替换

在日常服务器日志查看中常用到的命令有grep、tail等,有时想查看详细日志,用到vi命令,记录下来,方便查看。 操作文件:test.properites 一、查看与编辑 查看命令:vi 文件名 编辑命令:按键 i&…...

logback-spring.xml的内容格式

目录 一、logback-spring.xml 二、Logback 中的三种日志文件类型 一、logback-spring.xml <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10 seconds" ><!-- <statusListener…...

nodejs+vue+elementui+express青少年编程课程在线考试系统

针对传统线下考试存在的老师阅卷工作量较大&#xff0c;统计成绩数据时间长等问题&#xff0c;实现一套高效、灵活、功能强大的管理系统是非常必要的。该系统可以迅速完成随机组卷&#xff0c;及时阅卷、统计考试成绩排名的效果。该考试系统要求&#xff1a;该系统将采用B/S结构…...

Navicat 技术指引 | GaussDB 数据查看器

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…...

Docker的registry

简介 地址&#xff1a;https://hub.docker.com/_/registry Dcoker registry是存储Dcoker image的仓库&#xff0c;运行push&#xff0c;pull&#xff0c;search时&#xff0c;是通过Dcoker daemon与docker registry通信。有时候会用Dcoker Hub这样的公共仓库可能不方便&#x…...

【vue_3】关于超链接的问题

1、需求2、修改前的代码3、修改之后&#xff08;1&#xff09;第一次&#xff08;2&#xff09;第二次&#xff08;3&#xff09;第三次&#xff08;4&#xff09;第四次&#xff08;5&#xff09;第五次 1、需求 需求&#xff1a;要给没有超链接的列表添加软超链接 2、修改前…...

redis优化秒杀和消息队列

redis优化秒杀 1. 异步秒杀思路1.1 在redis存入库存和订单信息1.2 具体流程图 2. 实现2.1 总结 3. Redis的消息队列3.1 基于list实现消息队列3.2 基于PubSub实现消息队列3.3 基于stream实现消息队列3.3.1 stream的单消费模式3.3.2 stream的消费者组模式 3.4 基于stream消息队列…...

arm-eabi-gcc 和 arm-none-eabi-gcc 都是基于 GCC 的交叉编译器

arm-eabi-gcc 和 arm-none-eabi-gcc 都是基于 GCC 的交叉编译器&#xff0c;用于编译 ARM 架构的嵌入式系统。它们的命名规则如下&#xff1a; arm 表示目标架构是 ARM。eabi 表示嵌入式应用程序二进制接口&#xff08;Embedded Application Binary Interface&#xff09;&…...

《大话设计模式》(持续更新中)

《大话设计模式》 序 为什么要学设计模式第0章 面向对象基础什么是对象&#xff1f;什么是类&#xff1f;什么是构造方法&#xff1f;什么是重载&#xff1f;属性与字段有什么区别&#xff1f;什么是封装&#xff1f;什么是继承&#xff1f;什么是多态&#xff1f;抽象类的目的…...

人工智能原理复习--绪论

文章目录 人工智能原理概述图灵测试人工智能的研究方法符号主义连接主义行为主义总结 人工智能原理概述 人工智能是计算机科学基础理论研究的重要组成部分 现代人工智能一般认为起源于美国1956你那夏季的达特茅斯会议&#xff0c;在这次会议上&#xff0c;John McCarthy第一次…...

[网络] 字节一面~ 2. HTTP 2 与 HTTP 1.x 有什么区别

头部压缩 在 HTTP2 当中&#xff0c;如果你发出了多个请求&#xff0c;并且它们的头部(header)是相同的&#xff0c;那么 HTTP2 协议会帮你消除同样的部分。(其实就是在客户端和服务端维护一张索引表来实现)二进制格式 HTTP1.1 采用明文的形式 HTTP/2 全⾯采⽤了⼆进制格式&…...

自己动手实现一个深度学习算法——八、深度学习

深度学习是加深了层的深度神经网络。 1.加深网络 1&#xff09;向更深的网络出发 创建一个如下图所示的网络结构的CNN 这个网络的层比之前实现的网络都更深。这里使用的卷积层全都是33 的小型滤波器&#xff0c;特点是随着层的加深&#xff0c;通道数变大&#xff08;卷积…...

js闭包的必要条件及创建和消失(生命周期)

>创建闭包的必要条件&#xff1a; 1.函数嵌套 2.内部函数引用外部函数的变量 3.将内部函数作为返回值返回 >闭包是什么&#xff1f; 就是可以访问外部函数&#xff08;作用域&#xff09;中变量的内部函数 > 闭包是什么时候产生的&#xff1f; - 当调用外部函数…...

鸿蒙开发-ArkTS 语言-基础语法

[写在前面: 文章多处用到gif动图&#xff0c;如未自动播放&#xff0c;请点击图片] 1. 初识 ArkTS 语言 ArkTS 是 HarmonyOS 优选主力开发语言。ArkTS 是基于 TypeScript (TS) 扩展的一门语言&#xff0c;继承了 TS 的所有特性&#xff0c;是TS的超集。 主要是扩展了以下几个方…...

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-GPT训练的Pretraining&#xff0c;SFT&#xff0c;Reward Modeling&#xff0c;RLHF 文章目录 GPT实战系列-GPT训练的Pretraining&#xff0c;SFT&#xff0c;Reward Modeling&#xff0c;RLHFPretraining 预训练阶段Supervised FineTuning &#xff08;SFT&#x…...

电子学会C/C++编程等级考试2022年03月(三级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:和数 给定一个正整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。 时间限制:10000 内存限制:65536输入 共两行,第一行是数列中数的个数…...

理解 JUnit, JaCoCo 到 SonarQube 的过程及 Maven 配置

Java 项目需要产生单元测试及代码覆盖率的话一直都是走的 JUnit 单元测试&#xff0c;JaCoCo 基于测试产生测试覆盖率&#xff0c;然后送到 SonarQube 去展示这条路子。当然 SonarQube 还可以帮我们进行代码的静态分析。但对其中的具体使用及过程知晓的并不深&#xff0c;基本就…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...