基于FPGA的“计算机组成原理”实践教学的改革

2018-04-25 07:36葛桂萍肖铁军陈才扣马学文
实验技术与管理 2018年4期
关键词:计算机组成原理原理电路

葛桂萍, 肖铁军, 陈才扣,马学文

(1. 扬州大学 信息工程学院, 江苏 扬州 225127;2. 江苏大学 计算机科学与通信工程学院, 江苏 镇江 212013)

“计算机组成原理”是计算机专业一门重要的专业基础课程,重点介绍计算机的结构、组成,使学生掌握计算机各部件的基本工作原理、设计方法及计算机整体的互连技术,为培养学生具有硬件系统的开发能力打下一定的基础。该课程的先修课程是“数字逻辑”,后续课程有“操作系统”“编译原理”“计算机系统结构”等,在整个计算机专业课程体系中起着承上启下的作用。“计算机组成原理”是一门理论性和实践性都很强的课程,其中的实践环节,包括硬件实验及课程设计,是“计算机组成原理”课程教学的关键。如何提高“计算机组成原理”的实践教学水平,适应工业界对毕业生实践能力不断增长的需求,培养学生的硬件设计能力,已成为高校计算机专业所面临的重要课题。

1 当前实践教学存在的主要问题

1.1 主观上偏重理论教学,轻视硬件实践教学

在“计算机组成原理”课程中,理论是基础,但是要深入理解计算机基本原理及体系结构等理论必须结合硬件实践[1]。目前,不少高校的计算机专业在教学内容和教学模式上普遍存在“重软轻硬”[1]、重理论轻实践的现象,理论教学所占比重较大,轻视硬件实践教学的建设,硬件实践教学课时一再缩减,无法保证硬件实践教学的质量,从而导致了学生参加实践课的积极性不高,培养出来的学生硬件能力较差,无法承担计算机硬件方面的设计与开发工作。

1.2 实验设备落后,缺少创新能力的培养

传统的“计算机组成原理”实验方案大都是将中小规模数字集成电路安装在面包板上,学生通过在面包板上进行手工连线,完成一定的逻辑功能。这种实验方法能熟悉通用集成电路的用法,是一种低级的培养“动手能力”的手段。由于给定的集成电路只能实现固定的功能,无法改变,本质上是属于验证型实验。如果连线较多,极易出现错误,或者由于设备老化、导线内部接触不良容易造成实验失败。这种实验设备比较落后,实验手段还处于上世纪80年代的水平,与当前工业界的实际应用严重脱节,和现代快速发展的计算机硬件技术形成了明显的差距,对学生缺乏吸引力,学生兴趣不高,极大地限制了学生创新能力的培养[2-4]。

1.3 实验教学与课堂教学内容不配套,理论难以深入

“计算机组成原理”教材众多,理论课教材通常会给出一种由简化的处理器所构成的模型计算机,因为并非真实的商用处理器,所以不同的教材给出的模型机结构不尽相同。传统的实验设备部件是固化的,无法自主确定实验内容,无法扩展,难以适应不同的教材,造成了实践教学内容与理论教学不配套的问题,常常出现“讲一套、做一套” 的尴尬现象,导致学生不能通过实验更好地理解理论教学的内容,影响了实验教学的效果。

1.4 针对不同的专业,实验要求没有区分

对于计算机类的不同专业,如计算机偏硬专业和计算机偏软专业,专业不同,教学对象不同,课程教学的目标和要求也不尽相同。但是,目前很多高校由于各种原因,针对不同的专业,并没有体现出教学要求的不同,理论教学内容基本一致,实验要求也没有区分[2],没有体现出专业的特色,不能适应多层次计算机人才培养的需要。

2 “计算机组成原理”实践教学改革的措施

2.1 改革实验设备,开发设计基于FPGA的实验平台

2.1.1 设计背景

由于早期的面包板手工布线的实验设备比较落后,不能自主确定实验内容,以验证性实验为主,为把“计算机组成原理”实验从验证性转化为设计性,许多高校已把FPGA引入到计算机硬件实验教学中来。以可编程逻辑器件FPGA作为实验平台,利用硬件描述语言Verilog进行电路设计,并把设计好的实验电路下载到FPGA板上,相对早期的小规模集成电路功能固化的实验平台,可以大大提高实验的灵活性和可操作性、创新性[3]。目前,清华大学、浙江大学等国内一流高校开发了计算机系统实验平台,能贯通“数字逻辑”“计算机组成原理”“操作系统”“编译原理”等多门课程,对教师和学生的要求都较高,而普通高校师资较为缺乏、部分学生主动性不够,为了调动学生的积极性,提高实验效率,我们通过分析研究,将重心放在课程的基本要求上,开发设计了适应地方高校应用型人才培养需求的基于FPGA的全新“计算机组成原理”实验平台。

2.1.2 新实验平台的构成

新实验平台采用虚拟与现实相结合的方法,学生把通过Verilog设计的实验电路下载到实际的FPGA实验板上,通过计算机上的虚拟实验板进行操作,操作结果同步显示在虚拟实验板和实际实验板上。

本实验平台包括实验系统软件、JUPOD调试适配器、片上调试器和实验电路等,结构框架如图1所示。

图1 基于FPGA的实验平台结构

FPGA开发板选择基于Xilinx新一代的Artix-7系列Nexys4 DDR (简称N4)。N4板是基于FPGA的即用型数字电路开发板,以Artix-7系列的XC7A100T-1CSG324C FPGA为核心,包含发光二极管、开关、七段显示器等外围设备,可以扩展连接众多接口。实验以Verilog作为硬件描述语言,以Vivado作为设计开发工具。

针对基于FPGA的“计算机组成原理”新实验平台,其中的关键是如何把计算机中的信息作用于实验电路并获取反馈,本实验平台通过在FPGA中构建基于IEEE 1149.1 JTAG标准的调试电路,实现信息传输以及实验CPU的运行控制[4-5]。调试适配器作为计算机和FPGA之间的互连设备,用于数据解码以及协议转换。片上调试器是基于JTAG标准设计的边界扫描结构,与实验电路位于同一FPGA内部,直接和实验电路进行数据交互,改变或读取实验电路的内部节点状态[6-8]。

计算机中的实验系统软件提供操作实验电路的人机交互平台,具有实验数据组织、实验数据写入以及实验结果回收和显示等功能。实验时,通过对计算机中的实验系统软件进行相应操作,就可改变实验电路状态。具体原理是:实验系统软件通过USB把相关实验操作数据发送给调试适配器,调试适配器把数据按照JTAG协议传递到片上调试器,再由片上调试器对实验电路进行写入、读取操作,之后把实验结果返回实验系统软件,显示于交互界面上供实验人员观察[5]。不同的实验可定义不同的虚拟实验板的外观,和传统的实际实验板相比,学生不需去记忆输入输出元件与实验原理的对应,直观高效,计算机部件实验中的ALU运算器实验、数据通路实验的虚拟实验板如图2所示。

图2 部件实验虚拟实验板示例

和其他FPGA实验平台相比,采用JTAG调试技术使得系统更简洁、可靠性更高;和单纯使用FPGA开发板相比,虚拟实验软件突破了开发板开关等元件数量的限制,同时避免了由于反复人为操作而造成的损耗;和一般的以实物照片为界面的虚拟实验平台相比,基于原理图的虚拟实验板使学生能够将注意力集中在实验原理而不是操作上。

2.2 强化实践教学,构建多层次实践教学体系

加强“计算机组成原理”课程的实践教学,构建课程实验、课程设计等多层次的实践教学体系。课程实验指的是部件实验,包含基本电路实验、ALU运算器实验、存储器实验、数据通路实验等4个实验。每个实验又包含基础、提高2部分实验,并把简单验证性实验逐步改为“验证性-设计性-综合性”的多层次实验模式[9]。根据不同专业的教学要求不同、学生能力不同,可以安排不同层次和难度的实验,充分发挥学生的能动性[10]。如对于计算机偏软专业,学生以了解计算机的组成、结构为目标,无需深入设计系统,不需要掌握具体的实验电路的编写方法,利用Verilog设计的实验电路由教师提供,直接下载到FPGA的实验板上,通过实验平台提供的实验软件验证结果,完成简单的验证性实验;而对于计算机偏硬专业,侧重培养学生系统设计、分析和解决问题的能力,需要学生根据设计要求利用Verilog设计实验电路,然后下载到FPGA实验板,完成一定难度的设计性实验。鼓励能力较强的学生积极参与综合性实验,通过实验难度的不断提高,循序渐进、由浅入深、不断加强学生的动手能力。

在课程设计环节上,同样针对不同的专业,要求不一样,如计算机偏软专业,主要完成微程序设计,而对于计算机偏硬专业,则主要完成单周期MIPS CPU的设计,要求完成至少7条指令的扩展。另外,根据学生能力的强弱,还可以扩展多条指令或进行多周期、流水线CPU设计,通过这类复杂的工程问题,培养学生的创新能力和综合能力。

2.3 加强实验过程的组织管理,完善考核机制

(1) 结合新的实验平台,编写实验指导书。指导书包括学生版和教师版,学生版对实验内容、实验步骤做详细的说明,但关键的代码空缺,由学生填空,教师版则提供完整的程序,供教师备课参考。同时制作多媒体实验课件,有助于学生预习、准备实验。

(2) 加强实验过程的指导。在学生实验出现错误,无法得出正确的结果时,既不是代替学生调试,也不是简单的指出错误,而是引导学生利用所学知识分析问题、解决问题[9]。

(3) 改革实验考核方法,完善考核机制。实验考核是实验中非常重要的环节,是检验实验教学质量和教学效果的主要手段。在实验考核中,除了检查学生实验的完成情况,增加答辩环节,检查学生灵活运用、分析问题的能力,另外还须检查学生撰写的实验报告。最后的实验成绩由实验完成情况(占50%)、答辩情况(占30%)、实验报告内容(占20%)3个部分构成,以优、良、中、及格、不及格作为实验的最终成绩。

在考核学生实验完成情况时,还须注意到教学对象的不同则考核的内容不同。如对于ALU运算器实验,计算机偏软专业的学生无需自己编程设计电路,学生把教师设计好的实验电路下载到FPGA板,考核时主要考核学生是否熟悉ALU运算器的原理、验证运算结果的正确性;而对于计算机偏硬专业的学生,须根据要求设计实验电路,主要考核学生所设计的ALU功能是否能够实现,并对想实验成绩得优的学生增加难度,随机增加一个运算功能,让学生当场修改电路,以测试学生是否完全掌握,是否能够真正达到优。

3 实践教学改革的成效与进一步思考

近几年来,我们基于FPGA对“计算机组成原理”实践教学进行了改革。我校从2015年开始,从计科12班、计科13班各选拔10名优秀学生进行试点,2017年春季将课程的改革扩展到计科14全班41名学生。在课程设计环节,大部分学生完成了至少7条指令的单周期CPU的设计,有4名学生完成了流水线CPU的设计,学生的实践能力大为提高,进一步加深了理论知识的理解,也有了一定的成就感。

在近几年的实验教学改革过程中,逐年进步,积累了一定的经验,也遇到了一些问题,今后还需不断地改进和提高。

3.1 结合计算机系统能力的培养,实现软硬件贯通

近年来,计算机教指委从计算机能力培养的角度提出:计算机专业学生除了具有计算思维能力、程序设计与实现能力、算法设计与分析能力外,更重要的是要加强系统能力培养[11]。通过开发设计基于FPGA的“计算机组成原理”新实验平台,已经可以贯通“数字逻辑”“计算机组成原理”课程,后续还将进一步更新实验平台,贯通“操作系统”“编译原理”等课程,实现硬件和软件的贯通,提高学生的系统设计能力。

3.2 加强实验教师队伍的建设

由于地方高校师资较为缺乏,需加强实验教师的培养,积极鼓励实验教师不断充电学习,参加各类学术会议进行交流和培训,提升实验教师的专业技术水平,同时充分发挥传帮带的作用,把优秀的上届学生作为助教,可以减轻实验教师的压力,弥补助教人手不够的问题。

3.3 加强实验教材建设,完善网络资源

根据我校自身培养目标,接轨新技术、修订实验教材,使教学内容与时俱进。同时依托学校网络教学平台,使实验课件、实验指导等教学资源上网,方便学生课后自学。

3.4 建立开放式实验室,提高实验设备的技术含量和使用效率

目前实验设备依然不足,淘汰老式的“计算机组成原理”实验仪后,实验室配备了20套FPGA开发板及实验调试系统,构成新的实验平台。由于开课班级较多,实验设备数量不够,实验排课压力很大,除了向学校争取经费、加大实验设备投入之外,建立开放式实验室,满足对学生课后实验开放的需求,将大大提升实验设备的技术含量和使用效率。

4 结语

“计算机组成原理”课程的理论性、实践性、应用性都很强,同时授课专业面较广,针对不同专业、不同层次的教学要求引入了“验证性—设计性—综合性”的多层次实验模式,做到既因材施教,又培养学生的动手能力、创新能力。开发的“计算机组成原理”新实验平台有力地支撑了实验教学的开展,一方面提升了实验教学效果,促进了课程教学质量的提高,另一方面提高了实验效率,降低了实验板的故障率和日常维护成本。

参考文献(References)

[1] 陈辉,李敬兆.计算机专业硬件课程教学改革探索[J].计算机教育,2014(5):39-42.

[2] 袁春风,张泽生.计算机组成原理课程实践教学探索[J].计算机教育,2011(10):110-114.

[3] 张丽艳,韩德强,邵温.基于 FPGA平台的计算机硬件实践教学探索[J]. 计算机教育,2010(7):113-116.

[4] 肖铁军,史顺波,沈健.基于JTAG的计算机硬件实验系统的设计与实现[J]. 数据通信,2013(2):24-28.

[5] 常志恒,肖铁军,史顺波.基于JTAG的片上调试器与调试系统的设计实现[J]. 计算机工程与应用,2012(10):78-82.

[6] 赵蕙,肖铁军.边界扫描测试技术在硬件实验中的应用[J]. 微计算机信息 (嵌入式与SOC),2007(8):279-281.

[7] 于洋,肖铁军,丁伟.面向教学的16位CISC微处理器的设计[J]. 计算机工程与设计,2010,31(16):3584-3587.

[8] 秦磊华,王小兰,张园.“计算机组成原理”设计性实践教学模式研究[J]. 电气电子教学学报,2009(4):68-70.

[9] 李山山, 全成斌. 计算机组成原理课程实验教学的调查与研究[J]. 计算机教育,2010(22):127-129.

[10] 蒋宗礼.计算机类专业能力构成与培养[J]. 中国大学教学, 2011(10):11-14.

[11] 姜欣宁,陈宇.“计算机组成原理专题实验”的教学改革[J]. 实验技术与管理,2013,30(4):162-165.

猜你喜欢
计算机组成原理原理电路
电路的保护
了解咳嗽祛痰原理,有效维护健康
解读电路
平均场正倒向随机控制系统的最大值原理
巧用立创EDA软件和Altium Designer软件设计电路
基于MATLAB模拟混沌电路
化学反应原理全解读
《计算机组成原理》综合教学辅助平台的设计与实现
面向计算机系统能力培养的计算机组成原理实验教学
用“工程思维”引领《计算机组成原理》课程教学