Chapitre 8
Managing Computer Memory
Lecture : 25 minQuiz de 12 questions
# Managing Computer Memory
## Objectifs et prérequis
**Objectifs** : À la fin de ce chapitre, l'élève sera capable de :
- Décrire la hiérarchie de la mémoire dans un système informatique.
- Expliquer le fonctionnement de la mémoire primaire (RAM, ROM, cache) et ses caractéristiques techniques.
- Appliquer les concepts d'adressage mémoire (adressage absolu, relatif, indexé, basé) pour localiser des données en mémoire.
- Comparer les technologies de stockage secondaire (disques durs, SSD, mémoire flash, stockage optique) selon leur capacité, vitesse, coût et durabilité.
- Résoudre des problèmes pratiques liés à l'allocation de mémoire, au calcul d'adresses et à l'évaluation des performances de stockage.
- Intégrer ces connaissances dans un contexte réel à travers une activité de synthèse.
**Prérequis** : Connaissances de base en architecture d'ordinateur (CPU, bus, entrées/sorties), représentation binaire des données, unités de mesure de l'information (bit, byte, KB, MB, GB, TB), et notions élémentaires de systèmes d'exploitation (processus, fichiers).
---
## Introduction
La gestion de la mémoire est un pilier fondamental de l'informatique moderne. Sans une organisation efficace de la mémoire, aucun programme ne pourrait s'exécuter correctement, aucun donnée ne pourrait être stockée de manière fiable, et les performances globales du système seraient sévèrement limitées. Ce chapitre explore en profondeur les deux niveaux principaux de la mémoire informatique : la mémoire primaire (ou mémoire principale), qui est directement accessible par le processeur et volatile, et la mémoire secondaire (ou stockage de masse), qui est non volatile et utilisée pour le stockage à long terme. Nous examinerons également les mécanismes d'adressage qui permettent au processeur de localiser précisément chaque octet de donnée en mémoire, ainsi que les technologies qui sous-tendent les dispositifs de stockage secondaire. Enfin, une activité d'intégration permettra de consolider ces acquis à travers une étude de cas pratique.
---
## I. Primary Storage – Part 1
La mémoire primaire, également appelée mémoire principale ou mémoire centrale, est le lieu où le processeur lit et écrit les données et les instructions pendant l'exécution d'un programme. Elle est volatile, ce qui signifie qu'elle perd son contenu lorsque l'alimentation est coupée. Les deux principaux types de mémoire primaire sont la RAM (Random Access Memory) et la ROM (Read-Only Memory).
### Définition et propriétés de la RAM
> La RAM (Random Access Memory) est une mémoire volatile qui permet un accès en lecture et en écriture à tout emplacement mémoire avec un temps d'accès constant, indépendamment de l'emplacement physique des données.
La RAM est caractérisée par :
- **Volatilité** : perte des données à l'arrêt du système.
- **Accès aléatoire** : temps d'accès identique pour toutes les adresses (contrairement au stockage séquentiel comme les bandes magnétiques).
- **Vitesse élevée** : généralement mesurée en nanosecondes (ns), bien plus rapide que le stockage secondaire.
- **Capacité modulable** : peut être augmentée en ajoutant des barrettes mémoire.
Il existe deux catégories principales de RAM :
- **SRAM (Static RAM)** : utilise des bascules pour stocker chaque bit. Plus rapide, plus chère, consomme moins d'énergie en veille. Utilisée pour la mémoire cache.
- **DRAM (Dynamic RAM)** : stocke chaque bit dans une cellule composée d'un transistor et d'un condensateur. Nécessite un rafraîchissement périodique (tous les quelques millisecondes) pour maintenir la charge. Moins chère, plus dense, utilisée comme mémoire principale standard.
### Exemple résolu : Calcul de la capacité d'une barrette RAM
Une barrette de mémoire est spécifiée comme 8 Go DDR4. Quelle est sa capacité en octets, en kibioctets (KiB), en mébioctets (MiB) et en gibioctets (GiB) ?
**Solution** :
- 1 Go = $10^9$ octets (dans le contexte du marketing, mais en informatique, on utilise souvent les préfixes binaires).
- Cependant, dans les spécifications techniques de mémoire, 1 Go = $2^{30}$ octets = 1 GiB (gibioctet).
- Donc : 8 Go = $8 \times 2^{30}$ octets = $8 \times 1\,073\,741\,824$ = 8\,589\,934\,592 octets.
- En KiB : $\frac{8\,589\,934\,592}{2^{10}} = \frac{8\,589\,934\,592}{1\,024} = 8\,388\,608$ KiB.
- En MiB : $\frac{8\,388\,608}{2^{10}} = 8\,192$ MiB.
- En GiB : $\frac{8\,192}{2^{10}} = 8$ GiB.
> **À retenir** : Dans le contexte de la mémoire primaire, les unités binaires (KiB, MiB, GiB) sont préférées car elles reflètent exactement la structure binaire de l'adressage mémoire.
### Exercices d'application corrigés
**Exercice 1** : Une carte mère supporte jusqu'à 128 Go de RAM DDR4. Si chaque barrette mémoire a une capacité de 16 Go, quel est le nombre maximum de barrettes pouvant être installées ?
**Solution** :
Nombre de barrettes = $\frac{128}{16} = 8$.
Donc, 8 barrettes de 16 Go chacune peuvent être installées.
**Exercice 2** : Un système utilise de la DRAM qui nécessite un rafraîchissement tous les 64 ms. Si chaque opération de rafraîchissement prend 100 ns, quel pourcentage du temps est consacré au rafraîchissement ?
**Solution** :
Temps total entre deux rafraîchissements = 64 ms = $64 \times 10^{-3}$ s = 0,064 s.
Temps de rafraîchissement par cycle = 100 ns = $100 \times 10^{-9}$ s = $1 \times 10^{-7}$ s.
Pourcentage = $\frac{1 \times 10^{-7}}{0,064} \times 100 = \frac{10^{-7}}{6,4 \times 10^{-2}} \times 100 = \frac{1}{6,4 \times 10^{5}} \times 100 = \frac{100}{640\,000} = 0,015625\%$.
Donc, environ 0,016 % du temps est utilisé pour le rafraîchissement.
---
## II. Primary Storage – Part 2
Au-delà de la RAM et de la ROM, la mémoire primaire inclut des niveaux de mémoire spécialisés qui améliorent les performances du système en réduisant le temps d'accès aux données fréquemment utilisées. La mémoire cache est le niveau le plus proche du processeur.
### Définition et propriétés de la mémoire cache
> La mémoire cache est une petite mémoire volatile, extrêmement rapide, située entre le processeur et la mémoire principale (RAM), qui stocke temporairement les données et instructions récemment utilisées pour réduire le temps d'accès moyen.
La cache exploite le principe de localité :
- **Localité temporaire** : les données récemment utilisées sont susceptibles d'être réutilisées bientôt.
- **Localité spatiale** : les données situées près d'une donnée récemment utilisée sont susceptibles d'être utilisées bientôt.
La cache est organisée en niveaux :
- **L1 cache** : intégrée au noyau du processeur, la plus rapide (quelques cycles d'horloge), mais la plus petite (souvent 32–64 Ko par cœur).
- **L2 cache** : peut être intégrée au processeur ou sur la même puce, plus grande que L1 (256 Ko à plusieurs Mo), légèrement plus lente.
- **L3 cache** : partagée entre plusieurs cœurs du processeur, plus grande (several Mo à dizaines de Mo), plus lente que L2 mais encore bien plus rapide que la RAM.
La performance de la cache est mesurée par son **taux de réussite (hit rate)** : pourcentage d'accès trouvés dans la cache. Un taux de réussite élevé réduit fortement le temps d'accès moyen.
### Exemple résolu : Calcul du temps d'accès moyen avec cache
Un système a :
- Temps d'accès à la cache L1 : 1 cycle d'horloge.
- Temps d'accès à la RAM : 100 cycles d'horloge.
- Taux de réussite de la L1 : 90 %.
Quel est le temps d'accès moyen en cycles d'horloge ?
**Solution** :
Temps d'accès moyen = (taux de réussite × temps cache) + ((1 - taux de réussite) × temps RAM)
= $(0,90 \times 1) + (0,10 \times 100)$
= $0,90 + 10$
= $10,90$ cycles d'horloge.
> **À retenir** : Même une petite amélioration du taux de réussite de la cache peut avoir un impact majeur sur les performances globales, car elle évite des accès coûteux à la mémoire principale.
### Exercices d'application corrigés
**Exercice 1** : Un processeur a un taux de réussite de 85 % dans sa cache L2. L'accès à la L2 prend 10 cycles, et l'accès à la RAM prend 120 cycles. Calculer le temps d'accès moyen.
**Solution** :
= $(0,85 \times 10) + (0,15 \times 120)$
= $8,5 + 18$
= $26,5$ cycles d'horloge.
**Exercice 2** : Si le taux de réussite de la cache passe de 80 % à 95 %, et que le temps d'accès à la RAM est 50 fois plus long que celui de la cache, de quel pourcentage le temps d'accès moyen diminue-t-il ?
**Solution** :
Soit $t$ le temps d'accès à la cache. Alors temps d'accès à la RAM = $50t$.
- Avant :
Temps moyen = $(0,80 \times t) + (0,20 \times 50t) = 0,80t + 10t = 10,80t$
- Après :
Temps moyen = $(0,95 \times t) + (0,05 \times 50t) = 0,95t + 2,5t = 3,45t$
- Diminution = $\frac{10,80t - 3,45t}{10,80t} \times 100 = \frac{7,35t}{10,80t} \times 100 = 68,06\%$
Donc, le temps d'accès moyen diminue d'environ 68,1 %.
---
## III. Memory Addressing Concepts
Pour que le processeur puisse lire ou écrire une donnée en mémoire, il doit connaître son adresse physique. L'adressage mémoire désigne les méthodes utilisées pour spécifier l'emplacement d'une donnée en mémoire. Plusieurs modes d'adressage existent, chacun adapté à des scénarios différents.
### Définition des modes d'adressage
> Un mode d'adressage est une règle qui définit comment l'adresse effective d'un opérande est calculée à partir des informations contenues dans l'instruction (registres, valeurs immédiates, etc.).
Les principaux modes d'adressage sont :
#### 1. Adressage absolu (ou direct)
> L'adresse effective est spécifiée directement dans l'instruction sous forme d'une valeur constante.
**Exemple** : `LOAD 1000` → charge le contenu de l'adresse mémoire 1000.
**Avantage** : simple et rapide.
**Inconvénient** : inflexible ; nécessite de connaître l'adresse exacte à l'avance.
#### 2. Adressage relatif
> L'adresse effective est égale à l'adresse de l'instruction courante (program counter, PC) plus un déplacement (offset) spécifié dans l'instruction.
**Exemple** : Si PC = 2000 et l'instruction contient un offset de +50, alors adresse effective = 2000 + 50 = 2050.
**Avantage** : permet le code relocalisable (position-independent code), essentiel pour les systèmes d'exploitation modernes et les bibliothèques partagées.
**Inconvénient** : nécessite un calcul additionnel.
#### 3. Adressage indexé
> L'adresse effective est égale à la somme d'une adresse de base contenue dans un registre (registre d'index) et d'un déplacement immédiat.
**Exemple** : Registre d'index XR = 5000, offset = 100 → adresse effective = 5000 + 100 = 5100.
**Avantage** : idéal pour parcourir des tableaux ou des structures de données (boucles).
**Inconvénient** : nécessite l'utilisation d'un registre dédié.
#### 4. Adressage basé
> Similaire à l'indexé, mais le registre de base contient souvent un pointeur vers le début d'une structure de données (comme un enregistrement ou un cadre de pile), et le déplacement fait référence à un champ spécifique.
**Exemple** : Registre de base BR = 3000 (pointeur vers le début d'un enregistrement), déplacement = 12 (pour accéder au 3e champ d'un enregistrement de 4 octets chacun) → adresse effective = 3000 + 12 = 3012.
**Avantage** : très utile pour l'accès aux champs des enregistrements, aux variables locales dans une pile d'appel.
**Inconvénient** : similaire à l'indexé, mais sémantiquement distinct selon l'usage du registre.
### Exemple résolu : Calcul d'adresse effective
Une instruction utilise l'adressage basé. Le registre de base contient la valeur 4096 (en décimal). Le déplacement spécifié dans l'instruction est 0x1C (en hexadécimal). Quelle est l'adresse effective en décimal et en hexadécimal ?
**Solution** :
- Conversion du déplacement : 0x1C = $1 \times 16^1 + 12 \times 16^0 = 16 + 12 = 28$ en décimal.
- Adresse effective = base + déplacement = 4096 + 28 = 4124 en décimal.
- Conversion de 4124 en hexadécimal :
4124 ÷ 16 = 257 reste 12 (C)
257 ÷ 16 = 16 reste 1
16 ÷ 16 = 1 reste 0
1 ÷ 16 = 0 reste 1
Donc, en lisant les restes de bas en haut : 0x101C.
> **À retenir** : Lors du calcul d'adresses effectives, il est essentiel de travailler dans la même base (souvent décimal pour la clarté, puis convertir si nécessaire) et de vérifier que les unités sont cohérentes (toutes en octets, par exemple).
### Exercices d'application corrigés
**Exercice 1** : Une instruction en adressage relatif a un PC = 0x2A00 et un offset de -0x50. Quelle est l'adresse effective en hexadécimal ?
**Solution** :
- PC = 0x2A00 = $2 \times 16^3 + 10 \times 16^2 + 0 \times 16 + 0 = 8192 + 4096 + 0 + 0 = 12288$ décimal.
- Offset = -0x50 = -80 décimal.
- Adresse effective = 12288 - 80 = 12208 décimal.
- Conversion en hexadécimal :
12208 ÷ 16 = 763 reste 0
763 ÷ 16 = 47 reste 11 (B)
47 ÷ 16 = 2 reste 15 (F)
2 ÷ 16 = 0 reste 2
Donc, 0x2FB0.
**Exercice 2** : Un tableau d'entiers de 4 octets chacun commence à l'adresse 0x1000. Quel est l'indice de l'élément stocké à l'adresse 0x1024 ?
**Solution** :
- Différence d'adresse = 0x1024 - 0x1000 = 0x24 = $2 \times 16 + 4 = 32 + 4 = 36$ octets.
- Chaque élément occupe 4 octets → indice = $\frac{36}{4} = 9$.
Donc, l'élément à l'indice 9 (le 10e élément, si l'indice commence à 0) est à l'adresse 0x1024.
---
## IV. Secondary Storage Technologies
La mémoire secondaire, ou stockage de masse, est non volatile et utilisée pour le stockage à long terme des données, des programmes et du système d'exploitation. Elle est beaucoup plus lente que la mémoire primaire, mais offre une capacité bien supérieure à un coût nettement inférieur par octet.
### Définition et propriétés du stockage secondaire
> Le stockage secondaire désigne les dispositifs de mémoire non volatile qui conservent les données même lorsque l'alimentation est coupée, utilisés pour le stockage persistant de fichiers, de systèmes d'exploitation et de sauvegardes.
Les caractéristiques clés sont :
- **Non volatilité** : conservation des données sans alimentation.
- **Capacité élevée** : allant de quelques centaines de Go à plusieurs To (voire Po pour les systèmes distribués).
- **Coût faible par octet** : nettement inférieur à celui de la RAM.
- **Vitesse d'accès plus faible** : mesurée en millisecondes (ms) pour les disques mécaniques, en microsecondes (µs) pour les SSD.
- **Types d'accès** : séquentiel (optimisé pour les bandes) ou aléatoire (optimisé pour les disques et SSD).
### Technologies de stockage secondaire
#### 1. Disques durs magnétiques (HDD - Hard Disk Drive)
> Un HDD est un dispositif de stockage secondaire qui utilise des plateaux magnétiques tournant à grande vitesse et des têtes de lecture/écriture pour stocker et récupérer des données par magnétisation.
**Fonctionnement** :
- Un ou plusieurs plateaux rigides (en aluminium ou verre) recouverts d'une couche magnétique tournent à des vitesses typiques de 5400, 7200, 10000 ou 15000 tours par minute (RPM).
- Une tête de lecture/écriture, montée sur un bras d'actuateur, se déplace radialement au-dessus du plateau pour accéder à différentes pistes.
- Les données sont enregistrées sous forme de changements de magnétisation sur des pistes concentriques, divisées en secteurs.
**Caractéristiques** :
- Capacité : couramment 500 Go à 20 To pour les modèles grand public.
- Vitesse d'accès moyenne : 5 à 15 ms (temps de recherche + latence rotationnelle).
- Débit de transfert séquentiel : 100 à 250 Mo/s.
- Coût : environ 0,02 à 0,05 USD/Go.
- Avantages : grande capacité, coût faible.
- Inconvénients : sensibles aux chocs, bruit, consommation d'énergie plus élevée, latence plus élevée que le SSD.
#### 2. Disques à état solide (SSD - Solid State Drive)
> Un SSD est un dispositif de stockage secondaire qui utilise de la mémoire flash NAND pour stocker des données sans pièces mobiles, offrant des vitesses d'accès nettement supérieures aux HDD.
**Fonctionnement** :
- La mémoire flash NAND stocke les données dans des cellules à transistors à grille flottante, où la présence ou l'absence de charge représente un 0 ou un 1.
- Aucun composant mécanique : pas de plateaux tournants, pas de têtes mobiles.
- Contrôleur intégré qui gère l'usure (wear leveling), la correction d'erreurs (ECC), et le garbage collection.
**Caractéristiques** :
- Capacité : similaire aux HDD, de 120 Go à plusieurs To.
- Temps d'accès : généralement 0,05 à 0,15 ms (50 à 150 µs) pour la lecture.
- Débit de transfert séquentiel : 200 à 3500 Mo/s selon l'interface (SATA III, NVMe PCIe).
- Coût : environ 0,05 à 0,15 USD/Go (en baisse constante).
- Avantages : très rapide, silencieux, résistant aux chocs, faible consommation d'énergie.
- Inconvénients : coût par Go encore supérieur au HDD (mais en diminution), nombre limité de cycles d'écriture par cellule (endurance), bien que largement suffisant pour une utilisation normale.
#### 3. Mémoire flash (clés USB, cartes mémoire)
> La mémoire flash est une technologie de stockage non volatile basée sur des cellules NAND ou NOR, utilisée dans des dispositifs amovibles comme les clés USB, les cartes SD, et intégrée dans les SSD.
**Caractéristiques** :
- Pas de pièces mobiles.
- Résistante aux chocs.
- Faible consommation.
- Capacités variées : de quelques Go à plusieurs To.
- Vitesse : dépend du contrôleur et de l'interface (USB 2.0, 3.0, 3.1, etc.).
- Utilisée pour le stockage portable et les systèmes embarqués.
#### 4. Stockage optique (CD, DVD, Blu-ray)
> Le stockage optique utilise des lasers pour lire et écrire des données sur un disque polycarbonate où les données sont représentées par des creux (pits) et des plateaux (lands).
**Caractéristiques** :
- CD : jusqu'à 700 Mo, lecture seule (CD-R) ou réinscriptible (CD-RW).
- DVD : jusqu'à 4,7 Go (simple couche) ou 8,5 Go (double couche).
- Blu-ray : jusqu'à 25 Go (simple couche) ou 50 Go (double couche).
- Lent : temps d'accès de l'ordre de 100 à 200 ms.
- Principalement utilisé pour la distribution de médias, les sauvegardes archivistiques, et la distribution de logiciels.
- En déclin face à la montée en puissance du stockage flash et du cloud.
### Tableau comparatif des technologies de stockage secondaire
| Technologie | Type | Capacité typique | Temps d'accès moyen | Débit séquentiel | Coût approximatif (USD/Go) | Avantages principaux | Inconvénients principaux |
|-------------|------|------------------|---------------------|------------------|----------------------------|----------------------|--------------------------|
| HDD | Magnétique, mécanique | 500 Go – 20 To | 5–15 ms | 100–250 Mo/s | 0,02–0,05 | Grande capacité, faible coût | Sensible aux chocs, bruit, latence élevée |
| SSD | Flash NAND, électronique | 120 Go – 8 To | 0,05–0,15 ms | 200–3500 Mo/s | 0,05–0,15 | Très rapide, silencieux, résistant aux chocs | Coût par Go plus élevé (en baisse), endurance limitée |
| Mémoire flash (USB/SD) | Flash NAND, amovible | 8 Go – 2 To | 0,1–0,5 ms | 10–400 Mo/s | 0,06–0,20 | Portable, résistant, faible consommation | Vitesse variable selon l'interface, coût par Go élevé |
| Stockage optique | Optique (laser) | 700 Mo – 50 Go | 100–200 ms | 1–10 Mo/s | 0,10–0,50 (par disque) | Archivage longue durée, faible coût unitaire | Lent, capacité limitée, en déclin |
> **À retenir** : Le choix entre HDD et SSD dépend du compromis entre capacité, coût et performance. Pour le système d'exploitation et les applications fréquemment utilisées, un SSD est fortement recommandé. Pour le stockage de masse de fichiers peu fréquemment accessibles (vidéos, sauvegardes), un HDD reste économiquement pertinent.
### Exercices d'application corrigés
**Exercice 1** : Un utilisateur doit choisir entre un HDD de 4 To à 50 USD et un SSD de 1 To à 60 USD. Quel est le coût par Go pour chacun ? Lequel offre le meilleur coût par Go ?
**Solution** :
- HDD : $\frac{50}{4000} = 0,0125$ USD/Go.
- SSD : $\frac{60}{1000} = 0,06$ USD/Go.
Le HDD offre un coût par Go beaucoup plus faible (0,0125 vs 0,06 USD/Go).
Cependant, le SSD est nettement plus rapide. Le choix dépend de l'usage : si la vitesse est prioritaire (système d'exploitation, applications), le SSD vaut le coût supplémentaire. Si la capacité et le coût sont prioritaires (stockage de fichiers multimédias), le HDD est préférable.
**Exercice 2** : Un SSD a un débit de lecture séquentiel de 3500 Mo/s. Combien de temps faut-il pour transférer un fichier de 50 Go ?
**Solution** :
- 50 Go = $50 \times 1024$ Mo = 51200 Mo (en utilisant les unités binaires, courantes dans ce contexte).
- Temps = $\frac{51200}{3500} \approx 14,63$ secondes.
> **Note** : Si l'on utilise les unités décimales (1 Go = 1000 Mo), alors 50 Go = 50000 Mo, et temps = $\frac{50000}{3500} \approx 14,29$ secondes.
Dans les spécifications de stockage, les unités décimales sont souvent utilisées pour la capacité, tandis que les débits peuvent être en unités binaires ou décimales selon le contexte. Pour rester cohérent avec les pratiques courantes du marché, on utilise souvent 1 Go = $10^9$ octets pour la capacité déclarée.
Donc, en unités décimales : 50 Go = 50 × $10^9$ octets = 50 000 Mo.
Débit = 3500 Mo/s = 3500 × $10^6$ octets/s.
Temps = $\frac{50 \times 10^9}{3500 \times 10^6} = \frac{50}{3,5} \approx 14,29$ secondes.
Donc, environ 14,3 secondes.
---
## V. Integration Activity
Cette activité permet de synthétiser les connaissances acquises sur la mémoire primaire, l'adressage mémoire et les technologies de stockage secondaire à travers une étude de cas réaliste.
### Énoncé de l'activité
Vous êtes chargé de conseiller un établissement scolaire qui souhaite renouveler son parc informatique. Le budget est limité, mais il faut garantir de bonnes performances pour les tâches suivantes :
- Utilisation quotidienne de traitements de texte, tableurs et navigation web.
- Stockage de ressources pédagogiques (vidéos de cours, présentations, documents PDF).
- Exécution occasionnelle de logiciels de programmation légers (comme des IDE pour Python ou Scratch).
- Sauvegarde hebdomadaire des données des élèves et des enseignants.
Vous disposez de deux options de configuration pour chaque poste de travail :
**Option A** :
- Processeur : milieu de gamme
- RAM : 8 Go DDR4
- Stockage primaire : aucun cache supplémentaire (seulement L1/L2/L3 intégrées au processeur)
- Stockage secondaire : HDD de 1 To à 5400 RPM
**Option B** :
- Processeur : même modèle que l'Option A
- RAM : 8 Go DDR4
- Stockage primaire : même cache que l'Option A
- Stockage secondaire : SSD SATA III de 256 Go
Le reste des composants (carte mère, alimentation, boîtier, écran) est identique.
#### Questions
1. Comparer les deux options en termes de performances perçues lors du démarrage du système d'ouverture et du lancement des applications courantes (traitement de texte, navigateur web). Justifier votre réponse en faisant référence aux concepts de mémoire primaire et secondaire.
2. Évaluer la pertinence de chaque option pour le stockage des ressources pédagogiques volumineuses (vidéos de cours en haute définition). Justifier en termes de capacité, coût et durabilité.
3. Proposer une solution hybride qui pourrait optimiser le rapport coût/performance pour cet établissement, en s'appuyant sur les notions apprises dans ce chapitre.
4. Expliquer comment le principe de localité (temporaire et spatiale) justifie la présence de la mémoire cache dans le processeur, même si la capacité de la RAM est déjà de 8 Go.
### Corrigé
**1. Performances perçues au démarrage et lancement des applications** :
L'Option B (SSD) sera nettement supérieure à l'Option A (HDD) pour le démarrage du système et le lancement des applications.
- Le système d'exploitation, les applications fréquemment utilisées et les fichiers de configuration sont chargés depuis le stockage secondaire lors du démarrage et du lancement.
- Avec un HDD, le temps d'accès moyen est de l'ordre de 5 à 15 ms, tandis qu'avec un SSD SATA III, il est de l'ordre de 0,05 à 0,15 ms — soit une amélioration de 50 à 300 fois en latence.
- Même si la RAM (8 Go) est suffisante pour tenir les applications en mémoire une fois lancées, le délai pour les charger depuis le stockage secondaire est dominé par la latence du disque.
- Le SSD réduit considérablement ce délai, ce qui se traduit par un démarrage en 10–15 secondes contre 30–60 secondes ou plus avec un HDD.
- L'option B offre donc une expérience utilisateur nettement plus réactive, ce qui est crucial dans un contexte éducatif où le temps de classe est précieux.
**2. Pertinence pour le stockage des ressources pédagogiques volumineuses** :
L'Option A (HDD de 1 To) est plus adaptée que l'Option B (SSD de 256 Go) pour stocker des ressources pédagogiques volumineuses comme des vidéos de cours en HD.
- Une vidéo de cours de 1 heure en HD (1080p) peut facilement ocupar 1 à 2 Go, voire plus selon le débit.
- Avec 256 Go SSD, on pourrait stocker environ 100 à 250 telles vidéos, ce qui peut sembler suffisant, mais la croissance rapide des ressources (ajout de nouvelles cours, mises à jour, multiples résolutions) peut rapidement saturer cet espace.
- Le HDD de 1 To permet de stocker 500 à 1000 telles vidéos, offrant une marge de confort importante.
- Le coût par Go du HDD est nettement inférieur (environ 0,02–0,05 USD/Go contre 0,05–0,15 USD/Go pour le SSD), ce qui permet d'obtenir beaucoup plus de stockage pour le même budget.
- Bien que le SSD soit plus résistant aux chocs, dans un environnement scolaire fixe (ordinateurs de bureau sur des tables), le risque de choc physique est faible, réduisant cet avantage.
- Donc, pour le stockage de masse de données peu fréquemment modifiées mais fréquemment lues (comme des vidéos de cours), le HDD est le choix plus économique et adapté.
**3. Solution hybride proposée** :
Une solution hybride optimale serait :
- **RAM** : 8 Go DDR4 (suffisante pour le multitâche de base).
- **Stockage primaire** : cache L1/L2/L3 intégré au processeur (inchangé).
- **Stockage secondaire** :
- Un **SSD de 120 à 240 Go** dédié au système d'exploitation, aux applications fréquemment utilisées (traitement de texte, navigateur, IDE léger) et aux profils utilisateurs.
- Un **HDD de 1 To** dédié au stockage des ressources pédagogiques (vidéos, présentations, archives) et aux sauvegardes hebdomadaires.
Cette configuration tire parti :
- De la vitesse du SSD pour les opérations sensibles à la latence (démarrage, lancement d'applications).
- De la grande capacité et du faible coût du HDD pour le stockage de masse.
- Elle réduit considérablement le coût total par rapport à un système tout-SSD de même capacité utile, tout en offrant des performances proches du tout-SSD pour les tâches critiques.
- Elle s'appuie sur le principe de localité : les données fréquemment utilisées (système, applications) sont placées sur le support rapide (SSD), tandis que les données moins fréquemment utilisées mais volumineuses sont sur le support économique (HDD).
**4. Justification de la mémoire cache malgré 8 Go de RAM** :
La présence de la mémoire cache (L1, L2, L3) est essentielle même avec 8 Go de RAM en raison du **principe de localité** :
- **Localité temporaire** : les mêmes instructions et données (comme les boucles de programme, les variables de compteur, les pointeurs de pile) sont répétées fréquemment pendant une courte période. Sans cache, chaque accès nécessiterait un aller-retour vers la RAM, qui prend environ 60–100 ns (ou plus si l'on compte la latence du bus). La cache, avec un temps d'accès de 0,5–5 ns pour L1, réduit considérablement ce délai.
- **Localité spatiale** : lorsqu'un programme accède à une adresse mémoire, il est très probable qu'il accède bientôt à des adresses voisines (comme lors du parcours d'un tableau ou de l'exécution séquentielle d'instructions). La cache charge des blocs de plusieurs octets (ligne de cache, typiquement 64 octets) à la fois, donc un seul accès à la RAM peut servir plusieurs accès ultérieurs.
- Même avec 8 Go de RAM, le temps d'accès à la RAM est encore deux ordres de grandeur plus lent que celui de la cache L1. Sans cache, le processeur passerait la majorité de son temps à attendre les données, réduisant fortement l'efficacité du pipeline d'instructions.
- La cache permet donc d'approcher la vitesse du processeur pour une grande partie des accès mémoire, ce qui est indispensable pour atteindre les performances attendues des processeurs modernes, même avec une RAM abondante.
---
## Synthèse du chapitre
- La mémoire primaire (RAM, ROM, cache) est volatile, rapide et directement accessible par le processeur ; elle sert au stockage temporaire des données et instructions pendant l'exécution.
- La RAM existe en deux formes principales : SRAM (rapide, coûteuse, utilisée pour la cache) et DRAM (moins chère, densité élevée, utilisée comme mémoire principale, nécessite un rafraîchissement).
- La mémoire cache exploite le principe de localité (temporaire et spatiale) pour réduire le temps d'accès moyen aux données ; son efficacité se mesure par le taux de réussite.
- Les modes d'adressage mémoire (absolu, relatif, indexé, basé) permettent au processeur de calculer l'adresse effective d'un opérande de manière flexible et adaptée aux structures de données (tableaux, enregistrements, piles).
- Le stockage secondaire (HDD, SSD, mémoire flash, stockage optique) est non volatile, offre une grande capacité à moindre coût, mais est plus lent que la mémoire primaire.
- Les HDD utilisent des plateaux magnétiques tournants ; ils offrent une grande capacité à faible coût mais sont sensibles aux chocs et ont une latence élevée.
- Les SSD utilisent de la mémoire flash NAND sans pièces mobiles ; ils offrent des vitesses d'accès nettement supérieures, une meilleure résistance aux chocs et une faible consommation, mais à un coût par Go encore supérieur au HDD (en baisse rapide).
- Le choix entre technologies de stockage dépend du compromis entre capacité, coût, performance et durabilité : SSD pour la réactivité, HDD pour le stockage de masse.
- Une approche hybride (SSD pour le système et les applications, HDD pour le stockage de données volumineuses) optimise souvent le rapport coût/performance dans des contextes réels comme l'éducation.
- Le principe de localité justifie la présence de la mémoire cache même avec une grande quantité de RAM, car il réduit considérablement le temps d'accès effectif aux données fréquemment utilisées.
---
Quiz du chapitre
12 questions — vérifie chaque réponse pour voir l'explication.