亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        分離真?zhèn)螘r鐘的處理器FPGA 原型性能校準方法①

        2022-07-26 06:05:16鄭雅文吳瑞陽陳天奇汪文祥章隆兵
        高技術(shù)通訊 2022年5期
        關(guān)鍵詞:系統(tǒng)

        鄭雅文 吳瑞陽 陳天奇 汪文祥*** 章隆兵 王 劍③

        (*計算機體系結(jié)構(gòu)國家重點實驗室(中國科學(xué)院計算技術(shù)研究所) 北京 100190)

        (**中國科學(xué)院計算技術(shù)研究所 北京 100190)

        (***中國科學(xué)院大學(xué) 北京 100049)

        (****龍芯中科技術(shù)有限公司 北京 100190)

        0 引言

        近年來,國產(chǎn)高性能處理器自主研發(fā)成為國家戰(zhàn)略需要,并出現(xiàn)了龍芯、申威、飛騰、眾志等自主處理器。隨著高性能處理器設(shè)計技術(shù)的發(fā)展,處理器是否達到預(yù)期的性能指標成為設(shè)計者所關(guān)注的問題。硅前性能驗證是流片前查找性能問題、優(yōu)化性能瓶頸的重要手段,可以極大地減少設(shè)計流片的試錯成本,加快處理器設(shè)計迭代[1]。但隨著國產(chǎn)處理器設(shè)計復(fù)雜度和規(guī)模不斷增大,硅前驗證的難度和時間成本也隨之加大,占據(jù)整個周期的70% 以上[2],成為設(shè)計周期中亟待優(yōu)化的一環(huán)。

        如何快速而準確地評估性能是處理器硅前驗證的主要問題之一。目前基于寄存器傳輸級(register transfer level,RTL)的主要驗證平臺有仿真器[3]、硬件仿真加速器[4-5]和現(xiàn)場可編程門陣列(field programmable gate array,FPGA)原型系統(tǒng)[6-8]。隨著實際應(yīng)用變得越來越復(fù)雜,用于性能基準測試程序集也變大,如處理器性能基準測試SPEC CPU 2017 相比CPU 2006 動態(tài)指令數(shù)多了10 倍[9],仿真器上進行性能評估需要數(shù)年時間?;贔PGA 的硬件仿真加速器可加速RTL 的全系統(tǒng)仿真速度。硬件仿真加速器平臺一般運行主頻高達兆赫茲級別,且具有較好的可觀測性和調(diào)試性,如龍芯3 號處理器在Mentor Graphics 公司的Veloce2 系列硬件仿真加速器運行頻率為1 MHz,且可進行波形調(diào)試[10]。而FPGA 原型驗證平臺運行頻率能達到數(shù)十兆赫茲,遠高于硬件加速器,大幅加快了性能評估的速度[11]。FPGA 原型系統(tǒng)平臺通常采用大容量FPGA器件母板加豐富外設(shè)接口的子板構(gòu)成,支持全系統(tǒng)功能驗證和性能評估。

        但RTL 設(shè)計在FPGA 原型系統(tǒng)上進行性能評估與真實芯片相比存在誤差。由于FPGA 相比專用集成電路(application specific integrated circuit,ASIC)芯片,實現(xiàn)同樣的邏輯需要更大的面積,且布線結(jié)構(gòu)更復(fù)雜,導(dǎo)致導(dǎo)線延遲變長;另外,由于FPGA 資源有限,大型RTL 設(shè)計需要級聯(lián)幾個FPGA進行實現(xiàn),互聯(lián)線頻率限制了FPGA 運行主頻。頻率降低使得在FPGA 原型平臺上對雙倍速率(double data rate,DDR)內(nèi)存系統(tǒng)的模擬與真實機器不同。FPGA 原型平臺上內(nèi)存的周期性刷新間隔須與真實機器保持一致,但由于RTL 設(shè)計的頻率較低,導(dǎo)致內(nèi)存讀寫訪問頻度比真實機器低,同主頻下刷新頻率過高。刷新命令會延后讀寫命令的發(fā)送時機,對內(nèi)存系統(tǒng)延遲有影響。FPGA 原型系統(tǒng)的內(nèi)存刷新過多,增加了內(nèi)存延遲,成為性能誤差的主要來源。

        本文實現(xiàn)了一種通用的FPGA 原型校準方法,校準了內(nèi)存系統(tǒng)延遲,搭建了精確的原型性能評估系統(tǒng),為處理器的迭代改進提供了可靠的硅前性能數(shù)據(jù)。

        1 相關(guān)工作

        本節(jié)介紹了幾種常見的處理器FPGA 原型驗證平臺,分析存在的性能誤差問題,并比較基于FPGA原型的相關(guān)性能校準方法。

        1.1 處理器FPGA 原型驗證平臺

        FPGA 原型平臺常用于處理器RTL 的全系統(tǒng)驗證。Intel 搭建了幾款x86 架構(gòu)處理器的FPGA 原型驗證平臺。由于處理器的設(shè)計復(fù)雜度較高,在FPGA 上運行頻率不高,且越復(fù)雜的設(shè)計頻率越低。Intel 基于Virtex5 LX330 FPGA 搭建了Atom 處理器的全系統(tǒng)原型驗證平臺,處理器主頻可達50 MHz[12]?;赬ilinx Virtex4 LX200 FPGA 搭建了Pentium 處理器的全系統(tǒng)平臺,處理器主頻為25 MHz[13-14]。Intel Nehalem 亂序處理器由于設(shè)計規(guī)模變大,采用了包括Virtex4 和Virtex5 的多片F(xiàn)PGA 平臺,可運行在520 kHz[15]。

        隨著處理器設(shè)計規(guī)模逐漸變大,為每款處理器項目定制一個原型平臺費時費力,而通用性FPGA原型驗證平臺集成了一片或多片高容量高性能FPGA 芯片以滿足各種片上系統(tǒng)(system on chip,SoC)的驗證需求,運行頻率可達兆赫茲級別,例如S2C[6]、高性能專用集成電路原型系統(tǒng)(high-performance ASIC prototyping systems,HAPS)[7]、Protium[8]系列。為了支持全系統(tǒng)模擬,這些平臺都提供了豐富的外部設(shè)備接口,例如HAPS 上的內(nèi)存系統(tǒng)可以通過內(nèi)存子卡進行搭建。

        無論是定制的還是通用型的FPGA 原型平臺,最高頻率只有兆赫茲級別,而處理器芯片實際運行頻率通常在吉赫茲級別,因此面臨FPGA 運行主頻比芯片低的問題。這使得FPGA 原型系統(tǒng)上外部設(shè)備頻率與處理器系統(tǒng)頻率的關(guān)系與芯片不能完全一致,例如FPGA 上內(nèi)存頻率與處理器核頻率的比例可能遠高于真實機器的比例。并且,由于在FPGA上RTL 設(shè)計的內(nèi)存控制器的最高頻率受限于設(shè)計時序和FPGA 優(yōu)化,只能連接可工作在較低頻率的內(nèi)存,而一般內(nèi)存有最低工作頻率限制。處理器與內(nèi)存頻率差對功能驗證的影響不大,但卻給性能評估帶來了誤差。

        1.2 相關(guān)性能校準方法

        校準內(nèi)存系統(tǒng)延遲的主要方法是構(gòu)建內(nèi)存系統(tǒng)的時序模型。文獻[16-18]構(gòu)建了內(nèi)存的時序模型并與內(nèi)存廠商美光公司提供的RTL 參考模型進行校準。但由于需要模擬內(nèi)存控制器的時序,時序模型要包含事務(wù)調(diào)度器、內(nèi)存狀態(tài)跟蹤器、內(nèi)存訪問調(diào)度器等單元,使得構(gòu)建精確的時序模型變得復(fù)雜。為了簡化時序模型,文獻[19]使用統(tǒng)計得到的固定拍數(shù)作為內(nèi)存延遲的模擬,但這種模擬方法不夠準確,且對于不同平臺內(nèi)存延遲不完全一樣[20],而且這種方法只能通過在原本訪存通路延遲基礎(chǔ)上增加拍數(shù)來模擬內(nèi)存延遲,而SoC 上RTL 內(nèi)存控制器由于頻率降低,反而需要減少拍數(shù)進行時序模擬。因此,除非實現(xiàn)與內(nèi)存控制器完全一致的時序模型,否則無法對設(shè)計的內(nèi)存控制器進行性能驗證。

        文獻[21]通過在RTL 內(nèi)存控制器后連接高速的內(nèi)存控制器知識產(chǎn)權(quán)核(intellectual property,IP),避免了模擬內(nèi)存控制器時序的需要,而且消除了內(nèi)存的最低工作頻率的限制。但該文獻存在兩方面問題:(1)不支持常見的內(nèi)存讀寫命令背靠背傳輸。該文獻的實現(xiàn)不支持圖1(a)所示的背靠背內(nèi)存讀寫傳輸,只支持每次讀寫事務(wù)串行完成的情況,如圖1(b)所示。而這種背靠背傳輸由于能增大訪存帶寬,在內(nèi)存訪問中很常見。(2)對內(nèi)存系統(tǒng)只進行了功能驗證,未進行性能校準。本文改進了其實現(xiàn),使得支持常見的內(nèi)存訪問傳輸,并且與真實機器進行了性能校準。

        圖1 兩種內(nèi)存寫傳輸

        2 FPGA 原型的性能誤差分析與校準方法

        2.1 基于FPGA 原型的處理器性能評估方法

        2.1.1 處理器FPGA 原型平臺

        圖2 為基于FPGA 原型平臺搭建的通用處理器原型系統(tǒng)結(jié)構(gòu),該原型系統(tǒng)由FPGA 里的處理器、FPGA 上的DDR4 內(nèi)存子卡和外接的橋片板卡組成。FPGA 里的處理器包括處理器核、末級緩存、內(nèi)存控制器、互聯(lián)總線以及總線控制器等模塊;FPGA上的內(nèi)存子卡連接內(nèi)存集成到系統(tǒng)中;板卡由HyperTransport 總線與FPGA 上的處理器相連,提供其他外設(shè)接口,用于連接硬盤、網(wǎng)絡(luò)等設(shè)備。

        圖2 FPGA 原型系統(tǒng)結(jié)構(gòu)圖

        2.1.2 性能評估方法

        由于RTL 設(shè)計在FPGA 上無法達到真實芯片的運行頻率,因此FPGA 原型系統(tǒng)上需要整體降低RTL 設(shè)計的運行頻率,并通過主頻換算得到性能評估數(shù)據(jù)。與真實機器類似,FPGA 上各部分處于不同的時鐘域,大致可分為處理器核、內(nèi)存、總線幾個時鐘域。假設(shè)真實芯片中處理器核頻率為1.2 GHz,內(nèi)存頻率為800 MHz,但若FPGA 上處理器核頻率降至24 MHz,而內(nèi)存頻率仍為800 MHz,將導(dǎo)致內(nèi)存訪問延遲周期數(shù)比真實機器中的要少很多。為了在FPGA 原型系統(tǒng)上準確模擬真實情況,通常將FPGA上的各部分頻率比例關(guān)系與真實情況保持一致,整體將運行頻率按比例調(diào)低,調(diào)低的倍數(shù)為頻率縮放倍數(shù)。

        如式(1)所示,由于RTL 與芯片是同一套設(shè)計,所以同一時鐘域內(nèi)的拍數(shù)延遲是一致的,因此降頻后FPGA 上測得的性能分值可通過等比例縮放得到其模擬的真實機器的性能數(shù)據(jù)。例如將FPGA 上的核頻率調(diào)至24 MHz,內(nèi)存頻率為16 MHz,同時縮小50倍,則測試在FPGA 上得到的性能分值通過乘以頻率縮放的50 倍得到模擬的真實機器的性能分值。

        但上述計算方法只有在理想情況下才能得到準確的性能數(shù)據(jù)。在實際系統(tǒng)中,雖然FPGA 上頻率可以整體調(diào)低,但某些系統(tǒng)事件頻率沒有因此降低,且這些事件對性能有影響。例如時鐘中斷頻率由內(nèi)核的配置決定,同一內(nèi)核下FPGA 與真機的時間片長度相等,但由于FPGA 上處理器頻率低,同一長度的時間片中用于處理時鐘中斷的時間更長,使得用戶程序的時間片占用率很低,整體測試性能變差。為了在FPGA 和真機上得到同樣的用戶程序時間片占用率,本文通過降低FPGA 上內(nèi)核中的時鐘中斷頻率,使得FPGA 上時間片變長,最終使得FPGA 和真機用于時鐘中斷處理的時間占比一致。對于計算密集型性能測試,降低時鐘中斷頻率對系統(tǒng)調(diào)度產(chǎn)生的影響可以忽略不計。但并非所有事件都可以直接降低其發(fā)生頻率。典型的如內(nèi)存刷新頻率,其由內(nèi)存屬性而定,無法隨系統(tǒng)頻率降低,且刷新頻率對內(nèi)存延遲有影響,使得內(nèi)存敏感的測試程序仍存在較大的性能誤差,對內(nèi)存系統(tǒng)的校準成為整體性能校準的主要工作。

        2.2 FPGA 內(nèi)存系統(tǒng)誤差分析

        內(nèi)存系統(tǒng)[22]通常由內(nèi)存控制器、端口物理層(physical,PHY)和內(nèi)存組成。內(nèi)存用電容存儲數(shù)據(jù),由于電容存在漏電,需要不斷對存儲電容進行周期性充電操作才能保存正確的數(shù)據(jù),這種周期性數(shù)據(jù)讀寫即內(nèi)存的刷新操作。由于內(nèi)存刷新速率與工作頻率無關(guān),與內(nèi)存本身屬性有關(guān),因此內(nèi)存控制器發(fā)送刷新請求的頻率應(yīng)根據(jù)內(nèi)存屬性要求的刷新頻率,否則可能導(dǎo)致數(shù)據(jù)出錯。因此,雖然FPGA 上的內(nèi)存系統(tǒng)運行頻率較低,但由于與真實機器使用同樣的內(nèi)存,刷新頻率與真實機器一致,經(jīng)過主頻換算,會出現(xiàn)刷新頻率比同主頻下真實機器更高的情況。由于內(nèi)存控制器在發(fā)送刷新請求時會阻塞讀寫訪存請求,并且刷新請求使得后續(xù)訪存請求需要重新激活,因此刷新頻率變高會增加訪存延遲,導(dǎo)致性能下降。

        圖3 反映了刷新請求對訪存請求的影響。當(dāng)寫請求被刷新命令阻塞時,當(dāng)次寫到下一次寫需要經(jīng)過當(dāng)次寫完成、預(yù)充待刷新行、刷新該行、重新激活下一次寫和發(fā)送下一次寫等階段。其中,WL指寫延遲,BL指突發(fā)傳輸長度,tWR指寫恢復(fù)時間,用于計算當(dāng)次寫完成時間;tRP指行預(yù)充電有效周期,用于計算預(yù)充完成時間,tRFC指刷新周期,用于計算刷新完成時間;tRCD指行有效到列有效時間,用于計算重新激活的時間。而未被阻塞情況下可直接在當(dāng)次寫發(fā)送后的tCCD延遲之后發(fā)送下一次寫。對比正常寫請求,以DDR4(假設(shè)速度為2133 bps,即tck=0.938 ns)為例,兩次刷新間周期tREFI是7.8 μs,WL=14tck,BL=8tck,tWR=15 ns,tRP=15 ns,tRFC=350 ns,tRCD=15 ns,tCCD=4tck,一次刷新阻塞訪存請求帶來的性能損失大約為

        圖3 刷新阻塞訪存請求示意圖

        由于難以準確統(tǒng)計被刷新阻塞的訪存指令的次數(shù),且由于訪問延遲變長,各種隊列的阻塞加劇,產(chǎn)生其他級聯(lián)反應(yīng),因此在FPGA 原型系統(tǒng)上無法準確估算訪存延遲。

        2.3 分離真?zhèn)螇ι蠒r鐘的內(nèi)存系統(tǒng)校準方法

        2.3.1 內(nèi)存系統(tǒng)校準方法

        如圖4 所示,FPGA 內(nèi)存系統(tǒng)延遲不準是由于系統(tǒng)中存在兩個墻上時鐘,即真墻上時鐘和偽墻上時鐘。這里對兩個墻上時鐘進行定義:真墻上時鐘是真實時間下的時鐘,與真實機器時鐘一致,也是內(nèi)存刷新頻率依據(jù)的時鐘;偽墻上時鐘是由于FPGA運行主頻降低產(chǎn)生的墻上時鐘,比真墻上時鐘慢的倍數(shù)為頻率降低的倍數(shù),為處理器、內(nèi)存控制器等運行的時鐘。由于運行于偽墻上時鐘的內(nèi)存控制器需要按真墻上時鐘的頻率向內(nèi)存發(fā)送刷新,以至刷新命令相比訪存命令頻率過高,訪存命令更容易被阻塞導(dǎo)致整體延遲變大。而真實機器上由于刷新命令和訪存命令都是按真墻上時鐘發(fā)送,因此與FPGA的情況不同。這使得FPGA 上內(nèi)存延遲與真實機器相比有誤差。

        圖4 內(nèi)存校準方法示意圖

        本文的校準方法是將內(nèi)存控制器發(fā)送的訪存命令和刷新命令都調(diào)至偽墻上時鐘頻率,使得訪存命令被刷新阻塞的情況與真實機器一致。但內(nèi)存所需的刷新頻率是按真墻上時鐘計算的,將刷新頻率調(diào)至偽墻上時鐘會降低內(nèi)存的刷新頻率。由于內(nèi)存不及時刷新會導(dǎo)致保存的數(shù)據(jù)出錯,因此需要增加一個運行在真墻上時鐘下的內(nèi)存控制器IP 用于向內(nèi)存發(fā)送刷新請求。這使得內(nèi)存系統(tǒng)有兩個內(nèi)存控制器級聯(lián),RTL 實現(xiàn)的內(nèi)存控制器連接處理器核,處于偽墻上時鐘域;新增的內(nèi)存控制器IP 處于真墻上時鐘域,并連接內(nèi)存。兩個內(nèi)存控制器之間通過轉(zhuǎn)接橋?qū)⒃袃?nèi)存控制器的請求轉(zhuǎn)發(fā)到新增的內(nèi)存控制器,并由轉(zhuǎn)接橋進行跨時鐘域轉(zhuǎn)換。

        2.3.2 內(nèi)存系統(tǒng)校準實現(xiàn)

        (1) 整體結(jié)構(gòu)

        如圖5 所示,本文實現(xiàn)的FPGA 原型內(nèi)存系統(tǒng)包括RTL 設(shè)計的內(nèi)存控制器、雙速率動態(tài)存儲物理層接口(DDR PHY interface,DFI)[23]到高級擴展接口(advanced extensible interface,AXI)[24]的轉(zhuǎn)接橋、內(nèi)存控制器IP、DDR 內(nèi)存。相比于原本結(jié)構(gòu),改進后的內(nèi)存系統(tǒng)將原本的PHY 換成了新設(shè)計的偽PHY(pseudo PHY),其中核心部件為DFI-AXI 轉(zhuǎn)接橋,用于連接RTL 設(shè)計的內(nèi)存控制器和高速內(nèi)存控制器IP。其中,RTL 設(shè)計的內(nèi)存控制器運行在偽墻上時鐘域,而高速內(nèi)存控制器IP 和內(nèi)存運行在真墻上時鐘域,二者之間通過DFI-AXI 轉(zhuǎn)接橋內(nèi)的異步先入先出隊列(first in first out,FIFO)進行跨時鐘域信號轉(zhuǎn)換。

        圖5 校準內(nèi)存系統(tǒng)結(jié)構(gòu)圖

        通過上述設(shè)計,RTL 設(shè)計的內(nèi)存控制器產(chǎn)生的內(nèi)存刷新請求也等比例地調(diào)整為偽墻上時鐘所對應(yīng)的頻率關(guān)系,因而各訪存事件與其產(chǎn)生的性能影響與真實機器保持比例一致。另一方面,由于內(nèi)存真正的刷新請求是由工作在真墻上時鐘的高速內(nèi)存控制器IP 發(fā)出的,與真實機器的內(nèi)存刷新周期相同,因此功能正確性不受影響。

        (2) DFI-AXI 轉(zhuǎn)接橋的實現(xiàn)

        DFI-AXI 轉(zhuǎn)接橋?qū)?nèi)存控制器發(fā)送的DFI 接口標準[23]讀/寫請求轉(zhuǎn)換成AXI[24]接口標準的請求,并轉(zhuǎn)發(fā)給內(nèi)存控制器IP。DFI 協(xié)議與AXI 協(xié)議有以下3 個方面的主要區(qū)別。

        1)地址表示方法不同。DFI 協(xié)議的地址是內(nèi)存尋址地址,包括通道選擇地址、bank 組地址、bank 地址、行地址、列地址,而AXI 協(xié)議傳輸?shù)牡刂肥俏锢淼刂?。因?DFI 接口上的地址信號不能直接用于AXI 接口的地址信號發(fā)送。

        2)接口信號不同。DFI 協(xié)議接口信號根據(jù)功能可分為命令、地址等控制信號、讀數(shù)據(jù)信號、寫數(shù)據(jù)信號;AXI 協(xié)議接口信號可分為讀地址、讀數(shù)據(jù)、寫地址、寫數(shù)據(jù)、寫響應(yīng)通道信號。

        3)時序控制不同。AXI 協(xié)議各類信號相對獨立,沒有時序的要求;DFI 協(xié)議的控制信號與數(shù)據(jù)信號之間有時序要求,由內(nèi)存參數(shù)控制。

        DFI-AXI 轉(zhuǎn)接橋?qū)FI 接口上的信號根據(jù)協(xié)議進行譯碼;對譯碼得到的讀寫訪存請求,根據(jù)AXI協(xié)議轉(zhuǎn)換成地址、數(shù)據(jù)位寬、數(shù)據(jù)等信號;將待發(fā)送到AXI 接口上的信號通過異步FIFO 轉(zhuǎn)換到內(nèi)存頻率并發(fā)送。

        轉(zhuǎn)接橋可分為命令譯碼單元、地址合成單元、讀/寫地址及數(shù)據(jù)狀態(tài)機、讀/寫地址及數(shù)據(jù)異步FIFO 等模塊。其中,命令譯碼單元負責(zé)識別DFI 接口上的讀寫訪存相關(guān)命令,過濾不需要繼續(xù)傳遞的命令。地址合成單元將內(nèi)存尋址地址重構(gòu)成物理地址。根據(jù)DDR 協(xié)議,一個完整的訪問需要先激活某一行,再對該行的某一列進行讀寫。由于同時可能有很多行被激活,因此需要將所有被激活的行存下來,只要遇到相應(yīng)的bank 列讀寫命令,則將已激活的該bank 行地址取出,與訪存命令的列地址重新拼合成物理地址。命令譯碼單元產(chǎn)生的控制信號控制讀寫狀態(tài)機將地址、數(shù)據(jù)等信息通過異步FIFO 傳遞到AXI 接口。異步FIFO 將低頻的偽墻上時鐘域信號轉(zhuǎn)成高頻的真墻上時鐘域信號,使得輸出的AXI 接口信號與內(nèi)存控制器IP 頻率匹配。

        為了支持讀寫背靠背請求的傳遞,本文采用了將地址和數(shù)據(jù)狀態(tài)機分離的設(shè)計方法,對命令地址和數(shù)據(jù)通道分別進行處理,使得可傳輸請求帶寬更高。與文獻[21]以一次傳輸事務(wù)為單位的狀態(tài)機實現(xiàn)方法不同,分離后地址和數(shù)據(jù)狀態(tài)機可以分別接收不同傳輸事務(wù)的地址和數(shù)據(jù),無需上一次的數(shù)據(jù)傳輸完成后再進行下一次的地址傳輸,地址、數(shù)據(jù)可以按序接續(xù)發(fā)送,實現(xiàn)了讀寫請求背靠背傳輸?shù)闹С帧?/p>

        (3) 內(nèi)存延遲的校準

        內(nèi)存延遲的校準主要根據(jù)DFI 協(xié)議對讀請求的數(shù)據(jù)返回延遲進行校準。根據(jù)DFI 協(xié)議,寫請求沒有握手,讀請求需要在指定內(nèi)存參數(shù)拍數(shù)內(nèi)返回讀數(shù)據(jù),所以內(nèi)存控制器到內(nèi)存的延遲只受讀數(shù)據(jù)返回延遲的影響。因此,FPGA 和真機采用同一套內(nèi)存配置參數(shù),只要在FPGA 上滿足在同一內(nèi)存參數(shù)指定拍數(shù)內(nèi)返回讀數(shù)據(jù),就能達到內(nèi)存控制器訪問內(nèi)存的延遲拍數(shù)與真實機器一致的校準目標。

        在內(nèi)存參數(shù)指定的拍數(shù)內(nèi),內(nèi)存控制器IP 需要完成訪問內(nèi)存并返回讀數(shù)據(jù)。如果內(nèi)存控制器IP需要刷新內(nèi)存,將會延長返回延遲。為了保證在指定拍數(shù)內(nèi)控制器IP 一定能返回讀數(shù)據(jù),將RTL 設(shè)計的內(nèi)存控制器的運行頻率適當(dāng)調(diào)低,內(nèi)存頻率調(diào)高,使得內(nèi)存參數(shù)要求的返回延遲變長,進而保證即使在內(nèi)存刷新的情況下也能在該拍數(shù)內(nèi)返回讀數(shù)據(jù)。而一般FPGA 上內(nèi)存控制器運行頻率較低,所以不需要額外降頻也能滿足返回拍數(shù)要求。

        3 實驗與結(jié)果分析

        本文基于龍芯3 號處理器搭建的FPGA 原型平臺進行實驗。通過實驗對比了內(nèi)存校準前后的FPGA 原型平臺上RTL 設(shè)計的性能分值,并與該設(shè)計流片后的真實機器的性能分值進行對比。

        本文使用Synopsys HAPS-80 S52 作為FPGA 原型平臺。HAPS-80 S52 原型驗證平臺提供了2 個Xilinx Virtex UltraScale XCVU 440 FLGA 2892 FPGA芯片和豐富的接口用于擴展。使用HAPS-80 S52 搭建了原型系統(tǒng),連接了DDR4_HT3 作為內(nèi)存子卡,外接自定制板卡提供南北橋和I/O 資源。

        實驗原型系統(tǒng)基于龍芯3 號處理器搭建,由1個亂序4 發(fā)射64 位GS464 系列處理器核、1 級AXI交叉開關(guān)總線、片上共享高速緩存、2 級AXI 交叉開關(guān)總線、內(nèi)存控制器以及IO 控制器等模塊構(gòu)成的FPGA 原型,并由HyperTransport 總線連接橋片提供其他外設(shè)接口用于連接串口、硬盤、網(wǎng)絡(luò)等設(shè)備。

        為了盡量減少性能測試程序的運行環(huán)境差距,在FPGA 原型系統(tǒng)與真實機器上均采用Linux 4.19.73內(nèi)核,測試程序使用同一二進制,均測試單核單線程性能。并且,FPGA 與真機使用同一套RTL 設(shè)計和配置。如表1 所示,真實機器與FPGA系統(tǒng)上RTL 處理器主頻和內(nèi)存控制器頻率的比例關(guān)系一致,FPGA 系統(tǒng)上的性能分值經(jīng)過頻率換算后與真實機器進行比較。另外,真實機器和FPGA原型平臺的各級cache 和內(nèi)存大小一樣,兩者使用同樣的內(nèi)存參數(shù)。

        表1 真機與

        本文使用lmbench 3.19 中的訪存延遲測試lat_mem_rd[25]、訪存帶寬測試stream[26]程序、處理器性能基準測試集SPEC CPU 2006[27]作為性能測試程序集,SPEC CPU 2006 測試使用train 輸入集進行測試。

        圖6 顯示了對各級訪存層次的訪問延遲的測試,在越過每級訪存層次的容量時都會有訪問延遲的陡增,分別顯示了各級cache 和內(nèi)存的訪問延遲。對比各級訪問延遲發(fā)現(xiàn),對于各級cache,FPGA 校準前后誤差均不大。但FPGA 校準前對內(nèi)存訪問延遲的模擬誤差較大,為18.26%,校準后基本接近真實機器的訪問延遲,誤差僅為-0.72%。這表明經(jīng)過校準,內(nèi)存訪問延遲基本準確。

        如圖7 所示,FPGA 校準前由于內(nèi)存延遲偏大,因此測得內(nèi)存帶寬比真實機器低20%以上;經(jīng)校準后FPGA 原型系統(tǒng)運行stream 測試程序與真機相比誤差均小于2%。測試本身存在一定的波動范圍誤差。實驗結(jié)果反映了本文提出的內(nèi)存校準方法是有效的。

        圖7 FPGA 校準前后stream 測試結(jié)果比較

        如圖8 所示,FPGA 校準前SPEC CPU 2006 測試部分誤差較大,誤差最大的測試459.GemsFDTD 高達40%,其余測試如433.milc、437.leslie3d、470.lbm誤差在20%以上,429.mcf、410.bwaves、450.soplex誤差在10%以上,平均誤差為7.49%。經(jīng)校準后FPGA 上運行SPEC2006 測試誤差最高僅為2%,大部分誤差小于1%,平均誤差為0.36%。由于測試本身有一定的波動范圍誤差,因此校準后FPGA 原型平臺可以獲得較準確的SPEC CPU 2006 性能分值。

        圖8 FPGA 校準前后SPEC CPU2006 測試結(jié)果比較

        實驗結(jié)果表明,經(jīng)過校準后的FPGA 原型系統(tǒng)對于計算密集型和內(nèi)存敏感型的測試都能獲得較為準確的性能數(shù)據(jù)。

        4 結(jié)論

        本文基于分離真?zhèn)螇ι蠒r鐘提出了一種通用的FPGA 原型系統(tǒng)性能校準方法,解決了FPGA 原型系統(tǒng)上內(nèi)存延遲不準和用戶程序時間片占用率過低的問題,使得在FPGA 原型設(shè)計平臺上性能評估時誤差在2%以下。本文提出的方法理論上適用于任何真墻上時鐘和偽墻上時鐘并存的系統(tǒng)校準,具有一般性意義。并且,本文提出校準方法的實現(xiàn)與設(shè)計耦合度很低,因此對于不同設(shè)計及平臺不需要重新進行性能校準,具有通用性。校準后的FPGA 原型驗證平臺為硅前性能分析提供了更快速準確的解決方案,相對于硬件仿真加速器達到數(shù)十倍的速度提升,成本數(shù)十倍降低,使得性能評估可以運行更大的測試程序,獲得更完備且可信的評估結(jié)果。

        雖然本文實現(xiàn)了在FPGA 原型平臺上對計算、訪存密集型測試的準確評估,但降低時鐘中斷頻率實際上會對IO 訪問延遲帶來影響。后續(xù)工作將進一步評估降低時鐘中斷頻率對IO 訪問密集型測試性能產(chǎn)生的影響,進一步完善FPGA 原型性能驗證平臺。

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
        亚洲五月婷婷久久综合| 97日日碰人人模人人澡| 无码人妻一区二区三区在线视频| 有码精品一二区在线| 无码人妻久久一区二区三区不卡| 综合网自拍| av在线免费播放网站| 国产成人精品人人做人人爽97| 夫妇交换性三中文字幕| 超碰97资源站| 丰满少妇大力进入av亚洲| 亚洲第一无码精品久久| 久久精品国语对白黄色| 国产精品国产三级国产av中文| 欧美俄罗斯40老熟妇| 欧美日韩亚洲国产千人斩| 亚洲国产成人av第一二三区| 亚洲av日韩一区二区| 男女上下猛烈啪啪免费看| 欧美一级在线全免费| 日韩精品视频在线观看免费| 手机av在线播放网站| 精品国际久久久久999波多野| 色噜噜狠狠色综合成人网| 日本a在线天堂| 日本韩国亚洲三级在线| 在线看无码的免费网站| 亚洲av成人一区二区三区av| 亚洲精品一品二品av| 国产精品网站91九色| 中文字幕+乱码+中文字幕一区| 精品 无码 国产观看| 亚洲中字永久一区二区三区| 狠狠色丁香婷婷综合潮喷| 国产精品久久久久电影网| 超碰性爱| 日本黑人乱偷人妻在线播放| 国产午夜福利100集发布| 亚洲欧美另类精品久久久| 隔壁的日本人妻bd高清中字| 亚洲精品久久7777777|