多内核是指在一枚处理器中集成两个或多个完整的计算引擎(内核),多核处理器是单枚芯片(也称为“硅核”),能够直接插入单一的处理器插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器。通过在两个执行内核之间划分任务,多核处理器可在特定的时钟周期内执行更多任务。
目前,市场上的许多系统在单核处理器上运行它们的控制和数据层以及附加的服务。然而,由于存在系统功率预算问题,单核处理器已经逼近了频率的极限,这个问题采用晶体管技术是无法解决的。因此,在下一代系统中对更高性能和更宽差异化服务的需求,使这些系统成为多核器件的理想候选人,为系统提供商提高系统的性能提供了一条途径并增加新的服务,与此同时,保持在常常由系统位置和终端用户的笔记本驱动的功率预算之内。
这些新型的多核器件在I/O连接性上呈现令人感兴趣的挑战。在许多场合中,随机地把特殊的I/O口连接到一个特殊的核是无法接受的。应用划分可能受到资源跨越多个核进行共享的需求的影响。在接入路由器的应用中,许多I/O将接收数据包以进行处理,正如现存的许多方式一样,在想把数据外发到一个公共I/O的众多核中智能地分布数据包。许多现有的解决方案包括在出入口上的一些硬件加速的分解以及分类,从而有助于它们分发数据包,但是,甚至更为简单的方法是采用一或多个核来运行代码,以确定在哪里发送进来的数据包。有时,当一个核被用作分发机制时,软件在各个处理器之间可能更具有移植性;但是该核不仅仅成为了器件的性能瓶颈,也成为了整个系统的性能瓶颈。
多核技术能够使服务器并行处理任务,多核系统更易于扩充,并且能够在更纤巧的外形中融入更强大的处理性能,这种外形所用的功耗更低、计算功耗产生的热量更少。多核架构能够使目前的软件更出色地运行,并创建一个促进未来的软件编写更趋完善的架构。尽管认真的软件厂商还在探索全新的软件并发处理模式,随着向多核处理器的移植,现有软件无需被修改就可支持多核平台。
跨越多核对应用进行划分也意味着划分任何共享资源,如片外存储器以及片上高速缓冲存储器。随着在单一裸片上的核的数量的增加,片外存储器带宽以及片上L2高速缓冲存储器并没有在引脚数以及裸片面积的压力下而增加。
此外,要考虑的另一个问题是各个核采用共享的资源,如硬件加速器(其中包括模式匹配以及加密/解密引擎等等)。这些硬件资源对于支持较高层的功能是必不可少的,如预防入侵、虚拟私人网络以及当今企业市场需要的、在较高性能级别上的状态防火墙。
一个良好的例子就是,一个核要么做它的常规数据包处理,要么利用执行单元来完成加速任务。该核当执行优化指令时无法转移去处理另一个数据包。数据包处理代码利用Look-Aside加速可以处理一个数据包,把它传递给加速器进行处理,并开始处理另一个数据包,其行为非常像“管线”方式。在完成任务以后,加速器把数据包返回给内核做进一步的处理。这种类型的加速容许内核完全利用加速器的性能。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。