微处理器设计/多核系统
将超标量操作的概念提升到下一个层次,可以在单个芯片上放置多个微处理器内核(这通常是可取的),并且这些内核可以彼此并行运行。
对称多核处理器是指在单个芯片上具有多个内核,并且所有这些内核都是相同的。
示例:英特尔酷睿 2:
英特尔酷睿 2 是对称多核处理器的示例。酷睿 2 可以在芯片上具有 2 个内核(“酷睿 2 双核”)或 4 个内核(“酷睿 2 四核”)。酷睿 2 芯片中的每个内核都是对称的,并且可以彼此独立地运行。它需要调度软件和硬件的组合来将任务分配到每个内核。
示例:Parallax Propeller:
Parallax Propeller 是对称多核处理器的示例。Parallax Propeller 芯片上有 8 个内核,每个内核都是一个 32 位 RISC 处理器。Parallax Propeller 芯片中的每个内核都是对称的,并且可以彼此独立地运行。
非对称多核处理器是指在单个芯片上具有多个内核,但这些内核的设计可能不同。例如,单个芯片上可能存在 2 个通用内核和 2 个矢量内核。
示例: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]。
对称多核处理器是指具有多个完全相同的内核的处理器。每个内核都具有相同的架构和相同的功能。英特尔酷睿 2 双核处理器是对称多核系统的示例。
每个内核都具有相同的功能,因此需要一个仲裁单元来为每个内核分配特定任务。使用 **多线程** 等技术的软件可以充分利用英特尔酷睿 2 等多核处理器。
在非对称多核处理器中,芯片上有多个内核,但这些内核的设计可能不同。每个内核都具有不同的功能。
IBM Cell 处理器是非对称多核处理器的示例。
IBM Cell 处理器的框图。Cell 处理器具有 8 个 SPE 内核(左)和 1 个 PPE 内核(右)。PPE 内核是主内核,控制 SPE 内核的行为。 |
IBM Cell 处理器具有 1 个控制芯片的 PPE 和 8 个设计用于高数学吞吐量的 SPE。IBM Cell 处理器的设计如下
请注意 SPE 内核如何仅连接到 PPE,而不是彼此连接。还要注意 PPE 内核比单个 SPE 内核大得多。