根据IDC新近发布的预测,2009年几乎所有服务器、PC和">笔记本电脑产品将全面实现多核化。随着这些硬件产品在多核技术上的逐渐就绪,如今整个IT业界面临的最大挑战就是如何将原先仅用于高端应用开发的并行编程方式推广到所有软件开发的过程中,以打造出更多支持多线程并行化运行的应用软件——尤其是处于关键地位的中间件,全面释放多核处理器的性能潜力。
目前的中间件产品,尽管大部分都是基于多线程或者多进程的,但是由于传统单线程编程的思维定势以及开发语言和工具的限制,使得软件应用限制了多核处理器性能的发挥。对此,微软首席研究官Craig Mundie称,软件行业所面临的核心挑战就是对多核处理器的编程。相比 C/C++ 程序员而言,利用 Java 编写多线程应用已经简单了很多。然而,多线程程序想要达到高性能仍然不是一件容易的事情。当CPU 进入多核时代之后,软件的性能调优就不再是一件简单的事情。没有并行化的程序在新的硬件上可能会运行得比从前更慢。
多内核是指在一枚处理器中集成两个或多个完整的计算引擎(内核),多核处理器是单枚芯片(也称为“硅核”),能够直接插入单一的处理器插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器。通过在两个执行内核之间划分任务,多核处理器可在特定的时钟周期内执行更多任务。
多核技术能够使服务器并行处理任务,多核系统更易于扩充,并且能够在更纤巧的外形中融入更强大的处理性能,这种外形所用的功耗更低、计算功耗产生的热量更少。多核架构能够使目前的软件更出色地运行,并创建一个促进未来的软件编写更趋完善的架构。尽管认真的软件厂商还在探索全新的软件并发处理模式,随着向多核处理器的移植,现有软件无需被修改就可支持多核平台。
操作系统专为充分利用多个处理器而设计,且无需修改就可运行。为了充分利用多核技术,应用开发人员需要在程序设计中融入更多思路,但设计流程与目前对称多处理 (SMP) 系统的设计流程相同,并且现有的单线程应用也将继续运行。得益于线程技术的应用在多核处理器上运行时将显示出卓越的性能可扩充性,此类软件包括多媒体应用(内容创建、编辑,以及本地和数据流回放)、工程和其他技术计算应用以及诸如应用服务器和数据库等中间层与后层服务器应用。
多核处理器主要具有以下几个显著的优点:
● 控制逻辑简单:相对超标量微处理器结构和超长指令字结构而言,单芯片多处理器结构的控制逻辑复杂性要明显低很多。相应的单芯片多处理器的硬件实现必然要简单得多。
● 高主频:由于单芯片多处理器结构的控制逻辑相对简单,包含极少的全局信号,因此线延迟对其影响比较小,因此,在同等工艺条件下,单芯片多处理器的硬件实现要获得比超标量微处理器和超长指令字微处理器更高的工作频率。
● 低通信延迟:由于多个处理器集成在一块芯片上,且采用共享Cache或者内存的方式,多线程的通信延迟会明显降低,这样也对存储系统提出了更高的要求。
● 低功耗:通过动态调节电压/频率、负载优化分布等,可有效降低CMP功耗。
● 设计和验证周期短:微处理器厂商一般采用现有的成熟单核处理器作为处理器核心,从而可缩短设计和验证周期,节省研发成本。