METHOD AND APPARATUS FOR TLB SHOOT-DOWN IN A HETEROGENEOUS COMPUTING SYSTEM SUPPORTING SHARED VIRTUAL MEMORY
First Claim
1. A method for efficient TLB shoot-downs in a multi-core system with heterogeneous devices sharing virtual memory, the method comprising:
- receiving one or more Process Address Space Identifier (PASID) state update requests from one or more respective requesting devices of a plurality of heterogeneous devices in the multi-core system;
performing an atomic modification of a PASID state corresponding to a first of the one or more PASID state update requests;
performing a lazy invalidation check for the corresponding PASID state; and
sending a PASID state update response to a requesting device corresponding to said first of the one or more PASID state update requests.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus are disclosed for efficient TLB (translation look-aside buffer) shoot-downs for heterogeneous devices sharing virtual memory in a multi-core system. Embodiments of an apparatus for efficient TLB shoot-downs may include a TLB to store virtual address translation entries, and a memory management unit, coupled with the TLB, to maintain PASID (process address space identifier) state entries corresponding to the virtual address translation entries. The PASID state entries may include an active reference state and a lazy-invalidation state. The memory management unit may perform atomic modification of PASID state entries responsive to receiving PASID state update requests from devices in the multi-core system and read the lazy-invalidation state of the PASID state entries. The memory management unit may send PASID state update responses to the devices to synchronize TLB entries prior to activation responsive to the respective lazy-invalidation state.
-
Citations
30 Claims
-
1. A method for efficient TLB shoot-downs in a multi-core system with heterogeneous devices sharing virtual memory, the method comprising:
-
receiving one or more Process Address Space Identifier (PASID) state update requests from one or more respective requesting devices of a plurality of heterogeneous devices in the multi-core system; performing an atomic modification of a PASID state corresponding to a first of the one or more PASID state update requests; performing a lazy invalidation check for the corresponding PASID state; and sending a PASID state update response to a requesting device corresponding to said first of the one or more PASID state update requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus comprising:
-
a TLB to store a plurality of virtual address translation entries; and a memory management unit, coupled with the TLB, to maintain PASID state entries corresponding to a portion of the virtual address translation entries, each of said PASID state entries including an active reference state and a lazy-invalidation state, said memory management unit to perform an atomic modification of a first PASID state entry responsive to receiving a first PASID state update request from a device of a plurality of heterogeneous devices in a multi-core system and to read the lazy-invalidation state of the first PASID state entry, the memory management unit to send a PASID state update response to the device to synchronize a device TLB entry prior to activation responsive at least in part to the lazy-invalidation state read. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A multi-core processor comprising:
-
a first plurality of homogeneous processing cores; a heterogeneous processing device; a TLB to store a plurality of virtual address translation entries; and a memory management unit, coupled with the TLB, to maintain PASID state entries corresponding to a portion of the virtual address translation entries, each of said PASID state entries including an active reference state and a lazy-invalidation state, said memory management unit to perform an atomic modification of a first PASID state entry responsive to receiving a first PASID state update request from a device of a plurality of heterogeneous devices in the multi-core processor and to read the lazy-invalidation state of the first PASID state entry, the memory management unit to send a PASID state update response to the device to synchronize a device TLB entry prior to activation responsive at least in part to the lazy-invalidation state read. - View Dependent Claims (21, 22, 23, 24, 25)
-
-
26. A multi-core system comprising:
-
a memory to store a plurality of page tables containing virtual address translation entries; a first plurality of homogeneous processing cores; a heterogeneous processing device; a TLB to store a plurality of the virtual address translation entries; and a memory management unit, coupled with the TLB, to maintain PASID state entries corresponding to a portion of the virtual address translation entries, each of said PASID state entries including an active reference state and a lazy-invalidation state, said memory management unit to perform an atomic modification of a first PASID state entry responsive to receiving a first PASID state update request from a device of a plurality of heterogeneous devices in the multi-core system and to read the lazy-invalidation state of the first PASID state entry, the memory management unit to send a PASID state update response to the device to synchronize a device TLB entry prior to activation responsive at least in part to the lazy-invalidation state read. - View Dependent Claims (27, 28, 29, 30)
-
Specification