FR2805372A1 - Postage d'ecriture avec mise en ordre globale dans des systemes a chemins multiples - Google Patents
Postage d'ecriture avec mise en ordre globale dans des systemes a chemins multiples Download PDFInfo
- Publication number
- FR2805372A1 FR2805372A1 FR0012196A FR0012196A FR2805372A1 FR 2805372 A1 FR2805372 A1 FR 2805372A1 FR 0012196 A FR0012196 A FR 0012196A FR 0012196 A FR0012196 A FR 0012196A FR 2805372 A1 FR2805372 A1 FR 2805372A1
- Authority
- FR
- France
- Prior art keywords
- queue
- processor
- signal
- processors
- bus adapters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One dimensional, e.g. linear array, ring
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
Abstract
Dispositif et procédé pour permettre un postage d'écriture avec une mise en ordre globale dans un système à chemins multiples. Le dispositif et le procédé comportant un adaptateur de bus (115, 120) possédant un port d'entrée destiné à recevoir une ou plusieurs opérations provenant d'un processeur (105, 110). Une file d'attente (180) contrôlée par l'adaptateur de bus (115, 120) retient des informations de la ou des opérations. Un circuit de contrôle (200, 205, 210, 220), couplé à la file d'attente (180), génère un signal de sortie (165) concernant les informations provenant de la ou des opérations. Le signal de sortie (165) est transmis au processeur (105, 110). Une installation d'interconnexion (135), couplée à chaque adaptateur de bus (115, 120), transmet la ou les opérations. Un dispositif (140), couplé à l'installation d'interconnexion (135), reçoit les opérations transmises où le dispositif (140) envoie un signal d'acquittement (175) au processeur (105, 110) lors de la réception de l'opération transmise.
Description
<B>POSTAGE</B> D'ECRITURE <B>AVEC</B> MISE<B>EN</B> ORDRE<B>GLOBALE DANS DES</B> SYSTEMES <B>A</B> CHEMINS MULTIPLES <B>DOMAINE TECHNIQUE</B> La présente invention concerne le postage d'écriture dans des systèmes multiprocesseurs. L'invention concerne plus particulièrement des procédés et dispositif pour postage d'écriture avec mise en ordre globale dans un système multiprocesseur comportant des chemins multiples depuis des processeurs multiples vers dispositif d'E/S unique.
<B>CONTEXTE DE</B> L'ART Les systèmes informatiques comportent des moyens pour que les CPU transmettent des données vers des unités d'entrée-sortie (E/S) <B>.</B> La latence de transit pour transactions est typiquement élevee, de l'ordre de plusieurs centaines de milliers de cycles des CPU. Pour maximiser la performance des séquences de ces transactions, il a été d'usage courant utiliser le pipelinage, appelé également postage d'écriture, dans ce contexte particulier. Avec le postage écriture, un CPU peut émettre une écriture suivante avant l'écriture précédente ait progressé tout le long du chemin jusqu'à sa destination.
Certaines défis pour maintenir mise en ordre du système peuvent provenir du contexte du postage d'écriture. Par exemple, les protocoles de bus comportent fréquemment un mécanisme de "relance". Si deux écritures postées successives sont envoyées et que la première est réessayée, les écritures peuvent arriver <B>à</B> leur destination dans l'ordre inverse de celui dans lequel elles été transmises.
De plus, dans les systèmes<B>à</B> CPU multiples, il est généralement nécessaire pour les écritures provenant de CPU differents, envoyées<B>à</B> la même destination, d'être coordonnées. En supposant une certaine relation d'ordre entre les CPU, établie par un certain mécanisme, tel qu'un semaphore de mémoire, les écritures d'E/S émises par ordonné en premier arrivent<B>à</B> leur destination avant celles d'un CPU ordonné en second.
Ces deux problèmes sont facilement résolus dans les systemes <B>à</B> bus unique, c'est-à-dire les systèmes dans lesquels il n'existe qu'un seul chemin d'un CPU quelconque vers chaque dispositif d'E/S. Le problème de la relance" peut être résolu en relançant toutes les écritures vers la même destination lorsque la première est rlancée, couplée<B>à</B> une exigence de protocole telle que seule la relance la plus ancienne est délivrée de nouveau jusqu'à ce qu'elle soit acceptée. Le deuxième cas ne peut pas se produire par définition<B>;</B> s'il n'y a qu'un seul chemin, l'ordre d'arrivée doit être égal<B>à</B> l'ordre d'envoi.
Divers moyens ont été utilisés pour résoudre le problème ci-dessus dans les systèmes<B>à</B> chemins multiples. L' d'entre eux est l'utilisation d'une opération de "synchronisation" spéciale. Ici, les écritures<B>d'</B> sont postées comme pour un système<B>à</B> chemin unique. Mais avant qu'une permission d'interruption pour un CPU différent commençant l'écriture sur un dispositif soit reçuef le CPU d'écriture précédente délivre la "synchronisation". La irsynchronisation" joue le rôle de sonde pour assurer que tous les chemins provenant du CPU d'envoi vers toutes les destinations possibles ont eté épuisés. Lorsque la sonde indique qu'elle a terminé, le premier CPU indique au deuxième CPU, par l'intermédiaire d'un sémaphore ou interruption, qu'il peut poursuivre. Une barrière de mise en ordre, soit implicite, soit explicite, est utilisée entre la synchronisation et l'indication de poursuite. Les performances et complexité sont les inconvénients de cette approche. La complexité augmente avec les tentatives pour limiter la portée de la synchronisation au minimum nécessaire. Les performances diminuent, plus l'opération synchronisation est "lourde" et simple.
Une autre approche consiste<B>à</B> suivre la dernière écriture du premier avec une lecture de ce CPU vers la même destination. Une barrière implicite ou explicite peut séparer le retour de cette lecture avec l'indication pour le CPU suivant de poursuivre. L'inconvénient est ici lié contraintes et<B>à</B> la complexité du logiciel. Un logiciel d'héritage écrit pour des systèmes<B>à</B> chemin unique où ceci n'est pas nécessaire peut être difficile<B>'</B> modifier. Le transfert du contrôle peut être géré par une couche de logiciel qui est isolée de celle qui exécute les écritures, ainsi, la nécessité de la lecture ou de l'endroit vers lequel elle est dirigée est difficile<B>à</B> déterminer. Un exemple de ceci est la préemption<B>d'OS</B> et la migration de processus. En conséquence, un besoin existe pour qu'un dispositif prenne en compte le postage d'écriture avec une mise en ordre globale dans des systèmes<B>à</B> chemins multiples.
RESUME <B>DE</B> L'INVENTION Un dispositif et un procédé selon la présente invention, pour permettre le postage d'écriture avec une mise en ordre globale dans un système<B>à</B> chemins multiples comportent un adaptateur de bus possédant un port d'entrée pour recevoir une ou plusieurs opérations d'un processeur, une file d'attente contrôlée par l'adaptateur de bus pour retenir des informations provenant de la ou des opérations, un circuit de contrôle, couplé<B>à</B> la file d'attente, pour générer un signal de sortie concernant les informations provenant de ou des opérations, les signaux de sortie étant transmis au processeurf une installation d'interconnexion, couplée<B>à</B> chaque adaptateur de bus, pour transmettre la ou les opérations, un dispositif, connecté<B>à</B> l'installation d'interconnexion, pour recevoir les opérations transmises, où le dispositif envoie un signal d'acquittement au processeur lors de la réception de l'opération transmise.
Les hommes de l'art comprendront ces avantages et bénéfices des divers modes de réalisation de l'invention, ainsi que d'autres,<B>à</B> la lecture de la description détaillée suivante d'un mode de réalisation préféré, en référence aux dessins listés ci-dessous. BREVE DESCRIPTION<B>DES DESSINS</B> Les dessins annexés sont incorporés et constituent une partie de la spécification avec la description, expliquent les avantages et les principes de<B>1</B> invention. Sur les dessins, la figure<B>1</B> est un schéma<B>d'</B> système informatique multiprocesseur<B>;</B> la figure 2 est un diagramme des temps pour un signal GSEQ <B>;</B> la<B>f</B> igure <B>3</B> est un schéma d'un adaptateur de bus mettant en oeuvre le signal GSEQ <B>;</B> et la figure 4 est un organigramme<B>d'</B> processus pour mettre en oeuvre le signal GSEQ dans le système informatique<B>à</B> processeurs multiples. DESCRIPTION DETAILLEE <B>D'UN</B> MODE<B>DE</B> REALISATION PREFERE figure<B>1</B> est un schéma d'un système informatique multiprocesseur<B>100</B> possédant des chemins multiples provenant de processeurs multiples vers un dispositif d'E/S unique. Dans le système<B>100,</B> une pluralité de processeurs<B>105, 110,</B> écrivent respectivement sur leurs adaptateurs de bus<B>115,</B> 120, par l'intermédiaire de leurs bus de processeur<B>125, 130.</B> Le processeur<B>105</B> écrit sur l'adaptateur de bus<B>115</B> par l'intermédiaire du bus<B>125</B> et le processeur<B>110</B> écrit sur l'adaptateur de bus 120 par l'intermédiaire du bus <B>130.</B> Deux processeurs et adaptateurs de bus sont représentés, toutefois, des processeurs et adaptateurs de bus supplémentaires peuvent être inclus dans le système Les adaptateurs de bus<B>115,</B> 120, sont des interfaces qui reçoivent des signaux provenant des processeurs<B>105, 110.</B> Les processeurs<B>105, 110,</B> sont connectés une installation d'interconnexion<B>135</B> qui peut être un maillage, un anneau, un crossbar ou une autre topologie. L'installation d'interconnexion<B>135</B> n'est pas un simple bus, où un seul possesseur peut accéder<B>à</B> celui-ci<B>à</B> la fois et en conséquence, il assure la mise en ordre en vertu de ce fait L'installation d'interconnexion<B>135</B> possède divers étages tampon<B>à</B> l'intérieur de lui-même, les adaptateurs de<B>-</B> bus étant simplement le premier étage d'interconnexion vers l'installation d'interconnexion <B>135</B> du système<B>100.</B> Est également connecté l'installation d'interconnexion<B>135</B> un dispositif d'E/S 140. Le dispositif d'E/S 140 est connecté l'installation d'interconnexion<B>135</B> par l'intermédiaire d'un adaptateur de bus 145. Le dispositif d'E/S 140 fournit aux processeurs<B>105, 110,</B> l'accès aux autres parties du système<B>100.</B> Des exemples de dispositifs d'E/S 140 sont des unités de disques et des dispositifs d'affichage graphique.
La figure 2 est un diagramme des temps<B>150</B> un signal<B>à</B> séquentialité garantie. Initialement, le processeur<B>105</B> écrit une adresse<B>155</B> d'une mémoire laquelle accède le processeur<B>105.</B> Une adresse représente typiquement un paquet de<B>32,</B> 64 ou<B>128</B> bits données. Peu de temps après avoir envoyé la première adresse<B>155,</B> des signaux<B>à</B> séquentialité garantie (GSEQ) <B>165</B> sont générés par l'adaptateur de bus<B>115,</B> en se basant sur l'état de la file d'attente<B>à</B> l'intérieur de chaque adaptateur de bus. Après cela, les données<B>160</B> pour la première écriture sont envoyées. Les signaux GSEQ <B>165</B> peuvent être envoyés avant ou après avoir envoyé la date<B>160.</B> Chaque adaptateur de bus<B>115</B> envoie le signal GSEQ <B>165</B> rapidement après l'arrivée d'une adresse. Le signal GSEQ <B>165</B> avertit le processeur<B>105</B> qu'il peut envoyer des adresses successives dans l'ordre, rapidement, puis les données correspondant aux adresses peu de temps après, d'une façon par pipeline. L'adaptateur de bus<B>115</B> garantit la séquentialité par l'intermédiaire du signal GSEQ <B>165,</B> les opérations successives provenant du même processeur<B>105</B> restant dans cet ordre. La séquentialité signifie que les instructions provenant du processeur<B>105</B> arrivent toutes au niveau du dispositif dE/S 140 dans l'ordre dans lequel elles ont été délivrées. L'adaptateur de bus<B>105</B> génère simplement le signal GSEQ <B>1-65</B> s'il sait qu'il ne délivrera pas de signal de relance<B>170.</B>
Outre le signal GSEQ <B>165,</B> le système<B>100</B> peut également délivrer le signal de relance<B>170</B> qui est généré par chaque adaptateur de bus en se basant sur l'état de la file d'attente<B>à</B> l'intérieur de chaque adaptateur de bus. La relance indique un signal de file attente pleine<B>ou</B> une contrainte de ressource similaire. Puisque le signal GSEQ <B>165</B> est une fonction du nombre d'entrées disponibles dans la file d'attente, le signal GSEQ <B>165</B> indique qu' <B>y</B> a toujours suffisamment d'entrées disponibles. Si la file d'attente est pleine, alors le signal de relance<B>170</B> est envoyé au processeur<B>105</B> pour réémettre la transaction, et s'il<B>y</B> a suffisamment d'entrées disponibles dans la file d'attente, alors le signal GSEQ <B>165</B> est positionné et garantit l'acceptation de cette transaction sans relance. Les processeurs<B>105, 110,</B> peuvent alors envoyer l'adresse suivante. En supposant que le signal relance<B>170</B> n'a pas été envoyé, les données<B>160</B> pour la transaction sont envoyées et ceci peut s'effectuer ou non sur le même ensemble de fils. Il est souvent efficace que les données soient situées sur un ensemble de fils différent de l'adresse. Puisque celles-ci sont des transactions d'écriture, un processeur envoie<B>à</B> la fois l'adresse et les données. Dans certaines mises en oeuvre, l'adresse et les données sont multiplexées sur les mêmes fils et dans d'autres mises en oeuvre elles sont séparées.<B>À</B> un certain moment, en supposant qu'il n'y a pas eu de relance<B>170,</B> les données<B>160</B> sont envoyées et quelque temps après que le dispositif d'E/S 140 a reçu les données<B>160,</B> soit le dispositif d'E/S 140, soit l'adaptateur de bus 145 du dispositif d'E/S 140 qui est situé immédiatement en amont du dispositif d'E/S 140, envoie un acquittement<B>175.</B> L'acquittement<B>175</B> retourne vers les processeurs après que le dispositif d'E/S 140 a reçu les données<B>160.</B>
Le système<B>100</B> maintient la séquentialité en utilisant le signal GSEQ <B>165</B> pour envoyer toutes les adresses<B>155</B> les unes après les autres, puis le processeur<B>105</B> attend d'obtenir l'acquittement<B>175</B> en retour du dispositif d'E/S 140 après que le processeur <B>105</B> a envoyé la dernière adresse. Ceci élimine la nécessité d'ajouter des opérations spéciales de lecture qui suivent la dernière écriture. Si le processeur<B>105</B> ne reçoit pas le signal GSEQ <B>165,</B> il attend jusqu'au moment la relance<B>170</B> peut ou non être signalée. Si la relance<B>170</B> n'est pas signalée, alors le processeur <B>105</B> continue et envoie l'adresse 2. Si la relance<B>170</B> est signalée, alors le processeur<B>105</B> envoie de nouveau l'adresse<B>1</B> et<B>à</B> ce moment, il peut recevoir le signal GSEQ <B>165.</B> Un point d'engagement de séquentialité est le point auquel il est connu que la transaction ne sera pas réessayée.
L'acquittement<B>175</B> est envoyé, soit par le dispositif d'E/S 140 lui-même, soit par<B>1</B> adaptateur de bus 145 pour le dispositif d'E/S 140, de façon que la connexion entre l'adaptateur de bus 145 et le dispositif d'E/S 140 soit un chemin unique. L'acquittement<B>175,</B> lorsqu'il est reçu par le processeur<B>105,</B> trouve<B>à</B> un point d'engagement de mise en ordre. Le point d'engagement de séquentialité est le point auquel une transaction d'écriture donnée ne peut être transmise par aucune autre transaction d'écriture. En conséquence, le processeur<B>105</B> sait, lorsqu'il a reçu un acquittement <B>175,</B> que les données<B>160</B> envoyées ont bien été reçues par le dispositif d'E/S 140.
Si le processeur<B>105</B> délivre une opération dépendant d'un ordre, telle qu'un sémaphore, le processeur<B>105</B> attend tous les acquittements importants <B>175,</B> même si le processeur<B>105</B> a envoyé rapidement des écritures multiples dans l'ordre. Si le processeur<B>105</B> exécute opération de sémaphore, il se bloque jusqu'à ce que tous les acquittements<B>175</B> soient revenus. Ainsi, si l'opération nécessite un autre processeur<B>115,</B> elle doit attendre l'acquittement<B>175</B> pour assurer un ordre convenable Le système<B>100</B> utilise une sémantique de mise en ordre attachée<B>à</B> un sémaphore pour sensiblement bloquer le bus. Ceci constitue la façon dont le système <B>100</B> peut bloquer de manière sure le contrôle d'un chemin vers processeur différent et assurer que l'opération nfest pas entrelacée. Ceci permet au système<B>100</B> de maintenir l'ordre entre les processeurs multiples.
La figure<B>3</B> est un schéma de l'adaptateur de bus mettant en oeuvre le signal GSEQ. La séquentialite garantie est mise en oeuvre en ajoutant certaines portes logiques supplémentaires<B>à</B> chaque adaptateur de bus<B>115,</B> 120, pour permettre<B>à</B> chaque adaptateur de bus de déterminer si le signal GSEQ <B>165</B> doit être envoyé.
bus adresse et de données du processeur entrent dans l'adaptateur de bus. Chaque adaptateur de bus contient une file d'attente<B>180</B> dans laquelle entrent les adresses et les données. Comme exemple, la figure<B>3</B> illustre une file d'attente<B>à</B> huit entrées<B>180.</B> La file d'attente<B>180</B> contient l'adresse<B>185</B> et les données<B>190</B> et elle peut également contenir un bit valide<B>195,</B> bien que le bit valide<B>195</B> ne soit pas nécessaire pour la mise en oeuvre particulière de la génération du signal GSEQ <B>165.</B> La file d'attente<B>180</B> contient également un pointeur d'entrée 200 qui pointe sur l'entrée suivante destinée<B>à</B> être occupée avec les données entrantes. La file d'attente<B>180</B> comporte également un pointeur de sortie<B>205</B> qui pointe sur la dernière entrée occupée pour sortir vers l'installation d'interconnexion<B>135.</B> Comme alternative, comme choix de mise en oeuvre, les pointeurs d'entrée et de sortie 200,<B>205,</B> peuvent comporter une incrémentation préalable sur le pointeur concernant le fait qu'il est réellement occupé ou non. Quelle que soit la mise en oeuvre, aussi bien les pointeurs d'entrée que de sortie 200,<B>205,</B> effectuent une incrémentation continue, de façon que les pointeurs se rebouclent. Les valeurs des pointeurs entrent dans un soustracteur 210 et le résultat<B>215</B> de cette soustraction est le nombre d'entrée qui sont occupées dans la file d'attente<B>180.</B> Dans le présent exemple, les boîtes blanches représentent le nombre d'entrées disponibles dans la file d'attente<B>180</B> et les boîtes ombrées indiquent les entrées occupées dans la file d'attente<B>180.</B>
Dans l'exemple, le pointeur d'entrée 200 pointe sur l'entrée 2 et le pointeur de sortie<B>205</B> pointe sur l'entrée<B>6.</B> Le résultat<B>215</B> de<B>6</B> moins 2 est que 4 entrées sont occupées<B>à</B> l'intérieur de la file d'attente<B>180.</B> Ce résultat<B>215</B> est comparé par un comparateur 220<B>à</B> un sous-ensemble fixe de la file d'attente<B>180,</B> dans ce cas,<B>5</B> entrées. Puisque la file d'attente<B>180</B> comporte un nombre inférieur ou égal<B>à 5</B> entrées occupées l'intérieur de celle-ci, l'adaptateur de bus<B>115</B> envoie le signal GSEQ <B>165,</B> avertissant le processeur<B>105</B> qui peut accepter d'autres transactions. Si le nombre d'entrées occupées est égal au nombre total d'entrées disponibles dans la file d'attente<B>180,</B> alors le signal de relance<B>170</B> est envoyé au processeur<B>105</B> pour indiquer que la file d'attente<B>180</B> est pleine.
La figure 4 est un organigramme illustrant un processus de l'adaptateur de bus<B>115</B> mettant en oeuvre le signal GSEQ <B>65.</B> L'adaptateur de bus<B>115,</B> comme- expliqué ci-dessus en ce qui concerne les figures 2 et <B>3,</B> met typiquement en oeuvre ses fonctions en utilisant des modules matériels. Toutefois, il peut également, comme alternative, mettre en oeuvre ses fonctions par logiciel ou micrologiciel. Dans le processus 225, le processeur<B>105</B> envoie une transaction d'écriture<B>à</B> son adaptateur de bus<B>115</B> (étape<B>230).</B> L'adaptateur de bus <B>115</B> vérifie la file d'attente<B>180</B> pour déterminer si le signal GSEQ <B>165</B> doit être envoyé au processeur<B>105</B> (étape<B>235) .</B> Si le signal GSEQ <B>165</B> ne peut pas être envoyé au processeur<B>105,</B> le processeur peut recevoir un signal de relance<B>170</B> (étape 240)<B>.</B> Le processeur<B>105</B> peut alors renvoyer l'adresse<B>1</B> vers l'adaptateur de bus <B>115.</B> Si le signal GSEQ <B>165</B> peut être envoyé, le processeur<B>105</B> détermine s'il s'agissait de la dernière adresse qu'il souhaitait envoyer (étape 245). S'il ne s'agit pas de la derniere adresse, le processeur<B>105</B> détermine l'adresse suivante (étape<B>250)</B> et envoie l'adresse suivante<B>à</B> l'adaptateur de bus<B>115.</B> Si la dernière adresse a été envoyée, alors le processeur attend un signal d'acquittement<B>175</B> provenant du dispositif d'E/S 140 ou de l'adaptateur de bus 145 du dispositif d'E/S (étape<B>255).</B> En recevant le signal d'acquittement<B>175,</B> le processeur<B>105</B> réinitialise le bit de sémaphore pour transmettre le contrôle au processeur<B>110</B> (étape<B>).</B> La détermination de la "dernière adresse envoyée" peut ne pas être effectuée par le même processus couche logicielle, que celui qui envoie les écritures. Par exemple, un système d'exploitation peut interrompre et suspendre le processus d'envoi et effectuer un nouveau séquencement de ce processus sur un processeur différent.
Les termes et descriptions ici utilisés sont présentés<B>à</B> titre d'illustration seulement et ne sont pas destinés<B>à</B> constituer des limitations. Les hommes de l'art comprendront qu'un grand nombre de variantes sont possibles<B>à</B> l'intérieur l'esprit et de la portée de l'invention telle que définie dans les revendications suivantes et leurs équivalents, dans lesquelles tous les termes doivent être compris dans leur sens le plus large possible, sauf indication contraire.
Claims (1)
- <U>REVENDICATIONS</U> Dispositif pour écrire un postage dans des systèmes multiprocesseurs, le dispositif comprenant<B>:</B> (a) des adaptateurs de bus<B>(115,</B> comportant des ports d'entrée pour recevoir une plusieurs opérations provenant d'un<B>ou</B> plusieurs processeurs<B>(105, 110) ;</B> <B>(b)</B> une file d'attente<B>(180)</B> pour retenir des informations de la ou des opérations, dans lequel file d'attente<B>(180)</B> est contrôlée par les adaptateurs bus<B>(115,</B> 120)<B>;</B> et (c) un circuit de contrôle (200,<B>205,</B> couplé<B>à</B> la file d'attente<B>(180),</B> pour générer un signal de sortie<B>(165)</B> destiné<B>à</B> être transmis aux processeurs<B>(105, 110),</B> dans lequel le signal de sortie <B>)</B> concerne l'exécution de la pluralité d'opérations. 2. Dispositif selon la revendication<B>1,</B> caractérisé en ce la transaction d'écriture postée comprend<B>à</B> la fois un point d'engagement de mise en ordre et un point d'engagement de séquentialité. <B>3.</B> Dispositif selon la revendication<B>1,</B> caractérisé en ce que le signal de sortie concerne une séquence de la ou des opérations. 4. Dispositif selon la revendication<B>1,</B> caractérisé en ce que le circuit de contrôle (200,<B>205,</B> 210, 220) détermine le nombre d'entrées disponibles dans la file d'attente<B>(180).</B> <B>5.</B> Dispositif selon la revendication 4, caractérisé en ce que la file d'attente<B>(180)</B> envoie un signal de relance aux processeurs<B>(105, 110)</B> s'il n'y a pas suffisamment d'entrées disponibles dans la file d'attente<B>(180).</B> <B>6.</B> Dispositif selon la revendication<B>1,</B> comprenant en outre un dispositif (140) pour transmettre un signal d'acquittement<B>(175)</B> aux processeurs<B>(105,</B> <B>7.</B> Procedé pour écrire un postage dans un système multiprocesseur, le procédé comprenant étapes consistant<B>à :</B> (a) faire envoyer une ou plusieurs opérations par un processeur<B>(105) ;</B> <B>(b)</B> recevoir des informations dans file d'attente<B>(180)</B> provenant de la ou des opérations (c) exécuter les informations de la ou des opérations<B>;</B> et <B>(d)</B> générer un signal de sortie<B>(165)</B> concernant l'étape d'exécution des informations. <B>8.</B> Procedé selon la revendication<B>7,</B> caracterisé en ce que l'étape de transmission envoie signal d'acquittement<B>(175)</B> au processeur<B>(105)</B> lors de la réception de la ou des opérations transmises. <B>9.</B> Procédé selon la revendication<B>8,</B> caractérisé en ce que dans l'étape de réception du signal d'acquittement <B>(175),</B> le processeur<B>(105)</B> réinitialise bit de sémaphore.<B>.</B> <B>10.</B> Procédé selon la revendication<B>9,</B> caractérisé en ce que l'étape de réinitialisation transmet le contrôle d'un processeur<B>(105) à</B> un autre processeur<B>(110).</B>
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/507,205 US6636928B1 (en) | 2000-02-18 | 2000-02-18 | Write posting with global ordering in multi-path systems |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2805372A1 true FR2805372A1 (fr) | 2001-08-24 |
FR2805372B1 FR2805372B1 (fr) | 2006-05-05 |
Family
ID=24017663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0012196A Expired - Fee Related FR2805372B1 (fr) | 2000-02-18 | 2000-09-26 | Postage d'ecriture avec mise en ordre globale dans des systemes a chemins multiples |
Country Status (2)
Country | Link |
---|---|
US (1) | US6636928B1 (fr) |
FR (1) | FR2805372B1 (fr) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386619B1 (en) * | 2003-01-06 | 2008-06-10 | Slt Logic, Llc | System and method for allocating communications to processors in a multiprocessor system |
US7316017B1 (en) * | 2003-01-06 | 2008-01-01 | Slt Logic, Llc | System and method for allocatiing communications to processors and rescheduling processes in a multiprocessor system |
US20090192818A1 (en) * | 2008-01-29 | 2009-07-30 | International Business Machines Corporation | Systems and method for continuous health monitoring |
CN104081722B (zh) * | 2012-01-13 | 2018-05-22 | 英特尔公司 | SoC构造中的高效对等通信支持 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638531A (en) * | 1995-06-07 | 1997-06-10 | International Business Machines Corporation | Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization |
US5799015A (en) * | 1996-05-13 | 1998-08-25 | Lockheed Martin Corporation | Recirculation routes in switching networks used with scalable coherent interfaces |
US5964835A (en) * | 1992-12-17 | 1999-10-12 | Tandem Computers Incorporated | Storage access validation to data messages using partial storage address data indexed entries containing permissible address range validation for message source |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5333303A (en) * | 1991-03-28 | 1994-07-26 | International Business Machines Corporation | Method for providing data availability in a transaction-oriented system during restart after a failure |
EP0516900B1 (fr) * | 1991-06-04 | 1996-05-01 | International Business Machines Corporation | Sauvegarde et recouvrement de données dans un système de traitement de données |
US5485594A (en) * | 1992-07-17 | 1996-01-16 | International Business Machines Corporation | Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system |
US6032244A (en) * | 1993-01-04 | 2000-02-29 | Cornell Research Foundation, Inc. | Multiple issue static speculative instruction scheduling with path tag and precise interrupt handling |
US5805834A (en) * | 1994-03-30 | 1998-09-08 | Zilog, Inc. | Hot reconfigurable parallel bus bridging circuit |
US5625775A (en) * | 1994-06-13 | 1997-04-29 | International Business Machines Corporation | Modem communication interface in a data processing system |
US5634023A (en) * | 1994-07-01 | 1997-05-27 | Digital Equipment Corporation | Software mechanism for accurately handling exceptions generated by speculatively scheduled instructions |
TW295646B (fr) * | 1995-01-25 | 1997-01-11 | Ibm | |
US5764924A (en) * | 1995-08-24 | 1998-06-09 | Ncr Corporation | Method and apparatus for extending a local PCI bus to a remote I/O backplane |
US6032271A (en) * | 1996-06-05 | 2000-02-29 | Compaq Computer Corporation | Method and apparatus for identifying faulty devices in a computer system |
US5860017A (en) | 1996-06-28 | 1999-01-12 | Intel Corporation | Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction |
US5859999A (en) | 1996-10-03 | 1999-01-12 | Idea Corporation | System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers |
US5835741A (en) * | 1996-12-31 | 1998-11-10 | Compaq Computer Corporation | Bus-to-bus bridge in computer system, with fast burst memory range |
US6134579A (en) * | 1997-08-15 | 2000-10-17 | Compaq Computer Corporation | Semaphore in system I/O space |
US6279087B1 (en) * | 1997-12-22 | 2001-08-21 | Compaq Computer Corporation | System and method for maintaining coherency and improving performance in a bus bridge supporting write posting operations |
US6314472B1 (en) * | 1998-12-01 | 2001-11-06 | Intel Corporation | Abort of DRAM read ahead when PCI read multiple has ended |
US6209054B1 (en) * | 1998-12-15 | 2001-03-27 | Cisco Technology, Inc. | Reliable interrupt reception over buffered bus |
-
2000
- 2000-02-18 US US09/507,205 patent/US6636928B1/en not_active Expired - Fee Related
- 2000-09-26 FR FR0012196A patent/FR2805372B1/fr not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5964835A (en) * | 1992-12-17 | 1999-10-12 | Tandem Computers Incorporated | Storage access validation to data messages using partial storage address data indexed entries containing permissible address range validation for message source |
US5638531A (en) * | 1995-06-07 | 1997-06-10 | International Business Machines Corporation | Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization |
US5799015A (en) * | 1996-05-13 | 1998-08-25 | Lockheed Martin Corporation | Recirculation routes in switching networks used with scalable coherent interfaces |
Also Published As
Publication number | Publication date |
---|---|
FR2805372B1 (fr) | 2006-05-05 |
US6636928B1 (en) | 2003-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101012744B1 (ko) | 향상된 컴퓨팅 아키텍쳐를 위한 파이프라인 가속기 및 관련시스템 및 방법 | |
EP3129874B1 (fr) | Systeme de calcul distribue mettant en oeuvre une memoire transactionnelle materielle de type non-speculatif et son procede d'utilisation pour le calcul distribue | |
US20040136241A1 (en) | Pipeline accelerator for improved computing architecture and related system and method | |
EP0005722B1 (fr) | Système de sélection de circuit d'interface prioritaire | |
FR2728364A1 (fr) | Interface d'entree-sortie connectee a une memoire d'ordinateur et capable de controler les vitesses d'entree-sortie de donnee | |
EP2507711B1 (fr) | Controleur d'acces direct a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques | |
FR2503899A1 (fr) | Procede et dispositif de transmission de donnees numeriques | |
FR2890766A1 (fr) | Systeme et procede de communication asynchrone sur circuit, entre des sous-circuits synchrones | |
FR3007542A1 (fr) | File d'echange de donnees ayant une profondeur illimitee | |
FR2896368A1 (fr) | Appareil pour ameliorer l'efficacite du microprogramme pour une interface serie multitrame | |
EP1531589B1 (fr) | Système et procédé de transmission d'une séquence de messages dans un réseau d'interconnexions | |
EP2507712B1 (fr) | Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme | |
FR2805372A1 (fr) | Postage d'ecriture avec mise en ordre globale dans des systemes a chemins multiples | |
WO2014135513A1 (fr) | Procédé de contrôle de bande passante pour système sur puce | |
EP1748355B1 (fr) | Dispositif d'interfaçage unidirectionnel de type FIFO entre un bloc maître et un bloc esclave et bloc esclave correspondant | |
EP3709178A1 (fr) | Procédé de gestion d'accès à un bus informatique partagé, et dispositif électronique correspondant | |
EP2965214A1 (fr) | Procede de surveillance de communications pour systeme sur puce | |
EP0025731A1 (fr) | Sélecteur de demandes asynchrones dans un système de traitement de l'information | |
FR2759178A1 (fr) | Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces | |
CN115687012A (zh) | 一种总线监测模块、监测方法和相关设备 | |
FR2766937A1 (fr) | Protocole et systeme de liaison par bus entre elements d'un microcontroleur | |
US20040225707A1 (en) | Systems and methods for combining a slow data stream and a fast data stream into a single fast data stream | |
FR2759472A1 (fr) | Registre semaphore rapide a fonctionnement securise sans protocole de bus specifique | |
US20230273824A1 (en) | Establishing coherent message analysis across distributed locations | |
BE1001290A4 (fr) | Dispositif d'arbitrage d'acces a memoire direct. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20080531 |