1

我对“多核”处理器的概念感到困惑。

一些多核处理器,链接 ARM A9/x86,我们运行 uni-OS,如 linux/windows。每个核心都运行良好。

但是其他人,链接 TI 的 C6678,我们在核心 pac0 上运行 linux,并在每个其他核心 pac 上运行 sys/bios,它们通过 syslink 进行通信。

这些多核处理器之间的架构有何不同?

4

1 回答 1

7

您在这里看到的是AMPSMP系统之间的主要区别。

X86 通常是一个 SMP 系统,所有核心都是平等的,可以访问相同的外围设备,并且可以访问彼此的内存和缓存。缓存在内核之间保持一致,因此每个内核始终拥有相同的内存视图。核心(在这些核心上运行的进程)之间的通信通常只通过信号量和互斥锁等内存结构完成。为了实现这一目标,芯片设计人员必须整合大量逻辑。

AMP 是完全不同的野兽。内核通常有自己的内存“视图”,这意味着缓存不会在内核之间同步。这大大简化了芯片的设计,但通过内存进行通信时会出现问题。所以通常每个核心都会运行它自己的进程,有些可能运行整个操作系统,有些只是一个裸机系统,您还会发现系统的一部分运行 Linux 而其他部分运行 VXWorks 或其他东西的配置。

如果可以很好地拆分任务,通常会使用 AMP。以具有小型 PBX 和 iptv 机顶盒的路由器为例。一个内核可能运行带有防火墙的 linux,只是整天路由。下一个核心运行 vxworks 和一个 PBX 应用程序,第三个核心解码电视流并将其发送出去。路由核心必须在其他两个核心和局域网之间分配传入的数据,但这就是所有的交互。

一般来说,SMP 提供的功能并不是免费提供的。首先,他们会提高产品的价格。其次,缓存同步在周期方面非常昂贵。

因此,最终您将不得不使用适合您需求的架构。

于 2013-05-15T06:09:12.280 回答