Edge device using virtual machine and data processing method using same

By employing a virtual machine to manage addresses across local and remote memory and storage in edge devices, the limitations of resource-constrained edge devices are addressed, resulting in improved data processing performance and scalability.

WO2025110394A1PCT designated stage expired Publication Date: 2025-05-30INTELLECTUS CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/010262
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-21
Filing Date
2024-07-17
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

Edge devices in computing environments face limitations in scalability and flexibility due to restricted resources such as memory and storage, which hampers their ability to process increasing amounts of data required by various applications.

Method used

An edge device utilizing a virtual machine to map addresses within local and remote memory and storage systems, allowing the device to dynamically determine the most suitable storage medium for data processing based on storage capacity and communication speed, and enabling asynchronous synchronization of local and remote memory.

Benefits of technology

This approach enhances the data processing performance of edge devices by leveraging local resources as high-speed caches and remote resources as main memory, improving scalability and flexibility while overcoming resource constraints.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024010262_30052025_PF_FP_ABST
    Figure KR2024010262_30052025_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure provides an edge device using a virtual machine. This edge device comprises: a communication module configured to be able to communicate with a remote server system; a local memory; a local storage; and a micro-control unit which is connected to the local memory and the local storage, and configured to execute at least one computer-readable program included in at least one of the local memory and the local storage, wherein the micro-control unit includes a virtual machine for mapping an address in each of the local memory and the local storage and an address in each of a remote memory and a remote storage associated with the remote server system.
Need to check novelty before this filing date? Find Prior Art

Description

Edge devices using virtual machines and data processing methods using them

[0001] The present disclosure relates to an edge device using a virtual machine and a data processing method using the same, and more particularly, to an edge device including a virtual machine for mapping addresses within each of local memory and local storage and addresses within each of remote memory and remote storage associated with a remote server system, and a method for processing data using the virtual machine.

[0002] In general, an edge computing environment can refer to an environment where computing is performed on edge devices (or edge devices) to offset the data processing and network costs associated with cloud computing environments. While cloud computing environments typically involve processing all data in remote data centers, edge computing environments allow data to be processed on edge devices, such as user terminals.

[0003] Recently, edge computing environments require the processing of increasingly large amounts of data to run various applications. Consequently, the amount of data that edge devices must process is increasing, but the limited resources (e.g., memory and storage) of edge devices limit the scalability and flexibility of the system.

[0004] The present disclosure provides an edge device using a virtual machine and a data processing method using the same to solve the above-described problems.

[0005] The present disclosure can be implemented in various ways, including as a method, a device (system), or a computer program stored on a readable storage medium.

[0006] According to one embodiment of the present disclosure, an edge device using a virtual machine includes a communication module configured to communicate with a remote server system, a local memory, a local storage, and a microcontrol unit connected to the local memory and the local storage and configured to execute at least one computer-readable program contained in at least one of the local memory or the local storage, wherein the microcontrol unit may include a virtual machine for mapping addresses within each of the local memory and the local storage and addresses within each of the remote memory and the remote storage associated with the remote server system.

[0007] According to one embodiment of the present disclosure, the microcontrol unit may use at least one of the local memory or the local storage as a cache memory, and the microcontrol unit may use at least one of the remote memory or the remote storage as a main memory.

[0008] According to one embodiment of the present disclosure, remote memory associated with a remote server system can be synchronized with local memory within a virtual machine, and remote storage associated with the remote server system can be synchronized with local storage within the virtual machine.

[0009] According to one embodiment of the present disclosure, a script entered into a remote storage can be automatically updated in the remote storage.

[0010] According to one embodiment of the present disclosure, a microcontrol unit may be configured to generate and execute a program using an interpreter.

[0011] According to one embodiment of the present disclosure, the microcontroller unit may be further configured to update the code corresponding to the program via a Firmware Over-The-Air (FOTA) method.

[0012] According to one embodiment of the present disclosure, a microcontrol unit may be configured to determine at least one of local memory, local storage, remote memory, or remote storage as a storage medium for processing data based on a storage capacity required for processing data and an available storage capacity of at least one of local memory or local storage, and to provide a command for accessing the determined storage medium using a virtual machine to process the data.

[0013] According to one embodiment of the present disclosure, the microcontrol unit may be further configured to determine at least one of the local memory, the local storage, the remote memory, or the remote storage as a storage medium for processing data based on a communication speed between the edge device and the remote server system through the communication module and a data call cycle of at least one of the local memory or the local storage, and to provide a command for accessing the determined storage medium using a virtual machine to process the data.

[0014] According to one embodiment of the present disclosure, when providing instructions to access local memory and process data, the microcontrol unit may be further configured to asynchronously synchronize the local memory with the remote memory.

[0015] According to one embodiment of the present disclosure, a data processing method using a virtual machine may include a step of calculating a storage capacity for processing data, wherein the edge device includes a virtual machine for mapping addresses within each of a local memory and a local storage and addresses within each of a remote memory and a remote storage associated with a remote server system, a step of determining at least one of the local memory, the local storage, the remote memory, or the remote storage as a storage medium for processing data based on the calculated storage capacity for processing data and the available storage capacity of at least one of the local memory or the local storage, and a step of providing a command for accessing the determined storage medium using the virtual machine to process the data.

[0016] According to some embodiments of the present disclosure, by utilizing local memory and local storage included in an edge device as a high-speed cache, data can be quickly accessed and processed. Furthermore, by receiving and processing necessary data and commands from remote memory and storage in a remote server system, resource constraints of the edge device can be overcome, thereby enhancing system scalability. Consequently, the data processing performance of the edge device can be enhanced.

[0017] According to some embodiments of the present disclosure, data synchronization can be continuously performed between a remote server system and an edge device. Furthermore, by executing programs via an interpreter on the edge device, the flexibility of code for program creation or execution can be enhanced. Additionally, utilizing the interpreter can efficiently perform FOTA, and code modifications and updates can be easily implemented, facilitating system maintenance and upgrades.

[0018] The effects of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by a person having ordinary skill in the art to which the present disclosure belongs (referred to as “one skilled in the art”) from the description of the claims.

[0019] Embodiments of the present disclosure will be described below with reference to the accompanying drawings, wherein like reference numerals represent similar elements, but are not limited thereto.

[0020] FIG. 1 is a block diagram showing the internal configuration of an edge device provided according to one embodiment of the present disclosure.

[0021] FIG. 2 is a diagram illustrating an example of a virtual machine according to one embodiment of the present disclosure.

[0022] FIG. 3 is a diagram illustrating an example of executing a script input to a remote server system according to one embodiment of the present disclosure.

[0023] FIG. 4 is a diagram illustrating an example of a method by which a microcontrol unit determines a storage medium for data processing according to one embodiment of the present disclosure.

[0024] FIG. 5 is a diagram illustrating an example of a method by which a microcontrol unit determines a storage medium for data processing according to one embodiment of the present disclosure.

[0025] FIG. 6 is a diagram illustrating an example of synchronizing local memory and remote memory according to one embodiment of the present disclosure.

[0026] FIG. 7 is a flowchart illustrating an example of a method according to one embodiment of the present disclosure.

[0027] Hereinafter, specific details for implementing the present disclosure will be described in detail with reference to the attached drawings. However, in the following description, specific descriptions of widely known functions or configurations will be omitted if they may unnecessarily obscure the gist of the present disclosure.

[0028] In the attached drawings, identical or corresponding components are assigned the same reference numerals. Furthermore, in the description of the embodiments below, duplicate descriptions of identical or corresponding components may be omitted. However, even if a description of a component is omitted, it is not intended that such component is not included in any embodiment.

[0029] The advantages and features of the disclosed embodiments, and methods for achieving them, will become clearer with reference to the embodiments described below, along with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below and may be implemented in various different forms. These embodiments are provided solely to ensure the completeness of the disclosure and to fully inform those skilled in the art of the scope of the invention.

[0030] The terms used in this specification will be briefly explained, followed by a detailed description of the disclosed embodiments. The terms used in this specification have been selected from widely used, current terms, taking into account the functions of the present disclosure. However, these terms may vary depending on the intentions of engineers working in the relevant field, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, terms may be arbitrarily selected by the applicant, and in such cases, their meanings will be described in detail in the relevant description of the invention. Therefore, the terms used in this disclosure should not be defined simply as names of terms, but rather based on their meanings and the overall content of the present disclosure.

[0031] In this specification, singular expressions include plural expressions unless the context clearly indicates otherwise. Furthermore, plural expressions include singular expressions unless the context clearly indicates otherwise. When a part of the specification is said to include a component, this does not exclude other components, but rather implies that other components may be included, unless otherwise specifically stated.

[0032] Also, the term 'module' or 'part' used in the specification means a software or hardware component, and the 'module' or 'part' performs certain roles. However, the 'module' or 'part' is not limited to software or hardware. The 'module' or 'part' may be configured to reside on an addressable storage medium and may be configured to execute one or more processors. Thus, as an example, the 'module' or 'part' may include at least one of components such as software components, object-oriented software components, class components, and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, or variables. The functionality provided within the components and 'modules' or 'parts' may be combined into a smaller number of components and 'modules' or 'parts', or further separated into additional components and 'modules' or 'parts'.

[0033] According to one embodiment of the present disclosure, a 'module' or 'unit' may be implemented as a processor and a memory. 'Processor' should be broadly construed to include a general-purpose processor, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a controller, a microcontroller, a state machine, and the like. In some circumstances, a 'processor' may also refer to an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a field-programmable gate array (FPGA), and the like. A 'processor' may also refer to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of multiple microprocessors, a combination of one or more microprocessors in conjunction with a DSP core, or any other such combination of configurations. In addition, 'memory' should be broadly construed to include any electronic component capable of storing electronic information. 'Memory' may refer to various types of processor-readable media, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc. Memory is said to be in electronic communication with the processor if the processor can read information from, and / or write information to, the memory. Memory integrated in a processor is in electronic communication with the processor.

[0034] In the present disclosure, the "system" may include, but is not limited to, at least one of a server device and a cloud device. For example, the system may be comprised of one or more server devices. As another example, the system may be comprised of one or more cloud devices. As yet another example, the system may be configured and operated by a combination of a server device and a cloud device.

[0035] In the present disclosure, 'display' may refer to any display device associated with a computing device, for example, any display device capable of displaying any information / data controlled by or provided from the computing device.

[0036] In the present disclosure, 'each of the plurality of As' or 'each of the plurality of As' may refer to each of all components included in the plurality of As, or may refer to each of some components included in the plurality of As.

[0037] FIG. 1 is a block diagram illustrating the internal configuration of an edge device (110) provided according to one embodiment of the present disclosure. In one embodiment, the edge device (110) may include a microcontroller unit (MCU) (112), a communication module (114), a local memory (116), and local storage (118). In addition, the edge device (110) may transmit and receive data with a remote server system (120) through the communication module (114). Here, the remote server system (120) may be, but is not limited to, a central server system or a cloud server system.

[0038] The microcontrol unit (112) may be connected to a local memory (116) and a local storage (118). In addition, the microcontrol unit (112) may be configured to execute at least one computer-readable program contained in at least one of the local memory (116) or the local storage (118). Additionally, the microcontrol unit (112) may include a virtual machine for mapping addresses within each of the local memory (116), the local storage (118), the remote memory associated with the remote server system (120), and the remote storage. An example of the virtual machine is described in detail below with reference to FIG. 2.

[0039] The communication module (114) may provide a configuration or function for the edge device (110) and the remote server system (120) to communicate with each other via a network, and may also provide a configuration or function for the edge device (110) to communicate with other edge devices. For example, a request or data (e.g., a data processing request, etc.) generated by the processor of the edge device (110) according to a program code stored in a storage medium such as a local memory (116), a local storage (118), etc., may be transmitted to the remote server system (120) via a network under the control of the communication module (114). Conversely, a control signal or command provided under the control of the processor of the remote server system (120) may be received by the edge device (110) via the communication module (114) of the edge device (110) via the network.

[0040] Local memory (116) is a volatile storage medium that can be used to store data and intermediate results required during program execution. Additionally, local memory (116) can provide fast read and write speeds. For example, local memory (116) can refer to various types of processor-readable media, such as RAM, SRAM, etc.

[0041] Local storage (118) is a non-volatile storage medium that can be used for mid- to long-term preservation and storage of data. For example, local storage (118) can store large amounts of data, applications, operating systems, backup files, bootloaders, etc.

[0042] FIG. 2 is a diagram illustrating an example of a virtual machine (210) according to one embodiment of the present disclosure. In one embodiment, a microcontrol unit (112) may include a virtual machine (210) for mapping addresses within each of a local memory (116), a local storage (118), a remote memory (222) associated with a remote server system (120), and a remote storage (224). In this case, the virtual machine (210) may create a virtual memory map by allocating a logical address space to a storage medium for processing data. For example, the virtual machine (210) may include a first address (212) assigned to a remote memory (222), a second address (214) assigned to a remote storage (224), a third address (216) assigned to a local memory (116), and a fourth address (218) assigned to a local storage (118).

[0043] In one embodiment, each of the first to fourth addresses (212 to 218) may be mapped to an address of a storage medium through an address binding method. Accordingly, the microcontrol unit (112) may access the remote memory (222) and remote storage (224) of the remote server system (120) through the first address (212) and the second address (214), respectively. In addition, the microcontrol unit (112) may access the local memory (116) and local storage (118) of the edge device through the third address (216) and the fourth address (218), respectively.

[0044] In one embodiment, the microcontrol unit (112) may utilize at least one of the local memory (116) or the local storage (118) as a cache memory using the virtual machine (210). Here, utilizing as a cache memory may mean that the microcontrol unit (112) reads or writes frequently used data for quick access to at least one of the local memory (116) or the local storage (118). In addition, the microcontrol unit (112) may determine and utilize the local memory (116) or the local storage (118) as a cache memory depending on the type, size, access frequency, persistence, performance requirements, cost, etc. of the data to be processed. Alternatively, the microcontrol unit (112) may preferentially utilize the local memory (116) as a cache memory, and if the local memory (116) is unavailable, may utilize the local storage (118) as a cache memory in a later order.

[0045] In one embodiment, the microcontrol unit (112) may utilize at least one of the remote memory (222) or the remote storage (224) as the main memory by using the virtual machine (210). Here, utilizing as the main memory may mean that the microcontrol unit (112) reads or writes a large amount of data, data and instructions required for program execution, etc. to at least one of the remote memory (222) and the remote storage (224). For example, the remote memory (222) may be utilized as a heap, a stack, etc., and code for program creation or execution may be stored in the remote storage (224). In addition, the microcontrol unit (112) may determine and utilize the remote memory (222) or the remote storage (224) as the main memory depending on the type, size, access frequency, persistence, performance requirements, cost, etc. of data to be processed. Alternatively, the microcontrol unit (112) may preferentially use the remote memory (222) as the main memory, and if the remote memory (222) is not available, may use the remote storage (224) as the main memory in a secondary order. In this way, when the microcontrol unit (112) uses the remote memory (222) or the remote storage (224), the data access speed may be slower than when the microcontrol unit (112) accesses the local memory (116) or the local storage (118), but may be suitable for processing larger data.

[0046] This configuration utilizes the local memory and storage within the edge device as a high-speed cache, enabling rapid data access and processing. Furthermore, by receiving and processing necessary data and commands from the remote memory and storage of a remote server system, the resource constraints of the edge device can be overcome, enhancing system scalability. Consequently, the data processing performance of the edge device can be enhanced.

[0047] In FIG. 2, for convenience of illustration, one of the multiple addresses of the virtual machine (210) is depicted as being mapped to remote memory (222), remote storage (224), local memory (116), or local storage (118) within the remote server system (120), but each address may include multiple addresses representing multiple memory locations provided by the device. For example, a first address may include multiple addresses mapping multiple addresses within the remote memory (222).

[0048] FIG. 3 is a diagram illustrating an example of executing a script input into a remote server system (320) according to one embodiment of the present disclosure. In one embodiment, a developer (310) may input a script (312) to perform a specific task, such as updating the firmware of an edge device (330). In this case, the input script may be stored in remote memory or remote storage of the remote server system (320).

[0049] In one embodiment, the microcontroller of the edge device (330) can run a virtual machine via a bootloader. Here, the virtual machine can create and maintain a virtual memory map for the local memory and local storage of the edge device (330), as well as the remote memory and remote storage of the remote server system (320). In this case, by connecting the edge device to the remote server system (320), the edge device (330) and the remote server system (320) can be synchronized (322).

[0050] In one embodiment, the edge device (330) may determine a storage medium to be used to execute the input script (332). For example, if the data required for script execution is larger than a predetermined size, the edge device (330) may determine remote memory or remote storage as the storage medium. In this case, local memory or local storage may be synchronized with the remote memory or remote storage. As another example, if frequently used data is processed, the edge device (330) may determine local memory or local storage as the storage medium. Examples of how the storage medium is determined are described in detail below with reference to FIGS. 4 and 5 .

[0051] In one embodiment, the edge device (330) can execute a script by accessing a storage medium determined using a virtual machine and receiving a command to process the script (334). For example, if a script for updating the firmware of the edge device (330) is input, the script may be stored in the remote storage of the remote server system (320). In this case, the edge device (330) may select the remote storage as the storage medium to execute the script. Additionally, since the edge device (330) is connected to the remote server system (320) through the virtual machine, the script may be synchronized to the local storage of the edge device (330). That is, a script input to the remote storage of the remote server system (320) may be automatically updated to the local storage of the edge device (330). Accordingly, the firmware of the edge device (330) may be naturally updated by executing the script.

[0052] In one embodiment, a program running on the edge device (330), particularly the microcontroller unit, may be created and executed via an interpreter. For example, the edge device (330) may execute languages ​​such as Python and Lua via the interpreter, but is not limited thereto. Furthermore, by utilizing such an interpreter, the edge device (330) may be configured to update code or scripts corresponding to the program via a Firmware Over-The-Air (FOTA) method.

[0053] This configuration enables continuous data synchronization between the remote server system and the edge device. Furthermore, by executing programs via an interpreter on the edge device, the flexibility of code for program creation and execution can be enhanced. Furthermore, utilizing the interpreter enables efficient FOTA operation, and code modifications and updates are easy, facilitating system maintenance and upgrades.

[0054] FIG. 4 is a diagram illustrating an example of a method for a microcontroller unit to determine a storage medium for data processing according to one embodiment of the present disclosure. In one embodiment, the method may be performed by at least one processor of an edge device (particularly, the microcontroller unit). The processor may receive a data processing request through various applications, etc. (S410). In this case, the processor may determine at least one of local memory, local storage, remote memory of a remote server system, or remote storage as a storage medium for data processing based on the storage capacity required for data processing and the available storage capacity of at least one of local memory or local storage.

[0055] Specifically, the processor can calculate the storage capacity required to process data (S420). Thereafter, the processor can determine whether at least one of the edge device's local memory or local storage has available storage capacity (S430). If available storage capacity is secured, the processor can process data using the local memory or local storage (S450).

[0056] If available storage capacity is not secured, the processor may process data using remote memory or remote storage (S440). At this time, each local memory or local storage may be synchronized with the remote memory or remote storage. In this case, only the pages required for data processing from the remote memory or remote storage may be loaded into the local memory or local storage using methods such as segmentation or demand paging.

[0057] FIG. 5 is a diagram illustrating an example of a method for a microcontroller unit to determine a storage medium for data processing according to one embodiment of the present disclosure. In one embodiment, the method may be performed by at least one processor of an edge device (specifically, the microcontroller unit). When a data processing request is received through various applications, etc., the processor may calculate the storage capacity required to process the data. In addition, the processor may determine whether at least one of the local memory or local storage of the edge device has available storage capacity (S510).

[0058] If available storage capacity is secured, the processor can measure the communication speed between the edge device and the remote server system via the communication module (S520). Furthermore, the processor can calculate the data call cycle of at least one of the local memory and local storage (S530). Thereafter, the processor can determine whether data processing is possible within the calculated call cycle based on the measured current communication speed (S540).

[0059] If available storage capacity is not secured, or if available storage capacity is secured but data can be processed within the call cycle at the current communication speed, the processor may process the data using remote memory or remote storage (S550). At this time, each of the local memory or local storage may be synchronized with the remote memory or remote storage. In this case, only the pages required for data processing from the remote memory or remote storage may be loaded into the local memory or local storage through a method such as segmentation or demand paging. If available storage capacity is secured and data cannot be processed within the call cycle at the current communication speed, the processor may process the data using local memory or local storage (S560).

[0060] FIG. 6 is a diagram illustrating an example of synchronizing a local memory and a remote memory according to one embodiment of the present disclosure. In one embodiment, at least one processor of an edge device (particularly, a microcontroller unit) may use the local memory of the edge device as a storage medium for processing data (S610). For example, as described above with reference to FIGS. 4 and 5 , the processor may determine and use the local memory as a storage medium for processing data. Alternatively, if the processor determines the remote memory as a storage medium for processing data, the processor may synchronize the local memory with the remote memory and then use the local memory.

[0061] In one embodiment, if synchronization between local and remote memory is required, the processor may store the address of remote memory using the address of remote memory provided by the virtual machine (S620). This allows the processor to access remote memory of a remote server system over the network.

[0062] Afterwards, the processor can synchronize local and remote memory (S630). In this case, synchronization can be performed asynchronously. Furthermore, during the synchronization process, the processor can efficiently utilize remote memory by loading only the pages necessary for data processing, program execution, etc. from remote memory into local memory using demand paging.

[0063] In Fig. 6, local memory and remote memory are shown to be synchronized, but this is not limited to the case, and local storage and remote storage can be synchronized.

[0064] FIG. 7 is a flowchart illustrating an example of a method (700) according to one embodiment of the present disclosure. In one embodiment, the method (700) may be performed by at least one processor of an edge device (e.g., 110 of FIG. 1 ). The method (700) may begin with the processor calculating a storage capacity for processing data (S710). Here, the edge device may include a virtual machine for mapping addresses within each of local memory and local storage, and addresses within each of remote memory and remote storage associated with a remote server system.

[0065] Thereafter, the processor may determine at least one of local memory, local storage, remote memory, or remote storage as a storage medium for processing data based on the storage capacity calculated for processing data and the available storage capacity of at least one of local memory or local storage (S720). In addition, the processor may access the determined storage medium using a virtual machine and provide a command for processing data (S730).

[0066] The above-described method may be provided as a computer program stored on a computer-readable recording medium for execution on a computer. The medium may be one that continuously stores a computer-executable program or one that temporarily stores it for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or multiple hardware combinations, and is not limited to a medium directly connected to a computer system, but may also be distributed over a network. Examples of the medium may include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and those configured to store program instructions, including ROM, RAM, and flash memory. In addition, examples of other media may include recording or storage media managed by app stores that distribute applications, sites that supply or distribute various software, servers, etc.

[0067] The methods, operations, or techniques of the present disclosure may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will appreciate that the various exemplary logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various exemplary components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software will depend on the particular application and the design requirements imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each particular application, but such implementations should not be construed as departing from the scope of the present disclosure.

[0068] In a hardware implementation, the processing units used to perform the techniques may be implemented within one or more ASICs, DSPs, GPUs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, a computer, or a combination thereof.

[0069] Accordingly, the various exemplary logical blocks, modules, and circuits described in connection with the present disclosure may be implemented or performed by any combination of a general-purpose processor, a DSP, an ASIC, an FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or those designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

[0070] In a firmware and / or software implementation, the techniques may be implemented as instructions stored on a computer-readable medium, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, a compact disc (CD), a magnetic or optical data storage device, etc. The instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described herein.

[0071] When implemented in software, the techniques may be stored on or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media, including any medium that facilitates transfer of a computer program from one place to another. Storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. In addition, any connection is suitably made to a computer-readable medium.

[0072] For example, if the software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, digital subscriber line, or wireless technologies such as infrared, radio, and microwave are included within the definition of media. Disk and disc, as used herein, includes compact discs, laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, where disks usually reproduce data magnetically, whereas discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0073] A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. Alternatively, the processor and the storage medium may reside as discrete components in the user terminal.

[0074] While the embodiments described above have been described as utilizing aspects of the presently disclosed subject matter in one or more standalone computer systems, the present disclosure is not limited thereto and may be implemented in conjunction with any computing environment, such as a network or distributed computing environment. Furthermore, aspects of the present disclosure may be implemented in multiple processing chips or devices, and storage may be similarly affected across multiple devices. Such devices may include personal computers, network servers, and portable devices.

[0075] While the present disclosure has been described in connection with certain embodiments herein, various modifications and variations may be made without departing from the scope of the present disclosure, which would be apparent to those skilled in the art. Furthermore, such modifications and variations are intended to fall within the scope of the claims appended to this specification.

Claims

1. For edge devices using virtual machines, A communications module configured to communicate with a remote server system; local memory; local storage; and A microcontrol unit connected to said local memory and said local storage, and configured to execute at least one computer-readable program contained in at least one of said local memory or said local storage, An edge device, wherein the microcontrol unit includes a virtual machine for mapping addresses within each of the local memory and local storage and addresses within each of the remote memory and remote storage associated with the remote server system.

2. In paragraph 1, The microcontrol unit uses at least one of the local memory or the local storage as a cache memory, An edge device wherein the microcontrol unit uses at least one of the remote memory or the remote storage as a main memory.

3. In paragraph 1, The remote memory associated with the above remote server system is synchronized with the local memory within the above virtual machine, An edge device, wherein remote storage associated with said remote server system is synchronized with local storage within said virtual machine.

4. In paragraph 1, An edge device in which a script entered into the above remote storage is automatically updated in the above local storage.

5. In paragraph 1, The above microcontrol unit is an edge device configured to generate and execute a program using an interpreter.

6. In paragraph 5, An edge device wherein the above microcontrol unit is further configured to update code corresponding to the above program via a Firmware Over-The-Air (FOTA) method.

7. In paragraph 1, The above microcontrol unit, Based on the storage capacity required to process the data and the available storage capacity of at least one of the local memory or the local storage, at least one of the local memory, the local storage, the remote memory or the remote storage is determined as a storage medium for processing the data, An edge device configured to access the determined storage medium using the virtual machine and provide a command to process the data.

8. In paragraph 7, The above microcontrol unit, Further based on the communication speed between the edge device and the remote server system through the communication module and the data call cycle of at least one of the local memory or the local storage, at least one of the local memory, the local storage, the remote memory or the remote storage is determined as a storage medium for processing the data, An edge device further configured to provide a command to access the determined storage medium using the virtual machine and process the data.

9. In paragraph 7, An edge device, wherein when providing a command to access said local memory and process data, said microcontrol unit is further configured to asynchronously synchronize said local memory with said remote memory.

10. A method for processing data using a virtual machine, performed by at least one processor of an edge device, A step of calculating a storage capacity for processing data, wherein the edge device includes a virtual machine for mapping addresses within each of the local memory and local storage and addresses within each of the remote memory and remote storage associated with a remote server system; A step of determining at least one of the local memory, the local storage, the remote memory or the remote storage as a storage medium for processing the data based on the storage capacity calculated for processing the data and the available storage capacity of at least one of the local memory or the local storage; and A step of providing a command to access the determined storage medium using the virtual machine and process the data. A method for processing data using a virtual machine, including:

Citation Information

Patent Citations

  • High performance ip processor for tcp / ip, rdma and ip storage applications

    JP2006516054A

  • A method, system and computer readable media for managing hybrid memory

    KR1020110091134A

  • Latency reduction associated with a response to a request in a storage system

    KR1020120050891A

  • Method for synchronizing RF data and apparatus for same

    KR1020140034344A

  • Method and apparatus for providing firmware over the air service to user equipments

    KR1020140100501A