基于OpenRISC的计算机系统能力综合实验平台
2018-04-02王换招张克旺
王换招,张克旺
(西安交通大学 电子与信息工程学院,陕西 西安 710049)
0 引 言
计算机课程体系中设置了大量的计算机系统相关课程,如数字逻辑电路、计算机组成原理、计算机系统结构、编译原理、操作系统、微型计算机接口技术、汇编语言程序设计、嵌入式系统等。这些课程覆盖计算机软硬件系统的绝大部分知识,是计算机专业的主干课程,但学生在完成这些课程后,往往很难将知识有机组织在一起,形成对计算机系统的完整认知,具备相应的计算机系统分析、设计和验证能力。
目前,计算机教学体系以知识传授为主,忽略学生分析问题和解决问题能力的培养;各门课程讲授内容陈旧,无法满足计算机发展需求;各门课程教学内容缺乏统一目标,没有完善的内容过渡与衔接,导致学生所掌握的仅仅是一些分散的知识点,无法对计算机软硬件系统进行整体的理解,难以满足计算机系统能力培养的要求。
基于OpenRISC开源处理器的系统能力培养实验平台,不仅能够为计算机系统相关的课程提供贯通式的实验平台,而且能够为计算机系统相关课程内容的改革提供“自上而下”的参考。由于OpenRISC平台采用业界广泛使用的流水RISC架构处理器、gcc编译器以及Linux操作系统,因此相关课程以此平台为参考改革相关教学与实验内容,能够实现课程间教学与实验内容的紧密连接和过渡,使各门课程教学实验内容有机组织在一起,为进一步培养学生的分析、设计与验证等系统能力奠定基础;同时,相关教学与实验内容同业界发展保持一致,可以有效满足社会对计算机专业的需求。
1 计算机专业教学普遍存在的问题
计算机系统能力是指能自觉运用系统观,理解计算机系统的整体性、关联性、层次性、动态性和开放性,并用系统化方法,掌握计算机硬软件协同工作及相互作用机制的能力,包括系统分析能力、系统设计能力和系统验证能力3个方面[1]。传统计算机教学与实验以知识传授为主,对能力的培养没有足够的重视,最终导致学生能力普遍不强,难以满足社会需求。结合实际教学实验过程,我们认为目前计算机各门课程以及相应实验存在以下问题。
首先,在课程内容方面,存在教学内容陈旧,无法满足社会应用需求的问题[2]。例如,目前国内绝大多数学校的汇编语言课程仍然以8086为目标机器,但随着桌面应用的成熟,对桌面应用进行优化从而使用汇编的需求不多,真正需要进行汇编级别优化的往往是基于ARM、MIPS等RISC处理器的嵌入式应用;同样,计算机接口技术绝大多数以8086接口扩展为主,但目前发展迅速的嵌入式系统中极少采用Intel架构处理器。
其次,在教学内容衔接上,各门课程独立规划,造成知识点冗余或者衔接关系脱节[3]。例如,中断技术在计算机组成原理、汇编语言程序设计、计算机接口技术和嵌入式系统中都会讲解,但由于各门课程在内容上缺乏良好的衔接,学生在学习中断技术过程时,无法区分计算机组成原理中讲解的通用中断原理与汇编语言程序设计中8086中断系统这一特例,往往会在理解上有困难。
第三,在教学方法上,各课程采取分析式方法的较多,突出系统原理的讲解,而限于条件的限制,缺乏实际系统的结合,造成学生虽然掌握基本概念,但是难以转化对现有系统的认识。例如,在介绍系统总线过程中,一般会讲解ISA等简单总线的通信过程,但ISA总线在当前计算机中极为罕见。
最后,在实验手段上,基本侧重于孤立的原理验证实验,而缺乏对复杂系统的综合设计实践。虽然小规模实验可以达到让学生基本理解掌握系统运行原理和初步具备系统开发能力的目的,但是由于缺乏贯穿绝大多数课程内容的综合性实验,学生仍然不能贯通整个计算机系统的课程内容,掌握的仅仅是一些知识点[4]。
2 基于OpenRISIC的计算机系统能力培养教学改革
开展计算机系统能力培养工作,首先需要在课程体系、课程内容、实验内容等方面进行全面改革,结合计算机发展趋势,贯通各门课程教学内容,增加课程实验环节,逐步提高学生的计算机系统能力。
在课程体系方面,需要对教学大纲中与计算机系统能力相关的课程进行调整,调整的思路一般为“压缩授课学时、提高实验实践环节”。例如,对数字电子技术、计算机组成原理、编译原理、操作系统原理、计算机接口技术与嵌入式系统课程学时进行压缩,为其中的数字电子技术、计算机组成原理、编译原理、操作系统原理设置专题实验,让学生有较充分的时间动手实践。部分学校专门设置独立的“计算机系统综合”等专题实验,在上述实验基础上,进行有方向性的计算机系统设计,提高学生的计算机系统能力。
在课程内容方面,需要对各门课程中的重复内容进行压缩与合并,对一些比较陈旧的教学内容进行更新。
在课程体系改革过程中,相关课程教师承担教材编写、课件制作以及课程实验重新调整等众多任务,工作量大,此外,由于计算机技术的高速发展,教师需要深入了解一些新的技术或者方法相关细节,同样需要大量时间和精力的投入,因而各门课程教师对计算机能力培养具体实现的方式存在差异,如何协调各门课程教师建立统一的课程改革目标具有较大的难度。
如果采用“先制订目标、各门课程分别实现”这种“自下而上”的教学内容改革方法,在实践过程中存在较大的难度。为此,我们基于OpenRISC平台进行“自上而下”的教学内容改革,即相关课程以业界广泛使用的OpenRISC平台(流水RISC处理器、gcc编译器、Linux操作系统)为基础。
3 OpenRISC综合实验平台
国家计算机系统能力培养工作小组提出的“一个CPU、一个编译器、一个操作系统”方案能够很好地体现计算机能力培养的具体方法。设计一个什么样的CPU,编写一个什么样的编译器,实现一个什么样的操作系统是很重要的问题。选择CPU、编译器、操作系统的一个重要因素就是社会需求因素,也就是设计的CPU、编译器和操作系统本身或者设计方法能够在学生后续的就业中得到应用。
目前,CPU设计的主流是RISC处理器,使用最广泛的编译器是gcc,普及率最高的操作系统是Linux操作系统。如果学生在相关基本知识的基础上,已经能够设计简单的RISC处理器,掌握gcc编译器的核心机制以及移植方法,比较熟悉Linux操作系统的管理机制和驱动,就不仅能够培养学生的计算机系统能力,而且可以为学生将来所从事的专业奠定良好的基础。
建议选择Open Source的RISC处理器OpenRISC作为课程体系改革的目标。OpenRISC处理器在GPL协议下开放源代码,具有完全的开源工具链,其中包含gcc编译器;Linux操作系统已经在该处理器上完成移植,并且开放源代码。
3.1 OpenRisc的主要特点
采用免费开放的32/64bit RISC架构。用Verilog HDL(硬件描述语言)实现基于该RISC架构的RTL(寄存器传输级)描述。
具有完整的工具链,包括开源的软件开发工具、C语言实现的CPU仿真模型、操作系统以及软件应用所需的函数库。
为配合基于OpenRISC处理器的实验,我们设计了基于Zynq ZC7020的实验平台,该平台以Xilinx ZC7020处理器为核心,片上资源包括85K逻辑单元/53.2K查找表和3.8M片内RAM。板上存储资源包含32MByte 32位宽SRAM、64MByte 32位宽SDRAM和16MByte NorFlash。板上IO资源包括1个UART收发器、1个10M/100M以太网物理层、1个TFT LCD、若干组LED和拨码开关等。
该实验平台包含的丰富资源可以满足数字逻辑课程、计算机组成
原理课程、操作系统课程、编译原理课程等核心课程,以及为计算机接口技术、嵌入式技术等专业课程提供统一的实验平台。
目前可以在此平台进行的数字逻辑实验包括:①组合逻辑实验:译码器实验、七段码显示管控制器设计、多路选择器设计与实现、全加器设计与实现;②时序逻辑实验:锁存器与触发器设计实验、同步时序电路实验;③自动机实验;④计数器实验;⑤寄存器堆设计实验;⑥移位寄存器实验;⑦计数器/定时器设计。
在此平台上进行的计算机组成实验包括随机访问存储器RAM实验、RISC CPU的指令扩展、RISC CPU的中断实验、单周期RISC CPU设计、多周期RISC CPU设计、流水RISC CPU设计和简单SOC系统综合实验。
3.2 基于OpenRISC的实验平台软硬件系统架构
硬件实验方面,数字逻辑实验的译码器、多路选择器、寄存器堆、移位寄存器等实验内容与计算机组成实验紧密衔接。编译原理实验主要针对OpenRISC处理器gcc编译器展开;操作系统原理实验主要针对运行于OpenRISC处理器的Linux操作系统的板级支持包(BSP)以及串行口、以太网等设备的驱动展开。这两部分内容相对独立,但都是围绕前期设计的OpenRISC处理器展开,学生对处理器的指令集等内容都已经非常熟悉,方便将精力集中在编译器和操作系统自身。OpenRISC架构如图1所示。
图1 OpenRISC架构
4 采用基于OpenRISC的综合实验平台的优点
(1)贯通式教育。各门课程实验内容围绕OpenRISC这样一个计算机系统展开,教学工作目标明确,针对性强。目标明确的贯通式教学实验能够调动学生的学习积极性。
(2)明确的教学与实验目标。传统从下向上的课程设计方法是各门课程相关教师通过讨论得到一个最终的目标,但受传统思维定势等方面因素的影响,各门课程对最终所要实现的目标往往不明确。OpenRISC是一个比较成熟的开源系统,有成熟的编译工具链和操作系统支持。在现有平台基础上,各门课程只需要对相关的教学与实验内容进行设计,我们称这种方式为“自上而下”的课程设计方法。这种设计方法的好处是可以有效减少课程之间的协调工作,而这部分工作在涉及多门课程调整时工作量巨大。
(3)面向社会需求。在处理器领域,RISC处理器占绝大多数,甚至国内外微电子企业推出基于OpenRISC的处理器产品。基于OpenRISC处理器的学习和实验,能够为学生打下坚实的处理器设计基础,提高其在该领域的就业竞争力;在操作系统领域,Linux操作系统已经占据了移动终端的绝大多数市场,针对Linux的操作系统移植、驱动开发等能够直接接轨企业需求;在编译器工具链方面,gcc是目前Linux等操作系统广泛支持的编译环境,针对gcc以及工具链的移植优化人才是目前国内外企业急需的紧缺人才。
5 结 语
基于OpenRISC的综合实验平台不仅能够为计算机系统相关的各门课程提供贯通式的实验平台,而且能够为面向计算机系统能力培养的教学改革提供参考依据。“自上而下”的方法能够有效协调各门课程的教学内容改革,为进一步提高计算机系统能力培养奠定基础。在此基础上,我们将详细设计和规划各门课程的教学与实验内容,顺利完成计算机系统能力培养的课程改革任务。
参考文献:
[1]刘卫东, 张悠慧, 向勇, 等. 面向系统能力培养的计算机专业课程体系建设实践[J]. 中国大学教学, 2014(8): 106-107.
[2]何静媛, 朱征宇. 高校计算机专业实践教学改革研究[J]. 计算机教育, 2010(2): 25-27.
[3]赵若阳, 李宁, 库少平. 计算机硬件课程体系及内容改革的思考[J]. 计算机教育, 2006(3): 47-49.
[4]崔永利, 李妍. 计算机硬件实验教学改革与实践[J]. 实验室研究与探索, 2006, 25(3): 361-362.