Architectures logicielles et matérielles Cours 7 : Conception avec partie contrôle et partie opérative Laurence Pierre - Philippe Waille http://users-tima.imag.fr/amfors/lpierre/alm/ L3 Informatique 2017-2018 Conception de circuits séquentiels Rappel : la spécification d'un système de contrôle sous forme d'automate (machine de Mealy ou de Moore) peut être transformée en un circuit séquentiel synchrone par les phases suivantes Production des tables de vérité pour les fonctions de transition (t) et de sortie (f) Choix d'un codage de l'état Traduction des fonctions de transition (t) et de sortie (f) en fonctions booléennes (blocs combinatoires) permettant de calculer l'état suivant et les valeurs des sorties Comment l'état est-il matérialisé par des composants de mémorisation (bascules) Quand est-il mis à jour sur les fronts (généralement) montants de l'horloge. 113
Conception de circuits calculatoires Cependant, de façon plus générale, le circuit à concevoir peut devoir réaliser des calculs arithmétiques Exemple naïf : comment faites-vous pour connaître la somme représentée par la monnaie dans votre poche Y a-t-il une pièce Oui (10 cts) 10 + 0 = 10 Y a-t-il une pièce Oui (20 cts) 20 + 10 = 30 Y a-t-il une pièce Oui (5 cts) 5 + 30 = 35 Y a-t-il une pièce Non Fini, la somme est 35 les E/S Où sont contrôle Où es t le n opératio Où es t l' que arithméti t cela se Co m men en log iciel traduit-il riel... En maté 114 Conception de circuits calculatoires Cependant, de façon plus générale, le circuit à concevoir peut devoir réaliser des calculs arithmétiques Exemple : mise en œuvre d'un calcul de PGCD < ; 115
Conception de circuits calculatoires Cependant, de façon plus générale, le circuit à concevoir peut devoir réaliser des calculs arithmétiques Exemple : mise en œuvre d'un calcul de PGCD < ; 116 Modélisation Pour les systèmes de contrôle, le comportement est usuellement spécifié par des FSM (Finite State Machines, machines de Moore ou de Mealy) - voir cours 4 Ce modèle, et la méthode de synthèse associée, ne sont plus suffisants dans le cas de systèmes calculatoires Un simple circuit manipulant deux entiers sur 32 bits nécessiterait un modèle avec états! des alternatives de modélisation ont été proposées, parmi elles : Les Algorithmic State Machines (ASM) Les Finite State Machines with Datapath (FSMD) 118
Spécification par ASM Une ASM est une façon de représenter la machine à états associée à un algorithme, selon un format proche de celui des flowcharts Le diagramme contient 3 types de nœuds Nœud "état" (state box), associé à un identifiant d'état (qui contient les affectations des sorties dans le cas Moore) Nœud "décision" (decision box), qui permet de tester une condition Nœud "sortie conditionnelle" (conditional output box), pour l'expression des sorties dans le cas Mealy 120 http://www.ue.pwr.wroc.pl/pld/pld_7.pdf Spécification par ASM Exemple FSM / ASM http://www.ue.pwr.wroc.pl/pld/pld_7.pdf 121
Spécification par ASM Exemple FSM / ASM http://www.ue.pwr.wroc.pl/pld/pld_7.pdf 122 Spécification par ASM Exemple PGCD < 123
Spécification par ASM Exemple PGCD a = a_in; b = b_in; while (a /= b) { if (a < b) then < swap(a,b); end if; a = a - b; } 124 Spécification par ASM Exemple PGCD a = a_in; b = b_in; while (a /= b) { if (a < b) then < swap(a,b); end if; a = a - b; } http://www.eem.anadolu.edu.tr/userfiles/atdogan/files/l12-fsmdckt2.pdf 125
Spécification par FSMD La FSMD est une extension du concept de machine à états dans laquelle les affectations peuvent utiliser des expressions arithmétiques Les entrées, sorties, et variables (éléments mémorisants) peuvent être de types divers (autres que les Booléens) Les fonctions de transition et de sorties peuvent mettre en jeu des opérateurs arithmétiques Une FSMD exprime la mise à jour des valeurs des variables de l'algorithme et le calcul des valeurs de sorties Elle exprime naturellement la notion de flot de contrôle associé au traitement arithmétique des données 126 Spécification par FSMD Exemple PGCD a = a_in; b = b_in; while (a /= b) { if (a > b) then a = a - b; else b = b - a; end if } res = a; Init T / a = a_in b = b_in a=b / res = a a>b / a = a-b E2 a b / - E1 a<b / b = b-a 127
Conception du circuit associé Le système obtenu sera formé d'une partie contrôle (PC controller) et d'une partie opérative (PO - datapath) Rôle de la partie opérative Effectuer les calculs arithmétiques Mais quand Rôle de la partie contrôle Contrôler le séquencement de ces calculs Quelle interaction La PO informe sur son état courant (status) La PC décide et envoie des signaux de contrôle 128 Conception du circuit associé Le système obtenu sera formé d'une partie contrôle (PC controller) et d'une partie opérative (PO - datapath) La PC génère des signaux permettant de séquencer les calculs de la PO http://digsys.upc.es/ed/csd/units/ch3/u3_02/unit3_2.html 129
Conception du circuit associé Le système obtenu sera formé d'une partie contrôle (PC controller) et d'une partie opérative (PO - datapath) A partir d'un modèle de FSMD, il suffit de procéder comme suit : Dans la partie opérative, un registre sera créé pour chaque variable Dans la partie opérative, un composant fonctionnel sera associé à chaque opération arithmétique Dans la partie opérative, connexion de tous ces composants, en utilisant des multiplexeurs en cas de sources multiples - et prévoir les entrées et sorties Dans la partie contrôle, associer les actions de la FSM à des affectations des signaux de contrôle 130 Conception en PC + PO Composants fonctionnels pour les opérations arithmétiques On peut utiliser des composants spécifiques et/ou une UAL (Unité Arithmétique et Logique) UAL : composant dédié à des calculs arithmétiques simples, usuellement sur nombres entiers, notamment : Addition, soustraction, données Opérations "logiques", par ex négation, xor, Flags usuels : ZNCV Z (zero) = résultat nul N (negative) = résultat négatif C (carry) = résultat qui ne tient pas dans la taille prévue V (overflow) = signe du résultat différent de celui des opérandes (débordement sur le bit de signe) choix de l'opération à réaliser résultat 131 flags
Conception en PC + PO UAL - Exemple http://ee-classes.usc.edu/ee459/library/datasheets/dm74ls181.pdf 132 Conception en PC + PO Partie contrôle + partie opérative Comme vu au cours 4, la PC contient la logique de calcul de l'état suivant et des sorties, et des éléments mémorisants pour l'état de contrôle La PO contient des sous-composants fonctionnels pour les calculs, et des éléments mémorisants pour les variables 133
FSMD vers PC + PO - Exemple Autre exemple arithmétique simple - In1 et In2 sont des entrées, O est une sortie http://www.ue.pwr.wroc.pl/pld/pld_7.pdf 134 FSMD vers PC + PO - Exemple Exemple : In2 In1 CONTROL STATUS http://www.ue.pwr.wroc.pl/pld/pld_7.pdf 135
FSMD vers PC + PO - Exemple Exemple : In2 In1 chargement de A chargement de B ALU inutilisée pas de chargement de O STATUS http://www.ue.pwr.wroc.pl/pld/pld_7.pdf 136 Forme générique de PO Nous ferons l'hypothèse (dans les TD) de l'utilisation d'un schéma générique de PO comme suit : Portes 3 états Entrée' Sel' Sor+e'' X" Z" Flags& Architectures logicielles et matérielles, P.Amblard et al, Dunod 139
Forme générique de PO Nous ferons l'hypothèse (dans les TD) de l'utilisation d'un schéma générique de PO comme suit : Portes 3 états Entrée' Sel' Sor+e'' X" Z" Flags& Entrée Architectures logicielles et matérielles, P.Amblard et al, Dunod 140 Forme générique de PO Nous ferons l'hypothèse (dans les TD) de l'utilisation d'un schéma générique de PO comme suit : Portes 3 états Entrée' Sel' Sor+e'' X" Z" Flags& Calcul Architectures logicielles et matérielles, P.Amblard et al, Dunod 141
Forme générique de PO Nous ferons l'hypothèse (dans les TD) de l'utilisation d'un schéma générique de PO comme suit : Portes 3 états Entrée' Sel' Sor+e'' X" Z" Flags& Sortie Architectures logicielles et matérielles, P.Amblard et al, Dunod 142