基于Web的虚拟仿真器在《计算机体系结构》本科教学中的应用

时间:2022-04-20 03:45:06

基于Web的虚拟仿真器在《计算机体系结构》本科教学中的应用

摘要:针对计算机本科主干专业课《计算机体系结构》教学中存在的困难和挑战,在分析对比了国内外同类模拟器优缺点的基础上,整合设计了一套基于Web模式的体系统结构教学模拟器。这套模拟器覆盖的知识点全面深入,简单易用,在教学实践中发挥了很好的作用。

关键词:计算机体系结构;本科教学;模拟器

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)42-0179-03

一、引言

计算机体系结构是计算机本科专业的一门重要的专业基础课,是一门从架构的角度学习、领会计算机系统的必修课程。这门课在计算机专业知识体系中有承上启下的衔接地位,能够把计算机组成原理、操作系统、编译原理、汇编语言等课程中所学的软硬件知识有机地结合起来,有利于建立起计算机系统设计的完整概念。

然而这门课程的教和学的过程中都存在不少困难,很多理论原理用传统的教学法难以让学生有效地理解。怎样将体系结构课程中那些抽象难懂的主题以生动清晰的方式展现在学生面前,让学生可以与这些主题中的流程动态交互的方式来学习,是这门课程教学中的一个挑战。虚拟仿真器(即模拟器)就成为解决这一挑战的有力工具。在国外著名大学的教学中都借助了这样的手段,诞生了许多这样的模拟器工具[1,2]。

这些国外常用的模拟器在教学中应用时还存在不少问题,其中比较突出的是:有的与教材内容的匹配度不够高;有的操作复杂,运行结果不宜理解,缺乏相应的动画效果;有的则过于简化,覆盖的功能集太小等。这些不足已成为模拟器真正提高教学质量的绊脚石。

在国内设计的模拟器中,同济大学的张晨曦教授开发的一套体系结构模拟器算是国内同类模拟器中的佼佼者[3]。然而在我们的教学使用中也发现它虽简单易用,原理展示清晰,但是仍不能满足我们的教学需求。比如,其中的MIPSsim模拟器不能在64位系统上运行,在MIPS指令集的支持上受限,对浮点L.D和S.D指令支持不好等。其中的Cache模拟器没有清晰展示原理细节,只适合性能分析实验。这套模拟器尚缺少超标量、多线程、虚拟存储、SIMD、输入输出等方面的支持。还有就是只能在windows平台使用,带来了使用上的限制。

二、基于Web的体系结构模拟器整合设计

从头设计全套的体系结构模拟器是要花费大量的人力物力的。我们考虑的原则是:尽量整合国内外的优秀模拟器技术,并且容易获取、容易使用,不受使用平台的限制。用Web技术整合现有优秀的模拟器,只需一个浏览器,不需事先安装,不论什么平台都可访问使用,而且还可以方便我们对每个学生使用情况进行监控。我们在校内建立了一个教学模拟器的服务器网站(校内IP是172.23.204.31)。里面整合了国外著名大学使用的一些Web模式的体系结构教学用模拟器。图1是该计算机体系结构教学模拟器主页。

由于包含的模拟器数量较多,下文简单描述其中的几个。图2是基于Web的MIPS模拟器,能够演示MIPS五段流水线中用到的各个数据通路部件,特别是冲突检测单元和定向单元。模拟器中不仅列出了每条指令的类型(I型、R型或J型等)和二进制格式(指令的各个字段),还把MIPS指令的执行过程与流水线的处理、控制和数据通路设计结合在一起。

图3是一个简单的流水线模拟器,以时钟周期图的方式演示了5段流水线的冲突问题及其解决方案,主要是针对数据冲突的解决方法(指令调度和定向技术)。图4是侧重动态调度技术的流水线模拟器,不仅可以演示静态调度,还可以对比演示常用的动态调度技术,比如记分牌算法(Scoreboarding)和Tomasulo算法。

图5是针对动态分支预测技术的模拟器,可以演示分支历史表(1位或2位)技术和关联预测(2*2)技术。图6是向量机模拟器,可以动态展示向量机的执行过程以及冲突检测,并可以对向量机中的链接技术(Chaining)做对比分析教学。

三、应用示例

本节以图3所示的简单流水线模拟器为例,分析一下该模拟器的使用。在图1所示的模拟器主页页面选择Pipelining(w & w/o forwarding),便进入到该流水线模拟器界面。先在界面左上角的指令执行周期设置窗口中设置长周期指令的执行时间(该执行时间是5段流水线中EX段的时间),比如分别设置浮点加减、浮点乘法、浮点除法和整数除法的执行时间为2、4、6和2个时钟周期,如图7所示。除了这4类指令之外,其他所有指令的执行时间都默认是1个周期。

通过右上角的添加窗口添加几条要执行的指令,比如,依次添加以下4条指令,添加后的结果如图8所示,分别为浮点加载指令、浮点加法指令、浮点加法指令和浮点存储指令。指令添加完后,潜在的冲突窗口就给出了这几条指令之间的潜在的冲突分析,如图9所示。指令0和1之间存在关于寄存器F1的RAW写后读冲突(因为指令0写F1,指令1读F1),指令1和2之间存在关于寄存器F3的RAW冲突(因为指令1写F3,指令2读F3),指令1和2之间存在关于浮点加减运算部件的结构冲突(因为两条指令会同时用该算部件),指令2和3之间存在关于寄存器F4的RAW冲突(因为指令2写F4,指令3读F4)。

然后,不采用定向技术运行这段代码(不勾选Data Forwarding),可以单步执行,观察流水线每步的操作,也可连续运行。图10给出的是运行结束后的时钟周期图,红色S标记的是停顿周期。从中看出,指令1要停顿2拍等待指令0完成写F1的操作;指令2要停顿3拍(第7―9拍)等待指令1用完浮点加法部件并完成写F3的操作(注:指令2在第4―5拍的停顿是指令1的停顿引发的,不属于新增停顿);指令3也要停顿3拍等指令2完成写F4的操作。这样一共停顿8拍,总共用时16拍。

随后,采用定向技术再次运行这段代码(这次勾选Data Forwarding)。图11给出的是运行结束后的时钟周期图。红线给出的是定向连接线。由于指令0在MEM段后得到要往F1里写的数据,指令1在执行段才真正用到F1里的数据,直接从指令0的MEM段后的流水寄存器定向数据到浮点运算部件的输入端给指令1使用即可,这样的话指令1只需停顿1拍(第4拍);指令1和指令2之间的定向通路是从浮点运算部件之后的流水寄存器直接送数据到浮点运算部件的输入端;指令2和指令3之间的定向通路是从MEM段的输出端直接到MEM段的输入端。采用定向技术后,代码运行中一共停顿3拍(分别是第4、第6和第8拍),总共用时11拍。和不用定向技术相比,性能大幅提升。

四、结束语

基于Web整合设计的这套模拟器功能比较全面,覆盖了不少比较深入的知识点,不仅能适应本科生的教学,还可作为研究生和教师科研的辅助手段。而且这套平台的访问非常方便,不限操作系统,不限平台,可以在桌面电脑上访问,也可手机和平板上访问,大大方便了学生的学习和实验,在使用中获得了比较好的评价和反馈。

参考文献:

[1]B. Nikolic,Z. Radivojevic. A Survey and Evaluation of Simulators Suitable for Teaching Courses in Computer Architecture and Organization. IEEE TRANSACTIONS ON EDUCATION,VOL. 52(4):449-458,Nov. 2009.

[2]R. Hasan,S. Mahmood. Survey and Evaluation of Simulators Suitable for Teaching for Computer Architecture and Organization. UKACC International Conference on Control 2012,1043-1045,Sep. 2012.

[3]张晨曦,李江峰,刘依,沈立.计算机系统结构实践教程[M].第2版.北京:清华大学出版社,2014.

Web-based Simulators for Teaching Computer Architecture

DU Zhen-jun,SANG Guo-ming

(School of Information Science and Technology,Dalian Maritime University,Dalian,Liaoning 116026,China)

Abstract:There exist difficulties and challenges in teaching computer architecture,one of the main courses for undergraduates in computer major.After analyzing similar simulators at home and abroad,a suite of web-based computer-architecture simulators are integrated. They cover knowledge points in depth and are easy to use,playing a helpful role in teaching practice.

Key words:Computer architecture;Undergraduate teaching;Simulators

上一篇:广西民族地区农村中小学辍学率的调查 下一篇:《数据通信》课程教学改革的研究与实践