Hi, All
We know that Arm-GCC compiler reorganizes order of instruction when building C code for optimization.My question is;
Does Arm processor *internally* re-order instruction to speed up performance and improve power efficiency?
We know that sometimes re-ordering could result in race condition since Arm processor does not execute instruction exactly issued by software. We would like to make sure how Arm processor works *internally*.
Target processor: Cortex-A53, Cortex-A57
BR,Austin Kim
The wikipedia articles on those two CPUs say that a57 has an out-of-order execution pipeline while a53 doesn't. I suppose the TRMs might contain more info.
GCC has some info about the pipelines for a few processors.
Austin Kim said:We would like to make sure how Arm processor works *internally*
There are models described and tools built, that have been used to learn, document and verify the behaviour of CPUs. There are tools like ppcmem, armmem, herd7. If you are working with Linux, you may also want to check the contents of linux/tools/memory-model. There are also research papers, articles, and books on various topics related to memory ordering.
One of the researchers, Jade Alglave, also works for Arm. Her blogs are here.
Thanks for feedback.The material(e.g: blog, tools, link) listed above should great help tounderstand out-of-order execution of Arm processor.