By mjames
via i-programmer.info
Published: Sep 26 2010 / 13:51
Take a processor. Cut the top off the packaging. Photograph the naked chip through a microscope. Digitise the result. From this create a simulation of the components and run some software. This is transistor level simulation.
Comments
kitdavies replied ago:
Now that's what I call "reverse engineering"
mjames replied ago:
And it puts "virtual machine" into context.
Topnotch replied ago:
With a system like this in place; if it really is 100% accurate, it should put an end to the sloppy and inaccurate software emulations I've seen on the XBOX 360 and PS3. Plus they shouldn't need to keep creating all those emulation profiles for each game they should just run the code against the emulated hardware. Amazing stuff.
mjames replied ago:
Ah.. hidden deep in the discussion is a small comment about only being able to do chips with a certain construction.
My guess is that modern i.e. XBOX and PS3 chips are too complicated in the sense that they have too many layers.
But... just because they can't do it at the moment doesn't mean its impossible.
Even if it currently does have its limitations it is, as you say, amazing stuff.
henk replied ago:
Amazing stuff, although it would be nice to see some performance measures. Many hand coded 6502 emulators already exist. What't the minimum CPU you need to emulate a 6502 at the original speed for a hand coded one vs this one?
Anyway, this is one of the most remarkable pieces of emulation news I've EVER read, period. Truly amazing!
mjames replied ago:
I've not been able to find any timings but the Javascript simulation runs at about an instruction every 0.1s so slow is a good way of describing it. The point is though that they haven't tried to optimise it as far as I can see and so it isn't fair to judge how fast it could be made to go. The group responsible for the work are emphasising its educational and value in history rather than as a useable emulator. However it seems fairly clear that with a 12 core machine or perhaps some GPU code (which it is ideal for) it could probably run as fast as the original.
henk replied ago:
Indeed, I agree. It would be VERY interesting if this kind of simulation can be easily targeted to run on GPUs or other multi-core systems.
I have a little experience with building CPU emulators (build a MIPS R4000 emulator some time ago, which was a relatively easy task), and I remember that taking advantage of parallel hardware was quite hard. I'm not sure how modern 'normal' emulators currently handle this. The last I read about this, which is admittedly a couple of years ago, very few could take advantage of parallel computing.
So even if this vector based transistor simulation is theoretically much and much slower, it will still be a winner if it can easily take advantage of the 2000+ cores that future GPUs may have and if the traditional emulators can only use something like 2 or 4 cores.
mjames replied ago:
Exactly the point.
This algorithm should be very easy to transfer to a GPU and language extensions like Cuda make it much easier than it used to be.
Also there is the point that the group make which is that you can process the vector model to recognise higher level structures - two transistors make a flip flop, a group make a gate, gates make something bigger - then emulation at the next stage up would be logic emulation. Presumably this would be faster.
Voters For This Link (26)
Voters Against This Link (0)