US10977043B2ActiveUtilityA1

Transactional memory performance and footprint

56
Assignee: IBMPriority: Sep 14, 2017Filed: Sep 14, 2017Granted: Apr 13, 2021
Est. expirySep 14, 2037(~11.2 yrs left)· nominal 20-yr term from priority
Inventors:Shakti Kapoor
G06F 12/0862G06F 12/0866G06F 9/30047G06F 12/084G06F 12/1466G06F 12/0811G06F 9/3842G06F 9/467G06F 2212/1024G06F 3/0653G06F 2212/6026G06F 3/0619
56
PatentIndex Score
0
Cited by
12
References
12
Claims

Abstract

Embodiments of the invention are directed to methods for handling cache. The method includes retrieving a plurality of instructions from a cache. The method further includes placing the plurality of instructions into an instruction fetch buffer. The method includes retrieving a first instruction of the plurality of instructions from the instruction fetch buffer. The method includes executing the first instruction. The method includes retrieving a second instruction from the plurality of instructions from the instruction fetch buffer unless a back invalidate is received from the cache. Thereafter executing the second instruction without refreshing the instruction fetch buffer from the cache.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer system for handling cache prefetch requests, the computer system comprising:
 a cache memory; and 
 a processor system communicatively coupled to the cache memory; 
 the processor system configured to:
 retrieve a plurality of instructions from a cache; 
 place the plurality of instructions into an instruction fetch buffer; 
 retrieve a first instruction of the plurality of instructions from the instruction fetch buffer; 
 execute the first instruction successfully; 
 based on a determination that a back invalidate has not been received from the cache, retrieve a second instruction from the plurality of instructions from the instruction fetch buffer and execute the second instruction without refreshing the instruction fetch buffer from the cache while preserving the plurality of instructions in the instruction fetch buffer, wherein the plurality of instructions are part of a single transaction; 
 responsive to at least one of the plurality of instructions executing unsuccessfully, re-try to execute the plurality of instructions that are stored in the instruction fetch buffer without re-fetching the plurality of instructions from the cache; and 
 responsive to executing the second instruction and any remaining instructions in the plurality of instructions successfully, refresh the instruction fetch buffer by retrieving one or more additional instructions from the cache to replace the plurality of instructions in the instruction fetch buffer. 
 
 
     
     
       2. The computer system of  claim 1  wherein the processor system is further configured to:
 based on the back invalidate being received, retrieving a second plurality of instructions from the cache into the instruction fetch buffer. 
 
     
     
       3. The computer system of  claim 2  wherein the processor system is further configured to:
 determining that data referred to in the second instruction has become stale; and 
 issuing the back invalidate to the instruction fetch buffer. 
 
     
     
       4. The computer system of  claim 3  wherein determining that data referred to in the second instruction has become stale comprises monitoring memory locations referred to in the second instruction and issuing a back invalidate if the memory locations referred to in the second instruction have changed. 
     
     
       5. The computer system of  claim 1  wherein the cache comprises an L1 cache. 
     
     
       6. The computer system of  claim 5  wherein the L1 cache is configured to retrieve data from an L2 cache prior to attempting to retrieve data from a main memory. 
     
     
       7. A design structure tangibly embodied in a machine-readable storage medium for designing, manufacturing, or testing an integrated circuit, the design structure comprising:
 a cache memory; and 
 a processor core coupled to the cache memory, the processor core configured to:
 retrieve a plurality of instructions from a cache; 
 place the plurality of instructions into an instruction fetch buffer; 
 retrieve a first instruction of the plurality of instructions from the instruction fetch buffer; 
 execute the first instruction successfully; 
 
 based on a determination that a back invalidate has not been received from the cache, retrieve a second instruction from the plurality of instructions from the instruction fetch buffer and execute the second instruction without refreshing the instruction fetch buffer from the cache while preserving the plurality of instructions in the instruction fetch buffer, wherein the plurality of instructions form a single transaction;
 responsive to at least one of the plurality of instructions executing unsuccessfully, re-try to execute the plurality of instructions that are stored in the instruction fetch buffer without re-fetching the plurality of instructions from the cache; and 
 responsive to executing the second instruction and any remaining instructions in the plurality of instructions successfully, refresh the instruction fetch buffer by retrieving one or more additional instructions from the cache to replace the plurality of instructions in the instruction fetch buffer. 
 
 
     
     
       8. The design structure of  claim 7  further comprising:
 based on the back invalidate being received, retrieving a second plurality of instructions from the cache into the instruction fetch buffer. 
 
     
     
       9. The design structure of  claim 8  further comprising:
 determining that data referred to in the second instruction has become stale; and 
 issuing the back invalidate to the instruction fetch buffer. 
 
     
     
       10. The design structure of  claim 9  wherein determining that data referred to in the second instruction has become stale comprises monitoring memory locations referred to in the second instruction and issuing a back invalidate if the memory locations referred to in the second instruction have changed. 
     
     
       11. The design structure of  claim 7  wherein the cache comprises an L1 cache. 
     
     
       12. The design structure of  claim 11  wherein the L1 cache is configured to retrieve data from an L2 cache prior to attempting to retrieve data from a main memory.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.