抽空看看孩子的问题吧,谢谢了,困扰很多天了
CPU乱序分为CPU指令乱序和内存乱序。
问题1: 指令流水线中,无依赖关系的指令会被批量拉取,然后乱序执行,最终会在ROB中顺序提交。其中乱序执行是否是CPU指令乱序的根源?
问题2: x86架构的处理器在指令流水线中除了StoreLoad可以乱序,其他指令都不会乱序执行?
问题3: ARM架构的处理器在指令流水线中,无数据、控制、地址相关的读写指令都可以乱序执行?
问题4: 不管是读写内存屏障还是高级语言的release/acquire等屏障,作用除了清空StoreBuffer和Invalidate Queues,是否还会阻止屏障的前后指令在指令流水线中乱序执行?
CPU乱序分为CPU指令乱序和内存乱序。
问题1: 指令流水线中,无依赖关系的指令会被批量拉取,然后乱序执行,最终会在ROB中顺序提交。其中乱序执行是否是CPU指令乱序的根源?
问题2: x86架构的处理器在指令流水线中除了StoreLoad可以乱序,其他指令都不会乱序执行?
问题3: ARM架构的处理器在指令流水线中,无数据、控制、地址相关的读写指令都可以乱序执行?
问题4: 不管是读写内存屏障还是高级语言的release/acquire等屏障,作用除了清空StoreBuffer和Invalidate Queues,是否还会阻止屏障的前后指令在指令流水线中乱序执行?