FR 2651052 A1 19910222 FR 9010395 A 19900816 APPAREIL DE TRAITEMENT D'INFORMATION. DESCRIPTION La présente invention se rapporte à un appareil de traitement de L'information qui exécute une instruction de transfert de données pour emmagasiner les données de l'information mémorisées à une adresse d'une mémoire vers une autre adresse de la même mémoire. Une instruction de transfert comporte généralement une adresse-source ou adresse de base, une adresse de destination et la désignation de la longueur des opérandes à transférer. L'adresse de base est l'adresse de provenance et celle de destination, est L'adresse vers laquelle s'effectue le transfert, à l'intérieur de cette mémoire. Les instructions de transfert demandent le transfert de données d'opérandes bit par bit (élémént binaire par élément binaire) de la région source des données d'opérandes de source (qui seront désormais dénommées opérandes de base) vers La région des données d'opérandes de destination !qui seront désormais dénommées opérandes de destination). Généralement la lecture de données d'une mémoire principale ou d'une mémoire cache, ou l'écriture dans une telle mémoire, s'effectue mot par mot dans un appareil de traitement de l'information, chaque mot ayant une longueur uniforme de quatre ou huit bits. Par conséquent, il existe d'autres instructions de transfert qui demandent Le transfert de données par mots de quatre ou huit bits et non bit par bit. Ce transfert de données mot par mot réalise avec une performance accrue ltexécu- tion d'instructions de transfert par rapport à un transfert de données bit par bit. Si Les opérandes de base comprennent une adresse de destination dans un transfert de données mot par mot, Le probLème de la différence de résultats entre Les transferts bit -par bit et mot par mot apparat.Si des régions d'adressage se chevauchent dans de telles données transférées, l'exécution de L'instruction de transfert doit être modifiée de façon à transmettre les données bit par bit au lieu de mot par mot. On peut se référer au brevet américain 4 652 991 pour un exemple de technique permettant d'améliorer la qualité de l'exécution d'une instruction de transfert en cas d'un tel chevauchement. Le besoin existe cependant de détecter tout chevauchement destructeur d'opérandes, indépendamment de l'amélioration de l'exécution dans une situation de chevauchement. Le brevet que l'on vient de siter décrit également un exemple de technique d'une telle détection. Généralement cette détection utilise L'adressesource, L'adresse de destination et La Longueur des opérandes de base pour examiner si cette condition existe ou non : (adresse de source) inférieure ou égale à (adresse de destination) inférieure à (adresse de source + lon gueur d'opérandes de base). Ce système de détection exige cependant pour détecter un chevauchement destructeur que l'on dispose simultanément de L'adresse-source, de L'adresse de destination et de la longueur des opérandes de base. IL nécessite en- outre d'accompLir L'opération arithmétique d'addition de L'adresse-source et de la Longueur des opérandes de base, de comparer les grandeurs relatives d'éléments selon deux combinaisons, L'une entre l'adresse-source et L'adresse de destination et L'autre entre L'adresse de destination et la somme de L'adresse source et de la Longueur des opérandes de base, l'opéra- tion de soustraction de L'adresse-source de L'adresse de destination et la comparaison des grandeurs relatives entre le résultat de la soustraction de L'adresse-source de L'adresse de destination et la Longueur des opérandes de base. La détection d'un chevauchement destructeur prend par conséquent un temps considérable. En outre, même s'il n'y a pas de tel chevauchement, le transfert de données commence après la détection de l'absence de chevauchement, de sorte qu'il est difficile d'accroître la performance de l'exécution d'instruction de transfert même si les données sont transférées mot par mot. Un objectif de la présente invention est la fourniture d'un appareil de traitement de L'information débarrassé de ce désavantage et capable d'accroître la performance de l'exécution d'instructions de transfert. Selon un aspect de L'invention, on fournit un appareil de transfert de l'information pour l'exécution d'instructions de transfert de données comportant le transfert de données d'opérandes de mémoire à partir d'une adresse-source désignée par l'instruction vers une région de la mémoire affectée d'une adresse de destination également désignée par La même instruction, compte nant un premier moyen de détection de chevauchement apte à produire un signal de "traitement de chevauchement inutile" qui indique que L'instruction de transfert de données peut être exécutée mot par mot sur la- base de l'adresse-source et de l'adresse de destination, et un second moyen détecteur de chevauchement pour comparer la grandeur de la différence entre L'adresse de destination et L'adresse-source et la longueur d'opérandes de base, ce moyen pouvant produire un signal de "commande de traitement de chevauchement". Selon un autre aspect de L'invention; on fournit un appareil de traitement de l'information pour exécuter une instruction de transfert de données afin de transférer des données d'opérandes de mémoire qui commencent à une adresse-source, désignée par L'instruction, vers une région de mémoire affectée d'une adresse de destination désignée par la même instruction, comprenant un premier circuit de détection afin de détecter une absence d'identité entre des bits prédéterminés de L'adresse-source et de L'adresse de destination ; un second circuit de détection pour détecter l'identité entre des bits prédéterminés dans l'adresse-source et l'adresse de destination ; un troisième circuit de détection pour détecter si un bit prédéterminé de L'adresse source ou de L'adresse de destination est à l'état O ou 1 ; et un circuit de décision pour demander l'exécution d'une instruction de transfert de données selon les résultats ou Les signaux de sortie fournis par les trois circuits de détection. Les caractéristiques, objets et avantages de L'invention vont devenir plus clairs à la description détaillée qui sui en Liaison avec les dessins d'illustration parmi Lesquels - la figure 1 illustre la configuration d'une réalisation préférée de L'invention, - les figures 2 et 3 illustrent la disposition des opérandes d'une instruction de transfert dans une mémoire, - La figure 4 est un diagramme temporel qui représente Le fonctionnement du moyen de détection du chevauchement dans La réalisation préférée de l'invention, - la figure 5 illustre la configuration du circuit de détection de chevauchement á haute vitesse 6 de La réalisation préférée de La figure 1, et - La figure 6 est un diagramme temporel qui représente le fonctionnement de La réalisation préférée de L'invention. Les mêmes numéros de référence désignent les mêmes éléments constitutifs dans les différentes figures. Si on se réfère à la figure 1, qui représente une réali sation préférée de l'invention, on voit un registre d'adresses de source 1 pour mémoriser une adresse-source, qui indique le lieu d'origine du transfert, fournie par une section de déchiffrage d'instructions non représentée ; un registre d'adresses de destination 2 pour mémoriser une adresse de destination qui indique La destination du transfert, fournie par la section de déchiffrage d'instructions ; un registre de Longueur d'opérandes de base 3, ou d'opérandes-sources qui mémorise une longueur d'opérande de base indicatrice de la longueur 'opérande à transférer et fournie par la section de iffrage d'instructions ; un circuit de détection de chevauchement à grande vitesse 6 pour produire un signal de "traitement de chevauchement inutile" et l'envoyer par une ligne 101, ce signal indiquant en fonction de L'adresse-source fournie par le registre d'adresses de source 1 par une ligne 103 et de L'adresse de destination fournie par le registre d'adresses de destination 2 par une ligne 104 que L'instruction de transfert peut être exécutée, du moins par un traitement mot par mot ; un circuit soustracteur 7 pour soustraire L'adresse-source de l'adresse de destination, ces adresses étant originaires respectivement du registre d'adresses de source 1 et du registre d'adresses de destination 2 ; un registre différentiel 4 pour mémoriser La différence calculée par le circuit soustracteur 7 ; un circuit de comparaison de grandeurs relatives entre la différence obtenue du registre différentiel 4 et de la longueur d'opérande du registre de longueur d'opérandes de base 3, ce circuit fournissant un état Logique 1 quand la Longueur d'opérande des de base est supérieure à 16 bits et que la différence est inférieure à 16 ou quand la longueur d'opérandes est inférieure ou égale à 16 bits et que la différence est plus petite de la longueur d'opérandes de base ; et une bascule bistable (FF) 5 pour fournir Le signal de sortie du circuit 8 après L'avoir retenu pendant un cycle de machine à une Ligne de signal 102 comme signal de "demande de traitement de chevauchement". Le traitement mot par mot d'une instruction de transfert dans cette réalisation préférée de L'invention sera décrit en l'absence de chevauchement destructeur plus en détail ci-dessous à l'aide de La figure 2. Cette figure représente des opérandes sur une mémoire quand L'adresse de source est 8n + 7, la Longueur d'opérandes de base est de 16 bits et L'adresse de destination est 8 m + 1). Comme les données sont manipulées dans cette réalisation préférée de L'invention vers ta mémoire ou à partir d'elle en unités de mots de 8 bits, les opérandes de base sont Lues et décomposées en trois parties dénommées RW1, RW2 et RW3 au cours de trois lectures d'unités de 8 bits. Par ailleurs, les opérandes de destination sont également écrites selon qu'une décomposition en trois parties WWî, WW2, WW3, selon trois écritures d'unités de 8 bits. Une instruction de transfert peut être exécutée tout d'abord en lisant toutes les opérandes de source et ensuite en les écrivant à l'adresse de destination, mais ceci demanderait trop d'équipement de mémorisation des données d'opérandes lues. C'est pourquoi la lecture et l'écriture sont accomplies approximativement simultanément dans La réalisation préférée. En se reportant de nouveau à la figure 2, l'écriture de la première partie de données WW1 demande une préparation à partir des parties lues RW1 et RWZ. Deux actions de Lecture d'opérandes de base au moins doivent par conséquent précéder La première opération d'écriture. Selon la relation entre l'adresse de source et l'adresse de destination, la première donnée d'écri ture peut être exécutable après seulement une action de Lecture. Cependant, afin de simplifier la commande si toutes Les opérandes de base ne peuvent être lues dans une seule action de lecture, les opérandes de base sont toujours lues deux fois consécutives. En outre, on répète alternativement la lecture et l'écriture quand les opérandes de base sont complètement lues, et l'écriture est continuée jusqu'à L'écriture complète de toutes Les opérandes de destination. La méthode de traitement décrite ci-dessus rend possible le traitement par mots de 8 bits en donnant le même résultat que le traitement bit par bit si L'adresse de destination est plus grande que l'adresse-source de 16 bits ou plus, et ceci même s'il y a un chevauchement destructeur d'opérandes comme l'illustre la figure 3. Par conséquent, le traitement mot par mot est proscrit seulement si l'une des conditions suivantes est yalable (longueur d'opérandes de base) > à 16 bits et 1 Un circuit logique qui détecte ces conditions comprend le circuit soustracteur 7, Le registre différentiel 4, le circuit de comparaison de grandeurs relatives 8 et la bascule bistable 5. Le fonctionnement de ce circuit va être décrit ci-dessous à l'aide des figures 1 et 4. En se reportant d'abord à la figure 4 qui illustre le fonctionnement du circuit logique, L'adresse se-source et l'adresse de destination sont insérées respectivement dans les premier et deuxième cycles de machine. Dès que la longueur d'opérande de source est inseree, au cours du troisième cycle de machine, la comparaison de la soustraction de. l'adresse de destination par ltadresse-source est insérée dans le registre différentiel 4 par le circuit soustracteur 7.Le signal de sortie du circuit de comparaison de grandeurs relatives 8 est insert dans la bascule bistable 5 au quatrième cycle de machine, et la détermination du signal de demande de traitement de chevauchement, à l'état 0 ou 1 selon le cas, se produit pendant ce quatrième cycle de machine. Par conséquent, le commencement effectif du traitement mot par mot ou bit par bit n'a pas lieu avant le quatrième cycle de machine. On a va maintenant decrire en se reportant à La figure 5 le circuit de détection de chevauchement à grande vitesse 6 de la figure 1. Il comprend des circuits de comparaison 11 à 50 pour comparer L'adresse de destination fournie par la ligne de signaux 104 à une valeur fixe. L'adresse-source et L'adresse de destination comprennent -31 bits chacune, à chacun desquels est assigne un des numeros de bits 1 à 31. Dans ta description suivante, le bit 27 de L'adresse-source sera appelé S27, et les sept bits 20 à 26 de L'adresse de destination D20 à D26. Les circuits de comparaison 11 et 12 sont prévus respectivement pour détecter l'identite entre S27 et D27 et L'absence d'identite entre S20 à S26 et D20 à D26. Les circuits de comparaison 13 et 17 sont respectivement prévus pour détecter si S27 est à 0 ou non et si les deux bits S26 et S27 sont à 01 ou non. Ce circuit de détection de chevauchement à grande vitesse 6 est en outre equipe ae portes ET 61 à 75, d'une porte OU 80 et d'une- ligne de signaux 101 pour produire un signal de traitement de chevauchement inutile.Comme L'absence d'identité entre S27 et D27 s'exprime par S27D27 et que l'identité entre SZU à S26 et D20 à D26 par S20-26=D20-2b, le fonctionnement logique du circuit de detection de chevauchement à grande vitesse represente à la figure 5 est (S20-26 f D20-26) . (S27 = D27) +(S20-26 # D20-26) . (S27 = 0) . (D27 = 1) +(S26 = D26) . (S27 = 1) . (D27 = 0) +(S20-25 # D20-25) . (S26-S27 = 01) . (D26-27 = 10) +(S25 = D25) . (S26-27 = 11) . (D26-27 = 00) +(S20-24 f D20-24) . (S25-27 = ü11) . (D25-27 = 100) +(S24 = D24) . (S25-27 = 111) . (D25-27 = 000) +(S20-23 # D20-23).(S24-27 = 0111).(D24-27 = 1000) +(S23 = D23).(S24-27 =. 1111).(D24-27 = 0000) +(S2ü-22 2 D20-22).(S23-27 = 01111).(D23-27 = 10000) +(S22 = D22).(S23-27=11111).(D23-27 = 00000) +(S20-21 f D20-21).(S22-27 = 011111).(D22-27 = 100U00) +(S21 = D21).(S22-27 = 111111).(D22-27 = 000000) +(S20 # D20).(S21-27 = 0111111).CD21-27 = 1000000) +(S20 = D20).(S21-27 = 1111111).(D21-27 = 0000000) Cette operation logique est la négation de la condition suffisante minimale obtenue à partir de chacun des bits 20 et 27 des adresses de source et de destination qui satisfait à la condition 1 selon laquelle le traitement mot par mot est inac ceptable. On garantit donc, si le resultat de l'opera- tion à la sortie de la figure 5 est "1", que le trai tement mot par mot peut du moins être autorisé. Comme le schema logique ne tient pas compte de La longueur des opérandes .de source, son resultat ne sera pas "1" même si Les opérandes sont courtes et ne se chevauchent pas. De plus, comme il ne tient compte que de huit bits sur une adresse de 31 bits, son resultat ne sera pas toujours "1" même si la longueur d'opérandes de source est plus grande que 16 bits et si les adresses de source et de destination sont eloignees mutuellement de 16 bits ou plus. Cependant, en supposant que les adresses de source et de destination sont réparties selon des distributions. probablement égales, le signal de traitement de chevauchement inutile sur la Ligne de signal 101 sera égal à "1" dans 99,2% de toutes les combinaisons d'adresses. On va maintenant décrire en detail le fonctionnement de cette réalisation préférée de l'invention à l'aide des dessins. En se referant simultanément aux figures 1 et 4, en reponse à l'insertion des adresses de source et de destination dans le registre d'adresses-source 1 et le registre d'adresses de destination 2 au premier et au deuxième cycles de machine respectivement, le circuit de detection de chevauchement à grande vitesse 6 détermine le signal de traitement de chevauchement inutile à "O" ou "1" au deuxième cycle de machine. Après quoi, en réponse à l'insertion de la longueur d'opérandes de base dans le registre de longueur d'opé- randes de base 3 au troisième cycle de machine, le signal de demande de traitement de chevauchement est déterminé à "1 ' ou lloll au cinquième cycle de- machine. Si le signal de traitement de chevauchement inutile est détermine -à "1" au deuxième cycle de machine, le signal de demande de traitement de chevauchement deviendra évidemment egal à "1" au quatrième cycle de machine. En se référant à la figure 6, on attend alors le deuxième cycle de machine (etape 150) et le signal de traitement de chevauchement inutile est vérifié au deuxième cycle de machine (étape 151). Dès que le signal de traitement de chevauchement inutile devient égal à "1", le traitement du transfert mot par mot commence étape 155). Si le signal de traitement de chevauchement inutile est "0", on attend le quatrième cycle de machine (etape 153). Le signal de demande de traitement de chevauchement est vérifie au quatrième cycle de machine (etape 154) et s'il est trouvé égal à "O", le traitement du transfert mot par mot est accompli (etape 155) ou s il est égal à "1", le traitement du transfert bit par bit est accompli (étape 156). Dans ' ce cas, le traitement mot par mot commence au deuxième cycle de machine dans 99,2% des cas et le traitement mot par mot ou bit par bit au quatrième cycle de machine ne concerne que les 0,8% restant. L'accomplissement de l'execution de ces instructions MVC est avance de pas moins que 1,984 cycles (2 cycles x 99,2% = 1,984 cycles 100% en moyenne, par rapport aux realisations de l'art anterieur où le traitement mot par mot ou bit par bit était effectué uniformément au quatrième cycle de machine. Comme le circuit de détection de chevauchement à grande vitesse 6 utilise dans L'invention peut être composé de portes beaucoup moins nombreuses et beaucoup moins étages que le circuit soustracteur ou le circuit de comparaison de grandeurs relatives, ce progrès dans l'exécution est réalisable. En accroissant ou diminuant le nombre de bits d'adresse à comparer, tout degré désire de precision peut être obtenu. Les relations entre les bits comparés, le niveau de précision et l'avance de l'accomplissement sont illustrés dans le tableau 1 ci-dessous. Tableau 1 Bits comparés Niveau de Avance d'accomplis précision sement 2 bits (26-27) 50 X 1 cycle de machine 5 bits (23-27) 93,7 % 1,8?4 cycle de machine 8 bits (20-27) 99,2 % 1,984 'cycle de machine 11 bits (17-27) 99,90 % 1,998 cycle de machine 15 bits t13-27) 99,993 X 1,99986 cycle de machine Par conséquent, le nombre de bits à comparer peut être choisi selon les performances souhaitees et le nombre de portes consacrées au circuit de détec tion de fchevauchement à grande vitesse. Si on connaît à l'avance la nature du Logi ciel qu'il faut exécuter par C'appareil. de traitement de la formation constitutif de L'invention, il est possible d'altérer le circuit logique du circuit de detection de cbevauchement à grande vitesse par exemple en remplaçant tS20-26D20-26) par (S1-27#D1=27), selon La distribullon des adresses de source et de destina tion des instructions et transferts mis en jeu dans ce Logiciel particulier, afin d'obtenir un appareil de traitement de L'information encore plus efficace. Comme on L'a decrit jusqu'ici, L'invention a l'avantage que des cas dans lesquels aucun traitement de chevauchement å grande vitesse est requis sont détectés en examinant l'identité ou L'absence d'identi té entre des bits des adresses de source et de destina tion ou si de tels bits sont à l'état "O" ou "1", et la méthode d'exécution des instructions de transfert est commande en conséquence, ce qui entrain une amélioration de la performance d'exécution de telles instructions. Quoiqu un circuit de détection de chevauchement conforme à l'art antérieur soit egalement utilisé dans cette réalisation préférée, il n'est pas une partie essentielle de l'invention ; il est egalement possible de modifier l'appareil de traitement de l'information avec un seul circuit de détection dechevauchement à grande vitesse et de le laisser commencer immédiatement le traitement bit par bit à moins que le signal de traitement de chevauchement inutile ne devienne "1" au deuxième cycle de machine. REVENDICATIONS 1. Appareil de transfert d'informations pour l'exécution d'instructions de transfert de données afin de transférer des données d'opérandes de mémoire qui commencent à une adresse de source désignée par l'instruction vers une région de mémoire commençant à une adresse de destination désignée par l';nstruc- tion, caractérisé par - un premier moyen de détection de chevauchemerit (6) pour produire un signal d'inutilité de traitement de chevauchement qui indique que L'instruction de transfert de données peut être exécutée en traitement mot par mot, à L'aide de L'adresse de source et de L'adresse de destination ; et - un second moyen de détection de chevauchement (7, 8) pour comparer la grandeur de la différence entre L'adresse de destination et l'adresse-source avec la grandeur d'une longueur d'opérande de base, et pour produire un signal de demande de traitement de chevauchement. 2. Appareil de transfert d'informations suivant la revendication 1, caractérisé en ce que le premier moyen de détection de chevauchement comprend - un premier circuit de détection (11) pour détecter une absence d'identité entre des bits prédéterminés de L'adresse-source et de l'adresse de destination - un second circuit de détection ' (12) pour détecter L'identité entre des bits prédéterminés de l'ad;esse-source et de L'adresse de destination ; - un troisième circuit de détection (13) pour détecter si un bit prédéterminé de L'adresse-source ou de L'adresse de destination est à "û" ou "1" ; et - un circuit de décision (80) pour commander l'exécu- tion d'une instruction de transfert de données selon les signaux de sortie des trois circuits de détec tion. 3. Appareil de transfert d'informations pour l'exécution d'instructions de transfert de données afin de transférer des données d'opérandes de mémoire commençant par une adresse de source désignée par l'instruction vers une région de mémoire commençant par une adresse de destination désignée par ltinstruc- tion, caractérisé par :: - un moyen de détection de chevauchement (6) pour fournir un signal d'inutilité de traitement de che- vauchement indiquant que l'instruction de transfert de données peut être exécutée mot par mot, en fonc tion de L'adresse-source et de l'adresse de destina tion ; le moyen de détection de chevauchement- comprenant - un premier circuit de détection (11) pour détecter une absence d'identité entre des bits prédéterminés de l'adresse-source et de l'adresse de destination ; - un second circuit de détection (12) pour détecter l'identité entre des bits prédéterminés de L'adresse-source et de l'adresse de destination ; - un troisième circuit de détection (13) pour détecter si un bit prédéterminé de l'adresse-source ou de L'adresse de destin-a; ;t ion est à "O" ou "1 " ; et - un circuit de décision (80) pour commander l'exécution d'une instruction de transfert de données suivant les signaux de sortie des trois circuits de détection.