天天看點

SoC晶片系統級驗證的高效性能評估

作者:通史之窗

前言

随着內建電路的不斷發展,SoC的規模不斷提升,最先進的SoC晶片的半導體數量己經接近百億級别。SoC的內建度和複雜度不斷提升,導緻評估一款SoC晶片的性能面臨着多重挑戰。

總線架構性能要求高,評估難度高,耗時長。目前高性能的系統架構都較為成熟,基于IP核互連的設計方法,使得SoC晶片主從裝置數量多,系統複雜程度高,進而導緻架構總線性能評估難度愈發的高。

總線架構性能評佔方案不完整,評估環境搭建慢,評估時間節點滞後。功能驗證在RTL級便可以完成,而且目标明确,判斷設計是否與功能描述文檔一緻即可,而對于性能評估目前還沒有統一的标準來衡量。

基于ARM架構的SoC晶片

SoC是一個将處理器和其它電子系統內建到單一晶片的內建電路。SoC晶片最基本的組成有內建處理器、存儲器、外設、IP核以及互連總線結構。不同類型SoC采用的基本架構也不同,目前市面上應用廣泛的晶片架構有4類,分别是X86、ARM、RISC-V和MIPS。

基于ARM架構的SoC晶片,設計者需要選擇合适的核心、存儲控制器、片上存儲器、外設、總線互連和其它必要邏輯,才能設計出完整的系統。同時,一個完整的系統需要有兩部分主要的功能,一個是資料的處理,另一個是資料的通信。

在設計越來越複雜的情況下,以IP核互連的設計方法學也逐漸成為主流,ARM公司為了確定不同設計之間的相容性,定義了架構标準規範。架構規範帶來便利的同時,又使得基于ARM架構的SoC架構設計趨向于同質化,而主要的差異化設計就集中于總線互連結構的選擇與設計。

SoC晶片系統級驗證的高效性能評估

拓撲結構是總線互連最基本的特征,決定了該總線互連的實際運用場景。所謂拓撲結構,即實作各個子系統子產品之間的高速互連與協同工作的一種總線結構。目前主要的拓撲結構有星型(Star)、交叉型(Crossbar)、總線型(Bus)、環型(Ring)和網格型(Mesh)等。

總線型(Bus)拓撲結構,如圖所示所有的IP核都連在同一個總線上面,當有多個主從裝置同時通路總線的時候,将會有仲裁器根據優先級确定總線的使用權,當使用完成之後便會釋放總線。

星型(Star)拓撲結構,如圖所示有一個主要處理器放在中心,其他IP核分别與主要處理器連接配接,這種結構簡單高效,在晶片不複雜的情況下優勢明顯,然而當系統中IP核數量較多時。

SoC晶片系統級驗證的高效性能評估
SoC晶片系統級驗證的高效性能評估
SoC晶片系統級驗證的高效性能評估

環型(Ring)拓撲結構,如圖所示各個節點組成一個環狀,事物在環狀傳遞,并且隻能一個節點依次傳遞下去。為了有效的減少節點之間的延遲,又出現了雙環的結構,雙環可以根據與目标節點的距離自動選擇傳遞的方向(順時或逆時),減少傳遞的距離進而降低延遲。

交叉型(Crossbar)拓撲結構如圖所示,各子系統之間互相連接配接,可以實作多對主從裝置之間的資料通信,交叉型拓撲結構所支援的主從裝置數量是受到限制的,但是通信效率是最高的,一般情況下主裝置發起的讀寫請求可以在2個周期就到達從裝置。

網格型(Mesh)拓撲結構,如圖所示各個節點排列成網格狀_,與同列或同行的節點連接配接,每個節點都是一個小型的路由,他們之間傳輸異步的包,與交叉型相對比來看,不用維護每個路由之間的連線,進而支援更多的主從裝置,同時有效的提高頻率。

SoC晶片系統級驗證的高效性能評估
SoC晶片系統級驗證的高效性能評估

性能評估環境元件分析與實作

本章主要分析基于此架構類型的SoC晶片性能評佔的需求以及評估的難點,計對需求明确測試用例,針對難點提山具體的解決方案,并制定詳細的設計名額。

分析關鍵場景下影響性能的主要因素,以及針對影響因素的對應調制手段,對測試用例進行合理的制定,耍求方案能夠模拟出不R的測試場景來覆寫影響因素和調制手段。

在整個SoC總線架構中,影響總線架構性能的主要有三個節點,如圖所示分别為主機本身的配置,路徑上的ii:連結構,以及DMC的設計。本文主要分析串行滿負載、并行滿負載、主機不同配置以及不同調制手段四種關鍵場景。

SoC晶片系統級驗證的高效性能評估

在分析影響性能的主要因素後,針對測試用例中的性能調制手段,需要進一步研宄其特點和配置方式。實際的晶片中并不是将各個主機的性能固定,而是通過有效的性能調制手段,使得架構的更加靈活,增加容錯率,是以在關鍵場景下,調制手段是否有效也是評估的重點。

QoS-400提供5種具體的調制手段,分别是QoS調節器、事務速率調節器、未完成事物數量調節器、資料回報調節器、位址回報調節器。NIC-400的所有調制方式都需要通過寄存器進行配置,是以在設計評估環境的時候需要充分考慮寄存器的靈活配置。

FlexNoC的異步傳輸特性剛好可以實作這個功能。因為有突發分割的能力,FlexNoC也就能更好的支援interleave功能,即将子系統的事務交織的分到不同的存儲庫(BANK)中進而提高性能,根據不同的interleave模 式可以控制交織的規則。

SoC晶片系統級驗證的高效性能評估

我們最終的目的是收集性能資料,對架構性能進行評估,是以在環境裡面必不可少的是性能資料的監測設計,性能資料的準确性決定着性能評估的可靠性。

對于吞吐量是在記憶體拷貝過程方法中,通過總的資料量與時間計算平均吞吐量,在資料量足夠大的情況下,資料的精确度是可以得到保證的。

對于延遲,則設計了兩套監測器,一套是前文提到的直接在總線驅動元件内通過總線協定進行相關的計數,得到一次完整事物傳輸的延遲時間,另一套則是從主機總線接口拉出信号接到執行個體化的延遲監測器,此延遲監測器會通過相關協定計算出最大指令傳輸延遲、平均指令傳輸延遲、最大資料傳輸延遲、平均資料傳輸延遲。

SoC晶片系統級驗證的高效性能評估

最後DDR效率對性能評估也有一定的參考意義,為了增加性能評估的可靠性,通過對DMC的總線接口進行有效周期數統計,将DDR效率監測器也內建到性能評估的環境中。

延遲時間(Latency)指的是事物通信所消耗的總時間。延遲時間主要由三部分決定,主機處理事物的時間,事物通信的總線路徑延遲,以及從機的響應時間。細分為在傳輸過程中經過的路徑延遲、仲裁的延遲、互連結構中的延遲以及通路記憶體的固有延遲等。實際上因為緩存的存在,影響延遲的主要因素是總線路徑延遲和從機的響應時間。

讀程序開始後,會根據實際的IP核總線接口對部分資料進行限制并随機化,由于各個IP核支援的id位寬不一緻,實際我們的總線驅動器中有對id的檢查,是以限制的主要是id的位寬。位址、突發大小、突發長度由程序方法端口傳遞進來。

此函數方法預設是增量突發,其它的資料随機生成,打包所有資料之後,通過方法sendAxiXcn(chan,axixcn ) 将打包的資料存到到對應的通道中,後面的操作便是在信号層和底層的方法中完成,被打包的資料會被驅動到對應子產品的接口上,至上而下的模拟出IP核發出對應的總線請求。而所謂sendAxiXcn方法則是通過階層化調用方法axiMstXct.inRdChan.put〇将資料放入通道,等待處理。

SoC晶片系統級驗證的高效性能評估

分層次內建環境設計

SoC中大帶寬的資料傳輸主要是主機和DDR之間資料的交瓦,主從機之上下傳遞的關系,是以一種至上而下的方式占發送激勵圮比較合理的,實作資料至上而下的傳輸。

控制在應用層的進階事務内部啟動,驅動到低級資料的結構或指針,最終下移到DUT。與此同時,如果DUT有資料需要傳回,就變成了自下而上的事物處理,環境層次類似。

是以本文提出了一種高度內建的分層次環境結構,通過一組頂層的應用層産生總線資料,發送到基本的程序層,在程序層通過标準的讀寫驅動方法,将總線資料驅動到信号層上,信号層與DUT相連接配接,實作資料激勵的産生與收發。

SoC晶片系統級驗證的高效性能評估

如圖所示主要分為三個層次,分别是信号層,程序層和應用層。信号層主要的作用是和DUT進行直接互動,連接配接DUT的信号,處理底層信号相關的操作。

程序層不處理接口的信号,主要實作一些固定的程序,比如讀寫測試、記憶體拷貝等。應用層則是整個環境的調動,利用前面的元件做一件完整的事情,例如控制并行、串行測試場景、配置基本元件等。

為了實作環境的可移植,幾乎所有的環境元件都被開發為通用性強的庫類,在搭建新的環境時,隻需要進行類的執行個體化便可以使用。同時為了實作可配置的設計需求,本文對通用庫類的成員變量都設計了必要的配置接口。

SoC晶片系統級驗證的高效性能評估

總結:

主要内容包括簡單分析基于ARM核的SoC晶片架構特點,并針對差異化的互連結構展開分析,确定高性能互連結構,同時分析了解高性能總線的設計思路,明确使用AXI總線協定。

緊接着分析關鍵場景下影響性能的主要因素以及相應的調制手段,明确性能評估的測試用例需求和本身的技術難點,并針對需求和難點提出具體的解決方案。最後根據方案開發評估環境基本元件,并在實際的SoC晶片中搭建評估環境,檢驗評估方案的有效性和高效性。

針對激勵産生難、評估效率低和關鍵場景配置難等問題,分析對比并提出使用分層次的環境結構,可複用、可配置的環境元件,多個實時的性能監測元件,VIP模型代替真實主機,以及真實的系統級動态驗證環境的方案。

SoC晶片系統級驗證的高效性能評估

繼續閱讀