Processor selection

A project log for Coven: mini-ITX cluster computer

Open source mini-ITX cluster computer

kmodkmod 07/31/2014 at 06:500 Comments

One of the things that motivated me to do this project is just how *cheap* processing power is these days.  A dual-core, 1GHz A20 can be had for $8, which is really remarkable!  The quad-core A33 is apparently going to come out at a price of $4 -- that might be a volume price, but still it's very low.  So you can buy large amounts of raw computing power extremely cheaply these days, but a bare CPU does you no good, you have to hook it up to something.  Coven aims to minimize the "something" and to maximize the percentage of the cost that goes to buying computing power (and RAM to go along with it).

I think the A20 would be a good processor to use, since they are cheap, relatively powerful, and widely-used (ex: Cubieboard).  I decided to start off, though, using the A13 processors, since they come in a TQFP package, and for the initial prototyping stages I'm more interested in debuggability than raw performance.  I'm not sure if this ended up paying off, since the A13 is a *0.4mm-pitch* QFP, which is small enough that it's pretty hard to probe the individual pins.  Also, with 44 pins on a side, it's hard to even find the pin that you're looking for -- try squinting and counting out 20 pins to find the one you want!  I have some ideas on silkscreen that could be added to make it easier, but the result is that for all practical purposes, the leads on the current A13 board are essentially inaccessible anyway.  Oh well.

Going forward, I think the A20 is a good target for the next board, since the Allwinner family of processors has good community and Linux kernel support.  The A33 (supposed to come out soon) presents an interesting technical tradeoff: for about the same price, you get 4 cores instead of 2, but you get a smaller address space (1GB vs 2GB) and lose native ethernet.  I'm not sure how important it will end up being, but apparently using a USB-to-Ethernet adapter IC results in fairly low network speeds; I saw a fairly convincing explanation once about how ethernet puts a lower burden on the CPU since more can be DMA'd and fewer interrupts are required.  A USB-to-Ethernet adapter IC also adds about $5 to the BOM, which can change the cost question.  So the A33 isn't a clear win on the technical merits: you get more CPU horsepower but might be limited by the amount of RAM or the network speed.  Also, A20 support in the community is quite mature and I'm not sure it makes sense for me to try to be on the forefront of Linux kernel support.

Outside of the Allwinner family, there are some chips that I'd love to try eventually.  The Rockchip RK3188 (or the newer RK3288) look interesting as higher-performance alternatives; the existence of the Raxda Rock SBC is comforting in terms of community / Linux support, but it's still behind Allwinner.  The Freescale i.MX6 line is also interesting since Freescale is taking support and documentation much more seriously than their chinese counterparts, but the parts just don't seem that cost-competitive.  Maybe it's because the chinese chips get bought from cheap chinese suppliers, and the i.MX6's are available through Digikey who presumably add more of a markup, but the cost per core is many times higher with the i.MX6's.

I'd love to be able to use something like a Snapdragon or Enoxys, but I doubt I'd ever be able to get my hands on one.  The recently-announced AMD Opteron-A series also looks fantastic but might also be out of reach (and might out of the "consumer parts" category).

So anyway, I think I'm going to keep using the A13 boards while I try to get the system as a whole up and running, and in parallel try to design an A20 board as an eventual replacement.