五个软件思想将很快过时

来源:互联网 发布:月月贷网络借贷 编辑:程序博客网 时间:2024/05/16 11:13

source:
http://proxy4.smth.org/pc/pccon.php?id=784&nid=101952&s=all
五个软件思想将很快过时

德雷珀奖获得者眼中的计算未来

■ 本报记者 胖大海


--------------------------------------------------------------------------------


编者按:11月9日,国家自然科学基金委员会和微软亚洲研究院联合举办的第六届“21世纪的计算”研讨会在清华大学举行,研讨会邀请了首位华裔诺贝尔奖获得者杨振宁教授、德雷珀奖(Draper Prize)获得者Chuck Thacker、微软亚洲研究院院长兼首席科学家沈向洋、微软公司高级副总裁Rick Rashid、微软公司副总裁兼雷德蒙研究院院长凌大任等业界巨匠参加。研讨会的演讲精彩纷呈,由于版面有限,本报记者仅就其中最精彩的演讲做报道,这就是——

摩尔定律将被“S曲线”终结

德雷珀奖(Draper Prize)被誉为电子工程界的诺贝尔奖,其获得者Chuck Thacker在名为“21世纪的计算机”的主题演讲中,详细阐述了他对摩尔定律的独到观点。

他在演讲中首先说,很多人对摩尔定律是有误解的,往往会简单笼统地认为:计算速度在成倍增加的同时,计算成本将成倍下降。其实,摩尔定律是十分精确的,它精确地预测:每18个月,计算机的存储能力和传输速度将增加1.58倍。

同时,Chuck Thacker还认为,摩尔定律并不是严格意义上的数学或物理学定律,而仅仅是一种发现。

自1967年摩尔定律被发现以来,计算机存储能力和传输速度一直很好地验证着这个发现,它们已经被提高到了最初的100万倍以上。不过,摩尔定律面临的挑战也开始显现。延续了37年的摩尔定律能否继续坚持下去,一直是科技界争论最大的问题。

Chuck Thacker认为,摩尔定律将会被“S曲线”终结。他认为,几乎所有的自然发展过程都符合普遍的“S曲线”,也就是说,所有的哪怕是盛极一时的发展过程,都会最终趋向缓慢以至于停止,即停在“S”的顶端。摩尔定律只是一个阶段性规律,一样逃不过“S曲线”的掌控。

从物理层面讲,摩尔定律也必将遇到“终极挑战”:原子太大,光速太慢。你不可能蚀刻出比母材原子直径更窄的电路,也不可能把传输速度超越过光速(也即电磁场传播速度)。而且,更高的速度意味着更大的能量消耗,更大的能量消耗则意味着更艰巨的散热和冷却工作,这些都将在更小的空间中解决,也将导致摩尔定律的步子变慢。

在具体设计上,要在越来越小的空间中增加越来越多的晶体管,其增加的工作量和沟通成本将成几何倍数增加。设计一个大的CPU通常需要150~200人的工作团队,工作时间约一年半到两年。当CPU芯片的晶体管数量增加时,人数可能还会继续增加,要保证这么多人在一起顺利工作,尽可能少产生矛盾,管理成本将十分庞大。

同时,制造成本也会大大增加,使经济学上的可能不复存在。上世纪80年代建立一条芯片代工生产线需要5000万美元,而现在的成本则高达15亿美元。几乎很细微的改变即意味着巨额的追加投资,当然,同时也意味着不可能发生的商业行为。

摩尔定律不是放之四海皆准的IT圣经,有些IT产品并没有遵循摩尔定律,像硬盘、显示器、电池等设备,它们遵循其他规律。例如,电池技术的发展,使我们在能量密度和成本上都有一定的改善,成本基本上按照每年10%左右的速度在下降。当然,这些蔑视摩尔定律的配件,越来越成为整个计算机中的主要成本来源。

Chuck Thacker最后认为,摩尔定律最多还能继续十几年,此后将被终结。杨振宁教授的观点与他不同,杨认为,摩尔定律还将长时间起作用,这个时间也许会长达三五十年。

五个软件思想将很快过时

21世纪之前,计算机软件在很大程度上是为了克服硬件缺陷。在21世纪,这些硬件的限制将不复存在。Chuck Thacker说,在容量和速度方面,我们都拥有了强有力的计算机,我们将开始重新思考怎样编写软件;同时,我们以前采用的一些软件思想也将过时。

Chuck Thacker认为,第一个过时的软件思想是虚拟内存(Virtual Memory)。提出虚拟内存的最初原因是真实内存价格比较高,只好在硬盘上开辟某一块空间作为虚拟的内存。但由于硬盘速度所限,虚拟内存的速度远远不如真实内存。后来,在这个需求之外,虚拟内存还为了解决地址空间不够和额外保护等问题。但随着内存价格的大大降低,虚拟内存失去了主要作用。同时,因为硬盘速度成为整个系统的瓶颈,也导致虚拟内存成了“鸡肋”。然而,目前主要的操作系统依然保留了虚拟内存这一已经过时的设计,尽管用户可以关闭它。不过,在现代程序设计语言中,虚拟内存的使用已经越来越少了。

Chuck Thacker认为,第二个过时的软件思想是目录型文件管理系统(Hierarchical file systems)。这个设计思想最初目的是为了让用户提高对文档或信息的管理效率,让用户有一个看上去符合常规的方式。但是,它现在已经造成了严重问题。例如,仅仅安装Windows和Office就需要4.5万个文件,这些文件分布在复杂的目录中,用户不可能很快找到自己需要的某个文件。现在,一个人采用这种结构来管理文档和信息,6个月以后他就会被淹没在迅速增加的文档和信息海洋中。Chuck Thacker认为,最好采用全文检索的管理方式。也就是说,把互联网上的搜索技术引进到个人计算机中来。目前,Google等搜索引擎提供商相继发布的桌面搜索就是一个很好的例证。

Chuck Thacker认为,第三个过时的软件思想是通过测试来验证软件质量(Verifying software quality by testing)。现代软件中的参数设置越来越多,有些软件的参数上万个,软件源程序代码超过百万行,要通过测试找出其中所有的Bug,越来越难。同时,因为软件的庞大,问题往往是并发性的,每个Bug可能产生致命灾难的几率也因此大大提高。Chuck Thacker说,这就需要更多标准化的方法,例如,硅谷研究人员推出的TLA+,它把一种规格语言与模型检查结合起来,结果更有效。Intel在设计新的协议时就经常使用这种方法,这为他们节省了很多资金。

Chuck Thacker认为,第四个过时的软件思想是低级编程语言(Low-level programming languages)。低级编程语言(如机器语言和汇编语言)可以自由调用内存资源,这种自由导致了很多系统不稳定的问题。如果使用Java或C语言等高级编程语言,则可以自动管理内存资源,使很多以前经常出现的错误成为不可能。同时,程序员也不会遇到像使用低级编程语言时需要了解硬件细节那样的问题,使软件的Bug率大大降低。

Chuck Thacker认为,第五个过时的软件思想是单线程程序(Single-threaded programs)。在单一处理器系统中,没有什么理由让人们使用多线程程序,而且,多线程往往还会导致系统效率下降。今天,多处理器系统或“多处理器准系统”(如多核、超线程等)越来越多,多线程也就成为未来的普遍需求。理论上,在多处理器系统中,多线程程序比单线程程序效率要高得多。当然,要把一个单线程程序修改为多线程程序并有效地管理这些线程,需要很多额外工作,这也是我们未来需要做的主要事情之一。

这位德雷珀奖获得者最后认为,无限存储、标准化、多线程等新的软件思想,将改变软件设计的未来,同时也将改变我们的未来。他最后对研讨会上的大学生说:“我甚至有些嫉妒你们,因为你们有机会影响和创造未来。今后这个行业会和35年前我进入这个行业时一样有活力。”

(计算机世界报 第44期 A25)
原创粉丝点击