Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site mips.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!decwrl!Glacier!mips!mash From: mash@mips.UUCP (John Mashey) Newsgroups: net.micro.68k,net.arch Subject: Re: RISC branch delay slots and booger-bears Message-ID: <141@mips.UUCP> Date: Thu, 6-Jun-85 12:37:57 EDT Article-I.D.: mips.141 Posted: Thu Jun 6 12:37:57 1985 Date-Received: Sat, 8-Jun-85 02:16:38 EDT References: <419@oakhill.UUCP> <6415@boring.UUCP> <557@terak.UUCP> <6417@boring.UUCP> <572@terak.UUCP> <135@watmum.UUCP> <590@terak.UUCP> Organization: MIPS Computer Systems, Mountain View, CA Lines: 24 Xref: watmath net.micro.68k:881 net.arch:1333 Doug Pardee writes: > > Some of the notes have indicated that these concerns are one and the > same. Sometimes, but not always. Here's a choice counter-example: > Some RISC machines have a "branch *after* next instruction" operation. > This allows the pipeline to be used more efficiently. It results in > more efficient object code than conventional branch instructions, but > it is a booger-bear to write an effective compiler for. I'm not sure what a booger-bear is, but I guess it indicates difficulty. This turns out not to be true. This function is usually called "filling the branch delay slot", and it's normally done by a pipeline reorganizer that's part of an assembler. It's generally fairly easy to fill [90%+], and it's not exceptionally difficult. See "VLSI Processor Architecture", John Hennessy, IEEE Trans on Computers, Vol C-33, No 12, Dec 1984, or "Reduced Instruction Set Computers", David A. Patterson, Comm ACM V28, 1 (Jan 1985), [for general discusion], or "Postpass code optimization of pipeline constraints", J. L. Hennessy & T. R. Gross, ACM TOPLAS, v5, 3(Jul 83) [for whole paper reorganizer]. -- -john mashey UUCP: {decvax,ucbvax,ihnp4}!decwrl!mips!mash DDD: 415-960-1200 USPS: MIPS Computer Systems, 1330 Charleston Rd, Mtn View, CA 94043