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

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

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

這4種CPU錯(cuò)誤該如何找到,沒找到會(huì)有什么后果

eeDesigner ? 來源:物聯(lián)網(wǎng)評(píng)論 ? 作者:物聯(lián)網(wǎng)評(píng)論 ? 2022-04-29 15:28 ? 次閱讀

Codasip 驗(yàn)證總監(jiān) Philippe Luc 分享了他對(duì)驗(yàn)證工程師應(yīng)注意哪些錯(cuò)誤的看法。

您是否知道在設(shè)計(jì)復(fù)雜的處理器內(nèi)核時(shí)可能會(huì)出現(xiàn) 1,000 到 2,000 個(gè)錯(cuò)誤?真的,一千個(gè)蟲子?嗯,這就是經(jīng)驗(yàn)告訴我們的。并非所有的錯(cuò)誤都是生來平等的:它們的重要性和后果可能會(huì)有很大差異。讓我們來看看 4 類CPU 錯(cuò)誤,如何找到它們,如果我們沒有找到它們會(huì)給用戶帶來什么后果。

類型 1:驗(yàn)證工程師容易發(fā)現(xiàn)的處理器 BUG

“哦,我忘記了分號(hào)”。是的,這是一個(gè)錯(cuò)誤。很容易檢測(cè)到,通常是您在編譯時(shí)直接發(fā)現(xiàn)的錯(cuò)誤。除了睜大眼睛,沒有其他辦法可以避免這些.

“哦,原來規(guī)范的一部分沒有實(shí)現(xiàn)”。這是另一個(gè)容易找到的 CPU 錯(cuò)誤,您可以通過任何體面的測(cè)試平臺(tái)找到 - 前提是存在顯式測(cè)試。在這種情況下,執(zhí)行該功能的第一個(gè)簡(jiǎn)單測(cè)試將失敗。您的處理器驗(yàn)證團(tuán)隊(duì)需要做什么?確保你有詳盡的測(cè)試。另一方面,設(shè)計(jì)團(tuán)隊(duì)需要努力仔細(xì)閱讀規(guī)范,并在開發(fā)過程中遵循規(guī)范中的任何更改。

換句話說,簡(jiǎn)單的錯(cuò)誤是通過運(yùn)行一個(gè)測(cè)試該功能的測(cè)試來發(fā)現(xiàn)的。它的(壞)行為是系統(tǒng)性的,而不是時(shí)間條件。詳盡的驗(yàn)證是找到此類 CPU 錯(cuò)誤的關(guān)鍵。代碼覆蓋率會(huì)幫助你,但絕對(duì)不夠。如果 RTL 中沒有對(duì)某個(gè)特性進(jìn)行編碼,那么覆蓋率如何報(bào)告它缺失?代碼審查- 手頭有規(guī)范 - 絕對(duì)有幫助。

類型 2:驗(yàn)證團(tuán)隊(duì)喜歡找到的極端案例

極端情況下的CPU 錯(cuò)誤更難找到,需要強(qiáng)大的測(cè)試平臺(tái)。運(yùn)行該功能的簡(jiǎn)單測(cè)試用例正確通過,即使有隨機(jī)延遲。很多時(shí)候,當(dāng)異步事件加入聚會(huì)時(shí),您會(huì)發(fā)現(xiàn)這些錯(cuò)誤。例如,一個(gè)中斷恰好在 2 條指令之間以精確的時(shí)間到達(dá)?;蛘呔彺嬷械囊恍性诖鎯?chǔ)緩沖區(qū)想要合并時(shí)被驅(qū)逐。要解決這些錯(cuò)誤,您需要一個(gè)能夠兼顧指令、參數(shù)和延遲的測(cè)試平臺(tái),以便執(zhí)行所有可能的指令和事件交錯(cuò)。顯然,一個(gè)好的檢查者應(yīng)該發(fā)現(xiàn)任何與預(yù)期的偏差。

在這種情況下,代碼覆蓋率有幫助嗎?不幸的是沒有。僅僅因?yàn)殄e(cuò)誤的情況是已經(jīng)單獨(dú)涵蓋的幾個(gè)事件的組合。在這里,條件覆蓋分支覆蓋可能會(huì)有所幫助。但分析起來很痛苦,而且最終很少有好處。

動(dòng)畫展示了 4 種 CPU 錯(cuò)誤的演變過程

1. 測(cè)試臺(tái)發(fā)現(xiàn)了簡(jiǎn)單的錯(cuò)誤和一些極端情況。2.我們從這些極端案例中學(xué)習(xí),以改進(jìn)測(cè)試平臺(tái)并擴(kuò)大驗(yàn)證范圍。這樣做,我們會(huì)發(fā)現(xiàn)隱藏的案例變成了極端案例(或簡(jiǎn)單的錯(cuò)誤)。3. 由于Bug“成群結(jié)隊(duì)”,我們可以根據(jù)最后發(fā)現(xiàn)的Bug進(jìn)一步擴(kuò)大我們的驗(yàn)證范圍。當(dāng)我們遇到一個(gè)愚蠢的錯(cuò)誤時(shí),我們知道我們的測(cè)試已經(jīng)足夠遠(yuǎn)了。

類型 3:意外發(fā)現(xiàn)的隱藏 CPU 錯(cuò)誤 - 或由客戶發(fā)現(xiàn)

隱藏的錯(cuò)誤是由客戶發(fā)現(xiàn)的(這是不好的),或者是偶然發(fā)現(xiàn)的(在內(nèi)部,在發(fā)布之前)。在這兩種情況下,這意味著驗(yàn)證方法無法找到它們。

如果您使用不同的測(cè)試臺(tái)或環(huán)境,您可能會(huì)因?yàn)榇碳げ煌业狡渌咐?。很公平。那么,我們所說的“偶然發(fā)現(xiàn)”是什么意思?這是隨機(jī)測(cè)試平臺(tái)方法的限制。

對(duì)于隨機(jī)刺激,測(cè)試平臺(tái)通常會(huì)生成“相同”的東西。如果你擲骰子得到一個(gè)隨機(jī)數(shù),那么連續(xù) 10 次得到數(shù)字 6 的機(jī)會(huì)很少。準(zhǔn)確地說,6000 萬分之一的機(jī)會(huì)。對(duì)于具有 100 條不同指令的RISC-V CPU,(等概率的)隨機(jī)指令生成器每 102? 次只有 1 次機(jī)會(huì)連續(xù)生成 10 次相同的指令。只是魔方不同位置數(shù)量的兩倍……在 10 級(jí)流水線處理器上,使用所有流水線級(jí)上存在的相同指令對(duì)其進(jìn)行測(cè)試并非不合理。如果你不調(diào)整你的隨機(jī)約束,祝你好運(yùn)......

類型 4:現(xiàn)實(shí)生活中不會(huì)發(fā)生的愚蠢錯(cuò)誤

您可能會(huì)過度尋找極端案例和隱藏案例,最終創(chuàng)建的測(cè)試太愚蠢了。

在連接調(diào)試器的同時(shí)在每個(gè)周期來回更改字節(jié)順序可能永遠(yuǎn)不會(huì)在消費(fèi)產(chǎn)品上發(fā)生,如果 CPU 錯(cuò)誤的后果對(duì)客戶來說永遠(yuǎn)不可見,那么它就不是真正的錯(cuò)誤。如果您在復(fù)制文件時(shí)故意拔下 U 盤,而文件已損壞,我認(rèn)為這不是錯(cuò)誤。如果某些操作導(dǎo)致 USB 控制器掛起,那么是的,這是一個(gè)錯(cuò)誤。

謹(jǐn)防擴(kuò)大驗(yàn)證范圍。當(dāng)發(fā)現(xiàn)愚蠢的案例時(shí),您可能將工程工作投入到錯(cuò)誤的地方。

您可以應(yīng)用不同的驗(yàn)證技術(shù)在客戶之前有效地發(fā)現(xiàn) CPU 錯(cuò)誤。在 Codasip,我們使用多個(gè)組件測(cè)試平臺(tái)、各種隨機(jī)測(cè)試生成器、隨機(jī)刺激器和其他幾種技術(shù)來驗(yàn)證我們的產(chǎn)品。隨著項(xiàng)目的發(fā)展,我們開發(fā)了這些技術(shù)以擁有強(qiáng)大的驗(yàn)證方法。在我們的博客文章中了解更多信息,其中我們解釋了我們?nèi)绾尾粩喔倪M(jìn)我們的驗(yàn)證方法。

審核編輯:符乾江

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

    關(guān)注

    68

    文章

    10809

    瀏覽量

    210874
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8973

    瀏覽量

    85098
  • 錯(cuò)誤
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    17344
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    找不到這個(gè)啊?在哪里能找到圖標(biāo)

    找不到這個(gè)圖標(biāo)到處也沒找到 求大師們知道小的一下
    發(fā)表于 04-23 21:37

    這是什么函數(shù),沒找到?

    請(qǐng)問高手們,這是什么函數(shù),沒找到?
    發(fā)表于 10-09 12:11

    請(qǐng)教各位大神,在proteus中繪制LM3409HV調(diào)光電路時(shí),怎么找到LM3409HV這個(gè)芯片,找了好久沒找到

    請(qǐng)教各位大神,在proteus中繪制LM3409HV調(diào)光電路時(shí),怎么找到LM3409HV這個(gè)芯片,找了好久沒找到
    發(fā)表于 07-11 21:03

    請(qǐng)教各位大神,在proteus中繪制LM3409HV調(diào)光電路時(shí),怎么找到LM3409HV這個(gè)芯片,找了好久沒找到

    請(qǐng)教各位大神,在proteus中繪制LM3409HV調(diào)光電路時(shí),怎么找到LM3409HV這個(gè)芯片,找了好久沒找到
    發(fā)表于 07-15 18:55

    求助,急,找了好多都沒找到!

    導(dǎo)入3D圖片控件時(shí),導(dǎo)入的wrl格式的文件,但是我想改變這個(gè)wrl格式的文件屬性顏色,沒有找到,不知道是為什么,stl格式和ase格式的都可以改變顏色屬性,就是wrl沒找到,不知道哪位大神知道可以更改wrl格式的顏色屬性。下面是ase和stl格式更改顏色屬性的,太急了,求
    發(fā)表于 08-26 22:31

    Labview 測(cè)量I/O里面沒找到研華的信息?

    各位大神最近安裝了Labview2012和研華的采集卡PCI1716L驅(qū)動(dòng),同時(shí)安裝DAQNavi SDK 3.1版本。但是在函數(shù)面板-測(cè)量I/O里面沒找到研華的信息,這是什么問題??謝謝
    發(fā)表于 08-10 18:36

    請(qǐng)問在CCS3.3里,運(yùn)行時(shí)有一個(gè)菜單“Animate”,CCS4.2里沒找到對(duì)應(yīng)的菜單是我沒找到還是沒有?

    在CCS3.3里,運(yùn)行時(shí)有一個(gè)菜單“Animate”,設(shè)個(gè)斷點(diǎn),可以連續(xù)運(yùn)行到斷點(diǎn),可以在CCS里看連續(xù)的波形。我在CCS4.2里沒找到對(duì)應(yīng)的菜單。請(qǐng)問高手,是我沒找到還是沒有,謝謝!
    發(fā)表于 07-30 08:46

    請(qǐng)問TMDSCNCD28035圖紙沒找到是在哪里

    我手里有TMDSCNCD28035 + TMDSHVMTRPFCKIT套件,TMDSHVMTRPFCKIT的圖紙?jiān)赾ontrolsuite里面有,TMDSCNCD28035沒找到,是否可以幫忙找一下,謝謝!
    發(fā)表于 09-11 11:21

    沒找到STM8S庫中的ABS(X)功能

    您好,我是STM8S用戶。我在stm8s代碼示例中找到了STM8S math.h,math.s但是我沒找到它,我想在math.h中使用ABS(X),ABS(X)嗎?以上來自于谷歌翻譯以下為原文
    發(fā)表于 01-15 15:30

    如何找到錯(cuò)誤的符號(hào)?

    --------------------錯(cuò)誤表明下面列出的信號(hào)有錯(cuò)誤,我無法找到這些錯(cuò)誤下列出的任何信號(hào)。如何
    發(fā)表于 06-27 09:08

    C6748沒找到它的CSL文件怎么辦?

    路過的大俠:小弟剛?cè)胧諧6748,準(zhǔn)備在上面開發(fā)應(yīng)用程序。但一直沒找到它的CSL文件,有沒有人有鏈接???能不能發(fā)一個(gè),謝謝!
    發(fā)表于 08-11 08:17

    如何找到所需網(wǎng)站的IP地址以及如何找到IP地址的來源

    要跟蹤信號(hào)的來源,請(qǐng)使用類似的網(wǎng)站,網(wǎng)站會(huì)告訴您信號(hào)的來源,但是要找到公司和關(guān)于他們的其他事情也使用這個(gè)。
    的頭像 發(fā)表于 12-10 16:48 ?5871次閱讀
    如何<b class='flag-5'>找到</b>所需網(wǎng)站的IP地址以及如何<b class='flag-5'>找到</b>IP地址的來源

    如何找到燒壞電阻的值

    今天給大家分享一點(diǎn)簡(jiǎn)單的:4方法,幫你找到燒壞電阻的值。
    的頭像 發(fā)表于 02-16 09:12 ?2128次閱讀

    如何快速找到PCB中的GND?

    如何快速找到PCB中的GND?
    的頭像 發(fā)表于 12-07 14:26 ?1274次閱讀
    如何快速<b class='flag-5'>找到</b>PCB中的GND?

    西門子博途中CPU對(duì)錯(cuò)誤的反應(yīng)

    如果CPU的操作系統(tǒng)檢測(cè)到錯(cuò)誤,它會(huì)以O(shè)B調(diào)用的形式搜索適當(dāng)?shù)?b class='flag-5'>錯(cuò)誤處理。如果找到了相應(yīng)的OB,則執(zhí)行OB并完成
    的頭像 發(fā)表于 12-11 17:12 ?822次閱讀
    西門子博途中<b class='flag-5'>CPU</b>對(duì)<b class='flag-5'>錯(cuò)誤</b>的反應(yīng)