|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
官方的解释,在这里备份一下,大家可以参考一下。
The eieio, sync and isync are context-synchronizing instructions. Term “context-synchronizing” means the following: the processor core consists of several independent execution units, so it is able to execute several instructions in parallel and out-of-order. The context-synchronizing instructions are used to force strict order of instructions, where required. eieio means "Enforce In-Order execution of I/O". During execution, Load/Store Unit waits for previous accesses to terminate before beginning accesses associated with load/store instructions after eieio. The purpose of eieio is to prevent loads and stores from executing speculatively when appropriate. This might be desirable for FIFO, where performing a read or write changes the FIFO's data. isync means "Instruction sync". This instruction waits for all instructions to complete and discards any prefetched instructions, causing subsequent instructions to be refetched from memory. The isync instruction is context synchronizing, which guarantees that all of effects of previous instructions are in place and any instructions in the instruction queue are flushed (which means all instructions that were in the instruction queue need to be refetched). sync is a memory synchronization instruction. It delays execution of subsequent instructions until previous instructions have completed to the point that they can no longer cause an exception and until all previous memory accesses are performed globally; the sync operation is not broadcast onto the bus interface. Additionally, all load and store cache/bus activities initiated by prior instructions are completed. |
|