版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、計算機組成原理實驗報告計算機組成原理實驗報告一、 實驗計算機的組成1、 軟件組成軟件系統(tǒng)的組成和實現(xiàn)功能:軟件:解釋 BASIC語言匯編語言支持監(jiān)控程序(指令)級模擬教學機模擬:運算器、控制器模擬(微程序級或硬連線控制器級模擬)主存儲器模擬,總線、接口模擬輸入設備/ 輸出設備模擬運行環(huán)境:PC機,Windows系統(tǒng)從計算機組成原理課程教學實驗的角度看,該計算機軟件系統(tǒng)組成也是完整的,支持簡單的高級語言BASIC(包括浮點運算指令和基本函數(shù)運算功能),匯編語言(支持基本偽指令功能)和二進制的機器語言,配有自己的監(jiān)控程序,以及PC機仿真終端程序等。2、 硬件組成硬件系統(tǒng)的組成和實現(xiàn)功能:軟件:解釋
2、 BASIC 語言匯編語言支持監(jiān)控程序硬件:運算器,控制器(多種實現(xiàn):微程序或硬連線控制器,中小規(guī)模器件或FPGA器件實現(xiàn))主存儲器,總線,接口輸入設備,輸出設備硬件與電路:邏輯器件和設備由以上可知,該計算機硬件系統(tǒng)組成中,功能部件是完整齊備的,運算器、控制器、存儲器、輸入輸出接口、計算機總線等配備齊全,還可以接通PC機仿真終端執(zhí)行輸入輸出操作,同時實現(xiàn)了微程序和硬連線兩種方案控制器。從CPU的具體設計和實現(xiàn)技術來說,既支持用中小集成度器件實現(xiàn)CPU的方案,也支持選用高集成度的FPGA門陣列實現(xiàn)CPU的方案,體現(xiàn)了CPU系統(tǒng)設計的最新水平。運算器與控制器1)控制器控制器概述:控制器分別用微程序
3、方式與硬布線方式兩種方案實現(xiàn), 實驗者可以方便地選擇使用其中任何一種。這能方便地比較兩種控制器各自的優(yōu)缺點, 和設計過程的相同的、不同的步驟與方法。在選用器件時, 微程序方案中選用了美國AMD公司的微程序定序器Am2910芯片, 保證微程序設計的規(guī)范與實用性;控存體選用唯讀存儲器(ROM)芯片, 通過對該ROM的編程寫入方式支持動態(tài)微程序設計。硬布線方案中, 節(jié)拍邏輯與時序控制信號形成部件(組合邏輯線路)選用了GAL20V8 現(xiàn)場可編程器件和Macro Array CMOS High density(簡寫為MACH)器件, 這對簡化控制器的邏輯設計與實現(xiàn)至關重要,也有利于進一步掌握數(shù)字系統(tǒng)設計
4、自動化和邏輯模擬的新知識??刂破鞑考敿毥榻B:組合邏輯的控制器主要由程序計數(shù)器PC(選用運算器內(nèi)的一個通用累加器實現(xiàn),未明顯表示的圖中)、指令寄存器IR、節(jié)拍發(fā)生器Timing、和時序控制信號產(chǎn)生部件MACH435(或MACH5)芯片等組成。硬布線控制器(又稱組合邏輯)的主體部分由程序計數(shù)器PC(16位長度,是Am2901的R5),指令寄存器IR(16位長度),節(jié)拍發(fā)生器(4位觸發(fā)器的節(jié)拍狀態(tài))和時序控制信號形成部件(1片100條引腳的現(xiàn)場可編程的CPLD器件)4部分組成。程序計數(shù)器PC用于保存下一條將要執(zhí)行的指令在內(nèi)存中的單元地址,有增量功能(PC+1PC),并可以接受新的指令地址。在到內(nèi)存
5、讀取指令之前,需要把PC中的內(nèi)容送到內(nèi)存地址寄存器,給出被讀指令在內(nèi)存中的單元地址。在教學計算機中,程序計數(shù)器PC選用運算器內(nèi)部的一個16位的累加器實現(xiàn)。指令寄存器IR用于保存當前正在執(zhí)行的指令的主要內(nèi)容,在讀取指令的周期接收從內(nèi)存中讀出來的一條指令,以便提供本指令的操作碼和使用的數(shù)據(jù)或者數(shù)據(jù)地址。在教學計算機中,指令寄存器IR選用兩片由8位的D觸發(fā)器構成的寄存器實現(xiàn)。節(jié)拍發(fā)生器Timing用于使用幾個觸發(fā)器的不同的編碼狀態(tài)來區(qū)分和標示指令的執(zhí)行步驟,指令執(zhí)行步驟的銜接是通過節(jié)拍發(fā)生器的編碼狀態(tài)轉換完成的。在教學計算機中,節(jié)拍發(fā)生器Timing選用一片簡單PLD器件GAL20V8芯片實現(xiàn)。時序
6、控制信號產(chǎn)生部件用于產(chǎn)生并提供每一條指令的每一個執(zhí)行步驟使用的全部時序控制信號,它要依據(jù)指令寄存器的操作碼和節(jié)拍發(fā)生器的狀態(tài)編碼信號,可能還有運算器運算產(chǎn)生的標志位信號(C、Z、S)等,通過由與_或兩級門電路產(chǎn)生并提供出一條指令的一個執(zhí)行步驟使用的全部控制信號,這些信號可以直接送到每個被控制對象,或者經(jīng)過譯碼器送到被控制對象。在教學計算機中,時序控制信號產(chǎn)生部件選用一片有100個引腳的 CPLD 器件實現(xiàn),兩個譯碼器選用三八譯碼器 74LS138 芯片實現(xiàn)。教學計算機的硬布線控制器組成框圖2)運算器運算器概述:運算器中配置了兩組獨立的8位字長的運算器,各自由2片位片結構的運算器器件組成;還有四
7、位的狀態(tài)標志寄存器和教學實驗所需的相關邏輯部件。全部的算術與邏輯運算均在這里完成; 還完成幾種尋址方式的實際地址計算; 它也是主要的數(shù)據(jù)、地址傳送的通路。要特別說明的一點是, 堆棧指針SP和控制器中的程序計數(shù)器PC,都是用這里的幾個通用寄存器來實現(xiàn)的, 以節(jié)省器件與簡化實驗機的實現(xiàn)。運算器部件詳細介紹:教學計算機的運算器部件的主體由4片4位的運算器芯片Am2901彼此串接構成。它輸出16位的數(shù)據(jù)運算的結果(用Y表示)和4個結果特征位(用Cy、F=0000、OVER、F15標志),它的輸入(用D表示)只能來自于內(nèi)部總線。確定運算器運算的數(shù)據(jù)來源、運算功能、結果處置方案,需要使用控制器提供的I8I
8、0、B3B0、A3A0共17個信號。運算器的輸出直接連接到地址寄存器AR的輸入引腳,用于提供地址總線的信息來源。運算器的輸出還經(jīng)過兩個8位的244器件的控制(使用DCI譯碼器的 /YTOIB信號)被送到內(nèi)部總線IB,用于把運算器中的數(shù)據(jù)或者運算結果寫入內(nèi)存儲器或者輸入輸出接口芯片。運算器產(chǎn)生的4個結果特征位的信息需要保存,為此必須設置一個4位的標志寄存器FLAG,用于保存這4位結果特征信息,標志寄存器的輸出分別用C、Z、V、S表示??刂茦酥炯拇嫫骱螘r和如何接收送給它的信息,需要使用控制器提供的SST2SST0三位信號。運算器還需要按照指令執(zhí)行的要求,正確地得到最低位的進位輸入信號,最低位和最高
9、位的移位輸入信號,為此還需要配置另外一個標示為SHIFT的線路,在控制器提供的SSH和SCI1SCI0三位信號的控制下,產(chǎn)生運算器最低位的進位輸入信號,最低位和最高位的移位輸入信號。運算器主要芯片及功能介紹:Am2901芯片是一個4位的位片結構的、完整的運算器器件,其內(nèi)部組成如下圖所示,作為教學內(nèi)容的實例具有很好的典型性。4輸出Y/OE二選一FA L UF=0000I3Cn+4I4CnOVRI5SF3R二選一三選一I0I1 4輸入DI2B鎖存器A鎖存器A 16個 B 通用寄存器4A地址 Q寄存器B地址4三選一I6I7I8Q3Q0 三選一RAM 0RAM 3 Am2901芯片的內(nèi)部組成框圖1).
10、 Am2901的內(nèi)部組成從圖上可以看到,該芯片的第一個組成成分是一個4位的算邏運算部件ALU,它的輸出為F,兩路輸入分別用R和S標記,還有送入ALU最低位的進位信號Cn。它能實現(xiàn)R+S、S-R、R-S三種算術運算功能,和RS、RS、RS、RS、RS五種邏輯運算功能。在給出運算結果的同時,還送出向高位的進位輸出信號Cn+4,溢出標志信號OVR,最高位的狀態(tài)信號F3(可能用作符號位),以及運算結果為零的標志信號F=0000。該芯片的第二個組成成分是由16個4位的通用寄存器組成的寄存器組。它是一個用雙端口(A口和B口)控制讀出、單端口(B口)控制寫入的部件。為了對其進行讀寫,需通過A地址(寄存器編號
11、)、B地址(寄存器編號)指定被讀寫的寄存器。兩路讀出數(shù)據(jù)分別用A、B標記,經(jīng)鎖存器線路可以送到ALU的R、S輸入端的多路選擇器,A口讀出數(shù)據(jù)還可以用作該芯片的可選輸出信號之一。寄存器組的寫入數(shù)據(jù)由一組多路選擇器給出,并由B地址選擇寫入的寄存器。該芯片的第三個組成成分是一個4位的Q寄存器,主要用于實現(xiàn)硬件的乘法、除法指令,能對本身的內(nèi)容完成左、右移位的功能,能接收ALU的輸出,輸出送到ALU 的S 輸入端。該芯片的其余組成成分是5組多路數(shù)據(jù)選擇器電路,每組都由4套電路組成,一套電路對應一個數(shù)據(jù)位,通過它們,實現(xiàn)芯片內(nèi)部上述三個組成成分之間的聯(lián)系,也實現(xiàn)該芯片和其外界信息的輸入與輸出操作,這包括:
12、 一組4位的二選一器件控制把運算器內(nèi)的兩路4位輸出數(shù)據(jù)(A口數(shù)據(jù)、ALU的運算結果數(shù)據(jù))送出芯片,標記為Y; 一組4位的二選一和 一組4位的三選一器件,分別用于組合外部送來信息D,通用寄存器組的雙路讀出信息A和B,乘商寄存器Q的信息,以決定ALU的兩路輸入R和S的數(shù)據(jù)來源; 一組4位的三選一器件,完成從ALU的輸出結果,ALU輸出結果左移一位的值,ALU輸出結果右移一位的值中選擇其一,作為通用寄存器的寫入信息,實現(xiàn)的是通用接存器接收及移位功能。在左右移位時,其最高位和最低位可以送出或接收相應位的信息,圖中用RAM3和RAM0標記,它們都是由能進行雙向傳送的三態(tài)門電路實現(xiàn)的; 一組4位的三選一器
13、件,用于完成Q寄存器內(nèi)容的左右移位,或接收ALU的輸出結果的操作功能。在進行左右移位操作時,與通用寄存器移位類似的是,這里存在Q3和Q0的雙向傳送問題。2)AR由什么芯片構成,引腳,讀寫工作原理結構型式,其主要電器特性的典型值如下(不同廠家具體值有差別):型號 TPD PD 讀寫工作原理:輸出端 Q0Q7 可直接與總線相連。當三態(tài)允許控制端 OE 為低電平時,Q0Q7為正常邏輯狀態(tài),可用來驅動負載或總線。當 OE 為高電平時,Q0Q7 呈高阻態(tài),即不驅動總線,也不為總線的負載,但鎖存器內(nèi)部的邏輯操作不受影響。當鎖存允許端 LE 為高電平時,Q 隨數(shù)據(jù) D 而變。當 LE 為低電平時,D 被鎖存
14、在已建立的數(shù)據(jù)電平。當 LE 端施密特觸發(fā)器的輸入滯后作用,使交流和直流噪聲抗擾度被改善 400mV。74Ls373內(nèi)部結構圖如下所示:引腳:D0D7 數(shù)據(jù)輸入端OE 三態(tài)允許控制端(低電平有效)LE 鎖存允許端Q0Q7 輸出端真值表: DnLEOEQnHHLHLHLLXLLQ0XXH高阻3)查找送往AR的PC是2901中的R幾?R54)74LS244及74LS245的內(nèi)部結構、功能74LS244為3態(tài)8位緩沖器,一般用作總線驅動器。74LS244沒有鎖存的功能。地址鎖存器就是一個暫存器,它根據(jù)控制信號的狀態(tài),將總線上地址代碼暫存起來。8086/8088數(shù)據(jù)和地址總線采用分時復用操作方法,即用
15、同一總線既傳輸數(shù)據(jù)又傳輸?shù)刂?。當微處理器與存儲器交換信號時,首先由CPU發(fā)出存儲器地址,同時發(fā)出允許鎖存信號ALE給鎖存器,當鎖存器接到該信號后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸數(shù)據(jù)。 它主要用于三態(tài)輸出,作為地址驅動器、時鐘驅動器、總線驅動器和定向發(fā)送器等。其真值表如下:74Ls244真值表74LS244真值表L表示低電平H表示高電平X表示不定狀態(tài)Z表示高阻態(tài)74ls24574LS245是我們常用的芯片,用來驅動led或者其他的設備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。當8051單片機的P0口總線負載達
16、到或超過P0最大負載能力時,必須接入74LS245等總線驅動器。當片選端/CE低電平有效時,DIR=“0”,信號由 B 向 A 傳輸;(接收)DIR=“1”,信號由 A 向 B 傳輸;(發(fā)送)當CE為高電平時,A、B均為高阻態(tài)。由于P2口始終輸出地址的高8位,接口時74LS245的三態(tài)控制端1G和2G接地,P2口與驅動器輸入線對應相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。8051的/RD和/PSEN相與后接DIR,使得RD和PSEN有效時,74LS245輸入(P0.1D1),其它時間處于輸出(P0.1D1)。5)138譯碼器與139譯碼器比較 139譯碼器內(nèi)部138譯碼
17、器內(nèi)部為38譯碼器,139是兩個獨立的24譯碼器。二、實驗機工作原理2.1、TEC-XP計算機組成原理實驗箱簡介1.教學機系統(tǒng)配置了兩個不同實現(xiàn)方案的CPU系統(tǒng),一個CPU沿襲傳統(tǒng)的設計思路,由中小規(guī)模的器件組成;另一個CPU參考國外著名大學的設計思路用大規(guī)模的FPGA器件設計實現(xiàn)。2.教學機的機器字長16位, 即運算器、主存、數(shù)據(jù)總線、地址總線都是16位。3.指令系統(tǒng)支持多種基本尋址方式。其中一部分指令已實現(xiàn),用于設計監(jiān)控程序和用戶的常規(guī)匯編程序,尚保留多條指令供實驗者自己實現(xiàn)。4.主存最大尋址空間是18K字,由基本容量為8K(字節(jié)或16位的字)的ROM和2K(字節(jié)或16位的字)的RAM存儲
18、區(qū)域組成。還可以進一步完成存儲器擴展的教學實驗。5.原理上講,主時鐘脈沖的頻率可在幾百KHz近2MHz之間選擇。6.運算器由4片位片結構器件級聯(lián)而成,片間用串行進位方式傳遞進位信號。ALU實現(xiàn)8種算術與邏輯運算功能,內(nèi)部包括16個雙端口讀出、單端口寫入的通用寄存器, 和一個能自行移位的乘商寄存器。設置C(進位)、Z(結果為0)、V(溢出)和S(符號位)四個狀態(tài)標志位。7.控制器采用微程序和硬布線兩種控制方案實現(xiàn),可由實驗者自由選擇。實驗人員可方便地修改已有設計,或加進若干條自己設計與實現(xiàn)的新指令,新老指令同時運行。8.主機上安裝有兩路INTEL8251串行接口,一路出廠時已經(jīng)實現(xiàn),可直接接計算
19、機終端,或接入一臺PC機作為自己的仿真終端;另一路保留學生擴展實現(xiàn)。選用了MAX202倍壓線路,以避免使用+12V和-12V電源。9.在主板的右下方,配置了完成中斷教學實驗的全套線路,可以實現(xiàn)三級中斷和中斷嵌套。10.系統(tǒng)實現(xiàn)多種運行方式,可以單步/連續(xù)運行主存儲器的指令或程序,也可以執(zhí)行一條或若干條通過數(shù)據(jù)開關手動置入的指令。11.主板上設置數(shù)據(jù)開關和微型開關、按鍵和指示燈,支持最低層的手工操作方式的輸入/輸出,通過指示燈來顯示重要的數(shù)據(jù)或控制信號的狀態(tài),可以完成機器調(diào)試和故障診斷。板上還有支持教學實驗用的一定數(shù)量的跳線夾。12.實驗機硬件系統(tǒng),全部功能部件分區(qū)域劃分在大一些的水平放置的一塊
20、印制電路板的不同區(qū)域,所有器件都用插座插接在印制板上,便于更換器件。13.實驗計算機使用單一的5V、最大電流3A的直流模塊電源,所耗電流在1.52.5A之間。電源模塊安裝在水平電路板右上角位置,交流220V通過電源接線插到機箱后側板,經(jīng)保險絲、開關連接到電路板上,開關安放在機箱右側靠后位置,方便操作且比較安全。13.兩路的串行接口的接插座安放在機箱后側板以方便接線插拔和機箱蓋的打開關閉。2.2、教學計算機的指令執(zhí)行流程按照TEC-XP教學計算機指令的功能和它們的執(zhí)行步驟,可把指令劃分成為如下4組。A組: 基本指令 ADD,SUB, AND,OR,XOR,CMP, TEST,MVRR,INC,
21、DEC,SHR,SHL,JR,JRC,JRNC,JRZ,JRNZ擴展指令 ADC,SBB, NOT,RCL,RCR,ASR, STC,CLC,EI,DI, JRS,JRNS, JMPRB組: 基本指令 LDRR,STRR, PUSH,POP,PSHF,POPF,MVRD, IN,OUT, JMPA, RETC組: 擴展指令 CALR,LDRA,STRA,,LDRX,STRXD組: 基本指令 CALA擴展指令 TRETA組指令完成的是通用寄存器之間的數(shù)據(jù)運算或傳送,和其它幾項特殊的操作,例如CLC和STC指令,在讀取指令之后可一步完成。B組指令完成的是一次內(nèi)存讀、寫操作,或一次IO設備的讀、寫操
22、作,在讀取指令之后可二步完成,第一步用于向地址寄存器送入16位的(或8位的IO端口)地址,第二步完成內(nèi)存或外圍設備的讀、寫操作。C組指令中的4條指令,完成的是2次內(nèi)存儲器的讀、寫操作,正常情況要用4步完成,每一次內(nèi)存儲器的讀、寫操作,都要經(jīng)過傳送地址和數(shù)據(jù)讀寫這樣兩步;但在這里卻只需要3步即可,因為頭一次讀出的數(shù)據(jù)就是下一次讀寫操作要使用的地址信息,讀出之后直接(或經(jīng)過一次加法運算)將其寫入地址寄存器,就可以省掉第二次內(nèi)存儲器的讀、寫操作過程中的需要的傳送地址的步驟。CALR指令先用2步保存PC內(nèi)容(子程序調(diào)用指令的后續(xù)指令地址)到堆棧,第3步把寄存器中的子程序入口地址傳送到程序計數(shù)器PC中。
23、D組指令完成的也是2次內(nèi)存儲器的讀、寫操作,在讀取指令之后可4步完成。全部指令又被劃分為基本指令(29條)和擴展指令(19條)兩大類,兩類指令合在一起才構成一套比較完整的指令系統(tǒng)?;局噶钜呀?jīng)由生產(chǎn)廠家完成設計并實現(xiàn),被用來支持監(jiān)控程序和簡單的匯編語言程序設計,設計結果作為教學內(nèi)容的實例寫進了教材中。擴展指令則保留給實驗者在控制器部件的教學實驗中自己動手來設計和實現(xiàn),對擴展指令的設計結果在教師用書中給出。在運行BASIC語言解釋程序時,會用到大部分的擴展指令,全指令集的設計結果已經(jīng)做成一個文件提供給使用者,只需把這個文件的內(nèi)容下載到MACH芯片中,教學計算機就可以支持前面給出的全部48條指令。
24、教學計算機的使用者還可以設計實現(xiàn)自己選擇的其他一些指令。接下來是劃分指令執(zhí)行步驟和安排每個步驟所執(zhí)行的處理功能,得到的設計結果,即指令執(zhí)行流程如圖2-17所示。在4組指令中,屬于B組的指令都是基本指令,屬于C組的指令都是擴展指令,在A組、D組中都同時含有基本指令和擴展指令。R4 0, 關中斷1000 按RESET鍵B、C、D組指令0000檢查有無中斷請求無讀 取 指 令 AR PC,PC PC+10110B組指令01000010讀、寫內(nèi)存或讀、寫外設讀內(nèi)存,IR 讀出指令傳送地址AR 地址D組指令C組指令A組指令011100110101讀寫內(nèi)存或寄存器間傳送傳送地址AR 地址寄存器之間的數(shù)據(jù)運
25、算或傳送 教學計算機的指令執(zhí)行流程圖圖中的每一個方框代表一個節(jié)拍,表示指令的一個執(zhí)行步驟。方框內(nèi)部的文字簡要說明在該節(jié)拍中應該完成的主要操作功能。方框之間的帶箭頭的連線表示節(jié)拍狀態(tài)的轉換次序和方向。箭頭線旁邊有文字說明的,表示從前一個節(jié)拍轉換為當前節(jié)拍的條件,沒有文字說明的,表示無條件地從前一個節(jié)拍轉換為當前節(jié)拍。每個方框左上角的4位數(shù)字,是為該節(jié)拍分配的節(jié)拍狀態(tài)編碼。前面已經(jīng)講到,把教學計算機全部指令按其應完成的功能和執(zhí)行步驟情況,劃分成A、B、C、D共4組。從指令流程圖上可以看到,在完成讀取指令之后,即已經(jīng)得知指令操作碼的前提下,節(jié)拍發(fā)生器就按這4類指令的劃分情況,分別進入到各自不同的節(jié)拍
26、序列。其中狀態(tài)編碼為1000的節(jié)拍完成把0值送到程序計數(shù)器PC,為啟動監(jiān)控程序做好準備,只在教學計算機系統(tǒng)加電啟動時被執(zhí)行一次,在教學計算機正常運行的過程中不會進入這個節(jié)拍。狀態(tài)編碼為0000和0010的兩個節(jié)拍完成讀取指令的功能,公用于所有指令,是每一條指令開始執(zhí)行時必須首先完成的兩個操作步驟。圖中用虛線菱形框表示的“響應與處理中斷請求”的動作,在相鄰兩條指令進行切換的時刻,即前一條指令已經(jīng)結束、下一條指令尚未開始的時刻,完成檢查有無中斷請求的功能,這個檢查步驟也公用于所有指令,并依據(jù)檢查結果進行不同的處理,無中斷請求時,就開始下一條指令的執(zhí)行過程,有中斷請求時則進入中斷響應和處理的過程,處
27、理起來略顯復雜,等到講解中斷的時候再詳細說明。其他節(jié)拍用于不同指令,具體說明如下。A組指令將進入標記為0011狀態(tài)的節(jié)拍,用1步完成寄存器之間的數(shù)據(jù)運算或傳送;B組指令將進入標記為0110狀態(tài)的節(jié)拍,再經(jīng)過標記為0100的節(jié)拍,用2步完成1次對主存儲器或IO設備的讀寫操作;C組指令將進入標記為0110狀態(tài)的節(jié)拍,再經(jīng)過標記為0111的節(jié)拍、0101的節(jié)拍,用3步完成2次內(nèi)存儲器的讀寫操作,前2個節(jié)拍完成讀主存儲器的同時,還把讀出內(nèi)容傳送到地址寄存器,第3個節(jié)拍直接使用該地址完成第二次對主存儲器的讀寫操作;CALR指令是一次內(nèi)存寫操作和一次寄存器之間的數(shù)據(jù)傳送操作,也是3個步驟完成。D組指令,將
28、進入標記為0110狀態(tài)的節(jié)拍,再經(jīng)過標記為0100的節(jié)拍、0111的節(jié)拍、0101的節(jié)拍,用4步完成2次內(nèi)存儲器的讀寫操作,每一次內(nèi)存儲器的讀寫操作各自用2步完成。2.3、教學計算機的時序控制信號形成部件2.3.1. 確定控制器應提供的控制信號教學計算機的總體組成情況,部件之間的連接關系,即數(shù)據(jù)傳送的通路,如下圖所示:教學計算機的數(shù)據(jù)通路與微命令的控制作用2.3.2、教學計算機各部件的連接關系:運算器部件的輸入只來自于教學機的內(nèi)部總線。運算器部件的輸出可以: (1)直接送地址寄存器;(2)經(jīng)開關門送到內(nèi)部總線。內(nèi)部總線可以接收5路數(shù)據(jù)來源:(1) 運算器的16位輸出數(shù)據(jù); (2) 16位的中斷
29、向量;(3) 指令寄存器的低8位內(nèi)容和 8位的補碼符號擴展;(4) 8位的程序狀態(tài)字內(nèi)容; (5) 16位數(shù)據(jù)開關送來的手撥數(shù)據(jù)。請注意,內(nèi)部總線還可以經(jīng)雙向三態(tài)門接收從外部總線送來數(shù)據(jù)或指令,這是通過另外的控制方式實現(xiàn)的,與對前5路數(shù)據(jù)來源的選擇分開來處理,邏輯關系上顯得更加合理。內(nèi)部總線的內(nèi)容可以送到:(1) 運算器的輸入端; (2) 指令寄存器;(3)狀態(tài)位寄存器; (4) 通過雙向三態(tài)門送到外部總線。兩個需要控制其是否接受輸入的寄存器:(1) 指令寄存器,輸入來自內(nèi)部總線,保存的是指令的第一個字的內(nèi)容;(2) 地址寄存器,輸入來自運算器的輸出,其輸出就是地址總線,用作為訪問內(nèi)存的地址或
30、IO設備的端口的地址。下面開始對控制器需要提供出來的控制信號進行詳細的說明。 對運算器部件,應該向它提供23位的控制信號,包括:4位的A口地址、4位的B口地址(累加器編號),用于選擇讀寫的通用寄存器;3組3位的控制碼I8I6,I5I3,I2I0,用于選擇結果處置方案、運算功能、數(shù)據(jù)來源;2組共6位的控制信號,控制配套的2片GAL20V8,3位SST,用于控制C、Z、V、S這4個狀態(tài)標志位的狀態(tài)變化,1位SSH和2位SCI, 用于控制產(chǎn)生運算器最低位的進位輸入信號,以及運算器最高、最低位(累加器和Q寄存器)的移位輸入信號在完成脫機情況下的運算器實驗時,使用24位的微型手撥開關向運算器提供這23位
31、控制信號。當計算機正常運行時,將改由控制器向運算器提供這23位控制信號。 對內(nèi)存儲器和I/O接口部件,控制器主要向它們提供讀寫操作用到的地址信息和全部控制信號。為實現(xiàn)對存儲器和I/O接口的讀寫操作控制,必須指明:要還是不要讀寫內(nèi)存或I/O接口,是讀寫內(nèi)存儲器還是I/O接口,到底是讀還是寫操作??梢园堰@些要求組合成以下5種情形:寫內(nèi)存,在寫數(shù)據(jù)到內(nèi)存時要用,用于教學機的STO、PUSH等指令的寫內(nèi)存操作;讀內(nèi)存,在從內(nèi)存讀數(shù)據(jù)時要用,用于教學機的LOD、POP等指令的讀內(nèi)存操作;寫接口,在寫數(shù)據(jù)到接口時要用,用于教學機的OUT指令的寫I/O接口操作;讀接口,在從接口讀數(shù)據(jù)時要用,用于教學機的IN
32、指令的讀I/O接口操作;既不讀寫內(nèi)存也不讀寫接口,在許多指令的大部分時間里是有這種運行需求的,此時應禁止內(nèi)存和接口的讀寫操作。設計中一定不能忘記這一使用要求。在TEC-2000教學計算機系統(tǒng)中,通過3位編碼(/MIO,REQ,/WE)來區(qū)分上述5種情形,具體安排如下。 /MIO REQ /WE 操作功能 0 0 0 內(nèi)存寫 0 0 1 內(nèi)存讀 0 1 0 I/O寫 0 1 1 I/O讀 1 無讀寫可以看到,/MIO信號為低,要讀寫內(nèi)存或I/O接口,為高則不讀寫內(nèi)存和I/O接口;在/MIO信號為低時,REQ信號為低,是內(nèi)存工作(讀寫),為高則是I/O接口工作;在/MIO信號為低時,/WE信號為低
33、是寫操作,為高則是讀操作。 這里的“”符號表示“無關位”,即/MIO信號為高時,無論REQ和/WE處于什么狀態(tài),都是既不讀寫內(nèi)存也不讀寫I/O接口。向內(nèi)存和I/O接口提供的讀寫信號,通過對/MIO REQ /WE這3位碼的譯碼來實現(xiàn)。 對CPU內(nèi)部總線數(shù)據(jù)來源的控制,主要是通過3位編碼(標記為DC1),用來選擇把哪一組數(shù)據(jù)發(fā)送到CPU內(nèi)部總線IB上。可以向內(nèi)部總線IB傳送數(shù)據(jù)的信息來源包括:ALU的輸出結果,將ALU的輸出送到內(nèi)部總線,主要目的是用于把累加器的內(nèi)容寫進內(nèi)存或I/O接口,即把ALU的輸出經(jīng)內(nèi)部總線、經(jīng)過雙向3態(tài)門電路(74LS245)傳送到外部數(shù)據(jù)總線OB(DB),而DB的每一位
34、與內(nèi)存的數(shù)據(jù)線、I/ O接口的數(shù)據(jù)線直接連接在一起。程序狀態(tài)字,由4位狀態(tài)標志位寄存器的輸出C、Z、V、S,及2位中斷優(yōu)先級P1、P0信號總共6位信息組成。將這8位(最低2位補0值)程序狀態(tài)送到IB,也是為了將其寫入內(nèi)存。在響應中斷后,用于通過PUSHF指令保存中斷現(xiàn)場信息。指令寄存器的低位字節(jié),在IN和OUT指令中,存放的是IO端口地址,需要送內(nèi)部總線再經(jīng)ALU傳到地址寄存器;在相對轉移指令中,存放的是offset偏移值,需要送內(nèi)部總線經(jīng)ALU完成與程序計數(shù)器PC的內(nèi)容相加;此時有一個符號位擴展支持的問題,在計算相對轉移指令的轉移地址時,是通過把一個8位的補碼(由匯編程序計算得到)與該轉移指
35、令本來的16位地址(一定為正數(shù),故其原碼與補碼相同)相加來實現(xiàn),必須把8位補碼offset的最高位(補碼的符號位,可能為0或1)擴展到加法器的高8位的每一位上去參加相加。16位的數(shù)據(jù)手撥開關,用于把通過該開關所撥的內(nèi)容,經(jīng)過內(nèi)部總線傳送到計算機內(nèi)相關部件中。16位的中斷向量,由2位的中斷優(yōu)先級拼接上確定的高12位數(shù)值(通過跳線給出)得到,最低的2位補0,在處理中斷時,用于找到中斷服務子程序的入口地址。在任何時刻只能把一個數(shù)據(jù)來源送上總線。為了從上述5個數(shù)據(jù)來源中選取其一,可以設置3位碼(標記為DC1),并通過譯碼器給出的譯碼信號打開不同的選擇門線路來完成。在TEC-2000計算機的實現(xiàn)中,具體
36、規(guī)定如下。 DC1碼 譯碼信號 操作說明 000 /SWTOIB 送開關內(nèi)容到內(nèi)部總線 001 /RTOIB 送ALU輸出到內(nèi)部總線 010 /ETOIB 送IR低位字節(jié)內(nèi)容到內(nèi)部總線(可能含符號為擴展) 011 /FTOIB 送程序狀態(tài)到內(nèi)部總線 100 /STOIB 16位機種不用 101 /INTVH 16位機種不用 110 /INTV 送中斷向量到內(nèi)部總線 111 NC 無操作功能,不向內(nèi)部總線發(fā)送數(shù)據(jù)其實還可以從外部總線向內(nèi)部總線傳送數(shù)據(jù)(或者相反方向),但這是通過另外的辦法處理的,并且已經(jīng)處理好與DC1編碼控制的協(xié)調(diào)關系。 對幾個特定的寄存器接受輸入的控制,也要通過3位編碼(標記為
37、DC2),用來選擇允許哪一個寄存器接收送給它的一組數(shù)據(jù)。這些寄存器是指令寄存器IR,地址寄存器,中斷優(yōu)先級寄存器INTP等??梢酝ㄟ^把對DC2信號譯碼產(chǎn)生的各譯碼信號送到各相應寄存器的/G控制端引腳,來完成對寄存器接收數(shù)據(jù)的控制。再一次說明,此時至少得有一個譯碼信號為NC,即不操作(接收)控制。在TEC-2000計算機的實現(xiàn)中,具體規(guī)定如下。 DC2碼 譯碼信號 操作說明 000 NC 不操作 001 /GIR 指令寄存器接收 010 /GARL 16位機中不用 011 /GAR 地址寄存器接收 100 /INTR 恢復原中斷優(yōu)先級 100 /INTN 接收新中斷優(yōu)先級 110 /EI 開中斷
38、 111 /DI 關中斷這里需要說明,對3位的DC2碼譯碼可以產(chǎn)生8個譯碼輸出信號,其中的3個用于控制專用寄存器的接收操作,1個不用,另外的4個轉義用于有關中斷的控制操作,響應新的中斷請求時需要變化中斷優(yōu)先級,中斷處理完成時,需要恢復中斷之前的程序現(xiàn)場,為了使得CPU可以響應中斷,需要在用戶程序中執(zhí)行一條開中斷指令EI,為了禁止CPU響應中斷,需要在用戶程序中執(zhí)行一條關中斷指令DI。把上述全部內(nèi)容歸納在一起,就得出需要控制器形成并提供給計算機各個功能部件的32位時序控制信號。 23位用于運算器, 3位用于內(nèi)存和I/O接口, 3 位用于內(nèi)部總線, 3位用于幾個特定寄存器2.4指令系統(tǒng)2.4.1指
39、令格式TEC-XP教學機實現(xiàn)了29條基本指令,用于編寫教學機的監(jiān)控程序和支持簡單的匯編語言程序設計。同時保留了19條擴展指令,供學生在教學實驗中完成對這些指令的設計與調(diào)試。教學機的指令格式支持單字和雙字指令,第一個指令字的高8位是指令操作碼字段,低8位和雙字指令的第二個指令字是操作數(shù)、地址字段,分別有3種用法,如下圖所示。操作碼DRSRIO端口地址 / 相對偏移量立即數(shù) / 直接內(nèi)存地址 / 變址偏移量這8位指令操作碼(記作“IR15IR8”),含義如下:1) IR15、IR14用于區(qū)分指令組:0X表示A組,10表示B組,11表示C、D組;C、D組的區(qū)分還要用IR11,IR11=0為C組,IR
40、11=1為D組。2) IR13用于區(qū)分基本指令和擴展指令:基本指令該位為0,擴展指令該位為1;3) IR12用于簡化控制器實現(xiàn),其值恒為0;4) IR11IR8用于區(qū)分同一指令組中的不同指令。教學機的指令根據(jù)指令字長、操作數(shù)不同可劃分為如下5種指令格式:1) 單字、無操作數(shù)指令:格式:操作碼0000 0000基本指令:PSHF;狀態(tài)標志(C、Z、V、S、P1、P0)入棧POPF;彈出棧頂數(shù)據(jù)送狀態(tài)標志寄存器RET子程序返回擴展指令:CLC;清進位標志位C=0STC;置進位標志位C=1EI;開中斷,置中斷允許位INTE=1DI;關中斷,置中斷允許位INTE=0IRET;中斷返回2) 單字、單操作
41、數(shù)指令:格式:操作碼DR 00000000 SROFFSETI/O PORT基本指令:DECDR;DRDR-1INCDR;DRDR+1SHLDR;DR邏輯左移,最低位補0,最高位移入CSHRDR;DR邏輯右移,最高位補0,最低位移入CJROFFSET;無條件跳轉到ADR,ADR=原PC值+OFFSETJRCOFFSET;當C=1時,跳轉到ADR,ADR=原PC值+OFFSETJRNCOFFSET;當C=0時,跳轉到ADR,ADR=原PC值+OFFSETJRZOFFSET;當Z=1時,跳轉到ADR,ADR=原PC值+OFFSETJRNZOFFSET;當Z=0時,跳轉到ADR,ADR=原PC值+O
42、FFSETINI/O PORT;R0I/O PORT ,從外設I/O PORT端口讀入數(shù)據(jù)到R0OUTI/O PORT;I/O PORTR0,將R0中的數(shù)據(jù)寫入外設I/O PORT端口PUSHSR;SR入棧POPDR;彈出棧頂數(shù)據(jù)送DR擴展指令:RCLDR;DR與C循環(huán)左移,C移入最低位,最高位移入CRCRDR;DR與C循環(huán)右移,C移入最高位,最低位移入CASRDR;DR算術右移,最高位保持不變,最低位移入CNOTDR;DR求反,即DR/DRJMPRSR;無條件跳轉到SR指向的地址CALRSR;調(diào)用SR指向的子程序JRSOFFSET;當S=1時,跳轉到ADR,ADR=原PC值+OFFSETJR
43、NSOFFSET;當S=0時,跳轉到ADR,ADR=原PC值+OFFSET3) 單字、雙操作數(shù)指令:格式:操作碼DRSR基本指令:ADDDR,SR;DRDR+SRSUBDR,SR;DRDR-SRANDDR,SR;DRDR and SRCMPDR,SR;DR-SRXORDR,SR;DRDR xor SRTESTDR,SR;DR and SRORDR,SR;DRDR or SRMVRRDR,SR;DRSRLDRRDR,SR;DRSRSTRRDR,SR;DRSR擴展指令:ADCDR,SR;DRDR+SR+CSBBDR,SR;DRDR-SR-C4) 雙字、單操作數(shù)指令:格式:操作碼0000 0000A
44、DR基本指令:JMPAADR;無條件跳轉到地址ADRCALAADR;調(diào)用首地址在ADR的子程序5) 雙字、雙操作數(shù)指令:格式1:操作碼DR 0000 0000 SRDATA基本指令:MVRDDR,DATA;DRDATA擴展指令:LDRADR,ADR;DRADRSTRAADR,SR;ADRSR格式2:操作碼DRSRADR擴展指令:LDRXDR,OFFSETSR;DROFFSET+SRSTRXDR,OFFSETSR;OFFSET+SRDR2.4.2教學指令2.4.2.1基本指令指令格式匯編語句操作數(shù)個數(shù)CZVS指令類型功能說明00000000 DRSR00000001 DRSR00000010 D
45、RSR00000011 DRSR00000100 DRSR00000101 DRSR00000110 DRSR00000111 DRSR00001000 DR000000001001 DR000000001010 DR000000001011 DR000001000001 OFFSET01000100 OFFSET01000101 OFFSET01000110 OFFSET01000111 OFFSETADD DR,SRSUB DR,SRAND DR,SRCMP DR,SRXOR DR,SRTEST DR,SROR DR,SRMVRR DR,SRDEC DRINC DRSHL DRSHR DR
46、JR OFFSETJRC OFFSETJRNC OFFSETJRZ OFFSETJRNZ OFFSET22222222111111111*A組指令DRDR+SRDRDR-SRDRDR and SRDR-SRDRDR xor SRDR and SRDRDR or SRDRSRDRDR-1DRDR+1DR,CDR/2DR,CDR*2無條件跳轉C=1時跳轉C=0時跳轉Z=1時跳轉Z=0時跳轉10000000 0000000ADR(16位)10000001 DRSR10000010 I/O PORT10000011 DRSR10000100 0000000010000101 0000SR1000011
47、0 I/O PORT10000111 DR000010001000 DR000010001100 0000000010001111 00000000JMPA ADRLDRR DR,SRIN I/O PORTSTRR DR,SRPSHFPUSH SROUT I/O PORTPOP DRMVRD DR,DATAPOPFRET12120111200B組指令無條件跳到ADRDRSRR0I/O PORTDRSRFLAG入棧SR入棧I/O PORTR0DR出棧DRDATAFLAG出棧子程序返回11001110 00000000CALA ADR1D組指令調(diào)用首地址在ADR的子程序注:表中CZVS一列,*表示
48、對應狀態(tài)位在該指令執(zhí)行后會被重置;表示對應狀態(tài)位在該指令執(zhí)行后不會被修改。1 運算器芯片中有16個通用寄存器(累加器)R0R15,其中:R4用作16位的堆棧指針SP;R5用作16位的程序計數(shù)器PC;其余寄存器用作通用寄存器,即多數(shù)雙操作數(shù)指令和單操作數(shù)指令中的DR、SR2.4.2.2擴展指令指令格式匯編語句操作數(shù)個數(shù)CZVS指令類型功能說明00100000 DRSR00100001 DRSR00101010 DR000000101011 DR000000101100 DR000000101101 DR000001100000 0000SR01100100 OFFSET01100101 OFFS
49、ET01101100 0000000001101101 0000000001101110 0000000001101111 00000000ADC DR,SRSBB DR,SRRCL DRRCR DRASR DRNOT DRJMPR SRJRS OFFSETJRNS OFFSETCLCSTCEIDI2211111110000*01A組指令DRDR+SR+CDRDR-SR-CDRDR帶進位C循環(huán)右移DRDR帶進位C循環(huán)左移DRDR算術右移DR/DR跳轉到SR指明的地址S=1時跳轉S=0時跳轉C=0C=1開中斷關中斷11100000 0000SR11100100 DR000011100101 DR
50、SRADR(16位)11100110 DRSRADR(16位)11100111 0000SRCALR SRLDRA DR,ADRLDRX DR,OFFSETSRSTRX DR,OFFSETSRSTRA ADR,SR12221C組指令調(diào)用SR指明的子程序DRADRDRDATA+SRDATA+SRSRADRSR11101111 00000000IRET0D組指令中斷返回注:表中CZVS一列,*表示對應狀態(tài)位在該指令執(zhí)行后會被重置;表示對應狀態(tài)位在該指令執(zhí)行后不會被修改。二、 實驗3.1基礎匯編語言程序設計3.1.1實驗內(nèi)容1 學習聯(lián)機使用TEC-XP教學實驗系統(tǒng)和仿真終端軟件PCEC.2 使用監(jiān)控
51、程序R命令顯示/修改寄存器內(nèi)容、D命令顯示存儲器內(nèi)容、E命令修改存儲器內(nèi)容;3 使用A命令寫一小段匯編程序,U命令反匯編剛輸入的程序,用G命令連續(xù)運行該程序,用T、P命令單步運行并觀察程序單步執(zhí)行情況。3.1.2實驗完成情況今天老師主要給我們介紹了實驗計算機在PC機上運行PCEC16.EXE文件,根據(jù)連接的PC機的串口設置所用PC機的串口為“1”或“2”, 其它的設置一般不用改動,直接回車即可。按一下“RESET”按鍵,再按一下“START”按鍵。在操作這兩步出出了問題,start 按鍵必須按兩次。不然無法出現(xiàn)想要的結果。3.1.3實驗體會實驗一我們主要是按照書上的步驟來一步一步的往下做,所以并沒有遇上很多問題。我們所做的例題都是用監(jiān)控程序的A命令完成輸入源匯編程序的,有時候不小心輸錯了字符還要重新輸入,特別的麻煩。3.2脫機運算器實驗 3.2.1實驗內(nèi)容深入了解AM2901運算器的功能與具體用法,4片AM2901的級連方式,深化運算器部件的組成、設計、控制與使用等諸項知識。3.2.2實驗完成情況做脫機運算器實驗時,要用到提供24位控制信號的微動開關和提供16位數(shù)據(jù)的撥動開關。微動開關是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房買賣合同范本參考
- 打管樁分包勞務合同范本
- 月結采購合同
- 學校聘用舞蹈老師培訓合同
- 景觀石購銷合同范本
- 實驗室租賃合同
- 二手房購買房屋合同
- 貨物商品購銷的合同范本
- 熱感探測器與火災警示
- 消防力量調(diào)度和協(xié)同作戰(zhàn)
- 9001內(nèi)審員培訓課件
- 人教版五年級上冊小數(shù)除法豎式計算練習練習300題及答案
- 綜合素質(zhì)提升培訓全面提升個人綜合素質(zhì)
- 如何克服高中生的社交恐懼癥
- 聚焦任務的學習設計作業(yè)改革新視角
- 《監(jiān)理安全培訓》課件
- 2024高二語文期末試卷(選必上、中)及詳細答案
- 淋巴瘤患者的護理
- 水利工程建設管理概述課件
- 人美版初中美術知識點匯總九年級全冊
- 2022中和北美腰椎間盤突出癥診療指南的對比(全文)
評論
0/150
提交評論