《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于UML & SystemC的GPU幾何管線光柵化硬件建模
基于UML & SystemC的GPU幾何管線光柵化硬件建模
2019年電子技術應用第1期
陳 佳1,田 澤1,2,吳曉成1,樓曉強1
1.中航工業西安航空計算技術研究所,陜西 西安710068; 2.集成電路與微系統設計航空科技重點實驗室,陜西 西安710068
摘要: 架構與算法是決定GPU性能的重要因素,需要盡可能早地對其進行評估和驗證。提出基于統一建模語言(Unified Modeling Language,UML)的模型,詳述了針對GPU幾何管線架構和線圖元光柵化算法建模的過程及方法,并采用SystemC語言實現了事務級建模(Transaction-level Modeling,TLM)模型和仿真。驗證了架構和算法的正確性以及模型的有效性和可行性,為RTL設計提供了參考依據。
關鍵詞: UML TLM SystemC 建模仿真
中圖分類號: TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181691
中文引用格式: 陳佳,田澤,吳曉成,等. 基于UML & SystemC的GPU幾何管線光柵化硬件建模[J].電子技術應用,2019,45(1):23-26.
英文引用格式: Chen Jia,Tian Ze,Wu Xiaocheng,et al. Hardware modeling of GPU geometric pipeline rasterization based on UML & SystemC[J]. Application of Electronic Technique,2019,45(1):23-26.
Hardware modeling of GPU geometric pipeline rasterization based on UML & SystemC
Chen Jia1,Tian Ze1,2,Wu Xiaocheng1,Lou Xiaoqiang1
1.AVIC Computing Technique Research Institute,Xi′an 710068,China; 2.Aviation Key Laboratory of Science and Technology on Integrated Circuit and Micro-System Design,Xi′an 710068,China
Abstract: Architecture and algorithm determine the performance of GPU, and they need be verified as soon as possible. The paper brings forward a method of modeling based on UML(Unified Modeling Language), and describes the process of modeling GPU geometry engine unit architecture and line primitive rasterization algorithm in detail. Model and simulation are implemented in SystemC language. The model verifies the correctness of architecture and algorithm, and its own effectiveness and feasibility, provides reference to RTL design.
Key words : UML;TLM;SystemC;model simulation

0 引言

    隨著微電子技術的快速發展以及人們對顯卡的要求越來越高,應用于圖形處理的計算機從圖形工作站逐漸發展到單芯片圖形處理器芯片(GPU)直到現在可編程大規模并行處理器,集成電路的規模及復雜度成倍增加。

    在GPU的設計與開發中,需要在RTL設計之前盡可能早地對架構和算法進行驗證,為RTL設計提供參考依據。雖然RTL模型會提供更為精確的時間信息用于分析,但是開發比事務級建模(Transaction-Level Modeling,TLM)要困難,當進行結構優化時,帶有物理細節的模型要比TLM更難以更改。

    GPU畫圖的核心是幾何管線及光柵化,畫圖的基本圖元是點、線、三角形,本文搭建的GPU模型將幾何管線及光柵化封裝為幾何引擎單元,針對幾何引擎的架構以及線圖元光柵化的算法搭建了基于統一建模語言(Unified Modeling Language,UML)的模型,并采用SystemC語言實現了TLM模型和仿真,通過模型畫出的圖像證明架構和算法的正確性,以及模型的有效性和可行性。

1 UML建模語言

    UML是一種定義良好、易于表達、功能強大且普遍適用的建模語言,UML適用于以面向對象技術來描述任何類型的系統,而且適用于系統開發的不同階段,從需求規格描述直至系統完成后的測試和維護。在UML中,從任何一個角度對系統所做的抽象都可能需要用幾種模型圖來描述,而這些來自不同角度的模型圖最終組成了系統的完整模型。

2 TLM模型

    本文搭建的模型屬于TLM模型,TLM從更高的層次描述系統的行為,當要建模的目標系統十分復雜時,利用TLM快速建模,使得設計者在做RTL設計前就對目標系統有更清楚的理解,有利于硬件體系結構的性能分析和行為分析、軟硬件劃分和協同設計,并且事務級模型可帶有時間信息可以做周期性能分析,能夠提供非常快速的硬件仿真速度,是精確到周期的模型。

3 UML建模

    本文針對GPU的幾何引擎單元搭建UML模型,整個開發過程以系統的建模行為為驅動,在進行建模之前,應當分析系統需求,根據建模的不同階段,按照顆粒度從大到小,將單元的架構和算法一層層進行梳理。建模的方法和過程主要包括以下視圖。

3.1 類圖

    在面向對象的建模技術中,類、對象和它們之間的關系是最基本的建模元素。類圖描述了系統中的類及相互之間的各種關系,其本質反映了系統中包含的各種對象的類型以及對象間的各種靜態關系。

    本文搭建的幾何引擎單元(GEU)是GPU系統的子模塊,其接口輸入是染色器輸出控制單元(OCU),輸出是任務調度單元(JSU)、深度緩沖區(ZCACHE)和寄存器接口(SPMU)。染色器輸出控制單元將頂點數據發送給幾何引擎單元,幾何引擎單元處理完成后形成片元數據并輸出給任務調度單元,任務調度單元按照數據屬性類型封裝發送給下級單元,同時通過深度緩沖區接口將深度信息寫入深度緩沖區用來進行深度測試,以及通過寄存器接口更新寄存器以備后面單元計算使用。圖1就是幾何引擎單元的類圖,也稱為接口圖。

wdz2-t1.gif

3.2 結構圖

    結構圖顯示類元內部結構,包括此模塊與系統其他部分的交互點,也顯示類里各模塊的關系,這些模塊一起執行類的行為。用結構圖搭建幾何引擎單元的架構,可以清晰地展現出單元內部的組成部分,以及單元內部的數據通路。幾何引擎單元的架構根據圖形學的幾何管線和光柵化原理由以下7個模塊組成,分別是圖元組裝、平面剪裁、投影變換、三維剪裁、視窗變換、背面消隱以及光柵化單元,其結構圖建模如圖2所示。

wdz2-t2.gif

3.3 行為圖

    行為圖是對類的一種補充描述,描述了對象之間動態的交互關系,展示了此類對象所具有的可能的狀態以及某些事件發生時其狀態的轉移情況。對于計算機圖形學算法的理解首先要求具有較好的數學基礎、良好的空間思維和非常清晰的思路。從結構圖可以看出光柵化是幾何引擎單元的最后一步,由應用程序指定的頂點按照結構圖的流程執行到光柵化,完成了一系列空間轉換后,由頂點繪制成圖元就是光柵化單元所要做的事情。

    光柵化的算法是整個模型最復雜的算法,行為圖可以準確有條理地描述算法的思路和實現,邏輯性地表達出算法的細節及其數據流和控制流。本文重點針對線圖元光柵化算法,采用行為圖搭建了其模型,圖3是線圖元光柵化算法總體流程,其細節在每個子模塊的內部詳細描述。

wdz2-t3.gif

    本文從GPU的整體架構出發層次性地搭建模型,首先針對幾何引擎單元的外部互聯建模類圖,再根據原理細化單元內部結構圖,最后詳解線圖元光柵化的算法行為圖,準確描述出基于UML的模型搭建方法和過程。

4 SystemC建模及仿真

    本文采用SystemC語言實現了TLM模型以及仿真,SystemC是針對系統級和事務級設計流程的軟/硬件建模和仿真平臺,它在C++的基礎上擴充了硬件庫和仿真內核,具備硬件描述語言的基本特性。SystemC提供了支持硬件描述的類庫和解釋硬件描述的調度器,并從C++繼承了對軟件的描述能力,是一種可描述硬件和軟件的建模語言[1-2]。SystemC的最大特點在于可支持軟/硬件的協同設計和仿真,且較硬件描述語言有著極高的仿真速度。TLM將模型間的通信細節與函數單元或通信架構的細節分離出來,通信機制被建模成信道,并且以SystemC接口類的形式向模塊呈現[3-4]

    根據UML建模的過程,本文通過SystemC語言將模型實現并仿真。

4.1 根據UML類圖建模

    SystemC支持對模塊的定義,模塊實際上是一個類,內部包括了輸入/輸出端口、內部信號以及方法/線程[5]。SystemC定義的模塊可對應RTL代碼中的module。

    在完成各個模塊的定義和描述后,就需要對模塊進行端口綁定,以實現完整的功能架構。例如圖1中的任務調度單元和幾何引擎單元,任務調度單元通過端口向幾何引擎單元傳輸頂點屬性,則定義一個接口。同時分別在任務調度單元和幾何引擎單元定義此接口類型的端口,并在幾何引擎單元內部實現該接口函數。

    幾何引擎單元模塊的內部定義如下:

    wdz2-4.1-x1.gif

    wdz2-4.1-x2.gif

4.2 根據UML結構圖建模

    幾何引擎單元類G3D_GEU 內部例化7個子模塊:

    G3D_GEU_PAU  *pau;

    G3D_GEU_PCU  *pcu;

    G3D_GEU_PTU  *ptu;

    G3D_GEU_TDU  *tdu;    

    G3D_GEU_VTU  *vtu;

    G3D_GEU_BCU  *bcu;

    G3D_GEU_PRU  *pru;

4.3 根據UML的行為圖建模

    模塊內部的算法細節采用線程實現,線程則會在每個時鐘變化沿(可以是上升沿,下降沿,或者上升下降沿)被執行,并且引入了時序,可用于模型的時序性能分析[6]。一個模塊內部可以擁有多個線程,在光柵化模塊中就分別有實現點圖元、線圖元、三角形圖元光柵化的線程,本文以線圖元的線程為例描述建模方法。

    wdz2-4.3-x1.gif

    wdz2-4.3-x2.gif

4.4 模型仿真

    在完成SystemC建模后,需要對模型進行仿真調試。SystemC庫自帶仿真內核,用于調度事件與線程的執行順序。與Verilog和VHDL類似,SystemC的仿真內核支持delta cycle、支持立即事件觸發和延遲事件觸發。SystemC的仿真內核按照一定的規則對所有的線程進行調度與執行[7-8]。完成對模型的仿真調試后,模型可以作為RTL仿真的參考模型,與RTL進行聯合仿真,這是下一步的工作。

    本文搭建的GPU模型實現了OpenGL2.0標準,針對線圖元光柵化算法及幾何引擎單元架構做的仿真驗證實例圖如下,圖4和圖5分別是模型和Mesa啟用了點畫模式的線圖元。Mesa是國際官方組織發布的實現OpenGL應用程序接口純軟模型,不依賴于任何硬件。

wdz2-t4.gif

wdz2-t5.gif

    本文模型(圖4)設置的分辨率是2 048×1 536,Mesa(圖5)設置的分辨率是1 024×768,因此從兩個模型結果對比,圖4基本上是圖5密集度的兩倍,但是兩幅圖的點畫效果是一致的,說明幾何引擎的架構與線圖元光柵化算法正確。

5 結論

    本文基于UML視圖搭建了GPU幾何管線光柵化的模型,并通過SystemC語言進行了仿真驗證,快速地驗證系統架構和算法,為RTL設計提供參考依據;同時為RTL設計建立早期的驗證平臺,縮短驗證時間;并且可以作為RTL驗證平臺的參考模型,提高驗證的正確性和完整性;加速了GPU的軟硬件協同設計。

參考文獻

[1] SWAN S.An introduction to system level modeling in SystemC 2.0.cadence design systems[Z].2001.

[2] IEEE 1666-2011,IEEE standard for standard systemc language reference manual[S].2011.

[3] Open SystemC Initiative,SystemC 2.0 User’s Guide[Z].

[4] 張俊新.基于SystemC的事物級建模研究[D].武漢:武漢大學,2004.

[5] 王忠海,葉以正,喻明艷.使用SystemC 2.0進行SoC設計建模仿真[J].計算機仿真,2005,22(5):78-81.

[6] 唐進.SystemC架起了橋梁[J].中國集成電路,2005(5):44-46.

[7] 石柯.基于SystemC的嵌入式系統軟硬件協同設計[J].計算機應用研究,2002,19(6):117-119.

[8] 李揮,陳曦.SystemC電子系統設計[M].北京:科學出版社,2010.



作者信息:

陳  佳1,田  澤1,2,吳曉成1,樓曉強1

(1.中航工業西安航空計算技術研究所,陜西 西安710068;

2.集成電路與微系統設計航空科技重點實驗室,陜西 西安710068)

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 在线欧美日韩国产 | 欧美国产日韩911在线观看 | 亚洲午夜一区 | 久久久免费观成人影院 | 亚洲第6页 | 欧美三级日韩三级 | 一级国产在线观看高清 | 久久成人亚洲香蕉草草 | 午夜精品aaa国产福利 | 激情综合激情五月 | 精品国产成人系列 | 国产日韩欧美精品在线 | 你懂的视频在线 | 久久综合九色综合97_ 久久久 | 欧美成人a级在线视频 | 88国产经典欧美一区二区三区 | 国产成人综合亚洲亚洲欧美 | 亚洲成人午夜影院 | 久久精品一区二区三区不卡牛牛 | 亚洲精品人成网在线播放影院 | 欧美色图偷窥自拍 | 黄视频网站入口 | 亚洲日韩欧美一区二区在线 | 男女下面一进一出的视频免费 | 国产精品成人久久久久 | 精品国产免费一区二区 | 午夜院线| 欧美色成人 | 521色香蕉网在线观看免费 | 成人午夜视频免费 | 国产干美女| 免费精品录播大片黄满18周岁 | 男人趴在女人身上曰皮免费 | 密桃av | 福利午夜| 亚洲日本一区二区三区在线不卡 | 麻豆国产在线视频 | 天天看天天摸天天操 | 玖玖在线免费视频 | 中文字幕一区二区三区在线播放 | 日批免费在线观看 |