FR 3047576 A1 20170811 FR 1650884 A 20160204 ORDINATEUR HOTE POUR EMULER DES ORDINATEURS PERSONNELS HAUTES PERFORMANCES. DOMAINE DE L'INVENTION La présente invention concerne le domaine de l'informatique dématérialisée. Plus spécifiquement, l'invention concerne un ordinateur hôte pour émuler des 10 ordinateurs personnels hautes performances. ARRIERE-PLAN TECHNOLOGIQUE DE L'INVENTION 15 Les avancées de la technologie informatique font qu'il est plus économique, pour les utilisateurs individuels, de posséder son propre système informatique, ce qui a provoqué la prolifération des Ordinateurs Personnels (PC). L'utilisation des PC individuels est très diversifiée, et va des opérations 20 de bureau standard ou de la navigation Internet à la visualisation de vidéo de haute qualité ou aux jeux vidéo. Les progrès continus de cette technologie informatique font que ces ordinateurs personnels sont de plus en plus 25 puissants mais également complexes et difficiles à gérer. Pour cette raison, ainsi que d'autres plus particulièrement liées au partage des ressources qui permet une économie d'énergie pour l'utilisateur individuel, un intérêt croissant s'est développé dans la séparation des dispositifs d'interface 30 utilisateur, y compris l'écran et le clavier, des parties de traitement de l'application dans le système informatique. Dans ce cas, les appareils d'interface utilisateur sont physiquement situés au niveau du bureau de l'utilisateur, alors que les composants de traitement et de stockage de 35 l'ordinateur se trouvent dans un lieu d'hébergement distant. 3047576 Les appareils d'interface utilisateur ont alors accès, au niveau de l'ordinateur hôte, à une machine virtuelle dédiée par l'intermédiaire d'un réseau (le plus souvent Internet), la machine virtuelle émulant le traitement, le stockage et autres ressources informatiques requises. Les dispositifs d'interface utilisateur, également appelés "zéro client" ou "client léger", dépendent donc fortement de l'ordinateur hôte qui remplit les fonctions 10 informatiques pour les clients. Dans ces configurations, l'ordinateur hôte héberge le système d'exploitation et les applications logicielles utilisées par les "zéro client" ou "client léger", ce qui limite les ressources de traitement du côté client. 15 Il est habituel que l'ordinateur hôte soit constitué d'une pluralité de systèmes informatiques physiques (serveurs), chacun hébergeant une pluralité de machines virtuelles. Chaque machine virtuelle est connectée à un 20 client, et fournit un environnement virtuel dédié pour émuler les fonctions d'un ordinateur personnel physique, y compris le traitement des données graphiques pour afficher les informations d'écran sur l'écran du client. Les données afficher sont transférées au client par l'intermédiaire du 25 réseau. Le client possède des ressources informatiques suffisantes pour recevoir le flux de données et afficher celles-ci. Le client dispose également des dispositifs d'entrée/sortie (clavier, souris...) pour échanger les informations ou les instructions avec la machine virtuelle, 30 via le réseau. La virtualisation permet ainsi la création d'autant de machines virtuelles que nécessaire, avec pour objectif de fournir à tous les utilisateurs le même niveau de service en moyenne, par exemple, pour acquérir une page web en moins de 100 ms. 35 3047576 Les systèmes informatiques physiques existants qui constituent l'ordinateur hôte sont essentiellement configurés pour effectuer des opérations à faible charge de calcul (édition de texte, envoi de courrier électronique, gestion de 5 bureau) pour autant de clients qu'il est possible, en parallèle. Il apparaît que cette configuration n'est pas adaptée pour fournir un niveau de service suffisant pour des applications hautes performances telles que des jeux en trois dimensions (3D), la vidéo haute qualité, un son audio haute 10 qualité, ou des tâches graphiques 3D qui nécessitent, traditionnellement, la puissance de traitement d'ordinateurs personnels hautes performances. 15 BUT DE L'INVENTION Un objet de la présente invention est donc de proposer un ordinateur hôte configuré pour émuler des ordinateurs personnels hautes performances. 20 RÉSUMÉ DE L'INVENTION L'invention concerne un ordinateur hôte pour émuler des 25 ordinateurs personnels sur des machines virtuelles respectives, l'ordinateur hôte comprenant une pluralité de systèmes informatiques physiques. Chaque système informatique comprend au moins deux cartes graphiques et héberge au plus 50 machines virtuelles. 30 En limitant le nombre d'ordinateurs personnels émulés sur chaque système informatique physique et en fournissant à chaque système informatique physique des ressources suffisantes, et spécifiquement des ressources informatiques 3047576 graphiques, il est possible d'assurer un niveau de service satisfaisant même pour des applications graphiques intensives. Selon d'autres caractéristiques non limitatives 5 l'invention, prises individuellement ou en combinaison : - chaque système informatique héberge moins de 10 machines virtuelles ; 10 - chaque carte graphique comprend une unité de traitement graphique conçue pour rendre des graphiques complexes - 2D/3D en temps réel ; quatre chaque système informatique comprend au moins 15 cartes graphiques ; - chaque système informatique physique inclut une UC capable d'exécuter des instructions multimédia ; .20 - chaque système informatique comprend une mémoire principale ayant une latence inférieure à 14 ns ; - chaque machine virtuelle est connectée à un client distant par l'intermédiaire d'un réseau. 25 FIGURES De nombreux autres avantages et fonctions de la 30 présente invention seront plus apparents après la lecture de la description détaillée qui suit, prise conjointement avec les dessins joints, parmi lesquels : 3047576 La figure 1 représente une architecture informatique permettant de mettre en oeuvre la présente invention - La figure 2 représente une architecture de carte mère 5 d'un système informatique physique 2 d'un ordinateur hôte, donnée à titre d'exemple ; - La figure 3 représente les éléments d'un adaptateur vidéo ; - La figure 4 représente les éléments d'une carte graphique. DESCRIPTION DETAILLEE DE MODES DE REALISATION SPECIFIQUES DE L'INVENTION Dans la description qui suit, des descriptions 20 détaillées de fonctions et d'éléments connus, qui pourraient inutilement rendre l'essentiel de la présente invention obscur, seront omises. Sur la figure 1, une architecture informatique comprend 25 un ordinateur hôte 1 qui présente une pluralité de systèmes informatiques physiques 2. Comme cela est bien connu, les systèmes informatiques physiques 2 peuvent être configurés pour héberger une ou une pluralité de m&chine(s) virtuelle(s) 3, en même temps que son/leur système d'exploitation et ses 30 applications. La virtualisation permet qu'une pluralité de machines virtuelles 3 soient hébergées dans chaque système informatique physique 2 tout en fournissant un seul système informatique physique 2 à une pluralité d'environnements virtuels totalement isolés. On peut citer, parmi les 35 technologies de virtualisation bien connues Citrix XenServer, 3047576 6 Microsoft Hyper-V, VMware ESXi, Oracle Virtual box, Quick Emulator sous licence ouverte GNU (QEMU), etc. Chacune des machines virtuelles 1 dans l'ordinateur hôte 5 1 peut être dédiée à un utilisateur spécifique. Les utilisateurs peuvent interagir avec leurs machines virtuelles dédiées 3 depuis les clients distants 4, chacun étant connecté à l'ordinateur hôte 1 par l'intermédiaire d'un réseau comme Internet. Étant donné que la plus grande partie, si ce 10 n'est l'intégralité, du traitement se fait au niveau de l'ordinateur hôte 1, les clients distants 4, 4' peuvent rester très simples, et peuvent inclure, par exemple, un simple terminal, un connecteur de réseau et des dispositifs d'entrée/sortie de base (clavier, souris...) comme représenté 15 par le client distant 4 sur la figure 1. Selon une autre solution, il peut s'agir d'un ordinateur personnel standard, avec sa propre Unité Centrale, sa carte graphique, ses périphériques, .... comme représenté par le client distant 4'. Pour afficher les images sur le terminal de l'utilisateur, l'ordinateur hôte 1 approvisionne le système distant 4, 4' sur le réseau en données d'écran (et éventuellement en son additionnel ou en données de commande pour les dispositifs d'entrée/sortie installés sur le site distant 21). A l'inverse, les clients distants 4,4 approvisionnent l'ordinateur hôte 1 en données de commande en provenance des dispositifs d'entrée/sortie installés sur le site distant (clavier, osouris), et éventuellement d'autres formes de données telles que des données d'écran et sonores fournies par un dispositif USB ou intégrées dans une caméra et un microphone du client distant 4, 4', ou des périphériques de réseau, au niveau du client distant, tels les imprimantes.... 3047576 Les données échangées entre l'ordinateur hôte 1 et les clients distants 4, 4' peuvent être comprimées pour limiter l'utilisation de la bande passante du réseau. 5 Selon l'invention, chaque système informatique physique 2 héberge au plus cinquante machines virtuelles 3, et de préférence moins de 10 machines virtuelles 3. Cette limitation (conjointement avec l'architecture du système informatique physique 2 qui sera décrite ci-dessous) permet de fournir des 10 ressources informatiques suffisantes à chaque machine virtuelle pour exécuter des applications hautes performances avec un niveau de service suffisant. Chaque machine virtuelle 10 est créée au moment de la connexion du client et comprend une UC virtuelle, une mémoire principale virtuelle, une carte 15 graphique virtuelle ou physique ainsi que d'autres ressources. Chaque machine« virtuelle fournit un ordinateur personnel hautes performances virtuel qui est commandé par un client distant 4, 4'. 20 Chaque système informatique physique 2 est configuré de telle sorte que l'ordinateur hôte 1 est capable d'émuler des ordinateurs personnels hautes performances. La figure 2 représente une architecture de carte-mère 5 25 d'un système informatique physique 2 compatible avec l'invention, donnée à titre d'exemple ; La carte-mère 5 comprend une UC 6. L'UC 6 représente des jeux d'instructions multimédia, et peut comprend plus d'un processeur. Par exemple, l'UC 6 est un processeur de bureau tel un Intel 30 CoreTM. L'UC 6 est connectée à une mémoire principale 7 par l'intermédiaire d'un bus mémoire 8. La mémoire principale 7 possède au moins 64 GB et présente une faible latence inférieure à 14 ns. Le bus mémoire permet un débit de transfert de données très élevé, supérieur à 1200 Mhz. Pour ce 3047576 faire, le bus mémoire 7 peut être constitué de lignes conductrices plaquées or. L'UC 6 est également connectée à un jeu de composants SB 5 9 par l'intermédiaire d'un bus 12e. Le jeu de composants SB 9 se connecte à des périphériques lia à 11d, tels des disques durs, des contrôleurs de réseau, des commandes E/S ... Les données peuvent circuler d'un appareil sur la carte-mère 5 à un autre par l'intermédiaire de différents bus, tel le bus 10 mémoire 8, les bus d'extension 12a à 12e, qui connecte les appareils entre eux. Les bus d'extension 12a à 12e peuvent être de nature différente. Par exemple le jeu de composants SB 9 peut se connecter à un disque dur périphérique lla par l'intermédiaire d'un bus SATA. Le jeu de composants SB 9 peut 15 se connecter à d'autres périphériques llb à lld par l'intermédiaire de bus PCI ou PCIE 12b, 12c, 12e. Le jeu de composants 9 assure l'interface logique nécessaire pour permettre le transfert des données entre les périphériques lia à 11d, et entre les périphériques 11a, 11b, 11c, lld et l'UC 20 6, et d'autres appareils connectés à l'UC 6 tel la mémoire principale 7. Le nombre de périphériques n'est pas limité au nombre indiqué sur la figure 2, et le système informatique physique réel 2 peut présenter plus ou moins de tels périphériques, selon les besoins. 25 Selon l'invention, chaque système informatique physique 2 de l'ordinateur hôte 1 comprend au moins deux cartes graphiques sur la carte-mère 5. Par exemple, comme le montre la figure 2, l'UC 6 est connectée par l'intermédiaire d'un bus 30 de xcarte graphique 13 à 4 cartes graphiques GC1, GC2, GC3, GC4. Dans certains exemples, une carte graphique peut être connectée à un jeu de composants SB 9 plutôt que connectée 35 directement à l'UC 6, tel que représenté sur la figure '2. Ceci 3047576 est tout particulièrement vrai lorsque cette carte graphique est dédiée à l'affichage d'informations au niveau du site de l'hébergement. Dans ce cas, la carte graphique est habituellement un simple adaptateur vidéo, permettant de 5 connecter directement un moniteur au système informatique physique. Tel que le montre la figure 3, l'adaptateur vidéo 5 comprend typiquement une mémoire vidéo 31, un circuit de conversion 32 et au moins un port de sortie vidéo 33. L'adaptateur vidéo ne comprend habituellement aucune unité 10 centrale dédiée, tel qu'un accélérateur 2D/3D ou un décodeur audio/vidéo, mais l'invention n'exclut pas que l'adaptateur vidéo comprenne ladite unité centrale graphique dédiée. La mémoire vidéo 31 est fournie pour stocker 15 temporairement des données d'écran fournies par l'UC 6 ou transférées depuis la mémoire principale 7 (ou depuis d'autres périphériques). Les données d'écran stockées dans la mémoire vidéo 31 sont traitées par le circuit de conversion 32 dans le format numérique ou analogique approprié ; et fournies au port 20 de sortie vidéo 33, par exemple, du type VGA, DVI ou HDMI. Le port de sortie vidéo 33 peut être connecté à un moniteur vidéo à l'aide de câbles appropriés (non représentés sur la figure 3), afin d'afficher l'image qui correspond aux données d'écran. 25 Si l'on se réfère à nouveau au mode de réalisation représenté sur la figure 2, la carte-mère 5 du système informatique physique 2 comprend au moins deux cartes graphiques GC1, GC2, GC3, GC4, de préférence connectées 30 directement à l'UC (c'est-à-dire sans passer par un jeu de composants SB 9). Contrairement à l'adaptateur vidéo, ces cartes graphiques constituent les ressources informatiques dédiées aux machines virtuelles qui seront opérationnelles dans le système informatique physique 2. 35 3047576 10 Comme le montre la figure 4, chaque carte graphique GC1, GC2, GC3, GC4 comprend une mémoire de carte graphique 41 d'au moins 2 GB, pour stocker les données d'écran. Elle comprend également une Unité de Traitement Graphique (GPU) 42 qui reçoit les instructions et les données, par exemple, en provenance de l'UC 6, par l'intermédiaire du bus de carte graphique 13. L'unité de Traitement Graphique (GPU) 42 traite les 10 instructions et les données reçues et fournit les données d'écran correspondantes à la mémoire de carte graphique 41. La GPU 42 peut également donner l'instruction de transférer les données d'écran stockées dans la mémoire principale 7 vers la mémoire de carte graphique 41, par l'intermédiaire du bus de 15 carte graphique 13 et du bus de mémoire 8. Les cartes graphiques GC1, GC2, GC3, GC4 comprennent habituellement, également, un décodeur 43 permettant de transformer, par exemple, les données vidéo (et/ou audio) 20 codées (telles que les fichiers H.264) en données d'écran destinées au stockage dans la mémoire de carte graphique 41. Ces données vidéo (et/ou audio) codées peuvent être fournies par un lecteur DVD, un disque dur, ou tout autre périphérique connecté au jeu de composants SB 9. 25 Une unité de conversion de carte graphique 44 traite les données d'écran stockées dans la mémoire de carte graphique 41 et les envoie au port de sortie vidéo de carte graphique 45. Cependant, étant donné que les données d'écran sont destinées 30 à être envoyées à un client distant 4, 4' sur un réseau, une unité de conversion 44 n'est pas une fonctionnalité nécessaire de la carte graphique GC1, GC2, GC3, GC4 et ne sera typiquement pas connectée au niveau d'un écran, du lieu d'hébergement. 35 3047576 11 Le bus de carte graphique 13 connecte directement l'UC 6 aux cartes graphiques GC1, GC2, GC3, GC4 pour permettre un transfert rapide des données. Si le nombre de connexions ou de voies disponibles sur l'UC 6 n'est pas suffisant pour connecter le nombre désiré de cartes graphiques, le bus 13 peut être équipé d'un ou d'une pluralité de commutateurs de bus 13a qui permet/permettent de partager' les connexions ou de voies de l'UC 6 dans une pluralité de cartes graphiques. 10 Les cartes graphiques GC1, GC2, GC3, GC4 sur la carte- mère 5 n'ont pas besoin d'être identiques, ou du même type, ou du même niveau de performances (tel que mesuré par le nombre d'instructions exécutées par la GPU 42 par seconde). Par exemple, dans le mode de réalisation préféré représenté sur la 15 figure 2, la carte graphique GC1 pourrait être de faible performance, la carte graphique GC2 de performance moyenne, et les cartes graphiques GC3 et GC4 de haute performance. Dans une variante possible de la configuration de la 20 carte-mère 5 du système informatique physique 2, l'UC 6 ne comprend pas le matériel nécessaire pour se connecter directement à la mémoire principale 7 et aux cartes graphiques GC1, GC2, GC3, GC4. Dans ce cas, la carte-mère 5 peut comprendre un jeu de composants NB, connecté respectivement à 25 l'UC 6, au jeu de composants SB 9, à la mémoire principale 7 et aux cartes graphiques GC1, GC2, GC3, GC4. Ce jeu de composants NB réoriente le trafic de données parmi les divers éléments qui y sont connectés. 30 Un ordinateur hôte 1 selon l'invention, qui combine un nombre limité de machines virtuelles hébergées par chaque système informatique 2 et la présence d'au moins deux cartes graphiques GC1, GC2 dans chaque système informatique 2, permet une exécution aisée d'applications hautes performances, et 3047576 12 d'émuler, depuis une perspective de client distant, des ordinateurs personnels hautes performances. REVENDICATIONS1. Ordinateur hôte (1) pour émuler des ordinateurs personnels sur des machines virtuelles (3) respectives, l'ordinateur hôte (1) comprenant une pluralité de systèmes informatiques physiques (2) caractérisé en ce que chaque système informatique (2) comprend au moins deux cartes graphiques (GC1, GC2, GC2, GC4) et héberge au plus 50 machines virtuelles (3). 10 2. Ordinateur hôte (1) selon la revendication 1, caractérisé en ce que chaque système informatique physique (2) héberge moins de 10 machines virtuelles (3). 15 3. Ordinateur hôte (1) selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque carte graphique (GC1, GC2, GC2, GC4) comprend une unité de traitement graphique (44) conçue pour rendre des graphiques 2D/3D complexes en temps réel. 20 4. Ordinateur hôte (1) selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque système informatique physique (2) inclut au moins quatre cartes graphiques (GC1, GC2, GC2, GC4). 5.0rdinateur hôte (1) selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque système informatique physique (2) inclut une UC (6) capable d'exécuter des instructions multimédia. 6. Ordinateur hôte (1) selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque système informatique physique inclut une memoire principale ayant une latence inférieure à 14 ns. 25 30 35 3047576 14 7. Ordinateur hôte (1) selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque machine virtuelle (3) est connectée à un client distant (4, 4') par l'intermédiaire d'un réseau.