天天看點

ARM PMU低功耗之 Q_Channel

一、Q-Channel

Q-Channel是從AXI的低功耗接口中,演變過來。但是可以向後相容。

1、接口

以下是Q-Channel的接口:

ARM PMU低功耗之 Q_Channel

分為device端和power controller端(下文均簡稱為PMU)。device端,就是需要被電源控制的元件,比如core,外設等。PMU端,就是提供電源管理的元件。

在Q-Channel中,将device的power狀态,分成了2種,

  • operational狀态: device處于工作狀态,簡單了解為上電狀态,下文稱為上電狀态
  • quiescent狀态:device處于停止狀态,簡單了解為斷電狀态,下文稱為斷電狀态

接口如下:

信号 說明
QACTIVE

提供給device,向PMU發送power請求,更改自己的power狀态

為高,表示device需要PMU将自己置為上電狀态

為低,表示device需要PMU将自己置為斷點狀态

QREQn

power controller發送power請求信号

為高,表示上電

為低,表示斷電

QACCEPTn 為高,表示device接受外部power請求
QDENY 為高,表示device拒絕外部power請求

2、Q-Channel接口的握手狀态

ARM對Q-Channel的interface,定義了幾種握手狀态:

  • Q_RUN:            device處于上電狀态。
  • Q_REQUEST:  device處于上電狀态,但是在idle狀态時,可以接收power request,進入斷電狀态。
  • Q_STOPPED:  device進入了斷電狀态。
  • Q_EXIT:   等待被提供時鐘或者power的狀态。當device得到外部提供的時鐘或者power時,将QACCEPTn拉高,進入Q_RUN狀态。
  • Q_DENIED:      device拒絕外部power的請求,不進入斷電狀态,而保持上電狀态。
  • Q_CONTINUE: PMU在Q_DENIED狀态後,将QREQn拉高後的狀态。

    以下是編碼:

ARM PMU低功耗之 Q_Channel

下圖是各個握手狀态的切換:

ARM PMU低功耗之 Q_Channel

對于握手信号,有以下的規則:

  • QREQn隻能在QACCEPTn為高并且QDENY為低時,才可以從高變為低。
  • QREQn滿足以下條件,才可以從低變為高
  • QACCEPTn和QDENY都為低
  • QACCEPTn和QDENY都為高
  • QACCEPTn隻能在QREQn和QDENY都為低情況下,才可以從高變為低
  • QACCEPTn隻能在QREQn和QDENY都為高情況下,才可以從低變為高
  • QDENY隻能在QREQn和QACCEPTn都為高情況下,才可以從高變為低
  • QDENY隻能在QREQn為低并且QACCEPTn為高情況下,才可以從低變為高

上面的這些原則,在設計P-Channel時,需要遵守的。

3、P_Channel的握手協定

3.1、device接受PMU的power請求

以下是握手協定時序圖:

ARM PMU低功耗之 Q_Channel

在T1,QREQn和QACCEPTn為高,Q_Channel進入Q_RUN狀态。

在T2,QREQn為低,PMU請求device進入斷電狀态,然後等待外設響應,此時Q_Channel進入Q_REQUEST狀态。

在T3,QACCEPTn為低,表示device接收PMU的請求,将自己進入斷電狀态。此時Q_Channel進入Q_STOPPED狀态。

在T4,QREQn為高,PMU請求device進入上電狀态,然後等待外設響應。此時Q_Channel進入Q_EXIT狀态。

在T5,QACCEPTn為高,表示device接收PMU的請求,将自己進入上電狀态。此時Q_Channel進入Q_RUN狀态。

3.2、device拒絕PMU的power請求

當外部PMU給device發送power請求,device可以拒絕該power請求。PMU收到device的拒絕響應後,應取消該power請求。

ARM PMU低功耗之 Q_Channel

在T1,QREQn和QACCEPTn為高,Q_Channel進入Q_RUN狀态。

在T2,QREQn為低,PMU請求device進入斷電狀态,然後等待外設響應,此時Q_Channel進入Q_REQUEST狀态。

在T3,QDENY為高,表示device拒絕PMU的請求,自己保持上電狀态。此時Q_Channel進入Q_DENIED狀态。

在T4,PMU接收到device的拒絕響應,将QREQn拉高,PMU請求device進入上電狀态,然後等待外設響應。此時Q_Channel進入Q_CONTINUE狀态。

在T5,QDENY為低,表示device接收PMU的上電請求,将自己保持上電狀态。此時Q_Channel進入Q_RUN狀态。

4、device複位信号與Q_Channel的結合

複位信号,需要和Q_Channel的信号,進行組合。一般來說,複位信号,也會由PMU來控制。

組合分為以下2種情況。

4.1、RESETn複位無效時,QREQn為低

ARM PMU低功耗之 Q_Channel

    T2時刻,RESETn為高,複位取消。

T3時刻,QREQn為高,PMU向device請求上電。Q_Channel進入Q_EXIT狀态。

T4時刻,QACCEPTn為高,device接受PMU的上電請求。Q_Channel進入Q_RUN狀态。

T5時刻,QREQn為低,PMU向device請求斷電,Q_Channel進入Q_REQUEST狀态。T6時刻,QACCEPTn為低,device接受PMU的斷電請求。Q_Channel進入Q_STOPPED。

T7時刻,将RESETn拉低。

4.2、RESETn複位有效時,QREQn為高

ARM PMU低功耗之 Q_Channel

T2時刻,QREQn拉高,PMU向device請求上電。Q_Channel進入Q_EXIT狀态。

T3時刻,因為RESETn為低,複位有效,device将QACCEPTn保持為低,Q_Channel保持Q_EXIT狀态。

T4時刻,因為RESETn為高,複位無效。device将QACCEPTn拉低,響應PMU的上電請求。Q_Channel進入Q_RUN狀态。

T5時刻,QREQn拉低,PMU向device請求斷電,Q_Channel進入Q_REQUEST狀态。

T6時刻,device将QACCEPTn拉低,響應PMU的斷電請求。Q_Channel進入Q_STOPPED狀态。

T7時刻,RESETn拉低。

5、QACTIVE

QACTIVE,是提供給device,給PMU發送power請求的信号。可以由多個來源的組合。如果為高,那麼PMU要給自己上電,并且之後,不能給自己斷電。

QACTIVE和握手信号(QREQn,QACCEPTn,QDENY)是獨立開的。

5.1、請求上電和請求下電

ARM PMU低功耗之 Q_Channel

T1時刻,device将QACTIVE拉高,向PMU發起退出斷電請求。T2時刻,PMU将QREQn拉高,Q_Channel進入Q_EXIT狀态,T3時刻,進入Q_RUN狀态。

    T4時刻,device将QACTIVE拉低,device向PMU發起進入斷電請求。T5時刻,PMU将QREQn拉低,Q_Channel進入Q_REQUEST狀态,在T6時刻,進入Q_STOPPED狀态。

5.2、PMU不允許斷電

ARM PMU低功耗之 Q_Channel

T1時刻,device将QACTIVE拉高,向PMU發起上電請求。T2時刻,PMU将QREQn拉高,Q_Channel進入Q_EXIT狀态,T3時刻,進入Q_RUN狀态。之後,device處于上電狀态。

T4時刻,PMU将QREQn拉低,PMU想讓device進入斷電狀态,但是QACTIVE為高,表示device要一直處于上電狀态。是以QACCEPTn持續保持高,Q_Channel一直維持在Q_REQUEST狀态。device維持在上電狀态。

T5時刻,因為之前QACTIVE拉低,device想進入斷電狀态,device将QACCEPTn拉低,響應PMU的斷電請求,然後Q_Channel進入Q_STOPPED狀态。device進入斷點狀态。

6、Q_Channel的實作

一般來說,device和PMU的時鐘是異步時鐘。是以,需要一些同步化。

下圖是同步化的框圖:

ARM PMU低功耗之 Q_Channel

ARM提供了以下的一些實作指導:

  • 被使用的所有信号,都需要進行同步化
  • 隻有當Q_Channel進入Q_STOPPED狀态是,才可以将時鐘和power給關掉
  • 為了保證握手信号的正确性,QREQn,QACCEPTn,QDENY需要使用寄存器直接輸出
  • QACTIVE使用寄存器直接輸出,或者是相關寄存器輸出的組合輸出。ARM強烈建議組合輸出,使用或門。

7、Q_Channel的向後相容

Q_Channel是從AXI的低功耗結構,演化過來。但是Q_Channel也可以相容AXI的低功耗接口。

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

ARM PMU低功耗之 Q_Channel

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