Répétition 6 - Université de Liège

Transcription

Répétition 6 - Université de Liège
Organisation des ordinateurs
Répétition 6
11 avril 2016
Université de Liège
Rappel théorique
Une mémoire
• p lignes d’adressage a0 ...ap−1
permettant de choisir une
cellule de mémoire
3
Une mémoire
• p lignes d’adressage a0 ...ap−1
permettant de choisir une
cellule de mémoire
• n lignes d’entrée/sorties
d0 ...dn−1 permettant de
lire/écrire une valeur
3
Une mémoire
• p lignes d’adressage a0 ...ap−1
permettant de choisir une
cellule de mémoire
• n lignes d’entrée/sorties
d0 ...dn−1 permettant de
lire/écrire une valeur
• des lignes de contrôle
permettant de spécifier la
prochaine opération (lecture,
écriture, pas d’opération)
3
Combinaison de composants mémoire
Augmentation de la taille de cellule
5
Augmentation de la taille de cellule
• On connecte les lignes
d’adressage, de contrôle, et
d’horloge des composants
individuels.
5
Augmentation de la taille de cellule
• On connecte les lignes
d’adressage, de contrôle, et
d’horloge des composants
individuels.
• On juxtapose les lignes
d’entrée/sortie des
différentes composants
5
Augmentation de la capacité de la mémoire
6
Augmentation de la capacité de la mémoire
• On connecte les lignes
d’adressage, d’entrée/sortie,
et d’horloge des composants
individuels.
6
Augmentation de la capacité de la mémoire
• On connecte les lignes
d’adressage, d’entrée/sortie,
et d’horloge des composants
individuels.
• On crée un certain nombre
de lignes d’adressage
supplémentaires tels qu’on
peut identifier sans
ambiguïté chacun des
composants individuels
6
Augmentation de la capacité de la mémoire
• On construit un circuit
combinatoire dont les
entrées sont :
• les entrées de contrôle du
circuit mémoire composite
• les lignes d’adressage
ajoutées
• Les sorties de ce ciruit son
connectées aux entrées de
contrôle de chaque circuit
mémoire individule
7
Exemple de contrôleur de mémoire vive
• Imaginons que chaque
composant mémoire possède
les deux lignes de contrôle
suivantes :
8
Exemple de contrôleur de mémoire vive
• Imaginons que chaque
composant mémoire possède
les deux lignes de contrôle
suivantes :
• Une ligne CS (Chip Select)
qui permet de spécifier si le
composant doit effectuer
une opération (valeur 0) ou
bien doit rester inactif
(valeur 1)
8
Exemple de contrôleur de mémoire vive
• Imaginons que chaque
composant mémoire possède
les deux lignes de contrôle
suivantes :
• Une ligne CS (Chip Select)
qui permet de spécifier si le
composant doit effectuer
une opération (valeur 0) ou
bien doit rester inactif
(valeur 1)
• Une ligne WE (Write Enable)
qui sert à préciser si
l’opération souhaitée est
une écriture (valeur 0) ou
une lecture (valeur 1)
8
Exemple de contrôleur de mémoire vive
• Imaginons que chaque
composant mémoire possède
les deux lignes de contrôle
suivantes :
• Une ligne CS (Chip Select)
qui permet de spécifier si le
composant doit effectuer
une opération (valeur 0) ou
bien doit rester inactif
(valeur 1)
• Une ligne WE (Write Enable)
qui sert à préciser si
l’opération souhaitée est
une écriture (valeur 0) ou
une lecture (valeur 1)
• On obtient la figure suivante.
8
Exercice 1
Exercice 1
On possède des composants électroniques de type ROM 64K × 16, à
partir desquels on souhaite construire une ROM 256K × 32.
10
Exercice 1
On possède des composants électroniques de type ROM 64K × 16, à
partir desquels on souhaite construire une ROM 256K × 32.
• (a) Combien de composants ROM 64K × 16 seront-ils
nécessaires ?
10
Exercice 1
On possède des composants électroniques de type ROM 64K × 16, à
partir desquels on souhaite construire une ROM 256K × 32.
• (a) Combien de composants ROM 64K × 16 seront-ils
nécessaires ?
• (256K × 32) ÷ (64K × 16) = 8
10
Exercice 1
On possède des composants électroniques de type ROM 64K × 16, à
partir desquels on souhaite construire une ROM 256K × 32.
• (a) Combien de composants ROM 64K × 16 seront-ils
nécessaires ?
• (256K × 32) ÷ (64K × 16) = 8
• (b) Quelle sera la capacité, en octets, de cette nouvelle ROM ?
10
Exercice 1
On possède des composants électroniques de type ROM 64K × 16, à
partir desquels on souhaite construire une ROM 256K × 32.
• (a) Combien de composants ROM 64K × 16 seront-ils
nécessaires ?
• (256K × 32) ÷ (64K × 16) = 8
• (b) Quelle sera la capacité, en octets, de cette nouvelle ROM ?
• Un octet vaut 8 bits donc on a
256K × 32 ÷ 8 = 256 × 1024 × 4 = 1048576 octets.
10
Exercice 1
• (c) Les composants ROM 64K × 16 possèdent chacun une ligne
CS (Chip Select) qui permet de spécifier si le composant doit
effectuer une opération (valeur 0) ou bien doit rester inactif
(valeur 1). On demande de construire un circuit de contrôle
possédant en entrée cette ligne CS, et adapté à la mémoire
composite.
11
Exercice 1
• (c) Les composants ROM 64K × 16 possèdent chacun une ligne
CS (Chip Select) qui permet de spécifier si le composant doit
effectuer une opération (valeur 0) ou bien doit rester inactif
(valeur 1). On demande de construire un circuit de contrôle
possédant en entrée cette ligne CS, et adapté à la mémoire
composite.
• Numérotons les composants 64K × 16 de 0 à 7 et désignons par
CS0 , CS1 , . . . , CS7 leurs lignes d’activation.
11
Exercice 1
• (c) Les composants ROM 64K × 16 possèdent chacun une ligne
CS (Chip Select) qui permet de spécifier si le composant doit
effectuer une opération (valeur 0) ou bien doit rester inactif
(valeur 1). On demande de construire un circuit de contrôle
possédant en entrée cette ligne CS, et adapté à la mémoire
composite.
• Numérotons les composants 64K × 16 de 0 à 7 et désignons par
CS0 , CS1 , . . . , CS7 leurs lignes d’activation.
• log2 (64K) étant égal à 6, on relie les 16 lignes de poids faible (a0
à a15 ) aux lignes d’adressage des composants 64K × 16.
11
Exercice 1
• Les 16 sorties des composants 0, 1, 2 et 3 sont reliées pour
former les 16 bits de poids faible des cellules mémoires de 32
bits.
12
Exercice 1
• Les 16 sorties des composants 0, 1, 2 et 3 sont reliées pour
former les 16 bits de poids faible des cellules mémoires de 32
bits.
• De même, les sorties des composants 4, 5, 6 et 7 sont reliées
pour former les 16 bits de poids fort.
12
Exercice 1
• Si l’on décide que le premier
quart de la mémoire 256K ×
32 est géré par les
composants 0 et 4, le second
quart par les composants 1 et
5, le troisième quart par les
composants 2 et 6 et enfin le
dernier quart par les
composants 3 et 7, on a :
13
Exercice 1
• Si l’on décide que le premier
quart de la mémoire 256K ×
32 est géré par les
composants 0 et 4, le second
quart par les composants 1 et
5, le troisième quart par les
composants 2 et 6 et enfin le
dernier quart par les
composants 3 et 7, on a :
•
CS0 = CS4 = CS + a17 + a16
CS1 = CS5 = CS + a17 + a16
CS2 = CS6 = CS + a17 + a16
CS3 = CS7 = CS + a17 + a16
13
Exercice 1
• Si l’on décide que le premier
quart de la mémoire 256K ×
32 est géré par les
composants 0 et 4, le second
quart par les composants 1 et
5, le troisième quart par les
composants 2 et 6 et enfin le
dernier quart par les
composants 3 et 7, on a :
•
CS0 = CS4 = CS + a17 + a16
CS1 = CS5 = CS + a17 + a16
CS2 = CS6 = CS + a17 + a16
CS3 = CS7 = CS + a17 + a16
13
Exercice 2
• Réaliser un circuit capable de comparer le contenu de deux
mémoires ROM 4 × 4. En d’autres termes, si les cellules situées à
une même adresse dans les deux mémoires possèdent des
contenus différents, le circuit doit le signaler, et fournir cette
adresse.
14
Exercice 2
• Réaliser un circuit capable de comparer le contenu de deux
mémoires ROM 4 × 4. En d’autres termes, si les cellules situées à
une même adresse dans les deux mémoires possèdent des
contenus différents, le circuit doit le signaler, et fournir cette
adresse.
• Il faut parcourir le contenu de chaque adresse successivement.
14
Exercice 2
• Réaliser un circuit capable de comparer le contenu de deux
mémoires ROM 4 × 4. En d’autres termes, si les cellules situées à
une même adresse dans les deux mémoires possèdent des
contenus différents, le circuit doit le signaler, et fournir cette
adresse.
• Il faut parcourir le contenu de chaque adresse successivement.
• Puisqu’il y a 4 adresses différentes, il faut donc log2 (4) = 2 bits
de mémoire pour retenir l’adresse en cours.
14
Exercice 2
• Réaliser un circuit capable de comparer le contenu de deux
mémoires ROM 4 × 4. En d’autres termes, si les cellules situées à
une même adresse dans les deux mémoires possèdent des
contenus différents, le circuit doit le signaler, et fournir cette
adresse.
• Il faut parcourir le contenu de chaque adresse successivement.
• Puisqu’il y a 4 adresses différentes, il faut donc log2 (4) = 2 bits
de mémoire pour retenir l’adresse en cours.
• L’entrée i du circuit sera la sortie d’un circuit combinatoire
comparant si le contenu de deux cellules est différent. Si c’est le
cas, la sortie de ce circuit vaudra 1.
14
Exercice 2
• Réaliser un circuit capable de comparer le contenu de deux
mémoires ROM 4 × 4. En d’autres termes, si les cellules situées à
une même adresse dans les deux mémoires possèdent des
contenus différents, le circuit doit le signaler, et fournir cette
adresse.
• Il faut parcourir le contenu de chaque adresse successivement.
• Puisqu’il y a 4 adresses différentes, il faut donc log2 (4) = 2 bits
de mémoire pour retenir l’adresse en cours.
• L’entrée i du circuit sera la sortie d’un circuit combinatoire
comparant si le contenu de deux cellules est différent. Si c’est le
cas, la sortie de ce circuit vaudra 1.
• Soient e0 , e1 , e2 , e3 les sorties de la première ROM et f0 , f1 , f2 , f3 ,
celles de la seconde.
14
Exercice 2
• Réaliser un circuit capable de comparer le contenu de deux
mémoires ROM 4 × 4. En d’autres termes, si les cellules situées à
une même adresse dans les deux mémoires possèdent des
contenus différents, le circuit doit le signaler, et fournir cette
adresse.
• Il faut parcourir le contenu de chaque adresse successivement.
• Puisqu’il y a 4 adresses différentes, il faut donc log2 (4) = 2 bits
de mémoire pour retenir l’adresse en cours.
• L’entrée i du circuit sera la sortie d’un circuit combinatoire
comparant si le contenu de deux cellules est différent. Si c’est le
cas, la sortie de ce circuit vaudra 1.
• Soient e0 , e1 , e2 , e3 les sorties de la première ROM et f0 , f1 , f2 , f3 ,
celles de la seconde.
• On a alors
i(e0 , e1 , e2 , e3 , f0 , f1 , f2 , f3 ) = (e0 ⊕ f0 ) + (e1 ⊕ f1 ) + (e2 ⊕ f2 ) + (e3 ⊕ f3 )
14
Exercice 2
Exercice 2
i
0
0
0
0
1
1
1
1
q0
0
0
1
1
0
0
1
1
q1
0
1
0
1
0
1
0
1
d0
d1
16
Exercice 2
i
0
0
0
0
1
1
1
1
q0
0
0
1
1
0
0
1
1
q1
0
1
0
1
0
1
0
1
d0
0
d1
1
16
Exercice 2
i
0
0
0
0
1
1
1
1
q0
0
0
1
1
0
0
1
1
q1
0
1
0
1
0
1
0
1
d0
0
1
d1
1
0
16
Exercice 2
i
0
0
0
0
1
1
1
1
q0
0
0
1
1
0
0
1
1
q1
0
1
0
1
0
1
0
1
d0
0
1
1
d1
1
0
1
16
Exercice 2
i
0
0
0
0
1
1
1
1
q0
0
0
1
1
0
0
1
1
q1
0
1
0
1
0
1
0
1
d0
0
1
1
0
d1
1
0
1
0
16
Exercice 2
i
0
0
0
0
1
1
1
1
q0
0
0
1
1
0
0
1
1
q1
0
1
0
1
0
1
0
1
d0
0
1
1
0
0
0
1
1
d1
1
0
1
0
0
1
0
1
16
Exercice 2
i
0
0
0
0
1
1
1
1
q0
0
0
1
1
0
0
1
1
q1
0
1
0
1
0
1
0
1
d0
0
1
1
0
0
0
1
1
d1
1
0
1
0
0
1
0
1
d0 (q0 , q1 , i) = i • (q0 ⊕ q1 ) + i • q0
d1 (q0 , q1 , i) = i • q1
16
Exercice 2
i
0
0
0
0
1
1
1
1
q0
0
0
1
1
0
0
1
1
q1
0
1
0
1
0
1
0
1
d0
0
1
1
0
0
0
1
1
d1
1
0
1
0
0
1
0
1
d0 (q0 , q1 , i) = i • (q0 ⊕ q1 ) + i • q0
d1 (q0 , q1 , i) = i • q1
16
Exercice 3
Exercice 3
• Une mémoire ROM 256 × 8 est utilisée afin de modifier la casse
d’un caractère codé en ASCII : L’encodage sur 7 bits du caractère
à transformer fournit les 7 bits de poids faible de l’adresse alors
que le 8 ème bit d’adresse détermine le sens de la conversion
(0 pour minuscule vers majuscule, et 1 pour majuscule vers
minuscule). Le contenu des cellules de la ROM fournit le code
du caractère transformé (le bit de poids fort est toujours à 0).
Quel contenu faut il attribuer aux cellules de la ROM afin
d’implémenter cette fonctionnalité ?
18
Exercice 3
Le code ASCII de ’A’ est 0x41 et celui de ’a’ est 0x61.
Adresse (a)
0x00 à 0x40
0x41 à 0x5A
0x5B à 0x60
0x61 à 0x7A
0x7B à 0x7F
0x80 à 0xC0
0xC1 à 0xDA
0xDB à 0xE0
0xE1 à 0xFA
0xFB à 0xFF
Contenu
a (pas une lettre)
a (majuscule vers majuscule)
a (pas une lettre)
a - 0x20 (minuscule vers majuscule)
a (pas une lettre)
a - 0x80 (0b10000000) (pas une lettre)
a - 0x80 + 0x20 = a - 0x60 (majuscule vers minuscule)
a - 0x80 (pas une lettre)
a - 0x80 (minuscule vers minuscule)
a - 0x80 (pas une lettre)
19
Exercice 3
Le code ASCII de ’A’ est 0x41 et celui de ’a’ est 0x61.
On a alors
Adresse (a)
0x00 à 0x40
0x41 à 0x5A
0x5B à 0x60
0x61 à 0x7A
0x7B à 0x7F
0x80 à 0xC0
0xC1 à 0xDA
0xDB à 0xE0
0xE1 à 0xFA
0xFB à 0xFF
Contenu
a (pas une lettre)
a (majuscule vers majuscule)
a (pas une lettre)
a - 0x20 (minuscule vers majuscule)
a (pas une lettre)
a - 0x80 (0b10000000) (pas une lettre)
a - 0x80 + 0x20 = a - 0x60 (majuscule vers minuscule)
a - 0x80 (pas une lettre)
a - 0x80 (minuscule vers minuscule)
a - 0x80 (pas une lettre)
19
Exercice 4
Exercice 4
21
Exercice 4
22
Des questions ?
23
Theme
Get the source of this theme and the demo presentation from
github.com/matze/mtheme
The theme itself is licensed under a Creative Commons
Attribution-ShareAlike 4.0 International License.
cb a
24