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

===============>>#1 票数:1

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

===============>>#2 票数:1 已采纳

我不确定这是不是你想要的,但是IIRC有一些架构具有弱排序的内存访问,因为它们可以任意排序,你必须插入内存屏障以确保特定的排序。

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

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

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

  ask by Beginner translate from so

未解决问题?本站智能推荐:

1回复

Spreadsheet Gear-通过复制和粘贴生成大型报告似乎占用了大量内存和处理器

我正在尝试生成一个基于大型工作簿的报表,其中包含100、12000和12000行的3个支持工作表以及一个基于最终公式的最终输出表,这些公式最终基于每100行显示约120个实体。 我生成一个模板范围,并在粘贴每个新范围后复制并粘贴它替换实体ID单元格。 它工作正常,但我注意到IIS Expre
2回复

处理器使用Intel QuickPath Interconnect(QPI)来访问内存吗?

我已阅读英特尔®QuickPath互连简介 。 该文档未提及处理器使用QPI来访问内存。 所以我认为处理器不通过QPI访问内存。 我的理解是否正确?
3回复

是什么设置了处理器可以访问的RAM上限?

按照这种从在IIT教授讲座,一个8位的8085处理器将具有可配对以访问16个地址的8个寄存器。 他通过告诉我们程序计数器和堆栈指针寄存器是16位来实现它可以访问16位地址的事实。 他还继续告诉我们,数据总线是8位,而地址总线是16位。 结果是不是意味着32位处理器将能够访问64位地址?
5回复

处理器和虚拟/物理地址

简而言之,据我了解内存管理,处理器生成虚拟地址。 MMU使用每个进程的地址表将这些地址转换为相应的物理地址(必要时在它们之间具有TLB和页面错误)。 我的问题是处理器是否总是产生虚拟地址? 就地址空间(用户/内核),处理器模式(用户/内核)和上下文(进程/系统)而言,处理器何时始终产生
1回复

为什么处理器只读取对齐的地址

所以我读了几篇有关内存对齐的文章(以及关于StackOverflow的一些问题),并且我理解了为什么这样的结构: 将有填充。 同样很明显,如果处理器只能从对齐的偏移量读取数据,则从未对齐的内存中获取数据的速度会变慢。 但是,为什么处理器只能从对齐的内存中读取数据? 为什么它不能
1回复

32/64位应用程序,操作系统和处理器之间有什么关系?

我已经搜索了这些主题,但是不确定我是否正确理解了它们之间的关系。 我总结了以下几点,请纠正/补充。 32位或64位处理器意味着该处理器可以一次处理32/64位。 使用32位或64位处理器表示基础寄存器,地址总线或数据总线的大小也相同。 为了在32/64位处理器上工作,我们有
3回复

关于处理器架构的4个问题。 (计算机工程)

在为期末考试做准备时,我们的老师已经问了我们大约50个错误的真题。 我可以在网上或通过询问亲戚找到大多数答案。 但是,这四个问题却使我发疯。 这些问题大多数都不难,我只是在任何地方都无法得到满意的答案。 抱歉,最初的问题不是用英语写的,我必须自己翻译。 如果您听不懂,请告诉我。 谢谢
7回复

为什么在大多数处理器中,L1高速缓存的大小小于L2高速缓存的大小?

为什么在大多数处理器中,L1高速缓存的大小小于L2高速缓存的大小?
2回复

如果我的二进制数为1111111111111111并且Intel处理器使用的存储格式为32位,则float的值是什么? [关闭]

这个问题不太可能对将来的访客有所帮助; 它仅与较小的地理区域,特定的时间段或极为狭窄的情况(通常不适用于Internet的全球受众)有关。 要获得使该问题更
1回复

内存位置对写入有用吗?

如果我正在将值写入内存而不是再次读取它们,那么如果内存位置不连续,它是否会对性能产生影响? (即不在写缓存中) 处理器有可能在后台将它们写入后台,或者是否会导致缓存问题?