计算机组成的教学设计.pdf
1 第十四届“大学计算机课程报告论坛” 2018.11.24 海口 计算机组成的教学设计计算机组成的教学设计 高小鹏高小鹏 北京航空航天大学计算机学院北京航空航天大学计算机学院 提纲 ❑ 课程概述 ❑ 知识体系 ❑ 实验体系 ❑ 工程方法 ❑ 总结 2 课程概况 ❑ 开课学期二年级上学期 ❑ 授课人数380400 ◆ 计算机学院、高等工程学院、北京学院 ❑ 教学团队 ◆ 理论课6名教师 ◆ 实验课5名教师、14名助教 3 课程名称总学时周学时周数 计算机组成(理论课)64416 计算机组成课程设计(实验课)48412 大课重课、深度课改 能力培养工程教育认证提出明确要求 ❑ 12条毕业要求明确强调培养学生解决复杂工程问题的能力 4 1 工程知识能够将数学、自然科学、工程基础和专业知识用于解决复杂工程问题。 2 问题分析能够应用数学、自然科学和工程科学的基本原理,识别、表达、并通过文献研究分析复杂工程问题, 以获得有效结论。 3 设计/开发解决方案能够设计针对复杂工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺 流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 4 研究能够基于科学原理并采用科学方法对复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过 信息综合得到合理有效的结论。 5 使用现代工具能够针对复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具, 包括对复杂工程问题的预测与模拟,并能够理解其局限性。 6 工程与社会能够基于工程相关背景知识进行合理分析,评价专业工程实践和复杂工程问题解决方案对社会、 健康、安全、法律以及文化的影响,并理解应承担的责任。 7 环境和可持续发展能够理解和评价针对复杂工程问题的工程实践对环境、社会可持续发展的影响。 8 职业规范具有人文社会科学素养、社会责任感,能够在工程实践中理解并遵守工程职业道德和规范,履行责 任。 9 个人和团队能够在多学科背景下的团队中承担个体、团队成员以及负责人的角色。 10 沟通能够就复杂工程问题与业界同行及社会公众进行有效沟通和交流,包括撰写报告和设计文稿、陈述发言、 清晰表达或回应指令。并具备一定的国际视野,能够在跨文化背景下进行沟通和交流。 11 项目管理理解并掌握工程管理原理与经济决策方法,并能在多学科环境中应用。 12 终身学习具有自主学习和终身学习的意识,有不断学习和适应发展的能力。 系统能力概述 ❑ 技术地位计算机系统的3个核心技术 ◆ 处理器指令集、流水线、存储层次 ◆ 操作系统中断、任务切换、存储管理 ◆ 编译器代码生成、优化、指令调度 ❑ 相互关系密切配合,相互影响,互相渗透 ◆ 程序如何运行的,如何被管理的,如何被生成的 ❑ 学习意义奠定专业基础 ◆ 知新硬件软件运行原理及构造方法、软/硬件协同关系 ◆ 温故C语言、数据结构、算法 ◆ 发展分布式、并行、算法高效实现、嵌入式。。。 5 CPU 系统能力概述 ❑ 系统能力本科生自主开发“CPU、OS、编译器”的能力 ❑ 顶层教学目标(挑战性成果)CPU、OS、编译器 ❑ 技术路线OBEObject-Based Education理念指导课程群建设 ◆ 课程群计算机组成、操作系统、编译技术 ◆ 原则1围绕顶层目标,多门课程联动 ◆ 原则2重构知识体系,强化实验体系 ◆ 原则3构造递进式实验体系,实现能力形成性培养 ◆ 原则4以个人实验为主,培养单兵能力 6 OBE理念指导课程群建设 ❑ 边界清晰各课程之间必须有明确的知识体系边界 ❑ 有序支撑前序课程为后续课程提供理论准备和技术支撑 ❑ 精简优化去除冗余知识,突出核心知识 7 OBEOutcome-Based Education 复杂工程问题制导课程设计 ❑ 注重将工业界真实的需求、问题及研发过程,经加工后映射到教学中 ❑ 围绕复杂工程问题自顶向下重构知识体系、实验体系 ❑ 并非抛弃已有课程体系,而是强调围绕问题重构课程体系 ◆ 突出复杂工程问题在课程体系建设中的顶层指导意义 ◆ 大力度优化知识体系与实验体系剔除冗余、强化核心、重视实践 8 计算机组成的复杂工程问题CPU 追求持续改进的课程教学运行机制 ❑ 每个教学轮次都进行一次大的总结 ◆ 细粒度过程控制 ◆ 学习成果的达成评价 ◆ 微观量化的教学研究 ◆ 常态化教学交流 9 课程 大纲 教 学 复杂 工程 问题 教学 方法 过程 控制 教学活动 授课/作业/实验 达成 评价 教学 研究 实验评价指标体系 实验过程控制 提纲 ❑ 课程概述 ❑ 知识体系 ❑ 实验体系 ❑ 工程方法 ❑ 总结 10 知识面宽 ❑ 涵盖传统3门课程 ◆ 数字逻辑 ◆ 汇编语言 ◆ 计算机组成 11 基础 部件 硬件 抽象 MIPS指令集 中断控制器存储器I/O OBE驱动的知识体系 ❑ 数字电路二进制、门电路、基本运算部件 ❑ 汇编语言不讲复杂的寻址模式,不强调编程技巧 ❑ 计算机组成单周期、多周期、流水线、微系统 ❑ 强调开发CPU开发、Cache设计 ◆ 第1版教材不包含流水线方法 ❑ 强调“系统”围绕关键知识,通过“系统设计详解”讲解设 计思路、设计权衡 ◆ 课堂教学会从某些知识点进行展开,延展至其他课,帮助学生知识衔接 ⚫ 例如从硬件中断延展至简单的中断驱动的上下文切换机制 12 知识体系围绕CPU展开 精简优化突出核心知识,去除不必要的知识 ❑ 运用“奥卡姆剃刀”原则,知识体系RISC化 ◆ 部分内容举例 13 强化内容优化内容 从数字二进制展开知识讲授 以CPU设计为驱动讲授数字部件构造 去除传统微电子部分内容 去除非典型计算类实验 以RISC系统为主 讲授硬布线控制方法 去除CISC系统 去除微程序控制方法 去除浮点乘除法运算方法 具体内容请参见教材(第1版教材不包括数字电路部分) 提纲 ❑ 课程概述 ❑ 知识体系 ❑ 实验体系 ❑ 工程方法 ❑ 总结 14 实验教学概述 ❑ 设计约束 ◆ 1)规律校准→提高→突破 ⚫ 学生的能力/投入/兴趣的差异决定了提高与突破存在差异 ◆ 2)内容1个学期内完成“数字电路、汇编语言、CPU”3部分训练内容 ◆ 3)质量体系设计必须有利于过程控制 ❑ 基本思路 ◆ 1)实验体系必须层次递进的 ⚫ 不能采用少数(甚至1个)大作业形式 ◆ 2)数字电路实验主体必须服务总目标(CPU实验) ◆ 3)12周实验课,平均每周1个实验 ⚫ 有利于细粒度的过程控制;有利于分层教学;有利于学生自主抉择 ◆ 4)设置大量的自学内容,培养学生终身学习能力 15 实验教学概述 16 教学目标开发指令集规模达数十条的全速5级流水线CPU 教学特点涵盖传统数字电路、汇编语言、计算机组成3部分内容 实验体系9个阶梯状Project 开发方式独立完成 开发量总开发2000~3000行Verilog代码 所需工具Logisim,MARS,ISE等工具链 实验报告6或8个实验报告 自学内容Verilog,所有工具,2本参考手册其中1本为英文 课下实验1020小时/project 课上考核 现场新增开发需求;不同学生不同测试用例 一对一问答 实验规划 ❑ 15周在MOOC平台自学实践Logisim、汇编语言、Verilog 17 序号项目名称开发要求课上测试周数 预备自学基础知识SPOC平台Logisim/汇编/Verilog5 P0部件/状态机LogisimCRC计算/ALU/GRF/正则匹配完善部件及FSM1 学习内容包括理论课SPOC提供的知识 SPOC平台监控学生学习行为,教师/助教提供必要的指导 5周相对宽松的受控校准过程,让学生边学习边适应 实验规划 ❑ 616周9个阶梯状实验 18 序号项目名称开发要求课上测试周数 预备自学基础知识SPOC平台Logisim/汇编/Verilog5 P0部件/状态机LogisimCRC计算/ALU/GRF/正则匹配完善部件及FSM1 P1部件/状态机ALU/EXT/格雷计数器/表达式识别新增部件及FSM1 2个数字电路实验以设计CPU数据通路的功能部件为主 电 路 原 理 计 算 控 制 基 础 部 件 实验规划 ❑ 616周9个阶梯状实验 19 序号项目名称开发要求课上测试周数 预备自学基础知识SPOC平台Logisim/汇编/Verilog5 P0部件/状态机LogisimCRC计算/ALU/GRF/正则匹配完善部件及FSM1 P1部件/状态机ALU/EXT/格雷计数器/表达式识别新增部件及FSM1 P2汇编语言矩阵乘法/排序/回文串判断选择题编程题1 1个汇编语言实验由多个小训练组成 涵盖大多数指令、内存分配、寄存器、函数机制等 实验规划 ❑ 15周在MOOC平台自学实践Logisim、汇编语言、Verilog 20 序号项目名称开发要求课上测试周数 预备自学基础知识SPOC平台Logisim/汇编/Verilog5 P0部件/状态机LogisimCRC计算/ALU/GRF/正则匹配完善部件及FSM1 P1部件/状态机ALU/EXT/格雷计数器/表达式识别新增部件及FSM1 P2汇编语言矩阵乘法/排序/回文串判断选择题编程题1 P3单周期Logisim7指令/单周期新增指令1 P4单周期7指令/单周期新增指令1 2个单周期实验其中Logisim实验,主要用于帮助学生建 立对CPU运行机理的直观认识;后续实验用Verilog 实验规划 ❑ 15周在MOOC平台自学实践Logisim、汇编语言、Verilog 21 序号项目名称开发要求课上测试周数 预备自学基础知识SPOC平台Logisim/汇编/Verilog5 P0部件/状态机LogisimCRC计算/ALU/GRF/正则匹配完善部件及FSM1 P1部件/状态机ALU/EXT/格雷计数器/表达式识别新增部件及FSM1 P2汇编语言矩阵乘法/排序/回文串判断选择题编程题1 P3单周期Logisim7指令/单周期新增指令1 P4单周期7指令/单周期新增指令1 基线P5流水线110指令/流水线新增指令1 及格线支持10条支流的全力转发的5级流水线 让学生初步运用并体会基于模型的开发方法 实验规划 ❑ 616周9个阶梯状实验 22 序号项目名称开发要求课上测试周数 预备自学基础知识SPOC平台Logisim/汇编/Verilog5 P0部件/状态机LogisimCRC计算/ALU/GRF/正则匹配完善部件及FSM1 P1部件/状态机ALU/EXT/格雷计数器/表达式识别新增部件及FSM1 P2汇编语言矩阵乘法/排序/回文串判断选择题编程题1 P3单周期Logisim7指令/单周期新增指令1 P4单周期7指令/单周期新增指令1 P5流水线110指令/流水线新增指令1 良P6流水线250指令/流水线新增指令1 良流水线支持指令数扩大到50条 让学生深入理解和运用基于模型的开发方法 实验规划 ❑ 616周9个阶梯状实验 23 序号项目名称开发要求课上测试周数 预备自学基础知识SPOC平台Logisim/汇编/Verilog5 P0部件/状态机LogisimCRC计算/ALU/GRF/正则匹配完善部件及FSM1 P1部件/状态机ALU/EXT/格雷计数器/表达式识别新增部件及FSM1 P2汇编语言矩阵乘法/排序/回文串判断选择题编程题1 P3单周期Logisim7指令/单周期新增指令1 P4单周期7指令/单周期新增指令1 P5流水线110指令/流水线新增指令1 P6流水线250指令/流水线新增指令1 优-P7简单中断50指令/流水/Timer/中断现场测试2 优P8PC通讯50指令/流水/Timer/中断/UART通讯现场测试2 最后2个实验流水线支持中断;编写中断服务程序 让学生全面并深刻的理解和掌握软硬件协同机制 从数据反观教学设计的合理性 24 0 10 20 30 40 50 60 70 80 90 100 2016 2017 2018 通过非加权 80 良好 优秀 优秀 2330良好 5055 中等加权 10不及格 1015 加权综合考量合格 线实验的完成度、前 序实验的投入等 提纲 ❑ 课程概述 ❑ 知识体系 ❑ 实验体系 ❑ 工程方法 ❑ 总结 25 CPU实验“系统能力”培养的关键 ❑ CPU指令集规模足够大,才能支持OS的运行 ❑ 本科生自主开发大规模指令集CPU,对“系统”有深刻认知 ❑ 挑战公认的教学难关 26 10条指令 规模过小,示意型设计 30条指令 初具规模,可运行小型程序 指令集规模偏小,难以被成熟工具环境支持 50条指令 可运行简单OS和常规定点程序 系统功能指令中断/异常 指令集规模已可被GCC支持 指令频度分析MIPS32指令集;Linux内核及部分定点程序 传统方法的局限性 ❑ 世界级教材 ◆ 计算机组成与设计硬件/软件接口Patterson;Hennessy ◆ 数字设计和计算机体系结构Harris;Harris ❑ 传统方法概述 ◆ 以功能部件为对象 ◆ 例举68条指令的CPU设计过程,认为可以类推至更大规模指令集 27 类推 50条指令数据通路 增量式整体性构造CPU 传统方法的局限性 ❑ 客观情况随着指令集规模增长,开发复杂度急剧增长 ❑ 实际效果多数学生只能开发大约10条指令规模的CPU ◆ 只有极少数学生能在有限时间内开发数十条指令规模的CPU ADD 指令集 设计 系统架构 实现 部分完成 SW LW SUB OR LUI 现象 1.新增指令影响全局 2.错误隐蔽,难以追溯 缺陷 1.设计与实现交联 2.综合逐条指令综合 形式建模综合方法(数据通路) ❑ 基本过程形式建模,独立构造,简单综合,快速转换 设计输入 形式建模 操作语义 操作语义 操作语义 指令 简单综合 独立构造 HDL文件 设计输出 快速转换 形式建模综合方法(多周期状态机) ❑ 基本过程形式建模,独立构造,简单综合,快速转换 lw jr add beq 分立 综合 形式建模综合方法(多周期控制器) ❑ 基本过程形式建模,独立构造,简单综合,快速转换 S0 Fetch Reset S1 DCD/RF S2 MA S3 MR S4 MemWB S5 MW S6 S8 Branch S9 Jmp OpJ | OpJAL S7 AluWB CPU形式建模综合方法传统方法 形式建模综合方法(多周期控制器) ❑ 控制信号合成 ❑ 表达式构造与单周期方法相同,区别在于增加了状态变量 32 NPCOpPCWrIRWrRFWrDMWrEXTOpALUOpMRFWDMRFA3 MALUB lwS1PC4S1S1S5S2SES3ADD ALUOUTRTEXT swS1PC4S1S10S4S2SES3ADD ALUOUTRTEXT adduS1PC4S1S1S4S3ADD ALUOUTRDB subS1PC4S1S1S4S3SUBALUOUTRDB oriS1PC4S1S1S4S2ZES3ORALUOUTRTEXT luiS1PC4S1S1S3S2HEERRT beq S1PC4 S3BNPC S1 S3Zero S1 jal S1PC4 S2JNPC S1 S2 S1S2PCR31 PCWr lwswaddusubuoriluibeqjal∙S1 beq∙Zero∙S3 jal∙S2 注对应MUX的控制信号 流水线方法未包含在第1版教材里 ❑ 数据通路CPU结构表达为部件集合关系及输入输出拓扑关系 ❑ CPU开发复杂度大幅度降低 形式建模综合方法的优势 独立建模指令的子结构 设计 实现 等价 通过计算得到结构 错误可追溯 优势 1.设计与实现解耦 2.综合整体综合,且可计算 3.排错错误可追溯 南京航空航天大学,北京工业大学 ❑ 案例1南京航空航天大学 ◆ 2014年春季学期,1个行政班 ◆ 40条指令多周期CPU达成度为 73 (北航67) 34 ❑ 案例2北京工业大学 ◆ 2014春季学期,1个行政班 ◆ 53条指令多周期CPU优良率 达到47(北航30) 实验科目 实验 周数 平均 用时 最快 用时 达成度 7指令,单周期2周21696 7指令,多周期2周13789 40指令,多周期3周191274 数据来源2014第三届高等学校计算机类专业人才培 养高峰论坛,南京航空航天大学冯爱民报 告南航系统能力培养探索与实践 数据来源2014第三届高等学校计算机类专业人 才培养高峰论坛,北京工业大学朱文 军报告北京工业大学计算机组成原 理课程教改体会 提纲 ❑ 课程概述 ❑ 知识体系 ❑ 实验体系 ❑ 工程方法 ❑ 总结 35 学生因有巨大收获与成就,虽苦也能坚持 ❑ 这是每周1个CPU的节奏啊时间紧,任务重推背感太强 ◆ 计算机组成 36 几个观点 ❑ 教学的根本目标是让学生具备能力 ◆ 其中,传授方法让学生掌握方法是关键 ❑ 举一反三的“一”最重要 ❑ 能力是靠“练”出来的,需要脱胎换骨式的训练 ◆ 讲了不练 ≈ 白讲 ◆ 心理学要让学生拥有“巅峰体验” ❑ 能力形成具有过程性,不可一蹴而就 ❑ 专业必修课建设思路是大课重课 ◆ 知识面宽、实验目标高、实验强度大 37