系统与设计
的意见

多核:越多越好吗?

这取决于你是否可以利用其他的处理器。但即使定义模糊。

受欢迎程度

由弗兰克•铁
两个核心人多,对吧?它让我想起了那些美国电话电报公司的广告,他们问孩子们,“谁认为两个比一个?“当然,孩子大喊,两个!在另一个版本的商业他们问;“好,同时做两件事也许还不止一个?“他们都大喊,两个!嗯,这是一个很好的总结上周的多核会议,谈话正是关注这些问题:两个核心(或多核)比一个核心,并做两个任务(或多个任务)人多吗?如果是这样,有多好?

为了回答这些问题,召集了硬件和软件公司会议讨论开发高效的多核硬件和软件的挑战。之前我自己操之过急,我想定义(或试图定义)多核意味着什么。关闭小组讨论时,我惊奇地发现,没有维基百科条目的多核。它只是说,“可能是指:多核计算。”

我更惊讶于开幕后随之而来的辩论问题;“多核(或许多核心)是什么意思?(至少)”协议,这意味着多个核心,但这就是协议结束。一些多核意味着均匀CPU核心,对其他人,这意味着多个异构处理器核心,和其他任何组合的核心系统。我的工作已经被定义,在大多数情况下,多个异构处理器核心,但我要承认我有时漂移第三个定义任何系统“很多”的核心意义。我将让你的小组讨论第二个问题:“定义的核心。”

有协议,然而,在多核的事实被群众“推力。“到目前为止公司选择在美国交叉上市是多核,但随着摩尔定律的减慢,多个处理器核心的唯一方法跟上许多消费者应用程序的性能需求。使用多个核心必须保持在性能曲线上因为CPU MHz的增长率已经放缓,仅这一点就不再是足够的。“MHz的竞赛已经成为竞争的核心密度,”塔里克Bustami说,负责产品管理的副总裁飞思卡尔。根据林利Gwennap林利集团,大约一半的智能手机生产明年将配备双核处理器,和手机的数量与四核处理器将跳转到约40%。

所以SoC设计人员如何利用这些核心,和什么时候添加更多核心达到收益递减点吗?大多数现有的软件,在大多数情况下,写了标量处理(按顺序一次做一件事)。程序员们面临的挑战是将这个标量代码移植到多核环境中有多个CPU核心运行并发任务或任何任务作为共享资源。现在添加专业等异构处理器GPU或DSP和编程变得更加复杂。OpenCL是一个框架开发协助编写的程序可以执行的任务在多个异构核心像gpu平台和需求方。系统还可以添加一个系统管理程序软件层作为一种抽象或虚拟化的硬件软件。这都是不错的进展,但仍有许多工作要做从软件的角度使最有效地利用硬件。

除了软件优化,在小组讨论另一个一致的结论是,记忆和互连也“挑战需要解决最优多核系统的性能。有多个核心不会你任何好的如果你不能有效地访问数据。为了解决内存带宽问题,L2和L3缓存大小一直在增长。当然,这可以是一个昂贵的解决方案,因为内存增加了模具成本增加。

虽然不是主流,广泛的I / O是专门设计来解决内存带宽问题和3 d记忆是在地平线上。即使有一个高效的内存设计将来自多个核心的数据移动到内存需要一个优化互连。需要有灵活的拓扑结构来匹配处理器配置,高效协议维护性能,虚拟渠道支持系统并发性和服务质量管理数据流竞争必备特性最大化多核系统的性能。

所以是两个核心(或多个)比一个?对于大多数使用者应用程序,开发人员并不真正有一个选择了,因为所有的新处理器有多个CPU核心。除了cpu,很难想象这些多功能应用程序没有专门的协处理器。产品管理副总裁Dinyar Dastoor风河系统公司,提供了一个很好的类比,问如果有第三只眼在你的头后比较好?答案是肯定的,如果你可以处理这些额外信息。共识是明确的:如果你没有提高多核软件,内存架构增加带宽,和一个高效互连,两个核心可能并不总是比一个好。

弗兰克铁是超音速的产品营销总监



留下一个回复


(注意:这个名字会显示公开)

Baidu