• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      螢火蟲2:一種多態(tài)并行機(jī)的硬件體系結(jié)構(gòu)*

      2014-09-14 01:24:34易學(xué)淵錢博文黃光新黃虎才韓俊剛
      關(guān)鍵詞:函數(shù)調(diào)用處理單元線程

      李 濤,楊 婷,易學(xué)淵,蒲 林,錢博文,黃光新,黃虎才,韓俊剛

      (1.西安郵電大學(xué)電子工程學(xué)院,陜西 西安 710061;2.西安郵電大學(xué)計(jì)算機(jī)學(xué)院,陜西 西安 710061)

      螢火蟲2:一種多態(tài)并行機(jī)的硬件體系結(jié)構(gòu)*

      李 濤1,楊 婷1,易學(xué)淵1,蒲 林1,錢博文1,黃光新2,黃虎才2,韓俊剛2

      (1.西安郵電大學(xué)電子工程學(xué)院,陜西 西安 710061;2.西安郵電大學(xué)計(jì)算機(jī)學(xué)院,陜西 西安 710061)

      提出了一種新型的多態(tài)高效并行陣列機(jī)結(jié)構(gòu)——螢火蟲2號(hào)陣列機(jī)。該結(jié)構(gòu)的處理單元可以在SIMD和MIMD兩種模式下運(yùn)行,兼有異步執(zhí)行機(jī)制,還可以實(shí)現(xiàn)分布式指令級(jí)并行處理。采用了硬件的多線程管理器和高效通信機(jī)制,這些機(jī)制使得此種陣列機(jī)能夠?qū)崿F(xiàn)效率很高的線程級(jí)并行運(yùn)算、數(shù)據(jù)級(jí)并行運(yùn)算和分布式指令級(jí)并行運(yùn)算。尤其值得指出的是,此種陣列機(jī)的流處理性能堪與專用集成電路匹敵。該結(jié)構(gòu)還能有效實(shí)現(xiàn)靜態(tài)與動(dòng)態(tài)數(shù)據(jù)流計(jì)算,可以高效實(shí)現(xiàn)圖形、圖像和數(shù)字信號(hào)處理任務(wù)。

      陣列機(jī);多態(tài)處理器;計(jì)算機(jī)圖形;圖像處理;信號(hào)處理;數(shù)據(jù)級(jí)并行;線程級(jí)并行;指令級(jí)并行

      1 引言

      當(dāng)代數(shù)字計(jì)算器件主要有CPU(Central Processing Unit)、GPU(Graphic Processing Unit)和FPGA(Field Programmable Gate Array)。CPU的可編程性最佳,GPU的編程稍微困難一些,F(xiàn)PGA則只是可重構(gòu)。另一方面,F(xiàn)PGA的性能要?jiǎng)儆谀切┛删幊唐骷珿PU的并行處理能力一般要優(yōu)于CPU。專用集成電路ASIC(Application Specific Integrated Circuit)不可編程,但是其速度和功耗性能遠(yuǎn)勝于通用可編程處理器。然而,可編程處理器的靈活性卻是s專用集成電路無法比擬的。FPGA類的可重構(gòu)器件(Reconfigurable Device)[1],尤其是動(dòng)態(tài)可重構(gòu)器件[2],具有一定的靈活性,性能也可能接近ASIC。

      在靈活性與性能方面,一端是高度靈活與成熟的可編程處理器,另一端是高性能但不可變的ASIC??芍貥?gòu)器件介于二者之間。本文提出的螢火蟲2的體系結(jié)構(gòu),是一種可編程陣列處理器。其目的是要在性能上與ASIC接近,同時(shí)兼有可編程器件的靈活性。

      在并行計(jì)算方面最為人熟知的是Flynn[3]分類法。該方法是按照指令流(Instruction Stream)和數(shù)據(jù)流(Data Stream)的個(gè)數(shù)進(jìn)行分類的。實(shí)際中兩種最常見的并行結(jié)構(gòu)是單指令多數(shù)據(jù)結(jié)構(gòu)SIMD(Single Instruction Multiple Data)和多指令多數(shù)據(jù)結(jié)構(gòu)MIMD(Multiple Instruction Stream Multiple Data Stream)。根據(jù)單位運(yùn)算的復(fù)雜度又可分為粗粒度運(yùn)算和細(xì)粒度運(yùn)算。細(xì)粒度運(yùn)算通常指基本算術(shù)邏輯操作,而粗粒度則指較復(fù)雜的函數(shù)或線程。

      現(xiàn)代并行處理中常常提到的并行計(jì)算方式[4]包括數(shù)據(jù)級(jí)并行DLP(Data Level Parallelism)計(jì)算、線程級(jí)并行TLP(Thread Level Parallelism)計(jì)算和指令級(jí)并行ILP(Instruction Level Parallelism)計(jì)算。

      (1)數(shù)據(jù)級(jí)并行DLP計(jì)算[5]以SIMD為基礎(chǔ)。GPU使用的是一種擴(kuò)展的SIMD方式,稱為SIMT。DLP通常使用算法層的并行。

      (2)線程級(jí)并行TLP計(jì)算[6]對(duì)應(yīng)于MIMD,通常為粗粒度運(yùn)算。TLP并行處理需要進(jìn)程通信機(jī)制,不適合細(xì)粒度的并行處理。

      (3)指令級(jí)并行ILP計(jì)算主要是指主流CPU使用的超標(biāo)量和VLIW(Very Long Instruction Word)類的機(jī)器和計(jì)算方法[7]。計(jì)算粒度細(xì),利用操作間的不相關(guān)性,而不是算法的并行度,采用類似經(jīng)典的數(shù)據(jù)流計(jì)算(Dataflow Computation)[8,9]。

      此外,還有人把FPGA和ASIC類[10]的計(jì)算方法稱為操作并行計(jì)算OLP(Operation Level Parallelism)。

      現(xiàn)代結(jié)構(gòu)中也有將上述數(shù)種并行處理方法混合的各種例子。GPU[11,12]就是把SIMD和MIMD混合使用的典型例子?,F(xiàn)代GPU的基本計(jì)算方法是SIMD的數(shù)據(jù)級(jí)并行運(yùn)算。但是,多個(gè)MIMD任務(wù)可以被分配到不同的SM(Streaming Multiprocessor)塊中,在SM上面實(shí)現(xiàn)較粗粒度的MIMD運(yùn)算。EDGE(Explicit Data Graph Execution)[13]機(jī)器也是如此,但該機(jī)器將指令固定分配到處理單元上,讓數(shù)據(jù)可以流動(dòng),以實(shí)現(xiàn)宏觀數(shù)據(jù)流計(jì)算。這是一種粗粒度的數(shù)據(jù)流計(jì)算,是控制流(Control Flow)計(jì)算與數(shù)據(jù)流計(jì)算(Data Flow)的結(jié)合[14]。

      總之,實(shí)現(xiàn)上述各種并行計(jì)算模式的混合并非新鮮事物,但是在陣列機(jī)上分區(qū)并發(fā)實(shí)現(xiàn)多種模式而且能夠一步轉(zhuǎn)換模式,卻十分困難。尤其是要在性能上接近ASIC,則是一個(gè)真正的挑戰(zhàn)。螢火蟲2陣列機(jī)就是面對(duì)這個(gè)挑戰(zhàn)的一個(gè)嘗試。

      隨著集成度的提高,芯片上可以利用的資源越來越豐富。實(shí)現(xiàn)高度并行處理不再是個(gè)難題,但隨之而來的卻是新的挑戰(zhàn)。當(dāng)很多處理功能集成到一個(gè)芯片上時(shí),功耗是巨大的,現(xiàn)有的GPU芯片達(dá)到了200瓦以上功耗,散熱變得很困難。AMD公司的GPU芯片不得不使用水冷散熱。功耗問題是并行處理芯片面臨的新挑戰(zhàn)[15]?,F(xiàn)代超標(biāo)量處理器結(jié)構(gòu)復(fù)雜,很難解決功耗問題。最新研究[16]表明,超標(biāo)量式的復(fù)雜控制和當(dāng)前多層次存儲(chǔ)結(jié)構(gòu)產(chǎn)生的大量數(shù)據(jù)流動(dòng)是功耗的主要來源。輕核(Thin Core)處理器[17]和大量的片上存儲(chǔ)是解決功耗問題的有效手段。本文中的陣列處理器就是采用了簡單的處理器結(jié)構(gòu)和大量的片上存儲(chǔ)來降低功耗。

      螢火蟲2號(hào)陣列機(jī)采用一系列設(shè)計(jì)方法來實(shí)現(xiàn)高效低功耗的并行處理,在許多方面體現(xiàn)了返樸歸真的思想。本文詳述這種陣列機(jī)的處理單元結(jié)構(gòu)、線程管理機(jī)制、線程通信機(jī)制和總體結(jié)構(gòu)。

      2 多態(tài)陣列機(jī)整體結(jié)構(gòu)

      多態(tài)陣列機(jī)系統(tǒng)由多個(gè)處理器簇(Cluster)組成,每個(gè)簇是由處理單元PE(Processing Element)組成的一個(gè)二維陣列(2D Array),是一種較常見的陣列結(jié)構(gòu)。這種簇結(jié)構(gòu)可以平面展開,也可以分層次(Hierarchical)構(gòu)成。

      (1)一個(gè)基本簇(Basic Cluster)是16個(gè)處理單元組成的4×4陣列,如圖1所示。處理單元由近鄰互聯(lián)組成二維陣列。

      (2)每一行有行控制器CR(Row Controller),用來實(shí)現(xiàn)行的SIMD運(yùn)算。每一列也有列控制器CW(Column Controller),用來管理簇存儲(chǔ)器。

      (3)整個(gè)簇中有一個(gè)簇控制器(Cluster Controller),用來協(xié)調(diào)整個(gè)簇的處理單元。簇中的共享存儲(chǔ)分布在列控制器中。

      當(dāng)前的設(shè)計(jì)可以支持高達(dá)1 024個(gè)處理單元。每個(gè)行控制器和列控制器帶有自己的程序存儲(chǔ)。可以把一行或者一列處理單元重構(gòu)成SIMD模式,進(jìn)行數(shù)據(jù)級(jí)并行計(jì)算;也可以把一個(gè)整簇重構(gòu)成SIMD模式,用簇控制器來協(xié)調(diào)整個(gè)簇實(shí)現(xiàn)SIMD并行計(jì)算。程序和數(shù)據(jù)的加載由簇控制器協(xié)調(diào),行與列控制器輔助執(zhí)行。這些控制器還可以用來控制SIMD運(yùn)算。

      Figure 1 Structure of basic cluster圖1 基本簇的結(jié)構(gòu)

      圖2給出了一個(gè)完整的螢火蟲2系統(tǒng),包含一個(gè)前端處理器(FEP)、四個(gè)F簇(F Cluster0~3)、四個(gè)S簇(S Cluster0~3)、各種專用加速器(Accel)、片上緩存器、外部存儲(chǔ)器以及片上互聯(lián)(Interconnect)。F簇處理單元包含浮點(diǎn)運(yùn)算器和定點(diǎn)運(yùn)算器,S簇只包含定點(diǎn)運(yùn)算器。

      Figure 2 Architecture of Firefly 2圖2 系統(tǒng)整體結(jié)構(gòu)

      當(dāng)執(zhí)行圖形、圖像或者信號(hào)處理應(yīng)用程序時(shí),前端處理器是系統(tǒng)與外部處理器或者CPU主處理器的接口。專用加速器通常包括基本函數(shù)運(yùn)算器(指數(shù)、對(duì)數(shù)、三角函數(shù)、平方根等)、圖形處理器加速器(背面消隱器、圖元裝配器、光柵化處理器)等。

      當(dāng)F簇和S簇之間的運(yùn)算負(fù)載不平衡時(shí),可以將部分S簇中的運(yùn)算轉(zhuǎn)移到F簇中處理。值得一提的是,F(xiàn)簇處理單元采用了一種多格式定點(diǎn)計(jì)算器,用來進(jìn)行圖形和圖像處理中特定的定點(diǎn)運(yùn)算,如光柵化和背面消隱等。

      2.1 線程級(jí)并行(MIMD)運(yùn)行方式

      這是螢火蟲2的基本運(yùn)行方式,也是其最常見的運(yùn)行方式。只要任務(wù)分割恰當(dāng),此種方式編程較容易,程序查錯(cuò)也容易。

      在此種方式下,一個(gè)程序被分割成數(shù)個(gè)基本任務(wù),每個(gè)任務(wù)被分配到一個(gè)處理單元上運(yùn)行。如果任務(wù)之間需要傳遞計(jì)算結(jié)果的數(shù)據(jù),可以通過鄰接互聯(lián)數(shù)據(jù)線;距離較遠(yuǎn)的處理單元之間可以通過路由器傳遞數(shù)據(jù)。指令的阻塞模式特別適合近鄰之間的數(shù)據(jù)通信,因?yàn)樵撃J桨藬?shù)據(jù)傳輸必需的同步操作。

      2.2 數(shù)據(jù)級(jí)并行(SIMD)運(yùn)行方式

      SIMD運(yùn)行方式特別適合數(shù)據(jù)級(jí)并行處理。因?yàn)閳D形和圖像處理的運(yùn)算中很常見四維向量,因此可以用一行處理單元來做SIMD的四維并行運(yùn)算。如果需要做四維以上16維以下的運(yùn)算,那就可以使用2~4行處理單元(8~16個(gè)處理器)來進(jìn)行SIMD并行運(yùn)算。

      當(dāng)一行中進(jìn)行SIMD運(yùn)算時(shí),該行的控制器CR將指令廣播到這一行中的處理單元,每個(gè)單元使用自己的數(shù)據(jù)來執(zhí)行同樣的指令。

      如果需要使用多行處理單元進(jìn)行SIMD運(yùn)算,簇控制器將指令廣播到相關(guān)的行處理器,再由行處理器廣播到相關(guān)處理單元。

      2.3 分布式指令級(jí)并行方式

      分布式指令級(jí)并行計(jì)算的基礎(chǔ)是數(shù)據(jù)流計(jì)算。其執(zhí)行方法類似超標(biāo)量機(jī)器中的亂序執(zhí)行方式。螢火蟲2的分布式指令級(jí)并行計(jì)算采用計(jì)算結(jié)果直接鏈接的方法,無須使用寄存器重命名。這與數(shù)據(jù)驅(qū)動(dòng)數(shù)據(jù)流的形式是一致的。

      使用鄰接互聯(lián)寄存器或者共享存儲(chǔ),相關(guān)指令直接鏈接起來。指令可以分配到許多處理單元中,因此實(shí)現(xiàn)了分布式指令級(jí)并行計(jì)算。

      2.4 流處理運(yùn)行方式

      螢火蟲2的流處理方式類似于典型的FPGA或者ASIC流水線,也即所謂的操作并行處理方式[4],但是每個(gè)單元處理的顆粒粗細(xì)程度可按照性能需求進(jìn)行調(diào)整和配置。

      對(duì)于此種運(yùn)算方式,每個(gè)單元相當(dāng)于流水線的一級(jí)。在每個(gè)處理單元上分配一些簡單操作,重復(fù)執(zhí)行這些操作。一個(gè)處理單元的結(jié)果通過近鄰互聯(lián)傳遞到其它處理單元去,構(gòu)成邏輯上的流水線。

      為了降低開銷,我們?cè)O(shè)有專用的循環(huán)設(shè)置指令。這些指令在流處理開始階段設(shè)置好背景循環(huán)計(jì)數(shù)器和循環(huán)界限計(jì)數(shù)器,在數(shù)據(jù)處理開始后就是零開銷了,大大優(yōu)化了處理速度。

      3 處理單元結(jié)構(gòu)

      處理單元的頻率通常在680 MHz以下,以降低功耗。每個(gè)處理單元可以執(zhí)行SIMD和MIMD兩種操作模式。每個(gè)處理單元由一個(gè)ALU、一個(gè)控制器、一個(gè)路由器、四個(gè)鄰接共享存儲(chǔ)、數(shù)據(jù)存儲(chǔ)和指令存儲(chǔ)組成,整體如圖3所示。該處理單元的一個(gè)特點(diǎn)是沒有寄存器文件,ALU直接從存儲(chǔ)器中讀取指令和數(shù)據(jù);另一個(gè)特點(diǎn)是直接尋址的鄰接共享存儲(chǔ)器及其兩種存取模式。

      當(dāng)前片上SRAM(Static Random Access Memory)頻率可達(dá)4.8 GHz[18],可以與最快的CPU速度匹配。一般較快的片上SRAM的頻率也能超過600 MHz。我們的設(shè)計(jì)很容易找到相匹配的片上SRAM,因此寄存器文件就不是必需的了。這就可以提高效率、降低功耗。

      Figure 3 Structure of processing element圖3 處理單元結(jié)構(gòu)

      下面是處理單元及其各個(gè)部件操作的詳細(xì)敘述:

      (1)算術(shù)邏輯運(yùn)算器ALU平均每個(gè)時(shí)鐘可以發(fā)出兩條指令。指令集將在后面詳細(xì)敘述。

      在SIMD 模式中,ALU執(zhí)行來自于外部(行、簇)控制器的指令序列,數(shù)據(jù)來自于本地存儲(chǔ)或者鄰接存儲(chǔ)。ICTL是本地控制。屏蔽(MASK)指令用來讀寫本地屏蔽寄存器,進(jìn)而控制SIMD操作。當(dāng)本地的屏蔽寄存器被置位時(shí),這個(gè)處理單元進(jìn)入閑置狀態(tài),不執(zhí)行SIMD指令。屏蔽寄存器也可以被外部控制器讀寫。

      在MIMD模式中,ALU執(zhí)行的指令序列來自于本地的指令存儲(chǔ)器(I-MEM),數(shù)據(jù)來自于本地存儲(chǔ)D-MEM和鄰接存儲(chǔ)。

      (2)路由器RU負(fù)責(zé)將數(shù)據(jù)傳送到遠(yuǎn)程處理單元。由于熒火蟲2采用近鄰互聯(lián)方式,數(shù)據(jù)傳輸有時(shí)需要多跳才能達(dá)到。路由器允許數(shù)據(jù)多播,可以實(shí)現(xiàn)數(shù)據(jù)流的多目標(biāo)扇出。

      遠(yuǎn)程通信需要使用MOVT和MOVF指令。硬件加速器用來加快遠(yuǎn)程數(shù)據(jù)通信的速度。

      MOVT和MOVF指令也按照阻塞和非阻塞兩種模式執(zhí)行。

      遠(yuǎn)程函數(shù)調(diào)用和返回通過特殊指令和路由器實(shí)現(xiàn)。參數(shù)和返回值可以使用MOVT和MOVF指令來傳送。遠(yuǎn)程數(shù)據(jù)包最多可以攜帶8個(gè)字(32位)的數(shù)據(jù)。

      (3)鄰接共享存儲(chǔ)M分為四個(gè)部分:Me(東)、Mw(西)、Ms(南)和Mn(北), 每部分用于一個(gè)方向的通信。這四個(gè)部分在邏輯上都是處理單元數(shù)據(jù)存儲(chǔ)的一部分,采用直接尋址。大部分指令都可以使用鄰接共享存儲(chǔ)。這部分存儲(chǔ)也可以被鄰居處理單元存取。共享存儲(chǔ)器的存取有兩種模式:

      ①阻塞模式(線程間同步):每個(gè)共享存儲(chǔ)地址都有一位數(shù)據(jù)有效位。當(dāng)讀取數(shù)據(jù)時(shí),如果數(shù)據(jù)無效,則當(dāng)前線程進(jìn)入等待狀態(tài);如果數(shù)據(jù)有效,則讀取數(shù)據(jù),并將其置于無效。當(dāng)寫入數(shù)據(jù)時(shí),若數(shù)據(jù)無效則直接寫入,數(shù)據(jù)有效則等待。

      ②非阻塞模式(線程間異步):不管數(shù)據(jù)是否有效,直接讀取數(shù)據(jù)。寫入數(shù)據(jù)時(shí)也不管目標(biāo)地址數(shù)據(jù)是否有效。

      (4)數(shù)據(jù)存儲(chǔ)器D-MEM為每個(gè)線程分配一個(gè)區(qū)域,最多八個(gè)區(qū)域。每個(gè)線程的數(shù)據(jù)存儲(chǔ)最大為4 K(32位)字。數(shù)據(jù)存儲(chǔ)采用分塊結(jié)構(gòu),分為八塊。這可以有效降低數(shù)據(jù)存取的沖突。

      (5)指令存儲(chǔ)(I-MEM)為每個(gè)線程分配一個(gè)區(qū)域,最多八個(gè)區(qū)域。每個(gè)區(qū)域最多為4 K條指令。指令存儲(chǔ)采用單塊結(jié)構(gòu)。

      ALU中的指令讀取單元含有一個(gè)程序計(jì)數(shù)器PC和一個(gè)線程地址寄存器Creg。每個(gè)線程都分配一塊數(shù)據(jù)存儲(chǔ),其基地址可以放在Creg中。上下文轉(zhuǎn)換只需要改變Creg的值,可以一步到位。上下文轉(zhuǎn)換時(shí)將當(dāng)前Creg值推入堆棧,然后載入新的Creg值。

      處理單元還含有一個(gè)線程信息表,用來記錄每個(gè)線程的當(dāng)前狀態(tài)??刂破饔眠@個(gè)線程表來實(shí)現(xiàn)一步到位的上下文轉(zhuǎn)換。

      上面敘述了處理單元的操作。下面將講述處理單元的指令集結(jié)構(gòu)、流水線結(jié)構(gòu)以及控制結(jié)構(gòu)。

      3.1 指令集結(jié)構(gòu)

      處理單元的多數(shù)指令采用直接存儲(chǔ)尋址。指令執(zhí)行有兩種操作方式,大部分指令按照阻塞和非阻塞兩種方式執(zhí)行。部分指令還有直接數(shù)操作。每條指令通常有三個(gè)地址,其格式如圖4所示。

      Figure 4 Format of the instruction
      圖4 指令格式

      螢火蟲2是為圖形、圖像和信號(hào)處理等應(yīng)用而設(shè)計(jì)的,用來作為專用計(jì)算加速器,目前還不考慮通用計(jì)算應(yīng)用。因此,其指令的操作數(shù)尋址方式是有一定局限性的。這主要表現(xiàn)在尋址范圍的大小。

      指令有6位操作碼,2位標(biāo)志位,12位的目標(biāo)地址可以在4 KB范圍內(nèi)尋址,12位的A操作數(shù)地址,16位的B操作數(shù)地址(也可以是立即數(shù))。對(duì)于細(xì)粒度和中等粒度的并行處理,這樣的地址范圍足夠了。對(duì)于很粗粒度的應(yīng)用,程序可以分布到多個(gè)處理單元上。指令涵括下列類型:

      (1)定點(diǎn)算術(shù)與邏輯指令類:如加、減、乘、除、移位、與、或、異或等指令。

      (2)定點(diǎn)比較與轉(zhuǎn)移指令類:這類指令按照比較的結(jié)果決定是否轉(zhuǎn)移控制流。在SIMD模式下,轉(zhuǎn)移是用屏蔽棧來實(shí)現(xiàn)的。

      (3)浮點(diǎn)算術(shù)指令類:如加、減、乘、除等指令。這些指令的操作數(shù)都是浮點(diǎn)數(shù)。

      (4)浮點(diǎn)比較與轉(zhuǎn)移指令類:這類指令按照比較的結(jié)果決定是否轉(zhuǎn)移控制流。在SIMD模式下,轉(zhuǎn)移是用屏蔽棧來實(shí)現(xiàn)的。

      (5)跳轉(zhuǎn)與函數(shù)調(diào)用類指令:實(shí)現(xiàn)無條件跳轉(zhuǎn)、函數(shù)(包括SIMD函數(shù))的調(diào)用和返回、以及遠(yuǎn)程函數(shù)調(diào)用和返回。

      (6)上下文轉(zhuǎn)換與SIMD屏蔽類指令:包括改變Creg值、上下文堆棧操作和SIMD屏蔽等指令。

      (7)循環(huán)設(shè)置類指令:這類指令是為了高效實(shí)現(xiàn)OLP運(yùn)算而設(shè)置的。循環(huán)設(shè)置好后就進(jìn)入OLP模式執(zhí)行。

      (8)遠(yuǎn)程與近鄰?fù)ㄐ蓬愔噶睿喊∕OVT、MOVF和MOVL。

      處理單元的指令集結(jié)構(gòu)包含了不少特殊指令,是為了最有效地實(shí)現(xiàn)三種基本并行處理模式而設(shè)計(jì)的,這樣有利于高性能實(shí)現(xiàn)數(shù)據(jù)流計(jì)算方式。

      3.2 處理單元流水線結(jié)構(gòu)

      本文采用了兩種可編程處理單元,兩種處理單元均采用簡單和低功耗的設(shè)計(jì),因此沒有采用類似于超標(biāo)量機(jī)器指令級(jí)并行ILP[7]的執(zhí)行機(jī)制。數(shù)據(jù)與控制冒險(xiǎn)(Data and Control Hazards)采用兩種方法來處理:

      (1)利用阻塞執(zhí)行模式來實(shí)現(xiàn)數(shù)據(jù)流類型的處理方式,還可以實(shí)現(xiàn)分布式指令并行化。

      (2)依賴編譯器和良好的程序設(shè)計(jì)來處理。編譯和匯編程序幫助解決數(shù)據(jù)相關(guān)性問題。

      浮點(diǎn)處理器的流水線如圖5所示。

      這是一個(gè)比較簡單的多功能、多周期流水線。流水線包括了指令讀取(Instruction Fetch-IFETCH)、指令解碼(DECODER)、執(zhí)行(Execute)和回寫(WriteBack)。其中執(zhí)行含有六條執(zhí)行流水線,每條都有其自己的執(zhí)行周期。包含了整數(shù)算術(shù)邏輯運(yùn)算器(ALU)、整數(shù)乘法器(MULT)、整數(shù)除法器(DIV)、浮點(diǎn)運(yùn)算器(FPU)、浮點(diǎn)乘法器(FMUL)和浮點(diǎn)除法器(FDIV)。

      為了提高效率,還采用了計(jì)算結(jié)果前饋機(jī)制(FEEDFWD)。整個(gè)流水線由流水線控制器(CONTROL)來協(xié)調(diào)操作。圖5中還標(biāo)出了指令存儲(chǔ)(INSTR MEMORY)和數(shù)據(jù)存儲(chǔ)(DATA MEMORY)。除了執(zhí)行本地指令流,流水線還可以執(zhí)行來自外部控制(Cluster Control)的SIMD指令流。

      定點(diǎn)處理單元的結(jié)構(gòu)類似于浮點(diǎn)處理單元,只是其ALU、MULT和DIV流水線采用了多格式定點(diǎn)數(shù)方式,不同于普通的整數(shù)處理器。此外,其中的FPU被另一個(gè)ALU替換,F(xiàn)MUL被另一個(gè)MULT替換,F(xiàn)DIV被取消了。

      3.3 單元整體控制器結(jié)構(gòu)

      這個(gè)部件集成了處理流水線控制、路由器接口和多線程管理的功能,是一個(gè)多功能的高層次控制器。它要監(jiān)測(cè)各個(gè)線程的執(zhí)行情況、鄰接共享存儲(chǔ)的存取以及路由器的輸入和輸出情況。下面是可能影響到處理單元正常工作的情況:

      (1)阻塞模式下的數(shù)據(jù)到達(dá)與否。數(shù)據(jù)不足的指令就進(jìn)入等待狀態(tài)。控制器需要監(jiān)視近鄰處理單元的數(shù)據(jù)到達(dá)情況,把到達(dá)的新數(shù)據(jù)填補(bǔ)到等待的指令中,及時(shí)把補(bǔ)足了數(shù)據(jù)的指令恢復(fù)到ready狀態(tài)。

      (2)來自于路由器的輸入和輸出。遠(yuǎn)程處理單元可能會(huì)向本地處理單元請(qǐng)求數(shù)據(jù)或者發(fā)送數(shù)據(jù),也可能請(qǐng)求函數(shù)調(diào)用或者返回?cái)?shù)據(jù)。控制器需要監(jiān)視路由器的狀況,及時(shí)通知運(yùn)算器并修改執(zhí)行狀態(tài)。

      Figure 5 Arithmetic and logic pipeline of processing element圖5 處理單元的算術(shù)邏輯流水線

      (3)運(yùn)算器流水線的結(jié)果。本地流水線的結(jié)果也會(huì)輸出給正在等待的指令,控制器需要監(jiān)視這些結(jié)果的到達(dá),把到達(dá)的新數(shù)據(jù)及時(shí)填補(bǔ)到等待的指令中,并把補(bǔ)足了數(shù)據(jù)的指令恢復(fù)到ready狀態(tài)。

      如果一個(gè)線程被阻塞了,該線程就進(jìn)入等待狀態(tài),等到它需要的數(shù)據(jù)到達(dá)了,這個(gè)線程就被喚醒。每個(gè)線程的狀態(tài)都被記錄在線程狀態(tài)表中。通常,一個(gè)處理單元可以支持8~16個(gè)線程,當(dāng)前版本支持八個(gè)并發(fā)線程。線程標(biāo)識(shí)號(hào)(Thread ID)用來選擇表項(xiàng)。線程狀態(tài)表中一些重要域的意義是:

      (1)rank域中的值是調(diào)度優(yōu)先值,0為最高。

      (2)PC域中是該線程當(dāng)前要執(zhí)行的指令地址。

      (3)state 域中保存了線程的當(dāng)前狀態(tài),如INIT、WAIT、RUN等等。

      (4)avail 域中每一位代表了一個(gè)數(shù)據(jù)的存在。只有當(dāng)操作數(shù)都存在而目標(biāo)地址的數(shù)不存在時(shí)才能恢復(fù)線程的執(zhí)行。

      (5)mask位標(biāo)志一個(gè)操作數(shù)是否被該指令使用。

      (6)stamp是個(gè)時(shí)間戳,用來計(jì)量一個(gè)線程在當(dāng)前量子(Quantum)范圍內(nèi)的運(yùn)行時(shí)間,為線程調(diào)度提供信息。

      (7)M-base 是線程數(shù)據(jù)的基地址,M-size 是分配給線程的數(shù)據(jù)存儲(chǔ)大小。

      控制器還要負(fù)責(zé)與路由器的協(xié)調(diào)工作,接收外來數(shù)據(jù)或者發(fā)送數(shù)據(jù)給遠(yuǎn)程處理單元。目前可配置的線程調(diào)度算法[19,20]有輪循算法(Round-Robin)和動(dòng)態(tài)優(yōu)先權(quán)(Dynamic Priority)算法。

      4 通信機(jī)制

      熒火蟲2使用了一系列進(jìn)程通信的硬件機(jī)制,包括近鄰共享存儲(chǔ)、遠(yuǎn)程數(shù)據(jù)傳輸和遠(yuǎn)程函數(shù)調(diào)用。信息傳遞(Message Passing)使用了由處理單元包含的路由器和互聯(lián)組成的全局網(wǎng)絡(luò)。這里介紹幾種信息傳遞機(jī)制。

      4.1 鄰接共享存儲(chǔ)與直接尋址

      螢火蟲2在簇內(nèi)采用了mesh拓?fù)浣Y(jié)構(gòu)來實(shí)現(xiàn)信息傳遞網(wǎng)絡(luò)。與先進(jìn)的編譯技術(shù)與映射方法相結(jié)合,可以得到良好的網(wǎng)絡(luò)性能,使得信息流量保持在網(wǎng)絡(luò)的容量之內(nèi)。

      第一種信息傳遞機(jī)制就是近鄰共享存儲(chǔ)。每一對(duì)鄰接的處理單元之間都有一對(duì)聯(lián)線組和共享存儲(chǔ)器,如圖6所示,其容量通常在4~16個(gè)字之間。共享存儲(chǔ)的訪存地址映射在數(shù)據(jù)訪存空間之內(nèi)。處理單元可以通過共享存儲(chǔ)把信息傳送給鄰居單元。

      Figure 6 Communication of direct read/write neighbor shared memory圖6 直接讀寫近鄰共享存儲(chǔ)通信方式

      為了便于實(shí)現(xiàn)數(shù)據(jù)流類型的操作并行計(jì)算,每個(gè)共享存儲(chǔ)地址都有一個(gè)數(shù)據(jù)有效位。當(dāng)有數(shù)據(jù)寫入這個(gè)地址時(shí),這個(gè)數(shù)據(jù)有效位就被置位。當(dāng)這個(gè)位置的數(shù)據(jù)被讀取后,數(shù)據(jù)有效位就被復(fù)位。

      共享存儲(chǔ)區(qū)域通常在可尋址空間的最上部,可供兩個(gè)相連的處理單元直接存取。當(dāng)前的設(shè)計(jì)可尋址的空間是4 KB。一個(gè)PE至多有四個(gè)鄰居,也就有四個(gè)共享存儲(chǔ)區(qū)域。四個(gè)共享存儲(chǔ)區(qū)域都設(shè)置在數(shù)據(jù)訪存可尋址空間上部。

      Figure 7 Graphic interface of emulator圖7 仿真器頂層圖形界面

      4.2 路由器和遠(yuǎn)程數(shù)據(jù)傳輸

      處理單元內(nèi)的路由器用來傳遞信息。路由器與ALU并行操作,實(shí)現(xiàn)高性能的并行處理。數(shù)據(jù)傳遞包括常見的點(diǎn)到點(diǎn)傳遞、多播傳遞和函數(shù)調(diào)用。路由器需要與本地運(yùn)算器和四個(gè)鄰接處理單元協(xié)作來完成信息傳遞功能。路由器需要處理的本地信息傳遞請(qǐng)求包括:

      (1)本地?cái)?shù)據(jù)發(fā)送請(qǐng)求,來自于MOVT指令;

      (2)本地向遠(yuǎn)程處理單元發(fā)出的數(shù)據(jù)請(qǐng)求,來自于MOVF指令;

      (3)本地多播信息請(qǐng)求,來自于MOVT指令。

      路由器還需要處理來自外部的信息。外部信息傳遞請(qǐng)求包括:

      (1)來自遠(yuǎn)程處理單元的信息傳遞請(qǐng)求,由遠(yuǎn)程處理單元產(chǎn)生;

      (2)來自鄰居的多播信息請(qǐng)求,由鄰居的MOVT多播模式產(chǎn)生;

      (3)遠(yuǎn)程的數(shù)據(jù)請(qǐng)求,來自遠(yuǎn)程處理單元。

      除了處理上述信息傳遞功能外,路由器還需要處理本地和遠(yuǎn)程的函數(shù)調(diào)用和返回請(qǐng)求。這將在下一節(jié)中敘述。

      4.3 遠(yuǎn)程函數(shù)調(diào)用

      遠(yuǎn)程函數(shù)調(diào)用在本文的體系結(jié)構(gòu)中使用硬件加速來實(shí)現(xiàn),比一般的機(jī)器性能要高。遠(yuǎn)程函數(shù)調(diào)用包括命令與數(shù)據(jù)兩部分。在本地運(yùn)算器上產(chǎn)生的遠(yuǎn)程函數(shù)調(diào)用包括:

      (1)本地的遠(yuǎn)程函數(shù)調(diào)用請(qǐng)求,源于遠(yuǎn)程模式的函數(shù)調(diào)用CALL指令,還有SIMD函數(shù)的調(diào)用請(qǐng)求。

      (2)本地函數(shù)返回請(qǐng)求,來自于遠(yuǎn)程模式的函數(shù)調(diào)用RET指令。該RET是由其他處理單元送過來的CALL請(qǐng)求間接產(chǎn)生的。

      來自于遠(yuǎn)程處理單元的請(qǐng)求包括:

      (1)來自于遠(yuǎn)程的函數(shù)調(diào)用請(qǐng)求,由遠(yuǎn)程處理單元上的CALL指令產(chǎn)生;

      (2)來自于遠(yuǎn)程的RET請(qǐng)求和數(shù)據(jù),由遠(yuǎn)程處理單元產(chǎn)生。其數(shù)據(jù)部分是函數(shù)返回的結(jié)果數(shù)據(jù)。

      遠(yuǎn)程函數(shù)調(diào)用由ALU和路由器協(xié)調(diào)處理。

      5 軟件仿真環(huán)境

      為螢火蟲2號(hào)多態(tài)陣列機(jī)開發(fā)了一套時(shí)鐘精確仿真平臺(tái)。這是一套模塊化的仿真環(huán)境,各個(gè)部件可以很容易地從開發(fā)環(huán)境中插入或者移出,一個(gè)新的功能部件可以很容易地替換舊的功能部件。

      該平臺(tái)包含一個(gè)時(shí)鐘精確的仿真器和查錯(cuò)器、一個(gè)匯編器和一個(gè)表達(dá)式語言編譯器、配置器和配置文件以及圖形界面,形成了一個(gè)完整的開發(fā)環(huán)境(IDE)。圖7示出了該環(huán)境的頂層界面,包括了幾個(gè)程序編輯窗口和一個(gè)匯編/編譯窗口。

      在系統(tǒng)級(jí)層次,每個(gè)簇和其中的各種加速器、前端處理器、全局加速器等,都可以用數(shù)據(jù)通道可配置協(xié)議接入到全局互聯(lián)上。包括互聯(lián)在內(nèi)的部件都是可以直接插入使用的部件。數(shù)據(jù)通道的數(shù)據(jù)寬度是可配置的,數(shù)據(jù)傳輸使用簡單的雙軌握手協(xié)議(利用數(shù)據(jù)請(qǐng)求和應(yīng)答信號(hào))。

      一個(gè)簇中的各種控制器、處理單元、存儲(chǔ)器以及處理單元間的互聯(lián)通道,都是可以直接插入使用的部件。使用雙軌協(xié)議的數(shù)據(jù)互聯(lián)通道也都是直接插入使用的部件。

      值得一提的是,全局互聯(lián)和處理單元間的數(shù)據(jù)互聯(lián)通道都是用函數(shù)來實(shí)現(xiàn),如此,我們就可以模擬一個(gè)互聯(lián)通道的各種參數(shù),例如時(shí)延和緩存深度等。因此可以得到很詳細(xì)的仿真結(jié)果。

      查錯(cuò)器可以讓我們?cè)诓煌膶用嫔嫌^察系統(tǒng)的執(zhí)行狀態(tài),可以從一個(gè)較高層次上逐層深入到更低的層次中,直到某個(gè)具體的處理器單元。圖8給出了一個(gè)處理單元的查錯(cuò)界面。

      Figure 8 Graphical interface of processing element圖8 處理單元的圖形界面

      該仿真平臺(tái)是我們的重要工具之一。我們?cè)诜抡嫫脚_(tái)上已經(jīng)進(jìn)行了大量的實(shí)驗(yàn),得到許多有用的結(jié)果,在仿真平臺(tái)上能夠執(zhí)行的程序,下載到FPGA驗(yàn)證板上也都能夠正確執(zhí)行。

      6 性能仿真及結(jié)果

      本節(jié)給出了初步的仿真實(shí)驗(yàn)結(jié)果。雖然我們?cè)贔PGA上實(shí)現(xiàn)了一個(gè)雛形樣機(jī),但是它的接口速度很慢,配套軟件也比較原始,使用不太方便,因此性能結(jié)果多半來自時(shí)鐘精確仿真器。需要指出的是仿真平臺(tái)的結(jié)果與RTL實(shí)現(xiàn)非常接近的。當(dāng)使用較少數(shù)目的處理單元時(shí),仿真結(jié)果與FPGA實(shí)現(xiàn)的結(jié)果是一致的。

      對(duì)圖形管線中的重要任務(wù)都進(jìn)行了性能分析,包括模型視力矩陣乘積、頂點(diǎn)變換、平面剪裁等。ILP運(yùn)算方式的加速度結(jié)果如圖9所示,橫軸表示計(jì)算單元的個(gè)數(shù),縱軸表示加速比。

      Figure 9 ILP acceleration of matrix multiply/vertex transform/plane clip圖9 矩陣乘積/頂點(diǎn)變換/平面剪裁的ILP運(yùn)算加速比

      由圖9可見,使用了16個(gè)處理單元的加速比都不低于10,該結(jié)果非常好,幾個(gè)應(yīng)用的加速比都是線性的。

      圖10給出了TLP運(yùn)算方式的加速比結(jié)果。其結(jié)果也呈線性加速,比ILP的要好。但這并不意味著使用TLP并行運(yùn)算總是要優(yōu)于ILP并行運(yùn)算,畢竟,程序中固有的ILP并行程度[7]是十分有限的。

      Figure 10 TLP acceleration of graphic parallel computing圖10 圖形并行運(yùn)算的TLP加速比

      除了圖形管線中的運(yùn)算外,我們還對(duì)幾個(gè)生物信息的算法做了并行化,并在螢火蟲2上進(jìn)行了仿真實(shí)驗(yàn)。對(duì)模體識(shí)別(Motif Finding)和全局匹配兩算法進(jìn)行TLP并行運(yùn)算,實(shí)驗(yàn)結(jié)果如圖11所示。

      Figure 11 TLP parallel computing results of the biological information algorithm圖11 生物信息算法的TLP并行運(yùn)算結(jié)果

      7 結(jié)束語

      螢火蟲2號(hào)是一種適合于圖像、圖形和數(shù)字信號(hào)處理的高性能陣列機(jī)結(jié)構(gòu),它結(jié)合了SIMD、MIMD、FPGA的優(yōu)點(diǎn),能夠針對(duì)多種不同的應(yīng)用來實(shí)現(xiàn)接近ASIC的高性能計(jì)算。它能夠有機(jī)地、無縫地將數(shù)據(jù)級(jí)并行運(yùn)算、線程級(jí)并行運(yùn)算、指令級(jí)并行運(yùn)算和操作并行運(yùn)算相結(jié)合。螢火蟲2的處理單元采用了多種硬件加速方法,包括硬件線程管理、背景循環(huán)指令、阻塞與非阻塞的鄰接存儲(chǔ)方法、簡單快速的信息傳遞機(jī)制等,可以有效地節(jié)省功耗,同時(shí)高效地并行運(yùn)算。

      今后的研究重點(diǎn)是針對(duì)機(jī)器結(jié)構(gòu)的編程方法、編譯器實(shí)現(xiàn)和映射方法,以及各種圖形、圖像和數(shù)字信號(hào)處理算法在螢火蟲2上面的實(shí)現(xiàn)。

      [1] Compton K,Hauk S. Reconfigurable computing:A survey of systems and software[J]. ACM Computing Surveys, 2002,34(2):171-210.

      [2] Hideharu A. A survey on dynamically reconfigurable processors[J]. IEICE Transactions on Communications, 2006,E89-B(12):3179-3187.

      [3] Flynn M.Some computer organizations and their effectiveness[J]. IEEE Transactions on Computers, 1972,21(9):948.

      [4] Shen X B.Evolution of MPP SoC architecture techniques[J]. Science in China-Series F:Information Science, 2008,51(6):756-764.

      [5] Hillis D. New computer architectures and their relationship to physics or why CS is no good[J]. International Journal of Theoretical Physics, 1982,21(3/4):255-262.

      [6] Quinn M J. Parallel programming in C with MPI and OpenMP[M]. NY:McGraw-Hill, 2004.

      [7] Hennessey J, Patterson D. Computer architecture:A quantitative approach[M]. 4th Ed. San Francisco:Morgan Kauffmann, 2006.

      [8] Veen A H. Dataflow machine architecture[J]. Computing Surveys, 1986,18(4)365-396.

      [9] Dennis J B, Misunas D P. A preliminary architecture for a basic data-flow processor[C]∥Proc of ISCA’75, 1975:125-131.

      [10] Kilts S. Advanced FPGA design:Architecture, implementation, and optimization[M]. New Jersey:Wiley-IEEE, 2006.

      [11] Harris M. Mapping computational concepts to GPUs[C]∥Proc of ACM SIGGRAPH’05, 2005:1.

      [12] Nickolls J, Dally W J. The GPU computing era[J]. IEEE Micro, 2010,30(2):56-69.

      [13] Keckler S W, McKinley K S, Dahlin M, et al. Scaling to the end of silicon with EDGE architectures[J]. IEEE Computer, 2004,37(7):44-55.

      [14] Silc J, Robic B, Ungerer T. Asynchrony in parallel computing:From dataflow to multithreading[J]. Journal of Parallel and Distributed Computing Practices, 1998,1(1):3-30.

      [15] Woo D H, Lee H S. Extending Amdahl’s law for energy-efficient computing in the many-core era[J]. IEEE Computer, 2008,41(12):24-31.

      [16] Keckler S W, Dally W J, Khailany B, et al. GPUS and the future of parallel computing[J]. IEEE Computer, 2011,44(9):7-17.

      [17] Marowka A, Gan R. Back to thin-core massively parallel processors[J]. IEEE Computer,2011,44(12):49-54.

      [18] Dhong S H, Takahashi O, Yoshihara H, et al. A 4.8 GHz fully pipelined embedded SRAM in the streaming processor of a cell processor[C]∥Proc of IEEE International Solid-State Circuits Conference,2005:486-612.

      [19] Li T, Baumberger D, Koufaty D A, et al. Efficient operating system scheduling for performance-asymmetric multi-core architectures[C]∥Proc of the 2007 ACM/IEEE Conference on Supercomputing, 2007:1.

      [20] Liu C L, Layland J W. Scheduling algorithms for multiprogramming in a hard-real-time environment[J]. Journal of the ACM, 1973,20(1):46-61.

      [21] Huang H-C, Li T, Han J-G. Simulator implementation and performance study of a polymorphous array computer[C]∥Proc of ISPA’13, 2013:1.

      LITao,born in 1954,PhD,professor,CCF member(E200028228M),his research interests include computer architecture, ASIP design, and VLSI design.

      楊婷(1989-),女,陜西澄城人,碩士生,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)圖形學(xué)和集成電路設(shè)計(jì)。E-mail:yangting198962@163.com

      YANGTing,born in 1989,MS candidate,her research interests include computer architecture,computer graphics,and VLSI design.

      易學(xué)淵(1987-),男,湖北黃岡人,碩士生,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)圖形學(xué)和集成電路設(shè)計(jì)。E-mail:yxy19897891@163.com

      YIXue-yuan,born in 1987,MS candidate,his research interests include computer architecture,computer graphics,and VLSI design.

      蒲林(1989-),男,重慶人,碩士生,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)圖形學(xué)和集成電路設(shè)計(jì)。E-mail:pulinup@126.com

      PULin,born in 1989,MS candidate,his research interests include computer architecture,computer graphics,and VLSI design.

      錢博文(1988-),男,安徽蒙城人,碩士生,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)圖形學(xué)和集成電路設(shè)計(jì)。E-mail:bymoney@126.com

      QIANBo-wen,born in 1988,MS candidate,his research interests include computer architecture,computer graphics,and VLSI design.

      黃光新(1986-),男,陜西安康人,碩士生,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)圖形學(xué)和集成電路設(shè)計(jì)。E-mail:bymoney@126.com

      HUANGGuang-xin,born in 1986,MS candidate,his research interests include computer architecture,computer graphics,and VLSI design.

      黃虎才(1989-),男,廣西陽朔人,碩士生,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)圖形學(xué)和系統(tǒng)軟件。E-mail:chinahhucai@gmail.com

      HUANGHu-cai,born in 1989,MS candidate,his research interests include computer architecture,computer graphics,and system software.

      韓俊剛(1943-),男,吉林長春人,碩士,教授,研究方向?yàn)檐浖陀布男问交?yàn)證、圖形處理器和新型計(jì)算機(jī)體系結(jié)構(gòu)。E-mail:hanjungang@xupt.edu.cn

      HANJun-gang,born in 1943,MS,professor,his research interests include the formal verification of software and hardware, graphics processor, and the new computer architecture.

      Architectureofapolymorphousparallelcomputer

      LI Tao1,YANG Ting1,YI Xue-yuan1,PU Lin1,QIAN Bo-wen1,HUANG Guang-xin2,HUANG Hu-cai2,HAN Jun-gang2

      (1.School of Electronic Engineering,Xi’an University of Posts and Telecommunications,Xi’an 710061;2.School of Computer Science,Xi’an University of Posts and Telecommunications,Xi’an 710061,China)

      A novel and efficient polymorphous array architecture, the Firefly2, is proposed. Its Processing Element (PE) can run in both SIMD and MIMD modes. The PE supports asynchronous inter-thread communication and efficient parallel execution of distributed instructions. A PE contains a multi-thread manager to realize one-step context switching and a router for fast data communication. This architecture is highly efficient in realizing parallel computation at thread level, data level, and instruction level. In particular, the performance of this architecture is comparable with ASIC when used for stream processing. This architecture is capable of implementing high-performance, classical static and dynamic dataflow computation. The architecture is designed for computer graphics, image processing and digital signal processing applications.

      array computer;polymorphous processor;computer graphics;image processing;digital signal processing;data level parallelism;thread level parallelism;instruction level parallelism

      2013-08-11;

      :2013-10-20

      國家自然科學(xué)基金重大項(xiàng)目(61136002);西安郵電大學(xué)陜西省2012重點(diǎn)學(xué)科建設(shè)西郵計(jì)算機(jī)體系結(jié)構(gòu)項(xiàng)目

      1007-130X(2014)02-0191-10

      TP303

      :A

      10.3969/j.issn.1007-130X.2014.02.001

      李濤(1954-),男,河北饒陽人,博士,教授,CCF會(huì)員(E200028228M),研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)、專用機(jī)器設(shè)計(jì)和集成電路設(shè)計(jì)。E-mail:litao@xupt.edu.cn

      通信地址:710061 陜西省西安市紅專南路西安郵電大學(xué)18樓1611室Address:Room 1611,Building 18,Xi’an University of Posts and Telecommunications,Hongzhuan Rd South, Xi’an 710061,Shaanxi,P.R.China

      猜你喜歡
      函數(shù)調(diào)用處理單元線程
      不同生物鏈組合對(duì)黃河下游地區(qū)引黃水庫富營養(yǎng)化及藻類控制
      基于C語言的數(shù)學(xué)菜單的設(shè)計(jì)與實(shí)現(xiàn)
      城市污水處理廠設(shè)備能耗及影響因素分析研究
      科技資訊(2021年10期)2021-07-28 04:04:53
      長填齡滲濾液MBR+NF組合工藝各處理單元的DOM化學(xué)多樣性
      一種高可用負(fù)載均衡網(wǎng)絡(luò)數(shù)據(jù)采集處理的方法及系統(tǒng)
      基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測(cè)方法*
      探討C++編程中避免代碼冗余的技巧
      淺談linux多線程協(xié)作
      Unity3D項(xiàng)目腳本優(yōu)化分析與研究
      中國新通信(2017年1期)2017-03-08 03:12:21
      Linux線程實(shí)現(xiàn)技術(shù)研究
      东乡族自治县| 宁蒗| 南宁市| 天津市| 马公市| 光山县| 灵石县| 阿坝县| 章丘市| 马鞍山市| 扬中市| 马龙县| 新化县| 上栗县| 镇安县| 香格里拉县| 齐河县| 西丰县| 吕梁市| 望城县| 天津市| 临安市| 防城港市| 象山县| 嘉义市| 兴仁县| 广饶县| 竹北市| 晋城| 汶川县| 宁城县| 伊春市| 渝中区| 虞城县| 延川县| 沐川县| 吉水县| 勐海县| 白城市| 武邑县| 治县。|