马义德 张红娟 张在峰 陆福相 汤书森
(兰州大学 信息科学与工程学院, 兰州 730000)
“微机原理与接口技术”是教育部规定的综合性大学电子信息方向的专业基础课与专业主干课,也是信息学科相关专业,如信息与通信工程、电气工程、控制科学与工程、计算机科学与技术等专业的必修课程,是后续嵌入式系统相关多门课程的计算机应用软硬件学习的重要纽带和桥梁。
“微机原理与接口技术”是一门面向应用的、具有很强实践性与综合性的课程,具有以下特点:工作原理与编程方法、接口技术并重;软件与硬件结合;理论与实践结合。课程的学习要求学生具备一定的软硬件基础,并能够在课程学习的基础上,融会贯通,举一反三,为后续专业课程的深入学习和微型计算机新技术的发展奠定基础[1]。
随着计算机新技术,特别是集成电路技术和人工智能技术的发展,与“微机原理与接口技术”课程相关的新知识、新概念、新技术层出不穷,如何在讲授课程基本知识的同时,扩展新技术、新概念与新理论的延伸学习,如何用开放的思路进行课程的教学实践与研究,使得该课程的教学与人工智能相关新技术紧密结合,并延伸和扩展到GPU技术、机器学习、深度学习等新理论新技术的开放性、探究性教学实践中,培养学生兴趣、吸引学生热情、引导学生主动思维和自主学习,要求学生在掌握课程关键知识单元和基本模块的基础上,通过线上线下结合,课堂翻转等手段,主动探究和学习人工智能领域的相关新知识,是新形势下我们教学团队面临的新任务。结合十多年来对该课程的教学实践与经验积累,我们尝试进行了多项教学改革与研究。
“微机原理与接口技术”是信息学科相关专业学习计算机工作原理和应用的重要课程,也是嵌入式系统相关后续课程学习的重要纽带和桥梁。课程面向应用,具有很强的实践性与综合性,主要讲述微型计算机硬件电路体系结构和工作原理、微型计算机汇编语言编程原理和常用接口芯片使用方法、中断控制、DMA访问和程序控制的输入输出技术等的基本原理、对应芯片及其应用技巧。
如何在传授“微机原理与接口技术”课程关键知识模块后,引导和培养学生探究性学习其他基本知识单元,进一步培养学生的自我学习和主动学习能力,是重点要解决的问题。通过多年的教学实践,课程的关键知识模块主要总结为如图1、图2和图3所示的知识单元。
图1 关键知识单元模块一
图2 关键知识单元模块二
图3 四个关键知识单元模块及其关系
图1所示关键知识模块一包括:CPU相关知识单元、存储器相关知识单元和I/O 接口相关知识单元。
在讲解CPU知识单元时,要讲透8086 CPU的编程结构、寻址方式与指令系统、汇编语言程序简单设计技巧等内容。
在讲解存储器技术知识单元时,要讲透8086 CPU对存储器的分段管理机制及访问、动态存储器刷新、全地址译码与部分地址译码等主要内容。
在讲解I/O 接口技术知识单元时,要讲透8086 CPU对I/O接口的独立地址编码与统一地址编码、中断技术、DMA访问技术和程序控制的输入输出方法等内容。
图2所示为关键知识单元总结模块二,主要是8086 CPU编程结构知识单元的进一步细化,重点讲透CPU的执行单元EU、总线接口单元BIU(包括通用寄存器和专用寄存器组)、对存储器RAM的奇、偶地址体的分块访问、对I/O接口的读写访问等知识点。
图3总结了课程四个关键知识单元模块及其关系的总结,描述了8086 CPU如何通过系统总线对内存和I/O接口进行访问。
受到疫情影响,线上学习和教学研究是未来相当长一段时间内高等教育教学与科研活动发展的大趋势。为此,线上教学环境建设、软件操作、平台持续升级、线上资源的丰富与持续更新非常重要。鼓励学生线上听课,培养学生基于网络平台课程信息资源的主动学习,是未来教学中最重要的途径之一,更利于在新形势下的高等教育教学质量的不断提高。
随着互联网技术、信息技术及人工智能技术的快速发展,线上网络教学资源逐步丰富,学生们可以通过多种通道获取知识,同时,教师线上教学可以采用多种网络在线平台提供的线上资源[2],把传统的课堂讲授通过视频或课件上线前移,学生通过碎片化时间的个性化学习,然后带着知识基础走进课堂,线上和线下教学模式相结合,利于课程教学质量的进一步提高。
课程教学团队基于超星平台完成了课程教学资源信息化建设,上传了“微机原理与接口技术”课程教学课件,录制了相关知识单元的视频录像,实践了线下教学和线上线下混合式教学模式,学生与教师之间可以通过腾讯会议、超星学习通app、微信、邮件进行互动交流。学生们通过各种线上终端可以预先学习[3-4]如图3所示的课程相关基本知识单元内容;线上线下结合,线下教师在讲透图1、图2的相关关键知识单元模块的基础上,学生课后再通过网上自主学习和查阅相关文献,进行相关知识单元的扩展延伸,从而逐步引导学生积极学习,提高协作学习能力。学习能力强的学生可以提高综合学习能力,基础薄弱的学生可以扎实地学习基础内容[5-9]。
“微机原理与接口技术”教学团队积极按照《兰州大学关于课程思政建设的指导意见》要求,深入发掘和提炼课程思政内容,并进行总结融入和教学设计。
通过对当前国家对卡脖子技术发展的政策学习和移动通信技术、嵌入式系统及相关操作系统发展需求调研,结合课程具体单元,课程团队成员积极讨论,深入分析,进行教学设计,将爱国情怀、法制意识、社会责任、人文精神、仁爱之心等思政要素深入融合到课堂教学各个环节中,激发学生认知、情感和行为的认同,实现知识传授与价值引领相统一、教书与育人相统一。培养学生的爱国情怀,培养学生积极探索、自力更生、刻苦钻研、奋进求是的科学精神。总结起来,形成的课程思政教育内容与教学设计内容如表1所示。
表1 课程思政内容与教学设计
在讲清讲透关键基本知识模块的同时,如何结合最新的人工智能相关科研动态和技术发展,引领学生对相应新知识的扩展和延伸学习,是培养学生对“微机原理与接口技术”课程学习兴趣的重要环节。
机器学习是人工智能的核心技术,是专门研究计算机如何模拟或实现人类的学习行为,以便获得新的知识或技能,或者重组已有知识使之更加完善的一门技术。机器学习技术的发展离不开高性能高速度的CPU芯片,更需要大容量高速访问的内存技术的支持。
8086 CPU的数据线宽度、寻址能力及时钟频率均远远不能满足目前大数据、网络海量图像信息的传输与处理,尤其是目前快速图像处理环境的应用需求。GPU是专门设计用来处理图形图像的处理器,其时钟频率一般以GHz计,由上千个能同时进行类似乘加运算的高速多核处理器组成,允许128GB以上的存储空间访问,迎合了深度学习矩阵运算、权值与偏置的更新存储。基于英伟达多种型号GPU的深度学习软件平台加速了多种深度学习的神经网络模型的产生,是我们应该关注的热点,也是CPU模块单元学习应该延伸和扩展的知识点,我们在线上网络资源提供了多种基于深度学习图像处理的各种热点文献,吸引和鼓励学生自主探究和学习努力。
目前的CPU一般是4~8核,对应有多核的操作系统延伸,是整个计算机系统的核心单元,是系统总线、存储器、I/O接口进行信息交换的管理者,是数据运算的执行者。深度学习模型是从浅层人工神经网络模型发展而来的网络层数可以多达几百的多神经元连接的人工神经网络模型,需要同时进行上万个高速乘加运算,其权值、偏置的数量达亿,而经典的8086 CPU的指令系统专门设计的乘/除法指令是其所有指令中字节数最多,执行时间最长的指令,根本不适合深度学习的这种大量高速简单并行的乘加运算需求,深度学习训练中的反向传播算法,对存储器空间的需求更大,并要求在有限的时间内完成对庞大数量的参数进行优化处理。通过GPU的并行处理,充分发挥其高速、多核、并行、超大存储空间的访问等优势,比常规的CPU快几十倍以上,特别适合连续访问内存且不包含分支条件计算的强大算力要求。以GPU为中心的并行计算系统获得快速增长。例如,英伟达研发的以其GPU为主的大型图形图像处理系统占据了深度学习研发平台的主要软硬件市场份额,其GTX10系列显卡相对于GTX9系列就有巨大进步,尤其显存越来越大,可以支撑的深度神经网络模型也越来越大;而RTX30系列显卡相对RTX20系列则在核心处理器上有了很大的提升,可以加快深度学习模型的训练速度[10],特别是深度学习神经网络在图形图像处理中的应用,例如:医学图像病灶分析监测与分割,肿瘤图像良恶性的判定与分类等等,都是庞大的矩阵运算过程,特别适合GPU的优势发挥。在我们的“微机原理与接口技术”课程线上资源平台,专门提供了一些矩阵运算的相关图像处理应用的深度学习热点文献,培养学生对课程衍生学习的热情与兴趣,扩展知识面,并与人工智能的发展应用相结合。学生们通过自主探究学习,可以进一步了解和掌握基于GPU的数据处理的专用计算机系统的工作原理及应用过程。
汇编语言是基于8086 CPU指令系统产生的低级程序编写语言,具有占有内存空间小、CPU资源少、执行效率高的优势,但缺点是编程繁琐,尤其对于大量数据处理的环境,汇编调试实现效率低下。汇编语言切合了CPU的指令系统,是与硬件结合最紧密的编程语言。人工智能时代,需要对海量数据及多种采集图像的高速处理,需要大量的简单乘加快速运算。Python语言是一种解释性的高级语言,经过20多年的发展,包含了功能完备的标准库和第三方库,直观性强,针对图形图像处理、大数据处理的用户编程需求,其数据处理软件包NumPy擅长矢量、张量、矩阵运算,适合应用于深度学习的图像处理研究。其拥有的庞大的C语言编写的数学函数库,执行效率高。另外,图表绘制和图像显示外挂模块Matplotlib能完成图表绘制、散点图和图象显示、简单动画制作等。
作为电子信息工程类专业,多种信号、数字图像处理学习,离不开Python语言的编程实现。
Python语言是进行基于GPU的计算机系统的编程基本工具,是学习人工智能相关的知识单元、开展机器学习、深度学习编程,必须掌握的必备的知识模块。
“微机原理与接口技术”课程学习中,可编程I/O接口芯片是首次遇到的集成电路工作模式可改变的电路,之前学习的各种模拟(集成运算放大器)或数字集成电路(数字门电路或触发器)芯片其工作模式都是固定的,结合可编程技术发展,基于现场可编程门阵列FPGA的人工神经网络模型的硬件实现是人工智能时代应用非常重要的问题,集成在FPGA内部的多种乘加运算模块和DSP、CPU软核模块等都是基于硬件平台实现轻量化深度学习的多种神经网络模型构建的最佳软硬件学习平台,是结合人工智能发展的可编程硬件技术学习的重要的知识单元,“微机原理与接口技术”课程团队在线上资源建设平台上提供了多个基于FPGA的卷积神经网络实现文献链接,供学生主动学习,积极探索实践。
翻转课堂是一种师生混合的学习模式,要求学生理解课程内容,并通过自主学习知识单元或搜索文献学习,将问题和想法带入课堂,然后进行师生互动讨论,教师提供更加个性化的指导[11]。课程团队积极进行课堂反转实践,结合微型计算机技术发展中相关芯片技术难点和我国人工智能技术实现的热点问题研究,学生通过分组学习,进行相关新技术、新概念以及深度学习的神经网络新算法的热点文献搜集与学习,总结制作PPT,自主上台讲解,教师点评,一起分析讨论,在培养学生的信息检索能力、文献阅读能力、团队合作能力以及自我表达能力的同时,学生掌握了技术前沿动态发展。将深度学习与“微机原理与接口技术”课程知识单元的学习相结合,这种实践互动,使学生们可以对微机原理相关的最新知识进行探究展望,主动研学扩展。
人工智能技术是我国“十四五”发展规划纲要指定的重点发展的技术领域,人工智能相关技术热点是电子信息工程类专业学生必须掌握的基本知识单元,而“微机原理与接口技术”课程内容繁多、概念琐碎、要记忆的知识点多,同时微型计算机技术发展快,新技术与新概念大量涌现,特别是在人工智能飞速发展的新形势下,如何结合课程关键知识单元的讲解,扩展延伸新的知识单元,培养和吸引学生对“微机原理与接口技术”课程的学习兴趣和学习热情、进行对人工智能知识点的主动学习和积极探究,如何在“微机原理与接口技术”课程的线上线下混合教学过程中,渗透和衍生扩展相关人工智能的知识单元,是我们教学团队正在积极探索的课题,这对于我们培养具有自主创新的科学探索精神的高素质专业人才具有重要的现实意义。