WO2020241918A1 - 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법 - Google Patents

부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법 Download PDF

Info

Publication number
WO2020241918A1
WO2020241918A1 PCT/KR2019/006425 KR2019006425W WO2020241918A1 WO 2020241918 A1 WO2020241918 A1 WO 2020241918A1 KR 2019006425 W KR2019006425 W KR 2019006425W WO 2020241918 A1 WO2020241918 A1 WO 2020241918A1
Authority
WO
WIPO (PCT)
Prior art keywords
page data
memory
cluster
hot
stored
Prior art date
Application number
PCT/KR2019/006425
Other languages
English (en)
French (fr)
Inventor
이경식
김건수
정찬균
박승호
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to EP19930864.4A priority Critical patent/EP3979075A4/en
Priority to KR1020217018535A priority patent/KR20220002242A/ko
Priority to CN201980089758.8A priority patent/CN113316766B/zh
Priority to US17/415,471 priority patent/US11579892B2/en
Priority to PCT/KR2019/006425 priority patent/WO2020241918A1/ko
Publication of WO2020241918A1 publication Critical patent/WO2020241918A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Definitions

  • the present invention relates to a method and apparatus for booting a digital device, and more particularly, to a method for generating a snapshot image for hibernation booting in a computing system.
  • a snapshot image contains information about the state of the system at a previous point in time, for example, and is a collection of computer files and directories.
  • Booting using the snapshot image is generally referred to as hibernation booting, and has the advantage of significantly improving the booting speed compared to conventional system booting, and is used for booting of embedded products or mobile terminals that require fast processing performance recently. have.
  • Hibernation boot provides a function that automatically saves the contents of the work that was executed until the last time when the computing system is powered off, such as flash memory or hard disk drive (HDD).
  • flash memory or hard disk drive (HDD).
  • HDD hard disk drive
  • a snapshot image of the state of the computing system or data can be created and then power can be completely cut off, which is advantageous from a power point of view, and the fear of data loss is very small.
  • the data size of the snapshot image for hibernation boot includes the contents of the work that was executed right before the system is shut down, so a considerable data storage capacity is required for storage.
  • the process of creating and storing a snapshot image is repeated every time the system is shut down, so there is a problem that the life of the storage medium, which is a storage medium, is continuously attenuated according to the usage and usage period of the digital device.
  • Another object of the present invention is to provide a digital device capable of reducing the capacity of a stored snapshot image by omitting duplicate page data when generating a snapshot image and a control method thereof.
  • Another object of the present invention is to provide a digital device capable of minimizing a data fragmentation phenomenon that inevitably occurs when a snapshot image is generated through deduplication of page data and a control method thereof.
  • An object of another embodiment of the present invention is to provide a digital device and a method for controlling the same that can significantly improve the reliability of a flash memory used as a storage space for a snapshot image.
  • a method of controlling a digital device that performs a booting process for achieving the above or other objects includes: removing duplicate page data among page data stored in a first memory; Comparing page data remaining after the removing step with page data previously stored in a second memory; Selectively removing the duplicated page data according to whether the duplicated page data is located in the hot cluster of the second memory as a result of the comparison; And generating a snapshot image based on page data remaining after the selectively removing step.
  • the first memory of the terminal according to the present invention may include a random access memory (RAM) memory
  • the second memory may include a flash memory
  • removing duplicate page data among page data stored in the first memory includes: calculating a hash value for each page of the page data stored in the first memory; Determining whether or not the calculated hash values are duplicated, and for page data having duplicate hash values, only the location information of the duplicated page data is stored in a mapping table.
  • mapping relationship between logical addresses of page data stored in the first memory and physical addresses of page data stored in the second memory is set in the mapping table.
  • the selectively removing the overlapping page data may include performing cluster management; And determining whether page data remaining after the first deduplication step 101 and page data pre-stored in the second memory are duplicated through the hash value calculated for each page unit, wherein the hash value is duplicated.
  • the page data is located in the hot cluster of the second memory, only position information of the overlapping page data is stored in a mapping table.
  • the performing of cluster management may include comparing page data remaining after the first deduplication step with page data included in blocks located on the second memory; As a result of the comparison, if there is overlapping page data in the block, increasing a usage counter in the block by a predetermined value; And designating a hot block and a hot cluster based on a value of the block usage counter in a cluster including a predetermined number of the blocks located on the second memory.
  • the block usage counter if the value of the block usage counter is greater than a first threshold, designating a hot block, and if the number of hot blocks is greater than a second threshold and data fragmentation is less than a third threshold, designating a hot cluster. do.
  • generating the snapshot image may include compressing page data remaining after the second deduplication step; And allocating a cluster space for storing the compressed page data.
  • it includes storing the generated snapshot image in a second memory.
  • a digital device includes a first memory; A second memory for storing a snapshot image generated based on page data stored in the first memory; And a control unit for generating the snapshot image, wherein the control unit performs primary deduplication removal of duplicate page data among page data stored in the first memory, and page data remaining after the primary deduplication removal. Compared with page data previously stored in the second memory, and selectively removes the duplicated page data secondarily according to whether the duplicated page data is located in the hot cluster of the second memory, and removes the second redundancy After that, a snapshot image is created based on the remaining page data.
  • page data stored in RAM is generated as a snapshot image, and fast and stable booting can be provided by using this.
  • duplicate page data when generating a snapshot image for hibernation booting, duplicate page data may be omitted, thereby reducing the capacity of a stored snapshot image.
  • a reduction in life reliability can be dramatically improved by reducing the frequency of use of a flash memory used as a storage space for a snapshot image.
  • FIG. 1 is a block diagram showing differences between the prior art and the present invention in generating a snapshot image for hibernation booting.
  • FIG. 2 is a flowchart illustrating a step of performing primary deduplication on page data stored in a first memory according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a step of performing secondary deduplication on page data remaining after primary deduplication according to an embodiment of the present invention.
  • FIG. 4 is a flow chart showing steps of performing cluster management according to an embodiment of the present invention.
  • 5 is a flow chart showing steps of performing block usage counting according to an embodiment of the present invention.
  • FIG. 6 is a flowchart showing steps of designating a hot cluster according to an embodiment of the present invention.
  • FIG. 7 is a flow chart showing the steps of generating a snapshot image according to an embodiment of the present invention.
  • FIG. 8 is a flow chart showing steps of allocating a cluster and compressing a page according to an embodiment of the present invention.
  • 9(a) is a flow chart showing a booting sequence according to the snapshot image of the present invention when the system power is applied.
  • 9(b) is a flow chart showing a process of generating a snapshot image of the present invention when the system power is turned off.
  • FIG. 10 is data illustrating a difference in capacity of a snapshot image programmed or stored in a second memory when a snapshot image is generated according to the present invention compared to the prior art.
  • the booting device or booting method described in this specification includes, for example, a mobile phone that requires booting when the power is turned on, a smart phone, a laptop computer, a netbook, a terminal for digital broadcasting, and a PDA ( Personal Digital Assistants), Portable Multimedia Player (PMP), navigation, digital TV, desktop computer, camcorder, digital camera, MP3 player, etc. may be applied to various terminals, but is not limited thereto.
  • PDA Personal Digital Assistants
  • PMP Portable Multimedia Player
  • navigation digital TV, desktop computer, camcorder, digital camera, MP3 player, etc.
  • FIG. 1 is a block diagram showing differences between the prior art and the present invention in a method for generating a snapshot image for hibernation booting.
  • the first memory 110 generally refers to a system memory such as RAM, and data is stored in a page unit in the system memory.
  • page data stored in the first memory 110 is generated as a snapshot image without processing and stored in the second memory 120 when the system is shut down of the digital device.
  • page data stored in the first memory 110 is not used as it is, and duplicated pages are removed through the first and second deduplication steps, thereby reducing the capacity of the generated snapshot image. .
  • the first deduplication step refers to a step of removing duplicate page data among page data stored in the first memory
  • the second deduplication step is a second step of page data remaining after the first deduplication step. Refers to a step of selectively removing page data that overlaps with page data in memory.
  • the meaning of removing duplicate page data does not mean a process of deleting page data already written on the first memory 110, but, for example, for the duplicate page data, only original page data is used as data. It means setting to store only the location information of the original page data corresponding thereto as the remaining overlapping page data.
  • the original page data refers to page data that is located in a priority among the duplicated page data in the first deduplication step 101
  • the second memory 120 among the duplicated page data in the second deduplication step 103 Refers to the page data stored in the hot cluster area.
  • the second memory 120 means, for example, a nonvolatile memory for storing data, and includes a flash memory.
  • the number of times (life) that can be programmed (or written) per cell is about 1,000 to 100,000 times. This depends on the program type of flash memory, and the lifetime of SLC (Single Level Cell) is up to about 100,000 times, and the lifetime of MLC (Multi Level Cell) is up to about 10,000 times, and the lifetime of TLC (Triple Level Cell) is up to It reaches about 1,000 times.
  • SLC Single Level Cell
  • MLC Multiple Level Cell
  • TLC Multiple Level Cell
  • FIG. 2 is a flowchart illustrating a step 101 of performing primary deduplication on page data stored in the first memory 110 according to an embodiment of the present invention.
  • the first deduplication step 101 shown in FIG. 1 includes some or all of the steps shown in FIG. 2 as another embodiment.
  • the hash value means a fixed length value obtained by applying a hash function, and if the hash value is duplicated, it can be regarded as duplicate page data.
  • the hash value may be calculated with at least one cryptographic hash function of, for example, MD5 (Message-Digest algorithm 5) and SHA (Secure Hash Algorithm), and the hash function is a software or hardware block (duplicate removal module ) Can be implemented and calculated.
  • MD5 Message-Digest algorithm 5
  • SHA Secure Hash Algorithm
  • the mapping table (not shown) represents a mapping relationship between logical addresses of page data stored in the first memory 110 and physical addresses of page data stored in the second memory 120.
  • the logical addresses of page data stored in the first memory 110 include location information of the deduplicated page data set after the first and second deduplication based on the physical addresses of the page data stored in the first memory 110 Address.
  • the physical address of page data stored in the second memory 120 means a physical space in which each page data having the logical address is actually stored in the second memory 120.
  • FIG. 3 is a flowchart illustrating a step 103 of performing secondary deduplication on page data remaining after the first deduplication step 101 according to an embodiment of the present invention.
  • the second deduplication step 103 shown in FIG. 1 may be implemented as in FIG. 3 as another embodiment, and includes some or all steps.
  • the second deduplication step 103 is selectively compared with the snapshot image previously stored in the second memory 120, depending on whether or not the duplicated page data belongs to the hot cluster of the second memory 120. This is the step of removing duplicates.
  • the pre-stored snapshot image refers to the first operation of the digital device performing hibernation boot, and when the system is shut down, the page data stored in the first memory 110 is only first deduplicated and immediately the second memory 120 Refers to page data stored as ).
  • the first created snapshot image includes a cluster table and a mapping table to be used for secondary deduplication in the future.
  • the cluster table is a table containing information on clusters in which snapshot images are stored.
  • a plurality of page data may be stored in one cluster, and information on a hash value of each page data is stored in a cluster table.
  • the cluster is an area of a certain size for storing data
  • one page data is stored in one page space
  • a certain number of pages are gathered to form one block
  • a certain number of blocks are gathered to form one Form a cluster unit.
  • a certain number of clusters are required to store snapshot images.
  • the secondary deduplication step 103 starts with performing cluster management (S310). First, through cluster management, the number of redundant usage frequencies for each cluster is counted and hot clusters are designated.
  • the redundant page data belongs to the hot cluster as a result of the determination (S320)
  • the redundant page data is set to add only the location information of the original page data to the mapping table except for the original page data existing in the hot cluster (S330).
  • the duplicate page data if the duplicate page data does not belong to the hot cluster, the duplicate page data is not removed, and the duplicate page data is set to be stored in a new cluster space of the second memory 120 for the snapshot image (S340). .
  • the reason for storing page data by allocating a separate cluster space even if the page data is duplicated is to minimize data fragmentation.
  • the hot cluster is a concept newly introduced in the present invention to solve the data fragmentation problem, and a detailed description will be provided later.
  • FIG. 4 is a flow chart showing a step (S310) of performing cluster management according to an embodiment of the present invention.
  • the step (S310) of performing cluster management shown in FIG. 3 may be implemented as shown in FIG. 4 as another embodiment, and includes some or all steps.
  • Cluster management is a process of updating information on the clusters in which the snapshot image stored in the second memory 120 is located, and includes a step (S410) and a hot cluster designation step (S420) of largely counting the number of redundant usage of blocks. It is done.
  • Counting the number of redundant use frequencies of blocks is a process of updating information on blocks in which page data constituting a previously stored snapshot image is stored, and page data remaining after the first deduplication is removed from pages in the block. In case of overlapping data, the block usage counter is increased by a certain value from the reference value.
  • the block usage counter can be designated as a reference value with a specific value that is 0 or positive.
  • the block usage counter increases from 0 by a certain value according to the presence or absence of duplicate pages, and if it is specified as a positive non-zero value from the beginning, the block usage counter is constant according to the presence or absence of duplicate pages. It can be set to increase or decrease by a value.
  • the step of designating a hot cluster is a step of determining whether to be a hot cluster based on the number of hot blocks and the degree of data fragmentation for clusters in which the blocks are collected.
  • information of the previously stored cluster table is also updated (S650), and the information includes a reference value regarding whether or not a cluster is a hot cluster, a hash value of page data, and the number of times of overlapping use of blocks. This includes.
  • FIG. 5 is a flow chart showing a step (S410) of performing block usage counting according to an embodiment of the present invention.
  • the step S410 of performing the block usage counting shown in FIG. 4 may be implemented as in FIG. 5 as another embodiment, and includes some or all steps.
  • a block is a data storage space that is a higher concept than a page and a lower concept than a cluster, and a certain amount of page space exists in one block.
  • the page data remaining after the first deduplication step 101 is checked for duplication (S510), and the overlapping pages in the block If there is data, the block usage counter is increased by a certain value from the reference value (S520).
  • the process of checking for redundancy is determined by whether or not the hash values of page data are duplicated, as in the case of the first deduplication, and the comparison of the hash values is the hash value information of the cluster table previously stored in the second memory 120 And the hash value information used in the first deduplication removal (S510).
  • FIG. 6 is a flow chart showing a step S420 of designating a hot cluster according to an embodiment of the present invention.
  • the step S420 of designating a hot cluster illustrated in FIG. 4 may be implemented as shown in FIG. 6 as another embodiment, and includes some or all steps.
  • the corresponding block When a corresponding block has a block usage frequency number greater than the first threshold based on the number of duplicate usage frequencies of the block obtained in the block usage counting step (S410), the corresponding block is designated as a hot block (S610).
  • hot block means is, for example, a block that holds a number of overlapping page data.
  • the number of hot blocks is determined for each cluster consisting of a predetermined number of blocks, and compared with a second threshold (S620).
  • the degree of fragmentation of the data in the cluster is checked.
  • the cluster is designated as a hot cluster (S630), and is used as a reference for secondary deduplication of data.
  • the hot cluster a large number of overlapping page data exists and the degree of data fragmentation is a small area.
  • data belonging to the hot cluster can be loaded at a high speed.
  • redundant page data that does not belong to a hot cluster is allocated a new cluster and stored continuously, so that data fragmentation problem does not occur during future loading.
  • a cold cluster refers to a cluster in which there are more than a certain number of cold blocks opposite to hot blocks.
  • the cold block refers to a block in which the number of times of overlapping use of the block is less than a certain value, and this means a block in which almost no overlapping page data exists.
  • the hot cluster and the cold cluster can be designated at the same time or only one of the two, and in the case of the embodiment of the present invention, only a hot cluster is designated as an example, but the scope of the present invention is not limited thereto.
  • FIG. 7 is a flow chart showing the step 105 of generating a snapshot image according to an embodiment of the present invention.
  • the snapshot image generation step 105 illustrated in FIG. 1 may be implemented as in FIG. 7 as another embodiment, and includes some or all steps.
  • mapping table is updated based on the related information (S720).
  • FIG. 8 is a flow chart showing a step (S710) of allocating a cluster and compressing a page according to an embodiment of the present invention.
  • the step S710 of allocating a cluster and compressing a page shown in FIG. 7 may be implemented as shown in FIG. 8 as another embodiment, and includes some or all steps.
  • page data newly included in the snapshot image is compressed (S810), and a free space of a cluster in which the compressed page is to be stored is determined (S820).
  • the compressed page data is set to be stored in the existing cluster (S830), and if it is not sufficient for storage, a new cluster is allocated and stored (S840).
  • 9(a) is a flow chart showing a booting sequence according to the snapshot image of the present invention when the system power is applied.
  • a boot loader is executed (S911), and a board initialization process for initializing a hardware device is performed. Then (S912), the snapshot image stored in the second memory 120 is loaded into the first memory 110 (S913). Thereafter, the device is restored to the system state immediately before termination based on the page data information of the snapshot image (S914).
  • 9(b) is a flowchart showing a process of generating a snapshot image of the present invention when the system power is turned off.
  • the reason why power is supplied to the first memory 110 is that the information stored in the memory is lost when power is cut off in a system memory such as RAM, so a snapshot based on the page data of the first memory 110 Power must be supplied continuously during image creation.
  • FIG. 10 is data explaining a difference in capacity of a snapshot image programmed in the second memory 120 when generating a snapshot image according to the present invention compared to the prior art.
  • This data is a result obtained by performing a performance test on AVN (Audio Video Navigation), which is one of automotive electronic components.
  • AVN Audio Video Navigation
  • the first memory is RAM and the second memory is a flash memory.
  • the first and second deduplication processes are performed, and it can be seen that the newly programmed data is about 20 MiB, which is reduced to a level of one tenth compared to the prior art.
  • the purpose of performing hibernation booting is for fast booting of a digital device, but since multiple times deduplication accelerates data fragmentation, it is difficult to continuously read data, which may hinder fast booting.
  • deduplication is performed only when the duplicated page data is located in the hot cluster, and in the remaining cases, a new cluster is allocated and stored continuously. Is possible, preventing a decrease in boot speed due to fragmentation of data.
  • the loading speed of the snapshot image of the prior art and the present invention is similar to 140 MiB/sec.
  • the method for controlling a digital device disclosed in this specification may be implemented as a code readable by a processor on a recording medium readable by a processor provided in the digital device.
  • the processor-readable recording medium includes all types of recording devices that store data that can be read by the processor. Examples of recording media that can be read by the processor include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices, and are implemented in the form of carrier-wave such as transmission through the Internet. Includes being.
  • the recording medium readable by the processor may be distributed over a computer system connected through a network, so that code readable by the processor may be stored and executed in a distributed manner.

Abstract

본 명세서에서는 하이버네이션 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법을 개시한다. 여기서, 본 발명의 일 실시예에 따른 디지털 디바이스는, 제 1메모리와, 제 1메모리의 페이지 데이터들을 기초로 생성된 스냅샷 이미지를 저장하는 제 2메모리와, 상기 스냅샷 이미지를 생성하는 제어부를 포함하고, 상기 제어부는 제 1메모리 내의 중복되는 페이지 데이터를 1차 중복제거 하고, 제 2메모리에 기 저장된 스냅샷 이미지와 비교하여 중복되는 페이지 데이터를 선택적으로 2차 중복 제거하되, 상기 2차 중복 제거 단계를 통해 데이터 단편화를 최소화시키는 것을 특징으로 한다.

Description

부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법
본 발명은 디지털 디바이스의 부팅 방법 및 장치에 관한 것으로, 보다 구체적으로 예를 들면, 컴퓨팅 시스템에서 하이버네이션(Hibernation) 부팅을 위한 스냅샷 이미지를 생성하는 방법에 관한 것이다.
컴퓨터 파일 시스템에서 스냅샷 이미지는 예를 들어, 이전 시점에서의 시스템 상태에 대한 정보를 포함하는 것으로서, 컴퓨터 파일과 디렉토리의 모임이다.
상기 스냅샷 이미지를 이용한 부팅을 일반적으로 하이버네이션 부팅이라고 말하며, 종래의 일반적인 시스템 부팅에 비해 부팅 속도가 상당히 개선되는 장점이 있어, 최근 빠른 처리 성능을 요구하는 임베디드 제품이나 모바일 단말기 등의 부팅에 활용되고 있다.
하이버네이션 부팅은 컴퓨팅 시스템(Computing system)의 전원이 꺼짐과 동시에 직전까지 실행하던 작업 내용을 스토리지, 이를테면 플래시 메모리나 하드 디스크 드라이브(HDD) 등에 자동적으로 보존하는 기능을 제공한다.
통상적인 절전모드 등에서는 데이터의 유지를 위해 어느 정도의 전력을 소비하며, 또한 절전모드 상태로 오랫동안 방치하는 경우 데이터의 소실로 인해 이전 상태로의 복구 실패가 발생되기도 한다.
그러나 하이버네이션 부팅에 따르면, 컴퓨팅 시스템의 상태나 데이터의 스냅샷(Snapshot) 이미지를 생성한 다음 전력을 완전히 차단할 수 있어, 전력의 관점에서 유리하며, 데이터 손실 염려도 매우 작다.
한편, 이러한 하이버네이션 부팅을 위한 스냅샷 이미지의 데이터 크기는, 시스템 종료 직전까지 실행하던 작업 내용을 포함하므로 스토리지에 상당한 데이터 저장 용량이 요구된다.
더욱이, 하이버네이션 부팅을 위해서는 시스템 종료 시마다 스냅샷 이미지를 생성하고 저장하는 과정이 반복되므로, 디지털 디바이스의 사용량 및 사용 기간에 따라 저장매체인 스토리지의 수명을 지속적으로 감쇄시키는 문제가 발생하고 있다.
최근 자동차의 부품에도 다양한 디지털 디바이스가 사용되고 있으며, 이러한 디지털 디바이스의 경우는 수명 신뢰성이 더욱 중요시 되는 바, 하이버네이션 부팅 기술을 활용하기 위해서는 일정 수준 이상의 수명 신뢰성이 보장되어야 한다.
따라서 하이버네이션 부팅을 수행하면서도 안정적으로 수명 신뢰성을 확보할 수 있는 스냅샷 이미지 생성 방법이 요구된다.
본 발명의 일실시예의 목적은, 시스템 종료 시 램(RAM)에 저장된 페이지 데이터들을 스냅샷 이미지로 생성하여 플래시메모리에 저장하는 디지털 디바이스 및 그 제어 방법을 제공하고자 한다.
본 발명의 다른 일실시예의 목적은, 스냅샷 이미지를 생성 시, 중복되는 페이지 데이터는 생략함으로써 저장되는 스냅샷 이미지의 용량을 줄일 수 있는 디지털 디바이스 및 그 제어 방법을 제공하고자 한다.
본 발명의 또 다른 일실시예의 목적은, 페이지 데이터의 중복 제거를 통한 스냅샷 이미지 생성 시 필연적으로 발생하게 되는 데이터 단편화 현상을 최소화할 수 있는 디지털 디바이스 및 그 제어 방법을 제공하고자 한다.
본 발명의 또 다른 일실시예의 목적은, 스냅샷 이미지의 저장 공간으로 사용되는 플래시 메모리의 수명 신뢰성 저하를 획기적으로 개선할 수 있는 디지털 디바이스 및 그 제어 방법을 제공하고자 한다.
본 발명에서 이루고자 하는 기술적 과제는 상기 언급한 기술적 과제로 제한되지 않으며, 언급하지 않은 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 또는 다른 목적을 달성하기 위한 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법은, 제 1메모리에 저장된 페이지 데이터들 중 중복되는 페이지 데이터를 제거하는 단계; 상기 제거하는 단계 이후 남아 있는 페이지 데이터들을 제 2메모리에 기 저장된 페이지 데이터들과 비교하는 단계; 상기 비교 결과, 중복되는 페이지 데이터가 상기 제 2메모리의 핫 클러스터에 위치하는지 여부에 따라, 상기 중복되는 페이지 데이터를 선택적으로 제거하는 단계; 및 상기 선택적으로 제거하는 단계 이후 남아 있는 페이지 데이터들을 기초로 스냅샷 이미지를 생성하는 단계;를 포함한다.
실시예로서, 본 발명에 따른 단말기의 제1 메모리는 램(Random Access Memory, RAM) 메모리를 포함하고, 제2 메모리는 플래시 메모리를 포함할 수 있다.
실시예로서, 상기 제 1메모리에 저장된 페이지 데이터들 중 중복되는 페이지 데이터를 제거하는 단계는, 상기 제 1메모리에 저장된 페이지 데이터들에 대해 페이지 단위로 해시값을 산출하는 단계; 상기 산출된 해시값의 중복 여부를 판단하는 단계를 포함하되, 해시값이 중복되는 페이지 데이터에 대해서는 매핑 테이블에 상기 중복되는 페이지 데이터의 위치 정보만을 저장하는 것을 특징으로 한다.
실시예로서, 상기 매핑 테이블에는 상기 제1 메모리에 저장된 페이지 데이터들의 논리주소와 상기 제 2메모리에 저장된 페이지 데이터들의 물리주소 사이의 매핑 관계가 설정되어 있는 것을 특징으로 한다.
실시예로서, 상기 중복되는 페이지 데이터를 선택적으로 제거하는 단계는, 클러스터 매니지먼트를 수행하는 단계; 페이지 단위 별로 산출된 해시값을 통해 상기 1차 중복 제거 단계(101) 이후 남아 있는 페이지 데이터들과 상기 제 2메모리에 기 저장된 페이지 데이터들의 중복 여부를 판단하는 단계를 포함하되, 해시값이 중복되는 페이지 데이터가 상기 제 2메모리의 핫 클러스터에 위치하고 있으면, 매핑 테이블에 상기 중복되는 페이지 데이터의 위치 정보만을 저장하는 것을 특징으로 한다.
실시예로서, 상기 클러스터 매니지먼트를 수행하는 단계는, 상기 1차 중복 제거 단계 이후 남아 있는 페이지 데이터들과 상기 제 2메모리 상에 위치하는 블록들에 포함된 페이지 데이터들을 비교하는 단계; 상기 비교 결과, 블록 내 중복되는 페이지 데이터가 존재하면 상기 블록에 사용 카운터를 일정한 값만큼 증가시키는 단계; 및 상기 제 2메모리 상에 위치하는 일정한 수의 상기 블록들을 포함하는 클러스터에 있어서, 상기 블록 사용 카운터의 수치에 기초하여 핫 블록 및 핫 클러스터를 지정하는 단계를 포함한다.
실시예로서, 상기 블록 사용 카운터의 수치가 제1임계점보다 크면 핫 블록으로 지정하고, 상기 핫 블록의 수가 제2임계점보다 크고, 데이터 단편화가 제 3임계점보다 작으면 핫 클러스터로 지정하는 단계를 포함한다.
실시예로서, 상기 스냅샷 이미지를 생성하는 단계는, 상기2차 중복 제거 단계 이후 남아 있는 페이지 데이터들을 압축하는 단계; 상기 압축된 페이지 데이터들을 저장하기 위한 클러스터 공간을 할당하는 단계를 포함한다.
실시예로서, 상기 생성된 스냅샷 이미지를 제 2메모리에 저장하는 단계를 포함한다
본 발명의 실시예에 따른 디지털 디바이스는 제 1메모리; 상기 제 1메모리 내에 저장된 페이지 데이터들을 기초로 생성된 스냅샷 이미지가 저장되는 제 2메모리; 및 상기 스냅샷 이미지를 생성하는 제어부를 포함하고, 상기 제어부는, 상기 제 1메모리에 저장된 페이지 데이터들 중 중복되는 페이지 데이터는 1차 중복 제거하고, 상기 1차 중복 제거 이후 남아 있는 페이지 데이터들을 상기 제 2메모리에 기 저장된 페이지 데이터들과 비교하고, 중복되는 페이지 데이터가 상기 제 2메모리의 핫 클러스터에 위치하는지 여부에 따라 상기 중복되는 페이지 데이터를 선택적으로 2차 중복 제거하고, 상기 2차 중복 제거 이후 남아 있는 페이지 데이터들을 기초로 스냅샷 이미지를 생성한다.
본 발명의 효과는 다음과 같다.
본 발명의 다양한 실시예들 중 일실시예에 따르면, 시스템 종료 시 램(RAM)에 저장된 페이지 데이터들을 스냅샷 이미지로 생성하고, 이를 이용하여 빠르고 안정적인 부팅을 제공할 수 있다.
본 발명의 다양한 실시예들 다른 실시예에 따르면, 하이버네이션 부팅을 위한 스냅샷 이미지를 생성 시, 중복되는 페이지 데이터는 생략함으로써 저장되는 스냅샷 이미지의 용량을 줄일 수 있다.
본 발명의 다양한 실시예들 중 다른 실시예에 따르면, 페이지 데이터의 중복 제거를 통한 스냅샷 이미지 생성 시 필연적으로 발생하게 되는 데이터 단편화 현상을 최소화할 수 있다.
본 발명의 다양한 실시예들 중 다른 실시예에 따르면, 스냅샷 이미지의 저장 공간으로 사용되는 플래시메모리의 사용 빈도를 줄임으로써 수명 신뢰성 저하를 획기적으로 개선할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 하이버네이션 부팅을 위한 스냅샷 이미지 생성에 있어서, 종래 기술과 본 발명의 차이점을 보여주는 블록도이다.
도 2는 본 발명의 실시예에 따른 제 1메모리에 저장된 페이지 데이터에 대한1차 중복 제거를 수행하는 단계를 보여주는 순서도이다.
도 3은 본 발명의 실시예에 따른 1차 중복 제거 이후 남아 있는 페이지 데이터에 대한 2차 중복 제거를 수행하는 단계를 보여주는 순서도이다.
도 4는 본 발명의 실시예에 따른 클러스터 매니지먼트를 수행하는 단계를 보여주는 순서도이다.
도 5는 본 발명의 실시예에 따른 블록 사용 카운팅을 수행하는 단계를 보여주는 순서도이다.
도6은 본 발명의 실시예에 따른 핫 클러스터를 지정하는 단계를 보여주는 순서도이다.
도7은 본 발명의 실시예에 따른 스냅샷 이미지를 생성하는 단계를 보여주는 순서도이다.
도8은 본 발명의 실시예에 따른 클러스터를 할당하고 페이지를 압축하는 단계를 보여주는 순서도이다.
도9(a)는 시스템 전원이 인가될 때, 본 발명의 스냅샷 이미지에 따라 부팅되는 순서를 나타내는 순서도이다.
도9(b)는 시스템 전원이 오프될 때, 본 발명의 스냅샷 이미지가 생성되는 과정을 나타내는 순서도이다.
도 10은 종래 기술 대비 본 발명에 따라 스냅샷 이미지 생성 시, 제 2메모리에 프로그램 또는 저장되는 스냅샷 이미지의 용량 차이를 설명하는 자료이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 하기의 실시예들은 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예들로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.
상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 명세서에서 설명되는 부팅 장치 또는 부팅 방법은 예를 들면 전원을 켰을 때 부팅을 필요로 하는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 넷북(netbook), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 디지털 TV, 데스크탑 컴퓨터, 캠코더(Camcorder), 디지털 카메라, MP3 플레이어 등의 각종 단말에 적용될 수 있으며, 이에 한정되는 것은 아니다.
도 1은 하이버네이션 부팅을 위한 스냅샷 이미지 생성방법에 있어서, 종래 기술과 본 발명의 차이점을 보여주는 블록도이다.
도 1을 참조하면, 제 1메모리(110)는 일반적으로 램과 같은 시스템 메모리를 말하며, 상기 시스템 메모리에는 페이지 단위로 데이터가 저장되어 있다.
종래 하이버네이션 부팅을 위한 스냅샷 이미지 생성 기술은 디지털 디바이스의 시스템 종료 시 제 1메모리(110)에 저장되어 있는 페이지 데이터들을 가공하지 않고 스냅샷 이미지로 생성하고, 제 2메모리(120)에 저장한다. 본 발명의 경우 제 1메모리(110)에 저장되어 있는 페이지 데이터들을 그대로 이용하지 않고, 중복되는 페이지는 1차 및 2차 중복 제거 단계를 통해 제거해 줌으로써 생성되는 스냅샷 이미지의 용량을 감소시킬 수 있다.
여기에서 1차 중복 제거 단계는 제 1메모리에 저장된 페이지 데이터들 중 중복되는 페이지 데이터를 제거하는 단계를 의미하며, 2차 중복 제거 단계는 상기 1차 중복 제거 단계 이후 남아 있는 페이지 데이터들 중 제 2메모리 상의 페이지 데이터와 중복되는 페이지 데이터에 대해서는 선택적으로 제거하는 단계를 말한다.
추가적으로, 중복되는 페이지 데이터를 제거한다는 의미는 이미 제 1메모리(110) 상에 쓰여져 있는 페이지 데이터를 삭제하는 과정을 의미하기 보다는, 예를 들어, 상기 중복되는 페이지 데이터에 대해서는 오리지널 페이지 데이터만을 데이터로 저장하고, 나머지 중복되는 페이지 데이터는 이에 대응하는 오리지널 페이지 데이터의 위치 정보만을 저장하도록 설정하는 것을 의미한다.
여기서 오리지널 페이지 데이터는 1차 중복제거 단계(101)에서는 중복되는 페이지 데이터들 중 선순위에 위치한 페이지 데이터를 의미하며, 2차 중복제거 단계(103)에서는 중복되는 페이지 데이터들 중 제 2메모리(120)의 핫 클러스터 영역에 저장된 페이지 데이터를 의미한다.
상기 중복제거 설정을 통해, 제 1메모리(110)에 저장된 페이지 데이터들을 기초로 스냅샷 이미지 생성 시, 오리지널 페이지 데이터를 제외한 나머지 중복되는 페이지 데이터는 저장할 필요가 없고, 오직 오리지널 페이지 데이터의 위치 정보만을 저장하게 되므로, 제 2메모리(120)에 새롭게 프로그래밍 또는 저장되는 데이터 용량은 종래 기술 대비 획기적으로 감소하게 된다.
본 발명에 따른 제 2메모리(120)는 예를 들어, 데이터 저장을 위한 비휘발성 메모리를 의미하며, 플래시 메모리 등을 포함한다.
설명의 편의를 위해 플래시 메모리에 대해 설명하면, 플래시 메모리는 일반적으로 하나의 셀(Cell)당 프로그램(또는 write)할 수 있는 횟수(수명)가 1천회에서 10만회 내외이다. 이는 플래시 메모리의 프로그램 타입에 따라 다르며, SLC(Single Level Cell)의 수명은 최대 약 10만회이며, MLC(Multi Level Cell)의 수명은 최대 약 1만회이며, TLC(Triple Level Cell)의 수명은 최대 약 1천회에 이른다.
따라서 제 2메모리(120)로 플래시 메모리를 사용할 경우, 스냅샷 이미지를 위해 플래시 메모리에 저장되는 페이지 데이터의 양이 클수록, 플래시 메모리의 수명은 감소하게 된다.
도 2는 본 발명의 실시예에 따른 제 1메모리(110)에 저장된 페이지 데이터에 대한 1차 중복 제거를 수행하는 단계(101)를 보여주는 순서도이다.
도 1에 도시된 1차 중복 제거 단계(101)는, 다른 실시예로서 도 2에 도시된 일부 또는 모든 단계들을 포함한다.
우선, 제 1메모리(110)에 저장된 페이지 데이터를 해시값으로 산출하는 단계를 수행한다(S210). 해시값은 해시 함수를 적용하여 나온 고정된 길이의 값을 의미하며, 해시값이 중복되는 경우 중복되는 페이지 데이터로 간주할 수 있다.
이때, 상기 해시 값은 예를 들어 MD5(Message-Digest algorithm 5) 및 SHA(Secure Hash Algorithm) 중 적어도 하나의 암호학적 해시 함수로 계산될 수 있고, 상기 해시 함수는 소프트웨어 또는 하드웨어 블럭(중복 제거 모듈)로 구현되어 계산될 수 있다.
산출된 해시값을 바탕으로 중복되는 페이지 데이터 여부를 판단하고(S220), 오리지널 페이지 데이터를 제외한 나머지 중복되는 페이지 데이터는 매핑 테이블에 오리지널 페이지 데이터의 위치 정보만을 저장하고(S230), 해당 페이지 데이터 자체의 데이터를 추가적으로 제 2메모리(120)에 저장하지 않도록 설정한다(S240). 이로써 새로 생성되는 스냅샷 이미지에는 상기 중복 페이지 데이터의 위치 정보만을 저장하게 되며 페이지 데이터 자체는 추가 저장하지 않아 저장되는 데이터 용량을 줄일 수 있다.
상기 매핑 테이블은(미도시) 제 1메모리(110)에 저장된 페이지 데이터들의 논리주소와 제 2메모리(120)에 저장되는 페이지 데이터들의 물리주소의 매핑 관계를 나타낸다.
제 1메모리(110)에 저장된 페이지 데이터들의 논리주소는 제 1메모리(110)에 저장된 페이지 데이터들의 물리주소를 바탕으로 1차 및 2차 중복제거 이후 설정되는 중복 제거된 페이지 데이터들의 위치 정보를 포함하는 주소이다.
제 2메모리(120)에 저장되는 페이지 데이터들의 물리주소는 상기 논리주소를 가지는 각 페이지 데이터들이 제 2메모리(120) 내에서 실제로 저장되는 물리적인 공간을 의미한다.
도 3은 본 발명의 실시예에 따른 1차 중복 제거 단계(101) 이후 남아 있는 페이지 데이터에 대한 2차 중복 제거를 수행하는 단계(103)를 보여주는 순서도이다.
도 1에 도시된 2차 중복 제거 단계(103)는, 다른 실시예로서 도 3과 같이 구현될 수 있으며, 일부 또는 전부 단계를 포함한다.
2차 중복 제거 단계(103)는 제 2메모리(120)상에 기 저장되어 있는 스냅샷 이미지와 비교하여, 중복되는 페이지 데이터에 대해서는 제 2메모리(120)의 핫 클러스터에 속하는지 여부에 따라 선택적으로 중복 제거하는 단계이다.
기 저장되어 있는 스냅샷 이미지란, 하이버네이션 부팅을 수행하는 디지털 디바이스가 처음 동작하고, 시스템이 종료될 시 제 1메모리(110)에 저장된 페이지 데이터들이 1차 중복제거만 수행되고 바로 제 2메모리(120)로 저장되는 페이지 데이터들을 의미한다.
추가적으로 상기 처음 생성되는 스냅샷 이미지에는 향후 2차 중복 제거 시 활용하기 위한 클러스터 테이블 및 매핑 테이블을 포함한다.
클러스터 테이블은 스냅샷 이미지가 저장되는 클러스터들의 정보가 담긴 테이블이다. 하나의 클러스터에는 다수의 페이지 데이터들이 저장될 수 있고, 각 페이지 데이터가 가지는 해시값의 정보가 클러스터 테이블에 저장된다.
여기서 클러스터는 데이터를 저장하기 위한 일정한 크기의 영역이며, 본 발명에서는 하나의 페이지 데이터는 하나의 페이지 공간에 저장되며, 일정 수량의 페이지들이 모여 하나의 블록을 이루며, 일정 수량의 블록들이 모여 하나의 클러스터 단위를 형성한다. 일반적으로 스냅샷 이미지가 저장되기 위해서는 일정한 수의 클러스터가 필요하다.
2차 중복 제거 단계(103)는 클러스터 매니지먼트를 수행하는 것으로 시작한다(S310). 먼저 클러스터 매니지먼트를 통해 각 클러스터 별 중복 사용 빈도 수를 카운팅하고 핫 클러스터를 지정한다.
이후, 1차 중복 제거 단계(101) 이후 남아있는 페이지 데이터들 중 제 2메모리(120) 상에 기 저장된 스냅샷 이미지 내의 페이지 데이터들과의 중복 여부를 확인한다.
중복되는 페이지 데이터가 있다면, 상기 페이지 데이터가 제 2메모리(120) 내의 핫 클러스터에 위치하는지 여부를 판단한다(S320).
상기 판단 결과(S320) 핫 클러스터에 중복 페이지 데이터가 속해 있다면, 핫 클러스터 내에 존재하는 오리지널 페이지 데이터는 제외하고 상기 중복 페이지 데이터는 매핑 테이블에 오리지널 페이지 데이터의 위치 정보만을 추가하도록 설정한다(S330).
상기 판단 결과(S320) 중복 페이지 데이터가 핫 클러스터에 속해 있지 않다면, 중복 제거하지 않고, 상기 중복 페이지 데이터는 스냅샷 이미지를 위해 제 2메모리(120)의 새로운 클러스터 공간에 저장되도록 설정한다(S340).
상술한 바와 같이 경우를 나누어, 페이지 데이터가 중복되더라도 별도의 클러스터 공간을 할당하여 페이지 데이터를 저장하는 이유는 데이터 단편화를 최소화하기 위함이다.
일반적으로 페이지 데이터를 중복 제거하게 되면 스냅샷 이미지 생성 시 추가적으로 제 2메모리(120)에 프로그램 해야 하는 데이터 용량은 감소하게 되나, 시스템 부팅 시 스냅샷 이미지의 데이터들이 연속되는 저장 공간이 아닌 여러 공간에 분리되어 있어, 데이터 로딩 시간이 길어질 수 있는 단점이 있다.
따라서 이러한 데이터 단편화를 최소화시키기 위해서는 중복되는 페이지 데이터를 모두 제거하기 보다는, 데이터 단편화를 시킬 수 있는 가능성이 있는 페이지 데이터는 중복 제거하지 않고, 별도의 저장공간을 할당 받아 연속적으로 저장시키는 것이 하이버네이션 부팅 속도 관점에서 바람직하다.
핫 클러스터는 데이터 단편화 문제를 해결하기 위해 본 발명에서 새롭게 도입한 개념으로 자세한 설명은 후술하도록 한다.
도 4는 본 발명의 실시예에 따른 클러스터 매니지먼트를 수행하는 단계(S310)를 보여주는 순서도이다.
도 3에 도시된 클러스터 매니지먼트를 수행하는 단계(S310)는, 다른 실시예로서 도 4와 같이 구현될 수 있으며, 일부 또는 전부 단계를 포함한다.
클러스터 매니지먼트는 제 2메모리(120)에 저장된 스냅샷 이미지가 위치하는 클러스터들에 대한 정보를 갱신하는 과정으로 크게 블록의 중복 사용 빈도 수를 카운팅하는 단계(S410)와 핫 클러스터 지정 단계(S420)로 이루어 진다.
블록의 중복 사용 빈도 수를 카운팅하는 단계(S410)는 기 저장된 스냅샷 이미지를 이루는 페이지 데이터들이 저장된 블록들에 대한 정보를 갱신하는 과정으로, 1차 중복 제거 이후 남아있는 페이지 데이터들이 상기 블록 내의 페이지 데이터들과 중복되는 경우 블록 사용 카운터를 기준값에서 일정한 값만큼 증가시키는 방식이다.
처음 클러스터 테이블을 생성 당시, 블록 사용 카운터는 0 또는 양수인 특정 값을 기준 값으로 지정할 수 있다. 0으로 블록 사용 카운터를 지정한 경우에는 중복 페이지 유무에 따라 블록 사용 카운터는 0에서부터 일정한 값만큼 증가되고, 처음부터 0이 아닌 양수의 특정 값으로 지정한 경우에는, 중복 페이지 유무에 따라 블록 사용 카운터는 일정한 값만큼 증가하거나 감소하도록 설정할 수 있다.
핫 클러스터를 지정하는 단계(S420)는 상기 블록들이 모인 클러스터들을 대상으로 핫 블록의 개수, 데이터 단편화 정도를 기준으로 핫 클러스터 여부를 결정하는 단계이다.
상기 클러스터 매니지먼트가 수행되면(S310), 기존에 저장되어 있던 클러스터 테이블의 정보도 갱신되며(S650), 상기 정보에는 클러스터 별 핫 클러스터 여부, 페이지 데이터들의 해시값 및 블록의 중복 사용 빈도 수에 관한 기준값이 포함한다.
도 5는 본 발명의 실시예에 따른 블록 사용 카운팅을 수행하는 단계(S410)를 보여주는 순서도이다.
도 4에 도시된 블록 사용 카운팅을 수행하는 단계(S410)는, 다른 실시예로서 도 5와 같이 구현될 수 있으며, 일부 또는 전부 단계를 포함한다.
블록은 페이지보다는 상위 개념이고, 클러스터보다는 하위 개념인 데이터 저장 공간이며, 하나의 블록 내에는 일정 수량의 페이지 공간이 존재한다.
기존 스냅샷 이미지의 페이지 데이터들이 저장된 제 2메모리(120)의 블록을 기준으로, 1차 중복 제거 단계(101) 이후 남아 있는 페이지 데이터들과 중복 여부를 검사하고(S510), 블록 내 중복되는 페이지 데이터가 있는 경우 블록 사용 카운터를 기준 값에서 일정한 값만큼 증가시킨다(S520).
중복 여부를 검사하는 과정은 1차 중복 제거 때와 마찬가지로 페이지 데이터들의 해시값이 중복되는지 여부로 판단하며, 이때 해시값의 비교는 제 2메모리(120)에 기 저장되어 있는 클러스터 테이블의 해시값 정보와 1차 중복 제거 때 사용된 해시값 정보를 활용한다(S510).
도6은 본 발명의 실시예에 따른 핫 클러스터를 지정하는 단계(S420)를 보여주는 순서도이다.
도 4에 도시된 핫 클러스터를 지정하는 단계(S420)는, 다른 실시예로서 도 6과 같이 구현될 수 있으며, 일부 또는 전부 단계를 포함한다.
블록 사용 카운팅 단계(S410)에서 얻어진 블록의 중복 사용 빈도 수를 바탕으로 해당 블록이 제 1임계치보다 큰 블록 사용 빈도 수를 가질 때, 해당 블록을 핫 블록으로 지정한다(S610).
따라서 핫 블록이 의미하는 바는 예를 들어, 중복되는 페이지 데이터를 다수 보유하고 있는 블록을 말한다.
이후, 일정 수의 블록들로 이루어진 각 클러스터에 대해 상기 핫 블록의 개수를 파악하고, 제 2임계치와 비교한다(S620).
클러스터 내 존재하는 핫 블록의 수가 제 2임계치보다 크면, 상기 클러스터의 데이터 단편화 정도를 확인한다.
데이터 단편화 정도가 제 3임계치보다 크면, 상기 클러스터를 핫 클러스터로 지정하고(S630), 데이터의 2차 중복 제거를 위한 기준으로 사용한다.
일정한 수 이하의 핫 블록을 가진 클러스터나, 데이터 단편화 조건을 만족하지 못하는 클러스터의 경우, 2차 중복 제거 과정에서 중복되는 페이지 데이터가 존재하더라도, 중복 제거되지 않고, 새로운 클러스터를 지정하여 저장할 것으로 설정되며, 이러한 정보를 클러스터 테이블에 저장하게 된다.
여기서, 핫 클러스터는 중복되는 페이지 데이터가 다수 존재하고, 데이터 단편화 정도는 작은 영역인 바, 이후 부팅 과정에서 데이터 로딩 시, 핫 클러스터에 속하는 데이터는 빠른 속도로 로딩 가능하다.
반면, 핫 클러스터에 속하지 않은 중복 페이지 데이터들은 새로운 클러스터를 할당 받아 연속적으로 저장하는 것이 향후 로딩 시 데이터 단편화 문제를 발생시키지 않는다.
추가적으로, 핫 클러스터 이외에 콜드 클러스터의 지정도 가능하다. 콜드 클러스터는 핫 블록과 반대되는 콜드 블록이 일정한 개수 이상으로 존재하는 클러스터를 말한다.
콜드 블록은 블록의 중복 사용 빈도 수가 일정한 값 이하인 블록을 말하며, 이는 중복되는 페이지 데이터가 거의 존재하지 않은 블록을 의미한다.
따라서 콜드 클러스터에 속하는 중복 페이지 데이터들은 새로운 클러스터를 할당 받아 연속적으로 저장하는 것이 향후 로딩 시 데이터 단편화 문제를 발생시키지 않는다.
핫 클러스터와 콜드 클러스터는 동시에 또는 둘 중 하나만 지정 가능하며, 본 발명의 실시예의 경우는 핫 클러스터만 지정한 경우를 예로 들어 설명하지만, 본 발명의 권리범위가 이에 한정되는 것은 아니다.
도7은 본 발명의 실시예에 따른 스냅샷 이미지를 생성하는 단계(105)를 보여주는 순서도이다.
도 1에 도시된 스냅샷 이미지 생성 단계(105)는, 다른 실시예로서 도 7과 같이 구현될 수 있으며, 일부 또는 전부 단계를 포함한다.
우선, 2차 중복 제거까지 완료되고 남아 있는 페이지 데이터에 대한 압축을 진행하고, 상기 압축된 페이지 데이터를 저장할 클러스터 공간을 할당한다(S710).
할당된 클러스터는 페이지 데이터가 제 2메모리(120) 내에 실제로 저장되는 물리주소이므로, 이와 관련된 정보를 바탕으로 매핑 테이블을 갱신한다(S720).
도8은 본 발명의 실시예에 따른 클러스터를 할당하고 페이지를 압축하는 단계(S710)를 보여주는 순서도이다.
도 7에 도시된 클러스터를 할당하고 페이지를 압축하는 단계(S710)는, 다른 실시예로서 도 8과 같이 구현될 수 있으며, 일부 또는 전부 단계를 포함한다.
우선, 스냅샷 이미지에 새로이 포함되는 페이지 데이터들은 압축되고(S810), 상기 압축된 페이지가 저장될 클러스터의 여유 공간을 파악한다(S820).
상기 클러스터에 여유공간이 존재하면 기존의 클러스터에 압축 페이지 데이터를 저장할 것으로 설정하며(S830), 저장하기에 충분하지 않다면, 신규 클러스터를 할당 받아 저장하도록 설정한다(S840).
도9(a)는 시스템 전원이 인가될 때, 본 발명의 스냅샷 이미지에 따라 부팅되는 순서를 나타내는 순서도이다.
상기 도 9(a)를 참조하면, 하이버네이션 부팅을 수행하는 디지털 디바이스의 경우, 전원이 인가되면(S910), 부트로더를 실행하고(S911), 하드웨어 장치를 초기화하는 보드(Board) 초기화 과정을 수행한 후(S912), 제 2메모리(120)에 저장된 스냅샷 이미지를 제 1메모리(110)로 로딩하게 된다(S913). 이후 스냅샷 이미지의 페이지 데이터 정보를 바탕으로 종료 직전의 시스템 상태로 디바이스를 복원하게 된다(S914).
도9(b)는 시스템 전원이 오프될 때, 본 발명의 스냅샷 이미지가 생성되는 과정을 나타내는 순서도이다.
전원 오프 명령이 전달되면(S920) 제 1메모리(110)를 제외한 나머지 하드웨어 영역은 전원을 공급하지 않는 절전모드 상태로 진입하게 된다(S921).
제 1메모리(110)에 전원이 공급되는 이유는 일반적으로 램과 같은 시스템 메모리는 휘발성 메모리로 전원이 차단되면 메모리 내 저장된 정보가 상실되므로, 제 1메모리(110)의 페이지 데이터를 바탕으로 스냅샷 이미지를 생성하는 동안에는 전원이 지속적으로 공급되어야 한다.
이후 제 1메모리(110)에 저장된 페이지 데이터들에 대해 중복여부에 따라 1차 중복 제거(S922) 및 2차 중복 제거(S923)를 수행하고, 남아 있는 페이지 데이터들을 기초로 스냅샷 이미지를 생성하고, 상기 스냅샷 이미지를 제 2메모리(120)에 저장(S924)한 이후 시스템은 종료된다(S925).
도 10은 종래 기술 대비 본 발명에 따라 스냅샷 이미지 생성 시, 제 2메모리(120)에 프로그램 되는 스냅샷 이미지의 용량 차이를 설명하는 자료이다.
본 자료는 자동차의 전장 부품 중 하나인 AVN(Audio Video Navigation)에 대한 성능 테스트를 진행하여 얻은 결과이며, 상기 AVN에서 제 1메모리는 램이며, 제 2메모리는 플래시 메모리이다.
도 10에서 도시되었듯이, 종래의 기술을 이용하여 스냅샷 이미지를 저장하는 경우에는, 약 300MiB의 데이터가 추가적으로 플래시 메모리에 프로그램 된다.
하지만 본 발명을 이용하면 스냅샷 이미지 생성 시, 1차 및 2차 중복제거 과정을 거치는 바, 새롭게 프로그램 되는 데이터는 약 20MiB로 종래 기술 대비 10분의 1수준으로 감소한 것을 확인할 수 있다.
앞서 기술하였듯이, 플래시 메모리의 경우 각각의 셀에 프로그램을 수행할 수 있는 횟수가 제한이 있는 바, 전원 오프 시마다 많은 데이터를 빈번하게 저장하게 되면 수명 신뢰성이 떨어지게 된다. 따라서 도 10의 결과만 놓고 단적으로 판단해보면, 본원 기술은 종래 기술 대비 10배 이상의 수명 신뢰도 향상을 도모할 수 있음을 알 수 있다.
추가적으로, 스냅샷 이미지의 로딩 속도를 비교한 결과를 통해 본 발명의 2차 중복 제거 효과를 확인할 수 있다.
통상적으로 하이버네이션 부팅을 수행하는 목적은 디지털 디바이스의 빠른 부팅을 위한 것이나, 복수 번의 중복 제거는 데이터 단편화를 가속시키는 바, 연속적인 데이터 읽기가 어려워져 빠른 부팅을 저해할 수 있다.
하지만 2차 중복 제거 단계(103)를 통해, 중복되는 페이지 데이터가 핫 클러스터에 위치할 때만 중복 제거를 수행하고, 나머지 경우에는 새로운 클러스터를 할당 받아 연속적으로 저장함으로써, 이후 데이터 로딩 시, 연속적인 읽기가 가능하여, 데이터 단편화로 인한 부팅 속도 저하를 방지하고 있다.
도 10에서 도시된 바와 같이, 종래 기술과 본 발명의 스냅샷 이미지의 로드 속도는 140MiB/sec로 유사한 것을 알 수 있다.
즉, 스냅샷 이미지를 램에 로딩 시, 플래시 메모리로부터 읽어 들이는 데이터 크기는 유사한 바, 본 발명을 통한 스냅샷 이미지에서 데이터 단편화는 문제되지 않음을 알 수 있다.
한편, 본 명세서에서 개시된 디지털 디바이스의 제어 방법은 디지털 디바이스에 구비된 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 디바이스를 포함한다. 프로세서가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장 디바이스 등이 있으며, 인터넷을 통한 전송 등과 같은 캐리어-웨이브(carrier-wave)의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
한편, 본 명세서에서는 첨부된 도면을 참조하여 설명하였으나, 이는 실시예일 뿐 특정 실시예에 한정되지 아니하며, 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 변형실시가 가능한 다양한 내용도 청구범위에 따른 권리범위에 속한다. 또한, 그러한 변형 실시들이 본 발명의 기술 사상으로부터 개별적으로 이해되어서는 안 된다.

Claims (13)

  1. 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법에 있어서,
    제 1메모리에 저장된 페이지 데이터들 중 중복되는 페이지 데이터를 제거하는 단계;
    상기 제거하는 단계 이후 남아 있는 페이지 데이터들을 제 2메모리에 기 저장된 페이지 데이터들과 비교하는 단계;
    상기 비교 결과, 중복되는 페이지 데이터가 상기 제 2메모리의 핫 클러스터에 위치하는지 여부에 따라, 상기 중복되는 페이지 데이터를 선택적으로 제거하는 단계; 및
    상기 선택적으로 제거하는 단계 이후 남아 있는 페이지 데이터들을 기초로 스냅샷 이미지를 생성하는 단계;를 포함하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  2. 제1항에 있어서,
    상기 제 1메모리는 램(Random Access Memory)을 포함하고,
    상기 제 2메모리는 플래시 메모리를 포함하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  3. 제1항에 있어서,
    상기 제 1메모리에 저장된 페이지 데이터들 중 중복되는 페이지 데이터를 제거하는 단계는,
    상기 제 1메모리에 저장된 페이지 데이터들에 대해 페이지 단위로 해시값을 산출하는 단계;
    상기 산출된 해시값의 중복 여부를 판단하는 단계를 포함하되,
    해시값이 중복되는 페이지 데이터에 대해서는 매핑 테이블에 상기 중복되는 페이지 데이터의 위치 정보만을 저장하는 것을 특징으로 하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  4. 제 3항에 있어서,
    상기 매핑 테이블에는 상기 제 1 메모리에 저장된 페이지 데이터들의 논리주소와 상기 제 2메모리에 저장된 페이지 데이터들의 물리주소 사이의 매핑 관계가 설정되어 있는 것을 특징으로 하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  5. 제 1항에 있어서,
    상기 중복되는 페이지 데이터를 선택적으로 제거하는 단계는,
    클러스터 매니지먼트를 수행하는 단계;
    페이지 단위 별로 산출된 해시값을 통해 상기 1차 중복 제거 단계 이후 남아 있는 페이지 데이터들과 상기 제 2메모리에 기 저장된 페이지 데이터들의 중복 여부를 판단하는 단계를 포함하되,
    해시값이 중복되는 페이지 데이터가 상기 제 2메모리의 핫 클러스터에 위치하고 있으면, 매핑 테이블에 상기 중복되는 페이지 데이터의 위치 정보만을 저장하는 것을 특징으로 하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  6. 제5항에 있어서,
    상기 클러스터 매니지먼트를 수행하는 단계는,
    상기 1차 중복 제거 단계 이후 남아 있는 페이지 데이터들과 상기 제 2메모리 상에 위치하는 블록들에 포함된 페이지 데이터들을 비교하는 단계;
    상기 비교 결과, 블록 내 중복되는 페이지 데이터가 존재하면 상기 블록에 사용 카운터를 일정한 값만큼 증가시키는 단계; 및
    상기 제 2메모리 상에 위치하는 일정한 수의 상기 블록들을 포함하는 클러스터에 있어서, 상기 블록 사용 카운터의 수치에 기초하여 핫 블록 및 핫 클러스터를 지정하는 단계를 포함하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  7. 제6항에 있어서,
    상기 블록 사용 카운터의 수치가 제1임계점보다 크면 핫 블록으로 지정하고,
    상기 핫 블록의 수가 제2임계점보다 크고, 데이터 단편화가 제 3임계점보다 작으면 핫 클러스터로 지정하는 단계를 포함하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  8. 제1항에 있어서,
    상기 스냅샷 이미지를 생성하는 단계는,
    상기 중복되는 페이지 데이터를 선택적으로 제거하는 단계 이후 남아 있는 페이지 데이터들을 압축하는 단계;
    상기 압축된 페이지 데이터들을 저장하기 위한 클러스터 공간을 할당하는 단계를 포함하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  9. 제8항에 있어서,
    상기 생성된 스냅샷 이미지를 제 2메모리에 저장하는 단계를 포함하는 부팅 프로세스를 수행하는 디지털 디바이스의 제어 방법.
  10. 제 1메모리;
    상기 제 1메모리 내에 저장된 페이지 데이터들을 기초로 생성된 스냅샷 이미지가 저장되는 제 2메모리; 및
    상기 스냅샷 이미지를 생성하는 제어부를 포함하고,
    상기 제어부는,
    상기 제 1메모리에 저장된 페이지 데이터들 중 중복되는 페이지 데이터는 제거하고,
    상기 중복 제거 이후 남아 있는 페이지 데이터들을 상기 제 2메모리에 기 저장된 페이지 데이터들과 비교하고,
    상기 비교 결과, 중복되는 페이지 데이터가 상기 제 2메모리의 핫 클러스터에 위치하는지 여부에 따라 상기 중복되는 페이지 데이터를 선택적으로 제거하고,
    상기 선택 제거 이후 남아 있는 페이지 데이터들을 기초로 스냅샷 이미지를 생성하는 것을 특징으로 하는 디지털 디바이스.
  11. 제 10항에 있어서,
    상기 제1 메모리는 램(Random Access Memory)을 포함하고,
    상기 제 2메모리는 플래시 메모리를 포함하는 부팅 프로세스를 수행하는 디지털 디바이스.
  12. 제 10항에 있어서,
    상기 제어부는, 상기 제 2메모리 내 블록 사용 횟수를 카운팅하는 제 1제어부와 상기 제 2메모리 내 핫 클러스터를 지정하는 제 2제어부를 포함하되,
    상기 제 1 제어부는,
    상기 제 2메모리 상에 위치하는 블록들에 포함된 페이지 데이터들과 상기 1차 중복 제거 이후 남아 있는 페이지 데이터들을 비교하여, 상기 블록 내에 중복되는 페이지 데이터가 존재하면 상기 블록에 사용 카운터를 일정한 값만큼 증가시키는 동작을 수행하고,
    상기 제 2 제어부는,
    상기 제 2메모리 상에 위치하는 일정한 수의 상기 블록들을 포함하는 클러스터에 있어서, 상기 블록 사용 카운터의 수치에 기초하여 핫 블록 및 핫 클러스터를 지정하는 것을 특징으로 하는 부팅 프로세스를 수행하는 디지털 디바이스.
  13. 제 12항에 있어서,
    상기 제 2 제어부는,
    상기 블록 사용 카운터의 수치가 제1임계점보다 크면 핫 블록으로 지정하고,
    상기 핫 블록의 수가 제2임계점보다 크고, 데이터 단편화가 제 3임계점보다 작으면 핫 클러스터로 지정하는 것을 특징으로 하는 부팅 프로세스를 수행하는 디지털 디바이스.
PCT/KR2019/006425 2019-05-29 2019-05-29 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법 WO2020241918A1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP19930864.4A EP3979075A4 (en) 2019-05-29 2019-05-29 DIGITAL DEVICE FOR PERFORMING A BOOTING PROCESS AND ASSOCIATED CONTROL METHOD
KR1020217018535A KR20220002242A (ko) 2019-05-29 2019-05-29 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법
CN201980089758.8A CN113316766B (zh) 2019-05-29 2019-05-29 用于执行启动过程的数字装置及其控制方法
US17/415,471 US11579892B2 (en) 2019-05-29 2019-05-29 Digital device for performing booting process and control method therefor
PCT/KR2019/006425 WO2020241918A1 (ko) 2019-05-29 2019-05-29 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/006425 WO2020241918A1 (ko) 2019-05-29 2019-05-29 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법

Publications (1)

Publication Number Publication Date
WO2020241918A1 true WO2020241918A1 (ko) 2020-12-03

Family

ID=73552863

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/006425 WO2020241918A1 (ko) 2019-05-29 2019-05-29 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법

Country Status (5)

Country Link
US (1) US11579892B2 (ko)
EP (1) EP3979075A4 (ko)
KR (1) KR20220002242A (ko)
CN (1) CN113316766B (ko)
WO (1) WO2020241918A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187134A (ja) * 2008-02-04 2009-08-20 Ricoh Co Ltd 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体
JP2010072746A (ja) * 2008-09-16 2010-04-02 Hitachi Ltd ストレージシステム、及びストレージシステムの運用方法
JP2014170430A (ja) * 2013-03-04 2014-09-18 Nec Corp メモリ管理方法、データ要素回収方法とデータ要素回収プログラム、情報処理装置およびその制御方法と制御プログラム
KR20150104605A (ko) * 2013-01-10 2015-09-15 퓨어 스토리지, 아이앤씨. 볼륨 영역들의 중복성 제거
JP2017083933A (ja) * 2015-10-23 2017-05-18 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101257691B1 (ko) * 2011-08-12 2013-04-24 아주대학교산학협력단 메모리 컨트롤러 및 이의 데이터 관리방법
CN104915265B (zh) * 2014-03-10 2018-03-16 北京联想核芯科技有限公司 数据备份方法和电子设备
US9535915B2 (en) * 2014-07-11 2017-01-03 Quantum Corporation Immediate recovery of virtual machine using deduplication device and snapshots
CN104484480B (zh) * 2014-12-31 2018-06-05 华为技术有限公司 基于重复数据删除的远程复制方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187134A (ja) * 2008-02-04 2009-08-20 Ricoh Co Ltd 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体
JP2010072746A (ja) * 2008-09-16 2010-04-02 Hitachi Ltd ストレージシステム、及びストレージシステムの運用方法
KR20150104605A (ko) * 2013-01-10 2015-09-15 퓨어 스토리지, 아이앤씨. 볼륨 영역들의 중복성 제거
JP2014170430A (ja) * 2013-03-04 2014-09-18 Nec Corp メモリ管理方法、データ要素回収方法とデータ要素回収プログラム、情報処理装置およびその制御方法と制御プログラム
JP2017083933A (ja) * 2015-10-23 2017-05-18 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム

Also Published As

Publication number Publication date
CN113316766A (zh) 2021-08-27
EP3979075A4 (en) 2023-01-11
CN113316766B (zh) 2023-09-26
EP3979075A1 (en) 2022-04-06
US20220066785A1 (en) 2022-03-03
KR20220002242A (ko) 2022-01-06
US11579892B2 (en) 2023-02-14

Similar Documents

Publication Publication Date Title
EP2539807A2 (en) Method and apparatus for generating minimum boot image
US8627029B2 (en) Methods for managing files according to application
US7421551B2 (en) Fast verification of computer backup data
WO2013048023A2 (ko) 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
WO2015005634A1 (ko) 메모리 시스템 및 이의 제어 방법
WO2011024688A1 (ja) ファームウェア更新システム、及び情報機器、並びにプログラム
EP3129872A1 (en) Application execution method and apparatus
WO2014042465A1 (en) Method of managing memory
WO2013176376A1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
WO2013174210A1 (zh) 一种闪存设备中数据存储的方法及装置
WO2016204529A1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US20130091322A1 (en) Electronic System and Memory Managing Method Thereof
WO2020077534A1 (zh) 一种磁盘管理方法、磁盘管理装置及电子设备
WO2013100302A1 (en) Patch method using memory and temporary memory and patch server and client using the same
US20120151166A1 (en) Nonvolatile storage device and memory controller
WO2020241918A1 (ko) 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법
WO2017026740A1 (ko) 전자 장치 및 이의 데이터 압축 방법
WO2011019216A2 (en) Hybrid storage device, and control method
WO2017057934A1 (en) Electronic apparatus and booting method thereof
JP4550869B2 (ja) データ同期システム及びデータ同期プログラム
JP2010049303A (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
WO2018082479A1 (zh) 一种移动终端内实现数据安全删除的方法及系统
CN115344423B (zh) 备份方法、挂载恢复方法、服务器及计算机可读存储介质
WO2020222453A1 (ko) 보조기억장치의 복구정보 관리 장치 및 방법
WO2015156615A1 (en) Application execution method and apparatus

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: 19930864

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019930864

Country of ref document: EP

Effective date: 20220103