王銀媛
摘要:由于傳統(tǒng)的計(jì)算機(jī)的硬件設(shè)備在實(shí)驗(yàn)過程當(dāng)中存在著一定的問題,在該文當(dāng)中筆者提出了一種以云計(jì)算和真實(shí)實(shí)驗(yàn)板為基礎(chǔ)的遠(yuǎn)程實(shí)驗(yàn)室,可以通過瀏覽器實(shí)現(xiàn)FPGA的遠(yuǎn)程配置,從而進(jìn)行相關(guān)的實(shí)驗(yàn),同時(shí)實(shí)驗(yàn)數(shù)據(jù)也可以通過服務(wù)器進(jìn)行全過程的記錄,從而實(shí)現(xiàn)了對(duì)硬件的合理調(diào)度。同時(shí)利用JTGA機(jī)制也可以實(shí)現(xiàn)實(shí)驗(yàn)快照的保存與恢復(fù)。此外,在該系統(tǒng)當(dāng)中,實(shí)驗(yàn)預(yù)約功能也得到了很好的完善。在該文的研究當(dāng)中以以上內(nèi)容為基礎(chǔ)研發(fā)了一種遠(yuǎn)程實(shí)驗(yàn)室,實(shí)驗(yàn)的結(jié)果表明該實(shí)驗(yàn)室可以進(jìn)行廣泛的運(yùn)用。
關(guān)鍵詞:云計(jì)算平臺(tái);計(jì)算機(jī);硬件;遠(yuǎn)程實(shí)驗(yàn)室
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)27-0121-02
Abstract: Due to traditional computer hardware during the experiment there were some problems, in which the author of this article presents a true cloud computing and breadboard-based remote laboratory can achieve FPGA remote configuration through a browser, thus for related experiments, and the experimental data can also be recorded through the whole process of the server, in order to achieve reasonable dispatch hardware. While taking advantage of JTGA mechanism can be implemented to save and restore the experimental snapshot. In addition, among the system, experiment booking function has also been very good improvement. In this study, in which more than content-based developed a remote laboratory, experimental results show that the laboratory can be widely used.
Key words: cloud computing platforms; computer; hardware; remote laboratory
1 背景
當(dāng)前階段實(shí)驗(yàn)云技術(shù)是一種新型的技術(shù),所謂的實(shí)驗(yàn)云就是將云計(jì)算技術(shù)融合到遠(yuǎn)程實(shí)驗(yàn)技術(shù)當(dāng)中去。而將虛擬實(shí)驗(yàn)引入到實(shí)驗(yàn)教學(xué)當(dāng)中去就產(chǎn)生了遠(yuǎn)程實(shí)驗(yàn)技術(shù)。傳統(tǒng)教育模式由于虛擬實(shí)驗(yàn)技術(shù)的運(yùn)用而得到了革命性的改變,當(dāng)前階段,在市場(chǎng)當(dāng)中存在著許多針對(duì)實(shí)驗(yàn)教學(xué)的虛擬實(shí)驗(yàn)軟件,同時(shí)由于現(xiàn)階段大部分的高校都具有較為豐富的計(jì)算機(jī)網(wǎng)絡(luò)資源,從而使得虛擬實(shí)驗(yàn)的物質(zhì)基礎(chǔ)已經(jīng)具備。在虛擬實(shí)驗(yàn)室當(dāng)中對(duì)一些實(shí)驗(yàn)進(jìn)行模擬不僅對(duì)提高教學(xué)質(zhì)量具有非常重要的意義,同時(shí)在某些情況下由于實(shí)驗(yàn)條件不具備,可以充分利用這種技術(shù)使得學(xué)生更高更加深刻的觀察到實(shí)驗(yàn)的具體現(xiàn)象,此外通過虛擬實(shí)驗(yàn)室,學(xué)生還可以實(shí)現(xiàn)異地實(shí)驗(yàn)。從世界范圍內(nèi)來看,虛擬實(shí)驗(yàn)室的數(shù)量正在不斷增多,在許多高校當(dāng)中都具有較為廣泛的運(yùn)用[1]。
2 云實(shí)驗(yàn)平臺(tái)的總體設(shè)計(jì)
2.1 總體結(jié)構(gòu)
當(dāng)前階段云實(shí)驗(yàn)平臺(tái)的框架主要由三個(gè)部分組成,即硬件系統(tǒng)、軟件系統(tǒng)與參考文獻(xiàn)。硬件系統(tǒng)是云實(shí)驗(yàn)平臺(tái)的物質(zhì)基礎(chǔ),硬件系統(tǒng)是指云實(shí)驗(yàn)平臺(tái)的計(jì)算機(jī)硬件以及綜合實(shí)驗(yàn)板節(jié)點(diǎn)、服務(wù)器以及交換機(jī)等硬件設(shè)施,硬件系統(tǒng)當(dāng)中的所有設(shè)備都需要通過網(wǎng)絡(luò)連接到一起[2]。在實(shí)驗(yàn)的過程當(dāng)中所需要用到的軟件以及數(shù)據(jù)庫(kù)與運(yùn)行于數(shù)據(jù)庫(kù)當(dāng)中的WEB服務(wù)被稱為軟件系統(tǒng),軟件系統(tǒng)是用戶進(jìn)行操作的主要區(qū)域,是機(jī)器語言轉(zhuǎn)化到自然語言的重要工具,在云實(shí)驗(yàn)平臺(tái)的軟件系統(tǒng)當(dāng)中,實(shí)驗(yàn)板是由WEB服務(wù)器負(fù)責(zé)管理的,此外WEB服務(wù)器還會(huì)對(duì)客戶端的請(qǐng)求進(jìn)行回應(yīng),從而使得實(shí)驗(yàn)功能能夠順利地完成,此外還會(huì)將相關(guān)的實(shí)驗(yàn)數(shù)據(jù)傳輸?shù)椒?wù)器當(dāng)中去[3]。通過軟件系統(tǒng),用戶只需要通過手機(jī)或者平板電腦就可以進(jìn)行相關(guān)的實(shí)驗(yàn)。在云實(shí)驗(yàn)平臺(tái)當(dāng)中,參考文獻(xiàn)的格式已經(jīng)不再局限于傳統(tǒng)的文本文獻(xiàn),其不僅可以是文本格式,還可以是視頻或者音頻格式。
2.2 服務(wù)端的軟件設(shè)計(jì)
在云實(shí)驗(yàn)平臺(tái)當(dāng)中,服務(wù)端的軟件具有重要的意義,是對(duì)整個(gè)系統(tǒng)進(jìn)行調(diào)度的樞紐。用戶通過服務(wù)端軟件可以實(shí)現(xiàn)對(duì)實(shí)驗(yàn)的控制。在整個(gè)云實(shí)驗(yàn)平臺(tái)當(dāng)中,服務(wù)端軟件是實(shí)驗(yàn)功能軟件的基礎(chǔ),通過服務(wù)端軟件,上層的實(shí)驗(yàn)功能軟件可以獲取對(duì)應(yīng)的硬件接口。服務(wù)端軟件按照功能可以被劃分為三個(gè)模塊,即網(wǎng)絡(luò)通信模塊、實(shí)驗(yàn)資源管理模塊與遠(yuǎn)程硬件控制模塊。網(wǎng)絡(luò)通信模塊是整個(gè)模塊與實(shí)驗(yàn)板之間進(jìn)行通信的通道,其原理是基于SCOKET通信機(jī)制,其可以完成數(shù)據(jù)的接收與發(fā)送功能,同時(shí)也可以和實(shí)驗(yàn)板之間進(jìn)行有效連接。實(shí)驗(yàn)資源管理模塊可以對(duì)實(shí)驗(yàn)板當(dāng)中的所有資源進(jìn)行管理,在虛擬實(shí)驗(yàn)的過程當(dāng)中,實(shí)驗(yàn)資源管理系統(tǒng)可以實(shí)現(xiàn)對(duì)實(shí)驗(yàn)板連接請(qǐng)求的全過程監(jiān)控,在完成連接之后,則會(huì)對(duì)實(shí)驗(yàn)板進(jìn)行初始化[4]。然后加入熱備的資源池中,同時(shí)借助心跳機(jī)制,能夠及時(shí)發(fā)現(xiàn)實(shí)驗(yàn)板發(fā)生的死機(jī)現(xiàn)象并通知管理員處理。遠(yuǎn)程硬件控制模塊可以將用戶的控制命令按照相關(guān)的協(xié)議進(jìn)行包裝,同時(shí)通過網(wǎng)絡(luò)向硬件實(shí)驗(yàn)板進(jìn)行發(fā)送。
3 云實(shí)驗(yàn)平臺(tái)任務(wù)節(jié)點(diǎn)的設(shè)計(jì)
在云實(shí)驗(yàn)平臺(tái)當(dāng)中,任務(wù)節(jié)點(diǎn)端軟件需要根據(jù)實(shí)驗(yàn)板的芯片ARM芯片的STM32進(jìn)行設(shè)計(jì),任務(wù)節(jié)點(diǎn)端軟件實(shí)現(xiàn)對(duì)實(shí)驗(yàn)板的控制需要依賴硬件本身自定義的相關(guān)接口才能實(shí)現(xiàn),這些接口主要包括:存儲(chǔ)芯片、FPGA、網(wǎng)卡控制芯片、CPLD。任務(wù)階段軟件向上可以通過網(wǎng)絡(luò)與服務(wù)段的軟件進(jìn)行連接,同時(shí)接受其所發(fā)出的控制命令,從而實(shí)現(xiàn)對(duì)電路板的操控,同時(shí)還會(huì)將相關(guān)的實(shí)驗(yàn)結(jié)果進(jìn)行反饋[5]。任務(wù)節(jié)點(diǎn)端軟件所具有的軟件功能主要包括以下內(nèi)容:將從服務(wù)器所接受的文件進(jìn)行FPGA配置,同時(shí)將用戶代碼輸入到電路板的程序的存儲(chǔ)器,同時(shí)根據(jù)服務(wù)端軟件的命令對(duì)實(shí)驗(yàn)板進(jìn)行控制;完成心跳機(jī)制與硬件自檢;分配實(shí)驗(yàn)板IP地址;在云實(shí)驗(yàn)平臺(tái)當(dāng)中,任務(wù)節(jié)點(diǎn)軟件之間的關(guān)系如下圖中所示:
4 云實(shí)驗(yàn)平臺(tái)關(guān)鍵技術(shù)分析
4.1 實(shí)驗(yàn)板資源高效管理機(jī)制
在云實(shí)驗(yàn)平臺(tái)當(dāng)中,用戶一旦通過軟件申請(qǐng)了實(shí)驗(yàn)板,那么就會(huì)對(duì)FPGA進(jìn)行相關(guān)的配置,從而使得相關(guān)的實(shí)驗(yàn)功能得以實(shí)現(xiàn),在這個(gè)過程當(dāng)中原有的文件會(huì)被最新下載的文件所覆蓋。在這個(gè)過程當(dāng)中,必然會(huì)涉及的一個(gè)問題就是替換問題,由于大部分的FPGA文件都是比較大的,這就使得配置的過程往往需要耗費(fèi)較多的時(shí)間,而如果實(shí)驗(yàn)板一直在運(yùn)行當(dāng)中,那么上次實(shí)驗(yàn)所配置的FPGA依然還會(huì)被保留,而如果用戶所需要進(jìn)行的實(shí)驗(yàn)與上一次是一致的,那么FPGA就沒有必要進(jìn)行重新配置[6]。為了有效解決這種問題,我們將Cache調(diào)度的替換算法類比到分配過程當(dāng)中去,在系統(tǒng)當(dāng)中采用LRU算法。具體的實(shí)施方法如下所示:首先記錄實(shí)驗(yàn)板當(dāng)中的FPGA配置信息當(dāng)中的實(shí)驗(yàn),同時(shí)對(duì)不同實(shí)驗(yàn)板在最近的實(shí)驗(yàn)次數(shù)進(jìn)行統(tǒng)計(jì),當(dāng)用戶申請(qǐng)實(shí)驗(yàn)板時(shí),如果其所需要進(jìn)行的實(shí)驗(yàn)與最近在某實(shí)驗(yàn)板上所進(jìn)行的實(shí)驗(yàn)的內(nèi)容一致或者是相類似的話,且該實(shí)驗(yàn)板并不處于使用狀態(tài),那么這些實(shí)驗(yàn)板當(dāng)中最最不經(jīng)常使用的一塊就會(huì)被分配給用戶。而如果用戶所需要進(jìn)行的實(shí)驗(yàn)在最近都沒有人進(jìn)行過,那么系統(tǒng)將會(huì)把所有實(shí)驗(yàn)板當(dāng)中最不經(jīng)常使用的一塊實(shí)驗(yàn)板分配給用戶。通過這種方式進(jìn)行實(shí)驗(yàn)板的分配對(duì)提升分配效率具有非常重要的意義。
此外,為了防止出現(xiàn)掛機(jī)的現(xiàn)象,系統(tǒng)還會(huì)進(jìn)行實(shí)驗(yàn)板的回收,即如果用戶申請(qǐng)了實(shí)驗(yàn)板,但是該實(shí)驗(yàn)板在被分配之后很長(zhǎng)一段時(shí)間之內(nèi)都沒有進(jìn)行實(shí)驗(yàn)或者沒有數(shù)據(jù)流通,那么系統(tǒng)將會(huì)判定該實(shí)驗(yàn)板是出于空閑狀態(tài)的,服務(wù)端軟件就會(huì)自動(dòng)斷開實(shí)驗(yàn)板與用戶之間的連接,同時(shí)將實(shí)驗(yàn)板進(jìn)行回收并分配給其他用戶[7]。這種方式能夠有效減少掛機(jī)現(xiàn)象的產(chǎn)生,從而使得資源浪費(fèi)的現(xiàn)象大幅度減少。
4.2 實(shí)驗(yàn)快照保存與恢復(fù)機(jī)制
用戶在使用云實(shí)驗(yàn)平臺(tái)的過程當(dāng)中,往往會(huì)因?yàn)槎喾N因素的影響,必須要在中途終止實(shí)驗(yàn),而如果系統(tǒng)不具有備份功能,則用戶在下次重新實(shí)驗(yàn)時(shí)就必須要從頭開始,而無法恢復(fù)到上次的備份點(diǎn),因此,為了用戶實(shí)驗(yàn)的方便以及提高資源的利用效率,在該系統(tǒng)當(dāng)中設(shè)計(jì)了相應(yīng)的實(shí)驗(yàn)快照保存和恢復(fù)機(jī)制。該機(jī)制的實(shí)現(xiàn)需要依賴JTAG邊界掃面技術(shù),核心思想就是通過對(duì)FPGA芯片的掃描從而獲取其運(yùn)行狀態(tài)的相關(guān)數(shù)據(jù),同時(shí)將這些數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)當(dāng)中去,在進(jìn)行實(shí)驗(yàn)的恢復(fù)時(shí),在將所有的數(shù)據(jù)從數(shù)據(jù)庫(kù)當(dāng)中調(diào)出,并通過時(shí)鐘將其置入FPGA芯片當(dāng)中去。
實(shí)驗(yàn)快照保存與恢復(fù)機(jī)制的主要三個(gè)部分的內(nèi)容組成,即網(wǎng)絡(luò)通信模塊、邊界掃描控制器與遠(yuǎn)程被測(cè)試目標(biāo)。遠(yuǎn)程服務(wù)器在被啟動(dòng)之后,連接的請(qǐng)求被傳送到服務(wù)器,服務(wù)器會(huì)對(duì)其作出回應(yīng),而本地客戶端則會(huì)對(duì)遠(yuǎn)程服務(wù)器發(fā)送JTAG命令,遠(yuǎn)程服務(wù)器會(huì)讀取該命令并同時(shí)向邊界掃描器發(fā)送,同時(shí)邊界掃描器會(huì)FPGA進(jìn)行掃描并獲取相關(guān)的信息,并將相關(guān)的信息存儲(chǔ)到數(shù)據(jù)庫(kù)當(dāng)中去,黨用戶需要對(duì)這些信息進(jìn)行恢復(fù)時(shí),可以從數(shù)據(jù)庫(kù)將這些數(shù)據(jù)調(diào)出,并置于FPGA芯片當(dāng)中去[8]。其主要流程如下圖中所示。
5 系統(tǒng)功能測(cè)試
在進(jìn)行系統(tǒng)測(cè)試時(shí),首先需要進(jìn)行文件傳輸?shù)臏y(cè)試,其主要內(nèi)容包括用戶代碼與配置文件的下載,同時(shí)將原始文件與系統(tǒng)所接受到的文件進(jìn)行對(duì)比分析,對(duì)比的結(jié)果發(fā)現(xiàn),文件在系統(tǒng)當(dāng)中的傳輸是一種無損傳輸,代碼文件的測(cè)試結(jié)果也同樣表明文件文件在系統(tǒng)當(dāng)中的傳輸是一種無損傳輸[9]。
其次還需要對(duì)用戶程序的執(zhí)行進(jìn)行測(cè)試,對(duì)其執(zhí)行的結(jié)果與由Mars(MIPS assembler and runtime simulator)編譯軟件模擬執(zhí)行同樣的程序所得到的結(jié)果進(jìn)行對(duì)比與分析,判斷二者之間的結(jié)果是否完全一致,對(duì)比的結(jié)果說明用戶程序的寄存器與存儲(chǔ)器都是一致的[10]。
6 結(jié)束語
在本文當(dāng)中筆者所提出的云實(shí)驗(yàn)平臺(tái),不僅能夠通過網(wǎng)絡(luò)環(huán)境使得實(shí)驗(yàn)資源得以共享,同時(shí)還可以為學(xué)生進(jìn)行畢業(yè)設(shè)計(jì)于課程設(shè)計(jì)等提供必要的實(shí)驗(yàn)基礎(chǔ),此外,對(duì)于解決現(xiàn)階段高校實(shí)驗(yàn)室的建設(shè)也有著重要的意義,可以解決高校在實(shí)驗(yàn)室建設(shè)過程當(dāng)中的重復(fù)建設(shè)以及資源利用率偏低等問題。在本文當(dāng)中,筆者通過查閱大量的文獻(xiàn),并結(jié)合實(shí)際調(diào)查,設(shè)計(jì)出了該云實(shí)驗(yàn)平臺(tái),希望能對(duì)我國(guó)現(xiàn)階段高校的實(shí)驗(yàn)教學(xué)有所幫助。
參考文獻(xiàn):
[1] 楊龍軍. 計(jì)算機(jī)硬件云實(shí)驗(yàn)平臺(tái)關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[D]. 長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué), 2013.
[2] 閆格. 基于云計(jì)算架構(gòu)的高校實(shí)驗(yàn)室設(shè)計(jì)與實(shí)施[J]. 漳州師范學(xué)院學(xué)報(bào):自然科學(xué)版, 2011(3): 25-29.
[3] 俞建華. 基于云計(jì)算的遠(yuǎn)程教學(xué)資源建設(shè)模式——以浙江開放大學(xué)為例[J]. 中國(guó)電化教育, 2011(12): 130-135.
[4] 郝丹. 遠(yuǎn)程實(shí)驗(yàn)室:支撐環(huán)境與創(chuàng)新動(dòng)力——“中國(guó)遠(yuǎn)程教育學(xué)術(shù)論壇”綜述[J]. 中國(guó)遠(yuǎn)程教育, 2012(11): 5-15.
[5] 張宇灝. 基于云計(jì)算的電熔鎂砂生產(chǎn)過程遠(yuǎn)程能源監(jiān)視軟件平臺(tái)設(shè)計(jì)與開發(fā)[D]. 沈陽: 東北大學(xué), 2014.
[6] 尹雪蓉, 宋耀光, 倪巍. 云計(jì)算環(huán)境下OpenFlow網(wǎng)絡(luò)研究與實(shí)驗(yàn)探索[J]. 實(shí)驗(yàn)室研究與探索, 2013(12): 122-125,136.
[7] 方雷. 基于云計(jì)算的土地資源服務(wù)高效處理平臺(tái)關(guān)鍵技術(shù)探索與研究[D]. 杭州: 浙江大學(xué), 2011.
[8] 李婧. 基于云計(jì)算的遠(yuǎn)程教育資源共享技術(shù)研究與實(shí)現(xiàn)[D]. 西安: 西安電子科技大學(xué), 2013.
[9] 陳昌興. 高校實(shí)驗(yàn)室信息化的云計(jì)算策略與方法[J]. 實(shí)驗(yàn)技術(shù)與管理, 2014(1): 221-224.
[10] 陸忠芳. 基于云計(jì)算的移動(dòng)醫(yī)療服務(wù)平臺(tái)的研究與開發(fā)[D]. 杭州: 浙江理工大學(xué), 2013.