1、1高小鹏高小鹏北京航空航天大学计算机学院北京航空航天大学计算机学院20201313年年1212月月1 1日日第2届高等学校计算机类专业人才培养高峰论坛浙江,杭州计算机人才系统能力培养教学实践2 基本思路 课程群体系 系统能力分级 工程化方法汇报提纲系统能力培养的基本思路20062007200820092010201120122013系统能力 2006:首次工程教育认证后,引发了对毕业生核心能力的思考 结论:系统能力 系统能力培养的特点:综合性与形成性q综合性:综合运用多种知识解决系统级问题q形成性:能力不是一蹴而就,需逐步形成 基本思路q开发“CPU、OS、编译器”计算机系统q多门课程联动,逐
2、步达成CPU编译器编译器OS4 计算机系统的3个基石:CPU、OS、编译器qCPU:指令集、流水线、调度、存储层次、总线。qOS:中断、任务切换、存储管理、I/O。q编译器:循环优化、指令调度。q三者密切配合、相互影响、互相渗透 本科生开发一个功能型计算机系统qL1:理解硬件系统的运行原理qL2:掌握硬件系统及系统软件构造方法qL3:领悟软/硬件相互作用关系为什么选计算机系统作为目标?CPU编译器编译器OS5 现象:2006,能力较弱 原因:教学以让学生了解知识为目标,不是以学生设计系统为目标q过于强调知识的全面性,课时总容量不足,学生难以深入学习q虽也重视了课程体系建设,但课程衔接不足当时存
3、在问题分析对象开发能力CPU自定义指令集;指令规模10+条OS分析代码;系统调用级编程编译器自定义文法;生成虚拟机指令;优化弱6精简课程群 2006:计算机系统相关课程(5门)q模拟电路、数字逻辑、计算机组成原理、操作系统、编译技术q均为必修课:课程总周期过长q课程体系衔接:有脱节、有重叠 建设:计算机系统课程群(4门)q数字逻辑、计算机组成原理、操作系统、编译技术q数字逻辑:作为起步课程;从数字电路层面切入q模拟电路:选修课(体系结构方向必修课)课程群改革规划(2006)教学目标:CPU,OS,编译器 技术路线q课程体系整合重构q实验体系物理综合8 基本思路 课程群体系 系统能力分级 工程化
4、方法汇报提纲9 数字逻辑q结合数理逻辑知识,讲授组合逻辑与时序逻辑原理q基于MIPS指令集,设计寄存器、加法器、移位器、控制器、多路选择器、计数器、比较器q引入HDL语言、EDA工具 计算机组成q讲授计算机硬件工作原理q在部件设计基础上,实现MIPS指令集的功能型计算机系统q深化HDL语言、EDA工具应用 操作系统q讲授OS的各组成及其机理q实现MIPS的功能型OS 编译技术q讲授编译器的构造技术q实现MIPS的C编译器计算机系统课程群体系计算机组成数字逻辑课程体系 数字逻辑q讲授组合逻辑与时序逻辑原理q设计寄存器、加法器、移位器、控制器、多路选择器等基础部件 计算机组成q讲授计算机硬件工作原
5、理q在基础部件之上开发计算机硬件系统q实现MIPS ISA、中断、存储器、I/O等硬件抽象基础部件硬件抽象MIPS指令集 中断控制器 存储器I/O11编译技术操作系统课程体系中断 切换 虚实进程管理内存管理设备管理文件系统硬件抽象MIPS指令集中断控制器存储器I/O词法分析语法分析中间代码代码生成代码优化 操作系统q理解中断、现场切换等核心机制及软硬件依赖关系q实现基于MIPS程序的进程管理、内存管理、文件系统、设备管理等 编译技术qC0生成MIPS汇编q强化代码优化12基础部件电路原理实验体系数字逻辑 目标:掌握数字电路设计方法,开发MIPS处理器的基础部件 实验体系q第1层次:电路原理u组
6、合逻辑、时序逻辑u触发器/寄存器、电路特性q第2层次:计算与控制u加/减、乘/除、有限状态机q第3层次:基础部件u译码器、ALU、数据选择器、计数器、乘法单元、存储器计算&控制13实验体系计算机组成 目标:实现MIPS计算机 实验体系qMIPS各型指令数据通路实验qMIPS多周期数据通路实验qMIPS多周期控制单元实验14实验体系操作系统 目标:实现小型MIPS操作系统 实验体系q围绕MIPS,采用层次化设计原则q6个综合型实验,构造一个相对完整的操作系统u内核制作与bootu存储管理u进程与中断u系统调用u文件系统ushell15综合实验体系编译技术 目标:为MIPS开发C编译器 实验体系q
7、面向MIPS,生成中间代码 q实现基本代码优化q完成具有现代编译器主要特征的小型编译器 q提供不同难度的选择u从PL/0生成P-CODEu从C0生成P-CODEu从C0生成MIPS汇编16统一的硬件实验平台MIPS CPU存储器存储器 数字逻辑、计算机组成、操作系统、编译技术176年改革历程组建课程群团队顶层设计分布实施先遣小队首次完成MIPS处理器开发数字逻辑首轮实验编译技术首先调整数字逻辑全面调整编译技术全面调整自主开发统一硬件实验平台数字逻辑全面实施编译技术全面实施全面重构硬件代码(特别是MIPS代码)OS调整模拟器OS全面实施模拟器/硬件计组引入HDL计组全面实施20062007200
8、820092010201120122013系统能力 2006:启动;2007:规划、小组实施 5个轮次迭代;2012年市教学成果一等奖CPU设计能力比较内容北航(教改前)北航(教改后)BerkeleyMIT指令集自定义MIPS自定义自定义指令规模10+502232处理能力8位32位16位32完整CPUOS支持 工业标准的处理器q工业标准指令集uMIPS应用广泛q较完整的CPU设计u几乎覆盖定点指令u中断/异常u支持简单OS运行u有力支持后续课程OS设计能力 相对完整的OSq学生已可以完成较完整的操作系统设计与开发q操作系统与MIPS计算机硬件完整集成q与前序课程有序衔接,掌握完整软硬件开发比较
9、内容北航(教改前)北航(教改后)Berkeley HarvardMITOS选型Linux/WindowsLinux/小OSNACHOS NACHOS 小OS能力层次分析/系统编程分析/设计分析/设计分析/设计分析/设计硬件PCMIPS模拟器/MIPS硬件MIPS模拟器MIPS模拟器PC编译器设计能力 突出编译优化q参照国际一流大学课程建设趋势,加大优化部分比重q连续5年实施新实验体系q选择高难度实验的学生比例稳定在50%以上u其中90%以上学生可以完成高难度实验北航(教改前)北航(教改后)BerkeleyCMUPrinston优化实验比重5%35%39%61%58%优化算法重点讲述469109
10、21 基本思路 课程群体系 系统能力分级 工程化方法汇报提纲22如何评价系统能力培养的达成度?23 DO-178B:5级安全q机载软件安全等级 CMM:5级成熟度q软件开发能力 分级:标准和尺子q有利于量化评估q不断提升要求 各课独立设置借鉴软件开发CMM:软件能力成熟度模型系统开发安全等级严重性说明接受频率(发生的风险)Level A灾难Extremely improbable(X 10-9)Level B危险Extremely remote(10-9 X 10-7)Level C重要remote(10-7 X 10-5)Level E无AllDO-178B:机载软件安全级模型24CPU开发
11、能力计算机组成原理CPU开发能力等级指令集规模CPU特点155较完整定点类指令;支持GCC;支持中断/异常/系统调用24550较完整定点类指令;支持GCC33040+常用的运算/存储/分支/置位/函数调用指令;手工汇编;可运行小型程序41020+基本的运算/存储/分支/函数调用指令;手工汇编;可运行简单程序5010简单的运算/存储/分支指令;手工汇编;示意型设计25 基本思路 课程群体系 系统能力分级 工程化方法汇报提纲26 课程群关键节点:传统的重课/难课q承上启下,直接决定整体目标能否高质量达成qCPU实验体系具有较大规模和难度 实验教学目标:功能型CPU的设计q指令集规模:50+条指令q
12、可以运行由GCC编译产生的定点类程序q支持中断/异常计算机组成原理实验概述27 目的:让多数普通学生达成目标!规模达到一定程度(如30+),须强调方法,否则:q少数优秀学生:靠天份能悟出来q多数普通学生:盲动失败挫折感 工程方法:可能不是最优的,但应该是简单与有效q具有普适性 简单有效:按照方法可以一步步的开发出复杂系统q要让学生拥有巅峰体验:原来我也能达到这个目标!为什么强调工程方法?28过去的教学方法:图解式案例教学 讲解典型指令的数据通路的构造过程 建立对指令在数据通路中流动的直观认识 建立对数据通路基本组成的基本认识指令存储器AddrDataPC寄存器堆Read Reg1Read Re
13、g2WriteRegWriteDataRead Data1Read Data2ADDUSUBUORILWSWBEQJALUZeroOvALU结果16扩展32数据存储器AddrReadDataWriteDataPC计算PCIMMNPCPC+426IM25:21IM20:161FM1IM15:0M229 效率低下:新增指令导致对图的大量修改 复杂度高:指令集规模,图的复杂度q图的布局对于开发影响极大 错误传递:一条指令的错误会长期存在并产生影响q修改错误,往往会导致对图的大量变更 难以追朔:大量设计过程难以复现q50+指令:会保留50+图吗?跨度过大:从图到HDL,跨度大,缺乏中间层次图解式案例教
14、学方法的不足30 效率低下:新增指令导致对图的大量修改 复杂度高:指令集规模,图的复杂度q图的布局对于开发影响极大 错误传递:一条指令的错误会长期存在并产生影响q修改错误,往往会导致对图的大量变更 难以追朔:大量设计过程难以复现q50+指令:会保留50+图吗?跨度过大:从图到HDL,跨度大,缺乏中间层次图解式案例教学方法的不足成效:学生可以理解小规模指令集CPU的设计方法困难:学生尚难以将其推广至一般,难以开发更大规模指令集的CPU31 目标:普通学生也能开发50+规模CPU 工程化方法:3类方法q单周期CPU设计工程方法(完成)q多周期CPU设计工程方法(完成)q流水线CPU设计工程方法(进
15、行中)2012年秋季新探索:工程化方法32回顾:单周期数据通路PC、NPC计算单元指令存储器、数据存储器寄存器文件运算单元、扩展单元MUX指令存储器AddrDataPC寄存器堆Read Reg1Read Reg2WriteRegWriteDataRead Data1Read Data2ADDUSUBUORILWSWBEQJALALUZeroOvALU结果16扩展32数据存储器AddrReadDataWriteDataPC计算PCIMMNPCPC+426IM25:21IM20:161FM1IM15:0M233通过案例教学,教师总结出几个必备部件 数据通路表格:建立部件间的连接关系q记录了部件输入
16、端的输入来源q忽略控制类信号q只保留数据类信号指令NPCPCIMRFALUDMWDataRDAB34单指令数据通路构造的一般性方法 S1:阅读每条指令改写RTLq发现所有的新增需求 S2:对每个新增需求(2种处理方法)q合并至已有部件u修改已有部件设计描述:F,I,Oq需要新增部件u建立新增部件设计描述:F,I,O S3:对每个部件设置输入来源原则:u来源相同/相近u目的相同/相近35示例:ADDU指令NPCPCIMRFALUDMWDataRDABADDURTLRrdRrs+Rrt PCPC+4S1:阅读指令,翻译成RTL表述S2:根据RTL,确定部件间连接关系NPCPCALUIM15:11
17、RF.RD1 RF.RD236增加指令:ADDIU指令NPCPCIMRFS_EXTALUDMWDataRDABADDUNPCPCALUIM15:11RF.RD1 RF.RD2ADDIURTLRrtRrs+sign_ext(imm16)PCPC+437增加指令:ADDIU指令NPCPCIMRFS_EXTALUDMWDataRDABADDUNPCPCALUIM15:11RF.RD1 RF.RD2ADDIUNPCPCALUIM20:16 IM15:0 RF.RD1S_EXTRTLRrtRrs+sign_ext(imm16);PCPC+438多指令数据通路合并指令NPCPCIMRFS_EXTALUDM
18、WDataRDABADDUNPC.NPCPCALUIM15:11RF.RD1 RF.RD2ADDIUNPC.NPCPCALUIM20:16 IM15:0 RF.RD1S_EXTLWNPC.NPCPCDMIM20:16 IM15:0 RF.RD1S_EXTSWNPC.NPCPCIM15:0 RF.RD1S_EXTRF.RD2。合并IM25:0 NPC.NPCPCALU|DM|NPC.PC4IM15:11|IM20:16|0 x1FIM15:0 RF.RD1RF.RD2|S_EXTRF.RD2 合并:垂直方向归并,去除相同项 MUX自动综合:输入源多余1个的需设置MUXqMUX控制信号由控制器产生
19、数据通路设计的工程化方法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 可以合并至已有部件:修改部件设计描述
20、、HDL建模:F,I,Ocase 需要新增部件:建立新部件设计描述、HDL建模:F,I,O增加新部件for each 部件设置输入来源按垂直方向合并数据通路,并去除相同项for each 输入来源多余1个的输入端部署1个MUX(MUX的输入规模为输入来源数)MUX设计定义、HDL建模固定复杂度(单指令,对每条指令理解正确)HDL建模:连接所有的部件及所有的MUX极低复杂度较低复杂度41组建课程群团队顶层设计分布实施先遣小队首次完成MIPS处理器开发数字逻辑首轮实验编译技术首先调整数字逻辑全面调整编译技术全面调整自主开发统一硬件实验平台数字逻辑全面实施编译技术全面实施全面重构硬件代码(特别是MI
21、PS代码)OS调整模拟器OS全面实施模拟器/硬件计组引入HDL计组全面实施新计组(数字逻辑工程方法)20062007200820092010201120122013系统能力新计组(2012秋季):1个行政班试验42新计组(2012秋季):工程化方法实践效果 2012年秋季,1个行政班成建制完成CPU开发q均完成50+指令的CPU设计q支持简单OS运行q有力支持后续课程 学生有“巅峰体验”,有成就感43新计组(2013年秋季):全大班试验组建课程群团队顶层设计分布实施先遣小队首次完成MIPS处理器开发数字逻辑首轮实验编译技术首先调整数字逻辑全面调整编译技术全面调整自主开发统一硬件实验平台数字逻辑
22、全面实施编译技术全面实施全面重构硬件代码(特别是MIPS代码)OS调整模拟器OS全面实施模拟器/硬件计组引入HDL计组全面实施新计组(数字逻辑工程方法)20062007200820092010201120122013新计组系统能力44总结 系统能力培养:需通过系列课程连续实施q课程群知识体系、实验体系应紧密衔接 系统能力分级:是标尺,有利于量化评估 工程化方法:是普通学生达成较高目标关键所在q让学生有巅峰体验,激发学习热情46 2013秋季实验体系(Project部分)注重形成性培养序号描述检查时间描述检查方式1报纸售卖机9周阅读和运行Verilog设计代码和testbench。现场问答2串行
23、发送11周阅读设计要求和Verilog代码,补全代码,完成报告。笔试3单周期设计logisim12周用logisim完成单周期CPU设计。注:支持MIPS-Lite指令集现场增加指令通过测试用例4单周期设计Verilog13周用Verilog完成单周期CPU设计。注:支持MIPS-Lite指令集现场增加指令通过测试用例5多周期数据通路14周用Verilog完成多周期数据通路设计。注:支持MIPS-C指令集,中断除外笔试6多周期CPU15周用Verilog完成多周期CPU设计。注:支持MIPS-C指令集,中断除外提供模板,补全设计通过测试用例7设备集成16周开发定时器模块,集成串口控制器模块。注
24、:支持MIPS-C指令集注:提供串行通信控制器模块8系统验证下学期第2周增加中断支持。在FPGA实验系统上成果运行。注:支持MIPS-C指令集 不能只依赖一个大作业!2013秋季:每周1个projectq阅读实验指导书q完成project开发q撰写实验报告2013秋季Project3测试成绩 Project3:Logisim开发7条指令的单周期CPUqaddu,subu,ori,lw,sw,beq,lui482013秋季Project3测试成绩 Project3测试:实验课加1条指令,记录完成时间q标准测试汇编qMARS:运行标准测试汇编,观察程序运行结果qLogisim:修改设计,增加新指令
25、;并对比调试 要求必须个人独立完成q采用监考方式492013秋季Project3测试成绩 2个行政班,参加实验测试为47人q50人:有3人因故未参加测试 89%(42人):2.5小时内完成新增指令,并通过测试q5人未通过测试指令存储器AddrDataPC指令寄存器指令31:26指令25:21指令20:16指令15:0AB寄存器堆Read Reg1Read Reg2WriteRegWriteDataRead Data1Read Data2ALUZeroOvALU结果ALUOut16扩展32数据数据寄存器寄存器数据存储器AddrReadDataWriteDataPC计算PCIMMNPCPC+426
26、1FM1M2M3OpFunctS0S1S2S3S4 S5 S6 S7 S8 S9PCWr10000NPCOpPC+4XXXXIRWr10000GPRWr00001DMWr00000ALUOpXadd add add addGPRSelX00000000WDSelX01010101ExtOpXSESESESEBSelX1111S0FetchResetS1DCD/RFS2MAS3MRS4MemWBOp=LWOp=LW|OP=SW S1:信号/状态矩阵:每条指令一张表qN条指令N张表 S2:信号真值表矩阵有效表达密度低q大量0元素q我们真正需要却是1元素常规表达方式的不足1、有事业的峰峦上,有汗水的
27、溪流飞淌;在智慧的珍珠里,有勤奋的心血闪光。2、人们走过的每一个足迹,都是自己生命的留言;留给今天翻过的日历,留给未来永久的历史。3、人生是一座可以采掘开拓的金矿,但总是因为人们的勤奋程度不同,给予人们的回报也不相同。4、理想之风扯满人生的帆;奋斗之杆举起理想之旗。5、人应该学会走自己的路,但更应该掌握手中的罗盘。6、不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的脚步迟缓。7、人生的意义在理想的光辉中闪烁;生命的价值在创造的生活中闪现。8、只有走完平凡的路程,才能达到伟大的目标。9、奋斗目标是人生的精神支柱。10、共同的事业,共同的斗争,可以使人们产生忍受一
28、切的力量。奥斯特洛夫斯基11、属于每个人的道路,都在每个人的足下;属于每个人的历史,都在每个人的身后。12、终于有一天,海水和泪都是甜的。13、有志者自有千方百计,无志者只有千难万难。14、贫不足羞,可羞是贫而无志。吕坤15、人,只要有一种信念,有所追求,什么艰苦都能忍受,什么环境也都能适应。丁玲16、人生的途程是遥远的,只要双脚不息地前行,道路就会向远方延伸。17、理想是人生的坚实支柱,如果失去了生活的理想,精神也就会随之而瘫痪。18、目标不是都能达到的,但它可以作为瞄准点。28、我学习了一生,现在我还在学习,而将来,只要我还有精力,我还要学习下去。别林斯基29、任何时候我也不会满足,越是读
29、书,就越是深刻的感到不满足,越是感到自己的知识贫乏。马克思30、外国语是人生斗争的一种武器。马克思31、学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。法布尔32、笔落惊风雨,诗成泣鬼神。杜甫33、别裁伪体亲风雅,转益多师是汝师。杜甫28、我学习了一生,现在我还在学习,而将来,只要我还有精力,我还要学习下去。别林斯基29、任何时候我也不会满足,越是读书,就越是深刻的感到不满足,越是感到自己的知识贫乏。马克思30、外国语是人生斗争的一种武器。马克思31、学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。法布尔32、笔落惊风雨,诗成泣鬼神。杜甫33、别裁伪体亲风雅,转益多师是汝师。杜甫