Doud_
19/09/2006, 21h07
Les Mémoires
Ayant repris les cours d'info, j'ai eu un poly sur les différentes mémoires, que j'ai trouvé fort intéressant.
Ajout d'informations complémentaires!
427
I) Mémoire Vive
La mémoire vive (RAM) est utilisable pour écrire ou lire des informations. Elle constitue la plus grande partie de la mémoire principale d'un ordinateur.
On peut réaliser des mémoires RAM avec deux technologies différentes :
- RAM dynamiques (DRAM)
- RAM statiques (SRAM)
1) Les mémoires vives dynamiques (DRAM) :
On utilise ce type de mémoire car peu coûteux. Les boitiers de mémoires dynamique enferment une pastille de silicium sur laquelle sont intégrées un très grand nombre de cellules binaires.
Chaque cellules binaires est réalisée à partir d'un transistor relié à un condensateur. L'état chargé ou déchargé di condensateur permet de distinguer les deux états (bit 0 ou 1).
L'incinvéniant de cette technique simple est que le condensateur se décharge seul au cours du temps (courant de fuite). Il est donc necessaire de rafraîchir tous les condensateurs du boitier périodiquement (environ 1000 fois par seconde).
2) Les mémoires vives statiques (SRAM) :
Les mémoires statiques n'utilisent pas de condensateurs : chaque celleule binaire est réalisée à l'aide de 4 transistors formant un bistable (circuit restant dans un état 0 ou 1 tant qu'il est alimenté électriquement).
Les SRAM permettent des temps d'accès plus court que les DRAM, mais sont plus coûteuses car leur fabrication deamande 4 fois plus de transistors que les DRAM. On les utilises lorsque l'on souhaite maximiser les performances, par exemple pour construire les mémoires caches.
II) Mémoires Mortes
Ces mémoires ne sont normalement accessibles qu'en lecture. On distingue différents types de circuits de mémoires mortes.
1) ROM :
C'est un circuit intégré dont le contenu est déterminé une fois pour toute au moment de la fabrication. Le coût relativement élevé de leur fabrication impose une production en grandes séries, ce qui complique la mise à jour de leur contenu.
Au départ, ces mémoires étaient utilisées pour stocker les parties bas-niveau du système d'exploitation de l'ordinateur (BIOS par exemple).
[U]2) PROM :
A la différence de la ROM qui est enregistrée de manière définitive lors de la fabrication, la PROM (Programmable ROM) est configuré par l'utilisateur à l'aide d'un programmeur de PROM, utilisé pour enregistrer son contenu.
La PROM ne peut être modifiée par la suite.
3) EPROM :
Les mémoires EPROM (Erasable PROM) sont des PROM reconfigurable. Il est donc possible de les effacer pour les reprogrammer.
L'effacement se fait par une exposition à un fort rayonnement ultraviolet (UV). Pour cela, le boitier est percé d'une fenêtre transparente permettant l'exposition du circuit intégré.
L'opération d'effacement necessite de retirer l'EPROM de son supprt et entraîne sont immobilisation pendant environ 30 minutes.
4) EEPROM :
L'EEPROM (Electricical Erasable PROM) a le même principe qu'une EPROM, mais l'effacement se fait à l'aide de signaux électriques. (Plus pratique et rapide!)
5) Flash EPROM :
Les mémoires FLASH sont semblables aux EEPROM, mais l'effacement peut se faire par sélection par blocs, et ne nécessite pas le démontage du circuit.
Le temps d'écriture d'un bloc de mémoire FLASH est beaucoup plus grand que celui d'écriture d'une mémoire RAM, mais du même ordre que celui un disque dur.
L'accès en lecture à une EEPROM est à peu près aussi rapide qu'une DRAM. On utilise donc parfois des cartes de mémoires FLASH comme mémoire secondaires, par exemple pour les ordinateurs portables.
II) Mémoires Caches
1) Hierarchie mémoire :
Les différents types de mémoires primaires et secondaires que nous venons de voir est caractérisé par un temps d'accès et une capacité caractéristique. (Plus on s'éloigne du processeur, plus la capacité et le temps d'accès augmentent.
Nous avons supposé que presque chaque instruction du processeur effectuait un accès, en lecture ou en écriture à la mémoire principale. Si c'était réellement le cas, le processeur passerait la majeure partie de son temps à attendre les accès mémoire, et n'utiliserait pas pleinement ses capacitées!
2) Principe des mémoires caches :
On peut aisément pallier au problème cité ci-dessus en intercalant entre le processeur et la mémoire principale un circuit de mémoire statique, plus rapide que la mémoire dynamique, mais de plus petite taille.
On va essayer de garder dans cette memoire les informations normalement en mémoire principale dont le processeur se sert le plus souvent à un instant donné!
Lors d'un accès par le processeur à un mot en mémoire, deux cas peuvent se présenter :
- Le mot est présent dans le cache. Comme il est plus rapide, il envoie la donnée demandée sur le bus de données;
- Le mot n'est pas présent dans le cache. L'accès mémoire se déroule normalement et le cache peut en profiter pour copier la donnée afin d'en disposer la prochaine fois.
3) Efficacité d'un cache : principe de localité :
L'utilisation d'une mémoire cache n'est efficace que s'il arrive fréquemment qu'un mot demandé par le processeur se trouve déjà en dans le cache.
Comme nous l'avons vu, une donnée entre dans le cache lorsqu'elle était lue en mémoire principale. Le premier accès à une données est donc lent, mais les suivants à la même adresse seront logiquement plus rapide.
On constate donc que plus le programme fait des accès mémoires variés, moins le cache sera efficace.
Nous savons que le processeur effectue deux types d'accès mémoires :
- Lecture des instructions.
- Lecture (ou écriture) des données.
Les accès aux instructions sont toujours différents, sauf lorsque le programme effectue des répétitions (boucles), ce qui se produit en fait assez fréquemment. Tout comme les accès aux variables.
0n appelle donc localité d'un programme sa tendance à effectuer des accès mémoires répétés, cette tendance augment le gain de vitesse apporté par le cache.
4) Autres aspects :
La gestion des caches est très importante pour les performances des ordinateurs modernes.
Les processeurs récents possèdent des caches intégrés et utilise en utilise souvent 2 :
- un pour les données.
- un pour les instructions.
A l'extérieur du processeur, on trouve un autre cahce de niveau 2, dit "externe".
Notons enfin que la même problématique se retrouve pour la gestion des accès aux mémoires secondaires : la différence de vitesse entre les mémoires vives et les disques durs rend l'utilisation d'un cache encore plus avantageuse (avec malheureusement des accès aux mémoires secondaires se répétant moins que ceux de la mémoire principale).
Voilà, merci de m'avoir lu, et j'espère que ça intéressera du monde :)
Ayant repris les cours d'info, j'ai eu un poly sur les différentes mémoires, que j'ai trouvé fort intéressant.
Ajout d'informations complémentaires!
427
I) Mémoire Vive
La mémoire vive (RAM) est utilisable pour écrire ou lire des informations. Elle constitue la plus grande partie de la mémoire principale d'un ordinateur.
On peut réaliser des mémoires RAM avec deux technologies différentes :
- RAM dynamiques (DRAM)
- RAM statiques (SRAM)
1) Les mémoires vives dynamiques (DRAM) :
On utilise ce type de mémoire car peu coûteux. Les boitiers de mémoires dynamique enferment une pastille de silicium sur laquelle sont intégrées un très grand nombre de cellules binaires.
Chaque cellules binaires est réalisée à partir d'un transistor relié à un condensateur. L'état chargé ou déchargé di condensateur permet de distinguer les deux états (bit 0 ou 1).
L'incinvéniant de cette technique simple est que le condensateur se décharge seul au cours du temps (courant de fuite). Il est donc necessaire de rafraîchir tous les condensateurs du boitier périodiquement (environ 1000 fois par seconde).
2) Les mémoires vives statiques (SRAM) :
Les mémoires statiques n'utilisent pas de condensateurs : chaque celleule binaire est réalisée à l'aide de 4 transistors formant un bistable (circuit restant dans un état 0 ou 1 tant qu'il est alimenté électriquement).
Les SRAM permettent des temps d'accès plus court que les DRAM, mais sont plus coûteuses car leur fabrication deamande 4 fois plus de transistors que les DRAM. On les utilises lorsque l'on souhaite maximiser les performances, par exemple pour construire les mémoires caches.
II) Mémoires Mortes
Ces mémoires ne sont normalement accessibles qu'en lecture. On distingue différents types de circuits de mémoires mortes.
1) ROM :
C'est un circuit intégré dont le contenu est déterminé une fois pour toute au moment de la fabrication. Le coût relativement élevé de leur fabrication impose une production en grandes séries, ce qui complique la mise à jour de leur contenu.
Au départ, ces mémoires étaient utilisées pour stocker les parties bas-niveau du système d'exploitation de l'ordinateur (BIOS par exemple).
[U]2) PROM :
A la différence de la ROM qui est enregistrée de manière définitive lors de la fabrication, la PROM (Programmable ROM) est configuré par l'utilisateur à l'aide d'un programmeur de PROM, utilisé pour enregistrer son contenu.
La PROM ne peut être modifiée par la suite.
3) EPROM :
Les mémoires EPROM (Erasable PROM) sont des PROM reconfigurable. Il est donc possible de les effacer pour les reprogrammer.
L'effacement se fait par une exposition à un fort rayonnement ultraviolet (UV). Pour cela, le boitier est percé d'une fenêtre transparente permettant l'exposition du circuit intégré.
L'opération d'effacement necessite de retirer l'EPROM de son supprt et entraîne sont immobilisation pendant environ 30 minutes.
4) EEPROM :
L'EEPROM (Electricical Erasable PROM) a le même principe qu'une EPROM, mais l'effacement se fait à l'aide de signaux électriques. (Plus pratique et rapide!)
5) Flash EPROM :
Les mémoires FLASH sont semblables aux EEPROM, mais l'effacement peut se faire par sélection par blocs, et ne nécessite pas le démontage du circuit.
Le temps d'écriture d'un bloc de mémoire FLASH est beaucoup plus grand que celui d'écriture d'une mémoire RAM, mais du même ordre que celui un disque dur.
L'accès en lecture à une EEPROM est à peu près aussi rapide qu'une DRAM. On utilise donc parfois des cartes de mémoires FLASH comme mémoire secondaires, par exemple pour les ordinateurs portables.
II) Mémoires Caches
1) Hierarchie mémoire :
Les différents types de mémoires primaires et secondaires que nous venons de voir est caractérisé par un temps d'accès et une capacité caractéristique. (Plus on s'éloigne du processeur, plus la capacité et le temps d'accès augmentent.
Nous avons supposé que presque chaque instruction du processeur effectuait un accès, en lecture ou en écriture à la mémoire principale. Si c'était réellement le cas, le processeur passerait la majeure partie de son temps à attendre les accès mémoire, et n'utiliserait pas pleinement ses capacitées!
2) Principe des mémoires caches :
On peut aisément pallier au problème cité ci-dessus en intercalant entre le processeur et la mémoire principale un circuit de mémoire statique, plus rapide que la mémoire dynamique, mais de plus petite taille.
On va essayer de garder dans cette memoire les informations normalement en mémoire principale dont le processeur se sert le plus souvent à un instant donné!
Lors d'un accès par le processeur à un mot en mémoire, deux cas peuvent se présenter :
- Le mot est présent dans le cache. Comme il est plus rapide, il envoie la donnée demandée sur le bus de données;
- Le mot n'est pas présent dans le cache. L'accès mémoire se déroule normalement et le cache peut en profiter pour copier la donnée afin d'en disposer la prochaine fois.
3) Efficacité d'un cache : principe de localité :
L'utilisation d'une mémoire cache n'est efficace que s'il arrive fréquemment qu'un mot demandé par le processeur se trouve déjà en dans le cache.
Comme nous l'avons vu, une donnée entre dans le cache lorsqu'elle était lue en mémoire principale. Le premier accès à une données est donc lent, mais les suivants à la même adresse seront logiquement plus rapide.
On constate donc que plus le programme fait des accès mémoires variés, moins le cache sera efficace.
Nous savons que le processeur effectue deux types d'accès mémoires :
- Lecture des instructions.
- Lecture (ou écriture) des données.
Les accès aux instructions sont toujours différents, sauf lorsque le programme effectue des répétitions (boucles), ce qui se produit en fait assez fréquemment. Tout comme les accès aux variables.
0n appelle donc localité d'un programme sa tendance à effectuer des accès mémoires répétés, cette tendance augment le gain de vitesse apporté par le cache.
4) Autres aspects :
La gestion des caches est très importante pour les performances des ordinateurs modernes.
Les processeurs récents possèdent des caches intégrés et utilise en utilise souvent 2 :
- un pour les données.
- un pour les instructions.
A l'extérieur du processeur, on trouve un autre cahce de niveau 2, dit "externe".
Notons enfin que la même problématique se retrouve pour la gestion des accès aux mémoires secondaires : la différence de vitesse entre les mémoires vives et les disques durs rend l'utilisation d'un cache encore plus avantageuse (avec malheureusement des accès aux mémoires secondaires se répétant moins que ceux de la mémoire principale).
Voilà, merci de m'avoir lu, et j'espère que ça intéressera du monde :)