Brevet FR2406250A1 — publié le 19790511

La présente invention concerne les dispositifs d'accès direct a une mémoire associée a un dispositif de traitement de l'information tel qu'un microprocesseur ou analogue. On connait un certain nombre de procédés et de dispositifs pour transférer des données entre un microprocesseur et un circuit périphérique. Les dispositifs qui utilisent le microprocesseur sont relativement lents. Dans certaines applications, il faut transférer un grand nombre d'informations, par exemple charger une partie ou même la totalité de la mémoire vive d'un microprocesseur avec des informations provenant d'une mémoire de masse. Le temps d'occupation d'un microprocesseur a de tels chargements, qu'ils soient série ou autres est relativement important, de l'ordre de 10 20 ms pour assurer le chargement de 1.024 mots. Le chargement par accès direct a la mémoire permet de libérer le microprocesseur de cette tâche. La durée des échanges est alors directement fonction de la vitesse de fonctionnement de la mémoire. Un procédé connu d'accès direct la mémoire associée à un microprocesseur est un procédé d'accès en mode maintien a l'état flottant. Ce procédé utilise la possibilité de suspendre les activités du microprocesseur et de faire passer les sorties de celui-ci à l'état de haute impédence. On peut alors substituer les informations qui devraient provenir du microprocesseur par des informations provenant du système d'accès direct à la mémoire. Le procédé d'acces direct évoqué ci-dessus présente cependant l'inconvénient de provoquer l'arrêt du fonctionnement du microprocesseur pendant les opérations d'accès direct des données à la mémoire qui lui est associée L'invention vise à remédier à l'inconvénient précité en créant un dispositif d'accès direct qui permette d'accéder à la mémoire associée a un dispositif de traitement de l'information sans perturber le fonctionnement de ce dispositif. Elle a donc pour objet un dispositif d'accès direct à une mémoire associée à un dispositif de traitement de l'information comportant une interface d'accès direct destinée à introduire ou à extraire des données dans la mémoire pendant les interruptions de la liaison entre le dispositif de traitement et la mémoire, caractérisé en ce qu'il comporte en outre une interface tampon destinée, pendant une portion du temps d'accès du dispositif de traitement à la mémoire, à fournir des adresses de données contenues dans la mémoire, issues du dispositif de traitement et à assurer la circulation des données correspondantes entre le dispositif de traitement et ladite mémoire, et pendant le reste du temps d'accès du dispositif de traitement à la mémoire, a mettre en mémoire jusqu'à la fin du temps d'accès,les données provenant de la mémoire et à empêcher la circulation des données vers ladite mémoire et des moyens logiques pour commander l'inhibition de l'interface tampon ou de l'interface d'accès direct et, pendant les intervalles d'inhibition de l'~nterface tampon, permettre la circulation des données et des adresses entre l'interface d'accès direct et la mémoire. D'autres caractéristiques de l'invention apparaitront au cours de la description qui va suivre, faite en référence aux dessins annexés, donnés uniquement à titre d'exemple et sur lesquels: La Fig.l est un schéma synoptique d'un système à accès direct du type dit synchrone à une mémoire associée à un microprocesseur suivant l'invention; La Fig.2 est un diagramme en fonction du temps montrant le fonctionnement du système de la Fig.l; Les Fig.3 et 4 sont des diagrammes en fonction du temps représentant respectivement l'accès à la mémoire du microprocesseur et de l'interface d'accès direct du système de la Fig.l; La Fig.5 est un schéma synoptique d'un système d'accès direct du type dit asynchrone, à une mémoire associée à un microprocesseur; La Fig.6 est un diagramme montrant le fonctionnement du système de la Fig.5;; La Fig.7 est un schéma détaillé du circuit logique de commande du système de la Fig.5; La Fig.8 est un diagramme en fonction du temps montrant le fonctionnement d'une voie du système de la Fig.5; La Fig.9 est un diagramme en fonction du temps montrant le fonctionnement de trois voies du dispositif. Le système représenté à la Fig.l comporte principalement un dispositif 1 de traitement de l'information qui dans le présent exemple est un microprocesseur de type TMS 9980. A ce microprocesseur est associée une mémoire 2 reliée au microprocesseur par des lignes omnibus d'adresse 3 et des lignes omnibus de données 4. La mémoire 2 est constituée par une mémoire vive à laquelle il est important de pouvoir accéder directement et une mémoire morte. Entre le microprocesseur et la mémoire est interposée une interface tampon 5. Aux entrées d'adresse et de données de la mémoire 2 sont en outre connectées les sorties d'adresse et de données d'une interface d'accès direct 6. L'ensemble ainsi constitué est pourvu d'un circuit logique de commande 7 connecté au microprocesseur 1, à l'interface tampon 5 et à l'interface d'accès direct 6. L'interface tampon 5 comporte un circuit 8 à trois états connecté sur les lignes d'adresse 3. Dans le présent exemple, ce circuit est de type LS 241. L'interface 5 comporte en outre, inséré dans les lignes omnibus de données 4, un circuit 9 constitué d'un circuit à trois états 10 et d'une mémoire tampon 11 branchés en tête-bêche. Le circuit à trois états 10 est par exemple de type LS 241 alors que la mémoire morte est du type LS 373. L'interface d'accès direct 6 comporte comme l'interface tampon,un circuit à trois états 12 dont les sorties sont connectées aux lignes omnibus 3 d'adresse, entre le circuit à trois états 8 et la mémoire 2, et un circuit de données 13 dont les sorties sont connectées aux lignes omnibus de données 4, entre le circuit 9 et la mémoire 2. Le circuit à trois états 12 est par exemple de type LS 241 tandis que le circuit 13 est de type LS 245. Le circuit de commande 7 comporte une bascule 14 connectée a la sortie d'horloge ~ du microprocesseur 1 et destinée à diviser par deux la fréquence d'horloge de celui-ci. Cette horloge 14 qui est par exemple une horloge DLS 74 a une sortie connectée aux entrées de validation des circuits 12 et 13 de l'interface d'accès direct 6 tandis que son autre sortie est destinée à commander l'interface tampon 5. A cet effet, cette dernière sortie du basculeur 14 est con nectée à une première entrée d'une porte NON-OU 15 dont une seconde entrée est connectée à la sortie de validation de mémoire du microprocesseur 1 et dont une troisième entrée est connectée à une sortie de détermination du sens des informations sur les lignes omnibus de données 4. La sortie de la porte 15 est connectée à une entrée du circuit 9 de l'interface 5. La sortie de la bascule 14 connectée à l'interface 6 est en outre connectée à une entrée d'une porte NON-ET 16 dont une autre entrée est connectée à la sortie de validation de mémoire"MEMEM" du microprocesseur par l'intermédiaire d'un inverseur 17 et dont une troisième entrée est connectée à la sortie"DBIN"de détermination du sens des informations. La sortie de la porte 16 est connectée à une entrée correspondante du circuit 9 de l'interface tampon 5. Enfin la sortie"DBIN"du microprocesseur est connectée à une troisième entrée du circuit 9 par l'intermédiaire d'un inverseur 18. La mémoire 2 comporte une entrée de commande couplée à l'entrée de commande du circuit 13 de l'interface d'accès direct par l'intermédiaire d'un ensemble de portes 19 qui reçoit en outre les signaux d'accès direct à la mémoire"DMX de cycle du microproces seur'tPU"et le signal"DBIN"inversé par un inverseur 20. Le fonctionnement du dispositif de la Fig.1 va être décrit en référence aux Fig.2,3 et 4. Au cours d'un accès direct à la mémoire 2 à partir de l'interface 6, le microprocesseur 1 fonctionne normalement et ses sorties sont bloquées au niveau de l'interface tampon 5. Le circuit 11 de l'interface tampon 5 prend alors le relais de la mémoire 2. Lorsque le microprocesseur 1 utilise la mémoire 2, c'est l'interface d'accès direct 6 qui se trouve à haute impédence c'est-à-dire momentanément isolée de la mémoire 2. Les deux interfaces 5 et 6 jouent donc le rôle de multiplexeur entre le microprocesseur 1 et un système (non représenté) relié à l'interface d'accès direct 6. La commande des interfaces est assurée par le circuit de contrôle 7. Le partage du temps de mémoire entre le microprocesseur 1 et l'interface d'accès direct 6 est représenté à la Fig.2. Dans un système classique, le microprocesseur 1 utilise la mémoire 2 tant que le signal"MEMEM"de validation de mémoire est au niveau bas, c'est-à-dire durant deux temps de cycle TC du micro processeur. Dans le dispositif de l'invention, on peut voir sur la Fig.2 qu'un seul temps de cycle TC est réservé au microprocesseur 1, tandis que le temps de cycle suivant est affecté à l'interface d'accès direct 6. Pour un fonctionnement correct, le temps de cycle de la mémoire 2 en écriture ou en lecture doit être inférieur à TC. Sur la Fig.2 les cycles réservés au microprocesseur sont indiqués à la ligne CPU alors que les cycles réservés à l'interface 6 sont indiqués à la ligne DMA. On constate que le cycle B réservé au microprocesseur n'est pas effectué puisque le signal"MEMEiV'est alors au niveau haut. Le cycle défini par la bascule 14 est réservé au microprocesseur (Fig.3) lorsque la sortie Q de la bascule 14 est au niveau haut. La seconde période Q = 1 indique que le cycle est réservé à l'interface d'accès direct (Fig.4). Le multiplexage des adresses CPU et DMA est directement assuré par les signaux de sortie de la bascule 14. Quant au multiplexage des données, il est assuré comme suit. Durant un cycle DMA d'accès direct à la mémoire, le circuit 13 de l'interface 6 est validé, tandis que le sens des informations circulant sur les lignes omnibus 4 est déterminé par l'entrée E/S (Fig.4). Durant le cycle réservé au microprocesseur 1 les sorties Do à D7 de celui-ci sont reliées aux lignes omnibus de données 4 à travers le circuit 10 à trois états ou à travers la mémoire tampon 11. Lors de l'utilisation de la mémoire par le microprocesseur représentée sur le diagramme de la Fig.3, les périodes tl,t3,t5, du signal d'horloge ~ sont réservées à celui-ci. Durant les périodes tl, t2, le microprocesseur est un cycle de lecture puisque le signalNEMEM"de validation de mémoire est à l'état 0 et que le signal'bBIN"de détermination du sens des informations est égal à 1. Les adresses qui sélectionnent un mot dans la mémoire ne sont validées que durant la période tl et les données sont alors mémorisées dans la mémoire tampon 11, puis présentées sur les entrées Do à D7 du microprocesseur 1 tant que le signal"DBIN"est au niveau haut. Au cours de la période t3 la mémoire 2 n'est pas sollicitée. Pendant les périodes t5 et t6, le signal de validation de mémoire "MEMEM"est égal à zéro ainsi que le signal11DBlW. Le microprocesseur est alors en cycle d'écriture. Cependant les données apparaissant sur ses bornes Do à D7ne sont transférées dans la mémoire que durant la période d'horloge t5. Ainsi que le montre le diagramme de la Fig.4, les périodes d'horloge t2 et t4 sont réservées à l'accès direct à la mémoire. Durant la période t2 l'entrée E/S étant au niveau bas, les données transitent de la mémoire vers le dispositif d'utilisation (non représenté) à travers le circuit 13 de l'interface 6. Durant la période t4, l'entrée E/S est au niveau haut et le transfert est assuré en sens inverse, c'est-àdire de l'interface 6 vers la mémoire 2. Le signal R/W de lecture écriture qui est le signal de sortie de l'ensemble de portes 18 est conditionné par le signal 'DBIN"issu du microprocesseur 1 et par le signal E/S issu du dispositif d'utilisation (non représenté). On voit donc que les performances du dispositif de la Fig.l sont directement liées au temps de cycle du microprocesseur puisque le partage de temps d'utilisation de la mémoire est assuré directement à partir du signal d'horloge ~ du microprocesseur. Dans un agencement de ce type, l'évolution des paramètres dynamiques des différents composants ne peut pas être mise à profit pour améliorer les performances globales du système. En outre l'horloge du microprocesseur et celle du circuit d'accès direct à la mémoire doivent être synchrones de sorte que l'application du dispositif est limitée par la nature de l'horlo- ge équipant le dispositif dont les données doivent accéder directement à la mémoire associée au microprocesseur. Le schéma synoptique de la Fig.5 montre un système d'accès direct du type dit asynchrone permettant de perfectionner encore le système de la Fig.1. Les parties communes à ce système et à celui de la Fig.l sont désignées par les mêmes numéros de référence et ne seront donc pas décrites davantage. Le système asynchrone de la Fig.5 diffère du système précédent essentiellement en ce qu'il comprend un circuit logique de commande asynchrone 21 représenté en détail à la Fig.7 et que l'on va maintenant décrire. Ce circuit comporte trois parties essentielles, à savoir un circuit 22 de mémorisation préliminaire de demandes d'accès connecté à un circuit 23 de mémorisation de demandes d'accès en cours, ce circuit étant à son tour connecté à une logique de priorité 24. Dans le mode de réalisation représenté, le circuit logique de commande est un circuit à trois voies. Il permet donc de gérer trois voies d'accès, par exemple le microprocesseur 1, l'écriture dans la mémoire vive de la mémoire 2, à une certaine fréquence et la lecture à une autre fréquence. Il n'y a aucune relation de phase entre les trois voies. Les sorties des circuits 22a, 22b, 22c, sont connectées aux entrées d'une porte NON-OU 25 dont la sortie est connectée à une entrée A d'un circuit monostable 26. La sortie Q0 de ce circuit monostable est connectée d'une part aux circuits 23a, 23b, 23C, de mémorisation de demandes d'accès en cours de chaque voie, et d'autre part, à travers un élément à retard 27 à une entrée de chacune de trois portes NON ET 24a, 24b, 24c, constituant les trois voies de la logique de priorité 24. La porte 24a est une porte à deux entrées dont l'entrée autre que celle connectée au circuit monostable 26 est reliée à une première sortie du circuit 23a. La porte 24b est une porte à trois entrées dont les deux entrées autres que celle connectée au circuit monostable 26 sont respectivement reliées, l'une à une seconde sortie du circuit 23a, l'autre à une première sortie du circuit 23b. La porte 24c est une porte à quatre entrées dont les entrées autres que celle connectée au circuit monostable 26 sont reliées chacune à une sortie des circuits 23a, 23b , 23c Le circuit ainsi constitué enregistre les demandes d'accès a la mémoire et les distribue selon l'ordre d'arrivée ou un ordre de priorité. La voie E1S1qui a la plus forte priorité est utilisée par le microprocesseur. Son fonctionnement va être examiné en référence au diagrame de la Fig.8. Lorsque l'entrée E1 est portée au niveau bas, la bascule RS 22a change d'état de sorte que l'entrée D1 du circuit 23 passe à 1, ce qui entraîne le changement d'état de l'entrée A du circuit monostable 26 et provoque l'apparition d'une impulsion à la sortie Q0 de celui-ci puisque son entrée B qui est au niveau haut le permet. Le front montant du signal Q0 est utilisé pour enregistrer la demande d'accès dans la bascule de type D 23a dont la sortie Q1 passe au niveau haut. La combinaison QI.Q0# apparaissant aux entrées de la porte 24a autorise l'apparition d'une impulsion sur la sortie S1. Lorsque S1 est au niveau bas, la bascule 22a est remise à son état initial. L'entrée A du circuit monostable 26 est de nouveau au niveau haut. La durée de l'impulsion Q0 est déterminée par un réseau RC branché sur le circuit monostable 26. A la fin de l'impulsion, la sortie Q0 est au niveau bas et Q02 fait à nouveau passer la sortie $1 au niveau haut et la transition de Q0 à l'entrée B n'a aucune action sur le monostable 26 puisque l'entrée A de celui-ci est au niveau haut. A la Fig.9 on a représenté un exemple de fonctionnement des trois voies du circuit logique de commande de la Fig.7. L'entrée E1 est portée la première au niveau bas. L'impulsion S1 est engendrée de la manière décrite en référence à la Fig.8. L'entrée E2 est portée au niveau bas immédiatement après E1. L'entrée D2 du circuit 23b est portée au niveau haut et dès que l'impulsion Qo est engendrée par la transition négative sur l'entrée A du circuit monostable 26, D1 et D2sont alors enregistrés dans les bascules de type D 23a et 23b. La combinaison Ql.Qot permet d'engendrer, comme précédemment une impulsion à la sortie S1. Cependant le passage de l'impulsion vers la sortie S2 ne peut avoir lieu puisque Q1 = 0. Durant l'impulsion Q0, l'entrée E3 est portée au niveau bas, la bascule RS 22C change d'état et l'entrée D3 de la bascule 23C passe à l'état 1. Cette transition n'a aucun effet sur le monostable 26 puisque l'entrée A de celui-ci est déjà au niveau bas. A la fin de l'impulsion engendrée à la sortie S1, l'entrée A du monostable 26 est toujours au niveau bas, la sortie Q0 de celui-ci, qui est rebouclée sur son entrée B permet d'engendrer une nouvelle impulsion qui enregistre les états D1, D2, D3, dans les bascules 23a, 23b, 23c, respectives. Les sorties Q2 et Q3 des bascules 23b et 23c sont au niveau haut mais le même système de priorité est valable pour les sorties S2 etS3 que pour les sorties S1 et S2 .Par conséquent le signal est engendré en priorité par rapport au signal S3. Le fonctionnement de la sortie S3 est identique à celui de la sortie S2. Cette dernière sortie a toujours la plus faible priorité. Ce circuit de contrôle à trois voies permet d'utiliser des mémoires dont le temps de cycle est légèrement inférieur à celui du microprocesseur puiqu'à la transition négative du signal "MEMEM" de validation de mémoire, si un cycle est en cours d'exécution à cet instant, l'impulsion à la sortie S1 de la première voie du circuit logique de commande ne peut être retardée que d'un temps de cycle et dans tous les cas les informations seront disponibles avant la fin du signal "MEMEM". Le fonctionnement du dispositif de la Fig.5 est illustré par le diagramme de la Fig.6. Sur cette figure, le premier signal Commande DMA" arrive avant le signal de validation de mémoire "MEMEM" issu du microprocesseur. Compte-tenu du fonctionnement du circuit de la Fig.7 qui accorde dans un premier temps la priorité au premier signal qui parvient à ses entrées, le cycle d'accès direct "DMA" est exécuté en priorité. Il est immédiatement suivi par le cycle du microprocesseur "CPU".- Le deuxième signal de commande "DMA" est isolé; le cycle DMA est engendré immédiatement. Enfin, dans le dernier cas correspondant au groupe de signaux situé sur la droite de la Fig.6, on voit que c'est le microprocesseur qui a la priorité. Lorsque deux signaux se recouvrent, le circuit logique asynchrone lève l'incertitude et donne la priorité au premier signal reçu.Les cycles d'exploitation de la mémoire sont rangés dans leur ordre d'arrivée. En utilisant le même principe, le nombre de voies d'accès aux lignes omnibus d'adresses et de données peut être porté à une valeur supérieure à 3. Il y a alors lieu d'ajouter au dispositif de la Fig.7, une logique qui donne la priorité la plus haute au cycle CPU du microprocesseur. Les deux dispositifs d'accès direct qui viennent d'être décrits ont des applications diverses. Le dispositif de la Fig.l ou dispositif d'accès direct de type synchrone permet d'accéder à la mémoire associée à un microprocesseur à intervalles de temps réguliers, en synchronisme avec l'horloge du microprocesseur. Il permet par exemple d'exploiter un système de visualisation. Le dispositif d'accès direct asynchrone de la Fig.5 permet d'obtenir des accès à la mémoire, à n'importe quel moment sans aucune relation de phase avec l'horloge du microprocesseur. Un tel dispositif est beaucoup plus souple que le précédent. Bien que dans le présent exemple le dispositif ne comportequ'un microprocesseur et une interface d'accès direct, il est bien entendu que le dispositif d'accès direct asynchrone peut être appliqué à un nombre de microprocesseurs et d'interfaces d'accès direct plus important. Les composants dont les spécifications sont données dans la description qui précède sont tous fabriqués et vendus par la Société TEXAS INSTRUMENTS Incorporated. REVENDICATIONS 1 - Dispositif d'accès direct à une mémoire associée à un dispositif de traitement de l'information comportant une interface d'accès direct destinée à introduire ou à extraire des données dans la mémoire pendant les interruptions de la liaison entre le dispositif de traitement et la mémoire, caractérisé en ce qu'il comporte en outre une interface tampon (5) destinée, pendant une portion du temps d'accès du dispositif de traitement (1) à la mémoire (2) à fournir des adresses de données contenues dans la mémoire (2) issues du dispositif de traitement (1) et à assurer la circulation des données correspondantes entre le dispositif de traitement (1) et ladite mémoire (2) et pendant le reste du temps d'accès du dispositif de traitement (1) à mettre en mémoire jusqu'à la fin du temps d'accès les données provenant de la mémoire (2) et à empêcher la circulation des données vers ladite mémoire (2) et des moyens logiques (7;21) pour commander l'inhibition de l'interface tampon (5) ou de l'interface d'accès direct (6) et, pendant les intervalles d'inhibition de l'interface tampon (5), permettre la circulation des données et des adresses entre l'interface d'accès direct (6) et la mémoire (2). 2 - Dispositif suivant la revendication 1, caractérisé en ce que l'interface tampon (5) comprend un circuit à trois états (8) connecté sur les lignes omnibus d'adresse (3) reliant le dispositif de traitement (1) à ladite mémoire (2) et un circuit (9) forme d'un circuit à trois états (10) et d'une mémoire tampon (11) connecté sur les lignes omnibus de données (4) reliant le dispositif de traitement (1) à ladite mémoire (2), 3 - Dispositif suivant l'une quelconque des revendications 1 et 2, caractérisé en ce que l'interface d'accès direct (6) est connectée aux lignes omnibus d'adresses et de données reliant le dispositif de traitement (1) à la mémoire (2), entre ladite interface tampon (5) et ladite mémoire. 4 - Dispositif suivant l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdits moyens logiques (7) pour commander l'inhibition de l'interface tampon (5) ou de l'interface d'accès direct (6) sont des moyens de commande synchrone comportant une bascule (14) de partage du temps entre l'interface tampon (5) et l'interface d'accès direct (6) à partir du signal d'horloge du dispositif de traitement (1). 5 - Dispositif suivant la revendication B, caractérisé en ce que ladite bascule (14) desdits moyens logiques de commande (21) a une sortie connectée directement à l'entrée de commande de ladite interface d'accès direct (6) ainsi qu'à une porte NON-ET (16) à trois entrées dont les deux autres entrées sont connectées respectivement à la sortie de validation de mémoire du dispositif de traitement (1) par l'intermédiaire d'un inverseur (17) et à la sortie de détermination du sens des informations sur la ligne omnibus de données ces deux sorties étant en outre directement con nectées à une porte NON-OU (15), les sorties des portes NON-ET et NON-OU étant connectées à des entrées correspondantes du circuit (9) de l'interface tampon (5) branché sur les lignes omnibus (4) reliant le dispositif de traitement (1) à ladite mémoire (2), la sortie de détermination des informations des données sur les lignes omnibus de données (4) étant en outre connectée audit circuit (9) par l'intermédiaire d'un inverseur (18). 6 - Dispositif suivant l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdits moyens logiques (21) de commande de l'inhibition de l'interface tampon (5) ou de l'interface d'accès direct (6) sont des moyens de commande asynchrones. 7 - Dispositif suivant la revendication 6, caractérisé en ce que lesdits moyens logiques de commande asynchrones comprennent au moins une voie de commande d'accès du dispositif de traitement (1) à ladite mémoire (2) et au moins une voie de commande d'accès de ladite interface d'accès direct (6) à ladite mémoire, sans aucune relation de phase entre lesdites voies. 8 - Dispositif suivant l'une quelconque des revendications 6 et 7, caractérisé en ce que lesdites voies desdits moyens logiques de commande asynchrones comportent chacune un circuit (22a,22b, 22C) de mémorisation préliminaire de demande d'accès, un circuit (23at23b,23C) de mémorisation de demandes d'accès en cours et un circuit logique d'établissement de priorité (24a,24b,24c) 9 - Dispositif suivant l'une quelconque des revendications 7 et 8, caractérisé en ce que lesdits moyens logiques de commande asynchrones comprennent de plus un circuit (25,26) de commande desdits moyens d'établissement de priorité (24a,24b, 24C) en fonction du premier signal apparaissant à une entrée (E1,E2, E3) desdits moyens logiques.