F-CPU @ Oekonux'01 : Freedom for the devices
Copyright 2001 Yann Guidon (whygee@f-cpu.org) and Lionel, trollhunter Bouchpan-Lerust-Juéry (trollhunter@linuxfr.org)
Verbatim copying and distribution of this entire article are permitted in any medium without royalty provided the copyright notice and this notice are preserved.
version july 25th, 2001
 
 
 
 
1. Oekonux Konferenz
April 28th 2001, Dortmund, Room 4.3.06, 3:00 PM
 
The F-CPU Project
 
"Freedom for the devices : Philosophy, Dogma or Religion ?"

 
 
 
 
 
Contents :
 
 
Abstract :
 
There are a lot of good reasons to design a microprocessor : you may need one, you may want to earn money, or simply : verify if the expensive and numerous books on this subject tell the truth. However, so many CPU cores already exist that it may seem to be useless. Why spend thousands of man/months if we our efforts are already done by others ?

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 :

It is quite hard to disseminate this way of thinking, even though most people on the mailing lists are open-minded. However it proved successful to dissipate some tensions inside the group.
 
The fact remains that we can not control the existing industry and "directly" bias it towards our dreams. It would not be realistic, due to the way this industry works : it is a matter of scale. In reaction, we created a "utopy", a domain of spiritual freedom where we can imagine things without corporate constraints, and perform the case studies we want. We can control this reality and we have built around this dream. After more than 2 years of work, we can see that the total amount of work becomes significant and is not void. Yet, it is still unsufficient to influence the industry but we do our best so that, if we succeed, we influence it positively. As programers and users, we don't want Intel crap (R) anymore, and we hope that the industry will learn this lesson.
 
After all, we play with the rules of the market, which is loosely based on design reuse. Through the recycling of GNU designs and ideas, which keeps engineers from reinventing the wheel all day long, we can inject "positive" ideas that will not disapear everytime a new technology is introduced (while usually, a new breakthrough flushes something else). All this energy is spent on enhancing something stable and when it is sufficiently integrated in the landscape, it will be hard to get rid of it.
 
However, the great challenge is to "remain free" and not biased towards a particular company or technology. Freedom is expensive and few persons take care to "pay" it the good way. One must have all of that : If the F-CPU utopy is still alive and well, it is because there is nothing to loose, but instead a lot to learn and share. The emerging community of the Free Hardware developers is made of people who understand each others rather well (even when it comes to technical matters :-)).
 
 

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 :

and other publications that can not be tracked down.

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 :

The f-cpu community lives mainly through and with 3 mailing lists, the main one is english, the other two are french and german. They were created on eGroups.com but since its incorporation inside Yahoo! and the memorable loop/flood due to server misconfiguration, we're moving the lists to other servers. Other ways of keeping in touch and informing the members include IRC channels, conferences ...

All these ressources were gathered progressively. Similarly, we progressively yielded original ressources including :

However, this outcome looks very "amateur" : everything is carefully but slowly handcrafted and the amount of "things left to be done" never ceases to increase. We particularly need : We currently have no hardware or means to design the F-CPU : no workstation or profesional-class software, only SIMILI can be decently used under win32 (it's a freeware from Symphony EDA) and it is currently being ported to Linux. Otherwise we depend on the contributors who access the necessary tools at work or in their university. In these conditions, it's no wonder that we are still far from a first physical implementation. This particular situation is currently discussed (look here).

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
 
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.

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)
- 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.

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
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.

Conclusion about the economical model
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 !

"Implementing a F-CPU is like making a LINUX ditribution or package"

 
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.

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 ?"
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".

Then : "how many people work on it ?"
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.

Another question is : "performance".
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.

 

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 !

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".

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.

 

Conclusion :

The FCPU wants to be the first global CPU solution that is compatible with the GNU philisophy. We have a long way to go but we go on. Day by day, we work towards a better and more responsible computing world.

There will always remain the "classical" proprietary industry because it gives some (often fake) assurance to the uneducated customers ("big accounts" with no computer culture). Free Software and Free Hardware is more targeted towards "responsible" people who are both users and actors, who are involved in the world they live in and who want to change it. We can hope to "convince" and "educate" other people and companies by showing them the drawbacks of "conservative/secretive" design and business practices, but it will be difficult before we yield "hard proofs" of this theory. We are working hard towards the making of a first F-CPU prototype.

 


PS : Due to schedule pressure, this paper is truncated, compared to the expected lengthy presentation that we intended to do. We hope that enough details have been exposed though, despite the fact that a lot of questions remain unanswered. Thank you for your interest and see you next year.