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

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

3天內(nèi)不再提示

CCIX錯誤控制和狀態(tài)結(jié)構(gòu)概述

安芯教育科技 ? 來源:老秦談芯 ? 作者:老秦談芯 ? 2022-08-23 18:13 ? 次閱讀

7.RAS概述

PCIe錯誤分為可校正的錯誤(Correctable Error)和不可校正的錯誤(Uncorrectable Error), Uncorrectable又分為致命的(Fatal)和非致命的(Nonfatal)??尚Ue誤可以自動地被硬件識別并被自動的校正或恢復(fù)。非致命錯誤可能會導(dǎo)致特定的傳輸變得不可靠,但是鏈路和硬件的其他功能不受影響。設(shè)備驅(qū)動軟件提供恢復(fù)機制,并不會影響到鏈路和其他設(shè)備的運行。致命錯誤會導(dǎo)致鏈路和硬件異常,只有通過系統(tǒng)軟件進行復(fù)位操作實現(xiàn)恢復(fù)。

7.1 硬件故障分類

三類硬件故障(Fault):

同步且精確的CPU異常(exception),這些異??赡苁怯捎跀?shù)據(jù)中止、指令預(yù)取中止,或由于訪問某個故障地址時出現(xiàn)硬件故障而導(dǎo)致的某種形式的總線錯誤。

異步和不精確的CPU異常,可能由CPU內(nèi)部的不可糾正錯誤(Uncorrected Error,UE)、可糾正錯誤(Corrected Error,CE)或外部總線錯誤觸發(fā)。

異步和不精確的系統(tǒng)異?;蛑袛啵@些異常發(fā)生在CPU子系統(tǒng)之外,一般通過中斷線或者消息中斷(MSI)報告給CPU,通知CPU發(fā)生硬件故障。

7.2 硬件錯誤傳播

主機系統(tǒng)和CCIX設(shè)備可以有類似的組件集:

不同類型的存儲

不同類型的緩存和寄存器

處理單元(Processing Elements)

一致性互連

上述每個組件都可能消耗、產(chǎn)生或是檢測硬件錯誤。這些硬件錯誤可能與ECC、命令故障、傳輸錯誤、解碼錯誤、邏輯錯誤、超時/看門狗等有關(guān)。

當(dāng)數(shù)據(jù)中毒(poisoned)時,錯誤可能會在整個系統(tǒng)中從一個實體傳播到另一個實體,這可能是由處理單元,或者緩存/監(jiān)聽邏輯啟動的事務(wù)觸發(fā)的。下圖展示了有毒數(shù)據(jù)如何流經(jīng)連接到CCIX設(shè)備的主機系統(tǒng)。

0ae99f0e-22ca-11ed-ba43-dac502259ad0.png

CCIX規(guī)范只規(guī)定了如何報告和處理CCIX錯誤。

7.3 CCIX協(xié)議錯誤報告(Protocol Error Reporting,PER)

有兩類硬件故障(Fault)可以引起CCIX硬件錯誤(Error):

PCIe傳輸錯誤,通過標(biāo)準(zhǔn)的PCIe機制報告

CCIX協(xié)議錯誤(CCIX Protocol Errors ,PER),在設(shè)備端通過CCIX PER消息報告,并記錄到CCIX DVSEC空間;在主機端,錯誤被報告給錯誤代理,錯誤代理向CPU報告錯誤

7.3.1 PER消息格式

PER消息格式:

0b0db2e0-22ca-11ed-ba43-dac502259ad0.png

其中的PER Type字段的含義是:

0x0:Memory Error Type Structure

0x1:Cache Error Type Structure

0x2:ATC Error Type Structure

0x3:Port Error Type Structure

0x4:CCIX Link Error Type Structure

0x5:Agent Internal

在規(guī)范的7.3.3 – 7.3.8章節(jié)有具體介紹。

7.3.2 PER日志結(jié)構(gòu)

CCIX PER日志用于報告會導(dǎo)致協(xié)議錯誤的硬件故障。協(xié)議錯誤通常與特定的CCIX協(xié)議組件(即CCIX鏈路、端口、HA、SA或RA)相關(guān)。每個日志結(jié)構(gòu)開始的偏移量(字節(jié)數(shù))由各種能力結(jié)構(gòu)的錯誤日志偏移量表示。

0b2b3bc6-22ca-11ed-ba43-dac502259ad0.png

每個日志頭由256位組成。DW0和DW1表示錯誤日志屬性字段。DW2和DW3提供錯誤的故障地址。DW4提供錯誤的錯誤地址掩碼長度。DW5-7保留供將來使用。后面的具體結(jié)構(gòu)說明全都略去。

7.4 CCIX錯誤控制和狀態(tài)結(jié)構(gòu)

CCIX在兩個級別提供錯誤控制機制:

Level 1:CCIX設(shè)備錯誤控制和狀態(tài)(每個CCIX設(shè)備)

Level 2:組件錯誤控制和狀態(tài)(根據(jù)CCIX協(xié)議組件)

必須禁用CCIX設(shè)備中所有錯誤控制和狀態(tài)寄存器的重置值。主機軟件必須明確啟用CCIX設(shè)備和每個CCIX協(xié)議組件的錯誤報告。啟用后,默認(rèn)情況下,除非軟件設(shè)置了掩碼位,否則錯誤將被不能被屏蔽。

7.4.1 錯誤控制寄存器定義

設(shè)備和組件的控制寄存器如下:

0b4234de-22ca-11ed-ba43-dac502259ad0.png

7.4.2 設(shè)備錯誤控制流程

本章節(jié)介紹錯誤屏蔽規(guī)則和啟動時啟用錯誤的流程,略過。

8.地址翻譯服務(wù)(Address Translation Services)

ATS機制是在PCIe中定義的。簡單介紹一下,為節(jié)省CPU資源,PCIe設(shè)備常采用DMA方式訪問內(nèi)存。Root Complex需要將DMA請求進行一次地址轉(zhuǎn)換才能將訪問到真實物理存儲地址。進行地址轉(zhuǎn)換可以防止非法DMA請求,并且有利于實現(xiàn)虛擬化傳輸。但是,RC進行DMA地址轉(zhuǎn)換是需要時間的,相較于不進行地址轉(zhuǎn)換,顯然進行DMA地址轉(zhuǎn)換會增加DMA訪問的時間。為了減小地址轉(zhuǎn)換的影響,設(shè)計人員常常在需要進行地址轉(zhuǎn)換的地方添加地址轉(zhuǎn)換緩存(Address Translation Cache,ATC)。需要設(shè)備設(shè)計出具有良好的ATC機制,包括ATC的預(yù)測、地址翻譯請求的長度、發(fā)送翻譯請求的時機等。

8.1 介紹

CCIX請求代理(RA)發(fā)出的內(nèi)存請求時使用的是物理地址。因此與RA關(guān)聯(lián)的加速器功能(Accelerator Functions,AFs)必須向RA提供物理地址。但是軟件使用的是虛擬地址,所以AFs需要執(zhí)行地址轉(zhuǎn)換。

請求代理不可以向CCIX鏈路發(fā)出帶有未翻譯虛擬地址的內(nèi)存請求,因為這可能會違反基于頁表的安全性或虛擬化。

AF可以使用兩種方法來轉(zhuǎn)換虛擬地址。第一種是使用PCIe定義的地址轉(zhuǎn)換服務(wù)變體從主機系統(tǒng)獲取地址轉(zhuǎn)換。第二種方法是讓AF包含一個MMU,以支持主機系統(tǒng)頁表格式。

8.2 ATS

PCIe格式的ATS轉(zhuǎn)換請求、轉(zhuǎn)換完成、失效請求、頁面請求和頁面響應(yīng)通過VC0發(fā)送。除CCIX VC外,可以在任何VC上發(fā)送失效響應(yīng)。

8.3 無效語義

略過。

8.4 內(nèi)存類型

除了獲取翻譯后的頁面地址外,CCIX請求代理還需要內(nèi)存類型信息,以便與內(nèi)存正確交互。內(nèi)存類型信息決定了CCIX鏈路上支持的操作類型,以及數(shù)據(jù)是否可以在本地緩存。

帶有內(nèi)存屬性的ATS翻譯完成的格式和定義如下:

0b5931a2-22ca-11ed-ba43-dac502259ad0.png

其中Mem[2:0]的定義如下:

0b6f2f52-22ca-11ed-ba43-dac502259ad0.png

關(guān)于Reodering,Early write acknowledge這些在之前的文章中介紹過。

至此,CCIX規(guī)范的內(nèi)容大致粗過一遍,其中PCIe部分基本都略過了,有的地方介紹了一點概念性知識。真需要用到CCIX的時候,還是多看協(xié)議。



審核編輯:劉清

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

    關(guān)注

    31

    文章

    5361

    瀏覽量

    120873
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10898

    瀏覽量

    212527
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1247

    瀏覽量

    82936

原文標(biāo)題:技術(shù)分享 | CCIX(九)

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于Vector工具進行CAN協(xié)議錯誤幀的分析實踐

    廣播發(fā)送的短幀結(jié)構(gòu),還體現(xiàn)在其錯誤檢測機制上。通過總線數(shù)據(jù)以及總線波形來分析總線故障時,CAN協(xié)議錯誤檢測機制中豐富的錯誤幀類型能讓定位問題的效率更高。
    的頭像 發(fā)表于 01-15 10:03 ?51次閱讀
    基于Vector工具進行CAN協(xié)議<b class='flag-5'>錯誤</b>幀的分析實踐

    GPIO錯誤排查與解決

    在嵌入式系統(tǒng)和微控制器編程中,通用輸入輸出(GPIO)是最常見的接口之一。然而,在使用GPIO時,我們可能會遇到各種錯誤。 1. 理解GPIO GPIO是微控制器上的一組引腳,可以被配置為輸入或輸出
    的頭像 發(fā)表于 01-09 09:46 ?211次閱讀

    RTOS中的錯誤檢查機制

    在嵌入式應(yīng)用中,有可能發(fā)生各種各樣的錯誤,系統(tǒng)必須能夠檢測到這些錯誤并作出適當(dāng)?shù)捻憫?yīng)。RTOS通常內(nèi)置了一些錯誤檢查功能,用于檢測錯誤并向應(yīng)用提供響應(yīng)
    的頭像 發(fā)表于 01-03 14:44 ?322次閱讀

    DAC7811在哪種錯誤狀態(tài)下,或者錯誤控制下會輸出正壓嗎?

    錯誤狀態(tài)下,輸出如下: 通道3(藍(lán)色),為DAC輸出經(jīng)運放轉(zhuǎn)變后的電壓,可看出為+1.5V,通道1通道2(黃色、綠色)為后級差分運放輸出; DAC7811在哪種錯誤狀態(tài)下,或者
    發(fā)表于 12-24 08:15

    晶體管工作狀態(tài)的分類與分析

    MOSFET由源極(Source)、柵極(Gate)、漏極(Drain)和襯底(Substrate)組成。盡管它們的結(jié)構(gòu)不同,但晶體管的工作狀態(tài)分類是相似的。 晶體管的工作狀態(tài) 1. 放大
    的頭像 發(fā)表于 12-03 09:47 ?680次閱讀

    RS-52SH磁性開關(guān)的結(jié)構(gòu)和工作狀態(tài)

    磁性開關(guān)具有結(jié)構(gòu)簡單、體積小、便于控制等優(yōu)點,并且能夠在各種環(huán)境條件下穩(wěn)定工作。其工作原理基于磁場的變化和電磁感應(yīng),通過控制電路的通斷來實現(xiàn)對設(shè)備的精確控制。
    的頭像 發(fā)表于 11-06 13:10 ?241次閱讀

    接口的控制狀態(tài)寄存器什么作用

    接口的控制狀態(tài)寄存器(Control and Status Registers,簡稱CSR)是計算機系統(tǒng)中用于控制和監(jiān)控硬件設(shè)備操作的寄存器。它們是硬件設(shè)備與其驅(qū)動程序之間的橋梁,允許軟件
    的頭像 發(fā)表于 10-17 10:42 ?551次閱讀

    TAS2563設(shè)備特性和控制概述

    電子發(fā)燒友網(wǎng)站提供《TAS2563設(shè)備特性和控制概述.pdf》資料免費下載
    發(fā)表于 10-08 11:49 ?0次下載
    TAS2563設(shè)備特性和<b class='flag-5'>控制</b><b class='flag-5'>概述</b>

    CAN總線錯誤狀態(tài)的種類

    CAN總線錯誤狀態(tài)的種類主要包括以下幾種,每種狀態(tài)都反映了CAN總線網(wǎng)絡(luò)中節(jié)點或總線的不同錯誤情況,以及相應(yīng)的通信能力和限制。
    的頭像 發(fā)表于 09-03 14:17 ?1810次閱讀

    用于控制器局域網(wǎng)的可配置錯誤發(fā)生器

    電子發(fā)燒友網(wǎng)站提供《用于控制器局域網(wǎng)的可配置錯誤發(fā)生器.pdf》資料免費下載
    發(fā)表于 08-27 09:59 ?0次下載
    用于<b class='flag-5'>控制</b>器局域網(wǎng)的可配置<b class='flag-5'>錯誤</b>發(fā)生器

    DSP電機控制程序的概述

    的性能和效率。 DSP電機控制概述 2.1 電機控制的基本概念 電機控制是指通過調(diào)節(jié)電機的輸入電壓和電流,實現(xiàn)對電機轉(zhuǎn)速、轉(zhuǎn)矩和位置的精確控制
    的頭像 發(fā)表于 07-14 11:41 ?1100次閱讀

    一文讀懂CAN通訊錯誤

    CAN總線通信技術(shù)廣泛應(yīng)用于多個行業(yè),是每個總線設(shè)計工程師必學(xué)的一個通訊網(wǎng)絡(luò)。然而,對于CAN通信中的錯誤幀,許多人僅停留在表面了解,缺乏深入理解,這導(dǎo)致許多工程師在面對總線通信故障時感到無從下手
    的頭像 發(fā)表于 06-12 08:24 ?2830次閱讀
    一文讀懂CAN通訊<b class='flag-5'>錯誤</b>幀

    一文讀懂CAN控制錯誤處理的原理

    CAN通訊的錯誤幀到底是如何被界定的?本文帶你輕松了解!錯誤標(biāo)定檢測到錯誤條件的站通過發(fā)送錯誤標(biāo)志指示錯誤。對于“
    的頭像 發(fā)表于 04-26 08:25 ?1676次閱讀
    一文讀懂CAN<b class='flag-5'>控制</b>器<b class='flag-5'>錯誤</b>處理的原理

    介紹一個IC設(shè)計錯誤案例:可讀debug寄存器錯誤跨時鐘

    本文將介紹一個跨時鐘錯誤的案例如圖所示,phy_status作為一個多bit的phy_clk時鐘域的信號,需要輸入csr模塊作為一個可讀狀態(tài)寄存器
    的頭像 發(fā)表于 03-11 15:56 ?583次閱讀
    介紹一個IC設(shè)計<b class='flag-5'>錯誤</b>案例:可讀debug寄存器<b class='flag-5'>錯誤</b>跨時鐘

    TC275由于錯誤幀太多了,導(dǎo)致進入busoff狀態(tài)怎么解決?

    由于錯誤幀太多了,導(dǎo)致進入busoff狀態(tài),這時候需要怎么才能恢復(fù),退出busoff狀態(tài)?節(jié)點控制寄存器Node x Control Register 中的INIT(Node Init
    發(fā)表于 02-18 06:03