IP Library › Granted Patent US 11,163,573
Granted Patent B2
US 11,163,573 · App. 16/274,710 · Granted Nov 2, 2021

Hierarchical metadata predictor with periodic updates

Inventors: James Bonanno (Wappingers Falls, NY); Varnika Atmakuri (West Windsor, NJ); Adam Collura (Hopewell Junction, NY); Brian Robert Prasky (Campbell Hall, NY); Anthony Saporito (Highland, NY); Suman Amugothu (Poughkeepsie, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/3806G06F9/30145G06F9/3808
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 11,163,573
App. No.
16/274,710
Granted
Nov 2, 2021
Kind
B2
Abstract

A system includes a hierarchical metadata predictor and a processing circuit. The hierarchical metadata predictor includes a first-level metadata predictor and a second-level metadata predictor. The processing circuit is configured to perform a plurality of operations including storing new or updated metadata into the first-level metadata predictor and searching the first-level metadata predictor for a metadata prediction. Responsive to finding the metadata prediction in the first-level metadata predictor, the metadata prediction is output corresponding to an entry of the first-level metadata predictor that is a hit. One or more entries of the first-level metadata predictor that are non-hits are periodically written to the second-level metadata predictor. The first-level metadata predictor is updated based on locating the metadata prediction in the second-level metadata predictor.

Claims (70)

1. A system comprising:

a hierarchical metadata predictor comprising a first-level metadata predictor and a second-level metadata predictor; and

a processing circuit configured to perform a plurality of operations comprising:

storing new or updated metadata into the first-level metadata predictor;

searching the first-level metadata predictor for a metadata prediction;

responsive to finding a metadata prediction in the first-level metadata predictor, outputting the metadata prediction, the metadata prediction corresponding to an entry of the first-level metadata predictor that is a hit;

maintaining a non-hit counter indicative of a number of non-hits encountered during the searching of the first-level metadata predictor until a counter threshold is reached;

periodically writing one or more entries of the first-level metadata predictor that are non-hits to the second-level metadata predictor after the non-hit counter reaches the counter threshold; and

updating the first-level metadata predictor based on locating the metadata prediction in the second-level metadata predictor.

2. The system of claim 1 , wherein the processing circuit is further configured to perform operations comprising:

stepping through a plurality of columns of the first-level metadata predictor based on the non-hit counter reaching the counter threshold; and

searching for a valid non-hit in an order starting based on a current column selection state of the first-level metadata predictor.

3. The system of claim 1 , wherein the one or more entries of the first-level metadata predictor that are non-hits are selected for writing to the second-level metadata predictor based on a least-recently-used indicator associated with the one or more entries.

4. The system of claim 3 , wherein the processing circuit is further configured to perform operations comprising:

setting a new or updated entry of the first-level metadata predictor as most-recently-used;

setting the entry of the first-level metadata predictor comprising the hit as most-recently-used based on finding the metadata prediction in the first-level metadata predictor; and

setting the one or more entries written to the second-level metadata predictor as most-recently-used.

5. The system of claim 3 , wherein the metadata comprises branch instruction prediction data and the processing circuit is further configured to perform operations comprising:

installing branch instruction prediction data associated with one or more surprise branches into the first-level metadata predictor and the second-level metadata predictor; and

setting a plurality of entries comprising the branch instruction prediction data associated with one or more surprise branches as most-recently-used in the first-level metadata predictor and the second-level metadata predictor.

6. The system of claim 1 , further comprising a plurality of write queues and wherein the processing circuit is further configured to perform operations comprising:

searching the second-level metadata predictor for the metadata prediction; and

queuing any hit for writing into the first-level metadata predictor through the write queues.

7. The system of claim 6 , wherein the processing circuit is further configured to perform operations comprising:

performing a read-before-write check of the first-level metadata predictor based on data in the write queues and directory information of the first-level metadata predictor to prevent duplicate installs of metadata in the first-level metadata predictor.

8. A method comprising:

storing, by a processing circuit, new or updated metadata into a first-level metadata predictor of a hierarchical metadata predictor;

searching, by the processing circuit, the first-level metadata predictor for a metadata prediction;

responsive to finding a metadata prediction in the first-level metadata predictor, outputting the metadata prediction, the metadata prediction corresponding to an entry of the first-level metadata predictor that is a hit;

maintaining a non-hit counter indicative of a number of non-hits encountered during the searching of the first-level metadata predictor until a counter threshold is reached;

periodically writing one or more entries of the first-level metadata predictor that are non-hits to a second-level metadata predictor of the hierarchical metadata predictor after the non-hit counter reaches the counter threshold; and

updating the first-level metadata predictor based on locating the metadata prediction in the second-level metadata predictor.

9. The method of claim 8 , further comprising:

stepping through a plurality of columns of the first-level metadata predictor based on the non-hit counter reaching the counter threshold; and

searching for a valid non-hit in an order starting based on a current column selection state of the first-level metadata predictor.

10. The method of claim 8 , wherein the one or more entries of the first-level metadata predictor that are non-hits are selected for writing to the second-level metadata predictor based on a least-recently-used indicator associated with the one or more entries.

11. The method of claim 10 , further comprising:

setting a new or updated entry of the first-level metadata predictor as most-recently-used;

setting the entry of the first-level metadata predictor comprising the hit as most-recently-used based on finding the metadata prediction in the first-level metadata predictor; and

setting the one or more entries written to the second-level metadata predictor as most-recently-used.

12. The method of claim 10 , wherein the metadata comprises branch instruction prediction data and further comprising:

installing branch instruction prediction data associated with one or more surprise branches into the first-level metadata predictor and the second-level metadata predictor; and

setting a plurality of entries comprising the branch instruction prediction data associated with one or more surprise branches as most-recently-used in the first-level metadata predictor and the second-level metadata predictor.

13. The method of claim 8 , further comprising:

searching the second-level metadata predictor for the metadata prediction; and

queuing any hit for writing into the first-level metadata predictor through one or more write queues.

14. The method of claim 13 , further comprising:

performing a read-before-write check of the first-level metadata predictor based on data in the one or more write queues and directory information of the first-level metadata predictor to prevent duplicate installs of metadata in the first-level metadata predictor.

15. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processing circuit to perform a plurality of operations comprising:

storing new or updated metadata into a first-level metadata predictor of a hierarchical metadata predictor;

searching the first-level metadata predictor for a metadata prediction;

responsive to finding a metadata prediction in the first-level metadata predictor, outputting the metadata prediction, the metadata prediction corresponding to an entry of the first-level metadata predictor that is a hit;

maintaining a non-hit counter indicative of a number of non-hits encountered during the searching of the first-level metadata predictor until a counter threshold is reached;

periodically writing one or more entries of the first-level metadata predictor that are non-hits to a second-level metadata predictor of the hierarchical metadata predictor after the non-hit counter reaches the counter threshold; and

updating the first-level metadata predictor based on locating the metadata prediction in the second-level metadata predictor.

16. The computer program product of claim 15 , wherein the program instructions executable by the processing circuit are further configured to perform the operations comprising:

stepping through a plurality of columns of the first-level metadata predictor based on the non-hit counter reaching the counter threshold; and

searching for a valid non-hit in an order starting based on a current column selection state of the first-level metadata predictor.

17. The computer program product of claim 15 , wherein the one or more entries of the first-level metadata predictor that are non-hits are selected for writing to the second-level metadata predictor based on a least-recently-used indicator associated with the one or more entries.

18. The computer program product of claim 17 , wherein the program instructions executable by the processing circuit are further configured to perform the operations comprising:

setting a new or updated entry of the first-level metadata predictor as most-recently used;

setting the entry of the first-level metadata predictor comprising the hit as most-recently used based on finding the metadata prediction in the first-level metadata predictor; and

setting the one or more entries written to the second-level metadata predictor as most-recently used.

19. The computer program product of claim 17 , wherein the metadata comprises branch instruction prediction data, and the program instructions executable by the processing circuit are further configured to perform the operations comprising:

installing branch instruction prediction data associated with one or more surprise branches into the first-level metadata predictor and the second-level metadata predictor; and

setting a plurality of entries comprising the branch instruction prediction data associated with one or more surprise branches as most-recently-used in the first-level metadata predictor and the second-level metadata predictor.

20. The computer program product of claim 15 , wherein the program instructions executable by the processing circuit are further configured to perform the operations comprising:

searching the second-level metadata predictor for the metadata prediction;

queuing any hit for writing into the first-level metadata predictor through one or more write queues; and

performing a read-before-write check of the first-level metadata predictor based on data in the one or more write queues and directory information of the first-level metadata predictor to prevent duplicate installs of metadata in the first-level metadata predictor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2019
From: BONANNO, JAMES; ATMAKURI, VARNIKA; COLLURA, ADAM; PRASKY, BRIAN ROBERT; SAPORITO, ANTHONY; AMUGOTHU, SUMAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048320/0487 →
Continuity (1)
Related Publication 20200257534A1 · Aug 13, 2020