对于流水线中store buffer、store queue,rob,相应的操作执行要等到store buffer空或者store queue队头的依据是什么
时间: 2023-08-18 13:53:50 浏览: 120
Swift iOS StoreKit 原生内购订阅代码封装,含Demo
在流水线中,store buffer和store queue都是用来缓存store操作的。当CPU执行store操作时,数据并不会立即写入内存,而是先写入store buffer或store queue中,然后由后续的操作将数据写入内存。这样做的好处是可以提高CPU的执行效率。
当CPU执行store操作时,会将数据写入store buffer或store queue中,并标记为"已提交"。当后续的操作需要读取存储器中的数据时,会先检查store buffer或store queue中的数据是否已经提交,如果已经提交,就可以直接读取数据;如果没有提交,则需要等待数据提交完成后再读取。
ROB(Reorder Buffer)是用来实现指令重排序的机制,它可以将指令在执行过程中进行重排序,以尽可能地提高CPU的执行效率。ROB中的store操作也会被缓存,并标记为"已提交"。后续的操作需要读取存储器中的数据时,会先检查ROB中的store操作是否已经提交,如果已经提交,就可以直接读取数据;如果没有提交,则需要等待数据提交完成后再读取。
因此,store buffer、store queue和ROB都是用来缓存store操作的,其相应的操作执行要等到store buffer空或者store queue队头或ROB中的store操作已经提交的时候,才能进行。
阅读全文