Architecture Logicielle et matérielle Cours 7 : éléments de construction du processeur LC3 d’après le cours de Nicolas Louvet et http://ece224web.groups.et.byu.net/lectures/LC3-1.pdf Laure Gonnord http://laure.gonnord.org/pro/teaching/ [email protected] Licence d’info - Université Lyon 1 - FST Introduction Notre but sera ici de montrer comment il est possible d’ébaucher la micro-architecture du processeur LC3 suivant le modèle de Von Neumann : une mémoire centrale contient le programme et les données ; l’unité centrale de traitement (l’UCT) exécute le programme contenu en mémoire centrale. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 2 / 23 Chemin de données Il va donc nous falloir mettre au point tout le chemin de données de notre UCT. En voici une vue d’ensemble : Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 3 / 23 Méthode Définition Le chemin de données est l’ensemble des circuits qui permettent le traitement des instructions et des données, hormis toute la partie contrôle. Dans la suite, nous allons : rappeler les éléments architecturaux du LC3 mettre en place un chemin de données adapté pour l’architecture décrite. parler (brièvement) d’automate de contrôle pour l’unité de contrôle du processeur. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 4 / 23 Méthodologie de synchronisation 1 Méthodologie de synchronisation 2 Architecture LC3 : chemin de données 3 Signaux de contrôle - automate de contrôle Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 5 / 23 Méthodologie de synchronisation Synchronisation : problématique On va concevoir un circuit dans lequel certains signaux logiques doivent être lus, d’autres écrits à des instants précis : si on se retrouvait dans une situation où un signal doit être lu en même temps qu’il est écrit, cela poserait problème. . . I synchronisation basée sur le front montant de l’horloge : les valeurs contenues les registres du circuit seront mises à jour seulement sur un front montant de l’horloge. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 6 / 23 Méthodologie de synchronisation Synchronisation : registres Seuls les registres permettent de stocker une donnée, et de la maintenir sur leur sortie, donc tout « sous-circuit » combinatoire doit : avoir ses entrées connectées aux sorties d’un registre, avoir ses sorties connectées aux entrées d’un registre. I Rappel : sorties utilisables au cycle suivant. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 7 / 23 Architecture LC3 : chemin de données 1 Méthodologie de synchronisation 2 Architecture LC3 : chemin de données Quelques parties importantes Quelques exemples 3 Signaux de contrôle - automate de contrôle Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 8 / 23 Architecture LC3 : chemin de données Rappels 8 registres 16 bits, et quelques registres spéciaux dont : PC → adresse mémoire de la prochaine instruction à exécuter. IR → contient l’instruction dont le cycle est en cours. MAR → sélectionne l’adresse mémoire à écrire/lire MDR → stocke temporairement une donnée lue en mémoire (où à écrire en mémoire) + mémoire centrale adressable par 16 bits. Instructions de trois sortes : arith/logique, accès mémoire, branchement ; codées sur 16 bits. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 9 / 23 Architecture LC3 : chemin de données LC3 : schéma d’ensemble I Visualiser le bus et les tristates, l’IR, les registres. . . Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 10 / 23 Architecture LC3 : chemin de données Quelques parties importantes 1 Méthodologie de synchronisation 2 Architecture LC3 : chemin de données Quelques parties importantes Quelques exemples 3 Signaux de contrôle - automate de contrôle Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 11 / 23 Architecture LC3 : chemin de données Quelques parties importantes LC3 : Effective Address Block I Calcule les bonnes adresses pour MAR et PC à partir de l’IR. Sortie sur PCmux et Marmux. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 12 / 23 Architecture LC3 : chemin de données Quelques parties importantes LC3 : PC et PCmux Durant la phase “fetch”, le PC est modifié pour pointer vers la prochaine instruction à exécuter. I PC peut être PC+1, ou venir du bus, ou venir de l’UAB (c’est l’UC qui décide !) Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 13 / 23 Architecture LC3 : chemin de données Quelques parties importantes LC3 : MarMux Le Marmux calcule quoi charger dans MAR : I Sources : sortie EAB (load) ou IR[7 :0] (trap) (c’est l’UCT qui décide : commande du mux, le tristate, et quand on charge.) Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 14 / 23 Architecture LC3 : chemin de données Quelques parties importantes LC3 : Autres composants Il resterait à voir finement la mémoire, les registres, et les conditions Z,N,P. (on verra en TP) Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 15 / 23 Architecture LC3 : chemin de données Quelques exemples 1 Méthodologie de synchronisation 2 Architecture LC3 : chemin de données Quelques parties importantes Quelques exemples 3 Signaux de contrôle - automate de contrôle Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 16 / 23 Architecture LC3 : chemin de données Quelques exemples Data path pour ADD R1, R4, #-2 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 17 / 23 Architecture LC3 : chemin de données Quelques exemples Data path pour LD R2 x1AF Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 18 / 23 Architecture LC3 : chemin de données Quelques exemples Data path pour BRz x0D9 Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 19 / 23 Signaux de contrôle - automate de contrôle 1 Méthodologie de synchronisation 2 Architecture LC3 : chemin de données 3 Signaux de contrôle - automate de contrôle Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 20 / 23 Signaux de contrôle - automate de contrôle Signaux de contrôle Dans la section précédente, nous avons vu que des signaux provenant de l’UCT venaient diriger les différents tristate, mux, . . . Le contrôle est donc un circuit de la forme : LC3 IR, N, Z, P control LC3 datapath control signals Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 21 / 23 Signaux de contrôle - automate de contrôle Lecture - TP Se rapporter au début de l’annexe C du LC3, distribuée avec le cours. À lire chez vous. En TP, nous n’implémenterons pas la partie contrôle du LC3 comme un automate, mais une simplification. Laure Gonnord (L2/FST/Univ Lyon1) ArchiL2 (LIF6) Cours 07 : processeur LC3 2014 22 / 23