52
Chapitre 1 Introduction à l’organisation des ordinateurs et à l’assembleur Jean Privat Université du Québec à Montréal INF2170 — Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 1 / 33

Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Embed Size (px)

Citation preview

Page 1: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Chapitre 1Introduction à

l’organisation des ordinateurset à l’assembleur

Jean PrivatUniversité du Québec à Montréal

INF2170 — Organisation des ordinateurs et assembleurAutomne 2013

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 1 / 33

Page 2: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Organisation des ordinateurs etassembleur

Objectifs du coursComprendre comment un ordinateur fonctionne (envrai)Apprendre à programmer directement un ordinateur(en vrai)

Difficultés du coursC’est un cours de programmation

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 2 / 33

Page 3: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Plan

1 Programmer en assembleur

2 Structure et fonctionnement d’un ordinateur

3 Le processeur Pep/8

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 3 / 33

Page 4: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Plan

1 Programmer en assembleur

2 Structure et fonctionnement d’un ordinateur

3 Le processeur Pep/8

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 4 / 33

Page 5: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Programmer en assembleur

Qui programme en assembleur ?Développeurs de systèmes d’exploitationDéveloppeurs de pilotesDéveloppeurs de compilateurs et machines virtuellesDéveloppeurs de logiciels haute performance

Et les autres programmeurs ?Ne veulent pas entendre parler d’assembleur

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 5 / 33

Page 6: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Pourquoi ce cours alors ?

Organisation des ordinateursComprendre l’organisation des ordinateurs du pointde vue du programmeurCar tout ce que fait l’ordinateur passe forcément parle langage machine

BonusApprendre à programmer autrement

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 6 / 33

Page 7: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Domaine d’étude

Structure typique d’un ordinateurApplicationsLangages de haut niveau (dits évolués)Système d’exploitationAssembleur et langage machineMicro-architectureCircuits logiques

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 7 / 33

Page 8: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Domaine d’étude

Structure typique d’un ordinateurApplicationsLangages de haut niveau (dits évolués)Système d’exploitationAssembleur et langage machineMicro-architectureCircuits logiques

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 7 / 33

Page 9: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

AssembleurLangage de programmation impératif

Séquences d’instructionsBouclesStructures conditionnellesAppels de sous-programmes... Bref, rien de nouveau

Langage sans petites rouespas de contrôle automatiquepas d’aide

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 8 / 33

Page 10: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Assembleur

Entités en œuvreLe programmeurLe langage (assembleur)Le compilateur (assembleur)Le moteur d’exécution (processeur ou simulateur)

Principes du génie logiciel fondamentauxDisciplineMéthode

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 9 / 33

Page 11: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

AssembleurDéfinition

Forme symbolique des instructions du langagemachine

Exemplex = a + b - c ;sera codéOBT A ; o b t e n i r l a v a l e u r de AAJT B ; a j o u t e r l a v a l e u r de BSOU C ; s o u s t r a i r e l a v a l e u r de CRAN X ; r ange r l a v a l e u r dans X

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 10 / 33

Page 12: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Plan

1 Programmer en assembleur

2 Structure et fonctionnement d’un ordinateur

3 Le processeur Pep/8

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 11 / 33

Page 13: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Structure et fonctionnementd’un ordinateur

Principes de baseUn ordinateur est une machineTout n’est que bits

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 12 / 33

Page 14: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

HistoriqueCailloux et abaques (-5000)

« Calcul » et « caillou » ont la même étymologieAbaques = outils (bouliers, tablettes, etc.)

Machines mécaniquesPascaline (1642) : une calculatriceMachine analytique (1830) : programmable

Premiers vrais ordinateursMARK I (1937–1944) : électromécaniqueENIAC (1943–1946) : électronique

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 13 / 33

Page 15: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Machine de von NeumannPrincipes

Un médium d’entrée→ quantité virtuellement illimité de donnéesUne unité d’emmagasinage→ même représentation interne (bits)pour les instruction et les donnéesUne unité de calcul→ arithmétique et logiqueUn médium de sortie→ quantité virtuellement illimité de résultatsUne unité de contrôle→ interpréter les instructions

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 14 / 33

Page 16: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Machine de von Neumann

Bus

Entrée(clavier) Mémoire

Sortie(écran)

Registres

UCT

Unité arith-métiqueet logique

Unité decontrôle

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 15 / 33

Page 17: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Mémoire

Élément centralTout passe par là (programmes et données)Ensemble fini de cellules

Chaque celluleA une adresseA un nombre fixe de bitsA une seule valeur à la foisEst accessible très rapidement (nano seconde)

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 16 / 33

Page 18: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Mémoire

Tout n’est que bitsUn cellule mémoire de contient que des bits (desnombres)Toute information traitée par un ordinateur doit êtrecodée sous forme numérique... Y compris les instructions machines

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 17 / 33

Page 19: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Mémoire : Exemple1930010113012522501400103050015

Une interprétation possible193 0 10 ; Obtenir mot en 10113 0 12 ; Ajouter mot en 12225 0 14 ; Ranger mot en 140 ; Terminer l’exécution0 3 ; Entier 3 (Première opérande)0 5 ; Entier 5 (Seconde opérande)

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 18 / 33

Page 20: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Mémoire : Exemple1930010113012522501400103050015

Une interprétation possible193 0 10 ; Obtenir mot en 10113 0 12 ; Ajouter mot en 12225 0 14 ; Ranger mot en 140 ; Terminer l’exécution0 3 ; Entier 3 (Première opérande)0 5 ; Entier 5 (Seconde opérande)0 0 ; Entier 0

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 18 / 33

Page 21: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Mémoire : Exemple1930010113012522501400103050815

Une interprétation possible193 0 10 ; Obtenir mot en 10113 0 12 ; Ajouter mot en 12225 0 14 ; Ranger mot en 140 ; Terminer l’exécution0 3 ; Entier 3 (Première opérande)0 5 ; Entier 5 (Seconde opérande)0 8 ; Entier 8 (résultat)

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 18 / 33

Page 22: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

RAM/ROM

Mémoire vive ou RAM (random access memory)Stocke les programmes et les donnéesAccessible en lecture et écriture

Mémoire morte ou ROM (read-only memory)Contient de quoi amorcer l’ordinateurContient le code des primitives basiquesd’entrées-sorties (BIOS)Accessible en lecture seulement(voire en écriture par des moyens détournés)

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 19 / 33

Page 23: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Unités d’entrée-sortie

Communiquer avec l’extérieurHumains et environnementOn parle communément de périphériques

ExemplesClavierÉcranDisque durHaut-parleur

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 20 / 33

Page 24: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Unité centrale de traitement (UCT)

Unité de calculExécute les opérations logiques et arithmétiques

Unité de contrôleLit les instructions en mémoireFournit les opérandes à l’unité de calculRécupère les résultats de l’unité de calcul

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 21 / 33

Page 25: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Horloge

Synchronise les activitésEngendre un signal régulier (GHz)Les activités de l’ordinateur sont synchronisées

Cycle d’horlogeLa plus petite unité de tempsUne instruction peut nécessiter plusieurs cycles

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 22 / 33

Page 26: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Bus

DéfinitionMedium de communication entre les composantesEnsemble de lignes de communication

Les bus sont spécialisésDonnées → bus de donnéeAdresses → bus d’adresseSignaux → bus de contrôle

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 23 / 33

Page 27: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Registres

MémoireCellules mémoire de l’UCTAccès plus rapide que la mémoire principale(pas besoin de prendre le bus)

ContientStocke les opérandes, résultats, etc.Sert au contrôle de l’ordinateur

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 24 / 33

Page 28: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Plan

1 Programmer en assembleur

2 Structure et fonctionnement d’un ordinateur

3 Le processeur Pep/8

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 25 / 33

Page 29: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Pep/8

Une machine de von Neumann très simpleCaractères US-ASCII (7 bits)Mots de 16 bits (2 octets)Mémoire de 216 octets (64 ko)16 bits d’adresse38 instructions (1 ou 3 octets)6 registres

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 26 / 33

Page 30: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Pep/8

RegistresAccumulateur (A) : 1 mot (2 octets)Index (X) : 1 motCompteur ordinal (PC) : 1 motPointeur de pile (SP) : 1 motMot d’état : 4 bitsInstruction : 1 ou 3 octets

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 27 / 33

Page 31: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Mot d’état Pep/8

4 bits de statut (NZVC)N = 1 si négatifZ = 1 si zéroV = 1 si débordement (overflow)C = 1 si retenu (carry)

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 28 / 33

Page 32: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Boucle d’exécution de l’UCT

L’UCT ne s’arrête jamaisExécute continuellement les instructions

1 pas d’exécution = 4 étapesExtraire le contenu de la cellule mémoire dontl’adresse se trouve dans le compteur ordinalDécoder l’instruction obtenue : extraire le code del’opération et les opérandesAugmenter le compteur ordinalExécuter les opérations indiquées par l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 29 / 33

Page 33: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

0A0PC0Instr

=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 34: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

0A0PC

193 0 10Instr=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 35: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

0A0PC

193 0 10InstrRanger dans A le mot en 10=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 36: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

0A3PC

193 0 10InstrRanger dans A le mot en 10=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 37: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

3A3PC

193 0 10InstrRanger dans A le mot en 10=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 38: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

3A3PC

113 0 12Instr=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 39: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

3A3PC

113 0 12InstrAjouter à A le mot en 12=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 40: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

3A6PC

113 0 12InstrAjouter à A le mot en 12=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 41: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

8A6PC

113 0 12InstrAjouter à A le mot en 12=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 42: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

8A6PC

225 0 14Instr=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 43: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

8A6PC

225 0 14InstrRanger en 14 le mot de A=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 44: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050015

8A9PC

225 0 14InstrRanger en 14 le mot de A=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 45: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050815

8A9PC

225 0 14InstrRanger en 14 le mot de A=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 46: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050815

8A9PC0Instr

=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 47: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050815

8A9PC0InstrTerminer l’exécution=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 48: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050815

8A10PC0InstrTerminer l’exécution=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 49: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Cycle d’exécution : Exemple1930010113012522501400103050815

8A10PC0InstrTerminer l’exécution=

Exécution d’une instructionObtenir l’instruction à partir ducompteur ordinal (PC)Décoder l’instructionIncrémenter PCExécuter l’instruction

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 30 / 33

Page 50: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

Instructions et données

Attention : pas de distinction pour l’UCTL’UCT travaille en aveugle (tout n’est que des bits)Le programmeur en assembleur est responsable

Erreur habituelleFaire exécuter des trucs en mémoire qui ne sont pasdes instructions du programme

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 31 / 33

Page 51: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

La semaine prochaine

Codage de l’informationTout est des bits... mais pas forcément rangés pareils

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 32 / 33

Page 52: Chapitre 1 Introduction à l'organisation des ordinateurs et à l

BibliographieNotes de cours

Chapitre 1 : IntroductionChapitre 2 : Structure et fonctionnement d’unordinateur

LivreSections 1.1, 1.2, 1.3, 4.1 et 4.3

Programmes01-exemple.pep01-exemple.pepo

Jean Privat (UQAM) 01 — Introduction INF2170 — Automne 2013 33 / 33