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

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

Info

Publication number
KR20220002242A
KR20220002242A KR1020217018535A KR20217018535A KR20220002242A KR 20220002242 A KR20220002242 A KR 20220002242A KR 1020217018535 A KR1020217018535 A KR 1020217018535A KR 20217018535 A KR20217018535 A KR 20217018535A KR 20220002242 A KR20220002242 A KR 20220002242A
Authority
KR
South Korea
Prior art keywords
page data
memory
cluster
stored
hot
Prior art date
Application number
KR1020217018535A
Other languages
English (en)
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 엘지전자 주식회사
Publication of KR20220002242A publication Critical patent/KR20220002242A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

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임계점보다 작으면 핫 클러스터로 지정하는 것을 특징으로 하는 부팅 프로세스를 수행하는 디지털 디바이스.
KR1020217018535A 2019-05-29 2019-05-29 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법 KR20220002242A (ko)

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
KR20220002242A true KR20220002242A (ko) 2022-01-06

Family

ID=73552863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217018535A KR20220002242A (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)

Family Cites Families (9)

* 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 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体
JP5313600B2 (ja) * 2008-09-16 2013-10-09 株式会社日立製作所 ストレージシステム、及びストレージシステムの運用方法
KR101257691B1 (ko) * 2011-08-12 2013-04-24 아주대학교산학협력단 메모리 컨트롤러 및 이의 데이터 관리방법
US9589008B2 (en) * 2013-01-10 2017-03-07 Pure Storage, Inc. Deduplication of volume regions
JP2014170430A (ja) * 2013-03-04 2014-09-18 Nec Corp メモリ管理方法、データ要素回収方法とデータ要素回収プログラム、情報処理装置およびその制御方法と制御プログラム
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 华为技术有限公司 基于重复数据删除的远程复制方法及装置
JP6561765B2 (ja) * 2015-10-23 2019-08-21 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
US9343153B2 (en) De-duplication in flash memory module
US8397017B2 (en) Controller and data storage device
US8375191B2 (en) Non-volatile memory, page dynamic allocation apparatus and page mapping apparatus therefor, and page dynamic allocation method and page mapping method therefor
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
US20120005557A1 (en) Virtual copy and virtual write of data in a storage device
US20150349805A1 (en) Method of Handling Error Correcting Code in Non-volatile Memory and Non-volatile Storage Device Using the Same
KR20140072639A (ko) 버퍼 운영 방법 및 그에 따른 반도체 저장 장치
CN108027764B (zh) 可转换的叶的存储器映射
CN107402719B (zh) 可用于数据储存装置的数据储存方法与数据回复方法、以及采用这些方法的数据储存装置
WO2017123776A1 (en) System and method of write amplification factor mitigation and flash lifespan extension
US20130091322A1 (en) Electronic System and Memory Managing Method Thereof
US20140219041A1 (en) Storage device and data processing method thereof
US20120159046A1 (en) Memory system
CN105868046B (zh) 存储装置中管理、写入及加载固件代码的方法
US20110264848A1 (en) Data recording device
KR20220002242A (ko) 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법
CN107077420B9 (zh) 覆盖擦除块映射
US20220365677A1 (en) Storage management device, storage management method, and program
US20210191851A1 (en) System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive
CN112433959A (zh) 实现数据存储处理的方法、装置、计算机存储介质及终端
US20100037004A1 (en) Storage system for backup data of flash memory and method for the same
JP7435470B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2014115927A (ja) プログラム更新装置、方法、プログラム、及び記憶媒体
US11809314B2 (en) Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management
CN116627350A (zh) 固态硬盘的固件配置数据管理方法及相关装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal