[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[f-cpu] An introduction to F-CPU / Une introduction au F-CPU



The french version of this document is given at the end of the message

Hello,

When I am arrived on the project (last March), I have encounter a little 
problem: I haven't find any update document to clearly explain me the 
history of the project, the current status of development, the 
architecture of the F-CPU...
All this information exist but aren't easily accessible to newbies or 
new members.
I have discuss with some other f-cpu members and they are agree than new 
members can have difficulty to well understand the current status and 
know what they can do to help the project.

I have made an other observation, after few month of reading subject on 
the mailing-list, answers made, list of caller it seems than some people 
  don't make comment on lot of subject (see the TLB design thread where 
only 5 peoples have been made comments), or made comment which 
illustrate a misunderstood of the subject.

I propose than I make a starter kit for new members with your help.

To begin I propose the attached document which can be the first step of 
the starter kit.

The document format is not important, I have made it in html to help the 
cross-os consultation. At the end, the definitive format can be changed.

The current version is only a squeleton to begin discussion, I propose 
than everybody made comment, write something in any part, add part if 
they want.

I have made two version currently, a french and an english; if some one 
want translate them into other language, please do it.

I'll propose to manage the development of this document, including any 
proposal after validation by the list.

I have certainly made grammatical or spelling error, then you can made 
any correction you want.

Cheers,
Just an Illusion

******************************
Bonjours,

Quand je suis arrivé sur le project (en mars denier), j'ai rencontré un 
petit problème : j'ai eu beaucoup de mal à trouver un document qui 
explique clairement l'histoire du projet, l'état courant du 
développement, l'architecture...
Toutes ces informations existent, mais elles sont difficilement 
accessibles aux debutant et aux nouveaux membres.
J'en ai discuté avec d'autres membres, et il semble d'accord pour dire 
qu'un nouveau membre a souvent du mal à comprendre l'état courant du 
développement et ce qu'il peut faire pour le project.

J'ai constaté aussi autre chose en suivant les discussions, le contenu 
des réponses et la liste des intervenants, il semblerait qu'un certain 
nombre de sujet dépasse les connaissances de certains membres (regarder 
par exemple le sujet TLB design sur la liste anglaise), ou bien que 
certaines réponses prouvent la méconaissance de certains sujets.

Je me propose donc de faire un kit de démarrage pour les nouveaux 
membres, avec votre aide à tous.

Pour commencer, je vous propose le document ci-joint, qui pourra servir 
de premier pas dans le kit.

Le format courant du document n'est pas important, je l'ai écrit en html 
pour facilité la consultation multi OS. Le format sera déterminé pour le 
version finale.

La version courante n'est qu'un squelette qui servira de base à la 
discussion. Je propose que chacun le commente, voir écrive un morceau, 
fasse des ajouts si possible.

Je maintiens deux versions du document, une en français et une en 
anglais ; si quelqu'un se veut les traduire dans une autre langue, il 
n'y a aucun problème.

Je me propose de diriger la rédaction de ce document, y inclure toutes 
les propositions aprés que la liste les ait validés.

J'ai certainement fait des erreurs de grammaire et d'orthographe, si 
vous en trouvez corriger les, merci.

@+
Just an Illusion

-- 
______________________________
"The matrix is my world, I am a shadow.
Shadow in world, shadow in life. Don't try to keep me,
I am a Corpo's Killer.
Don't follow me or die..."
		The KingWalker - 1996
Title: FCPU pour les Nuls

F-CPU pour les Nuls

Introduction au projet F-CPU

 

F-CPU for Dummies

Introduction to the F-CPU Project

Plan

 

Plan

Notice Légale

 

Legal Notice

Présentation Générale

Le nom F-CPU signifie Freedom CPU

Le but de ce document n'est nullement de présenter le projet F-CPU, il existe déjà plusieurs documents présentant les buts et l'état actuel du projet (Voir la bibliographie).

Le but recherché est plutôt de vulgariser les concepts afin de donner aux non spécialistes une culture suffisante pour comprendre la majorité des sujets qui ont été, qui sont et qui seront traités sur la liste de diffusion F-CPU.

Dans un premier temps, nous nous efforcerons d'expliquer ce qu'est un CPU,  ce qui le caractérise, quel sont les architectures matériel/logiciel associées. Nous présenterons aussi une partie du vocabulaire associé.

Dans un deuxième temps nous donnerons une vue rapide sur les choix architecturaux retenus pour le FCPU et leFC0 et l'explication de la fonction attendue de chaque bloc.

Dans un derniers temp, nous nous intéresseront plus particulièrement aux outils utilisés pour le développement et la vérification/validation du F-CPU, avec une introduction aux language de modélisation/description/spécification HW.

 

Overview

The name F-CPU is the abbreviation for Freedom CPU

This document goal isn't presentation of the F-CPU project, you can find some other document which give you the project objectives and the current status (see bibliography).

No, the goal is more made some concept vulgarisation to give to non specialized a minimum base to understand a greater number of subject, developped, developpe or will be developped on the f-cpu mailing list.

In a first time will be try to explain what is a CPU, what thing characterized it, what are the associated hardware/software architecture. We will present some part of the associated vocabular, with a simple definition.

In a second time, we will present a quick overview of the FCO architecture with a explanation on the behavior of each block.

In a last time, we will present the developpement tools used in F-CPU developpement and validation/verification, with a complementary introduction to the modelization/description/specification HW language.



Table des Matières

 

Table of Content

0-Le CPU

 

0-The CPU

0.1-Qu'est ce que c'est ?

<Dans cette partie, il faut tenter de donner une explication ce que fait un CPU, des définitions, ses propriétés...>
 

0.1-What it is ?


<In this part, we must try to give an explanation on CPU job, some definitions, the CPU properties...>

0.2-Le vocabulaire des Barbares

<Ici il faut définir les grand concepts sur les processeur, telque les jeux d'instructions, l'organisation des données, les architectures...>
 

0.2-Barbarians words


<We must define here the great concept link with processor, like instruction set, data organisation, architectures...>

0.2.1-RISC/CISC

 

0.2.1-RISC/CISC

0.2.2-Big/Little Endian

 

0.2.2-Big/Little Endian

0.2.3-Havard/Von Neumann

 

0.2.3-Havard/Von Neumann

0.2.4-Multiprocesseur


0.2.4-Multiprocessor

0.2.5-SMP


0.2.5-SMP

0.2.6-ACMD


0.2.6-ACMD

0.2.7-SIMD/MIMD/SISD


0.2.7-SIMD/MIMD/SISD

0.2.8-VLIW


0.2.8-VLIW

...   ...

0.3-Il ne faut pas confondre

<Ici je verrais bien un rassemblement de fausses vérités sur les CPU>
 

0.3-Don't make confusion


<Here I see a garbage of common mistake on CPU>

0.3.1-CPU & MCU

 

0.3.1-CPU & MCU

0.3.2-CPU & DSP

 

0.3.2-CPU & DSP

0.3.3-CPU & FPGA

 

0.3.3-CPU & FPGA

0.3.4-CPU & ASIC

 

0.3.4-CPU & ASIC

0.3.5-CPU & ASIP


0.3.5-CPU & ASIP

0.3.6-CPU & Chipset


0.3.6-CPU & Chipset

0.3.7-Pipeline


0.3.7-Pipeline

0.4-Les mots clés du F-CPU

<Ici il faudrait définir chacun des blocs du FC0 et de leurs fonctionnalités>
 

0.4-The F-CPU Keywords


<Here we define each FC0 blocks and behaviour>

0.4.1-L'architecture

 

0.4.1-The architecture

0.4.2-Le sequenceur

 

0.4.2-Sequencer

0.4.3-UAL

 

0.4.3-ALU

0.4.4-Le banc de registres

 

0.4.4-Registers

0.4.5-XBar

 

0.4.5-XBar

0.4.6-TLB & mémoire cache

 

0.4.6-TLB & cache memory

0.4.7-Mémoire

 

0.4.7-Memories

0.4.8-OOOC


0.4.8-OOOC

1-Le flot de développement matériel

<Ici il faut expliquer comment les SoC, les IC ou autres sont développés du point de vue HW, avec peut-être un comparatif avec un développement soft>
 

1-The hardware development process


<Here we define the HW  development process for SoC, IC and others. With, perhaps, a comparison with SW development>

2-Le HDL

< Ici on fait un cours introductif aux HDL et à leur utilisation pour le développement HW, le but étant d'éviter les éternels retours de la discussion autours du fait que l'on utilise VHDL et Verilog et que les softeux comprennes pas pourquoi il peuvent pas avoir une puce depuis un fichier compiler C ou autre>
 

2-HDL


<Here we made an introduction lesson to HDL and their usage to HW development, the goal is to clarify some recurrent error which give recurrent discussion on the development language; some SW developper seems not understand why we couldn't obtain a chip from a compiled C file or other common SW development language>

2.1-Qu'est-ce-que c'est ?

 

2.1-What is it ?

2.2-Les niveaux d'abstraction

 

2.2-Abstraction Levels

2.3-Le VHDL

 

2.3-VHDL

2.3.1-Histoire

 

2.3.1-History

2.3.2-Ils l'ont dit...

<Ici je metttrai bien des extraits des discussions des mailing-list sur les mécompréhensions du but du VHDL>
 

2.3.2-They have said...


< Here I see some extracts from mailing-list discussion on the common mistake about VHDL which illustrated the problem>

2.3.3-Présentation des concepts

 

2.3.3-Concept overview

2.3.4-Exemple de code

 

2.3.4-Code Example

2.4-Le Verilog

 

2.4-Verilog

2.4.1-Histoire

 

2.4.1-History

2.4.2-Ils l'ont dit...

<Ici je metttrai bien des extraits des discussions des mailling-list sur les mécompréhensions du but du Verilog, je ne sait pas s'il y en a mais cela pourrait arriver à l'avenir>
 

2.4.2-They have said...


< Here I see some extracts from mailing-list discussion on the common mistake about Verilog which illustrated the problem>

2.4.3-Présentation des concepts

 

2.4.3-Concept overview

2.4.4-Exemple de code

 

2.4.4-Code Example

3-La simulation

<Ici il faut parler des problèmes de vérification HW, et des méthodes classiques employées.
Si l'on désire appliquer des méthodes modernes de vérif', le chapitre pourrait changer de nom et en parler>

 

3-Simulation


<Here, we can present the classical HW verification methods.
We can add chapter on new methods too, in taht case the chapter name will certainly change>

4-La synthèse

<Il faut parler des problèmes de la synthèse et pourquoi un code HDL n'est pas obligatoirement synthétisable.
On peut y présenter aussi un avant goût des règles de bonne écriture et les problèmes de timing HW>

 

4-Synthesis


<We must present the problems link to the HW synthesis, and why any HDL code can be unsynthezisable.
We can present an overview of well coding rules and HW timing problematic>

5-Les Outils

<Il serait bien de pouvoir lister l'ensemble des outils intervenant dans le développement du F-CPU avec à chaque fois un positionnement dans le flot de conception>
 

5-Tools


<Here we can give the list of tools currently used on the project and give their position into the conception stream>

6-Ou trouver de l'information complémentaire

<Ici un ensemble de liens sur les sujets abordés qui permettront d'approfondir les recherches des gens sur ces sujets, il y aura biensur des liens vers les ressources F-CPU>
 

6-Where found complementary informations


<We can put here a list of link about different subject presented above to help people who want more informations on a specific subject, of course we will add links to F-CPU ressources>

6.1-F-CPU

 

6.1-F-CPU

6.2-VHDL

 

6.2-VHDL

6.3-Verilog

 

6.3-Verilog

6.4-Architecture des Processeurs

 

6.4-Processors Architecture

6.5-Les outils de l'EDA

 

6.5-EDA tools

7-Glossaire

 

7-Glossaire

8-Index

 

8-Index

9-Bibliographie

 

9-Bibliography