Pre-fetch

jbn at wdl1.UUCP jbn at wdl1.UUCP
Wed Nov 20 18:18:21 AEST 1985


> Back in the dark ages when I was learning assembly language
> programming on a CDC 6400 we were warned about this problem
> (pre-fetch also forces you to be careful for *shudder* self-modifying code.)
> 
> The 6000 series machines have base-and-limit-register memory management
> and 60-bit words with 15 or 30 bit instructions.
> After the first instruction of a word is executed, the machine prefetches
> the next word into the instruction buffer.
> If you are in the last word:  Bang, you're dead.

      It was worse than that; the CDC 6400 was the economy model; the CDC
6600 had TEN instruction look-ahead, and, reasonably enough, one could
get a protection fault by executing code within ten words of the memory
lockout limits.  Worse, this effect was intermittent, because the machine
was asynchronous; sometimes the jump instruction would cut off the lookahead
before it reached the memory limits, and sometimes the lookahead would get
there first; results varied from CPU to CPU, depending on exact wire lengths
and gate delays.  Repeatability was never a strong point of the CDC 6600.
With three million discrite components, (this was before ICs) the CDC 6600 
goes down in history as the all-time winner on parts count.
      Semour did learn from his experience with this monster; the Cray I
was a strictly synchronous machine, with parity checking (Semour used to
say ``parity is for farmers'', but learned better.)
      No, I never used one of these things; I was in junior high when it
came out, but one should have some sense of history.  It's worth realizing
that some of the many-register RISC machines are likely to have the same 
problems with the lookahead logic.

					John Nagle



More information about the Comp.unix.wizards mailing list