PCIE鏈路訓練-狀態機描述2

Configuration.Lanenum.Accept

如果use_modified_TS1_TS2_Ordered_Set1,需要注意:

1tx需要發送Modified TS1而不是正常的TS1

2rx端必須檢查是否收到Modified TS1(注意一開始進入這個狀態的時候可能還是收到標準的TS1,需要檢查的是收到連續的Modified TS1

Dsp

如果dsp在所有通道上都接收到連續兩個TS1,它們攜帶的鏈路和通道編號都和 dsp在這些通道上發送的數值一致,那么代表usp同意了dsp通告的鏈路編號和通道編號,dsp隨之進入 Configuration.Complete 狀態。如果dsp接收到的通道編號順序與通告的順序相顛倒,如果dsp支持通道順序顛倒,那么dsp同樣進入 Configuration.Complete狀態,并采用接收到的,顛倒的通道編號順序。(針對usp,進入Configuration.Complete狀態的條件是,如果 USP在所有通道上都接收到連續兩個TS2,它們攜帶的鏈路和通道編號都和 USP 在這些通道上發送的 TS1 中的數值一致,那么USP 進入 Configuration.Complete 狀態。)

如果一條正在被配置的鏈路可以由一部分而不是全部的可用通道組成,這些通道都收到連續兩個 TS1 ,鏈路編號為相同有效的數值,并且通道編號也不為填充符號。那么在這部分通道上發送鏈路編號相同,通道編號重新編制的 TS1,旨在用更少數量的通道來編成一條鏈路。新的通道編號必須從 0 開始順序遞增,指派給鏈路所使用的通道。任何沒有接收到 TS1 的通道不能成為鏈路的一部分,并且中斷通道編號遞增。舉例而言,如果共有 8 條通道,但是通道 2 沒有接收到 TS1,那么這組通道將不能組成包括通道 2 的鏈路。這樣一來,不能組成 x8 或者 x4 的鏈路,只能組成 x2 或者 x1 的鏈路。剩下不使用的通道,必須在其上發送鏈路和通道編號都為填充符號的 TS1。此時下個狀態是Configuration.Lanenum.Wait。-dsp/usp均滿足

如果沒有鏈路可以被配置,或者所有通道接收到兩個連續的 TS1,其鏈路和通道編號都為填充符號,下個狀態是detect-dsp/usp均滿足

為了避免將鏈路的寬度配置小于正常寬度,協議建議如果在多通道鏈路上發現某些通道出現錯誤或者失去 Block Alignment 狀態,那么延遲一段時間后再進行本過程。8b/10b 編碼時等待至少 2 TS1128b/130b 編碼時至少等待 34 TS1,但任何情況下不要等待超過 1ms-dsp/usp均滿足

注意幾點:

1)針對Reversed Lane來說,其lane num的變化要求是非常嚴格的,比如原來lane num0,那么收到的TS1中的Lane num就為n-1;原來為n-1lane,那么收到的TS1中的lane num0-dsp/usp均滿足

2)注意,如果use_modified_TS1_TS2_Ordered_Set變量設為1,并且Alternate Protocol Negotiation執行了,那么轉換到Configuration.Complete狀態必須要延遲10us,直到dsp收到usprsp(這里有問題,什么是Alternate Protocol Negotiation??,usp這里同樣有這樣的描述,同樣需要注意

變量變化:

1.在如下條件下:SRIS_Mode_Enabled設為1:

(1)Linkup = 0;

(2)自從進入Configuration state狀態后,port已經發送了SRIS Clocking (Symbol 4, bit 7 = 1b)的TS1;

寄存器變化:

1.如果當前的configuration狀態是從recovery狀態進入的,那么Link Status Register中的Link Bandwidth Management StatusLink Autonomous Bandwidth Status域需要根據如下規則更新:

(1)由于鏈路可靠性導致的dsp發起的bandwidth的改變Link Bandwidth Management Status設為1

2bandwidth的改變不是由于dsp,并且收到的連續兩個TS1中的Autonomous Change(Symbol 4 bit 6)為0,Link Bandwidth Management Status設為1

3)其他情況下Link Autonomous Bandwidth Status域設為1

Configuration.Complete

Flit_Mode_Enabled為0 + LinkUp為1,允許雙方設備在進入本狀態時,改變它們的支持速率列表和鏈路寬度恢復能力(upconfigure capability),但一旦進入本狀態后,這些設置就不再允許修改。

Flit_Mode_Enabled為1 + LinkUp為0,允許雙方設備在進入本狀態時,改變L0p capability,但一旦進入本狀態后,這些設置就不再允許修改。

如果use_modified_TS1_TS2_Ordered_Set1,需要注意:

1tx需要發送Modified TS1而不是正常的TS1

2rx端必須檢查是否收到Modified TS1(注意一開始進入這個狀態的時候可能還是收到標準的TS1,需要檢查的是收到連續的Modified TS1

Dsp:

1.在 Configuration.Complete 狀態期間,DSP 將發送 TS2 序列,其中的鏈路和通道編號與接收到的 TS1 中的內容。(針對usp,在Configuration.Complete 狀態期間,USP 將發送 TS2 序列,其中的鏈路和通道編號與接收到的 TS2 中的內容

2.如果該端口能夠在當前分配的lane0上向下支持x1鏈路,并在LinkUp=1b時支持增加鏈路寬度恢復(upconfigure),那么允許dsp將置位TS2序列中的Upconfigure Capability/L0p比特設為1。-dsp/usp均滿足

3.DSP 會記錄接收到的 TS2 中的 N_FTS 域數值,其表示對端退出L0s狀態必需的 FTS 數量,以備后續使用。-dsp/usp均滿足

4.使用8b/10b編碼時,必須在離開當前狀態前完成通道間去偏移。-dsp/usp均滿足

5.如果所有配置中的通道都收到了兩個連續的 TS2,其中關閉加擾(Disable Scrambling)比特設置為 1'b1,那么停止對編碼進行加擾(scrambling)。發送端發送TS2中Disable Scrambling比特為1的端口也必須停止加擾。在128b/130b 編碼模式時,無法關閉加擾,因為添加的擾碼對信號完整性的幫助不可或缺。-dsp/usp均滿足

6.下個條件是Configuration.Idle狀態如果滿足如下條件:

當所有發送 TS2 的通道都接收到 8 個滿足條件的 TS2 時,并且在接收到一個 TS2 后該通道已經發送至少 16 個 TS2 后,狀態機將跳轉至下一個狀態:Configuration.Idle。這些條件指的是所有接收的 TS2 中都攜帶有匹配的鏈路編號和通道編號(非填充符號),匹配的速率標識符( rate identifier),以及匹配的鏈路 Upconfig Capability 比特。-dsp/usp均滿足

7.如果設備支持 2.5 GT/s 以上的速率,那么它必須記錄在任何已配置通道上的速率標識符,并覆蓋所有此前記錄的數值。“changed_speed_recovery” 用于在 Recvory 狀態中追蹤速率編號的變量,此時清除為 0。-dsp/usp均滿足

8.Flit_Mode_Enabled為0的情況下,如果tx發出的TS2中的Link Upconfigure/ L0p Capability (Symbol 4 bit 6)域設置為 1b,并且接收到 8 個連續的 TS2 序列,TS2在該比特上的設置同樣為1,變量upconfigure_capable設為1。否則,該變量清除為 0。-dsp/usp均滿足

9.Flit_Mode_Enabled為1+ LinkUp=0b的情況下,如果tx發出的TS2中的Link Upconfigure/ L0p Capability (Symbol 4 bit 6)域設置為 1b,并且接收到 8 個連續的 TS2 序列,TS2在該比特上的設置同樣為1,那么L0p_capable變量設為1,Device Status 3 Register中的Remote L0p Supported bit設為1;-dsp/usp均滿足

10.任何沒有配置為鏈路一部分的通道將與當前的 LTSSM 不再有關聯,并且必須設置為下述各種狀態中的一種:

(1)與新的 LTSSM 相關聯;(針對usp,是指和新的crosslink LTSSM關聯)

(2)轉為電氣空閑狀態,這里涉及一種特殊的狀態,即這些未被配置進鏈路的通道曾經在 L0 狀態中被配置為鏈路的一部分,并且從那之后 LinkUp 狀態位一直被設置為 1b。如果鏈路支持 upconfigure,那么它們需要仍然和原來的 LTSSM 相關聯。這種情況下,協議建議這些通道仍然保持打開對接收端的終結(termination)特性,因為在 upconfigured 之后,它們又會重新變成鏈路的一份子。如果不保持終結特性打開,那么在LTSSM從Configuration.Complete 狀態轉為 Recovery.RcvrCfg 狀態時,也需要再次打開(upconfigure_capable變量為1的情況下)。不過,如果這些通道并非曾經是鏈路的一部分,那么它們無法通過該過程成為鏈路的一部分。-dsp/usp均滿足

對于可選配的 crosslink 特性,接收阻抗必須保持在這兩者之間。-dsp/usp均滿足

在 LTSSM 返回 Detect 狀態后,這些通道會和LTSSM重新和其關聯。-dsp/usp均滿足

這些通道進入電器空閑狀態之前無需發送 EIOS 序列,并且狀態轉變到Electrical Idle也并不一定需要發生在符號或者命令集的邊界上。-dsp/usp均滿足

11.

2ms超時后根據如下情況進行:

(1)如果當前狀態是2.5GT/s或者5.0GT/s,那么下個狀態時detect狀態-dsp/usp均滿足

(2)如果 idle_to_rlock_transitioned 變量小于 FFh,并且當前數據速率為 8GT/s,那么接下來轉入 Configuration.Idle 狀態。注意在這次狀態跳變中,changed_speed_recovery 變量清除為 0。并且,變量 upconfigure_capable 也可能會被更新(非強制),當至少一個通道上收到8個連續的 TS2 序列,它們都攜帶有匹配的鏈路編號和通道編號(非填充符號),如果鏈路收發雙方的 Upconfig Capability 比特都為 1,那么 upconfigure_capable 變量更新為 1b,否則清除為 0。-dsp/usp均滿足

(3)任何沒有配置為鏈路一部分的通道將與當前的 LTSSM 不再有關聯,其他所需的條件與上述列出的非超時時的條件一致(也就是條件(2))。-dsp/usp均滿足

(4)在超時后,如果未滿足上一段的條件,則轉入 Detect 狀態。-dsp/usp均滿足

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165197.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165197.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第十七章總結

數據庫基礎 SQL語言 1、select 語句 select 語句用于從數據中檢索數據。語法如下: SELECT 搜選字段列表 FROM 數據表名 WHERE 條件表達式 GROUP BY 字段名 HAVING 條件表達式(指定分組的條件) ORDER BY 字段名[ASC|DESC] 2、insert 語句 insert 語句用于向表中插入新…

Ubuntu20.04 install pnpm

npm install -g pnpm referrence link: Installation | pnpmPrerequisiteshttps://pnpm.io/installation

TrustAsia亮相Matter開發者大會,榮獲Matter優秀賦能者獎

11月22日,由CSA(連接標準聯盟)中國成員組主辦,CSHIA承辦的“Matter中國區開發者大會2023” 于杭州舉行。 會上,連接標準聯盟中國成員組主席宿為民博士、連接標準聯盟亞洲區架構師楊莉女士、CSHIA秘書長|中智盟投資創始…

藍橋杯官網練習題(最長子序列)

題目描述 我們稱一個字符串S 包含字符串 T 是指 T 是 S 的一個子序列,即可以從字符串 S 中抽出若干個字符,它們按原來的順序組合成一個新的字符串與 T 完全一樣。 給定兩個字符串 S 和 T,請問 T 中從第一個字符開始最長連續多少個字…

LangChain的簡單使用介紹

??覺得內容不錯的話,歡迎點贊收藏加關注😊😊😊,后續會繼續輸入更多優質內容?? 👉有問題歡迎大家加關注私戳或者評論(包括但不限于NLP算法相關,linux學習相關,讀研讀博…

idea里面常用插件

這里列出了一系列常用的 IntelliJ IDEA 插件,它們可以提高開發效率、簡化操作,以及幫助進行代碼分析和優化。以下是每個插件的簡要介紹: GenerateAllSetter:生成對象的所有 set 方法和 get 方法,方便對象之間的轉換。該…

微信小程序實現【點擊 滑動 評分 評星(5星)】功能

wxml文件&#xff1a; <view class"wxpl_xing"><view class"manyidu">{{scoreContent}}</view><view><block wx:for{{scoreArray}} wx:for-item"item"><view classstarLen bindtapchangeScore data-sy"{{…

vuex中的常用屬性有哪些?

在 Vuex 中&#xff0c;有一些常用的屬性可以幫助你管理應用程序的狀態。這些屬性包括 state、getters、mutations 和 actions。 state: 用于存儲應用程序的狀態數據&#xff0c;是 Vuex 存儲數據的地方。當應用程序中的多個組件需要共享狀態時&#xff0c;就可以將這些共享的狀…

力扣283:移動零(JAVA)

題目描述: 意思是將所有0移到最后的同時其余非0元素位置仍然不變 如 1 2 0 5 2 0 經過移動零后變為 1 2 5 2 0 0 思路:使用雙指針的思路來寫 fast:從左往右遍歷數組 slow:非零元素最后的一個位置 將數組分為3個區間 [0,slow]為處理好的非0數據,slow永遠指向最后一個非0數據 [s…

Java面向對象第一天

什么是類&#xff1f;什么是對象&#xff1f; 現實生活是由很多很多對象組成的&#xff0c;基于對象抽出了類 對象&#xff1a;軟件中真實存在的單個的個體/東西 類&#xff1a;類型/類別&#xff0c;代表一類個體 類是對象的模板/模子&#xff0c;對象是類的具體的實例 類中…

docker mysql 宿主機掛載配置文件

官方文檔摘錄&#xff08;勿噴&#xff0c;僅供自己筆記&#xff09; 官方文檔如下&#xff1a; The MySQL startup configuration is specified in the file /etc/mysql/my.cnf, and that file in turn includes any files found in the /etc/mysql/conf.d directory that e…

GoLang語言范圍(Range)

目錄 一、在數組、切片上使用‘range’ 二、在映射上使用range 三、在通道上使用range Go語言中的range關鍵字用于迭代數組&#xff08;數組、切片、字符串&#xff09;、映射&#xff08;map&#xff09;、通道&#xff08;channel&#xff09;或者在 for 循環中迭代每一個…

案例022:基于微信小程序的行政復議在線預約系統

文末獲取源碼 開發語言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 數據庫&#xff1a;mysql 5.7 開發軟件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序開發軟件&#xff1a;HBuilder X 小程序…

Django之中間件

引入 1、Django自帶7個中間件&#xff0c;每個中間件都有各自的功能 2、django能夠自定義中間件 3、使用場景&#xff1a; 1. 全局身份校驗 2. 全局用戶權限校驗 3. 全局訪問頻率的校驗 ...... 【1】什么是中間件 Django中間件是一個輕量級、可重用的組件&#xff0c;用于處理…

python運行jackhmmer二進制命令的包裝器類

jackhmmer 是 HMMER 軟件套件中的一個工具&#xff0c;用于進行高敏感度的蛋白質序列比對。HMMER&#xff08;Hidden Markov Model based on profile&#xff09;是一套用于分析蛋白質序列的工具&#xff0c;它使用隱藏馬爾可夫模型&#xff08;HMM&#xff09;來建模蛋白質家族…

nodejs微信小程序+python+PHP -留學信息查詢系統的設計與實現-安卓-計算機畢業設計

目 錄 摘 要 I ABSTRACT II 目 錄 II 第1章 緒論 1 1.1背景及意義 1 1.2 國內外研究概況 1 1.3 研究的內容 1 第2章 相關技術 3 2.1 nodejs簡介 4 2.2 express框架介紹 6 2.4 MySQL數據庫 4 第3章 系統分析 5 3.1 需求分析 5 3.2 系統可行性分析 5 3.2.1技術可行性&#xff1a;…

543. 二叉樹的直徑 --力扣 --JAVA

題目 給你一棵二叉樹的根節點&#xff0c;返回該樹的 直徑 。 二叉樹的 直徑 是指樹中任意兩個節點之間最長路徑的 長度 。這條路徑可能經過也可能不經過根節點 root 。 兩節點之間路徑的 長度 由它們之間邊數表示。 解題思路 最長長度可以理解為左子樹最長路徑加上右子樹最長…

MySQL錯誤之ONLY_FULL_GROUP_BY

報錯信息&#xff1a; 翻譯&#xff1a; 對該報錯的解釋 所以&#xff0c;實際上該報錯是由于在SQL查詢語句中有group by&#xff0c;而這個包含group by的SQL查詢寫的并不規范導致的&#xff0c;這個ONLY_FULL_GROUP_BY模式開啟之后檢查就會很嚴格&#xff0c;如果select列表…

uniapp為什么能支持多端開發?uniapp底層是怎么做的?

文章目錄 前言uniapp為什么能支持多端開發&#xff1f;uniapp底層是怎么做條件編譯uniapp的語法uniapp如何編譯為不同端的代碼uniapp的底層是如何做平臺特性適配的呢&#xff1f;后言 前言 hello world歡迎來到前端的新世界 &#x1f61c;當前文章系列專欄&#xff1a;uniapp &…

【lua】記錄函數名和參數(為了延后執行)

需求背景 一個服務緩存玩家信息到對象里&#xff0c;通過對象的函數定時同步到數據庫中&#xff0c;如果玩家掉線 清空對象&#xff0c;但是后續步驟導致對象數據需要變更&#xff0c;對象不存在&#xff0c; 就不方便變更了&#xff0c;怎么處理&#xff1f; 方案思考 1.臨…