2014年2月16日 星期日

如何規劃power management的流程


以前設計過power managementFSM。想把它總結出來,但是,每個chip的情形都不相同,要總結出它所有的規則是困難的。但我還是想把自己的經驗提供出來給大家參考,請大家多多指教! 如果有任何更好的方法或是觀念,歡迎留言給我,讓我也能學習到更好的方法。

我的想法裏,認為power management有一個大的觀念可以去思考,在此提出來。不見得每個都適用,主要還是要看你自己的系統真實的情形 。

Fist-In-Last-Out(FILO), 最先關的,最後醒。為什麼要這麼說,以下舉幾個例子來說明。

1. 降頻節省power : 
    如果你想降頻節省某一塊的power,你會怎麼做? 1). 降低頻率.  2). power domain由1.8V切換到1.3V。如果你想要恢復到原來的速度時,又應該怎麼做? 1). 1.3V切回到1.8V.   2). 恢復原來的頻率。 這不就是FILO嗎?很多地方幾乎都是用這個方法,這樣子做比較保守,但也相對的安全。FILO是個大規則,所有的行為都是按照這個原則下去規劃。

2. 不重要的比重要的先關: 
    在規劃power management時,不重要的永遠是第一個被關掉,這是因為如果發生錯誤時,也不會影響到整個系統。而醒過來時,則是按照FILO原則,重要的先醒,然後才是不重要的。(FILO規則)

3. 先關遠的,再關近的: 
    醒過來的順序則是相反,近的先醒,然後才是遠的。(還是FILO規則)

4. 四肢(interfacebus)先關,然後才是腦(CPU),醒過來時則是腦先醒、然後才是四肢。(FILO規則)

5. 有些人會把關powerreset一起處理。所以如果你確定要關power,那你就先reset,然後關power。醒來時,就先開power,然後再放開reset

以上的例子,都是用FILO的觀念去規劃省電的機制。FILO並不能適用在所有的架構下,找出會讓系統穩定的方法,並確保glitch free,您就是找到一個適合的方法。


以上的觀念,希望能對你有所幫助。

沒有留言:

張貼留言