FR 2575848 A1 19860711 FR 8500282 A 19850108 La présente invention concerne un outil d'enseignement utilisé pour concrétiser les principales fonctions réalises par un microprocésseur. L'enseignement de ces fonctions est traditionnellement éffectué en se basant sur les connaissances antérieures de ]'étudiant ou par une étude préliminaire de circuits élémentaires parcellaires ou théoriques complétées par une présentation théorique des caractéristiques techniques fournies par un fabricant de microprocésseur. Une étude d'exemples,une uti]isation d'un microprocésseur existant,la réalisation d'une application peuvent terminer Re cycle de formation. Avec cette méthode ou les diverses étapes portent sur des circuits non reliés entre eux ou sur des matériels proféssio- nnels non spécifioues au problème,la vision globale,par exemple l'interaction entre un programme et le matériel aui l'exécute, ne peut qu'étre longue et difficile à obtenir par un néophyte. Le dispositif selon l'invention permet de raccourcir et de faciliter la compréhension des fonctions réa]isées par un microprocésseur. Ces résultats sont obtenus nar l'intégration la n]us simple possible de fonctions de base dans des cartes électronicues fonctionnellement liées mais pouvant étre étudiées,théorie et pratioue, de manière progréssive individuellement puis global- ement jusqu'à former un calculateur exécutant un programme simple. l'explication des fonctions d'un microprocésseur est obtenue par analogie de fonctionnement entre des cartes à fonc tons spécifloues (2),(3),(4) et une carte microprocésseur (7) Cette analogie est obtenue par substitution des cartes spécifiques par la carte microprocésseur,Ze reste du dispositif restant inchangé. Dans les deux cas le programme respecte les mêmes condittions d'analyse et peut étre étudié en pas à pas ou en dynami- que. Un changement de programme peut se faire en changeant les circuits où ils sont mémorisés en permanence. Le mécanisme des échanges et les informations échangées par les divers éléments du dispositif sont constamment visualisés. Les principales fonctions partielles à étudier en utilisant les boutons et les voyants du dispositif sont: écriture lecture en mémoire vive, lecture des mémoires permanentes, réalisation d'opérations arithmétique et logique. Un manuel d'instruction regroupe par chapitres l'ensemble des résumés théoriques,des exercices et des travaux pratiques à réaliser sur chaque carte ou chaaue fonction ou sur les programmes exécutés nar le dispositif. La figure I représente la vue d'ensemble du dispositif. Cette figure est utilisée pour l'abrégé. La figure 2 montre l'ensemble des boutons et des voyants. La figure 3 représente le circuit électrioue des cartes horloge (I) et mémoire de commande (2). La figure 4 représente le circuit électrique des cartes mémoire programme (3) et unité arithmétiaue et logique (4). La figure 5 représente le circuit électrique des cartes mémoire de données (5)- et interface (6). La figure 6 représente le circuit électrique de la carte microprocésseur (7). La figure I montre comment les cartes (I),(2),(3),(4),(5) (6) et (7) peuvent étre,suivant la fonction à réaliser,connec tées sur les connecteurs d'un cable plat (I0) et alimentées (8). l'ensemble du dispositif repose sur un support (9). La figure 2 rajoute à la figure I la vision des boutons et des voyants: -avance microinstruction (I4) -visualisation avance un pas (I5) -marche ou arrêt programme (I6) -marche automatioue ou manuel (I7) lecture des mémoires permanentes (I8) -remise à zéro de la bascule impulsion (19) -visualisation impulsion (20) -visualisation microsignaux spécifiques (21) -visualisation signaux de destination (22) -visualisation des signaux de source (23) -visualisation des adresses des microinstructions (24) -visualisation des adresses d'instructions (25) -visualisation du code de l'instruction (26) -visualisation de la partie paramètre de l'instruction (27) -visualisation de la condition de saut (28) -visualisation du code de l'opération (29) -validation code opération (30) -visualisation du contenu du registre A (31) -charoement information dans registre A (32) -visualisation du contenu du registre B (33) -chargement information dans registre B- (34) -visualisation adresse de la variable (35) -chargement de l'adresse de la variable (36) -visualisation signaux D3 et S2 (37) -visualisation des variables (38) -visualisation validation (39) -chargement d'une variable dans le registre d'entrée (40) -visualisation validation écriture (41) -validation écriture (42) -boutons d'interface programme (43) -visualisation des signaux SI et DI (44) -voyants d'interface programme (45) -visualisation de niveaux logiques (46) Les autres composants (circuits intégrés,résistances,capacités etc..) ne sont pas représentés sur les cartes de la figure 2. La figure 3 représente la fonction horloge et la fonctipn mémoire de commande. L'horloge comprend un mono stable (47) fournissant des impulsions à période ajustable. le circuit à décalage (48) permet de créer des impulsions incrémentant le registre pointeur (4 ) de la mémoire de commande (50).Il génére aussi les impulsions de synchronisation oui sont distribuées à l'ensemble du dispositif (51). Lorsoue l'inverseur (I7) et sur sa position "manuel",une Dréssion sur le bouton poussoir (I4) initialise chaque période de base et permet de dérouler un programme en pas à pas. Dans sa position fermée un inverseur (I6) maintient les registres à zéro et empoche le déroulement des programmes. leur déclenchement est obtenue en ouvrant cet inverseur (16). Le bouton (18) permet la lecture pas à pas de la mémoire de contrôle (50) et de la mémoire programme (53).L'avance mot à mot se fait en appuyant sur le bouton poussoir (14). La partie mémoire de commande contient:un registre pointeur (49),une mémoire de commande (50) constituée de trois composants mémoire permanente,de décodeurs (52) et des circuits de visu alisation (21),(22),(23),(24) visualisant les adresses des microinstructions et les signaux générés chaque microins truction. La mémoire contient les huit instructions de base spécifi- aues au dispositif. Elles ont un maximum de cuatre microins tructions.Pour chacune un mnémonique est utilisé. -EMD,ADR écrire dans la mémoire à l'adresse ADR. -LMD,ADR .lire un mot de la mémoire de données. -OAL,X opération arithmétique ou logique précisée par X. -CST,X écrire une constante X dans le registre a. -SAUT,X .saut e l'adresse programme X. -SCOND,X .saut conditionnel à l'adresse programme X. -LEX .lire un mot externe entré sur les boutons (43). -AFF .affichage d'un mot sur les voyants (45). La figure 4 représente les fonctions mémoire programme et unité arithmétique et logique. La partie mémoire est organisée autour de la mémoire programme (53) oui est constituée de composant à mémoire permanente permettant de mémoriser 256 instructions définies suivant 7e jeu des huit instructions de base. Chaque instruction machine a une partie code visualisée sur les voyants (26) et une partie paramètre X visualisée sur les voyants (27). Si X est une adresse programme elle est chargeable dans le pointeur (54). Un changement de programme est obtenu en changeant les composants de la mémoire (53). Un ensemble de portes logiques (55) permettent de définir s'il faut incrémenter le pointeur (54) ou lui charger une adresse précisée dans le paramètre de l'instruction. Le code de l'instruction (56) est utilisée pour adresser la mémoire de commande (56),(50). Le circuit électrique de la carte unité arithmétique et logique est organisé autour de la fonction arithmétique et logique (57). Le code de l'opération à réaliser provient du paramètre de l'instruction programme et est chargé dans le registre code (58). Les opérations sont réalisées sur des mots de huit digits provenant des registres "A" (59) et "B" (60). Les registres "code","A","B" peuvent étre chargés manuellement à l'aide des boutons de la carte interface (43) et des boutons de validation (30),(32),(34). En fonctionnement automatique un signal "H2"(61) est présent et permet l'arrivée des signaux de destination (62) provenant de la mémoire de commande (50). Lorsque tous les digits du résultat sont à un logique,la bascule "condition" (63) est mise à un. Ceci définit la condition de saut conditionnel pour les programmes. La figure 5 représente les circuits des. cartes. mémoire de données (5) et interface (6). La mémoire (64) est une mémoire vive statique qui mémorise les variables utilisées par les programmes. Son adressage se fait par le registre (65). Le registre (66) est utilisé pour l'entrée des données,le registre (67) pour la sortie des données. Les boutons (36),(40),(42) servent aux opérations manuelles sur cette carte. Signaux de destination (68),(69). Signal de validation écriture (70). La figure 5 dans sa partie interface représente:la partie alimentation continue (7I),les portes d'entée de données (72), les bascules (73) et les amplificateurs (74) de sortie de données sur les voyants (45). Le circuit (75) crée le signal "H2" si la carte horloge est présente sur le cable (10). "H2" (61) synchronise les cartes (4) et (5) à partir du signal de synchronisation fourni parle registre à décalage (48) de la carte horloge (I). La figure 6 représente le circuit électriaue de la carte microprocésseur (7). Si un signal de validation mémoires (77) est présent,les adresses (78) que le microprocésseur (76) génere sont envoyées dans le compteur (79) de la nouvelle mémoire programme (80) ou vers la carte mémoire de données (5)(point 8I). Ceci dépend du digit d'adresse de poids le plus fort: égal à zéro,le signal (82) valide l'entrée parallèle du compteur (79),égal à un ,un signal de validation est envoyé à la carte mémoire de données (5) pour valider l'entrée parallèle de son compteur d'adresse (65). Les signaux (83)et (84) précisent s'il s'agit d'une lecture ou d'une écriture. Belon les cas,les signaux de destina tion et de validation écriture n'auront pas les mêmes valeurs (85),(86),(87),(88). Ils arrivent en (68),(69),(87) et (88) dans la mémoire de données .figure 5. Le microprocésseur (76) est relié à la liaison de transfer de données (89).Même chose,au travers de diodes trois états (90),pour la mémoire programme (80). Un signal de validation d'interface d'entrde/sortie (91) permet le décodage (92) des digits d'adresse de poids les Dlus fables et vénérer des signaux de destination vers les bascules (73) ou de source vers les portes (72) de la carte interface (6). Le signal ( 3) est le signal d'horloge.Il provient du registre à décalage (48) de la carte horloge (I). Les signaux (94) habituellement utilisés pour permettre un "accés direct mémoire" ne sont pas ici utilisés. Un circuit (95) génére un signal de remise à zéro et une intérruption lorsque l'utilisateur utilise le bouton de déma rrage programme (I6) de la carte (I).Cette intérruption dirige le microprocésseur (76) vers la première instruction du progamme mémorisé en mémoire (80). Des voyants ( 6) visualisent adresses,instruction progamme,signaux de validation. L'enseignement des fonctions réalisées par un micropro- césseur à l'aide du dispositif selon l'invention sè fait par étapes: tape I:introduction à la notion de niveau logique. La carte interface (6) est la seule connectée sur le cable plat. Etape 2:introduction aux notions de mémorisation, de mots binaires et d'adréssage en utilisant la carte interface (6) pour écrire en mémoire de données (64). Etape 3:introduction à l'algèbre booléenne.Réalisation d'opérations arithuétiques et logiques avec l'aide des-boutons de la carte interface par la carte (4). Etape 4:mémoire nermanente et introduction à la notion de microprogrammes,microinstructions,instructions machine. les cartes mémoire programme (3) et microprocésseur (7) sont les seules cartes non connectées sur le cable plat. Le bouton lecture mémoire (18) de la carte horloge est en position lecture bouton (I6) en position "marche program- me",des préssions succéssives sur le bouton (I4) incrémentent le compteur (4 ) de la mémoire de commande et permettent de visualiser microinstruction par microinstruction les signaux qu'elle génére. Les cartes où ils sont utilisés étant présentes,on obtient une concrétisation de l'action recherchée par chacune des huit instructions machine de base. i;tape 5:notion de programme. Les cartes horloge (I),mémoire Drogramme (3) et interface (6) sont les seules connectées sur le cable plat. Bouton (16) sur "marche programme".Bouton (18) sur "lecture mémoire". Des préssions succéssives sur le bouton d'incrémentation (I4) permettent de lire,instruction nar instruction,le proora- me mémorisé en mémoire (53) et de le comparer avec les documents d'analyse et de programmation inclus dans le manuel. Etape 6:toutes les cartes sont enfichées sur le cable sauf la carte microprocésseur (7). Le bouton (I7) est sur "manuel". De- actions succéssives sur 1 bouton d'incrémentation (I4) permettent de concrétiser,instruction par instruction,l'action du programme sur 3'ensemble du dispositif. Stape 7:même chose que l'étape 6,sauf aue le bouton (I7) étant sur sa position "automatic",le programme se déroule à vitesse normale. Etape 8:même chose qu'en 6 (fonctionnement en pas à pas) mais en faisant réaliser les fonctions microinstruction,unité arithmétique et logique,par un microprocésseur. Les cartes (2),(3),(4) ne sont pas connectées,la carte microprocésseur (T) les remplace. L'étape 8 est le premier exemple d'utilisation d'un langage assembleur spécifique à un microprocésseur. Un changement du programme mémorisé dans la mémoire (80) permet d'étendre cette étude de language assembleur. Etape 9 :généralisation aux autres aspects d'utilisation d'un microprocésseur. Vitesse normale du programme. Intérruptions multiples,accés direct mémoire. Une carte,non représentée sur les figures,contenant un dispositif d'interface parallèle et interface série complète le dispositif général. Cette partie de la description souligne quelques points de la réalisation pratique du dispositif. Les cartes électroniques sont réalisées à partir de circuits imprimés double face mesurant dix centimètres sur vingt. Elles sont enfichables,sans l'utilisation du moindre outil sur des connecteurs à cable plat "3M" (marque déposée). Les "voyants" mentionnés dans le restant du texte sont enfait des diodes électro-lumineuses individuelles ou groupées en réseaux. Les diodes et les boutons sont directement montés sur la partie haute des cartes de manière à permettre une utilisation aisé du dispositif. Des étiquettes autocollantes précisent la fonction de la diode ou du bouton. Le support (9)est réalisé de manière préférentielle par deux morceaux de profilés d'aluminium de vingt cinc centimètres de long. Les connecteurs du cable plat (IO) sont vissés sur ces profilés et donnent de ce fait une rigidité à l'ensemble du support. L'alimentation a sa partie courant redréssé (71) sur la carte interface (6).Le transformateur se trouve dans une boite (8) fixée sur l'un des profilés. Cette boite contient aussi un fusible,un bouton marche/arrêt,une prise femelle pour connexion d'un cordon secteur. les cartes électroniques sont connectables dans n'importe ouel ordre sur le cable plat. Le cable plat contient cinquante fils véhiculant les signaux: (81) -8 fils d'adresse de la mémoire de donnés. (101) -incrémentation du compteur (49) de la mémoire de commande. (I02) -remise à zéro des registres et descompteurs. (I03) -micro-signal de fin de séquence.Chaque instruction de base est formée de séquence d'un maximum de quatre micrå- instructions. (I04) -micro-signaux spécifiques comprenant: S(saut), SC(saut conditionnel),EM (validation écriture mémoire), +1 (incrémentation instruction). (105) -quatre micro-signaux de source,SI à S4,validant chacun la connexion sur la liaison de donnée de l'un des composants d'origine contenant l'information à transférer vers un composant destination. (I06) -sept signaux ,DI à D7,validant le composant "destination" aui recoit la donnée à transférer. (I07) -zéro Aogique.Signal crée par la carte horloge (I) et envoyé à la carte interface (6) lui permettant de générer le signal de synchronisation (61) pour le fonctionnement global. (108) -signal de lecture des mémoires.Il interdit les sauts programme et ne laisse aue la possibilité d'incrémentation des compteurs (49) et (54) pour une lecture mot à mot des mémoires. (56) -auatre signaux du code opératoire. Ce code est une partie de l'instruction et il la définit. I1 est utilisé comme adresse de départ de chaque séquence de base par le compteur (49)de la mémoire de commande. Ce compteur è ses deux fils de poids les plus faibles d'adresse maintenus à zéro et le code arrive sur les quatre ils suivants:on obtient une adresse égale à quatre fois le code, ce qui permet d'avoir un maximum de auatre microinstructions dans chaque séquence (109) -signal de présence de la carte microprocésseur (7). Ce signal ferme les portes qui connectent les fils de données (100) sur les fils d'adresse (81) du registre (65) de la mémoire de données. Cette connection est utilisée par le fonctionnement avec les cartes spécifiques (2),(3),(4) pour charger l'adresse dans le registre (65) à partir des fils de donnée. Les signaux de validation source ,destination ,écriture (85r, (86),(87),(88) crées par la carte microprocésseur (7) utilisent les fils laissés libre par les signaux (105),(106) non présents. la carte (2) ne pouvant pas étre présente en meme temps que la carte (7). Les organigrammes d'analyse,les listes d'instructions assembleur et machine ne sont pas mentionnés dans ce texte descriptif (non brevetables). Le-dispositif selon l'invention est particulièrement destiné à étre vendu à toutes personnes et collectivités concernées par l'enseignement des fonctions et de l'utilisation d'un microprocésseur dans un système à logique digitale. REVENDICATIONS 1) Dispositif pour l'enseignement de fonctions réalisées par un microprocésseur composé de cartes électroniques,d'une alimentation (71),d'un cable connecteur (10),le tout monté sur un support (9) et caractérisé par une carte horloge (1),une carte mémoire de commande (2),une carte mémoire programme (3), une carte unité aritèmétioue et logique (4),une carte mémoire de donnée (5),une carte interface (6),une carte- micronrocésseur (7) qui,progréssivement connectées sur le cable (10),peuvent fonctionner par ensembles succéssifs indépendants jusqu'à former,dans la phase finale,un calculateur d'enseignement. 2) Dispositif selon la revendication I caractérisé par sa capacité d'exécuter un programme répondant à la même analyste soit avec des cartes à fonctions spécifiques (2),(3),(4) soit avec une carte microprocésseur (7),les cartes (1),(5),(6)étant communes aux deux cas de fonctionnement. 3) Dispositif selon les revendications I et 2 caractérisé en une visualisation du mécanisme des échanges et des informations échangées par ses divers éléments. 4) Dispositif selon les revendications I et 2 caractérisé par le fait qu'il peut exécuter un Drogramme normalement ou avec arrêt aprés chaaue microinstruction,le passage à la microinstruction suivante étant conditionné par l'appui sur un bouton (I6). 5) Dispositif selon la revendication I caractérisé en ce aue la seule Drésence des cartes (4),(5),(6) sur le cable plat (IO) est suffisante pour réaliser manuellement à l'aide des boutons (43) de la carte interface (6) des opérations d'écriture lecture en mémoire de données (64) et des opérations arithméd tiaue et logique dans la carte (4). 6) Dispositif selon les revendications I et -2 caractérisé en ce que les mémoires permanentes (53) et (80) peuvent étre lues manuellement et mot à mot avec les boutons de la carte (I), 7) Disposif selon les revendications 1 et 2 caractérisé en ce qu'un changement de programme se fait en changeant les composants des mémoires où ils sont mémorisés. 8) Dispositif selon l'une quelconque des revendications I à 6 caractérisé en ce que l'interfacage entre l'utilisateur et le dispositif se fait avec des voyants et des boutons. 9) Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce qu'un livre regroupe les travaux à réaliser sur chaque carte ou chaque fonction ou sur les programmes exécutés par l'ensemble du dispositif. 10) Dispositif selon la revendication 1 caractérisé par une carte interface parallèle et série qui le complète.