本發(fā)明專利技術(shù)公開了一種支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),包括可重構(gòu)陣列、數(shù)據(jù)預(yù)取與重用模塊和數(shù)據(jù)流控制模塊。數(shù)據(jù)預(yù)取與重用模塊可以記錄數(shù)據(jù)流訪問行為,采用動態(tài)自啟發(fā)的預(yù)取方法,同時(shí)結(jié)合傳統(tǒng)的數(shù)據(jù)重用方法,能夠?qū)崿F(xiàn)如下兩種訪存管理方式:比較最近兩次訪存地址,動態(tài)計(jì)算得到預(yù)取地址,在數(shù)據(jù)傳輸?shù)目障?,?shí)現(xiàn)數(shù)據(jù)預(yù)取操作;緩存現(xiàn)有數(shù)據(jù)和預(yù)取數(shù)據(jù),并判斷最新的訪存數(shù)據(jù)是否在重用數(shù)據(jù)空間,直接反饋緩存的數(shù)據(jù)。本發(fā)明專利技術(shù)可以達(dá)到良好的訪存效率,同時(shí)可以避免復(fù)雜的硬件實(shí)現(xiàn)和對編譯器的復(fù)雜要求。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)屬于嵌入式可重構(gòu)
,具體涉及一種支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng)。
技術(shù)介紹
可重構(gòu)系統(tǒng)因兼具硬件的高效率和軟件的靈活性,是嵌入式媒體處理、無線通信等應(yīng)用領(lǐng)域的理想架構(gòu)選擇??芍貥?gòu)陣列是可重構(gòu)系統(tǒng)的主要運(yùn)算部件,擁有海量的計(jì)算資源和充足的路由資源,通過對其運(yùn)算單元的功能和路由進(jìn)行合理配置,可以充分的發(fā)掘應(yīng)用的數(shù)據(jù)并行性和指令并行性來提高性能。相對于通用處理器,可重構(gòu)陣列在處理計(jì)算密集型應(yīng)用方面的優(yōu)勢明顯。媒體處理等計(jì)算密集型應(yīng)用對數(shù)據(jù)通量的需求很大,在可重構(gòu)陣列具有豐富計(jì)算資源的條件下,數(shù)據(jù)訪存往往是制約其性能提高的瓶頸,因此能否提供足夠大的有效帶寬來匹配陣列的計(jì)算能力成為決定可重構(gòu)陣列性能的關(guān)鍵因素??芍貥?gòu)系統(tǒng)通常擁有多種片上存儲器,用于存儲全局輸入輸出數(shù)據(jù)以及多個(gè)計(jì)算任務(wù)間的中間數(shù)據(jù),并可以被陣列中具有訪存功能的可重構(gòu)單元訪問。在用可重構(gòu)系統(tǒng)進(jìn)行計(jì)算密集型應(yīng)用的加速時(shí),陣列中的可重構(gòu)單元會通過執(zhí)行加載/存儲操作對片上存儲器進(jìn)行大量的并行讀寫,而由于片上存儲器的端口數(shù)限制會導(dǎo)致頻繁的訪存沖突,訪存請求往往無法及時(shí)被處理,陣列在相當(dāng)多的時(shí)間處于停頓狀態(tài)。這導(dǎo)致可重構(gòu)系統(tǒng)的計(jì)算性能嚴(yán)重受制于片上存儲器的訪問效率。針對提高訪問可重構(gòu)系統(tǒng)的片上存儲器的效率的問題,當(dāng)前的主要解決方法有以下兩種 O使用存儲隊(duì)列機(jī)制來提高訪問片上存儲器的效率。這種方案使用一種“訪存隊(duì)列”來實(shí)現(xiàn)多個(gè)訪存行為的流水化,并把訪存延時(shí)作為編譯器可見的參數(shù),依賴編譯器來合理調(diào)度訪存操作。這種方法的主要不足是硬件實(shí)現(xiàn)較復(fù)雜,硬件開銷較大,且對編譯器的調(diào)度能力提出了較高要求。2)在陣列實(shí)際使用所需數(shù)據(jù)前,提前通過其他模塊把數(shù)據(jù)從存儲器中取出并搬運(yùn)至數(shù)據(jù)輸入FIFO (First In First Out,先入先出隊(duì)列)或巾貞緩沖中。這種方案采用了預(yù)取的機(jī)制來重疊數(shù)據(jù)的搬運(yùn)與陣列的計(jì)算,以此隱藏訪存延時(shí)。這種方法的不足是,當(dāng)前的編譯技術(shù)難以對這種預(yù)取機(jī)制進(jìn)行有效的調(diào)度,因而往往依賴編程人員分析算法的數(shù)據(jù)流特點(diǎn),并由編程人員在程序中顯式指定數(shù)據(jù)的預(yù)取操作,加重了編程人員的負(fù)擔(dān)。因此,當(dāng)前的提高可重構(gòu)系統(tǒng)片上存儲器訪問效率的方法存在硬件實(shí)現(xiàn)復(fù)雜,編譯支持不足等問題。
技術(shù)實(shí)現(xiàn)思路
專利技術(shù)目的針對上述現(xiàn)有技術(shù)存在的問題和不足,本專利技術(shù)的目的是提供一種支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),通過采用動態(tài)自啟發(fā)的預(yù)取方法,同時(shí)結(jié)合傳統(tǒng)的數(shù)據(jù)重用方法,可以用較少的資源實(shí)現(xiàn)可重構(gòu)陣列對片上存儲器中數(shù)據(jù)的自發(fā)的預(yù)取和重用,有效的提高了可重構(gòu)陣列訪問片上存儲器的效率,避免了當(dāng)前的可重構(gòu)陣列對片上存儲器的訪問優(yōu)化技術(shù)中存在的缺乏編譯器支持的問題。技術(shù)方案為實(shí)現(xiàn)上述專利技術(shù)目的,本專利技術(shù)采用的技術(shù)方案為一種支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),該可重構(gòu)系統(tǒng)包括可重構(gòu)陣列、數(shù)據(jù)預(yù)取與重用模塊和數(shù)據(jù)流控制模塊; 所述可重構(gòu)陣列通過其內(nèi)部的可重構(gòu)單元執(zhí)行的數(shù)據(jù)訪問指令,向所述數(shù)據(jù)預(yù)取與重用模塊發(fā)出數(shù)據(jù)訪問請求,并接收數(shù)據(jù)預(yù)取與重用模塊返回的數(shù)據(jù); 所述數(shù)據(jù)預(yù)取與重用模塊用于接收并記錄可重構(gòu)陣列發(fā)出的數(shù)據(jù)訪問請求,根據(jù)所記錄的數(shù)據(jù)訪問請求動態(tài)生成預(yù)取地址;同時(shí),接收并緩存預(yù)取到的數(shù)據(jù)和上一次被可重構(gòu)陣列訪問過的地址和對應(yīng)的數(shù)據(jù),判斷可重構(gòu)陣列當(dāng)前所要訪問的數(shù)據(jù)是否已被緩存,若已被緩存,則直接將該數(shù)據(jù)發(fā)送給可重構(gòu)陣列,若沒有被緩存,則把當(dāng)前的數(shù)據(jù)訪問請求發(fā)送給數(shù)據(jù)流控制模塊; 所述數(shù)據(jù)流控制模塊用于接收所述數(shù)據(jù)預(yù)取與重用模塊發(fā)出的數(shù)據(jù)訪問請求,對片上存儲器進(jìn)行實(shí)際的數(shù)據(jù)訪問,然后將所取到的數(shù)據(jù)發(fā)送至數(shù)據(jù)預(yù)取與重用模塊。進(jìn)一步的,所述數(shù)據(jù)預(yù)取與重用模塊包括 地址生成子模塊,用于地址比較并產(chǎn)生預(yù)取地址;數(shù)據(jù)預(yù)取子模塊,用于產(chǎn)生預(yù)取控制信號;數(shù)據(jù)重用子模塊,用于寄存當(dāng)前數(shù)據(jù)和預(yù)取數(shù)據(jù),判斷訪問地址反饋重用數(shù)據(jù);以及邏輯控制子模塊,用于監(jiān)視和控制預(yù)取和重用的工作過程; 其中,所述地址生成子模塊與數(shù)據(jù)預(yù)取子模塊、數(shù)據(jù)重用子模塊和邏輯控制子模塊通信聯(lián)接;數(shù)據(jù)預(yù)取子模塊與地址生成子模塊和邏輯控制子模塊通信聯(lián)接;數(shù)據(jù)重用子模塊與地址生成子模塊和邏輯控制子模塊通信聯(lián)接。進(jìn)一步的,所述地址生成子模塊根據(jù)邏輯控制子模塊發(fā)出的使能信號,連續(xù)記錄可重構(gòu)陣列最近兩次發(fā)起的數(shù)據(jù)訪問地址,根據(jù)記錄的地址進(jìn)行一次減法和一次加法計(jì)算,動態(tài)生成預(yù)取地址,并將最近一次數(shù)據(jù)訪問地址和預(yù)取地址輸出給數(shù)據(jù)預(yù)取子模塊和數(shù)據(jù)重用子模塊。預(yù)取地址具體計(jì)算方法如下 設(shè)最近兩次訪存地址分別為current_addr、previous_addr,則通過如下計(jì)算,得到預(yù)取地址/Tre/eictat/i/r prefetch_addr = curren t_addr + {curren t_addr _ previous_addr) 進(jìn)一步的,所述數(shù)據(jù)預(yù)取子模塊根據(jù)邏輯控制子模塊發(fā)出的使能信號,在數(shù)據(jù)流控制模塊的傳輸空閑階段,根據(jù)地址生成子模塊產(chǎn)生的預(yù)取地址向數(shù)據(jù)流控制模塊發(fā)出數(shù)據(jù)訪問請求。進(jìn)一步的,所述數(shù)據(jù)重用子模塊根據(jù)邏輯控制子模塊發(fā)出的使能信號,寄存當(dāng)前數(shù)據(jù)和預(yù)取數(shù)據(jù);同時(shí),接收可重構(gòu)陣列下一次發(fā)出的數(shù)據(jù)訪問地址并判斷該地址所對應(yīng)的數(shù)據(jù)是否已經(jīng)被數(shù)據(jù)重用子模塊寄存,若已被寄存,則直接將該數(shù)據(jù)發(fā)送給可重構(gòu)陣列,若沒有被寄存,則把該數(shù)據(jù)訪問請求發(fā)送給數(shù)據(jù)流控制模塊。進(jìn)一步的,所述寄存當(dāng)前數(shù)據(jù)為更新可重構(gòu)陣列最近一次發(fā)起的數(shù)據(jù)訪問請求所取到的數(shù)據(jù);所述寄存預(yù)取數(shù)據(jù)為更新數(shù)據(jù)預(yù)取子模塊最近一次發(fā)起的數(shù)據(jù)訪問請求所取到的數(shù)據(jù)。進(jìn)一步的,所述判斷該地址所對應(yīng)的數(shù)據(jù)是否已經(jīng)被數(shù)據(jù)重用子模塊寄存,其判斷方法為分別對兩對地址輸入進(jìn)行比較,這兩對地址輸入如下 第一對地址輸入為當(dāng)前可重構(gòu)陣列發(fā)起的數(shù)據(jù)訪問地址和最近一次數(shù)據(jù)訪問地址; 第二對地址輸入為當(dāng)前可重構(gòu)陣列發(fā)起的數(shù)據(jù)訪問地址和預(yù)取地址; 若所述兩對地址中有任何一對地址相同,則判斷該地址所對應(yīng)的數(shù)據(jù)已經(jīng)被數(shù)據(jù)重用子模塊寄存,滿足數(shù)據(jù)重用要求,若所述兩對地址均不同,則判斷該地址所對應(yīng)的數(shù)據(jù)未被數(shù)據(jù)重用子模塊寄存。進(jìn)一步的,所述邏輯控制子模塊用于監(jiān)視當(dāng)前的數(shù)據(jù)訪問行為,并控制地址生成子模塊、數(shù)據(jù)預(yù)取子模塊和數(shù)據(jù)重用子模塊工作過程,實(shí)現(xiàn)數(shù)據(jù)預(yù)取與重用模塊在可重構(gòu)系統(tǒng)中的協(xié)同工作。進(jìn)一步的,所述邏輯控制子模塊按照如下規(guī)則設(shè)置數(shù)據(jù)預(yù)取與重用模塊的狀態(tài) 在可重構(gòu)陣列尚未發(fā)起過數(shù)據(jù)訪問請求的情況下,數(shù)據(jù)預(yù)取與重用模塊處于IDLE (空閑)態(tài),此時(shí)若可重構(gòu)陣列發(fā)起數(shù)據(jù)訪問請求,則數(shù)據(jù)預(yù)取與重用模塊的狀態(tài)被設(shè)置為MISS(不命中)態(tài); 在MISS態(tài)下,聯(lián)接地址生成子模塊和數(shù)據(jù)重用子模塊的使能信號被設(shè)為有效,當(dāng)可重構(gòu)陣列再一次執(zhí)行數(shù)據(jù)訪問請求時(shí),數(shù)據(jù)重用子模塊進(jìn)行判斷,若滿足數(shù)據(jù)重用要求則保持MISS態(tài),否則數(shù)據(jù)預(yù)取與重用模塊的狀態(tài)被設(shè)置為PREFETCH (預(yù)取)態(tài); 在PREFETCH態(tài)下,數(shù)據(jù)預(yù)取子模塊的使能信號被設(shè)為有效,并把地址生成子模塊產(chǎn)生的預(yù)取地址發(fā)送給數(shù)據(jù)流控制流模塊,等待數(shù)據(jù)流控制模塊完成訪存行為,數(shù)據(jù)預(yù)取與重用模塊進(jìn)入WAIT (等待)態(tài); 在WAIT態(tài)下,當(dāng)可重構(gòu)陣列執(zhí)行數(shù)據(jù)訪問請求時(shí),有如下三種結(jié)果第一種,當(dāng)前的數(shù)據(jù)訪問地址不能滿足數(shù)據(jù)重用要求,這種情況下數(shù)據(jù)預(yù)取本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),其特征在于,該可重構(gòu)系統(tǒng)包括可重構(gòu)陣列(1)、數(shù)據(jù)預(yù)取與重用模塊(2)和數(shù)據(jù)流控制模塊(3);所述可重構(gòu)陣列(1):通過其內(nèi)部的可重構(gòu)單元(4)執(zhí)行的數(shù)據(jù)訪問指令,向所述數(shù)據(jù)預(yù)取與重用模塊(2)發(fā)出數(shù)據(jù)訪問請求,并接收數(shù)據(jù)預(yù)取與重用模塊(2)返回的數(shù)據(jù);所述數(shù)據(jù)預(yù)取與重用模塊(2):用于接收并記錄可重構(gòu)陣列(1)發(fā)出的數(shù)據(jù)訪問請求,根據(jù)所記錄的數(shù)據(jù)訪問請求動態(tài)生成預(yù)取地址;同時(shí),接收并緩存預(yù)取到的數(shù)據(jù)和上一次被可重構(gòu)陣列(1)訪問過的地址和對應(yīng)的數(shù)據(jù),判斷可重構(gòu)陣列(1)當(dāng)前所要訪問的數(shù)據(jù)是否已被緩存,若已被緩存,則直接將該數(shù)據(jù)發(fā)送給可重構(gòu)陣列(1),若沒有被緩存,則把當(dāng)前的數(shù)據(jù)訪問請求發(fā)送給數(shù)據(jù)流控制模塊(3);?所述數(shù)據(jù)流控制模塊(3):用于接收所述數(shù)據(jù)預(yù)取與重用模塊(2)發(fā)出的數(shù)據(jù)訪問請求,對片上存儲器進(jìn)行實(shí)際的數(shù)據(jù)訪問,然后將所取到的數(shù)據(jù)發(fā)送至數(shù)據(jù)預(yù)取與重用模塊(2)。
【技術(shù)特征摘要】
1.一種支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),其特征在于,該可重構(gòu)系統(tǒng)包括可重構(gòu)陣列(I)、數(shù)據(jù)預(yù)取與重用模塊(2 )和數(shù)據(jù)流控制模塊(3 );所述可重構(gòu)陣列(I):通過其內(nèi)部的可重構(gòu)單元(4)執(zhí)行的數(shù)據(jù)訪問指令,向所述數(shù)據(jù)預(yù)取與重用模塊(2)發(fā)出數(shù)據(jù)訪問請求,并接收數(shù)據(jù)預(yù)取與重用模塊(2)返回的數(shù)據(jù);所述數(shù)據(jù)預(yù)取與重用模塊(2):用于接收并記錄可重構(gòu)陣列(I)發(fā)出的數(shù)據(jù)訪問請求, 根據(jù)所記錄的數(shù)據(jù)訪問請求動態(tài)生成預(yù)取地址;同時(shí),接收并緩存預(yù)取到的數(shù)據(jù)和上一次被可重構(gòu)陣列(I)訪問過的地址和對應(yīng)的數(shù)據(jù),判斷可重構(gòu)陣列(I)當(dāng)前所要訪問的數(shù)據(jù)是否已被緩存,若已被緩存,則直接將該數(shù)據(jù)發(fā)送給可重構(gòu)陣列(I ),若沒有被緩存,則把當(dāng)前的數(shù)據(jù)訪問請求發(fā)送給數(shù)據(jù)流控制模塊(3);所述數(shù)據(jù)流控制模塊(3):用于接收所述數(shù)據(jù)預(yù)取與重用模塊(2)發(fā)出的數(shù)據(jù)訪問請求,對片上存儲器進(jìn)行實(shí)際的數(shù)據(jù)訪問,然后將所取到的數(shù)據(jù)發(fā)送至數(shù)據(jù)預(yù)取與重用模塊 (2)。2.根據(jù)權(quán)利要求1所述的支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),其特征在于,所述數(shù)據(jù)預(yù)取與重用模塊(2)包括地址生成子模塊(5),用于地址比較并產(chǎn)生預(yù)取地址;數(shù)據(jù)預(yù)取子模塊(6),用于產(chǎn)生預(yù)取控制信號;數(shù)據(jù)重用子模塊(7),用于寄存當(dāng)前數(shù)據(jù)和預(yù)取數(shù)據(jù),判斷訪問地址反饋重用數(shù)據(jù);以及邏輯控制子模塊(8),用于監(jiān)視和控制預(yù)取和重用的工作過程;其中,所述地址生成子模塊(5)與數(shù)據(jù)預(yù)取子模塊(6)、數(shù)據(jù)重用子模塊(7)和邏輯控制子模塊(8)通信聯(lián)接;數(shù)據(jù)預(yù)取子模塊(6)與地址生成子模塊(5)和邏輯控制子模塊(8) 通信聯(lián)接;數(shù)據(jù)重用子模塊(7)與地址生成子模塊(5)和邏輯控制子模塊(8)通信聯(lián)接。3.根據(jù)權(quán)利要求2所述的支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),其特征在于,所述地址生成子模塊(5)根據(jù)邏輯控制子模塊(8)發(fā)出的使能信號,連續(xù)記錄可重構(gòu)陣列(I)最近兩次發(fā)起的數(shù)據(jù)訪問地址,根據(jù)記錄的地址進(jìn)行一次減法和一次加法計(jì)算,動態(tài)生成預(yù)取地址,并將最近一次數(shù)據(jù)訪問地址和預(yù)取地址輸出給數(shù)據(jù)預(yù)取子模塊(6)和數(shù)據(jù)重用子模塊 (7)。4.根據(jù)權(quán)利要求2所述的支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),其特征在于,所述數(shù)據(jù)預(yù)取子模塊(6)根據(jù)邏輯控制子模塊(8)發(fā)出的使能信號,在數(shù)據(jù)流控制模塊(3)的傳輸空閑階段,根據(jù)地址生成子模塊(5)產(chǎn)生的預(yù)取地址向數(shù)據(jù)流控制模塊(3)發(fā)出數(shù)據(jù)訪問請求。5.根據(jù)權(quán)利要求2所述的支持?jǐn)?shù)據(jù)預(yù)取與重用的可重構(gòu)系統(tǒng),其特征在于,所述數(shù)據(jù)重用子模塊(7)根據(jù)邏輯控制子模塊(8)發(fā)出的使能信號,寄存當(dāng)前數(shù)據(jù)和預(yù)取數(shù)據(jù);同時(shí),接收可重構(gòu)陣列(4)下一次發(fā)出的數(shù)據(jù)訪問地址并判斷該地址所對應(yīng)的數(shù)據(jù)是否已經(jīng)被數(shù)據(jù)重用子模塊(7)寄存,若已被寄存,則直接將該數(shù)據(jù)發(fā)送給可重構(gòu)陣...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:劉波,齊志,葛偉,杜越,曹鵬,楊軍,
申請(專利權(quán))人:東南大學(xué),
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。