C++多核高级编程 - 01 新的计算机体系结构及多核设计

来源:互联网 发布:python 调用c dll 编辑:程序博客网 时间:2024/05/18 05:33

多核是将多个处理器放在一个计算机芯片上的设计,每个处理器被称作一个核。这些设计被称作芯片多处理器(Chip Multiprocessor  CMP)。


多核处理器的常见配置:

配置 1: 超线程处理器,在一个芯片上运行一个或多个线程,是逻辑上的多处理器,而不是物理上的。

配置 2: 现在主流的多核处理器,一个芯片上为一个处理器。

配置 3: 未来的发展方向,在一个芯片上存在多个物理的处理器。


CMP_config


下面将简单介绍一下四种有影响的多核设计

  -      AMD Multicore Opteron

  -      Sun UltraSparc T1

  -      IBM Cell Broadband Engine

  -      Intel Core 2 Duo


AMD Multicore Opteron

双核 Opteron 由两个处理器,两个L1 cache 和两个 L2 cache组成

AMD_Opteron

Opteron  使用的是非均匀存储访问(Non-Uniform Memory Access),在这种结构中每个处理器上片上内存控制器对自己本地内存进行快速访问。

NUMA使用分布但共享的内存结构,与均匀存储访问刚好相反。


UMA结构

多个处理器物理上共享内存。

uma_pic


NUMA结构

多个处理器逻辑上共享内存。

numa_pic


 Sun UltraSparc T1

UltraSparc T1 是八核CMP提供了对芯片级多线程的支持。每个内核能运行4个线程,意味着UltraSparc T1 最多能处理32个硬件线程。

ultrasparc_pic


 IBM Cell Broadband Engine

CBE是一种异构多核芯片,它由两种不同类型的处理器组成 PPE(PowerPC Processing Element), SPE(Synergistic Processer Element)

一个CBE 有1个PPE和8个SPE组成。

cbe_pic


Intel Core 2 Duo


Inter Core 2 Duo 是 Inter 多线程处理器中的一个系列。

有些为双核,其他为4核。


inter_pic