• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于SoC-FPGA 的RISC-V 處理器軟硬件系統(tǒng)級平臺

      2023-06-07 03:40:46常軼松陳欲曉陳明宇包云崗
      計算機研究與發(fā)展 2023年6期
      關(guān)鍵詞:外設(shè)硬核原型

      齊 樂 常軼松,2 陳欲曉,2 張 旭,2 陳明宇,2 包云崗,2 張 科,2

      1 (處理器芯片全國重點實驗室(中國科學院計算技術(shù)研究所)北京 100190)

      2 (中國科學院大學計算機科學與技術(shù)學院 北京 100049)

      敏捷開發(fā)最初是指以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā).而近年來隨著當今處理器核心設(shè)計需求的多樣性與復雜性不斷增加,一些前沿領(lǐng)域的芯片設(shè)計團隊也開始嘗試借鑒敏捷開發(fā)的思想[1-3].處理器芯片設(shè)計在投片前,需要基于近似真實的硬件環(huán)境,敏捷地進行軟硬件系統(tǒng)定義、集成和試錯,開展軟硬件系統(tǒng)級評估.

      在早期的處理器開發(fā)流程中,由于對硬件的依賴,處理器相關(guān)軟件的開發(fā)和驗證需要穩(wěn)定的硬件原型,這種硬件開發(fā)和軟件開發(fā)之間的串行性在一定程度上降低了整體的開發(fā)與迭代效率.為了縮短開發(fā)周期,軟硬件協(xié)同開發(fā)[4]的思路被提出.軟硬件協(xié)同開發(fā)在設(shè)計初期將系統(tǒng)功能進行軟件和硬件的劃分,隨后軟件和硬件的開發(fā)并行進行,驗證階段采用軟硬件協(xié)同驗證的方式.軟硬件協(xié)同驗證是一種對軟硬件設(shè)計同時進行驗證的方法,要求在驗證框架下搭建待驗證硬件環(huán)境并運行待驗證軟件,運行過程中軟硬件的行為可以彼此提供測試向量,從而將驗證工作并行化,縮短驗證時間.同時,軟件應根據(jù)硬件配置進行設(shè)計,綜合啟動引導固件、操作系統(tǒng)、應用程序等各層次的代碼,組織成完整的軟件棧.隨著硬件設(shè)計的規(guī)模逐漸擴大,軟件棧需要跟蹤各種硬件接口(時鐘與復位邏輯、訪存接口、各類對外通信設(shè)備等)的準確版本以及從固件到用戶級應用程序的特性和功能,因此軟件棧的開發(fā)和測試變得更加復雜.設(shè)計復雜性的不斷增加對實驗和研究軟件工作負載的管理提出了挑戰(zhàn).

      處理器設(shè)計的系統(tǒng)性改進升級可能涉及修改任何層次代碼,包括從低級電路的硬件描述代碼到操作系統(tǒng)和應用程序的軟件代碼.綜上所述,處理器設(shè)計團隊需要一個硬件和軟件完全集成的原型驗證系統(tǒng).全系統(tǒng)級驗證是對軟件或硬件合作的嘗試.系統(tǒng)級驗證指對系統(tǒng)層面的硬件設(shè)計進行驗證,驗證對象通常是軟硬件整體.系統(tǒng)級驗證的方法主要采用對軟硬件整體仿真或模擬的方法,如搭建現(xiàn)場可編程門陣列(field programmable gate array,F(xiàn)PGA)原型系統(tǒng)進行驗證,就是一種目前業(yè)界廣泛采用的基于可編程硬件模擬的方法.近年來,由于FPGA 器件成本的下降和邏輯資源規(guī)模的提升,加上FPGA 本身與真實電路的近似性,F(xiàn)PGA 原型驗證作為系統(tǒng)級驗證的一種方式,其優(yōu)勢愈加明顯.

      現(xiàn)有的系統(tǒng)級原型驗證平臺主要基于通用型FPGA 器件.通用型FPGA 器件以提供可編程邏輯資源為目標,幾乎不包含硬核,設(shè)計流程上主要通過FPGA制造商提供的電子設(shè)計自動化(electronics design automation,EDA)支持工具來構(gòu)建設(shè)計并配置器件,從而構(gòu)建FPGA 原型系統(tǒng).各制造商的FPGA 開發(fā)過程基本相同,但開發(fā)過程往往涉及工程方面的繁雜細節(jié).在基于傳統(tǒng)通用型FPGA 的原型驗證中,除了需要測試的處理器核部署在FPGA 上之外,還需要實現(xiàn)一些基本的內(nèi)存訪問接口和I/O 外設(shè)(包括但不限于網(wǎng)絡(luò)接口、串行端口、USB、SD/MMC 等).沒有FPGA 開發(fā)經(jīng)驗的人需要相當長的時間來學習掌握,技術(shù)門檻較高.這些接口的實現(xiàn)本身也需要占用FPGA 的大量片上邏輯資源,從而擠壓待測試的處理器核心的布局和布線自由度空間,帶來時序違例等問題.此外由于芯片底層實現(xiàn)工藝的原因,相較于專用集成電路(application specific integrated circuit,ASIC),通用型FPGA 的原型驗證場景中處理器核的運行頻率低,執(zhí)行一些計算密集型任務往往需要消耗相當長的時間,而這些等待時間也會間接影響到處理器的驗證流程.

      1 研究背景

      基于面向開放RISC-V 指令集[5]的開源處理器在近年來受到廣泛關(guān)注.隨著開源芯片社區(qū)的不斷發(fā)展和成熟,處理器內(nèi)部的一些典型基礎(chǔ)邏輯功能模塊也在歷經(jīng)多次流片驗證后趨于穩(wěn)定,這些基礎(chǔ)模塊在未來爆發(fā)大規(guī)模邏輯錯誤和設(shè)計缺陷的可能性已大幅度降低。然而,隨著系統(tǒng)整體復雜度的不斷提升,目前的處理器集成了越來越多的基礎(chǔ)模塊部件,因此,未來不僅需要開展面向傳統(tǒng)RTL(register transfer logic)邏輯設(shè)計描述和門級電路的仿真測試,更需要一種快速構(gòu)建軟硬件原型的平臺和方法,以盡快開展系統(tǒng)級測試評估.設(shè)計團隊亟需一種利用開源IP 快速構(gòu)建硅前系統(tǒng)級平臺的方法,盡快開展硅前硬件糾錯和軟件調(diào)試工作.

      隨著片上系統(tǒng)(system-on-a-chip,SoC[6])技術(shù)的演進,出現(xiàn)了在同一芯片上集成FPGA 可編程邏輯(programmable logic,PL)和硬核處理系統(tǒng)(processing system,PS)的新型SoC-FPGA[7]器件.以Xilinx 的Zynq-7000/MPSoC 為例,其硬核處理系統(tǒng)部分是一個以ARM 處理器硬核為核心的SoC,它包含硬核ARM 處理器、平臺管理單元(platform management unit,PMU)協(xié)處理器及各類豐富的外設(shè)接口資源.SoC-FPGA 可以認為是ASIC 器件與傳統(tǒng)FPGA 器件的互補,將一些廣泛使用的標準化處理器核與外設(shè)接口以硬核的形式直接提供給開發(fā)者復用.

      如何充分利用SoC-FPGA 提供的各類外設(shè)接口及算力資源,為開源RISC-V 處理器核提供一套敏捷易用的原型驗證環(huán)境,以更好地開展軟硬件全系統(tǒng)評估工作,是本文著力解決的問題.

      2 國內(nèi)外研究現(xiàn)狀

      FireMarshal[8]是一個用在全棧SoC 上創(chuàng)建和共享可復制和可重復實驗的軟件工件的工具.用戶可以將配置項寫入JSON 文件,以快速生成所需的所有級別的軟件棧.然而,F(xiàn)ireMarshal 側(cè)重于RISC-V 軟件系統(tǒng)的自動化生成,在硬件上依賴FireSim[9]仿真加速平臺,尚未充分考慮如何為RISC-V 處理器的完整軟硬件系統(tǒng)級驗證提供豐富的I/O 外設(shè)接口.

      Freedom[10]是SiFive 設(shè)計的一個平臺,用于將特定的RISC-V 核——Rocketchip[11]部署到傳統(tǒng)通用型FPGA 設(shè)備,為設(shè)計者提供一套典型的RISC-V SoC參考系統(tǒng).雖然Freedom 開源代碼倉庫中提供了一些簡單I/O 接口的使用方法,但接口類型和功能極為有限,不能滿足目標處理器軟硬件系統(tǒng)的完整驗證需求.此外,F(xiàn)reedom 提供的I/O 接口可選擇使用Xilinx FPGA 開發(fā)工具中提供的IP,但這些IP 核仍需要以邏輯電路的形式被部署在FPGA 上,占用待驗證處理器需要的邏輯資源.

      ESP[12]是用于異構(gòu)SoC 設(shè)計的開源研究平臺.ESP體系結(jié)構(gòu)具有高度可擴展性,并在規(guī)則性和專業(yè)性之間取得平衡.伴隨的方法提高了系統(tǒng)級設(shè)計的抽象級別,并支持從軟件和硬件開發(fā)到FPGA 上的全系統(tǒng)原型的自動化過程.對于應用程序開發(fā)人員,ESP提供面向特定領(lǐng)域的自動化解決方案,為其軟件合成新的加速器,并將復雜的工作負載映射到SoC 架構(gòu)上.對于硬件工程師來說,ESP 提供了將加速器設(shè)計集成到完整SoC 中的自動化解決方案.

      國內(nèi)也有團隊開始探索基于SoC-FPGA 構(gòu)建RISCV 處理器的測試系統(tǒng)[13].其基本思路是通過對RISCV 發(fā)起的外設(shè)地址訪問請求進行捕獲,將RISC-V 處理器通過AXI 外設(shè)控制總線對外設(shè)控制器訪問產(chǎn)生的相應數(shù)據(jù)轉(zhuǎn)存,最終通過串口打印.然而該方法僅能對RISC-V 處理器的外設(shè)訪問通路進行相關(guān)訪問數(shù)據(jù)記錄的收集,轉(zhuǎn)存機制本身也難以保證數(shù)據(jù)交互的實時性,同時也未考慮對復雜高速DMA 外設(shè)的訪問支持還無法滿足完整的系統(tǒng)級驗證需求.

      綜上,盡管國內(nèi)外已開始重視RISC-V 有關(guān)的軟硬件協(xié)同驗證系統(tǒng),但主要沿用傳統(tǒng)的通用型FPGA模式,測試待驗證處理器所需的接口通常需要直接在FPGA 上實現(xiàn).特別是對于一些高速接口,即使能夠應用Xilinx 或第三方公司提供的IP 核保證功能可靠,但這些IP 核需要占用大量的邏輯資源,基于Xilinx ZynqMP ZU2EG 系列器件測得的各IP 以默認配置設(shè)置時所需的邏輯資源數(shù)量與所占總邏輯資源的比例,如表1 所示.而目前基于SoC-FPGA 構(gòu)建RISC-V 處理器測試系統(tǒng)的技術(shù)嘗試,尚存在一定的局限性.

      Table 1 Logical Resources Required by the IP of Several Peripheral Interfaces表1 若干外設(shè)接口IP 所需的邏輯資源

      針對傳統(tǒng)通用型FPGA 在構(gòu)建復雜系統(tǒng)方面的這些缺點,本文面向RISC-V 處理器提出了一種基于SoC-FPGA 的RISC-V 處理器軟硬件系統(tǒng)級平臺.該平臺充分發(fā)掘可編程SoC-FPGA 軟硬件協(xié)同可編程的潛力,通過構(gòu)建各級硬件和軟件的設(shè)計,使部署在硬件可編程邏輯部分的待驗證目標RISC-V 處理器核能夠充分利用硬核SoC 側(cè)的I/O 外設(shè)資源,并與ARM 硬核處理器進行協(xié)同,以獲得較好的仿真驗證效果.最后,通過與一系列定制化軟硬件自動化設(shè)計框架,用戶只需提供幾個關(guān)鍵參數(shù)即可自動生成可在SoC-FPGA 上部署的目標RISC-V 開源處理器軟硬件鏡像文件,降低原型驗證環(huán)境的構(gòu)建開銷.

      3 驗證平臺的設(shè)計

      如圖1 所示,待測RISC-V 軟核處理器位于可編程邏輯側(cè),可通過不同類型的總線接口(訪存接口和外設(shè)接口)訪問ARM 硬核SoC 側(cè)的內(nèi)存與I/O 外設(shè)資源;同時I/O 外設(shè)可通過一致性接口向RISC-V 可見內(nèi)存發(fā)起DMA 訪問.此外,為了提高驗證平臺在軟硬件各個層次上的兼容性,本文提出一種基于Mailbox 模塊的軟硬件協(xié)同的驗證平臺設(shè)計框架,通過RISC-V 軟核與ARM 硬核對Mailbox 模塊的共享訪問,實現(xiàn)硬核處理器對RISC-V 處理器軟硬件驗證的高效協(xié)同.

      Fig.1 Overall schematic diagram of prototype verification platform based on SoC-FPGA圖1 基于SoC-FPGA 的原型驗證平臺總體示意圖

      3.1 目標RISC-V 處理器訪問內(nèi)存與I/O 外設(shè)

      完整的軟硬件協(xié)同驗證需要待測試RISC-V 處理器核與各種總線接口之間進行頻繁交互.一些特定的測試數(shù)據(jù)、測試結(jié)果也需要通過相關(guān)的總線接口與待驗證處理器進行傳輸.

      在驗證平臺框架中如圖1 所示,待驗證的RISCV 處理器核主要包含3 類總線接口,分別為訪存接口、一致性接口和外設(shè)接口,其中外設(shè)接口一般使用內(nèi)存映射輸入輸出(memory-mapped I/O,MMIO)的方式工作.為了充分利用硬核處理系統(tǒng)側(cè)的各項資源,本文將可編程邏輯側(cè)待驗證處理器的MMIO 接口連接到硬核處理系統(tǒng)端,并允許待驗證處理器訪問硬核處理系統(tǒng)端的各種I/O 外設(shè);將待驗證處理器通過訪存接口訪問硬核處理系統(tǒng)側(cè)的內(nèi)存控制器.一些具有大量通信數(shù)據(jù)的外設(shè)設(shè)備,如用于訪問SD/MMC便攜存儲設(shè)備的安全數(shù)字輸入輸出(secure digital input and output,SDIO)接口和以太網(wǎng),其DMA 交互接口也與待驗證處理器的緩存一致性接口連接.此外,Mailbox 模塊可以像普通外設(shè)一樣由MMIO 接口直接尋址訪問,為可編程邏輯側(cè)的待驗證處理器提供了一種間接訪問PMU 的方式在ARM 處理器的算力協(xié)助工作中發(fā)揮重要作用.

      硬核處理系統(tǒng)[14]中的UART、SDIO、網(wǎng)絡(luò)等外設(shè)既可以被可編程邏輯中的待驗證處理器通過接口訪問,也可以被硬核處理系統(tǒng)中的ARM 處理器訪問,但不應該被二者同時占用.在驗證平臺啟動過程中,首先由ARM 處理器完成平臺初始化和引導文件加載工作,之后各外設(shè)的控制權(quán)被移交給待驗證處理器,以實現(xiàn)外設(shè)資源的復用.各外設(shè)資源在平臺啟動過程中的使用情況為:

      1)UART 接口.在驗證平臺啟動期間,ARM 處理器和待驗證處理器的各個啟動階段的日志信息,以及掛載文件系統(tǒng)后的交互都可以通過UART 接口完成輸入輸出.

      2)SDIO 接口.在基于SD 卡的引導模式下,ARM和待驗證處理器引導文件都需要從SD 卡移動到內(nèi)存.啟動Linux 內(nèi)核后,待驗證處理器還可能需要在SD 卡分區(qū)上掛載發(fā)行版文件系統(tǒng),也需要訪問SDIO接口.

      3)網(wǎng)絡(luò).在基于網(wǎng)絡(luò)的啟動模式下,ARM 和待驗證處理器都需要從網(wǎng)絡(luò)的遠端服務器讀取啟動鏡像文件到內(nèi)存.啟動Linux 內(nèi)核后,待驗證處理器還可能需要在網(wǎng)絡(luò)文件系統(tǒng)(network file system,NFS)服務器上掛載發(fā)行版文件系統(tǒng),這也需要訪問網(wǎng)絡(luò)接口.

      值得注意的是,由于ARM 處理器在通電和啟動的初始階段僅暫時使用SDIO 或網(wǎng)絡(luò)接口,一旦開始執(zhí)行服務程序,ARM 將不再訪問硬核處理系統(tǒng)端的各類外設(shè)資源.因此,待驗證處理器從開始加載啟動到掛載發(fā)行版文件系統(tǒng)的整個過程,對硬核處理系統(tǒng)端的所有接口資源都具有完全權(quán)限.

      3.2 基于硬核處理器協(xié)同的待測RISC-V 處理器運行時環(huán)境

      硬核處理系統(tǒng)側(cè)的處理器核心主要包括ARM主處理器和PMU 協(xié)處理器2 部分.ARM 主處理器作為硬核處理系統(tǒng)的高性能處理器,主頻較高,而且上電后立即開始工作,可直接進行訪存以及各類外設(shè)接口的交互操作,能夠向待測RISC-V 處理器軟核提供算力方面的協(xié)助.PMU 是一個在SoC-FPGA 上執(zhí)行管理功能的硬核處理器.PMU 可以執(zhí)行其他處理器不被允許的操作,如電源管理、時鐘管理和可編程邏輯配置,能夠向待測RISC-V 處理器軟核提供功能上的輔助.待測RISC-V 核對2 種硬核處理器資源的利用在結(jié)構(gòu)上均需要基于Mailbox 進行關(guān)鍵信息的交互,如圖1 所示.3.2.1 節(jié)將對硬核處理器資源的利用方法,以及不同處理器之間的具體交互流程進行闡述說明.

      3.2.1 平臺管理單元協(xié)同

      基于3.1 節(jié)的方法雖然能夠訪問到I/O 外設(shè)的控制與狀態(tài)寄存器空間,但無法直接訪問一些對系統(tǒng)行為較為敏感的特殊寄存器(如I/O 外設(shè)的時鐘寄存器).這些特殊寄存器只能由PMU 管理,其他處理器核沒有直接訪問權(quán)限.當待驗證RISC-V 處理器需要讀寫特殊寄存器時,需要向PMU 發(fā)出核間中斷請求,委托PMU 進行特殊寄存器的讀寫操作.因此需要建立待驗證RISC-V 處理器與PMU 的核間中斷通信機制.然而,現(xiàn)有SoC-FPGA 器件往往并不允許位于可編程邏輯的待測處理器直接向PMU 單元發(fā)出核間中斷操作.

      為解決這些問題,本文提出一種虛擬核間中斷機制,通過ARM 硬核處理器作為第三方,對核間中斷(inter-processor interrupt,IPI)請求進行轉(zhuǎn)發(fā).具體地,本文提出一種基于Mailbox 的核間中斷請求轉(zhuǎn)發(fā)流程.同時,為了對特殊寄存器的操作與普通寄存器操作進行隔離,本文在RISC-V 的機器態(tài)運行模式(machine mode,M-MODE)下實現(xiàn)了程序調(diào)用接口,允許在其他運行模式下通過環(huán)境調(diào)用(environment call,ECALL)模式訪問.

      如圖2 所示,Mailbox 主要包括請求標記段和參數(shù)段,參數(shù)段包括請求類型段、輸入?yún)?shù)段與輸出參數(shù)段3 部分,可基于FPGA 片上小容量BRAM 實現(xiàn).請求標記段由RISC-V 在需要時進行置位和回讀,ARM 則在默認情況下循環(huán)檢測該請求標記.為了當RISC-V 開始執(zhí)行PMU 訪問時首先通過ECALL 陷入M-MODE,將核間中斷的相關(guān)信息通過MMIO 總線接口寫入Mailbox 的相應位置.在Mailbox 模塊的配合下,RISC-V 核對PMU 等單元的操作請求將由ARM進行中轉(zhuǎn),代替RISC-V 向PMU 發(fā)出操作請求從而實現(xiàn)虛擬核間中斷機制,最終RISC-V 通過Mailbox回讀核間中斷操作的返回結(jié)果,圖2 中,從平臺的角度上,各操作按數(shù)字序號的次序依次執(zhí)行;從RISCV 與ARM 處理器的角度上,各自按照其執(zhí)行步驟箭頭依次執(zhí)行.

      Fig.2 Interaction process between RISC-V processor and PMU圖2 RISC-V 處理器與PMU 的交互流程

      基于Mailbox 構(gòu)建的虛擬核間中斷機制將在平臺的操作系統(tǒng)引導過程中起到重要作用.在待測RISC-V 軟核啟動時,Linux 內(nèi)核的初始化階段需要陷入M-MODE 的管理器二進制接口(supervisor binary interface,SBI)固件代碼中執(zhí)行核間中斷請求.RISCV 處理器上的Linux 內(nèi)核運行于S-MODE, 更高級別的M-MODE 運行OpenSBI(OpenSBI 是SBI 的一種開源實現(xiàn),除了作為引導程序以外, 同時也作為平臺管理固件運行于處理器的最高級別).本文兼容了現(xiàn)有的SoC-FPGA 時鐘驅(qū)動程序,通過添加相應的接口函數(shù)來支持RISC-V 從內(nèi)核態(tài)陷入M-MODE 固件,發(fā)起對PMU 的虛擬核間中斷,如圖3 所示.

      Fig.3 Linux drivers running on RISC-V processor initiate a virtual IPI towards PMU圖3 RISC-V 處理器上運行的Linux 驅(qū)動程序發(fā)起對PMU 的虛擬核間中斷請求

      3.2.2 ARM 處理器協(xié)同

      在驗證平臺中,ARM 處理器負責為RISC-V 處理器核的啟動準備內(nèi)存環(huán)境,并將RISC-V 的啟動鏡像文件從SD 卡提前移動到內(nèi)存,完成可編程邏輯端的位流配置等.并在啟動和運行期間最終執(zhí)行服務程序以協(xié)助ECALL 和RISC-V 的其他操作.除了RISC-V 操作所需的輔助外,ARM 處理器還可以承擔一些計算任務.

      例如,在涉及RISC-V 安全框架的研究中,ARM處理器不僅負責協(xié)助RISC-V 啟動和轉(zhuǎn)發(fā)IPI 消息,它本身還具有更高的工作時鐘頻率和更大的計算潛力.對于一些計算密集型的任務,RISC-V 可以通過Mailbox 向ARM 提交計算輔助請求以及所需要計算的任務類型、原始數(shù)據(jù)信息等,如圖4 所示.ARM 接收到計算輔助請求后,將通過一致性接口讀取所需計算的原始數(shù)據(jù),之后將計算結(jié)果數(shù)據(jù)由一致性接口寫入共享內(nèi)存區(qū)域,并通過清除請求標記告知RISC-V 去回讀共享內(nèi)存中的計算結(jié)果,從平臺的角度上,各操作按數(shù)字序號的次序依次執(zhí)行;從RISCV 與ARM 處理器的角度上,各自按照其執(zhí)行步驟箭頭依次執(zhí)行.

      Fig.4 ARM processor cooperates to run complex computing tasks of RISC-V圖4 ARM 處理器協(xié)同運行RISC-V 的復雜運算任務

      3.3 敏捷驗證平臺開發(fā)框架

      為了提升軟硬件協(xié)同驗證平臺的敏捷性,本文構(gòu)建了RISC-V 處理器軟硬件驗證的可配置、自動化開發(fā)框架.

      3.3.1 可配置框架

      驗證平臺通過多層Git 存儲庫組織,將有關(guān)的軟件和硬件倉庫以高內(nèi)聚、低耦合的原則組織成一個集成的設(shè)計環(huán)境.用戶僅需要向平臺的接口文件提供關(guān)鍵配置參數(shù),如硬件處理器核的相關(guān)配置、軟件代碼的入口地址等.如圖5 所示,平臺通過一系列逐層調(diào)用并相互協(xié)作的Makefile 和工具命令語言(tool command language,Tcl)腳本,將這些關(guān)鍵參數(shù)配至各個代碼倉庫的編譯傳參接口,自動進行各個軟硬件模塊的參數(shù)修改以及FPGA 工程的適配工作,而不需要用戶深入平臺內(nèi)部進行繁瑣的手動修改.當出現(xiàn)某些模塊的更替時僅需要關(guān)注關(guān)鍵參數(shù)即可,從而使得平臺能夠快速兼容各個軟硬件層次的設(shè)計變化.

      Fig.5 Organization structure of platform on software and hardware codes圖5 平臺軟硬件代碼組織結(jié)構(gòu)

      軟硬件協(xié)同驗證平臺的敏捷性應該體現(xiàn)在其可以快速高效地集成任何符合標準接口的軟件與硬件模塊.軟件模塊包括軟件協(xié)議棧的各層次代碼,例如啟動引導軟件、Linux 操作系統(tǒng)、應用層可執(zhí)行程序的不同階段的軟件代碼;而硬件模塊則主要包括處理器層次的邏輯設(shè)計與配置代碼與板卡層次的硬件腳本代碼.對于不同的軟硬件層次,需要分別配置特定的參數(shù),如表2 所示.

      Table 2 Configuration Parameters Required for Integration of Different Software and Hardware Modules表2 不同軟硬件層次整合時所需要提供的配置參數(shù)

      3.3.2 自動化框架

      考慮到系統(tǒng)級原型驗證涉及到很多軟硬件各層次代碼,本文探索在云端將全棧的代碼倉庫組織起來,使用戶在本地或服務器端,自動化執(zhí)行編譯和測試流程.由于編譯需要許多特定版本的工具鏈,基于持續(xù)集成(continuous integration,CI)的編譯方法可以將不同的編譯階段分成特定順序的job,各個job 使用包含所需編譯工具鏈的獨立容器鏡像,相比本地編譯更簡單、更可靠.除了編譯階段,本文也探索了將編譯產(chǎn)出的目標文件通過持續(xù)部署(continuous deployment,CD)更新到設(shè)備.

      4 驗證平臺的評估

      4.1 驗證平臺評估實驗環(huán)境

      4.1.1 硬件環(huán)境

      平臺的硬件環(huán)境包括2 種自研板卡平臺,實物如圖6 所示,分別是基礎(chǔ)實驗平臺(Plat-B)板卡,以及擴展實驗平臺(Plat-E)板卡, 2 種板卡的各項板載基礎(chǔ)配置參數(shù)分別如表3 所示.Plat-E 配備了邏輯資源更大的SoC-FPGA 器件,可以提供更多的片上存儲資源以支持相對復雜的應用場景(如基于RISC-V 的可信執(zhí)行環(huán)境).

      Fig.6 Physical photos of platform hardware圖6 平臺硬件實物照片

      Table 3 Basic Configurations of Two Experimental Platforms表3 2 個實驗平臺的基本配置

      4.1.2 目標軟核處理器

      在評估實驗中,Plat-E 板卡與Plat-B 板卡上RISC-V軟核處理器的基本配置相同,但Plat-E 板卡為RISCV 提供的訪存空間更大、可編程邏輯側(cè)提供的時鐘頻率更高,如表4 所示.

      4.1.3 軟件負載

      基于表3、表4 硬件環(huán)境,通過部署并運行一系列軟件負載,如表5 所示,評估本文提出的驗證平臺性能.

      1)驗證平臺的I/O 外設(shè)性能

      硬核處理系統(tǒng)側(cè)的各類外設(shè)接口在交予可編程邏輯側(cè)的待測試處理器使用時,由于片內(nèi)通路較長,需要更多的總線中轉(zhuǎn),可能會產(chǎn)生一定的性能下降.對于大多數(shù)待驗證處理器的功能和性能測試,特別是需要運行Linux 的場景,考慮到文件系統(tǒng)通常需要放置在SD/MMC 卡或NFS 服務器上,并且數(shù)據(jù)輸入和輸出也取決于SD/MMC 存儲介質(zhì)或網(wǎng)絡(luò)接口.為了測試本文所述的原型驗證平臺是否可以提供足夠的網(wǎng)絡(luò)與SD 卡訪問能力以滿足系統(tǒng)級測試的基本需求,本文基于Plat-B 板卡的硬件環(huán)境設(shè)計了一些典型的比較試驗,對驗證平臺的網(wǎng)絡(luò)與SDIO 這2 個典型外設(shè)接口進行了性能測試和評估.

      2)驗證平臺的算力輔助

      在原型驗證中,待測處理器軟核往往不能以高時鐘頻率運行.當待測處理器必須執(zhí)行一些耗時的計算任務時,長時間的等待往往會給其他后續(xù)驗證過程帶來麻煩.硬核處理系統(tǒng)側(cè)的ARM 處理器可以輔助進行一些較為復雜的計算密集型任務.

      如何提供一個安全可信執(zhí)行環(huán)境是未來處理器設(shè)計中的重要發(fā)展方向.在現(xiàn)有可信執(zhí)行框架下,基于第三代安全散列算法[15-16](secure Hash algorithm 3,SHA-3)的度量操作屬于一種計算密集型任務,它占整體運行時間的80.4%.本文在RISC-V 開源處理器核上部署UC Berkley 發(fā)布的開源可信執(zhí)行環(huán)境Keystone[17-18],探索將SHA-3 核心計算任務委托到ARM 硬核處理器進行處理的方法,并進行性能評估.

      4.2 驗證平臺I/O 外設(shè)性能評估

      在Xilinx Zynq UltraScale+ MPSoC 設(shè)備上,本文分別在硬核處理系統(tǒng)側(cè)使用ARM 處理器,在可編程邏輯側(cè)使用待驗證處理器核來測試兩側(cè)處理器訪問通信的各項性能.網(wǎng)絡(luò)帶寬Inbound(驗證平臺接收來自外界發(fā)送的數(shù)據(jù))和Outbound(驗證平臺向外界發(fā)送數(shù)據(jù))的情況如表6 所示.實驗評估了分別由ARM硬核和RISC-V 軟核訪問SDIO 接口時的性能參數(shù),如圖7 所示,從左到右依次為SDIO 接口的帶寬、每秒讀寫操作次數(shù)、延遲測試結(jié)果.

      Fig.7 SDIO performance evaluation of prototype platform圖7 原型平臺的SDIO 性能評估

      Table 6 Network Performance Evaluation of Prototype Verification Platform表6 原型驗證平臺的網(wǎng)絡(luò)性能評估

      從芯片架構(gòu)來看,硬核處理系統(tǒng)側(cè)的ARM 處理器具有更高的運行主頻(1.5GHz),其到網(wǎng)絡(luò)外設(shè)設(shè)備的數(shù)據(jù)和控制路徑更短.Inbound 和Outbound 的測試性能均優(yōu)于被測的RISC-V.盡管如此,被測的RISC-V 仍然可以保證一定的網(wǎng)絡(luò)傳輸帶寬,在大多數(shù)原型驗證工作中不會出現(xiàn)明顯的瓶頸,可以滿足系統(tǒng)級測試的基本需求.

      4.3 驗證平臺算力輔助效果評估

      基于硬核處理系統(tǒng)側(cè)的ARM 處理器來進行SHA-3計算的基本思路如圖4 所示.ARM 可以按RISC-V 地址空間,以常規(guī)訪存方式,通過RISC-V 緩存一致性接口讀取數(shù)據(jù).執(zhí)行完成后,通過ARM 側(cè)顯式地執(zhí)行緩存寫回操作,將ARM 側(cè)的運算結(jié)果主動通過RISC-V 一致性接口直接寫回RISC-V 內(nèi)存,無需顯式地進行結(jié)果數(shù)據(jù)在ARM 與RISC-V 內(nèi)存中的搬移.

      逐一運行Keystone 的功能測試集進行算力輔助效果測試.在實驗中RISC-V 軟核處理器通過Mailbox將用于SHA-3 計算的數(shù)據(jù)塊的起始地址信息傳遞給ARM 處理器.ARM 運行特定的加速程序?qū)υ摰刂返臄?shù)據(jù)塊執(zhí)行SHA-3 計算.ARM 輔助計算的方法顯著加快了SHA-3 計算速度,平均將加解密計算運行時間減少了81.13%.由于SHA-3 的計算得以輔助進行,Keystone 框架中各功能測試集的執(zhí)行時間均顯著縮短,如圖8 所示.

      Fig.8 Evaluation of the computing power’s auxiliary effect of the ARM processor on the prototype platform圖8 原型平臺的ARM 處理器算力輔助效果評估

      4.4 驗證平臺敏捷性效果評估

      為進一步驗證本文所提出的平臺在敏捷性方面的改進程度,本文在4.1 節(jié)所述的在基準平臺基礎(chǔ)上,分別對3 個處理器實例進行移植,如表7 所示.

      Table 7 Amount of Work Required to Integrate Different Software and Hardware Modules表7 整合不同軟硬件模塊所需要的工作量

      如表7 所示,當需要實現(xiàn)實例I 的目標處理器時,平臺在基準Rocketchip 環(huán)境的基礎(chǔ)上,僅需將代碼倉庫中的處理器核子倉庫替換為“果殼”處理器子倉庫,根據(jù)相應的設(shè)計要求修改DRAM 起始地址與內(nèi)存范圍,此外考慮到“果殼”處理器核不包含硬件浮點計算單元,需要啟動引導軟件提供浮點模擬輔助,因此增加BBL(Berkeley boot loader )代碼倉庫到啟動引導軟件棧路徑下,最后修改頂層軟件棧相應編譯腳本即可.

      當需要實現(xiàn)實例II 的目標處理器時,則以實例I為基礎(chǔ),替換支持脈沖神經(jīng)網(wǎng)絡(luò)加速的“果殼”處理器子倉庫,繼續(xù)沿用實例I 處理器的其他改動即可直接重新編譯并部署新的處理器核到平臺上.

      當需要實現(xiàn)實例III 的目標處理器時,平臺首先將虛擬化擴展的四核Rocketchip 子倉庫替換基準Rocketchip 子倉庫,再修改U-Boot 與Linux 的配置項以支持RISC-V 的虛擬化功能即可.

      最后,根據(jù)3 個實例所需的包括對平臺腳本的配置項、Makefile 與Tcl 腳本代碼修改等工作量進行了評估,如表7 所示.

      綜上,對于以上軟硬件層次的需求變更,僅需較少的手動修改工作即可快速整合進平臺,開啟新一輪的部署與驗證迭代.

      5 結(jié) 論

      處理器芯片設(shè)計在投片前需要基于近似真實的軟硬件環(huán)境,敏捷地進行軟硬件系統(tǒng)定義、集成和試錯.為更好地支持敏捷的軟硬件協(xié)同驗證技術(shù),本文提出了一套基于SoC-FPGA 的系統(tǒng)級全棧平臺,支持主流開源RISC-V 處理器軟硬件棧,支撐軟硬件協(xié)同的評測工作.

      未來的工作包括進一步提升平臺兼容性,以便為設(shè)計規(guī)模更大、邏輯結(jié)構(gòu)更為復雜的國產(chǎn)香山RISCV 開源處理器項目[23-24]提供系統(tǒng)級原型環(huán)境.對于香山處理器核所需的可編程邏輯資源規(guī)模,現(xiàn)有的SoCFPGA 器件尚不足以提供支持,本文正在探索相關(guān)解決方案,以構(gòu)建邏輯資源規(guī)模更大的系統(tǒng)級平臺.

      本文所述的敏捷軟硬件系統(tǒng)級評估平臺已經(jīng)開放①https://gitlab.agileserve.org.cn:8001.,并發(fā)布了平臺的使用說明②https://gitlab.agileserve.org.cn:8001/ICT-SERVE-FARM/serve-docs/user-manual.git.,歡迎申請試用并提出寶貴建議.

      作者貢獻聲明:齊樂實施實驗并撰寫論文;常軼松負責提供實驗方案與詳細工作思路;陳欲曉和張旭提出相關(guān)意見并修改論文;陳明宇、包云崗和張科提供總體指導.

      猜你喜歡
      外設(shè)硬核原型
      包裹的一切
      硬核爺爺煉成記
      學生天地(2020年17期)2020-08-25 09:28:38
      “硬核”舉措下的暖心舉動
      用“三個最嚴”彰顯“硬核”擔當
      公民與法治(2020年6期)2020-05-30 12:44:00
      陜西制造需要“硬核”
      當代陜西(2019年14期)2019-08-26 09:42:14
      《哈姆雷特》的《圣經(jīng)》敘事原型考證
      論《西藏隱秘歲月》的原型復現(xiàn)
      劍南文學(2016年14期)2016-08-22 03:37:42
      原型理論分析“門”
      人間(2015年20期)2016-01-04 12:47:08
      Microchip推出具備雙ADC外設(shè)的全新器件,擴展其低成本8位PIC?單片機產(chǎn)品線
      貼身呵護 必不可少的PSP外設(shè)
      南川市| 勃利县| 公主岭市| 湘潭县| 昔阳县| 楚雄市| 大同县| 马边| 城固县| 灵丘县| 收藏| 平谷区| 嘉兴市| 略阳县| 尖扎县| 江城| 巴彦县| 郑州市| 正阳县| 方城县| 綦江县| 宁海县| 浦江县| 黄大仙区| 阿瓦提县| 洛南县| 益阳市| 井冈山市| 登封市| 宁强县| 清流县| 永清县| 彩票| 勐海县| 望都县| 城固县| 乌拉特前旗| 洪泽县| 榆中县| 微博| 琼海市|