计算机体系结构实验讲义.docx

上传人:b****8 文档编号:30064694 上传时间:2023-08-04 格式:DOCX 页数:11 大小:97.92KB
下载 相关 举报
计算机体系结构实验讲义.docx_第1页
第1页 / 共11页
计算机体系结构实验讲义.docx_第2页
第2页 / 共11页
计算机体系结构实验讲义.docx_第3页
第3页 / 共11页
计算机体系结构实验讲义.docx_第4页
第4页 / 共11页
计算机体系结构实验讲义.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

计算机体系结构实验讲义.docx

《计算机体系结构实验讲义.docx》由会员分享,可在线阅读,更多相关《计算机体系结构实验讲义.docx(11页珍藏版)》请在冰豆网上搜索。

计算机体系结构实验讲义.docx

计算机体系结构实验讲义

本科教学实验讲义

(实验)课程名称计算机体系结构

 

学院(部、中心):

信息学院

执笔人(签字):

唐斌

审核人(签字):

编写时间:

2016.7.9

 

贵州财经大学教务处印制

年月日

实验一流水线技术

一、实验目的

1.加深对计算机流水线基本概念的理解;

2.理解MIPS结构如何用5段流水线来实现,理解各段的功能和基本操作;

3.加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响;

4.进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。

5.加深对指令调度和延迟分支技术的理解;

6.熟练掌握用指令调度技术来解决流水线中的数据冲突的方法;

7.进一步理解指令调度技术和延迟分支技术对CPU性能的改进。

二、实验平台

模拟器MIPSsim、计算机

三、实验内容和步骤

1、流水线工作原理

a.启动MIPSsim。

b.勾选配置菜单中的“流水方式”,使模拟器工作于流水方式下。

c.观察程序在流水线中的执行情况,步骤如下:

(1)用MIPSsim的“文件”菜单中的“载入程序”来加载pipeline.s(在模拟器所在文件夹下的“样例程序”文件夹中);

(2)关闭定向功能。

这是通过在“配置”菜单中去选“定向”(即使得该项前面没有“√”号)来实现的;

(3)用单步执行一周期的方式(“执行”菜单中,或用F7)执行该程序,观察每一周期中,各段流水寄存器内容的变化、指令的执行情况(代码窗口)以及时钟周期图;

(4)当执行到第10个时钟周期时,各段分别正在处理的指令是:

IF:

ID:

EX:

MEM:

WB:

画出这时的时钟周期图。

(5).这时各流水寄存器中的内容为:

IF/ID.IR:

IF/ID.NPC:

ID/EX.A:

ID/EX.B:

ID/EX.Imm:

ID/EX.IR:

EX/MEM.ALUo:

EX/MEM.IR:

MEM/WB.LMD:

MEM/WB.ALUo:

MEM/WB.IR:

2、流水线中的冲突

a.启动MIPSsim。

b.观察和分析结构冲突对CPU性能的影响,步骤如下:

(1)加载structure_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中);

(2)执行该程序,找出存在结构冲突的指令对以及导致结构冲突的部件;

(3)记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执行周期数

的百分比;

(4)把浮点加法器的个数改为6个;

(5)再次重复上述

(1)~(3)的工作;

(6)分析结构冲突对CPU性能的影响,讨论解决结构冲突的方法。

c.观察数据冲突并用定向技术来减少停顿,步骤如下:

(1)把浮点加法器的个数改为1个;

(2)加载data_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中);

(3)关闭定向功能。

这是通过在“配置”菜单中去选“定向”

(4)用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出

在什么时刻发生了RAW(先写后读)冲突;

(5)记录数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数,计算停

顿时钟周期数占总执行周期数的百分比;

(6)复位CPU;

(7)打开定向功能。

这是通过在“配置”菜单中勾选“定向”

(8)用单步执行一周期的方式(F7)执行该程序,同时查看时钟周期图,列出在

什么时刻发生了RAW(先写后读)冲突,并与(3)的结果进行比较;

(9)记录数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数。

计算采

用定向技术后性能提高的倍数。

3.指令调度

a.启动MIPSsim。

b.勾选配置菜单中的“流水方式”,使模拟器工作于流水方式下。

c.用指令调度技术解决流水线中的结构冲突与数据冲突。

(1)加法﹑乘法﹑除法部件的个数设置为两个,延迟时间都设置为3个时钟周期;

(2)加载schedule.asm关闭定向功能。

(3)执行载入的程序,查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合,以及程序执行的总时钟周期数;

(4)采用指令调度技术对程序进行指令调度,消除冲突。

将调度后的程序放到after-schedule.asm中;

(5)载入after-schedule.asm;

(6)执行该程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;

(7)根据记录结果,比较调度前和调度后的性能。

论述指令调度对于提高CPU性能的作用。

4.用延迟分支减少分支指令对性能的影响。

a.启动MIPSsim;

b..载入branch.asm,关闭延迟分支功能。

(1)执行该程序,观察并记录发生分支延迟的时刻,保存下其时钟周期图(可用拷屏的方法);

(2)记录执行该程序所花的总时钟周期数;

(3)假设延迟槽为一个,对branch.asm进行指令调度,然后存到delayed-branch.asm中;

(4)载入delayed-branch.asm;

(5)打开延迟分支功能;

(6)执行该程序,观察其时钟周期图,保存下其时钟周期图;

(7)记录执行该程序所花的总时钟周期数;

(8)对比上述两种情况下的时钟周期图;

(9)根据记录结果,比较没采用延迟分支和采用了延迟分支的性能。

论述延迟分支对于提高CPU性能的作用。

 

实验二指令级并行及其开发

一、实验目的

1.加深对循环级并行性、循环展开技术和寄存器换名技术的理解。

2.了解循环展开、指令调度等技术对CPU性能的改进。

3.理解Tomasulo算法原理。

4.加深动态调度技术的理解。

二、实验平台

winMIPS64模拟器、Tomasulo算法模拟器、计算机。

三、实验内容和步骤

1、用循环展开、寄存器换名以及指令调度提高性能

(1)用MIPS汇编语言自己编写代码文件*.s,程序中包含一个循环次数为4的整数倍的

简单循环。

(2)启动winMIPS64并加载和运行该程序。

记录执行过程中各种相关发生的次数以及

程序执行的总时钟周期数。

(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的

修改。

然后对新的循环体进行寄存器换名和指令调度。

(4)用winMIPS64运行修改后的程序,记录执行过程中各种相关发生的次数以及程序

执行的总时钟周期数。

(5)根据记录结果,比较循环展开、指令调度前后的性能。

2、Tomasulo算法

启动omasulo算法模拟器,设置浮点功能部件的延迟时间为加减法2个周期,乘法10

个时钟周期,除法40个时钟周期,load部件2个时钟周期。

a、对于下面的代码段,给出当指令MUL.D写结果时,保留站、load缓冲器以及寄

存器状态表中的内容。

L.DF6,24(R2)

L.DF2,12(R3)

MUL.DF0,F2,F4

SUB.DF8,F6,F2

DIV.DF10,F0,F6

ADD.DF6,F8,F2

b.按步进方式执行上述代码,利用模拟器的“小三角按钮”的对比显示功能,观察

每一个时钟周期前后各信息表中内容的变化情况。

c.对于上面相同的延迟时间和代码段。

(1)给出在第3个时钟周期时,保留站、load缓冲器以及寄存器状态表中的内容。

(2)步进5个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。

(3)再步进10个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。

(4)假设浮点功能部件的延迟时间为加减法3个时钟周期,乘法8个时钟周期,除法

40个时钟周期。

自己编写一段程序(要在实验报告中给出),重复上述步骤

(2)

的工作。

 

实验三多Cache一致性

一、实验目的

1、加深对多CACHE一致性的理解。

2、进一步掌握解决多CACHE一致性的目录协议和监听协议的基本思想。

3、掌握在各种情况下,目录协议和监听协议是如何工作的。

给出进行操作的类

型以及CACHE块状态的变化情况

二、实验内容及步骤

2.1、模拟器使用方法简介(目录式)

该模拟器模拟4个CPU(A、B、C、D)访存的工作过程。

每个CPU中都有一个Cache,该Cache包含有4个块,其块地址为0-3。

分布式存储器中有32个块,其块地址为0-31。

每个块状态用色块表示,其中灰色为“无效”状态,淡青色为“共享”状态,橘红色为“独占”。

主存中块的状态由其右边的目录项的颜色来表示,未缓冲状态由黄色来表示,其他两种状态同Cache块。

对于每一个CPU都可以指定所要进行的访问是读还是写(从列表中选),并在输入框中输入所要访问的主存块号,然后用鼠标单击在其右边的标有“↓”的按钮,模拟器就将开始演示该访问的工作过程。

2.2、实验内容(目录协议)

对于以下访问序列,写出目录协议所进行的操作。

所进行的访问

目录协议所进行的操作

CPUA读第6块

CPUB读第6块

CPUD读第6块

CPUB写第6块

CPUC读第6块

CPUD写第20块

CPUA写第20块

CPUD写第6块

CPUA读第12块

2.3、模拟器简介(监听协议)

该模拟器模拟4个CPU(A、B、C、D)访存的工作过程。

每个CPU中都有一个Cache,该Cache包含有4个块,其块地址为0-3。

集中共享存储器中有32个块,其块地址为0-31。

每个块状态用色块表示,其中灰色为“无效”状态,淡青色为“共享”状态,橘红色为“独占”。

对于每一个CPU都可以指定所要进行的访问是读还是写(从列表中选),并在输入框中输入所要访问的主存块号,然后用鼠标单击在其右边的标有“↓”的按钮,模拟器就将开始演示该访问的工作过程。

2.4、实验步骤

对于以下访问序列,写出监听协议所进行的操作。

所进行的访问

是否发生替换

是否发生写回

监听协议所进行的操作

CPUA读第5块

CPUB读第5块

CPUC读第5块

CPUB写第5块

CPUD读第5块

CPUB写第21块

CPUA写第23块

CPUC写第23块

CPUB读第29块

CPUB写第5块

 

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

当前位置:首页 > 经管营销 > 财务管理

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

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