Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!ames!ucbcad!ucbvax!decvax!decwrl!nsc!roger From: roger@nsc.nsc.com (Roger Thompson) Newsgroups: comp.arch,comp.sys.nsc.32k Subject: Re: Branch prediction in the 532 Message-ID: <4233@nsc.nsc.com> Date: Thu, 23-Apr-87 01:24:19 EST Article-I.D.: nsc.4233 Posted: Thu Apr 23 01:24:19 1987 Date-Received: Sat, 25-Apr-87 01:07:16 EST References: <324@dumbo.UUCP> Organization: National Semiconductor, Sunnyvale Lines: 27 Xref: mnetor comp.arch:1065 comp.sys.nsc.32k:110 In article <324@dumbo.UUCP>, hansen@mips.UUCP (Craig Hansen) writes: > > The selection is based on the branch condition and > direction; forward branches are predicted as taken, > backward branches as non-taken. > YES the brochure has misplaced a "non" in the above paragraph. Reverse the usage. > Well, I don't see how the branch prediction can depend on the branch > condition, since waiting for the condition corresponds to no branch > prediction at all. (Certainly novel and non-obvious...) The condition factor that is used is that which is specified by the opcode, not the actual result from the operation being tested. The concept is that the predictor has an algorithm that has multiple inputs. Under certain conditions, the predictor determines one answer or the other. The prediction should not be confussed with the result. Our prediction algorithm is accurate to 70 - 80%. > > But when I was a young sprout, they always told me that backward branches > often represented loops and were most frequently taken. Forward branches > often represent conditional expressions, and are more ambivalent. > Agreed.