APP下载

一种基于微程序的组成原理课程设计教学方案

2019-08-06

中国现代教育装备 2019年13期
关键词:实验台课程设计指令

鲁东大学信息与电气工程学院 山东烟台 264025

计算机组成原理是计算机科学与技术专业的核心专业必修课程,也是软件工程专业的重要选修课程,为了提高课程的授课效果,许多院校都开设了与之匹配的实践课程—计算机组成原理课程设计。通过课程设计的实施,可从整机的角度加深学生对计算机系统及工作原理、实现方法的理解,形象地建立层次结构的计算机系统的概念,培养计算机系统思维能力,外延并提升组成原理课程的授课效果。

组成原理课程设计的内容一般均为构建一个模型计算机系统,通过CU设计使该模型机支持一个较为完备的指令系统,成为一个可执行命令的计算机。根据CU设计采用的是微程序还是硬布线方式,课程设计的实施方案可分为:基于FPGA平台采用HDL语言方式和基于专用组成原理实验平台采用微程序方式两类方案。国内一些一流院校多采用第一种方式,这种方式可以从部件设计入手,至CU设计完成,构建一个完整的模型机系统,的确可以较好地锻炼学生的能力。但前提是学生具有较为扎实的HDL语言基础和设计能力,并且学时充足,要求较高,实施起来难度较大。

作为普通的地方院校,学院在计算机专业建设方面,主要面向就业需求,培养上层数据处理和智能控制方向的工程应用型人才,学时所限,并未开设HDL语言硬件设计类课程,而且课程设计学时有限,仅为16学时,无法承载HDL内容的讲授,开设基于FPGA的课程设计显然是不可行的。因此,教研组提出了一种基于微程序方式的、易于实施的组成原理课程设计方案,降低了实施难度,充分利用了课程设计时间。通过合理的方案设计,同样可在多方面锻炼学生的能力,达到课程在能力培养方面的预期要求。

1 课程设计方案

1.1 课程设计模块规划

通过课程设计的实施,帮助学生进一步建立整机概念,加深对层次结构的计算机系统的理解。围绕这一实施理念,在充分考虑学时、学生能力和实验条件的情况下,将课程设计分为3个相互联系的模块,分别是指令系统设计、指令系统实现—微程序设计,以及利用该指令系统进行的应用程序设计。各模块与计算机系统层次的对应关系如图1所示,涉及计算机系统的ISA层、微体系结构层、编程语言层和应用层[1],纵向贯穿各层次,构建简单的模型机系统,体验课堂理论知识的具体应用,体会各层次角度观察的计算机系统,加深计算机各层次之间的联系,将学生对计算机系统的理解提升到一个新的高度。

图1 系统层次结构与设计模块之间的对应关系

基于实验室教学使用的组成原理专用实验箱,对课程设计各模块的具体内容规划如下。

1.1.1 指令系统设计

该模块要求学生根据第三阶段—汇编程序设计的功能需求,充分考虑实验台在功能、数据通路和指令格式要求等各方面的因素,设计一个最多包含16条指令的指令系统。以TEC-9实验台为例,支持的机器指令有单字节/双字节两种长度,操作码位数固定为4位,单/双地址码可采用立即数、寄存器、直接、间接、寄存器间接和相对寻址共6种寻址方式。该模块实施的主要难度在于大部分学生此前未接触过具体处理器指令集架构,对于处理器指令集应提供的功能指令类型、高级语言程序与底层汇编实现之间的关系缺乏认识,因此需要在实施阶段进行示范讲解,补充相应的知识,使学生建立程序功能到汇编实现再到指令功能支持的概念,才能进行合理的指令集设计。

1.1.2 微程序设计

该模块的主要任务是由学生通过微程序设计的方式,在实验台上实现其设计的指令系统,使实验台模型机可以理解并执行指令,进而可在下一模块运用指令编写程序。在这一阶段,学生需要仔细分析并掌握实验台支持的微指令格式,包括操作控制字段支持的控制信号、顺序控制字段的下地址长度以及条件码的使用方法。并在实施过程中通过示例讲解,引导学生将指令集中每条指令分解成微操作序列,结合微指令地址分配和条件码的使用,将微操作序列绘制成微操作流程图。最后,利用实验工具,填充微操作码点表,生成每一条微指令,并学习逐条调试、验证机器指令和微指令的方法。

1.1.3 汇编程序设计

顶层模块是学生利用自己设计的指令系统编写一个能够实现一定功能的机器指令/汇编指令程序,体会高级语言程序是通过怎样的机器指令序列实现的,理解机器的指令集架构ISA对实现上层程序功能的支持与限制。同时,在此过程中,提供简单的汇编器,学生可通过定义、修改规则文件,支持机器指令的助记符格式—汇编指令,由此构成高级语言—汇编语言—机器指令之间的认知关联。

1.2 课程设计预备工作

课程设计的实施是基于专用组成原理实验箱的,因此在开展课程设计之前,学生必须准确理解实验箱构建的模型机结构,熟练掌握实验箱的使用方法,充分了解实验箱的功能和限制。

1.2.1 课内实验打基础

在开设课程设计之前,计算机组成原理课程先开设了16学时的课内实验。课内实验在开设时间和开设内容上,与课堂教学同步,主要为部件单元实验,分别为互联方式—总线、存储器、运算器、执行部件和中断系统。课内实验可将课堂授课的抽象内容具体化、形象化,帮助学生理解各大功能部件的工作方式和控制方法。通过课内实验的锻炼,学生应该熟悉实验台模型机的主要功能部件的具体结构和控制信号,并能从整体上理解实验台模型机采用的双总线结构,为后续课程设计的实施打下坚实的基础。

1.2.2 课前预备提问题

由于采用专用实验台模拟实现计算机组成,因此在某些方面已经从硬件电路上固定,不能随意更改。在进行课程设计之前,将详细的设计说明书分发给学生,要求学生详细阅读,提前了解课程设计的内容,并针对自身不明白、不明确的内容,进行汇总,带着问题进入课程设计,有的放矢,达到设计时间的最佳利用。

1.2.3 设计分组练协作

考虑课程设计的完成难度,采用分组进行的方式,每组2~3人,由学生根据自己的能力,根据强弱组合的原则,在设计开始前,自愿组成设计小组。通过采用小组制方式,组内成员合理分工、强弱帮带,发挥每个人的能力,通力合作完成设计,既降低了设计的难度,增加了设计的乐趣,还锻炼了参与团队合作与沟通的能力[2]。

1.3 课程设计实施安排

在课程设计的前期准备工作中,学生已经对实验台的基本情况有了比较充分的了解,尽管如此,对于初次接触CU设计的学生而言,要在16学时内完成模型机的设计,仍然存在一定困难。因此,将课程设计的实施分为思路建立和实现设计两个过程(如图2所示)。

图2 课程设计的实施过程安排示意图

1.3.1 思路建立过程

实验台提供一个实现了12条指令的指令系统,在课程设计的前半部分,通过充分利用该示例,帮助学生建立思路、掌握方法,进而在后续开展自己的设计。

过程1:编写汇编小程序

教师讲解示例指令系统的指令格式、功能和使用方法,要求学生利用这些指令编写一个具有一定功能的小程序,例如:排序、数据传送等。通过这一过程,不仅可帮助学生理解底层机器指令的功能,使学生掌握利用实验环境编写、调试汇编程序的方法,还可达到关联高级语言程序与底层实现方法、培养学生的机器级程序编程思路的效果。从而使学生对于在底层实现某种程序功能需要怎样的功能指令有一定的认识,以便根据后期汇编程序功能的规划,完成指令系统的功能设计。

过程2:分析、修改示例指令系统的微程序

通过示例上述指令系统中典型机器指令在实验台的微程序编写方法,讲解实验台的微程序流程设计、微指令格式要求及微指令编码方法。在此基础上,要求学生通过逐一分析给定指令系统全部指令的微程序流程,建立机器指令功能与微程序实现之间的关联,熟知微指令格式中操作控制字段支持哪些控制信号的发出,顺序控制字段中有哪些可用条件、转移方式以及微地址范围,了解机器指令操作码编码与微程序入口地址的分配关系,掌握微程序对操作数不同寻址方式的支持方法,建立如何利用实验台进行微程序设计的综合认识。

通过以上两个过程的学习,学生还应对专用实验台的设计实施能力有所掌握,对实验台数据通路、寄存器数量、机器指令格式、微指令格式、控存容量等方面的可用情况有准确的理解,避免设计中出现天马行空、不可实现的情况。

1.3.2 设计实现过程

本课程设计的实现过程与普通程序设计不同,是一种逆向思维过程。一般程序编写是学生想办法利用编程语言实现要求的程序功能,而组成原理的课程设计则是由学生先确立一个可实现的程序功能,然后想办法自己设计并完成一个指令系统来支持这个功能程序的编写。

在明确程序功能需要的底层指令后,根据实验台机器指令格式的操作码编码、地址码格式及寻址方式的要求和限制,逐一完成每条机器指令的格式设计,从而完成整个指令系统的初步设计。下一步通过微程序来支持这些指令功能的运行。

根据每条指令的功能,绘制其微程序流程图,根据操作码散转规则和转移分支方法,标定每条微指令的地址。根据流程图,填写微指令码点表,完成指令系统的微指令编码,并逐一测试每条机器指令微程序是否支持该指令的功能。调试并修改微程序,完成模型机的指令系统设计。

运用该指令系统,编写既定功能程序,并测试该程序是否达到预期功能效果。其间存在问题,可能需要从添加、修改机器指令开始,重复上述过程,直至完成课程设计的全部要求。

1.4 课程设计考核评价方法

课程设计评价采用形成性评价与终结评价相结合的方式。终结评价采用小组答辩的方式进行,答辩时要求提交完整、规范的设计文档,由小组成员演示所设计的模型机情况,并由教师针对其设计对每一位小组成员进行提问,根据设计的难易程度、完成情况、创新性、报告书写情况以及回答问题的准确度,给出答辩成绩。同时,根据学生在设计过程中的日常表现,包括认真好学、刻苦钻研的精神,分析和解决问题的思路及方法,出勤率及任务达成度等生成形成性评价。两者结合,给出学生课程设计的最终考核成绩。这种综合考核方式,能够起到以考促学,促进学生知识和能力的全面发展,达到提高课程实施效果的作用。

2 课程设计达到的效果

2.1 对计算机组成原理课程的支撑作用

课程设计中模型计算机系统的构建,涉及组成原理课程学习内容的大多数知识点(如表1所示),既包括冯·诺依曼计算机各大部件的基本控制方法,也包括将指令系统设计技术、CU控制信号分析方法、CU微程序设计技术等复杂的原理性知识付诸实践。这种理论与实践的有效结合,使学生对于课程的核心知识内容有了更加形象、深刻的认识,从而达到实践课程对理论授课效果的提升作用。

表1 课程设计中涉及的理论知识点

2.2 对计算机专业知识平台的粘合作用

如图1所示,课程设计的内容贯穿了层次结构的计算机系统,不仅从系统级设计的角度有效地关联了课程自身各个知识模块,还通过底层-微体系层和上层—编程语言层的功能设计,使学生能够从高级语言、汇编语言、机器语言及其硬件实现等多个层次上思考同一个问题的解决方法,纵向打通学生知识平台中软、硬件知识的壁垒,深化了各系统层次之间的联系,有效地提升了学生的整机概念和系统能力。

2.3 对学生工程技术能力的培养作用

作为实践课程,课程设计除了对以上知识能力的培养,对工程素养和工程技术能力的培养也发挥着重要的作用。在以小组为单位,独立设计、完成任务的过程中,既能够锻炼学生的团队协作和交流能力,也能够发挥学生的思维拓展和创新能力;较为紧张的时间安排,则对学生的自我学习能力、分析问题解决问题的能力都提出了考验;评价形式—答辩,则从总结归纳问题能力、文档撰写能力和语言表达能力等方面锻炼了学生。

3 结语

基于微程序CU进行的组成原理课程设计,尽管没有采用VHDL硬件设计,但相对于学时和前序课程基础不足等困难,这种方式具有易于上手及实施的优点。通过该课程设计方案的实施,不仅加深了学生对课程知识的理解,学生知识平台的搭建和综合能力培养也取得了良好的效果。在今后的教学工作中,将不断总结经验,优化课程设计的环节,以便更好地利用课程设计环节提升学生的培养质量。

猜你喜欢

实验台课程设计指令
热网水力工况实验台的改进
基于PLC的液压综合实验台在实验教学中的应用
基于手机的微课程设计、开发与应用策略研究
《单一形状固定循环指令G90车外圆仿真》教案设计
龙凤元素系列课程设计
中秋明月
一种基于虚拟仪器的电控柴油机实验台的设计
电控柴油机排气冲程喷水实验台的设计及NO减排效果
中断与跳转操作对指令串的影响
一种基于滑窗的余度指令判别算法