Brevet FR2765006A1 — publié le 19981224

DISPOSITIF D'ECHANGE DE DONNEES ASYNCHRONES ENTRE DEUX MICROPROCESSEURS La présente invention concerne un dispositif d'échange de données asynchrones entre deux microprocesseurs par l'intermédiaire d'une interface constituée par une mémoire à accès aléatoire. L'invention trouve une application particulièrement avantageuse a chaque fois que l'on souhaite échanger des données asynchrones entre deux microprocesseurs sans que l'un desdits microprocesseurs ne soit ralenti ou perturbé dans l'exécution de ses cycles d'instruction par l'échange de données. Une solution connue pour satisfaire cette exigence consiste à partager le bus de données, appelé alors "multi-bus", entre les deux microprocesseurs. Dans ce cas particulier, chaque microprocesseur libère le bus à la demande d'un contrôleur de bus, lequel orchestre le partage du bus entre les deux microprocesseurs. Selon ce mode de fonctionnement, les microprocesseurs ne peuvent garantir un temps de traitement précis car l'accès au bus n'est pas déterministe. Une autre solution fréquemment mise en oeuvre est l'utilisation comme interface d'une mémoire à l'accès aléatoire (RAM) à double accès. Toutefois, ce type de mémoire nécessite une gestion électronique lourde impliquant un nombre plus important de portes liées à l'arbitrage que pour des mémoires à accès aléatoire à simple accès. De plus, là encore, si le temps d'exécution doit être constant ou précis, alors le partage de la mémoire RAM à double accès n'est pas déterministe. Aussi, le problème technique à résoudre par l'objet de la présente invention est de proposer un dispositif d'échange de données asynchrones entre deux microprocesseurs par l'intermédiaire d'une interface constituée par une mémoire à accès aléatoire, dispositif qui permettrait d'obtenir un accès déterministe à ladite mémoire, d'assurer une gestion simple de l'arbitrage, tout en évitant de perturber le fonctionnement d'un des microprocesseurs. La solution au problème technique posé consiste, selon la présente invention, en ce que - ladite mémoire à accès aléatoire est du type à simple accès, lequel est contrôlé par l'un desdits microprocesseurs, dit microprocesseur-maître, - chaque instruction exécutée par ledit microprocesseur-maître comporte des cycles d'exécution suivis d'au moins deux cycles d'échange de données en lecture/écriture avec le deuxième microprocesseur, dit microprocesseur-esclave, à une adresse de la mémoire à accès aléatoire définie par ledit microprocesseur-esclave, - le microprocesseur-maître est apte à allonger le temps d'accès du microprocesseur-esclave à la mémoire à accès aléatoire jusqu'à la fin du dernier cycle d'échange de données. Ainsi, comme on le verra en détail plus loin, la gestion de l'accès à la mémoire à accès aléatoire à simple accès est totalement prise en charge par le microprocesseur-maître dont le fonctionnement est de ce fait insensible à l'échange de données, au moins deux cycles du microprocesseur-maître étant réservés à l'accès à la mémoire RAM par le microprocesseur-esclave. Cette caractéristique est très importante si le temps d'exécution du microprocesseur-maître doit être une référence temporelle, notamment lorsque l'on veut simuler une UART par logiciel. D'autre part, on peut observer que l'accès à la mémoire RAM est déterministe et que l'arbitrage peut être géré très facilement. Enfin, l'utilisation d'une mémoire RAM à simple accès présente l'avantage d'une intégration très simple au sein d'un ASIC (3000 portes pour 2048 bits). La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. La figure 1 est un schéma synoptique général du dispositif d'échange de données asynchrones conforme à l'invention. La figure 2 est une décomposition en cycles d'horloge d'une instruction exécutée par le microprocesseur-maître du dispositif de l'invention. La figure 3 est un chronogramme de synchronisation entre un microprocesseur-maître et microprocesseur-esclave. Sur la figure 1 est représenté schématiquement un dispositif d'échange de données asynchrones entre un premier microprocesseur 10, qui sera appelé microprocesseur-maître dans la suite, et un deuxième microprocesseur 20, dit microprocesseur-esclave. Comme on peut le voir sur la figure 1, l'échange de données asynchrones entre les deux microprocesseurs s'effectue par l'intermédiaire d'une interface constituée par une mémoire à accès aléatoire (RAM) 30 du type à simple accès. L'accès à la mémoire RAM 30 est en permanence sous le contrôle du microprocesseur-maître 10 en ce sens que lorsque le microprocesseur-esclave 20 demande d'accéder en lecture/écriture à une adresse donnée de la mémoire 30 (temps t0 du chronogramme de la figure 3), cette demande RD/WR est enregistrée par le microprocesseurmaître 10 à l'instant tl, suivant l'instant to d'un cycle d'horloge du microprocesseur-maître 10 par exemple. Si, à cet instant tl, l'accès à la mémoire RAM 30 n'est pas disponible du fait que le microprocesseurmaître 10 se trouve précisément en situation d'échange avec ladite mémoire 30, au cours d'un des cycles d'exécution 1 à N-2 de l'instruction représentée sur la figure 2, le microprocesseur-maître 10 délivre au microprocesseur-esclave 20 un signal St d'allongement de temps d'accès à la mémoire RAM 30, l'effet du signal St étant de suspendre le cycle de lecture/écriture du microprocesseur-esclave 20. A titre indicatif, le signal St d'allongement d'accès à la mémoire 30 est connu sous le terme "READY" pour certains microprocesseurs de la société INTEL ou "DTACK" pour ceux de la société MOTOROLA. Pour les microprocesseurs qui ne disposent pas de signaux St d'allongement d'accès, tels que le 8031 d'INTEL, il est prévu dans ce cas que le microprocesseur-maître 10 soit apte à suspendre le fonctionnement du microprocesseur-esclave 20 en stoppant l'horloge de cadencement dudit microprocesseur-esclave. Ainsi que le montre la figure 2, une instruction exécutée par le microprocesseur-maître 10 comporte, outre les cycles d'exécution 1 à N2 avec ou sans accès à la mémoire RAM 30, un cycle initial O "FETCH" d'acquisition d'un code opératoire et deux cycles finaux, N- 1 et N, d'accès à la mémoire 30 en écriture AM ou en lecture AM-R par le microprocesseur-esclave 20. Ces cycles AM et AM-R ont donc pour effet de permettre l'échange de données asynchrones entre les deux microprocesseurs 10, 20 à l'adresse de la mémoire RAM 30 définie par le microprocesseur-esclave 20 et enregistrée par le microprocesseur 10 à l'instant t1. On comprendra que les cycles AM et AM-R d'échange avec le microprocesseur-esclave 20 faisant partie intégrante des instructions exécutées par le microprocesseur-maître 10, celui-ci n'est en rien perturbé ni ralenti par l'échange de données. Sur le chronogramme de la figure 3, le cycle AM a lieu entre les instants t2 et t3 pendant cet intervalle le microprocesseur-maître 10 écrit des données qui sont lues par le microprocesseur-esclave 20, tandis qu'entre les instants t3 et t4 définissant le cycle AM-R, le microprocesseur-maître 10 lit les données écrites par le microprocesseur-esclave 20. Enfin, après détection du cycle AM-R, le signal St est basculé à l'instant t5 marquant ainsi la fin du cycle RD/WR du microprocesseuresclave 20. Bien entendu, si le dernier cycle d'exécution d'une instruction exécutée par le microprocesseur-maître 10 ne nécessite pas d'accès à la mémoire 30, ce cycle pourra être confondu avec le premier cycle AM d'échange avec le microprocesseur-esclave 20. REVENDICATIONS i - Dispositif d'échange de données asynchrones entre deux microprocesseurs (10, 20) par l'intermédiaire d'une interface constituée par une mémoire (30) à accès aléatoire, caractérisé en ce que - ladite mémoire (30) à accès aléatoire est du type à simple accès, lequel est contrôlé par l'un desdits microprocesseurs, dit microprocesseur-maître (10), - chaque instruction exécutée par ledit microprocesseur-maître comporte des cycles d'exécution suivis d'au moins deux cycles (AM, AM R) d'échange de données en lecture / écriture avec le deuxième microprocesseur, dit microprocesseur-esclave (20), - le microprocesseur-maître (10) est apte à allonger le temps d'accès du microprocesseur-esclave (20) à la mémoire (30) à accès aléatoire jusqu'à la fin du dernier cycle (AM-R) d'échange de données. 2 - Dispositif d'échange de données selon la revendication 1, caractérisé en ce que ledit microprocesseur-maître (10) est apte à délivrer au microprocesseur-esclave (20) un signal St d'allongement de temps d'accès à la mémoire (30) à accès aléatoire. 3 - Dispositif d'échange de données selon la revendication 1, caractérisé en ce que le microprocesseur-maître (10) est apte à suspendre le microprocesseur-esclave (20) en stoppant l'horloge de cadencement dudit microprocesseur-esclave. 4- Dispositif d'échange de données selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'au moins un desdits cycles d'échange de données est constitué par un cycle d'exécution sans accès à la mémoire (30) à accès aléatoire.