Documente Academic
Documente Profesional
Documente Cultură
Introduction
• Terminologie de base et Notions
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
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
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).
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
: 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
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