Brevet FR2833372A1 — publié le 20030613

par le procédé selon l'une des revendications 1 à 6. La présente invention concerne la gestion de ressources dans un système informatique et plus part icul ièrement la vi sual i sat ion de ressources dans un serveur partitionnable. Des possesseurs et des opérateurs de systèmes informatiques cherchent en permanence à améliorer les rendements de fonctionnement d'un ordinateur et par conséquent de réduire le coût de délivrance de services de calcul. Par exemple des serveurs de différents types - tels que des serveurs de bases de données, des serveurs du réseau de la toile d'araignée mondiale dite Web, des serveurs de messagerie et des serveurs de fichiers - ont proliféré dans les entreprises ces dernières années. Une seule entreprise peut posséder ou sinon utiliser les services de nombres élevés de chacun de ces types de serveurs. Le coût d'achat (ou de location) et la maintenance de tels serveurs peuvent être élevés. C'est pourquoi il peut être avantageux de réduire le nombre de serveurs, qui doivent être utilisés par une entreprise sans que ceci ne réduise la performance du système. Un moyen de réduire le nombre de serveurs consiste à utiliser le procédé de la "consolidation de serveurs", selon lequel de multiples serveurs indépendants sont remplacés par un seul serveur, désigné ici comme étant un "serveur de consolidation". De façon typique un serveur de consolidation est un système informatique performant possédant des ressources de calaul importantes (comme par exemple de multiples processeurs et des quantités importantes de mémoire). Le serveur de consolidation peut être subdivisé logiquement en de multiples "partitions", dans chacune desquelles est affectée une partie des ressources du serveur. Chaque partition peut exéauter son propre système d' exploitation et ses propres applications logicielles, et sinon agissent de façon similaire à un ordinateur physique indépendant. Contrairement à un ensemble de serveurs indépendants, il est possible de régler de façon dynamique les ressources disponibles pour chaque partition/applica- tion. De nombreuses applications présentent une variation concernant la demande de charge de travail, qui dépend fréquemment de l' instant de la journce, du j our du mois, etc. Des périodes avec une demande de charge de travail élevée ne coïncide fréquemment pas. L' application de ressources disponibles à des charges de travail actuelle à demande élevée permet une utilisation améliorée des ressources, des exigences globales réduites en matière de ressources et par conséquent un coût global réduit. Différentes solutions doivent être développées pour affecter les ressources parmi des partitions dans un serveur partitionnable. La description qui va suivre est axée de façon spécifique sur l' affectation d'une mémoire à titre d'exemple. A cet effet, on va donner une brève vue d' ensemble du fonctionnement de sous-systèmes de mémoire dans des ordinateur classiques. En référence à la figure 1, le modèle de mémoire représentatif du type qui est associé de fa,con typique à un ordinateur classique (non représenté) est représenté sous la forme d'un schéma-bloc. Le modèle 100 inclut deux types d'espaces d'adresses: un espace d'adresse physique (ou "réel") 102 et une pluralité d'espaces d'adresses virtuelles 108a-c. D'une manière générale l'expression iespace d' adresses" se réfère à un ensemble d' adresses de mémoire ou à d'autres identifiants de ressources (qui peuvent être utilisés par un ordinateur pour accéder à des emplacements de mémoire ou à d'autres ressources). On va décrire tout d'abord l'espace d'adresses physiques 102. Un ordinateur inclut de fac,on typique de multiples blocs de mémoire physiques (matériel) 110a-d, qui peuvent avoir une taille variable. Chacun des blocs (qui peut par exemple correspondre à l'unité de mémoire physique telle qu'on module DIMM-Dual Inline emoy Module ou module de mmoire double range) incluL une pluraliLd d'emplace- menLs de mmoire, auguel l'uniLA cenLale CPU de l'ordinaLeur peuL accder en uLilisanL un ou plusieurs conLrleurG de mmoire (non repr6senL). Les blocs de mmoire physiques llOa-d sonL reprdenLs sur la figure 1 selon un agencemenE lindaire conLigu de mani@re indiguer gu'il exisLe un mappage biunivoque enLre les emplacemenLs de mmoire dans les blocs de mmoire physiques llOa-d eL une gamme d'adresses physiques 112, qui sonL numrotes squenLiellemenL en commenganL par z est oomrote squenLiellement en commengant par zAro. D'une mani@re gndrale, un espace d'adresse, qui est numrot squentiellemenL en commengant par z plusieurs contrCleurs de mmoire (non reprdsenLAs). Le modAle dy mmoire 100 incluL galemenL un mcanisme de conversion 104 reprdsenLA d'une mani@re générale dans le schéma-bloc de la figure 1. Le mécanisme de traduction 104 est agencé de façon typique en utilisant un ou plusieurs processeurs, des parties d'un système d'exploitation agissant sur ordinateur et un autre matériel et/ou logiciel comme cela est connu du spécialiste ordinaire de la technique. Le mécanisme de translation 104 sépare de façon logique des adresses 112 dans l'espace d'adresses physiques 102 en des unités logiques distinctes et contiguës désignées comme étant des pages, dont chacune contient de façon typique 1 à 4 k.octets de mémoire. Seize pages numérotées séquentiellement en commençant par la page zéro sont représentés sur la figure 1 à titre d'exemple. Par exemple les adresses physiques d' emplacements de mémoire à la page zéro s'étagent de 0 à 4095, et sur la page 1 s'étagent de 4096 à 8191, etc. L' application de programmes et d'autres processus logiciels s'appliquant à l'ordinateur n'accède pas directement à la mémoire en utilisant les adresses 112 dans l'espace d'adresses physiques 102. Au lieu de cela, une couche d' indirection est introduite par un mécanisme de conversion 104. De façon typique le mécanisme de conversion 104 affecte un "espace d'adresses virtuel" à chaque processus exécuté dans l'ordinateur. Trois espaces d'adres,ses virtuelles 108a-c, dont chacun correspond à un processus particulier mis en oeuvre sur ordinateur, sont représentés sur la figure 3 à titre d'exemple. De façon spécifique, lorsqu'un processus est crcé, il requiert de façon typique qu'on lui affecte une certaine quantité de mémoire. En réponse à une telle demande, le mécanisme de conversion 104 crée un espace d'adresses virtuelles pour le processus moyennant l'affec- tation d'une ou de plusieurs pages (éventuellement non successives) depuis l'espace d'adresses physiques 102 au processus. Par exemple, comme représenté sur la figure 1, un espace d'adresse réel 108a a été affecté aux pages 9, 3, 2 et 12. Le mécanisme de traduction 104 établit un mappage biunivoque entre des emplacements de mémoire dans l'espace d'adresse virtuelle 108a et une gamme contiguë d'adresses virtuelles 114a numérotées séquentiellement de zéro à No-1, No étant la quantité de mémoire allouée à l'espace d'adresses virtuelles 108a. Le mécanisme de traduction 104 maintient une table de conversion d'adresses virtuelles- vers-physiques, qui met en correspondance les adresses virtuelles 114a située dans l'espace d'adresses virtuelles 108a avec des adresses physiques correspondances 112 dans l'espace d'adresses physiques 102. De façon similaire, l'espace d'adresses virtuelles 108b possède une gamme d'adresses virtuelles 114b, et un espace d'adresses virtuelles 108c possède une gamme d'adresses virtuelles 114c. Du point de vue du processus, auquel un espace d'adresses virtuelles 108a a été affecté, l'espace d'adresses virtuelles 108a apparaît sous la forme d'un seul bloc contigu de mémoire (quelquefois désigné sous l'expression imémoire virtuelle". Lorsque le processus essaie d'effectuer une lecture à partir d'un emplacement de mémoire ou d'écrire dans un emplacement de mémoire dans l'espace d'adresses virtuelles 108a, le mécanisme de translation 104 reçoit la demande et accède d'une manière transparente à l 'emplacement de mémoire physique approprié dans l'espace d'adresses physiques 102 en fonction du processus. L'utilisation du mécanisme de conversion 104 permet de concevoir chaque processus qui agit sur ordinateur pour qu'il travaille en liaison avec un espace d'adresse séquentiel à base zéro, indépendamment de adresses des emplacements de mémoire physiques actuels qui sont affectés au procédé. Ceci simplifie fortement et standardise la conception et l'exécution de processus dans l'ordinateur, tout en fournissant d'autres avantages. Des modèles de mémoire tels que le modèle de mémoire 100 représentés sur la figure 1 sont conçus de façon typique de manière à travailler avec des ordinateurs autonomes en faisant fonctionner un seul système d'exploi tation. Par exemple des systèmes classiques de fonctionnement, qui sont de façon typique responsable de la délivrance au moins d'une partie de la fonctionnalité du mécanisme de translation 104, sont conçus de façon typique en supposant que lespace d'adresses physiques 102 est un espace d'adresses séquentielles à base zéro. De façon typique cette hypothèse est valable pour des ordinateurs indépendants mettant en oeuvre un seul système d'exploitation. Mais, comme décrit précédemment, dans certaines circonstances, il est souhaitable de partitionner un ordinateur en une pluralité de partitions logiques, dont une ou plusieurs peuvent être affectées à un espace d'adresses qui n'est pas à base zéro et/ou n'est pas physiquement contigu. Des systèmes de fonctionnement classiques peuvent ne pas être à même de travailler dans de telles partitions sauf si des dispositions spéciales sont prises pour leur propre fonctionnement. Certaines tentatives ont été faites pour traiter ce problème. Par exemple dans la plupart dés systèmes de partitionnement existants, on utilise un certain type de partitionnement "logiciel" ou "virtuel". Dans un système partitionné virtuel, un système d'exploitation maître (quelquefois désigné sous le terme "hyperviseur'') reçoit de multiples systèmes d' exploitation esclaves dans le même ordinateur physique. De façon typique un tel système d'exploitation maître utilise un seul mécanisme de traduction similaire au mécanisme de traduction 104 représenté sur la figure 1. Le système d'exploitation maître commande le mécanisme de translation sur la base des systèmes d'exploitation esclaves. Cette solution présente un certain nombre d'inconvénient. Par exemple il existe de façon typique une pénalité du point de vue performance (habituellement de l'ordre de 10-15 %) en raison du temps système supplémentaire introduit par le mécanisme de tranelation. En outre le système d'exploitation maître représente un seul point de défaillance pour l 'ensemble du système; si le système d'exploitation maître est défaillant, la totalité des systèmes d'exploitation esclaves sont de ce fait également défaillants. En outre, dans un tel système, le matériel de l'ordinateur représente luimême un seul point de défaillance. Plus particulièrement, une défaillance dans un processeur quelconque ou dans un contrôleur de mémoire quelconque de l'ordinateur est susceptible de provoquer la défaillance du système d'exploitation maître, ce qui provoque également la défaillance de l 'ensemble des systèmes de fonctionnement esclave. Enfin un tel système requiert que les systèmes d'exploitation esclaves soient conçus spécialement pour travailler en liaison avec le système d'exploitation maître. Il en résulte que des systèmes d'exploitation classiques, qui de façon typique ne sont pas conçus pour fonctionner en tant qu'esclaves vis-à- vis d'un système d'exploitation maître, ne fonctionneront pas dans un tel système ou nécessiteront une modification pour fonctionner correctement. Il peut être difficile ou impossible d'exécuter de telles modifications et la pénétration profonde de systèmes d'exploitation classiques (tels que Microsoft Windows NT et différentes formes de Unix) peuvent limiter l'acceptation commerciale de serveurs, sur lesquelles les systèmes d'exploitation classiques ne peuvent pas travailler. Une autre solution consiste à prévoir des partitions, dans lesquelles il n'est pas garanti que l'espace d'adresse présenté à chaque système d'exploitation soit à base zaro, et dans lesquels il n'est pas garanti que des adresses augmentent séquentiellement. Cependant cette solution présente un certain nombre d'inconvénients. Par exemple elle requiert l'utilisation d'un système d'exploitation modifié étant donné que des systèmes classiques d'exploitation s'attendent à ce que l'espace d'adresses physiques commence à zéro et augmente séquentiellement. En outre le fait de prévoir un espace d'adresses, qui n'augmente pas séquentiellement (c'est-à- dire qui n'est pas contigu), requiert qu'une autre couche soit prévue dans le mécanisme de conversion 104, habituellement dans les tables des pages du système d' exploitation. L' introduction d'une telle couche supplémentaire réduit de façon typique la performance du mécanisme de tranelation 104. Par conséquent, ce qui est nécessaire, c'est un mécanisme pour prévoir des espaces d'adresses physiques séquentielles à base zéro pour chaque partition d'un serveur partitionnable. Un autre but d'un serveur partitionnable est de permettre le remplacement de blocs physiques de mémoire devant être remplacés dans une partition du serveur sans que ceci ne requiert que le système d'exploitation soit réinitialisé. Une raison qu'il y a d'exécuter une telle addition ou un tel retrait de blocs de mémoire physique peut être difficile à mettre en oeuvre sans réinitialisation, est que certaines pages de mémoire peuvent devenir "pointées". Des adaptateurs d'entrée/sortie communiquent de façon typique avec le système d'exploitation par l'intermédiaire de tampons adressés dans l'espace d'adresses physiques 102. De façon typique il n'est pas possible de mettre à j our les adresses physiques de ces tampons sans réinitialiser le système. C'est pourquoi ce qui est nécessaire c'est un mécanisme fiable pour remplacer les blocs de mémoire machine dans un serveur partitionnable, sans nécessiter une réinitialisation de l'ordinateur. Selon un aspect de l'invention, il est prévu un procédé mis en oeuvre par ordinateur pour créer un espace d'identifiants de ressources physiques dans une partition d'un système informatique partitionnable, qui inclut une pluralité d' emplacements de mémoire machine possédant une pluralité d'adresses de mémoire machine, le procédé comprenant les étapes consistant à: (A) établir un mappage entre une pluralité d'adresses de mémoire physiques et au moins certaines de la pluralité d'adresses de mémoire machine, la pluralité d'adresses de mémoire physiques étant numérotées séquentiellement en commençant à partir de zéro; (B) prévoir, pour un programme logiciel fonctionnant dans la partition, une interface pour accéder à au moins certains de la pluralité d' emplacements de mémoire machine en utilisant la pluralité d'adresses de mémoire physiques. Dans un mode de mise en oeuvre la pluralité de ressources machine comprend une pluralité d' emplacements de mémoire machine, la pluralité d'identifiants de ressources machine comprend une pluralité d'adresses de mémoire machine, l'espace d'identifiant de ressources machine comprend l'espace d'adresses de mémoire machine et la pluralité d'identifiants de ressources machine comprend une pluralité d'adresses de mémoire physiques. Les étapes (A) et (B) peuvent être exécutées pour chacune d'une pluralité de partitions de l'ordinateur partitionnable. L'étape (A) peut inclure une étape consistant à créer une table de conversion d'adresses, qui enregistre le mappage entre la pluralité d'adresses de mémoire physiques et au moins certains de la pluralité d'identifiants de ressources machine. L' interface peut inclure des moyens (tels qu'une mémoire associative) pour convertir un identifiant de ressource physique sélectionné parmi la pluralité d'identifiants de ressource uniques en l'un de la pluralité d'identifiants de ressource machine conformément au mappage. Selon un autre aspect de l 'invention, il est prévu un procédé pour accéder à l'un sélectionné d'une pluralité d' emplacements de mémoire machine spécifiés par une adresse de mémoire physique dans un système informatique partitionnable, qui inclut la pluralité d' emplacements de mémoire machine, le procédé comprenant les mémoires consistant à: (A) identifier un mappage associé à une partition dans le système informatique partitionnable, le mappage mettant en correspondance une pluralité d'adresses de mémoire physiques dans un espace d'adresses de mémoire physiques séquentielles à base zéro de la partition, avec au moins certaines d'une pluralité d'adresses de mémoire machine associces à la pluralité d'emplacements de mémoire machine; (B) convertir l'adresse de mémoire physique en une adresse de mémoire machine en utilisant le mappage, l'adresse de mémoire machine spécifiant celle qui est sélectionnce parmi la pluralité de ressources machine; et (C) amener l'une sélectionnée de la pluralité de ressources machine à déclencher l'accès à celle sélectionnée de la pluralité de ressources machine en utilisant l'identifiant de ressource machine. Dans un mode de mise en oeuvre, la pluralité de ressources machines comprend une pluralité d'emplacements de mémoire machine, la pluralité d'identifiants de ressources machine comprend une pluralité d'adresses de mémoire machlne, l'espace d'identifiant de ressources machine comprend l'espace d'adresses de mémoire machine et la pluralité d'identifiants de ressources machine comprend une pluralité d'adresses de mémoire physiques. L'étape (C) peut inclure une étape de lecture d'une donnée ou écrire une donnée à l'adresse de mémoire machine. Selon un autre aspect de l'invention, il est prévu un procédé destiné à être utilisé dans un système informatigUe partitionnable incluant une pluralitd d' emplacements de mmoire machine possdant une pluralitd d'adresse de mmoire machine, le systAme informatique parLiLionnable incluant en outre une pluralitd d' emplacements de mmoire physiques comportant une pluralitd d'adresses de mmoire physiqueG, qui ont mies en correspondance avec au moin certaine de la pluralitd d'adresses de mmoire machine, le sytme informatique partitionnable comprenant en oute une pluralit de partitions exdcutant une pluralit de programmes logiciels, le procd comprenant les tapeG consistant: (A) slectionner un premier sousensemble de la pluralitd d'emplacements de mmoire physiques, le remier sous- ensemble de la pluralitd d'emplacements de mmoire Atant mis en correspondance avec un premier sous-ensemble de la pluralit d'adreses de mmoire machine; et (B) remettre en correspondance le premier soosensemble de la pluralit d'emplacements de mmoire avec on second sousensemble de la pluralit d'adresses de mmoire machine sans rdinitialiser le systme informaLique parLiLionnable. Avant l'exAcuLion de l'ALape (B), copier le conLenu du premier sousensemble de la pluralit d'adresses de mmoire machine au niveau de 1' ensemble du second scus- ensemble sAlectionn de la pluralitd d'adresses de mmoire machine. D'autres caractristiques et avantages de la prdsente invention ressortiront de la description donne ci-aprds prise en rAfrence aux dessins annexs, sur lesquels: - la figure 1 est un scbma-bloc fonctionnel d'un modle de mmoire uLilis par des ordinateurs classigues; - la figure 2, qui inclut les figures 2A 2C, est un schma-bloc fonctionnel d'un module de mmoire convenant pour atre utilisA dans un serveur partitionnable 3s conformment une forme de rdalisation de la prdsente invention; - la figure 3A est un schéma-bloc fonctionnel de ressources dans un serveur partitionnable; - la figure 3B est un schéma-bloc fonctionnel d'un serveur partitionnable comportant deux partitions; - la figure 4 est un organigramme d'un procédé exéauté par le mécanisme de conversion d'une adresse physique en une adresse machine pour créer un espace de mémoire physique conformément à une forme de réalisation de la présente invention; - la figure 5 est un organigramme d'un procédé exécuté par un mécanisme de conversion d'une adresse physique en une adresse machine pour convertir une adresse de mémoire physique en une adresse de mémoire machine conformément à une forme de réalisation de la présente invention; - la figure 6 est un schéma-bloc fonctionnel d'un modèle de ressource physique généralisé convenant pour être utilisé dans un serveur partitionnable conformément à une forme de réalisation de la présente invention; - la figure 7 est un organigramme d'un procédé utilisé pour exécuter un niveau mappage d'un bloc de mémoire physique depuis une ressource de mémoire physique sur une autre dans une forme de réalisation de la présente invention; et - la figure 8 est un schéma d'une réalisation matérielle d'un mécanisme de conversion d'une adresse physique en une adresse machine conformément à une forme de réalisation de la présente invention. Selon un aspect de la présente invention, il est prévu un mécanisme de conversion destiné à être utilisé dans un serveur partitionnable. Le mécanisme de conversion est intercalé logiquement entre les ressources de mémoire matérielles du serveur et les processus (tels que les systèmes d' exploitation et les processus d'utilisateurs) et réalise des partitions du serveur. Pour chaque partition, le mécanisme de conversion affecte une partie des ressources de mémoire du serveur à un espace d'adresses "physiques", auquel les processus peuvent accéder dans la partition. Chaque espace d'adresses physiques de ce type est séquentiel et à base zéro. Comme cela sera décrit plus loin de façon plus détaillée, les espaces d'adresses "physiques" utilisés dans différentes formes de réalisation de la présente invention peuvent en réalité être des espaces d'adresses virtuels, mais sont désignés comme étant des espaces d'adresses "physiques" pour indiquer que des processus (tels que des systèmes d'exploitation) peuvent y accéder de la même manière que de tels processus peuvent accéder à des espaces d'adresses physiques (matérielles) dans un ordinateur autonome classique. Le mécanisme de conversion maintient des mises en correspondance ou mappage entre les espaces d'adresses physiques de la partition et un espace d'adresses "machine" qui réalise une mise en correspondance ou un mappage sur la mémoire réelle (matérielle) du serveur. L'espace d'adresses "machine" est. en ce sens, similaire à l'espace d'adresses "physiques" d'un ordinateur classique non partitionné, décrit précédemment en référence à la figure 1. Lorsqu'un processus (tel qu'un système d'exploitation) exéautant une partition envoie une demande classique de lecture ou d'écriture à une adresse de mémoire physique spécifiée, le mécanisme de conversion reçoit la demande, convertit de façon transparente l'adresse de mémoire physique spécifice en une adresse de mémoire machine et commande le matériel de commande de mémoire dans le serveur pour exécuter l'opération demandée de lecture ou d'écriture sur la base du processus effectuant la demande. Le fonctionnement du mécanisme de conversion est transparent pour les systèmes d' exploitation et d' autres processus exécutant des partitions du serveur. En particulier de tels processus peuvent accder la mmoire dans des partiLions du serveur en utilisant les mmes commandes gue celles qui peuvent tre uLilises pour accder la mmoire d'u ordinateur non partitionnable. Le mcanisme de conversion permet ainsi des sytAmes d'exploitation classigues existants de travailler dans des partitions du serveur partitionnable sans modification. Selon un autre aspect de la prdente invention, des techniques sont prAvues pour remettre en correspondance une gamme d'adresses de mmoire physiques partir d'une ressource de mmoire machine (mat6rielle} une autre dans un serveur partitionnable. En particulier des technigue Gont prvues pour excuter un tel remappage sans ncessiter une rdiniLialisation du serveur et sans interruption du fonctionnement du ou des systmes d'exploitation Lravaillant sur le serveur. La capacit exdeuLer un tel remapage ou remappage peuL Lre utilise par exeple pour permettre le remplacement de la mmoire machine sans ...... ncesGlter une renlÈlallsatlon du serveur. n rAf@rence la figure 2, on y voit reprsent un modAle de mmoire 200 selon une forme de raliGation de la prsente invention sous la forme d'un schmabloc fonctionnel. Le modle 200 peut par exemple tre utilis en liaison avec les reGsources de mmoire principales (par exemple RAM) d'un serveur de consolidation parLiLionnable. Par exemple en rAfArence la figure 3A, un Gerveur partitionnable 300 qui contient pour atre utilis en 1iaison avec le modAle de mmoire 200 esL reprGenL sOus la forme d'un schAma-bloc gAndralisA. Le serveur 300 inclut des reGGources de Laitement 302a, des ressources de mmoire 302b, deG ressources d'inLerconnexion 302c, des ressources de puissance 302d et des ressources d'entre/sortie (I/O) 302e. Un matriel et/ou logiciel particulier pour mettre en oeuvre les resources 302a-e, qu'on peuL 1S utiliser, sont bien connus des spAcialiGtes ordinaires de la technique et par consquenL ne sonL pas dcriLs ici de fagon dLaille. Mais, de fagon rAsume, des ressource de traiLemenL 302a peuvent inclure un nombre eL un Lype S quelcongues de roceseurs. CependanL dans cerLains serveurs partitionnables, le nombre de processeurs peuL tre limiLd par des caracLristiques des ressources d'inLerconnexion 302c. Des serveurs de conolidaLion parLitionnables par exemple incluenL de fagon Lypique 8, 16, 32 et 64 prOceseurs, eL la limiLe actuelle pratique eGL de 128 proceGGeurs pour un mulLiprocesseur YmAtrique (CP). En outre cecLains systAmes peuvenL ncesiLer que Lous les proceGGeurs conLenus dans les reGGources de LaiLement 302a soient identiques ou au moins utilisent en commun la mme arehiLecLure. CeG reGGources de mmoire 102b peuvent inclure n'importe quelle quantiLA eL Lype de mmoire, comme par exemple n'importe quelle varidLA de mmoire ROM, bien que danG la praLique des serveurs acLuelG partitionnables soienL 1imiL@G de fagon Lypique environ 512 GbiLs de mmoire RM eL peuvenL ncessiLer 1'uLilisation des mmes types ou de Lypes similaires de mmoires RAM dans le serveur 300. Les serveurs de consolidation partiLionnables incluent de fagon Lypique une quanLiL suffiGanLe de mmoire RAM poursupporLer plusieurs parLiLions. Le serveur 300 a galemenL de fagon Lypique acc@s des ressources de mmoire persisLanLes Lelles qu'un rscau de zone de mmoire ). Des resources I/O 302e peuvenL inclure par exemple n'imporLe quel Lype eL un nombre queleonque de bus I/O, d'adapLaLeurs ou de bords, Lels que ceux uLilisanL les Lechnologies SCSI ou Fibre Channel. Des ressources d'inLerconnexion 302c, quelquefois d@signdes comme LanL un syL@me d'inLerconnexion, deG reGGources inLeroonnactent des ressources 302a, 302b, 302d eL 302e de mani@ce former un système informatique intégré dans l'un quelconque d'une variété de moyens, comme cela est bien connu du spécialiste ordinaire de la technique. Les ressources 302-302e du serveur 300 peuvent être affectéss d'une manière libre et dynamique entre deux ou un plus grand nombre de partitions en fonction des exigences de la charge de travail exécuté dans les partitions respectives. Par exemple, en référence à la figure 3B, on a représenté un schéma-bloc fonctionnel illustrant un exemple dans lequel le serveur 300 comprend deux partitions 322a-b. Une première partition 322a inclut des ressources de traitement 332a (qui sont un sous ensemble de ressources de traitement 302a du serveur 300) et des ressources de mémoire 326a (qui sont un sous ensemble des ressources de mémoire 302b du serveur 300). Un système d' exploitation 324a travaille dans la partition 322A. Deux processus 330a-b sont représentés comme étant exécutés dans le système d'exploitation 324a, à titre d'exemple. Il est bien connu des spécialistes de la technique qu'un processus se déroule ''à l'intérieur" d'un système d' exploitation en ce sens que le système d'exploitation produit un environnement dans lequel le processus peut se dérouler et qu'un système d' exploitation travaille "à l'intérieur" d'une partition en ce sens que la part it ion fournit un environnement dans l equel le système d' exploitation peut travailler. La partition 322a inclut également des ressources I/O 328a, qui sont un sous ensemble des ressources I/O 302e du serveur 300. De façon similaire, une seconde partition 322b inclut des ressources de traitement 332b, des ressources de mémoire 326b, des ressources I/O 328b et un système d'exploitation 324b (y compris les processus 330c-d) qui fonctionnent dans la partition 322b. Bien que les partitions 322a et 322b puissent également inclure et/ou avoir accès à des ressources de mémoire persistantes et à des ressources de puissance persistantes, celles-ci ne sont pas représentées sur la figure 3B. On notera que des ressources 302ae provenant du serveur 300 peuvent être affectées parmi les partitions 322a-b selon l'une quelconque d'une variété de facons. En outre, on notera que, bien que le système d' exploitation, les ressources de mémoire et la source I/O dans chaque partition soient représentés sous la forme d'éléments séparés, ces éléments peuvent dépendre les uns des autres de différentes manières. Par exemple, le système d'exploitation 324a peut utiliser les ressources de mémoire 326a pour fonctionner. En se référant à la figure 2A, le modèle de mémoire 200 inclut un sousmodèle 214a qui est utilisé par la partition 322a, et un sous-modèle 214b, qui est utilisé par la partition 322b. On notera que chacun des sous modèles 214a-b est similaire, du point de vue structurel, du modèle de mémoire classique 100. Par exemple le sous- modèle 214a inclut: (1) une pluralité d'espaces d'adresses virtuelles 208a-b, qui correspondent aux espaces d'adresses virtuelles 108a-c représentés sur la figure 1, (2) un espace d'adresses physiques séquentielles à base zéro 202a, qui correspond à l'espace d'adresses physiques 102 représenté sur la figure 1, et (3) un mécanisme de conversion virtuelle-vers-physique 204a, qui correspond au mécanisme de conversion virtuelle-vers-physique 104 représenté sur la figure 1. Comme dans le modèle de mémoire classique, le mécanisme de conversion virtuelle-vers-physique 304a dans le sous-modèle 214a réalise une conversion transparente entre des adresses virtuelles 220a-b dans l'espace d'adresses virtuelles 208a-b et des adresses physiques 216 dans l'espace d'adresses physiques 202a. En réulité, le mécanisme de conversion virtuelle-vers-physique 204a peut être un mécanisme de conversion virtuelle-vers-physique classique tel que le mécanisme de conversion 104 représenté sur la figure 1. Il en résulte qu'un système d'exploitation classique et d'autres traitements logiciels classiques peuvent fonctionner dans la partie 122a sans modification. De façon similaire, le sous-modèle 214a inclut un mécanisme de conversion virtuelle-vers-physique 204b, qui réalise une conversion entre des adresses virtuelles 220c-d dans des espaces d'adresses virtuelles 208c-d et des adresses physiques 218b dans l'espace d'adresses physiques 202b. Cependant une différence entre l'espace d'adresses physiques 202a (figure 2A) et l'espace d'adresses physiques classique 102 (figure 1) est que des adresses 112 dans l'espace d'adresses physiques classiques 102 sont mises en correspondance directement en des emplacements de mémoire matériels, tandis que des adresses 218a dans l'espace d'adresses physiques 202a sont mises en correspondance physiquement de façon indirecte avec des emplacements de mémoire matériels. au lieu de cela, le modèle de mémoire 200 inclut un espace d'adresses additionnel 202, désigné ici comme étant un "espace d'adresses machine", qui inclut une pluralité d'adresses machine 216 qui sont mises en correspondance directement sur des emplacements de mémoire dans une pluralité de blocs de mémoire machine (matériels) 210a-e. Les blocs de mémoire machine 210a-e peuvent être identiques aux blocs de mémoire physiques llOa-d dans le modèle de mémoire classique 100. De façon plus générale, le terme "machine" (comme dans "mémoire machine" et "adresse machine" est utilisé ici pour désigner les ressources de mémoire réelles (matérielles) 302b du serveur 300. Les termes "machine" et "matériel" seront utilisés ici de facon interchangeable. Par conséquent, lorsqu'un processus (tel qu'un système d' exploitation 324a) travaillant dans une partition 322a essaie d'accéder à un emplacement de mémoire en utilisant une adresse physique dans l'espace d'adresses physiques 202a, l'adresse physique est tout d'abord convertie en une adresse mémoire machine (matérielle) avant que l'acc@ en mmoire se produise. e modle de mmoire inclut un mcanisme de conversion d'une adresse physique en une adresse machine 210 pour l'excotion tranGparente de cette conversion. La converion est s "LansparenLe" au sens oL elle est exdcute dans la connaisance du processus de demande. Une raison our laquelle la connaissance du processus de demande n'est pan requise, est que les espaces d'adreses physigues 202a-b sont sguentiels et base z6ro, comme cela est exprimA par des proceGus (tels que des systAmeG d'exploitation) qui sont conus pour travailler sur un ordinateur autonome cl assigue. Par exemple, Gi un systme d'exploitation classigue travaillant dans une partition 322a dlivre une demande d'accAs en mmoire qui est congue pour accder la mmoire dans l'espace dladresses physiques 102 (figure 1) dlun ordinateur portable clasGique, le mAcanisme de cooersion 210 peut convertir 1'adreGGe physique spcifie en une adreGGe machine danG l'epace d'adreGGes machine 202 et commander le matriel de commande de mmoire pour gu'il exdcute l'acc@s en mmoire demand6. I1 en rdsulte que le mcanisme de conversion 210 fournit une interface transparente entre les processus travaillant dans deG partitions du serveur 300 et leG reGGourceG de mmoire matArielle 302b du serveur. Le modle de mmoire 200 peut par consguent Atre utilisA pour raliGer chaque partition danG un serveur partitionnable avec un espace d'adresGeG G@quentielles base zAro, qui est compatible avec des systAmes d'exploitation classigueG. DeG GystAmeG d'exploi tation clasGigues non modifids peuvent par consAguent utiliser le modAle de mmoire 200 pour accder aux reGGources de mmoire 302b du serveur partitionnable 300. On va maintenant dcrire de fagon plus dtaille le modAle de mmoire 200. Les adreGseG 216 contenues dans 11espace dladresses machine 202 peuvent par exemple tre numérotées séquentiellement de zéro à M-1, M étant le nombre total d' emplacements de mémoire dans les blocs de mémoire machine 210a-e. On notera qu'on peut avoir un nombre quelconque et un type quelconque de blocs de mémoire machine et que, comme représenté sur la figure 2C, les blocs de mémoire machine 210a-e peuvent avoir une dimension variable, bien que de façon typique chacun d'eux possède une taille qui est égale à une puissance de deux. A titre d'exemple, on suppose ici que les limites d'adresses des blocs de mémoire machine 210a-e dans l'espace d'adresses machine 202 sont telles que représentées dans le tableau 1. On notera que les limites représentées dans le tableau 1 sont prévues uniquement à titre d'exemple. Dans la pratique les limites sont situées, de façon typique, à des puissances de deux, ce qui présente l'effet avantageux de réduire le temps système associé au décodage d'adresses. Numéro de bloc de Limite d'adresse Limite d'adresse mémoire machine inférieure supérieure 0 0 22,527 1 22,528 45,055 2 45,056 59,391 3 59,392 71,679 4 71,680 81,919 Tableau 1 Le mécanisme de conversion d'une adresse physique en une adresse machine 210 regroupe l'espace d'adresses machine 202 en une pluralité de blocs de mémoire physiques 212a-f. Bien que six blocs de mémoire physiques 212a-f soient représ-entés sur les figures 2B-2C à titre d'exemples, il existe un nombre quelconque de blocs de mémoire physiques. Les blocs de mémoire physiques 212a-f sont représentés directement audessus du bloc de mémoire machine 210a-e dans l'espace d'adresses machine 202 de la figure 2 pour indiquer qu'il existe un mappage biunivoque entre des emplacements de mémoire dans les blocs de mémoire physiques 212a-f et les emplacements de mémoire dans les blocs de mémoire machine 210a-e. On notera qu'un seul bloc de mémoire physique peut s'étendre sur plus d'un bloc machine, sur moins d'un bloc de mémoire machine ou exactement sur un bloc de mémoire machine. Le mappage de blocs de mémoire physiques 212a-f sur les blocs de mémoire machine 210a-e va être décrit ci-après de facon plus détaillée en référence à la figure 8. A titre d'exemple, on suppose ci-après que les limites d'adresses du bloc de mémoire physique 212a-f dans l'espace d'adresses machine 202 sont telles que représentées dans le tableau 2. Numéro de bloc de Limite d'adresse Limite d'adresse mémoire machine inférieure supérieure 0 0 16,383 1 16,384 28,671 2 28,672 45,055 3 45,056 57,343 4 57,632 69,631 69 632 81 919 Tableau 2 On notera que le mécanisme de conversion 210 peut conserver et/ou utiliser des tableaux tels que le tableau et le tableau 2 pour exécuter différentes fonctions. Par exemple le mécanisme de conversion 210 peut utiliser de tels tableaux pour déterminer quel bloc de mémoire physique et/ou quel bloc de mémoire machine contient un emplacement de mémoire spécifié par une adresse particulière dans l'espace d'adresses machine 202. On va maintenant décrire des espaces d'adresses physiques 202a-b de facon plus détaillée. L'espace d'adresses spécifiques 202a inclut un réseau contigu d'emplacements de mémoire numérotés séquentiellement de zéro à mo1, mO étant le nombre d'emplacements de mémoire dans les ressources de mémoire 326a de la partition 322a. L'espace d'adresses physique 202a est subdivisé en dix pages contiguës marquées page 0 à page 9. Contrairement aux pages représentées sur la figure 1, qui sont mises en correspondance directe avec des blocs de mémoire physiques a-d, les pages contenues dans l'espace d'adresses physiques 202a sont mises en correspondance avec des blocs de mémoire machine (en particulier les blocs de mémoire machine 212a, 212e et 212d). Un espace d'adresses physiques similaires 202b a été affecté à dix pages de mémoire moyennant l'utilisation de blocs de mémoire machine 212c, 212f et 212b. Des espaces d'adresses virtuelles 208a-d sont affectés pour leur utilisation respectivement par les processus 330a-d (figure 3B). Les espaces d'adresses virtuelles 208a-d fonctionnent de la même manière, jusqu'à l'adresse virtuelle classique 108a-c (figure 1). Après avoir décrit d'une manière générale les fonctions exéautées par le modèle de mémoire 200, on va décrire ci-après différentes formes de réalisation du mécanisme de transmission d'une adresse physique en une adresse machine 210, d'une manière plus détaillée. Dans une forme de réalisation de la présente invention, le mécanisme de conversion d'une adresse physique en une adresse machine 210 conserve des mises en correspondance entre des adresses physiques 210a-b et des adresses machines 216. Un tel mappage peut être maintenu moyennant l'utilisation d'un tableau de conversion d'adresses d'une adresse physique en une adresse machine pour chacun des espaces d'adresses physique 202a-b. Par exemple, dans une forme de réalisation, le mécanisme de conversion d'une adresse physique en une adresse machine 210 conserve une table de conversion d'adresses d'une adresse physique en une adresse machine 222a pour l'espace d'adresses physiques 202a et maintient un tableau de conversion d'adresses machine 222b pour un espace d'adresses physiques 202b. L'étape de conversion d'adresses 222a-b peut être réalisée en mode matériel, en mode logiciel ou selon une combinaison quelconque de ces modes. Le tableau 3 représente un exemple de la table de conversion d'adresses d'une adresse physique en une adresse machine 222a pour l'espace d'adresses physiques 202a conformément à une forme de réalisation de la présente invention: Espace d'adresses physiques Espace d'adresses machine 0-16,383 0-16,383 16,384-28,671 57,344-69,631 28,674-40,959 45,056-57,343 Les mises en concordance représentées dans l table 3 peuvent être expliquées en référence à la figure 2, comme indiqué ci-après. On se rappellera que chaque page est constituée de 4 k.octets (4096 octets). Comme représenté sur la figure 2, les pages allant de la page 0 à la page 3 dans l'espace d'adresses physiques 202a possèdent les adresses physiques 0-16 383. Ces pages sont mappées sur le bloc de mémoire physique 212a, qui à son tour exécute un mappage sur des adresses machine 0-16 383 dans l'espace d'adresses machine 202, comme représenté dans la première rangée de la table 3. Les pages allant de la page 4 à la page 6 dans l'espace d'adresses physiques 202a possèdent des adresses physiques 16 384-28 671 dans l'espace d'adresses physiques 202a. Ces pages sont mappées sur le bloc de mémoire physique 212e qui à son tour réalise un mappage sur des adresses machine 57 344-69 631 dans l'espace d'adresses machine 202, comme cela est représenté sur la seconde ligne de la table 3. Enfin les pages 7 à 9 dans l'espace d'adresses physiques 202a possèdent des adresses physiques 28 674-40 959 dans l'espace d'adresses physiques 202a. Ces pages réalisent un mappage sur le bloc de mémoire physique 212d qui à son tour réalise un mappage sur les adresses machine 45 056-57 343 dans l'espace d'adresses machine 202, comme cela est représenté sur la troisième ligne de la table 3. Le mécanisme de conversion d'une adresse physique en une adresse machine 210 peut utiliser la table 3 pour convertir une adresse dans l'espace d'adresses physiques 202a en une adresse dans l'espace d'adresses machine 202 en utilisant des techniques qui sont bien connues des spécialistes ordinaires de la technique. On notera en outre que, bien que la table 3 mette en correspondance des adresses directement avec des adresses machine, les tables de conversion d'adresses d'une adresse physique en une adresse machine 222a-b peuvent fournir le même résultat selon d'autres moyens, dont un exemple va être décrit ci- après en référence à la figure 8. D'une manière plus générale, l'utilisation d'une table de conversion telle que la table 3 pour exéauter une conversion d'adresses d'une adresse physique en une adresse machine est prévue simplement dans le cadre de l'exemple et ne constitue pas une limitation de la présente invention. En outre, bien que l'on ait décrit ci-dessus uniquement une seule table de conversion d'adresses d'une adresse physique en une adresse machine (table 3), on notera qu'on peut avoir une pluralité de telles tables. Par exemple on peut avoir une telle table pour chaque agent (par exemple processeur ou partition) qui accède à la mémoire. Chaque table de ce type peut fournir les conversions d'adresses qui sont requises par l' agent correspondant. Lors de l'initialisation du serveur partition- nable 300 (comme pendant l'initialisation), le mécanisme de conversion d'une adresse physique en une adresse machine 210 peut s'initialiser luimême. Cette initialisation peut inclure par exemple la création de blocs de mémoire physiques 312a-f et le maintien d'un enregistrement des limites d'adresses physiques de tels blocs, comme décrit précédemment en référence à la table 2. Le mécanisme de conversion d'une adresse physique en une adresse machine 210 peut sélectionner le nombre de blocs de mémoire physiques et établir leurs limites d'adresses physiques selon n'importe laquelle d'une variété de façons. Par exemple, le mécanisme de conversion d'une adresse physique en une adresse machine 210 peut être préconfiguré de manière à créer des blocs de mémoire physiques d'une taille prédéterminée et peut crécr autant de blocs de mémoire physique ayant la taille prédéterminée, que ce qui est nécessaire pour peupler l'espace d'adresses machines 202. Les tailles des blocs de mémoire physiques peuvent être choisies de manière à être des multiples entiers de la taille d'une page (par exemple 4 k.octets). Après création des blocs de mémoire physiques 212a-f, le mécanisme de conversion d'une adresse physique en une adresse machine 210 utilise les blocs de mémoire physique 212a-f pour affecter la mémoire à des partitions du serveur. Par exemple, en référence à la figure 4, on y voit représenté un organigramme d'un procédé 400 qui est utilisé par le mécanisme de conversion d'une adresse physique en une adresse machine 210 pour affecter une mmoire une parLition de serveur (c'est--dire pour crer un espace d'adreses physiques) conformment un mode de mise en oeuvre de la prsenLe invention. Pour faciliLer 1'explication, on va dcrice un exemple dans lequel 1'eGpace d'adresses physiques 202a repr4Gent sur la figure 2A est crdA. En rfrence la figure 4, le mcanisme de conversion d'une adresse physique en une adreGGe machine 210 reoit une demande pour crer un espace d'adreGGes phyGiques P comportanL m adreGGes (pas 402). DanG le cas de la parLie cenLale 122a, on a par exemple m=mO. La demande peuL aLre reque par la craLion d'une partition dans le serveur 300. On notera que la cration de la partition 322a inclut des Atapes en plus de la crdation d'un eGace d'adreGses physiques, qui ne Gont pas dcriteG ici pour faciliter 1'explication maiG qui Gont bien COnnus deG GpACialiGtes ordinaires de la technique. Par exemple, un proceGGeur de Gervice peut GLLe responsable la fois de la gesLion deG parLiLions (par exemple crdaLion eL suppression) eL de la mainLenance des Lables de converGiOn d'adreGGes d'une adreGse physique en une adrese machine 222a-. Le mcanisme de conversion d'une adreGGe physique en une adreGGe machine 210 crde et initialiGe une table de converGion d'adresses d'une adreGGe physique en une adreGGe machine pour un espace d'adresseG physiques P (paG 404). Le mcanisme de conversion d'une adreGGe physique en une adreGGe machine 210 effectue une recherche dans un bloc de mmoire physique (parmi les blocs de mmoire physiques 212a-f) qui n'eGL pas acLuellemenL affecLA un quelconque espace d'adreGGes phyGiqueG (pas 406). Si aucun bloc de mmoire physique non affecLd n'eGL Lrouv (paG 408), le procAd 400 renvoie une erreur (pas 410) eL s'arrte. D'auLre parL le procd 400 annexe le bloc de mmoire physique Lrouv lors du pas 406 o l'espace d'adresses physiques P par mise à j our de la table de conversion d'une adresse physiques en une adresse machine, qui a été initialisée lors du pas 404 (pas 412) et marque le bloc de mémoire physique comme étant affecté (pas 414). La table de conversion d'adresses d'une adresse physique en une adresse machine et mise à j our lors du pas 412 d'une manière qui garantit que l'espace d'adresses physiques P est numéroté séquentiellement et à base zéro. De façon plus spécifique, tous les blocs de mémoire physique affectés à l'espace d'adresses physiques P sont mis en correspondance avec des adresses ayant une numérotation séquentielle. En outre le premier bloc de mémoire physique affecté à l'espace d'adresses physique P (par exemple le bloc de mémoire physique 212a dans le cas de l'espace d'adresse physique 202a) est mis en correspondance avec une séquence d'adresses commençant par l'adresse zéro. Enfin chaque bloc de mémoire physique ultérieur, qui est affecté à un espace d'adresses physiques P. est mis en correspondance avec une séquence d'adresses qui commence à l'adresse qui suit le bloc de mémoire physique précédent dans l'espace d'adresses physiques. L'exécution du pas 412 de cette manière garantit que l'espace d'adresses physiques P est un espace d'adresses séquentiel à base zéro. Si l' affectation est terminée (pas 416), le procédé 400 s'achève. Le procédé 400 peut déterminer lors du pas 416 si l' affectation est terminée en déterminant si la quantité totale de mémoire dans les blocs de mémoire physiques dans la liste de blocs physiques est supérieure ou égale à la quantité de mémoire demandée lors du pas 402. Si l' affectation n'est pas achevée, la commande revient au pas 406 et des blocs additionnels de mémoire physiques sont affectés, si cela est possible. On supposera à titre d'exemple qu'au moment de la réception de demande lors du pas 402, il n'existe aucune partition dans le serveur 300 (c'està-dire que les partitions 322a et 322b n'existent pas) et que par conséquent des modèles de sous-mémoire 214a et 214b n' existent pas. On suppose en outre que la demande effectue une demande de dix pages de mémoire devant être affectées (c'est-à-dire que l'on a m = 10 x 4096 = 49 960). En réponse à la demande, le mécanisme de conversion d'une adresse physique en une adresse machine peut tout d'abord (lors des pas 412 et 414) affecter le bloc de mémoire physique 212a à l'espace d'adresses physiques 212a. Comme représenté sur la figure 2A, le bloc de mémoire physique 212a est suffisamment grand pour fournir quatre pages physiques de mémoire pour l'espace d'adresses physiques 202a. Lors d'itération successives du procédé 400, le bloc de mémoire physique 212a (fournissant trois pages) et le bloc de mémoire physique 212d (fournissant trois pages) peuvent être affectés à l'espace d'adresses physiques 202a. Il en résulte que la demande de dix pages de mémoire peut être satisfaite par création d'un espace d'adresses physiques séquentiel à base zéro à partir des blocs de mémoire physiques 212a, 212e et 212d. Avec l'exéaution;du procédé 400 représenté sur la figure 4 pour chacune des partitions 322a-b dans le serveur 300, le mécanisme de translation 210 a créé des tables de conversion d'adresses d'une adresse physique en une adresse machine 222a-b pour les partitions respectives 322a-b. Ces tables de conversion d'adresses 222a-b peuvent être utilisées ultérieurement pour convertir d'une manière transparente des adresses dans les espaces d'adresses physiques 202a-b qui sont référencés dans les demandes de lecture/écriture en mémoire par les systèmes d'exploitation 324a-b en des adresses dans l'espace d'adresses machine 202 et de ce fait ont accédé aux ressources de mémoire 302b du serveur 300 d'une manière appropriée et transparente. Par exemple en référence à la figure 5, on y voit repr4senLA un organigramme d'un procd 500 oi et exdeuL par le mcanisme de conversion d'une adresse physique en une adresse machine 210 dans une forme de rdalisaLion de la prdenLe invention pour converLir de fagon LansparenLe une adresse physique en une adrese machine. Le procdA 500 regoiL une demande d'acc@s un emplacemenL de mmoire ayanL une adreGe de mmoire physique spcifide dans un epace d'adreseG physiques P (pas 502). ['espace d'adresses physiques peuL par exemple CLre 1'un ou 1'auLre des eGpaces d'adresses phyGiques202a ou 202b. La demande peuL CLre dveloppe selon l'une queleonque d'une varidL de mani@res avanL d'ALre reque par le mcanisme de conversion 210 1O[G du pas 502. Par exemple, si l'un des poceGGus 310a-d LravaillanL sur le serveur 300 produiL une demande d'accs un emplacemenL de mmoire virLuelle dans l'un deG eGaces d'adreGes virLuelles 20Sa-d, l'un appropriA deG mcanismes de conversion d'adreseG virLuelleG en adreses physiqueG 204a peuL converLir l'adreGGe virLuelle spcifie en une adreGGe hysique dans l'un des espaces d'adreseG physiques 202a-t eL dlivrer une demande d'acc@s l'adese phyique. Sinon, l'un des GyL@mes d'exploiLaLion 324a-b peuL dlivrer une demande d'acc@s une adresse physique dans l'un des espaces d'adreGGes physiqueG 202a-b. DaoG Lous leG cas, la demande eGL reque de fagon LansparenLe par le mcanisme de converGion d'adreGe phyGique en adresse machine lors du pas 502. En rAponse la demande, le procd 500 idenLifie la Lable de converGion d'adreGGe phyGique en adreGGe machine correspondanL l'espace d'adreGGeG physiques P (pas 504). Le procd 500 converLiL 1'adrese phyGique GpCifié Gi 1'adrese machine AM dans 1'espace d'adresGes machine 202 en uLilisanL la Laille de conversion d'adresses idenLifide (paG 506). Le procd 500 commande le maLdriel de commande de mmoire pour qu'il exAcuLe 1'acc@G demand l'adresse machine AM (pas 508) comme cela sera décrit ci- après de façon plus détaillée en référence à la figure 8. On notera, à partir de la description donnée ci- dessus, que le procédé 500 permet au mécanisme 110 de conversion d'une adresse physique en une adresse machine de convertir de façon transparente des adresses physiques en des adresses machine. Le procédé 500 peut par conséquent être utilisé par exemple pour permettre à des systèmes d'exploitation classiques d'accéder à la mémoire dans des partitions d'un serveur partitionnable sans modifier de tels systèmes d'exploitation. Après avoir décrit d'une manière générale la manière dont le modèle de mémoire 200 peut être utilisé pour fournir des systèmes d'exploitation travaillant sur un serveur partitionnable avec des espaces d'adresses séquentielles à base zéro, on va maintenant décrire en référence à la figure 8 une forme de réalisation d'une réalisation matérielle du mécanisme 210 de conversion d'une adresse physique en une adresse machine. D'une manière générale, le mécanisme 210 de conversion d'une adresse physique en une adresse machine reçoit une adresse physique 804 en tant que signal d'entrce et convertit l'adresse physique 804 en une adresse machine 806 en tant que signal de sortie. Par exemple l'adresse physique 804 représentée sur la figure 8 peut être l'adresse physique Ap décrite précédemment en référence à la figure 5, et l'adresse machine représentée sur la figure 8 peut être l'adresse machine AM décrite précédemment en référence à la figure 5. Le mécanisme de conversion 210 focalise l'adresse machine 806 sur unecommande de lecture/d 'écriture 828 qui est utilisée pour commander le modèle 836 de commande de mémoire pour exécuter l'accès demandé en mémoire au niveau de l'adresse machine 806. Le modèle de commande de mémoire 836 peut être n'importe lequel d'une variété de matériels de commande de mémoire, qui peut utilisé pour accéder à la mémoire machine selon des modes qui sont bien connus du spécialiste ordinaire de la technique. Dans un ordinateur autonome classique (non partitionné), le matériel de commande de mémoire tel que le matériel 836 accède directement à la mémoire machine, sans l'utilisation du mécanisme de conversion. Dans différentes formes de réalisation de la présente invention, un mécanisme de conversion 210 est inséré avant le matériel de commande de mémoire 836 pour convertir des adresses physiques, qui sont référencées dans des demandes d'accès en mémoire classiques à des adresses de machines qui sont appropriées pour une délivrance au matériel de commande de mémoire 836. Dans une forme de réalisation, le matériel de commande de mémoire 836 inclut une pluralité de contrôleurs de mémoire 802a-b, dont chacun est utilisé pour commander un ou plusieurs des blocs de mémoire de machine 210a-e. Le contrôleur de mémoire 802a commande les blocs de mémoire de machine 210a-b et le contrôleur de mémoire 802b commande les blocs de mémoire de machine 210c-e. Bien que seuls deux contrôleurs de mémoire 802a-b soient représentés sur la figure 8 à titre d'exemple, on peut avoir un nombre quelconque de contrôleurs de mémoire, bien que de façon typique il existe environ autant de contrôleur de mémoire dans le serveur 300 qu'il existe de processeurs. Chacun des contrôleurs de mémoire 802a-b possède un numéro de module distinct de sorte qu'il peut être adressable uniquement par le macanisme 210 de conversion d'une adresse physique en une adresse machine. De façon similaire, chacun des contrôleurs de mémoire 802a-b affecte un numéro de bloc unique à chacun des blocs de mémoire machine, qu'il commande. Des emplacements de mémoire dans chacun des blocs de mémoire machine 210a-e peuvent être numérotés séquentiellement en commençant par zéro. Il en résulte que n'importe quel emplacement de mémoire dans les blocs de mémoire machine 210a-e peut être identifié de facon unique par la combinaison d'un numéro de module, d'un numéro de bloc et d'un décalage. Comme cela est représenté sur la figure 8, l'adresse machine 806 inclut une telle combinaison d'un numéro de module 806a, d'un numéro de bloc 806b et d'un décalage 806c. L'adresse machine 806 peut par exemple être un mot, dans lequel les bits de rang faible sont utilisés pour le décodage 806c, les bits de rang moyen sont utilisés pour le numéro de bloc 206b et les bits de rang élevé sont utilisés pour le numéro de module 806a. On notera qu'on peut se référer à des adresses machine selon d'autres moyens. Par exemple dans une forme de réalisation, chacun des contrôleurs de mémoire 802a-b effectue un mappage des emplacements de mémoire machine, qu'il commande, sur un espace d'adresses machine séquentiel à base zéro, auquel cas chacun des emplacements de mémoire machine dans les blocs de mémoire machine 210a-e peut être spécifié par une combinaison du numéro de module et de l'adresse de machine. Le matériel de commande de mémoire 836 inclut également un système d'interaonnexion 808 qui permet d'accéder aux blocs de mémoire machine 210a-e au moyen des contrôleurs de mémoire 802a-b. Comme cela sera décrit plus loin de façon plus détaillée, le mécanisme de conversion 210 peut accéder à un emplacement de mémoire machine en envoyant au matériel de commande de mémoire 836 une commande de lecture/d 'écriture contenant l'adresse machine de l 'emplacement de mémoire auquel l'accès est réalisé. La commande de lecture/d 'écriture est transmise par le système d'interconnexion 808 à celui, qui est approprié, des contrôleurs de mémoire 802a-b, qui exécute l'opération demandée de lecture/d 'écriture à l'adresse de mémoire machine spécifice. Comme décrit précédemment, lors de l'initialisation du mécanisme 210 de conversion d'adresses physiques en adresses machine, le mécanisme 210 de conversion d'adresses physiques en adresses machine peut crcer une parité de blocs de mémoire physiques 212a-f. Dans un mode de mise en oeuvre, une pluralité de blocs de mémoire physiques sont créés pour chacun des contrôleurs de mémoire 802a-b. Par exemple, des blocs de mémoire physiques 212a-c peuvent réaliser un mappage sur la mémoire machine commandée par le premier contrôleur de mémoire 802a, tandis que des blocs de mémoire physiques 212d-f peuvent réaliser un mappage sur la mémoire machine commandée par le second contrôleur de mémoire 802b. Bien qu'aucun des blocs de mémoire physiques 212a-f (figure 2) ne s'étende sur plus d'un des contrôleurs de mémoire 802a-b, dans la pratique chaque bloc de mémoire physique est composé de façon typique par imbrication d' emplacements de mémoire machine intercalaires à partir de multiples contrôleurs de mémoire de manière à accroître la probabilité que tous les contrôleurs de mémoire contribuent d'une manière égale aux références de mémoire produites dans le temps. On va maintenant décrire la conversion de l'adresse physique 804 en l'adresse machine 806 par le mécanisme de conversion 210 dans une forme de réalisation. Comme cela a été décrit d'une manière générale ci-dessus en référence à la table 3, le mécanisme de conversion 210 conserve des mises en correspondance entre des gammes d'adresses physiques et des gammes d'adresses machine. Dans une forme de réalisation, le mécanisme de conversion 210 inclut une mémoire associative ou adressable par le contenu (CAM) 810 qui conserve ses mises en correspondance et convertit des gammes d'adresses physiques en des gammes d'adresses machines. De façon plus spécifique, la mémoire CAM reçoit comme signal d'entrce une gamme d'adresses physiques et délivre comme signal de sortie (dans le bus de sortie 812) le nombre de modules et le nombre de blocs de la gamme correspondante d'adresses machine. Par exemple, comme cela est représenté sur la figure 8, l'adresse physique 804 inclut des bits supérieurs 804a et des bits inférieurs 804c. Les bits supérieurs 804a sont envoyés à la mémoire CAM 810, qui délivre le nombre de modules et le nombre de blocs des adresses machine, qui sont mis en correspondance avec la gamme d'adresses physiques utilisant en commun des bits supérieurs 804a. La mémoire CAM 810 exécute cette conversion de la manière suivante. La mémoire CAM inclut une pluralité d'entrées de conversion 810a-c. Bien que seules trois entrces de conversion 810a-c soient représentées sur la figure 8 à titre d'exemples, on peut avoir un nombre quelconque d'entrée de conversion (le nombre 64 est typique). En outre, bien que toutes les entrées 810a-c possèdent des composants internes similaires, seuls les composants internes de l'entrée 810a sont représentés sur la figure 8 pour la commodité de l' illustration. Chacune des entrées de conversion 810a-c met en concordance ou mappe une gamme approprice d'adresses physiques avec ou sur un bloc de mémoire machine correspondant (spécifié par un numéro de module et un numéro de bloc machine). La manière dont cette mise en concordance est conservée est décrite à titre d'exemple en rapport avec l'entrée 810a. Les autres entrées 810b-c fonctionnent de facon similaire. Les bits supérieurs 804a de l'adresse physique 804 sont envoys s à l'entrée 810a. L'entrée 810a inclut un registre d'adresses de base 814 qui spécifie la gamme d'adresses physiques qui sont mappées par l'entrée 810a. * L'entrce 810a inclut un comparateur 882 qui compare les bits supérieurs 804a de l'adresse physique 804 à l'adresse de base 814. S'il existe une concordance, le comparateur 822 commande un registre de conversion primaire 820, qui mmorise le numro de modnle et le numAro du bloc de mmoire machie, qui rdalise le mappage sur la gamme d'adreGGes physiques spAcifideG par les bitG supArieurs 804a. Le numAro de modue et le numro de bloc machine sont dlivrAs dans le bus de sortie 812. Comme cela va atre dAcrit ci-aprAG de fago plus dAtaille en rfArence la figure 7, l'entre de conversion 810a peut galement fournir un mappage secondaire de la gamme d'adreGGeG physiques spCifideG par le regiGLre d'adreGGes de base 814 sur ue gamme secondaire d'adreGGeG de mmoire machine. On Lel mappage Gecondaire peuL ALre fourni par un regiGLre de converGion secodaire 818, qui fonctionne de la mme maniAre que le regiGtre de conversion primaire 820. Si une concordance est identifie par le coparateur 822, le comparateur 822 commande les sorties la fois du registre de converGion primaire 820 et du registre de conversion Gecondaire 818. Le registre de conversion secondaire 818 dlivre un numro de module et un numro de bloc dans le bus de sorLie secondaire 832, dans lequel ils sonL incorpor{s dans une commande de lecLure/criLure secondaire 834. La commande de lecLure/criture secondaire 834 fonctionne de la mame maniAre que la commande de lecture/criture primaire 828 et par consquent n'est pas reprdsente de faon dtaille sur la figure 8 et est dcrite de fagon dtaille ici. Bien que 1'exemple Ci-deSsuG concerne uniquement 1'entre de conversion 810a, deG bits suprieurG 804a sonL envoyAs Loutes 1eG entres de coversion 810a-c, qui fonctionnent de fagon similaire. De fagon typique seule l'une des entrdes de conversion 810a-c concorde avec leG bits suprieurs 804a et dlivre un numAro de module et un numdro de bloc de machine danG le bus de sortie 812. Comme cela est en outre reprsentd sur la figure 8, leG bits infArieurs 804c de 1'adresse physique 804 sont utilisAs pour former le dAcalage 806c de l'adreGGe machine 806. La mémoire CAM 810 forme la commande de lecture/ d'écriture 828 par combinaison du numéro de module de sortie et du numéro de bloc avec un bit de lecture (R) 824 et un bit d'écriture (W) 826. Le bit R 824 et le bit W 826 sont mémorisés dans et délivrés par le registre de conversion primaire 820 et sont tous deux réglés sur une valeur implicite. Un bit de lecture activé 824 indique que des opérations de lecture doivent être transmises au contrôleur de mémoire correspondant. De façon similaire, un bit d'écriture positionné 826 indique que des opérations d'écriture doivent être transmises au contrôleur de mémoire correspondant. Comme décrit précédemment, les tailles de blocs physiques peuvent varier. Il en résulte que le nombre de bits nocessaires pour spécifier une gamme d'adresses physiques correspondant à un bloc physique peut varier en fonction de la taille de bloc physique. Par exemple un moins grand nombre de bits sont nécessaires pour spécifier des blocs physiques plus grands que pour spécifier des blocs physiques plus petits. Par exemple, comme représenté sur la figure 8, dans une forme de réalisation un nombre aussi élevé que 16 bits (bits 29-44 de l'adresse physique 804) sont utilisés pour spécifier l'adresse de base d'un bloc physique posséJant la taille de bloc physique minimale (indiquce par "MIN BLOCKSIZE" sur la figure 8), tandis qu'un nombre aussi faible que 13 bits (bits 32-44 de l'adresse physique 804 sont utilisés pour spécifier l'adresse de base d'un bloc physique possédant la taille de bloc physique maximale (indiquée par "MAX BLOCKSIZE"). On notera que les tailles maximale et minimale de bloc représentées sur la figure 8 sont indiquées uniquement à titre d'exemples. Pour autoriser une conversion d'adresse lorsque des tailles de blocs physiques variables sont autorisées, chacune des entrées de conversion 810a-c peuvent inclure une zone de masque. Par exemple, comme représenté sur la figure 8, l'entrée de conversion 810a inclut une zone de masque 816. La zone de masque d'une entrée de conversion est utilisce pour garantir que le nombre de bits comparés par l'entrée de conversion correspond à la taille du bloc physique qui est mis en correspondance par l'entrée de conversion. De façon plus spécifique, la zone de masque d'une entrce de conversion règle le nombre de bits moyens 804b de l'adresse physique 804 qui sont utilisés dans la comparaison exécutée par l'entrée de conversion. La zone de masque 816 peut être utilisée dans n'importe laquelle d'une variété de différentes façons. Si par exemple la taille du bloc physique mis en concordance par l'entrée de conversion 810a possède la taille de bloc minimale, alors (dans cet exemple) l 'ensemble des bits supérieurs 838 doit être comparé par le comparateur 832. Si cependant la taille du bloc physique mis en correspondance par l'entrée de conversion 810a possède la taille de bloc maximale, alors (dans cet exemple) seuls treize des seize bits supérieurs 804 doivent être comparés par le comparateur 822. La valeur mémorisce dans le registre de zones de masques 816 spécifie combien des bits supérieurs 804a doivent être utilisés dans la comparaison exécutée par le comparateur 822. La valeur mémorisée dans le registre de zones de masques 816 est prévue en tant que signal d'entrée envoyé au comparateur 822. La valeur mémorisée dans le registre de zones de masques 816 peut prendre n'importe laquelle d'une variété de formes, et le comparateur 822 peut utiliser la valeur de n'importe laquelle d'une variété de manières pour comparer le nombre correct de bits, comme cela est bien connu des spécialistes ordinaires de la technique. Dans des formes de réalisation, dans lesquelles le mécanisme de masquage que l'on vient de décrire est utilisé, les bits médians 804b de l'adresse physique sont acheminés au moyen du mécanisme de conversion 210 et sont envoyés à une porte ET 830, qui réalise une combinaison ET logique des bits moyens 804b et de la zone de masque 816 (ou d'une manière plus générale, la zone de masque de l'entrée de conversion qui correspond aux bits supérieurs 804a de l'adresse physique 804). Le signal de sortie de la porte ET 830 est utilisé pour former la partie supérieure du décalage 806c. En effet, la porte ET 830 annule des bits de décalage non utilisés pour des tailles de blocs physiques plus petites. La porte ET 830 est facultative et peut ne pas être utilisée si les contrôleurs de mémoire 802a-b sont à même d' ignorer des bits de décalage on utilisés lorsqu'ils ne sont pas nécessaires. Selon un autre aspect de la présente invention, des techniques sont prévues pour réaliser la remise en correspondance d'un bloc de mémoire physique d'une ressource de mémoire machine (par exemple un bloc de mémoire machine) à un autre dans un serveur partitionnable. Par exemple, si l'un des blocs de mémoire machine 210a-e du serveur est remplacé par un nouveau bloc de mémoire machine, les blocs de mémoire physiques, qui ont été mis en correspondance sur le bloc de mémoire machine original peuvent être remappés avec le nouveau bloc de mémoire machine. Cette remise en concordance peut être exéautée par le mécanisme 210 de conversion d'adresses physiques en adresses machine. La remise en concordance peut impliquer le copiage d'une image depuis la ressource de mémoire machine (telle que le bloc de mémoire physique remplacé) d'une autre source de mémoire machine (tel que le bloc de mémoire machine de remplacement). Ces mêmes techniques peuvent être utilisoes pour exécuter une remise en correspondance lorsque par exemple un bloc de mémoire machine est retiré du serveur 300 ou y est ajouté. En particulier on prévoit des techniques pour exéauter une 3 5 tel le remise en concordance sans réinitialiser le serveur 300 et sans interrompre le fonctionnement du ou des systèmes d'exploitation intervenant dans le serveur. Par exemple, en référence à la figure 7, on a représenté un organigramme d'un procédé 700 qui est utilisé par un processeur de service pour remettre en correspondance un bloc de mémoire physique P depuis une ressource de mémoire machine à une autre dans un mode de mise en oeuvre de la présente invention. Le procédé 700 recoit une demande de remise en correspondance du bloc de mémoire physique P à partir d'une ressource de mémoire machine d'origine Ms en direction d'une ressource de mémoire machine de destination MD (pas 702). Les ressources de mémoire d'origine et de destination peuvent être par exemple des blocs de mémoire machine ou des parties de tels blocs. Par exemple, en se référant à nouveau à la figure 2, si un bloc de mémoire machine 210a était remplacé par un autre bloc de mémoire machine, il serait nécessaire de remettre en correspondance le bloc de mémoire physique 212a sur des adresses dans le nouveau bloc de mémoire machine. Dans un tel cas, le bloc de mémoire machine 210a serait la ressource de mémoire machine d'origine Ms et le bloc de mémoire de machine de remplacement serait la ressource de mémoire de destination MD. Le procédé 700 copie alors le contenu du bloc de mémoire physique P provenant de la ressource de mémoire Ms à la ressource de mémoire MD. Dans une forme de réalisation, ce copiage est exéauté de la manière suivante. Le procédé 700 programme les registres de conversion secondaire (comme par exemple le registre de conversion secondaire 818) du mécanisme de conversion 210 avec les nombres de modules et de blocs de la ressource de mémoire MD (pas 704). Le bloc de mémoire physique P est maintenant mappé à la fois sur la ressource de mémoire Ms (mappage primaire) et sur la ressource de mémoire MD (mappage secondaire). Le procédé 700 active des bits d'écriture (W) des registres de conversion secondaire (pas 706). Etant donné que les bits d'écriture des registres de conversion primaire ont déjà été activés, l' activation des bits d'écriture des registres de conversion secondaire a pour effet que l 'ensemble des transactions d'écrite est dupliqué dans les deux ressources de mémoire Ms et MD. Le procédé 700 lit et rcécrit ensuite l' ensemble du bloc de mémoire physique P (pas 708). Etant donné que le bloc P est mappé à la fois sur la ressource de mémoire Ms et sur la source de mémoire Mp, le pas d'exécution 708 a pour effet que le contenu du bloc de mémoire physique P est copié depuis la ressource de mémoire Ms dans la ressource de mémoire Mp. Dans une forme de réalisation, l'un des processeurs du serveur exécute le pas 708 au moyen d'une écriture puis d'une réécriture en chaque emplacement de mémoire dans le bloc de mémoire physique P. La technique du pas 708 peut cependant ne pas fonctionner avec certains processeur qui ne réécrivent pas des valeurs inchangées dans la mémoire. Une solution à ce problème est d'équiper le serveur 300 d'au moins un processeur qui identifie une instructions spéciale qui commande de façon forcée des totalisations nettes dans la mémoire cache pour réaliser une réécriture dans la mémoire. Une autre solution consiste à ajouter une unité spéciale au système d'interconnexion 808 qui balaye le bloc physique P. en lisant puis en réécrivant chaque bloc en ces emplacements de mémoire. Le procédé 700 active les bits de lecture (A) des registres de conversion secondaire (tel que le registre de conversion secondaire 818) et active les bits lus dans les registres de conversion primaire (tels que le registre de conversion primaire 820) (pas 710). Les bits de lecture et d'écriture des registres de conversion secondaire sont maintenant activés, alors que seuls les bits d'écriture des 3 5 registres de conversion primaire sont activés. Etant donné que chaque processeur peut comporter sa propre mémoire de conversion CAM et que, de facon typique, il n'est pas possible de modifier toutes les mémoires CAM de conversion simultanément, il peut être nocessaire d'exécuter la commutation simultanément des bits de lecture primaire et secondaire. Le procédé 700 supprime les bits d'écriture des registres de conversion primaire (pas 712). Le bloc de mémoire physique P a maintenant été remappé de la ressource de mémoire MS à la ressource de mémoire MD sans qu'il soit nécessaire que le serveur 300 soit réinitialisé et sans autre opération d' interruption du serveur 300. Les registres de conversion secondaire mappent le bloc physique P sur la ressource de mémoire Mp, qui contient une réplique exacte du contenu du bloc physique P. En outre à la fois les bits de lecture et d'écriture des registres de conversion primaire sont maintenant supprimés et à la fois les bits de lecture et d'écriture de registres de conversion secondaire sont maintenant activés. Il en résulte que des accès ultérieurs à des adresses dans le bloc physique P réalisent un mappage sur des adresses correspondantes dans la ressource de mémoire MD. La ressource de mémoire MS peut être supprimée à des fins de maintenance ou peut être utilisée dans d'autres buts. Bien que le procédé 700 décrit précédemment en référence à la figure 7 remappe uniquement un seul bloc de mémoire physique, les spécialistes de la technique noteront comment on peut remapper des blocs de mémoire physiques multiples et des parties de blocs de mémoire physiques en utilisant des techniques similaires. Si par exemple les blocs de mémoire machine 210a et 210b (figure 2) étaient remplacés par un ou plusieurs nouveaux blocs de mémoire machine, les blocs de mémoire physiques 212a, 212b et 212c seraient remappés sur les nouveaux blocs de mémoire machine. Sinon, si un seul bloc machine 210a était remplacé par un nouveau bloc de mémoire physique, la totalité du bloc de mémoire physique 212a et seule une partie du bloc de mémoire physique 212b serait remappée sur le nouveau bloc de mémoire machine. Bien que les formes de réalisation particulière décrites ci-dessus décrivent l'utilisation du mécanisme 210 de conversion d'adresses physiques en adresses machine pour fournir une couche d' indirection entre les ressources de mémoire 302b du serveur 300 (figure 3A) et des processus d'exécution de partition en 322a-b du serveur 300 (figure 3B) on notera que di fférentes formes de réal i sat ion de la présente invention peuvent être utilisoes pour prévoir une couche d' indirection entre les processus et d'autres ressources du serveur 300, telles que les ressources I/O 302e. Cette couche d' indirection peut permettre avantageusement à des systèmes de fonctionnement classiques non modifiés d'exécuter des partitions 322a-b du serveur 300 pour accéder aux ressources I/O 302a du serveur. En référence à la figure 6, un modèle de ressource physique généralisé 600 correspondant à une forme de réalisation de la présente invention est représenté sous la forme d'un schéma-bloc fonctionnel. Précisément de la même manière que le modèle 200 représenté sur la figure 2 peut être utilisé pour fournir un espace d'adresses de mémoire physique auquel l'accès peut être effectué par des processus travaillant dans des partitions du serveur 300, le modèle 600 représenté sur la figure 6 peut être utilisé d'une manière plus générale pour fournir un espace d'adresses physiques pour accéder à des ressources de l'un queleonque d'une pluralité de types, telles que les ressources de traitement 302a, les ressources de mémoire 302b, les ressources d'interaonnexion 302c, les ressources de puissance 302d ou les ressources I/O 302e. D'une manière générale, un espace d'adresses pour un ensemble de ressources est également désigné ici comme étant un "espace d'identifiant de ressources". Le modèle 600 inclut une pluralité de ressources 610a-g, qui peuvent être une pluralité de ressources d'un type particulier (par exemple des ressources I/O ou des ressources de traitement). Le modèle 600 inclut un espace d'adresse machine 602 qui réalise le mappage des ressources 610a-g sur une pluralité d'identifiants de ressources machines 616a-g. Par exemple, dans le cas de ressources de mémoire, les identifiants de ressources machine 616a-g peuvent être les adresses 216 (figure 2c). Dans le cas de ressources I/O, les identifiants de ressources machines peuvent être des numéros de porte ou d'autres identifiants prédéterminés quelconques que le serveur 300 utilise pour identifier les ressources I/O matérielles (machine). Un système d'exploitation travaillant dans un ordinateur non partitionné classique adresse de facon typique des ressources machines 610a-g directement en utilisant les identifiants de ressources machine 616a-g. Bien que l'espace d'adresse machine 602 représenté sur la figure 6 soit séquentiel et à base de zéro, ce n'est qu'un exemple et ceci ne constitue pas la limitation de la présente invention; Le modèle 600 inclut un mécanisme 616 de conversion d'adresses physiques en adresses machines, qui mappent des ressources machine 610a-g sur des ressources physiques 612a-g. Un exemple d'un tel mappage est le mappage entre des emplacements de mémoire dans des blocs de mémoire machine 210a-e et des emplacements de mémoire dans le bloc de mémoire physique 212a-f (figure 2). Le modèle 600 inclut des sous-modèles 614a et 614b, qui correspondent respectivement à des partitions 322a et 322b du serveur 300 (figure 3B). Lors de la création d'une partition, le mécanisme de conversion d'adresses physiques en adresses machines affecte une ou plusieurs des ressources physiques non affectées 612a-g à la partition. Le mécanisme 616 de conversion d'adresses physiques en adresses machine mappe les ressources physiques allouées sur un espace d'adresses physiques pour la partition. Par exemple le modèle 214a inclut un espace d'adresse physique 602a, qui inclut une pluralité d'adresses physiques 618a-c correspondant aux ressources physiques respectives 612b, 612e et 612d. De façon similaire le modèle 214b inclut un espace d'adresses physiques 602b qui inclut une pluralité d'adresses physiques 618d-f, correspondant respectivement aux ressources physiques 612f, 612a et 612c. Un exemple particulier d'un tel espace d'adresses physiques dans le cas de ressources de mémoire va être décrit ci-après en référence à la figure 4. Le mécanisme 610 de conversion d'adresses physiques en adresses machine est intercalé logiquement entre les ressources machines 610a-g du serveur 300 et les systèmes d'exploitation 324a-b et travaillant dans les partitions 322a-b. Le mécanisme 610 de conversion d'adresses physiques en adresses machine réalise une conversion entre des identifiants de ressources physiques 618a-f référencés par les systèmes d' exploitation 324a-b et des identifiants de ressources machine 616a-g, qui se réfèrent directement aux ressources machine 610a-g du serveur. Il en résulte que, lorsque les systèmes d' exploi- tation 324a-b essaient d'accéder à l'une des ressources machine 610a-g en utilisant l'un des identifiants des ressources physiques 610a-f, le mécanisme 610 de conversion d'adresses physiques en adresses machines convertit l'identifiant de ressources physiques spécifié en l'identifiant de ressources machine correspondant et exécute d'une manière transparente l'accès demandé sur la base du système d' exploitation. Le mécanisme 610 de conversion d'adresses physiques en adresses machine fournit par conséquent l' aspect de chacun des systèmes d'exploiLation 324a-b, gu'il meL en oeuvre dans un seul ordinateur non partiLionn. Par exemple dans une forme de ralisation, l'acc@s aux ressourceG I/O 302e 'effectue en utilisant une entre/sortie "I/O mappe en mmoire". L'expression I/O mappe en mmoire se rf@re l'utilisation des mmeG instructions et du mme bus pour communiguer la fois avec la mmoire principale (par exemple des resources de mmoire 302b) et des dispositifs I/O (par exemple des 1Q ressources I/O 302e). Ceci est l'oppos deproceseurs qui posAdent un bus I/O spard et utilisent des inGtructions spciales pour accder ce bus. Confocdment l'entrde/Gortie I/O mappe en mmoire, les dispositifs I/O Gont adresss danG certaines gammes d'adresses rserves dans le bus de mmoire principal. Ces adresses ne peuvent par consguent pas Atre utilises pour la mmoire principale. L'accAs des disposiLifs I/O de cette manire consiste babiLuellement lire et crire certain registres incorporAG. Le mcanisme 210 de conversion d'adreGGes physigues en adresses machines (tigure 2) peut tre utilis pour garantir que des demandes faites par des systmes d'exploitation 324a-d pour accder 1'un gueleonque de ces regiGtreG incorpords sont mapps Gur les emplacements de ! mmoire appropri6s dans les ressources de mmoire 302b du serveur, ce gui valide d'une maniAre transparente des entrdes/sorties I/O mappeG en mmoire, dans deG partitions d'uo serveur partitionnable. DanG une forme de ralisation, les technigues dcrites ci-deGGus sont uLilises pour rendre virtuelG les registreG d'inLerruptions d'uniLs centrales C[U dans les ressources de traitement 302a du serveur. Comme lment de base, l'unitd centrale cPu inclut de fagon typigue plusieurs emplacementG Gdciaux de mmoire dsign4G comme tant des registres d'interrupLion, dont chacun possde une adreGGe particulire qui peut tre utilise pour (crire dans le registre. Un effet secondaire de l'écriture d'une configuration particulière dans un registre particulier d' interruptions de l'unité centrale CPU peut appliquer une interruption à l'unité centrale CPU. Des interruptions particulières, qui sont supportées, varient entre les unités centrales CPU, comme cela est bien connu du spécialiste ordinaire de la technique. Il est souhaitable dans certains cas de déplacer le contexte courant dans lun des processeurs du serveur (dans les ressources de traitement 302a) vers un autre processeur. Cependant lors du cours normal d'exécution d'une opération, des adaptateurs I/O et un autre logiciel font souvent la connaissance des adresses des registres d' interruptions de l'unité centrale CPU, et il peut être difficile de reprogrammer de tels adaptateurs et d'autres logiciels pour utiliser différentes adresses du registre des interruptions. C' est pourquoi il est souhaitable que les adresses des registres d'interruptions, qui sont utilisées par les adaptateurs I/O et un autre logiciel, restent inchangées même lorsqu'une image migre d'un processeur à un autre. Les techniques de remappage de mémoire décrite précédemment en rapport avec la figure 7 peuvent être utilisces pour atteindre cet objectif dans une forme de réalisation de la présente invention. On va considérer un exemple dans lequel il est souhaitable de déplacer l' image utilisée dans un premier processeur vers un second processeur dans les ressources de traitement 302a du serveur. Lorsque l'unité de gestion du système décide d'effectuer cette migration, il informe de façon typique le processeur de service de ses intentions d'effectuer la migration. Le processeur de service localise une unité centrale CPU vide (parmi les ressources de traitement 302a) qui n'est pas affectée à une quelconque partition, et interrompt le premier processeur (le processeur devant être quitté). Cette interruption peut être une interruption spéciale, dont le système d'exploitation qui travaille avec le premier processeur, n'a pas connaissance. Cette interruption spéciale oriente le cours de l'exécution sur l'exéaution d'un code à niveau bas au-dessous du système d'exploitation qui est utilisé pour l'initialisation et pour masquer des détails, spécifiques à la réalisation, vis-à-vis du système d'exploitation. Un tel code est usuel dans des systèmes informatiques modernes et peut par exemple être réalisé en utilisant des séquences intégrces de microcodes et/ou d' instructions de l'unité centrale CPU, qui sont extraites d'un emplacement spécifique défini par le système. Le code à niveau bas provoque le transport du contexte depuis le premier processeur vers le second processeur, et l'exéaution reprend dans le second processeur. Cependant, comme cela a été décrit précédemment, il est souhaitable que les adresses du registre d' interruptions de l 'unité CPU reste inchangée en tant que résultat d'une commutation de contexte d'un processeur à un autre. Les techniques de remappage de mémoire décrites ci- dessus en rapport avec la figure 7 peuvent être utilisoes pour atteindre cet objectif. Une fois que le processeur de service a identifié la seconde unité centrale CPU, des accès aux registres d' interruptions de la première unité centrale CPU peuvent être temporairement dupliqués dans les registres d' interruption de la seconde unité centrale CPU d'une manière similaire à celle avec laquelle des inscriptions dans la mémoire principale sont temporairement dupliquces sur deux blocs de mémoire comme cela a été décrit précédemment en référence à la figure 7 et représenté sur la figure 8. Les registres d' interruption de la première unité centrale CPU jouent le rôle de la ressource de mémoire d'origine Ms (mappage primaire) décrite précédemment, tandis que les registres d'interrup tion de la seconde unité centrale CPU jouent le rôle de la ressource de mémoire de destination MD (mappage secondaire). Il en résulte que des interruptions sont envoyées aux première et seconde unités centrales CPU. Alors que le processus de déplacement de contexte est exécuté, la première unité centrale CPU continue à traiter les interruptions, alors que la seconde unité centrale CPU collecte des interruptions, mais n'agit pas sur elles. Lorsque le déplacement de contexte est terminé, la première unité centrale CPU s'arrête de traiter des interruptions et la seconde unité centrale CPU commence à traiter et à exécuter des interruptions. En raison de l'utilisation des techniques que l'on vient de décrire, des adaptateurs I/O et un autre logiciel peuvent continuer à accéder à des registres d' interruptions d'unités centrales CPU en utilisant les mêmes adresses que précédemment avant la commutation de contexte. Le mécanisme de conversion 210 convert it de façon transparente ces adresses en les adresses des registres d'interruption dans la seconde unité centrale CPU. Bien qu'il soit possible qu'une ou plusieurs interruptions puissent être traitées à de multiples reprises en utilisant ce système, de façon typique un tel traitement de duplication ne pose aucun problème étant donné que des programmes de traitement d' interruptions appellent de façon typique le dispositif d' interruption pour déterminer s'il a besoin d'un service. Parmi les avantages de l'invention, on peut citer un ou plusieurs des avantages suivants. Il est souhaitable que chaque partition dans un serveur partitionnable soit fonctionnellement équivalente à un ordinateur autonome (non partitionné). Par exemple il est souhaitable que l' interface entre un système d'exploi tation et la partition, dans laquelle il fonctionne, soit fonctionnellement équivalente à l' interface d'un système d'exploitation et le matériel d'un ordinateur autonome. Par exemple la partition présente au système d' exploitation un espace d'adresses séquentielles à base zéro. Etant donné que des systèmes d'exploitation classiques sont conçus pour travailler en liaison avec un tel espace d'adresses, une partition, qui présente de façon transparente un tel espace d'adresses peut supporter un système d'exploitation classique sans modification. Un avantage de différentes formes de réalisation de la présente invention réside dans le fait qu'elles fournissent des espaces d'adresses séquentiels à base zéro dans des partitions d'un serveur partitionnable. Des systèmes d'exploitation classiques sont conçus de façon typique de sorte qu'on peut supposer qu'un espace d'adresses physiques, qu'ils adressent, est numéroté séquentiellement en commençant à partir de zéro. Cette hypothèse est vraie pour des ordinateurs non partitionnés, mais pas pour des ordinateurs partitionnés. C' est pourquoi un système d'exploitation classique peut ne pas fonctionner à l'intérieur d'une partition qui ne possède pas un espace d'adresses séquentielles à base zéro. Différentes formes de réal i sat ion de la présente invent ion, qui fourni ssent des espaces d'adresses séquentielles à base zéro peuvent par conséquent être avantageusement utilisées pour permettre à des systèmes d' exploitation classiques non modifiés de fonctionner dans des partitions d'un serveur partitionnable. De tels systèmes d'exploitation incluent par exemple des systèmes d'exploitation dans ligne Microsoft Windows de systèmes d' exploitation (tels que Windows NT, Windows 200 et Windows XP) ainsi que des systèmes d'exploitation Unix et des variantes Unix (telles que Linux). Ceci est avantageux pour une variété de raisons, comme par exemple la suppression de la nocessité de personnaliser le système d'exploitation pour son fonctionnement dans une partition d'un serveur partitionnable et la presque-élimination des pénalités de performances présentées de façon typique par deux systèmes de partitionnement, comme décrit précédemment. De façon similaire, le fait de prévoir de façon transparente un espace d'adresses séquentielles à base zéro peut être utilisé pour permettre à des partitions de travailler avec n'importe quelle configuration matérielle qui est supportée par un système d' exploitation travaillant dans la partition. En outre des programmes d' application existants, qui travaillent dans le système d'exploitation, peuvent travailler dans la partition sans modification. Etant donné que la conversion d'adresse néces- saire est fournie par le mécanisme 210 de conversion d'adresses physiques en adresses machine non pas par le système d'exploitation, aucun niveau additionnel d'indirec- tion n'est requis dans les tables des pages du système d'exploitation. Ceci permet de réduire fortement les pénalités de performances qui résultent de façon typique de la délivrance du niveau additionnel d'indirection dans les tables de pages du système d'exploitation. Etant donné qu'une conversion d'adresses est exéautée au niveau matériel, différentes formes de réalisation de la présente invention fournissent avantageusement un niveau de sécurité entre partitions renforcé du point de vue matériel, qui peut être plus sûr que des systèmes de sécurité renforcés du point de vue logiciel. Une telle sécurité peut être utilisée à la place ou en supplément de mécanismes de sécurité renforcés du point de vue logiciel. Un autre avantage des différentes formes de réalisation de la présente invention réside dans le fait que les conversions exécutées par le mécanisme de translation 210 peuvent imposer seulement une faible pénalité du point de vue performances. En particulier des conversions peuvent être exéautées rapidement et en parallèle avec un autre traitement grâce à la mise en oeuvre du mécanisme de conversion 210 sous forme matérielle, comme cela est représenté par exemple sur la figure 8. Une telle forme de réalisation matérielle peut exéauter une conversion rapidement et sans nécessiter aucune modification des tables des pages du système d' exploitation. On comprendra que bien que l' invention ait été décrite ci-dessus sur la base de formes de réalisation particulières, les formes de réalisation mentionnces précédemment sont prévues uniquement à titre illustratif et ne limitent pas ou ne définissent pas la portée de l 'invention. Différentes autres formes de réalisation incluant, sans y être limitées ce qui suit, entrent également dans le cadre des revendications. Des éléments et composants décrits ici peuvent en outre être divisés en composants additionnels ou être réunis entre eux pour former un moins grand nombre de composants pour assumer les mêmes fonctions. Les techniques décrites ici peuvent être mises en oeuvre par exemple sous une forme matérielle, une forme logicielle, sous la forme d'un micrologiciel ou selon une combinaison quelconque de ces techniques. Les techniques décrites ci-dessus peuvent être mises en oeuvre dans un ou plusieurs programmes d'ordinateurs travaillant dans un ordinateur programmable incluant un processeur, un milieu de mémoire pouvant être lu par le processeur (y compris par exemple une mémoire volatile et une mémoire non volatile et/ou des éléments de mémorisation), ou moins un dispositif d'entrée et au moins un dispositif de sortie. Le code de programme peut être appliqué au signal d'entrée introduit en utilisant le dispositif d'entrée pour assumer les fonctions décrites et produire un signal de sortie. Le signal de sortie peut être délivré à un ou plusieurs dispositifs de sortie. Chaque programme d'ordinateur dans le cadre des revendications indiquées ci-après peut être mis en oeuvre selon n'importe quel langage de programmation, comme par exemple un langage d'assemblage, un langage machine, un langage de programmation de procédure à niveau haut ou un langage de programmation orienté objet. Le langage de programmation peut par exemple être un langage de programmation compilé ou interprété. Le terme "traitement" tel qu'il est utilisé ici se réfère à n'importe quel programme logiciel exéauté dans un ordinateur. Chaque programme d'ordinateur de ce type peut être mis en oeuvre dans un produit de programme dordinateur mis en oeuvre de façon réelle dans un dispositif de mémoire lisible en machine pour son exécution par un processeur d'ordinateur. Les étapes des procédés selon l 'invention peuvent être mises en oeuvre au moyen d'un processeur d'ordinateur exéautant un programme réalisé de façon tangible sur un support lisible par ordinateur pour l'exéaution de fonctions de l 'invention par une action appliquée à un signal d'entrée et par la délivrance d'un signal de sortie. Des processeurs appropriés incluent à titre d'exemples à la fois des microprocesseurs à usage général et à usage spécial. D'une manière générale, le processeur reçoit des instructions et des données de la part -d'une mémoire morte et/ou d'une mémoire à accès direct. Des dispositifs de mémoire approprié pour mettre en oeuvre de façon réelle les instructions de programmes d'ordinateurs incluent par exemple toutes les formes de mémoire non volatile, comme par exemple des dispositifs de mémoire à semiconducteurs, y compris des dispositifs de mémoire EPROM, de mémoire EEPROM et de mémoire flash; des disques magnétiques tels que des disques durs internes et des disques amovibles; des disques magnétooptiques; et des mémoires CD-ROM. N' importe laquelle des unités précédentes peut être complétées à ou incorporces dans les systèmes REVEND I CAT I ONS 1. Procédé mis en oeuvre par ordinateur pour créer un espace d'identifiants de ressources physiques dans une partition (322a) d'un système informatique (300) partitionnable (300), qui inclut une pluralité d'emplace- ments de mémoire machine (302b) possédant une pluralité d'adresses de mémoire machine (216), le procédé comprenant les étapes consistant à: (A) établir un mappage entre une pluralité d'adresses de mémoire physiques (218a) et au moins certaines de la pluralité d'adresses de mémoire machine, la pluralité d'adresses de mémoire physiques (218) étant numérotées séquentiellement en commençant à partir de zéro; (B) prévoir, pour un programme logiciel (324a) fonctionnant dans la partition (322a), une interface pour accéder à au moins certains de la pluralité d'emplacements de mémoire machine en utilisant la pluralité d'adresses de mémoire physiques (218a). 2. Procédé selon la revendication 1, selon lequel l'étape (A) comprend une étape consistant à créer une table de conversion d'adresses (222a), qui enregistre le mappage entre la pluralité d'adresses de mémoire physiques (218a) et au moins certains de la pluralité d'identifiants de ressources machine. 3. Procédé selon la revendication 1, selon lequel l' interface comprend une mémoire associative (810) qui établit le mappage. 4. Procédé pour accéder à l'un sélectionné d'une pluralité d' emplacements de mémoire machine (302b) spécifiés par une adresse de mémoire physique dans un système informatique partitionnable (300), qui inclut la pluralité d'emplacements de mémoire machine (302b), le procédé comprenant les mémoires consistant à: (A) identifier un mappage associé à une partition (322a) dans le système informatique partitionnable (300), le mappage mettant en correspondance une pluralité d'adresses de mémoire physiques (218a) dans un espace d'adresses de mémoire physiques séquentielles à base zéro (202a) de la partition (322a), avec au moins certaines d'une pluralité d'adresses de mémoire machine (216) associées à la pluralité d' emplacements de mémoire machine (302b); (B) convertir l'adresse de mémoire physique en une adresse de mémoire machine en utilisant le mappage, l'adresse de mémoire machine spécifiant celle qui est sélectionnée parmi la pluralité de ressources machine; et (C) amener l'une sélectionnce de la pluralité de ressources machine à déclencher l'accès à celle sélectionnée de la pluralité de ressources machine en utilisant l'identifiant de ressource machine. 5. Procédé destiné à être utilisé dans un système informatique partitionnable (300) incluant une pluralité d' emplacements de mémoire machine (302b) possédant une pluralité d'adresses de mémoire machine (216) , le système informatique partitionnable (300) incluant en outre une pluralité d'emplacements de mémoire physiques (218a) comportant une pluralité d'adresses de mémoire physiques (218a), qui sont mises en correspondance avec au moins certaines de la pluralité d'adresses de mémoire machine, le système informatique partitionnable (300) comprenant en outre une pluralité de partitions (322a-b) exécutant une pluralité de programmes logiciels (324a-b), le procédé comprenant les étapes consistant à: (A) sélectionner un premier sous-ensemble de la pluralité d'emplacements de mémoire physiques (302b), le premier sous-ensemble de la pluralité d'emplacements de mémoire (302b) étant mis en correspondance avec un premier sous-ensemble de la pluralité d'adresses de mémoire machine (216); et (a) remeLtre en correspondance le premier sous-ensemble de la pluraliLA d'eplacemets de memoirs (3Q2b) avec un second sousensemble de la pluraliLA d'adreses de memoirs machine (216) sans rdinitialiser le syL@me a informatigue parLiLionnable (300). 6. Proceeds salon la revendication 5, comprenant en outre lea Stages consistent: (C) avant l'tape (B), copier le content du premier sousensemble de la plurality d'adresses de mmoire machine (216) au niveau de 1' ensemble du second sous ensemble sAlectionnd de la plurality d'adreseG de memoirs machine (216). ASIC (circuits intégrés spécifiques à l 'application conçus spécialement). Un ordinateur peut en général recevoir également des programmes et des données de la part d'un support de mémoire tel qu'un disque interne (non représenté) ou un disque amovible. On trouvent également ces éléments dans un ordinateur de bureau ou un ordinateur de traitement de texte classique ainsi que dans d'autres ordinateurs convenant pour exécuter des programmes d'ordinateurs mettant en oeuvre les procédés décrits ici, qui peuvent être utilisés en liaison avec n'importe quel moteur d' impression numérique ou n'importe quel moteur de marquage, et contrôleur d'affichage ou n'importe quel autre dispositif de sortie de trames apte à produire des pixels en couleurs ou des pixels de l'échelle des gris sur un papier, un film, un écran d'affichage ou un autre milieu de