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

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

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

RISC-V處理器驗(yàn)證:瑞士奶酪模型驗(yàn)證應(yīng)用

ruikundianzi ? 來源:IP與SoC設(shè)計(jì) ? 作者:IP與SoC設(shè)計(jì) ? 2022-12-14 13:44 ? 次閱讀

1引言

電子行業(yè)對(duì)處理性能的要求不斷提高,無論是對(duì)移動(dòng)電話等消費(fèi)設(shè)備、智能卡等安全設(shè)備,還是汽車等安全關(guān)鍵系統(tǒng)。幾十年來,半導(dǎo)體的縮放使新一代系統(tǒng)級(jí)芯片(SoCs)能夠利用更為密集的通用處理器,直至登納德縮放定律(Dennard Scaling)結(jié)束前,提高處理器速度。

而今,除了少數(shù)應(yīng)用外,最先進(jìn)的處理節(jié)點(diǎn)對(duì)所有應(yīng)用而言都太過昂貴。在大多數(shù)情況下,架構(gòu)創(chuàng)新是提供更高性能的唯一途徑。對(duì)于計(jì)算要求較高的應(yīng)用而言,理想情況下,處理器架構(gòu)應(yīng)與計(jì)算工作負(fù)載相匹配。

在SoC上實(shí)現(xiàn)的特殊計(jì)算單元或加速器可分為兩大類。一類是通過向現(xiàn)有處理器內(nèi)核的流水線上添加附加指令來實(shí)現(xiàn)的。在有一組明確定義的算法需要處理,并且對(duì)通用處理器提供的廣泛服務(wù)的需求有限時(shí),此類加速器運(yùn)行良好。

另一類是處理器模塊或協(xié)處理器,通過寄存器或內(nèi)存映射接口與主機(jī)通用處理器通信,并對(duì)內(nèi)存有自己的訪問權(quán)限。

一段時(shí)間以來,專用指令集處理器(ASIPs)已經(jīng)為專門的應(yīng)用開發(fā)。這需要具備足夠?qū)I(yè)知識(shí)的多學(xué)科團(tuán)隊(duì)來開發(fā)指令集、微架構(gòu)和軟件工具鏈。而很少有公司兼具開發(fā)專用指令集處理器的全部技能,所以開發(fā)此類處理器的公司相對(duì)較少。

隨著RISC-V處理器的出現(xiàn),游戲規(guī)則發(fā)生了變化,開發(fā)專用處理器的門檻大幅降低。現(xiàn)在,設(shè)計(jì)專用計(jì)算單元變得更容易,同時(shí)也需要更多的工程師參與進(jìn)來。雖然RISC-V給處理器設(shè)計(jì)者帶來了好處,但對(duì)驗(yàn)證者而言它卻提供不了幫助。驗(yàn)證并發(fā)現(xiàn)RISC-V處理器上的諸多漏洞幾乎等同于使用另一個(gè)指令集架構(gòu)(ISA)來驗(yàn)證處理器。事實(shí)上,隨著RISC-V推出的新規(guī)范和執(zhí)行邏輯,工程師可能會(huì)在無意中創(chuàng)建難以檢測(cè)的規(guī)范和被測(cè)器件(DUT)漏洞。隨著更多的社區(qū)參與開發(fā)或修改RISC-V處理器,人們需要對(duì)如何有效地驗(yàn)證處理器有更多的認(rèn)識(shí)。

然而,處理器驗(yàn)證從來都不是小事,而是需要結(jié)合多種驗(yàn)證技術(shù)的優(yōu)勢(shì)。這篇技術(shù)白皮書講述了如何通過利用起源于航空電子學(xué)界的被稱為“瑞士奶酪模型”的多層方法,來有效地驗(yàn)證RISC-V處理器。

2作為架構(gòu)推動(dòng)者的RISC-V!

直至最近,SoC設(shè)計(jì)者仍可以選擇使用專有的指令集架構(gòu)授權(quán)一個(gè)現(xiàn)成的處理器,或是創(chuàng)建一個(gè)專用指令集處理器。大多數(shù)公司都缺乏創(chuàng)建專用指令集處理器的資源和技能,因此他們通常別無選擇,只能使用現(xiàn)成的處理器。因此,在某些領(lǐng)域,如微控制器,由于基于相同的處理器IP內(nèi)核,競(jìng)爭(zhēng)產(chǎn)品之間的差異有限。

專用指令集處理器也有一些明顯的缺點(diǎn)。首先,有一個(gè)問題是,設(shè)計(jì)的所有方面,包括指令集,都需要從頭開始開發(fā)。其次,專用處理器將缺乏軟件生態(tài)系統(tǒng)。

RISC-V促使生態(tài)系統(tǒng)變革,它具有開放、模塊化、可定制的優(yōu)點(diǎn),并且它的標(biāo)準(zhǔn)僅涵蓋指令集架構(gòu)。這種開放性意味著設(shè)計(jì)師團(tuán)隊(duì)不局限于單一供應(yīng)商,整個(gè)軟件生態(tài)系統(tǒng)都可以使用該標(biāo)準(zhǔn)。這使得RISC-V生態(tài)系統(tǒng)得以迅速發(fā)展。

模塊化意味著人們可以根據(jù)需求選擇自己想要的標(biāo)準(zhǔn)擴(kuò)展,使處理器能夠根據(jù)應(yīng)用調(diào)整不同的配置。通過創(chuàng)建自定義指令來優(yōu)化目標(biāo)工作負(fù)載的執(zhí)行,可以實(shí)現(xiàn)更細(xì)粒度的調(diào)優(yōu)。這種將RISC-V指令集架構(gòu)與預(yù)期應(yīng)用相匹配的自由提供了極大的創(chuàng)新機(jī)遇。

由于RISC-V開放標(biāo)準(zhǔn)只涵蓋了指令集架構(gòu),因此對(duì)使用它的微架構(gòu)沒有任何限制。因此,在執(zhí)行單元、流水線長(zhǎng)度、緩存等方面可能存在差異。

在許多情況下,最快速開發(fā)專用RISC-V處理器的方法是從一個(gè)相當(dāng)接近于滿足需求的現(xiàn)有處理器設(shè)計(jì)開始,然后進(jìn)行定制設(shè)計(jì),例如,創(chuàng)建自定義擴(kuò)展。

一種可能是從開源RTL實(shí)現(xiàn)開始,然而,修改RTL,更新指令集模擬器(ISS)和軟件工具鏈都依靠手動(dòng)操作,這也就意味著需要更多的勞動(dòng)力,且更容易出錯(cuò)。

Codasip使用 CodAL架構(gòu)描述語言開發(fā)其處理器。通過高水平的描述這一設(shè)計(jì)并使用Codasip Studio設(shè)計(jì)自動(dòng)化,可以自動(dòng)生成RTL、軟件工具鏈和驗(yàn)證環(huán)境。授權(quán)Codasip的 RISC-V 處理器的CodAL架構(gòu)來源是定制化的有效起點(diǎn)(圖1)。

d2ce4fbc-7b65-11ed-8abf-dac502259ad0.png

圖1: 可以定制RISC-V處理器的CodAL描述,以滿足應(yīng)用的需求

但是,通過定制現(xiàn)有處理器,需要進(jìn)行額外的驗(yàn)證,因?yàn)槎ㄖ频奶幚砥髋c原始處理器不同。盡管預(yù)先驗(yàn)證的現(xiàn)有處理器是一個(gè)非常好的起點(diǎn),但在驗(yàn)證中切忌自滿。

3處理器和軟件復(fù)雜性

許多SoC工程師都熟悉RTL模塊的驗(yàn)證。他們熟悉使用約束隨機(jī)驗(yàn)證或形式化驗(yàn)證等技術(shù)來運(yùn)行個(gè)人識(shí)別碼的程序塊。

那么,處理器驗(yàn)證也是同樣的挑戰(zhàn)嗎?執(zhí)行軟件將處理器與硬連接邏輯區(qū)分開來。軟件變體意味著許多不同的指令排列組合將被應(yīng)用于處理器。它們必須被準(zhǔn)確地執(zhí)行。

軟件的復(fù)雜性也差別很大。例如,一些處理器深深嵌入芯片中,這意味著芯片的用戶無法更改處理器上運(yùn)行的軟件。在其他情況下,SoC中的嵌入式處理器可以由終端用戶進(jìn)行編程。在第一種情況下,處理器需要與來自SoC開發(fā)商提供的少量軟件一起工作,而第二種情況則必須與來自第三方開發(fā)商提供的多種軟件以及多個(gè)實(shí)時(shí)操作系統(tǒng)(RTOS)一起可靠地工作。

在高端應(yīng)用方面,處理器必須能夠運(yùn)行富操作系統(tǒng),諸如Linux或安卓。此外,大量的應(yīng)用將在處理器上運(yùn)行,特別是在安卓系統(tǒng)中,谷歌應(yīng)用商店有數(shù)以百萬計(jì)的不同應(yīng)用。

與硬連接邏輯的另一個(gè)區(qū)別是,處理器的執(zhí)行可以被外部異步事件中斷。處理器必須在許多指令和外部事件的排列組合下正確運(yùn)行。

此外,處理器故障的后果千差萬別。如果消費(fèi)類無線芯片的設(shè)計(jì)錯(cuò)誤導(dǎo)致一些數(shù)據(jù)包的丟失,那么通信協(xié)議可能會(huì)妥善地糾正該問題。但是,如果處理器的設(shè)計(jì)錯(cuò)誤導(dǎo)致安全元件受到破壞,那就可能導(dǎo)致密碼或金額被盜。如果是嵌入汽車或醫(yī)療系統(tǒng)的處理器,那么設(shè)計(jì)錯(cuò)誤可能會(huì)導(dǎo)致人員傷亡。

簡(jiǎn)而言之,與大多數(shù)硬連接邏輯塊相比,處理器有巨大的狀態(tài)空間來進(jìn)行驗(yàn)證。驗(yàn)證是處理器設(shè)計(jì)周期中最重要的組成部分。

4處理器漏洞

處理器漏洞——特別是那些導(dǎo)致產(chǎn)品召回的漏洞——有時(shí)會(huì)出現(xiàn)在公眾的意識(shí)中。早在1994年,英特爾就因?yàn)镕DIV浮點(diǎn)運(yùn)算缺陷而召回了奔騰處理器。2017年,一些與安全缺陷相關(guān)的漏洞,如“熔斷”和“幽靈”,影響了大量使用推測(cè)執(zhí)行機(jī)制的處理器設(shè)計(jì)。

大多數(shù)處理器漏洞從未受到公眾關(guān)注,而大多數(shù)處理器用戶會(huì)驚訝地發(fā)現(xiàn),設(shè)計(jì)一個(gè)典型的中端處理器需要在RTL代碼中修復(fù)1000個(gè)漏洞。使用諸如無序執(zhí)行之類的高級(jí)特性,漏洞的數(shù)量可能會(huì)更多。雖然這個(gè)數(shù)字聽起來很龐大,但重要的是要記住,漏洞在復(fù)雜性上有很大的差異。

4.1漏洞分類法

正如生物學(xué)家將動(dòng)物和植物分為類和種一樣,將漏洞分門別類(四類)也很有用。

4.1.1簡(jiǎn)單漏洞

漏洞源于人為錯(cuò)誤,其中一些很容易被設(shè)計(jì)師和驗(yàn)證工程師發(fā)現(xiàn)。舉一個(gè)典型的例子,在編譯階段就能發(fā)現(xiàn)的語法錯(cuò)誤,比如缺少一個(gè)分號(hào)。

為了避免這類錯(cuò)誤,設(shè)計(jì)團(tuán)隊(duì)必須仔細(xì)閱讀規(guī)范,并在開發(fā)過程中關(guān)注規(guī)范的任何更改。另一方面,驗(yàn)證團(tuán)隊(duì)需要進(jìn)行全面檢查規(guī)范的測(cè)試。

另一個(gè)例子是規(guī)范的一部分沒有實(shí)現(xiàn)。如果為規(guī)范的這一部分編寫了特定的測(cè)試,那么任何像樣的測(cè)試平臺(tái)都應(yīng)該能夠找到它。

當(dāng)使用獲得商業(yè)許可的現(xiàn)成處理器時(shí),設(shè)計(jì)者假設(shè)RTL與指令集架構(gòu)完美匹配。對(duì)于RISC-V,情況也是如此,因?yàn)橹噶罴軜?gòu)是模塊化的,支持自定義指令。

如果設(shè)計(jì)了一種新的RISC-V處理器,那么就有開源的指令集模擬器(ISSs)可用,如Spike。如果使用了RISC-V指令集架構(gòu)的合理標(biāo)準(zhǔn)配置,如RV32IMC,那么指令集模擬器可以作為確保RTL符合指令集架構(gòu)的標(biāo)準(zhǔn)參考。然而,在添加自定義指令時(shí),情況會(huì)變得更為復(fù)雜。

如上所述,如果一個(gè)定制的處理器或/加速器是通過修改現(xiàn)有的RISC-V RTL實(shí)現(xiàn)的,那么同時(shí)更新指令集模擬器和RTL就有可能導(dǎo)致錯(cuò)誤。

因?yàn)镃odasip Studio根據(jù)其高級(jí)描述生成RTL,并且該合成引擎已經(jīng)在許多項(xiàng)目中測(cè)試,因此生成的RTL不太可能包含由低級(jí)編碼錯(cuò)誤導(dǎo)致的漏洞。

通過使用通用驗(yàn)證方法學(xué)(UVM)對(duì)指令集模擬器的標(biāo)準(zhǔn)參考進(jìn)行驗(yàn)證,可以檢查修改后的設(shè)計(jì)RTL是否符合擴(kuò)展的RISC-V指令集架構(gòu)(圖2)。不僅是應(yīng)用軟件,隨機(jī)生成的匯編程序也可以用來刺激UVM環(huán)境。而由于處理器的狀態(tài)空間很大,執(zhí)行大量的排列和指令組合是很重要的。

d2eee646-7b65-11ed-8abf-dac502259ad0.png

圖2:檢查合成的RTL與標(biāo)準(zhǔn)IA參考的一致性是處理器驗(yàn)證中的一個(gè)關(guān)鍵檢查

同樣需要多加注意的是,覆蓋率報(bào)告不會(huì)發(fā)現(xiàn)RTL中未實(shí)現(xiàn)的特性。

然而,以規(guī)范為參考的代碼審查肯定有助于發(fā)現(xiàn)規(guī)范中未實(shí)現(xiàn)的部分。

綜上所述,應(yīng)通過運(yùn)行一個(gè)檢測(cè)來測(cè)試處理器特性,從而發(fā)現(xiàn)簡(jiǎn)單漏洞。任何不良行為都是系統(tǒng)性的,而非一個(gè)計(jì)時(shí)條件。

4.1.2邊角案例漏洞

如上所述,用相當(dāng)簡(jiǎn)單的測(cè)試用例就可以檢測(cè)到很容易發(fā)現(xiàn)的漏洞。即使簡(jiǎn)單的同步測(cè)試用例在隨機(jī)延遲的情況下執(zhí)行,它們也可能通過測(cè)試,而錯(cuò)失真正的漏洞。

邊角案例漏洞的查找則更復(fù)雜,需要一個(gè)強(qiáng)大的測(cè)試平臺(tái)。發(fā)現(xiàn)這樣的漏洞通常意味著異步事件。例如,執(zhí)行一個(gè)中斷指令,且該指令恰好在另外兩個(gè)特定計(jì)時(shí)的指令之間到達(dá)。處理器內(nèi)部還存在其他事件,比如數(shù)據(jù)結(jié)構(gòu)中的先入先出隊(duì)列(FIFO)異常,就可能會(huì)對(duì)處理器的另一個(gè)程序塊施加壓力。為了找到這樣的漏洞,有必要使用一個(gè)測(cè)試平臺(tái),在指令、參數(shù)和延遲上做文章,以便實(shí)現(xiàn)所有可能的指令和事件的交錯(cuò)。一個(gè)優(yōu)秀的檢驗(yàn)員應(yīng)該能發(fā)現(xiàn)偏離預(yù)期的情況。

其他類型的邊角案例包括功能錯(cuò)誤,如數(shù)學(xué)上溢/下溢或?qū)Ξ惓5刂返膬?nèi)存訪問。對(duì)推測(cè)性執(zhí)行的驗(yàn)證尤其具有挑戰(zhàn)性。

同樣,代碼覆蓋率的價(jià)值也是有限的。這是因?yàn)橐粋€(gè)漏洞的條件是幾個(gè)已經(jīng)單獨(dú)涵蓋的事件的組合。條件或分支覆蓋可能會(huì)有所幫助,但很難分析。

4.1.3隱藏漏洞

一些漏洞無法通過所使用的初始處理器驗(yàn)證方法檢測(cè)出來。在糟糕的情況下,它們會(huì)被客戶當(dāng)場(chǎng)發(fā)現(xiàn),而在最壞的情況下,需要召回芯片。應(yīng)用額外的驗(yàn)證層可以降低這些漏洞逃過檢測(cè)的概率。

通過使用多個(gè)測(cè)試平臺(tái)或驗(yàn)證環(huán)境,可以發(fā)現(xiàn)更多的漏洞,因?yàn)榇碳げ煌?。然而,使用隨機(jī)測(cè)試平臺(tái)方法所能達(dá)到的效果是有限的。

在隨機(jī)刺激下,測(cè)試平臺(tái)傾向于生成類似的東西。

這就好比擲骰子,連續(xù)10次擲出6的概率非常低——精確到6000萬分之一的概率。如果一個(gè)RISC-V處理器支持100條不同的指令,并且有10級(jí)流水線,那么在所有流水線都出現(xiàn)相同指令的情況下對(duì)其進(jìn)行測(cè)試也不是沒有道理的。那么,對(duì)于一個(gè)等概率隨機(jī)指令生成器來說,這種可能性有多大?產(chǎn)生這個(gè)序列的概率只有1020分之一!

必須調(diào)整隨機(jī)約束,以覆蓋所有更深層次的情況為目標(biāo)。

4.1.4發(fā)現(xiàn)越來越多的漏洞

總而言之,尋找漏洞通常是一個(gè)漸進(jìn)的過程,來處理愈發(fā)難以找到的漏洞(圖3)。在設(shè)計(jì)過程中,驗(yàn)證方法的復(fù)雜性通常會(huì)增加。較簡(jiǎn)單的方法會(huì)成功地發(fā)現(xiàn)簡(jiǎn)單漏洞,而更強(qiáng)大的測(cè)試平臺(tái)則需要找到邊角案例。正如第5節(jié)中所述,需要結(jié)合多種方法來找到最困難的隱藏漏洞。

d31c8c72-7b65-11ed-8abf-dac502259ad0.png

圖3:越來越先進(jìn)的驗(yàn)證方法發(fā)現(xiàn)了越來越多的漏洞

及時(shí)發(fā)現(xiàn)漏洞,尤其是隱藏漏洞,對(duì)于一個(gè)成功的處理器開發(fā)項(xiàng)目至關(guān)重要。如果太晚發(fā)現(xiàn)項(xiàng)目中的漏洞,那么上市時(shí)間將受到不利影響。

4.2評(píng)估漏洞復(fù)雜性

在設(shè)計(jì)或定制處理器時(shí),一個(gè)顯而易見的問題是詢問處理器的驗(yàn)證何時(shí)完成。換句話說,如何衡量測(cè)試平臺(tái)的效率?驗(yàn)證結(jié)果的可信度如何?業(yè)界通常使用的指標(biāo)包括覆蓋率和漏洞曲線。雖然這些措施是必要的,但它們不足以達(dá)到盡可能高的處理器品質(zhì)。它們未能揭示驗(yàn)證方法找到最后一個(gè)漏洞的能力。

4.2.1定義漏洞復(fù)雜性

漏洞復(fù)雜性已被證明是整個(gè)處理器開發(fā)周期中驗(yàn)證有效性的一個(gè)較好指標(biāo)。

我們所說的漏洞復(fù)雜性是指擊中漏洞所需的獨(dú)立事件或條件的數(shù)量。

舉一個(gè)簡(jiǎn)單的例子。當(dāng)數(shù)據(jù)依賴關(guān)系在設(shè)計(jì)中沒有正確實(shí)現(xiàn)時(shí),在緩存中會(huì)發(fā)現(xiàn)一個(gè)典型的漏洞。此時(shí)數(shù)據(jù)損壞可能發(fā)生在以下情況:

1.地址@A中的高速緩存行在高速緩存中狀態(tài)為“valid”及“dirty”。

2.地址@B的加載會(huì)導(dǎo)致A行的驅(qū)逐。

3.在地址@A開始進(jìn)行另一個(gè)加載。

4.外部寫總線比讀總線的速度慢,因此@A的加載在驅(qū)逐結(jié)束前完成。

外部存儲(chǔ)器返回以前的數(shù)據(jù),因?yàn)閬碜则?qū)逐的最新數(shù)據(jù)丟失了,導(dǎo)致數(shù)據(jù)損壞。通常,設(shè)計(jì)應(yīng)檢測(cè)到這種情況,并確保正確的數(shù)據(jù)處理。

在這個(gè)例子中,需要四個(gè)事件或條件來擊中該漏洞。這四個(gè)事件給漏洞打了4分,或者換句話說,漏洞的復(fù)雜性為4。

4.2.2漏洞的分類和復(fù)雜性

在第4.1節(jié),我們考慮了如何根據(jù)漏洞的特征對(duì)它們進(jìn)行分類。

一個(gè)簡(jiǎn)單漏洞需要通過一個(gè)簡(jiǎn)單的測(cè)試來觸發(fā)一到三個(gè)事件。然而,一個(gè)邊角案例將需要觸發(fā)四個(gè)或更多的事件。參考第4.2.1節(jié)中的例子,如果這四個(gè)條件中的任何一個(gè)不存在,就不會(huì)檢測(cè)到該漏洞。要使用一個(gè)約束隨機(jī)測(cè)試平臺(tái)來檢測(cè)漏洞,則該平臺(tái)需要具備以下特性:

a)地址序列必須足夠智能,可以重新使用之前請(qǐng)求的地址,

b)外部總線上的延遲應(yīng)包含足夠快速的讀寫,

c)外部總線上的延遲應(yīng)包含足夠慢的讀寫。

隱藏案例則需要更多事件來觸發(fā)。例如,我們借用第4.2.1節(jié)中的例子,再額外增加了復(fù)雜性,即它只發(fā)生在緩存中發(fā)現(xiàn)錯(cuò)誤檢查和糾正(ECC)錯(cuò)誤(5),與中斷恰好同時(shí)發(fā)生(6),并且只有當(dāng)處理器完成浮點(diǎn)處理單元(FPU)操作導(dǎo)致除零錯(cuò)誤(7)的時(shí)候。在典型的隨機(jī)測(cè)試平臺(tái)中,所有七種條件同時(shí)出現(xiàn)的概率非常低,這使得它成為一個(gè)“隱藏的”漏洞。

這種漏洞的分類和復(fù)雜性沒有任何限制。經(jīng)驗(yàn)表明,一個(gè)能夠找到8分或9分漏洞的測(cè)試平臺(tái)確實(shí)是一個(gè)非常強(qiáng)大的測(cè)試平臺(tái),并且是提供高質(zhì)量RTL的關(guān)鍵。最先進(jìn)的模擬測(cè)試平臺(tái)能夠找到復(fù)雜性級(jí)別高達(dá)10的漏洞。好消息是,形式化驗(yàn)證使找到復(fù)雜性更高的漏洞變得更容易,這為更好的設(shè)計(jì)質(zhì)量鋪平了道路,并為如何改進(jìn)驗(yàn)證提供了線索。

5用于處理器驗(yàn)證的瑞士奶酪模型

處理器都有高品質(zhì)的要求,其品質(zhì)是處理器驗(yàn)證團(tuán)隊(duì)主要關(guān)注點(diǎn)。在優(yōu)化資源使用的同時(shí),驗(yàn)證需要有一個(gè)足夠全面的范圍。在進(jìn)入大規(guī)模生產(chǎn)之前,找到關(guān)鍵的處理器漏洞是至關(guān)重要的,因此驗(yàn)證必須足夠徹底。另一方面,這個(gè)過程必須是高效的,以滿足上市時(shí)間的要求。

5.1用于驗(yàn)證的思維模式

開發(fā)高質(zhì)量處理器IP的出發(fā)點(diǎn)是擁有正確的驗(yàn)證思維模式。為了達(dá)到一流的品質(zhì),驗(yàn)證團(tuán)隊(duì)的思維模式可以在一個(gè)強(qiáng)大的驗(yàn)證計(jì)劃和一組測(cè)試之間產(chǎn)生差異,這將捕捉到漏洞,并生成一份漂亮的覆蓋率報(bào)告,但卻無法發(fā)現(xiàn)更深層次的邊角案例漏洞。為了達(dá)到較高的RISC-V設(shè)計(jì)質(zhì)量,有必要采取這樣的思維模式,即任何一種驗(yàn)證方法本身都不足以支撐整個(gè)驗(yàn)證。與之相反,必須應(yīng)用不同的驗(yàn)證方法來不斷改進(jìn)漏洞檢測(cè),包括代碼審查、智能隨機(jī)驗(yàn)證、操作系統(tǒng)(OS)引導(dǎo)等。

5.2起源于航空領(lǐng)域的瑞士奶酪模型

Codasip認(rèn)為,為了實(shí)現(xiàn)這些目標(biāo),有必要結(jié)合所有行業(yè)標(biāo)準(zhǔn)的驗(yàn)證技術(shù)——并通過瑞士奶酪模型聯(lián)系起來。瑞士奶酪模型出現(xiàn)在有嚴(yán)格安全要求的航空領(lǐng)域。這一模型是基于與埃曼塔奶酪切片的類比。眾所周知,埃曼塔奶酪以具有大小孔的組合而聞名(圖4)。假設(shè)有一組可能導(dǎo)致飛機(jī)事故的危險(xiǎn),而每一片奶酪代表一種危險(xiǎn)檢測(cè)方法。

d33e5b54-7b65-11ed-8abf-dac502259ad0.png

圖4:在瑞士奶酪模型方法學(xué)中,較小的孔代表良好的檢測(cè)方法。較大的孔洞代表一種相對(duì)不很嚴(yán)謹(jǐn)?shù)姆椒ā?/p>

為了避免飛機(jī)墜毀的風(fēng)險(xiǎn),航空業(yè)對(duì)程序、飛行檢查單和冗余系統(tǒng)要求非常嚴(yán)格。如果有一條直接穿過所有切片的路徑,飛機(jī)就有墜毀的風(fēng)險(xiǎn)。用任何一種方法都會(huì)有一些危險(xiǎn)未被發(fā)現(xiàn),但如果有足夠大的奶酪切片組合,那么所有重要的危險(xiǎn)都可以被發(fā)現(xiàn)。

5.3應(yīng)用于處理器驗(yàn)證的瑞士奶酪模型原理

同樣的分層方法也適用于處理器驗(yàn)證,其起點(diǎn)是將用于綜合設(shè)計(jì)的RTL代碼??梢詰?yīng)用多個(gè)驗(yàn)證層,以確保在發(fā)布處理器IP之前檢測(cè)到漏洞(圖5)。如果改進(jìn)一個(gè)給定的驗(yàn)證方法,那么“孔”的大小就會(huì)減小。切片的不同部分可以視為設(shè)計(jì)的不同部分。

d3717c82-7b65-11ed-8abf-dac502259ad0.png

圖5:瑞士奶酪驗(yàn)證方法在設(shè)計(jì)周期中結(jié)合了多種驗(yàn)證方法

結(jié)合多種驗(yàn)證技術(shù)涉及一些冗余,但通過使用互補(bǔ)的方法,可以最大限度地減少漏洞逃脫的風(fēng)險(xiǎn)。

通過使用不同的奶酪切片或驗(yàn)證方法,我們有以下好處:

1.冗余確保了在某一層失敗時(shí)的連續(xù)性。

2.當(dāng)在開發(fā)過程中發(fā)現(xiàn)漏洞時(shí),就表明漏洞出現(xiàn)在了其中幾片奶酪上。改進(jìn)驗(yàn)證方法可以減少每片奶酪上的漏洞大小。我們提高了檢測(cè)漏洞的幾率,無論是簡(jiǎn)單的漏洞,還是復(fù)雜的邊角案例漏洞。

3.最大限度發(fā)揮每種驗(yàn)證技術(shù)的潛力。

奶酪片上的一個(gè)孔洞就類似于驗(yàn)證方法中的一個(gè)洞。洞的數(shù)量越多,體積越大,則逃脫檢測(cè)的漏洞就越多。如果設(shè)計(jì)的相同區(qū)域(奶酪片)沒有被任何驗(yàn)證技術(shù)所覆蓋(切片之間的重疊孔),那么這個(gè)漏洞就會(huì)通過驗(yàn)證,并可能在最終出現(xiàn)在交付產(chǎn)品中。一種好的驗(yàn)證方法應(yīng)呈現(xiàn)盡可能少且小的孔。堅(jiān)實(shí)的戰(zhàn)略、豐富的經(jīng)驗(yàn)和高效的團(tuán)隊(duì)溝通是交付高質(zhì)量產(chǎn)品的重要因素。

瑞士奶酪模型在受到持續(xù)改進(jìn)時(shí)最為有效。當(dāng)發(fā)現(xiàn)漏洞時(shí),我們可以從用于查找漏洞的場(chǎng)景和檢查中吸取經(jīng)驗(yàn)教訓(xùn)。雖然改進(jìn)用于查找漏洞的那一層上的場(chǎng)景和檢查程序很重要,但同樣重要的是看看是否可以將經(jīng)驗(yàn)教訓(xùn)應(yīng)用于其他驗(yàn)證層。這就類似于減少多個(gè)奶酪片上的孔的大小。

d3a0eecc-7b65-11ed-8abf-dac502259ad0.png

圖6:瑞士奶酪模型的迭代改進(jìn)可提高驗(yàn)證質(zhì)量。這是一個(gè)良性循環(huán)。

5.4準(zhǔn)備開始

驗(yàn)證的一個(gè)良好起點(diǎn)是對(duì)被測(cè)器件RTL和初始測(cè)試平臺(tái)進(jìn)行代碼審查。代碼審查可以很容易地發(fā)現(xiàn)一些簡(jiǎn)單漏洞,例如規(guī)范中錯(cuò)誤實(shí)現(xiàn)的部分。由于規(guī)范在設(shè)計(jì)周期中可能會(huì)發(fā)生變化,因此務(wù)必確保任何更改都已反映在代碼中。

另一個(gè)早期的檢查是驗(yàn)證處理器內(nèi)核是否符合所需的指令集。完整性檢查是實(shí)現(xiàn)這一目標(biāo)的有效方法,例如,通過將設(shè)計(jì)與行業(yè)標(biāo)準(zhǔn)模型進(jìn)行比較;Codasip使用的切片之一。與此類模型相比,作為標(biāo)準(zhǔn)參考,提高了Codasip RISC-V處理器的質(zhì)量,并且這些模型中的漏洞已經(jīng)被報(bào)告,以提高RISC-V的整體質(zhì)量。如果通過添加自定義指令修改了處理器,則標(biāo)準(zhǔn)參考必須包含這些額外的指令。

處理器的RTL是分層的,因此除了在頂層運(yùn)行定向測(cè)試之外,在設(shè)計(jì)層次中的較低層次創(chuàng)建塊級(jí)測(cè)試平臺(tái)以檢查正確的操作是有意義的。

5.5改進(jìn)瑞士奶酪模型

雖然瑞士奶酪模型——由于是多層次的——本身就能很好地發(fā)現(xiàn)處理器漏洞,但在項(xiàng)目過程中改進(jìn)這些層是很重要的。當(dāng)發(fā)現(xiàn)一個(gè)錯(cuò)誤——在切片驗(yàn)證中的一個(gè)孔時(shí)——應(yīng)該修復(fù)它,并檢查其他切片是否有類似的孔。給定切片發(fā)現(xiàn)的漏洞也應(yīng)幫助在其他驗(yàn)證切片中找到漏洞,這些漏洞應(yīng)該在進(jìn)一步進(jìn)展之前得到解決。

單一的驗(yàn)證技術(shù)不能依靠其本身找到每個(gè)漏洞,而是所有驗(yàn)證技術(shù)的綜合提高了驗(yàn)證的整體質(zhì)量,從而提高了整體處理器的質(zhì)量。

同樣重要的是要記住,設(shè)計(jì)不是靜態(tài)的(除了漏洞修復(fù)之外),在產(chǎn)品的開發(fā)過程中可能會(huì)有意外的變化或外部因素影響驗(yàn)證。例如,設(shè)計(jì)團(tuán)隊(duì)沒有向驗(yàn)證團(tuán)隊(duì)傳達(dá)設(shè)計(jì)變更。同樣地,一個(gè)沉悶的周五下午的工作也可能會(huì)導(dǎo)致人為錯(cuò)誤,從而降低驗(yàn)證質(zhì)量。

這樣的人為錯(cuò)誤會(huì)增加切片上的孔的大小,并降低驗(yàn)證的有效性。

重要的是不要僅僅依賴一個(gè)驗(yàn)證層,而要保持工程規(guī)范的更新,讓設(shè)計(jì)和驗(yàn)證團(tuán)隊(duì)良好溝通。

只有將應(yīng)用漏洞復(fù)雜性和以下改進(jìn)方法貫穿項(xiàng)目開端和整個(gè)設(shè)計(jì)開發(fā)過程中才有用。這有兩個(gè)原因:

1.必須在發(fā)現(xiàn)漏洞時(shí)進(jìn)行修復(fù)。如果2級(jí)或3級(jí)的漏洞未被修復(fù),就意味著在啟動(dòng)大規(guī)模浸泡測(cè)試時(shí)將會(huì)發(fā)生很多故障。據(jù)統(tǒng)計(jì),來自同一集群的類似漏洞,除非有更多的事件觸發(fā),才可能會(huì)被注意到。

2.漏洞復(fù)雜性被用來改進(jìn)和衡量測(cè)試平臺(tái)的質(zhì)量。由于復(fù)雜性級(jí)別與觸發(fā)漏洞所需的事件數(shù)量相匹配,因此復(fù)雜性得分越高,測(cè)試平臺(tái)就越嚴(yán)格。追蹤和分析觸發(fā)漏洞的事件對(duì)于了解如何調(diào)整隨機(jī)約束或創(chuàng)建一個(gè)新的功能覆蓋點(diǎn)非常有用。

5.6使用智能隨機(jī)測(cè)試擊中漏洞集群

處理器漏洞的一大特點(diǎn)是,它們很少單獨(dú)出現(xiàn)。事實(shí)上,就像昆蟲一樣,蟲子通常是成群結(jié)隊(duì)的。換句話說,當(dāng)通過定向測(cè)試在設(shè)計(jì)的給定區(qū)域發(fā)現(xiàn)一個(gè)漏洞時(shí),在設(shè)計(jì)的同一區(qū)域很有可能有更多具有類似條件的漏洞。

如果發(fā)現(xiàn)了一個(gè)新的處理器漏洞,那么它不應(yīng)該是驗(yàn)證之旅的結(jié)束,而是一個(gè)找到更多漏洞的機(jī)會(huì)。

這個(gè)漏洞應(yīng)該被用作一根指針,幫助查找同一區(qū)域的更多漏洞。它應(yīng)當(dāng)是找到整個(gè)漏洞集群的提示。

試想一下,一個(gè)頂級(jí)隨機(jī)測(cè)試在經(jīng)過數(shù)千小時(shí)的測(cè)試后發(fā)現(xiàn)了一個(gè)漏洞。這個(gè)漏洞很可能是由以前從未遇到過的事件組合發(fā)現(xiàn)的。這很可能由外部修改引起,例如,測(cè)試中參數(shù)的更改、RTL修改或模擬器修改。

通過發(fā)現(xiàn)這個(gè)罕見的新漏洞,很明顯會(huì)有一個(gè)更嚴(yán)格的測(cè)試平臺(tái),用來測(cè)試一個(gè)新的設(shè)計(jì)領(lǐng)域。

然而,在測(cè)試平臺(tái)被改進(jìn)之前,這個(gè)設(shè)計(jì)領(lǐng)域并沒有被強(qiáng)調(diào)。如果我們認(rèn)識(shí)到漏洞成群結(jié)隊(duì)出現(xiàn),那么這個(gè)區(qū)域就需要進(jìn)一步的探索來找到更多的漏洞。

為了擊中這些漏洞檢查器,我們可以添加斷言和測(cè)試。來看這個(gè)測(cè)試,如果這個(gè)漏洞通過定向測(cè)試再現(xiàn),那么只有完全相同的漏洞才會(huì)被擊中。與之相反,在同一區(qū)域很可能有其他具有類似條件的漏洞。為了擴(kuò)大打擊漏洞集群中其他漏洞的范圍,可以使用智能隨機(jī)測(cè)試。請(qǐng)注意,正常的無目標(biāo)隨機(jī)測(cè)試在這種情況下無效,因?yàn)榻o定的漏洞集群模式有一個(gè)明確的目標(biāo)。

如果這個(gè)漏洞是在一個(gè)特定的RISC-V指令上發(fā)現(xiàn)的,那么一個(gè)合理的問題是,是否可以通過增加該指令的測(cè)試概率來改善測(cè)試呢?乍一看可能是這樣,從統(tǒng)計(jì)學(xué)角度分析,失敗越多,暴露的漏洞也會(huì)越多,但大多數(shù)漏洞都是通過一系列罕見事件的組合發(fā)現(xiàn)的。此類事件的例子包括停滯的流水線、完整的數(shù)據(jù)結(jié)構(gòu)中的先入先出隊(duì)列(FIFO),或者其他一些微架構(gòu)的細(xì)節(jié)。

標(biāo)準(zhǔn)的測(cè)試平臺(tái)可以通過簡(jiǎn)單地改變一個(gè)測(cè)試參數(shù)來調(diào)整指令的概率。然而,充滿FIFO通常是不可能的。當(dāng)測(cè)試平臺(tái)僅通過改變一個(gè)參數(shù)來針對(duì)性地充滿FIFO,以觸發(fā)其他獨(dú)立參數(shù)(如延遲)的組合時(shí),測(cè)試策略可以得到明顯改善。

對(duì)于一個(gè)設(shè)計(jì)中新發(fā)現(xiàn)漏洞的區(qū)域,智能隨機(jī)測(cè)試通過將搜索范圍擴(kuò)大到設(shè)計(jì)的鄰近區(qū)域,來有效地發(fā)現(xiàn)更多的漏洞。它包括通過調(diào)整多個(gè)參數(shù)來調(diào)整測(cè)試,以激活更多觸發(fā)漏洞的事件。雖然這看起來很耗時(shí),但這種方法在提高測(cè)試質(zhì)量和處理器的質(zhì)量方面很有效。

5.7隨機(jī)測(cè)試后檢查覆蓋率

覆蓋率是著名的“覆蓋率驅(qū)動(dòng)驗(yàn)證方法”的反饋回路。它在隨機(jī)刺激的情況下特別有用。由于是隨機(jī)的,驗(yàn)證工程師只控制應(yīng)用于被測(cè)設(shè)備的不同模式的權(quán)重。在不同種子的幫助下,隨機(jī)生成模式將被組合起來,并在模擬過程中被應(yīng)用到設(shè)備上。但是,需要多少不同的種子才能確保處理器的測(cè)試呢?測(cè)量覆蓋率作為一個(gè)度量標(biāo)準(zhǔn),可以讓人相信隨機(jī)生成器已經(jīng)生成了所有需要的情況。

特別是,它應(yīng)該對(duì)之前進(jìn)行的隨機(jī)驗(yàn)證步驟的質(zhì)量給出反饋,無論是在頂層還是區(qū)塊級(jí)別。

代碼覆蓋的類型包括:

●語句覆蓋

●條件/表達(dá)式覆蓋

●分支/判定覆蓋

●翻轉(zhuǎn)覆蓋

●狀態(tài)機(jī)(FSM)覆蓋

如果在代碼覆蓋中發(fā)現(xiàn)漏洞,則需要設(shè)計(jì)進(jìn)一步的測(cè)試來運(yùn)行代碼的這些部分。

功能覆蓋是確保模式執(zhí)行特定功能的另一個(gè)重要部分,傳統(tǒng)的代碼覆蓋不一定能測(cè)量。它在以下兩個(gè)領(lǐng)域尤其有效:

-架構(gòu)覆蓋(確保執(zhí)行了各種類型的指令,并結(jié)合各種中斷的情況)

-微架構(gòu)覆蓋,以確保對(duì)罕見的功能進(jìn)行深度測(cè)試。

5.8使用形式化驗(yàn)證來搜索隱藏漏洞

雖然智能隨機(jī)測(cè)試可以用來擴(kuò)大被測(cè)試的設(shè)計(jì)區(qū)域,但重要的是要明白隨機(jī)測(cè)試并不是徹底的。最新的漏洞可能出現(xiàn)在現(xiàn)有測(cè)試平臺(tái)未覆蓋的區(qū)域,或者需要通過一個(gè)天文數(shù)字周期的模擬才能被找到。這種情況類似于在夜晚尋找一個(gè)丟失的物品。

圖7:傳統(tǒng)模擬類似于在一盞路燈下尋找丟失的物品,但形式化驗(yàn)證類似于在有充分照明的街道上尋找。

傳統(tǒng)模擬可以類似于在一盞路燈下尋找。然而,大部分的街道空間都處在黑暗之中。智能隨機(jī)驗(yàn)證可以擴(kuò)大照明區(qū)域,但不能到處搜索。形式化驗(yàn)證可以徹底地搜索,此種形式類似于在有充分照明的街道上進(jìn)行搜索。

模擬需要投入促進(jìn)因素的開發(fā)。相比之下,形式化驗(yàn)證不需要在促進(jìn)因素方面下功夫,但需要限定足夠的檢查。

因此,形式化技術(shù)是瑞士奶酪模型中的一個(gè)關(guān)鍵部分。通過在覆蓋下使用詳盡的分析,并以形式化術(shù)語反映被測(cè)器件的規(guī)范,可以發(fā)現(xiàn)未預(yù)見到的設(shè)計(jì)路徑,這些路徑中隱藏著其他驗(yàn)證方法所不能揭示的漏洞。

通過為每個(gè)指令使用一組專用的操作斷言模板,可以實(shí)現(xiàn)高度的自動(dòng)化。具體來說,這種方法使用了SystemVerilog斷言(SVA)的擴(kuò)展,該斷言提供了高層次的、不重疊的斷言,以捕獲端到端的事務(wù)和需求。這種簡(jiǎn)明、流暢的方法的優(yōu)勢(shì)包括:

●能夠轉(zhuǎn)化功能要求,以自動(dòng)檢測(cè)規(guī)范的遺漏和錯(cuò)誤,以及驗(yàn)證計(jì)劃中的漏洞和未經(jīng)驗(yàn)證的RTL功能。

●以簡(jiǎn)明流暢的方式捕獲整個(gè)電路事務(wù),類似于時(shí)序圖。

●將特定實(shí)現(xiàn)的支持驗(yàn)證代碼與可重用的規(guī)范級(jí)代碼清晰地分開。

●通過高層次和易于審查的斷言,實(shí)現(xiàn)100%的功能覆蓋。

來看看以下在處理器設(shè)計(jì)中驗(yàn)證RISC-V FSQRT行為時(shí)遇到的真實(shí)例子。RISC-V指令集手冊(cè)中對(duì)指令字段的定義如下:

d3e2a88a-7b65-11ed-8abf-dac502259ad0.png

圖8:RISC-V FSQRT指令格式

該標(biāo)準(zhǔn)要求源寄存器字段rs1為“0”,以使指令有效(圖8)。形式化驗(yàn)證發(fā)現(xiàn)了一個(gè)反例,在這個(gè)反例中,編碼為rs1不等于“0”的指令被錯(cuò)誤地解碼為FSQRT,而不是未定義。

d40b85d4-7b65-11ed-8abf-dac502259ad0.png

d4251b0c-7b65-11ed-8abf-dac502259ad0.png

d443c052-7b65-11ed-8abf-dac502259ad0.png

圖9:一致性檢查發(fā)現(xiàn)由硬連接信號(hào)引起的死碼。

另一個(gè)關(guān)于自動(dòng)一致性檢查如何識(shí)別潛在漏洞的例子如上圖所示(圖9)。第一個(gè)代碼片段(左)顯示了一個(gè)依賴于流水線控制器代碼片段(中)中的信號(hào)的分支。形式化檢查標(biāo)記了信號(hào)s_ex1_clear被綁定為零(右側(cè)片段),這意味著該分支是不可執(zhí)行的。

5.9通過使用現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA)操作系統(tǒng)啟動(dòng)來給設(shè)計(jì)施加壓力

許多提及的瑞士奶酪方式方法都涉及到RTL的模擬。這很容易設(shè)置,但其缺點(diǎn)是相對(duì)較慢。這意味著,即使模擬運(yùn)行數(shù)天,完成的處理器時(shí)鐘周期數(shù)也相對(duì)較少。RTL模擬器的運(yùn)行速度范圍平均為每秒數(shù)百或數(shù)千條指令。

處理器設(shè)計(jì)的FPGA實(shí)現(xiàn)將比RTL模擬快得多,盡管比SoC實(shí)現(xiàn)慢。對(duì)于處理器的設(shè)計(jì),使用FPGA可以達(dá)到10-50兆赫的速度。為了創(chuàng)建原型,有必要合成處理器子系統(tǒng),并從FPGA板的內(nèi)存中運(yùn)行代碼。其周轉(zhuǎn)時(shí)間高于RTL模擬。

使用處理器的FPGA實(shí)現(xiàn)允許以比模擬多幾個(gè)數(shù)量級(jí)的時(shí)鐘周期來執(zhí)行設(shè)計(jì)。這種奶酪層的一個(gè)典型應(yīng)用是啟動(dòng)操作系統(tǒng),并運(yùn)行各種壓力測(cè)試,以便在現(xiàn)實(shí)的場(chǎng)景中來運(yùn)行設(shè)計(jì)。

6結(jié)語

RISC-V作為一個(gè)開放的、模塊化、可定制的指令集架構(gòu),為架構(gòu)創(chuàng)新提供了新的機(jī)會(huì)。

然而,只有具備足夠的驗(yàn)證策略,這種機(jī)會(huì)才能通過現(xiàn)代SoC設(shè)計(jì)所需的質(zhì)量來實(shí)現(xiàn)。隨著越來越多的團(tuán)隊(duì)參與RISC-V開發(fā),越來越多的工程師需要精通處理器驗(yàn)證方式方法。

Codasip提供了一種涉及多種驗(yàn)證方法的多層方法,以實(shí)現(xiàn)優(yōu)越的處理器質(zhì)量水平。這種瑞士奶酪模型的方法類似于在航空電子學(xué)中為確保高水平的可靠性和飛行安全而采取的做法。該方法在設(shè)計(jì)周期中迭代的改進(jìn)驗(yàn)證層,以最大限度地提高漏洞檢測(cè)的概率。瑞士奶酪驗(yàn)證層的迭代改進(jìn)是支持提高處理器質(zhì)量的良性循環(huán)。

對(duì)于定制的RISC-V處理器,可以采用相同的方法,但要以經(jīng)過驗(yàn)證的處理器為起點(diǎ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)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    18948

    瀏覽量

    227408
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4032

    瀏覽量

    217127
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59534
  • RISC-V
    +關(guān)注

    關(guān)注

    44

    文章

    2147

    瀏覽量

    45738
  • RISC-V處理器
    +關(guān)注

    關(guān)注

    0

    文章

    79

    瀏覽量

    9964

原文標(biāo)題:RISC-V處理器驗(yàn)證:瑞士奶酪模型驗(yàn)證應(yīng)用

文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    驗(yàn)證RISC-V處理器的安全性

    。 本文討論了與硬件安全驗(yàn)證相關(guān)的一些挑戰(zhàn),并介紹了一種基于形式的方法來解決。實(shí)現(xiàn)流行的RISC-V指令集架構(gòu)(ISA)的設(shè)計(jì)示例展示了這種方法的強(qiáng)大功能。 安全驗(yàn)證概述 對(duì)處理器進(jìn)行
    的頭像 發(fā)表于 03-16 10:47 ?9432次閱讀
    <b class='flag-5'>驗(yàn)證</b><b class='flag-5'>RISC-V</b><b class='flag-5'>處理器</b>的安全性

    RISC-V是什么?如何去設(shè)計(jì)RISC-V處理器?

    RISC-V是什么?有哪些特點(diǎn)?如何去設(shè)計(jì)RISC-V處理器?
    發(fā)表于 06-18 09:24

    RISC-V是通用RISC處理器還是可定制的處理器?

    隨著這些年的發(fā)展,RISC-V的受重視程度與與日俱增。這主要因?yàn)樗敲赓M(fèi)的、靈活的,并且速度很快。這使RISC-V成為許多開發(fā)人員的安全便捷選擇。但是您會(huì)認(rèn)為RISC-V是通用RISC
    的頭像 發(fā)表于 11-17 16:11 ?3393次閱讀

    創(chuàng)新引領(lǐng)|芯華章聯(lián)手芯來科技提升RISC-V處理器設(shè)計(jì)驗(yàn)證

    芯來科技將正式采用芯華章自主研發(fā)的新一代智能驗(yàn)證系統(tǒng)穹景 (GalaxPSS)及數(shù)字仿真穹鼎 (GalaxSim)等系列EDA驗(yàn)證產(chǎn)品,加速新一代復(fù)雜RISC-V
    發(fā)表于 03-03 10:32 ?2031次閱讀

    定制RISC-V處理器簡(jiǎn)化設(shè)計(jì)驗(yàn)證

      Imperas 產(chǎn)品組合以及來自快速發(fā)展的 RISC-V 生態(tài)系統(tǒng)的其他工具,為您今天開始自己的開放式處理器設(shè)計(jì)提供了足夠的資源。
    的頭像 發(fā)表于 06-01 10:00 ?1495次閱讀
    定制<b class='flag-5'>RISC-V</b><b class='flag-5'>處理器</b>簡(jiǎn)化設(shè)計(jì)<b class='flag-5'>驗(yàn)證</b>

    Axiomise通過形式驗(yàn)證公理化RISC-V處理器

    盡管由于開源架構(gòu)設(shè)計(jì)新的微處理器在經(jīng)濟(jì)上是可行的,但測(cè)試和驗(yàn)證仍然是主要障礙。 隨著 RISC-V 等開源處理器架構(gòu)的出現(xiàn),芯片設(shè)計(jì)變得越來越大眾化,越來越多的組織敢于涉足
    發(fā)表于 07-29 10:02 ?591次閱讀
    Axiomise通過形式<b class='flag-5'>驗(yàn)證</b>公理化<b class='flag-5'>RISC-V</b><b class='flag-5'>處理器</b>

    處理器驗(yàn)證創(chuàng)建一個(gè)“瑞士奶酪模型”,以保證高效的驗(yàn)證品質(zhì)!

    在應(yīng)用于處理器驗(yàn)證瑞士奶酪模型中,其原理類似于航空業(yè):如果有一條直接穿過所有切片的路徑,那么飛機(jī)就有墜毀的風(fēng)險(xiǎn)。這就是為什么航空業(yè)對(duì)程序、
    的頭像 發(fā)表于 11-01 15:57 ?1178次閱讀

    關(guān)于RISC-V 處理器驗(yàn)證的問題

    處理器驗(yàn)證是一個(gè)全新的領(lǐng)域。我們知道 Arm 和 Intel 對(duì)處理器質(zhì)量的期望設(shè)置了很高的標(biāo)準(zhǔn)。在 RISC-V 中,我們必須嘗試并遵循這一點(diǎn)。
    發(fā)表于 03-22 15:19 ?490次閱讀

    如何利用形式化驗(yàn)證提高RISC-V處理器質(zhì)量?

    RISC-V是一個(gè)模塊化的指令集架構(gòu),可以為其開發(fā)一個(gè)架構(gòu)測(cè)試套件。它被用于基于仿真的驗(yàn)證,以驗(yàn)證一個(gè)處理器的實(shí)現(xiàn)。
    發(fā)表于 04-17 14:54 ?490次閱讀

    基于形式驗(yàn)證的高效RISC-V處理器驗(yàn)證方法

    轉(zhuǎn)型RISC-V,大家才發(fā)現(xiàn)處理器驗(yàn)證絕非易事。新標(biāo)準(zhǔn)由于其新穎和靈活性而帶來的新功能會(huì)在無意中產(chǎn)生規(guī)范和設(shè)計(jì)漏洞,因此處理器驗(yàn)證
    的頭像 發(fā)表于 06-01 09:07 ?511次閱讀
    基于形式<b class='flag-5'>驗(yàn)證</b>的高效<b class='flag-5'>RISC-V</b><b class='flag-5'>處理器</b><b class='flag-5'>驗(yàn)證</b>方法

    基于形式驗(yàn)證的高效RISC-V處理器驗(yàn)證方法

    隨著RISC-V處理器的快速發(fā)展,如何保證其正確性成為了一個(gè)重要的問題。傳統(tǒng)的測(cè)試方法只能覆蓋一部分錯(cuò)誤情況,而且無法完全保證處理器的正確性。因此,基于形式驗(yàn)證的方法成為了一個(gè)非常有前
    的頭像 發(fā)表于 06-02 10:35 ?1245次閱讀

    利用先進(jìn)形式驗(yàn)證工具來高效完成RISC-V處理器驗(yàn)證

    在本文中,我們將以西門子EDA處理器驗(yàn)證應(yīng)用程序?yàn)槔?,結(jié)合Codasip L31這款廣受歡迎的RISC-V處理器IP提供的特性,來介紹一種利用先進(jìn)的EDA工具,在實(shí)際設(shè)計(jì)工作中對(duì)
    的頭像 發(fā)表于 07-10 10:28 ?465次閱讀
    利用先進(jìn)形式<b class='flag-5'>驗(yàn)證</b>工具來高效完成<b class='flag-5'>RISC-V</b><b class='flag-5'>處理器</b><b class='flag-5'>驗(yàn)證</b>

    基于形式的高效 RISC-V 處理器驗(yàn)證方法

    RISC-V的開放性允許定制和擴(kuò)展基于 RISC-V 內(nèi)核的架構(gòu)和微架構(gòu),以滿足特定需求。這種對(duì)設(shè)計(jì)自由的渴望也正在將驗(yàn)證部分的職責(zé)轉(zhuǎn)移到不斷壯大的開發(fā)人員社群。然而,隨著越來越多的企業(yè)和開發(fā)人員轉(zhuǎn)型
    的頭像 發(fā)表于 07-10 09:42 ?566次閱讀
    基于形式的高效 <b class='flag-5'>RISC-V</b> <b class='flag-5'>處理器</b><b class='flag-5'>驗(yàn)證</b>方法

    思爾芯原型驗(yàn)證助力香山RISC-V處理器迭代加速

    2023年10月19日, 思爾芯(S2C) 宣布 北京開源芯片研究院(簡(jiǎn)稱“開芯院”) 在其歷代“香山” RISC-V 處理器開發(fā)中采用了思爾芯的 芯神瞳 VU19P 原型驗(yàn)證系統(tǒng)
    的頭像 發(fā)表于 10-24 16:28 ?563次閱讀

    思爾芯原型驗(yàn)證助力香山RISC-V處理器迭代加速

    2023年10月19日,思爾芯(S2C)宣布北京開源芯片研究院(簡(jiǎn)稱“開芯院”)在其歷代“香山”RISC-V處理器開發(fā)中采用了思爾芯的芯神瞳VU19P原型驗(yàn)證系統(tǒng),不僅加速了產(chǎn)品迭代,還助力多家企業(yè)
    的頭像 發(fā)表于 10-25 08:24 ?460次閱讀
    思爾芯原型<b class='flag-5'>驗(yàn)證</b>助力香山<b class='flag-5'>RISC-V</b><b class='flag-5'>處理器</b>迭代加速