肖凱,李雯
摘要:實(shí)驗(yàn)是計(jì)算機(jī)組成原理課程教學(xué)的重要環(huán)節(jié)。針對(duì)目前傳統(tǒng)實(shí)驗(yàn)箱存在的不足,將DS-VLAB虛擬實(shí)驗(yàn)環(huán)境應(yīng)用于計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué),提出了遞進(jìn)性實(shí)驗(yàn)設(shè)計(jì)思路,以總線與微命令實(shí)驗(yàn)為例,分析了DS-VLAB的應(yīng)用過程。教學(xué)實(shí)踐表明,DS-VLAB具有靈活性和良好的互動(dòng)性,激發(fā)了學(xué)生學(xué)習(xí)課程的興趣,取得了較好的效果。
關(guān)鍵詞:計(jì)算機(jī)組成原理;實(shí)驗(yàn)教學(xué);DS-VLAB
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)33-0171-03
1 引言
計(jì)算機(jī)組成原理是計(jì)算機(jī)類專業(yè)的專業(yè)基礎(chǔ)課。該課程的教學(xué)目標(biāo)是讓學(xué)生掌握計(jì)算機(jī)硬件系統(tǒng)各功能部件的組成、工作原理、設(shè)計(jì)和實(shí)現(xiàn)方法,建立計(jì)算機(jī)硬件系統(tǒng)的整體概念,從系統(tǒng)的角度完整、準(zhǔn)確地理解和掌握計(jì)算機(jī)系統(tǒng)的組成原理與內(nèi)部運(yùn)行機(jī)理,為后續(xù)專業(yè)課程學(xué)習(xí)奠定基礎(chǔ)。從教師的授課角度來看,教學(xué)內(nèi)容相對(duì)比較抽象,學(xué)生不容易理解,而實(shí)驗(yàn)可以讓學(xué)生逐漸領(lǐng)會(huì)并掌握如何通過典型的芯片去構(gòu)建并實(shí)現(xiàn)計(jì)算機(jī)各部件的功能,是非常重要的一個(gè)教學(xué)環(huán)節(jié)。
在很多高校,計(jì)算機(jī)組成原理的實(shí)驗(yàn)教學(xué)還依賴一些科教儀器廠生產(chǎn)的配套實(shí)驗(yàn)箱,但是客觀上還存在明顯的不足:
(1)硬件投資較大,很難保證一人一臺(tái)套,而多人一組做實(shí)驗(yàn),效果難以保證,另外配套的實(shí)驗(yàn)箱往往只能針對(duì)“計(jì)算機(jī)組成原理”一門課程,或者兼顧一門相關(guān)課程,導(dǎo)致實(shí)驗(yàn)設(shè)備及場(chǎng)地資源的投入效能比較低下。
(2)實(shí)驗(yàn)設(shè)備維護(hù)的時(shí)間成本和費(fèi)用規(guī)模不可控。百密一疏,學(xué)生的某一次錯(cuò)誤地連線,可能導(dǎo)致芯片器件或功能部件的永久損壞,該套實(shí)驗(yàn)箱就無法正常工作,維修時(shí)間和維修費(fèi)用等都會(huì)明顯影響實(shí)驗(yàn)教學(xué)的實(shí)施。
(3)實(shí)驗(yàn)箱具有不可重構(gòu)的特點(diǎn),功能擴(kuò)展性較差。計(jì)算機(jī)組成原理的教學(xué)內(nèi)容不可能是完全一成不變的,當(dāng)需要增加新的設(shè)計(jì)或驗(yàn)證實(shí)驗(yàn)時(shí),實(shí)驗(yàn)箱將會(huì)捉襟見肘,無法滿足實(shí)驗(yàn)的需求。
鑒于以上不足,計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)采用虛擬實(shí)驗(yàn)系統(tǒng)是一種較好的選擇[1-2]。目前計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)系統(tǒng)主要有兩種平臺(tái)環(huán)境,分別是基于Logisim[3-4]和基于DS-VLAB[5-6],兩者各有千秋。Logisim需要安裝Java運(yùn)行時(shí)環(huán)境才可以運(yùn)行,華中科技大學(xué)以及美國(guó)的康奈爾大學(xué)均采用Logisim作為計(jì)算機(jī)硬件類課程的仿真教學(xué)。采用DS-VLAB不需要安裝Java運(yùn)行時(shí)環(huán)境,主要基于瀏覽器客戶端來運(yùn)行,對(duì)學(xué)生而言,具有比較好的操作度和接受度。
2 DS-VLAB簡(jiǎn)介
DS-VLAB全稱為多思計(jì)算機(jī)組成原理網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng)[5],是一款開源的網(wǎng)絡(luò)虛擬實(shí)驗(yàn)軟件,由湘南學(xué)院張?chǎng)╇兝蠋熢O(shè)計(jì)開發(fā)。DS-VLAB有兩種運(yùn)行模式,即單機(jī)模式和B/S模式。在單機(jī)模式下,只需要Windows操作系統(tǒng),IE瀏覽器10.0以上版本即可,因此單機(jī)模式是最為便利的運(yùn)行模式,可以不受實(shí)驗(yàn)室時(shí)空的限制,方便地實(shí)施計(jì)算機(jī)組成原理的實(shí)驗(yàn)教學(xué)。
DS-VLAB在某種程度上模擬了真實(shí)世界的計(jì)算機(jī)組成原理實(shí)驗(yàn)過程。主要體現(xiàn)在三個(gè)方面:
(1)根據(jù)實(shí)驗(yàn)?zāi)康?,結(jié)合課堂所授知識(shí)點(diǎn),構(gòu)想實(shí)驗(yàn)的原理圖;
(2)根據(jù)原理圖,對(duì)照DS-VLAB提供的典型元件庫,構(gòu)造實(shí)驗(yàn)的電路圖;
(3)基于DS-VLAB提供的虛擬環(huán)境,繪制電路,進(jìn)行設(shè)計(jì)、測(cè)試和驗(yàn)證。
其中的“繪制電路”即可實(shí)現(xiàn)了常規(guī)實(shí)驗(yàn)箱的功能,而且具有靈活性和擴(kuò)展性。DS-VLAB系統(tǒng)主界面包括菜單欄、工具欄、工具箱和工作區(qū)四個(gè)部分,學(xué)生在實(shí)驗(yàn)時(shí),只需要根據(jù)電路圖,將元器件從工具箱拖到工作區(qū),以連線方式連接相關(guān)元器件的引腳,值得注意的是,用鼠標(biāo)操作連線時(shí),可感知引腳的熱點(diǎn)區(qū)域,且連線具有一定的方向性,通常是從某個(gè)輸出連接到某個(gè)輸入。完成全部連線以后,就可以進(jìn)入運(yùn)行模式,進(jìn)行后續(xù)的實(shí)驗(yàn)設(shè)計(jì)和驗(yàn)證。
3 DS-VLAB在實(shí)驗(yàn)教學(xué)中的應(yīng)用
DS-VLAB的實(shí)驗(yàn)內(nèi)容包含全加器、運(yùn)算器、存儲(chǔ)器、總線與微命令、累加器、程序計(jì)數(shù)器、微程序控制器、簡(jiǎn)單模型機(jī)、微程序設(shè)計(jì)等九個(gè)實(shí)驗(yàn)和一個(gè)模型機(jī)課程設(shè)計(jì)[5],涵蓋了計(jì)算機(jī)組成原理這門課程大多數(shù)比較核心的知識(shí)點(diǎn)、實(shí)驗(yàn)設(shè)計(jì)和驗(yàn)證點(diǎn),同時(shí)也支持實(shí)驗(yàn)的擴(kuò)展設(shè)計(jì)。
3.1遞進(jìn)性實(shí)驗(yàn)設(shè)計(jì)
針對(duì)DS-VLAB的實(shí)驗(yàn)內(nèi)容進(jìn)行一定的裁剪,通過以下的分類及組合,可以充分地體現(xiàn)遞進(jìn)性實(shí)驗(yàn)設(shè)計(jì)理念。
(1)初級(jí):驗(yàn)證型實(shí)驗(yàn)
包括全加器、運(yùn)算器、存儲(chǔ)器實(shí)驗(yàn)。其中全加器實(shí)驗(yàn)要求掌握全加器的邏輯結(jié)構(gòu),構(gòu)建1位和2位全加器邏輯電路,并進(jìn)行結(jié)果驗(yàn)證;運(yùn)算器實(shí)驗(yàn)要求掌握算術(shù)邏輯運(yùn)算單元的工作原理,以4位算術(shù)邏輯運(yùn)算單元74LS181為對(duì)象,驗(yàn)證其算術(shù)和邏輯運(yùn)算功能;存儲(chǔ)器實(shí)驗(yàn)要求掌握SRAM的工作特性,以2K×8位SRAM芯片6116為對(duì)象,驗(yàn)證其讀寫過程。
(2)中級(jí):設(shè)計(jì)型實(shí)驗(yàn)
包括總線與微命令、程序計(jì)數(shù)器實(shí)驗(yàn)。其中總線與微命令實(shí)驗(yàn)要求理解總線、微命令與微操作的概念,在運(yùn)算器與存儲(chǔ)器之間構(gòu)建數(shù)據(jù)通路,設(shè)計(jì)微命令完成所需的運(yùn)算功能,建立起初步的整機(jī)概念;程序計(jì)數(shù)器實(shí)驗(yàn)要求在總線與微命令實(shí)驗(yàn)的基礎(chǔ)上,掌握使用微命令通過程序計(jì)數(shù)器從存儲(chǔ)器中讀取指令和數(shù)據(jù)的方法。
(3)高級(jí):綜合型實(shí)驗(yàn)
包括簡(jiǎn)單模型機(jī)、微程序設(shè)計(jì)實(shí)驗(yàn)。其中簡(jiǎn)單模型機(jī)實(shí)驗(yàn)要求掌握微指令與機(jī)器指令的關(guān)系,建立較全面的整機(jī)概念;微程序設(shè)計(jì)實(shí)驗(yàn)要求深入理解微程序控制器的電路組成和工作原理,在簡(jiǎn)單模型機(jī)的基礎(chǔ)上,設(shè)計(jì)并調(diào)試4條機(jī)器指令的微程序,驗(yàn)證每條指令的功能。
上述三種比較典型的實(shí)驗(yàn)類型和七個(gè)典型的實(shí)驗(yàn)內(nèi)容,在制定實(shí)驗(yàn)課程計(jì)劃時(shí),可按照初級(jí)、中級(jí)、高級(jí)三種類型兼顧,根據(jù)實(shí)驗(yàn)學(xué)時(shí)靈活組合,通過遞進(jìn)性實(shí)驗(yàn),由基本的元器件構(gòu)造成計(jì)算機(jī)組成部件,由計(jì)算機(jī)組成部件構(gòu)建成系統(tǒng),有利于培養(yǎng)學(xué)生獨(dú)立思考和實(shí)踐能力,通過這種循序漸進(jìn)和潛移默化的過程,讓學(xué)生逐漸建立起計(jì)算機(jī)硬件系統(tǒng)的整體概念。
3.2典型實(shí)驗(yàn)案例分析
現(xiàn)代CPU的兩大核心部件為運(yùn)算器、控制器,而操作控制器是CPU控制器的重要組成部分??刂破髟趯?shí)現(xiàn)一條指令的功能時(shí),把每條指令分解為一系列時(shí)間上先后有序的最基本、最簡(jiǎn)單的微操作,即微操作序列。指令操作流程與相應(yīng)微操作序列的安排,主要取決于數(shù)據(jù)通路的結(jié)構(gòu),不同的數(shù)據(jù)通路有不同的微操作序列。
數(shù)據(jù)通路是許多寄存器之間傳送信息的通路,用來實(shí)現(xiàn)CPU內(nèi)部的運(yùn)算器與寄存器,以及寄存器之間的數(shù)據(jù)交換。在各寄存器之間建立數(shù)據(jù)通路的任務(wù),正是由操作控制器來完成的。操作控制器的功能就是根據(jù)指令操作碼和時(shí)序信號(hào),產(chǎn)生各種操作控制信號(hào),以便正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制。
以中級(jí)類型的總線與微命令實(shí)驗(yàn)為例,該實(shí)驗(yàn)屬于設(shè)計(jì)型實(shí)驗(yàn),有利于讓學(xué)生深入理解總線的作用,通過數(shù)據(jù)通路分析與時(shí)序控制,構(gòu)造出微操作序列,熟悉并掌握CPU指令的執(zhí)行過程,通過運(yùn)算器,控制器(手工模擬)、內(nèi)存儲(chǔ)器之間的相互作用,初步建立計(jì)算機(jī)硬件系統(tǒng)的整體概念,有利于開展后續(xù)的簡(jiǎn)單模型機(jī)、微程序設(shè)計(jì)實(shí)驗(yàn)等綜合型實(shí)驗(yàn)。
如圖1所示[5],其中ALU由2片74LS181構(gòu)成,寄存器DR1、DR2和AR均為一片74LS273,RAM為一片6116芯片,Δ表示三態(tài)門74LS245,時(shí)序發(fā)生器為虛擬實(shí)驗(yàn)系統(tǒng)提供的虛擬組件,因此學(xué)生在準(zhǔn)備實(shí)驗(yàn)時(shí),需要熟悉4位算術(shù)邏輯運(yùn)算單元74LS181,8位數(shù)據(jù)鎖存器74LS273,三態(tài)輸出的總線收發(fā)器74LS245,2K×8靜態(tài)隨機(jī)存儲(chǔ)器6116等芯片器件的功能特性、管腳定義和連接方式。
在圖1中,包括ALU、DR1、DR2、RAM在內(nèi),幾乎所有的器件都連接在單一的總線上,數(shù)據(jù)或地址信息的傳送均是通過總線來完成的。本實(shí)驗(yàn)用人工設(shè)置數(shù)據(jù)開關(guān)的方法來模擬控制器生成微命令,完成一系列操作和任務(wù)。對(duì)照單總線數(shù)據(jù)通路原理圖,繪制出實(shí)驗(yàn)原理圖,通過協(xié)調(diào)各芯片器件工作狀態(tài)來確定微命令,正是學(xué)生的核心設(shè)計(jì)任務(wù)。
該實(shí)驗(yàn)電路如圖2所示,上部中間的13個(gè)數(shù)據(jù)開關(guān)用來連接控制信號(hào),這個(gè)需要學(xué)生在深刻理解圖1所示的數(shù)據(jù)通路原理圖的基礎(chǔ)上,正確地與相應(yīng)的芯片引腳相連。數(shù)據(jù)開關(guān)的不同狀態(tài)組合代表不同的微命令,可執(zhí)行相應(yīng)的微操作。在圖2中,由2片74LS181構(gòu)成的ALU可以實(shí)現(xiàn)多種算術(shù)邏輯運(yùn)算,可以進(jìn)行多種微命令的設(shè)計(jì)和驗(yàn)證,比較典型的有:
(1)求A⊕B
A從數(shù)據(jù)開關(guān)輸入,B是存儲(chǔ)器操作數(shù),需要從指定的存儲(chǔ)單元取操作數(shù),B的地址也從數(shù)據(jù)開關(guān)輸入,運(yùn)算結(jié)果通過數(shù)據(jù)顯示燈顯示。
(2)計(jì)算A-B→存儲(chǔ)單元C
A和B都是存儲(chǔ)器操作數(shù),A、B的地址以及地址C都從數(shù)據(jù)開關(guān)輸入。
總線與微命令實(shí)驗(yàn)作為一個(gè)典型實(shí)驗(yàn),在實(shí)驗(yàn)過程中,微命令的設(shè)計(jì)可以通過可視化數(shù)據(jù)開關(guān)操作,結(jié)果的驗(yàn)證很容易從特定存儲(chǔ)單元讀取或者通過數(shù)據(jù)顯示燈顯示,通過這種虛擬仿真,學(xué)生能夠有很直觀的印象,有效加深對(duì)課堂所授內(nèi)容的理解。
4 結(jié)束語
DS-VLAB作為一種虛擬實(shí)驗(yàn)系統(tǒng),可以彌補(bǔ)固定實(shí)驗(yàn)箱的不足,借助于虛擬仿真手段,非常適合計(jì)算機(jī)組成原理的實(shí)驗(yàn)教學(xué)。我們的教學(xué)實(shí)踐證明,將DS-VLAB應(yīng)用于實(shí)驗(yàn)教學(xué),遞進(jìn)式開展實(shí)驗(yàn),可以充分體現(xiàn)實(shí)驗(yàn)的靈活性和直觀互動(dòng)性,激發(fā)學(xué)生的學(xué)習(xí)興趣,達(dá)到較好的實(shí)驗(yàn)教學(xué)效果,有利于學(xué)生充分理解計(jì)算機(jī)各功能部件的工作原理與整機(jī)的工作過程。
參考文獻(xiàn):
[1] 吳繼明,鐘群鋒,曾碧卿.虛擬仿真技術(shù)在計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2019(3):34-38.
[2] 許海杰,劉升.計(jì)算機(jī)組成原理實(shí)驗(yàn)平臺(tái)改進(jìn)研究[J].通化師范學(xué)院學(xué)報(bào),2019,40(4):82-86.
[3] 何苑,張劍妹.Logisim在計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].忻州師范學(xué)院學(xué)報(bào),2021,37(5):31-34.
[4] 劉躍華,梁英,何靜.虛擬仿真實(shí)驗(yàn)在《計(jì)算機(jī)組成原理與匯編語言》課程中的應(yīng)用[J].電腦知識(shí)與技術(shù),2020,16(11):138-140.
[5] 張?chǎng)╇?計(jì)算機(jī)組成原理實(shí)驗(yàn)教程[M].北京:中國(guó)水利水電出版社,2016.
[6] 王莉.基于多思虛擬平臺(tái)的計(jì)算機(jī)組成原理實(shí)驗(yàn)仿真[J].山西大同大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,37(6):30-32,35.
【通聯(lián)編輯:王力】