At 09:45 AM 10/22/98 -0500, it was written:
Since this is a dream:
...
For math, a bunch of stinking fast memory locations
acting as look-up tables.
...
Any ideas?
Well, if you want to dream, and you have a _LOT_ of very fast memory
available, you can build a 2Ghz Z80 as follows:
Build the system with two sets of memory, one bank contains combinations of
bank number and address, the other contains several million 64K memory
images. Now "compile" your code by creating a directed graph of all
possible memory states for all possible execution paths (detection when the
graph collapses into loops of course) and load your memory. Now you can
"execute" your code by reading the control bank and switching to the bank
indicated and reading again. Each "execution" would cost 1 memory fetch.
With predictive execution (that is to say when you know that you are going
to move the next four states in sequence) you can "jump ahead" to the
fourth state thus effectively execution 4 instructions in one memory fetch
time. Clearly the slowest mode of execution will be all register
manipulation/conditional jump instructions (no predictions are used
immediately) The fastest execution will be execution that doesn't generate
I/O (external non-memory based state) then you can go right to the end state.
--Chuck