AMBA低功耗接口(一)Q_Channel
AMBA提供了低功耗的接口,用于實現(xiàn)power控制功能。目前,AMBA里面包含2種低功耗接口。
?Q-Channel:實現(xiàn)簡單的power控制,如上電,下電。
?P-Channel:實現(xiàn)復(fù)雜的power控制,如全上電,半上電,1/4上電等。
ARM引入這2種低功耗接口,是為了滿足不同的應(yīng)用場景下,對power的控制。
在一些場景下,組件只有兩種power狀態(tài),分別為power-up,power-down。因此對這種組件的power控制,只需要對其上電,斷電即可。用Q-Channel,即可實現(xiàn)。
而在另外的場景下,組件擁有多種power狀態(tài),比如全上電,半上電,1/4上電等。因此對這種組件的power控制,就要復(fù)雜很多,不能簡單的對其上電,斷電即可,還需要額外的一些控制。此時,用Q-Channel,就不合適了,需要使用P-Channel。
比如在DynamlQ技術(shù)中,引入了L3 cache,并且每個core擁有自己的L1 cache,L2 cache,這樣,整個系統(tǒng)中,cache的容量就變大了,相應(yīng)的,消耗在cache上的功耗,也增多了。此時,就需要復(fù)雜的對cache的power控制,來實現(xiàn)低功耗,比如對L3 cache,1/4上電,也就是只有1/4的L3 cache工作,其余的都斷電,以此來節(jié)省功耗。此時,就要用到P-Channel。
識別二維碼添加老師
領(lǐng)取IC學習資料


一、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處于停止狀態(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)時,可以接收power request,進入斷電狀態(tài)。
?Q_STOPPED:device進入了斷電狀態(tài)。
?Q_EXIT:等待被提供時鐘或者power的狀態(tài)。當device得到外部提供的時鐘或者power時,將QACCEPTn拉高,進入Q_RUN狀態(tài)。
?Q_DENIED: device拒絕外部power的請求,不進入斷電狀態(tài),而保持上電狀態(tài)。
?Q_CONTINUE:PMU在Q_DENIED狀態(tài)后,將QREQn拉高后的狀態(tài)。
以下是編碼:

下圖是各個握手狀態(tài)的切換:

對于握手信號,有以下的規(guī)則:
?QREQn只能在QACCEPTn為高并且QDENY為低時,才可以從高變?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è)計P-Channel時,需要遵守的。
3、P_Channel的握手協(xié)議
3.1、device接受PMU的power請求
以下是握手協(xié)議時序圖:

在T1,QREQn和QACCEPTn為高,Q_Channel進入Q_RUN狀態(tài)。
在T2,QREQn為低,PMU請求device進入斷電狀態(tài),然后等待外設(shè)響應(yīng),此時Q_Channel進入Q_REQUEST狀態(tài)。
在T3,QACCEPTn為低,表示device接收PMU的請求,將自己進入斷電狀態(tài)。此時Q_Channel進入Q_STOPPED狀態(tài)。
在T4,QREQn為高,PMU請求device進入上電狀態(tài),然后等待外設(shè)響應(yīng)。此時Q_Channel進入Q_EXIT狀態(tài)。
在T5,QACCEPTn為高,表示device接收PMU的請求,將自己進入上電狀態(tài)。此時Q_Channel進入Q_RUN狀態(tài)。
3.2、device拒絕PMU的power請求
當外部PMU給device發(fā)送power請求,device可以拒絕該power請求。PMU收到device的拒絕響應(yīng)后,應(yīng)取消該power請求。

在T1,QREQn和QACCEPTn為高,Q_Channel進入Q_RUN狀態(tài)。
在T2,QREQn為低,PMU請求device進入斷電狀態(tài),然后等待外設(shè)響應(yīng),此時Q_Channel進入Q_REQUEST狀態(tài)。
在T3,QDENY為高,表示device拒絕PMU的請求,自己保持上電狀態(tài)。此時Q_Channel進入Q_DENIED狀態(tài)。
在T4,PMU接收到device的拒絕響應(yīng),將QREQn拉高,PMU請求device進入上電狀態(tài),然后等待外設(shè)響應(yīng)。此時Q_Channel進入Q_CONTINUE狀態(tài)。
在T5,QDENY為低,表示device接收PMU的上電請求,將自己保持上電狀態(tài)。此時Q_Channel進入Q_RUN狀態(tài)。
4、device復(fù)位信號與Q_Channel的結(jié)合
復(fù)位信號,需要和Q_Channel的信號,進行組合。一般來說,復(fù)位信號,也會由PMU來控制。
組合分為以下2種情況。
4.1、RESETn復(fù)位無效時,QREQn為低

T2時刻,RESETn為高,復(fù)位取消。
T3時刻,QREQn為高,PMU向device請求上電。Q_Channel進入Q_EXIT狀態(tài)。
T4時刻,QACCEPTn為高,device接受PMU的上電請求。Q_Channel進入Q_RUN狀態(tài)。
T5時刻,QREQn為低,PMU向device請求斷電,Q_Channel進入Q_REQUEST狀態(tài)。T6時刻,QACCEPTn為低,device接受PMU的斷電請求。Q_Channel進入Q_STOPPED。
T7時刻,將RESETn拉低。
4.2、RESETn復(fù)位有效時,QREQn為高

T2時刻,QREQn拉高,PMU向device請求上電。Q_Channel進入Q_EXIT狀態(tài)。
T3時刻,因為RESETn為低,復(fù)位有效,device將QACCEPTn保持為低,Q_Channel保持Q_EXIT狀態(tài)。
T4時刻,因為RESETn為高,復(fù)位無效。device將QACCEPTn拉低,響應(yīng)PMU的上電請求。Q_Channel進入Q_RUN狀態(tài)。
T5時刻,QREQn拉低,PMU向device請求斷電,Q_Channel進入Q_REQUEST狀態(tài)。
T6時刻,device將QACCEPTn拉低,響應(yīng)PMU的斷電請求。Q_Channel進入Q_STOPPED狀態(tài)。
T7時刻,RESETn拉低。
5、QACTIVE
QACTIVE,是提供給device,給PMU發(fā)送power請求的信號??梢杂啥鄠€來源的組合。如果為高,那么PMU要給自己上電,并且之后,不能給自己斷電。
QACTIVE和握手信號(QREQn,QACCEPTn,QDENY)是獨立開的。
5.1、請求上電和請求下電

T1時刻,device將QACTIVE拉高,向PMU發(fā)起退出斷電請求。T2時刻,PMU將QREQn拉高,Q_Channel進入Q_EXIT狀態(tài),T3時刻,進入Q_RUN狀態(tài)。
T4時刻,device將QACTIVE拉低,device向PMU發(fā)起進入斷電請求。T5時刻,PMU將QREQn拉低,Q_Channel進入Q_REQUEST狀態(tài),在T6時刻,進入Q_STOPPED狀態(tài)。
5.2、PMU不允許斷電

T1時刻,device將QACTIVE拉高,向PMU發(fā)起上電請求。T2時刻,PMU將QREQn拉高,Q_Channel進入Q_EXIT狀態(tài),T3時刻,進入Q_RUN狀態(tài)。之后,device處于上電狀態(tài)。
T4時刻,PMU將QREQn拉低,PMU想讓device進入斷電狀態(tài),但是QACTIVE為高,表示device要一直處于上電狀態(tài)。因此QACCEPTn持續(xù)保持高,Q_Channel一直維持在Q_REQUEST狀態(tài)。device維持在上電狀態(tài)。
T5時刻,因為之前QACTIVE拉低,device想進入斷電狀態(tài),device將QACCEPTn拉低,響應(yīng)PMU的斷電請求,然后Q_Channel進入Q_STOPPED狀態(tài)。device進入斷點狀態(tài)。
6、Q_Channel的實現(xiàn)
一般來說,device和PMU的時鐘是異步時鐘。因此,需要一些同步化。
下圖是同步化的框圖:

ARM提供了以下的一些實現(xiàn)指導:
?被使用的所有信號,都需要進行同步化
?只有當Q_Channel進入Q_STOPPED狀態(tài)是,才可以將時鐘和power給關(guān)掉
?為了保證握手信號的正確性,QREQn,QACCEPTn,QDENY需要使用寄存器直接輸出
?QACTIVE使用寄存器直接輸出,或者是相關(guān)寄存器輸出的組合輸出。ARM強烈建議組合輸出,使用或門。
7、Q_Channel的向后兼容
Q_Channel是從AXI的低功耗結(jié)構(gòu),演化過來。但是Q_Channel也可以兼容AXI的低功耗接口。
如下圖,device使用AXI的低功耗接口,PMU使用Q_Channel。只需要按照如下的連接進行連接即可。

如下圖,device使用Q_Channel,PMU使用AXI的低功耗接口,只需要按照如下的連接進行連接即可。

文章來源于:盧jun