计算机人才系统能力培养教学实践课件.ppt
1,高小鹏北京航空航天大学计算机学院2013年12月1日,第2届高等学校计算机类专业人才培养高峰论坛浙江,杭州,计算机人才系统能力培养教学实践,2,基本思路课程群体系系统能力分级工程化方法,汇报提纲,系统能力培养的基本思路,系统能力,2006:首次工程教育认证后,引发了对毕业生核心能力的思考结论:系统能力系统能力培养的特点:综合性与形成性综合性:综合运用多种知识解决系统级问题形成性:能力不是一蹴而就,需逐步形成基本思路开发“CPU、OS、编译器”计算机系统多门课程联动,逐步达成,4,计算机系统的3个基石:CPU、OS、编译器CPU:指令集、流水线、调度、存储层次、总线。OS:中断、任务切换、存储管理、I/O。编译器:循环优化、指令调度。三者密切配合、相互影响、互相渗透本科生开发一个功能型计算机系统L1:理解硬件系统的运行原理L2:掌握硬件系统及系统软件构造方法L3:领悟软/硬件相互作用关系,为什么选计算机系统作为目标?,5,现象:2006,能力较弱原因:教学以让学生了解知识为目标,不是以学生设计系统为目标过于强调知识的全面性,课时总容量不足,学生难以深入学习虽也重视了课程体系建设,但课程衔接不足,当时存在问题分析,6,精简课程群,2006:计算机系统相关课程(5门)模拟电路、数字逻辑、计算机组成原理、操作系统、编译技术均为必修课:课程总周期过长课程体系衔接:有脱节、有重叠建设:计算机系统课程群(4门)数字逻辑、计算机组成原理、操作系统、编译技术数字逻辑:作为起步课程;从数字电路层面切入模拟电路:选修课(体系结构方向必修课),课程群改革规划(2006),教学目标:CPU,OS,编译器技术路线课程体系整合重构实验体系物理综合,8,基本思路课程群体系系统能力分级工程化方法,汇报提纲,9,数字逻辑结合数理逻辑知识,讲授组合逻辑与时序逻辑原理基于MIPS指令集,设计寄存器、加法器、移位器、控制器、多路选择器、计数器、比较器引入HDL语言、EDA工具计算机组成讲授计算机硬件工作原理在部件设计基础上,实现MIPS指令集的功能型计算机系统深化HDL语言、EDA工具应用操作系统讲授OS的各组成及其机理实现MIPS的功能型OS编译技术讲授编译器的构造技术实现MIPS的C编译器,计算机系统课程群体系,计算机组成,数字逻辑,课程体系,数字逻辑讲授组合逻辑与时序逻辑原理设计寄存器、加法器、移位器、控制器、多路选择器等基础部件计算机组成讲授计算机硬件工作原理在基础部件之上开发计算机硬件系统实现MIPS ISA、中断、存储器、I/O等硬件抽象,基础部件,硬件抽象,MIPS指令集,中断控制器,存储器,I/O,11,编译技术,操作系统,课程体系,中断,切换,虚实,进程管理,内存管理,设备管理,文件系统,硬件抽象,MIPS指令集,中断控制器,存储器,I/O,词法分析,语法分析,中间代码,代码生成,代码优化,操作系统理解中断、现场切换等核心机制及软硬件依赖关系实现基于MIPS程序的进程管理、内存管理、文件系统、设备管理等编译技术C0生成MIPS汇编强化代码优化,12,基础部件,电路原理,实验体系数字逻辑,目标:掌握数字电路设计方法,开发MIPS处理器的基础部件实验体系第1层次:电路原理组合逻辑、时序逻辑触发器/寄存器、电路特性第2层次:计算与控制加/减、乘/除、有限状态机第3层次:基础部件译码器、ALU、数据选择器、计数器、乘法单元、存储器,计算&控制,13,实验体系计算机组成,目标:实现MIPS计算机实验体系MIPS各型指令数据通路实验MIPS多周期数据通路实验MIPS多周期控制单元实验,14,实验体系操作系统,目标:实现小型MIPS操作系统实验体系围绕MIPS,采用层次化设计原则6个综合型实验,构造一个相对完整的操作系统内核制作与boot存储管理进程与中断系统调用文件系统shell,15,综合实验体系编译技术,目标:为MIPS开发C编译器实验体系面向MIPS,生成中间代码 实现基本代码优化完成具有现代编译器主要特征的小型编译器 提供不同难度的选择从PL/0生成P-CODE从C0生成P-CODE从C0生成MIPS汇编,16,统一的硬件实验平台,MIPS CPU,存储器,I/O,数字逻辑、计算机组成、操作系统、编译技术,17,6年改革历程,组建课程群团队,顶层设计分布实施,先遣小队首次完成MIPS处理器开发,数字逻辑首轮实验,编译技术首先调整,数字逻辑全面调整,编译技术全面调整,自主开发统一硬件实验平台,数字逻辑全面实施,编译技术全面实施,全面重构硬件代码(特别是MIPS代码),OS调整模拟器,OS全面实施模拟器/硬件,计组引入HDL,计组全面实施,系统能力,2006:启动;2007:规划、小组实施5个轮次迭代;2012年市教学成果一等奖,CPU设计能力,工业标准的处理器工业标准指令集MIPS应用广泛较完整的CPU设计几乎覆盖定点指令中断/异常支持简单OS运行有力支持后续课程,OS设计能力,相对完整的OS学生已可以完成较完整的操作系统设计与开发操作系统与MIPS计算机硬件完整集成与前序课程有序衔接,掌握完整软硬件开发,编译器设计能力,突出编译优化参照国际一流大学课程建设趋势,加大优化部分比重连续5年实施新实验体系选择高难度实验的学生比例稳定在50%以上其中90%以上学生可以完成高难度实验,21,基本思路课程群体系系统能力分级工程化方法,汇报提纲,22,如何评价系统能力培养的达成度?,23,DO-178B:5级安全机载软件安全等级CMM:5级成熟度软件开发能力分级:标准和尺子有利于量化评估不断提升要求各课独立设置,借鉴软件开发,CMM:软件能力成熟度模型,DO-178B:机载软件安全级模型,24,CPU开发能力计算机组成原理,25,基本思路课程群体系系统能力分级工程化方法,汇报提纲,26,课程群关键节点:传统的重课/难课承上启下,直接决定整体目标能否高质量达成CPU实验体系具有较大规模和难度实验教学目标:功能型CPU的设计指令集规模:50+条指令可以运行由GCC编译产生的定点类程序支持中断/异常,计算机组成原理实验概述,27,目的:让多数普通学生达成目标!规模达到一定程度(如30+),须强调方法,否则:少数优秀学生:靠天份能悟出来多数普通学生:盲动失败挫折感工程方法:可能不是最优的,但应该是简单与有效具有普适性简单有效:按照方法可以一步步的开发出复杂系统要让学生拥有巅峰体验:原来我也能达到这个目标!,为什么强调工程方法?,28,过去的教学方法:图解式案例教学,讲解典型指令的数据通路的构造过程建立对指令在数据通路中流动的直观认识建立对数据通路基本组成的基本认识,指令存储器,Addr,Data,PC,ADDUSUBUORILWSWBEQJ,16,32,01,012,26,IM25:21,IM20:16,1F,012,M1,IM15:0,M2,29,效率低下:新增指令导致对图的大量修改复杂度高:指令集规模,图的复杂度图的布局对于开发影响极大错误传递:一条指令的错误会长期存在并产生影响修改错误,往往会导致对图的大量变更难以追朔:大量设计过程难以复现50+指令:会保留50+图吗?跨度过大:从图到HDL,跨度大,缺乏中间层次,图解式案例教学方法的不足,30,效率低下:新增指令导致对图的大量修改复杂度高:指令集规模,图的复杂度图的布局对于开发影响极大错误传递:一条指令的错误会长期存在并产生影响修改错误,往往会导致对图的大量变更难以追朔:大量设计过程难以复现50+指令:会保留50+图吗?跨度过大:从图到HDL,跨度大,缺乏中间层次,图解式案例教学方法的不足,成效:学生可以理解小规模指令集CPU的设计方法困难:学生尚难以将其推广至一般,难以开发更大规模指令集的CPU,31,目标:普通学生也能开发50+规模CPU工程化方法:3类方法单周期CPU设计工程方法(完成)多周期CPU设计工程方法(完成)流水线CPU设计工程方法(进行中),2012年秋季新探索:工程化方法,32,回顾:单周期数据通路,PC、NPC计算单元指令存储器、数据存储器寄存器文件运算单元、扩展单元MUX,指令存储器,Addr,Data,PC,ADDUSUBUORILWSWBEQJAL,16,32,01,012,26,IM25:21,IM20:16,1F,012,M1,IM15:0,M2,33,通过案例教学,教师总结出几个必备部件,数据通路表格:建立部件间的连接关系记录了部件输入端的输入来源忽略控制类信号只保留数据类信号,34,单指令数据通路构造的一般性方法,S1:阅读每条指令改写RTL发现所有的新增需求S2:对每个新增需求(2种处理方法)合并至已有部件修改已有部件设计描述:F,I,O需要新增部件建立新增部件设计描述:F,I,OS3:对每个部件设置输入来源,原则:来源相同/相近目的相同/相近,35,示例:ADDU,RTLRrdRrs+Rrt PCPC+4,S1:阅读指令,翻译成RTL表述,S2:根据RTL,确定部件间连接关系,36,增加指令:ADDIU,RTLRrtRrs+sign_ext(imm16)PCPC+4,37,增加指令:ADDIU,RTLRrtRrs+sign_ext(imm16);PCPC+4,38,多指令数据通路合并,合并:垂直方向归并,去除相同项MUX自动综合:输入源多余1个的需设置MUXMUX控制信号由控制器产生,数据通路设计的工程化方法,for each 指令for each 新增需求case 可以合并至已有部件:修改部件设计描述、HDL建模:F,I,Ocase 需要新增部件:建立新部件设计描述、HDL建模:F,I,O增加新部件for each 部件设置输入来源,按垂直方向合并数据通路,并去除相同项for each 输入来源多余1个的输入端部署1个MUX(MUX的输入规模为输入来源数)MUX设计定义、HDL建模,单指令数据通路构造,HDL建模:连接所有的部件及所有的MUX,多数据通路综合,系统实现,数据通路设计的工程化方法,for each 指令for each 新增需求case 可以合并至已有部件:修改部件设计描述、HDL建模:F,I,Ocase 需要新增部件:建立新部件设计描述、HDL建模:F,I,O增加新部件for each 部件设置输入来源,按垂直方向合并数据通路,并去除相同项for each 输入来源多余1个的输入端部署1个MUX(MUX的输入规模为输入来源数)MUX设计定义、HDL建模,固定复杂度(单指令,对每条指令理解正确),HDL建模:连接所有的部件及所有的MUX,极低复杂度,较低复杂度,41,组建课程群团队,顶层设计分布实施,先遣小队首次完成MIPS处理器开发,数字逻辑首轮实验,编译技术首先调整,数字逻辑全面调整,编译技术全面调整,自主开发统一硬件实验平台,数字逻辑全面实施,编译技术全面实施,全面重构硬件代码(特别是MIPS代码),OS调整模拟器,OS全面实施模拟器/硬件,计组引入HDL,计组全面实施,新计组(数字逻辑工程方法),系统能力,新计组(2012秋季):1个行政班试验,42,新计组(2012秋季):工程化方法实践效果,2012年秋季,1个行政班成建制完成CPU开发均完成50+指令的CPU设计支持简单OS运行有力支持后续课程学生有“巅峰体验”,有成就感,43,新计组(2013年秋季):全大班试验,组建课程群团队,顶层设计分布实施,先遣小队首次完成MIPS处理器开发,数字逻辑首轮实验,编译技术首先调整,数字逻辑全面调整,编译技术全面调整,自主开发统一硬件实验平台,数字逻辑全面实施,编译技术全面实施,全面重构硬件代码(特别是MIPS代码),OS调整模拟器,OS全面实施模拟器/硬件,计组引入HDL,计组全面实施,新计组(数字逻辑工程方法),新计组,系统能力,44,总结,系统能力培养:需通过系列课程连续实施课程群知识体系、实验体系应紧密衔接系统能力分级:是标尺,有利于量化评估工程化方法:是普通学生达成较高目标关键所在让学生有巅峰体验,激发学习热情,谢谢大家!敬请批评指正!,46,2013秋季实验体系(Project部分),注重形成性培养,不能只依赖一个大作业!2013秋季:每周1个project阅读实验指导书完成project开发撰写实验报告,2013秋季Project3测试成绩,Project3:Logisim开发7条指令的单周期CPUaddu,subu,ori,lw,sw,beq,lui,48,2013秋季Project3测试成绩,Project3测试:实验课加1条指令,记录完成时间标准测试汇编MARS:运行标准测试汇编,观察程序运行结果Logisim:修改设计,增加新指令;并对比调试要求必须个人独立完成采用监考方式,49,2013秋季Project3测试成绩,2个行政班,参加实验测试为47人50人:有3人因故未参加测试89%(42人):2.5小时内完成新增指令,并通过测试5人未通过测试,指令存储器,Addr,Data,PC,A,B,ALUOut,16,32,01,012,26,1F,012,M1,M2,M3,S0Fetch,Reset,S1DCD/RF,S2MA,S3MR,S4MemWB,Op=LW,Op=LW|OP=SW,S1:信号/状态矩阵:每条指令一张表N条指令N张表S2:信号真值表矩阵有效表达密度低大量0元素我们真正需要却是1元素,常规表达方式的不足,1、有事业的峰峦上,有汗水的溪流飞淌;在智慧的珍珠里,有勤奋的心血闪光。2、人们走过的每一个足迹,都是自己生命的留言;留给今天翻过的日历,留给未来永久的历史。3、人生是一座可以采掘开拓的金矿,但总是因为人们的勤奋程度不同,给予人们的回报也不相同。4、理想之风扯满人生的帆;奋斗之杆举起理想之旗。5、人应该学会走自己的路,但更应该掌握手中的罗盘。6、不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的脚步迟缓。7、人生的意义在理想的光辉中闪烁;生命的价值在创造的生活中闪现。8、只有走完平凡的路程,才能达到伟大的目标。9、奋斗目标是人生的精神支柱。10、共同的事业,共同的斗争,可以使人们产生忍受一切的力量。奥斯特洛夫斯基11、属于每个人的道路,都在每个人的足下;属于每个人的历史,都在每个人的身后。12、终于有一天,海水和泪都是甜的。13、有志者自有千方百计,无志者只有千难万难。14、贫不足羞,可羞是贫而无志。吕坤15、人,只要有一种信念,有所追求,什么艰苦都能忍受,什么环境也都能适应。丁玲16、人生的途程是遥远的,只要双脚不息地前行,道路就会向远方延伸。17、理想是人生的坚实支柱,如果失去了生活的理想,精神也就会随之而瘫痪。18、目标不是都能达到的,但它可以作为瞄准点。28、我学习了一生,现在我还在学习,而将来,只要我还有精力,我还要学习下去。别林斯基29、任何时候我也不会满足,越是读书,就越是深刻的感到不满足,越是感到自己的知识贫乏。马克思30、外国语是人生斗争的一种武器。马克思31、学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。法布尔32、笔落惊风雨,诗成泣鬼神。杜甫33、别裁伪体亲风雅,转益多师是汝师。杜甫28、我学习了一生,现在我还在学习,而将来,只要我还有精力,我还要学习下去。别林斯基29、任何时候我也不会满足,越是读书,就越是深刻的感到不满足,越是感到自己的知识贫乏。马克思30、外国语是人生斗争的一种武器。马克思31、学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。法布尔32、笔落惊风雨,诗成泣鬼神。杜甫33、别裁伪体亲风雅,转益多师是汝师。杜甫,