精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【桃子同學筆記4】PCIE訓練狀態機(LTSSM)基礎

【桃子同學筆記】 ? 來源:【桃子同學筆記】 ? 作者:【桃子同學筆記】 ? 2022-09-05 14:21 ? 次閱讀

首先,所謂LTSSM,即:Link Training and Status State Machine(鏈路訓練及狀態機)

下圖為 LTSSM 的狀態機及訓練過程:

poYBAGMDrVmAL_fgAACkfb-bRc4659.png

LTSSM 包含 11 個頂層狀態:Detect、Polling、Configuration、Recovery、L0、L0s、L1、L2、Hot Reset、Loopback 和 Disable。這些狀態可以分為 5 類:

Link Training states(鏈路訓練狀態)
Re-Training(Recovery)state(重訓練狀態)
Software driven Power Management State(由軟件控制的電源管理狀態)
Active-State Power Management(ASPM)states(動態電源管理狀態)
Other states(其他狀態)


①各種復位(Reset)之后,狀態機的改變為:Detect => Polling => Configuration => L0。在 L0 狀態下即可進行標準數據交互。

②鏈路的 Re-Training 狀態也稱為 Recovery(恢復)狀態。鏈路進入 Re-Training 狀態的原因有多種,例如從低功耗鏈路狀態(如 L1)退出、改變帶寬(改變速率或者寬度)等。在該狀態下,鏈路會根據需要重新執行一部分鏈路訓練的流程,然后進入 L0 狀態。

③電源管理軟件能將設備(Device)切換到低功耗設備狀態(D1,D2,D3Hot 或者 D3Cold),這會導致鏈路進入對應的低功耗鏈路狀態(L1 或者 L2)。

④在某一時刻,如果沒有數據在傳輸,那么 ASPM 硬件可以自動將硬件切換到功耗較低的 ASPM 狀態(L0s 或者 ASPM L1)。

另外,軟件還可以將鏈路設置為其它的一些特殊狀態:Disabled,Loopback 或者 Hot Reset。


1. Detect 狀態

當 PCIe 鏈路被復位或者數據鏈路層通過填寫某些寄存器之后,LTSSM 將進入該狀態。
當 PCIe 鏈路進入該狀態時,發送邏輯 TX 并不知道對端接收邏輯 RX 的存在,因此需要使用 Receiver Detect 識別邏輯判斷對端接收邏輯 RX 是否可以正常共工作,之后才能進入其他狀態。那么TX怎么去判斷對端設備呢?

如下圖,Detect狀態包含了兩個子狀態:Detect.Quiet和Detect.Active

pYYBAGMDrVmAB66AAABWg7-KUB4846.png


2. Polling 狀態
當 PCIe 鏈路進入該狀態時,將向對端發送 TS1 和 TS2 Ordered Sets(2.5 GT/s),并接收對端的 TS1 和 TS2 Ordered Sets(2.5 GT/s)。

通過接收到的 TS1 和 TS2 序列,完成如下操作:

獲取 Bit Lock
獲取 Symbol Lock 或者 Block Lock
如果需要,糾正 lane polarity inversion(差分信號極性反轉)
檢測支持的速率
PCIe 鏈路處于該狀態時,將進行 Loopback 測試,確定當前使用的 PCIe 鏈路可以正常工作。


3. Configuration 狀態
發送邏輯 TX 和 接收邏輯 RX 繼續以 2.5 GT/s 的速度交換 TS1 和 TS2 Ordered Sets,完成如下任務:

確定 Link Width
指定 Lane Number
根據需要,對 Lane reversal 進行檢查并對其進行糾正
處理 Lane-to-Lane 時序的偏差
Configuration 狀態下,scrambling 可以關閉,該狀態可以切換到 Disabled 狀態或者 Loopback 狀態。
在 TS1 和 TS2 中,還指定了 L0 狀態切換到 L0s 狀態所需要的 FTS Ordered Sets 的個數。


4. L0 狀態
L0 狀態是 PCIe 鏈路的正常工作狀態。該狀態下,PCIe 鏈路可以正常發送和接收 TLP、DLLP 和 Ordered Sets。如果需要切換到高于 2.5 GT/s 的速度傳輸,則需要進入 Recovery 狀態進行鏈路重訓練(Re-Training)。


5. Recovery 狀態
PCIe 鏈路需要進行重訓練(Re-Training)時會進入該狀態,可能的原因有:

L0 狀態出現錯誤
從 L1 狀態切換到了 L0 狀態
從 L0s 狀態切換到了 L0 狀態,但是使用 FTS 流程并沒有將鏈路訓練到可用狀態
在 Recovery 狀態,重新建立 Bit Lock 和 Symbol/Block Lock 的過程與 Polling 狀態相似,但是要比 Polling 狀態花的時間更短。


6. L0s 狀態
L0s 是 ASPM(Active State Power Management)機制提供的第 1 級低功耗狀態,該狀態可以在較短的時間內切換到 L0 狀態。當設備要從 L0 狀態切換到 L0s 狀態時,需要向外發送 EIOS。當設備要從 L0s 狀態切換到 L0 狀態時,需要向外發送多個 FTS,從而快速獲取 Bit Lock 和 Symbol/Block Lock。


7. L1 狀態
L1 是 ASPM(Active State Power Management)機制提供的第 2 級低功耗狀態,它的功耗比 L0s 低,但是需要更長的時間才能切換到 L0 狀態。想要進入 L1 狀態,位于 PCIe 總線兩端的設備需要進行協商,然后同時進入 L1 狀態。兩種可能的方式如下:

ASPM 機制下硬件自動切換。當 Upstream Port 的硬件發現沒有 TLP 或者 DLLP 需要再發送的時候,就會自動和 Downstream Port 進行協商進入 L1 狀態。如果 Downstream Port 同意,則二者同時進入 L1 狀態;如果 Downstream Port 拒絕,則 Upstream Port 會進入 L0s 狀態。
電源管理軟件通過命令將設備配置為低功耗狀態(D1,D2,D3hot)。此時 Upstream Port 和 Downstream Port 上的設備同時進入 L1 狀態。

8. L2 狀態
L2 狀態是ASPM(Active State Power Management)機制提供的第 3 級低功耗狀態,此時設備的主電源被關閉,從而達到更低的功耗。該狀態下,幾乎所有的邏輯都被關閉,只有一小部分使用 Vaux 供電的邏輯在工作,該部分邏輯可以用來發送 wakeup 事件。

支持 wakeup 功能的 Upstream Port 能向外發送一個低頻信號,該信號稱為 Beacon。Downstream Port 將 Beacon 信號轉發給 Root Complex。通過 Beacon 或者 WAKE# 引腳,設備可以要求系統恢復它的主電源供電。


9. Loopback 狀態
該狀態是用來測試的,但是協議并沒有明確規定 Receiver 在該狀態下做些什么?;镜牟僮骱芎唵危涸O備 A 作為 Loopback Master,連續對外發送兩個 TS1 Ordered Sets,并且 TS1 的 Training Control 區域的 Loopback 位需要設置為 1。設備 B 接收到連續兩個 Loopback 位為 1 的 TS1 之后,就會進入 Loopback state,稱為 Loopback Slave。Loopback Slave 會將收到的所有內容再發送給 Loopback Master,從而形成回環,驗證鏈路的完整性。


10. Disable 狀態
系統軟件可以通過設置寄存器,使 PCIe 鏈路進入 Disabled 狀態。當 PCIe 鏈路的對端設備被拔出時,LTSSM 也需要進入該狀態。

該狀態下,發送端設備處于 Electrical Idle 狀態,接收端設備處于低阻抗狀態。對于鏈接已經變得不可靠或者設備被意外移除時,這種狀態很有必要。

系統軟件配置 Link Control register 的 Disable 位之后,該設備會對外發送 16 個 TS1 Ordered Sets,這些 TS1 的 Training Control 區域的 Disable Link 位需要設置為 1。接收設備在收到這 16 個 TS1 之后,進入 Disabled 狀態。


11. Hot Reset 狀態
系統軟件將 Bridge Control register 的 Secondary Bus Reset 位設置為 1 之后,Bridge 的 downstream port 會對外發送多個 TS1 Ordered Sets,這些 TS1 的 Training Control 區域 Hot Reset 位必須被設置為 1。接收設備收到連續 2 個這種 TS1 之后,必須對設備進行復位。

處理器系統進行 Hot Reset 操作時,PCIe 鏈路將進入 Recovery 狀態,然后進入 Hot Reset 狀態進行 PCIe 鏈路的重訓練。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PCIe
    +關注

    關注

    15

    文章

    1224

    瀏覽量

    82445
  • 狀態機
    +關注

    關注

    2

    文章

    492

    瀏覽量

    27478
收藏 人收藏

    評論

    相關推薦

    基于Pytorch訓練并部署ONNX模型在TDA4應用筆記

    電子發燒友網站提供《基于Pytorch訓練并部署ONNX模型在TDA4應用筆記.pdf》資料免費下載
    發表于 09-11 09:24 ?0次下載
    基于Pytorch<b class='flag-5'>訓練</b>并部署ONNX模型在TDA<b class='flag-5'>4</b>應用<b class='flag-5'>筆記</b>

    觸發器和狀態機的關系是什么

    觸發器和狀態機在數字電路設計中有著緊密的關系,它們共同構成了時序邏輯電路的基礎,用于實現數據的存儲、處理和傳輸。
    的頭像 發表于 08-12 11:24 ?373次閱讀

    如何在FPGA中實現狀態機

    在FPGA(現場可編程門陣列)中實現狀態機是一種常見的做法,用于控制復雜的數字系統行為。狀態機能夠根據當前的輸入和系統狀態,決定下一步的動作和新的狀態。這里,我們將詳細探討如何在FPG
    的頭像 發表于 07-18 15:57 ?487次閱讀

    玩轉Spring狀態機

    說起Spring狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring狀態機就是狀態模式的一種實現,在介紹S
    的頭像 發表于 06-25 14:21 ?886次閱讀
    玩轉Spring<b class='flag-5'>狀態機</b>

    關于SMU狀態機的問題求解

    我有一些關于 SMU 狀態機的問題。 假設由于某種原因,SMU 已進入故障狀態。 手冊指出,要返回運行狀態并將 FSP 恢復到無故障狀態,應調用IfxSmu_releaseFSP()。
    發表于 05-29 08:18

    在Verilog中實現Moore型和Mealy型狀態機的方法簡析

    編寫能夠被綜合工具識別的狀態機,首先需要理解狀態機的基本概念和分類。狀態機(FSM)是表示有限個狀態以及在這些狀態之間轉換的邏輯結構。
    的頭像 發表于 05-01 11:38 ?1446次閱讀

    求助LabVIEW,狀態機里面反饋節點如何初始化問題

    求助labview,狀態機里面反饋節點如何初始化,下次執行這個狀態的時候初始化一次!謝謝謝謝!
    發表于 03-25 18:17

    如何采用“狀態機”解析UART數據幀

    如果一個系統接收上述“不定長度”的協議幀,將會有一個挑戰--如何高效接收與解析。 為簡化系統設計,我們強烈建議您采用“狀態機”來解析UART數據幀。
    的頭像 發表于 03-25 14:29 ?630次閱讀
    如何采用“<b class='flag-5'>狀態機</b>”解析UART數據幀

    什么是有限狀態機?如何解決傳統有限狀態機狀態爆炸」問題?

    有限狀態機(Finite State Machine,簡稱FSM)是一種用來進行對象行為建模的工具,其作用主要是描述對象在它的生命周期內所經歷的狀態序列以及如何響應來自外界的各種事件。
    的頭像 發表于 02-17 16:09 ?6074次閱讀
    什么是有限<b class='flag-5'>狀態機</b>?如何解決傳統有限<b class='flag-5'>狀態機</b>「<b class='flag-5'>狀態</b>爆炸」問題?

    Verilog狀態機+設計實例

    在verilog中狀態機的一種很常用的邏輯結構,學習和理解狀態機的運行規律能夠幫助我們更好地書寫代碼,同時作為一種思想方法,在別的代碼設計中也會有所幫助。 一、簡介 在使用過程中我們常說
    的頭像 發表于 02-12 19:07 ?3842次閱讀
    Verilog<b class='flag-5'>狀態機</b>+設計實例

    狀態機該怎么監控

    狀態機卡住的場景——通過狀態跳轉條件的DFX信號去判斷卡住的原因
    的頭像 發表于 01-15 10:03 ?391次閱讀
    <b class='flag-5'>狀態機</b>該怎么監控

    Spring狀態機的實現原理和使用方法

    說起 Spring 狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring 狀態機就是狀態模式的一種實現,在
    的頭像 發表于 12-26 09:39 ?1875次閱讀
    Spring<b class='flag-5'>狀態機</b>的實現原理和使用方法

    SaberRD狀態機建模工具介紹(二)狀態機建模工具使用示例

    假設電阻阻值為r_normal,首先打開狀態機建模工具,添加電阻端口,電阻端口包含貫通變量電流和跨接變量電壓,使用分支型端口。
    的頭像 發表于 12-05 09:53 ?948次閱讀
    SaberRD<b class='flag-5'>狀態機</b>建模工具介紹(二)<b class='flag-5'>狀態機</b>建模工具使用示例

    SaberRD狀態機建模工具介紹(一)什么是狀態機建模

    狀態機建模是使用狀態圖和方程式的手段,創建基于混合信號的有限狀態機模型的一種建模工具。
    的頭像 發表于 12-05 09:51 ?1639次閱讀
    SaberRD<b class='flag-5'>狀態機</b>建模工具介紹(一)什么是<b class='flag-5'>狀態機</b>建模

    狀態機怎么上來就錯了?怎么解決?

    狀態機本身很簡單,default也寫了,然后進行仿真時看到了這樣的波形:
    的頭像 發表于 12-04 10:43 ?356次閱讀
    <b class='flag-5'>狀態機</b>怎么上來就錯了?怎么解決?