多核处理器之间的区别

Ben*_* Ma 1 linux arm multicore sysbios

我对"多核"处理器概念感到困惑.

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

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

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

Nic*_*rth 7

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

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

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

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

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

因此,最终您必须使用符合您需求的架构.