MASS STORAGE DEVICE WITH EMBEDDED OPERATING SYSTEM

The mass storage device optimizes obsolete computers by integrating a co-processor and AI to manage resource distribution, enhancing performance and responsiveness through intelligent task offloading and memory allocation.

FR3161767A1Pending Publication Date: 2025-10-31CENA LILIAN
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
FR2024004352
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-26
Publication Date
2025-10-31

AI Technical Summary

Technical Problem

Existing solutions for optimizing obsolete computers are limited by the host computer's resources, failing to fully utilize additional resources provided by external devices and maintaining performance gains.

Method used

A mass storage device with integrated non-volatile memory, a co-processor, and an artificial intelligence module that dynamically manages resource distribution between the host computer and the device, using a communication protocol to offload workload and optimize memory allocation.

Benefits of technology

The device enhances performance by intelligently distributing tasks and resources, maintaining high performance and responsiveness despite host computer limitations, offering a cost-effective and transparent solution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
  • Figure 00000000_0001_ABST
    Figure 00000000_0001_ABST
Patent Text Reader

Abstract

The invention relates to a mass storage device (100) optimized for resource-constrained computers. It comprises a housing (110) with a connector (120), non-volatile memory (130), a dedicated operating system, and an integrated coprocessor (140). A high-speed communication protocol allows the coprocessor (140) to handle heavy tasks, reducing the load on the host processor. An AI module (150) monitors resource utilization and predicts the optimal task allocation, enabling the coprocessor (140) to dynamically adjust the communication protocol. The mass storage device (100) thus continuously adapts to the usage profile to provide a high level of performance despite the limitations of the host computer. Figure to be published with the abstract: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: MASS STORAGE DEVICE WITH EMBEDDED OPERATING SYSTEM technical field

[0001] The invention relates to the field of mass storage devices integrated into an embedded system and which include an operating system. Previous technique

[0002] Computers, especially personal computers, are commonly used to perform a wide variety of tasks and software applications requiring significant hardware resources, such as computing power, RAM and storage space.

[0003] The term "resources" here refers to all the hardware and software means available to a computer to perform processing, store data and interact with the user.

[0004] This includes, in particular, processors, RAM, storage spaces, input / output devices, as well as software components such as the operating system and device drivers.

[0005] Over time, computers often become obsolete because their resources are no longer sufficient to satisfactorily run the latest versions of operating systems and applications, which are increasingly resource-intensive.

[0006] The term "obsolete" indicates that the computer's resources are significantly below the configurations recommended by software publishers and no longer allow for smooth and responsive use of the system.

[0007] An obsolete computer is typically characterized by excessive slowness, very long response times, or even frequent freezes requiring restarts.

[0008] Rather than replacing an obsolete computer, which can represent a significant cost, it is often preferable to seek solutions to extend its lifespan by optimizing the use of its limited resources.

[0009] A common approach is to connect external devices to expand the computer's capabilities, for example by adding RAM or an additional hard drive.

[0010] However, these extensions remain dependent on the intrinsic limitations of the host computer, particularly in terms of computing power and communication bus throughput.

[0011] Another possibility is to use an operating system and applications that are less resource-intensive, specifically designed for modest hardware configurations.

[0012] The term "operating system" refers to the central software of a computer which serves as an interface between the hardware and the applications, enabling coordinated and optimized use of the different resources.

[0013] Portable operating systems, capable of running from removable media without installation on the host computer, have emerged to meet this need.

[0014] However, their performance remains limited by the resources available on the host computer.

[0015] Thus, existing solutions for optimizing an obsolete computer have limitations and disadvantages.

[0016] They do not allow full use of the additional resources provided by external devices, which remain limited by the capabilities of the host computer.

[0017] Furthermore, running a portable operating system from a conventional storage medium does not provide a substantial performance gain, as most of the processing remains the responsibility of the host processor. Summary of the invention

[0018] The invention aims to solve, at least partially, this need.

[0019] The invention relates to a mass storage device specifically designed to be connected to a host computer having resources, the resources comprising at least one processor and at least one first random access memory, referred to as RAM, the mass storage device comprising: - a casing, - a connector designed to connect the mass storage device to the host computer, - non-volatile memory integrated into the casing, the non-volatile memory being accessible, via the connector, by the processor of the host computer, - an operating system installed on the non-volatile memory, the operating system being designed to use and share all or part of the resources of the host computer and the mass storage device, - at least one co-processor which is integrated into the casing and coupled to the non-volatile memory, the co-processor being designed to execute computational tasks in parallel with those executed by the processor of the host computer,in order to reduce the workload of the host computer's processor, - a communication protocol specifically designed for, ■ be implemented by the coprocessor and the processor of the host computer, and ■ to perform, via the connector, data exchanges between the coprocessor and the host computer's processor; the data exchanges, referred to as exchanged data, include instructions, input / output data, computational tasks to be executed and / or results of computational tasks, and - an artificial intelligence module integrated into the casing and coupled to the non-volatile memory, the artificial intelligence module being designed to: ■ to be executed by the coprocessor, ■ continuously receive data on the use of the host computer's resources, known as usage data, ■ Determine, from the usage data, at least one characteristic parameter of the host computer's resource usage, ■ detect, from the characteristic parameter, one or more resource usage profiles by the host computer at a given time, each profile being representative of one or more specific activities of the operating system user, ■ predict, from the detected usage profiles and the associated user activities, a distribution of the data exchanged between the coprocessor and the host computer's processor, which is representative of keeping the host computer's processor usage below a first predetermined threshold, in which, - the coprocessor is also designed to implement dynamically and in real time, based on the resource usage profiles detected by the artificial intelligence module at each moment, the distribution of data exchanged between itself and the host computer's processor, predicted by the artificial intelligence module.

[0020] In a first embodiment, the mass storage device further comprises, - a RAM virtualization software module installed on non-volatile memory, the RAM virtualization software module being designed to be executed by the coprocessor, ■ to allow the host computer's processor to use a portion of the non-volatile memory as expansion memory for the host computer or additional virtual RAM for the host computer, and ■ manage bidirectional data transfers between the host computer's RAM and non-volatile memory used as expansion memory for the host computer or additional virtual RAM for the host computer, wherein, - the artificial intelligence module is further designed to predict, based on detected usage profiles and associated user activities, an optimal allocation of non-volatile memory used as expansion memory for the host computer or additional virtual RAM for the host computer, which is representative of maintaining the amount of RAM available on the host computer above a second predetermined threshold, and - the coprocessor is further designed to implement dynamically and in real time, based on resource usage profiles detected by the artificial intelligence module at any given moment, the optimal allocation of non-volatile memory used as expansion memory for the host computer or additional virtual RAM for the host computer, predicted by the artificial intelligence module.

[0021] In a second embodiment, the mass storage device further comprises a second RAM, and in which, - the artificial intelligence module is further designed to predict, from detected usage profiles and associated user activities, an optimal allocation of RAM, which is representative of maintaining the amount of RAM available on the host computer above a third predetermined threshold, and - the coprocessor is further designed to implement dynamically and in real time, based on resource usage profiles detected by the artificial intelligence module at each instant, the optimal allocation of RAM, predicted by the artificial intelligence module.

[0022] In a third embodiment, the artificial intelligence module includes a set of specialized predictive machine learning models, each model being dedicated to a specific type of user activity, and being trained in a targeted manner on resource usage data collected and labeled during sessions corresponding to that particular activity.

[0023] In a fourth embodiment, the artificial intelligence module is further designed to, - receive resource usage data from the host computer at a predetermined default initial sampling rate, and - dynamically adjust the sampling frequency to a higher or lower value based on all or part of the detected usage profiles in order to optimize the accuracy of the artificial intelligence module's predictions while minimizing the load on the host computer's resources.

[0024] In a fifth embodiment, the artificial intelligence module is further designed to use at least one reinforcement learning technique based on a reward / penalty system to optimize the prediction of the data exchange distribution policy and optimal memory allocation, iteratively adjusting the predictions to maximize rewards based on maintaining the use of the host computer's processor and / or non-volatile memory used as expansion memory for the host computer or additional virtual RAM for the host computer, within desirable predetermined threshold limits.

[0025] In a fifth embodiment, the artificial intelligence module is further designed to use at least one trained decision tree model to classify detected resource utilization profiles, each profile being associated with specific recommendations in terms of optimal policy for distributing exchanged data and optimal allocation of non-volatile memory used as expansion memory for the host computer or additional virtual RAM for the host computer, the recommendations being determined by the decision rules of the tree based on the characteristics of the utilization profile. Brief description of the drawings

[0026] Other features and advantages of the invention will be better understood from the following description and with reference to the accompanying drawings, given by way of illustration and not limitation.

[0027] [Fig-1] Fig. 1 schematically represents a computer system which includes the mass storage device according to the invention.

[0028] The figures do not necessarily respect the scales, particularly in thickness, for illustrative purposes. Description of the implementation methods

[0029] Problem solved by the invention

[0030] The technical problem addressed by the invention is to provide a mass storage device that makes it possible to significantly improve the performance of an obsolete, underpowered and / or too slow host computer, by efficiently distributing the workload between the resources of the host computer and those of the mass storage device.

[0031] More specifically, the invention aims to enable the optimal execution of a modern operating system and resource-intensive applications on a host computer with limited capabilities, by making the best use of the resources inherent in the mass storage device.

[0032] This includes offloading intensive computing tasks from the host computer's processor as much as possible by transferring them to a co-processor integrated into the mass storage device, while intelligently managing the distribution of processing and communication between the host computer and the mass storage device.

[0033] The invention also aims to automatically adapt to the usage profile of the host computer at every moment, by continuously analyzing the consumption of different resources and predicting the optimal distribution of the workload to maintain high performance, in order to continuously offer the user a smooth and responsive experience despite the limitations of the host computer.

[0034] Finally, the invention seeks to provide a solution that is simple to implement, economical and transparent for the user, by integrating naturally and automatically into the existing computer environment, without requiring any hardware or software modification of the host computer.

[0035] Solution of the invention and technical effect

[0036] To solve the aforementioned problems, and as illustrated in [Fig.1], the invention proposes a mass storage device 100 which is specifically designed to be connected to a host computer 200 having limited resources, including in particular a processor 210.

[0037] The mass storage device 100 according to the invention comprises a housing 110, a connector 120 designed to connect it to the host computer 200, and a non-volatile memory 130 integrated into the housing 110 and accessible by the processor 210 of the host computer 200 via the connector 120.

[0038] An operating system is installed on the non-volatile memory 130 of the mass storage device 100.

[0039] This operating system is specifically designed to optimally use and share the resources of the host computer 200 and those of the mass storage device 100, in order to make the best use of their combination.

[0040] The mass storage device 100 also integrates in its housing 110 at least one coprocessor 140 coupled to the non-volatile memory 130.

[0041] The coprocessor 140 of the mass storage device 100 is specifically designed to take over the heaviest computing tasks, in order to minimize the workload of the processor 210 of the host computer 200.

[0042] To enable effective collaboration between the co-processor 140 of the mass storage device 100 and the processor 210 of the host computer 200, the invention provides a specific communication protocol which is implemented by the two processors 140, 210.

[0043] The communication protocol implemented within the framework of the invention allows high-speed data exchange between the co-processor 140 of the mass storage device 100 and the processor 210 of the host computer 200, via the connector 120.

[0044] The data exchanged according to this protocol may include, in particular, instructions, input / output data, computational tasks to be executed and / or results of computational tasks.

[0045] Finally, the mass storage device 100 includes an artificial intelligence module 150 integrated into the housing 110, coupled to the non-volatile memory 130 and designed to be executed by its co-processor 140.

[0046] The artificial intelligence module 150 has the role of continuously monitoring the use of the resources of the host computer 200 and of deducing at each moment the best sharing of tasks between the processor 210 of the host computer and the coprocessor 140 of the mass storage device 100.

[0047] To do this, it continuously receives data on the state of the resources of the host computer 200, determines parameters characteristic of their use, and then detects usage profiles representative of the activities in progress.

[0048] From these usage profiles and associated activities, the artificial intelligence module 150 is able to predict the optimal distribution of the workload between the coprocessor 140 of the mass storage device 100 and the processor 210 of the host computer 200 to keep the use of the latter below a critical threshold.

[0049] Based on this prediction, the coprocessor 140 of the mass storage device 100 dynamically and in real time adjusts the communication protocol, so as to implement at every moment the optimal distribution of tasks and data with the processor 210 of the host computer 200.

[0050] Thus, the mass storage device 100 adapts autonomously and permanently to the current usage profile of the host computer 200, in order to continuously provide a high level of performance despite the limitations of the resources of the host computer 200.

[0051] Detailed presentation of the elements of the invention

[0052] The 110 case

[0053] The housing 110 contains various internal components of the invention, including the non-volatile memory 130 and the co-processor 140.

[0054] The term "housing 110" here refers to the rigid outer casing of the mass storage device 100, made of a material sufficiently robust to ensure the mechanical protection of the components, such as a hard plastic or a light metal alloy.

[0055] In one example, the 110 enclosure has a classic elongated "USB key" type shape, with a 120 connector protruding at one end to allow connection to a 200 host computer. Its dimensions are compatible with easy handling and easy transport in a pocket.

[0056] The enclosure 110 has ventilation openings to promote cooling of the internal components. It may also integrate one or more indicator lights providing information on the operating status of the mass storage device 100 (power on, memory access, etc.).

[0057] The housing 110 provides electromagnetic shielding to prevent fields radiated by the internal circuits from interfering with surrounding equipment. It may be metallized or have a conductive coating for this purpose.

[0058] Finally, the case 110 may include fastening elements, such as a ring or a carabiner, for attaching the mass storage device 100 to a key ring or other object.

[0059] Connector 120

[0060] The connector 120 is designed to physically and electrically connect the mass storage device 100 to a host computer 200.

[0061] The term "120 connector" refers to a standard interface component having electrical contacts, such as a USB 120 connector, enabling the transmission of signals and power supplies between the mass storage device 100 and the host computer 200.

[0062] The connector 120 is rigidly fixed to the housing 110 of the mass storage device 100, for example, at one end thereof along its longest dimension. It protrudes sufficiently from the housing 110 to be easily plugged into a corresponding connection port on the host computer 200.

[0063] The 120 connector type is chosen for its compatibility with the most common computer ports, such as USB, Thunderbolt, and FireWire. In a preferred embodiment, the 120 connector is of the USB 3.x type to allow for high communication speeds.

[0064] The connector 120 has electrical contacts allowing the directional and / or bidirectional transmission of electrical signals between the mass storage device 100 and the host computer 200.

[0065] These electrical signals can in particular carry data, commands, status information, interrupts or clock signals, depending on the needs of the communication protocols implemented.

[0066] Non-volatile memory 130

[0067] The non-volatile memory 130 is integrated into the housing 110.

[0068] The term "non-volatile memory 130" refers to a type of computer memory which retains data persistently even in the absence of power. This non-volatile memory 130 is also rewritable, possessing the characteristics of RAM that allow data modification while ensuring its retention when power is cut off.

[0069] For example, the term "non-volatile memory 130" can refer to NAND flash memory, phase-change memory (PCM), magnetoresistive memory (MRAM), or an electronic hard disk drive (SSD).

[0070] The non-volatile memory 130 is accessible by the processor 210 of the host computer 200 via the connector 120. This means that the processor 210 of the host computer 200 can read and write data in the non-volatile memory 130 of the mass storage device 100, using appropriate commands and communication protocol transmitted through the connector 120.

[0071] The non-volatile memory 130 is used to permanently store the data and programs necessary for the operation of the mass storage device 100, including the operating system and the artificial intelligence module 150. It offers a large storage capacity, on the order of several gigabytes, or even a few terabytes, allowing it to host a large amount of user data.

[0072] The operating system

[0073] The operating system is installed on the non-volatile memory 130 of the mass storage device 100.

[0074] The term "operating system" refers to the main software of a computer, which has the role of managing the machine's hardware and software resources, providing an interface between these resources and applications, and offering a set of services facilitating the use of the computer.

[0075] By way of example, the term "operating system" can refer to systems such as Microsoft Windows, Apple macOS, Linux, Google Android or Google Chrome OS.

[0076] The operating system installed on the mass storage device 100 is specifically designed to use and share all or part of the resources of the host computer 200 and the mass storage device 100 itself. This means that it is capable of taking advantage of both the resources of the mass storage device 100 itself, such as its coprocessor 140 and its non-volatile memory 130, and the resources of the host computer 200 to which the mass storage device 100 is connected, such as its processor 210, its RAM 220 and its input / output devices.

[0077] This ability to use and share resources is made possible by the operating system's software architecture, which includes drivers and application programming interfaces (APIs) adapted to access the various hardware and software components of the host computer 200 and the mass storage device 100. The operating system can thus dynamically allocate tasks and data to the most appropriate available resources, whether on the host computer 200 or on the mass storage device 100.

[0078] Resource sharing aims to optimize overall system performance by distributing the workload in such a way as to make the best use of each element's capabilities. For example, the operating system may decide to execute memory-intensive tasks on the host computer 200 if it has more RAM 220 than the mass storage device 100, while offloading intensive calculations from the host computer's processor 210 by delegating them to the coprocessor 140 of the mass storage device 100.

[0079] In practice, the operating system behaves as if it had a virtual supercomputer combining the capabilities of the host computer 200 and the mass storage device 100. It sees all available resources as a coherent whole which it can manage globally and unifiedly, distributing the workload as best as possible at each moment.

[0080]

[0081] The coprocessor 140

[0082] The coprocessor 140 is integrated into the package 110 and coupled to the non-volatile memory 130.

[0083] The term "co-processor 140" refers to a specialized secondary processor which assists the processor (in this case that of the host computer 200) by taking over part of the computer processing.

[0084] By way of example, the term "co-processor 140" can refer to a graphics processing unit (GPU), a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), but also a floating-point unit specializing in complex arithmetic operations, an encryption coprocessor dedicated to cryptography, a network coprocessor optimizing data processing, a coprocessor managing input / output with peripherals, a coprocessor accelerating operations on character strings, a vector coprocessor improving high-performance calculations, a direct memory transfer (DMA) coprocessor, or a tensor processing unit (TPU) designed for artificial intelligence.

[0085] The coprocessor 140 is specifically designed to perform computational tasks in parallel with those performed by the processor 210 of the host computer 200, so as to reduce the workload of the latter.

[0086] In other words, the coprocessor 140 allows the host computer's processor 210 to be relieved of the heaviest and most resource-intensive processing, by taking care of it autonomously and simultaneously.

[0087] This parallelization of computing tasks aims to optimize the overall performance of the system, by taking advantage of the additional processing power provided by the coprocessor 140.

[0088] It allows the execution of applications and services used on the host computer 200 to be accelerated, without putting any additional strain on its processor 210.

[0089] The coprocessor 140 thus acts as a dedicated hardware accelerator, capable of rapidly processing large volumes of data or performing complex operations.

[0090] The coprocessor 140 is preferably a high-performance multi-core processor with a parallel architecture and a large memory bandwidth.

[0091] This could be, for example, an NVIDIA CUDA or AMD Radeon GPU, comprising several thousand computing cores clocked at frequencies on the order of gigahertz, but also Exynos GPUs integrating the AMD RDNA architecture, Moore thread processors offering computational acceleration capabilities for various applications such as artificial intelligence and 3D graphics rendering, Intel Graphics GPUs commonly used in laptops and desktops, ARM Mali and Adreno GPUs found in smartphones and tablets, as well as neural processing units (NPUs) specializing in machine learning and natural language processing tasks.

[0092] The coprocessor 140 has its own dedicated RAM, separate from that of the host computer 200 and the non-volatile memory 130 of the mass storage device 100.

[0093] This memory is used to store the data and programs necessary for the execution of parallel computing tasks.

[0094] The coprocessor 140 is coupled to the non-volatile memory 130 of the mass storage device 100, for example, by an internal high-speed communication bus, such as PCI Express or NVLink, but also by other interfaces such as USB (Universal Serial Bus), commonly used for internal communication in embedded systems, SATA (Serial ATA), dedicated to the connection of hard drives, SSDs and other mass storage devices, as well as SPI (Serial Peripheral Interface) and I2C (Inter-Integrated Circuit) buses, used for communication between electronic components within the same device, particularly in embedded systems and microcontrollers.

[0095] This bus allows fast data transfers between the coprocessor 140 and the non-volatile memory 130, with a bandwidth of several tens of gigabytes per second.

[0096] The coprocessor 140 can thus efficiently access the data and programs stored in the non-volatile memory 130, without going through the processor 210 of the host computer 200.

[0097] The communication protocol

[0098] The communication protocol enables the coprocessor 140 to communicate and exchange data with the processor 210 of the host computer 200.

[0099] The term "communication protocol" refers to a set of rules, data formats and procedures enabling several entities of a computer system to communicate and exchange information in a coherent and organized manner.

[0100] By way of example, the term "communication protocol" can refer to protocols such as TCP / IP, USB, PCI Express, SATA or NVMe.

[0101] In practice, the communication protocol is specifically designed to be implemented by the co-processor 140 of the mass storage device 100 and the processor 210 of the host computer 200.

[0102] This means that it defines the precise modalities according to which these two processors 140, 210 can interact and exchange data, taking into account their respective hardware and software characteristics.

[0103] The communication protocol allows data exchanges to be carried out via connector 120 between the coprocessor 140 and the processor 210 of the host computer 200.

[0104] These data exchanges, called "exchanged data", can be of different kinds and meet different functional needs.

[0105] The data exchanged according to the communication protocol may include, in particular, instructions to be executed by the coprocessor 140 of the mass storage device 100 or by the processor 210 of the host computer 200.

[0106] The term "instructions" here refers to sequences of machine code or bytecode instructions that can be interpreted by a processor, enabling specific computer processing to be carried out.

[0107] By way of example, the term "instructions" may refer to numerical calculation instructions, multimedia data processing instructions, graphics rendering instructions or instructions for executing system tasks.

[0108] The data exchanged may also include input / output data, i.e. data to be processed or having been produced by the execution of instructions on either of the processors 140, 210.

[0109] The term "input / output data" refers to any digital information, structured or unstructured, representing, for example, text, numbers, images, sounds, videos or other types of multimedia content.

[0110] By way of example, the term "input / output data" can refer to files, network data streams, video or audio frames, sensor data or graphical interfaces.

[0111] In addition, the data exchanged may include computational tasks to be executed, i.e. sets of instructions and data to be processed by one or the other of the processors 140, 210.

[0112] The term "computing tasks" refers to independent computing work units, which can be executed in parallel or concurrently on one or more processors 140, 210.

[0113] By way of example, the term "computing tasks" may refer to 3D rendering tasks, video encoding / decoding tasks, machine learning tasks or even physical simulation tasks.

[0114] Finally, the data exchanged may include results of computational tasks, that is to say, the data produced by the execution of a computational task on one of the processors 140, 210.

[0115] The term "computational task results" refers to the outputs generated by a computer process, which can then be used as inputs for further processing or returned to the end user.

[0116] By way of example, the term "computational task results" may refer to rendered images or videos, trained models, calculated simulations, or statistics.

[0117] The artificial intelligence module 150

[0118] The artificial intelligence module 150 is integrated into the housing 110 and coupled to the non-volatile memory 130.

[0119] The term "artificial intelligence module 150" refers to a set of hardware and / or software components implementing artificial intelligence techniques, such as machine learning, automatic reasoning or natural language processing.

[0120] By way of example, the term "artificial intelligence module 150" may take the form of a computer program, a software library, an API or a cloud service, which implements one or more pre-trained machine learning models such as artificial neural networks, expert systems, inference engines or conversational agents.

[0121] The artificial intelligence module 150 of the mass storage device 100 is specifically designed to be executed by the coprocessor 140.

[0122] This means that the coprocessor 140 provides the computing power necessary for the operation of the artificial intelligence module 150 and the execution of its complex algorithms. The artificial intelligence module 150 can thus benefit from the massively parallel processing capabilities of the coprocessor 140, typically a graphics processor or a dedicated computing accelerator.

[0123] As part of its execution by the coprocessor 140, the artificial intelligence module 150 continuously receives data on the use of resources from the host computer 200, called usage data.

[0124] The term "usage data" refers to any quantitative or qualitative information reflecting the state of use of the various hardware and software resources of the host computer 200 at a given time.

[0125] By way of example, the term "usage data" may include measurements of CPU load, memory occupancy, network bandwidth, disk activity or clock cycles.

[0126] From this usage data, the artificial intelligence module 150 determines at least one characteristic parameter of the use of resources of the host computer 200.

[0127] The term "characteristic parameter" refers to a synthetic quantity, calculated from raw usage data, which allows a particular aspect of resource consumption by the host computer 200 to be characterized and quantified.

[0128] By way of example, the term "characteristic parameter" may refer to a CPU utilization rate, a memory footprint, an input / output throughput, or a composite performance metric.

[0129] The artificial intelligence module 150 then uses the characteristic parameter(s) to detect one or more resource usage profiles by the host computer 200 at a given time.

[0130] The term "usage profile" refers to a particular signature of resource consumption, representative of one or more specific user activities of the operating system running on the host computer 200.

[0131] By way of example, the term "usage profile" may correspond to activities such as web browsing, word processing, video editing, video games or the execution of a particular business application.

[0132] Each detected usage profile is thus associated with one or more specific user activities running on the operating system. The artificial intelligence module 150 is able to identify these activities from the resource consumption profiles, thanks to its machine learning-learned analysis and pattern recognition capabilities.

[0133] Based on the detected usage profiles and associated user activities, the artificial intelligence module 150 predicts a distribution of the data exchanged between the co-processor 140 and the processor 210 of the host computer 200.

[0134] This predicted allocation aims to keep the use of the host computer's processor 210 below a first predetermined threshold.

[0135] The term "first predetermined threshold" refers to a maximum level of CPU utilization of the host computer 200 processor 210, defined in advance, beyond which system performance would degrade to an unacceptable degree for the user.

[0136] By way of example, the term "first predetermined threshold" may refer to a CPU utilization rate of 90%, an average load over 5 minutes greater than 80%, or an average application response time greater than 2 seconds.

[0137] Furthermore, the coprocessor 140 is also designed to dynamically and in real time implement the distribution of data exchanged between itself and the processor 210 of the host computer 200, as predicted by the artificial intelligence module 150.

[0138] The term "implement dynamically and in real time" means that the coprocessor 140 continuously and instantaneously adjusts the communication protocol with the processor 210 of the host computer 200, in order to distribute the exchanged data in accordance with the prediction of the artificial intelligence module 150.

[0139] This dynamic and real-time implementation of the distribution of exchanged data is carried out according to the resource usage profiles detected by the artificial intelligence module 150 at each instant.

[0140] This means that the coprocessor 140 continuously adapts the communication protocol to reflect the optimal distribution predicted by the artificial intelligence module 150, based on the common usage profiles identified by the latter.

[0141] Thus, the mass storage device 100 according to the invention is capable of automatically and continuously adjusting to the actual operating conditions of the host computer 200, optimally distributing the workload between the co-processor 140 and the processor 210 of the host computer 200.

[0142] This dynamic allocation aims to keep the use of the host computer 200's processor 210 permanently below the first predetermined threshold, in order to preserve high performance despite the limitations of the host computer 200's resources.

[0143] In practice, the coprocessor 140 may, for example, decide to handle the majority of the calculations related to 3D rendering in a modeling application if the artificial intelligence module 150 detects this type of resource-intensive activity. However, if the user switches to a lighter office task, the artificial intelligence module 150 will identify this, and the coprocessor 140 will then reduce its workload, allowing the host computer's processor 210 200 to handle the bulk of the processing.

[0144] The mass storage device 100 thus continuously adapts to actual needs, dynamically transferring the workload from one processor to another to to maintain high performance, regardless of user activities. This load transfer occurs seamlessly, without requiring human intervention.

[0145] Furthermore, the mass storage device 100 according to the invention is capable of taking into account not only the type of activities in progress, but also their level of intensity and any variations over time. Thus, the artificial intelligence module 150 can detect whether a particularly resource-intensive application is launched or stopped, and predict accordingly the necessary adjustments in the distribution of the exchanged data.

[0146] The coprocessor 140 then immediately implements these adjustments via the communication protocol with the processor 210 of the host computer 200. For example, it can decide to delegate the entire intensive computing task to the coprocessor 140 as soon as it is launched, and then distribute it again on the two processors 140, 210 when its intensity decreases.

[0147] Similarly, the artificial intelligence module 150 is capable of detecting situations where several resource-intensive activities are carried out simultaneously by the user. It then predicts a distribution that allows the load to be fairly distributed across the coprocessor 140 and the processor 210 of the host computer 200, according to the respective priorities and needs of each task.

[0148] Thus, the mass storage device 100 continuously optimizes the use of available resources, proactively and intelligently adapting to the actual usage context at any given moment. It guarantees maximum performance, regardless of the conditions, while preserving the responsiveness of the host computer 200 by respecting the first predetermined threshold of its processor usage 210.

[0149] The operation of the invention

[0150] The mass storage device 100 according to the invention operates in the following manner to optimize the performance of the host computer 200 to which it is connected, while preserving the responsiveness of the latter.

[0151] Initially, the artificial intelligence module 150 installed on the non-volatile memory 130 of the mass storage device 100 continuously receives, via the operating system, usage data reflecting the state of the resources of the host computer 200.

[0152] From these raw usage data, the artificial intelligence module 150 calculates at least one characteristic parameter summarizing a particular aspect of resource consumption by the host computer 200.

[0153] The artificial intelligence module 150 then analyzes this or these characteristic parameters to deduce the resource usage profile(s) of the host computer 200 at the time considered.

[0154] Based on the identified usage profiles and associated user activities, the artificial intelligence module 150 then predicts the optimal distribution of the data exchanged between the co-processor 140 of the mass storage device 100 and the processor 210 of the host computer 200.

[0155] The coprocessor 140 of the mass storage device 100 then immediately implements, dynamically and in real time, the distribution of the exchanged data predicted by the artificial intelligence module 150. For this, it continuously adjusts the communication protocol with the processor 210 of the host computer 200, according to the usage profiles detected at each moment by the artificial intelligence module 150.

[0156] Advantages and industrial applications

[0157] The mass storage device 100 according to the invention has many advantages over existing solutions for optimizing the performance of an obsolete or resource-limited computer.

[0158] First, it allows for the use of additional computing resources external to the host computer 200, in the form of the co-processor 140 integrated into the mass storage device 100.

[0159] This extension of available processing power offers substantial performance gains for running resource-intensive applications on the host computer 200.

[0160] Next, the mass storage device 100 implements intelligent and predictive management of workload sharing between its own resources and those of the host computer 200.

[0161] Thanks to the artificial intelligence module 150, the distribution of tasks is optimized in real time to best adapt to the current usage context, thus guaranteeing maximum performance in all circumstances.

[0162] Moreover, this optimization of task distribution is done in a completely transparent and automatic manner for the user, without requiring any intervention or configuration on their part.

[0163] The user simply benefits from the performance gains provided by the mass storage device 100, while retaining a familiar user experience on his host computer 200.

[0164] The 100 mass storage device also provides an economical solution for extending the life of an obsolete computer.

[0165] Its acquisition cost remains much lower than that of a new, latest-generation computer, while offering substantial performance gains.

[0166] Finally, the 100 mass storage device is easily transportable and usable on different compatible host computers.

[0167] Its USB key-like design and small size make it a portable device that the user can take anywhere to boost the performance of any computer.

[0168] From an industrial point of view, the mass storage device 100 according to the invention finds many applications in various sectors requiring the execution of resource-intensive applications on limited or aging hardware configurations.

[0169] It can, for example, be used in the field of engineering and computer-aided design (CAD), to enable the smooth execution of complex 3D modeling software on workstations that have become obsolete.

[0170] The mass storage device 100 is also of great interest to the scientific research and high-performance computing (HPC) sector, offering a simple and economical way to temporarily increase the computing power available on an existing fleet of servers or workstations.

[0171] In the field of education and training, the 100 mass storage device can enable establishments with aging computer equipment to continue to offer courses requiring significant resources, such as courses in digital creation, computer graphics or video game development.

[0172] Finally, the 100 mass storage device is a relevant solution for independent professionals or small businesses that do not have the budgets to regularly upgrade their computer equipment. It allows them to keep their old computers while benefiting from increased performance at a reasonable cost.

[0173] First embodiment

[0174] In a first embodiment, the host computer 200 further includes at least one random access memory 220, called RAM.

[0175] The term "random access memory" refers to memory that enables the host computer 200 to temporarily store data and instructions during program execution.

[0176] Random Access Memory 220, also called "random access memory" or "RAM" (acronym for "Random Access Memory"), is volatile memory whose contents are lost when the host computer 200 is turned off.

[0177] In a first variant of the first embodiment, the mass storage device 100 also includes a RAM virtualization software module installed on the non-volatile memory 130.

[0178] The term "software module" refers to a set of instructions and data enabling the execution of a particular function when executed by a processor.

[0179] In the present case, the RAM virtualization software module has the function of enabling the use of a portion of the non-volatile memory 130 of the mass storage device 100 as expansion memory for the host computer 200 or additional virtual RAM for the host computer 200.

[0180] The RAM virtualization software module is designed to be executed by the coprocessor 140 of the mass storage device 100.

[0181] The RAM virtualization software module is designed to enable the processor 210 of the host computer 200 to use a portion of the non-volatile memory 130 of the mass storage device 100 as expansion memory for the host computer 200 or additional virtual RAM for the host computer 200.

[0182] In other words, the RAM virtualization software module creates additional virtual memory space, beyond the capacity of the physical RAM 220 present in the host computer 200, by using a portion of the high-capacity non-volatile memory 130 of the mass storage device 100. This makes it possible to virtually extend the amount of RAM 220 available to the host computer 200.

[0183] The RAM virtualization software module is also designed to manage bidirectional data transfers between the RAM of the host computer 200 and the non-volatile memory 130 used as expansion memory for the host computer 200 or additional virtual RAM for the host computer 200.

[0184] The RAM virtualization software module orchestrates and controls these data movements in both directions as required, transparently to the operating system and applications running on the host computer 200.

[0185] Thus, when the amount of physical RAM 220 becomes insufficient to store all the data and instructions required by the programs being run, the virtualization RAM software module automatically copies part of the RAM contents to the non-volatile memory 130 used as an extension, thereby freeing up space in the physical RAM.

[0186] Furthermore, the artificial intelligence module 150 of the mass storage device 100 is further designed to predict, from the detected usage profiles and associated user activities, an optimal allocation of the non-volatile memory 130 used as expansion memory for the host computer 200 or additional virtual RAM for the host computer 200.

[0187] The term "optimal allocation" here refers to the ideal amount of non-volatile memory space 130 to be used as virtual memory, so as to maintain permanently the quantity of physical RAM available in the host computer 220 above a second predetermined threshold.

[0188] In other words, the artificial intelligence module 150 analyzes in real time how the user uses the host computer 200 and the applications he uses.

[0189] Based on these usage profiles and associated activities, the artificial intelligence module 150 is able to predict future RAM requirements 220.

[0190] It can thus predict the optimal amount of non-volatile memory 130 to allocate as additional virtual memory so that the physical RAM 220 does not fall below a critical threshold.

[0191] This second predetermined threshold corresponds to a minimum amount of free RAM required to ensure smooth operation of the system, without slowdowns due to saturation of RAM 220.

[0192] The coprocessor 140 of the mass storage device 100 is further designed to implement dynamically and in real time, according to the resource usage profiles detected by the artificial intelligence module 150 at each instant, the optimal allocation of the non-volatile memory 130 used as expansion memory for the host computer 200 or additional virtual RAM for the host computer 200, predicted by the artificial intelligence module 150.

[0193] In concrete terms, the coprocessor 140 continuously receives predictions from the artificial intelligence module 150 on the optimal allocation of virtual memory required, depending on the real-time use of the computer by the user.

[0194] The coprocessor 140 then dynamically adjusts the amount of non-volatile memory 130 allocated as an extension of the RAM, following the recommendations of the artificial intelligence module 150.

[0195] If the latter predicts an increase in RAM requirements, coprocessor 140 increases the size of the virtual memory accordingly.

[0196] Conversely, if the artificial intelligence module 150 anticipates a decrease in the demand for RAM 220, the coprocessor 140 can reduce the portion of non-volatile memory 130 used as an extension.

[0197] Thus, thanks to the cooperation between the artificial intelligence module 150 which predicts the RAM requirements 220 and the co-processor 140 which implements its recommendations, the mass storage device 100 is able to continuously and autonomously optimize the amount of virtual memory according to usage, without user intervention.

[0198] This makes it possible to maintain high performance at all times by avoiding situations of saturation of the RAM 220, while making the best use of the high-capacity non-volatile memory 130 of the mass storage device 100.

[0199] In a second variant of the first embodiment, the mass storage device 100 uses the second RAM 160.

[0200] In practice, the artificial intelligence module 150 is further designed to predict, from the detected usage profiles and associated user activities, an optimal allocation of this second RAM 160. This optimal allocation aims to permanently maintain the amount of RAM 220 available in the host computer 200 above a third predetermined threshold.

[0201] In a manner analogous to the first variant, the coprocessor 140 is further designed to implement dynamically and in real time, according to the resource usage profiles detected by the artificial intelligence module 150 at each instant, the optimal allocation of the second RAM 160, as predicted by the artificial intelligence module 150.

[0202] Thus, the mass storage device 100 is capable of continuously and autonomously optimizing not only the allocation of non-volatile memory 130 used as virtual memory extension, but also the allocation of its own second RAM 160, in order to continuously guarantee an optimal performance level of the host computer 200.

[0203] It is important to note that the two variants of the first embodiment described above can be combined within the same mass storage device 100.

[0204] In other words, the mass storage device 100 can both include the second RAM 160 and the RAM virtualization software module installed on the non-volatile memory 130.

[0205] In this configuration, the artificial intelligence module 150 and the coprocessor 140 work together to optimize in real time the allocation of the second RAM 160 of the device, as well as the allocation of the non-volatile memory 130 used as virtual memory extension for the host computer 200 or additional virtual RAM for the host computer 200.

[0206] This combined approach allows for even finer and more efficient management of memory resources, thus ensuring optimal performance in all circumstances for the host computer 200.

[0207] Second embodiment

[0208] In a second embodiment, the artificial intelligence module 150 includes a set of specialized predictive machine learning models.

[0209] The term "specialized predictive machine learning model set" refers to a group of several artificial intelligence models, where each model is dedicated to a specific predictive task and is specifically optimized for that task.

[0210] For example, the set of specialized predictive machine learning models may include one model specialized in predicting user search intent, another model specialized in personalized content recommendation, and yet another specialized in anticipating future storage needs.

[0211] By way of example, the different types of user activity may include information search, content creation, file sharing, data backup, collaborative project management, or multimedia entertainment.

[0212] Each type of activity involves specific needs, behaviors and expectations from the user with respect to the mass storage device 100. For example, for an information search activity, the user will expect fast and relevant results, while for a data backup activity, they will want maximum security and reliability.

[0213] By segmenting user activities into different well-defined types, it becomes possible to associate each with a specialized predictive machine learning model capable of optimally meeting the specific needs of that type of activity.

[0214] In practice, the membership of a user activity in one or another predefined type can be determined automatically by the artificial intelligence module 150, for example by analyzing indicators such as the applications used, the nature of the files manipulated, browsing habits or even the requests formulated by the user.

[0215] Each specialized predictive machine learning model in the set is trained in a targeted manner on resource usage data collected and labeled during sessions corresponding to that particular activity.

[0216] Unlike generalist training where the model would learn in an undifferentiated way on all available data, targeted training aims to provide each specialized model only with the data most likely to enable it to excel in its preferred area.

[0217] All of this usage data reflects in detail the user's behavior and therefore provides an extremely rich learning basis for training predictive models in a relevant way.

[0218] Resource usage data is collected by the mass storage device 100 during user activity sessions.

[0219] Each session is therefore associated with a particular type of activity (search, saving, entertainment, etc.), and the usage data collected during this sessions are labeled accordingly, that is, they are marked as being representative of this type of activity.

[0220] Thus, for each type of user activity, the mass storage device 100 progressively accumulates a set of dedicated training data, specifically consisting of usage data collected and labeled during the sessions corresponding to that activity.

[0221] It is this "tailor-made" training data that is used to train in a targeted manner the specialized predictive machine learning model associated with the type of activity in question.

[0222] By proceeding in this way for each model / activity, we ultimately obtain a set of predictive models, each of which has learned from an optimal dataset for its task, giving it sharp expertise in its field of specialization.

[0223] Third embodiment

[0224] In a third embodiment, the artificial intelligence module 150 is further designed to receive resource usage data from the host computer 200 and dynamically adjust the sampling frequency.

[0225] In this third embodiment, the artificial intelligence module 150 of the mass storage device 100 is designed to continuously receive resource usage data from the host computer 200.

[0226] At startup, the artificial intelligence module 150 uses a predetermined default sampling frequency to collect this data.

[0227] This initial frequency is defined in advance, taking into account various factors such as the power of the host computer 200, the type of applications generally used, or the average needs of users. It aims to offer a good compromise between the precision of resource usage monitoring and the load induced on the system by the measurement process itself.

[0228] However, the artificial intelligence module 150 does not limit itself to this fixed sampling frequency.

[0229] It is designed to continuously analyze the collected usage data and extract representative profiles of workload variations over time.

[0230] Based on these profiles, the artificial intelligence module 150 is able to dynamically adapt the sampling frequency to closely follow the evolution of the resource requirements of the host computer 200.

[0231] When it detects significant and rapid variations in load, the artificial intelligence module 150 increases the sampling frequency. This allows it to obtain finer and more frequent measurements to accurately characterize these regime changes.

[0232] Conversely, when resource usage is stable and changes slowly, the artificial intelligence module 150 reduces the sampling frequency. Measurements are then spaced further apart, which limits the volume of data to be collected and processed.

[0233] Thus, by dynamically adjusting the sampling frequency, the artificial intelligence module 150 seeks to achieve two complementary objectives.

[0234] On the one hand, it aims to optimize the accuracy of its predictions on resource requirements, by collecting sufficiently fine and detailed data to capture significant variations in load.

[0235] On the other hand, it seeks to minimize the impact of its own operation on the performance of the host computer 200, by avoiding taking unnecessarily close measurements when resource usage is stable.

[0236] When the latter is fluctuating and unpredictable, it increases its level of vigilance by collecting data at a sustained pace. This gives it the means to precisely track these variations and refine its predictions accordingly.

[0237] Conversely, when faced with a more regular and predictable workload, he relaxes his attention and spaces out his measures to save resources.

[0238] This dynamic and self-adaptive operation represents a major advantage for the mass storage device 100.

[0239] It allows it to constantly adapt to the context of use and to offer the best compromise between the accuracy of its decisions and their cost in terms of resources consumed. The artificial intelligence module 150 can thus fulfill its role optimally, without penalizing the overall performance of the host computer 200.

[0240] For example, suppose that host computer 200 mainly performs low-resource-intensive office tasks, such as writing documents or checking emails.

[0241] In this case, the artificial intelligence module 150 adopts a relatively low sampling rate, on the order of one measurement every few seconds or minutes. This is sufficient to keep pace with the slow and steady evolution of the use of the host computer's processor 210 200 and non-volatile memory 130, without disrupting the machine's operation.

[0242] Now let us imagine that the user launches a resource-intensive application, such as a video game or 3D modeling software.

[0243] The artificial intelligence module 150 immediately detects this profile change through the sudden increase in the activity of the host computer's processor 210 200 and accesses to non-volatile memory 130. It reacts by significantly increasing its sampling frequency, which, for example, increases to several measurements per second. This allows it to track in real time the peaks and troughs in resource consumption for this new workload.

[0244] In other words, the artificial intelligence module 150 behaves a bit like a conductor who adapts his conducting rhythm to the score played by the musicians.

[0245] When the piece is slow and regular, a few broad and spaced-out gestures are enough to coordinate the whole.

[0246] But as soon as the rhythm accelerates and the notes multiply, the conductor must beat the beat more quickly and precisely to stay synchronized.

[0247] In practice, this dynamic adaptation relies on machine learning algorithms capable of analyzing time series of usage data.

[0248] The artificial intelligence module 150 searches for recurring patterns, trends, and characteristic thresholds that allow it to classify the behavior of resources. It can thus build a library of typical profiles associated with different usage contexts, such as office work, gaming, multimedia processing, etc.

[0249] Each profile defines a suitable sampling frequency range, which the artificial intelligence module 150 applies when it encounters a similar context.

[0250] Furthermore, the artificial intelligence module 150 is also capable of continuously refining its profiles and adaptation rules as it gains experience.

[0251] It can memorize the most frequent and representative resource usage sequences for each context.

[0252] It can adjust the sampling frequency change thresholds based on feedback on the accuracy of its predictions and the induced load.

[0253] Thus, its adaptive capabilities improve incrementally, allowing it to closely match the actual needs of the host computer 200.

[0254] Fourth embodiment

[0255] In a fourth embodiment, the artificial intelligence module 150 is designed to use at least one reinforcement learning technique based on a reward / penalty system.

[0256] By way of example, the term "reinforcement learning" can include Q-Learning, SARSA, Deep Q-Network, and Policy Gradient algorithms, but also variants such as Actor-Critic, which combines the ideas of Policy Gradient and Value Function Approximation; Temporal Difference (TD) Learning, which uses the temporal difference in rewards; Monte Carlo methods based on sampling; Proximal Policy Optimization (PPG), which improves upon policy gradient methods; and Trust Region Policy Optimization (TRPO), which now the new policy close to the old one, the Asynchronous Advantage Actor-Critic (A3C) exploiting parallelism, the Soft Actor-Critic (SAC) optimizing a stochastic policy, the Twin Delayed DDPG (TD3) correcting overvaluation problems, the Hindsight Experience Replay (HER) allowing learning from failures, as well as the Rainbow algorithm combining several improvements of DQN.

[0257] By way of example, the term "rewards / penalties system" may include the assignment of positive numerical values ​​for actions that lead to a desired goal, and negative values ​​for actions that move away from it.

[0258] Artificial intelligence module 150 is designed to use the reinforcement learning technique based on the reward / penalty system in order to optimize the prediction of the policy for distributing exchanged data and optimal allocation of memory.

[0259] Artificial intelligence module 150 iteratively adjusts predictions of the data distribution policy and optimal memory allocation.

[0260] This iterative adjustment aims to maximize rewards based on maintaining the use of the host computer 200's processor 210 and / or the non-volatile memory 130 used as expansion memory for the host computer 200 or additional virtual RAM for the host computer 200, within desirable predetermined threshold limits.

[0261] In other words, the artificial intelligence module 150 implements a trial-and-error optimization process, guided by a system of rewards and penalties, with the aim of determining the best strategies for managing data flows and available memory space.

[0262] This means that the module explores different combinations of distribution and allocation rules, while monitoring key performance metrics such as CPU load 210 and non-volatile memory usage 130.

[0263] The configurations producing the best results, i.e., remaining within the predefined desired limits, are then reinforced and favored for the next iteration. Conversely, the less efficient configurations are penalized and avoided.

[0264] Fifth embodiment

[0265] In a fifth embodiment, the artificial intelligence module 150 is designed to use at least one trained decision tree model to classify detected resource utilization profiles.

[0266] By way of example, the artificial intelligence module 150 may include a software library specializing in decision tree algorithms, a dedicated processor 210 optimized for this type of calculation, or an acceleration chip artificial intelligence. It can also be a cloud-based artificial intelligence service accessible via a programming interface.

[0267] The term "trained decision tree model" refers to a decision tree type machine learning model that has been trained on historical data to learn to classify new inputs.

[0268] A decision tree is a tree structure where each node represents a test on a characteristic of the data, and each descendant branch corresponds to one of the possible values ​​of that test. The leaves of the tree contain the final decisions or classifications.

[0269] As an example, the trained decision tree model may have been built from manually labeled past usage profiles, by identifying the discriminating characteristics that allow them to be classified into different categories.

[0270] This can be a single decision tree or a set of trees forming a random forest.

[0271] Other variants of decision trees such as regression trees, boosting trees or alternating decision trees can also be used.

[0272] The detected resource usage profiles are then provided as input to the artificial intelligence module 150, which submits them to the trained decision tree model for classification. Each detected profile is thus associated with a particular class or category, determined by the decision rules encoded in the tree structure.

[0273] Conclusion

[0274] We have described and illustrated the invention. However, the invention is not limited to the embodiments we have presented. Indeed, numerous combinations of variants, alternatives, embodiments, and implementations can be envisaged without requiring substantial modifications to the invention. Thus, an expert in the field can deduce other variants, alternatives, embodiments, and implementations by reading the description and the accompanying figures, and taking into account the economic, ergonomic, and dimensional constraints to be respected.

[0275] The invention can be the subject of numerous variations and applications other than those described above. In particular, unless otherwise indicated, the various structural and functional features of each particular embodiment described above should not be considered as combined and / or closely and / or inextricably linked to one another, but, on the contrary, as mere juxtapositions. Furthermore, the structural and / or functional features of the various embodiments described above may make the object in whole or in part of any different juxtaposition or any different combination.

Claims

1. Demands Mass storage device (100) specifically designed to be connected to a host computer (200) having resources, the resources comprising at least one processor (210) and at least one first random access memory (220), referred to as RAM, the mass storage device (100) comprising, - a casing (110), - a connector (120) designed to connect the mass storage device (100) to the host computer (200), - a non-volatile memory (130) integrated into the casing (110), the non-volatile memory (130) being accessible, via the connector (120), by the processor (210) of the host computer (200), - an operating system installed on non-volatile memory (130), the operating system being designed to use and share all or part of the resources of the host computer (200) and the mass storage device (100), - at least one coprocessor (140) which is integrated into the casing (110) and coupled to the non-volatile memory (130), the coprocessor (140) being designed to perform computational tasks in parallel with those performed by the processor (210) of the host computer (200), so as to reduce the workload of the processor (210) of the host computer (200), - a communication protocol specifically designed to be implemented by the coprocessor (140) and the processor (210) of the host computer (200), and ■ to perform, via connector (120), data exchanges between the coprocessor (140) and the processor (210) of the host computer (200), the data exchanges, referred to as exchanged data, including instructions, input / output data, computational tasks to be executed and / or results of computational tasks, and - an artificial intelligence module (150) integrated into the housing (110) and coupled to the non-volatile memory (130), the artificial intelligence module (150) being designed to: ■ to be executed by the coprocessor (140), ■ continuously receive data on the use of the host computer's resources (200), called usage data,

2. ■ determine, from the usage data, at least one characteristic parameter of the host computer's resource usage (200), ■ detect, from the characteristic parameter, one or more resource usage profiles by the host computer (200) at a given time, each profile being representative of one or more specific activities of the operating system user, ■ predict, from the detected usage profiles and the associated user activities, a distribution of the data exchanged between the coprocessor (140) and the processor (210) of the host computer (200), which is representative of keeping the use of the processor (210) of the host computer (200) below a first predetermined threshold, in which, - The coprocessor (140) is further designed to dynamically and in real time implement, based on the resource usage profiles detected by the artificial intelligence module (150) at any given time, the distribution of data exchanged between itself and the processor (210) of the host computer (200), as predicted by the artificial intelligence module (150). Mass storage device (100) according to claim 1, further comprising, - a RAM virtualization software module installed on non-volatile memory (130), the RAM virtualization software module being designed to, ■ to be executed by the coprocessor (140), ■ to allow the host computer's (200) processor (210) to use a portion of the non-volatile memory (130) as expansion memory for the host computer (200) or additional virtual RAM for the host computer (200), and ■ manage bidirectional data transfers between the host computer's RAM (200) and the non-volatile memory (130) used as expansion memory for the host computer (200) or additional virtual RAM for the host computer (200), wherein, - The artificial intelligence module (150) is further designed to predict, based on detected usage profiles and associated user activities, an optimal allocation of memory non-volatile (130) used as expansion memory for the host computer (200) or additional virtual RAM for the host computer (200), which is representative of maintaining the amount of RAM available on the host computer (200) above a second predetermined threshold, and - the coprocessor (140) is further designed to implement dynamically and in real time, based on resource usage profiles detected by the artificial intelligence module (150) at each instant, the optimal allocation of non-volatile memory (130) used as expansion memory for the host computer (200) or additional virtual RAM for the host computer (200), predicted by the artificial intelligence module (150).

3. Mass storage device (100) according to any one of claims 1 to 2, further comprising a second RAM (160), wherein - the artificial intelligence module (150) is further designed to predict, from the detected usage profiles and associated user activities, an optimal allocation of RAM (160), which is representative of maintaining the amount of RAM available on the host computer (200) above a third predetermined threshold, and - the coprocessor (140) is further designed to implement dynamically and in real time, according to the resource usage profiles detected by the artificial intelligence module (150) at each instant, the optimal allocation of RAM (160), predicted by the artificial intelligence module (150).

4. Mass storage device (100) according to any one of claims 1 to 3, wherein the artificial intelligence module (150) comprises a set of specialized predictive machine learning models, each model being dedicated to a specific type of user activity, and being trained in a targeted manner on resource usage data collected and labeled during sessions corresponding to that particular activity.

5. A storage device (100) according to any one of claims 1 to 4, wherein the artificial intelligence module (150) is further designed to: - receive resource usage data from the host computer (200) at an initial sampling frequency predetermined by default, and - dynamically adjust the sampling frequency to a higher or lower value based on all or part of the detected usage profiles so as to optimize the accuracy of the predictions of the artificial intelligence module (150) while minimizing the load on the resources of the host computer (200).

6. Mass storage device (100) according to any one of claims 1 to 5, wherein the artificial intelligence module (150) is further designed to use at least one reinforcement learning technique based on a reward / penalty system to optimize the prediction of the data exchange distribution policy and optimal memory allocation, by iteratively adjusting the predictions to maximize rewards based on maintaining the use of the host computer's (200) processor (210) and / or non-volatile memory (130) used as expansion memory for the host computer (200) or additional virtual RAM for the host computer (200), within desirable predetermined threshold limits.

7. Mass storage device (100) according to any one of claims 1 to 6, wherein the artificial intelligence module (150) is further designed to use at least one trained decision tree model to classify detected resource utilization profiles, each profile being associated with specific recommendations in terms of optimal policy for distributing exchanged data and optimal allocation of non-volatile memory (130) used as expansion memory for the host computer (200) or additional virtual RAM for the host computer (200), the recommendations being determined by the decision tree rules based on the characteristics of the utilization profile.

Citation Information

Patent Citations

  • Optimization of memory systems based on performance goals

    US20200272331A1

  • Predictive Data Orchestration in Multi-Tier Memory Systems

    US20220326868A1