赖晓晨,迟宗正,侯刚
(大连理工大学软件学院,大连116600)
《计算机组织与结构》课程虚拟仿真实验设计
赖晓晨,迟宗正,侯刚
(大连理工大学软件学院,大连116600)
《计算机组织与结构》是典型的硬件课程,课程实验受到人员、经费、场地、设备等多方面限制。提出一套基于C语言的课程虚拟仿真实验方案,可在PC上完成运算器、控制器、存储器、输入输出系统等部件的工作原理仿真,摆脱实际硬件设备的束缚,学生需要完成部件设计的每一个环节,取得较好的教学效果。
《计算机组织与结构》是计算机及电子相关专业的一门主干核心课程,主要讲述计算机各部件的工作原理与相互关系[1]。本课程是典型的硬件课程,内容较为抽象,相比程序设计类课程来说,学生的动手机会较少[2-3]。传统上本课程主要采用购置硬件设备来开展实验,学生通过在设备上实际操作来理解课程原理,但是这种方式有较多局限性。从学校角度来说,必须准备相应的设备购置、维护与升级的人员和经费,为实验安排固定的场所,以及合理排课;从学生角度来说,必须在统一的时间到实验室开展实验,方式不够灵活,同时仅仅按照步骤完成既定操作,对课程原理的理解不够深入。
本文基于多年教学实践,开发了一套仿真实验方案,采用C语言来模拟实现计算机内部各个部件的工作机制,具有内容深入、操作灵活、成本低、方便学生学习等特点[4]。仿真实验要求学生从零开始编程,直至完全重现某个硬件部件的完整工作流程,在验证课程知识的同时,使学生紧密接触部件工作的每一个环节,变实验验证为实验设计,从而对工作原理有更深入的认识。
现代计算机系统主要包括运算器、控制器、存储器、输入系统和输出系统五大部分[5],针对其中最重要的知识点,设计了8套仿真实验,要求学生在理解部件工作原理的情况下,通过C语言编程模拟硬件的工作过程,在给定输入的情况下得到与硬件实际工作完全一致的输出结果。8套实验方案说明如下:
(1)Cache映射:实现直接相联、全相联、组相联三种映射下的Cache映射方式,用户对三种映射方式可自由选择,给定内存块号后,自动计算出对应映射方式下的Cache块号。
(2)循环冗余校验码:实现如何通过生成多项式将原始信息编码为CRC码,并针对接收到的CRC编码,判断是否有出错位。
(3)中断流程:实现中断处理的五个阶段的详细流程,包括中断请求,中断判优,中断响应,中断服务,中断返回。
(4)原码一位乘:实现原码一位乘法的计算过程,给定被乘数和乘数,能够通过移位运算和加法运算得到乘积。
(5)浮点数加法:实现浮点数加法的五个步骤,包括对阶、尾数相加减、规格化、舍入和判断是否溢出,以及对上溢和下溢的处理,给定两个浮点数,可以计算并输出二者之和。
(6)数据寻址方式:实现了9种数据寻址方式,包括立即寻址、直接寻址、隐含寻址、间接寻址、寄存器寻址、寄存器间接寻址、基址寻址、变址寻址和堆栈寻址,给定寻址方式、形式地址、相关寄存器的值,可以计算得到有效地址。
(7)流水线时空图:实现不同流水线级数和不同指令数条件下的非流水线时空图以及标准流水线时空图的绘制,演示流水线加速指令执行的原理。
(8)中断屏蔽:实现旧屏蔽字和新屏蔽字下CPU对多个任务的执行轨迹选择。
下面以中断屏蔽实验为例,介绍仿真案例的设计方法及实现效果。
现代计算机系统中,中断优先级一般是由硬件排队器决定,当有多个中断源同时请求中断服务时,中断响应次序是固定的,为了能灵活地改变实际中断处理次序,可通过设置中断屏蔽寄存器来决定某中断请求能否进入排队器,从而改变中断实际处理次序[6]。中断屏蔽字即是用来描述中断屏蔽状态的一组二进制信息。但是,中断屏蔽字不能改变CPU的响应优先级,只能改变处理优先级,即只能改变CPU实际对各中断源请求的优先处理次序。
假设计算机系统支持4个中断源,中断响应优先级按 A、B、C、D 降序排列,处理优先级按 A、D、C、B 降序排列。该实验根据中断屏蔽的原理,首先展示在原屏蔽字下的CPU的执行轨迹,之后根据用户自定义的中断屏蔽字来展示CPU执行轨迹,工作流程如图1所示。
图1 中断屏蔽实验流程
实验程序运行时,在展示原屏蔽字下的CPU执行轨迹后,用户分别输入4个中断源的新屏蔽字。新屏蔽字以二进制方式输入,最多为4位,最少可以只输入1位,如果输入不足4位,会默认高位为0。如果用户输入了相同的屏蔽字,默认先输入的优先级大于后输入的优先级。接下来,程序会计算新屏蔽字下4个中断源的优先级大小,并据此输出相应的CPU执行轨迹,实验效果如图2所示。
图2 CPU执行轨迹效果图
该实验可根据用户输入的新屏蔽字输出CPU执行轨迹坐标图,为了适应用户的阅读习惯,采用第四象限坐标表示,轨迹显示清晰明了。
计算机组织与结构仿真实验方案已在本单位投入实际使用,目前已经实施3个学期,参与学生合计6个授课班级约800余人,排除个别不可避免的抄袭情况之外,基本所有学生都能顺利完成实验。学生普遍反映编程工作量较大,但是为了程序执行正确,必须对硬件工作原理完全掌握,因而提高了本课程学习的认真程度,同时进一步锻炼了自己的编程能力,取得了较大收获。
本文基于C语言,设计了一套适应计算机组织与结构课程教学要求的仿真实验方案,共计包括8组实验。学生能够以更加灵活、深入的方式完成实验,促进了对硬件工作原理的理解,在提高教学质量的同时,降低了学校的运营成本。下一步工作拟完善实验界面显示效果,使之更加美观。
[1]鲁鹏程,易小琳,方娟.在计算机组成原理课程中培养学生动手实践能力[J].计算机教育,2011(12):52-54.
[2]翟海庆,赵开新,张正本.计算机组成原理课程教学的现状与对策[J].科技信息,2009(9):131-131.
[3]徐昆良.《计算机组成原理》课程教学方法探讨[J].中国科技信息,2009(9):254-254.
[4]王超.基于仿真实验的计算机组成原理考核方式改革研究[J].计算机教育,2016(3):146-148.
[5]唐朔飞.计算机组成原理[M].第2版.北京:高等教育出版社,2008.
[6]田永红.利用中断屏蔽技术修改中断优先级[J].企业技术开发,2011(11):15-16.
Design of Virtual Simulation Experiment of Computer Organization and Structure
LAI Xiao-chen,CHI Zong-zheng,HOU Gang
(School of Software,Dalian University of Technology,Dalian 116600)
Computer Organization and Structure is a typical hardware course,while the experiments are restricted by human resources,budget,funds,experimental site,equipment purchase and maintenance.Based on C programming language,raises a new experiment scheme,which can simulate the principle of units of computer,including calculator,controller,memory,input and output systems.Students need to design each part of component completely in a simulation way,get rid of the shackles of the actual hardware by this scheme,which has achieved good teaching effect to a great extent.
计算机组织与结构;硬件仿真;实验;C语言
教育部产学合作协同育人项目(No.201602007011、No.201602015006、No.201601007002)、大连理工大学现代远程教育教学改革基金项目(No.ZD201632)
1007-1423(2017)28-0035-03
10.3969/j.issn.1007-1423.2017.28.009
赖晓晨(1977-),男,台湾台中人,博士,副教授,研究方向为嵌入式系统
迟宗正(1984-),男,山东烟台人,硕士,工程师,研究方向为嵌入式系统
侯刚(1982-),男,辽宁沈阳人,硕士,讲师,研究方向为模型检测、形式化方法
2017-06-27
2017-09-15
Computer Organization and Structure;Hardware Simulation;Experiment;C Programming Language