当前位置:文档之家› 计算机体系结构 实验报告2 华东理工大学

计算机体系结构 实验报告2 华东理工大学

实验名称多通路运算器和寄存器堆实验地点信息楼420
实验日期2012-12-7
一、实验目的
1.了解多通路的运算器与寄存器堆的组成结构。

2.掌握多通路的运算器与寄存器堆的工作原理及设计方法。

二、实验设备
PC 机一台, TD-CMX 实验系统一套。

三、实验原理
1.ALU&REG 单元的结构
ALU&REG单元由运算器和双端口寄存器堆构成,通过不同的控制信号SEL1、SEL0 产生不同结构的运算器。

运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B。

SEL0 和SEL1 用于选择运算器和寄存器堆的通路:
(1)当SEL1=0、SEL0=0,ALU 的输出D7…D0、REG(右口)的输出OUT7…OUT0 和ALU与REG 的输入IN7…IN0 接到CPU 内总线上时,如图1-2-1 所示,寄存器堆只能从右口进行操作,相当于只有一组控制线的单端口寄存器堆,一般计算机组成原理实验涉及到的运算器和寄存器就是采用这种结构。

(2)当SEL1=1、SEL0=0,REG(右口)的输出OUT7…OUT0 和ALU 与REG(右口)的输入IN7…IN0 接到CPU 内总线上时,运算器和双端口寄存器堆的结构如图1-2-2 所示,寄存器堆由两组控制信号来分别进行控制,每组控制信号都可以相对独立的对寄存器堆进行读写操作,同时增加了执行专用通道A 总线,以利于提高指令执行的效率。

(3)当SEL1=1、SEL0=1,REG(右口)的输出OUT7…OUT0 和ALU 与REG(右口)的输入IN7…IN0 接到CPU 内总线上时,运算器和双端口寄存器堆的结构如图1-2-3 所示,在双通道双端口运算器和寄存器堆的基础上增加了暂存器旁路,把运算结果写回到寄存器堆的同时也可以写到暂存器A、暂存器B 中。

由于在运算型指令中把运算的结果写到通用寄存器中的指令很多,占运算型指令的大多数,发生通用寄存器数据相关的概率相当高,因此,可以用硬件设置专用路径来解决这种通用寄存器数据相关问题。

上面介绍了运算器和寄存器堆的三种典型的数据通路图,在计算机组成原理这门课程中我们已经对运算器有了初步的了解,明白运算器的主要功能是完成算术和逻辑类运算。

在系统结构这门课程中经过进一步的研究,还会了解到运算器与寄存器堆的结构对于计算机系统的设计有着重要的作用,对于计算机性能的优劣有着很大的影响。

2.ALU&REG 单元的应用
在了解运算器与寄存器堆结构的基础上,基于如图1-2-3 所示的双通道双端口运算器和双端口寄存器堆的结构可以设计一段程序:从IN 单元读入一个数据,存入R0;从IN 单元读入另一个数据,存于R1;将R0 和R1 相加,结果存于R0;将R0 和R1 相加,结果存于R3,同时打入暂存器A 中;再将R0 的值送OUT 单元显示。

四、实验操作及运行结果
(1)实验步骤
1、把时序与操作台单元的“MODE”短路块插上,使系统工作在四节拍模式,按实验连接图接线。

注意:连线时实验箱电源要处于关闭状态。

2、确保接线正确后,将实验箱连到电脑:电源线+并口Jtag下载线(打印机口),并打开实验箱电源。

3、在软件Quartus II 8.0中选择“File->Open Project”选项,按照以下路径查找实验过程中需要下载到FPGA中的数据“C:\TangDu\CMX\FPGA\ALU&REG \ ALU&REG.qpf(.sof)”,打开该文件后,单击软件中的“Programmer”选项,单击“Start”完成下载。

如果下载成功在界面Progress中可以看到100%的标志字样。

4、用串口电缆连接实验箱和电脑打印机口,接通电源,打开软件CMX,进行串口测试(如果串口线未连接或者串口线故障则自动弹出错误信息对话框):端口→串口选择→COM1或者COM2;然后,测试串口通讯是否成功:端口→串口测试。

5、如果串口通讯成功,在PC 机上运行TD-CMX,进入联机软件界面,选择菜单命令“【实验】—【ALU&REG实验】”,打开数据通路图。

6、首先按CON单元的CLR开关进行系统清零,状态机为S0态。

然后,采用单节拍运行方式
来观察数据流通。

1)用连接成的双通道双端口运算器和双端口寄存器堆的结构实现以下一段程序:从IN 单元读入一个数据,存入R0;从IN 单元读入另一个数据,存于R1;将R0 和R1 相加,结果存于R0;将R0 和R1 相加,结果存于R3,同时打入暂存器A 中;再将R0 的值送OUT 单元显示。

2)根据指令要求,得出用时钟进行驱动的状态机描述,即得出其有限状态机
S0:空操作,系统复位后的状态
S1:IN->R0;从IN 单元往R0 中打一个数
S2:IN->R1; 从IN 单元往R1 中打一个数
S3:R0 ->A, R1 ->B;同时把R0、R1 中的数打入暂存器A、B 中
S4:A+B->R0;将A+B 的结果送往R0
S5:A+B->R3,A+B->A; 增加暂存器旁路,将A+B 的结果送往R3 的同时打入暂存器A中S6:R0->OUT;把R0 中的数送入输出单元显示
3)每个状态运行4个周期(T1—T4),即每个状态按4次单节拍运行按钮。

请在S1和S2状态,通过IN单元的开关分别输入两个数(比如1和3)。

观察数据通路图中数据的变化,并检查是否与状态的描述相符合。

最后观察OUT液晶单元是否显示正确(如果从IN 单元输入的两个数分别为1和3,则OUT单元输出应该为4)。

7、当模型机执行完一遍后,检查OUT 单元显示的数是否正确,按下CON 单元的总清按
钮CLR,改变IN 单元的值,再次执行机器程序,从OUT 单元显示的数判别程序执行是否正确。

(2)实验结果
五、实验中出现的问题和解决方法
问题1:接线问题
解决方法:本试验我自认为是这三个实验里连线最复杂的一个,因为开始的时候小组其他的两个同学连的线,后来实验执行不成功,所以我们又检查了一下连线,虽然找到了几个错误但是仍然不成功,不得不在找一遍,最终发现了加法运算器执行不正确的地方了。

问题2:串口问题
解决方法:使用新的串口需要根据实验操作指示重新安装USB转串口驱动程序。

问题3:ID问题
解决3:每次实验的 ID都不一致所以需要根据实验操作指示做相关修改。

相关主题