賴曉晨,遲宗正,侯剛
(大連理工大學(xué)軟件學(xué)院,大連116600)
《計(jì)算機(jī)組織與結(jié)構(gòu)》課程虛擬仿真實(shí)驗(yàn)設(shè)計(jì)
賴曉晨,遲宗正,侯剛
(大連理工大學(xué)軟件學(xué)院,大連116600)
《計(jì)算機(jī)組織與結(jié)構(gòu)》是典型的硬件課程,課程實(shí)驗(yàn)受到人員、經(jīng)費(fèi)、場(chǎng)地、設(shè)備等多方面限制。提出一套基于C語(yǔ)言的課程虛擬仿真實(shí)驗(yàn)方案,可在PC上完成運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出系統(tǒng)等部件的工作原理仿真,擺脫實(shí)際硬件設(shè)備的束縛,學(xué)生需要完成部件設(shè)計(jì)的每一個(gè)環(huán)節(jié),取得較好的教學(xué)效果。
《計(jì)算機(jī)組織與結(jié)構(gòu)》是計(jì)算機(jī)及電子相關(guān)專業(yè)的一門(mén)主干核心課程,主要講述計(jì)算機(jī)各部件的工作原理與相互關(guān)系[1]。本課程是典型的硬件課程,內(nèi)容較為抽象,相比程序設(shè)計(jì)類課程來(lái)說(shuō),學(xué)生的動(dòng)手機(jī)會(huì)較少[2-3]。傳統(tǒng)上本課程主要采用購(gòu)置硬件設(shè)備來(lái)開(kāi)展實(shí)驗(yàn),學(xué)生通過(guò)在設(shè)備上實(shí)際操作來(lái)理解課程原理,但是這種方式有較多局限性。從學(xué)校角度來(lái)說(shuō),必須準(zhǔn)備相應(yīng)的設(shè)備購(gòu)置、維護(hù)與升級(jí)的人員和經(jīng)費(fèi),為實(shí)驗(yàn)安排固定的場(chǎng)所,以及合理排課;從學(xué)生角度來(lái)說(shuō),必須在統(tǒng)一的時(shí)間到實(shí)驗(yàn)室開(kāi)展實(shí)驗(yàn),方式不夠靈活,同時(shí)僅僅按照步驟完成既定操作,對(duì)課程原理的理解不夠深入。
本文基于多年教學(xué)實(shí)踐,開(kāi)發(fā)了一套仿真實(shí)驗(yàn)方案,采用C語(yǔ)言來(lái)模擬實(shí)現(xiàn)計(jì)算機(jī)內(nèi)部各個(gè)部件的工作機(jī)制,具有內(nèi)容深入、操作靈活、成本低、方便學(xué)生學(xué)習(xí)等特點(diǎn)[4]。仿真實(shí)驗(yàn)要求學(xué)生從零開(kāi)始編程,直至完全重現(xiàn)某個(gè)硬件部件的完整工作流程,在驗(yàn)證課程知識(shí)的同時(shí),使學(xué)生緊密接觸部件工作的每一個(gè)環(huán)節(jié),變實(shí)驗(yàn)驗(yàn)證為實(shí)驗(yàn)設(shè)計(jì),從而對(duì)工作原理有更深入的認(rèn)識(shí)。
現(xiàn)代計(jì)算機(jī)系統(tǒng)主要包括運(yùn)算器、控制器、存儲(chǔ)器、輸入系統(tǒng)和輸出系統(tǒng)五大部分[5],針對(duì)其中最重要的知識(shí)點(diǎn),設(shè)計(jì)了8套仿真實(shí)驗(yàn),要求學(xué)生在理解部件工作原理的情況下,通過(guò)C語(yǔ)言編程模擬硬件的工作過(guò)程,在給定輸入的情況下得到與硬件實(shí)際工作完全一致的輸出結(jié)果。8套實(shí)驗(yàn)方案說(shuō)明如下:
(1)Cache映射:實(shí)現(xiàn)直接相聯(lián)、全相聯(lián)、組相聯(lián)三種映射下的Cache映射方式,用戶對(duì)三種映射方式可自由選擇,給定內(nèi)存塊號(hào)后,自動(dòng)計(jì)算出對(duì)應(yīng)映射方式下的Cache塊號(hào)。
(2)循環(huán)冗余校驗(yàn)碼:實(shí)現(xiàn)如何通過(guò)生成多項(xiàng)式將原始信息編碼為CRC碼,并針對(duì)接收到的CRC編碼,判斷是否有出錯(cuò)位。
(3)中斷流程:實(shí)現(xiàn)中斷處理的五個(gè)階段的詳細(xì)流程,包括中斷請(qǐng)求,中斷判優(yōu),中斷響應(yīng),中斷服務(wù),中斷返回。
(4)原碼一位乘:實(shí)現(xiàn)原碼一位乘法的計(jì)算過(guò)程,給定被乘數(shù)和乘數(shù),能夠通過(guò)移位運(yùn)算和加法運(yùn)算得到乘積。
(5)浮點(diǎn)數(shù)加法:實(shí)現(xiàn)浮點(diǎn)數(shù)加法的五個(gè)步驟,包括對(duì)階、尾數(shù)相加減、規(guī)格化、舍入和判斷是否溢出,以及對(duì)上溢和下溢的處理,給定兩個(gè)浮點(diǎn)數(shù),可以計(jì)算并輸出二者之和。
(6)數(shù)據(jù)尋址方式:實(shí)現(xiàn)了9種數(shù)據(jù)尋址方式,包括立即尋址、直接尋址、隱含尋址、間接尋址、寄存器尋址、寄存器間接尋址、基址尋址、變址尋址和堆棧尋址,給定尋址方式、形式地址、相關(guān)寄存器的值,可以計(jì)算得到有效地址。
(7)流水線時(shí)空?qǐng)D:實(shí)現(xiàn)不同流水線級(jí)數(shù)和不同指令數(shù)條件下的非流水線時(shí)空?qǐng)D以及標(biāo)準(zhǔn)流水線時(shí)空?qǐng)D的繪制,演示流水線加速指令執(zhí)行的原理。
(8)中斷屏蔽:實(shí)現(xiàn)舊屏蔽字和新屏蔽字下CPU對(duì)多個(gè)任務(wù)的執(zhí)行軌跡選擇。
下面以中斷屏蔽實(shí)驗(yàn)為例,介紹仿真案例的設(shè)計(jì)方法及實(shí)現(xiàn)效果。
現(xiàn)代計(jì)算機(jī)系統(tǒng)中,中斷優(yōu)先級(jí)一般是由硬件排隊(duì)器決定,當(dāng)有多個(gè)中斷源同時(shí)請(qǐng)求中斷服務(wù)時(shí),中斷響應(yīng)次序是固定的,為了能靈活地改變實(shí)際中斷處理次序,可通過(guò)設(shè)置中斷屏蔽寄存器來(lái)決定某中斷請(qǐng)求能否進(jìn)入排隊(duì)器,從而改變中斷實(shí)際處理次序[6]。中斷屏蔽字即是用來(lái)描述中斷屏蔽狀態(tài)的一組二進(jìn)制信息。但是,中斷屏蔽字不能改變CPU的響應(yīng)優(yōu)先級(jí),只能改變處理優(yōu)先級(jí),即只能改變CPU實(shí)際對(duì)各中斷源請(qǐng)求的優(yōu)先處理次序。
假設(shè)計(jì)算機(jī)系統(tǒng)支持4個(gè)中斷源,中斷響應(yīng)優(yōu)先級(jí)按 A、B、C、D 降序排列,處理優(yōu)先級(jí)按 A、D、C、B 降序排列。該實(shí)驗(yàn)根據(jù)中斷屏蔽的原理,首先展示在原屏蔽字下的CPU的執(zhí)行軌跡,之后根據(jù)用戶自定義的中斷屏蔽字來(lái)展示CPU執(zhí)行軌跡,工作流程如圖1所示。
圖1 中斷屏蔽實(shí)驗(yàn)流程
實(shí)驗(yàn)程序運(yùn)行時(shí),在展示原屏蔽字下的CPU執(zhí)行軌跡后,用戶分別輸入4個(gè)中斷源的新屏蔽字。新屏蔽字以二進(jìn)制方式輸入,最多為4位,最少可以只輸入1位,如果輸入不足4位,會(huì)默認(rèn)高位為0。如果用戶輸入了相同的屏蔽字,默認(rèn)先輸入的優(yōu)先級(jí)大于后輸入的優(yōu)先級(jí)。接下來(lái),程序會(huì)計(jì)算新屏蔽字下4個(gè)中斷源的優(yōu)先級(jí)大小,并據(jù)此輸出相應(yīng)的CPU執(zhí)行軌跡,實(shí)驗(yàn)效果如圖2所示。
圖2 CPU執(zhí)行軌跡效果圖
該實(shí)驗(yàn)可根據(jù)用戶輸入的新屏蔽字輸出CPU執(zhí)行軌跡坐標(biāo)圖,為了適應(yīng)用戶的閱讀習(xí)慣,采用第四象限坐標(biāo)表示,軌跡顯示清晰明了。
計(jì)算機(jī)組織與結(jié)構(gòu)仿真實(shí)驗(yàn)方案已在本單位投入實(shí)際使用,目前已經(jīng)實(shí)施3個(gè)學(xué)期,參與學(xué)生合計(jì)6個(gè)授課班級(jí)約800余人,排除個(gè)別不可避免的抄襲情況之外,基本所有學(xué)生都能順利完成實(shí)驗(yàn)。學(xué)生普遍反映編程工作量較大,但是為了程序執(zhí)行正確,必須對(duì)硬件工作原理完全掌握,因而提高了本課程學(xué)習(xí)的認(rèn)真程度,同時(shí)進(jìn)一步鍛煉了自己的編程能力,取得了較大收獲。
本文基于C語(yǔ)言,設(shè)計(jì)了一套適應(yīng)計(jì)算機(jī)組織與結(jié)構(gòu)課程教學(xué)要求的仿真實(shí)驗(yàn)方案,共計(jì)包括8組實(shí)驗(yàn)。學(xué)生能夠以更加靈活、深入的方式完成實(shí)驗(yàn),促進(jìn)了對(duì)硬件工作原理的理解,在提高教學(xué)質(zhì)量的同時(shí),降低了學(xué)校的運(yùn)營(yíng)成本。下一步工作擬完善實(shí)驗(yàn)界面顯示效果,使之更加美觀。
[1]魯鵬程,易小琳,方娟.在計(jì)算機(jī)組成原理課程中培養(yǎng)學(xué)生動(dòng)手實(shí)踐能力[J].計(jì)算機(jī)教育,2011(12):52-54.
[2]翟海慶,趙開(kāi)新,張正本.計(jì)算機(jī)組成原理課程教學(xué)的現(xiàn)狀與對(duì)策[J].科技信息,2009(9):131-131.
[3]徐昆良.《計(jì)算機(jī)組成原理》課程教學(xué)方法探討[J].中國(guó)科技信息,2009(9):254-254.
[4]王超.基于仿真實(shí)驗(yàn)的計(jì)算機(jī)組成原理考核方式改革研究[J].計(jì)算機(jī)教育,2016(3):146-148.
[5]唐朔飛.計(jì)算機(jī)組成原理[M].第2版.北京:高等教育出版社,2008.
[6]田永紅.利用中斷屏蔽技術(shù)修改中斷優(yōu)先級(jí)[J].企業(yè)技術(shù)開(kāi)發(fā),2011(11):15-16.
Design of Virtual Simulation Experiment of Computer Organization and Structure
LAI Xiao-chen,CHI Zong-zheng,HOU Gang
(School of Software,Dalian University of Technology,Dalian 116600)
Computer Organization and Structure is a typical hardware course,while the experiments are restricted by human resources,budget,funds,experimental site,equipment purchase and maintenance.Based on C programming language,raises a new experiment scheme,which can simulate the principle of units of computer,including calculator,controller,memory,input and output systems.Students need to design each part of component completely in a simulation way,get rid of the shackles of the actual hardware by this scheme,which has achieved good teaching effect to a great extent.
計(jì)算機(jī)組織與結(jié)構(gòu);硬件仿真;實(shí)驗(yàn);C語(yǔ)言
教育部產(chǎn)學(xué)合作協(xié)同育人項(xiàng)目(No.201602007011、No.201602015006、No.201601007002)、大連理工大學(xué)現(xiàn)代遠(yuǎn)程教育教學(xué)改革基金項(xiàng)目(No.ZD201632)
1007-1423(2017)28-0035-03
10.3969/j.issn.1007-1423.2017.28.009
賴曉晨(1977-),男,臺(tái)灣臺(tái)中人,博士,副教授,研究方向?yàn)榍度胧较到y(tǒng)
遲宗正(1984-),男,山東煙臺(tái)人,碩士,工程師,研究方向?yàn)榍度胧较到y(tǒng)
侯剛(1982-),男,遼寧沈陽(yáng)人,碩士,講師,研究方向?yàn)槟P蜋z測(cè)、形式化方法
2017-06-27
2017-09-15
Computer Organization and Structure;Hardware Simulation;Experiment;C Programming Language