首 页 中国教育 高校科技 教育信息化 教育在线 教育舆情 CERNET 下一代互联网
CERNET第三十届学术年会征文通知发布
  • 中国教育人博客
  • 天下教育
  • 考试培训
  • 中小学教育
  • 家庭教育
  • 就业创业
  • 菁菁校园
  • 分享空间
 当前位置:首页 > 中国教育 > 合作·活动 > 理工科通讯 > 2007年第3期 > 教学研究
在体系结构和操作系统课程的教学中引导和启发学生进行创新性学习和思考
2007-03-07  全国高等学校教学研究中心  

字体大小:

Critchfield讲席教授、美国俄亥俄州立大学计算机科学与工程系主任  张晓东

  编者按:本文根据张晓东教授参加“大学计算机基础课程报告论坛”时的发言录音整理,未经本人审阅。

  谢谢组委会邀请我从美国回来跟大家一同交流。从1982年1月我在北京工业大学毕业后留校做教师到现在,一直没有离开过大学,已经讲了20多年的课了,因此可以不夸张地讲,我也是一位老教师了。今天能跟各位同行在一起交流,感到非常的荣幸。

  高质量的大学教育是国家竞争力的重要组成部分

  今天我们在这里开会,讨论教学环境和机制如何适应高质量的教学。这的确是我们目前的一个重要的研究题目。我个人是讲操作系统、体系结构的,我想通过一些课例来介绍我们如何去培养学生。这样的课已经讲了40年了,那么还有什么事情可以去做呢,对学生有启发的教学方法呢?今天李未院士也提到了关于国家的创新计划,提到我们在十几年之后,即希望在2020年的时候,我们的自主创新的知识产权能够达到50%。这个数字是相当的高,可以说是任重而道远,非常的艰巨。对我们计算机教学来讲,课程的教学任务同样是非常艰巨的。我比较注重高质量的教育,因为我觉得这样的教育对国家整个发展的方向是非常重要的。

  什么是计算机学科的强项和特征

  从2002年开始,我每年通过“龙星计划”回国讲课,所以我接触过大量的国内的研究生。同学们和老师们常问这样的问题:计算机科学的identity是什么?什么是我们这个学科的强项和特征?我们培养什么样的人?我们培养的人主要是technology developers,是来做技术开发工作的人。举个例子。我今年夏天访问华中科技大学,有个老师跟我讲,他的女儿今年报考大学的时候不想去计算机系,因为计算机专业课程设置与通信专业课程一样,而且通信专业学的比计算机专业还多,计算机专业没有太强的专业性。“我为何不到一个学得更多的专业呢?”

  这个例子说明我们计算机专业本身的核心基础课在削弱。什么是我们的核心课呢?包括算法、计算机组织结构、操作系统……。说起来这些课都讲了40多年了,可能觉得没有什么可再讲的了。但这正是我们计算机最核心的东西。可以说,从1946年冯?诺伊曼提出了计算机的结构和基本模型到现在,众多的计算机进展都是在这个模型的基础上进行各种各样的变换。所以说,计算机体系结构是一个重要的基础课。那么,我们跟非计算机专业有什么样的区别呢?我知道在座的也有一些非计算机专业的老师,我是站在计算机专业的角度来讲,来做一番比较。对非计算机教育,他们主要是技术应用,他们培养的人是用计算机及其系统技术的应用人才,而不是开发计算机的人才。如果我们要把这样的原则作为指导的话,那我们就知道如何来保持计算机的强项和特征。

  对于计算机体系结构和操作系统这样的课,如果我们把它们弱化或者非常表面地去教一教,那么我们的identity是什么呢?就是说,我们的计算机学科怎么能够承担国家这样的任务,即在今后的十几年我们自主开发的核心技术占有50%分额?刚才李晓明教授也提到了这个数字,即最近美国劳工统计局对未来10年(2004—2014)做了一个统计,发现计算机的需求量是相当大的,第一张图是说有59%,包括它的增长率,新的工作将在整个科学技术,包括工程方面的需求量中占59%。可以说我们的任务非常艰巨,将有很多学生从我们这里毕业之后进入市场,因为市场对他们的需求非常大。如果我们把这些需求,以及将退休的位置再加起来,整个计算机专业人才市场,以及像Shackelford教授所讲的将计算机分成CS、CE、SE、IT等等,那将在劳工市场的总需求中占71%。

  适应全球竞争的素质教育

  我们下一代的年轻人,他们如何在竞争中生存呢?最近有一本书已经翻译成中文了,叫《世界是平的》,作者是Thomas Friedman。很多家长问他,现在整个社会的竞争变得这么强了,我们的孩子如何能够适应这样的社会并更有竞争力呢?作者提出了四个建议,即下一代年轻人生存应该有四种能力:第一种能力是要学会如何去学习(learn how to learn)。他建议年轻人一定要找到最好的老师,找到最好的学习环境去学习,如果觉得老师不好,学习环境不好,应该马上要离开,这样的话才能更有效地学习。这也是对我们教师的一个挑战和压力。第二点,年轻人一定要有激情和好奇心来学习。如果他对某一个事物没有激情和好奇心的话,不应当选择进入这个领域,因为学习的巨大动力将失去。第三点是与人的关系问题。他说,新一代年轻人一定要学会去喜欢别人,同时也有很好的修养被别人喜欢。为什么呢?因为有更多合作的关系存在。这种合作不局限于本校,而是在全世界范围。最后一点,要很好地表达自己,他的原话是把左脑和右脑同时做训练。我们知道,我们的左脑是做排序和分析的,我们的右脑是做观察和表达的。而我们很多学理工的学生不善于做表达。有一位智者说得更加确切,一个不能表达自己思想的人,等于一个没有思想的人。我们有很多学理工的学生,数学推理很好,但是不能够讲述自己到底创新的思想在什么地方。我看完了他对新一代年轻人的培养观念以后,我就想,当一个18岁的孩子进入课堂的时候,我们应当从这几个方面在教学中给予培养。我们的大学应该成为培养学生有这些能力的一个中心。

  计算机体系结构的发展趋势和挑战

  我现在回到计算机体系结构这门课程上来。20世纪70年代末,我在国内上学的时候就开始学习这门课了。这门课非常古老,非常经典。我在这个行业里待了20多年。在教这门课的时候,我总结了下面这些问题:第一,要把最新的技术和整个技术领域的发展趋势不断地介绍给学生。让学生知道现在的发展趋势是什么样子。从我第一次上讲台讲课到现在,这个趋势发生了深刻的变化。我要不断地去学习来更新自己的知识和了解。第二点,什么是当前大家最关心的事情。就是说在计算机体系结构中,大家最关注的难点是什么,什么是我们的问题。就是培养学生如何对书本知识提问题。另外,如何鼓励学生提出课本以外的问题。第三点是说我们如何建设一个实验环境,这是非常重要的。因为体系结构和操作系统这样的课是离不开实验环境的。最后,如果我们建立起了很好的实验环境,学生如何能够通过大量实验对问题获得更进一步的了解?我觉得,这是我们在美国和在中国教授体系结构和操作系统课程中最大的差别。就是说,在美国的教学之中,可以通过实验真正发现系统本身存在的问题和问题的本质。

  我们经常组织学生通过大量的讨论来激发他们的热情,同时这也可以使讨论的问题又得到非常深入的了解。在上课的时候,我们会有的放矢地提出各种各样的问题让学生来解答,这些问题不一定局限于课堂或课本。最后,我们还要通过课堂,训练我们的学生如何非常精练地、用很短的语言来表达自己。英文叫做articulate,这是美国非常重要的教学理念。我们在讲课的时候,比如说在讲计算机体系结构的时候,需要指出现在的整个大趋势是什么,什么是我们的big picture。因为一个学生在开始上体系结构、操作系统这样的课程的时候,应该了解目前该领域所遇到的问题。我们就可以看到,好的消息、坏的消息都有。好的消息非常多,如CPU 的cycle时间变短、内存带宽、内存容量等很大,I/O 带宽、磁盘容量也很大,包括计算机网络的速度变得非常快,这些都是很重要的进展,但计算机不光是由这些来组成的。

  坏消息是什么?我们可以看到,计算机耗能变大了,计算机快速存储器也达不到应用所需求的容量,同时使数据延迟非常长。200多年前,市场经济理论的奠基人、英国经济学家亚当?斯密有一个非常有名的理论,这个理论今天还在左右着我们的市场经济。他说,这个市场你不用去管,有一个无形的手,就是所谓的供求关系来自动调整市场。我们的计算机系统也存在这样的关系。我们有“供”和“求”,“应用”就是需求,计算机的供应就是CPU时间和内存的容量等资源。目前我们使用的计算机,这个供求关系是不平衡的,即非常快的计算速度和非常慢的存储速度不能满足应用大数量处理的需求。现在我们的所有优化努力都在平衡计算机资源的供应。像这样的big picture,我们应该告诉学生,使他们在学习的时候,有的放矢,有动力,知道现在可能存在的问题。我简单把这个big picture给大家介绍一下,如果在座的老师不是教体系结构的,那么抱歉,这可能稍微技术化一些。我们在教体系结构时,大家都知道,memory的速度和计算机的速度之间有很大的距离,这就需要高速缓存和数据管理,等等。但目前这个工作已经做到家了,有很多限制性因素,比如说高速缓存容量也不能变得很大。我们看,现在出现的问题是什么呢? 当数据量非常大的时候,我们把数据放在磁盘里。大家可以看出,内存与缓存差距非常大。1980年的时候,计算机到内存的访问和计算机本身的速度以及到磁盘的存储是非常平衡的。在1980年的时候,这三个阶梯非常小。我们再看2000年的情况。相对于计算机计算的速度,磁盘的速度显得非常的慢。用计算机的相对速度来度量,2000年的磁盘比1980年的磁盘慢了57倍。现在大家都知道整个瓶颈在什么地方了,瓶颈就在我们的磁盘上面。这种瓶颈的主要表现是什么呢?类似于我们的高速公路。现在的高速公路造得都非常好,我们在高速公路上的速度很快,但是上、下高速公路的前、后会有严重的延迟。

  两年前,加州Berkley大学的一位教授David Paterson做了一番总结,给出了一个非常好的big picture。 在过去的20年,我们计算机的速度和数据传输的bandwidth变化得非常快,可是,数据延迟的改进远远跟不上它。也可以说,我们整个公路的速度变快了,但是我们下了公路的速度延迟还是非常的慢。这个问题在计算机里并没有解决好。

  我们现在再来看看,高性能计算机是如何解决这些问题的呢?就是说,在高性能计算机中也要有一个无形的手来调节供求平衡,这只手就是计算机体系结构设计师。我们看,每年计算机的500强,即最高性能的计算机,它们的计算速度非常之快。在前10名的计算机中,原来日本的NEC Earth Simulator,过去是第一名,现在第十名了。我举这个例子,是来分析一下,计算机本身发生了什么样的变化,我们应该如何再去改变它的技术。现在的高性能计算机不是一味地再去增加它的计算机的速度,而是去平衡数据传输的速度与计算机的速度。其中一个大家听起来可能很可笑的方法,就是把计算速度降低。

  Earth Simulator是 500MHz的机器,IBM的Blue Gene也只有700MHz 。大家看到,现在手提电脑都比这些计算机快。第二点,把大量的数据存在离CPU非常近的芯片里,就是说在芯片内减少用作计算的部分,把更多的空间留下来供存储。再一点是说,如果有主存的话,让主存距离计算的部分非常地近。做出这些调整,以达到计算与存储速度的平衡,计算机才可以往前发展,而不是一味地让计算机的芯片变得更快。

  还有各种各样的软件技术来使计算机的延迟变短。一些高性能计算机的厂家,包括NEC、IBM这些厂家,可以花很多钱去推特别技术。如果我们买不起这样大的机器,只有一个机群怎么办呢?现在整个计算机系统最受关注的技术还是很经典的技术:(1)快速缓存,(2)把数据可以多多地复制,(3)把数据预取。大家看到,我们现在还离不开这些40年前的技术。可以说,现代计算机系统组织结构最关键的技术还都是以这些经典的技术为基础。

  缓存(cache)管理是计算机体系结构的一个关键技术

  今天计算机的结构里到处都放了缓存(或缓冲区),例如寄存器、存储器。有第一层的高速缓存,有TLB来去存操作系统的翻译的地址。L2的高速缓存、L3的高速缓存,这还没完,然后到整个DRAM中间,有行缓存(Row buffer)。在DRAM存储器中还划出了一部分,去给I/O的数据来做,叫缓冲区高速缓存(buffer cache)。我们在适配器(adapter)中间又加了一部分,磁盘本身中间也有一个缓存。今天的计算机到处给加了缓存,就是让数据访问可以在缓冲区进行。我经常这样来形容,今天的计算机就像一个人的衣服上缝了无数的衣兜,把所有东西都装在身上,可以快速地、伸手就从兜里拿出来,这样的计算机才有可能达到平衡。

  我们告诉学生目前计算机的状况是什么样子,学生在学习的时候就可以感觉到,哪一部分是我们的技术难点,我们怎么才能去克服目前计算机所存在的问题。系统软件可以去控制高速缓存,在做编译的时候也可以控制高速缓存。当然,我们也可以对计算机组织结构进行设计。例如,在DRAM层由硬件结构来控制,而缓冲区高速缓存则由操作系统来控制。

  我想给大家举几个例子,如何通过关注最新技术、通过讲课去问问题。我们知道,在计算机组织结构中,当CPU从高速缓存中没有找到(missed)所需数据的时候,肯定要到主存去取。那么,到主存取到底延迟了多少时间呢?这个延迟很简单吧,用一个常数就行了。这个问题在计算机操作系统课程、计算机的组织结构中都是这么讲的。即如果CPU从快速缓存中没有找到所需数据,就有一个常量的时钟周期丢掉了。不光教科书这样说,最标准的模拟系统也是这样做的。其实,到存储中去取并不是一个常数。

  在讲计算机主存的时候,学生会有问题:计算机的主存本身还有一个缓存。如果从快速缓存中失掉这个数据,可以在DRAM的缓存中取,这一定要比到主存的核中间取数据时间短,所以常数是不准确的。我们知道,如果有缓存存在,就像高速缓存一样,你就会有不同的存取时间。对一个主存的访问,其实不是那么简单,也不是一个常数,而是有可能很快,也有可能很慢。学生问这样的问题是非常自然的。我们可以看到,存取时间有很大的不同:第一个在行缓存就找了20毫秒;如果行缓存还没有做电容充电,则要40毫秒;如果什么都没做的话,要70毫秒。我们可以看到,能否在主存的缓存中取到数据,延迟的差距是非常大的,可以有67%的差距。

  当我们讲DRAM时,缓存的细节是介绍性的。而在讲计算机组织结构时把它忽略了,而是用一个常数替代了延迟。我们就这个问题给学生布置一个作业,要求用现有的模拟器,把刚才这样的主存访问非常仔细地重新模拟,把那个常数换成一系列具体的主存访问操作,这是第一个作业。做完之后,学生发现在行缓存中间几乎找不到数据,丢失率很高。这样就提出了一个研究问题。实验做完了,数据也收集了,这学期的课程也结束了,学生们带着一个问题离开了课堂,即“为什么在行缓存中间有这么多不命中呢?”

  我们知道标准的存储地址转换是怎样去做的,我在这里不去讲具体的技术。学生发现了什么呢?如果在高速缓存有了冲突,冲突就要传下去,到主存中还要传到下一个存储空间。这个问题过去在教科书中从来没有人讲到,也从来没有人发现这样一个规律。这是一个非常大的问题。过去人们认为这仅是一个冲突,但我们现在发现,这个问题的主要来源是在做内存地址转换的时候,现行的方法不可能避免这样的冲突。为此,我们把整个技术做了一个小小的改变。这个具体技术不跟大家讲了。我们通过这样一些变化,每一次做一个变化,逐步消除了这样的冲突。

  我现在想跟大家介绍的是我们讲课的整个过程。课堂上学生提出的问题,有的是书本中的问题,有的超出了书本的范畴。从问问题,到提出一个研究课题,到下课之后做研究等,构成了一个完整的过程。这对我们工作的影响是什么呢?最近的一项工作是在2000年的时候,我们从课堂开始,最后变成了一篇文章。我们有一篇文章在Micro刊登,这是计算机体系结构最顶尖的一个会刊。这篇文章解决了几个问题,第一是把这个问题的本质做了解释,第二是探讨了最基本的原因是什么,为什么会出现这样的问题,最后提出了一个非常有效的解决方案。

  我们的研究成果已经引入到新的教科书里面,因为我们揭示了地址转换的本质。最重要的是,我们这个成果刚刚发表,很快就被SUN的Micro体系结构采用了。SUN的体系结构师们把整个技术转移到产品Ultral Sparc的处理器中。全球使用这种处理器的计算机达到几百万台,它的存储控制器中的一个关键技术就是源于我们课堂里的一个研究成果。

  计算机教育应该培养创新型人才

  我现在想简单谈一下自己在过去几年里对看到的整个国内计算机教育、整个计算机行业发展的一些不同的观点。我非常推崇高质量的教育,因为要想使国家核心技术的50%都是我们自己的话,那么我们别无选择,只有走高质量培养人才的路。2005年10月,当时国内的《计算机教育》杂志约我写一篇短文,讲外包的工作对中国和美国的影响。我在文章里有这样一段话,它代表了我对整个中国计算机教育的一种担心,我给大家念一下:

  目前,越来越多的美国IT公司为降低成本,向国内转移他们的开发工作,这的确为国家经济发展带来了很多机会,特别是给国内计算机专业毕业的本科生和研究生带来了很多高工资和具有舒适工作环境的就业机会。但这一事实也加深了我们的学生和教师对计算机专业是一类服务型专业的认可。就是说,我们这个专业是给大家提供服务的,不需要创新。因为我们的毕业生只需要了解计算机的编程和应用软件的开发,就可以满足外商在国内的工作需求。在这样诱人和实惠的IT外包机遇中,核心技术的创新和基础理论的研究在国内会很难受到重视。而高水平的创新和研究工作只有在美国和少数发达国家进行。过不了多久,中国将会成为美国和其他发达国家的一个庞大的IT工厂。这跟我们国家的方针政策、长远目标是完全不一样的。这是我个人的担心。

  “龙星计划”将美国的研究生课程带回国内

  下面我想利用最后的几分钟,给大家简单介绍一下“龙星计划”。这个计划已经实施五年了,是国家自然科学基金委员会资助的、由杰出海外华人教授回国系统地讲授计算机科学和技术研究生课程,并组织共同讨论研究的一个长期项目。我们并不是来做讲座,而是把一门课放回国内讲,浓缩到一个星期讲完。我们的一个主要目标,就是要推动和影响国内的研究生从事高水平的基础研究,并在核心计算技术上有所创新。也就是我强调的高质量教育。我们知道,计算机技术在各行各业均有非常重要的应用。如果我们要在“十五”、“十一五”期间有更多创新的话,我们的教学中一定要贯穿创新式教育。

  “龙星计划”是2002年开始的。我们想通过组织这个计算机科学与工程的研究课程,提供信息科学技术研发的最新进展。我们讲课不是泛泛地讲,而是认真地把“计算机组织结构”等几门课拿回来讲。在座的许多老师也帮助我们组织了这些课程,国家自然科学基金委员会长期给予我们资助。同时,设在中国科学院计算所办公室的龙星计划委员会负责日常工作。回国讲学的老师都是自愿者,国家自然科学基金委员会仅报销来往的机票,我们不收取任何讲课费或学费。一些教授到美国已经很长时间,在国际上已经取得了一定的学术地位,我们希望这些教授回来讲学。从情结上讲,他们也很想回国为国家做一些事情。

  2000年的时候,也就是去年参加这个会的赵伟教授,他首先提议,我们能不能在国内办一个“龙星计划”。2001年,我们向国家自然科学基金委员会提出了这样一个建议书,得到了热情支持。2002—2004年第一届龙星计划委员会成立时,赵伟和闵应骅教授分别担任中方和美方的共同主席,第一届共开设了20门课。2004年,我们成立了第二届龙星计划委员会,由我和闵应骅教授共同担任委员会主席,任期是2005—2007年。2005年开设了13门课,2006年开设了10门课,现在策划2007年开设10门课。第二届委员会的成员分别来自国内和国外,其中一些人是在国际学术界相当有成就的学者。在2002—2006年期间,我们一共开设了42门课,有28位教授讲授。我们委员会的很多成员都担任了教师,我是每年都回来的。因为我觉得利用这个机会给同学讲课,是我非常享受的事情。在过去的五年里,参加学习的人数共有3587人。课程开办遍及全国各地,像北京、上海、成都等,还包括兰州、乌鲁木齐这样比较偏远的地方。应该说,这个课程已经有了自己的品牌,大家都很喜欢。现在,每年都有很多海外的华人学者询问我们能不能参加龙星计划。我们都是通过竞聘,选拔教师回国授课。

  我们希望“龙星计划”成为我们国家计算机研究生教育的一部分,这也是给我们这些在海外多年的学者的一个机会,为我国的高等教育,特别是研究生教育做一些贡献。

  结束语

  最后总结一下我今天讲的。我的第一个观点就是,计算机组织结构和操作系统是核心课程,作为计算机系,我们一定要把这些课程看做非常关键的基础课来讲。因为计算机系的学生是要做技术开发、成为创新技术的人才。第二点,一定要不断地给学生介绍高技术的发展前沿。我们的实验环境要大力加强。第三,也是我个人的体会,如果我们期待学生有激情、有好奇心地开展学习、研究的话,我们教师本身更要有激情和好奇心。谢谢大家!

教育信息化资讯微信二维码

 

建一流大学
·EDU聚焦:校园"毒跑道"
·快乐暑期安全教育别放松
·聚焦:毕业生迎来创业季
·教育3.15:优化教育环境
·3-6岁儿童学习发展指南
·开学第一课历年视频资料
  文献资料
·研究生课程建设加大
·教育法律修正案草案
·卓越教师计划改革项目
·《幼儿园园长专业标准》
·严禁任何形式就业率造假
中国教育和科研计算机网版权与免责声明
  ①凡本网未注明稿件来源的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的 媒体、网站,在下载使用时必须注明“稿件来源:中国教育和科研计算机网”,违者本网将依法追究责任。 
  ②本网注明稿件来源为其他媒体的文/图等稿件均为转载稿,本网转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。 
 
 版权所有:中国教育和科研计算机网网络中心    CERNIC, CERNET
京ICP备15006448号-16 京网文[2017]10376-1180号 京公网安备 11040202430174号
关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@cernet.com