WO2021066308A1 - Electronic device and method for controlling same - Google Patents
Electronic device and method for controlling same Download PDFInfo
- Publication number
- WO2021066308A1 WO2021066308A1 PCT/KR2020/009996 KR2020009996W WO2021066308A1 WO 2021066308 A1 WO2021066308 A1 WO 2021066308A1 KR 2020009996 W KR2020009996 W KR 2020009996W WO 2021066308 A1 WO2021066308 A1 WO 2021066308A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- compressed data
- memory
- data
- area
- compressed
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
Definitions
- the present invention relates to an electronic device and a control method thereof capable of reducing the amount of memory usage that increases as functions provided by the electronic device are expanded.
- KSM Kernel Same-page Merging
- compression-based memory swapping As another memory saving method, there is a method such as compression-based memory swapping.
- compression-based memory swapping a memory page to be swapped out is compressed and stored, but overlapping pages between a plurality of compressed and stored memory pages are combined into one.
- the conventional compression-based memory swapping during swapping, it is determined whether or not the memory page to be swapped out and the memory page stored in compression are overlapped, so that the performance overhead is increased in the operation of determining whether the overlapping operation is delayed, etc. I can.
- the present invention proposes an electronic device and a control method thereof that minimize operation performance overhead and operation delay in memory reduction, which is a problem of the prior art.
- the present invention aims to minimize the operational performance overhead that occurs in the prior art, and at the same time minimize the overhead of examining the same memory page.
- An electronic device includes a memory and a processor, wherein data of a process to be executed is loaded into a first area of the memory, and according to an event for securing an usable capacity of the memory, the First compressed data obtained by compressing process data is stored in a second area of the memory, and the processor is stored in a third area of the memory, and whether second compressed data overlaps with the first compressed data. And, when it is identified that the second compressed data exists, the first compressed data is mapped to the third area, and other data may be stored in the second area.
- the processor may obtain a hash value of the first compressed data and the second compressed data, and identify whether or not overlap between the first compressed data and the second compressed data is based on the obtained hash value.
- the processor may store a hash value of the obtained first compressed data.
- the processor identifies whether the first compressed data and the second compressed data are compressed based on the same compression method, and whether the first compressed data and the second compressed data overlap based on the same compression method. Can be identified.
- the processor may identify sizes of the first compressed data and the second compressed data, and identify whether or not overlap between the first compressed data and the second compressed data compressed to the same size.
- the processor may identify the margin level of the operation, and when the identified margin level of the operation is equal to or higher than a predetermined level, identify whether or not the first compressed data and the second compressed data are overlapped.
- the second compressed data overlaps with third compressed data, and fourth compressed data not overlapped with other compressed data is stored in the memory, and the processor prioritizes the second compressed data over the fourth compressed data. By selecting, whether or not overlapping with the first compressed data can be identified.
- a method for controlling an electronic device includes: loading data of a process being executed into a first area of a memory; Storing first compressed data obtained by compressing the data of the process in a second area of the memory according to an event for securing the usable capacity of the memory; Identifying whether second compressed data that is stored in the third area of the memory and overlaps with the first compressed data exists; Mapping the first compressed data to the third area when it is identified that the second compressed data is present; It may include storing other data in the second area.
- the step of identifying the redundancy may include: identifying whether the first compressed data and the second compressed data are compressed based on the same compression method; And identifying whether the first compressed data and the second compressed data overlap based on the same compression method.
- the step of identifying the redundancy may include: identifying sizes of the compressed first compressed data and the second compressed data; And identifying whether the first compressed data compressed to the same size and the second compressed data overlap.
- the step of identifying the overlapping may include: identifying a margin level of operation; And if the margin level of the identified operation is equal to or greater than a predetermined level, identifying whether the first compressed data and the second compressed data overlap.
- the second compressed data overlaps with the third compressed data, and further comprises storing fourth compressed data that is not overlapped with other compressed data in the memory, and the step of identifying whether the second compressed data overlaps with the third compressed data is the fourth compressed data. It may include the step of selecting the second compressed data preferentially over the data and identifying whether the second compressed data overlaps with the first compressed data.
- a computer-readable code in a recording medium storing a computer program including a code for performing a control method of an electronic device, wherein the control method of the electronic device loads data of a process to be executed into a first area of a memory.
- the step of doing Storing first compressed data obtained by compressing data of the process in a second area of the memory according to an event for securing an usable capacity of the memory; Identifying whether there is second compressed data stored in the third area of the memory and overlapping with the stored first compressed data; If it is identified that the second compressed data is present, mapping the first compressed data to the third area in which the second compressed data is stored; And storing other compressed data in the second area in which the first compressed data is stored.
- the electronic device can reduce unnecessary memory usage by merging data having the same content.
- the redundant data merging can show a greater effect as the number of applications running at the same time in the system increases, and it can show a memory saving effect not only in an embedded device but also in a virtual server environment.
- FIG. 1 is a block diagram showing the configuration of an electronic device according to an embodiment of the present invention.
- FIG. 2 is a block diagram showing the configuration of an electronic device according to an embodiment of the present invention.
- FIG. 3 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention.
- FIG. 4 is a flowchart illustrating a memory and a mapping table of an electronic device according to an embodiment of the present invention.
- FIG. 5 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
- FIG. 6 is a diagram illustrating a memory and a mapping table of an electronic device according to an embodiment of the present invention.
- FIG. 7 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
- FIG. 8 is a diagram illustrating a mapping table of an electronic device according to an embodiment of the present invention.
- FIG. 9 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
- FIG. 10 is a diagram illustrating a mapping table of an electronic device according to an embodiment of the present invention.
- FIG. 11 is a diagram illustrating hash values according to a single node and a merge node of an electronic device according to an embodiment of the present invention.
- FIG. 12 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention.
- FIG. 13 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention.
- the electronic device 1 is a block diagram showing the configuration of an electronic device according to an embodiment of the present invention.
- the electronic device 1 may be implemented as a display device capable of displaying an image.
- the electronic device 1 may include a TV, a computer, a smart phone, a tablet, a portable media player, a wearable device, a video wall, an electronic frame, and the like.
- the electronic device 1 may be implemented as various types of devices such as image processing devices such as a set-top box without a display, household appliances such as refrigerators and washing machines, and information processing devices such as a computer body.
- image processing devices such as a set-top box without a display
- household appliances such as refrigerators and washing machines
- information processing devices such as a computer body.
- the electronic device 1 is implemented as a TV, but the electronic device of the present invention is not limited thereto, and may be applied to various electronic devices such as a set-top box other than a TV.
- an electronic device 1 includes a memory 100 and a processor 130.
- the memory 100 is a volatile storage component that can store data while power is supplied and data is lost when power is not supplied.
- the memory 100 includes, for example, a buffer, a random access memory (RAM), or the like.
- the memory 100 according to the present embodiment may include a physical memory and a virtual memory.
- When the program is executed, data for each task of a corresponding process is loaded into the memory 100.
- the memory 100 is loaded with data or software to be executed by the processor 130 from among data or software stored in the storage 180.
- the memory 100 includes an area of a general memory to which a general process is allocated, and an area of a kernel memory to which a kernel such as an operating system is allocated.
- Each area of the general memory and the kernel memory may be concentrated or distributed in a storage space of the memory 100.
- the processor 130 may allocate a general process to a spare portion of kernel memory excluding a portion to which an operating system is allocated.
- a process corresponding to the program is allocated to the memory 100 and operates. Meanwhile, a process may share some of the allocated memory with other processes. Therefore, even if one process is erased, the shared memory is not secured. Even when execution of the program is terminated, the process allocated to the memory 100 remains until it is erased from the memory 100.
- the memory 100 may be provided integrally or may be different memories, and is not limited to any one.
- the processor 130 executes a program stored in the storage 180.
- the processor 130 is implemented as at least one processor that loads at least a part of a program from the storage 180 in which the program is stored into the memory 100 and executes the program loaded in the memory 100.
- these processors may be separated from each other, or may be implemented in the form of a plurality of modules in one IC.
- the processor 130 may include at least one of a central processing unit (CPU), an application processor (AP), or a microprocessor.
- CPU central processing unit
- AP application processor
- microprocessor microprocessor
- the processor 130 first loads data related to the process into the memory 100 and executes the process based on the data loaded in the memory 100.
- the process in this embodiment is a unit of work executed based on data or applications loaded in the memory 100. That is, one or more processes are performed by the processor 130 processing data loaded in the memory 100 or executing an application loaded in the memory 100. That is, in order for a process to be executed, data corresponding to the process must be loaded into the memory 100. Multitasking is performed by the processor 130 respectively executing data for each process loaded in the memory 100 while data corresponding to a plurality of processes is loaded into the memory 100.
- the processor 130 may be implemented by executing a software program including one or more instructions stored in a storage medium readable by a machine such as the electronic device 1. have.
- the processor 130 of the electronic device 1 may call at least one instruction from among one or more instructions stored from a storage medium and execute it. This makes it possible for a device, such as the electronic device 1, to be operated to perform at least one function in accordance with the called at least one command.
- the one or more instructions may include code generated by a compiler or code executable by an interpreter.
- a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
- non-transient only means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic wave), and this term refers to the case where data is semi-permanently stored in the storage medium and temporarily stored. It does not distinguish between cases.
- a signal e.g., electromagnetic wave
- a program executed by the processor 130 may be implemented as a computer program stored in a computer program product provided separately from the electronic device 1.
- the computer program product includes a memory and a processor in which instructions corresponding to the computer program are stored.
- the electronic device 1 may perform an operation of the processor 130 by downloading and executing a computer program stored in a separate computer program product.
- the operation of the processor 130 is stored in a recording medium and may be implemented as a computer-readable program.
- the program stored in the recording medium i.e., data
- the program stored in the recording medium is directly accessed and executed by the processor 130, or is downloaded and executed to the electronic device 1 through a transmission medium implemented through a wired/wireless network in which a computer system is interconnected, thereby performing an operation. You can do it.
- FIG. 2 is a block diagram showing the configuration of an electronic device according to an embodiment of the present invention.
- the electronic device 1 may further include a communication unit 140, a signal input/output unit 150, a display unit 160, a user input unit 170, and a storage 180.
- a communication unit 140 may further include a communication unit 140, a signal input/output unit 150, a display unit 160, a user input unit 170, and a storage 180.
- I can.
- the configuration included in the electronic device 1 is not limited by the above-described exemplary embodiment, and may be configured by excluding or changing some configurations, or may be implemented by additionally including other configurations.
- the communication unit 140 is a two-way communication circuit including at least one of components such as a communication module and a communication chip corresponding to various types of wired and wireless communication protocols.
- the communication unit 140 is a LAN card wired to a router or gateway via Ethernet, a wireless communication module that performs wireless communication with an AP according to a Wi-Fi method, or a one-to-one direct wireless device such as Bluetooth. It may be implemented as a wireless communication module that performs communication.
- the communication unit 140 communicates with a server on a network to transmit and receive data packets with the server.
- the communication unit 140 may be connected to an external device other than a server, receive video/audio data from another external device, or transmit video/audio data to another external device.
- the communication unit 140 according to an embodiment of the present invention receives or transmits related data to execute a process corresponding to a program stored in the storage 180.
- the signal input/output unit 150 is wired in a 1:1 or 1:N (N is a natural number) method, such as an external device such as a set-top box or an optical media player, or an external display device or a speaker. /Receive an audio signal or output a video/audio signal to the external device.
- the signal input/output unit 150 includes a connector or port according to a preset transmission standard, such as an HDMI port, a DisplayPort, a DVI port, a Thunderbolt, a USB port, and the like. At this time, for example, HDMI, DP, Thunderbolt, etc. are connectors or ports capable of simultaneously transmitting video/audio signals, and as another embodiment, the signal input/output unit 150 is a connector for separately transmitting video/audio signals, respectively. Alternatively, it may include a port.
- the display unit 160 includes a display panel capable of displaying an image on a screen.
- the display panel is provided with a light-receiving structure such as a liquid crystal method or a self-emitting structure such as an OLED method.
- the display unit 160 may additionally include an additional component according to the structure of the display panel.
- the display panel is a liquid crystal type
- the display unit 160 includes a liquid crystal display panel and a backlight unit that supplies light. And, it includes a panel driving substrate for driving the liquid crystal of the liquid crystal display panel.
- Storage 180 stores digitized data.
- Storage 180 is a storage (storage) of a non-volatile property that can store data regardless of whether or not power is provided, and data to be processed by the processor 130 are loaded. Includes memory of volatile properties that cannot be used.
- the storage 180 refers to a storage having a nonvolatile property.
- the storage includes, for example, flash-memory, hard-disc drive (HDD), solid-state drive (SSD) read-only memory (ROM), and the like.
- the user input unit 170 includes various types of input interface related circuits provided to perform user input.
- the user input unit 170 can be configured in various forms depending on the type of the electronic device 1, for example, a mechanical or electronic button part of the electronic device 1, a remote controller separated from the electronic device 1, There are a touch pad, a touch screen installed on the display unit 160, and the like.
- FIG. 3 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention.
- the electronic device 1 loads the data of the process into the first area of the memory 100 in order to execute the process (S310).
- the electronic device 1 repeats the operation of executing and terminating a plurality of processes. In this case, the processes are accumulated in the memory in the order they are executed, but since the processes are terminated at random and the sizes of memory space occupied by the processes being executed again are different, an empty space in the memory may be continuously created in the middle.
- the electronic device 1 of the present embodiment divides and manages data of the first process into a plurality of pages in order to efficiently perform memory management.
- a page in this embodiment is a block having a certain size that divides the process data stored in the virtual memory when the data of the process stored in the physical memory is defined as a virtual memory.
- the size of the page in this embodiment is It may be 4K bytes, but is not limited thereto.
- process data is divided into pages and managed, but the unit for dividing process data is not limited thereto.
- the electronic device 1 maps the data to the first area of the memory 100.
- the mapping of the present embodiment is also referred to as another expression, that the first region is linked to the process or the process is linked to the first region.
- the processor 130 records the address of each region and information representing the corresponding process in a mapping table, finds a process mapped to a specific region, or loads a specific process into a region.
- mapping table is used to find out if it has been done.
- the mapping or link state between the process and the first region of the memory 100 is maintained while the process is being executed.
- a process is mapped to the first area, a process other than the corresponding process is blocked from writing or updating data in the first area using the first area.
- this mapping state is released, and this case may be referred to as unmapped or unlinked to the process.
- the first region is in an unmapped state for a certain process, another process may use the first region.
- a plurality of processes are allocated to the memory 100 and executed, and an event for securing the usable capacity of the memory 100 may occur at a predetermined time point. Such an event may occur, for example, according to a user input, or may occur when the usable capacity of the memory 100 falls below a threshold value.
- the electronic device 1 transmits the first compressed data obtained by compressing data of a process running in the first area of the memory 100 to the second area of the memory 100 to transmit the compressed data to the second area of the memory 100.
- Capacity can be secured.
- One of the methods of securing the capacity of the memory is, for example, swapping.
- a process must be in memory to run, but if necessary, the process can be temporarily stored in another memory during execution and then loaded back into the original memory. This process replacement process is called swapping.
- the first compressed data is stored from the first region of the memory to the second region of the memory by swapping, but the event for securing the usable capacity of the memory 100 is not limited thereto.
- process data is stored in the first area of the memory 100 according to a predefined algorithm.
- the first compressed data obtained by compressing the process data is stored in the second area of the memory 100 (S320).
- an algorithm for selecting a process to be stored from the first area to the second area of the memory 100 is determined according to a relative priority of each process of the memory 100. That is, the processor 130 selects a process having a relatively low priority among a plurality of processes in the memory 100.
- the priority of the process is determined based on the importance of the process, such as, for example, the frequency at which the process was performed, the order in which the process was terminated and unmapped in the corresponding region, and the amount of memory allocated to the process.
- the processor 130 may load data of another process into the first area of the memory 100.
- the processor 130 is stored in the third area of the memory 100, and identifies whether the second compressed data overlapping with the stored first compressed data exists ( S330). An algorithm for identifying whether the second compressed data overlapping with the first compressed data exists will be described later.
- the processor 130 maps the first compressed data to a third area of the second compressed data (S340). In this way, mapping overlapping compressed data to the same area to secure usable capacity is referred to as merging or merging of the same data. Accordingly, by merging the first compressed data and the second compressed data, the memory 100 secures a space occupied by the first compressed data. Therefore, afterwards, when other compressed data is allocated to the memory 100, the processor 130 controls the other compressed data to be stored in the second area of the memory 100 (S350).
- FIG. 4 is a diagram illustrating a memory and a mapping table of an electronic device according to an embodiment of the present invention.
- the processor 130 loads the data D1 of the process into the first area of the memory 100 in order to execute the process.
- the memory 100 may be divided into a plurality of areas such as areas A1 and A2, and data obtained by dividing process data into a predetermined size may be loaded in each area.
- the processor 130 may record information indicating that the process data is mapped to the area A1 in the mapping table 400.
- the processor 130 unloads the data D1 from the area A1 of the memory 100, and the first compressed data D2 obtained by compressing the data D1 of the process. May be stored in the area A2 of the memory 100.
- the processor 130 transfers the data D1 of the process to the area A1. Unmapping in At this time, the data D1 still exists in the area A1 of the memory 100, but the processor 130 displays a flag indicating that other data can be stored in the area A1, that is, a flag 410 such as'Free'. It can be recorded in the mapping table 400. Thus, data of other processes can be loaded into area A1 if necessary.
- the processor 130 stores, for example, the first compressed data D2 obtained by compressing the swapped-out data D1 in the area A2 of the memory 100, and stores information 420 representing this in the mapping table 400. Can be recorded.
- the processor 130 is stored in another area of the memory 100, for example, area A3, in order to secure the usable capacity of the memory 100, and the first compressed data ( It is identified whether the second compressed data D3 overlapping with D2) exists.
- an algorithm for identifying the existence of the second compressed data D3 overlapping with the first compressed data D2 will be described below in FIG. 5.
- the processor 130 maps the first compressed data D2 to the area A3 of the second compressed data D3, and , The information 430 representing this is recorded in the mapping table 400. Accordingly, the memory 100 secures a space (area A2) occupied by the first compressed data D2. At this time, the first compressed data D2 is still present in the area A2 of the memory 100, but the processor 130 has a flag indicating that other data can be stored in the area A2, for example, a flag such as'Free'. 440 may be recorded in the mapping table 400. Accordingly, if data of another process is later allocated to the memory 100, other data may be stored in the area A2 of the memory 100.
- the processor 130 searches for a flag for the first compressed data D2 in the mapping table 400, it may find that the first compressed data D2 is mapped to the area A3. This is because the first compressed data D2 and the second compressed data D3 are the same and merged previously, so the processor 130 stores the second compressed data D3 that is the same as the first compressed data D2. ).
- FIG. 5 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
- 6 illustrates a memory and a mapping table of an electronic device according to an embodiment of the present invention.
- FIG. 5 shows an algorithm using a hash value among algorithms for identifying the existence of second compressed data overlapping with the first compressed data in the memory 100 (see S330 of FIG. 3).
- the hash value refers to a value obtained through a hash function that maps data of an arbitrary length to data of a fixed length.
- the processor 130 checks whether there is compressed data without a hash value in the memory 100 by referring to the mapping table 600 (S510).
- the processor 130 obtains the hash value HV1 using a hash function (S520).
- the processor 130 identifies whether there is overlap between the compressed data based on the acquired hash value and the already acquired hash value (S530).
- the processor 130 considers that compressed data having the same hash value has a high probability of being redundant compressed data, and performs a check on all data whether the compressed data is the same.
- the redundancy check of compressed data may be performed, for example, on a page basis.
- the processor 130 maps one compressed data to an area in which the other compressed data is stored (S540).
- the processor 130 may check whether the compressed data is redundant by using a hash value in order to secure the usable capacity of the memory 100. Accordingly, the processor 130 searches whether there is compressed data without a hash value. As a result of the search, it is found that there is no hash value of the first compressed data D2, and the hash value 610 is obtained and recorded in the mapping table 600.
- the processor 130 identifies whether there is overlap between the compressed data based on the acquired hash value and the already acquired hash value. As a result of identification, if the hash value HV1 of the first compressed data D2 and the hash value HV2 of the second compressed data D3 are the same, the processor 130 It is determined that the compressed data D3 is the same. If it is determined that the first compressed data D2 and the second compressed data D3 are the same, the processor 130 maps the first compressed data D2 to the area A3 of the second compressed data D3, and indicates the same. The information 620 is recorded in the mapping table 600. Accordingly, the memory 100 secures a space A2 occupied by the first compressed data.
- the processor 130 has a flag indicating that other data can be stored in the area A2, for example, a flag such as'Free'. 630 may be recorded in the mapping table 600. Accordingly, when compressed data of another process is allocated to the memory 100 afterwards, other compressed data may be stored in the area A2 of the memory 100.
- FIG. 7 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
- FIG. 8 shows a mapping table of an electronic device according to an embodiment of the present invention.
- FIG. 8 shows mapping tables 810 and 820 including information on each region, compressed data, hash value, and algorithm used in the process of identifying redundancy between compressed data according to whether the same compression algorithm is used.
- the processor 130 determines whether or not compressed data is compressed using the same algorithm (S710).
- the processor 130 compresses and stores data in each area, and records information of an algorithm obtained by compressing the stored compressed data in the mapping table 810. Referring to FIG.
- the processor 130 classifies data using the same compression algorithm as in the case of the mapping table 820 shown in FIG. Mapped (S720).
- compressed data D1 and D3 mapped to regions A1 and A3 are compressed using the same compression algorithm (Al1; 830).
- the processor 130 classifies data corresponding to the regions A1 and A3, and identifies whether there is overlap between both compressed data based on the obtained hash values HV1 and HV3 of the two regions (S730). If it is identified as redundant data, the processor 130 may map one data to another data (S740).
- the same algorithms are classified to identify whether or not data is identical, data redundancy checks between different compression algorithms can be omitted, so that data redundancy checks can be efficiently performed.
- FIG. 9 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
- FIG. 10 shows a mapping table of an electronic device according to an embodiment of the present invention.
- the processor 130 determines whether the data has the same size after compression (S910). If the data are the same, the probability that the compressed size is the same is high. Therefore, the compressed data is compared to see if the data between the two compressed data match.
- the processor 130 classifies data having the same size after compression (S920), records it in a mapping table (refer to 1010 of FIG. 10), and identifies whether there is overlap between compressed data having the same size after compression (S930). In this case, the processor 130 may identify whether the compressed data is overlapped based on a hash value of an area having the same size after compression. If it is identified as redundant data, the processor 130 may map one compressed data to another compressed data area (S940).
- FIG. 10 shows a mapping table 1010 including each region, compressed data, hash value, and post-compressed size, which is used in the process of identifying redundancy between compressed data according to whether the data has the same size after compression.
- data D1 and D3 mapped to regions A1 and A3 have the same size (S1; 1020) after compression.
- S1; 1020 size
- the redundant check between data having different sizes after compression can be omitted, so that the data redundancy check can be efficiently performed. have.
- the data redundancy check according to the present invention can perform an operation to determine whether the hash values are the same by using the same compression algorithm or whether the size after compression is the same. have. However, it is not limited to each case and can be performed in consideration of two or more cases. For example, compressed data using the same algorithm may be classified, and data having the same size after compression may be identified among them to check whether they have the same data. Therefore, when the processor 130 performs a data redundancy check, it is possible to reduce the load and perform a faster operation.
- FIG. 11 is a diagram illustrating hash values according to a single node and a merge node of an electronic device according to an embodiment of the present invention.
- a hash value is managed by dividing into a single node and a merge node.
- the single node is used for managing the hash value of single data that has not yet found the same compressed data
- the merge node is used for the purpose of managing the hash value of duplicate data that has already found the same compressed data.
- the present invention classifies the size of compressed data from 0 to 4096, and then determines whether or not there is a harm, so there is a low possibility that a harmonic collision occurs.
- 12 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention. 12 illustrates an operation of merging compressed data according to a single node and a merge node when two identical compressed data are found, for example.
- the processor 130 of the present embodiment preferentially searches for a merge node rather than a single node.
- a chunk in this embodiment refers to compressed data stored in a memory. Accordingly, the merging operation of the merging node is the same as the merging operation of a single node except for this process, so FIG. 12 will be described based on the merging operation of the single node.
- the processor 130 When the processor 130 finds the same compressed data, it merges the chunks (S1210). Existing chunks that are unnecessary after merging are unmapped (S1220). The processor 130 stores information indicating that there is redundant compressed data by increasing the reference of the merged chunk (S1230). The chunk is not unmapped until the reference is zero. The processor 130 moves the merged chunk to the merge node (S1240).
- the margin level of the operation of the processor 130 may be determined based on the occupancy of the processor 130 of each process, and the merge operation described above may be performed based on this. Accordingly, the processor 130 may identify the margin level of the operation and, if the identified margin level is equal to or greater than a predetermined level, determine that the processor is idle (Yes in S1310) and perform the merge operation. When the processor 130 has a margin of operation, the processor determines whether there is new compressed data, and if there is new compressed data (Yes in S1320), it calculates a hash value of the new compressed data (S1330). In the present embodiment, since the merge operation is performed when the system has enough room, it is possible to efficiently operate resources without affecting other high-priority operations. However, the operation of securing the usable memory capacity is not performed only when the state of the process is always free.
- the processor 130 searches for the same compressed data by preferentially applying the merge node in the memory 100 (S1340). ). That is, when the second compressed data overlaps with the third compressed data and the fourth compressed data that does not overlap with other compressed data is stored, the processor 130 preferentially selects the second compressed data over the fourth compressed data. Whether or not overlap with the first compressed data is identified is identified. If the search for the same compressed data by the merge node is not successful (No in S1350), the processor 130 searches as a single node (S1360).
- the processor 130 may merge them to secure the usable capacity of the memory.
- the duplicate check can be efficiently performed by searching from a merge node having a high probability of finding the same compressed data.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
An electronic device, according to one embodiment of the present invention, comprises a memory and a processor. Data of an executed process is loaded on a first region of the memory, and, according to an event for securing an available capacity of the memory, first compression data, obtained by compressing the data of the process, is stored in a second region of the memory. The processor may: identify the presence of second compression data which is stored in a third region of the memory and overlaps with the first compression data; when it is identified that the second compression data is present, map the first compression data to the third region; and control other data to be stored in the second region.
Description
본 발명은 전자장치에서 제공하는 기능의 확장에 따라 증가하는 메모리 사용량을 절감할 수 있는 전자장치 및 그 제어방법에 관한 것이다.The present invention relates to an electronic device and a control method thereof capable of reducing the amount of memory usage that increases as functions provided by the electronic device are expanded.
최근 스마트 TV, 스마트 폰 등의 전자장치에서 제공하는 기능이 확장됨에 따라, 전자장치에서 사용하는 주요 어플리케이션의 메모리 사용량 증가에 따른 메모리 사용량 절감과 다수의 어플리케이션을 동시에 실행하는 멀티 태스킹 기능을 지원하기 위하여 많은 연구와 개발이 이루어지고 있다.As the functions provided by electronic devices such as smart TVs and smart phones have recently been expanded, to reduce memory usage by increasing memory usage of major applications used in electronic devices and to support a multitasking function that executes multiple applications at the same time. Much research and development is being done.
이 중 운영체제에서 메모리를 절감하기 위한 대표적인 기술로는, 예컨대, KSM(Kernel Same-page Merging)과 같은 메모리 절감 방법이 있다. KSM은, 동일한 내용의 2이상의 메모리 페이지를 하나로 합쳐서, 중복되는 메모리를 회수하는 방법이다. 하지만 KSM은, 중복되는 메모리인지 여부를 확인하기 위하여, 전체 메모리 공간을 탐색하고 각각의 데이터 내용을 완전히 비교하여야 하므로, 높은 동작 성능 오버헤드를 가지는 단점이 있다. Among them, as a representative technology for saving memory in an operating system, there is a memory saving method such as Kernel Same-page Merging (KSM). KSM is a method of recovering redundant memories by combining two or more memory pages of the same content into one. However, the KSM has a disadvantage of having a high operational performance overhead because it must search the entire memory space and completely compare the contents of each data in order to check whether the memory is redundant.
한편, 또 다른 메모리 절감 방법으로서 압축 기반 메모리 스와핑과 같은 방법이 있다. 압축 기반 메모리 스와핑에서는, 스왑 아웃되는 메모리 페이지를 압축하여 저장하되, 압축 저장된 복수의 메모리 페이지 간에 중복되는 페이지들을 하나로 합치는 방법이다. 그런데, 기존의 압축 기반 메모리 스와핑에서는, 스와핑 도중에, 스왑 아웃되는 메모리 페이지와, 압축 저장된 메모리 페이지 간의 중복 여부를 판단하므로, 이러한 중복 여부 판단 동작에 성능 오버헤드가 증가되어 스와핑 동작 지연 등이 문제될 수 있다.Meanwhile, as another memory saving method, there is a method such as compression-based memory swapping. In compression-based memory swapping, a memory page to be swapped out is compressed and stored, but overlapping pages between a plurality of compressed and stored memory pages are combined into one. However, in the conventional compression-based memory swapping, during swapping, it is determined whether or not the memory page to be swapped out and the memory page stored in compression are overlapped, so that the performance overhead is increased in the operation of determining whether the overlapping operation is delayed, etc. I can.
따라서, 본 발명은 종래 기술의 문제점인 메모리 절감에 있어서 동작 성능 오버헤드, 동작 지연 등을 최소화하는 전자장치 및 그 제어방법을 제안하고자 한다.Accordingly, the present invention proposes an electronic device and a control method thereof that minimize operation performance overhead and operation delay in memory reduction, which is a problem of the prior art.
본 발명에서는 종래 기술에서 발생하는 동작 성능 오버헤드를 최소화하면서, 동시에 동일한 메모리 페이지를 검사하는 오버헤드를 최소화 하는 것을 목표로 한다.The present invention aims to minimize the operational performance overhead that occurs in the prior art, and at the same time minimize the overhead of examining the same memory page.
본 발명의 일 실시예에 따른 전자장치는, 메모리와, 프로세서를 포함하며, 실행되는 프로세스의 데이터가 상기 메모리의 제1영역에 로딩되고, 상기 메모리의 가용용량을 확보하기 위한 이벤트에 따라, 상기 프로세스의 데이터를 압축한 제1압축 데이터가 상기 메모리의 제2영역에 저장되고, 상기 프로세서는, 상기 메모리의 제3영역에 저장되며, 상기 제1압축 데이터와 중복되는 제2압축 데이터의 존재 여부를 식별하고, 상기 제2압축 데이터가 존재하는 것으로 식별되면, 상기 제1압축 데이터를 상기 제3영역에 매핑시키고, 상기 제2영역에 다른 데이터가 저장될 수 있도록 제어할 수 있다.An electronic device according to an embodiment of the present invention includes a memory and a processor, wherein data of a process to be executed is loaded into a first area of the memory, and according to an event for securing an usable capacity of the memory, the First compressed data obtained by compressing process data is stored in a second area of the memory, and the processor is stored in a third area of the memory, and whether second compressed data overlaps with the first compressed data. And, when it is identified that the second compressed data exists, the first compressed data is mapped to the third area, and other data may be stored in the second area.
상기 프로세서는, 상기 제1압축 데이터 및 상기 제2압축 데이터의 해시값을 획득하고, 상기 획득된 해시값에 기초하여 상기 제1압축 데이터 및 제2압축 데이터 간의 중복 여부를 식별할 수 있다.The processor may obtain a hash value of the first compressed data and the second compressed data, and identify whether or not overlap between the first compressed data and the second compressed data is based on the obtained hash value.
상기 프로세서는, 상기 획득된 제1압축 데이터의 해시값을 저장할 수 있다.The processor may store a hash value of the obtained first compressed data.
상기 프로세서는, 상기 제1압축 데이터 및 상기 제2압축 데이터가 동일한 압축 방법에 기초하여 압축되었는지 여부를 식별하고, 상기 동일한 압축 방법에 기초하여 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별할 수 있다.The processor identifies whether the first compressed data and the second compressed data are compressed based on the same compression method, and whether the first compressed data and the second compressed data overlap based on the same compression method. Can be identified.
상기 프로세서는, 상기 제1압축 데이터 및 상기 제2압축 데이터의 크기를 식별하고, 동일한 크기로 압축된 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별할 수 있다. 상기 프로세서는, 동작의 여유 수준을 식별하고, 상기 식별된 동작의 여유 수준이 소정 레벨 이상이면, 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별할 수 있다.The processor may identify sizes of the first compressed data and the second compressed data, and identify whether or not overlap between the first compressed data and the second compressed data compressed to the same size. The processor may identify the margin level of the operation, and when the identified margin level of the operation is equal to or higher than a predetermined level, identify whether or not the first compressed data and the second compressed data are overlapped.
상기 제2압축 데이터는 제3압축 데이터와 중복되고, 상기 메모리에는 다른 압축 데이터와 중복되지 않은 제4압축 데이터가 저장되고, 상기 프로세서는, 상기 제4압축 데이터보다 상기 제2압축 데이터를 우선적으로 선택하여 상기 제1압축 데이터와의 중복 여부를 식별할 수 있다.The second compressed data overlaps with third compressed data, and fourth compressed data not overlapped with other compressed data is stored in the memory, and the processor prioritizes the second compressed data over the fourth compressed data. By selecting, whether or not overlapping with the first compressed data can be identified.
본 발명의 일 실시예에 따른 전자장치의 제어방법은, 실행되는 프로세스의 데이터가 메모리의 제1영역에 로딩하는 단계; 상기 메모리의 가용용량을 확보하기 위한 이벤트에 따라, 상기 프로세스의 데이터를 압축한 제1압축 데이터를 메모리의 제2영역에 저장하는 단계; 상기 메모리의 제3영역에 저장되며, 상기 제1압축 데이터와 중복되는 제2압축 데이터의 존재 여부를 식별하는 단계; 상기 제2압축 데이터가 존재하는 것으로 식별되면, 상기 제1압축 데이터를 상기 제3영역에 매핑시키는 단계; 상기 제2영역에 다른 데이터를 저장하는 단계를 포함할 수 있다.According to an embodiment of the present invention, a method for controlling an electronic device includes: loading data of a process being executed into a first area of a memory; Storing first compressed data obtained by compressing the data of the process in a second area of the memory according to an event for securing the usable capacity of the memory; Identifying whether second compressed data that is stored in the third area of the memory and overlaps with the first compressed data exists; Mapping the first compressed data to the third area when it is identified that the second compressed data is present; It may include storing other data in the second area.
상기 제1압축 데이터 및 상기 제2압축 데이터의 해시값을 획득하는 단계; 및 상기 획득된 해시값에 기초하여 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 단계를 더 포함할 수 있다.Obtaining a hash value of the first compressed data and the second compressed data; And identifying whether the first compressed data and the second compressed data overlap based on the obtained hash value.
상기 획득된 제1압축 데이터의 해시값을 저장하는 단계를 더 포함할 수 있다.It may further include storing a hash value of the obtained first compressed data.
상기 중복 여부를 식별하는 단계는, 상기 제1압축 데이터 및 상기 제2압축 데이터가 동일한 압축 방법에 기초하여 압축되었는지 여부를 식별하는 단계; 및 상기 동일한 압축 방법에 기초하여 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 단계를 포함할 수 있다.The step of identifying the redundancy may include: identifying whether the first compressed data and the second compressed data are compressed based on the same compression method; And identifying whether the first compressed data and the second compressed data overlap based on the same compression method.
상기 중복 여부를 식별하는 단계는, 압축된 상기 제1압축 데이터 및 상기 제2압축 데이터의 크기를 식별하는 단계; 및 동일한 크기로 압축된 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 단계를 포함할 수 있다.The step of identifying the redundancy may include: identifying sizes of the compressed first compressed data and the second compressed data; And identifying whether the first compressed data compressed to the same size and the second compressed data overlap.
상기 중복 여부를 식별하는 단계는, 동작의 여유 수준을 식별하는 단계; 및 상기 식별된 동작의 여유 수준이 소정 레벨 이상이면, 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 단계를 포함할 수 있다.The step of identifying the overlapping may include: identifying a margin level of operation; And if the margin level of the identified operation is equal to or greater than a predetermined level, identifying whether the first compressed data and the second compressed data overlap.
상기 제2압축 데이터는 제3압축 데이터와 중복되고, 상기 메모리에는 다른 압축 데이터와 중복되지 않은 제4압축 데이터를 저장하는 단계를 더 포함하고, 상기 중복 여부를 식별하는 단계는, 상기 제4압축 데이터보다 상기 제2압축 데이터를 우선적으로 선택하여 상기 제1압축 데이터와의 중복 여부를 식별하는 단계를 포함할 수 있다.The second compressed data overlaps with the third compressed data, and further comprises storing fourth compressed data that is not overlapped with other compressed data in the memory, and the step of identifying whether the second compressed data overlaps with the third compressed data is the fourth compressed data. It may include the step of selecting the second compressed data preferentially over the data and identifying whether the second compressed data overlaps with the first compressed data.
컴퓨터가 읽을 수 있는 코드로서, 전자장치의 제어방법을 수행하는 코드를 포함하는 컴퓨터 프로그램이 저장된 기록매체에 있어서, 상기 전자장치의 제어방법은, 실행되는 프로세스의 데이터를 메모리의 제1영역에 로딩하는 단계; 상기 메모리의 가용용량을 확보하기 위한 이벤트에 따라, 상기 프로세스의 데이터를 압축한 제1압축 데이터를 상기 메모리의 제2영역에 저장하는 단계; 상기 메모리의 제3영역에 저장되며, 상기 저장된 제1압축 데이터와 중복되는 제2압축 데이터의 존재 여부를 식별하는 단계; 상기 제2압축 데이터가 존재하는 것으로 식별되면, 상기 제1압축 데이터를 상기 제2압축 데이터가 저장된 상기 제3영역에 매핑시키는 단계; 상기 제1압축 데이터가 저장된 상기 제2영역에 다른 압축 데이터를 저장하는 단계를 포함할 수 있다.A computer-readable code, in a recording medium storing a computer program including a code for performing a control method of an electronic device, wherein the control method of the electronic device loads data of a process to be executed into a first area of a memory. The step of doing; Storing first compressed data obtained by compressing data of the process in a second area of the memory according to an event for securing an usable capacity of the memory; Identifying whether there is second compressed data stored in the third area of the memory and overlapping with the stored first compressed data; If it is identified that the second compressed data is present, mapping the first compressed data to the third area in which the second compressed data is stored; And storing other compressed data in the second area in which the first compressed data is stored.
본 발명의 전자장치 및 그 제어방법에 따르면, 전자장치는 동일한 내용을 가지고 있는 데이터를 병합하여 불필요한 메모리 사용량을 줄일 수 있다.According to the electronic device and the control method thereof of the present invention, the electronic device can reduce unnecessary memory usage by merging data having the same content.
또한, 데이터 중복검사와 병합과정은 메모리 이동을 완료한 후 이루어지므로, 기존 어플리케이션의 성능에 영향을 미치지 않고, 동작 성능 오버헤드를 최소화 할 수 있다.In addition, since the data redundancy check and merge process is performed after memory movement is completed, it is possible to minimize the operational performance overhead without affecting the performance of the existing application.
중복된 데이터 병합은 시스템에서 동시에 동작하는 어플리케이션이 많을수록 더 큰 효과를 보여줄 수 있으며, 임베디드 장치뿐만 아니라 가상 서버 환경에서도 메모리 절감 효과를 보여줄 수 있다.The redundant data merging can show a greater effect as the number of applications running at the same time in the system increases, and it can show a memory saving effect not only in an embedded device but also in a virtual server environment.
도 1은 본 발명의 일 실시예에 의한 전자장치의 구성을 도시한 블록도이다.1 is a block diagram showing the configuration of an electronic device according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 의한 전자장치의 구성을 도시한 블록도이다.2 is a block diagram showing the configuration of an electronic device according to an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 전자장치의 동작순서를 도시한 도면이다.3 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 전자장치의 메모리 및 매핑테이블을 도시한 흐름도이다.4 is a flowchart illustrating a memory and a mapping table of an electronic device according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 전자장치의 동작을 도시한 흐름도이다.5 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 전자장치의 메모리 및 매핑테이블을 도시한 도면이다.6 is a diagram illustrating a memory and a mapping table of an electronic device according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 전자장치의 동작을 도시한 흐름도이다.7 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 전자장치의 매핑테이블을 도시한 도면이다.8 is a diagram illustrating a mapping table of an electronic device according to an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 전자장치의 동작을 도시한 흐름도이다.9 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 전자장치의 매핑테이블을 도시한 도면이다.10 is a diagram illustrating a mapping table of an electronic device according to an embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 전자장치의 단일노드 및 병합노드에 따른 해시값을 도시한 도면이다.11 is a diagram illustrating hash values according to a single node and a merge node of an electronic device according to an embodiment of the present invention.
도 12는 본 발명의 일 실시예에 따른 전자장치의 동작순서를 도시한 도면이다.12 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention.
도 13은 본 발명의 일 실시예에 따른 전자장치의 동작순서를 도시한 도면이다.13 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention.
이하에서는 첨부 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 도면에서 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 구성요소를 지칭하며, 도면에서 각 구성요소의 크기는 설명의 명료성과 편의를 위해 과장되어 있을 수 있다. 다만, 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 이하의 실시예에 설명된 구성 또는 작용으로만 한정되지는 않는다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numbers or reference numerals refer to components that perform substantially the same function, and the size of each component in the drawings may be exaggerated for clarity and convenience of description. However, the technical idea of the present invention and its core configuration and operation are not limited to the configuration or operation described in the following embodiments. In describing the present invention, when it is determined that a detailed description of a known technology or configuration related to the present invention may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted.
본 발명의 실시예에서, 제1, 제2 등과 같이 서수를 포함하는 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 발명의 실시예에서, '구성되다', '포함하다', '가지다' 등의 용어는 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 또한, 본 발명의 실시예에서, '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있으며, 적어도 하나의 모듈로 일체화되어 구현될 수 있다. 또한, 본 발명의 실시예에서, 복수의 요소 중 적어도 하나(at least one)는, 복수의 요소 전부뿐만 아니라, 복수의 요소 중 나머지를 배제한 각 하나 혹은 이들의 조합 모두를 지칭한다.In an embodiment of the present invention, terms including ordinal numbers such as first and second are used only for the purpose of distinguishing one component from other components, and the expression of the singular number is plural unless the context clearly indicates otherwise. Includes the expression of. In addition, in the embodiment of the present invention, terms such as'consist of','include','have', etc. are used for the presence of one or more other features, numbers, steps, actions, components, parts, or combinations thereof. Or it should be understood that the possibility of addition is not precluded. In addition, in the embodiment of the present invention, the'module' or'unit' performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software, and is integrated into at least one module. Can be implemented. In addition, in an embodiment of the present invention, at least one of the plurality of elements refers not only to all of the plurality of elements, but also to each one or a combination thereof excluding the rest of the plurality of elements.
도 1은 본 발명의 일 실시예에 의한 전자장치의 구성을 도시한 블록도이다. 전자장치(1)는 영상을 표시할 수 있는 디스플레이장치로 구현될 수 있다. 일 예로, 전자장치(1)는 TV, 컴퓨터, 스마트 폰, 태블릿, 휴대용 미디어 플레이어, 웨어러블 디바이스, 비디오 월, 전자액자 등을 포함할 수 있다. 또한, 전자장치(1)는 디스플레이를 구비하지 않는 셋탑박스 등의 영상처리장치, 냉장고, 세탁기 등의 생활가전, 컴퓨터본체와 같은 정보처리장치 등 다양한 종류의 장치로 구현될 수 있다. 이하에서는 설명의 편의를 위해 전자장치(1)가 TV로 구현되는 경우를 가정하여 설명하나, 본 발명의 전자장치는 이에 한정되지 않으며, TV가 아닌 셋탑박스 등 다양한 전자장치에도 적용될 수 있다. 1 is a block diagram showing the configuration of an electronic device according to an embodiment of the present invention. The electronic device 1 may be implemented as a display device capable of displaying an image. For example, the electronic device 1 may include a TV, a computer, a smart phone, a tablet, a portable media player, a wearable device, a video wall, an electronic frame, and the like. In addition, the electronic device 1 may be implemented as various types of devices such as image processing devices such as a set-top box without a display, household appliances such as refrigerators and washing machines, and information processing devices such as a computer body. Hereinafter, for convenience of description, it is assumed that the electronic device 1 is implemented as a TV, but the electronic device of the present invention is not limited thereto, and may be applied to various electronic devices such as a set-top box other than a TV.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 전자장치(1)는 메모리(100)와 프로세서(130)를 포함한다. 메모리(100)는 전원이 공급되는 동안에 데이터를 저장할 수 있고 전원이 공급되지 않으면 데이터가 소실되는 휘발성 저장 컴포넌트이다. 메모리(100)는, 예컨대, 버퍼, RAM(Random Access Memory) 등을 포함한다. 본 실시예의 메모리(100)는, 물리메모리(physical memory) 및 가상메모리(virtual memory)를 포함할 수 있다. 프로그램이 실행되면, 그에 대응하는 프로세스의 태스크별로 데이터가 메모리(100)로 로드된다. 메모리(100)는 스토리지(180)에 저장된 데이터 또는 소프트웨어 중에서 프로세서(130)에 의해 실행되기 위한 데이터 또는 소프트웨어가 로딩된다. 메모리(100)는 일반 프로세스가 할당되는 일반메모리의 영역과, 운영체제 등 커널이 할당되는 커널메모리의 영역을 포함한다. 일반메모리 및 커널메모리 각각의 영역은, 메모리(100)의 어느 저장공간에 집중 또는 분산되어 있을 수 있다. 일 실시예로서, 프로세서(130)는 커널메모리 중에서 운영체제가 할당된 부분을 제외한 여유 부분에 일반 프로세스를 할당할 수도 있다. 프로그램에 대응하는 프로세스는 메모리(100)에 할당되어 동작한다. 한편, 프로세스는 할당된 메모리 중 일부를 다른 프로세스와 공유할 수도 있다. 따라서, 하나의 프로세스가 소거되더라도 공유중인 메모리는 확보되지 않는다. 프로그램의 실행이 종료되더라도 메모리(100)에 할당된 프로세스는 메모리(100)에서 소거될 때까지 남아있는다.As shown in FIG. 1, an electronic device 1 according to an embodiment of the present invention includes a memory 100 and a processor 130. The memory 100 is a volatile storage component that can store data while power is supplied and data is lost when power is not supplied. The memory 100 includes, for example, a buffer, a random access memory (RAM), or the like. The memory 100 according to the present embodiment may include a physical memory and a virtual memory. When the program is executed, data for each task of a corresponding process is loaded into the memory 100. The memory 100 is loaded with data or software to be executed by the processor 130 from among data or software stored in the storage 180. The memory 100 includes an area of a general memory to which a general process is allocated, and an area of a kernel memory to which a kernel such as an operating system is allocated. Each area of the general memory and the kernel memory may be concentrated or distributed in a storage space of the memory 100. As an embodiment, the processor 130 may allocate a general process to a spare portion of kernel memory excluding a portion to which an operating system is allocated. A process corresponding to the program is allocated to the memory 100 and operates. Meanwhile, a process may share some of the allocated memory with other processes. Therefore, even if one process is erased, the shared memory is not secured. Even when execution of the program is terminated, the process allocated to the memory 100 remains until it is erased from the memory 100.
본 발명의 일 실시예에 따른 메모리(100)는 일체로 마련될 수 있고 서로 다른 메모리 일 수 있으며, 어느 하나에 한정되지 않는다.The memory 100 according to the exemplary embodiment of the present invention may be provided integrally or may be different memories, and is not limited to any one.
프로세서(130)는 스토리지(180)에 저장된 프로그램을 실행한다. 프로세서(130)는 프로그램이 저장된 스토리지(180)로부터 프로그램의 적어도 일부를 메모리(100)로 로드하고, 메모리(100)에 로드된 프로그램을 실행하는 적어도 하나의 프로세서로 구현된다. 본 실시예의 프로세서(130)가 복수 개로 구현되는 경우, 이들 프로세서는 각각 분리되거나, 혹은 하나의 IC 내의 복수의 모듈 형태로 구현될 수 있다. 예를 들면, 프로세서(130)는 CPU(Central Processing Unit), AP(Application Processor), 또는 마이크로프로세서(microprocessor) 중 적어도 하나를 포함할 수 있다. 프로세서(130)가 스토리지(180)에 저장된 프로그램을 실행하면, 그에 대응하는 프로세스의 각 태스크에 대응하는 데이터가 메모리(100)에 로드됨으로써, 해당 프로세스가 메모리(100)의 영역을 점유하는 상태가 된다. 프로세서(130)는 프로세스에 관한 데이터를 먼저 메모리(100)에 로딩시키고, 메모리(100)에 로딩되어 있는 데이터에 기초하여 프로세스를 실행시킨다. 본 실시예에서의 프로세스는, 메모리(100)에 로딩되어 있는 데이터 또는 어플리케이션에 기반하여 실행되는 작업 단위이다. 즉, 프로세서(130)가 메모리(100)에 로딩되어 있는 데이터를 처리하거나 또는 메모리(100)에 로딩되어 있는 어플리케이션을 실행시킴으로써, 하나 이상의 프로세스가 수행된다. 즉, 프로세스가 실행되기 위해서는 해당 프로세스에 대응하는 데이터가 메모리(100)에 로딩되어 있어야 한다. 멀티 태스킹은 복수의 프로세스에 대응하는 데이터가 메모리(100)에 로딩되어 있는 상태에서, 프로세서(130)가 메모리(100)에 로딩된 각 프로세스 별 데이터를 각기 실행함으로써 수행된다.The processor 130 executes a program stored in the storage 180. The processor 130 is implemented as at least one processor that loads at least a part of a program from the storage 180 in which the program is stored into the memory 100 and executes the program loaded in the memory 100. When a plurality of processors 130 of the present embodiment are implemented, these processors may be separated from each other, or may be implemented in the form of a plurality of modules in one IC. For example, the processor 130 may include at least one of a central processing unit (CPU), an application processor (AP), or a microprocessor. When the processor 130 executes a program stored in the storage 180, data corresponding to each task of the corresponding process is loaded into the memory 100, so that the process occupies an area of the memory 100. do. The processor 130 first loads data related to the process into the memory 100 and executes the process based on the data loaded in the memory 100. The process in this embodiment is a unit of work executed based on data or applications loaded in the memory 100. That is, one or more processes are performed by the processor 130 processing data loaded in the memory 100 or executing an application loaded in the memory 100. That is, in order for a process to be executed, data corresponding to the process must be loaded into the memory 100. Multitasking is performed by the processor 130 respectively executing data for each process loaded in the memory 100 while data corresponding to a plurality of processes is loaded into the memory 100.
본 발명의 일 실시예에 따른 프로세서(130)는 전자장치(1)와 같은 기기(Machine)가 읽을 수 있는 저장 매체(Storage Medium)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어 프로그램을 실행함으로써 구현될 수 있다. 일 예로, 전자장치(1)의 프로세서(130)는 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 전자장치(1)와 같은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(Non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(예컨대, 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.The processor 130 according to an embodiment of the present invention may be implemented by executing a software program including one or more instructions stored in a storage medium readable by a machine such as the electronic device 1. have. As an example, the processor 130 of the electronic device 1 may call at least one instruction from among one or more instructions stored from a storage medium and execute it. This makes it possible for a device, such as the electronic device 1, to be operated to perform at least one function in accordance with the called at least one command. The one or more instructions may include code generated by a compiler or code executable by an interpreter. A storage medium that can be read by a device may be provided in the form of a non-transitory storage medium. Here,'non-transient' only means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic wave), and this term refers to the case where data is semi-permanently stored in the storage medium and temporarily stored. It does not distinguish between cases.
일 실시예로서, 프로세서(130)가 실행하는 프로그램은 전자장치(1)와 별도로 마련되는 컴퓨터프로그램제품에 저장된 컴퓨터프로그램으로 구현될 수 있다. 이 경우, 컴퓨터프로그램제품은 컴퓨터프로그램에 해당하는 인스트럭션이 저장된 메모리와, 프로세서를 포함한다. 이에 따라, 전자장치(1)는 별도의 컴퓨터프로그램제품에 저장된 컴퓨터프로그램을 다운로드 및 실행하여, 프로세서(130)의 동작을 수행할 수 있다. 또한, 일 실시예로서, 프로세서(130)의 동작은 기록매체에 저장되며 컴퓨터가 판독 가능한 프로그램으로 구현될 수도 있다. 기록매체에 저장된 프로그램 즉, 데이터는 프로세서(130)에 의해 직접 액세스되어 실행되거나, 컴퓨터 시스템이 상호 결합된 유무선 네트워크를 통해 구현되는 전송매체를 통해 전자장치(1)로 다운로드되어 실행됨으로써, 동작을 수행할 수 있다.As an embodiment, a program executed by the processor 130 may be implemented as a computer program stored in a computer program product provided separately from the electronic device 1. In this case, the computer program product includes a memory and a processor in which instructions corresponding to the computer program are stored. Accordingly, the electronic device 1 may perform an operation of the processor 130 by downloading and executing a computer program stored in a separate computer program product. In addition, as an embodiment, the operation of the processor 130 is stored in a recording medium and may be implemented as a computer-readable program. The program stored in the recording medium, i.e., data, is directly accessed and executed by the processor 130, or is downloaded and executed to the electronic device 1 through a transmission medium implemented through a wired/wireless network in which a computer system is interconnected, thereby performing an operation. You can do it.
도 2는 본 발명의 일 실시예에 의한 전자장치의 구성을 도시한 블록도이다.2 is a block diagram showing the configuration of an electronic device according to an embodiment of the present invention.
전자장치(1)는 메모리(100), 프로세서(130) 이외에도 통신부(140), 신호입출력부(150), 디스플레이부(160), 사용자입력부(170), 스토리지(180) 등을 추가로 포함할 수 있다. 전자장치(1)에 포함되는 구성은 상기한 일 실시예에 의해 한정되지 않고, 일부 구성을 제외 또는 변경하여 구성되거나, 추가적으로 다른 구성들을 포함하여 구현될 수 있다.In addition to the memory 100 and the processor 130, the electronic device 1 may further include a communication unit 140, a signal input/output unit 150, a display unit 160, a user input unit 170, and a storage 180. I can. The configuration included in the electronic device 1 is not limited by the above-described exemplary embodiment, and may be configured by excluding or changing some configurations, or may be implemented by additionally including other configurations.
통신부(140)는 다양한 종류의 유선 및 무선 통신 프로토콜에 대응하는 통신모듈, 통신칩 등의 구성요소들 중 적어도 하나 이상을 포함하는 양방향 통신회로이다. 예를 들면, 통신부(140)는 이더넷으로 라우터 또는 게이트웨이에 유선 접속된 랜카드나, 와이파이(Wi-Fi) 방식에 따라서 AP와 무선통신을 수행하는 무선통신모듈이나, 블루투스 등과 같은 1대 1 다이렉트 무선통신을 수행하는 무선통신모듈 등으로 구현될 수 있다. 통신부(140)는 네트워크 상의 서버와 통신함으로써, 서버와의 사이에 데이터 패킷을 송수신할 수 있다. 다른 실시예로서, 통신부(140)는 서버 외의 다른 외부장치와 연결될 수 있으며, 다른 외부장치로부터 비디오/오디오 데이터를 수신하거나, 혹은 다른 외부장치로 비디오/오디오 데이터를 전송할 수 있다. 본 발명의 일 실시예에 따른 통신부(140)는 스토리지(180)에 저장된 프로그램에 대응하는 프로세스를 실행하기 위해 관련 데이터를 수신하거나, 전송한다.The communication unit 140 is a two-way communication circuit including at least one of components such as a communication module and a communication chip corresponding to various types of wired and wireless communication protocols. For example, the communication unit 140 is a LAN card wired to a router or gateway via Ethernet, a wireless communication module that performs wireless communication with an AP according to a Wi-Fi method, or a one-to-one direct wireless device such as Bluetooth. It may be implemented as a wireless communication module that performs communication. The communication unit 140 communicates with a server on a network to transmit and receive data packets with the server. As another embodiment, the communication unit 140 may be connected to an external device other than a server, receive video/audio data from another external device, or transmit video/audio data to another external device. The communication unit 140 according to an embodiment of the present invention receives or transmits related data to execute a process corresponding to a program stored in the storage 180.
신호입출력부(150)는 셋탑박스, 광학미디어 재생장치와 같은 외부장치, 또는 외부 디스플레이장치나, 스피커 등과 1:1 또는 1:N(N은 자연수) 방식으로 유선 접속됨으로써, 해당 외부장치로부터 비디오/오디오 신호를 수신하거나 또는 해당 외부장치에 비디오/오디오 신호를 출력한다. 신호입출력부(150)는 예를 들면 HDMI 포트, DisplayPort, DVI 포트, 썬더볼트, USB 포트 등과 같이, 기 설정된 전송규격에 따른 커넥터 또는 포트 등을 포함한다. 이 때, 예컨대, HDMI, DP, 썬더볼트 등은 비디오/오디오 신호를 동시에 전송할 수 있는 커넥터 또는 포트이고, 다른 실시예로서, 신호입출력부(150)는 비디오/오디오 신호를 각각 별개로 전송하는 커넥터 또는 포트를 포함할 수도 있다.The signal input/output unit 150 is wired in a 1:1 or 1:N (N is a natural number) method, such as an external device such as a set-top box or an optical media player, or an external display device or a speaker. /Receive an audio signal or output a video/audio signal to the external device. The signal input/output unit 150 includes a connector or port according to a preset transmission standard, such as an HDMI port, a DisplayPort, a DVI port, a Thunderbolt, a USB port, and the like. At this time, for example, HDMI, DP, Thunderbolt, etc. are connectors or ports capable of simultaneously transmitting video/audio signals, and as another embodiment, the signal input/output unit 150 is a connector for separately transmitting video/audio signals, respectively. Alternatively, it may include a port.
디스플레이부(160)는 화면 상에 영상을 표시할 수 있는 디스플레이 패널을 포함한다. 디스플레이 패널은 액정 방식과 같은 수광 구조 또는 OLED 방식과 같은 자발광 구조로 마련된다. 디스플레이부(160)는 디스플레이 패널의 구조에 따라서 부가적인 구성을 추가로 포함할 수 있는데, 예를 들면 디스플레이 패널이 액정 방식이라면, 디스플레이부(160)는 액정 디스플레이 패널과, 광을 공급하는 백라이트유닛과, 액정 디스플레이 패널의 액정을 구동시키는 패널구동기판을 포함한다.The display unit 160 includes a display panel capable of displaying an image on a screen. The display panel is provided with a light-receiving structure such as a liquid crystal method or a self-emitting structure such as an OLED method. The display unit 160 may additionally include an additional component according to the structure of the display panel. For example, if the display panel is a liquid crystal type, the display unit 160 includes a liquid crystal display panel and a backlight unit that supplies light. And, it includes a panel driving substrate for driving the liquid crystal of the liquid crystal display panel.
스토리지(180)는 디지털화된 데이터를 저장한다. 스토리지(180)는 전원의 제공 유무와 무관하게 데이터를 보존할 수 있는 비휘발성 속성의 스토리지(storage)와, 프로세서(130)에 의해 처리되기 위한 데이터가 로딩되며 전원이 제공되지 않으면 데이터를 보존할 수 없는 휘발성 속성의 메모리(memory)를 포함한다. 다만, 본 발명에 따른 전자장치(1)에서 스토리지(180)는 비휘발성 속성의 스토리지를 의미한다. 스토리지는, 예컨대, 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) ROM(Read Only Memory) 등을 포함한다.The storage 180 stores digitized data. Storage 180 is a storage (storage) of a non-volatile property that can store data regardless of whether or not power is provided, and data to be processed by the processor 130 are loaded. Includes memory of volatile properties that cannot be used. However, in the electronic device 1 according to the present invention, the storage 180 refers to a storage having a nonvolatile property. The storage includes, for example, flash-memory, hard-disc drive (HDD), solid-state drive (SSD) read-only memory (ROM), and the like.
사용자입력부(170)는 사용자의 입력을 수행하기 위해 마련된 다양한 종류의 입력 인터페이스 관련 회로를 포함한다. 사용자입력부(170)는 전자장치(1)의 종류에 따라서 여러 가지 형태의 구성이 가능하며, 예를 들면 전자장치(1)의 기계적 또는 전자적 버튼부, 전자장치(1)와 분리된 리모트 컨트롤러, 터치패드, 디스플레이부(160)에 설치된 터치스크린 등이 있다.The user input unit 170 includes various types of input interface related circuits provided to perform user input. The user input unit 170 can be configured in various forms depending on the type of the electronic device 1, for example, a mechanical or electronic button part of the electronic device 1, a remote controller separated from the electronic device 1, There are a touch pad, a touch screen installed on the display unit 160, and the like.
도 3은 본 발명의 일 실시예에 따른 전자장치의 동작순서를 도시한 도면이다.3 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention.
전자장치(1)는 프로세스가 실행되기 위해 프로세스의 데이터를 메모리(100)의 제1영역에 로드한다(S310). 전자장치(1)는 복수의 프로세스를 실행하고 종료시키는 작업을 반복한다. 이 때, 프로세스는 실행되는 순서대로 메모리에 쌓이지만, 무작위로 프로세스가 종료되고, 다시 실행되는 프로세스가 차지하는 메모리 공간 사이즈가 각각 다르기 때문에 메모리의 빈 공간이 중간에 계속 생성될 수 있다. 본 실시예의 전자장치(1)는, 메모리 관리를 효율적으로 수행하기 위해, 제1프로세스의 데이터를 복수 개의 페이지(page)로 나누어 관리한다. 본 실시예의 페이지(page)는, 물리메모리에 저장되는 프로세스의 데이터를 가상메모리로 정의하는 경우, 가상메모리에 저장된 프로세스의 데이터를 나누는 일정한 크기를 가진 블록이다, 예컨대, 본 실시예의 페이지의 크기는 4K 바이트일 수 있으나, 이에 한정되는 것은 아니다. 본 실시예에서는 프로세스의 데이터를 페이지로 나누어 관리하나, 프로세스의 데이터를 나누는 단위는 이에 한정되는 것은 아니다. 또한, 전자장치(1)는 프로세스의 데이터를 메모리(100)의 제1영역에 로드하는 경우, 데이터를 메모리(100)의 제1영역에 매핑(mapping)시킨다. 본 실시예의 매핑은, 다른 표현으로, 제1영역은 프로세스에 혹은 프로세스는 제1영역에 링크(link)되었다고도 한다. 프로세서(130)는 메모리에서 각 프로세스가 각 영역에 매핑되는 경우 각 영역의 주소 및 해당 프로세스를 나타내는 정보를 매핑테이블에 기록하고, 특정 영역에 매핑된 프로세스를 찾거나, 특정 프로세스가 어느 영역에 로드되어 있는지 찾을 때 매핑테이블을 이용한다. 그리고 프로세스 및 메모리(100)의 제1영역 사이의 매핑 또는 링크 상태는 프로세스가 실행되는 동안 유지된다. 프로세스가 제1영역에 매핑된 상태에서는, 해당 프로세스가 아닌 다른 프로세스가 제1영역을 사용하여 제1영역에 데이터를 기록하거나 또는 업데이트하지 못하도록 차단된다. 프로세스가 종료되면 이러한 매핑 상태는 해제되며, 이 경우를 제1영역이 프로세스에 대해 언매핑 또는 언링크된다고 지칭될 수 있다. 제1영역이 어떠한 프로세스에 대해 언매핑 상태일 때는, 다른 프로세스는 제1영역을 사용할 수 있다.The electronic device 1 loads the data of the process into the first area of the memory 100 in order to execute the process (S310). The electronic device 1 repeats the operation of executing and terminating a plurality of processes. In this case, the processes are accumulated in the memory in the order they are executed, but since the processes are terminated at random and the sizes of memory space occupied by the processes being executed again are different, an empty space in the memory may be continuously created in the middle. The electronic device 1 of the present embodiment divides and manages data of the first process into a plurality of pages in order to efficiently perform memory management. A page in this embodiment is a block having a certain size that divides the process data stored in the virtual memory when the data of the process stored in the physical memory is defined as a virtual memory. For example, the size of the page in this embodiment is It may be 4K bytes, but is not limited thereto. In the present embodiment, process data is divided into pages and managed, but the unit for dividing process data is not limited thereto. In addition, when the electronic device 1 loads process data into the first area of the memory 100, the electronic device 1 maps the data to the first area of the memory 100. The mapping of the present embodiment is also referred to as another expression, that the first region is linked to the process or the process is linked to the first region. When each process is mapped to each region in the memory, the processor 130 records the address of each region and information representing the corresponding process in a mapping table, finds a process mapped to a specific region, or loads a specific process into a region. Mapping table is used to find out if it has been done. In addition, the mapping or link state between the process and the first region of the memory 100 is maintained while the process is being executed. When a process is mapped to the first area, a process other than the corresponding process is blocked from writing or updating data in the first area using the first area. When the process ends, this mapping state is released, and this case may be referred to as unmapped or unlinked to the process. When the first region is in an unmapped state for a certain process, another process may use the first region.
메모리(100)에 복수의 프로세스가 할당되어 실행되다가, 소정 시점에 메모리(100)의 가용용량을 확보하기 위한 이벤트가 발생할 수 있다. 이러한 이벤트는, 예를 들면 사용자 입력에 따라서 발생하거나, 또는 메모리(100)의 가용용량이 문턱값 이하로 내려가면 발생할 수 있다. 전자장치(1)는 본 이벤트 발생에 응답하여, 메모리(100)의 제1영역에서 실행되고 있는 프로세스의 데이터를 압축한 제1압축 데이터를 메모리(100)의 제2영역으로 전송함으로써 메모리(100)의 용량을 확보할 수 있다. 메모리의 용량을 확보하는 방법 중 하나로, 예컨대, 스와핑(swapping)이 있다. 프로세스가 실행되기 위해서는 메모리 상에 있어야 하지만, 필요한 경우 프로세스는 실행 도중에 임시로 다른 메모리로 저장되었다가 다시 원래 메모리로 로드될 수 있다. 이러한 프로세스 교체 과정을 스와핑이라고 한다. 본 실시예의 경우, 스와핑에 의해 메모리의 제1영역에서 메모리의 제2영역으로 제1압축 데이터가 저장되나, 메모리(100)의 가용용량을 확보하기 위한 이벤트가 이에 한정되는 것은 아니다.A plurality of processes are allocated to the memory 100 and executed, and an event for securing the usable capacity of the memory 100 may occur at a predetermined time point. Such an event may occur, for example, according to a user input, or may occur when the usable capacity of the memory 100 falls below a threshold value. In response to the occurrence of this event, the electronic device 1 transmits the first compressed data obtained by compressing data of a process running in the first area of the memory 100 to the second area of the memory 100 to transmit the compressed data to the second area of the memory 100. ) Capacity can be secured. One of the methods of securing the capacity of the memory is, for example, swapping. A process must be in memory to run, but if necessary, the process can be temporarily stored in another memory during execution and then loaded back into the original memory. This process replacement process is called swapping. In the present embodiment, the first compressed data is stored from the first region of the memory to the second region of the memory by swapping, but the event for securing the usable capacity of the memory 100 is not limited thereto.
본 발명의 일 실시예에 따른 전자장치(1)는, 메모리(100)의 가용용량이 문턱값 이하로 내려가게 되면, 미리 정의된 알고리즘에 따라 프로세스의 데이터를 메모리(100)의 제1영역에서 언로드하여, 프로세스의 데이터를 압축한 제1압축 데이터를 메모리(100)의 제2영역에 저장(S320)한다. 이 때, 메모리(100)의 제1영역에서 제2영역으로 저장될 프로세스를 선택하는 알고리즘은 메모리(100)의 각 프로세스 상호간의 상대적인 우선순위에 따라 결정된다. 즉, 프로세서(130)는 메모리(100) 내 복수의 프로세스 중에서 우선순위가 상대적으로 낮은 프로세스를 선택한다. 프로세스의 우선순위는, 예컨대, 프로세스가 수행된 빈도, 종료되어 해당 영역에서 언매핑된 순서 등과 같은 프로세스의 중요도와, 프로세스에 할당된 메모리의 사용량에 기초하여 결정한다. 프로세서(130)는 미리 정해진 알고리즘에 따라 결정된 프로세스를 메모리(100)의 제1영역에서 언로드하면, 다른 프로세스의 데이터를 메모리(100)의 제1영역에 로드할 수 있다. 한편, 메모리(100)의 가용용량을 확보하기 위하여, 프로세서(130)는 메모리(100)의 제3영역에 저장되며, 저장된 제1압축 데이터와 중복되는 제2압축 데이터의 존재 여부를 식별한다(S330). 제1압축 데이터와 중복되는 제2압축 데이터의 존재여부를 식별하는 알고리즘은 추후 설명한다. 프로세서(130)는 제1압축 데이터와 중복되는 제2압축 데이터가 존재하는 것으로 식별되면, 제1압축 데이터를 제2압축 데이터의 제3영역에 매핑시킨다(S340). 이와 같이, 중복되는 압축 데이터들을 동일 영역에 매핑시킴으로써 가용용량을 확보하는 것을 동일 데이터간의 병합 혹은 머징이라고 한다. 따라서, 제1압축 데이터와 제2압축 데이터를 병합하여, 메모리(100)는 제1압축 데이터가 차지하는 공간을 확보하게 된다. 따라서, 이후 프로세서(130)는 다른 압축 데이터가 메모리(100)로 할당되는 경우, 메모리(100)의 제2영역에 다른 압축 데이터가 저장될 수 있도록 제어한다(S350).In the electronic device 1 according to an embodiment of the present invention, when the usable capacity of the memory 100 falls below a threshold value, process data is stored in the first area of the memory 100 according to a predefined algorithm. By unloading, the first compressed data obtained by compressing the process data is stored in the second area of the memory 100 (S320). In this case, an algorithm for selecting a process to be stored from the first area to the second area of the memory 100 is determined according to a relative priority of each process of the memory 100. That is, the processor 130 selects a process having a relatively low priority among a plurality of processes in the memory 100. The priority of the process is determined based on the importance of the process, such as, for example, the frequency at which the process was performed, the order in which the process was terminated and unmapped in the corresponding region, and the amount of memory allocated to the process. When the processor 130 unloads a process determined according to a predetermined algorithm from the first area of the memory 100, the processor 130 may load data of another process into the first area of the memory 100. Meanwhile, in order to secure the usable capacity of the memory 100, the processor 130 is stored in the third area of the memory 100, and identifies whether the second compressed data overlapping with the stored first compressed data exists ( S330). An algorithm for identifying whether the second compressed data overlapping with the first compressed data exists will be described later. If it is identified that the second compressed data overlapping with the first compressed data exists, the processor 130 maps the first compressed data to a third area of the second compressed data (S340). In this way, mapping overlapping compressed data to the same area to secure usable capacity is referred to as merging or merging of the same data. Accordingly, by merging the first compressed data and the second compressed data, the memory 100 secures a space occupied by the first compressed data. Therefore, afterwards, when other compressed data is allocated to the memory 100, the processor 130 controls the other compressed data to be stored in the second area of the memory 100 (S350).
도 4는 본 발명의 일 실시예에 따른 전자장치의 메모리 및 매핑테이블을 도시한다. 도 4에서는 전술한 도 3의 흐름도에 따라 메모리의 가용용량을 확보하는 것을 보다 상세히 설명한다. 전자장치(1)에 있어서, 프로세서(130)는 프로세스를 실행하기 위해, 프로세스의 데이터(D1)를 메모리(100)의 제1영역에 로드한다. 이 때, 메모리(100)는 영역 A1, A2 등 복수 개의 영역으로 나눌 수 있고, 각각의 영역에는 프로세스의 데이터를 일정한 크기로 나눈 데이터가 로드될 수 있다. 프로세서(130)는 프로세스의 데이터(D1)를 메모리(100)의 영역 A1에 로드하면, 프로세스의 데이터가 영역 A1에 매핑됨을 나타내는 정보를 매핑테이블(400)에 기록할 수 있다. 이후, 가용용량을 확보하기 위한 이벤트가 발생함에 따라 프로세서(130)는 데이터(D1)를 메모리(100)의 영역 A1에서 언로드하고, 프로세스의 데이터(D1)를 압축한 제1압축 데이터(D2)를 메모리(100)의 영역 A2에 저장할 수 있다. 예컨대, 메모리(100)의 가용용량이 문턱값 이하로 내려가고, 프로세스의 우선순위가 메모리(100) 내의 다른 프로세스에 비해 상대적으로 낮은 경우, 프로세서(130)는 프로세스의 데이터(D1)를 영역 A1에서 언매핑한다. 이 때, 데이터(D1)는 여전히 메모리(100)의 영역 A1에 존재하나, 프로세서(130)는 영역 A1에 다른 데이터가 저장될 수 있음을 나타내는 플래그, 즉 'Free' 등과 같은 플래그(410)를 매핑테이블(400)에 기록할 수 있다. 따라서, 필요한 경우 다른 프로세스의 데이터가 영역 A1에 로드될 수 있다.4 is a diagram illustrating a memory and a mapping table of an electronic device according to an embodiment of the present invention. In FIG. 4, securing an usable capacity of a memory according to the flowchart of FIG. 3 will be described in more detail. In the electronic device 1, the processor 130 loads the data D1 of the process into the first area of the memory 100 in order to execute the process. In this case, the memory 100 may be divided into a plurality of areas such as areas A1 and A2, and data obtained by dividing process data into a predetermined size may be loaded in each area. When the processor 130 loads the process data D1 into the area A1 of the memory 100, the processor 130 may record information indicating that the process data is mapped to the area A1 in the mapping table 400. Thereafter, as an event for securing the usable capacity occurs, the processor 130 unloads the data D1 from the area A1 of the memory 100, and the first compressed data D2 obtained by compressing the data D1 of the process. May be stored in the area A2 of the memory 100. For example, when the usable capacity of the memory 100 falls below a threshold value and the priority of a process is relatively low compared to other processes in the memory 100, the processor 130 transfers the data D1 of the process to the area A1. Unmapping in At this time, the data D1 still exists in the area A1 of the memory 100, but the processor 130 displays a flag indicating that other data can be stored in the area A1, that is, a flag 410 such as'Free'. It can be recorded in the mapping table 400. Thus, data of other processes can be loaded into area A1 if necessary.
프로세서(130)는, 예컨대, 스왑 아웃된 데이터(D1)를 압축한 제1압축 데이터(D2)를 메모리(100)의 영역 A2에 저장하고, 이를 나타내는 정보(420)를 매핑테이블(400)에 기록할 수 있다. 본 발명의 일 실시예에 따르면, 프로세서(130)는 메모리(100)의 가용용량을 확보하기 위하여 메모리(100)의 다른 영역, 예컨대, 영역 A3에 저장되며, 영역 A2에 저장된 제1압축 데이터(D2)와 중복되는 제2압축 데이터(D3)가 존재하는지 여부를 식별한다. 이 때, 제1압축 데이터(D2)와 중복되는 제2압축 데이터(D3)의 존재여부를 식별하는 알고리즘은 도 5 이하에서 설명한다. 프로세서(130)는 제1압축 데이터(D2)와 중복되는 제2압축 데이터(D3)가 존재하는 것으로 식별되면, 제1압축 데이터(D2)를 제2압축 데이터(D3)의 영역 A3에 매핑시키고, 이를 나타내는 정보(430)를 매핑테이블(400)에 기록한다. 따라서, 메모리(100)는 제1압축 데이터(D2)가 차지하는 공간(영역 A2)을 확보하게 된다. 이 때, 제1압축 데이터(D2)는 여전히 메모리(100)의 영역 A2에 존재하나, 프로세서(130)는 영역 A2에 다른 데이터가 저장될 수 있음을 나타내는 플래그, 예컨대, 'Free' 등과 같은 플래그(440)를 매핑테이블(400)에 기록할 수 있다. 따라서, 추후 다른 프로세스의 데이터가 메모리(100)로 할당되는 경우, 메모리(100)의 영역 A2에 다른 데이터가 저장될 수 있다. 또한, 이후 제1압축 데이터(D2)가 메모리(100)에서 실행될 필요가 있는 경우, 다시 메모리(100)에 저장되어 병합된 제1압축 데이터(D2)를 메모리(100)에 로드해서 사용할 수 있다. 이 때, 프로세서(130)는 매핑테이블(400)에서 제1압축 데이터(D2)에 대한 플래그를 탐색하게 되면, 제1압축 데이터(D2)가 영역 A3에 매핑된 것을 찾아낼 수 있다. 이는 이전에 제1압축 데이터(D2)와 제2압축 데이터(D3)가 동일하여 병합한 것이므로, 프로세서(130)는 제1압축 데이터(D2)와 동일한 제2압축 데이터(D3)를 메모리(100)에 로드시킴으로써 이루어진다.The processor 130 stores, for example, the first compressed data D2 obtained by compressing the swapped-out data D1 in the area A2 of the memory 100, and stores information 420 representing this in the mapping table 400. Can be recorded. According to an embodiment of the present invention, the processor 130 is stored in another area of the memory 100, for example, area A3, in order to secure the usable capacity of the memory 100, and the first compressed data ( It is identified whether the second compressed data D3 overlapping with D2) exists. In this case, an algorithm for identifying the existence of the second compressed data D3 overlapping with the first compressed data D2 will be described below in FIG. 5. When it is identified that the second compressed data D3 overlapping with the first compressed data D2 exists, the processor 130 maps the first compressed data D2 to the area A3 of the second compressed data D3, and , The information 430 representing this is recorded in the mapping table 400. Accordingly, the memory 100 secures a space (area A2) occupied by the first compressed data D2. At this time, the first compressed data D2 is still present in the area A2 of the memory 100, but the processor 130 has a flag indicating that other data can be stored in the area A2, for example, a flag such as'Free'. 440 may be recorded in the mapping table 400. Accordingly, if data of another process is later allocated to the memory 100, other data may be stored in the area A2 of the memory 100. In addition, when the first compressed data D2 needs to be executed in the memory 100 afterwards, the first compressed data D2 that is stored in the memory 100 and merged again can be loaded into the memory 100 and used. . In this case, when the processor 130 searches for a flag for the first compressed data D2 in the mapping table 400, it may find that the first compressed data D2 is mapped to the area A3. This is because the first compressed data D2 and the second compressed data D3 are the same and merged previously, so the processor 130 stores the second compressed data D3 that is the same as the first compressed data D2. ).
도 5는 본 발명의 일 실시예에 따른 전자장치의 동작을 도시한 흐름도이다. 도 6은 본 발명의 일 실시예에 따른 전자장치의 메모리 및 매핑테이블을 도시한다. 도 5는 메모리(100)에서 제1압축 데이터와 중복되는 제2압축 데이터의 존재 여부를 식별(도 3의 S330 참조)하는 알고리즘 중 해시값을 이용하는 알고리즘을 도시한다. 해시값은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 해시함수를 통해 얻어지는 값을 말한다. 먼저, 프로세서(130)는 매핑테이블(600)을 참조하여 메모리(100) 내에 해시값이 없는 압축 데이터가 있는지 여부를 검사한다(S510). 이 때, 해시값이 있는 압축 데이터의 경우 중복 검사가 완료되었고, 그렇지 않은 영역은 중복 검사가 완료되지 않은 것으로 볼 수 있다. 해시값이 없는 압축 데이터가 있는 경우(S510의 Yes), 프로세서(130)는 해시함수를 이용하여 해시값(HV1)을 획득한다(S520). 프로세서(130)는 획득한 해시값과 이미 획득된 해시값에 기초하여 압축 데이터 간 중복여부를 식별한다(S530). 이 때, 프로세서(130)는 해시값이 같은 압축 데이터는 중복된 압축 데이터일 확률이 높은 것으로 보고, 압축 데이터가 동일한지는 전체 데이터에 대하여 검사를 수행한다. 앞서 언급된 바와 같이, 압축 데이터의 중복 검사는, 예컨대, 페이지 단위로 이루어질 수 있다. 압축 데이터가 중복 데이터로 식별되면, 프로세서(130)는 하나의 압축 데이터를 다른 하나의 압축 데이터가 저장된 영역에 매핑한다(S540).5 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention. 6 illustrates a memory and a mapping table of an electronic device according to an embodiment of the present invention. FIG. 5 shows an algorithm using a hash value among algorithms for identifying the existence of second compressed data overlapping with the first compressed data in the memory 100 (see S330 of FIG. 3). The hash value refers to a value obtained through a hash function that maps data of an arbitrary length to data of a fixed length. First, the processor 130 checks whether there is compressed data without a hash value in the memory 100 by referring to the mapping table 600 (S510). In this case, in the case of compressed data having a hash value, the redundancy check has been completed, and the area where the redundancy check has not been completed can be considered. When there is compressed data without a hash value (Yes in S510), the processor 130 obtains the hash value HV1 using a hash function (S520). The processor 130 identifies whether there is overlap between the compressed data based on the acquired hash value and the already acquired hash value (S530). At this time, the processor 130 considers that compressed data having the same hash value has a high probability of being redundant compressed data, and performs a check on all data whether the compressed data is the same. As mentioned above, the redundancy check of compressed data may be performed, for example, on a page basis. When the compressed data is identified as redundant data, the processor 130 maps one compressed data to an area in which the other compressed data is stored (S540).
도 6을 참조하여, 전술한 도 5의 흐름도에 따라 데이터의 중복 검사를 수행하는 것을 보다 상세히 설명한다. 메모리(100)의 매핑테이블(600)에는 제1압축 데이터(D2)는 영역 A2에, 제2압축 데이터(D3)는 영역 A3에 각각 매핑되어 있다. 본 발명의 일 실시예에 따르면, 프로세서(130)는 메모리(100)의 가용용량을 확보하기 위하여 해시값을 이용하여 압축 데이터의 중복여부를 검사할 수 있다. 따라서, 프로세서(130)는 해시값이 없는 압축 데이터가 있는지를 탐색한다. 탐색 결과 제1압축 데이터(D2)의 해시값이 없다는 것을 찾아내고, 그 해시값(610)을 획득하여 매핑테이블(600)에 기록한다. 프로세서(130)는 획득한 해시값과 이미 획득된 해시값에 기초하여 압축 데이터 간 중복여부를 식별한다. 식별한 결과, 제1압축 데이터(D2)의 해시값(HV1)과 제2압축 데이터(D3)의 해시값(HV2)이 동일하면, 프로세서(130)는 제1압축 데이터(D2)와 제2압축 데이터(D3)가 동일한 것으로 판단한다. 프로세서(130)는 제1압축 데이터(D2)와 제2압축 데이터(D3)가 동일한 것으로 판단되면, 제1압축 데이터(D2)를 제2압축 데이터(D3)의 영역 A3에 매핑시키고, 이를 나타내는 정보(620)를 매핑테이블(600)에 기록한다. 따라서, 메모리(100)는 제1압축 데이터가 차지하는 공간(A2)을 확보하게 된다. 이 때, 제1압축 데이터(D2)는 여전히 메모리(100)의 영역 A2에 존재하나, 프로세서(130)는 영역 A2에 다른 데이터가 저장될 수 있음을 나타내는 플래그, 예컨대, 'Free' 등과 같은 플래그(630)를 매핑테이블(600)에 기록할 수 있다. 따라서, 이후 다른 프로세스의 압축 데이터가 메모리(100)로 할당되는 경우, 메모리(100)의 영역 A2에 다른 압축 데이터가 저장될 수 있다.With reference to FIG. 6, it will be described in more detail that data redundancy check is performed according to the flowchart of FIG. 5. In the mapping table 600 of the memory 100, the first compressed data D2 is mapped to the area A2 and the second compressed data D3 is mapped to the area A3. According to an embodiment of the present invention, the processor 130 may check whether the compressed data is redundant by using a hash value in order to secure the usable capacity of the memory 100. Accordingly, the processor 130 searches whether there is compressed data without a hash value. As a result of the search, it is found that there is no hash value of the first compressed data D2, and the hash value 610 is obtained and recorded in the mapping table 600. The processor 130 identifies whether there is overlap between the compressed data based on the acquired hash value and the already acquired hash value. As a result of identification, if the hash value HV1 of the first compressed data D2 and the hash value HV2 of the second compressed data D3 are the same, the processor 130 It is determined that the compressed data D3 is the same. If it is determined that the first compressed data D2 and the second compressed data D3 are the same, the processor 130 maps the first compressed data D2 to the area A3 of the second compressed data D3, and indicates the same. The information 620 is recorded in the mapping table 600. Accordingly, the memory 100 secures a space A2 occupied by the first compressed data. At this time, the first compressed data D2 is still present in the area A2 of the memory 100, but the processor 130 has a flag indicating that other data can be stored in the area A2, for example, a flag such as'Free'. 630 may be recorded in the mapping table 600. Accordingly, when compressed data of another process is allocated to the memory 100 afterwards, other compressed data may be stored in the area A2 of the memory 100.
도 7은 본 발명의 일 실시예에 따른 전자장치의 동작을 도시한 흐름도이다. 한편, 도 8은 본 발명의 일 실시예에 따른 전자장치의 매핑테이블을 도시한다. 도 8에서는 동일한 압축 알고리즘을 이용하였는지에 따라 압축 데이터 간의 중복여부를 식별하는 과정에서 이용되는, 각 영역, 압축 데이터, 해시값, 알고리즘의 정보를 포함하는 매핑테이블(810, 820)을 도시한다. 도 7을 참조하면, 프로세서(130)는 각 영역에 압축 데이터를 저장할 때 동일한 알고리즘을 이용하여 압축하였는지 여부를 판단한다(S710). 프로세서(130)는 각 영역에 데이터를 압축하여 저장하고, 저장된 압축 데이터를 압축한 알고리즘의 정보를 매핑테이블(810)에 기록한다. 다시 도 7을 참조하면, 만약, 동일한 압축 알고리즘을 사용하였다면(S710의 Yes), 프로세서(130)는 도 8에 도시된 매핑테이블(820)의 경우와 같이, 동일한 압축 알고리즘을 이용한 데이터끼리 분류하여 매핑한다(S720). 본 실시예에 따르면, 영역 A1, A3에 매핑된 압축 데이터 D1, D3를 동일한 압축 알고리즘(Al1; 830)을 이용하여 압축하였다. 따라서 프로세서(130)는 영역 A1, A3에 해당하는 데이터끼리 분류하여 두 영역의 획득된 해시값 HV1, HV3에 기초하여 양 압축 데이터 간 중복여부를 식별한다(S730). 중복 데이터로 식별되면, 프로세서(130)는 하나의 데이터를 다른 하나의 데이터에 매핑할 수 있다(S740). 이와 같이, 본 실시예에 의하면, 동일한 알고리즘끼리 분류하여 데이터 동일여부를 식별하면, 서로 다른 압축 알고리즘 간의 데이터 중복검사는 생략할 수 있으므로, 데이터 중복검사를 효율적으로 진행할 수 있다.7 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention. Meanwhile, FIG. 8 shows a mapping table of an electronic device according to an embodiment of the present invention. FIG. 8 shows mapping tables 810 and 820 including information on each region, compressed data, hash value, and algorithm used in the process of identifying redundancy between compressed data according to whether the same compression algorithm is used. Referring to FIG. 7, when storing compressed data in each area, the processor 130 determines whether or not compressed data is compressed using the same algorithm (S710). The processor 130 compresses and stores data in each area, and records information of an algorithm obtained by compressing the stored compressed data in the mapping table 810. Referring to FIG. 7 again, if the same compression algorithm is used (Yes in S710), the processor 130 classifies data using the same compression algorithm as in the case of the mapping table 820 shown in FIG. Mapped (S720). According to the present embodiment, compressed data D1 and D3 mapped to regions A1 and A3 are compressed using the same compression algorithm (Al1; 830). Accordingly, the processor 130 classifies data corresponding to the regions A1 and A3, and identifies whether there is overlap between both compressed data based on the obtained hash values HV1 and HV3 of the two regions (S730). If it is identified as redundant data, the processor 130 may map one data to another data (S740). As described above, according to the present embodiment, if the same algorithms are classified to identify whether or not data is identical, data redundancy checks between different compression algorithms can be omitted, so that data redundancy checks can be efficiently performed.
도 9는 본 발명의 일 실시예에 따른 전자장치의 동작을 도시한 흐름도이다. 한편, 도 10은 본 발명의 일 실시예에 따른 전자장치의 매핑테이블을 도시한다. 도 9를 참조하면, 프로세서(130)는 각 영역에 데이터를 저장할 때, 데이터의 압축 후 크기가 동일한지 여부를 판단한다(S910). 데이터가 동일하면 압축된 크기가 같을 확률이 크므로, 압축된 데이터에 대하여 두 압축 데이터 간의 데이터가 일치하는지 비교한다. 프로세서(130)는 압축 후 크기가 동일한 데이터끼리 분류(S920)하여 매핑테이블(도 10의 1010 참조)에 기록하고, 압축 후 크기가 동일한 압축 데이터 간 중복여부를 식별한다(S930). 이 때, 프로세서(130)는 압축 후 크기가 동일한 영역의 해시값에 기초하여 압축 데이터 간 중복여부를 식별할 수 있다. 중복 데이터로 식별되면, 프로세서(130)는 하나의 압축 데이터를 다른 하나의 압축 데이터의 영역에 매핑할 수 있다(S940).9 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present invention. Meanwhile, FIG. 10 shows a mapping table of an electronic device according to an embodiment of the present invention. Referring to FIG. 9, when storing data in each region, the processor 130 determines whether the data has the same size after compression (S910). If the data are the same, the probability that the compressed size is the same is high. Therefore, the compressed data is compared to see if the data between the two compressed data match. The processor 130 classifies data having the same size after compression (S920), records it in a mapping table (refer to 1010 of FIG. 10), and identifies whether there is overlap between compressed data having the same size after compression (S930). In this case, the processor 130 may identify whether the compressed data is overlapped based on a hash value of an area having the same size after compression. If it is identified as redundant data, the processor 130 may map one compressed data to another compressed data area (S940).
도 10에서는 데이터의 압축 후 크기가 동일한지 여부에 따라 압축 데이터 간의 중복여부를 식별하는 과정에서 이용되는, 각 영역, 압축 데이터, 해시값, 압축 후 크기를 포함하는 매핑테이블(1010)을 도시한다. 본 실시예에 따르면, 영역 A1, A3에 매핑된 데이터 D1, D3는 압축 후 동일한 크기(S1; 1020)를 가진다. 이와 같이, 본 실시예에 의해 압축 후 동일한 크기를 가지는 데이터끼리 분류하여 데이터 동일여부를 식별하면, 압축 후 서로 다른 크기를 가지는 데이터 간의 중복검사는 생략할 수 있으므로, 데이터 중복검사를 효율적으로 진행할 수 있다.FIG. 10 shows a mapping table 1010 including each region, compressed data, hash value, and post-compressed size, which is used in the process of identifying redundancy between compressed data according to whether the data has the same size after compression. . According to the present embodiment, data D1 and D3 mapped to regions A1 and A3 have the same size (S1; 1020) after compression. As described above, if data having the same size after compression is classified according to the present embodiment to identify whether the data is identical, the redundant check between data having different sizes after compression can be omitted, so that the data redundancy check can be efficiently performed. have.
도 5 내지 도 10에서 전술한 바와 같이, 본 발명에 따른 데이터 중복여부 검사는 동일한 압축 알고리즘에 의하는지, 혹은 압축 후 크기가 동일한지 여부를 이용하여 해시값이 동일한지 여부 판단 동작을 수행할 수 있다. 다만, 각각의 경우로만 한정하지 않고 둘 이상의 경우를 고려하여 수행할 수 있다. 예컨대, 동일한 알고리즘을 이용한 압축데이터들끼리 분류하고, 이들 중 압축 후 크기가 동일한 데이터들을 식별하여 동일 데이터를 가지는지 여부를 검사할 수 있다. 따라서 프로세서(130)는 데이터의 중복 검사를 수행할 때, 로드를 저감할 수 있고 보다 신속한 동작 수행이 가능하다.5 to 10, the data redundancy check according to the present invention can perform an operation to determine whether the hash values are the same by using the same compression algorithm or whether the size after compression is the same. have. However, it is not limited to each case and can be performed in consideration of two or more cases. For example, compressed data using the same algorithm may be classified, and data having the same size after compression may be identified among them to check whether they have the same data. Therefore, when the processor 130 performs a data redundancy check, it is possible to reduce the load and perform a faster operation.
도 11은 본 발명의 일 실시예에 따른 전자장치의 단일노드 및 병합노드에 따른 해시값을 도시한 도면이다. 도 11에서는 압축 데이터의 중복검사를 효율적으로 수행하기 위하여, 단일노드와 병합노드로 구분하여 해시값을 관리한다. 단일노드는 아직 동일 압축 데이터를 찾지 못한 단일 데이터의 해시값을 관리하기 위한 목적이고, 병합노드는 이미 동일한 압축 데이터를 찾은 중복된 데이터의 해시값을 관리하기 위한 목적으로 사용한다. 11 is a diagram illustrating hash values according to a single node and a merge node of an electronic device according to an embodiment of the present invention. In FIG. 11, in order to efficiently perform the redundancy check of compressed data, a hash value is managed by dividing into a single node and a merge node. The single node is used for managing the hash value of single data that has not yet found the same compressed data, and the merge node is used for the purpose of managing the hash value of duplicate data that has already found the same compressed data.
본 발명은, 압축된 데이터의 크기를 0에서 4096크기로 분류하고 나서 그 중에 해시키가 있는지 여부를 판단하므로 해시키 충돌이 일어날 가능성이 낮다.The present invention classifies the size of compressed data from 0 to 4096, and then determines whether or not there is a harm, so there is a low possibility that a harmonic collision occurs.
도 12는 본 발명의 일 실시예에 따른 전자장치의 동작순서를 도시한 도면이다. 도 12는, 예컨대, 동일한 두 개의 압축 데이터를 찾은 경우, 단일노드와 병합노드에 따른 압축 데이터 병합 동작을 도시한다. 12 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention. 12 illustrates an operation of merging compressed data according to a single node and a merge node when two identical compressed data are found, for example.
병합노드는, 이미 중복되는 데이터가 존재하는 것이므로, 앞으로도 이와 중복될 가능성이 높다는 개연성을 가지므로, 단일노드에 비하여 중복된 데이터를 발견할 가능성이 높다고 본다. 따라서, 본 실시예의 프로세서(130)는, 단일노드보다 병합노드를 우선적으로 탐색한다. 병합된 청크(chunk)를 병합노드로 이동하는 과정의 경우(S1240), 단일노드의 병합 동작에서만 수행하고 병합노드의 병합 동작에서는 이미 탐색된 중복된 데이터로 수행하므로 별도로 수행할 필요가 없다. 본 실시예의 청크는 메모리에 저장되어 있는 압축 데이터를 의미한다. 따라서, 병합노드의 병합 동작의 경우, 이 과정을 제외하고 단일노드의 병합 동작과 동일하므로, 도 12는 단일노드의 병합 동작을 기준으로 설명한다.Since the merge node already has duplicated data, it has a high probability that it will be duplicated in the future, so it is considered that it is more likely to find duplicated data compared to a single node. Accordingly, the processor 130 of the present embodiment preferentially searches for a merge node rather than a single node. In the case of the process of moving the merged chunk to the merge node (S1240), since the merge operation of the single node is performed only, and the merge operation of the merge node is performed with the already found duplicate data, there is no need to perform it separately. A chunk in this embodiment refers to compressed data stored in a memory. Accordingly, the merging operation of the merging node is the same as the merging operation of a single node except for this process, so FIG. 12 will be described based on the merging operation of the single node.
프로세서(130)는 동일한 압축 데이터를 찾은 경우 청크를 병합한다(S1210). 병합 이후에 불필요한 기존 청크는 언매핑한다(S1220). 프로세서(130)는 병합 청크의 참조를 증가(S1230)하여 중복된 압축 데이터가 있다는 정보를 저장한다. 해당 청크는 참조가 0이 될 때까지 언매핑하지 않는다. 프로세서(130)는 병합된 청크를 병합노드로 이동한다(S1240).When the processor 130 finds the same compressed data, it merges the chunks (S1210). Existing chunks that are unnecessary after merging are unmapped (S1220). The processor 130 stores information indicating that there is redundant compressed data by increasing the reference of the merged chunk (S1230). The chunk is not unmapped until the reference is zero. The processor 130 moves the merged chunk to the merge node (S1240).
도 13은 본 발명의 일 실시예에 따른 전자장치의 동작순서를 도시한 도면이다. 각 프로세스는 프로세서(130)를 점유하므로, 각 프로세스의 프로세서(130) 점유율에 기반하여 프로세서(130)의 동작의 여유 수준을 판단하고, 이에 기초하여 앞서 설명한 병합 동작을 수행할 수 있다. 따라서, 프로세서(130)는 동작의 여유 수준을 식별하여 식별된 여유 수준이 소정 레벨 이상이면, 이를 프로세서가 여유있다(idle)고 판단(S1310의 Yes)하고 병합 동작을 수행할 수 있다. 프로세서(130)가 동작의 여유가 있는 경우, 프로세서는 신규 압축 데이터가 있는지 여부를 판단하고, 신규 압축 데이터가 있으면(S1320의 Yes), 신규 압축 데이터의 해시값을 계산한다(S1330). 본 실시예에서는 시스템이 여유가 있을 때 병합 동작을 수행하므로, 다른 우선순위가 높은 동작에 영향을 주지 않아서 리소스를 효율적으로 운영할 수 있다. 다만, 프로세스의 상태가 항상 여유있을 때만 메모리 가용용량을 확보하는 동작을 수행하는 것은 아니다.13 is a diagram illustrating an operation sequence of an electronic device according to an embodiment of the present invention. Since each process occupies the processor 130, the margin level of the operation of the processor 130 may be determined based on the occupancy of the processor 130 of each process, and the merge operation described above may be performed based on this. Accordingly, the processor 130 may identify the margin level of the operation and, if the identified margin level is equal to or greater than a predetermined level, determine that the processor is idle (Yes in S1310) and perform the merge operation. When the processor 130 has a margin of operation, the processor determines whether there is new compressed data, and if there is new compressed data (Yes in S1320), it calculates a hash value of the new compressed data (S1330). In the present embodiment, since the merge operation is performed when the system has enough room, it is possible to efficiently operate resources without affecting other high-priority operations. However, the operation of securing the usable memory capacity is not performed only when the state of the process is always free.
한편, 본 실시예에 따르면, 병합노드는 단일노드보다 동일한 압축 데이터를 발견할 가능성이 높으므로, 프로세서(130)는 메모리(100)에서 병합노드를 우선적으로 적용하여 동일한 압축 데이터를 탐색한다(S1340). 즉, 제2압축 데이터는 제3압축 데이터와 중복되고, 다른 압축 데이터와 중복되지 않은 제4압축 데이터가 저장되는 경우, 프로세서(130)는 제4압축 데이터보다 제2압축 데이터를 우선적으로 선택하여 제1압축 데이터와의 중복 여부를 식별한다. 프로세서(130)는 병합노드로 동일한 압축 데이터 탐색에 성공하지 못했다면(S1350의 No), 단일노드으로 탐색한다(S1360). 프로세서(130)는 병합노드로 동일한 압축 데이터를 탐색하였다면(S1350의 Yes), 이들을 병합하여 메모리의 가용용량을 확보할 수 있다. 이와 같이, 본 실시예에 의하면, 해시값을 단일노드와 병합노드로 구분하여 관리하는 경우, 동일한 압축 데이터를 발견할 가능성이 높은 병합노드부터 탐색하여 중복검사를 효율적으로 수행할 수 있다.Meanwhile, according to the present embodiment, since the merge node is more likely to find the same compressed data than a single node, the processor 130 searches for the same compressed data by preferentially applying the merge node in the memory 100 (S1340). ). That is, when the second compressed data overlaps with the third compressed data and the fourth compressed data that does not overlap with other compressed data is stored, the processor 130 preferentially selects the second compressed data over the fourth compressed data. Whether or not overlap with the first compressed data is identified is identified. If the search for the same compressed data by the merge node is not successful (No in S1350), the processor 130 searches as a single node (S1360). If the processor 130 searches for the same compressed data by the merge node (Yes in S1350), the processor 130 may merge them to secure the usable capacity of the memory. As described above, according to the present embodiment, when the hash value is divided into a single node and a merge node and managed, the duplicate check can be efficiently performed by searching from a merge node having a high probability of finding the same compressed data.
Claims (15)
- 전자장치에 있어서,In the electronic device,메모리와,With memory,프로세서를 포함하며,Includes a processor,실행되는 프로세스의 데이터가 상기 메모리의 제1영역에 로딩되고,Data of the process being executed is loaded into the first area of the memory,상기 메모리의 가용용량을 확보하기 위한 이벤트에 따라, 상기 프로세스의 데이터를 압축한 제1압축 데이터가 상기 메모리의 제2영역에 저장되고,According to an event for securing the usable capacity of the memory, first compressed data obtained by compressing the data of the process is stored in a second area of the memory,상기 프로세서는,The processor,상기 메모리의 제3영역에 저장되며, 상기 제1압축 데이터와 중복되는 제2압축 데이터의 존재 여부를 식별하고,It is stored in the third area of the memory, and identifies whether second compressed data overlapping with the first compressed data exists,상기 제2압축 데이터가 존재하는 것으로 식별되면, 상기 제1압축 데이터를 상기 제3영역에 매핑시키고,When it is identified that the second compressed data exists, the first compressed data is mapped to the third area,상기 제2영역에 다른 데이터가 저장될 수 있도록 제어하는 전자장치.An electronic device that controls other data to be stored in the second area.
- 제1항에 있어서,The method of claim 1,상기 프로세서는,The processor,상기 제1압축 데이터 및 상기 제2압축 데이터의 해시값을 획득하고,Obtaining a hash value of the first compressed data and the second compressed data,상기 획득된 해시값에 기초하여 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 전자장치.An electronic device that identifies whether there is overlap between the first compressed data and the second compressed data based on the obtained hash value.
- 제2항에 있어서,The method of claim 2,상기 프로세서는, 상기 획득된 제1압축 데이터의 해시값을 저장하는 전자장치.The processor is an electronic device that stores a hash value of the obtained first compressed data.
- 제1항에 있어서,The method of claim 1,상기 프로세서는, The processor,상기 제1압축 데이터 및 상기 제2압축 데이터가 동일한 압축 방법에 기초하여 압축되었는지 여부를 식별하고,Identifying whether the first compressed data and the second compressed data are compressed based on the same compression method,상기 동일한 압축 방법에 기초하여 압축된 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 전자장치.An electronic device that identifies whether there is overlap between the first compressed data and the second compressed data compressed based on the same compression method.
- 제1항에 있어서,The method of claim 1,상기 프로세서는,The processor,압축된 상기 제1압축 데이터 및 상기 제2압축 데이터의 크기를 식별하고,Identify the size of the compressed first compressed data and the second compressed data,동일한 크기로 압축된 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 전자장치.An electronic device that identifies whether there is overlap between the first compressed data and the second compressed data compressed to the same size.
- 제1항에 있어서,The method of claim 1,상기 프로세서는, The processor,동작의 여유 수준을 식별하고,Identify the level of margin of motion,상기 식별된 동작의 여유 수준이 소정 레벨 이상이면, 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 전자장치.When the identified margin level of the operation is equal to or higher than a predetermined level, the electronic device identifies whether the first compressed data and the second compressed data overlap.
- 제1항에 있어서,The method of claim 1,상기 제2압축 데이터는 제3압축 데이터와 중복되고,The second compressed data overlaps with the third compressed data,상기 메모리에는 다른 압축 데이터와 중복되지 않은 제4압축 데이터가 저장되고,The fourth compressed data that is not duplicated with other compressed data is stored in the memory,상기 프로세서는, 상기 제4압축 데이터보다 상기 제2압축 데이터를 우선적으로 선택하여 상기 제1압축 데이터와의 중복 여부를 식별하는 전자장치.The processor is an electronic device that selects the second compressed data preferentially over the fourth compressed data and identifies whether the second compressed data overlaps with the first compressed data.
- 전자장치의 제어방법에 있어서,In the control method of an electronic device,실행되는 프로세스의 제1압축 데이터를 메모리의 제1영역에 로딩하는 단계;Loading first compressed data of a process being executed into a first area of a memory;상기 메모리의 가용용량을 확보하기 위한 이벤트에 따라, 상기 로딩한 제1압축 데이터를 메모리의 제2영역에 저장하는 단계;Storing the loaded first compressed data in a second area of the memory according to an event for securing the usable capacity of the memory;상기 메모리의 제3영역에 저장되며, 상기 저장된 제1압축 데이터와 중복되는 제2압축 데이터의 존재 여부를 식별하는 단계;Identifying whether there is second compressed data stored in the third area of the memory and overlapping with the stored first compressed data;상기 제2압축 데이터가 존재하는 것으로 식별되면, 상기 제1압축 데이터를 상기 제3영역에 매핑시키는 단계;Mapping the first compressed data to the third area when it is identified that the second compressed data is present;상기 제2영역에 다른 압축 데이터를 저장하는 단계를 포함하는 전자장치의 제어방법.And storing other compressed data in the second area.
- 제8항에 있어서,The method of claim 8,상기 제1압축 데이터 및 상기 제2압축 데이터의 해시값을 획득하는 단계; 및Obtaining a hash value of the first compressed data and the second compressed data; And상기 획득된 해시값에 기초하여 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 단계를 더 포함하는 전자장치의 제어방법.And identifying whether the first compressed data and the second compressed data overlap based on the obtained hash value.
- 제9항에 있어서,The method of claim 9,상기 획득된 제1압축 데이터의 해시값을 저장하는 단계를 더 포함하는 전자장치의 제어방법.And storing a hash value of the obtained first compressed data.
- 제8항에 있어서,The method of claim 8,상기 중복 여부를 식별하는 단계는,The step of identifying whether or not the duplicates are duplicated,상기 제1압축 데이터 및 상기 제2압축 데이터가 동일한 압축 방법에 기초하여 압축되었는지 여부를 식별하는 단계; 및Identifying whether the first compressed data and the second compressed data are compressed based on the same compression method; And상기 동일한 압축 방법에 기초하여 압축된 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 단계를 포함하는 전자장치의 제어방법.And identifying whether the first compressed data and the second compressed data that are compressed based on the same compression method are duplicated.
- 제8항에 있어서,The method of claim 8,상기 중복 여부를 식별하는 단계는,The step of identifying whether or not the duplicates are duplicated,압축된 상기 제1압축 데이터 및 상기 제2압축 데이터의 크기를 식별하는 단계; 및Identifying sizes of the compressed first compressed data and the second compressed data; And동일한 크기로 압축된 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 단계를 포함하는 전자장치의 제어방법.And identifying whether the first compressed data compressed to the same size and the second compressed data overlap.
- 제8항에 있어서,The method of claim 8,상기 중복 여부를 식별하는 단계는,The step of identifying whether or not the duplicates are duplicated,동작의 여유 수준을 식별하는 단계; 및Identifying a margin level of operation; And상기 식별된 동작의 여유 수준이 소정 레벨 이상이면, 상기 제1압축 데이터 및 상기 제2압축 데이터 간의 중복 여부를 식별하는 단계를 포함하는 전자장치의 제어방법.And identifying whether or not overlapping between the first compressed data and the second compressed data is duplicated if the identified margin level of the operation is equal to or greater than a predetermined level.
- 제8항에 있어서,The method of claim 8,상기 제2압축 데이터는 제3압축 데이터와 중복되고, 상기 메모리에는 다른 압축 데이터와 중복되지 않은 제4압축 데이터를 저장하는 단계를 더 포함하고,The second compressed data overlaps with the third compressed data, and further comprising storing fourth compressed data that is not overlapped with other compressed data in the memory,상기 중복 여부를 식별하는 단계는, 상기 제4압축 데이터보다 상기 제2압축 데이터를 우선적으로 선택하여 상기 제1압축 데이터와의 중복 여부를 식별하는 단계를 포함하는 전자장치의 제어방법.The step of identifying the overlapping comprises selecting the second compressed data preferentially over the fourth compressed data and identifying whether the second compressed data overlaps with the first compressed data.
- 컴퓨터가 읽을 수 있는 코드로서, 전자장치의 제어방법을 수행하는 코드를 포함하는 컴퓨터 프로그램이 저장된 기록매체에 있어서, 상기 전자장치의 제어방법은, A computer-readable code, in a recording medium storing a computer program including a code for performing a method of controlling an electronic device,실행되는 프로세스의 제1압축 데이터를 메모리의 제1영역에 로딩하는 단계;Loading first compressed data of a process being executed into a first area of a memory;상기 메모리의 가용용량을 확보하기 위한 이벤트에 따라, 상기 로딩한 제1압축 데이터를 메모리의 제2영역에 저장하는 단계;Storing the loaded first compressed data in a second area of the memory according to an event for securing the usable capacity of the memory;상기 메모리의 제3영역에 저장되며, 상기 저장된 제1압축 데이터와 중복되는 제2압축 데이터의 존재 여부를 식별하는 단계;Identifying whether there is second compressed data stored in the third area of the memory and overlapping with the stored first compressed data;상기 제2압축 데이터가 존재하는 것으로 식별되면, 상기 제1압축 데이터를 상기 제3영역에 매핑시키는 단계;Mapping the first compressed data to the third area when it is identified that the second compressed data is present;상기 제2영역에 다른 압축 데이터를 저장하는 단계를 포함하는 것을 특징으로 하는 컴퓨터가 읽을 수 있는 프로그램이 기록된 기록매체.And storing other compressed data in the second area.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190122057A KR20210039617A (en) | 2019-10-02 | 2019-10-02 | Electronic apparatus and control method thereof |
KR10-2019-0122057 | 2019-10-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021066308A1 true WO2021066308A1 (en) | 2021-04-08 |
Family
ID=75337154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2020/009996 WO2021066308A1 (en) | 2019-10-02 | 2020-07-29 | Electronic device and method for controlling same |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20210039617A (en) |
WO (1) | WO2021066308A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170019729A (en) * | 2015-08-12 | 2017-02-22 | 삼성전자주식회사 | Electronic device for compressing data and method thereof |
KR20170092912A (en) * | 2016-02-04 | 2017-08-14 | 삼성전자주식회사 | Mehtod for managing memory and electronic device thereof |
US20180090184A1 (en) * | 2016-09-28 | 2018-03-29 | SK Hynix Inc. | Apparatus and method for controlling memory |
JP2018063505A (en) * | 2016-10-12 | 2018-04-19 | 富士通株式会社 | Memory management control unit, memory management control method and memory management control program |
KR20190029904A (en) * | 2017-09-13 | 2019-03-21 | 엘지전자 주식회사 | A digital device and method for controlling the same |
-
2019
- 2019-10-02 KR KR1020190122057A patent/KR20210039617A/en not_active Application Discontinuation
-
2020
- 2020-07-29 WO PCT/KR2020/009996 patent/WO2021066308A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170019729A (en) * | 2015-08-12 | 2017-02-22 | 삼성전자주식회사 | Electronic device for compressing data and method thereof |
KR20170092912A (en) * | 2016-02-04 | 2017-08-14 | 삼성전자주식회사 | Mehtod for managing memory and electronic device thereof |
US20180090184A1 (en) * | 2016-09-28 | 2018-03-29 | SK Hynix Inc. | Apparatus and method for controlling memory |
JP2018063505A (en) * | 2016-10-12 | 2018-04-19 | 富士通株式会社 | Memory management control unit, memory management control method and memory management control program |
KR20190029904A (en) * | 2017-09-13 | 2019-03-21 | 엘지전자 주식회사 | A digital device and method for controlling the same |
Also Published As
Publication number | Publication date |
---|---|
KR20210039617A (en) | 2021-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11531625B2 (en) | Memory management method and apparatus | |
EP3796168A1 (en) | Information processing apparatus, information processing method, and virtual machine connection management program | |
US20230418736A1 (en) | Virtual Memory Management Method and Electronic Device | |
US9317312B2 (en) | Computer and memory management method | |
CN111078410B (en) | Memory allocation method and device, storage medium and electronic equipment | |
US9736529B2 (en) | USB sharing method for combo TV set, combo TV set and computer readable storage medium | |
KR20140146458A (en) | Method for managing memory and apparatus thereof | |
CN108064086B (en) | Bandwidth allocation method and device, computer equipment and storage medium | |
KR102343642B1 (en) | Method and Electronic Device for operating data | |
CN113886019B (en) | Virtual machine creation method, device, system, medium and equipment | |
JP2018501559A (en) | System and method for improved latency in heterogeneous memory architectures | |
WO2021066308A1 (en) | Electronic device and method for controlling same | |
CN116243850A (en) | Memory management method and electronic equipment | |
US7900010B2 (en) | System and method for memory allocation management | |
WO2023125565A1 (en) | Network node configuration and access request processing method and apparatus | |
CN112750393A (en) | Image display method, device and system and display screen controller | |
CN115756868A (en) | Memory allocation method, device, equipment, storage medium and computer program product | |
CN113950033B (en) | Data transmission method and equipment | |
CN114253737A (en) | Electronic device, memory recovery method thereof and medium | |
US11237741B2 (en) | Electronic device and control method for controlling memory | |
US10223264B2 (en) | Data access control apparatus | |
WO2023033584A1 (en) | Electronic device and control method therefor | |
JP2010049303A (en) | Memory controller, non-volatile storage device, access device, and non-volatile storage system | |
WO2024155074A1 (en) | Electronic device, and method for managing memory of electronic device | |
WO2023185684A1 (en) | Process killing method for application, and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20872347 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20872347 Country of ref document: EP Kind code of ref document: A1 |