Patent classifications
G06F12/0808
CONTENT CACHE INVALIDATION USING CACHE TAGS
One or more computing devices, systems, and/or methods for content cache invalidation using cache tags are provided. A first proxy hop may receive a request from a client device for a content object originating from a content source. A cache tagging script is executed to add a query parameter to the request to create a modified request. The query parameter specifies a cache tag version for the content object. The modified request is transmitted through one or more subsequent proxy hops to the content source to retrieve the content object. The content object, tagged with a cache tag specifying the cache tag version, is cached as a cached content object within a cache. The cache tag is associated with an expiration timestamp after which the cached content object is designated to be invalid.
CONTENT CACHE INVALIDATION USING CACHE TAGS
One or more computing devices, systems, and/or methods for content cache invalidation using cache tags are provided. A first proxy hop may receive a request from a client device for a content object originating from a content source. A cache tagging script is executed to add a query parameter to the request to create a modified request. The query parameter specifies a cache tag version for the content object. The modified request is transmitted through one or more subsequent proxy hops to the content source to retrieve the content object. The content object, tagged with a cache tag specifying the cache tag version, is cached as a cached content object within a cache. The cache tag is associated with an expiration timestamp after which the cached content object is designated to be invalid.
Gathering translation entry invalidation requests in a data processing system
An arbiter gathers translation invalidation requests assigned to state machines of a lower-level cache into a set for joint handling in a processor core. The gathering includes selection of one of the set of gathered translation invalidation requests as an end-of-sequence (EOS) request. The arbiter issues to the processor core a sequence of the gathered translation invalidation requests terminating with the EOS request. Based on receipt of each of the gathered requests, the processor core invalidates any translation entries providing translation for the addresses specified by the translation invalidation requests and marks memory-referent requests dependent on the invalidated translation entries. Based on receipt of the EOS request and in response to all of the marked memory-referent requests draining from the processor core, the processor core issues a completion request to the lower-level cache indicating completion of servicing by the processor core of the set of gathered translation invalidation requests.
Marking in-flight requests affected by translation entry invalidation in a data processing system
A memory-referent instruction is executed to calculate a target effective address (EA) of a corresponding memory-referent request. An array entry in an upper level cache is allocated, and the EA is specified in a corresponding EA directory entry. While in-flight, the memory-referent request is buffered in a queue in association with a pointer to the entry in the EA directory. Based on receiving a translation invalidation request requesting invalidation of an address translation in a translation structure, the processor core walks the EA directory, determines the EA in the entry matches an address range specified by the translation invalidation request, and, based on the match, precisely marks the memory-referent request using the pointer to the EA directory entry. Based on the marking, the translation invalidation request is permitted to complete with reference to the processor core only after the memory-referent request has drained from the processing unit.
Marking in-flight requests affected by translation entry invalidation in a data processing system
A memory-referent instruction is executed to calculate a target effective address (EA) of a corresponding memory-referent request. An array entry in an upper level cache is allocated, and the EA is specified in a corresponding EA directory entry. While in-flight, the memory-referent request is buffered in a queue in association with a pointer to the entry in the EA directory. Based on receiving a translation invalidation request requesting invalidation of an address translation in a translation structure, the processor core walks the EA directory, determines the EA in the entry matches an address range specified by the translation invalidation request, and, based on the match, precisely marks the memory-referent request using the pointer to the EA directory entry. Based on the marking, the translation invalidation request is permitted to complete with reference to the processor core only after the memory-referent request has drained from the processing unit.
Data compression and encryption based on translation lookaside buffer evictions
A processing system selectively compresses cache lines at a cache or at a memory or encrypts cache lines at the memory based on evictions of entries mapping virtual-to-physical address translations from a translation lookaside buffer (TLB). Upon eviction of a TLB entry, the processing system identifies cache lines corresponding to the physical addresses of the evicted TLB entry and selectively compresses the cache lines to increase the effective storage capacity of the processing system or encrypts the cache lines to protect against vulnerabilities.
Memory management unit with address translation cache
The present disclosure advantageously provides a memory management unit and methods for invalidating cache lines in address translation caches. The memory management unit has one or more address translation caches, and each address translation cache has a plurality of cache lines. The memory management unit receives transactions from a source of transactions. The transactions include, inter alia, memory transactions and a set-aside translation transaction. The memory transactions include at least a first memory transaction and a last memory transaction, and each memory transaction includes the same virtual memory address and the same translation context identifier. The set-aside translation transaction also includes the same virtual memory address and the same translation context identifier. In response to receiving the set-aside translation transaction, the memory management unit deallocates each cache line that stores an address translation for the same virtual memory address and the same translation context identifier.
System and Method for Implementing Strong Load Ordering in a Processor Using a Circular Ordering Ring
A system and corresponding method enforce strong load ordering in a processor. The system comprises an ordering ring that stores entries corresponding to in-flight memory instructions associated with a program order, scanning logic, and recovery logic. The scanning logic scans the ordering ring in response to execution or completion of a given load instruction of the in-flight memory instructions and detects an ordering violation in an event at least one entry of the entries indicates that a younger load instruction has completed and is associated with an invalidated cache line. In response to the ordering violation, the recovery logic allows the given load instruction to complete, flushes the younger load instruction, and restarts execution of the processor after the given load instruction in the program order, causing data returned by the given and younger load instructions to be returned consistent with execution according to the program order to satisfy strong load ordering.
WEAK CACHE LINE INVALIDATION REQUESTS FOR SPECULATIVELY EXECUTING INSTRUCTIONS
Techniques for invalidating cache lines are provided. The techniques include issuing, to a first level of a memory hierarchy, a weak exclusive read request for a speculatively executing store instruction; determining whether to invalidate one or more cache lines associated with the store instruction in one or more memories; and issuing the weak invalidation request to additional levels of the memory hierarchy.
WEAK CACHE LINE INVALIDATION REQUESTS FOR SPECULATIVELY EXECUTING INSTRUCTIONS
Techniques for invalidating cache lines are provided. The techniques include issuing, to a first level of a memory hierarchy, a weak exclusive read request for a speculatively executing store instruction; determining whether to invalidate one or more cache lines associated with the store instruction in one or more memories; and issuing the weak invalidation request to additional levels of the memory hierarchy.