TEC-XP16實(shí)驗(yàn)指導(dǎo)書_第1頁(yè)
TEC-XP16實(shí)驗(yàn)指導(dǎo)書_第2頁(yè)
TEC-XP16實(shí)驗(yàn)指導(dǎo)書_第3頁(yè)
TEC-XP16實(shí)驗(yàn)指導(dǎo)書_第4頁(yè)
TEC-XP16實(shí)驗(yàn)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩90頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、計(jì)算機(jī)組成原理實(shí) 驗(yàn) 指 導(dǎo) 書王瀟 編寫仲愷農(nóng)業(yè)工程學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院二00八年十月目 錄第一章 tec-xp16實(shí)驗(yàn)計(jì)算機(jī)系統(tǒng)原理11.1 tec-xp16計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng)概述11.2 tec-xp16機(jī)指令系統(tǒng)81.3 tec-xp16機(jī)運(yùn)算器部件121.4 tec-xp16機(jī)內(nèi)存儲(chǔ)器部件151.5 tec-xp16機(jī)的控制器部件181.6 tec-xp16機(jī)的輸入輸出及中斷22第二章 tec-xp16實(shí)驗(yàn)計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)內(nèi)容24實(shí)驗(yàn)一 基礎(chǔ)匯編語(yǔ)言程序設(shè)計(jì)24實(shí)驗(yàn)二 脫機(jī)運(yùn)算器實(shí)驗(yàn)29實(shí)驗(yàn)三 存儲(chǔ)器部件教學(xué)實(shí)驗(yàn)32實(shí)驗(yàn)四 組合邏輯控制器部件教學(xué)實(shí)驗(yàn)37實(shí)驗(yàn)五 微程序控制器部件

2、教學(xué)實(shí)驗(yàn)51實(shí)驗(yàn)六 輸入/輸出接口擴(kuò)展實(shí)驗(yàn)59實(shí)驗(yàn)七 中斷實(shí)驗(yàn)63實(shí)驗(yàn)八 8位模型機(jī)的設(shè)計(jì)與實(shí)現(xiàn)(綜合實(shí)驗(yàn))71附錄74附錄1 聯(lián)機(jī)通訊指南74附錄2 tec-xp16計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng)簡(jiǎn)明操作卡77附錄3 微程序入口地址映射表78附錄4 指令流程框圖80附錄5 指令流程表82附錄6 書寫實(shí)驗(yàn)報(bào)告的一般格式86參考文獻(xiàn)87第一章 tec-xp16實(shí)驗(yàn)計(jì)算機(jī)系統(tǒng)原理1.1 tec-xp16計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng)概述一、教學(xué)計(jì)算機(jī)系統(tǒng)的實(shí)現(xiàn)方案和硬軟件資源概述tec-xp是由清華大學(xué)計(jì)算機(jī)系和清華大學(xué)科教儀器廠聯(lián)合研制的適用于計(jì)算機(jī)組成原理課程的實(shí)驗(yàn)系統(tǒng),主要用于計(jì)算機(jī)組成原理和數(shù)字電路等的硬

3、件教學(xué)實(shí)驗(yàn),同時(shí)還支持監(jiān)控程序、匯編語(yǔ)言程序設(shè)計(jì)、basic高級(jí)語(yǔ)言程序設(shè)計(jì)等軟件方面的教學(xué)實(shí)驗(yàn)。它的功能設(shè)計(jì)和實(shí)現(xiàn)技術(shù),都緊緊地圍繞著對(duì)課程教學(xué)內(nèi)容的覆蓋程度和所能完成的教學(xué)實(shí)驗(yàn)項(xiàng)目的質(zhì)量與水平來(lái)進(jìn)行安排。其突出特點(diǎn)是硬、軟件基本配置比較完整,能覆蓋相關(guān)課程主要教學(xué)內(nèi)容,支持的教學(xué)實(shí)驗(yàn)項(xiàng)目多且水平高。其組成和實(shí)現(xiàn)的功能如圖1.1.1所示。軟件:解釋basic語(yǔ)言匯編語(yǔ)言支持監(jiān)控程序硬件:運(yùn)算器,控制器(多種實(shí)現(xiàn))(微程序或硬布線控制器)主存儲(chǔ)器,總線,接口輸入設(shè)備,輸出設(shè)備硬件與電路:邏輯器件和設(shè)備圖1.1.1 硬件實(shí)現(xiàn)的實(shí)際計(jì)算機(jī)系統(tǒng)圖從圖1.1.1可以看到,該計(jì)算機(jī)硬件系統(tǒng)組成中,功能部

4、件是完整齊備的,運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出接口、計(jì)算機(jī)總線等配備齊全,還可以接通pc機(jī)仿真終端執(zhí)行輸入輸出操作,同時(shí)實(shí)現(xiàn)了微程序方案的和硬連線方案的2種控制器。從計(jì)算機(jī)組成原理課程教學(xué)需求的角度看,該計(jì)算機(jī)軟件系統(tǒng)的組成也是完整的,支持簡(jiǎn)單的高級(jí)語(yǔ)言(包括浮點(diǎn)運(yùn)算指令和基本函數(shù)運(yùn)算功能),匯編語(yǔ)言(支持基本偽指令功能)和二進(jìn)制的機(jī)器語(yǔ)言,配有自己的監(jiān)控程序,以及pc機(jī)仿真終端程序等。二、教學(xué)計(jì)算機(jī)指令系統(tǒng)的設(shè)計(jì)目標(biāo)和指令格式合理地確定一臺(tái)計(jì)算機(jī)的指令系統(tǒng),無(wú)論對(duì)計(jì)算機(jī)廠家還是對(duì)最終用戶來(lái)說(shuō)都是十分重要的事情,它密切關(guān)系到計(jì)算機(jī)設(shè)計(jì)與實(shí)現(xiàn)的復(fù)雜程度和生產(chǎn)成本,計(jì)算機(jī)使用的難易程度和運(yùn)行效率

5、。對(duì)主要用于教學(xué)和教學(xué)實(shí)驗(yàn)?zāi)康牡挠?jì)算機(jī),特別是對(duì)于一臺(tái)16位字長(zhǎng)的教學(xué)計(jì)算機(jī)來(lái)說(shuō),確定其指令系統(tǒng),更多地應(yīng)關(guān)注它在教學(xué)過(guò)程中的作用和使用方法,至少應(yīng)解決好以下幾個(gè)問(wèn)題:1、指令格式和功能的典型性,即選擇dlx指令集結(jié)構(gòu),適當(dāng)靠攏risc機(jī)的指令格式,包括盡可能小的指令集,簡(jiǎn)化的尋址方式。這樣做不僅可以簡(jiǎn)化教學(xué)計(jì)算機(jī)的結(jié)構(gòu),實(shí)現(xiàn)簡(jiǎn)單,易于實(shí)現(xiàn)指令流水,重要的是選用有良好典型性的指令格式和功能,講課時(shí)更容易完整地講解清楚這套指令系統(tǒng)和控制器設(shè)計(jì),有利于教學(xué)內(nèi)容的整體安排。2、指令系統(tǒng)要有一定的完備程度,給出的指令格式適當(dāng)規(guī)范,指令分類合理,指令執(zhí)行步驟容易理解,符合人們通常的編程使用習(xí)慣,有較好的

6、易學(xué)易用性,確保選用這套指令系統(tǒng),能方便地設(shè)計(jì)教學(xué)計(jì)算機(jī)的配套軟件。3、更高的可擴(kuò)充性,即為學(xué)生添加各種新的指令留下比較充足的余地,為此可以把完整系統(tǒng)中的指令劃分為必備的基本指令(由設(shè)計(jì)者實(shí)現(xiàn))和待擴(kuò)展的保留指令(由學(xué)生設(shè)計(jì)實(shí)現(xiàn))2大類;在擴(kuò)展新的指令時(shí),實(shí)現(xiàn)手段要適當(dāng)簡(jiǎn)單,但要有比較多的設(shè)計(jì)內(nèi)容和選擇余地,以便更好地培養(yǎng)學(xué)生的創(chuàng)新意識(shí)和開創(chuàng)能力,有利于深化教學(xué)內(nèi)容。4、符合教學(xué)計(jì)算機(jī)的特定要求。對(duì)16位字長(zhǎng)的計(jì)算機(jī),指令的操作碼部分可以選擇為固定長(zhǎng)度;再結(jié)合我們所選用的運(yùn)算器器件am2901芯片內(nèi)含16個(gè)通用寄存器的特點(diǎn),寄存器尋址方式需要使用4位的形式地址。如果需要,還可以指定16個(gè)累加器

7、中的幾個(gè)為專用的寄存器,以便最大程度地簡(jiǎn)化教學(xué)機(jī)硬件組成,簡(jiǎn)化指令執(zhí)行流程設(shè)計(jì)。遵照上述思路,最終確定了教學(xué)計(jì)算機(jī)的指令格式,如圖1.1.2所示。這套指令系統(tǒng)支持單字指令和雙字指令,第一個(gè)指令字的高8位是指令操作碼字段,低8位和雙字指令的第二個(gè)指令字是操作數(shù)地址字段,分別有3種用法。8位4位4位操作碼drsrio端口地址/相對(duì)偏移量立即數(shù) / 直接內(nèi)存地址 / 變址偏移量圖1.1.2 教學(xué)機(jī)的指令格式8位指令操作碼(記作“ir15ir8”),各位的含義如下:ir15、ir14 用于區(qū)分指令組: 0表示a組,10表示b組,11表示c、d組;ir13 用于區(qū)分基本和擴(kuò)展指令:0表示基本指令,1表示

8、擴(kuò)展指令;ir12 用于簡(jiǎn)化控制器的實(shí)現(xiàn), 暫定該位的值為0;ir11ir8 用于區(qū)分同一指令組中的不同指令(最多16條);ir11 還用于區(qū)分c、d組指令(每組最多8 條):0表示c組,1 表示d組。第一個(gè)指令字中的操作數(shù)地址字段可以給出:4位的通用寄存器編號(hào)(dr代表目的寄存器,sr代表源寄存器),8位的io端口地址,8位的相對(duì)變址偏移量。第二個(gè)指令字中的操作數(shù)地址字段用于給出16位的立即數(shù),16位的直接內(nèi)存地址,或者16位的變址偏移量。三、教學(xué)計(jì)算機(jī)的硬件組成和設(shè)計(jì)概述作為教學(xué)和教學(xué)實(shí)驗(yàn)使用的計(jì)算機(jī),其硬件結(jié)構(gòu)和組成設(shè)計(jì),要比較好地體現(xiàn)出盡可能多的主要教學(xué)內(nèi)容,包括功能部件劃分清晰,設(shè)計(jì)

9、合理,它們之間連接關(guān)系適當(dāng)規(guī)范等。tec-xp16的硬件系統(tǒng)由以下幾個(gè)基本部分組成:運(yùn)算器部件、控制器部件、內(nèi)存儲(chǔ)器系統(tǒng)和串行接口線路;此外還設(shè)置了輔助電路和擴(kuò)展電路兩個(gè)輔助部分,各個(gè)部分被劃分在電路板的不同區(qū)域,如照片圖1.1.3所示,基本組成部分的線路邏輯框圖如圖1.1.4所示。從圖1.1.3中我們可以看到,教學(xué)計(jì)算機(jī)運(yùn)算器部件是選用4片位片結(jié)構(gòu)的4位長(zhǎng)度的運(yùn)算器am2901芯片實(shí)現(xiàn)的。該芯片包含完成算術(shù)和邏輯運(yùn)算功能的alu,雙端口控制讀出、單端口控制寫入的16個(gè)累加器和完成乘除法運(yùn)算的乘商寄存器等功能部件,從功能和組成兩個(gè)方面都比較好地體現(xiàn)了運(yùn)算器部件的教學(xué)內(nèi)容。從圖1.1.4可以看到

10、運(yùn)算器和其它部件的連接關(guān)系,它只能接收教學(xué)機(jī)內(nèi)部總線ib送來(lái)的16位數(shù)據(jù),其運(yùn)算結(jié)果直接送到地址寄存器ar的輸入端,或者經(jīng)過(guò)2個(gè)8位的開關(guān)門電路送到內(nèi)部中線ib。運(yùn)算結(jié)果的標(biāo)志位信息送到標(biāo)志位寄存器flag,flag的輸出可以經(jīng)過(guò)一個(gè)8位的開關(guān)門送到內(nèi)部總線ib。在教學(xué)計(jì)算機(jī)控制器部件設(shè)計(jì)中,同時(shí)實(shí)現(xiàn)了微程序和硬連線的兩種控制器,并可以通過(guò)撥動(dòng)一個(gè)開關(guān)完成兩種控制器之間的切換。兩種控制器主要都由一片高集成度mach器件實(shí)現(xiàn),這一實(shí)現(xiàn)方案為簡(jiǎn)化修改與擴(kuò)展控制器功能的操作,改善教學(xué)實(shí)驗(yàn)效果有重要作用,是本教學(xué)計(jì)算機(jī)系統(tǒng)非常顯著的一個(gè)特色。在mach芯片之外,還用到了確定微指令執(zhí)行次序的一片am29

11、10芯片,用作指令寄存器ir的2片8位的寄存器電路,1片傳送ir低位字節(jié)內(nèi)容到內(nèi)部總線ib的開關(guān)門電路。指令寄存器接收從內(nèi)存儲(chǔ)器讀出并傳送到內(nèi)部總線ib的指令,其全部16位輸出送到mach芯片的輸入引腳,其低8位內(nèi)容還要經(jīng)一個(gè)開關(guān)門送到內(nèi)部總線ib。在教學(xué)計(jì)算機(jī)存儲(chǔ)器部件設(shè)計(jì)中,出于簡(jiǎn)化和容易實(shí)現(xiàn)的目的,選用靜態(tài)存儲(chǔ)器芯片實(shí)現(xiàn)內(nèi)存儲(chǔ)器系統(tǒng),包括了唯讀存儲(chǔ)區(qū)(rom,存放監(jiān)控程序等)和隨讀寫存儲(chǔ)區(qū)(ram)兩部分,rom存儲(chǔ)區(qū)選用4片長(zhǎng)度8位、容量8kb的芯片實(shí)現(xiàn),ram存儲(chǔ)區(qū)選用2片長(zhǎng)度8位、容量2kb的芯片實(shí)現(xiàn),每2個(gè)8位的芯片合成一組用于組成16位長(zhǎng)度的內(nèi)存字,6個(gè)芯片被分成3組,其地址空

12、間分配關(guān)系是:0-1777h用于第一組rom,固化監(jiān)控程序,2000-2777h用于ram,保存用戶程序和用戶數(shù)據(jù),其高端的一些單元作為監(jiān)控程序的數(shù)據(jù)區(qū),第二組rom的地址范圍可以由用戶選擇,主要用于完成擴(kuò)展內(nèi)存容量的教學(xué)實(shí)驗(yàn)。關(guān)于計(jì)算機(jī)中的接口線路,教學(xué)計(jì)算機(jī)提供了2路串行接口(intel 8251),以支持接入pc機(jī)作為教學(xué)計(jì)算機(jī)的仿真終端完成輸入輸出操作;第一個(gè)串口的端口地址分配80h/81h,第二個(gè)串口的端口地址可以由用戶選擇。作為擴(kuò)展實(shí)驗(yàn)內(nèi)容,也可以通過(guò)在一個(gè)40芯的器件插座上插上其他標(biāo)準(zhǔn)接口線路(例如intel 的8255、8253 等)并適當(dāng)接線,完成常用接口線路的輸入輸出操作。

13、在教學(xué)計(jì)算機(jī)總線部件設(shè)計(jì)中,選用單總線結(jié)構(gòu),數(shù)據(jù)總線、地址總線和控制總線都比較簡(jiǎn)單,保證教學(xué)機(jī)的正常運(yùn)行并體現(xiàn)出總線設(shè)計(jì)的基本原理。圖1.1.5給出了各個(gè)部件如何通過(guò)總線相互連接在一起,從而構(gòu)成一臺(tái)能夠正常運(yùn)行的計(jì)算機(jī)系統(tǒng)。圖1.1.3 th-union(計(jì)原16)教學(xué)計(jì)算機(jī)系統(tǒng)組成93圖1.1.4 計(jì)原16位教學(xué)計(jì)算機(jī)線路邏輯框圖圖1.1.5 部件之間的連接關(guān)系和信息傳送路徑數(shù)據(jù)總線被劃分成內(nèi)部總線ib(在cpu 一側(cè))和外部總線db(在存儲(chǔ)器和串行接口一側(cè))兩部分,它們之間通過(guò)2片8位的雙向三態(tài)門電路連接在一起。3組存儲(chǔ)器芯片的數(shù)據(jù)輸入輸出引腳都直接連接在一起,連接到16位的數(shù)據(jù)總線db上

14、,串行接口芯片的8位數(shù)據(jù)輸入輸出引腳只與數(shù)據(jù)總線db的低8位(db7-db0這8位)相連接。地址總線的構(gòu)成比較特殊,僅地址寄存器ar一個(gè)來(lái)源,ar又只接收alu一路輸入。內(nèi)存儲(chǔ)器和接口電路的地址都來(lái)自于地址總線ab(地址寄存器ar 的輸出),地址總線的最高3位送到1片3-8譯碼器,地址總線的低位字節(jié)中的高4位(規(guī)定最高一位必定為1)送到另外1片3-8譯碼器,分別產(chǎn)生存儲(chǔ)器芯片的8個(gè)片選信號(hào)和接口電路的8個(gè)片選信號(hào)??刂瓶偩€提供內(nèi)存和串口的讀寫命令,是把控制器提供的3位控制信號(hào)送1片雙2-4譯碼器得到的,以決定有無(wú)內(nèi)存或接口讀寫,若有,是和內(nèi)存還是接口工作,執(zhí)行的是讀還是寫操作。內(nèi)存和cpu選用

15、同步方式運(yùn)行,串行接口和cpu選用狀態(tài)查詢方式工作。 通過(guò)圖1.1.5簡(jiǎn)單地看一下教學(xué)計(jì)算機(jī)每個(gè)部件的運(yùn)行環(huán)境和相關(guān)功能的執(zhí)行過(guò)程。 運(yùn)算器部件中的alu可以對(duì)兩路輸入數(shù)據(jù)a和b執(zhí)行3種算術(shù)或5種邏輯運(yùn)算功能,其兩路輸入可來(lái)自芯片內(nèi)部的寄存器堆送出來(lái)的數(shù)據(jù)(是由指令寄存器ir的兩個(gè)寄存器編號(hào)選定的寄存器的內(nèi)容,還設(shè)置有鎖存線路),或來(lái)自芯片外的內(nèi)部總線ib的數(shù)據(jù),其運(yùn)算結(jié)果可以在芯片內(nèi)部被直接寫入寄存器堆,或送到芯片外被直接連接到地址寄存器ar、或經(jīng)過(guò)支持三態(tài)邏輯的開關(guān)門送到內(nèi)部總線ib。alu運(yùn)算產(chǎn)生的4個(gè)標(biāo)志位的值被保存進(jìn)芯片外部的flag 寄存器。運(yùn)算器部件中的寄存器堆暫存用于alu運(yùn)算

16、的數(shù)據(jù)和運(yùn)算的中間結(jié)果。 控制器部件將依據(jù)指令內(nèi)容和指令執(zhí)行步驟信息來(lái)提供管理計(jì)算機(jī)各個(gè)部件運(yùn)行所必需的控制信號(hào),指令寄存器ir接收從內(nèi)存儲(chǔ)器讀出來(lái)的指令內(nèi)容,其輸出被送到mach芯片的輸入引腳,由mach(也包括am2910芯片,圖中未畫)產(chǎn)生指令執(zhí)行步驟信號(hào),并為各個(gè)部件提供每一個(gè)執(zhí)行步驟要用到的全部控制信號(hào)。指令寄存器低位字節(jié)的內(nèi)容可以經(jīng)過(guò)帶三態(tài)邏輯的開關(guān)門送到內(nèi)部總線,用作為運(yùn)算器部件的外部輸入數(shù)據(jù)d的一個(gè)來(lái)源。 內(nèi)存儲(chǔ)器用于保存運(yùn)行中的程序和數(shù)據(jù),可讀可寫。讀寫操作的第一步是為其提供內(nèi)存單元的地址,即把a(bǔ)lu的輸出內(nèi)容寫進(jìn)地址寄存器ar,第二步是執(zhí)行讀或者寫操作。為讀操作時(shí),若讀出的

17、是指令則經(jīng)過(guò)數(shù)據(jù)總線db和內(nèi)部總線ib寫進(jìn)指令寄存器ir,若讀出的是數(shù)據(jù)應(yīng)經(jīng)過(guò)數(shù)據(jù)總線db和內(nèi)部總線ib、經(jīng)過(guò)運(yùn)算器的d輸入引腳寫到運(yùn)算器寄存器堆中一個(gè)寄存器。這個(gè)寄存器由指令字中的目的寄存器字段指定。為寫操作時(shí),把由指令字的一個(gè)字段指定的寄存器堆中的一個(gè)寄存器的內(nèi)容經(jīng)內(nèi)部總線ib和數(shù)據(jù)總線db寫進(jìn)存儲(chǔ)器的一個(gè)存儲(chǔ)單元。 串行接口用于執(zhí)行數(shù)據(jù)的輸入輸出操作。輸入輸出操作的第一步是為接口芯片提供入出端口地址,即把指令寄存器低位字節(jié)的內(nèi)容(io端口地址)經(jīng)過(guò)內(nèi)部總線和運(yùn)算器部件寫進(jìn)地址寄存器ar,第二步是執(zhí)行輸入或者輸出操作,若執(zhí)行輸入指令in,則應(yīng)從接口芯片讀出一個(gè)8位的數(shù)據(jù)并經(jīng)過(guò)數(shù)據(jù)總線db和

18、內(nèi)部總線ib寫進(jìn)寄存器堆中的r0寄存器,若執(zhí)行輸出指令out,則需要把寄存器堆中的r0寄存器的內(nèi)容經(jīng)過(guò)內(nèi)部總線ib和數(shù)據(jù)總線db寫入接口芯片。接口芯片與輸入輸出設(shè)備之間的數(shù)據(jù)傳送過(guò)程無(wú)需另外管理,會(huì)自動(dòng)完成。在教學(xué)計(jì)算機(jī)系統(tǒng)中,實(shí)現(xiàn)并提供了簡(jiǎn)明、常規(guī)的中斷處理能力,在支持多級(jí)的中斷嵌套實(shí)驗(yàn)方面,這個(gè)系列的教學(xué)計(jì)算機(jī)有非常明顯的特色。四、主要技術(shù)指標(biāo)1、機(jī)器字長(zhǎng)16位, 即運(yùn)算器、主存、數(shù)據(jù)總線、地址總線均是16位。2、基本指令系統(tǒng)支持多種基本尋址方式。其中部分指令已實(shí)現(xiàn), 用于設(shè)計(jì)監(jiān)控程序和用戶的常規(guī)匯編程序, 尚保留多條指令供用戶自己實(shí)現(xiàn)。3、主存最大尋址空間是18k字,可進(jìn)行主存儲(chǔ)器擴(kuò)展實(shí)

19、驗(yàn)。4、運(yùn)算器由4片位片結(jié)構(gòu)器件am2901級(jí)聯(lián)而成, 片間用串行進(jìn)位方式傳遞進(jìn)位信號(hào)。alu實(shí)現(xiàn)8種算術(shù)與邏輯運(yùn)算功能, 內(nèi)部包括16個(gè)雙端口讀出、單端口寫入的通用寄存器, 和一個(gè)能自行移位的乘商寄存器。設(shè)置c、z、 v、s四個(gè)狀態(tài)標(biāo)志位。運(yùn)算器實(shí)驗(yàn)可以有脫機(jī)和聯(lián)機(jī)兩種實(shí)驗(yàn)方式。5、控制器采用微程序和組合邏輯兩種控制方案實(shí)現(xiàn)。組合邏輯控制器用的是lattice公司的cpld的芯片。在做控制器實(shí)驗(yàn)時(shí),用戶可按基本指令的格式和流程擴(kuò)展指令,編寫程序使新老指令同時(shí)運(yùn)行。6、主機(jī)上安裝有一路intel8251串行接口,可直接接計(jì)算機(jī)終端, 或接入一臺(tái)pc機(jī)作為自己的仿真終端。另保留一路為用戶擴(kuò)展用,

20、可完成串口初始化,雙機(jī)通訊等實(shí)驗(yàn)。7、主機(jī)可完成三級(jí)中斷實(shí)驗(yàn)和中斷嵌套實(shí)驗(yàn)。8、實(shí)驗(yàn)箱有自己的監(jiān)控程序(操作系統(tǒng)),支持多種實(shí)驗(yàn)方式(如:?jiǎn)尾?連續(xù),手動(dòng)置指令/從內(nèi)存讀指令等),監(jiān)控源碼開放,用戶可以修改。9、配有簡(jiǎn)單的邏輯筆電路,可以測(cè)量板上各個(gè)信號(hào)的電壓。10、用作組合邏輯控制器的mach芯片和實(shí)驗(yàn)箱上的xilinx的fpga芯片也可用于實(shí)現(xiàn)各種時(shí)序電路和組合邏輯電路實(shí)驗(yàn)。11、實(shí)驗(yàn)箱上xilinx的fpga芯片可以實(shí)現(xiàn)流水和非流水兩種cpu方案,還可完成高速緩沖存儲(chǔ)器(chache)的教學(xué)實(shí)驗(yàn)。12、實(shí)驗(yàn)箱支持比較正規(guī)的匯編語(yǔ)言設(shè)計(jì)和basic語(yǔ)言設(shè)計(jì)。13、實(shí)驗(yàn)箱配套指令級(jí)和微指令級(jí)

21、的仿真軟件。1.2 tec-xp16機(jī)指令系統(tǒng)一、教學(xué)計(jì)算機(jī)的指令系統(tǒng)概述 在字長(zhǎng)為16位的教學(xué)計(jì)算機(jī)系統(tǒng)中,規(guī)定指令的位數(shù)也是16位的倍數(shù),支持單字指令和雙字指令,指令格式要規(guī)范和簡(jiǎn)單,盡量向dlx指令集結(jié)構(gòu)靠攏,使其有一定的完備性和更好的典型性。從有利于教學(xué)實(shí)驗(yàn)考慮,把指令劃分為基本指令(已經(jīng)由設(shè)計(jì)者和制作廠家實(shí)現(xiàn))和擴(kuò)展指令(留待進(jìn)行教學(xué)實(shí)驗(yàn)的同學(xué)實(shí)現(xiàn))兩大類。對(duì)指令的格式說(shuō)明如圖1.2.1所示:8位4位4位操作碼drsrio端口地址/相對(duì)偏移量立即數(shù) / 直接內(nèi)存地址 / 變址偏移量圖1.2.1 指令格式指令操作碼由8位組成(記作“ir15ir8”),各位的控制作用有所不同:(1) i

22、r15、ir14用于區(qū)分指令組:0x表示a組,10表示b組,11表示c、d組;還要用ir11區(qū)分c、d組:irh11=0為c組,irh11=1為d組。(2) ir13用于區(qū)分基本和擴(kuò)展指令:irh13=0為基本指令,irh13=1為擴(kuò)展指令。(3) ir12用于簡(jiǎn)化控制器實(shí)現(xiàn),暫定該位的值均為0。(4) ir11ir8用于區(qū)分同一指令組中的不同指令。按不同的分類標(biāo)準(zhǔn),可以把16位機(jī)的指令劃分成不同的指令組,例如:從指令長(zhǎng)度區(qū)分,有單字指令和雙字指令,也允許定義與使用3字指令。 從操作數(shù)的個(gè)數(shù)區(qū)分,有雙操作數(shù)指令、單操作數(shù)指令和無(wú)操作數(shù)指令。從使用的尋址方式區(qū)分,有采用寄存器尋址、寄存器間接尋址

23、、立即數(shù)尋址、直接尋址、變址尋址、相對(duì)尋址、堆棧尋址等多種基本尋址方式的不同類別指令。從指令功能區(qū)分,有算術(shù)和邏輯運(yùn)算類指令、讀寫內(nèi)存類指令、輸入/輸出類指令、轉(zhuǎn)移指令、子程序調(diào)用和返回類指令,還有傳送、移位、置進(jìn)位標(biāo)志和清進(jìn)位標(biāo)志等指令。依照指令的執(zhí)行步驟,可以把教學(xué)計(jì)算機(jī)的指令劃分為如下4 組。a組:基本指令add、sub、and、or、xor、cmp、test、mvrr、dec、inc、shl、shr、jr、jrc、jrnc、jrz、jrnz擴(kuò)展指令adc、sbb、rcl、rcr、asr、not、clc、stc、ei、ci、jrs、jrns、jmprb組:基本指令jmpa、ldrr、st

24、rr、push、pop、pshf、popf、mvrd、in、out、retc組:擴(kuò)展指令calr、ldra、stra、ldrx、strxd組:基本指令cala擴(kuò)展指令iret這種分類辦法,是為了突出指令執(zhí)行步驟的劃分結(jié)果,有利于講解控制器設(shè)計(jì)技術(shù)。a組指令完成的是通用寄存器之間的數(shù)據(jù)運(yùn)算或傳送,或其它幾項(xiàng)特殊的操作,在取指之后可一步完成。 b組指令完成的是一次內(nèi)存或i/o讀、寫操作,在取指之后可兩步完成,第一步把要使用的地址傳送到地址寄存器ar中,第二步執(zhí)行內(nèi)存或i/o讀、寫操作。 c組指令在取指之后可三步完成,其中calr指令在用兩步完成一次寫內(nèi)存之后,第三步執(zhí)行寄存器之間的數(shù)據(jù)傳送;而其它

25、指令在第一步置地址寄存器ar,第二步讀內(nèi)存(即取得一個(gè)內(nèi)存單元的地址)并傳送到地址寄存器ar,第三步執(zhí)行另外一次讀、寫內(nèi)存的操作。 d組指令完成的是兩次讀、寫內(nèi)存操作,在取指之后可四步完成。 十六位的教學(xué)機(jī)系統(tǒng),實(shí)現(xiàn)了上面4組中的29條基本指令,用于支持教學(xué)機(jī)的監(jiān)控程序和簡(jiǎn)單的匯編語(yǔ)言程序設(shè)計(jì)。保留了其余19條擴(kuò)展指令,供學(xué)生在教學(xué)實(shí)驗(yàn)中進(jìn)行擴(kuò)展,即完成對(duì)這些指令的設(shè)計(jì)與調(diào)試,當(dāng)然,還可以擴(kuò)展另外一些指令。為了支持匯編語(yǔ)言程序設(shè)計(jì),每一條指令分配了一個(gè)匯編語(yǔ)句名,其命名規(guī)則是:用一個(gè)英文單詞或其縮寫形式(24個(gè)字母)給出一個(gè)匯編語(yǔ)句名,例如add、sub、mvrr、mvrd、jr、jmpa、s

26、trx 等。 其中的12個(gè)字母可能涉及到操作數(shù)尋址方式,具體規(guī)定如下: 用r代表寄存器尋址,例如add r0,r1 語(yǔ)句表示r0r0+r1;mvrr r0,r1 語(yǔ)句表示把寄存器r1的內(nèi)容傳送到寄存器r0;在r字母兩側(cè)加上方括號(hào),代表寄存器間接尋址,例如strr r8,r9 語(yǔ)句表示把r9的內(nèi)容傳送到以寄存器r8的內(nèi)容為地址的內(nèi)存單元之中; 用d表示立即數(shù)尋址,例如mvrd r3,1234語(yǔ)句表示r0立即數(shù)1234;用x表示變址尋址,例如ldrx r1,12r2語(yǔ)句表示把變址寄存器r2的內(nèi)容與變址偏移量12 相加作為內(nèi)存地址,進(jìn)行讀操作,讀出的數(shù)據(jù)傳送的寄存器r1; 用a表示直接地址尋址,例如

27、jmpa 2008語(yǔ)句表示轉(zhuǎn)移到2008 單元之處, stra2000, r2 語(yǔ)句表示把r2 的內(nèi)容寫入到地址為2000 的內(nèi)存單元之中。二、基本指令匯總表表1.2.1 基本指令匯總表注: 表中czvs 一列,* 表示對(duì)應(yīng)的狀態(tài)位在該指令執(zhí)行后會(huì)被重置; 表示對(duì)應(yīng)狀態(tài)位在該指令執(zhí)行后不會(huì)被修改。 運(yùn)算器芯片中有16 個(gè)通用寄存器(累加器)r0r15,其中: r4 用作16 位的堆棧指針sp; r5 用作16 位的程序計(jì)數(shù)器pc; 其余寄存器用作通用寄存器,即多數(shù)雙操作數(shù)指令和單操作數(shù)指令中的dr、sr。三、 擴(kuò)展指令匯總表表1.2.2 擴(kuò)展指令匯總表注: 表中czvs 一列,* 表示對(duì)應(yīng)的狀

28、態(tài)位在該指令執(zhí)行后會(huì)被重置; 表示對(duì)應(yīng)狀態(tài)位在該指令執(zhí)行后不會(huì)被修改。 擴(kuò)展指令的功能、格式、操作碼和操作數(shù)地址字段的確定,留給同學(xué)自己設(shè)計(jì)。表中給出的只是可能的一種選擇,但同學(xué)們一定要認(rèn)識(shí)到,這里的基本指令和擴(kuò)展指令共同構(gòu)成教學(xué)計(jì)算機(jī)的完整的指令系統(tǒng),彼此需要協(xié)調(diào),至少不能有沖突。1.3 tec-xp16機(jī)運(yùn)算器部件 運(yùn)算器是計(jì)算機(jī)硬件系統(tǒng)傳統(tǒng)的5大功能部件之一,承擔(dān)執(zhí)行運(yùn)算和暫存運(yùn)算數(shù)據(jù)的功能,通常由執(zhí)行算術(shù)邏輯運(yùn)算功能的alu線路、暫存參加alu運(yùn)算的數(shù)據(jù)和中間運(yùn)算結(jié)果的通用寄存器組、支持乘除法運(yùn)算的專用寄存器三部分組成,三個(gè)部分之間通過(guò)多路選擇器線路實(shí)現(xiàn)連接,從而構(gòu)成一個(gè)完整的運(yùn)算器部

29、件。tec-xp16教學(xué)計(jì)算機(jī)的運(yùn)算器部件,主體部分由4片4位長(zhǎng)度的位片結(jié)構(gòu)的運(yùn)算器芯片am2901組成,每片am2901可以接收來(lái)自內(nèi)部總線ib的4位輸入數(shù)據(jù),其4位輸出都直接送到地址寄存器ar的不同字段(ar不屬于運(yùn)算器的組成部分,圖中用虛線框表示),并且經(jīng)過(guò)支持三態(tài)功能的開關(guān)門電路送到內(nèi)部總線ib。還要使用mach芯片內(nèi)部的部分電路提供alu最低位的進(jìn)位輸入信號(hào)和最高、最低位的移位輸入信號(hào),使用一片gal20v8實(shí)現(xiàn)4位的標(biāo)志位寄存器flag,接收alu輸出的4個(gè)標(biāo)志位信號(hào)和來(lái)自內(nèi)存堆棧區(qū)的4位數(shù)據(jù)(用于恢復(fù)現(xiàn)場(chǎng)狀態(tài)信息),flag的4位輸出可以經(jīng)過(guò)一片帶支持三態(tài)功能的開關(guān)門電路送到內(nèi)部

30、總線ib,用于保存現(xiàn)場(chǎng)狀態(tài)信息到堆棧區(qū)。教學(xué)機(jī)運(yùn)算器部件的組成線路和信息連接關(guān)系如圖1.3.1所示。圖1.3.1 運(yùn)算器組成線路和信息連接關(guān)系運(yùn)算器部件的教學(xué)實(shí)驗(yàn),要在教學(xué)計(jì)算機(jī)主板上進(jìn)行,既可以在脫機(jī)方式下完成,也可以在聯(lián)機(jī)方式下完成。脫機(jī)運(yùn)算器實(shí)驗(yàn)方式是指使運(yùn)算器部件完全脫離與計(jì)算機(jī)主機(jī)其他部件正常的連接關(guān)系,在完全孤立出來(lái)的運(yùn)算器上進(jìn)行的教學(xué)實(shí)驗(yàn)。此時(shí),只能通過(guò)數(shù)據(jù)開關(guān)撥入?yún)⒓舆\(yùn)算的數(shù)據(jù),通過(guò)微型開關(guān)提供操作運(yùn)算器運(yùn)行所必需的控制信號(hào),通過(guò)信號(hào)指示燈觀察運(yùn)算結(jié)果,操作簡(jiǎn)單,實(shí)驗(yàn)結(jié)果清晰易理解。圖1.3.2為16位運(yùn)算器脫機(jī)實(shí)驗(yàn)的環(huán)境,在計(jì)原16系統(tǒng)中,運(yùn)算器最低位的進(jìn)位輸入信號(hào)cin和左

31、右移位輸入信號(hào)ram0、q0、ram15、q15是由mach芯片內(nèi)部的shift線路提供的,圖左側(cè)的長(zhǎng)方形部分是mach內(nèi)部的線路。16個(gè)開關(guān)撥入的數(shù)據(jù)經(jīng)開關(guān)門電路送到內(nèi)部總線,內(nèi)部總線與運(yùn)算器的輸入端d15d0已經(jīng)連接。23位的微型開關(guān)的不同組合完成不同的控制,其各編碼對(duì)應(yīng)的控制功能給出在表1.3.1。圖1.3.2 脫機(jī)運(yùn)算器實(shí)驗(yàn)的環(huán)境聯(lián)機(jī)實(shí)驗(yàn)方式是指在運(yùn)算器部件與計(jì)算機(jī)主機(jī)保持正常連接關(guān)系,教學(xué)計(jì)算機(jī)可以正常執(zhí)行指令的情況下進(jìn)行的以運(yùn)算器為重點(diǎn)的教學(xué)實(shí)驗(yàn)。此時(shí),可以通過(guò)指令提供參加運(yùn)算的數(shù)據(jù),通過(guò)控制器提供操作運(yùn)算器運(yùn)行所必需的控制信號(hào),通過(guò)信號(hào)指示燈或者通過(guò)運(yùn)行監(jiān)控程序觀察運(yùn)算結(jié)果,操作

32、略顯復(fù)雜,涉及到目前尚未講解到的如何讓控制器提供運(yùn)算器實(shí)驗(yàn)所要求的控制信號(hào)的辦法,有一定難度,當(dāng)然完成實(shí)驗(yàn)后的收獲也會(huì)更大,提前接觸到控制器部件的一些內(nèi)容。表1.3.1 微型開關(guān)各編碼對(duì)應(yīng)的控制功能表i86i53i20regqy功能rs000fqfr+saq001fsrab010fbars0q011fbfrs0b100f/2bq/2qfrs0a101f/2bf/rsda1102fb2qqfrsdq1112fbf/(rs)d0 sh scicin / shift000cin=0001cin=1010cin=c100邏輯移位101循環(huán)移位sstczvs000czvs001cyf=0ovrfis01

33、0內(nèi)部總線0110zvs1001zvs101ram0zvs110ram15zvs111q0zvs1.4 tec-xp16機(jī)內(nèi)存儲(chǔ)器部件內(nèi)存儲(chǔ)器是計(jì)算機(jī)中存放正在運(yùn)行中的程序和相關(guān)數(shù)據(jù)的部件。在教學(xué)計(jì)算機(jī)存儲(chǔ)器部件設(shè)計(jì)中,出于簡(jiǎn)化和容易實(shí)現(xiàn)的目的,選用靜態(tài)存儲(chǔ)器芯片實(shí)現(xiàn)內(nèi)存儲(chǔ)器的存儲(chǔ)體,包括唯讀存儲(chǔ)區(qū)(rom,存放監(jiān)控程序等)和隨讀寫存儲(chǔ)區(qū)(ram)兩部分,rom存儲(chǔ)區(qū)選用4片長(zhǎng)度8位、容量8kb的58c65芯片實(shí)現(xiàn),ram存儲(chǔ)區(qū)選用2片長(zhǎng)度8位、容量2kb的6116芯片實(shí)現(xiàn),每2個(gè)8位的芯片合成一組用于組成16位長(zhǎng)度的內(nèi)存字,6個(gè)芯片被分成3組,其地址空間分配關(guān)系是:0-1777h用于第一組r

34、om,固化監(jiān)控程序,2000-2777h用于ram,保存用戶程序和用戶數(shù)據(jù),其高端的一些單元作為監(jiān)控程序的數(shù)據(jù)區(qū),第二組rom的地址范圍可以由用戶選擇,主要用于完成擴(kuò)展內(nèi)存容量(存儲(chǔ)器的字、位擴(kuò)展)的教學(xué)實(shí)驗(yàn)。內(nèi)存儲(chǔ)器和串行接口線路的組成如圖1.4.1所示。圖1.4.1 內(nèi)存儲(chǔ)器和串行接口電路 地址總線的低13位送到rom芯片的地址線引腳(ram芯片只使用地址總線的低11位),用于選擇芯片內(nèi)的一個(gè)存儲(chǔ)字。用于實(shí)現(xiàn)存儲(chǔ)字的高位字節(jié)的3個(gè)芯片的數(shù)據(jù)線引腳、實(shí)現(xiàn)低位字節(jié)的3個(gè)芯片的數(shù)據(jù)線引腳分別連接在一起接到數(shù)據(jù)總線的高、低位字節(jié),是實(shí)現(xiàn)存儲(chǔ)器數(shù)據(jù)讀寫的信息通路。數(shù)據(jù)總線要通過(guò)一個(gè)雙向三態(tài)門電路與c

35、pu一側(cè)的內(nèi)部總線ib相連接,已完成存儲(chǔ)器、接口電路和cpu之間的數(shù)據(jù)通訊,如圖中的虛線部分所示。這里用到3個(gè)譯碼器電路,其中一片74ls138譯碼器芯片接收地址總線最高的3位地址信息,當(dāng)需要內(nèi)存工作時(shí),由這片譯碼器產(chǎn)生內(nèi)存芯片的8個(gè)片選信號(hào),以選擇哪一個(gè)空間范圍的內(nèi)存區(qū)可以讀寫。另外一片74ls138譯碼器芯片接收地址總線低位字節(jié)的最高4位地址信息(最高一位恒定為1),當(dāng)需要接口電路工作時(shí),由這片譯碼器產(chǎn)生接口芯片的8個(gè)片選信號(hào),以選擇哪一個(gè)接口電路可以讀寫。一片74ls139雙二-四譯碼器芯片接收控制器送來(lái)的3 位控制信號(hào)mio(有無(wú)內(nèi)存或者接口電路要讀寫)、req(是內(nèi)存還是接口電路要讀

36、寫)、we(是讀操作還是寫操作),當(dāng)這3位控制信號(hào)的組合為1、000、001、010、011時(shí),譯碼器將產(chǎn)生讀內(nèi)存操作、寫內(nèi)存操作、讀接口操作、寫接口操作、內(nèi)存和接口芯片都無(wú)讀寫操作的控制信號(hào)。在這里還要說(shuō)明如下兩個(gè)問(wèn)題。第一,要擴(kuò)展8k字的存儲(chǔ)空間,需要使用2片(每一片有8kb容量,即芯片內(nèi)由8192個(gè)單元、每個(gè)單元由8個(gè)二進(jìn)制位組成)存儲(chǔ)器芯片實(shí)現(xiàn)。第二,當(dāng)存儲(chǔ)器選用58c65rom芯片時(shí),它屬于電可擦出的eprom器件,可以通過(guò)專用的編程器軟件和設(shè)備向芯片的寫入相應(yīng)的內(nèi)容,這是正常的操作方式。也可以通過(guò)寫內(nèi)存的指令向芯片的指定單元寫入16位的數(shù)據(jù),只是每一次的這種寫操作需要占用長(zhǎng)得多寫入

37、時(shí)間,例如幾百個(gè)微秒,可以通過(guò)運(yùn)行完成等待功能的子程序來(lái)加以保證。對(duì)58c65 rom 芯片執(zhí)行讀操作時(shí),需要保證正確的片選信號(hào)(/ce)為低點(diǎn)平,使能控制信號(hào)(/oe)為低電平,讀寫命令信號(hào)(/we)為高電平,讀58c65 rom 芯片的讀出時(shí)間與讀ram 芯片的讀出時(shí)間相同,無(wú)特殊要求;對(duì)58c65 rom 芯片執(zhí)行寫操作時(shí),需要保證正確的片選信號(hào)(/ce)為低電平,使能控制信號(hào)(/oe)為高電平,讀寫命令信號(hào)(/we)為低電平,寫58c65 rom 芯片的維持時(shí)間要比寫ram 芯片的操作時(shí)間長(zhǎng)得多。為了防止對(duì)58c65 rom芯片執(zhí)行誤寫操作,可通過(guò)把芯片的使能控制引腳(/oe)接地來(lái)保

38、證,或者確保讀寫命令信號(hào)(/we)恒為高電平。串行接口芯片的8位數(shù)據(jù)線引腳連接到數(shù)據(jù)總線db的低位字節(jié),它與cpu之間每次交換8位信息,屬于并行操作關(guān)系。串行接口芯片和設(shè)備之間的連接,是通過(guò)連接到設(shè)備端的另外一個(gè)串行接口芯片完成的,在兩端的接口芯片之間以串行方式實(shí)現(xiàn)通訊,即遵從一定的通訊協(xié)議,對(duì)8位的數(shù)據(jù)采用逐位傳送的方案處理,并把信號(hào)的電平從ttl電路的04v左右提高到正負(fù)12v或者012v左右,以增強(qiáng)信號(hào)傳送過(guò)程中的抗干擾能力,圖中的max202芯片就是采用倍壓方案完成電平轉(zhuǎn)換功能的,有了這個(gè)芯片就可以不再使用直流+12v和-12v兩路電源了。1.5 tec-xp16機(jī)的控制器部件 控制器

39、部件是計(jì)算機(jī)系統(tǒng)傳統(tǒng)的5大功能部件之一,其作用是依據(jù)指令內(nèi)容和指令的執(zhí)行步驟信號(hào)等向計(jì)算機(jī)的各個(gè)部件提供它們每一個(gè)步驟協(xié)同運(yùn)行所需要的控制信號(hào)。教學(xué)計(jì)算機(jī)系統(tǒng)同時(shí)實(shí)現(xiàn)了微程序和硬連線方案的兩種控制器,其總體組成如圖1.5.1所示。從兩種控制器的組成來(lái)看,都包括:程序計(jì)數(shù)器pc,是選用在運(yùn)算器的通用寄存器組中的r5實(shí)現(xiàn)的,圖中用虛線表示;指令寄存器ir,是選用2片8位的寄存器電路實(shí)現(xiàn)的,還用到一片傳送ir低位字節(jié)內(nèi)容到內(nèi)部總線ib的開關(guān)門電路;最重要的是一片有130多個(gè)輸入輸出管腳、由一萬(wàn)個(gè)門電路組成的cpld器件mach芯片,其內(nèi)部的線路組成和實(shí)現(xiàn)的功能都比較復(fù)雜,微程序控制器還包括確定微指令

40、執(zhí)行次序的一片am2910 芯片。圖1.5.1 教學(xué)機(jī)計(jì)算機(jī)控制器的總體組成 程序計(jì)數(shù)器pc可以在運(yùn)算器內(nèi)部完成加1運(yùn)算功能,產(chǎn)生下一條相鄰指令的地址;或者完成加一個(gè)相對(duì)轉(zhuǎn)移的偏移量,產(chǎn)生相對(duì)轉(zhuǎn)移指令的轉(zhuǎn)移地址;或者直接接收一個(gè)16位的指令地址,用在子程序調(diào)用或者跳轉(zhuǎn)指令中。 指令寄存器ir接收從內(nèi)存儲(chǔ)器讀出并傳送到內(nèi)部總線ib的指令內(nèi)容,其全部16位輸出送mach芯片的輸入引腳,其低8位內(nèi)容還經(jīng)一個(gè)有三態(tài)功能的開關(guān)門送到內(nèi)部總線ib。 am2910芯片用在微程序控制器中,用于以多種方式向控制存儲(chǔ)器提供下一條微指令的地址,控制微指令的執(zhí)行次序,解決的是指令執(zhí)行步驟的銜接問(wèn)題。 兩種控制器的主要

41、功能線路都集中到一片高集成度cpld器件(mach芯片)中實(shí)現(xiàn),在完成擴(kuò)展指令的教學(xué)實(shí)驗(yàn)中,可以不對(duì)mach芯片之外的電路作任何變動(dòng),全部操作都集中到修改描述mach 芯片功能的abel或vhdl語(yǔ)言的程序代碼,執(zhí)行編譯和下載操作,以及運(yùn)行調(diào)試這樣幾步工作。這是本教學(xué)計(jì)算機(jī)系統(tǒng)的一項(xiàng)顯著特色,對(duì)降低學(xué)生的學(xué)習(xí)難度,簡(jiǎn)化修改與擴(kuò)展控制器功能的操作,改善教學(xué)實(shí)驗(yàn)效果將起到重要作用。 從圖1.5.1可以看到,mach 器件內(nèi)部包含有微程序控制器中的控制存儲(chǔ)器、微指令寄存器、映射指令操作碼為微指令地址的maprom、產(chǎn)生微指令是否轉(zhuǎn)移信號(hào)cc的sccgal、實(shí)現(xiàn)微指令字中的下條微指令地址和maprom

42、輸出的下條微指令地址二者選其一的功能幾個(gè)部分的功能線路;包含有硬連線控制器的節(jié)拍發(fā)生器timing、控制信號(hào)產(chǎn)生部件兩部分線路;此外還實(shí)現(xiàn)了把兩種控制器各自提供的32位控制信號(hào)進(jìn)行二者選其一的功能。 與早期產(chǎn)品比較,還把用于中斷實(shí)驗(yàn)的電路、對(duì)控制器控制信號(hào)譯碼的dc2和dc1電路、為運(yùn)算器提供最低位進(jìn)位輸入信號(hào)、左右移位時(shí)提供給最高最低位的移位輸入信號(hào)的電路也放到了mach芯片之內(nèi)實(shí)現(xiàn),以盡量減少在主板上用到的中小規(guī)模電路數(shù)量。 mach器件內(nèi)部實(shí)現(xiàn)的電路,都是通過(guò)設(shè)計(jì)描述其功能的邏輯表達(dá)式體現(xiàn)出來(lái)的,這些邏輯表達(dá)式的分段清晰,實(shí)現(xiàn)的功能彼此獨(dú)立,可讀性比較強(qiáng),設(shè)計(jì)與變更設(shè)計(jì)容易,不必過(guò)多處理

43、功能線路之間的布線連接,可以保證更高的實(shí)驗(yàn)效率。這一設(shè)計(jì)結(jié)果也為更好地支持8位字長(zhǎng)的教學(xué)計(jì)算機(jī)、完成8位字長(zhǎng)計(jì)算機(jī)的教學(xué)實(shí)驗(yàn)帶來(lái)極大方便。設(shè)計(jì)描述mach芯片所實(shí)現(xiàn)功能的程序源代碼是設(shè)計(jì)控制器的主要工作,下面將詳細(xì)講解這些內(nèi)容。 在圖1.5.2中給出了mach器件的管腳編號(hào)和對(duì)應(yīng)的信號(hào)名稱。這些i/o管腳與外部其他線路的連接關(guān)系已經(jīng)通過(guò)印制電路板的布線固定下來(lái),不能試圖去變更它。mach的i/o管腳編號(hào)與信號(hào)名的對(duì)應(yīng)關(guān)系,在程序的說(shuō)明段中指定的,在程序的表達(dá)式段中,必須通過(guò)信號(hào)名稱來(lái)表示和使用功能電路的輸入輸出信號(hào)。 mach芯片被焊接在一塊小的電路板上,使用的電源是3.3v(不是5v),是5

44、v電源經(jīng)過(guò)一個(gè)二極管降壓后得到的。輸入輸出信號(hào)通過(guò)4個(gè)40針的接插頭與大板上的4個(gè)40孔的接插座實(shí)現(xiàn)連接,通常情況下,這塊小板不必拔下來(lái)。如果要插拔這塊小電路板,請(qǐng)一定要仔細(xì),方向要正確,小板上的文字方向不能朝左或者朝右,也不能倒過(guò)來(lái);位置要對(duì)準(zhǔn),每一個(gè)插針與對(duì)應(yīng)一個(gè)插孔對(duì)正,不能錯(cuò)位;插拔時(shí)盡量保持小板保持水平狀態(tài),不能有太大的傾斜角度;插拔時(shí)必須用力適度,力量太小無(wú)法完成插拔,也不能使用暴力,以防對(duì)電路板或者接插元件造成損壞。 有多個(gè)描述mach器件所實(shí)現(xiàn)的線路與運(yùn)行功能的abel語(yǔ)言的程序代碼文件,不同的控制器方案和不同的指令集合可以隨意組合方案,對(duì)16位的教學(xué)計(jì)算系統(tǒng),有用硬連線方案實(shí)

45、現(xiàn)的基本指令集合與用微程序方案實(shí)現(xiàn)的全指令集合的組合方案,有用硬連線方案實(shí)現(xiàn)的全指令集合與用微程序方案實(shí)現(xiàn)的基本指令集合的組合方案,有用兩種控制器實(shí)現(xiàn)的基本指令集合的組合方案,當(dāng)然也有只實(shí)現(xiàn)一種控制器的方案。當(dāng)然還有實(shí)現(xiàn)8位字長(zhǎng)的教學(xué)計(jì)算機(jī)系統(tǒng)的控制器的源代碼文件,下載不同的文件就能夠得到不同的教學(xué)機(jī)系統(tǒng)。 完成控制器的教學(xué)實(shí)驗(yàn),需要很好地掌握指令格式、指令編碼、尋址方式和指令功能等內(nèi)容,需要熟悉教學(xué)計(jì)算機(jī)的總體組成和各個(gè)部件的運(yùn)行原理。為此,適當(dāng)?shù)鼗ㄙM(fèi)一點(diǎn)時(shí)間學(xué)懂已有指令執(zhí)行步驟的劃分方案,各部件要求使用的控制信號(hào)。對(duì)微程序控制器還要懂得微指令在控制存儲(chǔ)器中的地址分配和形成微指令地址的方案;

46、對(duì)硬連線控制器還要懂得節(jié)拍發(fā)生器的設(shè)計(jì)和運(yùn)行原理,控制信號(hào)產(chǎn)生部件的設(shè)計(jì)和提供控制信號(hào)的方案等內(nèi)容。一句話,就是需要初步懂得控制器的組成和運(yùn)行原理的知識(shí),教學(xué)計(jì)算機(jī)控制器線路的實(shí)際組成。教學(xué)實(shí)驗(yàn)的目的,是在初步理解的基礎(chǔ)上,通過(guò)自己動(dòng)手,在已有指令的基礎(chǔ)上再擴(kuò)展若干條指令,把控制器設(shè)計(jì)的整個(gè)過(guò)程親自經(jīng)歷一遍,把尚未完全理解的內(nèi)容設(shè)法理解正確,對(duì)認(rèn)識(shí)尚膚淺的、甚至于拿不太準(zhǔn)的知識(shí)掌握得更深刻,在學(xué)習(xí)書本知識(shí)的同時(shí),有意識(shí)地通過(guò)實(shí)踐來(lái)獲取知識(shí)是人類成長(zhǎng)進(jìn)步的重要環(huán)節(jié)。 圖1.5.2 mach器件的管腳位置、編號(hào)和對(duì)應(yīng)的信號(hào)名稱1.6 tec-xp16機(jī)的輸入輸出及中斷一、串行i/0接口 串行接口是

47、計(jì)算機(jī)主機(jī)和某些設(shè)備之間實(shí)現(xiàn)通信,硬件造價(jià)比較廉價(jià)、標(biāo)準(zhǔn)化程度比較高的一種輸入輸出接口線路,缺點(diǎn)是通信的速度比較低。從在程序中使用串行接口芯片的角度看,接口芯片內(nèi)有用戶可以訪問(wèn)的4個(gè)寄存器,分別是接收cpu送來(lái)數(shù)據(jù)的輸出數(shù)據(jù)緩沖寄存器,向cpu提供數(shù)據(jù)的輸入數(shù)據(jù)緩沖寄存器,接收cpu發(fā)來(lái)的控制命令的控制寄存器,向cpu提供接口運(yùn)行狀態(tài)的狀態(tài)寄存器,必須有辦法區(qū)分這4個(gè)寄存器。接口芯片中還有執(zhí)行數(shù)據(jù)串行和并行轉(zhuǎn)換的電路,接口識(shí)別(片選)電路等。 在教學(xué)計(jì)算機(jī)系統(tǒng)中,配置了兩路串行接口,其線路組成和信息傳送路徑已在圖1.1.4中給出。串行接口芯片的8位數(shù)據(jù)線引腳連接到數(shù)據(jù)總線db的低位字節(jié),它與c

48、pu之間每次交換8位信息,屬于并行操作關(guān)系。串行接口芯片和設(shè)備之間的連接,是通過(guò)連接到設(shè)備端的另外一個(gè)串行接口芯片完成的,在兩端的接口芯片之間以串行方式實(shí)現(xiàn)通訊,即遵從一定的通訊協(xié)議,對(duì)8位的數(shù)據(jù)采用逐位傳送的方案處理,并把信號(hào)的電平從ttl電路的04v左右提高到正負(fù)12v或者012v左右,以增強(qiáng)信號(hào)傳送過(guò)程中的抗干擾能力,通??梢赃x用max202芯片使用倍壓技術(shù)完成電平轉(zhuǎn)換功能,就可以不再使用直流+12v和-12v兩路電源。 串行接口用于執(zhí)行數(shù)據(jù)的輸入輸出操作。一次輸入或輸出操作通常需要用兩個(gè)操作步驟完成,第一步是為接口芯片提供入出端口地址,即把指令寄存器低位字節(jié)的內(nèi)容(8位的io端口地址)

49、經(jīng)過(guò)內(nèi)部總線和運(yùn)算器部件寫進(jìn)地址寄存器ar,第二步是執(zhí)行輸入或者輸出操作,若執(zhí)行輸入指令in,則應(yīng)從接口芯片讀出一個(gè)8位的數(shù)據(jù)并經(jīng)過(guò)數(shù)據(jù)總線db和內(nèi)部總線ib寫進(jìn)寄存器堆中的r0寄存器,若執(zhí)行輸出指令out,則需要把寄存器堆中的r0寄存器的內(nèi)容經(jīng)過(guò)內(nèi)部總線ib和數(shù)據(jù)總線db寫入接口芯片。接口芯片與輸入輸出設(shè)備之間的數(shù)據(jù)傳送過(guò)程無(wú)需另外管理,會(huì)自動(dòng)完成。 教學(xué)計(jì)算機(jī)使用8位的io端口地址,安排在in和out指令的低位字節(jié),指令的高8位用作指令操作碼碼,16位的指令編碼全部占滿,已經(jīng)不能再指定要使用的通用寄存器,最終決定對(duì)in和out指令默認(rèn)使用運(yùn)算器中的r0完成輸入輸出操作。io地址端口的高4位

50、(最高一位的值一定為1)用于通過(guò)譯碼電路產(chǎn)生接口芯片的8個(gè)片選信號(hào),低4位用于選擇一個(gè)芯片內(nèi)最多16個(gè)寄存器。教學(xué)計(jì)算機(jī)中,只為每個(gè)串行口芯片分配了兩個(gè)地址,第一路串行接口的端口地址為16進(jìn)制的80/81,第二路串行接口的端口地址可以由用戶從90/91-f0/f1這8對(duì)中選擇,把譯碼器的一個(gè)輸出連接到接口芯片的片選信號(hào)引腳。兩個(gè)端口地址如何能夠選擇接口芯片內(nèi)的4個(gè)寄存器呢?請(qǐng)注意,4個(gè)寄存器中的兩個(gè)只用于輸入,僅對(duì)in指令有用,另外兩個(gè)只用于輸出,僅對(duì)out指令有用。2個(gè)端口地址和2條輸入輸出指令有如下4 種組合,分別實(shí)現(xiàn)如下4 項(xiàng)功能:in 80 完成從接口芯片輸入數(shù)據(jù)緩沖器讀出8 位數(shù)據(jù)并

51、傳送到r0 寄存器低位字節(jié);out 80 完成把r0 寄存器低位字節(jié)的8 位數(shù)據(jù)寫入到接口芯片的輸出數(shù)據(jù)緩沖器;in 81 完成從接口芯片狀態(tài)寄存器讀出8 位接口狀態(tài)信息并送r0 寄存器低位字節(jié);out 81 完成把r0 寄存器低位字節(jié)的8 位命令信息寫入到接口芯片的命令寄存器??梢钥吹剑紨?shù)地址用于輸入輸出數(shù)據(jù),奇數(shù)地址用于輸入輸出狀態(tài)或命令信息。 在教學(xué)計(jì)算機(jī)系統(tǒng)中的兩路串行接口,其中的一路全部連接線已經(jīng)連接好,運(yùn)行之前的初始化操作也由監(jiān)控程序完成,已經(jīng)處于正常的運(yùn)行狀態(tài),作為教學(xué)機(jī)與pc機(jī)仿真終端相連接的接口使用。另一路串行接口更多的是用于擴(kuò)展的教學(xué)實(shí)驗(yàn)?zāi)康?,它的一部分連接線已經(jīng)連接好,

52、還有少數(shù)連接線需要由實(shí)驗(yàn)者通過(guò)跳接線進(jìn)行連通,并且在自己的程序中執(zhí)行對(duì)此串行口的初始化操作,這之后才能使用這一路串行接口執(zhí)行輸入輸出操作。這樣做的目的,是為了加深同學(xué)對(duì)串行口的線路連接、初始化、執(zhí)行輸入輸出操作過(guò)程的理解程度,否則雖然在程序中通過(guò)in和out指令完成了串行接口的輸入輸出操作的實(shí)驗(yàn),但是對(duì)串行接口線路的認(rèn)識(shí)并不全面,把應(yīng)該由同學(xué)執(zhí)行的一些操作保留給同學(xué)完成是必要的。二、中斷 在計(jì)算機(jī)系統(tǒng)中,中斷處理是非常重要的一項(xiàng)功能。在教學(xué)計(jì)算機(jī)系統(tǒng)中,也提供了中斷處理的能力。用3個(gè)按鈕開關(guān)作為中斷源,在mach器件內(nèi)部實(shí)現(xiàn)了保存中斷請(qǐng)求、中斷優(yōu)先級(jí)編碼、中斷響應(yīng)前的優(yōu)先級(jí)比較、中斷響應(yīng)與返回

53、過(guò)程中的中斷優(yōu)先級(jí)的切換和現(xiàn)場(chǎng)信息恢復(fù)等全部硬件實(shí)現(xiàn)的功能。還設(shè)置了處理中斷向量的硬件支持。這樣就可以完成有3 級(jí)中斷嵌套的教學(xué)實(shí)驗(yàn)。教學(xué)計(jì)算機(jī)中提供了完成中斷處理的全部硬件線路和實(shí)現(xiàn)方案,有利于幫助同學(xué)準(zhǔn)確深入地掌握完成中斷處理的原理和過(guò)程。第二章 tec-xp16實(shí)驗(yàn)計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)一 基礎(chǔ)匯編語(yǔ)言程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模?、學(xué)習(xí)和了解tec-xp16教學(xué)實(shí)驗(yàn)系統(tǒng)監(jiān)控命令的用法。2、學(xué)習(xí)和了解tec-xp16教學(xué)實(shí)驗(yàn)系統(tǒng)的指令系統(tǒng)。3、學(xué)習(xí)簡(jiǎn)單的tec-xp16教學(xué)實(shí)驗(yàn)系統(tǒng)匯編程序設(shè)計(jì)。二、預(yù)習(xí)要求:1、學(xué)習(xí)tec-xp16機(jī)監(jiān)控命令的用法。2、學(xué)習(xí)tec-xp16機(jī)的指令系統(tǒng)、匯編程

54、序設(shè)計(jì)及監(jiān)控程序中子程序調(diào)用。3、學(xué)習(xí)tec-xp16機(jī)的使用,包括開關(guān)、指示燈、按鍵等。4、了解實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)步驟和要求。三、實(shí)驗(yàn)步驟:在教學(xué)計(jì)算機(jī)硬件系統(tǒng)上建立與調(diào)試匯編程序有幾種操作辦法。第一種辦法,是使用監(jiān)控程序的a命令,逐行輸入并直接匯編單條的匯編語(yǔ)句,之后使用g命令運(yùn)行這個(gè)程序。缺點(diǎn)是不支持匯編偽指令,修改已有程序源代碼相對(duì)麻煩一些,適用于建立與運(yùn)行短小的匯編程序。第二種辦法,是使用增強(qiáng)型的監(jiān)控程序中的w命令建立完整的匯編程序,然后用m命令對(duì)建立起來(lái)的匯編程序執(zhí)行匯編操作,接下來(lái)用g命令運(yùn)行這個(gè)程序。適用于比較短小的程序。此時(shí)可以支持匯編偽指令,修改已經(jīng)在內(nèi)存中的匯編程序源代碼的操

55、作更方便一些。第三種辦法,是使用交叉匯編程序asec,首先在pc機(jī)上,用pc機(jī)的編輯程序建立完整的匯編程序,然后用asec對(duì)建立起來(lái)的匯編程序執(zhí)行匯編操作,接下來(lái)把匯編操作產(chǎn)生的二進(jìn)制的機(jī)器指令代碼文件內(nèi)容傳送到教學(xué)機(jī)的內(nèi)存中,就可以運(yùn)行這個(gè)程序了。適用于規(guī)模任意大小的程序。在這里我們只采用第一種方法。在tec-xp16機(jī)終端上調(diào)試匯編程序要經(jīng)過(guò)以下幾步:1、使教學(xué)計(jì)算機(jī)處于正常運(yùn)行狀態(tài)(具體步驟見(jiàn)附錄聯(lián)機(jī)通訊指南)。2、使用監(jiān)控命令輸入程序并調(diào)試。 用監(jiān)控命令a輸入?yún)R編程序a 或 a 主存地址如:在命令行提示符狀態(tài)下輸入:a 2000 ;表示該程序從2000h(內(nèi)存ram區(qū)的起始地址)地址開始屏幕將顯示:2000:輸入如下形式的程序:2000: mvrd r0,aaaa ;mvrd 與r0 之間有且只有一個(gè)空格,其他指令相同2002: mvrd r1,55552004: add r0,r12005:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論