0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區
會(huì )員中心
創(chuàng )作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內不再提示

一個(gè)簡(jiǎn)單地的例子來(lái)回顧PCIe總線(xiàn)的結構、事務(wù)層、數據鏈路層和物理層

SwM2_ChinaAET ? 來(lái)源:未知 ? 作者:李倩 ? 2018-05-02 09:58 ? 次閱讀

前面的一系列文章簡(jiǎn)要地介紹了PCIe總線(xiàn)的結構、事務(wù)層、數據鏈路層和物理層。下面我們用一個(gè)簡(jiǎn)單地的例子來(lái)回顧并總結一下。

如下圖所示,Requester的應用層(軟件層)首先向其事務(wù)層發(fā)送如下信息:32位(或者64位)的Memory地址,事務(wù)類(lèi)型(Transaction Type),數據量(以DW為單位),TC(Traffic Class,即優(yōu)先級),字節使能(Byte Enable)和屬性信息(Attributes)等。

然后接收端的事務(wù)層使用這些信息創(chuàng )建了一個(gè)Mrd TLP(Memory Read的事務(wù)層包),并將Requester的ID(BDF,Bus & Device & Function)寫(xiě)入到該TLP的Header中,以便Completer根據這一BDF將Completion信息返回給Requester。然后這個(gè)TLP會(huì )根據其TC的值被放到對應的VC Buffer中,Flow Control邏輯便會(huì )檢車(chē)接收端的對應的接收VC Buffer空間是否充足。一旦接收端的VC Buffer空間充足,TLP便會(huì )準備被向接收端發(fā)送。

注:TLP的Header實(shí)際上有兩種,32位的地址對應的是3DW的Header,64為的地址對應的是4DW的Header。這在后續的文章中會(huì )詳細介紹。

當TLP到達數據鏈路層(Data Link Layer)時(shí)候,數據鏈路層會(huì )為其添加上12位的序列號(Sequence Number)和32位的LCRC。并將添加上這些信息之后的TLP(即DLLP)在Replay Buffer中做一個(gè)備份,并隨后將其發(fā)送至物理層。

物理層接收到DLLP之后,為其添加上起始字符(Start & End Characters,又叫幀字符,Frame Characters),然后依次進(jìn)行解字節(Strip Byte)、擾碼(Scramble)、8b/10b編碼并進(jìn)行串行化,隨后發(fā)送至相鄰的PCIe設備的物理層。

接收端PCIe設備(即Completer)的物理層接收到數據之后,依次執行與發(fā)送端相反的操作。并從數據中恢復出時(shí)鐘,然后將恢復出來(lái)的DLLP發(fā)送至數據鏈路層。

Completer的數據鏈路層首先檢查DLLP中的LCRC,如果存在錯誤,則向Requester發(fā)送一個(gè)Nak類(lèi)型的DLLP,該DLLP包含了其接受到的DLLP中的序列號(Sequence Number)。Requester的數據鏈路層接收到來(lái)自Completer的Nak DLLP之后,從中找到序列號(Sequence Number),并根據序列號在Replay Buffer找到對應的DLLP,然后將其重新發(fā)送至Completer。如果Completer的數據鏈路層沒(méi)有檢查到LCRC的錯誤,也會(huì )向Requester發(fā)送一個(gè)Ack類(lèi)型的DLLP,該DLLP同樣包含了其接收到的DLLP中的序列號。Requester的數據鏈路層接收到之一Ack DLLP之后,便會(huì )根據其中的序列號在Replay Buffer中找到對應的DLLP的備份,并將其丟棄(Discard)。

當接收端PCIe涉筆(即Completer)的數據鏈路層正確的接收到了來(lái)自Requester的DLLP(包含TLP的)時(shí),隨后將其進(jìn)一步發(fā)送至事務(wù)層,事務(wù)層檢查ECRC(可選的),并對TLP進(jìn)行解析,然后將解析后的信息發(fā)送至應用層(軟件層)。

如下圖所示,Completer的應用層會(huì )根據接受到的信息進(jìn)行相應的處理,處理完成后會(huì )將數據發(fā)送至事務(wù)層,事務(wù)層根據這一信息創(chuàng )建一個(gè)新的TLP(即CplD,Completion with data)。并根據先前接收到的TLP中的BDF信息,找到原來(lái)的Requester,然后將CplD發(fā)送至該Requester。這一發(fā)送過(guò)程與Requester向Completer發(fā)送TLP(Mrd Request)的過(guò)程基本是一致的。所以這里就不在重復了。

注:如果Completer不能夠返回有效數據給Requester,或者遇到錯誤,則其返回的就不是CplD了,而是Cpl(Completion without data),Requester接收到Cpl的TLP之后便會(huì )知道發(fā)生了錯誤,其應用層(軟件層)會(huì )進(jìn)行相應的處理。

聲明:本文內容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權轉載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習之用,如有內容侵權或者其他違規問(wèn)題,請聯(lián)系本站處理。 舉報投訴
  • 總線(xiàn)
    +關(guān)注

    關(guān)注

    10

    文章

    2735

    瀏覽量

    87391
  • PCIe
    +關(guān)注

    關(guān)注

    13

    文章

    1104

    瀏覽量

    81262

原文標題:【博文連載】PCIe掃盲——一個(gè)Memory Read操作的例子

文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應用ChinaAET】歡迎添加關(guān)注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    淺談CAN總線(xiàn)物理層

    [/td][td]CAN總線(xiàn)物理層1. 物理層1.1.1 位定時(shí)1.時(shí)間份額(Time Quantum),時(shí)間份額來(lái)源于對系統時(shí)鐘可編程的分頻。時(shí)間份額原理如圖4.11.1。1.波特率l波特率由編程
    發(fā)表于 06-25 13:48

    CAN總線(xiàn)不同的物理層

    CAN總線(xiàn)使用不歸零(NRZ)的位填充。有兩種不同的信令狀態(tài):顯性(邏輯0)和隱性(邏輯1)。這些信令狀態(tài)對應于所在物理層(存在幾種不同的物理層)的某種電平。模塊以線(xiàn)與邏輯連接到總線(xiàn)
    發(fā)表于 05-23 07:35

    TLP的數據鏈路層組成與操作

      本章將著(zhù)重講述TLP的數據鏈路層組成與操作,上篇更新應該為第五講,數據鏈路層位于事務(wù)物理層
    發(fā)表于 01-08 17:25

    什么是以太網(wǎng)物理層?Ethernet物理層有哪些功能?

    什么是以太網(wǎng)物理層Ethernet物理層有哪些功能基于MDI,為您的系統選擇合適的以太網(wǎng)物理層TI以太網(wǎng)物理層選擇流程圖
    發(fā)表于 03-18 08:07

    如何對PCIe 3.0接收機物理層進(jìn)行測試?

    如何對PCIe3.0接收機物理層進(jìn)行測試?
    發(fā)表于 05-11 06:04

    CAN總線(xiàn)工作原理及數據鏈路層、延時(shí)分析

    通信協(xié)議僅僅包括OSI七互聯(lián)參考模型中的數據鏈路層物理層。三、CAN總線(xiàn)物理層:1. CAN總線(xiàn)
    發(fā)表于 05-13 06:00

    IIC物理層是由哪些部分組成的

    物理層和協(xié)議。物理層規定通訊系統中具有機械、電子功能部分的特性,確保原始數據物理媒體的傳輸。協(xié)議
    發(fā)表于 12-13 08:09

    物理層和協(xié)議兩方面來(lái)了解I2C總線(xiàn)

    和時(shí)鐘線(xiàn)SCL構成的串行總線(xiàn),可發(fā)送和接收數據。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,高速I(mǎi)2C總線(xiàn)般可達400kbps以上。下面從
    發(fā)表于 12-13 07:37

    IIC的物理層特點(diǎn)

    IIC的物理層特點(diǎn)SCL和SDA是兩根總線(xiàn), 支持多設備。所有要進(jìn)行通信的設備都要引出兩個(gè)引腳,連接到這兩根總線(xiàn)上。IIC協(xié)議只使用兩條總線(xiàn)
    發(fā)表于 01-12 08:00

    CCIX 1.1設備必須支持PCIe 5.0 PHY或CCIX EDR PHY這兩種物理層

    必須符合下面表中的定義。傳輸DVSEC包含CCIX物理層、數據鏈路層事務(wù)的控制和狀態(tài)寄存器(Control and Status Register,CSR)。協(xié)議DVSEC包含CC
    發(fā)表于 08-16 15:45

    窺CXL協(xié)議

    。PCIe可以分為三個(gè)獨立的邏輯事務(wù)(Transaction Layer),數據鏈路層(D
    發(fā)表于 09-09 15:03

    通俗易懂的CAN網(wǎng)絡(luò )解讀【上】

    種分布式實(shí)時(shí)控制的串行網(wǎng)絡(luò ),用于在不同的ECU下傳輸數據,是國際應用最廣的現場(chǎng)總線(xiàn)?! AN總線(xiàn)標準  CAN總線(xiàn)標準規定
    發(fā)表于 10-31 16:40

    數據鏈路層設備有哪些

    數據鏈路層的設備與組件是指那些同時(shí)具有物理層數據鏈路層功能的設備或組件。數據鏈路層的設備與組件主要有網(wǎng)卡、網(wǎng)橋和交換機。
    發(fā)表于 03-14 15:20 ?2.4w次閱讀

    數據鏈路層的任務(wù)

    數據鏈路層的主要任務(wù)是使網(wǎng)絡(luò )層無(wú)需了解物理層的特征而獲得可靠的傳輸。數據鏈路層將通過(guò)鏈路層數據進(jìn)行打包和解包、差錯檢測和校正,并協(xié)調共享介
    的頭像 發(fā)表于 02-27 15:08 ?6988次閱讀

    數據鏈路層設備有哪些

    數據鏈路層的設備與組件是指那些同時(shí)具有物理層數據鏈路層功能的設備或組件。數據鏈路層的設備與組件主要有網(wǎng)卡、網(wǎng)橋和交換機。
    的頭像 發(fā)表于 02-27 15:17 ?5.9w次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看