<分区>
我对“多核”处理器的概念感到困惑。
一些多核处理器,链接ARM A9/x86,我们运行uni-OS,比如linux/windows。每个内核都运行良好。
但是其他的,链接TI的C6678,我们在core pac0上运行linux,在其他每个core pacs上运行sys/bios,它们通过syslink进行通信。
这些多核处理器之间的架构差异是什么?
<分区>
我对“多核”处理器的概念感到困惑。
一些多核处理器,链接ARM A9/x86,我们运行uni-OS,比如linux/windows。每个内核都运行良好。
但是其他的,链接TI的C6678,我们在core pac0上运行linux,在其他每个core pacs上运行sys/bios,它们通过syslink进行通信。
这些多核处理器之间的架构差异是什么?
最佳答案
X86 通常是一个 SMP 系统,所有内核都是平等的,可以访问相同的外围设备,并且可以访问彼此的内存和缓存。缓存在核心之间保持一致,因此每个核心始终具有相同的内存 View 。内核(在这些内核上运行的进程)之间的通信通常仅通过信号量和互斥锁等内存结构来完成。为实现这一目标,芯片设计人员必须整合大量逻辑。
AMP 是完全不同的野兽。核心通常有自己的内存“ View ”,这意味着缓存不会在核心之间同步。这大大简化了芯片的设计,但使通过内存进行的通信成为问题。所以通常每个内核都会运行它自己的进程,有些可能会运行整个操作系统,有些只是一个裸机系统,您还会发现系统的一部分运行 Linux 而其他部分运行 VXWorks 或其他东西的配置。
如果可以很好地拆分任务,通常会使用 AMP。以具有小型 PBX 和 iptv 机顶盒功能的路由器为例。一个核心可能运行带防火墙的 Linux,整天都在路由。下一个核心运行 vxworks 和一个 PBX 应用程序,第三个核心解码电视流并将其发送出去。路由核心将不得不在其他两个核心和 LAN 之间分发传入数据,但这就是所有交互。
一般来说,SMP 提供的功能并不是免费的。首先,他们会提高产品的价格。其次,缓存同步的周期成本非常高。
因此最终您将不得不使用适合您需求的架构。
关于linux - 多核处理器之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555826/