Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84 +MMDF+MULTI+2.11; site wcwvax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!mcvax!ukc!qtlon!wcwvax!ian From: ian@wcwvax.UUCP (Ian Kemmish) Newsgroups: net.micro.68k,net.micro.16k Subject: Restart vs. saving state on page faults Message-ID: <330@wcwvax.UUCP> Date: Wed, 28-Aug-85 07:08:01 EDT Article-I.D.: wcwvax.330 Posted: Wed Aug 28 07:08:01 1985 Date-Received: Fri, 6-Sep-85 03:38:37 EDT Organization: Whitechapel Computer Works, London Lines: 19 Xref: watmath net.micro.68k:1095 net.micro.16k:383 Dave Trissl @ Motorola says the state-saving approach means the processor doesn't have to wait until it knows a write has succeeded without a page fault before starting on the next instruction in the pipeline. In contrast, instruction restart implies waiting until the write works (and therefore that the pipeline isn't as much use as it sounds). Until last week, I would have agreed. BUT . . . I was running some timing tests on my line-drawing algorithm for the Whitechapel MG-1 (uses a NS32016). Basically, it's just a tarted-up Bresenham algorithm with an unwound inner loop of one read-modify-write instruction followed by three register-register instructions. I was trying to special-case nearly-vertical lines by having another loop with two of the register-register instructions removed. After allowing for the time taken to test for the special case, I got a speedup of a massive 10% inside the loop. That sounds like a pretty efficient pipeline to me, folks! (No, I don't know how they do it - I just know what I measured. Anyone else done any similar experiments?)