ch. 8 mémoire - uqamboukadoum_m/mic3215/ppt/8 - memory.pdf1 traduit et adapté de...

20
1 Traduit et adapté de l’anglais Traduit et adapté de sources anglaises Ch. 8 Mémoire Mounir Boukadoum Traduit et adapté de l’anglais Traduit et adapté de sources anglaises Plan Vue architecturale d’un ordinateur L’interface CPUMémoire La mémoire et les différentes technologies CPUBusE/S Protocoles de bus

Upload: others

Post on 16-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Ch. 8Mémoire

    Mounir Boukadoum

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Plan

    • Vue architecturale d’un ordinateur

    • L’interface CPU‐Mémoire 

    • La mémoire et les différentes technologies

    • CPU‐Bus‐E/S

    • Protocoles de bus

  • 2

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Architecture fondamentale d’un ordinateur 

    • CPU + mémoire + périphériques – Blocs/composants indépendants travaillant ensemble 

    sous le contrôle du processeur central – Circuits d’interconnexion (glue circuits) et protocoles 

    de communication compris de tous 

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Lignes d’interconnexions dans une carte‐mère

    • Bus système (Front Side Bus) : relie le uP au concentrateur de contrôle mémoire (MCH ou north bridge)

    • Bus graphique : relie le MCH à la carte graphique

    – Un contrôleur interne (IGE) prend le relai en utilisant la mémoire vive locale si la carte est absente

    • Bus mémoire : relie le MCH à la mémoire vive

    • Bus d’extension d’E/S : relie le concentrateur du contrôleur d’E/S (ICH ou south bridge) aux connecteurs d’E/S 

    – Ports USB , sériels, etc. 

  • 3

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Mode étendu

    CPU

    Mémoire

    Alimentation

    Port

    Horloge

    Mémoire

    Port

    Interrupt

    Interrupt

    Bus d'adresses

    Bus de données

    Bus de contrôle

    Périphérique

    Périphérique

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Interface CPU Memoire• Comprend: 

    – Bus d`adresses unidirectionnel – Bus de données bidirectionnel – Ligne de commande de lecture (“read”) – Ligne de commande d’écriture (“write”) – Ligne indicatrice d’état prêt (“ready”)  – Ligne(s) de commande indicatrice(s)

    de taille (8, 16, 32 bit) • L’accès à une adresse demande :   

    – Lecture : (1) Générer l’adresse et l’indication de taille, (2) Activer Read et copier les données si Ready ou fin de cycle 

    – Écriture:(1) Générer l’adresse et l’indication de taille, (2) Activer Write et attendre Ready ou fin de cycle 

    address bus

    data bus

    CPU MemoryRead*

    Write*

    Ready

    size

    * Peuvent être combinées en R/W* et horloge

  • 4

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Organisation hiérarchique de la mémoire• Le CPU et la mémoire n’opèrent pas à la même vitesse, à moins d’utiliser des mémoires au coût élevé!

    • L’usage d’une mémoire cache offre un compromis 

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    • Si l'information cherchée ne se trouve pas dans la cache interne (appelée L1 pour niveau 1), le CPU va chercher plus loin– la mémoire cache externe (L2, 

    quelque fois, elle est aussi interne) est plus lente, mais offre plus de capacité (jusqu’`a plusieurs Mo)

    • Dans les architeures de Harvard, l’usage d’une mémoire externe ramène l’architecture à une de Van Newman (pas de bus de données et instructions différenciés)

  • 5

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Types de mémoire• Dépendent de l’usage

    – Mémoire primaire : mémoire de travail, généralement volatile– Mémoire secondaire : mémoire de sauvegarde; non volatile

    • Variés en fonction de la taille, du format, et de la technologie– Taille : 1, 4, 8 bits– Format = capacité x taille (e.g., 1Gx1) 

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Circuits de mémoire • Puces de mémoire + 

    contrôleur d’accès• Chaque puce fournit un ou 

    plusieurs bits  par adresse – Les puces peuvent être groupées en parallèle pour obtenir 8/16/32 bits 

    • Un contrôleur décode les adresse et génères les signaux de commande

    • Exemple: – 8 puces au format 16x1, fournissant chacune 1 bit pour former une mémoire de 16x8

    address bus

    data bus

    CPU MemoryReadWriteReadySize

    1‐of‐16decoder

    1     0     1     1     0     0     1     01     0     0     0     0     0     0     1

    0    1     0     1     0     0     1     1

    address

    00000001

    1111

    Boîtiers de 16x1‐bit

    16x8‐bit memory array

    D7  D6  D5   D4   D3  D2  D1  D0

  • 6

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    La Mémoire RAM• Mémoire à semiconducteurs volatile, à base d’un effet capacitif 

    – Le contenu doit être raffraichi régulièrement 

    • Le nom RAM (Random Access Mémory) vient du fait que les mémoires étaient à accès séquentiel avant, pour des temps d’accès plus lents 

    • Puces souvent organisées en parallèle sur des barrettes de circuits imprimés au format SIMM/DIMM  (Single/Double Inline Memory Module)  

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Architecture d’implémentation d’une mémoire RAM

    • Le CPU voit la mémoire RAM comme une suite linéaire d’octets, mais  l’organisation physique des puces est matricielle– Bits individuels répartis dans une 

    matrice, auxquels on accède par rangée (« word line) et colonne (« bit line »)

  • 7

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Accès à une cellule RAM

    Bit lines

    Word lines

    • L’accès à une cellule se fait en divisant l’addess en un champs de ligne et un autre de colonne

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Accès à une RAM dynamique

    • Les broches d’adressage fournissent les coordonnées ligne/colonne séquentiellement grâce à deux lignes d’echantillonnage  

    – Exemple:  Un DRAM de 64K requiert 16 bits d’adresse (65 536= 216) mais le boitier comporte seulement 8 lignes d’adresse, plus une ligne CAS/ et une autre RAS/. 

    RAS: Row Address StrobeCAS: Column Address Strobe

  • 8

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Puce DRAM 

    • Les adresses des lignes et colonnes sont multiplexées 

    • Deux lignes CAS et RAS servent au démultiplexage (et jouent le rôle de CS)

    • Des amplificateurs détecteurs (sens amps.) détectent et amplifient les charges des cellules

    • Un compteur de rafraichissement peut exister à l`interne

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Fonctionnement d’une puce DRAM 

    4 Data bus closed for input (read)

    • Ex. d’une lecture

  • 9

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Read cycle

    n ns

    T1 T2 T3 T4 T1

    Data valid

    N ns

    Hi-Z

    Read/Write

    Dataoutput

    Clock

    RowAddress

    ColumnAddress

    RAS

    CAS

    Address

    Outputenable

    Diagramme des temps en lecture d’une DRAM

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Technologies de mémoire • DRAM: Dynamic Random Access Memory

    – Traits positifs : dense (1 transistor par bit) and peu coûteuse – Traits négatifs : demande un circuit de rafraichissement du contenu et 

    relativement lente– Commune comme mémoire primaire dand les PC

    • SRAM: Static Random Access Memory– Traits positifs : accès rapide et ne demandant pas de rafraichissement  – Traits négatifs : peu dense et relativement coûteuse  (~RAM/8)– Commune dans les systèmes embarqués et dans les mémoires caches 

    • ROM et Flash ROM: Read Only Memory– Non volatile, non inscriptible (« Masked ROM ») ou temps d’écriture 

    très grand devant le temps de lecture (« Flash »)– Commune dans les BIOS (programme de démarrage des PC) ou comme 

    mémoire secondaire (clés USB, caméras numériques, etc.) 

  • 10

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    DRAM versus SRAM

    Cellule SRAM

    • Lecture/Écriture : On active la ligne de mot et on lit/écrit dans la ligne de bit

    • Dans le cas de la DRAM, la lecture est destructive du contenu qui doit être régénéré

    Bit Line

    Word line

    Cellule DRAM

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    DRAM versus SRAM

    • Accès destructif, circuit de rafraichissement requis ! 

    • Gestion dynamique demandant plus d’énergie

    • Temps d’accès ralenti par les différentes capacités

    • Stable après accès• Gestion statique demandant seulement un courant de repos en dehors des accès

    Cellule DRAMCellule SRAM

  • 11

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Mémoire ROM à masque•Programmation à la fabrication•Non réinscriptible une fois en opération•Contenu non volatile 

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Mémoire Flash

    • À l’état effacé, les grilles sont isolées l’une de l’autre et le transistor ne conduit pas («1 »)

    • Pour programmer « 0 », deux tensions positives sont appliquées aux grilles pour trapper des électrons entre  elles (ce qui fait baisser vth)

    • L`effet persiste une fois les tensions enlevées, à moins de déloger les électrons trappés avec un champ électrique approprié (ou attendre une dizaine d’années !)

    • Contenu non volatile• Réinscriptible

  • 12

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Puces SRAM 

    • Généralement organisées en tailles de 1, 4 ou 8 bits• Possèdent une entrée de validation appelée CS ou CE• Peuvent avoir des lignes Din et Dout commune

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Diagramme des temps en lecture d’une SRAM 

    • Les lignes d’adresses et CS doivent être stables  tAA avant les données 

    • Dout fournit l`information demandée 

    2147H

    2147H High‐Speed 4096x1‐bit static RAM

    A11‐A0

    DinWE CS

    Dout

    tRC = Read cycle time tAA = Address access time tACS = Chip select access time tHZ = Chip deselections to highZ out

    old address

    highimpedance

    undef Data Valid

    tRCtAA

    tACStHz

    new addressAddressA11‐A0

    CS

    WE

    Dout

    Address Bus

  • 13

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Diagramme des temps en écriture d’une SRAM

    • Les adresses et les données doivent être stables tS avant d’activer WE/

    • Din lit les données

    2147H

    2147H High‐Speed 4096X1‐bit static RAM

    A11‐A0

    DinWE CS

    Din

    tS =  Signal setup timetRC =  Read cycle time tAA =  Address access time tACS = Chip select access time tHZ =  Chip deselections to highZ out

    old address

    old data new data

    tWCtAA

    tACStHz

    new addressAddressA11‐A0CS

    WE

    Din

    tSAddress Bus

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Augmentation de la capacité

    • On branche plusieurs boîtiers en parallèle (lignes d’adresses, de données et  R/W) en gardant les CS distincts

    • La validation de chaque CS est achevée avec les bits d’adresse non utilisés par les boîtiers (bits de poids fort).   

    • Ex. : Mémoire 16x1 avec 4 boîtiers 4x1          

    D3

    S1S0

    D2

    D1

    D0

    Decoder

    R/W

    A2A3

    A1A0

    Data In

    Data Out

    R/WCS

    A0A1 D-In

    D-Out

    R/WCS

    A0A1 D-In

    D-Out

    R/WCS

    A0A1 D-In

    D-Out

    R/WCS

    A0A1 D-In

    D-Out

  • 14

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Augmentation de la taille des mots

    • On branche plusieurs boîtiers en parallèle (lignes d’adresses, CS et  R/W) en gardant les lignes de données distinctes

    • Ex. : Mémoire 4x4‐bit avec 4 boîtiers 4x1              

    R/W

    A1A0

    Data In

    Data Out

    R/WCS

    A0A1 D-In

    D-Out

    R/WCS

    A0A1 D-In

    D-Out

    R/WCS

    A0A1 D-In

    D-Out

    R/WCS

    A0A1 D-In

    D-Out

    CS

    3 2 1 0

    3 2 1 0

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Performance  d’une mémoire DRAM• Indicateurs de performance 

    – Temps d’accès : temps requis pour lire une cellule (dépend essentiellement de la technologie des semi‐conducteurs) 

    – Temps d’accès en mode page : temps d’accès à une cellule dans le même page qu’une cellule précédemment sélectionnée (pas besoin de répéter RAS)

    – Fréquence du raffraîchissement• Technologies d’amélioration

    – Extended Data Out (EDO) : permet de charger la prochaine addresse durant l’accès en cours  

    – SDRAM : Synchronous DRAM utilise un compteur automatique pour accéder à plusieurs adresses en séquence, en synchronisation avec l’horloge du CPU

    – DDR SDRAM – Double Data Rate SDRAM permet des accès sur les deux fronts de l’horloge

  • 15

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Passage de bits àoctets

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Modules DRAM • Intègrent plusieurs boîtiers DRAM 

    pour augmenter la taille (quelquefois la capacité aussi) 

    • Se distinguent des SRAMs par le besoin pour un contrôleur qui :– Sépare le bus d’adresses en 

    adresses de rangées et de colonnes

    – Fournit les signaux RAS and CAS – Rafraichit les boîtiers à 

    intervalles réguliers– Fournit de signaux d’état (e.g., 

    mémoire active en occupée rafraichir les cellules)

  • 16

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Les différents Bus avec les mémoires : SRAM, DRAM, Mémo cache,…

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Gestion de mémoire virtuelle

    ARM

    • Utile pour allouer et gérer la mémoire dans des environnements à usagers multiples; à mémoirefragementée, ou lorsque la capacité demandée dépasse la  physique 

    • Il s’agit d’établir un lien entre les adresses utilisées (virtuelles) et les adresses physiques– Fait par un MMU (Memory Management Unit)

  • 17

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    • Le MMU (Management Memory Unit) traduit les addresses virtuelles en adresses physiques,  via un cache appelé TLB  (Translation Lookaside Buffer). – Les addresses sont groupées en pages suivant une structure en 

    tableau (page table)

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    • Technique de pagination – L’espace d’adressage physique est divisé en un ensemble de pages formant un page frame et l’espace d’adressage virtuel est fait de pages virtuelles (virtual pages)

    – Les espaces virtuel et physique communiquent via le MMU

    Gestion de  mémoire virtuelle

  • 18

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Fonctionnement du MMU          interprétation du schéma au diapo précédent 

    • L’adresse virtuelle est de 16 bits soit:0010000000000100 = 213 + 22 = 8196

    – 0010 = 4 bits utilisés pour le No de page, parmi 24 = 16 identificateurs de pages : page 0 à page 15

    – 000000000100 = 12 bits de décalage (Offset) à l’intérieur de la page : 0–(212 ‐1) 

    • On  a: index = la page virtuelle #2: code 110; P/A bit =1 (P/A signifie: présence/absence)

    • L’adresse phsyique est = No.page correspondant + Offset= 110000000000100ce qui donne: 214 + 213 + 22 = 16384+8192+4= 24580

    NB: le bit de présence (P/A bit) ne rentre pas dans le compte !!Pour avoir 16 bits dans l’adresse physique, il rajouter un ‘0’ en avant.

  • 19

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    • Le Swapping : technique de Pagination/segmentation Concept : Sauver les programmes et données de données 

    inactifs (segments) dans la mémoire secondaire pour libérer de l’espace. 

    Fonctionnement : le Swapping peut  survenir pour des processusdormant depuis longtemps, alors que le système d'exploitation a besoin d'allouer de la mémoire aux processus actifs. 

    Gestion de  mémoire virtuelle

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Le Swapping

  • 20

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises

    Segmentation vs Pagination

    • Le problème avec la segmentation est que l’unité d’allocation de mémoire (le segment) est de longueur variable

    • La pagination utilise des unités d’allocation de mémoire fixe, éliminant ce problème

    Traduit et adapté de l’anglaisTraduit et adapté de sources anglaises