Art Celestini wrote:
Much of what I was talking about is described here:

http://www.research.ibm.com/journal/rd/446/webb.html

although even this paper is somewhat "dated" by now.

Art, I suggest you take a look at http://researchweb.watson.ibm.com/journal/rd/483/slegel.html. Nearly all of what's described there still applies to z9. In particular, the BPL (branch prediction logic) is identical.

The BTB keeps only those branches predicted to be taken (a design point that makes the buffer appear much larger than it really is) and uses a "strongly-taken, weakly-taken" approach for each branch stored there. (Refer to articles on branch prediction such as http://researchweb.watson.ibm.com/journal/rd/434/hilgendorf.html by Rolf Hilgendorf.)

A static prediction algorithm is used for so-called "surprise" branches (those not found in the BTB). And, according to a very informative exchange I had in 2005 with Mr. Slegel on this subject:

"BC/BRC-type are statically predicted not-taken (except if the mask is
'F'x), BCT, BXLE, and BXH-type are statically guessed taken.  For
BC/BRC-type this is correct about 55% of the time for most code and
BCT/BXLE-type are correct 90+% of the time on the static prediciton."

Tim did not specifically address the issue of a zero target register specification, nor did I think to ask. However, given that the BPL static predictor is smart enough to examine the mask for BC/BRC-types in order to predict branch direction, it seems that it would be trivial for that same code to check for a zero target register specification and predict not taken.

--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to