16 core computer made of ATMegas

atmega

Your desktop has two, four, or even eight cores, but when’s the last time you’ve seen a multicore homebrew computer? [Jack] did just that, constructing the DUO Mega, a 16 core computer out of a handful of ATMega microcontrollers.

From [Jack]’s description, there are 15 ‘worker’ cores, each with their own 16MHz crystal and connection to an 8-bit data bus. When the machine is turned on, the  single ‘manager’ core – also an ATMega328 – polls all the workers and loads a program written in a custom bytecode onto each core. The cores themselves have access to a shared pool of RAM (32k), a bit of Flash, a VGA out port, and an Ethernet controller attached to the the master core.

Since [Jack]’s DUO Mega computer has multiple cores, it excels at multitasking. In the video below, you can see the computer moving between a calculator app, a weird Tetris-like game, and a notepad app. The 16 cores in the DUO Mega also makes difficult calculations a lot faster; he can generate Mandelbrot patterns faster than any 8-bit microcontroller can alone, and also generates prime numbers at a good click.

22 thoughts on “16 core computer made of ATMegas

    1. The cores run a bytecode language called “Megaliter”. As a *very* rough estimate, that’s probably 20x slower than native code. I’m sure the shared bus also adds some latency.

    1. i thought about this too. im guessing it was an issue with noise. the fact that its built on a bunch of breadboards would make this worse. especially with that data bus all over the place.

  1. Good job!
    I have been wanting to do something like this, but lack of a compiler for parallel processing has stopped me dead. I tried pseudo code, but I didn’t like it.

    1. As pointed out in another post, this is kind of like doing the Parallax Propeller the hard way (which is still cool, BTW). You can program the Propeller in Spin (native), C (compiler, free), BASIC (compiler, free), Forth (compiler, free); the Propeller makes embedded parallel processing very easy.

  2. I was pondering on this exact idea to implement a mp3/ogg player out of jellybean components. As audio decoding has lot of multiple independent tasks, this could make a good application

    1. I more thought they were talking about the first game that was displayed you know the one that looked like tetris with coloured blocks. But hey i could be wrong :/

  3. It seems like a neat concept, but I don’t really get the multi-tasking. Most of the examples are him toggling back and forth BETWEEN the calculator, the game, and notepad. It seems like most of the examples could have been done with a single uP and a separate VGA adapter. It has potential though.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s