當(dāng)前位置:首頁(yè) > 廠商動(dòng)態(tài) > Codasip
[導(dǎo)讀]我們?cè)谏弦黄夹g(shù)白皮書(shū)《基于形式驗(yàn)證的高效RISC-V處理器驗(yàn)證方法》中,以Codasip L31這款用于微控制器應(yīng)用的32位中端嵌入式RISC-V處理器內(nèi)核為例,介紹了一個(gè)基于形式驗(yàn)證的、易于調(diào)動(dòng)的RISC-V處理器驗(yàn)證程序。它與RISC-V ISA黃金模型和RISC-V合規(guī)性自動(dòng)生成的檢查一起,展示了如何有效地定位那些無(wú)法進(jìn)行仿真的漏洞。

我們?cè)谏弦黄夹g(shù)白皮書(shū)《基于形式驗(yàn)證的高效RISC-V處理器驗(yàn)證方法》中,以Codasip L31這款用于微控制器應(yīng)用的32位中端嵌入式RISC-V處理器內(nèi)核為例,介紹了一個(gè)基于形式驗(yàn)證的、易于調(diào)動(dòng)的RISC-V處理器驗(yàn)證程序。它與RISC-V ISA黃金模型和RISC-V合規(guī)性自動(dòng)生成的檢查一起,展示了如何有效地定位那些無(wú)法進(jìn)行仿真的漏洞。

RISC-V的開(kāi)放性允許定制和擴(kuò)展基于RISC-V內(nèi)核的架構(gòu)和微架構(gòu),以滿足特定需求。這種對(duì)設(shè)計(jì)自由的渴望也正在將驗(yàn)證部分的職責(zé)轉(zhuǎn)移到不斷壯大的開(kāi)發(fā)人員社群。然而,隨著越來(lái)越多的企業(yè)和開(kāi)發(fā)人員轉(zhuǎn)型RISC-V,大家才發(fā)現(xiàn)處理器驗(yàn)證絕非易事。新標(biāo)準(zhǔn)由于其新穎和靈活性而帶來(lái)的新功能會(huì)在無(wú)意中產(chǎn)生規(guī)范和設(shè)計(jì)漏洞,因此處理器驗(yàn)證是處理器開(kāi)發(fā)過(guò)程中一項(xiàng)非常重要的環(huán)節(jié)。

在復(fù)雜性一般的RISC-V處理器內(nèi)核的開(kāi)發(fā)過(guò)程中,會(huì)發(fā)現(xiàn)數(shù)百甚至數(shù)千個(gè)漏洞。當(dāng)引入更多高級(jí)特性的時(shí)候,也會(huì)引入復(fù)雜程度各不相同的新漏洞。而某些類型的漏洞過(guò)于復(fù)雜,導(dǎo)致在仿真環(huán)節(jié)都無(wú)法找到它們。因此必須通過(guò)添加形式驗(yàn)證來(lái)賦能RTL驗(yàn)證方法。從極端漏洞到隱匿式漏洞,形式驗(yàn)證能夠讓您在合理的處理時(shí)間內(nèi)詳盡地探索所有狀態(tài)。

在本文中,我們將以西門子EDA處理器驗(yàn)證應(yīng)用程序?yàn)槔Y(jié)合Codasip L31這款廣受歡迎的RISC-V處理器IP提供的特性,來(lái)介紹一種利用先進(jìn)的EDA工具,在實(shí)際設(shè)計(jì)工作中對(duì)處理器進(jìn)行驗(yàn)證的具體方法。這種驗(yàn)證方法通過(guò)為每條指令提供一組專用的斷言模板來(lái)實(shí)現(xiàn)高度自動(dòng)化,不再需要手動(dòng)設(shè)計(jì),從而提高了形式驗(yàn)證團(tuán)隊(duì)的工作效率。

如何使用西門子EDA處理器驗(yàn)證應(yīng)用程序

在我們使用該工具之前,需要為Codasip L31 RISC-V內(nèi)核進(jìn)行形式驗(yàn)證設(shè)置。此設(shè)置類似于使用帶有抽象、約束等基于斷言的驗(yàn)證(ABV)方法來(lái)形式驗(yàn)證標(biāo)準(zhǔn)斷言的設(shè)置。

該工具允許驗(yàn)證特定類別的指令,并啟用或禁用某些資源檢查。有了這個(gè)工具,我們的驗(yàn)證可以從一個(gè)簡(jiǎn)化的空間開(kāi)始,這包括:

?只有最簡(jiǎn)單的指令,例如只有整數(shù)運(yùn)算和邏輯指令。

?只有最簡(jiǎn)單(但最重要)的檢查。例如通用寄存器的更新。稍后可以添加的其他檢查指的是系統(tǒng)寄存器(CSR)或程序計(jì)數(shù)器(PC)的更新以及內(nèi)存訪問(wèn)。

?只有主功能模式:沒(méi)有中斷、中止、異?;蛘{(diào)試訪問(wèn)。

這三個(gè)正交約束可以根據(jù)微架構(gòu)特征的關(guān)鍵程度逐一放寬。經(jīng)典的形式驗(yàn)證技術(shù)可用于幫助獲得檢查器斷言的結(jié)果:抽象、設(shè)計(jì)縮減、案例拆分、不變量生成、半形式漏洞搜尋等。

結(jié)果

這種基于形式的方法使我們能夠找到極端情況,并深入了解改進(jìn)我們的仿真和測(cè)試平臺(tái)。在其他基于仿真的驗(yàn)證流程運(yùn)行而未發(fā)現(xiàn)新漏洞之后,此驗(yàn)證工作在項(xiàng)目快結(jié)束時(shí)完成,這使我們能夠找到真正的和重要的漏洞。

我們可以特別關(guān)注其中的三個(gè)漏洞,它們從用于L31的西門子EDA處理器驗(yàn)證應(yīng)用程序中找到。以下是發(fā)現(xiàn)和彌補(bǔ)這三個(gè)漏洞的具體方法:

1. 分支預(yù)測(cè)器損壞

有了這個(gè)漏洞,返回到先前持有跳轉(zhuǎn)/分支指令的PC地址會(huì)導(dǎo)致分支預(yù)測(cè)器錯(cuò)誤地預(yù)測(cè)跳轉(zhuǎn)到另一個(gè)地址。當(dāng)滿足以下條件時(shí),會(huì)發(fā)現(xiàn)這種極端情況:

自修改代碼

當(dāng)添加未定義的指令(新指令異常)時(shí),也會(huì)出現(xiàn)此漏洞極其罕見(jiàn)的版本:

該漏洞是通過(guò)檢查PC值的斷言發(fā)現(xiàn)的,直接后果是錯(cuò)誤地執(zhí)行了一個(gè)分支指令,導(dǎo)致代碼執(zhí)行錯(cuò)誤。通過(guò)正確清除分支預(yù)測(cè)和流水線的緩沖數(shù)據(jù)來(lái)修復(fù)此漏洞。

使用西門子EDA處理器驗(yàn)證應(yīng)用程序查找此漏洞需要8個(gè)周期和15分鐘的運(yùn)行時(shí)間。在仿真中重現(xiàn)該漏洞需要一個(gè)支持自修改代碼的隨機(jī)生成器,該代碼可正好返回相同的地址并將該地址從分支修改為另一種類型的指令。換句話說(shuō),隨機(jī)生成器不可能做到這一點(diǎn)。只有知道漏洞詳細(xì)信息的定向序列可以做到。

2. 同一條指令的多次執(zhí)行

出現(xiàn)這個(gè)漏洞,NPC(下一個(gè) PC)單元停頓就會(huì)出現(xiàn),這會(huì)導(dǎo)致多次獲取相同的地址。每條指令執(zhí)行并退出。

當(dāng)滿足以下條件時(shí),會(huì)出現(xiàn)這種極端情況:

?內(nèi)核配置有TCM。

?在提取總線上可以看到特定的延遲。

?在流水線內(nèi)可以看到特定的停頓。

該漏洞會(huì)直接在流水線的其余部分造成未被正確處理的停頓,導(dǎo)致同一指令的多次執(zhí)行。可以通過(guò)正確處理其余流水線中的停頓來(lái)修復(fù)此漏洞。

使用西門子EDA處理器驗(yàn)證應(yīng)用程序查找此漏洞需要5個(gè)周期和10分鐘的運(yùn)行時(shí)間。在仿真中再現(xiàn)它需要隨機(jī)延遲和停頓的隨機(jī)模式,但也需要相當(dāng)多的“運(yùn)氣”來(lái)再現(xiàn)這個(gè)特定序列。

3. 合法的 FENCE.I 指令被認(rèn)為是非法的

出現(xiàn)這個(gè)漏洞,內(nèi)存屏障會(huì)由CSR單元處理。如果與CSR操作的CSR地址位元對(duì)應(yīng)的指令位元(位 [31:20])與某些CSR寄存器(例如調(diào)試、計(jì)數(shù)器)匹配,則指令可能會(huì)被錯(cuò)誤地標(biāo)記為非法。

當(dāng)滿足以下條件時(shí),會(huì)發(fā)現(xiàn)這種極端情況:

imm[11:0]/rs1/rd 中有隨機(jī)位元。

這些位元與其他一些非法指令相匹配。

該漏洞的直接后果是錯(cuò)誤地引發(fā)了非法指令異常。通過(guò)正確解碼流水線每個(gè)部分的完整指令可修復(fù)此漏洞。

使用西門子EDA處理器驗(yàn)證應(yīng)用程序查找此漏洞僅用了8個(gè)周期和5分鐘的運(yùn)行時(shí)間。因?yàn)榫幾g器只會(huì)創(chuàng)建最簡(jiǎn)單的二進(jìn)制編碼實(shí)現(xiàn),所以很難在仿真中重現(xiàn)該漏洞。它需要一個(gè)特殊的編譯器來(lái)創(chuàng)建合法編碼的變體,或者使用各種編碼進(jìn)行特殊的定向測(cè)試。

從中發(fā)現(xiàn)的優(yōu)勢(shì)/結(jié)論

應(yīng)用這種方法可以提高驗(yàn)證團(tuán)隊(duì)的工作效率。在項(xiàng)目的關(guān)鍵階段提高效率。雖然在開(kāi)始時(shí)構(gòu)建正確的設(shè)置需要付出努力,但隨著我們添加新的指令類別和新的檢查器,進(jìn)度就會(huì)加快。這個(gè)“最佳點(diǎn)”是我們發(fā)現(xiàn)大多數(shù)問(wèn)題的地方,隨著放寬約束以允許該工具探索更深?yuàn)W的操作模式,速度就開(kāi)始放緩。

圖 1 驗(yàn)證L31 RISC-V內(nèi)核的最佳效率的最佳點(diǎn)(來(lái)源:Codasip)

總的來(lái)說(shuō),因?yàn)槭褂梦鏖T子EDA處理器驗(yàn)證應(yīng)用程序驗(yàn)證整個(gè)CPU所需的總體工作量遠(yuǎn)低于手動(dòng)達(dá)到類似驗(yàn)證質(zhì)量所需的工作量,所以使用該工具是相當(dāng)高效的。在總共30個(gè)漏洞中,有15個(gè)是通過(guò)形式驗(yàn)證發(fā)現(xiàn)的。

表1 仿真 vs形式驗(yàn)證

當(dāng)結(jié)合在一起到達(dá)高質(zhì)量水平時(shí),仿真和形式驗(yàn)證是非常強(qiáng)大的,并使我們能夠促進(jìn)改進(jìn)驗(yàn)證的良性循環(huán)。

圖 2 通過(guò)持續(xù)改進(jìn)達(dá)到一流的品質(zhì)(來(lái)源:Codasip)

該解決方案在CodasipL31這種3級(jí)流水線微控制器上的實(shí)施被證明是可行的,現(xiàn)在已部署到Codasip的下一代RISC-V內(nèi)核中,包括嵌入式和應(yīng)用內(nèi)核。借助在L31上使用西門子EDA處理器驗(yàn)證應(yīng)用程序積累的知識(shí),即使應(yīng)用內(nèi)核更復(fù)雜,也可以減少建立穩(wěn)健環(huán)境所需的工作量。而Codasip的下一步計(jì)劃包括進(jìn)一步研究該工具如何應(yīng)用于超標(biāo)量和亂序內(nèi)核,以及支持新的 RISC-V 擴(kuò)展。

本文摘錄于《基于形式的高效 RISC-V 處理器驗(yàn)證方法 – 形式化驗(yàn)證》白皮書(shū),出版人為總部位于歐洲的全球領(lǐng)先RISC-V供應(yīng)商和處理器解決方案領(lǐng)導(dǎo)者,該公司的處理器IP目前已部署在數(shù)十億顆芯片中。Codasip通過(guò)開(kāi)放的RISC-V ISA、Codasip Studio處理器設(shè)計(jì)自動(dòng)化工具與高品質(zhì)的處理器IP相結(jié)合,為客戶提供定制計(jì)算。這種創(chuàng)新方法能夠輕松實(shí)現(xiàn)定制和差異化設(shè)計(jì),從而開(kāi)發(fā)出高性能的、改變游戲規(guī)則的產(chǎn)品,實(shí)現(xiàn)真正意義上的轉(zhuǎn)型。如希望得到該白皮書(shū)的完整版本,可瀏覽Codasip中文網(wǎng)站或者關(guān)注該公司微信公眾號(hào)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉