Architecture des Ordinateurs

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

LES MEMOIRES INTRODUCTION UN PEU D ’HISTOIRE LES DIFFERENTES MEMOIRES
Chap. 4 Recherche en Table
Architecture de machines Le microprocesseur
Introduction au langage C
TECHNOLOGIE DES ORDINATEURS
STATISTIQUE INFERENTIELLE L ’ESTIMATION
Informatique Deug2 Sciences Eco S. Maabout 2004/2005.
Architecture des ordinateurs
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
- ACL * Access Control List. Sommaire 1)Théorie 1)ACL standard 1)ACL étendue 1)ACL nommée 1)Mise en place et vérification des ACLs.
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Les éléments de mémorisation
Mémoire & Processus Cours SE - SRC
Les pointeurs Manipulation d'adresses et de ce qui est contenu dans ces adresses Très important, fondamental même en C mauvaise réputation : 'dur à comprendre',
Chap. 1 Structures séquentielles : listes linéaires
TRANSMISSION DES DONNEES INFORMATIQUES
Architecture de machines La mémoire
Architecture de machines La mémoire
Présentation Unité de codage
ARCHITECTURE DES ORDINATEURS
Mémoire cache ou antémémoire
Contrôle d ’Accès et Hauts Débits
SECURITE DU SYSTEME D’INFORMATION (SSI)
Structures de données linéaires
Architecture de base d’un ordinateur
Chapitre 2 : Qu’est ce qu’un atome ?
TRANSMISSION DES DONNEES.
Les mémoires :. Mémoriser Enregistrer Conserver Restituer.
Architecture des Ordinateurs
LES MEMOIRES.
Régression linéaire simple
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Sections sélectionnées du Chapitre 11
Allocation de mémoire Allocation de mémoire.
LES SYSTEMES AUTOMATISES
Les fichiers indexés (Les B-arbres)
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Hiérarchie de la mémoire
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
GIF-3002 SYSTÈMES MICRO- PROCESSEURS ET INTERFACES
Réalisé par Mr CALVO du Lycée Bon Secours à PERPIGNAN
Architecture des ordinateurs, Environnement Numérique de Travail
Informatique 1. Les applications de l’informatique
Bases de la micro informatique
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation linéaire en nombres entiers
Construction d'une hiérarchie mémoire faible consommation
Microprocesseur famille 68'000 Interface matériel
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
LES MEMOIRES.
Un programme Algorithme permettant au processeur de s'alimenter:
Architecture des ordinateurs, Environnement Numérique de Travail
Architecture et technologie des ordinateurs II
Patricia Renault UPMC 2005/2006
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Architecture et technologie des ordinateurs II
Chapitre 4 La représentation des nombres.
Chapitre 3 L’accès aux données.
Memoire.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
LES MEMOIRES et le décodage d’adresses
Les mémoires la préparation de: chaimaa hamdou.
Systèmes à microprocesseur Les mémoires
Transcription de la présentation:

Architecture des Ordinateurs La mémoire : organisation; adressage; performances et astuces : les caches

Organisation Soit une mémoire d'une capacité C donnée en octets ou ko. Plusieurs manières de l'organiser; piqûre de rappel : avec N : taille du bus d'adresse M : taille du bus de données (en bits) 8 : coefficient entre bits et octets

Organisation 1 valeur de C  plusieurs couples (M,N) exemple : C = 256 Mo 25 Meilleure répartition ?

Performance de débit mise en avant : Organisation Plusieurs critères : nombre de pistes : nombre minimal pour N maximal performance de débit : rapatrier plus de données en un échange traitement des octets : taille utilisée par beaucoup d'applications : ne correspond pas au bus ni à la cellule mémoire Performance de débit mise en avant : augmenter : taille de cellule mémoire, taille de bus de données et le bus d'adresse ?

Traitement des octets Transferts de données de 32 ou 64 bits (voire plus). Comment traiter un octet (mot de 16 bits)? Utilité de traiter un octet ? Typage de langages (char en C) fichiers texte : suite d'octets comment ranger un octet dans un mot mémoire ? 2 possibilités : petit-boutisme (little endian) gros-boutisme(big-endian)

Petit boutisme et gros boutisme Numéroter les octets à l'intérieur d'un mot mémoire  numéroter les bits à l'intérieur d'un octet !!!! Ex : mot mémoire de 32 bits= 4 octets Gros boutisme : Petit boutisme : 32 bits 1 2 3 32 bits 3 2 1

Gros boutisme 32 bits Adresse 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 1 2 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Petit boutisme 32 bits Adresse 3 2 1 7 6 5 4 11 10 9 8 15 14 13 12 1 2 1 2 3 7 6 5 4 11 10 9 8 15 14 13 12

Exemples de stockage de données À partir du langage C type : long int : 4 octets = 1 mot mémoire. Valeur à stocker = 7. Sur 4 octets : (on indique le contenu) 00 00 00 07 Stockage direct dans un mot mémoire : pas de problème de petit ou gros boutisme.

Exemples de stockage de données À partir du langage C type : char : 1 octet. Valeur à stocker = 18. Sur 1 octets : (on indique le contenu) 18 Stockage dans un octet : problème de petit ou gros boutisme ! Ne sera pas stocké au même endroit du mot mémoire

Exemples de stockage de données À partir du langage C type : char : 1 octet. Valeur à stocker = 18. 18 Gros boutisme Petit boutisme 18 ?? ?? ?? ?? ?? ?? 18 Idem pour chaîne de caractères, suite d'octets.

Exemples de stockage de données À partir du langage C type : char []. Valeurs à stocker = 'B' 'o' 'n' 'j' 'o' 'u' 'r' Gros boutisme Petit boutisme 'B' 'o' 'n' 'j' 'j' 'n' 'o' 'B' 'o' 'u' 'r' ?? ?? 'r' 'u' 'o' Rangement dans l'ordre des numéros d'octets

Exemples de stockage de données Types de taille intermédiaire (exemple, short int occupant 16 bits). Gros boutisme Petit boutisme 1ère donnée 16 bits 2ème donnée 16 bits 2ème donnée 16 bits 1ère donnée 16 bits

Exemples de stockage de données À partir du langage C type : complexe, contenant des données de types différents (char et long int par exemple). Stockage cohérent dans une machine, mais problème de transmission ! Transmettre des octets : problème d'ordre pour les données occupant plus d'un octet en mémoire Transmettre des mots mémoire : les machines ont-elles des tailles de cellule mémoire équivalent ? Problème d'ordre pour les octets ! Chaque machine doit connaître le type de représentation de l'autre !

Alignement Transfert de données de différentes tailles possibles (compatibilité C et autres langages)

Culture générale RAM : Random Access Memory, a accès aléatoire (non séquentiel) SRAM : Static RAM DRAM : Dynamic RAM FPM RAM : Fast Page Mode : lecture en mode bloc EDO RAM (Extended Data Out) : moins de rafraîchissements BEDO RAM : Burst ou Block EDO SDRAM : Synchronous DRAM : entrelacée DDR SDRAM: Dual Data Rate SDRAM QDR SDRAM : Quad Data Rate SDRAM http://www.webreference.com/graphics/column14/index.html

Hiérarchie de la mémoire Différents types de mémoire : performances différentes caractéristiques différentes mais constat général : Plus une mémoire est rapide; plus elle est chère ! Plus une mémoire est volumineuse, plus elle est lente, donc plus elle est économique (prix au ko)

Bande magnétique (DAT,DLT) Pyramide de la mémoire économique qqs octets rapide registres volatile 512 Mo RAM 80 Go Disques durs Persistante 10 Go CD / DVD Bande magnétique (DAT,DLT) 300 Go 100 To Systèmes complets d'archivage (robots)

RAM / CPU RAM rapide, mais pas assez pour le processeur ! Ex : processeur à 2 GHz : peut traiter une donnée tous les : 0,5 ns ! Mémoire répond en quelques nanosecondes, le plus souvent 20 ns : facteur 40 ! Comment accélérer le traitement ? Utiliser les registres le plus possible ? Oui, en assembleur, mais aucune maîtrise sinon (compilateur). Utiliser une mémoire plus rapide ? Plus cher, mais pourquoi ? Rapidité  proximité proximité  intégration !

RAM / CPU A propos de proximité : en 0,5 ns, quelle distance l peut être parcourue par un signal ? Au plus rapide : vitesse de la lumière c = 3.108 m.s-1 t = 0,5 ns = 5.10-10 s l = c. t = 0,15 m idéal : intégrer la RAM au support de processeur trop cher car soucis d'intégration ! Compromis : mémoire moyennement rapide et moyennement proche du CPU : mémoire cache.

Bande magnétique (DAT,DLT) Pyramide de la mémoire économique qqs octets rapide registres 512 ko CACHE 512 Mo RAM 80 Go Disques durs 10 Go CD / DVD Bande magnétique (DAT,DLT) 300 Go 100 To Systèmes complets d'archivage (robots)

(on ne traite que la mémoire physique, pas la virtuelle) Principe du cache Objectif : améliorer les performances de la machine. Notations : tglob = temps d'accès à une donnée tm = temps d'accès à la mémoire tc = temps d'accès au cache Cm = capacité de la mémoire Cc = capacité du cache sans utiliser de cache, on a : tglob = tm (on ne traite que la mémoire physique, pas la virtuelle)

Principe du cache Comment utiliser le cache ? a) comme de la mémoire supplémentaire ? Dans ce cas, que vaut tglob? La capacité totale de la mémoire accessible (cache+RAM) est de Cc+Cm. Statistiquement, sur un grand nombre d'accès mémoire : répartition au hasard. En pourcentage : Pc = Cc/(Cc+Cm) d'accès au cache Pm =Cm/(Cc+Cm) d'accès à la RAM

Principe du cache D'où tglob = Pc.tc+Pm.tm Aucun intérêt ! Application numérique Cm = 256 Mo, tm = 40 ns Cc= 256 ko, tc = 8 ns on a alors Pc = 9,7.10-4 et Pm = 0,999 d'où tglob = 39,97 ns. Gain = 0,03 ns... CACHE CPU RAM

Principe du cache b) comme de la mémoire 'simulant' la RAM le processeur adresse une certaine quantité de mémoire Cm, mais ce n'est pas forcément la mémoire qui possède cette information. Le cache peut en avoir une copie, auquel cas il répond à la place de la mémoire. Beaucoup plus intéressant ! RAM CPU CACHE

Principe du cache Illusion d'une mémoire très rapide de grande capacité. Quelle information va transmettre le CPU pour accéder à une donnée en RAM ? son ADRESSE. Cette adresse va d'abord être présentée au cache : s'il possède la donnée correspondante : il la transmet au CPU SUCCES ou CACHE HIT sinon : la donnée est en mémoire, il faut la faire transiter depuis la RAM ECHEC ou CACHE MISS

Principe du cache Le contenu du cache est dynamique : comment évolue-t-il ? Cas possibles : action demandée, réponse du cache demande de lecture, HIT : pas de mise à jour. demande de lecture, MISS : donnée cherchée en RAM, recopiée dans le cache, éventuellement remplacement d'une donnée plus ancienne.

Principe du cache demande d'écriture, c'est le CPU qui fournit la valeur : attention à la cohérence entre le cache et la RAM ! La RAM reste la référence : écriture en RAM de la valeur comportement du cache : écriture de cette valeur ? Intéressant si la donnée se trouve déjà dans le cache ! Plus simple : invalider la donnée si elle se trouve dans le cache (ne nécessite pas de mettre à jour le cache)

Le passionné de lecture  CPU Illustration Analogie avec un libraire et un fournisseur. Un passionné de lecture veut obtenir un nouveau livre : il peut s'adresser à un fournisseur qui les possède quasiment tous, mais il faut dans ce cas faire une commande, le délai est d'une semaine. A côté de chez lui se trouve une (petite) librairie, qui contient des livres que l'on trouve aussi chez le fournisseur. Le passionné de lecture  CPU Le fournisseur  RAM La librairie  cache

Illustration Le passionné se rend systématiquement à la librairie pour obtenir un livre : si la librairie dispose du livre : elle en donne une copie sinon : la librairie passe commande auprès du fournisseur elle reçoit le livre au bout du délai normal mais elle ne peut stocker qu'un nombre limité de livres donc il faut libérer une place en 'jetant' un autre livre. De même pour le lecteur : il ne dispose que de peu de place : il doit libérer de la place dans sa bibliothèque au fur et à mesure

Performance du cache Efficacité ? On peut calculer tglob 2 deux manières : 1) lorsqu'il y a HIT, le temps d'accès à la donnée est tc. Lorsqu'il y a MISS, le temps d'accès est : tc+tm HIT ou MISS ? : accès au cache ! Soit h le taux de HIT : 0  h  1 (h = nombre de HITS/nombre d'accès total) le taux de MISS est alors : 1-h tglob = h.tc+(1-h)(tc+tm)

Performance du cache 2) Dans tous les cas, un accès au cache (temps tc) est fait, puis : s'il y a HIT : on ne fait rien s'il y a MISS : on doit accéder à la mémoire : temps tm avec un taux 1-h. d'où tglob = tc + (1-h).tm quelle est la meilleure formule ?

Calcul de performance Illustration avec données numériques données précédentes : tm = 40 ns, tc = 8 ns, Cm = 256 Mo, Cc=256 ko. Comment évaluer h ? Même hypothèse que pour le cas a) : le cache contient des données aléatoires. Dans ce cas, quel est le taux h de réponse par un HIT à une demande quelconque du CPU ? h = Cc/Cm=1/1024 1-h = 1023/1024 on considère que h=0

Calcul de performance D'où le résultat : tglob = tm+tc = 48 ns > tm !!! Ajouter un cache diminue les performances du système ! Performance liée à la valeur de h, qu'il faut rendre maximum ! Comment améliorer h ? optimiser h  maximiser le nombre de HIT lors des demandes Donc : ne pas remplir le cache au hasard ! Anticiper les accès.

Calcul de performance Utiliser des règles de remplacement de valeurs ou de mise à jour du cache : règles empiriques et non purement théoriques : amélioration des performances non prévisible au mieux, mais en moyenne. Exemple de telles règles : localité spatiale : lorsqu'un programme accède à une certaine adresse, il est probable qu'il accède à des adresses proches de celle-ci : transfert de plusieurs données dans le cache lors d'un MISS localité temporelle : lorsqu'un programme accède à une certaine adresse, il est probable qu'il y accède de nouveau peu de temps après : éliminer les données les plus anciennes d'abord (LRU)

Implémentation des caches 2 grandes familles : les caches associatifs : chaque emplacement du cache contient une association adresse/donnée les caches à correspondance directe : chaque emplacement du cache ne correspond qu'à un nombre restreint d'adresses en réalité, on utilise un compromis entre les deux !

Cache associatif Comparable à un tableau indexé : illustration Cache adresse donnée V 1 emplacement de cache Cache (N emplacements)

Mise en œuvre CPU MISS lecture, @$1000 $0 ???????? $0 ???????? $0 $0 ???????? $0 ???????? $0 ???????? lecture, @$1000 bus d'@ CPU $0 ???????? $0 ???????? MISS

Mise en œuvre On suppose qu'en RAM, à l'@ $1000, on trouve la valeur $12345678 1 $1000 $12345678 $0 ???????? $0 ???????? lecture, @$1000 bus d'@ CPU $0 ???????? $0 ???????? RAM $12345678

Mise en œuvre Politique de remplacement des valeurs : exemple précédent : tous les emplacements équivalents (cache vide) problème lorsque le cache est rempli de données valides ! Choisir la donnée à effacer; car en cas de MISS sur une lecture, on copie systématiquement la donnée provenant de la RAM dans le cache (principe de localité temporelle). Technique LRU : "vieillissement" des emplacements lorsqu'ils ne sont plus utilisées : comptage du nombre d'accès ne les concernant pas. Lors du remplacement : suppression d'un emplacement "le moins récemment utilisé" : LRU (Least Recently Used)

Autres exemples (I) Mise en œuvre avec des lectures ? ? ? $C08 CPU ! $AF0084 $00FF00A5 $1FA4C502 1 $00000000 $C08 $FFFFFFFF $20000 $65636700 $86E2 $01005A ? ? ? $C08 CPU bus d'@ ! MISS

Autres exemples (II) Mise en œuvre HIT ? ! $86E2 CPU $AF0084 $00FF00A5 $1FA4C502 1 $00000000 $C08 $FFFFFFFF $20000 $65636700 $86E2 $01005A ? ! $86E2 CPU bus d'@

Autres exemples (III) Mise en œuvre ? ? ? $020E CPU ? ? MISS $AF0084 $00FF00A5 $1FA4C502 1 $00000000 $C08 $FFFFFFFF $20000 $65636700 $86E2 $01005A ? ? ? $020E CPU bus d'@ ? ? MISS

Cache à correspondance directe Problème de recherche, les adresses ne sont pas classées ! "classement" des adresses : à une adresse ne peut correspondre qu'un emplacement précis du cache; bien évidemment, à un emplacement précis du cache peuvent correspondre plusieurs adresses. Technique : utiliser une partie de l'adresse (codée sur p bits) fournie par le CPU pour déterminer l'emplacement du cache à tester. Utilisation de q bits de poids faible de l'adresse.

Cache à correspondance directe Soit un cache comportant N emplacements et tel que N soit une puissance entière de 2 :  q  N / N=2q. (ce cas est toujours vérifié en pratique). Les q derniers bits d'une adresse codée sur p bits indiquent le numéro de l'emplacement du cache correspondant à l'adresse demandée. adresse codée sur p=16 bits 000001010011100101110111 0110101011000110 CPU bus d'@ cache à 8=23 emplacements

Cache à correspondance directe Toute adresse demandée se terminant par '110' indiquera le même emplacement du cache. Combien de telles adresses ? 2(p-q) traiter les informations dans le cache : s'assurer la donnée présente à cet emplacement correspond à celle qui se trouve en RAM à l'adresse demandée. Ne pas consulter la RAM ! La valeur des p-q bits de poids fort forment un TAG (empreinte).

Cache à correspondance directe TAG stocké dans le cache et utilisé pour comparaison avec l'adresse demandée. Structure de cache : V TAG DATA 1 emplacement de cache à correspondance directe V : bit de validité TAG : p-q bits de l'adresse correspondant à la donnée stockée dans la zone DATA.

Mise en œuvre Cache initialement vide, p=16, q=4 (d'où N=16) CPU = lecture, @ 101000111010 1110 N=2q CPU bus d'@ = 1) déterminer l'emplacement 2) comparer le TAG stocké dans le cache et le reste de l'adresse

Mise en œuvre Cache initialement vide, p=16, q=4 (d'où N=16) CPU = lecture, @ 101000111010 1110 N=2q CPU bus d'@ = HIT/MISS 3) si les TAGS sont égaux : HIT si le bit V est à 1, MISS sinon

Mise en œuvre On obtient forcément MISS puisque le cache est vide ! On suppose de plus qu'à l'adresse demandée se trouve la donnée $9ABCDEF0. 1 lecture, @ 101000111010 1110 CPU bus d'@ $9ABCDEF0 101000111010 $9ABCDEF0 RAM

Phénomène de ping-pong Accès alternés à deux adresses ayant les mêmes q bits de poids faible : même emplacement dans le cache ! Ex : adresses 1000 1101 1011 0111 et 0100 1000 1110 0111 lecture à la première adresse : MISS, donc chargement en cache de cette donnée et du TAG. Lecture à la deuxième adresse : consultation du cache à l'emplacement précédent : MISS, donc chargement en cache de donnée et TAG; et ainsi de suite Alors qu'il peut y avoir N-1 emplacements libres !

Lignes de cache Comment profiter de la localité spatiale des données ? Transfert de plusieurs données lors d'une écriture en cache pas dans plusieurs emplacements : trop long ! Un emplacement comporte plus qu'une donnée : une ligne de cache stockage du contenu de 4 ou 8 adresses consécutives, et adressage à l'intérieur de cette ligne

Lignes de cache Illustration avec cache à correspondance directe : nouveau découpage de l'adresse pour accéder à la donnée. On suppose que l'adresse fournie par le CPU est codée sur p bits. p bits TAG index SHAM q bits r bits (p-q-r) bits Index : indique l'emplacement du cache à consulter SHAM : SHift AMount : indique le numéro de la donnée dans la ligne de cache.

Mise en œuvre Structure du cache (avec une ligne de cache de 4 données): TAG V DATA 0 DATA 1 DATA 2 DATA 3 N emplacements TAG V DATA 0 DATA 1 DATA 2 DATA 3 Contient 4.N données

Mise en œuvre Exemple : p = 12 , q = 4, r = 2. N = 24 = 16 emplacements de cache; r = 2  4 données par ligne. Le CPU fait deux demandes : lecture, @ $FE0 (en binaire 111111 1000 00) lecture, @ $FE2 (en binaire 111111 1000 10) TAG SHAM index Première demande : MISS, chargement du TAG (111111) et de 4 données à l'emplacement 1000 du cache. Deuxième demande : même emplacement, même TAG  HIT

Mise en œuvre État après : lecture, @ $FE0. Demande : lecture, @ $FE2 111111 1000 11 TAG V DATA 0 DATA 1 DATA 2 DATA 3 111111 1 données 1 = HIT MUX

Cache associatif par 2/4/8 Avantages et inconvénients des types de cache : cache associatif temps de recherche de l'adresse une donnée peut être placée n'importe où cache à correspondance directe pas de recherche de l'emplacement une donnée est stockée à un endroit précis : effet ping-pong

Cache associatif par 2/4/8 Profiter des avantages des deux types de cache : utiliser plusieurs caches à correspondance directe (2,4 ou 8) lors d'une demande : obtention de plusieurs données, mais la donnée correcte est la seule accompagnée d'un HIT de la part du cache à correspondance directe associé. Rapide, efficace, effet ping-pong maîtrisé (effet tournant sur 3,5 ou 9 adresses au lieu de 2)

Caches à plusieurs niveaux Compromis coût/performances : plus le cache a une capacité élevée, plus il est efficace, plus il est cher…même problème qu'avec la RAM : plusieurs niveaux ex des caches L1 et L2 séparation cache de données / caches d'instruction pour augmenter l'efficacité : Inutile de consulter un cache global : le découpage instructions/données enfreint le principe de localité spatiale, valable localement pour les donnée ou pour les instructions. Cache L1 ou interne : petite capacité, très rapide Cache L2 ou externe : capacité moyenne, éloigné de la puce

Adressage : matrices Facilité d'intégration : utilisation sous la forme d'une matrice comportant lignes et colonnes : 1 bit (ou une cellule mémoire) associée à un numéro de ligne (ROW) et un numéro de colonne (COLumn). L'adresse envoyée sur le bus d'adresse est en fait constituée de deux parties : une partie CAS (Column Address Strobe) et une partie RAS (Row Address Strobe). Possibilité de lecture par bloc en précisant la valeur de RAS puis en envoyant des valeurs successives de CAS ! Plusieurs manières de réaliser cela.

Adressage : matrices On présente volontiers la mémoire sous forme 'linéaire' (cf l'excellent cours d'archi des microprocesseurs  ). Représentée sous forme de bascules : vrai pour les mémoires dites statiques (SRAM). Mais en réalité, plus sophistiqué : bascule : dispositif complexe par rapport aux échelles d'intégration actuelles (gravures en 0,1 micron soit 10-7 m, 1000 fois le  d'un atome) on préfère un seul transistor ou condensateur : mémoire dynamique DRAM moins chère mais doit être rafraîchie : ralentissement.