在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    1262

    瀏覽量

    83202
  • 狀態機
    +關注

    關注

    2

    文章

    492

    瀏覽量

    27654
收藏 人收藏

    評論

    相關推薦

    Simulink中的狀態機建模方法 Simulink數據可視化與分析功能

    1. Simulink中的狀態機建模方法 1.1 理解狀態機的基本概念 在開始建模之前,了解狀態機的基本概念是必要的。狀態機由以下幾個部分組成:
    的頭像 發表于 12-12 09:27 ?855次閱讀

    基于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 ?546次閱讀

    如何在FPGA中實現狀態機

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

    玩轉Spring狀態機

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

    關于SMU狀態機的問題求解

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

    使用系統滴答定時中斷,基于按鍵的狀態機怎么只能1個1個+,不能連+?

    使用系統滴答定時中斷,基于按鍵的狀態機怎么只能1個1個+,不能連+ #define KEY1_USERGPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13
    發表于 05-16 06:27

    請問STM32F051用了操作系統RTX后還需要寫狀態機不?

    現在學會了rtx操作系統后,原來用狀態機的學的程序,可不可以不切割,直接單線程來執行列?各位前前輩指點一下。多謝!
    發表于 05-08 06:11

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

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

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

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

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

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

    關于FX3使用4個線程進行FPGA到USB的數據傳輸-狀態機設置的問題求解

    狀態機進行測試 其中WAIT到TH0的轉移條件Buffer_Ready是一個外部輸入信號,TH0到TH3是4個線程,我在固件中為每個線程都設置了一個Bulk In endpoint,在測試時發現
    發表于 02-27 06:40

    請問GPIF狀態機的內部信號需要延遲才能斷言嗎?

    dma_wm_thn 這樣的過渡觸發器需要一些周期的延遲才能斷言嗎? 在我的實踐中,DMA_WM_THN 觸發器似乎有 1 個時鐘周期延遲: ? 圖像是我的狀態機的一部分,數據總線是 32 位
    發表于 02-23 07:43

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

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

    Verilog狀態機+設計實例

    在verilog中狀態機的一種很常用的邏輯結構,學習和理解狀態機的運行規律能夠幫助我們更好地書寫代碼,同時作為一種思想方法,在別的代碼設計中也會有所幫助。 一、簡介 在使用過程中我們常說
    的頭像 發表于 02-12 19:07 ?4348次閱讀
    Verilog<b class='flag-5'>狀態機</b>+設計實例
    主站蜘蛛池模板: 在线视频综合网 | 五月婷婷丁香花 | 日本伊人网 | 国产三级在线观看视频 | 免费黄色福利 | 美女被色| 在线a人片免费观看不卡 | 特级全毛片 | 激情五月婷婷综合 | 狠狠色婷婷七月色综合 | 久久国产视频一区 | 777欧美午夜精品影院 | 欧美啊片| 免费在线观看你懂的 | 日本www色视频成人免费网站 | 天天射天天爱天天干 | 49pao强力免费打造在线高清 | 免费色视频网站 | 色激情综合 | 一级毛片aaaaaa免费看 | 美女被啪到哭网站在线观看 | 久久久久久久久综合影视网 | 天天干天天日天天射天天操毛片 | 伊人久久亚洲综合 | 亚洲黄色网址大全 | 亚洲国产成人精彩精品 | 亚洲午夜小视频 | 国产一卡二卡3卡4卡四卡在线视频 | 四虎永久精品免费观看 | 国内精品视频在线 | 高清视频一区二区三区 | 1000部啪啪 | 欧美特黄一级视频 | 五月花亚洲| 国模极品一区二区三区 | 日韩免费三级 | 午夜手机福利视频 | se97se成人亚洲网站在线观看 | 亚洲香蕉久久一区二区三区四区 | 一级日本大片免费观看视频 | 丁香婷婷亚洲六月综合色 |