A system including a direct virtual memory access engine configured to
request that data is stored in a memory, wherein a request for the data
includes a I/O virtual address, a mapping table configured to store at
least one entry includes a virtual-to-physical address mapping, a cache
configured to store at least one tracking data structure associated with
the at least one entry, and an input/output memory management unit
storing the mapping table, operatively connected to the cache and
configured to provide a physical address corresponding to the I/O virtual
address to the direct virtual memory access engine, wherein the
virtual-to-physical address mapping is generated prior to the direct
virtual memory access engine requesting that data be stored, wherein the
at least one entry and the at least one tracking structure persist for at
least two direct memory address requests.