Message 03124 [Homepage] [Navigation]
Thread: oxdeT03124 Message: 1/1 L0 [In index]
[First in Thread] [Last in Thread] [Date Next] [Date Prev]
[Next in Thread] [Prev in Thread] [Next Thread] [Prev Thread]

[ox] Konferenz-Beitrag: The F-CPU Project - Freedom for the devices: Philosophy, Dogma or Religion?



The F-CPU Project
=================

Yann Guidon [whygee f-cpu.org], Lionel, trollhunter
Bouchpan-Lerust-Juéry [trollhunter linuxfr.org]

Freedom for the devices: Philosophy, Dogma or Religion?
-------------------------------------------------------

** Unable to import figure guidon.png **

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.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 [http://groups.yahoo.com/group/f-cpu].

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) [news:///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 utopian goals but high stakes:

o    create the "coolest, sexiest CPU ever" because we know that we
     can't win in the race for raw performance.

o    kick Intel out of the desktop and corporate markets

o    create a viable, alternative, "free" standard on which one can
     confidently base long-term SW coding efforts, leading to a
     longevity of many decades (40 years?)

o    create a standard that will make all computers "even", while
     still providing adaptability (case by case customization) without
     bothering us with the balance of the architecture

o    promote the "Free" model against the "Open" model which offers
     more potentially dangerous compromises. This is not a "Open CPU"
     but an architecture where the user is also involved and
     responsible, not a "dumb consumer" or a meaningless fraction in
     the "market share".

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

o    "Please let me design in peace, don't reduce my freedom to think
     with your patents etc."

     People usually don't understand how frustrating it is to face
     useless challenges such as bypassing patents.

o    "If you're not happy with that design, don't bother me but start
     your own stuff or reuse something that already exists."

     After all, there are enough designs out there, so why waste time
     discussing endlessly about theory and design tastes.

     During the whole F-CPU history, a lot of people have come and
     said "my design is better" while we were already advanced in
     another design, or "I don't like F-CPU because I want something
     else". Stopping everything only to "try somebody else's idea" or
     "answering somebody's requirements" is not constructive, because
     it stops any momentum. However, we can benefit from parallel
     development and exchange points of views. Buggers are left aside
     and "the one who does is always right", speeches are useless when
     there is no source code.

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:

o    money

o    time

o    patience

o    good will

o    talent

o    and a vision...

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:

o    Linuxfocus

o    Software Development (us)

o    c't (de)

o    Arroba (es)

o    Linux Loader, Linux Magazine (fr)

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.org).
These sites are often sponsored or helped by external organizations:

o    In Germany, the Chaos Computer Club sponsors the f-cpu domain
     names (www.f-cpu.org [http://www.f-cpu.org], www.f-cpu.net
     [http://www.f-cpu.net], www.f-cpu.com [http://www.f-cpu.com],
     www.f-cpu.de [http://www.f-cpu.de]) through the Devcon.net
     [http://www.devcon.net] company.

o    Still in Germany, the GAOS e.V. [http://www.gaos.org] offers
     resources such as CVS [http://gaos.org/cgi-bin/cvsweb.cgi/] and
     legal support

o    In France, Linuxfr.org [http://linuxfr.org] supports the media
     coverage and hosts some archives

o    Still in France, APRIL.org [http://www.april.org] offers some
     online help (mailing list, online management tool mantis
     [http://mantis.f-cpu.org]) and represents the FSF in France.

o    In the US, the SEUL.org [http://f-cpu.seul.org] site (which hosts
     the OpenCollector site, among others) offers Linux accounts, CVS,
     mailing lists [http://www.seul.org/archives/f-cpu/f-cpu/] and
     similar resources for the F-CPU contributors.

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:

o    A manual and preliminary specification drafts in HTML then LaTeX

o    Translations of these resources are ongoing: German, Spanish and
     French

o    Several web sites: f-cpu.org, .net, .com, .de, as well as mirrors
     around the globe

o    A more or less stable and slowly growing international core team

o    Some preliminary VHDL files

o    Participation to several meaningful events (HAL, CCC, Oekonux...)

o    Some press coverage and audience, a slowly growing interest in
     the industry

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:

o    full time working contributors (and more free time for the
     existing contributors)

o    web masters (the web-sites are looking awful and unorganized)

o    sponsors that can contribute with EDA tools and similar
     meaningful resources

o    distributors willing to distribute our work on "physical media"
     (either CDROMS or silicon)

o    more press coverage and a better "education" of the users to the
     new concepts brought by the F-CPU project, business model and
     architecture. Free software has become a quite well known field
     but Free Hardware, with its different life-cycle, resources,
     mentality and stakes is really a different game.

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 EDA
[http://www.symphonyeda.com]) 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 [http://www.f-cpu.org/EDAserver.html]).

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:

o    Respect of the license and all the degrees of freedom (as stated
     in the GPL and the F-CPU charter)

o    Companies that make a lot of money with the F-CPU are asked to
     help more the project in return.

o    Anybody can make his own business:

     o    download the latest version of the F-CPU files

     o    define a goal (speed, budget, number of chips, etc.)

     o    "cook" the F-CPU for the technology you use (fine-tuning of
          the parameters, compilation, validation)

     o    order the chip batch from your preferred fab plant (TI, IBM,
          TSMC,...)

     o    resell the batch as individual chips or as part of a device.

Fair competition

     is preserved by the respect of the license 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 commercial
     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"
     products, 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 developers 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
     aggressive (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 foundry prices will therefore be important for the end buyers
     and chip foundries will remain the place where all the benefits
     are done. Hence this good stock tip: If you want to be rich, buy
     a foundry!

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

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

Then: "How many people work on it?"

     The "core team" counts an average of a half dozen of active
     developers. 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!

o    performance

o    low cost

o    full control

o    someone to sue when they feel deceived

o    garanties

o    hot-line

o    updates

o    formation/education

o    etc.

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

________________________________
Web-Site: http://www.oekonux.de/
Organisation: projekt oekonux.de


[English translation]
Thread: oxdeT03124 Message: 1/1 L0 [In index]
Message 03124 [Homepage] [Navigation]