微处理器设计/多核系统
将超标量操作的想法提升到一个新的水平,将多个微处理器内核放到一个芯片上是可能的(并且经常是可取的),并让这些内核彼此并行运行。
对称多核处理器是指在一个芯片上有多个内核,并且所有这些内核都相同。
示例:Intel Core 2:
Intel Core 2 是对称多核处理器的示例。Core 2 可以在芯片上具有 2 个内核(“Core 2 Duo”)或 4 个内核(“Core 2 Quad”)。Core 2 芯片中的每个内核都是对称的,可以独立地运行。它需要调度软件和硬件的混合来将任务分配到每个内核。
示例:Parallax Propeller:
Parallax Propeller 是对称多核处理器的示例。Parallax Propeller 在芯片上具有 8 个内核,每个内核都是一个 32 位 RISC 处理器。Parallax Propeller 芯片中的每个内核都是对称的,可以独立地运行。
非对称多核处理器是指在一个芯片上有多个内核,但这些内核可能是不同的设计。例如,一个芯片上可以有两个通用内核和两个向量内核。
示例:Cell 处理器
IBM 的 Cell 处理器,用于索尼 PlayStation 3 视频游戏机,是一个非对称多核处理器。Cell 在板载有 9 个处理器内核,一个通用处理器和 8 个数据处理内核。一个多用途内核,称为 **Power Processor Element** (PPE),控制其他内核之间的通信,并将计算任务分配给其他内核进行处理。另外 8 个内核被称为 **Synergistic Processor Elements** (SPE),专门设计为具有高浮点吞吐量,特别是向量运算。
示例:Kilocore
Rapport 的 Kilocore 处理器是一个非对称多核处理器。Kilocore 具有一个通用处理器,一个 PowerPC 处理器内核,以及芯片上 256 或 1024 个数据处理内核。这些内核的设计旨在以极低的功耗运行,因此整个芯片比典型的台式机 CPU 速度更快,功耗更低[1]。
对称多核处理器是指一个处理器具有多个完全相同的内核。每个内核都具有相同的架构和相同的功能。Intel Core 2 Duo 处理器是对称多核系统的示例。
每个内核都具有相同的功能,因此需要一个仲裁单元来为每个内核分配特定的任务。使用诸如 **多线程** 之类的技术的软件可以充分利用 Intel Core 2 之类的多核处理器。
在非对称多核处理器中,芯片具有多个内核,但这些内核可能是不同的设计。每个内核将具有不同的功能。
IBM Cell 处理器是非对称多核处理器的示例。
IBM Cell 处理器的方框图。Cell 处理器具有 8 个 SPE 内核(左)和 1 个 PPE 内核(右)。PPE 内核是主内核,控制 SPE 内核的行为。 |
IBM Cell 处理器具有 1 个控制芯片的 PPE 和 8 个专为高数学吞吐量设计的 SPE。IBM Cell 处理器设计如下
注意 SPE 内核只连接到 PPE,而不是彼此连接。还要注意,PPE 内核比各个 SPE 内核大得多。