A graphics processor unit, GPU, arranged to operate with a central processing unit, CPU, running a plurality of virtual machines under the control of a hypervisor that has allocated an identifier to each of the plurality of virtual machines, wherein transactions output from the CPU are assigned an identifier for the virtual machine to which it relates, the GPU comprising: a GPU memory management unit arranged to translate between virtual memory addresses used by the graphics processor unit and guest physical addresses based on the identifier for the virtual machine; and a root memory management unit configured by the hypervisor and arranged to translate between guest physical addresses used by the GPU memory management unit and actual physical memory addresses by translating addresses in a transaction based on the identifier with which the transaction is tagged; and wherein access to one or more portions of a memory resource is controlled as a consequence of the address translations performed by the root memory management unit; wherein the memory resource comprises a plurality of GPU registers and each portion of the memory resource comprises one or more GPU registers and is assigned to one of the virtual machines, and wherein the GPU registers have a corresponding actual physical memory address and access to the GPU registers by a virtual machine is controlled as a consequence of the address translations performed by the root memory management unit, wherein each transaction is a transaction on a system bus which interconnects the CPU, GPU and other peripherals; wherein the assigned identifier in combination with the root memory management unit enables mediation of some or all transactions without hypervisor intervention between the virtual machine and the GPU; wherein one GPU register in each portion of the memory resource comprises a kick register and wherein a microprocessor in the GPU is configured to run a task in response to a virtual machine writing to the kick register; and wherein the mapping between the virtual and guest physical addresses for the kick registers is set up as part of an initialization phase. a GPU memory management unit arranged to translate between virtual memory addresses used by the graphics processor unit and guest physical addresses based on the identifier for the virtual machine; and a root memory management unit configured by the hypervisor and arranged to translate between guest physical addresses used by the GPU memory management unit and actual physical memory addresses by translating addresses in a transaction based on the identifier with which the transaction is tagged; and wherein access to one or more portions of a memory resource is controlled as a consequence of the address translations performed by the root memory management unit; wherein the memory resource comprises a plurality of GPU registers and each portion of the memory resource comprises one or more GPU registers and is assigned to one of the virtual machines, and wherein the GPU registers have a corresponding actual physical memory address and access to the GPU registers by a virtual machine is controlled as a consequence of the address translations performed by the root memory management unit, wherein each transaction is a transaction on a system bus which interconnects the CPU, GPU and other peripherals; wherein the assigned identifier in combination with the root memory management unit enables mediation of some or all transactions without hypervisor intervention between the virtual machine and the GPU; wherein one GPU register in each portion of the memory resource comprises a kick register and wherein a microprocessor in the GPU is configured to run a task in response to a virtual machine writing to the kick register; and wherein the mapping between the virtual and guest physical addresses for the kick registers is set up as part of an initialization phase. <EOS>