Electronic device and data management method using same
Patent Information
- Application Number
- PCT/KR2024/009271
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-04
- Filing Date
- 2024-07-02
- Publication Date
- 2025-02-13
Smart Images

Figure KR2024009271_13022025_PF_FP_ABST
Abstract
Description
Electronic devices and data management methods using the same
[0001] Various embodiments of the present disclosure relate to an electronic device for reading compressed data and a data management method using the same.
[0002] With the advancement of digital technology, various types of electronic devices are being used, such as smart TVs, smart phones, tablet PCs, electronic notebooks, personal digital assistants (PDAs), and wearable devices. Electronic devices may include at least one hardware component for storing various types of data.
[0003] Electronic devices may include storage such as a hard disk drive (HDD), a solid state disk (SSD), or flash memory to store large amounts of data required to perform various functions.
[0004] Electronic devices may utilize virtual memory management techniques to efficiently store and manage data. For example, virtual memory management techniques manage data by mapping main memory (e.g., dynamic random access memory (DRAM)) and storage (e.g., non-volatile memory). This may include loading at least some of the data stored in storage required by the processor into main memory for processing.
[0005] Meanwhile, when using virtual memory management techniques, the process of reading data requires repeatedly allocating and freeing virtual memory address space, which can incur overhead. If this overhead persists, it can lead to performance degradation in electronic devices.
[0006] Various embodiments of the present disclosure may provide an electronic device and a data management method using the same that allocates an address space of virtual memory when registering a file system, releases the address space of virtual memory when releasing the file system, and reuses the address space of virtual memory while reading data based on a read request.
[0007] An electronic device for reading a compressed file according to embodiments of the present disclosure may include a memory storing at least one command, and at least one processor executing at least one command. The at least one processor may register at least one file system, and when a read request occurs, read compressed data included in the at least one file system using a virtual memory, and decompress the at least one file system. When the at least one file system is registered, the virtual memory may be allocated an address space and used for decompressing the compressed data based on the read request, and when the at least one file system is decompressed, the address space may be released.
[0008] In one embodiment, after the virtual memory has been used to decompress the compressed data based on the read request, when a new read request occurs, the address space can be reused for decompressing new compressed data by memory mapping from new physical memory.
[0009] In one embodiment, the at least one processor can recognize the at least one file system at a first point in time, initialize the at least one file system, allocate the address space of the virtual memory, and register the at least one file system in the main system.
[0010] In one embodiment, the first point in time may be at least one of a boot point of the main system and a mount point of a disk including the at least one file system.
[0011] In one embodiment, the at least one processor can terminate the at least one file system at a second point in time, free the address space of the virtual memory, clean up the virtual memory, and remove the at least one file system from the main system.
[0012] In one embodiment, the second point in time may be at least one of a process termination point of the main system and an unmount point of a disk including the at least one file system.
[0013] In one embodiment, the at least one processor may generate the decompressed data by allocating a first memory space of a first physical memory to store the compressed data, allocating a second memory space of a second physical memory to store the decompressed data, loading the compressed data from a disk including the at least one file system, mapping the first physical memory to the address space of the virtual memory, and decompressing the compressed data from the address space of the virtual memory.
[0014] In one embodiment, the at least one processor can store the decompressed data in the second memory space of the second physical memory, unmap the virtual memory to which the first physical memory is mapped, free the first memory space of the first physical memory, and read the decompressed data from the second memory space of the second physical memory.
[0015] In one embodiment, the at least one processor, after reading the decompressed data, may receive a new read request, map new physical memory to the address space of the virtual memory, and decompress new compressed data included in the mapping data mapped to the address space of the virtual memory.
[0016] In one embodiment, after reading the decompressed data, the at least one processor can identify a read request termination, terminate the at least one file system, and free the address space of the virtual memory.
[0017] A method for managing data using an electronic device according to embodiments of the present disclosure may include an operation in which the electronic device registers at least one file system, an operation in which the electronic device reads compressed data included in the at least one file system using a virtual memory when a read request occurs, and an operation in which the electronic device decompresses the at least one file system. When the electronic device registers the at least one file system, the virtual memory is allocated an address space and is used for decompressing the compressed data based on the read request, and when the electronic device decompresses the at least one file system, the address space may be decompressed.
[0018] In one embodiment, after the virtual memory has been used to decompress the compressed data based on the read request, when a new read request occurs, the address space can be reused for decompressing new compressed data by memory mapping from new physical memory.
[0019] In one embodiment, the operation of registering the at least one file system may include an operation of recognizing the at least one file system at a first point in time, an operation of initializing the at least one file system, an operation of allocating the address space of the virtual memory, and an operation of registering the at least one file system in a main system.
[0020] In one embodiment, the first point in time may be at least one of a boot point of the main system and a mount point of a disk including the at least one file system.
[0021] In one embodiment, the act of releasing the at least one file system may include the act of terminating the at least one file system at a second point in time, the act of releasing the address space of the virtual memory, the act of cleaning up the virtual memory, and the act of removing the at least one file system from the main system.
[0022] In one embodiment, the second point in time may be at least one of a process termination point of the main system and an unmount point of a disk including the at least one file system.
[0023] In one embodiment, the operation of reading compressed data included in the at least one file system using the virtual memory may include the operation of allocating a first memory space of a first physical memory for storing the compressed data, the operation of allocating a second memory space of a second physical memory for storing decompressed data, the operation of loading the compressed data from a disk including the at least one file system, the operation of mapping the first physical memory to the address space of the virtual memory, and the operation of generating the decompressed data by decompressing the compressed data from the address space of the virtual memory.
[0024] In one embodiment, the operation of reading compressed data included in the at least one file system using the virtual memory may include the operation of storing the decompressed data in the second memory space of the second physical memory, the operation of unmapping the virtual memory to which the first physical memory is mapped, the operation of freeing the first memory space of the first physical memory, and the operation of reading the decompressed data from the second memory space of the second physical memory.
[0025] In one embodiment, the operation of reading compressed data included in the at least one file system using the virtual memory may include, after reading the decompressed data, receiving a new read request, mapping new physical memory to the address space of the virtual memory, and decompressing new compressed data included in the mapping data mapped to the address space of the virtual memory.
[0026] In one embodiment, the operation of reading compressed data included in the at least one file system using the virtual memory may include an operation of identifying a read request termination after reading the decompressed data, and the operation of releasing the at least one file system may include an operation of terminating the at least one file system based on identifying the read request termination, and an operation of releasing the address space of the virtual memory.
[0027] According to various embodiments of the present disclosure, the electronic device of the present disclosure and the data management method using the same can pre-allocate an address space of virtual memory when registering a file system, finally release the address space of virtual memory when releasing the file system, and reuse the address space of virtual memory while reading data based on a read request.
[0028] Therefore, the electronic device of the present disclosure and the data management method using the same do not need to allocate and release the address space of virtual memory each time a read request occurs, thereby minimizing overhead associated with the allocation and release of the address space of virtual memory and increasing the performance of the process.
[0029] The effects that can be obtained from the exemplary embodiments of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly derived and understood by those skilled in the art to which the exemplary embodiments of the present disclosure pertain from the following description. In other words, unintended effects resulting from implementing the exemplary embodiments of the present disclosure can also be derived by those skilled in the art from the exemplary embodiments of the present disclosure.
[0030] FIG. 1 illustrates a block diagram of an electronic device according to one embodiment.
[0031] FIG. 2 illustrates another block configuration of an electronic device according to one embodiment.
[0032] Figure 3 illustrates an operation sequence of an electronic device according to one embodiment.
[0033] FIG. 4 illustrates a file system registration operation of an electronic device according to one embodiment.
[0034] FIG. 5 illustrates a file reading operation of an electronic device according to one embodiment.
[0035] Figure 6 illustrates physical memory and virtual memory according to one embodiment.
[0036] FIG. 7 illustrates a file system release operation of an electronic device according to one embodiment.
[0037] Figure 8 illustrates an operation sequence from address space allocation to address space release of virtual memory according to one embodiment.
[0038] Figure 9 illustrates a usage cycle of virtual memory according to one embodiment.
[0039] FIG. 10 illustrates a block configuration of an electronic device within a network environment according to one embodiment.
[0040] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components. Furthermore, in the drawings and related descriptions, descriptions of well-known functions and configurations may be omitted for clarity and conciseness.
[0041] FIG. 1 illustrates a block configuration of an electronic device (100) according to one embodiment.
[0042] The electronic device (100) of the present disclosure may be implemented as a display device capable of displaying an image. For example, the electronic device may include at least one of a TV, a computer, a smartphone, a tablet, a portable media player, a wearable device, a video wall, and an electronic picture frame. In addition, the electronic device may be implemented as various types of devices, such as an image processing device such as a set-top box without a display, a home appliance such as a refrigerator or a washing machine, and an information processing device such as a computer main body. For convenience of explanation, the following description assumes that the electronic device is implemented as a TV; however, the electronic device of the present invention is not limited thereto, and may be applied to various electronic devices other than a TV, such as a set-top box.
[0043] Referring to FIG. 1, an electronic device (100) according to one embodiment of the present invention may include a memory (110) and a processor (120). The memory (110) may store data while power is supplied. The memory (110) may be a volatile storage component in which data is lost when power is not supplied. For example, the memory (110) may include at least one of a buffer and a random access memory (RAM).
[0044] The memory (100) of the present disclosure may include physical memory and virtual memory. When a program is executed, predetermined data may be loaded into the memory (110) for each task of a process corresponding to the program. The memory (110) may load data or software to be executed by the processor (120) from among data or software stored in storage.
[0045] Memory (110) may include a general memory area to which general processes are allocated, and a kernel memory area to which kernels such as operating systems are allocated. Each area of general memory and kernel memory may be concentrated or distributed in a storage space of memory (110). In one embodiment, the processor (120) may allocate general processes to a free portion of kernel memory excluding the portion allocated to the operating system.
[0046] A process corresponding to a program may be allocated and operated in memory (110). Meanwhile, the process may share some of the allocated memory with other processes. Therefore, even if one process is deleted, the shared memory may not be secured. Even if the program's execution is terminated, the process allocated to memory (110) may remain until it is deleted from memory (110).
[0047] Meanwhile, the memory (110) according to one embodiment of the present invention may be provided as an integral unit, may be different memories, and is not limited to either one.
[0048] The processor (120) can execute a program stored in storage. The processor (120) is implemented as at least one processor that loads at least a portion of a program from the storage where the program is stored into the memory (110) and executes the program loaded into the memory (110). If the processor (120) of the present embodiment is implemented in multiple units, these processors may be separated from each other or implemented in the form of multiple modules within a single IC.
[0049] For example, the processor (120) may include at least one of a CPU (Central Processing Unit), an AP (Application Processor), or a microprocessor. When the processor (120) executes a program stored in storage, predetermined data corresponding to each task of the corresponding process may be loaded into the memory (110), thereby causing the corresponding process to occupy a specific area of the memory (110). The processor (120) may first load data related to the process into the memory (110) and execute the process based on the data loaded into the memory (110). For example, the process may be a work unit executed based on data or an application loaded into the memory (110). That is, one or more processes may be performed by the processor (120) processing data loaded into the memory (110) or executing an application loaded into the memory (110). In order for a process to be executed, data corresponding to the process may have to be loaded into the memory (110). For example, multitasking can be performed by having the processor (120) execute data for each process loaded into the memory (110) while data corresponding to multiple processes is loaded into the memory (110).
[0050] A processor (120) according to an embodiment of the present invention may be implemented by executing a software program including one or more commands stored in a storage medium that can be read by a machine (machine), such as an electronic device (100). For example, the processor (120) of the electronic device may call at least one command among the one or more commands stored from the storage medium and execute it. The one or more commands may include code generated by a compiler or code that can be executed by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium is a tangible device and does not include a signal (e.g., electromagnetic wave), and this term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily in the storage medium.
[0051] As an example, the program executed by the processor (120) may be implemented as a computer program stored in a computer program product provided separately from the electronic device (100). In this case, the computer program product may include a memory storing instructions corresponding to the computer program and a processor. Accordingly, the electronic device may download and execute the computer program stored in the separate computer program product to perform the operations of the processor (120).
[0052] Additionally, as an example, the operations of the processor (120) may be implemented as a computer-readable program stored on a recording medium. The program, i.e., data stored on the recording medium, may be directly accessed and executed by the processor (120), or may be downloaded to an electronic device via a transmission medium implemented through a wired or wireless network interconnecting computer systems and executed, thereby performing the operations.
[0053] FIG. 2 illustrates another block configuration of an electronic device (200) according to one embodiment.
[0054] An electronic device (200) (e.g., the electronic device (100) of FIG. 1) may additionally include at least one of a communication unit (230), a signal input / output unit (240), a display unit (250), a user input unit (260), and storage (270) in addition to a memory (210) (e.g., the memory (110) of FIG. 1) and a processor (220) (e.g., the processor (120) of FIG. 1). The components included in the electronic device are not limited to the above-described embodiment, and may be implemented by excluding or changing some components, or by additionally including other components.
[0055] The communication unit (230) may be a bidirectional communication circuit including at least one or more components such as a communication module or a communication chip that correspond to various types of wired and wireless communication protocols. For example, the communication unit (230) may be implemented as 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 wireless communication module that performs one-to-one direct wireless communication such as Bluetooth.
[0056] The communication unit (230) can transmit and receive data packets with a server on a network by communicating with the server. In another embodiment, the communication unit (230) can be connected to an external device other than the server, and can receive video / audio data from the other external device, or transmit video / audio data to the other external device. According to one embodiment of the present invention, the communication unit (230) can receive or transmit related data to execute a process corresponding to a program stored in the storage (270).
[0057] The signal input / output unit (240) can receive video / audio signals from external devices such as set-top boxes, optical media players, or external display devices, speakers, etc., or output video / audio signals to the external devices by being connected to them in a 1:1 or 1:N (N is a natural number) manner by wires. For example, the signal input / output unit (240) can include connectors or ports according to preset transmission standards, such as an HDMI port, DisplayPort, DVI port, Thunderbolt, USB port, etc. HDMI, DP, Thunderbolt, etc. can be connectors or ports that can transmit video / audio signals simultaneously. As another example, the signal input / output unit (240) can include connectors or ports that transmit video / audio signals separately, respectively.
[0058] The display unit (250) may include a display panel capable of displaying an image on a screen. The display panel may be provided with a light-receiving structure such as a liquid crystal display or a self-luminous structure such as an OLED display. The display unit (250) may further include additional components depending on the structure of the display panel. For example, the display unit (250) may include a liquid crystal display panel, a backlight unit that supplies light, and a panel driving substrate that drives liquid crystals of the liquid crystal display panel.
[0059] Storage (270) can store digitized data. Storage (270) can include non-volatile storage that can retain data regardless of whether power is supplied, and volatile memory that is loaded with data to be processed by the processor (220) and cannot retain data if power is not supplied. However, in the electronic device according to the present invention, storage (270) can mean storage with non-volatile properties. Storage (270) can include, for example, at least one of flash memory, hard-disk drive (HDD), solid-state drive (SSD), and read-only memory (ROM).
[0060] The user input unit (260) may include various types of input interface-related circuits provided to perform user input. The user input unit (260) may be implemented in various configurations depending on the type of electronic device (200). For example, the user input unit (260) may include at least one of a mechanical or electronic button unit of the electronic device (200), a remote controller separated from the electronic device, a touchpad, and a touch screen installed on the display unit (250).
[0061] FIG. 3 illustrates an operation sequence of an electronic device (100) according to one embodiment.
[0062] Referring to FIG. 3, the electronic device (100) of the present disclosure can register at least one file system (operation 310), read compressed data included in the at least one file system using virtual memory when a read request occurs (operation 320), and release the at least one file system (operation 330).
[0063] According to an example, in operation 310, the electronic device (100) may register at least one file system. For example, the electronic device (100) may recognize the at least one file system at a first point in time. The electronic device (100) may initialize the at least one file system. The electronic device (100) may allocate the address space of the virtual memory. That is, the virtual memory may be allocated an address space when the at least one file system is registered. The electronic device (100) may register the at least one file system in the main system.
[0064] According to an example, in operation 320, the electronic device (100) may read compressed data included in the at least one file system using virtual memory when a read request occurs. For example, the electronic device (100) may decompress compressed data based on the occurrence of a read request. For example, the electronic device (100) may read decompressed data obtained by decompressing compressed data.
[0065] The electronic device (100) may allocate a first memory space of a first physical memory for storing the compressed data. The electronic device (100) may allocate a second memory space of a second physical memory for storing decompressed data. The electronic device (100) may load the compressed data from a disk including at least one file system. A virtual memory may be used to decompress the compressed data based on a read request. For example, the electronic device (100) may map the first physical memory to the address space of the virtual memory. The electronic device (100) may generate the decompressed data by decompressing the compressed data from the address space of the virtual memory.
[0066] The electronic device (100) can store the decompressed data in the second memory space of the second physical memory. The electronic device (100) can unmap the virtual memory to which the first physical memory is mapped. The electronic device (100) can free the first memory space of the first physical memory. The electronic device (100) can read the decompressed data from the second memory space of the second physical memory.
[0067] In one example, at operation 330, the electronic device (100) may release the at least one file system. For example, the electronic device (100) may terminate the at least one file system at a second time. The electronic device (100) may release the address space of the virtual memory. That is, the virtual memory may be released when the at least one file system is released. The electronic device (100) may clean up the virtual memory and remove the at least one file system from the main system.
[0068] In this way, the electronic device (100) of the present disclosure can pre-allocate the address space of the virtual memory when registering the file system, finally release the address space of the virtual memory when releasing the file system, and reuse the address space of the virtual memory while reading data based on a read request.
[0069] FIG. 4 illustrates a file system registration operation of an electronic device (100) according to one embodiment.
[0070] Referring to FIG. 4, the electronic device (100) can recognize at least one file system at a first point in time (operation 410), initialize the at least one file system (operation 420), allocate the address space of the virtual memory (operation 430), and register the at least one file system in the main system (operation 440).
[0071] According to an example, in operation 410, the electronic device (100) may recognize the at least one file system at a first point in time. The first point in time may be at least one of a booting point in time of the main system and a mounting point in time of a disk including the at least one file system. For example, the electronic device (100) may recognize the at least one file system at a booting point in time of the main system. For example, the electronic device (100) may recognize the at least one file system at a mounting point in time of a disk including the at least one file system.
[0072] According to an example, in operation 420, the electronic device (100) may initialize at least one file system. When initializing the file system, the electronic device (100) may generate metadata of the file system and generate a data structure of the file system. For example, the electronic device (100) may generate metadata of at least one file system including compressed data. The metadata may include at least one of a type, a size, an available space, and an allocated space of the file system. For example, the electronic device (100) may generate a data structure of the at least one file system. The data structure may include at least one of a block bitmap, an index, and a tree structure for the electronic device (100) to store data in a file or directory.
[0073] For example, in operation 430, the electronic device (100) may allocate the address space of the virtual memory. The address space of the virtual memory may provide a virtual, continuous memory space, rather than a physical memory, to the processor when a process is performed. For example, the processor may be allocated an address space to store data and instructions required to perform the process. For example, the electronic device (100) may identify the size of the virtual memory required by the file system. For example, the electronic device (100) may allocate the address space of the virtual memory and reserve the address space of the virtual memory for at least one file system.
[0074] For example, in operation 440, the electronic device (100) may register at least one file system in the main system. For example, the electronic device (100) may register at least one file system in the system list of the main system. The main system may access compressed data within the disk through the at least one file system registered in the system list.
[0075] FIG. 5 illustrates a file reading operation of an electronic device (100) according to one embodiment, and FIG. 6 illustrates physical memory and virtual memory according to one embodiment.
[0076] Referring to FIGS. 5 and 6, the electronic device (100) may allocate a first memory space of a first physical memory for storing the compressed data (operation 510), allocate a second memory space of a second physical memory for storing the decompressed data (operation 520), load the compressed data from a disk including at least one file system (operation 530), map the first physical memory to the address space of the virtual memory (operation 540), and decompress the compressed data from the address space of the virtual memory, thereby generating the decompressed data (operation 550). Additionally, the electronic device (100) can store the decompressed data in the second memory space of the second physical memory (operation 560), unmap the virtual memory to which the first physical memory is mapped (operation 570), free the first memory space of the first physical memory (operation 580), and read the decompressed data from the second memory space of the second physical memory (operation 590).
[0077] According to an example, in operation 510, the electronic device (100) may allocate a first memory space of a first physical memory for storing the compressed data. For example, the electronic device (100) may receive a read request and allocate a first memory space to the first physical memory based on at least one file system. The first memory space allocated to the first physical memory may store compressed data of at least one file system.
[0078] In one example, at operation 520, the electronic device (100) may allocate a second memory space of a second physical memory to store decompressed data. For example, the electronic device (100) may receive a read request and allocate a second memory space in the second physical memory based on at least one file system. The second memory space allocated to the second physical memory may store decompressed data in which the compressed data is decompressed.
[0079] In one example, in operation 530, the electronic device (100) may load the compressed data from a disk including the at least one file system. For example, the disk may include at least one of a hard disk drive (HDD), a solid state drive (SSD), a USB flash drive, an SD card, and a network-attached storage. The electronic device (100) may load the compressed data compressed using a predetermined compression algorithm from the at least one file system.
[0080] According to an example, in operation 540, the electronic device (100) may map the first physical memory to the address space of the virtual memory. For example, the electronic device (100) may map the first memory space of the first physical memory (611) where compressed data is stored to the address space of the virtual memory (613). As shown in FIG. 6, as the first memory space of the first physical memory (611) is mapped to the address space of the virtual memory (613), the address space of the virtual memory (613) may include mapping data. In this way, as the first memory space of the first physical memory (611) is mapped to the address space of the virtual memory (613), the processor may access the compressed data through the address space of the virtual memory (613) without needing to know the location of the first physical memory (611).
[0081] According to an example, in operation 550, the electronic device (100) can generate the decompressed data by decompressing the compressed data from the address space of the virtual memory (613). For example, the electronic device (100) can access the compressed data by using the mapping data of the address space of the virtual memory (613). The electronic device (100) can decompress the compressed data by using a predetermined decompression algorithm. The electronic device (100) can generate the decompressed data based on the decompression of the compressed data.
[0082] According to an example, in operation 560, the electronic device (100) may store the decompressed data in the second memory space of the second physical memory (612). For example, as shown in FIG. 6, the decompressed data may be stored in the second memory space of the second physical memory (612). The decompressed data may be restored original data.
[0083] For example, in operation 570, the electronic device (100) may unmap the virtual memory to which the first physical memory is mapped. For example, the electronic device (100) may unmap the first physical memory from the virtual memory after decompressing the compressed data based on the mapping data. For example, the electronic device (100) may unmap the virtual memory by removing the connection between the address space of the virtual memory and the memory space of the first physical memory in the page table.
[0084] In one example, at operation 580, the electronic device (100) may release the first memory space of the first physical memory. For example, after decompressing compressed data, the electronic device (100) may release the first memory space in the first physical memory. For example, the electronic device (100) may return resources of the first memory space in the first physical memory. For example, the electronic device (100) may reuse the first memory space in the first physical memory as a new memory space.
[0085] In one example, at operation 590, the electronic device (100) can read the decompressed data from the second memory space of the second physical memory. For example, the electronic device (100) can read the decompressed data by accessing the decompressed data through the second memory space. For example, the electronic device (100) can perform at least one of an operation of reading the decompressed data, an operation of using the decompressed data in at least one process, and an operation of using the decompressed data in at least one operation.
[0086] FIG. 7 illustrates a file system release operation of an electronic device (100) according to one embodiment.
[0087] Referring to FIG. 7, the electronic device (100) may terminate at least one file system at a second point in time (operation 710), release the address space of the virtual memory (operation 720), clean up the virtual memory (operation 730), and remove the at least one file system from the main system (operation 740).
[0088] According to an example, in operation 710, the electronic device (100) may terminate the at least one file system at a second point in time. The second point in time may be at least one of a point in time when a process of the main system ends and a point in time when a disk including the at least one file system is unmounted. For example, the electronic device (100) may terminate the at least one file system at a point in time when a process of the main system ends. For example, the electronic device (100) may terminate the at least one file system at a point in time when a disk including the at least one file system is unmounted.
[0089] In one example, at operation 720, the electronic device (100) may release the address space of the virtual memory. For example, the electronic device (100) may release the address space of the virtual memory reserved for the at least one file system. For example, the electronic device (100) may provide the memory resources allocated to the address space to the main system by deactivating the address space of the virtual memory.
[0090] In one example, at operation 730, the electronic device (100) may clear the virtual memory. For example, the electronic device (100) may delete usage records of virtual memory used by at least one file system. For example, the electronic device (100) may delete information about the virtual memory from a data structure including a memory map, a page table, etc. For example, the electronic device (100) may deactivate the virtual memory by clearing the virtual memory.
[0091] In one example, at operation 740, the electronic device (100) may remove at least one file system from the main system. For example, the electronic device (100) may remove a data structure of the file system from the main system. For example, the electronic device (100) may remove registration information of the file system from the main system.
[0092] FIG. 8 illustrates an operation sequence from address space allocation to address space release of virtual memory according to one embodiment, and FIG. 9 illustrates a usage cycle of virtual memory according to one embodiment.
[0093] Referring to FIGS. 8 and 9, the electronic device (100) may allocate an address space of a virtual memory (operation 810) when at least one file system is registered. The virtual memory may be memory mapped from a new physical memory (operation 820). Compressed data included in the mapping data of the virtual memory may be decompressed (operation 830). The electronic device (100) may determine whether a new read request has occurred (operation 840). If a new read request has occurred, the virtual memory may be memory mapped again from a new physical memory (operation 820). If no new read request has occurred, the electronic device (100) may release the address space of the virtual memory when at least one file system is released.
[0094] As shown in FIG. 9, the virtual memory (913a) can be allocated an address space when at least one file system is registered. That is, the virtual memory (913a) can be allocated an address space in advance before a new read request occurs. The virtual memory (913b) can be memory mapped from the physical memory as a read request occurs. The electronic device (100) can access compressed data included in the physical memory based on mapping data generated according to memory mapping. The electronic device (100) can generate decompressed data by decompressing the compressed data included in the mapping data.
[0095] After the compressed data is decompressed, the electronic device (100) can determine whether a new read request has occurred. For example, if a new read request has occurred, the electronic device (100) can reuse the address space of the virtual memory (913a) to map the virtual memory (913a) from a new physical memory. The electronic device (100) can receive a new read request, map new physical memory to the address space of the virtual memory (913b), and decompress new compressed data included in the mapping data mapped to the address space of the virtual memory (913b). For another example, if no new read request has occurred, the electronic device (100) can free the address space of the virtual memory (913b). After reading the decompressed data, the electronic device (100) can identify the end of the read request, terminate the at least one file system, and free the address space of the virtual memory (913b).
[0096] In this way, the electronic device (100) of the present disclosure can pre-allocate the address space of the virtual memory when registering the file system, finally release the address space of the virtual memory when releasing the file system, and reuse the address space of the virtual memory while reading data based on a read request.
[0097] Accordingly, the electronic device (100) of the present disclosure does not need to allocate an address space of virtual memory and release the address space of virtual memory every time a read request occurs, thereby minimizing overhead associated with allocation and release of the address space of virtual memory and increasing the performance of the process.
[0098] FIG. 10 illustrates a block configuration of an electronic device (1001) within a network environment (1000) according to one embodiment.
[0099] Referring to FIG. 10, in a network environment (1000), an electronic device (1001) may communicate with an electronic device (1002) via a first network (1098) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (1004) or a server (1008) via a second network (1099) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (1001) may communicate with the electronic device (1004) via the server (1008). According to one embodiment, the electronic device (1001) may include a processor (1020), a memory (1030), an input module (1050), an audio output module (1055), a display module (1060), an audio module (1070), a sensor module (1076), an interface (1077), a connection terminal (1078), a haptic module (1079), a camera module (1080), a power management module (1088), a battery (1089), a communication module (1090), a subscriber identification module (1096), or an antenna module (1097). In some embodiments, the electronic device (1001) may omit at least one of these components (e.g., the connection terminal (1078)), or may have one or more other components added. In some embodiments, some of these components (e.g., sensor module (1076), camera module (1080), or antenna module (1097)) may be integrated into a single component (e.g., display module (1060)).
[0100] The processor (1020) may, for example, execute software (e.g., a program (1040)) to control at least one other component (e.g., a hardware or software component) of the electronic device (1001) connected to the processor (1020) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (1020) may store commands or data received from other components (e.g., a sensor module (1076) or a communication module (1090)) in a volatile memory (1032), process the commands or data stored in the volatile memory (1032), and store result data in a non-volatile memory (1034). According to one embodiment, the processor (1020) may include a main processor (1021) (e.g., a central processing unit or an application processor) or an auxiliary processor (1023) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (1021). For example, when the electronic device (1001) includes the main processor (1021) and the auxiliary processor (1023), the auxiliary processor (1023) may be configured to use less power than the main processor (1021) or to be specialized for a given function. The auxiliary processor (1023) may be implemented separately from the main processor (1021) or as a part thereof.
[0101] The auxiliary processor (1023) may control at least a portion of functions or states associated with at least one component (e.g., the display module (1060), the sensor module (1096), or the communication module (1090)) of the electronic device (1001), for example, on behalf of the main processor (1021) while the main processor (1021) is in an inactive (e.g., sleep) state, or together with the main processor (1021) while the main processor (1021) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (1023) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (1080) or a communication module (1090)). In one embodiment, the auxiliary processor (1023) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, on the electronic device (1001) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (1008)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.
[0102] The memory (1030) can store various data used by at least one component (e.g., the processor (1020) or the sensor module (1076)) of the electronic device (1001). The data can include, for example, software (e.g., the program (1040)) and input data or output data for commands related thereto. The memory (1030) can include volatile memory (1032) or non-volatile memory (1034).
[0103] The program (1040) may be stored as software in memory (1030) and may include, for example, an operating system (1042), middleware (1044), or an application (1046).
[0104] The input module (1050) can receive commands or data to be used in a component of the electronic device (1001) (e.g., a processor (1020)) from an external source (e.g., a user) of the electronic device (1001). The input module (1050) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0105] The audio output module (1055) can output audio signals to the outside of the electronic device (1001). The audio output module (1055) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
[0106] The display module (1060) can visually provide information to an external party (e.g., a user) of the electronic device (1001). The display module (1060) may include, for example, a display, a holographic device, or a projector, and a control circuit for controlling the device. In one embodiment, the display module (1060) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
[0107] The audio module (1070) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (1070) can acquire sound through the input module (1050), output sound through the sound output module (1055), or an external electronic device (e.g., electronic device (1002)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (1001).
[0108] The sensor module (1076) can detect the operating status (e.g., power or temperature) of the electronic device (1001) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (1076) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0109] The interface (1077) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (1001) to an external electronic device (e.g., the electronic device (1002)). In one embodiment, the interface (1077) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0110] The connection terminal (1078) may include a connector through which the electronic device (1001) may be physically connected to an external electronic device (e.g., the electronic device (1002)). In one embodiment, the connection terminal (1078) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0111] The haptic module (1079) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. In one embodiment, the haptic module (1079) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0112] The camera module (1080) can capture still images and videos. In one embodiment, the camera module (1080) may include one or more lenses, image sensors, image signal processors, or flashes.
[0113] The power management module (1088) can manage power supplied to the electronic device (1001). According to one embodiment, the power management module (1088) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
[0114] A battery (1089) may power at least one component of the electronic device (1001). In one embodiment, the battery (1089) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0115] The communication module (1090) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (1001) and an external electronic device (e.g., electronic device (1002), electronic device (1004), or server (1008)), and the performance of communication through the established communication channel. The communication module (1090) may operate independently from the processor (1020) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (1090) may include a wireless communication module (1092) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (1094) (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, a corresponding communication module can communicate with an external electronic device (1004) via a first network (1098) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (1099) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (1092) can verify or authenticate the electronic device (1001) within a communication network such as the first network (1098) or the second network (1099) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (1096).
[0116] The wireless communication module (1092) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimizing terminal power and connecting multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (1092) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (1092) may support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (1092) may support various requirements specified in the electronic device (1001), an external electronic device (e.g., the electronic device (1004)), or a network system (e.g., the second network (1099)). According to one embodiment, the wireless communication module (1092) may support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.
[0117] The antenna module (1097) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (1097) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (1097) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (1098) or the second network (1099), may be selected from the plurality of antennas by, for example, the communication module (1090). A signal or power may be transmitted or received between the communication module (1090) and an external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (1097).
[0118] According to various embodiments, the antenna module (1097) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band.
[0119] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
[0120] An electronic device (e.g., 1001) according to one embodiment of the present disclosure can pre-allocate an address space of virtual memory when registering a file system, finally release the address space of virtual memory when releasing the file system, and reuse the address space of virtual memory while reading data based on a read request.
[0121] Accordingly, the electronic device of the present disclosure (e.g., 1001) does not need to allocate and release the address space of virtual memory every time a read request occurs, thereby minimizing overhead associated with allocating and releasing the address space of virtual memory and increasing the performance of the process.
[0122] However, since this has been described above, a duplicate explanation will be omitted.
[0123] Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.
[0124] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases “A or B,” “at least one of A and B,” “at least one of A or B,” “A, B, or C,” “at least one of A, B, and C,” and “at least one of A, B, or C” may include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as “first,” “second,” or “first” or “second” may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as “coupled” or “connected” to another component (e.g., a second component), with or without the terms “functionally” or “communicatively,” it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0125] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0126] Various embodiments of the present document may be implemented as software (e.g., a program (1040)) including one or more instructions stored in a storage medium (e.g., an internal memory (1036) or an external memory (1038)) readable by a machine (e.g., an electronic device (1001)). For example, a processor (e.g., a processor (1020)) of the machine (e.g., an electronic device (1001)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
[0127] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0128] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims
1. In an electronic device (100) for reading a compressed file, A memory (110) storing at least one command; and At least one processor (120) for executing at least one instruction, At least one processor of the above, Register at least one file system, When a read request occurs, the compressed data contained in at least one file system is read using virtual memory, Free at least one file system above, and The above virtual memory is, When at least one of the above file systems is registered, an address space is allocated, Used to decompress the compressed data based on the above read request, When at least one of the above file systems is freed, the address space is freed. Electronic devices.
2. In paragraph 1, The above virtual memory is, After the address space has been used for decompressing the compressed data based on the read request, if a new read request occurs, the address space is reused for decompressing new compressed data by memory mapping from a new physical memory. Electronic devices.
3. In paragraph 1, At least one processor of the above, Recognize at least one file system at a first point in time, Initialize at least one file system above, Allocate the above address space of the above virtual memory, Registering at least one file system in the main system; Electronic devices.
4. In paragraph 3, The first point above is, At least one of the boot time of the main system and the mount time of the disk including the at least one file system, Electronic devices.
5. In any one of paragraphs 1 to 3, At least one processor of the above, At a second point in time, terminate at least one of said file systems, Free the above address space of the above virtual memory, Clean up the above virtual memory, Removing at least one file system from the main system; Electronic devices.
6. In paragraph 5, The second point above is, At least one of the time points of termination of the process of the main system and the time point of unmounting the disk including the at least one file system, Electronic devices.
7. In any one of paragraphs 1 to 3, At least one processor of the above, Allocate a first memory space of the first physical memory for storing the above compressed data, Allocate a second memory space in the second physical memory to store the decompressed data, loading said compressed data from a disk containing at least one file system; Mapping the first physical memory to the address space of the virtual memory, By decompressing the compressed data from the address space of the virtual memory, the decompressed data is generated. Electronic devices.
8. In paragraph 7, At least one processor of the above, Store the decompressed data in the second memory space of the second physical memory, Unmap the virtual memory to which the first physical memory is mapped, Free the first memory space of the first physical memory, Reading the decompressed data from the second memory space of the second physical memory; Electronic devices.
9. In paragraph 8, At least one processor of the above, After reading the above decompressed data, a new read request is received, Map new physical memory to the address space of the above virtual memory, Decompressing new compressed data included in the mapping data mapped to the address space of the virtual memory; Electronic devices.
10. In paragraph 8, At least one processor of the above, After reading the above decompressed data, identify the end of the read request, Shut down at least one of the above file systems, Freeing the above address space of the above virtual memory, Electronic devices.
11. A method for managing data using an electronic device, An operation (310) in which the electronic device registers at least one file system; When a read request occurs, the electronic device reads compressed data included in the at least one file system using virtual memory (320); and The electronic device comprises an operation (330) of releasing at least one file system; The above virtual memory is, When the electronic device registers at least one file system, an address space is allocated, Used to decompress the compressed data based on the above read request, When said electronic device releases said at least one file system, said address space is released; method.
12. In paragraph 11, The above virtual memory is, After the address space has been used for decompressing the compressed data based on the read request, if a new read request occurs, the address space is reused for decompressing new compressed data by memory mapping from a new physical memory. method.
13. In paragraph 11, The action of registering at least one file system as above, An action of recognizing at least one file system at a first point in time; The act of initializing at least one file system; An operation of allocating the address space of the virtual memory; and Comprising the operation of registering at least one file system to the main system, method.
14. In paragraph 13, The first point above is, At least one of the boot time of the main system and the mount time of the disk including the at least one file system, method.
15. In any one of paragraphs 11 to 13, The action of releasing at least one file system above, The act of terminating at least one file system at a second point in time; An operation of freeing the address space of the above virtual memory; An operation to clean up the above virtual memory; and comprising the action of removing at least one file system from the main system; method.
Citation Information
Patent Citations
Storage system
JP2005115506A
Mapping methods of non-volatile memory system and system for providing the same
KR1020150082011A
File accessing method and related device
KR1020160123370A
Memory mapping management method for a nonvolatile main memory
KR1020170065272A
KR20200065761A