Method and apparatus for TLB shoot-down in a heterogeneous computing system supporting shared virtual memory

US9916257B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9916257-B2
Application numberUS-201113191327-A
CountryUS
Kind codeB2
Filing dateJul 26, 2011
Priority dateJul 26, 2011
Publication dateMar 13, 2018
Grant dateMar 13, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. 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 count and a lazy-invalidation field, 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. 2. The apparatus of claim 1 wherein the atomic modification of the first PASID state comprises: reading the first PASID state entry including the lazy-invalidate state; incrementing an active reference count if the first PASID state update request indicates an activation update; and clearing the lazy-invalidate state if the first PASID state update request indicates an activation update. 3. The apparatus of claim 1 wherein the memory management unit responsive at least in part to the lazy-invalidation state read is further to: invalidate a TLB virtual address translation entry corresponding to the first PASID state entry; and set a synchronization flag for the PASID state update response sent to the device. 4. The apparatus of claim 1 wherein the memory management unit is further to: process a TLB shoot-down from an operating system in the multi-core system. 5. The apparatus of claim 4 wherein processing a TLB shoot-down comprises: invalidating a TLB virtual address translation entry. 6. The apparatus of claim 4 wherein processing a TLB shoot-down comprises: causing a device TLB entry of one of the plurality of heterogeneous devices to be invalidated. 7. The apparatus of claim 4 wherein processing a TLB shoot-down comprises: reading a PASID state entry; and setting a lazy-invalidate field in the PASID state entry if an active reference count in the PASID state entry is zero. 8. The apparatus of claim 7 wherein processing a TLB shoot-down comprises: invalidating a TLB entry if the active reference count in the PASID state entry is not zero; and causing a device TLB entry of one of the plurality of heterogeneous devices to be invalidated if the active reference count in the PASID state entry is not zero. 9. The apparatus of claim 7 wherein setting a lazy-invalidate field in the PASID state entry is performed using a locked compare-and-exchange instruction. 10. 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 count and a lazy-invalidation field, 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. 11. The multi-core processor of claim 10 wherein the atomic modification of the first PASID state entry comprises: reading the first PASID state entry including the lazy-invalidate state; incrementing an active reference count if the first PASID state update request indicates an activation update; and clearing the lazy-invalidate state if the first PASID state update request indicates an activation update. 12. The multi-core processor of claim 10 wherein the memory management unit is further to process a TLB shoot-down from an operating system. 13. The multi-core processor of claim 12 wherein processing a TLB shoot-down comprises: reading a PASID state entry; and setting a lazy-invalidate field in the PASID state entry if an active reference count in the PASID state entry is zero. 14. The multi-core processor of claim 13 wherein processing a TLB shoot-down comprises: invalidating a TLB entry if the active reference count in the PASID state entry is not zero; and causing a device TLB entry of one of the plurality of heterogeneous devices to be invalidated if the active reference count in the PASID state entry is not zero. 15. The multi-core processor of claim 13 wherein setting a lazy-invalidate field in the PASID state entry is performed using a locked compare-and-exchange instruction. 16. 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 count and a lazy-invalidation field, 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. 17. The multi-core system of claim 16 wherein the memory management unit is further to: process a TLB shoot-down from an operating system in the multi-core system. 18. The multi-core system of claim 17 wherein processing a TLB shoot-down comprises: causing a device TLB entry of one of the plurality of heterogeneous devices to be invalidated. 19. The multi-core system of claim 17 wherein processing a TLB shoot-down comprises: reading a PASID state entry; and setting a lazy-invalidate field in the PASID state entry if an active reference count in the PASID state entry is zero. 20. The multi-core system of claim 19 wherein processing a TLB shoot-down comprises: invalidating a TLB entry if the active reference count in the PASID state entry is not zero; and causing a device TLB entry of one of the plurality of heterogeneous devices to be invalidated if the active reference count in the PASID state entry is not zero.

Assignees

Inventors

Classifications

  • using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] · CPC title

  • Invalidation · CPC title

  • Multiprocessor TLB consistency · CPC title

  • In peripheral interface, e.g. I/O adapter or channel · CPC title

  • Scalability · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9916257B2 cover?
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)…
Who is the assignee on this patent?
Sankaran Rajesh M, Koker Altug, Lantz Philip R, and 6 more
What technology area does this patent fall under?
Primary CPC classification G06F12/1027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 13 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).