实验步骤主要是在学生基本掌握流水方式执行指令的基础上,针对结构冲突和数据冲突分别载入事先准备好的目标程序文件。对于结构冲突而言,该文件包含一串浮点加法指令,首先打开一个浮点加法器,记录运行情况;然后打开八个浮点加法器再次运行程序,记录运行情况。比较先后两次运行的记录,可了解结构冲突对CPU性能的影响。对于数据相关而言,首先关闭定向功能,记录运行情况(主要是时钟图的形态);然后打开定向功能,记录运行情况。比较先后两次运行的记录,可了解数据相关和定向技术对CPU性能的影响。
4.3 指令调度和延迟分支实验
该实验的目的是使学生加深对指令调度技术、延迟分支技术,熟练掌握指令调度技术解决流水线中数据冲突的方法,并且进一步了解这些技术对CPU性能的改进。
首先进行用指令调度技术解决数据冲突的实验。先将调度前的目标程序载入模拟器,然后在非定向模式下执行,记录运行情况;再载入调度后的程序,再运行并记录。对比两个程序与执行记录可了解指令调度的方法与作用。然后进行延迟分支的实验。先关闭模拟器的延迟槽功能,载入目标程序运行并记录;再打开延迟槽功能,再次运行程序并记录。对比两次记录可了解延迟分支对提高CPU性能的作用。
5 结语
本文根据系统结构课程实际需求,阐述了一种指令级/流水线级模拟器的设计与实现,并且利用该模拟器设计了3个实验,达到了提高教学质量,降低实验成本的目的。未来可以考虑将该模拟器执行目标程序的过程动画化,这样可使得实验效果更加直观。同时,该模拟器可与其他实验内容(如Cache)的模拟器,集成为一个模拟器,这样可大大增强模拟器的功能,更好地实现教学目的。
[1] Erich Gamma,Richard Helm,Ralph Johnson,等.设计模式:可复用面向对象软件的基础[M].北京:机械工业出版社,2002:185-193,283-292.
[2] AndrewTroelsen. Pro C# 2008 and the .NET 3.5Platform [M].纽约:Apress出版社,2007:588-592.
[3] 张晨曦,王志英,沈立,等. 计算机系统结构教程[M].北京:清华大学出版社,2009:70-90.
[4] 张晨曦,刘依,刘宏伟,等. 计算机系统结构实践教程[M].北京:清华大学出版社,2010:3-40. 2/2 首页 上一页 1 2 |