国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

PCIe協(xié)議概覽總結(jié)

2023-02-22 09:54 作者:開發(fā)員阿夢  | 我要投稿

簡述

PCIe總線是一種高速差分總線。(高速差分總線代替并行總線也是大勢所趨)。與單端并行信號相比,高速差分總線可以使用更高的時鐘頻率,更少的信號線,完成之前需要許多單端并行總線才能達到的總線帶寬。

PCIe總線繼承了一些PCI總線中的核心思想,比如“橋”的概念,PCIe總線將通過一種類似的方式進行總線擴展(Switch)。PCI總線與設(shè)備之間是共享總線的連接方式,許多設(shè)備連接到同一條PCI總線上。而PCIe使用的是端到端的連接方式。一條PCIe鏈路的兩端只能各連接一個設(shè)備,這兩個設(shè)備互為數(shù)據(jù)的發(fā)送端和接收端。PCIe總線有多個層次,這種結(jié)構(gòu)與網(wǎng)絡(luò)協(xié)議棧類似。

?

如上圖所示,一對發(fā)送端和接收端的鏈路。圖中下方是是PCIe總線的物理鏈路(Lane)。每個Lane中有兩組差分信號(比如圖中的D-與D+是一組差分信號)。可以看到,發(fā)送端的TX部件與接收端的RX部件使用一組差分信號連接,于是此鏈路叫做發(fā)送端的發(fā)送鏈路,接收端的接收鏈路;反之亦然。一個PCIe可以由多個Lane組成(發(fā)送設(shè)備/接收設(shè)備有多個發(fā)送/接收部件/接口?)。

PCIe總線使用的信號與PCI總線大不相同。這里一個有趣的知識點是,PCIe總線中有JTAG(Joint Test Action Group)信號。JTAG其實是一種國際標準的測試協(xié)議,主要用于芯片內(nèi)部測試。當然對于我來說最常見的場景是在FPGA上使用JTAG進行在線編程。處理器也可以使用JTAG接口進行系統(tǒng)級的調(diào)試,設(shè)置斷點、讀取內(nèi)部寄存器和存儲器等一系列操作。因此JTAG真的可以用于“逆向工程”,分析產(chǎn)品的實現(xiàn)細節(jié)。所以,在正式產(chǎn)品中一般不保留JTAG接口。

PCIe采用了串行的連接方式,并使用數(shù)據(jù)包(Package)進行數(shù)據(jù)傳輸,采用這種結(jié)構(gòu)有效去除了在PCI總線中存在的一些邊帶信號,如INTx(中斷信號)和PME#等信號。

層次結(jié)構(gòu)

PCIe總線的各個層次由硬件邏輯實現(xiàn)。數(shù)據(jù)報文首先在設(shè)備的核心層(Device Core)產(chǎn)生,然后經(jīng)過設(shè)備的事務層(Transaction Layer)、數(shù)據(jù)鏈路層(Data Link Layer)和物理層,最終發(fā)送出去。接收端發(fā)送的數(shù)據(jù)也需要經(jīng)過層級最終到達核心層。

?

按照順序講。

事務層:定義了PCIe總線使用的總線事務,其中多數(shù)總線事務與PCI總線事務兼容。事務層接收來自于PCIe設(shè)備核心層的數(shù)據(jù),并將其封裝為TLP(Transaction Layer Packet)后,發(fā)向數(shù)據(jù)鏈路層。事務層也接收從數(shù)據(jù)鏈路層發(fā)來的數(shù)據(jù)報文,然后轉(zhuǎn)發(fā)到設(shè)備的核心層。事務層要處理PCIe的“序”。在PCIe總線中,事務層傳遞報文時可以亂序,這為PCIe設(shè)備的設(shè)計制造了不小的麻煩。事務層還使用流量控制機制保證PCIe鏈路的使用效率。

數(shù)據(jù)鏈路層:該層保證來自發(fā)送端事務層的報文可以可靠、完整地發(fā)送到接收端的數(shù)據(jù)鏈路層。來自事務層的報文在通過數(shù)據(jù)鏈路層時,將被添加Sequence Number前綴和CRC后綴(形成DLLP)。數(shù)據(jù)鏈路層使用ACK/NAK協(xié)議保證報文的可靠傳遞。PCIe總線的數(shù)據(jù)還定義了多種DLLP(Data Link Layer Packet),其產(chǎn)生于數(shù)據(jù)鏈路層,終止于數(shù)據(jù)鏈路層。

物理層:最后,物理層是PCIe總線的最底層,將PCIe設(shè)備連接在一起。PCIe總線的物理電氣特性決定了PCIe鏈路只能使用端到端的連接方式。PCIe總線的物理層為PCIe設(shè)備間的····數(shù)據(jù)通信提供傳送介質(zhì),為數(shù)據(jù)傳送提供可靠的物理環(huán)境。物理層是PCIe體系結(jié)構(gòu)最為重要也是最難以實現(xiàn)的組成部分。PCIe總線的物理層定義了LTSSM(Link Training and Status State Machine)狀態(tài)機,PCIe使用該狀態(tài)機管理鏈路狀態(tài),并進行鏈路訓練,鏈路恢復和電源管理。在物理層還定義了一些專門的“序列”,有的書籍將物理層這些“序列”稱為PLP(Physical Layer Packet)這些序列用于同步PCIe鏈路,并進行鏈路管理。

?鏈路擴展方式

PCI總線中使用PCI橋進行總線擴展。在PCIe總線中,擴展組件是Switch。

Switch是一個特殊的設(shè)備,其有一個上游端口,和2~n個下游端口。被叫做上游端口是因為能夠和PCIe的根復合體(RC, Root Complex)相連;其他的端口都是下游端口。下游端口一般與端點設(shè)備相連(EndPoint, EP)或者是連接其他的Switch。對應的概念有上游鏈路(與上游端口相連的PCIe鏈路)和下游鏈路。

?

在Switch中,數(shù)據(jù)流出的端口被稱為Egress端口,Ingress指的數(shù)據(jù)流入Switch使用的端口。對于RC(Root Complex,根復合體)也有同樣的定義。PCIe的Switch還支持一種CrossLink傳輸方式。此方式主要是為了解決不同處理器系統(tǒng)之間的互連。

?

如上圖所示,此方式在物理結(jié)構(gòu)上表現(xiàn)為一個Switch的上/下游端口與另一個Switch的上/下游端口直接相連,但是其實這個PCIe鏈路經(jīng)過訓練后,仍然是一個端口作為上游端口,而另一個端口作為下游端口[P109]。

?

接下來一部分內(nèi)容是PCIe中的復位方式(初始化),以及復位信號的說明。

再之后的內(nèi)容,是關(guān)于PCIe體系結(jié)構(gòu)的組成。

根復合體RC

以下是一幅PCIe總線的體系結(jié)構(gòu)示意圖。關(guān)于細節(jié)的部分我這里不詳述,但是可以看到,這里出現(xiàn)了核心組件RC的內(nèi)部結(jié)構(gòu)。

?

PCIe總線中RC的定位,可以理解為PCI總線中HOST主橋的定位。PCIe總線中也沒有定義RC應當如何設(shè)計,因此不同處理器對RC的結(jié)構(gòu)設(shè)計不同,甚至不一定有明確的RC設(shè)計。比如在書中提到的PowerPC處理器P4080中,定義的PCIe控制器起的作用類似于RC。但是總的來說,PCIe總線的處理器有以下的通用結(jié)構(gòu)。

?

如PCI總線中的HOST主橋一樣,RC也擔負著存儲器域和PCI域地址轉(zhuǎn)換的功能。但是其功能不止于此。RC還要完成物理信號的轉(zhuǎn)換(因為在處理器中的總線如FSB和外設(shè)的PCIe總線之間的電氣特性并不兼容)。

Switch內(nèi)部結(jié)構(gòu)

下圖是Switch內(nèi)部的結(jié)構(gòu)。

?

如上圖所示,從軟件的角度來看,Switch內(nèi)部是由多個虛擬PCI橋組成的。(圖中的P2P Bridge,是PCI to PCI橋)。每一個Switch內(nèi)的上下游端口都對應一個虛擬的PCI橋。在Switch內(nèi)部,還有一條虛擬的PCI總線來連接這些虛擬的PCI橋。(這里的虛擬應當都是指軟件實現(xiàn))。和PCIe總線中的RC和EP一樣,Swtich也需要處理PCIe總線傳輸過程中的QoS問題。PCIe中的不同數(shù)據(jù)報文有不同的優(yōu)先級,根據(jù)優(yōu)先級不同的報文獲得不同的數(shù)據(jù)帶寬。PCIe總線要保證優(yōu)先級高的報文優(yōu)先到達。在具體的PCIe通路傳輸中,PCIe總線采用了虛擬多通路技術(shù)(VC, Virtual Channel),并為數(shù)據(jù)報文設(shè)定一個TC(Traffic Class),此標簽由3位組成,為報文設(shè)置8個優(yōu)先級。這8類數(shù)據(jù)報文可以根據(jù)需要選擇不同的VC進行傳遞。

在PCIe總線的每一條鏈路上,最多可以支持8個獨立的VC,每個VC可以設(shè)置獨立的緩沖,用來接收和發(fā)送數(shù)據(jù)報文。TC和VC之間緊密相連,是一對多的關(guān)系。具體地講,就是說同一個VC上可以傳輸很多不同優(yōu)先級(TC)的報文,但是同一個優(yōu)先級的報文只能在一條指定的VC上傳輸。

?PCIe鏈路中的仲裁

了解了Switch中通道的問題之后,稍作思考可知,既然在同一個通道上會存在多個TC的數(shù)據(jù)報文,則必然會存在數(shù)據(jù)報文在傳輸產(chǎn)生的競爭問題。于是,在Switch中必須有對應的仲裁機制。即PCIe總線中基于的VC仲裁。

在PCIe中,有兩種形式的仲裁,基于端口的仲裁基于VC的仲裁

基于端口的仲裁,當然就是對端口的使用出現(xiàn)了競爭情況。根據(jù)前面,對PCIe總線中端口的分類,就是說當多個Ingress端口訪問同一個Egress端口時,就會出現(xiàn)端口競爭的情況。

我們對著圖講。

?

具體地講,有以下三種情況。注意,上圖中的EP代表EndPoint,即端點設(shè)備。

?????? 1. Switch的Egress端口。當EPA與EPB同時訪問EPC、EPD或者DDR時,二者對分別通過Ingress PortA、B對Egress PortC的訪問就形成了競爭,Switch內(nèi)部需要通過端口仲裁決定EPA還是EPB的數(shù)據(jù)報文先通過EPC。

?????? 2. RC的Egress端口。比如當端口1、3同時對EPC進行訪問,則二者的請求在RC的Egress Port2處必然要經(jīng)過端口仲裁。

?????? 3. RC通往主存儲器的端口。當RC中的端口1、2、3同時對DDR Controller發(fā)起了訪問,那么三者的請求在RC的端口4處,必然要進行仲裁放行。

?

當數(shù)據(jù)報文到達端口后,先進行端口仲裁,然后才進行VC仲裁。PCIe總線規(guī)定了3種VC仲裁方式:嚴格優(yōu)先級(Strict Priority)、時間片輪轉(zhuǎn)(RR)、加權(quán)時間片輪轉(zhuǎn)(WRR)。更具體地講,端口仲裁的結(jié)果是使得數(shù)據(jù)報文獲得VC的使用權(quán);而VC仲裁進一步?jīng)Q定哪個VC先通過輸出端口發(fā)送到物理鏈路。[P121-122]

?

往后的4.3節(jié)詳解了PCIe中擴展配置空間的寄存器信息。


PCIe協(xié)議概覽總結(jié)的評論 (共 條)

分享到微博請遵守國家法律
抚顺市| 沙雅县| 元阳县| 沙河市| 乌兰察布市| 崇阳县| 娄烦县| 双辽市| 顺义区| 蓬溪县| 贵阳市| 天水市| 永年县| 镇雄县| 海兴县| 湟源县| 桑植县| 天镇县| 涪陵区| 双流县| 江北区| 靖江市| 旺苍县| 盈江县| 恩平市| 循化| 睢宁县| 宾川县| 大荔县| 阳江市| 教育| 连江县| 巴彦淖尔市| 张掖市| 开远市| 福安市| 贵阳市| 葵青区| 大埔县| 南陵县| 常州市|