The F-CPU Project

Yann GuidonMail link, Lionel, trollhunter Bouchpan-Lerust-JuéryMail link

Freedom for the devices: Philosophy, Dogma or Religion?

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 never-ending 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 utopian 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 accurate transcript of the conference. You should have been there or try to find a copy of the recording out-takes ;-)

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.orgRemote link 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 YahoogroupsRemote link.

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

The F-CPU project has some utopian 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 "utopia", 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 programmers 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 disappear every time 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 utopia 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 programmers say their word.

Since a few years, we see a lot of CPU core designs emerging with various licenses, from the most proprietary to the most lax ones. Some are conservative, such as the LEON (a SPARC clone), some others are simply different (microcontrollers or test benches for case studies). F-CPU has an extreme position because it uses a strong copyleft license 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 resources and they organize themselves into small geographic groups. The active web-sites are located in Germany (www.f-cpu.xxx), in France and at the MIT (http://f-cpu.seul.orgRemote link). These sites are often sponsored or helped by external organizations:

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 mis-configuration, we're moving the lists to other servers. Other ways of keeping in touch and informing the members include IRC channels, conferences...

All these resources were gathered progressively. Similarly, we progressively yielded original resources 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 professional-class software, only SIMILI can be decently used under win32 (it's a free-ware from Symphony EDARemote link) 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 hereRemote link).

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 resources and personal involvement. 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 super-pipelined CPU, designed explicitely for high speed computing and real-time 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:

Fair competition

Competitivity

Profitability

Standards

Conclusion about the economical model

"Implementing a F-CPU is like making a LINUX distribution 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 mind-set 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!

They expect much and get none of them. This is a reason for them to display a disappointed 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 resources, 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 utopian engineer, but I can't stand that people less "responsible" than me give me lessons.

Conclusion

The F-CPU wants to be the first global CPU solution that is compatible with the GNU philosophy. 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.


Note: 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


Diskussion auf der Oekonux-ListeRemote link