Adjustable over-restrictive cache locking limit for improved overall performance

US9542325B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9542325-B2
Application numberUS-201615212899-A
CountryUS
Kind codeB2
Filing dateJul 18, 2016
Priority dateDec 23, 2014
Publication dateJan 10, 2017
Grant dateJan 10, 2017

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.

Disclosed is a multi-core processor that includes a processor core, a graphics core, and a cache controller. The cache controller receives a first request from an input-output (I/O) device to lock a first address that corresponds to a way in a first set of ways in a cache. The cache controller sends, to the I/O device, a rejection of the first request when the way in the first set is not lockable for the I/O device. The cache controller receives a second request from the I/O device to lock a second address that corresponds to a way in a second set of ways in the cache. The cache controller locks the way in the second set in response to the second request.

First claim

Opening claim text (preview).

What is claimed is: 1. A multi-core processor comprising: a processor core; a graphics core; and a cache controller coupled to the processor core and the graphics core, the cache controller to: receive a first request from an input-output (I/O) device to lock a first address that corresponds to a way in a first set of ways in a cache; send, to the I/O device, a rejection of the first request when the way in the first set is not lockable for the I/O device; receive a second request from the I/O device to lock a second address that corresponds to a way in a second set of ways in the cache; and lock the way in the second set in response to the second request. 2. The multi-core processor of claim 1 , wherein the cache is a set-associative cache that comprises the first set and the second set, wherein each of the first set and the second set comprises a plurality of lockable ways that each correspond to a set of memory addresses. 3. The multi-core processor of claim 1 , wherein the cache is a set-associative cache comprising a plurality of sets of ways. 4. The multi-core processor of claim 3 , wherein the cache controller is further to determine a lock limit to indicate a maximum number of lockable ways for each of the plurality of sets of ways. 5. The multi-core processor of claim 4 , wherein the cache controller is further to adjust the lock limit for each of the plurality of sets of ways. 6. The multi-core processor of claim 4 , wherein the cache controller is further to increment a rejection counter in response to determining that the way in the first set is not lockable for the I/O device. 7. The multi-core processor of claim 6 , wherein the cache controller is further to: determine that the rejection counter is above a rejection threshold in response to sending the rejection of the first request; determine that the lock limit is below a maximum lock value; and increment the lock limit. 8. The multi-core processor of claim 4 , wherein the cache controller is further to: send a message to the I/O device that indicates that the second request has been granted; increment a grant counter when the second request has been granted; and decrement the lock limit when the grant counter exceeds a grant threshold. 9. The multi-core processor of claim 1 , wherein the cache controller is further to: send a recommendation in the rejection of the first request for the I/O device to cancel the lock of the first address and to send the second request for a replacement address; and receive an indication from the I/O device to cancel the lock of the first address in connection with receipt of the second request. 10. A system comprising: main memory; an input-output (I/O) device; a cache; and a processor coupled to the cache, the I/O device, and the main memory, the processor comprising a cache controller to: receive a first request from the I/O device to lock a first address that corresponds to a first way in the cache; determine that the first way in the cache is not lockable for the I/O device; send, to the I/O device, a rejection of the first request; receive a second request from the I/O device to lock a second address that corresponds to a second way in the cache; and lock the second way in the cache in response to the second request. 11. The system of claim 10 , wherein the cache is a set-associative cache that comprises a plurality of lockable ways that each correspond to a set of memory addresses, wherein the plurality of lockable ways comprises the first way and the second way. 12. The system of claim 11 , wherein the set-associative cache comprises a plurality of sets of ways, wherein a first set of ways comprises the first way, and wherein a second set of ways comprises the second way. 13. The system of claim 12 , the cache controller further to determine a lock limit to indicate a maximum number of lockable ways for each of the plurality of lockable ways that may be locked for the device. 14. The system of claim 13 , wherein the lock limit is a same dynamically adjustable value for each of the plurality of sets of ways. 15. The system of claim 13 , the cache controller further to increment a reject counter in response to determining that the first way in the cache is not lockable for the device. 16. The system of claim 15 , the cache controller further to: determine that the reject counter is above a rejection threshold in response to sending the rejection of the first request; determine that the lock limit is below a maximum lock value; and increment the lock limit. 17. The system of claim 13 , wherein when locking the second way in the cache in response to the second request, the cache controller is to: send a message to the device that indicates that the second request has been granted; and increment a grant counter, wherein the cache controller is further to decrement the lock limit when the grant counter exceeds a grant threshold. 18. The system of claim 10 , wherein when sending, to the device, the rejection of the first request, the cache controller is to: lock the first way of the cache, wherein the rejection to the request comprises a recommendation for the device to cancel the lock and to send the second request; and receive an indication from the device to cancel the lock of the first way and the second request. 19. A system comprising: main memory; an input-output (I/O) device; a cache; and a processor coupled to the cache, the I/O device, and the main memory, the processor comprising a cache controller to: receive a first request from an input-output (I/O) device to lock a first address that corresponds to a way in a first set of ways in the cache; send, to the I/O device, a rejection of the first request when the way in the first set is not lockable for the I/O device; receive a second request from the I/O device to lock a second address that corresponds to a way in a second set of ways in the cache; and lock the way in the second set in response to the second request. 20. The system of claim 19 , wherein the cache is a set-associative cache that comprises the first set and the second set, wherein each of the first set and the second set comprises a plurality of lockable ways that each correspond to a set of memory addresses.

Assignees

Inventors

Classifications

  • Way prediction in set-associative cache · CPC title

  • Key-lock mechanism · CPC title

  • Security improvement · CPC title

  • Way prediction in set-associative cache · CPC title

  • using pseudo-associative means, e.g. set-associative or hashing · 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 US9542325B2 cover?
Disclosed is a multi-core processor that includes a processor core, a graphics core, and a cache controller. The cache controller receives a first request from an input-output (I/O) device to lock a first address that corresponds to a way in a first set of ways in a cache. The cache controller sends, to the I/O device, a rejection of the first request when the way in the first set is not lockab…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0864. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 10 2017 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).