title: Enforce In-order Execution of I/O
text: # Enforce In-order Execution of I/O
  
  Enforce In-order Execution of I/O (EIEIO) is an assembly language instruction used on the PowerPC central processing unit (CPU) which prevents one memory or input/output (I/O) operation from starting until the previous memory or I/O operation completed. This instruction is needed as I/O controllers on the system bus require that accesses follow a particular order, while the CPU reorders accesses to optimize memory bandwidth usage.
  
  ## Where the name comes from
  
  Notice the pun in the name; the old children's song goes "Old MacDonald had a farm, E-I-E-I-O!". In the book Expert C Programming, Peter van der Linden comments that this instruction is "Probably designed by some old farmer named McDonald" and "There’s nothing wrong with well-placed whimsy."
  
  