計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文
計(jì)算機(jī)組成原理與系統(tǒng)結(jié)構(gòu) 是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)一門重要的專業(yè)基礎(chǔ)課,是一門技術(shù)性、工程性和實(shí)踐性很強(qiáng)的課程。下面是學(xué)習(xí)啦小編為大家整理的計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文,供大家參考。
計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文篇一
基于VRML的計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)
計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文摘要
摘要:由于時(shí)間和空間的限制,傳統(tǒng)實(shí)驗(yàn)往往不能滿足全部學(xué)生的需求,為此,設(shè)計(jì)出了一套基于VRML技術(shù)的計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)系統(tǒng),學(xué)生只要通過(guò)網(wǎng)絡(luò)就可以隨時(shí)隨地做實(shí)驗(yàn),有效彌補(bǔ)了傳統(tǒng)實(shí)驗(yàn)的不足。
計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文內(nèi)容
關(guān)鍵詞:VRML技術(shù); 虛擬實(shí)驗(yàn);計(jì)算機(jī)組成原理
中圖分類號(hào):TP301 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)06-1220-03
The Design of Virtual Experiment System of Computer Organization and Architecture Based on VRML
HU Li-fang1, HU Zi-kai2
(1.Jiaozuo Teachers College of Computer and Information Engineering College, Jiaozuo 454000,China; 2 Puyang City Zi Elementary, Puyang 457000,China)
Abstract: Due to the limitation of time and space, the traditional experiment can’t meet all the needs of the students, therefore, designed a set of virtual experiment system of computer organization and architecture based on VRML technology, students can do the experiment anywhere, effectively overcomes the shortcoming of the traditional experiment.
Key words: VRML technology; virtual experiment; computer organization and architecture experiments
在高職院校中,實(shí)驗(yàn)教學(xué)占有非常重要的地位,是提高學(xué)生創(chuàng)新素質(zhì)、動(dòng)手能力的一個(gè)重要手段。目前,由于各種原因,許多學(xué)校的實(shí)驗(yàn)設(shè)備和手段還不能完全滿足要求。與此同時(shí),近年來(lái)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)及虛擬現(xiàn)實(shí)技術(shù)的迅速發(fā)展,為虛擬實(shí)驗(yàn)系統(tǒng)的構(gòu)建提供了有效的支撐。
《計(jì)算機(jī)組成原理》是計(jì)算機(jī)專業(yè)重要的基礎(chǔ)課程之一,做實(shí)驗(yàn)又是該課程的一個(gè)重要部分,學(xué)生通過(guò)實(shí)驗(yàn)可以深入了解計(jì)算機(jī)是如何進(jìn)行算術(shù)計(jì)算、怎樣存儲(chǔ)信息并且能更好的掌握計(jì)算機(jī)的硬件組成[1]。目前,國(guó)內(nèi)部分院校已開(kāi)發(fā)出了計(jì)算機(jī)組成原理課程的網(wǎng)絡(luò)課程,但這些網(wǎng)絡(luò)課程大多數(shù)為靜態(tài)的網(wǎng)頁(yè)展示或動(dòng)畫演示,并未開(kāi)發(fā)出具有3D虛擬場(chǎng)景,交互性較好的計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)系統(tǒng)[2]。因此,具有三維交互性的計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)就顯得非常重要。
1 虛擬實(shí)驗(yàn)系統(tǒng)的分析與設(shè)計(jì)
VRML(Virtual Reality Modeling Language,虛擬現(xiàn)實(shí)建模語(yǔ)言)是一種三維場(chǎng)景描述性語(yǔ)言,利用它能在網(wǎng)頁(yè)上創(chuàng)建具有導(dǎo)航及超鏈接功能的三維虛擬空間。VRML的工作原理可以簡(jiǎn)單描述成:文本描述、遠(yuǎn)程傳輸及本地計(jì)算生成。VRML并不是使用三維坐標(biāo)點(diǎn)描述物體的,而是使用了一種類似于HTML的標(biāo)記文本語(yǔ)言來(lái)描述三維場(chǎng)景,因此使用它編寫的文件所占的空間非常小,對(duì)網(wǎng)絡(luò)帶寬的要求不高[3]。利用VRML技術(shù)構(gòu)建虛擬實(shí)驗(yàn)系統(tǒng),能為學(xué)生提供一個(gè)逼真的實(shí)驗(yàn)環(huán)境,具有超強(qiáng)的現(xiàn)實(shí)感,可充分激發(fā)學(xué)生的學(xué)習(xí)興趣。
該系統(tǒng)主要模擬仿真清華大學(xué)科教儀器廠生產(chǎn)的TEC—4計(jì)算機(jī)組成原理實(shí)驗(yàn)儀。使用VRML技術(shù)構(gòu)建三維虛擬實(shí)驗(yàn)環(huán)境,并通過(guò)ASP技術(shù)及B/S(Browser/Server 瀏覽器/服務(wù)器)三層結(jié)構(gòu)的設(shè)置,構(gòu)建網(wǎng)頁(yè)結(jié)構(gòu),發(fā)布到網(wǎng)絡(luò)上供學(xué)生使用。系統(tǒng)體系結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)體系結(jié)構(gòu)
2 虛擬實(shí)驗(yàn)系統(tǒng)的實(shí)現(xiàn)
2.1實(shí)驗(yàn)環(huán)境的構(gòu)建
實(shí)驗(yàn)環(huán)境的構(gòu)建主要包括兩個(gè)方面:
1)靜態(tài)環(huán)境:主要指實(shí)驗(yàn)室場(chǎng)景的構(gòu)建。首先使用Vrmlpad建模工具對(duì)一些簡(jiǎn)單的形體(如實(shí)驗(yàn)臺(tái)、地板、墻壁等)進(jìn)行建模,再利用專業(yè)三維建模軟件3DSMax對(duì)導(dǎo)線、芯片、面包板等一些結(jié)構(gòu)復(fù)雜的實(shí)驗(yàn)器材進(jìn)行建模。由于3DSMax對(duì)物體描述的精度比較高,因此使用它建造的一些形體轉(zhuǎn)到Vrmlpad后生成的文件中會(huì)存在大量多余代碼,所以必須進(jìn)行優(yōu)化處理[4]。建模過(guò)程如圖2所示:
圖2 建模過(guò)程
2)動(dòng)態(tài)環(huán)境:主要是指器材的功能顯示。即模仿真實(shí)實(shí)驗(yàn)的操作效果,例如用鼠標(biāo)單擊開(kāi)關(guān)按鈕后產(chǎn)生的按下和彈起的動(dòng)態(tài)過(guò)程、點(diǎn)擊導(dǎo)線之后出現(xiàn)的自動(dòng)連線效果等。
2.2 交互控制的設(shè)計(jì)
該部分的設(shè)計(jì)是實(shí)現(xiàn)系統(tǒng)功能的關(guān)鍵。本虛擬實(shí)驗(yàn)系統(tǒng)不僅根據(jù)實(shí)驗(yàn)要求提供了面包板、連線等實(shí)驗(yàn)器材,并且還提供了一個(gè)操作標(biāo)記,指導(dǎo)實(shí)驗(yàn)者完成操作。學(xué)生通過(guò)鼠標(biāo)將指令直接傳送給虛擬空間,空間接到用戶請(qǐng)求,將消息傳遞給相應(yīng)的腳本程序,腳本程序經(jīng)過(guò)一系列的計(jì)算,然后以相應(yīng)的虛擬現(xiàn)實(shí)效果反饋給學(xué)生。
該部分功能的實(shí)現(xiàn)主要依靠各種接觸傳感器節(jié)點(diǎn)(TouchSensor)、VRMLScript編寫的腳本程序以及ROUTE語(yǔ)句[3]。首先在系統(tǒng)中定義一系列的TouchSensor分布在每個(gè)需要進(jìn)行交互操作的虛擬物體上,當(dāng)實(shí)驗(yàn)進(jìn)行到一定步驟時(shí),將下步的傳感器激活,同時(shí)把其他步驟上需要的傳感器全置為無(wú)效,這樣即可實(shí)現(xiàn)讓實(shí)驗(yàn)者根據(jù)實(shí)驗(yàn)內(nèi)容的要求按步進(jìn)行操作。在這個(gè)過(guò)程中,使用設(shè)置好的Script(腳本)節(jié)點(diǎn)來(lái)控制這些觸發(fā)事件的實(shí)現(xiàn),這些腳本可以將用戶的操作進(jìn)行轉(zhuǎn)化,控制相應(yīng)的對(duì)象,進(jìn)而實(shí)現(xiàn)虛擬交互功能。交互式虛擬實(shí)驗(yàn)事件驅(qū)動(dòng)體系的流程圖如圖3所示[5] 圖3 事件交互體系流程
下面以實(shí)現(xiàn)連線為例:
實(shí)驗(yàn)者按照實(shí)驗(yàn)要求,點(diǎn)擊相應(yīng)的面包板上的插座,這時(shí)系統(tǒng)將會(huì)出現(xiàn)自動(dòng)連線。為了模擬這個(gè)過(guò)程,建模時(shí)事先使用Extrusion節(jié)點(diǎn)在相應(yīng)位置建成實(shí)驗(yàn)所需的全部連線,但是開(kāi)始時(shí)用Switch節(jié)點(diǎn)將它們隱藏起來(lái)。隨著實(shí)驗(yàn)過(guò)程的進(jìn)展,當(dāng)學(xué)生用鼠標(biāo)單擊指定位置時(shí),在腳本程序的控制下,相應(yīng)位置就會(huì)顯示連線。圖4為連線完成后的效果:
圖4 連線完成效果圖
以下是實(shí)現(xiàn)該功能的部分程序代碼:
1)初始建模時(shí)隱藏導(dǎo)線的設(shè)置(以第一根導(dǎo)線為例)
DEF line_M2_VCC1_switch Switch {
#定義了插座M2和VCC1之間的連線
whichChoice -1 #表示初始時(shí)處于隱藏狀態(tài)
choice [
DEF line_M2_VCC1 Transform {
children[
Transform {
…… #省略了導(dǎo)線線身和插頭的定義
2) 控制導(dǎo)線顯示的腳本程序
DEF change_line0 Script {
eventIn SFBool input
eventOut SFInt32 output
url "javascript:
function input (value,time)
{
if (value==1)
output=0;
}"}
……
3) 路由表設(shè)置如下
ROUTE touch_vcc1.isActive TO change_line0.input
ROUTE change_line0.output TO line_M2_VCC1_switch.set_whichChoice
上述代碼表示當(dāng)插座VCC1上的觸發(fā)器被激活時(shí),將發(fā)送一個(gè)消息給控制導(dǎo)線顯示腳本,腳本接到消息并經(jīng)過(guò)處理后,再發(fā)送命令給Switch節(jié)點(diǎn),這樣就可以達(dá)到顯示導(dǎo)線的目的了。
3 實(shí)驗(yàn)系統(tǒng)網(wǎng)上發(fā)布
結(jié)合其它網(wǎng)絡(luò)技術(shù),對(duì)構(gòu)建完成的三維虛擬實(shí)驗(yàn)室場(chǎng)景進(jìn)行整合[6],如圖5所示。之后把該虛擬實(shí)驗(yàn)系統(tǒng)傳送到Web服務(wù)器上,學(xué)生只需要登錄就可以隨時(shí)隨地進(jìn)行遠(yuǎn)程實(shí)驗(yàn)。
圖5 實(shí)驗(yàn)場(chǎng)景
4 結(jié)束語(yǔ)
該實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)突破了傳統(tǒng)實(shí)驗(yàn)方式的時(shí)空限制,使實(shí)驗(yàn)教學(xué)在時(shí)間和空間上得到有效的延伸。虛擬實(shí)驗(yàn)作為傳統(tǒng)實(shí)驗(yàn)的一個(gè)有益的補(bǔ)充,既能節(jié)約大量的實(shí)驗(yàn)設(shè)備經(jīng)費(fèi),也有助于提高實(shí)驗(yàn)教學(xué)的效果。
計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文文獻(xiàn)
[1] 王愛(ài)英.計(jì)算機(jī)組成與結(jié)構(gòu)[M].3版.北京:清華大學(xué)出版社,2000.
[2] 黃幕雄.高校教學(xué)型虛擬實(shí)驗(yàn)室建設(shè)的現(xiàn)狀與建議[J].電化教育研究,2005(09):77-80.
[3] 胡小強(qiáng).虛擬現(xiàn)實(shí)技術(shù)[M].北京:北京郵電大學(xué)出版社,2005:192-288.
[4] 張?jiān)圃?虛擬現(xiàn)實(shí)技術(shù)中3DS MAX建模的應(yīng)用[J].電腦知識(shí)與技術(shù),2006:189-190.
[5] 李斯萌,楊雪.虛擬實(shí)驗(yàn)系統(tǒng)的自適應(yīng)調(diào)節(jié)機(jī)制研究[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2012,30(4):403-408.
[6] 宋淑彩,周麗莉,趙巍.基于網(wǎng)絡(luò)的計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)的設(shè)計(jì)與開(kāi)發(fā)[J].微計(jì)算機(jī)信息,2006,22(5-3):286-288.
計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文篇二
用于計(jì)算機(jī)組成與結(jié)構(gòu)課程教學(xué)的模擬器
計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文摘要
摘要:介紹基于開(kāi)源軟件包MML的計(jì)算機(jī)模擬器ARCH。ARCH實(shí)現(xiàn)了硬件結(jié)構(gòu)的邏輯門級(jí)映射,易修改和動(dòng)態(tài)運(yùn)行,并具有豐富的尋址方式和指令類型,克服了軟件實(shí)驗(yàn)平臺(tái)抽象粒度過(guò)大和硬件實(shí)驗(yàn)平臺(tái)交互性不強(qiáng)的問(wèn)題。
計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文內(nèi)容
關(guān)鍵詞:模擬器;計(jì)算機(jī)組成與結(jié)構(gòu);MML;ARCH
計(jì)算機(jī)組成與結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)本科生的核心專業(yè)基礎(chǔ)課程之一。它與匯編語(yǔ)言、微機(jī)原理、接口技術(shù)等課程一起構(gòu)成了硬件系列課程。通過(guò)本課程的學(xué)習(xí),學(xué)生可以掌握計(jì)算機(jī)系統(tǒng)各個(gè)組成部分的工作原理、組成方法和相互關(guān)系,了解計(jì)算機(jī)指令系統(tǒng)和中央處理器的組織、數(shù)據(jù)傳遞路徑和指令控制流程、存儲(chǔ)管理、微程序設(shè)計(jì)、中斷系統(tǒng)和輸入/輸出系統(tǒng).等,具有計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)的初步概念。
“實(shí)踐出真知”這句話告訴我們:最理想的學(xué)習(xí)方式是把所學(xué)習(xí)的理論知識(shí)付諸實(shí)踐。在計(jì)算機(jī)組成與結(jié)構(gòu)課程教學(xué)過(guò)程中,如何把學(xué)習(xí)到的理論知識(shí)付諸實(shí)踐,以及如何利用實(shí)踐驗(yàn)證和深化所學(xué)到的理論知識(shí),這兩個(gè)轉(zhuǎn)化過(guò)程是學(xué)生學(xué)習(xí)的關(guān)鍵。針對(duì)這個(gè)問(wèn)題,許多高校已經(jīng)開(kāi)始研發(fā)各種基于軟件和硬件的計(jì)算機(jī)組成與結(jié)構(gòu)課程實(shí)驗(yàn)平臺(tái)來(lái)輔助課程教學(xué)。這些實(shí)驗(yàn)平臺(tái)可分為兩組:基于集成電路的硬件平臺(tái)和基于軟件的模擬平臺(tái)。
基于集成電路的硬件平臺(tái)具有完整的硬件結(jié)構(gòu)映射的優(yōu)點(diǎn),但是存在操作復(fù)雜、電路容易故障、動(dòng)態(tài)演示困難等缺點(diǎn),并且由于采用功能較為復(fù)雜的集成電路,硬件結(jié)構(gòu)的映射無(wú)法達(dá)到寄存器級(jí)別。而基于軟件的模擬平臺(tái)可以是完全基于編程語(yǔ)言(如C語(yǔ)言或其他高級(jí)語(yǔ)言)開(kāi)發(fā)模擬軟件,具有靈活、容易修改、動(dòng)態(tài)演示方便等優(yōu)點(diǎn),但是由于軟件實(shí)現(xiàn)是基于算法級(jí)別的,偏重于工作原理,很難把程序代碼和具體的硬件結(jié)構(gòu)細(xì)節(jié)對(duì)應(yīng)起來(lái)。此外,已有的基于軟件的模擬平臺(tái),在尋址方式和指令集方面覆蓋面不廣,不支持中斷和堆棧的操作,這也是一大缺陷。
下面筆者將介紹基于開(kāi)源軟件包Multimedia Logic(MML)所開(kāi)發(fā)的用于計(jì)算機(jī)組成與結(jié)構(gòu)課程教學(xué)的計(jì)算機(jī)模擬器ARCH。ARCH具有軟件的易動(dòng)態(tài)運(yùn)行、易修改、易二次開(kāi)發(fā)的優(yōu)點(diǎn),同時(shí)又實(shí)現(xiàn)了硬件結(jié)構(gòu)的邏輯門級(jí)映射,還具有豐富的尋址方式和指令類型,對(duì)中斷和堆棧的操作提供了基本支持,從而彌補(bǔ)了已有相關(guān)計(jì)算機(jī)教學(xué)模擬器的不足之處。
1 研究背景
2001年,Yehezkel,Yurcik,Pearson和Armstrong研發(fā)了3種計(jì)算機(jī)結(jié)構(gòu)模擬平臺(tái):EasyCPU,Little Man Compmer和RTLSim。其中EasyCPU是一個(gè)基于英特爾X86微處理器的入門級(jí)微型計(jì)算機(jī)的模擬器。它只是一個(gè)軟件程序,模擬Intel X86系列微處理器的主要尋址模式和指令集合。Little Man Computer和RTLSim是對(duì)EasyCPU的進(jìn)一步改進(jìn)和完善。
2006年,Arias和Garcia研發(fā)了計(jì)算機(jī)結(jié)構(gòu)模擬平臺(tái)SimpleCPU。SimpleCPU是一個(gè)16位的模擬CPU。它采用了3種尋址模式:快速模式、寄存器模式、間接尋址。它除了包含8個(gè)通用寄存器外,還有程序計(jì)數(shù)器(PC)、狀態(tài)寄存器(SR)、ALU的時(shí)間輸入寄存器(TMPI)、ALU時(shí)間輸出寄存器(TMPO)、存儲(chǔ)器數(shù)據(jù)寄存器(MDR)、內(nèi)存地址寄存器(MAR)和指令寄存器(IR)。
2007年,Stanley等基于MML軟件包完成了計(jì)算機(jī)結(jié)構(gòu)模擬平臺(tái):16位的Made。Marie具有13條指令,并使用直接和間接尋址模式,每個(gè)存儲(chǔ)單元是16位長(zhǎng),指令字長(zhǎng)和存儲(chǔ)字長(zhǎng)相等。機(jī)器指令由兩個(gè)字段組成:2位操作碼和12位的地址。Made有7個(gè)寄存器。它們是累加器(AC)、內(nèi)存地址寄存器(MAR)、存儲(chǔ)器緩沖寄存器(MBR)、程序計(jì)數(shù)器(PC)、指令寄存器(IR)、輸入寄存器(InREG)和輸出寄存器(OutREG),具有16位復(fù)用數(shù)據(jù)總線。
除了Marie之外,Stanley等還研發(fā)了兩種不同系統(tǒng)結(jié)構(gòu)的模擬器:哈佛體系結(jié)構(gòu)和馮·諾依曼體系結(jié)構(gòu)。馮·諾依曼體系結(jié)構(gòu)模擬器有4條指令,具有8位的程序計(jì)數(shù)器,8位的指令寄存器,8位的累加器和8位的存儲(chǔ)器。指令中操作碼占用2位,其余的被分配給地址碼,每條指令的執(zhí)行周期包含3個(gè)時(shí)鐘周期。8位哈佛體系結(jié)構(gòu)模擬器有8條指令,每條指令的執(zhí)行周期包含1個(gè)時(shí)鐘周期。
筆者在Stanley和Oztekin的工作基礎(chǔ)上所提出的計(jì)算機(jī)模擬器ARCH的所有單元是基于MML包進(jìn)行邏輯門級(jí)設(shè)計(jì),并有38個(gè)指令。這些指令是當(dāng)今的商業(yè)微處理器的核心指令。它有6種不同的尋址模式,同時(shí)支持中斷和堆棧操作。此外,因?yàn)樗乃袉卧窃谶壿嬮T級(jí)設(shè)計(jì)的,所以,學(xué)生可以很容易檢查在模擬器中的所有單元的內(nèi)部結(jié)構(gòu)。表1所示是各種計(jì)算機(jī)模擬器的基本屬性。
2 ARCH結(jié)構(gòu)和指令
2.1 總體結(jié)構(gòu)
ARCH是用于本科生計(jì)算機(jī)組成與結(jié)構(gòu)課程教學(xué)的模擬器。它有38條指令,包含11條存儲(chǔ)器和累加器操作類指令,6條指令的變址和堆棧操作指令,13條無(wú)條件和有條件轉(zhuǎn)移指令,6條指令的條件碼寄存器操作指令和2條指令輸入/輸出指令。它支持6個(gè)不同的尋址模式,包括立即、直接、間接、變址、相對(duì)、隱含尋址模式。它有11個(gè)寄存器,包括地址寄存器(AR)、程序計(jì)數(shù)器(PC)、暫存器(TR)、變址寄存器(IX)、16位長(zhǎng)的堆棧指針(SP)、指令寄存器(IR)、輸入寄存器(INPR)、輸出寄存器(OUTR)和8位長(zhǎng)的條件碼寄存器(CCR)。ARCH的數(shù)據(jù)路徑寬度為16位,地址寄存器的寬度為16位,所以ARCH有64KB的內(nèi)存區(qū)域。ARCH中有一個(gè)專用的有效地址生成部件。該部件可以根據(jù)尋址模式計(jì)算出一個(gè)有效的地址,而不是采用通用ALU進(jìn)行地址計(jì)算。該有效地址生成部件需要6個(gè)時(shí)鐘周期生成有效地址。MML開(kāi)發(fā)環(huán)境中ARCH核心部件ALU和CU結(jié)構(gòu)如圖1所示。
2.2 指令系統(tǒng) ARCH的指令包含操作碼和地址碼兩部分。操作碼包含兩個(gè)字段:操作類型和尋址模式。在內(nèi)存空間中,隱含尋址模式的指令占用1個(gè)字節(jié),直接、間接和立即尋址模式的指令占用3個(gè)字節(jié),相對(duì)和變址尋址模式的指令占用2個(gè)字節(jié)。所有尋址方式指令的第1個(gè)字節(jié)是操作碼。操作碼的第4、5和6位表示6個(gè)不同尋址模式的其中之一,其余操作碼位表示指令的操作類型。
1)累加器操作指令。
累加器操作共有11種不同指令。采用立即、直接和間接尋址模式的累加器操作指令占用3個(gè)字節(jié),而采用變址尋址模式的累加器操作指令占用2個(gè)字節(jié),此外采用隱含尋址模式的累加器操作指令僅占用1個(gè)字節(jié)。各種累加器操作指令如表2所示。
2)變址指令和堆棧指令。
變址和堆棧指令使用立即、直接、間接、變址和隱含尋址模式。在存儲(chǔ)器中,前3種模式占據(jù)3個(gè)字節(jié),第4種模式占用2個(gè)字節(jié),第5種模式占用1個(gè)字節(jié)。各種變址指令和堆棧指令如表3所示。
3)有條件或無(wú)條件轉(zhuǎn)移指令。
有條件和無(wú)條件轉(zhuǎn)移指令可以改變程序流程。只不過(guò)一些是有條件轉(zhuǎn)移,其他的則是無(wú)條件轉(zhuǎn)移。絕大多數(shù)轉(zhuǎn)移指令使用相對(duì)尋址模式,只有返回主程序指令使用隱含尋址模式。各種有條件或無(wú)條件轉(zhuǎn)移分支指令如表4所示。
4)帶條件寄存器操作指令。
在執(zhí)行轉(zhuǎn)移指令時(shí),帶條件寄存器操作指令有特別重要的作用。它們?nèi)坎捎秒[含尋址模式,并在取指和譯碼階段的最后一個(gè)時(shí)鐘周期執(zhí)行。表5所示是各種帶條件寄存器操作指令。
5)輸入/輸出指令。
為了與外設(shè)(如鍵盤)進(jìn)行數(shù)據(jù)傳送,ARCH使用8位的鍵盤作為輸入單元,使用可用的8位LED顯示單元作為輸出單元。數(shù)據(jù)從鍵盤被轉(zhuǎn)移到輸入寄存器(INPR),并且進(jìn)一步被轉(zhuǎn)移到LED顯示單元,存儲(chǔ)于輸出寄存器(OUTR)。ARCH支持有兩種輸入/輸出指令:IN和OUT。IN指令是將從鍵盤輸入的數(shù)據(jù)傳送到INR中存儲(chǔ)起來(lái),OUT指令是將數(shù)據(jù)從OUTR傳送到LED顯示單元。
ARCH模擬器支持查詢輸入/輸出方式,這時(shí)輸入標(biāo)志(FGI)和輸出標(biāo)志(FGO)必須在輸入/輸出的操作過(guò)程中不斷地檢查。如果其中的一個(gè)控制標(biāo)志是邏輯1,那么計(jì)算機(jī)開(kāi)始傳輸數(shù)據(jù)。然而,由于計(jì)算機(jī)和外圍設(shè)備之間的數(shù)據(jù)傳輸率是非常低的,所以這種數(shù)據(jù)傳送方法不是很有效。
另一種方式是采用下述中斷方式。當(dāng)輸入/輸出單元已經(jīng)準(zhǔn)備好了,利用中斷方式通知ARCH。ARCH立即離開(kāi)主程序執(zhí)行,并啟動(dòng)必要的輸入/輸出操作傳送數(shù)據(jù)。當(dāng)ARCH完成輸入/輸出操作后將返回主程序。
6)中斷。
ARCH模擬器的工作周期包含中斷周期和指令周期兩種。觸發(fā)器C用于區(qū)分中斷周期和指令周期。如果觸發(fā)器C是邏輯1,那么模擬器是在中斷周期,否則,是在指令周期。在指令周期中,通過(guò)控制機(jī)制來(lái)檢查中斷標(biāo)志。如果實(shí)驗(yàn)人員不希望模擬器進(jìn)入中斷周期,則可以清除觸發(fā)器C。
ARCH模擬器中設(shè)置了兩個(gè)指令可以將條件碼寄存器的中斷標(biāo)志設(shè)置為邏輯1或0。STI指令在中斷標(biāo)志設(shè)置為邏輯1,而CLI指令清除中斷標(biāo)志。
ARCH模擬器在進(jìn)人中斷周期之前,能保存一些寄存器的內(nèi)容。這些寄存器的內(nèi)容被保存在堆棧區(qū)域,這些堆棧區(qū)域是從E000h開(kāi)始的4KB的內(nèi)存。保存寄存器到堆棧區(qū)的操作按以下順序進(jìn)行:程序計(jì)數(shù)器、變址寄存器、累加器、條件碼寄存器。
3 ARCH的應(yīng)用
下面以計(jì)算f(x)=x2+x+1為例說(shuō)明基于ARCH的實(shí)驗(yàn)操作過(guò)程。首先,約定x的值被存儲(chǔ)在ARCH的64KB存儲(chǔ)器的數(shù)據(jù)段中,并且最后運(yùn)算結(jié)果f(x)的結(jié)果也存儲(chǔ)到數(shù)據(jù)段中數(shù)據(jù)段是從地址為A000h開(kāi)始的占用4KB的內(nèi)存空間。
該計(jì)算過(guò)程對(duì)應(yīng)的匯編代碼如下:
0100h:LDA#1234h\累加器裝載十六進(jìn)制1234H。
0103h:STA[00h]\累加器內(nèi)容轉(zhuǎn)存到數(shù)據(jù)段。
0105h:LDA[00h]\數(shù)據(jù)從數(shù)據(jù)段提取。
0107h:MUL[00h]\在累加器中的數(shù)據(jù)乘以數(shù)據(jù)段的數(shù)據(jù),并存儲(chǔ)到累加器。
0109h:ADD[00h]\在累加器中的數(shù)據(jù)加上數(shù)據(jù)段中的數(shù)據(jù),并存儲(chǔ)到累加器。
010Bh:INC\累加器中的值遞增并存儲(chǔ)到累加器。
010Ch:STA[00h]\累加器的值被存儲(chǔ)到數(shù)據(jù)段。
010Eh:HLT\程序停止。
上述匯編代碼可以手動(dòng)或者通過(guò)匯編程序自動(dòng)轉(zhuǎn)換成為二進(jìn)制代碼,并存儲(chǔ)于文件中。
在MML開(kāi)發(fā)環(huán)境中運(yùn)行ARCH,此時(shí)二進(jìn)制代碼文件中的代碼和數(shù)據(jù)被自動(dòng)載入存儲(chǔ)器中并執(zhí)行。我們可以通過(guò)ARCH包含的LED查看相應(yīng)的執(zhí)行結(jié)果。
4 結(jié)語(yǔ)
在計(jì)算機(jī)組成與結(jié)構(gòu)課程教學(xué)過(guò)程中,為了把學(xué)習(xí)到的理論知識(shí)付諸實(shí)踐,利用實(shí)踐驗(yàn)證和深化所學(xué)到的理論知識(shí),許多高校已經(jīng)開(kāi)始研發(fā)各種教學(xué)用的計(jì)算機(jī)模擬平臺(tái)。針對(duì)基于軟件實(shí)驗(yàn)平臺(tái)的抽象粒度過(guò)大和基于硬件實(shí)驗(yàn)平臺(tái)交互性不強(qiáng)的問(wèn)題,筆者提出了基于開(kāi)源軟件包MML計(jì)算機(jī)模擬器ARCH。ARCH不僅具有軟件的易動(dòng)態(tài)運(yùn)行、易修改、易二次開(kāi)發(fā)的優(yōu)點(diǎn),同時(shí)還實(shí)現(xiàn)了硬件結(jié)構(gòu)的邏輯門級(jí)映射,并具有豐富的尋址方式和指令類型,對(duì)中斷和堆棧的操作提供了基本支持,從而彌補(bǔ)了已有相關(guān)教學(xué)模擬器的不足之處。
有關(guān)計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文推薦:
計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)設(shè)計(jì)論文相關(guān)文章:
1.計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文
2.關(guān)于計(jì)算機(jī)工程畢業(yè)設(shè)計(jì)論文
3.計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
5.淺談基于Web技術(shù)的計(jì)算機(jī)輔助系統(tǒng)設(shè)計(jì)與應(yīng)用研究