FR 3161767 A1 20251031 FR 2404352 A 20240426 L’invention concerne un dispositif de stockage de masse (100) optimisé pour ordinateur aux ressources limitées. Il comprend un boîtier (110) avec connecteur (120), mémoire non-volatile (130), système d’exploitation dédié et co-processeur intégré (140). Un protocole de communication haut débit permet au co-processeur (140) de prendre en charge les tâches lourdes, réduisant la charge du processeur hôte. Un module d’IA (150) supervise l’utilisation des ressources et prédit la répartition optimale des tâches, permettant au co-processeur (140) d’ajuster dynamiquement le protocole de communication. Le dispositif de stockage de masse (100) s’adapte ainsi en continu au profil d’utilisation pour fournir un haut niveau de performances malgré les limitations de l’ordinateur hôte. Figure à publier avec l’abrégé : figure 1 DISPOSITIF DE STOCKAGE DE MASSE AVEC SYSTÈME D’EXPLOITATION EMBARQUÉ L’invention concerne le domaine des dispositifs de stockage de masse intégrés à un système embarqué et qui incluent un système d’exploitation. Les ordinateurs, en particulier les ordinateurs personnels, sont couramment utilisés pour exécuter une grande variété de tâches et d’applications logicielles nécessitant d’importantes ressources matérielles, tels que de la puissance de calcul, de la mémoire vive et de l’espace de stockage. Le terme « ressources » fait référence ici à l’ensemble des moyens matériels et logiciels dont dispose un ordinateur pour exécuter des traitements, stocker des données et interagir avec l’utilisateur. Cela inclut notamment les processeurs, la mémoire vive, les espaces de stockage, les périphériques d’entrée/sortie, ainsi que les composants logiciels comme le système d’exploitation et les pilotes de périphériques. Avec le temps, les ordinateurs deviennent souvent obsolètes, car leurs ressources ne sont plus suffisantes pour exécuter de manière satisfaisante les versions les plus récentes des systèmes d’exploitation et des applications, qui sont de plus en plus gourmandes. Le terme « obsolète » indique que les ressources de l’ordinateur sont significativement en deçà des configurations recommandées par les éditeurs de logiciels et ne permettent plus une utilisation fluide et réactive du système. Un ordinateur obsolète se caractérise typiquement par une lenteur excessive, des temps de réponse très longs, voire des blocages fréquents nécessitant des redémarrages. Plutôt que de remplacer un ordinateur obsolète, ce qui peut représenter un coût important, il est souvent préférable de chercher des solutions pour prolonger sa durée de vie en optimisant l’utilisation de ses ressources limitées. Une approche courante consiste à connecter des périphériques externes pour étendre les capacités de l’ordinateur, par exemple en ajoutant de la mémoire vive ou un disque dur supplémentaire. Cependant, ces extensions restent tributaires des limites intrinsèques de l’ordinateur hôte, notamment en termes de puissance de calcul et de débit des bus de communication. Une autre possibilité est d’utiliser un système d’exploitation et des applications moins gourmands en ressources, spécifiquement conçus pour des configurations matérielles modestes. Le terme « système d’exploitation » désigne le logiciel central d’un ordinateur qui sert d’interface entre le matériel et les applications, en permettant une utilisation coordonnée et optimisée des différentes ressources. Des systèmes d’exploitation portables, capables de s’exécuter depuis un support amovible sans installation sur l’ordinateur hôte, sont apparus pour répondre à ce besoin. Cependant, leurs performances restent limitées par les ressources disponibles sur l’ordinateur hôte. Ainsi, les solutions existantes pour optimiser un ordinateur obsolète présentent des limites et des inconvénients. Elles ne permettent pas de tirer pleinement parti des ressources additionnelles fournies par les périphériques externes, qui restent bridées par les capacités de l’ordinateur hôte. De plus, l’exécution d’un système d’exploitation portable depuis un support de stockage classique ne procure pas de gain substantiel de performances, la majeure partie des traitements restant à la charge du processeur hôte. L’invention vise à résoudre, au moins partiellement, ce besoin. L’invention vise un dispositif de stockage de masse spécifiquement conçu pour être connecté à un ordinateur hôte ayant des ressources, les ressources comprenant au moins un processeur et au moins une première mémoire vive, dite RAM, le dispositif de stockage de masse comprenant, - un boîtier, - un connecteur conçu pour connecter le dispositif de stockage de masse à l’ordinateur hôte, - une mémoire non-volatile intégrée dans le boîtier, la mémoire non-volatile étant accessible, via le connecteur, par le processeur de l’ordinateur hôte, - un système d’exploitation installé sur la mémoire non-volatile, le système d’exploitation étant conçu pour utiliser et partager tout ou partie des ressources de l’ordinateur hôte et du dispositif de stockage de masse, - au moins un co-processeur qui est intégré dans le boîtier et couplé à la mémoire non-volatile, le co-processeur étant conçu pour exécuter des tâches de calcul en parallèle de celles exécutées par le processeur de l’ordinateur hôte, de manière à réduire la charge de travail du processeur de l’ordinateur hôte, - un protocole de communication spécifiquement conçu pour, ▪ être mis en œuvre par le co-processeur et le processeur de l’ordinateur hôte, et ▪ effectuer, via le connecteur, des échanges de données entre le co-processeur et le processeur de l’ordinateur hôte, les échanges de données, dites données échangées, comprenant des instructions, des données d’entrée/sortie, des tâches de calcul à exécuter et/ou des résultats de tâches de calcul, et - un module d’intelligence artificielle intégré dans le boîtier et couplé à la mémoire non-volatile, le module d’intelligence artificielle étant conçu pour : ▪ être exécuté par le co-processeur, ▪ recevoir en continu des données sur l’utilisation des ressources de l’ordinateur hôte, dites données d’utilisation, ▪ déterminer, à partir des données d’utilisation, au moins un paramètre caractéristique de l’utilisation des ressources de l’ordinateur hôte, ▪ détecter, à partir du paramètre caractéristique, un ou plusieurs profils d’utilisation des ressources par l’ordinateur hôte à un instant donné, chaque profil étant représentatif d’une ou plusieurs activités spécifiques de l’utilisateur du système d’exploitation, ▪ prédire, à partir des profils d’utilisation détectés et des activités utilisateur associées, une répartition des données échangées entre le co-processeur et le processeur de l’ordinateur hôte, qui est représentative du maintien de l’utilisation du processeur de l’ordinateur hôte en dessous d’un premier seuil prédéterminé, dans lequel, - le co-processeur est en outre conçu pour mettre en œuvre de manière dynamique et en temps réel, en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle à chaque instant, la répartition des données échangées entre lui-même et le processeur de l’ordinateur hôte, prédite par le module d’intelligence artificielle. Dans un premier mode de réalisation, le dispositif de stockage de masse comprend, en outre, - un module logiciel de virtualisation de mémoire vive installé sur la mémoire non-volatile, le module logiciel de virtualisation de mémoire vive étant conçu pour, ▪ être exécuté par le co-processeur, ▪ permettre au processeur de l’ordinateur hôte d’utiliser une partie de la mémoire non-volatile comme mémoire d’extension pour l’ordinateur hôte ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte, et ▪ gérer les transferts bidirectionnels de données entre la RAM de l’ordinateur hôte et la mémoire non-volatile utilisée comme mémoire d’extension pour l’ordinateur hôte ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte, dans lequel, - le module d’intelligence artificielle est en outre conçu pour prédire, à partir des profils d’utilisation détectés et des activités utilisateur associées, une allocation optimale de la mémoire non-volatile utilisée comme mémoire d’extension pour l’ordinateur hôte ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte, qui est représentative du maintien de la quantité de RAM disponible sur l’ordinateur hôte au-dessus d’un deuxième seuil prédéterminé, et - le co-processeur est en outre conçu pour mettre en œuvre de manière dynamique et en temps réel, en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle à chaque instant, l’allocation optimale de la mémoire non-volatile utilisée comme mémoire d’extension pour l’ordinateur hôte ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte, prédite par le module d’intelligence artificielle. Dans un deuxième mode de réalisation, le dispositif de stockage de masse comprend, en outre, une deuxième mémoire vive, et dans lequel, - le module d’intelligence artificielle est en outre conçu pour prédire, à partir des profils d’utilisation détectés et des activités utilisateur associées, une allocation optimale de la mémoire vive, qui est représentative du maintien de la quantité de RAM disponible sur l’ordinateur hôte au-dessus d’un troisième seuil prédéterminé, et - le co-processeur est en outre conçu pour mettre en œuvre de manière dynamique et en temps réel, en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle à chaque instant, l’allocation optimale de la mémoire vive, prédite par le module d’intelligence artificielle. Dans un troisième mode de réalisation, le module d’intelligence artificielle comprend un ensemble de modèles d’apprentissage automatique prédictifs spécialisés, chaque modèle étant dédié à un type spécifique d’activité de l’utilisateur, et étant entraîné de manière ciblée sur les données d’utilisation des ressources collectées et étiquetées lors des sessions correspondant à cette activité particulière. Dans un quatrième mode de réalisation, le module d’intelligence artificielle est en outre conçu pour, - recevoir les données d’utilisation des ressources de l’ordinateur hôte à une fréquence d’échantillonnage initiale prédéterminée par défaut, et - ajuster dynamiquement la fréquence d’échantillonnage vers une valeur plus élevée ou plus basse en fonction de tout ou partie des profils d’utilisation détectés de manière à optimiser la précision des prédictions du module d’intelligence artificielle tout en minimisant la charge sur les ressources de l’ordinateur hôte. Dans un cinquième mode de réalisation le module d’intelligence artificielle est en outre conçu pour utiliser au moins une technique d’apprentissage par renforcement basée sur un système de récompenses/pénalités pour optimiser la prédiction la politique de répartition des données échangées et d’allocation optimale de mémoire, en ajustant de manière itérative les prédictions afin de maximiser les récompenses basées sur le maintien de l’utilisation du processeur de l’ordinateur hôte et/ou de la mémoire non-volatile utilisée comme mémoire d’extension pour l’ordinateur hôte ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte, dans les limites de seuils prédéterminés souhaitables. Dans un cinquième mode de réalisation, le module d’intelligence artificielle est en outre conçu pour utiliser au moins modèle d’arbre de décision entraîné pour classifier les profils d’utilisation des ressources détectés, chaque profil étant associé à des recommandations spécifiques en termes de politique optimale de répartition des données échangées et d’allocation optimale de mémoire non-volatile utilisée comme mémoire d’extension pour l’ordinateur hôte ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte, les recommandations étant déterminées par les règles de décision de l’arbre en fonction des caractéristiques du profil d’utilisation. D’autres caractéristiques et avantages de l’invention seront mieux compris à la lecture de la description qui va suivre et en référence aux dessins annexés, donnés à titre illustratif et nullement limitatif. FIG. 1 La FIG. 1 représente schématiquement un système informatique qui comprend le dispositif de stockage de masse selon l’invention. Les figures ne respectent pas nécessairement les échelles, notamment en épaisseur, et ce à des fins d’illustration. Problème résolu par l’invention Le problème technique auquel s’attaque l’invention est de fournir un dispositif de stockage de masse qui permette d’améliorer significativement les performances d’un ordinateur hôte obsolète, peu puissant et/ou trop lent, en répartissant efficacement la charge de travail entre les ressources de l’ordinateur hôte et celles du dispositif de stockage de masse. Plus précisément, l’invention vise à permettre l’exécution optimale d’un système d’exploitation moderne et d’applications gourmandes en ressources sur un ordinateur hôte aux capacités limitées, en tirant le meilleur parti des ressources propres au dispositif de stockage de masse. Il s’agit notamment de décharger au maximum le processeur de l’ordinateur hôte des tâches de calcul intensives en les déportant vers un co-processeur intégré au dispositif de stockage de masse, tout en gérant de manière intelligente la répartition des traitements et la communication entre l’ordinateur hôte et le dispositif de stockage de masse. L’invention a aussi pour but de s’adapter automatiquement au profil d’utilisation de l’ordinateur hôte à chaque instant, en analysant en continu la consommation des différentes ressources et en prédisant la répartition optimale de la charge de travail pour maintenir des performances élevées, afin d’offrir en permanence à l’utilisateur une expérience fluide et réactive malgré les limitations de l’ordinateur hôte. Enfin, l’invention cherche à apporter une solution à la fois simple à mettre en œuvre, économique et transparente pour l’utilisateur, en s’intégrant de façon naturelle et automatique à l’environnement informatique existant, sans nécessiter de modification matérielle ou logicielle de l’ordinateur hôte. Solution de l’invention et effet technique Pour résoudre les problèmes susmentionnés, et comme illustré sur la FIG. 1 , l’invention propose un dispositif de stockage de masse 100 qui est spécifiquement conçu pour être connecté à un ordinateur hôte 200 ayant des ressources limitées, comprenant notamment un processeur 210. Le dispositif de stockage de masse 100 selon l’invention comporte un boîtier 110, un connecteur 120 conçu pour le relier à l’ordinateur hôte 200, ainsi qu’une mémoire non-volatile 130 intégrée dans le boîtier 110 et accessible par le processeur 210 de l’ordinateur hôte 200 via le connecteur 120. Un système d’exploitation est installé sur la mémoire non-volatile 130 du dispositif de stockage de masse 100. Ce système d’exploitation est spécifiquement conçu pour utiliser et partager de manière optimale les ressources de l’ordinateur hôte 200 et celles du dispositif de stockage de masse 100, afin de tirer le meilleur parti de leur combinaison. Le dispositif de stockage de masse 100 intègre également dans son boîtier 110 au moins un co-processeur 140 couplé à la mémoire non-volatile 130. Le co-processeur 140 du dispositif de stockage de masse 100 est spécifiquement conçu pour prendre en charge les tâches de calcul les plus lourdes, afin de réduire au maximum la charge de travail du processeur 210 de l’ordinateur hôte 200. Pour permettre une collaboration efficace entre le co-processeur 140 du dispositif de stockage de masse 100 et le processeur 210 de l’ordinateur hôte 200, l’invention prévoit un protocole de communication spécifique qui est implémenté par les deux processeurs 140, 210. Le protocole de communication mis en œuvre dans le cadre de l’invention permet des échanges de données à haut débit entre le co-processeur 140 du dispositif de stockage de masse 100 et le processeur 210 de l’ordinateur hôte 200, via le connecteur 120. Les données échangées selon ce protocole peuvent notamment comprendre des instructions, des données d’entrée/sortie, des tâches de calcul à exécuter et/ou des résultats de tâches de calcul. Enfin, le dispositif de stockage de masse 100 comporte un module d’intelligence artificielle 150 intégré dans le boîtier 110, couplé à la mémoire non-volatile 130 et conçu pour être exécuté par son co-processeur 140. Le module d’intelligence artificielle 150 a pour rôle de superviser en continu l’utilisation des ressources de l’ordinateur hôte 200 et d’en déduire à chaque instant le meilleur partage des tâches entre le processeur 210 de l’ordinateur hôte et le co-processeur 140 du dispositif de stockage de masse 100. Pour cela, il reçoit en permanence des données sur l’état des ressources de l’ordinateur hôte 200, détermine des paramètres caractéristiques de leur utilisation, puis détecte des profils d’utilisation représentatifs des activités en cours. À partir de ces profils d’utilisation et des activités associées, le module d’intelligence artificielle 150 est capable de prédire la répartition optimale de la charge de travail entre le co-processeur 140 du dispositif de stockage de masse 100 et le processeur 210 de l’ordinateur hôte 200 pour maintenir l’utilisation de ce dernier en dessous d’un seuil critique. Sur la base de cette prédiction, le co-processeur 140 du dispositif de stockage de masse 100 ajuste dynamiquement et en temps réel le protocole de communication, de manière à mettre en œuvre à chaque instant la répartition optimale des tâches et des données avec le processeur 210 de l’ordinateur hôte 200. Ainsi, le dispositif de stockage de masse 100 s’adapte de manière autonome et permanente au profil d’utilisation courant de l’ordinateur hôte 200, afin de fournir en continu un niveau de performances élevé malgré les limitations des ressources de l’ordinateur hôte 200. Présentation détaillée des éléments de l’invention Le boîtier 110 Le boîtier 110 renferme différents composants internes de l’invention, notamment la mémoire non-volatile 130 et le co-processeur 140. Le terme « boîtier 110 » désigne ici l’enveloppe externe rigide du dispositif de stockage de masse 100, réalisée dans un matériau suffisamment robuste pour assurer la protection mécanique des composants, comme un plastique dur ou un alliage métallique léger. Dans un exemple, le boîtier 110 présente une forme allongée classique de type « clé USB », avec un connecteur 120 dépassant à une extrémité pour permettre la connexion à un ordinateur hôte 200. Ses dimensions sont compatibles avec une prise en main aisée et un transport facile dans une poche. Le boîtier 110 comporte des ouvertures de ventilation pour favoriser le refroidissement des composants internes. Il peut aussi intégrer un ou plusieurs voyants lumineux renseignant sur l’état de fonctionnement du dispositif de stockage de masse 100 (mise sous tension, accès mémoire, etc.). Le boîtier 110 assure une fonction de blindage électromagnétique pour éviter que les champs rayonnés par les circuits internes ne perturbent les équipements environnants. Il peut être métallisé ou comporter un revêtement conducteur à cet effet. Enfin, le boîtier 110 peut comporter des éléments de fixation, comme un anneau ou un mousqueton, pour attacher le dispositif de stockage de masse 100 à un porte-clés ou à un autre objet. Le connecteur 120 Le connecteur 120 est conçu pour relier physiquement et électriquement le dispositif de stockage de masse 100 à un ordinateur hôte 200. Le terme « connecteur 120 » fait référence à un composant d’interface normalisée comportant des contacts électriques, comme un connecteur 120 USB, permettant la transmission de signaux et d’alimentations électriques entre le dispositif de stockage de masse 100 et l’ordinateur hôte 200. Le connecteur 120 est fixé de manière rigide au boîtier 110 du dispositif de stockage de masse 100, par exemple, à une extrémité de celui-ci dans le prolongement de sa plus grande dimension. Il dépasse suffisamment du boîtier 110 pour pouvoir être enfiché aisément dans un port de connexion correspondant sur l’ordinateur hôte 200. Le type de connecteur 120 est choisi pour être compatible avec les ports les plus répandus sur les ordinateurs, comme l’USB, le Thunderbolt ou le FireWire. Dans un mode de réalisation préféré, le connecteur 120 est de type USB 3.x afin de permettre des débits de communication élevés. Le connecteur 120 comporte des contacts électriques permettant la transmission directionnelle et/ou bidirectionnelle de signaux électriques entre le dispositif de stockage de masse 100 et l’ordinateur hôte 200. Ces signaux électriques peuvent notamment véhiculer des données, des commandes, des informations d’état, des interruptions ou encore des signaux d’horloge, selon les besoins des protocoles de communication mis en œuvre. La mémoire non-volatile 130 La mémoire non-volatile 130 est intégrée dans le boîtier 110. Le terme « mémoire non-volatile 130 » désigne un type de mémoire informatique qui conserve les données de manière persistante même en l’absence d’alimentation électrique. Cette mémoire non-volatile 130 est également réinscriptible, qu’elle possède les caractéristiques d’une mémoire vive permettant la modification des données, tout en assurant leur conservation lorsque l’alimentation est coupée. À titre d’exemple, le terme « mémoire non-volatile 130 » peut désigner une mémoire flash de type NAND, une mémoire à changement de phase (PCM), une mémoire magnétorésistive (MRAM), ou encore un disque dur électronique (SSD). La mémoire non-volatile 130 est accessible par le processeur 210 de l’ordinateur hôte 200 via le connecteur 120. Cela signifie que le processeur 210 de l’ordinateur hôte 200 peut lire et écrire des données dans la mémoire non-volatile 130 du dispositif de stockage de masse 100, en utilisant des commandes et un protocole de communication appropriés transmis à travers le connecteur 120. La mémoire non-volatile 130 sert à stocker de manière permanente les données et programmes nécessaires au fonctionnement du dispositif de stockage de masse 100, notamment le système d’exploitation et le module d’intelligence artificielle 150. Elle offre une capacité de stockage importante, de l’ordre de plusieurs gigaoctets, voire quelques téraoctets, permettant d’héberger une grande quantité de données utilisateur. Le système d’exploitation Le système d’exploitation est installé sur la mémoire non-volatile 130 du dispositif de stockage de masse 100. Le terme « système d’exploitation » désigne le logiciel principal d’un ordinateur, qui a pour rôle de gérer les ressources matérielles et logicielles de la machine, de fournir une interface entre ces ressources et les applications, et d’offrir un ensemble de services facilitant l’utilisation de l’ordinateur. À titre d’exemple, le terme « système d’exploitation » peut désigner des systèmes tels que Microsoft Windows, Apple macOS, Linux, Google Android ou encore Google Chrome OS. Le système d’exploitation installé sur le dispositif de stockage de masse 100 est spécifiquement conçu pour utiliser et partager tout ou partie des ressources de l’ordinateur hôte 200 et du dispositif de stockage de masse 100 lui-même. Cela signifie qu’il est capable de tirer parti à la fois des ressources propres au dispositif de stockage de masse 100, comme son co-processeur 140 et sa mémoire non-volatile 130, et des ressources de l’ordinateur hôte 200 auquel le dispositif de stockage de masse 100 est connecté, comme son processeur 210, sa mémoire vive 220 et ses périphériques d’entrée/sortie. Cette capacité à utiliser et partager les ressources est rendue possible par l’architecture logicielle du système d’exploitation, qui comprend des pilotes et des interfaces de programmation (API) adaptés pour accéder aux différents composants matériels et logiciels de l’ordinateur hôte 200 et du dispositif de stockage de masse 100. Le système d’exploitation peut ainsi allouer dynamiquement les tâches et les données aux ressources les plus appropriées disponibles, que ce soit sur l’ordinateur hôte 200 ou sur le dispositif de stockage de masse 100. Le partage des ressources vise à optimiser les performances globales du système, en répartissant la charge de travail de manière à utiliser au mieux les capacités de chaque élément. Par exemple, le système d’exploitation peut décider d’exécuter les tâches nécessitant beaucoup de mémoire sur l’ordinateur hôte 200 s’il dispose de plus de mémoire vive 220 que le dispositif de stockage de masse 100, tout en déchargeant le processeur 210 de l’ordinateur hôte des calculs intensifs en les délégant au co-processeur 140 du dispositif de stockage de masse 100. En pratique, le système d’exploitation se comporte comme s’il disposait d’un super-ordinateur virtuel combinant les capacités de l’ordinateur hôte 200 et du dispositif de stockage de masse 100. Il voit l’ensemble des ressources disponibles comme un tout cohérent qu’il peut gérer de façon globale et unifiée, en répartissant la charge de travail au mieux à chaque instant. Le co-processeur 140 Le co-processeur 140 est intégré dans le boîtier 110 et couplé à la mémoire non-volatile 130. Le terme « co-processeur 140 » fait référence à un processeur secondaire spécialisé qui assiste le processeur (dans ce cas celui de l’ordinateur hôte 200) en prenant en charge une partie des traitements informatiques. À titre d’exemple, le terme « co-processeur 140 » peut désigner un processeur graphique (GPU), un processeur de signal numérique (DSP), un circuit logique programmable (FPGA), un circuit intégré spécifique à une application (ASIC), mais aussi une unité de calcul en virgule flottante spécialisée dans les opérations arithmétiques complexes, un coprocesseur de chiffrement dédié à la cryptographie, un coprocesseur réseau optimisant le traitement des données, un coprocesseur gérant les entrées/sorties avec les périphériques, un coprocesseur accélérant les opérations sur les chaînes de caractères, un coprocesseur vectoriel améliorant les calculs haute performance, un coprocesseur de transfert direct en mémoire (DMA) ou encore une unité de traitement tensoriel (TPU) conçue pour l’intelligence artificielle. Le co-processeur 140 est spécifiquement conçu pour exécuter des tâches de calcul en parallèle de celles exécutées par le processeur 210 de l’ordinateur hôte 200, de manière à réduire la charge de travail de ce dernier. Autrement dit, le co-processeur 140 permet de décharger le processeur 210 de l’ordinateur hôte des traitements les plus lourds et les plus consommateurs en ressources, en les prenant en charge de manière autonome et simultanée. Cette parallélisation des tâches de calcul vise à optimiser les performances globales du système, en tirant parti de la puissance de traitement supplémentaire apportée par le co-processeur 140. Elle permet d’accélérer l’exécution des applications et des services utilisés sur l’ordinateur hôte 200, sans pour autant solliciter davantage son processeur 210. Le co-processeur 140 agit ainsi comme un accélérateur matériel dédié, capable de traiter rapidement des volumes importants de données ou d’effectuer des opérations complexes. Le co-processeur 140 est de préférence un processeur multicœur haute performance, doté d’une architecture parallèle et d’une large bande passante mémoire. Il peut s’agir par exemple d’un GPU de type NVIDIA CUDA ou AMD Radeon, comportant plusieurs milliers de cœurs de calcul cadencés à des fréquences de l’ordre du gigahertz, mais également de GPU Exynos intégrant l’architecture AMD RDNA, de processeurs Moore threads offrant des capacités d’accélération computationnelle pour diverses applications telles que l’intelligence artificielle et le rendu graphique 3D, de GPU Intel Graphics couramment utilisés dans les ordinateurs portables et de bureau, de GPU ARM Mali et Adreno présents dans les smartphones et tablettes, ainsi que d’unités de traitement neuronal (NPU) spécialisées dans les tâches d’apprentissage automatique et de traitement du langage naturel. Le co-processeur 140 dispose de sa propre mémoire vive 160dédiée, distincte de celle de l’ordinateur hôte 200 et de la mémoire non-volatile 130 du dispositif de stockage de masse 100. Cette mémoire sert à stocker les données et les programmes nécessaires à l’exécution des tâches de calcul parallèles. Le co-processeur 140 est couplé à la mémoire non-volatile 130 du dispositif de stockage de masse 100, par exemple, par un bus de communication interne à haute vitesse, de type PCI Express ou NVLink, mais également par d’autres interfaces telles que l’USB (Universal Serial Bus), couramment utilisé pour la communication interne dans les systèmes embarqués, le SATA (Serial ATA), dédié à la connexion de disques durs, SSD et autres dispositifs de stockage de masse, ainsi que les bus SPI (Serial Peripheral Interface) et I2C (Inter-Integrated Circuit), employés pour la communication entre composants électroniques au sein d’un même appareil, notamment dans les systèmes embarqués et les microcontrôleurs. Ce bus permet des transferts rapides de données entre le co-processeur 140 et la mémoire non-volatile 130, avec une bande passante de plusieurs dizaines de gigaoctets par seconde. Le co-processeur 140 peut ainsi accéder efficacement aux données et aux programmes stockés dans la mémoire non-volatile 130, sans passer par le processeur 210 de l’ordinateur hôte 200. Le protocole de communication Le protocole de communication permet au co-processeur 140 de communiquer et d’échanger des données avec le processeur 210 de l’ordinateur hôte 200. Le terme « protocole de communication » désigne un ensemble de règles, de formats de données et de procédures permettant à plusieurs entités d’un système informatique de dialoguer et de se transmettre des informations de manière cohérente et organisée. À titre d’exemple, le terme « protocole de communication » peut désigner des protocoles tels que TCP/IP, USB, PCI Express, SATA ou encore NVMe. En pratique, le protocole de communication est spécifiquement conçu pour être mis en œuvre par le co-processeur 140 du dispositif de stockage de masse 100 et le processeur 210 de l’ordinateur hôte 200. Cela signifie qu’il définit les modalités précises selon lesquelles ces deux processeurs 140, 210 peuvent interagir et s’échanger des données, en tenant compte de leurs caractéristiques matérielles et logicielles respectives. Le protocole de communication permet d’effectuer, via le connecteur 120, des échanges de données entre le co-processeur 140 et le processeur 210 de l’ordinateur hôte 200. Ces échanges de données, appelées « données échangées », peuvent être de différentes natures et répondre à différents besoins fonctionnels. Les données échangées selon le protocole de communication peuvent notamment comprendre des instructions à exécuter par le co-processeur 140 du dispositif de stockage de masse 100 ou par le processeur 210 de l’ordinateur hôte 200. Le terme « instructions » désigne ici des séquences d’instructions de code machine ou de bytecode interprétables par un processeur, permettant de réaliser des traitements informatiques spécifiques. À titre d’exemple, le terme « instructions » peut désigner des instructions de calcul numérique, des instructions de traitement de données multimédias, des instructions de rendu graphique ou encore des instructions d’exécution de tâches système. Les données échangées peuvent également inclure des données d’entrée/sortie, c’est-à-dire des données devant être traitées ou ayant été produites par l’exécution d’instructions sur l’un ou l’autre des processeurs 140, 210. Le terme « données d’entrée/sortie » fait référence à toute information numérique, structurée ou non, représentant par exemple du texte, des nombres, des images, des sons, des vidéos ou d’autres types de contenus multimédias. À titre d’exemple, le terme « données d’entrée/sortie » peut désigner des fichiers, des flux de données réseau, des trames vidéo ou audio, des données de capteurs ou encore des interfaces graphiques. De plus, les données échangées peuvent inclure des tâches de calcul à exécuter, c’est-à-dire des ensembles d’instructions et de données devant être traités par l’un ou l’autre des processeurs 140, 210. Le terme « tâches de calcul » désigne des unités de travail informatique indépendantes, pouvant être exécutées de manière parallèle ou concurrente sur un ou plusieurs processeurs 140, 210. À titre d’exemple, le terme « tâches de calcul » peut désigner des tâches de rendu 3D, des tâches d’encodage/décodage vidéo, des tâches d’apprentissage machine ou encore des tâches de simulation physique. Enfin, les données échangées peuvent comprendre des résultats de tâches de calcul, c’est-à-dire les données produites par l’exécution d’une tâche de calcul sur l’un des processeurs 140, 210. Le terme « résultats de tâches de calcul » fait référence aux sorties générées par un traitement informatique, qui peuvent ensuite être utilisées comme entrées pour d’autres traitements ou restituées à l’utilisateur final. À titre d’exemple, le terme « résultats de tâches de calcul » peut désigner des images ou vidéos rendues, des modèles entraînés, des simulations calculées ou encore des statistiques. Le module d’intelligence artificielle 150 Le module d’intelligence artificielle 150 est intégré dans le boîtier 110 et couplé à la mémoire non-volatile 130. Le terme « module d’intelligence artificielle 150 » désigne un ensemble de composants matériels et/ou logiciels mettant en œuvre des techniques d’intelligence artificielle, telles que l’apprentissage automatique, le raisonnement automatique ou encore le traitement du langage naturel. À titre d’exemple, le terme « module d’intelligence artificielle 150 » peut prendre la forme d’un programme informatique, d’une bibliothèque logicielle, d’une API ou encore d’un service cloud, qui met en œuvre un ou plusieurs modèles d’apprentissage automatique pré-entraînés tels que des réseaux de neurones artificiels, des systèmes experts, des moteurs d’inférence ou encore des agents conversationnels. Le module d’intelligence artificielle 150 du dispositif de stockage de masse 100 est spécifiquement conçu pour être exécuté par le co-processeur 140. Cela signifie que le co-processeur 140 fournit la puissance de calcul nécessaire au fonctionnement du module d’intelligence artificielle 150 et à l’exécution de ses algorithmes complexes. Le module d’intelligence artificielle 150 peut ainsi bénéficier des capacités de traitement massivement parallèle du co-processeur 140, typiquement un processeur graphique ou un accélérateur de calcul dédié. Dans le cadre de son exécution par le co-processeur 140, le module d’intelligence artificielle 150 reçoit en continu des données sur l’utilisation des ressources de l’ordinateur hôte 200, dites données d’utilisation. Le terme « données d’utilisation » fait référence à toute information quantitative ou qualitative reflétant l’état d’utilisation des différentes ressources matérielles et logicielles de l’ordinateur hôte 200 à un instant donné. À titre d’exemple, le terme « données d’utilisation » peut inclure des mesures de charge processeur, d’occupation mémoire, de bande passante réseau, d’activité disque ou encore de cycles d’horloge. À partir de ces données d’utilisation, le module d’intelligence artificielle 150 détermine au moins un paramètre caractéristique de l’utilisation des ressources de l’ordinateur hôte 200. Le terme « paramètre caractéristique » désigne une grandeur synthétique, calculée à partir des données d’utilisation brutes, qui permet de caractériser et de quantifier un aspect particulier de la consommation des ressources par l’ordinateur hôte 200. À titre d’exemple, le terme « paramètre caractéristique » peut désigner un taux d’utilisation processeur, une empreinte mémoire, un débit d’entrées/sorties ou encore une métrique de performance composite. Le module d’intelligence artificielle 150 utilise ensuite le ou les paramètres caractéristiques pour détecter un ou plusieurs profils d’utilisation des ressources par l’ordinateur hôte 200 à un instant donné. Le terme « profil d’utilisation » fait référence à une signature particulière de consommation des ressources, représentative d’une ou plusieurs activités spécifiques de l’utilisateur du système d’exploitation exécuté sur l’ordinateur hôte 200. À titre d’exemple, le terme « profil d’utilisation » peut correspondre à des activités telles que la navigation web, le traitement de texte, l’édition vidéo, les jeux vidéo ou encore l’exécution d’une application métier particulière. Chaque profil d’utilisation détecté est ainsi associé à une ou plusieurs activités utilisateur spécifiques en cours d’exécution sur le système d’exploitation. Le module d’intelligence artificielle 150 est capable d’identifier ces activités à partir des profils de consommation des ressources, grâce à ses capacités d’analyse et de reconnaissance de motifs apprises par apprentissage machine. À partir des profils d’utilisation détectés et des activités utilisateur associées, le module d’intelligence artificielle 150 prédit une répartition des données échangées entre le co-processeur 140 et le processeur 210 de l’ordinateur hôte 200. Cette répartition prédite vise à maintenir l’utilisation du processeur 210 de l’ordinateur hôte 200 en dessous d’un premier seuil prédéterminé. Le terme « premier seuil prédéterminé » désigne un niveau maximal d’utilisation du processeur 210 de l’ordinateur hôte 200, défini par avance, au-delà duquel les performances du système se dégraderaient de manière inacceptable pour l’utilisateur. À titre d’exemple, le terme « premier seuil prédéterminé » peut désigner un taux d’utilisation processeur de 90 %, une charge moyenne sur 5 minutes supérieure à 80 %, ou encore un temps de réponse moyen des applications supérieur à 2 secondes. Par ailleurs, le co-processeur 140 est conçu, en outre, pour mettre en œuvre de manière dynamique et en temps réel la répartition des données échangées entre lui-même et le processeur 210 de l’ordinateur hôte 200, telle que prédite par le module d’intelligence artificielle 150. Le terme « mettre en œuvre de manière dynamique et en temps réel » signifie que le co-processeur 140 ajuste continuellement et instantanément le protocole de communication avec le processeur 210 de l’ordinateur hôte 200, afin de répartir les données échangées conformément à la prédiction du module d’intelligence artificielle 150. Cette mise en œuvre dynamique et en temps réel de la répartition des données échangées s’effectue en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle 150 à chaque instant. Cela signifie que le co-processeur 140 adapte en permanence le protocole de communication pour refléter la répartition optimale prédite par le module d’intelligence artificielle 150, en se basant sur les profils d’utilisation courants identifiés par ce dernier. Ainsi, le dispositif de stockage de masse 100 selon l’invention est capable de s’ajuster automatiquement et de manière continue aux conditions d’utilisation réelles de l’ordinateur hôte 200, en répartissant de façon optimale la charge de travail entre le co-processeur 140 et le processeur 210 de l’ordinateur hôte 200. Cette répartition dynamique vise à maintenir en permanence l’utilisation du processeur 210 de l’ordinateur hôte 200 en deçà du premier seuil prédéterminé, afin de préserver des performances élevées malgré les limitations des ressources de l’ordinateur hôte 200. En pratique, le co-processeur 140 peut par exemple décider de prendre en charge la majorité des calculs liés au rendu 3D d’une application de modélisation si le module d’intelligence artificielle 150 détecte ce type d’activité gourmande en ressources. Mais si l’utilisateur passe à une tâche de bureautique plus légère, le module d’intelligence artificielle 150 l’identifiera et le co-processeur 140 réduira alors sa charge pour laisser le processeur 210 de l’ordinateur hôte 200 gérer l’essentiel des traitements. Le dispositif de stockage de masse 100 s’adapte ainsi en continu aux besoins réels, en transférant dynamiquement la charge de travail d’un processeur à l’autre pour maintenir des performances élevées, quelles que soient les activités de l’utilisateur. Ce transfert de charge s’effectue de manière transparente, sans nécessiter d’intervention humaine. Par ailleurs, le dispositif de stockage de masse 100 selon l’invention est capable de prendre en compte non seulement le type d’activités en cours, mais aussi leur niveau d’intensité et les éventuelles variations dans le temps. Ainsi, le module d’intelligence artificielle 150 peut détecter si une application particulièrement gourmande en ressources est lancée ou arrêtée, et prédire en conséquence les ajustements nécessaires dans la répartition des données échangées. Le co-processeur 140 met alors immédiatement en œuvre ces ajustements via le protocole de communication avec le processeur 210 de l’ordinateur hôte 200. Il peut par exemple décider de déléguer la totalité d’une tâche de calcul intensive au co-processeur 140 dès son lancement, puis de la répartir de nouveau sur les deux processeurs 140, 210 lorsque son intensité diminue. De même, le module d’intelligence artificielle 150 est capable de détecter des situations où plusieurs activités consommatrices en ressources sont menées simultanément par l’utilisateur. Il prédit alors une répartition permettant de répartir équitablement la charge sur le co-processeur 140 et le processeur 210 de l’ordinateur hôte 200, en fonction des priorités et des besoins respectifs de chaque tâche. Ainsi, le dispositif de stockage de masse 100 optimise en permanence l’utilisation des ressources disponibles, en s’adaptant de manière proactive et intelligente au contexte réel d’utilisation à chaque instant. Il garantit des performances maximales, quelles que soient les conditions, tout en préservant la réactivité de l’ordinateur hôte 200 grâce au respect du premier seuil prédéterminé d’utilisation de son processeur 210. Le fonctionnement de l’invention Le dispositif de stockage de masse 100 selon l’invention fonctionne de la manière suivante pour optimiser les performances de l’ordinateur hôte 200 auquel il est connecté, tout en préservant la réactivité de ce dernier. Dans un premier temps, le module d’intelligence artificielle 150 installé sur la mémoire non-volatile 130 du dispositif de stockage de masse 100 reçoit en continu, via le système d’exploitation, des données d’utilisation reflétant l’état des ressources de l’ordinateur hôte 200. À partir de ces données d’utilisation brutes, le module d’intelligence artificielle 150 calcule au moins un paramètre caractéristique synthétisant un aspect particulier de la consommation des ressources par l’ordinateur hôte 200. Le module d’intelligence artificielle 150 analyse ensuite ce ou ces paramètres caractéristiques pour en déduire le ou les profils d’utilisation des ressources de l’ordinateur hôte 200 à l’instant considéré. Sur la base des profils d’utilisation identifiés et des activités utilisateur associées, le module d’intelligence artificielle 150 prédit alors la répartition optimale des données échangées entre le co-processeur 140 du dispositif de stockage de masse 100 et le processeur 210 de l’ordinateur hôte 200. Le co-processeur 140 du dispositif de stockage de masse 100 met alors immédiatement en œuvre, de manière dynamique et en temps réel, la répartition des données échangées prédite par le module d’intelligence artificielle 150. Pour cela, il ajuste en continu le protocole de communication avec le processeur 210 de l’ordinateur hôte 200, en fonction des profils d’utilisation détectés à chaque instant par le module d’intelligence artificielle 150. Avantages et applications industrielles Le dispositif de stockage de masse 100 selon l’invention présente de nombreux avantages par rapport aux solutions existantes pour optimiser les performances d’un ordinateur obsolète ou limité en ressources. Tout d’abord, il permet de bénéficier de ressources de calcul supplémentaires externes à l’ordinateur hôte 200, sous la forme du co-processeur 140 intégré au dispositif de stockage de masse 100. Cette extension de la puissance de traitement disponible offre des gains substantiels en termes de performances pour l’exécution d’applications gourmandes en ressources sur l’ordinateur hôte 200. Ensuite, le dispositif de stockage de masse 100 met en œuvre une gestion intelligente et prédictive du partage de la charge de travail entre ses propres ressources et celles de l’ordinateur hôte 200. Grâce au module d’intelligence artificielle 150, la répartition des tâches est optimisée en temps réel pour s’adapter au mieux au contexte d’utilisation courant, garantissant ainsi des performances maximales en toutes circonstances. De plus, cette optimisation de la répartition des tâches se fait de manière entièrement transparente et automatique pour l’utilisateur, sans nécessiter aucune intervention ni configuration de sa part. L’utilisateur bénéficie simplement des gains de performances apportés par le dispositif de stockage de masse 100, tout en conservant une expérience utilisateur familière sur son ordinateur hôte 200. Le dispositif de stockage de masse 100 constitue également une solution économique pour prolonger la durée de vie d’un ordinateur obsolète. Son coût d’acquisition reste très inférieur à celui d’un nouvel ordinateur de dernière génération, tout en offrant des performances accrues substantielles. Enfin, le dispositif de stockage de masse 100 est facilement transportable et utilisable sur différents ordinateurs hôtes compatibles. Sa conception de type clé USB et ses dimensions réduites en font un périphérique nomade que l’utilisateur peut emporter partout avec lui pour booster les performances de n’importe quel ordinateur. D’un point de vue industriel, le dispositif de stockage de masse 100 selon l’invention trouve de nombreuses applications dans des secteurs variés nécessitant d’exécuter des applications gourmandes en ressources sur des configurations matérielles limitées ou vieillissantes. Il peut par exemple être utilisé dans le domaine de l’ingénierie et de la conception assistée par ordinateur (CAO), pour permettre l’exécution fluide de logiciels de modélisation 3D complexes sur des stations de travail devenues obsolètes. Le dispositif de stockage de masse 100 présente également un grand intérêt pour le secteur de la recherche scientifique et du calcul haute performance (HPC), en offrant un moyen simple et économique d’augmenter ponctuellement la puissance de calcul disponible sur un parc de serveurs ou de stations de travail existants. Dans le domaine de l’éducation et de la formation, le dispositif de stockage de masse 100 peut permettre à des établissements disposant d’un parc informatique vieillissant de continuer à proposer des enseignements nécessitant des ressources importantes, comme les cours de création numérique, d’infographie ou de développement de jeux vidéo. Enfin, le dispositif de stockage de masse 100 constitue une solution pertinente pour les professionnels indépendants ou les petites entreprises ne disposant pas des budgets nécessaires pour renouveler régulièrement leur parc informatique. Il leur offre la possibilité de conserver leurs anciens ordinateurs tout en bénéficiant de performances accrues pour un coût raisonnable. Premier mode de réalisation Dans un premier mode de réalisation, l’ordinateur hôte 200comprend, en outre, au moins une mémoire vive 220, dite RAM. Le terme « mémoire vive » désigne une mémoire permettant à l’ordinateur hôte 200 de stocker temporairement des données et des instructions lors de l’exécution de programmes. La mémoire vive 220, également appelée « mémoire à accès aléatoire » ou « RAM » (acronyme de « Random Access Memory »), est une mémoire volatile dont le contenu est perdu lorsque l’ordinateur hôte 200 est mis hors tension. Dans une première variante du premier mode de réalisation, le dispositif de stockage de masse 100 comprend également un module logiciel de virtualisation de mémoire vive installé sur la mémoire non-volatile 130. Le terme « module logiciel » fait référence à un ensemble d’instructions et de données permettant d’exécuter une fonction particulière lorsqu’il est exécuté par un processeur. Dans le cas présent, le module logiciel de virtualisation de mémoire vive a pour fonction de permettre l’utilisation d’une partie de la mémoire non-volatile 130 du dispositif de stockage de masse 100 comme mémoire d’extension pour l’ordinateur hôte 200 ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte 200. Le module logiciel de virtualisation de mémoire vive est conçu pour être exécuté par le co-processeur 140 du dispositif de stockage de masse 100. Le module logiciel de virtualisation de mémoire vive est conçu pour permettre au processeur 210 de l’ordinateur hôte 200 d’utiliser une partie de la mémoire non-volatile 130 du dispositif de stockage de masse 100 comme mémoire d’extension pour l’ordinateur hôte 200 ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte 200. En d’autres termes, le module logiciel de virtualisation de mémoire vive crée un espace mémoire virtuel supplémentaire, au-delà de la capacité de la mémoire vive 220 physique (RAM) présente dans l’ordinateur hôte 200, en utilisant une portion de la mémoire non-volatile 130 à grande capacité du dispositif de stockage de masse 100. Cela permet d’étendre virtuellement la quantité de mémoire vive 220 disponible pour l’ordinateur hôte 200. Le module logiciel de virtualisation de mémoire vive est également conçu pour gérer les transferts bidirectionnels de données entre la RAM de l’ordinateur hôte 200 et la mémoire non-volatile 130 utilisée comme mémoire d’extension pour l’ordinateur hôte 200 ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte 200. Le module logiciel de virtualisation de mémoire vive orchestre et contrôle ces mouvements de données dans les deux sens en fonction des besoins, de manière transparente pour le système d’exploitation et les applications s’exécutant sur l’ordinateur hôte 200. Ainsi, lorsque la quantité de mémoire vive 220 physique (RAM) devient insuffisante pour stocker l’ensemble des données et instructions nécessaires aux programmes en cours d’exécution, le module logiciel de virtualisation de mémoire vive de virtualisation copie automatiquement une partie du contenu de la RAM vers la mémoire non-volatile 130 utilisée comme extension, libérant ainsi de l’espace dans la RAM physique. Par ailleurs, le module d’intelligence artificielle 150 du dispositif de stockage de masse 100 est en outre conçu pour prédire, à partir des profils d’utilisation détectés et des activités utilisateur associées, une allocation optimale de la mémoire non-volatile 130 utilisée comme mémoire d’extension pour l’ordinateur hôte 200 ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte 200. Le terme « allocation optimale » désigne ici la quantité idéale d’espace mémoire non-volatile 130 à utiliser comme mémoire virtuelle, de façon à maintenir en permanence la quantité de mémoire vive 220 (RAM) physique disponible dans l’ordinateur hôte 200 au-dessus d’un deuxième seuil prédéterminé. En d’autres termes, le module d’intelligence artificielle 150 analyse en temps réel la façon dont l’utilisateur se sert de l’ordinateur hôte 200 et les applications qu’il utilise. À partir de ces profils d’utilisation et des activités associées, le module d’intelligence artificielle 150 est capable de prévoir les besoins futurs en mémoire vive 220. Il peut ainsi prédire la quantité optimale de mémoire non-volatile 130 à allouer comme mémoire virtuelle supplémentaire pour que la mémoire vive 220 physique ne descende pas en dessous d’un seuil critique. Ce deuxième seuil prédéterminé correspond à une quantité minimale de RAM libre nécessaire pour assurer une utilisation fluide du système, sans ralentissements dus à une saturation de la mémoire vive 220. Le co-processeur 140 du dispositif de stockage de masse 100 est en outre conçu pour mettre en œuvre de manière dynamique et en temps réel, en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle 150 à chaque instant, l’allocation optimale de la mémoire non-volatile 130 utilisée comme mémoire d’extension pour l’ordinateur hôte 200 ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte 200, prédite par le module d’intelligence artificielle 150. Concrètement, le co-processeur 140 reçoit en continu du module d’intelligence artificielle 150 des prédictions sur l’allocation optimale de mémoire virtuelle nécessaire, en fonction de l’utilisation en temps réel de l’ordinateur par l’utilisateur. Le co-processeur 140 ajuste alors dynamiquement la quantité de mémoire non-volatile 130 allouée comme extension de la RAM, en suivant les préconisations du module d’intelligence artificielle 150. Si ce dernier prédit une augmentation des besoins en RAM, le co-processeur 140 accroît en conséquence la taille de la mémoire virtuelle. À l’inverse, si le module d’intelligence artificielle 150 anticipe une baisse de la demande en mémoire vive 220, le co-processeur 140 peut réduire la portion de mémoire non-volatile 130 utilisée comme extension. Ainsi, grâce à la coopération entre le module d’intelligence artificielle 150 qui prédit les besoins en mémoire vive 220 et le co-processeur 140 qui met en œuvre ses recommandations, le dispositif de stockage de masse 100 est capable d’optimiser en permanence et de façon autonome la quantité de mémoire virtuelle en fonction des usages, sans intervention de l’utilisateur. Cela permet de maintenir en permanence des performances élevées en évitant les situations de saturation de la mémoire vive 220, tout en exploitant au mieux la mémoire non-volatile 130 à grande capacité du dispositif de stockage de masse 100. Dans une deuxième variante du premier mode de réalisation, le dispositif de stockage de masse 100 utilise la deuxième mémoire vive 160. En pratique, le module d’intelligence artificielle 150 est en outre conçu pour prédire, à partir des profils d’utilisation détectés et des activités utilisateur associées, une allocation optimale de cette deuxième mémoire vive 160. Cette allocation optimale vise à maintenir en permanence la quantité de mémoire vive 220 (RAM) disponible dans l’ordinateur hôte 200 au-dessus d’un troisième seuil prédéterminé. De manière analogue à la première variante, le co-processeur 140 est en outre conçu pour mettre en œuvre de manière dynamique et en temps réel, en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle 150 à chaque instant, l’allocation optimale de la deuxième mémoire vive 160, telle que prédite par le module d’intelligence artificielle 150. Ainsi, le dispositif de stockage de masse 100 est capable d’optimiser en continu et de façon autonome non seulement l’allocation de la mémoire non-volatile 130 utilisée comme extension de mémoire virtuelle, mais également l’allocation de sa propre deuxième mémoire vive 160, afin de garantir en permanence un niveau de performance optimal de l’ordinateur hôte 200. Il est important de noter que les deux variantes du premier mode de réalisation décrites précédemment peuvent être combinées au sein d’un même dispositif de stockage de masse 100. En d’autres termes, le dispositif de stockage de masse 100 peut à la fois comprendre la deuxième mémoire vive 160 et le module logiciel de virtualisation de mémoire vive installé sur la mémoire non-volatile 130. Dans cette configuration, le module d’intelligence artificielle 150 et le co-processeur 140 travaillent de concert pour optimiser en temps réel l’allocation de la deuxième mémoire vive 160 du dispositif, ainsi que l’allocation de la mémoire non-volatile 130 utilisée comme extension de mémoire virtuelle pour l’ordinateur hôte 200 ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte 200. Cette approche combinée permet une gestion encore plus fine et efficace des ressources mémoire, garantissant ainsi des performances optimales en toutes circonstances pour l’ordinateur hôte 200. Deuxième mode de réalisation Dans un deuxième mode de réalisation, le module d’intelligence artificielle 150 comprend un ensemble de modèles d’apprentissage automatique prédictifs spécialisés. Le terme « ensemble de modèles d’apprentissage automatique prédictifs spécialisés » désigne un groupe de plusieurs modèles d’intelligence artificielle, où chaque modèle est dédié à une tâche prédictive bien précise et est spécifiquement optimisé pour cette tâche. Par exemple, l’ensemble de modèles d’apprentissage automatique prédictifs spécialisés peut inclure un modèle spécialisé dans la prédiction des intentions de recherche de l’utilisateur, un autre modèle spécialisé dans la recommandation personnalisée de contenus, et un autre encore spécialisé dans l’anticipation des besoins de stockage futur. À titre d’exemple, les différents types d’activité de l’utilisateur peuvent comprendre la recherche d’informations, la création de contenus, le partage de fichiers, la sauvegarde de données, la gestion de projets collaboratifs ou encore le divertissement multimédia. Chaque type d’activité implique des besoins, des comportements et des attentes spécifiques de la part de l’utilisateur vis-à-vis du dispositif de stockage de masse 100. Par exemple, pour une activité de recherche d’informations, l’utilisateur s’attendra à des résultats rapides et pertinents, tandis que pour une activité de sauvegarde de données, il souhaitera une sécurité et une fiabilité maximales. En segmentant ainsi les activités de l’utilisateur en différents types bien définis, il devient possible d’associer à chacun un modèle d’apprentissage automatique prédictif spécialisé, capable de répondre de manière optimale aux besoins propres à ce type d’activité. En pratique, l’appartenance d’une activité utilisateur à tel ou tel type prédéfini peut être déterminée automatiquement par le module d’intelligence artificielle 150, par exemple en analysant des indicateurs tels que les applications utilisées, la nature des fichiers manipulés, les habitudes de navigation ou encore les requêtes formulées par l’utilisateur. Chaque modèle d’apprentissage automatique prédictif spécialisé de l’ensemble est entraîné de manière ciblée sur les données d’utilisation des ressources collectées et étiquetées lors des sessions correspondant à cette activité particulière. Contrairement à un entraînement généraliste où le modèle apprendrait de manière indifférenciée sur l’ensemble des données disponibles, l’entraînement ciblé vise à ne fournir à chaque modèle spécialisé que les données les plus à même de lui permettre d’exceller dans son domaine de prédilection. L’ensemble de ces données d’utilisation reflète en détail le comportement de l’utilisateur et fournit donc une base d’apprentissage extrêmement riche pour entraîner les modèles prédictifs de manière pertinente. Les données d’utilisation des ressources sont collectées par le dispositif de stockage de masse 100 lors des sessions d’activité de l’utilisateur. Chaque session est donc associée à un type d’activité particulier (recherche, sauvegarde, divertissement, etc.), et les données d’utilisation collectées pendant cette session sont étiquetées en conséquence, c’est-à-dire qu’elles sont marquées comme étant représentatives de ce type d’activité. Ainsi, pour chaque type d’activité utilisateur, le dispositif de stockage de masse 100 accumule progressivement un ensemble de données d’entraînement dédiées, constituées spécifiquement des données d’utilisation collectées et étiquetées lors des sessions correspondant à cette activité. Ce sont ces données d’entraînement « sur mesure » qui sont utilisées pour entraîner de manière ciblée le modèle d’apprentissage automatique prédictif spécialisé associé au type d’activité en question. En procédant de la sorte pour chaque modèle/activité, on obtient au final un ensemble de modèles prédictifs dont chacun a appris à partir d’un jeu de données optimal pour sa tâche, ce qui lui confère une expertise pointue dans son domaine de spécialité. Troisième mode de réalisation Dans un troisième mode de réalisation, le module d’intelligence artificielle 150 est conçu, en outre, pour recevoir les données d’utilisation des ressources de l’ordinateur hôte 200 et ajuster dynamiquement la fréquence d’échantillonnage. Dans ce troisième mode de réalisation, le module d’intelligence artificielle 150 du dispositif de stockage de masse 100 est conçu pour recevoir en continu les données d’utilisation des ressources de l’ordinateur hôte 200. Au démarrage, le module d’intelligence artificielle 150 utilise une fréquence d’échantillonnage prédéterminée par défaut pour collecter ces données. Cette fréquence initiale est définie à l’avance en tenant compte de différents facteurs tels que la puissance de l’ordinateur hôte 200, le type d’applications généralement utilisées ou les besoins moyens des utilisateurs. Elle vise à offrir un bon compromis entre la finesse du suivi de l’utilisation des ressources et la charge induite sur le système par le processus de mesure lui-même. Cependant, le module d’intelligence artificielle 150 ne se contente pas de cette fréquence d’échantillonnage fixe. Il est conçu pour analyser en permanence les données d’utilisation collectées et en extraire des profils représentatifs des variations de la charge de travail dans le temps. En s’appuyant sur ces profils, le module d’intelligence artificielle 150 est capable d’adapter dynamiquement la fréquence d’échantillonnage pour suivre au plus près l’évolution des besoins en ressources de l’ordinateur hôte 200. Lorsqu’il détecte des variations importantes et rapides de la charge, le module d’intelligence artificielle 150 augmente la fréquence d’échantillonnage. Cela lui permet de disposer de mesures plus fines et rapprochées pour caractériser avec précision ces changements de régime. À l’inverse, lorsque l’utilisation des ressources est stable et évolue lentement, le module d’intelligence artificielle 150 réduit la fréquence d’échantillonnage. Les mesures sont alors plus espacées, ce qui limite le volume de données à collecter et traiter. Ainsi, en ajustant dynamiquement la fréquence d’échantillonnage, le module d’intelligence artificielle 150 cherche à atteindre deux objectifs complémentaires. D’une part, il vise à optimiser la précision de ses prédictions sur les besoins en ressources, en collectant des données suffisamment fines et détaillées pour capturer les variations significatives de la charge. D’autre part, il cherche à minimiser l’impact de son propre fonctionnement sur les performances de l’ordinateur hôte 200, en évitant de prélever des mesures inutilement rapprochées lorsque l’utilisation des ressources est stable. Lorsque celle-ci est fluctuante et imprévisible, il augmente son niveau de vigilance en collectant des données à un rythme soutenu. Cela lui donne les moyens de suivre précisément ces variations et d’affiner ses prédictions en conséquence. À l’inverse, face à une charge plus régulière et prévisible, il relâche son attention et espace ses mesures pour économiser les ressources. Ce fonctionnement dynamique et auto-adaptatif représente un atout majeur pour le dispositif de stockage de masse 100. Il lui permet de s’ajuster en permanence au contexte d’utilisation et d’offrir le meilleur compromis entre la précision de ses décisions et leur coût en termes de ressources consommées. Le module d’intelligence artificielle 150 peut ainsi remplir son rôle de façon optimale, sans pénaliser les performances globales de l’ordinateur hôte 200. Par exemple, supposons que l’ordinateur hôte 200 exécute principalement des tâches de bureautique peu intensives en ressources, comme la rédaction de documents ou la consultation de courriers électroniques. Dans ce cas, le module d’intelligence artificielle 150 adopte une fréquence d’échantillonnage relativement faible, de l’ordre d’une mesure toutes les quelques secondes ou minutes. Cela suffit pour suivre l’évolution lente et régulière de l’utilisation du processeur 210 de l’ordinateur hôte 200 et de la mémoire non-volatile 130, sans perturber le fonctionnement de la machine. Imaginons maintenant que l’utilisateur lance une application gourmande en ressources, comme un jeu vidéo ou un logiciel de modélisation 3D. Le module d’intelligence artificielle 150 détecte immédiatement ce changement de profil à travers l’augmentation brutale de l’activité du processeur 210 de l’ordinateur hôte 200 et des accès à la mémoire non-volatile 130. Il réagit en augmentant significativement sa fréquence d’échantillonnage, qui passe par exemple à plusieurs mesures par seconde. Cela lui permet de suivre en temps réel les pics et les creux de consommation des ressources pour cette nouvelle charge de travail. Autrement dit, le module d’intelligence artificielle 150 se comporte un peu comme un chef d’orchestre qui adapte son rythme de direction à la partition jouée par les musiciens. Lorsque le morceau est lent et régulier, quelques gestes amples et espacés suffisent à coordonner l’ensemble. Mais dès que le rythme s’accélère et que les notes se multiplient, le chef d’orchestre doit battre la mesure de façon plus rapide et précise pour rester synchronisé. En pratique, cette adaptation dynamique repose sur des algorithmes d’apprentissage automatique capables d’analyser les séries temporelles des données d’utilisation. Le module d’intelligence artificielle 150 y recherche des motifs récurrents, des tendances, des seuils caractéristiques qui lui permettent de classifier le comportement des ressources. Il peut ainsi construire une bibliothèque de profils types associés à différents contextes d’utilisation, comme le travail de bureau, le jeu, le traitement multimédia, etc. Chaque profil définit une plage de fréquences d’échantillonnage adaptée, que le module d’intelligence artificielle 150 applique lorsqu’il rencontre un contexte similaire. Par ailleurs, le module d’intelligence artificielle 150 est également capable d’affiner ses profils et ses règles d’adaptation en continu, au fil de son expérience. Il peut mémoriser les séquences d’utilisation des ressources les plus fréquentes et les plus représentatives pour chaque contexte. Il peut ajuster les seuils de changement de fréquence d’échantillonnage en fonction des retours sur la précision de ses prédictions et la charge induite. Ainsi, ses capacités d’adaptation s’améliorent de façon incrémentale, lui permettant de coller au plus près des besoins réels de l’ordinateur hôte 200. Quatrième mode de réalisation Dans un quatrième mode de réalisation, le module d’intelligence artificielle 150 est conçu pour utiliser au moins une technique d’apprentissage par renforcement basée sur un système de récompenses/pénalités. À titre d’exemple, le terme « apprentissage par renforcement » peut inclure les algorithmes Q-Learning, SARSA, Deep Q-Network, Policy Gradient, mais également des variantes telles que l’Actor-Critic combinant les idées de Policy Gradient et de Value Function Approximation, le Temporal Difference (TD) Learning utilisant la différence temporelle dans les récompenses, les méthodes de Monte Carlo basées sur l’échantillonnage, le Proximal Policy Optimization (PPO) améliorant les méthodes de gradient de politique, le Trust Region Policy Optimization (TRPO) maintenant la nouvelle politique proche de l’ancienne, l’Asynchronous Advantage Actor-Critic (A3C) exploitant le parallélisme, le Soft Actor-Critic (SAC) optimisant une politique stochastique, le Twin Delayed DDPG (TD3) corrigeant les problèmes de surévaluation, le Hindsight Experience Replay (HER) permettant d’apprendre à partir d’échecs, ainsi que l’algorithme Rainbow combinant plusieurs améliorations de DQN. À titre d’exemple, le terme « système de récompenses/pénalités » peut comprendre l’attribution de valeurs numériques positives pour les actions permettant d’atteindre un objectif souhaité, et de valeurs négatives pour les actions s’en éloignant. Le module d’intelligence artificielle 150 est conçu pour utiliser la technique d’apprentissage par renforcement basée sur le système de récompenses/pénalités dans le but d’optimiser la prédiction de la politique de répartition des données échangées et d’allocation optimale de mémoire. Le module d’intelligence artificielle 150 ajuste de manière itérative les prédictions de la politique de répartition des données échangées et d’allocation optimale de mémoire. Cet ajustement itératif vise à maximiser les récompenses basées sur le maintien de l’utilisation du processeur 210 de l’ordinateur hôte 200 et/ou de la mémoire non-volatile 130 utilisée comme mémoire d’extension pour l’ordinateur hôte 200 ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte 200, dans les limites de seuils prédéterminés souhaitables. En d’autres termes, le module d’intelligence artificielle 150 met en œuvre un processus d’optimisation par essais successifs, guidé par un système de récompenses et de pénalités, dans le but de déterminer les meilleures stratégies de gestion des flux de données et de l’espace mémoire disponible. Cela signifie que le module explore différentes combinaisons de règles de répartition et d’allocation, tout en surveillant des métriques de performance clés comme la charge processeur 210 et l’utilisation de la mémoire non-volatile 130. Les configurations produisant les meilleurs résultats, c’est-à-dire restant dans les limites souhaitables prédéfinies, sont alors renforcées et privilégiées pour la prochaine itération. Inversement, les configurations moins performantes sont pénalisées et évitées. Cinquième mode de réalisation Dans un cinquième mode de réalisation, le module d’intelligence artificielle 150 est conçu pour utiliser au moins un modèle d’arbre de décision entraîné pour classifier les profils d’utilisation des ressources détectés. À titre d’exemple, le module d’intelligence artificielle 150 peut comprendre une bibliothèque logicielle spécialisée dans les algorithmes d’arbres de décision, un processeur 210 dédié optimisé pour ce type de calculs, ou une puce d’accélération d’intelligence artificielle. Il peut également s’agir d’un service cloud d’intelligence artificielle accessible via une interface de programmation. Le terme « modèle d’arbre de décision entraîné » fait référence à un modèle d’apprentissage automatique de type arbre de décision qui a été entraîné sur des données historiques pour apprendre à classer de nouvelles entrées. Un arbre de décision est une structure arborescente où chaque nœud représente un test sur une caractéristique des données, et chaque branche descendante correspond à l’une des valeurs possibles de ce test. Les feuilles de l’arbre contiennent les décisions ou classifications finales. À titre d’exemple, le modèle d’arbre de décision entraîné peut avoir été construit à partir de profils d’utilisation passés étiquetés manuellement, en identifiant les caractéristiques discriminantes qui permettent de les classer dans différentes catégories. Il peut s’agir d’un arbre de décision unique ou d’un ensemble d’arbres constituant une forêt aléatoire. D’autres variantes d’arbres de décision comme les arbres de régression, les arbres de boosting ou les arbres de décision alternés peuvent également être utilisées. Les profils d’utilisation des ressources détectés sont ensuite fournis en entrée au module d’intelligence artificielle 150, qui les soumet au modèle d’arbre de décision entraîné pour les classifier. Chaque profil détecté est ainsi associé à une classe ou catégorie particulière, déterminée par les règles de décision encodées dans la structure de l’arbre. Conclusion Nous avons décrit et illustré l’invention. Toutefois, l’invention ne se limite pas aux formes de réalisations que nous avons présentées. En effet, de nombreuses combinaisons des variantes, alternatives, modes de réalisation et mises en œuvre, peuvent être envisagées sans nécessiter de modifications substantielles de l’invention. Ainsi, un expert du domaine peut déduire d’autres variantes, alternatives, modes de réalisation et mises en œuvre, à la lecture de la description et des figures annexées et en fonction des contraintes économiques, ergonomiques, dimensionnelles à respecter. L’invention peut faire l’objet de nombreuses variantes et applications autres que celles décrites précédemment. En particulier, sauf indication contraire, les différentes caractéristiques structurelles et fonctionnelles de chaque mise en œuvre particulière décrite précédemment ne doivent pas être considérées comme combinées et/ou étroitement et/ou inextricablement liées les unes aux autres, mais, au contraire, comme de simples juxtapositions. En outre, les caractéristiques structurelles et/ou fonctionnelles des différents modes de réalisation décrits précédemment peuvent faire l’objet en tout ou partie de toute juxtaposition différente ou de toute combinaison différente. Dispositif de stockage de masse (100) spécifiquement conçu pour être connecté à un ordinateur hôte (200) ayant des ressources, les ressources comprenant au moins un processeur (210) et au moins une première mémoire vive (220), dite RAM, le dispositif de stockage de masse (100) comprenant, - un boîtier (110), - un connecteur (120) conçu pour connecter le dispositif de stockage de masse (100) à l’ordinateur hôte (200), - une mémoire non-volatile (130) intégrée dans le boîtier (110), la mémoire non-volatile (130) étant accessible, via le connecteur (120), par le processeur (210) de l’ordinateur hôte (200), - un système d’exploitation installé sur la mémoire non-volatile (130), le système d’exploitation étant conçu pour utiliser et partager tout ou partie des ressources de l’ordinateur hôte (200) et du dispositif de stockage de masse (100), - au moins un co-processeur (140) qui est intégré dans le boîtier (110) et couplé à la mémoire non-volatile (130), le co-processeur (140) étant conçu pour exécuter des tâches de calcul en parallèle de celles exécutées par le processeur (210) de l’ordinateur hôte (200), de manière à réduire la charge de travail du processeur (210) de l’ordinateur hôte (200), - un protocole de communication spécifiquement conçu pour, ▪ être mis en œuvre par le co-processeur (140) et le processeur (210) de l’ordinateur hôte (200), et ▪ effectuer, via le connecteur (120), des échanges de données entre le co-processeur (140) et le processeur (210) de l’ordinateur hôte (200), les échanges de données, dites données échangées, comprenant des instructions, des données d’entrée/sortie, des tâches de calcul à exécuter et/ou des résultats de tâches de calcul, et - un module d’intelligence artificielle (150) intégré dans le boîtier (110) et couplé à la mémoire non-volatile (130), le module d’intelligence artificielle (150) étant conçu pour : ▪ être exécuté par le co-processeur (140), ▪ recevoir en continu des données sur l’utilisation des ressources de l’ordinateur hôte (200), dites données d’utilisation, ▪ déterminer, à partir des données d’utilisation, au moins un paramètre caractéristique de l’utilisation des ressources de l’ordinateur hôte (200), ▪ détecter, à partir du paramètre caractéristique, un ou plusieurs profils d’utilisation des ressources par l’ordinateur hôte (200) à un instant donné, chaque profil étant représentatif d’une ou plusieurs activités spécifiques de l’utilisateur du système d’exploitation, ▪ prédire, à partir des profils d’utilisation détectés et des activités utilisateur associées, une répartition des données échangées entre le co-processeur (140) et le processeur (210) de l’ordinateur hôte (200), qui est représentative du maintien de l’utilisation du processeur (210) de l’ordinateur hôte (200) en dessous d’un premier seuil prédéterminé, dans lequel, - le co-processeur (140) est en outre conçu pour mettre en œuvre de manière dynamique et en temps réel, en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle (150) à chaque instant, la répartition des données échangées entre lui-même et le processeur (210) de l’ordinateur hôte (200), prédite par le module d’intelligence artificielle (150). Dispositif de stockage de masse (100) selon la revendication 1, comprenant, en outre, - un module logiciel de virtualisation de mémoire vive installé sur la mémoire non-volatile (130), le module logiciel de virtualisation de mémoire vive étant conçu pour, ▪ être exécuté par le co-processeur (140), ▪ permettre au processeur (210) de l’ordinateur hôte (200) d’utiliser une partie de la mémoire non-volatile (130) comme mémoire d’extension pour l’ordinateur hôte (200) ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte (200), et ▪ gérer les transferts bidirectionnels de données entre la RAM de l’ordinateur hôte (200) et la mémoire non-volatile (130) utilisée comme mémoire d’extension pour l’ordinateur hôte (200) ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte (200), dans lequel, - le module d’intelligence artificielle (150) est en outre conçu pour prédire, à partir des profils d’utilisation détectés et des activités utilisateur associées, une allocation optimale de la mémoire non-volatile (130) utilisée comme mémoire d’extension pour l’ordinateur hôte (200) ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte (200), qui est représentative du maintien de la quantité de RAM disponible sur l’ordinateur hôte (200) au-dessus d’un deuxième seuil prédéterminé, et - le co-processeur (140) est en outre conçu pour mettre en œuvre de manière dynamique et en temps réel, en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle (150) à chaque instant, l’allocation optimale de la mémoire non-volatile (130) utilisée comme mémoire d’extension pour l’ordinateur hôte (200) ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte (200), prédite par le module d’intelligence artificielle (150). Dispositif de stockage de masse (100) selon l’une quelconque des revendications 1 à 2, comprenant, en outre, une deuxième mémoire vive (160), dans lequel, - le module d’intelligence artificielle (150) est en outre conçu pour prédire, à partir des profils d’utilisation détectés et des activités utilisateur associées, une allocation optimale de la mémoire vive (160), qui est représentative du maintien de la quantité de RAM disponible sur l’ordinateur hôte (200) au-dessus d’un troisième seuil prédéterminé, et - le co-processeur (140) est en outre conçu pour mettre en œuvre de manière dynamique et en temps réel, en fonction des profils d’utilisation des ressources détectés par le module d’intelligence artificielle (150) à chaque instant, l’allocation optimale de la mémoire vive (160), prédite par le module d’intelligence artificielle (150). Dispositif de stockage de masse (100) selon l’une quelconque des revendications 1 à 3, dans lequel, le module d’intelligence artificielle (150) comprend un ensemble de modèles d’apprentissage automatique prédictifs spécialisés, chaque modèle étant dédié à un type spécifique d’activité de l’utilisateur, et étant entraîné de manière ciblée sur les données d’utilisation des ressources collectées et étiquetées lors des sessions correspondant à cette activité particulière. Dispositif de stockage de masse (100) selon l’une quelconque des revendications 1 à 4, dans lequel, le module d’intelligence artificielle (150) est en outre conçu pour, - recevoir les données d’utilisation des ressources de l’ordinateur hôte (200) à une fréquence d’échantillonnage initiale prédéterminée par défaut, et - ajuster dynamiquement la fréquence d’échantillonnage vers une valeur plus élevée ou plus basse en fonction de tout ou partie des profils d’utilisation détectés de manière à optimiser la précision des prédictions du module d’intelligence artificielle (150) tout en minimisant la charge sur les ressources de l’ordinateur hôte (200). Dispositif de stockage de masse (100) selon l’une quelconque des revendications 1 à 5, dans lequel, le module d’intelligence artificielle (150) est en outre conçu pour utiliser au moins une technique d’apprentissage par renforcement basée sur un système de récompenses/pénalités pour optimiser la prédiction la politique de répartition des données échangées et d’allocation optimale de mémoire, en ajustant de manière itérative les prédictions afin de maximiser les récompenses basées sur le maintien de l’utilisation du processeur (210) de l’ordinateur hôte (200) et/ou de la mémoire non-volatile (130) utilisée comme mémoire d’extension pour l’ordinateur hôte (200) ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte (200), dans les limites de seuils prédéterminés souhaitables. Dispositif de stockage de masse (100) selon l’une quelconque des revendications 1 à 6, dans lequel, le module d’intelligence artificielle (150) est en outre conçu pour utiliser au moins modèle d’arbre de décision entraîné pour classifier les profils d’utilisation des ressources détectés, chaque profil étant associé à des recommandations spécifiques en termes de politique optimale de répartition des données échangées et d’allocation optimale de mémoire non-volatile (130) utilisée comme mémoire d’extension pour l’ordinateur hôte (200) ou mémoire vive virtuelle supplémentaire pour l’ordinateur hôte (200), les recommandations étant déterminées par les règles de décision de l’arbre en fonction des caractéristiques du profil d’utilisation.