Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rochester!pt.cs.cmu.edu!sei!sei.cmu.edu!firth From: firth@sei.cmu.edu (Robert Firth) Newsgroups: comp.arch Subject: Re: Branch prediction in the 532 Message-ID: <1123@aw.sei.cmu.edu> Date: Fri, 24-Apr-87 09:43:10 EST Article-I.D.: aw.1123 Posted: Fri Apr 24 09:43:10 1987 Date-Received: Sat, 25-Apr-87 19:46:13 EST References: <324@dumbo.UUCP> <165100008@uiucdcsb> <18537@ucbvax.BERKELEY.EDU> Sender: netnews@sei.cmu.edu Reply-To: firth@bd.sei.cmu.edu.UUCP (PUT YOUR NAME HERE) Distribution: world Organization: Carnegie-Mellon University, SEI, Pgh, Pa Lines: 23 Keywords: branch prediction, branch target buffers, BTB In article <18537@ucbvax.BERKELEY.EDU> shebanow@ji.Berkeley.EDU.UUCP (Mike Shebanow) writes: ... >Based on the results published, the best prediction algorithms use run-time >information. As developed by IBM, a branch target buffer is kept in the >machine (BTB). The BTB is an associative table (direct mapped, n-way set >associative, fully associative, whatever) which uses the address of the >BRANCH as an index. Associated with the branch address are two pieces >of information (usually): > > - target address of the branch (where to go if branch taken -- OR, > perhaps the first few instructions at the target address (eg., > AM29000)) > - some prediction information (see below). Mike, could you please elaborate on this, because after 2 days I find myself no nearer to understanding it. The purpose of the "prediction" information seems to be to allow the processor to prefetch whichever of the branch continuations (successor or destination) is more likely to be needed. But if you have a branch cache, surely BOTH continuations are available already - one in the normal pipeline and the other in the cache. So who cares which is needed? - and why bother to predict it?