前面的文章中介紹過,為了保證視頻、音頻等數(shù)據(jù)得到優(yōu)先傳輸,PCIe總線實現(xiàn)了一種叫做Quality of Service(QoS)的機制。QoS可以滿足視頻、音頻等對Latency和實時性(Isochronous)要求比較高(一般不可以被打斷)的應(yīng)用需求。QoS主要通過VC(Virtual Channel)和TC(Traffic Class)來實現(xiàn)。
VC的相關(guān)寄存器位于PCIe配置空間的擴展部分(PCIe Extended Capability Space),如下圖所示:

前面的文章中介紹過,每一個VC都有獨立的Buffer,某一個VC Buffer滿了并不會影響其他VC的使用。但是只靠VC并不能實現(xiàn)QoS中的優(yōu)先級的功能,這還需要TC(Traffic Class)的支持。TC的值由TLP Header中的Byte1的bit[6:4]定義,如下圖所示。顯然TC值的范圍為0~7,值越大優(yōu)先級越高,默認為0(優(yōu)先級最低)。在初始化的時候,PCIe驅(qū)動程序會為每一種類型的包分配好合適的TC值(優(yōu)先級)。

如果PCIe驅(qū)動程序沒有找到PCIe Extended Capability Space,則認為該設(shè)備只有一個VC,即VC0。此時再為每一個TLP分配不同的TC值,顯然是沒有意義的。因此會默認采用TC0/VC0組合,即不支持QoS功能。換一句話說,如果某一個PCIe設(shè)備只支持一個VC(VC0),那么就沒有QoS什么事了。
注:本次連載的博客只是簡單地介紹QoS的功能和應(yīng)用,關(guān)于QoS的詳細內(nèi)容,如VC仲裁,端口仲裁,實時性(Isochronous)等相關(guān)內(nèi)容,還請參考PCIe Spec的相關(guān)章節(jié)。
PCIe驅(qū)動程序(配置軟件)通過修改VC資源控制寄存器(VC Resource Control Register)中的TC/VC Map位來實現(xiàn)TC/VC Mapping。同時通過VC ID位來選擇相應(yīng)的VC。如下圖所示:

圖中的例子,TC0、TC1對應(yīng)VC0,而TC2~TC4對應(yīng)的是VC3。
TC/VC Mapping采用了一種靈活的機制,但是仍然需要注意以下幾點:
· TC/VC Mapping是針對Link兩端的端口(Ports)的;
· TC0會被自動地Map到VC0,且只能Map到VC0;
· 其他的TC可以被Map到任意的VC上;
· 一個TC一般最多只能Map到一個VC上;
· 可以有TC或者VC不被使用。
如果Link的兩個端口(Ports)中,VC數(shù)量不一致,則該Link只能服從VC數(shù)量少的端口,如下圖所示:

PCIe驅(qū)動程序可以通過查詢擴展配置空間中的Extended VC Count來確定該端口支持的VC數(shù)量,如下圖所示:

-
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
129994 -
總線
+關(guān)注
關(guān)注
10文章
3040瀏覽量
91660 -
PCIe
+關(guān)注
關(guān)注
16文章
1461瀏覽量
88422
原文標題:【博文連載】PCIe掃盲——Quality of Service簡介
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
什么是PM QoS呢
一種IEEE 802.16寬帶無線接入系統(tǒng)的QoS架構(gòu)
QoS Control in Streaming Media
無線路由器的QoS支持
QoS是什么啊?
什么是QOS
網(wǎng)絡(luò)qos技術(shù)_qos是什么
基于匯聚數(shù)據(jù)流實現(xiàn)QoS
常用的QoS技術(shù)如何解決網(wǎng)絡(luò)延遲和阻塞
簡單介紹GaussDB網(wǎng)絡(luò)調(diào)度涉及的調(diào)度算法
服務(wù)質(zhì)量QoS(Quality of Service)在網(wǎng)絡(luò)中的重要性
什么是網(wǎng)絡(luò)中的服務(wù)質(zhì)量 (QoS),其相關(guān)技術(shù)和關(guān)鍵指標有哪些?
PCIe總線實現(xiàn)了一種叫做Quality of Service(QoS)的機制
評論