CPU时钟频率趋近上限,摩尔定律(Moore‘s
Law)也即将成为经典的过去。我清楚地记得6年前我用的是赛扬333,而如今笔记本频率已达1.8G。两年前台式机处理芯片频率达到3G,可现在还是在
3.5G左右徘徊。根据摩尔定律,我们的处理芯片频率应该已经到达10G了啊!散热问题、芯片材料问题,已经牵制住时钟频率的进一步提升。对于软件开发者
来说这,或许是恶梦。
曾经用486启动Win95需要10分钟,现在市场上能买到最烂的机器都能1分钟内启动95完毕。作为开发商的Microsoft并没有做95系统的效率升级工作啊!其依靠市场规律,“免费”为95“提高”了性能。
多少年来,软件开发者抱着这种心态来完成程序开发。一年前没有机器能够跑得了DOOM3,ID就等着更强劲的显卡的发布以支持DOOM3当时近似变态的配置要求。Microsoft宣布Longhorn的配置要求,也是如此,等待明年硬件性能的提升。
现在的情形变了,经过了网速限制、内存限制、硬盘速度限制后,我们即将引来CPU频率限制。CPU频率的提升将转变为CPU逻辑单元的增加,和多核心
CPU的研发。这意味着以现有的软件开发模式去开发高CPU负荷的产品,然后等待CPU的升级已经将成为过去。我们不得不采用不同的方式去达到开发更先进
产品的目的。
我们或许有两种不同的策略:
1. 用更高效的算法实现软件功能
2. 开发出支持多线程的软件
若你的软件只支持双线程,那么它在双核心CPU或三核心CPU上运行的效率是一样的。“等待”硬件升级不再有效,为了提高效率,你需要将你的软件分成3个“工作组”来“合作”使得三个线程能够在三核心CPU上高效工作。
另一项值得注意的是面对服务技术(Service-Oriented)的发展。
所谓面对服务技术是指两个程序在某种协议(protocol)的支持下提供不同的服务以达到系统的目的。在网速仍然高速发展的今天,我们的有理由相信,现
在很多运行在本地的服务将来很可能运行在服务器上,通过网络协议来供给服务,以减少个人计算机的计算负荷。这也是Microsoft新操作系统
Longhorn的一个探索。配合.NET,未来浏览器将不再存在,服务器/客户端(Server/Client)模式也将被淘汰。
但软件开发模式的改变也不是一夜成形的,需要几年,甚至数十年的变革。至少目前CPU的速度仍在增长,缓存(Cache)仍在为速度的提高做贡献。就现在的个人及企业软件需求来说,我们还不需要如此规模的大变革。只是它或许不远了……