FR 2526561 A1 19831110 FR 8305391 A 19830331 Système à micro-ordinateurs à deux micro-processeurs " La présente invention concerne un système à micro- ordinateur et notamment un système utilisant plusieurs processeurs. Au cours de la période récente, les ordinateurs dits "domestiques" se sont très largement répandus et la plupart de ces ordinateurs disponibles actuellement uti- lise des unités centrales de traitement (CPU) à 8 bits. Dans une unité CPU à 8 bits, le flux des données est traité à chaque fois selon une adresse à 16 bits et une donnée à 8 bits. Pour augmenter la vitesse de traitement et avoir une adresse directement accessible, on envisage d'ajouter une unité CPU supplémentaire de préférence une unité CPU à 16 bits sur les ordinateurs domestiques, existants. En conséquence, l'ordinateur domestique doit être géré par deux unités CPU A titre d'exemple, on examinera ci-après un système à CPU multiples ou à plusieurs CPU tels que ceux représentés aux figures 1 et 2; aux figu- res 1 et 2, la référence 1 désigne un CPU à 8 bits et la référence 2 un CPU à 16 bits. En outre, selon l'art antérieur de la figure 1, le système comporte des mémoires 3 et 4 La mémoire 3 est directement reliée à l'unité CPU 1 et la mémoire 4 est reliée à l'unité CPU 2 Les deux unités CPU,1 et 2 sont reliées l'une à l'autre par l'intermédiaire d'un bus et d'un port I/0 (entrée/sortie) 5. Ainsi dans un tel système d ordinateur, les deux unités CPU 1 et 2 peuvent utiliser ou accèder séparément aux mémoires 3 et 4 et permettre un traitement des don- nées de façon exactement simultanée En outre, le port I/O 5 permet l'échange de données entre les CPU 1 et 2. Toutefoi S dans un tel système d'ordinateur, lors- que les données sont échangées entre les unités CPU 1 et 2, il est nécessaire d'effectuer une opération dite de prise de contact C (opération communément appelée "handshake") pour chaque donnée de un octet, ce qui ralentit l'échange ou le traitement des données. De même dans le système de l'art antérieur repré- senté à la figure 2, une mémoire 6 est branchée sélecti- vement sur l'une ou l'autre des unités CPU 1 et 2 par un multiplexeur 7. Ainsi dans un tel système d&ordinateur, bien que l'échange des données entre les unités CPU 1 et 2 se fasse à une vitesse très élevée, les unités CPU 1 et 2 ne peuvent traiter simultanément les données, si bien qu'il n'est pas possible d'utiliser pleinement les avan- tages du système à double unité CPU. La présente invention a pour but de créer un sys- tème à micro-ordinateur permettant de remédier aux incon- vénients des systèmes connus, et se propose de créer no- tamment un système de micro-ordinateur à double unité CPU permettant un traitement des données à grande vitesse et assurant un traitement réellement simultané des données. A cet effet, l'invention concerne un système à micro- ordinateur ayant deux unités centrales de traitement CPU, comportant un moyen d'entrée/sortie (I/0) relié à la première unité centrale de traitement pour introduire les données et sortir les données, une première mémoire reliée à la première unité centrale de traitement et une seconde mémoire reliée à la seconde unité centrale de traitement, la seconde mémoire étant associée à une adresse entrée/ sortie (I/O) de la première unité centrale de traitement. La présente invention sera décrite plus en détail à l'aide des dessins annexés, dans lesquels: les figures 1 et 2 sont des schémas-blocs montrant chacun un système à micro-ordinateur selon l'art antérieur. les figures 3 A et 3 B sont des schémas servant à expliquer une fonction d'exécution d'un microprocesseur CPU de type Z 80 A pour l'exécution d'une instruction entrée/sortie (I/O). la figure 4 est un schéma-bloc de principe d'un mode de réalisation d'un système à micro-ordinateur selon l'invention. DESCRIPTION D'UN MODE DE REALISATION PREFERENTIEL DE L'INVENTION: La figure 4 représente par un schéma-bloc un exem- ple de réalisation de l'invention; dans cet exemple, la référence Il désigne une unité centrale de traitement CPU à 8 bits de type parallèle constituée par exemple par le microprocesseur Z 80 A fabriqué par Zilog (ou un micropro- cesseur équivalent) Cette unité CPU 11 (de type Z 80 A) présente l'instruction entrée/sortie (I/O) suivante en plus de l'instruction "charge" de l'instruction "calcul" etc I 1: IN A, n Cette instruction commande le passage de la donnée d'entrée d'un périphérique d'adresses I/O N (n = O 255) vers un registre A: I 2: OUT n, A Cette instruction commande l'envoi de la donnée contenue dans le registre A vers le périphérique à l'adresse I/O n. Lors de l'exécution des instructions entrée/sortie (I/O) ci-dessus comme représenté à la figure 3 A, les bornes de données Do D 7 et les bornes d'adresses cor- respondant aux 8 bits supérieurs A 8 A 15 de l'unité CPU 11 sont attribuées à la donnée pour accéder au registre A alors que les bornes d adresses correspondant aux 8 bits inférieurs A O A sont attribuées à l'adresse entrée/sortie (I/O) n. II 1: IN r, (C) Cette instruction commande l'envoi des données d'un périphérique relié à l'adresse entrée/sortie (I/O) défi- nie par les registres BC vers un registre r (le registre r est l'un des registres A, B, C, D, E, H, L) II 2: OUT (C), r Cette instruction commande le passage du jeu de données du registre r vers le périphérique relié à l'adres- se entrée/sortie (I/O) définie par les registres BC. Lors de l'exécution des instructions entrée/sortie (I/O) ci-dessus comme représenté à la figure 3 B, les bornes de données Do D 7 de l'unité CPU 11 sont attri- buées aux données du registre r; les bornes d'adresses correspondant aux 8 bits inférieurs A A 7 sont attri- buées aux données du registre C et les bornes d'adresses des 8 bits supérieurs A 8 A 15 sont attribuées aux don- nées du registre B. Selon la figure 4, la référence 12 désigne une mémoire morte ROM contenant par exemple un programme moniteur et un programme interprète BASIC; la référence 13 désigne une mémoire vive RAM pour la zone de travail et la zone réservée à l'utilisateur Les mémoires ROM 12 et RAM 13 sont reliées l'une à l'autre par l'intermé- diaire d'un bus de données 21, d'un bus d'adresses 22 et d'un bus de commande 23. La référence numérique 14 désigne un générateur de cadence (horloge) qui fournit une cadence (encore appelée "horloge") à l'unité CPU l- En outre, les bus 21-23 sont respectivement reliés à l'autre dispositif entrée/sortie (I/O) 15 nécessaire pour un système d'or- 5. dinateur général tel qu'un clavier complet, un moniteur de tube cathodique (appelé "dispositif CRTC") pour un moniteur ou écran de contrôle à tube cathodique (CRT) ou analogue. La référence 31 désigne une unité de traitement CPU à 16 bits, de type parallèle; dans ce mode de réa- lisation, l'unité CPU 31 est le microprocesseur 18086 fabriqué par Intel Il peut également s'agir d'un micro- processeur équivalent; ce microprocesseur travaille en mode maximum La référence 32 désigne une mémoire morte ROM qui contient un programme; la mémoire vive RAM 33 fournit la zone de travail et la zone réservée à 1 "uti- lisateur; la référence 34 s'applique à un émetteur-récepteur la référence 35 désigne un verrou; la référence 36 un circuit de commande de bus et la référence 37 un circuit arbitre de bus Les circuits 31 et 34-37 sont réunis par un bus local 38; les mémoires 32 et 33 ainsi que les circuits 34 à 36 sont reliés par l'intermédiaire d'un bus de données 41 tel qu'un bus de système, un bus d'adresses 42 et un bus de commande 43 pour le bus de système La référence 44 désigne une ligne de commande de bus pour le bus de système. Le fonctionnement du circuit arbitre de bus 37 sera décrit ci-après Selon le mode de réalisation de la figure 4, le microprocesseur 11 (Z 8 OA et le microprocesseur 31 (I 8086) doivent être commandés respectivement pour accéder aux mémoires par l'intermédiaire du bus multiple par les circuits de commande de bus 36 et 63. Par exemple, lorsque le microprocesseur 31 (I 8086) est en lecture et/ou en inscription de données par rap- port à la mémoire vive RAM 33, le microprocesseur il (Z 80 A) ne peut pas accéder à la mémoire RAM 33 avant la fin du cycle de bus du microprocesseur 31 (I 8086) Ainsi le circuit arbitre de bus 37 joue en quelques sorte un rôle de commande. Les circuits 34-37 sont constitués respectivement par les composants I 8286, 18282, 18288 et I 8289; ces circuits sont utilisés de façon générale pour le micro- processeur 31 (I 8086) fonctionnant en mode maximum cela ne nécessite pas de description de détail. Pour former le système à double microprocesseur ou double unité CPU utilisant les deux microprocesseurs 11 et 31; 1 invention prévoit un montage particulier tel que le microprocesseur 31 (I 8086) et les circuits 32-41 correspondants soient répartis sur l'adresse entrée/ sortie du microprocesseur 11 (Z 80 A) alors que le micro- processeur Il (Z 80 A) et les circuits 12-23 correspondants sont répartis comme périphériques avec une fonction DMA (accès direct à la mémoire) vue à partir du microproces- seur 31 (I 8086); en effet dans ce mode de réalisation, le système autour du microprocesseur 11 (Z 80 A) a un bus de priorité par rapport au microprocesseur 31 (I 8086). Dans ce mode de réalisation selon l'invention (figure 4) on peut estimer que l'ordinateur utilisant le micropro- cesseur 11 (Z 80 A) comme processeur et l'ordinateur uti- lisant le microprocesseur, 31 (I 8086) comme processeur sont combinés l'un à l'autre Néanmoins, le système d'or- dinateur utilisant le microprocesseur 31 (I 8086) ne com- porte pas de dispositif entrée/sortie Il est ainsi nécessaire pour ce dernier ordinateur de communiquer avec le microprocesseur 11 (Z 80 A) et d'utiliser le dispo- sitif entrée/sortie (I/0) 15 du microprocesseur 11 (Z 80 A). Ainsi dans ces conditions, l'entrée des données, le traitement des données et la sortie des données sont des opérations exécutées par les deux microprocesseurs 11 et 31. Comme cela est bien connu, puisque le microproces- seur 31 (I 8086) est un microprocesseur à 16 bits, il con- vient pour le traitement des données alors que le micro- processeur 11 (Z 80 A) qui est un microprocesseur à 8 bits convient pour l'entrée et la sortie des données. Les deux microprocesseurs Il et 31 peuvent travail- ler en combinaison, de façon parallèle, ce qui se traduit par un traitement global rapide des données. Pour cela, un émetteur-récepteur 51 à 8 bits est prévu entre les bus de données 21 et 41 Un décodeur 55 reçoit les 8 bits inférieurs A 7 A du bus d'adresses 22, un signal de demande entrée/sortie (I/0) et les signaux de lecture et d'inscription du bus de commande 23 pour générer ainsi un signal d'adresses entrée/sortie (I/0) et un signal de direction Le signal d'adresses entrée/ sortie (I/0) est fourni à l émetteur-récepteur 51 comme signal de porte G et le signal de direction est également fourni à l'émetteur-récepteur 51. Le circuit comporte un verrou 52 à 4 bits qui reçoit sur sa borne d'entrées les 4 bits inférieurs D 3 Do du bus de données 21 et la borne de sortie de ce verrou est reliée aux 4 bits supérieurs A 19 A 16 du bus d'adresses 42 Le circuit comporte également un verrou 53 à 8 bits dont la borne d'entrée est reliée au bus de données 21 et dont la borne de sortie est reliée aux 8 bits moyens A 15 -A 18 du bus d'adresses 42 En outre, les 8 bits moyens A 15 A 8 du bus d'adresses 22 sont couplés par l'intermédiaire d'un circuit de commande de bus 54 aux 8 bits inférieurs A 7 A O du bus d'adresses 42. Le circuit comporte également un décodeur 56 qui reçoit les 8 bits inférieurs A 7 A O du bus d'adresses 22 et le signal de demande entrée/sortie (I/0) ainsi que le signal d'inscription du bus de commande 23 pour déco- der les adresses entrée/sortie (I/0) Les adresses entrée/ sortie (I/0) Y O et Y 1 sont respectivement appliquées aux verrous 52 et 53 comme signaux de cadence. Ainsi lorsque l'unité CPU 31 et les circuits 32-44 sont vus de l'unité CPU 11, ils sont associés aux adres- ses entrée/sortie (I/0) par les circuits 51-54. La référence numérique 61 concerne un circuit géné- rateur de signal d-état; la référence 62 concerne un circuit arbitre de bus et la référence 63 un circuit de commande de bus Dans ces conditions, le circuit généra- teur de signal d'état 61 a pour but de générer des signaux d état 50 S 2 qui sont équivalents aux signaux d état ^ 52 de l-unité CPU 31 en mode maximum A cet effet, le circuit générateur de signal d'état 61 se compose de trois bascules bistables de type D (encore appelées flip- flop de type D) et de circuits logiques; ce générateur est couplé au bus de commande 23 et reçoit la cadence du générateur de cadence 14 ainsi qu'un signal de validation d'adresses AEN du circuit arbitre de bus 62 pour générer ainsi les signaux d'état S, S 0 2 Les signaux d'état -50 52 et la cadence fournie par le générateur de cadence 14 sont appliqués respecti- vement au circuit arbitre de bus 62 et au circuit de commande de bus 63 couplés respectivement sur le bus de commande 23 et la ligne de commande de bus 44. Ainsi du fait de l'existence des circuits 61-63, l'unité CPU 11 (Z 80 A) lorsqu'elle est vue de l'unité cen- trale CPU 31 peut être considérée comme une unité centra- le CPU équivalent à celui-ci à savoir à l'unité CPU 31 (I 8086) en mode maximum. A ce moment, un codeur de priorité 64 est branché entre les circuits arbitres de bus 62 et 37 et ainsi l'unité CPU Il (Z 80 A) présente une priorité de bus par rapport à l'unité CPU 31 ( 18086) Les circuits 62 64 sont aussi classiques que les circuits 34-37. Le signal AEN du circuit arbitre de bus 62 est appliqué aux verrous 52 et 53 et au circuit d'entrainement 54 comme signaux d'autorisation de sortie (signaux de porte). A titre d'exemple, les circuits 11-14 et les bus 2123 constituent un ordinateur dit ordinateur hôte et les autres circuits peuvent être regroupés et branchés sur cet ordinateur. Selon ce montage, lorsquil n'y a pas d'accès aux données entre les unités CPU il et 31, l'unité CPU 11 effectue le traitement des données selon le programme contenu dans la mémoire ROM 12 pendant que l'unité CPU 31 effectue le traitement des données selon le programme contenu dans la mémoire ROM 32 Ainsi, les unités CPU 11 et 31 peuvent effectuer un traitement de données exacte- ment indépendant et simultané. Lors d'un accès aux données entre les unités CPU 11 et 31, les opérations suivantes se déroulent: CAS (A): Lorsque la donnée est transférée de l'unité CPU 11 à l'unité CPU 31: A i: L'instruction de sortie entrée/sortie (I/O) de l'unité CPU 11 assure l'adressage du verrou 52 pour y bloquer les 4 bits supérieurs A 9 A 6 de la mémoire RAM 19 16 33 (les adresses d'en-tête auxquelles est transférée la donnée). A-ii: Par l'instruction de sortie entrée/sortie (I/O) de.l'unité CPU 11, le verrou 53 est adressé pour y blo- quer le S 8 bits moyens A 15 A 8 de la mémoire RAM 33. A-iii: Un octet de données d'une certaine adresse de la mémoire RAM 33 est chargé par exemple dans le registre A de l'unité CPU 11. A-i V: Parmi les instructions de sortie entrée/sortie (I/O) de l'unité CPU 11, l'instruction de sortie OUT (C), A, du terme précédent II-2 est exécutée En effet pour cette instruction de sortie, la donnée enregistrée dans le registre B de l'unité CPU 11 est appliquée par le cir- cuit d'entralnement 54 à la mémoire RAM 33 pour les 8 bits d'adresses inférieurs A A O En même temps, la 7 O' donnée contenue dans le registre C est décodée par le décodeur 55 pour adresser l'émetteur-récepteur 51 et mettre celui-ci en mode de réaction directe de façon que les donnees contenues dans le registre A soient fourrnies à la mémoire RAM 33, Dans ce cas comme on a AEN = "L" la mémoire RAM 33 est mise en mode d inscription par le circuit de commande de bus 36 et les acresses de la memoire RAM 33 sont désignées car les sorties des verrous 52 et 53 et le circuit d entrairnement 54 de façon que ces circuits 52-54 assurent I inscription de la donnée dans le registre A de 1 unite CPU Il dans la mémoire RAM 33 aux adresses définies par les circuits 52-54. En effet, un octet de données d une certaine adres- se de la mémoire RAM 13 est transféré à une certaine adresse de la mémoire RAM 33 Lors de ce transfert-de données, le circuit arbitre de bus 37 commande l'unité - CPU 31 pour la mettre en mode d'attente et les bus 41-43 sont tous isolés par rapport au côté de l'unité CPU 31. A-v; Les points A-iii et A-iv (si nécessaire les points A-i et A-ii) seront répétés pour transférer les données d'un octet chacune de la mémoire RAM 13 vers la mémoire RAM 33. A-vi: Après le transfert de toutes les données néces- saires, un drapeau est mis à l'adresse particulière de la mémoire RAM 33 comme dans le procédé correspondant par exemple au transfert des données et ce transfert se termine CAS (B): Il s'agit du transfert des données de l'unité CPU 31 vers l'urnité CPU I 1: B-i: Parl'instruction de sortie entrée/sortie (I-/O) de l'unité CPU 11 on adresse le verrou 52 pour y bloquer les 4 bits supérieurs A 19 A 16 de la mémoire RAM 33 19 16 (les bits d-adresses d'en-tete de l'unité CPU 11). B-ii: Par l'instruction de sortie entrée/sortie (I/O) de l'unité CPU 11, on adresse le verrou 53 pour y bloquer les 8 bits moyens A 15 A 8 de la mémoire RAM 33. B-ili; Parmi les instructions d'entrée entrée/sortie (I/0) de l'unité CPU 11 on exécute l'instruction d'entrée il IN (C), A du point II-I Cela signifie que pour cette instruction, la donnée enregistrée dans le registre B de l'unité CPU 11 est appliquée par liintermédiaire du circuit d'entraînement 54 à la mémoire RAM 33 aux 8 bits d'adresses inférieurs A 7 AO' En même temps, l'adresse du registre C de l'unité CPU 11 est décodée par le déco- deur 55 et ainsi l'émetteur-récepteur 51 est adressé pour passer en mode de direction de lecture Ainsi, une don- née d'un octet de la mémoire RAM 33 est verrouillée dans le registre A Les adresses de la mémoire RAM 33 à ce moment sont désignées par les signaux de sortie des cir- cuits 52-54 comme pour les points A. B-iv: La donnée verrouillée dans le registre A de l'unité CPU Il est transférée à la mémoire RAM 13. Comme décrit ci-dessus, la donnée d'un octet de la mémoire RAM 33 est transférée à la mémoire RAM 13. B-v: Les points précédents B-iii et B-iv (et le cas échéant les points B-i et B-ii) seront répétés pour trans- férer ainsi les données enregistrées dans la mémoire RAM 33, d'un octet chacune à la mémoire RAM 13, ce qui ter- mine le transfert des données nécessaires. Le cas échéant avant le point correspondant par exemple à B-i, l'unité CPU 11 vérifie le drapeau mis à l'adresse particulière de la mémoire RAM 33 pour contrÈ- ler ainsi si le circuit est prêt pour le transfert de la donnée. Comme indiqué ci-dessus, la donnée est transférée entre les unités CPU 11 et 31. De cette façon grâce à l'invention, les unités CPU 11 et 31 peuvent effectuer les traitements respectifs des données de façon exactement indépendante et simultanée. En outre dans le transfert des données entre les unités CPU 11 et 31, comme il suffit d'effectuer une seule prise de contact (handshake) pour toutes les don- nées à échanger, cela permet d'exécuter le transfert des données à grande vitesse- Dans ce qui précède, la mémoire peut être couplée au bus local 38. R E V E N D I C AT I ON S 1 ) Système à micro-ordinateur ayant deux unités centrales de traitement CPU, circuit comprenant un moyen entrée/sortie (I/0 O, 52) relié a une première unité cen- trale de traitement CPU ( 11) pour 1 introduction et la sortie des données, une premiere mémoire RAM ( 13) reliée à la première unité centrale de traitement CPU ( 11) et une seconde mémoire RAM ( 33) reliée à une seconde unité centrale de traitement ( 31), système caractérisé en ce que la seconde mémoire RAM ( 33) est associée à une adresse entrée/sortie (I/O) de la première unité centrale de traitement CPU ( 11). 2 ) Système à micro-ordinateur selon la revendica- tion 1, caractérisé en ce que la première mémoire RAM ( 13) est accédée par la seconde unité centrale de traitement CPU ( 31) en mode d'accès direct à la mémoire (mode DMA). 3 ) Système à micro-ordinateur selon la revendica- tion 2, caractérisé en ce que la première unité centrale de traitement CPU ( 11) présente une priorité de bus par rapport à la seconde unité centrale de traitement (CPU) ( 31) et la commande de la priorité est gérée par un cir- cuit de codage de priorité ( 64) et une paire de circuits arbitres de bus ( 62 et 37) associés aux unités centrales de traitement CPU ( 11) et CPU ( 31) respectives.