計算機組成與系統結構設計論文
計算機組成原理與系統結構 是電腦科學與技術專業一門重要的專業基礎課,是一門技術性、工程性和實踐性很強的課程。下面是小編為大家整理的,供大家參考。
篇一
基於VRML的計算機組成原理虛擬實驗系統設計
摘要
摘要:由於時間和空間的限制,傳統實驗往往不能滿足全部學生的需求,為此,設計出了一套基於VRML技術的計算機組成原理虛擬實驗系統,學生只要通過網路就可以隨時隨地做實驗,有效彌補了傳統實驗的不足。
內容
關鍵詞:VRML技術; 虛擬實驗;計算機組成原理
中圖分類號:TP301 文獻標識碼:A 文章編號:1009-3044201406-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
在高職院校中,實驗教學佔有非常重要的地位,是提高學生創新素質、動手能力的一個重要手段。目前,由於各種原因,許多學校的實驗裝置和手段還不能完全滿足要求。與此同時,近年來計算機網路技術、多媒體技術及虛擬現實技術的迅速發展,為虛擬實驗系統的構建提供了有效的支撐。
《計算機組成原理》是計算機專業重要的基礎課程之一,做實驗又是該課程的一個重要部分,學生通過實驗可以深入瞭解計算機是如何進行算術計算、怎樣儲存資訊並且能更好的掌握計算機的硬體組成[1]。目前,國內部分院校已開發出了計算機組成原理課程的網路課程,但這些網路課程大多數為靜態的網頁展示或動畫演示,並未開發出具有3D虛擬場景,互動性較好的計算機組成原理虛擬實驗系統[2]。因此,具有三維互動性的計算機組成原理虛擬實驗系統的設計就顯得非常重要。
1 虛擬實驗系統的分析與設計
VRMLVirtual Reality Modeling Language,虛擬現實建模語言是一種三維場景描述性語言,利用它能在網頁上建立具有導航及超連結功能的三維虛擬空間。VRML的工作原理可以簡單描述成:文字描述、遠端傳輸及本地計算生成。VRML並不是使用三維座標點描述物體的,而是使用了一種類似於HTML的標記文字語言來描述三維場景,因此使用它編寫的檔案所佔的空間非常小,對網路頻寬的要求不高[3]。利用VRML技術構建虛擬實驗系統,能為學生提供一個逼真的實驗環境,具有超強的現實感,可充分激發學生的學習興趣。
該系統主要模擬模擬清華大學科教儀器廠生產的TEC—4計算機組成原理實驗儀。使用VRML技術構建三維虛擬實驗環境,並通過ASP技術及B/SBrowser/Server 瀏覽器/伺服器三層結構的設定,構建網頁結構,釋出到網路上供學生使用。系統體系結構如圖1所示。
圖1 系統體系結構
2 虛擬實驗系統的實現
2.1實驗環境的構建
實驗環境的構建主要包括兩個方面:
1靜態環境:主要指實驗室場景的構建。首先使用Vrmlpad建模工具對一些簡單的形體如實驗臺、地板、牆壁等進行建模,再利用專業三維建模軟體3DSMax對導線、晶片、麵包板等一些結構複雜的實驗器材進行建模。由於3DSMax對物體描述的精度比較高,因此使用它建造的一些形體轉到Vrmlpad後生成的檔案中會存在大量多餘程式碼,所以必須進行優化處理[4]。建模過程如圖2所示:
圖2 建模過程
2動態環境:主要是指器材的功能顯示。即模模擬實實驗的操作效果,例如用滑鼠單擊開關按鈕後產生的按下和彈起的動態過程、點選導線之後出現的自動連線效果等。
2.2 互動控制的設計
該部分的設計是實現系統功能的關鍵。本虛擬實驗系統不僅根據實驗要求提供了麵包板、連線等實驗器材,並且還提供了一個操作標記,指導實驗者完成操作。學生通過滑鼠將指令直接傳送給虛擬空間,空間接到使用者請求,將訊息傳遞給相應的指令碼程式,指令碼程式經過一系列的計算,然後以相應的虛擬現實效果反饋給學生。
該部分功能的實現主要依靠各種接觸感測器節點TouchSensor、VRMLScript編寫的指令碼程式以及ROUTE語句[3]。首先在系統中定義一系列的TouchSensor分佈在每個需要進行互動操作的虛擬物體上,當實驗進行到一定步驟時,將下步的感測器啟用,同時把其他步驟上需要的感測器全置為無效,這樣即可實現讓實驗者根據實驗內容的要求按步進行操作。在這個過程中,使用設定好的Script指令碼節點來控制這些觸發事件的實現,這些指令碼可以將使用者的操作進行轉化,控制相應的物件,進而實現虛擬互動功能。互動式虛擬實驗事件驅動體系的流程圖如圖3所示[5] 圖3 事件互動體系流程
下面以實現連線為例:
實驗者按照實驗要求,點選相應的麵包板上的插座,這時系統將會出現自動連線。為了模擬這個過程,建模時事先使用Extrusion節點在相應位置建成實驗所需的全部連線,但是開始時用Switch節點將它們隱藏起來。隨著實驗過程的進展,當學生用滑鼠單擊指定位置時,在指令碼程式的控制下,相應位置就會顯示連線。圖4為連線完成後的效果:
圖4 連線完成效果圖
以下是實現該功能的部分程式程式碼:
1初始建模時隱藏導線的設定以第一根導線為例
DEF line_M2_VCC1_switch Switch {
#定義了插座M2和VCC1之間的連線
whichChoice -1 #表示初始時處於隱藏狀態
choice [
DEF line_M2_VCC1 Transform {
children[
Transform {
…… #省略了導線線身和插頭的定義
2 控制導線顯示的指令碼程式
DEF change_line0 Script {
eventIn SFBool input
eventOut SFInt32 output
url "javascript:
function input value,time
{
if value==1
output=0;
}"}
……
3 路由表設定如下
ROUTE touch_vcc1.isActive TO change_line0.input
ROUTE change_line0.output TO line_M2_VCC1_switch.set_whichChoice
上述程式碼表示當插座VCC1上的觸發器被啟用時,將傳送一個訊息給控制導線顯示指令碼,指令碼接到訊息並經過處理後,再發送命令給Switch節點,這樣就可以達到顯示導線的目的了。
3 實驗系統網上釋出
結合其它網路技術,對構建完成的三維虛擬實驗室場景進行整合[6],如圖5所示。之後把該虛擬實驗系統傳送到Web伺服器上,學生只需要登入就可以隨時隨地進行遠端實驗。
圖5 實驗場景
4 結束語
該實驗系統的設計突破了傳統實驗方式的時空限制,使實驗教學在時間和空間上得到有效的延伸。虛擬實驗作為傳統實驗的一個有益的補充,既能節約大量的實驗裝置經費,也有助於提高實驗教學的效果。
文獻
[1] 王愛英.計算機組成與結構[M].3版.北京:清華大學出版社,2000.
[2] 黃幕雄.高校教學型虛擬實驗室建設的現狀與建議[J].電化教育研究,200509:77-80.
[3] 胡小強.虛擬現實技術[M].北京:北京郵電大學出版社,2005:192-288.
[4] 張雲苑.虛擬現實技術中3DS MAX建模的應用[J].電腦知識與技術,2006:189-190.
[5] 李斯萌,楊雪.虛擬實驗系統的自適應調節機制研究[J].吉林大學學報:資訊科學版,2012,304:403-408.
[6] 宋淑彩,周麗莉,趙巍.基於網路的計算機組成原理虛擬實驗的設計與開發[J].微計算機資訊,2006,225-3:286-288.
篇二
用於計算機組成與結構課程教學的模擬器
摘要
摘要:介紹基於開源軟體包MML的計算機模擬器ARCH。ARCH實現了硬體結構的邏輯閘級對映,易修改和動態執行,並具有豐富的定址方式和指令型別,克服了軟體實驗平臺抽象粒度過大和硬體實驗平臺互動性不強的問題。
內容
關鍵詞:模擬器;計算機組成與結構;MML;ARCH
計算機組成與結構是電腦科學與技術專業本科生的核心專業基礎課程之一。它與組合語言、微機原理、介面技術等課程一起構成了硬體系列課程。通過本課程的學習,學生可以掌握計算機系統各個組成部分的工作原理、組成方法和相互關係,瞭解計算機指令系統和中央處理器的組織、資料傳遞路徑和指令控制流程、儲存管理、微程式設計、中斷系統和輸入/輸出系統.等,具有計算機系統層次結構的初步概念。
“實踐出真知”這句話告訴我們:最理想的學習方式是把所學習的理論知識付諸實踐。在計算機組成與結構課程教學過程中,如何把學習到的理論知識付諸實踐,以及如何利用實踐驗證和深化所學到的理論知識,這兩個轉化過程是學生學習的關鍵。針對這個問題,許多高校已經開始研發各種基於軟體和硬體的計算機組成與結構課程實驗平臺來輔助課程教學。這些實驗平臺可分為兩組:基於積體電路的硬體平臺和基於軟體的模擬平臺。
基於積體電路的硬體平臺具有完整的硬體結構對映的優點,但是存在操作複雜、電路容易故障、動態演示困難等缺點,並且由於採用功能較為複雜的積體電路,硬體結構的對映無法達到暫存器級別。而基於軟體的模擬平臺可以是完全基於程式語言如C語言或其他高階語言開發模擬軟體,具有靈活、容易修改、動態演示方便等優點,但是由於軟體實現是基於演算法級別的,偏重於工作原理,很難把程式程式碼和具體的硬體結構細節對應起來。此外,已有的基於軟體的模擬平臺,在定址方式和指令集方面覆蓋面不廣,不支援中斷和堆疊的操作,這也是一大缺陷。
下面筆者將介紹基於開源軟體包Multimedia LogicMML所開發的用於計算機組成與結構課程教學的計算機模擬器ARCH。ARCH具有軟體的易動態執行、易修改、易二次開發的優點,同時又實現了硬體結構的邏輯閘級對映,還具有豐富的定址方式和指令型別,對中斷和堆疊的操作提供了基本支援,從而彌補了已有相關計算機教學模擬器的不足之處。
1 研究背景
2001年,Yehezkel,Yurcik,Pearson和Armstrong研發了3種計算機結構模擬平臺:EasyCPU,Little Man Compmer和RTLSim。其中EasyCPU是一個基於英特爾X86微處理器的入門級微型計算機的模擬器。它只是一個軟體程式,模擬Intel X86系列微處理器的主要定址模式和指令集合。Little Man Computer和RTLSim是對EasyCPU的進一步改進和完善。
2006年,Arias和Garcia研發了計算機結構模擬平臺SimpleCPU。SimpleCPU是一個16位的模擬CPU。它採用了3種定址模式:快速模式、暫存器模式、間接定址。它除了包含8個通用暫存器外,還有程式計數器PC、狀態暫存器SR、ALU的時間輸入暫存器TMPI、ALU時間輸出暫存器TMPO、儲存器資料暫存器MDR、記憶體地址暫存器MAR和指令暫存器IR。
2007年,Stanley等基於MML軟體包完成了計算機結構模擬平臺:16位的Made。Marie具有13條指令,並使用直接和間接定址模式,每個儲存單元是16位長,指令字長和儲存字長相等。機器指令由兩個欄位組成:2位操作碼和12位的地址。Made有7個暫存器。它們是累加器AC、記憶體地址暫存器MAR、儲存器緩衝暫存器MBR、程式計數器PC、指令暫存器IR、輸入暫存器InREG和輸出暫存器OutREG,具有16位複用資料匯流排。
除了Marie之外,Stanley等還研發了兩種不同系統結構的模擬器:哈佛體系結構和馮·諾依曼體系結構。馮·諾依曼體系結構模擬器有4條指令,具有8位的程式計數器,8位的指令暫存器,8位的累加器和8位的儲存器。指令中操作碼佔用2位,其餘的被分配給地址碼,每條指令的執行週期包含3個時鐘週期。8位哈佛體系結構模擬器有8條指令,每條指令的執行週期包含1個時鐘週期。
筆者在Stanley和Oztekin的工作基礎上所提出的計算機模擬器ARCH的所有單元是基於MML包進行邏輯閘級設計,並有38個指令。這些指令是當今的商業微處理器的核心指令。它有6種不同的定址模式,同時支援中斷和堆疊操作。此外,因為它的所有單元是在邏輯閘級設計的,所以,學生可以很容易檢查在模擬器中的所有單元的內部結構。表1所示是各種計算機模擬器的基本屬性。
2 ARCH結構和指令
2.1 總體結構
ARCH是用於本科生計算機組成與結構課程教學的模擬器。它有38條指令,包含11條儲存器和累加器操作類指令,6條指令的變址和堆疊操作指令,13條無條件和有條件轉移指令,6條指令的條件碼暫存器操作指令和2條指令輸入/輸出指令。它支援6個不同的定址模式,包括立即、直接、間接、變址、相對、隱含定址模式。它有11個暫存器,包括地址暫存器AR、程式計數器PC、暫存器TR、變址暫存器IX、16位長的堆疊指標SP、指令暫存器IR、輸入暫存器INPR、輸出暫存器OUTR和8位長的條件碼暫存器CCR。ARCH的資料路徑寬度為16位,地址暫存器的寬度為16位,所以ARCH有64KB的記憶體區域。ARCH中有一個專用的有效地址生成部件。該部件可以根據定址模式計算出一個有效的地址,而不是採用通用ALU進行地址計算。該有效地址生成部件需要6個時鐘週期生成有效地址。MML開發環境中ARCH核心部件ALU和CU結構如圖1所示。
2.2 指令系統 ARCH的指令包含操作碼和地址碼兩部分。操作碼包含兩個欄位:操作型別和定址模式。在記憶體空間中,隱含定址模式的指令佔用1個位元組,直接、間接和立即定址模式的指令佔用3個位元組,相對和變址定址模式的指令佔用2個位元組。所有定址方式指令的第1個位元組是操作碼。操作碼的第4、5和6位表示6個不同定址模式的其中之一,其餘操作碼位表示指令的操作型別。
1累加器操作指令。
累加器操作共有11種不同指令。採用立即、直接和間接定址模式的累加器操作指令佔用3個位元組,而採用變址定址模式的累加器操作指令佔用2個位元組,此外採用隱含定址模式的累加器操作指令僅佔用1個位元組。各種累加器操作指令如表2所示。
2變址指令和堆疊指令。
變址和堆疊指令使用立即、直接、間接、變址和隱含定址模式。在儲存器中,前3種模式佔據3個位元組,第4種模式佔用2個位元組,第5種模式佔用1個位元組。各種變址指令和堆疊指令如表3所示。
3有條件或無條件轉移指令。
有條件和無條件轉移指令可以改變程式流程。只不過一些是有條件轉移,其他的則是無條件轉移。絕大多數轉移指令使用相對定址模式,只有返回主程式指令使用隱含定址模式。各種有條件或無條件轉移分支指令如表4所示。
4帶條件暫存器操作指令。
在執行轉移指令時,帶條件暫存器操作指令有特別重要的作用。它們全部採用隱含定址模式,並在取指和譯碼階段的最後一個時鐘週期執行。表5所示是各種帶條件暫存器操作指令。
5輸入/輸出指令。
為了與外設如鍵盤進行資料傳送,ARCH使用8位的鍵盤作為輸入單元,使用可用的8位LED顯示單元作為輸出單元。資料從鍵盤被轉移到輸入暫存器INPR,並且進一步被轉移到LED顯示單元,儲存於輸出暫存器OUTR。ARCH支援有兩種輸入/輸出指令:IN和OUT。IN指令是將從鍵盤輸入的資料傳送到INR中儲存起來,OUT指令是將資料從OUTR傳送到LED顯示單元。
ARCH模擬器支援查詢輸入/輸出方式,這時輸入標誌FGI和輸出標誌FGO必須在輸入/輸出的操作過程中不斷地檢查。如果其中的一個控制標誌是邏輯1,那麼計算機開始傳輸資料。然而,由於計算機和外圍裝置之間的資料傳輸率是非常低的,所以這種資料傳送方法不是很有效。
另一種方式是採用下述中斷方式。當輸入/輸出單元已經準備好了,利用中斷方式通知ARCH。ARCH立即離開主程式執行,並啟動必要的輸入/輸出操作傳送資料。當ARCH完成輸入/輸出操作後將返回主程式。
6中斷。
ARCH模擬器的工作週期包含中斷週期和指令週期兩種。觸發器C用於區分中斷週期和指令週期。如果觸發器C是邏輯1,那麼模擬器是在中斷週期,否則,是在指令週期。在指令週期中,通過控制機制來檢查中斷標誌。如果實驗人員不希望模擬器進入中斷週期,則可以清除觸發器C。
ARCH模擬器中設定了兩個指令可以將條件碼暫存器的中斷標誌設定為邏輯1或0。STI指令在中斷標誌設定為邏輯1,而CLI指令清除中斷標誌。
ARCH模擬器在進人中斷週期之前,能儲存一些暫存器的內容。這些暫存器的內容被儲存在堆疊區域,這些堆疊區域是從E000h開始的4KB的記憶體。儲存暫存器到堆疊區的操作按以下順序進行:程式計數器、變址暫存器、累加器、條件碼暫存器。
3 ARCH的應用
下面以計算fx=x2+x+1為例說明基於ARCH的實驗操作過程。首先,約定x的值被儲存在ARCH的64KB儲存器的資料段中,並且最後運算結果fx的結果也儲存到資料段中資料段是從地址為A000h開始的佔用4KB的記憶體空間。
該計算過程對應的彙編程式碼如下:
0100h:LDA#1234h\\累加器裝載十六進位制1234H。
0103h:STA[00h]\\累加器內容轉存到資料段。
0105h:LDA[00h]\\資料從資料段提取。
0107h:MUL[00h]\\在累加器中的資料乘以資料段的資料,並存儲到累加器。
0109h:ADD[00h]\\在累加器中的資料加上資料段中的資料,並存儲到累加器。
010Bh:INC\\累加器中的值遞增並存儲到累加器。
010Ch:STA[00h]\\累加器的值被儲存到資料段。
010Eh:HLT\\程式停止。
上述彙編程式碼可以手動或者通過彙編程式自動轉換成為二進位制程式碼,並存儲於檔案中。
在MML開發環境中執行ARCH,此時二進位制程式碼檔案中的程式碼和資料被自動載入儲存器中並執行。我們可以通過ARCH包含的LED檢視相應的執行結果。
4 結語
在計算機組成與結構課程教學過程中,為了把學習到的理論知識付諸實踐,利用實踐驗證和深化所學到的理論知識,許多高校已經開始研發各種教學用的計算機模擬平臺。針對基於軟體實驗平臺的抽象粒度過大和基於硬體實驗平臺互動性不強的問題,筆者提出了基於開源軟體包MML計算機模擬器ARCH。ARCH不僅具有軟體的易動態執行、易修改、易二次開發的優點,同時還實現了硬體結構的邏輯閘級對映,並具有豐富的定址方式和指令型別,對中斷和堆疊的操作提供了基本支援,從而彌補了已有相關教學模擬器的不足之處。
有關推薦: