PCIE協議-2-事務層規范-Message Request Rules

2.2.8 消息請求規則

本文檔定義了以下幾組消息:

  • INTx 中斷信號
  • 電源管理
  • 錯誤信號
  • 鎖定事務支持
  • 插槽電源限制支持
  • 廠商定義消息
  • 延遲容忍度報告(LTR)消息
  • 優化緩沖區沖洗/填充(OBFF)消息
  • 設備就緒狀態(DRS)消息
  • 功能就緒狀態(FRS)消息
  • 精確時間測量(PTM)消息
  • requester ID[15:0] 和Tag[9:0],形成事務ID。
  • message code[7:0] - 指定請求中體現的特定消息。
  • 所有消息請求使用 Msg 或 MsgD 類型字段編碼。
  • message code字段必須完全解碼(不允許消息別名)。
  • Attr[2] 字段不是保留的,除非特別標明為保留。
  • Attr[1:0] 字段是保留的, 除非另有注明。
  • LN 不適用于消息請求,該位是保留的。
  • TH 不適用于消息請求,該位是保留的,除非另有注明。
  • AT[1:0] 必須是 00b,接收方不要求或鼓勵檢查這一點。
  • byte8 到 15 是保留的,除非另有注明。
  • 消息請求是轉發的,不需要完成返回。
  • 消息請求遵循與內存寫請求相同的排序規則。

包括廠商定義消息在內的許多類型的消息,可能在非 D0狀態下使用,強烈建議當端口的橋接功能處于 D1、D2 和 D3Hot 狀態時,端口處理消息的方式與處于 D0 狀態時相同。強烈建議?type0功能支持在非 D0狀態下生成和接收消息。

除了地址和ID路由之外,消息還支持幾種其他的路由機制。這些機制被稱為“隱式”的,因為不需要指定地址或ID來確定目的地,而是通過路由類型隱含目的地。以下規則涵蓋了消息路由機制:

  • 消息路由使用類型字段的 r[2:0] 子字段來確定
  1. 消息路由的 r[2:0] 值在表 2-17 中定義
  2. 每個消息的允許值在以下各節中定義

?

2.2.8.1 INTx 中斷信號規則

消息信號中斷(MSI 或 MSI-X)是 PCI Express 中首選的中斷信號機制(見第 6.1 節)。然而,在某些系統中,可能存在無法支持 MSI 或 MSI-X 機制的功能。INTx 虛擬線中斷信號機制用于支持傳統終端和 PCI Express/PCI(-X)橋接,在不能使用 MSI 或 MSI-X 機制的情況下使用。Switch必須支持此機制。以下規則適用于 INTx 中斷信號機制:

  • INTx 機制使用八個不同的消息(見表 2-18)。
  • Assert_INTx/Deassert_INTx 消息不包括數據有效載荷(TLP 類型為 Msg)。
  • 長度字段是保留的。
  • 使用 Assert_INTx/Deassert_INTx 消息時,requester?ID 中的function number字段必須是 0。請注意,對于非 ARI 和 ARI 請求者 ID,function number字段的大小是不同的。
  • Assert_INTx/Deassert_INTx 消息只能由上游端口發出。接收方可以選擇性檢查此規則的違規情況,如果接收方實施此檢查并確定 Assert_INTx/Deassert_INTx 違反此規則,它必須將 TLP 作為畸形 TLP 處理。這是一個與接收端口相關聯的報告錯誤(見第 6.2 節)。
  • Assert_INTx 和 Deassert_INTx 中斷消息必須使用默認的流量類別指定符(TC0)。接收方必須檢查此規則的違規情況,如果接收方確定 TLP 違反此規則,它必須將 TLP 作為畸形 TLP 處理。這是一個與接收端口相關聯的報告錯誤(見第 6.2 節)。

?Assert_INTx/Deassert_INTx 消息對構成了每個傳統 PCI 中斷(指定為 A、B、C 和 D)的四個“虛擬線”。 以下規則描述了這些虛擬線的操作:

  • 每個鏈路兩端的組件必須使用 Assert/Deassert 消息來跟蹤四個虛擬線的狀態,以代表每個對應虛擬線的激活和非激活轉換(分別)。
    • Assert_INTx 表示 INTx(x = A、B、C 或 D)虛擬線的激活轉換。
    • Deassert_INTx 表示 INTx(x = A、B、C 或 D)虛擬線的非激活轉換。
  • 當上游端口的 INTx 虛擬線的狀態的本地邏輯發生變化時,該端口必須使用適當的 Assert_INTx 或 Deassert_INTx 消息,將這種狀態變化通知給同一鏈路另一端的下游端口。 注意:重復的 Assert_INTx/Deassert_INTx 消息沒有效果,但不是錯誤。
  • 當命令寄存器的中斷禁用位(見第 7.5.1.1.3 節)被設置時,INTx 中斷信號被禁用。
    • 如果在設置中斷禁用位時任何 INTx 虛擬線處于激活狀態,則必須通過傳輸適當的 Deassert_INTx 消息來取消斷言。
  • 虛擬和實際的 PCI-PCI 橋必須根據橋的次級側的設備號,映射在橋的次級側跟蹤的虛擬線,如表 2-19 所示。
  • Switch必須獨立跟蹤每個下游端口的四個虛擬線的狀態,并在其上游端口呈現一組“合并”的虛擬線。
  • 如果Switch的下游端口變為 DL_Down 狀態,則與該端口相關聯的 INTx 虛擬線必須被取消斷言,并且相應更新Switch上游端口的虛擬線狀態。
    • 如果這導致任何上游 INTx 虛擬線被取消斷言,則上游端口必須發送適當的 Deassert_INTx 消息。
  • 根復合體必須獨立跟蹤其每個下游端口的四個 INTx 虛擬線的狀態,并將這些虛擬信號映射到系統的中斷資源。 映射的詳細信息是特定于系統實現的。
  • 如果根復合體的下游端口變為 DL_Down 狀態,則與該端口相關聯的 INTx 虛擬線必須被取消斷言,并且必須丟棄任何相關的系統中斷資源請求。

2.2.8.2 電源管理消息

這些消息用于支持 PCI Express 電源管理。以下規則定義了電源管理消息:

  • 表 2-20 定義了電源管理消息。
  • 電源管理消息不包括數據有效載荷(TLP 類型為 Msg)。
  • 長度字段是保留的。
  • 對于 PM_Active_State_Nak 消息,requester ID 中的function number字段必須包含發送該消息的下游端口的function number,或者為了與本規范的早期版本兼容,使用 00b。
  • 對于 PME_TO_Ack 消息,請求者 ID 中的function number字段必須保留,或者為了與本規范的早期版本兼容,必須包含上游端口關聯的某個function的fnction number。請注意,對于非 ARI 和 ARI 請求者 ID,function number字段的大小是不同的。
  • 電源管理消息必須使用默認的流量類別指定符(TC0),接收方必須檢查此規則的違規情況。如果接收方確定 TLP 違反此規則,它必須將 TLP 作為畸形?TLP 處理。這是一個與接收端口相關聯的報告錯誤(見第 6.2 節)。

2.2.8.3 錯誤信號消息

錯誤信號消息用于在特定事務上發生的錯誤以及不一定與特定事務相關聯的錯誤進行信號傳遞。這些消息由檢測到錯誤的agen發起。

  • 表2-21定義了錯誤信號消息。
  • 錯誤信號消息不包含數據有效載荷(TLP類型是消息)。
  • 長度字段是保留的。
  • 使用錯誤信號消息時,requester ID中的function number字段必須指明哪個功能正在發出錯誤信號。請注意,對于非ARI和ARI requester ID,function number字段的大小是不同的。
  • 錯誤信號消息必須使用默認的流量類別設計符(TC0)。接收器必須檢查違反此規則的情況,如果接收器確定TLP違反了此規則,它必須將TLP作為畸形TLP處理。 這是一個與接收端口相關聯的報告錯誤(見第6.2節)。

消息的發起者通過消息頭標的requester ID進行識別。根復用體將這些錯誤消息轉換成平臺級事件。有關這些消息用途的詳細信息,請參考第6.2節。

ERR_COR消息在消息頭標中有一個ERR_COR Subclass(ECS)字段,該字段允許不同的子類相互區分。見圖2-27,ERR_NONFATAL和ERR_FATAL消息沒有ECS字段。

ERR_COR Subclass(ECS)字段按照表2-22所示進行編碼,以指示ERR_COR消息的子類。

2.2.8.4 鎖定事務支持

解鎖消息用于支持鎖定事務序列。有關鎖定事務序列的詳細信息,請參考第6.5節。以下是形成解鎖消息的規則:

  • 表2-23定義了解鎖消息。
  • 解鎖消息不包含數據有效載荷(TLP類型是消息)。
  • 長度字段是保留的。
  • 使用解鎖消息時,requester ID中function number字段是保留的。
  • 解鎖消息必須使用默認的流量類別設計符(TC0)。接收器必須檢查違反此規則的情況。如果接收器確定TLP違反了此規則,它必須將TLP作為畸形TLP處理。這是一個與接收端口相關聯的報告錯誤(見第6.2節)。

?

?2.2.8.5 插槽電源限制支持

此消息用于從下游端口(RC或Switch的端口)向同一鏈路上的組件(具有EP、SW或PCI Express-PCI橋接功能)的上游端口傳遞插槽電源限制值。

  • 表2-24定義了Set_Slot_Power_Limit消息。
  • Set_Slot_Power_Limit消息包含1DW 的有效載荷(TLP類型是MsgD)
  • Set_Slot_Power_Limit消息必須使用默認的流量類別設計符(TC0)。接收器必須檢查違反此規則的情況。如果接收器確定TLP違反了此規則,它必須將TLP作為畸形TLP處理。這是一個與接收端口相關聯的報告錯誤(見第6.2節)。

Set_Slot_Power_Limit消息包含一DW的有效載荷。該數據有效載荷從下游端口的插槽能力寄存器復制,并寫入鏈路另一端的上游端口的設備能力寄存器中。數據有效載荷的byte1的bit[1:0]映射到插槽電源限制范圍字段,byte0的bit[7:0]映射到插槽電源限制值字段。數據有效載荷的byte3的bit[7:0]byte2的bit[7:0]以及byte1的bit[7:2]必須由發送器設置為零,并由接收器忽略。當以下事件發生時,下游端口(RC或SW的端口)必須自動發送此消息:

  • 在對插槽能力寄存器進行配置寫入時,數據鏈路層報告DL_Up狀態。
  • 在鏈路從非DL_Up狀態轉換為DL_Up狀態的任何時刻,并且插槽控制寄存器中的自動插槽電源限制禁用位為清除狀態。如果插槽能力寄存器尚未初始化,則此傳輸是可選的。

鏈路另一端的組件(具有端點、交換機或橋接功能),接收到Set_Slot_Power_Limit消息后,必須將數據有效載荷中的值復制到與組件的上游端口相關聯的設備能力寄存器中。專門針對系統層(例如,系統主板)集成的PCI Express組件,以及針對集成在適配器上的組件,如果整個適配器的功耗低于適配器外形規格中指定的最低電源限制(如相應外形規格中定義的),則允許將設備能力寄存器中的所有插槽電源限制范圍和插槽電源限制值字段的值硬連線為全零,并且不需要將Set_Slot_Power_Limit消息的有效載荷復制到該寄存器中。?

?

?

?

?

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

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

相關文章

【系統架構師】-案例篇(八)數據流圖

數據流:數據流是系統中數據的流動,它可以是輸入、輸出或存儲在系統中的數據。 數據處理過程:數據處理過程是對數據進行處理的單元,可以是一個物理設備或軟件模塊。 數據存儲:數據存儲是系統中存儲數據的單元&#xff0…

焦作定制在線教育系統上線,小學英語教案怎么寫?教案要怎么下筆?

說到小學英語這也是當前,學生們的重點,那作為配套的輔導機構,要怎么寫教案?這也是需要關注的地方,因為教案關系著教學,有了它學生們上課才會更有效率,所以,會寫教案也是上課的第一步。 教案要怎…

小紅書·電商運營課:小紅書開店流程,小紅書電商如何運營(18節視頻課)

課程目錄 第1節課:學習流程以及后續實操流程注意事項 第2節課:小紅書店鋪類型解析以及開店細節 第3節課:小紅書電商運營兩種玩法之多品店鋪解析 第4節課:小紅書電商運營兩種玩法之單品店鋪解析 第5節課:選品課(多品類類目推薦) 第6節課:選品課(多品類類目推薦) 第7節課:…

百度GL地圖實現某一段路的路況(new BMapGL.DrivingRouteLine)

功能描述: 1.百度地圖實現點擊地圖出現起點,再次點擊出現終點(起點終點能拖動)繪制完終點后獲取該路的路況并且起點和終點可以拖動實現實時更新(新繪制的路段的)路況 2.地點搜索 效果如下: 關鍵…

Springboot+Vue項目-基于Java+MySQL的制造裝備物聯及生產管理ERP系統(附源碼+演示視頻+LW)

大家好!我是程序猿老A,感謝您閱讀本文,歡迎一鍵三連哦。 💞當前專欄:Java畢業設計 精彩專欄推薦👇🏻👇🏻👇🏻 🎀 Python畢業設計 &…

Web自動化-日志收集

目標 1. 理解日志的相關概念 2. 掌握日志的基本用法 3. 掌握日志的高級用法 一、日志相關概念 目標 1. 了解日志的概念 2. 理解日志的作用 3. 掌握常見的日志級別 1. 日志 概念:日志就是用于記錄系統運行時的信息,對一個事件的記錄&#xff1b…

ffmpeg解析rtsp流獲取視頻的寬高

要使用FFmpeg來解析RTSP流并獲取視頻的寬度和高度,你可以使用avformat_find_stream_info函數來獲取流的信息,然后從AVStream結構體中讀取視頻的寬度和高度。以下是一個簡單的示例代碼: #include <libavformat/avformat.h> int main(int argc, char *argv[]) {AVForm…

ppt轉pdf的java實現

一、實現方式 java采用jacob包的功能&#xff0c;把ppt演示文稿轉換為pdf。 支持文件格式&#xff1a;pptx,ppt 二、事先準備 1、依賴于office&#xff0c;需安裝office辦公軟件 2、需要下載一個jacob-1.20-x64.dll的文件&#xff0c;放到java的bin目錄下。 文件可以網上搜…

電影網站|基于SSM+vue的電影網站系統(源碼+數據庫+文檔)

電影網站 目錄 基于SSMvue的電影網站系統 一、前言 二、系統設計 三、系統功能設計 1 系統功能模塊 2 管理員功能模塊 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推薦 八、源碼獲取&#xff1a; 博主介紹&#xff1a;??大廠碼農|畢設布道…

Linux sliplogin命令教程:如何使用sliplogin命令建立SLIP服務器(附實例詳解和注意事項)

Linux sliplogin命令介紹 sliplogin&#xff08;Serial Line Internet Protocol Login&#xff09;命令用于將SLIP接口加入標準輸入&#xff0c;把一般終端機的連線變成SLIP連線。通常可用來建立SLIP服務器&#xff0c;讓遠端電腦以SLIP連線到服務器。 Linux sliplogin命令適…

貪心算法-----檸檬水找零

今日題目&#xff1a;leetcode860 題目鏈接&#xff1a;點擊跳轉題目 分析&#xff1a; 顧客只會給三種面值&#xff1a;5、10、20&#xff0c;先分類討論 當收到5美元時&#xff1a;不用找零&#xff0c;面值5張數1當收到10美元時&#xff1a;找零5美元&#xff0c;面值5張數…

未授權訪問:JBoss未授權訪問漏洞

目錄 1、漏洞原理? 2、環境搭建 3、未授權訪問 4、利用jboss.deployment getshell 防御手段 今天繼續學習各種未授權訪問的知識和相關的實操實驗&#xff0c;一共有好多篇&#xff0c;內容主要是參考先知社區的一位大佬的關于未授權訪問的好文章&#xff0c;還有其他大佬…

【Ubuntu 安裝erlang】

apt-get 安裝 apt-get install erlang或 源碼安裝 git clone https://github.com/erlang/otp.git cd otp git checkout maint-25 # current latest stable version ./configure make make install安裝完后&#xff0c;驗證是否成功 # 命令行輸入 erl

7.用戶、角色、菜單表SQL

用戶與角色是 多對多的關系&#xff1b; 角色與菜單權限 多對多的關系&#xff1b; 菜單權限表 create table acl_permission (id char(19) not null DEFAULT COMMENT 編號,pid CHAR(19) not null DEFAULT COMMENT 所屬上級,name VARCHAR(20) not NULL DEFAULT COMMENT …

C語言經典例題-7

1.計算三角形的周長和面積 題目描述&#xff1a; 根據給出的三角形3條邊a, b, c&#xff08;0 < a, b, c < 100,000&#xff09;&#xff0c;計算三角形的周長和面積。 輸入描述: 一行&#xff0c;三角形3條邊&#xff08;能構成三角形&#xff09;&#xff0c;中間用…

【ARM 嵌入式 C 入門及漸進 12.3 -- 將數值的第 s 位到 e 位清零】

請閱讀【嵌入式開發學習必備專欄】 文章目錄 將數值的第 s 位到 e 位清零 將數值的第 s 位到 e 位清零 為了定義一個VAL_CLR_BITS(val, s, n)宏&#xff0c;該宏將變量val的第s位到第n位清零&#xff08;假設n > s&#xff09;&#xff0c;其余位的值保持不變&#xff0c;我…

系統集成項目管理工程師第4章思維導圖發布

2024年開年&#xff0c;軟考系統集成項目管理工程師官方教程&#xff0c;迎來了闊別7年的大改版&#xff0c;改版之后的軟考中項考試&#xff0c;離同宗兄弟高項考試漸行漸遠。 中項第3版教程&#xff0c;僅僅從教程來看&#xff0c;其難度已經不亞于高級的信息系統項目管理師&…

數據結構與算法學習筆記三---循環隊列的表示和實現(C語言)

目錄 前言 1.為啥要使用循環隊列 2.隊列的順序表示和實現 1.定義 2.初始化 3.銷毀 4.清空 5.空隊列 6.隊列長度 7.獲取隊頭 8.入隊 9.出隊 10.遍歷隊列 11.完整代碼 前言 本篇博客介紹棧和隊列的表示和實現。 1.為啥要使用循環隊列 上篇文章中我們知道了順序隊列…

Hive Transaction事務表(含實現原理)

Hive Transaction事務表 在Hive中&#xff0c;事務表&#xff08;Transactional Tables&#xff09;允許用戶執行事務性操作&#xff0c;包括ACID&#xff08;原子性、一致性、隔離性、持久性&#xff09;特性。事務表是在Hive 0.14版本引入的&#xff0c;并且在后續版本中不斷…

LabVIEW天然氣壓縮因子軟件設計

LabVIEW天然氣壓縮因子軟件設計 項目背景 天然氣作為一種重要的能源&#xff0c;其壓縮因子的準確計算對于流量的計量和輸送過程的優化具有關鍵意義。傳統的計算方法不僅步驟繁瑣&#xff0c;而且難以滿足現場快速響應的需求。因此&#xff0c;開發一款既能保證計算精度又便于…