一種面向多個粗粒度動態可重構陣列的數據緩存更新系統的制作方法
【技術領域】
[0001]本發明涉及嵌入式可重構系統領域,具體地,涉及一種面向多個粗粒度動態可重構陣列的數據緩存更新系統的實現方法。
【背景技術】
[0002]處理器與專用集成電路是傳統的計算機系統結構的運算平臺,處理器的特點在于通過執行指令集中的相關指令來完成計算,不去改動底層的硬件環境。但處理器的運算速度要比專用集成電路慢很多,每個獨立的操作具有更高的執行開銷。專用集成電路的特點在于用硬件來實現應用的操作具有很高的速度、效率和精度,但其缺陷在于開發周期太長,代價太高,而且硬件電路一旦制作好以后是不能被隨意改動的。
[0003]FPGA可重構技術的出現,大大改變了傳統的嵌入式設計的方法,可重構計算作為一種新型時空域的計算模式,獲得了越來越廣泛的關注,其主要的應用領域包括多媒體處理、移動通信、數字信號處理、數據加解密等。然而,在軍事目標匹配、大數運算、聲吶波束合成、基因組匹配、圖像紋理填充、集成電路的計算機輔助設計等等之中,隨應用場合的不同,可重構系統對性能的提高程度也大不相同。一般情況下,系統內FPGA數量越多,總體的性能就越好,按系統中FPGA的芯片數量進行平均,每塊FPGA能使運算速度提高7?30倍,但平均每塊芯片提高的速度倍數很低。
[0004]隨著計算性能要求的提高,計算復雜度的越來越高,粗粒度可重構架構的計算資源也大量增加,使用多個可重構陣列來完成這些應用,對存儲空間的需求量更是大量增加。然而有些數據在一兩個計算周期過后便永不再被訪問,卻依然占用著存儲空間,導致存儲空間利用率降低。因此如何動態釋放更新存儲空間,提高存儲空間復用率,成為了提高可重構系統計算性能研究中的一個重要課題。
【發明內容】
[0005]本發明的目的在于解決上述現有技術中存在的問題,提供一種面向多個粗粒度動態可重構陣列的數據緩存更新系統,基于傳統的可重構單元片上緩存模塊,增加了片上更新仲裁模塊,對片上數據的生命周期進行統一管理,提供了一種片上緩存結構的動態復用方法,提高了大規模可重構陣列的存儲利用率。
[0006]為解決上述技術問題,本發明采用的技術方案是:對傳統的片上初始操作數寄存器、片上初始常數寄存器、陣列中間數據存儲器和輸出寄存器,分別緊耦合一個自衰減更新仲裁控制器。通過數據交互,判斷每一個數據的生命是否終止,若終止,則將數據更新請求發送給各個片上緩存單元,完成緩存空間的動態更新。
[0007]本發明提供了提供一種面向多個粗粒度動態可重構陣列的數據緩存更新系統的實現方法,其結構包括:片內外數據傳輸控制器,用于仲裁數據從外部存儲器寫入可重構單元共享存儲器和數據從可重構單元共享存儲器寫出外部存儲器;可重構單元共享存儲器,用于存儲可重構陣列運算需要的數據,以及可重構陣列的計算結果;可重構處理器,包括:可重構計算陣列,用于進行算術邏輯運算。片上緩存模塊,用于存儲可重構陣列運算需要的數據,以及可重構陣列的計算結果;片上更新仲裁模塊,用于對片上數據生命周期進行管理,仲裁緩存更新。
[0008]所述片上緩存模塊,其結構包括:片上初始操作數寄存器、片上初始常數寄存器、陣列中間數據存儲器和輸出寄存器。所述片上初始操作數寄存器:用于存儲預取的可重構陣列運算初始操作數;所述片上初始常數寄存器:用于存儲預取的可重構陣列運算中所需常數。如LU分解算法運算中用到的消元系數,FFT算法運算中的旋轉因子和FIR算法運算中的濾波系數等;所述陣列中間數據存儲器:用于存放可重構陣列計算的中間結果;所述輸出寄存器,用于存放可重構陣列的最終輸出結果。
[0009]所述片上更新仲裁模塊,其特征在于:四個自衰減更新仲裁控制器分別與片上緩存模塊中的片上初始操作數寄存器、片上初始常數寄存器、陣列中間數據存儲器和輸出寄存器緊耦合,通過與片上緩存模塊的數據交互,對片上數據生命周期進行統一管理,仲裁緩存更新。
[0010]所述自衰減更新仲裁控制器,其結構包括:操作數生命解析單元、邏輯控制單元、數據生命周期查找表、仲裁器、數據生命周期自衰減控制單元、更新請求發送單元。所述操作數生命解析單元:用于解析輸入數據的生命周期;所述邏輯控制單元:用于仲裁輸入輸出請求;所述數據生命周期查找表:用于存放寄存器數據生命周期;所述仲裁器:用于仲裁輸入數據生命是否為零;所述數據生命周期自衰減控制單元:用于完成數據生命周期查找表的自動更新;所述更新請求發送單元:用于輸出對存儲單元數據進行更新的請求。
[0011]—種面向多個粗粒度動態可重構陣列的數據緩存更新系統的實現方法,其特征在于包含以下步驟:
(I)從外存中讀取計算陣列所需的數據,并將數據分成操作數和常數兩類,其中操作數寫入相應的片上初始操作數寄存器內,常數寫入相應的片上初始常數寄存器內;
(2 )自衰減更新仲裁控制器讀取片上初始緩存單元數據,判斷數據生命是否結束,仲裁緩存更新;
(3)可重構陣列進行邏輯運算操作,若計算結果非最終輸出結果,且需要進行共享或多次使用,則寫入陣列中間數據存儲單元;
(4)自衰減更新仲裁控制器讀取陣列中間數據存儲單元的數據,判斷數據生命是否結束,仲裁緩存更新;
(5)若可重構陣列的計算結果為最終輸出,則寫入輸出寄存器;
(6)自衰減更新仲裁控制器讀取輸出寄存器的數據,判斷數據生命是否結束,仲裁緩存更新;
可重構系統中自衰減更新仲裁控制器的結構,其特征在于:它為可重構系統片上緩存單元的動態復用提供了一種實現方法。對片上各緩存單元分別緊耦合一個自衰減更新仲裁控制器,從而對數據生命周期進行統一管理。陣列所需的每一個操作數、常數以及計算結果的生命周期都由軟件運行得到,形成一張數據生命周期查找表,存放在外存中,通過自衰減更新仲裁控制器訪問和維護更新該表。控制器中的數據生命周期自衰減控制單元每經過一個計算周期都自動更新查找表,將相應的數據生命值減I。這種動態生命周期管理模式在相當程度上提高了存儲空間的利用率。
【附圖說明】
[0012]附圖用來提供對本發明的進一步理解,并且構成說明書的一部分,與本人發明的實施例一起用于解釋本發明,并不構成對本發明的限制。在附圖中:
圖1為多陣列可重構系統的結構框架圖;
圖2—種面向多個粗粒度動態可重構陣列的數據緩存更新系統框圖,以4陣列可重構系統為例;
圖3為自衰減更新仲裁控制器內部結構框圖;
圖4為多陣列可重構系統的算法處理流程圖;
圖5為自衰減更新仲裁控制器內部的數據流圖。
【具體實施方式】
[0013]以下結合附圖對本發明一種面向多個粗粒度動態可重構陣列的數據緩存更新系統進行說明,應當理解,此處所描述的數據緩存更新系統實施例僅用于說明和解釋本發明,并不用于限定本發明。
[0014]圖1為嵌入式多陣列可重構的框架結構。其包括片內外數據傳輸控制器,用于仲裁數據從外部存儲器寫入可重構單元共享存儲器和數據從可重構單元共享存儲器寫出外部存儲器;可重構單元共享存儲器,用于存儲可重構陣列運算需要的數據,以及可重構陣列的計算結果;可重構處理器,包含多個可重構陣列和片上緩存單元,用于進行算術邏輯運算。
[0015]圖2為面向多個粗粒度動態可重構陣列的數據緩存更新系統框圖,以4陣列可重構系統為例。如圖2所示,該緩存結構包括:片上常數存儲單元一一片上初始常數寄存器,該寄存器從外部存儲器中讀取常數數據,并寫入可重構陣列中;片上操作數存儲單元一一片上初始操作數寄存器,該寄存器從外部存儲器中讀取操作數數據,并寫入可重構陣列中;陣列中間數據存儲器,用于存放陣列計算的中間結果;輸出寄存器:用于存放最終的的輸出結果;自衰減更新仲裁控制器,該仲裁器通過與片上緩存單元的數據交互,動態管理緩存單元數據的生命周期,仲裁該數據更新。
[0016]圖3為自衰減更新仲裁控制器內部結構框圖。如圖3所示,該自衰減更新仲裁控制器包括:操作數生命解析單元,邏輯控制單元,數據生命周期查找表,仲裁器,數據生命周期自衰減控制單元,更新請求發送單元。操作數生命解析單元,用于解析輸入數據的生命周期;邏輯控制單元,用于仲裁輸入輸出請求;數據生命周期查找表,用于存放存儲單元數據生命周期;仲裁器,用于仲裁輸入數據生命是否