我正在学习TSO(Total Store Order Consistency模型),并且读到计算机架构研究人员认为Intel x86(x86-64)处理器实现了这种一致性模型。
(假设这是真的,他们确实实施了TSO) 这是否意味着x86(-64)英特尔处理器不会(也不能)执行写入合并?但在Patterson和Hennessy的书中,他们提到核心i7确实写合并。
我之所以这样说是因为如果它们允许写入合并,那么这可能会违反TSO(写入写入)。那么英特尔处理器就无法实现TSO。
我在这方面犯的错误在哪里?
答案 0 :(得分:2)
写入合并不违反TSO,因为它是针对连续存储执行的(除了写入合并mem类型的写入合并,限制性较小但不保证正常的内存排序),没有存储正在重新排序,只是分组在一起。
还要注意,内存排序与单独的元素(存储本身)有关,而合并只针对外部世界(较低的缓存和内存)进行,因此我们在这里讨论完全不同的HW结构。
请参阅此处,了解如何完成写入组合 - what is a store buffer?