Link Details

Link 492169 thumbnail
User 436144 avatar

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.
  • 26
  • 0
  • 4773
  • 25

Comments

Add your comment
User 213745 avatar

kitdavies replied ago:

1 votes Vote down Vote up Reply

Now that's what I call "reverse engineering"

User 436144 avatar

mjames replied ago:

1 votes Vote down Vote up Reply

And it puts "virtual machine" into context.

User 265881 avatar

Topnotch replied ago:

0 votes Vote down Vote up Reply

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.

User 436144 avatar

mjames replied ago:

0 votes Vote down Vote up Reply

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.

User 236075 avatar

henk replied ago:

0 votes Vote down Vote up Reply

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!

User 436144 avatar

mjames replied ago:

2 votes Vote down Vote up Reply

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.

User 236075 avatar

henk replied ago:

0 votes Vote down Vote up Reply

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.

User 436144 avatar

mjames replied ago:

1 votes Vote down Vote up Reply

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.

Add your comment


Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.

Java Performance Optimization
Written by: Pierre-Hugues Charbonneau
Featured Refcardz: Top Refcardz:
  1. Design Patterns
  2. OO JS
  3. Cont. Delivery
  4. Java EE7
  5. HTML5 Mobile
  1. Node.js
  2. Debugging JavaScript
  3. OO JS
  4. JSON
  5. Ajax