The MC68030 processor is equipped with dual 256-byte instruction and data caches as well as a "burst" mechanism used to quickly load a cache line from RAM or L2 cache controlled by the platform hardware (motherboard).
My question is, when MC68030 encounters a cache miss and initiates a burst access to fill a line in one of the caches, does program execution resume immediately after the first longword is loaded or only after the burst is completed?
One would think that MC68030 would continue execution right after the requisite data is available, but I have encountered a slide from a MIPS presentation at Hot Chips '89 which suggests that MC68030, in contrast to MIPS's R3000, waits until the burst is completed before continuing execution:
MIPS calls this idea of the execution continuing as a cache line is loaded "instruction streaming." Of course, this slide is from MIPS's presentation, not Motorola's, so we can expect it to be a bit generous toward R3000 and a bit harsh toward its competitors. The presentation calls out MC68030 and 80386 as being less performant than the R3000, and indeed there is a conspicuous lack of labeling or explanation of which competing processors suffer from the extra latency waiting for completion of the burst. MIPS is clear that the R3000 has instruction streaming, but it's not clear whether the aforementioned competitors have it or not.
The more I think about this, the more confused I get. Any pipelined CPU is always fetching instructions in parallel with executing opcodes already fetched. Even the 8088 has a few byte (IIRC) prefetch queue which is always being filled in the absence of data memory references.
Maybe MIPS's claim refers only to data references and the MC68030 is not able to continue execution when doing a burst into the data cache.
Can anyone shed any light on this?