29.6 Memory ordering
The EBC architecture is required to be strongly ordered, and the EBC virtual machine interpreter ensures that all memory transactions are strongly ordered. The EDK II includes a complete implementation of the EBC virtual machine interpreter in the
MdeModulePkg
in the directory MdeModulePkg/Universal/EbcDxe
.EBC drivers are not required to use the EDK II library
BaseLib
function MemoryFence()
when strong ordering is required. However, UEFI Drivers compiled for other CPU architectures may require the use of the MemoryFence()
function to enforce strong ordering. The EDK II library BaseLib
implementation of MemoryFence()
for EBC is an empty function. This means there is no performance penalty for MemoryFence()
calls in UEFI Drivers compiled for EBC.