En informatique, la mémoire est un dispositif électronique numérique qui sert à stocker des données. C'est un dispositif capable d'enregistrer, de conserver et de restituer des informations.
La mémoire est un composant essentiel, présent dans tous les ordinateurs, les consoles de jeux, les GPS et de nombreux appareils électroniques.
Les mémoires sont vendues sous forme de pièces détachées de matériel informatique, ou de composants électroniques. Les différences entre les pièces sont la forme, l'usage qui en est fait, la technique utilisée, la capacité de stockage et le rapport entre le coût et la capacité.
La technique la plus courante utilise des semi-conducteurs . On distingue mémoire vive, mémoire morte et mémoire de masse.
Les capacités de mémoire et la miniaturisation de ses supports ont depuis quelques décennies évolué en suivant la loi de Moore, laquelle pourrait, éventuellement, être bientôt dépassée, grâce à l'utilisation de skyrmions et d'antiskyrmions pour stabiliser les nanosystèmes spintroniques, au profit du pouvoir de traitement des ordinateursMagnetic antiparticle expands strange field of swirling science Antiskyrmion offers promise for superfast spintronic computers, Nature, 23 aout 2017, 548, 371, .Nayak A. , Magnetic antiskyrmions above room temperature in tetragonal Heusler materials, Nature Letter, vol. 548, 31 aout 2017, ..
thumb|upright|Mémoire vive pour ordinateur VAX 8600 (1986).
Organisation de l'information Les informations en mémoire sont présentes de manière binaire pour l'ordinateur. L'unité de base, le plus petit élément de stockage, est le bit. Ceux-ci sont généralement groupé par octet (parfois appelé selon le mot anglais byte), c'est-à-dire groupe de huit bits. Enfin les octets peuvent être regroupés en mots. Dans la plupart des mémoires, les informations sont classées par adresses. Une adresse est une valeur numérique référençant un élément de mémoire.
Caractéristiques
Capacité (taille) La capacité désigne le nombre d'information que peut contenir la mémoire. Elle s'exprime en nombre de mots ou d'octets.
Type d'accès Le type d'accès à la mémoire peut être séquentiel ou direct. Dans un accès séquentiel, on doit parcourir toutes les informations une à une avant d'accèder à l'information qui nous intéresse. Ce type d'accès est plus lent et on le retrouve dans des techniques comme les bandes magnétiques ou les cartes perforées. En accès direct, chaque information a une adresse propre, on y accède directement. C'est le type d'accès utilisé par la mémoire centrale de l'ordinateur. vignette|left|Schéma illustrant l'accès direct et accès séquentiel. L'accès semi-séquentiel existe également. C'est le cas de l'accès au disque-dur, qui a un accès direct au cylindre et un accès séquentiel au secteur sur un cylindre.
L'accès associatif, utilisé par la mémoire cache, caractérise une mémoire organisée par couple de valeurs. En envoyant la première valeur du couple, si celle-ci existe, la mémoire va renvoyer la seconde valeur.
Temps d'accès Le temps d'accès est un élément essentiel permettant de caractériser un type de mémoire. Il définit le temps entre le lancement d'une opération de lecture/écriture et son accomplissement.
Cycle mémoire Le cycle mémoire désigne le temps minimal entre 2 accès successifs à la mémoire. Le cycle est un temps plus important que le temps d'accès car la mémoire peut nécessiter des opérations entre deux accès (stabilisation des signaux, synchronisation ...).
Mémoire vive ou mémoire morte La propriété vive ou morte de la mémoire permet de caractériser la possibilité de modifier ou non cette mémoire.
La mémoire vive est un type de mémoire où chaque information stockée peut à tout moment être consultée, ou modifiée (voir adressage mémoire). La mémoire centrale des ordinateurs est la plupart du temps une mémoire vive volatile bien que le SSD remplisse de plus en plus souvent ce rôle ;
La mémoire morte à l'inverse est une mémoire où les informations sont écrites une fois mais ne peuvent pas être modifiées. Les mémoires mortes sont utilisées par exemple pour stocker définitivement des logiciels enfouis. La mémoire morte fournit des données invariables. Anciennement, les mémoires mortes contenaient des programmes complets « prêt à l’emploi »L'Amstrad CPC était équipé d'une ROM de sur les adressables, contenant le langage Amstrad Basic 1.1. pour un démarrage éclair. Avec l'évolution rapide des techniques, seul un système minimaliste tout juste suffisant au démarrage, le BIOS puis le UEFI, a été maintenu.
Volatilité et rémanence Un mémoire est dite volatile lorsque les informations qu'elle contient sont perdues lors de la mise hors tension de l'appareil. Il ne faut pas confondre mémoire volatile et mémoire vive : bien que la mémoire vive soit généralement volatile, il existe cependant des mémoires vives non-volatiles (NVRAM).
Par opposition, une mémoire rémanente ou non volatile est une mémoire où les informations sont conservées même après la mise hors tension de l'appareil. Les mémoires rémanentes sont utilisées pour les téléphones portables, les autoradios, les GPS, ou les appareils photo numériques. Une mémoire est dite rémanente quand l'extinction temporaire du système n'en détruit pas le contenu, comme dans le cas des téléphones portables ou des autoradios. Cette mémoire n'est pas toujours gérée comme un système de fichiers et est parfois intégrée dans le même espace logique que la mémoire vive. Ainsi, certains systèmes d'exploitation tel que VAX-11/VMS ou OpenVMS proposent un adressage virtuel, appelé VMS, dans lequel les disques durs apparaissaient comme de la mémoire vive.
Hiérarchie de mémoire
Pour des raisons économiques, les mémoires sont en général divisées en plusieurs familles traitées, la plupart du temps, différemment par le système d'exploitationLe livre Les systèmes d'exploitation des ordinateurs (Bloch Laurent, 2003) distingue quatre catégories de cout/performances croissants/décroissants| : Registres du processeur, Mémoire cache, Mémoire usage général, Mémoire de stockage.. Par ordre de coût croissant (c'est-à-dire de la plus lente à la plus rapide), on peut distinguer :
Mémoire de masse ou mémoire de stockage : mémoire non volatile, de grande capacité (plusieurs centaines de Mo à plusieurs centaines de Go), sert à stocker à long terme des grandes quantités d'informations. La mémoire de masse est très lente (temps d'accès de l'ordre de la dizaine de millisecondes pour un disque magnétique). Les techniques les plus courantes de mémoires de masse sont électromécaniques, elles visent à obtenir une capacité de stockage élevée à faible coût et ont généralement une vitesse inférieure aux autres mémoires. Les disques durs, bandes magnétiques, SSD ou CD/DVD sont des mémoires de masse ; Mémoire centrale : Mémoire vive (RAM), espace principal de stockage du microprocesseur, mais dont le contenu disparaît lors de la mise hors tension de l'ordinateur. La RAM peut être de type DRAM ou SRAM, selon qu'elle doit ou non être rafraichie périodiquement. La SRAM, qui n'a pas besoin d'être rafraîchie, est plus rapide, mais aussi plus coûteuse ; Mémoire cache : Il s'agit d'une mémoire intermédiaire entre la mémoire centrale et le processeur, de type SRAM. Elle sert à conserver un court instant des informations fréquemment consultées. Les techniques des mémoires caches visent à accélérer la vitesse des opérations de consultation. En effet, le débit de la mémoire centrale est très lent par rapport au débit requis par le processeur. En plaçant les informations en avance dans le cache, on accélère la vitesse de lecture des informations par le processeur. La mémoire de cache a une très grande vitesse, et un coût élevé pour une faible capacité de stockage ; Registre de processeur : intégré au processeur. Ce type de mémoire est très rapide (temps d'accès du même ordre de grandeur qu'un cycle de processeur) mais aussi très cher et est donc réservé à une très faible quantité de données (capacité de quelques dizaines d'octets).
Ordinateur parallèle et mémoire partagée Un ordinateur parallèle est équipé de plusieurs unités de calcul. Selon sa construction, il peut être équipé d'une seule unité de mémoire utilisée de manière commune par toutes les unités de calcul, c'est la mémoire partagée, ou chaque unité de calcul est équipée de sa propre unité de mémoire, cette configuration est dite à mémoire distribuée Chengzhong Xu et Francis C. M. Lau, Load balancing in parallel computers: theory and practice, Springer, 1997 ..
Matériel informatique thumb|Barrettes de mémoire. En 2015, les ordinateurs sont équipés de plusieurs types de mémoires, utilisées alternativement, pour des raisons de vitesse et de coût : le processeur utilise en priorité la mémoire cache, puis la mémoire vive (RAM), et enfin la mémoire de masse.
On peut trouver les mémoires sous différentes formes : Circuits intégrés La plupart des mémoires électroniques sont sous forme de circuits intégrés, ou sont directement intégrées dans les puces des processeurs ou contrôleurs (par exemple : assemblage en stacked die Electronic products - Stacked memory approach bolsters flat-panel displays, sur electronicproducts.com.). Barrettes RAM Les barrettes de mémoire sont des circuits imprimés normalisés, des formats tels SIMM ou DIMM sont largement utilisés dans les ordinateurs. Il s'agit généralement de mémoires volatiles rapides mais de relativement faible capacité. Disques durs mémoires de masse composées de disques en métal enfermés dans un boîtier blindé. Les informations sont conservées sur les surfaces magnétiques des disques. C'est un type de mémoire de masse de grande capacité encore largement utilisé en 2009 dans nos ordinateurs. Des supports novateurs voient le jour (supports flash de grande capacité, dits Solid State Drive, ou supports holographiques). Disquettes mémoires de masse composées d'un disque souple à surfaces magnétiques protégées par un étui en matière plastique. Les disquettes étaient largement utilisées jusqu'aux années 1990. Bandes magnétiques utilisées comme mémoires de masse de grande capacité depuis 1950. DAT, DLT ou LTO sont des formats de bandes magnétiques. Celles-ci ne peuvent être lues que dans un ordre donné et sont couramment utilisées pour effectuer des copies de secours des disques durs. Disques optiques supports optiques de stockage équipés d'une surface réfléchissante. Les informations sont conservées sous forme de creux microscopiques et lues par la réflexion d'un faisceau monochromatique. Les premiers disques compacts ont été construits en 1980 et les premiers DVD en 1995. Contrairement aux disques durs, les modifications des informations stockées sur ces supports sont restreintes voire impossibles (mémoires mortes), ils sont alors utilisés essentiellement pour le stockage à long terme des données informatiques. Clé USB boîtier équipé d'une mémoire flash, d'un composant électronique et d'une prise conforme à la norme USB. Les premières clés USB ont été construites au début des années 2000. Les clés USB peuvent être utilisées au même titre que les disquettes magnétiques comme support de transfert de données, de stockage à long terme, voire de mémoire de masse.
Les techniques de stockage mécaniques, par exemple par rubans perforés ont été largement utilisés dès le début de l'informatique, puis abandonnés au profit de supports plus pratiques et plus rapides.
Autres types de mémoire alt=Image de différents supports de mémoire flash.|vignette|Différentes cartes mémoire, telles qu'une carte SD, xD et CompactFlash.Mémoire flash mémoire rémanente dont le contenu peut être intégralement effacé en une seule opération. Certaines mémoires de ce type pouvaient être effacées par une exposition aux ultraviolets.