52
1 Architecture des ordinateurs Damien Martin-Guillerez INRIA/IRISA [email protected] À partir des supports de cours de Vincent GUILLOUX et Simon ARBERET 2 Plan Introduction Introduction Introduction Introduction 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.

Architecture des ordinateurs - Inria Bordeaux Sud …sed.bordeaux.inria.fr/.../teaching/2007-archi/cours.pdf · Àpartir des supports de cours de Vincent GUILLOUX et Simon ARBERET

  • Upload
    dangnga

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

1

Architecture des ordinateurs

Damien Martin-GuillerezINRIA/IRISA

[email protected]

À 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.