我有一个问题,
多处理器机器是否可以从RAM(单个ram系统)访问数据? 例如,机器有2个并行执行的处理器p1,p2,它们是否可能访问相同的ram进行读写(ofcos写入不在同一位置)
据我所知,在多核计算机中,由于数据总线是共享的,因此无法实现。
答案 0 :(得分:1)
只要RAM映射到所有核心或处理器(例如在多线程应用程序中),就可以从任何核心或处理器访问它。
如果您正在讨论单处理器/单核,单处理器/多核,多处理器/(每个处理器)单核或多处理器/多核,则没有区别。由于它们没有自己的系统RAM - 高速缓存中的RAM不是系统RAM - 所有可用的RAM都是系统RAM。
多处理器/单核(如旧系统)和单处理器/多核(现代系统)之间的唯一区别是前者需要使用片外逻辑协调RAM访问,而后者需要协调所有协调片上,有时甚至片上,这当然会导致更快,更电子化的RAM访问。
对于AMD的多处理器/多核解决方案,每个处理器都拥有部分系统RAM。处理器本身与高速数据(HyperTransport)通道互连,以便于访问不属于访问它的处理器所拥有的RAM。
在任何情况下,由程序员决定处理器/内核如何访问RAM。当然,如果这是程序员想要的,他们可以读取和/或写入相同的位置。