南京大学实施计算机系统能力培养情况介绍_图文.ppt
- 文档编号:18810204
- 上传时间:2023-11-28
- 格式:PPT
- 页数:86
- 大小:3.02MB
南京大学实施计算机系统能力培养情况介绍_图文.ppt
《南京大学实施计算机系统能力培养情况介绍_图文.ppt》由会员分享,可在线阅读,更多相关《南京大学实施计算机系统能力培养情况介绍_图文.ppt(86页珍藏版)》请在冰点文库上搜索。
南京大学在系统能力培养方面的思考与改革举措南京大学计算机系袁春风email:
2016.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语言程序段如下:
structinta;charb;shortc;record;record.a=273;若record首地址为0xC008,则地址0xC008中内容及record.c的地址是0x00、0xC00DB0x11、0xC00EC0x11、0xC00DD0x00、0xC00E,显然,考的也不仅仅是程序设计!
中兴笔试题:
写程序判断当前CPU是大端CPU还是小端CPU,并作简要说明。
从企业招聘题目开始说起,有学生告诉我,他的同学写了一下程序,判断出他的PC是大端!
uniontestinta;charb;main()test.a=0xff;if(test.b=0xff)printf(“Littleendian);elseprintf(“Bigendian);该同学的程序错在哪里呢?
显然,考的也不仅仅是程序设计!
中兴笔试题:
写程序判断当前CPU是大端CPU还是小端CPU,并作简要说明。
大地址,小地址,小端,大端,理解程序的行为须有“系统思维”,程序执行结果不仅取决于算法、程序的编写(编程语言)而且取决于语言处理系统操作系统ISA微体系结构,计算机系统抽象层的转换,对系统能力培养问题的认识过程,1989-2002年讲授“组原”课程,用过若干本教材,每个内容作为孤立的点讲授,不知道该课程内容有何用,学生不喜欢(老师发了一本“天书”,学生原话),很苦恼2003年赴英UMIT(先合并到曼大)交流,发现情况一样(看来这门课只能这么教)期间,远程登录到UCB的CS61C,发现数据的表示和运算与高级语言的变量有关,Cache和程序中的数据访问有关(看来这门课还有些用处)2004-2007年采用P&HComputerOrganizationandDesign:
TheHardware/SoftwareInterface和传统教材(另一个班)同时上,考试统一为传统教材,效果很差2007-2008年采用P&HComputerOrganizationandDesign:
TheHardware/SoftwareInterface,同时改革实验方式和内容:
FPGA+CPU设计,效果很好改革后第一年(06级学生)就完成了MIPS32五级流水线CPU规划自编一套教材:
组原、数逻实验教材、组原实验教材等,SKIP,课程实验大作业代表作品,06级学生设计的MIPS32顶层结构图,07级学生在此基础上又加入了PS2接口和VGA接口统一编址方式,课程实验大作业代表作品,06级学生设计的MIPS32处理器(除浮点和除法指令外的所有指令)精确中断、软件查询方式;延迟槽为1,BACK,对系统能力培养问题的认识过程,2009-2012年采用自编教材计算机组成与系统结构,FPGA+CPU设计2009年立项:
计算机系统结构课程群建设项目数字逻辑电路、计算机组成与系统结构、微机原理与接口技术、嵌入式系统等成立课程群建设小组,经费35万,用于培训老师和研究生助教费编译原理实验结合MIPS指令系统增加了后端设计,并部分课程局部改革不仅仅在偏硬件课程群,而是认识到需要软硬件融合、分流培养YalePatt以及教材IntroductiontoComputingSystemsfromBitsandGatestoCandBeyondRandalBryant以及教材ComputerSystems:
AProgrammersPerspective美国一流大学的课程体系CS2013和CE2016规范的指导2013年开始(分方向培养,强化系统基础),结论:
强化系统(软硬件融合)、分流培养,对系统能力培养问题的认识过程,YalePatt在密西根大学时教组原课时,也按传统的内容,就硬件讲硬件,发现学生不喜欢深入调研后认识到:
要改变教学内容,要把硬件和软件结合起来讲解,使学生具有计算机系统整体概念于是,编写并出版了:
IntroductiontoComputingSystemsfromBitsandGatestoCandBeyond描述了一个“小而完整”的系统书中描述了计算机系统各个抽象层他在UTAustin一直开设该课程(报告)“Javaisnothing!
”,BACK,对系统能力培养问题的认识过程,YalePatt:
曾任美国密歇根大学计算机体系结构实验室主任多年,鉴于他在计算机发展历程中的贡献及对计算机科学教育的深刻理解和倾心投入,被IEEESpectrum评为美国计算机界的卓越泰斗(与计算机程序设计艺术的作者,图灵奖获得者DonaldKnuth齐名,全球只有他们俩人享此殊荣),在美国乃至世界计算机体系结构领域有着广泛的影响力。
多年来,从计算机科学和计算机工程院系的教学实践中,我们认识到传统的计算机课程体系中缺少帮助本科生建立软件与硬件联系的课程,使得他们对计算机系统中一些非常重要的基本概念缺乏深入理解。
例如,学生们无法清楚地解释指针变量的硬件实现;而栈、递归概念更像是在“变魔术”,难以理解。
BACK,对系统能力培养问题的认识过程,(来自CMUSCS的R.E.Bryant院长),深有感触,CarnegieMellon,RolewithinCS/ECECurriculum,CS410OperatingSystems,CS411Compilers,ProcessesMem.Mgmt,CS441Networks,NetworkProtocols,ECE447Architecture,ECE349EmbeddedSystems,CS412OSPracticum,CS122ImperativeProgramming,CS415Databases,DataReps.MemoryModel,ECE340DigitalComputation,MachineCode,Arithmetic,ECE348EmbeddedSystemEng.,FoundationofComputerSystemsUnderlyingprinciplesforhardware,software,andnetworking,ExecutionModelMemorySystem,213,ECE545/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年课程网站:
http:
/inst.eecs.berkeley.edu/cs61c/sp12/美国UCBerkeley大学“ComponentsandDesignTechniquesforDigitalSystem”2012年课程网站:
http:
/inst.eecs.berkeley.edu/cs150/sp12/美国UCBerkeley大学“ComputerArchitectureandEngineering”2012课程网站:
http:
/inst.eecs.berkeley.edu/cs152/sp12/美国Stanford大学“ComputerOrganizationandSystems”2012年课程网站:
https:
/courseware.stanford.edu/pg/courses/281000/cs107-spring-2012美国Stanford大学“DigitalSystemsII”课程网站:
http:
/www.stanford.edu/class/ee108b/美国Stanford大学“DigitalSystemsII”课程网站:
http:
/www.stanford.edu/class/cs110/美国CarnegieMellon大学“IntroductiontoComputerArchitecture”课程网站:
http:
/www.cs.cmu.edu/213/美国CarnegieMellon大学“IntroductiontoComputerArchitecture”课程网站:
http:
/www.ece.cmu.edu/ece447/美国Univ.IllinoisatUrbana-Champaign“ComputerArchitectureII”课程网站:
http:
/www.cs.uiuc.edu/class/sp11/cs232/美国麻省理工学院(MIT)“ComputationStructures”课程网站:
http:
/6004.csail.mit.edu,MIT专业设置和相关课程简介,EECS,核心课程是6.004,UCBerkeley专业方向设置,ECE:
ElectricalandComputerEngineeringElectronics(OptionI)Communications,NetworksandSystems(OptionII)ComputerSystems(OptionIII)CSE:
ComputerScienceandEngineeringComputerScience(OptionIV)Others:
flexibleprogramGeneralCourseofStudy(OptionV)EECSHonorsDegreeProgramDoubleMajorsProgramsEECS/MaterialsScienceandEngineeringEECS/NuclearEngineering,BachelorofScience(B.S.)学位提供一个major(EECS),分两个program(ECE和CSE),此外,还有HonorsProgram和DoubleMajors。
每个Program又可选择不同的option,分配相应的advisor。
UC-Berkeley相关课程设置,EECS152,StructureandInterpretationofComputerPrograms,核心课程是CS61C,Stanford专业方向设置,Stanford相关课程介绍,计算机工程方向必须选修数字系统1(数字逻辑电路)和数字系统2(计算机组成和系统结构),Stanford相关课程介绍,SystemTrack,计算机系统方向必须选修操作系统和编译或数字系统2(计算机组成和系统结构),Stanford相关课程介绍,所有专业核心课程除程序设计、数据结构、算法分析外,就是CS107计算机组成与系统(从程序员角度看计算机系统)和CS110计算机系统原理(相当于CS2013的SF),CMUSCS的相关课程介绍,一个CS专业,提供5个可选方向专业核心课如下:
SCS所有专业核心课程主要是程序设计、数据结构、算法分析与15-213计算机系统概论(从程序员角度看计算机系统),CarnegieMellon,RolewithinCS/ECECurriculum,CS410OperatingSystems,CS411Compilers,ProcessesMem.Mgmt,CS441Networks,NetworkProtocols,ECE447Architecture,ECE349EmbeddedSystems,CS412OSPracticum,CS122ImperativeProgramming,CS415Databases,DataReps.MemoryModel,ECE340DigitalComputation,MachineCode,Arithmetic,ECE348EmbeddedSystemEng.,FoundationofComputerSystemsUnderlyingprinciplesforhardware,software,andnetworking,ExecutionModelMemorySystem,213,ECE545/549Capstone,CMUSCS的相关课程介绍,计算机系统专业涉及到计算机实现方面的内容,包括数字逻辑电路、组成与体系结构、OS和编译、嵌入式系统设计等。
ECE(18)和SCS(15)各自开设一部分课程。
美国一流大学相关必修课情况,偏硬,BottomUp以汇编为中心强调底层设计强调硬件与OS的接口,TOPDOWN以不同粒度的并行为线索涉及各个层次实验跨度大,MIXED强调从程序员角度看到的底层内容重点为C语言的底层支持、程序优化、存储器分配管理,而不介绍底层数据通路等的具体实现,MIT6.004,USB61C,StanfordCS107,CMU15-213,偏软,总结:
美国一流大学相关课程情况,都是EE和CS分别开课,互选共享EECS:
MIT、UCBerkeleyEE(ECE)/CS:
Stanford、CMU都采用分流培养模式MIT:
EE、EECS、CS三种学位(不同学位还分若干方向)UCB:
ECE(E、CNS、CSys)、CSE(CSci)、Mix、HonorStanford:
AI、BioCo、CE、Graph、HCI、Info、CSys、Theory、Unspecialized、IndividuallyDesignedCMUSCS:
AI、CognitiveModeling、CSys、Graph、Theory偏硬件的方向有:
EE、ECE、CE、Csys都有一门所有专业必修的介绍计算机系统的入门课(相当于组原?
)MIT6.004、UCBCS61C、StanfordCS107、CMUCS213教材有P&P、P&H、B&O,配合K&R强调C语言数组和指针、过程调用的底层实现、堆的分配、中断、异常、计算机硬件设计的课程(相当于组原?
)都在EE开设,偏硬件方向学生必选,Csys以上方向可以不选(教材有P&H、H&H)关于计算机系统更高级的内容在EECS或Csys及其以上方向开设例如,MIT6.033、StanfordCS110(相当于CS2013的SF)教材:
PrinciplesofComputerSystemDesign:
AnIntroductionbyJeromeH.SaltzerandM.FransKaashoek(MIT),BACK,中美大学相关课程教学情况对比,1.U:
EE和CS共享C:
EE和CS各自为阵2.U:
先建立系统概念后分流培养C:
没有有机贯穿系统的前导课程,没有体现分流U:
课程内容纵向关联C:
课程内容横切、关联弱U:
先系统概念后细节实现C:
先数字电路后组成原理5.U:
4-5门/学期,学得深入C:
7-8门/学期,精力不足,国内专业教学需要在计算机系统能力培养方面进行改进!
2013年前相关课程设置,Intro.toComputerSystem(ICS),Hardware,Software,Application,Theory,1st,2nd,3rd,4th,5th,6th,7th,8th,ProgrammingFunda.(C/C+),DigitalDesign,AdvancedProgramming,DataStructure,DSP,ComputerOrg.&Arch.,Datecommunication,OS,Compiler,Java,Image,Graphics,AI,Parallelcomputing,Com.Networking,Database,EmbeddingSys.,Networkingprog.,Linux,Hadoop&MapReduce,IA32&I/O,2013年前采用的改进模式,Algorithm,Gates/Register-TransferLevel,Application(Problem),InstructionSetArchitecture(ISA),OperatingSystem/VirtualMachines,MicroArchitecture,Devices,Programming(Language),Circuits,AbstractionLayersofCS,FromTop&BottomtoMiddleFromOutsidetoInside,(OS、Compiler),通过“计算机组成与结构”将系统各个层次的概念联系起来!
学生实验成果演示,DE2-70实验板(DE2实验板),FPGA芯片,处理器+CP0(五级流水线),超级终端,总线,存储器芯片,UART,总线接口部件,VGA,图形输出,PS-2,USB,MIPS:
俄罗斯方块游戏(加载在SSRAM芯片)ARM:
跳球游戏(加载在SDRAM芯片),程序包括:
自检、初始化后在LCD上显示一串字符;引导加载程序;转游戏程序执行;不同按键以不同“中断”类型区分,由相应中断服务程序处理。
游戏程序用C实现,gcc编译后,用程序将elf转换为二进制文件。
OperatingSystemLabs,2012:
labsbasedonNanos,OperatingSystemLabs,OperatingSystemLabs,编译原理实验,BACK,2013年前课程体系存在的问题,Algorithm,Gates/Register-TransferLevel,Application(Problem),InstructionSetArchitecture(ISA),OperatingSystem/VirtualMachines,MicroArchitecture,Devices,Programming(Language),Circuits,AbstractionLayersofCS,(OS、Compiler),问题:
ICS内容太散,系统性不强;CO&CA内容多,前导课基础不够,学生难掌握;OS实验量大而深入,IA-32基础不够;编译技术(目标代码:
MIPS,用SPIM验证),但有关链接器的部分没有,而这对理解VM、机器代码的生成等概念重要;未体现分流培养,2013版新教学计划框架,分流培养:
5个方向,系统能力培养的两个重要建设点,与系统能力培养关联密切的课程,先系统概述后具体实现,新课:
计算机系统基础、计算机系统综合实验改变较大的课程:
计算机组成与设计,编译原理,调整后相关课程设置(CSys方向),Hardware,Software,Application,Theory,1st,2nd,3rd,4th,5th,6th,7th,8th,ProgrammingFunda.(C/C+),DigitalDesign,ProgrammingFunda.Lab,DataStructure,计算机系统基础,OS,Compiler,Java,Image,Graphics,AI,Parallelcomputing,Com.Networking,Database,Emb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南京大学 实施 计算机系统 能力 培养 情况 介绍 图文