Q-Channel专为在简单的停止、运行quiescence的情况下使用而设计。Q通道是AXI低功耗接口的演进,其命名反映了该接口的目的是控制器件的quiescence。是时钟控制或者简单电源控制方案的理想选择。
P-Channel用于管理具有多个复杂功耗场景的转换。这些转换可以在不将器件返回到常见可操作状态的情况下进行。它的命名反映了接口的目的是控制电源状态转换。
控制器管理设备状态之间的转换,设备可以接受或者拒绝状态转换的请求。支持跨时钟域,支持异步接口。
Q-channel 信号
QACTIVE可以作为控制器更改握手状态的激励,但它与握手无关;当QACTIVE由设备驱动时,它表示设备准备接受静默请求;QACTIVE还可以包括输入信号,以提供唤醒功能。
握手机制
接受
拒绝
设备复位
复位时,器件必须同时驱动QACCEPTn和QDENY LOW。QACTIVE可以复位为LOW或HIGH。如果器件必须在从复位退出时执行启动操作,那么它可以复位QACTIVE HIGH,否则ARM建议将QACTIVE复位为低电平且无效。
控制器可以通过下列任一方式释放器件:
QREQn LOW,接口处于Q_STOPPED状态。
QREQn HIGH,接口处于Q_EXIT状态,可以满足任何时钟或电源供给。
握手状态
握手信号规则
QREQN只有在QACCEPTn为HIGH且QDENY为LOW时,才能由高变为低。(Q-RQUEST)
QREQn仅可在以下任一条件从LOW转换至HIGH:
—QACCEPTn和QDENY都是低的(ACCEPT AND Q-STOPPED)。
—QACCEPTn和QDENY都是高的(Q-DENIED)。
QACCEPTn只能在QREQn为LOW,QDENY为LOW时由高变为低(Q-RQUEST)。
当QREQn为HIGH且QDENY为LOW时,Qacceptn只能从LOW变为HIGH。
QDENY只能在QREQn为HIGH、QACCEPTn为HIGH的情况下由高变为低。
当QREQn为LOW,QACCEPTn为HIGH时,Qdeny只能从LOW变为HIGH。
控制器策略
QACTIVE 置HIGH可用作控制器退出Q_STOPPED状态的激励。控制器以驱动QREQn HIGH的方式做出响应,从而退出静默状态。
处于Q_RUN状态的控制器可以使用检测QACTIVE LOW作为发起静默请求的标准。然而,当处于Q_RUN状态时,控制器可以随时将QREQn的状态从高电平变为低电平。
一旦QREQn被驱动到低电平,控制器就不必考虑QACTIVE的状态,因为QREQn在设备通过接受或拒绝响应完成握手之前,无法驱动为高。
Q-Channel实现
• 使用前重新同步目的地的所有信号。
• 仅在接口处于Q_STOPPED状态时移除时钟或电源。
• 为确保四相握手的操作,请寄存所有QREQn、QACCEPTn和QDENY输出。
• QACTIVE信号由寄存器直接驱动或由多个寄存器驱动,这些寄存器的贡献是逻辑上合并的。ARM强烈建议将此组合逻辑限制在逻辑OR(在可能的情况下),并使用实例化的门来实现。
• 在实施其他逻辑时,必须仔细考虑QACTIVE源寄存器变化对输出QACTIVE信号的影响。尽管握手协议可以保证功能上正确的行为,但无论QACTIVE行为如何,ARM建议实施最简单的可能逻辑,以最大程度地减少QACTIVE输出引入毛刺的可能性。
P-Channels
控制器见到的PACTIVE是由多个源信号组成的,还可以包括唤醒的信号
PSTATE[M-1:0] 指请求转换的电源状态;
PREQ 高有效,表示发起请求转换电源状态
PACCEPT 高有效,表示接收转换请求
PDENY 高有效,表示拒绝转换请求
P通道握手-接受
在T1,认识到需要握手请求,电源控制器必须采取任何必要的有效措施来保证请求新状态前的转换动作。这些操作通常与转换到更高电压域状态相关。这可能包括启动电源域或使RAM脱离保留状态。
在T2,控制器将所需电源状态值置于PSTATE上,并设置PREQ HGH。协议要求当在设备上检测到PREQ时PSTATE是稳定的。
在T5,器件采样PREQ LOW,并设置PACCEPT LOW,然后循环。一旦控制器采样PACCEPT LOW,它就可以采取任何必要的后续状态转换措施。这些操作通常与转换到低功耗状态相关联。这可能包括关闭改电源域的电源或将RAM置于保留状态。
P通道握手-拒绝
在T3,DEVICE通过设置PDENY HIGH来拒绝该请求。PACCEPT必须保持低电平。接口状态为P_DENIED。
在T4,电源控制器采样PDENY HIGH并设置PREQ LOW并返回PSTATE到当前状态的值,即状态A。协议要求PSTATE是稳定的,并且当在设备上检测到PREQ变低时为原始状态的值。接口状态为P_CONTINUE。
在T5,该器件采样PREQ LOW并设置PDENY LOW。一旦电源控制器采样PDENY LOW,它就可以采取任何必要的转换后措施,且在拒绝的情况下,这通常需要反转T1和T2之间采取的任何转换前操作。
设备重置和初始化
复位时,器件必须同时设置PACCEPT和PDENY LOW。PACTIVE可被复位为低电平或高电平。
器件必须指定一个初始化周期,即在保证捕获PSTATE值用于所有可能的复位状态之前,复位解除置位所需的器件时钟周期数。PSTATE必须在这段时间内保持稳定。
复位释放时,PREQ为LOW;在请求转换到新状态之前,控制器需等Tinit到期;
复位取消置位之前,控制器置位PREQ HIGH,然后等待P-Channel转换完成,然后再请求转换到新状态。对于主动托管的接口,ARM建议首选的是PREQ LOW行为。
在复位撤销时或Tinit期间对PREQ HIGH进行采样时,只有完成P-Channel转换器件才能接受另一个P-Channel请求时。设备必须接受在重置退出或Tinit期间提出的任何请求。
多电源域转换
在T0,接口处于P_STABLE状态。
在T1和T4之间,接口从状态A转换到状态B,返回T4的P_STABLE状态。
在T5和T8之间,接口从状态B转换到状态C,而不必首先返回状态A
握手状态
握手规则
只有在PACCEPT和PDENY都为低电平时,PREQ才能从低电平转换到高电平(P-STABLE)
仅当下列任一情况下,PREQ才能从高电平转换至低电平:
—PACCEPT为High,PDENY为Low。(P-ACCEPT)
—PACCEPT为LOW,PDENY为HIGH。(P-DENIED)
PSTATE只能在以下情况之一转换:
—PREQ、PACCEPT和PDENY都为低。(P-STABLE)
—PREQ和PDENY均为HIGH,PACCEPT为LOW。(P-DENIED)
当PREQ为HIGH且PDENY为LOW时,Paccept只能从LOW变为HIGH。(P-REQUEST)
只有当PREQ为LOW且PDENY为LOW时(P-COMPLETE),Paccept才能从HIGH转换为LOW。
Pdeny只能在PREQ为HIGH且PACCEPT为LOW的情况下从LOW转换到HIGH。(P-REQUEST)
当PREQ为LOW且PACCEPT为LOW时,PDENY才能从高电平转换为低电平。(P-CONTINUE)
PACTIVE操作/控制器策略
PACTIVE配置针对器件所支持的每个电源状态,PACTIVE位为高表示器件处理操作所需的最小功耗状态。
如果电源控制器处于比对应于PACTIVE最高有效位为高的较低的状态,则控制器请求转换到该状态或任何可支持的更高状态是可以允许操作进行的
器件可能不会使用所有PACTIVE位显式请求相应状态。
P-Channel实现
使用前在目的地重新同步所有信号,但PSTATE除外
寄存PSTATE输出以确保其不会发生毛刺。
为确保四相握手的操作,请寄存所有的PREQ、PACCEPT和PDENY输出。
PACTIVE信号的每个位由一个寄存器直接驱动,或者由多个寄存器(其贡献在逻辑上合并)驱动。ARM强烈建议将此组合逻辑限制在逻辑OR(在可能的情况下),并使用实例化的门来实现。
在实施其他逻辑时,必须仔细考虑PACTIVE源寄存器变化对PACTIVE输出位的影响。尽管握手协议可以保证无论PACTIVE行为在功能上的正确性,但ARM建议实施最简单的可能逻辑,以最大程度地减少PACTIVE输出引入毛刺的可能性。
PSTATE采样
复位取消时必须capture PSTATE。因此,此时设备必须具有一种用于capture PSTATE的机制。
当器件采样到PREQ HIGH时,必须采样PSTATE。这可以通过将PREQ重新同步到器件时钟域并将其用作capture PSTATE的选通脉冲来实现
当请求被拒绝时,可以capture PSTATE。当器件在PDENY高电平采样到PREQ LOW时,可以capture PSTATE值。
实现者可以对PSTATE信号施加最大延迟时序约束,以确保其在PREQ同步之前达到捕捉寄存器
如果在PSTATE上需要额外的时间裕量,则在控制器上在设置所需的PSTATE值和将PREQ 拉高之间添加一个时钟周期。
Q通道应用示例
当功能块f(x)处于非活动状态、CLK处于非活动状态以及Q_STOPPED的时钟控制接口时,仍可能发生电源状态转换请求PREQ。但是CLK必须处于活动状态,以执行电源状态转换之前所需的器件管理操作,并以PACCEPT或PDENY响应电源控制接口
所以需确保一旦P-Channel接口转换到器件可以关断的状态,时钟控制Q-Channel接口就会接受而不是拒绝任何关断请求,覆盖通常会导致拒绝响应的其他条件。
将来自单个时钟域内多个设备的Q-Channel接口组合为一个控制器的所有权具有以下潜在优势:
• 从时钟控制器到多个同步设备的单个时钟插入路径简化了物理实现,降低了功耗。
• 当设备之间存在分层关系时,例如在流量方面,可以减轻第一设备的下游设备的握手延迟开销。
来自每个设备的Q-Channel接口可以在控制器处合并,或者在中间功能块处组合为单个接口,然后提供给控制器。
在所有情况下,解决方案必须保留每个设备与控制器或组合功能块之间的专用且独立的握手接口。这一点很重要,因为它可以确保在共享时钟的设备之间存在相互依赖关系的情况下避免性能限制或潜在的死锁场景。
在本例中,两个功能块仅通过简单的时钟使能条件内部合并来独立管理器件。此解决方案可以通过实施设备接口模块之间的内部策略来提高性能(例如通过减少顺序握手开销,或者通过添加控制序列依赖性)来增强.
仅QACTIVE接口的应用
仅具有QACTIVE的设备的一个应用与支持握手信号的另一个设备的QACTIVE组合,以形成到控制器的接口。
当设备1向设备2发送事务时,除非CLKB处于活动状态,否则无法从网桥的A侧前进到B侧。为了提供初始唤醒功能,信号从电桥的A侧通过电桥的B侧路由,以提供来自电桥的QACTIVE输出。每当电桥的A侧有用于电桥的B侧的待处理事务时,该信号被驱动为高电平。
然后,电桥的QACTIVE输出与器件2的QACTIVE输出在时钟控制器处合并。然后,时钟控制器启动与设备2的握手并激活CLKB。激活CLKB后,设备2可以管理与控制器的握手,还可以负责跟踪交易及其自己的QACTIVE输出的活动。
P通道应用举例
设备0完全位于一个电源域中,而设备1包含两个电源域。每个电源域有一个P-Channel接口,在所有情况下,P-Channel控制逻辑都包含在该电源域中。
在这种配置中,每个电源域只能在状态之间转换,并具有相应的P-Channel响应,如果当时该域中的逻辑功能可用。这样的装置不能使用PACTIVE从没有可操作逻辑的状态产生唤醒信号。在该状态下,系统负责唤醒信号。
而且,在没有可操作逻辑的电源状态之间的转换需要从可操作状态到可操作状态的中间转换,并且不能在连续的低电源状态之间进行单次转换。由于至少需要某些逻辑功能来响应P-Channel请求,因此此安排无法支持仅为RAM的电源域。
如上图,电源域0是父域,与子电源域、电源域1和电源域2具有第一个启动、最后关闭关系。所有P通道接口逻辑和控制逻辑位于Power Domain0内。
在这种情况下,设备可以包括父域检测和使用代表辅助电源域的PACTIVE的唤醒条件的信号,以导致转换到更高的状态。例如,这可以对可能在系统级别复杂或不可能实现的次电源域实现电源状态控制。
辅助电源域还可以在任一状态下在接口上没有任何可操作逻辑的状态之间转换。此示例可支持在各级非工作电源状态之间提高状态管理灵活性,以及使用具有缺失逻辑功能的域(例如,仅RAM的电源域)。
PACTIVE用法示例
PACTIVE【0】表示“关闭”状态。器件可以省略它,因为当所有其他位均为低电平时,这是一个隐含的最低状态要求。如果作为输入支持,则必须在控制器处拉低。
如果PACTIVE【2】为“高”,则设备请求启用状态。
如果PACTIVE【2】在接通状态下变为低电平,但PACTIVE【1】为高电平,则器件请求RETENTION状态为最低状态。控制器可以根据其配置选择保持ON状态或请求转换到RETENTION状态。
如果没有PACTIVE位为高,则器件可以处于任何状态,但这表明器件可能接受进入“关闭”状态的请求。
如果设备仅驱动PACTIVE【2】,则当处于低电平时,控制器可能会请求ON、RETENTION或OFF的任何状态。这可以被自定义,例如电源控制器策略的软件配置来定义。
Q通道向下兼容
Q通道控制器与AXI LP器件的连接无拒绝支持
Q通道器件与AXI型LPI控制器的连接,二者均不提供拒绝支持
对于支持采用拒绝机制的AXI低功耗接口的器件,解决方案仅限于所有接口信号局限于单个同步时钟域的情况。在这些限制内,一个简单的适配器元件,为了产生Q-Channel确认信号,可以实现如图5-3所示。该器件具有时序要求,可确保控制器侧实现正确的无故障握手。
Q通道控制器支持同步拒绝的AXI LPI器件自适应
AXI低功耗握手时序(拒绝)