999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

微程序控制器擴展指令研究

2019-06-17 10:02:06宗德才王康康
計算機應用與軟件 2019年6期
關鍵詞:指令設計教學

宗德才 王康康

1(常熟理工學院計算機科學與工程學院 江蘇 常熟 215500)2(江蘇科技大學數(shù)理學院 江蘇 鎮(zhèn)江 212003)

0 引 言

“計算機組成原理”課程是計算機相關專業(yè)的核心課程之一,學好該課程對于學生建立計算機系統(tǒng)整機概念和培養(yǎng)學生分析、設計計算機系統(tǒng)的能力至關重要[1]。“計算機組成原理”是理論性和實踐性都很強的一門課程,其中的實踐實驗環(huán)節(jié),是學好“計算機組成原理”課程的關鍵[2]。

文獻[3]設計了4位乘法指令與8位除4位的除法指令,文獻[4]設計了基于TEC-XP指令級、微體系級的仿真系統(tǒng)以及脫機運算器、中斷嵌套和I/O通信三大部件實驗的仿真軟件,文獻[5]、文獻[6]將EDA軟件Proteus應用于教學實驗中,文獻[4]、文獻[5]、文獻[6]方式的缺點是學生無法動手操作,很難形成對計算機硬件的直觀理解,并且都未涉及乘除指令的實現(xiàn)。文獻[7]設計了一個8位模型機,控制器包含了14條指令,但未包含乘法、除法等指令。文獻[8]設計了加法、取數(shù)、轉移等指令,但并未設計乘除指令。文獻[9]要求學生至少設計實現(xiàn)7條指令,但并未要求設計乘除指令。

目前,我校計算機組成原理實驗教學內容主要是基于清華大學計算機系研制的TEC-XP16計算機組成原理實驗系統(tǒng)而開展進行的。與大多數(shù)高校一樣,該課程的實驗內容,還是停留在驗證性實驗階段,為了使學生更好掌握計算機的各個組成部件的工作原理,理解指令的執(zhí)行流程,系統(tǒng)地建立計算機整機概念,培養(yǎng)學生的設計、創(chuàng)新能力,需要開發(fā)一些設計性實驗,如在CPU的控制器中擴展一些新指令。

文獻[10]介紹了TH-union教學機微程序控制器部件實驗的原理及實驗步驟,屬于驗證性實驗,沒有擴展新指令。文獻[11]在TEC-2000教學機微程序控制器中設計實現(xiàn)了四條擴展指令,NXOR DR,SR、SWRM DR,[SR]、ADTW DR與ADRM DR,[SR],并將擴展的新指令用程序進行了驗證。文獻[12]在TEC-2000教學機微程序控制器中設計實現(xiàn)了兩條擴展指令,NXOR DR,SR與SWRM DR,[SR],并將擴展的新指令用程序進行了驗證。文獻[11]和文獻[12]在TEC-2000教學機微程序控制器中擴展的指令都比較簡單,每條擴展指令只需要1~4條微指令即可實現(xiàn)。目前,國內外還沒有研究在TEC-XP16教學機微程序控制器中擴展較復雜指令,如乘法指令、除法指令的文獻。本文提出了一種在TEC-XP16教學機微程序控制器中設計MUL乘法指令與DIV除法指令的方法,所設計的MUL指令與DIV指令分別需要25條微指令和29條微指令組成的微程序來實現(xiàn)。然后,以擴展MUL指令為例,詳細介紹了如何在控制器的源文件中添加擴展指令的控制信號的邏輯表達式、編譯控制器的源文件、對MACH器件進行編程、編寫程序驗證擴展指令是否正確的整個過程。最后,我們以實驗方式驗證了所設計和實現(xiàn)的乘法指令與除法指令的功能。

1 基本組成及其工作原理

微程序控制器的核心部件是控制存儲器,控制存儲器用于存放全部微程序。每一條機器指令對應一個微程序,每個微程序由若干條微指令組成,每條微指令對應一個或多個控制信號。微指令是以二進制代碼形式表示的,每一位代表一個控制信號,若某位為1,表示對應的控制信號有效,若某位為0,表示對應的控制信號無效。在程序執(zhí)行過程中,將逐條執(zhí)行每條指令對應的每一條微指令,用微指令中的控制命令字段控制計算機各功能部件的運行,并用微指令中的下地址字段形成后續(xù)微指令的地址[13]。

在TEC-XP16教學計算機中,微程序控制器與組合邏輯控制器的主要邏輯電路都是由一片MACH芯片實現(xiàn)的。微程序控制器由控制存儲器、微指令寄存器、映射指令操作碼為微指令地址的MAPROM、產(chǎn)生微指令是否轉移信號CC的條件判斷線路SCC GAL、實現(xiàn)微指令字中的下條微指令地址和MAPROM輸出的下條微指令地址二選一功能的線路、確定微指令執(zhí)行次序的Am2910芯片等部分組成[14]。

在TEC-XP16教學計算機中擴展新指令時,首先,要設計好新指令對應的微程序,然后將設計好的組成微程序的所有微指令寫入控制存儲器中。

在以前的教學機產(chǎn)品中,如TEC-2000教學機中,控制存儲器中的內容是保存在ROM芯片中的,而在TEC-XP16教學計算機中,控制存儲器的內容不是保存在ROM芯片中的,控制存儲器的內容是用組合邏輯表達式表示的[14]。

2 設計微程序控制器的擴展指令

在TEC-XP16教學機中擴展指令過程中,首先,根據(jù)設計好的新指令對應的微程序修改描述MACH芯片功能的ABEL語言源程序;然后將修改后的ABEL語言程序用ISP LEVER軟件編譯成.jed文件,接著將.jed文件下載到MACH芯片中;最后,在教學機上調試運行包含擴展指令的教學機程序。

在現(xiàn)有的TEC-XP16教學機中,描述MACH芯片功能的ABEL語言源程序同時實現(xiàn)了組合邏輯控制器與微程序控制器,但兩種控制器都只能執(zhí)行29條基本指令。本文在TEC-XP16教學機微程序控制器中設計實現(xiàn)了兩條擴展指令:乘法指令MUL DR,SR與除法指令DIV DR,SR。

2.1 設計條件

(1) 硬件:TEC-XP16教學機,PC機,Lattice USB下載電纜HW-USB-2A。

(2) 軟件:Lattice ispLEVER Classic 2.0軟件、WinPcec軟件。

2.2 乘法指令與除法指令的設計過程

在TEC-XP16教學機的微程序控制器中擴展指令的主要過程如下:

(1) 確定乘法指令與除法指令的格式和功能,如表1所示。

表1 MUL指令與DIV指令的指令格式與功能

(2) 按乘法指令與除法指令的功能和格式,設計8位無符號數(shù)乘法算法,8位無符號數(shù)除法算法,如算法1,算法2所示。

算法1(8位無符號數(shù)乘法算法) 被乘數(shù)與乘數(shù)都用8位無符號數(shù)表示,被乘數(shù)與乘數(shù)分別放在DR、SR寄存器,乘積為16位無符號數(shù),乘積16位放R6寄存器。

(1) 保存R3、R8寄存器內容到堆棧;

(2) 初始化,部分積R6初始化為0,R3、R8寄存器初始化為8;

(3) 將DR寄存器內容左移8位;

(4) 將SR寄存器內容右移1位,最低位移入C觸發(fā)器;

(5) 如果C為1,則轉(6),如果C為0,轉(7);

(6) (R6)+(DR)→R6;

(7) R6寄存器內容右移一位,最低位移入C觸發(fā)器;

(8) R8減1,結果不為0,則轉(4),結果為0,結束;

(9) 出棧恢復R3、R8寄存器內容。

算法2(8位無符號數(shù)除法算法) 被除數(shù)與除數(shù)都用8位無符號數(shù)表示,被除數(shù)與除數(shù)分別放在DR、SR寄存器,R9寄存器放8位商。

(1) 保存R3寄存器內容到堆棧;

(2) 初始化,R3初始化為9(上商9次),R9初始化為0;

(3) (DR)-(SR)→DR;

(4) 如果S為0,則轉(5),如果S為1,轉(9);

(5) R3減1,結果不為0,則轉(6),結果為0,則轉(12);

(6) 將R9寄存器內容增1,轉(4);

(7) 將R9寄存器內容左移一位,將DR寄存器內容左移一位;

(8) (DR)-(SR)→DR,轉(4);

(9) R3減1,結果不為0,則轉(10),結果為0,則轉(13);

(10) 將R9寄存器內容左移一位,將DR寄存器內容左移一位;

(11) (DR)+(SR)→DR,轉(4);

(12) 將R9寄存器內容增1;

(13) 出棧恢復R3寄存器內容。

(3) 根據(jù)乘除指令的算法,劃分指令執(zhí)行步驟并設計每一步的執(zhí)行功能,MUL指令的執(zhí)行步驟表如表2所示。DIV指令的指令執(zhí)行步驟表由于論文篇幅關系省略。

表2 MUL指令的執(zhí)行步驟表

(4) 根據(jù)指令執(zhí)行步驟表,設計微指令地址和下地址字段的取值,并設計每一個控制信號的狀態(tài)值,如表3、表4所示。乘法指令的操作碼為E8H,微程序入口地址為6AH,除法指令的操作碼為E9H,微程序入口地址為87H。

表3 MUL指令的微程序表

續(xù)表3

表4 DIV指令的微程序表

續(xù)表4

如圖1所示,一條微指令由16位的下地址字段和32位的控制命令字段共同組成,下地址字段用于正確給出下一條微指令的地址,控制命令字段給出的32位控制信號用于控制教學機各功能部件的運行[13]。

微下地址命令碼微轉移條件MRWI2-I0I8-I6I5-I3B口地址A口地址SSTSSHSCIDC2DC116位下地址字段32位控制命令字段

圖1 TEC-XP16教學機的微指令格式

圖1中,命令碼CI3~CI0為0010時,根據(jù)指令的操作碼從MAPROM找到該指令對應的微程序的入口地址,從而開始該條指令的執(zhí)行。命令碼CI3~CI0為1110時,順序執(zhí)行,即執(zhí)行緊跟在本條微指令后面的那條微指令,(μPC)+1→μPC。

如表5所示,命令碼CI3~CI0為0011時,用于條件微轉移控制,微轉移條件SCC3~SCC0用于條件微轉移時給出轉移依據(jù)的條件,條件滿足時發(fā)生轉移,下一條微指令的地址為當前微指令中微下地址字段的內容;條件不滿足,順序執(zhí)行[14]。

表5 條件微指令轉移所依據(jù)的判斷條件表

(5) 根據(jù)表3和表4,修改描述MACH芯片功能的ABEL語言源程序,編譯適配后下載到MACH芯片中。

(6) 寫一個包含所設計的乘法指令與除法指令的教學機程序,通過運行該程序檢查執(zhí)行結果的正確性,驗證設計的乘除指令是否正確。

3 MUL擴展指令的實現(xiàn)

下面將以MUL指令為例,介紹在微程序控制器的ABEL源文件中添加擴展指令的控制信號的邏輯表達式,編譯控制器的ABEL源文件,對MACH器件編程,編寫程序驗證擴展指令是否正確的整個過程。

(1) 啟動Lattice ispLEVER Classic 2.0中的ispLEVER Classic Project Navigator軟件,新建一個項目,項目名稱必須是lc4256。

(2) 選擇器件類型,如圖2所示。

圖2 選擇器件類型

(3) 單擊“Add Source”按鈕,添加控制器源文件m256c.abl。然后,單擊“完成”按鈕。

(4) 右鍵單擊m256c.abl文件,選擇“Open”命令。在文本編輯器中打開m256c.abl文件。

(5) 在文本編輯器中修改m256c.abl控制器源文件(文中字體加粗的代碼是添加的代碼)。

我們設計的MUL指令的操作碼為E8H,因此,在RET=(IR==[1,0,0,0,1,1,1,1]);后面加一行代碼:

MUL=(IR==[1,1,1,0,1,0,0,0]);

依據(jù)表3 MUL指令的微程序表修改CC信號的邏輯表達式,當CC信號為低電平時微程序執(zhí)行轉移,為高電平時則順序執(zhí)行。當SCC3~SCC0為0100,NADR為01110101并且Z為0時,CC為低電平,即當Z為0執(zhí)行地址為77H的JRNZ 75微指令后將轉移到75H地址執(zhí)行微指令。當SCC3~SCC0為0100,NADR為01111011并且C為0時,CC為低電平,即當C為0執(zhí)行地址為79H的JRNC 7B微指令后將轉移到7BH地址執(zhí)行微指令。當SCC3~SCC0為0100,NADR為00110000并且Z為1時,CC為低電平,即當Z為1執(zhí)行地址為7DH的JRZ 7F微指令后將轉移到30H地址執(zhí)行微指令。修改后的CC0表達式如下:

CC0=!SCC3&!SCC2&!SCC1&!SCC0

#!SCC3& SCC2& SCC1&!SCC0&(IN_)

#!SCC3& SCC2&!SCC1&!SCC0&(JRC)&!C

#!SCC3& SCC2&!SCC1&!SCC0&(JRNC)&C

#!SCC3& SCC2&!SCC1&!SCC0&(JRZ)&!Z

#!SCC3&SCC2&!SCC1&!SCC0&(JRNZ)&Z

#!SCC3&SCC2&!SCC1&!SCC0&(MUL)&

(NADR==[0,1,1,1,0,1,0,1])&(Z==0)

#!SCC3& SCC2&!SCC1&!SCC0&(MUL)&

(NADR==[0,1,1,1,1,0,1,1])&(C==0)

#!SCC3& SCC2&!SCC1&!SCC0&(MUL)&

(NADR==[0,1,1,1,1,1,1,1])&(Z==1)

# CCM;

CCM=!SCC3& SCC2& SCC1& SCC0&(PUSH)

#!SCC3& SCC2& SCC1& SCC0&(POP)

#!SCC3& SCC2&!SCC1& SCC0&(JRS)&!S

#!SCC3& SCC2&!SCC1& SCC0&(JRNS)&S

#!SCC3&!SCC2& SCC1&!SCC0&!INT;

!CC=CC0;

如圖3所示,MACH芯片向AM2910器件提供8位下地址信息D7~D0,該地址有2個來源[15],通過AM2910產(chǎn)生的_PL和_MAP信號進行選擇,當_PL為低時,該地址來自微指令中的8位下地址字段NADR7~NADR0;當_MAP為低時,該地址來自MAPROM的輸出,MAPROM是通過組合邏輯表達式來實現(xiàn)的。

圖3 TEC-XP16教學機控制器的總體組成

我們設計的MUL 指令的微程序入口地址為6AH,因此,D0、D2、D4、D7表達式不需要修改,在D6、D5、D3、D1的邏輯表達式中需增加MUL匯編指令。修改后的D1、D3、D5、D6的邏輯表達式如下:

D1=!C_M&(!_MAP&(AND#OR#TEST#MVRR#SHL#SHR#IN_#OUT#POP#POPF#LDRR#JMPA#CALA#RET#IRET#NOT#ASR#CLC#STC#JMPR#LDRA#STRA#SWRR#MUL)#NADR1&!_PL);

D3=!C_M&(!_MAP&(XOR_#CMP#TEST#MVRR#INC#DEC#SHR#SHL#STRR#LDRR#MVRD#JMPA#CALA#EI#DI#JMPR#JRS#JRNS#LDRA#LDRX#STRA#SWRR#MUL)#NADR3&!_PL);

D5=!C_M&(!_MAP&(RET#IRET#JRS#JRNS#CALR#STRX#SWRR#MUL)#NADR5&!_PL);

D6=!C_M&(!_MAP&(EI#DI#IRET#ADC#SBB#NOT#ASR#RCL#RCR#CLC#STC#JMPR#JRS#JRNS#LDRA#LDRX#STRA#STRX#CALR#SWRR#MUL)#NADR6&!_PL);

按照所設計的乘法指令和除法指令的微程序表中的內容修改描述 MACH 芯片功能的 ABEL語言源程序,即分別寫出微指令每一位信號的完整的邏輯表達式,即把在微程序表中該位信號取值為1或0時所對應的微指令地址或在一起。

依據(jù)表3 MUL指令微程序表的內容修改微程序控制器16位下地址字段的邏輯表達式,即微下地址NADR7~ NADR0、命令碼CI3~CI0、微轉移條件SCC3~SCC0的邏輯表達式。由于論文篇幅關系代碼省略。

依據(jù)表3 MUL指令微程序表的內容修改微程序控制器32位控制命令字段的邏輯表達式。其中,DC2_200、DC2_100、DC2_000、DC1_200、DC1_100、DC1_000表達式不需要修改。由于論文篇幅關系代碼省略。

(6) 保存m256c.abl文件。

(7) 在左側源文件窗口中單擊m256c.abl文件,雙擊Compile Logic任務項,即對源文件m256c.abl進行編譯。

(8) 在左側源文件窗口中點擊器件圖標,在右側窗口中雙擊JEDEC File任務項生成lc4256.jed文件。完成后以綠色的“√”標記。若有警告信息,則以黃色的“!”標記,警告信息一般并不影響JEDEC文件的使用。

(9) 啟動Lattice ispLEVER Classic 2.0中的ispVM System軟件,彈出主界面。

(10) 將教學機左下方五個黑色的控制開關撥為10100(1表示往上撥,0表示往下?lián)?。

(11) 通過Lattice USB 下載電纜HW-USB-2A連接PC機與教學計算機上MACH芯片,打開教學計算機電源。

(12) 執(zhí)行Options、Cable and I/O Port Setup…命令,設置Cable為USB接口,因為我們用的是USB ispDOWNLOAD Cables。

(13) 通過ispVM System軟件主界面的SCAN按鈕找到在線編程器件。

(14) 右擊所找到的編程器件LC4256V,選擇“Edit Device”,在“Device Information”窗口中選擇Device為 LC4256V(B),通過Browse按鈕選擇已編譯好的JED文件(lc4256.jed),單擊OK按鈕。

(15) 重新回到ispVM System軟件主界面,點擊GO命令進行下載編程。如圖4所示,在Status窗口中顯示信息“Operation Done:No errors.Operation:Successful”,表示對LC4256V器件的編程已經(jīng)成功。

圖4 編程成功

(16) 關閉教學計算機電源,拔下下載編程電纜。

(17) 將教學機左下方五個黑色的控制開關撥為00010(1表示往上撥,0表示往下?lián)?,啟動WinPcec16軟件,然后打開教學機電源,先按RESET鍵,后按START鍵,啟動教學機監(jiān)控程序。

(18) 在WinPcec16中編寫一個包含擴展指令MUL的教學機程序,如圖5所示。其中,MUL指令為我們設計的擴展指令,教學機中規(guī)定擴展指令必須用E命令將二進制形式的擴展指令寫入教學機內存。程序中MUL指令的二進制代碼為E812(十六進制形式),E8為MUL指令的操作碼,1、2分別表示R1、R2寄存器編號。該程序將R1寄存器內容與R2寄存器內容相乘,乘積存放在R6寄存器,即10010001×10110101=01100110 10000101(十六進制數(shù)6685),程序運行結果表明所設計的擴展指令MUL是正確的。

圖5 包含擴展指令MUL的教學機程序的運行結果

(19) 在WinPcec16軟件中編寫一個包含擴展指令DIV的教學機程序,該程序將R1寄存器內容與R2寄存器內容相除,商存放在R9寄存器,即10111100÷11011110=0.11011000(十六進制數(shù)00D8),余數(shù)存放在R1寄存器,余數(shù)補碼為1111111111010010(十六進制數(shù)FFD2),余數(shù)為負,則需通過余數(shù)補碼+除數(shù)補碼恢復余數(shù),1111111111010010+.0000000011011110=0000000010110000,即余數(shù)為+0.10110000,程序運行結果表明所設計的擴展指令DIV是正確的,如圖6所示。擴展指令必須用E命令輸入。

圖6 包含擴展指令DIV的教學機程序的運行結果

4 結 語

目前,國內外還沒有研究在TEC-XP16教學機微程序控制器中擴展較復雜指令,如乘法指令、除法指令的文獻。為解決TEC-XP16教學機缺少乘法指令和除法指令的問題,本文對TEC-XP16教學機微程序控制器中擴展乘法指令與除法指令進行了嘗試,設計了一種8位無符號數(shù)乘法指令與一種8位無符號數(shù)除法指令。對所設計和實現(xiàn)的乘法指令與除法指令進行了實驗測試,測試結果驗證了我們所設計和實現(xiàn)的乘法指令與除法指令的功能是正確的。目前,已在我校計算機科學與技術15級學生計算機組成原理課中開設了一些設計性實驗,如本文提到的在微程序控制器中擴展一些新指令。從學生的反饋來看,多開設這種設計性的實驗,可以使學生從根本上理解計算機各組成部件的工作原理以及各個組成部件之間的聯(lián)系,使學生更易形成一個完整的計算機整機概念,有益于提高學生的設計能力和創(chuàng)新能力,培養(yǎng)學生分析問題和解決問題的能力,激發(fā)學生學習的主動性和積極性。下一步將嘗試利用教學機AM2901運算器芯片中的乘商寄存器實現(xiàn)16位乘法指令與16位除法指令,以及在微程序控制器中擴展補碼乘法與補碼除法等指令。

猜你喜歡
指令設計教學
聽我指令:大催眠術
微課讓高中數(shù)學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
“自我診斷表”在高中數(shù)學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
坐標系旋轉指令數(shù)控編程應用
機電信息(2014年27期)2014-02-27 15:53:56
主站蜘蛛池模板: 青青操视频在线| 成人国产免费| 色屁屁一区二区三区视频国产| 成人午夜免费观看| 中文字幕av一区二区三区欲色| 手机在线免费毛片| 男女精品视频| 亚洲国产成人在线| 国内精品久久久久久久久久影视| 色综合久久综合网| 精品无码日韩国产不卡av | 国产中文一区二区苍井空| 国产亚洲精品无码专| 99热国产这里只有精品无卡顿"| 人妻丰满熟妇AV无码区| 国产精品午夜电影| 国产成人久久综合777777麻豆| 欧美区国产区| 久久男人资源站| 亚洲综合第一区| 青青操国产视频| 亚洲三级a| 99视频精品在线观看| 干中文字幕| 亚洲精品图区| 国产激情无码一区二区APP| 欧美翘臀一区二区三区| 最新国产在线| 思思99思思久久最新精品| 亚洲一区二区三区国产精华液| 色婷婷啪啪| 波多野结衣中文字幕一区二区| 丁香六月激情综合| 极品国产在线| 3344在线观看无码| 操国产美女| 亚洲婷婷六月| 99re视频在线| www精品久久| 97视频精品全国在线观看| 亚洲欧洲日韩综合色天使| 久久香蕉国产线看观| 国产在线一二三区| 99热这里只有免费国产精品| 精品国产一区二区三区在线观看| 国产地址二永久伊甸园| 996免费视频国产在线播放| 亚洲色欲色欲www网| 在线免费观看a视频| 91在线精品免费免费播放| 亚洲视频免费在线| 91小视频在线观看免费版高清| 浮力影院国产第一页| 欧洲av毛片| a级毛片毛片免费观看久潮| 免费国产高清精品一区在线| 国产精品成人免费综合| 亚洲永久色| 亚洲中文字幕在线观看| 2020国产精品视频| 婷婷综合在线观看丁香| 久久永久视频| 污污网站在线观看| 精品国产成人三级在线观看| 欧美日韩理论| 久久久久亚洲AV成人人电影软件| 精品自窥自偷在线看| 国产美女免费| 成人精品视频一区二区在线| 毛片一级在线| 国产乱子伦视频三区| 国产一区二区三区免费观看| 国产午夜一级毛片| 精品无码国产一区二区三区AV| 色视频国产| 亚洲日韩在线满18点击进入| 久草网视频在线| 91精品免费久久久| 中文字幕一区二区人妻电影| 亚洲综合九九| 色国产视频| 色婷婷色丁香|