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