一種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構的制作方法
【專利摘要】本實用新型公開了一種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,其數(shù)據(jù)流控制模塊包括三個部分:矢量加載模塊,矢量移相模塊,解包分發(fā)模塊。三個模塊通過雙緩沖寄存器實現(xiàn)多層次的復合兩級流水線,并通過硬件握手實現(xiàn)流水線的同步。其中,矢量加載模塊通過動態(tài)重構配置實現(xiàn)對不同數(shù)據(jù)地址空間的訪問,完成數(shù)據(jù)從存儲器到矢量數(shù)據(jù)寄存器文件的加載。矢量移相模塊通過動態(tài)可重構配置的方式實現(xiàn)對數(shù)據(jù)流的移位,拼接等操作,輸出數(shù)據(jù)寫入矢量相移寄存器文件。解包分發(fā)模塊通過配置實現(xiàn)寄存器數(shù)據(jù)的分發(fā)操作,滿足陣列對計算數(shù)據(jù)并發(fā)輸入的需求。這種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構有效解決了數(shù)據(jù)加載過程中的非對齊存取和數(shù)據(jù)規(guī)整的問題。
【專利說明】一種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構
【技術領域】
[0001]本實用新型涉及一種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,屬于嵌入式可重構設計技術。
【背景技術】
[0002]可重構計算是一種將軟件的靈活性和硬件的高效性結合在一起的計算方式,比如現(xiàn)場可編程邏輯門陣列就是一個可重構計算應用的具體實例。和普通微處理器之間的區(qū)別在于它不僅可以改變控制流,還可以改變數(shù)據(jù)通路的結構,具有高性能、低硬件開銷和功耗、靈活性好、拓展性好的優(yōu)點。目前主要應用于媒體處理、模式識別、基帶處理等計算密集型的算法。隨著嵌入式處理器普遍要求縮短設計周期、降低設計和開發(fā)成本,另外最終市場和技術的不確定性越來越大,可重構處理初步成為嵌入式處理器國際發(fā)展的趨勢。不僅如此,在很多高性能計算的領域它也有所涉足,包括結構分析、計算流體力學、分子模擬、生物信息、計算化學、地震地質(油氣勘探)、數(shù)值氣象、宇宙學研究等。
[0003]隨著各類軟件應用的要求越來越高,相應的,對可重構系統(tǒng)的性能要求也越來越高。同樣可重構計算的數(shù)據(jù)流通也面臨諸多挑戰(zhàn),除了面臨大數(shù)據(jù)訪問量的挑戰(zhàn),還需要面對由于訪存效率低下而帶來的性能降低。訪存效率低的原因除了存儲器的固有訪存延時,數(shù)據(jù)在存儲器中存放結構,數(shù)據(jù)的訪存方式對傳輸效率也有極大的影響。數(shù)據(jù)傳輸面臨非對齊存取和數(shù)據(jù)規(guī)整的問題。
[0004]傳統(tǒng)的通用處理器會在編譯過程中自動對數(shù)據(jù)結構進行補足,并對可能產生這類問題的冒險行為進行警告。不對齊的內存字操作往往會導致硬件異常,或者在通用處理器的微碼中將這類操作轉換成兩次讀操作。
[0005]單指令多數(shù)據(jù)流處理器在地址對齊時可以一次并發(fā)訪問多個數(shù)據(jù),但是當面對地址不對齊時,則需要通過數(shù)據(jù)規(guī)整和拼接得到所需的數(shù)據(jù)結構。雖然并發(fā)訪問獲得數(shù)據(jù)帶寬的成倍提高,但是增加了編程復雜性,通常僅針對應用的核心計算進行單指令多數(shù)據(jù)流代碼的改寫。
[0006]專用集成電路方式在實現(xiàn)特定的數(shù)據(jù)訪存行為時,有極高的效率。專用集成電路的實現(xiàn)方式可以同時實現(xiàn)數(shù)據(jù)移位和訪存,增加數(shù)據(jù)訪存效率的同時,提高應用的處理性能。但是,針對具體算法的特殊設計不僅設計復雜,而且導致專用集成電路應用的局限性。
[0007]在已有的可重構架構研究中,采用了多種設計方法來滿足數(shù)據(jù)流規(guī)整的需求。傳統(tǒng)的粗粒度可重構架構為了滿足靈活的數(shù)據(jù)存儲,采用可重構計算單元顯示存取的方式實現(xiàn)陣列外數(shù)據(jù)存取,并針對多模塊的存儲結構進行訪存調度滿足計算數(shù)據(jù)的需求。這樣的設計簡化了數(shù)據(jù)的路由通路,但是存取的可重構計算單元同樣也占用了計算資源,特別是可重構計算單元的數(shù)據(jù)存取會導致整個陣列計算流水被阻塞,導致計算性能受到限制。雖然通過探索數(shù)據(jù)的預取和重用可以有效的隱藏訪存開銷,但是仍然受到數(shù)據(jù)并行性的影響,無法利用多個計算之間數(shù)據(jù)的依賴關系獲得更好的數(shù)據(jù)并行性的執(zhí)行性能。實用新型內容
[0008]發(fā)明目的:為了克服現(xiàn)有技術中存在的不足,本實用新型提供一種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,探索基于預取和重用的訪存單元寄存器,并對可重構陣列離散不規(guī)則計算數(shù)據(jù)的需求進行研究,提出基于矢量寄存器文件設計的數(shù)據(jù)流規(guī)整單元,解決可重構訪存數(shù)據(jù)通路的瓶頸。
[0009]技術方案:為實現(xiàn)上述目的,本實用新型采用的技術方案為:
[0010]一種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,包括通過硬件連接實現(xiàn)的數(shù)據(jù)流控制模塊,所述數(shù)據(jù)流控制模塊包括矢量加載模塊、矢量移相模塊和解包分發(fā)模塊三個模塊,所述三個模塊通過矢量數(shù)據(jù)寄存器文件和矢量相移寄存器文件實現(xiàn)多層次的復合兩級流水線,并通過硬件握手實現(xiàn)流水線的同步,具體為:
[0011]所述矢量加載模塊:對不同數(shù)據(jù)地址空間進行訪問,將數(shù)據(jù)從存儲器加載到矢量數(shù)據(jù)寄存器文件;
[0012]所述矢量移相模塊:對矢量數(shù)據(jù)寄存器文件中數(shù)據(jù)進行移位、拼接等操作,然后將輸出的數(shù)據(jù)寫入矢量相移寄存器文件;
[0013]所述解包分發(fā)模塊:將矢量相移寄存器文件中數(shù)據(jù)的分發(fā)操作,以滿足可重構陣列對計算數(shù)據(jù)并發(fā)輸入的需求。
[0014]優(yōu)選的,所述矢量加載模塊主要用于實現(xiàn)對不同存儲空間的訪存控制和數(shù)據(jù)流的非對齊加載,包括訪存控制邏輯、并發(fā)訪存狀態(tài)機、內部存儲訪存控制、外部存儲訪存控制和數(shù)據(jù)選擇:
[0015]所述訪存控制邏輯:解碼動態(tài)重構配置信息后向并發(fā)訪存狀態(tài)機發(fā)出控制命令;
[0016]所述并發(fā)訪存狀態(tài)機:利用內部和外部存儲器獨立的數(shù)據(jù)通路,并行處理內部和外部存儲的訪存請求,以減少數(shù)據(jù)等待的時延;
[0017]所述內部存儲訪存控制和外部存儲訪存控制:除了向系統(tǒng)總線發(fā)起滿足協(xié)議的訪存操作,還需要將非對齊的訪存請求拆分為地址對齊的多次訪存操作;
[0018]所述數(shù)據(jù)選擇:從系統(tǒng)總線返回的數(shù)據(jù)在數(shù)據(jù)選擇中完成移位、拼接等操作之后寫入矢量數(shù)據(jù)寄存器文件中。
[0019]優(yōu)選的,所述矢量移相模塊中設計有類似于擴展單指令多數(shù)據(jù)流結構的移相處理簇,可以同時并行處理多個不同的寄存器,獲得數(shù)據(jù)處理能力的多倍提升。
[0020]優(yōu)選的,所述移相處理簇中設計有移相處理單元,所述移相處理單元的結構與可重構計算單元類似,區(qū)別在于移相處理單元的處理核心不是用于處理數(shù)據(jù)計算的算術邏輯單元,而是增強的移相單元;除了處理核心的不同,數(shù)據(jù)位寬也比可重構計算單元大很多,采用128bit設計;另外,由于采用傳統(tǒng)的單指令多數(shù)據(jù)流結構,數(shù)據(jù)的輸入不需要考慮鄰近處理單元的直接連接,而僅僅需要考慮來自不同寄存器文件的輸入即可。
[0021]優(yōu)選的,所述解包分發(fā)模塊負責將矢量移相模塊處理后的數(shù)據(jù)加載到可重構陣列數(shù)據(jù)接口,主要實現(xiàn)兩種功能:
[0022]數(shù)據(jù)對齊:由于存在可重構計算單元的數(shù)據(jù)位寬與應用的計算位寬不匹配,因而在解包分發(fā)模塊,需要對數(shù)據(jù)進行對齊操作,包括移位和補齊操作;
[0023]數(shù)據(jù)的路由分發(fā):利用解包分發(fā)模塊中的解包分發(fā)單元實現(xiàn)矢量相移寄存器文件中每個矢量相移寄存器與每行可重構計算單元之間的一一對應關系。[0024]應當理解,本案中涉及的各個部分及其功能均通過寄存器或寄存器文件的連接實現(xiàn)。
[0025]有益效果:本實用新型提供的粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,矢量加載模塊、矢量移相模塊和解包分發(fā)模塊通過雙緩沖寄存器實現(xiàn)多層次的復合兩級流水線,并通過硬件握手實現(xiàn)流水線的同步,有效解決了數(shù)據(jù)加載過程中的非對齊存取和數(shù)據(jù)規(guī)整的問題;相對于傳統(tǒng)的顯示存取可重構的數(shù)據(jù)訪存設計,數(shù)據(jù)流規(guī)整單元的設計可以有效的提高計算性能達到平均3.34倍。
【專利附圖】
【附圖說明】
[0026]圖1為本實用新型的結構示意圖;
[0027]圖2為矢量加載模塊結構示意圖;
[0028]圖3為并發(fā)訪存狀態(tài)機狀態(tài)轉換示意圖;
[0029]圖4為矢量移相模塊結構示意圖;
[0030]圖5為移相處理單元結構示意圖;
[0031]圖6為解包分發(fā)模塊結構示意圖。
【具體實施方式】
[0032]下面結合附圖對本實用新型作更進一步的說明。
[0033]一種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,包括通過硬件連接實現(xiàn)的數(shù)據(jù)流控制模塊,如圖1所示,所述數(shù)據(jù)流控制模塊包括矢量加載模塊、矢量移相模塊和解包分發(fā)模塊三個模塊,三個模塊通過雙緩沖寄存器實現(xiàn)多層次的復合兩級流水線,并通過硬件握手實現(xiàn)流水線的同步。
[0034]所述矢量加載模塊:通過動態(tài)重構配置實現(xiàn)對不同數(shù)據(jù)地址空間的訪問,完成數(shù)據(jù)從存儲器到矢量數(shù)據(jù)寄存器文件的加載,具體操作方式如圖2所示;
[0035]所述矢量移相模塊:通過動態(tài)可重構配置的方式實現(xiàn)對矢量數(shù)據(jù)寄存器文件中數(shù)據(jù)的移位、拼接等操作,將輸出的數(shù)據(jù)寫入矢量相移寄存器文件,其工作機理如圖4所示;
[0036]所述解包分發(fā)模塊:通過動態(tài)重構配置實現(xiàn)矢量相移寄存器文件中數(shù)據(jù)的分發(fā)操作,滿足可重構陣列對計算數(shù)據(jù)并發(fā)輸入的需求,工作流程如圖6所示。
[0037]矢量加載模塊通過兩條不同位寬的標準AMBA AHB2.0總線與系統(tǒng)連接,分別與片上存儲器和片外存儲控制器連接,可以滿足可重構陣列對不同數(shù)據(jù)傳輸?shù)脑O計需求。動態(tài)重構配置信息在訪存控制邏輯中解碼,向并發(fā)訪存狀態(tài)機發(fā)出控制命令。根據(jù)地址空間的不同,并發(fā)訪存狀態(tài)機控制內部存儲訪存控制和外部存儲訪存控制向系統(tǒng)總線發(fā)出訪存操作。從系統(tǒng)總線返回的數(shù)據(jù)在數(shù)據(jù)選擇中完成移位、拼接等操作之后寫入矢量寄存器文件中。內部存儲訪存控制和外部存儲訪存控制同時維護了各自的總線訪存協(xié)議控制,用于實現(xiàn)與外部接口的交互。下面通過圖3對并發(fā)訪存狀態(tài)機工作方式具體分析。
[0038]并發(fā)訪存狀態(tài)機利用內部和外部存儲器獨立的數(shù)據(jù)通路,并行處理內部和外部存儲的訪存請求,減少數(shù)據(jù)等待的時延。如圖3所示,EI表示有效的內部訪存請求,EE表示有效的外部訪存請求,VI表示有效的內部請求數(shù)據(jù)返回,VE表示有效的外部請求數(shù)據(jù)返回。并發(fā)訪存狀態(tài)機根據(jù)請求信號按照片上優(yōu)先級大于片外優(yōu)先級的設定進行狀態(tài)的跳轉。當EI有效時,不考慮EE是否有效,并發(fā)訪存狀態(tài)機都會從IDLE狀態(tài)跳轉到INTERNAL狀態(tài)。此時,如果EE信號有效,則并發(fā)訪存狀態(tài)機跳轉到BOTH狀態(tài),同時處理內部數(shù)據(jù)和外部數(shù)據(jù)訪存;反之,如果EE信號無效,則在內部數(shù)據(jù)訪存完成VI信號有效的時候,并發(fā)訪存狀態(tài)機返回到IDLE狀態(tài)。僅當只有EE信號有效,而EI信號無效時,并發(fā)訪存狀態(tài)機從IDLE狀態(tài)進入EXTERNAL狀態(tài)。此時,如果EI信號有效,那么并發(fā)訪存狀態(tài)機跳轉到BOTH狀態(tài)。在BOTH狀態(tài),根據(jù)數(shù)據(jù)訪存完成的先后順序,從BOTH狀態(tài)分別退回到INTERNAL狀態(tài)或EXTERNAL狀態(tài)。當存在多個對同一類型的存儲空間訪存操作時,如對片上存儲器進行多次訪問,此時,并發(fā)訪存狀態(tài)機僅在IDLE和INTERNAL狀態(tài)間切換,并發(fā)訪存狀態(tài)機簡化為單一的順序訪存控制邏輯。
[0039]為了滿足非對齊存取的設計需求,需要對訪存請求和返回的數(shù)據(jù)進行處理。由于系統(tǒng)總線的傳輸需要滿足地址對齊,因而內部存儲訪存控制和外部存儲訪存控制除了向總線發(fā)起滿足協(xié)議的訪存操作,還需要將非對齊的訪存請求,拆分為地址對齊的多次訪存操作。同時,需要將多個返回的數(shù)據(jù)進行拼接,以得到非對齊存取的矢量數(shù)據(jù)。數(shù)據(jù)的拼接操作在數(shù)據(jù)選擇中完成。例如,當矢量加載模塊從起始地址低位為0x3處開始加載時,由于外部總線的采用32bit對齊Burst4的方式進行數(shù)據(jù)訪問,因而,需要將兩次總線訪存0x0和0x4的數(shù)據(jù)進行移位拼接,才能獲得所需的訪存數(shù)據(jù)。
[0040]如圖4所示,所述矢量移相模塊中設計有類似于擴展單指令多數(shù)據(jù)流結構的移相處理簇,可以同時并行處理多個不同的寄存器,獲得數(shù)據(jù)處理能力的多倍提升。
[0041]優(yōu)選的,所述移相處理簇中設計有移相處理單元,所述移相處理單元的結構與可重構計算單元類似,區(qū)別在于移相處理單元的處理核心不是用于處理數(shù)據(jù)計算的算術邏輯單元,而是增強的移相單元;除了處理核心的不同,數(shù)據(jù)位寬也比可重構計算單元大很多,采用128bit設計;另外,由于采用傳統(tǒng)的單指令多數(shù)據(jù)流結構,數(shù)據(jù)的輸入不需要考慮鄰近處理單元的直接連接,而僅僅需要考慮來自不同寄存器文件的輸入即可。
[0042]本案中,在整個數(shù)據(jù)流控制模塊中包括兩套獨立的相移處理簇,最高可以獲得同時處理8個線程的計算能力。同時,在計算需求僅有一半的時候,可以關閉第二套移相處理簇,從而達到減少移相命令加載和降低系統(tǒng)功耗的目的。單個“移相處理簇”包含4個移相處理單元,特別針對矢量移相指令進行設計功能優(yōu)化,其數(shù)據(jù)位寬與雙緩沖寄存器相匹配。
[0043]按照圖4的描述移相命令隊列中的指令依次經(jīng)過譯碼之后分發(fā)到4個移相處理單元中,每個移相處理單元根據(jù)所解析的命令進行計算。數(shù)據(jù)在矢量移相模塊最少可以實現(xiàn)在I個時鐘周期內完成數(shù)據(jù)處理,而最大的處理周期則根據(jù)命令隊列的長度相關,受到數(shù)據(jù)移相需求和數(shù)據(jù)量大小的限制。
[0044]通過圖5對移相處理單元的描述,移相處理單元的輸入數(shù)據(jù)通過選擇信號可以分別來自矢量數(shù)據(jù)寄存器文件和矢量相移寄存器文件,輸出數(shù)據(jù)則寫入矢量相移寄存器文件。來自矢量數(shù)據(jù)寄存器文件的數(shù)據(jù)通過數(shù)據(jù)選擇分別進入移相處理單元的不同端口,計算的輸出最終寫入矢量相移寄存器,并給出標示信號。同時,矢量相移寄存器也作為計算過程中用于存放臨時數(shù)據(jù)的寄存器。
[0045]所述解包分發(fā)模塊將雙緩沖寄存器中的數(shù)據(jù)處理后按列映射到可重構計算陣列每行的數(shù)據(jù)接口上,按照圖6所示流程,首先根據(jù)解包分發(fā)命令中操作數(shù)目和源操作數(shù)的大小對輸入數(shù)據(jù)進行移位操作,之后,按照目標操作數(shù)的大小設置進行數(shù)據(jù)補齊操作,最后,將處理后的數(shù)據(jù)分發(fā)到計算陣列的數(shù)據(jù)接口中。由于每個重構處理單元擁有兩個數(shù)據(jù)輸入端口,因此,對于8x8的可重構陣列而言,每行擁有16個數(shù)據(jù)輸入端口,這樣寄存器中可以容納的最大16個8bit的數(shù)據(jù)同時對齊后輸入陣列。
[0046]以上所述僅是本實用新型的優(yōu)選實施方式,應當指出:對于本【技術領域】的普通技術人員來說,在不脫離本實用新型原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本實用新型的保護范圍。
【權利要求】
1.一種粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,其特征在于:包括數(shù)據(jù)流控制模塊,所述數(shù)據(jù)流控制模塊包括矢量加載模塊、矢量移相模塊和解包分發(fā)模塊三個模塊,所述三個模塊通過矢量數(shù)據(jù)寄存器文件和矢量相移寄存器文件實現(xiàn)多層次的復合兩級流水線,并通過硬件握手實現(xiàn)流水線的同步,具體為: 所述矢量加載模塊:對不同數(shù)據(jù)地址空間進行訪問,將數(shù)據(jù)從存儲器加載到矢量數(shù)據(jù)寄存器文件; 所述矢量移相模塊:對矢量數(shù)據(jù)寄存器文件中的數(shù)據(jù)進行移位、拼接操作,然后將輸出的數(shù)據(jù)寫入矢量相移寄存器文件; 所述解包分發(fā)模塊:將矢量相移寄存器文件中數(shù)據(jù)進行分發(fā)。
2.根據(jù)權利要求1所述的粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,其特征在于:所述矢量加載模塊包括訪存控制邏輯、并發(fā)訪存狀態(tài)機、內部存儲訪存控制、外部存儲訪存控制和數(shù)據(jù)選擇: 所述訪存控制邏輯:解碼動態(tài)重構配置信息后向并發(fā)訪存狀態(tài)機發(fā)出控制命令; 所述并發(fā)訪存狀態(tài)機:利用內部和外部存儲器獨立的數(shù)據(jù)通路,并行處理內部和外部存儲的訪存請求; 所述內部存儲訪存控制和外部存儲訪存控制:除了向系統(tǒng)總線發(fā)起滿足協(xié)議的訪存操作,還需要將非對齊的訪存請求拆分為地址對齊的多次訪存操作; 所述數(shù)據(jù)選擇:從系統(tǒng)總線返回的數(shù)據(jù)在數(shù)據(jù)選擇中完成移位、拼接操作之后寫入矢量數(shù)據(jù)寄存器文件中。
3.根據(jù)權利要求1所述的粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,其特征在于:所述矢量移相模塊中設計移相處理簇,可以同時并行處理多個不同的寄存器。
4.根據(jù)權利要求3所述的粗粒度動態(tài)可重構數(shù)據(jù)規(guī)整控制單元結構,其特征在于:所述移相處理簇中設計有移相處理單元,所述移相處理單元的處理核心是增強的移相單元。
【文檔編號】G06F13/40GK203706197SQ201420060846
【公開日】2014年7月9日 申請日期:2014年2月10日 優(yōu)先權日:2014年2月10日
【發(fā)明者】葛偉, 曹鵬, 馬俊, 劉波, 楊錦江, 徐凱, 楊軍, 王超, 卜愛國 申請人:東南大學