i am still looking for CPUs that would captivate people's interest, and am also looking for projects that are willing to collaborate and thus share on both hardware development costs as well as volume pricing.
i believe i may have found a modern CPU that has the potential to be of interest to a very wide range of people, for both Commercial as well as Free Software Development purposes. it's the Xilinx Zync-7000 series:
note, right at the bottom, that the anticipated pricing for the entry-level device is under $USD 15, and that's for a 28nm Dual-Core 800mhz Cortex A9 with some really quite acceptable "hard" peripherals (2x USB2, 2x Gigabit Ethernet, CAN-bus, I2C, SPI, 2x SD/MMC) as well as a lowly 25k Logic Gates on-board FPGA. by the time you get to the mid-range (the 7030), you get 125k Logic Gates, 4x PCI-e 2.0 and 4x Serial Transceivers capable of 6.6gbit/sec each. a very rough guess on the pricing for the 7030 would be something between $25 and $30 (even in mass-volume).
What about peripherals?
here's the kicker: there's no LCD driver, there's no SATA-II controller, there's no HDMI DVI or VGA, there's no on-board 3D GPU, and there's no proprietary MPEG or other Video or Audio encoding or decoding engine.
but, far from making the CPU completely unacceptable, it's actually the complete opposite, because the on-board FPGA can do all of those tasks, and a lot more besides. thus, it makes this CPU perfect for both FSF Hardware-endorseable purposes as well as for a wide range of commercial uses.
so you want an SATA-II controller? use two of the Programmable Serial Transceivers, and program the FPGA to talk to the SATA device.
you want an RGB-TTL LCD output? use 30 pins directly off the FPGA side, drive them at 75mhz and knock yourself out.
you want an HDMI or a DVI output? use a Texas Instruments TFP410 driver, use another 30 pins to drive it from the FPGA side, and you're done. http://www.ti.com/lit/gpn/tfp410 although the fact that the 7030 has 4x Serial Transceivers, if you didn't also want SATA-II you could probably generate the HDMI or DVI signals directly (you need 3 Serial Transceivers for HDMI, leaving only one for SATA-II, which would not be enough: total required is 5 Serial Transceivers).
you want to do a Microphone? you can use any one of the 12-bit ADC converters. a Speaker? just use a Class D Amplifier (PCM) and the speed of the FPGA would be more than able to turn DMA audio data into PCM on one of its outputs.
but this is getting ahead, and is a little technical - i just wanted to illustrate that the fact that there are no "major" peripherals is not a disadvantage, it's actually an advantage, because it's possible to implement all of those with the FPGA.
What about 3D Graphics
so, whilst peripherals are covered, things like 3D are not. or... are they? i looked at the OpenGraphics Project, and it turns out that they are using a Spartan 3 XC3S4000, which may turn out to be roughly equivalent to the FPGA on-board the Zync 7030.
so what does that mean? it means that a system based around a Xilinx Zync-7000 ARM-FPGA CPU Hybrid could quite possibly not only be an OpenGraphics 3D Video Card, but also the CPU itself could be used inside an actual computer based solely around that very same CPU, and still have 3D graphics, thanks to the OGP Project!
there are two critical things to point out here. the first is that, with the right modular hardware design, a module containing a Zync ARM+FPGA CPU plus 1gb of RAM could be a "plugin component" onto both an OGP PCI-e card as well as being used in all other projects envisaged (Laptop, Hand-held, Engineering Board, Server etc.). the second thing is that the fact that the Dual CPUs already have NEON and there is already MesaGL software support (Free Software) for the ARM CPU, it is not inconceivable to perform bit-by-bit development and acceleration off to the FPGA in order to slowly gain better and better performance. Gallium3D would be the ideal starting point, here. http://en.wikipedia.org/wiki/Gallium3D
in fact, given that Gallium3D can run on LLVM, and LLVM has support since version 2.7 for Xilinx FPGAs (MicroBlaze), i would hazard a guess that actually, the job is virtually completed before it's even begun! http://llvm.org/rele...leaseNotes.html (update: it's not fortunately, the Zynq-7030 has 4 PCI-e lanes: it is therefore annoying to consider, but feasible to use a standard PCI express 3D Chipset)
The Gnu Radio Project
there is one other technology area which may find the Zync-7000 CPU particularly exciting. non-free wireless firmware is particularly galling to the Free Software Community. particularly for things like the Open Base Station Project and the Open Handset Projects. both of these projects use the GNU Radio Project as the basis for experimentation and, sometimes, actual live deployment.
however, the hardware is prohibitively expensive, mostly because it's classed as "Test Equipment" in order to actually be sold without a license, but also because it contains, like the OGP Project, a rather beefy FPGA. i have reached out to the Gnu Radio Project, to see if there is someone there who could evaluate the Zync-7000 series for use in GNU-Radio. the fact that the Zync-7000s have 12-bit ADC converters directly wired to the FPGA could mean that it would work very well as a BaseBand processor.
Handhelds, Games Consoles, Tablets, Laptops
These are just different form-factor chassis into which a module, with the Zync-7000 CPU and 1gb of RAM, could be directly plugged. Once a module with all the "hard work" exists (CPU+RAM), different kinds of chassis can be done, if they are run-of-the-mill enough, as either 2-layer or 4-layer boards, in around 2 weeks.
Of course, getting the case-work done is a different matter, as anyone who has an OpenPandora knows. the lesson learned there is to avoid that entirely by re-using existing case-work. Luckily, OpenPandora v1.0 already has existing casework!
In China, there are Industrial Flea Markets. these are multi-storey buildings where they are divided by floor for different types of devices and components. The ground floors are dedicated to finished products. 1st is usually peripherals. 2nd floor and up you get discrete components - resistors and ICs in any quantity you need. Top floor you get empty cases by the bucket-load, from discarded designs that were successful last year (or not). Licensing the designs for these cases would save vast amounts of time and money. There are thousands to choose from, so any product can be made at a perfectly reasonable price, with very little risk.
The Xilinx Zync-7000 looks like it could be a game-changer. Not only is it attractive to Free Software Developers, but also its price, performance and flexibility make it worthwhile to build competitive mass-market devices around. It's basic, having no "modern" interfaces only the basic ones such as USB2 and Gigabit Ethernet, but then the FPGA side more than makes up for that - including for Video Decode as well as 3D Graphics.
So the real question is: who would be interested to see a device made around this CPU, and if so, what kind of device, and, most importantly, what would you be prepared to pay to make it happen?
(I have to contact him to check, but I already have one person who is willing to put up $USD 1,000 towards the creation of a Laptop that meets the FSF Hardware-Endorsement Criteria. All other CPUs that meet the FSF Criteria that I have heard about are simply not worthwhile dealing with (too slow, too few features), but the Zync-7000 not only meets the FSF Criteria but is also one of the most exciting CPUs I've ever encountered)
Edited by lkcl, 21 August 2011 - 08:06 PM.