The landscape has evolved in the past decades. The concentration that is characteristic to the industrial (and financial) world has recently "killed" the most promising architectures, because the older ones are believed to be "cheaper", despite the neverending efforts that are required to make them work, and work with decent performance. The recent "death" of the ALPHA/AXP architecture (R.I.P., old chap) and the constant threat to our privacy caused by several american industrial trusts (under the cover of the "copyright and patent enforcement") shed a new and sad light on the utopic dreams that a few hobbyists dared to imagine. What we now call "Free Hardware" and sometimes "Open Hardware" is the last resort to our freedom to design and in the end : our beloved freedom to think.
Applying the GPL/GNU principles to the microelectronics world
is not straight-forward : new questions arise and new solutions must be found.
How can we protect the project and the members with the existing laws,
against patents and squatters, how can we handle the slow increase
in popularity and workload ? How can we avoid the parallel with the
"GNU dogma" ? How will I manage to make the workshop last less than
two hours ? :-)
Disclaimer :
This text is not an acurate transcript of the conference. You should have been there or
try to find a copy of the recording outtakes ;-)
Introduction : what is the F-CPU ?
The F-CPU project has started as the FREEDOM PROJECT in mid-1998. Most of the original files
are still available from http://f-cpu.tux.org
and reflect the reaction and utopia that motivate its contributors. The exact story can be
reconstructed with a reading of the mailing list archive at
Yahoogroups.
The F-CPU story began when a few Linux kernel contributors got fed up of all the x86 problems and antediluvian features that make programming PCs more a pain than an art. The rumor that the ia64 details would be kept under NDA raised the fear that the current Wintel monopoly would survive with a new face. The Freedom project was started as a reaction and a forecast, a study and scenario for a new kind of consumer-class devices, where the consumer is also actor in the model. In fact, we realized that "there can be no Free Software without Free Hardware" and at a time when Linux is a "commodity", the CPU is still kept wrapped with NDA and trade secrets. This could not last longer and an increasing number of hackers, hobbyists and professionals gathered around a mailing list to discuss about CPU architecture, a bit like on usenet (comp.arch).
The F-CPU project is not the only project aiming at designing a "open-source" processor. We already know that the LEON and the OpenCores project are successful examples of CPU cores that follow the Open Source Software example. A large number of small projects, with various ambitions, means and outcomes, exist and are listed by the Open Collector site at http://www.opencollector.org.
The F-CPU project has some utopic goals but high stakes :
"Design and let design"
F-CPU is a design as well as a community of hackers, hobbyists, curious people,
students or professionals. We communicate mainly through mailing lists and we sometimes
meet (such as in this conference). We aspire to the same things in general but
we can diverge on specific matters, opinions or culture.
"Live and let live" is one of the golden rules if one wants to live in freedom and peace. For a designer, "to live" means "to design", hence "Design and let design". This has a lot of meanings, such as :
The F-CPU Project in the landscape
A computer is a stack of numerous software and hardware layers.
The CPU is the center of this stack but it is mostly overlooked
because it is believed that there is nothing left to do at that
level. The microprocessor-centric companies have locked this
field with thousands of patents that cover everything and anything,
even the most obvious features one can think of. The Free Hardware
projects, including the F-CPU, are fundamental : their viral
effect is able to unlock this field and let the real programers
say their word.
Since a few years, we see a lot of CPU core designs emerging with various licences, from the most proprietary to the most laxist ones. Some are conservative, such as the LEON (a SPARC clone), some others are simply different (microcontrolers or testbenches for case studies). F-CPU has an extreme position because it uses a strong copyleft licence for a far fetched architecture (superpipline, 64 very wide SIMD registers...).
This project aims at letting the user become responsible of the architecture. The design team is therefore made of volunteers from most continents in the world, with different cultural and technical backgrounds (electronics or programming). There have been several articles about the project in the international press, for example :
French and German people appear to be the most active contributors. They write most of the ressources and they organise themselves into small geographic groups. The active websites are located in Germany (www.f-cpu.xxx), in France and at the MIT (f-cpu.seul.org). These sites are often sponsored or helped by external organisations :
All these ressources were gathered progressively. Similarly, we progressively yielded original ressources including :
We also need a better web infrastructure, motivated and competent contributors, computation time for the simulations and so much more. This project requires a lot of ressources and personal involvment. The subject requires a lot of knowledge and the learning curve is very steep : we need a very low turnover among our contributors. Different fields of expertise are needed so everybody can find something to do.
Although the F-CPU is meant to be used on desktop computers, it will not
run x86 software, unless a software simulator (such as BOCHS) is used.
The current F-CPU architecture is a high performance SIMD supepipelined CPU,
designed explicitely for high speed computing and realtime applications such
as signal and image processing, scientific and industrial computations
(in other words : number crunching). The ideal OS has a POSIX compliant API,
the first one is likely to be GNU/Linux. However this is not a "linux only"
CPU and the architecture provides room for flexible "experimental" kernels.
Economical model
In this part, we want to show how "it is possible to make money with the F-CPU" and under what conditions :
- Respect of the licence and all the degrees of freedom (as stated in the GPL and the F-CPU charter)
Fair competition is preserved by the respect of the licence terms, that specifies
that all the changes to the files and files that are generated MUST be available at no charge.
Any difference in price or performance comes from the silicium process and the comercial
part of the distribution, not from hiding architectural features. That's where the word
"open" becomes meaningful.
Competitivity of a product is determined by the time-to-market capability of the company,
its ability to make reliable products and the support it grants to the customer.
There are "fresh" and "old" product, by the time new versions appear, and they can appear
quickly (forward and backward compatibility are very important !).
Just like Linux distributions appear and disappear quickly, the turnover and hence the expected
volume of the market is promisingly higher and more competitive (the dream of a real "commodity"
CPU can become true). A RISC CPU has less inner complexity than an OS so it's easier to know if
a "distribution" is "stable".
Profitability is ensured by the free availability of any version
while a better margin can be obtained with innovations. Reputation also plays a role,
like in the Linux distribution model.
Standards
Conclusion about the economical model
The first thing to understand is that they are rarely "engineers" or "designers"
but "commercial" people. Their priority is different. They do care less about the
path but their goal is obvious (read above). Most of them come from middle range
technical positions and evolve to marketing, they know what a microprocessor is
but never cared or thought about designing one themselves. This is a radically
different mindset and they have the power to influence the industry and the
engineer's work itself ! When I approach them in order to give them the opportunity
to "make money" by distributing F-CPUs, they already think about what i am wanting
in return or or what i am asking to them (as if i was homeless
and begging for a coin). However, when i start to tell them that i am making
a CPU that will blow their business, they are less distracted :-)
What people ask me first is : "When ?"
Then : "how many people work on it ?"
Another question is : "performance". Whygee's rant
I am getting tired of those people who expect Free Software and
Free Hardware to surpass easily other products. They truly want everything !
What they don't see is that Free/Open projects put the
business equation in other ways, while some of the input values don't change.
There are "constant values" such as the available technology, budget and ressources,
but the equation for "proprietary" and "free" business models are different.
For one thing you win, you can not expect to keep the counterpart. For example,
if all the work is done for free by others, how dare one hope to control this work ???
The yield changes, becomes positive in some cases and looks negative in other cases.
One has to weight and balance the advantages and the drawbacks, like everywhere.
Portraying "the big picture" of the Free Software philosophy and how the GPL works, is a
good way to balance the deception. The short term view ("if i release
my code, others will steal it") is never balanced by the larger scope
("The GPL garanties that you can sue them if they don't redistribute
their modifications to your code").
I truly get upset by short-sighted "professionals" who fear all risks.
They claim a right to make money easily but they yell when they break
their toy. I know, i'm a utopic engineer, but i can't stand that people
less "responsible" than me give me lessons.
The F-CPU utopia comprises a particular ethics. We know that the reality is
not pink but we realize (thanks to regular contacts with independent professional designers)
that our point of view is shared by those "techies" working in small or big companies
(but who can not afford to challenge their "job security" for some sweet dream).
We are not the only people who feel this need for a "fair" balance between
profit and technical innovation.
- Companies that make a lot of money with the F-CPU are asked to help more the project in return.
- Anybody can make his own business :
- download the latest version of the F-CPU files
- define a goal (speed, budget, number of chips, etc.)
- "cook" the F-CPU for the technology you use (fine-tuning of the parameters, compilation, validation)
- order the chip batch from your prefered fab plant (TI, IBM, TSMC,...)
- resell the batch as individual chips or as part of a device.
We all know that the industry can not continue without good norms and standards :
the goods of IEEE754, POSIX, JEDEC and other initiatives are not to be proved again
(despite some sad efforts like PCI, DVD or USB...). Now, this crucial norm
concerning the Instruction Set Architecture for consumer products is proposed
by the consumer itself. We expect that the leading companies will be surprised but
they will remember that those companies who "played the fair game" with the Open
Source developpers have gained early and increasing market share. Now, Linux
is not laughed at anymore (look at the attacks from Microsoft) and Adapted, Matrox
and S3 are preferred because they are best supported. Emerging companies that want
to enter this market will be forced to use an even more agressive (more open) strategy.
It sounds logical that a Free/Open CPU architecture will succeed, like those companies
who understand the principle of releasing low-level specifications.
The F-CPU project and all the Free/Open HW initiatives
have the positive effect of reducing hardware price
and development time, so one is more concerned about what a chip really
is : silicon. The fundry prices will therefore be important for the end buyers
and chip fundries will remain the place where all the benefits are done. Hence this
good stock tip : If you want to be rich, buy a fundry !
How to "sell" the F-CPU to professionals ?
This is a small FAQ that i wanted to write because my experience with "IT professionals"
showed that they are sometimes "off the ground". They have a particular reality and
goal (namely : "do business" or more crudely "make money"). I am rarely rejected when
i approach them, but they sometimes look at me like i'm a real fool.
Rule number one in the F-CPU is : "if you make plans, they are never
followed". There is no deadline because we know that we will never
meet the criteria. However the development process, though slower
than in the industry, is more "natural" and evolutive. The usual way
in the industry is "build and patch", while we "build and rebuild",
which is slower but keeps the source code base from rotting and falling
into "abandonware".
The "core team" counts an average of a half dozen of active developpers.
However, because it is a "contributive/volunteer" effort where everybody owns his
copyright ("distributed copyleft"), it is difficult to know exactly. People are
not bound in any way to contribute (or not). This ensures that contributors
are highly motivated and the others don't bother. A real census would cause
privacy problems.
Economic laws says "you get what you pay for", there is no secret !
Comparisons are still impossible while no implementation exists.
This is fairly deceptive, but subjective benchmarks are, too.
They expect much and get none of them. This is a reason for them to
display a disapointed face and tell you that "the thing will fail".