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

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

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

處理器可能發(fā)生死鎖或者數(shù)據(jù)丟失

LL-LING寧 ? 來(lái)源:LL-LING寧 ? 作者:LL-LING寧 ? 2022-08-02 15:09 ? 次閱讀

由于此錯(cuò)誤,存儲(chǔ)緩沖器可能進(jìn)入所有現(xiàn)有寫(xiě)入都無(wú)法繼續(xù)執(zhí)行的狀態(tài)。此狀態(tài)可能會(huì)導(dǎo)致下列問(wèn)題:

流水線(xiàn)執(zhí)行備份,并阻止執(zhí)行任何指令。

如果按特定順序執(zhí)行訪(fǎng)問(wèn),則將恢復(fù)指令執(zhí)行,但寫(xiě)入數(shù)據(jù)將會(huì)丟失

受影響的配置:

如按下列任一序列發(fā)生下述狀況,則會(huì)發(fā)生此錯(cuò)誤:

序列 1:

1) 使用數(shù)據(jù)高速緩存 ECC 來(lái)實(shí)現(xiàn)處理器,并啟用高速緩存 ECC。

2) 處理器訪(fǎng)問(wèn)存儲(chǔ)器位置,但此操作在 L1 數(shù)據(jù)高速緩存中未命中,導(dǎo)致讀取并分配緩存行。

3) 處理器對(duì)回寫(xiě)可緩存位置執(zhí)行寫(xiě)入,此操作在步驟 [2] 中的行填充 (linefill) 之前命中,但在行填充之后未命中。此寫(xiě)入操作會(huì)在步驟 [2] 重新分配行之前的周期內(nèi)執(zhí)行其高速緩存查找操作。

4) 隨后,處理器會(huì)對(duì)步驟 [3] 中寫(xiě)入的緩存行執(zhí)行讀取和寫(xiě)入。此讀取和寫(xiě)入操作可按任意順序執(zhí)行。寫(xiě)入的雙字不同于步驟 [3] 中寫(xiě)入的雙字。

序列 2:

1) 使用數(shù)據(jù)高速緩存 ECC 來(lái)實(shí)現(xiàn)處理器,并啟用高速緩存 ECC。

2) 處理器讀取回寫(xiě)可緩存存儲(chǔ)器位置,但此操作在 L1 數(shù)據(jù)高速緩存中未命中,導(dǎo)致讀取并分配緩存行,但不檢測(cè)任何 ECC 錯(cuò)誤。

3) 處理器對(duì)步驟 [2] 中讀取的緩存行執(zhí)行寫(xiě)入。在高速緩存中查找地址時(shí),由于標(biāo)簽 RAM (tag-RAM) 中存在 ECC 錯(cuò)誤,因此結(jié)果顯示命中。

4) 隨后,處理器對(duì)步驟 [2] 中讀取的緩存行執(zhí)行進(jìn)一步寫(xiě)入,但寫(xiě)入的雙字不同于步驟 [3] 中寫(xiě)入的雙字。

5) 后續(xù)推理緩存讀取同樣檢測(cè)到 ECC 錯(cuò)誤。此讀取操作可對(duì)相同的高速緩存集執(zhí)行,因此會(huì)檢測(cè)到相同的錯(cuò)誤,或者也可對(duì)不同高速緩存集執(zhí)行讀取,在此情況下則需要第二個(gè) ECC 錯(cuò)誤才能滿(mǎn)足此條件。

此外,這兩組條件都要求兩次訪(fǎng)問(wèn)之間存在特定的時(shí)序關(guān)系,因此,受到 AXI 總線(xiàn)上的傳輸事務(wù)時(shí)序以及存儲(chǔ)緩沖器中其它正在執(zhí)行的寫(xiě)入操作的影響。

如果上述任一序列發(fā)生后,發(fā)生如下操作,則將不會(huì)發(fā)生死鎖:

1) 讀取操作在高速緩存中未命中,導(dǎo)致行填充,并且

2) 對(duì)步驟 [1] 中讀取的緩存行執(zhí)行 2 次或 2 次以上的讀取操作。

2 次寫(xiě)入的雙字必須不同,但其中一次寫(xiě)入的雙字可與步驟 [1] 中讀取的雙字相同。單一存儲(chǔ)指令可生成 2 次此類(lèi)寫(xiě)入,前提是該指令未自然對(duì)齊。

如果發(fā)生此狀況,則部分寫(xiě)入數(shù)據(jù)可能丟失。并且后續(xù)可能還會(huì)向高速緩存分配不可緩存 (Non-cacheable) 或器件 (Device) 寫(xiě)入請(qǐng)求。

注:以上所有數(shù)值交叉引用均表示參考列表中的項(xiàng)。

解決方案

影響:

如果發(fā)生此錯(cuò)誤,處理器將發(fā)生死鎖或數(shù)據(jù)丟失。發(fā)生死鎖時(shí),處理器可生成中斷,但最終在處理程序代碼中將發(fā)生數(shù)據(jù)丟失或死鎖。

根據(jù)大量現(xiàn)場(chǎng)器件的經(jīng)驗(yàn)證明,此錯(cuò)誤被分類(lèi)為罕見(jiàn)。此問(wèn)題僅在一個(gè)工程上出現(xiàn)過(guò),其故障時(shí)間不僅長(zhǎng)而且易變。

變通方法:

您可通過(guò)將 ACTLR.DBWR(位 [14])設(shè)置為 1 來(lái)避免此錯(cuò)誤。對(duì)于向標(biāo)準(zhǔn)存儲(chǔ)器多次突發(fā)寫(xiě)入數(shù)據(jù)的行為,此設(shè)置會(huì)禁用其內(nèi)部傳輸最優(yōu)化操作。

此外,此設(shè)置還會(huì)禁用直寫(xiě)和不可緩存的標(biāo)準(zhǔn)存儲(chǔ)器(但不包括回寫(xiě)存儲(chǔ)器)的處理器生成的 AXI 突發(fā)。

將該位設(shè)置為 1 可能降低處理器寫(xiě)入標(biāo)準(zhǔn)存儲(chǔ)器的性能。在基準(zhǔn)測(cè)試中,平均性能降低比例小于 1%,但執(zhí)行大型塊寫(xiě)入的例程(例如,memset 或 memcpy)時(shí)影響顯著增大。

此變通方法對(duì)于 memset 和 memcpy 的影響與 L2 存儲(chǔ)器系統(tǒng)的性能和特性以及所使用的指令序列密切相關(guān)。

如果您的應(yīng)用允許,您也可以通過(guò)禁用高速緩存 ECC 來(lái)避免此錯(cuò)誤。禁用方法為將 ACTLR.CEC(位 [5:3])設(shè)置為 b100。

此變通方法不會(huì)降低處理器性能,但禁用 ECC 會(huì)影響可靠性。

受影響的配置:

所有 Versal 器件。

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

    關(guān)注

    68

    文章

    18935

    瀏覽量

    227314
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6719

    瀏覽量

    88325
  • ECC
    ECC
    +關(guān)注

    關(guān)注

    0

    文章

    91

    瀏覽量

    20473
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    假如服務(wù)數(shù)據(jù)丟失,如何快速恢復(fù)丟失數(shù)據(jù)?

    在服務(wù)數(shù)據(jù)丟失后,快速恢復(fù)丟失數(shù)據(jù)是至關(guān)重要的,以避免業(yè)務(wù)中斷和數(shù)據(jù)損失。以下是一些方法和步
    的頭像 發(fā)表于 08-08 16:59 ?182次閱讀

    ram存儲(chǔ)的數(shù)據(jù)在斷電后會(huì)丟失

    后,存儲(chǔ)在RAM中的數(shù)據(jù)會(huì)丟失。 一、RAM的工作原理 RAM的基本概念 RAM是一種半導(dǎo)體存儲(chǔ),由大量的存儲(chǔ)單元組成,每個(gè)存儲(chǔ)單元可以存儲(chǔ)一個(gè)比特(bit)的數(shù)據(jù)。這些存儲(chǔ)單元通過(guò)
    的頭像 發(fā)表于 08-06 09:19 ?608次閱讀

    聚徽觸控-平板工控機(jī)數(shù)據(jù)丟失如何處理

    工控廠(chǎng)家已經(jīng)針對(duì)工業(yè)平板電腦數(shù)據(jù)丟失等問(wèn)題,提出了一些恢復(fù)方法,幫助用戶(hù)解決數(shù)據(jù)丟失的困擾。以下是詳細(xì)資料:
    的頭像 發(fā)表于 06-16 10:57 ?318次閱讀

    處理器的定義和種類(lèi)

    處理器,作為計(jì)算機(jī)系統(tǒng)的核心部件,承載著執(zhí)行指令、處理數(shù)據(jù)的重要任務(wù)。隨著信息技術(shù)的飛速發(fā)展,處理器的種類(lèi)和性能也在不斷提升。本文將對(duì)處理器
    的頭像 發(fā)表于 05-12 18:12 ?1952次閱讀

    處理器由什么組成 微處理器和cpu的關(guān)系

    計(jì)數(shù)等。指令譯碼對(duì)指令進(jìn)行解析和譯碼,時(shí)鐘發(fā)生器提供時(shí)鐘脈沖以驅(qū)動(dòng)微處理器的運(yùn)行,程序計(jì)數(shù)保存當(dāng)前正在執(zhí)行的指令的地址。 算術(shù)邏輯單元
    的頭像 發(fā)表于 02-22 10:40 ?2902次閱讀

    嵌入式處理器架構(gòu)有哪些

    計(jì)算機(jī)或處理器的RAM元件用于臨時(shí)存儲(chǔ)程序數(shù)據(jù)或指令。數(shù)據(jù)可以隨時(shí)寫(xiě)入 RAM,處理器 RAM 的一個(gè)重要特征是它在斷電時(shí)會(huì)丟失日期。RAM
    的頭像 發(fā)表于 02-09 07:29 ?3042次閱讀

    如何提高處理器的性能

    提高處理器主頻可以提高處理器的性能,但是到一定程度就不能再提高了,我們需要通過(guò)雙核,或者多核來(lái)提高處理器的性能。
    的頭像 發(fā)表于 01-24 09:59 ?1953次閱讀
    如何提高<b class='flag-5'>處理器</b>的性能

    簡(jiǎn)單認(rèn)識(shí)安全加密處理器

    安全加密處理器 (Secure Cryptoprocessor) 是一種本身不產(chǎn)生加密數(shù)據(jù)或程序指令,但產(chǎn)生密鑰(Key)的處理器,其應(yīng)用產(chǎn)品有智能卡、ATM、電視機(jī)機(jī)頂盒、軍事系統(tǒng)等。而加密型
    的頭像 發(fā)表于 12-06 09:19 ?859次閱讀

    java死鎖產(chǎn)生的條件

    Java死鎖是指多個(gè)線(xiàn)程因?yàn)榛ハ嗟却龑?duì)方釋放資源而無(wú)法繼續(xù)執(zhí)行的情況。當(dāng)線(xiàn)程處于死鎖狀態(tài)時(shí),程序會(huì)無(wú)限期地等待資源,無(wú)法繼續(xù)執(zhí)行下去,從而導(dǎo)致整個(gè)系統(tǒng)的停滯。要理解并避免Java死鎖的產(chǎn)生,首先需要
    的頭像 發(fā)表于 12-04 13:42 ?377次閱讀

    redis分布式鎖死鎖處理方案

    中,Redis分布式鎖也可能遭遇死鎖問(wèn)題,即多個(gè)線(xiàn)程相互等待對(duì)方釋放鎖的情況。本文將詳細(xì)介紹Redis分布式鎖死鎖的原因,并提供解決死鎖的多種策略。 一、Redis分布式鎖的基本機(jī)制
    的頭像 發(fā)表于 11-16 11:44 ?1437次閱讀

    死鎖的產(chǎn)生因素

    一、死鎖的概念 操作系統(tǒng)中的死鎖是指: 如果在一個(gè)進(jìn)程集合中的每個(gè)進(jìn)程都在等待只能有該集合中的其它進(jìn)程才能引起的事件,而無(wú)限期陷入僵持的局面稱(chēng)為死鎖。 二、死鎖的產(chǎn)生因素 1、系統(tǒng)擁有
    的頭像 發(fā)表于 11-09 09:37 ?871次閱讀
    <b class='flag-5'>死鎖</b>的產(chǎn)生因素

    如何處理重現(xiàn)使用仿真發(fā)現(xiàn)的死鎖漏洞

    在上一部分中,我們重點(diǎn)討論了在組件上設(shè)置形式驗(yàn)證的最佳實(shí)踐。那么現(xiàn)在設(shè)置已經(jīng)準(zhǔn)備就緒,協(xié)議檢查可以避免不切實(shí)際的情況(這也有助于發(fā)現(xiàn)一個(gè)新漏洞),基本抽象也可以提高性能?,F(xiàn)在的任務(wù)便是如何處理重現(xiàn)
    的頭像 發(fā)表于 11-02 09:17 ?401次閱讀
    如何<b class='flag-5'>處理</b>重現(xiàn)使用仿真發(fā)現(xiàn)的<b class='flag-5'>死鎖</b>漏洞

    TFT Crosstalk分析 幾種水平和垂直Crosstalk的可能發(fā)生的原因

    由于TFT LCD 的架構(gòu),是以像素在水平和垂直方向上展開(kāi)成陣列,因此TFT LCD 中所發(fā)生的Crosstalk 現(xiàn)象,也會(huì)是水平或是垂直的,以下舉出幾種水平和垂直Crosstalk 的可能發(fā)生
    的頭像 發(fā)表于 10-30 10:48 ?2999次閱讀
    TFT Crosstalk分析 幾種水平和垂直Crosstalk的<b class='flag-5'>可能發(fā)生</b>的原因

    青稞處理器資料分享

    )、精簡(jiǎn)的兩線(xiàn)和單線(xiàn)調(diào)試接口、“WFE”指令、物理內(nèi)存保護(hù)(PMP)等特色功能,詳細(xì)說(shuō)明可參考青稞微處理器手冊(cè)。 特色功能 1.硬件壓棧(HPE) 稞處理器開(kāi)啟硬件壓棧后,當(dāng)發(fā)生中斷,硬件自動(dòng)將
    發(fā)表于 10-11 10:42

    Linux內(nèi)核死鎖lockdep功能

    的編程思路,也不可能避免會(huì)發(fā)生死鎖。在Linux內(nèi)核中,常見(jiàn)的死鎖有如下兩種: 遞歸死鎖:如在中斷延遲操作中使用了鎖,和外面的鎖構(gòu)成了遞歸死鎖
    的頭像 發(fā)表于 09-27 15:13 ?584次閱讀
    Linux內(nèi)核<b class='flag-5'>死鎖</b>lockdep功能