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