桌面处理器是否支持弱有序内存?

时间:2011-12-11 21:37:16

标签: memory processor

是否有支持弱订购内存的Intel / AMD台式机处理器,或者这是具有多个处理器的服务器设置的功能?

2 个答案:

答案 0 :(得分:1)

现在许多现代处理器都使用无序执行来隐藏内存延迟来提高性能。这与多处理器/核心无关,可以通过单独处理单核处理器来完成。因此,您不应该依赖内存排序。

答案 1 :(得分:1)

我不确定这是否是您所追求的,但是IIRC有一些架构具有弱序存储器访问,因为它们可以任意排序,并且您必须插入内存屏障以确保特定的排序

现代处理器使用所谓的“加载存储队列”来隐藏内存重新排序,使其看起来几乎就像是按程序顺序发生的。读取通常是重新排序的(但需要小心),写入可以按顺序进行,但是按顺序提交(尽管对同一位置的多次写入是合并的),并且只能仔细和推测地对读取和写入进行重新排序。后者被称为“提升”,其中在写入之前推测性地执行读取(在指令序列中较早出现)并且如果事先证明先前的写入会影响它,则可以取消(如错误预测的分支)。 / p>

此外,如果内存被标记为未缓存,则CPU通常会推断它意味着它的I / O空间并且不执行访问重新排序。 x86和SPARC是这样的。但是,PowerPC仍会将读取重新排序到I / O内存空间,我们必须使用EIEIO(确保按顺序执行I / O)指令强制执行特定排序。 IIRC,我们还必须在PA-RISC和Alpha上使用内存屏障。此外,x86上存在内存障碍,但我不熟悉它们的使用(可能确保对缓存内存空间的访问顺序)。

你提到了多核系统。通常,采用精细的高速缓存一致性协议使得所有存储器访问看起来符合某些交织规则,使得访问按照在没有高速缓存时可能的顺序命中最后一级高速缓存和主存储器。