IP Library Granted Patent US 7,921,276
Granted Patent B2
US 7,921,276 · App. 11/726,316 · Granted Apr 5, 2011

Applying quality of service (QoS) to a translation lookaside buffer (TLB)

Assignee: Intel Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,921,276
App. No.
11/726,316
Granted
Apr 5, 2011
Kind
B2
Abstract

In one embodiment, the present invention includes a translation lookaside buffer (TLB) having storage locations each including a priority indicator field to store a priority level associated with an agent that requested storage of the data in the TLB, and an identifier field to store an identifier of the agent, where the TLB is apportioned according to a plurality of priority levels. Other embodiments are described and claimed.

Claims (22)

1. A method comprising:

associating a first priority indicator with data stored in an entry of a translation lookaside buffer (TLB) by a first virtual machine (VM) corresponding to a first virtual machine monitor (VMM) having a first priority level to indicate the first priority level of the first VM, associating a first identifier of the first VM with the data in the entry, and storing the first priority indicator and the first identifier in the entry;

updating a count value of a counter associated with the first priority level and indicative of a number of entries in the TLB having the first priority level, wherein the TLB includes the counter and other counters each associated with a different priority level;

determining whether to replace a data element having the first priority level based at least in part on the count value; and

selecting the data element having the first priority level for replacement if the count value is over a threshold for the first priority level, the threshold stored in a threshold storage of the TLB including a plurality of thresholds, each for one of the priority levels, wherein a sum of the thresholds can exceed a physical size of TLB.

2. The method of claim 1 , further comprising selecting a data element associated with a second priority indicator for replacement, wherein a count value of a second counter indicative of a number of entries in the TLB having a second priority level associated with the second priority indicator exceeds a corresponding threshold for the second priority level stored in the threshold storage, and the count value associated with the first priority indicator is below a corresponding threshold.

3. The method of claim 1 , further comprising receiving the first priority indicator and the first identifier in the TLB from the first VMM.

4. The method of claim 3 , further comprising enabling a user to assign the first priority level to the first VM, wherein the first priority level is lower than a priority level associated with the first VMM.

5. The method of claim 1 , further comprising associating a second priority indicator with data stored by a second VM corresponding to the first VMM having a second priority level in an entry of the TLB, wherein the first priority level is higher than the second priority level, the first VM corresponding to a non-input/output application and the second VM corresponding to an input/output application.

6. The method of claim 1 , wherein a maximum value for one of the thresholds corresponds the physical size of the TLB.

7. An apparatus comprising:

a translation lookaside buffer (TLB) having a plurality of storage locations, each of the storage locations having a priority indicator field to store a priority level associated with an agent that requested storage of data in the TLB, and an identifier field to store an identifier of the agent, wherein the TLB is apportioned according to a plurality of priority levels, the TLB further including a counter array including a plurality of priority level counters each associated with a different priority level to store a count of the number of storage locations in the TLB having data of the associated priority level, and a threshold storage to store threshold values for each of the priority levels respectively, wherein a sum of the threshold values can exceed a physical size of the TLB.

8. The apparatus of claim 7 , wherein the TLB is to select a storage location for replacement based at least in part on the value of the priority level counter associated with the priority level of the storage location to be replaced.

9. The apparatus of claim 8 , wherein the TLB is to determine if one of the plurality of priority level counters associated with a first priority level exceeds a threshold value for the first priority level and to select a data element of the first priority level for eviction if the priority level counter associated with the first priority level exceeds the threshold value.

10. The apparatus of claim 7 , wherein a first agent is to be assigned a first priority level and a second agent is to be assigned a second priority level, wherein the first agent is to cause greater evictions from the TLB than the second agent, and wherein the threshold value for the first priority level is lower than the threshold value for the second priority level.

11. The apparatus of claim 10 , wherein an operating system (OS) is to provide the first priority level to the first agent, the first agent having a first application space identifier, and the second priority level to the second agent, the second agent having a second application space identifier.

12. The apparatus of claim 7 , further comprising a virtual machine monitor (VMM) coupled to the TLB to provide the priority level associated with the agent that requested storage of the data and the identifier of the agent, wherein the TLB is to receive the priority level from a platform quality of service register (PQR).

13. The apparatus of claim 12 , wherein the VMM is to provide an interface between a plurality of VMs and the TLB, wherein at least a first VM is of a first priority level and a second VM is of a second priority level, wherein the first VM is to perform an input/output (IO) application and the second VM is to perform a non-IO application, wherein the IO application causes more TLB evictions than the non-IO application.

14. The apparatus of claim 13 , wherein the apparatus further comprises a multiprocessor system including a processor core having the TLB and the PQR.

15. A system comprising:

a processor including at least one core, the core including a translation lookaside buffer (TLB) having a plurality of storage locations, each of the storage locations having a priority indicator field to store a priority level associated with an agent that requested storage of data in the TLB and an identifier field to store an identifier of the agent, wherein the TLB is apportioned according to a plurality of priority levels, the TLB further including a counter array including a plurality of priority level counters each associated with a different priority level to store a count of the number of storage locations in the TLB having data of the associated priority level, and a threshold storage to store threshold values for each of the priority levels, wherein the TLB is to evict an entry of a first priority level if only the first priority level counter exceeds the first threshold value, and otherwise the TLB is to evict an entry of a lowest priority level if more than one priority level counter exceeds the corresponding threshold level; and

a virtual machine monitor (VMM) coupled to the processor to provide the priority level and the identifier for the agent that requested storage of the data, wherein the TLB is to receive the priority level from a platform quality of service register (PQR), and wherein the VMM is to provide an interface between a plurality of virtual machines (VMs) and the processor, wherein at least a first VM is of a first priority level and a second VM is of a second priority level, each priority level corresponding to a percentage of TLB resources to which the corresponding agent is allowed access, and a sum of percentage of TLB resources for a plurality of the agents can exceed a physical size of the TLB.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2009
From: ILLIKKAL, RAMESH; KANNAN, HARI; IYER, RAVISHANKAR; NEWELL, DONALD; MOSES, JAIDEEP; ZHAO, LI
To: INTEL CORPORATION
Reel/Frame 023533/0866 →
Continuity (1)
Related Publication 20080235487A1 · Sep 25, 2008