Open-Source Processors
clay pigeon writes "This EE Times article covers the development of open-source processors. No doubt exciting news for hardware hackers and those with a need to know about every last detail of their systems, but how will this effect the hardware industry? Can open-source hardware duplicate the success of the open-source software movement?" I'm not holding my breath. Fabrication facilities are a lot more expensive then a CD-ROM presses (or more accurately, internet connections). But I still hope it happens. It would be an interesting market if everyone worked together on the designs, but built their own chips.
Um, since you don't have a link, I can only assume you are talking about the "WinBoard" that showed up on Slashdot last April 1. I don't think we'll be seeing Winboards anytime soon, simply because of the chicken-and-egg problem. How do you load stuff from disk into memory (your OS) when the disk and memory controllers are part of your OS?
Down that path lies madness. On the other hand, the road to hell is paved with melting snowballs.
I read the internet for the articles.
It's more accessible than some of the other responses would lead you to believe. The tools are quite good, and the devices themselves project a simple synchronous digital world abstraction.
Excellent basic synthesis and FPGA implementation tools are now $0-$55, several proto boards are $100-$200, the devices themselves are <$20, and with them you can build 16- and 32-bit processors that run at 33-67 MHz and beyond. Perfect for many embedded systems projects.
Visit our web site, FPGA CPU News [www.fpgacpu.org] for further information. And/or join the mailing list [www.yahoogroups.com/group/fpga-cpu].
See my Circuit Cellar magazine article series, "Building a RISC CPU and a System-on-a-Chip in an FPGA" [www.fpgacpu.org/xsoc/cc.html]. The corresponding free kit (which requires a $100 FPGA proto board from another company) is at [www.fpgacpu.org/xsoc/index.html].
Or see my recent DesignCon'2001 paper on "Building a Simple FPGA-Optimized RISC Processor and System-on-a-Chip" [www.fpgacpu.org/soc-gr0040-001201.pdf]. This latter paper includes the annotated synthesizable Verilog source code of a simple CPU -- less than 200 lines of code.
Learning to design digital systems with a hardware description language, and then progressing to design your own peripherals, and perhaps processors, is not a trivial undertaking, but neither is it anymore an exclusive and unobtainable art, practiced only by high priests in well funded semiconductor companies with in house fabs.
Jan Gray, Gray Research LLC
You are wrong, it will succeed to the same extent as open source software for all the same reasons. Remember, this hardware is just a different kind of software, it's software for silicon. It's cost is asymtoticly approaching zero, just like sofware. The design sofware is now free, and fabbing costs a tiny fraction of what it used to, due to competition. You can load it into fpga's if you want to, and especially, you can simulate it.
--
Life's a bitch but somebody's gotta do it.
As I have tried to post twice, MIT Tech Review has an article regarding the ability to use an inkjet printer to print a semiconductor chip.
:)
It is a very interesting read and even speaks to the possibility of this allowing open source cpu's in the future. Imagine, downloading and printing the latest version of your cpu before upgrading to the n.n kernel it is targeted at
The problem with this technology is that even if you can shrink an inkjet printer head to the point where you're laying down 0.18-micron dots, you'll have one heck of a time keeping the environment clean enough for your fabbed chip to work. This is one of the main reasons why semiconductor fabs are so expensive (though other factors definitely contribute).
If you're printing at anything other than deep submicron linewidth... your chips will be useless. Maximum operating frequency, to a rough approximation, goes up as the inverse square of the linewidth. Make the linewidth 100 times wider, and your chip will run about 10000 times slower. You're not going to be playing quake on an inkjet-printed chip any time soon.
This technology is extremely useful for making things like active-matrix displays and cheap "smart" devices, but that's about it.
Now, the silver lining. You _can_ fab moderately complex chips using Field Programmable Gate Arrays. These have been around for a long time, and are frequently used for prototyping. You'll get something a tenth the complexity and a fifth the speed of a real chip, but that's still enough for many applications (program yourself a sound card with nifty new features, or emulate an older gaming system or computer in hardware). This will also give you a training tool for gearing up for the real thing (true IC design and fabrication).
Fabbing ICs is impractical for individuals, but possible for organizations. It'll cost you about $500k or so once you have a finished, debugged design to produce a few hundred thousand chips (a couple of wafer runs; the first one or two runs will be buggy alpha silicon which you test and revise).
I'd be interested to know though, for anyone who has experience with FPGA, if the best FPGA tech would be capable of creating even a general purpose embedded CPUs like the Z80.
Sure, easily. Current top-of-the-line FPGAs let you synthesize designs with on the order of a million gates or so.
People have been writing papers about chips with reconfigurable parts for many years. The idea continues to show promise, but the practical problems with actually _using_ something like this are great, and the benefits aren't amazingly spectacular.
You can buy modules containing integrated processor cores and FPGA logic already from Altera and the other big FPGA companies.
One of the biggest issues might be fabrication costs as somebody else has pointed out. The bigger issue is finding a simulator and synthesis tool to do the job for less than current costs. I think more effort should go into Open Source simulators so that you don't have the minimum ~$5000 entry price (from Fintronic). Forget about synthesis. Tools from Synopsys cost upwards of $100k a license. If I knew how to write C and pure software I'd think about writing those tools. But for now I'm working full time designing ASICs.
FPGAs are an alternative, but still not that cheap and they too have their drawbacks. Ever tried routing one so that all the registers get their data on time? Not very fun. Ever tried pushing one past 50MHz without having to pay $1000 a chip? (If my knowledge on the current state of FPGAs is incorrect, somebody please correct me.)
If you have a small design, yes, you can use an FPGA. As a matter of fact, it's a neat idea. Too bad simulators cost so much (that $5000 thing, though Altera and Xylinx tools might be cheaper). If you want high-volume - another poster correctly stated - $250k NRE (non-recurring engineering) charge just to set up, plus a per-unit charge for each ASIC (usually a couple of hundred dollars).
Don't think that it's all that easy. In some ways Open Source could probably help - on a module level. As in, hey, I just wrote a really cool, high speed SDRAM controller. But on a full-chip level I think you'll find that it's a bit more difficult.
Right, it's like reprogramming the micro-instructions on the old Vax and PDP-11 machines... a little microprogramming, some wire-wrap... it's all good.
--
"It's tough to be bilingual when you get hit in the head."
I wouldn't put the CueCat in the same class of hardware as anything as complex as... oh, my alarmclock (granted, it is an X-10 controller, too). After all, the hardware on the CueCat could replicated with a 556 and some other chips from The Smack (minus of course the propritary tracking bits, which we didn't want anyway). Handheld scanners aren't all that hard to implement, though theyare a lot cheaper if you get them free...
The *real* hardware industry (pick a few uProcs, DSPs, comm chips, etc) generally does a really good job with design... The fact that Winmodems are crippled hardware isn't much more than limited requirements, with low cost being the driving factor. Processors, in most cases, can run any number of operating systems, given the right motivation on the part of the programing teams. Most O/Ss need the same basic hooks, so it usually isn't a big stretch (except for those recodes of the asm).
The most important "openness" that hardware companies can provide is full interface specs on their products... register sets, timings, etc... with that information, a person or group could do almost whatever they want with a given chip (even those winmodems).
As for bz2 on modems... software compression is nice, and easily added (of course both phone-link endpoints need to support it). The hardware compression offered by (for example) USR/3Com has been pretty impressive, relatively speaking, since you have a limited block size that you will work with. The adaptive compression used in bz2 may or may not be suited for that task, but that's another debate 8^)
--
"It's tough to be bilingual when you get hit in the head."
Flabdabb Hubbard said: "What will happen if the notoriously poor quality control standards of 'open source' reach the hardware level ?"
What are you talking about? Free Software is often of quality as good as or better than proprietary software. Some companies (such as Red Hat) have put out poor products such as RH7.0 (but, remember, the file handle leak was caused by a piece of new Red Hat software which had not been released and subjected to the standard Free Software "many eyes"). This ought not to reflect poorly on the movement as a whole - the software they chose (such as the notorious beta compiler) was simply not the best of free software.
FH continues: "Anyway, companies like Sun have tried this with sparc international, (no doubt someone will whinge about the license) but this is essentially an open source CPU."
I have no idea what the license was, but it's almost certainly not anything like open source. Open source does *NOT* mean "you can look at the source code". It has a *SPECIFIC* meaning, which you can find at www.opensource.org. This *is* important. That you make this mistake indicates a deep lack of understanding of Free Software and Open Source software.
Become a FSF associate member before the low #s are used
(maybe its the dilbert zone time)
list of open source projects and benchmarks is at
http://www.ics.uci.edu/~sumitg/CadPages.html#Benc
people are beginning to use C or variants of C (see http://www.cecs.uci.edu/~specc)
for hardware design and simulation.
synthesis tool that generates hardware starting from C at
http://www.cecs.uci.edu/~spark
I am a student at Texas A&M University and we are going a Senior Design Project with an FPGA. It would be nice to see an open core for an SDRAM Controller or any other chip for that matter.
Altera has many designs which you can download as MegaFunctions, but you can't see how they work. You just incorporate them into your design by feeding in inputs into the black box and reading outputs.
I can't see why people would spend lots of time and money into developing open cores though unless they wanted quicker adoption by downstream developers. Perhaps a reference core which other people could tweek. It would be nice to see GPL of some sort make sure the cores stay open... cuz if it doesn't stay open then whats the point? You could just be doing the fun grunt work for some other putz who will probably come along and market your work without giving you credit.
Anyway, you guys can also check out opencores.org for more info.
JOhn
Campaign for Liberty
Software you can do at home - hardware takes infrastructure that most people don't have access to (fabs, NRE, synthesis and layout tools etc)
After all to build a real high-end CPU you need a the work of maybe 100 people for a couple of years ...
For these reasons I think that things like OpenCores make sense for companies but not so much for individuals (however much I wish it were otherwise :-( )
Wouldn't it be cool if a chip plant were the size of a CDROM drive! Instead of buying CPU's you'd download designs and burn them! NaCPUster!
Someone you trust is one of us.
I see little need of open sourced hardware. The hardware industry, unlike the software industry, has done a very good job in providing a powerful, reliable, flexible, and inexpensive product, and has done so without complex usage rules (read: license terms) that arbitrarily remove your rights to use the product under Fair Use rules.
This is indeed the bottom line. Even if you outsource the manufacture, you still need to pay several million dollars to manufacture each stepping to test it. A production CPU will only go through a half a dozen steppings before it's a product, so you have to be very careful on each one. Software programming (and, particularly, open source programming) is 'hacking'; you just recompile and program until it works. With hardware you can't do that, because you can only 'compile' it a couple of times.
The basic idea here is that high-volume embedded devices today usually consist of a CPU and various application-specific elements on a single chip. When designing an embedded system, therefore, you don't buy CPU chips, you buy the right to replicate a CPU design on your own chip. Since in many cases all you need is a rather vanilla CPU, having an open-source description of some reasonable CPU reduces product cost.
This isn't for desktop systems. It's for appliances, handhelds, and such.
but rather for things like OpenHardware. Where hardware is built like it always has been but we just get the specs so drivers etc. can be written and improved.
Cypherpunks: Civil Liberty Through Complex Mathematics. Those who live by the sword die by the arrow.
But hasn't MIPS been doing something like this for a while now?
Lemme see, a open standards based processor that can be individually implemented by the individual companies, many of whom are willing to release the very details specifications of how their processor works?
Because isn't that what we want? I'm no electrical engineer, I don't understand how the implementation goes, but as long as it supports a common set, and I can get precise documentation on how to bring the board up, thats pretty much all I care about.
What befuddles me is that the MIPS processor, (which is so well documented, easy to use, and widely available from companies that don't have a monopoly) has fallen so far behind the others, both in Linux kernel implementation and its wide range of usage. Any opinions as to why?
Do you have Linux and a DotPal? Click here now!
Motorolas new coldfire is 100% Synthesized, including the on chip cache. Of course they have probably helped the router a bit while placing the cache blocks and clock distribution. But the core byself is a sea of gates.
Come On! What an insane idea - it takes FACTORIES to build chips, complicated multi-billion dollar factories with clean rooms, tons of technicians operating custom built machinery, and not to mention distribution methods, QA testing, supporting manufacturers to deliver compatible motherboards and components.
No, I haven't read the story, but who's going to dedicate factory time to building a processor that is open source versus factory time to build a proprietary processor designed with YEARS of experience.
Also, don't forget that the lifecycle of chips and software are drastically different. Upgrades to software tend to come every 6 months to a year - with patches in between. Upgrades to processors come more like every 3 to 5 years. Who's going to back the open source chip when they find a bug that calls for a major replacement?
The reason open sourced software development works so well is because many people can help out on the project and put as little or as much time as they want. With open sourced hardware, not nearly as many people will be able to contribute to the cause due to lack of hardware resources. Don't get me wrong, it's a great idea, but I don't think it will get the same success as open sourced software.
Yeah, if you want gigantic, slow, hot, wasteful chips. If you want high-performace chips, like we're talking about here, you would at least have to design the datapath by hand. And have you ever synthesized memory, by chance? Probably not. I bet you would say "just get a memory compiler". What about clock generation and distribution? What about high speed digital signaling?
On the other hand, attitudes like yours are good for people like me who design chips for a living. You see, when people that think "designing chips is like programming" start trying to design chips, that is true job security for people who actually know what they're doing.
Because of these factors, who would be willing to open up their processor designs? Also, if processor designs were open, how many people would realistically be able to make meaningful contributions? I imagine very few people on the street could tell you how to create an XOR operation with a simple set of logic gates. :-) (And I'm not saying I could either.) However, I'd say a large majority of people could pick up C++ in a few weeks (and they do) versus the years up years of studying that hardware engineers suffer though.
Who knows. It could work. It'd just take some completely new thinking.
He thinks it's a good idea, but he points out several key issues that differentiate free hardware from free software.
hehe.
Seriously, though, this model, if it works, will end the current conception of consumer processors as a secret technology as worthy of hiding as much as an Enigma machine would be.
Furthermore, it gives less developed countries a chance to advance with innovative designs. Hardware making is expensive, but with a relatively small investment, a poor country could put out processors on open-source models, perhaps specializing rather than trying to compete with the big boys Intel and AMD.
Goat sex free since 2001
That is beside the point. The ability to design the chip openly is valuable in and of itself. Perhaps it would never see the light of day. Who cares - if the idea behind the design is sound enough, it could very well be adapted into a product from a "viable" chipmaker. Maybe I'm not being realistic, but I don't see this as one of those "doing something because you can" deals... this could have merit, even if only from a pure science point of view. There's nothing wrong with cold, hard research - something can always be learned.
Here's a question, though: Is there a way that if someone has a chip design, that design could be emulated in software to test the concept? Again, not being my field, I have no idea if doing such an emulation would even pan out anything useful... just an idea.
Hi! This is the Sig, blatantly attached to the end of this comment.
Therefore, holding copyright on the design of a chip is largely irrelevant, especially when the manufacturers essentially operate as a cartel. Have you seen Motorolla designing an x86 chip recently? Didn't think so. With a few public exceptions the processor manufacturers largely stay away from each other.
However, they will be receptive to open source as it would allow them to downgrade their expensive design engineering teams, outsource and up the shares dividends accordingly.
I think Open Source designed processors will be higher quality, but it won't make any difference to price or competition in the field.
They fuck you up, your mum and dad.
--Anticipation of a New Lover's Arrival, The
You can test the logic (high level) design of circuits on an FPGA, but CBL (Clocked Boolean Logic) design is sensitive to races - unlike alternative logics that are delay-insensitive (and asynchronous!) such as Theseus' Null Convention Logic (NCL).
Having said that, rapid prototyping using FPGAs, such as Xilinx's contribution to artificial intelligence research can be neat.
Multi million gate, very fast FPGAs are already available, and I personally don't think it will be very many years before they are suitable for general purpose microprocessors, rather than just special purpose reconfigurable computers. And when that happens then:
Anybody can fix it when it breaks. I have seen in the last couple of years a dramatic increase in the number of VHDL simulators available, and a corresponding decrease in the cost of them. When someone identifies the problem, they will just write a patch, and then you will download into your FPGA/microprocessor/whatever hardware. This idea is already available with Xilinx Internet Reconfigurable Logic.
You can tweak it to your needs. Just as with software, your typical hacker is not going to do extensive verification. They will do a quick simulation to test the changes they made, load the design into the FPGA, and try it out. And if it doesn't work right, just do another iteration.
How many people are going to learn Verilog/VHDL? How many people have learned JAVA, Python, Perl... (this list is almost endless). And my HP16500 mostly sets in a corner gathering dust. I am now seeing the practice of imbedding a logic analyzer into the FPGA, and having a GUI frontend on your computer.
See Internet Reconfigurable Logic from Xilinx. These chips are now in the multi million gate range.
More people might be using PPC, MIPS, or StrongARM if there were inexpensive motherboards; the fact that there aren't should give the observer cause to say "Hmmm..."
I'm not sure just how far this issue extends...
The point is that it's not good enough to have a slick new CPU design; you need a system around it to take advantage of it, or, quite frankly, just to allow it to function.
Those that were prepared to "roll their own MIPS variant" to build some highly customized embedded system may find this a quite acceptable scenario. But anybody thinking that this leads to having VA Linux Systems selling F-CPU-based systems any time soon is severely delusional...
If you're not part of the solution, you're part of the precipitate.
As an intermediate, I would think that programmable logic would be a big boost to computing. This could go in an add-on card, on the motherboard, or even on the CPU die. When you want to view jpegs, it gets configured as a jpeg accelerator. When you want to generate an MD5 digest, it gets configured for this.
There are already companies working on this. At the design automation conference, I saw a company that was working with an addon card that would accelerate different algorithms. And it ran under Linux!!
RTC magazine just had an article on the 5 big technologies. One of these was Linux, and the predicted 6th technology is CPUs with embedded FPGA.
JET Program: see Japan, meet intere
This is hardly pathetic. To start off this will no doubt drive the creation of even better opensourced circuit development and similation software. The better such software is the less the hardware costs required to develop and debug such designs. Secondly a lot of various new techniques are opening up that would allow fabrication to be much cheaper and more likely to occur at home.
Sure open source hardware may take a while to get going as the curve to get into it is higher in both dollars and education but there have already been stabs at such things for years and it's succeeded in some lesser hardware hacking areas pretty well. Just remember if it wasn't for the home hackers we might not have PC's at all. A lot of people never thought the PC could take off for similar reasons but it seems to be doing okay. They didn't think Linux could take off but again it seems to have made a place for itself.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
Would it really be that bad?
Except for having to recompile the code, Transmeta is doing exactly that. You can upgrade your CPU. If they open their code-morphing software, they you could recompile your CPU (code). That would be cool.
You can learn to be an adequate coder by reading a few books, trying something, changing the code, trying something, heck, this is how both MS and the open source world started.
This doesn't scale well to actual chip making though. You really need a thorough grounding in digital logic before you start throwing ands, nands, xors and ors around. There are no higher language equivalents like Perl or VB for chip making, it's just tedious gate and run after gate and run.
Plus, there isn't as much room for self expression in chip making either. Taking the Perl example again, using hte language and reading the Camel book you get a good idea of Larry Wall's mindset. Can you get this from a cip? No?
But, if you're a geek with delusions of grandeur and have a few thousand dollars to throw away in a fab, don't let me stop you.
Hardware design, and chip design is an esoteric and hard to understand skill, debugging a race condition in a silicon chip can take a skilled technician many many hours of painstaking labor.
Contrast this to software development which is more often than not simply drawing a pretty screen, and filling in a few callbacks.
What will happen if the notoriously poor quality control standards of 'open source' reach the hardware level ? I mean, if your kernel doesn't compile, you simply back out the changes, but if your CPU wont boot, what do you do ?
Anyway, companies like Sun have tried this with sparc international, (no doubt someone will whinge about the license) but this is essentially an open source CPU. It hasn't really caught on.
I think this is just an attempt to garner publicity.
Open Source should confine itself to the realm of software, where it makes eminent good sense.
You can learn either language relatively quickly if you know some other programming langauages - but using them for logic design does require a grounding in hardware that's outside of normal programming experience (wires, low level concurrency etc etc) - and converting a working simulation into a physical device requires a lot more infrastructure than most people have on hand ....
Um....no.
There are many high level design languages for chip design, VHDL and simulators for testing designs prior to fab.
Designed chips is very much like programing.
The Economics of Website Security
in the responses posted here so far. Most of the people seem to be whining about how much fab facilities cost, and how developing software is so much easier. Nobody talks about how much presses (both CD and Tree) cost, because we transmit our programs over the internet and run them on our own computers.
Nobody seems to know about the equivalent for hardware: Designs written in a Hardware Description language such as Verilog or VHDL can be worked on as a group. When you want to test it, you download it to an FPGA. Complete development kits including software and a protoboard can be had from Altera or Xylinx for a few hundred dollars (less if you are a student). If you make a mistake, fix your VHDL and recompile.
Also, people fail to consider that the designs for this type of thing rarely are on the level of AMD or Intel. We don't make 22 million-transistor designs, but if you want a custom hardware accelerator (say, an Ogg Vorbis accelerator, or hardware accelerated encryption where you KNOW EXACTLY what it is doing. No NSA backdoors. No worry about getting specs from OEMs.) this is the way to go about it. If your project gets popular, you can get them made in quantity as ASICs from any number of companies.
Please, people, look into these things before you start flaming a project like this.
"'Tis great confidence in a friend to tell him your faults, greater to tell him his." --Poor Richard's Almanac
Je t'aime Stéphanie
As I have tried to post twice, MIT Tech Review has an article regarding the ability to use an inkjet printer to print a semiconductor chip.
:)
/. would not have rejected this twice, never understood why!
It is a very interesting read and even speaks to the possibility of this allowing open source cpu's in the future. Imagine, downloading and printing the latest version of your cpu before upgrading to the n.n kernel it is targeted at
The speed is not yet that of a Pentium, but the researcher believes it will be someday. Wish