Simple x86 Simulator (was: Re: Flame Linus to a crisp!)

Steven Augart (steve@augart.com)
Fri, 25 Apr 2003 01:05:33 -0700


We could not. Consider just the 8 32-bit-wide legacy x86 registers,
excluding the MMX and FPU registers:
(AX, BX, CX, DX, BP, SI, DI, SP). 32 bits x 8 = 2^256 independent
states to look up in the table, each state having 256 bits of
information. 2^264 total bits of information needed. Assume 1 GB dimms
(2^30 * 8 bits each = 2^33 bits of info), with a volume of 10 cm^3 per
DIMM (including a tiny amount of space for air circulation.).
Need 34508731733952818937173779311385127262255544860851932776 cubic
kilometers of space.

Considerably larger than the volume of the earth, although admittedly
smaller than the total volume of the universe.

--Steven Augart

John Bradford wrote:

>>>I'd like to see an x86 completely in perf board. I thought my high
>>>school digital electronics type stuff looked bad...
>>>
>>>
>>You could do it nowadays using dynamic binary translation, and an
>>absurdly simple CPU capable of accessing a large memory. You'd need a
>>DIMM for the large memory, but get away with discrete logic for the
>>CPU if you really wanted to.
>>
>>At perf board sizes using discrete logic, expect it run run quite slow :)
>>
>>
>
>Could we not take this idea to it's logical extreme, and simply
>calculate the results of every opcode, on every value, for every state
>of all of the registers, and store them in an array of DIMMs, and
>simply look up the necessary results? I.E. a cpu which is one _huge_
>look up table :-).
>
>John.
>
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/