3. Introduction sur les mémoires RAM 3.1 Introduction 3.2 Déroulement des opération de lecture et d’écriture 17 3.3 Capacité d’une MC 18 3.4 Conception d’une mémoire centrale 18 3.5 Partage de la mémoire centrale 20 3.6 Mémoires vives RAM 23 3.7 Static RAM 24 3.8 Cellule mémoire SRAM 25 3.9 Dynamic RAM 27 3.10 Organisation 29 Dans les premiers ordinateurs, la forme la plus courante de stockage à accès aléatoire pour la mémoire principale de l’ordinateur utilisait un réseau de boucles ferromagnétiques en forme de beignets, appelées tores. Par conséquent, la mémoire principale était souvent appelée tore, un terme qui persiste encore aujourd’hui. L’avènement de la microélectronique, et les avantages qu’elle procure, ont depuis longtemps fait disparaı̂tre la mémoire à tore magnétique. Aujourd’hui, l’utilisation de puces à semi-conducteurs pour la mémoire principale est presque universelle. Les principaux aspects de cette technologie sont examinés dans ce Chapitre. 3.1 Introduction Dans les premiers ordinateurs, la forme la plus courante de stockage à accès aléatoire pour la mémoire principale de l’ordinateur utilisait un réseau de boucles ferromagnétiques en forme de beignets, appelées tores. Par conséquent, la mémoire principale était souvent appelée tore, un terme qui persiste encore aujourd’hui. L’avènement de la microélectronique, et les avantages qu’elle procure, ont depuis longtemps fait disparaı̂tre la mémoire à tore magnétique. Aujourd’hui, l’utilisation de puces à semi-conducteurs pour la mémoire principale est presque universelle. Les principaux aspects de cette technologie sont examinés dans ce Chapitre. 15 15 16 3.1. Introduction Figure 3.1: Diagramme d’une mémoire à tores magnétiques de 4 x 4 bits X0 X1 X2 Z X3 S Y0 Y1 Y2 Y3 Figure 3.2: mémoire à tores magnétiques 3.1.1 Structure générale de la mémoire centrale La mémoire centrale est formée de trois composantes : 1. La logique d’adressage des mots : elle permet de retrouver l’emplacement d’un mot en memoire, à l’aide de son adresse. Elle est composée : • RAM (Registre Adresse Mémoire) pour contenir l’adresse de mot. • Décodeur : Une logique de décodage des adresses 2. Les circuits de stockages : c’est un ensemble de cellules mémoires capables de stocker l’information. 3. La logique d’entrée /sortie : elle est composée : • Un registre RIM (Registre Information Mémoire) qui stocke l’information lue ou à écrire 17 Chapter 3. Introduction sur les mémoires RAM • Des circuits d’entrée/sortie Figure 3.3: Structure générale de la mémoire centrale Bus de commande Décodeur Bus d'adresse RAM } Logique d'adressage Logique de stockage Amplificateur de lecture/écriture } Logique d'entrée/sortie RIM Bus de données 3.1.2 Les bus de la mémoire centrale La communication avec les autres organes du calculateur se fait à l’aide de trois types de signaux. Ces signaux sont véhiculés par des lignes regroupées en bus. On distingue trois principaux bus : 1. Le bus d’adresses :Il regroupe toutes les lignes d’adresse nécessaires à la sélection du boitier mémoire et du mot à lire ou à écrire. Puisqu’il ne véhicule que des adresses, il est unidirectionnel. Il est formé de M fils permettant l’aacès à 2M mots mémoire. 2. Le bus de données : Il véhicule les données en lecture ou en écriture. Il est birectionnel puisqu’il doit véhiculer les données en lecture ou en écriture. 3. Le bus de commandes : Il comprend généralement les signaux de lecture/écriture. R/W ou W E 3.2 Déroulement des opération de lecture et d’écriture 3.2.1 Opération de lecture dans une mémoire centrale 1. L’unité centrale commence par charger, dans le RAM, l’adresse en mémoire du mot à lire. 2. Elle lance la commande de lecture à destination de la mémoire. 3. L’information est, au bout d’un délai égal au temps d’accès, placée dans le RIM d’où l’unité centrale peut alors la récupérer. 18 3.3. Capacité d’une MC 3.2.2 Opération d’écriture dans une mémoire centrale Pour une opération d’écriture, les étapes suivantes sont nécessaires : 1. Charger dans le RAM l’adresse du mot ou se fera l’écriture. 2. Placer dans le RIM l’information à écrire. 3. Il ne reste plus alors à l’unité centrale qu’à lancer une commande d’écriture qui aura pour effet de transférer l’information contenue dans le RIM vers le mot en mémoire centrale. 3.3 Capacité d’une MC Si on considère que k est la taille du bus d’adresses ( taille du registre RAM) et n la taille du bus de données ( taille du registre RIM ou la taille d’un mot mémoire ). Alors, on peut exprimer la capacité de la mémoire centrale soit en nombre de mots mémoire ou en bits. La capacite = 2k Mots memoire La capacite = 2k ∗ n bits 3.4 (3.1) Conception d’une mémoire centrale Lors de la conception d’un circuit mémoire, on peut être confronté au problème suivant : On veut construire une mémoire M de taille m X n (m mots de n bits), mais nous disposons que des circuits mémoires M’de capacité m’ x n’ et de taille inférieure à la mémoire M. Figure 3.4: Conception de circuits mémoire à l’aide de composants standards M' m' M m n' n Solution Une approche générale consiste à construire un réseau P X Q où : • P est le facteur d’extension de mot est égale P=[m/m’] • Q est le facteur d’extension de bit est égale Q=[n/n’] Pour sélectionner les composants on utilise les bits de poids forts d’adresses. Si P est le facteur d’extension lignes alors on prend k bits tel que P = 2k . Les autres bits d’adresses restants sont utilisés pour sélectionner un mot dans un composant. 19 Chapter 3. Introduction sur les mémoires RAM Exemple 3.1 Réaliser une mémoire de 1024 octets ( la taille d’un mot est de 8 bits) en utilisant des composants mémoires de taille 256 mots de 8 bits ? Solution R/W CS 8 bits D70 D70 CS A98 D70 CS D70 CS A70 8 bits D70 Exemple 3.2 On veut réaliser une mémoire de 1K mots( la taille d’un mot est de 16 bits) en utilisant des composants de taille 1K mots de 4 bits ) ? D150 R/W CS D1512 CS D118 CS CS D74 D30 A 09 9 bits 16 bits 20 3.5. Partage de la mémoire centrale Exemple 3.3 On veut réaliser une mémoire de 1K mots ( la taille d’un mot est de 16 bits) en utilisant des composants de taille 256 mots de 8 bits ) ? R/W CS CS CS CS A 9 16 bits D7 0 D158 D150 8 D7 0 D158 CS D7 0 D158 CS A70 8 bits D158 3.5 Partage de la mémoire centrale 3.5.1 Architecture mono-processeur CS CS D7 0 Dans une architecture mono processeur : • Le processeur à l’exclusivité d’accéder à la mémoire. • Le rendement de l’UC n’est conditionné que par le temps d’accès à la MC. • Une mémoire lente pénalise le rendement de l’unité centrale. 3.5.2 Architecture multiprocesseur Dans une architecture multiprocesseur : • Plusieurs processeurs qui fonctionnent en parallèle ( en même temps ), • Il est possible que deux processeurs ou plus demandent simultanément l’accès à la mémoire. • Si la mémoire est structurée en un seul bloc alors un processeur peut monopoliser la MC. • Ceci peut engendrer un temps d’attente important pour les autres processeurs à la mémoire et un effondrement du rendement de l’UC 21 Chapter 3. Introduction sur les mémoires RAM Figure 3.5: Mémoire partagée entre plusieurs processeurs Mémoire centrale Processeur1 3.5.3 Processeur2 Processeur3 Solution 01 : Partager de la mémoire centrale en plusieurs modules Découpage modulaire de la mémoire centrale • Plusieurs bus permettent d’accéder simultanément (en même temps) à la MC. • Possible d’avoir autant d’accès que de modules. • On ne peut pas accéder simultanément à un module. Figure 3.6: Mémoire partagée en plusieurs modules Module1 Module2 Processeur1 3.5.4 Processeur2 Module3 Processeur3 Solution 01 : Sélection d’un mot dans une architecture modulaire L’adresse de la mémoire centrale est scindée en deux parties : • Les bits de poids forts permettent la sélection d’un module. • Les bits de poids faibles utilisés pour sélectionner un mot dans un module. 22 Décodeur 3.5. Partage de la mémoire centrale 0 ... 2p p Module 0 Module 1 Module 2 p-1 2p-1 3p-1 Bus de données Bus d'adresse dans le module Numéro du module 3.5.5 adresse du mot dans le module Solution 01 : Réalisation d’une architecture modulaire Exemple 3.4 (Exemple) Réaliser une mémoire de capacité 512 mots de 8 bits découpée Décodeur en 04 modules. 128 CS 256 CS 384 CS Module 0 Module 1 Module 2 Module 3 127 255 383 511 0 CS Bus de données A 87 Numéro du module 3.5.6 A 60 D0 7 Bus d'adresse dans le module adresse du mot dans le module Solution 01 : Inconvénient de l’architecture modulaire Un module peut être monopolisé par un seul processeur lors de l’execution d’un programme. 3.5.7 Solution 02 : Entrelacer les adresses de la mémoire centrale Découpage de la mémoire centrale en Blocs • La mémoire est divisée en plusieurs Blocs • les adresses consécutive ne sont pas placées dans le même bloc. • les adresses consécutive sont placées dans des bloc consécutifs • Le nombre de blocs représente le degré d’entrelacement. 0 3 Bloc 0 3p 1 4 2 5 Bloc 1 Bloc 2 3p+1 3p+2 23 Chapter 3. Introduction sur les mémoires RAM Solution 02 : Sélectionner un mot dans une MC entrelacée L’adresse de la mémoire centrale est scindée en deux parties : • Les bits de poids faibles permettent la sélection d’un bloc. • Les bits de poids forts utilisés pour sélectionner un mot dans un module. Adresse du mot dans le bloc Décodeur Numéro du bloc 0 1 2 Bloc 0 Bloc 1 Bloc 2 p-1 p p+1 ... Bus de données Bus d'adresse dans le bloc Exemple 3.5 Exemple Réaliser une mémoire de capacité 256 mots de 8 bits avec un degré d’entrelacement de 4. A2 Numéro du bloc 7 A 01 Décodeur Adresse du mot dans le bloc 0 1 2 3 Bloc 0 Bloc 1 Bloc 2 Bloc 2 252 253 254 255 Bus d'adresse dans le bloc D0 7 Solution 02 : Inconvénient d’une MC entrelacée Ce type de mémoire présente un inconvénient, si une panne survient dans un bloc, elle rend la totalité de la mémoire inutilisable vu que les programmes sont répartis sur l’ensemble des blocs de la mémoire. La solution est de diviser la mémoire en plusieurs modules à l’interieur desquels les adresses sont entrelacées (le module partagé en blocs). 3.6 Mémoires vives RAM RAM (Random Access Memory). Il s’agit de la mémoire la plus classique de l’ordinateur (aussi appelée ” mémoire vive ”). Elle constitue la grande majorité de la mémoire principale. Les mémoires vives peuvent être accessibles en lecture et écriture. Elles sont connues sous le terme générique de RAM (Random Access Memory) littéralement ”mémoire à accès aléatoire 24 3.7. Static RAM ” parce que l’on peut accéder à n’importe quel emplacement de la mémoire – et non pas parce qu’on y accède au hasard ! L’inconvénient des mémoires vives est en principe leur volatilité, une coupure de courant faisant disparaı̂tre l’information. L’initialisation et les modifications de l’information se font grâce au courant électrique. La technologie de la RAM se divise en deux technologies : dynamique et statique. 3.6.1 Les caractéristiques de la RAM Les mémoires vives RAM présentent les caractéristiques suivantes : • Ce sont des mémoires sur lesquelles les opérations de lecture et d’écriture sont possibles. • Ce sont les mémoires dites RAM (Random Access Memory), où le temps d’accès est indépendant de la place de l’information dans la mémoire. • Elles sont volatiles et le risque de perte d’informations est non négligeable (microcoupures de l’alimentation). • Le temps d’accès est très faible (mémoire rapide) et la consommation électrique est faible. • Elles sont essentiellement utilisées en tant que mémoire centrale et mémoires caches. 3.7 Static RAM Définition 3.1 (Définition d’une SRAM) Les informations sont mémorisées par des bascules et elles sont conservées tant que l’alimentation est présente. Ces mémoires sont rapides, mais de capacité limitée. 25 Chapter 3. Introduction sur les mémoires RAM 3.8 Cellule mémoire SRAM La principale différence entre les mémoires SRAM et DRAM tient à la maniéré dont leurs cellules binaires sont construites. Comme le montre la figure 3.7, les cellules binaires de SRAM sont constituées de deux inverseurs montés tête bêche. Une fois q’une valeur a été placée dans la cellule binaire, la structure en anneau des deux inverseurs permet de conserver indéfiniment la valeur, parce que l’entrée de chaque inverseur est l’opposée de celle de l’autre. Voilà pourquoi les SRAM sont appelées RAM statique. wordline Q Q bitcell bitline bitline Figure 3.7: Cellule binaire d’une SRAM Une cellule mémoire est réalisée par l’usage de la technologie MOS (Métal Oxyde Silicium)). Un inverseur en technologie MOS, exploite deux transistors comme le montre la figure 3.8a. Donc la cellule mémoire SRAM, nécessite en total 04 transistors (voir Figure 3.8b). Ligne de mot VSS Vcc M5 M4 M6 E E G :Grille S : Source D : Drain M2 G S M1 D VDD (a) Un inverseur en MOS Ligne de bit M3 Ligne de bit (b) Cellule mémoire SRAM en MOS Figure 3.8: Cellule mémoire SRAM en MOS 26 3.8. Cellule mémoire SRAM 3.8.1 Représentation logique d’une mémoire SRAM m0 R0 m1 R1 Bus d'adresses 19 bits Bus de Données 08 bits mi Ri m219-1i R Ecriture CS 3.8.2 219-1 Lecture R/W Représentation symbolique d’une mémoire SRAM Figure 3.9: Représentation symbolique d’une mémoire SRAM Bus d'adresse SRAM @ CS 3.8.3 D Bus de données R/W Comment calculer le débit d’une RAM ? Définition 3.2 Debit = f requence de la memoire ∗ taille Data bus (3.2) 27 Chapter 3. Introduction sur les mémoires RAM 3.8.4 Opérations de lecture et d’écriture dans une cellule SRAM Opération de lecture Si désir réaliser une opération de lecture ou écriture dans une cellule SRAM, il faut tout d’abord la sélectionner à partir de fil de mot qui ’est connecté à deux transistors qui joue le rôle de deux intercepteurs. -Lors de lecture une tension donnée est présente sur le fil de mot qui rend les deux transistors de sélection passant M6 et M5 (voir Figure 3.10). -le contenu de la cellule est récupéré dans le fil de bit. Figure 3.10: Lecture d’une cellule SRAM Ligne de mot Vcc M5 M2 M1 Ligne de bit M4 M6 M3 Ligne de bit Opération de lecture -Pour effectuer une opération d’ecriture, une tension adaptée (par exemple 5volts pour coder un ”1” et 0 volt pour coder le ”0”) est d’abord positionné sur le fil de bit. Le cellule est ensuite sélectionnée comme pour une opération de lecture.L’etat présent sur les fils de bits est alors mémorisé dés que le cellule n’est plus sélectionnée. 3.9 Dynamic RAM 28 3.9. Dynamic RAM Définition 3.3 Définition d’une DRAM Les informations sont mémorisées par des condensateurs. Il faut procéder à un rafraı̂chissement périodique à cause des courants de fuites. Ces mémoires disposent d’une plus grande capacité, mais elles sont plus lentes. La DRAM nécessite un rafraı̂chissement toutes les 2 à 4 ms. (certaines même à 16 ms) Ceci est dû au mécanisme de stockage. Les données sont stockées sous forme de charge sur un condensateur. Ce condensateur n’est pas parfait, c’est-à-dire qu’il se décharge au fil du temps via le transistor d’accès. Le rafraı̂chissement se fait automatiquement lors d’une lecture ou d’une écriture. Des circuits internes se chargent de rafraı̂chir les cellules qui ne sont pas accédées pendant cet intervalle. 3.9.1 Cellule binaire d’une DRAM Au lieu d’une paire d’inverseurs, c’est cette fois un condensateur qu’est utilisé pour stocker les données, Chaque inverseur requiert deux transistors pour un total de six transistors dans la cellule binaire. A la différence, une cellule binaire DRAM ne requiert qu’un seul transistor et un seul condensateur,comme le montre la figure 3.11, ce qui prend moins de place sur la puce. Figure 3.11: Cellule binaire d’une DRAM Ligne de bit Ligne de mot Condensateur Ligne de bit Ligne de mot Condensateur Comparateur 3.9.2 Opérations de lecture et écritures dans les DRAM Pour effectuer une opération de lecture, le condensateur est déchargé dans la ligne de bit lors la cellule est sélectionnée. Chapter 3. Introduction sur les mémoires RAM 29 L’infomation est alors comparée à une référence pour déterminer sa valeur binaire. En effet, la lecture décharge les condensateurs (elle est destructive) donc une opération de réécriture nécessaire après cette dernière. Pour effectuer une opération d’écriture, l’information est d’abord placée sur la ligne de bit. la cellule est ensuite sélectionnée à travers la ligne de mot. Le transistor devient passant, permettant la charge de condensateur (écriture d’un ”1”) ou sa décharge (écriture d’un ”0”) selon la tension présente sur la ligne de mot. 3.9.3 Rafraı̂chissement de DRAM Les DRAM sont appelées RAM dynamiques parce que les valeurs stockées dans chaque cellule binaire ne sont pas stables. Au bout d’un certain temps, la déperdition de courant amènera la décharge stockée dans le condensateur à s’épuiser. Pour éviter que le contenu d’une DRAM ne se perde, la mémoire doit être rafraı̂chie. L’opération de rafraı̂chissement consiste à lire le contenu de chaque cellule binaire dans une rangée de la matrice de cellule binaire, puis à écrire la même valeur à nouveau dans les cellules afin de les ramener à la valeur d’origine. L’une des spécifications que doivent indiquer les puces DRAM est leur temps de rafraı̂chissement, qui indique la durée pendant laquelle une rangée peut n’être pas rafraı̂chie sans risquer de perdre son contenu. 3.10 Organisation L’élément de base d’une mémoire à semi-conducteurs est la cellule de mémoire. Bien qu’une variété de technologies électroniques soient utilisées, toutes les cellules de mémoire à semiconducteurs partagent certaines propriétés : • Elles présentent deux états stables (ou semistables), qui peuvent être utilisés pour représenter les 1 et 0 binaires. • Elles sont capables d’être écrites (au moins une fois), pour fixer leur état. • Elles sont capables d’être lues pour détecter leur état. On distingue trois modes de rafraichissement afin d’éviter le conflit d’accès simultané à la mémoire centrale entre l’unité centrale et la logique de rafraichissement utilisée : Rafraichissement groupé : Dans ce mode, la priorité est accordée à la logique de rafraichissement. L’unité centrale ne peut pas accédée avant que le contenu de toutes les cellules ne soient régénérées. Rafraichissement transparent : Dans ce mode, la priorité est donnée à l’unité centrale. Le rafraichissement est effectué pendant les périodes ou l’unité centrale n’accède pas à la mémoire centrale. Rafraichissement par vol de cycle(Cycle Steal Refresh) : le cycle de rafraichissement est divisé en plusieurs laps de temps égaux. Durant chaque laps de temps, une seule ligne à la fois est rafraichie. Donc l’accès à la mémoire centrale par l’unité centrales, s’effectue entra deux opérations de rafraichissements successives. 3.10.1 SRAM versus DRAM Les RAM statiques et dynamiques sont toutes deux volatiles, c’est-à-dire que la mémoire doit être alimentée en permanence pour préserver la valeur des bits. 30 3.10. Organisation Une cellule de mémoire dynamique est plus simple et plus petite qu’une cellule de mémoire statique. Ainsi, une DRAM est plus dense (cellules plus petites = plus de cellules par unité de surface) et moins chère qu’une SRAM correspondante. En revanche, une DRAM nécessite un circuit de rafraı̂chissement. Pour les mémoires plus grandes, le coût fixe du circuit de rafraı̂chissement est plus que compensé par le coût variable plus faible des cellules DRAM. Ainsi, les DRAM ont tendance à être privilégiées pour les besoins de mémoire importants. Un dernier point est que les SRAM sont un peu plus rapides que les DRAM. En raison de ces caractéristiques relatives, la SRAM est utilisée pour la mémoire cache (à la fois sur et hors puce), et la DRAM pour la mémoire principale. Chapter 3. Introduction sur les mémoires RAM archi.bib 31