片上系统的发展趋势(Herb Sutter)

有关硬件未来趋势是倾向片上还是片外的问题,很多人似乎已经有了自己的判断。我最近正好在 Slashdot 上看到一篇 讨论这个问题的文章 http://hardware.slashdot.org/article.pl?sid=07/03/05/121213 )。此文主要内容如下:

“在不久的将来,中央处理器( CPU )将不再真正位居中央。 AMD 已经宣布以协处理器概念为核心的 Torrenza 平台计划。 Intel 也宣布了类似的 CSI 计划,并正为之努力。利用这些技术,我们未来可将专用芯片(如 GPU APU 等)直接插入主板专用插槽。 Hardware.Info 的文章《 AMD Torrenza Intel CSI 揭密 》( http://www.hardware.info/en-UK/articles/amdnY2pvZGma/The_CPU_redefined_AMD_Torrenza_and_Intel_CSI/ ),为我们描绘了处理器的未来。”

这真是个趋势吗?

是的,的确存在这个趋势。但是,反向趋势也同时存在;而且我认为中期来看,反向趋势更可能占主导地位。我会在后文详细解释其原因。

计算机历史上,两种趋势如影随形

了解 CPU 历史,或多年来经常接触 CPU 的人,可能会发现在 CPU 发展过程中,存在如下两个趋势,甚至有时候因为硬件功能的不同需要,它们同时存在:

l        片外发展。比如,图形处理功能最开始是由 CPU 完成的,到后来为了获得更好的性能,被移至片外并成为独立部件 GPU

l        片上发展。比如, FPU 最初是一个协处理器,到后来为了获得更好的性能,被移至片上成为 CPU 的一部分。

事实上,两种趋势风水轮流转。甚至不同的硬件部件同时按相反趋势发展。而现在,我们不过是巧遇某些部件“片外发展”罢了。

接下来,我们分析片上(或片外)发展的动因:

l        CPU 大部分时间已相当繁忙,没有余力时,人们开始嚷嚷“为得到更好的性能”向片外发展。他们正确。

l        CPU 大部分时间空闲,或系统功耗过大时,人们开始嚷嚷“为得到更好的性能”向片上发展,他们还是正确的(如果你读了我的博客文章《 Woz 采访录 》( http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!155.entry ),你就知道 Steve Wozniak (译者注:美国苹果电脑共同创始人之一)曾经是如何反复强调他的神奇构想——用更少的芯片做更多事情。这个想法直接带来了个人电脑的成功,没有他的想法, PC 时代要晚很多年才能到来。感谢 Woz )。

即便能完成同等功能,普通 CPU 累加系统的效率也毫无疑问比不上专用芯片。我们更应该认识到这两种力量的价值,是它们在不同时期,为了不同的硬件特性交替占据上风,从而推动产业发展。

当前形势的新特点和新动向

现在是一个 巨变 http://blog.csdn.net/hsutter/archive/2006/08/29/1136281.aspx )的时代,不再像过去那样追求单核速度,重心已经转移到速度不显著变化,但数量剧增的多核方式上。那么,这会改变长期以来片上发展的趋势,而转向发展协处理器么?

首先要强调的是,目前仍然存在正反两方面力量。我在《 免费午餐已经结束 》( http://blog.csdn.net/hsutter/archive/2006/08/29/1136281.aspx )一文中讲到了这两方面的影响:

l        一方面,某些因素要求发展协处理器,将部分工作从 CPU 剥离。单核的速度已不像过去那样能迅速提升,而我们软件人大多对 CPU 频率情有独钟,总希望硬件能做更多工作——我们几乎从来不愿意删掉软件已有的功能。对于绝大多数现有软件而言, CPU 频率提升的影响更为直接,我们希望 CPU 的全副心神能投入到程序代码的运行上,而不要为其他工作分心。单线程程序如此,对那些无法升级的多线程程序来说,也是这样。  

l        而另一方面,也存在要求 CPU 承担更多工作,限制协处理器发展的反面力量。我们现在更多使用多核而不是单核(不久可能是核阵列)。在软件业追赶上硬件发展的步伐、基于多核的应用大规模出现并成为主流前, CPU 总容量呈富余状态,这也是我们的尴尬之处。因此,这就存在利用空闲核和富余核代替昂贵的协处理器完成工作的需求。至少在我们的软件得到充分发展、能充分利用处理器能力之前,这种需求会一直存在。

那么,目前这两种力量的对比是否还像以前那样处于平衡呢?哪个会占主导地位?

简单来看,目前还是平衡的。但上述分析中所谓的原因,其实也只是中间结果,它们背后还有更深层次的原因(这也是我说“免费午餐已经结束”的根本原因):

l        需要强调的是,我们现在使用多核,根本而言是因为 CPU 设计者不知道如何让现在已经达到巨大高度的晶体管集成度发挥作用。 感谢莫尔定律,它仍在坚持每 18 个月让芯片中晶体管集成度翻番(尽管不少论坛流行“莫尔定律已死”的传言,但我认为它至少可以再撑十年)。大约五年前,商用 CPU 的设计者已经在“让芯片尽可能复杂,以便让单线程程序跑得更快”的老路上走到尽头。在此之前,我们已在这条路上顺利行进三十年,尽管其指导思想目前还能发挥作用,但已不可能按指数方式疯长了。现在,我们必须换走多核的道路。

但我们同时也要开拓新的道路,充分利用高度集成、数量庞大的晶体管的能力,而不仅仅是多核 。毕竟,通过全面分析,我们会发现,这也是我非常想强调的一点:多核不是唯一的,也不一定是最好的解决之道。

片上发展趋势将在下个十年中居主导地位

这和 AMD 收购 ATI 等事情没有直接关系。我不打算在如下一些局部趋势上多费笔墨:

l        我们当然会看到 GPU 等片上应用的出现。这是充分利用晶体管技术和增加 CPU GPU 间带宽的重要方法。考虑到 CPU 设计生产流程之长,我不认为在 3 5 年后能看到它的出现,不过这是迟早的事

l        我们当然会看到 NIC 等片上应用的出现。这也是充分利用晶体管技术和提高 CPU NIC Network Interface Card ,网卡)间带宽的重要方法。

l        我们当然还会看到其他一些工作(如加密、安全检测等,还可能包括烤面包机、熨斗等的功能)移至片上。

注意到 SoC Sytem on a Chip )了么? 其实这并不困难,不需要绞尽脑汁。不少公开信息和相关推测中已经有所体现,我也确信已经有人指出此事。而且已经大量出现在各个 CPU 厂商公布的官方规划中。

芯 片目前的集成度非常高,处理器根本用不完这么多晶体管。在现实世界中,地产总是和“位置”紧密相连。如果海滨(片上)地皮价格便宜(晶体管廉价),人们就 会挤破脑袋购买,然后在上面疯狂修建大楼(迈阿密硅城!译者注:迈阿密是美国海滨旅游胜地)。此后,地产价格逐渐上升至供需关系平衡点(即 SoC 芯片耗费的晶体管数量达到顶点,就像我们现在到达传统系统的平衡点一样)。这个道理就像雨滴必然向下落那么简单。当然,海滨摩天大楼是否给人美学上的愉悦感觉,那是另一回事了。

毫无疑问,片上和片外趋势的车轮都将隆隆而进。不要因为 5 年后出现一些片外发展的新型协处理器,就断言片上趋势的错误;反之亦然。至少对过于 20 年来一直与计算机一起工作的人来说,两个趋势都不是真正的新闻,而仅仅是软件需求和硬件发展进程不平衡,并不断追求平衡过程中的正常现象。

真正的新闻尚在孕育期,那就是:下个十年中,更可能居主导地位的趋势是将目前独立的部件移至 CPU 上,而不是移出。尽管专家们众说纷纭,但现在的地产价格实在太便宜。迈阿密,我们来了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: “exceptional c”是一本由Herb Sutter撰写的书籍,它涵盖了C++编程语言中关于异常处理的重要概念和技术。本书旨在帮助C++开发人员更加深入地理解和应用异常处理机制。 在这本书中,Herb Sutter首先介绍了异常处理的基本概念,包括异常的定义、异常的捕获和抛出机制。他还详细讨论了异常的设计原则和最佳实践,以及在不同情况下如何选择适当的异常类型。 除了介绍基本概念外,Sutter还提供了一些高级的异常处理技术,包括异常安全性和异常规范。异常安全性是指在异常发生时,程序能够保持在一个良好的状态,而不会导致资源泄漏或数据破坏。异常规范是指在函数声明中明确指定可能抛出的异常类型,以便调用者可以正确地处理异常情况。 此外,Sutter还探讨了异常处理与性能之间的平衡。他提供了一些减少异常开销的技巧,以及在性能至关重要的情况下如何合理地使用异常。 总之,“exceptional c”是一本关于C++异常处理的重要参考书籍。它提供了丰富的理论知识和实践经验,帮助开发人员更好地理解和应用C++异常处理机制。无论是初学者还是有经验的开发人员,都可以从这本书中获得宝贵的知识和技巧,提高自己的编程能力。 ### 回答2: Exceptional C是由Herb Sutter所著的一本关于C++编程的书籍。Herb Sutter是一位在C++领域备受认可的专家,他为C++标准委员会做出了许多重要贡献,并通过他的著作和演讲向C++社区传授了丰富的知识和经验。 《Exceptional C》这本书主要讨论了C++编程中的异常处理和错误处理。它强调了异常处理应该是一种稳健且高效的方法,以提供更好的程序健壮性和可维护性。 该书的重点内容包括:异常的工作原理、如何正确使用异常、异常的性能影响、异常安全性和资源管理等。通过深入研究这些问题,读者可以更好地理解和利用C++中的异常机制。 Herb Sutter在书中以清晰简明的方式解释了异常处理的最佳实践,并分享了许多实用的编程技巧和示例。他通过深入剖析异常处理的内部机制,教会读者如何编写出性能出色、容错能力强的代码。 Herb Sutter的异常处理理论和实践经验对C++程序员来说无疑是一份宝贵的财富。《Exceptional C》不仅是一本实用的参考书,也是一本具有启发性的读物,能够帮助读者掌握异常处理的精髓,提升自己在C++编程领域的专业水平。 总之,Exceptional C这本书是Herb Sutter对C++异常处理的总结和分享,它对于想要提升自己C++编程技能的人来说是一本值得阅读的重要参考书。 ### 回答3: Exceptional C 是由C++专家Herb Sutter所著的一本关于C++编程的书籍。这本书主要介绍了一些C++编程中的重要概念和技巧,旨在帮助读者变得更加熟练和精通C++语言。 在这本书中,Sutter从C++的核心概念开始,讲解了一些高级的编程技巧和设计模式,帮助读者更好地理解和应用C++语言。他解释了一些在C++中常见的问题和陷阱,并提供了一些解决方案和最佳实践。通过这本书,读者可以学习到如何编写高效、可维护和健壮的C++代码。 Sutter在书中也强调了C++语言的一些独特之处,如异常处理、模板元编程和多线程编程等。他详细讲解了这些主题,并提供了一些实际的案例和示例,使读者能够更好地理解和应用这些概念。 这本书的特点之一就是它的实用性。Sutter将复杂的概念和技术以简单明了的方式解释清楚,并给出了一些实用的建议和技巧。这使得读者可以直接将书中的知识应用到自己的实际项目中。 总之,Exceptional C是一本权威且实用的C++编程指南,通过阅读这本书,读者可以提高自己的C++编程能力,并写出更加高效和可靠的代码。无论是初学者还是有经验的开发者,都可以从这本书中受益匪浅。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值