本文選自極術(shù)專欄Arm AMBA 協(xié)議集的文章。文章將介紹Q-Channel的知識。
AMBA提供了,低功耗的接口。用于實(shí)現(xiàn)power控制功能。目前,AMBA里面,包含2種低功耗接口。
?Q-Channel:實(shí)現(xiàn)簡單的power控制,如上電,下電。
?P-Channel:實(shí)現(xiàn)復(fù)雜的power控制,如全上電,半上電,1/4上電等。
ARM引入這2種低功耗接口,是為了滿足不同的應(yīng)用場景下,對power的控制。
在一些場景下,組件只有兩種power狀態(tài),分別為power-up,power-down。因此對這種組件的power控制,只需要對其上電,斷電即可。用Q-Channel,即可實(shí)現(xiàn)。
而在另外的場景下,組件擁有多種power狀態(tài),比如全上電,半上電,1/4上電等。因此對這種組件的power控制,就要復(fù)雜很多,不能簡單的對其上電,斷電即可,還需要額外的一些控制。此時(shí),用Q-Channel,就不合適了,需要使用P-Channel。
比如在DynamlQ技術(shù)中,引入了L3 cache,并且每個(gè)core擁有自己的L1 cache,L2 cache,這樣,整個(gè)系統(tǒng)中,cache的容量就變大了,相應(yīng)的,消耗在cache上的功耗,也增多了。此時(shí),就需要復(fù)雜的對cache的power控制,來實(shí)現(xiàn)低功耗,比如對L3 cache,1/4上電,也就是只有1/4的L3 cache工作,其余的都斷電,以此來節(jié)省功耗。此時(shí),就要用到P-Channel。
訪問時(shí)返回其值。
一、 Q-Channel
Q-Channel是從AXI的低功耗接口中,演變過來。但是可以向后兼容。
1、接口
以下是Q-Channel的接口:
分為device端和power controller端(下文均簡稱為PMU)。device端,就是需要被電源控制的組件,比如core,外設(shè)等。PMU端,就是提供電源管理的組件。
在Q-Channel中,將device的power狀態(tài),分成了2種,
?operational狀態(tài):device處于工作狀態(tài),簡單理解為上電狀態(tài),下文稱為上電狀態(tài)
?quiescent狀態(tài):device處于停止?fàn)顟B(tài),簡單理解為斷電狀態(tài),下文稱為斷電狀態(tài)
接口如下:
2、Q-Channel接口的握手狀態(tài)
ARM對Q-Channel的interface,定義了幾種握手狀態(tài):
?Q_RUN: device處于上電狀態(tài)。
?Q_REQUEST:device處于上電狀態(tài),但是在idle狀態(tài)時(shí),可以接收power request,進(jìn)入斷電狀態(tài)。
?Q_STOPPED:device進(jìn)入了斷電狀態(tài)。
?Q_EXIT:等待被提供時(shí)鐘或者power的狀態(tài)。當(dāng)device得到外部提供的時(shí)鐘或者power時(shí),將QACCEPTn拉高,進(jìn)入Q_RUN狀態(tài)。
?Q_DENIED: device拒絕外部power的請求,不進(jìn)入斷電狀態(tài),而保持上電狀態(tài)。
?Q_CONTINUE:PMU在Q_DENIED狀態(tài)后,將QREQn拉高后的狀態(tài)。
對于握手信號,有以下的規(guī)則:
?QREQn只能在QACCEPTn為高并且QDENY為低時(shí),才可以從高變?yōu)榈汀?/p>
?QREQn滿足以下條件,才可以從低變?yōu)楦?/p>
?QACCEPTn和QDENY都為低
?QACCEPTn和QDENY都為高
?QACCEPTn只能在QREQn和QDENY都為低情況下,才可以從高變?yōu)榈?/p>
?QACCEPTn只能在QREQn和QDENY都為高情況下,才可以從低變?yōu)楦?/p>
?QDENY只能在QREQn和QACCEPTn都為高情況下,才可以從高變?yōu)榈?/p>
?QDENY只能在QREQn為低并且QACCEPTn為高情況下,才可以從低變?yōu)楦?/p>
上面的這些原則,在設(shè)計(jì)P-Channel時(shí),需要遵守的。
**3、P_Channel的握手協(xié)議 **
3.1、device接受PMU的power請求
以下是握手協(xié)議時(shí)序圖:
在T1,QREQn和QACCEPTn為高,Q_Channel進(jìn)入Q_RUN狀態(tài)。
在T2,QREQn為低,PMU請求device進(jìn)入斷電狀態(tài),然后等待外設(shè)響應(yīng),此時(shí)Q_Channel進(jìn)入Q_REQUEST狀態(tài)。
在T3,QACCEPTn為低,表示device接收PMU的請求,將自己進(jìn)入斷電狀態(tài)。此時(shí)Q_Channel進(jìn)入Q_STOPPED狀態(tài)。
在T4,QREQn為高,PMU請求device進(jìn)入上電狀態(tài),然后等待外設(shè)響應(yīng)。此時(shí)Q_Channel進(jìn)入Q_EXIT狀態(tài)。
在T5,QACCEPTn為高,表示device接收PMU的請求,將自己進(jìn)入上電狀態(tài)。此時(shí)Q_Channel進(jìn)入Q_RUN狀態(tài)。
3.2、device拒絕PMU的power請求
當(dāng)外部PMU給device發(fā)送power請求,device可以拒絕該power請求。PMU收到device的拒絕響應(yīng)后,應(yīng)取消該power請求。
在T1,QREQn和QACCEPTn為高,Q_Channel進(jìn)入Q_RUN狀態(tài)。
在T2,QREQn為低,PMU請求device進(jìn)入斷電狀態(tài),然后等待外設(shè)響應(yīng),此時(shí)Q_Channel進(jìn)入Q_REQUEST狀態(tài)。
在T3,QDENY為高,表示device拒絕PMU的請求,自己保持上電狀態(tài)。此時(shí)Q_Channel進(jìn)入Q_DENIED狀態(tài)。
在T4,PMU接收到device的拒絕響應(yīng),將QREQn拉高,PMU請求device進(jìn)入上電狀態(tài),然后等待外設(shè)響應(yīng)。此時(shí)Q_Channel進(jìn)入Q_CONTINUE狀態(tài)。
在T5,QDENY為低,表示device接收PMU的上電請求,將自己保持上電狀態(tài)。此時(shí)Q_Channel進(jìn)入Q_RUN狀態(tài)。
4、device復(fù)位信號與Q_Channel的結(jié)合
復(fù)位信號,需要和Q_Channel的信號,進(jìn)行組合。一般來說,復(fù)位信號,也會由PMU來控制。
組合分為以下2種情況。
** 4.1、RESETn復(fù)位無效時(shí),QREQn為低 **
T2時(shí)刻,RESETn為高,復(fù)位取消。
T3時(shí)刻,QREQn為高,PMU向device請求上電。Q_Channel進(jìn)入Q_EXIT狀態(tài)。
T4時(shí)刻,QACCEPTn為高,device接受PMU的上電請求。Q_Channel進(jìn)入Q_RUN狀態(tài)。
T5時(shí)刻,QREQn為低,PMU向device請求斷電,Q_Channel進(jìn)入Q_REQUEST狀態(tài)。T6時(shí)刻,QACCEPTn為低,device接受PMU的斷電請求。Q_Channel進(jìn)入Q_STOPPED。
T7時(shí)刻,將RESETn拉低。
**** 4.2、RESETn復(fù)位有效時(shí),QREQn為高 ****
T2時(shí)刻,QREQn拉高,PMU向device請求上電。Q_Channel進(jìn)入Q_EXIT狀態(tài)。
T3時(shí)刻,因?yàn)镽ESETn為低,復(fù)位有效,device將QACCEPTn保持為低,Q_Channel保持Q_EXIT狀態(tài)。
T4時(shí)刻,因?yàn)镽ESETn為高,復(fù)位無效。device將QACCEPTn拉低,響應(yīng)PMU的上電請求。Q_Channel進(jìn)入Q_RUN狀態(tài)。
T5時(shí)刻,QREQn拉低,PMU向device請求斷電,Q_Channel進(jìn)入Q_REQUEST狀態(tài)。
T6時(shí)刻,device將QACCEPTn拉低,響應(yīng)PMU的斷電請求。Q_Channel進(jìn)入Q_STOPPED狀態(tài)。
T7時(shí)刻,RESETn拉低。
5、QACTIVE
QACTIVE,是提供給device,給PMU發(fā)送power請求的信號。可以由多個(gè)來源的組合。如果為高,那么PMU要給自己上電,并且之后,不能給自己斷電。
QACTIVE和握手信號(QREQn,QACCEPTn,QDENY)是獨(dú)立開的。
5.1、請求上電和請求下電
T1時(shí)刻,device將QACTIVE拉高,向PMU發(fā)起退出斷電請求。T2時(shí)刻,PMU將QREQn拉高,Q_Channel進(jìn)入Q_EXIT狀態(tài),T3時(shí)刻,進(jìn)入Q_RUN狀態(tài)。
T4時(shí)刻,device將QACTIVE拉低,device向PMU發(fā)起進(jìn)入斷電請求。T5時(shí)刻,PMU將QREQn拉低,Q_Channel進(jìn)入Q_REQUEST狀態(tài),在T6時(shí)刻,進(jìn)入Q_STOPPED狀態(tài)。
5.2、PMU不允許斷電
T1時(shí)刻,device將QACTIVE拉高,向PMU發(fā)起上電請求。T2時(shí)刻,PMU將QREQn拉高,Q_Channel進(jìn)入Q_EXIT狀態(tài),T3時(shí)刻,進(jìn)入Q_RUN狀態(tài)。之后,device處于上電狀態(tài)。
T4時(shí)刻,PMU將QREQn拉低,PMU想讓device進(jìn)入斷電狀態(tài),但是QACTIVE為高,表示device要一直處于上電狀態(tài)。因此QACCEPTn持續(xù)保持高,Q_Channel一直維持在Q_REQUEST狀態(tài)。device維持在上電狀態(tài)。
T5時(shí)刻,因?yàn)橹癚ACTIVE拉低,device想進(jìn)入斷電狀態(tài),device將QACCEPTn拉低,響應(yīng)PMU的斷電請求,然后Q_Channel進(jìn)入Q_STOPPED狀態(tài)。device進(jìn)入斷點(diǎn)狀態(tài)。
6、Q_Channel的實(shí)現(xiàn)
一般來說,device和PMU的時(shí)鐘是異步時(shí)鐘。因此,需要一些同步化。
下圖是同步化的框圖:
ARM提供了以下的一些實(shí)現(xiàn)指導(dǎo):
?被使用的所有信號,都需要進(jìn)行同步化
?只有當(dāng)Q_Channel進(jìn)入Q_STOPPED狀態(tài)是,才可以將時(shí)鐘和power給關(guān)掉
?為了保證握手信號的正確性,QREQn,QACCEPTn,QDENY需要使用寄存器直接輸出
?QACTIVE使用寄存器直接輸出,或者是相關(guān)寄存器輸出的組合輸出。ARM強(qiáng)烈建議組合輸出,使用或門。
7、Q_Channel的向后兼容
Q_Channel是從AXI的低功耗結(jié)構(gòu),演化過來。但是Q_Channel也可以兼容AXI的低功耗接口。
如下圖,device使用AXI的低功耗接口,PMU使用Q_Channel。只需要按照如下的連接進(jìn)行連接即可。
如下圖,device使用Q_Channel,PMU使用AXI的低功耗接口,只需要按照如下的連接進(jìn)行連接即可。
-
接口
+關(guān)注
關(guān)注
33文章
8924瀏覽量
153153 -
Power
+關(guān)注
關(guān)注
1文章
502瀏覽量
68397 -
Channel
+關(guān)注
關(guān)注
0文章
31瀏覽量
12071 -
AMBA
+關(guān)注
關(guān)注
0文章
70瀏覽量
15315
發(fā)布評論請先 登錄
ARM總線協(xié)議AMBA中AHB、APB的區(qū)別與聯(lián)系
AMBA低功率接口規(guī)格參考手冊
AMBA靜態(tài)內(nèi)存接口數(shù)據(jù)表
AMBA測試接口驅(qū)動程序數(shù)據(jù)表
白皮書3:低功耗設(shè)計(jì)之 降低時(shí)鐘 vs MCU待機(jī)
基于PIC單片機(jī)的低功耗鍵盤接口設(shè)計(jì)
ARM體系的特點(diǎn)與ARM的技術(shù)的簡介及AMBA總線的分析

4-AMBA VIP 編程接口

AMBA總線知識之AHB(上)

AMBA AXI4接口協(xié)議概述

評論