Brevet FR2267587A1 — publié le 19751107

La présente invention concerne un appareil destiné a commander le transfert de données d'un ou plusieurs dispositifs d'entrée vers un ou plusieurs dispositifs de sortie. L'invention concerne, plus particulièrement, mais non exclusivement, des machines à écrire automatiques qui comprennent un ou plusieurs dispositifs de lecture ou d'écriture de données, présentées sous forme codée, sur un moyen tel que des cartes magnétiques, une imprimante quí imprime les données qui lui sont fournies sous forme codée, un clavier qui permet d'introduire manuellement des données dans l'appareil, et des circuits de commande qui règlent le fonctionnement de ces dispositifs. Il est avantageux dans un tel appareil d'utiliser dans les circuits de commande un processeur comprenant une mémoire qui peut recevoir des caractères sous forme codée du ou de chacun des dispositifs d'entrée et qui peut fournir des caractères au, ou à chacun des dispositifs de sortie, et un décodeur qui décode les instructions conservées en mémoire et fournit des signaux de commande du fonctionnement des dispositifs d'entrée et de sortie correspondants aux instructions décodées. De tels processeurs peuvent être réalises, par exemple, sous forme de circuits intégrés monolithiques, et sont habituellement capables d'effectuer différentes opérations sur les caractères codes tandis que ceux-ci sont conserves en mémoire.Etant donné qu'un micro-processeur de ce type est très compact et peut remplir plusieurs fonctions, son emploi pour commander les dispositifs d'entrée et de sortie de 7'appareil considéré ici est très avantageux. Cependant, cet emploi soulève un probleme lié au fait que le processeur doit commander le fonctionnement de plusieurs dispositifs d'entrée et de sortie dont deux ou plus de deux peuvent être utilisés sumultanément, alors qu'il ne peut, en fait, que remplir une seule fonction a la fois. Dans le cas, par exemple, d'une machine à écrire automatique, il peut être souhaitable pour l'opérateur d'introduire des données sur le clavier sans avoir à être interrompu parla nécessité de contrôler à tout moment l'un ou l'autre des dispositifs, par exemple, un dispositif lecture-écriture de cartes magnétiques qui écrit simultanément des données sur une carte magnétique. Selon la présente invention, il est fourni un appareil destiné à la commande du transfert de données d'un ou plusieurs dispositifs d'entrée à un ou plusieurs dispositifs de sortie, qui est caractérise en ce qu'il comporte, en combinaison, un processeur comprwenant d'une part, une mémoire agencée pour recevoir des caractères sous forme codée du, ou de chacun des dispositifs d'entrée et pour fournir des caractères au, ou à chacun, des dispositifs de sortie, et d'autre par des moyens de décodage agences pour décoder les carac tères d'instruction conservés dans la mémoire et pour fournir des signaux de commande du fonctionnement des dispositifs d'entrée et de sortie en réponse aux instructions décodées, une mémoire morte connectée au processeur de façon que les caractères codés puissent être transférés de la mémoire morte à la mémoire, et une mémoire à accès aléatoire connectée au processeur de façon que les caractères codés puissent être transférés entre la mémoire à accès aléatoire et le processeur, ladite mémoire morte contenant des moyens à programme divisés en plusieurs sections comportant une section séparée correspondant à chacun des dispositifs d'entrée ou de sortie et comprenant des instructions destinées au fonctionnement de ce dispositif et une section comprenant des moyens à programme principal d'instructions destinées à la commande du transfert de caractères entre les dispositifs d'entrée et de sortie, chaque section des moyens à programme étant divisée en plusieurs sous-sections chacune correspondant à un temps d'exécution inférieur à une valeur maximum prédéterminée et chacune correspondant à une adresse spécifique dans la mémoire morte ;; la mémoire morte contenant également des moyens à programme d'exécution qui, en cours d'utilisation, sont introduits dans la mémoire à accès aléatoire et qui sont sous la forme d'une boucle et divisés en sections, chacune correspondant à l'une des sections desdits moyens à programme, et chacune comprenant une instruction d'appel qui, lorsqu'elle est décodée par le décodeur, fait appliquer les instructions d'une sous-section de la section correspondante des moyens à programme contenus dans la mémoire morte, dont l'adresse est spécifiée par l'instruction d'appel, séquentiellement, à la mémoire du processeur chacune des sous-sections des moyens à programme se terminant par une instruction qui, lorsqu'elle est décodée, provoque un retour aux moyens à programme d'exécution ; et quelques unes au moins des sous-sections des moyens à programme contenant des instructions qui provoquent l'écriture d'une nouvelle adresse dans la section correspondante des moyens à programme d'exécution de la mémoire à accès aléatoire de façon que, dans la boucle des moyens à programme d'exécution suivant immédiatement, les moyens à programme appellent une sous-section différente contenue dans cette section des moyens à programme. Le temps d'exécution maximum des sous-sections des moyens à programme est choisi de façon telle que le temps total pris pour achever une simple boucle des moyens à programme d'exécution, y compris le temps d'exécution des instructions de chacune des sous-sections appelées par les moyens à programme, est inférieur à l'intervalle de temps minimum entre les demandes d'accès au processeur de chacun des dispositifs d'entrée et de sortie. L'invention sera mieux comprise à l'aide du complément de description qui suit, cette description étant faite en se référant aux dessins annexés sur lesquels La figure 1 illustre un schéma logique d'une machine à écrire automatique construite selon la présente invention, et la figure 2 est un organigramme relatif aux moyens à programme contenus dans la mémoire morte de appareil de la figure 1. Dans l'exemple, on prévoit une machine à écrire automatique comprenant une machine à écrire électrique 10, qui est constituée, en fait, d'un clavier 12 à fonctionnement manuel et d'une imprimante 14, qui imprime des caractères lorsque des signaux électriques lui sont appliqués, de deux mécanismes 16 et 18 d'écriture et de lecture de cartes magnétiques, chacun de ces mécanismes étant propre à reproduire des signaux enregistres sous forme numérique sur des cartes magnétiques, et à enregistrer des signaux sur les cartes, et de circuits de commande comprenant un micro-processeur 20 destiné à commander le fonctionnement de, et l'interaction entre, la machine à écrire 10 et les mécanismes 16 et 18 d'écriture et de lecture de cartes. Le micro-processeur 20 se présente sous la forme d'un circuit intégré MOS sur une plaquette unique, ayant un accumulateur 22 à huit bits qui peut recevoir des caractères codés à huit bits, et un décodeur 24 qui peut décoder des caractères d'instruction contenus dans l'accumulateur. Le micro-processeur est par exemple celui qui est vendu sous la dénomination "8008 8-bits Parallel Central Processor Unit" par la société InteL Corporation, Santa Cl ara, Californie, (EUA). Le micro-processeur contient également des registres pour garder en mémoire les caractères modifiés par le processeur et une unité logique arithmétique permettant d'accomplir diverses opérations logiques et mathématiques sur les caractères dans le micro-processeur.Le micro-processeur 20 est connecte au clavier 12 par une unité de commande 26 et des circuits 28 d'interface convenables, à l'imprimante 14 par l'unité de commande et d'interface 30, et aux deux mécanismes d'écriture et de lecture de cartes 16 et 18 par l'unité de commande et des interfaces respectives 32 et 34. Ainsi les caractères d'instruction peuvent être transférés des différents dispositifs à l'accumulateur 22, et les données et les caractères d'instruction peuvent être transférés d'un dispositif à l'autre à travers le micro-processeur 20. Des mémoires-tampon sont fournies pour faciliter le transfert de caractères entre les dispositifs. L'appareil comprend également une mémoire 36 divisée en trois sections in @écendantes, c'est-à-dire an@ mémoire merte (ROM) 38 qui contient des nrogrammes de commande des composants d@@@ @ppareil @@mme d6crit eides @@ne. une mém@@ie@@à@@d@cè@ aléntoire (RAM) 40 oh an peut reecpier les @rogrnm@@s, et une a@tre mémaire à accès aléatoire 42 qui peut emmag@s@ner des dennées feç@ts de, ou transmises, aux mécanismes de lectu@@ et d'éci@tare @@ e@@tes.Une @artie de la mémeire à accès aléa- t@i@ 42 est @tilisée en tant que mémoire tampen pour le clavier afin d'emmagasiner ceux des caractères reque du elavier qui représentent à la fois des données et des opérations fonctionnelles, de serte que les dernées neuvent être introduites sur le elavier de façon continue, par exemple quand l'imprimante im@eisme des données qui sont lues sur une carte magnétique.Pour faciliter le transfert entre la mémoire et les données lues sur les cartes magnétiques, ou inscrites sur les cartes magnétioues, par l'un ou l'autre des mécanismes d'éctiture ou de lecture il existe un accès direct à la memoire RAM 42 par un circuit d'accès 44 et des interfaces convenables 46 et 48, ce qui évite le passage des données transférées à travers le processeur 20. La mémoire morte 38 contient un programme Oivisé en quatre sections, notées 50, 52, 54 et 56 sur l'organigramme de la figure 2. Les trois sections de programme 50, 54 et 56 comprennent des programmes de commande de fonction- nement du clavier 12, de 1 'imprimante 14, et des mécanismes li et 18 d'écriture et de lecture de cartes et la section des programmes 52 comprend un programme principal de commande de l'interaction entre ces dispositifs. Chacune des sections de programme est divisée en une série de sous-sections (A,B,C...) ayant chacune un temps d'exécution inférieur à 4 millisecondes, chacune d'elles ayant une adresse spécifique dans la mémoire morte 38. La mémoire morte 38 contient également un programme d'exécution (montré en 58 sur la figure 2) qui se présente sous la forme d'une boucle et qui est divisé en quatre sections 50', 52', 54', 56', chacune d'elles correspondant à l'une des sections de programme mentionnées ci-dessus, 50, 52, 54 et 56. Chaque section du programme d'exécution 58 comprend une instruction "d'appel" et une adresse à deux caractères spécifiant l'adresse de l'une des sous-sections -de la section correspondante de programme. Le décodage de l'instruction 'd'appel' par le décodeur 24 du micro-processeur 20, après transfert de l'instruction l'accumulateur 22, provoque le branchement du programme sur la sous-section du programme spécifiée par l'adresse de la section du programme d'exécution. Chaque section du programme d'exécution peut également comprendre des instructions relatives aux opérations de gestion de l'appareil. Chacune des sous-sectio du programme se termine avec une instruction qui effectue le retour du programme au programme d'exécution. La sous-section de programme peut également effectuer l'inscription d'une nouvelle adresse dans la section correspondante du programme d'exécution 58, de sorte qu'a la nouvelle boucle du programme d'exécution celui-ci effectuera le branchement sur une sous-section différente de la même section de programme. Pour permettre la modification du programme d'exécution dans ce sens celui-ci-est recopié sur la mémoire à accès aléatoire 40 pendant la phase d'initialisation de l'appareil. En fonctionnement, le programme d'exécution 58 est recopié dans la mémoire à accès aléatoire 40 comme décrit plus haut. Les caractères d'instruction du programme de supervision d'exécution sont transférés au registre d'instruction du micro-processeur où ils sont décodés, ce qui fait se brancher le programme sur l'une des sous-sections de la mémoire 40. Les instructions de la soussection sont, par suite, transférées séquentiellement au micro-processeur ou ils sont décodés pour produire les signaux de commande du fonctionnement du dispositif associé, ou, dans le cas du programme principal, les signaux de commande de l'interaction entre les dispositifs.A la fin de la sous-section de programme, le programme retourne au programme d'exécution qui effectue le branchement sur une sous-section de la section suivante de programme de la mémoire 40. Puisque le temps d'exécution maximum de chaque sous-section de programme est de 4 millisecondes, et que le temps total d'exécution des instructions du programme d'exécution est approximativement de 4 millisecondes, le temps nécessaire pour accomplir une boucle simple du programme d'exécution est au plus de 20 millisecondes. Par conséquent, aucun des dispositifs d'entrée ne peut avoir son accès au micro-processeur retardé de plus de 20 millisecondes. Par exemple si on appuie sur une touche du clavier pour introduire une donnée dans l'appareil, l'appareil est prêt à recevoir une autre donnée du clavier après 20 millisecondes seulement. Puisque cet intervalle de temps est beaucoup plus petit que le temps qui s'écoule normalement entre l'utilisation des deux touches successives, l'opérateur peut introduire des données sur le clavier sans que se produisent d'interruptions notables par suite de la commande par le micro-processeur de llun ou de plusieurs autres dispositifs pouvant fonctionner simultanément avec le clavier. La figure 2 montre à titre d'exemple une situation dans laquelle 1 'ins- truction "d'appel" de la section de programme relative au clavier du programme d'exécution provoque le branchement du programme sur la sous-section "D" du programme de clavier. La sous-section se termine avec une instruction de retour au programme d'exécution, et provoque llinscription d'une nouvelle adresse de la sous-section relative au clavier du programme diexecution si un signal d'état issu du clavier indique que l'on a appuyé sur le bouton "ARRET" du clavier. Si l'on n'a pas appuyé sur le bouton "ARRET", le programme retourne au programme d'exécution sans inscription de nouvelle adresse et par conséquent, la sous-section "D" est appelée à la boucle suivante. Ainsi des fonctions, par exemple la fonction "tabulation" de l'imprimante, qui demandent un long temps d'exécution peuvent être accomplies pendant le temps de plusieurs boucles du programme d'exécution,'le programme revenant à la même sous-section de programme pendant chaque boucle jusqu'à ce que un signal d'état provenant du dispositif mis en jeu indique que la fonction a été accomplie. La sous-section provoque alors l'inscription d'une nouvelle adresse dans la section du programme d'exécution et le programme se branche sur une autre sous-section à la boucle suivante. Une fonction qui nécessite un programme formé de plusieurs sous-sections disposées séquentiellement peut être mise en oeuvre de la même façon en provoquant l'inscription dans le programme d'exécution, par chacune des sous-sections, de l'adresse de la sous-section suivante de la séquence. L'adresse de chacune des sections du programme d'exécution 58 peut également être inscrit manuellement grâce à des touches spéciales placées sur le clavier 12, ce qui donne à l'opera- teur le contrôle de certaines fonctions de l'appareil.Par exemple, si l'on désire enregistrer des données sur une carte magnétique dans l'un des mécanismes 16 et 18 de lecture et d'écriture de cartes, en appuyant sur une touche "ENREGISTREMENT" on provoque l'inscription dans la sous-section de programme 56', relative au mécanisme d'écriture et de lecture, de l'adresse de la soussection appropriée du programme 56, relatif au mécanisme d'écriture et de lecture, qui met le mécanisme en mode "écriture". Dans certains cas, une soussection de programme peut provoquer l'inscription de l'adresse de la section de programme d'exécution correspondant à une section différente du programme recopié à partir de la mémoire 38.Par exemple, la détection d'une erreur de fonctionnement de l'un des mécanismes 16 ou 18 d'écriture ou de lecture de cartes peut provoquer l'inscription d'une nouvelle adresse dans la section 50' du programme d'exécution correspondant à la section 50 du programme relatif au clavier, le programme appelle alors la sous-section appropriée, ce qui permet de donner une indication d'erreur à l'opérateur du clavier, par exemple, en faisant allumer une lampe. Le micro-processeur effectue le contrôle de parité habituel sur chacun des caractères transférés à l'accumulateur. Un autre contrôle est assuré au moyen d'un caractère "contrôle de bloc", fourni à la fin de chaque bloc de caractères extrait ou introduit sur une carte magnétique, les données étant inscrites en blocs discrets de longueur prédéterminée et les blocs de données dont la longueur est inférieure à la longueur prédéterminée étant complétés, par exemple, par des zéros. Le premier bit du caractère de contrôle de bloc" indique la parité du groupe formé des premiers bits des autres caractères du bloc, le second bit du caractère de contrôle du bloc indique la parité du groupe formé des seconds bits des autres caractères, etc.Chaque fois qu'un bloc de caractères traverse le micro-processeur, la parité des groupes de premiers bits, de seconds bits, etc., des caractères du bloc est calculée par le micro-processeur et comparée aux bits du caractère de "contrôle de bloc". Ce contrôle permet de détecter les erreurs qui sont oubliées par le contrôle de parité normal, par exemple lorsqu'un bit "1" et un bit "0" d'un caractère ont été intervertis. Dans le mode de réalisation décrit, un programme unique 56 commande les deux mécanismes 16 et 18 d'écriture et de lecture, de sorte que si les deux mécanismes fonctionnent simultanément deux boucles du programme de supervision d'exécution sont nécessaires pour rappeler les deux sous-sections mises en jeu dans le programme 68. Il est clair que, au lieu de cette disposition, on pourrait utiliser des programmes séparés pour les deux mécanismes d'écriture et de lecture de cartes, et deux sections séparées dans le programme d'exécution On doit également comprendre que la présente invention pourrait êtreappliquée à des machines à écrire automatiques utilisant d'autre milieux d'enregistrement, par exemple des bandes magnétiques, et pourrait être appliquée à d'autres appareils destinés à la commande du transfert de données codées entre des-dispositifs d'entrée et des dispositifs de sortie. REVENDICATIONS 1. Appareil destiné à commander le transfert de données d'un ou plusieurs dispositifs d'entrée à un ou plusieurs dispositifs de sortie, caractérisé en ce qu'il comprend en combinaison, un processeur comportant une mémoire agencée pour recevoir des caractères sous forme codée du, ou de chacun, des dispositifs d'entrée et pour fournir des caractères au, ou à chacun, des dispositifs de sortie, et d'autre part, des moyens de décodage propres à décoder des caractères d'instruction contenus dans la mémoire et pour fournir des signaux de commande du fonctionnement des dispositifs d'entrée et de sortie en réponse aux instructions décodées, une mémoire morte connectée au processeur de façon que les caractères codes puissent être transmis de la mémoire morte à la mémoire, et une mémoire à accès aléatoire connectée au processeur de façon que les caractères codés puissent être transférés entre la mémoire à accès aléatoire et le processeur, la mémoire morte contenant des moyens programme divisés en plusieurs sections comprenant une section séparée pour chacun des dispositifs d'entrée et de sortie et comportant des instructions destinées à commander le fonctionnement de ce dispositif et une section comportant des moyens à programme principal d'instructions destinés à commander le transfert des caractères entre les dispositifs d'entrée et de sortie, chaque section des moyens à programme étant divisée en plusieurs sous-sections, chacune ayant un temps d'exécution inférieur à une valeur maximum prédéterminée et chacune ayant une adresse spécifique dans la mémoire morte ;; la mémoire morte contenant également des moyens à programme d'exécution qui, en utilisation, sont introduits dans la mémoire à accès aléatoire et qui se présentent sous la forme d'une boucle et sont divisés en sections, chacune correspondant à l'une des sections des moyens à programme et chacune comportant une instruction d'appel qui, lorsqu'elle est décodée par les moyens de décodage, fait appliquer les instructions d'une sous-section de la section correspondante des moyens à programme de la mémoire morte dont l'adresse est spécifiée par l'instruction d'appel, séquentiellement, à la mémoire du processeur ;; chacune des sous-sections des moyens à programme se terminant par une instruction qui, lorsqu'elle est décodée, provoque le retour aux moyens à programme d'exécution, quelques-unes au moins des sous-sectioe des moyens à programme comprenant des instructions qui provoquent l'inscription d'une nouvelle adresse dans la section correspondante des moyens à programme d'execution de la mémoire à accès aléatoire afin qu'à la boucle immédiatement suivante des moyens à programme d'exécution les moyens à programme appellent une sous-section différente contenue dans cette section des moyens à programme. 2. Appareil selon la revendication 1, caractérisé en ce que le processeur est un micro-processeur réalisé sous forme de circuit intégré monolithique. 3. appareil selon l'une quelconque des revendications 1 et 2, caractérisé en ce que quelques-unes au moins des sous-sections des moyens à programme comportent des instructions destinées à inscrire une nouvelle adresse dans une section des moyens à programme d'exécution autre que celle qui est associée à la sous-section contenant l'instruction. 4. Appareil selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend des moyens destinés à inscrire une nouvelle adresse dans une section choisie parmi les sections des moyens à programme d'exécution en réponse à une action manuelle à l'entrée de l'appareil. 5. Appareil suivant l'une quelconque des revendications précédentes, caractérisé en ce qu'il se présente sous la forme d'une machine à écrire automatique, les dispositifs d'entrée comprenant un clavier à utilisation manuelle et un ou plusieurs dispositifs destinés à reproduire des données enregistrées sous forme codée sur un milieu d'enregistrement, et les dispositifs de sortie comprenant une imprimante et un ou plusieurs dispositifs destinés à enregistrer des données sous forme codée sur un milieu d'enregistrement. 6. Appareil selon la revendication 5, caractérisé en ce que les dispositifs destinés à reproduire et à enregistrer des données sont agencées pour reproduire des données issues de cartes magnétiques et enregistrer des données sur des cartes magnétiques. 7. Appareil selon l'une quelconque des revendications précédentes, caractérisé en ce que le temps maximum d'exécution de chaque sous-section des moyens à programme est de 4 millisecondes.