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