首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享内存IPC (和其他IPC)如何与多CPU工作?

问共享内存IPC (和其他IPC)如何与多CPU工作?
EN

Stack Overflow用户
提问于 2012-10-04 18:37:59
回答 1查看 1K关注 0票数 1

我正在研究一个只有一个共享内存区域和一些GPIO/IRQ连接的2个CPU的体系结构。它们是完全分开的,因此它们不共享任何缓存。但是,该计划是让共享内存中的相同Linux操作系统映像同时执行。我想知道IPC机制(如共享内存、信号等)将如何工作?因为这两个CPU是从同一个RAM中执行的,所以只要这些机制保持在RAM中,那么当一个CPU检查共享内存区域的状态时,只要没有一致性问题,它就可以工作。在这种设置中信号(软件中断)是如何工作的?都是用RAM处理的吗?是否存在一致性问题?

EN

回答 1

Stack Overflow用户

发布于 2012-10-04 19:15:24

假设您讨论的是SMP配置,这是一个具有多个CPU的la多数桌面/低端服务器机器,那么您就永远不会看到任何一致性问题,尽管您可能会面临大量共享内存的性能问题。例如,如果每个处理器(集合{0,1})在其缓存中有一些内存线,并且处理器0写入该行,则它将更新其缓存。如果内存位置被设置为标记,它应该写入到该内存位置,而另一个处理器的内存控制器将重新加载或使该行的缓存失效。

这在当代CPU中有些复杂,因为每个CPU模块都有自己的内存控制器,因此有自己的专用内存。因此,由芯片内部的内存控制器来协商哪些高速缓存线是共享的,如果被某个处理器核修改,则使共享高速缓存线失效。如果你想知道默认情况,你可以阅读MESIF协议,它被英特尔Xeon用来保持多处理器模块系统中的缓存一致性。但是底线是,在SMP系统中,如果多个核正在锤击同一个内存区域,则不应该只看到非相干共享内存状态的性能下降。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12733643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档