999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟硬件協同的遺傳算法設計與實現

2021-05-28 12:38:22聶鑫羅劍
現代計算機 2021年10期
關鍵詞:信號設計

聶鑫,羅劍

(1.武漢工程大學計算機科學與工程學院,武漢430205;2.武漢晴川學院計算機學院,武漢430205)

0 引言

遺傳算法[1]是一種從生物界繁衍進化中學習得到的一種隨機搜索算法。這種算法具有很好的魯棒性,具有天然的內在并行性,并且算法無需豐富的先驗知識。目前絕大多數遺傳算法均使用純軟件實現,這類軟件方式在求解實際問題時由于效率較低,運行時間較長,無法應用于實時性要求較高的場合。考慮到遺傳算法中編碼基本采用二進制編碼,而二進制編碼在硬件系統中具有操作快捷,實現簡單的特點,不少學者使用純硬件實現了遺傳算法[2]。使用硬件方式[3]實現的遺傳算法已經證明了具有更高的運算效率與速度。但是純硬件的設計一旦實現,硬件結構就不能改變,所以也就只能對一個問題進行求解,缺乏了軟件所具有的通用性。

軟硬件協同設計(Hardware/Software Co-Designing)的思想是在硬件和軟件設計過程中盡最大限度的利用其協同作用來滿足系統的要求。自從軟硬件協同思想提出以后,一直備受國內外研究者的關注,關于軟硬件協同設計領域的研究也十分活躍。到目前為止,國內外學者已經在此方面做過很多研究[4-6],例如在遙感影像的實時效應、音頻編碼算法、Lattice譯碼算法、數字電路仿真、系統的模擬、仿真和調試等一些方面都使用過軟硬件協同設計方法,并且獲得比使用傳統的設計方法更好的效果。因此利用軟硬件協同設計方法不僅可以提高求解問題的效率,同時可以擴寬其應用領域,進一步推動軟硬件協同設計的發展等。FPGA的快速發展,也為軟硬件協同工作搭建了平臺,使得軟硬件協同處理成為了可能。

1 軟硬件協同的系統設計

1.1 硬件劃分

綜合軟硬件各自的優點,采用軟硬件協同的工作方式實現的系統[7-8],將系統中一些底層簡單而重復,特別是能夠并行化的工作交由硬件完成,將具有通用性、串行的工作交由軟件完成,不僅可以是系統的效率得提升,縮短了系統的開發周期,并且使得系統具有可重用性。在軟硬件協同中,如何劃分軟硬件具體工作是一件重要的事。因為這涉及到設計的運行效率以及具體實現的功能。我們對遺傳算法軟硬件劃分確定,硬件部分為總控模塊、選擇模塊、編譯模塊、雜交模塊。軟件部分為隨機數模塊、適應值評價模塊。整個系統的設計圖為圖1所示。

圖1 系統設計圖

1.2 交互協議

由于在設計平臺中,CPU(PowerPC)時鐘頻率(300MHz)與FPGA提供的時鐘頻率(100MHz)不一致,并且在CPU上運行的軟件程序完成所需要的時鐘周期數是不確定性的。由于在本設計中存在許多軟件層面與硬件層面的信息交互,為了保證信息交互的同步性,可靠性,必須設計一個通信協議來確保數據的正確性。

圖2描述的為硬件端向軟件端請求數據的操作。整個操作的流程如下,首先由硬件發出請求(request)信號,該信號為高信號。在軟件端收到這個請求信號之后,開始進行正常的工作。此時硬件端為阻塞狀態。當軟件端處理完成之后,給硬件端發送完成信號(done),該信號電平同樣為高。此時軟件端進入阻塞狀態。至此完成一次握手,這該次握手操作中確保了軟件能正確地響應硬件的請求,并且能正確地通知硬件何時完成操作。在硬件端收到電平為高的done信號之后,硬件解除阻塞并且獲取從軟件發過來的數據,之后再發送低電平的request信號并且進入阻塞狀態。此時完成了該協議的第二次握手,這次握手確保了硬件能夠正確地獲取所需信息并且進行標記信號的重置。在軟件獲得低電平的request之后,發送低電平的done信號并且解除阻塞。此時軟硬件的工作基本完成,為了防止重復響應以及再次爭取的響應,必須將交互信號進行重置。重置這些信號就需要該協議的第三次握手來確保雙方同時重置。硬件端收到低電平的done信號之后,解除阻塞。至此,一次軟硬件的信息交互結束。

圖2 通信協議

在本設計中,在雜交模塊,變異模塊,初始化模塊以及總控模塊中都是用了該協議來確保軟硬件雙方信息交互的正確性。

2 軟硬件協同的平臺實現

2.1 硬件模塊

如圖3所示,本模塊中共有6個狀態:

圖3 系統運行狀態機

●IDLE:空閑狀態,系統啟動以及復位后則進入該狀態。空閑狀態由硬件層面的總控模塊進行控制處理。模塊對系統的所有控制信號進行復位操作。系統在FPGA時鐘上升沿時檢查是否有外部(如開關、按鈕等)電平為高的運行信號(START)。在系統獲得高電平啟動信號之后開始進行狀態的轉換(以下模塊轉換中如無特殊說明,均是高電平有效),否則一直在IDLE狀態循環等待處于空閑。系統開始運行之后即轉入初始化狀態(INIT)。

●INIT:初始化狀態。在初始化狀態中完成系統中的初始化操作。具體操作為總控模塊發送啟動信號通知初始化模塊開始工作。之后在該狀態等待初始化操作的完成。在收到初始化模塊的完成信號之后,進入CROSS狀態。

●CROSS:雜交狀態。在雜交狀態中完成系統中的雜交操作。具體操作為總控模塊發送啟動信號通知雜交選擇模塊開始工作。之后在該狀態等待雜交操作的完成。在收到雜交模塊的完成信號之后,進入MUT狀態。

●MUT:變異狀態。在變異狀態中完本系統中的變異操作。具體操作為總控模塊發送啟動信號通知變異選擇模塊開始工作。之后在該狀態等待變異操作完成。在收到變異模塊的完成信號之后,進入VALUE狀態。

●VALUE:評估狀態。在評估狀態中完成本系統中的評估和停機判斷工作。具體操作為總控模塊發送啟動信號通知評價模塊開發工作。之后在該狀態中等待評價操作完成。直到收到評價模塊的完成信號之后,模塊根據反饋信號的不同決定下一個狀態。當STOP信號為0時,系統轉入CROSS狀態進行下一代遺傳操作。當STOP信號為1時,系統轉入STOP狀態。

●STOP:停機狀態。在停機狀態中完成本系統停止過程中的相關操作。具體操作就是模塊將算法獲得的最優個體及其適應值進行輸出操作,即將個體、適應值、運行代數、運行周期從模塊的輸出端口輸出,軟件層面獲取輸出數據之后將其反饋給用戶。最后再將整個設備狀態轉入IDLE狀態,并且重置片上內存。

2.2 軟件模塊

(1)隨機數模塊

隨機數模塊由軟件端實現。該模塊提供了遺傳算法流程中初始化模塊中個體生成、雜交選擇模塊的個體選擇和雜交點選擇、變異選擇模塊的個體選擇和變異點選擇。該模塊采用Xilinx公司擴展的C語言實現。具體實現表現為一個函數。函數有一個控制參數。函數返回為所需求的隨機數值。軟硬件交互協議的部分由調用該函數的部分控制實現。函數的內部具體實現為根據控制參數來判斷硬件所需的隨機數的范圍。函數實現為調用C語言中自帶的rand()函數,通過取模操作來選擇隨機數范圍。雖然C語言rand函數實現同樣可以使用硬件實現,但是在軟件實現的rand函數的隨機數種子是根據系統時間獲得,而硬件實現的隨機數的種子在每次產生隨機數時是固定不變的。

(2)適應值評價模塊

適應值評價模塊由軟件端實現。該模塊的功能為完成遺傳算法整個流程中的適應值評估工作,也就是所需要解決問題的具體描述。該模塊采用Xilinx公司擴展的C語言實現。具體實現表現為一個函數。函數的參數為控制參數以及需要進行適應值評價的個體(具體表現為一個50維數組)。函數返回為該個體的適應值。軟硬件交互協議的部分由調用該函數的部分控制實現。函數的內部具體實現為針對所求問題對二進制編碼形式的個體進行相應的計算。由于軟硬件交互時使用的是IP核內置寄存器,寄存器大小為32位。每個個體使用兩個寄存器,第一個寄存器32位全部使用,第二個寄存器只使用前18位。所以從寄存器中獲得個體計算適應值前,必須對寄存器中的數據進行處理。本設計中使用split函數進行該操作,輸入為兩個int類型,輸入為50維數組。函數通過移位和與操作完成。

3 數值計算應用實例

在科學研究中,數值計算是一類經常遇到的問題,通常這類問題的復雜度較高,使用普通的算法計算時間較長。使用遺傳算法解決數值問題可以起到較好的效果。但是軟件實現的遺傳算法執行效率低下,所以可以使用軟硬件協同工作的方式在不改變算法通用性的基礎上加快算法的收斂速度。

二進制問題是一類可以有效驗證遺傳算法功能正確性的基本問題。設計中使用的問題為計算二進制串中“1”的個數。1的個數越多,效果最優。由于初始化個體為隨機初始化。所以在初始化個體中0與1的比例接近1:1,必須通過不斷的雜交和變異才可以獲得最優解。因為個體串長為50,所以最優解為50個1。使用軟硬件協同的遺傳算法解決該問題只需要改寫軟件端的適應值函數。無需對硬件進行修改。

二進制問題運行效果見圖4所示。

圖4 二進制問題運行效果圖

從圖4中我們可以看出算法可以正確找到最優解,運行的代數為1272,去除用于判斷終止條件的500代,算法共運行700多代。整個算法運行時間為4.2秒。

因為遺傳算法是一個隨機搜索算法,算法的性能受初始化種群的好壞以及雜交變異的隨機性影響較大。而以上實驗截圖均是試驗中隨機獲取的數據,并不能代表設計的性能以及效果。

為了對軟硬件協同遺傳算法平臺的性能進行分析。本設計還利用開發板上PowerPC實現了一種純軟件實現的遺傳算法。為了驗證本設計的性能,這種實現方式的遺傳算法在流程和遺傳算子上設計都是和本設計完全一致的。為了避免由于隨機數帶來的偶然性誤差,本實驗得到大量數據之后,再對數據平均進行數據統計。其中二進制問題的對比數據如表1所示。

表1 兩種不同環境下算法運行效率對比

從表1中我們可以看到,本設計實現的算法和其他方式實現的算法都可以獲得最優解,并且收斂速度基本一致。本設計相比軟件實現性能卻有了10倍的提高。我們可以得出結論,使用軟硬件協同方式的遺傳算法在保留了軟件的可移植性的基礎上還可以提升數倍的運行效率。

4 結語

本文介紹了算法平臺設計中的軟硬件劃分的依據、軟硬件劃分的結果以及設計中模塊之間的連接關系。隨后對設計中的各個硬件模塊的具體實現做了詳細的介紹。設計了軟硬件之間進行信息交互所需要的協議,最后分別介紹了將硬件化模塊整合成整體遺傳算法IP核、FPGA開發平臺搭建、軟件平臺搭建、整個系統整合。該方法具有軟件的通用性以及硬件的運算高效性,理論上使用到遺傳算法的地方均可以使用該方法提高運行效率,尤其適合在實時性要求較高的場合(例如工業控制)應用。

猜你喜歡
信號設計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
孩子停止長個的信號
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 国产精品视频免费网站| 国产精品手机在线播放| 国产成人亚洲日韩欧美电影| 日韩精品少妇无码受不了| 成人亚洲天堂| 国产全黄a一级毛片| 国产视频一区二区在线观看| 97se亚洲综合在线天天| 四虎精品黑人视频| 亚洲天堂视频在线观看免费| 99ri精品视频在线观看播放| 精品国产女同疯狂摩擦2| 又爽又大又光又色的午夜视频| 19国产精品麻豆免费观看| 97人人模人人爽人人喊小说| 国产区人妖精品人妖精品视频| 夜夜拍夜夜爽| 欧洲av毛片| 欧美色99| 亚洲黄网在线| 天天摸天天操免费播放小视频| 国产久草视频| 麻豆精品在线视频| 亚洲欧美激情另类| 亚洲aⅴ天堂| 影音先锋亚洲无码| 男人天堂亚洲天堂| 波多野一区| 欧美中日韩在线| 午夜欧美在线| 伊人婷婷色香五月综合缴缴情| 色欲国产一区二区日韩欧美| 日本一区二区不卡视频| 亚洲欧美日韩精品专区| 人与鲁专区| 91九色国产在线| 亚洲国产中文在线二区三区免| 四虎AV麻豆| 欧美人与牲动交a欧美精品| 又黄又湿又爽的视频| 久热这里只有精品6| 2020最新国产精品视频| 国产欧美日韩在线在线不卡视频| 成年av福利永久免费观看| 亚洲a级在线观看| 色噜噜狠狠狠综合曰曰曰| 国产极品美女在线观看| 在线免费不卡视频| 国产精品成人免费综合| 精品免费在线视频| 国产一级毛片yw| 日韩高清欧美| 亚洲综合天堂网| 啪啪永久免费av| 日韩欧美国产综合| 日韩精品久久久久久久电影蜜臀| 狼友av永久网站免费观看| 沈阳少妇高潮在线| 欧类av怡春院| 亚洲中文字幕在线精品一区| 欧美国产中文| 2021国产精品自拍| www亚洲天堂| 精品国产免费人成在线观看| 久草青青在线视频| 71pao成人国产永久免费视频| 国产在线观看第二页| 青青热久麻豆精品视频在线观看| 特级毛片免费视频| 精品超清无码视频在线观看| 久久综合丝袜长腿丝袜| 国产精品无码影视久久久久久久| 最新日本中文字幕| 国产精品成人第一区| 欧美高清国产| 激情国产精品一区| 一级在线毛片| 国产成人综合网在线观看| 中文字幕丝袜一区二区| 国产精品第一区在线观看| 在线观看国产黄色| 色婷婷亚洲综合五月|