計算機組成原理實驗之微程序控制器實驗

(實驗四 微程序控制器實驗)

課程 計算機組成原理實驗 編程

實驗日期 2015 年 12 月  1 日       測試

 

1、實驗目的編碼

1.掌握時序發生器的組成原理。spa

2.掌握微程序控制器的組成原理。調試

 

2、實驗內容blog

1.實驗電路路由

1)時序發生器電路io

本實驗所用的時序電路見圖4.1。電路由一個500KHz晶振、2GAL22V10、一片74LS390組成,可產生兩級等間隔時序信號T1-T4W1-W3,其中一個W由一輪T1-T4組成,至關於一個微指令週期或硬連線控制器的一拍,而一輪W1-W3能夠執行硬連線控制器的一條機器指令。另外,供數字邏輯實驗使用的時鐘由MF經一片74LS390分頻後產生。table

 

4.1 時序信號發生器原理

 

(2)微程序控制器電路

 

4.2微程序控制器電路

微地址轉移邏輯表達式:

A5=D5=μA5;

A4=D4=C•P2+μA4;

A3=D3=IR7•P1+μA3;

A2=D2=IR6•P1+SWC•P0+μA2;

A1=D1=IR5•P1+SWB•P0+μA1;

A0=D0=IR4•P1+SWA•P0+μA0。

2.一些關鍵技術

(1) 微指令格式

 

圖4.3微指令格式

(2)指令功能與格式

41  指令功能與格式

名稱

助記符

功能

指令格式

IR7 IR6 IR5 IR4

IR3  IR2

IR1 IR0

加法

ADD Rd, Rs

Rd + Rs→Rd

0   0   0   0

Rs1 Rs0

Rd1 Rd0

減法

SUB Rd, Rs

Rd - Rs→Rd

0   0   0   1

Rs1 Rs0

Rd1 Rd0

邏輯與

AND Rd, Rs

Rd & Rs→Rd

0   0   1   0

Rs1 Rs0

Rd1 Rd0

存數

STA Rd, [Rs]

Rd→[Rs]

0   0   1   1

Rs1 Rs0

Rd1 Rd0

取數

LDA Rd, [Rs]

[Rs]→Rd

0   1   0   0

Rs1 Rs0

Rd1 Rd0

條件轉移

JC R3

若C=1, 則R3→PC

0   1   0   1

1    1

×   × 

停機

STP

暫停執行

0   1   1   0

×   ×

×   ×

輸出

OUT Rs

Rs→DBUS

0   1   1   1

Rs1 Rs0

×   ×

 

3)上述8條指令的微程序流程圖如圖4.4所示

       

圖4.4微程序流程圖

 

4)微程序代碼表

4-2  微程序代碼表

 

微指令 KT  RRF             WRF             RRM        WRM       PR

當前微地址 00   0C  1E  06  07  0B  1D  0D  0E  0A  02  03  09  04  05  08  0F

下一微地址    08   1E  06  07  1E  1D  0D  0E  1D  02  03  02  04  05  04  0F  10

P0        1    .   .    .    .   .    .    .    .    .   .    .    .   .    .   .    .

P1        .    .   .    .    .   .    .    .    .    .   .    .    .   .    .   .    1

P2        .    .   .    .    .   .    .    .    .    .   .    .    .   .    .   .   .

備用          .    .   .    .    .    .   .    .    .    .   .    .    .   .    .   .   .

TJ            .    1   .    .    1   1   .    1   1    .   1   .    1   .   1   .   .

LDIR         .    .   .    1    .   .    .    1    .    .   .   .    .   .    .   .   1

PC+1         .    .   .    .     .   .    .    .    .    .   .   .    .   .    .   .   .

LDPC#        .    1   .    .    .   1    .    .    .    .   .   .    .   .    .   1   

AR+1         .    .   .    .    .   .    .     .    .    .   .   1    .   .   1   .   .

LDAR#        .    1   .    .    .   1    .    .    .    1   .   .    1   .  .   .   .

LDDR1        .    .   .    .    .   .    .     .    .    .   .   .    .   .   .   .   .

LDDR2        .    .   .    .    .   .    .     .    .    .   .   .    .   .   .   .   .

LDRi          .    .   .    .    .   .    .     .    1   .   .   .    .   .    .   .   .

SW_BUS#      .    1   1   .   .    1   1    .    1    1   .   .    1   1   .   1   .

RS_BUS#      .    .   .    .    1   .    .    .    .    .    .   .    .    .   .   .   .

ALU_BUS#     .    .   .    .    .   .    .    .    .    .    .   .    .   .   .   .   .

RAM_BUS#     .    .   .   .    .   .    .    .    .    .    1   .    .   .   .   .   .

CER#          .    .   .   1    .   .    .    1    .    .    .   .    .   .   .   .   1

CEL#          .    .   1   .    .   .    1    .    .    .    1   .    .   1   .   .   .

LR/W#         .    .   0   .    .   .    0    .    .    .    1   .    .   0   .   .   .

Cn#           .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

M            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

S0            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

S1            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

S2            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

S3            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

 

 

4-2  微程序代碼表()

 

微指令 ADD    SUB    AND    STA     LDA    JC      STP    OUT

當前微地址 10  18  11  19  12  1A  13  1B  14  1C  15  1F  16      17

下一微地址    18  0F  19  0F  1A  0F  1B  0F  1C  0F  0F  0F  0F     0F

P0        .   .    .    .   .    .    .   .    .    .    .   .    .       .

P1        .   .    .    .   .    .    .   .    .    .    .   .    .       .

P2        .   .    .    .   .    .    .   .    .    .    1   .    .       .

備用          .   .    .    .   .    .    .   .    .    .    .   .    .       .

TJ            .   .    .    .   .    .    .   .    .    .    .   .    1       1

LDIR         .    .   .    .   .    .     .   .    .    .    .   .    .       .

PC+1         .    1   .    1   .   1    .   1    .    1    1   .    1     1

LDPC#       .    .    .    .   .    .    .   .    .     .    .   1    .     .

AR+1        .    .    .    .   .    .    .   .    .     .    .   .    .      .

LDAR#           .    .    .   .    .    1   .    1    .    .   .    .      .

LDDR1       1   .    1    .   1    .   1   .    .    .    .   .    .       .

LDDR2       1   .    1    .   1    .    .   .    .    .    .   .    .       .

LDRi         .   1    .    1   .    1    .   .    .    1    .   .    .       .

SW_BUS#     .   .     .    .   .    .    .   .    .    .    .   .    .       .

RS_BUS#     .   .     .    .   .    .    1   .    1    .    .   1   .       1

ALU_BUS#   .   1     .    1   .    1   .   1    .    .    .   .    .       .

RAM_BUS#  .   .     .    .   .    .    .   .     .    1    .   .    .       .

CER#        .   .     .    .   .    .     .   .    .    .    .   .    .       .

CEL#        .   .     .    .   .    .    .   1     .    1    .   .    .       .

LR/W#          .     .    .   .    .    .   0     .    1    .   .    .       .

Cn#         .    .    .    1   .    .    .   .     .    .    .   .     .       .

M          .    0    .    0   .    1    .   0    .    .    .   .    .       .

S0          .    1    .    0   .    1    .   0    .    .    .   .    .       .

S1          .    0    .    1   .    1    .   0    .    .    .   .    .       .

S2          .    0    .    1   .    0    .   0    .    .    .   .    .       .

S3          .    1    .    0   .    1    .   0    .    .    .   .    .       .

 

 

注:後綴爲#的信號都是低電平有效信號,爲了在控存ROM中用「1」表示有效,這些信號在控制器中通過反相後送往數據通路。

 

3.實驗任務

1)按實驗要求,鏈接實驗臺的電平開關K0K15、時鐘信號源和微程序控制器。鏈接完成後應仔細檢查一遍,而後才能夠加上電源。

注意:本次實驗只作微程序控制器自己的實驗,故微程序控制器輸出的微命令信號與執行部件(數據通路)的連線不鏈接。

2)觀察時序信號

用雙蹤示波器觀測時序發生器的輸入、輸出信號:MF、T1-T四、W1-W3。比較相位關係,畫出其波形圖,並標註出測量所得的脈衝頻率(f)、週期(T)及脈寬(tp)。觀察時須將DB、DP開關置爲0狀態。先按CLR#,而後按QD按鈕,則時序電路不停地在運行,直到按CLR# 按鈕爲止。

3)熟悉微指令格式的定義,按此定義將圖4.4所示的所有微程序變換成二進制代碼,並列表登記。此表請在預習時完成。

4)控制檯操做的功能由SWCSWBSWA三個二進制開關的狀態配合P0判斷來決定。用單拍(DP)方式執行控制檯操做微程序,觀察判別字段和微地址指示燈的顯示,跟蹤微指令的執行狀況,並與上表數據對照。

5)深入理解0FH微指令的功能和P1測試的狀態條件(IR7IR4),用二進制開關設置IR7IR4的不一樣狀態,觀察ADDOUT八條機器指令對應微程序的微命令信號,特別是微地址轉移的實現,並與上面表格進行對照。

3、實驗環境

軟件: WIN XP、串口調試助手軟件

硬件:1.微機                                    1臺

    2.TEC-5實驗系統                1臺

    3.數字雙蹤示波器                        1臺

    4.邏輯測試筆           1支 

    5.編程器                                  公用

 

4、實驗步驟和實驗結果

1.觀察時序信號波形

(1)接線表

時序電路

TJ

SKIP

固定電平

注意:接線表中的TJ是時序電路中的TJ,不是控制器中的TJ(該TJ由控制器產生,不能接輸入信號),切記勿接錯。

(2)時序信號的波形以下所示:

按順序依次是M,T1:

 

T2,T3:

 

 

T4,W1:

 

W2,W3:

 

 

2.控制檯操做微指令編碼測試

接線表以下:

控制器

C

IR4

IR5

IR6

IR7

模擬開關

K0

K1

K2

K3

K4

 

時序電路

TJ

SKIP

固定電平

控制檯微代碼在58C65的D0—D7輸出,D0是最低位,D7是最高位,CM0是最低字節,CM3是最高字節。D0—D7對應於58C65的引腳十一、十二、1三、1五、1六、1七、1八、19。對於控存的輸出,有相應的32個指示燈指示。

(1)寫存儲器WRM工做模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC = 0、SWB = 0、SWA = 1,實驗系統處於寫存儲器WRM工做模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址爲00H,測得的微碼是00H 00H 00H 48H。按一次QD按鈕,微地址爲09H,測得的微碼是00H 08H 84H 04H。按一次QD按鈕,微地址爲04H,測得的微碼是01H 08H 00H 05H。按一次QD按鈕,微地址爲05H,測得的微碼是00H 00H 44H 04H。按一次QD按鈕,微地址爲04H。因爲微地址又返回04H,中止測試。

 

(2)讀存儲器RRM工做模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC = 0、SWB = 一、SWA = 0,實驗系統處於讀存儲器RRM工做模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址爲00H,測得的微碼是00H 00H 00H 48H。按一次QD按鈕,微地址爲0AH,測得的微碼是00H 08H 80H 02H。按一次QD按鈕,微地址爲02H,測得的微碼是03H 40H 04H 03H。按一次QD按鈕,微地址爲03H,測得的微碼是00H 00H 40H 02H。按一次QD按鈕,微地址爲02H。因爲微地址又返回02H,中止測試。

 

(3)寫寄存器WRF工做模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC = 0、SWB = 一、SWA = 1,實驗系統處於寫寄存器WRF工做模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址爲00H, 測得的微碼是00H 00H 00H 48H。按一次QD按鈕,微地址爲0BH,測得的微碼是00H 08H A4H 1DH。按一次QD按鈕,微地址爲1DH,測得的微碼是01H 08H 00H 0DH。按一次QD按鈕,微地址爲0DH,測得的微碼是00H  80H  0CH 0EH。按一次QD按鈕,微地址爲0EH,測得的微碼是00H 0CH 04H 1DH。按一次QD按鈕,微地址爲1DH。因爲微地址又返回1DH,中止測試。

 

(4)讀寄存器RRF工做模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC = 一、SWB = 0、SWA = 0,實驗系統處於讀寄存器工做模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址爲00H, 測得的微碼是00H 00H 00H 48H。按一次QD按鈕,微地址爲0CH,測得的微碼是00H 08H A4H 1EH。按一次QD按鈕,微地址爲1EH,測得的微碼是01H 08H 00H 06H。按一次QD按鈕,微地址爲06H,測得的微碼是00H 80H 08H 07H。按一次QD按鈕,微地址爲07H,測得的微碼是00H 10H 04H 1EH。按一次QD按鈕,微地址爲1EH。因爲微地址又返回1EH,中止測試。

 

(5)實驗系統處於PR工做模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC=0、SWB = 0、SWA = 0,實驗系統處於PR工做模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址µA5-µA0爲00H。按一次QD按鈕,微地址爲08H,測得的微碼是00H 08H 20H 0FH。按一次QD按鈕,微地址爲0FH,測得的微碼是00H 80H 08H 90H。因爲之後的微碼與機器指令有關,中止測試。

 

  深入理解0FH微指令的功能和P1測試的狀態條件(IR7-IR4),用二進制開關設置IR7-IR4的不一樣狀態,觀察ADD至OUT八條機器指令對應微程序的微命令信號,特別是微地址轉移的實現。

0FH微指令的功能是根據程序計數器PC從存儲器取指令,送往指令寄存器IR。0FH微指令的下一微指令地址是10H。不過,10H只是一個表面的下一微地址,因爲該微指令中P1 = 1,所以實際的微指令地址的低4位要根據IR7—IR4肯定,實際微地址爲10H + IR7 IR6 IR5 IR4。

 

① 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變爲08H,微代碼爲00H 08H 20H 0FH。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 0,K1(IR4)= 0,至關於ADD指令的操做碼。按一次QD按鈕,微地址變爲10H,微代碼是(00H 03H 00H 18H)。按一次QD按鈕,微地址變爲18H,微代碼是(90H 24H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

② 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變爲08H,微代碼爲00H 08H 20H 0FH。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 0,K1(IR4)= 1,至關於SUB指令的操做碼。按一次QD按鈕,微地址變爲11H,微代碼是(00H 03H 00H 19H)。按一次QD按鈕,微地址變爲19H,微代碼是(04H 24H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

③ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變爲08H,微代碼爲00H 08H 20H 0FH。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 1,K1(IR4)= 0,至關於AND指令的操做碼。按一次QD按鈕,微地址變爲12H,微代碼是(00H 03H 00H 1AH)。按一次QD按鈕,微地址變爲1AH,微代碼是(B8H 24H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

④ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變爲08H,微代碼爲00H 08H 20H 0FH。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 1,K1(IR4)= 1,至關於STA指令的操做碼。按一次QD按鈕,微地址變爲13H,微代碼是(00H 11H 80H 1BH)。按一次QD按鈕,微地址變爲1BH,微代碼是(01H 20H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

⑤ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變爲08H,微代碼爲00H 08H 20H 0FH。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 0,K1(IR4)= 0,至關於LDA指令的操做碼。按一次QD按鈕,微地址變爲14H,微代碼是(00H 10H 80H 1CH)。按一次QD按鈕,微地址變爲1CH,微代碼是(00H 44H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

⑥ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變爲08H,微代碼爲00H 08H 20H 0FH。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 0,K1(IR4)= 1,至關於JC指令的操做碼。按一次QD按鈕,微地址變爲15H,微代碼是(00H 00H 11H 0FH)。令K0(C)=0。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。按一次QD按鈕,微地址變爲15H。令K0(C)=1,按一次QD按鈕,微地址變爲1FH,微代碼是(00H 10H 20H 0FH)。按一次QD按鈕,微地址回到0FH。

⑦ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變爲08H,微代碼爲00H 08H 20H 0FH。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 1,K1(IR4)= 0,至關於STP指令的操做碼。按一次QD按鈕,微地址變爲16H,微代碼是(00H 00H 14H 0FH)。按一次QD按鈕,微地址回到0FH。

⑧ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變爲08H,微代碼爲00H 08H 20H 0FH。按一次QD按鈕,微地址變爲0FH,微代碼爲00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 1,K1(IR4)= 1,至關於OUT指令的操做碼。按一次QD按鈕,微地址變爲17H,微代碼是(00H 10H 14H 0FH)。按一次QD按鈕,微地址回到0FH。

 

5、實驗結果與討論

(1)實驗任務(2)結果討論:

       實驗得出的波形圖以下所示:

 

結論:測量結果與理論值相符。

   (2)實驗任務中的(4)和(5)所測的控制存儲器代碼以下表:

微地址

CM3

CM2

CM1

CM0

00

00

00

00

48

01

00

00

00

00

02

03

40

04

03

03

00

00

40

02

04

01

08

00

05

05

00

00

44

04

06

00

80

08

07

07

00

10

04

1E

08

00

08

20

0F

09

00

08

84

04

0A

00

08

80

02

0B

00

08

A4

1D

0C

00

08

A4

1E

0D

00

80

0C

0E

0E

00

0C

04

1D

0F

00

80

08

90

10

00

03

00

18

11

00

03

00

19

12

00

03

00

1A

13

00

11

80

1B

14

00

10

80

1C

15

00

00

11

0F

16

00

00

14

0F

17

00

10

14

0F

18

90

24

10

0F

19

64

24

10

0F

1A

B8

24

10

0F

1B

01

20

10

0F

1C

03

44

10

0F

1D

01

08

00

0D

1E

01

08

00

06

1F

00

10

20

0F

 

結論:測量結果與理論值相符。

 

6、思考題

請問圖4.4微程序流程圖中的0BH微地址是如何產生的?

答:根據微指令產生後繼微地址的多路轉移方式的邏輯表達式:

  A5=D5=μA5;                      A4=D4=C•P2+μA4;

  A3=D3=IR7•P1+μA3;              A2=D2=IR6•P1+SWC•P0+μA2;

  A1=D1=IR5•P1+SWB•P0+μA1;   A0=D0=IR4•P1+SWA•P0+μA0。

  而由此時的流程圖可知,WRF(011)指令,SWC、SEB、SWA分別爲0、一、1。

且P1=0,P0=1。

   故A5=0,A4=0,A3=1,A2=0,A1=1,A0=1。因而,產生001011地址,即0BH微地址。

 

7、總結

(一) 本次實驗按時按量完成。

(二) 經過本次實驗我掌握時序發生器的組成原理和微程序控制器的組成原理。

(三) 在觀察時序信號波形時,若是出現紅色的波形,則按MATH按鈕便可消除。若是出現紅色的橫條或豎條線,則經過顯示按鈕來調節。

(四) 向AR送地址時地址指示燈AR不隨SW7-SW0數據的變化而改變。主要緣由是LDAR#接觸不良.同理向PC送地址時PC地址指示燈不隨SW7-SW0數據的變化而改變.主要緣由是LDPC#接觸不良。

相關文章
相關標籤/搜索