Cortex-A53 是顺序执行的还是乱序执行的?
CA53 是顺序执行(in-order)的流水线。
The Cortex-A53 processor is Arm’s first Armv8-A processor aimed at providing power-efficient 64-bit processing. It features an
in-order
, 8-stage,dual-issue
pipeline, and improved integer, Neon, Floating-Point Unit (FPU) and memory performance.
CA53既然是顺序执行的流水线,那么还需要 memory barrier 做什么用?
顺序流水线
指的是处理器按照它们在内存中出现的顺序发出指令(issue
)。下一条指令不会早于上一条指令发出。 dual-issue pipeline
意味着处理器可以同时发出2条指令。
乱序流水线
指的是处理器可以不按照指令在内存中的顺序发出(issue
)指令。
简单而言,一条指令的执行需要经过取指(fetch
)、解码(decode
)、发出(issue
)。每条指令按照内存中的顺序解码(decode
),并按序存储在指令解码缓冲区中(即中央窗口(?
))。但是从解码缓冲区中的提取(即发出(issue
))可能不是按顺序进行的。
对于顺序流水线
,是按序发出的,但是对于乱序流水线
,可能就不是按序发出的了。
所以,不管是顺序还是乱序,指的都是issue
的顺序。