Brevet FR2546320A1 — publié le 19841123

La présente invention concerne de façon gét,5 rale le transfert bidirectionnel de données entre une mémoire et une unité centrale de traitement et, plus spécialement, un dispositif et un procédé de transfert de données accroissant notablement la vitesse des transferts de données en séries de plusieurs bytes. Dans la technique antérieure, le transfert d'un byte de données est ordinairement précédé d'une adresse Il faut ainsi transférer alternativement des adresses et des données, à raison d'une adresse pour chaque donnée transférée. Selon l'invention, un unique byte d'adresse est produit et délivré à la mémoire à partir de l'unité de traitement et est suivi de plusieurs transferts de données à la mémoire ou depuis la mémoire, sans que l'unité de traitement doive produire d'autres adresses. L'invention propose un appareil et un procédé perfectionnés destinés à être utilisés dans un système de traitement de données en vue du transfert de données à une mémoire ou depuis une mémoire à accès aléatoire comportant des emplacements de mot acces- sibles Selon l'invention, chacune des impulsions de cadencement se reproduisant est constituée de tranches de temps contigues, chaque tranche de temps étant définie par la valeur de comptage d'ordre n d'un compteur; un signal d'adresse initial est produit au cours de la tranche de temps apparaissant en premier dans l'impulsion de cadencement; le signal d'adresse initial est incrémenté à chaque valeur de comptage d'ordre N du compteur afin de former des signaux d'adresse de données, lesquels sont utilisés pour accéder à des emplacements respectifs de la mémoire; et, à l'apparition de chaque valeur de comptage d'ordre N du compteur, un mot de données est écrit ou lu dans l'emplacement auquel a donné accès le signal d'adresse (incrémenté) Le signal d'adresse initial peut également comporter un signal d'instruction de lecture-écriture utilisé pour commander le sens du transfert des mots par rapport à chaque emplacement de mémoire auquel il a été accédé pendant une deuxième partie de l'intervalle de cadencement. La description suivante, conçue à titre d'illus- tration de l'invention, vise à donner une meilleure compréhension de ses caractéristiques et avantages; elle s'appuie sur les dessins annexés, parmi lesquels la figure 1 est un schéma de principe du dispositif de l'invention; la figure 2 représente des formes d'onde de cadencement montrant la relation existant entre les bytes d'adresse et de données dans les procédés de transfert de données selon la technique antérieure; la figure 3 représente des formes d'onde de caden- cement montrant la relation existant entre les bytes d'adresse et de données selon l'invention; et la figure 4 représente d'autres formes d'onde de cadencement selon l'invention. Dans la description suivante, par souci de brièveté, les formes d'onde de cadencement des figures 2, 3 et 4 seront désignés comme étant, par exemple, la forme d'onde 2 A ou la forme d'onde 2 B au lieu de la forme d'onde A de la figure 2 ou la forme d'onde B de la figure 3. On se reporte maintenant aux figures 1 et 3 Les bits formant le byte d'adresse 100 de la forme d'onde 3 B qui est suivi par les bytes de données N O 1 à N sont délivrés en série à partir d'un bus de données 164 à un tampon 113 du type suivant l'ordre chronologique, puis à un registre à décalage 110, et enfin, via un fil de connexion 114, à un registre à décalage de données 112. Ce train de bits est également délivré à l'entrée d'un registre à décalage 118. Juste avant la transmission du byte d'adresse 100 de la forme d'onde 3 B, à l'instant t 0, une impulsion 120 de validation de comptage (CE, forme d'onde 3 A) passe à son niveau haut sous com- mande d'un circuit logique 127 de commande de données d'entrée-sortie (figure 1) afin de repositionner (R) une bascule 122 et, de plus, de valider un compteur 124 par son entrée VAL Le compteur 124 est cadencé via son entrée CLK par un train série d'impulsions d'horloge produit dans un circuit logique 128 de production d'impulsions d'horloge en série et délivré au compteur par l'intermédiaire d'une porte ET 109 lorsque cette dernière est conditionnée par l'impulsion CE de niveau haut venant du circuit logique 127 de commande d'entrée- sortie Ce train d'impulsions d'horloge SCK est également délivré via la porte ET 109 à une entrée 130 du registre 112 de décalage de don- nées et à une entrée 132 d'une porte ET 116. Puisque la porte ET 116 est alors conditionnée par l'état repositionné de la bascule 122, les impulsions d'horloge venant de la source d'horloge 128 atteignent, via la porte ET 116, une entrée de décalage 135 d'un registre à décalage 118 et décalent dans ce dernier les données qui ont été fournies à la borne 134 d'entrée de données en provenance du registre à décalage 110 via le fil de connexion 114 A la fin de huit impulsions d'horloge, le compteur 124 revient à sa valeur de comptage de l'état zéro afin de positionner la bascule 122 et, ainsi, d'invalider la porte ET 116 pour interrompre les impulsions de décalage appliquées à l'entrée 135 et, par consé- quent, empêcher que d'autres bits de données n'entrent dans le registre à décalage 118 Ainsi, la valeur decomptage du registre à décalage 118 ne contient que le premier byte ( 8 bits) reçu, qui est le byte d'adresse Ce byte d'adresse est introduit dans un compteur 138 lorsque ce dernier est validé à sa borne VAL via un fil de connexion 140, lors du positionnement de la bascule 122, et il donne accès, via la partie de décodage 150 ' de la mémoire 150, à l'empla- cement de mémoire défini par le byte d'adresse se -trouvant alors dans le compteur 138. Le contenu de la septième position de bit du registre à décalage 118, ce qui correspond au dernier bit du byte d'adresse 100 de la forme d'onde 3 B, détermine si l'opération est une opération de lecture ou d'écriture Si le septième bit contient une valeur O binaire, alors une porte ET 144 s'excite afin de repositionner R)une bascule 146 et, par conséquent, produire une opération de lecture dans la mé- moire 150 (ce qui manifeste par une valeur O sur le fil de connexion 151) Inversement, si la seizième position de bit du registre à déca- lage 118 contient une valeur 1 binaire, une porte ET 154 est validée et positionne (S) donc la bascule 146, si bien qu'il est émis une instruction d'écriture à destination de la mémoire 150 Cette ins- truction de lecture ou d'écriture reste valable pour tout le groupe de bytes de données de la forme d'onde 3 B, jusqu'à la réception du byte d'adresse suivant comportant une nouvelle instruction de lec- ture-écriture. Une fois achevée la réception du byte d'adresse 100 de la forme d'onde 3 B, le circuit logique se trouvant à l'intérieur du bloc 142 en trait interrompu de la figure 1 reste inactif en atten- dant la réception du byte d'adresse suivant (non représenté sur la figure 3) Toutefois, comme ci-dessus indiqué, les bytes de données reçus après la réception du byte d'adresse 100 sont délivrés en série, sous la désignation SDI, au registre à décalage de données 112 en provenance du registre à décalage 110, via le fil de connexion 114, sous commande des signaux d'horloge de la source 128 et sans que soient produits d'autres bytes d'adresse Le compteur 124 répond à ces impulsions d'horloge venant de la source 128 puisqu'il est tou- jours validé par l'impulsion CE présente sur le fil de connexion 156 en parcourant son cycle de comptage jusqu'à 8 toutes les huit impul- sions d'horloge et en délivrant une impulsion de sortie correspondant à une valeur de comptage zéro sur un fil de connexion de sortie 158 toutes les huit impulsions d'horloge Cette impulsion de sortie à valeur de comptage zéro incrémente d'une unité le compteur 138 via son entrée CLX afin de donner accès à l'emplacement de mémoire suivant dans la mémoire 150. A la fin du byte de données N de la forme d'onde 3 B, l'impulsion CE de la forme d'onde 3 A revient à son niveau bas à un instant tl, ce qui a pour effet d'invalider le compteur 124 et, ainsi, de mettre fin à V'incrémentation du compteur 138, si bien qu'il n'est plus donné accès i d'autres emplacements de mémoire dans la mémoire 150. Dans le cas d'une lecture de données dans la mémoire , le circuit logique se trouvant à l'intérieur du bloc 142 en trait interrompu fonctionne de la même manière que dans le cas de l'écriture en réponse au byte d'adresse, comme par exemple le byte d'adresse 100, à l'exception du fait que l'instruction appliquée à la mémoire 150 est alors une instruction de lecture au lieu d'une instruction d'écriture Ainsi, à chaque passage par zéro du compteur 124, le registre à décalage de données 112 fonctionne en recevant des données en provenance de la mémoire 150 sous commande d'un signal de charge qui est le flanc postérieur de la valeur de comptage zéro du compteur 124. La donnée écrite dans le registre à déc lige lc y est lue et retourne au registre à décalage 110 via un fil Ce c-nrneyion 160 de lecture de données en série SDO, les données pouvant y être lues pour être transmises à un registre tampon 111 du zype ordre chronclo- gique, puis au bus de données 164, par des moyens bien connus. On considère maintenant des portes ET 101 et 103 qui ont pour fonction de valider respectivement les tampons 111 et 113 obéissant à l'ordre chronologique, selon que les données sont écrites dans la mémoire 150 ou y sont lues Les portes ET 101 et 103 réagissent à l'existence simultanée du signal CE délivré par le circuit logique 127 dé commande d'entrée- sortie et représenté sur la forme d'onde 3 A> de la valeur de comptage zéro du compteur 124 sur un fil de connexion 97, et du signal de sortie respectif, de repositionnement 153 ou de posi- tionnement 151, de la bascule 146, en validant respectivement les tampons 113 et 111 via leurs entrées VAL Le processus ci-dessus assure la synchronisation de la valeur de comptage du compteur 124 avec les bytes de données qui sont lus dans le registre à décalage 110 pour être inscrits dans le registre à décalage de données 112, ou bien qui sont lus dans le registre à décalage de données 112 pour être inscrits dans le registre à décalage de données 110. Plus spécialement> un mot ne sera pas lu dans le tam- pon 113 pour être inscrit dans le registre à décalage 110 avant qu'une valeur de comptage zéro du compteur 124 ne soit produice Il N 1 arri- vera pas non plus qu'un mot soit lu dans le registre à décalage 11 O pour être inscrit dans le tampon 111 avant qu'une valeur de comptage zéro du compteur 124 ne survienne. En résumé, le registre à décalage de données 112 ne sera chargé au moyen d'un mot de données en provenence de la mémoire 150 que dans le cas de l'existence simultanée de la valeur de comptage zéro du compteur 124 et d'une instruction de lecture, ces deux signaux devant être délivrés aux deux entrées d'une porte ET 129 Dès qu'il est validé par la porte ET 129 via une entrée VAL, le registre à décalage de données 112 charge un mot en provenance de la mémoire 150 pendant l'opération de lecture Inversement, un mot de données ne sera pas lu dans le registre à décalage de données 112 pour être inscrit dans la mémoire 150 avant l'apparition du flanc postérieur d'une valeur de comptage zéro du compteur 124 appliquée à une entrée de validation 139 de la mémoire 150 Puisqu'un mot de données s'inscrit complètement dans le registre à décalage de données 112 à la suite d'une valeur de comptage zéro du compteur 124, il s'ensuit que l'écriture de ce mot dans la mémoire 150 peut également se produire à l'apparition du flanc postérieur de la valeur de comptage zéro du compteur 124. Le signal de sortie du générateur 128 de signaux d'horloge ens érie n'est délivré au registre à décalage de données 118, au compteur 124 et au registre à décalage de données 112 qu'après le positionnement (S) d'une bascule 155 par le flanc antérieur positive- ment orienté de l'impulsion CE venant du circuit logique 127 de coa- mande d'entrée-sortie En même temps que ce flanc antérieur positive- ment orienté du signal CE, le tampon 113 est validé via son entrée VAL par le signal de sortie de la porte ET 103 de sorte que ce tam- pon délivre le premier mot qui est le byte d'adresse à huit bits au registre à décalage 110, lequel délivre alors ce byte d'adresse en série à la borne 134 d'entrée de données du registre à décalage 118 de la manière ci-dessus indiquée. A la fin du transfert des données faisant suite au byte d'adresse dans la mémoire 150 ou hors de la mémoire 150, le flanc postérieur négativement orienté de l'impulsion CE venant du circuit logique 127 de commande de données d'entrée-sortie, qui est reçue par une entrée R de repositionnement à zéro du compteur 124, exerce l'effet de repositionner (R) la bascule 155, ce qui bloque le signal de sortie du circuit logique 128 générateur de signaux d'horloge en série et, de plus, repositionne la bascule 146 via une porte OU 119 en vue de préparer la réception de l'impulsion CE suivante. Plus spécialement, le repositionnement de la bas- cule 146 place la porte ET 103 en état conditionné de sorte que, à l'apparition de l'impulsion CE suivante, la porte ET 103 devient conductrice et valide le tampon 113 afin de délivrer le premier byte du transfert suivant au registre à décalage 110, puis, en série, via le fil de connexion 114, au registre à décalage 118 de la manière ci-dessus indiquée. Sur la figure 1, la partie 99 entourée d'un trait interrompu désigne une unité centrale de traitement. La figure 4 montre la relation existant entre les divers signaux de cadencement SCK, SDO, CE et SDI apparaissant sur la figure 1 On notera que les flancs antérieurs (positivement orientés) des impulsions d'horloge, qui sont désignées comme étant les impulsions d'horloge n'1, N O 2 et N O 8, apparaissent un temps T après l'apparition de la donnée sur le fil 114 transportant les données d'entrée SDI de la figure 1, comme indiqué sur la forme d'onde 4 D Ce retard permet à la donnée de s'établir sur la ligne avant d'être introduite de manière cadencée dans le registre à déca- lage de données 112 ou le registre 118 par les impulsionsd'horloge de forme d'onde 4 A -Pour cette raison, la donnée est maintenue sur le bus 114 pendant une durée T 2 après son application cadencée aux registres à décalage 112 et 118. Bien entendu, l'homme de l'art sera en mesure d'ima- giner, à partir du procédé et du dispositif dont la description vient d'être donnée à titre simplement illustratif et nullement limitatif, diverses variantes et modifications ne sortant pas du cadre de l'invention. R E V E N D I C A T I 0 N S 1 Dispositif de transfert de données d'un système de traitement de données, comprenant: une unité centrale de trai- tement ( 99), une mémoire à accès direct ( 150) contenant des empla- cements de mémoire, un moyen d'entrée-sortie ( 112), un moyen ( 127) qui produit des impulsions de cadencement (CE) destinées à marquer l'apparition d'intervalles temporels réapparaissant, et un moyen ( 110) qui transmet des bytes d'adresse d'emplacement de mémoire ( 100) des- tinés à être utilisés par ladite mémoire pendant une première partie de temps, laquelle démarre au début de chacun desdits intervalles temporels réapparaissant (CE); caractérisé en ce que: l'apparition de chaque byte d'adresse est suivie, dans les limites de chacun desdits intervalles temporels, par l'ap- parition de plus d'un byte de données ("byte de données n 1 ", etc) dans les limites d'une deuxième partie de chacun desdits intervalles temporels, o lesdits bytes de données sont destinés à être transférés dans certains desdits emplacements de mémoire ou hors de certains autres, qui ont été assignés; et en ce qu'il comprend en outre: un moyen ( 128, 109) servant à produire des impulsions d'horloge; un premier moyen compteur ( 124) qui répond auxdites impulsions d'horloge en produisant (sur 158) un signal indiquant la fin de chaque byte reçu; un moyen ( 122, 116) servant à définir la durée de ladite première partie de temps et de ladite deuxième partie, suivante, de chacun desdits intervalles temporels; un moyen ( 118) servant à recevoir un byte d'adresse transmis; un moyen logique ( 122, 138) comportant un deuxième moyen compteur ( 138) qui répond à chacun desdits bytes d'adresse de mémoir e reçus en positionnant la valeur de comptage dudit deuxième moyen compteur sur une valeurcorrespondant à l'emplacement de mémoire suivant devant être assigné pendant chacun desdits inter valles temporels; un moyen (CLK de 138) servant à incrémenter ledit deuxième moyen compteur en réponse à l'apparition de chaque dit signal pendant chaque intervalle temporel donné; et un moyen ( 150 ') servant à assigner lesdits emplacements de mémoire en fonction du contenu dudit deuxième moyen compteur. 2 Dispositif selon la revendication 1, caractérisé en ce que: dans chaque intervalle temporel, le contenu d'un bit prédéterminé (le septième) de chacun desdits bytes d'adresse constitue une instruction de lecture ou d'écriture pour les bytes de données suivants se trouvant à l'intérieur d'un même intervalle temporel; et ledit moyen logique comporte en outre un moyen ( 144, 154, 119, 146) qui répond au contenu dudit bit prédéterminé dudit byte d'adresse en conditionnant ladite mémoire de façon que des mots de données soient écrits ou lus dans les emplacements de mémoire assignés pendant la deuxième partie de temps de l'intervalle temporel réapparaissant. 3 Dispositif selon la revendication 2, caractérisé en ce qu'il comprend en outre un moyen ( 112, 129) de manipulation de données qui comporte un registre à décalage ( 112) (a) répondant à l'instruc- tion de lecture et audit signal émanant dudit premier moyen compteur en emmagasinant lesdits bytes de données lus dans ladite mémoire à accès direct et (b) qui répond sinon audit ordre d'écriture et audit premier signal dudit premier moyen compteur en délivrant des mots de données audit moyen d'entrée de la mémoire. 4 Procédé de transfert de mots de données constitués de bits de données entre une mémoire à accès direct et une unité centrale de traitement, caractérisé en ce qu'il comprend les opérations sui- vantes: produire, à l'intérieur de chacune de plusieurs impulsions de cadencem en t réapparaissant (CE), un nombre prédéterminé de tranches de temps contigu-s ( 100, byte de données n'1, etc), chaque tranche étant définie par la valeur de comptage d'ordre N (" 0 ") d'un compteur ( 124) comptant jusqu'à N; produire un signal d'adresse initial ("byte d'adresse") pendant la tranche de temps contiguë se produisant en premier dans ladite impulsion de cadencement; - incrémenter (dans 138) ledit signal d'adresse à chaque valeur de comptage d'ordre N dudit compteur; et transférer, pendant chacune des autres tranchesde temps, à partir de la deuxième, apparaissant ensuite pendant ladite impulsion de cadencement, des mots de données respectifs à un emplacement de mémoire assigné par ledit signal d'adresse, qui a été incrémenté, ou depuis cet emplacement. Procédé selon la revendication 4, caractérisé en ce que ledit signal d'adresse comporte une instruction de lecture-écri- ture (septième bit); et en ce qu'il comprend l'opération supplémen- taire consistant à commander le sens de transfert des bytes de don- nées vis-à-vis de la mémoire en fonction du fait que ledit signal d'adresse comporte une instruction d'écriture ou une instruction de lecture, si bien que les mots de données sont écrits ou sont lus dans des emplacements respectifs de mémoire pendant l'opération de transfert en fonction de l'instruction de lecture-écriture se trouvant dans ledit signal d'adresse.