Vous êtes sur la page 1sur 43

Plan(1)

 Introduction
• Terminologie de base et Notions

 Vues des systèmes informatiques


• Point de vue de l’utilisateur
• Point de vue du programmeur
o Avantages des langages de haut niveau
o Pourquoi le programme est en langage
assembleur
• Point de vue de l’architecte
• Point de vue implémentation : Page 1
Plan(2)
 Processeur
• Cycle d’exécution
• Pipeline
• RISC et CISC architecture
 Mémoire
• Opérations de base
• Organisation- Capacité-….
 Input/Output
 Interconnection: The glue
 Perspective historique
 Les progrès technologiques : Page 2
, “,” , .
Introduction
 Informatique : contraction d'information et
automatique
• Traitement automatique de l'information par des
machines

 Termes de base
•Architecutre de l’ordinateur
•Organisation de l’ordinateur
•Conception de l’ordinateur
•Programmation

: Page 3
, “,” , .
Introduction
 Vues des systèmes informatiques
• Point de vue : Utilisateur
• Point de vue: Programmeur
o Avantages des langages de haut niveau
o Pourquoi le programme est en langage
assembleur?
• Point de vue: Architecte
• Point de vue: Implémentation

: Page 4

, “,” , .
Introduction (suite)
Term Decimal Binary
K (kilo) 103 210
M (mega) 106 220
G (giga) 109 230
T (tera) 1012 240
P (peta) 1015 250
Chapter 1: Page 5
Point de vue: Utilisateur

Chapter 1: Page 6
Point de vue: Programmeur
 Dépend du type et du niveau de langage utilisé
 Hiérarchie des langages
 Langage Machine
• Langage Assembleur
• Langage haut niveau
• Programmes d’application
 Machine-independent
• Langage haut niveau /Programmes d’application
 Spécifique aux machines
 Machine et langage Assembleur

: Page 7
Point de vue: Programmeur

: Page 8

, “,” , .
Point de vue: Programmeur
 Langage Machine
• Originaire du processeur
• Composé des 1s et 0s
1111 1111 0000 0110 0000 1010 0000 0000B
FF060A00H
 Langage Assembleur
– Un langage légèrement haut niveau
– Lisible par l’homme
– Corrspondance des instructions une à une avec le langage
machine
inc count

: Page 9
Point de vue: Programmeur
Langage Assembleur Langage Machine
(en Hex)
inc result FF060A00
mov class_size,45 C7060C002D00
and mask,128 80260E0080
add marks,10 83060F000A

: Page 10
Point de vue: Programmeur
 Assembleurs traduisent un langage Assembleur en
langage machine
• TASM (Borland Turbo Assembler)
• MASM (Microsoft Assembler)
• NASM (Netwide Assembler)
 Compilateur traduit un langage de haut niveau en
langage machine
• Direct
• Indirect via un Assembleur
Chapter 1: Page 11
Point de vue: Programmeur

Chapter 1: Page 12
Point de vue: Programmeur
 Langage de niveau haut VS Langage Assembleur
En C:
result =
count1 + count2 + count3 + count4
En Pentium langage Assembleur:
mov AX,count1
add AX,count2
add AX,count3
add AX,count4
mov result,AX

Chapter 1: Page 13
Point de vue: Programmeur
 Certaines instructions d’un langage de niveau haut
peuvent être exprimées par une instruction en langage
Assembleur
Assembleur C
inc result result++;
mov size,45 size = 45;
and mask1,128 mask1 &= 128;
add marks,10 marks += 10;

Chapter 1: Page 14
Point de vue: Programmeur
 D’autres instructions en langage de niveau haut
s’exprime par plus d’une instruction
C Assembleur
size = value; mov AX,value
mov size,AX

sum += x + y + z; mov AX,sum


add AX,x
add AX,y
add AX,z
mov sum,AX

Chapter 1: Page 15
Point de vue: Programmeur
 Instruction set architecture (ISA)
• Un important niveau d'abstraction
• Indique le fonctionnement d'un processeur
• Définit un processeur logique
 Différentes implémentations sont possibles
• Tous ont même logique

 Différentes implémentations peuvent différer en


• Performance
• Prix
 Deux exemples célèbres de spécifications ISA
• SPARC et JVM

Chapter 1: Page 16
Avantages de Langages haut
niveau
 Développement des programmes est plus rapide
• Instructions de haut niveau
• Peu d’instructions à coder
 Maintenance des programmes plus facile
 Programmes sont portables
 Langage Assembleur n’est pas portable
 Compilateur les traduit en langage Machine

Chapter 1: Page 17
Pourquoi le langage Assembleur
 2 raisons principales:
• Efficacité
• D’espace
• De temps
• Accessibilité au hardware
 Efficacité d’espace
• Code Assambleur tend à être compact

 Efficacité de temps
• Langage Assembleur s’execute rapidement
Chapter 1: Page 18
Point de vue Architecte

Chapter 1: Page 20
Point de vue Architecte

Chapter 1: Page 21
Point de vue Implémentation
 Implémente la conceptions générés par les architectes
• Utilise des portes logiques numériques et d'autres
circuits du hardware
• Exemple
– Processeur est constitué de
• Unité de contrôle (controle unit)
• Datapath
– ALU
– Registers
 Des implémenteurs s’intéressent à la conception de ces
composants

Chapter 1: Page 22
Point de vue Implémentation

Chapter 1: Page 23
Point de vue Implémentation

Chapter 1: Page 24
Point de vue Implémentation

Chapter 1: Page 25
Processeur
• unité de contrôle, de commande et de synchronisation ;
• unité arithmétique et logique
• mémoire et registres internes
• unité d’entrées/sorties
• bus internes

26
Processeur
 Instruction : un ordre élémentaire exécutable par un
microprocesseur donné (en un certain nombre de cycle
d’horloge).

 Classification des instructions :


• instructions de transfert
• instructions arithmétiques
• instructions logiques
• instructions de commande
• instructions d’entrée/sortie

27
Processeur
 Principe général du cycle de fonctionnement du
microprocesseur
• Lecture d’un code d’instruction en mémoire (fetch)
• Reconnaissance de ce code, ou décodage (decode)
• Exécution d’un ordre élémentaire (execute)
• Positionnement sur le code de l’instruction suivante du
programme
 Architecture Von Neumann
• Modèle de programme mémorisé
• Instructions et données ne sont pas distinguées
• Instructions exécutées séquentiellement

: Page 28

, “,” , .
Processeur (cont’d)
 Pipeline
• Execution de plusieurs opérations simultanément
• Augmentation du débit

: Page 29
Architecture des microprocesseurs: RISC et CISC
 Reduced Instruction Set Computer
• Instructions simples
• Beaucoup de registres
• Peu de modes d’adressage: Accès à la mémoire dans
les cas de sauvegarde et chargement)
• Décodeur simple
• Instructions au format fixe
 Complex Instruction Set Computer
• Instructions complexes
• Instructions au format variable
• Beaucoup de modes d’adressage: Peu de registres
• Décodeur complexe (utilisations des microcodes)

: Page 31
Processeur (cont’d)

: Page 32
Critères de puissance d'un microprocesseur

 Vitesses d'horloge interne et externe (sur les bus


externes)

 Largeur du bus de donnée : taille des mots manipulés


en une instruction

 Largeur du bus d'adresse : taille de la mémoire gérée


 Nombre de registres et de mémoires internes (caches,
buffers, ...) qui réduisent le nombre d'accès en
mémoire centrale

 Nombre d'instructions et complexité du jeu


d'instructions
Chapter 1: Page 33
Mémoire
 Ensemble de cellules pouvant chacune stocker une
donnée

 Chaque cellule possède un numéro unique appelé


adresse, auquel les programmes peuvent se référer

 Deux cellules mémoire adjacentes ont des adresses


mémoires consécutives

 Toutes les cellules d'une mémoire contiennent le même


nombre de bits

 Une cellule de n bits peut stocker 2n valeurs numériques


différentes
: Page 34
Mémoire

: Page 35
Fonctionnement de la Mémoire
 Unité Mémoire
• Addresse
• Data
• Signaux de contrôle
• Lecture (non destructive)
• Ecriture (destructive)

: Page 36
, “,” , .
Fonctionnement de la Mémoire
 Cycle de lecture
1. Présenter l’adresse du mot mémoire qui stocke l’information à
lire sur le bus d’adresse
2. Lancement de la commande de lecture
3. Attendre la mémoire de retrouver les données, placer les
informations sur les bus de données, introduire des états d'attente
(cycles d’attente) wait states si on utilise une mémoire lente
4. Lire les informations de bus de données
5. Désactiver la commande de lecture
 En Pentium, une lecture d’information prend 3 cycles d’horloge
• Clock 1: steps 1 and 2
• Clock 2: step 3
• Clock 3 : steps 4 and 5
Fonctionnement de la Mémoire
 Cycle d’écriture
1. Présenter l’adresse du mot mémoire qui va stocker
l’information
2. Présenter l’information à stocker sur le bus de données
3. Lancement de la commande d’écriture
4. Attendre la mémoire de copier l’information dans la
location adressée de mémoire, les données, introduire des
états d'attente (cycles d’attente) wait states si on utilise
une mémoire lente
5. Désactiver la commande d’écriture
 En Pentium, une écriture d’information prend 3 cycles
• Clock 1: steps 1 and 3
• Clock 2: step 2
• Clock 3 : steps 4 and 5
Ordre des octets: Byte Ordering

Chapter 1: Page 39
Problèmes de conception
 Mémoires lentes
Problème: écart de vitesse entre le processeur et la mémoire
Solution: Cache memory
– Utiliser une petite mémoire rapide
– Faire la mémoire plus rapide
– Fonctionne en raison de "localité de référence«

 Limitations de capacité
• Quantité limité de mémoire physique
• Applications systèmes

Solution: Mémoire virtuelle (Virtual memory)


• Automatise la gestion de superposition
• Certains avantages supplémentaires

Chapter 1: Page 41
Problèmes de conception

Chapter 1: Page 43
Input/Output
 Périphériques E/S sont interfacés via un contrôleur I/O
 Takes care of low-level operations details
 Différentes manières d’interconnecter avec les E/S
– Memory-mapped I/O
• lecture et écriture similaires avec les principes de la
mémoire
• Utilisation des signaux de lecture et d’écriture
• Processeurs utilisent mapped I/O
– I/O isolé (Isolated I/O)
• I/O addresses séparés
• I/O signal de lecture et d’écriture séparé
• Pentium
• I/O isolé et mapped

Chapter 1: Page 44
Input/Output (cont’d)

Chapter 1: Page 45
Input/Output (cont’d)
 Plusieurs modes de transférer des donnéesProgrammed I/O
• Program uses a busy-wait loop
– Anticipated transfer
 Direct memory access (DMA)
• Special controller (DMA controller) handles data
transfers
• Typically used for bulk data transfer
– Interrupt-driven I/O
• Interrupts are used to initiate and/or terminate data
transfers
– Powerful technique
– Handles unanticipated transfers

Chapter 1: Page 46
Interconnection
 Les composants du système sont interconnectés par des
bus
 Bus: un groupe de fils parallèles
 Utilise plusieurs bus à différents niveaux
– Bus du processeur
• Bus connectant l’ALU et les registres
• Bus de données et d’adresses
– Bus internes
• PCI, AGP, PCMCIA
– Bus externes
• Série – parallèlle- USB