1、第 12 章 计算机的未来第一部分 阅读和翻译A 部分 计算的未来(1)生活是一种循环,或更准确地说是螺旋式发展的过程。因此若要瞥见未来,就需要回首过去。计算已经变成我们生活不可分割的一部分,所以它也满足这种循环和螺旋式发展的定律。就让我们从 20 世纪 40 年代,那个 ENIAC 处于科技工程之巅,电子计算初现曙光的时代开始回顾吧。20 世纪 50 年代、60 年代和 70 年代的计算机,从最初占据整栋建筑,减小到装满整个房间,进而发展到可以装入高大的机箱中,本质上讲都还是大型机:它们体积巨大而且功能强劲,用作特殊用途并且只有少数人可以使用。在 70 年代末期和 80 年代初期,诸如App
2、le II 和 IBM PC 之类的微型计算机的出现,使集中式处理的计算方式发生了显著的变化。而贯穿 80 年代和 90 年代,计算机从专用的共享资源的机器,快速转变成用来完成多种任务的个人工具,并开始迅速占领我们的桌面、卧室和壁橱。这种分散式计算的趋势在 90 年代又发生了一些微妙的逆转,因特网和万维网提供了一种方法,将分散的计算资源整合成统一的“客户端-服务器”环境。从现实上讲,60 年的技术进步似乎展现出一个完整的发展周期:从占据整间房屋的设备共享计算资源开始,经历了短暂的桌面式计算之路,又回到了构建在内部网或因特网骨干网之上的共享计算资源模式。1毫无疑问,30 年前和现在的状况之间存在
3、着一些区别,现在的计算机有着更大的使用人群,而且可以完成更多类型的任务。还有一个典型的区别是:人们拥有自己的桌面式 PC 机,并且远不止将它们用作终端。实际上计算并没有形成一个完整的循环,它只是螺旋式发展中的一环而已:我们并没有回到旧的集中式计算,而是发展到了分布式计算模型。尽管大量的工作可能是由集中的资源,如提供计算服务的服务器完成的,但是桌面式PC 机和客户端工作站也能独立处理多种任务。设备占据的空间也和数十年前很不一样了:现在的数据中心并非被一台大型计算机所占据,而是存放着成百上千的机架式或刀片式服务器。在计算不断改良的过程中,电子元件也不断发展:分散的部件逐步被集成电路所替代,而独立的
4、大型机现在也被刀片服务器机柜所代替。展望未来,我们甚至可以期待集成化程度更高的“微型刀片服务器”会在不久之后出现,只要人们对计算机集成的掌握程度能达到现在人们对集成电路的掌握程度。(1)渐进式改变实际上,计算机也在经历着循环往复的渐进式改变:CPU 从在一条指令上花费数十甚至数百个周期,渐渐发展到每条指令只占用一个周期(例如标量体系结构) 。随后额外的执行部件的出现让 CPU 可以在一个时钟周期内处理多条指令,因此达到了指令级的并行(例如超标量体系结构) 。再到后来若干 CPU 被密布在主板之上(多处理器体系结构) 。而现在则是若干 CPU 被融合到一个单独的多核心封装包中,而一些这样的多核心
5、芯片可以被安装在一块单独的主板上。所以到最后数据中心里满是成堆的刀片服务器集群,这些刀片服务器都配备了一块或者几块多核心超标量 CPU。所以存在着至少五种不同级别的集成:集群、服务器、CPU 、核心和执行单元,而通常在桌面 PC 机中有其中 4 种级别的集成。但为什么需要这般复杂,而这一切又是怎么造成的呢?计算机时钟速度从千赫兹的水平增长到了千兆赫兹的水平,人们对这种计算能力怎样满足自身需求的想象和理解也随之增加了;例如, (为家庭)提供娱乐活动,以及提高生产力(这也是计算机出现在工作场所的实际原因) 。计算机原本是用来为某一明确定义的特殊用途服务的,因此应该是执行指定的单一任务的。当计算机的
6、性能增长到超出直接需求后,人们创造了多任务机制,以使多个用户可以访问剩余的计算资源。但是在硬件成本减少到消费级水平后,个人计算机就出现了,而它们当时很自然地被设计成单任务的。最早的大规模生产个人计算机速度非常缓慢,人们认为首先需要提高微型计算机处理器的处理能力:我们希望桌面应用程序能够迅速响应,而且偶尔也会想要玩玩小游戏。而PC XT 那 4.77MHz 的速度并不总能满足这些用途。只要 CPU 的处理能力增长到可以完成我们希望 PC 机所执行的特定任务,这对完成一般的任务(如文本编辑或电子表格)来说是绰绰有余。那些额外的处理能力(一如之前提到的旧的大型机的情况)促成了桌面计算机和个人计算机多
7、任务操作系统的出现。我们拥有了额外的处理能力,就会希望用它来做点事情。具有讽刺意味的是,在 PC 机上的多任务操作系统(例如 Microsoft Windows)大量出现的同时,图形用户界面也随之出现。因此之前差不多能满足需求的 CPU 性能又变得很不够用了,这促成了一场通过增强 CPU 的性能来弥补软件低效率的竞赛。从单线程且基于文本的 DOS 程序彻底转变成多线程且基于图形界面的 Windows,这样使通用系统变得很慢,并且导致软件代码的空前臃肿,这些应该归咎于图形和磁盘 I/O 性能的不足。不正确的编程范例,如动态加载的库文件、动态内存分配、共享的组件、低效率的面向对象编程以及多层的库文
8、件也大大地造成了系统的缓慢。而这些低效率现象立即证明了对以后的 CPU 性能增强的需求是合理的。现在我们需要更快的计算机,只是用来运行操作系统,以及用图形用户界面包装过的旧软件的新版本。荒谬的是,80 年代桌面计算机却导致了 Wirth 定律的横空出世,它声称软件变慢的速度要快于计算机变快的速度。也许 Wirth 定律螺旋的第一环是客观的:最初的 CGA 和EGA 硬件以及具有 12-16MHz 处理能力的 CPU 很难满足复杂的图形界面的需要。但 Wirth定律的进一步阐述却是彻头彻尾的主观论断,它认为之后所发生的软件变慢的现象,是因为我们试图通过雇佣那些以效率为代价保证简便性的“编码技术”
9、来提高程序员生产率。软件性能 vs 开发者生产率实际上最早的大型机是直接用机器代码编程的,而不久之后是用汇编语言。严重的内存限制、原始指令集的简单(PDP 11 就是一个经典的例子)以及手头的编程任务相对简单等因素都使程序特别高效,不过基本代码却很难编写。当 20 世纪 50 年代计算机变得比较快,快到足以卸下程序员肩上的编码重担之后,Ada、Algol、Fortan 和 C 之类的高级语言就被开发出来了。在大量牺牲代码效率的同时,这些高级语言允许我们更快地编写代码,因此可以通过计算机获得更多的生产力。随着时间推移,我们通过采用面向对象语言,以及使用内存垃圾回收、运行时解释语言和“受管理的”执
10、行等手段,不断地牺牲软件性能来换取开发者生产率。这些“开发者生产率”的增长持续地给硬件开发者以压力,来开发出处理速度越来越快的处理器。所以有些人也许会说那些“不光彩(懒惰、无知、奢侈随便挑一个贬义词) ”的开发者,也为最终出现千兆赫兹速度的 CPU 做出了一些“贡献” 。即便是现在,重要操作系统(如Windows Vista)的发布似乎还是促成计算机升级的主要原因,因为新的软件与其所代替的旧软件相比,执行相同的任务会要慢一些。当然,新软件的功能通常会比旧软件的多。所以出现更快的计算机的客观原因之一是人们更高的期待以及新软件更多的功能。总之有一些关键性任务应用程序非常需要性能,服务器端的数据库应
11、用程序和桌面计算机游戏就是很好的例子,这些程序从客观上讲促使硬件朝着更高的性能发展。然而现在的桌面操作系统也是令人难以相信的臃肿。例如在平常环境下运行 Windows XP,很容易就会产生 50 个进程,500 个线程,以及 5%10%的 CPU 占用率。其实十分之一性能的 CPU 就能很好地满足浏览和输入的需求了。但大多数计算机和某些 CPU 还是在开发者生产率需要和关键性任务应用程序需求的双重驱使下越变越快。难以置信的是,一个新的因素却阻碍了原始时钟频率的增长,那就是失去控制的功耗。现代 CPU 的功耗超过 100 瓦并不少见,这就是数据中心要在电力和散热上直接支出数千万资金的原因。所以一
12、方面我们有着追求更高性能的习惯(这很难称得上是需求) ,而另一方面我们已隐约瞥见矿物燃料危机、全球变暖以及上涨的能源价格。我们是否应该停止时钟速度竞赛呢?显然,当发热更少而且运行效率更高的 AMD Athlon 处理器从时钟速度更快但发热量更大的 Intel Pentium 4 处理器手里抢来了相当大的市场份额之时,这种获取更高时钟速度的趋势就已经被颠覆了。那我们怎样才能在无法随意增加 CPU 时钟频率的情况下跟上性能的需求呢?维持性能有许多维持性能的方式。第一,采用指令级别的并行,这一条带来了我们现在所看到的超标量处理器的诞生。从理论上讲,任何现代 CPU,不管是 Intel、AMD 还是
13、Sun 公司的产品,都因为有着多个并联的内部执行单元而能在一个周期内处理和撤销多条指令。可笑的是,在通用基准下 1 指令/周期(instruction per cycle,IPC)的指令级并行实际上并不能带来更多的持久性能,因为存在内存延时和分支错误预测的损失,即使是最快的 CPU 也会因此在超过一半的时间处于停滞状态。2只有高度完善的测试或专用代码才可能通过多个执行单元而实现 3 倍到 5 倍的性能提升。而借由缓存一致性或是分支预测等架构上的改进而带来的实际性能提升通常只能达到 5 个百分点。多级执行的长流水线是为了达到更高的时钟速度开发的,而不能与之匹配的内存性能却造成了这样一种情形:CP
14、U 处理数据的速度要比内存提供数据的速度要快。追求更高时钟速度的趋势也已被扭转,转而追求更短的流水线和更佳的内存吞吐量。缩短流水线最好的例子就是只有 6 级流水线的 UltraSparc T1 处理器,与此相对的是 Pentium 4 处理器具有 31 级流水线( Athlon XP 只有 10 级流水线,而 Intel 公司新的“Woodcrest”服务器芯片也只有 14 级流水线) 。展望未来,有理由期待在 CPU 频率大致保持不变的情况下,CPU 的性能会因为流水线的缩短以及内存子系统性能的提升而增强。指令级并行仍然存在一个硬伤,使保持 CPU 中的单个执行单元持续工作很难实现。因此现在
15、正持续研究两种提高 CPU 效率的方式。一种方式是“超级线程(super-threading) ”(或者按照 Intel 的术语来说是“超线程(Hyper-threading) ”) ,它让 CPU 能同时处理多个并发的线程,可以在停滞发生时由一个线程切换到另一个线程。UltraSparc T1 处理器将这种方法应用到了极致,其每个核心可以执行四个线程(总共通过 8 核心芯片执行 32 个线程),在发生停滞时能以循环的形式来切换线程。超线程确实增强了多线程应用程序的性能,而为了改善一些关键的单线程应用程序的性能,研究人员还在继续研究预测线程(speculative threading)技术。
16、Intel 公司致力于预测线程技术的研究,并且提供了一种Mitosis 技术,在编译程序的帮助下,这种技术指明了线程最适合于预测执行。AMD 公司也在开发相似的技术,然而该公司在这一问题上口风要更严。但有关 AMD 公司秘密研究“反超线程”技术的流言却是四处流传,据称这种技术将 2 个独立的 CPU 核心整合成一个“超级核心”CPU,而这种“超级核心”CPU 可以给单线程应用程序带来很可观的性能提升。现在已浮出水面的有关 AMD 正在进行这些研究的唯一证据是并不出名的美国第6574725 号专利,它看起来像是对 Intel 公司的 Mitosis 预测线程技术的硬件支持。所以在时钟的速度增长因
17、为功耗的关系受到阻碍后,以后的 CPU 的性能提升都可能是靠超线程技术(服务器芯片)和预测线程技术(桌面计算机芯片)来实现。另一种方法是增加指令级并行度,这一方法已经被许多商业和政府实体断断续续地研究过了。表示的是一种超大指令字(very-large instruction word,VLIW )或是显式并行指令集(explicitly-parallel instruction set)计算。最早取得成功的应用了 VLIW 概念的应用程序要追溯到 20 世纪 80 年代初期了,那时候由 Boris Babayan(现在是 Intel 公司的员工)带领的一群俄罗斯工程师开发了 Elbrus 超级
18、计算机系列,这些超级计算机是部署在莫斯科周边的反弹道导弹防御系统的一部分。应用 VLIW 概念的合适的应用程序保证了性能的大幅提升,这使 Elbrus 计算机可以克服生产工艺和技术上的局限并很好地完成它们的使命。 (2)要记住的是,这些计算机都是运行着人工优化过的代码的专用计算机。B 部分 计算的未来(2)VLIW在美国,应用 VLIW 概念的商业应用就远没有这么成功:Multiflow Computer 公司在1990 年倒闭,而 Intel 公司从 90 年代末到现在对 EPIC/Itanium 的尝试也被证明是离成功还很遥远。VLIW 在通用计算机上失败的原因是因为缺少编译程序、交叉编译
19、器以及自动代码优化技术。而 Intel 公司还在着力为 Itanium 处理器打造 EPIC 编译程序(Babayan 现在的团队和 Intel 公司在以色列的工作室都在着力于此) 。当前技术的状态就是现有的VLIW/EPIC 编译程序对通用计算来说还不够好,因此理论上可能的性能提升几乎从未达到过(如果编译程序可以找到并调度那么多的指令,那么 VLIW 处理器最多能并行执行 32条指令) 。1Transmeta 公司所做出的尝试也因为相同的原因没有取得成功,然而该公司新的 Efficieon CPU 看起来比之前夭折掉的 Crusoe 处理器更有前途。但 Itanium 的失意使VLIW 的商
20、业前景非常黯淡,也许我们永远都不可能看到更加通用化的 VLIW 计算机了,不过还是可以在处理某些专用任务的目标市场中能寻到它们的身影。一种已经大量出现的 VLIW 替代技术是多核心 CPU。 Intel 公司和 AMD 公司出货双核芯片已经有一段时间了,而且在 2007 年还许诺出货四核芯片。Sun 公司也已经出货八核的UltraSparc T1 芯片了,而 Rapport 公司和 IBM 公司则已经宣布开发“千核(Kilocore) ”技术,这种技术可以在一块成本低廉的芯片上集成多达 1024 个带有 PowePC 核心的 8 位处理器。因此,在预测当前的趋势时,我们也许可以发现,所有顶级厂
21、商都会推出丰富的多核CPU 产品,尤其是在服务器市场。其中的机遇就是,随着芯片上核心数目的增长,核心本身将会变得更为简化而且其流水线也会被缩短(就像 UltraSparc T1 芯片已经做到的那样) 。我们还可能看到一些专门的协处理器式核心,它们适合执行 SIMD(single instruction multiple data,单指令多数据)指令或是多媒体指令,而另一些核心则没有这些功能,以改善能效和增加核心总数。也许最值得注意的一点是我们几乎不能再看到单线程代码的性能提升了,除非找到一种提升频率而又不增加能耗的方法(例如,在 IBM 公司最近有关实验性质的硅锗芯片的报告中提到的新的生产技术
22、,可以使芯片在室温下达到 350GHz 的频率,而在液氦冷却的情况下可以达到 500GHz 的频率) 。事实就是,因为以下这些关键的原因,在未来对 CPU 原始速度并没有强烈的需求: 计算机的性能已经远超大多数任务的需求。 代码效率一直比较低下,因此如果能对代码进行优化,则能挖掘到不少潜在的性能提升空间。 内存和 I/O 瓶颈是导致速度变慢的最普遍的原因。令人惊讶的是,长期以来我们只使用了通用计算庇护下的为数稀少的一些 CPU 模型。除此之外,我们曾认为更好的 CPU 可以使计算机性能更好,而这已经不再成立。现在更重要的似乎是系统的整体设计,而不只是 CPU 的设计,而且我们可能看到更多面向不
23、同领域的特殊化系统和 CPU 型号。新兴的处理器发展路线我们已经看到三条分别面向移动市场、桌面计算机市场和服务器市场的处理器发展路线。这种趋势似乎会延续下去,并且能造成更多处理器发展路线的出现,这些发展路线就不只是为多种目标市场而优化,而是为多种应用程序或是预期用途优化。例如,对应用程序服务器来说,我们可以看到有 Intel 公司和 AMD 公司能提供很多种带有很好的整型计算能力的多核 CPU,而 Sun 公司的 UltraSparc 处理器则很适合于专门的加密/解密硬件,但在移动市场我们可能看到能够确保超长电池使用时间的极低能耗 CPU,也许能具有很出色的频率,就像 AMD 粗粒度的 Pow
24、erNow!技术现在能达到的那样。而看起来用在超移动计算机上的性能较弱 CPU 确实也有一定的生存空间,因为这些计算机多数用来阅读、浏览或者其他一些简单的任务,这些任务都不需要太多的 CPU 性能(一些特殊的任务,如多媒体编码/解码,以及 3D 图形都已经交给专门的硬件来处理了,而看起来在未来会有更多的任务会交给专用芯片来处理) 。所以关注移动 CPU 市场时可以很明确地看到,不只是 CPU,整个系统的能效可能要比处理器速度重要得多。毕竟大多数移动用户不太可能去榨干 CPU 潜在的性能,除非向他们提供了质量特别低下的代码。现在硬件产品的价格已十分贴近大众,因此消费者有能力购买越来越多更适合于某
25、一特定用途的专门化硬件了,这一点也印证了比尔盖茨有关“在每个口袋里都放上计算机”的观点。而实际上我们也正在用 iPod、手机、PDA 和黑莓等设备来作为笔记本和桌面计算机的补充。一招打遍天下的情况不复存在,这是人们能对未来的 CPU 做出的最肯定的预测了。应该看到有越来越多的专用型号出现,而且不再需要功能更强大的型号了。因此就被关注的移动市场而言,也许能有实现更细粒度的频率控制的CPU 出现,这些 CPU 可以减少空闲时间,实现可变转速的硬盘驱动器,还可能去掉某些高级功能,比如增强的多媒体处理指令,因为会有专门的硬件来处理这些任务。2实际上 AMD 公司已经在这方面做出了一些动作,它们有即将发
26、布的 44 平台以及允许加入第三方协处理器设计的开放技术规范。从长远来讲,为 CPU 加上 DVD 播放或是SSL 加密等负担是没太大意义的。这些任务以及类似的任务都应该,而且在一段时间内将完全是由专门的硬件来处理,而这些硬件要比 CPU 更有效率(从能耗和性能上讲) 。以后多种协处理器可以为游戏爱好者带来更好的物理效果和环境效果的体验,也能提升科学或多媒体应用程序的性能。因此 CPU 的角色随着时间推移可能将要减少,而且以后也很难有理由再去提升时钟速度了。坦白地讲,作为万金油角色的 CPU 自从 GPU 出现起就开始衰落了。3D 图形是激发人们提升 CPU 性能的最重要原因。而现在的 PC
27、机基本上都具有更适合这项任务的专门的处理器(或者是 AMD 公司的 44 平台中的两个处理器)了。与此类似的是,多数音乐或多媒体硬件也都是依靠具备自定义逻辑或数字信号处理器(例如 ProTools 公司或者Creamware 公司的产品)的扩展板。而随着时间推移,也可能最终出现带有众多为单一任务设计的专门的芯片或是协处理器的主板。所以在这一点上,我们又回到了最初的单用途计算,虽然这种回归仅仅是螺旋式发展中的新一环而已。讽刺的是,回归到专用计算又会减少对更高处理器性能的需求。专用代码通常更加优化,因此可以在更慢的 CPU 上有效执行。实际上多数手持设备只配备了频率为数百 MHz的 CPU,却能够
28、提供与具有 GHz 级别处理器的桌面 PC 相类似的使用体验(如果不考虑过小的屏幕和过于紧凑的键盘) 。与此相似的是,专门设计的数字信号处理器也远比使用GHz 的频率来进行处理的通用 CPU 更适合于 MPEG 文件播放或是声音处理。换句话说,在不远的将来 CPU 频率的增长将会变得更加的适度。因为硬件生产厂商要通过竞争获得市场,所以可能会发现通用硬件会变得越来越少,而各种各样用途的专用硬件则会越来越多。也许 10 年内,现在的 Athlon 和 Xeon CPU 可能就被当成是体型巨大,发热过多的怪物,而 CPU 在计算机中的角色则会由“一人包干”减少到“协调其他部件工作” 。结语还存在另一
29、个令人关注的理由会让人相信,自然选择会使那些体型巨大、发热很多而且非常快速的 CPU 从我们的视线里消失。随着我们越来越关注“绿色”的概念以及设备的能耗,我们最终会注意到那些过分臃肿的代码,用超 GHz 级别的 CPU 来执行它们的效率,大致和专门设备 MHz 级别处理器执行它们的效率相同。 ( 1)合适的疑问是“软件需要耗费多少能源?” ,在这里“能源”是指包含了巨大能量消耗的电力。实际上这表示那些需要CPU 满负荷运行的效率低下而且代码冗繁的软件其实是花费很大的。要更清楚地明确这一点,请想想那些存放有数以千计刀片服务器的数据中心,其中每台服务器都具有数个 CPU以及多个硬盘。我们现在所拥有
30、的那些代码冗繁而且效率低下的软件,意味着数据中心的维护会很高,因为数据中心需要数以千计的刀片服务器,数千 TB 的硬盘空间,以及很多很多 GB 的内存,而这些设备每年的散热和电源支出就能达到一千万美元。而如果我们能对软件进行优化,将 RAM、硬盘以及 CPU 的性能需求减少一个数量级(这其实很容易实现,只要我们摒弃那些使用低效率内存管理模式以及多层库文件的普通的或是“处理过”的代码,并为编译程序和优化程序投入更多) ,并将服务器的数量减少十倍,会是怎样呢?或者说如果用配备 MHz 级别的 CPU、若干 MB 的 RAM 以及微型硬盘驱动器的紧凑的袖珍型刀片服务器,来代替这些带有 GHz 级别
31、CPU 的大型刀片服务器,又会是怎样呢?无需赘言,软件优化其实还有很大的空间,而因为 CPU 性能在增强,软件优化几十年来一直被人们忽略。但现在的现实情形就是,效率低下而且代码繁冗的软件就意味着更高的支出,不管是 CPU 处理这些软件所需要的电力带来的直接支出,还是 RAM 和大量的硬盘消耗的能源以及累积的散热花费等间接支出。进一步讲,现在那些在被多任务操作系统控制的共享计算资源(如服务器)上运行的多软件组件集合,应该彻底转变成运行在低能耗专用硬件上的相互独立的软件组件。因此如果我们要开始优化软件代码,就应该能看到刀片服务器机架被微型刀片服务器机架所取代,而每一台微型刀片服务器都会执行一个专门
32、的任务,并只需要更少的能源;而微型刀片服务器的总数量,也要远少于起初那些“大型”刀片服务器的数量。实际上将当前挤在同一服务器上的软件组件彻底独立化应该能让系统变得更加稳健,因为可以进行实时的组件热插拔或升级,而且还能彻底消除困扰现有大型服务器的软件安装、部署和补丁冲突等问题。 (2)这些设想能否实现,以及什么时候可以实现,都取决于两个因素,那就是能源支出和代码优化效率。而前者对后者又有着推动作用。所以说以后能源价格的增长可能会导致CPU 在计算机系统中的角色被逐渐弱化,会带来更加优化的代码而且将使计算回归到单处理器/单任务的专用计算范例。而从另一方面讲,如果生产工艺可以发生重大技术突破(如量子
33、计算、超导体的应用以及光子计算等等) ,使 CPU 速度的提升可以不造成能耗的增加,这种观点也许永远不会成为现实。但是不管怎样,有一点是很明确的,那就是 CPU 性能在计算中角色肯定会弱化,而且如果一些高新技术不能被实现,那么很快我们就不得不出于对能耗支出的考虑去编写更有效率的代码。第二部分 模拟写作:求职信一、简介当你申请一个职位时,你通常都要同时发一份简历和一封求职信。求职信中你要写明的技能能力和学识,它必须有说服力并包括以下四点:1. 引起读者注意2. 指明你对哪种工作有兴趣且说明原因3. 利用简历中的独到之处吸引你的读者使他相信你有能力胜任这项工作4. 请求获得一个面试二、结构1、第一
34、段用一句有创意的话开头以此迎合你的雇主的需要。为了引起读者注意开头必须做到简洁有力:1. 说明你是怎样知道这个空缺的。如果你是从这个公司的某个职员口中知道的,一定要一开始就说明。这让读者注意到你是公司里人的熟人。2. 指出你的工作并清楚说明职位名称。3. 解释为何你对这项工作感兴趣。2、中间段在第二和第三段中通过例子说明你一定能胜任这项工作。将每个段落限制一个基本点并在主旨句中明确提出来。例如,第二段可能陈述你的工作经历,第三段就说说你的学习经历。不要仅仅告诉读者你能胜任要通过例子和细节来让他们了解。指出你将用你的才干为公司作出贡献。这一段最后稍微提及你的简历。3、结束段在最后一段里要求一次面
35、试。让读者知道你的联系方式包括你的电话号码或电邮地址。以礼貌的结束语结尾,即使只是一个小小的“谢谢” 。三、范例P.O. Box 112, Beihang UniversityBeijing, PR ChinaJanuary 10, 2009Ms. Patricia WhiteManager, Information System DepartmentABC Software 并在 FE 软件公司做过实习市场研究公司的分析师,十个月里我都是在一个完整的英语环境里工作的。我完整的背景请见附上的简历。我渴望通过这次机会更多的了解 ABC 软件及服务公司,并期待着在您方便的时候与您面谈。您可以通过这
36、个电话联系我:(010)1234-5678,或者通过电子邮件: 。感谢您的时间和考虑。真诚的,Mark Li附件:我的简历第三部分 听力和对话对话:面试(Mark 申请了 ABC 软件及服务的软件工程师职位,公司的信息系统部已做出回应。今天他来到该公司面试 )White 小姐:早上好,感谢你申请我们的公开的职位。我叫帕特里夏.瓦,公司信息系统部的经理。Mark: 早上好, White 小姐,我是 Mark Li,我来时申请信息系统部门的软件工程师的职位。White 小姐: 好的,现在我想谈谈你参加这次面试的资格。 1你能告诉我吗?Mark: 我是一个积极向上和认真的人,喜欢团队工作,与人沟通
37、。我非常感兴趣的是最先进的科学和技术。我喜欢 IT 产业,并希望寻求一个 IT 职业生涯。White 小姐:你为什么申请在我们公司工作? 2Mark: 正如我们所知, ABC 公司的软件及服务不仅是在国内的软件产品和服务供应商中领先的,在全球性也处于领先。因此,我认为在这里工作能帮助我充实专业。我想我也可以为公司的发展做出贡献。White 小姐:你曾经做过有关于这种工作的实习吗? 3Mark: 是的。我在北京航空航天大学的初中和高中几年,我作为一名设计师和程序员学生,在高校信息系统办公室和数字地球与地理信息系统实验室,参加了几个实际的软件项目,包括一个平台,由国家基金主办的数字地球,一个三维仿
38、真的飞机系统,以及为高校财务办公室和图书馆信息管理系统的作的资源管理系统。此外,我曾作为一个市场研究分析师的实习生在 FE 等软件公司工作过,为期 10 个月,全英语环境。我想,上述所有的非常宝贵的实习经验都为我准备好了这方面的工作。White 小姐: 好的,听起来还不错! 对于公司你还有什么想了解得?Mark: 我想知道你们对这个职位有哪些条件要求呢?White 小姐: 这样的, 据我所知,有时软件开发的工作量可能会非常非常沉重的,所以负责的人员可能会受到很大的压力,而且必须有能力和精力。Mark: 是的,我同意你的观点. 在这一点上,我的实习经历让我熟悉了这个工作环境。White 小姐:
39、好的,谢谢你对我们公司的兴趣。如果我决定录用你的话,你会在 5 个工作日内收到我们的邮件。Mark: 谢谢,期待你的来信。练习结对工作,并用以下材料进行一个类似的谈话情景:面试 (另外一篇)1 自我介绍1. 告诉我你的一些情况。2. 你如果评价自己?3. 你的工作风格是怎样?4. 你为何认为自己可以胜任这份工作?2 申请的原因1. 为何你想在我们公司工作?2. 你想了解我们公司哪些情况?3 职业相关经验1.你是如何准备从大学到工作岗位的转型?2. 你在大学有任何相关的经验吗?3. 你的哪些方面能力和经验,使你认为你将能够胜任这一工作?听力理解:量子计算机硅电子是一家主要的电脑业,但目前研究人员
40、正在开发其他技术,以提供强大的计算机。旧式计算机能很好地理解经典物理学的规律,量子计算机是一种运用独特的物理现象,从根本上为实现量子力学的新的信息模式处理的设备。在今天的计算机里,量子计算机数据处理的不是和通过电子晶体管的情况一样,而是通过原子称之为量子位。位是一个简单的信息单位,就像常规电子计算机中的是“1”或“0” 。在量子计算机的基本单位的信息并不二进制而是四进制。量子位不仅可以是逻辑状态的经典位 0 或 1 的一个状态相应存在,而且可以同时存在。换言之,一个量子位可以以 0 或 1 存在,或以数值系数的概率在每个状态中同时为 0 和 1。如果大规模的量子计算机可以建立,他们将能够解决某
41、些问题的速度远远超过我们的任何现有的旧式计算机,特别是以大量的数据或变量为解决问题,如寻找规模庞大的数据库,建立不间断密码或模拟原子结构的物质。虽然量子计算仍处于初级阶段,已经进行了量子计算中的行动被执行极少数的量子位实验。实践和理论研究继续被许多国家的政府和军事供资机构关心和支持。最有名的发明量子密码之一的牛津大学教授阿图认为,量子计算最终将到达成熟。听写:标准 XML 数据库当你的唯一工具是一把锤子,一切看起来就像钉子。当您的唯一工具是一个关系型数据库,一切看起来就像图表。但是,现实会更为复杂。数据往往不是表格,可以有益于一个更加紧密地符合其自然的结构工具。大量的数据目前正被用于编码为 X
42、ML,而且每天都在建立每天。然而,关系数据库并不适合 XML 文件,至少在充分概括性方面。虽然你撕碎 XML 文件的东西填充在一个关系表中,它往往导致丧失详细资料,如元素秩序,处理指令,意见,和在 XML 文件中看上去不精确的如摆在首位的序列表等其他非常重要的应用因素,管理 XML 文件最适合的工具很可能是标准 XML 数据库。标准 XML 数据库是一个基本结构处理 XML 文件和内容,而不是表格,记录和字段。它为 XML 文件定义了一个可行的模型- 而不是在该文件中的数据-并储存和检索文件,根据该模型。逻辑模型的分组文件一般被称为“类”。数据库可以在同一时间建立和管理的许多种类。在一些过程中
43、,以同样的方式,运行系统的目录结构工程的分层结构的种类可以存在。另一方面,一个标准XML 数据库不需要任何特别的基本物理存储模型。例如,它可以建立在一个关系,等级,或面向对象的数据库,或使用专有存储格式,如索引,压缩文件。这样一个数据库将所有内容保存在一个你容易搜查,易于管理的地方。您需要做的获得调查查询的信息。它检索原来的非解析的文件,每字符,甚至每字节;使开发人员能够使用更多与正在从事的文件符合的标准的结构的工具和语言,从而提高生产力。此外,精心设计,以及实施的标准 XML 数据库的查询速度比在一个文件系统里简单的文件存储要快。人们普遍认为,标准 XML 数据库可以大大优于任务繁重,涉及文件处理的传统的关系型数据库,如报纸出版,网站管理和网络服务。