精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從Cache驗證參考模型對比來談復雜度權衡

路科驗證 ? 來源:路科驗證 ? 2023-04-28 09:25 ? 次閱讀

一直以來對MTK北京團隊做的關于Cache一致性驗證的方案有深刻印象,2019年當時的一篇論文“An Enhanced Stimulus and Checking Mechanism on Cache Verification”(接下來該論文簡稱PP-MESH)采用的是MESH預測的方法,對cache的數據做好準確預測和檢查。

2022年的時候我們V3課程中的聯發科學員,還跟著我們一同回顧了這篇論文中涉及到的一些技術,給當時正在做cache一致性驗證的其他同學提供了思路。我們以往做的各個方向的技術分享和論文回顧,都有保存在V3課程視頻中。

這次我們要談的論文DVCon 2022 “CAMEL: A Flexible Cache Model for Cache Verification”(接下來該論文簡稱PP-CAMEL),其背景正是基于PP-MESH做的更新,我們也可以借此以了解對于一個復雜設計而言,如何考慮規劃其參考模型,在實際項目中有哪些需要權衡的地方。

總體而言,在驗證L1 cache system (L1SYS)的過程中,L1SYS的機構被拆分為多個模塊,包括shadow command buffer, store buffer, sram, line filling buffer, evinctionbuffer, prefetch buffer,而根據不同thread訪問數據時的cache hit/miss的情況和數據經過L1SYS各個模塊的流向,又將L1SYS的不同數據讀寫行為定義為了各種情況(例如in-order, out-of-order, with-losses, any-in-order, either-in-order, MISO, with-redundancy等)。這種數據從點到點的流向,就構成了DVCon 2019的這篇論文中數據檢查思想的框架,即根據每一個data stream的不同特征,分別對input stream, output stream做數據流向的標注。

8ef440a2-e515-11ed-ab56-dac502259ad0.png8efb3e5c-e515-11ed-ab56-dac502259ad0.png

由于這種精細規劃和預測的方式,MESH檢查可以做到周期級的準確(cycle-accurate),從下面這個圖也可以看到,L1SYS模型中的每一部分(STB/EB/LFB/PB/SRAM等)都需要監測L1SYS設計外部和內部數據,從PP-CAMEL的回顧來看,MESH方案需要連接5個VIP monitor,而且從VIP monitor監測到的數據需要根據需要組合為stream,再按照MESH表格對這些stream進行獨立的處理和檢查。

PP-CAMEL對以前的這部分工作評價是,盡管可以做到cycle-accurate的細致檢查,但帶來的一個煩惱是由于MESH方案需要與設計行為深度耦合,而且對驗證人員提出較高的維護要求,如果設計發生變化,那么MESH方案作為一個整體都將需要花費較大人力去更新MESH驗證環境。

8f00c264-e515-11ed-ab56-dac502259ad0.png8f0ec382-e515-11ed-ab56-dac502259ad0.png

上面來自PP-CAMEL的評價便于理解,這就像如果我們把設計的模型做成一個big synthesized model,那么設計的每一處更新都會使得讓我們去維護這個大模型,而大模型越來越大、復雜、乃至趨于臃腫的情況下,設計可能打補丁式的修改,也可能會讓參考模型去做類似的補丁式修改。

理想情況下,如果維護這個模型的人是同一個人(大公司里這種情況較多)那么還好一些,但是如果一旦人員發生變動,模型當時設定的好壞、代碼結構是否合理、模型是否方便維護這些問題就隨之而來了。 從PP-CAMEL最后的代碼對比來看,也能證實這個問題,CAMEL模型的代碼量大概只有MESH模型的1/3。

但這并不是簡單說明,CAMEL既輕量化,又能完成MESH模型可以做的cycle-accurate的細致檢查。熊掌與魚難以兼得,CAMEL模型是在將功能檢查做了分層、分類以后,才將MESH模型原來可以一股腦完成的事情解耦合成CAMEL模型和其它模型,并且CAMEL模型能做的事情,也是分為了多種任務的。

一句話,那就是CAMEL模型做了檢查任務的規劃,沒有一來就試圖去構建一個大而全的模型,而是一開始就打算將驗證分成了多個步驟,逐一將從基礎功能到高級功能再到邊界情況的檢查分為了多個任務去實現的。

8f179944-e515-11ed-ab56-dac502259ad0.png

那么,PP-CAMEL為什么不采用PP-MESH中的大模型呢?難道是不需要做準確預測了嗎?其實從論文一開始的背景闡述來看,即他們開始在做多核多線程的架構(RISC-V)。這意味他們盡管可以參考原來PP-MESH中的L1SYS設計,但同時要適配多核ACE協議和snoop memory 請求(對于L1SYS而言屬于新的外部請求/響應)。

我能猜想到的是,當時也應該是考慮過MESH方案復用的,但這意味著需要理解原有的方案,而且要修改MESH中的代碼。如果是同一位工程師修改維護他原來的方案,那么思路大概還能跟得上拍子,但如果是不同的工程師打算要做這件事情,那么他還會考慮另外一種可能,就是在原有MESH思路的基礎上,做一些檢查的優化。

值得注意的是,PP-CAMEL論文中提到了PP-MESH原本在數據激勵方面的layer層次規劃清晰、各個方法接口也很豐富,這些有關激勵部分思想和接口仍然可以復用下來。

8f1fa1ca-e515-11ed-ab56-dac502259ad0.png8f2ceea2-e515-11ed-ab56-dac502259ad0.png

所以可能更符合當時實際情況的是,已經經歷過PP-MESH“高精度”模型帶來驗證環境與設計高度綁定以后的晃動帶來的痛苦之后,PP-CAMEL決定采取一個“循序漸進”的方案,即它的初衷是構建一個更為快速能夠對新的L1SYS設計進行檢查的驗證環境(如果能夠復用以前的一些激勵、測試序列那就更好)。

所以它一開始并沒有求全,而是把檢查的重心放在數據完整性上面,即data correctness check。這一點跟我們常規的數據流檢查類似,比如DMA數據搬遷或者數據打包解包操作等功能檢查,都是先完成數據完整性檢查,再去就設計的行為、時序做更為細致的檢查。

8f37bd28-e515-11ed-ab56-dac502259ad0.png8f3edbe4-e515-11ed-ab56-dac502259ad0.png

它的模型中的數據存放是較為模糊的,因為它不會準確預測數據,而是會存放所有可能從目標地址讀出去的數據(stores all possible values of the same address),這種方式仍然可以在設計早期階段幫助驗證做數據(模糊)檢查。它的優點在于更快部署、不依賴于具體的設計、時序,與設計可以解耦。

如果檢查方案里有配置按鈕(configuration knob),那么這種檢查方式可以給起個名字(rough level check)。 接下來PP-CAMEL也提到了,如果要進一步做到準確的數據預測檢查,那么就需要獲得額外的信息,比如對cache hit/miss check和rationality read/write command to external memory(對外部存儲讀寫請求的合理性檢查,關系到cache hit/miss的預測和模型準確度)。

那么就需要添加諸如location/SCB data/SRAM data這樣的屬性。而這些屬性又當來自于各個VIP monitor。當從monitor獲得的信息越多,那么CAMEL模型也將越復雜,而用于做data correctness check, hit/miss check, rationality check of request to external memory等也將越準確。

8f4a7d0a-e515-11ed-ab56-dac502259ad0.png

這個道理我們似乎都懂,但是PP-CAMEL恰恰給出了與原有PP-MESH不同的驗證環境實現步驟,下面這段話我認為是整篇論文中要著重表達的驗證工程思想。我們能夠理解,一個simple testbench不可能做到precise check,但我們能不能理解如果要設計一個complex testbench,是否有能力讓它做到simple check,或者做到different precision of check?對于MESH模型,PP-CAMEL給出的回顧似乎在說維護這樣一個大模型很耗神,尤其在PP-CAMEL背景中遇到一個新的L1SYS設計的時候,需要修改的內容恐怕很多,尤其是面對8000+行的MESH模型。

8f518dca-e515-11ed-ab56-dac502259ad0.png

將模型先從簡單做起,有的時候也是一種妥協。這種妥協可能是來自于項目的壓力,可能是來自于對復雜設計邏輯和時序,也可能是為了將來以后便于維護。PP-CAMEL的模型核心是圍繞著地址和數據的,它本身不復雜,而在此基礎之上添加了一些必要的屬性,即能夠創造出條件做不同精確度的檢查。最終,檢查精度還會落回到模型復雜性上。

只不過,從trade-off來看,PP-CAMEL提出的思路,使得在驗證L1SYS過程中,得以找到一條從簡單到復雜的路,使得可以對L1SYS的各個功能逐一做從基礎到復雜的檢查。另外,在PP-CAMEL中可以看到,與PP-MESH的驗證思路聯系緊密,盡管模型的實現方式發生了較大變化,但激勵層次的組織和復用、以及原有的各個API的復用仍然帶來了幫助。

這種有歷史銜接的論文前后研究起來也很有收獲,而這兩篇論文也可以啟發我們在實現參考模型時,究竟是按照大模型來實現,還是按照分層(由易到難)模型來實現,需要考慮諸多工程因素。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • sram
    +關注

    關注

    6

    文章

    763

    瀏覽量

    114633
  • Cache
    +關注

    關注

    0

    文章

    129

    瀏覽量

    28300
  • mesh技術
    +關注

    關注

    0

    文章

    14

    瀏覽量

    8751
  • miso
    +關注

    關注

    0

    文章

    7

    瀏覽量

    5409

原文標題:DVCon文賞-2023w18 從Cache驗證參考模型對比來談復雜度權衡

文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    業務復雜度治理方法論--十年系統設計經驗總結

    一、復雜度綜述 1、什么是復雜度 軟件設計的核心在于降低復雜性。 --《軟件設計的哲學》 業界對于復雜度并沒有統一的定義, 斯坦福教授John Ousterhout
    的頭像 發表于 09-05 14:11 ?941次閱讀
    業務<b class='flag-5'>復雜度</b>治理方法論--十年系統設計經驗總結

    PCB與PCBA工藝復雜度的量化評估與應用初探!

    的問題。另一個方面,在工程能 力方面,做了一些針對性的工作,來 達到高質量和低成本的這樣一個目標。 高復雜PCB的特點 我們的具體情況看,高復雜度 PCB有以下特點:大尺寸、高層數( 18層以上)、1+10+1
    發表于 06-14 11:15

    基于紋理復雜度的快速幀內預測算法

    為降低幀內預測的運算復雜度,根據不同的模式在宏塊中出現概率的大小不同,在幀內4×4的亮度預測模式中,選取出現概率最大的5種預測模式,作為優先選擇的預測模式。基于像素塊的紋理特性,選擇不具有
    發表于 05-06 09:01

    JEM軟件復雜度的增加情況

    這篇文檔展示了幾個機構關于JEM軟件復雜度的增加情況的看法,特別提出來創立一個新的Ad-hoc組,研究降低軟件一般性復雜度的可能方法。
    發表于 07-19 08:25

    時間復雜度是指什么

    原理->微機原理->軟件工程,編譯原理,數據庫數據結構1.時間復雜度時間復雜度是指執行算法所需要的計算工作量,因為整個算法的執行時間與基本操作重復執行的...
    發表于 07-22 10:01

    各種排序算法的時間空間復雜度、穩定性

    各種排序算法的時間空間復雜度、穩定性一、排序算法分類:二、排序算法比較:注:1、歸并排序可以通過手搖算法將空間復雜度降到O(1),但是時間復雜度會提高。2、 基數排序時間復雜度為O(N
    發表于 12-21 07:48

    圖像復雜度對信息隱藏性能影響分析

    針對信息隱藏中載體圖像的差異性,提出一種圖像復雜度評價方法,綜合考慮圖像的壓縮特性以及圖像紋理能量作為圖像復雜度指標,并基于閾值劃分準則對栽體圖像進行復雜度分類,以幾種經典的基于直方圖的幾種無損隱藏
    發表于 11-14 09:57 ?5次下載

    一種基于貝葉斯網絡的隨機測試方法在Cache一致性驗證中的設計與實現

    隨著集成電路設計復雜度指數級增長,功能驗證已經越來越成為大規模芯片設計的瓶頸,而在多核處理器中,Cache -致性協議十分復雜驗證難度大。
    發表于 11-17 17:24 ?2次下載
    一種基于貝葉斯網絡的隨機測試方法在<b class='flag-5'>Cache</b>一致性<b class='flag-5'>驗證</b>中的設計與實現

    深度剖析時間復雜度

    相信每一位錄友都接觸過時間復雜度,但又對時間復雜度的認識處于一種朦朧的狀態,所以是時候對時間復雜度來一個深度的剖析了。
    的頭像 發表于 03-18 10:18 ?1863次閱讀

    如何求遞歸算法的時間復雜度

    相信很多同學對遞歸算法的時間復雜度都很模糊,那么這篇Carl來給大家通透的講一講。
    的頭像 發表于 07-13 11:33 ?1584次閱讀

    算法之空間復雜度

    算法之空間復雜度:衡量一個算法運行需要開辟的額外空間
    的頭像 發表于 08-31 10:29 ?1581次閱讀

    常見機器學習算法的計算復雜度

    時間復雜度不是測量一個算法或一段代碼在某個機器或者條件下運行所花費的時間。時間復雜度一般指時間復雜性,時間復雜度是一個函數,它定性描述該算法的運行時間,允許我們在不運行它們的情況下比較
    發表于 10-02 12:45 ?800次閱讀

    算法時空復雜度分析實用指南1

    我以前的文章主要都是講解算法的原理和解題的思維,對時間復雜度和空間復雜度的分析經常一筆帶過,主要是基于以下兩個原因:
    的頭像 發表于 04-12 14:37 ?495次閱讀
    算法時空<b class='flag-5'>復雜度</b>分析實用指南1

    算法時空復雜度分析實用指南2

    類似的,想想之前說的數據結構擴容的場景,也許`N`次操作中的某一次操作恰好觸發了擴容,導致時間復雜度提高,但總的時間復雜度依然保持在`O(N)`,所以均攤到每一次操作上,其平均時間復雜度依然是`O(1)`。
    的頭像 發表于 04-12 14:38 ?516次閱讀
    算法時空<b class='flag-5'>復雜度</b>分析實用指南2

    如何計算時間復雜度

    1 算法與時間復雜度 算法(Algorithm)是求解一個問題需要遵循的,被清楚指定的簡單指令的集合。 算法一旦確定,那么下一步就要確定該算法將需要多少時間和空間等資源,如果一個算法需要一兩年的時間
    的頭像 發表于 10-13 11:19 ?2808次閱讀
    如何計算時間<b class='flag-5'>復雜度</b>