×

Tracking memory accesses when invalidating effective address to real address translations

  • US 9,727,483 B2
  • Filed: 06/01/2015
  • Issued: 08/08/2017
  • Est. Priority Date: 12/19/2014
  • Status: Active Grant
First Claim
Patent Images

1. A method, implemented in a computing system having both a memory management unit with a translation lookaside buffer (TLB) and a central processing unit (CPU) with an effective address to real address translation (ERAT) unit having an ERAT table and corresponding set of counters, for tracking address translation entries in the ERAT table, the method comprising:

  • storing, by the ERAT unit, a set of effective address to real address translations in entries of the ERAT table, wherein the ERAT table includes an entry for each effective address to real address translation in the set of effective address to real address translations and the corresponding set of counters includes a counter corresponding to each ERAT entry;

    receiving, by the ERAT unit, a request to execute a memory operation;

    determining, by the ERAT unit, whether the request to execute a memory operation is one of a memory access request and an address invalidation request, whereinthe memory access request is received from an execution unit within the CPU to cause the ERAT unit to provide a first effective address to real address translation to a first memory access entity (MAE) of a set of two or more memory access entities (MAEs) in the CPU, the request including a first identifier of the first MAE, andthe address invalidation request is received from a memory management unit (MMU) external to the CPU to cause the ERAT unit to stop using a second effective address to real address translation stored in the ERAT table to translate effective addresses;

    determining, in response to determining that the request to execute a memory operation is a memory access request, that the first effective address to real address translation is stored in the ERAT table in a first ERAT table entry having a first ERAT table index;

    storing, by the ERAT unit, the first ERAT table index in a first tracking array entry of a tracking array having entries with indexes corresponding to each identifier of each MAE in the set of two or more MAEs, wherein the first tracking array entry has an index corresponding to the first identifier;

    incrementing, by the ERAT unit, a first counter associated with the first ERAT table entry;

    receiving, by the ERAT unit from a second MAE, an indication that the second MAE has completed a memory access using a third effective to real address translation, the indication including a second identifier of the second MAE;

    retrieving, by the ERAT unit from the tracking array using the second identifier, a second ERAT table index corresponding to a second ERAT table entry providing the third effective to real address translation; and

    identifying, by the ERAT unit using the second ERAT table index, a second counter associated with the second ERAT table entry and decrementing the second counter.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×