基于CPU架构设计的嵌入式系统课程教学改革探索

时间:2022-10-08 06:10:07

基于CPU架构设计的嵌入式系统课程教学改革探索

【摘要】在对“数字信号处理”课程教学改革的实践中,采用基于cpu架构设计嵌入式系统课程教学模式对学生进行全方位的课程内容训练,有机地结合了理论和实践部分的内容,探索出更加符合学生们接受知识和应用知识学习规律的教学方法,提高了学生的创造能力、分析和解决问题的能力,效果良好。

【关键词】嵌入式系统;ARM;FPGA

嵌入式系统是“嵌入式计算机系统”的简称,它是相对于通用计算机系统而言的。IEEE计算机协会将其定义为用来控制或监视机器、装置或者工厂等大规模系统的设备,是软件和硬件的综合体,国内一般将其定义为以应用为中心、以计算机技术为基础,软硬件可裁剪,功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

近年来,国家及企业对嵌入式人才的需求越来越旺盛。为了适应市场需求,不少高校开设了嵌入式系统相关课程。但是课程基本停留在传统的教学模式上,难以很好得适应市场需求的变化。因此,如何适应市场的变化和发展,加强学校和企业之间的互动,提高嵌入式系统课程教学质量,培养社会需求的高素质嵌入式系统应用开发人才,是我们面临的一个紧迫课题[1][2]。

一、嵌入式系统课程教学现状及问题

嵌入式系统作为一种计算机系统,也由硬件和软件两部分组成。嵌入式系统课程的主要内容分为:嵌入式系统体系结构和嵌入式操作系统开发两大部分。嵌入式系统的体系结构一般都讲解微型计算机基础知识,ARM体系结构,ARM指令系统,ARM汇编和程序设计,中断和异常,基于某型号的ARM芯片功能的讲解。嵌入式操作系统开发的内容主要包括:Linux系统架构、Bootloader移植方法、内核裁剪与移植、基于Linux系统的驱动程序开发[3][4]。

目前在嵌入式系统课程的授课主要存在以下问题:

1.以ARM为参考平台进行讲解过于单一

目前为嵌入式平台可提供的CPU方案包括ARM、DSP和FPGA。ARM偏重于控制功能。DSP偏重于数字信号处理方案。FPGA目前能够移植ARM、DSP和NIOS软核实现各种灵活的应用。目前授课中只讲解ARM,而缺乏对各种不同的架构的横向比较。学生们无法更加深刻的理解ARM、DSP和FPGA体系结构的特点,从而影响他们在应用各种CPU方案时候的选型。

2.ARM体系结构的讲解过于抽象

嵌入式系统课程中对ARM体系结构的介绍限于说明书式的罗列介绍,信息量大,很容易忘记。笔者认为最好的讲解体系结构的方法是讲解设计这种结构的思想和方法,而不是大量介绍汇编指令集这样填鸭式教学方式。从图1可以看出目前电子工程学科基本课程框架结构。嵌入式系统融合了硬件、软件和操作系统多个知识框架。其中计算机组成原理和计算机体系结构处于核心位置。ARM、DSP和FPGA体系结构都包含在计算机体系结构里面。而目前我们的课程中缺失CPU硬件设计这一重要内容。学生只会用CPU而不会设计CPU。那么,他们对CPU的各种体系结构也是舍本逐末的。例如麻省理工学院的一门相关课程是计算机系统设计。学生在实验课中,需要自主完成ALU、单指令周期CPU(Single-cycle CPU)、多指令周期CPU(Multi-cycle CPU),乃至实现流水线32位MIPS CPU和Cache设计。而目前我们的课程主要是集中介绍国际流行的通用或专用微处理器架构。内容主要是说明书里知识点的堆砌,大量是记忆的内容。

3.目前的教学内容存在普遍的重软轻硬的现象

目前很多学校的课程主要偏重于各种编程环境、开发工具、数据库、计算机网络集成技术上面,关于硬件的内容只是限于简单的介绍。这样的教学现状对于我们培养掌握硬件核心技术人才非常不利。

二、基于CPU架构设计的嵌入式系统课程教学方法

针对上述嵌入式系统课程中存在的问题,笔者尝试着将CPU架构设计的内容引入嵌入式系统课程,从而是学生更加容易理解各种CPU体系结构中的指令集系统、指令流水线概念、中断等概念。通过FPGA硬件平台和QuartusII 6.0工具软件平台,使学生们掌握基于状态机控制模式的16位CISC CPU设计,MCS51单片机系列兼容型单片机软核系统设计,基于流水线技术的16位RISC CPU设计,以及基于SOPC技术的32位Nios II软核嵌入式系统软硬件设计。学生们尝试从局部到整体的学习过程,从每一个逻辑门至锁存器、移位寄存器,从RAM、ROM、FIFO、锁相环PLL、Cache、ALU至DMA、硬件通信接口,从8位CPU至32位嵌入式系统,即从最基本的部件至整个宏观过程。通过上述学习,学生们可以深刻的理解包括各种CPU体系结构的概念。而且FPGA提供高效的软硬件调试和测试工具优化设计,如基于功能和时序仿真的硬件静态测试方法、基于能完整配置进FPGA内部的嵌入式逻辑分析仪SignalTapII测试工具等。可以通过嵌入式逻辑分析仪实时的可视化各种CPU的管脚时序。对于学习CPU的体系结构是非常好的补充。显然这些内容在我们传统的教学内容、实验模式和实验手段上是没有的。

三、教学实例

CPU硬件主要由控制器、运算器、存储器、输入设备和输出设备五部分组成。学生们通过FPGA硬件平台将传统计算机组成原理实验中涉及的CPU功能模块和CPU完全使用VHDL和EDA技术来表述与构建,最终完成一个片上计算机系统的构建。

CPU由各种基本的功能模块和数据通路组成。通过课程中对各个功能模块的讲解使学生能够从总体了解CPU的硬件模型,然后通过实验使学生完成基本的功能模块的设计、综合、调试、仿真和硬件实现,即硬件设计。然后让学生自己完成自己的指令集系统设计和程序的调试,从而完成软件设计。

CPU的功能大致分为四个部分:

1.指令控制

程序是指令的有序结合。CPU是按照程序员输入的指令进行工作。CPU的首要任务就是严格控制程序的执行顺序。

2.操作控制

根据指令CPU产生控制信号,控制计算机若干个部件协同工作。

3.时序控制

操作信号需要按照产生时间、稳定实践、撤销时间以及相互之间的关系协调各个功能部件的工作,即所谓时序控制。严格的时序控制保证了计算机系统的协调工作。

4.数据加工

对涉及数值数据的算术运算、逻辑变量的逻辑运算以及其他非数值数据(如字符、字符串)的处理,它是CPU的基本任务。

CPU由运算器和控制器两大部分组成。运算器主要包括算术逻辑单元、数据寄存器、缓冲寄存器、状态寄存器组成,是数据实现算术运算和逻辑运算的加工处理部件。控制器接收命令控制运算器执行相应操作。控制器包括程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器五部分组成。控制器主要实现三个方面的任务:

1.取指令

程序计数器指针指向内存中的某条指令,取出并存放到指令寄存器中。指令的操作码部分送给指令译码器,程序计算器加一指向下一条指令。

2.译码

对译码器中指令操作码进行识别和解释,产生相应的操作控制信号,启动相应的部件,完成指令规定的动作。

3.数据流控制

指挥和控制CPU、内存及输入输出部件之间的数据流动方向。

四、结语

按照上述的基于CPU架构设计的嵌入式系统课程教学模式,奠定了学生们计算机体系结构的硬件基础。这一体系从简单到复杂,从理论到实践,循序渐进,逐步提高。经过工程实践的训练,激发了学生们学习嵌入式系统课程的热情,巩固了课本上的知识,拓展了工程实践的视野。同时,大大提高了学生们独立解决问题的能力和工程实践创新能力。通过上述的教学实践,取得了良好的教学效果,得到了广大师生的认可。

参考文献

[1]邓春健,李文生,杨亮,等.“ARM嵌入式系统”课程教学方法研究[J].计算机教育,2010(3):94-96.

[2]俸皓.嵌入式系统教学体系改革的探讨[J].科技信息(科学教研),2007,12(30):29-31.

[3]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2002.

[4]任爱锋,初秀琴,常存,孙肖子.基于FPGA的嵌入式系统设计[M].西安:西安电子科技大学出版社,2005.

上一篇:基于PHP—MYSQL技术的图书信息管理系统设计 下一篇:基于工学结合的高职汽车专业课程改革