Prefetch protocol for transactional memory

US10474576B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10474576-B2
Application numberUS-201514936798-A
CountryUS
Kind codeB2
Filing dateNov 10, 2015
Priority dateNov 10, 2015
Publication dateNov 12, 2019
Grant dateNov 12, 2019

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.

Enabling a prefetch request to be controlled in response to conditions in a receiver of the prefetch request and to conditions in a source of the prefetch request. One or more processors identify, based on a prefetch tag, a prefetch request that is associated with a prefetch instruction that is executed by a remote processor. The one or more processors generate the prefetch request in a remote processor according to a prefetch protocol. The prefetch request includes i) a description of at least one prefetch request operation and ii) a prefetch request information. A local processor, of the one or more processors, receives the prefetch request from the remote processor.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer program product to enable a prefetch request to be controlled in response to conditions in a receiver of the prefetch request and to conditions in a source of the prefetch request, the program instructions comprising: one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising: program instructions to identify, based on a prefetch tag, a prefetch request that is associated with a prefetch instruction that is executed by a remote processor; program instruction to determine a priority for processing the prefetch request based, at least in part, on a prefetch request information included in the prefetch request, wherein the prefetch request information indicates a priority associated with the source of the prefetch request; program instructions to determine whether the prefetch request conflicts with a memory access associated with an atomic transaction; program instructions to generate the prefetch request in a remote processor based on: (i) whether the prefetch request conflicts with the memory access associated with the atomic transaction, (ii) according to a prefetch protocol, wherein the prefetch request includes (a) a description of at least one prefetch request operation and (b) the prefetch request information, and (iii) a comparison of the priority for processing the prefetch request to a priority associated with the atomic transaction; and program instructions to receive, by a local processor, the prefetch request from the remote processor. 2. The computer program product of claim 1 , wherein the prefetch request is one of a read prefetch instruction or a write prefetch instruction. 3. The computer program product of claim 1 , further comprising: program instructions to execute the at least one prefetch request operation in the prefetch request in the local processor if the at least one prefetch request operation in the prefetch request does not conflict with a given atomic transaction in the local processor; and program instructions to perform at least one action in the local processor on the prefetch request in accordance with the prefetch protocol and the prefetch request information if the prefetch request conflicts with a given atomic transaction in the local processor. 4. The computer program product of claim 3 , further comprising: program instructions to notify the remote processor of the at least one action that was taken as part of a response to a read request. 5. The computer program product of claim 3 , wherein the at least one action includes one or more of (i) aborting a prefetch request operation in the prefetch request, (ii) performing a prefetch request operation in the prefetch request, (iii) delaying a prefetch request operation in the prefetch request, and (iv) quiescing a prefetch request operation in the prefetch request. 6. The computer program product of claim 3 , wherein the at least one action is based on the prefetch request information and at least one of (i) one or more conditions in the local processor, and (ii) one or more conditions in the remote processor. 7. The computer program product of claim 1 , wherein the prefetch request information includes one or more of (i) delay information, (ii) a priority of the remote processor, (iii) a priority of a prefetch request operation in the prefetch request, (iv) one or more conditions upon which to abort a prefetch request operation in the prefetch request, and (v) one or more conditions upon which to send a status of a prefetch request operation in the prefetch request to the remote processor. 8. The computer program product of claim 7 , wherein the delay information includes at least one of (i) a number of time steps, (ii) a number of cycles in the local processor, (iii) a first time period, (iv) a second time period that is greater than the first time period, (v) a long-range time period, and (vi) a prefetch time horizon. 9. The computer program product of claim 8 , wherein a time step included in the number of time steps includes at least one of (i) a number of instruction executions in the local processor, (ii) a number of instruction executions in the remote processor, and (iii) a number of cycles in the local processor. 10. The computer program product of claim 1 , wherein (I) the prefetch request information in a prefetch request includes a prefetch time horizon specified as a number of instruction executions at the source of the prefetch that is converted into a number of cycles at a given receiver of the prefetch request and (II) the determination of whether the prefetch request conflicts with the memory access associated with the atomic transaction is based on one or more of: (i) a comparison of a priority of the prefetch request with a priority of the atomic transaction, (ii) a comparison of a priority of the local processor with a priority of the remote processor, (iii) a determination of an associated level of importance of the prefetch request, and (iv) a comparison of a number of cycles expected to be remaining in the atomic transaction and an end time of the prefetch time horizon of the prefetch request. 11. A computer system to enable a prefetch request to be controlled in response to conditions in a receiver of the prefetch request and to conditions in a source of the prefetch request, the computer system comprising: one or more computer processors; one or more computer readable storage medium; program instructions stored on the computer readable storage medium for execution by at least one of the one or more processors, the program instructions comprising: program instructions to identify, based on a prefetch tag, a prefetch request that is associated with a prefetch instruction that is executed by a remote processor; program instruction to determine a priority for processing the prefetch request based, at least in part, on a prefetch request information included in the prefetch request, wherein the prefetch request information indicates a priority associated with the source of the prefetch request; program instructions to determine whether the prefetch request conflicts with a memory access associated with an atomic transaction; program instructions to generate the prefetch request in a remote processor based on: (i) whether the prefetch request conflicts with the memory access associated with the atomic transaction, (ii) according to a prefetch protocol, wherein the prefetch request includes (a) a description of at least one prefetch request operation and (b) the prefetch request information, and (iii) a comparison of the priority for processing the prefetch request to a priority associated with the atomic transaction; and program instructions to receive, by a local processor, the prefetch request from the remote processor. 12. The computer system of claim 11 , further comprising: program instructions to execute the at least one prefetch request operation in the prefetch request in the local processor if the at least one prefetch request operation in the prefetch request does not conflict with an atomic transaction in the local processor; and program instructions to perform at least one action in the local processor on the prefetch request in accordance with the prefetch protocol and the prefetch request information if the prefetch request conflicts with an atomic transaction in the local processor. 13. The computer system of claim 11 , wherein the prefetch request is one of a read prefetch instruction or a write prefetch instruction. 14. The computer system of claim 12 , further compr

Assignees

Inventors

Classifications

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 US10474576B2 cover?
Enabling a prefetch request to be controlled in response to conditions in a receiver of the prefetch request and to conditions in a source of the prefetch request. One or more processors identify, based on a prefetch tag, a prefetch request that is associated with a prefetch instruction that is executed by a remote processor. The one or more processors generate the prefetch request in a remote …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/0862. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 12 2019 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).