在美国加州举行的第17届Hot Chips研讨会上,并行架构成为芯片设计的焦点。提到Hot Chips,人们过去总想到更大、更快的处理器,甚至更高的时钟频率。但是今年,提交的论文中占绝对优势的主题不是原始速度,而是并行架构,内容涉及利用硬件识别和发现并行架构,以及如何规避对上述努力造成威胁的各种瓶颈。
近年来,芯片设计逐渐转向并行结构,其原因非常简单。在晶体管和电路层面上,芯片速度将不会比现在再快到哪去。寄生效应的增加、晶体管性能退化以及功耗呈螺旋上升等诸多因素共同作用,使得单一处理器的发展道路缓慢而且充满艰辛。因此,设计师们目前正在向多内核处理转变,并将任何可能的形式付诸现实。IBM公司Zurich研究实验室提交的一篇论文表明,IBM的设计人员正在抛弃指令驱动型处理器。
尽管传统的架构思路、硬件实现以及编程支持等诸多问题可能会阻碍并行结构的发展,但芯片架构开发已经变成在算法或数据中保留和开拓任何并行结构的战斗。这一新的现实正在嵌入式系统与完全可编程系统之间树立起一条深深的鸿沟,因为前者的算法和数据结构事先已知,而后者则不然。
在嵌入式领域,首要问题是并行结构是否存在于数据或(和)算法中。迄今为止,芯片设计人员一直最为看重的就是数据的并行性。如果一种转换可以被独立施加到多组数据,那么其并行度理论上只受限于一次提供的数据量和该转换的复杂度。设计人员仍然可将晶体管的功能发挥到极限。
图1:Tensilica公司的Xtensa RISC内核架构。
在一种极端情况下,即如果这些转换可以被表示成具有最低控制复杂度的向量算法,那么高端芯片几乎变成了媒体访问控制器(MAC)的阵列。例如,Telairity半导体公司展示了专用于H.264编码的Telairity-1芯片,其裸片上共有220个16位的向量功能单元和30个标量功能单元。而Cradle技术公司推出的CT3616芯片,其裸片上带有16个DSP核和8个通用处理器核。
随着控制复杂度的增加和简单计算回路相对重要性的降低,这些芯片看上去更像是带有DSP扩展的传统CPU。例如,Tensilica公司表示,通过为其Xtensa RISC内核增加特定的信号处理指令就能够以非常经济的方式实现一系列音频处理应用。在此案例中,他们大约增加了300种不同的操作指令。
如果并行结构存在于算法而不是数据中,那么芯片通常会采取管线形式。例如,英特尔公司推出一种用于高效处理巨量小型数据包流(与VoIP和类似应用相关)的全新处理器。英特尔的Magpie架构旨在聚集成千上万这样的小型数据包,将它们路由进一个DSP内进行处理,然后以一种有用的方式传输它们。
为了实现这点,该芯片采用了三个扩展MIPS内核(分别用于数据包输入、流量管理和数据包输出)和两个未增强的MIPS核(分别用于管理网络栈和进度)。通过这种方式,逻辑上不同的功能可以运行在不同的处理器上。实际上,输入数据包所面对的是由不同功能单元组成的管线。
当终端系统是可编程而非嵌入式的时候,真正的问题出现了。在这种情况下,无论是在数据或是在算法中,可达到的并行度只能是通用化的。通过一个足够快速的CPU实现简单路由的设想不再可行,因此架构设计师需要借助其它方法。
IBM、索尼和东芝公司在有关Cell架构的数篇论文中以及微软一篇有关Xbox的论文中都阐述了一种新的方法,或许可将其称之为虚拟化方法。这种架构试图提取对系统将面对的数据流和任务的准确概括,随后创建一个包括处理单元、存储器和总线在内的网络作为中间媒介,在其中实现每个数据流通过系统时所需要进行的转换和连接。
因此,在这样的系统中,一个数据流可以由一个操作系统下的一组处理器进行处理,而另一个数据流却可以在一个完全不同的OS控制下选择一条截然不同的路径。底层硬件虽未发生变化,但却可以针对不同的任务和数据流采取不同的工作方式。
对于数据流的侧重使得Cell和Xbox处理器在很大程度上更类似于网络芯片。这两种架构虽然都依据其通用CPU和专用向量单元进行描述,但IBM认为,二者的操作更主要的是依赖幕后的硬件和组织结构来协调数据的移动。这样做的思路在于为游戏开发者提供一个多处理平台,而看上去它又像是一个增加了强大向量处理指令和硬件线程的单一CPU。
同一思路在IBM和微软阵营的实现方式却截然不同。Cell采用单一的Power CPU来处理控制流,而采用8个一组的专用向量浮点处理器来处理数据流。相反,Xbox并没有将控制流和数据流区分得如此明确,而是提供了三个带有扩展SIMD增强指令的PowerPC核。这两种架构均依赖外部的图形处理器和I/O处理器。
图形芯片制造商Nvidia公司的首席科学家David Kirk在其主题演讲中详细讨论了他们将面对的问题。Kirk警告说,电脑游戏的性能日益受到CPU数据吞吐量的限制,现有CPU提供顶点的速度无法快到使图形芯片的处理能力饱和。英特尔和AMD公司并没有提供更快的CPU,而是推出了双核处理器。“但实际上,目前几乎没有一款游戏受惠于多核处理器。”Kirk表示,“多线程努力至今尚未成功。事实上,我们已经发现在很多例子中,新做法使得系统在双核处理器上的运行速度比单核处理器还要慢。”
尽管多处理是本次Hot Chips研讨会中大部分论文的精髓所在,但是IBM公司Zurich实验室提交的一篇论文却提到了另一个发展趋势,即存储程序型处理器将风光不再。该团队描述了一种模式匹配处理器,它不基于CPU,而是基于一种状态转变规则可变的有限状态机。通过将搜索串和常规表述直接编译到状态转变规则中,该设计避免了软件问题、指令存储、提取和解码,因而能够获得20Gbps以上的数据吞吐量,并且与其正在搜索的模式个数无关。
在小组讨论中,该论文引发了有争议的评论。《Guilder技术报告》的主编Nick Tredennick评论道,微处理器的发明实质上中止了逻辑设计创新。但是现在,随着传统CPU数据吞吐量的提升陷于停滞,人们或许会再度从微处理器诞生前极为兴旺的基础逻辑设计着手解决问题。
作者: 张国勇