這一篇文章來簡單地介紹一下鏈路訓練狀態機(Link Training and Status State Machine,LTSSM),并簡要地介紹各個狀態的作用和實現機制。
LTSSM有11個狀態(其中又有多個子狀態),分別是Detect、Polling、Configuration、Recovery,L0、L0s、L1、L2(L3是可選的)、Hot Reset、Loopback和Disable狀態。系統進行復位操作(Cold, Hot or Warm Reset)后,會自動進入Detect狀態。
這11個狀態又可以被分為以下五個類別:
1、鏈路訓練狀態(Link Training State);
2、重訓練狀態(Re-Training(Recovery) State);
3、軟件驅動功耗管理狀態(Software Driven Power Management State);
4、活動狀態功耗管理狀態(Active-State Power Management State,ASPM State);
5、其他狀態(Other State);
如下圖所示:
下面分別簡要地介紹一下各個狀態:
首先是Detect:
前面說到,系統進行復位操作(Cold, Hot or Warm Reset)后,會自動進入Detect狀態。在這個狀態中,PCIe設備會去檢測自己Link的另一端是否存在其他PCIe設備。換句話說,就是檢測有么有其他的PCIe設備與其相連接。如下圖所示:
Polling:
在該狀態中,PCIe設備會依次發送TS1OS和TS2OS以實現以下目標:
1、位鎖定(Bit Lock);
2、字符鎖定(Symbol Lock);
3、信號極性翻轉(Polarity Inversion),如果需要的話;
4、確定各個設備支持的速率(Data Rates)。
如下圖所示:
Configuration:
在該狀態中,PCIe設備會依次發送TS1OS和TS2OS以實現以下目標:
1、確定鏈路寬度(Link Width);
2、分配通道(Lane)號;
3、通道位置翻轉(Lane Reversal),如果需要的話;
4、通道對齊(Lane-to-Lane De-skew)。
如下圖所示:
L0:
這是鏈路(Link)的正常狀態(Normal and Full-Active State),所有的TLP、DLLP和Ordered Sets都可以被正常的收發。該狀態下,速率可以是2.5GT/s或者是5GT/s(如果鏈路兩端設備都支持的話,且經過了Re-Trainning)。
Recovery:
這個狀態用于Re-Trainning,因此Re-Trainning可能會改變原有的速率,所以位鎖定(Bit Lock)和符號鎖定(Symbol Lock)操作都會被重新進行,但是花費的時間要比第一次少很多。
其內部的子狀態轉移圖如下圖所示:
L0s:
該ASPM狀態主要用于降低功耗,在總線空閑的時候可以進入該狀態,且從該狀態可以迅速地重新切換回L0狀態。當在L0狀態是,鏈路上出現EIOS時,則表明即將進入L0s狀態。當在L0s狀態時,鏈路上出現FTS時,鏈路會迅速地完成位鎖定和符號鎖定,并進入L0狀態。
發送端如下圖所示:
接收端的示意圖如下:
L1:
相對于L0s狀態,L1狀態下的功耗更低。進入L1狀態需要鏈路兩端的PCIe進行“溝通”,只有雙方都“同意”進入該狀態,鏈路才會進入該狀態。一般有以下兩種方式:
1、第一種是由ASPM引導,硬件自動完成的。發送端發現鏈路上長時間沒有TLP或者DLLP時,便通過ASPM建議接收端進入L1狀態。如果接收端“同意”了,則鏈路進入L1狀態;如果接收端“不同意”,則鏈路進入L0s狀態。
2、第二種是有軟件引導的,軟件發送一系列的命令讓鏈路進入低功耗狀態(D1,D2,or D3 Hot)。隨后,鏈路的上端設備會通知下端設備進入L1狀態,收到來自下端設備的應答后,鏈路進入L1狀態。
如下圖所示:
L2:
L2狀態下的鏈路功耗更低,因為其只保留了Vaux,關閉了鏈路的其他功能。此時,需要Beacon信號或者WAKE#邊帶信號來喚醒系統。其中Beacon信號是一種低頻信號(30KHz~500MHz),其波形圖如下圖所示:
注:此外,還有一個L3狀態,不過其實際上已經不屬于LTSSM了。由于L3狀態連Vaux都關閉了,一旦進入L3狀態,實際上和直接關閉PCIe設備的電源沒有什么太大的差別了。
L2的子狀態轉移圖如下圖所示:
Loopback:
該狀態主要用于測試,這里就不詳細介紹了。
Disable:
該狀態中鏈路被禁止,此時發送端處于電氣空閑狀態(Electrical Idle State),而接收端處于低阻狀態(Low Impedance State)。進入該狀態的原因可能是鏈路連接不穩定,或者鏈路中的某個設備被移除,如PCIe卡從插槽中拔出。
Hot Reset:
軟件可以通過將橋控制寄存器(Bridge Control Register)中的Secondary Bus Reset位置位來復位鏈路。隨后,橋下端的PCIe設備發送TS1OS,其中的Training Control中包含了Hot Reset的信息。當接收端發現連續的兩個TS1OS中都包含Hot Reset時,鏈路隨后進入復位狀態。
注:本文只是對LTSSM進行了簡單的介紹,關于具體的每一個狀態內部是如何實現的,請參考PCIe Spec相關章節。
-
PCIe
+關注
關注
16文章
1328瀏覽量
84744 -
鏈路
+關注
關注
1文章
74瀏覽量
14205 -
功耗管理
+關注
關注
0文章
8瀏覽量
7225
原文標題:【博文連載】PCIe掃盲——鏈路初始化與訓練基礎(三)之LTSSM
文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論