《计算机体系结构》课程实验教学大纲Ⅰ.docx

上传人:b****6 文档编号:8669158 上传时间:2023-02-01 格式:DOCX 页数:13 大小:21.63KB
下载 相关 举报
《计算机体系结构》课程实验教学大纲Ⅰ.docx_第1页
第1页 / 共13页
《计算机体系结构》课程实验教学大纲Ⅰ.docx_第2页
第2页 / 共13页
《计算机体系结构》课程实验教学大纲Ⅰ.docx_第3页
第3页 / 共13页
《计算机体系结构》课程实验教学大纲Ⅰ.docx_第4页
第4页 / 共13页
《计算机体系结构》课程实验教学大纲Ⅰ.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

《计算机体系结构》课程实验教学大纲Ⅰ.docx

《《计算机体系结构》课程实验教学大纲Ⅰ.docx》由会员分享,可在线阅读,更多相关《《计算机体系结构》课程实验教学大纲Ⅰ.docx(13页珍藏版)》请在冰豆网上搜索。

《计算机体系结构》课程实验教学大纲Ⅰ.docx

《计算机体系结构》课程实验教学大纲Ⅰ

《计算机体系结构》课程实验教学大纲(Ⅰ)

[注:

同一门实验课程若对不同专业开设的实验项目、实验要求不同,则大纲应不同,区分可采用题目后加(Ⅰ)、(Ⅱ)、(Ⅲ)……的办法]

编号:

课程总学时:

54实验学时:

8

课程总学分:

3实验学分:

(非单独设课的实验不用填此项)

先修课程:

《模拟电子技术》、《数字电子技术》、《数字逻辑》、《计算机组成原理》,《操作系统》,《编译原理》

适用专业:

计算机科学与技术(嵌入式本科)、网络工程(本科)、计算机科学与技术(信息技术方向本科)

一、本课程实验的主要目的与任务

本课程实验的主要目的与任务是为了配合本课程更好的深入开展和执行,通过让学生做一定数量的实验,提高学生从总体结构、系统分析这一层次来研究和分析计算机系统的能力,帮助学生建立整机的概念;使学生掌握计算机系统结构的基本概念、基本原理、基本结构、基本设计和分析方法,并对计算机系统结构的发展历史和现状有所了解。

二、本课程实验应开设项目

序号

实验项目名称

学时

类型

必做/选做

所需主要设备型号、名称

1

实验一

MIPS指令系统和MIPS体系结构

2

验证性

必做

微机1台、MIPSsim模拟器

2

实验二流水线及流水线中的冲突

2

验证性

必做

微机1台、MIPSsim模拟器

3

实验三指令调度和延迟分支

2

验证性

必做

微机1台、MIPSsim模拟器

4

实验四Cache性能分析

2

验证性

必做

微机1台、MyCache模拟器

注:

1、类型---指验证性、综合性、设计性;2、该表格不够可拓展。

三、各实验项目主要实验内容和基本要求

实验1MIPS指令系统和MIPS体系结构

1.实验目的

(1)了解和熟悉指令级模拟器;

(2)熟练掌握MIPSsim模拟器的操作和使用方法;

(3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解;

(4)熟悉MIPS体系结构。

2.实验内容

首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。

(1)启动MIPSsim(用鼠标双击MIPSsim.exe)。

(2)选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。

(3)参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。

可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以

单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。

(4)选择“文件”->“载入程序”选项,加载样例程序alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000100)。

(5)查看“寄存器”窗口PC寄存器的值:

[PC]=0x00000000。

(6)执行load和store指令,步骤如下:

1)单步执行一条指令(F7)。

2)下一条指令地址为=0x00000004,是一条无(有,无)符号载入字节(字节,半字,字)指令。

3)单步执行一条指令(F5)。

4)查看R1的值,[R1]=0xFFFFFFFFFFFFFF80。

5)下一条指令地址为0x00000008,是一条有(有,无)符号载入字(字节,半字,字)指令。

6)单步执行1条指令。

7)查看R1的值,[R1]=0x0000000000000080。

8)下一条指令地址为0x0000000C,是一条无(有,无)符号载入字节(字节,半字,字)指令。

9)单步执行1条指令。

10)查看R1的值,[R1]=0x0000000000000080。

11)单步执行1条指令。

12)下一条指令地址为0x00000014,是一条保存字(字节,半字,字)指令。

13)单步执行一条指令(F5)。

14)查看内存BUFFER处字的值,值为0x00000080。

(7)执行算术运算类指令。

步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为2。

2)双击“寄存器”窗口中的R2,将其值修改为3。

3)单步执行一条指令。

4)下一条指令地址为0x00000020,是一条加法指令。

5)单步执行一条指令。

6)查看R3的值,[R3]=0x0000000000000005。

7)下一条指令地址为0x00000024,是一条乘法指令。

8)单步执行一条指令。

9)查看LO、HI的值,[LO]=0x0000000000000006,[HI]=0x0000000000000000。

(8)执行逻辑运算类指令。

步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为0XFFFF0000。

2)双击“寄存器”窗口中的R1,将其值修改为0XFFFF0000。

3)单步执行一条指令。

4)下一条指令地址为0x00000030,是一条逻辑与运算指令,第二个操作数寻址方式是_____(寄存器直接寻址,立即数寻址)。

5)单步执行一条指令。

6)查看R3的值,[R3]=0x00000000FFFF0000。

7)下一条指令地址为0x00000034,是一条逻辑或指令,第二个操作数寻址方式是__寄存器直接寻址(寄存器直接寻址,立即数寻址)。

8)单步执行一条指令。

9)查看R3的值,[R3]=0x0000000000000000。

(9)执行控制转移类指令。

步骤如下:

1)双击“寄存器”窗口中R1,将其值修改为2。

2)双击“寄存器”窗口中R2,将其值修改为2。

3)单步执行一条指令。

4)下一条指令地址为0x00000040,是一条BEQ指令,其测试条件是__操作数相等则转移________,目标地址为0x00000054__________。

5)单步执行1条指令。

6)查看PC的值,[PC]=0x0000004c,表明分支_____成功_____(成功,失败)。

7)一条指令是一条BGEZ指令,其测试条件是___大于等于0则转移_______,目标地址为0x__________。

8)单步执行1条指令。

9)查看PC的值,[PC]=0x00000058表明分支__成功________(成功,失败)。

10)下一条指令是一条BGEZAL指令,其测试条件是___大于等于0转移并链接_______,目标地址为0x__________。

11)单步执行1条指令。

12)查看PC的值,[PC]=0x00000064_,表明分支______成功____(成功,失败);查看R31的值,[R31]=0x0000000000000000。

13)单步执行1条指令。

14)查看R1的值,[R1]=0x0000000000000074。

15)下一条指令地址为0x00000068,是一条JALR指令,保存目标地址的寄存器为R______,保存返回地址的目标寄存器为R______。

16)单步执行1条指令。

17)查看PC和R3的值,[PC]=0x00000074,[R3]=0x000000000000006C。

3.实验要求

通过本实验应达到如下要求:

(1)对指令级模拟器有一定了解;

(2)能够熟练使用MIPSsim模拟器;

(3)理解MIPS指令系统及其特点,加深对MIPS指令操作语义的理解。

4.实验器材

(1)实验平台采用指令级和流水线操作级模拟器MIPSsim;

(2)计算机一台。

实验2流水线及流水线中的冲突

1.实验目的

(1)加深对计算机流水线基本概念的理解。

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

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

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

2.实验内容

首先要掌握MIPSsim模拟器的使用方法。

(1)启动MIPSsim。

(2)根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。

(用鼠标双击各段,就可以看到各流水寄存器的内容)

(3)参照MIPSsim模拟器使用说明,熟悉MIPSsim模拟器的操作和使用方法。

可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中)。

然后分别以单步执行一条周期、执行多个周期、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。

(4)选择配置菜单中的“流水方式”选项,使模拟器工作于流水方式下。

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

1)选择MIPSsim的“文件”—>“载入程序”选项来加载pipeline.s(在模拟器所在文件夹下的“样例程序”文件夹中)。

2)关闭定向功能。

这是通过“配置”—>“定向”(使该项前面没有√号)来实现的。

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

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

IF:

__0000000000000030__

ID:

0000000000000030

EX:

000000000000002C

MEM:

000000000000002C

WB:

________________________________

画出这时的时钟周期图。

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

IF/ID.IR:

000000008CC4003C_

IF/ID.NPC:

0000000000000030

ID/EX.A:

0000000000000000

ID/EX.B:

0000000000000000_

ID/EX.Imm:

0000000000000019___

ID/EX.IR:

0000000020030019___________

EX/MEM.ALUo:

0000000000000004_____

EX/MEM.IR:

000000002021FFFF_____________

MEM/WB.LMD:

0000000000000000______

MEM/WB.ALUo:

0000000000000008_____

MEM/WB.IR:

0000000020060008_________

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

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

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

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

4)把浮点加法器的个数改为4个。

5)再次重复步骤①~③的工作。

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

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

1)全部复位。

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

3)关闭定向功能。

这是通过“配置”->“定向”(是该项前面没有√号)来实现的。

4)用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突。

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

6)复位CPU。

7)打开定向功能。

这是通过“配置”->“定向”(是该项前面有√号)来实现的。

8)用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突,并与步骤3的结果进行比较。

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

计算采用定向技术后的性能是原来的几倍。

3.实验要求

通过本实验应达到如下要求:

(1)能够加深对计算机流水线基本概念的理解。

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

(3)进一步加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响。

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

4.实验器材

(1)实验平台采用指令级和流水线操作级模拟器MIPSsim;

(2)计算机一台。

实验3指令调度和延迟分支

1.实验目的

(1)加深对指令调度技术的理解。

(2)加深对延迟分支技术的理解。

(3)熟练掌握用指令调度技术解决流水线中的数据冲突的方法。

(4)进一步理解指令调度技术对CPU性能的改进。

(5)进一步理解延迟分支技术对CPU性能的改进。

2.实验内容

首先要掌握MIPSsim模拟器的使用方法。

(1)启动MIPSsim。

(2)根据前面的相关知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义(双击各段,就可以看到各流水寄存器中的内容)。

(3)选择“配置”->“流水方式”选项,使模拟器工作于流水方式下。

(4)用指令调度技术解决流水线中的数据冲突。

1)启动MIPSsim。

2)用MIPSsim的“文件”->“载入程序”选项来加载schedule.s(在模拟器所在的文件夹下的“样例程序”文件夹中)。

3)关闭定向功能。

这是通过“配置”->“定向”(是该项前面没有√号)来实现的。

4)执行所载入的程序。

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

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

将调度后的程序存到after-schedule.s中。

6)载入after-schedule.s。

7)执行该程序。

观察程序在流水线中的执行情况,记录程序执行的总时钟周期数。

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

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

(5)用延迟分支减少分支指令对性能的影响。

1)启动MIPSsim。

2)载入branch.s。

3)关闭延迟分支功能。

这是通过“配置”—>“延迟槽”选项来实现的。

4)执行该程序。

观察并记录发生分支延迟的时刻。

5)记录执行该程序所用的总时钟周期数。

6)假设延迟槽有1个,对branch.s进行指令调度,然后保存到“delayed-branch.s”中。

7)载入delayed-branch.s。

8)打开延迟分支功能。

9)执行该程序。

观察其时钟周期图。

10)记录执行该程序所用的总时钟周期数。

11)对比上述两种情况下的时钟周期图。

12)根据记录结果,比较没采用延迟分支和采用了延迟分支的性能之间的不同。

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

3.实验要求

通过本实验应达到如下要求:

(1)进一步加深对指令调度技术和延迟分支技术的理解,及它们对CPU性能的影响。

(2)能够熟练掌握用指令调度技术解决流水线中的数据冲突的方法。

4.实验器材

(1)实验平台采用指令级和流水线操作级模拟器MIPSsim;

(2)计算机一台。

实验4Cache性能分析

1.实验目的

(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。

(2)掌握Cache容量、相联度、块大小对Cache性能的影响。

(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。

(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。

2.实验内容

首先掌握MyCache模拟器的使用方法。

(1)Cache容量对不命中率的影响。

1)启动MyCache。

2)用鼠标单击“复位”按钮,把各参数设置为默认值。

3)选择一个地址流文件。

方法:

选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。

4)选择不同的Cache容量,包括2KB、4KB、8KB、16KB、32KB、64KB、128KB和256KB。

分别执行模拟器(单击“执行到底”按钮即可执行),然后在表7.1中记录各种情况下的不命中率。

表7.1不容量下Cache的不命中率

Cache容量(KB)

2

4

8

16

32

64

128

256

不命中率

地址流文件名:

___________________。

5)以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线,并指明地址流文件名。

6)根据该模拟结果,你能得出什么结论?

(2)相联度对不命中率的影响

1)用鼠标单击“复位”按钮,把各参数设置为默认值。

此时的Cache容量为64KB。

2)选择一个地址流文件。

方法:

选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。

3)选择不同的Cache相联度,包括2路、4路、8路、16路和32路。

分别执行模拟器(单击“执行到底”按钮即可执行),然后在表7.2中记录各种情况下的不命中率。

表7.2当容量为64KB时,不同相联度下Cache的不命中率

相联度

1

2

4

8

16

32

不命中率

地址流文件名:

___________________。

4)把Cache的容量设置为256KB,重复3)的工作,并填写表7.3.

表7.3当容量为256KB时,不同相联度下Cache的不命中率

相联度

1

2

4

8

16

32

不命中率

5)以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线,并指明地址流文件名。

6)根据该模拟结果,你能得出什么结论?

(3)Cache块大小对不命中率的影响

1)用鼠标单击“复位”按钮,把各参数设置为默认值。

2)选择一个地址流文件。

方法:

选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。

3)选择不同的Cache块大小,包括16B、32B、64B、128B和256B。

对于Cache的各种容量,包括2KB、8KB、32KB、64KB、128KB和512KB。

分别执行模拟器(单击“执行到底”按钮即可执行),然后在表7.4中记录各种情况下的不命中率。

表7.4各种块大小情况下Cache的不命中率

块大小

(B)

Cache容量(KB)

2

8

32

128

512

16

32

64

128

256

地址流文件名:

___________________。

4)分析Cache块大小对不命中率的影响。

(4)替换算法对不命中率的影响

1)用鼠标单击“复位”按钮,把各参数设置为默认值。

2)选择地址流文件all.din。

方法:

选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。

3)对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表7.5中记录各种情况下的不命中率。

表7.5LRU和随机替换法的不命中率的比较

Cache容量

相联度

2路

4路

8路

LRU

随机算法

LRU

随机算法

LRU

随机算法

16KB

64KB

256KB

1MB

4)分析不同的替换算法对Cache不命中率的影响。

3.实验要求

通过本实验应达到如下要求:

(1)进一步加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。

(2)进一步理解Cache容量、相联度、块大小对Cache性能的影响。

(3)能够理解降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。

4.实验器材

(1)实验平台采用Cache模拟器MyCache;

(2)计算机一台。

四、实验成绩考核与评定办法

根据出勤情况、实际操作情况和实验报告进行实验评分,成绩评定为优秀(A)、良好(B)、中(C)、及格(D)和不及格(E)五个档次。

实验成绩占期末总成绩的10%。

五、大纲说明

本实验大纲和《计算机体系结构》课程相对应,可以参见《计算机体系结构》课程教学大纲(Ⅰ)。

本课程要求教师以启发式教学为主,充分调动学生的思维,鼓励学生大胆创新,以最优化的方法完成实验。

六、主要参考书目

教材:

《计算机系统结构实践教程》,张晨曦,清华大学出版社,2010年5月

参考书:

《计算机系统结构》,李学干,西安电子科技大学出版社,2009年2月

撰写人:

刘家磊审定人:

批准人:

执行时间:

2011年5月

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

当前位置:首页 > 高等教育 > 农学

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

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