您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 南京大学实施计算机系统能力培养情况介绍
南京大学在系统能力培养方面的思考与改革举措南京大学计算机系袁春风email:cfyuan@nju.edu.cn2016.05主要内容•对系统能力培养问题的认识过程–从“计算机组成原理”课程的教学开始(做一点)–到“偏硬件类课程群”建设(做一些)–最终建立“分流培养体系下的系统能力培养模式”(全面做,但是还在路上)•南京大学的初步探索与改革–2013年前的改革探索:局部课程内容调整–2013年后的改革思路:课程体系全面调整•计算机系统基础课程情况介绍从企业招聘题目开始说起阿里笔试中有这样一道题目:在一台主流配置的PC上,调用f(35)所需要的时间大概是()。intf(intx){ints=0;while(x++0)s+=f(x);returnmax(s,1);}A.几毫秒B.几秒C.几分钟D.几小时显然,考的不仅仅是程序设计!学生的答案PPT计算时间PPT从企业招聘题目开始说起大众点评笔试中的一道题(也是全国考研题):计算机存储器按字节编址,采用小端方式存放数据。假定int型和short型长度分别为32位和16位,并且数据按边界对齐存储。某C语言程序段如下:struct{inta;charb;shortc;}record;record.a=273;若record首地址为0xC008,则地址0xC008中内容及record.c的地址是A.0x00、0xC00DB.0x11、0xC00EC.0x11、0xC00DD.0x00、0xC00E显然,考的也不仅仅是程序设计!中兴笔试题:写程序判断当前CPU是大端CPU还是小端CPU,并作简要说明。从企业招聘题目开始说起有学生告诉我,他的同学写了一下程序,判断出他的PC是大端!uniontest{inta;charb;}main(){test.a=0xff;if(test.b==0xff)printf(“Littleendian);elseprintf(“Bigendian);}该同学的程序错在哪里呢?显然,考的也不仅仅是程序设计!中兴笔试题:写程序判断当前CPU是大端CPU还是小端CPU,并作简要说明。FF000000000000FF大地址小地址小端大端理解程序的行为须有“系统思维”程序执行结果不仅取决于算法、程序的编写(编程语言)而且取决于语言处理系统操作系统ISA微体系结构计算机系统抽象层的转换这一点认识是经过了20多年的不断摸索才明白的!对系统能力培养问题的认识过程•1989-2002年–讲授“组原”课程,用过若干本教材,每个内容作为孤立的点讲授,不知道该课程内容有何用,学生不喜欢(老师发了一本“天书”,学生原话),很苦恼•2003年–赴英UMIT(先合并到曼大)交流,发现情况一样(看来这门课只能这么教)–期间,远程登录到UCB的CS61C,发现数据的表示和运算与高级语言的变量有关,Cache和程序中的数据访问有关(看来这门课还有些用处)•2004-2007年–采用P&H《ComputerOrganizationandDesign:TheHardware/SoftwareInterface》和传统教材(另一个班)同时上,考试统一为传统教材,效果很差•2007-2008年–采用P&H《ComputerOrganizationandDesign:TheHardware/SoftwareInterface》,同时改革实验方式和内容:FPGA+CPU设计,效果很好–改革后第一年(06级学生)就完成了MIPS32五级流水线CPU–规划自编一套教材:组原、数逻实验教材、组原实验教材等SKIP课程实验大作业代表作品06级学生设计的MIPS32顶层结构图07级学生在此基础上又加入了PS2接口和VGA接口统一编址方式课程实验大作业代表作品06级学生设计的MIPS32处理器(除浮点和除法指令外的所有指令)精确中断、软件查询方式;延迟槽为1BACK对系统能力培养问题的认识过程•2009-2012年–采用自编教材《计算机组成与系统结构》,FPGA+CPU设计–2009年立项:计算机系统结构课程群建设项目数字逻辑电路、计算机组成与系统结构、微机原理与接口技术、嵌入式系统等成立课程群建设小组,经费35万,用于培训老师和研究生助教费–编译原理实验结合MIPS指令系统增加了后端设计,并部分课程局部改革–不仅仅在偏硬件课程群,而是认识到需要软硬件融合、分流培养YalePatt以及教材《IntroductiontoComputingSystemsfromBitsandGatestoCandBeyond》RandalBryant以及教材《ComputerSystems:AProgrammer’sPerspective》美国一流大学的课程体系CS2013和CE2016规范的指导•2013年开始(分方向培养,强化系统基础)结论:强化系统(软硬件融合)、分流培养对系统能力培养问题的认识过程•YalePatt在密西根大学时教组原课时,也按传统的内容,就硬件讲硬件,发现学生不喜欢•深入调研后认识到:要改变教学内容,要把硬件和软件结合起来讲解,使学生具有计算机系统整体概念•于是,编写并出版了:《IntroductiontoComputingSystemsfromBitsandGatestoCandBeyond》描述了一个“小而完整”的系统•书中描述了计算机系统各个抽象层•他在UTAustin一直开设该课程(报告)“Javaisnothing!”算法功能部件/寄存器传送级应用问题指令集体系结构(ISA)操作系统/虚拟机微体系结构器件编程(语言处理系统)电路BACK对系统能力培养问题的认识过程•YalePatt:曾任美国密歇根大学计算机体系结构实验室主任多年,鉴于他在计算机发展历程中的贡献及对计算机科学教育的深刻理解和倾心投入,被IEEESpectrum评为美国计算机界的卓越泰斗(与《计算机程序设计艺术》的作者,图灵奖获得者DonaldKnuth齐名,全球只有他们俩人享此殊荣),在美国乃至世界计算机体系结构领域有着广泛的影响力。•多年来,从计算机科学和计算机工程院系的教学实践中,我们认识到传统的计算机课程体系中缺少帮助本科生建立软件与硬件联系的课程,使得他们对计算机系统中一些非常重要的基本概念缺乏深入理解。例如,学生们无法清楚地解释指针变量的硬件实现;而栈、递归概念更像是在“变魔术”,难以理解。BACK对系统能力培养问题的认识过程(来自CMUSCS的R.E.Bryant院长)深有感触CarnegieMellonRolewithinCS/ECECurriculumCS410OperatingSystemsCS411CompilersProcessesMem.MgmtCS441NetworksNetworkProtocolsECE447ArchitectureECE349EmbeddedSystemsCS412OSPracticumCS122ImperativeProgrammingCS415DatabasesDataReps.MemoryModelECE340DigitalComputationMachineCodeArithmeticECE348EmbeddedSystemEng.FoundationofComputerSystemsUnderlyingprinciplesforhardware,software,andnetworkingExecutionModelMemorySystem213ECE545/549Capstone来源:CMUCS213对系统能力培养问题的认识过程BACK对系统能力培养问题的认识过程•CS2013(计算机科学)–对计算机组成与系统结构的描述:[16corehours]计算机专业人员不应该将计算机看成是一个执行程序的不可思议的黑箱子。基于SF(系统基础)的AR的目标是对支撑各种计算的硬件环境以及与高层软件之间的接口的深刻理解。学生应该获得对计算机系统的功能部件及其特征、性能、接口,特别是对为提高性能在现在或将来所采用的各种并行技术的深刻理解。为了使学生能够开发出更高性能的程序,学生应该能从程序员的角度理解并行和延迟,因而学生必须理解计算机系统结构。在选择所使用的一个系统时,学生应该能够理解如何对各种部件的特性(如CPU时钟速度、CPI、存储器容量、平均访存时间等)进行权衡。–加入了分布和并行计算、信息安全、系统基础、基于平台的编程–系统基础将跨系统地综合介绍缓存、延时、并行等核心概念,涉及操作系统、体系结构、网络等领域对系统能力培养问题的认识过程•CE2016(计算机工程)–对计算机组成与系统结构的描述:[60corehours]第67页Theknowledgeunitsinthisareacollectivelyencompassthefollowing:1.Historyofcomputerarchitecture,organization,anditsroleincomputerengineering.2.Standardsanddesigntoolsusedincomputerarchitectureandorganization.3.Instructionsetarchitectures,includingmachineandassemblylevelrepresentationsandassemblylanguageprogramming.4.Computerperformancemeasurement,includingperformancemetricsandbenchmarksandtheirstrengthsandweaknesses.5.Numberrepresentationandarithmeticalgorithmsformanipulatingnumbersinvariousnumbersystems.6.Computerprocessororganizationandtradeoffs,includingdatapath,controlunit,andperformanceenhancements.7.Memorytechnologiesandmemorysystemsdesign,includingmainmemory,cachememory,andvirtualmemory.8.Input/outputsystemtechnologies,systeminterfaces,programmingmethods,andperformanceissues.9.Multi/many-corearchitectures,includinginterconnectionandcontrolstrategies,programmingtechniques,andperformance.10.Distributedsystemarchitectures,levelsofparallelism,anddistributedalgorithmsforvariousarchitectures.BACK主要参考的美国名校相关课程网站•美国UCBerkeley大学“MachineStructure”2012年课程网站:~cs61c/sp12/•美国UCBerkeley大学“ComponentsandDesignTechniquesforDigitalSystem”2012年课程网站:~cs150/sp12/•美国UCBerkeley大学“ComputerArchitectureandEngineering”2012课程网站:~cs152/sp12/•美国Stanford大学“ComputerOrganizationandSystems”2012年课程网站:
本文标题:南京大学实施计算机系统能力培养情况介绍
链接地址:https://www.777doc.com/doc-5753853 .html