《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 多核同時多線程處理器的線程調(diào)度器設(shè)計(jì)
多核同時多線程處理器的線程調(diào)度器設(shè)計(jì)
2016年電子技術(shù)應(yīng)用第1期
周佳佳,李 濤,黃小康
西安郵電大學(xué) 電子工程學(xué)院,陜西 西安710121
摘要: 多核同時多線程處理器(SMT_PAAG)是用于圖形、圖像及數(shù)字信號處理的一種多核處理器?;谶@種處理器提出了一種硬件線程調(diào)度器,該調(diào)度器采用同時多線程技術(shù),最多可同時執(zhí)行四個線程,支持八個線程阻塞模式下的快速上下文切換。這樣避免了因阻塞帶來的等待問題,能夠有效提高處理器的工作效率和資源利用率。通過在處理器上運(yùn)行圖形處理算法進(jìn)行性能評測。結(jié)果表明,SMT-PAAG處理器通過挖掘指令級并行和線程級并行,將處理器的性能提高了69.25%。
中圖分類號: TN492
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.01.003
中文引用格式: 周佳佳,李濤,黃小康. 多核同時多線程處理器的線程調(diào)度器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(1):19-21.
英文引用格式: Zhou Jiajia,Li Tao,Huang Xiaokang. Design of a thread scheduler in a simultaneous multi-threaded muti-core processor[J].Application of Electronic Technique,2016,42(1):19-21.
Design of a thread scheduler in a simultaneous multi-threaded muti-core processor
Zhou Jiajia,Li Tao,Huang Xiaokang
School of Electronic Engineering,Xi′an University of Posts & Telecommunications,Xi′an 710121,China
Abstract: SMT-PAAG is a simultaneous multithreaded multi-core processor for graphics,image and digital signal processing. The design of hardware thread scheduler for this processor is presented here. The scheduler uses simultaneous multi-threading technology(SMT) that can simultaneously execute up to four threads, and supports fast context switching with eight threads in blocking mode. This avoids the waiting caused by obstruction, at the same time, the design improves efficiency and resource utilization of the processor effectively. We conducted performance evaluation by running on the processor with graphics processing algorithms. The result shows that the performance of SMT-PAAG processor is increased by 69.25% by exploring instruction level parallelism(ILP) and tread level parallelism(TLP).
Key words : multi-core processor;SMT;blocking mode;graphics processing algorithms;ILP;TLP

0 引言

    隨著并行技術(shù)的不斷發(fā)展,如何更好地提高處理器的并行處理性能成為處理器設(shè)計(jì)者們急需解決的熱點(diǎn)問題。傳統(tǒng)處理器通過開發(fā)指令級并行(Instruction Level Parallelism,ILP)[1]來提高處理器的性能,但由于應(yīng)用程序自身的ILP很低、硬件的復(fù)雜度及功耗等眾多因素的影響導(dǎo)致處理器的性能不高。因此設(shè)計(jì)者們把目光紛紛投向更高層次的并行-線程級并行(Thread Level Parallelism,簡稱TLP)[1-2]

    同時多線程最先由美國加州大學(xué)的Tullsen等人在1995年開始研究,并提出了基本的SMT[3-4]處理器模型。主要原理是通過資源競爭和資源動態(tài)共享的方式使所有的執(zhí)行單元同時活躍,充分利用TLP和ILP來提高處理器的資源利用率。

    目前的商用處理器采用的技術(shù)主要是同時多線程和片上多處理器技術(shù),例如Intel的P4處理器[5]的Hyper-thread技術(shù)實(shí)現(xiàn)同時執(zhí)行兩個線程,IBM的Power5處理器[6]每個芯片有兩個內(nèi)核,每個內(nèi)核可以同時執(zhí)行兩個線程。SUN的Niagara處理器[7]每個芯片有8個內(nèi)核,每個內(nèi)核可以同時執(zhí)行4個線程。我國的龍芯2號處理器[8]也采用了超標(biāo)量與同時多線程技術(shù)來設(shè)計(jì)。

    本文在多核處理器[9-11]的基礎(chǔ)上提出了一種采用同時多線程技術(shù)[3-4]的線程調(diào)度器[12]設(shè)計(jì)。與Niagara處理器相比,本文中的多線程處理器擁有16個核,每個內(nèi)核一共具有8個線程,最大可以同時執(zhí)行4個線程,并且可以在高低線程之間快速切換,減少了因?yàn)榫€程中遇到長周期指令所造成的資源浪費(fèi),同時也提高了處理器的利用效率。

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

    時鐘共享多線程處理器是一種適用于圖形和圖像處理的并行陣列機(jī)。該陣列機(jī)支持MIMD(Multiple Instruction Stream Multiple Data Stream)運(yùn)行模式、分布式指令并行模式和流處理運(yùn)行模式這三種工作模式,同時還具有異步執(zhí)行、核間通信以及線程間通信的機(jī)制。

    這種結(jié)構(gòu)的陣列機(jī)由16個處理單元(Processing Element,PE)互連構(gòu)成一個4×4的二維陣列,還包括1個前端處理器、4個協(xié)處理器、2個調(diào)度器及2個存儲管理。系統(tǒng)的整體結(jié)構(gòu)如圖1所示。

wdz2-t1.gif

2 線程調(diào)度器功能描述

    線程調(diào)度器完成的功能描述如下:

    (1)監(jiān)測預(yù)處理模塊,當(dāng)外部需要給線程加載指令或數(shù)據(jù)時響應(yīng)預(yù)處理模塊;

    (2)當(dāng)線程發(fā)生阻塞時負(fù)責(zé)切換線程,并產(chǎn)生PE某一個線程的啟動信息,其中包括啟動有效信號、 起始PC值、啟動的線程號;

    (3)線程之間的同步處理,負(fù)責(zé)監(jiān)視需要同步的線程是否同步結(jié)束;

    (4)當(dāng)外部需要重新配置某一個線程的指令或數(shù)據(jù)時負(fù)責(zé)停止該線程,產(chǎn)生pe_stop信號;

    (5)給外部提供三個8位的寄存器,分別為線程啟動信息寄存器、線程結(jié)束信息寄存器、線程斷點(diǎn)信息寄存器。

3 同時多線程設(shè)計(jì)方案

    同時多線程技術(shù)最大的優(yōu)點(diǎn)在于增加很少的面積,就能夠獲得很高的資源利用率,即用較小的成本換取較大的并行性能,充分地挖掘了線程級的并行。

    本文基于時鐘共享多線程處理器提出的線程調(diào)度器支持八個線程,最多可以同時執(zhí)行四個線程。這四個線程同時執(zhí)行各自的程序。每個線程擁有各自獨(dú)立的取指單元、譯碼單元、指令存儲和數(shù)據(jù)存儲。而其他的資源,如各個執(zhí)行單元和地址流水線,則是八個線程共享。

    在每一個時鐘周期的上升沿,每個PE最多有八條流水線在執(zhí)行,且最多可輸出四條流水線結(jié)果,這四條流水線產(chǎn)生的結(jié)果屬于不同的線程組,每個線程組都擁有高低兩個線程。因此在某一組中若有一個線程陷入阻塞狀態(tài),則可以切換至組內(nèi)的另一線程來執(zhí)行程序,可以有效隱藏線程由于等待過程所造成的延遲,提高處理器整體的工作效率。

4 線程調(diào)度器詳細(xì)設(shè)計(jì)

4.1 線程管理器的總體結(jié)構(gòu)

    該調(diào)度器由信息處理模塊、狀態(tài)控制模塊、寄存器模塊、PE控制模塊四大部分構(gòu)成,各模塊的連接關(guān)系如圖2所示。

wdz2-t2.gif

    線程調(diào)度器的工作流程為:信息處理模塊接收來自預(yù)處理模塊的配置信息、指令、數(shù)據(jù)及加載結(jié)束信號,判斷是否需要啟動該線程。線程啟動之后狀態(tài)控制模塊中對應(yīng)的線程狀態(tài)機(jī)發(fā)生跳轉(zhuǎn),同時寄存器模塊實(shí)時記錄該線程的PC值。當(dāng)接收到譯碼模塊的阻塞信息時停止當(dāng)前運(yùn)行的線程且切換線程,PE控制模塊負(fù)責(zé)產(chǎn)生新線程的啟動信息。當(dāng)線程運(yùn)行結(jié)束后,信息處理模塊負(fù)責(zé)記錄線程的結(jié)束信息。

4.2 線程調(diào)度器的工作模式

    線程調(diào)度器擁有五種工作模式:啟動模式、阻塞工作模式、同步模式、斷點(diǎn)模式和重配置模式。

    啟動模式線程接收來自預(yù)處理模塊的線程啟動信息配置要啟動的線程,將對應(yīng)的線程ID號和PC值發(fā)送給PE來執(zhí)行。

    阻塞工作模式表示當(dāng)某一線程遇到阻塞,則切換到其線程組內(nèi)的另一線程上來執(zhí)行。若是兩個都阻塞,則先解除阻塞的線程先執(zhí)行。

    同步模式下對需要同步的幾個線程進(jìn)行等待處理,并判斷是否達(dá)到同步。若達(dá)到,則解除同步模式,開始正常執(zhí)行;若沒有達(dá)到,則繼續(xù)等待。

    斷點(diǎn)模式是用來方便處理器進(jìn)行調(diào)試錯誤的一種工作模式。當(dāng)程序計(jì)數(shù)器PC遇到斷點(diǎn)時,該線程停止工作,保存工作信息以待調(diào)試檢查。

    重配置模式是對線程進(jìn)行重新配置,根據(jù)上層的需要對線程要執(zhí)行的程序內(nèi)容進(jìn)行添加或更改。

4.3 線程狀態(tài)轉(zhuǎn)移關(guān)系

    如圖3所示,為線程調(diào)度器中線程的狀態(tài)轉(zhuǎn)移圖。

wdz2-t3.gif

    其中各個狀態(tài)說明如下:

    (1)IDLE:空閑狀態(tài)。當(dāng)線程啟動信號有效時(th_start=1),則狀態(tài)跳轉(zhuǎn)到RUN運(yùn)行狀態(tài);

    (2)RUN:運(yùn)行狀態(tài)。當(dāng)線程位于此狀態(tài)時,表示線程正在執(zhí)行,遇到阻塞或等待跳轉(zhuǎn)到WAIT狀態(tài);

    (3)BREAK:斷點(diǎn)狀態(tài)。當(dāng)線程的斷點(diǎn)數(shù)據(jù)收集結(jié)束(th_break_end=1)時,狀態(tài)跳轉(zhuǎn)到RUN運(yùn)行狀態(tài);

    (4)WAIT:等待狀態(tài)。當(dāng)線程發(fā)生重配置(th_recfg=1)時,則狀態(tài)跳轉(zhuǎn)到IDLE初始狀態(tài);當(dāng)線程阻塞解除(th_blk_fns=1)時狀態(tài)跳轉(zhuǎn)到RUN運(yùn)行狀態(tài);

    (5)SYN:同步狀態(tài)。線程位于該狀態(tài)下,遇到同步解除(th_syn_fns=1)信號,跳轉(zhuǎn)到READY狀態(tài);

    (6)READY:準(zhǔn)備狀態(tài)。表示線程處于一個隨時可以啟動的狀態(tài),當(dāng)線程被選中時(th0_hit=1),則狀態(tài)跳轉(zhuǎn)到RUN運(yùn)行狀態(tài)。

5 仿真結(jié)果分析和比較

    本文采用Xilinx公司的ISE14.4工具對硬件電路進(jìn)行了綜合,選用Xilinx公司型號為XC7V2000t-2fhg1761的FPGA,設(shè)計(jì)電路的最高頻率可以到達(dá)431.816 MHz。

    在完成功能仿真和綜合的同時,本文還進(jìn)行了簡單的性能分析。測試在8個PE上進(jìn)行,采用圖像處理中的邊緣檢測算法,分別對32×32、64×64以及128×64的圖像進(jìn)行測試,最后得到的結(jié)果如表1所示。另外根據(jù)性能提升計(jì)算公式(1)[12]可以得出整體處理器的性能提升百分比如表2所示。

    wdz2-gs1.gif

wdz2-b1.gif

wdz2-b2.gif

    可以看出,對于比較小的圖像,過多的線程會導(dǎo)致整體運(yùn)算速度變慢。這是因?yàn)榇藭r圖像整體運(yùn)算時間比較短,線程切換所造成的延時會在整體時間中占據(jù)比較大的比例。而對于更大的圖像,同時多線程技術(shù)則對處理器的性能提升影響比較大。對于多核同時多線程處理器而言,八個線程的線程調(diào)度器設(shè)計(jì)會使處理器得到更高的性能提升,充分體現(xiàn)了同時多線程技術(shù)的優(yōu)點(diǎn)。

6 總結(jié)

    本文通過對時鐘共享多線程處理器架構(gòu)的深入研究,采用同時多線程技術(shù)設(shè)計(jì)和實(shí)現(xiàn)了處理器的核心部件——線程調(diào)度器。通過在處理器的多個線程上運(yùn)行圖像處理算法,得到處理器的加速比最大為69.25%,充分提高了多核處理器的性能。并對所設(shè)計(jì)的硬件電路進(jìn)行了全面仿真驗(yàn)證,綜合和仿真結(jié)果表明電路的功能正確,工作頻率為431.816 MHz,達(dá)到了時鐘共享多線程處理器的需求。

參考文獻(xiàn)

[1] THEO U,BORUT R,JURIJ S.Multithreaded processors[J].The Computer Journal,2002,45(3):320-348.

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

[3] 劉權(quán)勝,楊洪斌,吳悅.同時多線程技術(shù)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(4):963-967.

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

[5] 張?jiān)?解析超線程技術(shù)[J].甘肅聯(lián)合大學(xué)學(xué)報,2007,21(4):99-101.

[6] Frank Soltis.Power5對i系列意味著什么[J].中國經(jīng)濟(jì)和信息化,2004,20(6):A2-A3.

[7] POONACHA K.Niagara:a 32-way multithreaded sparc processor[J].Mirco,IEEE,2005,25(2):21-29.

[8] 李祖松,許先超,胡偉武,等.龍芯2號處理器的同時多線程設(shè)計(jì)[J].計(jì)算機(jī)學(xué)報,2009,32(11):2266-2273.

[9] 黃虎才.多態(tài)陣列處理器的并行計(jì)算研究[D].西安:西安郵電大學(xué),2014.

[10] 李濤,楊婷,易學(xué)淵.螢火蟲2:一種多態(tài)并行機(jī)的硬件體系結(jié)構(gòu)[J].計(jì)算機(jī)工程與科學(xué),2014,12(2):191-200.

[11] 李濤,肖靈芝.面向圖形和圖像處理的輕核陣列機(jī)結(jié)構(gòu)[J].西安郵電學(xué)院學(xué)報,2012,17(3):41-47.

[12] 錢博文,李濤,韓俊剛,等.多態(tài)并行處理器中的線程管理器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014(2):30-32.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。