《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 時鐘共享多線程處理器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網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美人与禽性xxxxx杂性| 久久久久久久国产| 欧美一区在线视频| 在线综合欧美| 日韩视频免费观看| 亚洲片在线观看| 1000部精品久久久久久久久| 国产一区高清视频| 国产视频不卡| 国产女优一区| 国产精品―色哟哟| 国产精品多人| 国产精品欧美久久| 国产精品免费一区二区三区观看| 国产精品扒开腿爽爽爽视频 | 欧美日韩亚洲网| 欧美日本国产精品| 欧美区二区三区| 欧美猛交免费看| 欧美日韩在线三区| 国产精品高清一区二区三区| 国产精品成人一区二区艾草| 国产精品超碰97尤物18| 欧美色欧美亚洲另类二区| 国产精品激情| 国产日韩精品一区| 国内揄拍国内精品久久 | 在线电影国产精品| 亚洲国产另类久久久精品极度| 亚洲国产日韩一级| 日韩视频一区二区三区在线播放免费观看 | 亚洲乱码精品一二三四区日韩在线| 亚洲人成网站影音先锋播放| 日韩一级视频免费观看在线| 中文精品视频一区二区在线观看| 亚洲性视频h| 新67194成人永久网站| 久久riav二区三区| 亚洲国产精品视频| 99精品国产一区二区青青牛奶 | 国产精品久久久久aaaa樱花| 国产伦理精品不卡| 激情视频一区| 91久久精品国产91性色tv| 亚洲最新视频在线播放| 亚洲欧美国产日韩中文字幕| 久久国产精品网站| 99精品国产高清一区二区| 亚洲欧美国产视频| 久久久久久久999精品视频| 欧美大片va欧美在线播放| 欧美视频在线观看一区二区| 国产欧美日韩中文字幕在线| 亚洲第一二三四五区| 日韩午夜在线视频| 亚洲免费在线播放| 亚洲国产婷婷香蕉久久久久久99| 一区二区三区高清视频在线观看 | 欧美一区二区三区男人的天堂| 久久免费国产| 欧美日韩精品二区| 国产三级欧美三级日产三级99| 亚洲第一在线视频| 亚洲影视综合| 最新国产乱人伦偷精品免费网站| 亚洲免费一级电影| 美女精品在线| 国产精品久久久久久久久久免费看| 国产在线日韩| 一区二区高清视频| 亚洲激情欧美激情| 性欧美1819sex性高清| 猛男gaygay欧美视频| 国产精品国产三级国产普通话99| 国内精品久久久久影院薰衣草| 一本久道久久久| 亚洲国内自拍| 欧美在线视频观看| 欧美日韩国产影片| 伊人精品久久久久7777| 亚洲性视频网站| 夜夜嗨一区二区| 久久人体大胆视频| 国产精品一卡| 99re热精品| 亚洲精品一区二区在线观看| 久久激情网站| 国产精品www网站| 亚洲黄色在线| 亚洲福利精品| 久久国产精品色婷婷| 欧美三级电影一区| 亚洲黄色影院| 亚洲国产一区视频| 久久精品亚洲一区二区| 欧美视频第二页| 亚洲片在线观看| 亚洲精品欧美日韩| 久久全球大尺度高清视频| 国产精品久久久一区麻豆最新章节 | 久久精品亚洲| 国产精品自拍小视频| 一区二区成人精品| 99精品国产热久久91蜜凸| 免费久久99精品国产自| 国产亚洲人成a一在线v站 | 性欧美超级视频| 午夜久久久久久| 欧美三级中文字幕在线观看| 亚洲国产精品第一区二区| 亚洲成色777777女色窝| 欧美专区日韩视频| 国产伦精品一区二区三区四区免费| 中文精品视频| 亚洲欧美日韩精品综合在线观看| 欧美激情一区二区三区在线视频| 精品动漫3d一区二区三区| 久久成人人人人精品欧| 欧美中文字幕在线观看| 国产日韩欧美一区二区三区在线观看 | 在线视频欧美日韩精品| 欧美大胆a视频| 亚洲啪啪91| 一本色道久久综合亚洲精品按摩 | av成人黄色| 欧美日韩亚洲一区二| 亚洲裸体视频| 亚洲午夜精品网| 国产精品超碰97尤物18| 中日韩视频在线观看| 亚洲影院高清在线| 国产精品每日更新在线播放网址| 宅男噜噜噜66国产日韩在线观看| 亚洲欧美日韩国产一区二区三区 | 国产综合色产在线精品| 久久精品盗摄| 美女亚洲精品| 亚洲国产日韩综合一区| 日韩一级欧洲| 欧美三级视频| 亚洲一区在线免费| 欧美影院久久久| 狠狠干综合网| 亚洲激情在线观看| 欧美久久视频| 一区二区三区www| 欧美亚洲视频| 黄色影院成人| 9久草视频在线视频精品| 欧美日韩一区三区| 亚洲欧美国产另类| 美女免费视频一区| 亚洲久色影视| 亚洲欧美在线一区二区| 国产一区在线播放| 亚洲人成啪啪网站| 国产精品豆花视频| 欧美资源在线| 欧美精品aa| 亚洲欧美日韩一区在线观看| 久久女同精品一区二区| 亚洲理论在线| 午夜伦欧美伦电影理论片| 国内揄拍国内精品少妇国语| 99国产精品99久久久久久粉嫩 | 亚洲电影免费在线观看| 亚洲图片在区色| 国产欧美日韩精品一区| 亚洲成人在线视频播放 | 99国产精品国产精品久久| 欧美视频一区二区三区四区| 亚洲欧美日韩国产中文| 麻豆91精品91久久久的内涵| 日韩特黄影片| 久久久久国产精品一区三寸| 亚洲精品午夜| 久久久久久久高潮| 99re视频这里只有精品| 久久久7777| 亚洲美女啪啪| 久久久蜜桃一区二区人| 日韩亚洲精品电影| 久久一区视频| 亚洲一级在线观看| 欧美成人情趣视频| 亚洲欧美国产三级| 欧美激情视频一区二区三区在线播放| 亚洲综合色婷婷| 欧美国产日韩一二三区| 午夜亚洲视频| 欧美日韩日本网| 久久精品三级| 国产精品看片你懂得| 亚洲另类在线一区| 国产亚洲人成网站在线观看| 亚洲一区二区三区激情| 怡红院精品视频| 欧美一级专区免费大片| 亚洲精品免费在线播放| 老司机一区二区|