北科大计组原理实验报告简单模型机及Cache控制器.docx

上传人:b****7 文档编号:25805512 上传时间:2023-06-15 格式:DOCX 页数:14 大小:690.23KB
下载 相关 举报
北科大计组原理实验报告简单模型机及Cache控制器.docx_第1页
第1页 / 共14页
北科大计组原理实验报告简单模型机及Cache控制器.docx_第2页
第2页 / 共14页
北科大计组原理实验报告简单模型机及Cache控制器.docx_第3页
第3页 / 共14页
北科大计组原理实验报告简单模型机及Cache控制器.docx_第4页
第4页 / 共14页
北科大计组原理实验报告简单模型机及Cache控制器.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

北科大计组原理实验报告简单模型机及Cache控制器.docx

《北科大计组原理实验报告简单模型机及Cache控制器.docx》由会员分享,可在线阅读,更多相关《北科大计组原理实验报告简单模型机及Cache控制器.docx(14页珍藏版)》请在冰豆网上搜索。

北科大计组原理实验报告简单模型机及Cache控制器.docx

北科大计组原理实验报告简单模型机及Cache控制器

北京科技大学计算机与通信工程学院

实验报告

 

实验名称:

简单模型机与Cache控制器

学生姓名:

专业:

计算机科学与技术

班级:

学号:

指导教师:

实验成绩:

实验地点:

机电楼301

实验时间:

2015年6月10日

 

一、实验目的与实验要求

1、实验目的

(1)掌握一个简单CPU的组成原理。

(2)在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。

(3)为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。

(4)掌握Cache控制器的原理及其设计方法。

(5)熟悉FPGA应用设计及EDA软件的使用。

(6)熟悉QuartusII软件的使用及FPGA应用设计。

2、实验要求

(1)验证性实验:

简单模型机设计实验

(2)掌握cache控制器的原理和方法

二、实验设备(环境)及要求

实验箱,Window8,QuartusⅡ软件

三、实验内容与步骤

1、实验1

(1)实验原理

本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。

CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图3.32所示。

这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。

本模型机共有五条指令:

IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下表3.12所示(高4位为操作码):

其中,JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。

微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行。

(2)实验步骤

CPU采用微程序控制器作为控制器构建的简单模型机实验步骤如下:

①写入实验程序,并进行校验,分两种方式,手动写入和联机写入。

(以下为联机写入)

联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但微程序和机器程序得以指定的格式写入到以TXT为后缀的文件中,微程序和机器程序的格式如下:

;//*****StartOfMainMemoryData*****//

$P0020;START:

INR0从IN单元读入数据送R0

$P0100;ADDR0,R0R0和自身相加,结果送R0

$P0230;OUTR0R0的值送OUT单元显示

$P03E0;JMPSTART跳转至00H地址

$P0400;

$P0550;HLT停机

;//*****EndOfMainMemoryData*****//

 

;//**StartOfMicroControllerData**//

$M00000001;NOP

$M01006D43;PC->AR,PC加1

$M03107070;MEM->IR,P<1>

$M04002405;R0->B

$M0504B201;A加B->R0

$M1D105141;MEM->PC

$M30001404;R0->A

$M32183001;IN->R0

$M33280401;R0->OUT

$M35000035;NOP

$M3C006D5D;PC->AR,PC加1

;//**EndOfMicroControllerData**//

(如果要让程序不循坏,要把$P0400;改成$P0405;)

选择联机软件的“转储”->“装载”功能将该格式(*.TXT)文件装载入实验系统。

选择联机软件的“转储”->“刷新指令区”可以读出下位机所有的机器指令和微指令,并在指令去显示。

根据对实验原理的描述给出实验接线图。

②运行微程序

运行时也分两种情况:

本机运行和联机运行。

(以下为联机运行)

将MC单元的编程开关置为“运行”档,MEM单元的编程开关也置为“运行”档,进入软件界面,选择菜单命令“实验”->“简单模型机”,打开简单模型机数据通路图。

按动CON单元的总清零CLR,然后通过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序,当模型机执行完JMP指令后,检查OUT单元显示的数是否为IN单元值的2倍。

2、实验2

(1)实验原理

Cache是介于CPU和主存之间的小容量存储器,包括管理在内的全部功能由硬件实现,对程序员是透明的,在一定程度上解决了CPU和主存之间的速度差异。

与主存容量相比,Cache的容量很小,它保存的内容只是内存内容的一个子集,且Cache与主存的数据交互以块为单位。

把主存中的块放到Cache中时必须把主存地址映射到Cache中,即确定位置的对应关系,并采用硬件实现,以便CPU给出的访存地址能够自动变换成Cache地址。

由于程序访问的局部性,使得主存的平均读出时间接近Cache的读出时间,大大提高了CPU的访存效率。

地址映射方式有全相联方式、直接相联方式、组相联方式,本实验采用的是直接方式,这种变换方式简单而直接,硬件实现很简单,访问速度也比较快,但是块的冲突率比较高。

其主要原则是:

主存中一块只能映象到Cache的一个特定的块中。

假设主存的块号为B,Cache的块号为b,则它们之间的映象关系可以表示为:

b=BmodCb其中,Cb是Cache的块容量。

设主存的块容量为Mb,区容量为Me,则直接映象方法的关系如图3.19所示。

把主存按Cache的大小分成区,一般主存容量为Cache容量的整数倍,主存每一个分区内的块数与Cache的总块数相等。

直接映象方式只能把主存各个区中相对块号相同的那些块映象到Cache中同一块号的那个特定块中。

例如,主存的块0只能映象到Cache的块0中,主存的块1只能映象到Cache的块1中,同样,主存区1中的块Cb(在区1中的相对块号是0)也只能映象到Cache的块0中。

根据上面给出的地址映象规则,整个Cache地址与主存地址的低位部分是完全相同的。

直接映象方式的地址变换过程如图3.20所示,主存地址中的块号B与Cache地址中的块号b是完全相同的。

同样,主存地址中的块内地址W与Cache地址中的块内地址w也是完全相同的,主存地址比Cache地址长出来的部分称为区号E。

Cache和CPU以及存储器的连接如图3.21所示,本实验要在FPGA中实现Cache及其地址变换逻辑(也叫Cache控制器),采用直接相联地址变换,只考虑CPU从Cache读数据,不考虑CPU写回数据的情况。

(2)实验步骤

;//**************************************//

;////

;//Cache控制器实验指令文件//

;////

;//ByTangDuCO.,LTD//

;////

;//**************************************//

;//*****StartOfMainMemoryData******//

$P0011;数据

$P0122

$P0233

$P0344

$P0455

$P0566

$P0677

$P0788

$P0899

$P09AA

$P0ABB

$P0BCC

$P0CDD

$P0DEE

$P0EFF

$P0F00

;//******EndOfMainMemoryData*******//

①用联机软件的“转储”->“装载”功能将该格式(*.TXT)文件装载入实验系统。

装入过程中,在软件的输出区的“结果”栏会显示装载信息,如当前正在装载的是机器指令还是微指令,还剩多少条指令等。

②联机软件在启动时会读取所有机器指令和微指令,在指令区显示,软件启动后,也可以选择菜单命令“转储”->“刷新指令区”读取下位机指令,并在指令区显示。

点击指令区的‘主存’TAB按钮,两列数据中显示了主存的所有数据,第一列为主存地址,第二列为该地址中的数据。

对上面文件检查机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的指令,单击需修改单元的数据,此时该单元变为编辑框,输入2位数据并回车,编辑框消失,写入数据以红色显示。

③CPU访问主存地址由CON单元的SD17…SD10模拟给出,如00000001。

CPU访问主存的读信号由CON单元的K7模拟给出,置K7为低,可以观察到FPGA单元上的L8指示灯亮,L0…L7指示灯灭,表示Cache失效。

此时按动KK+按钮四次,注意数据总线和地址总线上的指示灯的变化情况,地址会依次加一,数据总线上显示的是当前主存数据,按动四次KK+按钮后,L8指示灯变灭,L0…L7上显示的值即为Cache送往CPU的数据。

④重新给出主存访问地址,如00000011,L8指示灯变灭,表示Cache命中,说明第0块数据已写入Cache。

⑤记住01H单元的数据,然后通过联机软件,修改01H单元的数据,重新给出主存访问地址00000001,再次观察L0-L7指示灯表示的值是01H单元修改前的值,说明送往CPU的数据是由Cache给出的。

⑥重新给出大于03H地址,体会Cache控制器的工作过程。

 

四:

实验结果与分析

1、实验1

连接的实验线路:

IN指令:

ADD指令:

OUT指令:

停机指令:

2、实验2

五:

结论(讨论)

1、实验结论

(1)基本掌握了一个简单CPU的组成原理。

(2)基本掌握leCache控制器的原理及其设计方法。

(3)熟悉了FPGA应用设计及EDA软件的使用。

(4)熟悉了QuartusII软件的使用及FPGA应用设计。

2、讨论

几次实验下来,我对计算机组成原理这门课有了更深的了解。

希望以后有更多的机会接触这类实验。

 

六、教师评审

教师评语

实验成绩

 

签名:

日期:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1