Architecture des ordinateurs

Cette conférence aborde l’architecture des mémoires dans les ordinateurs, un élément fondamental du cours d’architecture des ordinateurs en licence informatique. Elle présente les différents types de mémoires, leurs caractéristiques, modes d’accès, organisation interne, ainsi que les notions de mémoire logique et mémoire virtuelle.

D'après le document Architecture des ordinateurs

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

Architecture des ordinateurs

Document source

Architecture des ordinateurs

Computer Science · PDF · 10 pages

Afficher l'aperçu du document

Consulter le document original →

Cette conférence aborde l’architecture des mémoires dans les ordinateurs, un élément fondamental du cours d’architecture des ordinateurs en licence informatique. Elle présente les différents types de mémoires, leurs caractéristiques, modes d’accès, organisation interne, ainsi que les notions de mémoire logique et mémoire virtuelle.

Les mémoires : définitions et caractéristiques

La mémoire est un dispositif permettant d’enregistrer, conserver et restituer de l’information. L’unité de base est le bit, qui peut prendre la valeur 0 ou 1. Un octet (byte) correspond à un groupe de 8 bits, tandis qu’un mot est un regroupement d’octets, par exemple 8, 16 ou 32 bits.

Les unités d’information adressables en mémoire sont souvent exprimées en puissances de 2 :

  • 1 KiloOctet (Ko) = 2^10 octets = 1024 octets
  • 1 MegaOctet (Mo) = 2^10 Ko = 1 048 576 octets
  • 1 GigaOctet (Go) = 2^10 Mo
  • 1 TeraOctet (To) = 2^10 Go

Les mémoires utilisent différentes technologies : électronique, magnétique, optique. Elles se distinguent par plusieurs caractéristiques essentielles :

  • Capacité
  • Temps d’accès
  • Débit (bande passante)
  • Volatilité (conservation des données hors alimentation)

Performances et types de mémoires

Le temps d’accès (ta) est le délai entre la demande de lecture ou d’écriture et sa réalisation effective. Le temps de cycle (tc) est le temps minimum entre deux accès successifs à la mémoire, avec ta < tc pour permettre la stabilisation des signaux et la synchronisation.

Le débit B, ou bande passante, représente le nombre maximal de bits transmis par seconde dans le cas d’un accès uniforme aux données et s’exprime par la formule :

B = n / tc

où n est le nombre de bits transférés par cycle.

Différents types de mémoires cohabitent sur la carte mère :

  • Registres : très rapides, capacité faible (< 100 octets), temps d’accès inférieur à 1 ns, débit supérieur à 50 Go/s
  • Cache : capacité entre 100 Ko et 1 Mo, temps d’accès de 2 à 5 ns, débit de 5 à 20 Go/s
  • Mémoire centrale (RAM) : capacité de 256 Mo à 4 Go, temps d’accès d’environ 20 ns, débit autour de 1 Go/s
  • Disques durs : capacité de 50 à 500 Go, temps d’accès de 1 à 10 ms, débit environ 300 Mo/s
  • Mémoire de masse (bandes, disques optiques) : plus lente mais grande capacité

Méthodes d’accès aux mémoires

On distingue plusieurs modes d’accès :

  • Accès séquentiel : il faut parcourir toutes les informations précédentes pour atteindre une donnée. Exemple : bandes magnétiques.
  • Accès direct : chaque information possède une adresse propre, permettant un accès immédiat. Exemple : mémoire centrale.
  • Accès semi-séquentiel : intermédiaire entre séquentiel et direct. Exemple : disque dur, avec accès direct au cylindre et séquentiel au secteur sur ce cylindre.
  • Accès associatif : une information est identifiée par une clé, et l’accès se fait via cette clé. Exemple : mémoire cache.

Les mémoires peuvent être :

  • Persistantes (mémoires mortes - ROM) : leur contenu est fixé et conservé même hors alimentation électrique.
  • Volatiles (mémoires vives - RAM) : leur contenu est modifiable mais perdu hors alimentation.

Types de mémoires mortes (ROM) et volatiles (RAM)

Les mémoires mortes comprennent :

  • ROM (Read Only Memory) : information stockée lors de la conception du circuit.
  • PROM (Programmable ROM) : mémoire programmable une seule fois par l’utilisateur final.
  • EPROM (Erasable PROM) : mémoire programmable et effaçable par ultraviolet.
  • EEPROM (Electrically Erasable PROM) : mémoire programmable et effaçable électriquement, utilisée par exemple dans les BIOS ou lecteurs MP3.

Les mémoires volatiles RAM se divisent en deux types :

  • DRAM (Dynamic RAM) : chaque bit est stocké dans un condensateur associé à un transistor. Le condensateur doit être périodiquement rafraîchi pour conserver l’information, ce qui ralentit l’accès mais rend la DRAM peu coûteuse.
  • SRAM (Static RAM) : chaque bit est stocké dans une bascule RS ou D composée de 4 transistors. Elle ne nécessite pas de rafraîchissement, est beaucoup plus rapide mais aussi plus coûteuse que la DRAM. Elle est intégrée au cœur du processeur.

Rappels sur décodeurs et multiplexeurs

Un décodeur est un circuit qui, à partir d’un mot binaire de n bits en entrée, active une seule des 2^n sorties correspondant à la valeur binaire de l’entrée. Par exemple, un décodeur 3 vers 8 a 3 entrées et 8 sorties.

Un multiplexeur (MUX) possède 2^n entrées, une sortie et n lignes de sélection. La sortie correspond à la valeur de l’entrée sélectionnée par les lignes de sélection. Par exemple, un multiplexeur 4 vers 1 a 4 entrées, 1 sortie et 2 lignes de sélection.

Registres et bancs de registres

Un registre est une mémoire de très petite taille, très rapide, utilisée pour stocker temporairement des informations relatives à une instruction (opérandes, résultats). Un registre 1-bit est réalisé par une bascule RS ou D. Un registre n-bits est constitué de n bascules en parallèle.

Un banc de registres est un ensemble de n registres de k bits, formant une mémoire à n adresses. Par exemple, un banc de n registres de 3 bits peut posséder un port d’écriture et deux ports de lecture, permettant de lire simultanément le contenu de deux registres.

Le fonctionnement en lecture permet d’extraire en parallèle les données de deux registres, tandis que le fonctionnement en écriture met à jour le contenu d’un registre sélectionné.

Organisation de la mémoire centrale

La mémoire centrale est généralement de type DRAM, stockant l’information sous forme de mots de 8, 16, 32 ou 64 bits. Sa vitesse est relativement lente comparée à celle du processeur.

Pour adresser la mémoire, on utilise un décodeur. Cependant, un décodeur unique pour une grande mémoire aurait un nombre de sorties trop important. On organise donc la mémoire en matrice bidimensionnelle, avec un décodeur pour les lignes et un autre pour les colonnes.

Le chargement de l’adresse se fait en deux temps, stocké dans deux registres, ce qui permet de réduire la complexité du décodeur.

Fonctionnement des cycles mémoire

Le cycle de lecture comprend :

  • Établissement de l’adresse
  • Signal de lecture (par exemple R/W=0)
  • Sélection du boîtier mémoire (CS=0)
  • Après un certain délai, l’information apparaît sur la sortie et y reste jusqu’à la fin du cycle

Le cycle d’écriture comprend :

  • Établissement de l’adresse
  • Sélection du boîtier (CS=0)
  • Établissement de la donnée sur l’entrée
  • Signal d’écriture (par exemple R/W=0)

Protocoles d’échange processeur-mémoire et optimisations

Deux types de protocoles existent :

  • Synchrone : le processeur suppose qu’après un délai fixe k, l’opération mémoire est terminée (lecture ou écriture).
  • Asynchrone (handshaking) : le processeur et la mémoire échangent des signaux de contrôle (request/acknowledgment) pour synchroniser l’opération.

Les mémoires synchrones (SDRAM) sont synchronisées avec le bus. Pour les mémoires matricielles, on utilise :

  • Accès en mode page : on charge une ligne et une colonne, puis on ne change que la colonne pour les accès suivants, exploitant la localité des données (DRAM FPM).
  • Accès en rafale (burst) : on charge ligne, colonne et nombre de données à lire, puis on incrémente automatiquement la colonne pour les accès suivants (DDR-SDRAM).

Assemblage des boîtiers mémoire

Pour augmenter la taille des mots, plusieurs boîtiers mémoire sont regroupés. Par exemple, deux boîtiers de 2k mots de n bits forment un bloc de 2k mots de 2n bits.

Pour augmenter le nombre de mots, on assemble plusieurs boîtiers en parallèle. Par exemple, quatre boîtiers de 2k mots de n bits forment un bloc de 4 × 2k mots de n bits, nécessitant une adresse étendue de k + 2 bits.

Gestion des erreurs en mémoire

Les informations stockées en mémoire peuvent comporter des erreurs dues à la nature physique du support. Pour détecter et corriger ces erreurs, on ajoute des bits de contrôle :

  • Bit de parité : un bit supplémentaire assurant que le nombre de bits à 1 est pair.
  • Mémoire ECC (Error Correction Coding) : intègre des bits supplémentaires permettant de détecter et corriger un ou plusieurs bits erronés.

Mémoire logique et adressage

La mémoire logique correspond à la vision qu’a le processeur ou le programmeur de la mémoire physique. Elle est définie comme un ensemble de N octets consécutifs, numérotés de 0 à N−1.

L’adressage peut se faire par mots de 8, 16, 32 ou 64 bits. Pour un mot mémoire de 32 bits, deux conventions existent :

  • Big-endian : le mot de poids fort est stocké en premier (à l’adresse la plus basse).
  • Little-endian : le mot de poids fort est stocké en dernier (à l’adresse la plus haute).

Un mot mémoire ne peut commencer n’importe où :

  • Les mots de 16 bits commencent sur des adresses paires.
  • Les mots de 32 bits commencent sur des adresses multiples de 4.

Segmentation de la mémoire

La mémoire peut être découpée en segments ou blocs. Une adresse mémoire est alors codée par :

  • Un numéro de bloc (B bits de poids fort)
  • Un déplacement dans le bloc (offset, N−B bits de poids faible)

Pour N bits d’adressage, la mémoire contient 2^N cases, réparties en 2^B blocs de 2^(N−B) cases chacun.

Mémoire virtuelle

La mémoire physique n’est qu’une partie de la mémoire disponible. Le système utilise la mémoire de masse (disques durs) comme mémoire virtuelle, permettant d’augmenter la capacité apparente.

La pagination est un mécanisme clé de la mémoire virtuelle, avec un système de swap qui échange des pages entre mémoire centrale et disque dur selon les besoins.

Points clés

  • La mémoire est organisée en bits, octets et mots, avec des unités de capacité en puissances de 2.
  • Les mémoires varient par technologie, capacité, temps d’accès, débit et volatilité.
  • Différents modes d’accès existent : séquentiel, direct, semi-séquentiel et associatif.
  • Les mémoires mortes (ROM) sont non volatiles et programmables selon plusieurs types (PROM, EPROM, EEPROM).
  • Les mémoires vives (RAM) sont volatiles, avec DRAM nécessitant un rafraîchissement et SRAM plus rapide mais plus coûteuse.
  • Les registres sont des mémoires très rapides intégrées au processeur, organisées en bancs avec ports de lecture et écriture.
  • La mémoire centrale est souvent organisée en matrice avec décodeurs pour lignes et colonnes.
  • Les cycles mémoire comprennent des phases d’établissement d’adresse, sélection, lecture ou écriture.
  • Les protocoles d’échange peuvent être synchrones ou asynchrones, avec des optimisations comme les accès en mode page ou en rafale.
  • Les boîtiers mémoire sont assemblés pour augmenter la taille des mots ou le nombre de mots.
  • Des bits de contrôle permettent la détection et correction d’erreurs (parité, ECC).
  • La mémoire logique est la vue du processeur, avec des conventions d’endianess et des contraintes d’alignement.
  • La segmentation découpe la mémoire en blocs avec adressage composé d’un numéro de bloc et d’un offset.
  • La mémoire virtuelle utilise la mémoire de masse pour étendre la mémoire disponible via la pagination et le swap.

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