Post on 15-Sep-2018
1
Architecture des ordinateurs
Damien Martin-GuillerezINRIA/IRISA
dmartin@irisa.fr
À partir des supports de cours de Vincent GUILLOUX et Simon ARBERET
2
Plan
� IntroductionIntroductionIntroductionIntroduction� Historique
� Modèles
� Architecture d'un IBM PC
� Processeurs
� Mémoires
� Système d'exploitation
3
Introduction
� Architecture informatique :� décrit la structure « d'un système
informatique en terme de composants et d'organisation de ses fonctions. » Wikipedia
� Il s'agit d'un ensemble de règles et principes permettant de décrire le fonctionnement d'un système informatique.
2
4
Introduction
� Plusieurs couches :� Matérielle/Logicielle� Couches de niveau
� Exemple (DOS) :
5
Plan
� Introduction
� HistoriqueHistoriqueHistoriqueHistorique� Modèles
� Architecture d'un IBM PC
� Processeurs
� Mémoires
� Système d'exploitation
6
Historique
� Formalismes� Algorithmes (Époque Babylonienne) � Machine de Turing (Alan Turing, 1936) � Machine de von Neumann (EDVAC, 1944)
3
7
La préhistoire
� Calculateurs� Wilhelm Schickard (1623) � Pascaline (Blaise Pascal, 1642) � Bombe cryptologique (Pologne, 1938)
� Ordinateurs (programmables) � Z3 (1941), électro-mécaniques� Colossus (~1942-43), binaire� ENIAC (1946), décimal� EDVAC (1949), binaire
8
Le transistor
� Invention du transistor en 1947� 1958 IBM 7044, 64Koctet de mémoire� 1958 Lisp, John McCarthy� 1959 COBOL
� Pour le calcul numérique� Universités� Gouvernements� Grandes compagnies
9
Le circuit intégré
� Invention du CI en 1958 (TI) � 1964 Parallélisme dans l'exécution� 1965 Multics� 1969 Premier transfert réseau ARPANET� 1969 Unix
� C'est l'ère des « Mainframes »� Système en temps partagées� Compilateurs� Gestion & Calcul
4
10
Le micro-ordinateur
� Micro-processeur en 1971 (Intel) � 1972 Langage C� 1973 Micral� 1975 Altair 8800� 1977 Apple II� ~1978 GUI, Souris, LAN et Imprimante laser
au Xerox PARC� 1981 IBM PC� 1983 Apple Lisa� 1984 Apple Machintosh� 1985 MS Windows
11
De nos jours...
� Réseaux� LAN� Internet� Téléphone
� De nombreuses déclinaisons� Super-calculateurs, clusters� PC de bureau, portable� Téléphone� Ordinateur embarqués (automobile,
aéronautique, etc...)
12
Loi de Moore (1/3)
� « Le nombre de transistors intégré dans une puce doublera tous les deux ans. »� Limite : effets quantiques
5
13
Loi de Moore (2/3)
� Vitesse d'exécution� Limites : temps de propagation, longueurs d'onde� Solution : parallélisation (Multi-Cœur)
14
Loi de Moore (3/3)
� La taille de gravure� Limite : effets quantiques
15
Historique, le future?
� Plus de mobilité� Plus de miniaturisation� Plus d'intégration (Wearable computer,
...) � Plus de parallélisation (grilles, grappes,
multi-processeur, multi-cœur) � Plus de connectivité (idée du « village
planétaire »)
6
16
Plan
� Introduction
� Historique
� ModModModModèèèèlesleslesles� Architecture d'un IBM PC
� Processeurs
� Mémoires
� Système d'exploitation
17
Modèles
� Machine de Turing� Créé par Alan Turing pour prouver la thèse
de Church� Sert de base comparative pour déterminer
la capacité d'une machine� Machine de von Neumann
� Créé pour schématiser le fonctionnement de l'EDVAC
� Équivalent Turing Universelle� Modèle de base des machines actuelles
18
00
Machine de Turing
� Machine de Turing� Un ruban avec des « cases » - La
mémoire� Un automate qui permet de décrire
les actions – Le code� Machine de Turing Universelle
� On « code » l'automate dans le ruban
� L'automate de la machine interprète ce « code »
00000000011100000000 Contrôleur
1/0/�
0/0/�
1/0/�
0/0/�0
7
19
Architecture de Von Neumann
� Mémoire� Code� Données
� Unité de contrôle� Contrôle l’exécution
� UAL� Effectue les opérations
� E/S� Communique avec
l’extérieur
Unité decontrôle
Unitéarithmétique
et logique
Entrée/Sortie
Mémoire
Code Données
20
Plan
� Introduction
� Historique
� Modèles
� Architecture d'un IBM PCArchitecture d'un IBM PCArchitecture d'un IBM PCArchitecture d'un IBM PC� Processeurs
� Mémoires
� Système d'exploitation
21
Architecture d’un IBM PC
� Raffinement de l’architecture de vonNeumann
Unité decontrôle
Unité arithmétiqueet logique
E/S
Code DonnéesProcesseur
Mémoire (RAM)
Chipset Ports d’E/S
Cache L2
Cache L1 - Instructions Cache L1 - Données
Mémoire
Bus
DMA
8
22
Architecture d’un IBM PC
Processeur
Mémoire (RAM)
Chipset
Ports d’E/S
23
Carte mère
PCI
AGP USB
Slot CPU
Slot RAM
Chipset
IDE
BIOS
24
Carte mère : caractéristiques
� Facteur d’encombrement� AT, ATX, mini-ATX
� Chipset� Type de support processeur
(Slot/Socket)� RAM supporte� Port d’extension
� AGP,PCI� IDE,SCSI
9
25
Carte mère : processeur
� Défini la vitesse du bus système� Cerveau de la carte mère� Différents types de support
� Slot� socket
� Différentes familles� Intel� AMD
26
Carte mère: chipset
� Gère les flux de données entre le/les processeurs, la mémoire et les périphériques.� Aiguille l’information entre les différents bus
de l’ordinateur.� Composé historiquement de deux
éléments� NorthBridgeNorthBridgeNorthBridgeNorthBridge� SouthBridgeSouthBridgeSouthBridgeSouthBridge
27
Carte mère: chipset
� NorthBridge (flux rapides proches du CPU)� Contrôleur de :
� la mémoire vive (RAM), � bus du CPU (FSB),� bus graphique (AGP ou PCI Express),� la communication avec le South Bridge.
� SouthBridge (flux lents)� Contrôleur d’entrées-sorties
� PCI, PS/2, port série, port parallèle, disquette, SATA, Ethernet, USB, Firewire, et éventuellement RAID et codec audio.
� Contrôleurs d'interruptions � Gère DMA.
10
28
BUS : bus système
� Bus interne ou en anglais Front-Side Bus FSB
� Permet la communication entre le processeur et la mémoire centrale
� Divisé� Bus d’adressage� Bus de données� Bus de contrôle (lecture, écriture…)
29
BUS : bus d’extension et E/S
� Bus d’entrée sortie� Permet la communication entre tous les
composants de la carte mère entre eux� Permet l’ajout de nouvelles
périphériques via les connecteurs d’extension (slot)
30
BUS : E/S Périphériques et Contrôleurs
� Chaque périphérique est piloté par un contrôleur qui:� Contient souvent son propre
microprocesseur, ses registres et sa mémoire cache
� S’occupe des commandes détaillées du périphérique
11
31
BUS : E/S Périphériques et Contrôleurs
� Le dialogue Processeur/contrôleur s’effectue grâce aux registres du contrôleur (ses ports) contenant:� Des données� L’état du contrôleur� Les commandes à effectuer
� Modes de transfert:� Par scrutation (attente active)�consomme du temps CPU� Par interruption (lourd)� Direct entre le contrôleur et la mémoire (DMA)
�transfert de données sans passer par le processeur.
http://lamipc54.epfl.ch/LaboMatInfo.html
32
BUS : bus d’extension
� Bus ISA Industry Standard Architecture 1984� Conception en bus du PC/XT. Elle permet l'ajout de
plusieurs adaptateurs au micro-ordinateur par l'enfichage de cartes d'extension dans des connecteurs 8 ou 16 bits et qui atteignent respectivement des vitesses de 6 MHz et 8 MHz. Le concept ISA intègre une puce tampon entre le bus de l'unité centrale et l'emplacement ISA. Cette puce ajoute des états d'attente d'E-S pour permettre à des unités centrales plus rapides de s'adapter aux vitesses du bus ISA.
33
BUS : bus d’extension
� Bus ISA évolution:� EISA 1988 définit donc un bus de 32 bits de
largeur de données. Très proche de MCA, il est cadencé à 33 MHz, avec accès direct àla mémoire vive et compatible avec les cartes ISA 16 bits ou même 8 bits
12
34
BUS : bus d’extension
� Bus PCI Peripheral Component Interconnect1990� Largeur : 32 bits ou 64 bits � Supporte fréquences de :
� 33 MHz version 1.0 et 2.0� 33/66 MHz depuis la version 2.1 de 1995.
� PCI-X (évolution du bus PCI)� Largeur : 64 bits� Supporte fréquences de :
� 66/100/133 MHz version 1.0� 66/100/133/266/533 MHz version 2.0
35
BUS : bus d’extension
� Port AGP Accelerated Graphics Port 1998� Connecté au chipset (NorthBridge)� DMA : canal direct d’accès à la mémoire� Largeur : 32 bits � fréquence de 66 MHz � Débit de :
� 266 Mo/s pour AGP 1X� 533 Mo/s pour AGP 2X� 1 Go/s pour AGP 4X� 2 Go/s pour AGP 8X
36
BUS : bus d’extension
� PCI Express : destiné à remplacer le PCI et l’AGP� Bus série : permet des fréquence + élevées.� Son principal atout : un débit élevé, pouvant atteindre
8 Go/s en x32� possibilité de brancher ou débrancher des composants
à chaud � Plusieurs connectiques disponibles de x1 x2 à x32
décrivant le débit
13
37
BUS: Ports d’I/O
� Port série � À la base un fil unidirectionnel, Bidirectionnel: deux fils� Mode asynchrone� Série les bits sont envoyés les uns après les autres� Meilleur dans les grandes fréquences par rapport au
port parallèle qui possède des problème d’interférences électromagnétiques entre les fils
� Port parallèle:� Généralement utilisé par les imprimantes� N fils pour envoyer N bits simultanément � Problèmes de synchronisation des lignes de données
à haute fréquence.
38
BUS : bus d’extension� IEEE 1394IEEE 1394IEEE 1394IEEE 1394
� Très haut débit� Firewire (Apple), i.link (sony), Lynx (Texas instrument)� v.A: 100/200/400 Mbits/s – v.B: 800/1200/1600/3200 Mbits/s� 63 périphériques peuvent être connectés
� En série ou en étoile (à l’aide d’un HUB).� Hot-plug : auto-configuration des périphériques.� Mode asynchrone, isochrone (garantit la BP pour le temps réel)� Câble de six fils
� 2 pour les données� 2 pour l’horloge� 2 pour l’alimentation � 45 W max !
� Connections points à points : les périphériques peuvent communiquer entre eux sans l’aide de l’ordinateur.
� Peut fonctionner sur des distances très importantes � 100m !
39
BUS : bus d’extension
� USB:� Universal Serial Bus � Bus série� Au départ pour raccorder des périphériques de bas débits
� remplaçant des ports d’I/O.� Alimentation en courant électrique � 15W max� Hot-Plug� v1.0 : 12 Mbit/s (1,5Mo/s) – v2.0 : 480 Mbit/s (54Mo/s)� Connecte jusqu’à 127 périphériques (par port)� Topologie en série ou en étoile (à l’aide d’un HUB) � Deux types de connectiques A & B� Chaînage des périphériques
� Fonctionne par un adressage sur 7 bits (2^7-1 périphériques possibles)car @0 réservée pour l’initialisation d’un nouveau périphérique.
� Protocole d’accord d’anneau à jeton (Token Ring)
A
B
14
40
BUS disque� Interface IDE IntegratedIntegratedIntegratedIntegrated Drive Drive Drive Drive
ElectronicsElectronicsElectronicsElectronics (ATA & UDMA)� Port parallèle de 16 bits� déporter le contrôleur du disque sur le disque lui-même � un bus de communication à deux disques durs max
seulement : un maitre (device 0), et un esclave (device1).
� ATA-4 � UDMA 33 : débit : 33Mo/s , nappe de 40 broches
� ATA-5 � UDMA 66 : débit : 66Mo/s , nappe de 80 broches
� ATA-6 � UDMA 100 : débit : 100Mo/s, …� ATA-7 � UDMA 133 : débit : 133Mo/s, …
41
BUS disque
� Interface SATA (serial ATA)� Port série, plus rapide qu’IDE� débits : SATA-1 : 150 Mo/s,
SATA-2 : 300Mo/s� Seul sur une nappe ronde� Hot-plug (branchement à chaud)� 4 fils pour la transmission
� Un fil pour données+contrôle� Un fil pour accuser de réception� Le tout par codage différentiel :LVDS (Low Voltage Differential Signaling)
Codage différentiel : canaux opposés (meilleur tolérance aux perturbations électromagnétiques).
42
BUS : bus d’extension
� SCSI Small Computer System InterfaceSmall Computer System InterfaceSmall Computer System InterfaceSmall Computer System Interface� Port parallèle� Nécessite un adaptateur SCSI � Définit à la fois des normes matérielles et logiciel pour
la communication entre un ordinateur hôte et un périphérique
� De nombreux disques durs SCSI sont en fait des disques durs IDE ATA auxquels a été ajoutée une puce de contrôleur d'interface pour bus SCSI
� Une bande passant de 5 Mo/s à 640Mo/s� Bus asymétrique (1 fil/canal) ou différentiel (2 fils
opposés/canal)
15
43
Plan
� Introduction
� Historique
� Modèles
� Architecture d'un micro-ordinateur
� ProcesseursProcesseursProcesseursProcesseurs� Mémoires
� Système d'exploitation
44
Structure interne d’un processeur
UC UAL
Code Données
Cache L2
Cache Instructions Cache Données
Interface E/S
BUS Mémoire
BUS E/S
MémoireE/S
Récupérationdes instructions
Décodagedes instructions
Registres
UAL
45
Processeur
16
46
Processeur
� Deux types de registre� Les registres visibles par l’utilisateur
� permettent au programmeur d'optimiser les références à la mémoire
� Les registres de contrôle et de statuts� utilisés par l'unité de commandes pour contrôler
l'activité du CPU et par des programmes du système d'exploitation pour contrôler l'exécution des programmes.
47
Processeur : instruction
� Fetch� recherche de l'instruction
� Decode� interprétation de l'instruction
� Execute� Exécution
� Write back � stockage du résultat
48
Processeur
� Architecture CISC (Complex Instruction Set Computer )� jeu d’instructions complexe� Instructions complexes micro-programmées sur le
processeur. � � Part du principe que les mémoires sont lentes et
chères.� Avantages :
� Code + dense � minimise la taille du cache d’instruction.� Inconvénients :
� Coût élevé� Plus compliqué à accélérer (pb pour le pipeline)
17
49
Processeur
� Architecture RISC (Reduced Instruction Set Computer )� Jeu d’instructions réduit� Instruction simples à nombre identique de
cycles� Fréquence d'horloge plus grande� Pipeline
50
Processeur
� Parallélisme� Exécuter simultanément des instruction d’un même
programme sur des processeurs distincts� Principe de diviser pour régner
� Superscalaire� Processeur qui possède plusieurs ALUs avec des
taches spécifiques� Pipelining
� Flux continu d’instruction envoyé à ou aux ALU(s)� instructions mises en «file d'attente» dans la
mémoire cache
51
Processeur : déroulement classique d’une instruction
Comment augmenté les performances ?
• diminution de la période T � la mémoire doit être plus rapide (coute cher, pas toujours possible).
• Pipeline
18
52
Processeur : Pipeline
� Exécution de plusieurs instructions simultanément.
53
Processeur : Pipeline
� Possible que si les diverses étapes du traitement d’une instruction sont confiées à autant d’unités distinctes : � 1 unité de recherche d’instruction (Fetch)� 1 unité de recherche opérande (Decode)� 1 unité d’exécution (Execute)� 1 unité de stockage du résultat (Write back)
� Les éventuels accès supplémentaires en mémoire doivent être proscrits.
� Modèles « load and store »� Load : copie une valeur mémoire dans un registre.� Store : copie une valeur d’un registre dans la mémoire.� Les autres instructions travaillent uniquement sur les registres.
� Problèmes : � instructions de branchements � prédiction de branchements� Conflits Write/Read et Write/Write
54
Processeur
19
55
Plan
� Introduction
� Historique
� Modèles
� Architecture d'un micro-ordinateur
� Processeurs
� MMMMéééémoiresmoiresmoiresmoires� Système d'exploitation
56
Mémoire
� Différents types� Généralité� Accès mémoire� Mémoire ram� Mémoire rom� Mémoire cache
57
Mémoire : types
� Disque dur� Cdrom� Ram� Rom� Cache
Plus c’est petit plus c’est rapide
20
58
Mémoire : hiérarchie
59
Mémoire : généralité
� CapacitCapacitCapacitCapacitéééé� Exprimée en octet et par
� kilo 1K ,méga 1M, giga 1G ,téra 1T, péta 1P
� Performance:� Le temps d’accès� Le débit
210 = 1024 = 1K
60
Mémoire : mode d’accès
� Accès aléatoire:� le plus employé� utilisé par
� la mémoire principale, � quelques mémoires caches
� Un mot est associé à une adresse� Accès associatif (par le contenu)
� Mémoire cache� Un mot est retrouvé à partir d’une partie de son contenu (clé).
� Accès séquentiel (pour les mémoires de masse)� Archivage de grandes données (bandes magnétiques)
� Accès direct (pour les mémoires de masse)� Disque dur et souple� Chaque bloc a une adresse. Une donnée est accédée par le bloc
qui la contient puis en se déplaçant à l’intérieur du bloc
21
61
Memoire ram
� Définition� Performance� Emballage� Caractéristique� Type� Fonctionnement
62
Mémoire ram
� Définition � Ram: Random Acces Memory (Mémoire à
accès aléatoire).� Mémoire volatile
� Performance:� Fréquence� Timing (du aux temps de latence que l’on
verra par la suite)� Types : SIMM, DIMM, RIMM,…
63
Mémoire ram : emballage
� SIMM SSSSingle IIIIn-line MMMMemory MMMModule = module mémoire à simple rangée de broches de connexion
• Les barrettes SIMM à 30 connecteurs (8 bits)
• Les barrettes SIMM à 72 connecteurs (32 bits)
22
64
Mémoire ram : emballage
• DIMM: Dual Inline Memory Module (64
bits) (SO-DIMM ou mini-DIMM pour les
portables)
65
Mémoire ram : emballage
• RDRAM " Rambus Random-Access
Memory " utilisée pour la RIMM. (16 bits)
66
Mémoire ram : caractéristiques
� Parité:� un bit supplémentaire pour chaque octet
pour valider la Ram� une élévation de 15% du coût� pas nécessaire
� ECC EEEError CCCCorrecting CCCCode :� détecter 4 erreurs et corriger une erreur
sans arrêter le système sur un octet� coûteux en temps de calcul et en euro
23
67
Mémoire ram : caractéristiques
� Registered Memory : � conservation dans des registres spécifiques
les informations devant être "envoyées" à la carte mère pendant un cycle d'horloge pour améliorer les temps d'accès aux données
68
Mémoire ram
� Définition� Emballage� Caractéristique� TypeTypeTypeType� fonctionnement
69
Mémoire ram : types
� RAM dynamique (DRAM):� Fonctionne avec des capacités qui nécessitent
d’être souvent rechargées� Mémoire volatile� Avantages :
� Simplicité (1 transistor/cellule)� Cout faible � Densité élevée
� Inconvénient :� Lenteur (rafraichissement)
24
70
Mémoire ram : types
� RAM Statique (SRAM)� Utilise des interrupteurs (ne nécessite pas de
rafraîchissement)� Mémoire volatile� Avantage
� Plus rapide� Inconvénient
� Plus chère� Plus complexe
(6 transistors/cellule)
71
Mémoire ram
� Définition� Emballage� Caractéristique� Type� FonctionnementFonctionnementFonctionnementFonctionnement
72
Fonctionnement DRAM
� Structure physique
25
73
Fonctionnement DRAM
� Structure physique:� Le circuit de multiplexage divise l’adresse
en deux parties:� Bits de poids fort : Row Adresse Strob: adresse
ligne� Bits de poids faible: Column Adresse Strob:
adresse colonne
74
Fonctionnement DRAM
� Trois cycles de base:� Écriture� Lecture � Rafraîchissement (temps de latence)
75
Fonctionnement DRAM
� Cycle de lecture
26
76
Fonctionnement DRAM
� Cycle d’écriture
77
Retour sur le temps de latence
� Temps d’accès en cycles d’horloge :� CAS Latency : C’est le temps minimum nécessaire pour accéder à
une colonne d’un banc (temps d’accès).� RAS to CAS Delay : C’est le temps minimum qui sépare l’accès
d’une ligne à celui d’une colonne� RAS Precharge Time : C’est le temps minimum qui sépare deux
signaux RAS (temps de rafraichissement d’un banc)� tRAS : C’est le temps minimum nécessaire pour accéder à une
ligne d’un banc
� Généralement, on donne ces timings dans l’ordre.Par exemple 2-2-2-6 ou encore 2.5-3-3-8
� tCLK : C’est le temps pour un cycle. Il est calculé par 1 / Fréquence de bus, et est donc de 10ns à 100 MHz, 7.5ns à 133 MHz, 6ns à 166 MHz et 5ns à 200 MHz.
78
Mémoire ram : type de DRAM
� Les différents types de DRAM sont liées àl’amélioration des temps de calcul et à la suppressions du temps de rafraîchissement ou àl’utilisation d’un cache secondaire� FPM DRAM� RAM EDO� RAM BEDO� SDRAM
� SDRAM� DDR SDRAM� QBR SDRAM
27
79
Techniques de pagination
� Amélioration des débits d'une mémoire lorsque les informations accédées sont contiguës.
� on ne donne qu'une seule fois le numéro de la ligne (page).
� vitesses classiques de mémoire avec pagination pour accéder à 4 données contigües (en nombre de cycles d’horloges) : � - RAM FPM : 5-3-3-3 (1992)� - RAM EDO : 5-2-2-2 (1995)� - RAM BEDO, SDRAM : 5-1-1-1 (1997)
80
Types de DRAM
� FPM DRAM:� Lorsque les données sont sur la même
ligne, le signal RAS mémorise l’adresse de la ligne
� Lorsque les données sont consécutives, le signal CAS mémorise l’adresse de la première colonne
� Vitesse : 5-3-3-3 dans le meilleur des cas
81
Types de DRAM
� FPM DRAM: données sur la même ligne
28
82
Types de DRAM
� EDO DRAM: � Extended Data Out (que sur support SIMM)� Accès à la donnée possible pendant le
rafraîchissement.� Change l’adresse en entrée sans attendre la
validation de la donnée en sortie.� Vitesse : 5-2-2-2
83
Types de DRAM
� EDO DRAM:
84
Types de DRAM
� RAM BEDO: Burst Extended Data OutBurst Extended Data OutBurst Extended Data OutBurst Extended Data Out� les lectures et les écritures sont effectuées
en mode rafale � On transmet l'adresse de départ du
processus de lecture/écriture et la longueur du bloc de données ( Burst )
� 5-1-1-1
29
85
Types de DRAM
� SDRAM: Synchronuous Dynamic Random Access Synchronuous Dynamic Random Access Synchronuous Dynamic Random Access Synchronuous Dynamic Random Access MemoryMemoryMemoryMemory� Synchronisé avec le bus mémoire � élimine des délais
d’attente entre le processeur et le contrôleur mémoire.Rq : peut être cadencée à la même vitesse que le processeur.
� Utilise un entrelacement des données (interleave)� Disponible seulement en DIMM� Vitesse : 5-1-1-1
86
Adressage linéaire
87
Adressage entrelacé
30
88
Types de DRAM
� DDR SDRAM (double data rate) :� Utilise le front montant et descendant du
signal � On peut pour un cycle d’horloge transférer
deux groupes de mot� DDR2 maintenant� Ex : calcul du débit d’une DDR
� Si FSB = 200MHz � 8 octets (largeur du bus mémoire) x 200 MHz (FSB) x 2 (ddr) = 3200 Mo/s.
89
Mémoire ram : pratique
� Dual DDR : Dual Channel : doublement de la bande passante de mémoire disponible par 2 canaux (DDR RAMs) en parallèles � 2 accès simultanés (2 x 64 bits) par cycle.
� Les deux DDR ram doivent être identiques, et la carte mère équipée de cette option.
� Il vaut mieux alors utiliser deux DDR de 256 plutôt qu’une de 512
90
Mémoire ram: Calcul
� Taux de transfert théorique� Taux = (Largeur du bus de données en bit XXXX
Fréquence du bus en HertzHertzHertzHertz ) / 8 *2(si ddr) en Mo/sMo/sMo/sMo/s
31
91
Mémoire
� Différents types� Hiérarchie mémoire� Mémoire ram� MMMMéééémoire rommoire rommoire rommoire rom� Mémoire cache
92
Mémoire ROM : définition
� ROM Read Only Memory� Mémoire non volatile � ne s’efface pas lors de
la mise hors tension du système.� Est utilisée pour le BIOS par ex.� La ROM est très lente (150 ns en moyenne
contre 10 ns pour la SDRAM). � « shadowing » :
� Au démarrage, on copie les informations de la ROM dans la RAM.
93
Mémoire ROM : les types
� Les ROM ont petit à petit évolué de mémoires mortes figées à des mémoires programmables, puis reprogrammables. � ROM� PROM� EPROM� EEPROM� FLASHROM
32
94
Mémoire ROM : les types
� ROM:� Données directement écrite sur une plaque
de silicium.� PROM Programmable Read Only
Memory :� Ne peut être écrite ququququ’’’’une seule foisune seule foisune seule foisune seule fois.� Ensemble de fusiblesfusiblesfusiblesfusibles (en état 1) que l’on
brûle (électriquement avec une forte tension) pour les mettre à l’état 0.
95
Mémoire ROM : les types
� EPROM Erasable Programmable Read Only Memory)� ProgrammProgrammProgrammProgramméééé éééélectriquementlectriquementlectriquementlectriquement, effaçable.� Possède une vitrevitrevitrevitre permettant de laisser passer
des rayons ultra-violets. � certaines longueurs d'onde de rayons ultrarayons ultrarayons ultrarayons ultra----
violetsvioletsvioletsviolets reconstituent les fusibles � les bits de la mémoire se remettent à 1.
96
Mémoire ROM : les types
� EEPROM Electrically Erasable read Only Memory� Effaçable par courant courant courant courant éééélectriquelectriquelectriquelectrique � peuvent donc être
effacées alors qu’elles sont en position dans l’ordinateur.
� Durée de vie limité. � FLASHROM:
� EEPROM que l’on efface en un éclair (d’où FLASH), on efface par banques de mémoire (pages) plutôt que caractère par caractère.
� Avantages :� + tolérant aux choques que les disques durs.
� Inconvénients :� Nombre limité de cycles d’effacement/réécriture.
33
97
Mémoire
� Différents types� Hiérarchie mémoire� Mémoire ram� Mémoire rom� MMMMéééémoire cachemoire cachemoire cachemoire cache
98
Mémoire cache
� Définition� Architecture� Cache en cascade� Exclusif inclusif� Organisation des données� Écriture
99
Mémoire cache : définition
� Problématique : La mémoire centrale qui stocke les instructions et les données est beaucoup trop lentelentelentelente pour assurer le débit soutenu en lecture du processeur.
� Définition : la mémoire cache est une mmmméééémoire trmoire trmoire trmoire trèèèès rapides rapides rapides rapidequi permet dddd’’’’accaccaccaccéééélllléééérer les communicationsrer les communicationsrer les communicationsrer les communications entre les processeurs et les unités de stockage.
� � nécessite des algorithmes pour « deviner » et mettre dans le cache les données/instructions avant que le processeur en ait besoin : algos de « pre-fetching ».
� Technologie : SRAM (Static RAM).
34
100
Mémoire cache : architecture
Mémoire cache: mémoire plus petite et plus rapide que l’unité de stockage
101
Mémoire cache:
� Définition� Architecture� Cache en cascadeCache en cascadeCache en cascadeCache en cascade� Exclusif inclusif� Organisation des données� Écriture
102
Cache en cascade
La mémoire de niveau Li+1 joue le rôle de cache pour la mémoire de niveau Li.
35
103
Cache en cascade
� Cache L1� Imbriqué sur le microprocesseur� Très rapide mais de petite taille� Souvent divisé en deux unités mémoires:
� Une pour stocker les instructionsinstructionsinstructionsinstructions� L’autre pour les donndonndonndonnééééeseseses
104
Cache en cascade
� Cache L2� Ne différencie pas données et programmes� Moins rapide, mais sa taille est plus
importante que le cache L1.� Souvent intégré mais pas imbriqué dans le
processeur.
105
Mémoire cache
� Définition� Architecture� Cache en cascade� Exclusif inclusifExclusif inclusifExclusif inclusifExclusif inclusif� Organisation des données� Écriture
36
106
Cache L1 et L2
� Cache inclusif (le + utilisé) � D’abord dans L2 puis dans L1 :
� Gain de temps mais perte de place mémoire� � T(L2) >> T(L1), sinon faible taux de
succès de L2.� Cache exclusif� Pas de redondance des données :
� Gain de place mais perte de temps :� Gestion de la non duplication des données � L2
moins performante
107
Mémoire cache : Localité
� Localité temporelle� Une donnée référencée à un temps t aura de très
fortes chances d’être référencée dans un futur proche.
� Localité spatiale� Si une données est référencée à un temps t, alors il
y a de très fortes chances que les données voisines le soient dans un futur proche.
� Exemple : for(i=0;i<N;i++)somme += A[i];
Localité spatiale : A[i],A[i+1], ... ,A[N]Localité temporelle : i, somme
108
Mémoire cache : pré-fetching
� Pre-fetching : chargement en avance, dans le cache, des données dont le processeur devrait avoir besoin.
� Utilisation du principe de localité :� Temporelle : garder les dernières données
référencées par le programme.� Spatiale : charger en avance les
données/instructions contigües à une donnée/instruction référencée.� on charge des lignes (blocs d’adresses consécutives) et non des mots.
37
109
� Le bloc j en mémoire centrale est gérée par la ligne i en cache :
Cache : structure directe
L = 128 lignes
16 mots par ligne
si taille d’un mot = 2 octets :
Lignes de 16x2=32 octets
Taille du cache = 32xL= 4ko
Si mémoire centrale = 1Mo
Chaque ligne de cache correspond à
nbBlocs/nbLignes = (1024*1024 / 32) /128 = 512 blocs en mémoire
110
Cache : structure directe
� Avantages : � à partir de l’adresse d’une ligne en mémoire, on sait
dans quelle ligne du cache elle doit se trouver. � On sait directement où aller chercher la ligne.� Accès très rapide à la ligne.� Temps d’accès : 1 cycle.
� Inconvénients : � Les même lignes doivent souvent être
déchargées/rechargées.� � Peu efficace : taux de succès (probabilité de trouver
la ligne dans le cache) de 60~80%
111
� Une ligne en mémoire centrale est gérée par n’importe qu’elle ligne de la mémoire cache :
Cache : structure associative
38
112
� Avantages :� Très souple� Très efficace en terme de succès d’accès� Taux de succès : 90~95%
� Inconvénients :� Doit parcourir toutes les lignes du cache pour
savoir si la ligne cherchée ne s’y trouve pas.� Temps d’accès au cache : L/2 cycles en
moyenne.
Cache : structure associative
113
� Une ligne en mémoire centrale est gérée par un ensemble de N lignes de la mémoire cache :
Cache : Structure N-associative
114
� Solution intermédiaire entre directe et associatif.
� La solution utilisée.� Temps d’accès : ~2.5 cycles pour N=4� Taux de succès : 80~90%
Cache : Structure N-associative
39
115
Mémoire cache
� Définition� Architecture� Cache en cascade� Exclusif inclusif� Organisation des données� ÉÉÉÉcriturecriturecriturecriture
116
Cache : remplacement
� Structure directe� Chaque bloc peut être placé dans un seul emplacement du
cache� Pas besoin de décision en cas de nouvelle écriture� Le nouveau bloc remplace l’ancien
� Structure associative� Chaque bloc peut être placé n’importe où dans le cache
� Décision à prendre en cas de nouvelle écriture� Faut il jeter un ancien bloc ? Si oui lequel ?
� Politique de remplacement du gestionnaire de cache� Aléatoire � simple mais peu efficace (peu supprimer des blocs très
accédés).� LFU (least Frequency Used) remplace celui qui a été le moins utilisé
� nécessite des compteurs associés aux lignes.� LRU (Least Recently Used) remplace le bloc le plus anciennement
accédé. � nécessite des compteurs associés aux lignes.
117
Cache : remplacement
� Politique de remplacement du gestionnaire de cache (suite)
� NRU ou Pseudo LRU (souvent utilisé avec les caches N-associatifs)
� Dans chaque ensemble de N lignes du cache, on marque la dernière ligne accédée.
� On remplace au hasard l’une des N-1 lignes non marquées.
40
118
Cache : politique d’écriture
� Objectif : garder une cohérence cache/mémoire (en écriture)
� Write-through cache (écriture simultanée) :� Toutes les écritures des données allant du processeur à la
mémoire se font aussi dans la mémoire cache.� Write-back cache (écriture différée) :
� On écrit la ligne en mémoire centrale au moment où l’on supprime la ligne du cache.
� Avantage :� Limitation des écritures en mémoire centrale
� Inconvénient :� Problème si d’autres éléments accèdent à la mémoire (DMA,
multiprocesseurs)� Nécessite des algorithmes supplémentaires pour gérer la
cohérence.
119
Disque dur� Protocoles de communication différents
(IDE,SATA,SCSI,…) dépendant du contrôleur et de la connectique� Mais même mécanique :
� Plusieurs plateaux� Plusieurs bras avec des têtes de lecture/écriture�Chaque plateau est divisé en cercles concentriques appelés pistes et les pistes sont divisées en secteurs.�C’est à l’intérieur des secteurs qu’est contenue l’information
120
Disque dur
� Secteur� Taille >= 512 octets.� Contient des informations annexes comme une somme de
contrôle pour détecter d’éventuelles erreurs.� Cluster (unité d’allocation)
� Zone minimale que peut occuper un fichier sur le disque.� Entre 1 et 16 secteurs par cluster.
� Vitesse angulaire� Vitesse à laquelle tourne les plateaux
� Densité d’information� quantité d´informations stockée sur une surface donnée. (ex:
10 Ko/mm²)
41
121
Disque dur
� Caractéristiques� Capacité� Rotation: RPM et tr/min� Buffer (mémoire cache)� Performance: (densité, nombre de plateaux,
rotation, temps d’accès)
122
Disque dur: exemple
� MaxtorMaxtorMaxtorMaxtor DiamondMaxDiamondMaxDiamondMaxDiamondMax 11 11 11 11 ---- 500 Go 7200 RPM 16 500 Go 7200 RPM 16 500 Go 7200 RPM 16 500 Go 7200 RPM 16 Mo Serial ATA II (Mo Serial ATA II (Mo Serial ATA II (Mo Serial ATA II (bulkbulkbulkbulk))))
•Capacité formatée : 500 Go •Temps d’accès moyen : < 9,0 ms •Vitesse de rotation : 7 200 T/min •16 Mo de mémoire cache •Interface Serial ATA de 3,0 Gb •Interface ATA/133 disponible
123
Cd rom
Composé de trois zones� Lead in area : information sur
le contenu du support� Programme: les données� Lead-out: marque la fin du cd
42
124
RAID (Redundant Array of Independant Disks)
� Ensemble redondant de disques indépendants� Technologie qui permet d’utiliser plusieurs disques dures
regroupés en une unité logique � Permet d’améliorer
� la vitesse de lecture et écriture� la sécurité des données (tolérance aux pannes)
� Plusieurs niveaux définissent la technologie raid utilisée� Niveau 0Niveau 0Niveau 0Niveau 0: striping� Niveau 1Niveau 1Niveau 1Niveau 1: mirroring,shadowing ou duplexing� Niveau 2Niveau 2Niveau 2Niveau 2: striping with parity (obsolète) � Niveau 3Niveau 3Niveau 3Niveau 3: disk array with bit-interleaved data� Niveau 4Niveau 4Niveau 4Niveau 4: disk array with block-interleaved data� Niveau 5Niveau 5Niveau 5Niveau 5: disk array with block-interleaved distributed parity� Niveau 6Niveau 6Niveau 6Niveau 6: disk array with block-interleaved distributed parity
125
RAID
126
RAID
43
127
Plan
� Introduction
� Historique
� Modèles
� Architecture d'un micro-ordinateur
� Processeurs
� Mémoires
� SystSystSystSystèèèème d'exploitationme d'exploitationme d'exploitationme d'exploitation
128
Définition d’un OS
� Pour le programmeur :� Interface entre le programmeur et le
matériel:� Machine virtuelle + proche de leurs besoins
� Rend la mémoire dynamique� Usage de fichiers� Permet d’être relativement indépendant de la
machine, du type de support (disque dur,…)� S’occupe des E/S� Sous-traite les opérations « sensibles »
129
Définition d’un OS
� Pour l’utilisateur final :� Logiciel qui permet d’utiliser les ressources
que la machine met à disposition (disque durs, imprimante,…)
� Interface:� Langage de commande
� Syntaxe : Commande [arguments] [options]� Ex :copier, déplacer, détruire, imprimer, lister
En UNIX : cp, mv, rm, lpr, ls� Interface graphique avec souris
44
130
Définition d’un OS
� Pour le concepteur :� But :
� rendre la machine + simple à utiliser� Optimiser son utilisation
� Gestion optimale des ressources:� CPU� Mémoire� périphériques
131
Définition d’un OS
� Gestion optimale du CPU� But : saturer le processeur en calcul
� Système batch (multi-tâches)� Système en temps partagé
132
Définition d’un OS
� système batch (multi-tâches)� Rotation des programmes lors d’une E/S.
45
133
Définition d’un OS
� Système (multi-tâches) en temps partagé :But : N utilisateurs simultanés d’une machine ont l’impression
que la machine leur est entièrement réservée.� Rotation des programmes (�utilisateurs) lors d’une E/S, ou à
la fin d’un quantum de temps
134
Définition d’un OS
� Le noyau :� gestion des périphériques (au moyen de
pilotes) ;� gestion des processus ;
� Gestion de la mémoire des processus ;� ordonnancement des processus ;� synchronisation et communication entre processus.
� gestion des fichiers (au moyen de systèmes de fichiers) ;
� gestion des protocoles réseau.
135
Les processus
� Définition : programme en cours d’exécution.
� Rq : Programme � statiqueProcessus � dynamique
� Un programme peut se trouver exécutéplusieurs fois simultanément, dans divers processus.
46
136
Caractérisation d’un processus
� Un bloc de contextebloc de contextebloc de contextebloc de contexte par processus� Identification� État� Ressources accordés (fichiers ouverts, espace
mémoire alloué)� État actif � exécuté par le CPU
� Possède son propre espace mémoire� Ne peux accéder aux ressources (y compris la
mémoire) des autres processus. (il peut cependant exister des ressources partagées).
� État bloqué : � Valeurs des registres rangés dans le bloc de contexte
137
Organisation des données du processus
� Le tas (heap)� Utilisé pour stocker les variables allouées par
allocation dynamique� Structure de donnée
� Arbre binaire complet ordonné en tas
� La pile (stack)� Utilisée pour stocker les variables temporaires d’un
processus : paramètres d'appel de fonctions, variables locales,…
� Structure de donnée� LIFO : « dernier arrivé, premier servi »
138
Organisation des données du processus
� Le tas (heap)
� la pile (stack)
47
139
Les threads d’une tâche
� Définition : Processus « léger » d’un programme appelé « tâche »
� Partagent :� Espace de données (tas, données statiques) �
communication efficace� Ressources (fichiers ouverts,…)� Code
� Ne partagent pas :� Registres� Pile d’exécution (utilisé par les variables temporaires)
140
Les threads d’une tâche
141
Ordonnancement des processus
48
142
Ordonnancement des processus
� Algorithmes d’élection� FIFO � systèmes batch (non préemptif)� Round-robin � systèmes à temps partagé (équitable)� Avec priorité : plusieurs files d’attente ayant des
priorités différentes� Temps réel
143
Synchronisation entre processus
� But : assurer le bon partage des ressources (imprimante, fichiers, mémoire,…) entre les divers processus
� Ex partage d’une variable (solde d’un compte en banque) � 2 processus (1er dépôt, 2ième retrait, sur un compte en banque)� Prog 1 : 1) Lire le solde du compte
2) Ajouter le montant du dépôt (300 euros)3) Ecrire le nouveau solde du compte en banque
� Prog 2 : 4) Lire le solde du compte5) Soustraire le montant du retrait (200 euros)6) Ecrire le nouveau solde du compte en banque
Solde initiale = 1000 eurosPb si l’exécution des 2 processus s’imbriquent :
1-2-4-5-6-3 � solde = 1300 euros au lieu de 1100 euros
144
Synchronisation entre processus
� Solution : « section critique » liée à une ressource� Ex du compte en banque :
� Sections critiques : {1,2,3} et {4,5,6} vis-à-vis de la ressource « variable solde du compte »
� Les 2 exécutions possibles (1-2-3-4-5-6, et 4-5-6-1-2-3) conduisent au même résultat : solde = 1100 euros.
� Se fait par l’utilisation d’un sémaphore (Djikstra1965)
49
145
Gestion mémoire� Problématique :
� Ex : 1 programme activé par 2 processus� On veut bien éventuellement partager le codecodecodecode du programme
entre les 2 processus� Les donndonndonndonnééééeseseses doivent impérativement être différentes,
or les adresses générées par les processus seront identiques� Chaque processus doit avoir son propre espace d’adresse
� Solutions :� Décomposition de l’espace d’adresse physique (réel),
en espaces d’adresses logiques distincts pour les divers processus.
� Le mécanisme de translation est géré matériellement par le MMU
146
Pagination
� Espace logique contigu, découpé, de manière transparente pour le processeur, en pages.� Adresse logique � {numéro de page, déplacement
dans la page}� Une page de l’espace logique d’un processus�
un bloc de l’espace physique (table des pages)� Les blocs n’ont pas à être contigus � disparition
du problème de fragmentation.� Taille des pages ?
� Entre 256 octets et plusieurs ko
147
Pagination
� Translation d’adresses logiques en adresses physiques
50
148
Pagination� Table des pages
� Placé dans une mémoire rapide (mmmméééémoire moire moire moire topographiquetopographiquetopographiquetopographique) àl’activation du processus, gérée matériellement par la MMU.
� P : bit de présence P==0 � détection de violation de l’espace logique
149
Mémoire virtuelle
� Principe : Pagination d’un espace logique plus grand que l’espace physique
� On place en mémoire physique seulement les pages « utiles » (comme pour un cache).
� Le support magnétique (disque dur) mémorise alors la totalité des pages de l’espace logique de tous les processus.
� Le bit de présence P==0 � défaut de page (la page demandée n’est pas en mémoire physique, mais va y être amenée sous bref délai)
150
Mémoire virtuelle
� Table des pages� En mmmméééémoire centralemoire centralemoire centralemoire centrale car trop grande pour tenir
dans la mémoire topographique� Pointée par le bloc de contexte du processus� dégradation des performance car :� 2 accès en mémoires centrale (table des pages
+ mot recherché) !
51
151
Mémoire virtuelle
� Table des pages
152
Mémoire virtuelle
� Table des pages� Rq : la mémoire utilisée pour stocker des tables de
pages peut devenir prohibitive� taille_total_tables = nb_processus * taille_table� taille_table = taille_entree * nb_entrees� taille_entree = log2(nb_blocs) + indicateurs_gestion� nb_blocs = taille_mem_physique/taille_page� taille_page = taille_mem_virtuelle/nb_pages
� On peut découper chaque table en plusieurs sous tables
� Elles sont indexées par une table principale qui doit être en mémoire
� Elles ne sont pas nécessairement toutes présentes en mémoire centrale simultanément
153
La gestion des fichiers
� Objectifs :� Permettre à l’utilisateur de créer et manipuler
ses fichiers� Masquer à l’utilisateur les spécificités du
matériel qui sert à stocker ces informations� Donner la possibilité à l’utilisateur de désigner
le fichier sous un nom quelconque� Assurer le partage des fichiers
52
154
La gestion des fichiers
� groupés dans des collections nommées répertoires ; � Les répertoires sont organisés en arborescence
� répertoire racine � sous-répertoires
� Le contenu d’un fichier est déterminé par son format� Chaque fichier est décrit par des méta-données (dans
l’inode):� propriétaire du fichier � droits d'accès� taille du fichier � …
� certains systèmes de fichiers peuvent s'étendre sur un réseau entier, comme par exemple NFS
155
Système de fichier : types� Non journalisés
� Ext et Ext2 : Extented FS version 2 (Linux, BSD) � FAT : File Allocation Table (DOS/Windows, Linux, BSD, OS/2, Mac
OS X) � Journalisés
� Ext3 : Extented FS version 3 (Linux) � NTFS : New Technology FileSystem (Windows, Linux en lecture
seule, Mac OS X en lecture seule) � Réseau
� NFS (Tous les Unix, Linux, Mac OS X) (Windows via un émulateur)� SMB (Windows) (Linux, BSD et Mac OS X via Samba)
� Spécialisé� ISO_9660 : en lecture seule sur tous les systèmes lisant les
CDROM/DVDROM de données
156
Interpréteur de commande
� Shell� Traduit les actions de l’utilisateurs sur les
périphériques en langage de commande afin de piloter les périphériques
� Indépendamment� des caractéristiques du matériel� de la gestion des adresses physiques, etc.