<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

PCIe掃盲—PCIe錯誤檢測機制的詳細資料概述

SwM2_ChinaAET ? 來源:未知 ? 作者:易水寒 ? 2018-08-18 11:05 ? 次閱讀

PCIe總線錯誤檢測囊括了鏈路(Link)上的錯誤以及包傳遞過程中的錯誤,如下圖所示。用戶設計的應用程序層中的錯誤不屬于鏈路傳輸中的錯誤,不應當通過PCIe的錯誤檢測與處理機制處理,一般可借助設備特殊中斷(Device Specific Interrupt)等合適的方式進行報告與處理。

包傳遞過程的錯誤主要通過CRC編碼來檢測。PCIe定義了兩種CRC——LCRC和ECRC。其中LCRC(Link CRC)由數據鏈路層產生和校檢,用于檢測從一端的數據鏈路層發送到另一端的數據鏈路層的TLP是否發生的錯誤。而ECRC(End-to-end CRC)由事務層產生和校檢,且ECRC是可選的。

有人可能會質疑ECRC存在的必要性,因為LCRC已經對TLP進行了CRC校檢,在此基礎上多加一層ECRC可能是沒有必要的。這里來簡單地說明一下,一般情況下(尤其是沒有Switch的簡單PCIe總線系統中),ECRC的確是沒有必要存在的。ECRC主要為解決Switch中傳輸的可能錯在的傳輸錯誤問題的,換句話說,如果用戶的設計中并沒有Switch(只是簡單的Root與Endpoint的端對端直連),完全可以不使用ECRC。

如下圖所示,假設來自Endpoint的TLP被正確地傳輸到Switch的Downstream輸入端口(Ingress Port),Downstream輸入端口中的數據鏈路層也完成了對其的LCRC校檢,且未發現錯誤。然后Switch會將該LCRC移除,并添加新的序列號(Sequence Number),隨后重新計算LCRC,再將該TLP發送至Switch的Upstream輸出端口(Egress Port)。顯然,在此過程中TLP是不受保護的,一旦期間數據傳輸遇到錯誤等異常,可能會導致重新計算LCRC前的數據已經受到了破壞,且僅僅使用LCRC是無法發現這樣的錯誤的。

注:關于序列號(Sequence Number),可以參考前面的關于Ack/Nak的相關文章。

需要注意的是,ECRC是AER中的一部分,要想使用ECRC,該PCIe設備必須是支持AER的。

如果按照錯誤產生的層(Layer)來分,則可以分為物理層錯誤,數據鏈路層錯誤和事務層錯誤。

物理層錯誤(Physical Layer Errors)主要有:

· 8b/10b編解碼異常

· Framing異常(8b/10b編碼中是可選的,128b/130b中是必選的)

· Elastic Buffer錯誤(可選的)

· 起始字符失鎖(Loss of Symbol Lock)或者通道對齊失鎖(Lane Deskew)(可選的)

數據鏈路層錯誤(Data Link Layer Errors)主要有:

· LCRC校檢失敗

· 序列號(Sequence Number)異常

· DLLP中的16-bit CRC校檢失敗

· 鏈路層協議錯誤(Link Layer Protocol Errors)

事務層錯誤(Transaction Layer Errors)主要有:

· ERCR校檢失?。蛇x的)

· 異常的TLP(Malformed TLP)(即TLP的格式異常)

· 流量控制協議異常(Flow Control Protocol Violation)

· 不支持的請求

· 數據損壞(Data Corruption,又稱為Poisoned Packet)

· Completer Abort(可選的)

· 接收端溢出(Receiver Overflow)(可選的)

· 返回包超時(Completion Timeout)

· 不對應的返回包(Unexpected Completion,即Completion與發出的Request不一致)

當接收端的物理層檢測到TLP存在錯誤時,如果再將該TLP繼續傳送至數據鏈路層和事務層必然也會發現錯誤。而過多的錯誤會讓錯誤分析與處理變得困難。因此,沒有必要在向上傳遞該TLP,而是將其直接扔掉,并報告相應的錯誤。

然而,即使這樣,PCIe總線的錯誤報告中也有很多錯誤源自同一個錯誤源。因此需要對錯誤進行優先級排序,使得錯誤源(最底層的錯誤)的優先級更高,能夠最先得到處理。PCIe總線中的錯誤優先級排序如下(優先級從高到低):

· 不可更正的內部錯誤(Uncorrectable Internal Error)

· 接收端Buffer溢出

· 流量控制協議錯誤

· ECRC校檢失敗

· 異常的TLP(Malformed TLP)

· AtomicOp Egress Blocked

· TLP包頭異常(TLP Prefix Blocked)

· 訪問控制服務(Access Control Services,ACS)異常

· MC(Multi-cast) Blocked TLP

· 不支持的請求(Unsupported Request,UR),Completer Abort(CA)或者不對應的返回包(Unexpected Completion)

· 接收到損壞的數據包(Poisoned Packet)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • crc
    crc
    +關注

    關注

    0

    文章

    195

    瀏覽量

    29231
  • Link
    +關注

    關注

    0

    文章

    93

    瀏覽量

    26636
  • PCIe
    +關注

    關注

    13

    文章

    1099

    瀏覽量

    81149

原文標題:【博文連載】PCIe掃盲——PCIe錯誤檢測機制

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

收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 PCIe-QuickLearn-PCIe-Overview-Data

    PCIPCIe
    Mr_haohao
    發布于 :2022年10月20日 23:00:07

    PCIE總線基本資料

    本帖最后由 eehome 于 2013-1-5 10:11 編輯 PCIE總線基本資料
    發表于 08-06 10:47

    PCIE總線詳細資料

    PCIE總線詳細資料
    發表于 02-15 15:23

    基于12槽PCIE擴展塢知識資料

    PCIE SSD+1個級聯擴展,是穩定、高性能的PCIe擴展基礎設備。 基于12槽PCIE擴展塢知識資料.zip [/tr]
    發表于 07-03 09:37

    基于PCIe DMA的多通道數據采集和回放IP

    SGDMA資源使用(XCKU060為例,PCIe 3.0 x8):1.LUTs:21086,FFs:35687,BRAM:166,PCIe:1 可交付資料:1.詳細的用戶手冊2.De
    發表于 11-25 22:27

    PCIe的技術原理詳細說明

    列出該設備的PCIe詳細信息(技術發燒友或數字控請關注該部分)。這些內容存儲在PCIe配置空間,它們描述的是PCIe本身的特性。如下圖所示(低位地址0x00在最左邊),可以看到這是一個
    發表于 05-25 09:22

    體驗紫光PCIE之使用WinDriver驅動紫光PCIE

    。 對于毫無PCIE知識和經驗的小白來說,比如我來說,使用好紫光的PCIE還是有難度的。畢竟紫光的參考資料真不多,網上也可以說幾乎沒有,且官方的IP、說明文檔并不是寫給小白看的。 對小白來說,很可能一開始
    發表于 11-17 14:35

    SIM7100-PCIE4G模塊PCIE封裝硬件資料

    本文檔內容介紹了基于SIM7100-PCIE4G模塊PCIE封裝硬件資料,供參考
    發表于 03-15 11:26 ?137次下載

    PCIe至USB的TMS320DM816xTMS320C6A816x和AM389x評估板詳細資料概述

    本文的主要內容是TI的產品PCIe至USB的TMS320DM816xTMS320C6A816x和AM389x的評估板詳細資料概述
    發表于 04-19 17:20 ?13次下載
    <b class='flag-5'>PCIe</b>至USB的TMS320DM816xTMS320C6A816x和AM389x評估板<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    KeyStone中使用PCIE的應用案例和PCIE特征的詳細描述

    該文檔給出了KeyStone中PCIE使用的例子,包括地址轉換、多設備連接和編程示例。它還包含PCIE特征的詳細描述,這些特征補充了PCIE用戶指南中的信息。
    發表于 04-28 10:32 ?9次下載
    KeyStone中使用<b class='flag-5'>PCIE</b>的應用案例和<b class='flag-5'>PCIE</b>特征的<b class='flag-5'>詳細</b>描述

    LabVIEW在信捷PLC通訊上的應用詳細資料概述

    本文檔詳細介紹的是LabVIEW在信捷PLC通訊上的應用詳細資料概述
    發表于 06-07 08:00 ?317次下載

    python的內置函數詳細資料概述

    本文檔的主要內容詳細介紹的是python的內置函數詳細資料概述。
    發表于 11-18 08:00 ?0次下載

    CAN總線基礎的詳細資料概述

    本文檔的主要內容詳細介紹的是CAN總線基礎的詳細資料概述包括了:概述,汽車總線與CAN標準,CAN的通信機制,數據幀,
    發表于 11-29 15:31 ?117次下載
    CAN總線基礎的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    EMC HF墊圈的詳細資料概述

    本文檔的主要內容詳細介紹的是EMC HF墊圈的詳細資料概述免費下載。
    發表于 09-07 08:00 ?0次下載
    EMC HF墊圈的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    PCIe錯誤報告的兩種機制詳解

    機制PCIe設備必需支持的一種錯誤報告機制,同時設備會定義最小的錯誤報告請求。應該是通過配置Device Control和Command
    的頭像 發表于 10-23 11:14 ?2.3w次閱讀
    <b class='flag-5'>PCIe</b><b class='flag-5'>錯誤</b>報告的兩種<b class='flag-5'>機制</b>詳解
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>