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 - 1996Title: FCPU pour les Nuls
F-CPU pour les NulsIntroduction au projet F-CPU |
F-CPU for DummiesIntroduction to the F-CPU Project |
|
Plan |
Plan |
|
Notice Légale |
Legal Notice |
|
Présentation GénéraleLe 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. |
OverviewThe 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 |