摘 要:實(shí)驗(yàn)是“計(jì)算機(jī)體系結(jié)構(gòu)”課程教學(xué)的重要環(huán)節(jié),能夠有效輔助學(xué)生對(duì)課堂教學(xué)中各個(gè)關(guān)鍵問題的理解與掌握。文章系統(tǒng)分析課程的各個(gè)知識(shí)點(diǎn),探討適合每個(gè)知識(shí)點(diǎn)的實(shí)驗(yàn)方式,提出十五個(gè)實(shí)驗(yàn)?zāi)K。在實(shí)施教學(xué)時(shí),可以為不同培養(yǎng)類型和知識(shí)結(jié)構(gòu)的學(xué)生指定適合的實(shí)驗(yàn)?zāi)K。文章最后提出了若干與強(qiáng)化實(shí)驗(yàn)教學(xué)有關(guān)的問題。
關(guān)鍵詞:計(jì)算機(jī)體系結(jié)構(gòu);實(shí)驗(yàn)教學(xué);模擬;仿真
1 背景
“計(jì)算機(jī)體系結(jié)構(gòu)”(以下簡稱“體系結(jié)構(gòu)”)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)計(jì)算機(jī)工程方向的一門重要課程,它強(qiáng)調(diào)從系統(tǒng)級(jí)的角度介紹計(jì)算機(jī)的組成和相應(yīng)軟硬件模塊的設(shè)計(jì)與實(shí)現(xiàn)方法。通過課程學(xué)習(xí),學(xué)生能夠深入理解和掌握計(jì)算機(jī)系統(tǒng)的軟硬件接口、各項(xiàng)性能指標(biāo)、系統(tǒng)性能的基本分析方法,以及為了達(dá)到最佳性能、最佳性價(jià)比、最佳性能功耗比等不同設(shè)計(jì)目標(biāo)所應(yīng)采用的軟硬件設(shè)計(jì)技術(shù)。
除了課堂講授,實(shí)驗(yàn)也是該課程教學(xué)的一個(gè)重要環(huán)節(jié)。通過實(shí)驗(yàn),能夠有效地加深學(xué)生對(duì)課堂上所學(xué)習(xí)的各個(gè)關(guān)鍵知識(shí)點(diǎn)的理解與掌握。以2010年研究生入學(xué)考試的第44題為例:
44. 某計(jì)算機(jī)的主存地址空間大小為256MB,按字節(jié)編址。指令和數(shù)據(jù)Cache分離,均有8個(gè)Cache行,每個(gè)Cache行大小為64B,數(shù)據(jù)Cache采用直接映射方式。現(xiàn)有兩個(gè)功能相同的程序A和B,其偽代碼如下所示:…(略)
假定int類型數(shù)據(jù)用32位補(bǔ)碼表示,程序編譯時(shí)i、j、sum均分配在寄存器中,數(shù)組a按行優(yōu)先方式存放,其地址為320(十進(jìn)制)。請(qǐng)回答,要求說明理由或給出計(jì)算過程。
(1) 若不考慮用于Cache一致性維護(hù)和替換算法
的控制位,則數(shù)據(jù)Cache的總?cè)萘繛槎嗌伲?
該題第(1)問主要考察學(xué)生對(duì)“數(shù)據(jù)Cache中存放了哪些數(shù)據(jù)和控制信息”這一知識(shí)點(diǎn)的掌握情況。能夠正確回答該問的同學(xué)并不多,因?yàn)榻^大部分同學(xué)都忽視了valid bit和dirty bit這兩個(gè)重要信息。
我們對(duì)我院2007級(jí)的部分本科生進(jìn)行了調(diào)查,讓他們獨(dú)立完成該題。參加調(diào)查的學(xué)生都系統(tǒng)地學(xué)習(xí)過Cache的相關(guān)知識(shí),并進(jìn)行過16位CPU的設(shè)計(jì)實(shí)驗(yàn),但其中一半同學(xué)僅設(shè)計(jì)實(shí)現(xiàn)了基本指令流水線,另一半同學(xué)還完成了分離的一級(jí)指令Cache和數(shù)據(jù)Cache設(shè)計(jì)。
從調(diào)查結(jié)果來看,完成了Cache設(shè)計(jì)的同學(xué)回答正確率遠(yuǎn)遠(yuǎn)高于另一部分同學(xué),他們認(rèn)為實(shí)驗(yàn)有助于加深他們對(duì)這一知識(shí)點(diǎn)的理解與掌握,并且效果明顯。
在Hennessy和Patterson推出了《計(jì)算機(jī)體系結(jié)構(gòu):量化分析方法》[1]這一經(jīng)典教材后,量化研究方法已經(jīng)成為當(dāng)前計(jì)算機(jī)體系結(jié)構(gòu)教學(xué)和相關(guān)研究所采用的基本方法。這進(jìn)一步增加了計(jì)算機(jī)體系結(jié)構(gòu)實(shí)驗(yàn)的重要性,學(xué)生通過實(shí)驗(yàn)掌握性能數(shù)據(jù)的收集和分析方法。因此,加強(qiáng)實(shí)驗(yàn)建設(shè),充分發(fā)揮實(shí)驗(yàn)作用已經(jīng)成為高水平計(jì)算機(jī)體系結(jié)構(gòu)課程建設(shè)必須完成的重要任務(wù)。
作者簡介:沈立,男,副教授,研究方向?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu)、編譯技術(shù)、虛擬化技術(shù);張春元,男,教授,研究方向?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu);王志英,男,教授,研究方向?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu)。
目前進(jìn)行體系結(jié)構(gòu)實(shí)驗(yàn)主要有軟件模擬和硬件仿真兩種形式,雖然二者在功能上基本等效,但由于抽象程度不同,它們所反映出的實(shí)現(xiàn)細(xì)節(jié)也不相同。以Cache子系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)為例,無論是軟件模擬還是硬件仿真都可以反映出valid bit和dirty bit等控制信息所占用的存儲(chǔ)容量;而在動(dòng)態(tài)指令調(diào)度的相關(guān)實(shí)驗(yàn)中,雖然通過兩種方法都能夠得到動(dòng)態(tài)調(diào)度帶來的性能加速,但硬件仿真方法能夠更準(zhǔn)確地反映出實(shí)現(xiàn)該機(jī)制所需的開銷。
筆者從以下三個(gè)方面介紹在該課程實(shí)驗(yàn)教學(xué)方面所作的工作:首先,在分析該課程各知識(shí)點(diǎn)的特點(diǎn)以及其是否適合進(jìn)行實(shí)驗(yàn)的基礎(chǔ)上,我們?cè)O(shè)計(jì)了15個(gè)實(shí)驗(yàn)?zāi)K;其次,探討了如何為不同培養(yǎng)類型和知識(shí)結(jié)構(gòu)的學(xué)生選擇合適的實(shí)驗(yàn)?zāi)K,以及在組織和實(shí)施實(shí)驗(yàn)教學(xué)方面采取的措施;第三,提出若干值得思考的問題。
2 課程知識(shí)點(diǎn)分析
在進(jìn)行實(shí)驗(yàn)教學(xué)時(shí),應(yīng)針對(duì)不同的教學(xué)目標(biāo)采取不同的實(shí)驗(yàn)?zāi)J?。一般說來,對(duì)于那些以理解掌握成熟的模型、協(xié)議、算法等為主要目標(biāo)的知識(shí)點(diǎn),如Cache一致性協(xié)議,往往以驗(yàn)證性實(shí)驗(yàn)為主;而對(duì)于那些以熟練使用某種方法解決實(shí)際問題為主要目標(biāo)的知識(shí)點(diǎn),如Cache的結(jié)構(gòu)和優(yōu)化方法,往往以設(shè)計(jì)性實(shí)驗(yàn)為主。
下面以我們正在使用的教材[2]為主,結(jié)合國內(nèi)外其它有影響力的教