Brevet FR2378313A1 — publié le 19780818

La présente invention concerne un dispositif pour calculateur à programme enregistré permettant, alors qu'une instruction est en cours de traitement, que la suivante soit déjà rendue disponible afin de réduire le temps d'accès en mémoire et particulièrement dans le cas des microprocesseurs. Un dispositif de ce genre a déjà été présenté dans le brevet déposé aux Etats Unis d'Amérique sous le numéro 3 162 841. Selon ce dernier, il est fait emploi de compteurs d'instructions réalisant un grand nombre d'opérations, chacune desquelles correspondant à une instruction de longueur uniforme et donnant au compte un accroissement prédéterminé. Tandis que les premières instructions sont en cours d'exécution, de nouvelles sont déjà rendues disponibles, de telle façon que le temps de mise à disposition des instructions ne rentre pas dans celui de traitement et n'excède pas la durée de ce dernier. Du fait que l'accroissement est prédéterminé, la longueur des instructions doit toujours être la même. L'objet de l'invention est de fournir un dispositif qui commande le traitement des instructions. Pour le traitement d'instructions de différentes longueurs (nombre de mots), on dispose d'un compteur de programme externe au calculateur et commandant une lecture en parallèle d'un nombre m de mots d'instruction d'une mémoire vers un registre d'un dispositif de mise en position. Un décodeur d'instruction relié à ce dernier évalue la longueur de l'instruction suivante et commande le transfert de l'instruction vers une mémoire intermédiaire ainsi que la mise en position de la deuxième instruction suivante alors que le calculateur exécute l'instruction enregistrée dans la mémoire intermédiaire.L'utilisation d'un compteur externe de programme présente l'avantage que, dans le calculateur, un registre qui autrement était utilisé pour le comptage du programme est à présent disponible pour agrandir la taille du registre de travail par exemple. De plus, les instructions nécessaires à l'accroissement et à la lecture du compte sont rendues inutiles ce qui a pour conséquence de permettre un gain de temps supplémentaire. Selon une version de l'invention, la mémoire se compose d'un nombre m de blocs de mémoire où m est au moins aussi élevé que le plus grand nombre n de mots contenus dans une instruction. D'autre part, les registres du dispositif de mise en position ont au moins n+m emplacements tandis que la mémoire intermédiaire n'en comporte que n, chacun pouvant enregistrer un mot d'instruction. Un tel dispositif à memoiresindependantes les unes des autres et commandées en fonction des cas permet d'intercaler trois instructions consécutives de différentes longueurs de telle façon que les moyens de commande utilisés restent faibles et qu'il peut être fait un emploi optimal des emplacements disponibles en mémoire. Selon une seconde version de l'invention, le compteur d'instructions peut être mis en oeuvre par le calculateur. De cette manière, on peut utiliser des interruptions ou des sauts de programme plutôt qu'un déroulement séquentiel déterminé. Selon une autre version, le compteur d'instructions comporte un compteur d'adresses et un compteur de mots. Le nombre représenté par le premier compteur est augmenté ##d'une unité à chaque lecture en mémoire, tandis que le nombre représenté par le second l'est à chaque fois qu'un mot est placé dans le dispositif de mise en position. Ceci évite qu'il existe des étages vides dans le registre entre l'instruction et mise en position et les mots à ajouter. L'invention sera maintenant mieux comprise à la lecture de la description détaillée qui va suivre, donnée à titre d'exemple non limitatif, en se reportant aux figures annexées qui représentent - la figure I, le schéma synoptique d'un calculateur avec un registre a décalage permettant de placer les instructions ; - la figure 2, un autre schéma dans lequel le registre à décalage de la figure 1 a été remplacé par un multiplexeur et un registre. Dans un premier temps la commande d'un accès en mémoire va être decrite à l'aide de la figure 1 pour un macrocycle à l'intérieur du déroulement du programme. Il est supposé que le macrocycle comprend une instruction d'une longueur de trois mots. Au commencement du macrocycle, un circuit de commande SS détermine, par ltintermédiaire de la ligne Ut, le transfert en parallèle des contenus des trois derniers emplacements de multiplet d'un registre à décalage SR dans trois emplacements identiques d'une mémoire intermédiaire ZS. Chaque emplacement peut contenir un mot de huit éléments binaires, c'est-à-dire un octet, de telle façon qu'une instruction de trois octets est disponible afin que le microprocesseur ltexécute. Le nombre m d'emplacements de la mémoire inter mediaire ZS est choisi tel que l'instruction la plus longue possible (dans ce cas trois octets) puisse être disponible. Tandis que le microprocesseur pP exécute l'instruction enregistrée dans la mémoire intermédiaire ZS, l'instruction suivante (dont les mots sont stockés plus à gauche dans le registre à décalage SR) est déjà en cours de mise en place. Au moyen de trois impulsions de décalage transmises sur la ligne PL, tous les mots d'instruction contenus dans le registre à décalage SR sont déplacés vers l'extreme droite. L'instruction suivante, dans le cas où elle se compose à nouveau de trois mots, peut ainsi être transférée vers la mémoire intermédiaire ZS comme il apparat sur la figure. Conformément au code utilisé, le mot stocké dans le registre à décalage SR à l'extrême droite contient un élément d'information indiquant la longueur de l'instruction. La sortie de ce registre coté extrême droite est reliée à un décodeur d'instructions BD, lequel, à ltarrivée d'un nouveau mot à cet endroit, est avisé de la longueur de l'instruction pouvant atteindre trois mots. Cette information est transférée avec deux éléments binaires au circuit de commande SS qui est ainsi prêt à exécuter le transfert vers la mémoire intermédiaire ZS d'un nombre donné des trois mots stockés sur l'extrême droite en fonction de la longueur de l'instruction.Le transfert a lieu dès que le circuit de commande SS reçoit un signal correspondant en provenance du microprocesseur #P sur une ligne ST après que ledit microprocesseur ait exécuté l'instruction précédente. On remarquera que le nombre d'impulsions de décalage que le circuit de commande doit délivrer pour mettre en position une nouvelle instruction est déterminé par le résultat enregistré du décodage de l'instruction précédente. Cependant, il est également possible d'effectuer des opérations de décalage jusqu a ce que le circuit de commande SS reçoive un nouveau résultat du décodeur d'instructions BD. Le registre à décalage SR est chargé par des lignes de données DL à huit éléments binaires à partir d'une mémoire SP contenant quatre blocs B1 àB4. Chacun de ces blocs fournit un octet lorsque la mémoire est adressée à partir du compteur de programme PZ sur une ligne d'adressage AL à quatorze éléments binaires, de telle façon que quatre octets seront chargés dans le registre à décalage SR. Le compteur de programme PZ contient un compteur d'adresses A qui avance d'une unité chaque fois qu'une donnée est lue par la mémoire SP et un compteur d'octets B qui est commandé par chaque impulsion de décalage en provenance du circuit de commande SS. Lorsque le nombre représenté par le compteur B a été augmenté de quatre unités, les quatre emplacements côté gauche du registre à décalage SR sont inoccupés et le compteur d'octets B commande le compteur d'adresses A. Ceci évite la présence d'intervalles dans le registre SR. Dans les lignes qui suivent il est supposé que le dernier emplacement du registre à décalage SR contient une instruction de saut, fait qui est communiqué au circuit de commande SS par le détecteur d'instructions BD comme mentionné précédemment. Après le transfert vers la mémoire intermédiaire ZS, le microprocesseur MP trouve alors dans les deux emplacements de gauche de ladite mémoire ZS deux adresses à huit éléments binaires qui sont toujours contenues dans ces emplacements dans le cas d'une instruction de saut.Les seize éléments binaires d'adresse sont lus par le microprocesseur XP et transférés par les lignes AA au compteur de programme PZ où les quatorze éléments binaires de poids le plus important recouvrent les deux compteurs A et B et de là les deux éléments binaires de poids le moins important sont appliqués au circuit de commande SS pour y déclencher l'émission d'impulsions de décalage destinées au registre SR lequel est initialisé après adressage du bloc de mémoire SP, de telle façon que les quatre mots lus dans le registre à décalage SR sont mis en position par quatre impulsions de décalage pour le transfert vers la mémoire intermédiaire ZS. Les interruptions du programme sont réalisées de la meme manière que les sauts. Si l'instruction de saut indique que, après son exécution, le programme avec l'adresse précédente doit etre continué, la dernière adresse de programme sera transférée du compteur PZ au microprocesseur AP sur la ligne RL avant que ledit microprocesseur AP ne recouvre le compteur de programme PZ avec les quatorze éléments binaires de poids le plus important précédemment mentionnés. Après exécution de l'instruction de saut, l'adresse de programme est lue comme étant une adresse de retour au niveau de la ligne AA. La figure 2 représente une variante du dispositif de mise en position de la figure 1. Le registre à décalage SR à 8 positions a été remplacé par une mémoire tampon PS à 7 positions qui est chargée à partir de la mémoire SP de la meme façon que le registre à décalage SR. Le transfert vers la mémoire intermédiaire ZS se déroule également de la meme façon. La mise en position est réalisée à l'aide d'un multiplexeur MUX. Ce dernier peut etre considéré comme étant construit à partir de trois sélecteurs rotatifs à quatre étages (unisélecteurs). Chaque balai est relié à l'une des trois positions de droite de la mémoire tampon PS et, en fonction de la position à laquelle il est placé par le circuit de commande SS sur la ligne PL, permet d'établir la liaison à l'une des quatre positions de gauche de la mémoire tampon. Après ajustement des trois balais dont un seul est représenté, trois octets sont transférés de la gauche vers la droite. ta mise en position par multiplexeur se déroule toujours en deux étapes (ajustement, transfert) tandis que la méthode de decalage peut en nécessiter jusqu a quatre. Cependant, une économie sur le temps total de traitement ne peut etre réalisée car quatre opérations de décalage nécessitent moins de temps qu'un pas de traitement dans le microprocesseur#P. On remarquera que la mise en position peut également etre réalisée à l'aide d'une mémoire à trois états. il est bien évident que la description qui précède n'a été donnée qu'à titre d'exemple non limitatif et que de nombreuses variantes peuvent être envisagées sans sortir pour autant du cadre de l'invention. REVENDICATIONS REVENDICATIONS 1. Dispositif pour calculateur à programme enregistré, par lequel durant l'exécution d'une instruction, la suivante est rendue disponible afin de réduire le temps d'accès en mémoire et ce particulièrement dans le cas d'un microprocesseur, caractérisé par le fait que pour traiter des instructions de différentes longueurs (nombre de mots), il est fait emploi d'un compteur de programme extérieur au calculateur et commandant une lecture en parallèle de m mots d'instruction d'une mémoire vers le registre d'un dispositif de mise en position, que ce dispositif de mise en position comporte un décodeur d'instructions qui détecte la longueur de l'instruction suivante, et que la sortie du décodeur d'instructions est reliée à un circuit qui commande le transfert de l'instruction depuis le dispositif de mise en position à une mémoire intermédiaire et la mise en position de la deuxième instruction suivante, le calculateur exécutant l'instruction stockée dans la mémoire intermédiaire. 2. Dispositif conforme à la revendication 1, caractérisé par le fait que la mémoire est composée de m blocs avec m au moins aussi grand que le plus grand nombre n de mots contenus dans une instruction, et que les registres du dispositif de mise en position ont au moins m+n emplacements tandis que la mémoire intermédiaire n'en comporte que n, chacun étant capable de stocker un mot d'instruction. 3. Dispositif conforme à celui de la revendication 2, caracterise par le fait que le compteur de programme peut etre déclenché par le calculateur. 4. Dispositif conforme à celui de la revendication 3, caractérisé par le fait que le compteur de programme comporte un compteur d'adresses et un compteur de mots et que le nombre représenté par le compteur d'adresses est augmenté d'une unité à chaque lecture de la mémoire, tandis que le nombre représenté par le compteur de mots est augmenté d'une unité pour chaque mot placé dans le dispositif de mise en position. 5. Dispositif conforme à celui de la revendication 4, caractérisé par le fait que le compteur de programme déclenche la lecture de la mémoire à chaque fois que le nombre indiqué par le compteur de mot a été augmenté de m. 6. Dispositif conforme à celui de la revendication 5, caractérisé par le fait que le registre du dispositif de mise en position est du type à décalage. ' 7. Dispositif conforme à celui de la revendication 6, caractérisé par le fait que le registre à décalage a 2m positions. 8. Dispositif conforme à celui de la revendication 5, caractérisé par le fait que le dispositif de mise en position comporte un multiplexeur qui fournit des connexions commutables des m emplacements vers les n emplacements du registre. 9. Dispositif conforme à celui de la revendication 5, caractérisé par le fait que le dispositif de mise en position contient des mémoires à trois états.