Brevet FR2417140A1 — publié le 19790907

La présente invention concerne un calculateur séquentiel programmable et plus particulièrement un calculateur séquentiel à enchalnement arbitraire, c' est-à-dire un calculateur dans lequel chaque instruction fixe l'emplacement de mémoire de l'instruction suivante à exécuter. Le but de l'invention est de proposer un calculateur de conception simple, économique et susceptible de très nombreuses applications. A cet effet, l'invention a pour objet un calculateur séquentiel programmable caractérisé en ce qu'il comprend une mémoire programmable dans laquelle sont stockées sous forme binaire codée un certain nombre d'instructions définissant chacune un type de tâche à exécuter et l'adresse de l'instruction suivante à prendre en compte, un premier décodeur relié à la mémoire et susceptible de prendre en compte sélectivement un nombre déterminé de variables à surveiller, un second décodeur relié à la mémoire et susceptible d'envoyer un signal de commande sélectivement vers un nombre déterminé d'organes à commander, un troisième décodeur, dit d'opération, relié à la mémoire et aux deux premiers décodeurs et chargé de commander en fonction de la structure de chaque instruction de la mémoire le type de tâche à exécuter, un moyen d'a- dressage de la mémoire relié à celle-ci et au décodeur d'opération et chargé d'adresser la mémoire sur l'instruction suivante et un moyen de minutage définissant des cycles de fonctionnement du dispositif au cours de chacun desquels est effectuée l'une des tâches affectée à l'instruction adressée en mémoire. Suivant un mode de réalisation, la mémoire est une mémoire morte et les instructions sont en octet dont les deux premiers bits déterminent le type de tâche à effectuer parmi quatre tâches différentes possibles. Suivant une application de l'invention, une première t - che consiste à envoyer un ordre de commande sur un organe à commander sélectionné, une seconde tâche consiste à comparer l'état d'une variable sélectionnée avec l'état d'un des bits de l'instruction adressée et à faire avancer le compteur d'adressage d'un ou deux pas selon le résultat de la comparaison et une troisième tâche consiste à adresser une instruction quelconque de la mémoire. Avantageusement, le dispositif comporte une mémoiretampon reliée à ladite mémoire et un dispositif pour alimenter en énergie la mémoire seulement pendant un court instant à chaque cycle de fonctionnement du calculateur et mémoriser dans la mémoire-tampon le mot de mémoire adressé en vue de son exploitation ultérieure. D'autres caractéristiques et avantages ressortiront de la description qui va suivre d'un mode de réalisation du dispositif de l'invention, description donnée à titre d'exemple uniquement et en regard des dessins annexés sur lesquels Fig. 1 représente un bloc-diagramme d'un calculateur séquentiel programmable selon l'invention. Fig. 2 représente un schéma plus détaillé d'un mode de réalisation suivant la figure 1. Fig. 3 représente un diagramme des temps illustrant le fonctionnement du dispositif de la figure 2, et Fig. 4 est une partie dilatée du diagramme de la figure 3. Le calculateur séquentiel programmable selon l'invention dont le schéma logique est représenté sur la figure I comprend une mémoire de contrôle 1, un compteur d'adressage 2, une mémoire-tampon 3, un générateur d'horloge 4 connecté à un oscillateur 5, et trois dispositifs de décodage 7å savoir un décodeur d'opération 6,un décodeur de variable 7 et un décodeur de comman de 8. La 8. La figure 2 illustre schématiquement un mode de réalisation du dispositif de la figure 1. La mémoire de contrôle 1 est une mémoire morte de 256 mots de 8 bits constituée de deux éléments la et lb de technologie bipolaire type TTL. Cette mémoire 1 est adressée par le compteur d'adressage 2, lequel est constitué par deux éléments 2a et 2b. La sortie de la mémoire 1 est reliée à la mémoire-tampon 3 qui est constituée de deux éléments 3a, 3b à quadruple verrous. On a représenté sur la figure 2 les sorties des huit bits utilisés, à savoir Bo à B7, ainsi que les sorties inversées (B0 , B1) des bits Bo et B1. Les sorties de bits B2 et B3 sont reliées à une mémoire-tampon intermédiaire 9 constituée d'une double bascule D, elle-méme reliée aux entrées de bits A'6 et A'7 de l'élément 2b du compteur d'adressage 2. La mémoire-tampon intermédiaire 9 est validée par l'une des sorties du décodeur 8. Le générateur d'horloge 4 est constitué d'un compteur "Johnson" recevant les impulsions de ltoscillateur 5. Le dispositif comporte un circuit particulier destiné à minimiser la puissance électrique consommée par le calculateur et symbolisé sur la figure 1 par la porte logique ET 10. Cette porte ET est constitué (figure 2) de deux transistors Ql et Q2. Le transistor Q1 est relié aux éléments 4 et 5 et reçoit le signal 81 généré par l'horloge 9, cependant que le transistor Q2 est chargé d'alimenter en courant la mémoire 1. L'horloge 4 est chargée de fournir les signaux ~1' ~II, 04 1B4 et SYNC (figures 3 et 4). Le signal a de la figure 3 est le signal (de préférence réglable, par exemple 10 KHz) délivré par l'oscillateur 5 à l'horloge 4. Le signal b est le signal de synchronisation SYNC inversé par l'élément 11. Le signal c est le signal ~1 appliqué à l'élément 10 et à la mémoire-tampon 3. Le signal d est le signal ~II délivré par une porte logique OU-EXCLUSIF 12 reliée à l'horloge 4. Le signal e est le signal ~4 délivré directement par l'horloge 4 par l'une des deux sorties connectées à la porte 12. Le décodeur d'opération 6 est constitué par un double multiplexeur de 4 voies vers 1. Ce décodeur reçoit les signaux ~II et ~4 et les bits Bos B1 et B1 . Ces trois bits proviennent de l'élément 3a de la mémoire-tampon 3. Le décodeur 6 reçoit également un signal provenant d'une porte logique OU-EXCLUSIF 13. Il délivre un signal d'avance et un signal de saut envoyés au compteur d'adressage 2. Le décodeur 7 des variables à surveiller est constitué par un multiplexeur de 8 voies vers 1. Les voies sont sélectionnées par l'intermédiaire des bits B5, B6 et B7 provenant de l'élément 3b de la mémoire-tampon 3. Le décodeur. 7 reçoit le signal SYNC et sa sortie est reliée à un dispositif de mémorisation constitué par un condensa teur Cl, relié lui-même à l'une des deux entrées de la porte 13. Le décodeur de commande 8 est constitué d'un décodeur de 4 voies vers 16 et reçoit les bits B4, B5, B6 et B7 venant de l'élément 3b de la mémoire-tampon 3. Le décodeur 8 est commandé par un signal provenant d'une porte logique NON-ET 14 recevant sur une première entrée le bit Bo et sur une seconde entrée, un signal d'avance provenant du décodeur 6. La porte OU-EXCLUSIF 13 constitue un circuit de comparaison recevant sur une première entrée le bit B4 et sur une seconde entrée le signal de sortie du décodeur de variable 7. Le circuit formé par le condensateur C2 et la résistance R1 est un réseau d'initialisation permettant d'obtenir une impulsion de remise à zéro sur le compteur d'adressage 2 au moment de la mise sous tension du dispositif. Enfin, la porte logique OU-EXCLUSIF 15 reliée à la mémoire 1 permet de tester le dispositif en inhibant les sorties de mémoire. Le fonctionnement du dispositif décrit ci-dessus est le suivant Ce dispositif, par une programmation appropriée de la mémoire 1, permet de surveiller un certain nombre d'organes en prenant en compte des variables provenant de ces organes et de commander en fonction de ces variables et/ou du programme un certain nombre d'organes distincts ou non des organes surveillés. Dans le mode de réalisation décrit et représenté, le dispositif est capable de prendre en compte jusqu'à 8 variables et d'envoyer 16 ordres de commande distincts dont un interne destiné à la mémoire-tampon intermédiaire 9. Le programme introduit sous forme d'un code judicieux permet d'effectuer les tâches suivantes - Envoi d'un ordre de commande vers un organe et avan cement d'un pas dans le programme en vue de ltexécu- tion de la tâche suivante - Examen de l'état logique d'une variable, comparaison avec un état programmé et avancement dans le program me-d'un ou deux pas selon le résultat de la comparai son. - Positionnement du programme sur une tâche prédétermi née choisie. Le rythme d'avancement dans le programme est déterminé par l'horloge 4 qui définit un cycle machine délimité par deux apparitions successives du signal SYNC (figure 3). La période du signal SYNC couvre 10 périodes du signal a de la figure 3 (signal de sortie de l'oscillateur 5). Au cours de chaque cycle machine s'effectue l'une des tâches du programme. Au début du cycle machine, le compteur d'adressage 2 af- fiche une adresse donnée(introduite à la fin de cycle précédent). Cette adresse permet d'obtenir de la mémoire 1 un mot particulier définissant la tache qui doit être effectuée au cours du cycle. Ce mot est un octet (arrangement des 8 bits du champ de mémoire). Selon la nature de cette tâche à exécuter, en fin du cycle machine en cours le compteur 2 sera incrémenté ou positionné de manière à définir une nouvelle adresse, c'est-à-dire une nouvelle tâche à exécuter lors du cycle machine suivant. Le code d'opération du système est donné par l'état logique des deux premiers bits (B0, B1) du mot de la mémoire 1 adressé par le compteur 2. Ce code est établi suivant le tableau ci-dessous B1 : Bo O : 0 : Envoyer une impulsion de commande et avancer de 1 par le compteur 2 0 : 1 : Examiner l'état d'une variable et le comparer à un : : bit de référence(B; . Incrémenter le compteur 2 de 1 : : ou 2 pas selon le résultat de la comparaison 1 : 0 : Positionner le compteur 2 dans l'état des bits B4 à B7, B2 et B3 A'6 et A'7. 1 : 1 : Combinaison non utilisée Si Bo et B1 sont tous les deux à l'état logique 0, le décodeur d'opération 6 envoie un signal sur sa sortie AVANCE. Ce signal est appliqué, d'une part, à la porte 14 de manière qu'elle envoie par le décodeur de commande 8 un ordre de commande sur la sortie du décodeur 8 sélectionnée à partir de l'état logique des bits B4 à B7 du mot adressé considéré. D'autre part, le signal AVANCE est appliqué au compteur d'adressage 2 pour qu'il avance d'un pas et adresse le mot suivant dans la mémoire 1 relatif à la tâche suivante. Le signal ~1 apparaissant pendant la première demi-période du cycle machine a pour rôle de verrouiller l'état de la mémoire de contrôle 1 dans la mémoire-tampon 3. La mémoire 1 est en effet alimentée seulement pendant un court instant (courbe f de la figure 4) à la fin du signal ~1 (courbe c). Le signal ~1 agit sur la mémoire-tampon 3 qui mémorise ainsi le mot de la mémoire 1 adressé par le compteur 2 jusqutà la prochaine apparition de ~1 c'est-à-dire au cycle machine suivant. Cette alimentation de la mémoire 1 seulement pendant un court instant a pour but de limiter la consommation d'énergie. Elle est obtenue grâce au circuit 10 qui autorise l'excitation de la mémoire 1 seulement lorsqutil y a coincîdence entre l'apparition du signal ~1 et la disparition du signal de sortie de ltoscillateur 5 (courbe a de la figure 4). L'apparition du signal AVANCE à la sortie du décodeur 6 est déclenchée par le signal 04 apparaissant au cours de la seconde demi-période du cycle machine (courbe e, figure 3). Si Bo et B1 sont respectivement aux états logiques 1 et 0, une des 8 variables surveillées par le décodeur 7 est comparée à une référence. La variable en question est celle sélectionnée par l'arrangement des bits B5 à B7 du mot adressé au cours du cycle machine. L'état de cette variable est mémorisé par le condensateur Cl ad cours de la première demi-période du cycle machine par l'intermédiaire du signal SYNC. La référence en question est constituée par l'état logique du bit B4 dudit mot. La comparaison est effectuée par la porte 13. Selon le résultat de la comparaison, c'est-à-dire l'état logique à la sortie de la porte 13, c'est le signal Jbq (une impulsion d'avance) ou le signal ~II (deuximpulsions d'avance) qui est appliqué par le décodeur 6 sur sa sortie AVANCE au compteur d'adressage 2, au cours de la seconde moitié du cycle machine. La tâche suivante à exécuter au cours du cycle machine suivant est donc fonction de ladite comparaison. Au cours de cette seconde moitié du cycle machine, le décodeur 7 est inhibé par le signal SYNC. Enfin, si Bo et B1 sont respectivement dans les états binaires O et 1, la tâche à effectuer au cours du cycle machine est une prise en compte d'une nouvelle adresse définie par les bits B2 à B7 d'une part, et les bits A'6 et A'7 stockés au cours d'un cycle antérieur dans la mémoire-tampon intermédiaire 9. Le compteur d'adressage 2 est alors positionné dans l'état logique de bits B2, B3 par ses entrées A'4, A'5 des bits B4 à B7 par ses entrées A'o à A'3 et dans l'état logique de ses en o trées A'6 et A'7 reliées à la mémoire-tampon intermédiaire 9. Ce nouveau positionnement du compteur 2 définit la tâche suivante du cycle machine suivant. En résumé, dans le mot de mémoire adressé par le compteur 2, l'état des deux premiers bits Bo et B1 indique le type d'opération à effectuer au cours du cycle machine. Trois types d'opérations sont possibles dans le mode de réalisation décrit et représentés, ces trois types récapitulés dans le tableau indiqué plus haut sont --envoi d'un ordre de commande - comparaison d'une variable avec une référence, - adressage d'un mot quelconque de la mémoire. Dans les trois cas, la tâche effectuée positionne le compteur d'adressage pour la tâche suivante. L'état des bits BS et B3 sert à positionner le compteur d'adressage dans le cas d'un saut (avance du compteur d'un nombre quelconque de pas, le décodeur d'opération 6 étant positionné, par l'état des bits Bo et B11sur sa sortie SAUT). Les bits B4 à B7 servent à sélectionner la variable ou l'organe de commande à prendre en compte (bits B5 à B7 pour les variables et B4 à B7 pour les organes de commande). Ils servent également, bien entendu, à l'adressage de la mémoire. Le bit B sert en plus d'état de référence lors d'une comparaison avec l'état d'une des variables. Pour changer le programme du dispositif, il suffit de substituer aux circuits la lb, deux autres circuits programmés selon les fonctions à exécuter. Si l'on veut tester le dispositif pour s'assurer de son bon fonctionnement, on inhibe par la borne d'entrée TEST les sorties des mémoires la, lb et on introduit à la place du programme les instructions nécessaires. La sortie de la porte 15 se trouve à l'état logique "1" et les mémoires la lb sont placées en état de "haute indépendance" et sont déconnectées. La capacité de la mémoire 1 peut être facilement étendue en utilisant une ligne de commande pour 2 bits supplémentaires d'adressage, ce qui permet d'allonger le programme. Le dispositif selon l'invention est éoenomique à construire car il n'utilise que des circuits intégrés standards fabriqués par de nombreux constructeurs. La capacité de la mémoire 1 est suffisante pour réaliser des automates de petites dimensions, mais néanmoins puissants grâce à la possibilité de décrire des boucles logicielles. Enfin, l'invention n'est pas limitée au mode de réalisation représenté et décrit ci-dessus, mais en couvre au contraire toutes les variantes. REVENDICATIONS 1. Calculateur séquentiel programmable, caractérisé en ce qu'il comprend une mémoire programmable dans laquelle sont stockées sous forme binaire codée un certain nombre d'instructions définissant chacune un type de tâche à exécuter et l'adresse de l'instruction suivante à prendre en compte, un premier décodeur relié à la mémoire et susceptible de prendre en compte sélectivement un nombre déterminé de variables à surveiller, un second décodeur relié à la mémoire et susceptible d'envoyer un signal de commande sélectivement vers un nombre déterminé d'organes à commander, un troisième décodeur, dit d'opération, relié à la mémoire et aux deux premiers décodeurs et chargé de commander en fonction de la structure de chaque instruction de la mémoire le type de tâche à exécuter, un moyen d'adressage de la mémoire relié à celle-ci et au décodeur d'opération et chargé d'adresser la mémoire sur l'instruction suivante et un moyen de minutage définissant des cycles de fonctionnement du dispositif au cours de chacun desquels est effectuée l'une des tâches affectée à l'instruction adressée en mémoire. 2. Calculateur selon la revendication 1, caractérisé en ce que le moyen d'adressage est un compteur susceptible d'avancer par pas ou par saut. 3. Calculateur selon la revendication 1 ou 2, caractérisé en ce que la mémoire est une mémoire morte et les instructions sont en octet dont les deux premiers bits déterminent le type de tâche à effectuer parmi quatre tâches différentes possibles. 4. Calculateur selon les revendications 2 et 3, caractérisé en ce qu'une première tâche consiste à envoyer un ordre de commande sur un organe à commander sélectionné, une seconde tâche consiste à comparer l'état d'une variable sélectionnée avec l'étape d'un des bits de l'instruction adressée et à faire avancer le compteur d'adressage d'un ou deux pas selon le résultat de la comparaison et une troisième tâche consiste à adresser une instruction quelconque de la mémoire. 5. Calculateur selon la revendication 3, caractérisé en ce qu'en vue de l'exécution de la première tâche, il comporte une porte logique commandant ledit second décodeur et validée par un signal provenant du décodeur d'opération et par l'un des deux premiers bits de l'octet adressé, ledit signal provenant du décodeur d'opération incrémentant d'un pas le compteur d'adressage. 6. Calculateur selon la revendication 3, caractérisé en ce qu'en vue de l'exécution de la seconde tâche, il comporte une porte logique OU-EXCLUSIF dont une première entrée est reliée audit premier décodeur et une seconde entrée est connectée à la mémoire, la sortie de ladite porte étant reliée au décodeur d'opération. 7. Calculateur selon la revendication 3, caractérisé en ce qu'en vue de l'exécution de la troisième tâche, il comporte une mémoire-tampon intermédiaire constituée par une double bascule dont les deux entrées reçoivent deux des bits d'adresse, ladite mémoiretampon étant validée par le second décodeur, et reliée au compteur d'adressage mis en position de saut par le décodeur d'opération. 8. Calculateur selon l'une des revendications 1 à 7, caractérisé en ce qu'il comporte une mémoire-tampon reliée à ladite mémoire et un dispositif pour alimenter en égergie la mémoire seulement pendant un court instant à chaque cycle de fonctionnement du calculateur et mémoriser dans la mémoire-tampon le mot de mémoire adressé en vue de son exploitation ultérieure. 9. Calculateur selon l'une des revendications 1 à 8, caractérisé en ce que le moyen de minutage délivre un premier signal périodique définissant ledit cycle de fonctionnement, un second signal apparaissant pendant la première demi-période et commandant l'alimentation momentanée de la mémoire, et, au cours de la seconde demi-période, un troisième signal simple ou double envoyé au décodeur d'opération en vue de l'avance d'un pas ou de deux pas du moyen d'adressage. 10. Calculateur selon les revendications 6 et 9, caractérisé en ce qu'au cours de la première demi-période du cycle de fonctionnement l'état de l'une des variables surveillées est emmagasiné dans un circuit de mémorisation interposé entre ledit premier décodeur et ladite porte OU-EXCLUSIF. 11. Calculateur selon la revendication 10, caractérisé en ce que ledit circuit de mémorisation est un condensateur. 12. Calculateur selon l'une des revendications 1 à 10, caractérisé en ce que le premier décodeur est un multiplexeur de 8 voies vers 1, le second décodeur est un décodeur de quatre voies vers 16 et le décodeur d'opération est un double multiplexeur de quatre voies vers 1.