Message 00597 [Homepage] [Navigation]
Thread: oxenT00597 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-en] free hardware design interview

A nice interview from Yann Guidon about the freedom cpu
(pinched from the f-cpu mailing list)


---------- Forwarded message ----------
Date: Mon, 02 Sep 2002 00:35:24 [PHONE NUMBER REMOVED]
From: Yann Guidon <whygee>
Reply-To: f-cpu
To: f-cpu


Can you briefly describe what is the aim
of F-CPU project? Your motto is: ``Design
and let design'', could you explain it?
Why do you think these goals are important?

Design a CPU that is freely available for everyone.
That's important because

        - We're not locked with one of a small number of vendors that
          always tend to hide their cards.
        - We not only make the design available for everyone, but also
          the knowledge. You can learn a hell of a lot if you read
          other people's code - that's the way many of us learned how
          to program.
        - People can participate in further development
        - It's fun! :)

HH: Can you briefly describe what is the aim of F-CPU project?

YG: The Freedom CPU Project Constitution was voted in early 1999 :

  To develop and make freely available an architecture, and all other intellectual
  property necessary to fabricate one or more implementations of that architecture, with the
  following priorities, in decreasing order of importance:

       1. Versatility and usefulness in as wide a range of applications as possible
       2. Performance, emphasizing user-level parallelism and derived through intelligent
             architecture rather than advanced silicon process
       3. Architecture lifespan and forward compatibility
       4. Cost, including monetary and thermal considerations

The people who created this project feared that Intel's monopoly
would bar them from hacking and patching the Linux kernel.
One of them, Richard Gooch, is known to have designed the MTRR support
and devfsd. So they imagined that applying Linux's recipe to the HW world
would provide a viable alternative. They named this the "Freedom
CPU Project" which was compressed and slowly became "F-CPU". As the name
says : it's about freedom. It's a very strong culture clash and a
utopic dream but indeed this attracted a lot of people who slowly
built the project's success.

Note however that "to design" does not mean "to build" or "to fabricate".
The goal is to create "Intellectual Property" under Copyleft,
fabricating the chips is not the issue. The existing industry will
be more than happy to fabricate the chips because the "IP" cost
is increasing. Our goal is to set new fair rules and a sane
computing environment for everybody.

HH:  Your motto is: ``Design and let design'', could you explain it?

I found this when preparing a presentation for the 17C3 in Berlin.
It's a play on "live and let live" because, for people like us,
to design is life (and vice versa). This has many meanings, for example :
it's a good anti-patent slogan ("don't keep me from doing my business
with your silly obvious patents") or an anti-troll cure ("well, what
you propose is nice but we would like to see the source code...").
Or, when someone become unhappy with F-CPU, for example when his
suggestions are not accepted, it is better for everybody to continue
its own development rather than fight. In the end, both versions
will be tested and there will be more alternatives.

This motto contains the notions of respect, peace and freedom
because someone's freedom ends where other's begin. It remembers
people that our goal is to design, not loose our time with endless
discussions or non-technical matters. Well, at least, not to the
point where the development stalls.

HH: Why do you think these goals are important?

I do not wonder this because it seems so obvious to me,
as i work in the electronics and software worlds. I believe
that there is something that i can do and i see that i am
not alone. This is granted for me and now the question is

I joined this project because i was doing mostly the same
alone. This personal project was motivated by the frustration
i had accumulated when programming PCs or DSPs. I already had
a pretty disapointed perspective of how the microelectronics
industry worked. People who participate in F-CPU have experiennced
the same problems as me : "Non Disclosure Agreements", hidden
flaws in the chips, unfair commercial practices, complicated design
that does not do the expected work....

This situation exists because the companies are profit-oriented
and they prefer to spare their efforts on some subjects, or
not disclose anything, rather than help customers when it needs
it. As it is often said, companies have no ethics. A Copylefted
design can change the situation : the "legal" ties attached to
the design make the companies aware of their responsibilities
and of their role. The "customer" is not only something you
skim from his money. I know no other project which emphasizes
on both the freedom and individual responsibility and this
is why i continue to support this project.

Tell us something about the pure technical improvements
the F-CPU has over proprietary CPU designs.

Scalable register width and generalized SIMD support.

F-CPU does not bring so many ground-breaking technical
improvements over other designs. And most of them are
consequences of design choices. What the programming
model brings is a simplification and homogenization of
features that are found in other families. For example :

- F-CPU is defined as a "64 bit minimum" CPU because
we intend to support wider data and pointer types.
If one looks back at all the major migrations, there are
8 bit to 16 bits, 16 bits to 32 bits, 32 bits to 64 bits.
These are major milestones and investments for the users
because software has to take register width into account.
F-CPU will probably be the first computer that will not
trap the users into a determined data size and the coexistence
of several different computer width should be transparent
if some basic coding rules are respected. On top of that,
well-written software will run faster on larger computers,
and still execute on "basic" 64-bit versions.

- F-CPU uses 64 registers for all data, pointers etc.
so one can use all the available registers when it is
necessary to. It is suited for loop unrolling of complex
algorithms and heavy data intensive computations (graphics,
sound processing, crypto, physical simulations, video...)

- numerical data can be treated as scalar or SIMD (packed)
data. This is not an extension (if compared to SSE, MMX,
Altivec etc) and it is completely integrated in the instruction
set from the start. Programming F-CPU in assembly can be
as easy as in C because there are no silly coding rules
and restrictions. The instruction set is designed to provide
all the performance to the user.

These are some of the most noticeable features brought
by the F-CPU. Most of the remaining features are only
consequenses of these design decisions. If it can look
like a 64-bit orthogonal MIPS to the newcomer, it differs
a lot when one investigates a bit. It's both a "classical"
looking design and a new approach because the early F-CPU
attempts wanted to break too much from the existing model
and nobody knew how to program it. The current work is
satisfying because there is a lot of room for enhancements
and even if a newcomer wants to code for it, it will not
be too complex to understand the basics and it will work
quickly (though at the cost of a temporary performance drop).

Concerning the "microarchitecture", "FC0" started in mid-99
and it borrows bits from known high-end computer architectures.
It's like a crossover between an early ALPHA chip and a "super"
mainframe of the '70-80 era, so there should be no patent problem.
In the details, F-CPU is so different that the implementation
does not look like anything but there is no secret : everything
is a logical consequence of the basic design goals. Interested
readers should look at the "F-CPU Manual" : version 0.2.6 is out
but several parts are long outdated.

What are your chances to really fabricate
F-CPU? Is it only FPGAs?

That's mainly a money issue. The question is whether somebody will manage
to build a computer around it.

I believe that the chances are good. In boils down to being
able to finish the code. When F-CPU version 1 will be out,
binary compatibility will be ensured and the basic features
will be frozen. Anybody will be able to download the sources,
synthesise them for their target (either FPGA or semi-custom),
adapt the sources to their needs and make money on the chips.

This sounds interesting to many more people than i thought
and the current economical troubles make managers more interested
by ways to reduce costs, increasing "coopetition" with multiple
sourcing and reverse auctions... The cost of current IP from
ARM or MIPS is very high and if a company spares one million dollars
in license fees, it will be able to reduce end-product costs
and invest more in real R&D. In fact, i know few people today
(in the industry) who see F-CPU and "Open Hardware" as a threat,
and budget restrictions are not the only reason (otherwise ARM
would go bankrupt). Even Intel could build and market F-CPUs,
as long as they respect the team's copyright.

If I asked you to figure out how many percents of F-CPU
design is currently done and how much is still waiting
for someone to hack on, what would your answer be?

Hard to say. I'd guess 30% if we don't count the caches (they'll
utilize a lot of silicon but are highly regular, so...). The really
hard part is still under development, though.

I'd say 15% or 20% for the integer core. The source code is very
important but more important is the validation process and the
cross-tests between different tools. For 1 line of "core" code,
maybe 5 lines must be written for the testbenches, and both
in C and VHDL. We have spent the last two years building a methodology
from scratch and it is still not finished.

Fortunately, the hardest parts have been done and the rest should
be designed faster : once all the testbench support files and scripts
are designed, it's a matter of cut&paste for adapting the tests to
another unit.

Designing and hacking F-CPU is easier for "electronicians" because
they are used to create testbenches and carefully check all the
parameters. A classical "hacker" or even CS engineer will code a C function,
include it in a program and see that it works, then do another function ...
F-CPU is not a hack, everything must work perfectly with the rest,
whatever the configuration. So most of the efforts are done with
automating things, testing them and write the documentation. Just like
in a normal company, but with different constraints. Ensuring the freedom
of the design requires a lot of efforts and even though our methods
use "hacks", the result is not a hack (it's usually the contrary
in commercial designs). These are some reasons why the development
is so slow.

Are you also using some other libre designs or
you are doing everything from scratch?

Due to the unique properties of the F-CPU, we do most things from scratch
(at least the parts I did). There simply are no arithmetic units (or
generators for them) that support SIMD operations the way we need them,
for example - except our own, of course.

We have not only to do the design from scratch, but also the rest.
For example, i have written the system that configures the sources.
There is no "make xconfig" like with Linux but all the machinery
behind the scene works, so you can configure your own CPU without
having to browse all the source files. Because the central langage
is VHDL which has particular characteristics, the usual "configure"
software is useless but m4 is used.

Another critical point in ensuring the project's freedom is
that the sources must not depend on vendors (unlike a lot
of sources released with a "GPL sticker"). There are no really
free VHDL design suites and those we tested do not keep their
technical promises. So yes we are forced to use commercial tools.

Cadence was the first (and not the lest) company that proposed some
help. Then Aldec did the same. But the team is slow to accept them
for many reasons : these are highly expensive tools which require
training, hardware, configuration, legal agreements etc. Most contributors
also use freeware VHDL compilers and simulators.

The situation is now better and simplified : i have written a little
script that abstracts the tools. In fact it's so simple that i wonder
why it was not done before by others. This script is important because
 - it is distrubuted under GPL and can be used by others for other projects
 - it can be easily enhanced (it's written in bash)
 - whatever the tool suites installed on your computer, there is only
   one script to write for compiling and testing a design unit
So F-CPU remains free because it is independent from the tools.
If there was any problem with a sponsor, the development would still
continue in freedom. No tool-dependent feature is used and all the sources
are tested against know tools for compliance.

If F-CPU ever happens to not keep its promises, at least all this
work will be important for other projects.

Do you use Free Software to develop the designs or are
you forced to use proprietary packages? Is there some hope
to have free software replacements for these packages?
There is some problem with programable logic boards, isn't there?

I'd really like to use free tools, but those that are available
(FreeHDL, Savant) are less developed than their closed-source

The lack of "decent" Free EDA tools is alarming.
Most "Open Hardware" designs are developped with one
or maybe two proprietary tools, thus reinforcing their
importance. EDA vendors are smart.

Those designs written with a Free tool often do not
correspond to industry standards : they become useless.

Currently, there is a solution to keep the design free
from dependencies from proprietary tools, but F-CPU's
goal is not to write EDA tools. If at least FreeHDL

Do you see some direct connection between libre
hardware designs and Free Software? Richard
Stallman says the question of freedom
is not really relevant for hardware because
only few people can actually 'copy' hardware.
I think your point of view is different
as is the one of Graham Seaman?

Times are changing. Ten years ago, almost nobody knew Free Software or
the GNU project. PC users had to deal with Microsoft operating systems
exclusively. Today, we have Linux, *BSD, the HURD and masses of other
software that are freely available. Who knows what will happen ten
years from now?

Today, it's rather difficult (and expensive) to `copy' or `modify'
hardware. It also was difficult to copy a CD in the 1980ies, but today
every PC can do it. In 2020, you may be able to buy a blank gate or cell
array for 7,95 EUR in every other supermarket, and program it yourself.
`Free Hardware' projects like F-CPU or OpenCores are only the beginning.

I think that when Richard spoke about this, he missed the point.
I think it was two years ago and even him changed since then.
But we don't require his blessing to make F-CPU and he seems to
understand what is at stake on this front, particularly when one
considers the DMCA and other laws, or the merciful monopoly of Intel
(MIPS and ALPHA are dropped from the workstation market and PowerPC
is rumored to follow).

When i joined F-CPU, i saw it as the only "way out" for me (i can't
say how much i'm sick of my PCs). Since year 2000 (rumors of copy protection
on ATA, ALPHA dropped) i understand that it will become the only
solution for others too ! I work in an egotistical way but i know that
it's also important not only for the Free Software movement, but
also the computer industry. When i discuss with Richard, there is no
disagreement when you forget his usual pickiness :-)

F-CPU definitely has philosophical and technical connexions with
the FSF and the Linux community but we have to invent something else.
Graham Seaman has a very deep understanding of the "Free Hardware"
movement because he observes and interacts with the electronics
industry for decades. He is very instructive and his character is
probably the contrary of Richard on a lot of points (i met both
several times). I can't say that one is wrong, they speak about
completely different things with different points of view and they
have different goals (like : Graham doesn't lead a jihad ;-D)

But i don't care about right or wrong. Only source code
is a tangible proof, and we're writing it. Once again,
"Design and let design" :-)

To unsubscribe, send an e-mail to majordomo with
unsubscribe f-cpu       in the body.


Thread: oxenT00597 Message: 1/1 L0 [In index]
Message 00597 [Homepage] [Navigation]