SATA省電模式 Partial和 Slumber
與傳統硬盤相比,SSD不僅具備更高的讀寫速度,能耗上也有非常大的優勢。今天介紹一下SATA鏈路電源管理。SATA鏈路電源管理,可以讓SATA鏈路的PHY進入低功耗模式,與硬盤或者SSD其他部分(CPU、DDR、后端)的電源管理是完全獨立的。以硬盤為例,SATA鏈路的電源狀態與盤片的轉數快慢是相互獨立的。
SATA提供了兩種低功耗模式: Partia和 Slumber
Partial模式:PHY處于低功耗狀態,退出時間要求<10μs。 Partial是讓部分物理層
(PHY)電路進入休眠模式,能夠在10μs內被喚醒,讓鏈路在不太影響傳輸性能的情況下忙里偷閑,休息一下。
Slumber模式:PHY處于更低功耗狀態,退出時間要求<10ms。與 Partial模式相比, Slumber關閉更多的電路,因此它的恢復要慢一些,恢復時間大約為10ms。當預測有一段相對長的ldle時間時,會讓鏈路好好休息一下。
在圖8-1中可以看到 Partial/Slumber把功耗從 Active State的1000mW降低到了100mW
左右。
圖8-1 Partial和Slumber兩種模式的功耗和時延
在鏈路電源管理方面,SATA一視同仁,主機和設備都可以發起,分別稱為:
HIPM( HoSt Initiated Power Management)
DIPM(Device Initiated Power Maanagement)
發起歸發起,還是需要對方配合,才能讓鏈路進入 Partial或者 Slumber模式。具體做
法是這樣的,以主機發起為例
主機發送一個 PMREQ P(請求進入 Partial)給設備(如果發 PMREQ S就是請求進
Slumber
設備回復 PMACK(同意)或者 PMNAK(不同意)
如果設備回復同意,兩邊一起進 Partial(一般接收方都會發送多個 PMACK以確保
發起方收到);
如果回復不同意,那就什么都不發生;
如果需要退出 Partial或者 Slumber,需要通過OOB重新建立連接。
其他知識點:
Listen Mode(偵聽模式):AHCI支持讓沒有接盤的端口進入偵聽模式,此時該端口
的功耗水平相當于 Slumber,但是該端口可以識別新接入的盤。
Auto Partial to Slumber:可以讓鏈路不需要回到 Active狀態,直接從 Partial進入
Slumber模式。