Electronic device including cache memory and operating method of electronic device
The electronic device method optimizes data retrieval for web applications by comparing network and cache response times, ensuring efficient data handling and improved performance by utilizing cache memory when appropriate, thus addressing the latency issues in web application operations.
Patent Information
- Application Number
- PCT/KR2024/010049
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-07-21
- Filing Date
- 2024-07-12
- Publication Date
- 2025-01-30
AI Technical Summary
The operation of web applications or web browsers on electronic devices often experiences slower data retrieval from servers due to network latency, which can be mitigated by utilizing cache memory to store necessary data, but existing methods do not efficiently compare and utilize cache and network data response times to optimize performance.
An electronic device and method that includes a processor to compare the expected response times for network and cache data, determining whether to request data from the server or retrieve it from cache memory based on these times, thereby optimizing data retrieval for web applications by executing commands to handle network or cache data accordingly.
This approach enhances the performance of web applications by efficiently determining whether to use cached data or retrieve data from the server, reducing latency and improving execution speed by leveraging cache memory when response times are favorable.
Smart Images

Figure KR2024010049_30012025_PF_FP_ABST
Abstract
Description
Electronic devices including cache memory and methods of operating the electronic devices
[0001] The present disclosure relates to an electronic device and a method of operating the electronic device. Specifically, the present disclosure relates to an electronic device including a cache memory and a method of operating the electronic device.
[0002] With the advancement of electronic devices and network technology, actions such as running a web application or web browser on an electronic device, requesting data from a server, and receiving data from the server to run a web application or web browser are being used.
[0003] At this time, since the operation of receiving data from a server through a network is generally slower than the operation of requesting and receiving data within an electronic device, data that is repeatedly used in the operation of a web application or web browser is stored in the cache memory of the electronic device, and the electronic device may receive data necessary for executing a web application or web browser from the cache memory.
[0004] One embodiment of the present disclosure provides an electronic device. The electronic device may include a memory storing at least one instruction. The electronic device may include a cache memory storing cache data. The electronic device may include at least one processor executing at least one instruction stored in the memory. The electronic device may include a communication interface. The at least one processor may receive a request to retrieve network data provided from a server by executing the at least one instruction. The at least one processor may compare an expected network response performance, which indicates an expected time required for an operation to retrieve network data from the server by executing the at least one instruction, with an expected cache response performance, which indicates an expected time required for an operation to retrieve cache data corresponding to the network data from a cache memory. The at least one processor may, by executing the at least one instruction, request the network data from the server via the communication interface to obtain the network data, or request cache data from the cache memory to obtain the cache data, based on the comparison result. The at least one processor may process the network data or the cache data obtained by executing the at least one instruction.
[0005] One embodiment of the present disclosure provides a method for operating an electronic device. The method for operating the electronic device may include a step of receiving a request to retrieve network data provided from a server. The method for operating the electronic device may include a step of comparing an expected network response performance, which indicates an expected time required for an operation to retrieve network data from the server, with an expected cache response performance, which indicates an expected time required for an operation to retrieve cache data corresponding to the network data from a cache memory that stores cache data. The method for operating the electronic device may include a step of requesting network data from a server through a communication interface to obtain the network data, or requesting cache data from a cache memory to obtain cache data, based on a result of the comparison. The method for operating the electronic device may include a step of processing the obtained network data or the obtained cache data.
[0006] As one embodiment of the present disclosure, a computer-readable recording medium having recorded thereon a program for performing at least one method of the disclosed operating method on a computer may be provided.
[0007] The present disclosure may be understood in conjunction with the following detailed description and accompanying drawings, wherein reference numerals refer to structural elements.
[0008] FIG. 1 is a drawing for explaining the operation of an electronic device according to one embodiment of the present disclosure.
[0009] FIG. 2 is a drawing for explaining the operation of an electronic device according to one embodiment of the present disclosure.
[0010] FIG. 3 is a block diagram illustrating the configuration of an electronic device according to one embodiment of the present disclosure.
[0011] FIG. 4 is a flowchart for explaining the operation of an electronic device according to one embodiment of the present disclosure.
[0012] FIG. 5 is a flowchart illustrating an operation of comparing network expected response performance and cache expected response performance according to one embodiment of the present disclosure.
[0013] FIG. 6 is a flowchart illustrating an operation for determining whether cache data is valid according to one embodiment of the present disclosure.
[0014] FIG. 7 is a flowchart illustrating an operation for determining whether cache data is valid after comparing network expected response performance and cache expected response performance according to one embodiment of the present disclosure.
[0015] FIG. 8 is a flowchart illustrating an operation for determining whether a request to retrieve network data is required according to one embodiment of the present disclosure.
[0016] FIG. 9 is a flowchart illustrating an operation of executing an application based on acquired network data or acquired cache data according to one embodiment of the present disclosure.
[0017] FIG. 10 is a flowchart for explaining the operation of an electronic device according to the relationship between the occurrence time of a network data request and a preset reference time according to one embodiment of the present disclosure.
[0018] FIG. 11 is a flowchart illustrating the operation of an electronic device requesting network data from a server and requesting cache data from a cache memory according to one embodiment of the present disclosure.
[0019] FIG. 12A is a diagram illustrating an electronic device executing an application according to one embodiment of the present disclosure.
[0020] FIG. 12B is a diagram illustrating an electronic device executing an application in which a plurality of operations are performed according to one embodiment of the present disclosure.
[0021] FIG. 13 is a diagram illustrating an electronic device in which multiple applications are executed according to one embodiment of the present disclosure.
[0022] The terms used in this disclosure will be briefly explained, and one embodiment of the present disclosure will be specifically described.
[0023] The terms used in this disclosure are selected from widely used, current terms, taking into account the functions of one embodiment of the disclosure. However, these terms may vary depending on the intentions of those skilled in the art, 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 description of the relevant embodiments of the disclosure. Therefore, the terms used in this disclosure should not be defined simply as names of terms, but rather based on the meanings of the terms and the overall content of the disclosure.
[0024] Singular expressions may include plural expressions unless the context clearly indicates otherwise. Terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art described herein.
[0025] Unless the context clearly dictates otherwise, the singular forms "a," "an," and "the" are to be understood to include plural referents. Thus, for example, the description "a constituent surface" may also include reference to one or more of such surfaces.
[0026] Throughout this disclosure, when a part is said to "include" a component, this does not exclude other components, but rather implies the inclusion of other components, unless otherwise specifically stated. Furthermore, terms such as "part," "module," and the like described herein refer to a unit that processes at least one function or operation, which may be implemented in hardware or software, or a combination of hardware and software.
[0027] The expression “configured to” as used herein can be used interchangeably with, for example, “suitable for,” “having the capacity to,” “designed to,” “adapted to,” “made to,” or “capable of.” The term “configured to” does not necessarily mean something that is “specifically designed to” in terms of hardware. Instead, in some contexts, the expression “a system configured to” can mean that the system is “capable of” doing something together with other devices or components. For example, the phrase “a processor configured (or set) to perform A, B, and C” may mean a dedicated processor (e.g., an embedded processor) for performing those operations, or a generic-purpose processor (e.g., a CPU or application processor) that can perform those operations by executing one or more software programs stored in memory.
[0028] Additionally, when a component is referred to as being “connected” or “connected” to another component in the present disclosure, it should be understood that the component may be directly connected or connected to the other component, but may also be connected or connected via another component in between, unless otherwise specifically stated.
[0029] It should be understood that the blocks and combinations of flowcharts in each flowchart can be executed by one or more computer programs containing computer-executable instructions. The one or more computer programs may be stored entirely in a single memory, or may be stored in separate portions across multiple different memories.
[0030] All functions or operations described in this document may be performed by a single processor or a combination of processors. A single processor or a combination of processors is a circuitry that performs processing, and may include circuitry such as an Application Processor (AP), a Communication Processor (CP), a Graphical Processing Unit (GPU), a Neural Processing Unit (NPU), a Microprocessor Unit (MPU), a System on Chip (SoC), or an Integrated Chip (IC).
[0031] Below, with reference to the attached drawings, embodiments of the present disclosure are described in detail so that those skilled in the art can easily implement the present disclosure. However, one embodiment of the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in the drawings, parts irrelevant to the description are omitted to clearly describe one embodiment of the present disclosure, and similar parts are designated with similar drawing reference numerals throughout the present disclosure.
[0032] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings.
[0033] FIG. 1 is a drawing for explaining the operation of an electronic device according to one embodiment of the present disclosure.
[0034] Referring to FIG. 1, in one embodiment of the present disclosure, an electronic device (100) may be an electronic device for executing an application. In one embodiment of the present disclosure, the electronic device (100) may be an electronic device having various shapes, such as a television, a mobile phone, a smart phone, a tablet personal computer, a wearable device, a healthcare device or an Internet of Things (IoT) device, a personal computer, a laptop computer, a server, a media player, or an automotive device such as a navigation system.
[0035] In one embodiment of the present disclosure, an application executed by the electronic device (100) may include an image, a document (text), a video, an audio, a web page, a web application, or a mobile application.
[0036] In one embodiment of the present disclosure, the electronic device (100) may include at least one processor (110), a memory (130), and a storage device (140). However, the components of the electronic device (100) illustrated in FIG. 1 are merely illustrated to explain the operation of the electronic device (100), and not all of the components illustrated in FIG. 1 are essential components. The electronic device (100) may be implemented with more components than the components illustrated in FIG. 1, or may be implemented with fewer components.
[0037] In one embodiment of the present disclosure, the file system (120) may refer to a method for organizing and managing data, materials, or files included in the electronic device (100). In one embodiment of the present disclosure, the memory (130) and the storage device (140) may be organized and managed through the file system (120). In one embodiment of the present disclosure, at least one instruction stored in the memory (130) and data stored in the storage device (140) may be organized and managed through the file system (120). At least one processor (110) may execute at least one instruction stored in the memory (130) through the file system (120), or request data from the storage device (140) and read out the stored data. Hereinafter, for convenience of explanation, at least one processor (110) executing at least one command stored in memory (130) through file system (120) may be referred to as at least one processor (110) executing at least one command stored in memory (130). In addition, at least one processor (110) requesting data from storage device (140) through file system (120) and reading out necessary data from storage device (140) may be referred to as at least one processor (110) requesting data from storage device (140) and reading out necessary data from storage device (140).
[0038] In one embodiment of the present disclosure, at least one processor (110) can execute at least one application by executing at least one instruction stored in the memory (130). At least one processor (110) can request data for executing at least one application from a storage device (140) and read out necessary data from the storage device (140) by executing at least one instruction stored in the memory (130). In one embodiment of the present disclosure, the storage device (140) can include a non-volatile storage device that stores data regardless of whether power is supplied.
[0039] In one embodiment of the present disclosure, when network data provided from a server (150) is required to execute some of at least one application, at least one processor (110) may request network data from the server (150) and obtain network data from the server (150) by executing at least one instruction stored in the memory (130). The server (150) performs data communication with the electronic device (100) through a communication interface, and may include a web server, an application server, or a database management system (DBMS).
[0040] In one embodiment of the present disclosure, network data may be data provided by a server (150) in response to a request from at least one processor (110). The network data may be composed of a header and a body. In one embodiment of the present disclosure, the header may include metadata information of the network data. The header may include the type and size of the network data, request time and response time, validity period of the network data, cache control information of the network data, and the like. In one embodiment of the present disclosure, the body may include information about the network data required to execute an application.
[0041] In one embodiment of the present disclosure, the storage device (140) may include a cache memory (141) in which cache data is stored. At least one processor (110) may store network data as cache data in the cache memory (141) based on a header of the provided network data. In one embodiment of the present disclosure, the network data may be stored as cache data based on cache control information included in the header of the network data.
[0042] In one embodiment of the present disclosure, when network data provided from a server (150) is required to execute some of at least one application, at least one processor (110) may determine whether cache data stored in a cache memory (141) is valid by executing at least one instruction stored in a memory (130). In one embodiment of the present disclosure, at least one processor (110) may determine whether cache data is valid based on information such as a request time, a response time, and a validity period of network data included in a header of the cache data. In one embodiment of the present disclosure, the header of the cache data may also include a validity period of the cache data.
[0043] In one embodiment of the present disclosure, when the cache data stored in the cache memory (141) is determined to be valid, at least one processor (110) may request cache data corresponding to network data from the cache memory (141) by executing at least one instruction stored in the memory (130), and may read and obtain the cache data from the cache memory (141). In one embodiment of the present disclosure, when the cache data stored in the cache memory (141) is determined to be invalid, at least one processor (110) may request network data from the server (150) through the communication interface by executing at least one instruction stored in the memory (130), and may obtain the network data from the server (150).
[0044] In one embodiment of the present disclosure, at least one processor (110) may execute multiple applications. Each of the multiple applications may include different types of content.
[0045] In one embodiment of the present disclosure, at least one processor (110) can request data for execution of each of a plurality of applications through a file system (120) and obtain the requested data.
[0046] In one embodiment of the present disclosure, if an application among a plurality of applications requires network data from a server (150) for execution, at least one processor (110) may request network data from the server (150) to execute the application. At this time, if cache data corresponding to the network data is stored in the cache memory (141), at least one processor (110) may request the cache data from the cache memory (141) through the file system (120) rather than the server (150).
[0047] However, when at least one processor (110) executes multiple applications, a bottleneck in the input / output of the file system (120) may occur in the process of requesting data through the file system (120) and repeating the operation of obtaining the requested data. In this case, the time taken for the operation of requesting network data from the server (150) and obtaining network data is shorter than the time taken for the operation of requesting cache data from the cache memory (141) through the file system (120) and obtaining the cache data, so it may be more efficient in terms of time.
[0048] Hereinafter, embodiments are disclosed for explaining an electronic device and an operating method of the electronic device that obtain data required for executing an application in an efficient manner based on a comparison result between a cache expected response performance indicating an expected time required for an operation to retrieve cache data from a cache memory (141) and a network expected response performance indicating an expected time required for an operation to retrieve network data from a server (150), even if the cache data exists in the cache memory (141).
[0049] In one embodiment of the present disclosure, when multiple applications are executed in the electronic device (100), (e.g., when booting the electronic device (100) or when executing multiple applications together in a short period of time), at least one processor (110) may request data for executing each of the multiple applications from the storage device (140). In one embodiment of the present disclosure, FIG. 1 illustrates a case where the electronic device (100) executes a first application (111), a second application (112), and a third application (113). However, the present disclosure is not limited thereto, and the electronic device (100) may execute two applications, or four or more applications.
[0050] In one embodiment of the present disclosure, at least one processor (110) may request data for executing a first application (111) from a storage device (140). At least one processor (110) may request data for executing a second application (112) from a storage device (140). At least one processor (110) may request data stored in the storage device (140) among data for executing a third application (113) from the storage device (140).
[0051] In one embodiment of the present disclosure, the third application (113) may be an application that requires network data to be provided from a server (150) in order to be executed. At least one processor (110) may determine whether cache data stored in a cache memory (141) is valid through a cache control (114). If the cache data is determined to be valid, the at least one processor (110) may request the cache data from the storage device (140). If the cache data is determined to be invalid, the at least one processor (110) may request network data from the server (150) through a communication interface.
[0052] In one embodiment of the present disclosure, a signal transmitted by at least one processor (110) to request data from a storage device (140) may be accumulated in a queue of a file system (120). In one embodiment of the present disclosure, the queue is a data structure in the form of a Priority Queue, and the file system (120) may process data requests from at least one processor (110) accumulated in the queue to provide corresponding data. The file system (120) may process not only a signal requesting data from a storage device (140) accumulated in the queue, but also a signal requesting at least one command from a memory (130), and provide corresponding data or at least one command to at least one processor (110). At this time, since the processing speed of the file system (120) is limited, if the number of data request signals and signals requesting at least one command accumulated in the queue increases, the speed at which data corresponding to a data request at the back of the processing order is provided may also slow down. Due to the input / output bottleneck of this file system (120), the execution speed of the application in the electronic device (100) may be slowed down.
[0053] However, the present disclosure is not limited thereto, and a bottleneck in the input / output of the storage device (140) may occur in which a data request signal requesting data from at least one processor (110) to the storage device (140) is accumulated in the queue of the storage device (140), thereby slowing down the speed at which the storage device (140) provides data corresponding to the data request signal.
[0054] At this time, since the processing speed of the storage device (140) is limited, if the number of data request signals accumulated in the queue increases, the speed at which data corresponding to data requests at the back of the processing order is provided may also slow down. Due to this input / output bottleneck phenomenon, the execution speed of the application in the electronic device (100) may slow down.
[0055] In one embodiment of the present disclosure, at least one processor (110) may perform an operation (115) of comparing a network expected response performance, which represents a performance calculated based on retrieving network data from a server (150) upon requesting network data from the server (150), with a cache expected response performance, which represents a performance calculated based on retrieving cache data from a cache memory (141) included in a storage device (140) upon requesting cache data from the cache memory (141).
[0056] In one embodiment of the present disclosure, when it is determined that the network expected response performance is higher than the cache expected response performance, at least one processor (110) may request network data from a server (150) via a communication interface, obtain the network data from the server (150), and execute and display the network data through a third application (113). Through this, even if the cache data is stored in the cache memory (141), the network data can be obtained through a server (150) with high response performance, thereby increasing the operating speed of the third application (113).
[0057] In one embodiment of the present disclosure, at least one processor (110) may request network data from a server (150) through a communication interface and obtain the network data from the server (150) to execute a third application (113) when it is determined that the network expected response performance is equal to the cache expected response performance. Through this, the number of data request signals accumulated in the queue of the storage device (140) including the cache memory (141) can be reduced, thereby preventing the execution speeds of the first application (111) and the second application (112) from being slowed down due to an input / output bottleneck.
[0058] In one embodiment of the present disclosure, at least one processor (110) may request cache data from the cache memory (141) and obtain the cache data from the cache memory (141) to execute the third application (113) when it is determined that the cache expected response performance is higher than the network expected response performance. Through this, the cache data may be obtained from the cache memory (141) at a faster speed than when network data is obtained from the server (150), thereby increasing the execution speed of the third application (113).
[0059] Below, the operation of calculating and comparing the network expected response performance and the cache expected response performance will be described later in FIGS. 3 to 5.
[0060] FIG. 2 is a drawing for explaining the operation of an electronic device according to one embodiment of the present disclosure. Hereinafter, the same components as those in FIG. 1 are assigned the same reference numerals, and redundant descriptions are omitted.
[0061] In one embodiment of the present disclosure, referring to FIG. 2, FIG. 2 illustrates a case where one application (200) is executed in an electronic device (100). In one embodiment of the present disclosure, even if one application (200) is executed in the electronic device (100), if multiple operations are performed within the application (200), the number of data request signals accumulated in the queue of the storage device (140) increases, and the speed at which data corresponding to data requests at the rear of the processing speed is provided may also slow down. Accordingly, some of the operations of the application (200) executed in the electronic device (100) may be performed slowly. However, the present disclosure is not limited thereto, and if multiple applications are executed in the electronic device (100), some of the operations of at least one application may be performed slowly even if multiple operations are performed in at least one application.
[0062] In one embodiment of the present disclosure, at least one processor (110) may determine whether network data provided from a server (150) is among the data required to execute an application (200) by executing at least one instruction contained in a memory (130). In one embodiment of the present disclosure, at least one operation of the application (200) may be an operation requiring network data.
[0063] In one embodiment of the present disclosure, at least one processor (110) may determine whether cache data included in a cache memory (141) is valid through cache control (114), and, if the cache data is determined to be valid, may perform an operation (115) of comparing network expected response performance with cache expected response performance.
[0064] In one embodiment of the present disclosure, at least one processor (110) may request network data from a server (150) through a communication interface and obtain the network data from the server (150) to execute the application (200) when it is determined that the network expected response performance is higher than the cache expected response performance. Through this, even if the cache data is stored in the cache memory (141), the network data can be obtained through the server (150) with high response performance, thereby increasing the operation speed of the application (200) requiring network data among the multiple operations of the application (200).
[0065] In one embodiment of the present disclosure, at least one processor (110) may request network data from a server (150) through a communication interface and obtain the network data from the server (150) to execute the application (200) when it is determined that the network expected response performance is equal to the cache expected response performance. Through this, the number of data request signals accumulated in the queue of the storage device (140) including the cache memory (141) can be reduced, thereby preventing the speed of multiple operations of the application (200) from being slowed down due to an input / output bottleneck.
[0066] In one embodiment of the present disclosure, at least one processor (110) may request cache data from the cache memory (141) through the file system (120) and obtain the cache data from the cache memory (141) to execute the application (200) when it is determined that the cache expected response performance is higher than the network expected response performance. Through this, the cache data may be obtained from the cache memory (141) at a faster speed than when the network data is obtained from the server (150), thereby increasing the execution speed of the application (200) requiring network data among the multiple operations of the application (200).
[0067] FIG. 3 is a block diagram illustrating the configuration of an electronic device according to one embodiment of the present disclosure.
[0068] Referring to FIG. 3, in one embodiment of the present disclosure, an electronic device (300) may include a memory (310), a cache memory (320), at least one processor (330), and a communication interface (340). However, not all of the components illustrated in FIG. 3 are essential components. The electronic device (300) may be implemented with more components than the components illustrated in FIG. 3, or may be implemented with fewer components. In one embodiment of the present disclosure, the electronic device (300) may include a storage device including a cache memory (320). In one embodiment of the present disclosure, the memory (310), the cache memory (320), at least one processor (330), and the communication interface (340) may be electrically and / or physically connected to each other, respectively.
[0069] In one embodiment of the present disclosure, the memory (310) may store instructions, data structures, and program codes that can be read by at least one processor (330). In one embodiment of the present disclosure, there may be more than one memory (310). In the disclosed embodiments, operations performed by at least one processor (330) may be implemented by executing instructions or codes of a program stored in the memory (310).
[0070] In one embodiment of the present disclosure, the memory (310) may include at least one of a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory, etc.), a RAM (Random Access Memory), a SRAM (Static Random Access Memory), a ROM (Read-Only Memory), an EEPROM (Electrically Erasable Programmable Read-Only Memory), a PROM (Programmable Read-Only Memory), a Mask ROM, a Flash ROM, etc.), a hard disk drive (HDD), or a solid state drive (SSD). The memory (310) may store instructions or program codes for performing functions or operations of the electronic device (300). Instructions, algorithms, data structures, program codes, and application programs stored in the memory (310) may be implemented in a programming or scripting language such as, for example, C, C++, Java, or an assembler.
[0071] In one embodiment of the present disclosure, a request reception module (311), a cache control module (312), a response performance calculation module (313), a response performance comparison module (314), a data acquisition module (315), and a data processing module (316) may be stored in the memory (310). However, not all of the modules illustrated in FIG. 3 are essential modules. The memory (310) may store more or fewer modules than the modules illustrated in FIG. 3.
[0072] In one embodiment of the present disclosure, a 'module' included in the memory (310) may mean a unit that processes a function or operation performed by at least one processor (330). The 'module' included in the memory (310) may be implemented as software such as instructions, an algorithm, a data structure, or a program code.
[0073] In one embodiment of the present disclosure, the request receiving module (311) may be configured with instructions or program codes related to an operation or function of receiving a request to retrieve network data provided from a server (150, see FIG. 1). In one embodiment of the present disclosure, network data provided from the server (150) may be required to execute an application in the electronic device (100). In one embodiment of the present disclosure, at least one data required by instructions, data structures, or program codes for executing the application may include network data provided from the server (150). In one embodiment of the present disclosure, the instructions, data structures, or program codes for executing the application may obtain network data from the server (150) and execute the application using the obtained network data. In one embodiment of the present disclosure, at least one processor (330) may receive a request to retrieve network data provided from a server (150) necessary in the process of executing commands, data structures, or program codes for executing an application by executing commands or program codes of a request receiving module (311).
[0074] In one embodiment of the present disclosure, the cache control module (312) may be configured with instructions or program codes related to an operation or function of determining whether cache data (321) stored in the cache memory (320) is valid. The cache control module (312) may be configured with instructions or program codes related to an operation or function of determining, before requesting network data from the server (150), whether cache data (321) corresponding to the network data is stored in the cache memory (320), whether cache data (321) stored in the cache memory (320) is valid, etc. In one embodiment of the present disclosure, the cache control module (312) may be configured with instructions or program codes relating to an operation or function of searching for a header (321) of at least one cache data stored in a cache memory (320) based on a request to retrieve network data provided from a server (150), determining whether cache data (321) corresponding to the requested network data is stored in the cache memory (320), determining whether the validity period of the cache data corresponding to the requested network data has expired, and determining whether the cache data (321) is valid.
[0075] In one embodiment of the present disclosure, at least one processor (330) can determine whether cache data (321) stored in cache memory (320) is valid by executing instructions or program code of the cache control module (312).
[0076] In one embodiment of the present disclosure, the response performance calculation module (313) may be configured with instructions or program codes relating to an operation or function of calculating a network expected response performance, which represents a performance calculated based on an operation of retrieving network data from a server (150) upon requesting network data from the server (150), and a cache expected response performance, which represents a performance calculated based on an operation of retrieving cache data (321) from the cache memory (141) upon requesting cache data (321) from the cache memory (141). In one embodiment of the present disclosure, the network expected response performance may represent an expected time required to obtain network data from the server (150). The cache expected response performance may represent an expected time required to obtain cache data (321) from the cache memory (320).
[0077] In one embodiment of the present disclosure, the response performance calculation module (313) may be configured with instructions or program codes relating to an operation or function for calculating an expected network response performance based on a first required time from when network data is requested from the server (150) to when the network data is obtained from the server (150). The calculated expected network response performance may represent the time required from when network data is requested from the server (150) to when the network data is obtained from the server (150). In one embodiment of the present disclosure, the shorter the required time until the network data is obtained, the better the expected network response performance can be said to be.
[0078] In one embodiment of the present disclosure, the response performance calculation module (313) may be configured with instructions or program codes relating to an operation or function for calculating a cache expected response performance based on a second required time from when cache data (321) is requested from the cache memory (320) to when cache data (321) is obtained from the cache memory (320). The calculated cache expected response performance may represent the time required from when cache data (321) is requested from the cache memory (320) to when cache data (321) is obtained from the cache memory (320). In one embodiment of the present disclosure, the shorter the required time until when cache data (321) is obtained, the better the cache expected response performance can be.
[0079] In one embodiment of the present disclosure, at least one processor (330) can calculate network expected response performance and cache expected response performance by executing instructions or program code of the response performance calculation module (313).
[0080] Below, the operation of calculating the first required time and the second required time will be described later in Fig. 5.
[0081] In one embodiment of the present disclosure, the response performance comparison module (314) may be configured with instructions or program codes related to an operation or function of comparing the calculated network expected response performance with the calculated cache expected response performance. In one embodiment of the present disclosure, since the network expected response performance is calculated based on the first required time and the cache expected response performance is calculated based on the second required time, the response performance comparison module (314) may be configured with instructions or program codes related to an operation or function of comparing the cache network expected response performance with the cache expected response performance through comparison of the first required time and the second required time. In one embodiment of the present disclosure, at least one processor (330) may compare the network expected response performance with the cache expected response performance by executing instructions or program codes of the response performance comparison module (314).
[0082] In one embodiment of the present disclosure, at least one processor (330) may determine that the network expected response performance is higher than the cache expected response performance by executing instructions or program codes of the response performance comparison module (314) when the first required time is equal to or less than the second required time. In one embodiment of the present disclosure, at least one processor (330) may determine that the cache expected response performance is higher than the network expected response performance by executing instructions or program codes of the response performance comparison module (314) when the first required time is greater than the second required time.
[0083] Although FIG. 3 illustrates that the response performance calculation module (313) and the response performance comparison module (314) are separate modules, the present disclosure is not limited thereto. Commands or program codes related to the operation of calculating response performance and the operation or function of comparing response performance may be configured as a single module.
[0084] In one embodiment of the present disclosure, the data acquisition module (315) may be configured with instructions or program codes related to an operation or function of requesting network data from the server (150) through the communication interface (340) to acquire network data from the server (150), or requesting cache data (321) from the cache memory (320) to acquire cache data (321) from the cache memory (320), based on a comparison result between the network expected response performance and the cache expected response performance. In one embodiment of the present disclosure, at least one processor (330) may execute instructions or program codes of the data acquisition module (315), thereby requesting network data from the server (150) through the communication interface (340) to acquire network data from the server (150), or requesting cache data (321) from the cache memory (320) to acquire cache data (321) from the cache memory (320), based on a comparison result between the network expected response performance and the cache expected response performance.
[0085] In one embodiment of the present disclosure, when it is determined that the network expected response performance is higher than the cache expected response performance, at least one processor (330) may request network data from the server (150) through the communication interface (340) by executing instructions or program codes of the data acquisition module (315), and may acquire network data from the server (150). When it is determined that the cache expected response performance is higher than the network expected response performance, at least one processor (330) may request cache data (321) from the cache memory (320), and may acquire cache data (321) from the cache memory (320), by executing instructions or program codes of the data acquisition module (315).
[0086] In one embodiment of the present disclosure, the data processing module (316) may be configured with instructions or program codes related to an operation or function for processing the acquired network data or the acquired cache data. In one embodiment of the present disclosure, the data processing module (316) may be configured with instructions or program codes related to an operation or function for preprocessing the acquired network data or the acquired cache data, such as transformation, feature extraction, sampling, filtering, sorting, or cleaning. In one embodiment of the present disclosure, the data processing module (316) may be configured with instructions or program codes related to an operation or function for executing an application by executing instructions, data structures, or program codes for executing an application using the acquired network data or the acquired cache data.
[0087] In one embodiment of the present disclosure, at least one processor (330) may preprocess acquired network data or acquired cache data by executing instructions or program codes of the data processing module (316). At least one processor (330) may execute an application using the acquired network data or acquired cache data by executing instructions or program codes of the data processing module (316).
[0088] In one embodiment of the present disclosure, network data acquired from a server (150, see FIG. 1) via a communication interface (340) may be stored as cache data (321) in the cache memory (320). In one embodiment of the present disclosure, there may be one or more cache memories (320). Data processed by at least one processor (330) executing instructions or program codes of the data processing module (316) may be cache data (321) acquired by reading from the cache memory (320). An application executed by at least one processor (330) executing instructions or program codes of the data processing module (316) may be an application executed using cache data (321) acquired by reading from the cache memory (320).
[0089] In one embodiment of the present disclosure, the cache memory (320) may be a non-volatile memory. The cache memory (320) may include at least one of a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., an SD or XD memory, etc.), a hard disk drive (HDD), or a solid state drive (SSD). In one embodiment of the present disclosure, the cache memory (320) may be a memory included in a storage device (140, see FIG. 1).
[0090] In one embodiment of the present disclosure, the cache memory (320) may be a memory for storing cache data (321) for a certain period of time. The cache memory (320) may temporarily store the cache data (321). The cache memory (320) may be a memory for storing some of the network data provided from the server (150) as cache data (321) upon a request from at least one processor (330). In one embodiment of the present disclosure, the cache memory (320) may be a memory for storing network data as cache data (321) in order to quickly transfer some of the data stored in the storage device (140) or the memory (310) to at least one processor (330). In one embodiment of the present disclosure, the cache memory (320) is designed to have a structure having a higher layer than the storage device or the memory (310) and may provide cache data to at least one processor (330).
[0091] In one embodiment of the present disclosure, cache data (321) may be data stored in the cache memory (320), and may be data that has been pre-requested from at least one processor (330) and provided to at least one processor (330), data that is frequently requested by at least one processor (330), or data that is stored in the cache memory (320) based on cache control information included in the header of network data obtained from the server (150). In one embodiment of the present disclosure, cache data (321) may be at least a portion of network data that has been pre-provided from the server (150) at the request of at least one processor (330). Cache data (321) may be data that has been pre-received from the server (150) at the request of at least one processor (330) and stored in the cache memory (320).
[0092] In one embodiment of the present disclosure, at least one processor (330) may be configured as at least one of a Central Processing Unit, a microprocessor, a Graphic Processing Unit, an Application Processor (AP), an Application Specific Integrated Circuits (ASICs), a Digital Signal Processors (DSPs), a Digital Signal Processing Devices (DSPDs), a Programmable Logic Devices (PLDs), a Field Programmable Gate Arrays (FPGAs), and a Neural Processing Unit or an artificial intelligence (AI) processor designed with a hardware structure specialized for learning and processing an artificial intelligence (AI) model, but is not limited thereto.
[0093] In one embodiment of the present disclosure, the communication interface (340) can perform data communication with the server (150) under the control of at least one processor (330). In one embodiment of the present disclosure, the server (150) may be a server located outside the electronic device (300). In addition, the communication interface (340) can perform data communication not only with the server (150) but also with other peripheral electronic devices. The communication interface (340) may perform data communication with the server (150) or other peripheral electronic devices using at least one of data communication methods including, for example, wired LAN, wireless LAN, Wi-Fi, Bluetooth, zigbee, Wi-Fi Direct (WFD), infrared Data Association (IrDA), Bluetooth Low Energy (BLE), Near Field Communication (NFC), Wireless Broadband Internet (Wibro), World Interoperability for Microwave Access (WiMAX), Shared Wireless Access Protocol (SWAP), Wireless Gigabit Alliance (WiGig), and RF communication.
[0094] In one embodiment of the present disclosure, at least one processor (330) may provide a signal to a server (150) via a communication interface (340) requesting network data for executing an application. At least one processor (330) may obtain network data from the server (150) via the communication interface (340).
[0095] FIG. 4 is a flowchart for explaining the operation of an electronic device according to one embodiment of the present disclosure.
[0096] Referring to FIGS. 1, 3, and 4, in one embodiment of the present disclosure, a method of operating an electronic device (100) may include a step (S100) of receiving a request to retrieve network data provided from a server (150). In one embodiment of the present disclosure, in the step (S100) of receiving a request to retrieve network data, at least one processor (330) may receive a request to retrieve network data provided from the server (150) by executing instructions or program codes of a request receiving module (311) when executing an application.
[0097] In one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S200) of comparing a network expected response performance related to an operation of retrieving network data from a server (150) with a cache expected response performance related to an operation of retrieving cache data (321) corresponding to the network data from a cache memory (320) that stores the cache data (321). In one embodiment of the present disclosure, in the step (S200) of comparing the network expected response performance with the cache expected response performance, at least one processor (330) may calculate the network expected response performance and the cache expected response performance by executing instructions or program codes of a response performance calculation module (313). In the step (S200) of comparing the network expected response performance with the cache expected response performance, at least one processor (330) may compare the network expected response performance with the cache expected response performance by executing instructions or program codes of a response performance comparison module (314). Hereinafter, the step (S200) of comparing the network expected response performance and the cache expected response performance will be described later in FIG. 5.
[0098] In one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step of requesting network data from a server (150) through a communication interface (340) and obtaining the network data, or requesting cache data (321) from a cache memory (320) and obtaining the cache data (321), depending on the comparison result in the step (S200) of comparing the network expected response performance and the cache expected response performance.
[0099] In one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S300) of requesting network data to a server (150) through a communication interface (340) and obtaining network data from the server (150) when the network expected response performance is determined to be equal to or higher than the cache expected response performance in the step (S200) of comparing the network expected response performance with the cache expected response performance. In the step (S300) of requesting the network data to the server (150) and obtaining the network data, at least one processor (330) may request the network data to the server (150) through the communication interface (340) and obtain the network data from the server (150) by executing instructions or program codes of the data acquisition module (315).
[0100] In one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S400) of requesting cache data (321) from the cache memory (320) to obtain the cache data (321) when the cache expected response performance is determined to be higher than the network expected response performance in the step (S200) of comparing the network expected response performance with the cache expected response performance. In the step (S400) of requesting the cache data (321) from the cache memory (320) to obtain the cache data (321), at least one processor (330) may request the cache data (321) from the cache memory (320) to obtain the cache data (321) by executing instructions or program codes of the data acquisition module (315).
[0101] In one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S500) of processing acquired network data or acquired cache data (321).
[0102] In one embodiment of the present disclosure, when network data is acquired from the server (150) because the network expected response performance is determined to be equal to or higher than the cache expected response performance, the acquired network data or the acquired cache data (321) may be processed in the step (S500) of processing the acquired network data or the acquired cache data (321). In the step (S500) of processing the acquired network data or the acquired cache data (321), at least one processor (330) may process the acquired network data by executing instructions or program codes of the data processing module (316).
[0103] In one embodiment of the present disclosure, when cache data (321) is acquired from the cache memory (320) because the cache expected response performance is determined to be higher than the network expected response performance, the acquired cache data (321) may be processed in the step (S500) of processing the acquired network data or the acquired cache data. In the step (S500) of processing the acquired network data or the acquired cache data (321), at least one processor (330) may process the acquired cache data by executing instructions or program codes of the data processing module (316).
[0104] In one embodiment of the present disclosure, processing the acquired network data or acquired cache data (321) may mean preprocessing the acquired network data or acquired cache data (321) to execute an application. In the step (S500) of processing the acquired network data or acquired cache data (321), preprocessing operations such as transformation, feature extraction, sampling, filtering, sorting, and cleaning may be performed on the acquired network data or acquired cache data (321).
[0105] FIG. 5 is a flowchart illustrating an operation for comparing network expected response performance and cache expected response performance according to one embodiment of the present disclosure. Hereinafter, steps identical to those described in FIG. 4 are assigned the same reference numerals, and redundant descriptions are omitted.
[0106] Referring to FIGS. 1, 3, 4, and 5, in one embodiment of the present disclosure, the step (S200) of comparing the network expected response performance with the cache expected response performance may include the step (S210) of determining the network expected response performance based on the first required time from the time when the network data is requested from the server (150) to the time when the network data is acquired from the server (150). In one embodiment of the present disclosure, the operation of the step (S200) of comparing the network expected response performance with the cache expected response performance may be performed after the operation of the step (S100) of receiving a request to retrieve the network data provided from the server (150).
[0107] In one embodiment of the present disclosure, in the step (S210) of determining the network expected response performance based on the first required time, at least one processor (330) may calculate the first required time from the time when network data is requested from the server (150) to the time when network data is acquired from the server (150) by executing instructions or program codes of the response performance calculation module (313), and may calculate the network expected response performance based on the calculated first required time.
[0108] In one embodiment of the present disclosure, the header of the cache data (321) stored in the cache memory (320) may include information about the time at which network data was requested from the server (150) and the time at which the server (150) provided the network data in response to the request. In one embodiment of the present disclosure, at least one processor (330) may execute instructions or program codes of the response performance calculation module (313) to determine the first required time based on at least one of an average time of a plurality of accumulated past first required times from the time at which network data was requested from the server (150) to the time at which network data was obtained from the server (150) or an immediately preceding first required time from the time at which network data was requested from the server (150) to the time at which network data was obtained from the server (150).
[0109] However, the present disclosure is not limited thereto, and in the step (S210) of determining the network expected response performance based on the first required time, the network expected response performance may be calculated based on the first required time calculated by another method capable of calculating the first required time.
[0110] In one embodiment of the present disclosure, the step (S200) of comparing the network expected response performance and the cache expected response performance may include a step (S220) of determining the cache expected response performance based on a second required time from when the cache data (321) is requested from the cache memory (320) to when the cache data (321) is obtained from the cache memory (320).
[0111] In one embodiment of the present disclosure, in the step (S220) of determining the cache expected response performance based on the second required time, at least one processor (330) may calculate the second required time from the time when cache data (321) is requested from the cache memory (320) to the time when cache data is obtained from the cache memory (320) by executing instructions or program codes of the response performance calculation module (313), and may calculate the cache expected response performance based on the calculated second required time.
[0112] In one embodiment of the present disclosure, the header of cache data (321) stored in the cache memory (320) may include information about the time at which the cache data (321) was requested from the cache memory (320) and the time at which the cache memory (320) provided the cache data (321) in response to the request.
[0113] In one embodiment of the present disclosure, at least one processor (330) may check the total number of data requests accumulated in the queue of the cache memory (320). At this time, the total number of data requests may be the sum of not only cache data requests for cache data (321) (e.g., cache data requests for executing a third application (113)), but also at least one cache data request for executing each of at least one application running on the electronic device (100), for example, the first application (111) and the second application (112). In addition, the total number of data requests may also mean the total number of data requests accumulated in the queue of the storage device (140) as well as the queue of the cache memory (320).
[0114] In one embodiment of the present disclosure, at least one processor (330) can check the priority of a cache data request for cache data (321) among all data requests accumulated in the queue of the cache memory (320). At this time, the cache memory (320) can first respond to a data request assigned a high priority among all data requests accumulated in the queue of the cache memory (320) and provide the corresponding data.
[0115] In one embodiment of the present disclosure, the speed at which the cache memory (320) sequentially responds to each data request queued, thereby providing data corresponding to the data request, can be calculated in advance by the performance of the cache memory (320) and at least one processor (330).
[0116] In one embodiment of the present disclosure, at least one processor (330) may determine the second required time based on at least one of an average time of a plurality of accumulated past second required times from the time when cache data (321) is requested from the cache memory (320) to the time when cache data (321) is obtained from the cache memory (320), an immediately preceding second required time from the time when cache data (321) is requested from the cache memory (320) to the time when cache data (321) is obtained from the cache memory (320), a total number of data requests accumulated in the queue of the cache memory (320), or a priority of a cache data request for cache data (321) among the total data requests accumulated in the queue of the cache memory (320).
[0117] However, the present disclosure is not limited thereto, and in the step (S220) of determining the network expected response performance based on the second required time, the cache expected response performance may be calculated based on the second required time calculated by another method capable of calculating the second required time.
[0118] In one embodiment of the present disclosure, the step (S200) of comparing the network expected response performance and the cache expected response performance may include the step (S230) of comparing the network expected response performance and the cache expected response performance based on the first required time and the second required time.
[0119] In one embodiment of the present disclosure, at least one processor (330) may determine that the network expected response performance is better than the cache expected response performance by executing instructions or program codes of the response performance comparison module (314) when it is determined that the first required time is shorter than the second required time. At least one processor (330) may determine that the network expected response performance is better than the cache expected response performance by executing instructions or program codes of the response performance comparison module (314) even when it is determined that the first required time is equal to the second required time. That is, at least one processor (330) may determine that the network expected response performance is better than the cache expected response performance by executing instructions or program codes of the response performance comparison module (314) when the first required time is equal to or less than the second required time.
[0120] In one embodiment of the present disclosure, when the first required time is equal to or less than the second required time in the step (S200) of comparing the network expected response performance with the cache expected response performance, and thus the network expected response performance is determined to be higher than the cache expected response performance, the electronic device (100) may perform the operation of the step (S300) of requesting network data from the server (150) to obtain the network data.
[0121] In one embodiment of the present disclosure, at least one processor (330) may determine that the cache expected response performance is better than the network expected response performance by executing instructions or program codes of the response performance comparison module (314) and determining that the second required time is shorter than the first required time. That is, at least one processor (330) may determine that the cache expected response performance is better than the network expected response performance by executing instructions or program codes of the response performance comparison module (314) and determining that the first required time is longer than the second required time.
[0122] In one embodiment of the present disclosure, when the first required time exceeds the second required time in the step (S200) of comparing the network expected response performance with the cache expected response performance, and when it is determined that the cache expected response performance is higher than the network expected response performance, the electronic device (100) may perform the operation of the step (S400) of requesting cache data (321) from the cache memory (320) to obtain the cache data (321).
[0123] FIG. 6 is a flowchart illustrating an operation for determining whether cache data is valid according to one embodiment of the present disclosure. Hereinafter, steps identical to those described in FIG. 4 are assigned the same reference numerals, and any redundant descriptions are omitted.
[0124] Referring to FIGS. 1, 3, 4, and 6, in one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S120) of determining whether cache data (321) stored in the cache memory (320) is valid. In one embodiment of the present disclosure, the operation of the step (S120) of determining whether cache data (321) stored in the cache memory (320) is valid may be executed after the operation of the step (S100) of receiving a request to retrieve network data provided from the server (150).
[0125] In one embodiment of the present disclosure, in the step (S120) of determining whether the cache data (321) stored in the cache memory (320) is valid, at least one processor (330) may determine whether the cache data (321) stored in the cache memory (320) is valid by executing instructions or program codes of the cache control module (312). In one embodiment of the present disclosure, in the step (S100) of receiving a request to retrieve network data provided from the server (150), at least one processor (330) may determine whether the cache data (321) stored in the cache memory (320) is valid based on whether the cache data (321) corresponding to the requested network data is stored in the cache memory (320), whether the validity period included in the header of the cache data (321) stored in the cache memory (320) has expired, etc. In one embodiment of the present disclosure, even if cache data (321) corresponding to network data is not stored in the cache memory (320), it may mean that the cache data (321) is invalid.
[0126] In one embodiment of the present disclosure, when the cache data (321) stored in the cache memory (320) is determined to be valid in the step (S120) of determining whether the cache data is valid, the electronic device (100) may perform the operation of the step (S200) of comparing the network expected response performance with the cache expected response performance. Depending on the comparison result of the step (S200) of comparing the network expected response performance with the cache expected response performance, the electronic device (100) may perform the operation of the step (S300) of requesting the server (150) for network data to obtain network data or the operation of the step (S400) of requesting the cache data (321) from the cache memory (320) to obtain the cache data (321).
[0127] In one embodiment of the present disclosure, if the cache data (321) stored in the cache memory (320) is determined to be invalid in the step (S120) of determining whether the cache data (321) stored in the cache memory (320) is valid, the electronic device (100) may perform the operation of the step (S300) of requesting network data from the server (150) to obtain the network data. Since the cache data (321) stored in the cache memory (320) is invalid, regardless of whether the network expected response performance is higher than the cache expected response performance, at least one processor (330) may request the network data necessary for executing the application from the server (150) through the communication interface (340) to obtain the network data.
[0128] FIG. 7 is a flowchart illustrating an operation for determining whether cache data is valid after comparing network expected response performance with cache expected response performance according to one embodiment of the present disclosure. Hereinafter, steps identical to those described in FIGS. 4 and 6 are assigned the same reference numerals, and any redundant descriptions are omitted.
[0129] Referring to FIGS. 1, 3, 4, 6, and 7, in one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S240) of determining whether cache data (321) stored in the cache memory (320) is valid. In one embodiment of the present disclosure, the operation of the step (S240) of determining whether cache data (321) stored in the cache memory (320) is valid may be executed after the operation of the step (S200) of comparing the network expected response performance with the cache expected response performance. In one embodiment of the present disclosure, the operation of the step (S240) of determining whether cache data (321) stored in the cache memory (320) is valid may be executed when it is determined in the step (S200) of comparing the network expected response performance with the cache expected response performance that the cache expected response performance is higher than the network expected response performance.
[0130] In one embodiment of the present disclosure, in the step (S200) of comparing the network expected response performance with the cache expected response performance, if the cache expected response performance is higher than the network expected response performance, and in the step (S240) of determining whether the cache data (321) stored in the cache memory (320) is valid, if the cache data is determined to be valid, the electronic device (100) may perform the operation of the step (S400) of requesting the cache data (321) from the cache memory (320) to obtain the cache data (321).
[0131] In one embodiment of the present disclosure, if the cache expected response performance is determined to be higher than the network expected response performance in the step (S200) of comparing the network expected response performance with the cache expected response performance, but the cache data is determined to be invalid in the step (S240) of determining whether the cache data (321) stored in the cache memory (320) is valid, the electronic device (100) may perform the operation of the step (S300) of requesting network data from the server (150) to obtain the network data. Even if the network expected response performance is higher than the cache expected response performance, since the cache data (321) stored in the cache memory (320) is invalid, at least one processor (330) may request the network data necessary for executing an application from the server (150) through the communication interface (340) to obtain the network data.
[0132] FIG. 8 is a flowchart illustrating an operation for determining whether a request to retrieve network data is required according to one embodiment of the present disclosure. Hereinafter, steps identical to those described in FIG. 4 are assigned the same reference numerals, and any redundant descriptions are omitted.
[0133] Referring to FIGS. 1, 3, 4, and 8, in one embodiment of the present disclosure, a method of operating an electronic device (100) may include a step (S50) of determining network data that must be requested and acquired from a server (150) among at least one piece of data required to execute an application. In one embodiment of the present disclosure, the operation of the step (S50) of determining network data may be executed before the operation of the step (S100) of receiving a request to retrieve network data provided from the server (150).
[0134] In one embodiment of the present disclosure, network data may refer to data that is stored in the server (150) and must be requested and provided from the server (150) when executing an application. However, if there is a history of data that has already been obtained by requesting the server (150), the network data may be stored in the cache memory (320) as cache data (321).
[0135] In one embodiment of the present disclosure, at least one processor (330) may determine network data that should be provided from the server (150) by requesting at least one of the commands, data structures, or program codes for executing an application, stored in the server (150), by executing the commands or program codes of the request receiving module (311).
[0136] In one embodiment of the present disclosure, at least one processor (330) may generate a request to retrieve network data provided from the server (150) for at least one piece of data for executing an application, which is determined to be network data. In addition, at least one processor (330) may receive a request from the application to retrieve network data provided from the server (150) when executing an application. At least one processor (330) may also request the storage device (140) for at least one piece of data for executing an application, which is not determined to be network data.
[0137] FIG. 9 is a flowchart illustrating an operation of executing an application based on acquired network data or cache data according to one embodiment of the present disclosure. In one embodiment of the present disclosure, steps identical to those described in FIG. 4 are assigned the same reference numerals, and redundant descriptions are omitted.
[0138] Referring to FIGS. 1, 3, 4, and 9, in one embodiment of the present disclosure, a method of operating an electronic device (100) may include a step (S600) of executing an application using acquired network data or acquired cache data. In one embodiment of the present disclosure, the operation of the step (S600) of executing an application using acquired network data or acquired cache data may be executed after the operation of the step (S500) of processing the acquired network data or acquired cache data.
[0139] In one embodiment of the present disclosure, in the step (S600) of executing an application using the acquired network data or the acquired cache data, the network data or cache data used may be network data or preprocessed cache data preprocessed in the step (S500) of processing the acquired network data or the acquired cache data.
[0140] In one embodiment of the present disclosure, at least one processor (330) can execute an application using the acquired network data or the acquired cache data by executing instructions or program code of the data processing module (316).
[0141] FIG. 10 is a flowchart illustrating the operation of an electronic device according to the relationship between the occurrence time of a network data request and a preset reference time according to one embodiment of the present disclosure. In one embodiment of the present disclosure, steps identical to those described in FIG. 4 are assigned the same reference numerals, and any redundant descriptions are omitted.
[0142] Referring to FIGS. 1, 3, 4, and 10, in one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S101) of comparing a preset reference time with a time of occurrence of a request to retrieve network data provided from a server (150). In one embodiment of the present disclosure, the operation of the step (S101) of comparing a preset reference time with a time of occurrence of a request to retrieve network data provided from a server (150) may be executed after the operation of the step (S100) of receiving a request to retrieve network data provided from a server (150).
[0143] In one embodiment of the present disclosure, the preset reference time may be a time set based on a specific event. In one embodiment of the present disclosure, the preset reference time may be set to a time period of up to 3 seconds from the time the specific event occurs. However, the present disclosure is not limited thereto, and the preset reference time may be set to a time period shorter than 3 seconds or longer.
[0144] In one embodiment of the present disclosure, a specific event may include an operation of booting the electronic device (100). In this case, the reference time may be a time set to 3 seconds from the time the electronic device (100) is booted. However, the present disclosure is not limited thereto, and the specific event may include the execution of a specific application or the execution of a specific operation within a specific application. In one embodiment of the present disclosure, the specific event may refer to a time when a video recording operation is started in a camera application. In this case, the reference time may be a time set to 3 seconds from the time when the video recording operation is started in the camera application.
[0145] In one embodiment of the present disclosure, the preset reference time may be a period in which it is determined that when a specific event occurs, the number of data requests accumulated in the queue of the storage device (140) or cache memory (320) is large, and data corresponding to the data response is provided late due to a bottleneck in input / output, thereby slowing down the execution speed or operation speed of the event.
[0146] In one embodiment of the present disclosure, in the step (S101) of comparing the time of occurrence of a request to retrieve network data provided from a server (150) with a preset reference time, at least one processor (330) may compare the time of occurrence of the request for network data received in the step (S100) of receiving the request for network data with the preset reference time. The at least one processor (330) may compare the time of occurrence of the request for received network data with the preset reference time to determine whether the time of occurrence of the request for network data is equal to or earlier than the preset reference time. The at least one processor (330) may compare the time of occurrence of the request for received network data with the preset reference time to determine whether the time of occurrence of the request for network data is after the preset reference time.
[0147] In one embodiment of the present disclosure, in the step (S101) of comparing the time of occurrence of a request to obtain network data provided from a server (150) with a preset reference time, if it is determined that the time of occurrence of the request for the received network data is equal to or earlier than the preset reference time, the electronic device (100) may perform the operation of the step (S102) of requesting network data from the server (150) to obtain network data.
[0148] In one embodiment of the present disclosure, in the step (S101) of comparing the time of occurrence of a request to obtain network data provided from a server (150) with a preset reference time, if it is determined that the time of occurrence of the request for the received network data is after the preset reference time, the electronic device (100) may perform the operation of the step (S200) of comparing the network expected response performance with the cache expected response performance.
[0149] Through this, when the number of data requests accumulating in the queue of the storage device (140) or cache memory (320) is expected to be large, network data is requested from the server (150) rather than the cache memory (320), thereby preventing the delay in providing data corresponding to the data response due to the input / output bottleneck phenomenon, thereby slowing down the execution speed or operation speed of the corresponding event.
[0150] FIG. 11 is a flowchart illustrating the operation of an electronic device requesting network data from a server and requesting cache data from a cache memory according to one embodiment of the present disclosure. In one embodiment of the present disclosure, steps identical to those described in FIG. 4 are given the same reference numerals, and redundant descriptions are omitted.
[0151] Referring to FIGS. 1, 3, 4, and 11, in one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S103) of requesting network data from a server (150). The operating method of the electronic device (100) may include a step (S104) of requesting cache data (321) from a cache memory (320).
[0152] In one embodiment of the present disclosure, the step (S103) of requesting network data from the server (150) and the step (S104) of requesting cache data (321) from the cache memory (320) may be executed after the operation of the step (S100) of receiving a request to retrieve network data provided from the server (150).
[0153] In one embodiment of the present disclosure, when a network data request is received in the step of receiving a request for network data (S100), at least one processor (330) may request network data from the server (150) and request cache data (321) from the cache memory (320).
[0154] In one embodiment of the present disclosure, the operating method of the electronic device (100) may include a step (S150) of processing one of the acquired network data or cache data. In one embodiment of the present disclosure, in the step (S105) of processing one of the acquired network data or cache data, at least one processor (330) may process one of the acquired network data or cache data (321) when the network data is acquired from a server (150) that requested the network data, or when the cache data (321) is acquired from a cache memory (320) that requested the cache data (321).
[0155] In one embodiment of the present disclosure, at least one processor (330) can process data that is acquired first among network data acquired from the server (150) and cache data (321) acquired from the cache memory (320). At least one processor (330) can execute an application using data that is acquired first among network data acquired from the server (150) and cache data (321) acquired from the cache memory (320). Through this, at least one processor (330) can execute an application using data that is acquired first among network data and cache data (321), regardless of whether the cache data (321) included in the cache memory (320) is valid or not and a comparison between network expected response performance and cache expected response performance, thereby preventing the execution speed or operation speed of the application from slowing down.
[0156] FIG. 12A is a diagram illustrating an electronic device executing an application according to one embodiment of the present disclosure. FIG. 12B is a diagram illustrating an electronic device executing an application in which a plurality of operations are performed according to one embodiment of the present disclosure.
[0157] Referring to FIGS. 1, 3, 4, and 12A, FIG. 12A illustrates an electronic device (1200). In one embodiment of the present disclosure, FIG. 12A illustrates the electronic device (1200) as having the shape of a television; however, the present disclosure is not limited thereto.
[0158] In one embodiment of the present disclosure, FIG. 12A illustrates running an application (1210) on an electronic device (1200) after booting the electronic device (1200). In one embodiment of the present disclosure, this may be the case where, after booting the television, an application (1210) is run to receive a streaming service through a server (150).
[0159] In one embodiment of the present disclosure, network data (e.g., video, etc.) provided from a server (150) may be required to execute an application (1210). The electronic device (1200) may determine whether cache data (321) stored in the cache memory (320) is valid.
[0160] In one embodiment of the present disclosure, the electronic device (1200) may determine that the cache data (321) is valid if it is determined that the validity period of the cache data (321) corresponding to the required network data has not yet expired.
[0161] In one embodiment of the present disclosure, if the cache data (321) is valid, the electronic device (1200) may calculate a first required time from when it requests network data from the server (150) until it obtains the network data from the server (150) and a second required time from when it requests cache data (321) from the cache memory (320) until it obtains the cache data (321) from the cache memory (320), and compare the first required time with the second required time.
[0162] In one embodiment of the present disclosure, even if cache data (321) is stored in the cache memory (320), when the electronic device (1200) boots, as multiple functions and different types of applications are executed, a large number of data responses may accumulate in the queue of the cache memory (320) or the queue of the storage device (140) including the cache memory (320). Therefore, the cache data required to execute the application (1210) may be provided late. In addition, with the technological advancement of the communication interface (340) and the network, the speed at which network data is provided through the server (150) may be faster than in the past.
[0163] Accordingly, the electronic device (1200) can compare the first required time and the second required time, and if the first required time is shorter than the second required time, it can determine that the network expected response performance is higher than the cache expected response performance. The electronic device (1200) can request network data from the server (150) through the communication interface (340), receive the network data from the server (150), and execute the application (1210).
[0164] In one embodiment of the present disclosure, the electronic device (1200) can compare the first required time with the second required time, and if the first required time is equal to the second required time, determine that the network expected response performance is equal to the cache expected response performance. In order to prevent cache data requests required to execute the application (1210) from accumulating in the queue of the cache memory (320) or the queue of the storage device (140) and to speed up the execution speed of multiple functions and different types of applications when the electronic device (1200) boots up, the electronic device (1200) can request network data from the server (150) through the communication interface (340), and execute the application (1210) by receiving the network data from the server (150).
[0165] In one embodiment of the present disclosure, the electronic device (1200) may compare the first required time with the second required time, and if the first required time is longer than the second required time, determine that the network expected response performance is lower than the cache expected response performance. In order to prevent the application (1210) from being executed late, the electronic device (1200) may request cache data (321) from the cache memory (320), receive the cache data (321) from the cache memory (320), and execute the application (1210).
[0166] In one embodiment of the present disclosure, the electronic device (1200) may determine that the cache data (321) is invalid if it is determined that the cache data (321) corresponding to the required network data is not stored or the validity period of the corresponding cache data (321) has expired.
[0167] In one embodiment of the present disclosure, if the cache data (321) is invalid, the electronic device (1200) may request network data for executing the application (1210) from a server (150) linked to the application (1210) through a communication interface (340) and obtain the network data from the server (150). The electronic device (1200) may process the obtained network data and execute the application (1210).
[0168] Referring to FIGS. 1, 3, 4 and 12B, in one embodiment of the present disclosure, FIG. 12B illustrates that while a first operation (1220) of an application (1210, see FIG. 12A) is being executed on an electronic device (1200), another second operation (1230) is additionally executed. In one embodiment of the present disclosure, when the electronic device (1200) is a television, the execution of another second operation (1230) while the first operation (1220) is being executed may mean, but is not limited to, a case where, while watching a video through an application (1210) on the television, the television displays a menu for watching another video, provides a recommended video, displays an advertisement, or displays a notification.
[0169] In one embodiment of the present disclosure, network data provided from a server (150) may be required to execute the second operation (1230). The electronic device (1200) may determine whether cache data (321) stored in the cache memory (320) is valid.
[0170] In one embodiment of the present disclosure, the electronic device (1200) may determine that the cache data (321) is valid if it is determined that the validity period of the cache data (321) corresponding to the required network data has not yet expired.
[0171] In one embodiment of the present disclosure, if the cache data (321) is valid, the electronic device (1200) can calculate a first required time and a second required time, and compare the first required time and the second required time.
[0172] In one embodiment of the present disclosure, even if cache data (321) is stored in the cache memory (320), as the first operation (1220) of the application is being executed, a large number of data responses may be accumulated in the queue of the cache memory (320) or the queue of the storage device (140) including the cache memory (320). Accordingly, the cache data required to execute the second operation (1230) of the application may be provided late.
[0173] Accordingly, the electronic device (1200) can compare the first required time with the second required time, and if the first required time is shorter than the second required time, determine that the network expected response performance is higher than the cache expected response performance. The electronic device (1200) can request network data from the server (150) through the communication interface (340), receive the network data from the server (150), and execute the second operation (1230) of the application.
[0174] In one embodiment of the present disclosure, the electronic device (1200) may compare the first required time with the second required time, and if the first required time is equal to the second required time, determine that the network expected response performance is equal to the cache expected response performance. In order to prevent cache data requests required to execute the second operation (1230) of the application from accumulating in the queue of the cache memory (320) or the queue of the storage device (140) and to speed up the execution speed of the first operation (1220) of the application, the electronic device (1200) may request network data from the server (150) through the communication interface (340), and may receive the network data from the server (150) to execute the second operation (1230) of the application.
[0175] In one embodiment of the present disclosure, the electronic device (1200) may compare the first required time with the second required time, and if the first required time is longer than the second required time, determine that the network expected response performance is lower than the cache expected response performance. In order to prevent the second operation (1230) of the application from being executed late, the electronic device (1200) may request cache data (321) from the cache memory (320), receive the cache data (321) from the cache memory (320), and execute the second operation (1230) of the application.
[0176] In one embodiment of the present disclosure, the electronic device (1200) may determine that the cache data (321) is invalid if it is determined that the cache data (321) corresponding to the required network data is not stored or the validity period of the corresponding cache data (321) has expired.
[0177] In one embodiment of the present disclosure, if the cache data (321) is invalid, the electronic device (1200) may request network data for executing the application (1210) from a server (150) linked to a web application via a communication interface (340) and obtain the network data from the server (150). The electronic device (1200) may process the obtained network data and execute the second operation (1230) of the application (1210).
[0178] FIG. 13 is a diagram illustrating an electronic device in which multiple applications are executed according to one embodiment of the present disclosure.
[0179] Referring to FIGS. 1, 3, 4 and 13, in FIG. 13, the electronic device (1300) is illustrated as having the shape of a smartphone, but the present disclosure is not limited thereto.
[0180] In one embodiment of the present disclosure, FIG. 13 illustrates a second application (1320) being executed while a first application (1310) is being executed on an electronic device (1300). In one embodiment of the present disclosure, this may be, but is not limited to, a case where a video is recorded through a camera of the electronic device (1300), music is being listened to, a messenger application is being used, an alarm is received, an advertisement is being provided, etc.
[0181] In one embodiment of the present disclosure, network data provided from a server (150) may be required to execute a second application (1320). The electronic device (1300) may determine whether cache data (321) stored in the cache memory (320) is valid.
[0182] In one embodiment of the present disclosure, the electronic device (1300) may determine that the cache data (321) is valid if it is determined that the validity period of the cache data (321) corresponding to the required network data has not yet expired.
[0183] In one embodiment of the present disclosure, if the cache data (321) is valid, the electronic device (1300) can calculate a first required time and a second required time, and compare the first required time and the second required time.
[0184] In one embodiment of the present disclosure, even if cache data (321) is stored in the cache memory (320), as the first application (1310) is being executed, a large number of data responses may be accumulated in the queue of the cache memory (320) or the queue of the storage device (140) including the cache memory (320). Accordingly, the cache data required to execute the second application (1320) may be provided late.
[0185] Accordingly, the electronic device (1300) can compare the first required time with the second required time, and if the first required time is shorter than the second required time, it can determine that the network expected response performance is higher than the cache expected response performance. The electronic device (1300) can request network data from the server (150) through the communication interface (340), receive the network data from the server (150), and execute the second application (1320).
[0186] In one embodiment of the present disclosure, the electronic device (1300) may compare the first required time with the second required time, and if the first required time is equal to the second required time, determine that the network expected response performance is equal to the cache expected response performance. In order to prevent cache data requests required to execute the second application (1320) from accumulating in the queue of the cache memory (320) or the queue of the storage device (140) and to speed up the execution speed of the first application (1310), the electronic device (1300) may request network data from the server (150) through the communication interface (340), receive the network data from the server (150), and execute the second application (1320).
[0187] In one embodiment of the present disclosure, the electronic device (1300) may compare the first required time with the second required time, and if the first required time is longer than the second required time, determine that the network expected response performance is lower than the cache expected response performance. In order to prevent the second application (1320) from being executed late, the electronic device (1300) may request cache data (321) from the cache memory (320), receive the cache data (321) from the cache memory (320), and execute the second application (1320).
[0188] In one embodiment of the present disclosure, the electronic device (1300) may determine that the cache data (321) is invalid if it is determined that the cache data (321) corresponding to the required network data is not stored or the validity period of the corresponding cache data (321) has expired.
[0189] In one embodiment of the present disclosure, if the cache data (321) is invalid, the electronic device (1300) may request network data for executing the second application (1320) from a server (150) linked to the second application (1320) through a communication interface (340), and may obtain the network data from the server (150). The electronic device (1200) may process the obtained network data and execute the second application (1320).
[0190] To address the above-described technical challenges, one embodiment of the present disclosure provides an electronic device. The electronic device may include a memory that stores at least one instruction. The electronic device may include a cache memory that stores cache data. The electronic device may include at least one processor that executes at least one instruction stored in the memory. The electronic device may include a communication interface. The at least one processor may receive a request to retrieve network data provided from a server by executing the at least one instruction. The at least one processor may compare an expected network response performance, which indicates an expected time required for an operation to retrieve network data from the server by executing the at least one instruction, with an expected cache response performance, which indicates an expected time required for an operation to retrieve cache data corresponding to the network data from a cache memory. The at least one processor may, by executing the at least one instruction, request the network data from the server via the communication interface to obtain the network data, or request cache data from the cache memory to obtain the cache data, based on the comparison result. The at least one processor may process the network data or the cache data obtained by executing the at least one instruction.
[0191] In one embodiment of the present disclosure, at least one processor may calculate an expected network response performance based on a first time required from the time a network data is requested from a server by executing at least one instruction until the network data is obtained from the server. At least one processor may calculate an expected cache response performance based on a second time required from the time a cache data is requested from a cache memory by executing at least one instruction until the cache data is obtained from the cache memory.
[0192] In one embodiment of the present disclosure, at least one processor may request network data from a server via a communication interface and obtain the network data from the server, based on a first required time being equal to or less than a second required time by executing at least one instruction. At least one processor may request cache data from a cache memory and obtain the cache data from the cache memory, based on a first required time being greater than a second required time by executing at least one instruction.
[0193] In one embodiment of the present disclosure, at least one processor may calculate a first required time based on at least one of an average time of a plurality of accumulated past first required times from the time of requesting network data from a server to the time of obtaining network data from the server by executing at least one instruction, or an immediately preceding first required time from the time of requesting network data from the server to the time of obtaining network data from the server.
[0194] In one embodiment of the present disclosure, at least one processor may calculate the second time based on at least one of: an average time of a plurality of accumulated past second time-spent times from a time when cache data is requested from a cache memory to a time when cache data is obtained from the cache memory by executing at least one instruction; an immediately preceding second time-spent time from a time when cache data is requested from the cache memory to a time when cache data is obtained from the cache memory; a total number of data requests accumulated in a queue of the cache memory; and a priority of a cache data request for cache data among all data requests accumulated in a queue of the cache memory.
[0195] In one embodiment of the present disclosure, at least one processor may determine whether cache data stored in a cache memory is valid by executing at least one instruction. Upon determining that the cache data is valid by executing at least one instruction, the at least one processor may compare the expected network response performance with the cache response performance. Upon determining that the cache data is invalid by executing at least one instruction, the at least one processor may request network data from a server via a communication interface and obtain the network data from the server.
[0196] In one embodiment of the present disclosure, at least one processor may determine whether cache data is valid based on whether a validity period of the cache data has expired by executing at least one instruction.
[0197] In one embodiment of the present disclosure, the cache data may be data obtained in advance from a server and stored in a cache memory.
[0198] In one embodiment of the present disclosure, the cache memory may be non-volatile memory.
[0199] In one embodiment of the present disclosure, an electronic device can execute an application. Network data and cache data may be data for executing the application. At least one processor can execute the application using network data or cache data obtained by executing at least one instruction.
[0200] In order to solve the above-described technical problem, one embodiment of the present disclosure provides a method of operating an electronic device. The method of operating an electronic device may include a step of receiving a request to retrieve network data provided from a server. The method of operating an electronic device may include a step of comparing an expected network response performance, which indicates an expected time required for an operation to retrieve network data from the server, with an expected cache response performance, which indicates an expected time required for an operation to retrieve cache data corresponding to the network data from a cache memory that stores cache data. The method of operating an electronic device may include a step of requesting network data from a server through a communication interface and obtaining the network data from the server, or requesting cache memory from a cache memory and obtaining cache data from the cache memory, based on a result of the comparison. The method of operating an electronic device may include a step of processing the obtained network data or the obtained cache data.
[0201] In one embodiment of the present disclosure, the step of comparing the network expected response performance with the cache expected response performance may include the step of calculating the network expected response performance based on a first required time from when network data is requested from a server to when the network data is obtained from the server. The step of comparing the network expected response performance with the cache expected response performance may include the step of calculating the cache expected response performance based on a second required time from when cache data is requested from a cache memory to when the cache data is obtained from the memory. The step of comparing the network expected response performance with the cache expected response performance may include the step of comparing the network expected response performance with the cache expected response performance.
[0202] In one embodiment of the present disclosure, in the step of comparing the network expected response performance with the cache expected response performance, if the first required time is equal to or less than the second required time, network data may be requested from the server via the communication interface and the network data may be obtained from the server. In the step of comparing the network expected response performance with the cache expected response performance, if the first required time is greater than the second required time, cache data may be requested from the cache memory and the cache data may be obtained from the cache memory.
[0203] In one embodiment of the present disclosure, in the step of calculating the network expected response performance, the first required time may be calculated based on at least one of an average time of a plurality of accumulated past first required times from the time of requesting network data from the server to the time of obtaining network data from the server or an immediately preceding first required time from the time of requesting network data from the server to the time of obtaining network data from the server.
[0204] In one embodiment of the present disclosure, in the step of calculating the cache expected response performance, the second required time may be calculated based on at least one of an average time of a plurality of accumulated past second required times from when cache data is requested from the cache memory to when the cache data is obtained from the cache memory, an immediately preceding second required time from when cache data is requested from the cache memory to when the cache data is obtained from the cache memory, a total number of data requests accumulated in a queue of the cache memory, and a priority of a cache data request for cache data among all data requests accumulated in a queue of the cache memory.
[0205] In one embodiment of the present disclosure, the operating method of an electronic device may further include a step of determining whether cache data stored in a cache memory is valid. In the step of determining whether the cache data is valid, if the cache data is determined to be valid, the expected network response performance may be compared with the cache response performance. In the step of determining whether the cache data is valid, if the cache data is determined to be invalid, the network data may be requested from a server via a communication interface and obtained from the server.
[0206] In one embodiment of the present disclosure, in the step of determining whether cache data is valid, it may be determined whether cache data is valid based on whether the validity period of the cache data has expired.
[0207] In order to solve the above-described technical problem, a computer-readable recording medium having recorded thereon a program for performing at least one method of the method of operating an electronic device disclosed in one embodiment of the present disclosure on a computer can be provided.
[0208] The program executed by the electronic device described in this disclosure may be implemented as hardware components, software components, and / or a combination of hardware components and software components. The program may be executed by any system capable of executing computer-readable instructions.
[0209] Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing device to do a desired thing or may independently or collectively command a processing device to do a desired thing.
[0210] Software may be implemented as a computer program containing instructions stored on a computer-readable storage medium. Examples of computer-readable storage media include magnetic storage media (e.g., read-only memory (ROM), random-access memory (RAM), floppy disks, hard disks, etc.) and optical readable media (e.g., CD-ROMs, DVDs (Digital Versatile Discs)). The computer-readable storage media may be distributed across network-connected computer systems, so that computer-readable code may be stored and executed in a distributed manner. The storage media may be readable by a computer, stored in a memory, and executed by a processor.
[0211] Computer-readable storage media may be provided in the form of non-transitory storage media. Here, the term "non-transitory storage media" simply means a tangible device that does not contain signals (e.g., electromagnetic waves). This term does not distinguish between cases where data is permanently stored in the storage media and cases where data is temporarily stored. For example, a "non-transitory storage medium" may include a buffer in which data is temporarily stored.
[0212] Additionally, programs according to the embodiments disclosed herein may be provided as part of a computer program product. The computer program product may be traded as a commodity between sellers and buyers.
[0213] A computer program product may include a software program and a computer-readable storage medium storing the software program. For example, a computer program product may include a product in the form of a software program (e.g., a downloadable application) distributed electronically by an electronic device manufacturer or through an electronic marketplace (e.g., the Samsung Galaxy Store). For electronic distribution, at least a portion of the software program may be stored on a storage medium or temporarily created. In this case, the storage medium may be a server of the electronic device manufacturer, a server of the electronic marketplace, or a storage medium of an intermediary server that temporarily stores the software program.
[0214] Although the embodiments described above have been described with limited examples and drawings, those skilled in the art will appreciate that various modifications and variations can be made based on the above description. For example, appropriate results can still be achieved even if the described techniques are performed in a different order than described, and / or components such as the described computer system or modules are combined or combined in a different manner than described, or are replaced or substituted with other components or equivalents.
Claims
1. In an electronic device (100), A memory (130) storing at least one instruction; Cache memory (141) for storing cache data; At least one processor (110) for executing at least one instruction stored in the memory (130); and Includes a communication interface (340), The at least one processor (110) executes the at least one instruction, Receive a request to retrieve network data provided from a server (150), Compare the network expected response performance, which indicates the time expected to be taken for an operation to retrieve the network data from the server (150), with the cache expected response performance, which indicates the time expected to be taken for an operation to retrieve the cache data corresponding to the network data from the cache memory (141). According to the above comparison result, the network data is requested from the server (150) through the communication interface (340) to obtain the network data, or the cache data is requested from the cache memory (141) to obtain the cache data. An electronic device (100) that processes the acquired network data or the acquired cache data.
2. In paragraph 1, The at least one processor (110) executes the at least one instruction, The network expected response performance is determined based on the first required time from the time the network data is requested from the server (150) to the time the network data is obtained from the server (150), An electronic device (100) that determines the expected cache response performance based on a second required time from the time the cache data is requested from the cache memory (141) to the time the cache data is obtained from the cache memory (141).
3. In paragraph 2, The at least one processor (110) executes the at least one instruction, As the first required time is equal to or less than the second required time, the network data is requested to the server (150) through the communication interface (340) and the network data is obtained from the server (150). An electronic device (100) that requests the cache data from the cache memory (141) and obtains the cache data from the cache memory (141) when the first required time is greater than the second required time.
4. In either of the second or third paragraphs, The at least one processor (110) executes the at least one instruction, An electronic device (100) that determines the first required time based on at least one of an average time of accumulated multiple past first required times or a previous first required time.
5. In any one of the clauses 2 to 4, The at least one processor (110) executes the at least one instruction, An electronic device (100) that determines the second required time based on at least one of an average time of accumulated multiple past second required times, a previous second required time, a total number of data requests accumulated in a queue of the cache memory (141), and a priority of a cache data request for the cache data among the total data requests accumulated in the queue of the cache memory (141).
6. In any one of clauses 1 to 5, The at least one processor (110) executes the at least one instruction, Determine whether the cache data stored in the cache memory (141) is valid, As the above cache data is determined to be valid, the network expected response performance and the cache response performance are compared, An electronic device (100) that requests the network data to the server (150) through the communication interface (340) and obtains the network data from the server (150) when the cache data is determined to be invalid.
7. In paragraph 6, The at least one processor (110) executes the at least one instruction, An electronic device (100) that determines whether the cache data is valid based on whether the validity period of the cache data has expired.
8. In any one of clauses 1 to 7, The above cache data is an electronic device (100) that is data that is obtained in advance from the server (150) and stored in the cache memory (141).
9. In any one of clauses 1 to 8, The above cache memory (141) is an electronic device (100) that is a non-volatile memory.
10. In any one of clauses 1 to 9, The above electronic device (100) executes an application, The above network data and the above cache data are data for executing the application, The at least one processor (110) executes the at least one instruction, An electronic device (100) that executes the application using the acquired network data or the acquired cache data.
11. In the operating method of an electronic device (100), Step (S100) of receiving a request to retrieve network data provided from a server (150); A step (S200) of comparing the network expected response performance, which indicates the time expected to be taken for an operation to retrieve the network data from the server (150), with the cache expected response performance, which indicates the time expected to be taken for an operation to retrieve the cache data corresponding to the network data from a cache memory (141) that stores cache data; According to the above comparison result, a step of requesting the network data to the server (150) through the communication interface (340) to obtain the network data (S300), or requesting the cache data to the cache memory (141) to obtain the cache data (S400); and An operating method of an electronic device (100) including a step (S500) of processing the acquired network data or the acquired cache data.
12. In paragraph 11, The step (S200) of comparing the above network expected response performance and the above cache expected response performance is Step (S210) of determining the expected network response performance based on the first required time from the time the network data is requested from the server (150) to the time the network data is obtained from the server (S150); Step (S220) of determining the cache expected response performance based on the second required time from the time when the cache data is requested from the cache memory (141) to the time when the cache data is obtained from the cache memory (141); and An operating method of an electronic device, comprising a step (S230) of comparing the network expected response performance with the cache expected response performance.
13. In paragraph 12, In the step (S230) of comparing the above network expected response performance and the above cache expected response performance, As the first required time is equal to or less than the second required time, the network data is requested to the server (150) through the communication interface (340) and the network data is obtained from the server (150). An operating method of an electronic device (100) for requesting the cache data from the cache memory (141) and obtaining the cache data from the cache memory (141) when the first required time is greater than the second required time.
14. In either of paragraphs 12 or 13, In the step (S210) of determining the above network expected response performance, An operating method of an electronic device (100) for determining the first required time based on at least one of an average time of accumulated multiple past first required times or a previous first required time.
15. A computer-readable recording medium having recorded thereon a program for performing the method described in any one of claims 11 to 14 on a computer.
Citation Information
Patent Citations
Systems and methods for caching data for mobile applications
JP2005533324A
Apparatus and method for caching web browser information based on load of storage
KR101540847B1
System for providing web page using contents cacheing and method thereof
KR1020090103552A
Apparatas and method for improving a loading time in an electronic device
KR1020150104898A
Information processing device, information processing system, information processing method and program
WO2012176924A1