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