999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向異構多核處理器的FPGA驗證

2021-12-14 11:32:40李小波唐志敏
計算機研究與發展 2021年12期
關鍵詞:調試信號

李小波 唐志敏 李 文

1(計算機體系結構國家重點實驗室(中國科學院計算技術研究所) 北京 100190) 2(中國科學院大學計算機科學與技術學院 北京 100049) 3(上海處理器技術創新中心 上海 200120)

近年來,伴隨著處理器應用領域的不斷拓展,實際應用對處理器應對復雜場景的功能需求不斷提高,面向通用計算場景的傳統通用處理器逐漸不能適應這些需求,因而面向復雜應用需求的異構多核處理器不斷涌現.對于高性能的異構多核處理器,由于其核組眾多,核內架構復雜,核間通信多樣,高速外設接口豐富,整體設計規模十分龐大.隨之而來的是待驗證的狀態空間成倍的增長[1],對其進行完備的功能驗證已經成為異構多核處理器設計工作中的瓶頸.

傳統基于軟件模擬驗證(simulation)[2]的方法具有靈活性強,使用簡單的特點,但隨著異構多核處理器邏輯單元規模增大,全芯片系統級模擬驗證速度下降明顯.雖然采用基于事務(transaction)[3]的驗證方法可提高驗證對象的抽象層次,從而加快驗證的速度,但對于我們待驗證的目標設計,其運行速度也只能達到幾十赫茲(Hz),甚至幾赫茲,并時有軟件模擬EDA(electronic design automation)工具及環境崩潰,根本無法運行大量廣泛的系統級測試程序,更別提進行復雜的軟硬件混合驗證.

基于硬件仿真加速器(emulator)的仿真驗證[4],其運行速度可達幾百千赫茲(kHz),甚至優化后能到兆(MHz)級.但其運行環境要求高[5],維護成本高[6],價格十分昂貴;另一方面雖然其運行速度比模擬速度提升幾百到幾千倍,但其仍然達不到運行操作系統、編譯器、系統級軟件應用和性能、壓力測試程序等的要求.

現場可編程門陣列(field programmable gate array, FPGA)原型驗證通過使用商用FPGA實現處理器設計的大部分功能(PHY,(phase locked loop, PLL))等模擬定制電路無法在FPGA上實現),可以進行高速的原型驗證[7].由于其運行速度通常可達幾十到百兆級,可用可以運行更多更廣泛的真實的測試程序和系統軟件,經常可以發現許多軟件模擬驗證難于發現的問題.不僅如此,模擬驗證和硬件仿真等手段,一般只能連接測試模型或者虛擬設備,這可能帶來驗證環境與真實物理設備行為之間的差異,而FPGA平臺卻可以直接連接外圍真實的物理設備,用于系統級軟件開發、測試和性能分析等方面,從而廣泛被采用于處理器的開發驗證中,并發揮著十分重要的作用.

1 相關工作

目前,FPGA驗證平臺和驗證方法在不同架構的處理器驗證中也都有成功應用[8].英特爾(Intel)公司[9]基本在其每一代處理器[10-11]設計驗證、性能分析中都有采用FPGA平臺,以彌補傳統模擬驗證的不足.國內龍芯團隊[12]采用了多FPGA驗證平臺完成了龍芯-2G的FPGA驗證工作.這些FPGA驗證平臺主要側重于單一架構,單一處理器核心在FPGA上的原型驗證,而對于多晶粒(Die)的異構多核高性能處理器芯片如何進行FPGA平臺的構建和及其FPGA調試驗證方法暫未涉及.此外,這些原型驗證平臺,并沒有涉及系統級的FPGA驗證環境實現,大部分解決方案是將FPGA連接到已有主板上[11].但是如果是第1代芯片的研發,主板系統不可能在芯片驗證階段準備就緒,這就需要我們獨立構建基于FPGA的系統級驗證平臺.

本文提出的基于同構對稱FPGA平臺對異構多核高性能處理器的FPGA驗證、調試方法,有效地利用了異構多核處理器的架構特征,同構FPGA的對稱特點,以層次化的方法自頂向下劃分FPGA功能,自底向上構建FPGA平臺.采用差速橋(speed bridge)和自適應時延(adaptive delay)調整采樣等技術,結合內嵌的虛擬邏輯分析儀(virtual logic analyzer, VLA)調試工具可以快速地完成FPGA平臺的點亮和部署.運用多核互補,核間替換模擬的調試SHELL等驗證方法可以有效地完成對目標高性能異構多核處理器及整個SOC芯片系統級的FPGA驗證.

Fig.1 The architecture of heterogeneous multi-core processor

本文的貢獻主要有6個方面:

1)結合目標處理器架構,采用了層次化靈活可配置的方法,以子功能模組、功能模組、異構多核模組、晶粒(Die),自底向上、逐級遞進的方法,最后擴展到全芯片,完成了FPGA平臺的構建;

2)針對高速I/O接口協議速度快、頻率高,且全系統FPGA實現時FPGA頻率較難達到實際協議速率等問題,運用了差速橋方案,成功實現了高速I/O速率匹配,完成了系統級的高速I/O互聯,從而實現了大量高速I/O接口的FPGA驗證和軟件驅動的提前開發;

3)對于多晶粒的FPGA平臺互聯,由于每個FPGA平臺獨立配置,它們上電順序和時鐘相位無法保證同步對齊等問題,通過插入可配置的自適應時延控制邏輯,有效地解決了信號跨多個FPGA平臺同步采樣問題;

4)在FPGA調試過程中,通過構建VLA,有效地解決了FPGA平臺調試難題,加速了平臺點亮和后續驗證調試進程;

5)在FPGA驗證過程中,根據異構多核處理器的特點,提出了大小核互換、多核間模擬替代、內嵌調試SHELL等方法,可以方便快速地進行軟硬件協同驗證,巧妙地解決了軟件任務如何在核間劃分,負載均衡等工作;

6)應用該FPGA驗證平臺,可極大加速異構多核處理器驗證進程,明顯縮短硅前(pre-silicon)FPGA驗證時間,有效地保證芯片一次性流片成功,同時在芯片設計階段就為軟件開發提供了一個高效的開發調試硬件平臺,可提前在這個硬件原型系統平臺上進行軟件開發測試,及早發現軟硬件協同設計問題,并且可以為硅后驗證(post-silicon validation),及后續項目的架構設計提供有效可靠的平臺保障.

2 目標異構多核處理器簡介

2.1 目標異構處理器結構

本文需要進行FPGA驗證的目標處理器是一款異構多核高性能處理器,其總體結構如圖1所示.該處理器由若干個晶粒互聯組合封裝而成,單個晶粒約10億門,規模十分巨大,設計復雜度高.該處理器既包含負責初始化啟動和安全管理的精簡指令集(reduced instruction set computer, RISC)處理器核(簡稱小核),也包括用于各種復雜計算處理的通用復雜指令集(complex instruction set computer, CISC)處理器核(簡稱大核),還包括用于Die間互聯切換控制、功耗能效管理的數字信號(digital signal process, DSP)處理器核(簡稱控核).同時還包括多通道最高速率可達3 200 Mbps支持ECC的DDR4(double data rate 4)內存控制器,及大量高速外設接口,比如多個16 Gbps的PCIe4.0、若干6 Gbps的SATA3.0,10 Gbps的USB3.1,10 Gbps Ethernet等高速I/O接口,此外還有各種低速的調試、維護管理接口等.

2.2 目標異構多核處理器功能劃分

圖1處理器架構中從功能的角度出發,可以將整個處理器按功能劃分為復雜指令集(CISC)處理器核組,精簡指令集(RISC)處理器核組,數字信號(DSP)處理器核組,多路內存(DDR4)存儲控制器組,各種高速互聯接口組,低速調試接口組.接下來,從各個功能組團中選取具有代表性的一個核(模塊)進行FPGA驗證,最終我們選擇了1個CISC核心,1個RISC核心,1個DSP核心,1個DDR4.0通道,1個PCIe4.0接口,1個SATA3.0接口,1個USB3.1接口,1個Ethernet接口和一些低速調試管理接口作為一個典型的最小配置.這樣做有2方面原因:1)每個功能模組都有一個完備的功能模塊,可以有效驗證單個核/模塊正確性;2)避免大量同質的復制,增大了FPGA規模,導致容量、成本、時間等一系列問題.

待最小配置的FPGA平臺成功完成點亮并穩定運行后,再根據測試需求,可以添加更多核心和功能模塊.比如當需要測試同構多核通信和緩存一致性,就可以添加2個或更多的處理器核心,讓多個核心并發訪問緩存頁面,在測試例程檢查結果同時,還可以通過后續第4節介紹的VLA記錄總線上的訪存序列,查看是否符合預期.如果需要并發壓力測試多個I/O的吞吐率,可以集成更多的I/O模塊,并通過調試SHELL驅動多個模塊測試例程并發運行,以更真實地模擬實際芯片的工作情況,提高驗證覆蓋率.

2.3 目標異構多核處理器FPGA驗證的挑戰

雖然經過2.2節的功能核(模)組劃分裁剪后,待驗證處理器規模已經縮減了很大一部分,但其規模仍然很大,內部結構復雜,高速接口種類繁多,對其進行FPGA驗證及軟硬件協同開發調試等依然面臨諸多挑戰,主要包括:

1)目標異構多核處理器架構內部互聯復雜,邏輯規模龐大,高速I/O較多,如何劃分映射到多片FPGA上,并滿足目標芯片在模塊級/系統級,單核/多核,單模塊/多模塊,單晶粒/多晶粒及全芯片等不同規模配置下的靈活快速點亮并實施有效驗證,是一個巨大挑戰;

2)FPGA驗證平臺相比傳統模擬驗證和硬件加速器驗證,信號可觀察性、可控制性更差,調試十分困難,迭代周期長,如何設計一個模塊化,靈活易用的虛擬邏輯分析儀,是一個亟待解決的問題;

3)目標異構多核處理器,不同于傳統同構多核處理器,如何進行異構核間協同、軟件任務劃分、負載均衡、系統調度,如何有效利用異構多核的架構進行更有效快速驗證,也是一個值得探討方向.

本文后續章節將分別介紹如何應對這些挑戰,解決本節提到的各種問題,最終完成該異構多核處理器的FPGA平臺構建、調試、軟硬件協同驗證及硅后問題在FPGA平臺上的復現.

3 FPGA原型驗證平臺構建

本節將詳細介紹如何根據目標異構多核處理器架構,構建靈活可擴展的FPGA平臺.具體工作包括:設計裁剪及容量預估,FPGA平臺選型、邏輯分片及時分復用、差速橋集成、時鐘等比縮放、多平臺互聯等.

3.1 設計裁剪及容量預估

如2.2節所述,由于待驗證異構多核處理器規模巨大,現有最大的FPGA容量也相去甚遠,如何裁剪設計的規模成為FPGA平臺能否構建的前提.具體方法為:

1)同質核心空殼(empty shell),由于本處理器采用了異構多核架構,每種架構處理器可能有一個或若干個,在不改變系統頂層情況下,最靈活方法是每種架構的核組只保留一個核心,其他同質核心全部替換為空殼(shell).在設計時我們經過精心考慮,在空殼核心輸出信號連接合適初始化值(tie0/tie1)的狀況下可以保證整個全片仍然能正常工作.

2)保留必不可少模塊,分步集成各核心和高速I/O模塊,自底向上策略逐步擴大驗證規模.待最小配置點亮后,再根據驗證需求添加更多的處理器核心和功能模塊.

3)資源預估,對每個功能子模塊進行面積、引腳、時鐘等資源評估.

圖2展示了待驗證目標系統的最小配置下各功能模塊的面積,在小餅圖中我們可以注意到單個CISC核心面積(大核)是RISC核心(小核)和DSP核心(控核)的20倍以上,相差很大,這給FPGA資源分配和規劃帶來新的挑戰,同時也是本文第5節中使用大小核模擬替換協同驗證的重要原因.

3.2 FPGA平臺選取

根據不同芯片架構對FPGA驗證需求的不同,會選適合待驗證芯片架構的FPGA驗證平臺,有FPGA平臺基于其自身架構的特點和驗證的需要選取了子母板架構[13].而基于我們待驗證的處理器,其異構多核對稱多晶粒架構的特點以及為了滿足本文第4節介紹的通用調試接口需求,經過多種權衡考量,最終采用了統一架構的FPGA平臺.這樣做有利于驗證平臺的層次化、模塊化,具有靈活易擴展等特性,方便多個晶粒級聯,并具有統一的外部接口.FPGA型號方面,由于設計規模巨大,選擇Xilinx公司[14]目前較大容量的XCVU440芯片,每個驗證板上包含4顆該芯片,引腳數為1 456,分別連接到24個連接頭上,每個連接頭可以傳送50個有效信號,其邏輯示意如圖3所示.

Fig.2 The area pie of the each function module

Fig.3 FPGA board connection logic

3.3 分片及時分復用

對于單顆XCVU440雖然其等效ASIC達到了約2 600萬門左右,但是相對于我們需要進行FPGA驗證的目標復雜異構多核處理器規模,仍然相距甚遠,不可避免需要使用多片FPGA才能完成.對于待驗證目標處理器到多片FPGA的邏輯分片,如果使用純手工對設計劃片,雖然可以得到比FPGA劃分工具更好的結果,但這需要有對設計十分了解的有經驗的工程師和較長的時間迭代;如果嘗試使用EDA工具的自動分片,較難得到期望的理想結果,而且從資源預估結果看需要使用80多片FPGA才能實現,目前現有的FPGA工具難于處理如此大規模的設計.

為了解決這個難題,結合芯片架構特征我們采取了人工深度干預FPGA工具的混合劃片方法:

1)自頂向下,對稱邏輯劃片以晶粒為第1層次進行切割劃分以減少綜合、布局布線FPGA數量;

2)晶粒內部,結合3.1節預估信息,裁剪部分同質核心/模塊,減小規模后,同時根據芯片互聯數據通路及微架構,首先人工固定部分需要外接到I/O引腳的功能片(tile)和需要特殊處理的功能模塊后,再引入自動劃片工具對其他剩余邏輯進行劃分;

3)基于文獻[15]介紹的K-L劃分方法,調整部分功能片,讓緊耦合互聯信號多的模塊盡量放在同一片FPGA內,盡量前期減少互聯信號總數;

4)采用時分復用方法[15],以高頻時鐘傳輸接口信號來滿足FPGA片間傳輸較多信號超過連接引腳(pin)數的需求.

通過這4個方法,可以將一個經典配置劃分在12顆FPGA中,而純FPGA工具需要19顆FPGA,得到一個相對較優的劃分結果.此外,根據FPGA板拓撲位置,將DDR4和低速調試I/O接口放在一個FPGA板中(圖4Board1),高速I/O接口統一劃分在另一個FPGA板中(Board3),跨晶粒互聯全部位于Board2,形成非常規整的對稱結構,這十分易于多FPGA平臺互聯實現.

3.4 差速橋實現

由于目標驗證異構多核處理器內集成了DDR4存儲控制器,PCIe4.0,SATA3.0,USB3.1,萬兆Ethernet等眾多高速I/O外設接口,為了驗證它們的邏輯正確性,需要在FPGA平臺上實現這些高速I/O接口.

如果根據標準協議,PCIe4.0和SATA3.0等高速接口真實速度較快,對FPGA工作頻率要求非常高.而目標芯片在劃分互聯后,芯片內部控制邏輯需要跨越多個FPGA板和多顆FPGA芯片,其頻率已經很難達到諸如PCIe4.0的全速率要求,這就需要通過差速橋來匹配FPGA和真實接口之間的速率,使PCIe4.0,SATA3.0等高速接口能在FPGA平臺上以低速的形式實現.最終平臺整體架構如圖4所示:

Fig.4 The overall architecture of FPGA platform for target processor(single Die view)

3.5 跨晶粒(Die)平臺互聯

目標驗證異構多核芯片,采用了多晶粒封裝架構,需要將圖1的多晶粒組合起來,進行多晶粒互聯驗證和性能分析等.如果增加一個新的頂層,完全交給FPGA工具劃分,由于工具處理能力有限,會導致FPGA工具崩潰;另一方面效率低下,我們以4晶粒互聯為例,需要完成多達48顆FPGA的劃分、綜合、布局布線、生產下載文件的全流程,迭代一次需要一周以上.鑒于此,如果能利用到晶粒之間功能對稱以及FPGA規整互聯的特性,就可以極大簡化這項工作.

由于晶粒內部邏輯功能完全一致,如果不需要考慮晶粒間的上電順序和信號時鐘同步(后面將介紹如何解決上電順序和時鐘采樣同步),只需要通過改變FPGA引腳在啟動時的上下拉高低值,就可以區分主晶粒(master)和從晶粒(slave).引腳上拉的主晶粒在系統啟動過程中,固件(firmware, FW)會根據當前晶粒的主從情況,選擇不同初始化執行路徑,在等待主從晶粒完成數據通路建立后(Step5),主晶粒固件就可以完成對其他從晶粒的配置工作.另一方面由于FPGA平臺選取了統一的架構和相同型號的FPGA,就可以所有晶粒都采用一樣的FPGA配置文件,這樣只需要完成單晶粒的12顆FPGA平臺實現以后就可以同時支持多晶粒的互聯部署,這極大地提高了工作效率,縮短調試時間.

而多晶粒(多FPGA平臺)的上電順序和互聯的信號和時鐘如何同步,也是一個亟待解決難題.結合Die間互聯協議和采樣的要求,我們引入了自適應與軟件可配置的時延控制機制,成功實現了接口采樣的準確互聯和信號同步,具體原理如圖5所示:

Fig.5 Adaptive delay synchronized logic

自適應延遲電路嵌入接收端(RX),通過寄存器修正接收到信號延遲,本設計中根據延遲需求,采用800 MHz高頻時鐘(clk_hi)控制采樣時延,每個時延步長1.25 ns,共4 b控制,延遲區間范圍0~20 ns,可以覆蓋接口傳輸信號的全周期.

自適應時延調整主要分6個步驟:

1)FPGA平臺系統上電完成,各平臺時鐘啟動、Reset等釋放;

2)發送端復位完成后,自動發送訓練序列;

3)接收端狀態機根據采樣結果,不斷修正控制選擇寄存器,控制輸入信號以1.25 ns為步長持續滑動,以調整接收數據和采樣時鐘rx_clk之間相位;

4)當接收信號符合預期后,控制狀態機結束時延修正,并通知發送端停止發送訓練序列;

5)固件在啟動序列中,會輪詢(polling)控制寄存器值,進行軟硬件同步,確認FPGA平臺間數據采樣同步完成;

6)軟件進入下一步,控制FPGA平臺接口間進行正常的數據傳輸,多晶粒FPGA平臺同步完成.

4 FPGA平臺調試技術

如何提高FPGA的調試能力,是FPGA平臺能否快速點亮部署和定位硬件/軟件問題的關鍵.基于傳統的FPGA自帶工具抓取信號的方法,常常受限于FPGA內部存儲(memory)容量限制,不能觀察較多信號,較長時間(信號深度).另一種方法是將信號外接到引腳(pin)借助邏輯分析儀等調試設備,也受限于可用引腳限制和采樣深度,只能選取一些關鍵信號.而對于目標驗證芯片,其內部數據總線的位寬較大,需要觀察信號也非常多,利用FPGA的I/O管腳做調試引腳常常會I/O數量不足.另一方面,在多核處理器芯片調試過程中,常常由于異構多處理器架構疊加多核多線程和分支預測、推測執行等復雜技術,導致問題表現得一定隨機性,有時候測試進行幾個小時就能發現問題,有時候需要幾十個小時才能碰到問題,這就需要記錄多個處理器核的多個線程的長時間運行指令序列(PC值),以進一步分析和定位問題.針對這些調試難題,我們自研了基于以太網口的虛擬邏輯分析儀(VLA),其基本結構如圖6所示.其主要分為3個功能模塊:信號獲取、信號傳輸、信號解析.

Fig.6 Basic architecture of VLA

4.1 VLA信號獲取

VLA信號獲取是一個標準化的模塊,只需要實例化在設計中,然后將需要獲取信號,或者調試總線等連接到該模塊頂層端口上,并連接上一致性的時鐘,復位和控制信號就可以完成信號的獲取,使用起來十分簡潔.

此外,還可以通過軟件配置寄存器來靈活控制VLA的觸發(trigger),可以在任意時刻或者軟件發現錯誤時開始信號獲取、暫停、再獲取.結合軟件配置選擇調試信號的輸出,靈活地控制需要獲取時間段,信號深度等參數.

4.2 VLA信號傳輸

最終的獲取信號會通過一個或多個以太網(Ethernet)硬件控制器自動封包成符合Ethernet包(packet)格式的以太網包,并通過FPGA上以太網控制器發送出去,通過網絡傳輸給任意目標主機.由于調試信號是實時傳輸到主機,幾乎不占有FPGA自身存儲空間,其信號的獲取深度理論上可以無限大(只要主機存儲空間足夠大),這成功地解決了FPGA自帶調試工具和外接邏輯分析儀等設備獲取調試信號深度有限的問題.

4.3 VLA信號解析

目標主機可以通過常用的抓包程序(如Wire-shark,Sniffer等)捕獲以太網包,并存儲在特定文件中.結合信號的獲取順序和位寬,通過腳本簡單處理收到的以太網包中的數據,再呈現給設計、驗證及軟件人員.而且由于處理器系統級驗證特殊性,在大部分情況下并不需要再看波形,只需要分析回放(replay)指令執行序列,軟件工程師就可以直接定位出錯的指令序列,十分易于調試,這極大地提高了工作效率.當然,VLA不僅僅可以用于記錄程序執行序列,根據調試驗證模塊的不同,還可以記錄其他希望觀測調試的信號.比如控制總線事務,DDR讀寫序列(sequence),PCIe DMA序列等信息,這十分便于對相關模塊工作狀態的檢查和調試.

5 異構多核處理器驗證方法探索

本節將介紹使用本文構建完成的FPGA平臺,結合異構多核處理器的特點,開展相關FPGA驗證工作.

5.1 異構處理器間協作驗證動機

本目標異構多核處理器設計十分復雜,不同核組之間的規模和復雜度都相差較大,如圖2所示.其中尤以CISC核為甚,該大核需要占用較多的FPGA資源,且其初始化啟動過程繁復,用時較長,需要操作系統和驅動軟件加載支持.如果在驗證調試初期,希望能較快直接測試其他待測功能模塊(例如PCIe接口),這時可以利用異構多核的特點,使用另外的一個異構的RISC核(簡稱小核)來完成PCIe的快速初始化和直接測試.此外,對于芯片的硅后問題定位,也可以在更簡單直接的小核系統中進行復現.

5.2 異構處理器間模擬替代

目標異構多核處理器,根據架構設計情況,在正常工作時,CISC,RISC,DSP核間各有任務分工.在FPGA驗證過程中,為了更靈活地驗證設計,如圖1所示,這些核組都連接在芯片內部的數據和控制總線上,因此可以完成異構核間相互模擬替換,在更早階段,以更少的資源就可以開展其他各個高速外設模塊或處理器核間的交叉驗證,這樣既節約了FPGA資源,又簡化平臺點亮,極大地加快了原型驗證測試進程.此外,采用大小核方式協調還十分有利于問題排除法定位,芯片硅后調試時也可以用于開展各個模塊(特別是各高速外設)的問題復現(reproduce).為此我們引入了專用于FPGA原型驗證和硅后驗證的調試解釋外殼程序(調試SHELL).

5.3 調試SHELL工作流程

調試SHELL是一組專用于FPGA原型驗證和硅后問題復現的測試程序集合及其構建的裸芯片(bare-metal)運行環境,它可以靈活地內嵌在異構多核處理器正常啟動流程的適當階段.如圖7所示,調試SHELL作為工程開發模式一部分,在RISC處理器引導程序完成后,可以選擇是否進入調試SHELL,調試SHELL一旦開啟,就可以以更靈活直觀方式對設計中的其他功能模塊或處理器核心進行測試.

Fig.7 The flow of Debug SHELL

此外,調試SHELL由于不依賴于軟件庫(lib)和操作系統(operating system, OS),可以嵌入任何一種架構的處理器核上執行,使用起來非常靈活.除管理測試例程之外,它還為測試例程提供裸芯片(無BIOS,OS支持)的運行環境,它主要有3方面重要功能:1)地址映射.CISC處理器、RISC處理器、DSP處理器數據通路差異,地址空間的映射不一樣,這需要調試SHELL來加載測試例程和初始化對應處理器的堆棧空間等基本運行環境.2)存儲管理.多個測試例程存放位置、運行地址、內存和內部SRAM空間分配和管理等.3)多測試例程簡單并發.調試SHELL可以宏觀上“同時”啟動多個測試例程,比如測試例程1主要測試PCIe,測試例程2測試USB,調試SHELL可以并發調度例程1和例程2執行,讓PCIE,USB同時工作,從而能更真實模擬實際芯片工作場景,增加測試覆蓋率和測試壓力.

以調試SHELL工作在小核上為例,其主要工作劃分8個步驟:

1)FPGA平臺系統上電啟動;

2)管理處理器核組(小核)解復位,開始Bootcode管理程序執行和系統初始化;

3)管理程序執行完成,進入是否開啟調試SHELL選項,如果選擇開啟,進入4),否則進入正常啟動執行7);

4)調試SHELL初始化,并進入交互界面,并選擇測試例程X進入5),或選擇結束測試進入1),重新啟動系統;

5)進入測試例程X,并開啟對應測試驗證;

6)測試用例X執行測試完成并反饋測試結果,返回4);

7)開啟引導程序流程,并解復位主處理器核(大核);

8)主處理器開始正常程序啟動流程,完成系統啟動.

Fig.8 Stage of FPGA verification

6 FPGA原型驗證結果

通過構建靈活可配置的FPGA平臺,可以實現多核異構處理器內各核組、各模塊的FPGA原型驗證,通過異構處理器大小核互補迭代,可以方便實現芯片不同規模,不同研制階段,硅前、硅后驗證及軟件開發測試需求,并為后續下一代項目提供快速評估平臺.結合我們項目經驗,主要分4個FPGA驗證的不同階段,如圖8所示,參考每個階段發現的硬件設計問題、軟件問題及對項目的貢獻等因素可以計算FPGA在各個階段收獲的驗證成果.

1)流片前驗證階段(階段1).在流片前FPGA搭建、各個功能模塊點亮、后續固件(FW),主機BIOS、軟件驅動的開發,標準性能測試(SPEC)過程中,總共運行了1 600多支測試(test cases),產出了一半的驗證成果.由于該FPGA平臺最高可以運行在14 MHz的頻率下,能夠進行完整操作系統(OS)的啟動全流程,同時可以對各功能模塊實施更多更廣泛的功能驗證和全系統的性能測試.以OS啟動為例,只需要40 min可以完成Linux啟動過程,而這需要幾百億個時鐘周期,如果在傳統基于模擬驗證的方式下幾乎無法在流片前完成.此外在這一階段,發現了一些嚴重的設計問題(bug),并得以在流片前及時修復.

2)流片后到芯片回來階段(階段2).這一階段一般持續約9~16周.在這個階段雖然芯片已經流片,但芯片并未回來,可以在這一段較短時間內利用FPGA平臺完成軟件驅動的開發測試、芯片壓力測試、性能分析等工作,并為芯片回來后的硅后驗證做好準備.在我們實際項目中,在這一階段內雖然未曾發現芯片設計問題,但卻修復了多個系統軟件和I/O驅動問題,整體貢獻了約10%驗證成果.

3)硅后驗證階段(階段3).這一階段芯片已經回來,大量的軟硬件測試可以在芯片上直接進行,FPGA平臺主要提供調試支持性工作.但從我們的項目經驗看,這一階段FPGA平臺卻提供了約25%的驗證成果.在硅后驗證發現的問題中,其中有3個極難在軟件模擬仿真中被復現,最終都是通過FPGA平臺成功復現,并采用第4節介紹的虛擬邏輯分析儀VLA,獲取到指令執行序列和錯誤波形,找出了問題的根源.并基于這些信息,才構造了模擬仿真測試用例,用于芯片ECO(engineer change order)修復驗證和后續項目的回歸測試集.

4)下一代芯片定義階段(階段4).由于同系列芯片的設計和驗證天然具有繼承延續性,當需要設計芯片下一代時,架構設計者經常需要快速評估一些特性的價值,FPGA平臺由于其靈活可配置、迭代運行速度快等優勢,能夠有效地用于下一代芯片的評估分析中.可以在FPGA平臺上快速修改部分處理器實現參數,例如增大或減小處理器一級、二級,三級緩存容量,調整發射隊、提交隊列深度、DDR訪存延遲、I/O延遲等,這對于架構定義和性能優化都十分有益.在我們的處理器研發過程中,這一階段在整個FPGA的生命周期中貢獻了約15%的成果.

7 總 結

本文針對一款高性能異構多核處理器開展FPGA原型驗證工作,選取了同構對稱FPGA平臺對異構多核高性能處理器的進行FPGA驗證.以層次化的方法自頂向下劃分FPGA功能,自底向上構建FPGA平臺,極大地簡化了FPGA構建流程.采用差速橋和自適應時延調整采樣等技術,結合自研的內嵌虛擬邏輯分析儀調試工具快速完成FPGA平臺的點亮和部署.運用多核互補、核間替換模擬的調試SHELL等方法可以快速完成目標高性能異構多核處理器的FPGA驗證.因此,本文提供針對異構多核處理器的FPGA驗證平臺搭建和驗證方法是可行且十分高效的,經過采用本文介紹的FPGA驗證的目標芯片,達到了預期設計目標.通過該FPGA原型驗證平臺,成功地完成了該芯片的硅前、硅后驗證,軟硬件協同開發、測試、下一代芯片架構評估等工作,為該系列芯片的全周期提供了有效的平臺保障,并可以推廣應用于相類似的異構多核處理器的FPGA平臺搭建和測試驗證工作中.下一步我們將繼續結合異構多核處理器架構特征,研究更有效的FPGA平臺構建和調試技術,縮短平臺點亮時間,不斷提高FPGA平臺的調試和驗證能力.

猜你喜歡
調試信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
孩子停止長個的信號
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
核電廠主給水系統調試
中國核電(2017年1期)2017-05-17 06:10:11
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
調壓柜的調試與試運行探討
基于LabVIEW的力加載信號采集與PID控制
工業電氣設備控制系統的安裝與調試
音頻處理器的調試
主站蜘蛛池模板: 再看日本中文字幕在线观看| www.av男人.com| 996免费视频国产在线播放| 免费一级全黄少妇性色生活片| 久久网欧美| 午夜限制老子影院888| 亚洲成人黄色网址| 毛片一区二区在线看| 亚洲国产成人超福利久久精品| 亚洲国产成人综合精品2020| 香蕉久久国产精品免| 国产成人免费视频精品一区二区| 高潮毛片无遮挡高清视频播放| 九色视频线上播放| 国产1区2区在线观看| 亚洲视频免| 亚洲精品成人7777在线观看| 免费国产小视频在线观看| 午夜综合网| 欧美精品在线观看视频| 天天操天天噜| 波多野结衣亚洲一区| 久久9966精品国产免费| a色毛片免费视频| 97在线免费| 99在线观看国产| 性网站在线观看| 国产成人精品一区二区不卡| 国产男女免费完整版视频| 免费AV在线播放观看18禁强制| 尤物在线观看乱码| 国产激情无码一区二区三区免费| 欧美伊人色综合久久天天| 青青草原国产| 一本大道无码高清| 日韩精品一区二区深田咏美| 亚洲av无码专区久久蜜芽| 99久久人妻精品免费二区| 国产精品亚洲综合久久小说| 国产一区二区三区在线观看免费| 国产美女自慰在线观看| 亚洲欧美日本国产综合在线| 精品国产美女福到在线直播| 免费一级毛片完整版在线看| 免费无码AV片在线观看国产| 日韩小视频在线播放| 国产精品第一区在线观看| 国产H片无码不卡在线视频| 色综合天天视频在线观看| 免费毛片a| 亚洲欧美日韩另类| 香蕉99国内自产自拍视频| 国产成人av大片在线播放| 久久婷婷综合色一区二区| 99在线小视频| 亚洲欧美极品| 高清国产va日韩亚洲免费午夜电影| 一本久道久久综合多人| 亚洲高清中文字幕在线看不卡| 97se亚洲| 国产一区二区视频在线| 小说 亚洲 无码 精品| 亚洲五月激情网| 亚洲人成亚洲精品| 高清码无在线看| 国产免费久久精品99re不卡| 色婷婷成人| a级免费视频| 免费三A级毛片视频| 永久在线精品免费视频观看| 亚洲成人黄色网址| 欧美另类第一页| 亚洲第一天堂无码专区| 国产视频一区二区在线观看 | 国产在线观看高清不卡| 欧美综合激情| 国产精品深爱在线| 午夜国产精品视频| 91精品视频网站| 91成人在线观看| 99国产精品一区二区| 日韩av手机在线|