US 12,259,822 B2
GPU virtualisation
Dave Roberts, Saratoga, CA (US); Mario Sopena Novales, Hertfordshire (GB); and John W. Howson, Hertfordshire (GB)
Assigned to Imagination Technologies Limited, Kings Langley (GB)
Filed by Imagination Technologies Limited, Kings Langley (GB)
Filed on Apr. 27, 2021, as Appl. No. 17/242,028.
Application 17/242,028 is a continuation of application No. 17/013,720, filed on Sep. 7, 2020, granted, now 11,016,906.
Application 17/013,720 is a continuation of application No. 16/442,138, filed on Jun. 14, 2019, granted, now 10,802,985, issued on Oct. 13, 2020.
Application 16/442,138 is a continuation of application No. 15/367,370, filed on Dec. 2, 2016, granted, now 10,366,012, issued on Jul. 30, 2019.
Claims priority of application No. 1521250 (GB), filed on Dec. 2, 2015.
Prior Publication US 2021/0263857 A1, Aug. 26, 2021
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 12/00 (2006.01); G06F 9/455 (2018.01); G06F 12/1009 (2016.01); G06F 13/16 (2006.01); G06T 1/20 (2006.01); G06T 1/60 (2006.01)
CPC G06F 12/1009 (2013.01) [G06F 9/45558 (2013.01); G06F 13/16 (2013.01); G06T 1/20 (2013.01); G06T 1/60 (2013.01); G06F 2009/45583 (2013.01); G06F 2212/1024 (2013.01); G06F 2212/1052 (2013.01); G06F 2212/151 (2013.01); G06F 2212/152 (2013.01); G06F 2212/651 (2013.01); G06F 2212/657 (2013.01)] 17 Claims
OG exemplary drawing
 
1. 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, wherein transactions between the GPU and the virtual machines 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; and
a root memory management unit configured by the hypervisor and arranged to store in a portion of a memory resource a translation between guest physical addresses used by the GPU memory management unit and actual physical memory addresses based on the identifier for the virtual machine assigned to the transaction, 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 one of the plurality of virtual machines enables a transaction without hypervisor intervention via a kick register which triggers an event in an embedded microprocessor within the GPU and a microprocessor in the GPU is configured to run a task in response to a virtual machine writing, by issuing a write command, to the kick register in its assigned portion of the memory resource, wherein each of the plurality of virtual machines uses a same virtual and quest physical address for the kick register and wherein the quest physical address is translated to the physical address for the kick register based on the virtual machine issuing the write command.