Brevet FR2653915A1 — publié le 19910503

La présente invention concerne un dispositif de contrôle de demandes d'accès eh mémoire à un ensemble de blocs dans un système de traitement de données numé- riques et, plus spécifiquement, le dispositif dans lequel les blocs de mémoire auxquels un accès doit être fait sont disposés en groupes imbriqués. La présente invention se caractérise par la réduction effective du nombre de registres de contrôle de données de lecture/écriture qui doivent par nature être couplés aux blocs. Afin d'obtenir un débit supérieur de données dans la mémorisation d'informations dans une mémoire et leur extraction de celle-ci, une approche connue consiste à mettre en oeuvre ce qu'on appelle une imbrication. Les groupes imbriqués de puces de mémoire sont appelés des blocs. Quand des données doivent être mémorisées, il faut un temps d'établissement de données et un temps de maintien de données pour mémoriser et extraire les données d'une manière sûre. En conséquence, selon des techniques de l'art antérieur, on prévoit une paire de registres de contrôle de données de lecture/écriture (qu'on appellera dans la suite "registres de contrôle de données") pour chaque bloc. Afin de réduire le nombre de composants dans un système de traitement de données numériques, il est très souhaitable que l'ensemble des registres de contrôle de données soient prévus pour que les blocs puissent être configurés sur une seule puce LSI (à Grande Echelle d'In- tégration). Cependant, selon les techniques de l'art an- térieur, puisque chaque bloc exige deux registres de contrôle de données pour des opérations de lecture et d'écriture, le nombre de broches de la puce LSI augmente quand le nombre de registres de contrôle de données qui y sont fabriqués augmente. Le nombre de broches de cette puce LSI est déterminé en multipliant la longueur des données par deux fois le nombre de registres de contrôle de données à prévoir. Par conséquent, les techniques de l'art antérieur ont rencontré le problème que les registres de contrôle de données à utiliser ne peuvent pas être logés dans une puce LSI dans le cas o le nombre de registres de con- trôle de données augmente. I1 est évident que cela crée une barrière qui doit être surmontée avant que le degré d'intégration puisse être surmonté. Un but de la présente invention est de fournir un dispositif de contrôle de demandes d'accès en mé- moire à des blocs groupés, dans lequel une paire de registres de contrôle de données soit affectée à un groupe de blocs. En bref, le but ci-dessus est atteint par un dis- positif dans lequel un ensemble de blocs est divisé en un ensemble de groupes de blocs et dans lequel une paire de registres de contrôle de données de lecture et d'écri- ture est affectée à chacun des groupes de blocs. Un con- trôleur de mémoire centrale est couplé activement aux groupes de blocs et commande les opérations de lecture/ écriture des blocs. Le contrôleur de mémoire centrale reçoit des demandes d'accès aux blocs d'un contrôleur de système et engendre un signal de rejet de demande dans le cas o une demande d'accès à un bloc apparaît consécu- tivement en relation avec un groupe de blocs. Ainsi, l'application de deux données successives à chacun des registres de contrôle de données de lecture et d'écriture avec le même groupe de blocs est interdite, et la mémo- risation erronée de données dans les registres de con- trôle de données mentionnés ci-dessus est empêchée. Plus spécifiquement, un aspect de la présente invention consiste en un dispositif de contrôle de demandes d'accès à des blocs dans un système de traitement de données numériques, comprenant: un ensemble de blocs qui sont divisés en un ensemble de groupes de blocs; un premier moyen, ce premier moyen étant couplé activement à l'ensemble de blocs et commandant les opérations de lecture et d'écriture de ceux-ci,le premier moyen rece- vant un ensemble de demandes d'accès à des blocs, le premier moyen émettant un premier signal indiquant qu'une demande d'accès à un bloc n'a pas été acceptée dans le cas o la demande de bloc apparaît consécutivement dans un groupe de blocs, le premier signal étant envoyé à un contrôleur de système; et un ensemble de paires de regis- tres de contrôle de données de lecture et d'écriture, chacune des paires de registres de contrôle de données de lecture et d'écriture étant affectée à un groupe de blocs et étant commandée par le premier moyen. D'autres caractéristiques et avantages de la pré- sente invention seront mis en évidence dans la descrip- tion suivante, donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels: la Figure 1 est un schéma fonctionnel représen- tant schématiquement un dispositifde contrôle de demandes d'accès en mémoire à des blocs groupés; la Figure 2 est un schéma fonctionnel représen- tant en détail un bloc du dispositif de la Figure 1; et la Figure 3 est un diagramme des temps qui repré- sente le fonctionnement des dispositifs représentés sur les Figures 1 et 2. On va expliquer un exemple de réalisation préféré de l'invention en se référant aux Figures 1 à 3. Le dispositif représenté sur la Figure 1 comprend contrôleur de mémoire centrale 10, un décodeur d'adresse 12, un contrôleur d'écriture de données 14, un contrôleur de lecture de données 16, quatre registres de contrôle de données 18,20,22 et 24, et quatre blocs de mémoire 26a, 26b, 26c et 26d dont l'ensemble sont couplés comme on l'a indiqué. Dans un but de commodité, on a également indiqué les blocs 26a,26b, 26c et 26d respectivement par n O, n l, n 2 et n 3. Les blocs fonctionnels 10,12,14 et 16 sont couplés à un contrôleur de système ou processeur de système approprié tel qu'une unité centrale de trai- tement (CPU) 8. L'unité CPU 8 n'est pas directement con- cernée par la présente invention et sa description sera donc omise pour gagner du temps. Comme l'indique la Figure 1, une paire de regis- tres de contrôle de données 18 et 22 sont prévus pour les blocs n O et n 2 (premier groupe de blocs), alors que l'autre paire de registres de contrôle de données 20 et 24 le sont pour les blocs n l et n 3 (deuxième groupe de blocs). Cela signifie que le nombre de registres de con- trôle de données peut être réduit de moitié en comparai- son des techniques classiques dans lesquelles une paire de registres de contrôle de données serait prévue pour chaque bloc. Afin que la réduction du nombre de registres de contrl81e de données soit satisfaite, on fait en sorte que le contrôleur de mémoire centrale 10 émette un signal de rejetde demande 10j dans le cas o deux demandes d'accès à un bloc consécutives apparaissent dans le même groupe de blocs. Plus spécifiquement, le contrôleur 10 engendre en sortie le signal de rejet de demande 10j en réponse à l'application à celui-ci de la deuxième demande d'accès à un bloc des deux demandes consécutives. Il en est ainsi car le contenu des registres de contrôle de données 18, ,22 et 24 peut être détruit par les données qui leur sont appliquées en réponse à la deuxième demande d'accès à un bloc mentionnée ci-dessus. Le signal de rejet de demande 10j est envoyé à l'unité CPU 8 qui réémet la demande rejetée plus tard. Le décodeur d'adresse 12 réagit à une information d'adresse 12a qui lui est envoyée par l'unité CPU 8 et engendre un signal d'adresse 12b sur une ligne couplée au contrôleur 10. Le contrôleur de mémoire centrale 10 reçoit, en plus du signal d'adresse 12b, une demande d'accès en mémoire 10a et une commande de lecture/écriture lOb du processeur 8. Le contrôleur 10 spécifie un des blocs n O à n 3 en réponse au signal d'adresse 12b, et fournit le bloc adressé avec un signal de synchronisation de demande de mémoire sur une des lignes 10c à 10f. En outre, le contrôleur 10 engendre en sortie trois signaux de commande lOg, lOh et lOi. Le signal de synchronisation de demande de mémoire comprend un signal d'échantillon- nage d'adresse de ligne, un signal d'échantillonnage d'adresse de colonne et un signal de validation de lec- ture/écriture, etc. comme il est bien connu dans la tech- nique. Le point dans le temps o le contrôleur de mémoire centrale 10 engendre le signal de synchronisation de demande de mémoire mentionné ci-dessus ainsi que les si- gnaux de commande lOg-10i, sera décrit dans la suite. Les quatre blocs n O à n 3 sont divisés en deux groupes dans cet exemple de réalisation. Comme on l'a mentionné plus haut, le premier groupe comprend les blocs n O et n 2 alors que le deuxième groupe comprend les blocs n l et n 3. Le décodeur d'adresse 12 envoie le signal d'adresse à un des blocs 26a à 26d en réponse au signal de commande g envoyé par le contrôleur 10. Le contrôleur d'écriture de données 14 fournit à un des quatre blocs n O à n 3 les données à mémoriser, par l'intermédiaire d'un des deux registres de contrôle de données 18 et 20, en réponse au signal de commande 10h provenant du contrôleur 10 qui spécifie le bloc auquel un accès doit être fait. D'autre part, le contrôleur de lecture de données 16 reçoit les données extraites d'un des quatre blocs n O à n 3 par l'intermédiaire d'un des deux registres de contrôle de données 22 et 24 en réponse au signal de commande lOi provenant du contrôleur 10. On va encore décrire la présente invention en se référant à la Figure 2, qui représente l'agencement du contrôleur de mémoire centrale 10 de la Figure 1 qui concerne directement la présente invention. On doit noter que les autres parties du contr81eur 10, ne concernant pas la présente invention, sont omises dans le but de simplifier la figure. En conséquence, les blocs fonc- tionnels relatifs à la commande de lecture/écriture lob, aux signaux de commande lOg-lOi, et au signal d'adresse 12b, ne sont pas indiqués sur la Figure 2. L'agencement de la Figure 2 comprend une porte OU 28, et quatre sections 30a,30b,30c et 30d qui sont res- pectivement prévues pour les blocs n O à n 3. La section a comprend une borne d'entrée 32a à laquelle est appli- quée une demande d'accès au bloc n O, quatre registres à décalage 34a,36a, 38a et 40a, et trois portes ET 42a,44a et 46a. Chacune des autres sections 30b,30c et 30d a un agencement identique à celui de la section 30a. En consé- quence, chacune des contreparties des sections 30b-30d est indiquée par la même référence numérique plus un caractère de case inférieure correspondant ("b","c","d"). On va expliquer le fonctionnement de l'agencement de la Figure 2 en se référant à la Figure 3 qui représente, sous forme de diagramme des temps, la manière dont les signaux sont engendrés dans l'agencement de la Figure 2. On doit noter que l'explication relative aux portes ET et OU est telle que la borne d'entrée la plus en haut est appelée "première" borne, la suivante plus en bas est appelée la "deuxième" et ainsi de suite. C'est-àdire que les première, deuxième et troisième sont utilisées dans un ordre descendant. Les bornes d'entrée 32b,32c et 32d reçoivent des demandes d'accès aux blocs n l,n 2 et n 3, respectivement. Les sections 30a et 30c pour le premier groupe de blocs (les blocs n O et n 2), fonctionnent de la même manière que les agencements 30b et 30d pour le deuxième groupe de blocs (n l et n 3). En conséquence, on n'expli- quera en détail que le fonctionnement des agencements a et 30c. On suppose que chacune des demandes d'accès aux blocs n O à n 3, qui sont respectivement appliquées aux bornes d'entrée 32a à 32d, prend un niveau logique O dans une tranche de temps "O". I1 en résulte que dans une tranche de temps "1", le registre à décalage 34a applique le niveau logique 1 provenant de la borne de sortie inversée de celui-ci à la deuxième entrée de la porte ET 42a. Dans ce cas, la sortie de la porte ET 46a (c'est-à-dire le signal occupé) prend un niveau logique 1 qui indique que le bloc correspondant n O est disponible ou accessible. Ainsi, quand la demande de bloc n O (c'est-à-dire, le niveau logique 1) est appliquée à la porte ET 42a dans la tranche de temps "1", elle traverse la porte ET 42a. Par conséquent, un signal d'acceptation 48a prend un niveau logique 1 dans la tranche de temps"1", ce qui fait appliquer le signal de synchronisation au bloc n O par le contrôleur 10 sur la ligne lOc(Figure 1). En outre, le signal d'acceptation 48a prenant un niveau logique 1, fait en sorte que le contrôleur 10 applique un des signaux de commande lOh et lOi selon la commande de lecture/écriture lob. Le signal d'adresse 12b, qui est appliqué au contrôleur 10 par le décodeur d'adresse 12, n'a pas été indiqué comme on l'a mentionné précédemment. Dans les trois tranches de temps suivantes 1"2", "3" et "4", les registres à décalage 36a,38a et 40a ap- pliquent un niveau logique O à la porte ET 46a, et, de la sorte, la sortie de la porte ET 46a (le signal occupé) prend un niveau logique O qui indique que le bloc n O est alors occupé ou indisponible. AInsi, le contrôleur 10 n'accepte pas d'autre demande d'accès au bloc n O (s'il y en a) pendant la présence du signal occupé provenant de la porte ET 46a. Dans la tranche de temps "1", la porte ET 44a reçoit, à sa première entrée, un niveau logique 1 de la borne d'entrée 32a. Cependant, la porte ET 44a reçoit, à sa deuxième entrée, un niveau logique O de la borne de sortie non inversée du registre à décalage 34c. En conséquence, la porte ET engendre en sortie un signal de niveau logique O. Cela signifie que la sortie de la porte OU 28 (le signal de rejet d'acceptation) prend un niveau logique O qui indique que le contrôleur 10 n'a pas rejeté la demande d'accès au bloc n O en question. On suppose que la demande d'accès au bloc n 2 est appliquée à la borne 32c dans la tranche de temps "2". Si cela se produit, une porte ET 44c reçoit des niveaux logiques 1 à la fois à ses première et deuxième entrées dans la tranche de temps "2". Il en est ainsi car (a) le registre à décalage 34a engendre en sortie à sa sortie non inversée un niveau logique 1 qui représente un niveau logique 1 de la demande d'accès au bloc n O qui a été retardé d'une tranche de temps et (b) la demande d'accès au bloc n 2 est directement appliquée à la première entrée de la porte ET 44c. Le signal de sortie de la porte ET 44c (niveau logique 1) est envoyé à la porte OU 28. Par conséquent, la porte OU 28 engendre en sortie le signal de rejet de demande qui prend un niveau logique 1 dans la tranche de temps "2" comme l'indique la Figure 3. En réponse à ce signal de rejet de demande, l'unité CPU 8 applique encore la demande d'accès au bloc n 2 au contrô- leur de mémoire centrale 10. Bien que le contrôleur 10 soit en mesure d'accepter la demande d'accès au bloc n 2 dans la tranche de temps "4", la demande est appliquée au contrôleur 10 dans une tranche de temps "5" dans cet exemple de réalisation particulier. Comme on le voit sur la Figure 3, la porte ET 46b engendre en sortie un signal occupé qui prend un niveau logique O pendant trois tranches de temps "6"-"8" consé- cutives. La génération du signal occupé a été décrite ci-dessus. On remarquera d'après ce qui précède que le con- trôleur de mémoire centrale 10 reçoit des demandes d'accès à des blocs du contrôleur de système 8 et engendre un signal de rejet de demande 10j dans le cas o une demande d'accès à un bloc apparaît consécutivement en relation avec un groupe de blocs. Ainsi, l'application de deux données successives à chacun des registres de contrôle de données de lecture et d'écriture avec le même groupe de blocs est interdite, et la mémorisation erronée de données dans les registres de contrôle de données men- tionnés ci-dessus est empêchée. En se référant à la Figure 3, on va décrire d'une manière simplifiée les opérations en relation avec les demandes d'accès aux blocs.n 3 et n l. Une demande d'accès au bloc n 3 est appliquée à une borne d'entrée 32d (Figure 2) dans la tranche de temps "3" et elle est acceptée par le contrôleur 10 dans la même tranche. En conséquence, un signal occupé (le signal de sortie de la porte ET 46c) prend un niveau lo- gique 0 pendant les trois tranches de temps "4","5" et "6" comme l'indique la Figure 3. Dans la tranche de temps suivante "4", une demande d'accès au bloc n l apparaît et elle est appliquée à une borne d'entrée 32b. Dans ce cas, la sortie de la porte OU 28 (le signal de rejet de demande) prend un niveau logique 1 dans la tranche de temps "4" de la même manière que dans la demande d'accès au bloc n 2 mentionnée plus haut. Ensuite, l'unité CPU 8 réemet, dans la tranche de temps "5", la demande d'accès au bloc n l qui est acceptée par le contrôleur 10. Ainsi, un signal occupé en sortie d'une porte ET 46b prend un niveau logique 0 pendant les trois tranches de temps consécutives "7","8" et "9". La présente invention a été décrite en relation avec deux groupes de blocs dont chacun est constitué de deux blocs. Cependant, il est dans le cadre de l'inven- tion de modifier l'exemple de réalisation précédent pour inclure plus de deux groupes de blocs et pour inclure plus de deux blocs dans chaque groupe. REVENDICATIONS 1. Dispositif de contrôle de demandes d'accès à des blocs dans un système de traitement de données numé- riques, comprenant: un ensemble ce blocs [n 0 O n 3) qui sont divisés en un ensemDle ae groupes ae DloCS {n -O, n 2 et n 1); un premier moyen, le premier moyen étant couplé activement à l'ensemble de blocs et commandant les opé- rations de lecture et d'écriture de ceux-ci, le premier moyen recevant un ensemble de demandes d'accès aux blocs, le premier moyen émettant un premier signal indiquant qu'une demande d'accès à un bloc n'a pas été acceptée dans le cas o la demande de bloc apparaît consécutive- ment dans un groupe de blocs, le premier signal étant appliqué à un contrôleur de système (8); et un ensemble de paires de registres de contrôle de données de lecture et d'écriture i18,22,fU,24j, chacune des paires de registres de contrôle de données de lecture et d'écri- ture étant affectée à un groupe de blocs et étant com- mandée par le premier moyen. 2. Dispositif selon la revendication 1, dans le- quel le premier moyen comprend: un ensemble de deuxièmes moyens, chacun des deuxièmes moyens étant affecté à un bloc et recevant chacun une demande d'accès à un bloc du contrôleur de système, les deuxièmes moyens engendrant chacun un deux- ième signal qui correspond au premier signal, dans le cas o un des deuxièmes moyens appartenant à un groupe de blocs donné reçoit une demande d'accès à un bloc qui suit immédiatement une demande d'accès à un bloc appli- quée à un autre des deuxièmes moyens appartenant au groupe de blocs donné. 3. Dispositif selon la revendication 2, dans le- quel chacun des deuxièmes moyens émet un signal occupé dans le cas o une demande d'accès à un bloc qui lui est appliquée est acceptable, le signal occupé prenant un la niveau logique prédéterminé pendant des tranches de temps prédéterminées et faisant en sorte que chacun des deux- ièmes moyens rejette l'acceptation d'une demande d'accès à un bloc qui lui est adressée pendant les tranches de temps prédéterminées. 4. Dispositif selon la revendication 3, dans le- quel chacun des deuxièmes moyens comprend: un premier registre à décalage, le premier regis- tre à décalage recevant une demande d'accès à un bloc, le premier registre à décalage engendrant en sortie des niveaux logiques inversé et non inversé de la demande d'accès à un bloc qui lui est appliquée, dans une tranche de temps qui suit une tranche de temps pendant laquelle la demande d'accès à un bloc est appliqué au premier re- gistre à décalage; une première porte ET, la première porte ET in- cluant des première, deuxième et troisième bornes d'en- trée, la première borne d'entrée recevant la demande d'accès à un bloc appliquée au premier registre à déca- lage, la deuxième borne drentrée étant couplée pour re- cevoir un niveau logique qui est un niveau logique inversé retardé d'une tranche de temps d'une demande d'accès à un bloc appliquée à un autre deuxième moyen, la première porte ET émettant un signal indiquant si la demande d'accès à un bloc appliquée au premier registre à déca- lage est ou non acceptée, la première porte ET engendrant un signal de sortie; un ensemble de deuxièmes registres à décalage, les deuxièmes registres à décalage étant disposés en série et recevant le signal de sortie de la première porte ET, chacun des deuxièmes registres à décalage en- gendrant en sortie des niveaux logiques inversé et non inverse; une deuxième porte ET étant pourvue d'un ensemble de bornes d'entrée couplées pour recevoir les niveaux logiques inversés engendrés par les deuxièmes registres à décalage, la deuxième porte ET appliquant le signal de sa sortie à la troisième borne d'entrée de la pre- mière porte ET; et une troisième porte ET incluant des première et deuxième bornes d'entrée, la première borne d'entrée de la troisième porte ET recevant la demande d'accès à un bloc appliquée au premier registre à décalage, et la deuxième borne d'entrée de la troisième porte ET étant couplée pour recevoir le signal de sortie de la deuxième porte ET.