The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Aug. 17, 2010
Filed:
Aug. 28, 2007
Richard W. Doing, Raleigh, NC (US);
Michael O. Klett, Raleigh, NC (US);
Kevin N. Magill, Raleigh, NC (US);
Brian R. Mestan, Austin, TX (US);
David Mui, Round Rock, TX (US);
Balaram Sinharoy, Poughkeepsie, NY (US);
Jeffrey R. Summers, Raleigh, NC (US);
Richard W. Doing, Raleigh, NC (US);
Michael O. Klett, Raleigh, NC (US);
Kevin N. Magill, Raleigh, NC (US);
Brian R. Mestan, Austin, TX (US);
David Mui, Round Rock, TX (US);
Balaram Sinharoy, Poughkeepsie, NY (US);
Jeffrey R. Summers, Raleigh, NC (US);
International Business Machines Corporation, Armonk, NY (US);
Abstract
A method and apparatus for dynamically managing instruction buffer depths for non-predicted branches reduces wasted energy and resources associated with low confidence branch prediction conditions. A portion of the instruction buffer for a instruction thread is allocated for storing predicted branch instruction streams and another portion, which may be zero-sized during high prediction confidence conditions, is allocated to the non-predicted branch instruction stream. The size of the buffers is adjusted dynamically in conformity with an on-going prediction confidence that provides a measure of how well branch prediction mechanisms are working for a given instruction thread. An alternate instruction fetch address table can be maintained and multiplexed with the main fetch address register for addressing the instruction cache, so that the instruction stream can be quickly shifted to the non-predicted path when a branch instruction is resolved to the non-predicted path.