1. An input/output (I/O) memory management unit (IOMMU) configured to control requests by an I/O device to a memory, the IOMMU comprising: control logic configured to perform a two-level guest translation to translate an address associated with an I/O device-generated request using translation data stored in the system memory; wherein the translation data includes: one or more device table entries in a device table, wherein the device table entry for a given request is selected based upon a device identifier; and a first set of page tables including a set of guest page tables and a set of nested page tables, wherein a selected device table entry for a given request includes a pointer to the set of guest translation tables, and wherein a guest page table includes a pointer to the set of nested page tables.