Memory “其他处理器以一致的顺序看到两个存储”是什么意思?

Memory “其他处理器以一致的顺序看到两个存储”是什么意思?,memory,x86,intel,memory-barriers,memory-model,Memory,X86,Intel,Memory Barriers,Memory Model,在英特尔的手册中: 第8.2.2节P6和更新处理器系列中的内存排序 除执行存储的处理器外,处理器以一致的顺序查看任意两个存储 这句话的意思是什么?它意味着没有IRIW对独立读者、独立作者进行重新排序;至少4个独立内核,每个编写器和读取器至少2个。2个读者将始终同意在其他核心上执行的任何2个存储的顺序 较弱的内存模型不能保证这一点,例如ISO C++11只保证用于seq_cst操作,而不保证用于acq_rel或任何较弱的订单 一些硬件内存型号允许在纸上使用,包括ARMv8之前的ARM。但在实践中,

在英特尔的手册中:

第8.2.2节P6和更新处理器系列中的内存排序

除执行存储的处理器外,处理器以一致的顺序查看任意两个存储


这句话的意思是什么?

它意味着没有IRIW对独立读者、独立作者进行重新排序;至少4个独立内核,每个编写器和读取器至少2个。2个读者将始终同意在其他核心上执行的任何2个存储的顺序

较弱的内存模型不能保证这一点,例如ISO C++11只保证用于seq_cst操作,而不保证用于acq_rel或任何较弱的订单

一些硬件内存型号允许在纸上使用,包括ARMv8之前的ARM。但在实践中,很少有电源硬件会在实践中违反这一点:请参阅我的答案,了解一种硬件机制的解释,这种机制可以使存储在同一物理内核上的SMT超线程之间发生存储转发,从而使存储在全局可见之前对某些内核可见


x86禁止这种情况,因此超线程之间的通信必须等待提交到L1d缓存,即在任何其他内核可以看到存储之前,等待存储通过MESI全局可见

这意味着没有IRIW重新安排独立读者、独立作家;至少4个独立内核,每个编写器和读取器至少2个。2个读者将始终同意在其他核心上执行的任何2个存储的顺序

较弱的内存模型不能保证这一点,例如ISO C++11只保证用于seq_cst操作,而不保证用于acq_rel或任何较弱的订单

一些硬件内存型号允许在纸上使用,包括ARMv8之前的ARM。但在实践中,很少有电源硬件会在实践中违反这一点:请参阅我的答案,了解一种硬件机制的解释,这种机制可以使存储在同一物理内核上的SMT超线程之间发生存储转发,从而使存储在全局可见之前对某些内核可见

x86禁止这种情况,因此超线程之间的通信必须等待提交到L1d缓存,即在任何其他内核可以看到存储之前,等待存储通过MESI全局可见