计算机组成原理实验指导书_第1页
计算机组成原理实验指导书_第2页
计算机组成原理实验指导书_第3页
计算机组成原理实验指导书_第4页
计算机组成原理实验指导书_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理实验指导

肖铁军

年月

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章实验工具和环境

1.1概述

支持Intel(原Altera)和Xilinx两大主流FPGA。目前已经适配的实验板和FPGA:

实验板FPGA芯片

WeLab远程实验板AkeraCycloneIVE

口袋实验板AlteraCycloneIVE

TerasicDE2-U5AlleraCycloneII

DigilentNexys4DDRXilinxArtix-7

三种实验软件可用:

•WeLab远程FPGA虚拟实验平台

•JULAB虚拟实验软件

•WeLab本地实验软件(测试版)

1.2虚拟实验

以真实的FPGA电路板为基础,通过软件虚拟出丰富的实验界面,用户通过虚拟面板操

作真实的实验板。

目前虚拟面板支持的常规虚拟元件有36个拨动开关、2()个按键、36个LED指示灯以

及8个七段数码管;还支持可自定义数量的数据框和信号框,用于较复杂的CPU实验。

1.3FPGA设计工具

简单介绍基本设计流程。本实验指导以验证性实验为主,设计环节了解大致流程即可。

除了QuartusPrime和Vivado软件,可以介绍仅用于加载电路文件到FPGA的编程器软

件,QuartusProgrammerVivadoLabEdition,另外Digilent有一个软件Adept,体积小、使

用简单,可以介绍。

1.4实验软件

JULAB实验软件是最初的本地实验软件;WeLab远程FPGA实验平台是最新开发的实

验平台;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的问题。

分别介绍三种实验系统的基本操作。不要写成手册,从实验流程的角度编写。

第2章实验项目

(每个实验做什么基本已定,原理部分文字还需补充,实验任务还需推敲)

2.1基本组合逻辑电路

2.1.1实验目的

熟悉虚拟实验软件及其基本操作;熟悉FPGA设计软件的使用方法;

理解总线的三态传输特性。

2.1.2实验原理

本项目包含3个基本的组合逻辑实验。

1.三态门

实验原理图如图2.1,

/

图2.1三态门实验原理图

76

2.多路选择器

OSEL1

OSELO

ARRDATAO

888DATA1

8BBDATA2

图2.2多路选择器实验原理图

3.七段译码器

图2.3七段译码器实验原理图

2.1.3实验任务

1.理解三态门的特性和正确用法。

特别地,考虑以下问题。

(1)如果有2个或2个以上的三态门同时打开,会有什么问题?

(2)三态门全都关闭时,输出LED显示是什么?和你的设想是否一样?

2.理解多路选择器的用法

分析与三态门的结果有什么不同。

在实际应用中哪些情况可以用多路器的方案代替三态门。

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加减运算电路的各项功能(包括特征标忘),记录实验数据,并进行分析得

出结论。【提示】先根据理论知识设定验证目标,再设计验证方案。可以验证以下儿个方面:

(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)。为方便访问其中的寄存器,对

寄存器堆中的寄存器进行统一编码,称为寄存器号(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实验任务

多周期数据通路的重点是理解运算的实现过程。完成以下验证操作以完全理解数据通路

的信息传递、信息加工过程。在实验报告中列表写出每一步操作需要设置的开关及数据通路

上各部件的状态。

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的指令系统包括各类传送类指令、算术逻辑运算类指令、移位类指令、转移

类指令、子程序调用返回指令、输入输出类指令等。在寻址方式上采用最典型的寻址方式,

分别是立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、寄存器自增间接寻

址、寄存器变址寻址、相对寻址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

记录指令执行后的相关数据(如相关寄存器和PSW的变化),分析执行结果的意义(如

程序是否转移,转移的目的地址是多少),直到运行到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实验原理

模型计算机硬件系统的数据通路见理论课教材。CPU的字长为16位,内部采用16位宽

的单总线结构,包括运算器和控制器两个部件。系统总线采用单总线结构,包括16位的数

据总线DB、16位的地址总线AB和控制总线CBOCPU内部总线IB与系统总线之间通过

DR、AR相联。主存储器的字长也是16位,并且按字编址,不支持字节访问。

微指令的编码方式采用字段直接编码方式,微指令格式见理论课教材。本实验只使用固

定转移,即BM字段值固定为0。下面以一条指令为例,说明微程序的设计。假设要实现的

指令如下:

MOV#5AA5H,R1

该指令的功能为将立即数#5AA5H传送给寄存器RI。

一条指令的完成需要经过几个阶段,包括取指阶段、取操作数阶段、执行阶段。为简化

设计,这里只考虑完成这一条指令,源操作数寻址方式只考虑立即寻址,没有取目的操作数

的过程,在执行阶段直接将源操作数送入目的寄存器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

行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大小分

区,即每区32字,共分8个区。实验原理如图2.11。直接映像将地址分为三个部分:区号、

块号、块内地址(也称字地址),用块号作为TAG和Cache行的地址。TAG存储器存放每

个CACHE行对应的主存块的区号,VALID存储器字长为1,复位时清0,主存块装入CACHE

某一块时该块的VALID置1。

32.11直接相联映像方式CACHE结构

当访问主存某一单元时,以A7〜A0中的块号为地址找到TAG存储器中的相应单元,并

将该TAG单元内容与A7~A0中的区号比较一致并且VALID为1,表示Cache命中,此时用

A7〜A0中的块号选择Cache行,用字地址通过多路器MUX从一行的4个字中选择一个输出。

如果TAG与A7〜A0中的区号比较结果不一致或者VALID为0,说明不命中,即该单元不在

Cache中,需要将主存该单元所在的块装入CacheoCacheController的WR信号有效时,在

时钟CLK的作用下依次产生4个Cache字的写信号WR0-WR3,将读出的主存单元内容写

入Cacheo

90

2.10.3实验任务

1.初始状态

2.不命中情况下CACHE内容的装入

3.命中情况下CACHE的读出

4.抖动现象

2.11中断电路

2.11.1实验目的

理解中断的基本概念;了解中断控制器的结构;

掌握中断请求、中断响应、中断处理的过程;

掌握中断屏蔽在中断过程中的作用。

2.11.2实验原理

中断实验电路设计划分成CPU、中断控制器部分、10接口三部分,实验电路结构如图

2.12o图中没有画出RESET信号,当RESET有效时,中断允许触发器、屏蔽寄存器和设备

请求触发器清零。

10接II

REQQ

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

<J=数据寄存外『

____________RDYI

-R设备请求〈一1-----

班QLQ帧发器

REQ2

地RIX)

Al址

RD1

AOE译

n码

IORDRD2

图2.12中断控制器结构图

(1)IO接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论