版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高小鹏gxp@北京航空航天大学计算机学院2013年12月1日第2届高等学校计算机类专业人才培养高峰论坛浙江,杭州计算机人才系统能力培养教学实践1高小鹏第2届高等学校计算机类专业人才培养高峰论坛计算机人才系基本思路课程群体系系统能力分级工程化方法汇报提纲2基本思路汇报提纲2系统能力培养的基本思路20062007200820092010201120122013系统能力2006:首次工程教育认证后,引发了对毕业生核心能力的思考结论:系统能力系统能力培养的特点:综合性与形成性综合性:综合运用多种知识解决系统级问题形成性:能力不是一蹴而就,需逐步形成基本思路开发“CPU、OS、编译器”计算机系统多门课程联动,逐步达成CPU编译器OS系统能力培养的基本思路20062007200820092013计算机系统的3个基石:CPU、OS、编译器CPU:指令集、流水线、调度、存储层次、总线。。。OS:中断、任务切换、存储管理、I/O。。。编译器:循环优化、指令调度。。。三者密切配合、相互影响、互相渗透本科生开发一个功能型计算机系统L1:理解硬件系统的运行原理L2:掌握硬件系统及系统软件构造方法L3:领悟软/硬件相互作用关系为什么选计算机系统作为目标?CPU编译器OS4计算机系统的3个基石:CPU、OS、编译器为什么选计算机系统现象:~2006,能力较弱原因:教学以让学生了解知识为目标,不是以学生设计系统为目标过于强调知识的全面性,课时总容量不足,学生难以深入学习虽也重视了课程体系建设,但课程衔接不足当时存在问题分析对象开发能力CPU自定义指令集;指令规模10+条OS分析代码;系统调用级编程编译器自定义文法;生成虚拟机指令;优化弱5现象:~2006,能力较弱当时存在问题分析对象开发能力CPU精简课程群2006:计算机系统相关课程(5门)模拟电路、数字逻辑、计算机组成原理、操作系统、编译技术均为必修课:课程总周期过长课程体系衔接:有脱节、有重叠建设:计算机系统课程群(4门)数字逻辑、计算机组成原理、操作系统、编译技术数字逻辑:作为起步课程;从数字电路层面切入模拟电路:选修课(体系结构方向必修课)6精简课程群2006:计算机系统相关课程(5门)6课程群改革规划(2006)教学目标:CPU,OS,编译器技术路线课程体系整合重构实验体系物理综合课程群改革规划(2006)教学目标:CPU,OS,编译器7基本思路课程群体系系统能力分级工程化方法汇报提纲8基本思路汇报提纲8数字逻辑结合数理逻辑知识,讲授组合逻辑与时序逻辑原理基于MIPS指令集,设计寄存器、加法器、移位器、控制器、多路选择器、计数器、比较器引入HDL语言、EDA工具计算机组成讲授计算机硬件工作原理在部件设计基础上,实现MIPS指令集的功能型计算机系统深化HDL语言、EDA工具应用操作系统讲授OS的各组成及其机理实现MIPS的功能型OS编译技术讲授编译器的构造技术实现MIPS的C编译器计算机系统课程群体系9数字逻辑计算机系统课程群体系9计算机组成数字逻辑课程体系数字逻辑讲授组合逻辑与时序逻辑原理设计寄存器、加法器、移位器、控制器、多路选择器等基础部件计算机组成讲授计算机硬件工作原理在基础部件之上开发计算机硬件系统实现MIPSISA、中断、存储器、I/O等硬件抽象基础部件硬件抽象MIPS指令集中断控制器存储器I/O计算机组成数字逻辑课程体系数字逻辑基础硬件MIPS指令集中断10编译技术操作系统课程体系中断切换虚实进程管理内存管理设备管理文件系统硬件抽象MIPS指令集中断控制器存储器I/O词法分析语法分析中间代码代码生成代码优化操作系统理解中断、现场切换等核心机制及软硬件依赖关系实现基于MIPS程序的进程管理、内存管理、文件系统、设备管理等编译技术C0生成MIPS汇编强化代码优化11编译技术操作系统课程体系中断切换虚实进程内存设备文件硬件MI基础部件电路原理实验体系—数字逻辑目标:掌握数字电路设计方法,开发MIPS处理器的基础部件实验体系第1层次:电路原理组合逻辑、时序逻辑触发器/寄存器、电路特性第2层次:计算与控制加/减、乘/除、有限状态机第3层次:基础部件译码器、ALU、数据选择器、计数器、乘法单元、存储器计算&控制12基础部件电路原理实验体系—数字逻辑目标:掌握数字电路设计方法实验体系—计算机组成目标:实现MIPS计算机实验体系MIPS各型指令数据通路实验MIPS多周期数据通路实验MIPS多周期控制单元实验13实验体系—计算机组成目标:实现MIPS计算机13实验体系—操作系统目标:实现小型MIPS操作系统实验体系围绕MIPS,采用层次化设计原则6个综合型实验,构造一个相对完整的操作系统内核制作与boot存储管理进程与中断系统调用文件系统shell14实验体系—操作系统目标:实现小型MIPS操作系统14综合实验体系—编译技术目标:为MIPS开发C编译器实验体系面向MIPS,生成中间代码实现基本代码优化完成具有现代编译器主要特征的小型编译器提供不同难度的选择从PL/0生成P-CODE从C0生成P-CODE从C0生成MIPS汇编15综合实验体系—编译技术目标:为MIPS开发C编译器15统一的硬件实验平台MIPSCPU存储器I/O数字逻辑、计算机组成、操作系统、编译技术16统一的硬件实验平台MIPSCPU存储器I/O数字逻辑、计算6年改革历程组建课程群团队顶层设计分布实施先遣小队首次完成MIPS处理器开发数字逻辑首轮实验编译技术首先调整数字逻辑全面调整编译技术全面调整自主开发统一硬件实验平台数字逻辑全面实施编译技术全面实施全面重构硬件代码(特别是MIPS代码)OS调整模拟器OS全面实施模拟器/硬件计组引入HDL计组全面实施20062007200820092010201120122013系统能力2006:启动;2007:规划、小组实施5个轮次迭代;2012年市教学成果一等奖176年改革历程组建课程群团队顶层设计先遣小队首次完成MIPS处CPU设计能力比较内容北航(教改前)北航(教改后)BerkeleyMIT指令集自定义MIPS自定义自定义指令规模10+502232处理能力8位32位16位32完整CPU
OS支持
工业标准的处理器工业标准指令集MIPS应用广泛较完整的CPU设计几乎覆盖定点指令中断/异常支持简单OS运行有力支持后续课程CPU设计能力比较北航北航BerkeleyMIT指令集自定义18OS设计能力相对完整的OS学生已可以完成较完整的操作系统设计与开发操作系统与MIPS计算机硬件完整集成与前序课程有序衔接,掌握完整软硬件开发比较内容北航(教改前)北航(教改后)BerkeleyHarvardMITOS选型Linux/WindowsLinux/小OSNACHOSNACHOS小OS能力层次分析/系统编程分析/设计分析/设计分析/设计分析/设计硬件PCMIPS模拟器/MIPS硬件MIPS模拟器MIPS模拟器PCOS设计能力相对完整的OS比较北航北航BerkeleyHar19编译器设计能力突出编译优化参照国际一流大学课程建设趋势,加大优化部分比重连续5年实施新实验体系选择高难度实验的学生比例稳定在50%以上其中90%以上学生可以完成高难度实验北航(教改前)北航(教改后)BerkeleyCMUPrinston优化实验比重5%35%39%61%58%优化算法重点讲述469109编译器设计能力突出编译优化北航北航BerkeleyCMUPr20基本思路课程群体系系统能力分级工程化方法汇报提纲21基本思路汇报提纲21如何评价系统能力培养的达成度?22如何评价系统能力22DO-178B:5级安全机载软件安全等级CMM:5级成熟度软件开发能力分级:标准和尺子有利于量化评估不断提升要求各课独立设置借鉴软件开发CMM:软件能力成熟度模型系统开发安全等级严重性说明接受频率(发生的风险)LevelA灾难Extremelyimprobable(X<10-9)LevelB危险Extremelyremote(10-9<X<10-7)LevelC重要remote(10-7<X<10-5)LevelD次要Probable(X>10-5)LevelE无AllDO-178B:机载软件安全级模型23DO-178B:5级安全借鉴软件开发CMM:软件能力成熟度模CPU开发能力@计算机组成原理CPU开发能力等级指令集规模CPU特点155较完整定点类指令;支持GCC;支持中断/异常/系统调用245~50较完整定点类指令;支持GCC330~40+常用的运算/存储/分支/置位/函数调用指令;手工汇编;可运行小型程序410~20+基本的运算/存储/分支/函数调用指令;手工汇编;可运行简单程序50~10简单的运算/存储/分支指令;手工汇编;示意型设计24CPU开发能力@计算机组成原理CPU开发能力等级指令集CPU基本思路课程群体系系统能力分级工程化方法汇报提纲25基本思路汇报提纲25课程群关键节点:传统的重课/难课承上启下,直接决定整体目标能否高质量达成CPU实验体系具有较大规模和难度实验教学目标:功能型CPU的设计指令集规模:50+条指令可以运行由GCC编译产生的定点类程序支持中断/异常计算机组成原理实验概述26课程群关键节点:传统的重课/难课计算机组成原理实验概述26目的:让多数普通学生达成目标!规模达到一定程度(如30+),须强调方法,否则:少数优秀学生:靠天份能悟出来多数普通学生:盲动
失败
挫折感工程方法:可能不是最优的,但应该是简单与有效具有普适性简单有效:按照方法可以一步步的开发出复杂系统要让学生拥有巅峰体验:原来我也能达到这个目标!为什么强调工程方法?27目的:让多数普通学生达成目标!为什么强调工程方法?27过去的教学方法:图解式案例教学讲解典型指令的数据通路的构造过程建立对指令在数据通路中流动的直观认识建立对数据通路基本组成的基本认识指令存储器AddrDataPC寄存器堆ReadReg1ReadReg2WriteRegWriteDataReadData1ReadData2ADDUSUBUORILWSWBEQJALUZeroOvALU结果16扩展3201数据存储器AddrReadDataWriteDataPC计算PCIMMNPCPC+401226IM[25:21]IM[20:16]1F012M1IM[15:0]M228过去的教学方法:图解式案例教学讲解典型指令的数据通路的构造过效率低下:新增指令导致对图的大量修改复杂度高:指令集规模,图的复杂度图的布局对于开发影响极大错误传递:一条指令的错误会长期存在并产生影响修改错误,往往会导致对图的大量变更难以追朔:大量设计过程难以复现50+指令:会保留50+图吗?跨度过大:从图到HDL,跨度大,缺乏中间层次图解式案例教学方法的不足29效率低下:新增指令导致对图的大量修改图解式案例教学方法的不足效率低下:新增指令导致对图的大量修改复杂度高:指令集规模,图的复杂度图的布局对于开发影响极大错误传递:一条指令的错误会长期存在并产生影响修改错误,往往会导致对图的大量变更难以追朔:大量设计过程难以复现50+指令:会保留50+图吗?跨度过大:从图到HDL,跨度大,缺乏中间层次图解式案例教学方法的不足成效:学生可以理解小规模指令集CPU的设计方法困难:学生尚难以将其推广至一般,难以开发更大规模指令集的CPU30效率低下:新增指令导致对图的大量修改图解式案例教学方法的不足目标:普通学生也能开发50+规模CPU工程化方法:3类方法单周期CPU设计工程方法(完成)多周期CPU设计工程方法(完成)流水线CPU设计工程方法(进行中)2012年秋季新探索:工程化方法31目标:普通学生也能开发50+规模CPU2012年秋季新探索:回顾:单周期数据通路PC、NPC计算单元指令存储器、数据存储器寄存器文件运算单元、扩展单元MUX指令存储器AddrDataPC寄存器堆ReadReg1ReadReg2WriteRegWriteDataReadData1ReadData2ADDUSUBUORILWSWBEQJALALUZeroOvALU结果16扩展3201数据存储器AddrReadDataWriteDataPC计算PCIMMNPCPC+401226IM[25:21]IM[20:16]1F012M1IM[15:0]M232回顾:单周期数据通路PC、NPC计算单元AddrDataPC通过案例教学,教师总结出几个必备部件数据通路表格:建立部件间的连接关系记录了部件输入端的输入来源忽略控制类信号只保留数据类信号指令NPCPCIMRFALUDMWDataRDAB33通过案例教学,教师总结出几个必备部件数据通路表格:建立部件间单指令数据通路构造的一般性方法S1:阅读每条指令
改写RTL发现所有的新增需求S2:对每个新增需求(2种处理方法)合并至已有部件修改已有部件设计描述:{F’,I’,O’}需要新增部件建立新增部件设计描述:{F,I,O}S3:对每个部件设置输入来源原则:来源相同/相近目的相同/相近34单指令数据通路构造的一般性方法S1:阅读每条指令改写RTL示例:ADDU指令NPCPCIMRFALUDMWDataRDABADDURTLR[rd]
R[rs]+R[rt]PC
PC+4S1:阅读指令,翻译成RTL表述S2:根据RTL,确定部件间连接关系NPCPCALUIM[15:11]RF.RD1RF.RD235示例:ADDU指令NPCPCIMRFALUDMWDataRD增加指令:ADDIU指令NPCPCIMRFS_EXTALUDMWDataRDABADDUNPCPCALUIM[15:11]RF.RD1RF.RD2ADDIURTLR[rt]
R[rs]+sign_ext(imm16)PC
PC+436增加指令:ADDIU指令NPCPCIMRFS_EXTALUD增加指令:ADDIU指令NPCPCIMRFS_EXTALUDMWDataRDABADDUNPCPCALUIM[15:11]RF.RD1RF.RD2ADDIUNPCPCALUIM[20:16]IM[15:0]RF.RD1S_EXTRTLR[rt]
R[rs]+sign_ext(imm16);PC
PC+437增加指令:ADDIU指令NPCPCIMRFS_EXTALUD多指令数据通路合并指令NPCPCIMRFS_EXTALUDMWDataRDABADDUNPC.NPCPCALUIM[15:11]RF.RD1RF.RD2ADDIUNPC.NPCPCALUIM[20:16]IM[15:0]RF.RD1S_EXTLWNPC.NPCPCDMIM[20:16]IM[15:0]RF.RD1S_EXTSWNPC.NPCPCIM[15:0]RF.RD1S_EXTRF.RD2。。。合并IM[25:0]NPC.NPCPCALU|DM|NPC.PC4IM[15:11]|IM[20:16]|0x1FIM[15:0]RF.RD1RF.RD2|S_EXTRF.RD2合并:垂直方向归并,去除相同项MUX自动综合:输入源多余1个的需设置MUXMUX控制信号由控制器产生38多指令数据通路合并指令NPCPCIMRFS_EXTALUDM数据通路设计的工程化方法foreach指令foreach新增需求case可以合并至已有部件:修改部件设计描述、HDL建模:{F’,I’,O’}case需要新增部件:建立新部件设计描述、HDL建模:{F,I,O}增加新部件foreach部件设置输入来源按垂直方向合并数据通路,并去除相同项foreach输入来源多余1个的输入端部署1个MUX(MUX的输入规模为输入来源数)MUX设计定义、HDL建模单指令数据通路构造HDL建模:连接所有的部件及所有的MUX多数据通路综合系统实现数据通路设计的工程化方法foreach指令按垂直方向合并39数据通路设计的工程化方法foreach指令foreach新增需求case可以合并至已有部件:修改部件设计描述、HDL建模:{F’,I’,O’}case需要新增部件:建立新部件设计描述、HDL建模:{F,I,O}增加新部件foreach部件设置输入来源按垂直方向合并数据通路,并去除相同项foreach输入来源多余1个的输入端部署1个MUX(MUX的输入规模为输入来源数)MUX设计定义、HDL建模固定复杂度(单指令,对每条指令理解正确)HDL建模:连接所有的部件及所有的MUX极低复杂度较低复杂度数据通路设计的工程化方法foreach指令按垂直方向合并40组建课程群团队顶层设计分布实施先遣小队首次完成MIPS处理器开发数字逻辑首轮实验编译技术首先调整数字逻辑全面调整编译技术全面调整自主开发统一硬件实验平台数字逻辑全面实施编译技术全面实施全面重构硬件代码(特别是MIPS代码)OS调整模拟器OS全面实施模拟器/硬件计组引入HDL计组全面实施新计组(数字逻辑工程方法)20062007200820092010201120122013系统能力新计组(2012秋季):1个行政班试验41组建课程群团队顶层设计先遣小队首次完成MIPS处理器开发数字新计组(2012秋季):工程化方法实践效果2012年秋季,1个行政班成建制完成CPU开发均完成50+指令的CPU设计支持简单OS运行有力支持后续课程学生有“巅峰体验”,有成就感42新计组(2012秋季):工程化方法实践效果2012年秋季,1新计组(2013年秋季):全大班试验组建课程群团队顶层设计分布实施先遣小队首次完成MIPS处理器开发数字逻辑首轮实验编译技术首先调整数字逻辑全面调整编译技术全面调整自主开发统一硬件实验平台数字逻辑全面实施编译技术全面实施全面重构硬件代码(特别是MIPS代码)OS调整模拟器OS全面实施模拟器/硬件计组引入HDL计组全面实施新计组(数字逻辑工程方法)20062007200820092010201120122013新计组系统能力43新计组(2013年秋季):全大班试验组建课程群团队顶层设计先总结系统能力培养:需通过系列课程连续实施课程群知识体系、实验体系应紧密衔接系统能力分级:是标尺,有利于量化评估工程化方法:是普通学生达成较高目标关键所在让学生有巅峰体验,激发学习热情44总结系统能力培养:需通过系列课程连续实施44谢谢大家!
敬请批评指正!谢谢大家!
敬请批评指正!452013秋季实验体系(Project部分)注重形成性培养序号描述检查时间描述检查方式1报纸售卖机9周阅读和运行Verilog设计代码和testbench。现场问答2串行发送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周开发定时器模块,集成串口控制器模块。注:支持MIPS-C指令集注:提供串行通信控制器模块8系统验证下学期第2周增加中断支持。在FPGA实验系统上成果运行。注:支持MIPS-C指令集不能只依赖一个大作业!2013秋季:每周1个project阅读实验指导书完成project开发撰写实验报告462013秋季实验体系(Project部分)注重形成性培养序号2013秋季Project3测试成绩Project3:Logisim开发7条指令的单周期CPUaddu,subu,ori,lw,sw,beq,lui2013秋季Project3测试成绩Project3:Log472013秋季Project3测试成绩Project3测试:实验课加1条指令,记录完成时间标准测试汇编MARS:运行标准测试汇编,观察程序运行结果Logisim:修改设计,增加新指令;并对比调试要求必须个人独立完成采用监考方式482013秋季Project3测试成绩Project3测试:实2013秋季Project3测试成绩2个行政班,参加实验测试为47人50人:有3人因故未参加测试89%(42人):2.5小时内完成新增指令,并通过测试5人未通过测试492013秋季Project3测试成绩2个行政班,参加实验测试指令存储器AddrDataPC指令寄存器指令[31:26]指令[25:21]指令[20:16]指令[15:0]AB寄存器堆ReadReg1ReadReg2WriteRegWriteDataReadData1ReadData2ALUZeroOvALU结果ALUOut16扩展3201数据寄存器数据存储器AddrReadDataWriteDataPC计算PCIMMNPCPC+4012261F012M1M2M3OpFunctS0S1S2S3S4S5S6S7S8S9PCWr10000NPCOpPC+4XXXXIRWr10000GPRWr00001DMWr00000ALUOpXaddaddaddaddGPRSelX00000000WDSelX01010101ExtOpXSESESESEBSelX1111S0FetchResetS1DCD/RFS2MAS3MRS4MemWBOp=LWOp=LW|OP=SWAddrDataPC指指令指令指令指令AB寄存器堆Read50S1:信号/状态矩阵:每条指令一张表N条指令N张表S2:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论