04 宽松存储模型
宽松存储模型
为了获取更多的性能,在PSO的模型的基础上不仅允许store-load、store-store乱序,还进一步允许load-load乱序和load-store乱序。
只要是地址无关的指令,在读写访问的时候都可以打乱所有load/store的顺序,这就是宽松内存模型(RMO)。
Core C1 | Core C2 |
---|---|
S1: store data=2 S2: store flag=1 |
L1: load r1=flag B1: if(r1 != 1) goto L1 L2: load r2=data |
在RMO模型里,不仅会出现PSO的store-store乱序,C2本身执行指令的时候,由于L1与L2是地址无关的,所以L2可能先比L1执行,这样即使C1没有出现store-store乱序,C2本身的load-load乱序也会导致我们看到的r2为0。
发布于