当前位置:教学内容/课程内容
理论大纲
实验大纲
实验课程内容
  一. 实验简介  
 
     本实验课程主要分为两部分,一是计算机系统结构基础实验,二是基于WinDLX虚拟处理器的实验。前者主要通过VC环境,模拟流水线指令调度、加法乘法静态多功能流水线调度、加法乘法动态多功能流水线调度和页面置换算法性能分析等;后者主要对WinDLX的配置和使用,对指令相关、数据相关和指令调度等课程内容进行了实际模拟实验。学生通过亲自动手操作,加深了对计算机系统结构的基本知识的理解,熟悉了处理器指令系统等的设计和实现,为今后进行更深入的学习和从事相关理论研究或工程实践打下了坚实的基础。
 
     
  二. 实验目的和任务  
 
     本实验是计算机科学与技术专业的一门技术实践课,也是与“计算机系统结构”配套的基础实验课程。学生需要通过实验熟练掌握流水线指令调度等重要概念以及WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;加深对结构相关的理解,了解结构相关对CPU性能的影响;加深对数据相关的理解,掌握如何使用定向技术来减少数据相关带来的暂停;加深对指令调度的理解,了解指令调度技术对CPU性能改进的好处。
     为此目的,学生需要完成“流水线指令调度”,“加法乘法静态多功能流水线调度”,“加法乘法动态多功能流水线调度”,“页面置换算法性能分析等”;“熟悉WinDLX的使用”、“结构相关”、“数据相关”和“指令调度”等试验项目。
 
     
  三. 实验内容和要求  
 
     实验主要分为计算机系统结构基础知识实验和WinDLX实验两部分。
     计算机系统结构基础实验主要分为四个部分,包括“流水线指令调度”,“加法乘法静态多功能流水线调度”,“加法乘法动态多功能流水线调度”,“页面置换算法性能分析等”。
     WinDLX实验也主要分为四部分,包括“熟悉WinDLX的使用”、“结构相关”、“数据相关”和“指令调度”等。
     具体的实验内容和要求见下表:
表一 计算机系统结构基础实验

名 称

描 述

实验内容

学 时

 

 

流水线指令调度

通过本实验,理解指令调度的方法,掌握使用VC开发平台模拟处理机内部指令流调度的编程策略。

给定要执行的任务和执行该任务的流水线结构,编写程序模拟在示例流水线执行,在屏幕上输出任务调度序列及运行所需时间。用时空图方式模拟该任务的运行,对比二者的结果。

 

 

 

 

加法乘法静态多功能流水线调度

通过本实验,掌握静态多功能流水线指令调度的方式,理解重构指令序列对指令执行性能的影响,了解在处理机中指令调度的一般方式。

给定要执行的任务和执行该任务的静态多功能流水线结构,编写程序模拟在静态多功能流水线上任务的执行,在屏幕上输出任务调度序列及运行所需时间;用时空图方式模拟该任务的运行,对比二者的结果。

 

 

 

 

加法乘法动态多功能流水线调度

通过本实验,掌握加法乘法动态双功能指令调度的方式,理解静态多功能流水线和动态多功能流水线在调度模式上的区别,了解指令并行度上限的概念。

给定要执行的任务和执行该任务的动态多功能流水线结构,编写程序模拟在动态多功能流水线任务的执行,在屏幕上输出任务调度序列及运行所需时间;用时空图方式模拟该任务的运行,对比二者的结果。

 

 

 

 

 

页面置换算法性能分析等

通过本实验,掌握LRU、FIFO页面置换算法,理解堆栈型算法,了解页面置换算法对虚拟存储系统性能的影响。

给定页面地址流。使用VC开发模拟程序,模拟在不同实页情况下,FIFO和LRU置换算法对实页的使用情况,假定访问实页的时间为 ,访问辅存的时间为100  计算并在屏幕上输出对应该页地址流在不同实页数和置换算法的情况下的访问时间。多次更改页地址流,重复上述操作,记录时间,观测在FIFO和LRU算法下访问时间和实页数的关系。根据结果理解堆栈型算法。

 

 

 

 表二 WinDLX实验

名 称

描 述

实验内容

学 时

 

 

 

 

 

熟悉WinDLX的使用

通过本实验,熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。

1. 用WinDLX模拟器执行求阶乘程序fact.s 。执行步骤详见“WinDLX教程”
这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
2. 用WinDLX模拟器执行程序gcm.s
该程序从标准输入读入两个整数,求他们的greatest common measure,然后将结果写到标准输出。
该程序中调用了input.s中的输入子程序。
3. 用WinDLX模拟器执行求素数程序prim.s
这个程序计算若干个整数的素数。
4. 通过上述使用WinDLX,总结WinDLX的特点。

 

 

 

 

 

 

 

结构相关

通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。

1. 用WinDLX模拟器运行程序structure_d.s
2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。
3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
4. 论述结构相关对CPU性能的影响,讨论解决结构相关的方法。

 

 

 

 

 

 

数据相关

通过本实验,加深对数据相关的理解,掌握如何使用定向技术来减少数据相关带来的暂停。

1. 在不采用定向技术的情况下(通过Configuration菜单中的Enable Forwarding选项设置),用WinDLX模拟器运行程序data_d.s
2. 记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
3. 在采用定向技术的情况下,用WinDLX模拟器再次运行程序data_d.s。
4. 记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
5. 根据上面记录的数据,计算采用定向技术后性能提高的倍数。

 

 

 

 

 

指令调度

通过本实验,加深对指令调度的理解,了解指令调度技术对CPU性能改进的好处。

1. 通过Configuration菜单中的“Floating point stages”选项,把除法单元数设置为3,把加法﹑乘法﹑除法的延迟设置为3个时钟周期。
2. 用WinDLX模拟器运行调度前的程序sch-before.s 。记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。
3. 用WinDLX模拟器运行调度后的程序sch-after.s ,记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。
4. 根据记录结果,比较调度前和调度后的性能。
5. 论述指令调度对于提高CPU性能的意义。