Université de Picardie Jules Verne
(Amiens - France)

Institut des Sciences et Techniques de Saint-Quentin, Direction de l'Education Permanente

Deust Technicien des Systèmes d'Information


Module 1 :
Architecture des ordinateurs



Christophe Cérin
Laboratoire de Recherche en Informatique d'Amiens (LaRIA)
Université de Picardie Jules Verne
5, rue du moulin neuf, 80000 Amiens  - France 

Téléphone : +33-(0)3.22.82.78.75 
Fax : +33-(0)3.22.82.75.02 
E-mail:
cerin@laria.u-picardie.fr
Bureau : 206


Introduction


L'organisation de ce cours d'introduction à l'architecture des ordinateurs est le suivant :

Les exercices sont donnés soit dans le texte soit à chaque fin de chapitre.

Les ressources (Internet) dont vous pouvez avoir besoin sont :

  1. Le simulateur MIPS peut s'obtenir à :

  1. SPIM: http://www.cs.wisc.edu/~larus/spim.html

  2. Une note pour produire de l'assembleur MIPS (note au format PDF) à partir du compilateur GCC (compilateur C, C++, Java dans le domaine public) installé sur un PC (assembleur x86). Cette note s'adresse aux personnes expérimentées ayant de bonnes connaissances du monde Linux et de la compilation.

  3. DOC: Visiter le site http://www.elsevier-international.com/computersciences/ puis faire une recherche des libres Computer Architecture: A Quantitative Approach International Student Edition, 3rd Edition et Computer Organization and Design The Hardware/Software Interface, Second Edition : cliquez ensuite sur le bouton "visit web site" (qui est le site du livre). Voir aussi http://www.cs.wisc.edu/~larus/spim.html . COURS complémentaire par David Paterson (en Anglais) qui est un spécialiste mondial d'architecture http://www.cs.berkeley.edu/~pattrsn/152F97/index_lectures.html. Le cours référencé ici porte sur les d'architecture et il est est tout à fait remarquable.

  1. Des livres, cours et des sites sur l'architecture, en particulier au niveau des circuits :

  1. Goossens, B., Université Paris VII Denis Diderot, Paris, France, Architecture et micro-architecture des processeurs.

  2. Computer Organization & Architecture Designing for Performance - 6ème édition [Computer Organization & Architecture] William Stallings, Prentice Hall - 11/2002 18,2 x 24 - 836 pages ISBN: 0-13-035119-9

  3. John L. Hennessy, David A. Patterson, Computer Architecture A Quantitative Approach - 3ème édition Morgan Kaufman - 06/2002 19 x 23,5 - 1100 pages, ISBN: 1-55860-724-2

  4. Autres liens utililes :

    http://webster.cs.ucr.edu/AoA/DOS/ (The Art of Assembly Language Programming)
    http://www.stanford.edu/class/ee272/ (très bien)
    http://www.seas.upenn.edu/~ese200/ (encore mieux)
    http://www.vhdl.org
    http://asim.lip6.fr/alliance/
    http://www.erc.msstate.edu/~reese/vhdl_synthesis/

  5. http://www.lri.fr/~fci/coursdea95.html
    http://www.cs.berkeley.edu/~pattrsn/course.html
    http://www.cs.umass.edu/~weems/courses.html

  6. Enfin, dans le désordre, pour les passionnés... et si vous avez du temps devant vous :
    MicroDesign Resources,
    http://www.mips.com (MIPS Technology),
    http://www-europe.hp.com (HP Europe), http://www.ibm.net (IBM),
    http://www.nec.com (NEC), http://www.intel.fr (INTEL),
    http://www.chipexpress.com (ChipExpress). Vous pouvez aussi voir la page de la société Tanner http://www.tanner.com/
    qui propose des logiciels de simulation de circuits intégrés.
    http://bwrc.eecs.berkeley.edu/CIC/ (CPU Info Center). Vous pouvez aussi aller voir la page des "Great Microprocesseurs of the Past and Present''
    http://www.sasktelwebsite.net/jbayko/cpu.html. Vous pouvez aussi visiter la page des SPEC (métriques de performances)
    http://www.specbench.org/,
    http://www.ti.com (Texas Instrument)

    Nous vous recommandons également la page concernant les groupes de recherches académiques en architecture des ordinateurs (http://www.cs.wisc.edu/~arch/www/). Enfin il y a la page Computer Architecture References and Resources qui est très riche. Ceci, encore une fois pour les passionnés qui ont du temps devant eux.


En resumé, le travail minimum à accomplir : lire, comprendre le polycopié, faire le plus d'exercices possible. Dans le chapitre 4, faire une sélection de votre choix des exercices proposés. Si vous avez du temps, examinez les pointeurs WEB donnés plus haut (c'est pour les passionnés). Un schéma d'organisation proposée pour suivre au mieux ce cours peut être le suivant :

  1. une semaine pour lire (1h), comprendre et faire les petits exercices du chapitre 1 (la solution des exercices se rédige en une phrase) ; TOTAL : 1h de travail la première semaine ;

  2. trois semaines pour lire (2 fois 1h), comprendre et faire les exercices du chapitre 2 (4 fois une heure); TOTAL : 6h de travail sur trois semaines ;

  3. Le chapitre 3 : je vous conseille de passer 3H.

  4. 3 semaines pour lire (3 fois une heure) comprendre et faire les exercices du chapitre 4 (6h) ; Les exercices ne demandent pas d'imaginer, de créer, de programmer des solutions algorithmiques, il s'agit d'expérimenter un code fourni et dire si le résultat obtenu est conforme à vos prédictions. On vous conseille de faire une sélection des codes qui diffèrent par les instructions assembleurs qu'ils mettent en jeu. Nous vous conseillons donc de travailler avec le polycopié qui liste les instructions assembleurs à coté de vous. Vous pouvez commentez les codes en dessinant, pour chaque instruction, le contenu des registres machines. On rappelle que le simulateur s'obtient sur le site http://www.cs.wisc.edu/~larus/spim.html

  5. Une pratique minimum de l'anglais est utile ! Si vous manquez de pratique, envoyez moi toutes vous questions par email rédigées en anglais. Je répondrais...en anglais !

  6. Nous rappelons que le travail demandé est un travail de compréhension. Nous ne vous demandons pas réellement d'imaginer, de construire des solutions et de les coder en langage d'assembleur (la difficulté serait à priori trop grande pour vos connaissances). Ne vous laissez pas impressionner par la grande quantité d'information présente sur cette page : il y a la description du travail minimum à accomplir et du travail en plus pour ceux qui veulent. Evidemment, l'évalution portera sur le travail minimum demandé. Il y a le devoir plus bas.


Les polycopiés et les outils pour les visualiser

  1. Pour les outils de décompression (gzip, unzip,...), d'affichage de fichiers PostScript, PDF... voir la Free Software Foundation ou encore les utilitaires Ghostscript, Ghostview and GSview ou encore l'utilitaire Acrobat Reader de chez Adobe. (Je suppose que vous avez un navigateur Internet)

  2. Le polycopié en format PDF ici ( Compilation du 8 mars 2005 avec des propositions de correction de certains exercices et des précisions sur l'assemblage).

  3. Le devoir du semestre "janvier 2006 à juillet 2006" en format PDF est ici (NEW : le code source du devoir). Le devoir est à remettre le 10 juin 2006 dernier délai. Envoyez moi le devoir par courrier électronique avec une copie à Emmanuel Marty. Merci.

  4. Le devoir du semestre "juillet 2005 - décembre 2005" en format PDF est ici (NEW : le code source du devoir). Le devoir est à remettre le 31 décembre 2005 dernier délai. Envoyez moi le devoir par courrier électronique avec une copie à Emmanuel Marty. Merci.

  5. NEW (7 mars 2005) : le devoir du semestre "janvier 2005 - juillet 2005" en format PDF est ici (le code source du devoir). Le devoir est à rendre pour la mi-juin au plus tard. A tout moment, vous pouvez posez des questions. Participez aux "chats" et aux regroupements.

  6. Le devoir du semestre "juillet 2004 - décembre 2004" en format PDF est ici (NEW : le code source du devoir - Hint (11 octobre 2004): la méthode du tri shellsort est présentée ici en PDF. Vous pouvez aussi faire une recherche par les mots clefs "tri shell" sur Google). Le devoir est à remettre 31 décembre 2004. Envoyez moi le devoir par courriel avec copie à Nicolas Royackkers (nicolas.royackkers@u-picardie.fr). Merci.

  7. Le devoir du semestre 1 (janvier à juillet 2004) en format PDF est ici (NEW : le code source du devoir). Le devoir est à remettre lundi 24 mai 2004 (dernier délai - le chat du 3 juin sera consacré à la préparation de l'examen.). Envoyez moi le devoir par courriel avec copie à Nicolas Royackkers (nicolas.royackkers@u-picardie.fr). Merci.

  8. Le devoir du semestre 2 (juillet - décembre 2003) en format PDF est ici (NEW : le code source du devoir). (une proposition d'un étudiant ayant fourni un travail très détaillé est disponible également - lisez là, c'est très bon !).

  9. Le devoir de la session janvier 2003 - juillet 2003 est ici en format PDF. Le source du programme assembleur à étudier est ici. Le devoir est à rendre pour le 22 mars 2003. Dans le module M1, il y a un devoir d'architecture, un devoir d'algorithmique et un devoir système/réseaux. Je ne m'occupe que du devoir d'architecture. Un "chat" sera organisé dans les semaines qui arrivent pour parler du devoir. Je vous communique également un devoir à consulter (pour préparer l'examen, par exemple) issu d'une session précédente : en format PDF ici.

  10. Points de repère pour le regroupement du merdredi 2 octobre 2002.

  11. Le sujet de l'examen de la session de juin 2003 en format PDF... accompagné d'un corrigé de la partie assembleur (1/10/2003). Veuillez noter combien le commentaire du code assembleur est simple et comment la discussion est conduite. Vous trouverez également le sujet corrigé de l'examen de décembre 2003. Mêmes remarques.


Liste de tests :

Pour votre information, je vous prie de consulter les liens suivants qui concernent des tests de toutes sortes (tests de performance en calcul numérique, en débit d'I/O (disques), en communication avec TCP) :


LaRIA

UPJV

IEEE french section

Génie Logiciel en licence d'informatique


Christophe Cérin


Last mofified: lundi 10 octobre 2005