ARM系列-P Channel介绍

arm定义了两个低功耗接口(low power interface),用于低功耗控制握手,分别是q-channel和p-channel。其中的q-channel在以前讲过,q-channel相对p-channel而言简单一些,只是控制开/关两种状态,这在控制时钟的握手时没有任何问题,但是在控制电源的握手时就有点不够用了。
对于一个复杂的设计,仅仅用开/关两种状态描述是不完备的,需要引入更多的电源状态,比如memory retention(一种低功耗技术,为存储单元提供一个较低供电电压,以保留存储阵列的数据,但是存储单元不接受外部的数据访问)。
p-channel提出了一个概念,叫电源状态转换(power state transition)。在p-channel的应用场景中,电源的状态有很多,这个是可以是自己定义的。电源的各个状态之间是可以切换的。
p-channel的接口并不复杂:
n-bit的pactive,由设备端驱动,每个比特位可能由多个源信号组成;m-bit的pstate,由控制器端驱动,表示请求转换到的电源状态;preq,由控制器端驱动,高电平表示请求转换到电源状态(电源状态由pstate定义);paccept,由设备端驱动,高电平表示设备接受制器发出的电源状态转换请求;pdeny,由设备端驱动,高电平表示设备拒绝控制器发出的电源状态转换请求;
其中n和m的值取决于具体的设计需要,p-channel规范并没有强制要求。
preq、paccept和pdeny构成一个握手接口(pactive不在握手之中),用于管理和保证安全状态转换。p-channel要求在一次握手转换中,paccept或pdeny中只有一个发生变化。也就是说,paccept和pdeny在握手中,只能有一个为高。
来自设备的paccept和pdeny信号,以及来自控制器的preq和pstate信号都必须由寄存器直接驱动。拒绝机制的目的是使设备能够保持其当前状态,同时通过该机制可以迅速完成握手。
握手信号状态与pactive位无关。pactive位上的转换不受preq、paccept和pdeny上的值的限制。
握手规则如下:
当paccept和pdeny都为低电平时,preq才能从低电平转换为高电平。preq只能在以下情况下,可以从高电平到低电平转换:
-paccept为高,pdeny为低。
-paccept为低,pdeny为高。pstate只能在以下情况下转换:
-preq、paccept和pdeny都为低电平(控制器在发起请求前,提前改变pstate)。
-preq和pdeny为高电平,paccept为低电平(设备拒绝请求,控制器需要将pstate返回请求前的值)。仅当preq高电平且pdeny低电平时,paccept才可以从低转换到高。仅当preq低电平且pdeny低电平时,paccept才可以从高转换到低。仅当preq高电平且paccept低电平时,pdeny才可以从低转换到高。仅当preq低电平且paccept低电平时,pdeny才可以从高转换为低。下图是控制器发出从a状态到b状态转换请求,设备接受请求的握手流程:
t0时刻,接口空闲,所有握手信号均为低电平。接口状态为p_stable,设备保持当前状态。t1时刻,控制器想要发出请求,并且需要提前做一些准备工作。接口状态仍为p_stable。t2时刻,控制器设置pstate为目标状态b,同时将preq信号变为高电平,接口状态变为p_request。协议要求在设备检测到preq时,pstate是稳定的。t3时刻,设备通过将paccept驱动成高电平来表示接受转换,同时pdeny必须保持低电平(paccept和pdeny在握手中,只能有一个为高)。接口状态现在是p_accept。t4时刻,控制器端对paccept高电平进行采样,并将preq设置为低电平,表示本次请求结束。接口状态为p_complete。t5时刻,设备端监测到preq变为低电平,将paccept驱动为低电平。此时,一旦控制器检测到paccept为低电平,它就可以采取所需的任何转换后操作(比如控制电源开关)。本次握手全部完成,接口状态回到p_stable。下图是控制器发出从a状态到b状态转换请求,设备拒绝请求的握手流程:
t0,t1,t2时刻的握手顺序跟接受请求的流程一样。t3时刻,设备端拒绝此次控制器发出的电源状态转换请求,驱动pdeny信号为高电平,同时必须保持paccept信号为低电平。接口状态为p_denied。t4时刻,控制请检测到pdeny信号为高电平,知道设备拒绝了本次请求。控制器端驱动preq信号为低电平,表示结束本次请求,同时恢复pstate信号为初始的a状态。接口状态为p_continue。t5时刻,设备端发现preq变成低电平,需要将pdeny信号驱动成低电平。一旦控制器发现pdeny变成低电平,它就可以采取所需的任何转换后操作。本次握手流程全部完成,接口状态恢复为p_stable。对于设备端,在复位时,必须将paccept和pdeny置为低电平,但对pactive没有要求。如果设备必须进入特定电源状态才能进行启动操作,则需要在设备复位时将pactive位置为高位。如果不存在此类要求,arm建议在设备复位时将所有pactive置为低电平。
p-channel的状态为p_stable时,设备的复位信号才可以设置为有效。
当设备的的复位被释放后,设备要进入初始化,此时控制器要设置pstate信号值,设备会采样该信号值,从而完成正确的初始化流程。pstate要在复位信号无效后要保持稳定。
设备要提供一个初始化时间(tinit),用来表示,复位之后,在所有可能的复位状态下保证捕获pstate值之前所需的设备时钟周期数。pstate在这段时间内必须保持稳定。
以下是复位后,控制器等待tinit时间后,控制器再发起请求的握手流程。
下图展示了控制器在复位解除前将preq置为高电平,然后等待p-channel转换完成后,再发出进一步请求的情况。
下图展示了控制器在复位解除后,使用相同的pstate值,并将preq设置为高的情况。
下图展示了多状态转换的握手,从状态a转换到状态b,然后再转换到状态c。
p-channel的握手状态和状态转换图如下:
设备用pactive向电源控制器提出要求,每个位代表不同的要求。pactive位为高电平表示设备向控制器提出需求。如果pactive为低电平,表示设备不再需要该需求。p-channel握手独立于pactive,控制器可以不考虑pactive而做出任何决策。但是,该设备可以拒绝任何不适当的请求。换句话说,pactive是独立于握手协议的,pactive可以是自定义实现的。
下图展示了控制器根据设备的pactive发出电源转换请求的案例。本例子中:
pactive[2]: state cpactive[1]: state bpactive[0]: state a
为了控制器的正确设计,设备端必须提供足够的信息,包括:
所有设备支持的电源状态,包括:pstate定义和编码;pactive每个比特位的分配;用于初始化状态,推荐的pactive值;不再使用的pactive位。设备支持的电源状态转换,比如,如果控制器发起转换请求,设备采取的任何操作;哪些设备电源状态转换可以被有条件地拒绝。复位释放后,用于初始化设备的pstate值设备初始化时间tinitp-channel规范中,给出了一个例子。本例中,有两个设备,三个电源域。device 0位于power domain0,电源控制器使用pd0来控制。device 1位于power domain1和power domain2,电源控制器使用pd1和pd2来分别控制。此例中,三个电源域是独立的。
如果电源域不是彼此独立的,而是由嵌套关系,如下图所示。device1内部有3个电源域,分别为power domain 0,power domain 1,power domain 2,但是domain 0是domain 1和domain 2的父域,domain 1和domain 2是子域,也就是domain 0控制domain 1和domain 2。
电源控制器和device 1有3个p-channel接口,但是都是在power domain 0中。这种情况下,电源控制与power domain 0的握手需要考虑子域的电源状态。

超声传感器工作原理与优势
驻极话筒高倍高灵敏前置放大器
怎样避免买到劣质电线电缆,我们该如何去辨别
深入云计算 揭秘七大未解之谜
IO端口与IO内存区别详解
ARM系列-P Channel介绍
CPE让更多设备入网,享受5G带来的极速网络体验
区块链能为3D打印技术提供安全性
议论纷纷的面部识别隐私问题
购车补贴延续到年底将是大概率事件 从而实现汽车健康有序发展
基于NE555P芯片的555多谐振荡器的LED闪烁电路
新手学电子万能试验机,故障维修无烦恼!
将来或采用无人机运血 运送的血液无影响
贴片机安全监控系统
刀片/CTP集成技术渐成趋势
vivoX9s、vivoX9splus发布会直播倒计时:vivo X9s即将上市,vivoX9降至历史最低价,等新还是买旧?
微软Build大会上官宣的新款Windows Terminal
地平线×理想,多模交互赋予汽车生命和智慧
RFID射频识别技术助力企业智能化管理物流!
比亚迪位列马来西亚电动汽车销量第一名