PCIe協議之-DLLP詳解

?前言:

🌟數據鏈路層的功能

數據鏈路層將從物理層中獲得報文, 并將其傳遞給事務層; 同時接收事務層的報文, 并將其轉發到物理層; 核心的功能有以下三點
1.保證TLP在 PCIe 鏈路中的正確傳遞;
2.數據鏈路層使用了容錯和重傳機制,保證數據傳送的完整性與一致性,
3.此外數據鏈路層還需要對PCIe 鏈路進行管理與監控。

🌟什么是DLLP?

DLLP全稱是Data Link Layer Packet,是在PCI Express (PCIe) 架構中,數據鏈路層使用的一種數據包類型。在PCIe架構中,通信分為幾個層次,其中數據鏈路層位于物理層之上,負責提供可靠的點到點通信連接。本文將要介紹的DLLP指的正是這樣的數據包,其一般用于Ack/Nak機制、功耗管理、Flow Control(流量控制)和一些廠商自定義用途等。示意圖如下:
在這里插入圖片描述
DLLP的格式是固定的,一共有8個字節,包括Framing(SDP & END)。和TLP不一樣的地方是,DLLP并未攜帶任何路由信息,原因很簡單,因為DLLP只在相鄰的兩個設備的數據鏈路層之間通信,根本不需要路由。并且DLLP一般也不需要和事務層交換信息。

?DLLP的主要功能和類型

DLLP主要用于鏈路管理和維護功能,不是用戶數據的傳輸。以下是一些DLLP的主要功能和類型:
👉ACK/NACK:這些DLLP用于確認收到的 TLP(Transaction Layer Packet),或者在檢測到錯誤時反饋否定回應。ACK 和 NACK DLLP 對于維護鏈路的流控制和可靠性至關重要。
👉Flow Control Update:這些包用于流控協議,允許終端節點通告其緩沖區的可用空間,確定發送方可以發送多少數據避免溢出接收方。
👉Power Management Event (PME):在設備需要改變電源狀態或發起電源管理事件時,使用 PME DLLP通知對方。
👉Link Management Messages:用于鏈路初始化、重置等管理任務的消息傳遞。
👉Link Bandwidth Management Messages:當鏈路的寬帶發生變化時(如由單通道變為雙通道等),這些 DLLP用于通知鏈路兩端的設備。
👉Vendor Specific Messages:這種 DLLP為硬件制造商提供了一種方法來發送其定義的特定信息。

?DLLP與TLP兩者在數據鏈路層的主要區別:

TLP(Transaction Layer Packet):負責傳輸應用數據,即最終用戶的數據負載。這些數據包通常大于DLLP,可能因數據傳輸需求而變化大小。
DLLP(Data Link Layer Packet):其結構相對固定,并且它被用于鏈接層的操作和維護,而不是用戶數據的載體。
在數據鏈路層,一個重要的特性是錯誤檢測和重傳。DLLP通常包含序列號和校驗和,用于確保鏈路層通信的完整性。例如,如果一個ACK DLLP丟失,則發送端可能會重發前一個TLP,直到收到正確的ACK為止。
這種方式為PCIe提供了高度的可靠性,使其成為連接高速I/O設備如SSD、顯卡、網絡接口卡等的首選接口。

?DLLP的一般格式如下圖所示:

在這里插入圖片描述

?DLLP的類型與目標應用如下表所示:

在這里插入圖片描述

🌟用于Ack/Nak的DLLP的格式如下:

在這里插入圖片描述
在這里插入圖片描述

🌟用于功耗管理(Power Management)的DLLP的格式如下:

在這里插入圖片描述
在這里插入圖片描述

🌟用于Flow Control的DLLP的格式如下:

在這里插入圖片描述
在這里插入圖片描述

🌟廠商自定義的DLLP的格式如下:

在這里插入圖片描述

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

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

相關文章

頁面導出PDF,非可視區域如何解決

const exportToPDF () > {const element document.getElementById(chart-container);if (!element) return;const originalScrollHeight element.scrollHeight;// 臨時解除滾動條限制,確保所有內容都可見element.style.height ${originalScrollHeight}px;// …

殺死那個進程

一、場景 eclipse在啟動tomcat時,出現端口被占用的情況。我尋思著“任務管理器”沒出現相應程序在跑啊。 1.1問題:端口和進程的關系 端口和進程之間存在著一種關系,端口是一個邏輯概念,它用于標識網絡通信中的一個終點&#xff0…

SEC突發:以太坊ETF大概率獲批

美國證監會大概率批準以太坊現貨ETF。 5月20日,據外媒CoinDesk報道,知情人士透露,美國SEC周一要求證券交易所更新以太坊現貨ETF的19b-4備案文件。19b-4備案文件是一種表格,用于向SEC通報允許基金在交易所交易的規則變更。 三位消息…

利用cherry pick巧妙地將某次提交單獨合并到其他分支

0. 引言 最近在進行系統的多版本并行開發,涉及一些共有基礎功能提交時就遇到了麻煩,一份代碼需要向多個版本分支進行同步,以保證多版本都能有更新該基礎功能。 多次對比提交的方式顯然會帶來巨大的工作量。但實際上我們可以通過git的cherry…

「Python Socket超能力:網絡世界的隱形斗篷!」

Hi,我是阿佑,今天將帶領大家揭開Python Socket編程的神秘面紗,賦予我們的網絡應用隱形斗篷般的超能力! 深入探討Socket編程的革命性力量,教你如何用Python的Socket模塊來構建強大的網絡應用。從簡單的HTTP服務器到復雜…

MagicLens:新一代圖像搜索技術和產品形態

MagicLens:Self-Supervised Image Retrieval with Open-Ended Instructions MagicLens: 自監督圖像檢索與開放式指令 作者:Kai Zhang, Yi Luan, Hexiang Hu, Kenton Lee, Siyuan Qiao, Wenhu …

Selenium操作瀏覽器Cookie(增/刪/查看cookie)

天行健,君子以自強不息;地勢坤,君子以厚德載物。 每個人都有惰性,但不斷學習是好好生活的根本,共勉! 文章均為學習整理筆記,分享記錄為主,如有錯誤請指正,共同學習進步。…

更新.gitmodules的子模塊倉庫地址,但是沒有生效,需要運行命令

當你更新了 .gitmodules 文件中的子模塊倉庫地址后,為了使這些更改生效并同步到實際的子模塊目錄,你需要執行以下步驟: 同步.gitmodules的更改: 使用 git submodule sync 命令來同步.gitmodules文件中的URL修改到你的本地配置。執…

在VS Code中進行Java的單元測試

在VS Code中可以使用 Test Runner for Java擴展進行Java的測試執行和調試。 Test Runner for Java的功能 Test Runner for Java 結合 Language Support for Java by Red Hat 和 Debugger for Java這兩個插件提供如下功能: 運行測試: Test Runner for …

Flutter 中的 Flex 小部件:全面指南

Flutter 中的 Flex 小部件:全面指南 Flutter 的布局系統非常靈活,允許開發者以聲明式的方式構建復雜的用戶界面。Flex 是 Flutter 中用于創建靈活布局的核心小部件之一,它提供了水平和垂直的線性布局能力。本文將詳細介紹 Flex 小部件的使用…

QT學習(20):QStyle和自定義樣式

QStyle 樣式(繼承自QStyle類)代表控件的繪制并封裝GUI的外觀。QStyle是一個封裝了GUI外觀的抽象基類。Qt使用QStyle去執行幾乎所有的內置控件的繪制,確保控件外觀和原生控件風格風格相同。 class Q_WIDGETS_EXPORT QStyle : public QObject{…

【OpenCV】圖像通道合并與分離,ROI

介紹可以實現圖像通道合并與分離的API,這只是一種方式,后續還會介紹其他的合并與分離方法,以及ROI區域截取的方法。相關API: split() merge() Mat對象() 代碼: #include "iostream" #include "ope…

Hive的小文件處理

針對ORC存儲格式的小文件 --orc合并小文件的特定語法,使用concatenate(連接、使連續)關鍵字 --非分區表 alter table table_name concatenate;--分區表 alter table table_name partition(dtxxx) concatenate;針對TEXTFILE存儲格式的小文件 --將這些小文件進行合并,這里使用d…

MySQL進階之(九)數據庫的設計規范

九、數據庫的設計規范 9.1 范式的概念9.1.1 范式概述9.1.2 鍵和相關屬性 9.2 常見的范式9.2.1 第一范式9.2.2 第二范式9.2.3 第三范式9.2.4 第四范式9.2.5 第五范式(域鍵范式) 9.3 反范式化9.3.1 概述9.3.2 舉例9.3.3 反范式化新問題9.3.4 通用場景 9.4 …

18 - grace數據處理 - 補充 - 地下水儲量計算過程分解 - 地表水儲量變化Glads水文數據處理

18 - grace數據處理 - 補充 - 地下水儲量計算過程分解 - 地表水儲量變化 0 引言1 Grace陸地水儲量過程整合0 引言 由水量平衡方程可以將地下水儲量的計算過程分解為3個部分,第一部分計算陸地水儲量變化、第二部分計算地表水儲量變化、第三部分計算地下水儲量變化。本篇簡單介紹…

2024.05.28學習記錄

1. 小林coding 計網復習 2.代碼隨想錄刷題. 圖論.和復習數組.鏈表 3.rosebush完成select組件

在Go語言中如何實現變參函數和函數選項模式

在Go語言編程中,我們經常會遇到需要給函數傳遞可選參數的情況。傳統的做法是定義一個結構體,將所有可選參數作為結構體字段,然后在調用函數時創建該結構體的實例并傳遞。這種方式雖然可行,但是當可選參數較多時,創建結構體實例的代碼就會變得冗長???不太直觀。 Go語言的一個…

計算機筆記13(續20個)

210.辦公自動化服務是一種應用軟件實現的功能,不是網絡操作系統提供的服務 211.中文windows中包含的漢字庫文件庫文件是用來解決輸出時轉換為顯示或打印字模 212.漢字系統中的漢字字庫里存放的是漢字的字形碼 213.目前最為嚴重的病毒是木馬病毒 214.網絡安全服務…

景源暢信電商:做抖音運營怎么開始第一步?

在數字化時代的浪潮中,抖音作為一款短視頻平臺迅速崛起,成為許多人表達自我、分享生活的重要舞臺。隨著用戶量的激增,如何做好抖音運營,尤其是邁出成功的第一步,成為了眾多內容創作者和品牌主們關注的焦點。接下來&…

Web應用開發學習筆記————Vue框架

Vue框架快速入門 Vue入門 實現代碼&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vue入門</title><!--引入vue.js文件--><script src"../js/vue.js"><…