KR20140091818A - 부팅 장치 및 방법 - Google Patents

부팅 장치 및 방법 Download PDF

Info

Publication number
KR20140091818A
KR20140091818A KR1020130003627A KR20130003627A KR20140091818A KR 20140091818 A KR20140091818 A KR 20140091818A KR 1020130003627 A KR1020130003627 A KR 1020130003627A KR 20130003627 A KR20130003627 A KR 20130003627A KR 20140091818 A KR20140091818 A KR 20140091818A
Authority
KR
South Korea
Prior art keywords
snapshot image
decompressing
initialization
loaded
loading
Prior art date
Application number
KR1020130003627A
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 삼성전자주식회사
Priority to KR1020130003627A priority Critical patent/KR20140091818A/ko
Priority to US14/151,238 priority patent/US9594569B2/en
Priority to PCT/KR2014/000300 priority patent/WO2014109590A1/en
Priority to CN201410012561.3A priority patent/CN103927196A/zh
Priority to EP14150711.1A priority patent/EP2755130A1/en
Publication of KR20140091818A publication Critical patent/KR20140091818A/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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 부팅 시간을 단축한 부팅 장치 및 방법에 관한 것으로, 본 발명의 일 실시 예에 따른 부팅 방법은, 비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 단계; 디바이스의 초기화를 설정하는 단계; 상기 디바이스가 초기화되는 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계; 및 상기 로딩된 스냅샷 이미지를 압축 해제하는 동안 상기 비휘발성 메모리로부터 다른 스냅샷 이미지를 로딩하는 단계를 포함할 수 있다. 본 발명의 일 실시 예에 따르면, 스냅샷 이미지 로딩, 스냅샷 이미지의 압축 해제 및 디바이스의 초기화가 병렬적으로 이루어짐으로써 부팅 시간을 단축시킬 수 있다.

Description

부팅 장치 및 방법{APPARATUS AND METHOD FOR BOOTING}
본 발명은 부팅 시간을 단축한 부팅 장치 및 방법에 관한 것이다.
사용자의 다양한 요구를 반영하기 위해서 임베디드 기기의 성능이 높아짐에 따라, 운영체제(Operating System) 역시 다양한 기능을 지원하게 되면서 운영체제의 크기가 늘어나게 되었다.
이에 따라 운영체제의 커널 사이즈 및 소프트웨어 플랫폼의 크기 역시 커지고 있는 실정이다. 큰 커널 사이즈 및 소프트웨어 플랫폼은 부팅 시간의 증가를 야기할 수 있다. 커널 사이즈 및 소프트웨어 플랫폼의 크기가 커질수록 초기화 루틴과 파일 로딩이 많아지기 때문이다. 이로 인해 사용자가 시스템을 사용하기까지 오랜 시간 기다리게 됨으로써 불편함이 생길 수 있고, 오랜 부팅 시간은 시스템을 정말로 사용해야 하는 시기를 놓칠 수 있는 문제점이 있다.
느린 시스템 부팅을 해결하기 위한 방법으로 리눅스 커널(Linux Kernel)에서 제공하는 스냅샷 부팅 방법인 커널 하이버네이션(Kernel Hibernation)이 제안되고 있다. 커널 하이버네이션 방법에 의하면, 종료 시점에서의 RAM의 상태 및 CPU, 디바이스의 상태 정보를 디스크나 플래시 메모리 등의 비휘발성 저장 장치에 저장하고 종료한다. 그리고 다음 부팅 때에는 커널이 일반적인 초기화 과정을 수행하고 나서 저장된 상태 정보를 휘발성 저장 장치로 로딩하여 복원함으로써 빠른 부팅이 이루어지도록 한다. 이때 저장되는 상태 정보는 스냅샷 이미지(snapshot image)로 불리기도 한다. 이때, 커널 하이버네이션은 커널 초기화, 스냅샷 이미지 복원, 그리고 디바이스들의 상태 복원에 불필요한 과정들이 포함되어 있을 수 있다.
이러한 불필요한 과정들을 제거하여 고속 부팅을 할 수 있도록 부트로더에서 스냅샷 이미지를 복원하고 그 후에 디바이스들의 상태를 복원하고 프로세서를 깨우는 방식인 부트로더 스냅샷 부팅(Boot loader Snapshot Booting) 방법이 제안되고 있다. 이때 스냅샷 이미지를 저장하고 복원할 때에는 필요에 따라 이미지 압축과 압축 해제를 수행하게 된다.
도 1은 종래 부트로더 스냅샷 부팅의 흐름도이다. 도 1을 참고하면, 스냅샷 이미지를 부트로더에서 비휘발성 저장 장치에서 휘발성 저장 장치로 로딩하고(10), 필요한 경우 스냅샷 이미지의 압축 해제를 수행하고(20), 또한 디바이스들의 상태를 복원하고 프로세스를 깨우는 과정(30)이 순차적으로 수행된다. 따라서 각각의 과정의 수행 시간이 부팅 시간에 포함되어 그만큼 부팅 시간이 늘어날 수 밖에 없다.
본 발명은 전술한 필요성을 충족하기 위해 제안되는 것으로서, 부트로더에서 스냅샷 부팅 시 순차적으로 수행되는 일련의 과정을 병렬적으로 수행하여 부팅 시간을 단축하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위해 본 발명의 일 실시예에 따른 부팅 방법은, 비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 단계; 디바이스의 초기화를 설정하는 단계; 상기 디바이스가 초기화되는 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계; 및 상기 로딩된 스냅샷 이미지를 압축 해제하는 동안 상기 비휘발성 메모리로부터 다른 스냅샷 이미지를 로딩하는 단계를 포함할 수 있다.
또한, 상기 본 발명의 일 실시예에 따른 부팅 장치(Apparatus)는 비휘발성 메모리; 상기 비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 메모리 로딩부; 및 디바이스의 초기화를 설정하고, 상기 디바이스가 초기화하는 동안 상기 로딩된 스냅샷 이미지를 압축해제하는 제어부를 포함할 수 있다. 상기 메모리 로딩부는 상기 로딩된 스냅샷 이미지를 압축 해제하는 동안 상기 비휘발성 메모리로부터 다른 스냅샷 이미지를 로딩할 수 있다.
본 발명의 일 실시예에 따른 부팅 장치 및 부팅 방법은 스냅샷 이미지 로딩, 스냅샷 이미지의 압축 해제 및 디바이스의 초기화가 병렬적으로 이루어짐으로써 부팅 시간을 단축시킬 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 종래 부트로더 스냅샷 부팅의 흐름도이다.
도 2는 본 발명의 일 실시예와 관련된 부팅 장치의 블록 구성도(block diagram)이다.
도 3은 본 발명의 일 실시예에 따른 부팅 장치에서 부팅이 수행되는 과정을 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 부팅 장치에서 부팅이 수행되는 과정을 개략적으로 나타낸 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 부팅 장치의 제어부의 동작을 나타낸 흐름도이다.
이하, 본 발명과 관련된 부팅 방법 및 부팅 장치에 대하여 도면을 참조하여 보다 상세하게 설명한다.
본 명세서에서 설명되는 부팅 장치 또는 부팅 방법은 예를 들면 전원을 켰을 때 부팅을 필요로 하는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 넷북(netbook), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 디지털 TV, 데스크탑 컴퓨터, 캠코더(Camcorder), 디지털 카메라, MP3 플레이어 등의 각종 단말에 적용될 수 있으며, 이에 한정되는 것은 아니다.
도 2는 본 발명의 일 실시예와 관련된 부팅 장치(100)의 블록 구성도(block diagram)이다.
도 2를 참고하면, 상기 부팅 장치(100)는 제어부(110), 비휘발성 메모리(120), 휘발성 메모리(130) 및 메모리 로딩부(140)를 포함할 수 있다. 도 2에 도시된 구성요소들이 필수적인 것은 아니어서, 그보다 많은 구성요소들을 갖거나 그보다 적은 구성요소들을 갖는 부팅 장치가 구현될 수도 있다.
이하, 상기 구성요소들에 대해 구체적으로 살펴본다.
실시예에 따른 부팅 장치(100)의 비휘발성 메모리(120)에는 스냅샷 이미지(snapshot image)가 저장될 수 있다. 이때, 상기 스냅샷 이미지는 예를 들면 수행 중이던 프로세서들이 정지되는 시점에서의 프로세서, 각종 메모리 자료들, 레지스터 값들 및 입/출력 장치 등의 상태 정보 중 적어도 일부를 포함할 수 있다. 또한, 상기 스냅샷 이미지는 다수의 블록들로 분할되고 압축되어 저장될 수 있다.
상기 비휘발성 메모리(120)는 전원 공급이 중단되어도 정보를 저장할 수 있어서 데이터를 장기적으로 저장할 수 있는 저장매체로, NAND flash, NOR flash, HDD, SDD, 혹은 기타 이와 유사한 성질을 갖는 저장 장치 중 적어도 하나를 포함한다. 상기 비휘발성 메모리(120)에는 상기 제어부(110)의 처리 및 제어를 위한 프로그램이 저장될 수도 있다. 또한 상기 비휘발성 메모리(120)에는 본 발명에 따라 부팅을 위한 부트로더 영역이 따로 마련되어 있을 수 있다.
상기 부팅 장치(100)의 부팅이 이루어지는 경우 상기 비휘발성 메모리(120)에 저장된 스냅샷 이미지는 휘발성 메모리(130)로 로딩될 수 있다. 상기 휘발성 메모리(130)는 전원이 차단되는 경우 저장된 데이터가 삭제되는 메모리로서, 데이터의 처리 속도가 상기 비휘발성 메모리(120)에 비해 빠르다. 때문에 상기 휘발성 메모리(130)에 스냅샷 이미지가 로딩되는 경우 상기 부팅 장치(100)에서 빠른 부팅이 수행되도록 하는 것이 가능하다. 예를 들면 상기 휘발성 메모리(130)는 램(Random Access Memory, RAM), SRAM(Static Random Access Memory) 등일 수 있으나, 이에 한정되는 것은 아니다.
메모리 로딩부(140)는 부팅 장치(100)의 부팅이 이루어지는 경우, 상기 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 로딩한다. 이때 상기 로딩된 스냅샷 이미지는 휘발성 메모리(130)에 저장될 수 있다.
본 발명의 특정 실시예에 따르면 상기 메모리 로딩부(140)는 DMA(Direct Memory Access)(145)를 포함할 수 있다. DMA(145)는 상기 비휘발성 메모리(120)와 휘발성 메모리(130) 간의 데이터 전송을 제어부(110)의 도움 없이 제어할 수 있다. 이 경우, 제어부(110)는 부팅이 시작될 때 상기 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 상기 휘발성 메모리(130)로 로딩되도록 제어하는 신호를 상기 DMA(145)에 설정하는 신호를 먼저 발생할 수 있다. 상기 DMA 설정 신호는 상기 비휘발성 메모리(120)에 저장된 스냅샷 이미지가 다수의 블록으로 분할되어 저장된 경우에 어느 스냅샷 이미지 블록을 먼저 로딩할 것인지를 지시하는 내용이 포함되어 있을 수 있다. 상기 DMA(145)는 상기 제어부(110)로부터 수신한 DMA 설정 신호에 따라 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 제어부(110)의 관여 없이 휘발성 메모리(130)로 로딩하여 부팅이 이루어지도록 할 수 있다.
제어부(controller)(110)는 통상적으로 상기 부팅 장치(100)의 전반적인 동작을 제어한다. 예를 들면, 상기 제어부(110)는 수행 중이던 프로세서들이 정지되는 시점에서의 스냅샷 이미지를 비휘발성 메모리(120)로 저장하도록 제어할 수 있다. 그 후 부팅이 이루어지는 경우, 상기 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 이용하여 레지스터 값, 각종 메모리 자료 등을 복원하여 빠른 부팅이 이루어지도록 상기 부팅 장치(100)를 제어할 수 있다.
이 경우, 상기 제어부(110)는 부팅에 필요한 디바이스들(150)의 초기화를 설정할 수 있다. 즉, 부팅 과정에 필요한 디바이스의 초기화가 이루어지도록 관련 디바이스의 초기화 값을 설정하여 순차적으로 각각의 디바이스에 전달할 수 있다. 상기 제어부(110)는 관련 디바이스의 초기화가 이루어지도록 설정된 디바이스의 초기화 값을 디바이스에 전송하고 디바이스의 초기화가 완료되기까지 대기 시간을 갖는다.
상기 디바이스는 예를 들면 CPU cache, IRQ, 타이머(timer), ACD, PWM, GPIO, SPI, I2C, NAND, SDIO, USB, hsmmc, key, LCD controller, frame buffer, pp_core(pre-processor core), pp_ssif(pre-processor sensor interface), 카메라 센서(camera sensor), EP(enhanced processor), JPEG, BE(bayer engine), IPCm, IPCs, audio, lens 등이 될 수 있으며, 이에 한정되는 것은 아니다.
상기 제어부(110)는 상기 디바이스의 초기화가 진행되는 동안에, 상기 비휘발성 메모리(120)로부터 로딩된 스냅샷 이미지가 압축된 경우 상기 압축된 스냅샷 이미지의 압축을 해제할 수 있다. 즉, 상기 디바이스의 초기화와 상기 스냅샷 이미지의 압축 해제가 병렬로 함께 이루어질 수 있다.
또한, 상기 로딩된 스냅샷 이미지의 압축을 해제하는 동안에, 상기 비휘발성 메모리(120)로부터 상기 압축 해제되는 스냅샷 이미지와는 다른 스냅샷 이미지가 상기 메모리 로딩부(140)에 의해 휘발성 메모리(130)로 로딩이 이루어질 수 있다. 즉, 상기 제어부(110)에 의한 상기 스냅샷 이미지의 압축 해제와, 메모리 로딩부(140)에 의한 상기 압축 해제되는 스냅샷 이미지와 다른 스냅샷 이미지의 로딩이 동시에 병렬적으로 이루어질 수 있다.
결국, 실시예에 따른 부팅 장치(100)에서는 제어부(110)에서 디바이스(150)의 초기화 설정이 이루어진 이후에, 디바이스(150)의 초기화가 진행되는 제어부(110)의 대기 시간 동안에, 제어부(110)는 휘발성 메모리(130)에 로딩되어 저장된 스냅샷 이미지의 압축을 해제하는 작업을 수행하고, 메모리 로딩부(140)에서는 동시에 비휘발성 메모리(120)로부터 휘발성 메모리(130)로 상기 압축 해제되는 스냅샷 이미지와 다른 스냅샷 이미지를 로딩하는 작업을 병렬로 수행하게 된다. 때문에, 디바이스의 초기화, 스냅샷 이미지 압축 해제, 스냅샷 이미지 로딩이 병렬로 수행됨으로써 실시예에 따른 부팅 장치(100)에서는 빠른 부팅이 수행될 수 있다.
이때, 상기 메모리 로딩부(140)가 비휘발성 메모리(120)로부터 스냅샷 이미지를 로딩하는 과정과 디바이스(150)의 초기화를 설정하는 과정, 디바이스(150)의 초기화 동안 상기 로딩된 스냅샷 이미지의 압축을 해제하는 과정 및 상기 로딩된 스냅샷 이미지의 압축을 해제하는 동안 상기 비휘발성 메모리(120)로부터 다른 스냅샷 이미지를 로딩하는 과정은 부트로더에서 수행될 수 있다. 상기 과정들이 부트로더에서 수행됨으로써, 더욱 빠른 부팅이 수행될 수 있다.
이상에서는 본 발명의 일 실시예에 따른 부팅 장치(100)의 구성요소들에 대하여 개략적으로 살펴보았다.
이하에서는 본 발명에 따른 부팅 장치(100)에서 부팅이 이루어지는 과정에 대해서 도 3 내지 도 5를 참고하여 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 부팅 장치에서 부팅이 수행되는 과정을 나타낸 흐름도이다.
도 3을 참고하면, 단계 301에서 제어부(110)는 먼저 DMA 설정을 할 수 있다. DMA 설정 신호는 DMA(145)가 제어부(110)의 제어 없이도 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 로딩할 수 있도록 하기 위한 제어 신호이다. 단계 315에서 상기 설정된 DMA 설정 신호는 DMA(145)로 전송될 수 있다.
단계 320에서 상기 DMA(145)는 상기 DMA 설정 신호에 따라 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 휘발성 메모리(130)로 로딩되도록 할 수 있다. 이때, 상기 DMA 설정 신호는 상기 비휘발성 메모리(120)에 저장된 스냅샷 이미지가 다수의 블록으로 분할되어 저장된 경우에 어느 스냅샷 이미지 블록을 먼저 로딩할 것인지를 지시하는 내용을 포함할 수 있다. 상기 DMA(145)는 상기 제어부(110)로부터 수신한 DMA 설정 신호에 따라 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 제어부(110)의 관여 없이 휘발성 메모리(130)로 로딩하여 저장할 수 있다.
도 3을 참조하여 설명하는 실시예에서는 비휘발성 메모리(120)로부터 스냅샷 이미지를 로딩할 수 있는 메모리 로딩부(140)의 일 예로서 DMA(145)를 설명하나, 이에 한정되는 것은 아니다.
단계 330에서 상기 제어부(110)는 상기 DMA 설정 신호를 DMA(145)로 전송한 후에, 제 1 디바이스(151)의 초기화 설정을 한다. 단계 335에서 상기 제어부(110)는 관련 제1 디바이스 (151)의 초기화가 이루어지도록 설정된 제1 디바이스(151)의 초기화 값을 제1 디바이스 (151)에 전송하고, 제1 디바이스(151)의 초기화가 완료되기까지 대기 시간을 갖는다.
상기 제1 디바이스(151)의 초기화를 설정하는 과정의 대기 시간 동안, DMA(145)에 의해 로딩된 스냅샷 이미지 중, 압축이 되어 있어 압축 해제가 필요한 스냅샷 이미지 블록이 존재하는 경우 단계 350에서 상기 제어부(110)는 상기 압축된 스냅샷 이미지 블록의 압축을 해제할 수 있다.
이때, 상기 제1 디바이스(151)의 초기화가 완료되기까지의 제어부(110)의 대기 시간의 시작 시점(341)과 대기 시간의 종료 시점(343)이 있을 수 있다. 상기 제어부(110)에 의한 상기 로딩된 스냅샷 이미지 블록의 압축 해제는 상기 대기 시간의 시작 시점(341)과 종료 시점(343) 사이에 이루어질 수 있다. 즉, 상기 대기 시간이 시작되면 상기 로딩된 스냅샷 이미지 블록의 압축 해제를 시작할 수 있다. 또한, 상기 대기 시간이 만료되면 상기 로딩된 스냅샷 이미지의 압축 해제를 중단할 수 있다.
또한, 도시되지 않았지만 실시예에 따라 상기 제1 디바이스(151)의 초기화가 완료된 이후라도 압축 해제가 진행되고 있던 상기 로딩된 스냅샷 이미지 블록의 압축 해제가 완료되지 않은 경우, 상기 스냅샷 이미지의 압축 해제를 중단하지 않고 압축 해제를 계속하여 수행할 수도 있다.
이때, DMA(145)는 상기 제어부(110)에 의해 압축 해제되는 스냅샷 이미지와 다른 스냅샷 이미지를 비휘발성 메모리(120)로부터 로딩할 수 있다.
즉, 실시예에 따른 부팅 방법은 DMA(145)에 의한 스냅샷 이미지의 로딩(320)과 제1 디바이스의 초기화(340) 및 스냅샷 이미지 압축 해제(350)가 병렬적으로 수행될 수 있어, 부팅 시간이 줄어들어 빠른 부팅이 이루어질 수 있다.
또한 하나의 디바이스에 대한 초기화가 진행되는 중에 상기 대기 시간은 여러 번 있을 수 있다. 예를 들면, 단계 340에서 상기 제1 디바이스에 대한 초기화는 제1 디바이스의 일정 영역에 대한 초기화가 진행된 후 상기 제1 디바이스에 대한 초기화가 중단되고 제어부(110)의 디바이스 초기화 설정 명령이 입력되면 다시 제1 디바이스의 나머지 영역에 대한 초기화가 진행될 수 있다.
단계 340에서 제1 디바이스(151)의 초기화가 완료된 경우, 단계 360에서 상기 제어부(110)는 부팅 시 초기화가 필요한 다음 제2 디바이스(152)의 초기화 설정을 할 수 있다. 이렇게 설정된 초기화 신호는 단계 365에서 다음 제2 디바이스(152)에 전송되고, 단계 370에서 제2 디바이스(152)의 초기화가 진행된다.
상기 제어부(110)는 단계 365로 제2 디바이스(152)의 초기화 설정 신호를 제2 디바이스(152)에 전송한 후, 단계 380에서 제2 디바이스(152)의 초기화가 이루어지는 동안의 대기 시간 동안 로딩된 스냅샷 이미지의 압축 해제를 할 수 있다. 전술한 바와 같이 상기 로딩된 스냅샷 이미지의 압축 해제는 상기 대기 시간의 시작 시점(371)과 만료 시점(373) 사이에 이루어질 수 있다. 예를 들면 상기 대기 시간이 시작되면 상기 DMA(145)에 의해 로딩된 스냅샷 이미지 블록의 압축 해제를 시작할 수 있고, 상기 대기 시간이 만료되면 상기 로딩된 스냅샷 이미지의 압축 해제를 중단할 수 있다. 또한 전술한 바와 같이 이전 대기 시간의 시작 시점(341)부터 만료 시점(343) 사이, 예를 들면 단계 350에서 압축 해제가 진행 중이던 스냅샷 이미지 블록의 압축해제가 제1 디바이스(151)의 초기화가 완료되어 대기 시간의 만료로 압축 해제가 중단되어 있을 수 있다. 이 경우, 제어부(110)는 상기 제2 디바이스(152)의 초기화로 인한 대기 시간의 시작 시점(371)에서 이전 대기 시간에서 압축 해제가 중단된 스냅샷 이미지 블록의 압축 해제를 재개할 수 있다. 도시되지 않았지만 대기 시간의 만료 시점(373) 이후라도 압축 해제를 진행하던 스냅샷 이미지의 압축 해제가 완료되지 않은 경우 계속해서 압축 해제를 수행할 수도 있다.
이후, 초기화가 필요한 디바이스가 더 필요한 경우 제어부는 다음 디바이스에 대한 초기화 설정을 하고, 디바이스의 초기화 동안 스냅샷 이미지의 압축 해제를 동일한 절차로 수행할 수 있다.
한편, 전술한 부팅 방법은 부트로더에서 수행될 수 있고 이 경우 더욱 빠른 부팅이 이루어질 수 있다.
도 4는 본 발명의 일 실시예에 따른 부팅 장치에서 부팅이 수행되는 과정을 개략적으로 나타낸 흐름도이다.
도 4를 참고하면, 단계 410에서 제어부(1100)는 DMA(145)로 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 로딩하여 휘발성 메모리(130)로 로딩하도록 지시하는 신호를 생성한다. 단계 420에서 DMA(145)는 상기 생성된 DMA 신호를 수신하여 스냅샷 이미지를 휘발성 메모리(130)로 로딩하여 저장한다.
또한, 단계 430에서 제어부(110)는 DMA(145)에게 스냅샷 이미지의 로딩을 지시하고, 컴퓨터 시스템의 부팅에 필요한 디바이스들(150)의 초기화를 설정한다. 설정된 디바이스의 초기화 신호는 디바이스에 전송되어 단계 435에서 순차로 디바이스의 초기화가 진행된다. 이때, 디바이스의 초기화가 진행되는 동안에 제어부(110)에는 대기 시간이 존재하게 되는데, 이 대기 시간 동안 상기 제어부(110)는 상기 DMA(145)에 의해 휘발성 메모리(130)로 로딩된 스냅샷 이미지의 압축 해제를 수행할 수 있다.
이때, 상기 제어부(110)에 의해 스냅샷 이미지의 압축 해제가 되는 동안 상기 DMA(145)는 비휘발성 메모리(120)로부터 상기 압축 해제되는 스냅샷 이미지와 다른 스냅샷 이미지를 로딩할 수 있다.
초기화가 진행 중이던 디바이스의 초기화가 완료된 경우, 상기 제어부(110)는 스냅샷 이미지의 압축 해제를 중단할 수 있다. 또는 상기 제어부(110)는 디바이스의 초기화가 완료된 이후라도 현재 압축 해제 중이던 스냅샷 이미지의 압축 해제를 계속해서 진행할 수도 있다.
스냅샷 이미지의 압축 해제 중단 또는 완료 후에, 제어부(110)는 다음 디바이스의 초기화를 설정할 수 있다. 설정된 디바이스의 초기화 신호는 관련된 디바이스에 전송되어 디바이스의 초기화가 진행된다. 상기 제어부(110)는 상기 다음 디바이스에 대한 초기화를 지시한 후, 디바이스의 초기화가 완료되기까지의 대기 시간 동안 스냅샷 이미지의 압축 해제를 수행할 수 있다. 상기 스냅샷 이미지의 압축 해제는 이전 시점에 압축 해제가 중단된 스냅샷 이미지의 압축 해제가 재개될 수도 있고, 압축 해제가 중단된 스냅샷 이미지가 없는 경우 새로운 스냅샷 이미지의 압축 해제를 수행할 수도 있다.
이후, 초기화가 진행 중인 디바이스의 초기화가 완료된 경우, 상기 제어부(110)는 그 다음 디바이스의 압축 해제를 수행하고 스냅샷 이미지의 압축을 해제하는 프로세스를 전술한 과정과 유사하게 수행할 수 있다.
도 5는 본 발명의 일 실시예에 따른 부팅 장치의 제어부의 동작을 나타낸 흐름도이다.
도 5를 참고하면, 단계 510에서 제어부(110)는 비휘발성 메모리(120)에 저장된 스냅샷 이미지를 로딩하여 휘발성 메모리(130)로 로딩하도록 DMA(145)에 지시한다.
다음으로, 단계 420에서 제어부(110)는 부팅에 필요한 디바이스(150)에 대하여 초기화 설정을 한다. 상기 설정된 디바이스의 초기화 신호는 디바이스에 전송되고, 단계 530에서 제어부(110)는 디바이스의 초기화가 진행되는 동안의 대기 시간이 시작되는지 여부를 판단할 수 있다.
상기 대기 시간이 시작되는 것으로 판단된 경우, 단계 540에서 제어부(110)는 DMA(145)에 의해 로딩된 스냅샷 이미지 중 압축 해제 가능한 스냅샷 이미지 블록이 존재하는지 여부를 판단할 수 있다. 압축 해제 가능한 스냅샷 이미지 블록이 존재하는 경우 단계 550에서 상기 제어부(110)는 압축 해제를 진행하고, 압축 해제가 완료되면 단계 560에서 상기 대기 시간이 종료되었는지 여부를 판단할 수 있다. 단계 540에서 상기 압축 해제 가능한 스냅샷 이미지 블록이 존재하지 않는 것으로 판단된 경우, 단계 560에서 제어부(110)는 상기 대기 시간이 종료되었는지 여부를 판단하여 다른 스냅샷 이미지 블록의 압축을 해제할 것인지 압축 해제를 종료할 것인지 결정할 수 있다.
상기 대기 시간이 종료되지 않은 것으로 판단된 경우, 단계 540에서 제어부(110)는 다른 압축 해제 가능한 스냅샷 이미지 블록이 존재하는지 여부를 판단하여, 단계 550을 따라 스냅샷 이미지의 압축 해제를 진행할 수 있다.
상기 대기 시간이 종료된 것으로 판단된 경우, 단계 570에서 상기 제어부(110)는 모든 디바이스의 초기화 설정이 완료되었는지 여부를 판단할 수 있다. 모든 디바이스의 초기화 설정이 완료되지 않은 경우, 단계 520에서 제어부(110)는 초기화 설정이 되지 않은 디바이스의 초기화를 설정한다. 이후 단계 530 내지 570을 상술한 바와 동일하게 수행할 수 있다.
모든 디바이스의 초기화가 완료된 것으로 판단된 경우, 단계 580에서 상기 제어부(110)는 로딩된 스냅샷 이미지 블록 중 압축 해제 가능한 블록이 존재하는지 여부를 판단할 수 있다. 즉, 압축 해제가 완료되지 않은 스냅샷 이미지 블록이 존재하는 경우 제어부(110)는 그 스냅샷 이미지 블록의 압축 해제를 진행할 수 있다.
압축 해제 가능한 스냅샷 이미지 블록이 존재하는 경우, 단계 590에서 상기 제어부(110)는 스냅샷 이미지 블록의 압축 해제를 수행할 수 있다.
반면, 압축 해제 가능한 스냅샷 이미지 블록이 존재하지 않는 경우, 단계 595에서 상기 제어부(110)는 DMA(145)의 동작이 완료되었는지 확인할 수 있다. 즉, 상기 DMA(145)에 의해 비휘발성 메모리(120)에 저장된 스냅샷 이미지의 로딩이 모두 완료되었는지 여부를 확인할 수 있다. 실시예에 따라 상기 DMA(145)는 상기 스냅샷 이미지의 로딩이 모두 완료된 경우에 스냅샷 이미지의 로딩이 모두 완료되었음을 제어부(110)에 통보할 수 있다. 제어부(110)는 DMA(145)로부터 상기 스냅샷 이미지 로딩이 완료되었음을 통보 받은 경우 DMA(145)의 동작이 완료되었음을 확인할 수 있다.
상기 DMA(145)의 스냅샷 이미지 로딩이 완료되지 않은 것으로 판단된 경우, 단계 580에서 상기 제어부(110)는 추가로 로딩되는 스냅샷 이미지 블록에 대하여 압축 해제 가능한지 여부를 확인하여, 압축 해제 가능한 스냅샷 이미지 블록의 압축 해제를 수행할 수 있다(590).
단계 595에서 상기 DMA(145)의 스냅샷 이미지 로딩이 완료된 것으로 판단된 경우, 상기 제어부(110)는 부팅 장치(100)의 부팅이 완료되어 부팅 절차를 종료할 수 있다.
또한, 본 발명의 일실시예에 의하면, 전술한 방법은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한, 상기 컴퓨터는, 부팅 장치의 제어부(110)를 포함할 수도 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100: 부팅 장치 110: 제어부
120: 비휘발성 메모리 130: 휘발성 메모리
140: 메모리 로딩부 145: DMA
150: 디바이스

Claims (15)

  1. 부팅 방법에 있어서,
    비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 단계;
    디바이스의 초기화를 설정하는 단계;
    상기 디바이스가 초기화되는 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계; 및
    상기 로딩된 스냅샷 이미지를 압축 해제하는 동안 상기 비휘발성 메모리로부터 다른 스냅샷 이미지를 로딩하는 단계를 포함하는 부팅 방법.
  2. 제1 항에 있어서,
    상기 디바이스가 초기화하는 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계는,
    상기 디바이스의 초기화를 설정하는 과정의 대기 시간동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계를 포함하는 부팅 방법.
  3. 제2 항에 있어서,
    상기 디바이스의 초기화를 설정하는 과정의 대기 시간동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계는,
    상기 대기시간이 시작되면 상기 로딩된 스냅샷 이미지의 압축 해제를 재개하는 단계를 포함하는 부팅 방법.
  4. 제3 항에 있어서,
    상기 디바이스의 초기화를 설정하는 과정의 대기 시간동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계는,
    상기 대기시간이 만료되면 상기 로딩된 스냅샷 이미지의 압축 해제를 중단하는 단계를 더 포함하는 부팅 방법.
  5. 제4 항에 있어서,
    상기 디바이스의 초기화가 완료된 이후, 상기 스냅샷 이미지의 압축 해제가 완료되지 않으면, 상기 스냅샷 이미지의 압축 해제를 수행하는 단계를 더 포함하는 부팅 방법.
  6. 제1 항에 있어서,
    비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 단계;
    디바이스의 초기화를 설정하는 단계;
    상기 디바이스가 초기화하는 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계; 및
    상기 로딩된 스냅샷 이미지를 압축 해제하는 동안 상기 비휘발성 메모리로부터 다른 스냅샷 이미지를 로딩하는 단계는 부트로더에서 수행되는 것을 특징으로 하는 부팅 방법.
  7. 제1 항에 있어서,
    비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 단계는,
    DMA가 비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 단계를 포함하는 부팅 방법.
  8. 부팅 장치에 있어서,
    비휘발성 메모리;
    상기 비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 메모리 로딩부; 및
    디바이스의 초기화를 설정하고, 상기 디바이스가 초기화하는 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 제어부를 포함하고,
    상기 메모리 로딩부는 상기 로딩된 스냅샷 이미지를 압축 해제하는 동안 상기 비휘발성 메모리로부터 다른 스냅샷 이미지를 로딩하는 것을 특징으로 하는 부팅 장치.
  9. 제8 항에 있어서,
    상기 제어부는
    상기 디바이스의 초기화를 설정하는 과정의 대기 시간동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 것을 특징으로 하는 부팅 장치.
  10. 제9 항에 있어서,
    상기 디바이스의 초기화를 설정하는 과정의 대기 시간 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 것은,
    상기 대기시간이 시작되면 상기 로딩된 스냅샷 이미지의 압축 해제를 재개하는 것을 특징으로 하는 부팅 장치.
  11. 제10 항에 있어서,
    상기 디바이스의 초기화를 설정하는 과정의 대기 시간동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 것은,
    상기 대기시간이 만료되면 상기 로딩된 스냅샷 이미지의 압축 해제를 중단하는 것을 특징으로 하는 부팅 장치.
  12. 제11 항에 있어서,
    상기 제어부는
    상기 디바이스의 초기화가 완료된 이후, 상기 스냅샷 이미지의 압축 해제가 완료되지 않으면, 상기 스냅샷 이미지의 압축 해제를 수행하는 것을 특징으로 하는 부팅 장치.
  13. 제8 항에 있어서,
    상기 메모리 로딩부가 비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 과정과 상기 로딩된 스냅샷 이미지를 압축 해제하는 동안 상기 비휘발성 메모리로부터 다른 스냅샷 이미지를 로딩하는 과정 및 상기 제어부가 디바이스의 초기화를 설정하고, 상기 디바이스가 초기화하는 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 과정은 부트로더에서 수행되는 것을 특징으로 하는 부팅 장치.
  14. 제8 항에 있어서,
    상기 메모리 로딩부는 DMA인 것을 특징으로 하는 부팅 장치.
  15. 부팅 방법을 수행하도록 설정된 프로그램을 저장하는 저장매체에 있어서,
    상기 프로그램은
    비휘발성 메모리로부터 스냅샷 이미지를 로딩하는 단계;
    디바이스의 초기화를 설정하는 단계;
    상기 디바이스가 초기화하는 동안 상기 로딩된 스냅샷 이미지를 압축 해제하는 단계; 및
    상기 로딩된 스냅샷 이미지를 압축 해제하는 동안 상기 비휘발성 메모리로부터 다른 스냅샷 이미지를 로딩하는 단계를 수행하도록 설정되는 것을 특징으로 하는 저장매체.
KR1020130003627A 2013-01-11 2013-01-11 부팅 장치 및 방법 KR20140091818A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130003627A KR20140091818A (ko) 2013-01-11 2013-01-11 부팅 장치 및 방법
US14/151,238 US9594569B2 (en) 2013-01-11 2014-01-09 Apparatus and method for booting
PCT/KR2014/000300 WO2014109590A1 (en) 2013-01-11 2014-01-10 Apparatus and method for booting
CN201410012561.3A CN103927196A (zh) 2013-01-11 2014-01-10 用于引导的装置和方法
EP14150711.1A EP2755130A1 (en) 2013-01-11 2014-01-10 Apparatus and method for booting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130003627A KR20140091818A (ko) 2013-01-11 2013-01-11 부팅 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20140091818A true KR20140091818A (ko) 2014-07-23

Family

ID=49989498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130003627A KR20140091818A (ko) 2013-01-11 2013-01-11 부팅 장치 및 방법

Country Status (5)

Country Link
US (1) US9594569B2 (ko)
EP (1) EP2755130A1 (ko)
KR (1) KR20140091818A (ko)
CN (1) CN103927196A (ko)
WO (1) WO2014109590A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160006482A (ko) * 2014-07-09 2016-01-19 에스케이하이닉스 주식회사 반도체 장치
US10055236B2 (en) * 2015-07-02 2018-08-21 Sandisk Technologies Llc Runtime data storage and/or retrieval
US9880857B2 (en) * 2015-12-01 2018-01-30 Seagate Technology Llc System file management on a storage device
US10228966B2 (en) 2017-02-03 2019-03-12 Huawei Technologies Co., Ltd. Methods ad systems for hibernation of processes in computing devices
CN107229536A (zh) * 2017-05-27 2017-10-03 郑州云海信息技术有限公司 一种用于终端设备的启动方法和系统
CN113885949A (zh) * 2021-10-22 2022-01-04 瑞芯微电子股份有限公司 一种快速开机方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126242A1 (en) 2001-12-28 2003-07-03 Chang Albert H. Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
US20070043890A1 (en) * 2005-08-19 2007-02-22 Miller Casey L Data block transfer and decompression
US7640440B2 (en) 2006-04-25 2009-12-29 Apple Inc. Method and apparatus for facilitating device hibernation
US7861073B2 (en) 2007-01-03 2010-12-28 Apple Inc. On-chip decompression engine
CN101000551A (zh) * 2007-01-05 2007-07-18 中兴通讯股份有限公司 嵌入式单板引导模块版本加载方法
US7882341B2 (en) 2007-12-31 2011-02-01 Intel Corporation System and method to enable parallelization of early platform initialization
KR101678571B1 (ko) 2010-10-05 2016-11-22 삼성전자주식회사 컴퓨팅 시스템의 부팅방법
KR20120041582A (ko) 2010-10-21 2012-05-02 삼성전자주식회사 스냅샷 이미지 분할 처리 장치 및 스냅샷 이미지 분할 처리 방법
KR101467515B1 (ko) 2010-11-23 2014-12-01 삼성전자 주식회사 스냅샷 이미지를 이용한 부팅 장치 및 방법
JP2012243287A (ja) * 2011-05-24 2012-12-10 Sony Corp 情報処理装置および情報処理方法
JP6046978B2 (ja) * 2012-10-26 2016-12-21 キヤノン株式会社 情報処理装置およびその方法

Also Published As

Publication number Publication date
US9594569B2 (en) 2017-03-14
US20140200860A1 (en) 2014-07-17
WO2014109590A1 (en) 2014-07-17
EP2755130A1 (en) 2014-07-16
CN103927196A (zh) 2014-07-16

Similar Documents

Publication Publication Date Title
KR101467515B1 (ko) 스냅샷 이미지를 이용한 부팅 장치 및 방법
US9594569B2 (en) Apparatus and method for booting
JP5565778B2 (ja) 不揮発性メモリデバイスを利用するハイバネートまたはサスペンド方法およびシステム
US7900035B2 (en) Electronic appliance and startup method
US8825992B2 (en) Processor-implemented method for booting a computing system by simultaneously performing hardware initialization and boot image transmission
US9858086B2 (en) Load boot data
JP6399916B2 (ja) 情報処理装置およびその制御方法
US20120101996A1 (en) Apparatus and method for snapshot image segmentation
US20130179670A1 (en) Booting method of multimedia device and multimedia device
CN107408073B (zh) 使用存储器压缩来减少存储器提交开销
US20080307014A1 (en) Compressing files using a minimal amount of memory
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
US9904559B2 (en) Information processing apparatus and activation method therefor for processing data of a hibernation image
JP6080492B2 (ja) 情報処理装置、起動方法およびプログラム
KR101691656B1 (ko) 연산 수단과 그를 이용한 부팅 방법
KR20140018134A (ko) 오프 상태로부터의 운영 체제의 고속 부팅이 가능한 임베디드 시스템 및 임베디드 시스템에서의 부팅 방법
JP2005258967A (ja) データ処理装置
CN107256133B (zh) 电子设备的存储设备管理方法和电子设备
TWI479418B (zh) 多媒體裝置的啟動方法及多媒體裝置
Lo et al. Implementing Hibernation-based Fast Booting as a Device Driver
JP6080491B2 (ja) 情報処理装置、起動方法およびプログラム
KR20140073154A (ko) 스냅샷 이미지 압축을 이용한 스냅샷 이미지 처리 장치 및 방법
KR20130072926A (ko) 임베디드 시스템의 부팅 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application