摘要:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)課程通常是使用WinDLX、DLXView、SimpleScalar等模擬器仿真的方式來進(jìn)行實(shí)驗(yàn)教學(xué),但此方式呆板枯燥且流于形式,我院改革了實(shí)驗(yàn)項(xiàng)目,采用”實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”的方式,真正實(shí)現(xiàn)從呆板的\"驗(yàn)證為主\"到創(chuàng)新的\"設(shè)計(jì)為主\"的飛躍。本文介紹了我院的實(shí)踐經(jīng)驗(yàn)。
關(guān)鍵詞:SimpleScalar;CMPP;模擬器;實(shí)驗(yàn)機(jī)箱;驗(yàn)證;設(shè)計(jì)創(chuàng)新
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
1引言
“計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)”課程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)中重要的專業(yè)課程,是一門從組織和結(jié)構(gòu)角度上學(xué)習(xí)、總體把握和領(lǐng)會計(jì)算機(jī)系統(tǒng)的課程。因?yàn)槠淅碚撔暂^強(qiáng),知識結(jié)構(gòu)較為復(fù)雜,它的實(shí)驗(yàn)課設(shè)置一直是一個(gè)空白。但是,作為一門針對本科高年級學(xué)生的計(jì)算機(jī)綜合設(shè)計(jì)課程,沒有相應(yīng)實(shí)驗(yàn)課對學(xué)生理解能力的提高和創(chuàng)新能力的培養(yǎng),所謂的綜合設(shè)計(jì)課程也成了一句空談,為此,我們使用WinDLX、DLXView、SimpleScalar模擬器(安裝在微機(jī)上)來仿真計(jì)算機(jī),讓學(xué)生在這個(gè)虛擬計(jì)算機(jī)上設(shè)置各種不同高端計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)技術(shù),然后通過統(tǒng)計(jì)數(shù)據(jù)得到不同計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)技術(shù)對計(jì)算機(jī)性能的不同影響,最后給出統(tǒng)計(jì)結(jié)論。
但在實(shí)際教學(xué)過程中,我們發(fā)現(xiàn),此種“PC機(jī)+模擬器”的實(shí)驗(yàn)方式形式過于單一,所有的實(shí)驗(yàn)都是先在模擬器中給出計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)技術(shù)參數(shù)設(shè)定,然后運(yùn)行測試程序,最后根據(jù)程序運(yùn)行結(jié)果給出實(shí)驗(yàn)結(jié)論。對學(xué)生而言,所做的工作只是系統(tǒng)結(jié)構(gòu)參數(shù)的給定,然后面對一堆運(yùn)行出來的枯燥數(shù)據(jù)給出實(shí)驗(yàn)結(jié)論。由于這些實(shí)驗(yàn)全是驗(yàn)證型實(shí)驗(yàn),使得學(xué)生沒有真正的實(shí)驗(yàn)體會,感覺也比較抽象,一個(gè)學(xué)期下來,整個(gè)實(shí)驗(yàn)課程沒有收到它應(yīng)有的效果,同時(shí)也沒能激發(fā)出學(xué)生的創(chuàng)新性。
為了讓學(xué)生更加有硬件實(shí)驗(yàn)體會,并發(fā)揮學(xué)生的創(chuàng)新性思維,我們在原有的“PC機(jī)+模擬器”模式下增加一個(gè)實(shí)驗(yàn)機(jī)箱,變成 “實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”模式,經(jīng)過一個(gè)學(xué)期的實(shí)踐,計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課程有了突破性的進(jìn)展,取得了較好的效果。
本文其他部分內(nèi)容如下:第二節(jié)介紹原有的“PC機(jī)+模擬器”實(shí)驗(yàn)?zāi)J降木唧w細(xì)節(jié)及其弊端;第三節(jié)闡明“實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”新模式的由來;第四節(jié)說明新模式具體的實(shí)驗(yàn)項(xiàng)目改革;最后給出本實(shí)驗(yàn)課程教改的特色與創(chuàng)新之處,并作出結(jié)論。
2“PC機(jī)+模擬器”模式
“計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)”課程中的實(shí)驗(yàn)課程在以往的教學(xué)中一直是一個(gè)空白。為響應(yīng)微軟亞洲研究院的大力倡導(dǎo),本課程初期引入由卡內(nèi)基·梅隆大學(xué)提出的“Learning by doing”這一適用于工程教學(xué)的行之有效的先進(jìn)教學(xué)理念,對“計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)”實(shí)驗(yàn)課程建設(shè)進(jìn)行初步嘗試。
由于這門課程的實(shí)驗(yàn)是從無到有的一個(gè)過程,因此,在建設(shè)初期,我們首先采用的是一個(gè)生搬照學(xué)的方法。為此,我們找到張晨曦教授在同濟(jì)大學(xué)使用的“計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)”實(shí)驗(yàn)教學(xué)資料,然后根據(jù)本校學(xué)生具體情況對實(shí)驗(yàn)內(nèi)容進(jìn)行部分篩選,總結(jié)出“PC機(jī)+模擬器”模式,然后運(yùn)用到實(shí)際教學(xué)中。
PC機(jī)是我們計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課程開展的硬件平臺,軟件平臺即我們的Windows操作系統(tǒng)以及安裝在其上的各種模擬器,包括WinDLX、DLXView、SimpleScalar模擬器。實(shí)驗(yàn)過程中,學(xué)生在這些模擬器中設(shè)置各種不同參數(shù)而獲得不同虛擬處理器,然后通過測試程序檢測不同系統(tǒng)結(jié)構(gòu)技術(shù)對處理器性能的影響。
WinDLX是一個(gè)基于Windows的模擬器。它能夠以圖的方式演示DLX流水線是如何工作的。學(xué)生通過改變流水線的結(jié)構(gòu)和時(shí)間要求、存儲器大小和其他幾個(gè)控制模擬的參數(shù),獲得不同流水線的性能。實(shí)驗(yàn)一的流水線相關(guān)實(shí)驗(yàn),實(shí)驗(yàn)二的循環(huán)展開及指令調(diào)度實(shí)驗(yàn)都是使用此模擬器。
DLXview是一個(gè)圖形化、交互式的DLX流水線模擬器。該模擬器能夠?qū)崿F(xiàn)對基本流水線、記分牌算法和Tomasulo算法的模擬。通過對內(nèi)存訪問延遲、功能部件的數(shù)目、功能部件的延遲的配置,實(shí)現(xiàn)不同流水線的模擬。實(shí)驗(yàn)三的記分牌和Tomasulo算法實(shí)驗(yàn)使用的是此模擬器。
而SimpleScalar模擬器是目前學(xué)術(shù)界最為流行的體系結(jié)構(gòu)模擬器,是一個(gè)單處理器架構(gòu)的性能模擬器工具集。其工具集包含了非常豐富的工具,可以配置成許多不同體系結(jié)構(gòu)的模擬器。同時(shí),其源代碼公開,具有良好可移植性和可擴(kuò)展性,是開發(fā)微處理器芯片前期進(jìn)行系統(tǒng)結(jié)構(gòu)驗(yàn)證的重要工具。也是使用軟件手段模擬和研究CPU系統(tǒng)結(jié)構(gòu)的主要手段。實(shí)驗(yàn)四的Cache性能分析中和實(shí)驗(yàn)五的虛擬Cache與偽相聯(lián)Cache使用的是此模擬器。
以上所述實(shí)驗(yàn)都是使用模擬器進(jìn)行計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)技術(shù)參數(shù)設(shè)定,然后運(yùn)行測試程序,最后根據(jù)程序運(yùn)行結(jié)果給出實(shí)驗(yàn)結(jié)論,其實(shí)驗(yàn)屬性全部是驗(yàn)證型實(shí)驗(yàn)。對于學(xué)生而言,所做的工作僅僅只是系統(tǒng)結(jié)構(gòu)技術(shù)參數(shù)的給定,和測試程序的運(yùn)行,最后從一堆運(yùn)行出來的數(shù)據(jù)中得到實(shí)驗(yàn)結(jié)論。
這種軟件模擬的方式適合研究生程度以上的學(xué)生進(jìn)行學(xué)術(shù)研究和理論驗(yàn)證,這也是這些學(xué)生對于新思想新理論進(jìn)行學(xué)術(shù)論證的常用方法與手段,但是對于發(fā)展目標(biāo)為應(yīng)用型的本科學(xué)生而言,此種實(shí)驗(yàn)形式與方法都過于枯燥與單一,整個(gè)實(shí)驗(yàn)做下來,學(xué)生感覺比較抽象,收不到實(shí)際效果,更談不上激發(fā)學(xué)生創(chuàng)新意識,實(shí)驗(yàn)做到最后便流于一種形式,一種走過場。
3新模式的引入
基于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課程建設(shè)初期所遇到的問題,我們決定重新規(guī)劃系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)內(nèi)容。
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課程是一門綜合實(shí)驗(yàn)課程,既然是綜合課程,即說它是一個(gè)軟硬件結(jié)合體。在“PC機(jī)+模擬器”模式實(shí)驗(yàn)中,模擬器的引入可以很好的體現(xiàn)其軟的方面,而硬的方面我們則選用學(xué)生在前期課程計(jì)算機(jī)組成原理中使用的教學(xué)設(shè)備(TND-CM++唐都教學(xué)儀器實(shí)驗(yàn)箱)入手,以達(dá)到事半功倍的學(xué)習(xí)效果。
計(jì)算機(jī)組成原理課程是專業(yè)必修課程,其教學(xué)與實(shí)驗(yàn)方面已經(jīng)形成一個(gè)完整而成熟的體系。這是一門在整個(gè)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)課程中份量很重的課程,也是一門非常重視實(shí)驗(yàn)課的課程,除開課程本身的70學(xué)時(shí)中包括20學(xué)時(shí)的實(shí)驗(yàn)課程,學(xué)生還有專門2周的課程設(shè)計(jì)工作需要完成。這些大量的前期學(xué)習(xí)與實(shí)驗(yàn)實(shí)踐,為學(xué)生熟練掌握和使用實(shí)驗(yàn)設(shè)備以及對計(jì)算機(jī)是軟硬件綜合體的理解打下堅(jiān)實(shí)基礎(chǔ)。而計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)課程本身就是計(jì)算機(jī)組成原理的后續(xù)和提高課程,利用前期的基礎(chǔ)作進(jìn)一步的理論提高和實(shí)驗(yàn)提高成了順理成章的事情。
因此,“實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”模式引入到計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)教學(xué)中。在以前的教學(xué)中,“實(shí)驗(yàn)機(jī)箱+PC機(jī)”和“模擬器+PC機(jī)器”模式是分開使用的,因此PC機(jī)分別與兩者的結(jié)合不是問題,但是當(dāng)這三者(實(shí)驗(yàn)機(jī)箱、PC機(jī)和模擬器三者)結(jié)合在一起時(shí),則需要對它們進(jìn)行重新分工組合,以達(dá)到理想的實(shí)驗(yàn)效果,這將在文章的第4節(jié)的具體實(shí)驗(yàn)項(xiàng)目中詳細(xì)敘述。
4“實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”模式
4.1“實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”模式簡介
“實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”模式是“PC機(jī)+模擬器”和“實(shí)驗(yàn)機(jī)箱+PC機(jī)”兩者的結(jié)合,但這種結(jié)合不是簡單機(jī)械的結(jié)合,而是一種有機(jī)的結(jié)合。在以前的教學(xué)中,“PC機(jī)+模擬器”方式用于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)初期實(shí)驗(yàn)課程,“實(shí)驗(yàn)機(jī)箱+PC機(jī)”方式用于計(jì)算機(jī)組成原理實(shí)驗(yàn)課程。但是,由于前一節(jié)“PC機(jī)+模擬器”方式所提到的弊端,即數(shù)據(jù)的枯燥性和理解的抽象性問題,我們把具有硬件動手優(yōu)勢的“實(shí)驗(yàn)機(jī)箱+PC機(jī)”方式中的計(jì)算機(jī)實(shí)驗(yàn)機(jī)箱引入到此課程實(shí)驗(yàn)中。
實(shí)驗(yàn)條件準(zhǔn)備如下:首先在PC機(jī)器中安裝Windows操作系統(tǒng),然后在此操作系統(tǒng)中安裝WinDLX、DLXView、SimpleScalar模擬器,同時(shí)安裝CMPP模擬器(實(shí)驗(yàn)設(shè)備廠家隨實(shí)驗(yàn)設(shè)備匹配提供)。然后通過RS-232串口與PC微機(jī)聯(lián)機(jī),這樣,利用PC機(jī)上具有的這些模擬器我們可以在PC 機(jī)上編程、向?qū)嶒?yàn)機(jī)箱系統(tǒng)裝載實(shí)驗(yàn)程序、然后在圖形界面下進(jìn)行動態(tài)調(diào)試及運(yùn)行。另外,系統(tǒng)具有的兩路邏輯信號測量平臺,使得可在PC機(jī)上看到信號測量波形。
我們實(shí)驗(yàn)的中心思想是:以計(jì)算機(jī)硬件為基礎(chǔ),通過軟件配置擴(kuò)充功能,形成一個(gè)可能是相當(dāng)復(fù)雜的有機(jī)組合的計(jì)算機(jī)系統(tǒng)。最后通過模擬器中測試數(shù)據(jù)的統(tǒng)計(jì)獲得此系統(tǒng)性能的結(jié)論數(shù)據(jù)。
其中的硬件是指我們通過實(shí)驗(yàn)機(jī)箱把計(jì)算機(jī)系統(tǒng)中的基礎(chǔ)模塊通過總線(數(shù)據(jù)總線、地址總線和控制總線)連接好;而配置軟件是指通過CMPP、SimpleScalar模擬軟件來進(jìn)行一些高級配置的擴(kuò)充,從而形成我們需要的系統(tǒng)結(jié)構(gòu);最后,通過(WinDLX、DLXView、SimpleScalar)模擬器跑動測試程序以獲得此系統(tǒng)結(jié)構(gòu)的性能參數(shù)及結(jié)論數(shù)據(jù)。
4.2模式的可行性論證
“實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”模式的可行性論證主要討論如下問題(其中系統(tǒng)指實(shí)驗(yàn)系統(tǒng),即實(shí)驗(yàn)設(shè)備):
(1)PC機(jī)與系統(tǒng)的關(guān)聯(lián):
實(shí)驗(yàn)系統(tǒng)安裝有一個(gè)標(biāo)準(zhǔn)的DB型9針RS-232C 串口插座,使用配套的串行通訊電纜分別插在實(shí)驗(yàn)系統(tǒng)及PC 微機(jī)的串口,即可實(shí)現(xiàn)系統(tǒng)與PC 的聯(lián)機(jī)操作。系統(tǒng)通訊電纜連接方式如圖1:
(2)CMPP與系統(tǒng)的關(guān)聯(lián)
系統(tǒng)配套的集成操作軟件CMPP具有專為聯(lián)機(jī)操而開發(fā)的圖形方式操作界面,其操作簡便、直觀且具有動態(tài)調(diào)試功能,可完全根據(jù)實(shí)驗(yàn)系統(tǒng)的數(shù)據(jù)通路圖來實(shí)時(shí)、動態(tài)的顯示用戶設(shè)計(jì)的實(shí)驗(yàn)數(shù)據(jù)流的流向、數(shù)據(jù)值、控制線和各單元的內(nèi)容。CMPP軟件界面如圖2:
本系統(tǒng)軟件CMPP通過PC 機(jī)串行口向?qū)嶒?yàn)系統(tǒng)上的單片機(jī)控制單元發(fā)送指令,由實(shí)驗(yàn)系統(tǒng)的單片機(jī)直接對程序存儲器、微程序控制器進(jìn)行讀寫,控制單拍或單步微程序、單步機(jī)器指令和程序連續(xù)運(yùn)行等操作,實(shí)時(shí)監(jiān)測各數(shù)據(jù)流和控制流的情況,從而實(shí)現(xiàn)實(shí)時(shí)動態(tài)圖形方式下的系統(tǒng)跟蹤調(diào)式和運(yùn)行。
(3)SimpleScalar模擬器與系統(tǒng)的關(guān)聯(lián)
SimpleScalar工具集是一個(gè)用于構(gòu)建各種模擬程序的系統(tǒng)軟件框架,可用于構(gòu)建各種體系結(jié)構(gòu)模擬器.它提供了一套參考模擬器,包括快速的功能模擬器,用于分支預(yù)測評估的模擬器,用于Cache層次評估的模擬器以及一個(gè)詳細(xì)的、動態(tài)調(diào)度的、多級存儲層次的微體系結(jié)構(gòu)模擬器.SimpleScalar還包含一個(gè)機(jī)器定義框架,允許絕大部分體系結(jié)構(gòu)細(xì)節(jié)和模擬器的具體實(shí)現(xiàn)分離.除了模擬器,SimpleScalar工具集還提供統(tǒng)計(jì)分析、調(diào)試、驗(yàn)證和可視化支持.SimpleScalar工具集被廣泛用于計(jì)算機(jī)體系結(jié)構(gòu)的研究和教學(xué).例如在2000年,頂級體系結(jié)構(gòu)會議上超過三分之一的文章是使用SimpleScalar來評價(jià)設(shè)計(jì)。
由于Simplescalar的使用廣泛性和完整性,我們把它引入我們的實(shí)驗(yàn)課程中,但由于這個(gè)模擬器與我們的實(shí)驗(yàn)系統(tǒng)是各自獨(dú)立的個(gè)體,因此當(dāng)把這兩者融合在一起時(shí)就存在一個(gè)有機(jī)組合問題。Simplescalar模擬器是一個(gè)原代碼公開的軟件,具有良好的可移植性和可擴(kuò)展性,因此我們希望通過代碼的更改,獲得SimpleScalar模擬器與實(shí)驗(yàn)設(shè)備的有機(jī)整合。雖然這部分工作我們已經(jīng)展開,但是工作做得還很不夠,這也是我們下一步要繼續(xù)進(jìn)行的重點(diǎn)工作之一。
4.3存在的問題
(1) 實(shí)驗(yàn)延續(xù)性的問題
通常,計(jì)算機(jī)組成原理課程會開在第五學(xué)期,計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)課程開在第七學(xué)期,因此,這兩門課程之間有一個(gè)學(xué)期的間隔,由于這兩門實(shí)驗(yàn)課程的順延性較強(qiáng),因此在計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課程的設(shè)計(jì)中,初始實(shí)驗(yàn)應(yīng)先重復(fù)計(jì)算機(jī)組成原理實(shí)驗(yàn)課程中綜合性強(qiáng),并在后續(xù)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課程中需要應(yīng)用到的實(shí)驗(yàn)內(nèi)容。
(2) 課時(shí)偏少而實(shí)驗(yàn)內(nèi)容偏多的問題
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課時(shí)偏少,一般是8個(gè)課時(shí)(4個(gè)學(xué)時(shí))。但是由于其實(shí)驗(yàn)內(nèi)容綜合性強(qiáng),復(fù)雜度大,因此很難在一個(gè)學(xué)時(shí)(2個(gè)課時(shí))完成一個(gè)實(shí)驗(yàn)。這就要求老師和學(xué)生在實(shí)驗(yàn)課之前要做較多的工作,包括老師在實(shí)驗(yàn)課之前詳細(xì)的講解,學(xué)生在課前完成實(shí)驗(yàn)預(yù)習(xí)工作,這樣,才能充分利用一個(gè)學(xué)時(shí)的時(shí)間完成一次的實(shí)驗(yàn)。
(3)SimpleScalar與實(shí)驗(yàn)系統(tǒng)的整合問題
前面說過,我們利用SimpleScalar模擬器的開放性代碼把SimpleScalar模擬器和實(shí)驗(yàn)系統(tǒng)整合在一起,這個(gè)工作還需要繼續(xù)完善。這個(gè)工作也是整個(gè)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課程改革的一個(gè)重要的步驟。它是一個(gè)需要長期驗(yàn)證、修改和調(diào)試以及完善的工作,不是短時(shí)間就能完成的工作。
4.4實(shí)驗(yàn)項(xiàng)目的設(shè)計(jì)
(1)CISC(復(fù)雜指令集計(jì)算機(jī))實(shí)驗(yàn)
此實(shí)驗(yàn)要求先按照實(shí)驗(yàn)連接圖把計(jì)算機(jī)的主要模塊通過總線連接起來(這個(gè)操作在實(shí)驗(yàn)機(jī)箱內(nèi)進(jìn)行),然后為這個(gè)模型計(jì)算機(jī)設(shè)計(jì)包括16條機(jī)器指令(包括算術(shù)邏輯指令、I/O指令、訪問及轉(zhuǎn)移指令和停機(jī)指令)的指令集,編寫相應(yīng)的微程序,通過PC機(jī)中CMPP模擬器裝載和調(diào)試程序,以使同學(xué)們通過這個(gè)過程掌握整機(jī)概念,并能綜合運(yùn)用所學(xué)計(jì)算機(jī)原理知識,設(shè)計(jì)并實(shí)現(xiàn)較為完整的計(jì)算機(jī)。
此實(shí)驗(yàn)是在前計(jì)算機(jī)組成原理實(shí)驗(yàn)課程中掌握部件單元電路實(shí)驗(yàn)的基礎(chǔ)上,進(jìn)一步將其組成系統(tǒng)。同時(shí)也是對以前所學(xué)知識的溫習(xí)。
(2)RISC(精簡指令集計(jì)算機(jī))實(shí)驗(yàn)
RISC是針對CISC結(jié)構(gòu)存在的問題所提出的思想。它選取使用頻率最高,以及很有用但不復(fù)雜的指令,這些指令大部分能在一個(gè)時(shí)鐘周期內(nèi)完成,并且只有Load和store兩條指令訪存等思想設(shè)計(jì)的計(jì)算機(jī),在此實(shí)驗(yàn)中,我們選取使用頻度比較高的五條基本指令:MOV、ADD、STORE、LOAD、JMP。然后尋址方式采用寄存器尋址及直接尋址兩種方式來設(shè)計(jì)這個(gè)RISC計(jì)算機(jī)(依照前一實(shí)驗(yàn)方法,也是由CMPP模擬器進(jìn)行調(diào)試)。
然后,我們通過在SimpleScalar模擬器中設(shè)置參數(shù)來比較RISC計(jì)算機(jī)和CISC計(jì)算機(jī),這是通過跑同一測試程序來完成的。結(jié)論是:RISC機(jī)器執(zhí)行的速度和效率大大提高。如對于此實(shí)驗(yàn)中設(shè)計(jì)的機(jī)器指令在RISC處理器中執(zhí)行完需9個(gè)機(jī)器周期,而在復(fù)雜模型機(jī)實(shí)驗(yàn)中,需34個(gè)機(jī)器周期才能完成。
這樣的實(shí)驗(yàn)程序的設(shè)計(jì),可以讓同學(xué)們深刻體會到兩種不同處理器的運(yùn)行效率,同時(shí)讓同學(xué)們體會到實(shí)驗(yàn)直觀性。
(3) 重疊實(shí)驗(yàn)
此實(shí)驗(yàn)是在RISC模型機(jī)實(shí)驗(yàn)的基礎(chǔ)上,進(jìn)一步將其構(gòu)成一臺具有重疊功能的模型機(jī)。
一條指令的執(zhí)行包括“取指”和“分析執(zhí)行”兩個(gè)階段,而重疊技術(shù)是指把前條指令的“分析和執(zhí)行”與后條指令的“取指”重疊在一起執(zhí)行。
在此實(shí)驗(yàn)中,計(jì)算機(jī)“執(zhí)行部件”數(shù)據(jù)通路的控制由微程序控制器來完成,而“指令預(yù)取”部件的數(shù)據(jù)通路由一片CPLD 來模擬。以原基本模型機(jī)的五條機(jī)器指令為例,編寫相應(yīng)的微程序,然后具體上機(jī)調(diào)試掌握重疊概念。
然后,在SimpleScalar模擬器中設(shè)置參數(shù)比較RISC計(jì)算機(jī)和重疊計(jì)算機(jī)。結(jié)論是:重疊計(jì)算機(jī)執(zhí)行的速度和效率明顯提高。如前所述的同段機(jī)器指令在重疊處理器中執(zhí)行完需要20個(gè)機(jī)器周期,而在RISC模型機(jī)的實(shí)驗(yàn)中,需要27個(gè)機(jī)器周期。
(4) 流水實(shí)驗(yàn)
流水可以看作是重疊的引申,一次重疊是一種簡單的指令流水線。在流水計(jì)算機(jī)中,一條指令的執(zhí)行包括“取指令”、“指令譯碼”、“取操作數(shù)”、“執(zhí)行”四個(gè)子過程(前三階段由指令分析部件完成,而第四階段由指令執(zhí)行部件完成),而每個(gè)子過程可以與其他子過程同時(shí)進(jìn)行,這叫并行性中的并發(fā)性。
這種并行性大大提高了計(jì)算機(jī)的處理效率。本實(shí)驗(yàn)除“指令執(zhí)行部件”為板上的“ALU UNIT”和“REG UNIT”電路構(gòu)成外,其余全部由CM++板上的一片CPLD 芯片設(shè)計(jì),輸入設(shè)備、輸出設(shè)備、RAM 及時(shí)序仍由板上輸入單元、輸出顯示單元、存儲器單元及時(shí)序單元電路給出。
實(shí)驗(yàn)過程類似于前述實(shí)驗(yàn)。
5實(shí)驗(yàn)特色與創(chuàng)新
新設(shè)計(jì)的“實(shí)驗(yàn)機(jī)箱+PC機(jī)+模擬器”實(shí)驗(yàn)?zāi)J接腥缦鹿δ芴攸c(diǎn)。
(1) 結(jié)構(gòu)清晰的單元式實(shí)驗(yàn)電路,可構(gòu)造出不同結(jié)構(gòu)及復(fù)雜程度的原理性計(jì)算機(jī)。系統(tǒng)采用部件單元式結(jié)構(gòu),包括運(yùn)算器及數(shù)據(jù)通路、存儲器、控制器、信號及時(shí)序控制、內(nèi)總線、外總線、外圍接口及輸入輸出設(shè)備、大規(guī)??删幊踢壿嬈骷扔?jì)算機(jī)部件的單元電路,可使用排線連接方式(實(shí)驗(yàn)機(jī)箱)或計(jì)算機(jī)電子自動邏輯設(shè)計(jì)方式(SimpleScalar等模擬器),根據(jù)自己所設(shè)計(jì)的模型計(jì)算機(jī)結(jié)構(gòu)方案,來構(gòu)造出不同結(jié)構(gòu)及復(fù)雜程度的原理性計(jì)算機(jī),使學(xué)生能夠?qū)τ?jì)算機(jī)組成結(jié)構(gòu)有清楚的認(rèn)識和理解。
(2) 對實(shí)驗(yàn)設(shè)計(jì)具有完全的開放性,增強(qiáng)學(xué)生綜合設(shè)計(jì)能力。系統(tǒng)所具有的軟硬件結(jié)構(gòu)(實(shí)驗(yàn)機(jī)箱和模擬器)對實(shí)驗(yàn)設(shè)計(jì)具有完全的開放性,其數(shù)據(jù)線、地址線、控制線都由學(xué)生來操作連接,系統(tǒng)中的運(yùn)算器結(jié)構(gòu)、控制器結(jié)構(gòu)及微程序指令的格式及定義均可根據(jù)教學(xué)需要來做靈活改變或重新設(shè)計(jì)。這對于自行設(shè)計(jì)各種結(jié)構(gòu)及不同復(fù)雜程度的模型計(jì)算機(jī)提供了強(qiáng)大的軟硬件操作平臺,從而避免了單純驗(yàn)證性的實(shí)驗(yàn)?zāi)J?,極大提高了學(xué)生計(jì)算機(jī)系統(tǒng)的綜合設(shè)計(jì)能力。
(3) 通用邏輯器件和大規(guī)??删幊踢壿嬈骷嘟Y(jié)合,可面向不同層次的學(xué)生。系統(tǒng)采用通用邏輯器件和大規(guī)??删幊踢壿嬈骷⒂玫姆绞剑饶芙o熟練掌握復(fù)雜邏輯系統(tǒng)設(shè)計(jì)的學(xué)生提供高檔的實(shí)驗(yàn)平臺,又能對不熟悉這些內(nèi)容的學(xué)生提供易操作的實(shí)驗(yàn)平臺。符合循序漸進(jìn)、先基礎(chǔ)后提高的教學(xué)原則。
(4) 具有實(shí)時(shí)調(diào)試功能的圖形方式操作界面,也可用于多媒體輔助教學(xué)。系統(tǒng)具有與PC微機(jī)聯(lián)機(jī)實(shí)時(shí)調(diào)試的功能,提供了圖形方式的調(diào)試界面(CMPP模擬器),在調(diào)試過程中可動態(tài)實(shí)時(shí)顯示模型計(jì)算機(jī)各部件之間的數(shù)據(jù)傳送以及各部件和總線上的所有信息。這種圖形調(diào)試界面也可用于多媒體輔助教學(xué),從而獲得極佳的教學(xué)效果。
(5) 多種輸入輸出方式及邏輯信號測量功能,實(shí)驗(yàn)操作及觀察更容易。系統(tǒng)提供多種輸入輸出方式。通過RS-232 串口與PC 微機(jī)聯(lián)機(jī),可在PC 機(jī)上進(jìn)行編程并向系統(tǒng)裝載實(shí)驗(yàn)程序,在圖形界面下進(jìn)行動態(tài)調(diào)試及運(yùn)行。另外還具有兩路邏輯信號測量平臺,可在PC 機(jī)上看到信號測量波形;如單獨(dú)使用本系統(tǒng),則可通過開關(guān)及LED以二進(jìn)制碼形式進(jìn)行編程、顯示及調(diào)試運(yùn)行。
(6) 實(shí)驗(yàn)電路的實(shí)時(shí)在線檢測功能,便于檢查接線錯(cuò)誤。系統(tǒng)具有實(shí)驗(yàn)電路檢測功能,通過人機(jī)交互方式可實(shí)時(shí)在線檢測各實(shí)驗(yàn)單元電路的好壞以及模型機(jī)實(shí)驗(yàn)線路連接是否正確。
(7) 測試功能的完備性。SimpleScalar工具集所自帶的SimpleScalar Spec2000測試程序使得學(xué)生可以及時(shí)對自己設(shè)計(jì)出來的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)方案進(jìn)行測試,然后根據(jù)測試結(jié)果對所設(shè)計(jì)計(jì)算機(jī)結(jié)構(gòu)進(jìn)行及時(shí)調(diào)整,以提高學(xué)生的實(shí)驗(yàn)直觀性。
6小結(jié)
實(shí)踐證明,此模式把計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)設(shè)計(jì)成一門軟硬件結(jié)合的綜合實(shí)驗(yàn)課程,并真正實(shí)現(xiàn)從呆板的“驗(yàn)證為主”到創(chuàng)新的“設(shè)計(jì)為主”的飛躍。試用一年以來獲得較好效果。
參考文獻(xiàn):
[1] 張福新,章隆兵. 基于SimpleScalar的龍芯CPU模擬器Sim-Godson[J]. 計(jì)算機(jī)學(xué)報(bào),2007,30(1).
[2] 張晨曦. “計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)”第四版[M]. 北京:高等教育出版社,2006.
[3] 陳劍龍. SimpleScalar模擬器內(nèi)核分析及應(yīng)用[J]. 哈爾濱工業(yè)大學(xué)學(xué)報(bào),2004,(5).