多核SoC改变互连要求
多核系统级芯片(SoC)器件的出现重新划分了硅器件、电路板和子系统之间的界线。这种趋势导致芯片到芯片和电路板到电路板的互连要求发生了重大变化。那么,现有标准准备好应对这一变革了吗?
1970年代,由于微处理器的问世,利用分立式处理器、存储控制器和I/O接口器件,在单块电路板上就可以搭建出简单的计算系统。由板级总线来连接这些器件,而当需要更高性能时,把多块电路板组装在一起,利用系统级总线通过背板提供卡间通信。这些电路板和系统互连协议都是专利性的。但随后,专用的协议逐渐让位于标准化协议,比如以太网、PCI Express 或RapidIO协议。
与此同时,集成电路技术遵循摩尔定律,其包含晶体管的数目和速度以一定的代价不断增加。这些趋势共同大幅度推动了处理器性能的提高。
迄今已有数代硅器件充分利用了这一良性周期。不幸的是,单核处理器的性能提高速度已开始趋于下滑。造成这种下滑的最重要因素一直是功耗。晶体管越小,开关速度越快。晶体管尺寸的缩小使泄漏增加,导致静态功耗的增大。同时,随着晶体管开关速度的加快,动态功耗也在增加。
这种不断上升的功耗凸显了目前硅工艺技术存在的几个现实问题。首先,单个处理器的性能受功率和系统功耗的限制。其次,晶体管预算在继续增加,而可获得的时钟速率却不然。
随着晶体管预算的持续增加,业界已迅速转向带有多个处理器内核的器件。这些器件还集成有内存控制器、应用加速器和I/O接口的器件,形成一个多核SoC。多核器件有望大大提高系统性能。
SoC器件的面世模糊了单个元件及其所实现的系统架构之间的界线。曾经一个完整的计算系统需要一块电路板来实现,而现在只需单个器件就能够把多个这类系统囊括在内。
向SoC器件的转换改变了SoC和其它器件及网络之间的互连要求。电路板和系统级互连最初基于总线共享,而且和以往的处理器一样,采用一种类似的方式来满足对更高互连性能的要求:增加时钟速率,加宽总线带宽。然而,蹈处理器之覆辙,最后同样因物理效应的影响,总线上的器件数目不得不减少,从而催生出了总线分割、分层化拓扑和最终的点到点开关网络。
嵌入式系统常常被划分为三个子系统功能:控制面板、数据面板和系统管理。当系统只包含一个计算系统时,系统级的通信流数目很有限。这是幸运的,因为按照定义,基于总线的互连只能容纳一个通信流。
QoS问题
过去,为了提高系统性能,每一个功能采用一个专用处理器。随着多个并行通信流的出现,服务质量(QoS)问题急剧增加。为了更好地优化带宽并防止各个通信流之间产生干扰,在许多情况下都使用了三种单独的互连。在这些系统中,每一个处理器执行一个功能,并分别负责单个或最多很少几个通信流。然而,多核SoC的问世使这种局面大为改观。由于每个内核分别处理各自的通信流,故有可能实现每芯片多个通信流。
并行执行现有代码,在单个多核SoC上实现控制、数据和管理面板功能的融合,这一近期目标预计将作为多核架构的权宜之计。其将在一个四核器件上产生至少三个以上的通信流。从长远来看,软件将支持多核,并回复到众多内核执行离散数据或控制面板功能。在任一种情况下,不论何处采用多核SoC都将出现多个通信流。随着使用8、16甚至更多内核的下一代SoC的问世,未来2~4年间,单个器件能够支持的通信流数目将大幅度增加。
目前的互连支持多个通信流吗?答案是肯定的。通过在单个互连传输之前进行多路复用,可支持任何数目的通信流。但仍存在两大挑战:在目的节点如何对通信流进行多路分离,如何赋予每一个通信流独特的服务参数,比如保证带宽以及平均或最差情况下的延时?
要解决这些问题,协议需要具备好几个功能。首先,这个协议必须能够对各个通信流进行差异化。换言之,应该能够检查线缆上的数据包,并决定其属于哪一个通信流?其次,当数据包通过互连传输时,必须能够执行服务参数。这一点可以通过控制仲裁和流量控制来实现。例如,稳健的SoC需要多个通信流量控制机制,以限制互连上的一系列拥塞事件。这些机制可能包括链路到链路、端到端和进/出流量管理。
嵌入式系统中应用最广泛的互连也许是以太网。以太网的可扩展性已在多年服务中得到了充分的证实。基本的 Layer 2以太网帧只支持数据报类型(datagram-style)的处理,而且没有已定义的流量差异化头字段。但之后,从Layer 2的VLAN标签到更广泛的Layer 3 IP报头中的"5 Tuples(五元组)",各种流量差异化方法被放在最高层。其中,"五元组"方案可支持数百万个通信流。
不幸的是,对以太网而言,QoS
- 移动设备纷纷采用多核CPU遭质疑:性能过剩(01-12)
- 移动终端掀“芯”战 硬件大佬投奔多核(01-20)
- 硅光调制器研究的最新进展(03-12)
- 对嵌入系统应用中x86CPU的重新评价 (02-01)
- 多核技术仍然长路漫漫(02-02)
- 多核基准面临大挑战(04-14)