Just a moment...
(I can tell that you know this:) The problem with trying to emulate without a separate instruction memory is that the fetches are both (a) slow from the main memory, and (b) use memory cycles that the emulated mechanism needs to use. What is wanted is to not bother main memory for the emulation routine, and to be able to execute 4, 5 or more... See more
Just a moment...
A very different way to look at it might be to say: well, we really want zillions of concurrent and safe processes with very fast intermessaging programmed at the highest levels — what kind of architecture would facilitate that? We certainly don’t want either “interrupts” or long latency process switching (that seems crazy to “old Parc people”. We... See more
Just a moment...
A really interesting design was the first ARM — which was a pretty clean RISC and tidy in size. It could have been used as an emulator by wrapping it with fast instruction memory, but wasn’t. I think this was a “point of view” disconnect. It was a very good design for the purpose of its designers, and there wasn’t enough of a VHLL culture to see... See more
Just a moment...
Up to a point, an instruction cache can act like a microcode memory for emulating VHLLs. The keys are for it (a) to be large enough to hold the inner loops of the interpreter, (b) to not be flushed spuriously, and (c) for the machine instructions to execute quickly compared to the cache memory cycle.
Just a moment...
The idea of microcode was invented by Maurice Wilkes, a great pioneer who arguably made the earliest programmable computer — the EDSAC (pace Manchester Baby). The idea depends partly on the existence of a “large enough” memory that is much faster (3–10 times) than the 1st level RAM of the computer.
A milestone happened when the fast memory for... See more
A milestone happened when the fast memory for... See more