Le processeur S3 sur carte Nexys2/ Nexys3

Ce livre est en accès public. Vous pouvez le lire, l'imprimer, l'utiliser pour vos enseignements ou vos loisirs. Néanmoins merci de respecter les droits d'auteur - Licence Creative Common BY-NC 4.0 - et merci de me contacter pour :

  • Identification de bugs en tout genre:-(
  • Utilisation dans vos classes, TPs,
  • Extension vers d'autres cartes, d'autres environnement,
  • Extension du processeur S3, (on peut coder jusque 2048 fonctions ALU différentes)
  • Sujets d’exercices avec ou sans corrections,
  • ...

Toutes vos contributions seront, si vous le désirez, diffusées sur ce site.

Comme dans les grands restaurants, si vous vous régalez ou si c'est indigeste, vous avez un livre d'or pour laisser vos commentaires.

Mais surtout, bon amusement dans la découverte de l'architecture des ordinateurs !!!

Dans toutes les formations en informatique, on consacre un certain nombre de cours à l’architecture des ordinateurs. Beaucoup d’étudiants, même les férus en programmation ou jeux vidéo se posent la question de l’intérêt d’un tel cours. Oui des millions voire des milliards de personnes aujourd’hui utilisent des ordinateurs sans trop savoir ce qu’il se passe à « l’intérieur » et heureusement pour eux ! Mais un informaticien n’est pas un utilisateur comme les autres, il devra d’une façon ou d’une autre s'appliquer à cacher les fonctionnements complexes d’un système électronique aux utilisateurs lambda tout en assurant une bonne exploitation des ressources mises à sa disposition. Quoi de plus naturel quand on veut cacher quelque chose de savoir ce qu’il en est !

Comprendre le fonctionnement d’un processeur moderne est une tâche ardue et qui demande une mise à niveau régulière. La conception d’un processeur de ce type repose sur des équipes de chercheurs et ingénieurs très spécialisés et d’ailleurs assez rares sur le marché du travail. Par contre les fondements de l’architecture n’évoluent que très peu. Depuis l’après-guerre, on utilise un modèle de fonctionnement dérivé de celui de Von Neumann. Construire un mini processeur qui respecte ce modèle devient réaliste pour un étudiant débutant, sans connaissance initiale particulière. Quelles seront les enseignements qu’il pourra en retirer?

  • Comprendre qu’un programme n’existe et ne fonctionne que parce qu’il y a un système électronique qui assure un certain nombre d’opérations élémentaires. Sans processeurs il n’y aurait pas d’informatique.
  • Maîtriser la différence de niveau entre un programme écrit dans un langage et un programme exécutable sur un processeur. Les compilateurs sont écrits par des informaticiens.
  • Ecrire des programmes en pensant à l’exécution sur la machine. Rien n’est gratuit sur un processeur.
  • Prendre la mesure de l’importance de la notion de temps, de durée dans tout système informatique. Rien n’est instantané sur un processeur.

Voici le défi de ce livre! Vous allez construire un mini processeur pas à pas. Quand je dis construire c’est le bon mot : à chaque étape de ces douze leçons, vous allez pourvoir tester sur une carte électronique le résultat de votre conception. Sans la carte vous pourrez toutefois utiliser un simulateur qui reproduira exactement son comportement.

C’est quoi cette carte? Un processeur une fois conçu doit passer en « fonderie » afin d’en sortir de grandes séries d’exemplaires identiques. C’est un processus industriel lourd et coûteux qui convient pour un constructeur comme Intel, mais pas du tout pour un groupe d’étudiants. Il existe sur le marché des constructeurs des puces électroniques programmables. Un bout de silicium où vous pourrez instancier votre conception sans passer par la fonderie. C’est ce qu’il vous faut ici. Les carte choisies qui utilisent une puce Xilinx seront présentées dès la première leçon.

La conception de votre processeur nécessite un environnement de « design ». C’est lui-même un programme informatique qui tourne sur votre PC et donc sur un processeur. Le but de cet environnement consiste à produire la programmation de la puce programmable. On utilisera donc l’environnement ISE de Xilinx. Chaque constructeur de puce programmable propose son propre environnement de design. ISE propose une version libre qui sera découverte lors de la leçon 1 et au fur et à mesure de vos développements.

Il existe une quantité de livre sur l’architecture des ordinateurs, ce n’est pas le sens que j’ai voulu donner à ce livre/site mais je vous conseille d’en lire au moins un. Ici je vous propose 12 leçons (un semestre) basées exclusivement sur des travaux pratiques. Les cinq premières leçons vont vous permettre de vous familiariser et de mettre en œuvre le B.A.-BA de la logique combinatoire et séquentielle sous ISE. Par la suite vous pourrez pas à pas construire les entités indispensables pour votre processeur S3 (le nom vient du semestre 3, étudiants de licence qui découvrent l’informatique en seconde année). A chaque étape la simulation et l’exécution effective sur la puce programmable permettront de valider vos développements. Pour conclure ce projet, des programmes pourront être écrits et exécutés sur votre processeur S3 instancié sur la puce Xilinx et/ou simulé par Isim, le simulateur de ISE. Enfin pour conclure ces douze leçons des directions d’extensions du processeur S3 vous permettront de continuer vous-même le développement de votre propre processeur.

Prenez çà comme un jeu éducatif où l'on construit son processeur. Bon amusement !

Le processeur S3 synthétisé par ISE après 12 leçons!