IP Library Granted Patent US 10,248,563
Granted Patent B2
US 10,248,563 · App. 15/634,492 · Granted Apr 2, 2019

Efficient cache memory having an expiration timer

Inventor: Eiji Tosaka (Tokyo, JP)
Assignee: International Business Machines Corporation
G06F12/0808G06F3/0659G06F12/128G06F2212/621G06F2212/69
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,248,563
App. No.
15/634,492
Granted
Apr 2, 2019
Kind
B2
Abstract

In one embodiment, a method includes selectively invalidating data stored in at least one cache line of a cache memory of a processor in response to a determination that a predetermined amount of time has passed since the at least one cache line was last accessed. The predetermined amount of time is shorter than an average round-trip time for the processor to process a plurality of blocks of data stored sequentially to a ring buffer. In other embodiments, methods, systems, and computer program products are described for efficient use of cache memory using an expiration timer.

Claims (43)

1. A method, comprising:

selectively invalidating data stored in at least one cache line of a cache memory of a processor in response to a determination that a predetermined amount of time has passed since the at least one cache line was last accessed, the predetermined amount of time being shorter than an average round-trip time for the processor to process a plurality of blocks of data stored sequentially to a ring buffer.

2. The method as recited in claim 1 , wherein the round-trip time is based on an amount of time required for all data blocks stored to the ring buffer to be sequentially overwritten.

3. The method as recited in claim 1 , wherein the average round-trip time for the ring buffer is based on a last N round trips for the ring buffer, N being an integer in a range from 2 to 50.

4. The method as recited in claim 1 , further comprising:

sequentially processing first blocks of data from the plurality of blocks of data stored to the ring buffer in an order of storage to the ring buffer according to a first-in-first-out (FIFO) processing scheme; and

outputting the first blocks of data in response to processing the first blocks of data.

5. The method as recited in claim 4 , further comprising storing the first blocks of data to a corresponding number of cache lines in the cache memory of the processor prior to outputting the first blocks of data.

6. The method as recited in claim 1 , further comprising:

receiving new data to store to the ring buffer, the new data comprising one or more new bocks of data; and

overwriting a first set of blocks of data from the plurality of blocks of data stored sequentially to the ring buffer with the one or more new bocks of data, the first set of blocks equaling a number of the one or more new blocks of data,

wherein the first set of blocks of data are an oldest of the plurality of blocks of data stored sequentially to the ring buffer.

7. A system, comprising:

a processing circuit having a cache memory therein;

a ring buffer; and

logic integrated with the processing circuit, executable by the processing circuit, or integrated with and executable by the processing circuit, the logic being configured to cause the processing circuit to:

selectively invalidate data stored in at least one cache line of the cache memory in response to a determination that a predetermined amount of time has passed since the at least one cache line was last accessed, the predetermined amount of time being shorter than an average round-trip time for the processing circuit to process a plurality of blocks of data stored sequentially to the ring buffer.

8. The system as recited in claim 7 , wherein the round-trip time is based on an amount of time required for all data blocks stored to the ring buffer to be sequentially overwritten.

9. The system as recited in claim 7 , wherein the average round-trip time for the ring buffer is based on a last N round trips for the ring buffer, N being an integer in a range from 2 to 50.

10. The system as recited in claim 7 , wherein the logic is further configured to cause the processing circuit to:

sequentially process first blocks of data from the plurality of blocks of data stored to the ring buffer in an order of storage to the ring buffer according to a first-in-first-out (FIFO) processing scheme; and

output the first blocks of data in response to processing the first blocks of data.

11. The system as recited in claim 10 , wherein the logic is further configured to cause the processing circuit to:

store the first blocks of data to a corresponding number of cache lines in the cache memory of the processing circuit prior to outputting the first blocks of data.

12. The system as recited in claim 11 , wherein the logic is further configured to cause the processing circuit to:

receive new data to store to the ring buffer, the new data comprising one or more new bocks of data; and

overwrite a first set of blocks of data from the plurality of blocks of data stored sequentially to the ring buffer with the one or more new bocks of data, the first set of blocks equaling a number of the one or more new blocks of data,

wherein the first set of blocks of data are an oldest of the plurality of blocks of data stored sequentially to the ring buffer.

13. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the embodied program instructions being executable by a processing circuit to cause the processing circuit to:

selectively invalidate, by the processing circuit, data stored in at least one cache line of a cache memory in response to a determination that a predetermined amount of time has passed since the at least one cache line was last accessed,

wherein the predetermined amount of time is shorter than an average round-trip time for the processing circuit to process a plurality of blocks of data stored sequentially to a ring buffer, and

wherein the processing circuit comprises the cache memory.

14. The computer program product as recited in claim 13 , wherein the round-trip time is based on an amount of time required for all data blocks stored to the ring buffer to be sequentially overwritten.

15. The computer program product as recited in claim 13 , wherein the average round-trip time for the ring buffer is based on a last N round trips for the ring buffer, N being an integer in a range from 2 to 50.

16. The computer program product as recited in claim 13 , wherein the embodied program instructions are further executable by the processing circuit to cause the processing circuit to:

sequentially process, by the processing circuit, first blocks of data from the plurality of blocks of data stored to the ring buffer in an order of storage to the ring buffer according to a first-in-first-out (FIFO) processing scheme; and

output, by the processing circuit, the first blocks of data in response to processing the first blocks of data.

17. The computer program product as recited in claim 16 , wherein the embodied program instructions are further executable by the processing circuit to cause the processing circuit to:

store, by the processing circuit, the first blocks of data to a corresponding number of cache lines in the cache memory of the processing circuit prior to outputting the first blocks of data.

18. The computer program product as recited in claim 17 , wherein the embodied program instructions are further executable by the processing circuit to cause the processing circuit to:

receive, by the processing circuit, new data to store to the ring buffer, the new data comprising one or more new bocks of data; and

overwrite, by the processing circuit, a first set of blocks of data from the plurality of blocks of data stored sequentially to the ring buffer with the one or more new bocks of data, the first set of blocks equaling a number of the one or more new blocks of data,

wherein the first set of blocks of data are an oldest of the plurality of blocks of data stored sequentially to the ring buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2017
From: TOSAKA, EIJI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042951/0025 →
Continuity (1)
Related Publication 20180373631A1 · Dec 27, 2018
Cited By (1)
US 12,242,387