0% ont trouvé ce document utile (0 vote)
30 vues42 pages

Architecture et Fonctionnement du CPU

Le document décrit les composants de base d'un ordinateur dont le processeur, la mémoire, les disques et les périphériques d'entrée/sortie. Il explique ensuite le fonctionnement du processeur, ses registres et son évolution vers le multitâche.

Transféré par

Ons Zaghbouni
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues42 pages

Architecture et Fonctionnement du CPU

Le document décrit les composants de base d'un ordinateur dont le processeur, la mémoire, les disques et les périphériques d'entrée/sortie. Il explique ensuite le fonctionnement du processeur, ses registres et son évolution vers le multitâche.

Transféré par

Ons Zaghbouni
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module 2

Mondher Bouden

Semestre 2
2023-2024
Structure matérielle d’un ordinateur

2
Composantes de base d’un ordinateur
• Processeur(s) ou CPU
• Mémoire
• Disques
• Périphériques d’entrées et sorties (E/S)
• Les bus (ISA, PCI, etc…)

3
CPU
Processeur (CPU)
• Base même de tous les ordinateurs
• Extrait les instructions de la
instruc.
mémoire et les exécute.

données

4
CPU
Processeur (CPU)
• Base même de tous les ordinateurs
• Extrait les instructions de la
instruc.
mémoire et les exécute.
• Chaque modèle possède
données – jeu d’instructions
– registres
– architecture
– mémoire (cache)
– autres (gestion mémoire, etc…)
SE s’appuie sur les capacités d’un processeur 5
CPU
Principaux registres CPU
• Compteur ordinal / Program Counter (PC)
– adresse de l’instruction en cours

• Pointeur de pile / Stack pointer


– adresse courante du sommet de la pile

• Mot d’état / Program status word


– état du processeur +
bits de comparaison (zéro, overflow, etc)

6
CPU
Révision : pile (stack)
• Sert pour :
– passer les paramètres lors
d’un appel de fonction
– adresse de retour
– variables locales de cette
fonction

DrawLine( ) est appelé de DrawSquare( )


tiré de wikipédia
auteur : R. S. Shaw

7
CPU
Principaux registres CPU
• Architecture Intel x86

pile

8
CPU
Principaux registres CPU
mémoire
• Exemple avec addition A=?
Registre EIP Registre EAX
---- -----
int A;
A = 3;

A = A + 4;

9
CPU
Principaux registres CPU
mémoire
• Exemple avec addition A=?
Registre EIP Registre EAX
---- -----
int A;
A = 3;
001F138E mov dword ptr [A],3
A = A + 4;
001F1395 mov eax,dword ptr [A]
001F1398 add eax,4
001F139B mov dword ptr [A],eax

(Sortie du compilateur Visual Studio C++)


10
CPU
Principaux registres CPU
mémoire
• Exemple avec addition A=?
Registre EIP Registre EAX
0x001F138E- -----
int A;
A = 3;
001F138E mov dword ptr [A],3
A = A + 4;
001F1395 mov eax,dword ptr [A]
001F1398 add eax,4
001F139B mov dword ptr [A],eax

11
CPU
Principaux registres CPU
mémoire
• Exemple avec addition A=3-
Registre EIP Registre EAX
0x001F1395- -----
int A;
A = 3;
001F138E mov dword ptr [A],3
A = A + 4;
001F1395 mov eax,dword ptr [A]
001F1398 add eax,4
001F139B mov dword ptr [A],eax

12
CPU
Principaux registres CPU
mémoire
• Exemple avec addition A=3-
Registre EIP Registre EAX
0x001F1398- 3-
int A;
A = 3;
001F138E mov dword ptr [A],3
A = A + 4;
001F1395 mov eax,dword ptr [A]
001F1398 add eax,4
001F139B mov dword ptr [A],eax

13
CPU
Principaux registres CPU
mémoire
• Exemple avec addition A=3-
Registre EIP Registre EAX
0x001F139B- 7-
int A;
A = 3;
001F138E mov dword ptr [A],3
A = A + 4;
001F1395 mov eax,dword ptr [A]
001F1398 add eax,4
001F139B mov dword ptr [A],eax

14
CPU
Principaux registres CPU
mémoire
• Exemple avec addition A=7-
Registre EIP Registre EAX
0x001F139E- 7-
int A;
A = 3;
001F138E mov dword ptr [A],3
A = A + 4;
001F1395 mov eax,dword ptr [A]
001F1398 add eax,4
001F139B mov dword ptr [A],eax
001F139E ...

15
CPU
Principaux registres CPU
mémoire
• Exemple avec addition A=7-
Registre EIP Registre EAX
0x001F139E- 7-
int A;
A = 3;
001F138E mov dword ptr [A],3
A = A + 4;
001F1395 mov eax,dword ptr [A] est en fait 3
001F1398 add eax,4 instructions
001F139B mov dword ptr [A],eax assembleur
001F139E ...

16
CPU
Évolution : monotâche
• 8088 : Accès à tous les registres, adresses
mémoires
Intel 8088
16 bits interne, 5-10 MHz

• Si désire faire tourner + d’un processus, il faut :


– protéger les autres processus des incursions
(accidentelles ou volontaires) ?
– le faire de façon efficace (rapide)
– comment : nécessite CPU plus évolué
(S.E. s’appuient énormément sur le matériel)
17
CPU
Évolution : Multitâches
• Mode protégé (protected)
• Chez Intel en 1982 : 80286

• Pas sur tous les CPU récents :


– Microcontrôleur (ATmega168)

Arduino

18
CPU
Mode protégé (protected)
• Pour avoir superviseur (S.E.), mécanisme matériel
– avoir des privilèges d’accès (au matériel) particuliers à chaque anneau
– limiter comment on passe d’un anneau à l’autre
– pouvoir attribuer des niveaux de privilèges au code
Moins
privilégié
• Mode noyau (0) peut
exécuter code 0,1,2,3

•Mode utilisateur (3) peut Plus


exécuter code 3 seulement privilégié

anneaux de protection
(Intel) 19
CPU
Instructions machines privilégiées
• Provoque déroutement si mode utilisateur (3)
(interrupt) ARPL - Adjusted Requested Privilege Level of
Selector
Arrêter le processeur HLT - Halt processor until next interrupt
LGDT - Load IFTbal Descriptor Table
segments mémoires SGDT - Store IFTbal Descriptor Table
SLDT - Store Local Descriptor Table
(spécifie niveau privilège du code) LLDT - Load Local Descriptor Table
INVD - Invalidate internal Caches
caches internes WBINVD — Write Back and Invalidate Cache
INVLPG - Invalidate TLB entry

entrées/sorties IN
OUT
- Read port
- Write port

tables interruptions
LIDT - Load Interrupt Descriptor Table
SIDT - Store Interrupt Descriptor Table

niveau actuel de privilège SMSW - Store Machine Status Word


LMSW - Load Machine Status Word

(donc, uniquement LSL


LTR
-
-
Load Segment Limit
Load Task Register
etc…
exécutable en mode
STR - Store Task Register
CLTS - Clear Task Switched Flag

noyau (0)) SWAPGS—Swap GS Base Register


20
CPU
Instructions machines privilégiées
(interrupt)
• Provoque déroutement si mode utilisateur (3)
ARPL - Adjusted Requested Privilege Level of
Selector
Arrêter le processeur HLT - Halt processor until next interrupt
LGDT - Load IFTbal Descriptor Table
segments mémoires SGDT - Store IFTbal Descriptor Table
SLDT - Store Local Descriptor Table
(spécifie niveau privilège du code) LLDT - Load Local Descriptor Table
INVD - Invalidate internal Caches
caches internes WBINVD — Write Back and Invalidate Cache
INVLPG - Invalidate TLB entry

entrées/sorties IN
OUT
- Read port
- Write port

tables interruptions
LIDT - Load Interrupt Descriptor Table
SIDT - Store Interrupt Descriptor Table

niveau actuel de privilège SMSW - Store Machine Status Word


LMSW - Load Machine Status Word

(donc, uniquement LSL


LTR
-
-
Load Segment Limit
Load Task Register

exécutable en mode STR


CLTS
-
-
Store Task Register
Clear Task Switched Flag

noyau (0)) SWAPGS—Swap GS Base Register


21
CPU
CPU multitâches : 2 modes
Niveau privilège Système Accès
(CPU) d’exploitation
Ring 0 noyau (kernel) accès complet

Ring 3 utilisateur accès limités pour :


(user) instructions
registres
mémoire
• Avantages
– contrôle serré des ressources, protège la mémoire
• Défaut : basculer (trap) d’un à l’autre est cher :
– approx. 1500 cycles machines  performance

22
CPU
Niveau privilège processeur vs. admin

deux mécanismes différents!!!!

niveau privilège compte


noyau (0) administrateur

matériel logiciel

Un compte admin est un concept inconnu pour un


processeur

23
Mem
Mémoire
• Architecture mémoire : augmenter performance
type
d’électronique
mémoire statique

c
o mémoire
û dynamique

statique : 6 transistors
dynamique : 1 transistor

24
Mem
Mémoire cache : multi-coeurs

25
Disque
Disque
• Disques magnétiques
• Tête lecture-écriture
• Capacité de stockage élevée
– 4To vs 16 Go RAM
• Non-volatile
• Temps accès : ~10 ms
• Débit : 50-160 Mo/s

26
Disque
Disque
• Serial ATA : bus pour disques durs sur PC
• Extrait commandes contrôleur pour écritures

• commande système : write()


27
E/S
Périphériques d’entrées/sorties (E/S)
• 2 parties :
– contrôleur (jeu de puces) reçoit les commandes et
les exécute
– périphérique lui-même

28
E/S
Périphériques d’entrées/sorties (E/S)
• Pilote de périphérique
• Fournis par le manufacturier
– 1 pilote par système
d’exploitation
• Pilote tourne généralement
en mode noyau (kernel)
– accès sans restrictions aux bus

29
Bus
Bus de données (simplifiée)

30
Bus
Bus (+ complet)
Carte
• Nombreux bus graphique
Bus Front-
Side
– front-side bus Mémoire
– mémoire Bus Bus
AGP Mém
– AGP (graphique)
– PCI/PCI Express
– SATA/IDE : disques
– USB Bus
PCI
– Firewire (IEEE-1394) Bus
– ISA PCI

• PCI : norme courante


• ISA, SCSI : désuétude Cartes PCI
• Cache : presque toujours sur CPU Low Pin Count
bus

31
Coévolution matériel et S.E.
• Matériel permet d’offrir ou d’accélérer certaines
opérations nécessaires au S.E.
• Exemple de matériel :
– Mémoire cache
– Memory Management Unit (MMU)
– Translation Look-aside Buffer (TLB)
– Anneaux de protections (ring)
– Adressage par segment
– Mécanismes d’interruptions (horloge)
– DMA (Direct Memory Access)
32
Différentes catégories de S.E.

33
Quel est le meilleur S.E. ?
• Réponse : aucun!
– Dépend des applications
– Dépend de l’ordinateur

PIC 8-bit 448 K


256 bytes ROM, z10 d’IBM
16 bytes RAM 77 processeurs et
MPC555 40 MHz >1000 GB RAM
• Différentes catégories de S.E.
34
Catégorie : S.E. des PC
• Certainement les plus familiers
• Monotâche  multitâches
• Importance GUI conviviale
• Support pour nombreux périphériques
• Nombreux logiciels disponibles
• Exemples:
– Windows XP/Vista/7/8/10
– MacOS
– Ubuntu (Linux)
35
Catégorie : Serveurs
• Application typiques :
– web
– fichiers
– email
• Grand nombre de petites tâches
• Exemples de S.E. :
– Solaris
– FreeBSD (Berkeley Software Distribution)
– Linux
– Windows Server 20xx
36
Serveur : ère des data centers
• Google : 450, 000 serveurs

• Facebook : > 60,000 serveurs


• Utilisent souvent des versions propriétaires
comme S.E.  développent interne des S.E.
(1.3% électricité dans le monde est pour data centers) 37
Catégorie : Mainframes
• Serveurs à très grande capacité
• Grosses tâches (météo)
• Accent sur la fiabilité :
– banques
– trafic aérien
• OS/390, LINUX on System z (IBM)
• Aussi systèmes anciens
– VAX/VMS
z10 d’IBM
77 processeurs et
>1000 GB RAM

38
Catégorie : Systèmes embarqués (embedded)
• S.E. simplifiés
– peu ou pas d’interface usager
– taille mémoire + CPU réduite
• Peuvent être mono-tâches
• Pas de démarrage de nouveaux
processus par l’usager : statique
• Exemples :
– QNX, VxWorks
– Kernel Linux + Busybox
– uClinux, eCos
39
Catégorie : Systèmes temps réel
• Met l’accent sur la prédictibilité des temps d’exécution
• e.g. exécuter tâche exactement à chaque milliseconde
• Exemples :
– QNX
– VxWorks
– FreeRTOS
– Real Time Linux

Big Dog de Boston Dynamics 40


Catégorie : Assistants personnels (PDA)
• Systèmes généralement fermés (pas d’ajout périphérique)
• Petit / CPU limitée / téléphonie / réseau / GPS
• Faible consommation électricité
• Emphase sur l’interface graphique, pas la performance calcul
• Démarrage rapide, utilisation courte

Apple Palm Google Symbian


iOS Android Windows 7
OS OS Mobile
41
Catégorie : Réseaux de capteurs
• Microcontrôleur + batteries + sans-fil + capteurs
priorité : faible consommation électrique

CPU : Atmel ATmega128L

42

Vous aimerez peut-être aussi