In an embodiment, an input/output memory management unit (IOMMU) is
configured to receive a completion wait command defined to ensure that
one or more preceding invalidation commands are completed by the IOMMU
prior to a completion of the completion wait command. The IOMMU is
configured to respond to the completion wait command by delaying
completion of the completion wait command until: (1) a read response
corresponding to each outstanding memory read operation that depends on a
translation entry that is invalidated by the preceding invalidation
commands is received; and (2) the control unit transmits one or more
operations upstream to ensure that each memory write operation that
depends on the translation table entry that is invalidated by the
preceding invalidation commands has at least reached a bridge to a
coherent fabric in the computer system and has become visible to the
system.