We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
As mentionned in the ARM Developer Guide*, a BTAC or a GHB parity error in ARM Cortex-A9 CPU only results in branch misprediction which is detected and corrected.
From my understanding, these structures store addresses to instructions. So if one entry is corrupted, it will point to a bad address potentially in an initialized memory address range (containing garbage data) or to an unmapped MMU page.
As a result, especially after BTAC and GHB have been invalidated, the first branch predictions will only forward these corrupted addresses to the PC register.
Therefore I don't quite understand how the entry parity error leads to a misprediction, and can even be corrected.
Thank you for any help!
Florian
*Source: developer.arm.com/.../ghb-and-btac-data-corruption
This kind of processor micro-architecture discussion should be routed to support@arm.com if you are a valid Arm licensee.