您的位置:通用技术>>可编程逻辑>>IP核>>热点专题>>正文

多核热并不新鲜

推荐给好友
打印
加入收藏
更新于2008-05-07 01:57:15

最近推出的多核架构引发了轩然大波。实际上,多处理技术已经有数十年的历史了。比如,20世纪60年代早期首次投入使用的CDC6000就是一款专门设计的多处理器设备。从那时起,多处理架构开始逐渐广泛应用于众多领域。单在20世纪80年代和90年代,就投入了数千万美元的经费用以研究多处理技术的需求。

不过,直到最近,随着英特尔以及其他厂商相继推出多核芯片,多处理技术才受到公众的关注。

现在,已很难买到不带有多核芯片的的笔记本电脑了,哪怕是便宜的,每个人都突然担心起如何在多核机器上编程,换句话说,他们突然担心起多处理技术来了。而且人们震惊地发现很多主流语言,包括C和C++都完全无法胜任这项任务。

多线程并不是事后修修补补就可以完事的特性。在最近一次GCC (GNU Compiler Collection)开发论坛的讨论中,关于线程技术优化不安全的问题引来数百篇贴子,C语言领域的许多专业人士竞相讨论编译器能否有效地进行优化,其方式是否会打乱多线程语义。20世纪60年代的语言,包括PL/I、Algol 68 和 Simula 67,都具有处理多处理机器上的并行执行任务的功能。

多处理技术发展史上另一个重要角色是Ada。甚至最初的Ada 83版就已有很成熟的多线程开发理念(在Ada中称为“任务”)了,并带有方便使用和分析的高层构造。随后的Ada95和Ada 2005充分地改善和扩展了该功能,同时,在使用Ada来解决编写程序(这些程序高效运行在采用了一个以上处理器的系统上)时所遇到的问题方面,Ada已积累了数十年的经验。

关于多核处理器领域的知识很快就会为人们所熟知。AdaCore公司正在致力于为众多架构开发Ada编译系统,多核系统唯一需要做的事情就是更新市场信息。

尽管Java也具有一些多线程工具,但都是比较低层并且容易出错。我虽然并不完全赞同Per Brinch-Hansen “Java的不可靠并行机制”一文的观点,该文诟病在并行性部分Java的设计者空掷了30年的研究和经验,但是Java在这方面的性能却着实令人失望。

Ada是否就是应对多核芯片编程挑战的最终答案?没有人能断言。毋庸置疑,语言设计领域将有进一步的进展,而我期待Ada2015(标准语言按照惯例是每十年修订一次)将结合这一领域新的重要的特性。

不过,似乎可以公平地说,在立即提供可行解决方案方面,Ada语言领先了很多竞争对手数十年。

作者:Robert B.K. Dewar

dewar@adacore.com

总裁兼CEO

AdaCore公司
文章出处:电子工程专辑