I. Objet du projet Simple-CPU
Le projet Simple-CPU a pour objet la création d'un processeur de type RISC libre (diffusé sous license GPL) caractérisé par :
- Une architecte simple et un jeu d'instruction réduit et classique pour une vocation pédagogique.
- La fourniture d'un ensemble logiciels et système complet pour une utilisation industrielle.
Le processeur est écrit en langage VHDL pour une cible en développement de type FPGA Xilinx. Il est initialement conçu autour d'un kit de démarrage Spartan-3. La chaine de développement utilisée est entièrement sous Linux.
Simple-CPU est bati autour d'une architecture 32 bits de type RISC, Load/Store. Il utilise pour communiquer avec les autres périphériques un bus Wishbone lui assurant une interconnectivité maximale avec les IPs libres distribuées par le projet OpenCores.
Une suite logicielle complète accompagne ce processeur :
- Assembleur écrit en Java
- Simulateur et debuggeur logique écrits en Java
- Compilateur C (GCC)
- Debuggeur
- Loader
- Opérating system : Xinu, eCos, Linux ...
II. Etat du projet
Février 2006 :
Avec pas mal de boulo, de nouveaux cours à préparrer et d'autres projets perso... simple cpu suit doucement son cours en ce moment.
Toutefois, les étudiants de l'IUT terminent le compilo assembleur et commencent le simulateur. Le projet de portage de GCC est en
stand-by, cette phase s'avérant trop longue pour le temps de projet des étudiants. Une doc va cependant être mise en ligne pour en
décrire les principaux éléments.
Decembre 2005 :
Peu d'activité sur le processeur en lui même le mois dernier. Ce n'est pas pour autant que rien ne se passe, bien au contraire :
Wilfrid et Michel, tous deux étudiants à l'ISIMA ont commencé l'étude de l'adaptation de GCC pour le SC91 et Bacem, Jing et Guillaume,
de l'IUT de clermont on démarré l'écriture du compilateur assembleur. Les sources de tout ce travail sont publiées au fur et à mesure
dans l'espace CVS.
Novembre 2005 :
L'ecriture du coeur du processeur est globalement terminée. Il manque les interruptions et surtout le test
du processeur. Dans le mois devraient démarrer les projet d'assembleur et de simulateurs qui permettront de
faciliter la tâche de test. Dans le même temps la faisabilité du portage de gcc pour simple-cpu est en cours.
La version alpha du code est publiée dans la zone téléchargement.
Octobre 2005 :
Le processeur tourne sur 7 instructions simples, sans RAM et sur un ROM de petite taille ... Le
développement continue avec pour objectif de rapidement couvrir tout le jeu d'instruction et
publier très bientot une première version des sources.
Septembre 2005 :
Le bloc des registres est au point avec quelque tests in-situ concluant ... La suite de dev sous Linux
marche super... La construction continue !
Juillet 2005 :
Je ne suis pas vraiement en avance sur le planning, mais le jeu d'instruction est maintenant bien défini et les pages en relation
sont écrites. L'implémentation va donc pouvoir débuter.
Juin 2005 :
Les idées se précisent et il est temps de coucher sur la toile les prémisses de ce projet - l'été est propice aux développements - puisque la
documentation sera un point clef pour répondre à la cible autant pédagogique qu'industrielle.
Mai 2005 :
Le kit de développement est arrivée, la chaîne de compilation est installée et fonctionne sur mon environnement Linux... Il
faut maintenant réflechir au projet...
III. Phases du projet
Tâche | Date début | Date fin | Statut |
Création du jeu d'instruction et documentation | 01/07/2005 | 08/02/2005 | Finalisation |
Documentation de l'architecture générale | 10/07/2005 | 30/07/2005 | En cours |
Ecriture du coeur processeur et tests | 01/08/2005 | 01/11/2005 | En cours |
Ecriture des interfaces processeur | 01/11/2005 | 01/02/2006 | A démarrer |
Ajout des périphériques | 01/01/2006 | 01/05/2006 | A démarrer |
Compilateur Assembleur | 15/10/2005 | 15/03/2006 | En cours |
Ecriture du Simulateur | 01/02/2006 | 15/03/2006 | En cours |
Ecriture du Loader | 01/03/2006 | 01/06/2006 | A démarrer |
Portage de GCC | NA | NA | Démarrage |
Portage de XINU | NA | NA | A planifier |
Portage de eCos | NA | NA | A planifier |
Portage de Linux | NA | NA | A planifier |
IV. Origine du projet
Ce projet est né de plusieurs idées, tout d'abord le souhait personnel de travailler sur un projet matériel alors que mon activitée
professionnelle m'en a détournée ces dernières années. Ensuite, la volonté de réaliser ce à quoi je réfléchi depuis deja plusieurs années
la réalisation d'un système informatique complet en partant de rien ou presque, comme ont pu le faire les pionniers de l'informatique des
années 60 (la technologie d'aujourd'hui en plus). Une sorte de retour aux sources des temps modernes pour comprendre mais aussi expliquer
comment un ordinateur fonctionne.
Je souhaite par ce projet démistifier l'ordinateur, son fonctionnement interne ; mettre à disposition de la communauté un support pour
des cours et TP et offrir, à ceux qui trouveront à ce projet un fort interet, un outil pour la création de produits commerciaux.
Ce projet est une brique parmis d'autre dans la monde de l'informatique libre, celle que l'on ne réalise pas que pour les bénéfices
mais aussi pour l'offrir aux autres. J'espère ainsi que ce travail ammènera d'autres individus à transformer créer de cela des applications,
plus complexes, utiles à la société.
Les contributeurs de tous poils, privés, professionnels, particuliers, entreprises, ados, adultes, retraités, hommes, femmes, Français ou Chinois sont les bienvenues à bord de ce projet que je ne pourrai concevoir totalement seul. C'est ainsi que pour les raison ci-dessus je prends à ma charge et pour mon plaisir la création d'une V1 fonctionant du coeur mais que je vous encourage à proposer votre aide pour faire vivre ce projet et l'enrichir.
Disk91