KR20150110100A - Method for fast booting and computting apparatus thereof - Google Patents

Method for fast booting and computting apparatus thereof Download PDF

Info

Publication number
KR20150110100A
KR20150110100A KR1020140033983A KR20140033983A KR20150110100A KR 20150110100 A KR20150110100 A KR 20150110100A KR 1020140033983 A KR1020140033983 A KR 1020140033983A KR 20140033983 A KR20140033983 A KR 20140033983A KR 20150110100 A KR20150110100 A KR 20150110100A
Authority
KR
South Korea
Prior art keywords
kernel
data
volatile memory
nonvolatile memory
area
Prior art date
Application number
KR1020140033983A
Other languages
Korean (ko)
Other versions
KR101566612B1 (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 KR1020140033983A priority Critical patent/KR101566612B1/en
Publication of KR20150110100A publication Critical patent/KR20150110100A/en
Application granted granted Critical
Publication of KR101566612B1 publication Critical patent/KR101566612B1/en

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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention relates to a fast booting method and a computing apparatus thereof. A fast booting method according to an embodiment of the present invention, in a computing apparatus which includes a first non-volatile memory, a second non-volatile memory, and a DRAM, includes a step of receiving a booting command, a step of restoring kernel data stored in the second non-volatile memory to store the same in a kernel region of the first non-volatile memory when fast booting can be carried out, a step of deleting update data stored in the DRAM, and a step of restoring CPU data and device data stored in the second non-volatile memory and storing in a CPU and a device respectively.

Description

고속부팅 방법 및 이를 위한 컴퓨팅 장치{METHOD FOR FAST BOOTING AND COMPUTTING APPARATUS THEREOF}[0001] METHOD FOR FAST BOOTING AND COMPUTING APPARATUS THEREOF [0002]

본 발명은 고속부팅 방법 및 이를 위한 컴퓨팅 장치에 관한 것이다.The present invention relates to a fast boot method and a computing device therefor.

최근에 컴퓨터 등의 빠른 처리를 위해서 메모리에 대한 연구가 활발하게 진행되고 있다. 특히, 종래에 메인 메모리로 휘발성 메모리를 사용하였는데, 휘발성 메모리의 한계를 극복하기 위해 비휘발성 메모리의 연구가 활발하다.Recently, researches on memory have been actively conducted for fast processing of computers and the like. Particularly, although volatile memories have been used as main memories in the past, researches on nonvolatile memories have been actively conducted to overcome the limitations of volatile memories.

비휘발성 메모리는 전원의 차단에도 불구하고 데이터를 소실하지 않는 특성을 갖는 메모리이다. 이러한 비휘발성 메모리는 메모리 셀(memory cell)이 스스로 비휘발성을 띄고, 빠른 속도로 바이트 단위의 주소 접근이 가능하다.A non-volatile memory is a memory having characteristics that data is not lost in spite of interruption of power supply. Such a nonvolatile memory is a memory cell which is nonvolatile by itself, and can access addresses in bytes at a high speed.

현재의 시스템은 메인 메모리와 저장장치(스토리지)와 같은 2단계의 저장 시스템을 보유하고 있고, 시스템이 부팅할 때에는 커널과 이외의 기타 정보들을 저장장치로부터 메인 메모리로 읽어온 후, 여러 초기화 과정을 통해서 부팅이 완료된다. 따라서 부팅 시간은 최소 10초 이상의 시간을 필요로 하게 되므로 부팅 시간에 민감한 시스템에서는 되도록 부팅을 제한하고 있다. The current system has a two-level storage system such as main memory and storage (storage). When the system boots, it loads the kernel and other information from the storage device into the main memory, The booting is completed. Therefore, boot time is required to be at least 10 seconds, so boot-time-sensitive systems are restricted from booting as much as possible.

또한, 부팅 시간에 민감한 시스템은 항상 서비스를 제공해줘야 하므로 재부팅이 되도록 이루어지지 않는 것이 좋은 서버 시스템이 있고, 문자나 전화, 이외의 여러 정보를 전달받기 위하여 항상 대기 상태에 있어야 하는 스마트폰까지 현재 존재하는 모든 시스템이 부팅에는 민감한 상황이다.Also, there is a server system that is not to be rebooted because the system that is sensitive to boot time should always provide service, and there is a smart phone that should always be in standby mode in order to receive other information such as text, phone, All systems are sensitive to booting.

본 발명이 이루고자 하는 기술적인 과제는 비휘발성 메모리를 이용하여 시스템의 고속부팅을 위한 고속부팅 방법 및 이를 위한 컴퓨팅 장치에 관한 것이다.SUMMARY OF THE INVENTION The present invention is directed to a fast boot method for fast booting of a system using a nonvolatile memory and a computing device therefor.

본 발명의 제1실시예에 따른 고속부팅 방법은 제1비휘발성 메모리, 제2비휘발성 메모리, DRAM을 포함하는 컴퓨팅 장치에 있어서, 부팅 명령을 수신하는 단계, 고속부팅 수행이 가능하면, 상기 제2비휘발성 메모리에 저장된 커널 데이터를 상기 제1비휘발성 메모리의 커널영역에 복원하는 단계, 상기 DRAM에 저장된 업데이트 데이터를 삭제하는 단계, 상기 제2비휘발성 메모리에 저장된 CPU 데이터와 디바이스 데이터를 각각 CPU와 디바이스로 복원하는 단계를 포함한다. A fast boot method according to the first embodiment of the present invention is a computing device including a first nonvolatile memory, a second nonvolatile memory, and a DRAM, the method comprising: receiving a boot command; 2 restoring kernel data stored in a nonvolatile memory into a kernel area of the first nonvolatile memory, deleting update data stored in the DRAM, and transferring CPU data and device data stored in the second nonvolatile memory to a CPU And a device.

본 발명의 제2실시예에 따른 고속부팅 방법은 제1비휘발성 메모리, 제2비휘발성 메모리, DRAM을 포함하는 컴퓨팅 장치에 있어서, 부팅 명령을 수신하는 단계, 부팅 방식이 고속부팅이면, 콜드부팅이 기 수행 되었는지 확인하는 단계, 상기 콜드부팅이 기 수행 되었으면, CPU 데이터와 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되고, 상기 제1비휘발성 메모리의 읽기 전용화가 수행되었는지 확인하는 단계, 상기 CPU 데이터와 상기 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되고, 상기 제1비휘발성 메모리의 읽기 전용화가 수행되었으면, 상기 제2비휘발성 메모리에 저장된 커널 데이터를 상기 제1비휘발성 메모리의 커널영역에 복원하는 단계, 상기 DRAM에 저장된 업데이트 데이터를 삭제하는 단계, 상기 제2비휘발성 메모리에 저장된 상기 CPU 데이터와 상기 디바이스 데이터를 각각 CPU와 디바이스로 복원하는 단계를 포함한다.A fast boot method according to a second embodiment of the present invention is a computing device including a first nonvolatile memory, a second nonvolatile memory, and a DRAM, the method comprising the steps of: receiving a boot command; Determining whether read-only of the first nonvolatile memory has been performed, if the cold boot has been performed, checking whether the CPU and the device data are stored in the second nonvolatile memory, Data and the device data are stored in the second nonvolatile memory and when the read-only operation of the first nonvolatile memory is performed, the kernel data stored in the second nonvolatile memory is stored in the kernel area of the first nonvolatile memory , Deleting the update data stored in the DRAM, restoring the update data stored in the second nonvolatile memory And restoring the data and the device data to the CPU and the device, respectively.

본 발명의 제3실시예에 따른 고속부팅 방법은 제1비휘발성 메모리, 제2비휘발성 메모리, DRAM을 포함하는 컴퓨팅 장치에 있어서, 상기 제1비휘발성 메모리에 쓰기 명령을 수신하는 단계, 폴트 발생하는 단계, 상기 폴트 발생영역이 상기 커널영역이면, 상기 커널영역의 커널 원본데이터를 상기 제2비휘발성 메모리에 저장하는 단계, 상기 제1비휘발성 메모리의 커널 원본데이터 영역에 대한 읽기 전용화를 해제하는 단계, 상기 커널 원본데이터 영역에 쓰기를 수행하는 단계, 상기 폴트 발생영역이 상기 커널영역이 아니면, 상기 DRAM에 쓰기를 수행하는 단계를 포함한다. A fast boot method according to a third embodiment of the present invention is a computing device including a first non-volatile memory, a second non-volatile memory, and a DRAM, comprising: receiving a write command to the first non-volatile memory; Storing kernel source data of the kernel area in the second nonvolatile memory if the fault occurrence area is the kernel area; releasing read-only access to the kernel original data area of the first nonvolatile memory; Writing to the kernel original data area, and writing to the DRAM if the fault occurrence area is not the kernel area.

본 발명의 제1실시예에 따른 고속부팅을 위한 컴퓨팅 장치는 제1비휘발성 메모리, 제2비휘발성 메모리, DRAM, 부팅 명령을 수신하여, 고속부팅 수행이 가능하면, 상기 제2비휘발성 메모리에 저장된 커널 데이터를 상기 제1비휘발성 메모리의 커널영역에 복원하고, 상기 DRAM에 저장된 업데이트 데이터를 삭제하고, 상기 제2비휘발성 메모리에 저장된 CPU 데이터와 디바이스 데이터를 각각 CPU와 디바이스로 복원하는 것을 제어하는 제어모듈을 포함한다. The computing device for fast booting according to the first embodiment of the present invention receives a boot command from a first non-volatile memory, a second non-volatile memory, a DRAM, Volatile memory into the kernel area of the first nonvolatile memory, deletes the update data stored in the DRAM, and restores the CPU data and the device data stored in the second nonvolatile memory to the CPU and the device, respectively Lt; / RTI >

본 발명의 제2실시예에 따른 고속부팅을 위한 컴퓨팅 장치는 제1비휘발성 메모리, 제2비휘발성 메모리, DRAM, 부팅 명령을 수신하여, 부팅 방식이 고속부팅이면, 콜드부팅이 기 수행 되었는지 확인하고, 상기 콜드부팅이 기 수행 되었으면, CPU 데이터와 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되고, 상기 제1비휘발성 메모리의 읽기 전용화가 수행되었는지 확인하고, 상기 CPU 데이터와 상기 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되고, 상기 제1비휘발성 메모리의 읽기 전용화가 수행되었으면, 상기 제2비휘발성 메모리에 저장된 커널 데이터를 상기 제1비휘발성 메모리의 커널영역에 복원하고, 상기 DRAM에 저장된 업데이트 데이터를 삭제하고, 상기 제2비휘발성 메모리에 저장된 상기 CPU 데이터와 상기 디바이스 데이터를 각각 CPU와 디바이스로 복원하는 것을 제어하는 제어모듈을 포함한다. The computing device for fast booting according to the second embodiment of the present invention receives a boot command from a first non-volatile memory, a second non-volatile memory, a DRAM, and determines whether a cold boot has been performed Volatile memory, and when the cold boot has been performed, the CPU data and the device data are stored in the second nonvolatile memory, and it is confirmed whether the read-only operation of the first nonvolatile memory has been performed, Volatile memory and restoring the kernel data stored in the second nonvolatile memory into the kernel area of the first nonvolatile memory if the read-only operation of the first nonvolatile memory has been performed, And the CPU data and the device data stored in the second non- And a control module for controlling the restoration in a vice.

본 발명의 제3실시예에 따른 고속부팅을 위한 컴퓨팅 장치는 제1비휘발성 메모리, 제2비휘발성 메모리, DRAM, 상기 제1비휘발성 메모리에 쓰기 명령을 수신하고, 폴트가 발생하며, 상기 폴트 발생영역이 상기 커널영역이면, 상기 커널영역의 커널 원본데이터를 상기 제2비휘발성 메모리에 저장하고, 상기 제1비휘발성 메모리의 커널 원본데이터 영역에 대한 읽기 전용화를 해제하고, 상기 커널 원본데이터 영역에 쓰기를 수행하고, 상기 폴트 발생영역이 상기 커널영역이 아니면, 상기 DRAM에 쓰기를 수행하는 것을 제어하는 제어모듈을 포함한다. The computing device for fast booting according to the third embodiment of the present invention receives a write command to a first non-volatile memory, a second non-volatile memory, a DRAM, and the first non-volatile memory and generates a fault, Volatile memory of the first nonvolatile memory, the kernel original data of the kernel area is stored in the second nonvolatile memory if the occurrence area is the kernel area, the read-only operation of the kernel original data area of the first nonvolatile memory is released, And a control module that controls writing to the DRAM if the fault occurrence area is not the kernel area.

본 발명의 실시예에 따른 고속부팅 방법 및 이를 위한 컴퓨팅 장치에 의하면 다음과 같은 효과가 있다. The fast boot method according to the embodiment of the present invention and the computing apparatus therefor have the following effects.

첫째, 본 발명은 스마트폰과 같은 임베디드 시스템부터 PC, 그리고 서버 시장에까지 이 기술을 적용 가능하여, 사용자가 시스템을 사용하지 않을 때에 IDLE 상태로 두지 않고 시스템을 꺼둘 수 있기 때문에 에너지 절약할 수 있다. First, since the present invention can be applied to an embedded system such as a smart phone, a PC, and a server market, energy can be saved because a user can turn off the system without putting the system in the IDLE state when not using the system.

둘째, 본 발명은 부팅 시간이 길어서 꺼려지는 부팅작업을 고속부팅으로 인하여 자주 부팅할 수 있어, 시스템의 안정성을 높일 수 있다. Second, since the booting time is long, the booting operation can be booted frequently due to the high-speed boot, thereby improving the stability of the system.

도 1은 본 발명의 일 실시예에 따른 고속부팅 컴퓨팅 장치를 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 콜드부팅 과정을 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 콜드부팅 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 읽기 전용화 과정을 도시한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 읽기 전용화 과정을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 커널영역에서 부팅 완료상태 유지방법을 도시한 블록도이다.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 유저영역에서 부팅 완료상태 유지방법을 도시한 블록도이다.
도 8은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 부팅 완료 상태 유지방법을 도시한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 고속부팅 방법을 도시한 블록도이다.
도 10은 본 발명의 제1실시예에 따른 컴퓨팅 장치의 고속부팅 방법을 도시한 흐름도이다.
도 11은 본 발명의 제2실시예에 따른 컴퓨팅 장치의 고속부팅 방법을 도시한 흐름도이다.
1 illustrates a fast boot computing device in accordance with an embodiment of the present invention.
2 is a block diagram illustrating a cold boot process of a computing device according to an embodiment of the present invention.
3 is a flowchart illustrating a cold boot process of a computing device according to an embodiment of the present invention.
4 is a block diagram illustrating a read-only process of a computing device according to an embodiment of the present invention.
FIG. 5 is a flowchart illustrating a read-only process of a computing device according to an exemplary embodiment of the present invention.
6 is a block diagram illustrating a method of maintaining a booting completion state in a kernel area of a computing device according to an embodiment of the present invention.
7 is a block diagram illustrating a method of maintaining a booting completion state in a user area of a computing device according to an embodiment of the present invention.
8 is a flowchart illustrating a method of maintaining a booting completion state of a computing device according to an embodiment of the present invention.
9 is a block diagram illustrating a fast boot method of a computing device according to an embodiment of the present invention.
10 is a flowchart illustrating a fast boot method of a computing device according to the first embodiment of the present invention.
11 is a flowchart illustrating a fast boot method of a computing device according to a second embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. However, it is to be understood that the present invention is not limited to the disclosed embodiments, but may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. It is intended that the disclosure of the present invention be limited only by the terms of the appended claims.

또한, 본 발명에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 발명에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 이외의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 다른 정의가 없다면, 본 발명에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. In addition, the terms used in the present invention are intended to illustrate embodiments and are not intended to limit the present invention. In the present invention, the singular form includes plural forms unless otherwise specified in the specification. &Quot; comprises "and / or" comprising "used in the specification do not exclude the presence or addition of components other than the components mentioned. Unless defined otherwise, all terms (including technical and scientific terms) used herein are to be construed in a manner that is commonly understood by one of ordinary skill in the art to which this invention belongs.

이하, 본 발명을 보다 구체적으로 설명하기 위하여 본 발명에 따른 실시예들을 첨부 도면을 참조하면서 보다 상세하게 설명하고자 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 고속부팅 컴퓨팅 장치를 도시한 것이다. 1 illustrates a fast boot computing device in accordance with an embodiment of the present invention.

본 발명에서 고속부팅 컴퓨팅 장치는 컴퓨터, 휴대용 컴퓨터(Laptop), 핸드헬드 컴퓨터(Handheld computer), 태블릿(Tablet) 컴퓨터, 이동전화, 미디어 플레이어, PDA 등, 그리고 이러한 아이템 둘 이상의 결합을 포함하지만 이에 한정되지 않는 임의의 전자장치일 수 있다. 여기서, 고속부팅 컴퓨팅 장치는 전자장치의 한 예이고, 도 1에서 도시한 고속부팅 컴퓨팅 장치보다 많거나 적은 구성요소 또는 상이한 구성요소의 구성(Configuration)을 가질 수 있음을 인식하여야 한다. 도 1에 도시한 여러 구성요소는 하나 이상의 신호처리 및/또는 애플리케이션 전용 집적회로를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다.The fast boot computing device in the present invention includes but is not limited to a computer, a laptop computer, a handheld computer, a tablet computer, a mobile phone, a media player, a PDA, Lt; / RTI > It should be appreciated that the fast boot computing device is an example of an electronic device and may have more or fewer components or configurations of different components than the fast boot computing device shown in FIG. The various components shown in FIG. 1 may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing and / or application specific integrated circuits.

도 1을 참조하면, 고속부팅 컴퓨팅 장치는 비휘발성 메모리인 제1비휘발성 메모리(10), 제2비휘발성 메모리(20)와 휘발성 메모리인 DRAM(30), 저장장치(60)를 포함한다.Referring to FIG. 1, the fast boot computing apparatus includes a first nonvolatile memory 10, a second nonvolatile memory 20 and a DRAM 30, which are nonvolatile memories, and a storage device 60.

제1비휘발성 메모리(10), 제2비휘발성 메모리(20), DRAM(30)는 중앙처리장치인 CPU(40)가 처리하는 적어도 하나 이상의 프로세스에 대한 컴퓨팅 연산 도중의 데이터, 결과 데이터를 저장하는 부분이다. 또한, 제1비휘발성 메모리(10), 제2비휘발성 메모리(20), DRAM(30)는 중앙처리장치가 프로세스에 대한 컴퓨팅 연산을 위해 저장장치(60)로부터 필요한 파일을 독출하여 임시로 저장하고, 프로세스에 대한 컴퓨팅 연산의 종료 등의 원인에 의해 저장장치(60)로 데이터가 옮겨지기 전까지 컴퓨팅 연산 도중의 데이터, 결과 데이터를 저장할 수 있다.The first nonvolatile memory 10, the second nonvolatile memory 20 and the DRAM 30 store data and result data during a computing operation for at least one process processed by the CPU 40 which is a central processing unit . In addition, the first nonvolatile memory 10, the second nonvolatile memory 20, and the DRAM 30 are configured so that the central processing unit reads the necessary file from the storage device 60 for computing operation for the process, And the data and the result data during the computing operation can be stored until the data is transferred to the storage device 60 due to the termination of the computing operation for the process or the like.

예를 들어, 비휘발성 메모리인 제1비휘발성 메모리(10), 제2비휘발성 메모리(20)는 비휘발성 램(Non-Volatile Random Access Memory, NVRAM)이 가능하고, 비휘발성 램은 스토리지 클래스 메모리(Storage Class Memory, SCM)일 수 있는데, 스토리지 클래스 메모리로 PCRAM(Phase Change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM), STT-MRAM(Spin-Transfer Torque MRAM), FeRAM 등이 가능하고, 휘발성 메모리는 DRAM(30)(Dynamic Random Access Memory)이 가능한데, 본 발명에서는 휘발성 메모리로 DRAM(30)을 설명하나, 다른 실시예도 적용 가능함을 밝혀둔다.For example, the first nonvolatile memory 10 and the second nonvolatile memory 20, which are nonvolatile memories, may be nonvolatile random access memories (NVRAMs) (Storage Class Memory, SCM). As the storage class memory, a phase change RAM (PCRAM), a magnetoresistive RAM (MRAM), a ferroelectric RAM (FeRAM), a spin transfer torque MRAM (STT-MRAM) And the volatile memory is a DRAM 30 (Dynamic Random Access Memory). In the present invention, the DRAM 30 is described as a volatile memory, but it is also applicable to other embodiments.

또한, 본 실시예에서는 비휘발성 메모리가 제1비휘발성 메모리(10)와 제2비휘발성 메모리(20)로 나누어진 경우이나, 다른 실시예로 비휘발성 메모리가 두 개로 나누어지지 않은 경우나, 비휘발성 메모리가 세 개 이상인 경우에도 본 발명은 적용 가능하다.In the present embodiment, the nonvolatile memory is divided into the first nonvolatile memory 10 and the second nonvolatile memory 20, but in another embodiment, the nonvolatile memory is divided into two, The present invention is applicable even when there are three or more volatile memories.

제1비휘발성 메모리(10)는 메인 메모리 역할을 수행하고, 커널영역(11)과 유저영역(15)을 포함한다. The first nonvolatile memory 10 serves as a main memory and includes a kernel area 11 and a user area 15. [

제2비휘발성 메모리(20)는 컴퓨팅 장치의 부팅 완료상태에서의 커널 원본 데이터를 저장하는 커널 원본 데이터 영역(21,22)을 포함한다.The second nonvolatile memory 20 includes kernel original data areas 21 and 22 for storing kernel original data in a boot completion state of the computing device.

DRAM(30)은 컴퓨팅 장치의 부팅 완료 이후에 유저영역(15)에 업데이트된 데이터인 유저 업데이트 데이터를 저장하는 유저 업데이트 데이터 영역(35)을 포함한다.The DRAM 30 includes a user update data area 35 for storing user update data which is updated data in the user area 15 after the booting of the computing device is completed.

즉, 컴퓨팅 장치(또는 제어모듈(70))는 커널영역(11)의 가상 메모리와 실제 물리 메모리가 1:1 매핑으로 이루어져 있기 때문에 커널의 실질 데이터는 항상 커널영역(11)에 있도록 한다. 따라서 컴퓨팅 장치는 부팅 이후의 유저영역(15)에 대한 업데이트인 유저 업데이트 데이터는 DRAM(30)의 유저 업데이트 데이터 영역(35)에 저장하고, 커널의 업데이트 데이터인 커널 업데이터 데이터는 커널영역(11)에 그대로 저장하며, 커널의 업데이트로 인해 사라질 부팅 완료 시의 커널 원본 데이터는 커널 원본 데이터 영역에 저장한다.That is, since the computing device (or the control module 70) has the 1: 1 mapping between the virtual memory of the kernel area 11 and the actual physical memory, the real data of the kernel always remains in the kernel area 11. [ Therefore, the computing device stores the user update data, which is an update to the user area 15 after booting, in the user update data area 35 of the DRAM 30, and the kernel updater data, which is update data of the kernel, And the kernel original data at the time of boot completion which will disappear due to the update of the kernel is stored in the kernel original data area.

저장장치(60)는 임의의 데이터, 소프트웨어 등을 저장하는 부분으로, 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장장치(60), 플래시 메모리 장치와 같은 비휘발성 메모리, 또는 다른 비휘발성 반도체 메모리장치를 포함할 수 있다. The storage device 60 may be a portion storing any data, software, etc., and may include a high-speed random access memory and may also include one or more magnetic disk storage devices 60, non-volatile memory such as flash memory devices, Non-volatile semiconductor memory devices.

일부 실시예에서, 저장장치(60)는 하나 이상의 중앙처리장치로부터 떨어져 위치하는 저장장치(60), 예를 들어 통신회로 또는 외부포트와 인터넷, 인트라넷, LAN(Local Area Network), WLAN(Wide LAN), SAN(Storage Area Network) 등이나 또는 이들의 적절한 조합과 같은 통신 네트워크를 통하여 액세스되는 네트워크 부착형(Attached) 저장장치(60)를 더 포함할 수 있다. In some embodiments, the storage device 60 may be coupled to a storage device 60, e.g., a communication circuit or external port, located off of one or more central processing units, such as the Internet, an intranet, a LAN (Local Area Network) ), A storage area network (SAN), etc., or any suitable combination thereof.

또한, 저장장치(60)는 제어모듈(70)을 포함할 수 있는데, 제어모듈(70)은 컴퓨팅 장치의 고속부팅, 콜드부팅 등을 제어한다. 실시예에 따라서 제어모듈(70)은 컴퓨팅 장치의 운영체제와 같은 역할을 수행한다.In addition, the storage device 60 may include a control module 70, which controls fast boot, cold boot, etc. of the computing device. According to an embodiment, the control module 70 acts as an operating system of the computing device.

또한, 제어모듈(70)은 부팅 명령을 수신하여, 고속부팅 수행이 가능하면, 제2비휘발성 메모리(20)에 저장된 커널 데이터를 제1비휘발성 메모리(10)의 커널영역(11)에 복원하고, DRAM(30)에 저장된 업데이트 데이터를 삭제하고, 제2비휘발성 메모리(20)에 저장된 CPU 데이터와 디바이스 데이터를 각각 CPU(40)와 디바이스(50)로 복원하는 것을 제어한다.The control module 70 receives the boot instruction and restores the kernel data stored in the second nonvolatile memory 20 to the kernel area 11 of the first nonvolatile memory 10 And deletes the update data stored in the DRAM 30 and restores the CPU data and the device data stored in the second nonvolatile memory 20 to the CPU 40 and the device 50, respectively.

또한, 제어모듈(70)은 부팅 명령을 수신하여, 부팅 방식이 고속부팅이면, 콜드부팅이 기 수행 되었는지 확인하고, 콜드부팅이 기 수행 되었으면, CPU 데이터와 디바이스 데이터가 제2비휘발성 메모리(20)에 저장되고, 제1비휘발성 메모리(10)의 읽기 전용화가 수행되었는지 확인하고, CPU 데이터와 디바이스 데이터가 제2비휘발성 메모리(20)에 저장되고, 제1비휘발성 메모리(10)의 읽기 전용화가 수행되었으면, 제2비휘발성 메모리(20)에 저장된 커널 데이터를 제1비휘발성 메모리(10)의 커널영역(11)에 복원하고, DRAM(30)에 저장된 업데이트 데이터를 삭제하고, 제2비휘발성 메모리(20)에 저장된 CPU 데이터와 디바이스 데이터를 각각 CPU(40)와 디바이스(50)로 복원하는 것을 제어한다.The control module 70 receives the boot command and checks if the cold boot is performed if the boot method is the fast boot. If the cold boot is performed, the CPU module 70 and the device data are stored in the second nonvolatile memory 20 Volatile memory 10, and the CPU data and the device data are stored in the second non-volatile memory 20, and the reading of the first non-volatile memory 10 The kernel data stored in the second nonvolatile memory 20 is restored to the kernel area 11 of the first nonvolatile memory 10 and the update data stored in the DRAM 30 is deleted, And restores CPU data and device data stored in the nonvolatile memory 20 to the CPU 40 and the device 50, respectively.

또한, 제어모듈(70)은 제1비휘발성 메모리(10)에 쓰기 명령을 수신하고, 폴트가 발생하며, 폴트 발생영역이 커널영역(11)이면, 커널영역(11)의 커널 원본데이터를 제2비휘발성 메모리(20)에 저장하고, 제1비휘발성 메모리(10)의 커널 원본데이터 영역에 대한 읽기 전용화를 해제하고, 커널 원본데이터 영역에 쓰기를 수행하고, 폴트 발생영역이 커널영역(11)이 아니면, DRAM(30)에 쓰기를 수행하는 것을 제어한다.The control module 70 receives the write command from the first nonvolatile memory 10 and generates a fault if the fault occurrence area is the kernel area 11, 2 nonvolatile memory 20, releases read-only access to the kernel original data area of the first nonvolatile memory 10, writes to the kernel original data area, and sets the fault occurrence area to the kernel area ( 11), it controls to perform writing to the DRAM 30.

도 2는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 콜드부팅 과정을 도시한 블록도이고, 도 3은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 콜드부팅 과정을 도시한 흐름도이다. FIG. 2 is a block diagram illustrating a cold boot process of a computing device according to an embodiment of the present invention. FIG. 3 is a flowchart illustrating a cold boot process of a computing device according to an embodiment of the present invention.

도 2, 도 3을 참조하면, 컴퓨팅 장치는 시스템 부팅 명령을 수신한다(S310). Referring to FIGS. 2 and 3, the computing device receives a system boot command (S310).

컴퓨팅 장치는 메인 메모리가 제1비휘발성 메모리(10)인지 확인한다(S320).The computing device determines whether the main memory is the first nonvolatile memory 10 (S320).

컴퓨팅 장치는 메인 메모리가 제1비휘발성 메모리(10)이면, 저장장치(60)로부터 커널 이미지 파일(610)과 램디스크 파일(630)을 제1비휘발성 메모리(10)로 가져온다(S330). 여기서, 램디스크 파일(630)은 예를 들어, 컴퓨팅 장치와 같은 시스템이 부팅시 필요한 루트파일시스템을 이미지 형태로 만든 파일의 일 예로, 본 발명은 램디스크 파일(630) 이외에, 부팅시 필요한 루트파일시스템과 같은 기능을 수행하는 다른 파일도 가능하다. The computing device fetches the kernel image file 610 and the RAM disk file 630 from the storage device 60 to the first nonvolatile memory 10 if the main memory is the first nonvolatile memory 10 at step S330. Here, the ramdisk file 630 is an example of a file in which a system such as a computing device creates an image form of a root file system required for booting. In addition to the ramdisk file 630, Other files that perform the same function as the file system are also possible.

여기서, 컴퓨팅 장치의 메인 메모리의 물리 시작 주소를 제1비휘발성 메모리(10)로 지정해 둔 경우에 컴퓨팅 장치는 저장장치(60)로부터 커널 이미지 파일(610)과 램디스크 파일(630)을 제1비휘발성 메모리(10)로 가져온다. 만약, 컴퓨팅 장치의 메인 메모리의 물리 시작 주소를 DRAM(30)으로 지정해 둔 경우에 컴퓨팅 장치는 저장장치(60)로부터 커널 이미지 파일(610)과 램디스크 파일(630)을 DRAM(30)으로 가져온다.In this case, when the physical start address of the main memory of the computing device is designated as the first nonvolatile memory 10, the computing device reads the kernel image file 610 and the RAM disk file 630 from the storage device 60, Non-volatile memory 10. If the physical start address of the main memory of the computing device is designated as the DRAM 30, the computing device fetches the kernel image file 610 and the RAM disk file 630 from the storage device 60 to the DRAM 30 .

컴퓨팅 장치는 메인 메모리가 제1비휘발성 메모리(10)가 아니면, 단계 S320을 수행한다.If the main memory is not the first nonvolatile memory 10, the computing device performs step S320.

컴퓨팅 장치는 커널 이미지 파일(610)과 램디스크 파일(630)의 압축을 해제하고, 커널의 초기화 과정을 완료한다(S340).The computing device decompresses the kernel image file 610 and the ramdisk file 630, and completes the initialization process of the kernel (S340).

도 2의 콜드부팅 과정의 목적은 컴퓨팅 장치인 시스템의 부팅을 위해 메인 메모리에 올려져야 할 데이터들을 제1비휘발성 메모리(10)에 올려두는 것이며, 이러한 데이터는 제1비휘발성 메모리(10)의 비휘발성 특성을 이용하여 보관하려는 것이다.The purpose of the cold boot process of FIG. 2 is to put the data to be loaded into the main memory for booting the system, which is a computing device, into the first nonvolatile memory 10, Nonvolatile property.

도 4는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 읽기 전용화 과정을 도시한 블록도이고, 도 5는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 읽기 전용화 과정을 도시한 흐름도이다.FIG. 4 is a block diagram illustrating a read-only process of a computing device according to an embodiment of the present invention, and FIG. 5 is a flowchart illustrating a read-only process of a computing device according to an embodiment of the present invention.

본 발명에서 읽기 전용화(Read-Only)는 MMU(Memory Management Unit, 이하 “MMU”라 한다.)가 사용하는 변환 테이블의 내용을 수정하는 것으로, 제1비휘발성 메모리(10)의 읽기 전용화란, 제1비휘발성 메모리(10) 전체 영역을 읽기 전용화한 것을 의미한다.In the present invention, the read-only mode is a mode of modifying the content of the conversion table used by the MMU (MMU), and the read-only operation of the first nonvolatile memory 10 , It means that the whole area of the first nonvolatile memory 10 is made read-only.

도 4, 도 5를 참조하면, 컴퓨팅 장치는 제1비휘발성 메모리(10)의 읽기 전용화(Read-Only) 명령을 수신한다(S510).Referring to FIGS. 4 and 5, the computing device receives a read-only command of the first non-volatile memory 10 (S510).

컴퓨팅 장치는 CPU(40)의 CPU 데이터와 적어도 하나 이상의 디바이스(50)로부터 디바이스 데이터를 각각 제2비휘발성 메모리(20)의 CPU 데이터 영역(410)과 디바이스 데이터 영역(510)에 저장한다(S520). 이때, CPU 데이터와 디바이스 데이터는 컴퓨팅 장치의 전원이 꺼졌을 때 날아갈 수 있는 휘발성 데이터들이다. The computing device stores the CPU data of the CPU 40 and the device data from at least one or more devices 50 in the CPU data area 410 and the device data area 510 of the second nonvolatile memory 20 respectively ). At this time, CPU data and device data are volatile data that can be blown off when the computing device is powered off.

컴퓨팅 장치는 제1비휘발성 메모리(10)를 읽기 전용화로 변경한다(S530). 여기서, 제1비휘발성 메모리(10) 전체가 읽기 전용화된다.The computing device changes the first non-volatile memory 10 to read-only mode (S530). Here, the entire first nonvolatile memory 10 is made read-only.

이때, 본 발명은 실시예로 제1비휘발성 메모리(10)의 읽기 전용화를 위해서 MMU의 변환 테이블을 수정한다. MMU는 하드웨어적으로 동작하며, 변환 테이블은 메인 메모리 내에 존재한다. At this time, the present invention modifies the conversion table of the MMU in order to make the first nonvolatile memory 10 read-only. The MMU operates in hardware, and the conversion table exists in main memory.

도 6은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 커널영역(11)에서 부팅 완료상태 유지방법을 도시한 블록도이고, 도 7은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 유저영역(15)에서 부팅 완료상태 유지방법을 도시한 블록도이고, 도 8은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 부팅 완료 상태 유지방법을 도시한 흐름도이다.FIG. 6 is a block diagram illustrating a method of maintaining a booting completion state in a kernel area 11 of a computing device according to an embodiment of the present invention. FIG. FIG. 8 is a flowchart illustrating a method for maintaining a booting completion state of a computing device according to an exemplary embodiment of the present invention. Referring to FIG.

여기서, 컴퓨팅 장치의 부팅 완료상태 유지방법은 부팅 이미지 유지방법으로 표현할 수 있으나, 그 개념은 동일함을 밝혀둔다.Here, the booting completion state maintenance method of the computing device can be expressed by the boot image maintenance method, but the concepts are the same.

도 6 ~ 도 8을 참조하면, 컴퓨팅 장치는 제1비휘발성 메모리(10)에 쓰기 명령을 수신한다(S810).Referring to FIGS. 6 to 8, the computing device receives a write command to the first nonvolatile memory 10 (S810).

컴퓨팅 장치는 쓰기 명령 수신 후, 폴트가 발생한다(S820). 이는 제1비휘발성 메모리(10)가 읽기 전용화되어 있기 때문이다.After receiving the write command, the computing device generates a fault (S820). This is because the first nonvolatile memory 10 is read-only.

컴퓨팅 장치는 폴트 발생영역이 커널영역(11)인지 확인한다(S830).The computing device determines whether the fault occurrence area is the kernel area 11 (S830).

컴퓨팅 장치는 폴트 발생영역이 커널영역(11)이면, 커널영역(11)의 커널 원본데이터 영역(110)에 있는 커널 원본데이터를 제2비휘발성 메모리(20)의 특정 영역(210)에 저장한다. The computing device stores the kernel original data in the kernel original data area 110 of the kernel area 11 in the specific area 210 of the second nonvolatile memory 20 if the fault occurrence area is the kernel area 11 .

컴퓨팅 장치는 제1비휘발성 메모리(10)의 커널 원본데이터 영역(110)에 대한 읽기 전용화를 해제한다. 즉, 커널 원본데이터 영역(110)은 읽기 전용화가 해제되어 데이터 쓰기가 가능하다.The computing device releases read-only access to the kernel original data area 110 of the first non-volatile memory 10. [ That is, the kernel original data area 110 is released from the read-only mode and data writing is possible.

컴퓨팅 장치는 커널 원본데이터 영역(110)에 쓰기를 수행한다(S860).The computing device writes to the kernel original data area 110 (S860).

컴퓨팅 장치는 폴트 발생영역이 커널영역(11)이 아니면, DRAM(30)의 쓰기 영역(310)에 쓰기를 수행한다(S870). If the fault occurrence area is not the kernel area 11, the computing device writes the write area 310 of the DRAM 30 (S870).

컴퓨팅 장치는 페이지 테이블을 수정한다(S880). 여기서 페이지 테이블은 가상 메모리에 존재한다.The computing device modifies the page table (S880). Here, the page table exists in the virtual memory.

도 9는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 고속부팅 방법을 도시한 블록도이고, 도 10은 본 발명의 제1실시예에 따른 컴퓨팅 장치의 고속부팅 방법을 도시한 흐름도이고, 도 11은 본 발명의 제2실시예에 따른 컴퓨팅 장치의 고속부팅 방법을 도시한 흐름도이다.FIG. 9 is a block diagram illustrating a fast boot method of a computing device according to an embodiment of the present invention. FIG. 10 is a flowchart illustrating a fast boot method of a computing device according to the first embodiment of the present invention, Is a flowchart illustrating a fast boot method of a computing device according to a second embodiment of the present invention.

도 9, 도 10을 참조하여 본 발명의 제1실시예에 따른 컴퓨팅 장치의 고속부팅 방법을 설명한다.9 and 10, a fast booting method of a computing apparatus according to the first embodiment of the present invention will be described.

컴퓨팅 장치는 부팅 명령을 수신한다(S1010).The computing device receives a boot command (S1010).

컴퓨팅 장치는 부팅 방식이 고속부팅인지 확인한다(S1020).The computing device determines whether the booting method is a fast boot (S1020).

컴퓨팅 장치는 부팅 방식이 고속부팅이면, 콜드부팅이 기 수행 되었는지 확인한다(S1030).If the boot method is a fast boot, the computing device checks whether a cold boot has been performed (S1030).

컴퓨팅 장치는 부팅 방식이 고속부팅이 아니면, 부팅 방식이 콜드부팅인지 확인한다(S1040). If the booting method is not the fast booting, the computing device checks whether the booting method is the cold booting (S1040).

컴퓨팅 장치는 콜드부팅이 기 수행 되었으면, CPU 데이터와 디바이스 데이터가 제2비휘발성 메모리(20)에 저장되고, 메인 메모리인 제1비휘발성 메모리(10)의 읽기 전용화가 수행되었는지 확인한다(S1060).When the cold boot has been performed, the computing device stores the CPU data and the device data in the second nonvolatile memory 20 and confirms whether read-only operation of the first nonvolatile memory 10 as the main memory is performed (S 1060) .

컴퓨팅 장치는 콜드부팅이 기 수행 되지 않았으면, 콜드부팅을 수행한다(S1050). If the cold boot has not been performed, the computing device performs a cold boot (S1050).

또한, 컴퓨팅 장치는 부팅 방식이 콜드부팅인지 확인하여, 부팅 방식이 콜드부팅이면, 콜드부팅을 수행하고(S1050), 부팅 방식이 콜드부팅이 아니면, 단계 S1020을 수행한다.If the booting method is a cold boot, the computing device performs a cold boot (S1050). If the booting method is not a cold boot, the computing device performs step S1020.

컴퓨팅 장치는 CPU 데이터와 디바이스 데이터가 제2비휘발성 메모리(20)에 저장되지 않고, 메인 메모리인 제1비휘발성 메모리(10)의 읽기 전용화가 수행되지 않았으면, CPU 데이터와 디바이스 데이터와 제2비휘발성 메모리(20)에 저장하고, 메인 메모리인 제1비휘발성 메모리(10)의 읽기 전용화를 수행한다(S1070).If the CPU data and the device data are not stored in the second nonvolatile memory 20 and the read-only operation of the first nonvolatile memory 10 which is the main memory has not been performed, Volatile memory 20 and performs read-only operation of the first non-volatile memory 10 which is a main memory (S1070).

컴퓨팅 장치는 CPU 데이터와 디바이스 데이터가 제2비휘발성 메모리(20)에 저장되고, 메인 메모리인 제1비휘발성 메모리(10)의 읽기 전용화가 수행되었으면, 제2비휘발성 메모리(20)의 특정 영역들(210, 220, 230, 240)에 저장된 커널 데이터를 제1비휘발성 메모리(10)의 커널영역(11)에 복원한다(S1080).Volatile memory 20. When the CPU and data are stored in the second nonvolatile memory 20 and the read-only operation of the first nonvolatile memory 10, which is the main memory, has been performed, In the kernel area 11 of the first nonvolatile memory 10, the kernel data stored in the first nonvolatile memory 210 (210, 220, 230, 240) (S1080).

컴퓨팅 장치는 DRAM(30)에 저장된 업데이트 데이터를 삭제한다(S1090).The computing device deletes the update data stored in the DRAM 30 (S1090).

컴퓨팅 장치는 제2비휘발성 메모리(20)의 CPU 데이터 영역(410)에 저장된 CPU 데이터와 디바이스 데이터 영역(510)에 저장된 디바이스 데이터를 각각 CPU(40)와 디바이스(50)로 복원한다(S1100).The computing device restores the CPU data stored in the CPU data area 410 of the second nonvolatile memory 20 and the device data stored in the device data area 510 to the CPU 40 and the device 50 respectively (S1100) .

도 9, 도 11을 참조하여 본 발명의 제2실시예에 따른 컴퓨팅 장치의 고속부팅 방법을 설명한다.9 and 11, a fast booting method of a computing device according to a second embodiment of the present invention will be described.

컴퓨팅 장치는 부팅 명령을 수신한다(S1110).The computing device receives a boot command (S1110).

컴퓨팅 장치는 고속부팅 수행이 가능한지 확인한다(S1120).The computing device checks whether a fast boot can be performed (S1120).

컴퓨팅 장치는 고속부팅 수행이 가능하면, 제2비휘발성 메모리(20)의 특정 영역들(210, 220, 230, 240)에 저장된 커널 데이터를 제1비휘발성 메모리(10)의 커널영역(11)에 복원한다(S1140).Volatile memory 20 can be stored in the kernel area 11 of the first nonvolatile memory 10 if the fast boot can be performed by the computing device, the kernel data stored in the specific areas 210, 220, 230 and 240 of the second nonvolatile memory 20, (S1140).

컴퓨팅 장치는 고속부팅 수행이 가능하지 않으면, 콜드부팅을 수행한다(S1130).If the fast booting is not feasible, the computing device performs a cold boot (S1130).

컴퓨팅 장치는 DRAM(30)에 저장된 업데이트 데이터를 삭제한다(S1150).The computing device deletes the update data stored in the DRAM 30 (S1150).

컴퓨팅 장치는 제2비휘발성 메모리(20)의 CPU 데이터 영역(410)에 저장된 CPU 데이터와 디바이스 데이터 영역(510)에 저장된 디바이스 데이터를 각각 CPU(40)와 디바이스(50)로 복원한다(S1160).The computing device restores the CPU data stored in the CPU data area 410 of the second nonvolatile memory 20 and the device data stored in the device data area 510 to the CPU 40 and the device 50 respectively (S1160) .

본 발명의 실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 기록매체에 기록될 수 있다. 컴퓨터 판독 가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램(프로그램 명령)은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic media), CDROM, DVD와 같은 광기록 매체(Optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(Magneto-optical media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, and the like, alone or in combination. The program (program instructions) to be recorded on the recording medium may be those specially designed and configured for the present invention or may be those known to those skilled in the computer software. Examples of the computer-readable recording medium include magnetic media such as a hard disk, a floppy disk and a magnetic tape, optical media such as a CDROM and a DVD, magneto-optical media such as a floppy disk, Hardware devices that are specifically configured to store and execute program instructions such as magneto-optical media, ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명을 도면에 도시한 실시예를 참고하여 설명하였으나, 이는 발명을 설명하기 위한 것일 뿐이며, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면 발명의 상세한 설명으로부터 다양한 변형 또는 균등한 실시예가 가능하다는 것을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 권리범위는 특허청구범위의 기술적 사상에 의해 결정되어야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be appreciated that one embodiment is possible. Accordingly, the true scope of the present invention should be determined by the technical idea of the claims.

10: 제1비휘발성 메모리
11: 커널영역
15: 유저영역
20: 제2비휘발성 메모리
30: DRAM
40: CPU
50: 디바이스
60: 저장장치
70: 제어모듈
10: first nonvolatile memory
11: kernel area
15: User area
20: second nonvolatile memory
30: DRAM
40: CPU
50: device
60: Storage device
70: Control module

Claims (16)

제1비휘발성 메모리, 제2비휘발성 메모리, DRAM을 포함하는 컴퓨팅 장치에 있어서,
부팅 명령을 수신하는 단계,
고속부팅 수행이 가능하면, 상기 제2비휘발성 메모리에 저장된 커널 데이터를 상기 제1비휘발성 메모리의 커널영역에 복원하는 단계,
상기 DRAM에 저장된 업데이트 데이터를 삭제하는 단계,
상기 제2비휘발성 메모리에 저장된 CPU 데이터와 디바이스 데이터를 각각 CPU와 디바이스로 복원하는 단계를 포함하는 고속부팅 방법.
A computing device comprising a first non-volatile memory, a second non-volatile memory, and a DRAM,
Receiving a boot command,
Restoring the kernel data stored in the second nonvolatile memory into the kernel area of the first nonvolatile memory if the fast boot execution is possible,
Deleting the update data stored in the DRAM,
And restoring the CPU data and the device data stored in the second nonvolatile memory to the CPU and the device, respectively.
제1항에 있어서,
상기 고속부팅 수행이 가능하지 않으면, 콜드부팅을 수행하는 단계를 더 포함하는 고속부팅 방법.
The method according to claim 1,
And performing a cold boot if the fast boot execution is not possible.
제1항에 있어서,
상기 제1비휘발성 메모리에 쓰기 명령을 수신하는 단계,
폴트 발생하는 단계,
상기 폴트 발생영역이 상기 커널영역이면, 상기 커널영역의 커널 원본데이터를 상기 제2비휘발성 메모리에 저장하는 단계,
상기 제1비휘발성 메모리의 커널 원본데이터 영역에 대한 읽기 전용화를 해제하는 단계,
상기 커널 원본데이터 영역에 쓰기를 수행하는 단계를 더 포함하는 고속부팅 방법.
The method according to claim 1,
Receiving a write command in the first non-volatile memory,
A step of generating a fault,
Storing the kernel original data in the kernel area in the second nonvolatile memory if the fault occurrence area is the kernel area,
Releasing read-only access to the kernel original data area of the first non-volatile memory,
And writing to the kernel source data area.
제3항에 있어서,
상기 폴트 발생영역이 상기 커널영역이 아니면, 상기 DRAM에 쓰기를 수행하는 단계를 더 포함하는 고속부팅 방법.
The method of claim 3,
And writing to the DRAM if the fault occurrence area is not the kernel area.
제4항에 있어서,
상기 제1비휘발성 메모리의 상기 읽기 전용화 명령을 수신하는 단계,
상기 CPU 데이터와 상기 디바이스 데이터를 상기 제2비휘발성 메모리에 저장하는 단계,
상기 제1비휘발성 메모리를 읽기 전용화로 변경하는 단계를 더 포함하는 고속부팅 방법.
5. The method of claim 4,
Receiving the read-only command of the first non-volatile memory,
Storing the CPU data and the device data in the second nonvolatile memory,
Further comprising changing the first non-volatile memory to read-only.
제1비휘발성 메모리, 제2비휘발성 메모리, DRAM을 포함하는 컴퓨팅 장치에 있어서,
부팅 명령을 수신하는 단계,
부팅 방식이 고속부팅이면, 콜드부팅이 기 수행 되었는지 확인하는 단계,
상기 콜드부팅이 기 수행 되었으면, CPU 데이터와 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되고, 상기 제1비휘발성 메모리의 읽기 전용화가 수행되었는지 확인하는 단계,
상기 CPU 데이터와 상기 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되고, 상기 제1비휘발성 메모리의 읽기 전용화가 수행되었으면, 상기 제2비휘발성 메모리에 저장된 커널 데이터를 상기 제1비휘발성 메모리의 커널영역에 복원하는 단계,
상기 DRAM에 저장된 업데이트 데이터를 삭제하는 단계,
상기 제2비휘발성 메모리에 저장된 상기 CPU 데이터와 상기 디바이스 데이터를 각각 CPU와 디바이스로 복원하는 단계를 포함하는 고속부팅 방법.
A computing device comprising a first non-volatile memory, a second non-volatile memory, and a DRAM,
Receiving a boot command,
If the booting method is the fast boot, checking whether or not the cold boot has been performed,
Determining whether read-only operation of the first nonvolatile memory has been performed, if the cold boot has been performed, checking whether CPU data and device data are stored in the second nonvolatile memory,
Volatile memory, wherein when the CPU data and the device data are stored in the second non-volatile memory and the read-only operation of the first non-volatile memory is performed, the kernel data stored in the second non- Restoring to the area,
Deleting the update data stored in the DRAM,
And restoring the CPU data and the device data stored in the second nonvolatile memory into a CPU and a device, respectively.
제6항에 있어서,
상기 부팅 방식이 상기 고속부팅이 아니면, 상기 부팅 방식이 상기 콜드부팅인지 확인하여 상기 부팅 방식이 상기 콜드부팅이면, 상기 콜드부팅을 수행하는 단계,
상기 콜드부팅이 기 수행 되지 않았으면, 상기 콜드부팅을 수행하는 단계를 더 포함하는 고속부팅 방법.
The method according to claim 6,
Determining whether the booting method is the cold boot if the booting method is not the fast booting and performing the cold boot if the booting method is the cold booting;
And if the cold boot has not been performed, performing the cold boot.
제7항에 있어서,
상기 CPU 데이터와 상기 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되지 않고, 상기 제1비휘발성 메모리의 상기 읽기 전용화가 수행되지 않았으면, 상기 CPU 데이터와 상기 디바이스 데이터를 상기 제2비휘발성 메모리에 저장하고, 상기 제1비휘발성 메모리의 상기 읽기 전용화를 수행하는 단계를 더 포함하는 고속부팅 방법.
8. The method of claim 7,
The CPU data and the device data are stored in the second nonvolatile memory if the CPU data and the device data are not stored in the second nonvolatile memory and the read- And performing the read-only operation of the first non-volatile memory.
제2항 또는 제6항에 있어서,
상기 콜드부팅은,
메인 메모리가 상기 제1비휘발성 메모리이면, 저장장치로부터 커널 이미지 파일과 램디스크 파일을 상기 제1비휘발성 메모리로 가져오는 단계,
상기 커널 이미지 파일과 램디스크 파일의 압축을 해제하고, 커널의 초기화 과정을 완료하는 단계를 포함하는 고속부팅 방법.
7. The method according to claim 2 or 6,
In the cold boot,
If the main memory is the first nonvolatile memory, bringing a kernel image file and a ramdisk file from the storage device into the first nonvolatile memory,
Decompressing the kernel image file and ramdisk file, and completing the kernel initialization process.
제1비휘발성 메모리, 제2비휘발성 메모리, DRAM을 포함하는 컴퓨팅 장치에 있어서,
상기 제1비휘발성 메모리에 쓰기 명령을 수신하는 단계,
폴트 발생하는 단계,
상기 폴트 발생영역이 상기 커널영역이면, 상기 커널영역의 커널 원본데이터를 상기 제2비휘발성 메모리에 저장하는 단계,
상기 제1비휘발성 메모리의 커널 원본데이터 영역에 대한 읽기 전용화를 해제하는 단계,
상기 커널 원본데이터 영역에 쓰기를 수행하는 단계,
상기 폴트 발생영역이 상기 커널영역이 아니면, 상기 DRAM에 쓰기를 수행하는 단계를 포함하는 고속부팅 방법.
A computing device comprising a first non-volatile memory, a second non-volatile memory, and a DRAM,
Receiving a write command in the first non-volatile memory,
A step of generating a fault,
Storing the kernel original data in the kernel area in the second nonvolatile memory if the fault occurrence area is the kernel area,
Releasing read-only access to the kernel original data area of the first non-volatile memory,
Writing to the kernel original data area,
And writing to the DRAM if the fault occurrence area is not the kernel area.
제10항에 있어서,
페이지 테이블을 수정하는 단계를 더 포함하는 고속부팅 방법.
11. The method of claim 10,
Further comprising the step of modifying the page table.
제1항, 제6항, 제10항 중 어느 한 항에 있어서,
상기 제1비휘발성 메모리가 메인 메모리인 고속부팅 방법.
The method according to any one of claims 1, 6, and 10,
Wherein the first nonvolatile memory is a main memory.
제1비휘발성 메모리,
제2비휘발성 메모리,
DRAM,
부팅 명령을 수신하여, 고속부팅 수행이 가능하면, 상기 제2비휘발성 메모리에 저장된 커널 데이터를 상기 제1비휘발성 메모리의 커널영역에 복원하고, 상기 DRAM에 저장된 업데이트 데이터를 삭제하고, 상기 제2비휘발성 메모리에 저장된 CPU 데이터와 디바이스 데이터를 각각 CPU와 디바이스로 복원하는 것을 제어하는 제어모듈을 포함하는 고속부팅을 위한 컴퓨팅 장치.
A first non-volatile memory,
A second nonvolatile memory,
DRAM,
Volatile memory to the kernel area of the first nonvolatile memory and deletes the update data stored in the DRAM when the fast boot execution is possible, And a control module for controlling restoration of CPU data and device data stored in the non-volatile memory to the CPU and the device, respectively.
제1비휘발성 메모리,
제2비휘발성 메모리,
DRAM,
부팅 명령을 수신하여, 부팅 방식이 고속부팅이면, 콜드부팅이 기 수행 되었는지 확인하고, 상기 콜드부팅이 기 수행 되었으면, CPU 데이터와 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되고, 상기 제1비휘발성 메모리의 읽기 전용화가 수행되었는지 확인하고, 상기 CPU 데이터와 상기 디바이스 데이터가 상기 제2비휘발성 메모리에 저장되고, 상기 제1비휘발성 메모리의 읽기 전용화가 수행되었으면, 상기 제2비휘발성 메모리에 저장된 커널 데이터를 상기 제1비휘발성 메모리의 커널영역에 복원하고, 상기 DRAM에 저장된 업데이트 데이터를 삭제하고, 상기 제2비휘발성 메모리에 저장된 상기 CPU 데이터와 상기 디바이스 데이터를 각각 CPU와 디바이스로 복원하는 것을 제어하는 제어모듈을 포함하는 고속부팅을 위한 컴퓨팅 장치.
A first non-volatile memory,
A second nonvolatile memory,
DRAM,
Wherein the CPU determines whether a cold boot has been performed when the booting method is a fast boot if the booting method is a fast boot and stores CPU data and device data in the second nonvolatile memory when the cold booting has been performed, Volatile memory, and if the CPU data and the device data are stored in the second non-volatile memory and the read-only operation of the first non-volatile memory has been performed, Restoring the kernel data into the kernel area of the first nonvolatile memory, deleting the update data stored in the DRAM, and restoring the CPU data and the device data stored in the second nonvolatile memory into the CPU and the device, respectively And a control module for controlling the booting device.
제1비휘발성 메모리,
제2비휘발성 메모리,
DRAM,
상기 제1비휘발성 메모리에 쓰기 명령을 수신하고, 폴트가 발생하며, 상기 폴트 발생영역이 상기 커널영역이면, 상기 커널영역의 커널 원본데이터를 상기 제2비휘발성 메모리에 저장하고, 상기 제1비휘발성 메모리의 커널 원본데이터 영역에 대한 읽기 전용화를 해제하고, 상기 커널 원본데이터 영역에 쓰기를 수행하고, 상기 폴트 발생영역이 상기 커널영역이 아니면, 상기 DRAM에 쓰기를 수행하는 것을 제어하는 제어모듈을 포함하는 고속부팅을 위한 컴퓨팅 장치.
A first non-volatile memory,
A second nonvolatile memory,
DRAM,
Volatile memory, and when the fault occurrence area is the kernel area, storing the kernel original data of the kernel area in the second nonvolatile memory, A control module for controlling reading of the kernel original data area of the volatile memory, writing to the kernel original data area, and writing to the DRAM if the fault occurrence area is not the kernel area, Wherein the computing device is a computing device.
제1항, 제6항, 제10항 중 어느 한 항의 고속부팅 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체.A computer readable recording medium recording a program for performing the fast boot method according to any one of claims 1, 6, and 10.
KR1020140033983A 2014-03-24 2014-03-24 Method for fast booting and computting apparatus thereof KR101566612B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140033983A KR101566612B1 (en) 2014-03-24 2014-03-24 Method for fast booting and computting apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140033983A KR101566612B1 (en) 2014-03-24 2014-03-24 Method for fast booting and computting apparatus thereof

Publications (2)

Publication Number Publication Date
KR20150110100A true KR20150110100A (en) 2015-10-02
KR101566612B1 KR101566612B1 (en) 2015-11-06

Family

ID=54341315

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140033983A KR101566612B1 (en) 2014-03-24 2014-03-24 Method for fast booting and computting apparatus thereof

Country Status (1)

Country Link
KR (1) KR101566612B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829315B2 (en) 2020-12-16 2023-11-28 Samsung Electronics Co., Ltd. Electronic device including a structure in which an insertable device is insertable and method for operating the same
US11892550B2 (en) 2020-12-22 2024-02-06 Samsung Electronics Co., Ltd. Three-dimensional angle of arrival capability in electronic devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829315B2 (en) 2020-12-16 2023-11-28 Samsung Electronics Co., Ltd. Electronic device including a structure in which an insertable device is insertable and method for operating the same
US11892550B2 (en) 2020-12-22 2024-02-06 Samsung Electronics Co., Ltd. Three-dimensional angle of arrival capability in electronic devices

Also Published As

Publication number Publication date
KR101566612B1 (en) 2015-11-06

Similar Documents

Publication Publication Date Title
US9141537B2 (en) Magnetic random access memory journal
US8495628B2 (en) Para-virtualization in a nested virtualization environment using reduced number of nested VM exits
US10817440B2 (en) Storage device including reconfigurable logic and method of operating the storage device
US9886398B2 (en) Implicit sharing in storage management
US10983913B2 (en) Securing exclusive access to a copy of a metadata track via a process while the metadata track is held in a shared mode by another process
KR20160056380A (en) Storage device and operating method of storage device
US10983702B2 (en) Reducing data storage system I/O bandwidth via read-once point in time copy
US8683169B2 (en) Selecting an auxiliary storage medium for writing data of real storage pages
CN105339909A (en) Storage systems and aliased memory
CN105740413A (en) File movement method by FUSE on Linux platform
KR101566612B1 (en) Method for fast booting and computting apparatus thereof
US10339065B2 (en) Optimizing memory mapping(s) associated with network nodes
US20150356108A1 (en) Storage system and storage system control method
US20100017566A1 (en) System, method, and computer program product for interfacing computing device hardware of a computing device and an operating system utilizing a virtualization layer
US20230129255A1 (en) Reliability of computer memory with data movement and address re-mapping
US11586266B1 (en) Persistent power enabled on-chip data processor
US8276041B2 (en) Data integrity validation using hierarchical volume management
KR101430360B1 (en) Method and terminal for version generating, version restoring process
JP2022184735A (en) Program starting method and device, and storage medium
US9218407B1 (en) Replication and intermediate read-write state for mediums
US20190324681A1 (en) Storage device buffer in system memory space
US20190114249A1 (en) Method of executing instructions of core, method of debugging core system, and core system
CN116578334B (en) User online dynamic docking method and system based on configuration
US20100146236A1 (en) System, method, and computer program product for rendering at least a portion of data useless in immediate response to a delete command
US10910025B2 (en) Flexible utilization of block storage in a computing system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right