張雯雰, 肖 娟, 劉華艷, 廖雋婷
(湘南學院計算機科學系,湖南郴州 423000)
計算機組成原理虛擬實驗系統(tǒng)的設計與實現(xiàn)
張雯雰, 肖 娟, 劉華艷, 廖雋婷
(湘南學院計算機科學系,湖南郴州 423000)
為增加使用靈活性、降低程序復雜度、提高實驗效果,提出了一種基于瀏覽器客戶端技術的計算機組成原理虛擬實驗系統(tǒng)設計方案。該系統(tǒng)全部采用瀏覽器客戶端技術實現(xiàn),具有良好的交互性和擴展性。系統(tǒng)使用JAVASCRIPT開發(fā)組件庫,利用CSS繪制芯片等組件,采用VML繪制組件間的連接線,用HTML5 File API實現(xiàn)電路文件的導入導出。提出了基于隊列的單線程組件調(diào)度算法,有效解決了眾多組件之間信息傳遞和調(diào)度運行的問題。系統(tǒng)從功能上對組件進行仿真,實現(xiàn)了實驗電路的仿真運行,支持自主設計電路,可進行復雜模型機等設計性實驗。本系統(tǒng)已用于實驗教學,取得了良好的教學效果。
仿真;虛擬實驗室;計算機組成原理;瀏覽器客戶端技術
計算機組成原理是計算機專業(yè)開設的一門重要的專業(yè)基礎課,實驗是學習此門課程的重要環(huán)節(jié),通過動手實驗,學生能親身體驗硬件間的連接、信息的交互以及硬件的工作過程等。傳統(tǒng)的實驗箱在教學中顯現(xiàn)出諸多弊端:①硬件相對固定、不易擴展,不利于設計性實驗的開展。②由于硬件動作的不可見性,學生做實驗時,不清楚硬件動作的執(zhí)行流程和單元間的數(shù)據(jù)流動,實驗透明度不高[1]。③ 存在元器件老化、損壞以及連接線接觸不良等問題,導致實驗成功率不高。④受到時間和空間的限制,特定的實驗只能在規(guī)定的時間和地點完成[2]。⑤購買和維護成本較高,有時不得不采取分組實驗。可見,計算機組成原理虛擬實驗系統(tǒng)對提高實驗效果、降低教學成本、實現(xiàn)全時空教學目標都具有重要意義。
現(xiàn)有的計算機組成原理虛擬實驗系統(tǒng)主要分為三類,①利用已有的EDA(電子設計自動化)軟件來實現(xiàn)[3-6],這類軟件一般為單機運行,不適合網(wǎng)絡教學,而且由于是專業(yè)級的高度仿真,難以屏蔽本課程無需關心的電路細節(jié)問題。② 對某種已有的實驗箱從外觀到操作進行模擬[7-9],這種方式繼承了物理實驗箱不易擴展等缺點。③從芯片級進行仿真,可拖拽芯片和連接線組成芯片電路并運行[1,10-13],此類系統(tǒng)多為 B/S模式或C/S模式、使用JAVA編程,需下載和安裝瀏覽器插件才能運行。
本文的計算機組成原理仿真實驗平臺屬于上述第③類系統(tǒng),用JAVASCRIPT+JQUERY+JQUERYUI+CSS+VML編程實現(xiàn),在IE10中測試通過。目前,實現(xiàn)網(wǎng)絡虛擬實驗室的技術主要有 Java、Flash、VRML等[14],本系統(tǒng)則采用了基于JavaScript的瀏覽器客戶端技術,正因為全部使用客戶端技術,所以系統(tǒng)結(jié)構簡單,既能以B/S模式運行,也可不加修改直接以單機方式運行,且無需下載任何插件,能夠非常方便地整合到其它網(wǎng)絡綜合實驗平臺中。
本系統(tǒng)設計實現(xiàn)了多個經(jīng)典實驗電路,實驗透明度較高,例如對于關鍵的微程序控制器實驗,設有屏蔽微程序控制器的內(nèi)部電路、將其抽象并封裝為一個組件,而是給出了一個由微地址生成邏輯、微地址寄存器、微程序存儲器和時序產(chǎn)生器組成的具體電路,便于實驗者了解控制器的工作原理,理解微指令中順序控制部分的作用,為模型機與微程序設計打下基礎。此外,本系統(tǒng)具有高度的可擴展性,學生可以自己設計實驗電路,便于設計性實驗的開展。
系統(tǒng)架構如圖1所示。客戶端通過瀏覽器向Web服務器提出頁面請求,Web服務器響應請求,找到所請求的頁面,并將此頁面及其引用的JavaScript腳本代碼和CSS樣式表作為響應內(nèi)容,發(fā)送回客戶端,客戶端瀏覽器打開發(fā)回的頁面文件、解釋并執(zhí)行JavaScript代碼。
客戶端承擔了仿真實驗室運行的全部任務,包括操作界面的顯示、電路的連接與繪制、電路的運行等等。由于JavaScript腳本是由客戶端解釋執(zhí)行,不占用服務器資源,從而大大減輕了服務器的壓力、提高了頁面反應速度。
圖1 系統(tǒng)架構
系統(tǒng)主要包括5大部分:電路繪制、組件調(diào)度、組件庫、文件操作、實驗指導。其中,組件庫是實驗組件的類庫,供電路繪制、組件調(diào)度和文件操作模塊調(diào)用;電路繪制模塊根據(jù)用戶的拖拽動作生成仿真電路;組件調(diào)度模塊是所有組件的運行調(diào)度中心,負責調(diào)度和控制組件的工作順序,并且將運行結(jié)果在電路圖中顯示出來。實驗文件操作主要提供實驗電路的新建、導入和導出等功能。系統(tǒng)功能模塊如圖2所示。
圖2 系統(tǒng)功能模塊
電路建模具有層次性,根據(jù)層次的不同可將元件模型分為晶體管級和行為級。行為級模型是根據(jù)元件的傳遞函數(shù)或者輸入/輸出特性來構造模型,優(yōu)點是在較少犧牲精度的前提下降低了實現(xiàn)難度,同時保證模型實用性[15]。本系統(tǒng)采用了基于行為級模型的建模方式。
實驗組件可分為3種:源器件、中間器件和終端器件。源器件產(chǎn)生驅(qū)動整個電路運行的源數(shù)據(jù),包括開關、單脈沖、連續(xù)脈沖等。中間器件接收輸入信號,經(jīng)處理后輸出結(jié)果信號,包括ALU芯片、RAM芯片、門電路等。終端器件用于顯示結(jié)果,只有輸入引腳沒有輸出引腳,如小燈。
組件庫設計的難點是:組件類的設計和定義,類定義必須滿足組件繪制、運行與調(diào)度功能需要,為組件的繪制、運行與調(diào)度提供所有必須的屬性和方法;源器件產(chǎn)生源數(shù)據(jù)的方法,主要是開關和脈沖的實現(xiàn)方法。
組件庫由所有實驗組件的JavaScript類組成,組件類描述組件的外形屬性、電氣屬性和功能方法。例如,ALU芯片74LS181的屬性和方法定義如下:
開關組件有開、關2種狀態(tài),對應輸出0和1 2種電平信號。電源按下時,系統(tǒng)會自動搜尋到所有的開關組件,并按照開關狀態(tài)向外輸出電平信號。在實驗運行過程中,用戶可以通過單擊開關組件使其閉合或打開,瀏覽器捕捉到鼠標單擊事件后自動調(diào)用源器件響應函數(shù),實現(xiàn)輸出電平的轉(zhuǎn)換和開關圖標的切換。
脈沖組件使用JavaScript中的Timer定時器實現(xiàn)。用setTimeout函數(shù)設置電平跳變的時間間隔以及跳變時要調(diào)用的處理函數(shù)。脈沖組件啟動之后,經(jīng)過指定的時間間隔,會自動調(diào)用源器件響應函數(shù),實現(xiàn)輸出電平的轉(zhuǎn)換,并且初始化下一個timer、啟動下一次的電平跳變。
電路繪制模塊的主要任務是根據(jù)鼠標拖放的位置,在實驗電路區(qū)域顯示組件和連接線,并為組件和連接線綁定鼠標事件的處理函數(shù)。
當實驗者從工具箱拖拽某種組件到實驗電路區(qū)域時,電路繪制模塊會自動生成該組件的一個對象,并按照類中給定的外形屬性繪制其圖標。當實驗者將鼠標從一個引腳拖放到另一個引腳時,該模塊會自動計算并繪制引腳間的連接折線,并把連接線信息保存到組件對象中。拖動組件時,該模塊會修改組件的位置參數(shù),實現(xiàn)組件的移動,同時重畫與其相連的所有連接線。
實驗電路是由多個功能相對獨立的組件組成,當一個組件運行時,該組件執(zhí)行自己的功能方法,并將結(jié)果輸出到下一級組件,下一級組件工作后再把結(jié)果輸出到下下級組件,電平信號就這樣在電路中傳遞和擴散,直到?jīng)]有新的信號生成。設計的難點在于,怎樣讓眾多組件協(xié)調(diào)有序地逐級工作。
此模塊在實現(xiàn)上有2個選擇,① 采用多線程技術;②使用單線程方法。由于JAVASCRIPT是單線程的,因此本系統(tǒng)采用了單線程方法。
本模塊使用隊列實現(xiàn)組件調(diào)度。如圖3所示,電源按鈕按下時,遍歷所有組件,將滿足運行條件的組件入隊,然后從隊頭取出第一個組件執(zhí)行,按組件的輸出結(jié)果依次修改與其相連的下級組件輸入引腳的值,并判斷下級組件是否達到運行條件,如果達到運行條件且不在隊尾則入隊,如此直到隊列為空。除了電源按鈕的單擊事件會啟動組件調(diào)度過程以外,在實驗進行中,源器件的鼠標單擊事件或Timer事件也會觸發(fā)組件調(diào)度過程。該模塊的主要屬性和方法定義如下:
圖3 組件調(diào)度流程圖
其中,源器件觸發(fā)事件處理函數(shù)是當開關、脈沖等源器件被單擊或Timer被觸發(fā)時被系統(tǒng)自動調(diào)用的。此函數(shù)會更新源器件的值,并將其加入隊列,然后啟動runCircuit函數(shù)。
該算法簡明有效,避免了多線程中讀寫共享資源的沖突,無需使用鎖機制。
本系統(tǒng)開發(fā)了許多組件,可分為4類:一是數(shù)字功能器件,主要包括:① 74LS181、RAM6116等芯片;②邏輯門電路,如與門、或門、非門等;③ 基本元件,主要包括開關、小燈、單脈沖和連續(xù)脈沖;④ 為虛擬組件,此類組件沒有對應的物理芯片,是為了屏蔽電路細節(jié)或為了電路的簡潔,將多個功能部件封裝為一個組件而成,比如時序電路組件和EPROM2716×3組件。
系統(tǒng)的用戶界面圖,上面是菜單欄和工具欄,左邊是實驗設備列表,右邊是實驗電路區(qū)。以運算器組成實驗為例,實驗者將需要的組件從左邊的設備列表拖拽到實驗電路區(qū),接上連接線,按下工具欄的電源按鈕后,電路開始運行,實驗者可通過開關和單脈沖設置芯片的輸入,仿真電路會自動進行運算和信息傳遞,最后將結(jié)果顯示在小燈上。
本文在對現(xiàn)有計算機組成原理虛擬實驗室進行分析和研究的基礎上,提出了一種計算機組成原理虛擬實驗系統(tǒng)的實現(xiàn)方案。該仿真實驗平臺基于瀏覽器客戶端技術,極大減輕了網(wǎng)絡服務器的負擔,可非常方便地用于遠程網(wǎng)絡教學。我校已在3個專業(yè)的計算機組成原理實驗課中使用該系統(tǒng),實踐表明,此系統(tǒng)具有一定的優(yōu)越性、教學效果好。同時,該系統(tǒng)也為其他課程虛擬實驗室的建設提供了一個很好的參考模型。
[1] 王建新,張麗媛,盛 羽,等.基于組件的計算機組成原理虛擬實驗室的設計與實現(xiàn)[J].系統(tǒng)仿真學報,2008,20(9),2469-2474.
WANG Jian-xin,ZHANG Li-yuan,SHENG Yu,et al.Design and Implementation of Principles of Computer Organization Virtual Lab Based on Component[J].Journal of System Simulation,2008,20(9),2469-2474.
[2] 姚文月.基于VRML的計算機原理虛擬實驗室的研究與設計[D].南京:南京信息工程大學,2011.
[3] KOUZES R T,MYERS J D,WULF W A.Collaboratories:Doing science on the Internet[J].IEEE Computer,1996,29(8):40-46.
[4] 于湛麟.Multisim在計算機組成原理實驗中的應用[J].電子設計工程,2012,20(15),15-17.
YU Zhan-lin.Application of Multisim in computer composition principle experiment[J].Electronic Design Engineering,2012,20(15),15-17.
[5] ZOU Fenghua,GU He,LI Nianfeng.Application of Quartus II and FPGA Technology in ExperimentofPrinciples ofComputer Composition[M].Software Engineering and Knowledge Engineering:Theory and Practice.Springer Berlin Heidelberg,2012:841-846.
[6] 樸希南.基于EDA技術的計算機組成原理虛擬實驗[J].電腦知識與技術,2011,7(7):1707-1709.
PIAO Xi-nan.Principles of Computer Organization Virtual Experiment Based on EDA Technology[J].Computer Knowledge and Technology,2011,7(7):1707-1709.
[7] 郝尚富,李 英,錢國棟.基于UML的計算機組成原理虛擬實驗室[J].吉林大學學報,2012,30(6):633-637.
HAO Shang-fu,LI Ying,QIAN Guo-dong.Virtual Experiment System of Computer Composition Principle Based on UML[J].Journal of Jilin University,2012,30(6):633-637.
[8] 劉 均,馮志林.計算機組成原理仿真實驗系統(tǒng)設計與實現(xiàn)[J].浙江工業(yè)大學學報,2009,37(5):486-520.
LIU Jun, FENG Zhi-lin. Design and implement of simulation experiment system for principles of computer organization[J].Journal of Zhejiang University of Technology,2009,37(5):486-520.
[9] 董 瑋,趙 林,陳秀寓.計算機組成原理虛擬實驗的設計與實現(xiàn)[J].計算機教育,2009,15:182-185.
DONG Wei,ZHAO Lin,CHEN Xiu-yu.Design and implement of simulation experiment for principles of computer organization[J].Computer Education,2009,15:182-185..
[10] 謝朝暉.CPU虛擬實驗平臺的設計與實現(xiàn)[D].長沙:中南大學,2009.
[11] 鄭耿忠.計算機組成原理虛擬實驗室的研究及實現(xiàn)[J].計算機系統(tǒng)應用,2008,2:62-65.
ZHENG Geng-zhong.Thestudyand implementofcomputer organization princile’s virtual laboratory[J].Computer Systems Application,2008,2:62-65.
[12] 蔣 旭.基于組件的虛擬實驗室系統(tǒng)的研究[D].西安:西安科技大學,2010.
[13] 冉啟皓,唐九飛,于俊清.基于Web的計算機學科虛擬實驗關鍵技術研究[C]//第七屆和諧人機環(huán)境聯(lián)合學術會議.北京:清華大學出版社,2011:197-206.
RAN Qi-hao, TANG Jiu-fei, YU Jun-qing. Research on Key Technologies of Computer Science Virtual Experiment Based on Web[C]// 9th Conference on Harmonious Human Machine Environment.China.Beijing:Tsinghua University PRESS,2011:197-206.
[14] 張 剛,羅小華,賀利芳.構建網(wǎng)絡虛擬實驗室技術研究[J].實驗室研究與探索,2008,27(3):55-58.
ZHANG Gang, LUO Xiao-hua, HE Li-fang. Research on Technologies to Support Web Virtual Lab[J].Research and Exploration in Laboratory,2008,27(3):55-58.
[15] 王建宏,何 川,王 戈.復雜模擬電路仿真中的元件建模技術[J].計算機工程與設計,2012,33(12):4691-4695.
WANG Jian-hong,HE Chuan,WANG Ge.Component modeling technology on simulation of complex analog circuits[J].Computer Engineering and Design,2012,33(12):4691-4695.
Design and Implementation of Virtual Experiment System for Computer Composition Principle
ZHANG Wen-fen,XIAO Juan,LIU Hua-yan,LIAO Jun-ting
(Faculty of Computer,Xiangnan University,Chenzhou 423000,China)
This paper proposes an implementation method for the course of principles of computer composition virtual experiment system based on browser client technology to increase flexibility,reduce the complexity of software,and improve the experimental effect.This system is highly interactive and extensible as it is fully realized by browser client technologies.It uses JAVASCRIPT to define component library,uses CSS rendering chip and other components,uses VML to draw the connecting line,and uses HTML5 File API to read and write files.A single-threaded scheduling algorithm based on the queue is presented to effectively solve problems of data transfer and component dispatch between many components.This system simulates components from the perspective of functions and realizes simulative operation of the experimental circuit.In this system,a user can design circuit by himself and can design complicated model machine.This system has been applied in experimental teaching,and achieved good teaching effects.
simulation;virtual lab;computer composition principle;browser client technology
G 642.423;TP 391.7
A
1006-7167(2014)05-0062-05
2013-06-27
湖南省科技計劃項目(2011TP4016-3);湖南省教育科學規(guī)劃項目(XJK013QXX003);湖南省教育廳科研項目(湘財教指【2011】91 號NO.11C1182);湘南學院科研項目(院發(fā)【2012】126號NO.44、187號 NO.27)
張雯雰(1976-),女,湖南澧縣人,碩士,副教授,研究方向:智能算法。
Tel.:0735-2239516,18075531016;E-mail:yydzhwf@163.com