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