# US 2018/0024930 A1 · Processing data based on cache residency

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0024930 A1
- Document ID: US20180024930A1
- Status: Published application
- Kind: A1
- Application number: 15/214,597
- Filed: 2016-07-20
- Published: 2018-01-25
- Earliest claimed: 2016-07-20
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Michael K. Gschwind; Timothy J. Slegel
- Web page: https://patentgrep.com/patent/US20180024930A1

## CPC

- G06F 12/0862: with prefetch
- G06F 2212/1021: Hit rate improvement
- G06F 2212/281: Single cache
- G06F 2212/6024: History based prefetching
- G06F 2212/608: Details relating to cache mapping
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Processing of prefetched data based on cache residency. Data to be used in future processing is prefetched. A block of data being prefetched is selected for processing, and a check is made as to whether the block of data is resident in a selected cache (e.g., L1 cache). If the block of data is resident in the selected cache, it is processed; otherwise, processing is bypassed until a later time when it is resident in the selected cache.

## Claims

### Claim 1

A computer program product for facilitating processing within a computing environment, said computer program product comprising:
a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
initiating prefetching of a plurality of blocks of data;
determining cache residency for a selected block of data of the plurality of blocks of data, the determining cache residency using a query cache instruction to determine the cache residency of the selected block of data; and
selectively processing the selected block of data based on the cache residency of the selected block of data, wherein the selectively processing processes the selected block of data based on the determining indicating the selected block of data is in a particular level of cache.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein the selectively processing bypasses processing for the selected block of data based on the cache residency indicating the selected block of data is not in the particular level of cache.

### Claim 3 (depends on 2)

The computer program product of claim 2, wherein the method further comprises:
selecting another block of data; and
repeating the determining and the selectively processing for the other block of data, based on bypassing processing for the selected block of data.

### Claim 4 (depends on 1)

The computer program product of claim 1, wherein the method further comprises:
including, within a data structure, one or more indications of one or more blocks of data of the plurality of blocks of data being prefetched; and
choosing the selected block of data based on the one or more indications of the data structure.

### Claim 5 (depends on 4)

The computer program product of claim 4, wherein the method further comprises removing an indication for the selected block of data from the data structure, based on processing the selected block of data.

### Claim 6 (depends on 1)

The computer program product of claim 1, wherein the query cache instruction queries one or more caches absent loading data in the one or more caches.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein the using the query cache instruction comprises checking one or more caches specified by the query cache instruction to determine cache residency of the selected block of data.

### Claim 8 (depends on 7)

The computer program product of claim 7, wherein the checking comprises searching one or more directories of the one or more caches for at least one address of the block of data, the at least one address provided by the instruction.

### Claim 9 (depends on 1)

The computer program product of claim 1, wherein the particular level of cache comprises an L1 cache.

### Claim 10 (depends on 1)

The computer program product of claim 1, wherein the initiating prefetching is performed by one processor of the computing environment, and the determining cache residency is performed by another processor of the computing environment.

### Claim 11

A computer system for facilitating processing within a computing environment, said computer system comprising:
a memory; and
a processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising:
initiating prefetching of a plurality of blocks of data;
determining cache residency for a selected block of data of the plurality of blocks of data, the determining cache residency using a query cache instruction to determine the cache residency of the selected block of data; and
selectively processing the selected block of data based on the cache residency of the selected block of data, wherein the selectively processing processes the selected block of data based on the determining indicating the selected block of data is in a particular level of cache.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein the selectively processing bypasses processing for the selected block of data based on the cache residency indicating the selected block of data is not in the particular level of cache.

### Claim 13 (depends on 11)

The computer system of claim 11, wherein the method further comprises:
including, within a data structure, one or more indications of one or more blocks of data of the plurality of blocks of data being prefetched; and
choosing the selected block of data based on the one or more indications of the data structure.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein the query cache instruction queries one or more caches absent loading data in the one or more caches.

### Claim 15 (depends on 11)

The computer system of claim 11, wherein the initiating prefetching is performed by one processor of the computing environment, and the determining cache residency is performed by another processor of the computing environment.

### Claim 16

A computer-implemented method of facilitating processing within a computing environment, said computer-implemented method comprising:
initiating, by a processor, prefetching of a plurality of blocks of data;
determining cache residency for a selected block of data of the plurality of blocks of data, the determining cache residency using a query cache instruction to determine the cache residency of the selected block of data; and
selectively processing the selected block of data based on the cache residency of the selected block of data, wherein the selectively processing processes the selected block of data based on the determining indicating the selected block of data is in a particular level of cache.

### Claim 17 (depends on 16)

The computer-implemented method of claim 16, wherein the selectively processing bypasses processing for the selected block of data based on the cache residency indicating the selected block of data is not in the particular level of cache.

### Claim 18 (depends on 16)

The computer-implemented method of claim 16, further comprising:
including, within a data structure, one or more indications of one or more blocks of data of the plurality of blocks of data being prefetched; and
choosing the selected block of data based on the one or more indications of the data structure.

### Claim 19 (depends on 16)

The computer-implemented method of claim 16, wherein the query cache instruction queries one or more caches absent loading data in the one or more caches.

### Claim 20 (depends on 16)

The computer-implemented method of claim 16, wherein the initiating prefetching is performed by one processor of the computing environment, and the determining cache residency is performed by another processor of the computing environment.
