FPGA在演化硬件中的應用
摘要:介紹了FPGA的新應用一演化硬件(EHW)的進展和現(xiàn)狀,其中主要包括EHW的概念、工作原理、存在問題和應用領域。闡述了EHW在電路與系統(tǒng)學科中的科學意義及對新興電子信息產業(yè)將產生的深遠影響。
本文引用地址:http://butianyuan.cn/article/226432.htm關鍵詞:演化硬件 遺傳算法 FPGA
二十世紀70年代初出現(xiàn)了可編程邏輯器件(PLD),發(fā)展至今已出現(xiàn)簡單PLD(SPLD)、復雜PLD(CPLD)和現(xiàn)場可編程門陣列(FPGA)等各類器件。自1985年叛國Xilinx公司推出第一片F(xiàn)PGA以來,以今已有多家公司開發(fā)銷售自己的FPGA產品。FPGA有更高的集成度、更復雜的布線結構和邏輯實現(xiàn),它與以往的PLD之間的差別有于PLD一般是通過修改內連電路的邏輯功能來實現(xiàn)編程的,而FPGA則是通過修改一根或多根內連線來編程。FPGA的在線可編程技術(ISP)及動態(tài)重構技術進一步提高了FPGA的應用靈活性和自由度,重組及配置工作速度極快,從而為EHW的實現(xiàn)創(chuàng)造了堅的實的物質基礎。
1 EHW的概念
早在二十世紀50年代,計算機之父Von Neumann就提出了研制具有自繁殖與自修復能力并能進行通用計算的機器的設想,這就是演化硬件的概念雛形。一直到演化算法和大規(guī)模PLD的出現(xiàn),這一夢想才具備了實現(xiàn)的可能。1992年日本的Hugo de Garis和瑞士聯(lián)邦工學院的科學家同時正式提出了EHW的構想[1],短短幾年這一新的領域獲得了廣泛的關注,并且正處于急劇升溫之中。
EHW指的是在與外部環(huán)境相互作用之后,能自主地、動態(tài)地改變自身結構和行為的硬件電路。它具有自組織、自適應、自修復功能,能適應不同環(huán)境要求和提高自身性能。這一特性獲得主要歸功于演化算法(Evolvable Algorithms,簡稱EAs)。
EaAs是一類模擬自然界遺傳進化規(guī)律的仿生學算法,它們首先隨機產生一組待求優(yōu)化問題的潛在可能矢量解(解稱為染色體,解的集合稱為種群,解中的分量稱為基因);然后采用變異、交叉、評價、選擇等手段,優(yōu)勝劣汰,不能進化,最后獲得優(yōu)化解。作為一種優(yōu)化算法,它們也具有自適應、自組織、自修復的特性,本身還具有隨機性和并行性。在搜索解空間時,能以很大概率找到全局解,不易陷入局部優(yōu)化點。嵌入問題方式簡單,尋優(yōu)魯棒性強,可以解決不連續(xù)、不可導、多目標、帶各種約束條件的優(yōu)化問題,因而成為EHW演化的“發(fā)動機”或“引擎”。
EHW的簡單定義為:演化算法+可編程邏輯器件。從目前EHW研究的內容看,EHW具兩個方面的內容:①根據功能或指標的要求,采用EA技術對電路進行合成,形成新電路結構和參數(shù)。值得一提的是EA用于電路及系統(tǒng)設計由來已欠,但主要集中于利用電路參數(shù)設計電路板、布線、布局優(yōu)化等方面[2],與本文所指的EHW有本質區(qū)別。②具有自組織、自適應自修復特性的硬件電路。此為EHW最吸引人的地方,其核心為“自適應”。由于FPGA比以往PLD具有獨特的優(yōu)越性,目前大多數(shù)的EHW都采用FPGA器件。
2 EHW的實現(xiàn)方法和演化方式
從FPGA的原理可知,F(xiàn)PGA結構可以最終描述為配置數(shù)據。因此對FPGA的演化,最終可歸結為對配置數(shù)據的演化,整個演化過程大約可描述成如下步驟:
①設定EA參數(shù),如交叉率、變異率、種群數(shù)等;
②隨機產生初始化種群Xi={xi1,xi2,…,xiR},其中1≤i≤POP_SIZE;Xi為染色體,代表FPGA結構編碼,如二進制串等;R為基因總數(shù);
③評價種群中的各染色體,獲取相應的適應度函數(shù)值;
④以某種方式選擇部分種群,按指定的變異率、交叉率進行交叉、變異,形成新的子染色體;
⑤評價表的染色體,與父代染色體一起按適應度函數(shù)值大小選出POP_SIZE的個體染色體作為下一代種群;
⑥判別是否滿足終止條件:是,結束;否,回到④重復演化過程。
EA染色體編碼方式是影響EA計算速度和有效性的重要因素。根據編碼方式和級別的不同,可將EHW進化方式分為三類:直接型、間接型和函數(shù)型。直接型的任務是直接進化結構位串以改變門級電路的連接。結構位串為染色體,通過專用的軟件工具,下載到FPGA中,以獲得新的電路,如圖1所示[3]。這種演化層次屬于門級水平,缺點是染色體的表示過于龐大。一般情況下(不考慮其他結束條件),n個邏輯門的進化,染色體的串位數(shù)為O(n2)數(shù)量級,無論是表示或進化都是十分困難的。間接型的任務并不直接進化結構位串,它采用了高級的表達方式,即用樹或法則產生電路。文獻[4]提供了一個很典型的例子,它采用了硬件描述語言(HDL)程序實現(xiàn)一個二進制加法器,染色體為按規(guī)則產生的衍生樹(derivationtree),樹的所有可能結果鈄與電路結構的所有可能結果一一對應。每一個樹可以產生一個結構功能描述程序塊,如果該樹是合活的話,則將衍生出HDL的EHW結構描述程序。EA的交叉、變異等算子對樹的作用與一般的EA算法對二進制串的作用相似,但EA進化含有結束條件,以確保樹(或程序)的合法性。這種方法降低了結構位串造成的計算復雜度,因此在實際EHW中應用較多。函數(shù)型進化也是另一種降低EA復雜性的方法,也屬于高級表達,其進化的基本元素不是門電路,而是個基本的功能模塊,如加、減模塊等。這樣既可以獲得更為復雜功能的電路,又不增加EA進化的困難。當然,其在FPGA中占用門電路資源要比前兩種方法多,電路結構不很精簡。
對染色體的評價方式分為外向型和內向型兩種。外向型的EA是在仿真環(huán)境中用軟件進行的,染色體的評價值由仿真給出,只將每代最佳的染色體(配置數(shù)據)才載到FPGA中,即在每代EA過程結束后EHW才重組一次。而內向型則將每代種群中的每個染色體都下載到FPGA中,把實際運行結果作為評價值,具有真實性,顯然EHW重組的次數(shù)等于種群數(shù)的大小。
EHW的自適應工作方式分為在線自適應和離線自適應兩種。在線自適應又稱為實時自適應,其學習過程、進化過程和運作過程是同步進行的。離線自適應則把實際工作和進化過程分為兩個獨立的階段,一般先做進化設計,后投入實際工作。
3 演化硬件存在的問題和發(fā)展前景
EHW是一個新生事物,尚有許多不成熟和亟待解決問題。EHW的在線自適應方法還不完善。EA的特點就是是要重復進行“試湊性”的實驗,在試湊過程中可能產生劣質的染色體,造成系統(tǒng)嚴重的故障和災難(如果不采取適當?shù)姆婪洞胧┑脑挘?,因而當前報道的實例大多?shù)屬于離線自適應。解決方法是建立專家識別或仿真環(huán)境,從中提前判別和濾去可能對環(huán)境造成危害的劣質染色體,從而保證系統(tǒng)安全。
目前成功應用的EHW電路規(guī)模都比較小,這主要是因為EA算法復雜性隨EHW元件數(shù)的增加呈非線性上升趨勢,計算量變得不可忍受。解決的辦法是尋求更為有效的EA,如新的染色體編碼方式或硬件加速器[5]等。適應度函數(shù)的選取也是一個值得注意的問題,高適應度的結果并不一定能保證電路的完整和正確性,因為EA畢竟無法將所的輸入都做一番試湊性的實驗,為提高EHW的正確性而付出的計算成本將大幅增加。這一問題還引發(fā)了EA結束判定準則難以確定的問題。另外,EHW強調的是終結果達到目標要求,而電路內部的結構、設計原理等對用戶來講屬于“黑箱”的范疇,因而一旦EHW發(fā)生故障,人工無法修理補救,解決的方向是采用自修復的EHW。
從某種意義上余,EHW給系統(tǒng)和電路科學帶來了革命性的理念和突破,作為新的電路設計手段,它能提供人工意想不到的設計方案,設計人員主要思考要完成什么電路、實現(xiàn)什么功能,而不是過多地考慮如何實現(xiàn)實。該方法對專業(yè)化的先驗知識要求不高,特別善于處理特殊和復雜的約束條件(可通過EA的染色體及適應度函數(shù)靈活地表達出來),因此可大大減輕了工勞動負擔,有效地提高產品質量。作為一種新的自適應電路,EHW在機器學習、人工神經網絡、自適應控制、信號處理與識別、容錯系統(tǒng)和機器人等方面有廣闊的應用前景。從1992年到現(xiàn)在,已有不少獲得實際應用和總商品化的例子,如EHW制成的控制器成功地實現(xiàn)了假肢控制[6];EHW取代神經網絡實現(xiàn)了高速的模式辯識,結果比神經網絡好[7];EHW芯片實現(xiàn)了(電極采色打印機)數(shù)據壓縮[7]等。也有人大膽地設想,隨著EHW技術的發(fā)燕尾服,新型計算機可實現(xiàn)自動升級[8]。
評論