《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲精品无码久久毛片| 国产乱人伦偷精品视频| 99精品久久99久久久久| 成人区人妻精品一区二区不卡| 久久爰www免费人成| 欧美乱妇高清无乱码在线观看| 天天综合网天天综合色| 中文字幕在线观看网址| 日本肉体xxxx裸交| 二级毛片免费观看全程| 欧美又大粗又爽又黄大片视频黑人| 亚洲精品视频在线观看你懂的 | 国产成人亚洲午夜电影| 14又嫩又紧水又多| 在线观看亚洲精品专区| haodiaocao几万部精彩视频| 少妇被又大又粗又爽毛片久久黑人 | 免费精品一区二区三区在线观看 | 日本老头变态xxxx| 久久网免费视频| 樱桃直播免费看| 亚洲免费视频网址| 欧美成人一区二区三区在线视频| 亚洲欧美精品久久| 污污污污污污www网站免费| 亚洲色成人www永久网站| 狼人久久尹人香蕉尹人| 免费一级毛片在线视频观看| 精品久久久久香蕉网| 午夜性色一区二区三区不卡视频| 翁熄性放纵交换| 四虎影视永久免费视频观看| 色丁香在线观看| 国产一级小视频| 被窝影院午夜无码国产| 国产亚洲一区二区手机在线观看 | 欧美va在线观看| 亚洲av无码久久寂寞少妇| 最近最新最好的2018中文字幕| 亚洲一区二区三区免费在线观看 | 一本色道久久综合亚洲精品 |