作者:SSD攻城獅
ASPM讓PCIe SSD在某種情況下,能夠從工作模式(D0 state)通過把自身PCIe鏈路切換到低功耗模式。
想要和SSD攻城獅還有全世界的大牛討論SSD及存儲相關技術?加nanoarch為微信好友,拉你進ssdfans微信群 。
歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿。
現在消費級筆記本裡搭載SSD已經越來越多,而搭載PCIe SSD也是必經的趨勢。
做消費級SSD的廠商辣麼多,常見的PCIe主控就那麼幾款:SMI 2260,PS5007-E7,88SS1093和88NV1140 (三星這個大流氓就不提了)
這些個主控都支持一個叫ASPM的功能,ASPM的全稱是Active State Power Management.
Active前面還預設了兩個詞,Hardware Initiated — ASPM的第一個重要概念:這是HW也就是主控自己觸發的,不需要Host或者FW幹涉。(見下圖highlight部分)
ASPM讓PCIe SSD在某種情況下,能夠從工作模式(D0 state)通過把自身PCIe鏈路切換到低功耗模式,並且通知對方也這麼幹,從而達到降低整條鏈路功耗的目的。
ASPM定義的低功耗模式,有兩種:L0s和L1 (見下圖 – 藍色部分)
以上各狀態的定義如下:
L0: 正常工作狀態
L0s:低功耗模式,恢復Latency低
L1: 更低功耗模式,恢復Latency較長
L2/L3 Ready: Power off前的過渡狀態
L2: Link處於輔助供電模式,極省電
L3: Link完全沒電,功耗為0
LDn:剛上電,LTSSM還未完成前Link所處狀態
要看一款SSD是否支持ASPM,你需要查看它的Link Capabilities Register [11:10] (如下圖)
僅僅支持是沒有用的,你還需要把開關打開, Link Control Register [1:0]
關於ASPM的Control,據PCIe Spec說:
L0s,即使RC和EP某一方的L0s是關閉的,如果對方要求進入L0s, 本方也要跟著進
L1,打開時必須先開RC,再開EP,關掉時必須先關EP再關RC
如果RC和EP都支持ASPM L1, 那必須把EP的L1打開
L0s的比較簡單:
進入:
SSD可以在直接在Tx lane上啟動進入L0s
如果SSD的Tx的L0s被關閉,Rx還是接受來自RC的L0s請求
退出:
雙方都可以啟動退出流程
發送FTS (Fast Training Sequence),然後發送一個SKP, 對方藉此恢復bit and symbol lock
L1的流程上複雜一點:
進入:
EP
RC
1
Block後續的TLP
2
確認發送的最後一個TLP已經收到對方的ACK(確保Replay Buffer是空的)
3
確認FC Credit足夠 (可以滿足一個最大size的傳輸)
4
持續發送 PM_Active_State_Request L1 (夠白話文吧)給RC,直到RC回復 PM_Request_ACK
5
收到PM_Active_State_Request L1
6
Block後續的TLP
7
確認發送的最後一個TLP已經收到對方的ACK(確保Replay Buffer是空的)
8
確認FC Credit足夠 (可以滿足一個最大size的傳輸)
9
持續發送PM_Request_ACK,直到EP發送Electrical Idle
10
收到PM_Request_ACK, Disable TLP/DLLP包的傳輸
11
發送Electrical Idle, 進入L1
12
收到Electrical Idle, Disable TLP/DLLP包的傳輸
13
進入L1
退出:
雙方都可以啟動退出流程
不是發送FTS,而是重新進行Link Training
喚醒發起方,發送TS1,走LTSSM的Recovery stage重新建立連接
最後說一下 Link Control Register [7], Extended Sync
這是一個神奇的bit, 置上以後從L0s和L1退出時,Device會發超多的FTS和TS1,從而讓雙方有更多的時間談人生,談理想,最終」握手」成功。
這個mode是當鏈路中有額外設備(例如PCIe analyzer)時,為保證能夠正常的achieve bit and symbol lock 用的。
但是遇到ASPM L1回不來或者開機找不到PCIe device的情況,也可以通過設置這個bit收集更多的參考數據。
不想錯過SSD攻城獅的後續精彩文章?長按或掃描下面二維碼關注ssdfans就可以了!
ssdfans微信群介紹。
四個免費技術討論群:ssdfans(已滿),ssdfans大咖(已滿),ssdfans精英(已滿),ssdfans大蝦群,這四個群覆蓋了中國和世界華人圈SSD以及相關存儲行業的技術精英,行業大牛,還有各路攻城獅
以及下面各種專業討論群,質量較高,一次性收費50,學生半價。
ssdfans銷售群:買賣消費級,企業級SSD,NAND Flash都可以在這裡找到人
ssdfans快閃記憶體器件群:專門討論快閃記憶體器件和各種新的NVM器件,裡面有各大NAND廠商的技術大牛
ssdfans企業級:討論企業級SSD
ssdfans消費級:討論消費級SSD
ssdfans行動裝置群:討論手機,平板等行動裝置裡面的EMMC,UFS等SSD
ssdfans工作求職群:SSD行業換工作,招聘,趕快來~ 不想換工作也先來佔個坑,萬一有更好的機會呢,行業這麼火,各大公司開的Offer高的嚇人!
ssdfans同學群:專門針對還在校園內的SSD相關人士。
想加入這些群,請加nanoarch為微信好友,介紹你的暱稱-行業-職業,註明群名,拉你進群。