Allocation of a buffer located in system memory into a cache memory
US-11893251-B2 · Feb 6, 2024 · US
US10635591B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10635591-B1 |
| Application number | US-201816210500-A |
| Country | US |
| Kind code | B1 |
| Filing date | Dec 5, 2018 |
| Priority date | Dec 5, 2018 |
| Publication date | Apr 28, 2020 |
| Grant date | Apr 28, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods selectively filter, buffer, and process cache coherency probes. A processor includes a probe buffering unit that includes a cache coherency probe buffer. The probe buffering unit receives cache coherency probes and memory access requests for a cache. The probe buffering unit identifies and discards any of the probes that are directed to a memory block that is not cached in the cache, and buffers at least a subset of the remaining probes in the probe buffer. The probe buffering unit submits to the cache, in descending order of priority, one or more of: any buffered probes that are directed to the memory block to which a current memory access request is also directed; any current memory access requests that are directed to a memory block to which there is not a buffered probe also directed; and any buffered probes when there is not a current memory access request.
Opening claim text (preview).
What is claimed is: 1. A method, carried out by one or more processors, the method comprising: receiving, at a probe buffering unit of a processor, cache coherency probes and memory access requests for a cache of the processor, wherein the cache coherency probes and the memory access requests are directed to respective memory blocks of a memory; the probe buffering unit identifying and discarding any of the cache coherency probes that are directed to a memory block that is not cached in the cache; the probe buffering unit buffering at least a subset of the remaining cache coherency probes in a cache coherency probe buffer of the probe buffering unit; and the probe buffering unit submitting to the cache, in descending order of priority, one or more of: any buffered cache coherency probes that are directed to the memory block to which a current memory access request is also directed; any current memory access requests that are directed to a memory block to which there is not a buffered cache coherency probe also directed; and any buffered cache coherency probes when there is not a current memory access request. 2. The method of claim 1 , wherein the submitting step comprises iteratively: polling for a current memory access request at a first input of a selection circuit of the probe buffering unit and for a buffered cache coherency probe at a second input of the selection circuit; if the polling indicates the presence of a current memory access request at the first input, then picking the current memory access request from the first input for processing; and if the polling does not indicate the presence of a current memory access request at the first input but does indicate the presence of a buffered cache coherency probe at the second input, then picking the present buffered cache coherency probe from the second input for processing. 3. The method of claim 2 , wherein processing the current memory access request comprises: if the current memory access request is directed to a memory block that is possibly cached in the cache, then: if there is a buffered cache coherency probe that is directed to the memory block to which the current memory access request is directed, then: discarding the current memory access request; and transmitting that buffered cache coherency probe to the cache; and if there is not a buffered cache coherency probe that is directed to the memory block to which the current memory access request is directed, then transmitting the current memory access request to the cache; and if the current memory access request is directed to a memory block that is not cached in any of the cache lines, then transmitting the current memory access request to the cache. 4. The method of claim 2 , wherein processing the present buffered cache coherency probe comprises transmitting the present buffered cache coherency probe from the selection circuit to the cache. 5. The method of claim 2 , wherein processing the present buffered cache coherency probe comprises: if the present buffered cache coherency probe is directed to a memory block that is possibly cached in the cache, then transmitting the present buffered cache coherency probe to the cache; and if the present buffered cache coherency probe is directed to a memory block that is not cached in the cache, then discarding the present buffered cache coherency probe. 6. The method of claim 1 , further comprising operating a memory access request comparator to determine whether there is a buffered cache coherency probe that is directed to the memory block to which a current memory access request is directed. 7. The method of claim 1 , further comprising: upon identification of a most recent cache coherency probe that is directed to a memory block that is possibly cached in the cache, detecting that the cache coherency probe buffer is full, and responsively submitting directly to the cache either the most recent cache coherency probe or an already buffered cache coherency probe for application by the cache of the directly submitted cache coherency probe to any storage segments of the cache that possibly contain the memory block to which the directly submitted cache coherency probe is directed. 8. The method of claim 1 , further comprising operating a microtag comparator to determine whether a cache coherency probe is directed to a memory block that is possibly cached in the cache or instead to a memory block that is not cached in the cache. 9. A processor comprising: a memory; a cache for caching memory blocks of the memory; and a probe buffering unit that comprises a cache coherency probe buffer, wherein the probe buffering unit is configured to: receive cache coherency probes and memory access requests for the cache, wherein the cache coherency probes and the memory access requests are directed to respective memory blocks of the memory; identify and discard any of the cache coherency probes that are directed to a memory block that is not cached in the cache; buffer at least a subset of the remaining cache coherency probes in the cache coherency probe buffer; and submit to the cache, in descending order of priority, one or more of: any buffered cache coherency probes that are directed to the memory block to which a current memory access request is also directed; any current memory access requests that are directed to a memory block to which there is not a buffered cache coherency probe also directed; and any buffered cache coherency probes when there is not a current memory access request. 10. The processor of claim 9 , wherein the probe buffering unit further comprises: a selection circuit having a first selection circuit input and a second selection circuit input; and a selection logic circuit having a first selection logic circuit input and a second selection logic circuit input, wherein the probe buffering unit is configured to: receive, into both the first selection circuit input and the first selection logic circuit input, a memory access request flow comprising the received memory access requests; receive, into both the second selection circuit input and the second selection logic circuit input, a second flow comprising the buffered cache coherency probes; and carry out the submitting step at least in part by operating the selection logic circuit to iteratively: poll for a current memory access request at the first selection logic circuit input and for a buffered cache coherency probe at the second selection logic circuit input; if the polling indicates the presence of a current memory access request at the first selection logic circuit input, then control the selection circuit to pick the current memory access request from the first selection circuit input for processing; and if the polling does not indicate the presence of a current memory access request at the first selection logic circuit input but does indicate the presence of a buffered cache coherency probe at the second selection logic circuit input, then control the selection circuit to pick the present buffered cache coherency probe from the second selection circuit input for processing. 11. The processor of claim 10 , wherein: the probe buffering unit further comprises a microtag (μtag) comparator and a memory access request comparator; and the probe buffering unit is further configured to process the current memory access request by: operating the μtag comparator to determine whether the current memory access request is directed to a memory block that is possibly cached in the cache or instead to a memory block that is not cached in the cache; if the current memory access request is directed to a memory block that is po
with multilevel cache hierarchies · CPC title
for main memory peripheral accesses (e.g. I/O or DMA) · CPC title
where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00) · CPC title
in combination with broadcast means (e.g. for invalidation or updating) · CPC title
Performance improvement · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.