摘要:本文結(jié)合可編程邏輯器件的發(fā)展對可重構(gòu)計算技術(shù)的產(chǎn)生、發(fā)展歷程做了簡要的概述,以期對特定應用領(lǐng)域設計的基于FPGA的動態(tài)可重構(gòu)計算技術(shù)研究有所啟迪
關(guān)鍵詞:可重構(gòu)計算 發(fā)展 簡述
可重構(gòu)計算是一種介于軟件和專用硬件之間的新的求算方式,兼具了軟件的通用性和硬件的高效性。20世紀90年代以來,隨著電子技術(shù)和計算機技術(shù)的不斷進步,可重構(gòu)計算正逐步成為一個新的研究熱點并已經(jīng)廣泛應用于信號處理領(lǐng)域、數(shù)據(jù)加密領(lǐng)域,硬件演化計算、定制計算、嵌入式系統(tǒng)領(lǐng)域并在軍事領(lǐng)域和航天領(lǐng)域凸顯出優(yōu)勢。時至今日,基于FPGA的可重構(gòu)計算技術(shù)的相關(guān)研究取得了很大的進展,并在諸多領(lǐng)域成功的實現(xiàn)應用,發(fā)展前景廣泛,同時在現(xiàn)有研究成果和技術(shù)基礎(chǔ)上,又向更深遠的自演化方向發(fā)展。
一、可重構(gòu)計算技術(shù)簡述
計算目標的實現(xiàn)主要有兩種,一種是采用對通用微處理器進行軟件編程的方式,一種是采用專用集成電路的方式。前者通用性好,但運算速度不高,效率低;后者處理速度快,但只能針對特定的算法,幾乎沒有任何靈活性,通用性受限??芍貥?gòu)計算是一種介于軟件和專用硬件之間的新的求算方式,兼具了軟件的通用性和硬件的高效性,恰好補充了兩者的缺陷,能夠提供硬件功能的效率和軟件的可編程性,是一種較為理想的求算方式。
早在20世紀60年代,美國加州大學計算機專家GeraidEstrin就已提出了可重構(gòu)計算的初步設想;20世紀70年代末,前蘇聯(lián)計算機專家Suetlana P.khrtashev和StevenI.kartashev博士提出了動態(tài)可重構(gòu)的系統(tǒng)結(jié)構(gòu)的概念,對中大規(guī)模集成電路的動態(tài)重構(gòu)系統(tǒng)軟、硬件進行了研究,并成立了動態(tài)可重構(gòu)結(jié)構(gòu)公司;20世紀80年代,可重構(gòu)技術(shù)得到了較大發(fā)展,在容錯計算、并行處理,硅圓片集成電路等方面得到了廣泛應用;進人20世紀90年代,隨著微電子技術(shù)的發(fā)展,特別是可編程邏輯器件的出現(xiàn),以及電子設計自動化技術(shù)的發(fā)展,基于具有可重構(gòu)能力的芯片F(xiàn)PGA的硬件可重構(gòu)研究就成為新的研究熱點;21世紀以來,F(xiàn)PGA的動態(tài)重構(gòu)研究在國際上已經(jīng)得到了越來越多的關(guān)注,然而國內(nèi)在此方面的研究還剛剛起步,從整體來看,可重構(gòu)計算技術(shù)的研究仍舊處于初級階段。
二、基于FPGA的可重構(gòu)計算技術(shù)原理
1、可重構(gòu)計算技術(shù)定義
可重構(gòu)計算沒有嚴格的定義,目前學術(shù)界普遍接受的一個定義是:使用集成了可編程硬件的系統(tǒng)進行計算,該可編程硬件的功能可由一系列定時變化的物理可控點來定義。
由此可見,可重構(gòu)計算已經(jīng)不是靠改變計算機體系結(jié)構(gòu)來實現(xiàn)特定算法了,而是通過對特定可重構(gòu)件Rid或是可控點的改動使用戶能夠使用相同的硬件執(zhí)行不同的應用,通過對可編程硬件進行重新編程或局部重新編程來實現(xiàn)。利用可重構(gòu)技術(shù),能在現(xiàn)有或只增加少量硬件資源的情況下,使系統(tǒng)同時具有軟件實現(xiàn)和硬件實現(xiàn)的優(yōu)點。
2、可重構(gòu)計算技術(shù)分類
根據(jù)可重構(gòu)計算的不同研究方向,有多種分類方法。
按可重構(gòu)件的粒度可分為細粒度和粗粒度。粒度是指可重構(gòu)件的基本執(zhí)行單元的數(shù)據(jù)位寬度,在一定程度上反映了可重構(gòu)件的數(shù)據(jù)處理能力。一般將粒度不超過4的稱為細粒度,大于4的稱為粗粒度。粒度細,則可重構(gòu)件的通用性好,但配置指令較多,并且針對某些特定算法,不能獲得最優(yōu)的處理結(jié)構(gòu);粗粒度可重構(gòu)件通常針對特定的應用領(lǐng)域(如密碼處理,多媒體處理)設計,結(jié)構(gòu)進行了優(yōu)化,配置也相對簡單。如果一個可重構(gòu)體系中包括細粒度和粗粒度兩種RU,則稱其為混合粒度結(jié)構(gòu)。
基于FPGA的可重構(gòu)計算系統(tǒng),按重構(gòu)發(fā)生的時間分為靜態(tài)重構(gòu)和動態(tài)重構(gòu)。靜態(tài)重構(gòu)是指在可重構(gòu)件運行之前對其進行預先配置,在運行過程中其功能保持不變,重構(gòu)必須在中斷系統(tǒng)功能執(zhí)行的情況下進行。動態(tài)重構(gòu)是指能在可重構(gòu)件運行的過程中實時配置的可重構(gòu),實現(xiàn)功能的改變。其中,動態(tài)重構(gòu)按實現(xiàn)面積的不同,又分為局部動態(tài)重構(gòu)和全局動態(tài)重構(gòu)。目前大多數(shù)FPGA是靜態(tài)可重構(gòu)的,而針對特定應用領(lǐng)域設計的FPGA大部分是支持動態(tài)可重構(gòu)的,例如RaPiD和PipeRench。靜態(tài)重構(gòu)與動態(tài)重構(gòu)的本質(zhì)區(qū)別是配置時間的長短,前者配置時間大約需數(shù)毫秒或數(shù)十毫秒,而后者配置時間一般為幾十納秒,為動態(tài)實時可重構(gòu)的實現(xiàn)提供了依據(jù)。
根據(jù)主處理器與可重構(gòu)件的連接緊密關(guān)系,可分為緊耦合連接和松耦合連接兩種方式。典型的緊耦合連接方式有:可重構(gòu)件作為主處理器的一個功能部件直接集成在主處理器中即功能單元模式,或可重構(gòu)件以協(xié)處理器的形式通過局部總線與主處理器連接,即協(xié)處理器模式。典型的松耦合連接的方式有:可重構(gòu)件作為輔助處理器通過外部總線與主處理器連接,或可重構(gòu)件作為主機外部獨立的處理器通過I/O接口與主處理器進行連接。
3、基于FPGA的可重構(gòu)計算技術(shù)原理
基于Flash工藝或反熔絲工藝的FPGA,具有非易失性。編程完成后,即使撤除工作電壓,F(xiàn)PGA的配置數(shù)據(jù)仍然保留,但由于不能重復編程或編程時間較長,不適宜可重構(gòu)計算。基于SRAM工藝的FPGA具有易失性的特點,每次重新加電FPGA都要重配置,這一特點一度被很多用戶認為是個不利因素,但由此導致的FPGA器件的資源配置可改變特性剛好滿足可重構(gòu)體系結(jié)構(gòu)的要求,這一特征成為FPGA在許多新領(lǐng)域獲得廣泛應用的關(guān)鍵,并成為可重構(gòu)計算系統(tǒng)發(fā)展的持續(xù)驅(qū)動力量。
基于FPGA的可重構(gòu)技術(shù),就是利用FPGA可以多次重復編程配置的特點,通過時分復用的方式利用FPGA內(nèi)部的邏輯資源,使在時間上離散的邏輯電路功能模塊能在同一FPGA中順序?qū)崿F(xiàn)的技術(shù)。根據(jù)現(xiàn)在對基于FPGA的可重構(gòu)計算技術(shù)的研究方向,針對特定應用領(lǐng)域設計的基于FPGA的動態(tài)可重構(gòu)計算技術(shù)研究更具潛力和前景。