8 Power Management Operation[譯自AHCI1.0]
CAP – HBA Capabilities
26 | RO | Impl. Spec | Supports Aggressive Link Power Management (SALP): 當設定為’1’時,當沒有命令被處理,HBA會支援自動引發連接需求變成局部(Partial)或睡眠(Slumber)狀態。當清除為’0’,當這個功能不被支援時,軟體將PxCMD.ALPE和PxCMD.ASP位元看成保留。參考8.3.1.3章節。 |
14 | RO | Impl. Spec | Slumber State Capable (SSC):指示是否 HBA有支援轉換成睡眠(Slumber)狀態。當清除為0,軟體不允許HBA去啟動轉換成睡眠(Slumber)狀態經由有效率的連接電源管理,也不允許PxCMD.ICC區域去啟動轉換成睡眠(Slumber)狀態在每個Port,還有PxSCTL.IPM區域在每個Port必須程式不允許裝置啟動睡眠(Slumber)需求。當設定為’1’,將能夠支援HBA與裝置啟動睡眠(Slumber)。 |
13 | RO | Impl. Spec | Partial State Capable (PSC): 指示是否 HBA有支援轉換成局部(Partial)狀態。當清除為0,軟體不允許HBA去啟動轉換成局部(Partial)狀態經由有效率的連接電源管理,也不允許PxCMD.ICC區域去啟動轉換成睡眠(Slumber)狀態在每個Port,還有PxSCTL.IPM區域在每個Port必須程式不允許裝置啟動局部(Partial)需求。當設定為’1’,將能夠支援HBA與裝置啟動局部(Partial)。 |
Offset 118h: PxCMD – Port x Command and Status
Bit | Type | Reset | Description | ||||||||||||||
31:28 | RW | 0h | Interface Communication Control (ICC): 這區域介面被用來控制電源管理狀態。如果連接層現在在L_IDLE狀態,寫入到這區域將造成HBA啟動一個介面電源轉換需求。如果連接層現在不在L_IDLE狀態,寫入到這個區域將沒有影響。
除了No-Op(0h),當系統軟體寫入一個非保留值其他的, HBA將執行動作(Action)和更新這區域後在回到Idle(空閒)0h。 如果軟體寫至此區域去改變這狀態到另一個狀態連接是以經存在了(換言之,介面是在行動(Action)狀態和一個需求引起到的行動(Action)狀態),HBA將得到不執行與回傳此區域為空閒(idle)。如果介面是在低電源狀態,以及軟體要轉換它到一個不同低電源狀態,軟體必須優先連接到運作期間與當啟動轉換到低電源狀態需求。 | ||||||||||||||
27 | RW/RO | 0 | Aggressive Slumber/Partial (ASP):當設定為’1’,與ALPE被設定,HBA將有效率的進入睡眠(Slumber)狀態,清除PXCI暫存器與清除PxSACT暫存器,或者是,清除PxSACT暫存器與清除PXCI暫存器。當清除為’0’,與ALPE被設定,HBA將有效率的進入局部(Partial)狀態,清除PXCI暫存器與清除PxSACT暫存器,或者是,清除PxSACT暫存器與清除PXCI暫存器。如果CAP.SALP被清為’0’,軟體只能將這bit視為保留。詳細請看8.3.1.3章節。 | ||||||||||||||
26 | RW/RO | 0 | Aggressive Link Power Management Enable (ALPE): 當設定為’1’,HBA將有效率的進入低連接電源狀態(Partial(局部)或Slumer(睡眠))依據上面ASP位元設定狀態。如果CAP.SALP被設為’1’,軟體只能將這bit設為1。如果CAP.SALP被清為’0’,軟體只能將這bit視為保留。詳細請看8.3.1.3章節。 |
Offset 128h: PxSSTS – Port x Serial ATA Status
11:08 | RO | 0 | Interface Power Management (IPM):指示目前介面狀態。 0h 裝置不存在或者是通信無法建立 1h 介面在行動狀態 2h 介面在部份電源管理狀態 6h 介面在睡眠電源管理狀態 所有其他值保留 |
Offset 12Ch: PxSCTL – Port x Serial ATA Control
11:08 | RW | 0h | Interface Power Management Transitions Allowed (IPM): 指示哪些電源狀態HBA允許被轉換。如果一個介面電源管理狀態被除能,HBA不允許去初始化狀態,以及必須來自裝置的任何請求進入那狀態。 0h 沒有介面限制 1h 關於部分狀態轉變被Disable 2h 關於睡眠狀態轉變被Disable 3h 關於部分與睡眠兩者狀態轉變被Disable 所有其他值保留 |
8.1 Introduction
這個部份包含HBA和Serial ATA介面電源管理。這份說明文件將不包含任何可能是Serial ATA device內部的電源管理,這介面將會是容易了解的。
8.2 Power State Mappings
這詳細的指明定義PCI device電源管理狀態,這將應用到HBA。
- D0 – 工作中(必要的)。
- D1 – Storage HBA沒有定義。
- D2 – Storage HBA沒有定義。
- D3 – 非常深的睡眠(必要的)。這狀態分別進入兩個子狀態,(會對PCI表面配置存取有反應)與(不會對PCI表面配置存取有反應)。這兩個子狀態是考慮到相同點,在有,但沒有。在進入D3電源狀態前必須先清除PxCMD.ST為0。
Serial ATA裝置可能也有多種電源狀態。這每種裝置的狀態為HBA的D0狀態的子集合。
- D0 – 工作中,以及馬上可利用。
- D1 – 當它接收到IDLE IMMEDIATE command裝置將開始工作。從這狀態離開的潛伏期時間在秒。
- D2 – 當它接收到STANDBY (IMMEDIATE) command裝置將開始工作。從這狀態離開的潛伏期時間在秒。
- D2 – 當它接收到SLEEP command裝置將開始工作。從這狀態離開的潛伏期時間在秒。
最後,Serial ATA定義3個Phy層(或介面)的電源管理
- Phy Ready – Phy logic和PLL兩個都在動作。
- Partial – Phy logic是有被提供動力的,但是在一種遞減狀態中。離開潛伏期不大於10us。
- Slumber –Phy logic是有被提供動力的,但是在一種遞減狀態中。離開潛伏期可能會達到10ms。
由於這些離開的潛伏期狀態常低於D1、D2、還有D3狀態,AHCI定義這些狀態作為Device D0狀態的子狀態。
接著下圖將Serial ATA電源等級狀態架構圖
注意:當裝置是在D1、D2、或D3狀態,Phy是不需要去做睡眠狀態。當HBA在D3狀態時,Phy也不需要去做睡眠狀態。當發生裝置連接到省電模式的介面時,這可能會是什麼情況,那不是一個要求,還有這介面運作在電源管理狀態事件將被中止。
8.3 Power State Transitions
8.3.1 Interface Power Management
SATA 1.0a說明書定義兩個低功率介面電源管理狀態,局部(Partial)和睡眠(Slumber),在電源敏感系統上做SATA連接為了節省電源。經由軟體或HBA它自己,還是裝置局部(Partial)和睡眠(Slumber)介面電源管理狀態會被啟動。介面電源管理狀態是Host跟Device之間協商上使用主要的SATA介面。在裝置與HBA上,任何需求都被接受(使用主要的PMACK)或拒絕(使用主要的PMNACK)基於目前的情況和設定。目前介面電源管理狀態被映射成軟體在PxSSTS.IPM。
8.3.1.1 Device Initiated
根據定義,一個裝置支援啟動介面電源管理狀態功能以經被除能。去致能這特性,恰當的SET FEATURES Command可以被發佈到裝置。HBA將對裝置啟動電源管理需求有反應像說明書的一樣,經由PxSCTL.IPM。一個需求從裝置進入介面管理狀態可能被HBA拒絕,條件是HBA需要傳送一個FIS到裝置。
心得:當使用set feature command去enable裝置中電源管理,HBA對裝置的狀態都反應在PxSCTL.IPM。此刻HBA以啟動電源管理,若突然有事件進入HBA可能會拒絕處理,欲將它喚醒HBA需傳送一個FIS至裝置。
8.3.1.2 System Software Initiated
PxCMD.ICC透過軟體被使用於啟動介面電源管理狀態轉換。這需求去轉換到不同的電源管理狀態將只透過HBA起作用,條件鏈結層目前在L_IDLE狀態。如果當PxCMD.ICC區域被寫入,且HBA鏈結層不是在L_IDLE狀態,所以此需求不被理會。HBA將不執行直接轉換從局部(Partial)到睡眠(Slumber)或者是從睡眠(Slumber)到局部(Partial)基於一個新的值寫入到PxCMD.ICC。如果鏈結目前是局部(Partial)或睡眠(Slumber)介面電源管理狀態,它是軟體負責去引起連結成為行動狀態(Action)之前需要去轉換到一個不同的電源管理狀態。這時間從需求寫到PxCMD.ICC直到連接啟動(Action)被鏈結經由最大恢復時間從局部(Partial)或睡眠(Slumber)如同這樣的概要在SATA1.0a說明書上。
8.3.1.3 HBA Initiated
HBA可能執行有效率電源管理,同樣指示在CAP.SALP。效率電源管理
8.3.2 Device D1,D2, and D3 Status
8.3.3 HBA D3 state
8.4 PME
當HBA是在D3狀態,在裝置狀態它可能選擇工作基於一個改變。
當HBA是在D3狀態,接下來會的狀況PME必須被引發:
- PxIS.PCS被設成1由於一個自然的hot plug插入。
- PxIS.DMPS設定,指示機械存在切換是開或關。
沒有留言:
張貼留言