Memory Organization in Computer Architecture

Exercice 1 - Noms des acronymes Voici la signification des acronymes utilisés dans l'étude de l'organisation de la mémoire.

D'après le document Memory Organization in Computer Architecture

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Memory Organization in Computer Architecture

Document source

Memory Organization in Computer Architecture

Programming, Computer Architecture, Memory Management · PDF · 5 pages · 2019

Afficher l'aperçu du document

Consulter le document original →

Exercice 1 - Noms des acronymes

Voici la signification des acronymes utilisés dans l'étude de l'organisation de la mémoire.

  • EAD : Espace d'Adressage Direct
  • NCM : Nombre de Cases Mémoires
  • TMC : Taille de la Mémoire Centrale
  • T@M : Taille d'adresse mémoire
  • @bM : Adresse basse mémoire
  • NB : Nombre de Blocs
  • NCB : Nombre de Cases par Bloc
  • T@B : Taille d'adresse Bloc
  • @bB : Adresse basse du Bloc
  • Tbus@ : Taille du bus d'adresse
  • Dec@ : Décodeur d'adresse
  • TCM : Taille d'une Case Mémoire
  • Capacité d'adressage : Quantité maximale de mémoire adressable par le processeur
  • @hM : Adresse haute mémoire
  • TB : Taille de Bloc
  • Nb@M : Nombre de bits d'adresse mémoire
  • NL@M : Nombre de Lignes d'adresse mémoire
  • @hB : Adresse haute du Bloc
  • Nb@B : Nombre de bits d'adresse Bloc
  • NL@B : Nombre de Lignes d'adresse Bloc
  • TbusD : Taille du bus de données
  • DecB : Décodeur de Blocs

Exercice 2 - Dimensionnement de la mémoire centrale

Note de lecture : Le symbole illisible "" présent dans le document original désigne des octets (o). La source contient une notation confuse au départ (EAD = 128 Mo = 2^30 bits) mais l'utilise dans les calculs suivants comme signifiant que le nombre de cases mémoires adressables (NCM) est de 2^30. Nous suivons cette logique pour que les résultats mathématiques soient exacts et cohérents avec la correction d'origine.

Données de base :

  • TCM (Taille d'une Case Mémoire) = 16 bits = 2 octets = 2^4 bits.
  • NCM (Nombre de cases) = 2^30 cases (déduit des 30 bits d'adresse, bien que le sujet mentionne 128M octets = 2^30 bits d'Espace d'Adressage Direct).
  • Rappels : 1 octet = 2^3 bits ; 1 K = 2^10 ; 1 M = 2^20 ; 1 G = 2^30.

Question 1 - Nombre de bits d'adresse et de données

a- Nombre de bits d'adresse : Puisque le système adresse 2^30 cases mémoires, il faut 30 bits pour identifier chaque case de façon unique.

  • Nombre de bits d'adresse = 30 bits

b- Nombre de bits de données : La taille du bus de données correspond à la taille d'une case mémoire (TCM), qui est de 16 bits.

  • Nombre de bits de données = 16 bits

Question 2 - Capacité de la mémoire centrale (TMC)

La taille de la mémoire centrale est égale au nombre de cases multiplié par la taille d'une case : TMC = NCM × TCM.

a. TMC en bits :

  • 2^30 cases × 2^4 bits = 2^34 bits

b. TMC en octets :

  • 2^34 bits ÷ 2^3 = 2^31 octets

c. TMC en Ko (Kilo-octets) :

  • 2^34 bits ÷ (2^10 × 2^3) = 2^21 Ko

d. TMC en Mo (Méga-octets) :

  • 2^34 bits ÷ (2^20 × 2^3) = 2^11 Mo (Note : La correction d'origine affiche par erreur l'unité "K" pour ce résultat, mais le diviseur 2^20 utilisé prouve bien qu'il s'agit de Méga-octets).

e. TMC en Go (Giga-octets) :

  • 2^34 bits ÷ (2^30 × 2^3) = 2^1 = 2 Go

Question 3 - Adresses basse et haute

L'adresse comporte 30 bits.

a- @basse : L'adresse la plus petite est constituée de 30 zéros.

  • En binaire : (00 0000 0000 0000 0000 0000 0000 0000)_2
  • En hexadécimal : (00000000)_16

b- @haute : L'adresse la plus grande est constituée de 30 uns.

  • En binaire : (11 1111 1111 1111 1111 1111 1111 1111)_2
  • En hexadécimal : Les 30 bits se découpent en un groupe de 2 bits (11_2 = 3_16) suivi de 7 groupes de 4 bits (1111_2 = F_16). Ce qui donne (3FFFFFFF)_16.

Question 4 - Organisation en blocs

Nous avons une Taille de Bloc (TB) fixée à 1 Giga-bits, soit 2^30 bits.

  • Nombre de Blocs (NB) : TMC ÷ TB = 2^34 ÷ 2^30 = 2^4 = 16 blocs.
  • Nombre de cases par bloc (NCB) : TB ÷ TCM = 2^30 ÷ 2^4 = 2^26 cases par bloc.
  • Nombre de lignes d'adresse mémoire (NL@M) : 30 lignes.
  • Nombre de bits pour identifier le bloc (NbDB) : 4 bits (puisqu'il y a 2^4 = 16 blocs).
  • Nombre de lignes d'adresse dans un bloc (NL@B) : 26 lignes (puisqu'il y a 2^26 cases dans un bloc).

Plages d'adresses des 16 blocs en binaire : Les 4 bits de poids fort (A29 à A26) identifient le numéro du bloc (de 0000 à 1111). Les 26 bits restants (A25 à A0) sont tous à 0 pour l'adresse basse (@b) et tous à 1 pour l'adresse haute (@h).

Bloc A29 à A26 (Numéro) A25 ... A0 (@b et @h)
Bl0 0000 @b : 0...0 <br> @h : 1...1
Bl1 0001 @b : 0...0 <br> @h : 1...1
Bl2 0010 @b : 0...0 <br> @h : 1...1
Bl3 0011 @b : 0...0 <br> @h : 1...1
Bl4 0100 @b : 0...0 <br> @h : 1...1
Bl5 0101 @b : 0...0 <br> @h : 1...1
Bl6 0110 @b : 0...0 <br> @h : 1...1
Bl7 0111 @b : 0...0 <br> @h : 1...1
Bl8 1000 @b : 0...0 <br> @h : 1...1
Bl9 1001 @b : 0...0 <br> @h : 1...1
Bl10 1010 @b : 0...0 <br> @h : 1...1
Bl11 1011 @b : 0...0 <br> @h : 1...1
Bl12 1100 @b : 0...0 <br> @h : 1...1
Bl13 1101 @b : 0...0 <br> @h : 1...1
Bl14 1110 @b : 0...0 <br> @h : 1...1
Bl15 1111 @b : 0...0 <br> @h : 1...1

Plages d'adresses des 16 blocs en hexadécimal :

Bloc Adresse Basse (@b) Adresse Haute (@h)
Bl0 00000000 03FFFFFF
Bl1 04000000 07FFFFFF
Bl2 08000000 0BFFFFFF
Bl3 0C000000 0FFFFFFF
Bl4 10000000 13FFFFFF
Bl5 14000000 17FFFFFF
Bl6 18000000 1BFFFFFF
Bl7 1C000000 1FFFFFFF
Bl8 20000000 23FFFFFF
Bl9 24000000 27FFFFFF
Bl10 28000000 2BFFFFFF
Bl11 2C000000 2FFFFFFF
Bl12 30000000 33FFFFFF
Bl13 34000000 37FFFFFF
Bl14 38000000 3BFFFFFF
Bl15 3C000000 3FFFFFFF

(Note de calcul : Le pas d'un bloc en hexadécimal est de 2^26 = 04000000_16. On ajoute donc cette valeur pour trouver l'adresse basse du bloc suivant).

Exercice 3 - Mots Mémoire et Mots Cache

Question 1 - Conversion des mots en bits et octets

Le "Mot Mémoire" (MM) est l'unité de base transférable depuis la mémoire. Le document original utilise le suffixe "d" pour désigner des "digits" hexadécimaux (un chiffre hexadécimal = 4 bits).

  • MM = 4 octets = 2^2 × 2^3 = 2^5 = 32 bits = 8d (car 32 bits ÷ 4 bits = 8 caractères hexadécimaux).
  • MW (Mot Cache ou Ligne de cache) = 128 bits = 2^7 bits = 2^4 × 2^3 = 16 octets = 32d.

Question 2 - Relation entre MW et MM

Il s'agit de trouver combien de Mots Mémoire (MM) tiennent dans une Ligne de Cache (MW).

  • MW ÷ MM = 128 bits ÷ 32 bits = 4
  • Donc : MW = 4 MM

Question 3 - Nombre d'opérations de lecture

Puisque le bus permet de lire un Mot Mémoire à la fois, et qu'il y a 4 Mots Mémoire dans une ligne de cache, il faudra 4 opérations de lecture pour remplir complètement une ligne de cache (MW).

Exercice 4 - La mémoire cache

Question 1 - Différences qualitatives

Caractéristique Mémoire Centrale (MC) Mémoire Cache (MCa)
Capacité de stockage Supérieure Inférieure
Vitesse d'accès Moins rapide Plus rapide
Coût par unité Faible Élevé
Technologie matérielle SRAM, DRAM... Uniquement SRAM

Question 2 - Calcul de la taille de la Mémoire Cache (TMCache)

La taille totale d'un cache (TMCache) s'exprime comme le produit du nombre de lignes (NLcache) par la taille complète d'une ligne (TLcache). Formule : TMCache = NLcache × TLcache

Calcul des composantes :

  • NLcache = 2048 lignes (donné).
  • TLcache = Bit de Validité (TBV) + Bits du Bloc (NbDB) + Données (TB).

Trouvons NbDB et TB :

  1. TCM (Taille Case Mémoire) = 1 octet = 2^3 = 8 bits.
  2. EAD = 2^32 mots mémoire (MM).
  3. Taille d'un bloc en données (TB) = 32 bits = 4 mots mémoire = 2^2 × 2^3 = 2^5 bits.
  4. TMC (Taille Mémoire Centrale) = EAD × TCM = 2^32 × 2^3 = 2^35 bits.
  5. Nombre de Blocs (NB) dans la mémoire centrale = TMC ÷ TB = 2^35 ÷ 2^5 = 2^30 blocs.
  6. Pour adresser 2^30 blocs, il faut NbDB = 30 bits.

Calcul final de la taille :

  • TLcache = 1 (validité) + 30 (tag du bloc) + 32 (données) = 63 bits.
  • TMCache = 2048 lignes × 63 bits = 129 024 bits.
  • Conversion en octets : 129 024 ÷ 8 = 16 128 octets.

Question 3 - Récupération du contenu des cases

L'objectif est d'expliquer ce qui se passe lors de la requête de la case mémoire C48.

Nous savons qu'il y a NCB = TB ÷ TCM = 32 bits ÷ 8 bits = 4 cases par bloc.

Étape 1 : Déterminer l'indice du bloc contenant C48

  • Indice du bloc = indice de la case demandée ÷ NCB
  • Indice du bloc = 48 ÷ 4 = 12 (avec un Reste = 0).
  • La case 48 se trouve donc dans le bloc B12, à l'index de décalage 0.

Étape 2 : Chercher le bloc B12 dans le cache En lisant l'état actuel du cache (colonne "Bits qui Désignent un Bloc") :

  • L0 : L'adresse de bloc est (10100)_2 = 20_10 (Valide, BV=1).
  • L2 : L'adresse de bloc est (11111)_2 = 31_10 (Valide, BV=1). Le bloc B12 n'existe pas dans le cache. C'est un défaut de cache.

Étape 3 : Récupérer B12 depuis la MC et le placer en cache L'indice de la première case du B12 est : Indice du bloc × NCB = 12 × 4 = 48. Le bloc B12 contient donc les cases C48, C49, C50 et C51. On ajoute ou on écrase une ligne dans le cache pour ce bloc. La nouvelle ligne aura un BV=1 et comme identifiant de bloc la valeur 12 (soit 00...001100 en binaire sur 30 bits). Le contenu (donné par l'énoncé) est enregistré : 11111111110001110111101101011111.

Étape 4 : Extraire le contenu de la case C48 Pour extraire la case exacte, on se sert du Reste calculé à l'étape 1.

  • Décalage (en bits) = Reste × TCM = 0 × 8 bits = 0 bits.
  • On extrait les 8 bits (TCM) à partir du décalage 0.
  • En lisant les premiers 8 bits depuis la gauche du bloc chargé, le contenu de C48 est : (11111111)_2.

Méthode

Face à un examen d'architecture d'ordinateurs sur l'organisation de la mémoire, l'erreur la plus fréquente réside dans la confusion entre les unités. Suivez toujours ces trois règles :

  1. Distinguez les contenants des contenus : Un nombre de "cases" (adresses) n'est pas une taille totale. Si vous avez 2^30 cases (EAD) et que chaque case fait 16 bits, la capacité totale n'est pas de 2^30 bits, mais de 2^30 × 16 bits.
  2. Identifiez l'unité de la donnée : Ramenez toujours vos capacités en bits pour le calcul interne (tag de cache, taille de bloc, capacité du bus) avant de repasser en octets (o), en Kilo-octets (Ko) ou en Méga-octets (Mo) pour le résultat final demandé par l'exercice.
  3. Visualisez l'adresse comme une structure : Une adresse globale est toujours découpée en champs matériels immuables. Le plus souvent : un champ "Numéro de Bloc" (poids fort) et un champ "Décalage dans le bloc" (poids faible). Diviser le numéro de la case par le nombre de cases par bloc donne systématiquement le numéro du bloc (le quotient) et la position exacte à l'intérieur du bloc (le reste).

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions