《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 多態(tài)并行處理器中的SIMD控制器設(shè)計(jì)與實(shí)現(xiàn)
多態(tài)并行處理器中的SIMD控制器設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第11期
蒲 林1,,李 濤1,,易學(xué)淵2,韓俊剛2
1.西安郵電大學(xué) 電子工程學(xué)院,,陜西 西安710061,; 2.西安郵電大學(xué) 計(jì)算機(jī)學(xué)院,,陜西 西安710061
摘要: 設(shè)計(jì)和實(shí)現(xiàn)了一種多態(tài)并行處理器中的SIMD控制器。為滿足圖像并行處理的需要,,以實(shí)現(xiàn)高效的數(shù)據(jù)級(jí)并行計(jì)算為目標(biāo),,采用狀態(tài)機(jī)實(shí)現(xiàn)了行、列,、簇控制器的設(shè)計(jì),,完成了SIMD指令的發(fā)送、數(shù)據(jù)的加載和遠(yuǎn)程數(shù)據(jù)的傳輸,。在陣列機(jī)上分區(qū)并發(fā)實(shí)現(xiàn)了SIMD和MIMD兩種計(jì)算模式,,能夠?qū)崿F(xiàn)兩種計(jì)算模式的切換。專用的硬件電路設(shè)計(jì)提高了該處理器處理并行數(shù)據(jù)的能力,。
中圖分類號(hào): TN492
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)11-0053-03
Design and implementation of SIMD controller in polymorphism parallel processor
Pu Lin1,,Li Tao1,Yi Xueyuan2,,Han Jungang2
1.School of Electronic Engineering,,Xi′an University of Posts & Telecommunications,Xi′an 710061,,China,; 2.School of Computer Science & Technology, Xi′an University of Posts & Telecommunications,Xi′an 710061,,China
Abstract: The designed and implementation of a SIMD controller for a polymorphism parallel processor are presented in the paper. To meet the need for parallel processing and aiming at efficient data level parallel computation, we use the state machine approach to design the row, column and cluster controllers. The row controller sends SIMD instructions to processing elements, the column controller performs data and program loading and remote data access. The polymorphous machine employs two computation modes, the SIMD mode and the MIMD mode. The controllers are mainly used for the SIMD mode of computation. A dedicated hardware circuit design improves the ability to handle parallel data of the processor.
Key words : polymorphism parallel processor,;SIMD controller;data level parallel,;array machine

    圖形圖像處理技術(shù)是信息處理領(lǐng)域中的一項(xiàng)熱門技術(shù),,在計(jì)算機(jī)視覺、氣象信息,、地球資源勘測等領(lǐng)域得到廣泛的應(yīng)用[1],。隨著人們對(duì)圖形圖像信息應(yīng)用需求的擴(kuò)大和計(jì)算機(jī)技術(shù)的飛速發(fā)展,,提高處理的速度成為了圖形圖像處理中需要解決的難點(diǎn)之一,。并行處理[2]是解決大規(guī)模圖形圖像處理問題的有效手段,但由于體積大,、功耗高和難以維護(hù)等特點(diǎn),,使以多處理系統(tǒng)為代表的很多圖形圖像處理系統(tǒng)難以得到廣泛應(yīng)用[3]。多態(tài)并行處理器實(shí)現(xiàn)了單指令多數(shù)據(jù)(SIMD)和多指令多數(shù)據(jù)(MIMD)計(jì)算模式的混合,,其結(jié)構(gòu)簡單,,功耗低,同時(shí)在陣列機(jī)上分區(qū)并發(fā)實(shí)現(xiàn)該兩種模式,,并且能夠在兩種模式間實(shí)現(xiàn)一步轉(zhuǎn)換[4-5],。其中SIMD控制器能夠針對(duì)圖形圖像處理算法開發(fā)出更多的數(shù)據(jù)并行性[6],,提高圖形圖像的處理性能。

1 多態(tài)并行處理器
    本文設(shè)計(jì)了一種新型的多態(tài)并行處理器中的SIMD控制器,。該多態(tài)并行處理器是一個(gè)陣列機(jī),,由多個(gè)處理器簇組成,每個(gè)簇是由處理單元(PE)組成的二維陣列,,是一種較常見的陣列結(jié)構(gòu),,這種簇結(jié)構(gòu)可以分層次構(gòu)成。如圖1所示,一個(gè)基本簇是由16個(gè)PE組成的4×4陣列,,處理單元通過近鄰互聯(lián)組成二維陣列,。每一行有行控制器(RC),每一列有列控制器(CC),,整個(gè)簇由簇控制器進(jìn)行控制,。
    多態(tài)并行處理器包含1個(gè)前端處理器、4個(gè)F簇,、4個(gè)S簇,、一些專用硬件加速器、一個(gè)帶有緩存的片上SRAM存儲(chǔ)和內(nèi)部互聯(lián)通道,,如圖2所示,。F簇處理單元包含浮點(diǎn)處理器和定點(diǎn)處理器,S簇只包含定點(diǎn)處理器,。
    如圖3所示,,單個(gè)處理單元由帶有路由器(RU)的ALU、數(shù)據(jù)存儲(chǔ)(D-mem),、指令存儲(chǔ)(I-mem),、鄰接共享存儲(chǔ)和SIMD接口控制器(ICTL)構(gòu)成。

    在多態(tài)并行處理器中,,各PE的數(shù)據(jù)和程序的加載均由SIMD控制器控制,,SIMD控制器設(shè)計(jì)的好壞直接影響到各PE的執(zhí)行效率及并行度。
2 SIMD控制器的硬件設(shè)計(jì)
    SIMD控制器主要由1個(gè)簇控制器模塊,、4個(gè)行控制器模塊和4個(gè)列控制器模塊構(gòu)成,,如圖1所示。各模塊功能:簇控制器模塊主要完成整個(gè)簇中處理單元的控制,,包括協(xié)調(diào)程序和數(shù)據(jù)的加載以及控制整個(gè)簇實(shí)現(xiàn)SIMD計(jì)算,;行控制器模塊主要功能是將一行的PE重構(gòu)成SIMD模式,進(jìn)行數(shù)據(jù)級(jí)并行計(jì)算以及初始化SIMD指令,;列控制器模塊主要完成對(duì)簇內(nèi)共享存儲(chǔ)和互聯(lián)數(shù)據(jù)通道的控制,。

    狀態(tài)跳轉(zhuǎn)說明如下:
    (1)IDLE:空閑狀態(tài)。接收到初始化請(qǐng)求后,跳轉(zhuǎn)至INIT_DATA狀態(tài),,開始加載數(shù)據(jù)/指令,。
    (2)INIT_DATA:初始化指令/數(shù)據(jù)到簇緩存狀態(tài)。簇緩存大小有限,,指令/數(shù)據(jù)的加載需分批進(jìn)行,,待當(dāng)前批的指令/數(shù)據(jù)加載完成后,跳轉(zhuǎn)到SEND_DATA狀態(tài),。
    (3)SEND_DATA:發(fā)送指令/數(shù)據(jù)狀態(tài),。指令/數(shù)據(jù)加載完成后,簇控制器將簇緩存中的指令/數(shù)據(jù)廣播給行,、列控制器,,若檢測到數(shù)據(jù)包頭信息為寫操作,則發(fā)送完相應(yīng)指令/數(shù)據(jù)后,,跳回IDLE狀態(tài),;若檢測到為讀操作,則跳轉(zhuǎn)至RD_DATA,。
    (4)RD_DATA:讀數(shù)據(jù)狀態(tài),。根據(jù)包頭所含數(shù)據(jù)大小信息,待接收完列控制器發(fā)送的所需數(shù)據(jù)后,,跳轉(zhuǎn)至IDLE狀態(tài),。
2.3 行控制器
    行控制器分為兩個(gè)部分進(jìn)行設(shè)計(jì):一是初始化SIMD指令;二是將行控制器所在行的PE重構(gòu)成SIMD模式進(jìn)行數(shù)據(jù)并行計(jì)算,,如圖5所示,。

    各狀態(tài)說明如下:
    (1)IDLE:空閑狀態(tài)。若檢測到初始化使能及數(shù)據(jù)有效信號(hào),,則開始解析數(shù)據(jù)包,,狀態(tài)跳轉(zhuǎn)到RECV_INSTR_
PACK;若檢測到路由器請(qǐng)求信號(hào),,則跳轉(zhuǎn)到RECV_RT狀態(tài),,同時(shí)給路由器一個(gè)接收數(shù)據(jù)包響應(yīng)信號(hào)。
    (2)RECV_INSTR_PACK:接收指令包狀態(tài),。若數(shù)據(jù)經(jīng)檢測不是加載給本控制器,,則跳回至IDLE狀態(tài);若是加載給本行控制器且是寫操作,,則跳轉(zhuǎn)到INIT狀態(tài),。
    (3)INIT:指令初始化狀態(tài),。指令加載完成后,,跳轉(zhuǎn)回IDLE狀態(tài)。
    (4)RECV_RT:接收路由器包狀態(tài)。若檢測到CALLC指令,,則給行控制器所在行的PE發(fā)送請(qǐng)求,,同時(shí)狀態(tài)跳轉(zhuǎn)到WAIT;若路由器傳來的數(shù)據(jù)包有誤,,則跳回IDLE狀態(tài),。
    (5)WAIT:等待狀態(tài)。給行控制器所在行的4個(gè)PE發(fā)送SIMD請(qǐng)求信號(hào)后,,PE停止取址,,待流水線中的指令排空且4個(gè)PE均返回了響應(yīng)信號(hào)后,跳轉(zhuǎn)至SEND_INSTR狀態(tài),。
    (6)SEND_INSTR:發(fā)送指令狀態(tài),。將從解析出的起始地址開始的指令同時(shí)發(fā)送給所在行的4個(gè)PE以執(zhí)行SIMD運(yùn)行模式,待檢測到RETC指令后,,停止發(fā)送指令,,給路由器發(fā)送請(qǐng)求信號(hào),同時(shí)給4個(gè)PE一個(gè)結(jié)束信號(hào)(PE則繼續(xù)之前的MIMD取址),,此時(shí)跳轉(zhuǎn)到SEND_RT狀態(tài),。
    (7)SEND_RT:發(fā)送路由器包狀態(tài)。接收到路由器響應(yīng)信號(hào)后,,行控制器發(fā)送數(shù)據(jù)包,,同時(shí)跳轉(zhuǎn)回IDLE狀態(tài)。
2.4 列控制器

 


    列控制器模塊的設(shè)計(jì)分為4個(gè)部分:(1)初始化程序/數(shù)據(jù)的加載,;(2)簇控制器對(duì)列控制器存儲(chǔ)中計(jì)算結(jié)果的讀?。?3)將PE計(jì)算結(jié)果寫入到列存儲(chǔ)中,;(4)從列存儲(chǔ)中動(dòng)態(tài)讀取數(shù)據(jù),。狀態(tài)機(jī)如圖6所示。

    各狀態(tài)說明如下:
    (1)IDLE:空閑狀態(tài),。若檢測到廣播的初始化使能及數(shù)據(jù)有效信號(hào),,則開始解析數(shù)據(jù)包,同時(shí)跳轉(zhuǎn)到RECV_PACK狀態(tài),;若檢測到路由器請(qǐng)求信號(hào),,則跳轉(zhuǎn)到RECV_RT_PACK狀態(tài)。
    (2)RECV_PACK:接收初始化數(shù)據(jù)包結(jié)束狀態(tài),。若檢測到不是發(fā)送給本列控制器的數(shù)據(jù),,則下一狀態(tài)跳轉(zhuǎn)回IDLE,繼續(xù)等待下一個(gè)廣播包頭,;否則,,若操作類為寫,則狀態(tài)跳轉(zhuǎn)到INIT_DATA,若為讀,,則跳轉(zhuǎn)到RD_DATA狀態(tài),。
    (3)INIT_DATA:初始化數(shù)據(jù)狀態(tài)。將初始化數(shù)據(jù)廣播給對(duì)應(yīng)列存儲(chǔ)和4個(gè)PE,,待初始化數(shù)據(jù)完成,,跳回IDLE狀態(tài)。
    (4)RD_DATA:讀數(shù)據(jù)狀態(tài),。根據(jù)包頭中信息,,簇控制器從列存儲(chǔ)讀取數(shù)據(jù),待數(shù)據(jù)讀取完成,,跳回IDLE狀態(tài),。
    (5)RECV_RT_PACK:接收路由器包頭狀態(tài)。開始接收由路由器傳來的數(shù)據(jù)包頭,,此時(shí)有兩種不同的數(shù)據(jù)包格式,,一種用于動(dòng)態(tài)讀取數(shù)據(jù)(MVF指令),另一種用于將數(shù)據(jù)寫入列存儲(chǔ)(MVT指令),。若檢測到是MVT指令,,則跳轉(zhuǎn)到RECV_DATA狀態(tài);若檢測到是MVF指令,,則跳轉(zhuǎn)到WAIT_ACK狀態(tài),。
    (6)RECV_DATA:將PE計(jì)算結(jié)果寫入列存儲(chǔ)。數(shù)據(jù)寫入完成后,,跳轉(zhuǎn)到IDLE狀態(tài),。
    (7)WAIT_ACK:等待路由器響應(yīng)狀態(tài)。請(qǐng)求使用路由器傳輸數(shù)據(jù)后,,必須等待路由器空閑才能得到響應(yīng),,等到響應(yīng)信號(hào)后跳轉(zhuǎn)到SEND_DATA狀態(tài)。
    (8)SEND_DATA:發(fā)送數(shù)據(jù)狀態(tài),。根據(jù)數(shù)據(jù)包頭中包含的數(shù)據(jù)起始地址和大小動(dòng)態(tài)讀取列存儲(chǔ)內(nèi)數(shù)據(jù),,當(dāng)請(qǐng)求的數(shù)據(jù)讀取完成后跳轉(zhuǎn)到IDLE狀態(tài)。
    本文采用狀態(tài)機(jī)設(shè)計(jì)和實(shí)現(xiàn)了SIMD控制器,,并對(duì)電路進(jìn)行了功能驗(yàn)證與DC綜合以及FPGA驗(yàn)證,。結(jié)果表明,SIMD控制器電路工作正常且電路具有良好的可擴(kuò)展性,,實(shí)用性強(qiáng),,能夠滿足多態(tài)并行處理器的要求。
參考文獻(xiàn)
[1] 李勇.一種SIMD多DSP數(shù)字圖像處理系統(tǒng)研究與設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,,2007,,33(11):71-73.
[2] BOYD C.Data parallel computing[J].ACM Queue,,2008,6(2):30-39.
[3] 李強(qiáng).32位圖像向量處理器關(guān)鍵技術(shù)研究與設(shè)計(jì)[D].大連:大連理工大學(xué),,2009.
[4] 李濤.面向圖形和圖像處理的輕核陣列機(jī)結(jié)構(gòu)[J].西安郵電學(xué)院學(xué)報(bào),,2012,,17(3):41-47.
[5] Li Tao.A polymorphic array architecture for graphics and image processing[C].2012 Fifth International Symposium on PAAP,,2012:242-249.
[6] MAROWKA A,GAN R.Back to thin-core massively parallel processors[J].IEEE Computer,,2011,,44(12):49-54.

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