Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur Jean Privat Université du Québec à Montréal INF217 Organisation des ordinateurs et assembleur Automne 21 Jean Privat (UQAM) 1 Introduction INF217 Automne 21 1 /
Organisation des ordinateurs et assembleur Objectifs du cours Comprendre comment un ordinateur fonctionne (en vrai) Apprendre à programmer directement un ordinateur (en vrai) Difficultés du cours C est un cours de programmation Jean Privat (UQAM) 1 Introduction INF217 Automne 21 2 /
Plan 1 Programmer en assembleur 2 Structure et fonctionnement d un ordinateur Le processeur Pep/8 Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Plan 1 Programmer en assembleur 2 Structure et fonctionnement d un ordinateur Le processeur Pep/8 Jean Privat (UQAM) 1 Introduction INF217 Automne 21 4 /
Programmer en assembleur Qui programme en assembleur? Développeurs de systèmes d exploitation Développeurs de pilotes Développeurs de compilateurs et machines virtuelles Développeurs de logiciels haute performance Et les autres programmeurs? Ne veulent pas entendre parler d assembleur Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Pourquoi ce cours alors? Organisation des ordinateurs Comprendre l organisation des ordinateurs du point de vue du programmeur Car tout ce que fait l ordinateur passe forcément par le langage machine Bonus Apprendre à programmer autrement Jean Privat (UQAM) 1 Introduction INF217 Automne 21 6 /
Domaine d étude Structure typique d un ordinateur Applications Langages de haut niveau (dits évolués) Système d exploitation Assembleur et langage machine Micro-architecture Circuits logiques Jean Privat (UQAM) 1 Introduction INF217 Automne 21 7 /
Domaine d étude Structure typique d un ordinateur Applications Langages de haut niveau (dits évolués) Système d exploitation Assembleur et langage machine Micro-architecture Circuits logiques Jean Privat (UQAM) 1 Introduction INF217 Automne 21 7 /
Assembleur Langage de programmation impératif Séquences d instructions Boucles Structures conditionnelles Appels de sous-programmes... Bref, rien de nouveau Langage sans petites roues pas de contrôle automatique pas d aide Jean Privat (UQAM) 1 Introduction INF217 Automne 21 8 /
Assembleur Entités en œuvre Le programmeur Le langage (assembleur) Le compilateur (assembleur) Le moteur d exécution (processeur ou simulateur) Principes du génie logiciel fondamentaux Discipline Méthode Jean Privat (UQAM) 1 Introduction INF217 Automne 21 9 /
Assembleur Définition Forme symbolique des instructions du langage machine Exemple x = a + b - c ; sera codé OBT A ; o b t e n i r l a v a l e u r de A AJT B ; a j o u t e r l a v a l e u r de B SOU C ; s o u s t r a i r e l a v a l e u r de C RAN X ; r a n g e r l a v a l e u r dans X Jean Privat (UQAM) 1 Introduction INF217 Automne 21 1 /
Plan 1 Programmer en assembleur 2 Structure et fonctionnement d un ordinateur Le processeur Pep/8 Jean Privat (UQAM) 1 Introduction INF217 Automne 21 11 /
Structure et fonctionnement d un ordinateur Principes de base Un ordinateur est une machine Tout n est que bits Jean Privat (UQAM) 1 Introduction INF217 Automne 21 12 /
Historique Cailloux et abaques (-) «Calcul» et «caillou» ont la même étymologie Abaques = outils (bouliers, tablettes, etc.) Machines mécaniques Pascaline (1642) : une calculatrice Machine analytique (18) : programmable Premiers vrais ordinateurs MARK I (197 1944) : électromécanique ENIAC (194 1946) : électronique Jean Privat (UQAM) 1 Introduction INF217 Automne 21 1 /
Machine de von Neumann Principes Un médium d entrée quantité virtuellement illimité de données Une unité d emmagasinage même représentation interne (bits) pour les instruction et les données Une unité de calcul arithmétique et logique Un médium de sortie quantité virtuellement illimité de résultats Une unité de contrôle interpréter les instructions Jean Privat (UQAM) 1 Introduction INF217 Automne 21 14 /
Machine de von Neumann Entrée (clavier) Mémoire Sortie (écran) Bus Unité arithmétique et logique Registres UCT Unité de contrôle Jean Privat (UQAM) 1 Introduction INF217 Automne 21 1 /
Mémoire Élément central Tout passe par là (programmes et données) Ensemble fini de cellules Chaque cellule A une adresse A un nombre fixe de bits A une seule valeur à la fois Est accessible très rapidement (nano seconde) Jean Privat (UQAM) 1 Introduction INF217 Automne 21 16 /
Mémoire Tout n est que bits Un cellule mémoire de contient que des bits (des nombres) Toute information traitée par un ordinateur doit être codée sous forme numérique... Y compris les instructions machines Jean Privat (UQAM) 1 Introduction INF217 Automne 21 17 /
Mémoire : Exemple 1 1 19 1 11 12 22 14 Jean Privat (UQAM) 1 Introduction INF217 Automne 21 18 /
Mémoire : Exemple 1 1 19 1 11 12 22 14 Une interprétation possible 19 1 ; Obtenir mot en 1 11 12 ; Ajouter mot en 12 22 14 ; Ranger mot en 14 ; Terminer l exécution ; Entier (Première opérande) ; Entier (Seconde opérande) ; Entier Jean Privat (UQAM) 1 Introduction INF217 Automne 21 18 /
Mémoire : Exemple 1 1 19 1 11 12 22 14 8 Une interprétation possible 19 1 ; Obtenir mot en 1 11 12 ; Ajouter mot en 12 22 14 ; Ranger mot en 14 ; Terminer l exécution ; Entier (Première opérande) ; Entier (Seconde opérande) 8 ; Entier 8 (résultat) Jean Privat (UQAM) 1 Introduction INF217 Automne 21 18 /
RAM/ROM Mémoire vive ou RAM (random access memory) Stocke les programmes et les données Accessible en lecture et écriture Mémoire morte ou ROM (read-only memory) Contient de quoi amorcer l ordinateur Contient le code des primitives basiques d entrées-sorties (BIOS) Accessible en lecture seulement (voire en écriture par des moyens détournés) Jean Privat (UQAM) 1 Introduction INF217 Automne 21 19 /
Unités d entrée-sortie Communiquer avec l extérieur Humains et environnement On parle communément de périphériques Exemples Clavier Écran Disque dur Haut-parleur Jean Privat (UQAM) 1 Introduction INF217 Automne 21 2 /
Unité centrale de traitement (UCT) Unité de calcul Exécute les opérations logiques et arithmétiques Unité de contrôle Lit les instructions en mémoire Fournit les opérandes à l unité de calcul Récupère les résultats de l unité de calcul Jean Privat (UQAM) 1 Introduction INF217 Automne 21 21 /
Horloge Synchronise les activités Engendre un signal régulier (GHz) Les activités de l ordinateur sont synchronisées Cycle d horloge La plus petite unité de temps Une instruction peut nécessiter plusieurs cycles Jean Privat (UQAM) 1 Introduction INF217 Automne 21 22 /
Bus Définition Medium de communication entre les composantes Ensemble de lignes de communication Les bus sont spécialisés Données bus de donnée Adresses bus d adresse Signaux bus de contrôle Jean Privat (UQAM) 1 Introduction INF217 Automne 21 2 /
Registres Mémoire Cellules mémoire de l UCT Accès plus rapide que la mémoire principale (pas besoin de prendre le bus) Contient Stocke les opérandes, résultats, etc. Sert au contrôle de l ordinateur Jean Privat (UQAM) 1 Introduction INF217 Automne 21 24 /
Plan 1 Programmer en assembleur 2 Structure et fonctionnement d un ordinateur Le processeur Pep/8 Jean Privat (UQAM) 1 Introduction INF217 Automne 21 2 /
Pep/8 Une machine de von Neumann très simple Caractères US-ASCII (7 bits) Mots de 16 bits (2 octets) Mémoire de 2 16 octets (64 ko) 16 bits d adresse 8 instructions (1 ou octets) 6 registres Jean Privat (UQAM) 1 Introduction INF217 Automne 21 26 /
Pep/8 Registres Accumulateur (A) : 1 mot (2 octets) Index (X) : 1 mot Compteur ordinal (PC) : 1 mot Pointeur de pile (SP) : 1 mot Mot d état : 4 bits Instruction : 1 ou octets Jean Privat (UQAM) 1 Introduction INF217 Automne 21 27 /
Mot d état Pep/8 4 bits de statut (NZVC) N = 1 si négatif Z = 1 si zéro V = 1 si débordement (overflow) C = 1 si retenu (carry) Jean Privat (UQAM) 1 Introduction INF217 Automne 21 28 /
Boucle d exécution de l UCT L UCT ne s arrête jamais Exécute continuellement les instructions 1 pas d exécution = 4 étapes Extraire le contenu de la cellule mémoire dont l adresse se trouve dans le compteur ordinal Décoder l instruction obtenue : extraire le code de l opération et les opérandes Augmenter le compteur ordinal Exécuter les opérations indiquées par l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 29 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 19 1 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 19 1 Ranger dans A le mot en 1 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 19 1 Ranger dans A le mot en 1 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 19 1 Ranger dans A le mot en 1 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 11 12 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 11 12 Ajouter à A le mot en 12 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 6 11 12 Ajouter à A le mot en 12 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 8 6 11 12 Ajouter à A le mot en 12 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 8 6 22 14 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 8 6 22 14 Ranger en 14 le mot de A Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 A PC Instr = 8 9 22 14 Ranger en 14 le mot de A Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 8 A PC Instr = 8 9 22 14 Ranger en 14 le mot de A Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 8 A PC Instr = 8 9 Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 8 A PC Instr = 8 9 Terminer l exécution Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 8 A PC Instr = 8 1 Terminer l exécution Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Cycle d exécution : Exemple 1 1 19 1 11 12 22 14 8 A PC Instr = 8 1 Terminer l exécution Exécution d une instruction Obtenir l instruction à partir du compteur ordinal (PC) Décoder l instruction Incrémenter PC Exécuter l instruction Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /
Instructions et données Attention : pas de distinction pour l UCT L UCT travaille en aveugle (tout n est que des bits) Le programmeur en assembleur est responsable Erreur habituelle Faire exécuter des trucs en mémoire qui ne sont pas des instructions du programme Jean Privat (UQAM) 1 Introduction INF217 Automne 21 1 /
La semaine prochaine Codage de l information Tout est des bits... mais pas forcément rangés pareils Jean Privat (UQAM) 1 Introduction INF217 Automne 21 2 /
Bibliographie Notes de cours Chapitre 1 : Introduction Chapitre 2 : Structure et fonctionnement d un ordinateur Livre Sections 1.1, 1.2, 1., 4.1 et 4. Programmes 1-exemple.pep 1-exemple.pepo Jean Privat (UQAM) 1 Introduction INF217 Automne 21 /