Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Memoire Et Bus

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 36

Mémoire et bus

GIF-1001: Ordinateurs: Structure et Applications


Jean-François Lalonde
Mémoire

• Un emplacement qui contient des données.

• Organisé par cellules individuelles.

• Chaque cellule possède:


• (la même) taille: en nombre de bits.

• une adresse unique: permet de savoir à quel endroit on


veut stocker l’information.

2
Analogie #1 (mémoire): boîte aux lettres
• chaque boîte à lettres contient:
• un nombre fixe de lettres (contenu)

• un numéro (adresse)

3
Analogie #2 (mémoire): dossiers
• chaque dossier contient:
• un nombre fixe de feuilles (contenu)

• un numéro pour pouvoir le retrouver (adresse)

4
Mémoire = stockage de bits
Une case ne peut jamais
Chaque case contient un bit
être «vide»!
(0 ou 1)
Elle contient toujours 0 ou 1.

On regroupe les bits ensemble


pour former un «mot». 0 1 0 1 1 0 1 1
Ici, les mots ont 8 bits (1 octet)
1 1 1 0 1 0 0 1

0 1 0 0 1 0 0 1
Pour identifier les mots, on leur
associe une adresse, qui 0 1 0 0 1 1 0 1
correspond au numéro de
ligne dans le tableau. 0 1 1 1 1 0 0 0
Par exemple, ce mot aurait
l’adresse 4 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮
(on commence à 0).
1 1 0 1 0 0 0 1

5
Ici, l’exemple utilise 8 bits d’adresse,
Mémoire = stockage de bits et des mots de 8 bits.
Cependant, différents systèmes
peuvent avoir différentes valeurs!

On utilise un nombre
(fini et prédéterminé)
Adresse Donnée (mot de 8 bits)
de bits pour
(sur 8 bits) b7 b6 b5 b4 b3 b2 b1 b0
représenter l’adresse.
0x00 0 1 0 1 1 0 1 1

0x01 1 1 1 0 1 0 0 1

0x02 0 1 0 0 1 0 0 1

0x03 0 1 0 0 1 1 0 1

0x04 0 1 1 1 1 0 0 0

⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮

0xFF 1 1 0 1 0 0 0 1

6
Mémoire
• On décrit une mémoire grâce à deux
informations (indépendantes):
• le nombre d’adresses possibles
Données
Adresses
• ici: 28 = 256 adresses b7 b6 b5 b4 b3 b2 b1 b0
0x00 0 1 0 1 1 0 1 1
• la taille des mots de la mémoire 0x01 1 1 1 0 1 0 0 1
0x02 0 1 0 0 1 0 0 1
• ici: 8 bits (1 octet) 0x03 0 1 0 0 1 1 0 1
0x04 0 1 1 1 1 0 0 0
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮
• La taille totale de la mémoire représente 0xFF 1 1 0 1 0 0 0 1
la quantité totale de bits pouvant être
stockée dans la mémoire.
• Elle est calculée de cette façon:
taille mémoire = nombre d'adresses × taille d'un mot
= 28 × 1 octet = 256 octets
7
Rappel

Question 1 taille mémoire = nombre d'adresses × taille d'un mot


1 kilo-octet = 210 octets

Une mémoire stocke des mots de 8 bits (1 octet)


et possède 216 adresses.
Quelle est la taille totale de la mémoire en kilo-octets (Ko)?

8
Rappel

Question 1 taille mémoire = nombre d'adresses × taille d'un mot


1 kilo-octet = 210 octets

Une mémoire stocke des mots de 8 bits (1 octet)


et possède 216 adresses.
Quelle est la taille totale de la mémoire en kilo-octets (Ko)?

Taille d'un mot: 1 octet


Nombre total de mots: 216
Taille mémoire = 1 x 216  = 216 octets = 26 Ko = 64 Ko.

9
Rappel

Question 2 taille mémoire = nombre d'adresses × taille d'un mot


1 kilo-octet = 210 octets

Une mémoire stocke des mots de 16 bits (2 octets)


et nécessite 8 bits pour les adresser.
Quelle est la taille totale de la mémoire en octets?

10
Rappel

Question 2 taille mémoire = nombre d'adresses × taille d'un mot


1 kilo-octet = 210 octets

Une mémoire stocke des mots de 16 bits (2 octets)


et nécessite 8 bits pour les adresser.
Quelle est la taille totale de la mémoire en octets?

Taille d'un mot: 2 octets


Bits pour les adresses: 8 bits
Nombre d’adresses: 28 = 256

Taille mémoire = 2 x 28  = 29 octets = 512 o.

11
Rappel

Question 3 taille mémoire = nombre d'adresses × taille d'un mot


1 kilo-octet = 210 octets

Une mémoire possède une taille totale de 32 Mo


et peut stocker des mots de 32 bits.

Combien de bits a-t-on besoin pour représenter les adresses dans cette mémoire?
Quelles sont les adresses minimales et maximales de cette mémoire exprimées en hexadécimal?

12
Rappel

Question 3 taille mémoire = nombre d'adresses × taille d'un mot


1 kilo-octet = 210 octets

Une mémoire possède une taille totale de 32 Mo


et peut stocker des mots de 32 bits.

Combien de bits a-t-on besoin pour représenter les adresses dans cette mémoire?
Quelles sont les adresses minimales et maximales de cette mémoire exprimées en hexadécimal?

Taille mémoire: 32Mo


Taille d'un mot: 32 bits = 4o (octets)
Nombre total de mots = 32 Mo / 4o = 32 x 220 / 4 = 225 / 22 = 223. 
Donc, nous avons besoin de log2(223) = 23 bits pour représenter
les adresses.

Les adresses minimales et maximales sont:


minimale: 0b00000000000000000000000 (23 bits) = 0x000000
minimale: 0b11111111111111111111111 (23 bits) = 0x7FFFFF

13
Types de mémoires
• Les mémoires peuvent être:
• volatiles: perdent leur contenu lorsqu’elles perdent leur alimentation;
• ou non-volatiles: conservent leur contenu même sans alimentation.
• Les mémoires volatiles peuvent être:
• statiques: n’ont pas besoin d’être lues pour conserver leurs valeurs
• dynamiques: nécessitent un rafraîchissement de leur données de façon
périodique. Si les données d’une mémoire dynamique ne sont pas
“lues” régulièrement, elles s’effacent.
• Les mémoires
• ROM: ne peuvent pas être écrites (Read Only Memory)
• RAM: peuvent être écrites (Random Access Memory);
• Les noms sont donnés aux mémoires en fonction de ces
caractéristiques. Par exemple, SRAM est de la RAM Statique.

14
Types de mémoires

• Pour le moment, les deux types de mémoires qui


nous intéressent sont:
• ROM: ne peuvent pas être écrites (Read Only Memory)
• doivent être écrites au préalable, une fois écrite on
ne peut plus modifier leur contenu!
• RAM: peuvent être écrites (Random Access Memory);

15
Construisons un ordinateur

Adresse (8 bits) Mot (8 bits)


... ...
CPU RAM
... ...
... ...

Nous avons nos deux composantes: un CPU et une RAM.

Comment faire pour que le CPU puisse accéder à la RAM?

16
À quoi sert la mémoire?
À stocker et récupérer de l’information.
À se souvenir, pardi!
microprocesseur mémoire

stocker de l’information
(écrire)

Bite my
shiny m
etal…

récupérer de l’information
(lire)

17
À quoi sert la mémoire?
À stocker et récupérer de l’information.
À se souvenir, pardi!
microprocesseur mémoire

stocker de l’information
(écrire) 1. Quelle page?

Bite my
shiny m
etal…
2. Quels mots?

3. Stocker ou récupérer?

récupérer de l’information
(lire)

18
Bus

• Un bus est un groupe de lignes électriques qui


relie le CPU aux autres composantes.

• Chaque ligne peut transférer un bit d’information à


la fois.

19
Analogie (bus): autoroutes
• Sauf que les voitures…
• démarrent et arrivent à destination en même temps

• ne peuvent circuler que dans un sens à la fois

20
À quoi sert la mémoire?
À stocker et récupérer de l’information.

microprocesseur mémoire

stocker de l’information
(écrire)

B
1. Quelle page? 2. Quels mots? 3. Stockeriteou
myrécupérer?
shiny m
etal

récupérer de l’information
(lire)

21
1. Quelle page?
Bus d’adresses
Bus d’adresse (8 bits)

Adresse Adresse

Adresse (8 bits) Mot (8 bits)


... ...
CPU RAM
... ...
... ...

• Le bus d’adresse indique l’emplacement de la mémoire (ou des


périphériques) visé par la transaction sur le bus.

• C’est le microprocesseur qui le contrôle (place des adresses sur le bus).

• La taille du bus d’adresse (le nombre de lignes) détermine la quantité


maximum de mémoire (ou d’entrées-sorties) que le CPU peut utiliser
22
1. Quelle page?
Bus d’adresses
Bus d’adresse (8 bits)

Adresse Adresse

Adresse (8 bits) Mot (8 bits)


... ...
CPU RAM
... ...
... ...

• Le bus d’adresse indique l’emplacement de la mémoire (ou des


Combien d’adresses le CPU peut-il générer?
périphériques) visé par la transaction sur le bus.

• C’est le microprocesseur qui le contrôle (place des adresses sur le bus).

• La taille du bus d’adresse (le nombre de lignes) détermine la quantité


maximum de mémoire (ou d’entrées-sorties) que le CPU peut utiliser
23
1. Quelle page?
Bus d’adresses
Bus d’adresse (8 bits)

Adresse Adresse

Adresse (8 bits) Mot (8 bits)


... ...
CPU RAM
... ...
... ...

• Le bus d’adresse indique l’emplacement de la mémoire (ou des


Combien d’adresses le CPU peut-il générer?
périphériques) visé par la transaction sur le bus.
28 = 256 adresses
• C’est le microprocesseur qui le contrôle (place des adresses sur le bus).

• La taille du bus d’adresse (le nombre de lignes) détermine la quantité


maximum de mémoire (ou d’entrées-sorties) que le CPU peut utiliser
24
2. Quels mots?
Bus de données
Bus d’adresse (8 bits)

Adresse Adresse

Adresse (8 bits) Mot (8 bits)


Bus de données (8 bits) ... ...
CPU RAM
Données Données ... ...
... ...

• Le bus de données permet le transfert des données.

• Les données peuvent circuler dans les deux sens, mais elles ne
circulent que dans un seul sens à la fois.

• La taille du bus de données (le nombre de lignes) détermine la


grandeur maximale des mots pouvant
25 être transférés d’un coup.
2. Quels mots?
Bus de données
Bus d’adresse (8 bits)

Adresse Adresse

Adresse (8 bits) Mot (8 bits)


Bus de données (8 bits) ... ...
CPU RAM
Données Données ... ...
... ...

• Le bus de données permet le transfert des données.


Que faire si je dois écrire 2 caractères ASCII (8 bits) en mémoire?
• Les données peuvent circuler dans les deux sens, mais elles ne
circulent que dans un seul sens à la fois.

• La taille du bus de données (le nombre de lignes) détermine la


grandeur maximale des mots pouvant
26 être transférés d’un coup.
2. Quels mots?
Bus de données
Bus d’adresse (8 bits)

Adresse Adresse

Adresse (8 bits) Mot (8 bits)


Bus de données (8 bits) ... ...
CPU RAM
Données Données ... ...
... ...

• Le bus de données permet le transfert des données.


Que faire si je dois écrire 2 caractères ASCII (8 bits) en mémoire?
• Les données peuvent
Chaque caractère circuler
nécessite 8dans les
bits et le busdeux sens,
de données a 8mais
bits. elles ne
circulent que dans un seuldonc
Il faudra sens à la 2fois.
effectuer transferts
pour écrire les 2 caractères en mémoire.

• La taille du bus de données (le nombre de lignes) détermine la


grandeur maximale des mots pouvant
27 être transférés d’un coup.
3. Stocker ou récupérer?
Bus de contrôle
Bus d’adresse (8 bits)

Adresse Adresse

Adresse (8 bits) Mot (8 bits)


Bus de données (8 bits) ... ...
CPU RAM
Données Données ... ...
... ...

Bus de contrôle
Contrôle (L/E) L/E

• Le bus de contrôle contrôle l’utilisation des bus de données et d’adresse.

• Il permet de gérer la direction des données sur le bus des données


(lecture ou écriture).

• Le bus de contrôle a aussi une horloge, qui détermine la vitesse à laquelle


les données peuvent être transférées et qui synchronise les opérations
28
En résumé, 3 bus importants

Bus d’adresse (8 bits)

Adresse Adresse

Bus de données (8 bits)


CPU RAM
Données Données

Bus de contrôle
Contrôle (L/E) L/E

29
En résumé, 3 bus importants

Bus d’adresse (8 bits)


Adresse Adresse

CPU RAM
Bus de données (8 bits)
Données Données

Bus de contrôle
Contrôle (L/E) L/E

30
Lecture d’une donnée en mémoire
Adresse

Adresse (8 bits) Mot (8 bits)


Adresse
0x40 0x12
CPU RAM
L/E Données
0x41 ...
0x42 ...
Données

Contrôle (L/E)

• C’est le CPU qui initie toute action.


• Une lecture s’effectue en deux temps.

31
Lecture d’une donnée en mémoire (1/2)
Adresse

Adresse (8 bits) Mot (8 bits)


Adresse
0x40 0x12
CPU RAM
L/E Données
0x41 ...
0x42 ...
Données

Contrôle (L/E)

• Le CPU:
• place l’adresse (ex: 0x40) sur le bus d’adresses;
• active le bus de contrôle en lecture.

32
Lecture d’une donnée en mémoire (2/2)
Adresse

Adresse (8 bits) Mot (8 bits)


Adresse
0x40 0x12
CPU RAM
L/E Données
0x41 ...
0x42 ...
Données

Contrôle (L/E)

• La mémoire:
• place la donnée correspondante sur le bus de données;
• Le CPU:
• récupère la donnée (ex: 0x12) sur le bus de données (et la
place dans un registre). Nous parlerons des registres
très bientôt!
33
Écriture d’une donnée en mémoire
Adresse

Adresse (8 bits) Mot (8 bits)


Adresse
0x40 0x12
CPU RAM
L/E Données
0x41 ...
0x42 ...
Données

Contrôle (L/E)

• C’est le CPU qui initie toute action.


• Une écriture s’effectue en deux temps.

34
Écriture d’une donnée en mémoire (1/2)
Adresse

Adresse (8 bits) Mot (8 bits)


Adresse
0x40 0x12
CPU RAM
L/E Données
0x41 ...
0x42 ...
Données

Contrôle (L/E)

• Le CPU:
• place l’adresse (ex: 0x40) sur le bus d’adresses;
• la donnée à écrire (ex: 0xAB) sur le bus de données;
• active le bus de contrôle en écriture.
35
Écriture d’une donnée en mémoire (2/2)
Adresse

Adresse (8 bits) Mot (8 bits)


Adresse
0x40 0xAB
CPU RAM
L/E Données
0x41 ...
0x42 ...
Données

Contrôle (L/E)

• La mémoire:
• récupère la donnée (ex: 0xAB) sur le bus de données;
• l’écrit à l’adresse disponible sur le bus d’adresse (ex:
0x40).

36

Vous aimerez peut-être aussi