首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

多核处理器面临软件设计和存储器带宽瓶颈[转帖]

多核处理器面临软件设计和存储器带宽瓶颈[转帖]

在硅谷中心,曾分别领导低功耗StrongARM(被英特尔收购)和SiByte(被Broadcom买下)设计团队的两位领军人物Dan Dobberpuhl和Simon Davidmann将加入日益庞大的多核微处理器开发者行列。Dan Dobberpuhl位于加州的P.A. Semi公司在秋季处理器论坛上宣布了其2到8核CPU系列的开发计划。今年,处理器论坛的主题是 “通往多核之路。”



不过,Simon Davidmann预见多处理器芯片会遇到大问题。“所有芯片最终都将成为多处理器,我们必须学习如何为它们编程,”这位Co-Design Automation公司的创始人说,“我们面临的挑战在于,我们缺少开发并行应用所需的技巧和工具。”Davidmann最新成立的初创公司叫Imperas,旨在通过整合平台和应用,使之达到系统设计自动化的水平,从而缓解他提出的这个问题。


通过进军多核领域,Dobberpuhl将同IBM和太阳微系统(Sun Microsystems)等业已涉足该领域的巨头进行博弈。当然,对手也包括Azul Systems和Raza Microelectronics这些希望借助多核技术赶超老牌巨头的初创公司。


“多核设计是高性能计算领域的主导思想,贯穿服务器、笔记本到游戏平台以及高性能嵌入式应用等领域,”《微处理器报告》的主编Kevin Krewell表示。



图1: 最近发布的多核处理器。


Davidmann称,他知道至少有15家公司在从事多核设计。Tensilica公司报告其目前的设计平均有5个核;PicoChip 公司在为无线基站设计的器件中采用了多达400个类似DSP的核。

但Davidmann警告说,软件界缺少可为即将问世的各种通用CPU进行高效编程的标准工具。他指出,多核架构将碰到与第一代网络处理器相同的问题:CPU本身要求程序设计师对其芯片架构有详尽了解,但人们希望能在高抽象水平编写代码且与具体芯片无关。

与电子设计自动化(EDA)将半导体制造商从设计工具开发中解放出来一样,系统设计自动化也将使芯片和系统制造商从需要创建自己的编程工具中解放出来,Davidmann表示。另外,软件开发人员每天将能写出更多的高效代码。

软件设计师的责任


不管尚不为人知的Imperas公司是否真能提供一套完整解决方案,Davidmann对问题的评判是正确的,分析家表示。

“所有这些多核处理器将接踵而至,但我们仍在使用C和C++,而它们不适合在软件中充分发挥底层线程的作用,”《微处理器报告》的Krewell表示,“所以软件界实际上担负着这个责任。”

微软公司的发言人在秋季处理器论坛上的主题演讲中呼吁对此问题进行更好的教育。英国剑桥微软研发实验室的研究人员最近提出了采用所谓轻量软件解决方案的想法。源自一个已有30年历史的概念,它使用了比我们目前一般所用的更好的数据锁存技术。其目的是降低复杂程度并避免处理器的干预。

微软的方法是采用虚拟存储器标识跟踪软件中的变化,直到这些变化被物理存储器记录。虽然此概念看起来是可行的,但微软承认,尚有许多细节有待落实。


图2: XLR处理器通过三个环互连链接8个1.5GHz内核。

[upload=image/pjpeg]uploadImages/sf_2005123118021.jpg[/upload]
“最终,我们将看到个别应用采用并行编程技术以最大程度发挥多核处理器的效用。但并行编程仍不成熟,”Chuck Moore表示。他曾是IBM初始双核CPU的主导设计师,目前在AMD开发下一代内核。

PA Semi、Raza Microelectronics和Sun等公司发现在主流Web服务器和网络设备的大量后端处理中存在许多并行关系。“在联网领域中,对应用进行并行处理相对容易,”Raza公司XLR芯片的主要架构设计师David Hass表示。该XLR芯片在8个MIPS核中提供了多达32个线程。

“的确,我们还没有利用线程技术的全部潜能,”Sun的首席架构设计师Marc Tremblay表示。Sun即将问世的Niagara芯片也在8个内核上支持32个线程。Tremblay从1999年就开始进行多核架构设计,他最新的项目是至少将包含8个核的一款新Sparc处理器。

Sun发现,使一个核能处理4个线程将使芯片面积增加25%,但对某些应用来说,性能将提升3倍。在未来,特殊的助手线程可起着代码探路者的作用,以预测及避免缓存漏失,Tremblay表示。

但并非每个人都同意上述结论。在PC领域,类似英特尔超线程这样的同步多线程技术仅能提升20%左右的性能,在某些应用中甚至还妨碍性能,AMD的Moore表示。AMD将不采用多线程技术,但它希望能更大限度地共享片上资源,例如,让多个执行单元共享一个L2缓存及一个或更多的指令发布单元。

P.A. Semi的Dobberpuhl同意上述观点。“对许多应用来说,多级缓存配以低存储器延迟是个更好选择,”他说,“在通用器件中采用多线程是以增加相当多的晶体管数、复杂程度和功耗为代价的,所以,并不合算。”

多核设计人员也在激烈讨论哪些类型的核最适合这些架构及如何最好地将这些核彼此互连及与内部或外部I/O和存储器连在一起。虽然X86体系开发人员仍将坚守其传统的内核架构,Sun则倡导使用为低功耗、单线程性能和吞吐量而优化的简化核。这是一条其他设计人员应当仿效的道路,Jim Kahle表示,他是由IBM、索尼和东芝联合开发的9核Cell处理器的主导设计师。

除此之外,一些设计人员借用多处理服务器的概念,通过新同步或锁存指令对核进行定制。

例如,初创公司Azul(已开发出一个24个核的单线程Java处理器)采用被其称为乐观并行的策略:处理器假定不加锁存,数据也能执行,但处理器通过检查标记以确保数据执行,并在需要时加装锁存。另一方面,Raza公司为其MIPS核增加了几条指令,以支持更精微的锁存方案及新颖的讯息流通互连。

P.A. Semi采取了另一条途径,它采用一个带有高性能浮点和向量单元的多出口无序核。通过把一个核变得更鲁棒以满足包括高端服务器在内的更广阔市场的需要,Dobberpuhl表示。

P.A. Semi的芯片还包括一个用于各种卸载操作的硬连线块,这些操作包括:TCP校验和处理、安全加密和鉴证及RAID存储处理。类似地,Raza为其XLR芯片添加了一个4核加密引擎。

Sun和AMD都表示,它们正考虑何时将用于系统内联网、安全、图形、I/O或其他部分的专用加速器添加进多核处理器。IBM已有多核类型的Cell处理器。“这样的东西会越来越多,”IBM的Kahle表示,“这反映了人们正从新的角度思考芯片架构。”

内核的互连

对如何连接这些内核的讨论与该选用哪类内核的讨论一样热烈。

Azul使用一个相干网格以连接其24个定制核。网格的使用使延迟最小、晶体管最少、尺寸最小及功耗最低,Azul System公司的共同创建人、CTO兼工程副总裁Scott Sellers表示。另一方面,当跟踪多个沿不同路径的未执行指令时,保证缓存的一致性是很复杂的。Azul选择了一种基于处理时间标志和巡视标签的绝对一致性方法。

Raza采用了3个独立环,用于I/O、存储器和CPU的信息交互。XLR的讯息交互环为实现快速高效的数据共享使线程直接与缓存器通讯,并不经过锁存或共享存储器。但同样,增加的一致性使设计变得更复杂,例如,为了存储器连接就需要额外的验证块。

这些先行者在争论共享总线和矩阵交换的可行性,目前,这些方法在不太前沿的设计中仍普遍采用。“共享总线没有前途。大家基本上都转向其它方法,”Raza的Hass表示。

但AMD、P.A. Semi和Sun争辩说:在16个核以下,矩阵交换有很好的效果。Sun采用更有挑战性的多线程意味着它能避免更复杂的互连,Tremblay表示。

“我不认为互连是个与众不同的问题,”Dobberpuhl说,“它是个设计要点。真正的差异在于功耗、内核数量、延迟和带宽。互连只是个实现问题。”

芯片设计师们同意,最大的多核设计瓶颈是存储器带宽。“在32个线程水平,我们的存储器通道目前虽尚未饱和,但我们仍在改进,”Raza的Hass表示,“首先要突破的是DDR带宽。若我们想增加更多内核,我们必须增加更多的存储器通道。”

“我们到底该如何使系统带宽与时俱进?”Azul的Sellers问道,“不远的将来,DRAM的缓慢进展将使我们举步维艰。”Azul公司的芯片连到8个DIMM存储器。

英特尔的方法是采用全缓存DIMM,它增加了更多的虚拟和实际通道,但功耗也大了一倍。

最后,多核处理器能否成功也许将取决于象Dobberpuhl和Davidmann这样的创新者的硬件和软件技巧。

作者:麦利

返回列表