Brevet FR2805371A1 — publié le 20010824

EMULATION LOGICIELLE TRANSPARENTE COMME ALTERNATIVE AU BLOCAGE DE BUS MATERIEL Domaine technique domaine technique est celui de l'architecture des ordinateurs utilisant des mécanismes pour empêcher des conflits d'accès à des ressources informatiques partagées. Contexte systèmes informatiques actuels utilisent divers moyens pour assurer une exclusivité temporaire de l'accès d' unité centrale de traitement (CPU) ou d'un autre agent actif du système à un élément de données de mémoire ou a un dispositif d'entrée/sortie. L'un de ces moyens est un blocage de bus. Un blocage de bus est un mécanisme matériel dans lequel l'agent programmé pour un accès atomique exclusif à l'élément de données de mémoire, le dispositif d'entrée/sortie ou une combinaison des deux, signale sa demande d'un accès exclusif en utilisant un signal transmis sur bus ou une interconnexion du système. Les autres agents du système sont alors empêchés d'accéder à l'élément ou aux éléments bloqués pendant l'intervalle durant lequel l'agent bloquant signale un accès exclusif. Ce mécanisme de blocage de bus matériel pose des problèmes de performances importants, avec impact disproportionne1lement plus grand sur des plus grands systèmes. Ceci est dû au fait qu'il est généralement complexe d'une façon prohibitive de limiter la portée du blocage, en utilisant des mécanismes matériels, aux éléments particuliers auxquels il est accédé. Par exemple, des grandes portions d'un systeme ou même l'ensemble du système, peuvent être inaccessibles à d'autres agents pendant le blocage, provoquant des arrêts substantiels. Même sans essayer de rétrécir portée du blocage, la mise en oeuvre d'un blocage de bus matériel dans des grands systèmes est complexe. La complexité provient du fait de devoir propager l'indication de blocage dans le système, probablement sur un grand nombre de bus ou autres interconnexions, tout en gérant des tentatives de blocage simultanées conflictuelles, de manière assurer l'avancement et l'intégrité des données. exemple, les systèmes informatiques actuels peuvent être mis en oeuvre en utilisant plusieurs bus, fonctionnant tous en parallèle. Dans un tel système, deux tentatives de blocage ou davantage peuvent se produire simultanément et un certain type de mécanisme d'arbitrage est requis pour déterminer quel agent actif fait l'acquisition du blocage de bus. Dans le cas contraire, une situation d'impasse peut se produire et le traitement du système peut être arrêté. solution à ce problème consiste à mettre en oeuvre les circuits du système informatique de façon qu'un blocage de bus de tout le système soit disponible quelle que soit la taille du système informatique. Toutefois, cette solution est peu pratique car un processus s'exécutant sur un processeur du système informatique peut provoquer un arrêt de tout le système pendant le temps où le blocage de bus s'effectue. Une autre solution au problème de performances de conception ci-dessus consiste à administrer l'exclusivité en utilisant des sémaphores pouvant être mis en antémémoire. Toutefois, ce choix n'est pas directement disponible dans cas d'un système informatique dont il est requis avoir une compatibilité ascendante avec une architecture d'héritage rendant la caractéristique de blocage de disponible d'une manière visible au logiciel. Résumé Un module d'émulation logicielle fournit les fonctions d'un blocage de matériel sans les inconvénients associés du blocage bus matériel. Des séquences de code qui déclenchent normalement un signal de blocage de bus sont utilisees pour provoquer un défaut. Un gestionnaire de défaut fait l'acquisition d'un sémaphore pouvant être mis en antémémoire qui est réservé à des fins d'émulation de blocage de bus. Le gestionnaire de défaut fait également l'acquisition d'un sémaphore qui est utilisé pour assurer un accès exclusif à des tables de pages natives ou des mécanismes de protection d'espace d'adresse équivalents. Le modèle d'émulation logicielle provoque alors l'invalidation des entrées de table de page appropriees, purge les pages de tampon de consultation de traduction des accès de blocage et positionne un bit de mode qui fait échouer tout comportement de tentative de défaut au blocage. Le mode d'émulation insère ensuite localement toutes les entrées de traduction/protection necessaires, exécute la séquence de blocage, puis annule bit de mode. Enfin, le module d'émulation provoque la libération des sémaphores et le cours normal de 1 exécution reprend. En utilisant le module d'émulation logicielle, la portion d'espace mémoire qui est bloquée peut être réduite, en utilisant la pagination ou un mécanisme similaire et les autres agents du système ne sont affectés que si les agents tentent d'accéder à la portion bloquée de l'espace de mémoire pendant un intervalle durant lequel le signal de blocage de est positionné. Ainsi, l'invention concerne un procédé d'émulation d'un blocage de bus matériel dans un système informatique, comprenant : l'acquisition d'un sémaphore de blocage de bus réservé pour l'émulation de blocage de bus ; l'acquisition d'un sémaphore de table de pages ; l'invalidation des entrées de table pages appropriées ; l'exécution d'une instruction ; et la libération des sémaphores de blocage de bus et de table de pages. Ce procédé est avantageusement complété par les différentes caractéristiques suivantes : il comprend en outre la purge des tampons de consultation de traduction mémorisant les entrées de table de pages appropriées ; il comprend en outre le positionnement d'un bit de mode qui fait échouer un comportement de tentative défaut au blocage ; la libération du bit de mode après réexécution de l'instruction ; et l'insertion locale d'entrées de traduction/protection ; il comprend en outre un bit de mode faisant la distinction entre le blocage de bus matériel et l'émulation de blocage de bus matériel ; le système informatique comporte des architectures d'ordinateurs multiples, dans lequel un dispositif demandant un blocage de bus est un parmi une unité centrale de traitement et un dispositif d'entrée/sortie et dans lequel l'instruction à exécuter est une instruction parmi une instruction qui a demandé le blocage de bus et un sous-programme clone sans la sémantique de blocage de bus. L'invention concerne également un procédé d émulation d'un blocage de bus matériel dans un système informatique, comprenant : la réception d'une requête de blocage de bus matériel provenant d'un dispositif du système informatique ; la génération d'un défaut en réponse à la requête de blocage de bus matériel ; l'empêchement du blocage de bus matériel ; et le traitement du défaut dans un gestionnaire défaut. Avantageusement, ce procédé comprend en outre : le positionnement d'un premier sémaphore pour émulation de blocage de bus ; le positionnement d'un second sémaphore pour limiter l'accès de pages ; et après l'étape de traitement, la libération du premier et du second sémaphores. L'invention concerne également un dispositif 'émulation d'un blocage de bus matériel dans un système informatique, comprenant : un gestionnaire de défaut qui, en réponse à un dispositif demandant un blocage de bus matériel fait l'acquisition d'un sémaphore de blocage de bus d'un sémaphore de table de pages ; et un module d'émulation couplé au gestionnaire défaut qui invalide les entrées dans une table de pages, dans lequel le gestionnaire de défaut positionne annule un bit de mode pour empêcher le blocage de bus matériel et libère les sémaphores après exécution fune instruction par le dispositif. De préférence, le sémaphore de blocage de et le sémaphore de table de pages peuvent être mis antémémoire. Avantageusement, l'instruction est une instruction parmi une instruction d'origine ayant provoqué le défaut de bus et une instruction clone ou séquence instructions clones. Description des dessins description détaillée se réfère aux dessins suivants, dans lesquels des numéros analogues font référence à des objets analogues, et dans lesquels : la figure 1 est un schéma synoptique d'une architecture informatique qui utilise une émulation logicielle comme alternative au blocage de bus matériel ; figure 2 est un schéma synoptique du gestionnaire de défaut utilisé avec l'architecture informatique de la figure 1 ; figure 3 illustre un dispositif logique utilisé avec le gestionnaire de défaut de la figure et figures 4 à 6 sont des organigrammes illustrant les processus d'émulation logicielle. Description détaillée Une alternative au mécanisme de blocage de matériel donne un accès exclusif à un élément de données dans une mémoire d'un système informatique, dispositif situé dans le système informatique ou un ensemble constitué de l'élément et du dispositif. Un module d'émulation logicielle fournit la fonctionnalité d'un accès exclusif à ces ressources de système informatique partagées, sans les inconvénients inhérents aux systèmes informatiques actuels. Le module d'émulation logicielle fait en sorte que les signaux pouvant provoquer un blocage de bus provoquent un défaut en remplacement. Un gestionnaire de défaut provoque ensuite l'exécution d'une série d'étapes fournissant un accès exclusif un élément désiré. La figure 1 montre un système informatique 10 qui utilise une émulation logicielle d'un blocage de bus matériel. Un premier bus 20 connecte des premiers processeurs 22. Un second bus 30, fonctionnant en parallèle avec le premier bus 20, connecte un second processeur 32. Les premiers processeurs 22 peuvent être d'une première architecture informatique. C'est-à-dire que les premiers processeurs 22 peuvent fonctionner conformément à un jeu d'instructions de la première architecture informatique. Le second processeur 32 peut être d'une seconde architecture, telle que, par exemple, une architecture d'héritage. Comme alternative, le second processeur 32 peut être de la même architecture que les premiers processeurs 22. De plus, des seconds processeurs multiples 32 peuvent être connectés au second bus 30. Enfin, le premier bus 20 et le second bus 30 peuvent être constitués de bus multiples. Par exemple, le premier bus 20 peut être constitué d'une portion d'adresse, d'une portion de données et d'une portion de contrôle. En outre, il peut y avoir des bus supplémentaires similaires à ceux qui sont représentés ou une autre hiérarchie ou agencement quelconque. Un jeu de circuits d'entrée/sortie (E/S) 40 est couplée au premier bus 20 et au second bus 30. Le jeu de circuits d'E/S 40 exécute un grand nombre de fonctions, telles que la réception d'interruptions générées par des dispositifs d'E/S (non représentés) et la répartition de celles-ci entre les premiers processeurs 22 et le(les) second(s) processeur(s) 32. Le jeu de circuits d'E/S 40 peut également contrôler l'accès à la mémoire principale 55 et d'autres fonctions architecturales du système d'ordinateur. La mémoire principale 55 peut comporter un ou plusieurs sémaphores qui sont utilisés conjointement avec l'émulation logicielle du blocage de bus matériel. Les sémaphores peuvent être mis en antémémoire. Un gestionnaire de défaut 50 peut être un module logiciel agissant sur un CPU. Le gestionnaire de défaut est représenté plus en détail sur la figure 2 et peut comporter un module d'émulation 60 assurant l'émulation logicielle comme alternative à un blocage de bus materiel. La figure 3 illustre un dispositif logique 57 qui reçoit un bit de mode (ou un bit d'activation de défaut blocage) 59 et une indication de sémantique de blocage (ou requête d'un blocage de bus) 61. Le bit de mode 59 est alimenté par un registre de configuration et l'indication de sémantique de blocage 61 est alimentée par une unité d'exécution. Le dispositif logique 57 délivre en sortie un défaut de blocage 63 vers une unité d'exception. En fonctionnement, le gestionnaire de défaut 50 peut faire l'acquisition en premier d'un sémaphore pouvant être mis en antémémoire ou blocage de bus 56, qui est réservé à des fins d'émulation de blocage de bus. Le sémaphore de blocage de bus 56 peut trouver dans une antémémoire ou dans la mémoire principale 55. C'est-à-dire que le sémaphore de blocage de 56 peut se trouver dans un emplacement de mémoire défini qui est réservé ou écarté par microprogramme, par exemple, au moment de l'amorçage, de façon que le semaphore de blocage de bus 56 soit invisible pour le système d'exploitation du système informatique. Seul modèle d'émulation 60 a alors accès au sémaphore blocage de bus 56. Le gestionnaire de défaut 50 peut egalement acquérir un second sémaphore ou sémaphore table de pages 58 ou un mécanisme de protection d'espace d'adresse équivalent, qui est utilisé pour assurer un accès exclusif aux tables de pages natives. C'est-à-dire que le système informatique 10 peut comporter un mécanisme de traduction d'adresses et de protection qui est mis en oeuvre par une table de pages dans la mémoire principale 55. La table de pages est utilisée pour effectuer une référence croisée des adresses virtuelles en adresses physiques et pour protéger les pages de mémoire de divers types et niveaux de privilège d'accès. La table de page est protégée par le sémaphore de table de page 58. En conséquence, avant qu'un processeur puisse modifier la table de page, le processeur effectue d'abord l'acquisition du sémaphore de table de page 58. En utilisant un logiciel d'émulation 62 dans le mode d'émulation 60, le gestionnaire de défaut 50 peut invalider des entrées de table de pages appropriées. Ceci empêche les autres processeurs d'examiner cette région bloquée de la mémoire principale 55 dans la table de pages, puis d'accéder à la région bloquée. La région bloquée de la mémoire principale 55 est essentiellement cachée des autres processeurs ou agents dans le système informatique 10. Le logiciel d'émulation 62 du module d'émulation 60 est alors utilisé pour purger toutes les entrées de tables de pages dans les tampons de consultation de traduction (TLB) (non représentés sur la figure 1) qui correspondent aux entrées de tables de pages invalidées. Le gestionnaire de défaut 50 positionne ensuite un bit mode qui empêche tout comportement de tentative de défaut au blocage. Puis, le gestionnaire de défaut 50 insère localement toutes les entrées de traduction ou de protection nécessaires. C'est-à-dire que pour accéder à la région de mémoire bloquée, des entrées de protection de traduction (traduction entre les adresses virtuelles et physiques) sont écrites dans la page de table ou un TLB ou les deux. La séquence d'instruction ayant provoqué le blocage de bus est ensuite exécutée, soit en exécutant de nouveau la même séquence d'instructions celle qui a provoqué le défaut au blocage du bus, soit en exécutant un sous- programme clone effectuant la même opération, mais sans la sémantique bloquée attachée. Lorsque la séquence d'instructions de blocage bus a été exécutée, le gestionnaire de défaut 50 annule le bit de mode et libère les premier et second sémaphores. Le traitement dans le système informatique 10 revient alors au déroulement normal d'exécution. En utilisant le gestionnaire de défaut 50 et le module d'émulation 60, portée du mécanisme de blocage de bus peut être réduite à un petit espace d'adresses, en utilisant la pagination ou un mécanisme similaire, par exemple. autre processeur ou agent n'est affecté que si ce processeur tente d'accéder au même espace d'adresse pendant l'intervalle durant lequel le signal de blocage de est positionné. C'est-à-dire que lorsqu'un défaut est pris sur une tentative de blocage de bus, les données concernant le défaut sont sauvegardées et peuvent être observées par le gestionnaire de défaut 50. Les données sauvegardées comportent l'adresse ou les adresses auxquelles il a été tenté d'accéder. Ainsi, gestionnaire de défaut 50 comporte l'adresse ou les adresses disponibles auxquelles il a été tenté d'accéder pendant une opération de blocage bus. Ceci permet au mode d'émulation 60 de supprimer l'accès seulement à une page ou deux de la mémoire, plutot que de supprimer l'accès à toutes les ressources système informatique ou à une plus grande région de la mémoire principale 55. L'émulation logicielle d'un blocage de bus matériel a été décrite . dessus en relation avec l'accès à la mémoire. Toutefois, le même mécanisme d'émulation logicielle peut etre utilisé dans le cas d'un accès simultané d'un dispositif d'E/S par plus d'un processeur du système informatique 10. Dans ce cas, le dispositif d'E/S est vu par les processeurs simplement comme une autre entité de mémoire ou région de mémoire mappée. Dans un autre cas, un processeur et un dispositif d'E/S peuvent tenter d'accéder simultanément la même région de mémoire. Le dispositif d'E/S peut comporter un TLB ou un mécanisme du type pagination, similaire à celui qui est associé au processeur. Dans ce cas, le fonctionnement du module d'émulation 60 et du gestionnaire de défaut 50 serait le même que dans le cas dans lequel des processeurs multiples tentent d'accéder la même région de mémoire. Si le dispositif d'E/S ne comporte pas de TLB ou de mécanisme du type pagination, alors le gestionnaire de défaut 50 peut désactiver temporairement un dispositif ou un ensemble de dispositifs d'E/S pour empêcher le dispositif dIE/S d'accéder à la région de mémoire. Le gestionnaire de défaut 50 le module d'émulation 60 peuvent être utilisés avec des processeurs d'architectures multiples tels que les processeurs 22 et 32. Toutefois, un ou plusieurs processeurs peuvent ne pas fonctionner dans un aménagement paginé ou sinon protégé. C'est-à-dire qu'un ou plusieurs des processeurs peuvent fonctionner dans un mode réel ou peuvent accéder à la mémoire principale 55 dans le mode réel. Avec cette alternative, une tentative de blocage en mode réel peut provoquer 'envoi d'une interruption entre processeurs vers les autres processeurs. Les autres processeurs retournent alors un signal d'acquittement d'interruption avant de positionner le blocage en mode réel. Les autres processeurs entrent dans un état d'attente et sont réveillés par une autre interruption lorsque l'opération de blocage est terminée. Toutefois, cette situation ne doit se produire que rarement. Le système informatique 10 comporte un code de gestion de table de pages de systèmes d'exploitation (OIS) qui est restreint pour l'acquisition d'un blocage de bus lui-même. Sinon, un premier processeur ou agent peut acquérir le sémaphore de blocage de bus 56. Puis, un second processeur opérant sur le code de gestion de table de pages d'O/S peut acquérir le sémaphore de table de pages 58, puis tenter d'acquérir le sémaphore bloqué 56 en utilisant la séquence d'émulation. Dans ce cas, les premier et second processeurs sont en impasse car aucun ne peut acquérir à la fois le sémaphore de blocage de bus 56 et le sémaphore de table de pages 58. Comme indiqué ci-dessus, l'émulation logicielle du mécanisme de blocage de bus matériel peut être utilisée avec des architectures d'ordinateurs multiples. Un exemple est l'utilisation d'une émulation logicielle avec une architecture IA-32 et une architecture IA 64. Dans ce cas, l'architecture IA-32 peut être mise en oeuvre en utilisant un microcode. Une caractéristique de l'architecture IA-32 à microcode est le piégeage pas à pas. Un piège est une exception dont il est rendu compte immédiatement après l'exécution d'une instruction de piégeage. Une exception est générée par un processeur lorsque le processeur détecte des erreurs pendant l'exécution d'un programme d'application ou du code de l'OIS. Les pièges permettent de poursuivre l'exécution du programme d'application sans perte de continuité du programme. Une adresse de retour pour un gestionnaire de piège pointe sur l'instruction destinée à être exécutée après l'instruction de piégeage. Le piégeage pas à pas permet à la séquence d'instruction de blocage d'être mise en oeuvre en positionnant un indicateur pour qu'un gestionnaire de piège bloque le gestionnaire de défaut 50, annulant le mode pas à pas et réexécutant la macroinstruction ayant provoqué un défaut. Comme indiqué ci-dessus, le mécanisme émulation logicielle peut positionner un bit mode qui empêche le comportement de tentative de défaut au blocage. Dans un autre mode de réalisation, le de mode peut être un bit de mode faisant la distinction entre un blocage de bus matériel et une émulation logicielle de blocage de bus matériel. Dans ce mode de réalisation, un signal de blocage de bus peut etre positionné par un processeur, mais serait ignoré par le système informatique, par exemple par une déconnexion physique. Ainsi, le processeur, hormis le système informatique, peut supporter à la fois un blocage de bus matériel et une émulation logicielle du blocage bus matériel. Ceci permet d'utiliser le processeur dans un système informatique qui supporte seulement un blocage bus matériel ainsi que dans un système informatique qui supporte une émulation logicielle de blocage bus matériel. Le fonctionnement du mécanisme d'émulation logicielle va maintenant être décrit en référence aux figures 4 à 6, qui sont des organigrammes des processus exécutés pour mettre en oeuvre l'émulation logicielle d'un blocage de bus matériel. Sur la figure . le processus commence au bloc 100 avec un processeur tentant une opération de blocage de bus, par exemple, pour accéder à une région de mémoire désirée. Le gestionnaire de défaut 50 fait l'acquisition du sémaphore de blocage de bus 56 et fournit le sémaphore blocage de bus au processeur, tel que 11 des processeurs 22, ayant tenté le blocage de bus, bloc 110. sémaphore de blocage de bus 56 peut être en antémémoire dans une antémémoire associée au processeur Le gestionnaire de défaut 50 fait ensuite l'acquisition du sémaphore de table de pages 58, qui peut également être mis en antémémoire, bloc 120. Le gestionnaire de défaut 50 invalide ensuite toutes les entrées table de pages appropriées, bloc 130, de façon à empêcher l'accès à la région de mémoire désirée. Le gestionnaire de défaut 50 purge également toutes les pages de associées à la région de mémoire désirée, bloc 140. Pour exécuter le blocage de bus, le gestionnaire de défaut 50 positionne un bit de mode qui fait échouer une tentative de défaut sur blocage du processeur, bloc 150 et insère localement toutes les entrées traduct ion/protect ion nécessaires, bloc 160. Puis, le pas unique ou le point de rupture est positionnée, bloc 165 et le processus passe à l'instruction de blocage d'origine, bloc 170. Le processus passe ensuite au point d'interruption, bloc 175. figure 5 illustre le processus pour le sous-programme de gestion de point de rupture pas à pas. Le processus commence au bloc 177, puis (bloc 180 le gestionnaire de défaut 50 annule le bit de mode positionné dans le bloc 150 (voir la figure 4). Enfin, le processeur annule le piège pas à pas (bloc 185 et libère le sémaphore de blocage de bus 56 et le sémaphore de table page 58, le traitement dans le système informatique revient à l'exécution normale, bloc et le processus se termine, bloc 210. figure 6 illustre un autre processus d'émulation logicielle de blocage de bus matériel dans lequel une instruction clone est exécutée. Sur la figure 6, les blocs 220 à 260 du processus correspondent aux blocs 100 à 140 du processus de la figure 4. Dans le bloc 270, les entrées de traduction locale sont insérées. Dans le bloc 280, la séquence d'instructions clones est exécutée, sans sémantique de blocage. Les blocs restants 290 à 310, correspondent aux blocs de processus 190 à 210 de la figure 4. Les termes descriptions ici utilisés sont présentés à titre d'illustration seulement et ne sont pas destinés à constituer des limitations. Les hommes de l'art comprendront grand nombre de variantes sont possibles à l'intérieur de 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. REVENDICATIONS . Procédé d'émulation d'un blocage de bus matériel dans un système informatique, comprenant: l'acquisition (Il 10) d'un sémaphore de blocage de bus (56) reservé pour l'émulation de blocage de bus ; l'acquisition (120) d'un sémaphore de table de pages (58) l'invalidation (130) des entrées de table de pages appropriées l'exécution (170) d'une instruction ; et libération (190) des sémaphores de blocage de bus et de table de pages. 2. Procédé selon la revendication 1, comprenant en outre la purge (140) des tampons de consultation de traduction mémorisant les entrées de table de pages appropriées. 3. Procédé selon la revendication 1, comprenant en outre le positionnement (150) d'un bit de mode qui fait échouer un comportement de tentative de défaut au blocage ; la libération (180) du bit de mode après réexécution de l'instruction et l'insertion locale (160) d'entrées de traduction/protection. 4. Procédé selon la revendication 1, comprenant en outre un bit de mode (59) faisant la distinction entre le blocage de bus matériel et l'émulation de blocage de bus matériel. 5. Procédé selon la revendication 1, caractérisé en ce le système informatique comporte des architectures d'ordinateurs multiples, dans lequel un dispositif demandant un blocage de bus est un parmi unité centrale de traitement et un dispositif d'entréelsortie et dans lequel l'instruction à exécuter est une instruction parmi une instruction qui a demandé le blocage de bus et un sous-programme clone sans la sémantique de blocage de bus. 6. Procédé d'émulation d'un blocage de bus matériel dans un système informatique, comprenant: la réception d'une requête de blocage de bus matériel (61) provenant d'un dispositif du système informatique ; la génération d'un défaut (63) en réponse à la requête de blocage de bus matériel ; l'empêchement du blocage de bus matériel le traitement du défaut dans un gestionnaire de défaut (50) le positionnement d'un premier sémaphore (56) pour émulation de blocage de bus ; le positionnement d'un second sémaphore (58) pour limiter l'accès de pages ; et après l'étape de traitement, la libération (190) du premier et du second sémaphores. 7. Dispositif d'émulation d'un blocage de bus matériel dans un système informatique, comprenant: un gestionnaire de défaut (50) qui, en réponse à un dispositif demandant un blocage de bus matériel, fait l'acquisition d'un sémaphore de blocage bus (56) et d'un sémaphore de table de pages (58) ; et module d'émulation (60) couplé au gestionnaire de défaut (50) qui invalide les entrées dans une table de pages, dans lequel le gestionnaire de défaut positionne et annule un bit de mode (59) pour empêcher le blocage de bus matériel et libère (190) les sémaphores après exécution d'une instruction par le dispositif. Dispositif selon la revendication 7, caractérisé en que le sémaphore de blocage de bus (56) et le sémaphore de table de pages (58) peuvent être mis en antémémoire. 9. Dispositif selon la revendication 7, caractérisé en ce que l'instruction est une instruction parmi une instruction d'origine ayant provoqué le défaut de bus et une instruction clone ou séquence d'instructions clones.