题解引用自:MSI cache一致性协议_假设在一个双cpu多处理器系统中,两个cpu用单总线连接,并且采用监听一致性协议(msi-CSDN博客
答:
事件 | A状态 | B状态 |
---|---|---|
初始状态 | I | I |
CPU A读 | S | I |
CPU A写 | M | I |
CPU B写 | I | M |
CPU A读 | S | S |
接下来分析CPU A/B中各自cache的状态变化:
答:?
在TSO模型中,Load 操作可以越过之后的Store 操作,但不能越过之前的 Store 操作;如果处理器 B 在处理器A的 Store 操作完成之前完成了这两个 Load 操作;由于处理器A的 Store 操作的延迟,可能导致处理器 B 读取到 value 的旧值,从而导致r3不一致。
答:
补充:?Flops=[CPU核数]*[单核主频]*[CPU单个周期浮点计算能力]
以intel xeon 6348 cpu为例,28核,主频2.6GHz,支持AVX512指令集,且FMA系数=2
CPU单周期单精度浮点计算能力=2 (FMA数量)*2(同时加法和乘法)*512/32=64
CPU单周期双精度浮点计算能力=2 (FMA数量)*2(同时加法和乘法)*512/64=32
6348的单精度算力=28x2.6x64=4659Gflops=4.6Tflops
6348的双精度算力=28x2.6x32=2329Gflops=2.3Tflops
答:
a.? ? ? ??
b.1????????
b.2????????
b.3????????
答:
方式一:
采用循环展开的 VLIW 指令进行7次循环展开。假设没有分支延迟,代码一共需要执行10个周期,10个周期内进行了23次操作,指令发射速率为每周期2.3次操作; 操作槽共计5*10=50个槽位,操作槽的有效利用率约为23/50=46%。(可进行优化)
方式二:
采用循环展开的 VLIW 指今进行7次循环展开。假设没有分支延迟期,9个周期内进行了23次操作,指令发射速率为每周期2.5次操作;操作槽个数为5*9=45个,操作槽的有效利用率约为23/45=51.1%