2013-05-15 144 views
1

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

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

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

这些多核处理器之间的架构区别是什么?

回答

7

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

X86通常是一个SMP系统,所有内核相等,都可以访问相同的外设并可以访问其他内存和缓存。缓存在内核之间保持一致,因此每个内核始终都具有相同的内存视图。核心之间的通信(在这些核心上运行的进程)通常只能通过信号量和互斥体等内存结构来完成。为了完成这项工作,芯片设计人员必须加入大量的逻辑。

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

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

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

所以最终你将不得不使用适合你需求的架构。

+0

非常好!非常感谢您的回答! –

+0

请问另一个问题:我可以在AMP上移植操作系统并控制所有内核? –

相关问题