2013-05-15 142 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上移植操作系統並控制所有內核? –

相關問題