《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 時鐘共享多線程處理器SIMD控制器設計與實現
時鐘共享多線程處理器SIMD控制器設計與實現
2016年電子技術應用第11期
劉 歡1,韓俊剛1,李卯良2,楊 錚1
1.西安郵電大學 計算機學院,陜西 西安710121;2.西安郵電大學 電子工程學院,陜西 西安710121
摘要: 針對圖形圖像處理器中指令與數據加載以及數據收集的問題,設計和實現了一種時鐘共享多線程處理器中的SIMD控制器,完成相關SIMD指令的發送、數據的加載和數據的收集。該控制器以實現高效的數據級并行計算為目標,采用有限狀態機實現了前向處理單元、行控制器和列控制器的設計。實驗結果表明,所設計的專用硬件電路能夠有效提高圖形圖像處理器處理并行數據的能力。
中圖分類號: TP302
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.11.006
中文引用格式: 劉歡,韓俊剛,李卯良,等. 時鐘共享多線程處理器SIMD控制器設計與實現[J].電子技術應用,2016,42(11):29-32.
英文引用格式: Liu Huan,Han Jungang,Li Maoliang,et al. Design and implementation of SIMD controller for a shared-clock multithreading processor[J].Application of Electronic Technique,2016,42(11):29-32.
Design and implementation of SIMD controller for a shared-clock multithreading processor
Liu Huan1,Han Jungang1,Li Maoliang2,Yang Zheng1
1.School of Computer Science,Xi′an University of Posts and Telecommunications,Xi′an 710121,China; 2.School of Electronic Engineering,Xi′an University of Posts and Telecommunications,Xi′an 710121,China
Abstract: Aim at the issues that graphic processor loads commands data and collects data,design and implement a shared-clock multithreading processor SIMD controller, to complete SIMD instructions sending,data loading and data collection. In order to achieve efficient data-parallel computing as the goal, we implement forward-processing unit, controllers and controller design with finite-state machine. Experimental results show that, using the design of dedicated hardware can improve the graphics processor's ability to handle parallel data.
Key words : multi-threaded processor;SIMD controller;data-level parallel;state machine

0 引言

    隨著并行計算和集成電路的不斷發展,如何有效地提高處理器的并行處理性能已經成為熱點問題。傳統處理器通過開發指令級并行(Instruction Level Parallelism,ILP)[1]來提高處理器的性能,但硬件的復雜度及功耗等因素影響了處理器的性能。因此設計者們紛紛把目光投向更高層次的線程級并行(Thread Level Parallelism,TLP)[1-3]技術,時鐘共享多線程處理器就是在這種背景下產生的。多線程這個概念最先由美國加州大學Tullsen等提出的,并提出了SMT[4-5]處理器模型。這種結構通過資源競爭和資源動態共享的方式使所有的處理單元共同活躍,充分提高了資源利用率。本文根據時鐘共享多線程處理器的結構,在多核處理器[6-7]的基礎上設計實現了一種SIMD控制器,并且對電路進行了功能驗證和FPGA驗證。

1 整體硬件結構

    時鐘共享多線程處理器是由16個處理單元(PE)互聯構成的一個4×4二維陣列,它主要包括前向處理單元(FEP)、存儲管理器(mem_man)、調度器(Sche)和協處理器(ACCL)。整體結構如圖1所示。

wdz4-t1.gif

    FEP(前向處理單元)模塊:接收外部CPU下發的配置信息、初始化指令和數據、預存數據加載到buffer_memory中、回收計算結果、構建整個陣列進行SIMD運算等。

    Sche(調度器)模塊:由四個行控制器(Row Controller,CRi)組成。每一個行控制器用來實現SIMD運行模式的構建、并將前向單元發送的初始化指令和數據、配置信息,發送給當前行的各個PE。

    mem_man(存儲管理)模塊:由四個列控制器(Column Controller,CWj)組成。每一個列控制器用來預存數據和回收計算結果。

    ACCL(協處理器)模塊:每四個處理單元之間共享使用一個協處理器,處理單元可以直接調用該協處理器完成特殊函數運算。

2 時鐘共享多線程處理器SIMD控制器

    SIMD控制器是由一個前向處理單元(FEP)、一個調度器(Sche)、一個存儲管理(mem_man)構成,其中mem_man模塊由4個列控制器組成,sche模塊由4個行控制器組成,每一列對應一個列控制器,每一行對應一個行控制器。SIMD控制器處于整個時鐘共享多線程處理器結構的最頂層,控制該4×4陣列的運行和調度處理。SIMD控制器具體實現功能如下:

    (1)執行整個時鐘共享多線程處理器的初始化,也就是說對各個基本處理單元的指令存儲和數據存儲進行加載;

    (2)為提高整個時鐘共享多線程處理器的運行效率,可對基本處理單元所需數據和相關指令進行預存;

    (3)在基本處理單元運算過程中,可進行動態數據加載和讀取;

    (4)對計算結果進行回收,并實時監測基本處理單元的運行狀態。

2.1 SIMD控制器整體結構

    根據時鐘共享多線程處理器系統整體介紹和該系統具有的基本特征,以及SIMD控制器功能的確定和功能的劃分,可以確定SIMD控制器的整體結構,如圖2所示。

wdz4-t2.gif

    圖2中整個時鐘共享多線程處理器由PC控制發送數據和回收計算結果,通過PC機將按照數據包格式將數據、指令以及控制信息發送給FEP,FEP通過解析包頭,產生控制信號,將數據或者指令發給行列控制器進而控制PE陣列。

2.2 前向處理單元的設計與實現

    前向處理單元主要完成整個基本陣列處理單元的控制,具體功能有:初始化FEP存儲、控制整個陣列中PE單元實現SIMD運算、采用廣播的形式初始化行列控制器和配置線程管理器信息、讀取運算結果、查詢PE執行的狀態等。具體結構如圖3所示。

wdz4-t3.gif

    外部PC將指令和數據寫入FIFO0,接收控制模塊檢測FIFO0的fifo0_empty信號是否有效。當fifo0_empty無效表示FIFO0不為空,此時接收控制模塊開始讀取FIFO0中的數據,將讀取來的數據包頭進行解析,產生相應的控制信號,并將數據包頭及之后攜帶的數據寫入FIFO1或FEP指令存儲中。其中寫入到FIFO1時要查看FIFO1的fifo1_almost_full信號是否有效,也就是FIFO1幾乎滿信號是否為高,如果為高,則不能寫入數據,并反饋此信息讓外部PC停止發送數據;否則,將數據寫入FIFO1中。

    當發送模塊檢測FIFO1不空,也就是fifo1_empty信號時開始讀取數據,并將讀出的數據廣播給行列控制器,由行列控制器解析判斷是否接收此數據。對于行控制器,數據首先廣播給RC0控制器,如果RC0解析判斷該數據不是發送給該行,則RC0將數據發送給RC1,以此類推。

    當外部PC發送的是讀取指令或數據命令時,也是通過數據包將相關控制器信息以廣播的形式發送出去,然后根據FIFO2的幾乎滿標志信號fifo2_almost_full來判斷是否將回收的數據寫入FIFO2中,如果fifo2_almost_full幾乎滿信號為高,則阻塞;否則,將數據寫入FIFO2。通過讀控制模塊來檢測FIFO2是否為空,即判斷fifo2_empty信號是否有效,如果無效,則將FIFO2的數據讀出,寫入到FIFO3中,供外部PC讀取;否則,阻塞直到讀取操作完成。當外部CPU需要讀取前向處理單元存儲或者行控制器中的SIMD指令時,也發送相應的指令從前向處理單元存儲中或者從4個行控制器中讀取SIMD指令;如果整個陣列進行SIMD運算,則發送SIMD請求給前向處理單元,前向處理單元中的接收模塊檢測到該請求后,將前向處理單元存儲中的SIMD指令發送給下一級的4個行控制器以完成該SIMD運算,最后,發送一個請求指令來結束SIMD的運算模式。

2.2.1 數據接收控制模塊的實現

    數據接收模塊的功能是:檢測FIFO0中的空滿信號,如果FIFO0不為空,則讀取該數據,并對數據包包頭進行解析,解析的相關命令可將SIMD指令寫入前向處理單元存儲或者將MIMD指令或者數據以及SIMD指令寫入FIFO1中,等待數據廣播;當根據解析的數據包信息從FIFO2中讀取相關指令或者數據,將讀取的數據寫入FIFO3以供外部CPU讀取;如果解析為控制整個陣列單元來執行SIMD運行模式時,則狀態跳轉到SIMD運行模式狀態,將整個基本陣列單元構建成SIMD運行模式。該前向處理單元的數據接收模塊采用狀態機實現,狀態轉移圖如圖4所示。

wdz4-t4.gif

2.2.2 數據發送控制模塊的實現

    數據發送模塊將外部PC發送的初始化數據進行下發,其具體實現功能是檢測FIFO1的空信號和幾乎滿信號,如果FIFO1不空而且行和列控制器處于空閑狀態時,則負責將FIFO1中的指令或者數據以廣播的形式發送給4個列控制器和第一個行控制器。狀態轉移如圖5所示。

wdz4-t5.gif

2.3 行控制器設計與實現

    行控制器總體結構如圖6所示,由1個RC_CTRL控制單元、1個深度為1 K寬度為48 bit的SIMD指令存儲(I-MEM,為RAM)和1個深度為16寬度為10 bit的索引表組成。組合邏輯電路部分主要負責判斷是否為加載給當前行控制器的指令/數據,若不是該行操作,則將指令/數據發送給下一個行控制器;若是,則將對應指令/數據發送到RC_CTRL模塊進行相應操作。索引表(INDEX_MEM)如表1所示,為一個寬度為10深度為16的RAM,主要用于存儲SIMD指令的基址,每一個基址都對應一段完整的SIMD指令。行控制器的核心部分為RC_CTRL模塊,該模塊狀態轉移圖如圖7所示。

wdz4-t6.gif

wdz4-b1.gif

wdz4-t7.gif

    RC_CTRL模塊按照各個功能點歸納狀態轉移圖,主要包括初始化數據和數據的回收、SIMD運行模式和MIMD運行模式的切換等。初始化數據和數據回收的狀態轉移圖如圖7所示。

2.4 列控制器設計與實現

    列控制器主要完成了整個陣列處理單元共享存儲的數據加載、數據的動態加載和數據回收。前向處理單元采用廣播的形式將指令和數據廣播給行、列控制器,當列控制器檢測到是初始化數據(包括MIMD數據和SIMD數據)時,則將數據存儲到列存儲中;當檢測到是對列存儲數據的讀取操作時,列控制器則將所需數據從列存儲中讀取給前向處理單元;當列控制器檢測到是給PE動態讀取數據請求時,則將列存儲中對應的數據廣播給PE。

    列控制器結構框圖如圖8所示,主要由1個Init_Ctrl(初始化控制器)、1個Dynamic_Ctrl(動態控制)和一個DMEM(數據存儲)3部分組成。Init_Ctrl模塊主要用于對初始化加載數據進行控制及完成外部對計算結果數據的讀取操作;Dynamic_Ctrl模塊主要用于對來自PE動態寫入或者讀取列存儲的數據進行控制;DMEM模塊為一個寬度為32 bit深度為1 M的RAM。

wdz4-t8.gif

3 仿真與FPGA驗證

    本文采用Xilinx公司的ISE工具進行電路綜合,FPGA選用Xilinx公司的XC7V2000t-2fhg1761,電路的最高頻率可達到316.877 MHz。

    根據以上SIMD控制器的主要實現功能,設計了測試用例,主要針對SIMD控制器的基本功能的測試,包含一系列的數據和指令初始化、SIMD運行模式數據結果的回收等。針對SIMD運行模式主要測試了單行的SIMD運行模式,并依次測試了2行、3行以及4行同時執行SIMD運行模式。

    該電路資源利用率如圖9所示。

wdz4-t9.gif

    關鍵路徑如圖10所示。

wdz4-t10.gif

4 總結

    本文對時鐘共享多線程處理器結構進行深入研究,采用了有限狀態機設計并實現了SIMD控制器,并對電路進行了功能驗證和FPGA驗證,工作頻率為316.877 MHz。結果表明,該SIMD控制器電路能夠滿足圖形圖像處理中的需求,電路工作正常并且電路具有良好的可擴展性,實用性強,能夠滿足時鐘共享多線程處理器的要求。

參考文獻

[1] UNGERER T,ROBICB,SILC J.Multithreaded processors[J].Computer Journal,2002,45(1):320-348.

[2] BRUNIE N,COLLANGE S,DIAMOS G.Simultaneous branch and warp interweaving for sustained GPU performance[J].Acm Sigarch Computer Architecture News,2012,40(40):49-60.

[3] SANKARALINGAM K,NAGARAJAN R,LIU H,et al.Exploiting ILP,TLP,and DLP with the polymorphous TRIPS architecture[J].IEEE Micro,2003,31(6):422-433.

[4] EGGERS S J,EMER J S,LEVY H M,et al.Simultaneous multithreading:a platform for next-generation processors[J].IEEE Micro,1997,17(5):12-19.

[5] 張駿,樊曉椏,劉松鶴.多核、多線程處理器的低功耗設計技術研究[J].計算機科學,2007,34(10):301-305.

[6] 黃虎才.多態陣列處理器的并行計算研究[D].西安:西安郵電大學,2014.

[7] 李濤,楊婷,易學淵,等.螢火蟲2:一種多態并行機的硬件體系結構[J].計算機工程與科學,2014,36(2):191-200.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩毛片欧美一级国产毛片 | 亚洲男人天堂2018 | 亚洲精品www久久久久久久软件 | 嫩草一区二区三区四区乱码 | 国产成人一区二区三区在线视频 | 日韩高清一级毛片 | 国产精品1区2区3区在线播放 | 国产精品九九视频 | 欧美一区二区三区免费播放 | 99精彩免费观看 | 亚洲欧美网站 | 三级毛片免费观看 | 毛片1毛片2毛片3毛片4 | 在线视频亚洲 | 欧美成性色 | baoyu121永久免费网站 | 日本视频三区 | 亚洲综合亚洲综合网成人 | 亚洲福利精品一区二区三区 | 亚洲国产欧美自拍 | 亚洲乱强 | 午夜两性视频免费看 | 久久久久久久久久久福利观看 | 欧美极品video粗暴 | 久草视频资源 | 欧美一级毛片免费看 | 一本一本久久a久久精品综合麻豆 | 国产精品一区二区综合 | 久久精品成人 | 日本免费视频观看在线播放 | 亚洲欧美成人综合久久久 | 在线亚洲精品中文字幕美乳 | 老外一级毛片免费看 | 久久国产成人精品国产成人亚洲 | 国产玖玖在线 | 伊人365影院 | 最新国产精品亚洲 | 亚洲午夜精品在线 | 欧美日韩高清不卡免费观看 | 国产精品久久久久久久久久免费 | 俄罗斯18videosex性欧美成人 |