多核共享资源——解决频率极限问题的关键
扫描二维码
随时随地手机看文章
目前,市场上的许多系统在单核处理器上运行它们的控制和数据层以及附加的服务。然而,由于存在系统功率预算问题,单核处理器已经逼近了频率的极限,这个问题采用晶体管技术是无法解决的。因此,在下一代系统中对更高性能和更宽差异化服务的需求,使这些系统成为多核器件的理想候选人,为系统提供商提高系统的性能提供了一条途径并增加新的服务,与此同时,保持在常常由系统位置和终端用户的笔记本驱动的功率预算之内。
这些新型的多核器件在I/O连接性上呈现令人感兴趣的挑战。在许多场合中,随机地把特殊的I/O口连接到一个特殊的核是无法接受的。应用划分可能受到资源跨越多个核进行共享的需求的影响。在接入路由器的应用中,许多I/O将接收数据包以进行处理,正如现存的许多方式一样,在想把数据外发到一个公共I/O的众多核中智能地分布数据包。许多现有的解决方案包括在出入口上的一些硬件加速的分解以及分类,从而有助于它们分发数据包,但是,甚至更为简单的方法是采用一或多个核来运行代码,以确定在哪里发送进来的数据包。有时候,当一个核被用作分发机制时,软件在各个处理器之间可能更具有移植性;但是,该核不仅仅成为了器件的性能瓶颈,也成为了整个系统的性能瓶颈。如前所述,核频率将继续落后于对处理能力的要求(这种情形是由日益增长的快速I/O混合而成的);因此,至关重要的是确保数据包分发机制不是瓶颈,并且他们足够地灵活以确定每一个数据包的最初目的地。
跨越多核对应用进行划分也意味着划分任何共享资源,如片外存储器以及片上高速缓冲存储器。随着在单一裸片上的核的数量的增加,片外存储器带宽以及片上L2高速缓冲存储器并没有在引脚数以及裸片面积的压力下而增加。
此外,要考虑的另一个问题是各个核采用共享的资源,如硬件加速器(其中包括模式匹配以及加密/解密引擎等等)。这些硬件资源对于支持较高层的功能是必不可少的,如预防入侵、虚拟私人网络以及当今企业市场需要的、在较高性能级别上的状态防火墙。
一个良好的例子就是,一个核要么做它的常规数据包处理,要么利用执行单元来完成加速任务。该核当执行优化指令时无法转移去处理另一个数据包。数据包处理代码利用Look-Aside加速可以处理一个数据包,把它传递给加速器进行处理,并开始处理另一个数据包,其行为非常像“管线”方式。在完成任务以后,加速器把数据包返回给内核做进一步的处理。这种类型的加速容许内核完全利用加速器的性能。