計算機組成原理實驗指導書_第1頁
計算機組成原理實驗指導書_第2頁
計算機組成原理實驗指導書_第3頁
計算機組成原理實驗指導書_第4頁
計算機組成原理實驗指導書_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機組成原理實驗指導

肖鐵軍

年月

72

說明

本實驗指導資料與清華大學出版社出版的《計算機組成原理:微課視頻版》第3版(ISBN:

978-7-302-58329-5)配套。如果從指令集架構的角度,第3版教材包含了兩條線索,一條線

是改進第二版的CISC,第二條線是新增加的RISC。本實驗指導資料主要是針對CISC這條

線,

RISC條線的實瞼,作者在中國大學MOOC平臺上開設了“計算機組成與CPU設計實

驗”這門課,以RISC-V為目標,用VerilogHDL進行從邏輯電路到CPU的硬件設計。希望

了解該條線的讀者,可從慕課中了解從邏輯電路到CPU設計的完整實驗方案。

CISC條線的實驗,以JUC-3教學模型機為實例,課程實驗部分以計算機部件的原理驗

證為主,課程設計部分以微程序設計為主。本文檔只是實驗部分,課程設計指導有另外的文

檔。本文檔說明了實驗設計的思路,提供給教師作為參考素材,同時配有完整的

Verilog/SystemVerilog源代碼以及部分教學視頻。

第1章實驗工具和環(huán)境

1.1概述

支持Intel(原Altera)和Xilinx兩大主流FPGA。目前已經適配的實驗板和FPGA:

實驗板FPGA芯片

WeLab遠程實驗板AkeraCycloneIVE

口袋實驗板AlteraCycloneIVE

TerasicDE2-U5AlleraCycloneII

DigilentNexys4DDRXilinxArtix-7

三種實驗軟件可用:

?WeLab遠程FPGA虛擬實驗平臺

?JULAB虛擬實驗軟件

?WeLab本地實驗軟件(測試版)

1.2虛擬實驗

以真實的FPGA電路板為基礎,通過軟件虛擬出豐富的實驗界面,用戶通過虛擬面板操

作真實的實驗板。

目前虛擬面板支持的常規(guī)虛擬元件有36個撥動開關、2()個按鍵、36個LED指示燈以

及8個七段數碼管;還支持可自定義數量的數據框和信號框,用于較復雜的CPU實驗。

1.3FPGA設計工具

簡單介紹基本設計流程。本實驗指導以驗證性實驗為主,設計環(huán)節(jié)了解大致流程即可。

除了QuartusPrime和Vivado軟件,可以介紹僅用于加載電路文件到FPGA的編程器軟

件,QuartusProgrammerVivadoLabEdition,另外Digilent有一個軟件Adept,體積小、使

用簡單,可以介紹。

1.4實驗軟件

JULAB實驗軟件是最初的本地實驗軟件;WeLab遠程FPGA實驗平臺是最新開發(fā)的實

驗平臺;WeLab本地實驗軟件目前還是測試版。

文件互用兼容性:

實驗類型擴展文件名用途WeLab遠程JULABWeLab本地備注

邏輯電路實驗.jvp虛擬面板J

邏輯電路實驗.vp;.vpl虛擬面板V

CPU實驗.jvp虛擬面板

CPU實驗.cpu虛擬面板V

CPU實驗Jem;.jmm;Jai數據文件JV

CPU實驗.cmc;.mine;.ai數據文件V

簡單歸納下,字母j開頭的是遠程實驗平臺的最新文件格式,JULAB軟件已經在數據文

件上兼容新格式,但是虛擬面板尚未兼容。WeLabUSB本地實驗軟件僅支持邏輯電路實驗,

74

可以彌補JULAB不兼容性jvp的問題。

分別介紹三種實驗系統(tǒng)的基本操作。不要寫成手冊,從實驗流程的角度編寫。

第2章實驗項目

(每個實驗做什么基本已定,原理部分文字還需補充,實驗任務還需推敲)

2.1基本組合邏輯電路

2.1.1實驗目的

熟悉虛擬實驗軟件及其基本操作;熟悉FPGA設計軟件的使用方法;

理解總線的三態(tài)傳輸特性。

2.1.2實驗原理

本項目包含3個基本的組合邏輯實驗。

1.三態(tài)門

實驗原理圖如圖2.1,

/

圖2.1三態(tài)門實驗原理圖

76

2.多路選擇器

OSEL1

OSELO

ARRDATAO

888DATA1

8BBDATA2

圖2.2多路選擇器實驗原理圖

3.七段譯碼器

圖2.3七段譯碼器實驗原理圖

2.1.3實驗任務

1.理解三態(tài)門的特性和正確用法。

特別地,考慮以下問題。

(1)如果有2個或2個以上的三態(tài)門同時打開,會有什么問題?

(2)三態(tài)門全都關閉時,輸出LED顯示是什么?和你的設想是否一樣?

2.理解多路選擇器的用法

分析與三態(tài)門的結果有什么不同。

在實際應用中哪些情況可以用多路器的方案代替三態(tài)門。

3.七段譯碼器

2.2基本時序邏輯電路

2.2.1實驗目的

理解數據寄存器、移位寄存器和計數器的工作特性:

2.2.2實驗原理

L11LIOL9L8L7L6L5L4L3L2L1L0

BS858488

SI2BBSSS2sl

S10S9S8S7

圖2.4

2.2.3實驗任務

1.數據寄存器的特性

2.移位寄存器的特性

3.計數器的特性

2.3加減運算及特征標志

2.3.1實驗目的

掌握加減運算電路的基本結構,理解無符號數和補碼加減運算;

理解標志位的含義,掌握溢出等標志位的實現方法。

78

2.3.2實驗原理

本實驗設計的加減運算器以加法器為核心配合輔助邏輯實現加減運算,基本結構如圖

2.5所示。

2.3.3預習要求

根據實驗原理分析各種運算對應的控制信號,填入下表。

運算控制信號

運算指令運算功能

M2MlMO

傳送X(MOV)F=X

加法(ADD)F=X+Y

減法(SUB)F=X-Y

加1(INC)F=X+1

減1(DEC)F=X-1

2.3.4實驗任務

驗證圖2.5加減運算電路的各項功能(包括特征標忘),記錄實驗數據,并進行分析得

出結論。【提示】先根據理論知識設定驗證目標,再設計驗證方案??梢则炞C以下兒個方面:

(1)加法運算結果的特征標志位。

著重觀察無符號數加法運算結果是否溢出是由CF反映還是由OF反映,帶符號數(補

碼)加法運算是否溢出是由CF反映還是由OF反映。

(2)減法

注意觀察減法運算是否應該產生借位和實際CF值的關系。查閱資料分析產生這種結果

的原因。

(3)傳送

傳送功能的控制信號有什么特點。

(4)加1和減1

加1和減1功能可以不需要Y提供運算數“1”,而是通過控制信號M0?M2就可以實

現,加1的“1”是如何產生的?“-1”的二進制編碼有什么特點,減1的”是如何產生?

2.4算術邏輯單元

2.4.1實驗目的

理解算術邏輯單元(ALU)的組成結構;

理解移位的實現方法。

2.4.2實驗原理

ALU是在上一個實驗加減運算電路的基礎上,擴充了移位運算和邏輯運算。實驗電路

結構如圖。

圖2.6ALU原理圖

其中移位運算可以實現算術右移(SR)、邏輯左移(SL)和不移位(SV),電路結構

如組2.7。移位電路擴充在加法器的A輸入端,通過控制MO、Ml、M2均為0,使加法器的

B和C0端均為0,從而將移位電路輸出到加法器A端的數據傳送到加法器的輸出。

8()

a2aia。

圖2.7移位運算電路

邏輯運算由與門、或門和異或門實現,并通過一個四選一多路器選擇運算的功能。邏輯

運算的一個運算數來自X,而另一個運算數并不是直接來自Y而是來自B,這是為了利用

M0和Ml均為1時B端為(1111)2的特性,從而可以用異或門實現對X的取反。

2.4.3預習要求

根據圖2.6ALU原理圖自己總結控制信號與運算功能的對應關系填寫表2.1,其中ASR、

SHL、INC、DEC和NOT要求均為單操作數運算,即Y的取值不會影響運算結果。。

表2.1ALU運算功能與控制信號

運算功能描述SRSVSLM2MlM0SISO

F=X傳送X(MOV)

F=X+Y加法(ADD)

F=X-Y減法(SUB)

F=XAY邏輯與(AND)

F=XVY邏輯或(OR)

F=X?Y邏輯異或(XOR)

F=X/2算術右移(ASR)

F=2X左移(SHL)

F=X邏輯非(NOT)

F=X+1加l(INC)

F=X-1減KDEC)

2.4.4實驗任務

2.5通用寄存器組

2.5.1實驗目的

理解單端口寄存器組的電路結構。

2.5.2實驗原理

CPU內部通常包含若干個通用寄存器(GenralRegister),以暫存參加運算的數據和中

間結果。這些寄存器的集合就稱為寄存器組(RegisterSet)。為方便訪問其中的寄存器,對

寄存器堆中的寄存器進行統(tǒng)一編碼,稱為寄存器號(Index)或者寄存器地址。圖2.8給出了

一個通用寄存器組(GRS)的電路結構。

Clk----------------------------------------------1

D

Load

一Q

圖2.8

它包含4個寄存器(RO~R1),每個寄存器存儲4位二進制信息。寄存器組具有一個讀

數據端口Q和一個寫數據端口D,但是地址端口Index是讀寫共用的,所以仍然屬于單端口

寄存器組。Load是地址譯碼器的使能信號,Load為1時,地址譯碼器根據Index選擇某一個

寄存器,使其在時鐘到來時裝入D端口的數據;當Load為。時,地址譯碼器的輸出均為0,

所有寄存器的內容均不會改變。

2.5.3實驗任務

82

2.6運算器數據通路

2.6.1實驗目的

理解運算器數據通路的組成結構;

掌握運算器的工作原理和信息傳遞的控制過程。

2.6.2實驗原理

運算器數據通路實驗原理如圖2.9所示。

“BUS

圖2.9運算器數據通路

本實驗的ALU在前面實驗的基礎上,增加了控制信號的譯碼電路,將10種算術邏輯

運算編碼為4位的ALUop,表2.2給出了編碼與運算功能的對應關系。

表2.2ALU控制信號編碼與運算功能

ALUopALU運算

0000傳送X(MOV)

0001加法(ADD)

()010減法(SUB)

0011邏輯與(AND)

0100邏輯或(OR)

0101邏輯異或(XOR)

0110算術右移(ASR)

0111左移(SHL)

1(X)0邏輯非(NOT)

1001加l(INC)

1010減KDEC)

通用寄存器組GRS(GeneralRegisterSet)包含4個4位的通用寄存器R0~R3,用來存

放參加運算的操作數和運算結果。

PSW存放ALU運算結果的特征標志。RX和RF是暫存器。圖2.9中沒有標出RX、RF

和PSW的RESET信號。

2.6.3預習要求

2.6.4實驗任務

多周期數據通路的重點是理解運算的實現過程。完成以下驗證操作以完全理解數據通路

的信息傳遞、信息加工過程。在實驗報告中列表寫出每一步操作需要設置的開關及數據通路

上各部件的狀態(tài)。

1.將2個數據存入RI、R2寄存器

2.完成雙操作數運算

3.寄存器傳送

4.移位運算

5.單操作數運算

2.7主存儲器組織

2.7.1實驗目的

掌握存儲器的結構和存儲器的字位擴展方式。

2.7.2實驗原理

假設CPU的主存空間為2KX8,實驗中的基本存儲芯片為256X4位,采用字位擴展方

式構成1KX8的存儲器,位于整個2K主存空間的較低1K空間,原理圖如圖2.10所示,8

個256X4位的存儲芯片采用字位擴展方式構成1KX8的存儲器。ADDR為地址輸入端,高

兩位地址通過譯碼產生片選信號,低8位地址與存儲芯片的地址端相連,DATA為數據輸入

端,存儲芯片的數據輸出端與總線DB相連。

84

圖2.10主存儲器組織實驗原理圖

2.7.3預習要求

分析圖2.10+2?4憚碼器輸出的4個片選信號所對應的地址范圍,以16進制形式填入

下表。

2.7.4實驗任務

1.片選信號的產生

2.存儲器的寫操作和讀操作過程

2.8指令和尋址方式

2.8.1實驗目的

熟悉實驗調試軟件;理解各種尋址方式;理解指令功能。

2.8.2實驗原理

實驗CPU的指令系統(tǒng)包括各類傳送類指令、算術邏輯運算類指令、移位類指令、轉移

類指令、子程序調用返回指令、輸入輸出類指令等。在尋址方式上采用最典型的尋址方式,

分別是立即尋址、直接尋址、間接尋址、寄存器尋址、寄存器間接尋址、寄存器自增間接尋

址、寄存器變址尋址、相對尋址8種。

2.8.3實驗任務

1.基本尋址方式

將下面的指令通過調試軟件輸入到模型機的主存,輸入時注意根據指令的字長確定每條

指令所在的主存地址。在開始運行之前向以下主存單元輸入已知數據,使(()()80H)=()088H,

(0088H)=0081H,輸入完成后以“指令單步”方式運行,并對運行結果進行分析。

MOV0080H,0081E

MOV#0080H,RO

MOV(0080H),RI

MOV8(RO),0082E

MOV(RI),R2

2.移位、條件轉移指令和相對尋址

將下面匯編語言程序手工翻譯成機器指令,填寫在橫線上,并輸入到模型機的主存,以

“指令單步”方式運行。

ORG0030H

0030:;MOV#0505,RI

0032:;AND#0001,RI

0034:;JNZ1(PC)

0036:______;HALT

0037:______;ROLRI

0038:;JMP0032H

記錄指令執(zhí)行后的相關數據(如相關寄存器和PSW的變化),分析執(zhí)行結果的意義(如

程序是否轉移,轉移的目的地址是多少),直到運行到HALT指令。

3.入棧和出棧指令

將下面匯編語言程序輸入到模型機的主存,以“指令單步”方式運行。觀察堆棧指針

SP、堆棧存儲單元以及相關寄存器和內存單元的變化,理解堆棧的用法。

MOV#0041H,RO

PUSHRO

PUSH0040H

POP(RO)

POPRI

86

4.子程序調用和返回

下面的程序將0038H單元的內容讀入寄存器R1,調用子程序完成乘2,返回主程序后

將結果保存到0039H單元。程序運行前需要先設置OO38H單元的值,。

ORG0030H

0030:MOV0038H,R1

0031:

0032:CALL0040H

0033:

0034:MOVRI,0039H

0035:

0036:HALT

ORG0040H

0040:ADDRI,RI

0041:RET

將上面的程序輸入到模型機,將機器碼填入橫線上,單步運行,觀察子程序調用和返回

前后的堆棧變化。

2.9微程序設計

2.9.1實驗目的

掌握微程序設計。

熟悉實驗調試軟件的使用。

2.9.2實驗原理

模型計算機硬件系統(tǒng)的數據通路見理論課教材。CPU的字長為16位,內部采用16位寬

的單總線結構,包括運算器和控制器兩個部件。系統(tǒng)總線采用單總線結構,包括16位的數

據總線DB、16位的地址總線AB和控制總線CBOCPU內部總線IB與系統(tǒng)總線之間通過

DR、AR相聯(lián)。主存儲器的字長也是16位,并且按字編址,不支持字節(jié)訪問。

微指令的編碼方式采用字段直接編碼方式,微指令格式見理論課教材。本實驗只使用固

定轉移,即BM字段值固定為0。下面以一條指令為例,說明微程序的設計。假設要實現的

指令如下:

MOV#5AA5H,R1

該指令的功能為將立即數#5AA5H傳送給寄存器RI。

一條指令的完成需要經過幾個階段,包括取指階段、取操作數階段、執(zhí)行階段。為簡化

設計,這里只考慮完成這一條指令,源操作數尋址方式只考慮立即尋址,沒有取目的操作數

的過程,在執(zhí)行階段直接將源操作數送入目的寄存器RI。微程序見表2.3。

表2.3示例微程序

微地微指令字段(H)

微指令(H)微命令

址(H)F0FlF2F3F4F5F6F7F8F9

取00020010001100001000001PCoe,ARce

(()

令0010002900200)00211002RD.DRces,PCinc

002480(X)003220000000003DRoe,IRee

取0030004PCoe,ARce

數0040005RD,DRces,PCinc

0050006DRoc,RYcc

存0060000RYoe,GRSce

2.9.3預習要求

1)認真閱讀、理解實驗原理。

2)編寫“INC0040H”的微程序,填入實驗操作和記錄部分的相應表格中」查指令編

碼表翻譯出指令的機器碼。

2.9.4實驗任務

1.運行示例微程序

(1)輸入微程序

將表2.3的微程序通過調試軟件輸入到實驗板的控存。

(2)輸入主程序

首先將指令MOV#5AA5,R1翻譯成機瘠碼。查教材指令編碼表,MOV指令編碼的高4

位是0001B,低12位是兩個操作數的尋址方式,源操作數在前,目的操作數在后,各占6

位,查教材尋址方式編碼表,立即尋址的編碼是011000B,R1寄存器尋址的編碼是。00001B,

因此指令第一個字的二進制編碼是0001-0110-0000-0001B,轉換為16進制是1601H;指令

的第二個字是立即數5AA5Ho因此可以翻譯出指令的機制碼如下:

16015AA5;MOV#5AA5,RI

將16015AA5通過調試軟件輸入到實驗模型機從0030H地址開始的主存單元。

(3)運行微程序

將有變化的數據記錄在下表中(沒有變化的留為空白)。分析運行結果是否正確。

微地址微指令IBPCARIRDRTRRn

000

001

002

003

004

005

006

2.編寫INC0040H指令的微程序并運行

設計指令“INC0040H”的微程序,填入下表。

微地微指令字段(H)

微指令(H)微命令

(H)FOFlF2F3F4F5F6F7F8F9

取00020010001100001000001PCoe,ARce

指00100029002000002110002RD.DRces.PCinc

88

令0024800(X)03220000000()03DRoe,IRce

0030004

0040005

作0050006

0060007

0070008

0080009

執(zhí)

行009000A

00A0000

查指令編碼表翻譯出指令的機器碼:

;INC0040H

從主存的0030H單元開始,存放指令的機器碼。在0040H單元預先寫入操作數,如

FFFFHo運行微程序,將數據記錄在下表中。微程序運行結束后,刷新主存顯示,查看0040H

單元的內容為O分析運行結果是否正確。

微地址

000

001

002

003

004

005

006

007

008

009

00A

3.編寫包含微轉移分支的微指令

2.10高速緩沖存儲器

2.10.1實驗目的

理解高速緩存的結構和原理;掌握直接映像方式的地址變換過程;熟悉訪問和置換過程。

2.10.2實驗原理

實驗設計的存儲器字長是4位。CACHE共32個字,采用直接映像,分8個塊(BLOCK),

也稱作行(LINE),每塊4個字(WORD);主存地址空間是256個字,按CACHE大小分

區(qū),即每區(qū)32字,共分8個區(qū)。實驗原理如圖2.11。直接映像將地址分為三個部分:區(qū)號、

塊號、塊內地址(也稱字地址),用塊號作為TAG和Cache行的地址。TAG存儲器存放每

個CACHE行對應的主存塊的區(qū)號,VALID存儲器字長為1,復位時清0,主存塊裝入CACHE

某一塊時該塊的VALID置1。

32.11直接相聯(lián)映像方式CACHE結構

當訪問主存某一單元時,以A7?A0中的塊號為地址找到TAG存儲器中的相應單元,并

將該TAG單元內容與A7~A0中的區(qū)號比較一致并且VALID為1,表示Cache命中,此時用

A7?A0中的塊號選擇Cache行,用字地址通過多路器MUX從一行的4個字中選擇一個輸出。

如果TAG與A7?A0中的區(qū)號比較結果不一致或者VALID為0,說明不命中,即該單元不在

Cache中,需要將主存該單元所在的塊裝入CacheoCacheController的WR信號有效時,在

時鐘CLK的作用下依次產生4個Cache字的寫信號WR0-WR3,將讀出的主存單元內容寫

入Cacheo

90

2.10.3實驗任務

1.初始狀態(tài)

2.不命中情況下CACHE內容的裝入

3.命中情況下CACHE的讀出

4.抖動現象

2.11中斷電路

2.11.1實驗目的

理解中斷的基本概念;了解中斷控制器的結構;

掌握中斷請求、中斷響應、中斷處理的過程;

掌握中斷屏蔽在中斷過程中的作用。

2.11.2實驗原理

中斷實驗電路設計劃分成CPU、中斷控制器部分、10接口三部分,實驗電路結構如圖

2.12o圖中沒有畫出RESET信號,當RESET有效時,中斷允許觸發(fā)器、屏蔽寄存器和設備

請求觸發(fā)器清零。

10接II

REQQ

------------------DATA1

<J=數據寄存外『

____________RDYI

-R設備請求〈一1-----

班QLQ幀發(fā)器

REQ2

地RIX)

Al址

RD1

AOE譯

n碼

IORDRD2

圖2.12中斷控制器結構圖

(1)IO接口

溫馨提示

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

評論

0/150

提交評論